{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/mixins/qrMixin.js","webpack:///./src/mixins/qrdownload.js","webpack:///./src/views/Demo.vue?ec25","webpack:///./src/mixins/dmf.js","webpack:///./src/views/Demo.vue?aebb","webpack:///./src/plugins/vuetify.js","webpack:///./src/i18n.js","webpack:///src/views/Demo.vue","webpack:///./src/views/Demo.vue?cb7a","webpack:///./src/views/Demo.vue?1dac","webpack:///./src/router/demo.js","webpack:///./src/store/modules/app.js","webpack:///./src/store/modules/app_demo.js","webpack:///./src/store/modules/currency.js","webpack:///./src/store/modules/currentqr.js","webpack:///./src/store/modules/library_demo.js","webpack:///./src/store/modules/resources.js","webpack:///./src/store/index-demo.js","webpack:///./src/mixins/globalMixin.js","webpack:///./src/main-demo.js","webpack:///./src/mixins/templatetext.js","webpack:///./src/mixins/validation.js","webpack:///./src/mixins/customIcons.js","webpack:///./src/mixins/titleMixin.js","webpack:///./src/plugins/EventBus.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","getJsQr","mixins","qrdownload","templatetext","lastrequestcounter","lastrequest","lastresponse","computed","_currentqr","this","$store","getters","getCurrentQr","methods","_setCurrentQr","newValue","dispatch","_resetCurrentQr","_setCurrentQrError","_setCurrentQrInvalid","_setCurrentQrLoading","prepareQueryForApi","text","qrstyles","statictype","config","style","eyeball","eyeoutline","gap","gapwidth","parseFloat","gapheight","fill","errorlevel","includes","logo","template","receivederror","updateQr","async","image","width","height","xmlDoc","stringToDom","els","querySelectorAll","gradient","querySelector","gradient2","primarycolor","color","color2","forEach","el","id","replace","eyes","match","getEyeColor","color3","color4","logoposition","calculateLogoPosition","haslogo","logosrc","getSvg","logoimage","base64encode","replaceSvgSrcColor","logocolor","imgnode","stringToNode","w","h","x","y","logobehind","firstChild","prepend","hastemplate","templatesrc","templateimage","replaceTemplateTexts","captions","templatecolor","tmplDom","scalex","scaley","dx","dy","transform","nd","nd2","replaceChild","bgcolor","margin","bgrect","domToString","assign","validateQr","startsWith","process","axios","resp","svg","newcolor","fullmatch","attrs","refreshQrDemo","reqdata","JSON","stringify","lastreqtext","mx","requestcounter","post","apiQrDemoUrl","catch","refreshQrPro","textForValidation","expectedText","canvas","prepareCanvasFromSvg","jsqr","imgdata","getContext","getImageData","default","triggerDownload","imgURI","fileName","evt","MouseEvent","view","bubbles","cancelable","a","dispatchEvent","triggerDownloadSvg","triggerDownloadBinary","blob","Blob","headers","objectUrl","URL","createObjectURL","sanitiseFilename","txt","illegalRe","controlRe","reservedRe","windowsReservedRe","windowsTrailingRe","replacement","sanitized","substr","locateImage","getClosest","elem","selector","matches","tr","getElementById","getElementsByClassName","children","getDownloadLabel","container","textContent","extrabackground","origimg","Image","naturalHeight","naturalWidth","ctx","clearRect","fillStyle","fillRect","drawImage","str","base64decode","parser","DOMParser","parseFromString","xmlObject","XMLSerializer","serializeToString","documentElement","prepareSvgForEmbed","trim","resizeSvgNatural","imgwidth","imgheight","oldsvg","svg2","getFilenameForDownload","qrlabel","params","extension","qrlabeldisplay","codes","format","downloadQrCodesPro","authGetBinary","authPostBinary","qrcodes","advanced","advancedoptions","map","codeid","url","qrurl","RegExp","size","dpi","downloadQrCodesDemo","qrcode","prepareSvgEmbedFonts","mimetype","toDataURL","convert","matchAll","exp","grpno","res","regEx","exec","fontsurls","svgDoc","GFontToDataURI","allSettled","allRules","join","svgNS","defs","createElementNS","innerHTML","fetch","styleSheet","sheet","FontRule","rule","getPropertyValue","cssText","split","fontRules","fontProms","cssRules","fR","f","FileReader","readAsDataURL","dataURL","dmfescapevalue","ismecard","dmfescape","prefix","optional","Array","isArray","part","index","ar","dmf","protocol","df","p1","p2","escape_phone","stripplus","render","_vm","_h","$createElement","_c","_self","staticClass","class","$route","$vuetify","breakpoint","smAndDown","titleLink","_l","item","path","qrgen","lang","currentLang","_v","_s","$t","title","scopedSlots","_u","fn","ref","proceed","on","$event","isMobileMenu","iconClose","iconMenu","_e","model","callback","$$v","expression","xsOnly","staticRenderFns","Vue","use","Vuetify","theme","themes","light","primary","secondary","success","info","icons","iconfont","rtllangs","require","filter","rtl","short","VueI18n","fallbackLocale","i18n","locale","messages","en","enmessages","loadedLanguages","setI18nLanguage","framework","loadLanguageAsync","setLocaleMessage","component","VApp","VAppBar","VBtn","VContainer","VFooter","VIcon","VList","VListItem","VListItemContent","VListItemTitle","VMain","VNavigationDrawer","VSpacer","VToolbarItems","VToolbar","VToolbarTitle","VueRouter","routes","DemoGenerator","router","base","scrollBehavior","beforeEach","to","from","next","langs","plans","library","staticcardsRaw","dynamiccardsRaw","state","freeze","pricePlans","sharedlibrary","languages","mutations","actions","smfm","languagesMap","countriesNames","isPro","isAdmin","initialState","currentCurrCode","currencies","label","symbol","rate","currenciesRates","lastUpdate","namespaced","currentCurrency","find","curr","isNaN","_setCurrentCurr","payload","_setCurrentRates","rates","Number","Math","floor","Date","now","_resetState","keys","setCurrentCurr","commit","getCurrencies","ts","currentqr","isnotvalid","setCurrentQr","resetCurrentQr","setCurrentQrError","setCurrentQrInvalid","setCurrentQrLoading","loading","logooptionscounter","templateoptionscounter","presetoptionscounter","logooptions","rootState","rootGetters","logos","logooptionswithempty","noImageSrc","concat","templateoptions","templates","templateoptionswithempty","presetoptions","presets","brokenImageSrc","libraryloaded","tocStatic","articles","toc","tocloading","resourcesToc","resourcesTocStatic","resourcesTocLoaded","_addArticle","article","shortname","_setToc","_setTocLoading","loadArticle","loadedarticles","actuallang","loadResourcesToc","force","waitForToc","language","Vuex","Store","library_demo","resources","app","app_demo","currency","plugins","createPersistedState","paths","appUrl","proUrl","$i18n","isRTL","currentLangIntl","long","staticcards","hasform","dynamiccards","languagesMenu","native","coptions","imageWithAttrs","oImg","k","outerHTML","samplesimg","getStyleOptions","styles","rownum","alldefaults","rv","extras","defaults","detectBrowserLang","available","localStorage","preferredLang","singlelanguage","navigator","browserLanguage","userLanguage","clientlanguages","clientlanguage","compareSlugs","slug","currentSlug","acceptPrivacy","privacyAccepted","isPrivacyAccepted","btoa","encodeURIComponent","String","fromCharCode","decodeURIComponent","atob","charCodeAt","toString","getPlanYearPrice","price","round","getPlanMonthPrice","perMonth","isInteger","toFixed","getArticleFromToc","defaultValue","getArticleUrl","getStaticCardUrl","prepareTextWithLinks","replaceHref","regex","pattern","$nextTick","ab","getAlternatives","strictSearch","links","findArticle","aliases","v","f2","$router","Vcard","productionTip","files","pop","originalPush","Router","location","onResolve","onReject","DemoEmpty","mixin","globalMixin","demo","store","vuetify","Demo","$mount","texts","hasAttribute","fs","newsize","urlRegex","emailRegex","phoneRegex","noSpacesRegex","requiredRule","urlRule","test","emailRule","phoneRule","noSpacesRule","maxlengthRule","maxlength","minlengthRule","minlength","iconQrstyle","iconDynamicCodes","iconApi","iconDashboard","iconTiktok","iconLinkedin","iconCrypto","iconError","iconTwitter","iconFacebook","iconReddit","iconGithub","iconSettings","iconSupport","iconPreferences","iconAccount","iconPassword","iconSubscription","iconDownload","iconRefresh","iconReset","getQrIcon","mdiWeb","mdiPhone","mdiWhatsapp","mdiWifi","mdiTextBoxOutline","mdiMessageTextOutline","mdiAt","mdiCardAccountDetailsOutline","mdiCalendar","mdiFileOutline","mdiCellphoneInformation","mdiLinkBoxVariantOutline","mdiQrcode","setHeadTag","props","tagName","attrName","qs","remove","setTitle","parts","fulltitle","setOgUrl","trimRight","setOgImage","setMetaDesc","setMetaKeywords","alternatives","hreflang","desc","fulldesc","kw","EventBus"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,eAAgB,GAMbjB,EAAkB,CACrB,eAAgB,GAGbK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,iBAAiB,iBAAiB,qBAAqB,qBAAqB,yBAAyB,yBAAyB,sBAAsB,sBAAsB,gBAAgB,iBAAiB9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,qBAAqB,WAAW,yBAAyB,WAAW,sBAAsB,WAAW,gBAAgB,YAAYA,GAAW,MAIzb,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,yBAAyB,GACjFR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,iBAAiB,iBAAiB,qBAAqB,qBAAqB,yBAAyB,yBAAyB,sBAAsB,sBAAsB,gBAAgB,iBAAiBxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,qBAAqB,WAAW,yBAAyB,WAAW,sBAAsB,WAAW,gBAAgB,YAAYA,GAAW,OACjayC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,iBAE/WM,K,+DC1QT,iDAEA,MAAM+F,EAAU,IAAM,mDAGP,QACXC,OAAQ,CAACC,OAAYC,QACrBtH,OACI,MAAO,CACHuH,mBAAoB,EACpBC,YAAa,GACbC,aAAc,OAGtBC,SAAU,CACNC,aACI,OAAOC,KAAKC,OAAOC,QAAQC,eAGnCC,QAAS,CACLC,cAAcC,GACV,OAAON,KAAKC,OAAOM,SAAS,eAAgBD,IAEhDE,kBACI,OAAOR,KAAKC,OAAOM,SAAS,mBAEhCE,qBACI,OAAOT,KAAKC,OAAOM,SAAS,sBAEhCG,uBACI,OAAOV,KAAKC,OAAOM,SAAS,wBAEhCI,uBACI,OAAOX,KAAKC,OAAOM,SAAS,wBAUhCK,mBAAmBC,EAAMC,EAAUC,GAC/B,MAAMC,EAASF,EAASE,OACxB,MAAO,CACHH,KAAMA,EACNI,MAAOD,EAAOC,MACdC,QAASF,EAAOE,QAChBC,WAAYH,EAAOG,WACnBC,IAAKJ,EAAOI,IACZC,SAAyB,SAAfL,EAAOI,IAAiBE,WAAWN,EAAOK,UAAY,EAChEE,UAA0B,SAAfP,EAAOI,IAAiBE,WAAWN,EAAOO,WAAa,EAClEC,KAAMR,EAAOQ,KACbC,WAAY,CAAC,IAAK,IAAK,IAAK,KAAKC,SAASV,EAAOS,YAAcT,EAAOS,WAAa,GAEnFE,KAAMX,EAAOW,KACbC,SAAUZ,EAAOY,SACjBb,eAIRc,cAAe,WACX7B,KAAKS,sBAQTqB,SAAUC,eAAgBjB,EAAW,MACjC,IAAKd,KAAKH,eAAiBG,KAAKH,aAAamC,MAEzC,YADAhC,KAAKQ,kBAGT,IAAIQ,EAASF,EAAWA,EAASE,OAAS,KAEtCgB,EAAQhC,KAAKH,aAAamC,MAAOC,EAAQjC,KAAKH,aAAaoC,MAAOC,EAASlC,KAAKH,aAAaqC,OAEjG,GAAIlB,EAAQ,CACR,IAAImB,EAASnC,KAAKoC,YAAYpC,KAAKH,aAAamC,OAG5CK,EAAMF,EAAOG,iBAAiB,OAC9BC,EAAWJ,EAAOK,cAAc,kBAChCC,EAAYN,EAAOK,cAAc,kBACjCE,EAAe1B,EAAO2B,MACtBJ,GACAA,EAASD,iBAAiB,QAAQ,GAAGtF,aAAa,QAAS,cAAcgE,EAAO2B,MAAM,mBACtFJ,EAASD,iBAAiB,QAAQ,GAAGtF,aAAa,QAAS,cAAcgE,EAAO4B,OAAO,mBACvFF,EAAe,SAASH,EAASlH,aAAa,MAAM,MAC7CoH,IACPA,EAAUH,iBAAiB,QAAQ,GAAGtF,aAAa,QAAS,cAAcgE,EAAO4B,OAAO,mBACxFH,EAAUH,iBAAiB,QAAQ,GAAGtF,aAAa,QAAS,cAAcgE,EAAO2B,MAAM,mBACvFD,EAAe,SAASD,EAAUpH,aAAa,MAAM,MAEzDgH,EAAIQ,QAAQC,IACR,IAAIC,EAAKD,EAAGzH,aAAa,cAAc2H,QAAQ,QAAS,IACpDL,EAAQD,EACRO,EAAOF,EAAGG,MAAM,+BAChBD,IAAMN,EAAQ7B,EAASqC,YAAYF,EAAK,GAAIA,EAAK,GAAIP,IAC9C,YAAPK,GAA2B,aAAPA,IAAmBJ,EAAQ3B,EAAO4B,QAC/C,aAAPG,IAAmBJ,EAAQ3B,EAAOoC,QAC3B,aAAPL,IAAmBJ,EAAQ3B,EAAOqC,QACtCP,EAAG9F,aAAa,QAAS,SAAS2F,KAItC,MAAMW,EAAexC,EAASyC,sBAAsBvD,KAAKH,aAAaoC,MAAOjC,KAAKH,aAAaqC,OAC3FlC,KAAKH,aAAawB,SAAUrB,KAAKH,aAAa0B,WAClD,GAAIT,EAAS0C,QAAS,CAClB,IAAIC,QAAgBzD,KAAK0D,OAAO5C,EAAS6C,UAAU3H,KAC/CA,EAAM,6BAA+BgE,KAAK4D,aAAa5D,KAAK6D,mBAAmBJ,EAAS3C,EAASgD,YACjGC,EAAU/D,KAAKgE,aAAc,iBAAgBV,EAAaW,cAAcX,EAAaY,SAC3EZ,EAAaa,SAASb,EAAac,kBAAkBpI,eACnEgF,EAAOqD,WAAalC,EAAOmC,WAAWC,QAAQR,GAAW5B,EAAOmC,WAAW/H,YAAYwH,GAI3F,GAAIjD,EAAS0D,YAAa,CACtB,IAAIC,QAAoBzE,KAAK0D,OAAO5C,EAAS4D,cAAc1I,KACvDA,EAAMgE,KAAK2E,qBAAqBF,EAAazD,EAAO4D,UACxD5I,EAAMgE,KAAK6D,mBAAmB7H,EAAK8E,EAAS+D,eAC5C,MAAMC,EAAU9E,KAAKoC,YAAYpG,GAC7B8G,EAAKgC,EAAQtC,cAAc,4BAC/B,GAAIM,EAAI,CACJ,MAAMiC,EAASzD,WAAWwB,EAAGzH,aAAa,UAAY2E,KAAKH,aAAaoC,MACpE+C,EAAS1D,WAAWwB,EAAGzH,aAAa,WAAa2E,KAAKH,aAAaqC,OACnE+C,EAAK3D,WAAWwB,EAAGzH,aAAa,MAChC6J,EAAK5D,WAAWwB,EAAGzH,aAAa,MAChC8J,EAAYrC,EAAGzH,aAAa,aAChCyJ,EAAQtC,cAAc,OAAOxF,aAAa,cAAe,gCACzD,IAAIoI,EAAKpF,KAAKgE,aAAc,2BAA0BiB,KAAMC,YAAaH,KAAUC,YACnF,MAAO7C,EAAOmC,WAAWA,WACrBc,EAAG7I,YAAY4F,EAAOmC,WAAWA,YAErC,GAAIa,EAAW,CACX,IAAIE,EAAMrF,KAAKgE,aAAc,iBAAgBmB,WAC7CE,EAAI9I,YAAY6I,GAChBA,EAAKC,EAETvC,EAAG1G,WAAWkJ,aAAaF,EAAItC,GAC/BX,EAAS2C,EACT7C,EAAQnB,EAAS4D,cAAczC,MAC/BC,EAASpB,EAAS4D,cAAcxC,QAKxC,GAAuB,gBAAnBlB,EAAOuE,QAA2B,CAClC,MAAMC,EAAS,EACTC,EAASzF,KAAKgE,aAAc,aAAYwB,UAAeA,aAAkBvD,EAAM,EAAEuD,cAAmBtD,EAAO,EAAEsD,YAAiBxE,EAAOuE,oBAC3IpD,EAAOmC,WAAWC,QAAQkB,GAG9BzD,EAAQhC,KAAK0F,YAAYvD,GAG7BnC,KAAKK,cAAcxH,OAAO8M,OAAO9M,OAAO8M,OAAO,GAAI3F,KAAKH,cAAe,CACnEmC,MAAOA,KAEXhC,KAAK4F,WAAW5F,KAAKJ,YAAYiB,OAGrC6C,OAAO1H,GAEH,OADIA,EAAI6J,WAAW,OAAM7J,EAAM8J,2BAA0B9J,GAClD+J,IAAM7H,IAAIlC,GAAKQ,KAAMwJ,GAASA,EAAK5N,OAG9CyL,mBAAmBoC,EAAKC,GAQpB,OAPIA,GAAyB,YAAbA,GAA0BD,EAAI/C,MAAM,UAChD+C,EAAMA,EACDjD,QAAQ,WAAYkD,GACpBlD,QAAQ,iBAAiB,SAAUmD,EAAWC,GAC3C,OAAQA,EAAMlD,MAAM,eAAkBiD,EAAY,QAAUC,EAAQ,UAAYF,EAAW,SAGhGD,GAUXI,cAAe,SAASxF,EAAMC,EAAUC,GACpC,IAAIuF,EAAUtG,KAAKY,mBAAmBC,EAAMC,EAAUC,GACtD,GAAIwF,KAAKC,UAAUF,KAAaC,KAAKC,UAAUxG,KAAKJ,aAIhD,YADAI,KAAK8B,SAAShB,GAIlB,IAAI2F,EAAczG,KAAKJ,YAAYiB,KACnCb,KAAKJ,YAAc/G,OAAO8M,OAAO,GAAIW,GACjCtG,KAAKH,cAAgB4G,IAAgBH,EAAQzF,OAC7CyF,EAAQI,GAAK1G,KAAKH,aAAa6G,IAGnC1G,KAAKW,uBACLX,KAAKL,qBACL,MAAMgH,EAAiB3G,KAAKL,mBAC5BoG,IAAMa,KAAK5G,KAAK6G,aAAcP,GACzB9J,KAAKwJ,IACEW,IAAmB3G,KAAKL,qBACxBK,KAAKH,aAAemG,EAAK5N,KACzB4H,KAAK8B,SAAShB,MAGrBgG,MAAM9G,KAAK6B,gBAIpBkF,aAAc,SAASrK,EAASsK,GAG5BhH,KAAKW,uBACLX,KAAKJ,YAAc,CAAEiB,KAAMmG,GAC3BhH,KAAKL,qBACL,MAAMgH,EAAiB3G,KAAKL,mBAE5BjD,EACKF,KAAKwJ,IACEW,IAAmB3G,KAAKL,qBACxBK,KAAKH,aAAemG,EAAK5N,KACzB4H,KAAK8B,cAGZgF,MAAM9G,KAAK6B,gBAIpB+D,WAAWqB,GACP,IAAIC,EACJlH,KAAKmH,qBAAqBnH,KAAKD,WAAWiC,MAAO,KAAK,GACjDxF,KAAK/C,IACFyN,EAASzN,EACF8F,MAEV/C,KAAK4K,IACF,IAAIC,EAAUH,EAAOI,WAAW,MAAMC,aAAa,EAAG,EAAGL,EAAOjF,MAAOiF,EAAOhF,QAC9E,MAAM/F,EAAOiL,EAAKI,QAAQH,EAAQjP,KAAMiP,EAAQpF,MAAOoF,EAAQnF,OAAQ,IAClE/F,GAAQA,EAAK/D,OAAS6O,GACvBjH,KAAKU,6B,gpDCvPd,QACfN,QAAS,CACTqH,gBAAgBC,EAAQC,GACpB,IAAIC,EAAM,IAAIC,WAAW,QAAS,CAC9BC,KAAM1I,OACN2I,SAAS,EACTC,YAAY,IAEZC,EAAIhN,SAASQ,cAAc,KAK/B,OAJAwM,EAAEjL,aAAa,WAAY2K,GAC3BM,EAAEjL,aAAa,OAAQ0K,GACvBO,EAAEjL,aAAa,SAAU,UACzBiL,EAAEC,cAAcN,GACTD,GAGXQ,mBAAmBlC,EAAK0B,GACpB,OAAO3H,KAAKyH,gBAAgB,6BAA+BzH,KAAK4D,aAAaqC,GAAM0B,IASvFS,sBAAsBpC,EAAM2B,GAGxB,MAAMU,EAAO,IAAIC,KAAK,CAACtC,EAAK5N,MAAO,CAACsD,KAAMsK,EAAKuC,QAAQ,kBACjDC,EAAYC,IAAIC,gBAAgBL,GAItC,MAHqC,oBAAjCrC,EAAKuC,QAAQ,kBACbZ,EAAWA,EAAS3E,QAAQ,eAAgB,SAEzChD,KAAKyH,gBAAgBe,EAAWb,IAG3CgB,iBAAiBC,GAGb,IAAIC,EAAY,uBACZC,EAAY,wBACZC,EAAa,QACbC,EAAoB,gDACpBC,EAAoB,UACpBC,EAAc,IAEdC,EAAYP,EACX5F,QAAQ,cAAe,IACvBA,QAAQ6F,EAAWK,GACnBlG,QAAQ8F,EAAWI,GACnBlG,QAAQ+F,EAAYG,GACpBlG,QAAQgG,EAAmBE,GAC3BlG,QAAQiG,EAAmBC,GAC3BlG,QAAQ,KAAM,KACnB,OAAOmG,EAAUC,OAAO,EAAG,KAG/BC,YAAYtN,GACR,IAAIuN,EAAa,SAAUC,EAAMC,GAC7B,KAAOD,GAAQA,IAAStO,SAAUsO,EAAOA,EAAKnN,WAC1C,GAAImN,EAAKE,QAAQD,GAAW,OAAOD,EAEvC,OAAO,MAGX,GAA4C,YAAxCxN,EAAOV,aAAa,gBAA+B,CACnD,IAAIqO,EAAKJ,EAAWvN,EAAQ,MAC5B,OAAK2N,EACEA,EAAGlH,cAAc,yBADR,KAEb,MAA4C,SAAxCzG,EAAOV,aAAa,gBACpBJ,SAAS0O,eAAe,0BACgB,SAAxC5N,EAAOV,aAAa,gBACpBJ,SAAS2O,uBAAuB,iBAAiB,GAAGC,SAAS,GAE7D,MAIfC,iBAAiB/N,GACb,GAA4C,SAAxCA,EAAOV,aAAa,gBAA4B,CAChD,IAAI0O,EAAY9O,SAAS2O,uBAAuB,wBAAwB,GACxE,OAAOG,EAAUH,uBAAuB,iBAAiB,GAAGI,YAE5D,OAAOjO,EAAOV,aAAa,eAInC8L,qBAAqBlB,EAAKhE,EAAOgI,GAAkB,GAC/C,OAAO,IAAItP,QAASC,IAChB,MAAMsP,EAAU,IAAIC,MACpBD,EAAQlO,IAAM,6BAA+BgE,KAAK4D,aAAaqC,GAC/DiE,EAAQvO,OAAS,WACb,IAAIuG,EAASD,EAAQiI,EAAQE,cAAgBF,EAAQG,aAEjDnD,EAASjM,SAASQ,cAAc,UACpCyL,EAAOjF,MAAQA,EACfiF,EAAOhF,OAASA,EAChB,IAAIoI,EAAMpD,EAAOI,WAAW,MAC5BgD,EAAIC,UAAU,EAAG,EAAGrD,EAAOjF,MAAOiF,EAAOhF,QACrC+H,IACAK,EAAIE,UAAY,QAChBF,EAAIG,SAAS,EAAG,EAAGxI,EAAOC,IAE9BoI,EAAII,UAAUR,EAAS,EAAG,EAAGA,EAAQG,aAAcH,EAAQE,cACvD,EAAG,EAAGnI,EAAOC,GACjBtH,EAAQsM,OAKpB9E,YAAYuI,GACJA,EAAIzH,MAAM,gBACVyH,EAAM3K,KAAK4K,aAAaD,EAAI3H,QAAQ,aAAc,MAEtD,IAAI6H,EAAS,IAAIC,UACjB,OAAOD,EAAOE,gBAAgBJ,EAAI,aAGtC3G,aAAa2G,GACT,OAAO3K,KAAKoC,YAAY,sFAAwFuI,EAAM,UAAUrG,WAAWA,YAG/IoB,YAAYsF,GACR,OAAO,IAAIC,eAAgBC,kBAAkBF,EAAUG,kBAG3DC,mBAAmBnF,GACf,OAAOA,EACFjD,QAAQ,eAAgB,IACxBqI,OACArI,QAAQ,+BAAgC,OAGjDsI,iBAAiBrF,EAAKhE,EAAOuD,EAAO,GAChC,OAAO,IAAI7K,QAASC,IAChB,MAAMsP,EAAU,IAAIC,MACpBD,EAAQlO,IAAM,6BAA+BgE,KAAK4D,aAAaqC,GAC/DiE,EAAQvO,OAAS,KACb,GAAIsG,IAAUiI,EAAQG,cAA2B,IAAX7E,EAClC,OAAO5K,EAAQqL,GAEnB,IAAIsF,EAAWtJ,EAAQ,EAAIuD,EACvBgG,EAAYD,EAAWrB,EAAQE,cAAgBF,EAAQG,aACvDnI,EAASsJ,EAAY,EAAIhG,EACzBiG,EAASzL,KAAKoL,mBAAmBnF,GACjCyF,EAAQ,6FAA4FzJ,cAAkBC,oBACvHD,KAASC,8BAAmCsD,KAAUA,YAAiB+F,EAASrB,EAAQG,kBAAkBoB,cAC7G,OAAO7Q,EAAQ8Q,OAa3BC,uBAAuBC,EAASC,EAAQC,EAAY,MAChD,IAAIC,EAAiBH,EASrB,OARKG,IAEGA,EADwB,IAAxBF,EAAOG,MAAMpT,QACIiT,EAAOG,MAAM,GAAGJ,QAAUC,EAAOG,MAAM,GAAGJ,QAG1C,YAGlB,MAAQ5L,KAAK2I,iBAAiBoD,GAAkB,KAClDD,GAAwBD,EAAOI,SAYxCC,mBAAmBN,EAASC,EAAQM,EAAeC,GAC/C,MAAMC,EAAUR,EAAOG,MACjBM,EAAWT,EAAOU,iBAAmBF,EAAQzT,OAAS,EAE5D,IAAI+O,EAAW3H,KAAK2L,uBAAuB3L,KAAK4L,QAASC,GACzD,GAAsB,QAAlBA,EAAOI,QAAqBK,EAIzB,IAAKA,EASR,OADAT,EAAOG,MAAQK,EAAQG,IAAKrQ,GAASA,EAAKsQ,QACnCL,EAAe,CAACM,IAAK,yBAA0Bb,WACjDrP,KAAKwJ,GAAQhG,KAAKoI,sBAAsBpC,EAAM2B,IAVjC,CAElB,MAAM+E,EAAML,EAAQ,GAAGM,MAAM3J,QAAQ,IAAI4J,OAAO,+BAA+B,MAC1E,YAAWf,EAAOgB,UAAUhB,EAAOiB,UAAUjB,EAAOI,UACzD,OAAOE,EAAc,CAACO,QACjBlQ,KAAKwJ,GAAQhG,KAAKoI,sBAAsBpC,EAAM2B,KAPnD,OAAO3H,KAAKsL,iBAAiBe,EAAQ,GAAGrK,MAAO6J,EAAOgB,MACjDrQ,KAAKyJ,GAAOjG,KAAKmI,mBAAmBlC,EAAK0B,KAsBtDoF,oBAAoBnB,EAASxT,GACzB,MAAM6T,EAAS7T,EAAK6T,OACdY,EAAOzU,EAAKyU,KACZG,EAAS5U,EAAK4T,MAAM,GAEpBrE,EAAW3H,KAAK2L,uBAAuBC,EAASxT,GACtD,MAAe,QAAX6T,EAEOjM,KAAKsL,iBAAiB0B,EAAOhL,MAAO6K,GACtCrQ,KAAKyJ,GAAOjG,KAAKmI,mBAAmBlC,EAAK0B,IAGvC3H,KAAKiN,qBAAqBD,EAAOhL,MAAkB,QAAXiK,GAC1CzP,KAAMyJ,GAAQjG,KAAKmH,qBAAqBlB,EAAK4G,IAC7CrQ,KAAK0K,IACF,MAAMgG,EAAW,UAAuB,QAAXjB,EAAmB,OAASA,GACnDvE,EAASR,EACViG,UAAUD,GACVlK,QAAQkK,EAAU,sBACvB,OAAOlN,KAAKyH,gBAAgBC,EAAQC,MAYpDsF,qBAAqBpM,EAAMuM,GAAU,GACjC,MAAMC,EAAW,CAACC,EAAKzM,EAAM0M,KACzB,IAAIC,EAAM,GACV,MAAMC,EAAQ,IAAIb,OAAOU,EAAK,KAC9B,IAAIpK,EAAQuK,EAAMC,KAAK7M,GACvB,MAAgB,MAATqC,EACHsK,EAAItU,KAAKgK,EAAMqK,IACfrK,EAAQuK,EAAMC,KAAK7M,GAEvB,OAAO2M,GAGX,IAAIG,EAAYN,EAAS,gCAAiCxM,EAAM,GAChE,IAAKuM,IAAYO,EAAU/U,OACvB,OAAO,IAAI+B,QAASC,IAAaA,EAAQiG,KAG7C,IAAI+M,GAAS,IAAI9C,WAAYC,gBAAgBlK,EAAM,iBAC/CpG,EAAW,GACf,IAAK,IAAIiS,KAAOiB,EAAWlT,EAASvB,KAAK8G,KAAK6N,eAAenB,IAC7D,OAAO/R,QAAQmT,WAAWrT,GACrB+B,KAAKgR,IACF,IAAIO,EAAWP,EAAIhB,IAAIvE,GAAGA,EAAE3J,MAAM0P,KAAK,OAAOA,KAAK,MAC/CC,EAAQ,6BAERC,EAAON,EAAOO,gBAAgBF,EAAO,QACrChN,EAAQ2M,EAAOO,gBAAgBF,EAAO,SAK1C,OAJAhN,EAAMmN,UAAYL,EAClBG,EAAK3R,YAAY0E,GACjB2M,EAAOzC,gBAAgB5O,YAAY2R,IAE5B,IAAIjD,eAAgBC,kBAAkB0C,EAAOzC,oBAahE0C,eAAenB,GACX,OAAO2B,MAAM3B,GACRlQ,KAAKwJ,GAAQA,EAAKnF,QAClBrE,KAAKqE,IAGF,IAAI7G,EAAIiB,SAASQ,cAAc,SAC/BzB,EAAEoU,UAAYvN,EACd5F,SAASqB,KAAKC,YAAYvC,GAC1B,IAAIsU,EAAatU,EAAEuU,MAGfC,EAAWC,IACX,IAAIzS,EAAMyS,EAAKxN,MAAMyN,iBAAiB,QAAUD,EAAKxN,MAAM0N,QAAQzL,MAAM,eAAe,GACxF,IAAKlH,EAAK,OAAO,KACjB,IAAI0Q,EAAM1Q,EAAI4S,MAAM,QAAQ,GAAGA,MAAM,KAAK,GAC1C,MAAO,CACHH,KAAMA,EACNzS,IAAKA,EACL0Q,IAAKA,EAAI1J,QAAQ,KAAM,MAG3B6L,EAAY,GACZC,EAAY,GAIhB,IAAK,IAAIpW,EAAI,EAAGA,EAAI4V,EAAWS,SAASnW,OAAQF,IAAK,CACjD,IAAIyF,EAAImQ,EAAWS,SAASrW,GACxBsW,EAAKR,EAASrQ,GACb6Q,IAGLH,EAAU3V,KAAK8V,GACfF,EAAU5V,KACNmV,MAAMW,EAAGtC,KACJlQ,KAAKwJ,GAAQA,EAAKqC,QAClB7L,KAAK6L,GACK,IAAI1N,QAAQC,IAIf,IAAIqU,EAAI,IAAIC,WACZD,EAAEtT,OAAS,IAAMf,EAAQqU,EAAExV,QAC3BwV,EAAEE,cAAc9G,MAGvB7L,KAAK4S,GAIKJ,EAAGP,KAAKE,QAAQ3L,QAAQgM,EAAGtC,IAAK0C,MAKvD,OADAnU,SAASqB,KAAKD,YAAYrC,GACnBW,QAAQ+C,IAAIoR,S,oCCzV/B,W,syQCCe,QACXvR,KAAM,MACN6C,QAAS,CACLiP,eAAgB,SAAS/Q,EAAOgR,GAAW,GAKvC,OAAIA,EACOhR,EAAM0E,QAAQ,KAAM,MAEpB1E,EAAM0E,QAAQ,aAAc,SAI3CuM,UAAW,SAASC,EAAQlR,EAAOmR,GAAS,EAAOH,GAAW,GAC1D,OAAII,MAAMC,QAAQrR,IACdA,EAAMuE,QAAQ,SAAS+M,EAAMC,EAAOC,GAChCA,EAAGD,GAAS7P,KAAKqP,eAAeO,EAAMN,IACxCzQ,KAAKmB,OACAwP,EAAS,IAAMlR,EAAM0P,KAAK,KAAO,MAG5C1P,EAAQ,GAAKA,EACRA,EAAM1F,OAGJ4W,EAAS,IAAMxP,KAAKqP,eAAe/Q,EAAOgR,GAAY,IAFlDG,EAAW,GAAKD,EAAS,OAKxCO,IAAK,SAASC,EAAU5J,EAAOqJ,EAAW,IACtC,IAA0D7Q,EAAtD5E,EAAIgW,EAAW,IAAKV,EAAwB,WAAbU,EACnC,IAAK,IAAItX,KAAK0N,EACVxH,EAAMlG,EAAEsK,QAAQ,SAAU,IAC1BhJ,GAAQgG,KAAKuP,UAAU3Q,EAAKwH,EAAM1N,GAAI+W,EAAS/N,SAAS9C,GAAM0Q,GAElE,OAAOtV,GAGXiW,GAAI,SAASD,EAAUE,EAAIC,EAAK,MAC5B,OAAOH,EAAW,IAAME,GAAa,OAAPC,GAA6B,IAAdA,EAAGvX,OAAe,GAAM,IAAMuX,IAG/EC,aAAc,SAAU9R,EAAO+R,GAAY,GACvC,OAAIA,EACO/R,EAAM0E,QAAQ,SAAU,IAExB1E,EAAM0E,QAAQ,WAAY,Q,g3XChD7CsN,EAAS,WAAa,IAAIC,EAAIvQ,KAASwQ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACE,YAAY,wBAAwBC,MAAM,CAAC,UAA+B,gBAApBN,EAAIO,OAAOvT,MAA8C,cAApBgT,EAAIO,OAAOvT,OAAuB,CAACmT,EAAG,YAAY,CAACE,YAAY,cAAcxK,MAAM,CAAC,IAAM,GAAG,MAAQ,GAAG,oBAAoB,GAAG,OAASmK,EAAIQ,SAASC,WAAWC,UAAY,GAAK,KAAK,CAACP,EAAG,cAAc,CAACE,YAAY,sBAAsBC,MAAM,CAAC,OAAQN,EAAIQ,SAASC,WAAWC,YAAY,CAACP,EAAG,kBAAkB,GAAG,CAACA,EAAG,cAAc,CAACE,YAAY,sBAAsBxK,MAAM,CAAC,MAAQ,GAAG,GAAKmK,EAAIW,YAAY,CAACR,EAAG,MAAM,CAACtK,MAAM,CAAC,IAAMmK,EAAIQ,SAASC,WAAWC,UAAY,0BAA4B,mBAAmB,MAAQV,EAAIQ,SAASC,WAAWC,UAAY,IAAM,IAAI,OAASV,EAAIQ,SAASC,WAAWC,UAAY,GAAK,GAAG,IAAM,qBAAqB,GAAGP,EAAG,YAAYA,EAAG,kBAAkB,CAACE,YAAY,oBAAoBL,EAAIY,GAAIZ,EAAQ,MAAE,SAASa,GAAM,OAAOV,EAAG,QAAQ,CAAC9R,IAAIwS,EAAKC,KAAKjL,MAAM,CAAC,KAAO,GAAG,MAAsB,cAAdgL,EAAK7T,KAAoC,QAAS,EAAM,GAAK6T,EAAKE,MAAQf,EAAIW,UAAY,CAAE3T,KAAM6T,EAAK7T,KAAMsO,OAAQ,CAAC0F,KAAMhB,EAAIiB,gBAAiB,CAACjB,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAIoB,GAAGP,EAAKQ,QAAQ,UAAS,GAAGlB,EAAG,YAAYA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,qBAAqBA,EAAG,kBAAkB,CAACmB,YAAYtB,EAAIuB,GAAG,CAAC,CAAClT,IAAI,UAAUmT,GAAG,SAASC,GACz0C,IAAIC,EAAUD,EAAIC,QAClB,MAAO,CAACvB,EAAG,QAAQ,CAACE,YAAY,mBAAmBsB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOF,OAAa,CAAC1B,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAIoB,GAAG,mBAAmB,eAAe,GAAGjB,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,QAAQ,CAACtK,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,aAAamK,EAAIoB,GAAG,aAAaO,GAAG,CAAC,MAAQ,SAASC,GAAQ5B,EAAI6B,cAAgB7B,EAAI6B,gBAAgB,CAAC1B,EAAG,SAAS,CAACH,EAAIkB,GAAG,IAAIlB,EAAImB,GAAInB,EAAI6B,aAA8B7B,EAAI8B,UAAnB9B,EAAI+B,UAA0B,QAAQ,IAAI,IAAI,IAAI,GAAG5B,EAAG,SAAS,CAAEH,EAAqB,kBAAEG,EAAG,cAAc,CAACtK,MAAM,CAAC,aAAa,MAAMmK,EAAIgC,MAAM,GAAG7B,EAAG,WAAW,CAACE,YAAY,yEAAyEC,MAAM,CAAC,OAAQN,EAAIQ,SAASC,WAAWC,WAAW7K,MAAM,CAAC,GAAK,SAAS,MAAQ,GAAG,aAAa,OAAOmK,EAAIY,GAAIZ,EAAc,YAAE,SAASa,GAAM,OAAOV,EAAG,QAAQ,CAAC9R,IAAIwS,EAAKC,KAAKjL,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAS,EAAM,GAAK,CAAE7I,KAAM6T,EAAK7T,KAAMsO,OAAQ,CAAC0F,KAAMhB,EAAIiB,cAAe,UAAU,GAAG,MAAQjB,EAAIQ,SAASC,WAAWC,YAAY,CAACV,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAIoB,GAAGP,EAAKQ,QAAQ,UAAS,GAAGlB,EAAG,sBAAsB,CAACE,YAAY,cAAcxK,MAAM,CAAC,SAAW,GAAG,UAAY,GAAG,KAAO,GAAG,MAAQ,GAAG,MAAQ,OAAO,OAAS,QAAQoM,MAAM,CAAClU,MAAOiS,EAAgB,aAAEkC,SAAS,SAAUC,GAAMnC,EAAI6B,aAAaM,GAAKC,WAAW,iBAAiB,CAACjC,EAAG,SAAS,CAACtK,MAAM,CAAC,IAAM,GAAG,MAAQ,KAAKmK,EAAIY,GAAIZ,EAAQ,MAAE,SAASa,GAAM,OAAOV,EAAG,cAAc,CAAC9R,IAAIwS,EAAKC,KAAKT,YAAY,oBAAoB,CAACF,EAAG,sBAAsB,CAACE,YAAY,QAAQ,CAACF,EAAG,oBAAoB,CAACA,EAAG,QAAQ,CAACtK,MAAM,CAAC,MAAQ,GAAG,KAAO,GAAG,QAAS,EAAM,GAAKgL,EAAKE,MAAQf,EAAIW,UAAY,CAAE3T,KAAM6T,EAAK7T,KAAMsO,OAAQ,CAAC0F,KAAMhB,EAAIiB,gBAAiB,CAACjB,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAIoB,GAAGP,EAAKQ,QAAQ,QAAQ,IAAI,IAAI,MAAK,GAAGlB,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,oBAAoB,CAACtK,MAAM,CAAC,aAAemK,EAAI6B,iBAAiB,GAAG1B,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,kBAAkB,CAACmB,YAAYtB,EAAIuB,GAAG,CAAC,CAAClT,IAAI,UAAUmT,GAAG,SAASC,GACl3D,IAAIC,EAAUD,EAAIC,QAClB,MAAO,CAACvB,EAAG,QAAQ,CAACE,YAAY,mBAAmBxK,MAAM,CAAC,MAAQ,GAAG,MAAQmK,EAAIQ,SAASC,WAAW4B,QAAQV,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOF,OAAa,CAAC1B,EAAIkB,GAAG,IAAIlB,EAAImB,GAAGnB,EAAIoB,GAAG,mBAAmB,eAAe,IAAI,IAAI,IAC9NkB,EAAkB,G,6FCFtBC,OAAIC,IAAIC,QAEO,UAAIA,OAAQ,CACzBC,MAAO,CACLC,OAAQ,CACNC,MAAO,CACLC,QAAS,UACTC,UAAW,UACXC,QAAS,UACTrW,MAAO,UACPsW,KAAM,aAIZC,MAAO,CAACC,SAAU,YCXpB,MAAMC,EAAWC,EAAQ,QAAyBC,OAAOrC,GAAQA,EAAKsC,KAAKrH,IAAI+E,GAAQA,EAAKuC,OAE5FhB,OAAIC,IAAIgB,QAER,MAAMC,EAAiBlO,KACVmO,EAAO,IAAIF,OAAQ,CAC9BG,OAAQ,KACRF,iBACAG,SAAU,CAACC,GAAIC,KAGjB,IAAIC,EAAkB,CAAC,MAEvB,SAASC,EAAiBhD,GAKxB,OAJA0C,EAAKC,OAAS3C,EAEdtW,SAASuH,cAAc,QAAQxF,aAAa,OAAQuU,GACpDyB,EAAQwB,UAAUX,IAAMH,EAAShS,SAAS6P,GACnCA,EAGF,SAASkD,EAAkBlD,GAEhC,OAAI0C,EAAKC,SAAW3C,GAKhB+C,EAAgB5S,SAAS6P,GAJpB5W,QAAQC,QAAQ2Z,EAAgBhD,IAWlCxL,IAAM7H,IAAK,8CAAuCqT,GACtD/U,KAAKwJ,IACF,IAAImO,EAAWnO,EAAK5N,KAGpB,OAFA6b,EAAKS,iBAAiBnD,EAAM4C,GAC5BG,EAAgBpb,KAAKqY,GACdgD,EAAgBhD,KC4D/B,OACE,KAAF,OACE,WAAF,CAAI,cAAJ,OAAI,iBAAJ,QACE,OACE,MAAJ,CACM,QAAN,GACM,mBAAN,EACM,cAAN,IAGE,SAAF,CACI,OAAE,OAAN,yBACI,YACE,OAAN,4CACA,CAAQ,KAAR,cAAQ,OAAR,CAAU,KAAV,iBAAU,KAAV,YACA,CAAQ,KAAR,OAAQ,OAAR,CAAU,KAAV,oBAEI,WAAE,OAAN,QACI,YAAE,OAAN,QACI,OACE,MAAN,CACA,CAAQ,KAAR,qBAAQ,KAAR,cAAQ,MAAR,kBAAQ,OAAR,GACA,CAAQ,KAAR,+BAAQ,KAAR,UAAQ,MAAR,qBACA,CAAQ,KAAR,+BAAQ,KAAR,UAAQ,MAAR,uBACA,CAAQ,KAAR,2BAAQ,KAAR,MAAQ,MAAR,iBACA,CAAQ,KAAR,iCAAQ,KAAR,YAAQ,MAAR,yBAGI,aACE,MAAN,CACA,CAAQ,KAAR,+BAAQ,KAAR,UAAQ,MAAR,mBACA,CAAQ,KAAR,2BAAQ,KAAR,MAAQ,MAAR,eACA,CAAQ,KAAR,iCAAQ,KAAR,YAAQ,MAAR,4BAIE,UAGE,OAAJ,6BAEM,IAAN,OAAQ,GAAR,EACM,MAAN,kCAEM,GAAN,6DAGQ,MAAR,OAAU,EAAV,QAAU,EAAV,QAAU,EAAV,SAAU,EAAV,OAAU,EAAV,iBAAU,GAAV,EAEQ,GAAR,kBAEQ,GAAR,SAEQ,QAAR,oBAEQ,GAAR,mBACU,MAAV,2BACU,GAAV,6BAGQ,MAAR,kBACA,aACA,iDACU,EAAV,iBACU,KAAV,wCAKE,UACE,KAAJ,uBAEI,MAAJ,iCACI,IAAJ,wDACA,mBACA,qBACA,+BACI,EAAJ,GACA,UACA,+BACM,KAAN,qBAEM,SAAN,uDAGE,mBAEE,KAAJ,sBACI,KAAJ,wBACI,KAAJ,0BACI,KAAJ,oBACI,KAAJ,0BACI,KAAJ,sBACI,KAAJ,kBACI,KAAJ,8BCxM8U,I,yMCQ1UoD,EAAY,eACd,EACArE,EACAuC,GACA,EACA,KACA,WACA,MAIa,EAAA8B,EAAiB,QAmBhC,IAAkBA,EAAW,CAACC,OAAA,KAAKC,UAAA,KAAQC,OAAA,KAAKC,aAAA,KAAWC,UAAA,KAAQC,QAAA,KAAMC,QAAA,KAAMC,YAAA,KAAUC,iBAAA,OAAiBC,eAAA,OAAeC,QAAA,KAAMC,oBAAA,KAAkBC,UAAA,KAAQC,cAAAC,EAAA,KAAcC,cAAAD,EAAA,O,4BCjCvK5C,OAAIC,IAAI6C,QAER,MAAMC,EAAS,CACb,CAAExE,KAAM,IAAK9T,KAAM,OAAQoX,UAAWmB,QAEtC,CAAEzE,KAAM,iBAAkB9T,KAAM,UAAWoX,UAAW,IAAM,iDAC5D,CAAEtD,KAAM,aAAc9T,KAAM,MAAOoX,UAAW,IAAM,iDAEpD,CAAEtD,KAAM,SAAU9T,KAAM,OAAQoX,UAAWmB,QAC3C,CAAEzE,KAAM,iBAAkB9T,KAAM,UAAWoX,UAAW,IAAM,iDAC5D,CAAEtD,KAAM,iBAAkB9T,KAAM,UAAWoX,UAAW,IAAM,iDAC5D,CAAEtD,KAAM,aAAc9T,KAAM,MAAOoX,UAAW,IAAM,iDACpD,CAAEtD,KAAM,mBAAoB9T,KAAM,YAAaoX,UAAW,IAAM,qDAChE,CAAEtD,KAAM,yBAA0B9T,KAAM,UAAWoX,UAAW,IAAM,qDACpE,CAAEtD,KAAM,mBAAoB9T,KAAM,YAAaoX,UAAW,IAAM,iDAEhE,CAAEtD,KAAM,eAAgB9T,KAAM,cAAeoX,UAAWmB,SAGpDC,EAAS,IAAIH,OAAU,CAC3BpX,KAAM,UACNwX,KAAMlQ,IACN+P,SACAI,iBACE,MAAO,CAAE9R,EAAG,EAAGC,EAAG,MAItB2R,EAAOG,WAAWnU,MAAMoU,EAAIC,EAAMC,KAC5BF,EAAGtK,QAAUsK,EAAGtK,OAAO0F,MACzBkD,EAAkB0B,EAAGtK,OAAO0F,MACvB/U,KAAK,IAAM6Z,KAGlBA,MAGaN,Q,wBC1Cf,MAAMO,EAAQ3C,EAAQ,QAChB4C,EAAQ5C,EAAQ,QAChB6C,EAAU7C,EAAQ,QAClB8C,EAAiB9C,EAAQ,QACzB+C,EAAkB/C,EAAQ,QAEjB,OAGXgD,MAAO,KAAM,CACTL,MAAOzd,OAAO+d,OAAON,GACrBO,WAAYhe,OAAO+d,OAAOL,GAC1BO,cAAeje,OAAO+d,OAAOJ,GAC7BC,eAAgB5d,OAAO+d,OAAOH,GAC9BC,gBAAiB7d,OAAO+d,OAAOF,KAGnCxW,QAAS,CACL6W,UAAUJ,GAAS,OAAOA,EAAML,OAChCO,WAAWF,GAAS,OAAOA,EAAME,YACjCC,cAAcH,GAAS,OAAOA,EAAMG,eACpCL,eAAeE,GAAS,OAAOA,EAAMF,gBACrCC,gBAAgBC,GAAS,OAAOA,EAAMD,kBAG1CM,UAAW,GAGXC,QAAS,IC3Bb,MAAMC,GAAOvD,EAAQ,QACfwD,GAAexD,EAAQ,QAEd,QAGXgD,MAAO,KAAM,CACTO,KAAMre,OAAO+d,OAAOM,IACpBC,aAActe,OAAO+d,OAAOO,MAGhCjX,QAAS,CACLgX,KAAKP,GAAS,OAAOA,EAAMO,MAC3BE,iBAAmB,MAAO,IAC1BC,QAAU,OAAO,GACjBC,UAAY,OAAO,GACnBH,aAAaR,GAAS,OAAOA,EAAMQ,eAGvCH,UAAW,GAGXC,QAAS,ICrBb,SAASM,KACP,MAAO,CACLC,gBAAiB,MACjBC,WAAY,CAEV,CAAEtb,KAAM,MAAOub,MAAO,OAAQC,OAAQ,IAAKC,KAAM,GACjD,CAAEzb,KAAM,MAAOub,MAAO,YAAaC,OAAQ,IAAKC,KAAM,QACtD,CAAEzb,KAAM,MAAOub,MAAO,oBAAqBC,OAAQ,IAAKC,KAAM,QAC9D,CAAEzb,KAAM,MAAOub,MAAO,kBAAmBC,OAAQ,IAAKC,KAAM,OAC5D,CAAEzb,KAAM,MAAOub,MAAO,iBAAkBC,OAAQ,IAAKC,KAAM,QAG7DC,gBAAiB,KACjBC,WAAY,GAID,QACbC,YAAY,EACZpB,MAAOY,GAEPrX,QAAS,CACPsX,gBAAgBb,GAAS,OAAOA,EAAMa,iBACtCC,WAAWd,GAAS,OAAOA,EAAMc,YACjCO,gBAAgBrB,GACd,IAAI/Y,EAAI+Y,EAAMc,WAAWQ,KAAKC,GAAQA,EAAK/b,OAASwa,EAAMa,iBAI1D,OAHIb,EAAMkB,iBAAmBlB,EAAMkB,gBAAgBlB,EAAMa,mBAAqBW,MAAMxB,EAAMkB,gBAAgBlB,EAAMa,oBAC9G5Z,EAAEga,KAAOjB,EAAMkB,gBAAgBlB,EAAMa,kBAEhC5Z,IAIXoZ,UAAW,CACToB,gBAAgBzB,EAAO0B,GACrB1B,EAAMa,gBAAkBa,GAE1BC,iBAAiB3B,EAAO0B,GACtB,IAAIE,EAAQ,GACZ,IAAK,MAAMpc,KAAQkc,EACjBE,EAAMpc,GAAQqc,OAAOH,EAAQlc,IAE/Bwa,EAAMkB,gBAAkBU,EACxB5B,EAAMmB,WAAaW,KAAKC,MAAMC,KAAKC,MAAQ,MAE7CC,YAAYlC,GACV,MAAM3c,EAAIud,KACV1e,OAAOigB,KAAK9e,GAAG6I,QAAQjE,IACrB+X,EAAM/X,GAAO5E,EAAE4E,OAKrBqY,QAAS,CACP8B,gBAAe,OAACC,GAAS5gB,GACvB4gB,EAAO,kBAAmB5gB,IAE5B6gB,eAAc,MAACtC,EAAD,OAAQqC,IACpB,OAAO,IAAIre,QAAQ,CAACC,EAASC,KAC3B,MAAMqe,EAAKT,KAAKC,MAAMC,KAAKC,MAAQ,KACL,OAA1BjC,EAAMkB,iBAA4BlB,EAAMmB,WAAaoB,EAAK,OAC5DF,EAAO,eACPjT,IAAM7H,IAAI4H,qDACPtJ,KAAKwJ,IACJgT,EAAO,mBAAoBhT,EAAK5N,MAChCwC,EAAQoL,EAAK5N,QAEd0O,MAAO7J,GAAUpC,EAAOoC,KAE3BrC,EAAQ+b,EAAMkB,sBCtET,IAGXlB,MAAO,KAAM,CACTwC,UAAW,KAGfjZ,QAAS,CACLC,aAAawW,GAAS,OAAOA,EAAMwC,YAGvCnC,UAAW,CACP3W,cAAcsW,EAAOwC,GACjBxC,EAAMwC,UAAYA,GAEtBzY,qBAAqBiW,GACjBA,EAAMwC,UAAUC,YAAa,IAIrCnC,QAAS,CACLoC,cAAa,OAACL,GAASG,GAInB,OAHKA,EAAUC,aACXD,EAAUC,YAAa,GAEpBJ,EAAO,gBAAiBG,IAEnCG,gBAAe,OAACN,IACZA,EAAO,gBAAiB,KAE5BO,mBAAkB,OAACP,IACfA,EAAO,gBAAiB,CAAC/b,OAAO,KAEpCuc,qBAAoB,OAACR,IACjBA,EAAO,yBAEXS,qBAAoB,OAACT,IACjBA,EAAO,gBAAiB,CAACU,SAAS,EAAMN,YAAY,OCtCjD,IACXzC,MAAO,KAAM,IAGbzW,QAAS,CACLyZ,qBAAuB,OAAO,GAC9BC,yBAA2B,OAAO,GAClCC,uBAAyB,OAAO,GAChCC,YAAYnD,EAAOzW,EAAS6Z,EAAWC,GACnC,OAAOA,EAAYlD,cAAcmD,OAErCC,qBAAqBvD,EAAOzW,GACxB,MAAO,CAAC,CAAC5B,MAAO,IAAKtC,IAAKkE,EAAQia,aAAaC,OAAOla,EAAQ4Z,cAElEO,gBAAgB1D,EAAOzW,EAAS6Z,EAAWC,GACvC,OAAOA,EAAYlD,cAAcwD,WAErCC,yBAAyB5D,EAAOzW,GAC5B,MAAO,CAAC,CAAC5B,MAAO,IAAKtC,IAAKkE,EAAQia,aAAaC,OAAOla,EAAQma,kBAElEG,cAAc7D,EAAOzW,EAAS6Z,EAAWC,GACrC,OAAOA,EAAYlD,cAAc2D,SAErCN,aACI,MAAQ,+CAEZO,iBACI,MAAQ,mDAEZC,gBACI,OAAO,IAIf3D,UAAW,GAGXC,QAAS,ICpCb,MAAM2D,GAAYjH,EAAQ,QAEX,QAGXgD,MAAO,KAAM,CACTkE,SAAU,GACVC,IAAK,KACLC,YAAY,EACZH,UAAW/hB,OAAO+d,OAAOgE,MAG7B1a,QAAS,CACL2a,SAASlE,GACL,OAAOA,EAAMkE,UAEjBG,aAAarE,GACT,OAAOA,EAAMmE,KAEjBG,mBAAmBtE,GACf,OAAOA,EAAMiE,WAEjBM,mBAAmBvE,GACf,OAAOA,EAAMmE,IAAM,EAAI,IAI/B9D,UAAW,CACPmE,YAAYxE,GAAO,KAACpF,EAAD,QAAO6J,IACtBzE,EAAMkE,SAAStJ,EAAK,IAAI6J,EAAQC,WAAaD,GAEjDE,QAAQ3E,EAAO0B,GACX1B,EAAMmE,IAAMzC,EACZ1B,EAAMoE,YAAa,GAEvBQ,eAAe5E,EAAO0B,GAClB1B,EAAMoE,WAAa1C,IAI3BpB,QAAS,CACLuE,aAAY,MAAC7E,EAAD,OAAQqC,IAAS,KAACzH,EAAD,UAAO8J,IAChC,IAAII,EAAiB9E,EAAMkE,SAAWlE,EAAMkE,SAAW,GACvD,MAAMjc,EAAM2S,EAAO,IAAM8J,EACzB,OAAIzc,KAAO6c,EACAA,EAAe7c,GAEnBmH,IAAM7H,IAAK,8CAAuCmd,UAAkB9J,KACtE/U,KAAKwJ,IACF,IAAIoV,EAAUpV,EAAK5N,KACfsjB,EAAanK,KAAQ6J,EAAU7J,EAAO,KAE1C,OADA6J,EAAU,IAAIA,EAAQ,SAAUA,EAAQM,GAAaL,YAAWK,cACzD1C,EAAO,cAAe,CAACzH,OAAM6J,cAEvC5e,KAAK,IAAMma,EAAMkE,SAASjc,KAGnC+c,kBAAiB,OAAC3C,EAAD,MAASrC,EAAT,QAAgBzW,GAAU0b,GAAQ,GAC/C,OAAKA,GAAS1b,EAAQgb,mBACX,KAEPvE,EAAMoE,WACC,IAAIpgB,SAAQ,SAAUC,IACzB,SAAUihB,IACN,GAAI3b,EAAQgb,mBAAoB,OAAOtgB,IACvC6C,WAAWoe,EAAY,MAF3B,OAMR7C,EAAO,kBAAkB,GAClBjT,IAAM7H,IAAI4H,8CACZtJ,KAAKwJ,IACF,IAAI6U,EAAW,GACf,IAAK,IAAIiB,KAAY5b,EAAQ6W,UAAW,CACpC,MAAMxF,EAAOuK,EAAShI,MACtB+G,EAAStJ,GAAQ,GACjB,IAAK,IAAI8J,KAAarV,EAAK5N,KAAM,CAC7B,IAAIgjB,EAAUpV,EAAK5N,KAAKijB,GACpBK,EAAanK,KAAQ6J,EAAU7J,EAAO,KAC1CsJ,EAAStJ,GAAMrY,KAAK,IAAIkiB,EAAQ,SAAUA,EAAQM,GAAaL,YAAWK,gBAGlF1C,EAAO,UAAW6B,SCzEtC/H,OAAIC,IAAIgJ,QAEO,WAAIA,OAAKC,MAAM,CAC1B7iB,QAAS,CACL8iB,gBACAC,aACAC,MACAC,YACAjD,aACAkD,aAEJC,QAAS,CACLC,eAAqB,CACjB3d,IAAK,cACL4d,MAAO,CACH,iBCzBD,IACX1c,SAAU,CACN2c,SAAW,MAAO3W,4BAClB4W,SAAW,MAAO5W,gCAClBiR,YAAc,OAAO/W,KAAKC,OAAOC,QAAQ6W,WACzCI,eAAiB,OAAOnX,KAAKC,OAAOC,QAAQiX,cAC5CN,aAAe,OAAO7W,KAAKC,OAAOC,QAAQ2W,YAC1CO,iBAAmB,OAAOpX,KAAKC,OAAOC,QAAQkX,gBAC9CC,QAAU,OAAOrX,KAAKC,OAAOC,QAAQmX,OACrCC,UAAY,OAAOtX,KAAKC,OAAOC,QAAQoX,SACvC9F,cACI,OAAOxR,KAAK2c,MAAMzI,QAEtB0I,QACI,IAAI3N,EAAIjP,KAAK+W,UAAUnD,OAAOrZ,GAAKA,EAAEuZ,QAAU9T,KAAKwR,aACpD,OAAOvC,GAAKA,EAAErW,QAAUqW,EAAE,GAAG4E,KAEjCgJ,kBACI,MAAM5N,EAAIjP,KAAK+W,UAAUnD,OAAOrZ,GAAKA,EAAEuZ,QAAU9T,KAAKwR,aACtD,OAAOvC,EAAErW,OAASqW,EAAE,GAAG6N,KAAO9c,KAAKwR,aAGvC3K,eACI,MAAOf,4CAGXiX,cACI,IAAItjB,EAAS,GACTgd,EAAiBzW,KAAKC,OAAOC,QAAQuW,eACzC,IAAK,IAAI/d,KAAKsH,KAAK+W,UAAW,CAC1B,IAAIxF,EAAOvR,KAAK+W,UAAUre,GAAGob,MAC7Bra,EAAO8X,GAAQ,GACf,IAAK,IAAI8J,KAAa5E,EAClBhd,EAAO8X,GAAMrY,KAAK,IAAIud,EAAe4E,GAAW9J,GAAO8J,YAAW2B,QAAuB,SAAd3B,IAGnF,OAAO5hB,GAGXwjB,eACI,IAAIxjB,EAAS,GACTid,EAAkB1W,KAAKC,OAAOC,QAAQwW,gBAC1C,IAAK,IAAIhe,KAAKsH,KAAK+W,UAAW,CAC1B,IAAIxF,EAAOvR,KAAK+W,UAAUre,GAAGob,MAC7Bra,EAAO8X,GAAQ,GACf,IAAK,IAAI8J,KAAa3E,EAClBjd,EAAO8X,GAAMrY,KAAK,IAAIwd,EAAgB2E,GAAW9J,GAAO8J,cAGhE,OAAO5hB,GAGXyjB,gBACI,IAAI1P,EAAM,GACV,GAAIxN,KAAK+W,UACL,IAAK,IAAIre,KAAKsH,KAAK+W,UACfvJ,EAAIxN,KAAK+W,UAAUre,GAAGob,OAAS9T,KAAK+W,UAAUre,GAAGykB,YAGrD3P,EAAI,MAAQ,UAEhB,OAAOA,GAGX4P,WACI,MAAMC,EAAiB,SAASjX,GACxB,IAAIkX,EAAOriB,SAASQ,cAAc,OAClC,IAAK,IAAI8hB,KAAKnX,EAASkX,EAAKtgB,aAAaugB,EAAGnX,EAAMmX,IAClD,OAAOD,EAAKE,WAEhBC,EAAc,mBAAkBzd,KAAKqX,MAAQ,MAAQ,aACrDqG,EAAkB,SAASC,EAAQC,EAAQC,EAAc,MACrD,IAAIC,EAAK,GACT,IAAK,IAAIplB,KAAKilB,EAAQ,CAClB,MAAMxZ,EAAIzL,EAAK,IAAK,GAAFA,MAAW,IAAK0L,EAAIwZ,EAAU,IAAU,GAAPA,MAAgB,IACnE,IAAIG,EAAS,GACb,GAAIF,EAAa,CACb,MAAMG,EAAWH,EAAYF,EAAOjlB,IACpCqlB,EAAO,cAAgBC,EAAS,GAAKA,EAAS,GAAK,SACnDD,EAAO,WAAaC,EAAS,GAAKA,EAAS,GAAK,SAEpD,MAAMtG,EAAS,sCAAqC+F,6BAAsCtZ,KAAKC,gEAE3FiZ,EAAe,CAAC,IAAO,0BAA2B,MAAS,GAAI,OAAU,MAAOU,IACpFD,EAAG5kB,KAAK,CAACoF,MAAOqf,EAAOjlB,GAAIsD,IAAKyhB,EAAY/F,WAAUqG,IAE1D,OAAOD,GAGf,IAAIV,EAAW,GACXlG,EAAOlX,KAAKC,OAAOC,QAAQgX,KAO/B,OANAkG,EAASnc,MAAQyc,EAAgBxG,EAAKjW,MAAO,EAAGiW,EAAK8G,UACrDZ,EAASjc,WAAauc,EAAgBxG,EAAK/V,WAAY,GACvDic,EAASlc,QAAUwc,EAAgBxG,EAAKhW,QAAS,GACjDkc,EAAShc,IAAMsc,EAAgBxG,EAAK9V,IAAK,GACzCgc,EAAS5b,KAAOkc,EAAgBxG,EAAK1V,KAAM,GAEpC4b,IAIfhd,QAAS,CACL6d,oBACI,MAAMC,EAAYle,KAAK+W,UAAUvK,IAAIjS,GAAKA,EAAEuZ,OAC5C,GAAI9T,KAAKqX,OAASjY,OAAO+e,aAAaC,eAAiBF,EAAUxc,SAAStC,OAAO+e,aAAaC,eAC1F,OAAOhf,OAAO+e,aAAaC,cAE/B,MAAMC,EAAiBC,UAAUxC,UAAYwC,UAAUC,iBAAmBD,UAAUE,aAC9EC,EAAkBH,UAAUvH,WAAarH,MAAMC,QAAQ2O,UAAUvH,YAAcuH,UAAUvH,UAAUne,OACrG0lB,UAAUvH,UAAY,CAACsH,GAC3B,IAAK,IAAIK,KAAkBD,EAAiB,CACxC,GAAIP,EAAUxc,SAASgd,GACnB,OAAOA,EACJ,GAAIA,EAAe9lB,OAAS,GAAKslB,EAAUxc,SAASgd,EAAetV,OAAO,EAAG,IAChF,OAAOsV,EAAetV,OAAO,EAAG,GAGxC,MAAO,MAGXuV,aAAaC,EAAMC,EAAc,MAE7B,GADAA,EAA+B,OAAhBA,EAAwB7e,KAAK8Q,OAAOjF,OAAO+S,KAAOC,GAC5DD,EAAM,OAAO,EAClB,GAAIlP,MAAMC,QAAQiP,GAAO,CACrB,IAAK,IAAIlmB,KAAKkmB,EACV,GAAIA,EAAKlmB,KAAOmmB,EAAa,OAAO,EAExC,OAAO,EAEP,OAAOD,IAASC,GAIxBC,gBACI1f,OAAO+e,aAAaY,gBAAkB,GAG1CC,oBACI,QAAS5f,OAAO+e,aAAaY,iBAGjCnb,aAAa+G,GAMT,OAAOsU,KAAKC,mBAAmBvU,GAAK3H,QAAQ,mBACxC,SAAsBE,EAAOgN,GACzB,OAAOiP,OAAOC,aAAa,KAAOlP,QAI9CtF,aAAaD,GAET,OAAO0U,mBAAmBC,KAAK3U,GAAKiE,MAAM,IAAIpC,KAAI,SAAU5O,GACxD,MAAO,KAAO,KAAOA,EAAE2hB,WAAW,GAAGC,SAAS,KAAKlgB,OAAO,MAC3D0O,KAAK,MAEZyR,iBAAiBC,EAAO9H,GACpB,OAAOa,KAAKkH,MAAMD,EAAQ9H,IAE9BgI,kBAAkBF,EAAO9H,GACrB,IAAIiI,EAAYH,EAAQ9H,EAAQ,GAChC,OAAIY,OAAOsH,UAAUD,GACVA,EAEAA,EAASE,QAAQ,IAIhCC,kBAAkB3E,EAAW9J,EAAO,KAAM0O,EAAe,MACrD,IAAKjgB,KAAKC,OAAOC,QAAQ8a,aAAc,OAAOiF,EACzC1O,IAAMA,EAAOvR,KAAKwR,aACjBD,KAAQvR,KAAKC,OAAOC,QAAQ8a,eAAezJ,EAAO,MACxD,MAAMtC,EAAIjP,KAAKC,OAAOC,QAAQ8a,aAAazJ,GAAMqC,OAAO3L,GAAKA,EAAEoT,YAAcA,GAC7E,OAAOpM,EAAErW,OAASqW,EAAE,GAAKgR,GAG7BC,cAAc7E,EAAW9J,EAAO,KAAM0O,EAAe,MACjD,MAAM7E,EAAUpb,KAAKggB,kBAAkB3E,EAAW9J,GAClD,OAAK6J,GACA7J,IAAMA,EAAOvR,KAAKwR,aACjBD,KAAQvR,KAAKC,OAAOC,QAAQ8a,eAAezJ,EAAO,MAEjD6J,EAAW,GAAE7J,eAAkB6J,EAAQwD,OAASqB,GAJlCA,GAOzBE,iBAAiB9E,EAAW9J,EAAO,KAAM0O,EAAe,MACpD,IAAKjgB,KAAK+c,YAAa,OAAOkD,EACzB1O,IAAMA,EAAOvR,KAAKwR,aACjBD,KAAQvR,KAAK+c,cAAcxL,EAAO,MACxC,MAAMtC,EAAIjP,KAAK+c,YAAYxL,GAAMqC,OAAO3L,GAAKA,EAAEoT,YAAcA,GAC7D,OAAOpM,EAAErW,OAAU,GAAE2Y,KAAQtC,EAAE,GAAG2P,OAASqB,GAG/CG,qBAAqBvf,GACjB,MAAMwf,EAAc,CAAC1V,EAAK+B,KACtB,MAAMxD,EAAclJ,KAAKqX,MACpB,SAAQrX,KAAKyc,UAAU/P,8DACvB,UAASA,4BACd,OAAO/B,EAAI3H,QAAQ,qCAAuC,OAAMkG,SAE9DoX,EAAQC,GAAW,IAAI3T,OAAO,uBAAyB2T,EAAU,mBAAoB,KAE3F,IAAK1f,EAAM,MAAO,GAClB,GAAIA,EAAKqC,MAAM,+BACX,GAAIlD,KAAKC,OAAOC,QAAQ8a,aAAc,CAClC,MAAM7c,EAAI,CAACR,EAAGiB,IAAQyhB,EAAY1iB,EAAGqC,KAAKkgB,cAActhB,EAAK,KAAM,MACnEiC,EAAOA,EAAKmC,QAAQsd,EAAM,qBAAsBniB,EAAG0C,GACnDA,EAAOA,EAAKmC,QAAQsd,EAAM,oBAAqBniB,EAAG0C,QAElDb,KAAKwgB,UAAU,IAAMxgB,KAAKC,OAAOM,SAAS,qBAGlD,MAAMvG,EAAI,CAAC2D,EAAGiB,IAAQyhB,EAAY1iB,EAAGqC,KAAKmgB,iBAAiBvhB,EAAK,KAAM,MACtEiC,EAAOA,EAAKmC,QAAQsd,EAAM,mBAAoBtmB,EAAG6G,GACjD,MAAM4f,EAAK,CAAC9iB,EAAGiB,IAAQyhB,EAAY1iB,EAAI,GAAEqC,KAAKwR,eAAe5S,KAG7D,OAFAiC,EAAOA,EAAKmC,QAAQsd,EAAM,kBAAmBG,EAAI5f,GACjDA,EAAOA,EAAKmC,QAAQsd,EAAM,OAAQ3iB,GAAK8iB,EAAG9iB,EAAG,eAAgBkD,GACtDA,GASX6f,gBAAgBC,GAAe,GAC3B,GAAI3gB,KAAKqX,OAASrX,KAAKsX,QAAS,MAAO,GACvC,MAAM9F,EAAcxR,KAAK8Q,OAAOjF,OAAO0F,KAAOvR,KAAK8Q,OAAOjF,OAAO0F,KAAOvR,KAAK2c,MAAMnL,YACnF,IAAIoP,EAAQ,GAAIvF,EAAY,KAC5B,MAAML,EAAehb,KAAKC,OAAOC,QAAQ8a,aAAehb,KAAKC,OAAOC,QAAQ8a,aAAehb,KAAKC,OAAOC,QAAQ+a,mBAE/G,GAAyB,YAArBjb,KAAK8Q,OAAOvT,MAAsByC,KAAK8Q,OAAOjF,OAAO+S,MAAQ5D,GAAiBxJ,KAAewJ,EAAe,CAC5G,MAAM6F,EAAe/d,GAAOA,IAAO9C,KAAK2e,aAAa7b,EAAG8b,OAAS5e,KAAK2e,aAAa7b,EAAGge,UAChF7R,EAAI+L,EAAaxJ,GAAaoC,OAAOiN,GACvC5R,EAAErW,SAAQyiB,EAAYpM,EAAE,GAAGoM,gBAC5B,GAAyB,gBAArBrb,KAAK8Q,OAAOvT,MAA0ByC,KAAK8Q,OAAOjF,OAAO+S,MACxDpN,KAAexR,KAAK+c,YAAc,CAC1C,MAAM9N,EAAIjP,KAAK+c,YAAYvL,GAAaoC,OAAOmN,GAAG/gB,KAAK2e,aAAaoC,EAAEnC,OAClE3P,EAAErW,SAAQyiB,EAAYpM,EAAE,GAAGoM,WAGnC,IAAK,IAAIlf,KAAQ6D,KAAKkd,cAAe,CACjC,IAAIxQ,EAAM,IAAIvQ,EACVoB,EAAOyC,KAAK8Q,OAAOvT,KACvB,GAAIyC,KAAK8Q,OAAOvT,KAAM,CAClB,IAAIsO,EAAS,IAAI7L,KAAK8Q,OAAOjF,OAAQ0F,KAAMpV,GAE3C,GAAyB,YAArB6D,KAAK8Q,OAAOvT,KACZ,GAAI8d,EAAW,CACX,MAAM2F,EAAKhG,EAAa7e,GAAMyX,OAAOmN,GAAGA,EAAE1F,YAAcA,GACpD2F,EAAGpoB,OAAQiT,EAAO+S,KAAOoC,EAAG,GAAGpC,KAC9BrhB,EAAO,iBACTA,EAAO,iBACX,GAAyB,gBAArByC,KAAK8Q,OAAOvT,KACnB,GAAI8d,GAAarb,KAAK+c,YAAY5gB,GAAM,GAAGkf,YAAcA,EAErD9d,EAAO,YACJ,GAAI8d,EAAW,CAClB,MAAM2F,EAAKhhB,KAAK+c,YAAY5gB,GAAMyX,OAAOmN,GAAGA,EAAE1F,YAAcA,GACxD2F,EAAGpoB,OAAQiT,EAAO+S,KAAOoC,EAAG,GAAGpC,KAC9BrhB,EAAO,YACTA,EAAO,OAElBmP,EAAM1M,KAAKihB,QAAQrmB,QAAQ,CAAC2C,OAAMsO,WAAS/Q,OAG3C6lB,GAAkB3gB,KAAK8Q,OAAOvT,MAAQA,IAASyC,KAAK8Q,OAAOvT,QAC/DqjB,EAAMzkB,GAAQuQ,GAGlB,OAAOkU,K,6CCrQnBxhB,OAAO8hB,MAAQvN,EAAQ,QAGvBb,OAAI9R,OAAOmgB,eAAgB,EAG3B,IAAIC,GAAQzN,UACZyN,GAAMtI,OAAOtM,IAAI5N,GAAOkU,OAAI6B,UAAU/V,EAAIgQ,MAAM,KAAKyS,MAAMzS,MAAM,KAAK,GAAIwS,GAAMxiB,GAAK4I,UAErF,MAAM8Z,GAAeC,OAAOzoB,UAAUI,KACtCqoB,OAAOzoB,UAAUI,KAAO,SAAcsoB,EAAUC,EAAWC,GACzD,OAAID,GAAaC,EAAiBJ,GAAatoB,KAAKgH,KAAMwhB,EAAUC,EAAWC,GACxEJ,GAAatoB,KAAKgH,KAAMwhB,GAAU1a,MAAM7K,GAAOA,IAMxD6W,OAAI6B,UAAU,kBAAmBgN,SACjC7O,OAAI6B,UAAU,aAAcgN,SAE5B7O,OAAI8O,MAAMC,IACV,IAAI/O,OAAI,CACJiD,OAAQ+L,EACRC,SACAC,UACA/N,OACA3D,OAAQpM,GAAKA,EAAE+d,KAChBC,OAAO,S,oCCzCK,QACX9pB,OACI,MAAO,IAGX0H,SAAU,GAEVM,QAAS,CACLuE,qBAAqBgG,EAAK/F,GACtB,IAAK+F,EAAIzH,MAAM,QACX,OAAOyH,EAEX,IAAIE,EAAS,IAAIC,UACbhG,EAAU+F,EAAOE,gBAAgBJ,EAAI,YACrCwX,EAAQrd,EAAQxC,iBAAiB,YACrC,IAAK6f,EACD,OAAOxX,EAEX,IAAK,IAAI9J,KAAQshB,EAAO,CACpB,MAAM5kB,EAAOsD,EAAKxF,aAAa,MAI/B,GAHIkC,KAAQqH,IACR/D,EAAKmJ,YAAcpF,EAASrH,IAE5BsD,EAAKuhB,aAAa,cAAmB7kB,EAAF,cAAqBqH,EAAU,CAClE,IAAIyd,EAAKxhB,EAAKxF,aAAa,aAAa6H,MAAM,oBAC1Cof,EAAUhhB,WAAW+gB,EAAG,IAAIzd,EAAYrH,EAAF,aAAmB,IAC7DsD,EAAK7D,aAAa,YAAc,GAAEslB,IAAUD,EAAG,OAGvD,OAAO,IAAIpX,eAAgBC,kBAAkBpG,EAAQqG,qB,kCC7BlD,QACX/S,OACI,MAAMmqB,EAAW,ocAEXC,EAAa,ibAEbC,EAAa,kBACbC,EAAgB,sBAEhBC,EAAe5B,KAAOA,GAAK/gB,KAAK2R,GAAG,gCACnCiR,EAAU7B,KAAOA,GAAK,IAAInoB,QAAU2pB,EAASM,KAAK9B,IAAM/gB,KAAK2R,GAAG,6BAChEmR,EAAY/B,KAAOA,GAAK,IAAInoB,QAAU4pB,EAAWK,KAAK9B,IAAM/gB,KAAK2R,GAAG,+BACpEoR,EAAYhC,KAAOA,GAAK,IAAInoB,QAAU6pB,EAAWI,KAAK9B,IAAM/gB,KAAK2R,GAAG,+BACpEqR,EAAejC,KAAOA,GAAK,IAAInoB,QAAU8pB,EAAcG,KAAK9B,IAAM/gB,KAAK2R,GAAG,2BAChF,MAAO,CACHgR,eACAC,UACAE,YACAC,YACAC,eACAC,cAAeC,GACJnC,IAAMA,GAAK,IAAInoB,QAAUsqB,GAAaljB,KAAK2R,GAAG,mCAAoC,CAACuR,cAE9FC,cAAeC,GACJrC,IAAMA,GAAK,IAAInoB,QAAUwqB,GAAapjB,KAAK2R,GAAG,mCAAoC,CAACyR,kB,ifCxB1G,gBAMe,QACXtjB,SAAU,CACNujB,cACI,MAAO,0UAEXC,mBACI,MAAO,y7BAEXC,UACI,MAAO,yRAEXC,gBACI,MAAO,+GAEXC,aACI,MAAO,qiCAEXC,eACI,MAAO,iyBAEXC,aACI,MAAO,i5CAaXC,YACI,MAAO,0OAEXC,cACI,MAAO,qnEAEXC,eACI,MAAO,iTAEXC,aACI,MAAO,wzFAEXC,aACI,MAAO,i/HAEXC,eACI,MAAO,01EAEXC,cACI,MAAO,uVAEXC,kBACI,MAAO,01EAEXC,cACI,MAAO,2SAEXC,eACI,MAAO,mcAEXC,mBACI,MAAO,0YAEXC,eACI,MAAO,0FAEXC,cACI,MAAO,ieAEXC,YACI,MAAO,0NAGfrkB,QAAS,CACLskB,UAAUhpB,EAAM6B,GACZ,GAAa,WAAT7B,EACA,OAAQ6B,GACR,IAAK,MAAO,OAAOonB,OACnB,IAAK,QAAS,OAAOC,OACrB,IAAK,WAAY,OAAOC,OACxB,IAAK,WAAY,OAAO7kB,KAAK8jB,aAC7B,IAAK,UAAW,OAAO9jB,KAAK6jB,YAC5B,IAAK,OAAQ,OAAOiB,OACpB,IAAK,OAAQ,OAAOC,OACpB,IAAK,MAAO,OAAOC,OACnB,IAAK,QAAS,OAAOC,OACrB,IAAK,UAAW,OAAOC,OACvB,IAAK,SAAU,OAAOllB,KAAK2jB,WAC3B,IAAK,QAAS,OAAOwB,OACrB,IAAK,OAAQ,OAAOC,OACpB,IAAK,eAAgB,OAAOC,OAC5B,IAAK,cAAe,OAAOC,OAC3B,IAAK,kBAAmB,OAAOJ,YAE5B,GAAa,YAATxpB,EACP,OAAQ6B,GACR,IAAK,OAAQ,OAAOwnB,OACpB,IAAK,MAAO,OAAOJ,OACnB,IAAK,UAAW,OAAOO,OAG3B,OAAOK,W,kCC/GnB,MAAMC,EAAa,CAACC,EAAOnnB,EAAOonB,EAAU,OAAQC,EAAW,aAC3D,IAAIC,EAAK/sB,OAAOigB,KAAK2M,GAAOjZ,IAAI+Q,GAAM,IAAGA,MAAMkI,EAAMlI,QAAQvP,KAAK,IAC9DlL,EAAK7H,SAASuH,cAAe,QAAOkjB,IAAUE,KAClD,IAAK9iB,EAAI,CACL,IAAKxE,EAAO,OACZwE,EAAK7H,SAASQ,cAAciqB,GAC5B,IAAK,IAAInI,KAAKkI,EACV3iB,EAAG9F,aAAaugB,EAAGkI,EAAMlI,IAC7BtiB,SAASuH,cAAc,QAAQjG,YAAYuG,GAE3CxE,EAAOwE,EAAG9F,aAAa2oB,EAAUrnB,GAChCwE,EAAG+iB,UAGG,QACXzlB,QAAS,CACL0lB,SAASlU,EAAQ,MACb,IAAImU,EAAQ,CAACjgB,gBAETigB,EADArW,MAAMC,QAAQiC,GACN,IAAIA,KAAUmU,GACfnU,EACC,CAACA,KAAUmU,GAEX,CAAC/lB,KAAK2R,GAAG,oBAAqBoU,GAE1C,MAAMC,EAAYlgB,GAAkCigB,EAAM/X,KAAK,OAC/D/S,SAAS2W,MAAQoU,EACjBR,EAAW,CAACjoB,KAAM,iBAAkByoB,GACpCR,EAAW,CAACjoB,KAAM,YAAayoB,GAC/BhmB,KAAKimB,SAAUjmB,KAAK8Q,QAAU9Q,KAAK8Q,OAAOO,KAAQrR,KAAK8Q,OAAOO,KAAK6U,UAAU,KAAO,IACpFlmB,KAAKmmB,WAAW,0BAGhBnmB,KAAKomB,YAAY,MACjBpmB,KAAKqmB,gBAAgB,MACrBb,EAAW,CAACjoB,KAAM,YAAauI,kDAG/B,MAAMwgB,EAAetmB,KAAK0gB,iBAAgB,GAC1C,IAAK,IAAInP,KAAQ+U,EACbd,EAAW,CAAClqB,IAAK,YAAairB,SAAUhV,GAAOzL,2BAAwBwgB,EAAa/U,GAAO,OAAO,SAE1G0U,SAASvZ,GACAA,EAAIxJ,MAAM,WAAUwJ,EAAM5G,2BAA0B4G,GACzD8Y,EAAW,CAAClqB,IAAK,aAAcoR,EAAK,OAAQ,QAC5C8Y,EAAW,CAACjoB,KAAM,UAAWmP,GAC7B8Y,EAAW,CAACjoB,KAAM,eAAgBmP,IAEtCyZ,WAAWzZ,GACFA,EAAIxJ,MAAM,WAAUwJ,EAAM5G,2BAA0B4G,GACzD8Y,EAAW,CAACjoB,KAAM,YAAamP,GAC/B8Y,EAAW,CAACjoB,KAAM,iBAAkBmP,IAExC0Z,YAAYI,EAAO,MACf,MAAMC,EAAWD,GAAcxmB,KAAK2R,GAAG,gBACvC6T,EAAW,CAACjoB,KAAM,eAAgBkpB,GAClCjB,EAAW,CAACjoB,KAAM,kBAAmBkpB,GACrCjB,EAAW,CAACjoB,KAAM,uBAAwBkpB,IAE9CJ,gBAAgBK,EAAK,MACjBlB,EAAW,CAACjoB,KAAM,YAAampB,O,k6uEC5D3C,gBAEA,MAAMC,EAAW,IAAI7T,OAEN6T","file":"js/app~970f9218.9485ecdb.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app~970f9218\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app~970f9218\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"About~31ecd969\":\"About~31ecd969\",\"Resources~31ecd969\":\"Resources~31ecd969\",\"datepickercss~fb17632a\":\"datepickercss~fb17632a\",\"datepicker~b5906859\":\"datepicker~b5906859\",\"jsqr~1df1df2f\":\"jsqr~1df1df2f\"}[chunkId]||chunkId) + \".\" + {\"About~31ecd969\":\"625c5b1a\",\"Resources~31ecd969\":\"2e065045\",\"datepickercss~fb17632a\":\"c4176de2\",\"datepicker~b5906859\":\"981504e5\",\"jsqr~1df1df2f\":\"07d0e5fe\"}[chunkId] + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"About~31ecd969\":1,\"Resources~31ecd969\":1,\"datepickercss~fb17632a\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"About~31ecd969\":\"About~31ecd969\",\"Resources~31ecd969\":\"Resources~31ecd969\",\"datepickercss~fb17632a\":\"datepickercss~fb17632a\",\"datepicker~b5906859\":\"datepicker~b5906859\",\"jsqr~1df1df2f\":\"jsqr~1df1df2f\"}[chunkId]||chunkId) + \".\" + {\"About~31ecd969\":\"64f5e167\",\"Resources~31ecd969\":\"652ba737\",\"datepickercss~fb17632a\":\"23bf9159\",\"datepicker~b5906859\":\"31d6cfe0\",\"jsqr~1df1df2f\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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 = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors~2ebc07f6\",\"chunk-vendors~e4173fa2\",\"chunk-vendors~d939e436\",\"chunk-vendors~f9ca8911\",\"chunk-vendors~fdc6512a\",\"chunk-vendors~cf55716b\",\"chunk-vendors~02576867\",\"chunk-vendors~b1f96ece\",\"chunk-vendors~d2305125\",\"chunk-vendors~78eefc6e\",\"chunk-vendors~4a7e9e0b\",\"chunk-vendors~793fb972\",\"chunk-vendors~85da75cb\",\"chunk-vendors~ce053847\",\"app~d0ae3f07\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import axios from \"axios\";\nimport qrdownload from \"./qrdownload\";\nconst getJsQr = () => import(/* webpackChunkName: \"jsqr\" */'jsqr');\nimport templatetext from \"@/mixins/templatetext\";\n\nexport default {\n mixins: [qrdownload, templatetext],\n data() {\n return {\n lastrequestcounter: 0,\n lastrequest: {},\n lastresponse: null\n }\n },\n computed: {\n _currentqr() {\n return this.$store.getters.getCurrentQr\n }\n },\n methods: {\n _setCurrentQr(newValue) {\n return this.$store.dispatch('setCurrentQr', newValue)\n },\n _resetCurrentQr() {\n return this.$store.dispatch('resetCurrentQr')\n },\n _setCurrentQrError() {\n return this.$store.dispatch('setCurrentQrError')\n },\n _setCurrentQrInvalid() {\n return this.$store.dispatch('setCurrentQrInvalid')\n },\n _setCurrentQrLoading() {\n return this.$store.dispatch('setCurrentQrLoading')\n },\n\n /**\n *\n * @param {String} text\n * @param {Qrstyles} qrstyles\n * @param {String} statictype type of static code (for the stats)\n * @return {Object}\n */\n prepareQueryForApi(text, qrstyles, statictype) {\n const config = qrstyles.config\n return {\n text: text,\n style: config.style,\n eyeball: config.eyeball,\n eyeoutline: config.eyeoutline,\n gap: config.gap,\n gapwidth: config.gap !== 'none' ? parseFloat(config.gapwidth) : 0,\n gapheight: config.gap !== 'none' ? parseFloat(config.gapheight) : 0,\n fill: config.fill,\n errorlevel: ['L', 'M', 'H', 'Q'].includes(config.errorlevel) ? config.errorlevel : '',\n // Not used by server generator but we need them for statistics:\n logo: config.logo,\n template: config.template,\n statictype,\n }\n },\n\n receivederror: function() {\n this._setCurrentQrError()\n //console.error(resp)\n },\n\n /**\n *\n * @param {Qrstyles} qrstyles\n */\n updateQr: async function (qrstyles = null) {\n if (!this.lastresponse || !this.lastresponse.image) {\n this._resetCurrentQr()\n return\n }\n let config = qrstyles ? qrstyles.config : null\n\n let image = this.lastresponse.image, width = this.lastresponse.width, height = this.lastresponse.height\n //let needstransforming = true // TODO make dynamic (replace any color, apply logo, template, etc)\n if (config) {\n let xmlDoc = this.stringToDom(this.lastresponse.image);\n\n // Add colors.\n let els = xmlDoc.querySelectorAll('use'),\n gradient = xmlDoc.querySelector('linearGradient'),\n gradient2 = xmlDoc.querySelector('radialGradient'),\n primarycolor = config.color\n if (gradient) {\n gradient.querySelectorAll('stop')[0].setAttribute('style', 'stop-color:'+config.color+';stop-opacity:1')\n gradient.querySelectorAll('stop')[1].setAttribute('style', 'stop-color:'+config.color2+';stop-opacity:1')\n primarycolor = 'url(\"#'+gradient.getAttribute('id')+'\")'\n } else if (gradient2) {\n gradient2.querySelectorAll('stop')[0].setAttribute('style', 'stop-color:'+config.color2+';stop-opacity:1')\n gradient2.querySelectorAll('stop')[1].setAttribute('style', 'stop-color:'+config.color+';stop-opacity:1')\n primarycolor = 'url(\"#'+gradient2.getAttribute('id')+'\")'\n }\n els.forEach(el => {\n let id = el.getAttribute('xlink:href').replace(/_\\d+$/, ''),\n color = primarycolor,\n eyes = id.match(/^#qr(outline|ball)_eye(.*)$/)\n if (eyes) color = qrstyles.getEyeColor(eyes[1], eyes[2], primarycolor)\n if (id === '#qrdots' || id === '#qrpart2') color = config.color2\n if (id === '#qrpart3') color = config.color3\n if (id === '#qrpart4') color = config.color4\n el.setAttribute('style', 'fill: '+color)\n })\n\n // Add logo\n const logoposition = qrstyles.calculateLogoPosition(this.lastresponse.width, this.lastresponse.height,\n this.lastresponse.gapwidth, this.lastresponse.gapheight)\n if (qrstyles.haslogo) {\n let logosrc = await this.getSvg(qrstyles.logoimage.src)\n let src = 'data:image/svg+xml;base64,' + this.base64encode(this.replaceSvgSrcColor(logosrc, qrstyles.logocolor)),\n imgnode = this.stringToNode(``)\n config.logobehind ? xmlDoc.firstChild.prepend(imgnode) : xmlDoc.firstChild.appendChild(imgnode)\n }\n\n // Apply template\n if (qrstyles.hastemplate) {\n let templatesrc = await this.getSvg(qrstyles.templateimage.src)\n let src = this.replaceTemplateTexts(templatesrc, config.captions)\n src = this.replaceSvgSrcColor(src, qrstyles.templatecolor)\n const tmplDom = this.stringToDom(src),\n el = tmplDom.querySelector('#qr[x][y][width][height]')\n if (el) {\n const scalex = parseFloat(el.getAttribute('width')) / this.lastresponse.width,\n scaley = parseFloat(el.getAttribute('height')) / this.lastresponse.height,\n dx = parseFloat(el.getAttribute('x')),\n dy = parseFloat(el.getAttribute('y')),\n transform = el.getAttribute('transform')\n tmplDom.querySelector('svg').setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink')\n let nd = this.stringToNode(``)\n while (xmlDoc.firstChild.firstChild) {\n nd.appendChild(xmlDoc.firstChild.firstChild)\n }\n if (transform) {\n let nd2 = this.stringToNode(``)\n nd2.appendChild(nd)\n nd = nd2\n }\n el.parentNode.replaceChild(nd, el)\n xmlDoc = tmplDom\n width = qrstyles.templateimage.width\n height = qrstyles.templateimage.height\n }\n }\n\n // Add background\n if (config.bgcolor !== 'transparent') {\n const margin = 0\n const bgrect = this.stringToNode(``)\n xmlDoc.firstChild.prepend(bgrect)\n }\n\n image = this.domToString(xmlDoc);\n }\n // Create a copy of the lastresponse object and assign to currentqr, replace image\n this._setCurrentQr(Object.assign(Object.assign({}, this.lastresponse), {\n image: image,\n }))\n this.validateQr(this.lastrequest.text);\n },\n\n getSvg(src) {\n if (src.startsWith('/')) src = process.env.VUE_APP_URL + src\n return axios.get(src).then((resp) => resp.data)\n },\n\n replaceSvgSrcColor(svg, newcolor) {\n if (newcolor && newcolor !== '#000000' && svg.match(/]*)>/, function (fullmatch, attrs) {\n return (attrs.match(/\\bfill=\".*\"/)) ? fullmatch : ''\n })\n }\n return svg\n },\n\n /**\n * Refresh QR\n *\n * @param {String} text\n * @param {Qrstyles} qrstyles\n * @param {String} statictype type of static code (for the stats)\n */\n refreshQrDemo: function(text, qrstyles, statictype) {\n var reqdata = this.prepareQueryForApi(text, qrstyles, statictype)\n if (JSON.stringify(reqdata) === JSON.stringify(this.lastrequest)) {\n // TODO pretend we are loading :)\n //console.log('Nothing changed!')\n this.updateQr(qrstyles)\n return\n }\n //console.log(reqdata)\n var lastreqtext = this.lastrequest.text\n this.lastrequest = Object.assign({}, reqdata) // Clone reqdata\n if (this.lastresponse && lastreqtext === reqdata.text) {\n reqdata.mx = this.lastresponse.mx\n }\n\n this._setCurrentQrLoading()\n this.lastrequestcounter++\n const requestcounter = this.lastrequestcounter // In case of multiple async requests\n axios.post(this.apiQrDemoUrl, reqdata)\n .then(resp => {\n if (requestcounter === this.lastrequestcounter) {\n this.lastresponse = resp.data\n this.updateQr(qrstyles)\n }\n })\n .catch(this.receivederror)\n\n },\n\n refreshQrPro: function(promise, textForValidation) {\n // TODO prepareQueryForApi is needed here too, we need to exclude fields:\n // changelogocolor, changetemplatecolor, eyecolor, eyestyle, gapcustom, [logopositioning]\n this._setCurrentQrLoading()\n this.lastrequest = { text: textForValidation }\n this.lastrequestcounter++\n const requestcounter = this.lastrequestcounter // In case of multiple async requests\n\n promise\n .then(resp => {\n if (requestcounter === this.lastrequestcounter) {\n this.lastresponse = resp.data\n this.updateQr()\n }\n })\n .catch(this.receivederror)\n\n },\n\n validateQr(expectedText) {\n let canvas\n this.prepareCanvasFromSvg(this._currentqr.image, 150, true)\n .then(result => {\n canvas = result\n return getJsQr()\n })\n .then(jsqr => {\n var imgdata = canvas.getContext(\"2d\").getImageData(0, 0, canvas.width, canvas.height)\n const code = jsqr.default(imgdata.data, imgdata.width, imgdata.height, {})\n if (!code || code.data !== expectedText) {\n this._setCurrentQrInvalid()\n }\n })\n },\n\n },\n\n}\n","export default {\nmethods: {\ntriggerDownload(imgURI, fileName) {\n var evt = new MouseEvent(\"click\", {\n view: window,\n bubbles: false,\n cancelable: true\n });\n var a = document.createElement(\"a\");\n a.setAttribute(\"download\", fileName);\n a.setAttribute(\"href\", imgURI);\n a.setAttribute(\"target\", '_blank');\n a.dispatchEvent(evt);\n return fileName\n},\n\ntriggerDownloadSvg(svg, fileName) {\n return this.triggerDownload('data:image/svg+xml;base64,' + this.base64encode(svg), fileName)\n},\n\n/**\n * Trigger download with the results of authPostBinary request\n *\n * @param {Object} resp response from authPostBinary request\n * @param {String} fileName name of the file to save as (the extension may be changed to .zip if result is a zip)\n */\ntriggerDownloadBinary(resp, fileName) {\n // TODO this might need a different solution for the very large files, see also:\n // https://stackoverflow.com/questions/46932213/how-to-download-large-file-with-javascript\n const blob = new Blob([resp.data], {type: resp.headers['content-type']});\n const objectUrl = URL.createObjectURL(blob);\n if (resp.headers['content-type'] === 'application/zip') {\n fileName = fileName.replace(/\\.[\\w]{3,4}$/, '.zip')\n }\n return this.triggerDownload(objectUrl, fileName)\n},\n\nsanitiseFilename(txt) {\n // From: https://github.com/parshap/node-sanitize-filename/blob/master/index.js (modified)\n // eslint:\n var illegalRe = /[\\/\\?<>\\\\:\\*\\|\"\\+ ]/g // eslint-disable-line no-useless-escape\n var controlRe = /[\\x00-\\x1f\\x80-\\x9f]/g // eslint-disable-line no-control-regex\n var reservedRe = /^\\.+$/;\n var windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i;\n var windowsTrailingRe = /[\\. ]+$/; // eslint-disable-line no-useless-escape\n var replacement = '_';\n\n var sanitized = txt\n .replace(/https?:\\/\\//, '')\n .replace(illegalRe, replacement)\n .replace(controlRe, replacement)\n .replace(reservedRe, replacement)\n .replace(windowsReservedRe, replacement)\n .replace(windowsTrailingRe, replacement)\n .replace(/_+/, '_');\n return sanitized.substr(0, 32);\n},\n\nlocateImage(target) {\n var getClosest = function (elem, selector) {\n for (; elem && elem !== document; elem = elem.parentNode) {\n if (elem.matches(selector)) return elem;\n }\n return null;\n };\n\n if (target.getAttribute('data-context') === 'listing') {\n var tr = getClosest(target, 'tr')\n if (!tr) return null\n return tr.querySelector('.tablecell__thumb img')\n } else if (target.getAttribute('data-context') === 'edit') {\n return document.getElementById('qr__code__preview__img')\n } else if (target.getAttribute('data-context') === 'demo') {\n return document.getElementsByClassName('demo-qr-image')[0].children[0];\n } else {\n return null\n }\n},\n\ngetDownloadLabel(target) {\n if (target.getAttribute('data-context') === 'demo') {\n var container = document.getElementsByClassName('demo-image-container')[0];\n return container.getElementsByClassName('demo-qr-label')[0].textContent;\n } else {\n return target.getAttribute('data-label')\n }\n},\n\nprepareCanvasFromSvg(svg, width, extrabackground = false) {\n return new Promise((resolve) => {\n const origimg = new Image();\n origimg.src = 'data:image/svg+xml;base64,' + this.base64encode(svg)\n origimg.onload = function() {\n let height = width * origimg.naturalHeight / origimg.naturalWidth\n // From: https://stackoverflow.com/a/44769098\n let canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n let ctx = canvas.getContext(\"2d\");\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n if (extrabackground) {\n ctx.fillStyle = 'white';\n ctx.fillRect(0, 0, width, height);\n }\n ctx.drawImage(origimg, 0, 0, origimg.naturalWidth, origimg.naturalHeight,\n 0, 0, width, height);\n resolve(canvas)\n }\n })\n},\n\nstringToDom(str) {\n if (str.match(/^data:.*?,/)) {\n str = this.base64decode(str.replace(/^data:.*?,/, ''))\n }\n let parser = new DOMParser();\n return parser.parseFromString(str,\"text/xml\");\n},\n\nstringToNode(str) {\n return this.stringToDom('' + str + '').firstChild.firstChild\n},\n\ndomToString(xmlObject) {\n return new XMLSerializer().serializeToString(xmlObject.documentElement);\n},\n\nprepareSvgForEmbed(svg) {\n return svg\n .replace(/^]*>/, '')\n .trim()\n .replace(/^]*>([^\\0]*)<\\/svg>$/m, '$1')\n},\n\nresizeSvgNatural(svg, width, margin=0) {\n return new Promise((resolve) => {\n const origimg = new Image()\n origimg.src = 'data:image/svg+xml;base64,' + this.base64encode(svg)\n origimg.onload = () => {\n if (width === origimg.naturalWidth && margin === 0) {\n return resolve(svg)\n }\n let imgwidth = width - 2 * margin,\n imgheight = imgwidth * origimg.naturalHeight / origimg.naturalWidth,\n height = imgheight + 2 * margin\n let oldsvg = this.prepareSvgForEmbed(svg)\n let svg2 = `${oldsvg}`\n return resolve(svg2)\n }\n })\n},\n\n/**\n * Generate file name for downloaded QR code\n *\n * @param {String} qrlabel label for this QR (if necessary to override, otherwise will be taken from the QR code or use timestamp)\n * @param {Object} params parameters as emitted by QrDownloadDialog\n * @param {String} extension file extension (if necessary to override, otherwise will be taken from params.format)\n * @returns {string}\n */\ngetFilenameForDownload(qrlabel, params, extension = null) {\n let qrlabeldisplay = qrlabel\n if (!qrlabeldisplay) {\n if (params.codes.length === 1) {\n qrlabeldisplay = params.codes[0].qrlabel ? params.codes[0].qrlabel : 'download'\n } else {\n // TODO add timestamp or something unique to the file name?\n qrlabeldisplay = 'download'\n }\n }\n return 'QR_' + this.sanitiseFilename(qrlabeldisplay) + '.' +\n (extension ? extension : params.format);\n},\n\n/**\n * Download QR code(s) for PRO site\n *\n * @param {String} qrlabel label for this QR (if necessary to override, otherwise will be taken from the QR code or use timestamp)\n * @param {Object} params parameters as emitted by QrDownloadDialog\n * @param {Function} authGetBinary function ref (because this mixin can not access userMixin)\n * @param {Function} authPostBinary function ref (because this mixin can not access userMixin)\n * @returns {Promise} promise that returns string with the file name\n */\ndownloadQrCodesPro(qrlabel, params, authGetBinary, authPostBinary) {\n const qrcodes = params.codes\n const advanced = params.advancedoptions || qrcodes.length > 1\n\n let fileName = this.getFilenameForDownload(this.qrlabel, params);\n if (params.format === 'svg' && !advanced) {\n // When SVG is requested we resize it in the JS and return immediately.\n return this.resizeSvgNatural(qrcodes[0].image, params.size)\n .then(svg => this.triggerDownloadSvg(svg, fileName));\n } else if (!advanced) {\n // PRO site, simple version - retrieve the image that is potentially cached.\n const url = qrcodes[0].qrurl.replace(new RegExp(\"download/.*?/([^\\\\.]*)\\\\..*$\",\"gm\"),\n `download/${params.size}dpi${params.dpi}/$1.${params.format}`)\n return authGetBinary({url})\n .then(resp => this.triggerDownloadBinary(resp, fileName))\n } else {\n // On the \"PRO\" site we convert on the server. Advanced version.\n params.codes = qrcodes.map((code) => code.codeid)\n return authPostBinary({url: 'pro/codesbulk/download', params})\n .then(resp => this.triggerDownloadBinary(resp, fileName))\n }\n},\n\n/**\n * Download QR code(s) for DEMO site\n *\n * @param {String} qrlabel label for this QR (if necessary to override, otherwise will be taken from the QR code or use timestamp)\n * @param {Object} data parameters as emitted by QrDownloadDialog\n * @returns {Promise} promise that returns string with the file name\n */\ndownloadQrCodesDemo(qrlabel, data) {\n const format = data.format\n const size = data.size\n const qrcode = data.codes[0]\n\n const fileName = this.getFilenameForDownload(qrlabel, data)\n if (format === 'svg') {\n // When SVG is requested we resize it in the JS and return immediately.\n return this.resizeSvgNatural(qrcode.image, size)\n .then(svg => this.triggerDownloadSvg(svg, fileName));\n } else {\n // On the demo site we convert in the browser.\n return this.prepareSvgEmbedFonts(qrcode.image, format !== 'svg')\n .then((svg) => this.prepareCanvasFromSvg(svg, size))\n .then(canvas => {\n const mimetype = \"image/\" + (format === 'jpg' ? 'jpeg' : format)\n const imgURI = canvas\n .toDataURL(mimetype)\n .replace(mimetype, \"image/octet-stream\");\n return this.triggerDownload(imgURI, fileName);\n })\n }\n},\n\n/**\n * For DEMO download add imported fonts to the SVG file because canvas does not process @import for security reasons\n *\n * @param text\n * @param convert\n * @returns {Promise}\n */\nprepareSvgEmbedFonts(text, convert = true) {\n const matchAll = (exp, text, grpno) => {\n let res = []\n const regEx = new RegExp(exp, 'g')\n let match = regEx.exec(text)\n while (match != null) {\n res.push(match[grpno])\n match = regEx.exec(text)\n }\n return res\n }\n\n let fontsurls = matchAll(\"@import\\\\s+url\\\\('([^']*)'\\\\)\", text, 1)\n if (!convert || !fontsurls.length) {\n return new Promise((resolve) => {resolve(text)})\n }\n\n let svgDoc = new DOMParser().parseFromString(text, 'image/svg+xml');\n let promises = []\n for (let url of fontsurls) promises.push(this.GFontToDataURI(url))\n return Promise.allSettled(promises)\n .then(res => { // we've got our array with all the cssRules\n let allRules = res.map(a=>a.value.join('\\n')).join('\\n')\n let svgNS = \"http://www.w3.org/2000/svg\";\n // so let's append it in our svg node\n let defs = svgDoc.createElementNS(svgNS, 'defs')\n let style = svgDoc.createElementNS(svgNS, 'style')\n style.innerHTML = allRules\n defs.appendChild(style)\n svgDoc.documentElement.appendChild(defs)\n // now we're good to create our string representation of the svg node\n return new XMLSerializer().serializeToString(svgDoc.documentElement)\n })\n},\n\n/*\n Fetches a URL with an external font definition and converts it to the set of CSS styles\n From https://stackoverflow.com/questions/42402584/how-to-use-google-fonts-in-canvas-when-drawing-dom-objects-in-svg\n\n works on google fonts but not guaranteed to work on other fonts\n\n @Params : an url pointing to an embed Google Font stylesheet\n @Returns : a Promise, fulfiled with all the cssRules converted to dataURI as an Array\n*/\nGFontToDataURI(url) {\n return fetch(url) // first fecth the embed stylesheet page\n .then(resp => resp.text()) // we only need the text of it\n .then(text => {\n // now we need to parse the CSSruleSets contained\n // but chrome doesn't support styleSheets in DOMParsed docs...\n let s = document.createElement('style');\n s.innerHTML = text;\n document.head.appendChild(s);\n let styleSheet = s.sheet\n\n // this will help us to keep track of the rules and the original urls\n let FontRule = rule => {\n let src = rule.style.getPropertyValue('src') || rule.style.cssText.match(/url\\(.*?\\)/g)[0];\n if (!src) return null;\n let url = src.split('url(')[1].split(')')[0];\n return {\n rule: rule,\n src: src,\n url: url.replace(/\"/g, '')\n };\n };\n let fontRules = [],\n fontProms = [];\n\n // iterate through all the cssRules of the embedded doc\n // Edge doesn't make CSSRuleList enumerable...\n for (let i = 0; i < styleSheet.cssRules.length; i++) {\n let r = styleSheet.cssRules[i];\n let fR = FontRule(r);\n if (!fR) {\n continue;\n }\n fontRules.push(fR);\n fontProms.push(\n fetch(fR.url) // fetch the actual font-file (.woff)\n .then(resp => resp.blob())\n .then(blob => {\n return new Promise(resolve => {\n // we have to return it as a dataURI\n // because for whatever reason,\n // browser are afraid of blobURI in too...\n let f = new FileReader();\n f.onload = () => resolve(f.result);\n f.readAsDataURL(blob);\n })\n })\n .then(dataURL => {\n // now that we have our dataURI version,\n // we can replace the original URI with it\n // and we return the full rule's cssText\n return fR.rule.cssText.replace(fR.url, dataURL);\n })\n )\n }\n document.head.removeChild(s); // clean up\n return Promise.all(fontProms); // wait for all this has been done\n });\n},\n\n// downloadQr(e) {\n// // console.log('downloading')\n// // console.log(e)\n// e.preventDefault()\n// var target = e.target.getAttribute('data-context') ? e.target : e.target.parentElement\n// var format = target.getAttribute('data-downloadqr')\n// var origimg = this.locateImage(target)\n// //var origimg = this.getContainer().getElementsByClassName('demo-qr-image')[0].children[0];\n// if (!origimg) {\n// return;\n// }\n// //var txt = this.getContainer().getElementsByClassName('demo-qr-label')[0].textContent\n// var txt = this.getDownloadLabel(target)\n// var fileName = 'QR_' + this.sanitiseFilename(txt) + '.' + format;\n//\n// if (format === 'svg') {\n// this.triggerDownload(origimg.getAttribute('src'), fileName);\n// return;\n// }\n//\n// // From: https://stackoverflow.com/a/44769098\n// var canvas = document.createElement(\"canvas\");\n// canvas.width = origimg.naturalWidth;\n// canvas.height = origimg.naturalHeight;\n// var ctx = canvas.getContext(\"2d\");\n// ctx.clearRect(0, 0, canvas.width, canvas.height);\n// ctx.drawImage(origimg, 0, 0);\n// var imgURI = canvas\n// .toDataURL(\"image/\" + format)\n// .replace(\"image/\" + format, \"image/octet-stream\");\n// this.triggerDownload(imgURI, fileName);\n// }\n}\n}\n//document.querySelectorAll('[data-downloadqr]').forEach(item => item.addEventListener('click', downloadQr))\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Demo.vue?vue&type=style&index=0&id=ff0ae33a&scoped=true&lang=scss&\"","\nexport default {\n name: 'dmf',\n methods: {\n dmfescapevalue: function(value, ismecard = false) {\n // https://www.openmobilealliance.org/release/MobileCodes/V1_0-20130611-A/OMA-TS-MC-V1_0-20130611-A.pdf\n // The following characters; comma, “,”, semicolon, “;”, colon, “:”, and back slash, “\\”,\n // SHALL be escaped as defined in Section 7.1.2.1 using a back slash, “%x5c”,\n // if such a character needs to be included in the Property-Value.\n if (ismecard) {\n return value.replace(/;/g, '. ')\n } else {\n return value.replace(/([\\\\:;,])/g, '\\\\$1')\n }\n },\n\n dmfescape: function(prefix, value, optional=false, ismecard = false) {\n if (Array.isArray(value)) {\n value.forEach(function(part, index, ar) {\n ar[index] = this.dmfescapevalue(part, ismecard)\n }.bind(this));\n return prefix + ':' + value.join(',') + ';'\n }\n\n value = '' + value\n if (!value.length) {\n return optional ? '' : prefix + ':;'\n }\n return prefix + ':' + this.dmfescapevalue(value, ismecard) + ';'\n },\n\n dmf: function(protocol, attrs, optional = []) {\n var s = protocol + ':', ismecard = protocol === 'MECARD', key\n for (var i in attrs) {\n key = i.replace(/__\\d$/g, '')\n s = s + this.dmfescape(key, attrs[i], optional.includes(key), ismecard)\n }\n return s\n },\n\n df: function(protocol, p1, p2 = null) {\n return protocol + ':' + p1 + (p2 === null || p2.length === 0 ? '' : (':' + p2))\n },\n\n escape_phone: function (value, stripplus = false) {\n if (stripplus) {\n return value.replace(/[^\\d]/g, '')\n } else {\n return value.replace(/[^\\d\\+]/g, '') // eslint-disable-line no-useless-escape\n }\n }\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{staticClass:\"smfm-app-wrapper demo\",class:{'gray-bg': _vm.$route.name === 'langandslug' || _vm.$route.name === 'contactus'}},[_c('v-app-bar',{staticClass:\"smfm-header\",attrs:{\"app\":\"\",\"fixed\":\"\",\"elevate-on-scroll\":\"\",\"height\":_vm.$vuetify.breakpoint.smAndDown ? 60 : 80}},[_c('v-container',{staticClass:\"d-flex align-center\",class:{'pa-0': _vm.$vuetify.breakpoint.smAndDown}},[_c('v-toolbar-title',{},[_c('router-link',{staticClass:\"d-flex align-center\",attrs:{\"exact\":\"\",\"to\":_vm.titleLink}},[_c('img',{attrs:{\"src\":_vm.$vuetify.breakpoint.smAndDown ? '/images/logo-mobile.svg' : '/images/logo.svg',\"width\":_vm.$vuetify.breakpoint.smAndDown ? 194 : 140,\"height\":_vm.$vuetify.breakpoint.smAndDown ? 44 : 50,\"alt\":\"ScanMeFindMe\"}})])],1),_c('v-spacer'),_c('v-toolbar-items',{staticClass:\"d-md-flex d-none\"},_vm._l((_vm.menu),function(item){return _c('v-btn',{key:item.path,attrs:{\"text\":\"\",\"exact\":item.name !== 'resources' ? true : false,\"ripple\":false,\"to\":item.qrgen ? _vm.titleLink : { name: item.name, params: {lang: _vm.currentLang} }}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])}),1),_c('v-spacer'),_c('div',{staticClass:\"d-md-flex d-none\"},[_c('language-selector'),_c('demo-launch-pro',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar proceed = ref.proceed;\nreturn [_c('v-btn',{staticClass:\"smfm-primary-btn\",on:{\"click\":function($event){return proceed()}}},[_vm._v(\" \"+_vm._s(_vm.$t('app.proaccount'))+\" \")])]}}])})],1),_c('div',{staticClass:\"d-block d-md-none\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"aria-label\":_vm.$t('app.menu')},on:{\"click\":function($event){_vm.isMobileMenu = !_vm.isMobileMenu}}},[_c('v-icon',[_vm._v(\" \"+_vm._s(!_vm.isMobileMenu ? _vm.iconMenu : _vm.iconClose)+\" \")])],1)],1)],1)],1),_c('v-main',[(_vm.languageconfirmed)?_c('router-view',{attrs:{\"keep-alive\":\"\"}}):_vm._e()],1),_c('v-footer',{staticClass:\"d-flex flex-column flex-md-row justify-center align-center smfm-footer\",class:{'py-6': _vm.$vuetify.breakpoint.smAndDown},attrs:{\"id\":\"footer\",\"inset\":\"\",\"min-height\":\"40\"}},_vm._l((_vm.footerMenu),function(item){return _c('v-btn',{key:item.path,attrs:{\"text\":\"\",\"exact\":\"\",\"ripple\":false,\"to\":{ name: item.name, params: {lang: _vm.currentLang} },\"x-small\":\"\",\"large\":_vm.$vuetify.breakpoint.smAndDown}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])}),1),_c('v-navigation-drawer',{staticClass:\"mobile-menu\",attrs:{\"absolute\":\"\",\"temporary\":\"\",\"dark\":\"\",\"fixed\":\"\",\"width\":\"100%\",\"height\":\"auto\"},model:{value:(_vm.isMobileMenu),callback:function ($$v) {_vm.isMobileMenu=$$v},expression:\"isMobileMenu\"}},[_c('v-list',{attrs:{\"nav\":\"\",\"dense\":\"\"}},_vm._l((_vm.menu),function(item){return _c('v-list-item',{key:item.path,staticClass:\"mobile-menu-item\"},[_c('v-list-item-content',{staticClass:\"py-1\"},[_c('v-list-item-title',[_c('v-btn',{attrs:{\"exact\":\"\",\"text\":\"\",\"ripple\":false,\"to\":item.qrgen ? _vm.titleLink : { name: item.name, params: {lang: _vm.currentLang} }}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])],1)],1)],1)}),1),_c('div',{staticClass:\"px-3\"},[_c('language-selector',{attrs:{\"isMobileMenu\":_vm.isMobileMenu}})],1),_c('div',{staticClass:\"pa-5\"},[_c('demo-launch-pro',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar proceed = ref.proceed;\nreturn [_c('v-btn',{staticClass:\"smfm-primary-btn\",attrs:{\"large\":\"\",\"block\":_vm.$vuetify.breakpoint.xsOnly},on:{\"click\":function($event){return proceed()}}},[_vm._v(\" \"+_vm._s(_vm.$t('app.proaccount'))+\" \")])]}}])})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n themes: {\n light: {\n primary: '#03949A',\n secondary: '#909295',\n success: \"#00ADB5\",\n error: '#C9454D',\n info: '#3A82F7'\n },\n },\n },\n icons: {iconfont: 'mdiSvg'}\n});\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n//import axios from 'axios'\nimport enmessages from '@/locales/en'\nimport axios from \"axios\";\nimport Vuetify from '@/plugins/vuetify'\nconst rtllangs = require(\"./smfm/languages.json\").filter(lang => lang.rtl).map(lang => lang.short)\n\nVue.use(VueI18n)\n\nconst fallbackLocale = process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en'\nexport const i18n = new VueI18n({\n locale: 'en',\n fallbackLocale,\n messages: {en: enmessages}\n})\n\nlet loadedLanguages = ['en'] // our default language that is preloaded\n\nfunction setI18nLanguage (lang) {\n i18n.locale = lang\n //axios.defaults.headers.common['Accept-Language'] = lang\n document.querySelector('html').setAttribute('lang', lang)\n Vuetify.framework.rtl = rtllangs.includes(lang)\n return lang\n}\n\nexport function loadLanguageAsync(lang) {\n // If the same language\n if (i18n.locale === lang) {\n return Promise.resolve(setI18nLanguage(lang))\n }\n\n // If the language was already loaded\n if (loadedLanguages.includes(lang)) {\n return Promise.resolve(setI18nLanguage(lang))\n }\n\n // TODO process requests to absent languages.\n\n // If the language hasn't been loaded yet\n return axios.get(`${process.env.VUE_APP_API}/demo/lang/${lang}`)\n .then(resp => {\n let messages = resp.data\n i18n.setLocaleMessage(lang, messages)\n loadedLanguages.push(lang)\n return setI18nLanguage(lang)\n })\n}","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Demo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Demo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Demo.vue?vue&type=template&id=ff0ae33a&scoped=true&\"\nimport script from \"./Demo.vue?vue&type=script&lang=js&\"\nexport * from \"./Demo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Demo.vue?vue&type=style&index=0&id=ff0ae33a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff0ae33a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarItems } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VApp,VAppBar,VBtn,VContainer,VFooter,VIcon,VList,VListItem,VListItemContent,VListItemTitle,VMain,VNavigationDrawer,VSpacer,VToolbarItems,VToolbarTitle})\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport DemoGenerator from \"@/components/demo/DemoGenerator\";\nimport {loadLanguageAsync} from \"../i18n\";\n\nVue.use(VueRouter)\n\nconst routes = [\n { path: '/', name: 'main', component: DemoGenerator },\n // { path: '/', name: 'main', component: () => import(/* webpackChunkName: \"Generator\" */\"@/components/demo/DemoGenerator\") },\n { path: '/:lang/privacy', name: 'privacy', component: () => import(/* webpackChunkName: \"About\" */\"@/components/about/AboutPrivacy\") },\n { path: '/:lang/tos', name: 'tos', component: () => import(/* webpackChunkName: \"About\" */\"@/components/about/AboutTos\") },\n // { path: '/:lang', name: 'lang', component: () => import(/* webpackChunkName: \"Generator\" */\"@/components/demo/DemoGenerator\") },\n { path: '/:lang', name: 'lang', component: DemoGenerator },\n { path: '/:lang/product', name: 'product', component: () => import(/* webpackChunkName: \"About\" */\"@/components/about/AboutProduct\") },\n { path: '/:lang/pricing', name: 'pricing', component: () => import(/* webpackChunkName: \"About\" */\"@/components/about/AboutPricing\") },\n { path: '/:lang/api', name: 'api', component: () => import(/* webpackChunkName: \"About\" */\"@/components/about/AboutApi\") },\n { path: '/:lang/resources', name: 'resources', component: () => import(/* webpackChunkName: \"Resources\" */\"@/components/about/AboutResources\") },\n { path: '/:lang/resources/:slug', name: 'article', component: () => import(/* webpackChunkName: \"Resources\" */\"@/components/about/AboutArticle\") },\n { path: '/:lang/contactus', name: 'contactus', component: () => import(/* webpackChunkName: \"About\" */\"@/components/about/AboutContactUs\") },\n // { path: '/:lang/:slug', name: 'langandslug', component: () => import(/* webpackChunkName: \"Generator\" */\"@/components/demo/DemoGenerator\") },\n { path: '/:lang/:slug', name: 'langandslug', component: DemoGenerator },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes,\n scrollBehavior() {\n return { x: 0, y: 0 }\n }\n})\n\nrouter.beforeEach(async(to, from, next) => {\n if (to.params && to.params.lang) {\n loadLanguageAsync(to.params.lang)\n .then(() => next())\n }\n // TODO should there be 'else'?\n next();\n});\n\nexport default router\n","const langs = require('@/smfm/languages.json')\nconst plans = require('@/smfm/plans.json')\nconst library = require('@/smfm/sharedlibrary.json')\nconst staticcardsRaw = require('@/smfm/static.json')\nconst dynamiccardsRaw = require('@/smfm/dynamic.json')\n\nexport default {\n //namespaced: true,\n\n state: () => ({\n langs: Object.freeze(langs),\n pricePlans: Object.freeze(plans),\n sharedlibrary: Object.freeze(library),\n staticcardsRaw: Object.freeze(staticcardsRaw),\n dynamiccardsRaw: Object.freeze(dynamiccardsRaw),\n }),\n\n getters: {\n languages(state) { return state.langs },\n pricePlans(state) { return state.pricePlans },\n sharedlibrary(state) { return state.sharedlibrary },\n staticcardsRaw(state) { return state.staticcardsRaw },\n dynamiccardsRaw(state) { return state.dynamiccardsRaw },\n },\n\n mutations: {\n },\n\n actions: {\n }\n}\n","\nconst smfm = require('@/smfm/demo.json')\nconst languagesMap = require('@/smfm/languagesmapdemo.json')\n\nexport default {\n //namespaced: true,\n\n state: () => ({\n smfm: Object.freeze(smfm),\n languagesMap: Object.freeze(languagesMap),\n }),\n\n getters: {\n smfm(state) { return state.smfm },\n countriesNames() { return {} },\n isPro() { return false },\n isAdmin() { return false },\n languagesMap(state) { return state.languagesMap },\n },\n\n mutations: {\n },\n\n actions: {\n }\n}\n","import axios from \"axios\";\n\nfunction initialState() {\n return {\n currentCurrCode: 'EUR',\n currencies: [\n // Currencies and approximate rates:\n { code: 'EUR', label: 'Euro', symbol: '€', rate: 1 },\n { code: 'USD', label: 'US Dollar', symbol: '$', rate: 1.0556 },\n { code: 'AUD', label: 'Australian Dollar', symbol: '$', rate: 1.4825 },\n { code: 'CAD', label: 'Canadian Dollar', symbol: '$', rate: 1.3570 },\n { code: 'GBP', label: 'Pound Sterling', symbol: '£', rate: 0.84130 },\n ],\n // Actual currencies rates updated from the API:\n currenciesRates: null,\n lastUpdate: 0,\n }\n}\n\nexport default {\n namespaced: true,\n state: initialState,\n\n getters: {\n currentCurrCode(state) { return state.currentCurrCode },\n currencies(state) { return state.currencies },\n currentCurrency(state) {\n let c = state.currencies.find(curr => curr.code === state.currentCurrCode);\n if (state.currenciesRates && state.currenciesRates[state.currentCurrCode] && !isNaN(state.currenciesRates[state.currentCurrCode])) {\n c.rate = state.currenciesRates[state.currentCurrCode]\n }\n return c\n }\n },\n\n mutations: {\n _setCurrentCurr(state, payload) {\n state.currentCurrCode = payload\n },\n _setCurrentRates(state, payload) {\n let rates = {}\n for (const code in payload) {\n rates[code] = Number(payload[code])\n }\n state.currenciesRates = rates\n state.lastUpdate = Math.floor(Date.now() / 1000)\n },\n _resetState(state) {\n const s = initialState()\n Object.keys(s).forEach(key => {\n state[key] = s[key]\n });\n }\n },\n\n actions: {\n setCurrentCurr({commit}, data) {\n commit('_setCurrentCurr', data)\n },\n getCurrencies({state, commit}) {\n return new Promise((resolve, reject) => {\n const ts = Math.floor(Date.now() / 1000)\n if (state.currenciesRates === null || state.lastUpdate < ts - 12*60*60) {\n commit('_resetState');\n axios.get(process.env.VUE_APP_API + '/demo/exratesjson')\n .then(resp => {\n commit('_setCurrentRates', resp.data);\n resolve(resp.data);\n })\n .catch((error) => reject(error));\n } else {\n resolve(state.currenciesRates);\n }\n })\n }\n }\n}","\nexport default {\n //namespaced: true,\n\n state: () => ({\n currentqr: {}\n }),\n\n getters: {\n getCurrentQr(state) { return state.currentqr },\n },\n\n mutations: {\n _setCurrentQr(state, currentqr) {\n state.currentqr = currentqr\n },\n _setCurrentQrInvalid(state) {\n state.currentqr.isnotvalid = true\n },\n },\n\n actions: {\n setCurrentQr({commit}, currentqr) {\n if (!currentqr.isnotvalid) {\n currentqr.isnotvalid = false\n }\n return commit('_setCurrentQr', currentqr)\n },\n resetCurrentQr({commit}) {\n commit('_setCurrentQr', {})\n },\n setCurrentQrError({commit}) {\n commit('_setCurrentQr', {error: true})\n },\n setCurrentQrInvalid({commit}) {\n commit('_setCurrentQrInvalid')\n },\n setCurrentQrLoading({commit}) {\n commit('_setCurrentQr', {loading: true, isnotvalid: false})\n },\n }\n}\n","export default {\n state: () => ({\n }),\n\n getters: {\n logooptionscounter() { return 0 },\n templateoptionscounter() { return 0 },\n presetoptionscounter() { return 0 },\n logooptions(state, getters, rootState, rootGetters) {\n return rootGetters.sharedlibrary.logos\n },\n logooptionswithempty(state, getters) {\n return [{value: '0', src: getters.noImageSrc}].concat(getters.logooptions)\n },\n templateoptions(state, getters, rootState, rootGetters) {\n return rootGetters.sharedlibrary.templates\n },\n templateoptionswithempty(state, getters) {\n return [{value: '0', src: getters.noImageSrc}].concat(getters.templateoptions)\n },\n presetoptions(state, getters, rootState, rootGetters) {\n return rootGetters.sharedlibrary.presets\n },\n noImageSrc() {\n return `${process.env.VUE_APP_URL}/images/noimage.svg`\n },\n brokenImageSrc() {\n return `${process.env.VUE_APP_URL}/images/brokenimage.svg`\n },\n libraryloaded() {\n return true\n }\n },\n\n mutations: {\n },\n\n actions: {\n },\n}\n","import axios from \"axios\";\nconst tocStatic = require('@/smfm/resources.json')\n\nexport default {\n //namespaced: true,\n\n state: () => ({\n articles: {},\n toc: null,\n tocloading: false,\n tocStatic: Object.freeze(tocStatic),\n }),\n\n getters: {\n articles(state) {\n return state.articles\n },\n resourcesToc(state) {\n return state.toc\n },\n resourcesTocStatic(state) {\n return state.tocStatic\n },\n resourcesTocLoaded(state) {\n return state.toc ? 1 : 0\n }\n },\n\n mutations: {\n _addArticle(state, {lang, article}) {\n state.articles[lang+':'+article.shortname] = article\n },\n _setToc(state, payload) {\n state.toc = payload\n state.tocloading = false\n },\n _setTocLoading(state, payload) {\n state.tocloading = payload\n },\n },\n\n actions: {\n loadArticle({state, commit}, {lang, shortname}) {\n let loadedarticles = state.articles ? state.articles : {}\n const key = lang + ':' + shortname\n if (key in loadedarticles) {\n return loadedarticles[key]\n }\n return axios.get(`${process.env.VUE_APP_API}/demo/blog/${shortname}?lang=${lang}`)\n .then(resp => {\n let article = resp.data\n let actuallang = lang in article ? lang : 'en'\n article = {...article['en'], ...article[actuallang], shortname, actuallang}\n return commit('_addArticle', {lang, article})\n })\n .then(() => state.articles[key])\n },\n\n loadResourcesToc({commit, state, getters}, force = false) {\n if (!force && getters.resourcesTocLoaded) {\n return null\n }\n if (state.tocloading) {\n return new Promise(function (resolve) {\n (function waitForToc() {\n if (getters.resourcesTocLoaded) return resolve();\n setTimeout(waitForToc, 100);\n })();\n });\n }\n commit('_setTocLoading', true)\n return axios.get(process.env.VUE_APP_API + '/demo/blog')\n .then(resp => {\n let articles = {}\n for (let language of getters.languages) {\n const lang = language.short\n articles[lang] = []\n for (let shortname in resp.data) {\n let article = resp.data[shortname]\n let actuallang = lang in article ? lang : 'en'\n articles[lang].push({...article['en'], ...article[actuallang], shortname, actuallang})\n }\n }\n commit('_setToc', articles)\n })\n }\n }\n}","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport createPersistedState from \"vuex-persistedstate\"\nimport { default as app } from \"./modules/app\";\nimport { default as app_demo } from \"./modules/app_demo\";\nimport { default as currency } from \"./modules/currency\";\nimport { default as currentqr } from \"./modules/currentqr\";\nimport { default as library_demo } from \"./modules/library_demo\";\nimport { default as resources } from \"./modules/resources\";\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n modules: {\n library_demo,\n resources,\n app,\n app_demo,\n currentqr,\n currency\n },\n plugins: [\n createPersistedState({\n key: \"globalstate\",\n paths: [\n \"currency\",\n ]\n }),\n ],\n})\n","export default {\n computed: {\n appUrl() { return process.env.VUE_APP_URL },\n proUrl() { return process.env.VUE_APP_PRO_URL },\n languages() { return this.$store.getters.languages },\n languagesMap() { return this.$store.getters.languagesMap },\n pricePlans() { return this.$store.getters.pricePlans },\n countriesNames() { return this.$store.getters.countriesNames },\n isPro() { return this.$store.getters.isPro },\n isAdmin() { return this.$store.getters.isAdmin },\n currentLang() {\n return this.$i18n.locale\n },\n isRTL() {\n var f = this.languages.filter(l => l.short === this.currentLang)\n return f && f.length && f[0].rtl\n },\n currentLangIntl() {\n const f = this.languages.filter(l => l.short === this.currentLang)\n return f.length ? f[0].long : this.currentLang\n },\n\n apiQrDemoUrl() {\n return process.env.VUE_APP_API + '/demo/qr'\n },\n\n staticcards() {\n let result = []\n let staticcardsRaw = this.$store.getters.staticcardsRaw\n for (let i in this.languages) {\n let lang = this.languages[i].short\n result[lang] = [];\n for (let shortname in staticcardsRaw) {\n result[lang].push({...staticcardsRaw[shortname][lang], shortname, hasform: shortname !== 'file'})\n }\n }\n return result\n },\n\n dynamiccards() {\n let result = []\n let dynamiccardsRaw = this.$store.getters.dynamiccardsRaw\n for (let i in this.languages) {\n let lang = this.languages[i].short\n result[lang] = [];\n for (let shortname in dynamiccardsRaw) {\n result[lang].push({...dynamiccardsRaw[shortname][lang], shortname})\n }\n }\n return result\n },\n\n languagesMenu() {\n let res = {}\n if (this.languages) {\n for (let i in this.languages) {\n res[this.languages[i].short] = this.languages[i].native\n }\n } else {\n res['en'] = 'English'\n }\n return res\n },\n\n coptions() {\n const imageWithAttrs = function(attrs) {\n var oImg = document.createElement(\"img\");\n for (let k in attrs) { oImg.setAttribute(k, attrs[k]) }\n return oImg.outerHTML\n },\n samplesimg = `/images/samples/${this.isPro ? 'pro' : 'demo'}.svg`,\n getStyleOptions = function(styles, rownum, alldefaults = null) {\n let rv = []\n for (let i in styles) {\n const x = i ? `-${i*60}px` : '0', y = rownum ? `-${rownum*60}px` : '0'\n let extras = {}\n if (alldefaults) {\n const defaults = alldefaults[styles[i]]\n extras['eyeoutline'] = defaults[0] ? defaults[0] : 'square'\n extras['eyeball'] = defaults[1] ? defaults[1] : 'square'\n }\n const label = `
' +\n imageWithAttrs({'src': '/images/transparent.png', 'width': 60, 'height': 60, ...extras})\n rv.push({value: styles[i], src: samplesimg, label, ...extras})\n }\n return rv\n }\n\n let coptions = {}\n let smfm = this.$store.getters.smfm\n coptions.style = getStyleOptions(smfm.style, 0, smfm.defaults)\n coptions.eyeoutline = getStyleOptions(smfm.eyeoutline, 1)\n coptions.eyeball = getStyleOptions(smfm.eyeball, 2)\n coptions.gap = getStyleOptions(smfm.gap, 3)\n coptions.fill = getStyleOptions(smfm.fill, 4)\n\n return coptions\n },\n\n },\n methods: {\n detectBrowserLang() {\n const available = this.languages.map(l => l.short)\n if (this.isPro && window.localStorage.preferredLang && available.includes(window.localStorage.preferredLang)) {\n return window.localStorage.preferredLang\n }\n const singlelanguage = navigator.language || navigator.browserLanguage || navigator.userLanguage\n const clientlanguages = navigator.languages && Array.isArray(navigator.languages) && navigator.languages.length ?\n navigator.languages : [singlelanguage]\n for (let clientlanguage of clientlanguages) {\n if (available.includes(clientlanguage)) {\n return clientlanguage\n } else if (clientlanguage.length > 2 && available.includes(clientlanguage.substr(0, 2))) {\n return clientlanguage.substr(0, 2)\n }\n }\n return 'en'\n },\n\n compareSlugs(slug, currentSlug = null) {\n currentSlug = (currentSlug === null) ? this.$route.params.slug : currentSlug\n if (!slug) return false\n if (Array.isArray(slug)) {\n for (var i in slug) {\n if (slug[i] === currentSlug) return true;\n }\n return false\n } else {\n return slug === currentSlug\n }\n },\n\n acceptPrivacy() {\n window.localStorage.privacyAccepted = 1\n },\n\n isPrivacyAccepted() {\n return !!window.localStorage.privacyAccepted\n },\n\n base64encode(str) {\n // https://attacomsian.com/blog/javascript-base64-encode-decode\n\n // first we use encodeURIComponent to get percent-encoded UTF-8,\n // then we convert the percent encodings into raw bytes which\n // can be fed into btoa.\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,\n function toSolidBytes(match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n },\n\n base64decode(str) {\n // Going backwards: from bytestream, to percent-encoding, to original string.\n return decodeURIComponent(atob(str).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n },\n getPlanYearPrice(price, rate) {\n return Math.round(price * rate);\n },\n getPlanMonthPrice(price, rate) {\n let perMonth = (price * rate) / 12;\n if (Number.isInteger(perMonth)) {\n return perMonth;\n } else {\n return perMonth.toFixed(1);\n }\n },\n\n getArticleFromToc(shortname, lang = null, defaultValue = null) {\n if (!this.$store.getters.resourcesToc) return defaultValue\n if (!lang) lang = this.currentLang\n if (!(lang in this.$store.getters.resourcesToc)) lang = 'en'\n const f = this.$store.getters.resourcesToc[lang].filter(a => a.shortname === shortname)\n return f.length ? f[0] : defaultValue\n },\n\n getArticleUrl(shortname, lang = null, defaultValue = null) {\n const article = this.getArticleFromToc(shortname, lang)\n if (!article) return defaultValue\n if (!lang) lang = this.currentLang\n if (!(lang in this.$store.getters.resourcesToc)) lang = 'en'\n // TODO: use article.actuallang ?\n return article ? `${lang}/resources/${article.slug}` : defaultValue\n },\n\n getStaticCardUrl(shortname, lang = null, defaultValue = null) {\n if (!this.staticcards) return defaultValue\n if (!lang) lang = this.currentLang\n if (!(lang in this.staticcards)) lang = 'en'\n const f = this.staticcards[lang].filter(a => a.shortname === shortname)\n return f.length ? `${lang}/${f[0].slug}` : defaultValue\n },\n\n prepareTextWithLinks(text) {\n const replaceHref = (str, url) => {\n const replacement = this.isPro ?\n `href=\"${this.appUrl}/${url}\" target=\"_blank\" rel=\"noopener\" class=\"smfm-externallink\"` :\n `href=\"/${url}\" class=\"smfm-locallink\"`\n return str.replace(/^]*)\\bhref=\"[^\"]*\"([^>]*)>/, ``)\n }\n const regex = pattern => new RegExp(']*\\\\bhref=\"#' + pattern + '\"[^>]*>(.*?)', 'g')\n\n if (!text) return ''\n if (text.match(/#(resource|article):([\\w]+)/)) {\n if (this.$store.getters.resourcesToc) {\n const r = (m, key) => replaceHref(m, this.getArticleUrl(key, null, '#'))\n text = text.replace(regex('resource:([\\\\w]*)'), r, text)\n text = text.replace(regex('article:([\\\\w]*)'), r, text)\n } else {\n this.$nextTick(() => this.$store.dispatch('loadResourcesToc'))\n }\n }\n const s = (m, key) => replaceHref(m, this.getStaticCardUrl(key, null, '#'))\n text = text.replace(regex('static:([\\\\w]*)'), s, text)\n const ab = (m, key) => replaceHref(m, `${this.currentLang}/${key}`)\n text = text.replace(regex('about:([\\\\w]*)'), ab, text)\n text = text.replace(regex('pro'), m => ab(m, 'product#pro'), text)\n return text\n },\n\n /**\n * Alternative URLs for the current page in the other languages (demo only)\n *\n * @param {Boolean} strictSearch\n * @returns {Object}\n */\n getAlternatives(strictSearch = true) {\n if (this.isPro || this.isAdmin) return {}\n const currentLang = this.$route.params.lang ? this.$route.params.lang : this.$i18n.currentLang\n let links = {}, shortname = null\n const resourcesToc = this.$store.getters.resourcesToc ? this.$store.getters.resourcesToc : this.$store.getters.resourcesTocStatic\n\n if (this.$route.name === 'article' && this.$route.params.slug && resourcesToc && (currentLang in resourcesToc)) {\n const findArticle = (el) => el && (this.compareSlugs(el.slug) || this.compareSlugs(el.aliases))\n const f = resourcesToc[currentLang].filter(findArticle)\n if (f.length) shortname = f[0].shortname\n } else if (this.$route.name === 'langandslug' && this.$route.params.slug\n && (currentLang in this.staticcards)) {\n const f = this.staticcards[currentLang].filter(v=>this.compareSlugs(v.slug))\n if (f.length) shortname = f[0].shortname\n }\n\n for (let code in this.languagesMenu) {\n let url = '/'+code\n let name = this.$route.name\n if (this.$route.name) {\n let params = {...this.$route.params, lang: code}\n // Special treatment for 'article' and 'langandslug' since slug is different in different languages\n if (this.$route.name === 'article') {\n if (shortname) {\n const f2 = resourcesToc[code].filter(v=>v.shortname === shortname)\n if (f2.length) params.slug = f2[0].slug\n else name = 'resources'\n } else name = 'resources'\n } else if (this.$route.name === 'langandslug') {\n if (shortname && this.staticcards[code][0].shortname === shortname) {\n // This is the first, default article, the canonical name for it is different\n name = 'lang'\n } else if (shortname) {\n const f2 = this.staticcards[code].filter(v=>v.shortname === shortname)\n if (f2.length) params.slug = f2[0].slug\n else name = 'lang'\n } else name = 'lang'\n }\n url = this.$router.resolve({name, params}).href\n }\n\n if (strictSearch && (!this.$route.name || name !== this.$route.name)) continue\n links[code] = url\n }\n\n return links\n }\n }\n}\n","import Vue from 'vue'\nimport Demo from './views/Demo'\nimport demo from './router/demo'\nimport store from './store/index-demo'\nimport vuetify from './plugins/vuetify'\nimport {i18n} from './i18n'\nimport globalMixin from \"@/mixins/globalMixin\";\nimport Router from 'vue-router';\nimport \"@/assets/shared/scss/smfm.scss\";\nimport \"@/assets/shared/scss/vuetify.scss\";\nimport \"@/assets/demo/scss/global.scss\";\n\n// https://www.npmjs.com/package/vcards-js\nwindow.Vcard = require('vcards-js')\n\n// Disable annoying message \"You are running Vue in development mode\"\nVue.config.productionTip = false\n\n// Preload all dynamic and static components\nlet files = require.context('@/components/static', true, /\\.vue$/i)\nfiles.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))\n\nconst originalPush = Router.prototype.push;\nRouter.prototype.push = function push(location, onResolve, onReject) {\n if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)\n return originalPush.call(this, location).catch(err => err)\n}\n\n// Special components that are used in QrStyles, this is shared between demo and pro but\n// the advanced components should be loaded only in pro:\nimport DemoEmpty from './components/demo/DemoEmpty'\nVue.component('pro-save-preset', DemoEmpty)\nVue.component('input-file', DemoEmpty)\n\nVue.mixin(globalMixin)\nnew Vue({\n router: demo,\n store,\n vuetify,\n i18n,\n render: h => h(Demo)\n}).$mount('#app')\n","export default {\n data() {\n return {\n }\n },\n computed: {\n },\n methods: {\n replaceTemplateTexts(str, captions) {\n if (!str.match(/ !!v || this.$t('app.validation.fieldrequired')\n const urlRule = v => !(v || '').length || urlRegex.test(v) || this.$t('app.validation.invalidurl')\n const emailRule = v => !(v || '').length || emailRegex.test(v) || this.$t('app.validation.invalidemail')\n const phoneRule = v => !(v || '').length || phoneRegex.test(v) || this.$t('app.validation.invalidphone')\n const noSpacesRule = v => !(v || '').length || noSpacesRegex.test(v) || this.$t('app.validation.nospaces')\n return {\n requiredRule,\n urlRule,\n emailRule,\n phoneRule,\n noSpacesRule,\n maxlengthRule: maxlength => {\n return v => (v || '').length <= maxlength || this.$t('app.validation.maxlengthexceeded', {maxlength})\n },\n minlengthRule: minlength => {\n return v => (v || '').length >= minlength || this.$t('app.validation.minlengthexceeded', {minlength})\n }\n }\n }\n}\n","import {\n mdiWeb, mdiPhone, mdiWhatsapp, mdiMessageTextOutline, mdiWifi,\n mdiTextBoxOutline, mdiCardAccountDetailsOutline, mdiLinkBoxVariantOutline,\n mdiAt, mdiCalendar, mdiCellphoneInformation, mdiQrcode, mdiFileOutline\n} from '@mdi/js';\n\nexport default {\n computed: {\n iconQrstyle() {\n return \"M21 17L19 17L19 15L21 15ZM19 15L17 15L17 13L19 13ZM19 19L17 19L17 17L19 17ZM17 21L15 21L15 19L17 19ZM15 19L13 19L13 17L15 17ZM17 17L15 17L15 15L17 15ZM15 15L13 15L13 13L15 13ZM21 21L19 21L19 19L21 19ZM21 3L21 11L13 11L13 3ZM19 5L15 5L15 9L19 9ZM3 13L11 13L11 21L3 21ZM5 19L9 19L9 15L5 15ZM3 3L11 3L11 11L3 11ZM5 9L9 9L9 5L5 5Z\"\n },\n iconDynamicCodes() {\n return \"M3 3L11 3L11 11L3 11ZM5 9L9 9L9 5L5 5ZM3 13L11 13L11 21L3 21ZM5 19L9 19L9 15L5 15ZM21 3L21 11L13 11L13 3ZM19 5L15 5L15 9L19 9ZM22.231 16.809L22.638 17.3L21.099 17.3C21.023 18.379 20.602 19.343 19.886 20.085C19.169 20.827 18.159 21.3 17.073 21.3C16.283 21.3 15.53 21.043 14.914 20.628L14.624 20.431L14.864 20.175L15.546 19.445L15.709 19.271L15.915 19.391C16.263 19.595 16.648 19.7 17.073 19.7C17.745 19.7 18.332 19.429 18.79 18.962C19.25 18.494 19.499 17.961 19.561 17.3L18.072 17.3L18.473 16.81L20.11 14.81L20.341 14.528L20.573 14.809ZM15.554 17.198L13.799 19.198L13.561 19.469L13.338 19.186L11.764 17.186L11.382 16.7L12.817 16.7C12.893 15.621 13.314 14.657 14.03 13.915C14.747 13.173 15.757 12.7 16.844 12.7C17.633 12.7 18.386 12.957 19.002 13.372L19.292 13.569L19.053 13.825L18.371 14.555L18.207 14.729L18.001 14.609C17.653 14.405 17.269 14.3 16.844 14.3C16.171 14.3 15.584 14.571 15.126 15.038C14.666 15.506 14.418 16.039 14.355 16.7L15.991 16.7Z\"\n },\n iconApi() {\n return \"M14 12L12 14L10 12L12 10L14 12ZM12 6L14.12 8.12L16.62 5.62L12 1L7.38 5.62L9.88 8.12L12 6ZM6 12L8.12 9.88L5.62 7.38L1 12L5.62 16.62L8.12 14.12L6 12ZM18 12L15.88 14.12L18.38 16.62L23 12L18.38 7.38L15.88 9.88L18 12ZM12 18L9.88 15.88L7.38 18.38L12 23L16.62 18.38L14.12 15.88L12 18Z\"\n },\n iconDashboard() {\n return \"M3 5L3 19L22 19L22 5L3 5ZM5 7L20 7L20 11L5 11L5 7ZM5 17L5 13L9 13L9 17L5 17ZM11 17L11 13L20 13L20 17L11 17Z\"\n },\n iconTiktok() {\n return \"M21.784 5.272C19.265 5.272 17.216 3.222 17.216 0.703C17.216 0.315 16.901 0 16.513 0L12.747 0C12.359 0 12.044 0.315 12.044 0.703L12.044 16.142C12.044 17.623 10.839 18.828 9.358 18.828C7.877 18.828 6.672 17.623 6.672 16.142C6.672 14.661 7.877 13.456 9.358 13.456C9.746 13.456 10.061 13.141 10.061 12.753L10.061 8.987C10.061 8.599 9.746 8.284 9.358 8.284C5.025 8.284 1.5 11.809 1.5 16.142C1.5 20.475 5.025 24 9.358 24C13.691 24 17.216 20.475 17.216 16.142L17.216 9.308C18.615 10.054 20.172 10.444 21.784 10.444C22.173 10.444 22.488 10.129 22.488 9.741L22.488 5.975C22.488 5.587 22.173 5.272 21.784 5.272ZM21.081 9.008C19.58 8.884 18.155 8.359 16.923 7.473C16.709 7.319 16.427 7.298 16.192 7.418C15.957 7.538 15.81 7.78 15.81 8.044L15.81 16.142C15.81 19.7 12.915 22.594 9.358 22.594C5.8 22.594 2.906 19.7 2.906 16.142C2.906 12.822 5.427 10.08 8.655 9.729L8.655 12.11C6.732 12.445 5.266 14.125 5.266 16.142C5.266 18.399 7.101 20.234 9.358 20.234C11.614 20.234 13.45 18.399 13.45 16.142L13.45 1.406L15.851 1.406C16.173 4.14 18.348 6.315 21.081 6.637ZM21.081 9.008\"\n },\n iconLinkedin() {\n return \"M 4.223 2 C 2.994 2 2 2.994 2 4.223 L 2 19.778 C 2 21.006 2.994 22 4.223 22 L 19.778 22 C 21.006 22 22 21.006 22 19.778 L 22 4.223 C 22 2.994 21.006 2 19.778 2 L 4.223 2 Z M 4.223 4.223 L 19.778 4.223 L 19.778 19.778 L 4.223 19.778 L 4.223 4.223 Z M 7.31 5.684 C 6.358 5.684 5.787 6.258 5.787 7.02 C 5.787 7.783 6.358 8.353 7.214 8.353 C 8.167 8.353 8.738 7.783 8.738 7.02 C 8.738 6.258 8.167 5.684 7.31 5.684 Z M 5.863 9.778 L 5.863 17.556 L 8.667 17.556 L 8.667 9.778 L 5.863 9.778 Z M 10.98 9.778 L 10.98 17.556 L 13.783 17.556 L 13.783 13.304 C 13.783 12.039 14.687 11.857 14.958 11.857 C 15.229 11.857 15.954 12.129 15.954 13.304 L 15.954 17.556 L 18.667 17.556 L 18.667 13.304 C 18.667 10.863 17.583 9.778 16.226 9.778 C 14.869 9.778 14.144 10.23 13.783 10.863 L 13.783 9.778 L 10.98 9.778 Z\"\n },\n iconCrypto() {\n return \"M13.026 5.817C13.513 5.817 13.991 5.874 14.453 5.983C14.457 5.984 14.461 5.985 14.465 5.985C15.567 6.247 16.578 6.808 \" +\n \"17.397 7.629C17.758 7.987 18.343 7.988 18.701 7.629C19.062 7.268 19.062 6.685 18.701 6.324C17.806 5.429 16.736 4.773 15.569 4.384 \" +\n \"L15.569 1.922C15.569 1.412 15.154 1 14.647 1C14.137 1 13.723 1.412 13.723 1.922L13.723 4.004C13.493 3.985 13.261 3.974 13.026 3.974 \" +\n \"C12.793 3.974 12.559 3.985 12.329 4.004L12.329 1.922C12.329 1.412 11.917 1 11.407 1C10.898 1 10.486 1.412 10.486 1.922 \" +\n \"L10.486 4.384C9.318 4.773 8.246 5.43 7.351 6.324C5.835 7.84 5 9.855 5 12C5 14.145 5.835 16.16 7.351 17.676 \" +\n \"C8.246 18.571 9.318 19.227 10.485 19.616L10.485 22.078C10.485 22.588 10.898 23 11.407 23C11.917 23 12.329 22.588 12.329 22.078 \" +\n \"L12.329 19.996C12.559 20.015 12.793 20.026 13.026 20.026C13.261 20.026 13.493 20.015 13.723 19.996L13.723 22.078 \" +\n \"C13.723 22.588 14.137 23 14.646 23C15.154 23 15.568 22.588 15.568 22.078L15.568 19.616C16.736 19.227 17.806 18.571 18.701 17.676 \" +\n \"C19.062 17.315 19.062 16.732 18.701 16.371C18.342 16.013 17.758 16.013 17.397 16.371C16.577 17.193 15.566 17.753 14.464 18.015 \" +\n \"C14.46 18.016 14.457 18.017 14.454 18.017C13.991 18.126 13.513 18.183 13.026 18.183C12.541 18.183 12.066 18.127 11.606 18.017 \" +\n \"C11.598 18.017 11.59 18.015 11.583 18.014C10.484 17.752 9.474 17.191 8.654 16.371C7.487 15.203 6.844 13.652 6.844 12 \" +\n \"C6.844 10.348 7.487 8.797 8.655 7.629C9.823 6.461 11.375 5.817 13.026 5.817Z\";\n },\n iconError() {\n return \"M11 15H13V17H11V15ZM11 7H13V13H11V7ZM11.99 2C6.47 2 2 6.48 2 12C2 17.52 6.47 22 11.99 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 11.99 2ZM12 20C7.58 20 4 16.42 4 12C4 7.58 7.58 4 12 4C16.42 4 20 7.58 20 12C20 16.42 16.42 20 12 20Z\";\n },\n iconTwitter() {\n return \"M2.787 17.573C4.081 17.736 5.014 17.595 6.124 17.194C4.814 16.642 4.407 15.87 3.925 14.495C3.84 14.163 3.896 14.01 3.989 13.777C3.059 12.868 2.446 11.668 2.446 10.222C2.446 10.003 2.543 9.732 2.68 9.565C2.816 9.399 2.814 9.431 2.902 9.374C2.132 7.929 2.29 6.41 3.175 4.866C3.358 4.604 3.691 4.395 3.968 4.373C4.245 4.352 4.607 4.506 4.828 4.732C6.565 6.823 8.783 8.007 11.343 8.396C11.435 6.712 12.285 5.215 13.998 4.275C14.99 3.758 16.124 3.557 17.156 3.695C18.188 3.833 19.16 4.298 19.947 5.015C20.572 5.182 21.104 5.089 21.827 4.656C22.149 4.506 22.581 4.506 22.841 4.654C23.103 4.803 23.35 5.176 23.35 5.524C23.35 6.935 22.375 8.269 21.539 9.033C21.542 12.15 20.328 15.223 18.093 17.556C15.738 19.974 12.444 21.35 8.92 21.35C6.512 21.35 4.132 20.667 2.123 19.418C1.923 19.278 1.749 19.055 1.691 18.864C1.633 18.669 1.647 18.406 1.714 18.225C1.78 18.045 1.939 17.835 2.108 17.724C2.274 17.615 2.546 17.554 2.787 17.573ZM6.691 19.116C7.416 19.266 7.72 19.341 8.921 19.341C11.945 19.341 14.646 18.242 16.631 16.166C18.622 14.126 19.655 11.409 19.502 8.616C19.509 8.304 19.691 7.937 19.934 7.742C20.339 7.47 20.434 7.332 20.656 7.047C19.926 7.059 19.204 7.064 18.684 6.6C18.082 5.954 17.428 5.715 16.744 5.664C16.067 5.613 15.459 5.772 14.956 6.045C14.443 6.312 13.995 6.707 13.686 7.266C13.374 7.831 13.235 8.465 13.443 9.29C13.49 9.585 13.406 9.954 13.235 10.16C13.063 10.365 12.713 10.514 12.403 10.518C9.249 10.357 6.652 9.197 4.496 7.279C4.479 7.666 4.473 7.848 4.695 8.419C4.919 8.991 5.284 9.465 5.859 9.827C6.042 9.96 6.207 10.169 6.267 10.349C6.327 10.532 6.325 10.783 6.271 10.958C6.217 11.134 6.078 11.343 5.924 11.462C5.773 11.578 5.518 11.661 5.289 11.671C4.93 11.663 5.19 11.725 4.839 11.64C5.249 12.418 5.77 12.926 6.926 13.129C7.159 13.188 7.399 13.331 7.522 13.485C7.647 13.643 7.732 13.89 7.738 14.08C7.744 14.27 7.676 14.522 7.562 14.688C7.45 14.85 7.219 15.008 6.991 15.083C6.676 15.165 7.004 15.13 6.69 15.15C7.227 15.648 7.701 15.929 8.719 15.931C8.934 15.946 9.175 16.028 9.319 16.14C9.466 16.254 9.602 16.452 9.658 16.62C9.714 16.787 9.724 17.028 9.674 17.207C9.625 17.383 9.478 17.592 9.313 17.731C8.179 18.586 8.09 18.844 6.691 19.116Z\"\n },\n iconFacebook() {\n return \"M 14.175 5.321 L 16.001 5.321 L 16.001 2.141 C 15.686 2.098 14.602 2 13.341 2 C 10.708 2 8.905 3.656 8.905 6.699 L 8.905 9.5 L 6 9.5 L 6 13.055 L 8.905 13.055 L 8.905 22 L 12.466 22 L 12.466 13.056 L 15.255 13.056 L 15.697 9.501 L 12.466 9.501 L 12.466 7.052 C 12.466 6.024 12.743 5.321 14.175 5.321 Z\"\n },\n iconReddit() {\n return \"M19.771 3.9C19.566 3.9 19.392 4.032 19.329 4.215C19.327 4.225 19.325 4.234 19.323 4.244C19.319 4.261 19.314 4.278 19.309 4.295C19.306 4.319 19.304 4.343 19.304 4.367C19.304 4.625 19.513 4.834 19.771 4.834C20.029 4.834 20.238 4.625 20.238 4.367C20.238 4.109 20.029 3.9 19.771 3.9ZM19.771 2.1C21.023 2.1 22.038 3.115 22.038 4.367C22.038 5.619 21.023 6.634 19.771 6.634C18.65 6.634 17.718 5.82 17.536 4.75L14.533 4.048L13.587 6.265C15.609 6.462 17.456 7.101 18.907 8.074C19.375 7.755 19.942 7.568 20.551 7.568C22.165 7.568 23.502 8.883 23.502 10.518C23.502 11.61 22.909 12.555 22.035 13.058C22.038 13.122 22.039 13.187 22.039 13.252C22.039 17.092 18.557 22.304 12.254 22.304C9.344 22.304 6.899 20.987 5.196 19.231C3.51 17.494 2.469 15.242 2.469 13.252C2.469 13.169 2.471 13.086 2.475 13.004C1.647 12.49 1.102 11.566 1.102 10.518C1.102 8.887 2.42 7.568 4.052 7.568C4.636 7.568 5.192 7.735 5.656 8.041C7.271 6.974 9.368 6.313 11.652 6.214L13.174 2.647C13.345 2.245 13.781 2.024 14.206 2.124L17.961 3.002C18.375 2.454 19.032 2.1 19.771 2.1ZM6.155 9.899C5.967 10.047 5.728 10.114 5.491 10.086C5.254 10.058 5.038 9.937 4.89 9.749C4.712 9.524 4.417 9.368 4.052 9.368C3.414 9.368 2.902 9.881 2.902 10.518C2.902 11.044 3.248 11.469 3.692 11.592C4.149 11.72 4.429 12.18 4.331 12.645C4.289 12.843 4.269 13.041 4.269 13.252C4.269 14.666 5.044 16.49 6.487 17.977C7.913 19.447 9.912 20.504 12.254 20.504C17.446 20.504 20.239 16.22 20.239 13.252C20.239 13.054 20.218 12.845 20.183 12.635C20.106 12.172 20.397 11.727 20.852 11.614C21.337 11.492 21.702 11.052 21.702 10.518C21.702 9.885 21.179 9.368 20.551 9.368C20.195 9.368 19.876 9.534 19.67 9.793C19.521 9.981 19.303 10.101 19.065 10.128C18.826 10.154 18.587 10.084 18.4 9.934C16.963 8.774 14.774 8.005 12.274 8.001C12.259 8.001 12.244 8.001 12.229 8.001C9.758 8.006 7.594 8.761 6.155 9.899ZM15.669 12.785C15.789 12.785 15.886 12.688 15.886 12.569C15.886 12.449 15.789 12.352 15.669 12.352C15.55 12.352 15.453 12.449 15.453 12.569C15.453 12.688 15.55 12.785 15.669 12.785ZM14.086 12.569C14.086 11.694 14.795 10.985 15.669 10.985C16.544 10.985 17.253 11.694 17.253 12.569C17.253 13.443 16.544 14.152 15.669 14.152C14.795 14.152 14.086 13.443 14.086 12.569ZM8.837 12.785C8.957 12.785 9.054 12.688 9.054 12.569C9.054 12.449 8.957 12.352 8.837 12.352C8.718 12.352 8.621 12.449 8.621 12.569C8.621 12.688 8.718 12.785 8.837 12.785ZM7.254 12.569C7.254 11.694 7.963 10.985 8.837 10.985C9.712 10.985 10.421 11.694 10.421 12.569C10.421 13.443 9.712 14.152 8.837 14.152C7.963 14.152 7.254 13.443 7.254 12.569ZM8.768 16.022C9.06 15.619 9.622 15.529 10.025 15.82C10.674 16.289 11.453 16.541 12.254 16.541C13.054 16.541 13.834 16.289 14.482 15.82C14.885 15.529 15.447 15.619 15.739 16.022C16.03 16.425 15.94 16.987 15.537 17.279C14.581 17.97 13.433 18.341 12.254 18.341C11.075 18.341 9.926 17.97 8.97 17.279C8.568 16.987 8.477 16.425 8.768 16.022Z\"\n },\n iconGithub() {\n return \"M4.841 20.908C4.183 20.41 3.788 19.743 3.612 19.261C3.389 18.738 3.093 18.301 2.688 17.901C2.533 17.818 2.235 17.625 1.992 17.384C1.757 17.124 1.574 16.736 1.547 16.389L1.547 16.387C1.567 16.159 1.693 15.857 1.841 15.683C2.016 15.536 2.319 15.41 2.547 15.392L2.554 15.392C2.728 15.404 2.967 15.479 3.117 15.57C3.255 15.679 3.41 15.877 3.482 16.037L3.483 16.037C3.531 16.076 3.568 16.101 3.622 16.132L3.652 16.148L3.679 16.169C4.457 16.782 5.11 17.654 5.489 18.569C5.672 19.273 6.202 19.484 6.86 19.594C7.511 19.722 8.232 19.641 8.887 19.52L8.932 19.511L8.948 19.511L8.887 19.52C9.014 19.502 9.198 19.503 9.322 19.536C9.39 19.553 9.47 19.587 9.545 19.627L10.069 18.828L10.068 20.503L10.076 20.67L10.069 20.679C10.069 21.263 10.076 21.507 10.08 21.684C10.08 21.684 10.08 21.691 10.08 21.69L10.085 22.009C10.065 22.236 9.939 22.537 9.792 22.71C9.617 22.858 9.313 23.003 9.085 23.003C8.87 23.003 8.588 22.874 8.409 22.736L8.102 23.117L8.085 21.999L8.055 21.638C6.538 21.713 5.479 21.35 4.841 20.908ZM8.353 17.74C8.252 17.535 8.202 17.209 8.237 16.983C8.272 16.845 8.313 16.704 8.355 16.584C7.325 16.348 6.032 15.851 4.984 14.902C3.985 13.957 3.122 12.418 2.931 10.125C2.9 9.823 2.886 9.506 2.888 9.203L2.889 9.106C2.888 9.138 2.888 9.171 2.888 9.203L2.883 8.708L2.892 8.708L2.889 9.106C2.91 7.786 3.363 6.436 4.144 5.374C4.118 5.271 4.088 5.132 4.064 5.01C3.905 3.901 4.05 2.703 4.469 1.663C4.522 1.545 4.627 1.392 4.718 1.3C4.817 1.216 4.978 1.123 5.1 1.079C5.29 1.019 6.654 0.773 9.264 2.334C11.335 1.853 13.546 1.853 15.618 2.334C18.24 0.752 19.608 1.019 19.798 1.083L19.802 1.084C19.921 1.13 20.077 1.223 20.174 1.306C20.262 1.397 20.364 1.547 20.417 1.662L20.417 1.664C20.828 2.684 20.972 3.875 20.824 4.965C20.801 5.095 20.774 5.22 20.748 5.326L20.736 5.376L20.735 5.377C21.545 6.457 22.005 7.85 21.998 9.199C21.998 9.2 21.998 9.202 21.998 9.203L21.997 9.412C21.992 9.662 21.977 9.917 21.952 10.163C21.952 10.163 21.952 10.162 21.952 10.163C21.937 11.672 21.372 13.211 20.407 14.373C19.419 15.514 17.994 16.323 16.507 16.586C16.551 16.718 16.592 16.866 16.623 17.002C16.729 17.42 16.783 17.883 16.778 18.313L16.778 20.667C16.768 21.312 16.768 21.786 16.768 22.003C16.768 22.231 16.637 22.549 16.475 22.71C16.314 22.872 15.996 23.003 15.768 23.003C15.54 23.003 15.222 22.872 15.061 22.71C14.899 22.548 14.768 22.231 14.768 22.003C14.768 21.781 14.768 21.297 14.778 20.651L14.778 18.308C14.786 18.029 14.751 17.747 14.683 17.476C14.633 17.11 14.492 16.839 14.221 16.588L14.219 16.586C14.1 16.468 13.971 16.263 13.915 16.104C13.88 15.94 13.883 15.699 13.923 15.535C13.983 15.378 14.118 15.177 14.241 15.062C14.377 14.963 14.599 14.869 14.764 14.84L14.783 14.837L14.794 14.837C16.507 14.644 17.725 14.238 18.581 13.408C19.477 12.607 19.859 11.504 19.961 9.973C19.988 9.715 20 9.455 19.998 9.196C20.036 8.197 19.731 7.298 19.095 6.526C19.025 6.437 18.951 6.347 18.872 6.259L18.873 6.259C18.773 6.134 18.673 5.928 18.635 5.773C18.615 5.615 18.637 5.386 18.685 5.234C18.765 5.031 18.817 4.84 18.854 4.626C18.936 4.083 18.908 3.579 18.766 3.049C17.888 3.299 17.079 3.703 16.347 4.249C16.242 4.311 16.08 4.374 15.961 4.399C15.835 4.414 15.651 4.404 15.527 4.376L15.526 4.376C13.486 3.813 11.399 3.813 9.358 4.376L9.357 4.376C9.234 4.404 9.055 4.414 8.929 4.4C8.811 4.375 8.624 4.296 8.519 4.236C7.784 3.693 6.996 3.308 6.115 3.063C5.972 3.607 5.947 4.124 6.036 4.679C6.072 4.875 6.12 5.047 6.191 5.234C6.24 5.387 6.261 5.614 6.241 5.773C6.204 5.926 6.096 6.139 5.999 6.263C5.93 6.338 5.867 6.412 5.805 6.493C5.167 7.278 4.859 8.198 4.888 9.209C4.885 9.456 4.897 9.703 4.922 9.948C5.027 11.498 5.408 12.597 6.301 13.404C7.156 14.242 8.412 14.653 10.124 14.844C10.287 14.878 10.495 14.968 10.625 15.062C10.748 15.177 10.892 15.374 10.943 15.535C10.993 15.695 10.986 15.939 10.951 16.104C10.895 16.262 10.767 16.466 10.648 16.584L10.647 16.585C10.382 16.831 10.234 17.127 10.174 17.483C10.098 17.692 9.906 17.948 9.725 18.078C9.52 18.179 9.195 18.228 8.969 18.192C8.753 18.119 8.488 17.925 8.353 17.74ZM4.475 1.647L4.628 1.263L4.63 1.263L4.474 1.649ZM4.474 1.649L4.469 1.663L4.469 1.662Z\"\n },\n iconSettings() {\n return \"M19.4301 12.98C19.4701 12.66 19.5001 12.34 19.5001 12C19.5001 11.66 19.4701 11.34 19.4301 11.02L21.5401 9.37C21.7301 9.22 21.7801 8.95 21.6601 8.73L19.6601 5.27C19.5701 5.11 19.4001 5.02 19.2201 5.02C19.1601 5.02 19.1001 5.03 19.0501 5.05L16.5601 6.05C16.0401 5.65 15.4801 5.32 14.8701 5.07L14.4901 2.42C14.4601 2.18 14.2501 2 14.0001 2H10.0001C9.75008 2 9.54008 2.18 9.51008 2.42L9.13008 5.07C8.52008 5.32 7.96008 5.66 7.44008 6.05L4.95008 5.05C4.89008 5.03 4.83008 5.02 4.77008 5.02C4.60008 5.02 4.43008 5.11 4.34008 5.27L2.34008 8.73C2.21008 8.95 2.27008 9.22 2.46008 9.37L4.57008 11.02C4.53008 11.34 4.50008 11.67 4.50008 12C4.50008 12.33 4.53008 12.66 4.57008 12.98L2.46008 14.63C2.27008 14.78 2.22008 15.05 2.34008 15.27L4.34008 18.73C4.43008 18.89 4.60008 18.98 4.78008 18.98C4.84008 18.98 4.90008 18.97 4.95008 18.95L7.44008 17.95C7.96008 18.35 8.52008 18.68 9.13008 18.93L9.51008 21.58C9.54008 21.82 9.75008 22 10.0001 22H14.0001C14.2501 22 14.4601 21.82 14.4901 21.58L14.8701 18.93C15.4801 18.68 16.0401 18.34 16.5601 17.95L19.0501 18.95C19.1101 18.97 19.1701 18.98 19.2301 18.98C19.4001 18.98 19.5701 18.89 19.6601 18.73L21.6601 15.27C21.7801 15.05 21.7301 14.78 21.5401 14.63L19.4301 12.98ZM17.4501 11.27C17.4901 11.58 17.5001 11.79 17.5001 12C17.5001 12.21 17.4801 12.43 17.4501 12.73L17.3101 13.86L18.2001 14.56L19.2801 15.4L18.5801 16.61L17.3101 16.1L16.2701 15.68L15.3701 16.36C14.9401 16.68 14.5301 16.92 14.1201 17.09L13.0601 17.52L12.9001 18.65L12.7001 20H11.3001L11.1101 18.65L10.9501 17.52L9.89008 17.09C9.46008 16.91 9.06008 16.68 8.66008 16.38L7.75008 15.68L6.69008 16.11L5.42008 16.62L4.72008 15.41L5.80008 14.57L6.69008 13.87L6.55008 12.74C6.52008 12.43 6.50008 12.2 6.50008 12C6.50008 11.8 6.52008 11.57 6.55008 11.27L6.69008 10.14L5.80008 9.44L4.72008 8.6L5.42008 7.39L6.69008 7.9L7.73008 8.32L8.63008 7.64C9.06008 7.32 9.47008 7.08 9.88008 6.91L10.9401 6.48L11.1001 5.35L11.3001 4H12.6901L12.8801 5.35L13.0401 6.48L14.1001 6.91C14.5301 7.09 14.9301 7.32 15.3301 7.62L16.2401 8.32L17.3001 7.89L18.5701 7.38L19.2701 8.59L18.2001 9.44L17.3101 10.14L17.4501 11.27ZM12.0001 8C9.79008 8 8.00008 9.79 8.00008 12C8.00008 14.21 9.79008 16 12.0001 16C14.2101 16 16.0001 14.21 16.0001 12C16.0001 9.79 14.2101 8 12.0001 8ZM12.0001 14C10.9001 14 10.0001 13.1 10.0001 12C10.0001 10.9 10.9001 10 12.0001 10C13.1001 10 14.0001 10.9 14.0001 12C14.0001 13.1 13.1001 14 12.0001 14Z\"\n },\n iconSupport() {\n return \"M11 18H13V16H11V18ZM12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM12 6C9.79 6 8 7.79 8 10H10C10 8.9 10.9 8 12 8C13.1 8 14 8.9 14 10C14 12 11 11.75 11 15H13C13 12.75 16 12.5 16 10C16 7.79 14.21 6 12 6Z\"\n },\n iconPreferences() {\n return \"M19.4301 12.98C19.4701 12.66 19.5001 12.34 19.5001 12C19.5001 11.66 19.4701 11.34 19.4301 11.02L21.5401 9.37C21.7301 9.22 21.7801 8.95 21.6601 8.73L19.6601 5.27C19.5701 5.11 19.4001 5.02 19.2201 5.02C19.1601 5.02 19.1001 5.03 19.0501 5.05L16.5601 6.05C16.0401 5.65 15.4801 5.32 14.8701 5.07L14.4901 2.42C14.4601 2.18 14.2501 2 14.0001 2H10.0001C9.75008 2 9.54008 2.18 9.51008 2.42L9.13008 5.07C8.52008 5.32 7.96008 5.66 7.44008 6.05L4.95008 5.05C4.89008 5.03 4.83008 5.02 4.77008 5.02C4.60008 5.02 4.43008 5.11 4.34008 5.27L2.34008 8.73C2.21008 8.95 2.27008 9.22 2.46008 9.37L4.57008 11.02C4.53008 11.34 4.50008 11.67 4.50008 12C4.50008 12.33 4.53008 12.66 4.57008 12.98L2.46008 14.63C2.27008 14.78 2.22008 15.05 2.34008 15.27L4.34008 18.73C4.43008 18.89 4.60008 18.98 4.78008 18.98C4.84008 18.98 4.90008 18.97 4.95008 18.95L7.44008 17.95C7.96008 18.35 8.52008 18.68 9.13008 18.93L9.51008 21.58C9.54008 21.82 9.75008 22 10.0001 22H14.0001C14.2501 22 14.4601 21.82 14.4901 21.58L14.8701 18.93C15.4801 18.68 16.0401 18.34 16.5601 17.95L19.0501 18.95C19.1101 18.97 19.1701 18.98 19.2301 18.98C19.4001 18.98 19.5701 18.89 19.6601 18.73L21.6601 15.27C21.7801 15.05 21.7301 14.78 21.5401 14.63L19.4301 12.98ZM17.4501 11.27C17.4901 11.58 17.5001 11.79 17.5001 12C17.5001 12.21 17.4801 12.43 17.4501 12.73L17.3101 13.86L18.2001 14.56L19.2801 15.4L18.5801 16.61L17.3101 16.1L16.2701 15.68L15.3701 16.36C14.9401 16.68 14.5301 16.92 14.1201 17.09L13.0601 17.52L12.9001 18.65L12.7001 20H11.3001L11.1101 18.65L10.9501 17.52L9.89008 17.09C9.46008 16.91 9.06008 16.68 8.66008 16.38L7.75008 15.68L6.69008 16.11L5.42008 16.62L4.72008 15.41L5.80008 14.57L6.69008 13.87L6.55008 12.74C6.52008 12.43 6.50008 12.2 6.50008 12C6.50008 11.8 6.52008 11.57 6.55008 11.27L6.69008 10.14L5.80008 9.44L4.72008 8.6L5.42008 7.39L6.69008 7.9L7.73008 8.32L8.63008 7.64C9.06008 7.32 9.47008 7.08 9.88008 6.91L10.9401 6.48L11.1001 5.35L11.3001 4H12.6901L12.8801 5.35L13.0401 6.48L14.1001 6.91C14.5301 7.09 14.9301 7.32 15.3301 7.62L16.2401 8.32L17.3001 7.89L18.5701 7.38L19.2701 8.59L18.2001 9.44L17.3101 10.14L17.4501 11.27ZM12.0001 8C9.79008 8 8.00008 9.79 8.00008 12C8.00008 14.21 9.79008 16 12.0001 16C14.2101 16 16.0001 14.21 16.0001 12C16.0001 9.79 14.2101 8 12.0001 8ZM12.0001 14C10.9001 14 10.0001 13.1 10.0001 12C10.0001 10.9 10.9001 10 12.0001 10C13.1001 10 14.0001 10.9 14.0001 12C14.0001 13.1 13.1001 14 12.0001 14Z\"\n },\n iconAccount() {\n return \"M12 6C13.1 6 14 6.9 14 8C14 9.1 13.1 10 12 10C10.9 10 10 9.1 10 8C10 6.9 10.9 6 12 6ZM12 16C14.7 16 17.8 17.29 18 18H6C6.23 17.28 9.31 16 12 16ZM12 4C9.79 4 8 5.79 8 8C8 10.21 9.79 12 12 12C14.21 12 16 10.21 16 8C16 5.79 14.21 4 12 4ZM12 14C9.33 14 4 15.34 4 18V20H20V18C20 15.34 14.67 14 12 14Z\"\n },\n iconPassword() {\n return \"M22 19H16V15H13.32C12.18 17.42 9.72 19 7 19C3.14 19 0 15.86 0 12C0 8.14 3.14 5 7 5C9.72 5 12.17 6.58 13.32 9H24V15H22V19ZM18 17H20V13H22V11H11.94L11.71 10.33C11.01 8.34 9.11 7 7 7C4.24 7 2 9.24 2 12C2 14.76 4.24 17 7 17C9.11 17 11.01 15.66 11.71 13.67L11.94 13H18V17ZM7 15C5.35 15 4 13.65 4 12C4 10.35 5.35 9 7 9C8.65 9 10 10.35 10 12C10 13.65 8.65 15 7 15ZM7 11C6.45 11 6 11.45 6 12C6 12.55 6.45 13 7 13C7.55 13 8 12.55 8 12C8 11.45 7.55 11 7 11Z\"\n },\n iconSubscription() {\n return \"M21 7.28V5C21 3.9 20.1 3 19 3H5C3.89 3 3 3.9 3 5V19C3 20.1 3.89 21 5 21H19C20.1 21 21 20.1 21 19V16.72C21.59 16.37 22 15.74 22 15V9C22 8.26 21.59 7.63 21 7.28ZM20 9V15H13V9H20ZM5 19V5H19V7H13C11.9 7 11 7.9 11 9V15C11 16.1 11.9 17 13 17H19V19H5Z M16 13.5C16.8284 13.5 17.5 12.8284 17.5 12C17.5 11.1716 16.8284 10.5 16 10.5C15.1716 10.5 14.5 11.1716 14.5 12C14.5 12.8284 15.1716 13.5 16 13.5Z\"\n },\n iconDownload() {\n return \"M19 9H15V3H9V9H5L12 16L19 9ZM11 11V5H13V11H14.17L12 13.17L9.83 11H11ZM5 18H19V20H5V18Z\"\n },\n iconRefresh() {\n return \"M 21.666 12.425 C 21.666 17.537 17.522 21.68 12.411 21.68 C 9.518 21.68 6.937 20.352 5.24 18.274 L 3.155 20.359 L 3.155 14.408 L 9.105 14.408 L 7.126 16.388 C 8.333 17.994 10.25 19.036 12.411 19.036 C 16.055 19.036 19.022 16.071 19.022 12.425 Z M 21.666 4.493 L 21.666 10.442 L 15.716 10.442 L 17.696 8.461 C 16.489 6.855 14.569 5.814 12.411 5.814 C 8.765 5.814 5.8 8.78 5.8 12.425 L 3.155 12.425 C 3.155 7.314 7.299 3.169 12.41 3.169 C 15.303 3.169 17.884 4.499 19.581 6.578 Z\"\n },\n iconReset() {\n return \"M12,4 L12,0 L7,5 L12,10 L12,6 L13,6 C16.309,6 19,8.691 19,12 C19,15.309 16.309,18 13,18 C9.691,18 7,15.309 7,12 L7,11 L5,11 L5,12 C5,16.411 8.589,20 13,20 C17.411,20 21,16.411 21,12 C21,7.589 17.411,4 13,4 L12,4 Z\"\n },\n },\n methods: {\n getQrIcon(type, name) {\n if (type === 'static') {\n switch (name) {\n case 'url': return mdiWeb\n case 'phone': return mdiPhone\n case 'whatsapp': return mdiWhatsapp\n case 'facebook': return this.iconFacebook\n case 'twitter': return this.iconTwitter\n case 'wifi': return mdiWifi\n case 'text': return mdiTextBoxOutline\n case 'sms': return mdiMessageTextOutline\n case 'email': return mdiAt\n case 'contact': return mdiCardAccountDetailsOutline\n case 'crypto': return this.iconCrypto\n case 'event': return mdiCalendar\n case 'file': return mdiFileOutline\n case 'dynamic-page': return mdiCellphoneInformation\n case 'dynamic-url': return mdiLinkBoxVariantOutline\n case 'dynamic-contact': return mdiCardAccountDetailsOutline\n }\n } else if (type === 'dynamic') {\n switch (name) {\n case 'page': return mdiTextBoxOutline\n case 'url': return mdiWeb\n case 'contact': return mdiCardAccountDetailsOutline\n }\n }\n return mdiQrcode\n }\n }\n}\n","const setHeadTag = (props, value, tagName = 'meta', attrName = 'content') => {\n let qs = Object.keys(props).map(k => `[${k}=\"${props[k]}\"]`).join('')\n let el = document.querySelector(`head ${tagName}${qs}`)\n if (!el) {\n if (!value) return\n el = document.createElement(tagName)\n for (let k in props)\n el.setAttribute(k, props[k])\n document.querySelector('head').appendChild(el)\n }\n if (value) el.setAttribute(attrName, value)\n else el.remove()\n};\n\nexport default {\n methods: {\n setTitle(title = null) {\n let parts = [process.env.VUE_APP_NAME]\n if (Array.isArray(title)) {\n parts = [...title, ...parts]\n } else if (title) {\n parts = [title, ...parts]\n } else {\n parts = [this.$t('app.metatitle'), ...parts]\n }\n const fulltitle = process.env.VUE_APP_TITLEPREFIX + parts.join(' • ')\n document.title = fulltitle\n setHeadTag({name: 'twitter:title'}, fulltitle)\n setHeadTag({name: 'og:title'}, fulltitle)\n this.setOgUrl((this.$route && this.$route.path) ? this.$route.path.trimRight('/') : '')\n this.setOgImage('/images/oglogo1200.png')\n\n // Reset all other tags.\n this.setMetaDesc(null)\n this.setMetaKeywords(null)\n setHeadTag({name: 'og:image'}, process.env.VUE_APP_URL+'/images/oglogo1200.png')\n\n // Set alternatives\n const alternatives = this.getAlternatives(false)\n for (let lang in alternatives)\n setHeadTag({rel: 'alternate', hreflang: lang}, process.env.VUE_APP_URL+alternatives[lang], 'link','href')\n },\n setOgUrl(url) {\n if (!url.match(/^http/)) url = process.env.VUE_APP_URL + url\n setHeadTag({rel: 'canonical'}, url, 'link', 'href')\n setHeadTag({name: 'og:url'}, url)\n setHeadTag({name: 'twitter:url'}, url)\n },\n setOgImage(url) {\n if (!url.match(/^http/)) url = process.env.VUE_APP_URL + url\n setHeadTag({name: 'og:image'}, url)\n setHeadTag({name: 'twitter:image'}, url)\n },\n setMetaDesc(desc = null) {\n const fulldesc = desc ? desc : this.$t('app.metadesc')\n setHeadTag({name: 'description'}, fulldesc)\n setHeadTag({name: 'og:description'}, fulldesc)\n setHeadTag({name: 'twitter:description'}, fulldesc)\n },\n setMetaKeywords(kw = null) {\n setHeadTag({name: 'keywords'}, kw)\n }\n }\n}\n","import Vue from 'vue'\n\nconst EventBus = new Vue()\n\nexport default EventBus"],"sourceRoot":""}