{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/App.vue?387d","webpack:///src/App.vue","webpack:///./src/App.vue?8b47","webpack:///./src/App.vue","webpack:///./src/router.js","webpack:///./src/store-settings.js","webpack:///./src/store.js","webpack:///./src/main.js","webpack:///./src/App.vue?763a","webpack:///./src/components/Switch.vue?d57a","webpack:///src/components/Switch.vue","webpack:///./src/components/Switch.vue?46d2","webpack:///./src/components/Switch.vue","webpack:///./src/components/Basket.vue?1455","webpack:///./src/components/Switch.vue?ebf0","webpack:///./src/components/Basket.vue?99ff","webpack:///src/components/Basket.vue","webpack:///./src/components/Basket.vue?0dd1","webpack:///./src/components/Basket.vue"],"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","map","webpackContext","req","id","webpackContextResolve","keys","render","_vm","this","_h","$createElement","_c","_self","class","mobile","isMobile","desktop","forcedbasket","forcedBasket","showBasket","header","headerConfig","style","bgImage","attrs","initialising","systemError","staticClass","staticStyle","_v","_e","klarnaCallbackFlow","success","prepopulatedKlarna","Data","Status","fail","ThankYouMessage","_l","entry","domProps","_s","description","parameters","Currency","price","toFixed","Entries","directives","rawName","isCourse","expression","Message","itemsdescription","ToName","servicedescription","servicePrice","on","continueToBP","missingDetailsError","missingdetails","$event","composing","$set","model","callback","$$v","missingdetailssubmit","menuopen","menuOpen","websitelink","logoImage","showNavEntry","showNavLinks","chosenSalon","ShowCourses","ShowSubscriptions","OnlineGCSaleType","EnableReviews","SellProductsOnline","Showbook","BookLabel","basketbutton","oncheckout","onCheckout","bounce","bounceBasket","basketItemCount","user","large","isAuthorised","userDetails","Clientimage","toggleMenu","contentClasses","$route","fullPath","switchToServices","goToCheckout","nativeOn","DEBUG_toggleService","getCookieInfo","acceptCookies","notification","redirectToForgotPassword","closeNotification","forgotpwd","buttonLabel","staticRenderFns","components","Basket","dkswitch","showDebug","windowWidth","Password","Mobile","Gender","EmailOptout","SmsOptout","computed","assign","loading","basket","showMissingDetails","cookieConsentVisible","EventBus","obj","totalProducts","a","quantity","watch","_this","$store","dispatch","methods","_","commit","indexOf","win","open","focus","innerWidth","$router","replace","test","color","$emit","urlParams","ac","location","search","params","parts","substring","split","nv","sniffPlatformDetails","$on","addEventListener","resize","state","settings","salonid","$nextTick","loadParameters","component","use","router","routes","path","redirect","to","from","next","default","beforeEach","BookingPortal","forcedTeammember","CategoryId","TeamMembers","localPrefix","host","AxiosCancelRequest","CancelToken","getCookie","b","cookie","match","pop","getTenantInfoForRequest","overrideObject","info","url","encodeURIComponent","hostname","origin","page","Fid","selectedSalonID","userid","VERSION_BASKET","PHE","trackingParamsString","stripeInstance","stripeClientSecret","paymentsLoading","makeBookingLoading","existingCardsLoading","existingcards","klarnaButtonText","isKlarnaEnabled","AutoOpenDropDowns","BA_AndroidAPPLink","BA_AppName","BA_IOSAPPLink","BA_ShowChoiceBackgroundImages","BackgroundImageLink","CDIndex_Purchase","CDIndex_Salon","CDIndex_Teammember","CDIndex_Widget","ClickMeIndicatorText","ClickmeIndicator","CloseText","CssLink","CurrencyABB","DenominationID","EnableCustomIndices","FBPixelID","GACrossTrackingDomains","GATrackingID","GATrackingIDSalonIQ","GCDefaultSalon","GCID","HideMemo","HidePromo","HostName","ImagePath","LoggedIn","LoginRequired","LogoLink","Onesalon","OnlineBookingsEnabled","OpenText","PreLoadResources","Prepopulate","RecaptchaEnabled","ShowPoints","ShowServiceSubCategories","ThankYouPage","closeLabelTextColor","er","fp","gcspid","listGroupHeaderColor","listGroupHeaderTextColor","openLabelTextColor","refreshedon","sp","wrapperBackgroundColorLeft","wrapperBackgroundColorRight","salons","loadingSalons","salonTeam","loadingSalonTeam","denominations","giftcardbalance","courses","subscriptions","loadingQuestions","loadingUpgrades","questionsdata","loadingWrongQuestions","products","categories","brands","subbrands","originalSalonID","selectedSalon","ID","ImageLink","Name","basketOn","loadingProducts","filters","title","selected","public","options","min","max","selectedOptionName","selectedOptionID","priceRanges","platformDetails","authorised","authenticating","missingdetailserror","details","addresses","billing","delivery","postcodelookupresults","response","AddressInfoList","cookieconsent","team","desiredPage","desiredParams","loadingdeliveryaddress","loadingpostcodes","loadingdenominations","loadingcourses","loadingsubscriptions","checkingGiftcardBalance","giftcardBalance","mygiftcards","mycourses","lastSalonTeamSalonID","loadingbookingavailability","checkingAvalability","recommendations","bounceBasketTimer","pastproducts","loadingsalonreviews","salonreviews","priceRangeLimits","services","loadingservices","servicecategories","coursescategories","teammembers","loadingteammembers","loadingdatestatus","loadingDateStatusRequestCancel","temporaryData","loadingcharge","upgrades","bookings","future","past","loadingBookings","loadingPromocode","tags","bookingrequiredfields","chosenCourse","chosenSubscription","tmrecommendation","checkingProductAvailability","switchCategory","gaConfigCustomDimensionsObject","gaConfigCustomDimensionsObjectSalonIQ","queuemodestatus","queuemodestatusloading","queuemodepromocodeloading","loadingqueuemodestuff","mysubscriptions","loadingmysubscriptions","addingToWaitingList","validGiftcards","validatingNewGiftcard","mutations","section","switch","tokenid","Denomination","sort","Sequence","Courses","Description","Categories","forEach","item","DetailedCategoryDescription","Subscriptions","Products","Tags","maxPrice","RRP","len","toString","Math","ceil","pow","producttypes","find","ProductType","isInArray2","ProductTypeId","children","isInArray1","ProductCategoryId","detaileddescription","DetailedDescription","image","ProductCategoryImage","Website","category","brand","subbrand","product","subcategories","SubCategories","ProductSubCategoryId","ProductSubCategoryImage","foundSubBrand","k","fbrand","JSON","parse","stringify","foundBrand","payload","isForcedLogin","Cards","Address1","Address2","Address3","Address4","County","Town","Postcode","WarningColour","Salons","SequenceNumber","specialDays","specialDayMessage","closedDays","CreatedDate","index","findIndex","ProductId","service","teammember","denomination","GCDenominationId","g","Service","toLowerCase","Order","TeamMemberId","BannerMessageShop","BannerMessageSubscriptions","BannerMessageCourse","BannerMessageGiftCard","BannerMessageBook","Questions","Answer","futureBookings","pastBookings","time1","BookingDateTimeStamp","time2","course","getters","salon","cd","arr","Date","parseInt","dates","add","toDate","TCLink","MyStripePublishableKey","spid","tabs","filter","Type","klarna","entries","Giftcard","Services","FixedPrice","actions","post","clientid","items","tenantInfo","notes","promocode","standbyitemid","waitingdate","idx","getURLFromURLParams","origParams","substr","pathname","klarnaID","payment_intent","payment_intent_client_secret","paramsToSend","redirect_status","source_type","paramsCopy","history","replaceState","found","servicesEntry","Package","TeamMemberid","Serviceid","TeamMemberName","parsToCheck","pars","join","ButtonColor","documentElement","setProperty","lighten","setAlpha","EnableFavFilter","doRoute","tab","gaTrackingDomains","gtag","GA4IDSalonIQ","linker","domains","GA4ID","custom_map","fbq","accountCode","showDetails","action","scrollTo","Stripe","stripeAccount","log","currentRoute","DefaultSalonId","TenantName","ProductsSalonID","productids","queuemode","KlarnaText","ShowKlarnaButton","BOOK","loadCharge","data1","catch","Price","makeAnotherBooking","paymentintentdata","ValidGiftCards","setup","cards","clientsecret","updateData","cardid","CardID","fbAsyncInit","FB","init","appId","xfbml","version","js","fjs","getElementById","insertBefore","Register","Email","username","password","Faccesstoken","fbtoken","getPlatformDetails","ClientId","PortalLink","FirstName","firstname","LastName","lastname","email","CountryCode","countrycode","TokenID","Missingdetails","Reminderoptout","Username","EmailAddress","npassword","ResetCode","ccode","autoLoggedIn","targetPage","Clients","Recommendations","PastProducts","ClientAddresses","GiftCards","HomeSalonId","ClientRules","checkFields","haveToCheck","Byear","matched","instances","doAction","Bookings","bookingid","bookingID","thebookingid","thebookinglineid","bookinglineid","selectedItems","Salonid","postcode","address1","address2","town","county","addressid","method","fd","config","headers","cookieUserID","date","setTime","getTime","toGMTString","cc","localStorage","setItem","dataos","matchItem","string","regex","regexv","matches","RegExp","parseFloat","navigator","platform","userAgent","appVersion","vendor","opera","device","unknown","screenSize","screen","width","height","nameOffset","verOffset","ix","nVer","nAgt","browser","appName","majorVersion","lastIndexOf","toUpperCase","isNaN","cookieEnabled","os","clientStrings","cs","osVersion","exec","browserVersion","cookies","SalonID","Teammembers","reference","toname","fromname","printHtml","Print","source","startdate","questionsstring","qs","removeItem","setItems","items2","getItem","serviceid","mydate","selectedservices","selectedServices","ispackage","AllowMultipleTeamMembersforOnlineBooking","DayOff","Duration","ExtraCharge","OTCImageLink","PublicProfile","TeamMember","teammemberid","serviceids","cancel","availability","cancelToken","token","UniqueIdentifier","TotalPrice","CurrencyDescription","GA4Items","ContentType","SalonName","Shipping","GAItems","GA4ItemsSalonIQ","AccountCode","FBItems","Store","productionTip","store","h","App","$mount","Array","inArray","comparer","pushIfNotExist","element","internalValue","disabled","toggle","props","set","v1","itemsInBasket","isDiverseBasket","itemTypeInBasket","getTypeString","GiftcardImageLink","SmallImage","FaceValue","ActualValue","getDenominationPrice","sendData","Title","stopPropagation","removeItemFromBasket","setServicesToStepZero","total","types","typ","div","toggleBasket"],"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,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,gDAAgD,gDAAgD,YAAY,YAAY,KAAO,OAAO,6BAA6B,6BAA6B,SAAW,WAAW,QAAU,UAAU,UAAY,YAAY,cAAgB,gBAAgB,KAAO,OAAO,QAAU,UAAU,QAAU,UAAU,KAAO,QAAQ9B,IAAUA,GAAW,IAAM,CAAC,gDAAgD,WAAW,YAAY,WAAW,KAAO,WAAW,6BAA6B,WAAW,SAAW,WAAW,QAAU,WAAW,UAAY,WAAW,cAAgB,WAAW,KAAO,WAAW,QAAU,WAAW,QAAU,WAAW,KAAO,YAAYA,GAAW,MAIhvB,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,gDAAgD,EAAE,KAAO,EAAE,6BAA6B,EAAE,SAAW,EAAE,QAAU,EAAE,UAAY,EAAE,cAAgB,EAAE,KAAO,EAAE,QAAU,EAAE,QAAU,EAAE,KAAO,GACzMR,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,gDAAgD,gDAAgD,YAAY,YAAY,KAAO,OAAO,6BAA6B,6BAA6B,SAAW,WAAW,QAAU,UAAU,UAAY,YAAY,cAAgB,gBAAgB,KAAO,OAAO,QAAU,UAAU,QAAU,UAAU,KAAO,QAAQxC,IAAUA,GAAW,IAAM,CAAC,gDAAgD,WAAW,YAAY,WAAW,KAAO,WAAW,6BAA6B,WAAW,SAAW,WAAW,QAAU,WAAW,UAAY,WAAW,cAAgB,WAAW,KAAO,WAAW,QAAU,WAAW,QAAU,WAAW,KAAO,YAAYA,GAAW,OACxtByC,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,GAGxBL,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,kBAEjBM,K,uFC1QT,IAAI+F,EAAM,CACT,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,WAAY,OACZ,cAAe,OACf,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,QAAS,OACT,aAAc,OACd,gBAAiB,OACjB,WAAY,OACZ,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,QAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAO1F,EAAoB2F,GAE5B,SAASC,EAAsBF,GAC9B,IAAI1F,EAAoBgE,EAAEwB,EAAKE,GAAM,CACpC,IAAIjF,EAAI,IAAI0B,MAAM,uBAAyBuD,EAAM,KAEjD,MADAjF,EAAE2B,KAAO,mBACH3B,EAEP,OAAO+E,EAAIE,GAEZD,EAAeI,KAAO,WACrB,OAAO/G,OAAO+G,KAAKL,IAEpBC,EAAe5E,QAAU+E,EACzBrF,EAAOD,QAAUmF,EACjBA,EAAeE,GAAK,Q,oFCnShBG,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAACC,OAAOP,EAAIQ,SAASC,SAAST,EAAIQ,SAASE,aAAaV,EAAIW,cAAcX,EAAIY,WAAWC,OAAyB,QAAlBb,EAAIc,cAAsBC,MAAM,CAAE,mBAAmBf,EAAIgB,SAAUC,MAAM,CAAC,GAAK,QAAQ,CAACb,EAAG,aAAa,CAACa,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,CAAEjB,EAAIkB,cAA+B,IAAjBlB,EAAImB,YAAiBf,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAAChB,EAAG,MAAM,CAACA,EAAG,IAAI,CAACgB,YAAY,gCAAiCpB,EAAsB,mBAAEI,EAAG,MAAM,CAACiB,YAAY,CAAC,aAAa,OAAO,YAAY,OAAO,MAAQ,SAAS,CAACjB,EAAG,IAAI,CAACJ,EAAIsB,GAAG,uCAAuClB,EAAG,MAAMA,EAAG,MAAMJ,EAAIsB,GAAG,6CAA6CtB,EAAIuB,SAASvB,EAAIuB,OAAOnB,EAAG,aAAa,CAACa,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,EAAGjB,EAAIkB,cAAclB,EAAIwB,mBAAoBpB,EAAG,MAAM,CAACgB,YAAY,UAAU,CAAChB,EAAG,MAAM,CAACgB,YAAY,kCAAkC,CAAChB,EAAG,MAAM,CAACgB,YAAY,SAASd,MAAM,CAACmB,QAAQzB,EAAI0B,mBAAmBC,KAAKC,OAAOC,MAAM7B,EAAI0B,mBAAmBC,KAAKC,SAAS,CAAC5B,EAAIsB,GAAG,YAAatB,EAAI0B,mBAAmBC,KAAW,OAAEvB,EAAG,OAAO,CAACJ,EAAIsB,GAAG,aAAalB,EAAG,OAAO,CAACJ,EAAIsB,GAAG,UAAUtB,EAAIsB,GAAG,OAAOlB,EAAG,MAAM,CAACgB,YAAY,cAAc,CAAEpB,EAAI0B,mBAAmBC,KAAKC,QAAqD,IAA7C5B,EAAI0B,mBAAmBC,KAAKG,gBAAqB1B,EAAG,MAAM,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAG,uCAAuCtB,EAAIuB,KAAOvB,EAAI0B,mBAAmBC,KAAKC,OAA2G5B,EAAIuB,KAAvGnB,EAAG,MAAM,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAG,yDAAkEtB,EAAI+B,GAAI/B,EAAI0B,mBAA0B,SAAE,SAASM,GAAO,MAAqB,UAAbA,EAAM1B,OAAiBN,EAAI0B,mBAAmBC,KAAKC,OAAQxB,EAAG,MAAM,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAG,gCAAgClB,EAAG,IAAI,CAAC6B,SAAS,CAAC,UAAYjC,EAAIkC,GAAGF,EAAMG,gBAAgBnC,EAAIsB,GAAG,SAASlB,EAAG,IAAI,CAACA,EAAG,OAAO,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoC,WAAWC,aAAarC,EAAIsB,GAAGtB,EAAIkC,GAAGF,EAAMM,MAAMC,QAAQ,OAAOvC,EAAIsB,GAAG,+DAA+DtB,EAAIuB,QAAiD,YAAzCvB,EAAI0B,mBAAmBc,QAAQ,GAAGlC,OAAmBN,EAAI0B,mBAAmBC,KAAKC,OAAQxB,EAAG,MAAM,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAG,gDAAgDtB,EAAIuB,KAAmD,IAA7CvB,EAAI0B,mBAAmBC,KAAKG,gBAAqB1B,EAAG,MAAM,CAACgB,YAAY,WAAWa,SAAS,CAAC,UAAYjC,EAAIkC,GAAGlC,EAAI0B,mBAAmBC,KAAKG,oBAAoB9B,EAAIuB,KAAKnB,EAAG,MAAM,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,OAA0C,GAAjCwB,EAAI0B,mBAAmBiB,UAAuD,GAApC3C,EAAI0B,mBAAmBC,KAAKC,SAA2D,WAAzC5B,EAAI0B,mBAAmBc,QAAQ,GAAGlC,MAAmBsC,WAAW,sIAAsIxB,YAAY,WAAWpB,EAAI+B,GAAI/B,EAAI0B,mBAA0B,SAAE,SAASM,GAAO,OAAO5B,EAAG,MAAM,CAACgB,YAAY,QAAQd,MAAM0B,EAAM1B,OAAO,CAAe,SAAb0B,EAAM1B,MAAgBF,EAAG,MAAM,CAACiB,YAAY,CAAC,MAAQ,QAAQ,CAACjB,EAAG,IAAI,CAAC6B,SAAS,CAAC,UAAYjC,EAAIkC,GAAGF,EAAMa,cAAc7C,EAAIuB,KAAmB,YAAbS,EAAM1B,MAAmBF,EAAG,MAAM,CAACA,EAAG,IAAI,CAAC6B,SAAS,CAAC,UAAYjC,EAAIkC,GAAGF,EAAMc,uBAAuB9C,EAAIuB,KAAmB,YAAbS,EAAM1B,MAAmBF,EAAG,MAAM,CAACiB,YAAY,CAAC,aAAa,SAAS,CAACjB,EAAG,MAAM,CAACJ,EAAIsB,GAAG,yBAAwC,IAAdU,EAAMe,OAAY3C,EAAG,OAAO,CAACA,EAAG,IAAI,CAACJ,EAAIsB,GAAGtB,EAAIkC,GAAGF,EAAMe,aAAa3C,EAAG,OAAO,CAACJ,EAAIsB,GAAG,SAAStB,EAAIsB,GAAG,SAAStB,EAAIuB,KAAmB,WAAbS,EAAM1B,MAAkBF,EAAG,MAAM,CAACiB,YAAY,CAAC,QAAU,OAAO,kBAAkB,kBAAkB,CAACjB,EAAG,IAAI,CAAC6B,SAAS,CAAC,UAAYjC,EAAIkC,GAAGF,EAAMgB,uBAAuB5C,EAAG,IAAI,CAACA,EAAG,OAAO,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoC,WAAWC,aAAarC,EAAIsB,GAAGtB,EAAIkC,GAAGF,EAAMiB,aAAaV,QAAQ,SAASvC,EAAIuB,UAAS,IAAI,GAAGnB,EAAG,MAAM,CAACgB,YAAY,YAAY,CAAChB,EAAG,SAAS,CAAC8C,GAAG,CAAC,MAAQlD,EAAImD,eAAe,CAACnD,EAAIsB,GAAG,oBAAoBtB,EAAIuB,OAAOnB,EAAG,aAAa,CAACa,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,CAAEjB,EAAW,QAAEI,EAAG,MAAM,CAACgB,YAAY,UAAU,CAAChB,EAAG,IAAI,CAACgB,YAAY,kCAAkCpB,EAAIuB,OAAOnB,EAAG,aAAa,CAACa,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,CAAEjB,EAAsB,mBAAEI,EAAG,MAAM,CAACa,MAAM,CAAC,GAAK,mBAAmB,CAACb,EAAG,MAAM,CAACgB,YAAY,SAAS,CAAChB,EAAG,MAAM,CAACgB,YAAY,SAAS,CAAChB,EAAG,OAAO,CAACJ,EAAIsB,GAAG,uBAAuBlB,EAAG,MAAM,CAACgB,YAAY,WAAW,CAAChB,EAAG,MAAM,CAACgB,YAAY,aAAa,CAACpB,EAAIsB,GAAG,gEAAiEtB,EAAuB,oBAAEI,EAAG,MAAM,CAACgB,YAAY,SAAS,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoD,wBAAwBpD,EAAIuB,KAAKnB,EAAG,QAAQ,CAACqC,WAAW,CAAC,CAAChF,KAAK,QAAQiF,QAAQ,UAAUlE,MAAOwB,EAAIqD,eAAuB,SAAET,WAAW,4BAA4B3B,MAAM,CAAC,YAAc,WAAW,KAAO,YAAYgB,SAAS,CAAC,MAASjC,EAAIqD,eAAuB,UAAGH,GAAG,CAAC,MAAQ,SAASI,GAAWA,EAAOrH,OAAOsH,WAAqBvD,EAAIwD,KAAKxD,EAAIqD,eAAgB,WAAYC,EAAOrH,OAAOuC,WAAW4B,EAAG,QAAQ,CAACqC,WAAW,CAAC,CAAChF,KAAK,QAAQiF,QAAQ,UAAUlE,MAAOwB,EAAIqD,eAAqB,OAAET,WAAW,0BAA0B3B,MAAM,CAAC,YAAc,UAAUgB,SAAS,CAAC,MAASjC,EAAIqD,eAAqB,QAAGH,GAAG,CAAC,MAAQ,SAASI,GAAWA,EAAOrH,OAAOsH,WAAqBvD,EAAIwD,KAAKxD,EAAIqD,eAAgB,SAAUC,EAAOrH,OAAOuC,WAAW4B,EAAG,MAAM,CAACgB,YAAY,WAAW,CAAChB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAACpB,EAAIsB,GAAG,iMAAiMlB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAAChB,EAAG,QAAQ,CAACJ,EAAIsB,GAAG,WAAWlB,EAAG,WAAW,CAACqD,MAAM,CAACjF,MAAOwB,EAAIqD,eAA0B,YAAEK,SAAS,SAAUC,GAAM3D,EAAIwD,KAAKxD,EAAIqD,eAAgB,cAAeM,IAAMf,WAAW,iCAAiC,GAAGxC,EAAG,MAAM,CAACgB,YAAY,SAAS,CAAChB,EAAG,QAAQ,CAACJ,EAAIsB,GAAG,SAASlB,EAAG,WAAW,CAACqD,MAAM,CAACjF,MAAOwB,EAAIqD,eAAwB,UAAEK,SAAS,SAAUC,GAAM3D,EAAIwD,KAAKxD,EAAIqD,eAAgB,YAAaM,IAAMf,WAAW,+BAA+B,KAAKxC,EAAG,MAAM,CAACgB,YAAY,YAAY,CAAChB,EAAG,SAAS,CAACgB,YAAY,SAAS8B,GAAG,CAAC,MAAQ,SAASI,GAAQ,OAAOtD,EAAI4D,0BAA0B,CAAC5D,EAAIsB,GAAG,oBAAoBtB,EAAIuB,OAAOnB,EAAG,aAAa,CAACa,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,CAAEjB,EAAIkB,cAA+B,IAAjBlB,EAAImB,YAAiBf,EAAG,MAAM,CAACgB,YAAY,cAAc,CAAChB,EAAG,MAAM,CAACgB,YAAY,WAAW,CAAChB,EAAG,MAAM,CAACgB,YAAY,YAAY,CAAChB,EAAG,IAAI,CAACgB,YAAY,kCAAkChB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAImB,oBAAoBnB,EAAIuB,OAASvB,EAAIkB,cAA+B,IAAjBlB,EAAImB,YAAowGnB,EAAIuB,KAAvvGnB,EAAG,MAAM,CAACE,MAAM,CAACuD,SAAS7D,EAAI8D,UAAU7C,MAAM,CAAC,GAAK,QAAQ,CAACb,EAAG,IAAI,CAACa,MAAM,CAAC,GAAK,OAAO,KAAOjB,EAAIoC,WAAW2B,YAAY,OAAS,WAAW,CAAC3D,EAAG,MAAM,CAACa,MAAM,CAAC,IAAMjB,EAAIgE,eAA4C,IAA5BhE,EAAIoC,WAAW2B,YAAiB3D,EAAG,IAAI,CAACa,MAAM,CAAC,GAAK,cAAc,KAAOjB,EAAIoC,WAAW2B,YAAY,OAAS,WAAW,CAAC/D,EAAIsB,GAAG,UAAUtB,EAAIuB,KAAMvB,EAAIiE,aAAa,WAAY7D,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAgB,aAAE4C,WAAW,iBAAiB3B,MAAM,CAAC,GAAK,aAAa,CAACjB,EAAIsB,GAAG,aAAatB,EAAIuB,KAAMvB,EAAIiE,aAAa,WAAY7D,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAIkE,cAAclE,EAAImE,YAAYC,YAAaxB,WAAW,0CAA0C3B,MAAM,CAAC,GAAK,aAAa,CAACjB,EAAIsB,GAAG,aAAatB,EAAIuB,KAAMvB,EAAIiE,aAAa,iBAAkB7D,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAIkE,cAAclE,EAAImE,YAAYE,kBAAmBzB,WAAW,gDAAgD3B,MAAM,CAAC,GAAK,mBAAmB,CAACjB,EAAIsB,GAAG,mBAAmBtB,EAAIuB,KAAMvB,EAAIiE,aAAa,aAAc7D,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAIkE,cAA+C,GAAjClE,EAAIoC,WAAWkC,iBAAqB1B,WAAW,iDAAiD3B,MAAM,CAAC,GAAK,eAAe,CAACjB,EAAIsB,GAAG,gBAAgBtB,EAAIuB,KAAMvB,EAAIiE,aAAa,WAAY7D,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAIkE,cAAclE,EAAIoC,WAAWmC,cAAe3B,WAAW,2CAA2C3B,MAAM,CAAC,GAAK,aAAa,CAACjB,EAAIsB,GAAG,aAAatB,EAAIuB,KAAMvB,EAAIiE,aAAa,QAAS7D,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAIkE,cAAclE,EAAIoC,WAAWoC,mBAAoB5B,WAAW,gDAAgD3B,MAAM,CAAC,GAAK,UAAU,CAACjB,EAAIsB,GAAG,UAAUtB,EAAIuB,KAAMvB,EAAIiE,aAAa,QAAS7D,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAIkE,cAAclE,EAAIoC,WAAWqC,SAAU7B,WAAW,sCAAsC3B,MAAM,CAAC,GAAK,UAAU,CAACjB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAImE,YAAYO,cAAc1E,EAAIuB,KAAMvB,EAAIiE,aAAa,QAAS7D,EAAG,SAAS,CAACE,MAAM,CAACqE,cAAa,EAAKC,WAAW5E,EAAI6E,WAAW3B,GAAGlD,EAAIY,WAAWkE,OAAO9E,EAAI+E,cAAc7B,GAAG,CAAC,MAAQ,SAASI,GAAQtD,EAAIY,YAAYZ,EAAIY,cAAc,CAACR,EAAG,IAAI,CAACgB,YAAY,2BAA2BhB,EAAG,IAAI,CAACgB,YAAY,iBAAmBpB,EAAI6E,WAAmF7E,EAAIuB,KAA3EnB,EAAG,MAAM,CAACgB,YAAY,UAAU,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIgF,sBAA+BhF,EAAIuB,KAAKnB,EAAG,cAAc,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAgB,aAAE4C,WAAW,iBAAiBtC,MAAM,CAAC2E,MAAK,EAAKC,MAAMlF,EAAImF,cAAclE,MAAM,CAAC,GAAK,UAAU,EAAGjB,EAAImF,cAAenF,EAAImF,cAA2C,IAA7BnF,EAAIoF,YAAYC,YAAkBjF,EAAG,IAAI,CAACgB,YAAY,uBAAuBhB,EAAG,MAAM,CAACW,MAAM,CAAE,mBAAmB,OAAOf,EAAIoF,YAAYC,YAAY,SAAUjF,EAAG,SAAS,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,OAAQwB,EAAIkE,aAActB,WAAW,kBAAkBxB,YAAY,MAAM8B,GAAG,CAAC,MAAQ,SAASI,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAAClF,EAAG,IAAI,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,OAAQwB,EAAI8D,SAAUlB,WAAW,cAAcxB,YAAY,gBAAgBhB,EAAG,IAAI,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAY,SAAE4C,WAAW,aAAaxB,YAAY,oBAAoB,GAAcpB,EAAIkB,cAA+B,IAAjBlB,EAAImB,YAAsSnB,EAAIuB,KAAzRnB,EAAG,MAAM,CAACE,MAAMN,EAAIuF,eAAetE,MAAM,CAAC,GAAK,YAAY,CAACb,EAAG,cAAc,CAACtB,IAAIkB,EAAIwF,OAAOC,WAAYzF,EAAc,WAAEI,EAAG,SAAS,CAAC8C,GAAG,CAAC,cAAgB,SAASI,GAAQ,OAAOtD,EAAI0F,oBAAoB,aAAe,SAASpC,GAAQ,OAAOtD,EAAI2F,mBAAmB3F,EAAIuB,MAAM,GAAcvB,EAAIkB,cAA+B,IAAjBlB,EAAImB,YAAklDnB,EAAIuB,KAArkDnB,EAAG,MAAM,CAACE,MAAM,CAACuD,SAAS7D,EAAI8D,UAAU7C,MAAM,CAAC,GAAK,aAAa,CAAEjB,EAAIiE,aAAa,WAAY7D,EAAG,cAAc,CAACa,MAAM,CAAC,GAAK,YAAY2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAACtF,EAAIsB,GAAG,aAAatB,EAAIuB,KAAMvB,EAAImE,YAAYC,aAAapE,EAAIiE,aAAa,WAAY7D,EAAG,cAAc,CAACa,MAAM,CAAC,GAAK,YAAY2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAACtF,EAAIsB,GAAG,aAAatB,EAAIuB,KAAMvB,EAAImE,YAAYE,mBAAmBrE,EAAIiE,aAAa,iBAAkB7D,EAAG,cAAc,CAACa,MAAM,CAAC,GAAK,kBAAkB2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAACtF,EAAIsB,GAAG,mBAAmBtB,EAAIuB,KAAuC,GAAjCvB,EAAIoC,WAAWkC,kBAAqBtE,EAAIiE,aAAa,aAAc7D,EAAG,cAAc,CAACa,MAAM,CAAC,GAAK,cAAc2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAACtF,EAAIsB,GAAG,gBAAgBtB,EAAIuB,KAAMvB,EAAIoC,WAAWmC,eAAevE,EAAIiE,aAAa,WAAY7D,EAAG,cAAc,CAACa,MAAM,CAAC,GAAK,YAAY2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAACtF,EAAIsB,GAAG,aAAatB,EAAIuB,KAAMvB,EAAIoC,WAAWoC,oBAAoBxE,EAAIiE,aAAa,QAAS7D,EAAG,cAAc,CAACa,MAAM,CAAC,GAAK,SAAS2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAACtF,EAAIsB,GAAG,UAAUtB,EAAIuB,KAAMvB,EAAIoC,WAAWqC,UAAUzE,EAAIiE,aAAa,QAAS7D,EAAG,cAAc,CAACa,MAAM,CAAC,GAAK,SAAS2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAACtF,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAImE,YAAYO,cAAc1E,EAAIuB,KAAKnB,EAAG,cAAc,CAACgB,YAAY,OAAOH,MAAM,CAAC,GAAK,SAAS2E,SAAS,CAAC,MAAQ,SAAStC,GAAQ,OAAOtD,EAAIsF,gBAAgB,CAAClF,EAAG,IAAI,CAACgB,YAAY,mBAAmB,GAAapB,EAAa,UAAEI,EAAG,MAAM,CAACiB,YAAY,CAAC,SAAW,QAAQ,OAAS,IAAI,KAAO,IAAI,mBAAmB,mBAAmB,QAAU,QAAQJ,MAAM,CAAC,GAAK,iBAAiB,CAACb,EAAG,SAAS,CAAC8C,GAAG,CAAC,MAAQlD,EAAI6F,sBAAsB,CAAC7F,EAAIsB,GAAG,6BAA6BtB,EAAIuB,KAAKnB,EAAG,aAAa,CAACa,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,CAACb,EAAG,MAAM,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOwB,EAAwB,qBAAE4C,WAAW,yBAAyBxB,YAAY,iBAAiB,CAAChB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAAChB,EAAG,MAAM,CAACgB,YAAY,SAAS,CAACpB,EAAIsB,GAAG,aAAalB,EAAG,MAAM,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAG,sEAAsElB,EAAG,MAAM,CAACgB,YAAY,UAAU,CAAChB,EAAG,SAAS,CAACgB,YAAY,WAAW8B,GAAG,CAAC,MAAQ,SAASI,GAAQ,OAAOtD,EAAI8F,mBAAmB,CAAC9F,EAAIsB,GAAG,eAAelB,EAAG,SAAS,CAACgB,YAAY,gBAAgB8B,GAAG,CAAC,MAAQ,SAASI,GAAQ,OAAOtD,EAAI+F,mBAAmB,CAAC/F,EAAIsB,GAAG,cAAclB,EAAG,aAAa,CAACa,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,CAAoB,MAAlBjB,EAAIgG,aAAoB5F,EAAG,MAAM,CAACgB,YAAY,eAAeL,MAAOf,EAAIgG,aAAkB,OAAG,CAAC5F,EAAG,MAAM,CAACgB,YAAY,UAAUa,SAAS,CAAC,UAAYjC,EAAIkC,GAAGlC,EAAIgG,aAAaxI,YAAawC,EAAIgG,aAAsB,UAAE5F,EAAG,SAAS,CAACiB,YAAY,CAAC,eAAe,QAAQ6B,GAAG,CAAC,MAAQlD,EAAIiG,2BAA2B,CAACjG,EAAIsB,GAAG,YAAYtB,EAAIuB,KAAMvB,EAAIgG,aAAsB,UAAE5F,EAAG,SAAS,CAAC8C,GAAG,CAAC,MAAQlD,EAAIkG,oBAAoB,CAAClG,EAAIsB,GAAG,YAAYtB,EAAIuB,KAAgC,GAA1BvB,EAAIgG,aAAahJ,SAAagD,EAAIgG,aAAaG,UAA4GnG,EAAIuB,KAArGnB,EAAG,SAAS,CAAC8C,GAAG,CAAC,MAAQlD,EAAIkG,oBAAoB,CAAClG,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIgG,aAAaI,kBAA2BpG,EAAIuB,QAAQ,IACpia8E,EAAkB,G,8EC8JH,GACX5I,KAAM,MACN6I,WAAY,CACRC,SAAA,KACAC,SAAA,QAEJ,OACI,MAAO,CACHC,WAAW,EACXC,YAAa,EACb5C,UAAU,EACVlD,YAAY,EACZyC,eAAgB,CACZsD,SAAY,GACZC,OAAY,GACZC,OAAQ,IACRC,aAAY,EACZC,WAAY,KAIxBC,SAAU,IAAOC,OACb,eAAW,CACPjG,QAAS,cACTgD,UAAW,gBACX5B,WAAY,iBACZtB,aAAc,mBACdmE,KAAM,WACNG,YAAa,kBACblE,aAAc,mBACdgG,QAAS,cACT/F,YAAa,kBACbgG,OAAQ,aACR3G,SAAU,eACV2E,aAAc,mBACdiC,mBAAoB,yBACpBhE,oBAAqB,0BACrBiE,qBAAsB,oBACtBrB,aAAc,mBACdsB,SAAU,eACVvC,aAAc,mBACdvD,mBAAoB,yBACpBE,mBAAoB,yBACpByC,YAAa,sBAEjB,CACI,iBACI,IAAIoD,EAAM,CAAC1D,SAAS5D,KAAK6D,UAEzB,OADAyD,EAAItH,KAAKuF,OAAO/H,OAAQ,EACjB8J,GAEX,eACI,OAAOtH,KAAKyG,YAAc,KAE9B,kBACI,IAAIc,EAAgB,EAEpB,OADAvH,KAAKkH,OAAO1H,IAAMgI,IAAQD,GAA0B,GAATC,EAAE7L,KAAW6L,EAAEnP,KAAKoP,SAAW,IACnEF,GAEX,aACI,MAA2B,YAApBvH,KAAKuF,OAAO/H,MAEvB,eACI,MAA2B,QAApBwC,KAAKuF,OAAO/H,MAAsC,aAApBwC,KAAKuF,OAAO/H,QAI7DkK,MAAO,CACH,eACI,IAAIC,EAAQ3H,KACY,MAArBA,KAAK+F,cACwB,GAA7B/F,KAAK+F,aAAahJ,SACrBW,WAAY,KACRiK,EAAMC,OAAOC,SAAS,mBAAmB,OAC3CF,EAAM5B,aAAahJ,WAG7B+K,QAASC,EAAEf,OAAO,eAAW,CAAC,iBAAiB,yBAA0B,CACrE,eACIhH,KAAK4H,OAAOI,OAAO,0BAAyB,GAC5ChI,KAAK4H,OAAOC,SAAS,wBAAwB,IAEjD,aAAc9F,GACV,MAAwB,OAArB/B,KAAKa,cACDb,KAAKa,aAAaoH,QAAQlG,IAAU,GAE/C,gBACI,IAAImG,EAAM7I,OAAO8I,KAAK,sCAAuC,UAC7DD,EAAIE,SAER,gBACIpI,KAAK4H,OAAOC,SAAS,sBAEzB,sBACI7H,KAAK4H,OAAOC,SAAS,2BAA2B,KAEpD,SACI7H,KAAKyG,YAAcpH,OAAOgJ,WAC1BrI,KAAK6D,UAAW,EAChB7D,KAAK4H,OAAOC,SAAS,WAAW7H,KAAKyG,cAEzC,aACIzG,KAAK6D,UAAY7D,KAAK6D,UAE1B,mBACI7D,KAAKsI,QAAQC,QAAQ,SAEzB,eACIvI,KAAKW,YAAa,EAClBX,KAAKsI,QAAQC,QAAQvI,KAAKkF,aAAe,WAAa,SAE1D,uBACsC,IAA9BlF,KAAKoD,eAAeuD,QAAgB3G,KAAKoD,eAAeuD,OAAO9N,OAAS,IAAkD,GAA5C,QAAQ2P,KAAKxI,KAAKoD,eAAeuD,QAC/G3G,KAAK4H,OAAOC,SAAS,mBAAmB,CAACtK,QAAQ,oCAAoCuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAGhJiD,KAAK4H,OAAOC,SAAS,oBAAoB,CAAC7C,KAAKhF,KAAKoD,kBAExD,oBAC4C,mBAA9BpD,KAAK+F,aAAatC,UAAwBzD,KAAK+F,aAAatC,WACtEzD,KAAK4H,OAAOC,SAAS,mBAAmB,OAE5C,2BACI7H,KAAKiG,oBACLjG,KAAKqH,SAASqB,MAAM,6BAG5B,UACIrJ,OAAO,SAAWW,KAClB,IAAI2I,EAAY,GACZC,EAAKvJ,OAAOwJ,SAASC,OAAOP,QAAQ,IAAK,IACzCQ,EAAS,GAAI,GAAIF,SAASC,OAAQ,IAAK,IAAIE,EAAQH,SAASC,OAAOG,UAAU,GAAGC,MAAM,KAAMvQ,EAAI,EAAGA,EAAIqQ,EAAMnQ,OAAQF,IAAK,CAAE,IAAIwQ,EAAKH,EAAMrQ,GAAGuQ,MAAM,KAAMC,EAAG,KAAOJ,EAAOI,EAAG,IAAMA,EAAG,KAAM,GAAMR,EAAYI,EAC/MjQ,OAAO+G,KAAK8I,GAAW,KAAOC,IAAID,EAAY,CAAEhJ,GAAIiJ,IACxD5I,KAAK4H,OAAOC,SAAS,eAAgBc,GACrC3I,KAAK4H,OAAOC,SAAS,mBACrB7H,KAAK4H,OAAOC,SAAS,0BACrB7H,KAAKoJ,uBACLpJ,KAAKqH,SAASgC,IAAI,aAAcpG,IAAMjD,KAAKW,WAAWsC,KAE1D,UACI5D,OAAOiK,iBAAiB,SAAStJ,KAAKuJ,QACtCvJ,KAAKuJ,SAEqD,oBAAhDvJ,KAAK4H,OAAO4B,MAAMC,SAASd,UAAUe,SAAwB1J,KAAK2J,UAAW,KAAQ3J,KAAK4J,qBC9SsE,I,wBCQlLC,EAAY,eACd,EACA/J,EACAsG,GACA,EACA,KACA,KACA,MAIa,EAAAyD,E,oBCTf,aAAIC,IAAI,QAER,IAAIC,EAAS,IAAI,OAAO,CACpBtL,KAAM,WACNuL,OAAQ,CACJ,CACIC,KAAM,IACNzM,KAAM,OACN0M,SAAU,YAEd,CACID,KAAM,WACNzM,KAAM,UACNqM,UAAW,WAEP,OAAO,0CAEX,iBAAiBM,EAAIC,EAAMC,GACvBrK,KAAK4H,OAAOC,SAAS,sBAAsB,CAACrK,KAAK,6BAGzD,CACIyM,KAAM,YACNzM,KAAM,WACNqM,UAAW,WACP,OAAO,iJAEX,iBAAiBM,EAAIC,EAAMC,GACvBrK,KAAK4H,OAAOC,SAAS,sBAAsB,CAACrK,KAAK,6BAGzD,CACIyM,KAAM,aACNzM,KAAM,YAQNqM,UAAW,WAEP,OAAO,kJAEX,iBAAiBM,EAAIC,EAAMC,GACvBrK,KAAK4H,OAAOC,SAAS,sBAAsB,CAACrK,KAAK,6BAGzD,CACIyM,KAAM,iBACNzM,KAAM,gBAQNqM,UAAW,WAEP,OAAO,oHAEX,iBAAiBM,EAAIC,EAAMC,GACvBrK,KAAK4H,OAAOC,SAAS,sBAAsB,CAACrK,KAAK,6BAGzD,CACIyM,KAAM,WACNzM,KAAM,UACNqM,UAAW,WACP,OAAO,gJAEX,iBAAiBM,EAAIC,EAAMC,GACvBrK,KAAK4H,OAAOC,SAAS,sBAAsB,CAACrK,KAAK,6BAGzD,CACIyM,KAAM,WACNzM,KAAM,UACNqM,UAAW,WACP,OAAO,0CAEX,iBAAiBM,EAAIC,EAAMC,GACvBrK,KAAK4H,OAAOC,SAAS,sBAAsB,CAACrK,KAAK,6BAGzD,CACIyM,KAAM,QACNzM,KAAM,OACNqM,UAAW,WAEP,OAAO,uCAEX,iBAAiBM,EAAIC,EAAMC,GACvBrK,KAAK4H,OAAOC,SAAS,sBAAsB,CAACrK,KAAK,6BAGzD,CACIyM,KAAM,QACNzM,KAAM,OAENqM,UAAW,WAEP,OAAO,6HAGf,CACII,KAAM,QACNzM,KAAM,OACNqM,UAAW,WAEP,OAAO,yEAInBS,QAAS,SAGbP,EAAOQ,WAAW,CAACJ,EAAIC,EAAMC,KACT,QAAbD,EAAK5M,MAA0E,IAAxDgN,cAAc5C,OAAO4B,MAAMC,SAASgB,mBAC1DD,cAAc5C,OAAOI,OAAO,eAAe,IAC3CwC,cAAc5C,OAAOI,OAAO,kBAAkB,CAAC0C,WAAW,GAAGC,YAAY,KACzEH,cAAc5C,OAAOI,OAAO,uBAAuB,KAEvDqC,MAGJN,EAAOxB,QAAQ,QAEA,Q,2ECpIf,aAAIuB,IAAI,QAER,MAAMc,GAAqD,GAAvC/B,SAASgC,KAAK5C,QAAQ,aAAqB,yBAA2B,GAEpF6C,EAAqB,EAAAtD,EAAMuD,YAE3BC,EAAY,SAAUxN,GAC3B,IAAIyN,EAAI/P,SAASgQ,OAAOC,MAAM,YAAc3N,EAAO,oBACnD,OAAOyN,EAAIA,EAAEG,MAAQ,MAGtB,SAASC,EAAwBC,GAE7B,IAAIC,EAAO,CACPC,IAAKC,mBAAmBpM,OAAOwJ,SAAS6C,SAASnD,QAAQ,0BAA2B,KACpFoD,OAAQF,mBAAmBpM,OAAOwJ,SAAS8C,QAC3CC,KAAMH,mBAAmBpM,OAAOwJ,SAAS9N,MAEzC8Q,IAAK,GACLnC,QAAS,EAAMoC,gBACfC,OAAQ,EAAM/G,KAAKrF,IAKvB,OAFA7G,OAAOkO,OAAOuE,EAAKD,GAEZC,EAGX,MAAM,EAAQ,CACbS,eAAgB,MAChBC,IAAK,IACLC,qBAAsB,GACtBjF,SAAS,EACTI,SAAU,IAAI,aACX8E,eAAgB,KACnBC,mBAAoB,+DACjBC,iBAAiB,EACpBC,oBAAoB,EACjBC,sBAAsB,EACtBC,cAAe,GAClBjL,oBAAoB,EACpBkL,iBAAkB,gBAClBC,iBAAiB,EACdjD,SAAU,CACN1I,QAAS,sBACTgD,UAAW,gFAEf5B,WAAY,CACRwK,mBAAmB,EACnBC,kBAAmB,GACnBC,WAAY,GACZC,cAAe,GACfC,+BAA+B,EAC/BC,oBAAqB,sFACrBC,iBAAkB,EAClBC,cAAe,EACfC,mBAAoB,EACpBC,eAAgB,EAChBC,qBAAsB,iCACtBC,iBAAkB,IAClBC,UAAW,QACXC,QAAS,8FACTpL,SAAU,IACVqL,YAAa,MACbC,eAAgB,GAChBC,qBAAqB,EACrBC,UAAW,GACXC,uBAAwB,GACxBC,aAAc,GACdC,oBAAqB,iBACrBC,eAAgB,uCAChBC,KAAM,GACNC,UAAU,EACVC,WAAW,EACXC,SAAU,0BACVC,UAAW,8DACXC,UAAU,EACVC,cAAe,IACfC,SAAU,0EACVC,SAAU,GACVC,uBAAuB,EACvBrK,iBAAkB,EAClBsK,SAAU,kBACVC,iBAAkB,EAClBC,YAAa,EAEbC,kBAAkB,EAClBC,YAAY,EACZC,0BAA0B,EAC1BC,aAAc,GACdC,oBAAqB,gBACrBC,GAAI,6JACJC,GAAI,mBACJC,OAAQ,GACRC,qBAAsB,sBACtBC,yBAA0B,sBAC1BC,mBAAoB,gBACpBvF,KAAM,6JACNwF,YAAa,iBACbC,GAAI,mCACJC,2BAA4B,UAC5BC,4BAA6B,WAEjCC,OAAQ,GACRC,eAAe,EACfC,UAAW,GACXC,kBAAkB,EAClBC,cAAe,KAClBC,gBAAiB,KACjBC,QAAS,KACTC,cAAe,KACfC,kBAAkB,EAClBC,iBAAiB,EACjBC,cAAe,KACfC,uBAAuB,EACpBC,SAAU,GACbC,WAAW,GACXC,OAAO,GACPC,UAAW,GACXC,gBAAiB,GACd/E,gBAAiB,GACpBgF,cAAe,CACdC,GAAI,GACJC,UAAW,GACXC,KAAM,0BAEJxK,YAAa,EACbkC,UAAW,KACXuI,UAAU,EACbhK,OAAQ,GACLjG,cAAc,EACdkQ,iBAAiB,EACjBjQ,YAAa,GACbkQ,QAAS,CACX,CACUzR,GAAI,sBACJV,SAAU,YACVtD,KAAM,EACN0V,MAAO,uBACPC,UAAU,EACnBC,QAAQ,EACRC,QAAS,IAEV,CACU7R,GAAI,YACJV,SAAU,YACVtD,KAAM,EACN0V,MAAO,qBACPC,UAAU,EACnBC,QAAQ,EACRC,QAAS,IAEV,CACU7R,GAAI,QACJV,SAAU,MACVtD,KAAM,EACN0V,MAAO,QACPC,UAAU,EACnBC,QAAQ,EACRC,QAAS,CAAC,CACA7R,GAAI,EACJnC,KAAM,GACNiU,IAAK,EACLC,IAAK,IACLJ,UAAU,KAGf,CACI3R,GAAI,cACJV,SAAU,gBACVtD,KAAM,EACN0V,MAAO,OACPC,UAAU,EACnBC,QAAQ,EACCI,mBAAoB,GACpBC,iBAAkB,GAClBJ,QAAS,IAGb,CACI7R,GAAI,WACJV,SAAU,oBACVtD,KAAM,EACN0V,MAAO,QACPC,UAAU,EACnBC,QAAQ,EACCI,mBAAoB,GACpBC,iBAAkB,GAClBJ,QAAS,IAGb,CACI7R,GAAI,cACJV,SAAU,uBACVtD,KAAM,EACN0V,MAAO,cACPC,UAAU,EACnBC,QAAQ,EACCI,mBAAoB,GACpBC,iBAAkB,GAClBJ,QAAS,KAIjBK,YAAa,CACT,CACIlS,GAAI,EACJnC,KAAM,GACNiU,IAAK,EACLC,IAAK,KACLJ,UAAU,GAEd,CACI3R,GAAI,EACJnC,KAAM,GACNiU,IAAK,GACLC,IAAK,MACLJ,UAAU,GAEd,CACI3R,GAAI,EACJnC,KAAM,GACNiU,IAAK,GACLC,IAAK,MACLJ,UAAU,GAEd,CACI3R,GAAI,EACJnC,KAAM,GACNiU,IAAK,GACLC,IAAK,MACLJ,UAAU,GAEd,CACI3R,GAAI,EACJnC,KAAM,GACNiU,IAAK,IACLC,IAAK,EACLJ,UAAU,IAGlB/Q,SAAU,cACVuR,gBAAiB,GACjB9M,KAAM,CACFrF,GAAI,GACJoS,YAAY,EACZC,gBAAgB,EAChB5O,gBAAgB,EAChB6O,oBAAqB,GACrBhL,SAAS,EACTiL,QAAS,KACTC,UAAW,CACPC,QAAS,KACTC,SAAU,KAGlBC,sBAAuB,CACzB3W,KAAK,EACF4W,SAAU,CACZC,gBAAiB,KAGhBC,cAAe,KACf1M,aAAc,KACd2M,KAAM,GACNC,YAAa,GAChBC,cAAe,GACfC,wBAAwB,EACxBC,kBAAkB,EAClBC,sBAAsB,EACtBC,gBAAgB,EAChBC,sBAAsB,EACtBC,yBAAyB,EACzBC,gBAAiB,KACjBC,YAAa,GACbC,UAAW,GACXC,qBAAsB,GACtBC,4BAA4B,EAC5BC,qBAAqB,EACrBC,gBAAiB,GACjB3O,cAAc,EACd4O,kBAAmB,KACnBC,aAAc,GACdC,qBAAqB,EACrBC,aAAc,KACdC,iBAAkB,CAAErC,IAAI,EAAGC,IAAK,KAChCqC,SAAU,GACVC,iBAAiB,EACjBC,kBAAmB,GACnBC,kBAAmB,GACnBC,YAAa,GACbC,oBAAoB,EACpBC,mBAAmB,EACnBC,+BAAgC,KAChCC,cAAe,GACfC,eAAe,EACfC,SAAU,GACVC,SAAU,CACTC,OAAQ,GACRC,KAAM,IAEPnK,iBAAkB,GAClBoK,iBAAiB,EACjBC,kBAAkB,EAClBC,KAAM,GACNC,uBAAuB,EACvBnU,aAAc,GACdoU,aAAc,KACdC,mBAAoB,KACpBC,iBAAkB,KAClBC,6BAA6B,EAC7BC,eAAgB,GAChBvH,aAAc,GACXC,oBAAqB,GACxBuH,+BAAgC,CAC5B,WAAc,GAOjB,OAAU,CACT,QAAW,GACX,iBAAmB,IAGlBC,sCAAuC,CACtC,WAAc,CACV,WAAc,QACd,WAAc,WACd,WAAc,aACpB,WAAc,SACd,WAAc,WAIhBC,gBAAiB,KACjBC,wBAAwB,EACxBC,2BAA2B,EAC3BC,uBAAuB,EAEvBC,gBAAiB,KACjBC,wBAAwB,EACxBC,qBAAqB,EACrBC,eAAgB,GAChBC,uBAAuB,GAGlBC,EAAY,CAEjB,2BAA4BzM,EAAOT,GAClCS,EAAMiM,uBAAyB1M,GAEhC,oBAAqBS,EAAOT,GAC3BS,EAAMgM,gBAAkBzM,GAEzB,8BAA+BS,EAAOT,GACrCS,EAAMkM,0BAA4B3M,GAEnC,0BAA2BS,EAAMT,GAChCS,EAAMmM,sBAAwB5M,GAG/B,wBAAyBS,EAAOT,GAC/BS,EAAMsM,oBAAsB/M,GAE7B,mBAAoBS,EAAOT,GAC1BS,EAAM6L,eAAiBtM,GAExB,gCAAiCS,EAAOT,GACvCS,EAAM4L,4BAA8BrM,GAErC,qBAAsBS,EAAOT,GAC5BS,EAAM2L,iBAAmBpM,GAEvB,oBAAqBS,EAAOT,GAC3BS,EAAMsI,gBAAkB/I,GAEzB,YAAaS,EAAMT,GACfS,EAAMC,SAASV,EAAOmN,SAASnN,EAAOoN,QAAUpN,EAAOxK,OAE3D,aAAciL,EAAMT,GAChBS,EAAMC,SAAWV,GAExB,qBAAsBS,EAAMT,GAC3BS,EAAMiB,iBAAmB1B,GAEvB,iBAAkBS,EAAMT,GACpBS,EAAM/C,YAAcsC,GAExB,cAAcS,EAAOT,GACjBS,EAAMb,UAAYI,EACqB,oBAA3BS,EAAMb,UAAUe,SAAqD,IAA3BF,EAAMb,UAAUe,SAAqD,oBAA3BF,EAAMb,UAAUyN,SAAqD,IAA3B5M,EAAMb,UAAUyN,UACtJ5M,EAAMtI,YAAc,0BAG5B,eAAesI,EAAOT,GACxBA,EAAO,gBAAkB,eACnBS,EAAMrH,WAAa4G,GAEvB,aAAaS,EAAMT,GACfS,EAAM0H,SAAWnI,GAErB,kBAAkBS,EAAMT,GAC1BA,EAAOsN,aAAaC,KAAM,CAAC9O,EAAEyD,KAC5B,OAAOzD,EAAE+O,SAAWtL,EAAEsL,WAEjB/M,EAAMyG,cAAgBlH,GAE7B,oBAAoBS,EAAMT,GACnBS,EAAM0G,gBAAkBnH,GAE/B,YAAYS,EAAMT,GACjB,IAAK,IAAIpQ,EAAI,EAAGA,EAAIoQ,EAAOyN,QAAQ3d,OAAQF,IAC1CoQ,EAAOyN,QAAQ7d,GAAG,4BAA6B,EAEhDoQ,EAAOyN,QAAQF,KAAM,CAAC9O,EAAEyD,KACvB,OAAGzD,EAAEiP,YAAcxL,EAAEwL,aAAqB,EAC9B,IAGb1N,EAAO2N,WAAWC,QAAQ,CAACC,EAAMje,KAChCie,EAAK,aAAc,EACnBA,EAAK,+BAA4E,oBAApCA,EAAKC,4BAA6C,GAAKD,EAAKC,8BAE1G9N,EAAO2N,WAAWJ,KAAM,CAAC9O,EAAEyD,KAC1B,OAAOzD,EAAE+O,SAAWtL,EAAEsL,WAGvB/M,EAAM2G,QAAUpH,GAEjB,kBAAkBS,EAAMT,GACvB,IAAK,IAAIpQ,EAAI,EAAGA,EAAIoQ,EAAO+N,cAAcje,OAAQF,IAChDoQ,EAAO+N,cAAcne,GAAG,4BAA6B,EAEtDoQ,EAAO+N,cAAcR,KAAM,CAAC9O,EAAEyD,KAC7B,OAAGzD,EAAE+O,SAAWtL,EAAEsL,UAAkB,EACjC/O,EAAEiP,YAAcxL,EAAEwL,aAAqB,EAC9B,IAEPjN,EAAM4G,cAAgBrH,EAAO+N,eAEjC,aAActN,EAAOT,GAEvBA,EAAOgO,SAASJ,QAAS,CAACC,EAAMje,KAC/Bie,EAAK,gCAAiC,IAGvCpN,EAAMuL,KAAOhM,EAAOiO,KACpBxN,EAAMiH,SAAW1H,EAAOgO,SAGxB,IADA,IAAIE,EAAW,EACPte,EAAE,EAAGA,EAAE6Q,EAAMiH,SAAS5X,OAAQF,IAClC6Q,EAAMiH,SAAS9X,GAAGue,IAAMD,IAAUA,EAAWzN,EAAMiH,SAAS9X,GAAGue,KAEnE,IAAIC,EAAMF,EAASG,WAAWve,OAC9Boe,EAAWI,KAAKC,KAAML,EAAWI,KAAKE,IAAI,GAAGJ,EAAI,IAAOE,KAAKE,IAAI,GAAGJ,EAAI,GACxE3N,EAAMsK,iBAAiBpC,IAAMuF,EAE7B,IAAIO,EAAehO,EAAM4H,QAAQqG,MAAM,SAASjQ,GAAI,MAAa,eAANA,EAAE7H,MAAqB6R,QAC5E,IAAQ7Y,EAAE,EAAGA,EAAEoQ,EAAO2O,YAAY7e,OAAQF,IAAK,CAC3C,IAAIgf,EAA4G,oBAAxFH,EAAaC,MAAK,SAASjQ,GAAI,OAAOA,EAAE7H,IAAMoJ,EAAO2O,YAAY/e,GAAGif,iBACxFD,GACAH,EAAare,KAAK,CACdwG,GAAIoJ,EAAO2O,YAAY/e,GAAGif,cAC1Bpa,KAAMuL,EAAO2O,YAAY/e,GAAG8d,YAC3CnF,UAAU,EACVuG,SAAU,KAIbL,EAAalB,MAAK,SAAS9O,EAAEyD,GAC5B,OAAGzD,EAAEhK,KAAOyN,EAAEzN,KAAa,EACxBgK,EAAEhK,KAAOyN,EAAEzN,MAAc,EACrB,KAERgM,EAAMkH,WAAa8G,EAEb,IAAI9G,EAAalH,EAAM4H,QAAQqG,MAAM,SAASjQ,GAAI,MAAa,YAANA,EAAE7H,MAAkB6R,QAC7E,IAAQ7Y,EAAE,EAAGA,EAAEoQ,EAAO2N,WAAW7d,OAAQF,IAAK,CAC1C,IAAImf,EAA6G,oBAAzFpH,EAAW+G,MAAK,SAASjQ,GAAI,OAAOA,EAAE7H,IAAMoJ,EAAO2N,WAAW/d,GAAGof,qBACrFD,GACApH,EAAWvX,KAAK,CACZwG,GAAIoJ,EAAO2N,WAAW/d,GAAGof,kBACzBva,KAAMuL,EAAO2N,WAAW/d,GAAG8d,YAC1CuB,oBAAqBjP,EAAO2N,WAAW/d,GAAGsf,oBAC1CC,MAAOnP,EAAO2N,WAAW/d,GAAGwf,qBAC5BC,QAASrP,EAAO2N,WAAW/d,GAAGyf,QAC9B9G,UAAU,EACVuG,SAAU,KAIbnH,EAAW4F,MAAK,SAAS9O,EAAEyD,GAC1B,OAAGzD,EAAEhK,KAAOyN,EAAEzN,KAAa,EACxBgK,EAAEhK,KAAOyN,EAAEzN,MAAc,EACrB,KAERgM,EAAMmH,OAASD,EAET,IAoBF2H,EAASC,EAAMC,EAASC,EApBlBC,EAAgBjP,EAAM4H,QAAQqG,MAAM,SAASjQ,GAAI,MAAa,eAANA,EAAE7H,MAAqB6R,QACnF,IAAQ7Y,EAAE,EAAGA,EAAEoQ,EAAO2P,cAAc7f,OAAQF,IAAK,CACzCmf,EAAsH,oBAAlGW,EAAchB,MAAK,SAASjQ,GAAI,OAAOA,EAAE7H,IAAMoJ,EAAO2P,cAAc/f,GAAGggB,wBAC3Fb,GACAW,EAActf,KAAK,CACfwG,GAAIoJ,EAAO2P,cAAc/f,GAAGggB,qBAC5Bnb,KAAMuL,EAAO2P,cAAc/f,GAAG8d,YAC7CyB,MAAOnP,EAAO2P,cAAc/f,GAAGigB,wBAC/BtH,UAAU,EACVuG,SAAU,KAIbY,EAAcnC,MAAK,SAAS9O,EAAEyD,GAC7B,OAAGzD,EAAEhK,KAAOyN,EAAEzN,KAAa,EACxBgK,EAAEhK,KAAOyN,EAAEzN,MAAc,EACrB,KAERgM,EAAMoH,UAAY6H,EAOjB,IAAI,IAAI5e,EAAE,EAAGA,EAAE2P,EAAMmH,OAAO9X,OAAQgB,IAAK,CACxCye,EAAQ9O,EAAMmH,OAAO9W,GAGrB,IAFA,IAAIgf,GAAgB,EAEZC,EAAE,EAAGA,EAAEtP,EAAMoH,UAAU/X,OAAQigB,IAUtC,GATAP,EAAW/O,EAAMoH,UAAUkI,GAK3BN,EAAUhP,EAAMiH,SAASgH,KAAOjQ,IAC/B,OAAiDA,EAAEuQ,oBAAsBvO,EAAMmH,OAAO9W,GAAG8F,IAAQ6H,EAAEmR,uBAAyBnP,EAAMoH,UAAUkI,GAAGnZ,KAG3H,oBAAX6Y,EAAwB,CAEjC,IAAIO,EAAST,EACO,oBAAVS,EACgE,oBAA9DA,EAAOlB,SAASJ,KAAOxM,IAAO,OAAOA,EAAEtL,IAAM4Y,EAAS5Y,MAAsBoZ,EAAOlB,SAAS1e,KAAK6f,KAAKC,MAAMD,KAAKE,UAAUX,MAEtIQ,EAASC,KAAKC,MAAMD,KAAKE,UAAUZ,IACnCS,EAAOlB,SAAS1e,KAAK6f,KAAKC,MAAMD,KAAKE,UAAUX,KAC/CF,EAASR,SAAS1e,KAAK4f,IAON,GAAjBF,IACFM,YAAa,KA6Bd,oBAAoB3P,EAAMT,GACtBS,EAAM6C,gBAAkBtD,GAE/B,uBAAuBS,EAAMT,GACtBS,EAAM8C,mBAAqBvD,GAE/B,kBAAmBS,EAAMT,GACrB,IAAK,IAAIpQ,EAAI,EAAGA,EAAIoQ,EAAOlQ,OAAQF,IACxCoQ,EAAOpQ,GAAG,SAAU,EAEf6Q,EAAMgD,cAAgBzD,GAE1B,iBAAkBS,EAAOT,GACrBS,EAAMvI,aAAe8H,GAEzB,oBAAqBS,EAAOT,GACxBS,EAAM2H,gBAAkBpI,GAE5B,gBAAiBS,EAAOT,GACpBS,EAAMtI,YAAc6H,GAExB,kBAAmBS,EAAO4P,GACxB5P,EAAMxE,KAAK+M,WAAaqH,GAE7B,WAAY5P,EAAO4P,GACd5P,EAAMxE,KAAKrF,GAAKyZ,GAErB,mBAAoB5P,EAAOT,GACvBS,EAAMxE,KAAKiC,QAAU8B,GAEzB,kBAAmBS,EAAOT,GACtBS,EAAM6P,cAAgBtQ,GAEvB,gBAAiBS,EAAOT,GAED,IAAtBA,EAAO3D,cAAmB2D,EAAO3D,YAAc,8BAE5CoE,EAAMxE,KAAKkN,QAAUnJ,EAErBS,EAAMgD,cAAgBzD,EAAOuQ,MAAMA,MAEnC9P,EAAMxE,KAAKmN,UAAUC,QAAU,CAC3BmH,SAAUxQ,EAAOwQ,SACjBC,SAAUzQ,EAAOyQ,SACjBC,SAAU1Q,EAAO0Q,SACjBC,SAAU3Q,EAAO2Q,SAC1BC,OAAU5Q,EAAO4Q,OACRC,KAAU7Q,EAAO6Q,KACjBC,SAAU9Q,EAAO8Q,WAGzB,uBAAwBrQ,EAAOT,GAC3BS,EAAMxE,KAAKiC,QAAU8B,GAEzB,uBAAwBS,EAAOT,GAC3BS,EAAMxE,KAAK5B,eAAiB2F,GAEhC,wBAAyBS,EAAOT,GAC5BS,EAAMxE,KAAKiN,oBAAsBlJ,GAErC,0BAA2BS,EAAOT,GACjCS,EAAM8I,sBAAwBvJ,GAE/B,kBAAkBS,EAAOT,GAC3BS,EAAMiJ,cAAgB1J,GAEpB,iBAAkBS,EAAOT,GACd,MAAVA,GAAsD,OAApCA,EAAOjI,MAAM,sBACjCiI,EAAOjI,MAAM,oBAAsB0I,EAAMrH,WAAW2X,eAE/CtQ,EAAMzD,aAAegD,GAEzB,WAAYS,EAAOT,GACfS,EAAMqG,OAAS9G,EAAOgR,QAE1B,kBAAmBvQ,EAAOT,GACtBS,EAAMsG,cAAgB/G,GAE1B,cAAcS,EAAOT,GACvBA,EAAOuN,KAAM,CAAC9O,EAAEyD,KACf,OAAOzD,EAAEwS,eAAiB/O,EAAE+O,iBAE7BxQ,EAAMuG,UAAYhH,GAEhB,qBAAsBS,EAAOT,GACzBS,EAAMwG,iBAAmBjH,GAE7B,oBAAqBS,EAAOT,GACjB,MAAVA,GAA4B,IAAVA,IACfS,EAAMsC,gBAAkB/C,EACxBS,EAAMsH,cAAgBtH,EAAMqG,OAAO4H,KAAKpd,GAAKA,IAAMmP,EAAMsC,mBAE7D,kBAAmBtC,EAAOT,GACT,MAAVA,GACCS,EAAMsH,cAAgB/H,EACtBS,EAAMsC,gBAAkBtC,EAAMsH,cAAcC,IAE5CvH,EAAMsH,cAAgB,MAG9B,kBAAmBtH,EAAOT,GACtBS,EAAMvC,QAAU8B,GAEvB,gBAAiBS,EAAOT,GACvBS,EAAMyQ,YAAclR,GAErB,sBAAuBS,EAAOT,GAC7BS,EAAM0Q,kBAAoBnR,GAE3B,eAAgBS,EAAOT,GACtBS,EAAM2Q,WAAapR,GAEjB,gBAAiBS,EAAOT,GACpBS,EAAMmJ,YAAc5J,GAE3B,gBAAiBS,EAAMT,GACtBS,EAAMmJ,YAAc5J,EAAO6C,KAC3BpC,EAAMoJ,cAAwC,oBAAjB7J,EAAOA,OAAwB,GAAKA,EAAOA,QAEzE,sBAAuBS,EAAOT,GACT,oBAAVA,IACVA,EAAOuN,KAAM,CAAC9O,EAAEyD,KAAQ,OAAOA,EAAEmP,YAAc5S,EAAE4S,cACjD5Q,EAAMxE,KAAKmN,UAAUE,SAAWtJ,IAEjC,oBAAqBS,EAAOnR,GAC3BmR,EAAMiK,gBAAkBpb,GAEzB,iBAAkBmR,EAAOnR,GACxBmR,EAAMmK,aAAetb,GAEtB,SAAUmR,EAAOT,GACV,GAAmB,IAAhBA,EAAOpN,KAAY,CAC3BwB,aAAaqM,EAAMkK,mBACnBlK,EAAM1E,cAAe,EACrB0E,EAAMkK,kBAAoBhW,WAAY,KACrC8L,EAAM1E,cAAe,GACpB,KACO,IAAIuV,EAAQ7Q,EAAMtC,OAAOoT,WAAU,SAAS9S,GACxC,OAAkB,IAAXA,EAAE7L,MAAc6L,EAAEnP,KAAKmgB,QAAQ+B,YAAcxR,EAAO1Q,KAAKmgB,QAAQ+B,aAE5E,GAAGF,GAAO,EAEN,YADA7Q,EAAMtC,OAAOmT,GAAOhiB,KAAKoP,UAAYsB,EAAO1Q,KAAKoP,UAIzD+B,EAAMtC,OAAO/N,KAAK4P,IAEtB,YAAaS,EAAOT,GAChB,IAAIsR,EAAQ7Q,EAAMtC,OAAOoT,WAAU,SAAS9S,GAExC,OAAmB,IAAhBuB,EAAOpN,KACY,IAAX6L,EAAE7L,MAAc6L,EAAEnP,KAAKmiB,QAAQ7a,KAAOoJ,EAAO1Q,KAAKmiB,QAAQ7a,IAAM6H,EAAEnP,KAAKoiB,WAAW9a,KAAOoJ,EAAO1Q,KAAKoiB,WAAW9a,GAGxG,IAAhBoJ,EAAOpN,KACY,IAAX6L,EAAE7L,MAAc6L,EAAEnP,KAAKqiB,aAAaC,mBAAqB5R,EAAO1Q,KAAKqiB,aAAaC,iBAG1E,IAAhB5R,EAAOpN,KACY,IAAX6L,EAAE7L,MAAc6L,EAAEnP,KAAKmgB,QAAQ+B,YAAcxR,EAAO1Q,KAAKmgB,QAAQ+B,eAD5E,KAIJ/Q,EAAMtC,OAAOnN,OAAOsgB,EAAM,IAEjC,2BAA4B7Q,EAAMT,GACjCS,EAAMqJ,uBAAyB9J,GAEhC,qBAAsBS,EAAOT,GAC5BS,EAAMsJ,iBAAmB/J,GAE1B,yBAA0BS,EAAMT,GAC/BS,EAAMuJ,qBAAuBhK,GAE9B,mBAAoBS,EAAMT,GACzBS,EAAMwJ,eAAiBjK,GAExB,yBAA0BS,EAAMT,GAC/BS,EAAMyJ,qBAAuBlK,GAE9B,4BAA6BS,EAAMT,GAClCS,EAAM0J,wBAA0BnK,GAEjC,oBAAqBS,EAAMT,GAC1BS,EAAM2J,gBAAkBpK,GAEzB,gBAAiBS,EAAMT,GACtBS,EAAM4J,YAAcrK,GAErB,mBAAoBS,EAAMT,GACzBA,EAAO4N,SAAQ,SAASiE,GACvBA,EAAE,aAAc,KAEjBpR,EAAMuM,eAAiBhN,GAExB,cAAeS,EAAMT,GACpBS,EAAM6J,UAAYtK,GAEnB,+BAAgCS,EAAMT,GACrCS,EAAM+J,2BAA6BxK,GAEpC,yBAA0BS,EAAMT,GAC/BS,EAAMgK,oBAAsBzK,GAE7B,wBAAyBS,EAAMT,GAC9BS,EAAMoK,oBAAsB7K,GAE7B,iBAAkBS,EAAMT,GACvBS,EAAMqK,aAAe9K,GAEtB,aAAcS,EAAOT,GAGpBA,EAAO4N,QAAQ,CAACC,EAAMje,KACrBie,EAAK,aAAc,EACnBA,EAAK,aAAeA,EAAKiE,QAAQC,gBAElCtR,EAAMuK,SAAWhL,GAElB,oBAAqBS,EAAMT,GAC1BS,EAAMwK,gBAAkBjL,GAEzB,sBAAuBS,EAAOT,GAC7BA,EAAO4N,QAAQ,CAACC,EAAMje,KACrBie,EAAK,aAAc,IAEpB7N,EAAOuN,KAAM,CAAC9O,EAAEyD,KACf,OAAOzD,EAAE+O,SAAWtL,EAAEsL,WAEvB/M,EAAMyK,kBAAoBlL,GAE3B,uBAAwBS,EAAMT,GAC7BS,EAAM4K,mBAAqBrL,GAE5B,gBAAiBS,EAAMT,GACtBA,EAAO4B,YAAY2L,MAAK,SAAS9O,EAAEyD,GAClC,OAAOzD,EAAEuT,MAAQ9P,EAAE8P,SAEpBvR,EAAM6L,eAAiBtM,EAAO2B,WAC9B3B,EAAO4B,YAAYgM,QAAQ,CAACC,EAAMje,KACT,wCAArBie,EAAKoE,eAAwDpE,EAAK,aAAc,KAEpFpN,EAAM2K,YAAcpL,EAAO4B,aAE5B,sBAAuBnB,EAAMT,GAC5BS,EAAM6K,kBAAoBtL,GAE3B,kBAAmBS,EAAMT,GACxBS,EAAMgL,cAAgBzL,GAEvB,gBAAiBS,EAAMT,GACtBS,EAAMrH,WAAW8Y,kBAAoBlS,GAEtC,yBAA0BS,EAAMT,GAC/BS,EAAMrH,WAAW+Y,2BAA6BnS,GAE/C,mBAAoBS,EAAMT,GACzBS,EAAMrH,WAAWgZ,oBAAsBpS,GAExC,qBAAsBS,EAAMT,GAC3BS,EAAMrH,WAAWiZ,sBAAwBrS,GAE1C,gBAAiBS,EAAMT,GACtBS,EAAMrH,WAAWkZ,kBAAoBtS,GAEtC,YAAaS,EAAOT,GACnBS,EAAMvC,QAAU8B,GAEjB,qBAAsBS,EAAOT,GAC5BS,EAAM6G,iBAAmBtH,GAE1B,oBAAqBS,EAAOT,GAC3BS,EAAM8G,gBAAkBvH,GAEzB,kBAAmBS,EAAOT,GACzB,IAAI,IAAIpQ,EAAE,EAAGA,EAAEoQ,EAAOuS,UAAUziB,OAAQF,IACvCoQ,EAAOuS,UAAU3iB,GAAG,OAASoQ,EAAOuS,UAAU3iB,GAAG4iB,OAElD/R,EAAM+G,cAAgBxH,GAEvB,aAAcS,EAAOT,GACpBS,EAAMiL,SAAW1L,GAElB,0BAA2BS,EAAOT,GACjCS,EAAMgH,sBAAwBzH,GAE/B,aAAcS,EAAOT,GAGpB,IAFA,IAAIyS,EAAiB,GACjBC,EAAe,GACX9iB,EAAE,EAAGA,EAAEoQ,EAAOlQ,OAAQF,IAI1BoQ,EAAOpQ,GAAGgJ,OAAO,GACnBoH,EAAOpQ,GAAG,WAAY,EACtB6iB,EAAeriB,KAAK4P,EAAOpQ,MAE3BoQ,EAAOpQ,GAAG,WAAY,EACtB8iB,EAAatiB,KAAK4P,EAAOpQ,KAE1B6iB,EAAelF,MAAK,SAAU9O,EAAGyD,GAChC,IAAIyQ,EAAQlU,EAAEmU,qBACVC,EAAQ3Q,EAAE0Q,qBACd,OAAID,EAAQE,GAAiB,EACzBF,EAAQE,EAAgB,EACxBF,GAASE,EAAgB,OAA7B,KAGFpS,EAAMkL,SAAW,CAChBC,OAAQ6G,EACR5G,KAAM6G,IAGR,oBAAqBjS,EAAOT,GAC3BS,EAAMqL,gBAAkB9L,GAEzB,qBAAsBS,EAAOT,GAC5BS,EAAMsL,iBAAmB/L,GAE1B,0BAA2BS,EAAOT,GACjCS,EAAMwM,sBAAwBjN,GAE/B,0BAA2BS,EAAOT,GACjCS,EAAMwL,sBAAwBjM,GAE/B,uBAAwBS,EAAOT,GAC9BS,EAAMjI,mBAAqBwH,GAE5B,iBAAkBS,EAAOqS,GACxBrS,EAAMyL,aAAe4G,GAEtB,uBAAwBrS,EAAOqS,GAC9BrS,EAAM0L,mBAAqB2G,GAE5B,uBAAwBrS,EAAMT,GAC7BS,EAAM4C,mBAAqBrD,GAE5B,oBAAqBS,EAAMT,GAC1BS,EAAMoM,gBAAkB7M,GAEzB,2BAA4BS,EAAMT,GACjCS,EAAMqM,uBAAyB9M,IAI3B,EAAU,CACf,wBAAyBS,GACxB,OAAOA,EAAMsM,qBAEd,cAAetM,EAAOsS,GACf,OAAO,GAEd,oBAAqBtS,GACd,OAAOA,EAAMgM,iBAEpB,8BAA+BhM,GAC9B,OAAOA,EAAMkM,2BAEX,2BAA4BlM,GACxB,OAAOA,EAAMiM,wBAEpB,0BAA2BjM,GACpB,OAAOA,EAAMmM,uBAGpB,2BACC,OAAO,EAAMzJ,sBAEd,qBACC,OAAO,EAAMmJ,gBAEd,gCAAiC7L,GAChC,OAAOA,EAAM4L,6BAEd,aAAc5L,GACb,OAAOA,EAAMnC,UAEd,WAAYmC,GACX,OAAOA,EAAMxE,KAAKrF,IAEhB,aAAc6J,GACV,OAAOA,EAAMC,UAEjB,iBAAkBD,GACd,OAAOA,EAAMvI,cAEpB,YAAauI,GACZ,OAAOA,EAAMvC,SAEX,oBAAqBuC,GACjB,OAAOA,EAAM2H,iBAEjB,YAAa3H,GACT,OAAOA,EAAMC,SAAS1I,SAE1B,cAAeyI,GAEjB,OAAOA,EAAMrH,WAAWqM,UAEtB,gBAAiBhF,GACb,OAAOA,EAAM/C,aAEjB,cAAe+C,GACX,OAAOA,EAAMb,WAEjB,eAAgBa,GACZ,OAAOA,EAAMrH,YAEjB,WAAYqH,GACR,OAAOA,EAAMqG,QAEjB,kBAAmBrG,GACf,IAAIuS,EAAQvS,EAAMqG,OAAO4H,MAAK,SAASjQ,GAAG,OAAOA,EAAEuJ,KAAOvH,EAAMsC,mBAChE,MAAuB,oBAATiQ,EAAuBA,EAAQ,MAEjD,qBACC,OAAO,EAAMjQ,iBAEd,kBACI,OAAI,EAAM+D,OAAOhX,OAAS,EACf,EAAMgX,OAAO,GAAGkB,GAEhB,IAGlB,mBACI,OAAO,EAAM9J,SAEjB,wBACC,OAAO,EAAMjC,KAAKmN,UAAUE,UAE1B,kBACI,OAAO,EAAM4H,aAEjB,sBAAsBzQ,EAAOT,GACzB,OAAOS,EAAM0Q,mBAEjB,eAAe1Q,EAAOT,GAClB,OAAOS,EAAM2Q,YAEpB,wBAAwB3Q,EAAOT,GAE9B,IADA,IAAIiT,EAAK,GACArjB,EAAI,EAAGA,EAAI6Q,EAAM2Q,WAAWthB,OAAQF,IAAK,CACjD,IAAIsjB,EAAMzS,EAAM2Q,WAAWxhB,GAAGuQ,MAAM,KACpC8S,EAAG7iB,KAAK,IAAI+iB,KAAKD,EAAI,GAAIE,SAASF,EAAI,IAAI,EAAGA,EAAI,KAElD,MAAO,CAAEG,MAAOJ,EAAI7R,GAAI,MAASkS,KAAK,EAAE,QAAQC,WAE9C,aACI,OAAO,EAAMxL,cAAgB,EAAMA,cAAcyL,OAAS,IAE9D,cAAe/S,GACX,OAAOA,EAAMuG,WAEjB,qBAAsBvG,GAClB,OAAOA,EAAMwG,kBAEjB,aAAcxG,GACV,OAAOA,EAAM/C,aAAe,KAEhC,aAAc+C,GACV,OAAOA,EAAM0H,UAEjB,kBAAkB1H,GACd,OAAOA,EAAMyG,eAEpB,oBAAoBzG,GACb,OAAOA,EAAM0G,iBAEpB,YAAY1G,GACL,OAAOA,EAAM2G,SAEpB,kBAAkB3G,GACjB,OAAOA,EAAM4G,eAEX,aAAa5G,GACT,OAAOA,EAAMiH,UAEjB,mBAAoBjH,GAChB,OAAOA,EAAM2C,gBAEjB,iBAAkB3C,GACd,OAAOA,EAAMrH,WAAWqa,wBAE5B,SAAUhT,GACN,OAAOA,EAAMrH,WAAWsa,MAE5B,oBAAqBjT,GACjB,OAAOA,EAAM6C,iBAEpB,uBAAwB7C,GACvB,OAAOA,EAAM8C,oBAEX,yBAA0B9C,GACtB,OAAOA,EAAM+C,sBAEjB,kBAAmB/C,GACf,OAAOA,EAAMgD,eAEjB,aAAchD,GACV,OAAOA,EAAMrH,WAAWC,UAE5B,gBAAiBoH,GACb,OAAOA,EAAMtI,aAEjB,uBAAwBsI,GACpB,OAAOA,EAAMqI,aAEjB,YAAarI,GACT,OAAOA,EAAM4H,SAEjB,aAAc5H,GACV,OAAOA,EAAMjJ,UAEjB,iBAAkBiJ,GACd,OAAOA,EAAMxE,KAAK+M,YAEtB,mBAAoBvI,GAChB,OAAOA,EAAMxE,KAAKiC,SAEtB,qBAAsBuC,GAClB,OAAOA,EAAMrH,WAAW2M,kBAE5B,gBAAiBtF,GACb,OAAOA,EAAMxE,KAAKkN,SAEtB,uBAAwB1I,GACpB,OAAOA,EAAMxE,KAAKiC,SAEtB,uBAAwBuC,GACpB,OAAOA,EAAMxE,KAAK5B,gBAEtB,wBAAyBoG,GACrB,OAAOA,EAAMxE,KAAKiN,qBAEtB,0BAA2BzI,GACvB,OAAOA,EAAM8I,uBAEjB,kBAAkB9I,GACpB,OAAOA,EAAMiJ,eAEX,iBAAkBjJ,GACd,OAAOA,EAAMzD,cAEjB,kBAAmByD,GACf,OAAOA,EAAMxE,KAAKmN,WAEzB,WAAY3I,GACL,OAAOA,EAAMtC,QAEpB,2BAA4BsC,GAC3B,OAAOA,EAAMqJ,wBAEd,qBAAsBrJ,GACrB,OAAOA,EAAMsJ,kBAEd,yBAA0BtJ,GACzB,OAAOA,EAAMuJ,sBAEd,mBAAoBvJ,GACnB,OAAOA,EAAMwJ,gBAEd,yBAA0BxJ,GACzB,OAAOA,EAAMyJ,sBAEd,4BAA6BzJ,GAC5B,OAAOA,EAAM0J,yBAEd,oBAAqB1J,GACpB,OAAOA,EAAM2J,iBAEd,gBAAiB3J,GAChB,OAAOA,EAAM4J,aAEd,cAAe5J,GACd,OAAOA,EAAM6J,WAEd,oBAAqB7J,GACpB,OAAOA,EAAMoM,iBAEd,2BAA4BpM,GAC3B,OAAOA,EAAMqM,wBAEd,oBAAqBrM,GACpB,OAAOA,EAAMiK,iBAEd,iBAAkBjK,EAAOnR,GACxB,OAAOmR,EAAMmK,cAEd,+BAAgCnK,GAC/B,OAAOA,EAAM+J,4BAEd,yBAA0B/J,GACzB,OAAOA,EAAMgK,qBAEd,qBACI,OAAO,EAAM1B,iBAEjB,mBACC,OAAO,EAAMhN,cAEd,0BACC,OAAO,EAAM8O,qBAEd,mBACC,OAAO,EAAMC,cAEd,iBACC,OAAO,EAAMnD,YAEd,aACC,OAAO,EAAMC,QAEd,gBACC,OAAO,EAAMC,WAEd,uBACC,OAAO,EAAMkD,kBAEd,eACC,OAAO,EAAMC,UAEd,sBACC,OAAO,EAAMC,iBAEd,wBACC,OAAO,EAAMC,mBAEd,wBACC,OAAO,EAAMC,mBAEd,yBACC,OAAO,EAAME,oBAEd,kBACC,OAAO,EAAMD,aAEd,wBACC,OAAO,EAAME,mBAEd,oBACC,OAAO,EAAME,eAEd,oBACC,OAAO,EAAMC,eAEd,kBACC,OAAO,EAAMrS,WAAW8Y,mBAEzB,2BACC,OAAO,EAAM9Y,WAAW+Y,4BAEzB,qBACC,OAAO,EAAM/Y,WAAWgZ,qBAEzB,uBACC,OAAO,EAAMhZ,WAAWiZ,uBAEzB,kBACC,OAAO,EAAMjZ,WAAWkZ,mBAEzB,kBACO,OAAO,EAAM1I,aAEpB,uBACC,OAAO,EAAMtC,kBAEd,sBACC,OAAO,EAAMC,iBAEd,oBACC,OAAO,EAAMC,eAEd,aAAc/G,EAAOT,GACpB,OAAOS,EAAMiL,UAEd,4BACC,OAAO,EAAMjE,uBAEd,eACC,OAAO,EAAMkE,UAEd,sBACC,OAAO,EAAMG,iBAEd,uBACC,OAAO,EAAMC,kBAEd,4BACC,OAAO,EAAMkB,uBAEd,WACC,OAAO,EAAMjB,MAEd,4BACC,OAAO,EAAMC,uBAEd,mBACC,MAAsC,oBAAxB,EAAMrM,UAAU+T,KAAsB,MAAQ,EAAM/T,UAAU+T,MAE7E,4BACC,OAAO,EAAMva,WAAW0M,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,OAE9D,2BACC,OAAO,EAAMza,WAAW0M,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,OAE9D,2BACC,IAAI7I,EAAW,EAAM5R,WAAW0M,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,MACrE,OAAO7I,GAER,0BACC,IAAIA,EAAW,EAAM5R,WAAW0M,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,MACrE,OAAO7I,GAER,gCACC,IAAIA,EAAW,EAAM5R,WAAW0M,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,MACrE,OAAO7I,GAER,6BACC,IAAIA,EAAW,EAAM5R,WAAW0M,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,MACrE,OAAO7I,GAER,yBACC,IAAI8I,EAAS,EAAM1a,WAAW0M,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,MAAY,GAC/EC,EAAO,aAAc,EACrB,IAAIC,EAAU,GAyBd,GAxBkC,oBAAxBD,EAAOnb,KAAKqb,UACrBF,EAAOnb,KAAKqb,SAASpG,QAAQ,CAACC,EAAMje,KACnCie,EAAK,SAAW,WAChBkG,EAAQ3jB,KAAKyd,KAGmB,oBAAxBiG,EAAOnb,KAAKsb,UACrBH,EAAOnb,KAAKsb,SAASrG,QAAQ,CAACC,EAAMje,KACnCie,EAAK,SAAW,UAChBkG,EAAQ3jB,KAAKyd,KAGmB,oBAAxBiG,EAAOnb,KAAKqV,UACrB8F,EAAOnb,KAAKqV,SAASJ,QAAQ,CAACC,EAAMje,KACnCie,EAAK,SAAW,UAChBkG,EAAQ3jB,KAAKyd,KAGgB,oBAArBiG,EAAOnb,KAAKvF,OACrB0gB,EAAOnb,KAAKvF,MAAMwa,QAAQ,CAACC,EAAMje,KAChCie,EAAK,SAAW,QAChBkG,EAAQ3jB,KAAKyd,KAGkB,oBAAvBiG,EAAOnb,KAAK8U,QAAwB,CAC7CqG,EAAOna,UAAW,EAClB,IAAIkU,EAAO,CACV1U,YAAa2a,EAAOnb,KAAK+U,YACzBpU,MAAOwa,EAAOnb,KAAKub,WACnB5c,MAAO,UAERyc,EAAQ3jB,KAAKyd,GAId,OAFAiG,EAAO,WAAaC,EAEbD,GAER,uBACC,OAAO,EAAMpS,kBAEd,uBACC,OAAO,EAAM0K,kBAGd,aACC,OAAO,EAAMhT,WAAWkN,QAEzB,yBACC,OAAO,EAAM9N,oBAEd,mBACC,OAAO,EAAM0T,cAEd,yBACC,OAAO,EAAMC,oBAEd,yBACC,OAAO,EAAM9I,oBAEd,mBACO,OAAO,EAAMjK,WAAW2L,cAE5B,0BACI,OAAO,EAAM3L,WAAW4L,qBAE5B,wBACI,OAAO,EAAM5L,WAAWgL,oBAE/B,uBACC,OAAO,EAAMV,kBAEd,oBACC,OAAO,EAAMC,iBAEd,qBACC,OAAO,EAAMqJ,iBAITmH,EAAU,CAEf,qBAAqB,OAAClV,EAAM,MAACwB,EAAK,SAAC3B,GAAWxP,GAC7C2P,EAAO,8BAA8B,GACrC,EAAAR,EAAM2V,KAAKvS,EAAY,6BAA6B,CACnDlB,QAASF,EAAMsC,gBACfsR,SAAU5T,EAAMxE,KAAKrF,GACrB0d,MAAOhlB,EAAK0b,SACZuJ,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,QAEvElD,KAAM8V,IACNvK,EAAO,8BAA8B,GACrCA,EAAO,sBAAuBuK,EAASla,KAAKqJ,MACnCrJ,EAAKoL,SAAS8O,EAASla,SAIlC,WAAW,OAAC2P,EAAM,SAACH,GAAWxP,GAC7B2P,EAAO,6BAA6B,GACpC,EAAAR,EAAM2V,KAAKvS,EAAY,yBAAyB,CAC/CwS,SAAU,EAAMpY,KAAKrF,GACrB+J,QAAS,EAAMoC,gBACfuR,MAAOrE,KAAKE,UAAU,CAACnF,SAAS1b,EAAK0b,WACrCwJ,MAAOllB,EAAKklB,MACZC,UAAWnlB,EAAKmlB,UAChBF,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQ,EAAM/G,KAAKrF,QAEvElD,KAAM8V,IACNvK,EAAO,6BAA6B,GAC3B3P,EAAKoL,SAAS8O,EAASla,SAIlC,YAAY,OAAC2P,EAAM,SAACH,GAAWxP,GAC9B2P,EAAO,6BAA6B,GACpC,EAAAR,EAAM2V,KAAKvS,EAAY,8BAA8B,CACpDwS,SAAU,EAAMpY,KAAKrF,GACrB8d,cAAeplB,EAAKolB,cACpBH,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQ,EAAM/G,KAAKrF,QAEvElD,KAAM8V,IACNvK,EAAO,6BAA6B,GAC3B3P,EAAKoL,SAAS8O,EAASla,SAIlC,yBAAyB,OAAC2P,EAAM,SAACH,GAAWxP,GAC3C2P,EAAO,iCAAiC,GACxC,EAAAR,EAAM2V,KAAKvS,EAAY,6BAA6B,CACnDwS,SAAU,EAAMpY,KAAKrF,GACrB+J,QAAS,EAAMoC,gBACfuR,MAAOrE,KAAKE,UAAU,CAACnF,SAAS1b,EAAK0b,WACrCyJ,UAAWnlB,EAAKmlB,UAChBF,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQ,EAAM/G,KAAKrF,QAEvElD,KAAM8V,IACNvK,EAAO,iCAAiC,GAC/B3P,EAAKoL,SAAS8O,EAASla,SAIlC,kBAAkB,OAAC2P,EAAM,SAACH,GAAWxP,GACpC2P,EAAO,2BAA0B,GAC3B,EAAAR,EAAM2V,KAAKvS,EAAY,oCAAoC,CAChEwS,SAAU/kB,EAAK+kB,SACf1T,QAAS,EAAMoC,gBACf4R,YAAarlB,EAAKqlB,YAClBL,MAAOhlB,EAAKglB,QAEN5gB,KAAK8V,IACXvK,EAAO,2BAA0B,GACN,mBAAjB3P,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,SAIhE,uBAAuB,OAAE2P,EAAM,MAAEwB,EAAK,SAAE3B,GAAYlM,GACnD,IAAIgiB,EAAMnU,EAAMrH,WAAW0M,YAAYyL,UAAYvY,GAAUA,EAAM6a,MAAQjhB,GACxEgiB,GAAO,GACTnU,EAAMrH,WAAW0M,YAAY9U,OAAO4jB,EAAI,IAIvC,UAAU,OAAE3V,EAAM,MAAEwB,EAAK,SAAE3B,GAAYxP,GACnC2P,EAAO,mBAAoB3P,IAG/B,aAAa,OAAE2P,EAAM,MAAEwB,EAAK,SAAE3B,GAAYxP,GACxC,EAAAmP,EAAM2V,KAAK3R,IAAI,CAAC,KAAOwN,KAAKE,UAAU7gB,KACrCoE,MAAK,SAAS8V,GACbvK,EAAO,cAAeuK,EAASla,KAAKqJ,UAGxC,UAAU,OAAEsG,EAAM,MAAEwB,EAAK,SAAE3B,GAAYxP,GACrC,EAAAmP,EAAM2V,KAAK3R,IAAI,CAAC,KAAOwN,KAAKE,UAAU7gB,KACrCoE,MAAK,SAAS8V,GACbvK,EAAO,WAAYuK,EAASla,KAAKqJ,UAGrC,cAAa,OAACsG,EAAM,MAACwB,GAAOnR,GAC9B,IAAIulB,EAAsB,SAASC,GAGlC,IAFA,IAAI9U,EAAS,GACTlJ,EAAO/G,OAAO+G,KAAKge,GACfllB,EAAE,EAAGA,EAAEkH,EAAKhH,OAAQF,IAC3BoQ,GAAUlJ,EAAKlH,GAAK,IAAMklB,EAAWhe,EAAKlH,IAAM,IAGjD,OADAoQ,EAASA,EAAO+U,OAAO,EAAE/U,EAAOlQ,OAAO,GAChCwG,OAAOwJ,SAAS8C,OAAStM,OAAOwJ,SAASkV,SAAW,IAAMhV,GAShE,GANGf,EAAO,gBAAiB3P,GACU,oBAA3BmR,EAAMb,UAAUe,UAC3BF,EAAMqH,gBAAkBrH,EAAMb,UAAUe,QACxC1B,EAAO,sBAAsBwB,EAAMb,UAAUe,UAGL,oBAA5BF,EAAMb,UAAUqV,UAAuE,oBAAlCxU,EAAMb,UAAUsV,gBAA0F,oBAAhDzU,EAAMb,UAAUuV,6BAAiD,CAC5LlW,EAAO,0BAAyB,GAChC,IAAImW,EAAenF,KAAKC,MAAMD,KAAKE,UAAU1P,EAAMb,YACnDwV,EAAa,UAAYnF,KAAKE,UAAUiF,UACjCA,EAAaH,gBACbG,EAAaF,sBACbE,EAAaD,oCACbC,EAAaC,uBACbD,EAAaE,YACpBrW,EAAQ,gBAAiBgR,KAAKC,MAAMD,KAAKE,UAAUiF,KACnD,IAAIG,EAAatF,KAAKC,MAAMD,KAAKE,UAAUiF,WACpCG,EAAWzB,OAChB0B,QAAQC,aAAa,GAAI,gBAAiBZ,EAAoBU,SAEhEtW,EAAO,0BAAyB,IAG/B,aAAY,OAACA,GAAQ3P,GACjB2P,EAAO,eAAe3P,IAE7B,mBAAkB,OAAC2P,EAAM,MAACwB,EAAK,SAAC3B,GAAUxP,GACzC,IAAIomB,EAAQjV,EAAM+K,cAAckD,KAAOjQ,IACtC,OAAOA,EAAEhK,MAAQnF,EAAKmF,OAEJ,oBAATihB,EACTA,EAAMlgB,MAAQlG,EAAKkG,MAEnBiL,EAAM+K,cAAcpb,KAAKd,IAG3B,qBAAoB,OAAC2P,EAAM,MAACwB,EAAK,SAAC3B,GAAUxP,GAC3C,IAAIomB,EAAQjV,EAAM+K,cAAc+F,UAAY9S,IAC3C,OAAOA,EAAEhK,MAAQnF,EAAKmF,OAEpBihB,GAAS,GACXjV,EAAM+K,cAAcxa,OAAO0kB,EAAM,IAGhC,gBAAgB,OAACzW,EAAM,SAACH,IAC1BG,EAAO,qBAAqB,GACtBA,EAAO,sBAAqB,GAC5BH,EAAS,sBACT,EAAAL,EAAM2V,KAAKvS,EAAY,2BAA2B,CAC9C0S,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQ,EAAM/G,KAAKrF,QAE1ElD,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,OACVkG,EAAS,mBAAmB,CAACtK,QAAQ,uBAAuBuD,MAAM,CAAC,mBAAmB,aAAa/D,QAAQ,MAE3G8K,EAAS,mBAAmB,CAACtK,QAAQ,uBAAuBuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAMlI,gBAAgB,OAACiL,EAAM,MAACwB,EAAK,SAAC3B,IACvB,IAAIP,EAAM0R,KAAKC,MAAMD,KAAKE,UAAU1P,EAAMb,YAC1CrB,EAAI,cAAgB0R,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,MAC/E,EAAA6H,EAAM2V,KAAKvS,EAAY,4BAA4BtD,GAClD7K,KAAKpE,IACF,GAAwB,WAApBA,EAAKA,KAAKsJ,OAAqB,CA6F3C,IAAIkb,EAASxkB,EAAKA,KAAKqJ,KAAKmN,YAAY4I,KAAO1V,GAAwB,GAAdA,EAAM6a,MAC3C,oBAAVC,GAA+C,oBAAfA,EAAOnb,MAAsD,oBAAxBmb,EAAOnb,KAAKqV,UACvF8F,EAAOnb,KAAKC,QAAQkG,EAAS,eAGjC,IAAI6W,EAAgBrmB,EAAKA,KAAKqJ,KAAKmN,YAAY4I,KAAO1V,GAAwB,GAAdA,EAAM6a,MACtE,GAA2B,oBAAjB8B,EAA8B,CACvCA,EAAchd,KAAKid,QAAQhI,QAAS,CAACC,EAAMje,KAC1Cie,EAAK,gBAAuC,GAArBA,EAAKgI,aAAoB,uCAAyChI,EAAKgI,aAC9FhI,EAAK,oBAAsBA,EAAKiI,UAChCjI,EAAK,cAAgBA,EAAKkI,eAC1BlI,EAAK,cAAgBA,EAAK5F,iBACnB4F,EAAKiI,YAEbhX,EAAS,oBAAoB,CAACrK,KAAK,kBAAkBe,MAAMya,KAAKE,UAAU,CAAEnF,SAAU2K,EAAchd,KAAKid,QAASzC,KAA8B,IAAxBwC,EAAchd,KAAKwa,KAAWU,KAAK,MAC3J,IAAIe,EAAMtlB,EAAKA,KAAKqJ,KAAKmN,YAAYyL,UAAYvY,GAAwB,GAAdA,EAAM6a,MACjEvkB,EAAKA,KAAKqJ,KAAKmN,YAAY9U,OAAO4jB,EAAI,GAGnCe,EAAgBrmB,EAAKA,KAAKqJ,KAAKmN,YAAY4I,KAAO1V,GAAwB,IAAdA,EAAM6a,MACtE,GAA2B,oBAAjB8B,EAA8B,CACvCA,EAAchd,KAAKid,QAAQhI,QAAS,CAACC,EAAMje,KAC1Cie,EAAK,gBAAuC,GAArBA,EAAKgI,aAAoB,uCAAyChI,EAAKgI,aAC9FhI,EAAK,oBAAsBA,EAAKiI,UAChCjI,EAAK,cAAgBA,EAAKkI,eAC1BlI,EAAK,cAAgBA,EAAK5F,iBACnB4F,EAAKiI,YAEbhX,EAAS,oBAAoB,CAACrK,KAAK,kBAAkBe,MAAMya,KAAKE,UAAU,CAAEnF,SAAU2K,EAAchd,KAAKid,QAASzC,KAA8B,IAAxBwC,EAAchd,KAAKwa,KAAWU,KAAK,OACvJe,EAAMtlB,EAAKA,KAAKqJ,KAAKmN,YAAYyL,UAAYvY,GAAwB,IAAdA,EAAM6a,MACjEvkB,EAAKA,KAAKqJ,KAAKmN,YAAY9U,OAAO4jB,EAAI,GAKvC3V,EAAO,iBAAkB3P,EAAKA,KAAKqJ,MAInC,GAAoC,IAAjC8H,EAAMrH,WAAW8M,aAAoB,CACvC,IAAI8P,EAAc,CAAC,MAAM,aAAa,aAAa,eAAe,eAC9DC,EAAO,GACXD,EAAYpI,QAAUC,IACc,oBAAzBpN,EAAMb,UAAUiO,IACzBoI,EAAK7lB,KAAKyd,EAAO,IAAMpN,EAAMb,UAAUiO,MAGzCpN,EAAM0C,qBAAuB8S,EAAKC,KAAK,KACpCD,EAAKnmB,OAAO,IACd2Q,EAAMrH,WAAW8M,cAAgB,KAAOzF,EAAM0C,sBAKhD,IAAIzD,EAA6C,oBAA9BpQ,EAAKA,KAAKqJ,KAAKwd,YAA6B7mB,EAAKA,KAAKqJ,KAAKwd,YAAc,UAC5FhkB,SAASikB,gBAAgBre,MAAMse,YAAY,iBAAiB3W,GAC5DvN,SAASikB,gBAAgBre,MAAMse,YAAY,uBAAuB,IAAU3W,GAAO4W,QAAQ,IAAIjI,YAC/Flc,SAASikB,gBAAgBre,MAAMse,YAAY,6BAA6B,IAAU3W,GAAO6W,SAAS,IAAKlI,YACvGpP,EAAO,aAAc3P,EAAKA,KAAKqJ,KAAK0b,UACpC5T,EAAM4H,QAAQqG,MAAM,SAASjQ,GAAI,MAAa,aAANA,EAAE7H,MAAmB2R,SAAW9H,EAAMrH,WAAWod,gBAG7D,IAAzB/V,EAAMrH,WAAW8L,OACnBzE,EAAMb,UAAU,OAAS,aAG1B,IAAI6W,EAAwC,oBAAvBhW,EAAMb,UAAU8W,IACjCxV,EAAO,OAIRuV,IACsC,GAArChW,EAAMrH,WAAWkC,kBAAgD,aAAvBmF,EAAMb,UAAU8W,MAAoBD,GAAU,GAC3D,GAA7BhW,EAAMrH,WAAWqC,UAA4C,QAAvBgF,EAAMb,UAAU8W,MAAeD,GAAU,GACxC,GAAvChW,EAAMrH,WAAWoC,oBAAsD,QAAvBiF,EAAMb,UAAU8W,MAAeD,GAAU,IAE1FA,EACFvV,EAAOT,EAAMb,UAAU8W,IAGmB,GAAvCjW,EAAMrH,WAAWoC,qBAEjB0F,EAD8B,GAA7BT,EAAMrH,WAAWqC,SACX,OAEA,WAMX,IAAIkb,EAAoBlW,EAAMrH,WAAW0L,uBAAuB3E,MAAM,KAGtE,GAFAyW,KAAK,SAAUnW,EAAMrH,WAAWyd,aAAc,CAAwBC,OAAO,CAACC,QAAQJ,KACtFC,KAAK,SAAUnW,EAAMrH,WAAW4L,oBAAqBiL,KAAKC,MAAMD,KAAKE,UAAU1P,EAAM+L,yCACxD,IAA1B/L,EAAMrH,WAAW4d,MACnBJ,KAAK,SAAUnW,EAAMrH,WAAW4d,MAAO,CAACF,OAAO,CAACC,QAAQJ,UAE5C,GAAoC,IAAjClW,EAAMrH,WAAW2L,aAAoB,CAEnDtE,EAAM8L,+BAA+B0K,WAAW,YAAcxW,EAAMrH,WAAW+K,eAAiB,QAChG1D,EAAM8L,+BAA+B0K,WAAW,YAAcxW,EAAMrH,WAAWgL,oBAAsB,aACrG3D,EAAM8L,+BAA+B0K,WAAW,YAAcxW,EAAMrH,WAAWiL,gBAAkB,SACjG5D,EAAM8L,+BAA+B0K,WAAW,YAAcxW,EAAMrH,WAAW8K,kBAAoB,WACpFzD,EAAM8L,+BAA+BuK,OAAOC,QAAUJ,EACrE,IAAIpY,EAAM0R,KAAKC,MAAMD,KAAKE,UAAU1P,EAAM8L,iCAC3BhO,EAAI,gBAAkB,oCACrCqY,KAAK,SAAUnW,EAAMrH,WAAW2L,aAAcxG,GAKf,IAA9BkC,EAAMrH,WAAWyL,YACnBqS,IAAI,OAAQzW,EAAMrH,WAAWyL,WAC1BqS,IAAI,QAAS,aAKjBpY,EAAS,mBACTA,EAAS,cACTA,EAAS,cAGT2B,EAAM0W,YAAc7nB,EAAKA,KAAKuK,QAE9B,IAAI6N,EAAWpY,EAAKA,KAAKqJ,KAAKmN,YAAY8N,OAAS5a,GAAwB,GAAdA,EAAM6a,MACnE,GAAInM,EAAS5X,OAAS,EAAG,CACxBmP,EAAO,kBAAkB,YACrBwB,EAAMrH,WAAWmM,WAAUrE,EAAO,QACtCjC,EAAO,uBAAuByI,EAAS,GAAG/O,MAC1C,IAAI,IAAI/I,EAAE,EAAGA,EAAE8X,EAAS,GAAG/O,KAAKqV,SAASle,OAAQF,IAC/CkP,EAAS,kBAAkB,CAC1BlM,KAAM,EACMtD,KAAM,CACF8nB,aAAa,EACb3H,QAASQ,KAAKC,MAAMD,KAAKE,UAAUzI,EAAS,GAAG/O,KAAKqV,SAASpe,KAC7D8O,SAAU,KAMJ,WAAvB+B,EAAMb,UAAU8W,MAClBxV,EAAO,OACPjC,EAAO,kBAAkB,CAAC4D,KAAK,OAAO7C,OAAO,CAACqX,OAAO,cAAeC,SAAU,cAU5E7V,cAAcjF,OAAO/H,MAAQyM,GAAMO,cAAclC,QAAQC,QAAQ0B,QAE3DpC,EAAS,mBAAmB,CAACtK,QAAQ,8BAA8BlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,OAIxJ,mBAAkB,OAACiL,EAAM,MAACwB,EAAK,SAAC3B,GAAU4U,GACzCjT,EAAM2C,eAAyB,IAARsQ,EAAa6D,OAAO9W,EAAMrH,WAAWqa,wBAA0B8D,OAAO9W,EAAMrH,WAAWqa,uBAAuB,CAAC+D,cAAe9D,KAEnJ,YAAY,OAACzU,EAAM,MAACwB,EAAK,SAAC3B,IACtB,EAAAL,EAAM2V,KAAKvS,EAAY,wBAAwB,IAC9CnO,KAAKpE,IAGF,GAAwB,WAApBA,EAAKA,KAAKsJ,OAAqB,CAU3C,IAAI8c,EAAQpmB,EAAKA,KAAKqJ,KAAKqY,OAAOtC,KAAMsE,GAA2B,GAAlBA,EAAMvX,UACpC,oBAATia,IACTtf,QAAQqhB,IAAI,gEACZhX,EAAMrH,WAAWqC,UAAW,EACkB,QAA3CgG,cAAclC,QAAQmY,aAAajjB,OACrC2B,QAAQqhB,IAAI,6FACZhW,cAAclC,QAAQC,QAAQ,aAIpBP,EAAO,aAAa3P,EAAKA,KAAKqJ,MAC1CsG,EAAO,sBAAsB3P,EAAKA,KAAKqJ,KAAKqY,OAAO,GAAGhJ,IACtD0N,EAAQpmB,EAAKA,KAAKqJ,KAAKqY,OAAOtC,KAAMsE,GAASA,EAAMhL,IAAM1Y,EAAKA,KAAKqJ,KAAKgf,gBACrD,oBAATjC,IACTvjB,SAASmW,MAAM7H,EAAMrH,WAAWwe,WAAW,IAAIlC,EAAMxN,KACrDjJ,EAAO,sBAAsB3P,EAAKA,KAAKqJ,KAAKgf,iBAEjC1Y,EAAO,qBAAqB,GACzBwB,EAAMrH,WAAWmM,UAChBtG,EAAO,qBAAoB,GAC1CH,EAAS,oBACMA,EAAS,mBAAkB,KAE3BG,EAAO,oBAAoB,IAChB,YAArBwB,EAAMmJ,aAAkD,QAArBnJ,EAAMmJ,aAA0BnJ,EAAMrH,WAAWmM,YACtE9D,cAAclC,QAAQmY,aAAajjB,MAAQgM,EAAMmJ,aAAkC,IAAnBnJ,EAAMmJ,aAAmBnI,cAAclC,QAAQC,QAAQiB,EAAMmJ,aAChI3K,EAAO,kBAAkB,WAI1CH,EAAS,mBAAmB,CAACtK,QAAQ,0BAA0BlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,OAIxI,cAAc,OAACiL,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GAClC,EAAAvB,EAAM2V,KAAKvS,EAAY,gCAAgC,CAAElB,QAASF,EAAMrH,WAAWye,kBAClFnkB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QACVqG,EAAO,eAAe3P,EAAKA,KAAKqJ,MAChCsG,EAAO,uBAAuB,IAE1CH,EAAS,mBAAmB,CAACtK,QAAQ,4BAA4BlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAE9G,mBAAnBgM,EAAOtF,UAAwBsF,EAAOtF,SAASpL,EAAKA,SAGhE,0BAA0B,OAAC2P,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACzB,IAArBA,EAAO8X,aACV7Y,EAAO,mCAAmC,GACpC,EAAAR,EAAM2V,KAAKvS,EAAY,+BAA+B,CAAEiW,WAAY9X,EAAO8X,WAAYnX,QAASF,EAAMrH,WAAWye,kBAChHnkB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QAEtBkG,EAAS,mBAAmB,CAACtK,QAAQ,wCAAwClF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAEvJiL,EAAO,mCAAmC,GACb,mBAAnBe,EAAOtF,UAAwBsF,EAAOtF,SAASpL,EAAKA,UAGhE,mBAAmB,OAAC2P,EAAM,MAACwB,EAAK,SAAC3B,GAAUxP,GAC1C2P,EAAO,4BAA4B,GAC7B,EAAAR,EAAM2V,KAAKvS,EAAY,iCAAiC,IACvDnO,KAAK8V,IAC0B,WAAxBA,EAASla,KAAKsJ,OAEdqG,EAAO,oBAAoBuK,EAASla,KAAKqJ,MAErDmG,EAAS,mBAAmB,CAACtK,QAAQgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAEnH1E,EAAKoL,SAAS8O,GACbvK,EAAO,4BAA4B,MAGtC,aAAa,OAACA,EAAM,MAACwB,EAAK,SAAC3B,GAAUxP,GACpC2P,EAAO,sBAAsB,GACvB,EAAAR,EAAM2V,KAAKvS,EAAY,yBAAyB,CAAElB,QAASF,EAAMsC,kBAChErP,KAAK8V,IAC0B,WAAxBA,EAASla,KAAKsJ,OACdqG,EAAO,cAAcuK,EAASla,KAAKqJ,MAE/CmG,EAAS,mBAAmB,CAACtK,QAAQ,2BAA2BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE9I1E,EAAKoL,SAAS8O,GACbvK,EAAO,sBAAsB,MAGhC,mBAAmB,OAACA,EAAM,MAACwB,EAAK,SAAC3B,GAAUxP,GAC1C2P,EAAO,4BAA4B,GAC7B,EAAAR,EAAM2V,KAAKvS,EAAY,qCAAqC,CAAElB,QAASF,EAAMsC,kBAC5ErP,KAAK8V,IAC0B,WAAxBA,EAASla,KAAKsJ,OACdqG,EAAO,oBAAoBuK,EAASla,KAAKqJ,MAErDmG,EAAS,mBAAmB,CAACtK,QAAQ,iCAAiCgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAEpJ1E,EAAKoL,SAAS8O,GACbvK,EAAO,4BAA4B,MAGnC,mBAAmB,OAACA,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACvC,EAAAvB,EAAM2V,KAAKvS,EAAY,gCAAgC,CAAEwS,SAAU5T,EAAMxE,KAAKrF,KAC7ElD,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QACVqG,EAAO,oBAAoB3P,EAAKA,KAAKqJ,KAAK4X,UAKzD,kBAAkB,OAACtR,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACzCf,EAAO,2BAA2B,GAC5B,EAAAR,EAAM2V,KAAKvS,EAAY,8BAA8B,CAAElB,QAASF,EAAMsC,gBAAiBF,KAAM7C,EAAO6C,OACnGnP,KAAKpE,IACX2P,EAAO,2BAA2B,GACD,WAApB3P,EAAKA,KAAKsJ,QACVqG,EAAO,mBAAmB3P,EAAKA,KAAKqJ,SAKnD,YAAY,OAACsG,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACnCf,EAAO,qBAAqB,GACtB,EAAAR,EAAM2V,KAAKvS,EAAY,+BAA+B,CAC3DyS,MAAOtU,EAAOsU,MACd5I,SAAU1L,EAAO0L,SACjB+I,UAAWzU,EAAOyU,UAClBsD,UAAW/X,EAAO+X,YAChBrkB,KAAKpE,IAQiB,WAApBA,EAAKA,KAAKsJ,QACb6H,EAAMiD,iBAAmBpU,EAAKA,KAAKqJ,KAAKqf,WACxCvX,EAAMkD,gBAAkBrU,EAAKA,KAAKqJ,KAAKsf,kBAEvCnZ,EAAS,mBAAmB,CAACtK,QAAQ,0BAA0BlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAStC,YAAY,QAAQ1C,SAASwd,KAAKC,WAAWnkB,QAAQ,IAEtLgM,EAAOtF,SAASpL,EAAKA,MACrB2P,EAAO,qBAAqB,MAO9B,gBAAgB,OAACA,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACvCf,EAAO,wBAAwB,GACzB,EAAAR,EAAM2V,KAAKvS,EAAY,6BAA6B7B,GACnDtM,KAAKpE,IACX2P,EAAO,wBAAwB,GAC/Be,EAAOtF,SAASpL,EAAKA,MACY,WAApBA,EAAKA,KAAKsJ,QAEtBkG,EAAS,mBAAmB,CAACtK,QAAQ,8BAA8BgV,SAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAInJ,qBAAqB,OAACiL,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GAC5Cf,EAAO,6BAA6B,GAC9B,EAAAR,EAAM2V,KAAKvS,EAAY,gCAAgC7B,GACtDtM,KAAKpE,IACX2P,EAAO,6BAA6B,GACpCe,EAAOtF,SAASpL,EAAKA,MACY,WAApBA,EAAKA,KAAKsJ,QAEtBkG,EAAS,mBAAmB,CAACtK,QAAQ,gCAAgCgV,SAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAIrJ,eAAc,OAAEiL,EAAM,SAACH,GAAYsZ,GAClCnZ,EAAO,wBAAwB,GACzB,EAAAR,EAAM2V,KAAKvS,EAAY,iCAAiCuW,GACvD1kB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,OACtBqG,EAAO,oBAAoB3P,EAAKA,KAAKqJ,MAErCmG,EAAS,mBAAmB,CAACtK,QAAQ,6BAA6BlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAE5IokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,wBAAwB,KAChCoZ,MAAMlkB,IAEd2K,EAAS,mBAAmB,CAACtK,QAAQ,wDAAwDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MACpJiL,EAAO,wBAAwB,MAGjC,cAAa,OAAEA,EAAM,SAACH,GAAYsZ,GACjCnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,0BAA0BuW,GAChD1kB,KAAKpE,IAKsB,WAApBA,EAAKA,KAAKsJ,QACtBtJ,EAAKA,KAAKqJ,KAAKsb,SAASrG,QAAUC,GAASA,EAAK,4BAA2B,GAC3Eve,EAAKA,KAAKqJ,KAAKsb,SAAS1G,KAAM,CAAC9O,EAAEyD,IAAMA,EAAEoW,MAAQ7Z,EAAE6Z,OACnDrZ,EAAO,eAAe3P,EAAKA,KAAKqJ,KAAKsb,UACrCmE,EAAM1d,SAASpL,EAAKA,OAEjBA,EAAKA,KAAKuK,QAAQkY,cAAc7S,QAAQ,eAAiB,GAC3DgZ,KAAKK,qBACLzZ,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,KAE9G8K,EAAS,mBAAmB,CAACtK,QAAQ,4BAA4BlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAGnIiL,EAAO,uBAAuB,KAC/BoZ,MAAMlkB,IACdiC,QAAQqhB,IAAItjB,GACZ2K,EAAS,mBAAmB,CAACtK,QAAQ,uDAAuDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MACnJiL,EAAO,uBAAuB,MAGhC,aAAa,OAAEA,EAAM,SAACH,GAAYsZ,GACjCnZ,EAAO,eAAc,GACrBA,EAAO,0BAA0B,GAC3B,EAAAR,EAAM2V,KAAKvS,EAAY,0BAA0BuW,GAChD1kB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QAStBkG,EAAS,mBAAmB,CAACtK,QAAQ,mBAAmBlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAElIokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,0BAA0B,GAC1CA,EAAO,eAAc,KACboZ,MAAMlkB,IAEd2K,EAAS,mBAAmB,CAACtK,QAAQ,mDAAmDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAC/IiL,EAAO,0BAA0B,GACjCA,EAAO,eAAc,MA6BvB,qBAAqB,OAAEA,EAAM,MAACwB,EAAK,SAAC3B,GAAYsZ,GAC/CnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,qCAAqCuW,GAC3D1kB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,SAGtBkG,EAAS,mBAAmB,CAACtK,QAAQ,0BAA0BlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IACxIiL,EAAO,uBAAuB,IAE/BmZ,EAAM1d,SAASpL,EAAKA,QACZ+oB,MAAMlkB,IAEd2K,EAAS,mBAAmB,CAACtK,QAAQ,2DAA2DuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MACvJiL,EAAO,uBAAuB,MAIhC,oBAAoB,OAAEA,EAAM,MAACwB,EAAK,SAAC3B,GAAYsZ,GAC9CnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,qCAAuC,CAACvS,KAAM2gB,KAAKE,UAAUiI,EAAM9oB,QACzFoE,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QACiB,QAApBtJ,EAAKA,KAAKsJ,QAC7BkG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAI/GokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,uBAAuB,KAC/BoZ,MAAMlkB,IACXA,EAAMqV,UACR1K,EAAS,mBAAmB,CAACtK,QAAQ,kEAAkEuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE/JiL,EAAO,uBAAuB,MAKhC,eAAe,OAAEA,EAAM,MAACwB,EAAK,SAAC3B,GAAYsZ,GACzCnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,gCAAkCuW,EAAMI,mBAC9D9kB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,OACqB,oBAAjCtJ,EAAKA,KAAKqJ,KAAK8f,gBAA+BxZ,EAAO,qBAAqB3P,EAAKA,KAAKqJ,KAAK8f,gBAC5D,QAApBnpB,EAAKA,KAAKsJ,QAC7BkG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAG/GokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,uBAAuB,KAC/BoZ,MAAMlkB,IACXA,EAAMqV,UACR1K,EAAS,mBAAmB,CAACtK,QAAQ,kFAAkFuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE/KiL,EAAO,uBAAuB,MAKhC,kBAAkB,OAAEA,EAAM,MAACwB,EAAK,SAAC3B,GAAYsZ,GAC5CnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,GAAauW,EAAM9oB,KAAKopB,MAAM,iCAAiC,mCAAmC,CAACppB,KAAM2gB,KAAKE,UAAUiI,EAAM9oB,QACxIoE,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QACnBwf,EAAM9oB,KAAKopB,OAAOzZ,EAAO,oBAAoB3P,EAAKA,KAAKqJ,KAAK4X,MAAMA,OAC1B,oBAAjCjhB,EAAKA,KAAKqJ,KAAK8f,gBAA+BxZ,EAAO,qBAAqB3P,EAAKA,KAAKqJ,KAAK8f,iBAC5D,QAApBnpB,EAAKA,KAAKsJ,QAC7BkG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAI/GokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,uBAAuB,KAC/BoZ,MAAMlkB,IACXA,EAAMqV,UACR1K,EAAS,mBAAmB,CAACtK,QAAQ,kFAAkFuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE/KiL,EAAO,uBAAuB,MAGhC,kBAAiB,OAAEA,EAAM,SAACH,GAAYsZ,GACrCnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,kCAAkCuW,EAAMI,mBAC9D9kB,KAAKpE,IAGsB,WAApBA,EAAKA,KAAKsJ,OACtBqG,EAAO,oBAAoB3P,EAAKA,KAAKqJ,KAAKggB,MAAMpI,OACT,QAApBjhB,EAAKA,KAAKsJ,QAC7BkG,EAAS,mBAAmB,CAACtK,QAAQ,mBAAmBlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAIlIokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,uBAAuB,KAC/BoZ,MAAMlkB,IAEd2K,EAAS,mBAAmB,CAACtK,QAAQ,yDAAyDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MACrJiL,EAAO,uBAAuB,MAGhC,qBAAoB,OAAEA,EAAM,SAACH,GAAYsZ,GACxCnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,kCAAkC,CAC9D+W,aAAcR,EAAMQ,aACpBhmB,KAAMwlB,EAAMS,WAAWrjB,MAAM5C,OAC3Bc,KAAKpE,IAC0B,WAApBA,EAAKA,KAAKsJ,QAEiB,QAApBtJ,EAAKA,KAAKsJ,QAC7BkG,EAAS,mBAAmB,CAACtK,QAAQ,mBAAmBlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAIlIokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,uBAAuB,KAC/BoZ,MAAMlkB,IAEd2K,EAAS,mBAAmB,CAACtK,QAAQ,yDAAyDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MACrJiL,EAAO,uBAAuB,MAGhC,gBAAe,OAAEA,EAAM,SAACH,GAAYsZ,GACnCnZ,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,gCAAgCuW,EAAMI,mBAC5D9kB,KAAKpE,IAGsB,WAApBA,EAAKA,KAAKsJ,QAEiB,QAApBtJ,EAAKA,KAAKsJ,QAC7BkG,EAAS,mBAAmB,CAACtK,QAAQ,mBAAmBlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAIlIokB,EAAM1d,SAASpL,EAAKA,MACX2P,EAAO,uBAAuB,KAC/BoZ,MAAMlkB,IAEd2K,EAAS,mBAAmB,CAACtK,QAAQ,sDAAsDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAClJiL,EAAO,uBAAuB,MAG7B,kBAAiB,OAAEA,EAAM,MAACwB,EAAK,SAAC3B,GAAYsZ,GAC9CnZ,EAAO,uBAAuB,GAC9B,EAAAR,EAAM2V,KAAKvS,EAAY,+BAA+B,CAACiX,OAAOV,EAAM/D,SAAS5T,EAAMxE,KAAKrF,KACjFlD,KAAKpE,IACF,GAAwB,WAApBA,EAAKA,KAAKsJ,OAAqB,CAE/B,IAAIgc,EAAMnU,EAAMgD,cAAc8N,WAAU,SAAS9S,GAAI,OAAOA,EAAEsa,QAAUX,KACxE3X,EAAMgD,cAAczS,OAAO4jB,EAAI,GAC3C9V,EAAS,mBAAmB,CAACtK,QAAQ,sCAAsCR,QAAQ,WAEnF8K,EAAS,mBAAmB,CAACtK,QAAQ,gCAAgClF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAEtIiL,EAAO,uBAAuB,MAGtC,YAAW,OAACA,EAAM,MAACwB,IACrBnK,OAAO0iB,YAAc,WACpBC,GAAGC,KAAK,CACPC,MAAO1Y,EAAMrH,WAAWiN,GACxBlE,QAAQ,EACRiX,OAAO,EACPC,QAAS,WAGV,SAAUtkB,EAAG7D,EAAG0F,GAChB,IAAI0iB,EAAIC,EAAMxkB,EAAE3C,qBAAqBlB,GAAG,GACpC6D,EAAEykB,eAAe5iB,KACrB0iB,EAAKvkB,EAAEpC,cAAczB,GAAIooB,EAAG1iB,GAAKA,EACjC0iB,EAAGpmB,IAAM,sCACTqmB,EAAIjmB,WAAWmmB,aAAaH,EAAIC,IALjC,CAMEpnB,SAAU,SAAU,mBAEpB,OAAO,OAAC8M,EAAM,QAAC8T,EAAO,SAACjU,EAAQ,MAAC2B,GAAQ4P,GACpCpR,EAAO,sBAAqB,GAC5B,EAAAR,EAAM2V,KAAKvS,EAAY,sBAAsB,CAC5CvS,KAAM2gB,KAAKE,UAAU,CAC1BuJ,SAAU,CACRC,MAAOtJ,EAAQpU,KAAK2d,SACpBjc,SAAU0S,EAAQpU,KAAK4d,SACvBC,aAAczJ,EAAQpU,KAAK8d,QAC3BhR,gBAAiBgK,EAAQiH,sBAGtBzF,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,QACxElD,MAAM,SAAU8V,GACc,YAAvBA,EAASla,KAAKsJ,QACbqG,EAAO,aAAcuK,EAASla,KAAKqJ,KAAKshB,UACxCnb,EAAS,oBACTA,EAAS,mBAAkB,KAEvCG,EAAO,sBAAqB,GAChBH,EAAS,mBAAmB,CAACtK,QAAQ,iBAAiBgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,WAK/I,QAAO,OAACiL,EAAM,SAACH,IACXG,EAAO,sBAAqB,GAClC,EAAAR,EAAM2V,KAAKvS,EAAY,uBAAwB,CAC9C0S,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQ,EAAM/G,KAAKrF,QACrElD,MAAK,SAAU8V,GACjBvK,EAAO,qBAAqB,GACnBA,EAAO,sBAAqB,GAC5BH,EAAS,sBAClBgB,SAAS9N,KAAO,EAAMoH,WAAW8gB,eAGhC,UAAU,OAACjb,EAAM,QAAC8T,EAAO,SAACjU,EAAQ,MAAC2B,GAAQ4P,GACvCpR,EAAO,sBAAqB,GAC5B,EAAAR,EAAM2V,KAAKvS,EAAY,uBAAuB,CAC7CvS,KAAM2gB,KAAKE,UAAU,CAC1BuJ,SAAU,CACMS,UAAW9J,EAAQpU,KAAKme,UACxBC,SAAUhK,EAAQpU,KAAKqe,SACvBX,MAAOtJ,EAAQpU,KAAKse,MACpB5c,SAAU0S,EAAQpU,KAAK4d,SACvBjc,OAAQyS,EAAQpU,KAAK1E,OACpCijB,YAAanK,EAAQpU,KAAKwe,YACX3c,YAAauS,EAAQpU,KAAK6B,YAC1BC,UAAWsS,EAAQpU,KAAK8B,UACxB2c,QAASrK,EAAQpU,KAAKye,QACtB3R,gBAAiBgK,EAAQiH,sBAGpCzF,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,QACxElD,MAAM,SAAU8V,GACc,YAAvBA,EAASla,KAAKsJ,QACbqG,EAAO,aAAcuK,EAASla,KAAKqJ,KAAKshB,UACxCnb,EAAS,oBACTA,EAAS,mBAAkB,MAEc,GAAlD0K,EAASla,KAAKuK,QAAQqF,QAAQ,gBAChCJ,EAAS,mBAAmB,CAACtK,QAAQgV,EAASla,KAAKuK,QAAQsD,WAAU,EAAKpF,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAErH8K,EAAS,mBAAmB,CAACtK,QAAQgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAE/HiL,EAAO,sBAAqB,QAM5B,mBAAkB,OAACA,EAAM,QAAC8T,EAAO,SAACjU,EAAQ,MAAC2B,GAAQ4P,GAC/CpR,EAAO,sBAAqB,GAC5B,EAAAR,EAAM2V,KAAKvS,EAAY,gCAAiC,CACpDvS,KAAM2gB,KAAKE,UAAU,CAAEwK,eAAgBtK,EAAQpU,OAC/CsY,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,QACxElD,MAAK,SAAU8V,GACdvK,EAAO,sBAAqB,GAC5BA,EAAO,yBAAiD,WAAxBuK,EAASla,KAAKsJ,QACnB,WAAxB4Q,EAASla,KAAKsJ,QACzB6H,EAAMxE,KAAKkN,QAAQvL,OAASyS,EAAQpU,KAAK2B,OACzC6C,EAAMxE,KAAKkN,QAAQyR,eAAiBvK,EAAQpU,KAAK6B,YACjD2C,EAAMxE,KAAKkN,QAAQpL,UAAYsS,EAAQpU,KAAK8B,WAEhCkB,EAAO,0BAA0BuK,EAASla,KAAKuK,aAM3D,gBAAe,OAACoF,EAAM,QAAC8T,EAAO,SAACjU,EAAQ,MAAC2B,GAAQ4P,GAClDpR,EAAO,eAAc,GACrB,EAAAR,EAAM2V,KAAKvS,EAAY,8BAA+B,CACrDgZ,SAAUxK,EAAQpU,KAAKse,MACvBhG,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,QACrElD,MAAK,SAAU8V,GACiB,WAAtBA,EAASla,KAAKsJ,QACbkG,EAAS,mBAAmB,CAACtK,QAAQ,uBAAuBuD,MAAM,CAAC,mBAAmB,aAAa/D,QAAQ,MACvHqc,EAAQ3V,SAAS8O,EAASla,OAEdwP,EAAS,mBAAmB,CAACtK,QAAQ,0BAA0BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAEzJiL,EAAO,eAAc,MACnBoZ,OAAM,SAAU7O,GAClBvK,EAAO,eAAc,GACZH,EAAS,mBAAmB,CAACtK,QAAQ,sDAAsDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAI7J,eAAc,OAACiL,EAAM,QAAC8T,EAAO,SAACjU,EAAQ,MAAC2B,GAAQ4P,GAC9CpR,EAAO,eAAc,GACrB,EAAAR,EAAM2V,KAAKvS,EAAY,+BAAgC,CACtDiZ,aAAczK,EAAQpU,KAAKse,MAC3B5c,SAAU0S,EAAQpU,KAAK8e,UACvBC,UAAW3K,EAAQpU,KAAKgf,MACxB1G,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,QACrElD,MAAK,SAAU8V,GACiB,WAAtBA,EAASla,KAAKsJ,QACbkG,EAAS,mBAAmB,CAACtK,QAAQ,iDAAiDuD,MAAM,CAAC,mBAAmB,aAAa/D,QAAQ,MACjJqc,EAAQ3V,SAAS8O,EAASla,OAEdwP,EAAS,mBAAmB,CAACtK,QAAQ,UAAUgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAEzIiL,EAAO,eAAc,MACnBoZ,OAAM,SAAU7O,GAClBvK,EAAO,eAAc,GACZH,EAAS,mBAAmB,CAACtK,QAAQ,sDAAsDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAK1J,iBAAiB,OAACiL,EAAM,MAACwB,EAAK,SAAC3B,GAAUoc,GACrCjc,EAAO,0BAAyB,GACtC,EAAAR,EAAM2V,KAAKvS,EAAY,2BAA2B,CAC3C0S,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAQvC,EAAMxE,KAAKrF,QACxElD,MAAM,SAAU8V,GAEZ,GADTvK,EAAO,0BAAyB,GACG,YAAvBuK,EAASla,KAAKsJ,OAAoB,CAC7C,GAAwB,IAArB6H,EAAMmJ,aACW,GAAhBsR,GAAwD,oBAAvBza,EAAMb,UAAU8W,IAAsB,CACzE,IAAIyE,EAAa1a,EAAMrH,WAAWqC,SAAW,OAAS,UACnD0f,GAAc1Z,cAAclC,QAAQmY,aAAajjB,OACnD0mB,EAAa,IAEdlc,EAAO,kBAAkBkc,GA+B3B,GAtBAlc,EAAO,oBAAoBuK,EAASla,KAAKqJ,KAAKyiB,QAAQ,GAAG7K,MAAMA,OACnDtR,EAAO,kBAAkBuK,EAASla,KAAKqJ,KAAKyiB,QAAQ,IAChEnc,EAAO,sBAAsBuK,EAASla,KAAKqJ,KAAK0iB,iBAChDpc,EAAO,mBAAmBuK,EAASla,KAAKqJ,KAAK2iB,cAC7Crc,EAAO,wBAAwBuK,EAASla,KAAKqJ,KAAK4iB,iBAClDtc,EAAO,kBAAkBuK,EAASla,KAAKqJ,KAAK6iB,WAC5Cvc,EAAO,qBAAqBuK,EAASla,KAAKqJ,KAAK8f,gBAC/CxZ,EAAO,gBAAgBuK,EAASla,KAAKqJ,KAAKyiB,QAAQ,GAAG3N,SAClDhN,EAAMrH,WAAWoM,eAAevG,EAAO,sBAAsBuK,EAASla,KAAKqJ,KAAKyiB,QAAQ,GAAGK,aAClFxc,EAAO,yBAAyBuK,EAASla,KAAKqJ,KAAKyiB,QAAQ,GAAGT,gBAC1E7b,EAAS,eAAe,IACxBA,EAAS,sBAAsB,IAChB2B,EAAMrH,WAAWmM,UAChBtG,EAAO,oBAAoB,GAE3CA,EAAO,sBAAqB,GAC5BA,EAAO,qBAAoB,GAMxBwB,EAAMrH,WAAWqC,SAAU,CAC7B,IAAI3E,EAAO/G,OAAO+G,KAAK2J,EAAMrH,WAAWsiB,aACpCC,EAAc7kB,EAAK8c,OAAS9d,GAAQ2K,EAAMrH,WAAWsiB,YAAY5lB,IACrE,GAAG6lB,EAAY7rB,OAAO,EAAG,CACxB,IAAI8rB,GAAc,EAClBD,EAAY/N,QAAS,CAACC,EAAMje,KAChB,4BAARie,GAAkE,GAA5BpN,EAAMxE,KAAKkN,QAAQ0S,QAAYD,GAAc,GAC3E,0BAAR/N,GAAiE,GAA7BpN,EAAMxE,KAAKkN,QAAQtL,SAAa+d,GAAc,GAC1E,0BAAR/N,GAAiE,IAA7BpN,EAAMxE,KAAKkN,QAAQvL,SAAcge,GAAc,GAC3E,2BAAR/N,GAAmE,IAA7BpN,EAAMxE,KAAKkN,QAAQqH,UAAuC,IAAzB/P,EAAMxE,KAAKkN,QAAQ0H,MAAqC,IAA3BpQ,EAAMxE,KAAKkN,QAAQyH,QAAyC,IAA7BnQ,EAAMxE,KAAKkN,QAAQ2H,WAAe8K,GAAc,KAEpLA,IACF3c,EAAO,6BAA4B,GACnCH,EAAS,mBAAmB,CAACtK,QAAQ,0DAA0DuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,QAKrH,IAArByM,EAAMmJ,aAAsBnJ,EAAMwL,wBACxB,QAArBxL,EAAMmJ,YACOnI,cAAclC,QAAQC,QAAQ,CAAC/K,KAAKgM,EAAMmJ,YAAY5J,OAAOS,EAAMoJ,gBAE/EpI,cAAclC,QAAQmY,aAAajjB,MAAQgM,EAAMmJ,aACnDjV,YAAW,WACV8M,cAAclC,QAAQmY,aAAaoE,QAAQ,GAAGC,UAAUxa,QAAQya,SAASvb,EAAMoJ,cAAcwN,OAAO5W,EAAMoJ,cAAcyN,YACvH,KAGWrY,EAAO,kBAAkB,UAU5C,qBAAqB,OAACA,EAAM,SAACH,GAAWxP,GACjC2P,EAAO,8BAA6B,GACpC,EAAAR,EAAM2V,KAAKvS,EAAY,qCAAqC,CACxDwS,SAAS,EAAMpY,KAAKrF,KACrBlD,MAAM,SAAU8V,GACfvK,EAAO,8BAA6B,GACT,WAAxBuK,EAASla,KAAKsJ,QACbqG,EAAO,sBAAsBuK,EAASla,KAAKqJ,KAAKoV,cAAc6F,QAAO,SAASnV,GAAG,MAAiB,UAAVA,EAAE7F,WAC3E,mBAAjBtJ,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,OAElDwP,EAAS,mBAAmB,CAACtK,QAAQ,wCAAwCgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAMzK,cAAc,OAACiL,EAAM,SAACH,GAAWxP,GAC1B2P,EAAO,uBAAsB,GAC7B,EAAAR,EAAM2V,KAAKvS,EAAY,4BAA4B,CAC/CwS,SAAS,EAAMpY,KAAKrF,KACrBlD,MAAM,SAAU8V,GACfvK,EAAO,uBAAsB,GACF,WAAxBuK,EAASla,KAAKsJ,QACbqG,EAAO,eAAeuK,EAASla,KAAKqJ,KAAKsjB,UAC1B,mBAAjB3sB,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,OAElDwP,EAAS,mBAAmB,CAACtK,QAAQ,4BAA4BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAK7J,eAAe,OAACiL,EAAM,SAACH,GAAWxP,GAC3B2P,EAAO,uBAAsB,GAC7B,EAAAR,EAAM2V,KAAKvS,EAAY,4BAA4B,CAC/Cqa,UAAW5sB,EAAK6sB,YACjBzoB,MAAM,SAAU8V,GACfvK,EAAO,uBAAsB,GACF,WAAxBuK,EAASla,KAAKsJ,QAEzBkG,EAAS,mBAAmB,CAACtK,QAAQgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,aAAa/D,QAAQ,MAC1G8K,EAAS,eAAe,IACG,mBAAjBxP,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,OAElDwP,EAAS,mBAAmB,CAACtK,QAAQ,gCAAgCgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,QAKjK,kBAAkB,OAACiL,EAAM,SAACH,GAAWxP,GAC9B2P,EAAO,uBAAsB,GAC7B,EAAAR,EAAM2V,KAAKvS,EAAY,+BAA+B,CAClDqa,UAAW5sB,EAAK6sB,YACjBzoB,MAAM,SAAU8V,GACfvK,EAAO,uBAAsB,GACF,WAAxBuK,EAASla,KAAKsJ,QAEzBkG,EAAS,eAAe,IACxBA,EAAS,mBAAmB,CAACtK,QAAQ,uBAAuBuD,MAAM,CAAC,mBAAmB,aAAa/D,QAAQ,MAChF,mBAAjB1E,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,OAElDwP,EAAS,mBAAmB,CAACtK,QAAQ,iCAAiCgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAKlK,mBAAmB,OAACiL,EAAM,SAACH,GAAWxP,GAC/B2P,EAAO,uBAAsB,GAC7B,EAAAR,EAAM2V,KAAKvS,EAAY,gCAAgC,CACnDua,aAAc9sB,EAAK6sB,UAC5BE,iBAAkB/sB,EAAKgtB,gBACf5oB,MAAM,SAAU8V,GACfvK,EAAO,uBAAsB,GACF,WAAxBuK,EAASla,KAAKsJ,QAEzBkG,EAAS,eAAe,IACG,mBAAjBxP,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,OAElDwP,EAAS,mBAAmB,CAACtK,QAAQ,qCAAqCgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,QAKtK,mBAAmB,OAACiL,EAAM,SAACH,GAAWxP,GAC/B2P,EAAO,uBAAsB,GAC7B,EAAAR,EAAM2V,KAAKvS,EAAY,gCAAgC,CACnDua,aAAc9sB,EAAK6sB,UAC5BE,iBAAkB/sB,EAAKgtB,gBACf5oB,MAAM,SAAU8V,GAEf,GADAvK,EAAO,uBAAsB,GACF,WAAxBuK,EAASla,KAAKsJ,OAAqB,CAE9C,IAAI2jB,EAAgB/S,EAASla,KAAKqJ,KAAKsb,SACvCnV,EAAS,cAAe,EAAMgI,OAAO4H,KAAOjQ,GAAMA,EAAEuJ,IAAMuU,EAAc,GAAGC,UAC3E1d,EAAS,oBAAoB,CAACrK,KAAK,kBAAkBe,MAAMya,KAAKE,UAAU,CAAEnF,SAAUuR,MACtF9a,cAAclC,QAAQC,QAAQ,QAEH,mBAAjBlQ,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,WAElDwP,EAAS,mBAAmB,CAACtK,QAAQ,qCAAqCgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAOnK,iBAAiB,OAACiL,EAAM,SAACH,GAAWxP,GAChC2P,EAAO,0BAAyB,GAChC,EAAAR,EAAM2V,KAAKvS,EAAY,4BAA4B,CAC/CvS,KAAM2gB,KAAKE,UAAU,CAAEiL,QAAU9rB,EAAKA,OACtCilB,WAAYtE,KAAKE,UAAU7N,EAAwB,CAACU,OAAO,EAAM/G,KAAKrF,QACvElD,MAAM,SAAU8V,GACfvK,EAAO,0BAAyB,GACL,WAAxBuK,EAASla,KAAKsJ,QACbqG,EAAO,kBAAkB,EAAMhD,KAAKkN,SAChD7Z,EAAKoL,SAAS8O,EAASla,MACC,IAArB,EAAMsa,cACOnI,cAAclC,QAAQC,QAAQ,CAAC/K,KAAK,EAAMmV,YAAY5J,OAAO,EAAM6J,gBACnE5K,EAAO,kBAAkB,KAE7BH,EAAS,mBAAmB,CAACtK,QAAQ,6CAA6CuD,MAAM,CAAC,mBAAmB,aAAa/D,QAAQ,OAEjI8K,EAAS,mBAAmB,CAACtK,QAAQ,6BAA6BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAM3J,oBAAoB,OAACiL,EAAM,SAACH,GAAWxP,GACzC2P,EAAO,4BAA4B,CAACrM,KAAK,EAAE4W,SAAS,CAACC,gBAAgB,MACrExK,EAAO,wBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,sCAAsC,CACzD4a,SAAUntB,EAAKmtB,SACflI,WAAYtE,KAAKE,UAAU7N,OAC5B5O,MAAM,SAAU8V,GACxBvK,EAAO,wBAAuB,GACI,oBAAxBuK,EAASla,KAAKsJ,QACdqG,EAAO,4BAA4B,CAACrM,KAAKtD,EAAKsD,KAAK4W,SAASA,EAASla,OACnD,mBAAjBA,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,OAE9DwP,EAAS,mBAAmB,CAACtK,QAAQgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAMrH,qBAAqB,OAACiL,EAAM,SAACH,GAAUxP,GACtC2P,EAAO,8BAA8B,GAC/B,EAAAR,EAAM2V,KAAKvS,EAAY,kCAAkC,CAC9D6a,SAAUptB,EAAKA,KAAKkhB,SACpBmM,SAAUrtB,EAAKA,KAAKmhB,SACpBmM,KAAMttB,EAAKA,KAAKuhB,KAChBgM,OAAQvtB,EAAKA,KAAKshB,OACT6L,SAAUntB,EAAKA,KAAKwhB,SACpByD,WAAYtE,KAAKE,UAAU7N,OAC5B5O,MAAM,SAAU8V,GACxBvK,EAAO,8BAA8B,GACV,WAAxBuK,EAASla,KAAKsJ,OACJqG,EAAO,wBAAwBuK,EAASla,KAAKqJ,KAAK4iB,iBAElDzc,EAAS,mBAAmB,CAACtK,QAAQ,2BAA6BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE5J1E,EAAKoL,SAAS8O,OAKhB,uBAAuB,OAACvK,GAAQ3P,GAC/B2P,EAAO,8BAA8B,GAC/B,EAAAR,EAAM2V,KAAKvS,EAAY,8BAA8B,CAC1Dib,UAAWxtB,EACFilB,WAAYtE,KAAKE,UAAU7N,OAC5B5O,MAAM,SAAU8V,GACxBvK,EAAO,8BAA8B,GACV,WAAxBuK,EAASla,KAAKsJ,OACJqG,EAAO,wBAAwBuK,EAASla,KAAKqJ,KAAK4iB,iBAElDzc,SAAS,mBAAmB,CAACtK,QAAQ,4BAA8BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAM5J,iBAAiB,OAACiL,EAAM,SAACH,GAAWxP,GAEhC,IAAM,CACFytB,OAAQ,OACXta,IAAKZ,EAAY,2BACjBvS,KAAMA,EAAK0tB,GACXC,OAAQ,CAAEC,QAAS,CAAC,eAAgB,0BACrCxpB,MAAK,SAAU8V,GACgB,WAAxBA,EAASla,KAAKsJ,OACbtJ,EAAKoL,SAAS8O,EAASla,MAEvBwP,EAAS,mBAAmB,CAACtK,QAAQ,0BAA0BuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAE9HqkB,OAAM,SAAU7O,QAKpB,iBAAgB,OAAEvK,EAAM,MAAEwB,IAC5B,IAAI0c,EAAelb,EAAU,SAAWxB,EAAMqH,iBAC1B,MAAhBqV,GACHle,EAAO,aAAcke,IAKpB,kBAAiB,OAAEle,EAAM,MAAEwB,IAC7B,IAAI2c,EAAO,IAAIjK,KACfiK,EAAKC,QAAQD,EAAKE,UAAY,QAC9BnrB,SAASgQ,OAAS,SAAW1B,EAAMqH,gBAAkB,IAAMrH,EAAMxE,KAAKrF,GAAK,aAAewmB,EAAKG,eAKhG,qBACC,IAAIH,EAAO,IAAIjK,KACfiK,EAAKC,QAAQD,EAAKE,UAAY,QAC9BnrB,SAASgQ,OAAS,SAAW,EAAM2F,gBAAkB,cAAgBsV,EAAKG,eAKxE,wBAAuB,OAAEte,EAAM,MAAEwB,IACnC,IAAI+c,EAAIvb,EAAU,oBAClBhD,EAAO,oBAAyB,MAAJue,IAI7B,mBAAkB,OAAEve,EAAM,MAAEwB,IAC3B,IAAI2c,EAAO,IAAIjK,KACfiK,EAAKC,QAAQD,EAAKE,UAAY,SAC9BnrB,SAASgQ,OAAS,kCAAoCib,EAAKG,cAC3Dte,EAAO,qBAAqB,IAI7B,sBAAqB,OAAEA,EAAM,MAAEwB,EAAK,SAAE3B,GAAYxP,GAC3C2P,EAAO,cAAe3P,GAC5BwP,EAAS,aAAamR,KAAKE,UAAU1P,EAAMtC,UAGzC,iBAAgB,OAAEc,EAAM,MAAEwB,EAAK,SAAE3B,GAAYxP,GACzC2P,EAAO,WAAY3P,GACzBwP,EAAS,aAAamR,KAAKE,UAAU1P,EAAMtC,UAG5C,YAAW,OAAEc,EAAM,MAAEwB,EAAK,SAAE3B,GAAYxP,GACvCmuB,aAAaC,QAAQ,YAAYzN,KAAKE,UAAU,CAC/CkJ,QAAS5Y,EAAMwC,eACftC,QAASF,EAAMb,UAAUe,QACzB2T,MAAO7T,EAAMtC,WAKZ,sBAAsB,OAACc,KAClB,SAAU3I,GACP,CACI,IAAIqnB,EAAS,CACT,CAAElpB,KAAM,gBAAiBe,MAAO,gBAAiB6jB,QAAS,MAC1D,CAAE5kB,KAAM,aAAce,MAAO,MAAO6jB,QAAS,MAC7C,CAAE5kB,KAAM,SAAUe,MAAO,SAAU6jB,QAAS,MAC5C,CAAE5kB,KAAM,OAAQe,MAAO,OAAQ6jB,QAAS,MACxC,CAAE5kB,KAAM,SAAUe,MAAO,OAAQ6jB,QAAS,QAC1C,CAAE5kB,KAAM,UAAWe,MAAO,UAAW6jB,QAAS,WAC9C,CAAE5kB,KAAM,WAAYe,MAAO,WAAY6jB,QAAS,MAChD,CAAE5kB,KAAM,aAAce,MAAO,aAAc6jB,QAAS,KACpD,CAAE5kB,KAAM,YAAae,MAAO,MAAO6jB,QAAS,QAC5C,CAAE5kB,KAAM,WAAYe,MAAO,QAAS6jB,QAAS,MAC7C,CAAE5kB,KAAM,OAAQe,MAAO,OAAQ6jB,QAAS,WAI5C,SAASuE,EAAUC,EAAQvuB,GACvB,IAGIwuB,EACAC,EACA3b,EACA4b,EACA3E,EAPAzpB,EAAI,EACJkB,EAAI,EAQR,IAAKlB,EAAI,EAAGA,EAAIN,EAAKQ,OAAQF,GAAK,EAG9B,GAFAkuB,EAAQ,IAAIG,OAAO3uB,EAAKM,GAAG4F,MAAO,KAClC4M,EAAQ0b,EAAMre,KAAKoe,GACfzb,EAAO,CAKP,GAJA2b,EAAS,IAAIE,OAAO3uB,EAAKM,GAAGypB,QAAU,oBAAqB,KAC3D2E,EAAUH,EAAOzb,MAAM2b,GACvB1E,EAAU,GACN2E,GAAeA,EAAQ,KAAMA,EAAUA,EAAQ,IAC/CA,EAEA,IADAA,EAAUA,EAAQ7d,MAAM,SACnBrP,EAAI,EAAGA,EAAIktB,EAAQluB,OAAQgB,GAAK,EAE7BuoB,GADM,IAANvoB,EACWktB,EAAQltB,GAAK,IAEbktB,EAAQltB,QAI3BuoB,EAAU,IAEd,MAAO,CACH5kB,KAAMnF,EAAKM,GAAG6E,KACd4kB,QAAS6E,WAAW7E,IAIhC,MAAO,CAAE5kB,KAAM,UAAW4kB,QAAS,GAEvC,IAAIxhB,EAAS,CAACsmB,UAAUC,SAAUD,UAAUE,UAAWF,UAAUG,WAAYH,UAAUI,OAAQjoB,EAAOkoB,OAClGC,EAASb,EAAU/lB,EAAOqe,OAAQyH,GAAQlpB,KAI1CiqB,EAAU,IAGVC,EAAa,GACjB,GAAIC,OAAOC,MAAO,CACd,IAAIA,EAASD,OAAY,MAAIA,OAAOC,MAAQ,GACxCC,EAAUF,OAAa,OAAIA,OAAOE,OAAS,GAC/CH,GAAmBE,EAAQ,MAAQC,EAIvC,IAKIC,EAAYC,EAAWC,EALvBC,EAAOf,UAAUG,WACjBa,EAAOhB,UAAUE,UACjBe,EAAUjB,UAAUkB,QACpBhG,EAAU,GAAK6E,WAAWC,UAAUG,YACpCgB,EAAelM,SAAS+K,UAAUG,WAAY,KAIN,IAAvCU,EAAYG,EAAKjgB,QAAQ,WAC1BkgB,EAAU,QACV/F,EAAU8F,EAAKjf,UAAU8e,EAAY,IACS,IAAzCA,EAAYG,EAAKjgB,QAAQ,cAC1Bma,EAAU8F,EAAKjf,UAAU8e,EAAY,MAGE,IAArCA,EAAYG,EAAKjgB,QAAQ,SAC/BkgB,EAAU,QACV/F,EAAU8F,EAAKjf,UAAU8e,EAAY,KAGO,IAAtCA,EAAYG,EAAKjgB,QAAQ,UAC/BkgB,EAAU,iBACV/F,EAAU8F,EAAKjf,UAAU8e,EAAY,KAEO,IAAtCA,EAAYG,EAAKjgB,QAAQ,UAC/BkgB,EAAU,8BACV/F,EAAU8F,EAAKjf,UAAU8e,EAAY,KAGS,IAAxCA,EAAYG,EAAKjgB,QAAQ,YAC/BkgB,EAAU,SACV/F,EAAU8F,EAAKjf,UAAU8e,EAAY,KAGS,IAAxCA,EAAYG,EAAKjgB,QAAQ,YAC/BkgB,EAAU,SACV/F,EAAU8F,EAAKjf,UAAU8e,EAAY,IACS,IAAzCA,EAAYG,EAAKjgB,QAAQ,cAC1Bma,EAAU8F,EAAKjf,UAAU8e,EAAY,MAIM,IAAzCA,EAAYG,EAAKjgB,QAAQ,aAC/BkgB,EAAU,UACV/F,EAAU8F,EAAKjf,UAAU8e,EAAY,KAGH,GAA7BG,EAAKjgB,QAAQ,aAClBkgB,EAAU,8BACV/F,EAAU8F,EAAKjf,UAAUif,EAAKjgB,QAAQ,OAAS,KAGzC6f,EAAaI,EAAKI,YAAY,KAAO,IAAMP,EAAYG,EAAKI,YAAY,QAC9EH,EAAUD,EAAKjf,UAAU6e,EAAYC,GACrC3F,EAAU8F,EAAKjf,UAAU8e,EAAY,GACjCI,EAAQrN,eAAiBqN,EAAQI,gBACjCJ,EAAUjB,UAAUkB,WAIQ,IAA/BJ,EAAK5F,EAAQna,QAAQ,QAAama,EAAUA,EAAQnZ,UAAU,EAAG+e,KAClC,IAA/BA,EAAK5F,EAAQna,QAAQ,QAAama,EAAUA,EAAQnZ,UAAU,EAAG+e,KAClC,IAA/BA,EAAK5F,EAAQna,QAAQ,QAAama,EAAUA,EAAQnZ,UAAU,EAAG+e,IAEtEK,EAAelM,SAAS,GAAKiG,EAAS,IAClCoG,MAAMH,KACNjG,EAAU,GAAK6E,WAAWC,UAAUG,YACpCgB,EAAelM,SAAS+K,UAAUG,WAAY,KAIlD,IAAI/mB,EAAS,4CAA4CkI,KAAKyf,GAG1DQ,IAAiBvB,UAAuB,cAEN,oBAA3BA,UAAUuB,eAAiCA,IAClDvtB,SAASgQ,OAAS,aAClBud,GAA2D,GAA1CvtB,SAASgQ,OAAOjD,QAAQ,eAI7C,IAAIygB,EAAKjB,EACLkB,EAAgB,CAChB,CAAE1uB,EAAG,aAAcmE,EAAG,kCACtB,CAAEnE,EAAG,cAAemE,EAAG,gCACvB,CAAEnE,EAAG,YAAamE,EAAG,8BACrB,CAAEnE,EAAG,YAAamE,EAAG,8BACrB,CAAEnE,EAAG,gBAAiBmE,EAAG,kBACzB,CAAEnE,EAAG,sBAAuBmE,EAAG,kBAC/B,CAAEnE,EAAG,aAAcmE,EAAG,+BACtB,CAAEnE,EAAG,eAAgBmE,EAAG,iCACxB,CAAEnE,EAAG,aAAcmE,EAAG,4BACtB,CAAEnE,EAAG,aAAcmE,EAAG,sBACtB,CAAEnE,EAAG,aAAcmE,EAAG,iCACtB,CAAEnE,EAAG,iBAAkBmE,EAAG,8CAC1B,CAAEnE,EAAG,aAAcmE,EAAG,cACtB,CAAEnE,EAAG,eAAgBmE,EAAG,SACxB,CAAEnE,EAAG,UAAWmE,EAAG,WACnB,CAAEnE,EAAG,WAAYmE,EAAG,WACpB,CAAEnE,EAAG,SAAUmE,EAAG,SAClB,CAAEnE,EAAG,QAASmE,EAAG,eACjB,CAAEnE,EAAG,MAAOmE,EAAG,sBACf,CAAEnE,EAAG,WAAYmE,EAAG,YACpB,CAAEnE,EAAG,SAAUmE,EAAG,2CAClB,CAAEnE,EAAG,MAAOmE,EAAG,OACf,CAAEnE,EAAG,OAAQmE,EAAG,QAChB,CAAEnE,EAAG,OAAQmE,EAAG,QAChB,CAAEnE,EAAG,OAAQmE,EAAG,SAChB,CAAEnE,EAAG,aAAcmE,EAAG,iFAE1B,IAAK,IAAIuB,KAAMgpB,EAAe,CAC1B,IAAIC,EAAKD,EAAchpB,GACvB,GAAIipB,EAAGxqB,EAAEoK,KAAK0f,GAAO,CACjBQ,EAAKE,EAAG3uB,EACR,OAIR,IAAI4uB,EAAYpB,EAOhB,OALI,UAAUjf,KAAKkgB,KACfG,EAAY,eAAeC,KAAKJ,GAAI,GACpCA,EAAK,WAGDA,GACJ,IAAK,WACDG,EAAY,yBAAyBC,KAAKZ,GAAM,GAChD,MAEJ,IAAK,UACDW,EAAY,sBAAsBC,KAAKZ,GAAM,GAC7C,MAEJ,IAAK,MACDW,EAAY,yBAAyBC,KAAKb,GAC1CY,EAAYA,EAAU,GAAK,IAAMA,EAAU,GAAK,KAAsB,EAAfA,EAAU,IACjE,OAKZ7gB,EAAO,sBAAuB,CAC1Bwf,OAAQA,EACRG,OAAQD,EACRS,QAASA,EACTY,eAAgB3G,EAChB9hB,OAAQA,EACRooB,GAAIA,EACJG,UAAWA,EACXG,QAASP,KA9NjB,CAgOEzoB,OAIN,kBAAkB,OAACgI,EAAM,MAACwB,GAAOnR,GACxB,MAARA,GAC4B,oBAApBA,EAAK8N,cAA4B9N,EAAK,eAAiB,MAE5D2P,EAAO,mBAAmB3P,IAG9B,eAAc,OAAC2P,EAAM,MAACwB,IACrBA,EAAM8J,sBAAwB9J,EAAMsC,kBACjC9D,EAAO,wBAAuB,GAC9BA,EAAO,gBAAgB,IAC7BwB,EAAM8J,qBAAuB9J,EAAMsC,gBACnC,EAAAtE,EAAM2V,KAAKvS,EAAY,4BAA6B,CACnDqe,QAASzf,EAAMsC,gBACfwR,WAAYtE,KAAKE,UAAU7N,OACzB5O,MAAK,SAAU8V,GACjBvK,EAAO,gBAAgBuK,EAASla,KAAKqJ,KAAKwnB,aACjClhB,EAAO,wBAAuB,MACrCoZ,OAAM,SAAU7O,SAIjB,aAAY,OAAEvK,EAAM,MAACwB,EAAK,SAAC3B,GAAYxP,GACzC2P,EAAO,sBAAuB3P,EAAK0Y,IACnC/I,EAAO,oBAAqB3P,GAC5BwP,EAAS,oBAAoBxP,EAAKokB,MAClCvhB,SAASmW,MAAQ7H,EAAMrH,WAAWwe,YAActoB,EAAK4Y,KAAQzH,EAAMrH,WAAWwe,WAAW,IAAItoB,EAAK4Y,KAAQzH,EAAMrH,WAAWwe,YAG5H,sBAAqB,OAAC3Y,EAAM,MAACwB,EAAK,SAAC3B,GAAWxP,GACvC2P,EAAO,+BAA8B,GACrCA,EAAO,sBAAsB,MACnC,EAAAR,EAAM2V,KAAKvS,EAAY,+BAAgC,CACtDue,UAAW9wB,EAAK8wB,UAChB7L,WAAYtE,KAAKE,UAAU7N,OACzB5O,MAAK,SAAU8V,GACjBvK,EAAO,+BAA8B,GACV,WAAxBuK,EAASla,KAAKsJ,QAChBqG,EAAO,sBAAsBuK,EAASla,KAAKqJ,MAC/BrJ,EAAKoL,SAAS8O,EAASla,OAEvBwP,EAAS,mBAAmB,CAACtK,QAAQ,6BAA+BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAE5JqkB,OAAM,SAAU7O,QAIpB,qBAAqB,OAACvK,EAAM,MAACwB,EAAK,SAAC3B,GAAUxP,GAC5C,EAAAmP,EAAM2V,KAAKvS,EAAY,wBAAyB,CAC/Cue,UAAW9wB,EAAK8wB,UAChBtF,aAAcxrB,EAAKirB,MACnB8F,OAAQ/wB,EAAK8R,GACbkf,SAAUhxB,EAAK+R,KACf7M,QAASlF,EAAKkF,QACd+f,WAAYtE,KAAKE,UAAU7N,OACzB5O,MAAK,SAAU8V,GACU,WAAxBA,EAASla,KAAKsJ,QAChBkG,EAAS,mBAAmB,CAACtK,QAAQ,2BAA2BuD,MAAM,CAAC,mBAAmB,aAAa/D,QAAQ,MAC/G0G,SAAS8O,EAASla,OAElBwP,EAAS,mBAAmB,CAACtK,QAAQ,yBAA2BgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAE5IqkB,OAAM,SAAU7O,QAKpB,eAAe,OAACvK,EAAM,MAACwB,EAAK,SAAC3B,GAAUxP,GACtC,EAAAmP,EAAM2V,KAAKvS,EAAY,yBAA0B,CAChDue,UAAW9wB,EAAK8wB,UAChBC,OAAQ/wB,EAAK8R,GACbkf,SAAUhxB,EAAK+R,KACf7M,QAASlF,EAAKkF,QACd+f,WAAYtE,KAAKE,UAAU7N,OACzB5O,MAAK,SAAU8V,GACU,WAAxBA,EAASla,KAAKsJ,OAEhBjE,YAAW,WACE8L,EAAMyC,IAAIqd,UAAU/W,EAASla,KAAKqJ,KAAK6nB,SACzC,GAEX1hB,EAAS,mBAAmB,CAACtK,QAAQ,8BAAgCgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAEjJqkB,OAAM,SAAU7O,QAKpB,yBAAyB,OAACvK,EAAM,SAACH,GAAWxP,GAC3C2P,EAAO,kCAAiC,GAClC,EAAAR,EAAM2V,KAAKvS,EAAY,4BAA4B,CACxD4e,OAAQ,KACCnM,MAAOhlB,EAAKglB,MACrBoM,UAAWpxB,EAAKoxB,UACPnM,WAAYtE,KAAKE,UAAU7N,OAC5B5O,MAAM,SAAU8V,GACxBvK,EAAO,kCAAiC,GACN,oBAAxBuK,EAASla,KAAKsJ,OAEI,mBAAjBtJ,EAAKoL,UAAwBpL,EAAKoL,SAAS8O,EAASla,MAE9DwP,EAAS,mBAAmB,CAACtK,QAAQgV,EAASla,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,UAKrH,wBAAwB,OAACiL,EAAM,SAACH,IAC/BG,EAAO,4BAA2B,IAGnC,sBAAsB,OAACA,EAAM,SAACH,GAAWxP,GACxC2P,EAAO,eAAc,GACrB,EAAAR,EAAM2V,KAAKvS,EAAY,wCAAyC,CAC/DyS,MAAOhlB,EAAKglB,MACHqM,gBAAiBrxB,EAAKsxB,GAC/BvM,SAAU/kB,EAAK+kB,SACf1T,QAASrR,EAAKqR,UACNjN,MAAM,SAAU8V,GACxBvK,EAAO,eAAc,GACrB3P,EAAKoL,SAAS8O,EAASla,UAWzB,aAAa,MAACmR,IACbA,EAAMtC,OAAS,GACfsf,aAAaoD,WAAW,cAGzB,iBAAiB,SAAC/hB,EAAQ,MAAC2B,IAE1B,SAASqgB,EAAS5e,GACjB,IAAI6e,EAAS7e,EAAE0R,OAASnV,IAEvB,OAAa,GAAVA,EAAE7L,MAAoD,GAAvC6N,EAAMrH,WAAWoC,sBACtB,GAAViD,EAAE7L,MAAkD,GAArC6N,EAAMrH,WAAWkC,oBAGpCmF,EAAMtC,OAAS4iB,EAGhB,IAAI5iB,EAASsf,aAAauD,QAAQ,aAClC,GAAc,MAAV7iB,EAAiB,CACpB,IAAI+D,EAAI+N,KAAKC,MAAM/R,GACI,oBAAb+D,EAAEmX,QACRnX,EAAEmX,SAAW5Y,EAAMwC,eAClBf,EAAEvB,SAAWF,EAAMb,UAAUe,QAC/BmgB,EAAS5e,EAAEoS,QAEXxV,EAAS,eACTA,EAAS,mBAAmB,CAACtK,QAAQ,qDAAqDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,QAGlJ8K,EAAS,eACTA,EAAS,mBAAmB,CAACtK,QAAQ,oDAAoDuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,QAGjJ8K,EAAS,eACTA,EAAS,mBAAmB,CAACtK,QAAQ,gFAAgFuD,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,SAM/K,cAAc,OAACiL,EAAM,MAACwB,EAAK,SAAC3B,GAAUpE,GACrCuE,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,0BAA0B,CAAElB,QAASF,EAAMsC,gBAAiB0d,OAAQ,OAC1F/sB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,SACtBtJ,EAAKA,KAAKqJ,KAAKsb,SAAS1G,MAAK,SAAS9O,EAAEyD,GACvC,OAAkB,GAAdzD,EAAE+O,UAAiBtL,EAAEsL,SAAW,EAAU,EAC1C/O,EAAE+O,SAAW,GAAmB,GAAdtL,EAAEsL,UAAuB,EAC3C/O,EAAE+O,SAAWtL,EAAEsL,UAAkB,EACjC/O,EAAE+O,SAAWtL,EAAEsL,SAAiB,EACjC/O,EAAEqT,QAAQC,cAAgB7P,EAAE4P,QAAQC,eAAuB,EAC3DtT,EAAEqT,QAAQC,cAAgB7P,EAAE4P,QAAQC,cAAsB,EACtD,KAERziB,EAAKA,KAAKqJ,KAAKsb,SAASrG,QAAUC,GAASA,EAAK,4BAA2B,GAC/D5O,EAAO,eAAe3P,EAAKA,KAAKqJ,KAAKsb,UAWjDhV,EAAO,wBAAwB3P,EAAKA,KAAKqJ,KAAKgV,YAClC1O,EAAO,uBAAuB,IAG3CvE,EAASpL,EAAKqJ,SAIhB,iBAAiB,OAACsG,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACxCf,EAAO,0BAA0B,GAC3B,EAAAR,EAAM2V,KAAKvS,EAAY,6BAA6B,CAAEof,UAAWjhB,EAAOihB,UAAWC,OAAQlhB,EAAOod,KAAMzc,QAASF,EAAMsC,gBAAiBoe,iBAAkBnhB,EAAOohB,mBAChK1tB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QACjBoH,EAAOqhB,YAAc5gB,EAAMrH,WAAWkoB,2CAA8C7gB,EAAMrH,WAAWkoB,0CAAkF,GAArChyB,EAAKA,KAAKqJ,KAAKiJ,YAAY9R,QAA0C,MAA3BkQ,EAAOohB,mBACvM9xB,EAAKA,KAAKqJ,KAAKiJ,YAAY5Q,OAAO,EAAE,EAAE,CACrCuwB,QAAQ,EACRC,SAAU,EACVC,YAAa,EACbxZ,UAAWxH,EAAMrH,WAAWsoB,aAC5B1P,OAAQ,IACRsG,MAAO,EACPqJ,cAAe,GACfC,WAAY,kBACZ3P,aAAc,uCACd1J,UAAU,IAGoB,IAA7BjZ,EAAKA,KAAKqJ,KAAKgJ,YACjB7C,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAEnGiL,EAAO,kBAAkB3P,EAAKA,KAAKqJ,QAE/CmG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAC9GiL,EAAO,kBAAkB,CACxB2C,YAAa,GACbD,WAAY,MAGd3B,EAAOtF,SAASpL,EAAKA,MACrB2P,EAAO,0BAA0B,MAInC,gBAAgB,OAACA,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACvCf,EAAO,uBAAuB,GACxB,EAAAR,EAAM2V,KAAKvS,EAAY,6CAA6C,CAAEggB,aAAc7hB,EAAO6hB,aAAclhB,QAASF,EAAMsC,gBAAiB0d,OAAQ,OAChJ/sB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,SACtBtJ,EAAKA,KAAKqJ,KAAKsb,SAAS1G,MAAK,SAAS9O,EAAEyD,GACvC,OAAkB,GAAdzD,EAAE+O,UAAiBtL,EAAEsL,SAAW,EAAU,EAC1C/O,EAAE+O,SAAW,GAAmB,GAAdtL,EAAEsL,UAAuB,EAC3C/O,EAAE+O,SAAWtL,EAAEsL,UAAkB,EACjC/O,EAAE+O,SAAWtL,EAAEsL,SAAiB,EACjC/O,EAAEqT,QAAQC,cAAgB7P,EAAE4P,QAAQC,eAAuB,EAC3DtT,EAAEqT,QAAQC,cAAgB7P,EAAE4P,QAAQC,cAAsB,EACtD,KAERziB,EAAKA,KAAKqJ,KAAKsb,SAASrG,QAAUC,GAASA,EAAK,4BAA2B,GAC/D5O,EAAO,eAAe3P,EAAKA,KAAKqJ,KAAKsb,UACjDhV,EAAO,wBAAwB3P,EAAKA,KAAKqJ,KAAKgV,YAClC1O,EAAO,uBAAuB,IAG3Ce,EAAOtF,SAASpL,EAAKA,SAIvB,mBAAmB,OAAC2P,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GAC1Cf,EAAO,0BAA0B,GAC3B,EAAAR,EAAM2V,KAAKvS,EAAY,mCAAmC,CAAEqf,OAAQlhB,EAAOod,KAAMzc,QAASF,EAAMsC,gBAAiBoe,iBAAkBnhB,EAAOohB,mBACzI1tB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,SACnB6H,EAAMrH,WAAWkoB,2CAA8C7gB,EAAMrH,WAAWkoB,0CAAkF,GAArChyB,EAAKA,KAAKqJ,KAAKiJ,YAAY9R,QAA0C,MAA3BkQ,EAAOohB,mBAChL9xB,EAAKA,KAAKqJ,KAAKiJ,YAAY5Q,OAAO,EAAE,EAAE,CACrCuwB,QAAQ,EACRC,SAAU,EACVC,YAAa,EACbxZ,UAAWxH,EAAMrH,WAAWsoB,aAC5B1P,OAAQ,IACRsG,MAAO,EACPqJ,cAAe,GACfC,WAAY,kBACZ3P,aAAc,uCACd1J,UAAU,IAGAtJ,EAAO,kBAAkB3P,EAAKA,KAAKqJ,QAE/CmG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,IAC9GiL,EAAO,kBAAkB,CACxB2C,YAAa,GACbD,WAAY,MAGd3B,EAAOtF,SAASpL,EAAKA,MACrB2P,EAAO,0BAA0B,MAInC,sBAAsB,OAACA,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACvC,EAAAvB,EAAM2V,KAAKvS,EAAY,4CAA4C,CAAEigB,WAAY9hB,EAAO8hB,WAAYnhB,QAASF,EAAMsC,gBAAiB8e,aAAc7hB,EAAO6hB,eACxJnuB,KAAKpE,IACsB,WAApBA,EAAKA,KAAKsJ,QAEtBkG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE/GgM,EAAOtF,SAASpL,EAAKA,SAIvB,uBAAuB,OAAC2P,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACxC,EAAAvB,EAAM2V,KAAKvS,EAAY,6BAA6B,CAAEof,UAAWjhB,EAAOihB,UAAWC,OAAQlhB,EAAOod,KAAMzc,QAASF,EAAMsC,kBACtHrP,KAAKpE,IACEA,EAAKA,KAAKsJ,OAGvBoH,EAAOtF,SAASpL,EAAKA,SAIvB,gBAAgB,OAAC2P,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACT,GAA3BS,EAAM6K,mBACR7K,EAAM8K,+BAA+BwW,SAGtC9iB,EAAO,yBAAyB,GAChCwB,EAAM8K,+BAAiCxJ,EAAmB0e,SAC1D,EAAAhiB,EAAM2V,KAAKvS,EAAY,4BAA4B,CAClD4e,OAAQzgB,EAAOygB,OACfuB,aAAchiB,EAAOgiB,aACrB1N,MAAOtU,EAAOsU,MACdoM,UAAW1gB,EAAOod,KAClBzc,QAASX,EAAOW,SACf,CAACshB,YAAYxhB,EAAM8K,+BAA+B2W,QAAQxuB,KAAKpE,IAC/B,WAApBA,EAAKA,KAAKsJ,QAGtBkG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE/GgM,EAAOtF,SAASpL,EAAKA,MACrB2P,EAAO,yBAAyB,KACxBoZ,MAAMlkB,QAGhB,mBAAmB,OAAC8K,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACZ,GAA3BS,EAAM6K,mBACR7K,EAAM8K,+BAA+BwW,SAGtC9iB,EAAO,yBAAyB,GAChCwB,EAAM8K,+BAAiCxJ,EAAmB0e,SAC1D,EAAAhiB,EAAM2V,KAAKvS,EAAY,mCAAmC,CACzDyS,MAAOtU,EAAOsU,MACdoM,UAAW1gB,EAAOod,KAClBzc,QAASF,EAAMsC,iBACd,CAACkf,YAAYxhB,EAAM8K,+BAA+B2W,QAAQxuB,KAAKpE,IAChE2P,EAAO,yBAAyB,GACC,WAApB3P,EAAKA,KAAKsJ,QAGtBkG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE/GgM,EAAOtF,SAASpL,EAAKA,QACb+oB,MAAMlkB,QAGhB,mBAAmB,OAAC8K,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACZ,GAA3BS,EAAM6K,mBACR7K,EAAM8K,+BAA+BwW,SAEtC9iB,EAAO,yBAAyB,GAChCwB,EAAM8K,+BAAiCxJ,EAAmB0e,SAC1D,EAAAhiB,EAAM2V,KAAKvS,EAAY,gCAAgC,CACtDyS,MAAOtU,EAAOsU,MACd3T,QAASX,EAAOW,SACf,CAACshB,YAAYxhB,EAAM8K,+BAA+B2W,QAAQxuB,KAAKpE,IAC/B,WAApBA,EAAKA,KAAKsJ,QAEtBkG,EAAS,mBAAmB,CAACtK,QAAQlF,EAAKA,KAAKuK,QAAQ9B,MAAM,CAAC,mBAAmB,MAAM2H,MAAM,SAAS1L,QAAQ,MAE/GgM,EAAOtF,SAASpL,EAAKA,MACrB2P,EAAO,yBAAyB,KACxBoZ,MAAMlkB,QAGhB,eAAe,OAAC8K,EAAM,MAACwB,EAAK,SAAC3B,GAAUkB,GACX,IAAxBS,EAAMrH,WAAW4d,MACnBJ,KAAK,QAAS,WAAY,CACzB,eAAkB5W,EAAOmiB,iBACzB,MAAUniB,EAAOoiB,WACjB,SAAY3hB,EAAMrH,WAAWipB,oBAC7B,MAASriB,EAAOsiB,SAChB,SAAYtiB,EAAOpH,OACnB,cAAiBoH,EAAOuiB,YACxB,MAASviB,EAAOwiB,UAChB,OAAU,EACV,SAAYxiB,EAAOyiB,SACnB,QAAWhiB,EAAMrH,WAAW4d,QAGK,IAA/BvW,EAAMrH,WAAW2L,cACnB6R,KAAK,QAAS,WAAY,CACzB,eAAkB5W,EAAOmiB,iBACzB,MAAUniB,EAAOoiB,WACjB,MAASpiB,EAAO0iB,QAChB,SAAY1iB,EAAOpH,OACnB,MAASoH,EAAOwiB,UAChB,cAAiBxiB,EAAOuiB,YACxB,OAAU,EACV,QAAW9hB,EAAMrH,WAAW2L,eAe/B6R,KAAK,QAAS,WAAY,CACzB,eAAkB5W,EAAOmiB,iBACzB,MAAUniB,EAAOoiB,WACjB,SAAY3hB,EAAMrH,WAAWipB,oBAC7B,MAASriB,EAAO2iB,gBAChB,SAAY3iB,EAAOpH,OACnB,MAASoH,EAAOwiB,UAChB,OAAU/hB,EAAMrH,WAAWwpB,YAC3B,cAAiB5iB,EAAOuiB,YACxB,OAAU,EACV,SAAYviB,EAAOyiB,SACnB,QAAWhiB,EAAMrH,WAAWyd,eAEE,IAA5BpW,EAAMrH,WAAWyL,WACnBqS,IAAI,QAAS,WACZ,CACA,cAAiBlX,EAAOmiB,iBACxB,MAASniB,EAAOoiB,WAChB,SAAY3hB,EAAMrH,WAAWC,SAC7B,SAAY2G,EAAO6iB,QACnB,aAAgB7iB,EAAOuiB,gBASZ,OACX9hB,MAAK,EACL0T,UACAjH,YACA6F,QAAO,GCz2GX,aAAIhS,IAAI,QAEO,UAAI,OAAK+hB,MAAM,CAC1BzyB,QAAS,CAELqQ,SAAA,K,sDCLR,aAAIK,IAAI,QAGR,aAAIA,IAAI,KAGR,aAAIA,IAAI,KAER,aAAIkc,OAAO8F,eAAgB,EAE3BzsB,OAAO,iBAAmB,IAAI,aAAI,CAChC0K,OAAA,EACAgiB,QACAjsB,OAAQ,SAAUksB,GAAK,OAAOA,EAAEC,MAC/BC,OAAO,QAIVC,MAAMpzB,UAAUqzB,QAAU,SAASC,GAC/B,IAAI,IAAI1zB,EAAE,EAAGA,EAAIqH,KAAKnH,OAAQF,IAC1B,GAAG0zB,EAASrsB,KAAKrH,IAAK,OAAO,EAEjC,OAAO,GAKXwzB,MAAMpzB,UAAUuzB,eAAiB,SAASC,EAASF,GAC/C,OAAKrsB,KAAKosB,QAAQC,KACdrsB,KAAK7G,KAAKozB,IACH,K,oCCnCf,yBAAgf,EAAG,G,oCCAnf,IAAIzsB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAACkG,UAAS,EAAKtD,GAAGlD,EAAIysB,cAAcC,SAAS1sB,EAAI0sB,UAAUxpB,GAAG,CAAC,MAAQ,SAASI,GAAQ,OAAOtD,EAAI2sB,YAAY,CAACvsB,EAAG,MAAM,CAACgB,YAAY,aAClPiF,EAAkB,GCMP,GACb5I,KAAM,WACNmvB,MAAO,CAAC,QAAQ,YAChB5lB,SAAU,CACNylB,cAAe,CACXruB,IAAK,WAAc,OAAO6B,KAAKzB,OAC/BquB,IAAK,SAASC,GACV7sB,KAAK0I,MAAM,QAASmkB,GACpB7sB,KAAK0I,MAAM,aAAa,CAACnK,MAAMsuB,OAI3C/kB,QAAS,CACL4kB,OAAQ,WACJ1sB,KAAKwsB,eAAiBxsB,KAAKwsB,iBCrB0J,I,wBCQ3L3iB,EAAY,eACd,EACA/J,EACAsG,GACA,EACA,KACA,WACA,MAIa,OAAAyD,E,6CCnBf,yBAAgiB,EAAG,G,kCCAniB,yBAAgiB,EAAG,G,kCCAniB,IAAI/J,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC6G,QAAO,IAAO,CAAC/G,EAAG,MAAM,CAACgB,YAAY,WAAW,CAAEpB,EAAI+sB,cAAc,EAAG3sB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAACpB,EAAI+B,GAAI/B,EAAS,OAAE,SAASpE,GAAM,MAAO,CAAEoE,EAAIgtB,iBAAiBhtB,EAAIitB,iBAAiBrxB,GAAOwE,EAAG,MAAM,CAACgB,YAAY,SAAS,CAAS,IAAPxF,EAAUwE,EAAG,OAAO,CAACJ,EAAIsB,GAAG,cAActB,EAAIuB,KAAa,IAAP3F,EAAUwE,EAAG,OAAO,CAACJ,EAAIsB,GAAG,cAActB,EAAIuB,OAAOvB,EAAIuB,KAAKvB,EAAI+B,GAAI/B,EAAU,QAAE,SAAS6W,EAAKyD,GAAO,OAAQzD,EAAKjb,OAAOA,GAAY,GAANA,EAASwE,EAAG,MAAM,CAACtB,IAAIkB,EAAIktB,cAActxB,GAAM0e,EAAMha,MAAM,CAACuW,MAAK,GAAM3T,GAAG,CAAC,MAAQ,SAASI,GAAQuT,EAAKve,KAAK8nB,aAAavJ,EAAKve,KAAK8nB,eAAe,CAAc,IAAZvJ,EAAKjb,KAAUwE,EAAG,MAAM,CAACgB,YAAY,QAAQL,MAAM,CAAE,mBAAmB,OAAO8V,EAAKve,KAAKmiB,QAAQhP,IAAI,OAAQzL,EAAIuB,KAAkB,IAAZsV,EAAKjb,KAAUwE,EAAG,MAAM,CAACgB,YAAY,QAAQL,MAAM,CAAE,mBAAmB,OAAOf,EAAIoC,WAAW+qB,kBAAkB,OAAQntB,EAAIuB,KAAkB,IAAZsV,EAAKjb,KAAUwE,EAAG,MAAM,CAACgB,YAAY,QAAQL,MAAM,CAAE,mBAAmB,OAAO8V,EAAKve,KAAKmgB,QAAQ2U,WAAW,OAAQptB,EAAIuB,KAAkB,IAAZsV,EAAKjb,KAAUwE,EAAG,MAAM,CAACgB,YAAY,mBAAmB,CAAChB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKmiB,QAAQhd,SAAS2C,EAAG,MAAM,CAACqC,WAAW,CAAC,CAAChF,KAAK,OAAOiF,QAAQ,SAASlE,MAAOqY,EAAKve,KAAgB,YAAEsK,WAAW,0BAA0BxB,YAAY,WAAW,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKmiB,QAAQtI,YAAY/R,EAAG,MAAM,CAACgB,YAAY,WAAW,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKoiB,WAAWjd,WAAWuC,EAAIuB,KAAkB,IAAZsV,EAAKjb,KAAUwE,EAAG,MAAM,CAACgB,YAAY,oBAAoB,CAAChB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAAEyV,EAAKve,KAAKqiB,aAAiB,KAAEva,EAAG,OAAO,CAACJ,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKqiB,aAAazJ,MAAM,SAASlR,EAAIuB,KAAKnB,EAAG,OAAO,CAACgB,YAAY,SAAS,CAACpB,EAAIsB,GAAG,WAAWlB,EAAG,OAAO,CAACgB,YAAY,SAAS,CAAChB,EAAG,OAAO,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoC,WAAWC,aAAarC,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKqiB,aAAa0S,cAAexW,EAAKve,KAAKqiB,aAAa2S,aAAazW,EAAKve,KAAKqiB,aAAa0S,UAAWjtB,EAAG,OAAO,CAACgB,YAAY,SAAS,CAACpB,EAAIsB,GAAG,OAAOlB,EAAG,OAAO,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoC,WAAWC,aAAarC,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKqiB,aAAa2S,gBAAgBttB,EAAIuB,SAASnB,EAAG,MAAM,CAACgB,YAAY,WAAW,CAACpB,EAAIsB,GAAG,WAAWlB,EAAG,OAAO,CAACgB,YAAY,SAAS,CAAChB,EAAG,OAAO,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoC,WAAWC,aAAarC,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIutB,qBAAqB1W,GAAMtU,QAAQ,SAA8B,MAApBsU,EAAKve,KAAKk1B,SAAgBptB,EAAG,MAAM,CAACgB,YAAY,UAAUC,YAAY,CAAC,YAAY,UAAU,CAACrB,EAAIsB,GAAG,yBAAiD,IAAvBuV,EAAKve,KAAKk1B,SAASpjB,GAAQhK,EAAG,OAAO,CAACA,EAAG,IAAI,CAACJ,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKk1B,SAASpjB,SAAShK,EAAG,OAAO,CAACJ,EAAIsB,GAAG,SAAStB,EAAIsB,GAAG,OAAOtB,EAAIuB,OAAOvB,EAAIuB,KAAkB,IAAZsV,EAAKjb,KAAUwE,EAAG,MAAM,CAACgB,YAAY,mBAAmB,CAAChB,EAAG,MAAM,CAACgB,YAAY,QAAQ,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKmgB,QAAQgV,UAAUrtB,EAAG,MAAM,CAACgB,YAAY,WAAW,CAACpB,EAAIsB,GAAG,cAAclB,EAAG,IAAI,CAACJ,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKoP,aAAa1H,EAAIsB,GAAG,cAAclB,EAAG,OAAO,CAACgB,YAAY,SAAS,CAAChB,EAAG,OAAO,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoC,WAAWC,aAAarC,EAAIsB,GAAGtB,EAAIkC,GAAG2U,EAAKve,KAAKmgB,QAAQtB,IAAI5U,QAAQ,WAAWvC,EAAIuB,KAAKnB,EAAG,MAAM,CAACgB,YAAY,SAAS8B,GAAG,CAAC,MAAQ,SAASI,GAAiC,OAAzBA,EAAOoqB,kBAAyB1tB,EAAI2tB,qBAAqB9W,MAAS,CAACzW,EAAG,IAAI,CAACgB,YAAY,qBAAqBpB,EAAIuB,QAAe,IAAP3F,GAAUoE,EAAIitB,iBAAiBrxB,GAAOwE,EAAG,MAAM,CAACgB,YAAY,YAAY,CAAChB,EAAG,SAAS,CAAC8C,GAAG,CAAC,MAAQ,SAASI,GAAQ,OAAOtD,EAAI4tB,2BAA2B,CAAC5tB,EAAIsB,GAAG,2BAA2BtB,EAAIuB,UAAS,GAAGvB,EAAIuB,KAAKnB,EAAG,MAAM,CAACgB,YAAY,gBAAgB,CAAsB,IAApBpB,EAAI+sB,cAAmB3sB,EAAG,OAAO,CAACgB,YAAY,aAAa,CAACpB,EAAIsB,GAAG,qBAAqBtB,EAAIuB,KAAMvB,EAAI+sB,cAAc,EAAG3sB,EAAG,OAAO,CAACgB,YAAY,aAAa,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAI+sB,eAAe,SAAU/sB,EAAI+sB,cAAc,EAAG3sB,EAAG,OAAO,CAACJ,EAAIsB,GAAG,OAAOtB,EAAIuB,KAAKvB,EAAIsB,GAAG,OAAOlB,EAAG,OAAO,CAACA,EAAG,OAAO,CAACgB,YAAY,YAAY,CAACpB,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAIoC,WAAWC,aAAarC,EAAIsB,GAAGtB,EAAIkC,GAAGlC,EAAI6tB,MAAMtrB,QAAQ,SAASvC,EAAIuB,KAAMvB,EAAI+sB,cAAc,EAAG3sB,EAAG,SAAS,CAACE,MAAM,CAACosB,SAA6B,IAApB1sB,EAAI+sB,eAAmB7pB,GAAG,CAAC,MAAQ,SAASI,GAAQ,OAAOtD,EAAI2F,kBAAkB,CAAC3F,EAAIsB,GAAG,cAActB,EAAIuB,YACz8H8E,EAAkB,G,6CCqEP,GACX5I,KAAM,SACNmvB,MAAO,CACH,WAEJ,OACI,MAAO,CACHkB,MAAO,CAAC,EAAE,EAAE,KAGpB9mB,SAAU,IAAOC,OACb,eAAW,CACPK,SAAU,eACVZ,YAAa,kBACbS,OAAQ,aACR3G,SAAU,eACV2Q,SAAU,eACV/O,WAAY,iBACZ8N,cAAe,oBACf/K,aAAc,qBAElB,CACI,gBACI,IAAIqC,EAAgB,EAEpB,OADAvH,KAAKkH,OAAO1H,IAAMgI,IAAQD,GAA0B,GAATC,EAAE7L,KAAW6L,EAAEnP,KAAKoP,SAAW,IACnEF,GAEX,aAEI,OAAOvH,KAAKkR,UAEhB,kBACI,GAAGlR,KAAKkH,OAAOrO,OAAS,EAAG,OAAO,EAGlC,IAFA,IAAIi1B,EAAM9tB,KAAKkH,OAAO,GAAGvL,KACrBoyB,GAAM,EACFp1B,EAAE,EAAGA,EAAEqH,KAAKkH,OAAOrO,OAAQF,IAC/B,GAA0B,GAAvBqH,KAAKkH,OAAOvO,GAAGgD,MACV,GAALmyB,GAAUA,GAAO9tB,KAAKkH,OAAOvO,GAAGgD,KAAM,CACrCoyB,GAAM,EACN,MAGR,OAAOA,GAEX,QAEI,IADA,IAAIH,EAAQ,EACJj1B,EAAE,EAAGA,EAAEqH,KAAKkH,OAAOrO,OAAQF,IAEJ,IAAxBqH,KAAKkH,OAAOvO,GAAGgD,OAAYiyB,GAAS5tB,KAAKkH,OAAOvO,GAAGN,KAAKmgB,QAAQtB,IAAMlX,KAAKkH,OAAOvO,GAAGN,KAAKoP,UAEjG,OAAOmmB,KAInB9lB,QAAS,CACL,qBAAsB8O,GAClB,OAAOA,EAAKve,KAAKqiB,aAAa2S,aAElC,cAAe1xB,GACX,OAAgB,IAATA,EAAa,UAAsB,IAATA,EAAa,WAAa,WAE/D,iBAAkBA,GACd,MAAuE,oBAAzDqE,KAAKkH,OAAOuQ,MAAK,SAASjQ,GAAG,OAAOA,EAAE7L,OAASA,MAEjE,wBACIqE,KAAK0I,MAAM,gBAAgB,IAC3B1I,KAAKguB,gBAET,eACIhuB,KAAKqH,SAASqB,MAAM,cAAa,GAM7B1I,KAAKkF,cAAclF,KAAK4H,OAAOI,OAAO,kBAAkB,YAC5DhI,KAAK0I,MAAM,eAAe,KAE9B,eACI1I,KAAK4H,OAAOC,SAAS,eAAe7H,KAAKkR,WAE7C,qBAAsB0F,GAClBA,EAAKve,KAAKoP,WACe,GAAtBmP,EAAKve,KAAKoP,WACTzH,KAAK4H,OAAOC,SAAS,uBAAuB+O,GAC5C5W,KAAK0I,MAAM,oBAAoB,QC3JgJ,I,wBCQ3LmB,EAAY,eACd,EACA/J,EACAsG,GACA,EACA,KACA,WACA,MAIa,OAAAyD,E","file":"js/app.5b3df809.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\": 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\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"book~checkout~courses~giftcards~subscriptions\":\"book~checkout~courses~giftcards~subscriptions\",\"book~user\":\"book~user\",\"book\":\"book\",\"checkout~courses~giftcards\":\"checkout~courses~giftcards\",\"checkout\":\"checkout\",\"courses\":\"courses\",\"giftcards\":\"giftcards\",\"subscriptions\":\"subscriptions\",\"user\":\"user\",\"contact\":\"contact\",\"reviews\":\"reviews\",\"shop\":\"shop\"}[chunkId]||chunkId) + \".\" + {\"book~checkout~courses~giftcards~subscriptions\":\"a145f974\",\"book~user\":\"1b7577f0\",\"book\":\"d9d00522\",\"checkout~courses~giftcards\":\"aafa9f57\",\"checkout\":\"f0e3c50a\",\"courses\":\"5db9837a\",\"giftcards\":\"41bad034\",\"subscriptions\":\"d29b3c9b\",\"user\":\"88bc17d8\",\"contact\":\"057d65ce\",\"reviews\":\"12c36bbb\",\"shop\":\"67b26982\"}[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 = {\"book~checkout~courses~giftcards~subscriptions\":1,\"book\":1,\"checkout~courses~giftcards\":1,\"checkout\":1,\"courses\":1,\"giftcards\":1,\"subscriptions\":1,\"user\":1,\"contact\":1,\"reviews\":1,\"shop\":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/\" + ({\"book~checkout~courses~giftcards~subscriptions\":\"book~checkout~courses~giftcards~subscriptions\",\"book~user\":\"book~user\",\"book\":\"book\",\"checkout~courses~giftcards\":\"checkout~courses~giftcards\",\"checkout\":\"checkout\",\"courses\":\"courses\",\"giftcards\":\"giftcards\",\"subscriptions\":\"subscriptions\",\"user\":\"user\",\"contact\":\"contact\",\"reviews\":\"reviews\",\"shop\":\"shop\"}[chunkId]||chunkId) + \".\" + {\"book~checkout~courses~giftcards~subscriptions\":\"71010f1e\",\"book~user\":\"31d6cfe0\",\"book\":\"b419cb7f\",\"checkout~courses~giftcards\":\"b363fca3\",\"checkout\":\"32260c06\",\"courses\":\"9abb4d60\",\"giftcards\":\"95ec9f69\",\"subscriptions\":\"e833882e\",\"user\":\"cf783cdf\",\"contact\":\"afafa955\",\"reviews\":\"6ad5eaab\",\"shop\":\"d81744be\"}[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\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{mobile:_vm.isMobile,desktop:!_vm.isMobile,forcedbasket:_vm.forcedBasket&&_vm.showBasket,header:_vm.headerConfig!='none'},style:({'background-image':_vm.bgImage}),attrs:{\"id\":\"app\"}},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.initialising&&_vm.systemError=='')?_c('div',{staticClass:\"init\"},[_c('div',[_c('i',{staticClass:\"far fa-circle-notch fa-spin\"}),(_vm.klarnaCallbackFlow)?_c('div',{staticStyle:{\"margin-top\":\"20px\",\"font-size\":\"20px\",\"width\":\"100%\"}},[_c('b',[_vm._v(\"Thank you for paying with Klarna.\")]),_c('br'),_c('br'),_vm._v(\"Let us finish your transaction for you.\")]):_vm._e()])]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.initialising&&_vm.klarnaCallbackFlow)?_c('div',{staticClass:\"dialog\"},[_c('div',{staticClass:\"innerdialog klarna postpayment\"},[_c('div',{staticClass:\"status\",class:{success:_vm.prepopulatedKlarna.Data.Status,fail:!_vm.prepopulatedKlarna.Data.Status}},[_vm._v(\"Payment \"),(_vm.prepopulatedKlarna.Data.Status)?_c('span',[_vm._v(\"success\")]):_c('span',[_vm._v(\"fail\")]),_vm._v(\"!\")]),_c('div',{staticClass:\"overflower\"},[(_vm.prepopulatedKlarna.Data.Status&&_vm.prepopulatedKlarna.Data.ThankYouMessage=='')?_c('div',{staticClass:\"thankyou\"},[_vm._v(\"Thank you for paying with Klarna.\")]):_vm._e(),(!_vm.prepopulatedKlarna.Data.Status)?_c('div',{staticClass:\"thankyou\"},[_vm._v(\"Unfortunately there was a problem with the payment.\")]):_vm._e(),_vm._l((_vm.prepopulatedKlarna.Entries),function(entry){return (entry.class=='course'&&_vm.prepopulatedKlarna.Data.Status)?_c('div',{staticClass:\"thankyou\"},[_vm._v(\"Your purchase of the course \"),_c('b',{domProps:{\"innerHTML\":_vm._s(entry.description)}}),_vm._v(\" for \"),_c('b',[_c('span',{staticClass:\"currency\"},[_vm._v(_vm._s(_vm.parameters.Currency))]),_vm._v(_vm._s(entry.price.toFixed(2)))]),_vm._v(\" is complete. We have sent you an email with the details.\")]):_vm._e()}),(_vm.prepopulatedKlarna.Entries[0].class=='giftcard'&&_vm.prepopulatedKlarna.Data.Status)?_c('div',{staticClass:\"thankyou\"},[_vm._v(\"Your giftcard(s) will be sent out shortly.\")]):_vm._e(),(_vm.prepopulatedKlarna.Data.ThankYouMessage!='')?_c('div',{staticClass:\"thankyou\",domProps:{\"innerHTML\":_vm._s(_vm.prepopulatedKlarna.Data.ThankYouMessage)}}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(((_vm.prepopulatedKlarna.isCourse==false)||(_vm.prepopulatedKlarna.Data.Status==false))&&(_vm.prepopulatedKlarna.Entries[0].class!='product')),expression:\"((prepopulatedKlarna.isCourse==false)||(prepopulatedKlarna.Data.Status==false))&&(prepopulatedKlarna.Entries[0].class!='product')\"}],staticClass:\"details\"},_vm._l((_vm.prepopulatedKlarna.Entries),function(entry){return _c('div',{staticClass:\"entry\",class:entry.class},[(entry.class=='error')?_c('div',{staticStyle:{\"color\":\"red\"}},[_c('b',{domProps:{\"innerHTML\":_vm._s(entry.Message)}})]):_vm._e(),(entry.class=='giftcard')?_c('div',[_c('b',{domProps:{\"innerHTML\":_vm._s(entry.itemsdescription)}})]):_vm._e(),(entry.class=='giftcard')?_c('div',{staticStyle:{\"margin-top\":\"10px\"}},[_c('div',[_vm._v(\"This giftcard is for \"),(entry.ToName!='')?_c('span',[_c('b',[_vm._v(_vm._s(entry.ToName))])]):_c('span',[_vm._v(\"you\")]),_vm._v(\".\")])]):_vm._e(),(entry.class=='service')?_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('b',{domProps:{\"innerHTML\":_vm._s(entry.servicedescription)}}),_c('b',[_c('span',{staticClass:\"currency\"},[_vm._v(_vm._s(_vm.parameters.Currency))]),_vm._v(_vm._s(entry.servicePrice.toFixed(2)))])]):_vm._e()])}),0)],2),_c('div',{staticClass:\"continue\"},[_c('button',{on:{\"click\":_vm.continueToBP}},[_vm._v(\"Continue\")])])])]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.loading)?_c('div',{staticClass:\"loader\"},[_c('i',{staticClass:\"far fa-circle-notch fa-spin\"})]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.showMissingDetails)?_c('div',{attrs:{\"id\":\"missingdetails\"}},[_c('div',{staticClass:\"panel\"},[_c('div',{staticClass:\"title\"},[_c('span',[_vm._v(\"Missing details\")])]),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"lowerinfo\"},[_vm._v(\"Please provide the missing details to access your account.\")]),(_vm.missingDetailsError)?_c('div',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.missingDetailsError))]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.missingdetails.Password),expression:\"missingdetails.Password\"}],attrs:{\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.missingdetails.Password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.missingdetails, \"Password\", $event.target.value)}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.missingdetails.Mobile),expression:\"missingdetails.Mobile\"}],attrs:{\"placeholder\":\"Mobile\"},domProps:{\"value\":(_vm.missingdetails.Mobile)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.missingdetails, \"Mobile\", $event.target.value)}}}),_c('div',{staticClass:\"consent\"},[_c('div',{staticClass:\"info\"},[_vm._v(\"We would love to send you occasional salon news and promotions. To join our mailing list, simply tick the relevent boxes below. You can unsubscribe at any time from your profile settings.\")]),_c('div',{staticClass:\"left\"},[_c('label',[_vm._v(\"Email\")]),_c('dkswitch',{model:{value:(_vm.missingdetails.EmailOptout),callback:function ($$v) {_vm.$set(_vm.missingdetails, \"EmailOptout\", $$v)},expression:\"missingdetails.EmailOptout\"}})],1),_c('div',{staticClass:\"right\"},[_c('label',[_vm._v(\"SMS\")]),_c('dkswitch',{model:{value:(_vm.missingdetails.SmsOptout),callback:function ($$v) {_vm.$set(_vm.missingdetails, \"SmsOptout\", $$v)},expression:\"missingdetails.SmsOptout\"}})],1)]),_c('div',{staticClass:\"controls\"},[_c('button',{staticClass:\"submit\",on:{\"click\":function($event){return _vm.missingdetailssubmit()}}},[_vm._v(\"SUBMIT\")])])])])]):_vm._e()]),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.initialising&&_vm.systemError!='')?_c('div',{staticClass:\"init error\"},[_c('div',{staticClass:\"warning\"},[_c('div',{staticClass:\"triangle\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle\"})]),_c('div',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.systemError))])])]):_vm._e()]),(!_vm.initialising&&_vm.systemError=='')?_c('div',{class:{menuopen:_vm.menuOpen},attrs:{\"id\":\"nav\"}},[_c('a',{attrs:{\"id\":\"logo\",\"href\":_vm.parameters.websitelink,\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":_vm.logoImage}})]),(_vm.parameters.websitelink!='')?_c('a',{attrs:{\"id\":\"websitelink\",\"href\":_vm.parameters.websitelink,\"target\":\"_blank\"}},[_vm._v(\"Home\")]):_vm._e(),(_vm.showNavEntry('contact'))?_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks),expression:\"showNavLinks\"}],attrs:{\"to\":\"/contact\"}},[_vm._v(\"Contact\")]):_vm._e(),(_vm.showNavEntry('courses'))?_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks&&_vm.chosenSalon.ShowCourses),expression:\"showNavLinks&&chosenSalon.ShowCourses\"}],attrs:{\"to\":\"/courses\"}},[_vm._v(\"Courses\")]):_vm._e(),(_vm.showNavEntry('subscriptions'))?_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks&&_vm.chosenSalon.ShowSubscriptions),expression:\"showNavLinks&&chosenSalon.ShowSubscriptions\"}],attrs:{\"to\":\"/subscriptions\"}},[_vm._v(\"Subscriptions\")]):_vm._e(),(_vm.showNavEntry('giftcards'))?_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks&&_vm.parameters.OnlineGCSaleType!=0),expression:\"showNavLinks&¶meters.OnlineGCSaleType!=0\"}],attrs:{\"to\":\"/giftcards\"}},[_vm._v(\"Gift cards\")]):_vm._e(),(_vm.showNavEntry('reviews'))?_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks&&_vm.parameters.EnableReviews),expression:\"showNavLinks&¶meters.EnableReviews\"}],attrs:{\"to\":\"/reviews\"}},[_vm._v(\"Reviews\")]):_vm._e(),(_vm.showNavEntry('shop'))?_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks&&_vm.parameters.SellProductsOnline),expression:\"showNavLinks&¶meters.SellProductsOnline\"}],attrs:{\"to\":\"/shop\"}},[_vm._v(\"Shop\")]):_vm._e(),(_vm.showNavEntry('book'))?_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks&&_vm.parameters.Showbook),expression:\"showNavLinks&¶meters.Showbook\"}],attrs:{\"to\":\"/book\"}},[_vm._v(_vm._s(_vm.chosenSalon.BookLabel))]):_vm._e(),(_vm.showNavEntry('shop'))?_c('button',{class:{basketbutton:true,oncheckout:_vm.onCheckout,on:_vm.showBasket,bounce:_vm.bounceBasket},on:{\"click\":function($event){_vm.showBasket=!_vm.showBasket}}},[_c('i',{staticClass:\"fas fa-shopping-basket\"}),_c('i',{staticClass:\"fal fa-times\"}),(!_vm.onCheckout)?_c('div',{staticClass:\"bubble\"},[_vm._v(_vm._s(_vm.basketItemCount))]):_vm._e()]):_vm._e(),_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNavLinks),expression:\"showNavLinks\"}],class:{user:true,large:_vm.isAuthorised},attrs:{\"to\":\"/user\"}},[(!_vm.isAuthorised||(_vm.isAuthorised&&_vm.userDetails.Clientimage==''))?_c('i',{staticClass:\"fas fa-user-circle\"}):_c('div',{style:({'background-image':'url('+_vm.userDetails.Clientimage+')'})})]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showNavLinks),expression:\"!showNavLinks\"}],staticClass:\"fnb\",on:{\"click\":function($event){return _vm.toggleMenu()}}},[_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.menuOpen),expression:\"!menuOpen\"}],staticClass:\"fas fa-bars\"}),_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.menuOpen),expression:\"menuOpen\"}],staticClass:\"fas fa-times\"})])],1):_vm._e(),(!_vm.initialising&&_vm.systemError=='')?_c('div',{class:_vm.contentClasses,attrs:{\"id\":\"content\"}},[_c('router-view',{key:_vm.$route.fullPath}),(_vm.showBasket)?_c('basket',{on:{\"resetservices\":function($event){return _vm.switchToServices()},\"gotocheckout\":function($event){return _vm.goToCheckout()}}}):_vm._e()],1):_vm._e(),(!_vm.initialising&&_vm.systemError=='')?_c('div',{class:{menuopen:_vm.menuOpen},attrs:{\"id\":\"smallnav\"}},[(_vm.showNavEntry('contact'))?_c('router-link',{attrs:{\"to\":\"/contact\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_vm._v(\"Contact\")]):_vm._e(),(_vm.chosenSalon.ShowCourses&&_vm.showNavEntry('courses'))?_c('router-link',{attrs:{\"to\":\"/courses\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_vm._v(\"Courses\")]):_vm._e(),(_vm.chosenSalon.ShowSubscriptions&&_vm.showNavEntry('subscriptions'))?_c('router-link',{attrs:{\"to\":\"/subscriptions\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_vm._v(\"Subscriptions\")]):_vm._e(),(_vm.parameters.OnlineGCSaleType!=0&&_vm.showNavEntry('giftcards'))?_c('router-link',{attrs:{\"to\":\"/giftcards\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_vm._v(\"Gift cards\")]):_vm._e(),(_vm.parameters.EnableReviews&&_vm.showNavEntry('reviews'))?_c('router-link',{attrs:{\"to\":\"/reviews\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_vm._v(\"Reviews\")]):_vm._e(),(_vm.parameters.SellProductsOnline&&_vm.showNavEntry('shop'))?_c('router-link',{attrs:{\"to\":\"/shop\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_vm._v(\"Shop\")]):_vm._e(),(_vm.parameters.Showbook&&_vm.showNavEntry('book'))?_c('router-link',{attrs:{\"to\":\"/book\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_vm._v(_vm._s(_vm.chosenSalon.BookLabel))]):_vm._e(),_c('router-link',{staticClass:\"user\",attrs:{\"to\":\"/user\"},nativeOn:{\"click\":function($event){return _vm.toggleMenu()}}},[_c('i',{staticClass:\"fas fa-user\"})])],1):_vm._e(),(_vm.showDebug)?_c('div',{staticStyle:{\"position\":\"fixed\",\"bottom\":\"0\",\"left\":\"0\",\"background-color\":\"rgba(0,0,0,0.75)\",\"padding\":\"10px\"},attrs:{\"id\":\"debugsection\"}},[_c('button',{on:{\"click\":_vm.DEBUG_toggleService}},[_vm._v(\"TOGGLE SERVICES FIRST\")])]):_vm._e(),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.cookieConsentVisible),expression:\"cookieConsentVisible\"}],staticClass:\"cookieconsent\"},[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"Cookies\")]),_c('div',{staticClass:\"subtitle\"},[_vm._v(\"We use cookies to ensure you get the best experience possible.\")])]),_c('div',{staticClass:\"footer\"},[_c('button',{staticClass:\"moreinfo\",on:{\"click\":function($event){return _vm.getCookieInfo()}}},[_vm._v(\"More info\")]),_c('button',{staticClass:\"acceptcookies\",on:{\"click\":function($event){return _vm.acceptCookies()}}},[_vm._v(\"Ok\")])])])]),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.notification!=null)?_c('div',{staticClass:\"notification\",style:(_vm.notification.style)},[_c('div',{staticClass:\"message\",domProps:{\"innerHTML\":_vm._s(_vm.notification.message)}}),(_vm.notification.forgotpwd)?_c('button',{staticStyle:{\"margin-right\":\"10px\"},on:{\"click\":_vm.redirectToForgotPassword}},[_vm._v(\"SUBMIT\")]):_vm._e(),(_vm.notification.forgotpwd)?_c('button',{on:{\"click\":_vm.closeNotification}},[_vm._v(\"CANCEL\")]):_vm._e(),(_vm.notification.timeout==0&&!_vm.notification.forgotpwd)?_c('button',{on:{\"click\":_vm.closeNotification}},[_vm._v(_vm._s(_vm.notification.buttonLabel))]):_vm._e()]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6632c3e0&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport Router from 'vue-router'\n//import Home from './views/Home.vue'\n//import Giftcards from './views/Giftcards.vue'\n//import Reviews from './views/Reviews.vue'\n//import Shop from './views/Shop.vue'\n//import Book from './views/Book.vue'\n//import User from './views/User.vue'\n//import Contact from './views/Contact.vue'\n\nVue.use(Router);\n\nvar router = new Router({\n mode: \"abstract\",\n routes: [\n {\n path: '/',\n name: 'home',\n redirect: \"/contact\"\n },\n {\n path: '/contact',\n name: 'contact',\n component: function () {\n //return import(/* webpackChunkName: \"contact\" */ './views/Contact.vue')\n return import(/* webpackChunkName: \"contact\" */ './views/Contact2.vue')\n },\n beforeRouteEnter(to, from, next) {\n this.$store.dispatch(\"removeTemporaryData\",{name:\"book_selected_services\"});\n }\n },\n {\n path: '/checkout',\n name: 'checkout',\n component: function () {\n return import(/* webpackChunkName: \"checkout\" */ './views/Checkout.vue')\n },\n beforeRouteEnter(to, from, next) {\n this.$store.dispatch(\"removeTemporaryData\",{name:\"book_selected_services\"});\n }\n },\n {\n path: '/giftcards',\n name: 'giftcards',\n //component: Giftcards\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n // component: function () {\n // return import(/* webpackChunkName: \"giftcards\" */ './views/Giftcards.vue')\n // }\n component: function () {\n //return import(/* webpackChunkName: \"giftcards\" */ './views/Giftcards.vue')\n return import(/* webpackChunkName: \"giftcards\" */ './views/Giftcards2.vue')\n },\n beforeRouteEnter(to, from, next) {\n this.$store.dispatch(\"removeTemporaryData\",{name:\"book_selected_services\"});\n }\n },\n {\n path: '/subscriptions',\n name: 'subscriptions',\n //component: Giftcards\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n // component: function () {\n // return import(/* webpackChunkName: \"giftcards\" */ './views/Giftcards.vue')\n // }\n component: function () {\n //return import(/* webpackChunkName: \"giftcards\" */ './views/Giftcards.vue')\n return import(/* webpackChunkName: \"subscriptions\" */ './views/Subscriptions.vue')\n },\n beforeRouteEnter(to, from, next) {\n this.$store.dispatch(\"removeTemporaryData\",{name:\"book_selected_services\"});\n }\n },\n {\n path: '/courses',\n name: 'courses',\n component: function () {\n return import(/* webpackChunkName: \"courses\" */ './views/Courses.vue')\n },\n beforeRouteEnter(to, from, next) {\n this.$store.dispatch(\"removeTemporaryData\",{name:\"book_selected_services\"});\n }\n },\n {\n path: '/reviews',\n name: 'reviews',\n component: function () {\n return import(/* webpackChunkName: \"reviews\" */ './views/Reviews.vue')\n },\n beforeRouteEnter(to, from, next) {\n this.$store.dispatch(\"removeTemporaryData\",{name:\"book_selected_services\"});\n }\n },\n {\n path: '/shop',\n name: 'shop',\n component: function () {\n //return import(/* webpackChunkName: \"shop\" */ './views/Shop.vue')\n return import(/* webpackChunkName: \"shop\" */ './views/Shop2.vue')\n },\n beforeRouteEnter(to, from, next) {\n this.$store.dispatch(\"removeTemporaryData\",{name:\"book_selected_services\"});\n }\n },\n {\n path: '/book',\n name: 'book',\n //component: Book\n component: function () {\n //return import(/* webpackChunkName: \"book\" */ './views/Book3.vue')\n return import(/* webpackChunkName: \"book\" */ './views/Book4.vue')\n } \n },\n {\n path: '/user',\n name: 'user',\n component: function () {\n //return import(/* webpackChunkName: \"user\" */ './views/User.vue')\n return import(/* webpackChunkName: \"user\" */ './views/User2.vue')\n }\n }\n ],\n default: \"shop\"\n})\n\nrouter.beforeEach((to, from, next) => {\n if(from.name == \"book\" && BookingPortal.$store.state.settings.forcedTeammember != \"\") {\n BookingPortal.$store.commit(\"set_services\",[]);\n BookingPortal.$store.commit(\"set_teammembers\",{CategoryId:\"\",TeamMembers:[]});\n BookingPortal.$store.commit(\"set_forcedteammember\",\"\");\n }\n next();\n});\n\nrouter.replace(\"shop\");\n\nexport default router;\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport axios from 'axios'\r\nimport { isMobile } from 'mobile-device-detect';\r\nimport PHE from 'print-html-element';\r\nimport moment from \"moment\";\r\nimport tinycolor from \"tinycolor2\";\r\n\r\nVue.use(Vuex)\r\n\r\nconst localPrefix = location.host.indexOf(\"localhost\") != -1 ? \"http://localhost:53911\" : \"\";\r\n\r\nconst AxiosCancelRequest = axios.CancelToken;\r\n\r\nconst getCookie = function (name) {\r\n\tvar b = document.cookie.match('(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)');\r\n\treturn b ? b.pop() : null;\r\n}\r\n\r\nfunction getTenantInfoForRequest(overrideObject) {\r\n\r\n var info = {\r\n url: encodeURIComponent(window.location.hostname.replace(/^(https?:\\/\\/)?(www\\.)?/, '')),\r\n origin: encodeURIComponent(window.location.origin),\r\n page: encodeURIComponent(window.location.href),\r\n //tenantid: window.tenantURL.Parameters.id,\r\n Fid: \"\",\r\n salonid: state.selectedSalonID,\r\n userid: state.user.id\r\n }\r\n\r\n Object.assign(info,overrideObject);\r\n\r\n return info;\r\n}\r\n\r\nconst state = {\r\n\tVERSION_BASKET: \"1.2\",\r\n\tPHE: PHE,\r\n\ttrackingParamsString: \"\",\r\n\tloading: false,\r\n\tEventBus: new Vue(),\r\n stripeInstance: null,\r\n\tstripeClientSecret: \"pi_1DsTVZ2eZvKYlo2C8Hhr3cC3_secret_9rXRkcKUPf9Tg6tNsxd9XHCBB\",\r\n paymentsLoading: false,\r\n\tmakeBookingLoading: false,\r\n existingCardsLoading: false,\r\n existingcards: [],\r\n\tklarnaCallbackFlow: false,\r\n\tklarnaButtonText: \"Pay full with\",\r\n\tisKlarnaEnabled: false,\r\n settings: {\r\n bgImage: \"/img/bg-generic.png\",\r\n logoImage: \"https://www.greathairdressing.com/files/2019/01/logo-2019-e1548084901241.png\"\r\n },\r\n parameters: {\r\n AutoOpenDropDowns: true,\r\n BA_AndroidAPPLink: \"\",\r\n BA_AppName: \"\",\r\n BA_IOSAPPLink: \"\",\r\n BA_ShowChoiceBackgroundImages: true,\r\n BackgroundImageLink: \"https://saloniqimages.blob.core.windows.net/useruploads/BackgroundImages/CUC001.jpg\",\r\n CDIndex_Purchase: 2,\r\n CDIndex_Salon: 1,\r\n CDIndex_Teammember: 3,\r\n CDIndex_Widget: 5,\r\n ClickMeIndicatorText: \"Click Here for online Bookings\",\r\n ClickmeIndicator: \"1\",\r\n CloseText: \"Close\",\r\n CssLink: \"https://saloniqimages.blob.core.windows.net/useruploads/styles/CUC001_BookingWidget.min.CSS\",\r\n Currency: \"£\",\r\n CurrencyABB: \"GBP\",\r\n DenominationID: \"\",\r\n EnableCustomIndices: false,\r\n FBPixelID: \"\",\r\n GACrossTrackingDomains: \"\",\r\n GATrackingID: \"\",\r\n GATrackingIDSalonIQ: \"UA-159631881-1\",\r\n GCDefaultSalon: \"0f3bc7d0-38d4-10be-2960-1c6d71b3dc8a\",\r\n GCID: \"\",\r\n HideMemo: false,\r\n HidePromo: false,\r\n HostName: \"http://localhost:55576/\",\r\n ImagePath: \"https://saloniqimages.blob.core.windows.net/useruploads/../\",\r\n LoggedIn: true,\r\n LoginRequired: \"0\",\r\n LogoLink: \"https://saloniqimages.blob.core.windows.net/useruploads/Logo/CUC001.jpg\",\r\n Onesalon: \"\",\r\n OnlineBookingsEnabled: true,\r\n OnlineGCSaleType: 0,\r\n OpenText: \"Book Online Now\",\r\n PreLoadResources: 1,\r\n Prepopulate: 0,\r\n //PrepopulateData: {},\r\n RecaptchaEnabled: false,\r\n ShowPoints: true,\r\n ShowServiceSubCategories: false,\r\n ThankYouPage: \"\",\r\n closeLabelTextColor: \"rgba(0,0,0,1)\",\r\n er: \".a1.11-.13 .3 .3a .7 .10 1 1.2s: 1e7d7624-feb7-4950-a6be-5fbb1498ee394 localhost 4.4a 4.4e 4.4f5 5.5 CUC001 5.6 5.7 5.8 6 ap1 8 9 10 11 11.5 13 14 15 16 \",\r\n fp: \"1124070711000179\",\r\n gcspid: \"\",\r\n listGroupHeaderColor: \"rgba(182,182,182,1)\",\r\n listGroupHeaderTextColor: \"rgba(255,255,255,1)\",\r\n openLabelTextColor: \"rgba(0,0,0,1)\",\r\n path: \".a1.11-.13 .3 .3a .7 .10 1 1.2s: 1e7d7624-feb7-4950-a6be-5fbb1498ee394 localhost 4.4a 4.4e 4.4f5 5.5 CUC001 5.6 5.7 5.8 6 ap1 8 9 10 11 11.5 13 14 15 16 \",\r\n refreshedon: \"20200720221355\",\r\n sp: \"pk_test_24XUueypg1qQIFFlFkmnfxkP\",\r\n wrapperBackgroundColorLeft: \"#e8d4ff\",\r\n wrapperBackgroundColorRight: \"#e8d4ff\"\r\n },\r\n salons: [],\r\n loadingSalons: false,\r\n salonTeam: [],\r\n loadingSalonTeam: false,\r\n denominations: null,\r\n\tgiftcardbalance: null,\r\n\tcourses: null,\r\n\tsubscriptions: null,\r\n\tloadingQuestions: false,\r\n\tloadingUpgrades: false,\r\n\tquestionsdata: null,\r\n\tloadingWrongQuestions: false,\r\n products: [],\r\n\tcategories:[],\r\n\tbrands:[],\r\n\tsubbrands: [],\r\n\toriginalSalonID: \"\", // the salonid in the URL\r\n selectedSalonID: \"\",\r\n\tselectedSalon: {\r\n\t\tID: \"\",\r\n\t\tImageLink: \"\",\r\n\t\tName: \"Please select salon...\"\r\n\t},\r\n windowWidth: 0,\r\n urlParams: null,\r\n basketOn: false,\r\n\tbasket: [],\r\n initialising: true,\r\n loadingProducts: true,\r\n systemError: \"\",\r\n filters: [\r\n\t\t{\r\n id: \"recommendedproducts\",\r\n property: \"ProductId\",\r\n type: 4, // product id\r\n title: \"Recommended products\",\r\n selected: false,\r\n\t\t\tpublic: false,\r\n\t\t\toptions: [] // array of produc ids\r\n\t\t},\r\n\t\t{\r\n id: \"favourite\",\r\n property: \"Favourite\",\r\n type: 5, //\r\n title: \"Favourite products\",\r\n selected: false,\r\n\t\t\tpublic: true,\r\n\t\t\toptions: []\r\n\t\t},\r\n\t\t{\r\n id: \"price\",\r\n property: \"RRP\",\r\n type: 3, // min max user-defined\r\n title: \"Price\",\r\n selected: false,\r\n\t\t\tpublic: true,\r\n\t\t\toptions: [{\r\n\t id: 0,\r\n\t name: \"\",\r\n\t min: 0,\r\n\t max: 1000,\r\n\t selected: false\r\n\t \t}]\r\n\t\t},\r\n {\r\n id: \"producttype\",\r\n property: \"ProductTypeId\",\r\n type: 2, // string\r\n title: \"Type\",\r\n selected: false,\r\n\t\t\tpublic: true,\r\n selectedOptionName: \"\",\r\n selectedOptionID: \"\",\r\n options: [\r\n ]\r\n },\r\n {\r\n id: \"category\",\r\n property: \"ProductCategoryId\",\r\n type: 2, // string\r\n title: \"Brand\",\r\n selected: false,\r\n\t\t\tpublic: true,\r\n selectedOptionName: \"\",\r\n selectedOptionID: \"\",\r\n options: [\r\n ]\r\n },\r\n {\r\n id: \"subcategory\",\r\n property: \"ProductSubCategoryId\",\r\n type: 2, // string\r\n title: \"Subcategory\",\r\n selected: false,\r\n\t\t\tpublic: true,\r\n selectedOptionName: \"\",\r\n selectedOptionID: \"\",\r\n options: [\r\n ]\r\n }\r\n ],\r\n priceRanges: [\r\n {\r\n id: 0,\r\n name: \"\",\r\n min: 0,\r\n max: 9.99,\r\n selected: false\r\n },\r\n {\r\n id: 1,\r\n name: \"\",\r\n min: 10,\r\n max: 19.99,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n name: \"\",\r\n min: 20,\r\n max: 49.99,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n name: \"\",\r\n min: 50,\r\n max: 99.99,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n name: \"\",\r\n min: 100,\r\n max: 0,\r\n selected: false\r\n }\r\n ],\r\n isMobile: isMobile,\r\n platformDetails: {},\r\n user: {\r\n id: \"\",\r\n authorised: false,\r\n authenticating: false,\r\n missingdetails: false,\r\n missingdetailserror: \"\",\r\n loading: false,\r\n details: null,\r\n addresses: {\r\n billing: null,\r\n delivery: []\r\n }\r\n },\r\n postcodelookupresults: {\r\n\t\ttype:1,\r\n\t response: {\r\n\t\t\tAddressInfoList: []\r\n\t\t}\r\n\t},\r\n cookieconsent: null,\r\n notification: null,\r\n team: [],\r\n desiredPage: \"\",\r\n\tdesiredParams: [],\r\n\tloadingdeliveryaddress: false,\r\n\tloadingpostcodes: false,\r\n\tloadingdenominations: false,\r\n\tloadingcourses: false,\r\n\tloadingsubscriptions: false,\r\n\tcheckingGiftcardBalance: false,\r\n\tgiftcardBalance: null,\r\n\tmygiftcards: [],\r\n\tmycourses: [],\r\n\tlastSalonTeamSalonID: \"\", //last salon ID that loaded salon team\r\n\tloadingbookingavailability: false,\r\n\tcheckingAvalability: false,\r\n\trecommendations: [],\r\n\tbounceBasket: false,\r\n\tbounceBasketTimer: null,\r\n\tpastproducts: [],\r\n\tloadingsalonreviews: false,\r\n\tsalonreviews: null,\r\n\tpriceRangeLimits: { min:0, max: 1000 },\r\n\tservices: [],\r\n\tloadingservices: false,\r\n\tservicecategories: [],\r\n\tcoursescategories: [],\r\n\tteammembers: [],\r\n\tloadingteammembers: false,\r\n\tloadingdatestatus: false,\r\n\tloadingDateStatusRequestCancel: null,\r\n\ttemporaryData: [],\r\n\tloadingcharge: false,\r\n\tupgrades: [],\r\n\tbookings: {\r\n\t\tfuture: [],\r\n\t\tpast: []\r\n\t},\r\n\tforcedTeammember: \"\",\r\n\tloadingBookings: false,\r\n\tloadingPromocode: false,\r\n\ttags: [],\r\n\tbookingrequiredfields: false,\r\n\theaderConfig: \"\",\r\n\tchosenCourse: null,\r\n\tchosenSubscription: null,\r\n\ttmrecommendation: null,\r\n\tcheckingProductAvailability: false,\r\n\tswitchCategory: \"\",\r\n\tGATrackingID: \"\", // defined by the customer\r\n GATrackingIDSalonIQ: \"\", // hardcoded, SalonIQ property\r\n\tgaConfigCustomDimensionsObject: {\r\n \t'custom_map': {\r\n \t// 'dimension1': 'salon',\r\n \t// 'dimension2': 'purchase',\r\n \t// 'dimension3': 'teammember',\r\n\t\t\t// 'dimension4': 'tenant',\r\n\t\t\t// 'dimension5': 'widget'\r\n\t\t},\r\n\t\t'linker': {\r\n\t\t\t'domains': [],\r\n\t\t\t'accept_incoming': true\r\n\t\t}\r\n },\r\n gaConfigCustomDimensionsObjectSalonIQ: {\r\n \t'custom_map': {\r\n \t'dimension1': 'salon',\r\n \t'dimension2': 'purchase',\r\n \t'dimension3': 'teammember',\r\n\t\t\t'dimension4': 'tenant',\r\n\t\t\t'dimension5': 'widget'\r\n\t\t}\r\n },\r\n\t// queue mode start\r\n\tqueuemodestatus: null,\r\n\tqueuemodestatusloading: false,\r\n\tqueuemodepromocodeloading: false,\r\n\tloadingqueuemodestuff: false,\r\n\t// queue mode end\r\n\tmysubscriptions: null,\r\n\tloadingmysubscriptions: false,\r\n\taddingToWaitingList: false,\r\n\tvalidGiftcards: [],\r\n\tvalidatingNewGiftcard: false\r\n}\r\n\r\nconst mutations = {\r\n\r\n\tset_queuemodestatusloading (state, params) {\r\n\t\tstate.queuemodestatusloading = params;\r\n\t},\r\n\tset_queuemodestatus (state, params) {\r\n\t\tstate.queuemodestatus = params;\r\n\t},\r\n\tset_queuemodepromocodeloading (state, params) {\r\n\t\tstate.queuemodepromocodeloading = params;\r\n\t},\r\n\tset_loadingqueuemodestuff (state,params) {\r\n\t\tstate.loadingqueuemodestuff = params;\r\n\t},\r\n\r\n\tset_addingtowaitinglist (state, params) {\r\n\t\tstate.addingToWaitingList = params;\r\n\t},\r\n\tset_switchcategory (state, params) {\r\n\t\tstate.switchCategory = params;\r\n\t},\r\n\tset_checkingproductavailability (state, params) {\r\n\t\tstate.checkingProductAvailability = params;\r\n\t},\r\n\tset_tmrecommendation (state, params) {\r\n\t\tstate.tmrecommendation = params;\r\n\t},\r\n set_platformdetails (state, params) {\r\n\t state.platformDetails = params;\r\n\t},\r\n set_setting (state,params) {\r\n state.settings[params.section][params.switch] = params.value;\r\n },\r\n set_settings (state,params) {\r\n state.settings = params;\r\n },\r\n\tset_forcedteammember (state,params) {\r\n\t\tstate.forcedTeammember = params;\r\n\t},\r\n set_resizeparams (state,params) {\r\n state.windowWidth = params;\r\n },\r\n set_urlparams(state, params) {\r\n state.urlParams = params;\r\n if( (typeof state.urlParams.salonid == \"undefined\" || state.urlParams.salonid == \"\") && (typeof state.urlParams.tokenid == \"undefined\" || state.urlParams.tokenid == \"\") ) {\r\n state.systemError = \"Error. Missing token.\";\r\n }\r\n\t},\r\n set_parameters(state, params) {\r\n\t\tparams[\"GA4IDSalonIQ\"] = \"G-VYY3B6KGFJ\";\r\n state.parameters = params;\r\n\t},\r\n set_basketon(state,params) {\r\n state.basketOn = params;\r\n },\r\n set_denominations(state,params) {\r\n\t\tparams.Denomination.sort( (a,b) => {\r\n\t\t\treturn a.Sequence - b.Sequence;\r\n\t\t});\r\n state.denominations = params;\r\n },\r\n\tset_giftcardbalance(state,params) {\r\n state.giftcardbalance = params;\r\n },\r\n\tset_courses(state,params) {\r\n\t\tfor (var i = 0; i < params.Courses.length; i++) {\r\n\t\t\tparams.Courses[i][\"showDetailedDescription\"] = false;\r\n\t\t}\r\n\t\tparams.Courses.sort( (a,b) => {\r\n\t\t\tif(a.Description < b.Description) return -1;\r\n\t\t\telse return 1;\r\n\t\t});\r\n\t\t\r\n\t\tparams.Categories.forEach((item, i) => {\r\n\t\t\titem[\"selected\"] = false;\r\n\t\t\titem[\"DetailedCategoryDescription\"] = typeof item.DetailedCategoryDescription == \"undefined\" ? \"\" : item.DetailedCategoryDescription;\r\n\t\t});\r\n\t\tparams.Categories.sort( (a,b) => {\r\n\t\t\treturn a.Sequence - b.Sequence;\r\n\t\t})\r\n\t\t\r\n\t\tstate.courses = params;\r\n },\r\n\tset_subscriptions(state,params) {\r\n\t\tfor (var i = 0; i < params.Subscriptions.length; i++) {\r\n\t\t\tparams.Subscriptions[i][\"showDetailedDescription\"] = false;\r\n\t\t}\r\n\t\tparams.Subscriptions.sort( (a,b) => {\r\n\t\t\tif(a.Sequence < b.Sequence) return -1;\r\n\t\t\tif(a.Description < b.Description) return -1;\r\n\t\t\telse return 1;\r\n\t\t});\r\n state.subscriptions = params.Subscriptions;\r\n },\r\n set_products (state, params) {\r\n\r\n\t\tparams.Products.forEach( (item, i) => {\r\n\t\t\titem[\"checkingProductAvailability\"] = false;\r\n\t\t});\r\n\r\n\t\tstate.tags = params.Tags;\r\n\t\tstate.products = params.Products;\r\n\r\n\t\tvar maxPrice = 0;\r\n\t\tfor(var i=0; i maxPrice) maxPrice = state.products[i].RRP;\r\n\t\t}\r\n\t\tvar len = maxPrice.toString().length;\r\n\t\tmaxPrice = Math.ceil( maxPrice / Math.pow(10,len-1) ) * Math.pow(10,len-1);\r\n\t\tstate.priceRangeLimits.max = maxPrice;\r\n\r\n\t\tvar producttypes = state.filters.find( function(a) {return a.id==\"producttype\"} ).options;\r\n for(var i=0; i b.name) return 1;\r\n\t\t\tif(a.name < b.name) return -1;\r\n\t\t\treturn 0;\r\n\t\t});\r\n\t\tstate.categories = producttypes;\r\n\r\n var categories = state.filters.find( function(a) {return a.id==\"category\"} ).options;\r\n for(var i=0; i b.name) return 1;\r\n\t\t\tif(a.name < b.name) return -1;\r\n\t\t\treturn 0;\r\n\t\t});\r\n\t\tstate.brands = categories;\r\n\r\n var subcategories = state.filters.find( function(a) {return a.id==\"subcategory\"} ).options;\r\n for(var i=0; i b.name) return 1;\r\n\t\t\tif(a.name < b.name) return -1;\r\n\t\t\treturn 0;\r\n\t\t});\r\n\t\tstate.subbrands = subcategories;\r\n\r\n\t\tvar category,brand,subbrand,product;\r\n\t\t// for(var i=0; i {\r\n\t\t\t\t\t\treturn /*(a.ProductTypeId === category.id) &&*/ (a.ProductCategoryId === state.brands[j].id) && (a.ProductSubCategoryId === state.subbrands[k].id);\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tif(typeof product != \"undefined\") {\r\n\t\t\t\t\t\t//foundSubBrand = true;\r\n\t\t\t\t\t\tvar fbrand = brand;//category.children.find( (b) => {return b.id == brand.id});\r\n\t\t\t\t\t\tif(typeof fbrand != \"undefined\") {\r\n\t\t\t\t\t\t\tif( typeof fbrand.children.find( (b) => {return b.id == subbrand.id}) == \"undefined\" ) fbrand.children.push(JSON.parse(JSON.stringify(subbrand)));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfbrand = JSON.parse(JSON.stringify(brand));\r\n\t\t\t\t\t\t\tfbrand.children.push(JSON.parse(JSON.stringify(subbrand)));\r\n\t\t\t\t\t\t\tcategory.children.push(fbrand);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//break;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(foundSubBrand == true) {\r\n\t\t\t\t\tfoundBrand = true;\r\n\t\t\t\t\t//if( typeof category.children.find( (b) => {return b.id == brand.id}) == \"undefined\" ) category.children.push(brand);\r\n\t\t\t\t\t//if( typeof brand.children.find( (b) => {return b.id == subbrand.id}) == \"undefined\" ) brand.children.push(subbrand);\r\n\t\t\t\t\t//break;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// \tif(foundBrand == true) {\r\n\t\t// \t\t//if( typeof category.children.find( (b) => {return b.id == brand.id}) == \"undefined\" ) category.children.push(brand);\r\n\t\t// \t}\r\n\t\t// }\r\n\r\n // prices\r\n // var prices = state.filters.find( function(a) {return a.id==\"price\"} ).options;\r\n // for(var i=0; i'+pricerange.max.toFixed(2) + \" or less\";\r\n // } else if(pricerange.max == 0) {\r\n // str += ''+state.parameters.Currency+''+pricerange.min.toFixed(2) + \" or more\";\r\n // } else {\r\n // str += ''+state.parameters.Currency+''+pricerange.min.toFixed(2)+\" to \" + ''+state.parameters.Currency+''+pricerange.max.toFixed(2);\r\n // }\r\n // pricerange.name = str;\r\n // }\r\n // change state\r\n\r\n },\r\n set_paymentsloading(state,params) {\r\n state.paymentsLoading = params;\r\n },\r\n\tset_makebookingloading(state,params) {\r\n state.makeBookingLoading = params;\r\n },\r\n set_existingcards (state,params) {\r\n for (var i = 0; i < params.length; i++) {\r\n\t\t\tparams[i][\"open\"] = false;\r\n\t\t}\r\n state.existingcards = params;\r\n },\r\n set_initialising (state, params) {\r\n state.initialising = params;\r\n },\r\n set_loadingproducts (state, params) {\r\n state.loadingProducts = params;\r\n },\r\n set_systemerror (state, params) {\r\n state.systemError = params;\r\n },\r\n set_authenticated (state, payload) {\r\n state.user.authorised = payload\r\n },\r\n\tset_userid (state, payload) {\r\n state.user.id = payload;\r\n\t},\r\n\tset_authenticating (state, params) {\r\n\t state.user.loading = params;\r\n\t},\r\n\tset_isforcedlogin (state, params) {\r\n\t state.isForcedLogin = params;\r\n\t},\r\n set_userdetails (state, params) {\r\n\r\n\t\tif(params.Clientimage == \"\") params.Clientimage = \"/img/woman-placeholder.png\";\r\n\r\n state.user.details = params;\r\n\r\n state.existingcards = params.Cards.Cards;\r\n\r\n state.user.addresses.billing = {\r\n Address1: params.Address1,\r\n Address2: params.Address2,\r\n Address3: params.Address3,\r\n Address4: params.Address4,\r\n\t\t\tCounty:\t params.County,\r\n Town: params.Town,\r\n Postcode: params.Postcode,\r\n }\r\n },\r\n set_loadinguserdetails (state, params) {\r\n state.user.loading = params;\r\n },\r\n set_showmissingdetails (state, params) {\r\n state.user.missingdetails = params;\r\n },\r\n set_missingdetailserror (state, params) {\r\n state.user.missingdetailserror = params;\r\n },\r\n set_postcodelookupresults (state, params) {\r\n\t state.postcodelookupresults = params;\r\n\t},\r\n set_cookieconsent(state, params) {\r\n\t\tstate.cookieconsent = params;\r\n\t},\r\n set_notification (state, params) {\r\n\t\tif(params != null && params.style['background-color'] == \"red\") {\r\n\t\t\tparams.style['background-color'] = state.parameters.WarningColour;\r\n\t\t}\r\n state.notification = params;\r\n },\r\n set_salons (state, params) {\r\n state.salons = params.Salons;\r\n },\r\n set_loadingsalons (state, params) {\r\n state.loadingSalons = params;\r\n },\r\n set_salonteam(state, params) {\r\n\t\tparams.sort( (a,b) => {\r\n\t\t\treturn a.SequenceNumber - b.SequenceNumber;\r\n\t\t});\r\n\t\tstate.salonTeam = params;\r\n\t},\r\n set_loadingsalonteam (state, params) {\r\n state.loadingSalonTeam = params;\r\n },\r\n set_selectedSalonID (state, params) {\r\n\t\tif(params == null || params == \"\") return;\r\n state.selectedSalonID = params;\r\n state.selectedSalon = state.salons.find(p => p === state.selectedSalonID);\r\n },\r\n set_selectedSalon (state, params) {\r\n if(params != null) {\r\n state.selectedSalon = params;\r\n state.selectedSalonID = state.selectedSalon.ID;\r\n } else {\r\n state.selectedSalon = null;\r\n }\r\n },\r\n set_salonsLoading (state, params) {\r\n state.loading = params;\r\n },\r\n\tset_specialdays (state, params) {\r\n\t\tstate.specialDays = params;\r\n\t},\r\n\tset_specialdaymessage (state, params) {\r\n\t\tstate.specialDayMessage = params;\r\n\t},\r\n\tset_closeddays (state, params) {\r\n\t\tstate.closedDays = params;\r\n\t},\r\n set_desiredpage (state, params) {\r\n state.desiredPage = params;\r\n },\r\n\tset_desireddata (state,params) {\r\n\t\tstate.desiredPage = params.page;\r\n\t\tstate.desiredParams = typeof params.params == \"undefined\" ? {} : params.params;\r\n\t},\r\n\tset_deliveryaddresses (state, params) {\r\n\t\tif(typeof params == \"undefined\") return;\r\n\t\tparams.sort( (a,b) => { return b.CreatedDate - a.CreatedDate } );\r\n\t\tstate.user.addresses.delivery = params;\r\n\t},\r\n\tset_recommendations (state, data) {\r\n\t\tstate.recommendations = data;\r\n\t},\r\n\tset_pastproducts (state, data) {\r\n\t\tstate.pastproducts = data;\r\n\t},\r\n\tadd_item (state, params) {\r\n if(params.type === 3) {\r\n\t\t\tclearTimeout(state.bounceBasketTimer);\r\n\t\t\tstate.bounceBasket = true;\r\n\t\t\tstate.bounceBasketTimer = setTimeout( ()=> {\r\n\t\t\t\tstate.bounceBasket = false;\r\n\t\t\t},1000);\r\n var index = state.basket.findIndex(function(a){\r\n return a.type === 3 && a.data.product.ProductId === params.data.product.ProductId;\r\n });\r\n if(index>-1) {\r\n state.basket[index].data.quantity += params.data.quantity;\r\n return;\r\n }\r\n }\r\n state.basket.push(params);\r\n },\r\n remove_item (state, params) {\r\n var index = state.basket.findIndex(function(a){\r\n // service\r\n if(params.type === 1) {\r\n return a.type === 1 && a.data.service.id === params.data.service.id && a.data.teammember.id === params.data.teammember.id;\r\n }\r\n // giftcard\r\n if(params.type === 2) {\r\n return a.type === 2 && a.data.denomination.GCDenominationId === params.data.denomination.GCDenominationId;\r\n }\r\n // product\r\n if(params.type === 3) {\r\n return a.type === 3 && a.data.product.ProductId === params.data.product.ProductId;\r\n }\r\n });\r\n state.basket.splice(index,1);\r\n },\r\n\tset_loadingdeliveryaddress (state,params) {\r\n\t\tstate.loadingdeliveryaddress = params;\r\n\t},\r\n\tset_loadingpostcodes (state, params) {\r\n\t\tstate.loadingpostcodes = params;\r\n\t},\r\n\tset_loadingdenominations (state,params) {\r\n\t\tstate.loadingdenominations = params;\r\n\t},\r\n\tset_loadingcourses (state,params) {\r\n\t\tstate.loadingcourses = params;\r\n\t},\r\n\tset_loadingsubscriptions (state,params) {\r\n\t\tstate.loadingsubscriptions = params;\r\n\t},\r\n\tset_checkinggiftcardbalance (state,params) {\r\n\t\tstate.checkingGiftcardBalance = params;\r\n\t},\r\n\tset_giftcardbalance (state,params) {\r\n\t\tstate.giftcardBalance = params;\r\n\t},\r\n\tset_mygiftcards (state,params) {\r\n\t\tstate.mygiftcards = params;\r\n\t},\r\n\tset_validgiftcards (state,params) {\r\n\t\tparams.forEach(function(g){\r\n\t\t\tg[\"selected\"] = false;\r\n\t\t})\r\n\t\tstate.validGiftcards = params;\r\n\t},\r\n\tset_mycourses (state,params) {\r\n\t\tstate.mycourses = params;\r\n\t},\r\n\tset_loadingbookingavailability (state,params) {\r\n\t\tstate.loadingbookingavailability = params;\r\n\t},\r\n\tset_checkingavailability (state,params) {\r\n\t\tstate.checkingAvalability = params;\r\n\t},\r\n\tset_loadingsalonreviews (state,params) {\r\n\t\tstate.loadingsalonreviews = params;\r\n\t},\r\n\tset_salonreviews (state,params) {\r\n\t\tstate.salonreviews = params;\r\n\t},\r\n\tset_services (state, params) {\r\n\t\t// var foundIndex = params.findIndex(function(a){ return a.ServiceId == \"d9fccf32-092c-44e5-a174-57fba2e00ab8\"});\r\n\t\t// params.splice(foundIndex,1);\r\n\t\tparams.forEach((item, i) => {\r\n\t\t\titem[\"selected\"] = false;\r\n\t\t\titem[\"ServiceLC\"] = item.Service.toLowerCase();\r\n\t\t});\t\t\r\n\t\tstate.services = params;\r\n\t},\r\n\tset_loadingservices (state,params) {\r\n\t\tstate.loadingservices = params;\r\n\t},\r\n\tset_servicecategories (state, params) {\r\n\t\tparams.forEach((item, i) => {\r\n\t\t\titem[\"selected\"] = false;\r\n\t\t});\r\n\t\tparams.sort( (a,b) => {\r\n\t\t\treturn a.Sequence - b.Sequence;\r\n\t\t})\r\n\t\tstate.servicecategories = params;\r\n\t},\t\r\n\tset_loadingteammembers (state,params) {\r\n\t\tstate.loadingteammembers = params;\r\n\t},\r\n\tset_teammembers (state,params) {\r\n\t\tparams.TeamMembers.sort(function(a,b){\r\n\t\t\treturn a.Order - b.Order;\r\n\t\t})\r\n\t\tstate.switchCategory = params.CategoryId;\t\t\r\n\t\tparams.TeamMembers.forEach((item, i) => {\r\n\t\t\tif(item.TeamMemberId != \"00000000-0000-0000-0000-000000000000\") item[\"selected\"] = false;\r\n\t\t});\r\n\t\tstate.teammembers = params.TeamMembers;\r\n\t},\r\n\tset_loadingdatestatus (state,params) {\r\n\t\tstate.loadingdatestatus = params;\r\n\t},\r\n\tset_loadingcharge (state,params) {\r\n\t\tstate.loadingcharge = params;\r\n\t},\r\n\tset_shopmessage (state,params) {\r\n\t\tstate.parameters.BannerMessageShop = params;\r\n\t},\t\r\n\tset_subscriptionsmessage (state,params) {\r\n\t\tstate.parameters.BannerMessageSubscriptions = params;\r\n\t},\r\n\tset_coursesmessage (state,params) {\r\n\t\tstate.parameters.BannerMessageCourse = params;\r\n\t},\r\n\tset_giftcardsmessage (state,params) {\r\n\t\tstate.parameters.BannerMessageGiftCard = params;\r\n\t},\r\n\tset_bookmessage (state,params) {\r\n\t\tstate.parameters.BannerMessageBook = params;\r\n\t},\r\n\tset_loading (state, params) {\r\n\t\tstate.loading = params;\r\n\t},\r\n\tset_questionsloading (state, params) {\r\n\t\tstate.loadingQuestions = params;\r\n\t},\r\n\tset_loadingupgrades (state, params) {\r\n\t\tstate.loadingUpgrades = params;\r\n\t},\r\n\tset_questionsdata (state, params) {\r\n\t\tfor(var i=0; i time2) { return 1; }\r\n\t\t\t\tif (time1 == time2) { return 0; }\r\n\t\t\t});\r\n\t\t}\r\n\t\tstate.bookings = {\r\n\t\t\tfuture: futureBookings,\r\n\t\t\tpast: pastBookings\r\n\t\t}\r\n\t},\r\n\tset_loadingbookings (state, params) {\r\n\t\tstate.loadingBookings = params;\r\n\t},\r\n\tset_loadingpromocode (state, params) {\r\n\t\tstate.loadingPromocode = params;\r\n\t},\r\n\tset_validatingnewgiftcard (state, params) {\r\n\t\tstate.validatingNewGiftcard = params;\r\n\t},\r\n\tset_bookingrequiredfields (state, params) {\r\n\t\tstate.bookingrequiredfields = params;\r\n\t},\r\n\tset_klarnacallbackflow (state, params) {\r\n\t\tstate.klarnaCallbackFlow = params;\r\n\t},\r\n\tset_chosencourse (state, course) {\r\n\t\tstate.chosenCourse = course;\r\n\t},\r\n\tset_chosensubscription (state, course) {\r\n\t\tstate.chosenSubscription = course;\r\n\t},\r\n\tset_stripeclientsecret (state,params) {\r\n\t\tstate.stripeClientSecret = params;\r\n\t},\r\n\tset_mysubscriptions (state,params) {\r\n\t\tstate.mysubscriptions = params;\r\n\t},\r\n\tset_loadingmysubscriptions (state,params) {\r\n\t\tstate.loadingmysubscriptions = params;\r\n\t}\r\n}\r\n\r\nconst getters = {\r\n\tget_addingtowaitinglist (state) {\r\n\t\treturn state.addingToWaitingList;\r\n\t},\r\n\tget_queuemode (state, getters) {\r\n return false;//getters.get_selectedsalon != null ? getters.get_selectedsalon.QueueMode : false;\r\n },\r\n\tget_queuemodestatus (state) {\r\n return state.queuemodestatus;\r\n },\r\n\tget_queuemodepromocodeloading (state) {\r\n\t\treturn state.queuemodepromocodeloading;\r\n\t},\r\n get_queuemodestatusloading (state) {\r\n return state.queuemodestatusloading;\r\n },\r\n\tget_loadingqueuemodestuff (state) {\r\n return state.loadingqueuemodestuff;\r\n },\r\n\r\n\tget_trackingparamsstring () {\r\n\t\treturn state.trackingParamsString;\r\n\t},\r\n\tget_switchcategory () {\r\n\t\treturn state.switchCategory;\r\n\t},\r\n\tget_checkingproductavailability (state) {\r\n\t\treturn state.checkingProductAvailability;\r\n\t},\r\n\tget_eventbus (state) {\r\n\t\treturn state.EventBus;\r\n\t},\r\n\tget_userid (state) {\r\n\t\treturn state.user.id;\r\n\t},\r\n get_settings (state) {\r\n return state.settings;\r\n },\r\n get_initialising (state) {\r\n return state.initialising;\r\n },\r\n\tget_loading (state) {\r\n\t\treturn state.loading;\r\n\t},\r\n get_loadingproducts (state) {\r\n return state.loadingProducts;\r\n },\r\n get_bgimage (state) {\r\n return state.settings.bgImage;\r\n },\r\n get_logoimage (state) {\r\n //return 'url(' + state.parameters.LogoLink + ')';\r\n\t\treturn state.parameters.LogoLink;\r\n },\r\n get_windowwidth (state) {\r\n return state.windowWidth;\r\n },\r\n get_urlparams (state) {\r\n return state.urlParams;\r\n },\r\n get_parameters (state) {\r\n return state.parameters;\r\n\t},\r\n get_salons (state) {\r\n return state.salons;\r\n },\r\n get_selectedsalon (state) {\r\n var salon = state.salons.find(function(a){return a.ID === state.selectedSalonID});\r\n return typeof salon != \"undefined\" ? salon : null;\r\n },\r\n getSelectedSalonID() {\r\n\t return state.selectedSalonID;\r\n },\r\n getFirstSalonID() {\r\n if (state.salons.length > 0) {\r\n return state.salons[0].ID;\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n\tgetSalonsLoading () {\r\n\t return state.loading;\r\n },\r\n\tget_deliveryaddresses () {\r\n\t\treturn state.user.addresses.delivery;\r\n\t},\r\n get_specialdays() {\r\n return state.specialDays;\r\n },\r\n get_specialdaymessage(state, params) {\r\n return state.specialDayMessage;\r\n },\r\n get_closeddays(state, params) {\r\n return state.closedDays;\r\n\t},\r\n\tget_closeddaysFORMATTED(state, params) {\r\n\t\tvar cd = [];\r\n\t\tfor (var i = 0; i < state.closedDays.length; i++) {\r\n\t\t\tvar arr = state.closedDays[i].split(\"/\");\r\n\t\t\tcd.push(new Date(arr[2], parseInt(arr[0])-1, arr[1]));\r\n\t\t}\r\n\t\treturn { dates: cd, to: moment().add(-1,\"days\").toDate() };\r\n\t},\r\n get_tclink() {\r\n return state.selectedSalon ? state.selectedSalon.TCLink : \"\";\r\n\t},\r\n get_salonteam (state) {\r\n return state.salonTeam;\r\n },\r\n get_loadingsalonteam (state) {\r\n return state.loadingSalonTeam;\r\n },\r\n get_ismobile (state) {\r\n return state.windowWidth <= 768;\r\n },\r\n get_basketon (state) {\r\n return state.basketOn;\r\n },\r\n get_denominations(state) {\r\n return state.denominations;\r\n },\r\n\tget_giftcardbalance(state) {\r\n return state.giftcardbalance;\r\n },\r\n\tget_courses(state) {\r\n return state.courses;\r\n },\r\n\tget_subscriptions(state) {\r\n\t\treturn state.subscriptions;\r\n\t},\r\n get_products(state) {\r\n return state.products;\r\n },\r\n get_stripeinstance (state) {\r\n return state.stripeInstance;\r\n },\r\n get_stripeapikey (state) {\r\n return state.parameters.MyStripePublishableKey;\r\n },\r\n get_spid (state) {\r\n return state.parameters.spid;\r\n },\r\n get_paymentsloading (state) {\r\n return state.paymentsLoading;\r\n },\r\n\tget_makebookingloading (state) {\r\n\t\treturn state.makeBookingLoading;\r\n\t},\r\n get_existingcardsloading (state) {\r\n return state.existingCardsLoading;\r\n },\r\n get_existingcards (state) {\r\n return state.existingcards;\r\n },\r\n get_currency (state) {\r\n return state.parameters.Currency;\r\n },\r\n get_systemerror (state) {\r\n return state.systemError;\r\n },\r\n get_filter_priceranges (state) {\r\n return state.priceRanges;\r\n },\r\n get_filters (state) {\r\n return state.filters;\r\n },\r\n get_ismobile (state) {\r\n return state.isMobile;\r\n },\r\n get_isauthorised (state) {\r\n return state.user.authorised;\r\n },\r\n get_authenticating (state) {\r\n return state.user.loading;\r\n },\r\n get_recaptchaenabled (state) {\r\n return state.parameters.RecaptchaEnabled;\r\n },\r\n get_userdetails (state) {\r\n return state.user.details;\r\n },\r\n get_loadinguserdetails (state) {\r\n return state.user.loading;\r\n },\r\n get_showmissingdetails (state) {\r\n return state.user.missingdetails;\r\n },\r\n get_missingdetailserror (state) {\r\n return state.user.missingdetailserror;\r\n },\r\n get_postcodelookupresults (state) {\r\n return state.postcodelookupresults;\r\n\t},\r\n get_cookieconsent(state) {\r\n\t\treturn state.cookieconsent;\r\n\t},\r\n get_notification (state) {\r\n return state.notification;\r\n },\r\n get_useraddresses (state) {\r\n return state.user.addresses;\r\n },\r\n\tget_basket (state) {\r\n return state.basket;\r\n },\r\n\tget_loadingdeliveryaddress (state) {\r\n\t\treturn state.loadingdeliveryaddress;\r\n\t},\r\n\tget_loadingpostcodes (state) {\r\n\t\treturn state.loadingpostcodes;\r\n\t},\r\n\tget_loadingdenominations (state) {\r\n\t\treturn state.loadingdenominations;\r\n\t},\r\n\tget_loadingcourses (state) {\r\n\t\treturn state.loadingcourses;\r\n\t},\r\n\tget_loadingsubscriptions (state) {\r\n\t\treturn state.loadingsubscriptions;\r\n\t},\r\n\tget_checkinggiftcardbalance (state) {\r\n\t\treturn state.checkingGiftcardBalance;\r\n\t},\r\n\tget_giftcardbalance (state) {\r\n\t\treturn state.giftcardBalance;\r\n\t},\r\n\tget_mygiftcards (state) {\r\n\t\treturn state.mygiftcards;\r\n\t},\r\n\tget_mycourses (state) {\r\n\t\treturn state.mycourses;\r\n\t},\r\n\tget_mysubscriptions (state) {\r\n\t\treturn state.mysubscriptions;\r\n\t},\r\n\tget_loadingmysubscriptions (state) {\r\n\t\treturn state.loadingmysubscriptions;\r\n\t},\r\n\tget_recommendations (state) {\r\n\t\treturn state.recommendations;\r\n\t},\r\n\tget_pastproducts (state, data) {\r\n\t\treturn state.pastproducts;\r\n\t},\r\n\tget_loadingbookingavailability (state) {\r\n\t\treturn state.loadingbookingavailability;\r\n\t},\r\n\tget_checkingavailability (state) {\r\n\t\treturn state.checkingAvalability;\r\n\t},\r\n\tgetPlatformDetails () {\r\n\t return state.platformDetails;\r\n\t},\r\n\tget_bouncebasket () {\r\n\t\treturn state.bounceBasket;\r\n\t},\r\n\tget_loadingsalonreviews () {\r\n\t\treturn state.loadingsalonreviews;\r\n\t},\r\n\tget_salonreviews () {\r\n\t\treturn state.salonreviews;\r\n\t},\r\n\tget_categories () {\r\n\t\treturn state.categories;\r\n\t},\r\n\tget_brands () {\r\n\t\treturn state.brands;\r\n\t},\r\n\tget_subbrands () {\r\n\t\treturn state.subbrands;\r\n\t},\r\n\tget_pricerangelimits () {\r\n\t\treturn state.priceRangeLimits;\r\n\t},\r\n\tget_services () {\r\n\t\treturn state.services;\r\n\t},\r\n\tget_loadingservices () {\r\n\t\treturn state.loadingservices;\r\n\t},\r\n\tget_servicecategories () {\r\n\t\treturn state.servicecategories;\r\n\t},\r\n\tget_coursescategories () {\r\n\t\treturn state.coursescategories;\r\n\t},\r\n\tget_loadingteammembers () {\r\n\t\treturn state.loadingteammembers;\r\n\t},\r\n\tget_teammembers () {\r\n\t\treturn state.teammembers;\r\n\t},\r\n\tget_loadingdatestatus () {\r\n\t\treturn state.loadingdatestatus;\r\n\t},\r\n\tget_temporarydata () {\r\n\t\treturn state.temporaryData;\r\n\t},\r\n\tget_loadingcharge () {\r\n\t\treturn state.loadingcharge;\r\n\t},\r\n\tget_shopmessage () {\r\n\t\treturn state.parameters.BannerMessageShop;\r\n\t},\r\n\tget_subscriptionsmessage () {\r\n\t\treturn state.parameters.BannerMessageSubscriptions;\r\n\t},\r\n\tget_coursesmessage () {\r\n\t\treturn state.parameters.BannerMessageCourse;\r\n\t},\r\n\tget_giftcardsmessage () {\r\n\t\treturn state.parameters.BannerMessageGiftCard;\r\n\t},\r\n\tget_bookmessage () {\r\n\t\treturn state.parameters.BannerMessageBook;\r\n\t},\r\n\tget_desiredpage () {\r\n return state.desiredPage;\r\n },\r\n\tget_questionsloading () {\r\n\t\treturn state.loadingQuestions;\r\n\t},\r\n\tget_loadingupgrades () {\r\n\t\treturn state.loadingUpgrades;\r\n\t},\r\n\tget_questionsdata () {\r\n\t\treturn state.questionsdata;\r\n\t},\r\n\tget_upgrades (state, params) {\r\n\t\treturn state.upgrades;\r\n\t},\r\n\tget_loadingwrongquestions () {\r\n\t\treturn state.loadingWrongQuestions;\r\n\t},\r\n\tget_bookings () {\r\n\t\treturn state.bookings;\r\n\t},\r\n\tget_loadingbookings () {\r\n\t\treturn state.loadingBookings;\r\n\t},\r\n\tget_loadingpromocode () {\r\n\t\treturn state.loadingPromocode;\r\n\t},\r\n\tget_validatingnewgiftcard () {\r\n\t\treturn state.validatingNewGiftcard;\r\n\t},\r\n\tget_tags () {\r\n\t\treturn state.tags\r\n\t},\r\n\tget_bookingrequiredfields () {\r\n\t\treturn state.bookingrequiredfields;\r\n\t},\r\n\tget_headerconfig () {\r\n\t\treturn typeof state.urlParams.tabs == \"undefined\" ? \"all\" : state.urlParams.tabs;\r\n\t},\r\n\tget_prepopulatedgiftcards () {\r\n\t\treturn state.parameters.Prepopulate.filter( (entry) => entry.Type == 3 );\r\n\t},\r\n\tget_prepopulatedproducts () {\r\n\t\treturn state.parameters.Prepopulate.filter( (entry) => entry.Type == 4 );\r\n\t},\r\n\tget_prepopulatedservices () {\r\n\t\tvar services = state.parameters.Prepopulate.filter( (entry) => entry.Type == 2 );\r\n\t\treturn services;\r\n\t},\r\n\tget_prepopulatedcourses () {\r\n\t\tvar services = state.parameters.Prepopulate.filter( (entry) => entry.Type == 6 );\r\n\t\treturn services;\r\n\t},\r\n\tget_prepopulatedsubscriptions () {\r\n\t\tvar services = state.parameters.Prepopulate.filter( (entry) => entry.Type == 8 );\r\n\t\treturn services;\r\n\t},\r\n\tget_prepopulatedteammember () {\r\n\t\tvar services = state.parameters.Prepopulate.filter( (entry) => entry.Type == 9 );\r\n\t\treturn services;\r\n\t},\r\n\tget_prepopulatedklarna () {\r\n\t\tvar klarna = state.parameters.Prepopulate.filter( (entry) => entry.Type == 5 )[0];\r\n\t\tklarna[\"isCourse\"] = false;\r\n\t\tvar entries = [];\r\n\t\tif(typeof klarna.Data.Giftcard != \"undefined\") {\r\n\t\t\tklarna.Data.Giftcard.forEach((item, i) => {\r\n\t\t\t\titem[\"class\"] = \"giftcard\";\r\n\t\t\t\tentries.push(item);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif(typeof klarna.Data.Services != \"undefined\") {\r\n\t\t\tklarna.Data.Services.forEach((item, i) => {\r\n\t\t\t\titem[\"class\"] = \"service\";\r\n\t\t\t\tentries.push(item);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif(typeof klarna.Data.Products != \"undefined\") {\r\n\t\t\tklarna.Data.Products.forEach((item, i) => {\r\n\t\t\t\titem[\"class\"] = \"product\";\r\n\t\t\t\tentries.push(item);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif(typeof klarna.Data.Error != \"undefined\") {\r\n\t\t\tklarna.Data.Error.forEach((item, i) => {\r\n\t\t\t\titem[\"class\"] = \"error\";\r\n\t\t\t\tentries.push(item);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif(typeof klarna.Data.Courses != \"undefined\") {\r\n\t\t\tklarna.isCourse = true;\r\n\t\t\tvar item = {\r\n\t\t\t\tdescription: klarna.Data.Description,\r\n\t\t\t\tprice: klarna.Data.FixedPrice,\r\n\t\t\t\tclass: \"course\"\r\n\t\t\t}\r\n\t\t\tentries.push(item);\r\n\t\t}\r\n\t\tklarna[\"Entries\"] = entries;\r\n\r\n\t\treturn klarna;\r\n\t},\r\n\tget_forcedteammember () {\r\n\t\treturn state.forcedTeammember;\r\n\t},\r\n\tget_tmrecommendation () {\r\n\t\treturn state.tmrecommendation;\r\n\t\t//return state.parameters.Prepopulate.filter( (entry) => entry.Type == 1 )[0];\r\n\t},\r\n\tget_gcspid () {\r\n\t\treturn state.parameters.gcspid;\r\n\t},\r\n\tget_klarnacallbackflow () {\r\n\t\treturn state.klarnaCallbackFlow;\r\n\t},\r\n\tget_chosencourse () {\r\n\t\treturn state.chosenCourse;\r\n\t},\r\n\tget_chosensubscription () {\r\n\t\treturn state.chosenSubscription;\r\n\t},\r\n\tget_stripeclientsecret () {\r\n\t\treturn state.stripeClientSecret;\r\n\t},\r\n\tget_gatrackingid () {\r\n return state.parameters.GATrackingID;\r\n },\r\n get_gatrackingidsaloniq () {\r\n return state.parameters.GATrackingIDSalonIQ;\r\n },\r\n get_cdindexteammember () {\r\n return state.parameters.CDIndex_Teammember;\r\n },\r\n\tget_klarnabuttontext () {\r\n\t\treturn state.klarnaButtonText;\r\n\t},\r\n\tget_klarnaenabled () {\r\n\t\treturn state.isKlarnaEnabled;\r\n\t},\r\n\tget_validgiftcards () {\r\n\t\treturn state.validGiftcards;\r\n\t}\r\n}\r\n\r\nconst actions = {\r\n\r\n\tloadQueueModeStatus ({commit,state,dispatch}, data) {\r\n\t\tcommit(\"set_queuemodestatusloading\", true);\r\n\t\taxios.post(localPrefix+'/shoponline/GetQueueStatus',{\r\n\t\t\tsalonid: state.selectedSalonID,\r\n\t\t\tclientid: state.user.id,\r\n\t\t\titems: data.services,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n })\r\n\t\t.then( response => {\r\n\t\t\tcommit(\"set_queuemodestatusloading\", false);\r\n\t\t\tcommit(\"set_queuemodestatus\", response.data.Data);\r\n data.callback(response.data);\r\n\t })\r\n\t},\r\n\r\n\tjoinQueue ({commit,dispatch}, data) {\r\n\t\tcommit(\"set_loadingqueuemodestuff\", true);\r\n\t\taxios.post(localPrefix+'/shoponline/AddtoQueue',{\r\n\t\t\tclientid: state.user.id,\r\n\t\t\tsalonid: state.selectedSalonID,\r\n\t\t\titems: JSON.stringify({services:data.services}),\r\n\t\t\tnotes: data.notes,\r\n\t\t\tpromocode: data.promocode,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n })\r\n\t\t.then( response => {\r\n\t\t\tcommit(\"set_loadingqueuemodestuff\", false);\r\n data.callback(response.data);\r\n\t })\r\n\t},\r\n\r\n\tleaveQueue ({commit,dispatch}, data) {\r\n\t\tcommit(\"set_loadingqueuemodestuff\", true);\r\n\t\taxios.post(localPrefix+'/shoponline/DeleteFromQueue',{\r\n\t\t\tclientid: state.user.id,\r\n\t\t\tstandbyitemid: data.standbyitemid,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n })\r\n\t\t.then( response => {\r\n\t\t\tcommit(\"set_loadingqueuemodestuff\", false);\r\n data.callback(response.data);\r\n\t })\r\n\t},\r\n\r\n\tapplyQueueModePromocode ({commit,dispatch}, data) {\r\n\t\tcommit(\"set_queuemodepromocodeloading\", true);\r\n\t\taxios.post(localPrefix+'/shoponline/ValidateQPromo',{\r\n\t\t\tclientid: state.user.id,\r\n\t\t\tsalonid: state.selectedSalonID,\r\n\t\t\titems: JSON.stringify({services:data.services}),\r\n\t\t\tpromocode: data.promocode,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n })\r\n\t\t.then( response => {\r\n\t\t\tcommit(\"set_queuemodepromocodeloading\", false);\r\n data.callback(response.data);\r\n\t })\r\n\t},\r\n\r\n\taddToWaitingList ({commit,dispatch}, data) {\r\n\t\tcommit(\"set_addingtowaitinglist\",true);\r\n axios.post(localPrefix+\"/shoponline/SaveOnlineWaitingList\",{\r\n\t\t\tclientid: data.clientid,\r\n\t\t\tsalonid: state.selectedSalonID,\r\n\t\t\twaitingdate: data.waitingdate,\r\n\t\t\titems: data.items\r\n })\r\n .then(response => {\r\n\t\t\tcommit(\"set_addingtowaitinglist\",false); \r\n\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n });\r\n },\r\n\r\n\terasePrepopulatedData ({ commit, state, dispatch }, type) {\r\n\t\tvar idx = state.parameters.Prepopulate.findIndex( (entry) => entry.Type == type );\r\n\t\tif(idx > -1) {\r\n\t\t\tstate.parameters.Prepopulate.splice(idx,1);\r\n\t\t}\r\n\t},\r\n\r\n onResize ({ commit, state, dispatch }, data) {\r\n commit(\"set_resizeparams\", data);\r\n },\r\n\r\n loadFriends ({ commit, state, dispatch }, data) {\r\n axios.post(url,{'data':JSON.stringify(data)})\r\n .then(function(response) {\r\n commit(\"set_friends\", response.data.Data);\r\n });\r\n },\r\n loadUser ({ commit, state, dispatch }, data) {\r\n axios.post(url,{'data':JSON.stringify(data)})\r\n .then(function(response) {\r\n commit(\"set_user\", response.data.Data);\r\n });\r\n },\r\n setURLParams({commit,state},data) {\r\n\t\tvar getURLFromURLParams = function(origParams) {\r\n\t\t\tvar params = \"\";\r\n\t\t\tvar keys = Object.keys(origParams);\r\n\t\t\tfor(var i=0; i {\r\n\t\t\treturn a.name == data.name\r\n\t\t});\r\n\t\tif(typeof found != \"undefined\") {\r\n\t\t\tfound.value = data.value;\r\n\t\t} else {\r\n\t\t\tstate.temporaryData.push(data);\r\n\t\t}\r\n\t},\r\n\tremoveTemporaryData({commit,state,dispatch},data) {\r\n\t\tvar found = state.temporaryData.findIndex( (a) => {\r\n\t\t\treturn a.name == data.name\r\n\t\t});\r\n\t\tif(found > -1) {\r\n\t\t\tstate.temporaryData.splice(found,1);\r\n\t\t}\r\n\t},\r\n changePassword ({commit,dispatch}) {\r\n\t\tcommit(\"set_authenticated\", false);\r\n commit('set_authenticating',false);\r\n dispatch(\"deleteUserIDCookie\");\r\n axios.post(localPrefix+\"/shoponline/Changemypass\",{\r\n tenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n dispatch(\"showNotification\",{message:\"Email has been sent.\",style:{'background-color':\"lawngreen\"},timeout:2000});\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Error sending email.\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n //SalonIQWidget2.$ons.notification.toast(\"Parameters failed to load. Can not continue.\", { timeout: 1000, animation: 'ascend' })\r\n \t}\r\n\t\t \t//callback(data.data);\r\n });\r\n },\r\n\tloadParameters ({commit,state,dispatch}) {\r\n var obj = JSON.parse(JSON.stringify(state.urlParams));\r\n obj[\"tenantInfo\"] = JSON.stringify(getTenantInfoForRequest({userid: state.user.id}));\r\n axios.post(localPrefix+\"/shoponline/GetParameters\",obj)\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\r\n\t\t\t// commit(\"set_klarnacallbackflow\",true);\r\n\t\t\t// data.data.Data.Prepopulate = [\r\n\t\t\t// \t{\r\n\t\t\t// \t\tData: {\r\n\t\t\t// \t\t\tGiftcard: [\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\tAddress1: \"19 Mount Ephraim Road\",\r\n\t\t\t// \t\t\t\t\tAddress2: \"\",\r\n\t\t\t// \t\t\t\t\tCounty: \"Kent\",\r\n\t\t\t// \t\t\t\t\tDenominationID: \"c028fc6d-7812-4433-bd91-eac732c27851\",\r\n\t\t\t// \t\t\t\t\tFirstName: \"David\",\r\n\t\t\t// \t\t\t\t\tFromName: \"David Kopnicky\",\r\n\t\t\t// \t\t\t\t\tLastName: \"Kopnicky\",\r\n\t\t\t// \t\t\t\t\tPersonalMessage: \"\",\r\n\t\t\t// \t\t\t\t\tPostcode: \"TN1 1EN\",\r\n\t\t\t// \t\t\t\t\tToName: \"\",\r\n\t\t\t// \t\t\t\t\tToemail: \"\",\r\n\t\t\t// \t\t\t\t\tTown: \"Tunbridge Wells\",\r\n\t\t\t// \t\t\t\t\titemsdescription: \"Giftcard worth £25.00 for £25.00 X @ £25.00\"\r\n\t\t\t// \t\t\t\t},\r\n\t\t\t// \t\t\t\t{\r\n\t\t\t// \t\t\t\t\tAddress1: \"19 Mount Ephraim Road\",\r\n\t\t\t// \t\t\t\t\tAddress2: \"\",\r\n\t\t\t// \t\t\t\t\tCounty: \"Kent\",\r\n\t\t\t// \t\t\t\t\tDenominationID: \"c028fc6d-7812-4433-bd91-eac732c27851\",\r\n\t\t\t// \t\t\t\t\tFirstName: \"David\",\r\n\t\t\t// \t\t\t\t\tFromName: \"David Kopnicky\",\r\n\t\t\t// \t\t\t\t\tLastName: \"Kopnicky\",\r\n\t\t\t// \t\t\t\t\tPersonalMessage: \"\",\r\n\t\t\t// \t\t\t\t\tPostcode: \"TN1 1EN\",\r\n\t\t\t// \t\t\t\t\tToName: \"\",\r\n\t\t\t// \t\t\t\t\tToemail: \"\",\r\n\t\t\t// \t\t\t\t\tTown: \"Tunbridge Wells\",\r\n\t\t\t// \t\t\t\t\titemsdescription: \"Giftcard worth £25.00 for £25.00 X @ £25.00\"\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t],\r\n\t\t\t// \t\t\tStatus: \"succeeded\"\r\n\t\t\t// \t\t},\r\n\t\t\t// \t\tType: 5\r\n\t\t\t// \t}\r\n\t\t\t// ];\r\n\r\n\t\t\t\t// start of debug data\r\n\t\t\t\t// commit(\"set_klarnacallbackflow\",true);\r\n\t\t\t\t// data.data.Data.ShowCourses = true;\r\n\t\t\t\t//\r\n\t\t\t\t// data.data.Data.Prepopulate = [{\r\n\t\t\t\t// \tData: {\r\n\t\t\t\t// \t\tSubscriptionID: \"79cd03c8-a1e5-ed11-8e8d-002248433a7a\",\r\n\t\t\t\t// \t\tDescription: \"\",\r\n\t\t\t\t// \t\tFixedPrice: 149,\r\n\t\t\t\t// \t\tStatus: true\r\n\t\t\t\t// \t},\r\n\t\t\t\t// \tType: 8\r\n\t\t\t\t// }];\r\n\r\n\t\t\t\t// commit(\"set_klarnacallbackflow\",true);\r\n\t\t\t\t// data.data.Data.Prepopulate = [{\r\n\t\t\t\t// \tData: {\r\n\t\t\t\t// \t\tError: [{\r\n\t\t\t\t// \t\t\tMessage: \"Yeeehaaaa\"\r\n\t\t\t\t// \t\t}],\r\n\t\t\t\t// \t\tStatus: false\r\n\t\t\t\t// \t},\r\n\t\t\t\t// \tType: 5\r\n\t\t\t\t// }];\r\n\r\n\t\t\t\t//data.data.Data.KlarnaShop = true;\r\n\t\t\t\t//data.data.Data.ForceSalonChoice = true;\r\n\t\t\t\t//data.data.Data.LoginRequired = true;\r\n\t\t\t\t//data.data.Data.EnableGroupSuppliers = false;\r\n\t\t\t\t// data.data.Data.GiftcardOtherCharge1Description = \"gergtre re thrthrt rth rthr trh ger g\";\r\n\t\t\t\t// data.data.Data.GiftcardOtherCharge1 = 5;\r\n\t\t\t\t//data.data.Data.SalonImageLink = \"https://terencepaul.com/uploads/sliders/didsbury-hairdressing-salon-28.jpg\";\r\n\t\t\t\t//data.data.Data.PrepopulateData.DenominationID = \"df043a0a-cbef-48b3-8dca-476aabe4fc33\";\r\n\t\t\t\t//data.data.Data.PrepopulateData.ProductID = \"vue 4c6fec3d-021a-49f9-b9c1-125d30e45cb2\";\r\n\r\n\t\t\t\t//data.data.Data.EnableShopStockCheck = true;\r\n\t\t\t\t//data.data.Data.SellProductsOnline = true;\r\n\t\t\t\t//data.data.Data.ThankYouPage = \"https://www.google.com\";\r\n\r\n\t\t\t\t//data.data.Data.Online_SelectServiceFirst = false;\r\n\t\t\t\t//data.data.Data.ShowSubscriptions = true;\r\n\t\t\t\t//data.data.Data.GCID = \"5475189520\";\r\n\r\n\t\t\t\t//data.data.Data.ClientRules.AgeGroupRequired_Booking = true;\r\n\t\t\t\t//data.data.Data.EnableGiftcardPaymentOnline = true;\r\n\r\n\t\t\t\t//data.data.Data.ShowServiceImageOnline = true;\r\n\t\t\t\t//end of debug data\r\n\r\n\t\t\t\tvar klarna = data.data.Data.Prepopulate.find( (entry) => entry.Type == 5 );\r\n\t\t\t\tif(typeof klarna != \"undefined\" && typeof klarna.Data != \"undefined\" && typeof klarna.Data.Products != \"undefined\") {\r\n\t\t\t\t\tif(klarna.Data.Status) dispatch(\"eraseBasket\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar servicesEntry = data.data.Data.Prepopulate.find( (entry) => entry.Type == 2 );\r\n\t\t\t\tif(typeof servicesEntry != \"undefined\") {\r\n\t\t\t\t\tservicesEntry.Data.Package.forEach( (item, i) => {\r\n\t\t\t\t\t\titem[\"TeamMemberId\"] = item.TeamMemberid == 0 ? \"00000000-0000-0000-0000-000000000000\" : item.TeamMemberid;\r\n\t\t\t\t\t\titem[\"Bookingserviceid\"] = item.Serviceid;\r\n\t\t\t\t\t\titem[\"TeamMember\"] = item.TeamMemberName;\r\n\t\t\t\t\t\titem[\"TMImageURL\"] = item.ImageLink;\r\n\t\t\t\t\t\tdelete item.Serviceid;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdispatch(\"saveTemporaryData\",{name:\"rebook_services\",value:JSON.stringify({ services: servicesEntry.Data.Package, Date: servicesEntry.Data.Date*1000, Type:2 })});\r\n\t\t\t\t\tvar idx = data.data.Data.Prepopulate.findIndex( (entry) => entry.Type == 2 );\r\n\t\t\t\t\tdata.data.Data.Prepopulate.splice(idx,1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar servicesEntry = data.data.Data.Prepopulate.find( (entry) => entry.Type == 10 );\r\n\t\t\t\tif(typeof servicesEntry != \"undefined\") {\r\n\t\t\t\t\tservicesEntry.Data.Package.forEach( (item, i) => {\r\n\t\t\t\t\t\titem[\"TeamMemberId\"] = item.TeamMemberid == 0 ? \"00000000-0000-0000-0000-000000000000\" : item.TeamMemberid;\r\n\t\t\t\t\t\titem[\"Bookingserviceid\"] = item.Serviceid;\r\n\t\t\t\t\t\titem[\"TeamMember\"] = item.TeamMemberName;\r\n\t\t\t\t\t\titem[\"TMImageURL\"] = item.ImageLink;\r\n\t\t\t\t\t\tdelete item.Serviceid;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdispatch(\"saveTemporaryData\",{name:\"rebook_services\",value:JSON.stringify({ services: servicesEntry.Data.Package, Date: servicesEntry.Data.Date*1000, Type:10 })});\r\n\t\t\t\t\tvar idx = data.data.Data.Prepopulate.findIndex( (entry) => entry.Type == 10 );\r\n\t\t\t\t\tdata.data.Data.Prepopulate.splice(idx,1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\tcommit(\"set_parameters\", data.data.Data);\r\n\r\n\t\t\t\t// thank you page url paramsToSend\r\n\t\t\t\tlet thankyoupageParamsToSend = {};\r\n\t\t\t\tif(state.parameters.ThankYouPage != \"\") {\r\n\t\t\t\t\tlet parsToCheck = [\"_ga\",\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\"];\r\n\t\t\t\t\tlet pars = [];\r\n\t\t\t\t\tparsToCheck.forEach( (item) => {\r\n\t\t\t\t\t\tif(typeof state.urlParams[item] != \"undefined\") {\r\n\t\t\t\t\t\t\tpars.push(item + \"=\" + state.urlParams[item]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tstate.trackingParamsString = pars.join(\"&\");\r\n\t\t\t\t\tif(pars.length>0) {\r\n\t\t\t\t\t\tstate.parameters.ThankYouPage += \"/?\" + state.trackingParamsString;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// set colours\r\n\t\t\t\tvar color = typeof data.data.Data.ButtonColor != \"undefined\" ? data.data.Data.ButtonColor : \"#079F90\";\r\n\t\t\t\tdocument.documentElement.style.setProperty(\"--button-color\",color);\r\n\t\t\t\tdocument.documentElement.style.setProperty(\"--button-color-light\",tinycolor(color).lighten(10).toString());\r\n\t\t\t\tdocument.documentElement.style.setProperty(\"--button-color-transparent\",tinycolor(color).setAlpha(0.5).toString());\r\n\t\t\t\tcommit(\"set_userid\", data.data.Data.clientid);\r\n\t\t\t\tstate.filters.find( function(a) {return a.id==\"favourite\"} ).selected = state.parameters.EnableFavFilter;\r\n\r\n\t\t\t\t// if GCID is supplied, redirect to giftcards if possible\r\n\t\t\t\tif(state.parameters.GCID != \"\") {\r\n\t\t\t\t\tstate.urlParams[\"tab\"] = \"giftcards\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar doRoute = typeof state.urlParams.tab != \"undefined\";\r\n\t\t\t\tvar path = \"shop\";\r\n\r\n\r\n\r\n\t\t\t\tif(doRoute) {\r\n\t\t\t\t\tif(state.parameters.OnlineGCSaleType == 0 && state.urlParams.tab == \"giftcards\") doRoute = false;\r\n\t\t\t\t\tif(state.parameters.Showbook == false && state.urlParams.tab == \"book\") doRoute = false;\r\n\t\t\t\t\tif(state.parameters.SellProductsOnline == false && state.urlParams.tab == \"shop\") doRoute = false;\r\n\t\t\t\t}\r\n\t\t\t\tif(doRoute) {\r\n\t\t\t\t\tpath = state.urlParams.tab;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif(state.parameters.SellProductsOnline == false) {\r\n\t\t\t\t\t\tif(state.parameters.Showbook == true) {\r\n\t\t\t\t\t\t path = \"book\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t path = \"contact\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// GA tracking start\r\n\t\t\t\tvar gaTrackingDomains = state.parameters.GACrossTrackingDomains.split(\",\");\r\n\t\t\t\tgtag('config', state.parameters.GA4IDSalonIQ, {/*'debug_mode': true,*/linker:{domains:gaTrackingDomains}} );\r\n\t\t\t\tgtag('config', state.parameters.GATrackingIDSalonIQ, JSON.parse(JSON.stringify(state.gaConfigCustomDimensionsObjectSalonIQ)) );\r\n\t\t\t\tif(state.parameters.GA4ID != \"\") {\r\n\t\t\t\t\tgtag('config', state.parameters.GA4ID, {linker:{domains:gaTrackingDomains}} );\r\n\t\t\t\t} else {\r\n\t if(state.parameters.GATrackingID != \"\") {\r\n\t\t\t\t\t\t// we need to custom build this object for tenant as their indices may differ\r\n\t\t\t\t\t\tstate.gaConfigCustomDimensionsObject.custom_map[\"dimension\"+ state.parameters.CDIndex_Salon] = \"salon\";\r\n\t\t\t\t\t\tstate.gaConfigCustomDimensionsObject.custom_map[\"dimension\"+ state.parameters.CDIndex_Teammember] = \"teammember\";\r\n\t\t\t\t\t\tstate.gaConfigCustomDimensionsObject.custom_map[\"dimension\"+ state.parameters.CDIndex_Widget] = \"widget\";\r\n\t\t\t\t\t\tstate.gaConfigCustomDimensionsObject.custom_map[\"dimension\"+ state.parameters.CDIndex_Purchase] = \"purchase\";\r\n\t state.gaConfigCustomDimensionsObject.linker.domains = gaTrackingDomains;\r\n\t\t\t\t\t\tvar obj = JSON.parse(JSON.stringify(state.gaConfigCustomDimensionsObject));\r\n\t obj['cookie_flags'] = 'max-age=7200;secure;samesite=none';\r\n\t\t\t\t\t\tgtag('config', state.parameters.GATrackingID, obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n // GA tracking end\r\n\t\t\t\t// FBPixel start\r\n\t\t\t\tif(state.parameters.FBPixelID != \"\") {\r\n\t\t\t\t\tfbq('init', state.parameters.FBPixelID);\r\n\t\t\t\t fbq('track', 'PageView');\r\n\t\t\t\t}\r\n\t\t\t\t// FBPixel end\r\n\r\n\r\n\t\t\t\tdispatch(\"rehydrateBasket\");\r\n\t\t\t\tdispatch(\"loadSalons\");\r\n\t\t\t\tdispatch(\"startFBApp\");\r\n\t\t\t\t//dispatch(\"setStripeInstance\",state.parameters.spid);\r\n\t\t\t\t// state.stripeInstance = state.parameters.spid == \"\" ? Stripe(state.parameters.MyStripePublishableKey) : Stripe(state.parameters.MyStripePublishableKey,{stripeAccount: state.parameters.spid});\r\n\t\t\t\tstate.accountCode = data.data.Message;\r\n\r\n\t\t\t\tvar products = data.data.Data.Prepopulate.filter( (entry) => entry.Type == 1 );\r\n\t\t\t\tif( products.length > 0) {\r\n\t\t\t\t\tcommit(\"set_desiredpage\",\"checkout\");\r\n\t\t\t\t\tif(!state.parameters.LoggedIn) path = \"user\";\r\n\t\t\t\t\tcommit(\"set_tmrecommendation\",products[0].Data);\r\n\t\t\t\t\tfor(var i=0; i entry.Type == 3 );\r\n\t\t\t\t// if(giftcards.length>0) {\r\n\t\t\t\t// \tconsole.log(111);\r\n\t\t\t\t// \tcommit(\"set_desiredpage\",\"giftcards\");\r\n\t\t\t\t// \tif(!state.parameters.LoggedIn) path = \"user\";\r\n\t\t\t\t// }\r\n\t\t\t\t// console.log(BookingPortal.$route.name,path);\r\n\t\t\t\tif(BookingPortal.$route.name != path) BookingPortal.$router.replace(path);\r\n } else {\r\n \tdispatch(\"showNotification\",{message:\"Loading parameters failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n \t}\r\n });\r\n },\r\n\tsetStripeInstance({commit,state,dispatch},spid) {\r\n\t\tstate.stripeInstance = spid == \"\" ? Stripe(state.parameters.MyStripePublishableKey) : Stripe(state.parameters.MyStripePublishableKey,{stripeAccount: spid});\r\n\t},\r\n loadSalons ({commit,state,dispatch}) {\r\n axios.post(localPrefix+\"/shoponline/GetSalons\",{})\r\n .then(data => {\r\n\t\t\t//data.data.Status = \"Fail\";\r\n\t\t\t//data.data.Data.Salons[1].AnonymousMode = true;\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\t//data.data.Data.Salons[1].KlarnaPayments = true;\r\n\t\t\t\t// data.data.Data.Salons = data.data.Data.Salons.concat(data.data.Data.Salons);\r\n\t\t\t\t// data.data.Data.Salons = data.data.Data.Salons.concat(data.data.Data.Salons);\r\n\t\t\t\t// data.data.Data.Salons = data.data.Data.Salons.concat(data.data.Data.Salons);\r\n\r\n\t\t\t\t// data.data.Data.Salons.forEach((item, i) => {\r\n\t\t\t\t// \titem.QueueMode = true;\r\n\t\t\t\t// });\r\n\r\n\t\t\t\tvar found = data.data.Data.Salons.find( salon => salon.Showbook == true );\r\n\t\t\t\tif(typeof found == \"undefined\") {\r\n\t\t\t\t\tconsole.log(\"No salons enabled for online bookings, disabling BOOK tab...\");\r\n\t\t\t\t\tstate.parameters.Showbook = false;\r\n\t\t\t\t\tif(BookingPortal.$router.currentRoute.name == \"book\") {\r\n\t\t\t\t\t\tconsole.log(\"No salons enabled for online bookings but current path is BOOK, redirecting to CONTACT...\");\r\n\t\t\t\t\t\tBookingPortal.$router.replace(\"contact\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n commit(\"set_salons\",data.data.Data);\r\n\t\t\t\tcommit(\"set_selectedSalonID\",data.data.Data.Salons[0].ID);\r\n\t\t\t\tfound = data.data.Data.Salons.find( salon => salon.ID == data.data.Data.DefaultSalonId );\r\n\t\t\t\tif(typeof found != \"undefined\") {\r\n\t\t\t\t\tdocument.title=state.parameters.TenantName+\"-\"+found.Name;\r\n\t\t\t\t\tcommit(\"set_selectedSalonID\",data.data.Data.DefaultSalonId); \r\n\t\t\t\t}\r\n commit(\"set_loadingsalons\", false);\r\n if(state.parameters.LoggedIn) {\r\n commit(\"set_authenticated\",true);\r\n\t\t\t\t\tdispatch(\"saveUserIDCookie\");\r\n dispatch(\"loadUserDetails\",true);\r\n } else {\r\n commit(\"set_initialising\", false);\r\n\t\t\t\t\tif( (state.desiredPage != \"checkout\" && state.desiredPage != \"user\") || state.parameters.LoggedIn) {\r\n\t if(BookingPortal.$router.currentRoute.name != state.desiredPage && state.desiredPage!='') { BookingPortal.$router.replace(state.desiredPage); }\r\n\t commit(\"set_desiredpage\",\"\");\r\n\t }\r\n }\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Loading salons failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n \t}\r\n });\r\n },\r\n loadProducts ({commit,state,dispatch},params) {\r\n axios.post(localPrefix+\"/shoponline/GetOnlineProducts\",{ salonid: state.parameters.ProductsSalonID })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n commit(\"set_products\",data.data.Data);\r\n commit(\"set_loadingproducts\", false);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Loading products failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t}\r\n\t\t\tif(typeof params.callback == \"function\") params.callback(data.data);\r\n });\r\n },\r\n\tcheckProductAvailability ({commit,state,dispatch},params) {\r\n\t\tif(params.productids == \"\") return;\r\n\t\tcommit(\"set_checkingproductavailability\", true);\r\n axios.post(localPrefix+\"/shoponline/GetProductStocks\",{ productids: params.productids, salonid: state.parameters.ProductsSalonID })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Loading product availability failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t}\r\n\t\t\tcommit(\"set_checkingproductavailability\", false);\r\n\t\t\tif(typeof params.callback == \"function\") params.callback(data.data);\r\n });\r\n },\r\n\tloadDenominations ({commit,state,dispatch},data) {\r\n\t\tcommit(\"set_loadingdenominations\", true);\r\n axios.post(localPrefix+\"/shoponline/GetmyDenominations\",{})\r\n .then(response => {\r\n if (response.data.Status == \"Success\") {\r\n\t\t\t\t//response.data.Data.Denomination[0].DMImageURL = \"https://cdn.pixabay.com/photo/2021/08/25/20/42/field-6574455__340.jpg\";\r\n commit(\"set_denominations\",response.data.Data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:3000});\r\n \t}\r\n\t\t\tdata.callback(response);\r\n\t\t commit(\"set_loadingdenominations\", false);\r\n });\r\n },\t\r\n\tloadCourses ({commit,state,dispatch},data) {\r\n\t\tcommit(\"set_loadingcourses\", true);\r\n axios.post(localPrefix+\"/shoponline/GetCourses\",{ salonid: state.selectedSalonID })\r\n .then(response => {\r\n if (response.data.Status == \"Success\") {\r\n commit(\"set_courses\",response.data.Data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Loading courses failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:3000});\r\n \t}\r\n\t\t\tdata.callback(response);\r\n\t\t commit(\"set_loadingcourses\", false);\r\n });\r\n },\r\n\tloadSubscriptions ({commit,state,dispatch},data) {\r\n\t\tcommit(\"set_loadingsubscriptions\", true);\r\n axios.post(localPrefix+\"/shoponline/GetActiveSubscriptions\",{ salonid: state.selectedSalonID })\r\n .then(response => {\r\n if (response.data.Status == \"Success\") {\r\n commit(\"set_subscriptions\",response.data.Data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Loading subscriptions failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:3000});\r\n \t}\r\n\t\t\tdata.callback(response);\r\n\t\t commit(\"set_loadingsubscriptions\", false);\r\n });\r\n },\r\n loadExistingCards ({commit,state,dispatch},params) {\r\n axios.post(localPrefix+\"/shoponline/getStripeAllCards\",{ clientid: state.user.id })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n commit(\"set_existingcards\",data.data.Data.Cards);\r\n } else {\r\n }\r\n });\r\n },\r\n\tloadSalonReviews ({commit,state,dispatch},params) {\r\n\t\tcommit(\"set_loadingsalonreviews\", true);\r\n axios.post(localPrefix+\"/shoponline/GetsalonReviews\",{ salonid: state.selectedSalonID, page: params.page })\r\n .then(data => {\r\n\t\t\tcommit(\"set_loadingsalonreviews\", false);\r\n if (data.data.Status == \"Success\") {\r\n commit(\"set_salonreviews\",data.data.Data);\r\n } else {\r\n\t\t\t}\r\n });\r\n },\r\n\tloadCharge ({commit,state,dispatch},params) {\r\n\t\tcommit(\"set_loadingcharge\", true);\r\n axios.post(localPrefix+\"/shoponline/GetDepositAmount\",{\r\n\t\t\titems: params.items,\r\n\t\t\tupgrades: params.upgrades,\r\n\t\t\tpromocode: params.promocode,\r\n\t\t\tqueuemode: params.queuemode\r\n\t\t}).then(data => {\r\n\t\t\t//data.data.Status = \"Fail\";\r\n\t\t\t//console.log(data.data);\r\n\t\t\t// data.data.Data.DepositAmount = 76;\r\n\t\t\t// data.data.Data.FullAmount = 153;\r\n\t\t\t// data.data.Data.ShowKlarnaButton = true;\r\n\t\t\t//data.data.Data.IsSetupFlow = true;\r\n\t\t\t\r\n\t\t\tif (data.data.Status == \"Success\") {\r\n\t\t\t\tstate.klarnaButtonText = data.data.Data.KlarnaText;\r\n\t\t\t\tstate.isKlarnaEnabled = data.data.Data.ShowKlarnaButton;\t\t\t\t\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Loading charge failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},buttonLabel:\"RETRY\",callback:BOOK.loadCharge,timeout:0});\r\n\t\t\t}\r\n\t\t\tparams.callback(data.data);\r\n\t\t\tcommit(\"set_loadingcharge\", false);\r\n });\r\n\t\t// .catch(error => {\r\n\t\t// \tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:getdepositamount)\",style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t// \tcommit(\"set_loadingcharge\", false);\r\n\t\t// });\r\n },\r\n\tapplyPromocode ({commit,state,dispatch},params) {\r\n\t\tcommit(\"set_loadingpromocode\", true);\r\n axios.post(localPrefix+\"/shoponline/CheckPromocode\",params)\r\n .then(data => {\r\n\t\t\tcommit(\"set_loadingpromocode\", false);\r\n\t\t\tparams.callback(data.data);\r\n if (data.data.Status == \"Success\") {\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Applying promocode failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:3000});\r\n\t\t\t}\r\n });\r\n },\r\n\tvalidateNewGiftcard ({commit,state,dispatch},params) {\r\n\t\tcommit(\"set_validatingnewgiftcard\", true);\r\n axios.post(localPrefix+\"/shoponline/ValidateGiftCards\",params)\r\n .then(data => {\r\n\t\t\tcommit(\"set_validatingnewgiftcard\", false);\r\n\t\t\tparams.callback(data.data);\r\n if (data.data.Status == \"Success\") {\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Gift card validation failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:3000});\r\n\t\t\t}\r\n });\r\n },\r\n\tloadQuestions({ commit,dispatch }, data1) {\r\n\t\tcommit(\"set_questionsloading\", true);\r\n axios.post(localPrefix+\"/shoponline/IsSkinTestRequired\",data1)\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tcommit(\"set_questionsdata\",data.data.Data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Questions failed to load. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t}\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_questionsloading\", false);\r\n }).catch(error => {\r\n\t\t\t//console.log(error);\r\n\t\t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:loadingquestions)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\tcommit(\"set_questionsloading\", false);\r\n\t\t});\r\n\t},\r\n\tloadUpgrades({ commit,dispatch }, data1) {\r\n\t\tcommit(\"set_loadingupgrades\", true);\r\n axios.post(localPrefix+\"/shoponline/GetUpgrades\",data1)\r\n .then(data => {\r\n\r\n\t\t\t// data.data.Status = \"Fail\";\r\n\t\t\t// data.data.Message = \"new client\";\r\n\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tdata.data.Data.Services.forEach( (item) => item[\"showDetailedDescription\"]=true );\r\n\t\t\t\tdata.data.Data.Services.sort( (a,b) => b.Price - a.Price );\r\n\t\t\t\tcommit(\"set_upgrades\",data.data.Data.Services);\r\n\t\t\t\tdata1.callback(data.data);\r\n } else {\r\n\t\t\t\tif(data.data.Message.toLowerCase().indexOf(\"new client\") > -1) {\r\n\t\t\t\t\tBOOK.makeAnotherBooking();\r\n\t\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdispatch(\"showNotification\",{message:\"Upgrades failed to load. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\t}\r\n\t\t\t}\r\n commit(\"set_loadingupgrades\", false);\r\n }).catch(error => {\r\n\t\t\tconsole.log(error);\r\n\t\t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:loadingupgrades)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\tcommit(\"set_loadingupgrades\", false);\r\n\t\t});\r\n\t},\r\n\tmakeBooking ({ commit,dispatch }, data1) {\r\n\t\tcommit(\"set_loading\",true);\r\n\t\tcommit(\"set_makebookingloading\", true);\r\n axios.post(localPrefix+\"/shoponline/MakeBooking\",data1)\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\t// if (data.data.Data.PaymentSucessfull === true) {\r\n\t\t\t\t// \tcommit(\"set_existingcards\",data.data.Data.Cards.Cards);\r\n\t\t\t\t// \tcommit(\"set_deliveryaddresses\",data.data.Data.ClientAddresses);\r\n\t\t\t\t// \tcommit(\"set_mygiftcards\",data.data.Data.GiftCards);\r\n\t\t\t\t// } else {\r\n\t\t\t\t// \tdispatch(\"showNotification\",{message:\"Payment failed. \"+data.data.Data.ErrorMessage,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\t// }\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Booking failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n }\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_makebookingloading\", false);\r\n\t\t\tcommit(\"set_loading\",false);\r\n }).catch(error => {\r\n\t\t\t//console.log(error);\r\n\t\t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:makebooking)\",style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\tcommit(\"set_makebookingloading\", false);\r\n\t\t\tcommit(\"set_loading\",false);\r\n\t\t});\r\n\t},\r\n // createBookingPayment({ commit,dispatch }, data1) {\r\n\t// \tcommit(\"set_paymentsloading\", true);\r\n // axios.post(localPrefix+\"/shoponline/MakeStripePayment\",data1)\r\n // .then(data => {\r\n // if (data.data.Status == \"Success\") {\r\n\t// \t\t\tif (data.data.Data.PaymentSucessfull === true) {\r\n\t// \t\t\t\tcommit(\"set_existingcards\",data.data.Data.Cards.Cards);\r\n\t// \t\t\t\tcommit(\"set_deliveryaddresses\",data.data.Data.ClientAddresses);\r\n\t// \t\t\t\tcommit(\"set_mygiftcards\",data.data.Data.GiftCards);\r\n\t// \t\t\t\tcommit(\"set_validgiftcards\",response.data.Data.ValidGiftCards);\r\n\t// \t\t\t} else {\r\n\t// \t\t\t\t//dispatch(\"showNotification\",{message:\"Payment failed. \"+data.data.Data.ErrorMessage,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t// \t\t\t}\r\n // } else if (data.data.Status == \"Fail\") {\r\n\t// \t\t\tdispatch(\"showNotification\",{message:\"Payment failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n // } else {\r\n\t// \t\t\t// requires action, no notification\r\n\t// \t\t}\r\n\t// \t\tdata1.callback(data.data);\r\n // commit(\"set_paymentsloading\", false);\r\n // }).catch(error => {\r\n\t// \t\t//console.log(error);\r\n\t// \t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:makestripepayment)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t// \t\tcommit(\"set_paymentsloading\", false);\r\n\t// \t});\r\n\t// },\r\n\tcreateKlarnaPayment ({ commit,state,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n axios.post(localPrefix+\"/shoponline/GetKlarnaPaymentintent\",data1)\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Klarna payment failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\tcommit(\"set_paymentsloading\", false);\r\n }\r\n\t\t\tdata1.callback(data.data);\r\n }).catch(error => {\r\n\t\t\t//console.log(error);\r\n\t\t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:createklarnapayment)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\tcommit(\"set_paymentsloading\", false);\r\n\t\t});\r\n\t},\r\n\r\n\tcreateSubscription ({ commit,state,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n axios.post(localPrefix+(\"/shoponline/SaveClientSubscription\"),{data: JSON.stringify(data1.data)})\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n } else if (data.data.Status == \"Fail\") {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n } else {\r\n\t\t\t\t// requires action, no notification\r\n\t\t\t}\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_paymentsloading\", false);\r\n }).catch(error => {\r\n\t\t\tif(error.response) {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"System error (2). Please reload. (ERROR:saveclientsubscription)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n\t\t\tcommit(\"set_paymentsloading\", false);\r\n\t\t});\r\n\t},\r\n\r\n\r\n\tmakeGCPayment ({ commit,state,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n axios.post(localPrefix+(\"/shoponline/MakebookingwithGC\"),data1.paymentintentdata)\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tif(typeof data.data.Data.ValidGiftCards != \"undefined\") commit(\"set_validgiftcards\",data.data.Data.ValidGiftCards);\r\n } else if (data.data.Status == \"Fail\") {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n } else {\r\n\t\t\t}\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_paymentsloading\", false);\r\n }).catch(error => {\r\n\t\t\tif(error.response) {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"System error (2). Please reload. (ERROR:processtransactions/processsetupintent)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n\t\t\tcommit(\"set_paymentsloading\", false);\r\n\t\t});\r\n\t},\r\n\r\n\r\n\tcreatePaymentNEW ({ commit,state,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n axios.post(localPrefix+(data1.data.setup?\"/shoponline/processsetupintent\":\"/shoponline/processtransactions\"),{data: JSON.stringify(data1.data)})\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tif(data1.data.setup) commit(\"set_existingcards\",data.data.Data.Cards.Cards);\r\n\t\t\t\tif(typeof data.data.Data.ValidGiftCards != \"undefined\") commit(\"set_validgiftcards\",data.data.Data.ValidGiftCards);\r\n } else if (data.data.Status == \"Fail\") {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n } else {\r\n\t\t\t\t// requires action, no notification\r\n\t\t\t}\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_paymentsloading\", false);\r\n }).catch(error => {\r\n\t\t\tif(error.response) {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"System error (2). Please reload. (ERROR:processtransactions/processsetupintent)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n\t\t\tcommit(\"set_paymentsloading\", false);\r\n\t\t});\r\n\t},\r\n\tgetPaymentIntent({ commit,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n axios.post(localPrefix+\"/shoponline/CreatePaymentIntent\",data1.paymentintentdata)\r\n .then(data => {\r\n\t\t\t// data.data.Status = \"Fail\";\r\n\t\t\t// data.data.Data = null;\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tcommit(\"set_existingcards\",data.data.Data.cards.Cards);\r\n } else if (data.data.Status == \"Fail\") {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Payment failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n } else {\r\n\t\t\t\t// requires action, no notification\r\n\t\t\t}\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_paymentsloading\", false);\r\n }).catch(error => {\r\n\t\t\t//console.log(error);\r\n\t\t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:makestripepayment)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\tcommit(\"set_paymentsloading\", false);\r\n\t\t});\r\n\t},\r\n\tupdatePaymentIntent({ commit,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n axios.post(localPrefix+\"/shoponline/UpdatePaymentIntent\",{\r\n\t\t\tclientsecret: data1.clientsecret,\r\n\t\t\ttype: data1.updateData.value.type\r\n\t\t}).then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\r\n } else if (data.data.Status == \"Fail\") {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Payment failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n } else {\r\n\t\t\t\t// requires action, no notification\r\n\t\t\t}\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_paymentsloading\", false);\r\n }).catch(error => {\r\n\t\t\t//console.log(error);\r\n\t\t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:makestripepayment)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\tcommit(\"set_paymentsloading\", false);\r\n\t\t});\r\n\t},\r\n\tgetSetupIntent({ commit,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n axios.post(localPrefix+\"/shoponline/CreateSetupIntent\",data1.paymentintentdata)\r\n .then(data => {\r\n\t\t\t// data.data.Status = \"Fail\";\r\n\t\t\t// data.data.Data = null;\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\t//commit(\"set_existingcards\",data.data.Data.cards.Cards);\r\n } else if (data.data.Status == \"Fail\") {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Payment failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n } else {\r\n\t\t\t\t// requires action, no notification\r\n\t\t\t}\r\n\t\t\tdata1.callback(data.data);\r\n commit(\"set_paymentsloading\", false);\r\n }).catch(error => {\r\n\t\t\t//console.log(error);\r\n\t\t\tdispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:getSetupIntent)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\tcommit(\"set_paymentsloading\", false);\r\n\t\t});\r\n\t},\r\n removeStripeCard({ commit,state,dispatch }, data1) {\r\n\t\tcommit(\"set_paymentsloading\", true);\r\n\t\taxios.post(localPrefix+\"/shoponline/deleteStripeCard\",{cardid:data1,clientid:state.user.id})\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n //data1.callback(data.data);\r\n var idx = state.existingcards.findIndex(function(a){ return a.CardID == data1; });\r\n state.existingcards.splice(idx,1);\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Card has been deleted successfully.\",timeout:3000});\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Removing Stripe card failed. \"+data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n }\r\n commit(\"set_paymentsloading\", false);\r\n });\r\n\t},\r\n startFBApp({commit,state}) {\r\n\t\twindow.fbAsyncInit = function () {\r\n\t\t\tFB.init({\r\n\t\t\t\tappId: state.parameters.fp,//'1124070711000179',\r\n\t\t\t\tcookie: true, // enable cookies to allow the server to access the session\r\n\t\t\t\txfbml: true, // parse social plugins on this page\r\n\t\t\t\tversion: 'v2.12' // use graph api version 2.8\r\n\t\t\t});\r\n\t\t};\r\n\t\t(function (d, s, id) {\r\n\t\t\tvar js, fjs = d.getElementsByTagName(s)[0];\r\n\t\t\tif (d.getElementById(id)) return;\r\n\t\t\tjs = d.createElement(s); js.id = id;\r\n\t\t\tjs.src = \"//connect.facebook.net/en_US/sdk.js\";\r\n\t\t\tfjs.parentNode.insertBefore(js, fjs);\r\n\t\t}(document, 'script', 'facebook-jssdk'));\r\n\t},\r\n login ({commit,getters,dispatch,state}, payload) {\r\n commit('set_authenticating',true);\r\n axios.post(localPrefix+\"/shoponline/Logmein\",{\r\n\t data: JSON.stringify({\r\n\t\t\t\tRegister: {\r\n\t\t\t\t\t\tEmail: payload.user.username,\r\n\t\t\t\t\t\tPassword: payload.user.password,\r\n\t\t\t\t\t\tFaccesstoken: payload.user.fbtoken,\r\n\t\t\t\t\t\tplatformDetails: getters.getPlatformDetails\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t tenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n\t }).then( function (response) {\r\n if(response.data.Status===\"Success\") {\r\n commit(\"set_userid\", response.data.Data.ClientId);\r\n dispatch(\"saveUserIDCookie\");\r\n dispatch(\"loadUserDetails\",false);\r\n } else {\r\n\t\t\t\tcommit('set_authenticating',false);\r\n dispatch(\"showNotification\",{message:\"Login failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n //SalonIQWidget2.$ons.notification.toast(\"Login failed.\", { timeout: 1000, animation: 'ascend' });\r\n }\r\n\t\t})\r\n },\r\n logout({commit,dispatch}) {\r\n commit('set_authenticating',true);\r\n\t\taxios.post(localPrefix+\"/shoponline/Logmeout\", {\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n\t\t}).then(function (response) {\r\n\t\t\tcommit(\"set_authenticated\", false);\r\n commit('set_authenticating',false);\r\n dispatch(\"deleteUserIDCookie\");\r\n\t\t\tlocation.href = state.parameters.PortalLink;\r\n\t\t})\r\n\t},\r\n register ({commit,getters,dispatch,state}, payload) {\r\n commit('set_authenticating',true);\r\n axios.post(localPrefix+\"/shoponline/Register\",{\r\n\t data: JSON.stringify({\r\n\t\t\t\tRegister: {\r\n FirstName: payload.user.firstname,\r\n LastName: payload.user.lastname,\r\n Email: payload.user.email,\r\n Password: payload.user.password,\r\n Mobile: payload.user.mobile,\r\n\t\t\t\t\tCountryCode: payload.user.countrycode,\r\n EmailOptout: payload.user.EmailOptout,\r\n SmsOptout: payload.user.SmsOptout,\r\n TokenID: payload.user.TokenID,\r\n platformDetails: getters.getPlatformDetails\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t tenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n\t }).then( function (response) {\r\n if(response.data.Status===\"Success\") {\r\n commit(\"set_userid\", response.data.Data.ClientId);\r\n dispatch(\"saveUserIDCookie\");\r\n dispatch(\"loadUserDetails\",false);\r\n } else {\r\n\t\t\t\tif(response.data.Message.indexOf(\"new password\") != -1) {\r\n\t\t\t\t\tdispatch(\"showNotification\",{message:response.data.Message,forgotpwd:true,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\t} else {\r\n \tdispatch(\"showNotification\",{message:response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\t}\r\n\t\t\t\tcommit('set_authenticating',false);\r\n }\r\n\t\t})\r\n },\r\n\r\n\r\n setMissingDetails({commit,getters,dispatch,state}, payload) {\r\n commit('set_authenticating',true);\r\n axios.post(localPrefix+\"/shoponline/GetMissingdetails\", {\r\n data: JSON.stringify({ Missingdetails: payload.user }),\r\n tenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n }).then(function (response) {\r\n commit('set_authenticating',false);\r\n commit(\"set_showmissingdetails\",response.data.Status != \"Success\");\r\n if(response.data.Status == \"Success\") {\r\n\t\t\t\tstate.user.details.Mobile = payload.user.Mobile;\r\n\t\t\t\tstate.user.details.Reminderoptout = payload.user.EmailOptout;\r\n\t\t\t\tstate.user.details.SmsOptout = payload.user.SmsOptout;\r\n\t\t\t} else {\r\n commit(\"set_missingdetailserror\",response.data.Message);\r\n }\r\n })\r\n\t},\r\n\r\n\r\n forgotPassword({commit,getters,dispatch,state}, payload) {\r\n\t\tcommit(\"set_loading\",true);\r\n\t\taxios.post(localPrefix+\"/shoponline/ForgotPassword/\", {\r\n\t\t\tUsername: payload.user.email,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n\t\t}).then(function (response) {\r\n if(response.data.Status==\"Success\"){\r\n dispatch(\"showNotification\",{message:\"Email has been sent.\",style:{'background-color':\"lawngreen\"},timeout:2000});\r\n\t\t\t\tpayload.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Error. Email not sent. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n }\r\n\t\t\tcommit(\"set_loading\",false);\r\n\t\t}).catch(function (response) {\r\n\t\t\tcommit(\"set_loading\",false);\r\n dispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:forgotpassword)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t})\r\n\t},\r\n\r\n\tresetPassword({commit,getters,dispatch,state}, payload) {\r\n\t\tcommit(\"set_loading\",true);\r\n\t\taxios.post(localPrefix+\"/shoponline/ResetmyPassword/\", {\r\n\t\t\tEmailAddress: payload.user.email,\r\n\t\t\tPassword: payload.user.npassword,\r\n\t\t\tResetCode: payload.user.ccode,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n\t\t}).then(function (response) {\r\n if(response.data.Status==\"Success\"){\r\n dispatch(\"showNotification\",{message:\"Your password has been changed. Please log in.\",style:{'background-color':\"lawngreen\"},timeout:3000});\r\n\t\t\t\tpayload.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Error. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n }\r\n\t\t\tcommit(\"set_loading\",false);\r\n\t\t}).catch(function (response) {\r\n\t\t\tcommit(\"set_loading\",false);\r\n dispatch(\"showNotification\",{message:\"System error. Please reload. (ERROR:forgotpassword)\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t})\r\n\t},\r\n\r\n\r\n loadUserDetails ({commit,state,dispatch},autoLoggedIn) {\r\n commit(\"set_loadinguserdetails\",true);\r\n\t\taxios.post(localPrefix+'/shoponline/getMyDetails',{\r\n\t tenantInfo: JSON.stringify(getTenantInfoForRequest({userid: state.user.id}))\r\n\t }).then( function (response) {\r\n\t\t\tcommit(\"set_loadinguserdetails\",false);\r\n if(response.data.Status===\"Success\") {\r\n\t\t\t\tif(state.desiredPage == \"\") {\r\n\t\t\t\t\tif(autoLoggedIn == false && (typeof state.urlParams.tab == \"undefined\") ) {\r\n\t\t\t\t\t\tlet targetPage = state.parameters.Showbook ? \"book\" : \"contact\";\r\n\t\t\t\t\t\tif(targetPage == BookingPortal.$router.currentRoute.name) {\r\n\t\t\t\t\t\t\ttargetPage = \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcommit(\"set_desiredpage\",targetPage);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// response.data.Data.Clients[0].IsOnlineBookingsEnabledClient = false;\r\n\t\t\t\t// response.data.Data.Clients[0].IsOnlineBookingClientmessage = \"oh sod off\";\r\n\t\t\t\t//response.data.Data.Clients[0].Missingdetails = true;\r\n\t\t\t\t// for (var i = 0; i < response.data.Data.Clients[0].Cards.Cards.length; i++) {\r\n\t\t\t\t// \tresponse.data.Data.Clients[0].Cards.Cards[i][\"open\"] = false;\r\n\t\t\t\t// }\r\n\t\t\t\tcommit(\"set_existingcards\",response.data.Data.Clients[0].Cards.Cards);\r\n commit(\"set_userdetails\",response.data.Data.Clients[0]);\r\n\t\t\t\tcommit(\"set_recommendations\",response.data.Data.Recommendations);\r\n\t\t\t\tcommit(\"set_pastproducts\",response.data.Data.PastProducts);\r\n\t\t\t\tcommit(\"set_deliveryaddresses\",response.data.Data.ClientAddresses);\r\n\t\t\t\tcommit(\"set_mygiftcards\",response.data.Data.GiftCards);\r\n\t\t\t\tcommit(\"set_validgiftcards\",response.data.Data.ValidGiftCards);\r\n\t\t\t\tcommit(\"set_mycourses\",response.data.Data.Clients[0].Courses);\r\n\t\t\t\tif(state.parameters.LoginRequired) commit(\"set_selectedSalonID\",response.data.Data.Clients[0].HomeSalonId);\r\n commit(\"set_showmissingdetails\",response.data.Data.Clients[0].Missingdetails);\r\n\t\t\t\tdispatch(\"loadBookings\",{});\r\n\t\t\t\tdispatch(\"loadMySubscriptions\",{});\r\n if(state.parameters.LoggedIn) {\r\n commit(\"set_initialising\", false);\r\n }\r\n\t\t\t\tcommit('set_authenticating',false);\r\n\t\t\t\tcommit(\"set_authenticated\",true);\r\n\t\t\t\t//console.log(state.desiredPage);\r\n\r\n\t\t\t\t// if showing book, let's check required fields\r\n\t\t\t\t//state.parameters.ClientRules.AgeGroupRequired_Booking = true;\r\n\t\t\t\t//state.parameters.ClientRules.GenderRequired_Booking = true;\r\n\t\t\t\tif(state.parameters.Showbook) {\r\n\t\t\t\t\tvar keys = Object.keys(state.parameters.ClientRules);\r\n\t\t\t\t\tvar checkFields = keys.filter( (key) => state.parameters.ClientRules[key] );\r\n\t\t\t\t\tif(checkFields.length>0) {\r\n\t\t\t\t\t\tvar haveToCheck = false;\r\n\t\t\t\t\t\tcheckFields.forEach( (item, i) => {\r\n\t\t\t\t\t\t\tif(item == \"AgeGroupRequired_Booking\" && state.user.details.Byear == 0) haveToCheck = true;\r\n\t\t\t\t\t\t\tif(item == \"GenderRequired_Booking\" && state.user.details.Gender == 0) haveToCheck = true;\r\n\t\t\t\t\t\t\tif(item == \"MobileRequired_Booking\" && state.user.details.Mobile == \"\") haveToCheck = true;\r\n\t\t\t\t\t\t\tif(item == \"AddressRequired_Booking\" && (state.user.details.Address1==''||state.user.details.Town==''||state.user.details.County==''||state.user.details.Postcode=='')) haveToCheck = true;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif(haveToCheck) {\r\n\t\t\t\t\t\t\tcommit(\"set_bookingrequiredfields\",true);\r\n\t\t\t\t\t\t\tdispatch(\"showNotification\",{message:\"Please enter all required information in user settings.\",style:{'background-color':\"red\",color:\"white\"},timeout:5000});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n if(state.desiredPage != \"\" && !state.bookingrequiredfields) {\r\n\t\t\t\t\tif(state.desiredPage != \"user\") {\r\n \tBookingPortal.$router.replace({name:state.desiredPage,params:state.desiredParams});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif(BookingPortal.$router.currentRoute.name == state.desiredPage) {\r\n\t\t\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t\t\tBookingPortal.$router.currentRoute.matched[0].instances.default.doAction(state.desiredParams.action,state.desiredParams.scrollTo);\r\n\t\t\t\t\t\t\t},100);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n commit(\"set_desiredpage\",\"\");\r\n }\r\n //setTimeout( () => {\r\n\r\n //},100);\r\n }\r\n\t\t})\r\n },\r\n\r\n\r\n\tloadMySubscriptions ({commit,dispatch}, data) {\r\n commit(\"set_loadingmysubscriptions\",true);\r\n axios.post(localPrefix+'/shoponline/GetClientSubscriptions',{\r\n clientid:state.user.id\r\n }).then( function (response) {\r\n commit(\"set_loadingmysubscriptions\",false);\r\n if(response.data.Status == \"Success\") {\r\n commit(\"set_mysubscriptions\",response.data.Data.Subscriptions.filter(function(a){return a.Status==\"active\"}));\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Loading client subscriptions failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n }\r\n })\r\n },\r\n\r\n\r\n\tloadBookings ({commit,dispatch}, data) {\r\n commit(\"set_loadingbookings\",true);\r\n axios.post(localPrefix+'/shoponline/getMyBookings',{\r\n clientid:state.user.id\r\n }).then( function (response) {\r\n commit(\"set_loadingbookings\",false);\r\n if(response.data.Status == \"Success\") {\r\n commit(\"set_bookings\",response.data.Data.Bookings);\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Loading bookings failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n }\r\n })\r\n },\r\n\r\n\tcancelBooking ({commit,dispatch}, data) {\r\n commit(\"set_loadingbookings\",true);\r\n axios.post(localPrefix+'/shoponline/CancelBooking',{\r\n bookingid: data.bookingID\r\n }).then( function (response) {\r\n commit(\"set_loadingbookings\",false);\r\n if(response.data.Status == \"Success\") {\r\n //commit(\"set_bookings\",response.data.Data.Bookings);\r\n\t\t\t\tdispatch(\"showNotification\",{message:response.data.Message,style:{'background-color':\"lawngreen\"},timeout:3000});\r\n\t\t\t\tdispatch(\"loadBookings\",{});\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Booking cancellation failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n }\r\n })\r\n },\r\n\r\n\tsendBookingEmail ({commit,dispatch}, data) {\r\n commit(\"set_loadingbookings\",true);\r\n axios.post(localPrefix+'/shoponline/SendBookingEmail',{\r\n bookingid: data.bookingID\r\n }).then( function (response) {\r\n commit(\"set_loadingbookings\",false);\r\n if(response.data.Status == \"Success\") {\r\n //commit(\"set_bookings\",response.data.Data.Bookings);\r\n\t\t\t\tdispatch(\"loadBookings\",{});\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Email has been sent.\",style:{'background-color':\"lawngreen\"},timeout:2000});\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Sending booking email failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n }\r\n })\r\n },\r\n\r\n\tcancelBookingLine ({commit,dispatch}, data) {\r\n commit(\"set_loadingbookings\",true);\r\n axios.post(localPrefix+'/shoponline/CancelBookingLine',{\r\n thebookingid: data.bookingID,\r\n\t\t\tthebookinglineid: data.bookinglineid\r\n }).then( function (response) {\r\n commit(\"set_loadingbookings\",false);\r\n if(response.data.Status == \"Success\") {\r\n //commit(\"set_bookings\",response.data.Data.Bookings);\r\n\t\t\t\tdispatch(\"loadBookings\",{});\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Booking line cancellation failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n }\r\n })\r\n },\r\n\r\n\trebookBookingLine ({commit,dispatch}, data) {\r\n commit(\"set_loadingbookings\",true);\r\n axios.post(localPrefix+'/shoponline/RebookBookingLine',{\r\n thebookingid: data.bookingID,\r\n\t\t\tthebookinglineid: data.bookinglineid\r\n }).then( function (response) {\r\n commit(\"set_loadingbookings\",false);\r\n if(response.data.Status == \"Success\") {\r\n //commit(\"set_bookings\",response.data.Data.Bookings);\r\n\t\t\t\tvar selectedItems = response.data.Data.Services;\r\n\t\t\t\tdispatch(\"chooseSalon\", state.salons.find( (a) => a.ID == selectedItems[0].Salonid ));\r\n\t\t\t\tdispatch(\"saveTemporaryData\",{name:\"rebook_services\",value:JSON.stringify({ services: selectedItems })});\r\n\t\t\t\tBookingPortal.$router.replace(\"book\");\r\n\t\t\t\t//dispatch(\"loadBookings\",{});\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Booking line cancellation failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n }\r\n })\r\n },\r\n\r\n\r\n\r\n saveUserDetails ({commit,dispatch}, data) {\r\n commit(\"set_loadinguserdetails\",true);\r\n axios.post(localPrefix+'/shoponline/saveMyDetails',{\r\n data: JSON.stringify({ Clients : data.data }),\r\n tenantInfo: JSON.stringify(getTenantInfoForRequest({userid:state.user.id}))\r\n }).then( function (response) {\r\n commit(\"set_loadinguserdetails\",false);\r\n if(response.data.Status == \"Success\") {\r\n commit(\"set_userdetails\",state.user.details);\r\n\t\t\t\tdata.callback(response.data);\r\n\t\t\t\tif(state.desiredPage != \"\") {\r\n BookingPortal.$router.replace({name:state.desiredPage,params:state.desiredParams});\r\n commit(\"set_desiredpage\",\"\");\r\n }\r\n dispatch(\"showNotification\",{message:\"User details have been saved successfully.\",style:{'background-color':\"lawngreen\"},timeout:2000});\r\n } else {\r\n dispatch(\"showNotification\",{message:\"User details save failed. \"+response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n }\r\n })\r\n },\r\n\r\n\r\n loadPostcodeLookup ({commit,dispatch}, data) {\r\n\t\tcommit(\"set_postcodelookupresults\",{type:1,response:{AddressInfoList:[]}});\r\n\t\tcommit(\"set_loadingpostcodes\",true);\r\n axios.post(localPrefix+'/shoponline/GetAddressesForPostcode',{\r\n postcode: data.postcode,\r\n tenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n }).then( function (response) {\r\n\t\t\tcommit(\"set_loadingpostcodes\",false);\r\n\t\t\tif(typeof response.data.Status == \"undefined\") {\r\n \tcommit(\"set_postcodelookupresults\",{type:data.type,response:response.data});\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n })\r\n },\r\n\r\n\r\n\tsaveDeliveryAddress ({commit,dispatch},data) {\r\n\t\tcommit(\"set_loadingdeliveryaddress\", true);\r\n axios.post(localPrefix+'/shoponline/AddnewClientAddress',{\r\n\t\t\taddress1: data.data.Address1,\r\n\t\t\taddress2: data.data.Address2,\r\n\t\t\ttown: data.data.Town,\r\n\t\t\tcounty: data.data.County,\r\n postcode: data.data.Postcode,\r\n tenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n }).then( function (response) {\r\n\t\t\tcommit(\"set_loadingdeliveryaddress\", false);\r\n\t\t\tif(response.data.Status == \"Success\") {\r\n commit(\"set_deliveryaddresses\",response.data.Data.ClientAddresses);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Failed to save address. \" + response.data.Message,style:{\"background-color\":\"red\",color:\"white\"},timeout:2000});\r\n }\r\n\t\t\tdata.callback(response);\r\n })\r\n\t},\r\n\r\n\r\n\tremoveDeliveryAddress ({commit},data) {\r\n\t\tcommit(\"set_loadingdeliveryaddress\", true);\r\n axios.post(localPrefix+'/shoponline/DeleteMyAddress',{\r\n\t\t\taddressid: data,\r\n tenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n }).then( function (response) {\r\n\t\t\tcommit(\"set_loadingdeliveryaddress\", false);\r\n\t\t\tif(response.data.Status == \"Success\") {\r\n commit(\"set_deliveryaddresses\",response.data.Data.ClientAddresses);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Failed to remove address.\" + response.data.Message,style:{\"background-color\":\"red\",color:\"white\"},timeout:2000});\r\n }\r\n })\r\n\t},\r\n\r\n\r\n uploadUserImage ({commit,dispatch}, data) {\r\n\r\n axios({\r\n method: 'post',\r\n\t url: localPrefix+'/shoponline/ImageUpload/',\r\n\t data: data.fd,\r\n\t config: { headers: {'Content-Type': 'multipart/form-data' }}\r\n\t }).then(function (response) {\r\n if(response.data.Status == \"Success\") {\r\n data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Failed to upload image.\",style:{\"background-color\":\"red\",color:\"white\"},timeout:2000});\r\n }\r\n\t }).catch(function (response) {\r\n\t })\r\n\t},\r\n\r\n\r\n getUserIDCookie({ commit, state }) {\r\n\t\tvar cookieUserID = getCookie(\"BP_UID\" + state.originalSalonID);\r\n\t\tif (cookieUserID != null) {\r\n\t\t\tcommit(\"set_userid\", cookieUserID);\r\n\t\t}\r\n\t},\r\n\r\n\r\n saveUserIDCookie({ commit, state }) {\r\n\t\tvar date = new Date();\r\n\t\tdate.setTime(date.getTime() + (90 * 24 * 60 * 60 * 1000));\r\n\t\tdocument.cookie = \"BP_UID\" + state.originalSalonID + \"=\" + state.user.id + \"; expires=\" + date.toGMTString();\r\n\t\t//window.parent.postMessage({ type: 10, userid: encodeURIComponent(state.UserID) }, \"*\");\r\n\t},\r\n\r\n\r\n\tdeleteUserIDCookie() {\r\n\t\tvar date = new Date();\r\n\t\tdate.setTime(date.getTime() - (90 * 24 * 60 * 60 * 1000));\r\n\t\tdocument.cookie = \"BP_UID\" + state.originalSalonID + \"=; expires=\" + date.toGMTString();\r\n\t\t//window.parent.postMessage({ type: 11 }, \"*\");\r\n\t},\r\n\r\n\r\n getCookieConsentCookie({ commit, state }) {\r\n\t\tvar cc= getCookie(\"BP_cookieconsent\");\r\n\t\tcommit(\"set_cookieconsent\", cc==null?true:false);\r\n\t},\r\n\r\n\r\n\tsaveCookieConsent({ commit, state }) {\r\n\t\tvar date = new Date();\r\n\t\tdate.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));\r\n\t\tdocument.cookie = \"BP_cookieconsent=true; expires=\" + date.toGMTString();\r\n\t\tcommit(\"set_cookieconsent\", false);\r\n\t},\r\n\r\n\r\n\tremoveItemFromBasket({ commit, state, dispatch }, data) {\r\n commit(\"remove_item\", data);\r\n\t\tdispatch(\"saveBasket\",JSON.stringify(state.basket));\r\n },\r\n\r\n addItemToBasket({ commit, state, dispatch }, data) {\r\n commit(\"add_item\", data);\r\n\t\tdispatch(\"saveBasket\",JSON.stringify(state.basket));\r\n },\r\n\r\n\tsaveBasket({ commit, state, dispatch }, data) {\r\n\t\tlocalStorage.setItem(\"BP_basket\",JSON.stringify({\r\n\t\t\tversion: state.VERSION_BASKET,\r\n\t\t\tsalonid: state.urlParams.salonid,\r\n\t\t\titems: state.basket\r\n\t\t}));\r\n },\r\n\r\n\r\n sniffPlatformDetails ({commit}) {\r\n (function (window) {\r\n {\r\n var dataos = [\r\n { name: 'Windows Phone', value: 'Windows Phone', version: 'OS' },\r\n { name: 'Windows PC', value: 'Win', version: 'NT' },\r\n { name: 'iPhone', value: 'iPhone', version: 'OS' },\r\n { name: 'iPad', value: 'iPad', version: 'OS' },\r\n { name: 'Kindle', value: 'Silk', version: 'Silk' },\r\n { name: 'Android', value: 'Android', version: 'Android' },\r\n { name: 'PlayBook', value: 'PlayBook', version: 'OS' },\r\n { name: 'BlackBerry', value: 'BlackBerry', version: '/' },\r\n { name: 'Macintosh', value: 'Mac', version: 'OS X' },\r\n { name: 'Linux PC', value: 'Linux', version: 'rv' },\r\n { name: 'Palm', value: 'Palm', version: 'PalmOS' }\r\n ];\r\n\r\n\r\n function matchItem(string, data) {\r\n var i = 0,\r\n j = 0,\r\n html = '',\r\n regex,\r\n regexv,\r\n match,\r\n matches,\r\n version;\r\n\r\n for (i = 0; i < data.length; i += 1) {\r\n regex = new RegExp(data[i].value, 'i');\r\n match = regex.test(string);\r\n if (match) {\r\n regexv = new RegExp(data[i].version + '[- /:;]([\\\\d._]+)', 'i');\r\n matches = string.match(regexv);\r\n version = '';\r\n if (matches) { if (matches[1]) { matches = matches[1]; } }\r\n if (matches) {\r\n matches = matches.split(/[._]+/);\r\n for (j = 0; j < matches.length; j += 1) {\r\n if (j === 0) {\r\n version += matches[j] + '.';\r\n } else {\r\n version += matches[j];\r\n }\r\n }\r\n } else {\r\n version = '0';\r\n }\r\n return {\r\n name: data[i].name,\r\n version: parseFloat(version)\r\n };\r\n }\r\n }\r\n return { name: 'unknown', version: 0 };\r\n }\r\n var header = [navigator.platform, navigator.userAgent, navigator.appVersion, navigator.vendor, window.opera];\r\n var device = matchItem(header.join(), dataos).name;\r\n\r\n\r\n\r\n var unknown = '-';\r\n\r\n // screen\r\n var screenSize = '';\r\n if (screen.width) {\r\n var width = (screen.width) ? screen.width : '';\r\n var height = (screen.height) ? screen.height : '';\r\n screenSize += '' + width + \" x \" + height;\r\n }\r\n\r\n //browser\r\n var nVer = navigator.appVersion;\r\n var nAgt = navigator.userAgent;\r\n var browser = navigator.appName;\r\n var version = '' + parseFloat(navigator.appVersion);\r\n var majorVersion = parseInt(navigator.appVersion, 10);\r\n var nameOffset, verOffset, ix;\r\n\r\n // Opera\r\n if ((verOffset = nAgt.indexOf('Opera')) != -1) {\r\n browser = 'Opera';\r\n version = nAgt.substring(verOffset + 6);\r\n if ((verOffset = nAgt.indexOf('Version')) != -1) {\r\n version = nAgt.substring(verOffset + 8);\r\n }\r\n }\r\n else if ((verOffset = nAgt.indexOf('OPR')) != -1) {\r\n browser = 'Opera';\r\n version = nAgt.substring(verOffset + 4);\r\n }\r\n // MSIE\r\n else if ((verOffset = nAgt.indexOf('Edge')) != -1) {\r\n browser = 'Microsoft Edge';\r\n version = nAgt.substring(verOffset + 5);\r\n }\r\n else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {\r\n browser = 'Microsoft Internet Explorer';\r\n version = nAgt.substring(verOffset + 5);\r\n }\r\n // Chrome\r\n else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {\r\n browser = 'Chrome';\r\n version = nAgt.substring(verOffset + 7);\r\n }\r\n // Safari\r\n else if ((verOffset = nAgt.indexOf('Safari')) != -1) {\r\n browser = 'Safari';\r\n version = nAgt.substring(verOffset + 7);\r\n if ((verOffset = nAgt.indexOf('Version')) != -1) {\r\n version = nAgt.substring(verOffset + 8);\r\n }\r\n }\r\n // Firefox\r\n else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {\r\n browser = 'Firefox';\r\n version = nAgt.substring(verOffset + 8);\r\n }\r\n // MSIE 11+\r\n else if (nAgt.indexOf('Trident/') != -1) {\r\n browser = 'Microsoft Internet Explorer';\r\n version = nAgt.substring(nAgt.indexOf('rv:') + 3);\r\n }\r\n // Other browsers\r\n else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {\r\n browser = nAgt.substring(nameOffset, verOffset);\r\n version = nAgt.substring(verOffset + 1);\r\n if (browser.toLowerCase() == browser.toUpperCase()) {\r\n browser = navigator.appName;\r\n }\r\n }\r\n // trim the version string\r\n if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);\r\n if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);\r\n if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);\r\n\r\n majorVersion = parseInt('' + version, 10);\r\n if (isNaN(majorVersion)) {\r\n version = '' + parseFloat(navigator.appVersion);\r\n majorVersion = parseInt(navigator.appVersion, 10);\r\n }\r\n\r\n // mobile version\r\n var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);\r\n\r\n // cookie\r\n var cookieEnabled = (navigator.cookieEnabled) ? true : false;\r\n\r\n if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {\r\n document.cookie = 'testcookie';\r\n cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;\r\n }\r\n\r\n // system\r\n var os = unknown;\r\n var clientStrings = [\r\n { s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/ },\r\n { s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/ },\r\n { s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/ },\r\n { s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/ },\r\n { s: 'Windows Vista', r: /Windows NT 6.0/ },\r\n { s: 'Windows Server 2003', r: /Windows NT 5.2/ },\r\n { s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/ },\r\n { s: 'Windows 2000', r: /(Windows NT 5.0|Windows 2000)/ },\r\n { s: 'Windows ME', r: /(Win 9x 4.90|Windows ME)/ },\r\n { s: 'Windows 98', r: /(Windows 98|Win98)/ },\r\n { s: 'Windows 95', r: /(Windows 95|Win95|Windows_95)/ },\r\n { s: 'Windows NT 4.0', r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ },\r\n { s: 'Windows CE', r: /Windows CE/ },\r\n { s: 'Windows 3.11', r: /Win16/ },\r\n { s: 'Android', r: /Android/ },\r\n { s: 'Open BSD', r: /OpenBSD/ },\r\n { s: 'Sun OS', r: /SunOS/ },\r\n { s: 'Linux', r: /(Linux|X11)/ },\r\n { s: 'iOS', r: /(iPhone|iPad|iPod)/ },\r\n { s: 'Mac OS X', r: /Mac OS X/ },\r\n { s: 'Mac OS', r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },\r\n { s: 'QNX', r: /QNX/ },\r\n { s: 'UNIX', r: /UNIX/ },\r\n { s: 'BeOS', r: /BeOS/ },\r\n { s: 'OS/2', r: /OS\\/2/ },\r\n { s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/ }\r\n ];\r\n for (var id in clientStrings) {\r\n var cs = clientStrings[id];\r\n if (cs.r.test(nAgt)) {\r\n os = cs.s;\r\n break;\r\n }\r\n }\r\n\r\n var osVersion = unknown;\r\n\r\n if (/Windows/.test(os)) {\r\n osVersion = /Windows (.*)/.exec(os)[1];\r\n os = 'Windows';\r\n }\r\n\r\n switch (os) {\r\n case 'Mac OS X':\r\n osVersion = /Mac OS X (10[\\.\\_\\d]+)/.exec(nAgt)[1];\r\n break;\r\n\r\n case 'Android':\r\n osVersion = /Android ([\\.\\_\\d]+)/.exec(nAgt)[1];\r\n break;\r\n\r\n case 'iOS':\r\n osVersion = /OS (\\d+)_(\\d+)_?(\\d+)?/.exec(nVer);\r\n osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);\r\n break;\r\n }\r\n\r\n }\r\n\r\n commit(\"set_platformdetails\", {\r\n device: device,\r\n screen: screenSize,\r\n browser: browser,\r\n browserVersion: version,\r\n mobile: mobile,\r\n os: os,\r\n osVersion: osVersion,\r\n cookies: cookieEnabled,\r\n });\r\n }(this));\r\n\r\n },\r\n\r\n showNotification ({commit,state},data) {\r\n\t\tif(data != null) {\r\n\t\t\tif(typeof data.buttonLabel == \"undefined\") data[\"buttonLabel\"] = \"OK\";\r\n\t\t}\r\n commit(\"set_notification\",data);\r\n },\r\n\r\n loadSalonTeam({commit,state}) {\r\n\t\tif(state.lastSalonTeamSalonID == state.selectedSalonID) return;\r\n commit(\"set_loadingsalonteam\",true);\r\n commit(\"set_salonteam\",[]);\r\n\t\tstate.lastSalonTeamSalonID = state.selectedSalonID;\r\n\t\taxios.post(localPrefix+'/shoponline/GetsalonTeam/', {\r\n\t\t\tSalonID: state.selectedSalonID,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n\t\t}).then(function (response) {\r\n\t\t\tcommit(\"set_salonteam\",response.data.Data.Teammembers);\r\n commit(\"set_loadingsalonteam\",false);\r\n\t\t}).catch(function (response) {\r\n\t\t})\r\n\t},\r\n\r\n chooseSalon({ commit,state,dispatch }, data) {\r\n\t\tcommit(\"set_selectedSalonID\", data.ID);\r\n\t\tcommit(\"set_selectedSalon\", data);\r\n\t\tdispatch(\"setStripeInstance\",data.spid);\r\n\t\tdocument.title = state.parameters.TenantName != data.Name ? (state.parameters.TenantName+\"-\"+data.Name) : state.parameters.TenantName;\r\n\t},\r\n\r\n\tcheckGiftcardBalance({commit,state,dispatch}, data) {\r\n commit(\"set_checkinggiftcardbalance\",true);\r\n commit(\"set_giftcardbalance\",null);\r\n\t\taxios.post(localPrefix+'/shoponline/GiftcardBalance/', {\r\n\t\t\treference: data.reference,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n\t\t}).then(function (response) {\r\n\t\t\tcommit(\"set_checkinggiftcardbalance\",false);\r\n\t\t\tif(response.data.Status == \"Success\") {\r\n\t\t\t\tcommit(\"set_giftcardbalance\",response.data.Data);\r\n data.callback(response.data);\r\n } else {\r\n dispatch(\"showNotification\",{message:\"Failed to check giftcard. \" + response.data.Message,style:{\"background-color\":\"red\",color:\"white\"},timeout:2000});\r\n }\r\n\t\t}).catch(function (response) {\r\n\t\t})\r\n\t},\r\n\r\n\tsendGiftcardByEmail ({commit,state,dispatch},data) {\r\n\t\taxios.post(localPrefix+'/shoponline/SendmyGC/', {\r\n\t\t\treference: data.reference,\r\n\t\t\tEmailAddress: data.email,\r\n\t\t\ttoname: data.to,\r\n\t\t\tfromname: data.from,\r\n\t\t\tmessage: data.message,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n\t\t}).then(function (response) {\r\n\t\t\tif(response.data.Status == \"Success\") {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Email sent successfully.\",style:{'background-color':\"lawngreen\"},timeout:2000});\r\n\t\t\t\tcallback(response.data);\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Failed to send email. \" + response.data.Message,style:{\"background-color\":\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n\t\t}).catch(function (response) {\r\n\r\n\t\t})\r\n\t},\r\n\r\n\tprintGiftcard ({commit,state,dispatch},data) {\r\n\t\taxios.post(localPrefix+'/shoponline/PrintmyGC/', {\r\n\t\t\treference: data.reference,\r\n\t\t\ttoname: data.to,\r\n\t\t\tfromname: data.from,\r\n\t\t\tmessage: data.message,\r\n\t\t\ttenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n\t\t}).then(function (response) {\r\n\t\t\tif(response.data.Status == \"Success\") {\r\n\t\t\t\t//callback(response.data);\r\n\t\t\t\tsetTimeout(function(){\r\n\t state.PHE.printHtml(response.data.Data.Print);\r\n\t },0);\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Print data failed to load. \" + response.data.Message,style:{\"background-color\":\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n\t\t}).catch(function (response) {\r\n\r\n\t\t})\r\n\t},\r\n\r\n\tloadBookingAvailability ({commit,dispatch}, data) {\r\n\t\tcommit(\"set_loadingbookingavailability\",true);\r\n axios.post(localPrefix+'/shoponline/GetDateStatus',{\r\n\t\t\tsource: \"bp\",\r\n items: data.items,\r\n\t\t\tstartdate: data.startdate,\r\n tenantInfo: JSON.stringify(getTenantInfoForRequest())\r\n }).then( function (response) {\r\n\t\t\tcommit(\"set_loadingbookingavailability\",false);\r\n\t\t\tif(typeof response.data.Status == \"undefined\") {\r\n \t//commit(\"set_bookingavailability\",{ response:response.data });\r\n\t\t\t\tif(typeof data.callback == \"function\") data.callback(response.data);\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n })\r\n },\r\n\r\n\tstartAvailabilityCheck ({commit,dispatch}) {\r\n\t\tcommit(\"set_checkingavailability\",true);\r\n\t},\r\n\r\n\trecordWrongQuestions ({commit,dispatch}, data) {\r\n\t\tcommit(\"set_loading\",true);\r\n\t\taxios.post(localPrefix+'/shoponline/RecordWrongQuestionMarked', {\r\n\t\t\titems: data.items,\r\n questionsstring: data.qs,\r\n\t\t\tclientid: data.clientid,\r\n\t\t\tsalonid: data.salonid\r\n }).then( function (response) {\r\n\t\t\tcommit(\"set_loading\",false);\r\n\t\t\tdata.callback(response.data);\r\n\t\t\t// commit(\"set_loadingbookingavailability\",false);\r\n\t\t\t// if(typeof response.data.Status == \"undefined\") {\r\n // \t//commit(\"set_bookingavailability\",{ response:response.data });\r\n\t\t\t// \tif(typeof data.callback == \"function\") data.callback(response.data);\r\n\t\t\t// } else {\r\n\t\t\t// \tdispatch(\"showNotification\",{message:response.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t// }\r\n })\r\n },\r\n\r\n\teraseBasket ({state}) {\r\n\t\tstate.basket = [];\r\n\t\tlocalStorage.removeItem(\"BP_basket\");\r\n\t},\r\n\r\n\trehydrateBasket ({dispatch,state}) {\r\n\r\n\t\tfunction setItems(b) {\r\n\t\t\tvar items2 = b.filter( (a) => {\r\n\t\t\t\t//filter out products and giftcards if these are disabled\r\n\t\t\t\tif(a.type == 3 && state.parameters.SellProductsOnline == false) return false;\r\n\t\t\t\tif(a.type == 2 && state.parameters.OnlineGCSaleType == 0) return false;\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t\tstate.basket = items2;\r\n\t\t}\r\n\r\n\t\tvar basket = localStorage.getItem(\"BP_basket\");\r\n\t\tif( basket != null ) {\r\n\t\t\tvar b = JSON.parse(basket);\r\n\t\t\tif(typeof b.version != \"undefined\") {\r\n\t\t\t\tif(b.version == state.VERSION_BASKET) {\r\n\t\t\t\t\tif(b.salonid == state.urlParams.salonid) {\r\n\t\t\t\t\t\tsetItems(b.items);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch(\"eraseBasket\");\r\n\t\t\t\t\t\tdispatch(\"showNotification\",{message:\"Basket contents from different salon were removed.\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdispatch(\"eraseBasket\");\r\n\t\t\t\t\tdispatch(\"showNotification\",{message:\"Basket version mismatch, basket contents removed.\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(\"eraseBasket\");\r\n\t\t\t\tdispatch(\"showNotification\",{message:\"Basket version missing, basket contents removed. Sorry for any inconvenience.\",style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t},\r\n\r\n\tloadServices ({commit,state,dispatch},callback) {\r\n\t\tcommit(\"set_loadingservices\", true);\r\n axios.post(localPrefix+\"/shoponline/getServices\",{ salonid: state.selectedSalonID, source: \"bp\" })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tdata.data.Data.Services.sort(function(a,b){\r\n\t\t\t\t\tif (a.Sequence == 0 && b.Sequence > 0) return 1;\r\n\t\t\t\t\tif (a.Sequence > 0 && b.Sequence == 0) return -1;\r\n\t\t\t\t\tif (a.Sequence < b.Sequence) return -1;\r\n\t\t\t\t\tif (a.Sequence > b.Sequence) return 1;\r\n\t\t\t\t\tif(a.Service.toLowerCase() < b.Service.toLowerCase()) return -1;\r\n\t\t\t\t\tif(a.Service.toLowerCase() > b.Service.toLowerCase()) return 1;\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t});\t\t\t\t\r\n\t\t\t\tdata.data.Data.Services.forEach( (item) => item[\"showDetailedDescription\"]=false );\r\n commit(\"set_services\",data.data.Data.Services);\r\n\t\t\t\t// var cats = [];\r\n\t\t\t\t// for(var i=0; ib.Description) return 1;\r\n\t\t\t\t// \t// if(a.Description {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tif( !params.ispackage && (state.parameters.AllowMultipleTeamMembersforOnlineBooking || (!state.parameters.AllowMultipleTeamMembersforOnlineBooking && (data.data.Data.TeamMembers.length == 0 || params.selectedServices == \"[]\" ) ) ) ) {\r\n\t\t\t\t\tdata.data.Data.TeamMembers.splice(0,0,{\r\n\t\t\t\t\t\tDayOff: false,\r\n\t\t\t\t\t\tDuration: 0,\r\n\t\t\t\t\t\tExtraCharge: 0,\r\n\t\t\t\t\t\tImageLink: state.parameters.OTCImageLink,\r\n\t\t\t\t\t\tOrder: -5000000,\r\n\t\t\t\t\t\tPrice: 0,\r\n\t\t\t\t\t\tPublicProfile: \"\",\r\n\t\t\t\t\t\tTeamMember: \"Any team member\",\r\n\t\t\t\t\t\tTeamMemberId: \"00000000-0000-0000-0000-000000000000\",\r\n\t\t\t\t\t\tselected: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif(data.data.Data.CategoryId != \"\") {\r\n\t\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\t}\r\n commit(\"set_teammembers\",data.data.Data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\tcommit(\"set_teammembers\",{\r\n\t\t\t\t\tTeamMembers: [],\r\n\t\t\t\t\tCategoryId: \"\"\r\n\t\t\t\t});\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n\t\t\tcommit(\"set_loadingteammembers\", false);\r\n });\r\n },\r\n\r\n\tloadServicesTF ({commit,state,dispatch},params) {\r\n\t\tcommit(\"set_loadingservices\", true);\r\n axios.post(localPrefix+\"/shoponline/getServicesForTeammemberOnline\",{ teammemberid: params.teammemberid, salonid: state.selectedSalonID, source: \"bp\" })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tdata.data.Data.Services.sort(function(a,b){\r\n\t\t\t\t\tif (a.Sequence == 0 && b.Sequence > 0) return 1;\r\n\t\t\t\t\tif (a.Sequence > 0 && b.Sequence == 0) return -1;\r\n\t\t\t\t\tif (a.Sequence < b.Sequence) return -1;\r\n\t\t\t\t\tif (a.Sequence > b.Sequence) return 1;\r\n\t\t\t\t\tif(a.Service.toLowerCase() < b.Service.toLowerCase()) return -1;\r\n\t\t\t\t\tif(a.Service.toLowerCase() > b.Service.toLowerCase()) return 1;\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t});\r\n\t\t\t\tdata.data.Data.Services.forEach( (item) => item[\"showDetailedDescription\"]=false );\r\n commit(\"set_services\",data.data.Data.Services);\r\n\t\t\t\tcommit(\"set_servicecategories\",data.data.Data.Categories);\r\n commit(\"set_loadingservices\", false);\r\n } else {\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n });\r\n },\r\n\r\n\tloadTeammembersTF ({commit,state,dispatch},params) {\r\n\t\tcommit(\"set_loadingteammembers\", true);\r\n axios.post(localPrefix+\"/shoponline/getTeamMembersOnline\",{ mydate: params.date, salonid: state.selectedSalonID, selectedservices: params.selectedServices })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\tif(state.parameters.AllowMultipleTeamMembersforOnlineBooking || (!state.parameters.AllowMultipleTeamMembersforOnlineBooking && (data.data.Data.TeamMembers.length == 0 || params.selectedServices == \"[]\" ) ) ) {\r\n\t\t\t\t\tdata.data.Data.TeamMembers.splice(0,0,{\r\n\t\t\t\t\t\tDayOff: false,\r\n\t\t\t\t\t\tDuration: 0,\r\n\t\t\t\t\t\tExtraCharge: 0,\r\n\t\t\t\t\t\tImageLink: state.parameters.OTCImageLink,\r\n\t\t\t\t\t\tOrder: -5000000,\r\n\t\t\t\t\t\tPrice: 0,\r\n\t\t\t\t\t\tPublicProfile: \"\",\r\n\t\t\t\t\t\tTeamMember: \"Any team member\",\r\n\t\t\t\t\t\tTeamMemberId: \"00000000-0000-0000-0000-000000000000\",\r\n\t\t\t\t\t\tselected: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n commit(\"set_teammembers\",data.data.Data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:0});\r\n\t\t\t\tcommit(\"set_teammembers\",{\r\n\t\t\t\t\tTeamMembers: [],\r\n\t\t\t\t\tCategoryId: \"\"\r\n\t\t\t\t});\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n\t\t\tcommit(\"set_loadingteammembers\", false);\r\n });\r\n },\r\n\r\n\tloadTeammemberPrices ({commit,state,dispatch},params) {\r\n axios.post(localPrefix+\"/shoponline/getServicesPriceforTeamMember\",{ serviceids: params.serviceids, salonid: state.selectedSalonID, teammemberid: params.teammemberid })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:5000});\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n });\r\n },\r\n\r\n\tloadTeammembersRebook ({commit,state,dispatch},params) {\r\n axios.post(localPrefix+\"/shoponline/getTeammembers\",{ serviceid: params.serviceid, mydate: params.date, salonid: state.selectedSalonID })\r\n .then(data => {\r\n if (data.data.Status == \"Success\") {\r\n } else {\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n });\r\n },\r\n\r\n\tloadDateStatus ({commit,state,dispatch},params) {\r\n\t\tif(state.loadingdatestatus == true) {\r\n\t\t\tstate.loadingDateStatusRequestCancel.cancel();\r\n\t\t}\r\n\r\n\t\tcommit(\"set_loadingdatestatus\", true);\r\n\t\tstate.loadingDateStatusRequestCancel = AxiosCancelRequest.source();\r\n\t\taxios.post(localPrefix+\"/shoponline/GetDateStatus\",{\r\n\t\t\tsource: params.source,\r\n\t\t\tavailability: params.availability,\r\n\t\t\titems: params.items,\r\n\t\t\tstartdate: params.date,\r\n\t\t\tsalonid: params.salonid,\r\n\t\t},{cancelToken:state.loadingDateStatusRequestCancel.token}).then(data => {\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\t//console.log(data.data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n\t\t\tcommit(\"set_loadingdatestatus\", false);\r\n }).catch(error => {});\r\n\t},\r\n\r\n\tloadNextAvailable ({commit,state,dispatch},params) {\r\n\t\tif(state.loadingdatestatus == true) {\r\n\t\t\tstate.loadingDateStatusRequestCancel.cancel();\r\n\t\t}\r\n\r\n\t\tcommit(\"set_loadingdatestatus\", true);\r\n\t\tstate.loadingDateStatusRequestCancel = AxiosCancelRequest.source();\r\n\t\taxios.post(localPrefix+\"/shoponline/GetNextAvailableDate\",{\r\n\t\t\titems: params.items,\r\n\t\t\tstartdate: params.date,\r\n\t\t\tsalonid: state.selectedSalonID\r\n\t\t},{cancelToken:state.loadingDateStatusRequestCancel.token}).then(data => {\r\n\t\t\tcommit(\"set_loadingdatestatus\", false);\r\n if (data.data.Status == \"Success\") {\r\n\t\t\t\t//console.log(data.data);\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n }).catch(error => {});\r\n\t},\r\n\r\n\tloadQueueModeSlot ({commit,state,dispatch},params) {\r\n\t\tif(state.loadingdatestatus == true) {\r\n\t\t\tstate.loadingDateStatusRequestCancel.cancel();\r\n\t\t}\r\n\t\tcommit(\"set_loadingdatestatus\", true);\r\n\t\tstate.loadingDateStatusRequestCancel = AxiosCancelRequest.source();\r\n\t\taxios.post(localPrefix+\"/shoponline/GetQueueModePrice\",{\t\t\t\r\n\t\t\titems: params.items,\r\n\t\t\tsalonid: params.salonid,\r\n\t\t},{cancelToken:state.loadingDateStatusRequestCancel.token}).then(data => {\r\n if (data.data.Status == \"Success\") {\r\n } else {\r\n\t\t\t\tdispatch(\"showNotification\",{message:data.data.Message,style:{'background-color':\"red\",color:\"white\"},timeout:2000});\r\n \t}\r\n\t\t\tparams.callback(data.data);\r\n\t\t\tcommit(\"set_loadingdatestatus\", false);\r\n }).catch(error => {});\r\n\t},\r\n\r\n\tsendAnalytics ({commit,state,dispatch},params) {\r\n\t\tif(state.parameters.GA4ID!='') {\r\n\t\t\tgtag('event', 'purchase', {\r\n\t\t\t\t'transaction_id': params.UniqueIdentifier,\r\n\t\t\t\t'value': params.TotalPrice,\r\n\t\t\t\t'currency': state.parameters.CurrencyDescription,\r\n\t\t\t\t'items': params.GA4Items,\r\n\t\t\t\t'purchase': params.Status,\r\n\t\t\t\t'purchase_type': params.ContentType,\r\n\t\t\t\t'salon': params.SalonName,\r\n\t\t\t\t'widget': 3,\r\n\t\t\t\t'shipping': params.Shipping,\r\n\t\t\t\t'send_to': state.parameters.GA4ID\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tif(state.parameters.GATrackingID!='') {\r\n\t\t\t\tgtag('event', 'purchase', {\r\n\t\t\t\t\t'transaction_id': params.UniqueIdentifier,\r\n\t\t\t\t\t'value': params.TotalPrice,\r\n\t\t\t\t\t'items': params.GAItems,\r\n\t\t\t\t\t'purchase': params.Status,\r\n\t\t\t\t\t'salon': params.SalonName,\r\n\t\t\t\t\t'purchase_type': params.ContentType,\r\n\t\t\t\t\t'widget': 3,\r\n\t\t\t\t\t'send_to': state.parameters.GATrackingID\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\t// only send to SalonIQ\r\n\t\t// gtag('event', 'purchase', {\r\n\t\t// \t'transaction_id': params.UniqueIdentifier,\r\n\t\t// \t'value': params.TotalPrice,\r\n\t\t// \t'items': params.GAItemsSalonIQ,\r\n\t\t// \t'purchase': params.Status,\r\n\t\t// \t'salon': params.SalonName,\r\n\t\t// \t'tenant': state.parameters.AccountCode,\r\n\t\t// \t'widget': 3,\r\n\t\t// \t'send_to': state.parameters.GATrackingIDSalonIQ\r\n\t\t// });\r\n\t\tgtag('event', 'purchase', {\r\n\t\t\t'transaction_id': params.UniqueIdentifier,\r\n\t\t\t'value': params.TotalPrice,\r\n\t\t\t'currency': state.parameters.CurrencyDescription,\r\n\t\t\t'items': params.GA4ItemsSalonIQ,\r\n\t\t\t'purchase': params.Status,\r\n\t\t\t'salon': params.SalonName,\r\n\t\t\t'tenant': state.parameters.AccountCode,\r\n\t\t\t'purchase_type': params.ContentType,\r\n\t\t\t'widget': 3,\r\n\t\t\t'shipping': params.Shipping,\r\n\t\t\t'send_to': state.parameters.GA4IDSalonIQ\r\n\t\t});\r\n\t\tif(state.parameters.FBPixelID!=\"\") {\r\n\t\t\tfbq('track', 'Purchase',\r\n\t\t\t\t{\r\n\t\t\t\t'transactionID': params.UniqueIdentifier,\r\n\t\t\t\t'value': params.TotalPrice,\r\n\t\t\t\t'currency': state.parameters.Currency,\r\n\t\t\t\t'contents': params.FBItems,\r\n\t\t\t\t'content_type': params.ContentType\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n}\r\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n//import user from './store-user'\nimport settings from './store-settings'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n modules: {\n //user,\n settings\n }\n})\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport VueCurrencyInput from 'vue-currency-input'\r\nVue.use(VueCurrencyInput)\r\n\r\nimport Vue2TouchEvents from 'vue2-touch-events'\r\nVue.use(Vue2TouchEvents);\r\n\r\nimport FBSignInButton from 'vue-facebook-signin-button/index.js';\r\nVue.use(FBSignInButton);\r\n\r\nVue.config.productionTip = false;\r\n\r\nwindow[\"BookingPortal\"] = new Vue({\r\n router,\r\n store,\r\n render: function (h) { return h(App) }\r\n}).$mount('#app')\r\n\r\n// check if an element exists in array using a comparer function\r\n// comparer : function(currentElement)\r\nArray.prototype.inArray = function(comparer) {\r\n for(var i=0; i < this.length; i++) {\r\n if(comparer(this[i])) return true;\r\n }\r\n return false;\r\n};\r\n\r\n// adds an element to the array if it does not already exist using a comparer\r\n// function\r\nArray.prototype.pushIfNotExist = function(element, comparer) {\r\n if (!this.inArray(comparer)) {\r\n this.push(element);\r\n return true;\r\n } else return false;\r\n};\r\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.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!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.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!./App.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{dkswitch:true,on:_vm.internalValue,disabled:_vm.disabled},on:{\"click\":function($event){return _vm.toggle()}}},[_c('div',{staticClass:\"mover\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Switch.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Switch.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Switch.vue?vue&type=template&id=008ed32d&scoped=true&\"\nimport script from \"./Switch.vue?vue&type=script&lang=js&\"\nexport * from \"./Switch.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Switch.vue?vue&type=style&index=0&id=008ed32d&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 \"008ed32d\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.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!./Basket.vue?vue&type=style&index=0&id=6d31cf85&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.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!./Basket.vue?vue&type=style&index=0&id=6d31cf85&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.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!./Switch.vue?vue&type=style&index=0&id=008ed32d&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.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!./Switch.vue?vue&type=style&index=0&id=008ed32d&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{basket:true}},[_c('div',{staticClass:\"basket2\"},[(_vm.itemsInBasket>0)?_c('div',{staticClass:\"list\"},[_vm._l((_vm.types),function(type){return [(_vm.isDiverseBasket&&_vm.itemTypeInBasket(type))?_c('div',{staticClass:\"title\"},[(type===1)?_c('span',[_vm._v(\"Services\")]):_vm._e(),(type===3)?_c('span',[_vm._v(\"Products\")]):_vm._e()]):_vm._e(),_vm._l((_vm.basket),function(item,index){return (item.type===type&&type!=2)?_c('div',{key:_vm.getTypeString(type)+index,class:{item:true},on:{\"click\":function($event){item.data.showDetails=!item.data.showDetails}}},[(item.type===1)?_c('div',{staticClass:\"image\",style:({'background-image':'url('+item.data.service.url+')'})}):_vm._e(),(item.type===2)?_c('div',{staticClass:\"image\",style:({'background-image':'url('+_vm.parameters.GiftcardImageLink+')'})}):_vm._e(),(item.type===3)?_c('div',{staticClass:\"image\",style:({'background-image':'url('+item.data.product.SmallImage+')'})}):_vm._e(),(item.type===1)?_c('div',{staticClass:\"details service\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(item.data.service.name))]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(item.data.showDetails),expression:\"item.data.showDetails\"}],staticClass:\"details\"},[_vm._v(_vm._s(item.data.service.details))]),_c('div',{staticClass:\"details\"},[_vm._v(_vm._s(item.data.teammember.name))])]):_vm._e(),(item.type===2)?_c('div',{staticClass:\"details giftcard\"},[_c('div',{staticClass:\"name\"},[(item.data.denomination.Name)?_c('span',[_vm._v(_vm._s(item.data.denomination.Name)+\" • \")]):_vm._e(),_c('span',{staticClass:\"value\"},[_vm._v(\"Value: \"),_c('span',{staticClass:\"price\"},[_c('span',{staticClass:\"currency\"},[_vm._v(_vm._s(_vm.parameters.Currency))]),_vm._v(_vm._s(item.data.denomination.FaceValue))]),(item.data.denomination.ActualValue!=item.data.denomination.FaceValue)?_c('span',{staticClass:\"price\"},[_vm._v(\" / \"),_c('span',{staticClass:\"currency\"},[_vm._v(_vm._s(_vm.parameters.Currency))]),_vm._v(_vm._s(item.data.denomination.ActualValue))]):_vm._e()])]),_c('div',{staticClass:\"details\"},[_vm._v(\"Price: \"),_c('span',{staticClass:\"price\"},[_c('span',{staticClass:\"currency\"},[_vm._v(_vm._s(_vm.parameters.Currency))]),_vm._v(_vm._s(_vm.getDenominationPrice(item).toFixed(2)))])]),(item.data.sendData!=null)?_c('div',{staticClass:\"details\",staticStyle:{\"font-size\":\"0.7em\"}},[_vm._v(\"This giftcard is for \"),(item.data.sendData.to!='')?_c('span',[_c('b',[_vm._v(_vm._s(item.data.sendData.to))])]):_c('span',[_vm._v(\"you\")]),_vm._v(\".\")]):_vm._e()]):_vm._e(),(item.type===3)?_c('div',{staticClass:\"details product\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(item.data.product.Title))]),_c('div',{staticClass:\"details\"},[_vm._v(\"Quantity: \"),_c('b',[_vm._v(_vm._s(item.data.quantity))]),_vm._v(\" • Price: \"),_c('span',{staticClass:\"price\"},[_c('span',{staticClass:\"currency\"},[_vm._v(_vm._s(_vm.parameters.Currency))]),_vm._v(_vm._s(item.data.product.RRP.toFixed(2)))])])]):_vm._e(),_c('div',{staticClass:\"remove\",on:{\"click\":function($event){$event.stopPropagation();return _vm.removeItemFromBasket(item)}}},[_c('i',{staticClass:\"fas fa-trash\"})])]):_vm._e()}),(type===1&&_vm.itemTypeInBasket(type))?_c('div',{staticClass:\"controls\"},[_c('button',{on:{\"click\":function($event){return _vm.setServicesToStepZero()}}},[_vm._v(\"ADD ANOTHER SERVICE\")])]):_vm._e()]})],2):_vm._e(),_c('div',{staticClass:\"controls end\"},[(_vm.itemsInBasket===0)?_c('span',{staticClass:\"itemcount\"},[_vm._v(\"Basket is empty\")]):_vm._e(),(_vm.itemsInBasket>0)?_c('span',{staticClass:\"itemcount\"},[_vm._v(_vm._s(_vm.itemsInBasket)+\" item\"),(_vm.itemsInBasket>1)?_c('span',[_vm._v(\"s\")]):_vm._e(),_vm._v(\" • \"),_c('span',[_c('span',{staticClass:\"currency\"},[_vm._v(_vm._s(_vm.parameters.Currency))]),_vm._v(_vm._s(_vm.total.toFixed(2)))])]):_vm._e(),(_vm.itemsInBasket>0)?_c('button',{class:{disabled:_vm.itemsInBasket===0},on:{\"click\":function($event){return _vm.goToCheckout()}}},[_vm._v(\"Checkout\")]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Basket.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Basket.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Basket.vue?vue&type=template&id=6d31cf85&scoped=true&\"\nimport script from \"./Basket.vue?vue&type=script&lang=js&\"\nexport * from \"./Basket.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Basket.vue?vue&type=style&index=0&id=6d31cf85&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 \"6d31cf85\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}