{"version":3,"sources":["util/EntityValidators.js","components/DateEditField.js","util/Dates.js","components/CsvFileViewer.js","util/File.js","components/PercentageEditField.js","components/WorkItemSelector.js","components/Staffing/AssignmentStatusEditField.js","components/CheckBoxEditField.js","components/CKEditorInput.js","components/Spinner.js","components/PanelModal.js","util/Common.js","app/Routes.js","entities/actionTypes.js","entities/actions/fetching.js","app/API.js","app/Authenticator.js","entities/actions/error.js","entities/actions/account.js","entities/actions/translation.js","util/LocalStorageManager.js","entities/entityTypes.js","entities/actions/entities.js","entities/Entity.js","entities/actions/files.js","entities/EntityManager.js","entities/actions/domain.js","entities/reducers/terms.js","entities/reducers/release.js","entities/reducers/index.js","entities/reducers/error.js","entities/reducers/account.js","entities/reducers/translation.js","entities/reducers/domain.js","entities/reducers/domainState.js","entities/reducers/files.js","entities/reducers/fetching.js","entities/reducers/projections.js","entities/reducers/audit.js","entities/reducers/notifications.js","util/ColorManager.js","components/UserIcon.js","components/Header.js","components/PageTitle.js","components/CardStats.js","pages/DashboardCount.js","pages/Home.js","pages/NoOrderUsers.js","pages/UserNoOrder.js","pages/PackagesSale.js","pages/CompletedOrders.js","pages/UserCompletedOrders.js","pages/TotalInCompleteOrders.js","pages/UserInCompleteOrders.js","pages/FutureEvents.js","components/EntityTables/NoTableData.js","components/EntityTables/EntityImporter.js","components/EntityTables/EntityTableTools.js","components/ActiveEditField.js","components/PopoutEditField.js","components/Staffing/AssignmentLabelEditField.js","components/ColumnMapper.js","components/EntityTables/EntityColumnConfig.js","components/EntityTables/EntityTable.js","util/utils.js","components/PhoneEditor.js","pages/Companies.js","pages/EventGroups.js","pages/EventTypes.js","assets/CollectionsCampaign.svg","pages/Locations.js","pages/Intervals.js","components/Widgets/PopeUpUpdate.js","pages/CompaignTypes.js","assets/analytics.svg","pages/Compaigns.js","pages/Statistics.js","pages/Events.js","pages/Users.js","assets/logo.svg","components/BookingWizard/ConfirmMaziCode.js","components/BookingWizard/CustomerDetails.js","components/BookingWizard/DateSelection.js","components/CalendarView.js","components/AppointmentOptions.js","components/BookingWizard/TimeSelection.js","pages/Sales.js","assets/scrollToTop.svg","components/CalendarDayDetails.js","components/BookingWizard/LocationCalendar.js","components/BookingWizard/EventDetails.js","assets/search.svg","components/BookingWizard/LocationDetails.js","components/BookingWizard/PaymentDetails.js","pages/Booking.js","components/UserSessions.js","components/Appointments.js","components/Prepaids.js","components/PrintOrdersDetails.js","components/PrintOrders.js","pages/UserDetails.js","components/FetchIndicator.js","components/ErrorIndicator.js","components/TemporaryStatusMessage.js","pages/CompanyConfig.js","components/Widgets/SmartImage.js","pages/OrderFullfillment.js","components/MessageBox.js","pages/Presets.js","components/labBilling/Packages.js","components/labBilling/Summary.js","components/LabBilling.js","pages/Export.js","pages/Calendar.js","components/CalendarDay.js","components/Calendar.js","components/TimeSlot.js","pages/UserScheduler.js","pages/RescheduleAppointment.js","pages/RescheduleAppointmentBooking.js","pages/CompleteOrder.js","pages/Downloads.js","pages/EventPackages.js","pages/Products.js","app/App.js","pages/GroupUsers.js","components/ContactSupportButton.js","components/ErrorBlock.js","components/LoginBlock.js","components/MetaInfo.js","components/SignUp.js","assets/companySignup.svg","components/LoginSelector.js","components/PreLoginError.js","serviceWorker.js","index.js","util/CSV.js"],"names":["Validators","oneRequired","values","oneHasValue","_","each","value","default","required","isEmpty","toString","trim","requiredNumber","isUndefined","isNull","number","vparsed","parseFloat","isNaN","isNumber","numberOnly","test","positiveNumber","positiveIntegerAsPercentage","context","mode","numericValue","Number","Math","floor","isInteger","percentage","email","phone","noColon","indexOf","noWhitespace","match","alphaOnly","domainName","tenant","toLowerCase","Name","length50","length","length100","length200","tenantName","exec","Validate","validators","row","firstError","some","valFunc","DateEditField","Component","constructor","props","super","this","state","selected","Dates","fromISO","getValue","date","invalid","toISO","replace","render","self","_jsx","DatePicker","innerRef","isValid","toJS","onChange","fromDate","setState","onUpdate","className","timeInputLabel","hideTime","showTimeSelect","dateFormat","concat","DateTime","Settings","require","localOffset","Date","getTimezoneOffset","isoCache","arbCache","arbCacheDayJs","DATETIME_MED","DATETIME_LONG","month","day","year","hour","minute","literal","DATE_SHORT","DATE_SHORT_FULL_YEAR","SLOT_FORMAT","DATE_PREF","MONTH_YEAR","MONTH_SHORT","MONTH_YEAR_SHORT","epicBegin","utc","startOf","epicEnd","epicDayRange","epicMonthRange","epicYearRange","usableBegin","fromMillis","usableEnd","visualizableBegin","local","plus","years","visualizableEnd","endOf","now","str","zone","arguments","undefined","fromStr","format","formatStr","key","fromFormat","jsDate","fromJSDate","fromMs","ms","fromObject","obj","toMonthYearStr","dt","toLocaleString","toMonthYearStrShort","toMonthStrShort","toDateShort","toDateString","toDateTime","toFormat","toGroupedStr","grouping","g","quarter","isValidDateStr","e","isoToDateTime","hours","convertDateStringWithT","dateString","datePart","timePart","split","parseInt","_getArrayOfDatesInternal","unit","begin","end","output","counter","push","getArrayOfDays","beginIndex","diff","days","endIndex","ceil","dates","slice","getArrayOfMonths","isNewStyle","getArrayOfYears","currentMonthPlusYears","today","getMonthRangeFromMonthYearStrs","months","doRangesOverlap","a","b","c","d","doMonthRangesOverlap","range1","range2","CsvFileViewer","_ref","data","errors","statuses","cellFormatter","limitTo","hideLimitWarning","errMsgGroups","indexBy","item","index","limit","limitedData","_jsxs","children","map","items","rowIndex","colIndex","msgs","title","EM","t","File","read","ctrl","reader","FileReader","Promise","resolve","reject","onload","fileContents","result","onerror","event","Error","fileSizeLimitSetting","getTenantOption","sizeLimit","sizeLimitInMb","toFixed","files","size","readAsText","save","filename","mime","saver","saveAs","Blob","type","readCSV","async","allowBlankFiles","csvContents","CSV","fromString","readCsvOrXml","conversionFunc","saveHtmlAsExcelTable","html","console","log","PercentageEditField","dv","defaultPercentage","defaultValue","newValue","target","onBlur","blur","WorkItemSelector","tasks","currentValue","componentDidMount","schedules","loadDefaultItem","then","defaultSchedule","loadFile","ScheduleId","getFile","getFilterValues","find","name","wi","label","addTaskList","getSetting","task","cv","Creatable","classNamePrefix","isSearchable","isClearable","isMulti","options","placeholder","formatCreateLabel","input","ref","AssignmentStatusEditField","didMount","select","focus","attr","cs","node","CheckBoxEditField","groupName","getGroupName","hidden","wrapperRef","React","createRef","handleClickOutside","bind","onChangeOption","sticky","document","addEventListener","componentWillUnmount","removeEventListener","current","contains","random","checked","filter","Form","option","FormGroup","Label","Input","CKEditorInput","CKEditor","editor","getData","editorUrl","config","versionCheck","on","instanceReady","setData","style","marginLeft","Spinner","text","classes","id","PanelModal","Modal","fade","isOpen","toggle","onClose","currentTheme","prototype","finally","fn","onFinally","reason","String","capitalize","toUpperCase","decapitalize","toIdToken","Array","sortAlphaNumeric","reA","reN","sort","aA","bA","aN","bN","groupBy","criteria","reduce","hasOwnProperty","mapFiltered","transform","memo","itemIndex","mixin","nest","list","_len","iteratees","_key","filteredNest","filterFunction","_len2","_key2","groups","forEach","cGroup","iteratee","ii","client","home","futureEvents","noOrderUsers","userNoOrdersUsers","totalCompletedOrders","userCompletedOrders","incompleteOrders","eventsWithPackagesSales","userIncompleteOrders","companies","eventGroups","products","companyConfig","locations","compaign","sendGridStats","intervals","groupUser","eventPackages","events","calendar","users","userDetails","userSchdeuler","rescheduleAppointment","rescheduleAppointmentBooking","printOrders","presets","export","booking","completeOrder","downloads","notFound","help","manual","domain","visualizations","demand","dataExplorer","scenarioViewer","scenarios","staffing","staffingEmployee","staffingWorkItem","dashboard","demandReport","staffingReport","management","activities","allocations","complexities","organizations","departments","roles","attributes","algorithms","headcounts","actuals","employees","assignments","settings","generalSettings","advancedSettings","security","referenceTables","pipelinesOld","pipelines","pipelineViewer","sales","clientApi","login","forgetPassword","company","companySignup","dashboardCount","futureEventsDetails","noOrdersUsers","user","account","byId","domainEntity","exportwithEventsList","eventTypes","eventTypeCreate","compaignCUD","compaignTypeCUD","compaignType","childEntity","singleEvent","updateEventBooking","updateEvent","search","groupUsers","eventPromotion","eventUsers","assignGroupUsers","unassignGroupUsers","eventgroups","eventgroupsAssignUsers","eventgroupsCreate","updateUser","userScheduler","calenderMonth","calenderTab","calendarday","userSessions","userSessionImage","appointments","orderRequeue","prepaids","presetsUpload","translation","locationDates","locationSlots","locationSlotsV2","blocktimeslots","deletetimeslots","blocktimeslotsMultiple","eventOrder","resetUser","changeDefaultCompany","assignCompanies","product","companyProduct","addUpdateProduct","shareSession","unlockSession","textSession","sendApp","saveNotes","downloadAppointment","patchAppointment","appointmentsByLocation","openOrders","completedOrders","activateAppointment","userSearch","appointmentPresale","domainEntityImport","domainEntityFile","domainEntityClear","projections","auditEntity","notify","proxy","admin","tenants","domains","adminApi","adminEntity","adminEntityImport","switchTenant","uptimeReport","compose","url","params","qs","process","Object","keys","join","parseQuery","queryString","query","pairs","window","location","i","pair","decodeURIComponent","baseUrl","GLOBAL_ERROR","LOCAL_ERROR","CLEAR_LOCAL_ERROR","LOAD_ACCOUNT","SET_DOMAIN","CLEAR_DOMAIN","LOAD_TRANSLATION","START_FETCH","END_FETCH","REMOVE_FETCH","CLEAR_FILES","AUDIT_ENTITY_ITEM","LOAD_TERMS","LOAD_RELEASE","translate","itemName","startFetch","types","endFetch","setTimeout","dispatch","displayAs","removeFetchItem","API","authenticator","instance","loginMode","baseApiAddress","sendGridbaseApiAddress","Authenticator","abortController","resetSignal","abortPendingFetches","abort","AbortController","signal","password","Routes","loginFetch","method","body","JSON","stringify","Username","Password","IsAssociate","register","registerCompany","createUser","forgetPasword","loadTranslation","Lang","build","fetchStaticJson","loadHelp","CID","IsMetaData","IsMeta","fetch","updateHelp","Content","loadAccount","loadEntityByParent","Entity","isSilent","parentDetail","getUrl","loadSingleEntity","routeParams","searchEntity","searchUrl","loadDomainEntity","auditDomainEntity","DomainId","EntityId","createDomainEntity","Item","createUrl","parentRecordDetail","execute","requestUrl","updateDomainEntity","editUrl","deleteDomainEntity","ids","deleteUrl","importDomainEntity","Items","modsOnly","MODSONLY","clearDomainEntity","loadDomainEntityFile","Id","fetchFile","updateDomainEntityFile","Data","uploadDomainFile","uploadUrl","regenerateProjections","loadAdminEntity","tenantId","entity","entityId","TenantId","createAdminEntity","newItem","deleteAdminEntity","updateAdminEntity","importAdminEntity","newTenantId","auditUsers","auditLogins","newUserObj","generateUserToken","userId","UserId","dateStr","messageDetails","loadViaProxy","urlToProxy","defaultOptions","cache","headers","newOptions","assign","responseText","json","responseObj","status","catch","ex","campaignId","start_date","fetchingActions","token","allowAnonymous","acquireToken","message","Authorization","TypeError","fetchStaticText","loginStyle","clientId","cacheLocation","storeAuthStateInCookie","system","loggerOptions","currentAccount","localStorage","getItem","parse","switchAccount","logout","api","credentials","loginResponse","loginFailure","username","emailAddress","prefUsername","firstName","lastName","setItem","removeItem","clear","href","isAuthenticated","sessionStorage","tokenFailure","error","getUsername","globalError","localError","eid","clearLocalError","getState","errorActions","loadTranslationSuccess","lng","LocalStorageManager","store","localNamespace","set","toSave","get","remove","idField","apiName","singleName","uniqueness","assignUserUrl","getSingleUrl","searchUrlV2","requeueUrl","executeDispatch","entityName","getDispatchAction","setError","entityTypeDef","allowDuplicates","modelName","modelNameSingular","single","isFileListingTable","fileType","fileTypeClass","optionList","valueList","idList","keyList","resetCachedLists","load","force","entityActions","parentDetails","create","created","createBulk","newItems","domainId","delete","deleted","update","oldItem","updated","import","imported","audit","itemId","clearAll","debugMode","makeFileName","fileActions","saveFile","upload","newFile","invalidateFile","findDefaultItem","isLoaded","asOptionList","labelField","sortByLbl","valueField","lbl","sortBy","asIndexed","asKeyed","makeKeyFromItem","asValueList","objKey","findItem","findByKey","hasDuplicates","dupes","Active","warn","findDuplicates","currentSet","defaultItem","IsDefault","lookupValue","fld","found","lookupId","exact","columns","isOverridden","executePost","executePut","executeGet","executeDelete","EntityManager","_isInitialized","storage","fallbackLanguage","fallbackTheme","currentLanguage","helpCache","languageList","themeList","_debugMode","helpMode","history","domainPermission","tenantPermission","domainColor","statusMessageRef","featureCache","dpCache","hostname","registerLogging","unregisterLogging","roleNames","SuperAdmin","Owner","Admin","Sales","Photographer","origin","initialize","fallback","action","accountDispatchedResponse","accountActions","me","entityTypes","et","entityType","setActiveDomain","domainActions","documentElement","setProperty","color","isDomainAdmin","getActiveDomain","clearActiveDomain","clearDpCache","allLoaded","args","every","allEntitiesLoaded","loaded","loadEntities","allEntities","promiseSet","all","errorIn","getTime","errorOut","errorCode","Message","hideErrors","setDomainPermission","Domains","Permission","PermissionLookupId","setTenantPermission","User","Permissions","isTenantAdmin","isDomainEditor","isDomainSubscriber","hasAnyDomainAdmin","isMyEntity","entityObject","CreatedBy","hasAcceptedTerms","termsUpdatedDate","terms","dateUpdated","userTermsAcceptedDate","TermsAccepted","termsUpdatedTicks","setAcceptedTerms","toISOString","opts","tOverride","property","selectorFunc","strOutput","supplant","r","time","timeEnd","logState","logProcess","triggerWindowResize","delay","dispatchEvent","Event","eName","overrideSetting","settingRecord","settingValue","Value","tenantOptions","Tenant","Options","getConfig","configType","configurations","ConfigurationTypeLookupId","loadScript","uri","tag","createElement","src","firstScriptTag","getElementsByTagName","parentNode","insertBefore","getUserNotifications","notificationsArr","reduxStore","userNotificationAcknowledgedDate","NotificationsAcknowledged","releaseNotesUpdatedDate","release","payload","notifications","removeNotification","notification","updateUserNotificationsAcknowledged","setHistory","navCount","listen","clearCrossPage","crossPage","setTheme","theme","pc","getElementById","toggles","getElementsByClassName","call","elem","classList","add","getVariables","variables","attributeTypeLookup","attribute","AttributeTypeLookupId","aType","uniq","isDomainDirty","domainState","markDomainDirty","markDomainClean","getStatusMessageRef","setStatusMessage","timeout","setMessage","clearStatusMessage","clearMessage","isProd","isDev","hasFeature","feature","Features","dn","denyFeature","clearProjectionsCache","projStore","IdbKv","clearDataExplorerCache","fromDpCache","func","clearDpCacheItem","redirectTo","getDefaultCompany","findWhere","userCompanies","defaultCompany","getUserRole","roleId","isSuperAdmin","role","isOwner","isAdmin","isSales","isPhotographer","intialState","reducerSet","omit","fetching","without","x","generateEntityReducer","combineReducers","ACTNAME","ColorManager","currentIndex","COLORS","reset","next","isAlt","isAlt2","tinycolor","at","darken","newIndex","userColors","UserIcon","altUser","initials","accumulator","colorObj","getBrightness","backgroundColor","alt","Email","Header","closeMenus","pathname","click","getCompanyId","companyId","changeCompany","reload","_ref5","_this$props$account","_this$props$account2","matchPath","Navbar","dark","expand","NavLink","to","onClick","NavbarToggler","Collapse","navbar","DisplayName","Nav","NavItem","isActive","_ref2","_ref3","_ref4","UncontrolledDropdown","nav","inNavbar","DropdownToggle","caret","DropdownMenu","right","companyName","PageTitle","classNames","bar","icon","img","collapsible","collapsed","CardStats","navigate","Card","maxHeight","height","CardHeader","CardBody","cursor","DashboardCount","getColorForValue","_data","_data$studioPackageSa","_data2","_data2$studioPackageS","totalCompanies","totalEvents","totalEventDays","pastEventCounts","futureEventCounts","totalOrders","inCompleteCartUsers","completeCartUsers","justifyContent","studioPackageSales","totalConsumedPrepaidPackagesPrice","totalNonConsumedPrepaidPackagesPrice","totalUsers","totalActiveUsers","totalInActiveUsers","nonSignUpUsers","Home","alpha","order","pageTitle","zIndex","NoOrderUsers","errMsg","goBack","paddingTop","locationId","locationName","noOrderUsersCount","colSpan","UserNoOrder","userNoOrderUsers","_data$noOrderUsers","_data2$noOrderUsers","phoneNumber","address","city","zip","PackagesSale","numberOfUsersConsumed","numberOfUsersNonConsumed","CompletedOrders","userCartCount","UserCompletedOrder","_data3","TotalInCompleteOrders","UserInCompleteOrders","FutureEvents","border","free810Promotion","freeImagePromotion","force810Promotion","forceImagePromotion","textAlign","timeSlotsCounts","timeSlot","counts","NoTableData","EntityImporter","currentDataSet","canImport","importItems","updatedItemRows","parsingFile","onImport","parseFile","entityTitle","clearState","formattedItems","onBeforeImport","withErrors","importLimitSetting","importLimit","results","generateDataSetFromCsv","columnDefs","columnDefinitionsTextIndex","columnMessages","displayName","col","dataField","validationMessages","validationResult","getValidationContext","newCsvContents","valueIn","columnDef","fromEntity","allowNulls","fromList","asActive","asPercentage","asPermission","permId","permissionLookup","asUser","object","existingItem","ModalHeader","ModalBody","for","CustomInput","accept","fileName","innerText","FormText","Alert","lr","ModalFooter","Button","disabled","EntityCreator","lazy","SearchBar","ClearSearchButton","Search","ExportCSVButton","CSVExport","EntityTableTools","importModalOpen","createModalOpen","componentWillReceiveProps","nextProps","customTools","tool","restrictedOperations","hideAddRecord","hideDelete","onDelete","hideImportExport","hideImport","csvProps","showingFilters","hasOutputPipeline","UncontrolledButtonDropdown","positionFixed","DropdownItem","onPipelineExport","hideAudit","onAudit","hideClearAll","onClear","shouldShowFilters","onToggleFilters","onClearFilters","hideSearch","searchProps","shouldShowColumnToggle","showingColumnToggle","onToggleColumnToggle","Suspense","customOverRide","onCreate","ActiveEditField","PopoutEditField","AssignmentLabelEditField","labelList","labelSetting","registerFilter","columnIndex","newDef","formatter","Type","SELECT","optionLabelField","omitEntitySort","el","sortValue","csvFormatter","cell","filterValue","selectFilter","getFilter","userText","asUserIcon","editable","permission","asCheckbox","editorRenderer","editorProps","column","asWorkItem","asDate","toJSDate","dateFilter","withoutEmptyComparatorOption","comparators","Comparator","EQ","GT","LT","asDateTime","asFeature","onStartEdit","jsonObj","tmp","feat","asOptions","_Fragment","asReferenceTable","headerClasses","csvExport","asAssignmentStatus","asAssignmentLabel","isReference","isDummyField","isDateReference","toMillis","asFunctions","asMeta","creatable","isMeta","unhideable","width","validator","valResult","valid","filterOptions","dynamicEntity","numberFilter","textFilter","bool","characterLimit","maxLength","EntityColumnConfig","onColumnToggle","columnToggleProps","EntityTable","selectedRows","currentPage","auditId","filterRegistry","clearFilters","filterOpt","comparator","mapColumns","ColumnMapper","neverShowId","unshift","suppressMeta","forceMeta","metaCols","apply","confirm","cancel","onAfterDelete","alert","isChildDomain","ParentDomainId","permissions","highlighted","rowClasses","setRowClasses","newRowClasses","showColumnToggle","addAlertClass","ToolkitProvider","keyField","hideInTable","columnToggle","exportCSV","exportAll","onlyExportFiltered","searchFormatted","hideToolbar","pageIcon","onCreateClose","confirmationText","prompt","onExport","showingExtraTools","hideFilters","subtitle","PaginationProvider","pagination","paginationFactory","sizePerPage","page","onPageChange","showTotal","hideTotals","hideSizePerPage","hidePageListOnlyOnePage","paginationTotalRenderer","from","paginationProps","paginationTableProps","PaginationTotalStandalone","BootstrapTable","remote","cellEdit","noDataIndication","expandRow","filterFactory","defaultSort","cellEditFactory","blurToSave","beforeSaveCell","oldValueIn","newValueIn","done","oldValue","beforeUpdate","selectRow","hideSelectColumn","onSelect","isSelect","onSelectAll","rows","onTableChange","newState","baseProps","disableAudit","phoneNumberString","PhoneEditor","getCtrlRef","ctrlRefs","updateData","rest","formattedValue","utils","mask","InputMask","Companies","pageLoad","asPhone","onKeyDown","addColumnNames","columnNames","rowData","columnName","EventGroups","handleAssignUsersFile","file","fileUploaded","csvString","parseCSV","updateCreateModel","uploadEventGroup","hiddenFileInput","openUpload","assignUsersToGroup","createNewGroup","reloadEventGroups","toUsers","eventGroupId","usersList","request","eventGroupName","eventId","Papa","header","complete","parsedData","dataWithHeaders","getcsvData","inputs","response","uploadAssignedUsers","helperContent","rel","asFile","display","EventTypes","toEventPackages","eventTypeId","toUpdate","newRow","res","chooseControls","element","renderer","expandable","class","showExpandColumn","onExpand","isExpand","expandHeaderColumnRenderer","isAnyExpands","expandColumnRenderer","expanded","Locations","handleSelect","tabKey","eventTypesEntity","isGESKUS","eventCategory","printinglabId","printing","toRedirect","toward","splice","Tabs","activeKey","Tab","eventKey","Intervals","durationOptions","getDurationOption","bookingCountOptions","getBookingCountOption","daysOptions","getDaysOptions","getLocation","getTitle","initialState","loading","popUpError","route","PopeUpUpdate","onTextChange","ShowError","setConfig","validate","updateEntity","closeSelf","close","conf","autoFocus","CompaignTypes","compaignTypeEntity","isEditOpen","eventLocation","openEdit","popUpRef","messageType","asEmail","Compaigns","timezoneOptions","timezones","timezone","_row$startDate","eventName","campaignName","marketingCompaignId","startDate","deal","substring","analytics","field","proceed","record","endDate","marketingComaignTypeId","Statistics","selectedDate","componentDidUpdate","prevProps","prevState","calculateTotals","statsData","totals","bounce_drops","bounces","clicks","delivered","invalid_emails","opens","processed","requests","spam_report_drops","spam_reports","unique_clicks","unique_opens","stats","metrics","newData","metricsObject","marginRight","Events","locationOptions","getLocations","CopyToClipboard","isEqual","allLocations","Users","redirectTouserDetail","userTypeId","showAssignCompany","selectedUser","companiesOptions","selectedCompanies","dynamicLabel","userTypeChange","mapUsers","currentUserId","where","userTypes","phonenumber1","getDerivedStateFromProps","current_state","storeUsers","UserTypeId","isAssociate","getColumns","companyIds","_EM$getDefaultCompany","Select","isDisabled","maziOrganizationCode","ConfirmMaziCode","confirmMatch","resetState","prefix","CustomerDetails","handleDelete","childrenNames","handleAddition","handleInputBlur","handleDrag","currPos","newPos","newTags","handleDownload","open","firstName2","lastName2","maziAdult2MobileNumber","maziAdult2Email","streetAddress","isPopOpen","isPopOpen2","onlineRegistration","confirmAndDownload","onError","openPopUp","openPopUp2","mapStates","closePopUp","handleValidCode","updateOnlineRegistration","isOpen2","onlineBooking","statesData","delimiters","jsxRender","mazibook","whiteSpace","childrenArray","maskChar","selection","ReactTags","tagInputField","tags","inputFieldPosition","autocomplete","step","prev","DateSelection","slotSelected","slot","disableEvent","availableDays","showZipSearch","slotsAvailable","CalendarView","Foward","Backward","GetDay","DayClick","ny","nx","rmvc","css","enabled","setMonth","getMonth","onCalendarChange","strdt","Day","Week","onDayClick","GetWeek","align","aptCount","AppointmentOptions","FirstNameChange","capt","LastNameChange","PhoneChange","BackupPhoneChange","backupNumber","AddressChange","address1","CityChange","StateChange","ZipChange","EMailChange","eMail","IDhange","TypeChange","m_bPleaseWait","m_bCanceled","m_bShowConfirm","m_strID","m_strType","m_strAddress","m_strErrorMessage","CancelChecking","CheckinView","patchCheckIn","checkedIn","appointmentId","appointmentID","propertyName","onCheckInChange","RenderRescheduleButton","_this$state$data$loca","_this$state$data$loca2","bookingPage","userID","companyID","RenderConfirmButton","confirmed","RenderSitting","sitting","RenderCancelButton","cancelled","canceled","reservedTime","blockShow","slotId","selectedSlotBlock","selectedSlotDelete","TimeSelection","timeSelected","pushSlots","isSelectedSlot","handleBlockUnblock","handleBlockButton","available","includes","prevItem","timeSlotId","foundInBlockSlot","foundInDeleteSlot","timeSlots","dateSelected","availableSlots","timeSlotIds","loadSlots","slots","mazibit","stateData","userFirstName","userLastName","userPhone","userEmail","locationAddress","locationobj","selectedDateSlot","selectedTimeSlot","isPaid","isCreated","paymentObj","selectedStep","visible","steps","contactInformation","timeDetails","incomplete","locationsDetails","dateDetails","paymentDetails","previous","Fragment","staticState","reInitialize","loadLocationDates","getSelectedSlot","emailValidator","schedule","req","backupPhoneNumber","notes","paid","salesId","createdBy","creationSourceId","slotDateTime","userInfoValidate","marginTop","CalendarDayDetails","handleScroll","showScrollButton","scrollY","scrollToTop","scrollTo","top","behavior","createAppointmentMode","Forward","notesChange","checkinChanged","createAppointmentToggle","reLoad","setDate","getDate","testButton","note","appointment","_this$props$btnsCol","_this$props","_this$props$btnsCol2","_this$props2","_this$props$btnsCol3","_this$props3","toLocaleDateString","createAppointmentButton","btnsCol","loc","_this$props$btnsCol4","_this$props4","displayTime","recheduleCSS","recheduleCount","cols","LocationCalendar","showCalendar","showDetails","dayDetails","locationChange","_this$props$company","EventDetails","_this$props$location","_this$props$location$","popeUpAction","openCalendar","description","fontWeight","LocationDetails","zipCode","locationSelected","searchIcon","distance","fullyBooked","PaymentDetails","Booking","isLoading","eventDetails","skip","skipLocationStep","stepAfterSkip","dateSelection","timeSelection","customerDetails","placeOrderIfRequired","currentStep","nextStep","skipPaymentStep","thankYou","placeOrder","hideAll","getNextStep","getEvent","bookByAdmin","getCompany","chargeAmount","getPrevStep","skipPrev","stepBeforeSkip","childrenName","maziAdult2FirstName","maziAdult2LastName","maziChildrenNames","sessionId","stripePublishableKey","loadStripe","stripe","redirectToCheckout","createuserExternal","first_name","last_name","gender","organization_code","children_names","adult2_first_name","adult2_last_name","_this$state","_this$state$event","closeMessage","UserSessions","rootContainer","sessions","showView","showUnlock","showImages","price","userImages","selectedSession","clearAllSessions","handleShowView","session","handleShowUnlock","handleViewImage","imageCount","_this$state$userImage","fromUserId","toPhone","userSessionId","boughtDigitalSession","downloadSession","blobId","updateSession","published","userSessionIds","pluck","clearSession","sessionIds","getSessionImages","FaShareAlt","FaUnlockAlt","FaRegListAlt","FaEye","FaDownload","image","thumbnailUrl","originalImageUrl","Appointments","appointmentsData","redirectToReschedule","apt","_appointment$location","padding","readOnly","Prepaids","prepaid","deletePrepaid","prepaidId","consumed","FaTrashAlt","PrintOrdersDetails","getTransformOrderLines","printOrderLineItems","_item$product","quantity","imagepath","show","PrintOrders","orderDetailsHidden","selectedOrder","handleRequeue","orderId","printOrderId","gross","package","UserDetails","userData","includeDS","sheetCount","largePrint_11_14","largePrint_16_20","largePrint_20_30","redirectTouserScheduler","saveUserDetail","handModal","createPackage","newRecord","allDigital","largePrint1114","largePrint1620","largePrint2030","deleteUser","signedUp","active","check","inline","evt","FetchIndicator","ErrorIndicator","messages","bits","msg","TemporaryStatusMessage","CompanyConfig","onCheckChanged","onTextChanged","onSave","stripeSecretKey","stripeApiKey","unitPrice","sessionExpiryDuration","sessionEnhance","customerNumber","sendGrid","sendGridFromEmail","sendGridApikey","sendGridCompanName","twilio","twilioPhone","twilioAccountSid","twilioAuthToken","SmartImage","imageLoaded","onLoad","OrderFullfillment","orderFulfillment","imageName","orders","renderAddress","shippingAddress","address2","renderImage","openImage","editImageUrl","fulfilled","updatedOrder","fullfilled","renderOrderLineItems","orderLineItem","formateDate","o","createdDate","eventPackageId","shipped","shippedDateTime","printQueueStatusId","shipToFirstName","shipToLastName","oli","Presets","showDeleteBox","deleteMessage","selectedPreset","showUploadPreset","presetName","showUploadImage","handleUploadPreset","handleUploadImage","handleFileChange","uploadFile","rowStyleFormat","rowIdx","populatePresets","preset","fileExtension","FaUpload","path","FaFileDownload","showDeleteEvent","confirmMessage","imgType","imgName","newImgName","pr","containsSpecialChars","FormData","isImage","append","updatedPresets","isImgExist","existingOne","Packages","packageOrders","Summary","summary","totalSales","totalLabCost","packageOrdersSummary","consumedPrice","nonConsumedPrice","ExcelJS","LabBilling","companys","recordsNotFound","singleUnitProduct","singleUnitSessionProduct","startDateChange","endDateChange","loadData","createHeaderCell","createHeaderRow","initSummaryData","getProducts","getCompanyConfig","packagePrice","excelCellStyle","font","alignment","vertical","horizontal","left","bottom","excelHeaderStyle","bold","argb","fill","pattern","fgColor","bgColor","p","productId","maxDate","minDate","_res$printOrders$leng","_res$printOrders","populateSummary","ss","packageOrderSale","packageOrder","_order$gross","totalUnits","singleImageProducts","singleSessionProduct","lineItem","userSessionImageCount","hasSheet","lineItems","workbook","Workbook","sheet","addWorksheet","rowNumber","_order$prepaid$price","_order$prepaid","_order$gross2","addOrderNumberHeading","imageUnit","createContentRow","addRow","summaryHeader","summaryContent","initSummaryStyles","getCell","getColumn","xlsx","writeBuffer","triggerDownload","content","arrayBuffer","Uint8Array","blob","URL","createObjectURL","anchor","download","revokeObjectURL","cellAddress","createContentCell","addDays","_order$prepaid$price2","_order$prepaid2","Export","aptEndDate","aptStartDate","locationIds","formattedDateLong","getFullYear","Calendar","toIntervals","CalendarDay","BuildComponent","lastSelectDay","lastSelectWeek","aptDays","selectedDateView","getMonths","aptCalender","updateCalendar","dayClick","strdate","week","calendarChange","getWeek","getDay","CalDay","mvd","y","navigateCalendar","isForward","newDate","TimeSlot","times","selectedTime","internalDate","appointmentsByDate","getAppointmentsCount","displayDate","convertDateString","am_pm","dateToConvert","timeChange","UserScheduler","timeSlotHidden","showMyComponent","showContactInfo","updatedUser","redirectToUserDetail","locId","uUser","AppointmentCalender","Row","Col","RescheduleAppointment","reschedule","RescheduleAppointmentBooking","redirectToBooking","CompleteOrder","stripeSessionId","logo","Downloads","EventPackages","eventpackage","Products","showPriceChange","priceValidationMessage","priceInvalid","CompaniesList","onCompanyChanged","superAdmin","showChangeCompanyPrice","onCompanyPriceChange","onCompanyVisibleChange","updateCompanyPrice","notValid","companyProducts","FormFeedback","HeaderComp","withRouter","HomePage","FutureEventsPage","NoOrderUsersPage","UserNoOrderPage","PackagesSalePage","CompletedOrdersPage","UserCompletedOrdersPage","UserCompletedOrders","TotalInCompleteOrdersPage","UserInCompleteOrdersPage","CompaniesPage","EventGroupsPage","GroupUsersPage","selectedUserIds","selectedEventUserIds","SelectfilterOptions","useState","commonUserIds","transformedArray","assigned","commonEventUserIds","useEffect","assignUsers","userIds","htmlFor","selectedUsers","ProductsPage","LocationsPage","EventsPage","UsersPage","UserDetailsPage","IntervalsPage","CompaignsPage","StatisticsPage","EventPackagesPage","OrderFullfillmentPage","PresetsPage","BookingPage","CompanyConfigPage","ExportPage","CalendarPage","UserSchedulerPage","RescheduleAppointmentPage","RescheduleAppointmentBookingPage","CompleteOrderPage","DownloadsPage","SalesPage","withAuthorize","authorized","roleDetail","App","BrowserRouter","isHelpMode","Switch","Route","connect","mapStateToProps","ownProps","complexityLookup","ContactSupportButton","ErrorBlock","msgKey","isAccountError","startsWith","LoginBlockNaive","Signup","loginError","responseMessage","signUpFormValues","setSignUpFormValues","handleFormValues","LoginSelector","showEnterprise","loginModes","setCurrentPage","setEmail","setloading","setPassword","setLoginError","setResponseMessage","resetValidate","handleSubmit","companyIcon","PreLoginError","navigator","swUrl","serviceWorker","scope","registration","onupdatefound","registerValidSW","loginRequired","toLocaleLowerCase","isCallback","parent","opener","createStore","reducers","applyMiddleware","thunk","withExtraArgument","success","component","code","replaceState","LoginBlock","ReactDOM","Provider","Common","onSelectLoginMode","csv_output","rowOutput","strData","strDelimiter","objPattern","RegExp","arrData","arrMatches","strMatchedValue","strMatchedDelimiter","outputArray"],"mappings":"6GAAA,+EAGO,MAAMA,EAAa,CACtBC,YAAaC,IACT,IAAIC,GAAc,EAIlB,OAHAC,IAAEC,KAAKH,GAAQI,IACXH,EAAcA,GAAeG,EAAMA,QAAUA,EAAMC,OAAO,IAEvDJ,CAAW,EAEtBK,SAAWF,GACHF,IAAEK,QAAQH,GACH,qBAENA,EAAMI,WAAWC,YAAtB,EACW,qBAGfC,eAAiBN,IACb,IAAKA,GAASF,IAAES,YAAYP,IAAWF,IAAEU,OAAOR,GAC5C,MAAO,oBACX,EAEJS,OAAST,IACL,GAAKA,EAAL,CACA,IAAIU,EAAUC,WAAWX,GACzB,OAAIF,IAAEc,MAAMF,KAAaZ,IAAEe,SAASH,GACzB,oCADX,CAFiB,CAIjB,EAEJI,WAAad,IACT,GAAKA,EAAL,CACA,IAAIU,EAAUC,WAAWX,GACzB,GAAIF,IAAEc,MAAMF,KAAaZ,IAAEe,SAASH,GAChC,MAAO,+BAGX,MADS,cACFK,KAAKf,GACD,oCADX,CANiB,CAQjB,EAEJgB,eAAiBhB,IACb,IAAKA,GAASF,IAAES,YAAYP,IAAWF,IAAEU,OAAOR,IAAUA,EAAQ,EAC9D,MAAO,uCACX,EAEJiB,4BAA6BA,CAACjB,EAAOkB,EAASC,KAC1C,IAAKnB,GAASF,IAAES,YAAYP,IAAWF,IAAEU,OAAOR,GAC5C,MAAO,wCAGX,IAAIoB,EAAeC,OAAOrB,GAC1B,OAAIY,MAAMQ,GACC,yCAGE,WAATD,IACAC,EAAeE,KAAKC,MAAqB,IAAfH,IAG1BA,GAAgB,IAAMC,OAAOG,UAAUJ,GAChC,6CADX,EAEA,EAEJK,WAAazB,IACT,GAAKA,EAAL,CACA,IAAIU,EAAUC,WAAWX,GACzB,OAAIF,IAAEc,MAAMF,KAAaZ,IAAEe,SAASH,GACzB,wCADX,CAFiB,CAIjB,EAEJgB,MAAO,SAAS1B,GACZ,GAAKA,EAAL,CAEA,MADS,yJACDe,KAAKf,QAAb,EACW,qCAHM,CAKrB,EACA2B,MAAM,SAAS3B,GACX,GAAKA,EAAL,CAEA,MADS,0CACDe,KAAKf,QAAb,EACW,oCAHM,CAKrB,EACA4B,QAAS,SAAS5B,GACd,GAAIA,EAAM6B,QAAQ,MAAQ,EACtB,MAAO,mCAEf,EACAC,aAAc,SAAS9B,GACnB,GAAIA,EAAM+B,MAAM,MACZ,MAAO,mCAEf,EACAC,UAAW,SAAShC,GAChB,GAAIA,EAAM+B,MAAM,WACZ,MAAO,+CAEf,EACAE,WAAY,SAASjC,EAAOkC,GACxB,GAAuD,IAAnDlC,EAAMmC,cAAcN,QAAQK,EAAOE,KAAO,KAC1C,MAAO,qEAEf,EACAC,SAAU,SAASrC,GACf,GAAIA,EAAMI,WAAWkC,OAAS,GAC1B,MAAO,qCAEf,EACAC,UAAW,SAASvC,GAChB,GAAIA,EAAMI,WAAWkC,OAAS,IAC1B,MAAO,sCAEf,EACAE,UAAW,SAASxC,GAChB,GAAIA,EAAMI,WAAWkC,OAAS,IAC1B,MAAO,sCAEf,EACAG,WAAY,SAASzC,GACjB,GAAIA,EAAMI,WAAWkC,OAAS,EAC1B,MAAO,2CAEX,GAAItC,EAAMI,WAAWkC,OAAS,GAC1B,MAAO,sCAIX,OAA0B,OADd,eACFI,KAAK1C,GACJ,iEAGM,MAAbA,EAAM,IAAyC,MAA3BA,EAAMA,EAAMsC,OAAQ,GACjC,iDADX,CAGJ,GAGG,SAASK,EAAS3C,EAAO4C,EAAY1B,EAASC,EAAK0B,GACtD,IAAIC,EAAa,KAOjB,OANIF,GACAA,EAAWG,MAAMC,GACNF,EAAaE,EAAQhD,EAAOkB,EAASC,EAAK0B,KAIlDC,GAAc,IACzB,C,mCCrJA,sFAOe,MAAMG,UAAsBC,YACvCC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAM,CACTC,SAAWC,IAAMC,QAAQJ,KAAKF,MAAMpD,OAExC,CACF2D,WACE,IAAIC,EAAON,KAAKC,MAAMC,SACtB,OAAOI,GAAuB,MAAfA,EAAKC,QAAiBD,EAAKE,QAAQC,QAAQ,WAAW,IAAM,EAC7E,CAEAC,SACE,IAAIR,EAAUF,KAAKC,MAAMC,SACrBS,EAAOX,KACX,OACEY,cAACC,IAAU,CACTC,SAAUd,KAAKF,MAAMgB,SACrBZ,SAAUA,GAAYA,EAASa,QAAUZ,IAAMa,KAAKd,GAAY,GAChEe,SAAWX,IACPJ,EAAWI,EAAOH,IAAMe,SAASZ,GAAME,QAAU,GACjDG,EAAKQ,SAAS,CAACjB,SAAUA,EAAWC,IAAMC,QAAQF,GAAU,OACzDF,KAAKF,MAAMsB,UACVpB,KAAKF,MAAMsB,SAASlB,EAAS,EAErCmB,UAAU,eACVC,gBAAgBtB,KAAKF,MAAMyB,UAAe,QAC1CC,gBAAgBxB,KAAKF,MAAMyB,SAC3BE,WAAU,GAAAC,OAAK1B,KAAKF,MAAMyB,SAAS,aAAa,qBAAoB,MAG1E,E,kCCtCF,MAAM,SAAEI,EAAQ,SAAEC,GAAaC,EAAQ,KAGvC,IAAIC,IAAiB,IAAIC,MAAOC,oBAAsB,GAEtD,MAAM7B,EAAQ,CACV8B,SAAU,CAAC,EACXC,SAAU,CAAC,EACXC,cAAe,CAAC,EAChBC,aAAcT,EAASS,aACvBC,cAAe,CAAGC,MAAO,OAAQC,IAAK,UAAWC,KAAM,UAAWC,KAAM,UAAWC,OAAQ,UAAWC,QAAS,IAC/GC,WAAY,QACZC,qBAAsB,WACtBC,YAAY,qBACZC,UAAW,MACXC,WAAY,CAAEV,MAAO,OAAQE,KAAM,WACnCS,YAAa,CAAEX,MAAO,SACtBY,iBAAkB,CAAEZ,MAAO,QAASE,KAAM,WAC1CW,UAAWxB,EAASyB,IAAI,KAAM,EAAG,GAAGC,QAAQ,QAC5CC,QAAS3B,EAASyB,IAAI,KAAM,GAAI,IAAIC,QAAQ,QAC5CE,aAAc,KACdC,eAAgB,KAChBC,cAAe,KACfC,YAAa/B,EAASgC,WAAW,WACjCC,UAAWjC,EAASgC,WAAW,UAC/BE,kBAAmBlC,EAASmC,QAAQC,KAAK,CAAEC,OAAQ,IAAKX,QAAQ,QAChEY,gBAAiBtC,EAASmC,QAAQC,KAAK,CAAEC,MAAO,KAAME,MAAM,QAC5DC,IAAKA,IACMxC,EAASmC,QAEpB1D,QAAS,SAACgE,GAAoB,IAAfC,EAAIC,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAC,KAIhB,OAHKnE,EAAM8B,SAASmC,KAChBjE,EAAM8B,SAASmC,GAAOzC,EAASvB,QAAQgE,EAAK,CAAEC,KAAMA,KAEjDlE,EAAM8B,SAASmC,EAC1B,EACAI,QAASA,CAACJ,EAAKK,KACX,IAAIC,EAAYD,GAAUtE,EAAMyC,WAC5B+B,EAAMP,EAAM,IAAMM,EAKtB,OAHKvE,EAAM+B,SAASyC,KAChBxE,EAAM+B,SAASyC,GAAOhD,EAASiD,WAAWR,EAAKM,IAE5CvE,EAAM+B,SAASyC,EAAI,EAE9BzD,SAAW2D,GACAlD,EAASmD,WAAWD,GAE/BE,OAASC,GACErD,EAASgC,WAAWqB,GAE/BC,WAAaC,GACFvD,EAASsD,WAAWC,GAE/BC,eAAeC,GACJA,EAAGC,eAAelF,EAAM6C,YAEnCsC,oBAAoBF,GACTA,EAAGC,eAAelF,EAAM+C,kBAEnCqC,gBAAgBH,GACLA,EAAGC,eAAelF,EAAM8C,aAEnCuC,YAAYJ,GACDA,EAAGC,eAAelF,EAAMyC,YAEnC6C,aAAaL,GACFA,EAAGC,eAAe,cAE7BK,WAAWN,GACAA,EAAGO,SAASxF,EAAM2C,aAE7B9B,KAAKoE,GACM,IAAIrD,KAAKqD,EAAG5E,QAAQC,QAAQ,WAAW,KAElDmF,aAAaR,EAAIS,GACb,IAAIC,EAAID,EAAShH,cACjB,MAAU,SAANiH,EACOV,EAAG5C,KACG,YAANsD,EACA,IAAMV,EAAGW,QAAU,IAAMX,EAAG5C,KAE5B4C,EAAGC,eAAelF,EAAM6C,WAEvC,EACAgD,eAAiB5B,IACb,IAEI,QADejE,EAAMqE,QAAQJ,EAAKjE,EAAM0C,sBAC1B9B,OAKlB,CAAC,MAAMkF,GACH,OAAO,CACX,GAEJC,cAAeA,CAAC9B,EAAKK,KACjB,IAAKL,EAAK,OAAO,KAEjB,OADSjE,EAAMC,QAAQgE,GAAKL,KAAK,CAAEoC,MAAOrE,IAChCuD,eAAeZ,GAAUtE,EAAMiC,aAAa,EAE1DgE,uBAAuBC,GAGnB,IAAKC,EAAUC,GAAYF,EAAWG,MAAM,MAGvChE,EAAMF,EAAOC,GAAO+D,EAASE,MAAM,KAMxC,OAHAlE,EAAQmE,SAASnE,EAAO,IAAIxF,WAGtB,GAAN4E,OAAUY,EAAK,KAAAZ,OAAIa,EAAG,KAAAb,OAAIc,EAC9B,EACAkE,yBAAyBC,EAAMC,EAAOC,GAClC,IAAIC,EAAS,GACTC,EAAUH,EACd,KAAOG,GAAWF,GACdC,EAAOE,KAAKD,GACZA,EAAUA,EAAQhD,KAAK,CAAE,CAAC4C,GAAO,IAErC,OAAOG,CACX,EACAG,eAAeL,EAAOC,GACb1G,EAAMoD,eACPpD,EAAMoD,aAAepD,EAAMuG,yBAAyB,MAAOvG,EAAMgD,UAAWhD,EAAMmD,UAEtF,IAAI4D,EAAalJ,KAAKC,MAAM2I,EAAMO,KAAKhH,EAAMgD,UAAW,QAAQiE,MAC5DC,EAAWrJ,KAAKsJ,KAAKT,EAAIM,KAAKhH,EAAMgD,UAAW,QAAQiE,MAE3D,MAAO,CAAEG,MAAOpH,EAAMoD,aAAaiE,MAAMN,EAAYG,GAAWH,aAAYG,WAChF,EACAI,iBAAiBb,EAAOC,EAAKa,GACpBvH,EAAMqD,iBACPrD,EAAMqD,eAAiBrD,EAAMuG,yBAAyB,QAASvG,EAAMgD,UAAWhD,EAAMmD,UAG1F,IAAI4D,EAAoC,IAArBN,EAAMpE,KAAO,MAAcoE,EAAMtE,MAAQ,EACxD+E,EAAgC,IAAnBR,EAAIrE,KAAO,MAAcqE,EAAIvE,MAE9C,MAAO,CAAEiF,MAAOpH,EAAMqD,eAAegE,MAAMN,EAAYG,GAAWH,aAAYG,WAClF,EACAM,gBAAgBf,EAAOC,GACd1G,EAAMsD,gBACPtD,EAAMsD,cAAgBtD,EAAMuG,yBAAyB,OAAQvG,EAAMgD,UAAWhD,EAAMmD,UAExF,IAAI4D,EAAaN,EAAMpE,KAAO,KAC1B6E,EAAWR,EAAIrE,KAAO,KAAO,EAEjC,MAAO,CAAE+E,MAAOpH,EAAMsD,cAAc+D,MAAMN,EAAYG,GAAWH,aAAYG,WACjF,EACAO,sBAAsB5D,GAClB,IAAI6D,EAAQlG,EAASmC,QACrB,MAAO,CAAC+D,EAAOA,EAAM9D,KAAK,CAAEC,MAAOA,IACvC,EACA8D,+BAA+BlB,EAAOC,EAAK7C,GACvC,IAAI8C,EAAS,GAYb,OAVIA,EAAO,GADPF,EACYzG,EAAMqE,QAAQoC,EAAOzG,EAAM4C,WAE3BpB,EAASmC,QAAQT,QAAQ,SAIrCyD,EAAO,GADPD,EACY1G,EAAMqE,QAAQqC,EAAK1G,EAAM4C,WAEzB+D,EAAO,GAAG/C,KAAK,CAAEgE,OAAS,IAAM/D,GAAS,GAAM,IAExD8C,CACX,EACAkB,gBAAeA,CAACC,EAAGC,EAAGC,EAAGC,IACbH,GAAKE,GAAKF,GAAKG,GAAOF,GAAKC,GAAKD,GAAKE,GAAOH,GAAKE,GAAKD,GAAKE,EAEvEC,qBAAoBA,CAACC,EAAQC,IACrBD,EAAOpB,WAAaqB,EAAOrB,YAAcqB,EAAOrB,WAAaoB,EAAOjB,WAGpEiB,EAAOpB,WAAaqB,EAAOlB,UAAYkB,EAAOlB,SAAWiB,EAAOjB,UAGhEkB,EAAOrB,YAAcoB,EAAOpB,YAAcoB,EAAOjB,UAAYkB,EAAOlB,WAOjElH,K,mCC7Lf,uBAiDeqI,IA7COC,IAAoF,IAAnF,KAACC,EAAI,OAAEC,EAAM,SAAEC,EAAQ,cAAEC,EAAa,UAAExH,EAAS,QAAEyH,EAAO,iBAAEC,GAAiBN,EAChG,IAAKC,EAAK,OAAO,KAEjB,IAAIM,EAAexM,IAAEyM,QAAQN,GAAQ,CAACO,EAAMC,IACjCD,EAAK,KAGZE,EAAQN,GAAW,IACnBO,EAAcX,EAAKlB,MAAM,EAAG4B,GAEhC,OACIE,eAAA,OAAAC,SAAA,CACI3I,cAAA,SAAOS,UAAW,yEAA2EA,GAAa,IAAIkI,SAC1G3I,cAAA,SAAA2I,SACKF,EAAYG,KAAI,CAACC,EAAOC,IAEjBJ,eAAA,MAAAC,SAAA,CACI3I,cAAA,MAAA2I,SAAiBG,EAAW,GAApB,SACPD,EAAMD,KAAI,CAAC9M,EAAOiN,KACf,IAAIC,EAAOZ,EAAaU,EAAW,IAAMC,GACzC,OAAIC,EACOhJ,cAAA,MAA2BS,UAAWuI,EAAK,IAAI,QAASC,MAAOD,EAAK,IAAI,QAAQL,SAAEV,EAAcA,EAAca,EAAUC,EAAUjN,GAAOA,GAAhI,MAAQiN,GAEjB/I,cAAA,MAAA2I,SAA4BV,EAAcA,EAAca,EAAUC,EAAUjN,GAAOA,GAA1E,MAAQiN,EAC5B,IAEFf,EACEhI,cAAA,MAAgBS,UAAW,UAAYuH,EAASc,GAAUH,SACxC,IAAbG,EAAiB,SAAWd,EAASc,IADlC,SAGV,OAdG,MAAQA,SAoB/BhB,EAAK1J,OAASoK,IAAUL,EACtBO,eAAA,OAAKjI,UAAU,gCAA+BkI,SAAA,CAC1C3I,cAAA,KAAGS,UAAU,4BAA2BkI,SAAC,SAAWO,GAAGC,EAAE,0BAA2B,KAAM,CAACX,OAEjG,OACA,C,mCC7Cd,8BAIA,MAAMY,EAAO,CACTC,KAAOC,IACH,IAAIC,EAAS,IAAIC,WACjB,OAAO,IAAIC,SAAQ,SAAUC,EAASC,GAClCJ,EAAOK,OAAS,WACZ,IAAIC,EAAeN,EAAOO,OAG1BD,EAAeA,EAAahK,QAAQ,+BAAgC,IAGpEgK,EAAeA,EAAahK,QAAQ,UAAW,KAE/C6J,EAAQG,EACZ,EAEAN,EAAOQ,QAAU,SAAUC,GACvBL,EAAO,IAAIM,MAAM,2BACrB,EAEA,IAAIC,EAAuBrE,SAASqD,GAAGiB,gBAAgB,kBACnDC,EAAY1N,MAAMwN,GAAwB,SAAWA,EACrDG,GAAiBD,EAAU,SAASE,QAAQ,GAE5ChB,EAAKiB,MAAM,GAAGC,KAAOJ,EACrBT,EAAO,IAAIM,MAAM,2CAA6CI,EAAgB,SAIlFd,EAAOkB,WAAWnB,EAAKiB,MAAM,GACjC,GAAE,EAGNG,KAAMA,CAACC,EAAU7C,EAAM8C,KACnBC,IAAMC,OAAO,IAAIC,KAAK,CAACjD,GAAO,CAAEkD,MAAOJ,GAAQ,cAAgB,mBAAqBD,EAAS,EAGjGM,QAASC,MAAO5B,EAAM6B,KAClB,IAAItB,QAAqBT,EAAKC,KAAKC,GACnC,IAAKO,EACD,MAAM,IAAII,MAAMf,GAAGC,EAAE,sBAGzB,IAAIiC,EAAcC,IAAIC,WAAWzB,EAAa1N,QAC9C,GAAIiP,EAAYhN,OAAS,IAAM+M,EAC3B,MAAM,IAAIlB,MAAMf,GAAGC,EAAE,sBAGzB,OAAOiC,CAAW,EAGtBG,aAAcL,MAAO5B,EAAMkC,EAAgBL,KACvC,IAAItB,QAAqBT,EAAKC,KAAKC,GACnC,IAAKO,EACD,MAAM,IAAII,MAAMf,GAAGC,EAAE,sBAIzB,GAA+B,IADhBU,EAAa1N,OACfwB,QAAQ,MAAa,CAC9B,IAAIyN,QAAoBI,EAAe3B,EAAa1N,QACpD,GAAIiP,EAAYhN,OAAS,IAAM+M,EAC3B,MAAM,IAAIlB,MAAMf,GAAGC,EAAE,sBAEzB,OAAOiC,CACX,CAAO,CACH,IAAIA,EAAcC,IAAIC,WAAWzB,EAAa1N,QAC9C,GAAIiP,EAAYhN,OAAS,IAAM+M,EAC3B,MAAM,IAAIlB,MAAMf,GAAGC,EAAE,sBAEzB,OAAOiC,CACX,GAGJK,qBAAqBd,EAAUe,GAC3B,IAAKA,EAED,YADAC,QAAQC,IAAI,qCAIhB,MACM1F,EACF,mbAKkCwF,EAAO,iBAE7CtC,EAAKsB,KAAKC,EAAW,OAAQzE,EAThB,2BAUjB,GAGWkD,K,mCChGf,oDAGe,MAAMyC,UAA4B7M,YAC7CC,YAAYC,GACRC,MAAMD,GAENE,KAAKC,MAAQ,CACTvD,MAAO,KAEf,CAEA2D,WACI,OAAOL,KAAKC,MAAMvD,KACtB,CAEAgE,SACI,IAAIgM,EAAK1M,KAAKF,MAAMpD,OAA4B,IAAnBsD,KAAKF,MAAMpD,OAAawO,QAAQ,GAAMlL,KAAKF,MAAM6M,kBAE9E,OACI/L,cAAA,SAAOgL,KAAK,SAASgB,aAAcF,EAAIrL,UAAW,wBAA0BrB,KAAKF,MAAMS,QAAU,aAAe,IAAKU,SAAU2J,IAC3H,IAAIiC,EAAWjC,EAAMkC,OAAOpQ,MACxBmQ,IACA7M,KAAKmB,SAAS,CAAEzE,MAAOmQ,EAAW,MAC/B7M,KAAKF,MAAMmB,UAASjB,KAAKF,MAAMmB,SAAS,CAAE6L,OAAQ,CAAEpQ,MAAOmQ,EAAW,OAC7E,EACDE,OAASnC,IACR,IAAIiC,EAAWjC,EAAMkC,OAAOpQ,MACxBmQ,IACI7M,KAAKF,MAAMsB,UAASpB,KAAKF,MAAMsB,SAASyL,EAAW,KACvD7M,KAAKmB,SAAS,CAAEzE,MAAOmQ,EAAW,MAClCjC,EAAMkC,OAAOE,OACjB,GAGZ,E,mCCnCJ,6DAIe,MAAMC,UAAyBrN,YAC1CC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MAAQ,CACTiN,MAAO,GACPC,aAAcnN,KAAKF,MAAMpD,OAAS,GAE1C,CAEA0Q,oBACItD,GAAGuD,UAAUC,kBAAkBC,MAAMC,IAC5BA,GACL1D,GAAGuD,UAAUI,SAASD,EAAgBE,YAAYH,MAAK,KACnD,IAAI9C,EAAeX,GAAGuD,UAAUM,QAAQH,EAAgBE,YACxD,GAAIjD,EAAa,CACb,IAEIyC,EAFUzC,EAAamD,kBACHC,MAAM3E,GAAgC,aAAdA,EAAK4E,OAC/BxR,OAAOkN,KAAKuE,IACvB,CAAEC,MAAOD,EAAIrR,MAAOqR,MAG3BE,EAAcnE,GAAGoE,WAAW,mBAC5BD,GACAA,EAAYzH,MAAM,KAAKgD,KAAK2E,GACjBjB,EAAMlG,KAAK,CAAEtK,MAAOyR,EAAKpR,OAAQiR,MAAOG,EAAKpR,WAI5DiD,KAAKmB,SAAS,CAAE+L,SACpB,IACF,GAEV,CAEAxM,SACI,IAAI0N,EAAKpO,KAAKC,MAAMkN,aAChBzQ,EAAQ0R,EAAK,CAAE1R,MAAO0R,EAAIJ,MAAOI,GAAOpO,KAAKF,MAAMpD,MACvD,OACIkE,cAACyN,IAAS,CACNhN,UAAW,iBAAoBrB,KAAKF,MAAMuB,WAAcrB,KAAKF,MAAMS,QAAQ,cAAc,IACzF+N,gBAAiB,gBACjBC,cAAc,EACdC,aAAa,EACbC,SAAS,EACTC,QAAS1O,KAAKC,MAAMiN,MACpByB,YAAa7E,GAAGC,EAAE,qCAClB6E,kBAAoBC,GAAmB/E,GAAGC,EAAE,qBAAsB,KAAM,CAAC8E,IACzEnS,MAAOA,EACPoS,IAAK9O,KAAKF,MAAMgB,SAChBG,SAAWf,IACPF,KAAKmB,SAAS,CAAEgM,aAAcjN,EAAWA,EAASxD,MAAMK,OAAS,OAC7DiD,KAAKF,MAAMmB,UAASjB,KAAKF,MAAMmB,SAASf,GACxCF,KAAKF,MAAMsB,UAASpB,KAAKF,MAAMsB,SAASlB,EAAWA,EAASxD,MAAMK,OAAS,KAAK,GAIpG,E,mCC5DJ,qEAKe,MAAMgS,UAAkCnP,YACnDwN,oBACI,MAAM,aAAER,EAAY,SAAEoC,GAAahP,KAAKF,MACxCE,KAAKiP,OAAOvS,MAAQkQ,EACpB5M,KAAKiP,OAAOC,QACRF,GAAUA,GAClB,CAEA3O,WACI,OAAOL,KAAKiP,OAAOvS,MAAMI,UAC7B,CAEA4D,SACI,MAAM,aAAEkM,EAAY,UAAEvL,GAAcrB,KAAKF,MAGnCqP,EAAO,CACT9N,UAHgB+N,IAAG,kCAAmC/N,IAM1D,OACIiI,eAAA,aACS6F,EACLL,IAAMO,GAAQrP,KAAKiP,OAASI,EAC5BzC,aAAeA,EACf3L,SAAUA,KACFjB,KAAKF,MAAMsB,UAASpB,KAAKF,MAAMsB,SAASpB,KAAKK,YACjDL,KAAKiP,OAAOjC,MAAM,EACpBzD,SAAA,CAEF3I,cAAA,UAAQlE,MAAM,WAAU6M,SAAEO,GAAGC,EAAE,mCAC/BnJ,cAAA,UAAQlE,MAAM,SAAQ6M,SAAEO,GAAGC,EAAE,mCAGzC,E,mCCvCJ,wGAMe,MAAMuF,UAA0B1P,YAC7CC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAQ,CACXsP,UAAWvP,KAAKwP,eAChBC,QAAQ,EACRvP,SAAUF,KAAKF,MAAMpD,OAAS,IAEhCsD,KAAK0P,WAAaC,IAAMC,YACxB5P,KAAK6P,mBAAqB7P,KAAK6P,mBAAmBC,KAAK9P,MACvDA,KAAK+P,eAAiB/P,KAAK+P,eAAeD,KAAK9P,KACjD,CACAoN,qBAC4B,IAAtBpN,KAAKF,MAAMkQ,QACbC,SAASC,iBAAiB,YAAalQ,KAAK6P,mBAChD,CAEAM,wBAC4B,IAAtBnQ,KAAKF,MAAMkQ,QACbC,SAASG,oBAAoB,YAAapQ,KAAK6P,mBACnD,CAEAA,mBAAmBjF,GACjB,IAAIjK,EAAOX,KACX,IAA0B,IAAtBA,KAAKF,MAAMkQ,OAAkB,CAC/B,GAAIhQ,KAAK0P,aAAe1P,KAAK0P,WAAWW,QAAQC,SAAS1F,EAAMkC,QAK7D,YAHA9M,KAAKmB,SAAS,CAAEsO,QAAQ,IAAQ,KAC1BzP,KAAKF,MAAMsB,UAAUpB,KAAKF,MAAMsB,SAAST,EAAKN,WAAW,KAIvC,IAAtBL,KAAKC,MAAMwP,QAAiBzP,KAAKmB,SAAS,CAAEsO,QAAQ,GAC1D,CACF,CAEAD,eACE,MAAM,GAAN9N,OAAuB,UAAb1D,KAAKuS,SAAqC,UACtD,CAEAlQ,WACE,OAAOL,KAAKC,MAAMC,QACpB,CAEA6P,eAAenF,EAAOlO,GACpB,IAAIwD,EAAW,IAAIF,KAAKC,MAAMC,WACD,IAAzB0K,EAAMkC,OAAO0D,SAAqBhU,IAAE8T,SAASpQ,EAAUxD,IAEzB,IAAzBkO,EAAMkC,OAAO0D,UACpBtQ,EAAW1D,IAAEiU,OAAOvQ,GAAWgJ,GACtBA,IAASxM,KAHlBwD,EAAS8G,KAAKtK,GAMhBsD,KAAKmB,SAAS,CAAEjB,YAClB,CAEAQ,SACE,OACEE,cAAA,OAAKS,UAAU,sBAAqBkI,SAClC3I,cAAA,OACE6O,OAAQzP,KAAKC,MAAMwP,OACnBX,IAAK9O,KAAK0P,WACVrO,UAAU,YAAWkI,SAErB3I,cAAC8P,IAAI,CAAAnH,SACF/M,IAAEgN,IAAIxJ,KAAKF,MAAM4O,SAAUiC,GAExB/P,cAACgQ,IAAS,CAAArH,SACRD,eAACuH,IAAK,CAAAtH,SAAA,CACJ3I,cAACkQ,IAAK,CACJzP,UAAU,gBACVuK,KAAK,WAELkC,KAAM9N,KAAKC,MAAMsP,UACjB7S,MAAOiU,EAAOjU,MACd8T,QAAShU,IAAE8T,SAAStQ,KAAKC,MAAMC,SAAUyQ,EAAOjU,OAChDuE,SAAW2J,GACT5K,KAAK+P,eAAenF,EAAO+F,EAAOjU,QACnC,GAAAgF,OANO1B,KAAKC,MAAMsP,UAAS,KAAA7N,OAAIiP,EAAOjU,QAQzCkE,cAAA,QAAA2I,SAAOoH,EAAO3C,YACR,KAAAtM,OAdW1B,KAAKC,MAAMsP,UAAS,KAAA7N,OAAIiP,EAAOjU,eAsBlE,E,mCC/FF,oBAsCeqU,IApCf,SAAuBjR,GAOnB,OACIwJ,eAAA,OAAAC,SAAA,CACI3I,cAACoQ,IAAQ,CAET/P,SAAWgF,GAAMnG,EAAMmB,SAASgF,EAAEgL,OAAOC,WACzCC,UAAU,2DACVC,OAAQ,CACNC,cAAc,EACZC,GAAI,CACFC,cAAgB3G,IAfFqG,QAgBKrG,EAAMqG,OAf/BnR,EAAMpD,OACRuU,EAAOO,QAAQ1R,EAAMpD,MAcmB,MAKtCkE,cAAA,KAAA2I,SAAG,0DACH3I,cAAA,MAAA2I,SAAI,+BACJD,eAAA,OAAAC,SAAA,CACE3I,cAAA,UAAA2I,SAAQ,oBAAwB,IAAC3I,cAAA,QAAM6Q,MAAO,CAAEC,WAAY,OAAQnI,SAAE,qBAA0B,IAAC3I,cAAA,MAAA2I,SAAI,oEAAoE3I,cAAA,SACzKA,cAAA,UAAA2I,SAAQ,2BAA+B,IAAC3I,cAAA,QAAM6Q,MAAO,CAAEC,WAAY,OAAQnI,SAAE,sBAA2B,IAAC3I,cAAA,MAAA2I,SAAI,sEAAsE3I,cAAA,SACnLA,cAAA,UAAA2I,SAAQ,gBAAoB,IAAC3I,cAAA,QAAM6Q,MAAO,CAAEC,WAAY,OAAQnI,SAAE,iBAAsB,IAAC3I,cAAA,MAAA2I,SAAI,gEAAgE3I,cAAA,SAC7JA,cAAA,UAAA2I,SAAQ,4BAAgC,IAAC3I,cAAA,QAAM6Q,MAAO,CAAEC,WAAY,OAAQnI,SAAE,iBAAsB,IAAC3I,cAAA,MAAA2I,SAAI,mFAAmF3I,cAAA,SAC5LA,cAAA,UAAA2I,SAAQ,2BAA+B,IAAC3I,cAAA,QAAM6Q,MAAO,CAAEC,WAAY,OAAQnI,SAAE,gBAAqB,IAAC3I,cAAA,MAAA2I,SAAI,kFAAkF3I,cAAA,SACzLA,cAAA,UAAA2I,SAAQ,kCAAsC,IAAC3I,cAAA,QAAM6Q,MAAO,CAAEC,WAAY,OAAQnI,SAAE,gBAAqB,IAAC3I,cAAA,MAAA2I,SAAI,qGAI5H,C,6kqBCpCA,gBAaeoI,IAXClJ,IAAsB,IAArB,KAACmJ,EAAI,QAAEC,GAAQpJ,EAC5B,OACIa,eAAA,OAAKjI,UAAW,oBAAsBwQ,EAAQtI,SAAA,CAC1C3I,cAAA,OAAKS,UAAU,mBAAkBkI,SAC7B3I,cAAA,OAAKS,UAAU,SAAQkI,SAAC,iBAE5B3I,cAAA,QAAMkR,GAAG,cAAavI,SAAEqI,MACtB,C,69ECTd,6DAIe,MAAMG,UAAmBnS,YACpCc,SACI,OACIE,cAACoR,IAAK,CAACC,MAAM,EAAOC,OAAQlS,KAAKF,MAAMoS,OAAQC,OAAQnS,KAAKoS,QAAS/Q,UAAW,UAAgC,SAApByI,GAAGuI,aAAwB,aAAc,KAAOrS,KAAKF,MAAMuB,UAAUkI,SAC5JvJ,KAAKF,MAAMyJ,UAGxB,E,6KCRW,EACK,WACZc,QAAQiI,UAAUC,QAAUlI,QAAQiI,UAAUC,SAAW,CACrDA,QAASC,GACL,MAAMC,EAAY/V,GAAS2N,QAAQC,QAAQkI,KAAMjF,MAAK,IAAM7Q,IAC5D,OAAOsD,KAAKuN,MACZ7C,GAAU+H,EAAU/H,KACpBgI,GAAUD,EAAUpI,QAAQE,OAAOmI,KAEvC,GACFH,QAEFI,OAAOL,UAAUM,WAAa,WAC1B,OAAO5S,KAAK,GAAG6S,cAAgB7S,KAAKwH,MAAM,EAC9C,EAEAmL,OAAOL,UAAUQ,aAAe,WAC5B,OAAO9S,KAAK,GAAGnB,cAAgBmB,KAAKwH,MAAM,EAC9C,EAEAmL,OAAOL,UAAUS,UAAY,WACzB,OAAO/S,KAAKS,QAAQ,MAAO,IAC/B,EAEAuS,MAAMV,UAAUW,iBAAmB,WAC/B,IAAIC,EAAM,aACNC,EAAM,UAcV,OAAOnT,KAAKoT,MAZZ,SAAsBnL,EAAGC,GACrB,IAAImL,EAAKpL,EAAExH,QAAQyS,EAAK,IACpBI,EAAKpL,EAAEzH,QAAQyS,EAAK,IACxB,GAAIG,IAAOC,EAAI,CACX,IAAIC,EAAK9M,SAASwB,EAAExH,QAAQ0S,EAAK,IAAK,IAClCK,EAAK/M,SAASyB,EAAEzH,QAAQ0S,EAAK,IAAK,IACtC,OAAOI,IAAOC,EAAK,EAAID,EAAKC,EAAK,GAAK,CAC1C,CACI,OAAOH,EAAKC,EAAK,GAAK,CAE9B,GAGJ,EAEAN,MAAMV,UAAUmB,QAAUT,MAAMV,UAAUmB,SAAW,SAAUC,GAC3D,OAAO1T,KAAK2T,QAAO,SAAUzO,EAAKgE,GAC9B,IAAIvE,EAA0B,oBAAb+O,EAA0BA,EAASxK,GAAQA,EAAKwK,GAGjE,OAFKxO,EAAI0O,eAAejP,KAAKO,EAAIP,GAAO,IACxCO,EAAIP,GAAKqC,KAAKkC,GACPhE,CACX,GAAG,CAAC,EACR,EAEA8N,MAAMV,UAAUuB,YAAc,SAASC,GACnC,OAAO9T,KAAK2T,QAAO,SAASI,EAAM7K,EAAM8K,GACpC,IAAItJ,EAASoJ,EAAU5K,EAAM8K,GAE7B,OADItJ,GAAOqJ,EAAK/M,KAAK0D,GACdqJ,CACX,GAAG,GACP,EAEAvX,IAAEyX,MAAM,CACJC,KAAM,SAACC,GAAwB,IAAD,IAAAC,EAAA9P,UAAAtF,OAAdqV,EAAS,IAAArB,MAAAoB,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAATD,EAASC,EAAA,GAAAhQ,UAAAgQ,GACrB,OAAO9X,IAAE+X,aAAaJ,EAAM,QAASE,EACzC,EACAE,aAAc,SAACJ,EAAMK,GAAkC,IAAD,IAAAC,EAAAnQ,UAAAtF,OAAdqV,EAAS,IAAArB,MAAAyB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAATL,EAASK,EAAA,GAAApQ,UAAAoQ,GAC7C,IAAIC,EAAS,CAAC,EAgBd,OAfAR,EAAKS,SAAQ,CAAC1L,EAAM8K,KAChB,GAAIQ,EAAgB,CAEhB,IADeA,EAAetL,GACf,MACnB,CAEA,IAAI2L,EAASF,EACbN,EAAUO,SAAQ,CAACE,EAAUC,KACzB,IAAIrK,EAA8B,kBAAboK,EAAwB5L,EAAK4L,GAAYA,EAAS5L,EAAM8K,GACxEa,EAAOnK,KAASmK,EAAOnK,GAAUqK,IAAOV,EAAUrV,OAAS,EAAI,GAAK,CAAC,GAC1E6V,EAASA,EAAOnK,EAAO,IAE3BmK,EAAO7N,KAAKkC,EAAK,IAGdyL,CACX,GAER,ECvFW,GACXK,OAAQ,CACJC,KAAM,IACNC,aAAa,gBACbC,aAAa,gBACbC,kBAAkB,4BAClBC,qBAAqB,wBACrBC,oBAAoB,mCACpBC,iBAAiB,oBACjBC,wBAAwB,2BACxBC,qBAAqB,oCACrBC,UAAW,aACXC,YAAa,wBACbC,SAAU,YACVC,cAAc,4BACdC,UAAW,aACXC,SAAU,wBACVC,cAAe,8DACfC,UAAW,yBACXC,UAAW,4BACXC,cAAe,6BACfC,OAAQ,qBACRC,SAAU,YACVC,MAAM,SACNC,YAAa,kCACbC,cAAc,oCACdC,sBAAsB,2DACtBC,6BAA6B,8EAC7BC,YAAa,4BACbC,QAAS,WACTC,OAAO,UACPC,QAAQ,oBACRC,cAAc,kCACdC,UAAU,aACVC,SAAU,OACVC,KAAM,WACNC,OAAQ,UACRC,OAAQ,eACRC,eAAgB,8BAChBC,OAAQ,qCACRC,aAAc,4CACdC,eAAgB,wDAChBC,UAAW,wCACXC,SAAU,uCACVC,iBAAkB,gDAClBC,iBAAkB,gDAClBC,UAAW,yBACXC,aAAc,8BACdC,eAAgB,gCAChBC,WAAY,0BACZ3K,UAAW,oCACX4K,WAAY,qCACZC,YAAa,sCACbC,aAAe,uCACfC,cAAgB,wCAChBC,YAAc,sCACdC,MAAQ,gCACRC,WAAa,qCACbC,WAAa,qCACbC,WAAa,qCACbC,QAAU,kCACVC,UAAY,oCACZC,YAAc,sCACdC,SAAW,mCACXC,gBAAkB,2CAClBC,iBAAmB,4CACnBC,SAAW,4CACXC,gBAAiB,mDACjBC,aAAc,iDACdC,UAAW,6CACXC,eAAgB,kEAChBC,MAAO,UAEXC,UAAW,CACPC,MAAM,uBACNC,eAAe,sBACfC,QAAS,UACTC,cAAe,gBACfC,eAAgB,8BAChBC,oBAAqB,mDACrBpE,wBAAyB,uDACzBD,iBAAkB,sEAClBE,qBAAsB,gFACtBJ,qBAAsB,qEACtBC,oBAAqB,+EACrBuE,cAAe,oEACfzE,kBAAmB,8EACnB0E,KAAM,OACNC,QAAS,UACTC,KAAK,cACLC,aAAc,UACdC,qBAAsB,sBACtBC,WAAW,iCACXC,gBAAiB,sBACjBC,YAAa,qBACbtE,SAAU,iCACVuE,gBAAiB,yBACjBC,aAAc,qCACdvE,cAAc,mDACdwE,YAAa,qBACbpE,OAAO,6BACPqE,YAAY,iBACZC,mBAAmB,sBACnBC,YAAY,QACZC,OAAO,iBACP3E,UAAU,iCACV4E,WAAW,iDACXC,eAAe,8BACfC,WAAW,8CACXC,iBAAiB,6BACjBC,mBAAmB,2CACnBC,YAAY,wCACZC,uBAAuB,gCACvBC,kBAAkB,uBAClBjF,cAAc,iCACdI,YAAa,WACb8E,WAAW,OACXC,cAAc,sBACdC,cAAc,WACdC,YAAY,uBACZnF,SAAS,kBACToF,YAAY,cACZC,aAAc,6BACdC,iBAAkB,8BAClBC,aAAc,kCACdjF,YAAa,6BACbkF,aAAc,gBACdC,SAAU,6BACVC,cAAe,uBACfC,YAAa,+BACbC,cAAc,6BACdC,cAAc,6BACdC,gBAAgB,gCAChBC,eAAe,iBACfC,gBAAgB,yBAChBC,uBAAuB,0BACvBC,WAAW,cACXC,UAAU,aACVC,qBAAqB,4BACrBC,gBAAgB,cAChB9G,SAAS,qBACTD,YAAY,qBACZgH,QAAQ,gCACRC,eAAe,iBACfC,iBAAiB,UACjBC,aAAa,2BACbC,cAAc,qBACdC,YAAY,uBACZC,QAAQ,UACRC,UAAU,wBACVC,oBAAoB,mDACpBC,iBAAiB,oBACjB3G,sBAAsB,yBACtB4G,uBAAuB,2BACvBC,WAAW,4CAEXC,gBAAgB,sCAChBC,oBAAoB,wCACpBC,WAAW,cACXvG,KAAM,yCACNwG,mBAAmB,uBAEnBC,mBAAoB,gCACpBC,iBAAkB,6BAClBC,kBAAmB,+BACnBC,YAAa,oCACbC,YAAa,oCACbC,OAAQ,SACRC,MAAO,SAEXC,MAAO,CACHjJ,KAAM,kBACNkJ,QAAS,0BACTC,QAAS,2BAGbC,SAAU,CACNC,YAAa,+BACbC,kBAAmB,sCACnBC,aAAc,8BACdC,aAAc,uBAElBC,QAAS,SAASC,EAAKC,EAAQC,GAC3B,IAAI/X,EAAS6X,EAAIle,QAAQ,eAAgBqe,0BAOzC,OANIF,GACAG,OAAOC,KAAKJ,GAAQhK,SAAQ,SAAUjQ,EAAKwE,GACvC,IAAIzM,EAAQkiB,EAAOja,GACnBmC,EAASA,EAAOrG,QAAQ,IAAMkE,EAAKjI,EACvC,IAECmiB,EACa,kBAAPA,EACA/X,EAAS,IAAM+X,EAEf/X,EAAS,IAAMiY,OAAOC,KAAKH,GAAIrV,KAAI7E,GAAOA,EAAM,IAAMka,EAAGla,KAAMsa,KAAK,KAJ/DnY,CAMpB,EACAoY,WAAWC,GACP,IACIC,EAAQ,CAAC,EACTC,GAFUF,GAAeG,OAAOC,SAAS3E,OAAOpT,MAAM,IAEtChB,MAAM,KAC1B,IAAK,IAAIgZ,EAAI,EAAGA,EAAIH,EAAMrgB,OAAQwgB,IAAK,CACnC,IAAIC,EAAOJ,EAAMG,GAAGhZ,MAAM,KAC1B4Y,EAAMM,mBAAmBD,EAAK,KAAOC,mBAAmBD,EAAK,IAAM,GACvE,CACA,OAAOL,CACX,EACAO,QAAOA,IACIb,0BChNR,MAAMc,EAAe,eACfC,EAAc,cACdC,EAAoB,oBAEpBC,EAAe,eAEfC,EAAa,aACbC,EAAe,eAIfC,EAAmB,mBAEnBC,EAAc,cACdC,EAAY,YACZC,EAAe,eAGfC,EAAc,cAcdC,EAAoB,oBAEpBC,EAAa,aACbC,EAAe,eChC5B,SAASC,EAAUC,GAEf,OADQ7W,GAAGC,EAAE4W,EAAS9hB,cAAgB,UAAU,IACpC8hB,CAChB,CAEO,SAASC,EAAWD,GACvB,MAAO,CAAE/U,KAAMiV,EAAmBnY,KAAMgY,EAAUC,GACtD,CAEO,SAASG,EAASH,GAIrB,OAHArB,OAAOyB,YAAW,KACdjX,GAAGkX,SAKJ,SAAyBL,EAAUM,GACtC,MAAO,CAAErV,KAAMiV,EAAoBnY,KAAMgY,EAAUC,GACvD,CAPoBO,CAAgBP,GAAU,GACvC,KACI,CAAE/U,KAAMiV,EAAiBnY,KAAMgY,EAAUC,GACpD,CCZe,MAAMQ,EACjBthB,YAAYuhB,EAAeC,EAAUC,GAEjCthB,KAAKuhB,eAAiB,kCAItBvhB,KAAKwhB,uBAAyB,+BAC9BxhB,KAAKyhB,cAAgBL,EACrBphB,KAAK0hB,gBAAkB,KACvB1hB,KAAKqhB,SAAWA,EAChBrhB,KAAKshB,UAAYA,EAEjBthB,KAAK2hB,aACT,CAEAC,sBACI5hB,KAAK0hB,gBAAgBG,QACrB7hB,KAAK2hB,aACT,CAEAA,cACQG,gBACA9hB,KAAK0hB,gBAAkB,IAAII,gBAE3B9hB,KAAK0hB,gBAAkB,CAAEK,OAAQ,KAAMF,MAAO,WAAW,EAEjE,CAEA,WAAMtI,CAAMnb,EAAO4jB,GACf,MAAMrD,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUC,MAAO,CAAG,GACtD,aAAavZ,KAAKkiB,WAAWliB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAU,CAACC,SAASnkB,EAAMokB,SAASR,EAASS,aAAY,KAAU,CAAC,EAC5J,CACA,cAAMC,CAASN,GACX,MAAMzD,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUG,QAAS,CAAG,GACxD,aAAazZ,KAAKkiB,WAAWliB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAUF,IAAS,CAAC,EAC7G,CACA,qBAAMO,CAAgBP,GAClB,MAAMzD,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUI,cAAe,CAAG,GAC9D,aAAa1Z,KAAKkiB,WAAWliB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAUF,IAAS,CAAC,EAC7G,CACA,gBAAMQ,CAAWR,GACb,MAAMzD,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUQ,KAAM,CAAG,GACrD,aAAa9Z,KAAKkiB,WAAWliB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAUF,IAAS,CAAC,EAC7G,CAEA,mBAAMS,CAAczkB,GAChB,MAAMugB,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUE,eAAgB,CAAG,GAC/D,aAAaxZ,KAAKkiB,WAAWliB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAU,CAACC,SAASnkB,EAAMqkB,aAAY,KAAU,CAAC,EAC1I,CAEA,qBAAMK,CAAgBC,GAClB,MAAMpE,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAU0C,YAAa,CAAE+G,KAAMA,GAAQ,CAAEC,MAAOlE,UAClF,OAAO9e,KAAKijB,gBAAgBtE,EAAK,CAAC,EACtC,CAEA,cAAMuE,CAASC,EAAKrkB,EAAMikB,EAAMK,GAC5B,MAAMzE,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUpC,KAAM,CAAEiM,IAAKA,EAAKrkB,KAAMA,EAAMikB,KAAMA,EAAMM,OAAQD,IAC9F,aAAapjB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAG7f,EAC3D,CAEA,gBAAMykB,CAAWzkB,EAAMikB,EAAMS,GACzB,MAAM7E,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUpC,KAAM,CAAEpY,KAAMA,EAAMikB,KAAMA,IACtE,aAAa/iB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMoB,GAAW1kB,EACzF,CAEA,iBAAM2kB,CAAYnC,GACd,IAAIzC,EAAMyC,EAAY,aAAeA,EAAY,KACjD,MAAM3C,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUS,QAAS,KAAM8E,GAC3D,OAAO7e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAG,UACrD,CACA,wBAAM+E,CAAmBC,EAAQC,EAASC,EAAaC,GACnD,IAAIlF,EAAS,IAAKiF,GAA4B,CAAC,EAAIF,OAAQA,GACvDhF,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUkB,YAAaoE,GAKvD,OAJGiF,GAAgBC,IAEfnF,EAAMsD,EAAOvD,QAAQoF,EAAOlF,IAEzB5e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAGiF,EAAW,KAAOD,EACvE,CAEA,sBAAMI,CAAiBJ,EAAQC,EAASI,EAAYF,GAChD,IAAIlF,EAAS,IAAKoF,GAA0B,CAAC,EAAIL,OAAQA,GACrDhF,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUU,KAAM4E,GAKhD,OAJGoF,GAAeF,IAEdnF,EAAMsD,EAAOvD,QAAQoF,EAAOlF,IAEzB5e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAGiF,EAAW,KAAOD,EACvE,CAEA,kBAAMM,CAAaN,EAAQC,EAASI,EAAYE,EAAUrF,GACtD,IAAID,EAAS,IAAKoF,GAA0B,CAAC,EAAIL,OAAQA,GACrDhF,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUsB,OAAQgE,EAAOC,GAGzD,OAFGmF,GAAeE,IACdvF,EAAMsD,EAAOvD,QAAQwF,EAAUtF,EAAOC,IACnC7e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAGiF,EAAW,KAAOD,EACvE,CAEA,sBAAMQ,CAAiBR,EAAQC,GAC3B,MAAMjF,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUW,aAAc,CAAE0J,OAAQA,IACpE,OAAO3jB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAGiF,EAAW,KAAOD,EACvE,CAEA,uBAAMS,CAAkBC,EAAUV,EAAQW,GACtC,MAAM3F,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUyE,YAAa,CAAEsG,SAAUA,EAAUV,OAAQA,EAAQW,SAAUA,IACzG,OAAOtkB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAGgF,EACrD,CAEA,wBAAMY,CAAmBZ,EAAQa,EAAKC,EAAUC,GAC5C,IAAI/F,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUW,aAAc,CAAE0J,OAAQA,IAClE,GAAGe,GAAsBD,EACzB,CACI,IAAI7F,EAAS,IAAK8F,GAAwC,CAAC,EAAIf,OAAQA,GACvEhF,EAAMsD,EAAOvD,QAAQ+F,EAAU7F,EACnC,CACA,OAAO5e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAUkC,IAASb,EACjG,CAEA,aAAMgB,CAAQhB,EAAOjb,EAAKkc,EAAW/F,EAAG6F,EAAoBvC,GACxD,IAAIvD,EAAU,CAAC+E,OAAQA,GACvBxB,EAASA,GAAU,MAChBuC,IACC9F,EAAS,IAAK8F,GAAwC,CAAC,EAAIf,OAAQA,IAEvE,IAAIhF,EAAMsD,EAAOvD,QAAQkG,EAAYhG,EAAQC,GAAI,MAC7CnQ,EAAU,CAACyT,OAAOA,GAKtB,OAHGzZ,IACCgG,EAAQ0T,KAAOC,KAAKC,UAAU5Z,IAE3B1I,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAIjQ,EAAQiV,EACxD,CAEA,wBAAMkB,CAAmBlB,EAAQa,EAAKM,EAAQJ,GAC1C,IAAI/F,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUW,aAAc,CAAE0J,OAAQA,IAClE,GAAGe,GAAsBI,EACzB,CACI,IAAIlG,EAAS,IAAK8F,GAAwC,CAAC,EAAIf,OAAQA,GACvEhF,EAAMsD,EAAOvD,QAAQoG,EAAQlG,EACjC,CACA,OAAO5e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMC,KAAKC,UAAUkC,IAASb,EAChG,CAEA,wBAAMoB,CAAmBpB,EAAQqB,EAAIC,EAAUP,GAC3C,IAAI/F,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUW,aAAc,CAAE0J,OAAQA,IAClE,GAAGe,GAAsBO,EACzB,CACI,IAAIrG,EAAS,IAAK8F,GAAwC,CAAC,EAAIf,OAAQA,GACvEhF,EAAMsD,EAAOvD,QAAQuG,EAAUrG,EACnC,CACA,OAAO5e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,SAAUC,KAAMC,KAAKC,UAAU0C,IAAQrB,EAClG,CAEA,wBAAMuB,CAAmBb,EAAUV,EAAQwB,EAAOvB,EAAUwB,GACxD,MAAMvG,EAAKuG,EAAW,CAAEC,UAAU,GAAS,KACrC1G,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUqE,mBAAoB,CAAE0G,SAAUA,EAAUV,OAAQA,GAAU9E,GACxG,OAAO7e,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMC,KAAKC,UAAU6C,IAAUvB,EAAW,KAAOD,EACnH,CAEA,uBAAM2B,CAAkBjB,EAAUV,GAC9B,MAAMhF,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUuE,kBAAmB,CAAEwG,SAAUA,EAAUV,OAAQA,IAC7F,OAAO3jB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,UAAYwB,EACvE,CAEA,0BAAM4B,CAAqBlB,EAAUV,EAAQ6B,GACzC,MAAM7G,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUsE,iBAAkB,CAAEyG,SAAUA,EAAUV,OAAQA,EAAQ6B,GAAIA,IACxG,OAAOxlB,KAAKylB,UAAUzlB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAGgF,EAAS,QAClE,CAEA,4BAAM+B,CAAuBrB,EAAUV,EAAQ6B,EAAIG,GAC/C,MAAMhH,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUsE,iBAAkB,CAAEyG,SAAUA,EAAUV,OAAQA,EAAQ6B,GAAIA,IACxG,OAAOxlB,KAAKylB,UAAUzlB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMC,KAAKC,UAAUqD,IAAS,KACpG,CAEF,sBAAMC,CAAiBjC,EAAQa,EAAMqB,GAC/B,IAAIlH,EAAMsD,EAAOvD,QAAQmH,EAAW,CAAElC,OAAQA,IAC9C,OAAO3jB,KAAKylB,UAAUzlB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMoC,GAAQ,KACrF,CACA,2BAAMsB,CAAsBzB,EAAU3W,EAAYkW,GAC9C,MAAMjF,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUwE,YAAa,CAAEuG,WAAU3W,cAAc,YACnF,OAAO1N,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAG,cAAeiF,EACpE,CAEA,qBAAMmC,CAAgBC,EAAUC,EAAQC,GACpC,MAAMvH,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASC,YAAa,CAAE6H,SAAUH,EAAUrC,OAAQsC,EAAQ3B,SAAU4B,IACxG,OAAOlmB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAAGsH,EACrD,CAEA,uBAAMG,CAAkBJ,EAAUC,EAAQI,EAASH,GAC/C,MAAMvH,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASC,YAAa,CAAE6H,SAAUH,EAAUrC,OAAQsC,EAAQ3B,SAAS4B,GAAoB,KAC3H,OAAOlmB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAU+D,IAAYJ,EACpG,CAEA,uBAAMK,CAAkBN,EAAUC,EAAQjB,GACtC,MAAMrG,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASC,YAAa,CAAE6H,SAAUH,EAAUrC,OAAQsC,EAAQ3B,SAAS,KACvG,OAAOtkB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,SAAUC,KAAMC,KAAKC,UAAU0C,IAAQiB,EAClG,CAEA,uBAAMM,CAAkBP,EAAUC,EAAQ/c,GACtC,MAAMyV,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASC,YAAa,CAAE6H,SAAUH,EAAUrC,OAAQsC,EAAQ3B,SAAS,KACvG,OAAOtkB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMC,KAAKC,UAAUpZ,IAAS+c,EAChG,CAEA,uBAAMO,CAAkBR,EAAUC,EAAQxc,EAAOma,GAC7C,MAAMjF,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASE,kBAAmB,CAAE4H,SAAUH,EAAUrC,OAAQsC,EAAQ3B,SAAS,KAC7G,OAAOtkB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMC,KAAKC,UAAU7Y,IAAUma,EAAW,KAAOqC,EACnH,CAEA,kBAAMzH,CAAaiI,GACf,MAAM9H,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASG,aAAc,CAAC,GAC1D,OAAOxe,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMC,KAAKC,UAAU,CAAE6D,SAAUM,KAAkB,UACrH,CAEA,gBAAMC,CAAWV,GACb,MAAMrH,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASC,YAAa,CAAE6H,SAAUH,EAAUrC,OAAQ,UACtF,OAAO3jB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAM,mBAAoB,CAAC,EAAG,QAC1E,CAEA,iBAAMgI,CAAYX,GACd,MAAMrH,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASC,YAAa,CAAE6H,SAAUH,EAAUrC,OAAQ,UACtF,OAAO3jB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAM,oBAAqB,CAAC,EAAG,QAC3E,CAEA,gBAAMtD,CAAWuL,GACb,MAAMjI,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUhD,MAAO,CAAC,GACpD,OAAOtW,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,MAAOC,KAAMC,KAAKC,UAAUsE,IACvF,CAEA,uBAAMC,CAAkBb,EAAUc,GAC9B,MAAMnI,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASC,YAAa,CAAE6H,SAAUH,EAAUrC,OAAQ,UACtF,OAAO3jB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAM,2BAA4B,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAU,CAAEyE,OAAQD,KAAa,QAC5I,CAEA,kBAAMrI,CAAauI,GACf,MAAMrI,EAAMsD,EAAOvD,QAAQuD,EAAO5D,SAASI,aAAc,CAAC,GAC1D,OAAOze,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAM,UAAYqI,EAAS,CAAC,EAAG,SAC3E,CAEA,YAAMhJ,CAAOiJ,GACT,MAAMtI,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAU0E,OAAQ,CAAC,GACrD,OAAOhe,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAEwD,OAAQ,OAAQC,KAAMC,KAAKC,UAAU2E,IACxF,CAEA,kBAAMC,CAAaC,GACf,MAAMxI,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAU2E,MAAO,CAAC,EAAG,CAAEU,IAAKwI,IAC9D,OAAOnnB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAAK,CAAC,EAClD,CAEA,gBAAMuD,CAAWvD,EAAKjQ,EAASiS,EAAUiD,GACrC,IAAIwD,EAAiB,CACjBjF,OAAQ,MACRtkB,KAAM,OACNwpB,MAAO,WACPtF,OAAQ/hB,KAAK0hB,gBAAgBK,OAC7BuF,QAAS,CACL,eAAe,qBAKnBC,EAAaxI,OAAOyI,OAAOJ,EAAgB1Y,GAE/C,aAAa4U,MAAM3E,EAAK4I,GACnBha,MAAKka,GACKA,EAAaC,SAEvBna,MAAKoa,IACF,GAA2B,MAAvBA,EAAYC,OACZ,OAAOD,EAAYjf,KAEnB,MAAMif,CACV,IAEHE,OAAOC,IAEJ,MADAvb,QAAQC,IAAI,aAAcsb,GACpBA,CAAE,IAEXvV,SAAQ,QAGjB,CAEA,mBAAMyD,CAAavN,GAA4B,IAA3B,WAACsf,EAAU,WAAEC,GAAWvf,EACxC,MAAMkW,EAAMsD,EAAOvD,QAAQuD,EAAO3I,UAAUtD,cAAe,CAAC+R,aAAYC,eACxE,OAAOhoB,KAAKsjB,MAAMtjB,KAAKuhB,eAAiB5C,EAC5C,CAEA,WAAM2E,CAAM3E,EAAKjQ,EAASiS,EAAUiD,GAC5BjD,IAAaiD,GACb9Z,GAAGkX,SAASiH,EAA2BtH,IAE3C,IAAIyG,EAAiB,CACjBjF,OAAQ,MACRtkB,KAAM,OACNwpB,MAAO,WACPtF,OAAQ/hB,KAAK0hB,gBAAgBK,OAC7BuF,QAAS,CACL,eAAe,qBAKvB,IAAIY,EAAQ,GACZ,IAAoB,UAFOloB,KAAKyhB,cAAc0G,iBAG9C,CAEI,KADAD,QAAcloB,KAAKyhB,cAAc2G,gBAE7B,KAAM,CAAEC,QAAS,4BAA6Bva,KAAM,sBAExDsZ,EAAeE,QAAQgB,cAAeJ,CAC1C,CAEA,IAAIX,EAAaxI,OAAOyI,OAAOJ,EAAgB1Y,GAC/C,aAAa4U,MAAM3E,EAAK4I,GACnBha,MAAKka,GACKA,EAAaC,SAEvBna,MAAKoa,IACF,GAA2B,MAAvBA,EAAYC,OACZ,OAAOD,EAAYjf,KAEnB,MAAMif,CACV,IAEHE,OAAOC,IACJ,MAAIA,aAAcS,WAA4B,oBAAfT,EAAGO,QACxB,wDAEN9b,QAAQC,IAAI,aAAcsb,GACpBA,EACV,IAEHvV,SAAQ,KACDoO,IAAaiD,GAAS9Z,GAAGkX,SAASiH,EAAyBtH,GAAU,GAErF,CAEA,eAAM8E,CAAU9G,EAAKjQ,EAASiS,EAAUiD,GAChCjD,IAAaiD,GAAS9Z,GAAGkX,SAASiH,EAA2BtH,IAEjE,IAAIuH,QAAcloB,KAAKyhB,cAAc2G,eACrC,IAAKF,EACD,KAAM,CAAEG,QAAS,4BAA6Bva,KAAM,sBAGxD,IAAIsZ,EAAiB,CACjBjF,OAAQ,MACRtkB,KAAM,OACNwpB,MAAO,WACPC,QAAS,CACL,cAAiBY,IAGrBX,EAAaxI,OAAOyI,OAAOJ,EAAgB1Y,GAE/C,aAAa4U,MAAM3E,EAAK4I,GACnBha,MAAKka,GACKA,EAAaC,SAEvBna,MAAKoa,IACF,GAA2B,UAAvBA,EAAYC,OACZ,MAAMD,EAEN,OAAOA,CACX,IAEHE,OAAOC,IAEJ,MADAvb,QAAQC,IAAI,aAAcsb,GACpBA,CAAE,IAEXvV,SAAQ,KACDoO,IAAaiD,GAAS9Z,GAAGkX,SAASiH,EAAyBtH,GAAU,GAErF,CAEA,qBAAMsC,CAAgBtE,EAAKjQ,EAASiS,GAEhC,OADIA,GAAS7W,GAAGkX,SAASiH,EAA2BtH,UACvC2C,MAAM3E,EAAKjQ,GACnBnB,MAAKka,GACKA,EAAaC,SAEvBG,OAAM,SAAUC,EAAI5f,GAEjB,MADAqE,QAAQC,IAAI,sBAAuBsb,GAC7BA,CACV,IACCvV,SAAQ,KACDoO,GAAS7W,GAAGkX,SAASiH,EAAyBtH,GAAU,GAExE,CAEA,qBAAM6H,CAAgB7J,EAAKjQ,GACvB,aAAa4U,MAAM3E,EAAKjQ,GACnBnB,MAAKka,GACKA,EAAa7V,SAEvBiW,OAAM,SAAUC,EAAI5f,GAEjB,MADAqE,QAAQC,IAAI,sBAAuBsb,GAC7BA,CACV,GACR,ECjZW,MAAMrG,EAEnB5hB,cACEG,KAAKnC,KAAO,aACZmC,KAAKyoB,WAAa,QAElBzoB,KAAK0oB,SAAW,uCAChB1oB,KAAKoR,OAAS,CACZiW,MAAO,CACLsB,cAAe,eACfC,wBAAwB,GAE1BC,OAAQ,CACNC,cAAe,CAAC,IAKrB,IAAIC,EAAkBzJ,OAAO0J,aAAaC,QAAQ,cACjDjpB,KAAK+Z,QAAUgP,EAAkB1G,KAAK6G,MAAMH,GAAgB,KAEzCzJ,OAAO0J,aAAaC,QAAQ,eAE/CjpB,KAAKmpB,cAAgBnpB,KAAKmpB,cAAcrZ,KAAK9P,MAC7CA,KAAKopB,OAASppB,KAAKopB,OAAOtZ,KAAK9P,MAC/BA,KAAKqpB,IAAM,IAAIlI,EAAInhB,KAAM,KAAM,aACjC,CAEA,WAAMuZ,CAAM+P,GACV,IAAIC,QAAsBvpB,KAAKqpB,IAAI9P,MAAM+P,EAAYlrB,MAAMkrB,EAAYtH,UACvE,KAAIuH,GAAiBA,EAAczP,MAAQyP,EAAczP,KAAKgN,OAAS,GAWrE,MAAM9mB,KAAKwpB,eAX6D,CACxE,IAAI1P,EAAOyP,EAAczP,KACrB2P,EAAW3P,EAAK4P,aAChBC,EAAY,GAAAjoB,OAAMoY,EAAK8P,UAAS,KAAAloB,OAAIoY,EAAK+P,UAC7CvK,OAAO0J,aAAac,QAAQ,cAAeL,GAC3CnK,OAAO0J,aAAac,QAAQ,wBAAyBH,GACrDrK,OAAO0J,aAAac,QAAQ,eAAgBP,EAAcrB,OAE1DloB,KAAK+Z,QAAUwP,EAAczP,KAC7BwF,OAAO0J,aAAac,QAAQ,aAAazH,KAAKC,UAAUtiB,KAAK+Z,SAC/D,CAGF,CAEA,oBAAMP,CAAe8P,GACnB,aAAatpB,KAAKqpB,IAAIxG,cAAcyG,EAAYlrB,MAElD,CAEA,cAAMskB,CAASN,GACb,aAAapiB,KAAKqpB,IAAI3G,SAASN,EACjC,CACA,qBAAMO,CAAgBP,GACpB,aAAapiB,KAAKqpB,IAAI1G,gBAAgBP,EACxC,CACA,gBAAMQ,CAAWR,GACf,aAAapiB,KAAKqpB,IAAIzG,WAAWR,EACnC,CAEA+G,gBACEnpB,KAAKuZ,MAAM,iBACb,CAEA6P,SACE9J,OAAO0J,aAAae,WAAW,iBAC7BzK,OAAO0J,aAAagB,QAEpB1K,OAAOC,SAAS0K,KAAO,GAE3B,CAEA,qBAAMC,GACJ,QAASlqB,KAAK+Z,OAChB,CAEAoO,iBACE,OAAO,IAAI9d,SAAQ,CAACC,EAASC,KAE3BD,EAAyB,SADJgV,OAAO6K,eAAelB,QAAQ,qBACnB,GAEpC,CAEAb,eACE,IAAIznB,EAAOX,KACX,OAAO,IAAIqK,SAAQ,CAACC,EAASC,KAC3B,IAAI2d,EAAQ5I,OAAO0J,aAAaC,QAAQ,gBACpCf,EAAO5d,EAAQ,UAAY4d,GAC1B3d,EAAO5J,EAAKypB,aAAa,kBAAkB,GAEpD,CAEAZ,aAAaa,GACX,MAAO,CACLhC,QAAS,6DAEb,CAEA+B,aAAaC,GACX,MAAO,CACLhC,QAAS,6BAA+BgC,EAAMvtB,WAC9CgR,KAAM,qBAEV,CAEAwc,cAEE,OADctqB,KAAK+Z,QACJ0P,QACjB,EC9GK,SAASc,EAAYF,GACxB,MAAO,CAAEze,KAAMiV,EAAoBnY,KAAM2hB,EAC7C,CAEO,SAASG,EAAWC,EAAKJ,GAC5B,MAAO,CAAEze,KAAMiV,EAAmB4J,IAAKA,EAAK/hB,KAAM2hB,EACtD,CAEO,SAASK,EAAgBD,GAC5B,MAAO,CAAE7e,KAAMiV,EAAyB4J,IAAKA,EACjD,CCLO,SAAShH,EAAYnC,GACxB,MAAO,CAACN,EAAU2J,EAAUtB,KACxB,IAAItP,EAAUuF,OAAO0J,aAAaC,QAAQ,cACtCvgB,EAAO2Z,KAAK6G,MAAMnP,GACtB,GAAGrR,EACC,OAAOsY,EARR,CAAEpV,KAAMiV,EAAoBnY,KAQQA,IAGnC,MADAsY,EAAS4J,EAAyB,mBAC5B,gBACV,CAER,CCfO,SAASC,EAAuBC,GACnC,MAAO,CAAElf,KAAMiV,EAAwBnY,KAAMoiB,EACjD,CCLe,MAAMC,EACjBlrB,YAAYmrB,GACRhrB,KAAKirB,eAAiB,KAC1B,CAEAC,IAAIvmB,EAAKjI,GACL,IAAIyuB,EAASzuB,EACQ,kBAAVA,IACPyuB,EAAS9I,KAAKC,UAAU5lB,IAE5BssB,aAAac,QAAQ9pB,KAAKirB,eAAiBtmB,EAAKwmB,EACpD,CAEAC,IAAIzmB,GACA,OAAOqkB,aAAaC,QAAQjpB,KAAKirB,eAAiBtmB,EACtD,CAEA0mB,OAAO1mB,GACHqkB,aAAae,WAAW/pB,KAAKirB,eAAiBtmB,EAClD,CAEAqa,OACI,OAAOD,OAAOC,KAAKgK,cAAcvY,QAAO9L,GACQ,IAArCA,EAAIpG,QAAQyB,KAAKirB,kBACzBzhB,KAAI7E,GACIA,EAAIlE,QAAQT,KAAKirB,eAAgB,KAEhD,ECzBW,OACX,CACInd,KAAM,UACNwd,QAAS,UAEb,CACIxd,KAAM,YACNyd,QAAQ,UACRC,WAAW,UACXF,QAAS,YACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,YACNyd,QAAQ,0BACRzH,OAAO7B,EAAO3I,UAAUK,gBAE5B,CACI7L,KAAM,eACNyd,QAAQ,sBACRzH,OAAO7B,EAAO3I,UAAUM,oBACxB0R,QAAS,cACTG,WAAY,CAAE,gBAElB,CACI3d,KAAM,eACNyd,QAAQ,eACRzH,OAAO7B,EAAO3I,UAAUO,cACxByR,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,mBACNyd,QAAQ,cACRzH,OAAO7B,EAAO3I,UAAUlE,kBACxBkW,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,0BACNyd,QAAQ,0BACRzH,OAAO7B,EAAO3I,UAAU9D,wBACxB8V,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,uBACNyd,QAAQ,uBACRzH,OAAO7B,EAAO3I,UAAUjE,qBACxBiW,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,sBACNyd,QAAQ,sBACRzH,OAAO7B,EAAO3I,UAAUhE,oBACxBgW,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,mBACNyd,QAAQ,mBACRzH,OAAO7B,EAAO3I,UAAU/D,iBACxB+V,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,uBACNyd,QAAQ,uBACRzH,OAAO7B,EAAO3I,UAAU7D,qBACxB6V,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,aACNyd,QAAQ,sBACRzH,OAAO7B,EAAO3I,UAAUa,WACxBsK,UAAUxC,EAAO3I,UAAUc,gBAC3B0K,QAAQ7C,EAAO3I,UAAUc,gBACzB6K,UAAUhD,EAAO3I,UAAUc,gBAC3BkR,QAAS,cACTG,WAAY,CAAE,gBAElB,CACI3d,KAAM,cACNyd,QAAQ,uBACRzH,OAAO7B,EAAO3I,UAAU4B,YACxBuJ,UAAUxC,EAAO3I,UAAU8B,kBAC3B0J,QAAQ7C,EAAO3I,UAAU8B,kBACzB6J,UAAUhD,EAAO3I,UAAU8B,kBAC3BsQ,cAAczJ,EAAO3I,UAAU6B,uBAC/BqQ,WAAW,QACXF,QAAS,eACTG,WAAY,CAAE,iBAElB,CACI3d,KAAM,gBACNyd,QAAQ,gBACRC,WAAW,gBACXF,QAAS,kBACTG,WAAY,CAAE,oBAElB,CACI3d,KAAM,YACN0d,WAAW,WACXD,QAAQ,WACR9G,UAAUxC,EAAO3I,UAAUkB,YAC3BsK,QAAQ7C,EAAO3I,UAAUkB,YACzByK,UAAUhD,EAAO3I,UAAUkB,YAC3B8Q,QAAS,aACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,WACNyd,QAAQ,qBACRzH,OAAO7B,EAAO3I,UAAUvD,SACxB0O,UAAUxC,EAAO3I,UAAUe,YAC3ByK,QAAQ7C,EAAO3I,UAAUe,YACzB4K,UAAUhD,EAAO3I,UAAUe,YAC3BiR,QAAS,sBACTG,WAAY,CAAE,wBAElB,CACI3d,KAAM,gBACNyd,QAAQ,2BACRzH,OAAO7B,EAAO3I,UAAUtD,cACxBsV,QAAS,QAEb,CACIxd,KAAM,eACN0d,WAAW,eACXD,QAAQ,yBACRzH,OAAO7B,EAAO3I,UAAUiB,aACxBkK,UAAUxC,EAAO3I,UAAUgB,gBAC3BwK,QAAQ7C,EAAO3I,UAAUgB,gBACzB2K,UAAUhD,EAAO3I,UAAUgB,gBAC3BgR,QAAS,yBACTG,WAAY,CAAE,2BAElB,CACI3d,KAAM,WACN0d,WAAW,UACXD,QAAQ,UACR9G,UAAUxC,EAAO3I,UAAUuD,iBAC3BiI,QAAQ7C,EAAO3I,UAAUuD,iBACzBoI,UAAUhD,EAAO3I,UAAUuD,iBAC3ByO,QAAS,YACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,kBACN0d,WAAW,kBACXD,QAAQ,kBACRD,QAAS,mBACTG,WAAY,CAAE,qBAElB,CACI3d,KAAM,YACNyd,QAAQ,WACRzH,OAAO7B,EAAO3I,UAAUrD,UACxBwO,UAAUxC,EAAO3I,UAAUrD,UAC3B6O,QAAQ7C,EAAO3I,UAAUrD,UACzBgP,UAAUhD,EAAO3I,UAAUrD,UAC3BqV,QAAS,aACTG,WAAY,CAAE,eAElB,CACI3d,KAAM,aACNyd,QAAQ,aACRzH,OAAO7B,EAAO3I,UAAUuB,WACxB4J,UAAUxC,EAAO3I,UAAU0B,iBAC3BiK,UAAUhD,EAAO3I,UAAU2B,mBAC3BqQ,QAAS,SACTG,WAAY,CAAE,WAElB,CACI3d,KAAM,eACNyd,QAAQ,eACRzH,OAAO7B,EAAO3I,UAAUnD,cACxBsO,UAAUxC,EAAO3I,UAAUnD,cAC3B2O,QAAQ7C,EAAO3I,UAAUnD,cACzB8O,UAAUhD,EAAO3I,UAAUnD,cAC3BmV,QAAS,iBACTG,WAAY,CAAE,mBAElB,CACI3d,KAAM,SACN0d,WAAW,QACXD,QAAQ,QACRzH,OAAO7B,EAAO3I,UAAUlD,OACxB0O,QAAQ7C,EAAO3I,UAAUqB,YACzBgR,aAAa1J,EAAO3I,UAAUmB,YAC9B6Q,QAAS,UACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,iBACNyd,QAAQ,iBACRzH,OAAO7B,EAAO3I,UAAUwB,eACxBwQ,QAAS,UACTG,WAAY,CAAE,YAElB,CACI3d,KAAM,QACNyd,QAAQ,OACRC,WAAW,OACXF,QAAS,SACTG,WAAY,CAAE,cAElB,CACI3d,KAAM,cACNyd,QAAQ,OACRzH,OAAO7B,EAAO3I,UAAU/C,YACxB+U,QAAS,SACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,gBACNyd,QAAQ,WACRzH,OAAO7B,EAAO3I,UAAUgC,eAE5B,CACIxN,KAAM,wBACNyd,QAAQ,wBACRzH,OAAO7B,EAAO3I,UAAUgC,eAE5B,CACIxN,KAAM,eACNyd,QAAQ,cACRzH,OAAO7B,EAAO3I,UAAUoC,aACxBoJ,QAAQ7C,EAAO3I,UAAUoC,aACzB4P,QAAS,gBACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,mBACNyd,QAAQ,mBACRzH,OAAO7B,EAAO3I,UAAUqC,iBACxB2P,QAAS,gBACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,eACNyd,QAAQ,cACRzH,OAAO7B,EAAO3I,UAAUsC,aACxB0P,QAAS,gBACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,gBACNyd,QAAQ,qBACRrH,UAAUjC,EAAO3I,UAAU2C,eAE/B,CACInO,KAAM,iBACNyd,QAAQ,QACRrH,UAAUjC,EAAO3I,UAAU4C,cAC3B0P,YAAY3J,EAAO3I,UAAU6C,iBAEjC,CACIrO,KAAM,WACNyd,QAAQ,YAEZ,CACIzd,KAAM,YACNyd,QAAQ,YACRD,QAAS,aACTG,WAAY,CAAE,SAElB,CACI3d,KAAK,UACLyd,QAAQ,UACRzH,OAAO7B,EAAO3I,UAAUwC,SACxBwP,QAAQ,YACRG,WAAW,CAAC,cAEhB,CACI3d,KAAK,cACLyd,QAAQ,QACRzH,OAAO7B,EAAO3I,UAAU3C,YACxBkV,WAAW5J,EAAO3I,UAAUuC,aAC5ByP,QAAQ,eACRG,WAAW,CAAC,iBAEhB,CACI3d,KAAK,sBACLyd,QAAQ,QACRD,QAAQ,uBACRG,WAAW,CAAC,yBAEhB,CACI3d,KAAK,mBACLyd,QAAQ,QACRzH,OAAO7B,EAAO3I,UAAU3C,YACxB2U,QAAQ,eACRG,WAAW,CAAC,iBAEhB,CACI3d,KAAK,kBACLyd,QAAQ,QACRzH,OAAO7B,EAAO3I,UAAUiE,gBACxB+N,QAAQ,eACRG,WAAW,CAAC,iBAEhB,CACI3d,KAAK,UACLyd,QAAQ,UACR1F,UAAU5D,EAAO3I,UAAUyC,eAE/B,CACIjO,KAAK,SACLyd,QAAQ,UAEZ,CACIzd,KAAM,OACNyd,QAAQ,OACRD,QAAS,KACTG,WAAY,CAAE,SAElB,CACI3d,KAAM,aACNyd,QAAQ,QACR9G,UAAUxC,EAAO3I,UAAUiD,aChI5B,SAASoI,EAAQsB,EAAQvd,EAAMkc,EAAY/F,EAAI6F,EAAoBvC,EAAO2J,GAE7E,IAAIC,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAI1E,QAAQ4G,EAAS7iB,EAAMkc,EAAY/F,EAAI6F,EAAoBvC,GAAQ5U,MAAK7E,IACzD,IAAnBojB,EACQ9K,EAAS,CAAEpV,KAAMogB,EAAkB7J,GAAU4J,EAAWlZ,cAAenK,KAAMA,IACjFA,IACRmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CAEA,SAAS2B,EAAkB7J,GACvB,OAAQA,GACJ,IAAK,MACD,MAAO,QACX,IAAK,OACD,MAAO,UACX,IAAK,MACD,MAAO,UACX,IAAK,SACD,MAAO,UACX,QACI,MAAO,GAEnB,CC3Ne,MAAMwB,EACjB9jB,YAAYmrB,EAAOkB,GACflsB,KAAKgrB,MAAQA,EACbhrB,KAAKghB,SAAWgK,EAAMhK,SAEtBhhB,KAAKksB,cAAgBA,EACrBlsB,KAAKsrB,QAAUY,EAAcZ,QAC7BtrB,KAAKurB,QAAUW,EAAcX,QAC7BvrB,KAAKykB,UAAYyH,EAAczH,UAC/BzkB,KAAK8kB,QAAUoH,EAAcpH,QAC7B9kB,KAAKilB,UAAYiH,EAAcjH,UAC/BjlB,KAAK8jB,OAASoI,EAAcpI,OAC5B9jB,KAAK6lB,UAAYqG,EAAcrG,UAC/B7lB,KAAK2rB,aAAeO,EAAcP,aAClC3rB,KAAKwrB,WAAaU,EAAcV,WAChCxrB,KAAK8N,KAAOoe,EAAcpe,KAC1B9N,KAAKmsB,gBAAkBD,EAAcC,kBAAmB,EACxDnsB,KAAKosB,WAAaF,EAAcE,WAAapsB,KAAK8N,MAAM8E,aACxD5S,KAAKqsB,kBAAoBH,EAAcG,oBAAmD,MAA7BrsB,KAAKosB,UAAU5kB,OAAO,GAAaxH,KAAKosB,UAAU5kB,MAAM,GAAI,GAAKxH,KAAKosB,WACnIpsB,KAAKssB,QAAS,EACdtsB,KAAKkkB,UAAYgI,EAAchI,UAC/BlkB,KAAKyrB,WAAaS,EAAcT,YAAc,CAAC,QAC/CzrB,KAAKusB,qBAAqBL,EAAcK,mBAEpCvsB,KAAKusB,qBACLvsB,KAAKwsB,SAAWN,EAAcO,eAGlCzsB,KAAK0sB,WAAa,KAClB1sB,KAAK2sB,UAAY,KACjB3sB,KAAK4sB,OAAS,KACd5sB,KAAK6sB,QAAU,IACnB,CAEAC,mBACI9sB,KAAK0sB,WAAa,KAClB1sB,KAAK2sB,UAAY,KACjB3sB,KAAK4sB,OAAS,KACd5sB,KAAK6sB,QAAU,IACnB,CAEA,UAAME,CAAKC,EAAOpJ,SACJ5jB,KAAKghB,SDHhB,SAA0BiF,EAAQrC,GACrC,IAAImI,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAIlF,iBAAiBoH,EAAS3H,GAAUrW,MAAK7E,GACzCsY,EAAS,CAAEpV,KAAM,QAAUmgB,EAAWlZ,cAAenK,KAAMA,MACnEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCPgC4C,CAA+BjtB,KAAM4jB,IACzD5jB,KAAK8sB,kBACb,CAEA,wBAAMpJ,CAAmBG,EAAcmJ,EAAOpJ,SAChC5jB,KAAKghB,SD7ChB,SAA4BiF,EAAQrC,EAAUsJ,GACjD,IAAInB,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAI3F,mBAAmB6H,EAAS3H,EAAUsJ,EAAejH,EAAOnC,QAAQvW,MAAK7E,GACzEsY,EAAS,CAAEpV,KAAM,QAAUmgB,EAAWlZ,cAAenK,KAAMA,MACnEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCmCgC4C,CAAiCjtB,KAAM4jB,EAAUC,IACrE7jB,KAAK8sB,kBACb,CACA,sBAAM/I,CAAiBnF,EAAQoO,EAAOpJ,SACxB5jB,KAAKghB,SDrChB,SAA0BiF,EAAQrC,EAAUhF,GAC/C,IAAImN,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAItF,iBAAiBwH,EAAS3H,EAAUhF,EAAQqH,EAAO0F,cAAcpe,MAAK7E,GACtEsY,EAAS,CAAEpV,KAAK,QAADlK,OAAUqqB,EAAWlZ,eAAiBnK,KAAMA,MACnEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CC2BgC4C,CAA+BjtB,KAAM4jB,EAAUhF,IACnE5e,KAAK8sB,kBACb,CACA,kBAAM7I,CAAarF,EAAQC,EAAImO,EAAOpJ,SACxB5jB,KAAKghB,SD7BhB,SAAsBiF,EAAQrC,EAAUhF,EAAQC,GACnD,IAAIkN,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAIpF,aAAasH,EAAS3H,EAAUhF,EAAQqH,EAAO/B,UAAWrF,GAAItR,MAAK7E,IAC1E6D,QAAQC,IAAI,QAAD9K,OAASqqB,EAAWlZ,gBACxBmO,EAAS,CAAEpV,KAAK,QAADlK,OAAUqqB,EAAWlZ,eAAiBnK,KAAMA,OACnEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCkBgC4C,CAA2BjtB,KAAM4jB,EAAUhF,EAAQC,IACvE7e,KAAK8sB,kBACb,CACA,YAAMK,CAAO9G,EAAS3B,GACN1kB,KAAKgrB,MAAML,WAAvB,IACIyC,QAAgBptB,KAAKghB,SDT1B,SAA4BiF,EAAQI,EAAS3B,GAChD,IAAIqH,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAI9E,mBAAmBgH,EAASlF,EAASJ,EAAOxB,UAAWC,GAAoBnX,MAAK7E,GAChFsY,EAAS,CAAEpV,KAAM,UAAYmgB,EAAWlZ,cAAenK,KAAMA,MACrEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCD0C4C,CAAiCjtB,KAAMqmB,EAAS3B,IAGlF,OAFA1kB,KAAK8sB,mBAEEM,CACX,CAEA,gBAAMC,CAAWC,EAAUpH,GACvB,IAAIjmB,EAAQD,KAAKgrB,MAAML,WACvB,IAAK1qB,EAAMmX,OAAQ,OACnB,IAAIgW,QAAgBptB,KAAKghB,SDN1B,SAAgCuM,EAAUtH,EAAQqH,GACrD,IAAIvB,EAAa9F,EAAOnY,KACxB,MAAO,CAACkT,EAAU2J,EAAUtB,IACjBA,EAAI9E,mBAAmBgJ,EAAUxB,EAAYuB,GAAU/f,MAAK7E,GACxDsY,EAAS,CAAEpV,KAAM,eAAiBmgB,EAAWlZ,cAAenK,KAAMA,MAC1Emf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCH0C4C,CAAqChtB,EAAMmX,OAAOiN,SAAUrkB,KAAMstB,IAGpG,OAFAttB,KAAK8sB,mBAEEM,CACX,CAEA,YAAMI,CAAOxI,EAAKN,GACF1kB,KAAKgrB,MAAML,WAAvB,IACI8C,QAAgBztB,KAAKghB,SDU1B,SAA4BiF,EAAQjB,EAAKN,GAC5C,IAAIqH,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAItE,mBAAmBwG,EAASvG,EAAKiB,EAAOhB,UAAWP,GAAoBnX,MAAK7E,GAC5EsY,EAAS,CAAEpV,KAAM,UAAYmgB,EAAWlZ,cAAenK,KAAMsc,MACrE6C,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCpB0C4C,CAAiCjtB,KAAMglB,EAAKN,IAG9E,OAFA1kB,KAAK8sB,mBAEEW,CACX,CAEA,YAAMC,CAAOC,EAAStH,EAAS3B,GACf1kB,KAAKgrB,MAAML,WAAvB,IACIiD,QAAgB5tB,KAAKghB,SDX1B,SAA4BiF,EAAQI,EAASsH,EAASjJ,GACzD,IAAIqH,EAAa9F,EAAOnY,KACpByd,EAAUtF,EAAOsF,QACrB,MAAO,CAACvK,EAAU2J,EAAUtB,KAExBrI,EAAS,CAAEpV,KAAM,UAAYmgB,EAAWlZ,cAAenK,KAAM2d,IACtDgD,EAAIxE,mBAAmB0G,EAASlF,EAASJ,EAAOnB,QAASJ,GAAoBmD,OAAMwC,IACtFvgB,GAAGmiB,SAAS5B,GACLrJ,EAAS,CAAEpV,KAAM,UAAYmgB,EAAWlZ,cAAenK,KAAMilB,OAGhF,CCA0CV,CAAiCjtB,KAAMqmB,EAASsH,EAASjJ,IAG3F,OAFA1kB,KAAK8sB,mBAEEc,CACX,CAEA,YAAMC,CAAOpkB,EAAOma,EAAUwB,GAC1B,IAAInlB,EAAQD,KAAKgrB,MAAML,WACvB,IAAK1qB,EAAMmX,OAAQ,OACnB,IAAI0W,EAAW9tB,KAAKghB,SDgBrB,SAA4BuM,EAAUtH,EAAQxc,EAAOma,EAAUwB,GAClE,IAAI2G,EAAa9F,EAAOnY,KACxB,MAAO,CAACkT,EAAU2J,EAAUtB,IACjBA,EAAInE,mBAAmBqI,EAAUxB,EAAYtiB,EAAOma,EAAUwB,GAAU7X,MAAK7E,IAChF6D,QAAQC,IAAI,QAAD9K,OAASqqB,EAAWlZ,gBACxBmO,EAAS,CAAEpV,KAAM,QAAUmgB,EAAWlZ,cAAenK,KAAMA,OACnEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CC1BqC4C,CAAiChtB,EAAMmX,OAAOiN,SAAUrkB,KAAMyJ,EAAOma,EAAUwB,IAG5G,OAFAplB,KAAK8sB,mBAEEgB,CACX,CAEA,WAAMC,CAAMC,GACR,IAAI/tB,EAAQD,KAAKgrB,MAAML,WACvB,GAAK1qB,EAAMmX,OAEX,aADkBpX,KAAKghB,SD6ExB,SAA2BuM,EAAUtH,EAAQC,GAChD,IAAI6F,EAAa9F,EAAOnY,KACxB,MAAO,CAACkT,EAAU2J,EAAUtB,IACjBA,EAAIjF,kBAAkBmJ,EAAUxB,EAAY7F,GAAU3Y,MAAK7E,GACvDsY,EAAS,CAAEpV,KAAMiV,EAAyBlc,IAAKonB,EAAa7F,EAAUxd,KAAMA,MACpFmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCtFwC4C,CAAgChtB,EAAMmX,OAAOiN,SAAUrkB,KAAMguB,KAChFtlB,IACjB,CAEA,cAAMulB,GACF,GAAInkB,GAAGokB,UAAW,CACd,IAAIjuB,EAAQD,KAAKgrB,MAAML,WACvB,IAAK1qB,EAAMmX,OAAQ,aACbpX,KAAKghB,SDZhB,SAA8BuM,EAAUtH,GAC3C,IAAI8F,EAAa9F,EAAOnY,KACxB,MAAO,CAACkT,EAAU2J,EAAUtB,IACjBA,EAAI/D,kBAAkBiI,EAAUxB,GAAYxe,MAAK7E,GAC7CsY,EAAS,CAAEpV,KAAM,YAAcmgB,EAAWlZ,cAAenK,KAAMA,MACvEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CCGgC4C,CAAmChtB,EAAMmX,OAAOiN,SAAUrkB,OAC9EA,KAAK8sB,kBAET,CACJ,CAEAqB,aAAarc,EAAIlG,GACb,OAAO5L,KAAK8N,KAAO,IAAMgE,GAAMlG,GAAQ,GAC3C,CAEA,cAAM6B,CAASqE,EAAIlG,EAAMohB,GACrB,IAAKhtB,KAAKusB,mBAAoB,OAC9B,IAAItsB,EAAQD,KAAKgrB,MAAML,WACvB,OAAK1qB,EAAMmX,UACNnX,EAAMkL,MAAMnL,KAAKmuB,aAAarc,EAAIlG,KAAUohB,SAChChtB,KAAKghB,SChIvB,SAA8BuM,EAAUtH,EAAQnU,GACnD,IAAIia,EAAa9F,EAAOnY,KACxB,MAAO,CAACkT,EAAU2J,EAAUtB,IACjBA,EAAI9D,qBAAqBgI,EAAUxB,EAAYja,GAAIvE,MAAK7E,GACpDsY,EAAS,CAAEpV,KAAM,YAAajH,IAAKshB,EAAOkI,aAAarc,GAAKpJ,KAAM,IAAIud,EAAOuG,SAAS9jB,EAAMqjB,EAAYja,OAChH+V,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,GACLrJ,EAAS,CAAEpV,KAAM,aAAcjH,IAAKshB,EAAOkI,aAAarc,OAG3E,CDsHuCsc,CAAiCnuB,EAAMmX,OAAOiN,SAAUrkB,KAAM8R,SAF7F,CAIJ,CAEA,cAAMuc,CAASvc,EAAIpJ,GACf,IAAK1I,KAAKusB,mBAAoB,OAC9B,IAAItsB,EAAQD,KAAKgrB,MAAML,WACvB,OAAK1qB,EAAMmX,aACEpX,KAAKghB,SC5HnB,SAA0CuM,EAAUtH,EAAQnU,EAAIpJ,GACnE,IAAIqjB,EAAa9F,EAAOnY,KACxB,MAAO,CAACkT,EAAU2J,EAAUtB,IACjBA,EAAI3D,uBAAuB6H,EAAUxB,EAAYja,EAAIpJ,GAAM6E,MAAK7E,GAC5DsY,EAAS,CAAEpV,KAAM,cAAejH,IAAKshB,EAAOkI,aAAarc,OACjE+V,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,GACLrJ,EAAS,CAAEpV,KAAM,aAAcjH,IAAKshB,EAAOkI,aAAarc,OAG3E,CDkHmCsc,CAA6CnuB,EAAMmX,OAAOiN,SAAUrkB,KAAM8R,EAAIpJ,SADzG,CAEJ,CACA,YAAM4lB,CAAOC,EAASrI,GACNlmB,KAAKgrB,MAAML,WAAvB,IACIyC,QAAgBptB,KAAKghB,SC1G1B,SAAgCiF,EAAQsI,GAC3C,IAAIxC,EAAa9F,EAAOnY,KACpByd,EAAWtF,EAAOsF,QACtB,MAAO,CAACvK,EAAU2J,EAAUtB,IACjBA,EAAIzD,iBAAiB2F,EAASgD,EAAQtI,EAAOJ,WAAWtY,MAAK7E,GAC1DsY,EAAS,CAAEpV,KAAM,UAAYmgB,EAAWlZ,cAAenK,KAAMA,MACpEmf,OAAMwC,IACLvgB,GAAGmiB,SAAS5B,EAAM,GAG9B,CDgG0C+D,CAAmCpuB,KAAMuuB,IAE3E,OADAvuB,KAAK8sB,mBACEM,CACX,CACA,oBAAMoB,CAAe1c,GACjB,IAAK9R,KAAKusB,mBAAoB,OAC9B,IAAItsB,EAAQD,KAAKgrB,MAAML,WACvB,OAAK1qB,EAAMmX,aACEpX,KAAKghB,SC5HnB,SAAwBuM,EAAUtH,EAAQnU,GAC7C,MAAO,CAACkP,EAAU2J,EAAUtB,IACjBrI,EAAS,CAAEpV,KAAM,aAAcjH,IAAKshB,EAAOkI,aAAarc,IAEvE,CDwHmCsc,CAA2BnuB,EAAMmX,OAAOiN,SAAUrkB,KAAM8R,SADnF,CAEJ,CAEA,qBAAMxE,GAGF,aAFWtN,KACA+sB,OACJ/sB,KAAKyuB,iBAChB,CAEAzE,QACIhqB,KAAK8sB,mBACL9sB,KAAKghB,SD9JF,CAAEpV,KAAM,SC8JmC5L,KD9JjB8N,KAAK+E,eC+JtC,CAEA6b,WACI,QAAO1uB,KAAKorB,KAChB,CAEAA,MAEI,OADYprB,KAAKgrB,MAAML,WACV3qB,KAAK8N,KACtB,CAEAH,QAAQmE,EAAIlG,GAER,OADY5L,KAAKgrB,MAAML,WACVxf,MAAMnL,KAAKmuB,aAAarc,EAAIlG,GAC7C,CAEA+iB,aAAaC,EAAYC,EAAWC,GAChC,IAAI7uB,EAAQD,KAAKorB,MACjB,OAAKnrB,GACAD,KAAK0sB,aACN1sB,KAAK0sB,WAAazsB,EAAMuJ,KAAKjK,IACzB,IAAIwvB,EAAMxvB,EAAIqvB,GAAc,QAI5B,OAHIA,GAAoC,oBAAfA,IACrBG,EAAMH,EAAWrvB,IAEd,CAAE7C,MAAO6C,EAAIuvB,GAAc9uB,KAAKsrB,SAAUtd,MAAO+gB,EAAK,IAE7DF,IACA7uB,KAAK0sB,WAAalwB,IAAEwyB,OAAOhvB,KAAK0sB,YAAaxjB,GAClCA,EAAK8E,UAIjBhO,KAAK0sB,YAfO,EAgBvB,CAEAuC,YACI,IAAIhvB,EAAQD,KAAKorB,MACjB,OAAKnrB,GACAD,KAAK4sB,SACN5sB,KAAK4sB,OAASpwB,IAAEyM,QAAQhJ,EAAOD,KAAKsrB,QAAQxuB,aAEzCkD,KAAK4sB,QAJO,EAKvB,CAEAsC,UACI,IAAIjvB,EAAQD,KAAKorB,MACjB,OAAKnrB,GACAD,KAAK6sB,UACN7sB,KAAK6sB,QAAUrwB,IAAEyM,QAAQhJ,GAAQiJ,GACtBlJ,KAAKmvB,gBAAgBjmB,MAG7BlJ,KAAK6sB,SANO,EAOvB,CAEAuC,YAAYR,GACR,IAAI3uB,EAAQD,KAAKorB,MACjB,OAAKnrB,GACAD,KAAK2sB,YACN3sB,KAAK2sB,UAAY,CAAC,EAClB1sB,EAAM2U,SAASrV,IACXS,KAAK2sB,UAAUptB,EAAIqvB,GAAc,SAAWrvB,EAAIS,KAAKsrB,QAAQ,KAG9DtrB,KAAK2sB,WAPO,EAQvB,CAEAwC,gBAAgBjmB,GAKZ,OAJkBlJ,KAAKyrB,WAAWjiB,KAAK6lB,GAC5BnmB,EAAKmmB,IAAW,KAGRpQ,KAAK,IAC5B,CAEAqQ,SAASpmB,GACL,IAAIvE,EAAM3E,KAAKmvB,gBAAgBjmB,GAC/B,OAAKvE,EAIE3E,KAAKuvB,UAAU5qB,IAHlB4H,QAAQC,IAAI,+FAAiGxM,KAAK8N,MAC3G,KAGf,CAEAyhB,UAAU5qB,GACN,OAAO3E,KAAKkvB,UAAUvqB,EAC1B,CAEA6qB,gBACI,IAAIvvB,EAAQD,KAAKorB,MACjB,IAAKnrB,EAAO,OAAO,EACnB,IAAIwvB,EAAQ,CAAC,EACb,IAAK,IAAIjQ,EAAI,EAAGA,EAAIvf,EAAMjB,OAAQwgB,IAAK,CACnC,IAAItW,EAAOjJ,EAAMuf,GACjB,GAA2B,qBAAhBtW,EAAKwmB,SAA0C,IAAhBxmB,EAAKwmB,OAAkB,SACjE,IAAI/qB,EAAM3E,KAAKmvB,gBAAgBjmB,GAC/B,GAAIumB,EAAM9qB,GAEN,OADAmF,GAAG6lB,KAAK,0BAA2BzmB,IAC5B,EAEPumB,EAAM9qB,IAAO,CAErB,CACA,OAAO,CACX,CAEAirB,iBACI,IAAI3vB,EAAQD,KAAKorB,MACjB,IAAKnrB,EAAO,OAAO,EACnB,IAAI+e,EAAO,CAAC,EACRyQ,EAAQ,CAAC,EACb,IAAK,IAAIjQ,EAAI,EAAGA,EAAIvf,EAAMjB,OAAQwgB,IAAK,CACnC,IAAItW,EAAOjJ,EAAMuf,GACjB,GAA2B,qBAAhBtW,EAAKwmB,SAA0C,IAAhBxmB,EAAKwmB,OAAkB,SACjE,IAAI/qB,EAAM3E,KAAKmvB,gBAAgBjmB,GAC3B8V,EAAKra,KACL8qB,EAAMvmB,EAAKlJ,KAAKsrB,WAAY,GAEhCtM,EAAKra,IAAO,CAChB,CACA,OAAO8qB,CACX,CAEAhB,kBACI,IACIoB,EADO7vB,KACWorB,MACtB,IAAKyE,EAAY,OAAO,KAExB,IAAIC,EAAcD,EAAWhiB,MAAK3E,GAAiBA,EAAK6mB,YAMxD,OALKD,IACDvjB,QAAQojB,KAAK,kDACbG,EAAcD,EAAWA,EAAW7wB,OAAS,IAG1C8wB,CACX,CAEAE,YAAYle,EAAIme,GACZ,IAAIC,EAAQlwB,KAAKivB,YAAYnd,GAC7B,OAAOoe,EAAQA,EAAMD,GAAO,QAAU,EAC1C,CAEAE,SAASzzB,EAAOuzB,GACZ,OAAOjwB,KAAKovB,YAAYa,GAAKvzB,EACjC,CAEAsd,KAAKlI,GACD,OAAO9R,KAAKivB,YAAYnd,EAC5B,CAGA/H,EAAEpF,EAAKyrB,GACH,OAAOtmB,GAAGC,EAAE/J,KAAK8N,KAAO,IAAMnJ,EAAKyrB,EACvC,CAEAC,QAAQ1rB,EAAKyrB,GACT,OAAOtmB,GAAGC,EAAE/J,KAAK8N,KAAO,YAAcnJ,EAAKyrB,EAC/C,CAEAE,eACI,OAAOxmB,GAAGwmB,aAAatwB,KAC3B,CAEA,iBAAMuwB,CAAY7nB,EAAKmW,EAAG+F,EAAYF,EAAmBoH,GACrDA,EAA6C,qBAApBA,GAAyCA,EAClE,IAAIsB,QAAgBptB,KAAKghB,SAASiM,EAAsBjtB,KAAK0I,EAAKkc,EAAW/F,EAAG6F,EAAmB,OAAOoH,IAE1G,OADA9rB,KAAK8sB,mBACEM,EAAUA,EAAQ1kB,KAAO,CAAC,CACrC,CAEA,gBAAM8nB,CAAW9nB,EAAKmW,EAAG+F,EAAYF,EAAmBoH,GACpDA,EAA6C,qBAApBA,GAAyCA,EAClE,IAAIsB,QAAgBptB,KAAKghB,SAASiM,EAAsBjtB,KAAK0I,EAAKkc,EAAW/F,EAAG6F,EAAmB,MAAMoH,IAGzG,GADA9rB,KAAK8sB,wBACQvoB,IAAV6oB,EACH,OAAOA,EAAQ1kB,KAAO0kB,EAAQ1kB,KAAO0kB,CACzC,CAEA,gBAAMqD,CAAW/nB,EAAKmW,EAAG+F,EAAYF,EAAmBoH,GACpDA,EAA6C,qBAApBA,GAAyCA,EAClE,IAAIphB,QAAe1K,KAAKghB,SAASiM,EAAsBjtB,KAAK0I,EAAKkc,EAAW/F,EAAG6F,EAAmB,MAAMoH,IAExG,OADA9rB,KAAK8sB,mBACEpiB,GAAUA,EAAOhC,KAAQgC,EAAOhC,KAAOgC,CAClD,CAEA,mBAAMgmB,CAAchoB,EAAKmW,EAAG+F,EAAYF,EAAmBoH,GAIvD,OAHAA,EAA6C,qBAApBA,GAAyCA,QAE/C9rB,KAAKghB,SAASiM,EAAsBjtB,KAAK0I,EAAKkc,EAAW/F,EAAG6F,EAAmB,SAASoH,GAE/G,E,aErVW,MAAM6E,EACnB9wB,YAAYmrB,EAAO5J,EAAeiI,GAEhCrpB,KAAK4wB,gBAAiB,EAEtB5wB,KAAK6wB,QAAU,IAAI9F,EACnB/qB,KAAKgrB,MAAQA,EACbhrB,KAAKghB,SAAWgK,EAAMhK,SACtBhhB,KAAKohB,cAAgBA,EACrBphB,KAAKqpB,IAAMA,EAEXrpB,KAAK8wB,iBAAmB,KACxB9wB,KAAK+wB,cAAgB,QACrB/wB,KAAKgxB,gBAAkBhxB,KAAK6wB,QAAQzF,IAAI,SAAWprB,KAAK8wB,iBAExD9wB,KAAKgc,YAAc,KACnBhc,KAAKixB,UAAY,CAAC,EAClBjxB,KAAKkxB,aAAe,CAAC,CAAEx0B,MAAO,KAAMsR,MAAO,YAK3ChO,KAAKmxB,UAAY,CACf,CAAEnjB,MAAO,QAAStR,MAAO,SACzB,CAAEsR,MAAO,OAAQtR,MAAO,SAE1BsD,KAAKqS,aAAerS,KAAK6wB,QAAQzF,IAAI,UAAYprB,KAAK+wB,cAEtD/wB,KAAKoxB,WAAapxB,KAAK6wB,QAAQzF,IAAI,SACnCprB,KAAKqxB,UAAW,EAChBrxB,KAAKsxB,QAAU,KAEftxB,KAAKuxB,iBAAmB,KACxBvxB,KAAKwxB,iBAAmB,KACxBxxB,KAAKyxB,YAAc,KAEnBzxB,KAAK0xB,iBAAmB,KACxB1xB,KAAK2xB,aAAe,KAEpB3xB,KAAK4xB,QAAU,CAAC,EAEiB,cAA7BtS,OAAOC,SAASsS,SAClB7xB,KAAK8xB,kBAEL9xB,KAAK+xB,oBAGP/xB,KAAKgyB,UAAU,CACbC,WAAW,aACXC,MAAO,QACPC,MAAO,QACPC,MAAO,QACPC,aAAc,gBAEhBryB,KAAKsY,MAAQ,CACX,CAACxG,GAAG,EAAEhE,KAAK,cACX,CAACgE,GAAG,EAAEhE,KAAK,SACX,CAACgE,GAAG,EAAEhE,KAAK,SACX,CAACgE,GAAG,EAAEhE,KAAK,SACX,CAACgE,GAAG,EAAEhE,KAAK,iBAEb9N,KAAK2f,QAASL,OAAOC,SAAS+S,MAChC,CAEA,aAAIpE,GACF,OAAOluB,KAAKoxB,UACd,CAEA,aAAIlD,CAAUxxB,GACZsD,KAAKoxB,WAAa10B,EACdA,GACFsD,KAAK6wB,QAAQ3F,IAAI,SAAS,GAC1BlrB,KAAK8xB,oBAEL9xB,KAAK6wB,QAAQxF,OAAO,SACpBrrB,KAAK+xB,oBAET,CAEA,gBAAMQ,CAAWpK,GACf,IAcE,SAbMnoB,KAAKghB,UNxFe8J,EM0FtB9qB,KAAKgxB,gBN1FsBwB,EM2F3BxyB,KAAK8wB,iBN1FJ,CAAC9P,EAAU2J,EAAUtB,IACjBA,EAAIvG,gBAAgBgI,GAAKvd,MAAK7E,IACjCA,EAAKoF,KAAOgd,EACL9J,EAAS6J,EAAuBniB,OACxCmf,OAAMwC,GACEhB,EAAIvG,gBAAgB0P,GAAUjlB,MAAK7E,IACtCA,EAAKoF,KAAO0kB,EACLxR,EAAS6J,EAAuBniB,OACxCmf,OAAMwC,IAGL,MAFA9d,QAAQC,IAAI6d,GACZrJ,EAAS4J,EAAyB,CAAEvC,QAAS,2CACvCgC,CAAK,QMiFnB9c,MAAMklB,IACN,IAAIxyB,EAAQD,KAAKgrB,MAAML,WACnB1qB,EAAM+b,cACRhc,KAAKgc,YAAc/b,EAAM+b,YACzBhc,KAAK6wB,QAAQ3F,IAAI,OAAQjrB,EAAM+b,YAAYlO,MAC7C,IAEFwR,OAAO6K,eAAeL,QAAQ,oBAAoB3B,IAC3B,IAAnBA,OACG,CACL,IAAIuK,QAAkC1yB,KAAKghB,SACzC2R,EAA2B3yB,KAAKohB,cAAcvjB,OAEhDmC,KAAK4yB,GAAKF,EAA0BhqB,IACtC,CAsBA,OApBAmqB,EAAYje,SAASke,IACfA,EAAGC,WACL/yB,KAAK8yB,EAAGhlB,MAAQ,IAAIglB,EAAGC,WAAW/yB,KAAKgrB,MAAO8H,IAE9C9yB,KAAK8yB,EAAGhlB,MAAQ,IAAI6V,EAAO3jB,KAAKgrB,MAAO8H,GACpCA,EAAGtH,aAGFxrB,KAAK8yB,EAAGtH,YAAc,IAAI7H,EAAO3jB,KAAKgrB,MAAOjM,OAAOyI,OAAO,CAAC,EAAEsL,EAAG,CAAChlB,KAAKglB,EAAGtH,cAC1ExrB,KAAK8yB,EAAGtH,YAAYc,QAAS,EAC7BtsB,KAAK8yB,EAAGtH,YAAYA,WAAa,MAEvC,IAEFxrB,KAAK2vB,KAAK,oBAMH,CACT,CAAE,MAAO1pB,GAEP,OADAjG,KAAK2vB,KAAK,0BAA2B1pB,IAC9B,CACT,CNrIG,IAAyB6kB,EAAK0H,CMsInC,CAGA/O,cACE,OAAOzjB,KAAKghB,SAAS2R,IACvB,CAEA,qBAAMK,CAAgB5b,GACRpX,KAAKgrB,MAAML,WACbvT,SAAWA,IACnBpX,KAAKwM,IAAI,yBAA0B4K,EAAOtY,MAC1CkB,KAAKghB,SCtJJ,SAAmB5J,GACtB,MAAO,CAAExL,KAAMiV,EAAkBnY,KAAM0O,EAC3C,CDoJoB6b,CAAwB7b,IACtCnH,SAASijB,gBAAgBzhB,MAAM0hB,YAC7B,iBACA/b,EAAOgc,aAEHpzB,KAAK6Y,SAASkU,OAChB/sB,KAAKkuB,WAAaluB,KAAKqzB,uBACnBrzB,KAAKsW,MAAMyW,OAGvB,CAEAuG,kBAEE,OADYtzB,KAAKgrB,MAAML,WACVvT,MACf,CAEA,uBAAMmc,GACJ,IAAItzB,EAAQD,KAAKgrB,MAAML,WACvB3qB,KAAKqpB,IAAIzH,sBACL3hB,EAAMmX,SACRpX,KAAKwM,IAAI,iCACHxM,KAAKghB,SCvKN,CAAEpV,KAAMiV,UDwKP7gB,KAAKghB,SD7IN,CAAEpV,KAAMiV,IC8Ib7gB,KAAKuxB,iBAAmB,KACxBsB,EAAYje,SAAQ9I,gBACZ9L,KAAK8yB,EAAGhlB,MAAMkc,OAAO,KAG/BhqB,KAAKyxB,YAAc,KACnBzxB,KAAKwzB,cACP,CAEAC,YAAoB,IAAD,IAAArf,EAAA9P,UAAAtF,OAAN00B,EAAI,IAAA1gB,MAAAoB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJof,EAAIpf,GAAAhQ,UAAAgQ,GACf,OAAO9X,IAAEm3B,MAAMD,GAAOzN,GACbA,EAAOyI,YAElB,CAEAkF,kBAAkBF,GAChB,IAAIG,GAAS,EAIb,OAHAr3B,IAAEC,KAAKi3B,GAAOzN,IACZ4N,EAASA,GAAU5N,EAAOyI,UAAU,KAEpB,IAAXmF,CACT,CAEAC,aAAaC,EAAa/G,GACxB,IAAIgH,EAAa,GAIjB,OAHAD,EAAYnf,SAASqR,IACnB+N,EAAWhtB,KAAKif,EAAO8G,KAAKC,GAAO,IAE9B3iB,QAAQ4pB,IAAID,EACrB,CAEA/H,SAASiI,GACP,MAAMzJ,GAAM,IAAI1oB,MAAOoyB,UAEvB,IAAIC,EAAW,CAAEC,UAAW,KAAMhM,QAAS,GAAGoC,OAEvB,kBAAZyJ,EACTE,EAAS/L,QAAU6L,EAEbA,EAAQI,QAASF,EAAS/L,QAAU6L,EAAQI,QAE9CJ,aAAmBrpB,MACrBupB,EAAS/L,QAAU6L,EAAQI,SAAWJ,EAAQp3B,WAE9Cs3B,EAAWrV,OAAOyI,OAAO4M,EAAUF,GAKQ,IAA3CE,EAAS/L,QAAQ9pB,QAAQ,eAK7ByB,KAAKghB,SAAS4J,EAAwBH,EAAK2J,IAC3C9U,OAAOyB,YAAW,KAChB/gB,KAAKghB,SAAS4J,EAA6BH,GAAK,GAC/C,MAPDle,QAAQC,IAAI4nB,EAAS/L,QAQzB,CAEAkM,WAAW9J,GACTzqB,KAAKghB,SAAS4J,EAA6BH,GAC7C,CAGA+J,sBACE,IACIpd,EADQpX,KAAKgrB,MAAML,WACJvT,OACf3Y,EAAQuB,KAAK4yB,GAAG6B,QAAQ5mB,MAAMzF,GAE9BA,EAAEic,YAAcjN,EAASA,EAAOiN,UAAY,IAC5Cjc,EAAEssB,WAAWC,oBAAsB,MAGvC,GAAIl2B,EACF,OAAQuB,KAAKuxB,iBAAmB9yB,EAAMi2B,UAE1C,CAEAE,sBACE,IAAIn2B,EAAQuB,KAAK4yB,GAAGiC,KAAKC,YAAYjnB,MAAMzF,GAClCA,EAAEusB,oBAAsB,MAEjC,GAAIl2B,EACF,OAAQuB,KAAKwxB,iBAAmB/yB,CAEpC,CAIAs2B,gBAEE,OADK/0B,KAAKwxB,kBAAkBxxB,KAAK40B,wBAC5B50B,KAAKwxB,kBACHxxB,KAAKwxB,iBAAiBmD,oBAAsB,GACrD,CAEAtB,gBACE,OAAO,CAIT,CAEA2B,iBACE,OAAO,CACT,CAEAC,qBACE,OAAO,CAIT,CAEAC,oBACE,OAAO,CACT,CAEAC,WAAWC,GACT,OAAOA,EAAaC,YAAcr1B,KAAK4yB,GAAGiC,KAAK9N,MACjD,CAEAuO,mBACE,IAAIr1B,EAAQD,KAAKgrB,MAAML,WACnB4K,EAAmBt1B,EAAMu1B,MAAMC,YAC/BC,EAAwBz1B,EAAM8Z,QAAQ8a,KAAKc,cAC3CC,EAAoB,IAAI7zB,KAAKwzB,GAAkBpB,UAEnD,QAD6B,IAAIpyB,KAAK2zB,GAAuBvB,UAChCyB,EAI/B,CAEA,sBAAMC,GACJ,IAAIjP,EAAa,CACf+O,eAAe,IAAI5zB,MAAO+zB,qBAGtB91B,KAAKqpB,IAAIhO,WAAWuL,EAC5B,CAGA7c,EAAEpF,EAAKyrB,EAAO2F,GACZ,GAAI/1B,KAAK6Y,SAAU,CACjB,IAAImd,EAAYh2B,KAAKkO,WAAW,KAAOvJ,GACvC,GAAIqxB,EACF,OAAOA,CAEX,CAEA,IACItrB,EADelO,IAAEy5B,SAAStxB,EAAI6B,MAAM,KAC3B0vB,CAAal2B,KAAKgc,aAC3Bma,EAAY/F,EAAQ1lB,EAASA,GAAU/F,EAC3C,OAAOoxB,EAAO/1B,KAAKo2B,SAASD,EAAWJ,GAAQI,CACjD,CAEAC,SAAShyB,EAAK2xB,GACZ,OAAO3xB,EAAI3D,QAAQ,eAAe,SAAUwH,EAAGC,GAC7C,IAAImuB,EAAIN,EAAK7tB,GACb,MAAoB,kBAANmuB,GAA+B,kBAANA,EAAiBA,EAAIpuB,CAC9D,GACF,CAGA6pB,kBACE9xB,KAAKwM,IAAMD,QAAQC,IAAIsD,KAAKwP,OAAO/S,SACnCvM,KAAK2vB,KAAOpjB,QAAQojB,KAAK7f,KAAKwP,OAAO/S,SACrCvM,KAAKs2B,KAAO/pB,QAAQ+pB,KAAKxmB,KAAKwP,OAAO/S,SACrCvM,KAAKu2B,QAAUhqB,QAAQgqB,QAAQzmB,KAAKwP,OAAO/S,QAC7C,CAEAwlB,oBACE/xB,KAAKwM,IAAM,OACXxM,KAAK2vB,KAAO,OACZ3vB,KAAKs2B,KAAO,OACZt2B,KAAKu2B,QAAU,MACjB,CAEAC,WACEx2B,KAAKwM,IAAIxM,KAAKgrB,MAAML,WACtB,CAEA8L,aACEz2B,KAAKwM,IAAIsS,8XACX,CAGA4X,oBAAoBC,GAClBrX,OAAOyB,YAAW,KAChBzB,OAAOsX,cAAc,IAAIC,MAAM,UAAU,GACxCF,GAAS,IACd,CAEArG,aAAarK,GACX,IAAI6Q,EAA0B,kBAAX7Q,EAAsBA,EAAOmG,UAAYnG,EACxD8Q,EAAkB/2B,KAAKkO,WAAW,kBAAoB4oB,GAC1D,SAAIC,GACoC,SAAlCA,EAAgBl4B,cAGxB,CAEAqP,WAAWJ,GACT,IAAIkpB,EAAgBh3B,KAAK6Y,SAAS0W,UAAUzhB,GACxCmpB,EAAe,KAKnB,OAJID,GAAiBA,EAAcE,QACjCD,EAAeD,EAAcE,OAGxBD,CACT,CAEAlsB,gBAAgB+C,GACd,IAAK9N,KAAKm3B,cACR,IACEn3B,KAAKm3B,cAAgB9U,KAAK6G,MAAMlpB,KAAK4yB,GAAGwE,OAAOC,SAAW,KAC5D,CAAE,MAAOpxB,GACPjG,KAAKm3B,cAAgB,CAAC,CACxB,CAEF,OAAOn3B,KAAKm3B,cAAcrpB,IAAS,IACrC,CAEA,eAAMwpB,CAAUxpB,EAAMypB,GAEpB,aADMv3B,KAAKw3B,eAAezK,OACnB/sB,KAAKw3B,eAAepM,MAAMvd,MAAMuD,GACjCmmB,EAEAnmB,EAAOqmB,4BAA8BF,GACrCnmB,EAAOtS,OAASgP,EAGXsD,EAAOtS,OAASgP,GAG7B,CAEA4pB,WAAWC,GACT,OAAO,IAAIttB,SAAQ,CAACC,EAASC,KAC3B,IAAIqtB,EAAM3nB,SAAS4nB,cAAc,UACjCD,EAAIE,IAAMH,EACVC,EAAI9rB,OAAQ,EACZ8rB,EAAIptB,OAAS,KACXF,GAAS,EAEX,IAAIytB,EAAiB9nB,SAAS+nB,qBAAqB,UAAU,GAC7DD,EAAeE,WAAWC,aAAaN,EAAKG,EAAe,GAE/D,CAGA,0BAAMI,GACJ,IAAIC,EAAmB,GAEnBC,EAAar4B,KAAKgrB,MAAML,WACxB2N,EACFD,EAAWte,QAAQ8a,KAAK0D,0BACtBC,EAA0BH,EAAWI,QAAQhD,YACT,IAAI1zB,KAC1Cu2B,GACAnE,UAC6B,IAAIpyB,KAAKy2B,GAAyBrE,WAG/DiE,EAAiBpxB,KAAK,CACpB8K,GAAI,EACJlG,KAAM,cACN0oB,QAASt0B,KAAK+J,EAAE,2BAA4B,KAAM,CAChD+U,cAKN,IAAI4Z,EAAU,CACZ9sB,KAAM,qBACN+sB,cAAeP,GAIjB,OAFAp4B,KAAKghB,SAAS0X,GAEPN,CACT,CAEA,wBAAMQ,CAAmBC,GACvB,IAAIH,EAAU,CAAE9sB,KAAM,sBAAuBitB,aAAcA,SACrD74B,KAAKghB,SAAS0X,GAE+B,IAA/C14B,KAAKgrB,MAAML,WAAWgO,cAAc35B,QACtCgB,KAAK84B,qCAET,CAEA,yCAAMA,GACJ,IAAIlS,EAAa,CACf2R,2BAA2B,IAAIx2B,MAAO+zB,qBAElC91B,KAAKqpB,IAAIhO,WAAWuL,GAAYrZ,MAAK,KACzCvN,KAAKghB,SAAS2R,EAA2B3yB,KAAKohB,cAAcvjB,MAAM,GAEtE,CAGAk7B,WAAWzH,GACT,IAAI3wB,EAAOX,KACXA,KAAKsxB,QAAUA,EACftxB,KAAKg5B,SAAW,EAChBh5B,KAAKsxB,QAAQ2H,QAAO,CAAC1Z,EAAUkT,KAC7B9xB,EAAKq4B,WACDr4B,EAAKq4B,SAAW,GAAGr4B,EAAKu4B,gBAAgB,GAEhD,CAEA,aAAIC,CAAUz8B,GACZsD,KAAKg5B,SAAW,EAChBh5B,KAAK6wB,QAAQ3F,IAAI,YAAaxuB,EAChC,CAEA,aAAIy8B,GACF,OAAO9W,KAAK6G,MAAMlpB,KAAK6wB,QAAQzF,IAAI,aACrC,CAEA8N,iBACEl5B,KAAK6wB,QAAQxF,OAAO,YACtB,CAGA+N,SAASC,EAAOpzB,GACdjG,KAAK6wB,QAAQ3F,IAAI,QAASmO,GAC1Br5B,KAAKqS,aAAegnB,EAEpB,IAAIC,EAAKrpB,SAASspB,eAAe,kBAC7BC,EAAUvpB,SAASwpB,uBAAuB,gBAC9C,GAAG7kB,QAAQ8kB,KAAKF,GAAS,SAAUG,GACjCA,EAAKC,UAAUvO,OAAO,SACxB,IAEaplB,EAAE6G,OACR8sB,UAAUC,IAAI,UAEP,SAAVR,GACFC,EAAGM,UAAUC,IAAI,aACjB5pB,SAASmS,KAAKwX,UAAUC,IAAI,UAE5BP,EAAGM,UAAUvO,OAAO,aACpBpb,SAASmS,KAAKwX,UAAUvO,OAAO,QAEnC,CAGA,kBAAMyO,GACJ,IAAIn5B,EAAOX,KAGX,IAAI+5B,EAAY,CACd,aACA,aACA,oBACA,OACA,aACA,eACA,eACA,eACA,aACA,QACA,OA+BF,aA5BMp5B,EAAKq5B,oBAAoBjN,aACzBpsB,EAAK4X,WAAWwU,OAAOxf,MAAK,KAChC5M,EAAK4X,WAAW6S,MAAMxW,SAASqlB,IAC7B,GAAwC,IAApCA,EAAUC,sBAA6B,OAC3C,IAAIC,EAAQx5B,EAAKq5B,oBAAoBhK,YACnCiK,EAAUC,uBAEZH,EAAU/yB,KAAKmzB,EAAQ,KAAOF,EAAUn7B,KAAO,KAAK,GACpD,UAGE6B,EAAK0M,UAAUC,kBAAkBC,MAAKzB,UACrC0B,SACC7M,EAAK0M,UAAUI,SAASD,EAAgBE,YAAYH,MAAK,KAC7D,IAAI9C,EAAe9J,EAAK0M,UAAUM,QAAQH,EAAgBE,YAC1D,GAAIjD,EAAc,CACFA,EAAamD,kBACnBgH,SAASnE,IACM,cAAjBA,EAAOzC,OAA0C,aAAjByC,EAAOzC,OAEvB,aAAhByC,EAAO3C,MAAuC,aAAhB2C,EAAO3C,MAEzCisB,EAAU/yB,KAAK,aAAeyJ,EAAOzC,MAAQ,KAAK,GAEtD,IACA,IAGGxR,IAAE49B,KAAKL,EAChB,CAGAM,gBACE,IAAIp6B,EAAQD,KAAKgrB,MAAML,WACnBvT,EAASnX,EAAMmX,OACnB,SAAInX,EAAMmX,QAAUnX,EAAMq6B,aACpBr6B,EAAMq6B,YAAYljB,EAAOiN,UAKjC,CAEAkW,gBAAgBhN,EAAUtH,GACxB,GAAIA,IAEgB,gBAAhBA,EAAOnY,MACS,eAAhBmY,EAAOnY,MACS,cAAhBmY,EAAOnY,MACS,UAAhBmY,EAAOnY,MACS,gBAAhBmY,EAAOnY,MACS,kBAAhBmY,EAAOnY,MACS,eAAhBmY,EAAOnY,MACS,cAAhBmY,EAAOnY,MACS,YAAhBmY,EAAOnY,MACS,mBAAhBmY,EAAOnY,MACS,gBAAhBmY,EAAOnY,MACS,cAAhBmY,EAAOnY,MACS,UAAhBmY,EAAOnY,MACS,oBAAhBmY,EAAOnY,MACS,aAAhBmY,EAAOnY,MAEP,OAEJ,IAAI4qB,EAAU,CAAE9sB,KAAM,oBAAqB2hB,SAAUA,GACrD,OAAOvtB,KAAKghB,SAAS0X,EACvB,CAEA8B,gBAAgBjN,GACd,IAAImL,EAAU,CAAE9sB,KAAM,oBAAqB2hB,SAAUA,GACrD,OAAOvtB,KAAKghB,SAAS0X,EACvB,CAGA+B,oBAAoB9qB,GAClB,OAAQ3P,KAAK0xB,iBAAmB/hB,EAAMC,WACxC,CAEA8qB,iBAAiBrS,EAAShnB,EAAWs5B,GAC9B36B,KAAK0xB,kBACL1xB,KAAK0xB,iBAAiBrhB,SAC3BrQ,KAAK0xB,iBAAiBrhB,QAAQuqB,WAAWvS,EAAShnB,EAAWs5B,EAC/D,CAEAE,qBACO76B,KAAK0xB,kBACL1xB,KAAK0xB,iBAAiBrhB,SAC3BrQ,KAAK0xB,iBAAiBrhB,QAAQyqB,cAChC,CAGAC,SACE,OAAOjc,CACT,CAEAkc,QACE,OAAOlc,CACT,CAGAmc,WAAWC,GACT,IAAKl7B,KAAK2xB,aACR,IACE3xB,KAAK2xB,aAAetP,KAAK6G,MAAMlpB,KAAK4yB,GAAGwE,OAAO+D,UAAY,WAC5D,CAAE,MAAOl1B,GACPjG,KAAK2xB,aAAe,CAAE,IAAK,CAAC,EAC9B,CAGF,IAAIva,EAASpX,KAAKszB,kBACd8H,EAAKhkB,EAASA,EAAOtY,KAAO,IAEhC,SADekB,KAAK2xB,aAAayJ,IAAOp7B,KAAK2xB,aAAa,MAC7CuJ,EAKf,CAEAG,cACMr7B,KAAKsxB,SAAStxB,KAAKsxB,QAAQtqB,KAAK,KACpC,IAAIqtB,EAAY,aAChBr0B,KAAKghB,SACH4J,EAAwByJ,EAAW,CACjCA,YACAhM,QAASroB,KAAK+J,EAAE,2BAGpBuV,OAAOyB,YAAW,KAChB/gB,KAAKghB,SAAS4J,EAA6ByJ,GAAW,GACrD,IACL,CAGAiH,wBACE,IAAIC,EAAY,IAAIC,IAAY,qBAAsB,oBACtDA,IAAYD,EACd,CAEAE,yBACE,IAAIF,EAAY,IAAIC,IAAY,iBAAkB,qBAClDA,IAAYD,EACd,CAEAG,YAAY/2B,EAAKg3B,GAIf,OAHK37B,KAAK4xB,QAAQjtB,KAChB3E,KAAK4xB,QAAQjtB,GAAOg3B,KAEf37B,KAAK4xB,QAAQjtB,EACtB,CAEAi3B,iBAAiBj3B,GACf3E,KAAK4xB,QAAQjtB,GAAO,IACtB,CAEA6uB,eACExzB,KAAK4xB,QAAU,CAAC,CAClB,CACAiK,WAAWld,EAAKjW,GACdiW,EAAMsD,EAAOvD,QAAQC,EAAKjW,GAC1B1I,KAAKsxB,QAAQtqB,KAAK2X,EACpB,CAEAmd,kBAAkBhiB,GAEhB,OADAA,EAAOA,GAAa9Z,KAAK+Z,QAAQqR,MAC1B5uB,IAAEu/B,UAAUjiB,EAAKkiB,cAAc,CAACC,gBAAe,MAAWniB,EAAKkiB,cAAgBliB,EAAKkiB,cAAc,GAAG,KAC9G,CAIAE,cACE,IAAI5jB,EAAOtY,KAAKsY,MACZwB,EAAO9Z,KAAK+Z,QAAQqR,MAExB,OAAOtR,EAAQtd,IAAEu/B,UAAUzjB,EAAM,CAACxG,GAAGgI,EAAKqiB,SAAW,IAEvD,CAEAC,eACE,IAAIC,EAAOr8B,KAAKk8B,cAChB,OAAe,OAARG,GAAiC,qBAAVA,GAAqC,IAAZA,EAAKvqB,EAC9D,CAEAwqB,UACE,IAAID,EAAOr8B,KAAKk8B,cAChB,OAAe,OAARG,GAAiC,qBAAVA,GAAqC,IAAZA,EAAKvqB,EAC9D,CACAyqB,UACE,IAAIF,EAAOr8B,KAAKk8B,cAChB,OAAe,OAARG,GAAiC,qBAAVA,GAAqC,IAAZA,EAAKvqB,EAC9D,CAEA0qB,UACE,IAAIH,EAAOr8B,KAAKk8B,cAChB,OAAe,OAARG,GAAiC,qBAAVA,GAAqC,IAAZA,EAAKvqB,EAC9D,CACA2qB,iBACE,IAAIJ,EAAOr8B,KAAKk8B,cAChB,OAAe,OAARG,GAAiC,qBAAVA,GAAqC,IAAZA,EAAKvqB,EAC9D,EEpuBF,MAAM4qB,EAAc,CAChBjH,YAAc,MCDlB,MAAMiH,EAAc,CAChBjH,YAAc,MCYlB,IAAIkH,EAAa,CACbtS,MCbW,WAAsC,IAAvBpqB,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,KAAMmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAC9C,OAAQkuB,EAAO7mB,MACX,KAAKiV,EACD,OAAO4R,EAAO/pB,KAClB,KAAKmY,EACD,OAAO9B,OAAOyI,OAAO,CAAC,EAAGvnB,EAAO,CAAE,CAACwyB,EAAOhI,KAAMgI,EAAO/pB,OAC3D,KAAKmY,EACD,OAAOrkB,IAAEogC,KAAK38B,EAAOwyB,EAAOhI,KAChC,QACI,OAAOxqB,EAEnB,EDGI8Z,QEfW,WAAwC,IAAvB9Z,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,KAAMmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAChD,OAAQkuB,EAAO7mB,OACNiV,EACM4R,EAAO/pB,KAEPzI,CAEnB,EFSI+b,YGhBW,WAA0C,IAArB/b,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAClD,OAAQkuB,EAAO7mB,OACNiV,EACM4R,EAAO/pB,KAEPzI,CAEnB,EHUImX,OIjBW,WAAuC,IAAvBnX,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,KAAMmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAC/C,OAAQkuB,EAAO7mB,MACX,KAAKiV,EACD,OAAO4R,EAAO/pB,KAClB,KAAKmY,EACD,OAAO,KACX,QACI,OAAO5gB,EAEnB,EJSIq6B,YKjBW,WAA0C,IAArBr6B,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAClD,OAAQkuB,EAAO7mB,MACX,IrBGyB,oBqBFrB,OAAOmT,OAAOyI,OAAO,CAAC,EAAGvnB,EAAO,CAAE,CAACwyB,EAAOlF,WAAW,IACzD,IrBEyB,oBqBDrB,OAAO/wB,IAAEogC,KAAK38B,EAAOwyB,EAAOlF,UAChC,QACI,OAAOttB,EAEnB,ELSIkL,MMnBW,WAAoC,IAArBlL,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAC5C,OAAQkuB,EAAO7mB,MACX,ItBaiB,YsBZb,OAAOmT,OAAOyI,OAAO,CAAC,EAAGvnB,EAAO,CAAE,CAAEwyB,EAAO9tB,KAAQ8tB,EAAO/pB,OAC9D,KAAKmY,EACD,MAAO,CAAC,EACZ,ItBWkB,asBVd,OAAO9B,OAAOyI,OAAO,CAAC,EAAGvnB,EAAO,CAAE,CAAEwyB,EAAO9tB,KAAQ,OACvD,QACI,OAAO1E,EAEnB,ENSI48B,SOnBW,WAAuC,IAArB58B,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAAImuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAC/C,OAAQkuB,EAAO7mB,MACX,KAAKiV,EACD,MAAO,IAAK5gB,EAAOwyB,EAAO/pB,MAC9B,KAAKmY,EACD,OAAO5gB,EAAMuJ,KAAKN,GACVA,IAASupB,EAAO/pB,KACT,IAAM+pB,EAAO/pB,KAEbQ,IAGnB,KAAK2X,EACD,OAAOrkB,IAAEsgC,QAAQ78B,EAAO,IAAMwyB,EAAO/pB,MACzC,QACI,OAAOzI,EAEnB,EPGI6d,YQrBW,WAA0C,IAArB7d,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAClD,OAAQkuB,EAAO7mB,MACX,IxBmBwB,mBwBlBpB,OAAOmT,OAAOyI,OAAO,CAAC,EAAGvnB,EAAO,CAAE,CAAEwyB,EAAO9tB,KAAQ8tB,EAAO/pB,OAC9D,IxBgByB,oBwBfrB,MAAO,CAAC,EACZ,QACI,OAAOzI,EAEnB,ERaI8tB,MStBW,WAAoC,IAArB9tB,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EAC5C,OAAQkuB,EAAO7mB,OACNiV,EACM9B,OAAOyI,OAAO,CAAC,EAAGvnB,EAAO,CAAE,CAAEwyB,EAAO9tB,KAAQ8tB,EAAO/pB,OAEnDzI,CAEnB,ETgBIu1B,MFpBW,WAA6C,IAA9Bv1B,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAGo4B,EAAajK,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EACrD,OAAQkuB,EAAO7mB,OACNiV,EACM4R,EAAO/pB,KAEPzI,CAEnB,EEcIw4B,QDrBW,WAA+C,IAA9Bx4B,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAGo4B,EAAajK,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EACvD,OAAQkuB,EAAO7mB,OACNiV,EACM4R,EAAO/pB,KAEPzI,CAEnB,ECeI04B,cUzBW,WAA4C,IAArB14B,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAAImuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EACpD,OAAQkuB,EAAO7mB,MACX,I1BiC0B,qB0BhCtB,OAAO6mB,EAAOkG,cAClB,I1BgC2B,sB0B5BvB,OAHwB14B,EAAMwQ,QAAOssB,GAC1BA,EAAEjrB,KAAO2gB,EAAOoG,aAAa/mB,KAG5C,I1B4B2B,sB0B3BvB,MAAO,CAAC,EACZ,QACI,OAAO7R,EAEnB,GVcA4yB,EAAYje,SAAQwgB,IAChBuH,EAAWvH,EAAatnB,MAAQkvB,EAAsB5H,GACnDA,EAAa5J,aACRmR,EAAWvH,EAAa5J,YAAcwR,EAAsBje,OAAOyI,OAAO,CAAC,EAAE4N,EAAa,CAACtnB,KAAKsnB,EAAa5J,cAAa,IAGvHyR,kBAAgBN,GAE/B,SAASK,EAAsB5H,GAC3B,MAAM8H,EAAU9H,EAAatnB,KAAK+E,cAElC,OAAO,WAAiC,IAAvB5S,EAAKqE,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,KAAMmuB,EAAMnuB,UAAAtF,OAAA,EAAAsF,UAAA,QAAAC,EACjC,OAAQkuB,EAAO7mB,MACX,IAAI,SAAJlK,OAAcw7B,GACV,OAAO,KACX,IAAI,YAAJx7B,OAAiBw7B,GACb,MAAO,GACX,IAAI,QAAJx7B,OAAaw7B,GACT,OAAOzK,EAAO/pB,KAClB,IAAI,UAAJhH,OAAew7B,GACX,MAAO,IAAKj9B,GAChB,IAAI,UAAJyB,OAAew7B,GACP,OAAGzK,EAAO/pB,gBAAgBsK,SAAS,GAAQ/S,aAAiB+S,SAAU,EAE3D,IAAM/S,GAAgB,GAAKwyB,EAAO/pB,MAErC+pB,EAAO/pB,gBAAgBsK,SAAS,EAC7B,IAAIyf,EAAO/pB,MACT+pB,EAAO/pB,KAC5B,IAAI,eAAJhH,OAAoBw7B,GAChB,MAAO,IAAMj9B,GAAgB,MAAQwyB,EAAO/pB,MAChD,IAAI,UAAJhH,OAAew7B,GACX,OAA0B,IAAvB9H,EAAa9I,QAAkBrsB,aAAiB+S,SAAU,EAClD/S,EAAQ8e,OAAOyI,OAAO,CAAC,EAAGvnB,GAASA,EAEvCA,EAAQA,EAAMuJ,KAAKN,GAClBA,EAAKksB,EAAa9J,WAAamH,EAAO/pB,KAAK0sB,EAAa9J,SACjDmH,EAAO/pB,KAEV0sB,EAAa7I,oBAAsBkG,EAAO/pB,KAAKqnB,UACxChR,OAAOyI,OAAO,CAAC,EAAGte,EAAM,CAAE6mB,WAAW,IAErChR,OAAOyI,OAAO,CAAC,EAAGte,KAGhCjJ,EACT,IAAI,UAAJyB,OAAew7B,GACX,OAAOj9B,EAAMwQ,QAAQvH,IACjB,GAAGupB,EAAO/pB,KACT,OAA4D,IAArD+pB,EAAO/pB,KAAKnK,QAAQ2K,EAAKksB,EAAa9J,SAAiB,IAEvE,QACI,OAAOrrB,EAEnB,CACJ,C,sCWnFe,MAAMk9B,EACjBt9B,cACIG,KAAKo9B,cAAgB,EACrBp9B,KAAKkrB,IAAMiS,EAAaE,MAC5B,CAEAC,QACIt9B,KAAKo9B,cAAgB,CACzB,CAEAG,OAGI,OAFAv9B,KAAKo9B,eACDp9B,KAAKo9B,aAAep9B,KAAKkrB,IAAIlsB,SAAOgB,KAAKo9B,aAAe,GACrDp9B,KAAKqQ,SAChB,CAEAA,QAAQmtB,EAAOC,GACX,OAAID,EACGC,EACQC,IAAU19B,KAAK29B,GAAG39B,KAAKo9B,eAAeQ,OAAO,IAAI9gC,WAEjD4gC,IAAU19B,KAAK29B,GAAG39B,KAAKo9B,eAAeQ,SAAS9gC,WAGnDkD,KAAK29B,GAAG39B,KAAKo9B,aAE5B,CAEAO,GAAGx0B,GACC,IAAI00B,EAAW10B,GAASnJ,KAAKkrB,IAAIlsB,OAASmK,EAAQnJ,KAAKkrB,IAAIlsB,OAASmK,EACpE,OAAOnJ,KAAKkrB,IAAI2S,EACpB,CAEA,iBAAWR,GACP,MAAO,CAEH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAG5C,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAErF,E,YCrDJ,MAAMS,GAAa,IAAIX,EAuBRY,OArBEt1B,IAAkC,IAAjC,KAAEqR,EAAI,UAAEzY,EAAS,QAAE28B,GAAQv1B,EACzC,IAAKqR,IAASkkB,EAAQ,OAAO,KAE7B,IACIC,GADOD,EAAUA,EAAQx3B,MAAM,KAAOsT,EAAK8P,UAAUpjB,MAAM,MAC3CmN,QAAO,CAACuqB,EAAaxhC,IAC9BwhC,GAAexhC,EAAM,IAAM,KACnC,IAAI+D,QAAQ,MAAO,IAAIoS,cAEtBugB,EAAQ4K,EAAU,UAAYF,GAAWH,GAAG7jB,EAAKiN,QACjDoX,EAAWT,IAAUtK,GAKzB,OAJI+K,EAASC,gBAAkB,MAC3BhL,EAAQ+K,EAASP,OAAO,IAAI9gC,YAI5B8D,eAAA,OAAKS,UAAW,cAAgBA,GAAoB,IAAKoQ,MAAO,CAAE4sB,gBAAiBjL,GAASkL,IAAI,SAASz0B,MAAOm0B,GAAWlkB,EAAKykB,MAAMh1B,SAClI3I,eAAA,QAAA2I,SAAO00B,KACL,E,gFCCd,MAAMO,WAAe5+B,YACjBC,YAAYC,GACRC,MAAMD,GAENE,KAAKmS,OAASnS,KAAKmS,OAAOrC,KAAK9P,MAC/BA,KAAKC,MAAQ,CACTiS,QAAQ,EACRiW,eAAgBnoB,KAAKF,MAAMqoB,eAC3BzS,UAAW,IAGf1V,KAAKy+B,WAAaz+B,KAAKy+B,WAAW3uB,KAAK9P,MAClC8J,GAAGwnB,SAASxnB,GAAGivB,WAAW/4B,KAAKF,MAAMwxB,QAC9C,CAEAlkB,oBAMI,KADcpN,KAAKF,MAAMyf,SAASmf,SAASjgC,MAH3B,qBAG6CuB,KAAKF,MAAMyf,SAASmf,SAASjgC,MAFrD,0CAGrC,CAGA,IAAIiX,EAAY5L,GAAG4L,UAAU0V,MACzB1V,GAAaA,EAAU1W,OAAS,EAAGgB,KAAKmB,SAAS,CAAEuU,cAEnD5L,GAAG4L,UAAUqX,OAAOxf,MAAK,KACrBvN,KAAKmB,SAAS,CAAEuU,UAAW5L,GAAG4L,UAAU0V,OAAQ,GALxD,CAQJ,CAEAjZ,SACInS,KAAKmB,SAAS,CACV+Q,QAASlS,KAAKC,MAAMiS,QAE5B,CAEAusB,aACI,IAAI9E,EAAO1pB,SAASspB,eAAe,QAC/BI,GAAMA,EAAKgF,QACf3+B,KAAKmB,SAAS,CAAE+Q,QAAQ,GAC5B,CAEA0sB,eACI,IAAI9kB,EAAOhQ,GAAGiQ,QAAQqR,MAEtB,OADc5uB,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,KAAWniB,EAAKkiB,cAAc,IAC/E6C,SACnB,CAEA/C,oBACI,IAAIhiB,EAAOhQ,GAAGiQ,QAAQqR,MAEtB,OADc5uB,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,KAAWniB,EAAKkiB,cAAc,EAElG,CAEA8C,cAAcD,GACVtyB,QAAQC,IAAI,oBAAD9K,OAAqBm9B,IAChC,IAAI/kB,EAAOhQ,GAAGiQ,QAAQqR,MACvBthB,GAAGiQ,QAAQyW,WAAW,CAAE1J,OAAQhN,EAAKgN,OAAQ+X,UAAWA,GAAa,KAAM5c,EAAO3I,UAAUmD,qBAAsB,CAAC,GAAE,GAAMlP,MAAMwM,IAC5HjQ,GAAG+mB,QAAQ3F,IAAI,UAAUnR,GACgC,IAAtDuF,OAAOC,SAASmf,SAASngC,QAAQ,oBAChCuL,GAAG+xB,WAAW5Z,EAAOjN,OAAOa,cAAc,CAACgpB,UAAUA,IACrDvf,OAAOC,SAASwf,UAEhBzf,OAAOC,SAASwf,QACpB,GAER,CAEAr+B,SAAU,IAADs+B,EAAAC,EAAAC,EACiBC,YAAUn/B,KAAKF,MAAMyf,SAASmf,SAAUzc,EAAOjN,OAAO6C,WAE5E,GADuB7X,KAAKC,MAAMkoB,eACd,MAAO,GAC3B,MAAM0W,EAAY7+B,KAAK4+B,eACjB3C,EAAiBj8B,KAAK87B,oBACtBM,EAAetyB,GAAGsyB,eAClBG,EAAUzyB,GAAGyyB,UACbC,EAAU1yB,GAAG0yB,UACbC,EAAiB3yB,GAAG2yB,iBAEpB/mB,EAAY1V,KAAKC,MAAMyV,UAC7B,OACIpM,gBAAC81B,KAAM,CAAC/9B,UAAS,cAAAK,OAAgB06B,EAAa,uBAAuB,IAAMhJ,MAAM,OAAOiM,MAAI,EAACC,OAAO,KAAI/1B,SAAA,CACpG3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,iBAAmBrB,KAAKF,MAAMsX,OAAS,QAAU,IAAKooB,GAAG,IAAIC,QAASA,SAKvG7+B,eAAC8+B,KAAa,CAACD,QAASz/B,KAAKmS,SAC7B7I,gBAACq2B,KAAQ,CAACztB,OAAQlS,KAAKC,MAAMiS,OAAQ0tB,QAAM,EAAAr2B,SAAA,CACtCvJ,KAAKF,MAAMsX,OACR9N,gBAAA,OAAKjI,UAAU,gBAAekI,SAAA,CAC1B3I,eAAC2+B,IAAO,CAACC,GAAG,IAAIC,QAASA,OAEvBl2B,SAAEvJ,KAAKF,MAAMia,QAAQqd,OAAOyI,cAC9Bj/B,eAAA,OAAA2I,SAAMvJ,KAAKF,MAAMsX,OAAOyoB,iBAE1B,KAENv2B,gBAACw2B,KAAG,CAACz+B,UAAU,0CAA0CoO,OAAQzP,KAAKC,MAAMkoB,eAAe5e,SAAA,CACvF3I,eAACm/B,KAAO,CAACtwB,QAAS2sB,IAAiBG,EAAQhzB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAWoH,IAAA,IAAC,SAAEu3B,GAAUv3B,EAAA,OAC1Cu3B,EAAW,kBAAoB,UAAU,EAC3CR,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOC,MAAM1L,SACpCO,GAAGC,EAAE,wBAGdnJ,eAACm/B,KAAO,CAACtwB,QAAS2sB,EAAa7yB,SAC3B3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW4+B,IAAA,IAAC,SAAED,GAAUC,EAAA,OAC1CD,EAAW,kBAAoB,UAAU,EAC3CR,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOU,WAAWnM,SACzCO,GAAGC,EAAE,wBAGdnJ,eAACm/B,KAAO,CAACtwB,QAAS2sB,IAAiBG,EAAQhzB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW6+B,IAAA,IAAC,SAAEF,GAAUE,EAAA,OAC1CF,EAAW,kBAAoB,UAAU,EAC3CR,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOW,aAAapM,SAAC,aAIrD3I,eAACm/B,KAAO,CAACtwB,QAAS2sB,IAAiBG,EAAQhzB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW8+B,IAAA,IAAC,SAAEH,GAAUG,EAAA,OAC1CH,EAAW,kBAAoB,UAAU,EAC3CR,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOY,UAAUrM,SAAC,eAIlD3I,eAACm/B,KAAO,CAACtwB,QAAS8sB,IAAYH,EAAa7yB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOc,WAAWvM,SAAC,aAI/F3I,eAACm/B,KAAO,CAACtwB,QAAS8sB,IAAYH,EAAa7yB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOoB,OAAQ,CAAEyoB,cAAat1B,SAAC,iBAI3G3I,eAACm/B,KAAO,CAACtwB,OAAQ+sB,EAAQjzB,SACrB3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOqB,UAAU9M,SAAC,eAI9F3I,eAACm/B,KAAO,CAACtwB,QAAS8sB,IAAYH,EAAa7yB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOa,cAAe,CAAEgpB,cAAat1B,SAAC,eAIlH3I,eAACm/B,KAAO,CAAAx2B,SACJ3I,eAAC2+B,IAAO,CAAC9vB,OAAQ+sB,EAASpM,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOgC,WAAWzN,SAAC,gBAIhH3I,eAACm/B,KAAO,CAAAx2B,SACJ3I,eAAC2+B,IAAO,CAAC9vB,OAAQ+sB,GAAWC,EAAgBrM,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOsB,OAAO/M,SACpHO,GAAGC,EAAE,oBAGdnJ,eAACm/B,KAAO,CAACtwB,QAAS8sB,IAAYH,EAAa7yB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAO2B,YAAa,CAAEmQ,OAAQ,IAAKvd,SACtGO,GAAGC,EAAE,+BAGdnJ,eAACm/B,KAAO,CAACtwB,QAAS2sB,EAAa7yB,SAC3B3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAO4B,SAASrN,SACnFO,GAAGC,EAAE,sBAGdnJ,eAACm/B,KAAO,CAACtwB,QAAS8sB,IAAYH,EAAa7yB,SACvC3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAO6B,QAAQtN,SAClFO,GAAGC,EAAE,qBAGdnJ,eAACm/B,KAAO,CAACtwB,QAAS+sB,EAAQjzB,SACtB3I,eAAC2+B,IAAO,CAACnP,OAAO,EAAM/uB,UAAW,YAAam+B,GAAIvd,EAAOvD,QAAQuD,EAAOjN,OAAOqE,OAAO9P,SACjF,mBAMb3I,eAACk/B,KAAG,CAACz+B,UAAU,uCAAuCoO,OAAQzP,KAAKC,MAAMkoB,eAAe5e,SACpFD,gBAAC82B,KAAoB,CAACC,KAAG,EAACC,UAAQ,EAAA/2B,SAAA,CAC9BD,gBAACi3B,KAAc,CAACF,KAAG,EAACG,OAAK,EAAAj3B,SAAA,CACrB3I,eAACm9B,GAAQ,CAACjkB,KAAM9Z,KAAKF,MAAMia,UAC3BnZ,eAAA,QAAMS,UAAU,cAAakI,SAAoE,QAApEy1B,GAAoB,QAAlBC,EAAAj/B,KAAKF,MAAMia,eAAO,IAAAklB,OAAA,EAAlBA,EAAoBrV,WAAY,KAAwB,QAArBsV,EAAGl/B,KAAKF,MAAMia,eAAO,IAAAmlB,OAAA,EAAlBA,EAAoBrV,iBAAQ,IAAAmV,IAAI,QAEzG11B,gBAACm3B,KAAY,CAACC,OAAK,EAAAn3B,SAAA,EACC,IAAf6yB,GAAuB1mB,GAAaA,EAAU1W,OAAS,EAClDsK,gBAAC82B,KAAoB,CAAC/+B,UAAW,YAAYkI,SAAA,CAC3C3I,eAAC2/B,KAAc,CAACl/B,UAAW,YAAYkI,SACnC3I,eAAA,OAAA2I,SACI3I,eAAA,QAAA2I,SAAO0yB,EAAiBA,EAAe0E,YAAc,SAG7D//B,eAAC6/B,KAAY,CAAAl3B,SAELmM,EAAUlM,KAAKiQ,GAEP7Y,eAAA,KAEIS,UAAU,UACVo+B,QAASA,KAAQz/B,KAAK8+B,cAAcrlB,EAAQolB,UAAU,EAAGt1B,SAExDkQ,EAAQ3L,MAJJ2L,EAAQolB,iBAXgB,iBAqBnD,GAGNj+B,eAAA,KAAUS,UAAU,UAAUo+B,QAASA,OAAUl2B,SAC5CvJ,KAAKF,MAAMia,QAAO,GAAArY,OAAM1B,KAAKF,MAAMia,QAAQ6P,UAAY5pB,KAAKF,MAAMia,QAAQ6P,UAAY,GAAE,KAAAloB,OAAI1B,KAAKF,MAAMia,QAAQ8P,SAAW7pB,KAAKF,MAAMia,QAAQ8P,SAAW,IAAO,IAD7J,IAGPjpB,eAAA,KAAGS,UAAU,UAAUo+B,QAAS31B,GAAGsX,cAAcgI,OAAO7f,SACnDO,GAAGC,EAAE,gCAQtC,EAKWy0B,U,oBC7Pf,MAAMoC,WAAkBhhC,YACpBc,SACI,OACI4I,gBAAA,OAAKjI,UAAWw/B,KAAW,sBAAuB7gC,KAAKF,MAAMghC,IAAI,iBAAiB,GAAI9gC,KAAKF,MAAMuB,WAAWkI,SAAA,CACxGD,gBAAA,MAAAC,SAAA,CACKvJ,KAAKF,MAAMihC,KAAKngC,eAAA,KAAGS,UAAWrB,KAAKF,MAAMihC,OAAQ,KACjD/gC,KAAKF,MAAMkhC,IAAIpgC,eAAA,OAAKk3B,IAAK93B,KAAKF,MAAMkhC,IAAK1C,IAAKt+B,KAAKF,MAAM+J,QAAS,KAClE7J,KAAKF,MAAM+J,MACV7J,KAAKF,MAAMmhC,YAAejhC,KAAKF,MAAMohC,UAAYtgC,eAAA,KAAGS,UAAU,gCAAqCT,eAAA,KAAGS,UAAU,8BAAoC,SAExJrB,KAAKF,MAAMghC,KAAO9gC,KAAKF,MAAM8R,KAC3BhR,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAM8R,OAClB,KACD5R,KAAKF,MAAMyJ,SACR3I,eAAA,OAAKS,UAAU,sBAAqBkI,SAC/BvJ,KAAKF,MAAMyJ,WAEnB,KACAvJ,KAAKF,MAAMghC,KAAO9gC,KAAKF,MAAM8R,KAC1BhR,eAAA,KAAA2I,SAAIvJ,KAAKF,MAAM8R,OACjB,OAGd,EAGWgvB,U,8BCFAO,OAnBG14B,IAA0C,IAAzC,MAACuF,EAAK,MAAEtR,EAAK,MAAE02B,EAAK,SAAEgO,EAAQ,GAAE5B,GAAG/2B,EACpD,OACEa,gBAAC+3B,KAAI,CAAChgC,UAAU,GAAGoQ,MAAO,CAAC6vB,UAAU,QAASC,OAAO,SAASh4B,SAAA,CAC1D3I,eAAC4gC,KAAU,CAACngC,UAAU,gCAAgCoQ,MAAO,CAAE4sB,gBAAiB,eAAe90B,SAC/F3I,eAAA,MAAA2I,SAAKyE,MAEL1E,gBAACm4B,KAAQ,CAACpgC,UAAU,wCAAuCkI,SAAA,CACvD3I,eAAA,MAAI6Q,MAAO,CAAE2hB,MAAOA,GAAQ7pB,SAAE7M,IAC7B0kC,EAECxgC,eAAA,KAAGS,UAAU,aAAaoQ,MAAO,CAAC2hB,MAAO,UAAWsO,OAAQ,WAAYjC,QAASA,IAAI2B,EAASp6B,KAAKw4B,KAGlG,UAEJ,ECZX,MAAMmC,WAAuB/hC,YACzBC,YAAYC,GACRC,MAAMD,GAAO,KAUjB8hC,iBAAoBllC,GACT,QAVP,IAAIod,EAAOhQ,GAAGiQ,QAAQqR,MACtBprB,KAAKimB,OAASnc,GAAG+N,UACjB,IAAI4B,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAChEj8B,KAAKC,MAAQ,CACTykB,mBAAoB,CAAE5S,GAAI2H,EAAQolB,YAEtC7+B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC9C,CAMAhkB,SAAU,IAADmhC,EAAAC,EAAAC,EAAAC,EACL,IAAIt5B,EAAO,CAAC,EAKZ,OAJI1I,KAAKimB,OAAOyI,aACZhmB,EAAO1I,KAAKimB,OAAOmF,MACf1iB,EAAKu5B,uBAAuBv5B,EAAKu5B,gBAGrC34B,gBAAA,OAAKjI,UAAU,iBAAgBkI,SAAA,CAC3B3I,eAAA,MAAA2I,SAAI,WACJD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAChB3I,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,eAAgBtR,MAAOgM,EAAKw5B,YAAa9O,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAKw5B,iBAEjGthC,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,oBAAqBtR,MAAOgM,EAAKy5B,eAAgB/O,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAKy5B,oBAEzGvhC,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,mBAAoBtR,MAAOgM,EAAK05B,gBAAiBhP,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAK05B,qBAEzGxhC,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,qBAAsBozB,SAAUphC,KAAKF,MAAMwxB,QAASkO,GAAG,gBAAgB9iC,MAAOgM,EAAK25B,kBAAmBjP,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAK25B,0BAGlKzhC,eAAA,MAAIS,UAAU,OAAMkI,SAAC,gBACrBD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAChB3I,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,eAAgBtR,MAAOgM,EAAK45B,YAAalP,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAK45B,iBAEjG1hC,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,eAAgBozB,SAAUphC,KAAKF,MAAMwxB,QAASkO,GAAG,gBAAgB9iC,MAAOgM,EAAKyM,aAAcie,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAKyM,kBAEnJvU,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,wBAAyBozB,SAAUphC,KAAKF,MAAMwxB,QAASkO,GAAG,oBAAoB9iC,MAAOgM,EAAK65B,oBAAqBnP,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAK65B,yBAEvK3hC,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,sBAAuBozB,SAAUphC,KAAKF,MAAMwxB,QAASkO,GAAG,wBAAwB9iC,MAAOgM,EAAK85B,kBAAmBpP,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAK85B,uBAEvK5hC,eAAA,OAAKS,UAAU,gBAAekI,SAC1BD,gBAAC+3B,KAAI,CAAChgC,UAAU,GAAGoQ,MAAO,CAAE6vB,UAAW,QAASC,OAAQ,SAAUh4B,SAAA,CAC9D3I,eAAC4gC,KAAU,CAACngC,UAAU,gCAAgCoQ,MAAO,CAAE4sB,gBAAiB,eAAgB90B,SAC5F3I,eAAA,MAAA2I,SAAI,eAERD,gBAACm4B,KAAQ,CAAAl4B,SAAA,CACLD,gBAAA,OAAKjI,UAAU,SAASoQ,MAAO,CAACgxB,eAAgB,gBAAgBl5B,SAAA,CAC5DD,gBAAA,OAAKjI,UAAU,wCAAuCkI,SAAA,CAClD3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAI6Q,MAAO,CAAE2hB,MAAO,SAAU7pB,SAAM,QAAJs4B,EAAAn5B,SAAI,IAAAm5B,GAAoB,QAApBC,EAAJD,EAAMa,0BAAkB,IAAAZ,GAAxBA,EAA0B9iC,OAAM,IAAA0C,OAAOgH,EAAKg6B,mBAAmB,GAAGC,mCAAsC,QAG5Ir5B,gBAAA,OAAKjI,UAAU,wCAAuCkI,SAAA,CAClD3I,eAAA,MAAA2I,SAAI,iBACJ3I,eAAA,MAAI6Q,MAAO,CAAE2hB,MAAO,SAAU7pB,SAAM,QAAJw4B,EAAAr5B,SAAI,IAAAq5B,GAAoB,QAApBC,EAAJD,EAAMW,0BAAkB,IAAAV,GAAxBA,EAA0BhjC,OAAM,IAAA0C,OAAOgH,EAAKg6B,mBAAmB,GAAGE,sCAAyC,WAInJhiC,eAAA,OAAKS,UAAU,gCAA+BkI,SAC1C3I,eAAA,KAAGS,UAAU,aAAaoQ,MAAO,CAAE2hB,MAAO,UAAWsO,OAAQ,WAAajC,QAASA,IAAMz/B,KAAKF,MAAMwxB,QAAQtqB,KAAK,2CAMrIpG,eAAA,MAAIS,UAAU,OAAMkI,SAAC,UACrBD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAChB3I,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,cAAetR,MAAOgM,EAAKm6B,WAAYzP,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAKm6B,gBAE/FjiC,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,qBAAsBtR,MAAOgM,EAAKo6B,iBAAkB1P,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAKo6B,sBAE5GliC,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAACugC,GAAS,CAACnzB,MAAO,uBAAwBtR,MAAOgM,EAAKq6B,mBAAoB3P,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAKq6B,wBAEhHniC,eAAA,OAAKS,UAAU,gBAAekI,SAC1B3I,eAACugC,GAAS,CAACnzB,MAAO,gBAAiBtR,MAAOgM,EAAKs6B,eAAgB5P,MAAOpzB,KAAK4hC,iBAAiBl5B,EAAKs6B,yBAMrH,EAGWrB,UCzGf,MAAMsB,WAAarjC,YAEfsjC,MAAMhY,GACF,OAAO1uB,IAAEwyB,OAAO9D,GAAKhiB,IACTA,EAAKi6B,OAAS,KAAOj6B,EAAK22B,aAE1C,CACAn/B,SACI,MAAM67B,EAAUzyB,GAAGyyB,UACbH,EAAetyB,GAAGsyB,eACxB,IAAIgH,EAAY,GAMhB,OAFIA,EAHA7G,GAAYH,EAGH,cAAA16B,OAAiBoI,GAAGgyB,oBAAoB6E,YAAW,KAFnD,WAAAj/B,OAAc1B,KAAKF,MAAMia,QAAQ6P,UAAS,KAAAloB,OAAI1B,KAAKF,MAAMia,QAAQ8P,SAAQ,KAKlFvgB,gBAAA,OAAoBjI,UAAU,+BAA8BkI,SAAA,CACxD3I,eAAA,OAAKS,UAAU,cAAakI,SACxB3I,eAAA,OAAKS,UAAU,YAAYoQ,MAAO,CAAE4xB,OAAQ,GAAI95B,SAC5C3I,eAACggC,GAAS,CAACG,KAAK,cAAcl3B,MAAOu5B,EAAWxxB,KAAM,SAI7D2qB,GAAWH,EACRx7B,eAAC+gC,GAAc,IAAK3hC,KAAKF,QAC1B,OATE,WAYjB,EAGWmjC,UCnCf,MAAMK,WAAqB1jC,YACzBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGqL,aAEjB,IAAIsE,EAAU3P,GAAGgyB,oBAEjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,YAExC7+B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAhkB,SAAU,IAADqhC,EACP,IAAIr5B,EAAO,GACP66B,EAAS,GAEoB,IAAD1B,EAA5B/3B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACX,QAALyW,EAACn5B,SAAI,IAAAm5B,GAAJA,EAAM7iC,SAAQukC,EAAQ,oBAE5B,OACEj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAC,oBAE/B3I,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnBD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAA2I,SAAI,eACJ3I,eAAA,MAAA2I,SAAI,sBACJ3I,eAAA,MAAA2I,SAAI,iBAGV3I,eAAA,SAAA2I,SACO,QAAJw4B,EAAAr5B,SAAI,IAAAq5B,GAAJA,EAAM/iC,OAAS0J,EAAKc,KAAKjK,GACxB+J,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImkC,aACxC9iC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIokC,eACxC/iC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIqkC,oBACxChjC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAChC3I,eAAA,KAAGS,UAAU,aAAaoQ,MAAO,CAAC2hB,MAAO,UAAWsO,OAAQ,WAAYjC,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQtqB,KAAK,iBAADtF,OAAkBnC,EAAImkC,mBAL7HnkC,EAAImkC,cAQX9iC,eAAA,MAAIS,UAAU,cAAakI,SAC/B3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,cAAakI,SAAC3I,eAAA,MAAA2I,SAAKg6B,mBA3BlD,WAmCb,EAGaD,UC3Df,MAAMQ,WAAoBlkC,YACxBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGi6B,iBAEjB,IAAItqB,EAAU3P,GAAGgyB,oBACjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,UAAW6E,WAAY1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,aAEvF1jC,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAvU,uBACEnQ,KAAKimB,OAAO+D,OACd,CAEAtpB,SAAU,IAADmhC,EAAAmC,EAAAjC,EAAAkC,EACP,IAAIv7B,EAAO,GACP66B,EAAS,GAMb,OAJIz5B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACf1iB,IAAM66B,EAAQ,oBAGlBj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAEb,GAAU,QAANm5B,EAAEn5B,SAAI,IAAAm5B,GAAc,QAAdmC,EAAJnC,EAAM1sB,oBAAY,IAAA6uB,GAAlBA,EAAoBhlC,OAAO,iBAAD0C,OAAkBgH,EAAKi7B,cAAe,oBAEtG/iC,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnBD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,SACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,iBAGV3I,eAAA,SAAA2I,SACGb,GAAY,QAARq5B,EAAIr5B,SAAI,IAAAq5B,GAAc,QAAdkC,EAAJlC,EAAM5sB,oBAAY,IAAA8uB,GAAlBA,EAAoBjlC,OAAS0J,EAAKyM,aAAa3L,KAAKjK,GAC3D+J,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,GAAA7H,OAAKnC,EAAIqqB,WAAW,GAAE,KAAAloB,OAAInC,EAAIsqB,UAAU,MAC1EjpB,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAI2kC,cACxCtjC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImqB,eACxC9oB,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,GAAA7H,OAAKnC,EAAI4kC,QAAQ,GAADziC,OAAInC,EAAI4kC,QAAO,MAAAziC,OAAKnC,EAAI6kC,KAAI,MAAA1iC,OAAKnC,EAAIU,MAAK,MAAAyB,OAAKnC,EAAI8kC,KAAM,QAJpG9kC,EAAIunB,UAMXlmB,eAAA,MAAIS,UAAU,cAAakI,SAC/B3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,cAAakI,SAAC3I,eAAA,MAAA2I,SAAKg6B,mBAzBlD,WAiCb,EAGaO,UC7Df,MAAMQ,WAAqB1kC,YACzBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAG0L,wBAEjB,IAAIiE,EAAU3P,GAAGgyB,oBACjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,UAAW6E,WAAY1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,aAEvF1jC,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAvU,uBACEnQ,KAAKimB,OAAO+D,OACd,CAEAtpB,SAAU,IAADmhC,EACP,IAAIn5B,EAAO,GACP66B,EAAS,GAMb,OAJIz5B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACf1iB,IAAM66B,EAAQ,oBAGlBj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAE,kCAEhC3I,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnBD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,kBACJ3I,eAAA,MAAA2I,SAAI,0CACJ3I,eAAA,MAAA2I,SAAI,8CACJ3I,eAAA,MAAA2I,SAAI,6BACJ3I,eAAA,MAAA2I,SAAI,qCAGV3I,eAAA,SAAA2I,SACGb,GAAY,QAARm5B,EAAIn5B,SAAI,IAAAm5B,GAAJA,EAAM7iC,OAAS0J,EAAKc,KAAKjK,GAChC+J,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIokC,eACxCr6B,gBAAA,MAAImI,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,CAAC,IAAEhK,EAAIojC,qCACzCr5B,gBAAA,MAAImI,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,CAAC,IAAEhK,EAAIqjC,wCACzChiC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIglC,wBACxC3jC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIilC,6BALjCjlC,EAAIunB,UAOXlmB,eAAA,MAAIS,UAAU,cAAakI,SAC/B3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,cAAakI,SAAC3I,eAAA,MAAA2I,SAAKg6B,mBA3BlD,WAmCb,EAGae,UC/Df,MAAMG,WAAwB7kC,YAC5BC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGuL,qBAEjB,IAAIoE,EAAU3P,GAAGgyB,oBAEjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,YAExC7+B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAhkB,SAAU,IAADqhC,EACP,IAAIr5B,EAAO,GACP66B,EAAS,GAEoB,IAAD1B,EAA5B/3B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACX,QAALyW,EAACn5B,SAAI,IAAAm5B,GAAJA,EAAM7iC,SAAQukC,EAAQ,oBAE5B,OACEj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAC,wBAE/B3I,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnBD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAA2I,SAAI,eACJ3I,eAAA,MAAA2I,SAAI,sBACJ3I,eAAA,MAAA2I,SAAI,iBAGV3I,eAAA,SAAA2I,SACO,QAAJw4B,EAAAr5B,SAAI,IAAAq5B,GAAJA,EAAM/iC,OAAS0J,EAAKc,KAAKjK,GACxB+J,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImkC,aACxC9iC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIokC,eACxC/iC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImlC,gBACxC9jC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAChC3I,eAAA,KAAGS,UAAU,aAAaoQ,MAAO,CAAC2hB,MAAO,UAAWsO,OAAQ,WAAYjC,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQtqB,KAAK,wBAADtF,OAAyBnC,EAAImkC,mBALpInkC,EAAImkC,cAQX9iC,eAAA,MAAIS,UAAU,cAAakI,SAC/B3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,cAAakI,SAAC3I,eAAA,MAAA2I,SAAKg6B,mBA3BlD,WAmCb,EAGakB,UC5Df,MAAME,WAA2B/kC,YAC/BC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGwL,oBAEjB,IAAImE,EAAU3P,GAAGgyB,oBACjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,UAAW6E,WAAY1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,aAEvF1jC,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAvU,uBACEnQ,KAAKimB,OAAO+D,OACd,CAEAtpB,SAAU,IAADqhC,EAAA6C,EACP,IAAIl8B,EAAO,GACP66B,EAAS,GAEoB,IAAD1B,EAA5B/3B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACX,QAALyW,EAACn5B,SAAI,IAAAm5B,GAAJA,EAAM7iC,SAAQukC,EAAQ,oBAE5B,OACEj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAM,QAAJw4B,EAAAr5B,SAAI,IAAAq5B,GAAJA,EAAM/iC,OAAO,qBAAD0C,OAAsBgH,EAAK,GAAGi7B,cAAe,wBAEzF/iC,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnBD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,SACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,iBAGV3I,eAAA,SAAA2I,SACO,QAAJq7B,EAAAl8B,SAAI,IAAAk8B,GAAJA,EAAM5lC,OAAS0J,EAAKc,KAAKjK,GACxB+J,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,GAAA7H,OAAKnC,EAAIqqB,WAAW,GAAE,KAAAloB,OAAInC,EAAIsqB,UAAU,MAC1EjpB,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAI2kC,cACxCtjC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImqB,eACxC9oB,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,GAAA7H,OAAKnC,EAAI4kC,QAAQ,GAADziC,OAAInC,EAAI4kC,QAAO,MAAAziC,OAAKnC,EAAI6kC,KAAI,MAAA1iC,OAAKnC,EAAIU,MAAK,MAAAyB,OAAKnC,EAAI8kC,KAAM,QAJpG9kC,EAAIunB,UAMXlmB,eAAA,MAAIS,UAAU,cAAakI,SAC/B3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,cAAakI,SAAC3I,eAAA,MAAA2I,SAAKg6B,mBAzBlD,WAiCb,EAGaoB,U,SC5Df,MAAME,WAA8BjlC,YAClCC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGyL,iBAEjB,IAAIkE,EAAU3P,GAAGgyB,oBAEjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,YAExC7+B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAhkB,SAAU,IAADqhC,EACP,IAAIr5B,EAAO,GACP66B,EAAS,GAEoB,IAAD1B,EAA5B/3B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACX,QAALyW,EAACn5B,SAAI,IAAAm5B,GAAJA,EAAM7iC,SAAQukC,EAAQ,oBAE5B,OACEj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAC,yBAE/B3I,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnBD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAA2I,SAAI,eACJ3I,eAAA,MAAA2I,SAAI,sBACJ3I,eAAA,MAAA2I,SAAI,gBAGV3I,eAAA,SAAA2I,SACO,QAAJw4B,EAAAr5B,SAAI,IAAAq5B,GAAJA,EAAM/iC,OAAS0J,EAAKc,KAAKjK,GACxB+J,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImkC,aACxC9iC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIokC,eACxC/iC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImlC,gBACxC9jC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAChC3I,eAAA,KAAGS,UAAU,aAAaoQ,MAAO,CAAC2hB,MAAO,UAAWsO,OAAQ,WAAYjC,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQtqB,KAAK,yBAADtF,OAA0BnC,EAAImkC,mBALrInkC,EAAImkC,cAQX9iC,eAAA,MAAIS,UAAU,cAAakI,SAC/B3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,cAAakI,SAAC3I,eAAA,MAAA2I,SAAKg6B,mBA3BlD,WAmCb,EAGasB,UC7Df,MAAMC,WAA6BllC,YACjCC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAG2L,qBAEjB,IAAIgE,EAAU3P,GAAGgyB,oBACjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,UAAW6E,WAAY1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,aAEvF1jC,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAvU,uBACEnQ,KAAKimB,OAAO+D,OACd,CAEAtpB,SAAU,IAADqhC,EAAA6C,EACP,IAAIl8B,EAAO,GACP66B,EAAS,GAEoB,IAAD1B,EAA5B/3B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACX,QAALyW,EAACn5B,SAAI,IAAAm5B,GAAJA,EAAM7iC,SAAQukC,EAAQ,oBAE5B,OACEj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAM,QAAJw4B,EAAAr5B,SAAI,IAAAq5B,GAAJA,EAAM/iC,OAAO,uBAAD0C,OAAwBgH,EAAK,GAAGi7B,cAAe,yBAE3F/iC,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnBD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,SACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,iBAGV3I,eAAA,SAAA2I,SACO,QAAJq7B,EAAAl8B,SAAI,IAAAk8B,GAAJA,EAAM5lC,OAAS0J,EAAKc,KAAKjK,GACxB+J,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,GAAA7H,OAAKnC,EAAIqqB,WAAW,GAAE,KAAAloB,OAAInC,EAAIsqB,UAAU,MAC1EjpB,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAI2kC,cACxCtjC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImqB,eACxC9oB,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAA,GAAA7H,OAAKnC,EAAI4kC,QAAQ,GAADziC,OAAInC,EAAI4kC,QAAO,MAAAziC,OAAKnC,EAAI6kC,KAAI,MAAA1iC,OAAKnC,EAAIU,MAAK,MAAAyB,OAAKnC,EAAI8kC,KAAM,QAJpG9kC,EAAIunB,UAMXlmB,eAAA,MAAIS,UAAU,cAAakI,SAC/B3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,cAAakI,SAAC3I,eAAA,MAAA2I,SAAKg6B,mBAzBlD,WAiCb,EAGauB,UC5Df,MAAMC,WAAqBnlC,YACzBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGoL,aAEjB,IAAIuE,EAAU3P,GAAGgyB,oBAEjB97B,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAUplB,EAAQolB,YAExC7+B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAhkB,SAAU,IAADqhC,EACP,IAAIr5B,EAAO,GACP66B,EAAS,GAEoB,IAAD1B,EAA5B/3B,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACX,QAALyW,EAACn5B,SAAI,IAAAm5B,GAAJA,EAAM7iC,SAAQukC,EAAQ,oBAE5B,OACEj6B,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,wDAAuDkI,SAAA,CACpE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAC,8BAE1B,QAAJw4B,EAAAr5B,SAAI,IAAAq5B,OAAA,EAAJA,EAAM/iC,QAAS,EAAI0J,EAAKc,KAAKjK,GAC9BqB,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,cAAakI,SAExB3I,eAAA,OAAKS,UAAU,OAAOoQ,MAAO,CAAEuzB,OAAQ,aAAaz7B,SACpD3I,eAAA,OAAKS,UAAU,YAAWkI,SAC1BD,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CACxC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACxC3I,eAAA,MAAA2I,SAAI,OACJ3I,eAAA,MAAA2I,SAAI,SACJ3I,eAAA,MAAA2I,SAAI,yBACJ3I,eAAA,MAAA2I,SAAI,yBACJ3I,eAAA,MAAA2I,SAAI,yBACJ3I,eAAA,MAAA2I,SAAI,+BAGVD,gBAAA,SAAAC,SAAA,CACID,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAImkC,aACxC9iC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAIuO,OACxClN,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAI0lC,iBAAiB,MAAM,OAC/DrkC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAI2lC,mBAAmB,MAAM,OACjEtkC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAI4lC,kBAAkB,MAAM,OAChEvkC,eAAA,MAAI6Q,MAAO,CAAEgyB,WAAY,QAASl6B,SAAEhK,EAAI6lC,oBAAoB,MAAM,UAGpExkC,eAAA,MAAA2I,SACE3I,eAAA,MAAIijC,QAAQ,IAAIxiC,UAAU,WAAYoQ,MAAO,CAAE4zB,UAAW,UAAW97B,SAAC,uBAE1ED,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAIijC,QAAQ,IAAIpyB,MAAO,CAAE4zB,UAAW,UAAW97B,SAAC,SAGhD3I,eAAA,MAAIijC,QAAQ,IAAIpyB,MAAO,CAAE4zB,UAAW,UAAW97B,SAAC,cAK/ChK,EAAI+lC,gBAAgB97B,KAAI,CAAC9M,EAAOyM,IACjCG,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAIijC,QAAQ,IAAIpyB,MAAO,CAAE4zB,UAAW,UAAW97B,SAAEpJ,KAAMiG,uBAAuB1J,EAAM6oC,YACpF3kC,eAAA,MAAIijC,QAAQ,IAAIpyB,MAAO,CAAE4zB,UAAW,UAAW97B,SAAE7M,EAAM8oC,WAFlDr8B,kBAvCQ5J,EAAImkC,cAkDjC9iC,eAAA,OAAKS,UAAU,wBAAuBkI,SACzC3I,eAAA,MAAIS,UAAU,cAAakI,SAAEg6B,QAzDrB,WA0Gb,EAGawB,U,uHCnIA,MAAMU,WAAoB7lC,YACrCc,SACI,OACIE,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SAC/BvJ,KAAKF,MAAM4I,KACToB,GAAGC,EAAE,qBAELnJ,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAI7D,E,2HCLJ,MAAM6zB,WAAuB9lC,YACzBC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MAAQ,CACT0lC,eAAgB,KAChBh9B,OAAQ,GACRi9B,WAAW,EACXC,YAAa,KACbC,gBAAiB,KACjBC,aAAa,GAGjB/lC,KAAKoS,QAAUpS,KAAKoS,QAAQtC,KAAK9P,MACjCA,KAAKgmC,SAAWhmC,KAAKgmC,SAASl2B,KAAK9P,MACnCA,KAAKimC,UAAYjmC,KAAKimC,UAAUn2B,KAAK9P,MACrCA,KAAKkmC,YAAclmC,KAAKF,MAAMmmB,OAAOlc,EAAE,QAC3C,CAEAqI,UACIpS,KAAKF,MAAMsS,UACXpS,KAAKmmC,YACT,CAEAH,WACI,IAAII,EAAiB,KAGrB,GAAIpmC,KAAKF,MAAMumC,eACX,IAEI,GADAD,EAAiBpmC,KAAKF,MAAMumC,eAAe,IAAIrmC,KAAKC,MAAM4lC,eACnC,IAAnBO,EAAyB,MACjC,CAAC,MAAMngC,GAEH,YADAsG,QAAQC,IAAIvG,EAEhB,CAGJjG,KAAKF,MAAMmmB,OAAO4H,OAAOuY,GAAkCpmC,KAAKC,MAAM4lC,aACtE7lC,KAAKF,MAAMsS,UACXpS,KAAKmmC,YACT,CAEAA,WAAWG,GACPtmC,KAAKmB,SAAS,CAAEwkC,eAAgB,KAAMh9B,OAAQ29B,GAAc,GAAIV,WAAW,EAAOC,YAAa,KAAMC,gBAAiB,KAAMC,aAAa,GAC7I,CAEA,eAAME,CAAUr7B,GACZ,IAAIiE,EAAQoB,SAASspB,eAAe,cACpC,IAAIvtB,EAAc,KAClB,IACIA,QAAoBhC,KAAK6B,QAAQgD,EACrC,CAAE,MAAO5I,GAEL,YADAjG,KAAKmmC,WAAW,CAAC,CAAC,GAAIlgC,EAAEoiB,UAE5B,CAEA,IAAKrc,EAED,YADAhM,KAAKmB,SAAS,CAAE4kC,aAAa,IAKjC,IAAIQ,EAAqB9/B,SAASqD,GAAGiB,gBAAgB,gBACjDy7B,EAAclpC,MAAMipC,GAAsB,IAAQA,EACtD,GAAIv6B,EAAYhN,OAAUwnC,EAAc,EACpCxmC,KAAKmmC,WAAW,CAAC,CAAC,GAAI,gCAAkCK,EAAc,iBAI1E,IACI,IAAIC,QAAgBzmC,KAAK0mC,uBAAuB16B,GAChDhM,KAAKmB,SAAS,CAAEwkC,eAAgB35B,EAAarD,OAAQ,GAAIi9B,WAAW,EAAMC,YAAaY,EAAQZ,YAAaC,gBAAiBW,EAAQX,gBAAiBC,aAAa,GACvK,CAAE,MAAO9/B,GACLjG,KAAKmB,SAAS,CAAEwkC,eAAgB35B,EAAarD,OAAQ1C,EAAG2/B,WAAW,EAAOC,YAAa,KAAMC,gBAAiB,KAAMC,aAAa,GACrI,CACJ,CAEAW,uBAAuB16B,GACnB,IAAIrL,EAAOX,KACX,OAAO,IAAIqK,SAAQ,SAAUC,EAASC,GAClC,IAAIyU,EAAO,GACP1f,EAAa,GACbqnC,EAAa,GACbl9B,EAAQ,GACRq8B,EAAkB,CAAC,EACnBc,EAA6BpqC,IAAEyM,QAAQtI,EAAKb,MAAMuwB,QAAS,QAG3DwW,EAAiB,GAWrB,GAVA76B,EAAY,GAAG4I,SAAQ,CAACkyB,EAAan9B,KACjC,IAAIo9B,EAAMH,EAA2BE,GAChCC,GAGDJ,EAAW3/B,KAAK+/B,GAChB/nB,EAAKhY,KAAK+/B,EAAIC,WACd1nC,EAAW0H,KAAK+/B,EAAIznC,YAAc,KAJlCunC,EAAe7/B,KAAK,CAAC,KAAO2C,EAAUG,GAAGC,EAAE,0BAA0B,EAAO,CAAC+8B,EAAanmC,EAAKulC,eAKnG,IAEAW,EAAe7nC,OAAS,EAExB,YADAuL,EAAOs8B,GAKX,IAAII,EAAqB,GACzBj7B,EAAYxE,MAAM,GAAGoN,SAAQ,CAACrV,EAAKmK,KAE/BnK,EAAIqV,SAAQ,CAAClY,EAAOiN,KAChB,IAAIu9B,EAAmB7nC,aAAS3C,EAAO4C,EAAWqK,GAAYg9B,EAAWh9B,GAAUw9B,qBAAuBR,EAAWh9B,GAAUw9B,uBAAyB,KAAO,UAC/J,GAAID,EAAkB,CAClB,IAAI9L,EAAKpvB,EAAY,GAAGrC,GACxBs9B,EAAmBjgC,KAAK,CAAE0C,EAAW,EAAK,IAAMC,EAAUyxB,EAAK,KAAO8L,GAC1E,IACF,IAIN,IAAIE,EAAiBp7B,EAAYxE,MAAM,GAAGgC,KAAI,CAACjK,EAAKmK,IACzCnK,EAAIiK,KAAI,CAAC69B,EAAS19B,KACrB,IAAIjN,EAAS2qC,GAAWA,EAAQtqC,KAAQsqC,EAAQtqC,OAASsqC,EACrDC,EAAYX,EAAWh9B,GAC3B,GAAI29B,EAAUC,WAAY,CACtB,IAAIz1B,EAAKw1B,EAAUC,WAAWpX,SAASzzB,GACvC,MAAmB,qBAAPoV,GAA6B,OAAPA,GAAiBw1B,EAAUE,WAIlD11B,GAHPm1B,EAAmBjgC,KAAK,CAAE0C,EAAW,EAAK,IAAMC,EAAU29B,EAAU11B,KAAO,gBACpE,KAIf,CAAM,GAAI01B,EAAUG,SAAS,CACzB,IAAIv+B,EAAOo+B,EAAUG,SAAS55B,MAAK3E,GAAQA,EAAK8E,QAAUtR,IAC1D,OAAIwM,EACOA,EAAKxM,MAEL,IAEf,CAAO,GAAI4qC,EAAUI,SACjB,MAAiB,QAAVhrC,EAAkB,OAAS,QAC/B,GAAI4qC,EAAUK,aACjB,OAAQjrC,GAASA,EAAM,IAAI+D,QAAQ,IAAI,IAAM,GAAK,IAC/C,GAAI6mC,EAAUM,aAAc,CAC/B,IAAIC,EAAS/9B,GAAGg+B,iBAAiB3X,SAASzzB,GAC1C,OAAKmrC,GAAUA,EAAS,KACpBZ,EAAmBjgC,KAAK,CAAE0C,EAAW,EAAK,IAAMC,EAAU29B,EAAU11B,KAAO,gBACpE,MAEJi2B,CACX,CAAO,GAAIP,EAAUS,OAAQ,CACzB,IAAIjhB,EAAShd,GAAGwM,MAAM6Z,SAASzzB,GAC/B,OAAKoqB,IACDmgB,EAAmBjgC,KAAK,CAAE0C,EAAW,EAAK,IAAMC,EAAU29B,EAAU11B,KAAO,gBACpE,KAGf,CACI,OAAOlV,CACX,MAIJuqC,EAAmBjoC,OAAS,EAC5BuL,EAAO08B,IAIXG,EAAexyB,SAAQ,CAACrV,EAAKmK,KACzB,MAAMR,EAAO1M,IAAEwrC,OAAOhpB,EAAMzf,EAAIiK,KAAI9M,GACX,qBAAVA,GAAmC,OAAVA,GAC5BA,EAAMK,KACCL,EAAMK,OAKVL,KAITurC,EAAetnC,EAAKb,MAAMmmB,OAAOqJ,SAASpmB,GAC5C++B,GACAnC,EAAgBp8B,EAAW,GAAK,SAChCR,EAAKvI,EAAKb,MAAMmmB,OAAOqF,SAAW2c,EAAatnC,EAAKb,MAAMmmB,OAAOqF,UAEjEwa,EAAgBp8B,EAAW,GAAK,MAGpCD,EAAMzC,KAAKkC,EAAK,IAGpBoB,EAAQ,CAAEu7B,YAAap8B,EAAOq8B,gBAAiBA,IACnD,GACJ,CAEAplC,SACI,OACI4I,gBAACyI,KAAU,CAACE,MAAM,EAAOC,OAAQlS,KAAKF,MAAMoS,OAAQC,OAAQnS,KAAKoS,QAAS/Q,UAAW,oBAAsBrB,KAAKF,MAAMuB,UAAUkI,SAAA,CAC5H3I,eAACsnC,KAAW,CAAC/1B,OAAQnS,KAAKoS,QAAQ7I,SAAEO,GAAGC,EAAE,0BAA0B,EAAO,CAAC/J,KAAKkmC,gBAChFtlC,eAACunC,KAAS,CAAA5+B,SACND,gBAAA,OAAAC,SAAA,CACID,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAACu3B,IAAI,aAAY7+B,SAAEO,GAAGC,EAAE,4BAC9BnJ,eAACynC,KAAW,CAACz8B,KAAK,OAAOkC,KAAK,OAAOgE,GAAG,aAAaw2B,OAAO,OAAO7I,QAAS70B,GAASA,EAAMkC,OAAOpQ,MAAQ,KAAMuE,SAAU6K,UACtH,IAAIy8B,EAAW39B,EAAMkC,OAAOpQ,MAAM+D,QAAQ,iBAAkB,IAC5DwP,SAASwpB,uBAAuB,qBAAqB,GAAG+O,UAAYD,EACpEvoC,KAAKmB,SAAS,CAAE4kC,aAAa,UACvB/lC,KAAKimC,WAAW,EACvBj4B,MAAM,kBACTpN,eAAC6nC,KAAQ,CAACrV,MAAM,QAAO7pB,SAClBO,GAAGC,EAAE,sCAGb/J,KAAKC,MAAM8lC,YACRnlC,eAAC+Q,KAAO,CAACC,KAAK,sCAAsCC,QAAQ,UAC9D,KACD7R,KAAKC,MAAM0I,OAAO3J,QAAU,GAAmC,OAA9BgB,KAAKC,MAAM0lC,eACzC/kC,eAAC8nC,KAAK,CAACtV,MAAM,UAAS7pB,SAAEO,GAAGC,EAAE,8BAC/B,KACD/J,KAAKC,MAAM0I,OAAO3J,OAAS,EACxB4B,eAAC8nC,KAAK,CAACtV,MAAM,SAAQ7pB,SAAEO,GAAGC,EAAE,iCAC9B,KACD/J,KAAKC,MAAM0I,OAAO3J,OAAS,EACxBsK,gBAAA,MAAIjI,UAAU,kBAAiBkI,SAAA,CAC1BvJ,KAAKC,MAAM0I,OAAOnB,MAAM,EAAG,IAAIgC,KAAI,CAAC6gB,EAAOlhB,KACxC,IAAIw/B,EAAKte,EAAM,GAAKA,EAAM,GAAG7jB,MAAM,KAAO,KAC1C,OAAO8C,gBAAA,MAAIjI,UAAU,cAAakI,SAAA,CAC7Bo/B,EACGr/B,gBAAA,QAAAC,SAAA,CAAM,QAAM9C,SAASkiC,EAAG,IAAM,EAAE,YAAUliC,SAASkiC,EAAG,IAAM,EAAE,WAC5D,KACLte,EAAM,KAJ6BlhB,EAKnC,IAERnJ,KAAKC,MAAM0I,QAAU3I,KAAKC,MAAM0I,OAAO3J,OAAS,GAC7CsK,gBAAA,MAAIjI,UAAU,cAAakI,SAAA,CAAEO,GAAGC,EAAE,wBAAyB,KAAO,CAAC/J,KAAKC,MAAM0I,OAAO3J,OAAS,KAAK,OACrG,QAER,KACF4B,eAAC4H,KAAa,CAACE,KAAM1I,KAAKC,MAAM0lC,eAAgBh9B,OAAQ3I,KAAKC,MAAM0I,OAAQC,SAAU5I,KAAKC,MAAM6lC,uBAGxGx8B,gBAACs/B,KAAW,CAAAr/B,SAAA,CACR3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASz/B,KAAKoS,QAAQ7I,SAAEO,GAAGC,EAAE,iBACvDnJ,eAACioC,KAAM,CAACzV,MAAM,UAAU0V,UAAW9oC,KAAKC,MAAM2lC,UAAWnG,QAASz/B,KAAKgmC,SAASz8B,SAAEO,GAAGC,EAAE,kCA9CsC,eAkD7I,EAGW27B,U,oBC3Pf,MAAMqD,GAAgBp5B,IAAMq5B,MAAK,IAAM,uDAE/BC,UAAS,qBAAEC,IAAsBC,WACnC,gBAAEC,IAAoBC,aAE5B,MAAMC,WAAyB1pC,YAC3BC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MAAQ,CACTspC,iBAAiB,EACjBC,iBAAiB,EAEzB,CACAC,0BAA0BC,GACS,OAA5BA,EAAUF,sBAAsDjlC,IAA5BmlC,EAAUF,iBAC7CxpC,KAAKmB,SAAS,CAACqoC,gBAAiBE,EAAUF,iBAElD,CACA9oC,SACI,MAAO,CACH4I,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CACtBvJ,KAAKF,MAAM6pC,YAAcntC,IAAEgN,IAAIxJ,KAAKF,MAAM6pC,aAAY,SAASC,GAC7D,OAAOA,GACX,IAAK,KACH5pC,KAAKF,MAAM+pC,qBAeX,KAdEvgC,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CACpBvJ,KAAKF,MAAMgqC,cAMX,KALExgC,gBAAA,UAAQjI,UAAU,yBAAyBwI,MAAM,SAAS41B,QAASA,KAC/Dz/B,KAAKmB,SAAS,CAAEqoC,iBAAiB,GAAO,EAC1CjgC,SAAA,CACE3I,eAAA,KAAGS,UAAU,gBAAkBT,eAAA,QAAA2I,SAAM,cAG1CvJ,KAAKF,MAAMiqC,WAIZ,KAHEzgC,gBAAA,UAAQjI,UAAU,wBAAwBwI,MAAOC,GAAGC,EAAE,4BAA6B01B,QAASz/B,KAAKF,MAAMkqC,SAASzgC,SAAA,CAC5G3I,eAAA,KAAGS,UAAU,qBAAuBT,eAAA,QAAA2I,SAAOO,GAAGC,EAAE,oCAK9D/J,KAAKF,MAAMmmB,OAAOsG,oBAAuBvsB,KAAKF,MAAMmqC,iBAyBpD,KAxBE3gC,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CACpBvJ,KAAKF,MAAM+pC,uBAAwB//B,GAAGupB,iBAAoBrzB,KAAKF,MAAMoqC,WAMrE,KALE5gC,gBAAA,UAAQjI,UAAU,2BAA2BwI,MAAOC,GAAGC,EAAE,4BAA6B01B,QAASA,KAC3Fz/B,KAAKmB,SAAS,CAAEooC,iBAAiB,GAAO,EAC1ChgC,SAAA,CACE3I,eAAA,KAAGS,UAAU,uBAAyBT,eAAA,QAAA2I,SAAOO,GAAGC,EAAE,iCAG1DT,gBAAC8/B,GAAe,CAAC/nC,UAAU,2BAA2BwI,MAAOC,GAAGC,EAAE,+BAAiC/J,KAAKF,MAAMqqC,SAAQ5gC,SAAA,CAClH3I,eAAA,KAAGS,UAAU,oBAAsBiI,gBAAA,QAAAC,SAAA,CAAOO,GAAGC,EAAE,4BAA6B/J,KAAKF,MAAMsqC,eAAe,YAAY,aAErHpqC,KAAKF,MAAMuqC,kBACR/gC,gBAACghC,KAA0B,CAACl/B,KAAK,KAAKgoB,MAAM,YAAY/xB,UAAU,gBAAekI,SAAA,CAC7E3I,eAAC2/B,KAAc,CAAAh3B,SACX3I,eAAA,KAAGS,UAAU,wBAEjBT,eAAC6/B,KAAY,CAACC,OAAK,EAAC6J,eAAe,EAAKhhC,SACpC3I,eAAC4pC,KAAY,CAAC/K,QAASz/B,KAAKF,MAAM2qC,iBAAiBlhC,SAC9CO,GAAGC,EAAE,uCAIpB,QAIT/J,KAAKF,MAAMyJ,UACVvJ,KAAKF,MAAM+pC,sBAAwB//B,GAAGupB,gBACpC/pB,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CACpBvJ,KAAKF,MAAM4qC,UAIX,KAHEphC,gBAAA,UAAQjI,UAAU,sBAAsBwI,MAAOC,GAAGC,EAAE,oBAAqB01B,QAASz/B,KAAKF,MAAM6qC,QAAQphC,SAAA,CACjG3I,eAAA,KAAGS,UAAU,wBAA0BT,eAAA,QAAA2I,SAAOO,GAAGC,EAAE,yBAG1DD,GAAGokB,YAAcluB,KAAKF,MAAM8qC,aACzBthC,gBAAA,UAAQjI,UAAU,yBAAyBwI,MAAOC,GAAGC,EAAE,2BAA4B01B,QAAU70B,GAAU5K,KAAKF,MAAM+qC,QAAQjgC,EAAO5K,KAAKF,MAAMqqC,UAAU5gC,SAAA,CAClJ3I,eAAA,KAAGS,UAAU,4BAA8BT,eAAA,QAAA2I,SAAOO,GAAGC,EAAE,gCAE7D,QAER,KACD/J,KAAKF,MAAMgrC,kBACRxhC,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CACtB3I,eAACioC,KAAM,CAACz9B,KAAK,KAAKgoB,MAAM,QAAQvpB,MAAOC,GAAGC,EAAE,4BAA6B1I,UAAW,gBAAkBrB,KAAKF,MAAMsqC,eAAe,SAAS,IAAK3K,QAAU70B,IACpJA,EAAMkC,OAAOE,OACbsS,OAAOyB,WAAW/gB,KAAKF,MAAMirC,gBAAiB,EAAE,EAClDxhC,SAAC3I,eAAA,KAAGS,UAAW,oBACfrB,KAAKF,MAAMsqC,eACT9gC,gBAACu/B,KAAM,CAACz9B,KAAK,KAAKgoB,MAAM,QAAQvpB,MAAOC,GAAGC,EAAE,2BAA4B1I,UAAW,2BAA4Bo+B,QAAU70B,IACrHA,EAAMkC,OAAOE,OACbsS,OAAOyB,WAAW/gB,KAAKF,MAAMkrC,eAAgB,EAAE,EACjDzhC,SAAA,CAAC3I,eAAA,KAAGS,UAAU,kBAAoBT,eAAA,QAAA2I,SAAM,qBAC5C,QAER,KAEGvJ,KAAKF,MAAMmrC,WAAuJ,KAA1IrqC,eAACqoC,GAAS,CAACn3B,GAAG,YAAYzQ,UAAU,qBAAsBrB,KAAKF,MAAMorC,YAAav8B,YAAa7E,GAAGC,EAAE,mCAI5H/J,KAAKF,MAAMmrC,WAAmB,MAElCjrC,KAAKF,MAAMqrC,uBACRvqC,eAAA,OAAKS,UAAU,YAAWkI,SACtB3I,eAACioC,KAAM,CAACz9B,KAAK,KAAKgoB,MAAM,QAAQ/xB,UAAW,gBAAkBrB,KAAKF,MAAMsrC,oBAAoB,SAAS,IAAK3L,QAAU70B,IAChHA,EAAMkC,OAAOE,OACbhN,KAAKF,MAAMurC,sBAAsB,EACnC9hC,SAAC3I,eAAA,KAAGS,UAAU,uBAEtB,OA1F2B,eA4FjCT,eAAC8kC,GAAc,CAACW,eAAgBrmC,KAAKF,MAAMumC,eAAgBhW,QAASrwB,KAAKF,MAAMuwB,QAASpK,OAAQjmB,KAAKF,MAAMmmB,OAAQ/T,OAAQlS,KAAKC,MAAMspC,gBAClIn3B,QAASA,KACLpS,KAAKmB,SAAS,CAAEooC,iBAAiB,GAAQ,GAF0G,eAK3J3oC,eAAC0qC,WAAQ,CAAC9Y,SAAS,aAAYjpB,SAC3B3I,eAACmoC,GAAa,CACdwC,eAAgBvrC,KAAKF,MAAMyrC,eAC3B7mB,mBAAqB1kB,KAAKF,MAAM4kB,mBAAoB8mB,SAAWxrC,KAAKF,MAAM0rC,SAAUnb,QAASrwB,KAAKF,MAAMuwB,QAASpK,OAAQjmB,KAAKF,MAAMmmB,OAAQ/T,OAAQlS,KAAKC,MAAMupC,gBAC3Jp3B,QAASA,KACLpS,KAAKmB,SAAS,CAAEqoC,iBAAiB,IAC9BxpC,KAAKF,MAAMsS,SACVpS,KAAKF,MAAMsS,SAAS,GAJoJ,gBAHpJ,kBAY5C,EAGWk3B,UCvIA,MAAMmC,WAAwB7rC,YACzCwN,oBACI,MAAM,aAAER,EAAY,SAAEoC,GAAahP,KAAKF,MACxCE,KAAKiP,OAAOvS,MAAQkQ,EACpB5M,KAAKiP,OAAOC,QACRF,GAAUA,GAClB,CAEA3O,WACI,MAAsD,SAA/CL,KAAKiP,OAAOvS,MAAMI,WAAW+B,aACxC,CAEA6B,SACI,MAAM,aAAEkM,EAAY,UAAEvL,GAAcrB,KAAKF,MAGnCqP,EAAO,CACT9N,UAHgB+N,KAAG,kCAAmC/N,IAM1D,OACIiI,gBAAA,aACS6F,EACLL,IAAMO,GAAQrP,KAAKiP,OAASI,EAC5BzC,aAAeA,EACf3L,SAAUA,KAEHjB,KAAKF,MAAMP,KAAOS,KAAKF,MAAMknC,UAC5BhnC,KAAKF,MAAMsB,SAAS,CAAC7B,IAAIS,KAAKF,MAAMP,IAAIynC,UAAUhnC,KAAKF,MAAMknC,UAAUtqC,MAAMsD,KAAKK,aAElFL,KAAKF,MAAMsB,SAASpB,KAAKK,YAG7BL,KAAKiP,OAAOjC,MAAM,EACpBzD,SAAA,CAEF3I,eAAA,UAAQlE,MAAM,OAAM6M,SAAEO,GAAGC,EAAE,qBAC3BnJ,eAAA,UAAQlE,MAAM,QAAO6M,SAAEO,GAAGC,EAAE,sBAGxC,E,wBC3CW,MAAM2hC,WAAwB9rC,YACzCS,WACI,OAAOL,KAAKF,MAAMpD,KACtB,CAEAgE,SACI,OAAOE,eAAA,SAAOgL,KAAK,OAAOgB,aAAc5M,KAAKF,MAAMpD,MAAO2E,UAAU,sBAAsBynC,UAAQ,GACtG,E,kCCJW,MAAM6C,WAAiC/rC,YAClDC,YAAYC,GACRC,MAAMD,GAENE,KAAKC,MAAQ,CACT2rC,UAAW,GACXz+B,aAAcnN,KAAKF,MAAMpD,OAAS,GAE1C,CAEA0Q,oBACI,IAAIw+B,EAAY,GACZC,EAAe/hC,GAAGoE,WAAW,oBAC7B29B,GACAA,EAAarlC,MAAM,KAAKoO,SAAS5G,IAC7B49B,EAAU5kC,KAAK,CAAEtK,MAAOsR,EAAMjR,OAAQiR,MAAOA,EAAMjR,QAAS,IAIpEiD,KAAKmB,SAAS,CAAEyqC,aACpB,CAEAlrC,SACI,IAAI0N,EAAKpO,KAAKC,MAAMkN,aAChBzQ,EAAQ0R,EAAK,CAAE1R,MAAO0R,EAAIJ,MAAOI,GAAOpO,KAAKF,MAAMpD,MAEvD,OACIkE,eAACyN,KAAS,CACNhN,UAAU,gBACViN,gBAAgB,gBAChBC,cAAc,EACdC,aAAa,EACbC,SAAS,EACTC,QAAS1O,KAAKC,MAAM2rC,UACpBj9B,YAAa7E,GAAGC,EAAE,qCAClB6E,kBAAoBC,GAAmB/E,GAAGC,EAAE,qBAAsB,KAAM,CAAC8E,IACzEnS,MAAOA,EACPoS,IAAK9O,KAAKF,MAAMgB,SAChBG,SAAWf,IACPF,KAAKmB,SAAS,CAAEgM,aAAcjN,EAAWA,EAASxD,MAAMK,OAAS,OAC7DiD,KAAKF,MAAMmB,UAASjB,KAAKF,MAAMmB,SAASf,GACxCF,KAAKF,MAAMsB,UAASpB,KAAKF,MAAMsB,SAASlB,EAAWA,EAASxD,MAAMK,OAAS,KAAK,GAIpG,E,cCjCW,YAAUszB,EAASyb,GAC9B,OAAOzb,EAAQ7mB,KAAI,CAAC89B,EAAWyE,KAC3B,IAAIC,EAASjtB,OAAOyI,OAAO,CAAC,EAAG8f,GAM/B,GAJK0E,EAAOp4B,eAAe,UACvBo4B,EAAO54B,MAAO,GAGd44B,EAAOzE,aAAeyE,EAAOC,YAAcD,EAAO/6B,OAAQ,CAO1D,GANA+6B,EAAO/6B,OAAS,CACZrF,KAAMsgC,QAAKC,OACXz9B,QAASs9B,EAAOxE,WAAa,CAAC,CAAE9qC,MAAO,KAAMsR,MAAO,SAAWg+B,EAAOzE,WAAW5Y,aAAaqd,EAAOI,kBAAkBJ,EAAOK,iBAAkCL,EAAOzE,WAAW5Y,aAAaqd,EAAOI,kBAAkBJ,EAAOK,iBAI7M,SAAnB/E,EAAU11B,KAAiB,CAC1B,IAAI0G,EAAS0zB,EAAO/6B,OAAOvC,QACxB5E,GAAGsyB,iBAEF9jB,EADIxO,GAAGyyB,UACCyP,EAAO/6B,OAAOvC,QAAQ+B,QAAQ67B,IAClC,GAAgB,eAAbA,EAAGt+B,MACF,OAAOs+B,CAAE,IAGTN,EAAO/6B,OAAOvC,QAAQ+B,QAAQ67B,IAClC,GAAgB,eAAbA,EAAGt+B,OAAuC,UAAbs+B,EAAGt+B,MAC/B,OAAOs+B,CAAE,KAGrBN,EAAO/6B,OAAOvC,QAAU4J,CAC5B,CAEA,GAAsB,cAAnBgvB,EAAU11B,OAAyB9H,GAAGyyB,YAAczyB,GAAGsyB,eAAgB,CACtE,IAAIvb,EAAQmrB,EAAO/6B,OAAOvC,QAC1BmS,EAAQmrB,EAAO/6B,OAAOvC,QAAQ+B,QAAQ67B,IAClC,GAAgB,cAAbA,EAAGt+B,MACF,OAAOs+B,CAAE,IAEjBN,EAAO/6B,OAAOvC,QAAUmS,CAC5B,CAEAmrB,EAAOC,UAAYD,EAAOO,UAAYP,EAAOQ,aAAe,CAACC,EAAMltC,IACxDysC,EAAOzE,WAAWvX,YAAYyc,GAGrCX,IACAE,EAAOU,YAAeD,GACXA,EAGXT,EAAOv7B,OAASk8B,wBAAa,CACzBC,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,SACbD,QAASs9B,EAAOxE,WAAa,CAAC,CAAE9qC,MAAO,KAAMsR,MAAO,SAAWg+B,EAAOzE,WAAW5Y,aAAa,MAAMqd,EAAOK,iBAAkCL,EAAOzE,WAAW5Y,aAAa,MAAMqd,EAAOK,kBAGrM,CAobA,OAlbIL,EAAOjE,SACPiE,EAAO/6B,OAAS,CACZrF,KAAMsgC,QAAKC,OACXz9B,QAAS5E,GAAGwM,MAAMqY,cAAcpvB,GACrBA,EAAIT,KAAO,KAAOS,EAAIg/B,MAAQ,MACtC,IAGHuN,IACAE,EAAOv7B,OAASk8B,wBAAa,CACzBC,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,SACbD,QAAS5E,GAAGwM,MAAMqY,cAAcpvB,GACrBA,EAAIT,KAAO,KAAOS,EAAIg/B,MAAQ,MACtC,MAIXyN,EAAOC,UAAaQ,IAChB,IAAKA,EAAM,OAAO,KAClB,IAAI3yB,EAAOhQ,GAAGwM,MAAM0D,KAAKyyB,GACzB,OAAK3yB,EACExQ,gBAAA,QAAAC,SAAA,CAAM3I,eAACm9B,GAAQ,CAACjkB,KAAMA,EAAMzY,UAAU,eAAgB2qC,EAAOa,UAAY/yB,EAAKhb,QADnE8B,eAAA,QAAMS,UAAU,aAAYkI,SAAEO,GAAGC,EAAE,sBAC4C,EAGrGiiC,EAAOQ,aAAgBC,IACnB,IAAI3yB,EAAOhQ,GAAGwM,MAAM0D,KAAKyyB,GACzB,OAAO3yB,EAAOA,EAAKhb,KAAO,wBAAwB,GAItDktC,EAAOc,aACPd,EAAO/6B,OAAS,KAChB+6B,EAAOe,UAAW,EAClBf,EAAOC,UAAaQ,IAChB,IAAI3yB,EAAOhQ,GAAGwM,MAAM0D,KAAKyyB,GACzB,OAAO7rC,eAAA,QAAA2I,SAAM3I,eAACm9B,GAAQ,CAACjkB,KAAMA,EAAMzY,UAAU,gBAAsB,EAEvE2qC,EAAOQ,aAAgBC,IACnB,IAAI3yB,EAAOhQ,GAAGwM,MAAM0D,KAAKyyB,GACzB,OAAO3yB,EAAOA,EAAKhb,KAAO,YAAc2tC,CAAI,GAIhDT,EAAOpE,eACPoE,EAAO/6B,OAAS,CACZrF,KAAMsgC,QAAKC,OACXz9B,QAAS,CACL,CAAEhS,MAAO,EAAGsR,MAAO,0BACnB,CAAEtR,MAAO,GAAIsR,MAAO,uBACpB,CAAEtR,MAAO,IAAKsR,MAAO,mCAG7Bg+B,EAAOC,UAAYD,EAAOQ,aAAgBC,IACtC,IAAIO,EAAaljC,GAAGg+B,iBAAiB9tB,KAAKyyB,GAC1C,OAAOO,EAAaA,EAAWluC,KAAO2tC,CAAI,EAG1CX,IACAE,EAAOv7B,OAASk8B,wBAAa,CACzBC,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,SACbD,QAAS,CACL,CAAEhS,MAAO,EAAGsR,MAAO,cACnB,CAAEtR,MAAO,GAAIsR,MAAO,UACpB,CAAEtR,MAAO,IAAKsR,MAAO,sBAMjCg+B,EAAOiB,YAAejB,EAAOC,WAAcD,EAAO/6B,SAClD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAAC0O,KAAiB,CAACZ,QAAS0+B,EAAO1+B,WAAay+B,EAAazwC,MAAOA,EAAOsT,QAAQ,IAG9Fg8B,EAAOC,UAAY,CAACQ,EAAKltC,KACrB,IAAKktC,EAAM,OACX,IAAI3lC,EAAS,GAMb,OALAtK,IAAEC,KAAKgwC,GAAMvjC,IACT,IAAIyH,EAASnU,IAAEu/B,UAAUiQ,EAAOt9B,QAAQ,CAAChS,MAAMwM,IAC5CyH,GACC7J,EAAOE,KAAK2J,EAAO3C,MAAM,IAE1BlH,EAAOhK,UAAU,IAI5BkvC,EAAOtE,UAAasE,EAAOC,WAAcD,EAAO/6B,SAChD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAAC6qC,GAAe,IAAK0B,EAAazwC,MAAOA,IAEpDsvC,EAAOC,UAAYD,EAAOQ,aAAgBC,GAClB,qBAATA,GAAiC,OAATA,EAAsB,GAChB,SAAlCA,EAAK3vC,WAAW+B,cAA2B,MAAQ,KAG1DitC,IACAE,EAAOv7B,OAASk8B,wBAAa,CACzBC,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,SACbD,QAAS,CACL,CAAEhS,OAAO,EAAMsR,MAAO,OACtB,CAAEtR,OAAO,EAAOsR,MAAO,YAMnCg+B,EAAOqB,YAAerB,EAAOC,WAAcD,EAAO/6B,SAClD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAACqM,KAAgB,IAAKkgC,EAAazwC,MAAOA,IAErDsvC,EAAOC,UAAYD,EAAOQ,aAAgBC,GAC/BA,EAEXT,EAAOQ,aAAeR,EAAOQ,aAAgBC,GAClCA,GAAc,KAIzBT,EAAOrE,cAAiBqE,EAAOC,WAAcD,EAAO/6B,SACpD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAAC6L,KAAmB,IAAK0gC,EAAazwC,MAAOA,EAAOiQ,kBAAoBq/B,EAAOr/B,mBAAqB,IAE/Gq/B,EAAOC,UAAYD,EAAOQ,aAAgBC,GACjCA,GACU,IAAPA,GAAYvhC,QAAQ,GADV,KAKtB8gC,EAAOsB,QAAWtB,EAAOC,WAAcD,EAAO/6B,SAC9C+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAACjB,KAAa,IAAKwtC,EAAazwC,MAAOA,IAElDsvC,EAAOC,UAAaQ,IAChB,GAAKA,EACL,OAAOtsC,KAAMmF,oBAAoBnF,KAAMC,QAAQqsC,GAAM,EAEzDT,EAAOQ,aAAgBC,GACdA,EACEtsC,KAAMqF,YAAYrF,KAAMC,QAAQqsC,IADrB,GAGtBT,EAAOU,YAAeD,GACbA,EACEtsC,KAAMC,QAAQqsC,GAAMc,WADT,KAIlBzB,IACAE,EAAOv7B,OAAS+8B,sBAAW,CACvB7+B,YAAa,OACb8+B,8BAA8B,EAC9BC,YAAa,CAACC,cAAWC,GAAID,cAAWE,GAAIF,cAAWG,IACvDlB,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAQ,OAAO,OAKnFu7B,EAAO+B,YAAe/B,EAAOC,WAAcD,EAAO/6B,SAClD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAACjB,KAAa,IAAKwtC,EAAazwC,MAAOA,EAAO6E,UAAgB,OAANyqC,QAAM,IAANA,OAAM,EAANA,EAAQzqC,YAAY,IAEvFyqC,EAAOC,UAAaQ,IAChB,GAAKA,EACL,OAAOtsC,KAAMuF,WAAWvF,KAAMC,QAAQqsC,GAAM,EAEhDT,EAAOQ,aAAgBC,GACdA,EACEtsC,KAAMqF,YAAYrF,KAAMC,QAAQqsC,IADrB,GAGtBT,EAAOU,YAAeD,GACbA,EACEtsC,KAAMC,QAAQqsC,GAAMc,WADT,KAIlBzB,IACAE,EAAOv7B,OAAS+8B,sBAAW,CACvB7+B,YAAa,OACb8+B,8BAA8B,EAC9BC,YAAa,CAACC,cAAWC,GAAID,cAAWE,GAAIF,cAAWG,IACvDlB,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAQ,OAAO,OAKnFu7B,EAAOgC,WAAchC,EAAOC,WAAcD,EAAO/6B,SACjD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,KAC5DC,EAAOiC,aACPjC,EAAOiC,YAAYd,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,GAE3DnrC,eAAC8qC,GAAe,IAAKyB,EAAazwC,MAAOA,KAEpDsvC,EAAOC,UAAaQ,IAChB,IAAIyB,EACJ,IACIA,EAAU7rB,KAAK6G,MAAMujB,EACzB,CAAE,MAAOxmC,GAAK,CACd,IAAKioC,EACD,OAAOzB,EAAO,eAAiB,GAEnC,IAAI3lC,EAAS,GAYb,OAXAiY,OAAOC,KAAKkvB,GAASt5B,SAAQjQ,IACzB,IAAIwpC,EAAM,GACVpvB,OAAOC,KAAKkvB,EAAQvpC,IAAMiQ,SAAQw5B,IAC1BF,EAAQvpC,GAAKypC,IACbD,EAAInnC,KAAKonC,EAAKx7B,aAClB,IAEAu7B,EAAInvC,OAAS,IACb8H,IAAmB,MAARnC,EAAc,MAAQA,GAAO,KAAOwpC,EAAIlvB,KAAK,MAC5D,IAEGnY,CAAM,EAEjBklC,EAAOQ,aAAgBC,GACZA,GAAQ,GAEnBT,EAAOn6B,QAAU,eAGjBm6B,EAAOqC,WAAcrC,EAAOC,WAAcD,EAAO/6B,SACjD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,KAC5DC,EAAOiC,aACPjC,EAAOiC,YAAYd,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,GAE3DnrC,eAAC8qC,GAAe,IAAKyB,EAAazwC,MAAOA,KAEpDsvC,EAAOC,UAAaQ,IAChB,IAAIyB,EACJ,IACIA,EAAU7rB,KAAK6G,MAAMujB,EACzB,CAAE,MAAOxmC,GAAK,CAEd,OAAKioC,EAGM5kC,gBAAAglC,YAAA,CAAA/kC,SAAA,CACH3I,eAAA,SAAOgL,KAAK,SAASvK,UAAU,2BAA2B3E,MAAM,SAC/DwxC,EAAQ9a,MACLxyB,eAAA,SAAOgL,KAAK,QAAQvK,UAAU,QAAQ3E,MAAOwxC,EAAQ9a,MAAO0V,UAAQ,IAClE,QANH2D,EAAO,eAAiB7rC,eAAA,SAAOgL,KAAK,SAASvK,UAAU,2BAA2B3E,MAAM,QAQnG,EAEJsvC,EAAOQ,aAAgBC,GACZA,GAAQ,GAEnBT,EAAOn6B,QAAU,mBAGjBm6B,EAAOuC,kBAAqBvC,EAAOC,WAAcD,EAAO/6B,SACxD+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,KAC5DC,EAAOiC,aACPjC,EAAOiC,YAAYd,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,GAE3DnrC,eAAC8qC,GAAe,IAAKyB,EAAazwC,MAAOA,KAEpDsvC,EAAOC,UAAaQ,GACT7rC,eAAA,UAAQS,UAAU,yBAAyBynC,SAAUkD,EAAOv8B,OAAOlG,SAAEO,GAAGC,EAAE,qBAErFiiC,EAAOQ,aAAgBC,GACZA,GAAQ,GAEnBT,EAAOwC,cAAgB,mBACvBxC,EAAOn6B,QAAU,mBACjBm6B,EAAOyC,WAAY,IAGnBzC,EAAO0C,oBAAuB1C,EAAOC,WAAcD,EAAO/6B,SAC1D+6B,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAACmO,KAAyB,IAAKo+B,EAAazwC,MAAOA,IAG9DsvC,EAAOC,UAAYD,EAAOQ,aAAgBC,GAC/BA,GAAc,WAGrBX,IACAE,EAAOv7B,OAASk8B,wBAAa,CACzBC,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,SACbD,QAAS,CACL,CAAEhS,MAAO,WAAYsR,MAAO,YAC5B,CAAEtR,MAAO,SAAUsR,MAAO,eAMtCg+B,EAAO2C,oBACP3C,EAAOC,UAAYD,EAAOQ,aAAgBC,GAC/BA,EAGXT,EAAOkB,eAAiB,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,IACzDnrC,eAAC+qC,GAAwB,IAAKwB,EAAazwC,MAAOA,KAI7DsvC,EAAO4C,cACP5C,EAAO6C,cAAe,EACtB7C,EAAOwC,cAAgB,mBACvBxC,EAAOn6B,QAAU,mBACjBm6B,EAAOe,UAAW,EAClBf,EAAOyC,WAAY,GAGnBzC,EAAO8C,kBACP9C,EAAOwC,cAAgBxC,EAAOwC,eAAiB,mBAC/CxC,EAAOn6B,QAAUm6B,EAAOn6B,SAAW,mBACnCm6B,EAAOe,UAAW,EACc,qBAArBf,EAAOyC,YAA2BzC,EAAOyC,WAAY,GAChEzC,EAAOC,UAAaQ,IAChB,GAAKA,EACL,OAAOtsC,KAAM+F,cAAcumC,EAAK,EAEpCT,EAAOQ,aAAgBC,IACnB,IAAKA,EAAM,OAEX,OADctsC,KAAM+F,cAAcumC,EAAMtsC,KAAMkC,eAC/B5B,QAAQ,eAAgB,MAAM,EAEjDurC,EAAOO,UAAaE,IAChB,GAAKA,EACL,OAAOtsC,KAAMC,QAAQqsC,GAAMsC,UAAU,EAEzC/C,EAAOU,YAAeD,IAClB,GAAKA,EACL,OAAOtsC,KAAMC,QAAQqsC,GAAMc,UAAU,EAGrCzB,IACAE,EAAOv7B,OAAS+8B,sBAAW,CACvB7+B,YAAa,OACb8+B,8BAA8B,EAC9BC,YAAa,CAACC,cAAWC,GAAID,cAAWE,GAAIF,cAAWG,IACvDlB,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAQ,OAAO,MAKnFu7B,EAAOgD,cACPhD,EAAO6C,cAAe,EACtB7C,EAAOhF,UAAY,YAAc+E,EACjCC,EAAOwC,cAAgB,mBACvBxC,EAAOn6B,QAAU,mBACjBm6B,EAAOe,UAAW,EAClBf,EAAOyC,WAAY,GAGnBzC,EAAOiD,SACPjD,EAAOwC,cAAgB,cACvBxC,EAAOn6B,QAAU,cACjBm6B,EAAOe,UAAW,EAClBf,EAAOkD,WAAY,EACnBlD,EAAOmD,QAAS,EAChBnD,EAAOoD,YAAa,EACY,qBAArBpD,EAAOyC,YAA2BzC,EAAOyC,WAAY,IAGhEzC,EAAOqD,QACPrD,EAAOn6B,SAAWm6B,EAAOn6B,QAAUm6B,EAAOn6B,QAAU,IAAM,IAAM,SAAWm6B,EAAOqD,MAClFrD,EAAOwC,eAAiBxC,EAAOwC,cAAgBxC,EAAOwC,cAAgB,IAAM,IAAM,SAAWxC,EAAOqD,OAGpGrD,EAAO1sC,aACP0sC,EAAOsD,UAAY,CAACziC,EAAUtN,EAAK6tC,KAC/B,IAAImC,EAAYlwC,aAASwN,EAAUm/B,EAAO1sC,WAAW,KAAK,KAAKC,GAC/D,OAAkB,OAAdgwC,IAGAjwB,OAAOyB,YAAW,KAAQjX,GAAGmiB,SAASsjB,EAAU,GAAI,KAC7C,CAAEC,OAAO,EAAOnnB,QAASknB,GACpC,IAIgB,IAApBvD,EAAOe,WACPf,EAAOn6B,SAAWm6B,EAAOn6B,QAAUm6B,EAAOn6B,QAAU,IAAM,IAAM,YAG/Dm6B,EAAOQ,eACRR,EAAOQ,aAAgBC,GACfA,IAGa,IAATA,EACO,IAEA,MAMlBT,EAAOp4B,eAAe,WAAao4B,EAAOyD,eAAiB3D,IACxDE,EAAOyD,cAAcC,gBACrB1D,EAAOv7B,OAASk8B,wBAAa,CACzBC,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,SACbD,QAASs9B,EAAOyD,cAAcC,cAAc/gB,aAAa,QAAQ,EAAO,WAG5Eqd,EAAOyD,cAActyC,SACrB6uC,EAAOv7B,OAASk/B,wBAAa,CACzB/C,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAQ,SAAS,EAC7Eg9B,8BAA8B,EAC9BC,YAAa,CAACC,cAAWC,GAAID,cAAWE,GAAIF,cAAWG,IACvDn/B,YAAa,WAGjBq9B,EAAOyD,cAAc79B,OACrBo6B,EAAOv7B,OAASm/B,sBAAW,CACvBhD,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,WAGjBq9B,EAAOyD,cAAcI,OACrB7D,EAAOv7B,OAASk8B,wBAAa,CACzBC,UAAYn8B,IAAiBq7B,GAAgBA,EAAer7B,EAAO,EACnE9B,YAAa,SACbD,QAAS,CACL,CAAEhS,OAAO,EAAMsR,MAAO,OACtB,CAAEtR,OAAO,EAAOsR,MAAO,WAOlCg+B,EAAO/6B,QAAW+6B,EAAOkB,iBAAsC,IAApBlB,EAAOe,WAAsBf,EAAO8D,iBAChF9D,EAAO/6B,OAAS,CACZ8+B,UAAW/D,EAAO8D,iBAGnB9D,CAAM,G,YC1fN,MAAMgE,WAA2BpwC,YAC5CC,YAAYC,GACRC,MAAMD,GAENE,KAAKoS,QAAUpS,KAAKoS,QAAQtC,KAAK9P,KACrC,CAEAoS,UACIpS,KAAKF,MAAMsS,SACf,CAEA1R,SACI,IAAI,QAAE2vB,EAAO,eAAE4f,EAAc,QAAEzW,GAAYx5B,KAAKF,MAAMowC,kBACtD,OACI5mC,gBAAC0I,KAAK,CAACC,MAAM,EAAOC,OAAQlS,KAAKF,MAAMoS,OAAQC,OAAQnS,KAAKoS,QAAS/Q,UAAW,iBAAiBkI,SAAA,CAC7F3I,eAACsnC,KAAW,CAAC/1B,OAAQnS,KAAKoS,QAAQ7I,SAAEO,GAAGC,EAAE,iCACzCnJ,eAACunC,KAAS,CAAA5+B,SACN3I,eAAA,OAAKS,UAAU,yBAAyB,cAAY,UAASkI,SAEzD8mB,EACK7mB,KAAI4jC,IAAM,IACJA,EACHj7B,OAAQqnB,EAAQ4T,EAAOpG,eAE1Bx9B,KAAI4jC,GAEGxsC,eAAA,UACIgL,KAAK,SAELvK,UAAS,iBAAAK,OAAoB0rC,EAAOj7B,OAAS,SAAW,IACxD,cAAY,SACZ,eAAei7B,EAAOj7B,OAAS,OAAS,QACxC22B,SAAUsE,EAAOgC,WACjB3P,QAAS70B,IACDwiC,EAAOgC,aACXa,EAAe7C,EAAOpG,WACtBp8B,EAAMkC,OAAOE,OACbhN,KAAKF,MAAMmwC,eAAezW,GAAQ,EACpCjwB,SAEA6jC,EAAOx7B,MAZHw7B,EAAOpG,iBAmBrCpmC,eAACgoC,KAAW,CAAAr/B,SACR3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASz/B,KAAKoS,QAAQ7I,SAAEO,GAAGC,EAAE,0BAlCuC,eAsC9G,ECvCW,MAAMomC,WAAoBvwC,YACrCC,YAAYC,GACRC,MAAMD,GACNE,KAAKqwB,QAAU,KACfrwB,KAAKowC,aAAe,GAEpBpwC,KAAKC,MAAQ,CACTowC,YAAY,EACZC,QAAS,KACTlF,qBAAqB,EACrBhB,gBAAgB,EAChBlJ,UAAYlhC,KAAKF,MAAMmhC,cAAuC,IAAxBjhC,KAAKF,MAAMohC,WAGrDlhC,KAAKgqC,SAAWhqC,KAAKgqC,SAASl6B,KAAK9P,MACnCA,KAAK2qC,QAAU3qC,KAAK2qC,QAAQ76B,KAAK9P,MACjCA,KAAKuwC,eAAiB,EAE1B,CAEAzE,eAAer7B,EAAQ7E,GACnB5L,KAAKuwC,eAAevpC,KAAK,CAAEyJ,SAAQ7E,QACvC,CAEA4kC,eACIxwC,KAAKuwC,eAAe37B,SAAQ67B,IACxB,IACQA,EAAUhgC,SACa,SAAnBggC,EAAU7kC,KACV6kC,EAAUhgC,OAAO,CAAEnQ,KAAM,GAAIowC,WAAY/C,cAAWC,KAC3B,WAAnB6C,EAAU7kC,KAChB6kC,EAAUhgC,OAAO,CAAEtT,OAAQ,GAAIuzC,WAAY/C,cAAWC,KAEtD6C,EAAUhgC,OAAO,IAG7B,CAAC,MAAMxK,GACP,IAER,CAEA0qC,aACI,GAAI3wC,KAAKF,MAAMuwB,SAuEX,GAtEArwB,KAAKqwB,QAAUugB,GAAa5wC,KAAKF,MAAMuwB,QAASrwB,KAAK8rC,eAAeh8B,KAAK9P,OAEpEA,KAAKF,MAAM+wC,aACP7wC,KAAKqwB,QAAQxiB,MAAKk5B,GAAOA,EAAIn1B,OAAS9H,GAAGC,EAAE,0BAC5C/J,KAAKqwB,QAAQygB,QAAQ,CACjB9J,UAAWhnC,KAAKF,MAAMmmB,OAAOqF,QAAU,MACvC1Z,KAAM9H,GAAGC,EAAE,uBACX8kC,cAAc,EACdL,cAAe,YACf38B,QAAS,YACTk7B,UAAU,EACV35B,MAAM,EACNq7B,WAAW,EACXxC,UAAWA,CAACQ,EAAMltC,IACFA,EAAIS,KAAKF,MAAMmmB,OAAOqF,SAGtCkhB,aAAcA,CAACC,EAAMltC,IACVA,EAAIS,KAAKF,MAAMmmB,OAAOqF,SAEjC8jB,YAAY,EACZ1C,YAAaA,CAACD,EAAMltC,IACJA,EAAIS,KAAKF,MAAMmmB,OAAOqF,SAGtCihB,UAAWA,CAACE,EAAMltC,IACFA,EAAIS,KAAKF,MAAMmmB,OAAOqF,SAGtC7a,OAAQk/B,wBAAa,CACjBlC,8BAA8B,EAC9BpsC,UAAW,eACXsN,YAAa,QACb++B,YAAa,CAACC,cAAWC,GAAID,cAAWE,GAAIF,cAAWG,QAqClEhkC,GAAGokB,YAAcluB,KAAKF,MAAMixC,cAAiB/wC,KAAKF,MAAMkxC,UAAU,CACnE,IAAIC,EAAW,CAAC,CACZjK,UAAW,YACXp1B,KAAM9H,GAAGC,EAAE,qBACX+kC,iBAAiB,EACjBG,QAAQ,EACRI,MAAO,KACT,CACErI,UAAW,YACXp1B,KAAM9H,GAAGC,EAAE,uBACXg+B,QAAQ,EACRkH,QAAQ,EACRI,MAAO,KACT,CACErI,UAAW,aACXp1B,KAAM9H,GAAGC,EAAE,sBACX+kC,iBAAiB,EACjBG,QAAQ,EACRI,MAAO,KACT,CACErI,UAAW,aACXp1B,KAAM9H,GAAGC,EAAE,wBACXg+B,QAAQ,EACRkH,QAAQ,EACRI,MAAO,MAGXr8B,MAAMV,UAAUtL,KAAKkqC,MAAMlxC,KAAKqwB,QAASugB,GAAaK,EAAUjxC,KAAK8rC,eAAeh8B,KAAK9P,OAC7F,OAEAA,KAAKqwB,QAAU,CACX,CACI2W,UAAW,UACXp1B,KAAM5R,KAAKF,MAAMmmB,OAAOlc,EAAE,SAC1BgjC,UAAU,EACV8B,cAAc,EACdz7B,MAAM,GAItB,CAgBA42B,WACI,IAAIrpC,EAAOX,KACX,KAAIW,EAAKyvC,aAAapxC,QAAU,IAC5BsgB,OAAO6xB,QAAQrnC,GAAGC,EAAE,kCAAmC,CACvD,IAAIib,EAAMrkB,EAAKyvC,aAAa5mC,KAAIN,GAAiBA,EAAKvI,EAAKb,MAAMmmB,OAAOqF,WACxE,GAAI3qB,EAAKb,MAAMkqC,SAAU,CACrB,IAAIt/B,EAAS/J,EAAKb,MAAMkqC,SAAShlB,GACjC,GAAIta,GAAUA,EAAO0mC,OAAO,MAChC,MACIzwC,EAAKb,MAAMmmB,OAAOuH,OAAOxI,EAAIhlB,KAAKF,MAAM4kB,oBAE5C/jB,EAAKyvC,aAAe,GAEhBzvC,EAAKb,MAAMuxC,eACX1wC,EAAKb,MAAMuxC,cAAcrsB,EAEjC,CACJ,CAEA2lB,UACI,IAAIhqC,EAAOX,KACX,GAAIW,EAAKyvC,aAAapxC,OAAS,EAE3B,YADAsgB,OAAOgyB,MAAMxnC,GAAGC,EAAE,oCAItB,GAAIpJ,EAAKyvC,aAAapxC,QAAU,IAAM8K,GAAGsyB,eAErC,YADA9c,OAAOgyB,MAAMxnC,GAAGC,EAAE,oCAItB,IAAI7J,EAAWS,EAAKyvC,aAAa,GAC7Bt+B,EAAK5R,EAAWA,EAASS,EAAKb,MAAMmmB,OAAOqF,SAAW,IAC1D3qB,EAAKQ,SAAS,CAAEmvC,QAASx+B,GAC7B,CAMApR,SACI,IAAIC,EAAOX,KACXA,KAAK2wC,aACL,IAAIv5B,EAAStN,GAAGwpB,kBACZie,IAAgBn6B,KAAUA,EAAOo6B,eACjC3H,EAAuB0H,GAAiBvxC,KAAKF,MAAMmmB,SAAWnc,GAAG+O,UAAY7Y,KAAKF,MAAMmmB,SAAWnc,GAAG2nC,YAKtGC,EAAc,CAAC,EACfC,EAAaA,CAACpyC,EAAKmK,KACnB,IAAImI,EAAU,GAYd,GAXItS,EAAIqU,eAAe,YACA,IAAfrU,EAAImwB,QAAkB7d,EAAQ7K,KAAK,UAEvCzH,EAAIqU,eAAe,eACG,IAAlBrU,EAAIwwB,WAAoBle,EAAQ7K,KAAK,WAEzC8C,GAAGokB,WACCwjB,EAAYnyC,EAAIS,KAAKF,MAAMmmB,OAAOqF,WAClCzZ,EAAQ7K,KAAK,aAGjBhH,KAAKF,MAAM8xC,cAAc,CACzB,IAAIC,EAAgB7xC,KAAKF,MAAM8xC,cAAcryC,EAAKmK,GAClD,MAAO,IAAImI,EAAUggC,GAAiB,IAAK5yB,KAAK,IACpD,CACI,OAAOpN,EAAQoN,KAAK,IACxB,EAQJ,GAJIsyB,GACIvxC,KAAKF,MAAMmmB,OAAOqK,iBAAgBuZ,GAAuB,IAG5D7pC,KAAKF,MAAMuwB,SAAWrwB,KAAKF,MAAMgyC,iBAClC,OAAO,KAGX,IAAIC,EAAiClI,EAErC,OACIjpC,eAACoxC,KAAe,CACZC,SAAUjyC,KAAKF,MAAMmmB,OAAOqF,QAC5B5iB,KAAM1I,KAAKF,MAAM4I,MAAQ,GACzB2nB,QAASrwB,KAAKqwB,QAAQ5f,QAAO28B,IAAWA,EAAO8E,cAC/CC,aAAcnyC,KAAKF,MAAMgyC,iBACzBM,UAAW,CACP7J,SAAUvoC,KAAKF,MAAMmmB,OAAOnY,KAAO,OACnCukC,WAAWryC,KAAKC,MAAMmqC,eACtBkI,qBAAoBtyC,KAAKC,MAAMmqC,gBAEnCxvB,OAAQ,CACJ23B,iBAAiB,GACnBhpC,SACJzJ,GACEwJ,gBAAA,OAAKjI,WAAYrB,KAAKF,MAAMuB,YAAgByI,GAAGokB,YAAcluB,KAAKF,MAAMixC,cAAiB/wC,KAAKF,MAAMkxC,UAAa,4BAA6B,QAAUe,EAAgB,eAAiB,IAAIxoC,SAAA,CACvLvJ,KAAKF,MAAM0yC,YAsDX,KArDF5xC,eAAA,OAAK6+B,QAASA,KAAQz/B,KAAKF,MAAMmhC,YAAcjhC,KAAKmB,SAAS,CAAC+/B,WAAWlhC,KAAKC,MAAMihC,YAAkBlhC,KAAKmB,SAAS,CAAC+/B,WAAU,GAAO,EAAE33B,SACpI3I,eAACggC,GAAS,CAACK,YAAajhC,KAAKF,MAAMmhC,YAAaC,UAAWlhC,KAAKC,MAAMihC,UAAWr3B,MAAO7J,KAAKF,MAAMsjC,WAAapjC,KAAKF,MAAMmmB,OAAOlc,EAAE,SAAU+2B,KAAK,EAAMC,KAAM/gC,KAAKF,MAAM2yC,SAASlpC,SAC9KvJ,KAAKF,MAAMuwB,QACRzvB,eAAC0oC,GAAgB,CACbE,gBAAiBxpC,KAAKF,MAAM0pC,gBAC5B+B,iBAAiBvrC,KAAKF,MAAMyrC,gBAAevrC,KAAKF,MAAMyrC,eACtD5B,YAAe3pC,KAAKF,MAAM6pC,YAC1BjlB,mBAAqB1kB,KAAKF,MAAM4kB,mBAChC2hB,eAAgBrmC,KAAKF,MAAMumC,eAC3BwD,qBAAsBA,EACtB2B,SAAUxrC,KAAKF,MAAM0rC,SACrBnb,QAASrwB,KAAKqwB,QACdpK,OAAQjmB,KAAKF,MAAMmmB,OACnBilB,YAAaprC,EAAMorC,YACnBf,SAAUrqC,EAAMqqC,SAChBF,iBAAkBjqC,KAAKF,MAAMmqC,iBAC7BC,WAAYlqC,KAAKF,MAAMoqC,WACvBU,aAAc5qC,KAAKF,MAAM8qC,aACzBb,WAAY/pC,KAAKF,MAAMiqC,WACvBD,cAAe9pC,KAAKF,MAAMgqC,cAC1BmB,WAAYjrC,KAAKF,MAAMmrC,WACvBP,UAAW1qC,KAAKF,MAAM4qC,UACtBV,SAAUhqC,KAAKgqC,SACfW,QAAS3qC,KAAK2qC,QACdv4B,QAASpS,KAAKF,MAAM4yC,cACpB7H,QAASA,CAACjgC,EAAOu/B,KACb,IAAIwI,EAAmB7oC,GAAGC,EAAE,gCAAgC,EAAO,CAAC/J,KAAKF,MAAMmmB,OAAOlc,EAAE,WACrEuV,OAAOszB,OAAO9oC,GAAGC,EAAE,0BAA0B,EAAO,CAAC4oC,OACnDA,IACbxI,GAAUA,EAAS0I,WACvB7yC,KAAKF,MAAMmmB,OAAOgI,WACtB,EAGJ6kB,kBAAmB9yC,KAAKC,MAAMmrC,oBAC9BD,uBAAwBnrC,KAAKF,MAAMgyC,iBACnCzG,qBAAsBA,KAClBrrC,KAAKmB,SAAS,CAAEiqC,qBAAsBprC,KAAKC,MAAMmrC,qBAAsB,EAG3EhB,eAAgBpqC,KAAKC,MAAMmqC,eAC3BU,mBAAoB9qC,KAAKF,MAAMizC,YAC/BhI,gBAAiBA,KACb/qC,KAAKwwC,eACLxwC,KAAKmB,SAAS,CAAEipC,gBAAiBpqC,KAAKC,MAAMmqC,gBAAiB,EAEjEY,eAAgBA,KACZhrC,KAAKwwC,cAAc,EACrBjnC,SACJvJ,KAAKF,MAAMyJ,WACf,SAITvJ,KAAKF,MAAMkzC,SACRpyC,eAAA,KAAA2I,SAAIvJ,KAAKF,MAAMkzC,WACb,KAMLnJ,EACGjpC,eAAA,OAAKS,UAAU,wBAAuBkI,SACjCO,GAAGC,EAAE,kCAEZ,KAED/J,KAAKF,MAAMgyC,kBAAoBhyC,EAAMowC,kBAAkB1W,QACpD54B,eAACovC,GAAkB,CACf99B,OAAQlS,KAAKC,MAAMmrC,oBACnB6E,eAAgBjwC,KAAKF,MAAMmwC,eAC3B79B,QAASxH,IACL5K,KAAKmB,SAAS,CAAEiqC,qBAAsBprC,KAAKC,MAAMmrC,qBAAsB,EAE3E8E,kBAAmBpwC,EAAMowC,oBAE/B,KAEFtvC,eAAA,OAAM6O,OAAQzP,KAAKF,MAAMmhC,cAAuC,IAAxBjhC,KAAKC,MAAMihC,UAAkB33B,SACrE3I,eAACqyC,sBAAkB,CACrCC,WAAaC,KAAkB,CAC7BC,YAAa,IACbC,KAAMrzC,KAAKC,MAAMowC,YACjBiD,aAAcA,CAACD,EAAMD,KACjBpzC,KAAKmB,SAAS,CAAEkvC,YAAagD,GAAO,EAExCE,aAAYvzC,KAAKF,MAAM4I,MAAS1I,KAAKF,MAAM0zC,YAC3CC,iBAAiB,EACjBC,yBAAyB,EACzBC,wBAAyBA,CAACC,EAAMpU,EAAIp0B,IACzBtB,GAAGC,EAAE,8BAA8B,EAAO,CAAC6pC,EAAMpU,EAAIp0B,MAEhE7B,SAEAd,IAAA,IAAC,gBACCorC,EAAe,qBACfC,GACDrrC,EAAA,OACGa,gBAAAglC,YAAA,CAAA/kC,SAAA,CACA3I,eAAA,OAAKS,UAAU,uCAAsCkI,SACrD3I,eAAA,OAAKS,UAAU,sCAAqCkI,SAAC3I,eAACmzC,6BAAyB,IAExEF,QAEKjzC,eAACozC,KAAc,CACXC,OAAQ,CAAEC,UAAU,GACpBriC,QAAS,sDAAwD7R,KAAKC,MAAMmqC,eAAe,eAAe,IAC1GuH,WAAYA,EACZwC,iBAAkBA,IAAMvzC,eAAC6kC,GAAW,CAAC/8B,KAAM1I,KAAKF,MAAM4I,OACtD0rC,UAAWp0C,KAAKF,MAAMs0C,UACtB3jC,OAAS4jC,OACTjhC,KAAMpT,KAAKF,MAAMw0C,aAAe,KAChCJ,SAAUK,KAAgB,CACtB12C,KAAMgsC,EAAuB,QAAU,QACvC2K,YAAY,EACZC,eAAgBA,CAACC,EAAYC,EAAYp1C,EAAK6tC,EAAQwH,KAClD,IAAIC,EAAWH,GAAc,GACzB7nC,EAAyB,OAAd8nC,EAAqBA,EAAa,GAUjD,GATG9nC,GAAYA,EAAStO,SAAWsO,EAAStO,QAAQ,aAAa,IAC7DsO,EAAWA,EAASpM,QAAQ,WAAW,KAExCoM,GAAYA,EAASpM,UAEpBoM,EAAWA,EAASpM,QAAQ,sBAAuB,IACnDoM,EAAWA,EAASpM,QAAQ,sBAAuB,KAGnDo0C,IAAahoC,EAEb,YADA+nC,GAAK,GAIT,IAAIvuB,EAAUtH,OAAOyI,OAAO,CAAC,EAAGjoB,GAChC8mB,EAAQ+mB,EAAOpG,WAAcn6B,EAAS9P,KAAO8P,EAAS9P,OAAS8P,EAE3DugC,EAAO5F,YAA2B,KAAb36B,IACrBwZ,EAAQ+mB,EAAOpG,WAAa,MAGhC,IAAIrZ,EAAUpuB,EACVoB,EAAKb,MAAMg1C,cAAan0C,EAAKb,MAAMg1C,aAAannB,EAAStH,GAC7DrmB,KAAKF,MAAMmmB,OAAOyH,OAAOC,EAAStH,EAAQ1lB,EAAKb,MAAM4kB,oBAAoBnX,MAAMrE,IACvEvI,EAAKb,MAAMsB,UAAST,EAAKb,MAAMsB,SAAS8H,EAAK,GACnD,OAGL4qC,EAcLiB,UAAW,CACPl3C,KAAM,WACNgU,QAAS,eACTmjC,iBAAiBh1C,KAAKF,MAAMk1C,iBAC5BC,SAAUA,CAAC11C,EAAK21C,EAAUxrC,EAAUzD,KAC5BivC,EACAl1C,KAAKowC,aAAappC,KAAKzH,GAEvBS,KAAKowC,aAAepwC,KAAKowC,aAAa3/B,QAAOvH,GAClCA,EAAKlJ,KAAKF,MAAMmmB,OAAOqF,WAAa/rB,EAAIS,KAAKF,MAAMmmB,OAAOqF,UAEzE,EAEJ6pB,YAAaA,CAACD,EAAUE,EAAMnvC,KAEtBjG,KAAKowC,aADL8E,EACoBE,EAEA,EACxB,GAGRC,cAAeA,CAACzpC,EAAM0pC,KAAPD,KACXv1C,EAAMy1C,cACT,MAIFv1C,KAAKF,MAAM01C,aAMZ,KALE50C,eAAC0qC,WAAQ,CAAC9Y,SAAS,mBAUvC,ECleW,OACQ,SAAUijB,GAE/B,IAGIh3C,GAHW,GAAKg3C,GAAmBh1C,QAAQ,MAAO,IAGlChC,MAAM,2BAG1B,OAAIA,EACK,IAAMA,EAAM,GAAK,KAAOA,EAAM,GAAK,IAAMA,EAAM,GAGjDg3C,CACL,E,8BCVJ,MAAMC,WAAoB/lC,IAAM/P,UACxBC,YAAYC,GACVC,MAAMD,GACNE,KAAKtD,MAAQ,EACnB,CACF2D,WACE,OAAOL,KAAKtD,KACd,CAEAi5C,WAAWvI,EAAQt+B,GACjB,OAAQ9O,KAAK41C,SAAW9mC,GAAOa,IAAMC,WACvC,CAEAlP,SACE,IAAIC,EAAMX,KACV,MAAM,WAAE61C,EAAU,MAAEn5C,EAAK,OAAE0wC,EAAM,SAAE1jC,KAAaosC,GAAS91C,KAAKF,MAC9D,IAAIi2C,EAAiBC,GAAwBt5C,GAC7C,OAAQkE,eAACkQ,KAAK,CAERlF,KAAK,MACLqqC,KAAK,iBACLre,IAAKse,KACLpnC,IAAI,eACAgnC,EACJlpC,aAAcmpC,EACd90C,SAAW2J,IACTjK,EAAKjE,MAAQkO,EAAMkC,OAAOpQ,KAAK,GAR7B,OAYZ,EAGag5C,UC/Bf,MAAMS,WAAkBv2C,YACtBC,YAAYC,GACVC,MAAMD,GAENE,KAAKimB,OAASnc,GAAG4L,UACjB1V,KAAKC,MAAQ,CACXm2C,UAAS,EAEb,CAEAhpC,oBACEpN,KAAKimB,OAAO8G,MAAK,EACnB,CAEArsB,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GA0FX,OAzFIoB,GAAG2pB,UAAU3pB,GAAG4L,aAClBhN,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B/wB,WAAY,CAAElD,KAAWQ,SAASR,KAAW6C,WAC7CwwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,eACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,SAC1B/wB,WAAY,CAAElD,KAAWQ,SAASR,KAAWgC,MAAMhC,KAAW8C,WAC9DuwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,UACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,WAC1B/wB,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1Bof,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,QACXp1B,KAAK,QACLtS,WAAW,CAAClD,KAAWQ,SAASR,KAAWiC,OAC3Cg4C,SAAQ,EACR5G,cAAe,CACb79B,MAAM,GAERq6B,UAAWA,CAACQ,EAAKltC,IACRy2C,GAAwBvJ,GAEjCS,eAAgBA,CAACC,EAAazwC,EAAO6C,EAAK6tC,EAAQ1jC,EAAUqiC,EAAauK,EAAWvpC,IAC3EnM,eAAC80C,GAAW,IAAKvI,EAAazwC,MAAOA,EAAO0wC,OAAQA,EAAQ1jC,SAAUA,KAGjF,CACEs9B,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B/wB,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,QACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,SAC1B/wB,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,MACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,OAC1B/wB,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,SACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,UAC1BqX,UAAU,EACVwH,WAAU,GAEZ,CACElI,UAAW,SACXp1B,KAAK,SACLs9B,WAAU,EACVjD,UAAWA,CAACQ,EAAKltC,IACRqB,eAAA,UAAQS,UAAU,kBAAkBo+B,QAAU70B,IAASd,GAAG+xB,WAAW5Z,EAAOjN,OAAOa,cAAc,CAACgpB,UAAUt/B,EAAIs/B,WAAW,EAAGt1B,SAAC3I,eAAA,KAAGS,UAAU,oBAMzJT,eAAA,OAAoBS,UAAU,uBAAsBkI,SAClD3I,eAACuvC,GAAW,CACVlqB,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAY,EACZt4B,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,KAT1B,WAcb,EAGa+qB,U,qBC7Hf,MAAMI,GAAiBA,CAAC7tC,EAAM8tC,IACJ9tC,EAAKc,KAAI,CAACjK,EAAK4J,KACrC,MAAMstC,EAAU,CAAC,EAQjB,OAPAD,EAAY5hC,SAAQ,CAAC8hC,EAAY3K,UACTxnC,IAAnBhF,EAAIwsC,GACL0K,EAAQC,GAAcn3C,EAAIwsC,GAE1B0K,EAAQC,GAAc,EACxB,IAEKD,CAAO,IAIlB,MAAME,WAAoB/2C,YACxBC,YAAYC,GACVC,MAAMD,GAAO,KAiCf82C,sBAAwBhsC,IACtB,MAAMisC,EAAOjsC,EAAMkC,OAAO3B,MAAM,GAGhC,IAF0B,YAEH1N,KAAKo5C,EAAK/oC,MAE/B,YADAwjC,MAAM,6BAGR,MAAMwF,EAAelsC,EAAMkC,OAAO3B,MAAM,GAClChB,EAAS,IAAIC,WACbzJ,EAAOX,KACbmK,EAAOK,OAAS,SAAUvE,GACxB,MAAM8wC,EAAY9wC,EAAE6G,OAAOpC,OAC3B/J,EAAKq2C,SAASD,EAChB,EAEA5sC,EAAOkB,WAAWyrC,EAAa,EAChC,KA4BDG,kBAAqBv6C,IACnBsD,KAAKmB,SAAS,CAAEqoC,gBAAiB9sC,GAAQ,EA9EzCsD,KAAKimB,OAASnc,GAAG6L,YACjB3V,KAAKC,MAAQ,CACXm2C,UAAS,EACTha,aAAatyB,GAAGsyB,eAChBH,eAAenyB,GAAGgyB,oBAClBpX,mBAAmB,CAACma,UAAU/0B,GAAGgyB,oBAAoB+C,WACrDqY,iBAAiB,KACjB1N,gBAAgB,MAElBxpC,KAAKm3C,gBAAkBxnC,IAAMC,YAE7B5P,KAAKo3C,WAAap3C,KAAKo3C,WAAWtnC,KAAK9P,MACvCA,KAAKg3C,SAAWh3C,KAAKg3C,SAASlnC,KAAK9P,MACnCA,KAAKi3C,kBAAoBj3C,KAAKi3C,kBAAkBnnC,KAAK9P,MACrDA,KAAKq3C,mBAAqBr3C,KAAKq3C,mBAAmBvnC,KAAK9P,MACvDA,KAAKs3C,eAAiBt3C,KAAKs3C,eAAexnC,KAAK9P,KACjD,CACA,uBAAMoN,SACEtD,GAAGgM,UAAU4N,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,SAC9D1kB,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,EAErE,CACA6yB,oBACEv3C,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,EAC/D,CACA8yB,QAAQC,GACNz3C,KAAKF,MAAMwxB,QAAQtqB,KAAKib,EAAOvD,QAAQuD,EAAOjN,OAAOkB,UAAU,CAACuhC,iBAClE,CACAL,WAAWF,GACTl3C,KAAKmB,SAAS,CAAC+1C,qBACfl3C,KAAKm3C,gBAAgB9mC,QAAQsuB,OAC/B,CAmBA,wBAAM0Y,CAAmBK,GACvB,MAAM,iBAACR,GAAoBl3C,KAAKC,MAChC,IAAI03C,EAAU,CACZC,eAAgBV,EAAiBppC,KACjC+pC,QAASX,EAAiBxT,WAC1BgU,UAAWA,EACXD,aAAcP,EAAiBO,oBAE3Bz3C,KAAKimB,OAAOuK,WAAWmnB,EAAQ,KAAK33C,KAAKimB,OAAOiG,cAAcR,cAAe,CAAC,GAAE,GACtF1rB,KAAKu3C,mBACP,CACAP,SAASD,GAEPe,KAAK5uB,MAAM6tB,EAAW,CAAEgB,QAAQ,EAE9BC,SAAWvR,IACT,IAAIwR,EAAa,CAAEvvC,KAAM,IACrB+9B,GAAWA,EAAQ/9B,MAAQ+9B,EAAQ/9B,KAAK1J,OAAS,IACnDi5C,EAAWvvC,KAAO+9B,EAAQ/9B,KAAKlB,MAAM,GAAGiJ,QAAOlR,GACtCA,EAAIE,MAAKgtC,GAAwB,KAAhBA,EAAK1vC,YAGjC,MAAMm7C,EAAkB3B,GAAe0B,EAAWvvC,KAAM,CAAC,QAAQ,YAAY,aAC7E1I,KAAKq3C,mBAAmBa,EAAgB,GAG9C,CAIA,gBAAMC,CAAWtB,GACf,IAAIA,EAAM,OAAO,KAGjB,MAF0B,YAEHp5C,KAAKo5C,EAAK/oC,MAI1B,IAAIzD,SAAQ,CAACC,EAASC,KAC3B,MAAMusC,EAAeD,EACf1sC,EAAS,IAAIC,WACnBD,EAAOK,OAASsB,eAAgB7F,GAC9B,MAAM8wC,EAAY9wC,EAAE6G,OAAOpC,aACrBotC,KAAK5uB,MAAM6tB,EAAW,CAC1BgB,QAAQ,EACRC,SAAUlsC,UACR,IAAImsC,EAAa,CAAEvvC,KAAM,IACrB+9B,GAAWA,EAAQ/9B,MAAQ+9B,EAAQ/9B,KAAK1J,OAAS,IACnDi5C,EAAWvvC,KAAO+9B,EAAQ/9B,KAAKlB,MAAM,GAAGiJ,QAAOlR,GACtCA,EAAIE,MAAKgtC,GAAwB,KAAhBA,EAAK1vC,YAGjC,MAAMm7C,EAAkB3B,GAAe0B,EAAWvvC,KAAM,CAAC,QAAQ,YAAY,aAC7E4B,EAAS4tC,EAAgB,GAG/B,EAEA/tC,EAAOkB,WAAWyrC,EAAa,KAvB/BxF,MAAM,8BACC,EAwBX,CACA,oBAAMgG,CAAec,GACnB,MAAMC,QAAiBr4C,KAAKm4C,WAAWC,EAAOE,qBAE9C,IAAc,IAAXD,EAAiB,CAClB,MAAMj2B,EAAO,CACXw1B,eAAgBQ,EAAOtqC,KACvB+pC,QAASO,EAAO1U,WAChBgU,UAAUW,SAENr4C,KAAKimB,OAAOsK,YAAYnO,EAAK,KAAKpiB,KAAKimB,OAAOiG,cAAcR,cAAe,CAAC,GAAE,GACpF1rB,KAAKu3C,oBACLv3C,KAAKi3C,mBAAkB,GACvB,MAAMt2C,EAAOX,KACb+gB,YAAW,KACTpgB,EAAKs2C,kBAAkB,KAAK,GAC3B,IACL,CACF,CACAsB,gBACE,OAAO33C,eAAA,KAAGqpB,KAAK,2FAA2Fnd,OAAO,SAAS0rC,IAAI,aAAYjvC,SAAC,yBAC7I,CACA7I,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GACP/H,EAAKX,KA0DT,OAzDI8J,GAAG2pB,UAAU3pB,GAAG6L,YAAY7L,GAAGgM,aACjCpN,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,aACXp1B,KAAM,QAENtS,WAAY,CAAElD,KAAWQ,UACzB2qC,WAAWz9B,GAAGgM,UACdo5B,WAAU,GAEZ,CACElI,UAAW,OACXp1B,KAAM,OACNtS,WAAY,CAAElD,KAAWQ,SAASR,KAAW6C,WAC7CwwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,sBACXp1B,KAAM,6BACNsgC,aAAY,EAEZuG,QAAO,EACPF,cAAcv4C,KAAKu4C,iBAErB,CACEvR,UAAW,gBACXp1B,KAAM,QACNm7B,UAAS,EACTmC,WAAU,GAQZ,CACElI,UAAW,QACXp1B,KAAK,QACLs9B,WAAU,EACVnC,UAAS,EACTd,UAAWA,CAACQ,EAAKltC,IAEf+J,gBAAAglC,YAAA,CAAA/kC,SAAA,CACA3I,eAAA,UAAQS,UAAU,kBAAkBwI,MAAM,sBAAsB41B,QAAU70B,IAASjK,EAAK62C,QAAQj4C,EAAIk4C,aAAa,EAAGluC,SAAC3I,eAAA,KAAGS,UAAU,mBAElIT,eAAA,UAAQS,UAAU,kBAAkBwI,MAAM,6BAA6B41B,QAAU70B,IAASjK,EAAKy2C,WAAW73C,EAAI,EAAGgK,SAAC3I,eAAA,KAAGS,UAAU,0BASrIiI,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAACuvC,GAAW,CACZ3G,gBAAiBxpC,KAAKC,MAAMupC,gBAC5BgC,SAAW9iC,IAGT1I,KAAKs3C,eAAe5uC,EAAK,EAIzB06B,UAAS,UAAA1hC,OAAa1B,KAAKC,MAAMg8B,eAAe0E,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAMg8B,eAAe0E,YAAW,KAAI,IACrI1a,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAY,EACZt4B,QAASA,KAEPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,IAGjCxqB,eAAA,SACAgL,KAAK,OACLkD,IAAK9O,KAAKm3C,gBACVl2C,SAAUjB,KAAK42C,sBACfnlC,MAAO,CAACinC,QAAS,YA1BV,WA8Bb,EAGa/B,U,oBCpPf,MAAMgC,WAAmB/4C,YACvBC,YAAYC,GACVC,MAAMD,GAENE,KAAKimB,OAASnmB,EAAMqa,WACpBna,KAAKC,MAAQ,CACXykB,mBAAmB,CAACma,UAAU/+B,EAAM2Z,QAAQolB,WAC5CzC,aAAatyB,GAAGsyB,eAChBuE,YAAY7gC,EAAM2Z,QAAQknB,YAE9B,CAEAiY,gBAAgBlV,GACdn3B,QAAQC,IAAIyV,EAAOvD,QAAQuD,EAAOjN,OAAOmB,cAAc,CAACutB,gBACxD1jC,KAAKF,MAAMwxB,QAAQtqB,KAAKib,EAAOvD,QAAQuD,EAAOjN,OAAOmB,cAAc,CAACutB,eAEtE,CAEAhjC,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GACP/H,EAAOX,KACP8J,GAAG2pB,UAAUzzB,KAAKimB,UACpBvd,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B/wB,WAAY,CAAElD,KAAWQ,SAASR,KAAW6C,WAC7CwwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1B6e,WAAU,EACVjD,UAAWA,CAACQ,EAAKltC,IAEfqB,eAAA0tC,YAAA,CAAA/kC,SACA3I,eAAA,UAAQS,UAAU,kBAAkBo+B,QAAU70B,IAASjK,EAAKi4C,gBAAgBr5C,EAAIs5C,YAAY,EAAGtvC,SAAC3I,eAAA,KAAGS,UAAU,sBAOrH,MAAMD,EAAU03C,IAEd,MAAMC,EAAQD,EAASv5C,IACvBw5C,EAAOD,EAAS9R,WAAW8R,EAASp8C,MAEpCsD,KAAKimB,OAAOyH,OAAOorB,EAASv5C,IAAKw5C,EAAO,CAACla,UAAUia,EAASv5C,IAAIs/B,YAAYtxB,MAAMyrC,OAClF,EAEIC,EAAiBA,CAACC,EAAS35C,KAC5B25C,EAAQxR,UAAawR,EAAQjN,WAAciN,EAAQjoC,OAG7CrQ,eAAA,SAAOS,UAAU,eAAe9B,IAAKA,EAAKynC,UAAWkS,EAAQlS,UAAWj6B,OAASnC,GAAQxJ,EAAS,CAAC7B,IAAIA,EAAIynC,UAAUkS,EAAQlS,UAAUtqC,MAAMkO,EAAMkC,OAAOpQ,QAASkQ,aAAcrN,EAAI25C,EAAQlS,aAF7LpmC,eAAC6qC,GAAe,CAAClsC,IAAKA,EAAKynC,UAAWkS,EAAQlS,UAAW5lC,SAAUA,EAAUwL,aAAsC,MAAxBrN,EAAI25C,EAAQlS,WAAiBznC,EAAI25C,EAAQlS,WAAW,QAAStqC,MAAO6C,EAAI25C,EAAQlS,aAKhLoN,EAAY,CAChB+E,SAAU55C,IACR,MACMmB,EADoB2vB,EAAQ5f,QAAO28B,IAA+B,IAApBA,EAAOgM,aAC1B5vC,KAAI,CAAC0vC,EAAQ/vC,IAExCG,gBAAA,OAAK+vC,MAAM,iCAAgC9vC,SAAA,CACzC3I,eAAA,OAAKy4C,MAAM,QAAO9vC,SAClB3I,eAAA,SAAOy4C,MAAM,GAAE9vC,SAAE2vC,EAAQtnC,SAEzBhR,eAAA,OAAKy4C,MAAM,QAAO9vC,SACf0vC,EAAeC,EAAS35C,OALoB4J,KAWvD,OAAOvI,eAAA,OAAKS,UAAU,cAAakI,SAAE7I,GAAa,EAEpD44C,kBAAkB,EAClBC,SAAUA,CAACh6C,EAAKi6C,EAAU9vC,EAAUzD,KAA1BszC,EAMVE,2BAA4BhxC,IAAuB,IAAtB,aAAEixC,GAAcjxC,EAC3C,OAAIixC,EACK94C,eAAA,KAAGy4C,MAAM,cAAc,cAAY,SAErCz4C,eAAA,KAAGy4C,MAAM,aAAa,cAAY,QAAW,EAEtDM,qBAAsB1Z,IAAmB,IAAlB,SAAE2Z,GAAU3Z,EACjC,OAAI2Z,EAEAh5C,eAAA,KAAGy4C,MAAM,cAAc,cAAY,SAIrCz4C,eAAA,KAAGy4C,MAAM,qCAAwC,GAIvD,OACIz4C,eAACuvC,GAAW,CACViE,UAAWA,EACXhR,UAAS,eAAA1hC,OAAkB1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IAC5G1a,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACTkb,eAAgB,CAACvrC,KAAKC,MAAMykB,oBAC5BrjB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAY,EACZhmB,mBAAoB1kB,KAAKC,MAAMykB,mBAC/B8mB,SAAW9iC,IACF,EAET0J,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,GAIvC,EAGautB,UCtIA,OAA0B,gDCWzC,MAAMkB,WAAkBj6C,YACtBC,YAAYC,GACVC,MAAMD,GAAO,KA8Cfg6C,aAAgBC,IACd/5C,KAAKmB,SAAS,CAAE44C,UAAS,EA7CzB/5C,KAAKimB,OAASnc,GAAGgM,UACjB9V,KAAKg6C,iBAAmBlwC,GAAGqQ,WAE3B,IAAIV,EAAU3P,GAAGgyB,oBAEjB97B,KAAKC,MAAQ,CACXg6C,UAAS,EACTxgC,UACAiL,mBAAmB,CAACma,UAAUplB,EAAQolB,WACtCzC,aAAatyB,GAAGsyB,eAChBuE,YAAY,KACZoZ,OAAO,cAGT/5C,KAAKg6C,iBAAiBt2B,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GACvE1kB,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAC7D1kB,KAAKk6C,cAAgB,CACnB,KAAO,KACP,EAAK,eACL,EAAK,eACL,EAAK,eAET,CACA,uBAAM9sC,GAEJ,MAAMyxB,EAAY/0B,GAAGgyB,oBAAoB+C,UACzC7+B,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,cAClD,MAAMjc,EAAqB,CAAC5S,GAAI+sB,SAC1B/0B,GAAG+L,cAAckO,iBAAiBW,GAAoBnX,MAAM7E,QAIlE,MAAMmN,EAAgB/L,GAAG+L,cAAcuV,MAEN,IAA9BvV,EAAcskC,gBAA8C,IAAzBtkC,EAAcukC,UAClDp6C,KAAKmB,SAAS,CAAC84C,UAAS,GAG5B,CACAI,WAAW3W,EAAY4W,GACrBt6C,KAAKF,MAAMwxB,QAAQtqB,KAAKib,EAAOvD,QAAQuD,EAAOjN,OAAOslC,GAAQ,CAAC5W,eAEhE,CAKAhjC,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GACP/H,EAAOX,KACP8J,GAAG2pB,UAAUzzB,KAAKimB,OAAQjmB,KAAKg6C,oBACjCtxC,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B/wB,WAAY,CAAElD,KAAWQ,SAASR,KAAW6C,WAC7CwwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,aACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,cAC1B0d,YAAY,EAGZxsC,UAAS,GAKX,CACEylC,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1B6hB,aAAY,EACZ5yC,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1B6hB,aAAY,EACZzC,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B6hB,aAAY,EACZ5yC,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,QACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,SAC1B6hB,aAAY,EACZ5yC,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,MACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,OAC1B6hB,aAAY,EACZ5yC,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,QACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,SAC1B6hB,aAAY,EACZ5yC,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,mBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,oBAC1B6hB,aAAY,EACZxK,UAAU,EACV+H,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,qBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,sBAC1B6hB,aAAY,EACZxK,UAAU,EACV+H,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,oBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,qBAC1B6hB,aAAY,EACZxK,UAAU,EACV+H,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,sBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,uBAC1B6hB,aAAY,EACZxK,UAAU,EACV+H,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,sBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,uBAC1B6hB,aAAY,EACZxK,UAAU,EACV+H,cAAe,CACb79B,MAAM,GAERwnC,YAAW,GAEb,CACEpS,UAAW,uBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,wBAC1Bof,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,SACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,UAC1BqX,UAAU,EACVwH,WAAU,GAEZ,CACElI,UAAW,cACXp1B,KAAM5R,KAAKg6C,iBAAiBjwC,EAAE,SAC9Bw9B,WAAYvnC,KAAKg6C,iBACjBvK,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,gBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,iBAC1Bpf,OAAO,CACLrF,KAAM,SACN8C,QAAS,CACP,CAAChS,MAAM,IAAKsR,MAAO,gBACnB,CAACtR,MAAM,IAAIsR,MAAM,gBACjB,CAACtR,MAAM,IAAIsR,MAAM,kBAErB1O,WAAY,CAAElD,KAAWQ,UACzBqvC,UAAWA,CAACQ,EAAMltC,IACR+J,gBAAA,OAAAC,SAAA,CAAK,IAAEvJ,KAAKk6C,cAAc36C,EAAI26C,kBAExCzK,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,YACXp1B,KAAK,YACLs9B,WAAU,EACVjD,UAAWA,CAACQ,EAAKltC,IAEfqB,eAAA0tC,YAAA,CAAA/kC,SACA3I,eAAA,UAAQS,UAAU,kBAAkBo+B,QAAU70B,IAASjK,EAAK05C,WAAW96C,EAAImkC,WAAW,YAAY,EAAGn6B,SAAC3I,eAAA,KAAGS,UAAU,sBAKvH,CACE2lC,UAAW,YACXp1B,KAAK,YACLs9B,WAAU,EACVjD,UAAWA,CAACQ,EAAKltC,IAEfqB,eAAA0tC,YAAA,CAAA/kC,SACA3I,eAAA,OAAKk3B,IAAK/hB,GAAUsmB,KAAK,SAASiC,IAAI,WAAWiD,OAAQ,GAAI8N,MAAO,GAAI5P,QAAU70B,IAASjK,EAAK05C,WAAW96C,EAAImkC,WAAW,WAAW,QAOxI1jC,KAAKC,MAAMg6C,WACZ5pB,EAAQkqB,OAAO,EAAG,EAAG,CACnBvT,UAAW,YACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,aAC1Bof,cAAe,CACb79B,MAAM,GAERsgC,aAAY,EACZkH,YAAW,IAEb/oB,EAAQkqB,OAAO,EAAG,EAAG,CACnBvT,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1Bof,cAAe,CACb79B,MAAM,GAERsgC,aAAY,EACZkH,YAAW,IAEb/oB,EAAQkqB,OAAO,EAAG,EAAG,CACnBvT,UAAW,UACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,WAC1Bof,cAAe,CACb79B,MAAM,GAERsgC,aAAY,EACZkH,YAAW,IAEb/oB,EAAQkqB,OAAO,EAAG,EAAG,CACnBvT,UAAW,UACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,WAC1Bof,cAAe,CACb79B,MAAM,GAERsgC,aAAY,EACZkH,YAAW,MAIjB,MAAMh4C,EAAU03C,IAEd,MAAMC,EAAQD,EAASv5C,IACvBw5C,EAAOD,EAAS9R,WAAW8R,EAASp8C,MAEpCsD,KAAKimB,OAAOyH,OAAOorB,EAASv5C,IAAKw5C,EAAO,CAACla,UAAUia,EAASv5C,IAAIs/B,YAAYtxB,MAAMyrC,OAClF,EAEIC,EAAiBA,CAACC,EAAS35C,KAC5B25C,EAAQxR,UAAawR,EAAQjN,WAAciN,EAAQjoC,OAG7CrQ,eAAA,SAAOS,UAAU,eAAe9B,IAAKA,EAAKynC,UAAWkS,EAAQlS,UAAWj6B,OAASnC,GAAQxJ,EAAS,CAAC7B,IAAIA,EAAIynC,UAAUkS,EAAQlS,UAAUtqC,MAAMkO,EAAMkC,OAAOpQ,QAASkQ,aAAcrN,EAAI25C,EAAQlS,aAF7LpmC,eAAC6qC,GAAe,CAAClsC,IAAKA,EAAKynC,UAAWkS,EAAQlS,UAAW5lC,SAAUA,EAAUwL,aAAsC,MAAxBrN,EAAI25C,EAAQlS,WAAiBznC,EAAI25C,EAAQlS,WAAW,QAAStqC,MAAO6C,EAAI25C,EAAQlS,aAKhLoN,EAAY,CAChB+E,SAAU55C,IACR,MACMmB,EADoB2vB,EAAQ5f,QAAO28B,IAA+B,IAApBA,EAAOgM,aAC1B5vC,KAAI,CAAC0vC,EAAQ/vC,IAIxCG,gBAAA,OAAKjI,UAAU,iCAAgCkI,SAAA,CAC7C3I,eAAA,OAAKS,UAAU,QAAOkI,SACtB3I,eAAA,SAAOS,UAAU,GAAEkI,SAAE2vC,EAAQtnC,SAE7BhR,eAAA,OAAKS,UAAU,QAAOkI,SACnB0vC,EAAeC,EAAS35C,OALwB4J,KAY3D,OAAOvI,eAAA,OAAKS,UAAU,cAAakI,SAAE7I,GAAa,EAUpD44C,kBAAkB,EAClBC,SAAUA,CAACh6C,EAAKi6C,EAAU9vC,EAAUzD,KAA1BszC,EAMVE,2BAA4BhxC,IAAuB,IAAtB,aAAEixC,GAAcjxC,EAC3C,OAAIixC,EACK94C,eAAA,KAAGS,UAAU,cAAc,cAAY,SAEzCT,eAAA,KAAGS,UAAU,aAAa,cAAY,QAAW,EAE1Ds4C,qBAAsB1Z,IAAmB,IAAlB,SAAE2Z,GAAU3Z,EACjC,OAAI2Z,EAEAh5C,eAAA,KAAGS,UAAU,cAAc,cAAY,SAIzCT,eAAA,KAAGS,UAAU,qCAAwC,GAK3D,OACEiI,gBAAAglC,YAAA,CAAA/kC,SAAA,CACED,gBAACkxC,KAAI,CACHC,UAAWz6C,KAAKC,MAAM85C,OACtB9E,SAAUj1C,KAAK85C,aAAavwC,SAAA,CAE1B3I,eAAC85C,KAAG,CACFC,SAAS,aACT9wC,MAAM,WACRjJ,eAAC85C,KAAG,CAACC,SAAS,aAAa9wC,MAAM,mBAEvCjJ,eAAA,OAAoBS,UAAU,uBAAsBkI,SAC3B,eAAtBvJ,KAAKC,MAAM85C,OACVn5C,eAACuvC,GAAW,CACViE,UAAWA,EACXhR,UAAS,UAAA1hC,OAAa1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IACvG1a,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAY,EACZhmB,mBAAoB1kB,KAAKC,MAAMykB,mBAC/BtS,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,IAG/BxqB,eAAC+3C,GAAU,CAACoB,OAAQ/5C,KAAKC,MAAM85C,OAAQtgC,QAASzZ,KAAKC,MAAMwZ,WAAazZ,KAAKF,MAAOqa,WAAYna,KAAKg6C,oBAhBlG,cAoBb,EAGaH,UC7Yf,MAAMe,WAAkBh7C,YACtBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGmM,UACjB,IAAI6D,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAC5DyH,EAAa1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,WACzC1jC,KAAKC,MAAQ,CACXykB,mBAAoB,CAAEma,UAAWplB,EAAQolB,UAAW6E,cACpDA,WAAYA,EACZmX,gBAAiB76C,KAAK86C,oBACtBC,oBAAqB/6C,KAAKg7C,wBAC1BC,YAAYj7C,KAAKk7C,iBACjB37B,SAAS,CAAC,EACV6c,aAAatyB,GAAGsyB,gBAElBp8B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,mBAC5C,CAEAtX,oBACEpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,cAClD3gC,KAAKm7C,aACP,CAEAA,cACE,IAAI57B,EAAW/iB,IAAEu/B,UAAUjyB,GAAGgM,UAAUsV,MAAM,CAACsY,WAAWj9B,SAASzG,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,cAC3F,GAAInkB,EAUFvf,KAAKmB,SAAS,CAACoe,iBATjB,CACE,IAAIzF,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAChEnyB,GAAGgM,UAAU4N,mBAAmB,CAACmb,UAAUplB,EAAQolB,YAAYtxB,MAAK,KAClE,IAAIgS,EAAW/iB,IAAEu/B,UAAUjyB,GAAGgM,UAAUsV,MAAM,CAACsY,WAAWj9B,SAASzG,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,cAC3F1jC,KAAKmB,SAAS,CAACoe,SAASA,GAAU,GAEtC,CAKF,CACA27B,iBACE,MAAO,CACL,CAAEltC,MAAO,SAAUtR,MAAO,GAC1B,CAAEsR,MAAO,UAAWtR,MAAO,GAC3B,CAAEsR,MAAO,YAAatR,MAAM,GAC5B,CAAEsR,MAAO,WAAYtR,MAAO,GAC5B,CAAEsR,MAAO,SAAUtR,MAAO,GAC1B,CAAEsR,MAAO,WAAYtR,MAAO,GAC5B,CAAEsR,MAAO,SAAUtR,MAAO,GAE9B,CAEAo+C,oBACE,MAAO,CACL,CAAE9sC,MAAO,GAAItR,MAAO,MACpB,CAAEsR,MAAO,GAAItR,MAAO,MACpB,CAAEsR,MAAO,GAAItR,MAAO,MACpB,CAAEsR,MAAO,GAAItR,MAAO,MACpB,CAAEsR,MAAO,GAAItR,MAAO,MAExB,CAEAs+C,wBACE,MAAO,CACL,CAAEhtC,MAAO,EAAGtR,MAAO,KACnB,CAAEsR,MAAO,EAAGtR,MAAO,KACnB,CAAEsR,MAAO,EAAGtR,MAAO,KACnB,CAAEsR,MAAO,EAAGtR,MAAO,KAEvB,CAEA0+C,WACE,MAAM,iBAAN15C,OAAwB1B,KAAKC,MAAMsf,SAASzR,KAC9C,CAEApN,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GAkDX,OAjDgBoB,GAAG2pB,UAAUzzB,KAAKimB,OAAOnc,GAAGgM,aAE1CpN,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,gBACXp1B,KAAM,kBACNtS,WAAY,CAAClD,KAAWQ,UACxBmxC,YAAY,GAKd,CACE/G,UAAW,cACXp1B,KAAM,gBACNtS,WAAY,CAAClD,KAAWQ,UACxBmxC,YAAY,GAEd,CACE/G,UAAW,WACXp1B,KAAM,WACNtS,WAAY,CAAClD,KAAWQ,UACxBqU,OAAQ,CACNrF,KAAMsgC,QAAKC,OACXz9B,QAAS1O,KAAKC,MAAM46C,iBAEtBpL,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,eACXp1B,KAAM,gBACNtS,WAAY,CAAClD,KAAWQ,UACxBqU,OAAQ,CACNrF,KAAMsgC,QAAKC,OACXz9B,QAAS1O,KAAKC,MAAM86C,sBAGxB,CACE/T,UAAW,OACXp1B,KAAM,OACNtS,WAAY,CAAClD,KAAWQ,UACxBqwC,YAAY,EACZv+B,QAAS1O,KAAKC,MAAMg7C,eAKxBr6C,eAAA,OAAoBS,UAAU,uBAAsBkI,SAClD3I,eAACuvC,GAAW,CACVlqB,OAAQjmB,KAAKimB,OACbmd,UAAS,GAAA1hC,OAAK1B,KAAKo7C,WAAU,KAAA15C,OAAK1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IACnHj4B,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAW,EACXhmB,mBAAoB1kB,KAAKC,MAAMykB,mBAC/BtS,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,KAX1B,WAgBb,EAGawvB,U,UClJf,MAAMS,GAAa,CACfC,SAAS,EACT32C,IAAI,GACJqJ,MAAM,GACNtR,MAAM,GACN6+C,WAAW,GACXj8C,YAAW,EACX2mB,OAAO,KACPu1B,MAAM,GACNj8C,KAAI,GAEO,MAAMk8C,WAAqB77C,YACtCC,YAAYC,GACRC,MAAMD,GAENE,KAAKC,MAAQo7C,GACbr7C,KAAK07C,aAAe17C,KAAK07C,aAAa5rC,KAAK9P,MAC3CA,KAAK27C,UAAY37C,KAAK27C,UAAU7rC,KAAK9P,MACrCA,KAAK47C,UAAY57C,KAAK47C,UAAU9rC,KAAK9P,MACrCA,KAAK67C,SAAW77C,KAAK67C,SAAS/rC,KAAK9P,MACnCA,KAAK87C,aAAe97C,KAAK87C,aAAahsC,KAAK9P,MAC3CA,KAAKs9B,MAAQt9B,KAAKs9B,MAAMxtB,KAAK9P,KACjC,CACAs9B,QACIt9B,KAAKmB,SAASk6C,GAClB,CACAU,YACI/7C,KAAKF,MAAMk8C,QACXh8C,KAAKs9B,OACT,CACAue,SAASn/C,EAAO0wC,GAEZ,IAAIjgC,EAAezQ,EACnB,GAAIsD,KAAKC,MAAMX,WAAY,CACzB,IAAIiwC,EAAYlwC,aACd8N,EACAnN,KAAKC,MAAMX,WACXU,KAAKC,MAAMknC,qBAAuBnnC,KAAKC,MAAMknC,uBAAyB,KACtE,YAGgB,OAAdoI,EACFvvC,KAAKmB,SAAS,CAAEo6C,WAAYhM,IAE5BvvC,KAAKmB,SAAS,CAAEo6C,WAAY,IAEhC,CACF,CACFO,eACI,GAA2B,KAAxB97C,KAAKC,MAAMs7C,WAAgB,CAC1B,MAAM5D,EAAU33C,KAAKC,MAAMV,IAC3Bo4C,EAAQ33C,KAAKC,MAAM0E,KAAK3E,KAAKC,MAAMvD,MACnCsD,KAAKC,MAAMgmB,OAAOuK,WAAWmnB,EAAQ,KAAK33C,KAAKC,MAAMgmB,OAAOnB,QAAS,CAAC,GAAE,GACxE9kB,KAAKF,MAAMk8C,OACf,CACJ,CACAL,YACI,GAA6B,IAAzB37C,KAAKC,MAAMs7C,WACX,OAAO36C,eAAA,OAAKS,UAAU,MAAKkI,SACvB3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,qBAAqBg7B,KAAK,QAAO9yB,SAC3CvJ,KAAKC,MAAMs7C,gBAKhC,CACAK,UAAUK,GACNj8C,KAAKmB,SAAS,CACVwD,IAAIs3C,EAAKt3C,IACTqJ,MAAMiuC,EAAKjuC,MACXtR,MAAMu/C,EAAKv/C,MACX4C,WAAW28C,EAAK38C,WAChB2mB,OAAOg2B,EAAKh2B,OACZ1mB,IAAI08C,EAAK18C,KAEjB,CAGAm8C,aAAah/C,GACTsD,KAAKmB,SAAS,CAAEzE,MAAMA,IACtBsD,KAAK67C,SAASn/C,EAAOsD,KAAKC,MAAM0E,IACpC,CAEAjE,SACI,OAAO4I,gBAACyI,KAAU,CAACG,OAAQlS,KAAKF,MAAMoS,OAAQ7Q,UAAW,aAAc8Q,OAASvH,IAAY5K,KAAKF,MAAMk8C,OAAO,EAAGzyC,SAAA,CACjHD,gBAAC4+B,KAAW,CAAA3+B,SAAA,CAAC,UAAQvJ,KAAKC,MAAM+N,SAChC1E,gBAAC6+B,KAAS,CAAA5+B,SAAA,CACTvJ,KAAK27C,YACN/6C,eAAA,OAAKS,UAAU,GAAEkI,SACjB3I,eAAA,OAAKS,UAAU,MAAKkI,SACpBD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CACxB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAEvJ,KAAKC,MAAM+N,QAC1C,gBAAnBhO,KAAKC,MAAM0E,IACR/D,eAACmQ,KAAa,CAAC9P,SAAWvE,IAAYsD,KAAK07C,aAAah/C,EAAM,EAAIA,MAAOsD,KAAKC,MAAMvD,QAEpFkE,eAAA,YAAU+N,YAAa3O,KAAKC,MAAM+N,MAAOkuC,WAAS,EAAC76C,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMvD,MAAOuE,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAMkC,OAAOpQ,MAAM,cAMhN4M,gBAACs/B,KAAW,CAAAr/B,SAAA,CACR3I,eAACioC,KAAM,CAACzV,MAAM,QAAQ/xB,UAAU,UAAUo+B,QAASA,IAAIz/B,KAAK87C,eAAevyC,SAAC,SAC5E3I,eAACioC,KAAM,CAACxnC,UAAU,YAAYo+B,QAASA,IAAIz/B,KAAK+7C,YAAYxyC,SACvDO,GAAGC,EAAE,2BAIlB,EC/GJ,MAAMoyC,WAAsBv8C,YAC1BC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnmB,EAAMs8C,mBACpBp8C,KAAKC,MAAQ,CACXo8C,YAAW,EACX33B,mBAAmB,CAACgf,WAAW5jC,EAAMw8C,cAAc5Y,YACnDtH,aAAatyB,GAAGsyB,eAChBuH,aAAa7jC,EAAMw8C,cAAcxuC,MAEnC9N,KAAKu8C,SAAWv8C,KAAKu8C,SAASzsC,KAAK9P,MACnCA,KAAKw8C,SAAW7sC,IAAMC,YACtB5P,KAAKy8C,YAAc,CACjB,KAAO,KACP,EAAK,YACL,EAAI,mBACJ,EAAI,qBACJ,EAAI,uBACJ,EAAI,wBAER,CAEAF,SAASnP,EAAO7tC,EAAID,EAAY2mB,GAC9BjmB,KAAKw8C,SAASnsC,QAAQurC,UAAU,CAC9Bj3C,IAAIyoC,EAAOpG,UACXh5B,MAAMo/B,EAAOx7B,KACblV,MAAM6C,EAAI6tC,EAAOpG,WACjB1nC,aACA2mB,SACA1mB,QAEFS,KAAKmB,SAAS,CAACk7C,YAAW,GAC5B,CAEA37C,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GAkEX,OAjEIoB,GAAG2pB,UAAUzzB,KAAKimB,UACpBvd,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B/wB,WAAY,CAAElD,KAAWQ,SAASR,KAAW6C,WAC7CwwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAC1Bpf,OAAO,CACLrF,KAAM,SACN8C,QAAS,CACP,CAAChS,MAAM,IAAKsR,MAAO,aACnB,CAACtR,MAAM,IAAIsR,MAAM,oBACjB,CAACtR,MAAM,IAAIsR,MAAM,sBACjB,CAACtR,MAAM,IAAIsR,MAAM,wBACjB,CAACtR,MAAM,IAAIsR,MAAM,2BAErB1O,WAAY,CAAElD,KAAWQ,UACzBqvC,UAAWA,CAACQ,EAAMltC,IACR+J,gBAAA,OAAAC,SAAA,CAAK,IAAEvJ,KAAKy8C,YAAYl9C,EAAIk9C,gBAEtChN,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,gBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,iBAC1B/wB,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,GAERm7B,UAAS,EACT32B,OAAQ,CACNqpB,QAASA,CAACx5B,EAAGmnC,EAAQrB,EAAaxsC,EAAKmK,IAAY1J,KAAKu8C,SAASnP,EAAO7tC,EAAI,CAACnD,KAAWQ,UAAUoD,KAAKimB,SAEzGra,KAAK,YAEP,CACEo7B,UAAW,SACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,UAC1BqX,UAAU,EACVwH,WAAU,GAEZ,CACElI,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAE1BqsB,SAAS,EACTjN,cAAe,CACb79B,MAAM,GAERm7B,UAAS,EACT32B,OAAQ,CACNqpB,QAASA,CAACx5B,EAAGmnC,EAAQrB,EAAaxsC,EAAKmK,IAAY1J,KAAKu8C,SAASnP,EAAO7tC,EAAI,CAACnD,KAAWQ,UAAUoD,KAAKimB,YAM7G3c,gBAAAglC,YAAA,CAAA/kC,SAAA,CACE3I,eAAC66C,GAAY,CAAC3sC,IAAK9O,KAAKw8C,SAAUtqC,OAAQlS,KAAKC,MAAMo8C,WAAYL,MAAOA,IAAIh8C,KAAKmB,SAAS,CAACk7C,YAAW,MACpGz7C,eAACuvC,GAAW,CACV/M,UAAS,gCAAA1hC,OAAkC1B,KAAKC,MAAM0jC,cACtD1d,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACTkb,eAAgB,CAACvrC,KAAKC,MAAMykB,oBAC5BrjB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAY,EACZhmB,mBAAoB1kB,KAAKC,MAAMykB,mBAC/B8mB,SAAW9iC,IACF,EAET0J,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,MAKzC,EAGa+wB,U,UCrIA,OAA0B,sCCUzC,MAAMQ,WAAkB/8C,YACtBC,YAAYC,GACVC,MAAMD,GAAO,KA0Cfg6C,aAAgBC,IACd/5C,KAAKmB,SAAS,CAAE44C,UAAS,EA1CzB/5C,KAAKimB,OAASnc,GAAGiM,SACjB/V,KAAKo8C,mBAAqBtyC,GAAGyQ,aAC7Bva,KAAKg6C,iBAAmBlwC,GAAGqQ,WAC3Bna,KAAK8a,eAAiBhR,GAAGgR,eACzB,IAAIrB,EAAU3P,GAAGgyB,oBACb4H,EAAa1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,WAGzC1jC,KAAKC,MAAQ,CACXsf,SAAS,CAACzR,KAAK,IACf4W,mBAAmB,CAACgf,cACpBtH,aAAatyB,GAAGsyB,eAChB2d,OAAO,sBAGT/5C,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAC1C1kB,KAAKo8C,mBAAmB14B,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GACzE1kB,KAAKg6C,iBAAiBt2B,mBAAmB,CAACmb,UAAUplB,EAAQolB,YAAW,GACvE7+B,KAAK8a,eAAe4I,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,EACvE,CAEA,uBAAMtX,GACJpN,KAAKm7C,aACP,CAEAA,cACE,IAAI57B,EAAW/iB,IAAEu/B,UAAUjyB,GAAGgM,UAAUsV,MAAM,CAACsY,WAAWj9B,SAASzG,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,cAC3F,GAAInkB,EAUFvf,KAAKmB,SAAS,CAACoe,iBATjB,CACE,IAAIzF,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAChEnyB,GAAGgM,UAAU4N,mBAAmB,CAACmb,UAAUplB,EAAQolB,YAAYtxB,MAAK,KAClE,IAAIgS,EAAW/iB,IAAEu/B,UAAUjyB,GAAGgM,UAAUsV,MAAM,CAACsY,WAAWj9B,SAASzG,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,cAC3F1jC,KAAKmB,SAAS,CAACoe,SAASA,GAAU,GAEtC,CAIF,CAKA67B,WACE,MAAM,2BAAN15C,OAAkC1B,KAAKC,MAAMsf,SAASzR,KACxD,CAEA8uC,kBACI,OAAOC,GAAUrzC,KAAIszC,IACZ,CACL9uC,MAAM,GAADtM,OAAKo7C,EAASpgD,MAAK,KAAAgF,OAAIo7C,EAASlrC,MACrClV,MAAOogD,EAASpgD,SAGxB,CACA29C,WAAW96C,GACqB,IAADw9C,EAA1B/8C,KAAKC,MAAMsf,SAASzR,MACrB9N,KAAKF,MAAMwxB,QAAQtqB,KAAKib,EAAOvD,QAAQuD,EAAOjN,OAAOgB,cAAc,CAACgnC,UAAUh9C,KAAKC,MAAMsf,SAASzR,KAAKmvC,aAAa19C,EAAIuO,KAAKia,WAAWxoB,EAAI29C,oBAAqBC,UAAuB,QAAdJ,EAACx9C,EAAI49C,iBAAS,IAAAJ,OAAA,EAAbA,EAAev2C,MAAM,KAAK,KAEzM,CACA9F,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GACP/H,EAAOX,KA0GX,OAzGI8J,GAAG2pB,UAAUzzB,KAAKimB,OAAQjmB,KAAKo8C,mBAAoBp8C,KAAK8a,kBAC1DpS,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B/wB,WAAY,CAAElD,KAAWQ,SAASR,KAAW6C,WAC7CwwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,YACX+G,YAAY,EACZn8B,KAAM5R,KAAKimB,OAAOoK,QAAQ,aAE1Bof,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1Bpf,OAAO,CACLrF,KAAM,SACN8C,QAAS,CACP,CAAChS,MAAM,IAAKsR,MAAO,YACnB,CAACtR,MAAM,IAAIsR,MAAM,UACjB,CAACtR,MAAM,IAAIsR,MAAM,UACjB,CAACtR,MAAM,IAAIsR,MAAM,UACjB,CAACtR,MAAM,KAAKsR,MAAM,WAClB,CAACtR,MAAM,KAAKsR,MAAM,aAEtB1O,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,UACX+G,YAAY,EACZn8B,KAAM5R,KAAKimB,OAAOoK,QAAQ,WAE1Bof,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,yBACXp1B,KAAM5R,KAAKo8C,mBAAmBryC,EAAE,SAChCw9B,WAAYvnC,KAAKo8C,mBACjB3M,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,cACXp1B,KAAM5R,KAAKg6C,iBAAiBjwC,EAAE,SAC9Bw9B,WAAYvnC,KAAKg6C,iBACjBvK,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,UACXp1B,KAAM5R,KAAK8a,eAAe/Q,EAAE,SAC5Bw9B,WAAYvnC,KAAK8a,eACjBsxB,iBAAkB7sC,GAAG,GAAAmC,OAAOnC,EAAI69C,KAAKC,UAAU,EAAE,IAAG,SACpD5N,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1Bpf,OAAO,CACLrF,KAAM,SACN8C,QAAS1O,KAAK48C,mBAEhBt9C,WAAY,CAAElD,KAAWQ,UACzB6yC,cAAe,CACb79B,MAAM,IAEA,CACRo1B,UAAW,SACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,UAC1BqX,UAAU,EACVwH,WAAU,GAEZ,CACElI,UAAW,YACXp1B,KAAK,YACLs9B,WAAU,EACVjD,UAAWA,CAACQ,EAAKltC,IAEfqB,eAAA0tC,YAAA,CAAA/kC,SACA3I,eAAA,OAAKk3B,IAAKwlB,GAAWjhB,KAAK,SAASiC,IAAI,YAAYiD,OAAQ,GAAI8N,MAAO,GAAI5P,QAAU70B,IAASjK,EAAK05C,WAAW96C,EAAI,SAUvH+J,gBAAAglC,YAAA,CAAA/kC,SAAA,CACED,gBAACkxC,KAAI,CACHC,UAAWz6C,KAAKC,MAAM85C,OACtB9E,SAAUj1C,KAAK85C,aAAavwC,SAAA,CAE1B3I,eAAC85C,KAAG,CACFC,SAAS,qBACT9wC,MAAM,wBACRjJ,eAAC85C,KAAG,CAACC,SAAS,gBAAgB9wC,MAAM,sBAE1CjJ,eAAA,OAAoBS,UAAU,uBAAsBkI,SAC3B,uBAAtBvJ,KAAKC,MAAM85C,OACVn5C,eAACuvC,GAAW,CACV/M,UAAS,GAAA1hC,OAAK1B,KAAKo7C,YACnBn1B,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACTkb,eAAgB,CAACvrC,KAAKC,MAAMykB,oBAC5BrjB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAY,EACZhmB,mBAAoB1kB,KAAKC,MAAMykB,mBAC/B8mB,SAAW+R,IACT,IAAIC,GAAU,EACd,IAAK,MAAMC,KAAU/0C,EACnB,IACI60C,EAAMJ,WAAaM,EAAON,WAAaI,EAAMJ,WAAaM,EAAOC,SAClEH,EAAMG,SAAWD,EAAON,WAAaI,EAAMG,SAAWD,EAAOC,SAC7DD,EAAON,WAAaI,EAAMJ,WAAaM,EAAON,WAAaI,EAAMG,SACjED,EAAOC,SAAWH,EAAMJ,WAAaM,EAAOC,SAAWH,EAAMG,UAC9DD,EAAOE,wBAA0BJ,EAAMI,uBAIvC,OAFA7zC,GAAGmiB,SAAS,wFACZuxB,GAAU,GAId,OAAOA,CAAO,EAEhBprC,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,IAG/BxqB,eAACu7C,GAAa,CAACpC,OAAQ/5C,KAAKC,MAAM85C,OAAQuC,cAAet8C,KAAKC,MAAMsf,YAAcvf,KAAKF,MAAOs8C,mBAAoBp8C,KAAKo8C,sBAjCpH,cAqCb,EAGaO,UCjOf,MAAMiB,WAAmBh+C,YACvBC,YAAYC,GACVC,MAAMD,GAAO,KAgEf8hC,iBAAoBllC,GACdA,GAAS,IACJ,QACEA,GAAS,EACX,SAEA,MArETsD,KAAKimB,OAASnc,GAAGkM,cACjB,MAAM,WAAE+R,EAAU,UAAEo1B,EAAS,aAAEF,GAAiBj9C,KAAKF,MAAMrB,MAAMmgB,OACjE5e,KAAKC,MAAQ,CACX49C,aAAaV,EACbz4B,mBAAmB,CAACqD,aAAYC,WAAWm1B,EAAWF,gBACtD7gB,aAAatyB,GAAGsyB,gBAElBp8B,KAAKimB,OAAOvC,mBAAmB,CAACqE,aAAYC,WAAWhoB,KAAKC,MAAM49C,cACpE,CAEAC,mBAAmBC,EAAWC,GACxBA,EAAUH,eAAiB79C,KAAKC,MAAM49C,cACxC79C,KAAKimB,OAAOvC,mBAAmB,CAC7BqE,WAAY/nB,KAAKC,MAAMykB,mBAAmBqD,WAC1CC,WAAYhoB,KAAKC,MAAM49C,cAG7B,CACA1tC,uBACEnQ,KAAKimB,OAAO+D,OACd,CACAoxB,WACE,MAAM,qCAAN15C,OAA4C1B,KAAKC,MAAMykB,mBAAmBu4B,aAC5E,CAEAgB,gBAAgBC,GACd,IAAKA,EAAW,OAAO,KAEvB,MAAMC,EAAS,CACbC,aAAc,EACdC,QAAS,EACTC,OAAQ,EACRC,UAAW,EACXC,eAAgB,EAChBC,MAAO,EACPC,UAAW,EACXC,SAAU,EACVC,kBAAmB,EACnBC,aAAc,EACdC,cAAe,EACfC,aAAc,GAoBhB,OAjBAb,EAAUtpC,SAAQnM,IAAgB,IAAf,MAAEu2C,GAAOv2C,EAC1Bu2C,EAAMpqC,SAAQqrB,IAAkB,IAAjB,QAAEgf,GAAShf,EACxBke,EAAOC,cAAgBa,EAAQb,cAAgB,EAC/CD,EAAOE,SAAWY,EAAQZ,SAAW,EACrCF,EAAOG,QAAUW,EAAQX,QAAU,EACnCH,EAAOI,WAAaU,EAAQV,WAAa,EACzCJ,EAAOK,gBAAkBS,EAAQT,gBAAkB,EACnDL,EAAOM,OAASQ,EAAQR,OAAS,EACjCN,EAAOO,WAAaO,EAAQP,WAAa,EACzCP,EAAOQ,UAAYM,EAAQN,UAAY,EACvCR,EAAOS,mBAAqBK,EAAQL,mBAAqB,EACzDT,EAAOU,cAAgBI,EAAQJ,cAAgB,EAC/CV,EAAOW,eAAiBG,EAAQH,eAAiB,EACjDX,EAAOY,cAAgBE,EAAQF,cAAgB,CAAC,GAChD,IAGGZ,CACT,CAWAz9C,SAEE,IAAI6iC,EAAS,GACT76B,EAAO,GACPw2C,EAAU,GAEVf,EAAS,KAyBb,OAxBIn+C,KAAKimB,OAAOyI,aACdhmB,EAAO1I,KAAKimB,OAAOmF,MACf1iB,EAAKC,QAAUD,EAAKC,OAAO3J,OAAS,GAAO0J,GAAQA,EAAK1J,OAAO,EACjEukC,EAAQ,sBAER4a,EAASn+C,KAAKi+C,gBAAgBv1C,GAC9BA,EAAKkM,SAAQrV,IACX,MAAM4/C,EAAgB,CACpB7+C,KAAMf,EAAIe,QACPf,EAAIy/C,MAAM,GAAGC,SAElBC,EAAQl4C,KAAKm4C,EAAc,MAc/B71C,gBAAA,OAAKmI,MAAO,CAACC,WAAW,OAAQ0tC,YAAY,QAAQ71C,SAAA,CAClDD,gBAAA,OAAKjI,UAAU,mDAAkDkI,SAAA,CACjE3I,eAAA,UAAQS,UAAU,sCAAsCo+B,QAASA,IAAIz/B,KAAKF,MAAMwxB,QAAQkS,SAASj6B,SAAC3I,eAAA,KAAGS,UAAU,mCAC/GT,eAAA,MAAIS,UAAU,eAAckI,SAAEvJ,KAAKo7C,gBAGrC9xC,gBAACsH,KAAS,CAACvP,UAAU,qCAAoCkI,SAAA,CACvD3I,eAACiQ,KAAK,CAACxP,UAAU,YAAWkI,SAAC,eAC7B3I,eAACjB,KAAa,CACZ4B,UAAU,EAEV7E,MAAOsD,KAAKC,MAAM49C,aAClBz8C,SAAWd,GAASN,KAAKmB,SAAS,CAAC08C,aAAiB,OAAJv9C,QAAI,IAAJA,OAAI,EAAJA,EAAMkG,MAAM,KAAK,MAF7D,WAKR5F,eAAA,OAAKS,UAAU,MAAKkI,SACjB40C,GAAQe,EAAQlgD,OAAO,EACtB+f,OAAOC,KAAKm/B,GAAQ30C,KAAK7E,GACvB/D,eAAA,OAAKS,UAAU,gBAAekI,SAC5B3I,eAACugC,GAAS,CAACnzB,MAAK,GAAAtM,OAAKiD,GAAOjI,MAAOyhD,EAAOx5C,GAAMyuB,MAAOpzB,KAAK4hC,iBAAiBuc,EAAOx5C,OADlDA,KAGnC/D,eAAA,OAAKS,UAAU,wBAAuBkI,SACrC3I,eAAA,MAAIS,UAAU,cAAakI,SAAEg6B,QAGrCj6B,gBAAA,SAAOjI,UAAU,4BAA2BkI,SAAA,CAC1C3I,eAAA,SAAA2I,SACED,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAI,SACJ3I,eAAA,MAAA2I,SAAI,iBACJ3I,eAAA,MAAA2I,SAAI,YACJ3I,eAAA,MAAA2I,SAAI,cACJ3I,eAAA,MAAA2I,SAAI,mBACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,cACJ3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAA2I,SAAI,sBACJ3I,eAAA,MAAA2I,SAAI,iBACJ3I,eAAA,MAAA2I,SAAI,kBACJ3I,eAAA,MAAA2I,SAAI,sBAGP21C,EAAQlgD,OAAS,GAAKkgD,EAAQ11C,KAAIjK,GACjCqB,eAAA,SAAA2I,SACAD,gBAAA,MAAAC,SAAA,CACE3I,eAAA,MAAA2I,SAAKhK,EAAIe,OACTM,eAAA,MAAA2I,SAAKhK,EAAI6+C,eACTx9C,eAAA,MAAA2I,SAAKhK,EAAI8+C,UACTz9C,eAAA,MAAA2I,SAAKhK,EAAIg/C,YACT39C,eAAA,MAAA2I,SAAKhK,EAAIi/C,iBACT59C,eAAA,MAAA2I,SAAKhK,EAAIk/C,QACT79C,eAAA,MAAA2I,SAAKhK,EAAIm/C,YACT99C,eAAA,MAAA2I,SAAKhK,EAAIo/C,WACT/9C,eAAA,MAAA2I,SAAKhK,EAAIq/C,oBACTh+C,eAAA,MAAA2I,SAAKhK,EAAIs/C,eACTj+C,eAAA,MAAA2I,SAAKhK,EAAIu/C,gBACTl+C,eAAA,MAAA2I,SAAKhK,EAAIw/C,2BAsBrB,EAGanB,U,UC7Lf,MAAMyB,WAAez/C,YACnBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGsM,OACjBpW,KAAKC,MAAQ,CACXo8C,YAAW,EACX33B,mBAAoB,CAAEma,UAAW7+B,KAAKF,MAAMrB,MAAMmgB,OAAOigB,WACzDygB,gBAAgB,GAChBljB,aAAatyB,GAAGsyB,gBAElBp8B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAC7D1kB,KAAKu8C,SAAWv8C,KAAKu8C,SAASzsC,KAAK9P,MACnCA,KAAKu/C,eACLv/C,KAAKw8C,SAAW7sC,IAAMC,WACxB,CACA,uBAAMxC,GAEJpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,aAEpD,CACA4e,eACEz1C,GAAGgM,UAAU4N,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,EAChE,CAEA63B,SAASnP,EAAO7tC,EAAID,EAAY2mB,GAC9BjmB,KAAKw8C,SAASnsC,QAAQurC,UAAU,CAC9Bj3C,IAAIyoC,EAAOpG,UACXh5B,MAAMo/B,EAAOx7B,KACblV,MAAM6C,EAAI6tC,EAAOpG,WACjB1nC,aACA2mB,SACA1mB,QAEFS,KAAKmB,SAAS,CAACk7C,YAAW,GAC5B,CAEA37C,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GAoGX,OAnGIoB,GAAG2pB,UAAUzzB,KAAKimB,OAAQnc,GAAGgM,aAC/BpN,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,OACXp1B,KAAM,OACNtS,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,GAERm7B,UAAS,EACT32B,OAAQ,CACNqpB,QAASA,CAACx5B,EAAGmnC,EAAQrB,EAAaxsC,EAAKmK,IAAY1J,KAAKu8C,SAASnP,EAAO7tC,EAAI,CAACnD,KAAWQ,UAAUoD,KAAKimB,SAEzGra,KAAK,YAEP,CACEo7B,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAC1B/wB,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,GAERm7B,UAAS,EACT32B,OAAQ,CACNqpB,QAASA,CAACx5B,EAAGmnC,EAAQrB,EAAaxsC,EAAKmK,IAAY1J,KAAKu8C,SAASnP,EAAO7tC,EAAI,CAACnD,KAAWQ,UAAUoD,KAAKimB,SAEzGra,KAAK,YAEP,CACEo7B,UAAW,aACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,cAC1BkX,WAAYz9B,GAAGgM,UACf25B,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,eACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,gBAC1BqX,UAAU,GAEZ,CACEV,UAAW,eACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,gBAC1B/wB,WAAW,CAAClD,KAAWsB,eAAetB,KAAWoB,YACjDiyC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,eACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,gBAC1Bof,cAAe,CACb79B,MAAM,GAERm7B,UAAS,EACT32B,OAAQ,CACNqpB,QAASA,CAACx5B,EAAGmnC,EAAQrB,EAAaxsC,EAAKmK,IAAY1J,KAAKu8C,SAASnP,EAAO7tC,EAAI,CAACnD,KAAWQ,UAAUoD,KAAKimB,SAEzGra,KAAK,YAkBP,CACEo7B,UAAW,SACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,UAC1BqX,UAAU,EACVwH,WAAW,GAEb,CACElI,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B6e,WAAW,EACXnC,UAAS,EACTd,UAAWA,CAACQ,EAAMltC,IACRqB,eAAC4+C,mBAAe,CAAC5tC,KAAI,GAAAlQ,OAAKoI,GAAG6V,SAAOje,OAAGugB,EAAOvD,QAAQuD,EAAOjN,OAAO8B,QAAQ,CAAC+gC,QAAQt4C,EAAIs4C,WAAYtuC,SACrG3I,eAAA,UAAQS,UAAU,kBAAiBkI,SACnC3I,eAAA,KAAGS,UAAU,sBAQ3BiI,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAAC66C,GAAY,CAAC3sC,IAAK9O,KAAKw8C,SAAUtqC,OAAQlS,KAAKC,MAAMo8C,WAAYL,MAAOA,IAAIh8C,KAAKmB,SAAS,CAACk7C,YAAW,MACtGz7C,eAACuvC,GAAW,CACV5E,eAAgB,CAAC,CAACpI,MAAM,MACxBC,UAAS,cAAA1hC,OAAiB1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IAC3G1a,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAW,EACXhmB,mBAAoB1kB,KAAKC,MAAMykB,mBAC/BtS,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,EAE/BogB,SAAW9iC,IACT,IAAI80C,GAAQ,EAMZ,OALGhhD,IAAEU,OAAOwL,EAAKg7B,aAAelnC,IAAEijD,QAAQ/2C,EAAKg3C,cAAa,KAE1D51C,GAAGmiB,SAAS,oCACZuxB,GAAQ,GAEHA,CAAO,MAtBX,WA2Bb,EAGa6B,U,SCtKf,MAAMM,WAAc//C,YAClBC,YAAYC,GACVC,MAAMD,GAAO,KAsEf8/C,qBAAsB,CAAC94B,EAAOvnB,KAE5B,IAAIka,EAAU3P,GAAGgyB,oBACjB,IAAInd,EAAIsD,EAAOvD,QAAQuD,EAAOjN,OAAOuB,YAAY,CAACuQ,SAAO+X,UAAUplB,EAAQolB,YAC3E7+B,KAAKF,MAAMwxB,QAAQtqB,KAAK2X,EAAI,EAzE5B3e,KAAKimB,OAASnc,GAAGwM,MACjBtW,KAAKC,MAAQ,CACX4/C,WAAW,GACXC,mBAAkB,EAClBC,aAAa,KACbC,iBAAiB,GACjBC,kBAAkB,GAClB3pC,MAAM,GACN8lB,aAAatyB,GAAGsyB,eAChB8jB,aAAalgD,KAAKimB,OAAOoK,QAAQ,yBAEnCrwB,KAAKimB,OAASnc,GAAGwM,MACjBtW,KAAKmgD,eAAiBngD,KAAKmgD,eAAerwC,KAAK9P,MAC/CA,KAAK4/C,qBAAuB5/C,KAAK4/C,qBAAqB9vC,KAAK9P,MAC3DA,KAAKs9B,MAAQt9B,KAAKs9B,MAAMxtB,KAAK9P,MAC7BA,KAAK8/C,kBAAoB9/C,KAAK8/C,kBAAkBhwC,KAAK9P,MACrDA,KAAKiB,SAAWjB,KAAKiB,SAAS6O,KAAK9P,MACnCA,KAAK0c,gBAAkB1c,KAAK0c,gBAAgB5M,KAAK9P,MACjDA,KAAKogD,SAAWpgD,KAAKogD,SAAStwC,KAAK9P,KACrC,CAEAoN,oBACEpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,cAClD,IAAIlnB,EAAU3P,GAAGgyB,oBACb1Z,EAAO,CACTi+B,cAAcv2C,GAAGiQ,QAAQqR,MAAMtE,OAC/B+X,WACE/0B,GAAGsyB,eACC3iB,EAAQolB,WAEdghB,WAAa/1C,GAAGsyB,gBAAmBtyB,GAAGyyB,UAAgB,KAAJ,GAEpDv8B,KAAKimB,OAAOsK,YAAYnO,EAAK,CAAC,EAAEH,EAAO3I,UAAUmE,WAAW,CAAC,GAAE,GAC9DlQ,MAAM7C,IACL,IAAI4L,EAAQxM,GAAGwM,MAAM8U,MACjBthB,GAAGsyB,gBAAmBtyB,GAAGyyB,YAC3BjmB,EAAQ9Z,IAAE8jD,MAAMhqC,EAAM,CAACupC,WAAW,KAEpC7/C,KAAKmB,SAAS,CAACmV,SAAO,IAExBxM,GAAGy2C,UAAUxzB,OACbjjB,GAAGuyB,KAAKtP,OAKRjjB,GAAG4L,UAAU+a,WAAW,KAAM,KAAM,iBAAkB,CAAC,EACzD,CAEA2vB,WACE,OAASpgD,KAAKC,MAAMqW,OAAQ,IAAI9M,KAAKsQ,GAC5BiF,OAAOyI,OAAO,CAAC,EAAE1N,EAAK,CAAC0mC,aAAa1mC,EAAKoqB,YAAepqB,EAAKoqB,YAAYzjC,QAAQ,MAAO,IAAIqZ,EAAKoqB,eAE5G,CAEA,+BAAOuc,CAAyB3gD,EAAO4gD,GACrC,IAAIC,EAAc72C,GAAGwM,MAAM8U,MAC3B,OAAIu1B,GAAcD,EAAcpqC,QAAUqqC,EACjC,CACLrqC,MAAOqqC,GAGJ,IACT,CAEAR,eAAev1C,EAAMi1C,GACnB7/C,KAAKmB,SAAS,CAAC0+C,cACjB,CASAviB,MAAMxjB,GAEJ,MAAM8mC,EAAa9mC,EAAK+lC,WACxB,IAAIhhB,EAAY/0B,GAAGgyB,oBAAoB+C,UACrB,IAAf+hB,EACD92C,GAAGgQ,KAAKyW,YAAY,KAAK,CAACsO,YAAUzgC,MAAM0b,EAAK4P,aAAam3B,aAAY,GAAM5+B,EAAO3I,UAAUkD,UAAW,CAAC,GAE3G1S,GAAGgQ,KAAKyW,YAAY,KAAK,CAACsO,YAAUxgC,MAAMyb,EAAK0mC,aAAaK,aAAY,GAAO5+B,EAAO3I,UAAUkD,UAAW,CAAC,EAGhH,CAEAsjC,kBAAkBhmC,GAChB9Z,KAAKmB,SAAS,CAAC2+C,mBAAkB,EAAKC,aAAajmC,GACrD,CAEAgnC,aACE,IAAIngD,EAAMX,KACV,MAAO,CACL,CACEgnC,UAAW,aACXp1B,KAAM,YACNtS,WAAY,CAAElD,KAAWQ,UACzB2qC,WAAWz9B,GAAGy2C,UACdt/C,SAASN,EAAKw/C,gBAEhB,CACEnZ,UAAW,SACXp1B,KAAM,OACNtS,WAAY,CAAClD,KAAWQ,UACxB2qC,WAAWz9B,GAAGuyB,KACd6S,UAAoC,MAA1BlvC,KAAKC,MAAM4/C,YAEvB,CACE7Y,UAAW,YACXp1B,KAAM,UACNsgC,aAAY,EACZ5yC,WAAY,CAAElD,KAAWQ,UACzB2qC,WAAWz9B,GAAG4L,UACdw5B,UAAUplC,GAAGsyB,gBAYf,CACE4K,UAAW,YACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,aAC1B/wB,WAAY,CAAElD,KAAWQ,SAASR,KAAW6C,WAC7CwR,OAAQm/B,sBAAW,CACjBjhC,YAAa,cACb/B,aAAc,GACd8jC,WAAY/C,cAAWC,KAEzB6B,cAAe,CACb79B,MAAM,IAIV,CACEo1B,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1B/wB,WAAY,CAAElD,KAAWQ,UACzB6T,OAAQm/B,sBAAW,CACjBjhC,YAAa,cACb/B,aAAc,GACd8jC,WAAY/C,cAAWC,KAEzB6B,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAC1B/wB,WAAW,CAAClD,KAAWQ,SAASR,KAAWiC,MAAM,CAAC3B,EAAOkB,EAASC,EAAK0B,IAChD,oBAANA,GAAwC,IAAnBA,EAAIsgD,WAAoB,cAAgB,IAE9ExJ,SAAQ,EACR5G,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,eACXp1B,KAA+B,IAAzB5R,KAAKC,MAAM4/C,WAAiB7/C,KAAKimB,OAAOoK,QAAQ,wBAAmD,MAA1BrwB,KAAKC,MAAM4/C,WAAoB7/C,KAAKimB,OAAOoK,QAAQ,YAAYrwB,KAAKimB,OAAOoK,QAAQ,gBAClK/wB,WAAY,CAAClD,KAAWQ,SAASR,KAAW8C,UAAU,CAACxC,EAAOkB,EAASC,EAAK0B,IACrD,oBAANA,GAAwC,IAAnBA,EAAIsgD,WAAoBzjD,KAAWgC,MAAM1B,GAAS,IAExF+yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,SACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,UAC1BqX,UAAU,EACVwH,WAAU,GAEZ,CACElI,UAAW,SAEXp1B,KAAM,UACNs9B,WAAW,EACXnC,UAAS,EACTsC,MAAM,IACNpD,UAAWA,CAACQ,EAAMltC,IAER+J,gBAAA,OAAAC,SAAA,CACJ3I,eAAA,UAAQ6O,OAA0B,IAAlBlQ,EAAIsgD,WAAiBh2C,MAAM,eAAexI,UAAU,kBAAkBo+B,QAAU70B,IAASjK,EAAKi/C,qBAAqBnT,EAAKltC,EAAI,EAAGgK,SAAC3I,eAAA,KAAGS,UAAU,sCAC7JT,eAAA,UAAQiJ,MAAM,aAAaxI,UAAU,iBAAiBo+B,QAAU70B,IAASjK,EAAK28B,MAAM/9B,EAAI,EAAGgK,SAAC3I,eAAA,KAAGS,UAAU,oBACzGT,eAAA,UAAQ6O,QAAS3F,GAAGsyB,eAAgBvyB,MAAM,iBAAiBxI,UAAU,kBAAkBo+B,QAAU70B,IAASjK,EAAKm/C,kBAAkBvgD,EAAI,EAAGgK,SAAC3I,eAAA,KAAGS,UAAU,qBAI9J,CACE2lC,UAAW,eACXp1B,KAAM,IACNs9B,WAAU,EACVnC,UAAS,EACTt9B,QAAO,EACPoC,QAAS,SACT28B,cAAe,SACfp7B,MAAK,GAGX,CAEAnS,SAAS3E,GACP,IAAImN,EAAQnN,EAASA,EAAOkN,KAAIN,GAAiBA,EAAKxM,QAAW,GACjEsD,KAAKmB,SAAS,CAAC8+C,kBAAkBx2C,GACnC,CAEAiT,kBACE,IAAI/b,EAAMX,KACV8J,GAAGgQ,KAAKyW,YAAY,CAACzJ,OAAO9mB,KAAKC,MAAM8/C,aAAaj5B,OAAOi6B,WAAW/gD,KAAKC,MAAMggD,mBAAmB,KAAKh+B,EAAO3I,UAAUoD,gBAAiB,CAAC,GAAGnP,MAAK,KAClJ,IAAI+I,EAAQ,IAAItW,KAAKC,MAAMqW,OACvBwD,EAAOtd,IAAEu/B,UAAUzlB,EAAM,CAACwQ,OAAOnmB,EAAKV,MAAM8/C,aAAaj5B,SAC7DtqB,IAAEC,KAAKuD,KAAKC,MAAMggD,mBAAmBphB,IACnBriC,IAAEu/B,UAAUjiB,EAAKkiB,cAAc,CAAC6C,UAAUA,KAEtD/kB,EAAKkiB,cAAch1B,KAAK,CAAC8f,OAAOnmB,EAAKV,MAAM6mB,OAAO+X,UAAUA,GAAW,IAE7El+B,EAAKQ,SAAS,CAAC4+C,aAAa,KAAKE,kBAAkB,GAAGH,mBAAkB,GAAO,GAEnF,CAEAp/C,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GAKX,OAJIoB,GAAG2pB,UAAU3pB,GAAGwM,MAAOxM,GAAGy2C,UAAWz2C,GAAGuyB,QAC1C3zB,EAAO1I,KAAKogD,WACZ/vB,EAAUrwB,KAAK8gD,cAGfx3C,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAACuvC,GAAW,CACVlqB,OAAQjmB,KAAKimB,OACbmd,UAAS,SAAA1hC,OAAY1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IACtGj4B,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAY,EACZt4B,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,EAE/BsnB,cAAeA,KACb1yC,KAAKmB,SAAS,CAAC++C,aAAalgD,KAAKimB,OAAOoK,QAAQ,0BAChDrwB,KAAKmB,SAAS,CAAC0+C,WAAW,IAAI,EAEhCrU,SAAW9iC,IACT,IAAI80C,GAAQ,EAUY,IAADwD,GAJpBxkD,IAAEK,QAAQ6L,EAAKghB,eAAqC,MAApBhhB,EAAKm3C,aACtC/1C,GAAGmiB,SAAS,8BACZuxB,GAAQ,GAEN1zC,GAAGsyB,kBACL1zB,EAAKm2B,UAAkC,QAAzBmiB,EAAGl3C,GAAGgyB,2BAAmB,IAAAklB,OAAA,EAAtBA,EAAwBniB,WAE3C,OAAO2e,CAAO,IAGlBl0C,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAM6/C,kBAAmBz+C,UAAW,aAAakI,SAAA,CACtE3I,eAACsnC,KAAW,CAAA3+B,SAAC,qBACb3I,eAACunC,KAAS,CAAA5+B,SACND,gBAACsH,KAAS,CAAArH,SAAA,CACR3I,eAAA,SAAA2I,SAAO,cACP3I,eAACqgD,KAAM,CACL5/C,UAAU,eACViN,gBAAgB,eAChBC,cAAc,EACdE,SAAS,EACTC,QAAS1O,KAAKC,MAAM+/C,iBACpBrxC,YAAa7E,GAAGC,EAAE,8BAClB9I,SAAUjB,KAAKiB,SACfigD,WAAYlhD,KAAKF,MAAMgpC,gBAI/Bx/B,gBAACs/B,KAAW,CAAAr/B,SAAA,CACR3I,eAACioC,KAAM,CAACxnC,UAAU,YAAYo+B,QAASA,KAAKz/B,KAAK0c,iBAAiB,EAAEnT,SAAC,SAGrE3I,eAACioC,KAAM,CAACxnC,UAAU,YAAYo+B,QAASA,KAAKz/B,KAAKmB,SAAS,CAAC2+C,mBAAkB,GAAO,EAAEv2C,SACjFO,GAAGC,EAAE,8BAvDX,WA6Db,EAGa41C,UC3TA,OAA0B,iC,mBCMzC,MAAMtE,GAAa,CACf8F,qBAAqB,GACrB5F,WAAW,IAEA,MAAM6F,WAAwBxhD,YACzCC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MAAOo7C,GACZr7C,KAAK07C,aAAe17C,KAAK07C,aAAa5rC,KAAK9P,MAC3CA,KAAKqhD,aAAerhD,KAAKqhD,aAAavxC,KAAK9P,MAC3CA,KAAK27C,UAAY37C,KAAK27C,UAAU7rC,KAAK9P,MACrCA,KAAKshD,WAAathD,KAAKshD,WAAWxxC,KAAK9P,KAC3C,CACA07C,aAAa9wC,EAAO2yC,GAChBv9C,KAAKmB,SAAS,CAAEggD,qBAAqBv2C,EAAMkC,OAAOpQ,OACpD,CACF4kD,aACIthD,KAAKmB,SAASk6C,IACdr7C,KAAKF,MAAMiB,SAAQ,EACvB,CACAsgD,eAGI,GAF6BrhD,KAAKC,MAAMkhD,wBACzBnhD,KAAKF,MAAMyhD,OAAOvhD,KAAKF,MAAMyhD,OAAO,IACfz3C,GAAGyV,SAAS6L,MAAM+1B,qBAElD,OADAnhD,KAAKshD,aACEthD,KAAKF,MAAMiB,SAAQ,GAE1Bf,KAAKmB,SAAS,CAACo6C,WAAW,sCAC1Bv7C,KAAKF,MAAMiB,SAAQ,EAE3B,CACA46C,YACI,GAA6B,IAAzB37C,KAAKC,MAAMs7C,WACX,OAAO36C,eAAA,OAAKS,UAAU,MAAKkI,SACvB3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,qBAAqBg7B,KAAK,QAAO9yB,SAC3CvJ,KAAKC,MAAMs7C,gBAKhC,CACA76C,SAEI,OAAO4I,gBAACyI,KAAU,CAACG,OAAQlS,KAAKF,MAAMoS,OAAQ7Q,UAAW,aAAc8Q,OAASvH,IAAY5K,KAAKshD,aAAathD,KAAKF,MAAMk8C,OAAO,EAAGzyC,SAAA,CACnI3I,eAACsnC,KAAW,CAAA3+B,SAAC,qBACbD,gBAAC6+B,KAAS,CAAA5+B,SAAA,CACTvJ,KAAK27C,YACN/6C,eAAA,OAAKS,UAAU,GAAEkI,SACjB3I,eAAA,OAAKS,UAAU,MAAKkI,SACpBD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CACxB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,uBAClD3I,eAAA,SAAO+N,YAAY,qBAAqButC,WAAS,EAAC76C,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMkhD,qBAAsBlgD,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,uBAAuB,cAKrOtB,gBAACs/B,KAAW,CAAAr/B,SAAA,CACR3I,eAACioC,KAAM,CAACzV,MAAM,QAAQ/xB,UAAU,UAAUo+B,QAASz/B,KAAKqhD,aAAa93C,SAAC,WACtE3I,eAACioC,KAAM,CAACxnC,UAAU,YAAYo+B,QAASA,KAAKz/B,KAAKshD,aAAathD,KAAKF,MAAMk8C,OAAO,EAAEzyC,SAC7EO,GAAGC,EAAE,2BAIlB,E,cCxDW,MAAMy3C,WAAwB5hD,YAC3CC,YAAYC,GACVC,MAAMD,GAAO,KAgFf2hD,aAAejiC,IACbxf,KAAKmB,UAAS68C,IAAS,CACrBlkC,KAAM,IACDkkC,EAAUlkC,KACb4nC,cAAe1hD,KAAKC,MAAM6Z,KAAK4nC,cAAcjxC,QAAO,CAACmnB,EAAKzuB,IAAUA,IAAUqW,QAE/E,EACH,KAEFmiC,eAAkB/pB,IAChB53B,KAAKmB,UAAS68C,IAAS,CACrBlkC,KAAM,IACDkkC,EAAUlkC,KACb4nC,cAAe,IAAI1hD,KAAKC,MAAM6Z,KAAK4nC,cAAe9pB,OAEnD,EACJ,KACDgqB,gBAAkBhqB,IACP,KAANA,GACH53B,KAAKmB,UAAS68C,IAAS,CACrBlkC,KAAM,IACDkkC,EAAUlkC,KACb4nC,cAAe,IAAI1hD,KAAKC,MAAM6Z,KAAK4nC,cAAe,CAAC5vC,GAAG8lB,EAAIhmB,KAAKgmB,QAEhE,EAEJ,KAEDiqB,WAAa,CAACjqB,EAAKkqB,EAASC,KAC1B,MAAMC,EAAUhiD,KAAKC,MAAM6Z,KAAK4nC,cAAcl6C,QAE9Cw6C,EAAQzH,OAAOuH,EAAS,GACxBE,EAAQzH,OAAOwH,EAAQ,EAAGnqB,GAE1B53B,KAAKmB,UAAS68C,IAAS,CACrBlkC,KAAM,IACDkkC,EAAUlkC,KACb4nC,cAAeM,MAEhB,EACJ,KAoBDC,eAAkBve,IAGhBpkB,OAAO4iC,KAAK,GAADxgD,OAFD,uEAESgiC,GAAc,EA9IjC1jC,KAAKC,MAAQ,CACX6Z,KAAM,CACJ8P,UAAW,GACXC,SAAU,GACVqa,YAAa,GACb9lC,MAAO,GACP+jD,WAAW,GACXC,UAAW,GACXC,uBAAwB,GACxBC,gBAAiB,GACjBC,cAAe,GACfne,KAAM,GACNnkC,MAAO,GACPokC,IAAK,GACL8c,qBAAqB,GACrBO,cAAc,IAEhBnG,WAAW,GACXiH,WAAU,EACVC,YAAW,EACXC,oBAAmB,EACnBnjC,UAAS,EACT9F,SAAQ,GAEVzZ,KAAK07C,aAAe17C,KAAK07C,aAAa5rC,KAAK9P,MAC3CA,KAAK67C,SAAW77C,KAAK67C,SAAS/rC,KAAK9P,MACnCA,KAAK2iD,mBAAqB3iD,KAAK2iD,mBAAmB7yC,KAAK9P,MACvDA,KAAK27C,UAAY37C,KAAK27C,UAAU7rC,KAAK9P,MACrCA,KAAK4iD,QAAU5iD,KAAK4iD,QAAQ9yC,KAAK9P,MACjCA,KAAK6iD,UAAY7iD,KAAK6iD,UAAU/yC,KAAK9P,MACrCA,KAAK8iD,WAAa9iD,KAAK8iD,WAAWhzC,KAAK9P,MACvCA,KAAK+iD,UAAY/iD,KAAK+iD,UAAUjzC,KAAK9P,MACrCA,KAAKgjD,WAAahjD,KAAKgjD,WAAWlzC,KAAK9P,MACvCA,KAAKijD,gBAAkBjjD,KAAKijD,gBAAgBnzC,KAAK9P,MACjDA,KAAKkjD,yBAA2BljD,KAAKkjD,yBAAyBpzC,KAAK9P,MACnEA,KAAK67C,WACLtvC,QAAQC,IAAI1C,GACd,CACAm5C,kBACEjjD,KAAKmB,SAAS,CAACgiD,SAAQ,IACvBnjD,KAAKkjD,0BACP,CACAJ,aACE9iD,KAAKmB,SAAS,CAACgiD,SAAQ,GACzB,CACAH,aACEhjD,KAAKmB,SAAS,CAACgiD,SAAQ,GACzB,CACAD,2BAEE,MAAMviD,EAAKX,KACL0iD,EAAqB1iD,KAAKC,MAAMyiD,mBACtC54C,GAAGc,MAAM4lB,WAAW,CAACqnB,QAAQ/tC,GAAGc,MAAMwgB,MAAMysB,QAASuL,eAAeV,GAAoB,KAAKzgC,EAAO3I,UAAUoB,mBAAoB,CAAC,GAAE,GACpInN,MAAM7C,IACL/J,EAAKQ,SAAS,CAACuhD,oBAAoB/hD,EAAKV,MAAMyiD,oBAAoB,GAEtE,CACA/G,YACE,GAA6B,IAAzB37C,KAAKC,MAAMs7C,WACX,OAAO36C,eAAA,OAAKS,UAAU,MAAKkI,SACvB3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,qBAAqBg7B,KAAK,QAAO9yB,SAC3CvJ,KAAKC,MAAMs7C,gBAKhC,CACEqH,UACE,GAAG5iD,KAAKF,MAAMuqB,MACZ,OAAOzpB,eAAA,OAAKS,UAAU,MAAKkI,SACrB3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,qBAAqBg7B,KAAK,QAAO9yB,SAC3CvJ,KAAKF,MAAMuqB,WAK9B,CA0CA,uBAAMjd,GACJpN,KAAKmB,SAAS,CAACoe,SAASzV,GAAGyV,SAAS6L,QACnCprB,KAAKmB,SAAS,CAACsY,QAAQ3P,GAAG2P,QAAQ2R,OACrC,CAEAswB,aAAa9wC,EAAO2yC,GAClB,IAAIzjC,EAAOiF,OAAOyI,OAAOxnB,KAAKC,MAAM6Z,KAAM,CAAC,GAC3CA,EAAKyjC,GAAmB,UAAVA,GAAyB,OAAL3yC,QAAK,IAALA,OAAK,EAALA,EAAOlO,QAAS,GAAKkO,EAAMkC,OAAOpQ,MACpEsD,KAAKmB,SAAS,CAAE2Y,SAChB9Z,KAAK67C,UACP,CAEAA,WACE,IAAI/hC,EAAK9Z,KAAKC,MAAM6Z,KACpB,OAAOA,EAAK8P,UAAU7sB,OAAOiC,OAAQ,GACrC8a,EAAK+P,SAAS9sB,OAAOiC,OAAQ,GAC7B8a,EAAKoqB,YAAYnnC,OAAOiC,OAAQ,GAChC8a,EAAK1b,MAAMrB,OAAOiC,OAAQ,CAC5B,CAMA2jD,qBAC+B3iD,KAAKC,MAAM6Z,KAAKqnC,uBACnBr3C,GAAGyV,SAAS6L,MAAM+1B,sBAC1CnhD,KAAKiiD,eAAejiD,KAAKC,MAAMsf,SAASmkB,YACxC1jC,KAAKmB,SAAS,CAACqhD,WAAU,KAEzBxiD,KAAKmB,SAAS,CAACo6C,WAAW,6BAE9B,CACAsH,YACE7iD,KAAKmB,SAAS,CAACqhD,WAAU,EAAKjH,WAAW,KACzCv7C,KAAKmB,UAAS68C,IAAS,CACrBlkC,KAAM,IACDkkC,EAAUlkC,KACbqnC,qBAAsB,OAG5B,CAEA4B,YACE,OAAOM,GAAW75C,KAAIvJ,IAAK,CACzBvD,MAAOuD,EAAM6N,KACbE,MAAO/N,EAAM6N,QAEjB,CAEApN,SACE,MAKM4iD,EAAa,CAJV,IACA,IAIT,GAAIx5C,GAAG2pB,UAAU3pB,GAAGc,OAAQ,CAC1B,IAAI24C,EA8LJ,OA3LEA,EADCvjD,KAAKC,MAAMwZ,SAAWzZ,KAAKC,MAAMsf,WAAwD,IAA5Cvf,KAAKC,MAAMwZ,QAAQ5D,cAAc2tC,UAA+D,OAA3CxjD,KAAKC,MAAMsf,SAAS4hC,sBAA0E,KAA3CnhD,KAAKC,MAAMsf,SAAS4hC,qBAExK73C,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzBD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClB3I,eAAA,QAAMS,UAAU,mBAAkBkI,SAAEvJ,KAAKC,MAAM6Z,KAAK+P,UAAQ,IAAAnoB,OAAQ1B,KAAKC,MAAM6Z,KAAK+P,SAAQ,OAC5FjpB,eAAA,QAAM6Q,MAAO,CAAEgyC,WAAY,OAASpiD,UAAU,mBAAkBkI,SAAEvJ,KAAKC,MAAM6Z,KAAK8P,WAAS,KAAAloB,OAAS1B,KAAKC,MAAM6Z,KAAK8P,aACpHhpB,eAAA,QAAM6Q,MAAO,CAAEgyC,WAAY,OAASpiD,UAAU,mBAAkBkI,SAAEvJ,KAAKC,MAAM6Z,KAAK8P,WAAa5pB,KAAKC,MAAM6Z,KAAKqoC,YAAU,QACzHvhD,eAAA,QAAM6Q,MAAO,CAAEgyC,WAAY,OAASpiD,UAAU,mBAAkBkI,SAAEvJ,KAAKC,MAAM6Z,KAAKqoC,YAAU,GAAAzgD,OAAO1B,KAAKC,MAAM6Z,KAAKqoC,cACnHvhD,eAAA,QAAM6Q,MAAO,CAAEgyC,WAAY,OAASpiD,UAAU,mBAAkBkI,SAAEvJ,KAAKC,MAAM6Z,KAAK+P,WAAa7pB,KAAKC,MAAM6Z,KAAKsoC,UAAS,IAAA1gD,OAAO1B,KAAKC,MAAM6Z,KAAKsoC,WAAc,OAC7JxhD,eAAA,YAEFA,eAAA,OAAKS,UAAU,MAAKkI,SACjBvJ,KAAKC,MAAM6Z,KAAK4nC,cAAcl4C,KAAI,CAACsE,EAAM0R,KAC1C,MAAMkkC,EAAc1jD,KAAKC,MAAM6Z,KAAK4nC,cACpC,OAAOp4C,gBAAA,QAAoBmI,MAAO,CAAEgyC,WAAY,OAASpiD,UAAU,wBAAuBkI,SAAA,CAAEuE,EAAKgE,GAAK4xC,EAAc1kD,OAAO,GAAKwgB,GAAIkkC,EAAc1kD,OAAO,EAAI,KAAK,KAAhJ8O,EAAKgE,GAAqJ,MAI7K9R,KAAK4iD,UACNt5C,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClBD,gBAAA,OAAKjI,UAAU,iCAAgCkI,SAAA,CAC7C3I,eAAA,QAAMS,UAAU,8CAA6CkI,SAAC,kCAC9D3I,eAAA,SAAO+N,YAAY,aAAautC,WAAS,EAAC76C,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAK8P,UAAW3oB,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,YAAY,OAE1MtB,gBAAA,OAAKjI,UAAU,iCAAgCkI,SAAA,CAC7C3I,eAAA,QAAMS,UAAU,8CAA6CkI,SAAC,iCAC9D3I,eAAA,SAAO+N,YAAY,YAAYtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAK+P,SAAU5oB,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,WAAW,UAG7LtB,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CACpBD,gBAAA,OAAKjI,UAAU,iCAAgCkI,SAAA,CAC7C3I,eAAA,QAAMS,UAAU,8CAA6CkI,SAAC,qCAC9D3I,eAACs1C,KAAS,CAACvnC,YAAY,iBAAiBtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKoqB,YAAajjC,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,cAAc,EAAIqrC,KAAK,iBAAiB0N,SAAS,SAE/Or6C,gBAAA,OAAKjI,UAAU,iCAAgCkI,SAAA,CAC7C3I,eAAA,QAAMS,UAAU,8CAA6CkI,SAAC,6BAC9D3I,eAAA,SAAO+N,YAAY,cAActN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAK1b,MAAO6C,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,QAAQ,UAGzLtB,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClBD,gBAAA,OAAKjI,UAAU,iCAAgCkI,SAAA,CAC7C3I,eAAA,QAAMS,UAAU,8CAA6CkI,SAAC,sBAC9D3I,eAAA,SAAO+N,YAAY,oBAAoButC,WAAS,EAAC76C,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKqoC,WAAYlhD,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,aAAa,OAEnNtB,gBAAA,OAAKjI,UAAU,iCAAgCkI,SAAA,CAC7C3I,eAAA,QAAMS,UAAU,8CAA6CkI,SAAC,qBAC9D3I,eAAA,SAAO+N,YAAY,oBAAoBtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKsoC,UAAWnhD,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,YAAY,UAIzMtB,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClBD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,yBAClD3I,eAACs1C,KAAS,CAACvnC,YAAY,iBAAiBtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKuoC,uBAAwBphD,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,yBAAyB,EAAIqrC,KAAK,iBAAiB0N,SAAS,SAErQr6C,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,kBAClD3I,eAAA,SAAO+N,YAAY,cAActN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKwoC,gBAAiBrhD,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,kBAAkB,UAG/MtB,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClBD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,mBAClD3I,eAAA,SAAO+N,YAAY,UAAUtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKyoC,cAAethD,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,gBAAgB,OAErMtB,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,UAClD3I,eAAA,SAAO+N,YAAY,OAAOtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKsqB,KAAMnjC,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,OAAO,UAGlLtB,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClBD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,UAElD3I,eAACqgD,KAAM,CACP5/C,UAAU,gBACViN,gBAAgB,gBAChBC,cAAc,EACdE,SAAS,EACTD,aAAa,EACbE,QAAS1O,KAAK+iD,YACdp0C,YAAa,sBACb1N,SAAW2iD,IACT5jD,KAAK07C,aAAakI,EAAW,QAAQ,OAIzCt6C,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,SAClD3I,eAAA,SAAO+N,YAAY,MAAMtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKuqB,IAAKpjC,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,MAAM,UAG/KhK,eAAA,OAAKS,UAAU,MAAKkI,SACpBD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,mBAElD3I,eAACijD,eAAS,CACVl1C,YAAY,eACZkyB,WAAY,CAGVijB,cAAe,uDAUjBC,KAAM/jD,KAAKC,MAAM6Z,KAAK4nC,cACtB4B,WAAYA,EACZ7B,aAAczhD,KAAKyhD,aACnBE,eAAgB3hD,KAAK2hD,eACrBC,gBAAiB5hD,KAAK4hD,gBACtBC,WAAY7hD,KAAK6hD,WACjBmC,mBAAmB,SACnBC,cAAY,IAEdrjD,eAAA,KAAGS,UAAU,mDAAkDkI,SAAC,kGAIlED,gBAAA,OAAAC,SAAA,CAEE3I,eAACioC,KAAM,CAACC,UAAW9oC,KAAK67C,aAAe77C,KAAKC,MAAMyiD,mBAAoBrhD,UAAU,2DAA2Do+B,QAASA,KAAQz/B,KAAKF,MAAMy9B,KAAKv9B,KAAKC,MAAM6Z,KAAM9Z,KAAKF,MAAMokD,KAAK,EAAG36C,SAAC,SACjN3I,eAACioC,KAAM,CAACC,UAAW9oC,KAAKC,MAAMyiD,mBAAoBrhD,UAAU,wDAAwDo+B,QAASA,KAAKz/B,KAAKF,MAAMqkD,KAAK,CAAC,EAAEnkD,KAAKF,MAAMokD,KAAK,EAAE36C,SAAC,YAUxKD,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAMuiD,UAAWnhD,UAAW,aAAc8Q,OAASvH,IAAY5K,KAAKmB,SAAS,CAACqhD,WAAU,GAAO,EAAGj5C,SAAA,CAC7H3I,eAACsnC,KAAW,CAAA3+B,SAAC,qBACbD,gBAAC6+B,KAAS,CAAA5+B,SAAA,CACTvJ,KAAK27C,YACN/6C,eAAA,OAAKS,UAAU,GAAEkI,SACjB3I,eAAA,OAAKS,UAAU,MAAKkI,SACpBD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CACxB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,uBAClD3I,eAAA,SAAO+N,YAAY,qBAAqButC,WAAS,EAAC76C,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKqnC,qBAAsBlgD,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,uBAAuB,cAK1OtB,gBAACs/B,KAAW,CAAAr/B,SAAA,CACJ3I,eAACioC,KAAM,CAACzV,MAAM,QAAQ/xB,UAAU,UAAUo+B,QAASz/B,KAAK2iD,mBAAmBp5C,SAAC,WAChF3I,eAACioC,KAAM,CAACxnC,UAAU,YAAYo+B,QAASA,IAAIz/B,KAAKmB,SAAS,CAACqhD,WAAU,IAAQj5C,SACvEO,GAAGC,EAAE,4BAIlBnJ,eAACwgD,GAAe,CAACrgD,QAAU2H,IAAiB,GAANA,GAAW1I,KAAKijD,iBAAiB,EAAG/wC,OAAQlS,KAAKC,MAAMkjD,QAAS/wC,QAASpS,KAAKC,MAAM+iD,WAAYhH,MAAOh8C,KAAKgjD,gBAKhJ15C,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzBD,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACnBD,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACnB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,eAClD3I,eAAA,SAAO+N,YAAY,aAAautC,WAAS,EAAC76C,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAK8P,UAAW3oB,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,YAAY,OAE1MtB,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACnB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,cAClD3I,eAAA,SAAO+N,YAAY,YAAYtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAK+P,SAAU5oB,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,WAAW,OAE7LtB,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACnB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,UAClD3I,eAACs1C,KAAS,CAACvnC,YAAY,iBAAiBtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAKoqB,YAAajjC,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,cAAc,EAAIqrC,KAAK,iBAAiB0N,SAAS,SAE/Or6C,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACnB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,UAClD3I,eAAA,SAAO+N,YAAY,cAActN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAM6Z,KAAK1b,MAAO6C,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,QAAQ,UAG3LtB,gBAAA,OAAAC,SAAA,CACE3I,eAACioC,KAAM,CAACC,UAAW9oC,KAAK67C,WAAYx6C,UAAU,2DAA2Do+B,QAASA,KAAQz/B,KAAKF,MAAMy9B,KAAKv9B,KAAKC,MAAM6Z,KAAM9Z,KAAKF,MAAMokD,KAAK,EAAG36C,SAAC,SAC/K3I,eAACioC,KAAM,CAACxnC,UAAU,wDAAwDo+B,QAASA,KAAKz/B,KAAKF,MAAMqkD,KAAK,CAAC,EAAEnkD,KAAKF,MAAMokD,KAAK,EAAE36C,SAAC,eAK/Hg6C,CACT,CACA,OACE3iD,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAGnD,ECpYa,MAAMuyC,WAAsBxkD,YAEzCC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAQ,CACX2K,MAAOd,GAAGc,MAAMwgB,MAEpB,CAEAi5B,aAAaC,GAEXtkD,KAAKF,MAAMy9B,KAAK+mB,EAAMtkD,KAAKF,MAAMokD,KACnC,CACAxjD,SACE,MAAM,aAAE6jD,GAAiBvkD,KAAKF,MAC9B,OAAKykD,GAAgBz6C,GAAG2pB,UAAU3pB,GAAG06C,gBAAmB16C,GAAG2pB,UAAU3pB,GAAGc,MAAOd,GAAG06C,eAE9El7C,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,OAAKS,UAAU,yCAAwCkI,SACrDD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClB3I,eAAA,OAAKS,UAAU,UAASkI,SACtB3I,eAAA,SAAOS,UAAU,OAAMkI,SAAC,2BAE1B3I,eAAA,OAAKS,UAAU,UAAUoO,OAASzP,KAAKC,MAAM2K,QAA4C,IAAnC5K,KAAKC,MAAM2K,MAAM65C,eAA4BF,EAAah7C,SAC9G3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKF,MAAMqkD,KAAK,CAAC,EAAGnkD,KAAKF,MAAMokD,MAAO7iD,UAAU,wCAAuCkI,SAAC,kBAIrH3I,eAAA,OAAKS,UAAU,0BAAyBkI,SACrCvJ,KAAKF,MAAMyH,MAAMiC,KAAI,CAAC86C,EAAKn7C,IAC1BG,gBAAA,OAAKjI,UAAU,iDAAgDkI,SAAA,CAC7D3I,eAAA,OAAKS,UAAU,UAASkI,SAAC3I,eAAA,MAAIS,UAAU,OAAMkI,SAAE+6C,EAAKz6C,UACpDjJ,eAAA,OAAKS,UAAU,UAASkI,UAEK,IAAxB+6C,EAAKI,eACF9jD,eAAA,OAAKS,UAAU,gEAA+DkI,SAAC,kBAC/E3I,eAAA,OAAK6+B,QAASA,MACc,IAAxB6kB,EAAKI,gBACP1kD,KAAKqkD,aAAaC,EAAK,EACxBjjD,UAAU,mEAAkEkI,SAAE,kBATpBJ,UAmB7EvI,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAGnD,ECtDa,MAAM8yC,WAAqB/kD,YACtCC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MACL,CACI8H,OAAQ,CAAC,UAAU,WAAW,QAAQ,QAAQ,MAAM,OAAO,OAAO,SAAS,YAAY,UAAW,WAAW,YAC7GW,KAAM1I,KAAKF,MAAM4I,KACjBpI,KAAM,IAAIyB,MAEd/B,KAAK4kD,OAAS5kD,KAAK4kD,OAAO90C,KAAK9P,MAC/BA,KAAK6kD,SAAW7kD,KAAK6kD,SAAS/0C,KAAK9P,MACnCA,KAAK8kD,OAAS9kD,KAAK8kD,OAAOh1C,KAAK9P,MAC/BA,KAAK+kD,SAAW/kD,KAAK+kD,SAASj1C,KAAK9P,KACvC,CAEA8kD,OAAOE,EAAIC,GACP,IAAIC,EAAOllD,KAAKC,MAAMyI,KAAKu8C,GAAID,GAK/B,OAJAE,EAAKC,IAAM,iCACRD,EAAKE,UACJF,EAAKC,IAAM,oCAERD,CACX,CAEAL,WACI,IAAIz/C,EAAKpF,KAAKC,MAAMK,KACpB8E,EAAGigD,SAASjgD,EAAGkgD,WAAa,GAC5BtlD,KAAKmB,SAAS,CAAEb,KAAM8E,EAAGsD,KAAM1I,KAAKF,MAAMylD,iBAAiBngD,IAE/D,CAEAw/C,SACI,IAAIx/C,EAAKpF,KAAKC,MAAMK,KACpB8E,EAAGigD,SAASjgD,EAAGkgD,WAAa,GAC5BtlD,KAAKmB,SAAS,CAAEb,KAAM8E,EAAGsD,KAAM1I,KAAKF,MAAMylD,iBAAiBngD,IAC/D,CAEA2/C,SAASpgD,EAAKygD,EAASI,EAAOC,EAAKC,GAC/B,IAAIplD,EAAOH,KAAMqE,QAAQG,EAAI6B,MAAM,KAAK,GAAG,YAC3CxG,KAAKF,MAAM6lD,WAAWxlD,KAAMa,KAAKV,GACrC,CAEAslD,QAAQF,GACJ,OAAOp8C,gBAAA,MAAAC,SAAA,CACHD,gBAAA,MAAIu8C,MAAM,SAASpmB,QAASA,IAAMz/B,KAAK+kD,SAAS/kD,KAAK8kD,OAAO,EAAGY,GAAM/gD,IAAK3E,KAAK8kD,OAAO,EAAGY,GAAMN,QAASplD,KAAK8kD,OAAO,EAAGY,GAAMF,MAAO,EAAGE,GAAOrkD,UAAWrB,KAAK8kD,OAAO,EAAGY,GAAMP,IAAI57C,SAAA,CAAEvJ,KAAK8kD,OAAO,EAAGY,GAAM77C,MAAM,OAAMjJ,eAAA,QAAMS,UAAU,sBAAqBkI,SAAEvJ,KAAK8kD,OAAO,EAAGY,GAAMI,cACjRx8C,gBAAA,MAAIu8C,MAAM,SAASpmB,QAASA,IAAMz/B,KAAK+kD,SAAS/kD,KAAK8kD,OAAO,EAAGY,GAAM/gD,IAAK3E,KAAK8kD,OAAO,EAAGY,GAAMN,QAASplD,KAAK8kD,OAAO,EAAGY,GAAMF,MAAO,EAAGE,GAAOrkD,UAAWrB,KAAK8kD,OAAO,EAAGY,GAAMP,IAAI57C,SAAA,CAAEvJ,KAAK8kD,OAAO,EAAGY,GAAM77C,MAAM,OAAMjJ,eAAA,QAAMS,UAAU,sBAAqBkI,SAAEvJ,KAAK8kD,OAAO,EAAGY,GAAMI,cACjRx8C,gBAAA,MAAIu8C,MAAM,SAASpmB,QAASA,IAAMz/B,KAAK+kD,SAAS/kD,KAAK8kD,OAAO,EAAGY,GAAM/gD,IAAK3E,KAAK8kD,OAAO,EAAGY,GAAMN,QAASplD,KAAK8kD,OAAO,EAAGY,GAAMF,MAAO,EAAGE,GAAOrkD,UAAWrB,KAAK8kD,OAAO,EAAGY,GAAMP,IAAI57C,SAAA,CAAEvJ,KAAK8kD,OAAO,EAAGY,GAAM77C,MAAM,OAAMjJ,eAAA,QAAMS,UAAU,sBAAqBkI,SAAEvJ,KAAK8kD,OAAO,EAAGY,GAAMI,cACjRx8C,gBAAA,MAAIu8C,MAAM,SAASpmB,QAASA,IAAMz/B,KAAK+kD,SAAS/kD,KAAK8kD,OAAO,EAAGY,GAAM/gD,IAAK3E,KAAK8kD,OAAO,EAAGY,GAAMN,QAASplD,KAAK8kD,OAAO,EAAGY,GAAMF,MAAO,EAAGE,GAAOrkD,UAAWrB,KAAK8kD,OAAO,EAAGY,GAAMP,IAAI57C,SAAA,CAAEvJ,KAAK8kD,OAAO,EAAGY,GAAM77C,MAAM,OAAMjJ,eAAA,QAAMS,UAAU,sBAAqBkI,SAAEvJ,KAAK8kD,OAAO,EAAGY,GAAMI,cACjRx8C,gBAAA,MAAIu8C,MAAM,SAASpmB,QAASA,IAAMz/B,KAAK+kD,SAAS/kD,KAAK8kD,OAAO,EAAGY,GAAM/gD,IAAK3E,KAAK8kD,OAAO,EAAGY,GAAMN,QAASplD,KAAK8kD,OAAO,EAAGY,GAAMF,MAAO,EAAGE,GAAOrkD,UAAWrB,KAAK8kD,OAAO,EAAGY,GAAMP,IAAI57C,SAAA,CAAEvJ,KAAK8kD,OAAO,EAAGY,GAAM77C,MAAM,OAAMjJ,eAAA,QAAMS,UAAU,sBAAqBkI,SAAEvJ,KAAK8kD,OAAO,EAAGY,GAAMI,cACjRx8C,gBAAA,MAAIu8C,MAAM,SAASpmB,QAASA,IAAMz/B,KAAK+kD,SAAS/kD,KAAK8kD,OAAO,EAAGY,GAAM/gD,IAAK3E,KAAK8kD,OAAO,EAAGY,GAAMN,QAASplD,KAAK8kD,OAAO,EAAGY,GAAMF,MAAO,EAAGE,GAAOrkD,UAAWrB,KAAK8kD,OAAO,EAAGY,GAAMP,IAAI57C,SAAA,CAAEvJ,KAAK8kD,OAAO,EAAGY,GAAM77C,MAAM,OAAMjJ,eAAA,QAAMS,UAAU,sBAAqBkI,SAAEvJ,KAAK8kD,OAAO,EAAGY,GAAMI,cACjRx8C,gBAAA,MAAIu8C,MAAM,SAASpmB,QAASA,IAAMz/B,KAAK+kD,SAAS/kD,KAAK8kD,OAAO,EAAGY,GAAM/gD,IAAK3E,KAAK8kD,OAAO,EAAGY,GAAMN,QAASplD,KAAK8kD,OAAO,EAAGY,GAAMF,MAAO,EAAGE,GAAOrkD,UAAWrB,KAAK8kD,OAAO,EAAGY,GAAMP,IAAI57C,SAAA,CAAEvJ,KAAK8kD,OAAO,EAAGY,GAAM77C,MAAM,OAAMjJ,eAAA,QAAMS,UAAU,sBAAqBkI,SAAEvJ,KAAK8kD,OAAO,EAAGY,GAAMI,gBAEzR,CAGA,+BAAOrF,CAAyB3gD,EAAO4gD,GACnC,OAAIA,EAAch4C,OAAS5I,EAAM4I,KAExB,CACLA,KAAM5I,EAAM4I,MAGT,IACT,CAEFhI,SAES,OADL6L,QAAQC,IAAIxM,KAAKC,OAERW,eAAA,OAAA2I,SACI3I,eAAA,OAAKS,UAAU,YAAWkI,SACtB3I,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAChB3I,eAAA,SAAOS,UAAU,uBAAsBkI,SACnCD,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAI3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAK6kD,WAAYxjD,UAAU,8BAA6BkI,SAAC,WACpF3I,eAAA,MAAIilD,MAAM,SAAShiB,QAAS,EAAEt6B,SAAC3I,eAAA,KAAA2I,SAAIvJ,KAAKC,MAAM8H,OAAO/H,KAAKC,MAAMK,KAAKglD,gBACrE1kD,eAAA,MAAIilD,MAAM,QAAOt8C,SAAC3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAK4kD,SAAUvjD,UAAU,8BAA6BkI,SAAC,mBAIxGD,gBAAA,SAAOjI,UAAU,uBAAsBkI,SAAA,CAGnCD,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,SACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,WAGPvJ,KAAK4lD,QAAQ,GACb5lD,KAAK4lD,QAAQ,GACb5lD,KAAK4lD,QAAQ,GACb5lD,KAAK4lD,QAAQ,GACb5lD,KAAK4lD,QAAQ,GACb5lD,KAAK4lD,QAAQ,cAmB/C,ECjHW,MAAMG,WAA2BnmD,YAC5CC,YAAYC,GACRC,MAAMD,GAAO,KA8BjBkmD,gBAAmBp7C,IACf,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAKr8B,UAAYhf,EAAMkC,OAAOpQ,MAC9BsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDC,eAAkBt7C,IACd,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAKp8B,SAAWjf,EAAMkC,OAAOpQ,MAC7BsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDE,YAAev7C,IACX,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAK/hB,YAAct5B,EAAMkC,OAAOpQ,MAChCsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDG,kBAAqBx7C,IACjB,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAKI,aAAez7C,EAAMkC,OAAOpQ,MACjCsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDK,cAAiB17C,IACb,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAKM,SAAW37C,EAAMkC,OAAOpQ,MAC7BsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDO,WAAc57C,IACV,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAK7hB,KAAOx5B,EAAMkC,OAAOpQ,MACzBsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDQ,YAAe77C,IACX,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAKhmD,MAAQ2K,EAAMkC,OAAOpQ,MAC1BsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDS,UAAa97C,IACT,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAK5hB,IAAMz5B,EAAMkC,OAAOpQ,MACxBsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EAChC,KAEDU,YAAe/7C,IACX,IAAIq7C,EAAOjmD,KAAKC,MAAMyI,KACtBu9C,EAAKW,MAAQh8C,EAAMkC,OAAOpQ,MAC1BsD,KAAKmB,SAAS,CAAEuH,KAAMu9C,GAAO,EA/E7BjmD,KAAK6mD,QAAU7mD,KAAK6mD,QAAQ/2C,KAAK9P,MACjCA,KAAK8mD,WAAa9mD,KAAK8mD,WAAWh3C,KAAK9P,MAEvCA,KAAKC,MACL,CACI8mD,eAAe,EACfC,aAAa,EACbC,gBAAgB,EAChBC,QAAS,GACTC,UAAW,GACXC,aAAc,GACd1+C,KAAM1I,KAAKF,MAAM4I,KACjB2+C,kBAAmB,GAE3B,CAEAR,QAAQj8C,GACJ5K,KAAKmB,SAAS,CAAE+lD,QAASt8C,EAAMkC,OAAOpQ,OAC1C,CAEAoqD,WAAWl8C,GACP5K,KAAKmB,SAAS,CAAEgmD,UAAWv8C,EAAMkC,OAAOpQ,OAC5C,CAEA4qD,iBACItnD,KAAKmB,SAAS,CAAE8lD,gBAAgB,GACpC,CAwDAtL,YACI,GAAoC,IAAhC37C,KAAKC,MAAMonD,kBACX,OAAOzmD,eAAA,OAAKS,UAAU,MAAKkI,SACvB3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,qBAAqBg7B,KAAK,QAAO9yB,SAC3CvJ,KAAKC,MAAMonD,uBAKhC,CAEAE,cACI,GAAIvnD,KAAKC,MAAMgnD,eACX,OAAOrmD,eAAA,OAAKS,UAAU,OAAMkI,SACxBD,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CAErBvJ,KAAK27C,YAEN/6C,eAAA,OAAKS,UAAU,MAAKkI,SAEhBD,gBAAA,SAAAC,SAAA,CACI3I,eAAA,MAAA2I,SACI3I,eAAA,MAAA2I,SAAI,YAER3I,eAAA,MAAA2I,SACI3I,eAAA,MAAA2I,SAAI3I,eAACs1C,KAAS,CAAC70C,UAAU,eAAe3E,MAAOsD,KAAKC,MAAMyI,KAAKw7B,YAAajjC,SAAUjB,KAAKmmD,YAAYr2C,KAAK9P,MAAOi2C,KAAK,iBAAiB0N,SAAS,eAK9J/iD,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,UAASkI,SAAC,WAE7B3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,UAASkI,SAAC3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKwnD,cAAa,GAAOnmD,UAAU,6BAA4BkI,SAAC,iBAIpI,CAEAi+C,aAAaC,GACT,IAAI9mD,EAAOX,KACX8J,GAAGuM,SAASma,WAAW,CAAEk3B,cAAe1nD,KAAKC,MAAMyI,KAAKi/C,cAAeC,aAAc,YAAaH,UAAWA,EAAUvjB,YAAYlkC,KAAKC,MAAMyI,KAAKw7B,aACnJ,KAAMjiB,EAAO3I,UAAU8D,iBAAkB,CAAC,GACrC7P,MAAM7C,IACH,GAAGA,EAAQ,CACP,IAAIhC,EAAOqW,OAAOyI,OAAO,CAAC,EAAG7mB,EAAKV,MAAMyI,KAAM,CAAE++C,UAAWA,IAC3D9mD,EAAKQ,SAAS,CAAEuH,KAAMA,IACtB/H,EAAKb,MAAM+nD,gBAAgB7nD,KAAKC,MAAMyI,KAAK++C,EAC/C,IAEZ,CAEAK,yBACI,IAAkC,IAA9B9nD,KAAKC,MAAMyI,KAAK++C,UAAoB,CACpC,IAAI9oC,EAAI,GACoB,IAADopC,EAEpBC,EAFP,GAAGhoD,KAAKF,MAAMmoD,YACVtpC,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAO0B,6BAA8B,CAAEoQ,OAAQ9mB,KAAKC,MAAMyI,KAAKw/C,OAAQrpB,UAAmC,QAA1BkpB,EAAE/nD,KAAKC,MAAMyI,KAAK6W,gBAAQ,IAAAwoC,OAAA,EAAxBA,EAA0BI,UAAWT,cAAe1nD,KAAKC,MAAMyI,KAAKi/C,cAAejkB,WAAY1jC,KAAKF,MAAM4I,KAAK6W,SAASzN,UAEtO6M,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAOyB,sBAAuB,CAAEqQ,OAAQ9mB,KAAKC,MAAMyI,KAAKw/C,OAAQrpB,UAAmC,QAA1BmpB,EAAEhoD,KAAKC,MAAMyI,KAAK6W,gBAAQ,IAAAyoC,OAAA,EAAxBA,EAA0BG,UAAWT,cAAe1nD,KAAKC,MAAMyI,KAAKi/C,gBAE/K,OAAQ/mD,eAACioC,KAAM,CAACpJ,QAASA,KACrB31B,GAAG+xB,WAAWld,EAAI,EAClBtd,UAAU,qCAAoCkI,SAAC,cACvD,CACJ,CAEA6+C,sBACI,IAAKpoD,KAAKC,MAAMyI,KAAK2/C,UACjB,OAAQznD,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKmxC,UAAW9vC,UAAU,sCAAqCkI,SAAC,aACvG,CAEA++C,gBACI,GAA+B,IAA3BtoD,KAAKC,MAAMyI,KAAK6/C,QAChB,OAAOj/C,gBAAA,OAAAC,SAAA,CAAK3I,eAAA,KAAA2I,SAAG,QAAO,IAAEvJ,KAAKC,MAAMyI,KAAK6/C,UAChD,CAEAC,qBAEI,OAAQ5nD,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKoxC,SAAU/vC,UAAU,qCAAoCkI,SAAC,UACjG,CAEA4nC,UACI,IAAIxwC,EAAOX,KACX8J,GAAGuM,SAASma,WAAW,CAAEk3B,cAAe1nD,KAAKC,MAAMyI,KAAKi/C,cAAeC,aAAc,YAAaS,WAAW,GAAQ,KAAMpmC,EAAO3I,UAAU8D,iBAAkB,CAAC,GAC1J7P,MAAM7C,IACH,GAAGA,EAAQ,CACP,IAAIhC,EAAOqW,OAAOyI,OAAO,CAAC,EAAG7mB,EAAKV,MAAMyI,KAAM,CAAE2/C,WAAW,IAC3D1nD,EAAKQ,SAAS,CAAEuH,KAAMA,GAC1B,IAEZ,CAEA0oC,SACI,IAAIzwC,EAAOX,KACX8J,GAAGuM,SAASma,WAAW,CAAEk3B,cAAe1nD,KAAKC,MAAMyI,KAAKi/C,cAAeC,aAAc,YAAaa,WAAW,GAAQ,KAAMxmC,EAAO3I,UAAU8D,iBAAkB,CAAC,GAC1J7P,MAAM7C,IACH,GAAGA,EAAQ,CACP,IAAIhC,EAAOqW,OAAOyI,OAAO,CAAC,EAAG7mB,EAAKV,MAAMyI,KAAM,CAAEggD,UAAU,IAC1D/nD,EAAKQ,SAAS,CAAEuH,KAAMA,GAC1B,IAEZ,CAGAhI,SAEI,OADA6L,QAAQC,IAAI,YAAD9K,OAAa1B,KAAKC,MAAMyI,KAAKggD,WACpC1oD,KAAKC,MAAMyI,KAAKggD,SAEZ9nD,eAAA,OAAKS,UAAU,2BAA0BkI,SAAC,4BAM9CvJ,KAAKC,MAAMyI,KAAK++C,UAKJ7mD,cAHR,CAGQ,UAAQ6+B,QAASA,IAAMz/B,KAAKwnD,cAAa,GAAQnmD,UAAU,sCAAqCkI,SAAC,YAQzGD,gBAAA,QAAAC,SAAA,CACSvJ,KAAK8nD,yBACJ9nD,KAAKF,MAAMmoD,YAEX,KADErnD,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKwnD,cAAa,GAAOnmD,UAAU,sCAAqCkI,SAAC,YAEnGvJ,KAAKooD,sBACLpoD,KAAKwoD,qBACV5nD,eAAA,OAAKS,UAAU,MAAKkI,SACfvJ,KAAKunD,kBAI1B,ECpOJ,MAAMlM,GAAc,CAClBC,SAAS,EACTkH,WAAU,EACVlsB,MAAK,EACLqyB,cAAa,EACbC,WAAU,EACVC,QAAO,EACPC,kBAAkB,GAClBC,mBAAmB,IAEN,MAAMC,WAAsBppD,YACzCC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAQo7C,GACbr7C,KAAKgjD,WAAahjD,KAAKgjD,WAAWlzC,KAAK9P,MACvCA,KAAKijD,gBAAkBjjD,KAAKijD,gBAAgBnzC,KAAK9P,MACjDA,KAAKipD,aAAejpD,KAAKipD,aAAan5C,KAAK9P,MAC3CA,KAAKkpD,UAAYlpD,KAAKkpD,UAAUp5C,KAAK9P,MACrCA,KAAKmpD,eAAiBnpD,KAAKmpD,eAAer5C,KAAK9P,MAC/CA,KAAKopD,mBAAqBppD,KAAKopD,mBAAmBt5C,KAAK9P,MACvDA,KAAKqpD,kBAAoBrpD,KAAKqpD,kBAAkBv5C,KAAK9P,KACvD,CACAkpD,UAAUxgD,GACR,GAAGA,EAAK4gD,UAEN,GAAItpD,KAAKC,MAAM6oD,kBAAkBS,SAAS7gD,EAAK68B,UAIxC,CACL,MAAMujB,EAAoB9oD,KAAKC,MAAM6oD,kBAAkBr4C,QAAQ+4C,GAAaA,IAAa9gD,EAAK68B,WAC9FvlC,KAAKmB,SAAS,CACZ2nD,qBAEJ,MARE9oD,KAAKmB,SAAS,CACZ2nD,kBAAmB,IAAI9oD,KAAKC,MAAM6oD,kBAAmBpgD,EAAK68B,iBAS9D,GAAIvlC,KAAKC,MAAM8oD,mBAAmBQ,SAAS7gD,EAAK+gD,YAIzC,CACL,MAAMV,EAAqB/oD,KAAKC,MAAM8oD,mBAAmBt4C,QAAQ+4C,GAAaA,IAAa9gD,EAAK+gD,aAChGzpD,KAAKmB,SAAS,CACZ4nD,sBAEJ,MARE/oD,KAAKmB,SAAS,CACZ4nD,mBAAoB,IAAI/oD,KAAKC,MAAM8oD,mBAAoBrgD,EAAK+gD,aAUpE,CAIAzG,aACEhjD,KAAKmB,SAAS,CAAC+Q,QAAO,GACxB,CACA+wC,kBACEjjD,KAAKmB,SAAS,CAACynD,WAAU,IACzB5oD,KAAKgjD,YACP,CACAiG,aAAa3yB,GAEXt2B,KAAKF,MAAMy9B,KAAKjH,EAAMt2B,KAAKF,MAAMokD,MACjClkD,KAAKmB,SAASk6C,GAChB,CAGA8N,eAAezgD,GACb,IAA0B,IAAvB1I,KAAKC,MAAM2oD,UAAkB,OAAO,EACvC,MAAMc,EAAmB1pD,KAAKC,MAAM6oD,kBAAkBj7C,MAAKy+B,GAAMA,IAAO5jC,EAAK68B,WACvEokB,EAAoB3pD,KAAKC,MAAM8oD,mBAAmBl7C,MAAKy+B,GAAMA,IAAO5jC,EAAK+gD,aAC/E,SAAGC,IAAoBC,EAKzB,CACA,wBAAMP,GACJ,MAAMzoD,EAAMX,KACZA,KAAKmB,SAAS,CAACm6C,SAAQ,IACvB,MAAMwN,EAAoB9oD,KAAKC,MAAM6oD,kBAC/BC,EAAqB/oD,KAAKC,MAAM8oD,mBACtC,GAAGD,EAAkB9pD,OAAO,CAC1B,IAAI4qD,EAAY,GAChB,IAAI,MAAMltD,KAASosD,EACjBc,EAAU5iD,KAAK,CACb,WAAc8C,GAAGyV,SAAS6L,MAAMsY,WAChC,SAAW,GAADhiC,OAAK1B,KAAKF,MAAM+pD,aAAarE,MAAK,KAAA9jD,OAAIhF,WAG9CoN,GAAGggD,eAAev5B,YAAY,CAClCq5B,UAAUA,GACV,CAAC,EAAE3nC,EAAO3I,UAAUgD,uBAAuB,CAAC,GAAG/O,MAAM7C,IACrD/J,EAAKQ,SAAS,CAACm6C,SAAQ,GAAO,GAElC,CACGyN,EAAmB/pD,cACd8K,GAAGggD,eAAep5B,cAAc,CACpCq5B,YAAYhB,GACZ,CAAC,EAAE9mC,EAAO3I,UAAUgD,uBAAuB,CAAC,GAAG/O,MAAM7C,IACrD/J,EAAKQ,SAAS,CAACm6C,SAAQ,GAAO,IAIlCt7C,KAAKF,MAAMkqD,UAAUhqD,KAAKF,MAAM+pD,aAAarE,OAC7CxlD,KAAKmB,SAAS,CACZ2nD,kBAAkB,GAClBC,mBAAmB,GACnBH,WAAU,GAEd,CACAS,oBACE98C,QAAQC,IAAIxM,KAAKC,MAAM2oD,YACG,IAAvB5oD,KAAKC,MAAM2oD,UACZ5oD,KAAKmB,SAAS,CAAC+Q,QAAO,IAEtBlS,KAAKopD,oBAGT,CAEA1oD,SACE,MAAM,aAAE6jD,EAAe,MAASvkD,KAAKF,MACrC,OAAGE,KAAKC,MAAMq7C,QACP16C,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,UAChD0yC,GAAgBz6C,GAAG2pB,UAAU3pB,GAAGc,OAEhCtB,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,OAAKS,UAAU,+BAA8BkI,SAC3CD,gBAAA,SAAOjI,UAAU,OAAMkI,SAAA,CAAC,uBAAqBvJ,KAAKF,MAAMQ,KAAK,SAK9DN,KAAKF,MAAMmqD,MAAMzgD,KAAI,CAAC8sB,EAAKntB,SACL5E,IAAlB+xB,EAAKmzB,WAGEngD,gBAAA,OAAKjI,UAAS,oDAAAK,OAAsD1B,KAAKmpD,eAAe7yB,GAAM,eAAe,UACrHmJ,SACyB,IAAvBz/B,KAAKC,MAAM2oD,UAAkBh+C,IAAY5K,KAAKkpD,UAAU5yB,EAAK,EAAI1rB,KAAgC,IAAnB0rB,EAAKgzB,WAAmBtpD,KAAKipD,aAAa3yB,EAAKiP,SAAS,EACvIh8B,SAAA,CAEC3I,eAAA,OAAKS,UAAU,8BAA6BkI,SAC9C3I,eAAA,MAAIS,UAAU,OAAMkI,SAAG+sB,EAAKiP,cAEN,IAAvBvlC,KAAKC,MAAM2oD,WAAoBhoD,eAAA,OAAKS,UAAU,UAASkI,UAE5B,IAAnB+sB,EAAKgzB,UACF1oD,eAAA,OAAKS,UAAU,gEAA+DkI,SAAC,YAC/E3I,eAAA,OAAK6+B,QAASA,OACbp+B,UAAU,mEAAkEkI,SAAE,aAG/D,IAAvBvJ,KAAKC,MAAM2oD,YAAsC,IAAjBtyB,EAAKgzB,WAAqB1oD,eAAA,OAAKS,UAAU,UAASkI,SAE/E3I,eAAA,OAAKS,UAAU,gEAA+DkI,SAAC,sBAlBiDJ,GAwB/HvI,eAAA,OAAiBS,UAAU,qDAAqDo+B,QAAU70B,IAAY5K,KAAKipD,aAAa3yB,EAAK,EAAI/sB,SACxI3I,eAAA,MAAIS,UAAU,OAAMkI,SAAG+sB,KADNntB,KAMrBvI,eAACwgD,GAAe,CAACG,OAAQ,KAAMxgD,QAAU2H,IAAiB,GAANA,GAAW1I,KAAKijD,iBAAiB,EAAG/wC,OAAQlS,KAAKC,MAAMiS,OAAQE,QAASpS,KAAKC,MAAM+iD,WAAYhH,MAAOh8C,KAAKgjD,aAC/JpiD,eAACioC,KAAM,CAACxnC,UAAU,wDAAwDo+B,QAASA,KAAKz/B,KAAKF,MAAMqkD,KAAK,CAAC,EAAEnkD,KAAKF,MAAMokD,KAAK,EAAE36C,SAAC,SAC7HvJ,KAAKF,MAAMoqD,SAAUtpD,eAAA,OAAKS,UAAU,+BAA8BkI,SACjE3I,eAAA,UAAQS,UAAU,0EAA0Eo+B,QAASA,IAAIz/B,KAAKqpD,oBAAoB9/C,UAAyB,IAAvBvJ,KAAKC,MAAM2oD,UAAkB,gBAAgB,yBAOvLhoD,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAGnD,EC/KF,MAAMugB,WAAcziB,IAAM/P,UACxBuqD,YACE,OAAGnqD,KAAKF,MAAMuW,UACZ9J,QAAQC,IAAIxM,KAAKF,OACV,CACLgW,UAAW,GACXs0C,cAAe,GACfC,aAAc,GACdC,UAAW,GACXC,UAAW,GACX7mB,WAAY1jC,KAAKF,MAAMuW,SAASqtB,WAChC8mB,gBAAiB,GACjBC,YAAa,KACbljD,MAAO,GACPmjD,iBAAkB,CAAClF,MAAMxlD,KAAKF,MAAMuW,SAAS/V,MAC7C2pD,MAAO,GACPU,iBAAkB,KAClBC,OAAQ,KACRC,WAAW,EACXC,WAAY,KAEZC,aAAe,CACbj9C,KAAM,qBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAe,IAAIh4C,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,EAAOpW,MAAM,IACxFrX,KAAMzxB,gBACE9L,KAAKgqD,YACH,IAAIhqD,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,IAErDI,WAAYA,QAEdH,MAAO,CACLI,iBAAkB,CAChBv9C,KAAM,mBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAMK,YAAaN,SAAS,EAAOpW,MAAM,IAClFrX,KAAMA,KAAgB,IAAIv9B,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,KAEnEE,mBAAoB,CAClBp9C,KAAM,qBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAe,IAAIh4C,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,EAAOpW,MAAM,IAC1FrX,KAAMzxB,gBACE9L,KAAKgqD,YACH,IAAIhqD,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,IAEnDI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,EAAOpW,MAAM,KAE7F0W,YAAa,CACXx9C,KAAM,cACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAMK,YAAaN,SAAS,EAAOpW,MAAM,IAClFrX,KAAMA,KAAgB,IAAIv9B,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,IACjE7G,KAAMA,KAAe,IAAInkD,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,IACvEI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAMK,YAAaN,SAAS,EAAOpW,MAAM,KAEtFuW,YAAa,CACXr9C,KAAM,cACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,EAAOpW,MAAM,IAClFrX,KAAMA,KAAgB,IAAIv9B,KAAKC,MAAMgrD,MAAMM,eAAgBP,SAAS,IACpE7G,KAAMA,KAAe,IAAInkD,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,IACvEI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,EAAOpW,MAAM,KAEtF2W,eAAgB,CACdz9C,KAAM,iBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAMM,eAAgBP,SAAS,EAAOpW,MAAM,IACrFuP,KAAMA,KAAe,IAAInkD,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,IAChEI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAMM,eAAgBP,SAAS,EAAOpW,MAAM,QAMtF,CACL9+B,UAAW,GACXs0C,cAAe,GACfC,aAAc,GACdC,UAAW,GACXC,UAAW,GACX7mB,WAAY,KACZ8mB,gBAAiB,GACjBC,YAAa,KACbljD,MAAO,GACPmjD,iBAAkB,KAClBT,MAAO,GACPU,iBAAkB,KAClBC,OAAQ,KACRC,WAAW,EACXC,WAAY,KAEZC,aAAe,CACbj9C,KAAM,mBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAe,IAAIh4C,KAAKC,MAAMgrD,MAAMI,iBAAkBL,SAAS,EAAOpW,MAAM,IACtFrX,KAAMA,KAAgB,IAAIv9B,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,IACxEI,WAAYA,QAEdH,MAAO,CACLI,iBAAkB,CAChBv9C,KAAM,mBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAc,IAAIh4C,KAAKC,MAAMgrD,MAAMI,iBAAkBL,SAAS,EAAOpW,MAAM,IACrFrX,KAAMA,KAAe,IAAIv9B,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,KAEzEE,mBAAoB,CAClBp9C,KAAM,qBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,EAAOpW,MAAM,IACzFrX,KAAMA,KAAe,IAAIv9B,KAAKC,MAAMgrD,MAAMK,YAAaN,SAAS,IAChE7G,KAAMA,KAAe,IAAInkD,KAAKC,MAAMgrD,MAAMI,iBAAkBL,SAAS,IACrEI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,EAAOpW,MAAM,KAE7F0W,YAAa,CACXx9C,KAAM,cACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAMK,YAAaN,SAAS,EAAOpW,MAAM,IAClFrX,KAAMA,KAAgB,IAAIv9B,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,IACjE7G,KAAMA,KAAe,IAAInkD,KAAKC,MAAMgrD,MAAMC,mBAAoBF,SAAS,IACvEI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAMK,YAAaN,SAAS,EAAOpW,MAAM,KAEtFuW,YAAa,CACXr9C,KAAM,cACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,EAAOpW,MAAM,IAClFrX,KAAMA,KAAgB,IAAIv9B,KAAKC,MAAMgrD,MAAMM,eAAgBP,SAAS,IACpE7G,KAAMA,KAAe,IAAInkD,KAAKC,MAAMgrD,MAAMK,YAAaN,SAAS,IAChEI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,EAAOpW,MAAM,KAEtF2W,eAAgB,CACdz9C,KAAM,iBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNoD,SAAUA,KAAgB,IAAIh4C,KAAKC,MAAMgrD,MAAMM,eAAgBP,SAAS,EAAOpW,MAAM,IACrFuP,KAAMA,KAAe,IAAInkD,KAAKC,MAAMgrD,MAAME,YAAaH,SAAS,IAChEI,WAAYA,KAAgB,IAAIprD,KAAKC,MAAMgrD,MAAMM,eAAgBP,SAAS,EAAOpW,MAAM,MAKjG,CAEA/0C,YAAYC,GACVC,MAAMD,GAAO,KAwDfy9B,KAAOzxB,UACL,IAEE,IAAIksC,EAAWh4C,KAAKC,MAAM8qD,aAAa/S,WACnCza,QAAav9B,KAAKC,MAAM8qD,aAAaxtB,OACzCv9B,KAAKmB,SAAS,CACZ8pD,MAAQ,IAAIjrD,KAAKC,MAAMgrD,MAAO,CAACjT,EAASlqC,MAAOkqC,EAAU,CAACza,EAAKzvB,MAAOyvB,GACtEwtB,aAAcxtB,GAElB,CAAE,MAAMlT,GACN9d,QAAQC,IAAI,iBAAkB6d,EAChC,GACD,KAEDmhC,SAAW,KACT,IACE,IAAIJ,EAAaprD,KAAKC,MAAM8qD,aAAaK,aACrCjH,EAAOnkD,KAAKC,MAAM8qD,aAAa5G,OACnCnkD,KAAKmB,SAAS,CACZ8pD,MAAQ,IAAIjrD,KAAKC,MAAMgrD,MAAO,CAACG,EAAWt9C,MAAOs9C,EAAY,CAACjH,EAAKr2C,MAAOq2C,GAC1E4G,aAAc5G,GAElB,CAAE,MAAM95B,GACN9d,QAAQC,IAAI,qBAAsB6d,EACpC,GACD,KAsEDmU,OAAS,KACP,MAAM,MAAEysB,GAAUjrD,KAAKC,MACvB,OACEW,eAAC+O,IAAM87C,SAAQ,CAAAliD,SACbD,gBAAA,MAAIjI,UAAU,yFAAwFkI,SAAA,CACpG3I,eAAA,MAAIS,UAAW,sBAAyB4pD,EAAMI,iBAAiBL,SAAWC,EAAMI,iBAAiBzW,KAAS,OAAS,IAAIrrC,SACnH3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,eAElC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAyB4pD,EAAMC,mBAAmBF,SAAWC,EAAMC,mBAAmBtW,KAAQ,OAAS,IAAIrrC,SACtH3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,mBAElC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAyB4pD,EAAMK,YAAYN,SAAWC,EAAMK,YAAY1W,KAAQ,OAAS,IAAIrrC,SACxG3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,WAElC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAyB4pD,EAAME,YAAYH,SAAWC,EAAME,YAAYvW,KAAQ,OAAS,IAAIrrC,SACxG3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,WAElC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAyB4pD,EAAMM,eAAeP,SAAWC,EAAMM,eAAe3W,KAAQ,OAAS,IAAIrrC,SAC9G3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,kBAGrB,EA/KnB,IAAImiD,EAAc1rD,KAAKmqD,YACvBnqD,KAAKC,MAAQ,IACRyrD,EAEP,CAEAC,eACE,IAAID,EAAc1rD,KAAKmqD,YACvBnqD,KAAKmB,SAAS,IACTuqD,IACF,KACDn/C,QAAQC,IAAI,SAAUxM,KAAKC,OAC3BD,KAAKu/C,cAAc,GAEvB,CAEAA,eACE,IAAIzlC,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAChEnyB,GAAGgM,UAAU4N,mBAAmB,CAACmb,UAAWplB,EAAQolB,YAAY,GAAMtxB,MAAK,KACzEvN,KAAKmB,SAAS,CAAC2U,UAAWhM,GAAGgM,UAAU6Y,aAAa,MAAM,IAAO,GAErE,CAEAvhB,oBACMpN,KAAKF,MAAMuW,UACfrW,KAAKu/C,cACP,CAEAqM,oBACE,IAAIhtC,EAAS,CAAE8kB,WAAY1jC,KAAKC,MAAMyjC,YACtC55B,GAAG06C,cAAcvgC,aAAarF,EAAQ,CAAC,GAAG,GAAMrR,MAAK,KACnDvN,KAAKmB,SAAS,CAAEoG,MAAOuC,GAAG06C,cAAcp5B,OAAQ,GAEpD,CAEAygC,gBAAgBvH,GACdtkD,KAAKmB,SAAS,CAACupD,iBAAkBpG,IAAO,KACtCtkD,KAAKu9B,OACLv9B,KAAKgqD,WAAW,GAEpB,CAEAA,YACE,IAAI1pD,EAAON,KAAKC,MAAMyqD,iBAClB/pD,EAAOX,KAEP4e,EAAS,CAAE8kB,WADE1jC,KAAKC,MAAMyjC,WACWpjC,KAAMA,EAAKklD,OAC9C3mC,EAAK,CAAEve,KAAMA,EAAKklD,OACtBj5C,QAAQC,IAAI,OAAOlM,GACnBwJ,GAAGggD,eAAe7lC,aAAarF,EAAQC,GAAI,GAAMtR,MAAK,KACpD5M,EAAKQ,SAAS,CAAE8oD,MAAOngD,GAAGggD,eAAe1+B,OAAQ,GAErD,CA6BA0gC,eAAepvD,GACb,GAAa,KAAVA,EAAc,OAAO,EAExB,OADS,yJACDe,KAAKf,EAIf,CAEAqvD,WACE,IACE,IAAK/rD,KAAK67C,WAEN,YADAvK,MAAM,4CAIV,MAAM,cAAE8Y,EAAa,aAAEC,EAAY,UAAEC,EAAS,WAAE5mB,EAAU,UAAE6mB,EAAS,OAAEK,GAAW5qD,KAAKC,MAEvF,IAAI6Z,EAAOhQ,GAAGiQ,QAAQqR,MAEtB,MAAM,iBAAEs/B,EAAgB,iBAAEC,GAAqB3qD,KAAKC,MACpD,IAAIK,EAAO,IAAIyB,KAAK2oD,EAAiBlF,MAAQ,IAAMmF,GAK/CqB,EAAM,CACRpiC,UAAWwgC,EACXvgC,SAAUwgC,EACVnmB,YAAaomB,EACb2B,kBAAmB3B,EACnBlsD,MAAOmsD,EACP2B,MAAO,GACPxoB,WAAYA,EACZyoB,KAAMvB,EACNvxC,MAAM,GAAD3X,OAAKoY,EAAK8P,UAAS,KAAAloB,OAAIoY,EAAK+P,UACjCuiC,QAAQ,GAAD1qD,OAAKoY,EAAKgN,QACjB2gC,WAAW,EACX4E,UAAWvyC,EAAKgN,OAChBwlC,iBAAkB,EAElBC,aAAcjsD,EAAK+E,kBAGrBkH,QAAQC,IAAI,QAASw/C,GACrBliD,GAAG8R,aAAa2U,YAAYy7B,EAAK,KAAM/pC,EAAO3I,UAAUoE,mBAAoB,CAAC,GAAG,GAC7EnQ,MAAK,KACJhB,QAAQC,IAAI,sCACVxM,KAAKmB,SAAS,CAAC0pD,WAAW,GAAM,GAExC,CAAE,MAAMxgC,GACN9d,QAAQC,IAAI,iCAAkC6d,EAChD,CACF,CAEAwxB,WACE,MAAM,iBAAE6O,EAAgB,iBAAEC,EAAgB,cAAEP,EAAa,aAAEC,EAAY,UAAEC,EAAS,OAAEM,GAAW5qD,KAAKC,MACpG,OAAOyqD,GAAoBC,GAAoBP,GAAiBC,GAAgBC,GAAwB,OAAXM,CAC/F,CAEA4B,mBACE,MAAM,cAAEpC,EAAa,aAAEC,EAAY,UAAEC,EAAS,UAAEC,GAAcvqD,KAAKC,MACnE,OAAGsqD,GAAaA,EAAUvrD,OAAS,EAC1BorD,GAAiBC,GAAgBC,IAActqD,KAAK8rD,eAAevB,GAErEH,GAAiBC,GAAgBC,CAC1C,CA+BA5pD,SACE,MAAM,MAAEuqD,GAAUjrD,KAAKC,MACvB,OACEW,eAAA,QAAMS,UAAU,aAAYkI,SAC1B3I,eAAA,OAAKS,UAAU,iBAAgBkI,SAC7B3I,eAAA,OAAKS,UAAU,yBAAwBkI,SACrC3I,eAAA,OAAKS,UAAU,iCAAgCkI,SAC7CD,gBAAA,OAAKjI,UAAU,oBAAmBkI,SAAA,CAE9B3I,eAAA,KAAM49B,OAAM,IAIVl1B,gBAAA,OAAKjI,UAAU,mCAAkCkI,SAAA,CAC9CvJ,KAAKC,MAAMuqD,iBAAmBxqD,KAAKC,MAAMuqD,gBAAgBxrD,OAAS,EACjE4B,eAAA,OAAKS,UAAU,aAAYkI,SACzBD,gBAAA,OAAKjI,UAAU,UAASkI,SAAA,CACtB3I,eAAA,SAAOS,UAAU,mBAAkBkI,SAAC,sBACpC3I,eAAA,KAAGS,UAAU,cAAakI,SACxB3I,eAAA,KAAA2I,SACCvJ,KAAKC,MAAMuqD,yBAMhB,KAEFlhD,gBAAA,OAAKmG,QAASw7C,EAAMI,iBAAiBL,QAAQzhD,SAAA,CACzC3I,eAAA,OAAKS,UAAU,aAAYkI,SACvBD,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CACjC3I,eAACiQ,KAAK,CAAAtH,SAAC,2BACP3I,eAACqgD,KAAM,CACH5/C,UAAU,gBACViN,gBAAgB,gBAChBC,cAAc,EACd7R,MAAOsD,KAAKC,MAAMwqD,YAElBj8C,aAAa,EACbE,QAAS1O,KAAKC,MAAM6V,UACpBnH,YAAa,kBACb1N,SAAUwH,IAAqB,IAApB,MAAC/L,EAAK,MAAEsR,GAAMvF,EACvBzI,KAAKmB,SAAS,CACZuiC,WAAYhnC,EACZ8tD,gBAAiBx8C,EACjBy8C,YAAa,CAAC/tD,QAAOsR,WACpB,KAAOhO,KAAKu9B,MAAM,GAAG,SAKlC38B,eAACioC,KAAM,CAACxnC,UAAU,2DAA2Do+B,QAASA,IAAMz/B,KAAK2rD,eAAepiD,SAAC,YAGrH3I,eAAA,OAAK6O,QAASw7C,EAAMC,mBAAmBF,QAAQzhD,SAC3CD,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,OAAKS,UAAU,UAASkI,SACtB3I,eAAA,SAAOS,UAAU,OAAMkI,SAAC,iCAExB3I,eAACgQ,KAAS,CAACvP,UAAU,aAAYkI,SAC7B3I,eAAA,OAAKS,UAAU,aAAYkI,SACnBD,gBAAA,QAAMwI,GAAG,iBAAgBvI,SAAA,CAC7BD,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACjBD,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CAErB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,gBAClD3I,eAAA,SAAO+N,YAAY,aAAautC,WAAS,EAAC76C,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMmqD,cAAenpD,SAAW2J,IACpJ5K,KAAKmB,SAAS,CAACipD,cAAex/C,EAAMkC,OAAOpQ,OAAO,OAGpD4M,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACrB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,eAClD3I,eAAA,SAAO+N,YAAY,YAAYtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMoqD,aAAcppD,SAAW2J,IACrI5K,KAAKmB,SAAS,CAACkpD,aAAcz/C,EAAMkC,OAAOpQ,OAAO,OAGtD4M,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACrB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,WAClD3I,eAACs1C,KAAS,CAACvnC,YAAY,iBAAiBtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMqqD,UAAWrU,KAAK,iBAAiB0N,SAAS,IAAI1iD,SAAW2J,IACjL5K,KAAKmB,SAAS,CAACmpD,UAAW1/C,EAAMkC,OAAOpQ,OAAO,OAGhD4M,gBAAA,OAAKjI,UAAU,OAAMkI,SAAA,CACrB3I,eAAA,QAAMS,UAAU,kCAAiCkI,SAAC,UAClD3I,eAACs1C,KAAS,CAACvnC,YAAY,gBAAgBtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMsqD,UAAWtpD,SAAW2J,IAC7I5K,KAAKmB,SAAS,CAACopD,UAAW3/C,EAAMkC,OAAOpQ,OAAO,IAG9CsD,KAAK8rD,eAAe9rD,KAAKC,MAAMsqD,WAC7B3pD,eAAA,OAAK6Q,MAAO,CAAC2hB,MAAO,OAAO7pB,SACzB3I,eAAA,KAAA2I,SAAG,iCAEH,SAIVD,gBAAA,OAAAC,SAAA,CACI3I,eAACioC,KAAM,CAACxnC,UAAU,2DAA2DynC,UAAW9oC,KAAKwsD,mBAAoB/sB,QAASA,KAAOz/B,KAAKu9B,OAAQv9B,KAAK4rD,mBAAmB,EAAEriD,SAAC,SACzK3I,eAACioC,KAAM,CAACxnC,UAAU,wDAChBo+B,QAASA,KAAKz/B,KAAKwrD,UAAU,EAAEjiD,SAC9B,wBASvB3I,eAAA,OAAK6O,QAASw7C,EAAMK,YAAYN,QAAQzhD,SACtCD,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAACwjD,GAAa,CACdG,cAAc,EAEdh9C,MAAOvH,KAAKC,MAAMsH,MAClBg2B,KAAMA,CAAC70B,EAAM2H,KAAcrQ,KAAK6rD,gBAAgBnjD,EAAK,IAGrD9H,eAAA,OAAA2I,SACI3I,eAACioC,KAAM,CAACxnC,UAAU,wDAClBo+B,QAASA,KAAKz/B,KAAKwrD,UAAU,EAAEjiD,SAC9B,gBAKT3I,eAAA,OAAK6O,QAASw7C,EAAME,YAAYH,QAAQzhD,SACtC3I,eAAA,OAAKS,UAAU,aAAYkI,SACzB3I,eAACooD,GAAa,CACdzE,cAAc,EACdJ,KAAMA,CAACz7C,EAAM2H,KAAcrQ,KAAKwrD,UAAU,EAC1ClrD,KAAMN,KAAKC,MAAMyqD,iBAAmB1qD,KAAKC,MAAMyqD,iBAAiBlF,MAAQ,GACxEyE,MAAOjqD,KAAKC,MAAMgqD,MAClB1sB,KAAMA,CAAC70B,EAAM2H,KAAcrQ,KAAKmB,SAAS,CAACwpD,iBAAkBjiD,IAAO,KAAO1I,KAAKu9B,MAAM,GAAE,QAO3F38B,eAAA,OAAK6O,QAASw7C,EAAMM,eAAeP,SAAWhrD,KAAKC,MAAM4qD,UAAUthD,SAC/D3I,eAAA,OAAKS,UAAU,aAAYkI,SACvBD,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CACjC3I,eAACiQ,KAAK,CAAAtH,SAAC,4BACP3I,eAACqgD,KAAM,CACH5/C,UAAU,gBACViN,gBAAgB,gBAChBC,cAAc,EAGd7R,MAAOsD,KAAKC,MAAM6qD,WAClBp8C,QAAS,CACP,CACEV,MAAO,SACPtR,MAAO,UAET,CACEsR,MAAO,OACPtR,MAAO,QAET,CACEsR,MAAO,KACPtR,MAAO,OAGXiS,YAAa,gBACb1N,SAAUg/B,IAAqB,IAApB,MAACjyB,EAAK,MAAEtR,GAAMujC,EACV,SAAVvjC,GAA8B,WAAVA,EACvBsD,KAAKmB,SAAS,CAACypD,QAAQ,EAAME,WAAY,CAAC98C,QAAOtR,WAE/CsD,KAAKmB,SAAS,CAACypD,QAAQ,EAAOE,WAAY,CAAC98C,QAAOtR,UACpD,IAGLkE,eAAA,OAAA2I,SACK3I,eAACioC,KAAM,CAACxnC,UAAU,2DAClBynC,SAAgC,OAAtB9oC,KAAKC,MAAM2qD,OACrBnrB,QAASA,KAAKz/B,KAAK+rD,UAAU,EAAExiD,SAC9B,aAGL3I,eAAA,OAAA2I,SACI3I,eAACioC,KAAM,CAACxnC,UAAU,wDAClBo+B,QAASA,KAAKz/B,KAAKwrD,UAAU,EAAEjiD,SAC9B,kBAQfD,gBAAA,OAAKmG,QAASzP,KAAKC,MAAM4qD,UAAUthD,SAAA,CACjCD,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,OAAKS,UAAU,2EAA0EkI,SAAC,kDAG1F3I,eAAA,KAAGS,UAAU,YAGfT,eAAA,OAAK6Q,MAAO,CAACg7C,UAAW,QAAQljD,SAC5B3I,eAACioC,KAAM,CAACxnC,UAAU,2DAClBo+B,QAASA,KAAKz/B,KAAK2rD,cAAc,EAAEpiD,SAClC,iDAU7B,EAGa6oB,UC/jBA,OAA0B,wCCU1B,MAAMs6B,WAA2B9sD,YAC9CC,YAAYC,GACVC,MAAMD,GAAO,KA6Bf6sD,aAAe,KACb,MAAM,iBAAEC,GAAqB5sD,KAAKC,MAC9Bqf,OAAOutC,QAAU,MAAQD,EAC3B5sD,KAAKmB,SAAS,CAAEyrD,kBAAkB,IACzBttC,OAAOutC,SAAW,KAAOD,GAClC5sD,KAAKmB,SAAS,CAAEyrD,kBAAkB,GACpC,EACA,KAmEFE,YAAc,KACZxtC,OAAOytC,SAAS,CACdC,IAAK,EACLC,SAAU,UACV,EA1GFjtD,KAAKC,MACL,CACEyjC,WAAY1jC,KAAKF,MAAM4jC,WACvBh7B,KAAM1I,KAAKF,MAAM4I,KACjBpI,KAAMN,KAAKF,MAAMQ,KACjBymD,eAAe,EACfmF,MAAO,GACPgB,uBAAsB,EACtBN,kBAAkB,GAEpB5sD,KAAKmtD,QAAUntD,KAAKmtD,QAAQr9C,KAAK9P,MACjCA,KAAK6kD,SAAW7kD,KAAK6kD,SAAS/0C,KAAK9P,MACnCA,KAAKotD,YAAcptD,KAAKotD,YAAYt9C,KAAK9P,MACzCA,KAAKkd,UAAYld,KAAKkd,UAAUpN,KAAK9P,MACrCA,KAAKqtD,eAAiBrtD,KAAKqtD,eAAev9C,KAAK9P,MAC/CA,KAAKstD,wBAA0BttD,KAAKstD,wBAAwBx9C,KAAK9P,MACjEA,KAAKutD,OAASvtD,KAAKutD,OAAOz9C,KAAK9P,MAC/BA,KAAKqZ,MAAM1J,IAAMC,WACnB,CAEAxC,oBACEkS,OAAOpP,iBAAiB,SAAUlQ,KAAK2sD,aACzC,CAEAx8C,uBACEmP,OAAOlP,oBAAoB,SAAUpQ,KAAK2sD,aAC5C,CAWAQ,UACE,IAAI/nD,EAAKpF,KAAKC,MAAMK,KACpB8E,EAAGooD,QAAQpoD,EAAGqoD,UAAY,GAC1BztD,KAAKF,MAAM6lD,WAAWvgD,EACxB,CAEAmoD,SACE,IAAInoD,EAAKpF,KAAKC,MAAMK,KACpBN,KAAKF,MAAM6lD,WAAWvgD,EACxB,CAEAy/C,WACE,IAAIz/C,EAAKpF,KAAKC,MAAMK,KACpB8E,EAAGooD,QAAQpoD,EAAGqoD,UAAY,GAC1BztD,KAAKF,MAAM6lD,WAAWvgD,EACxB,CAGAsoD,WAAWxpB,GACT,OAAQtjC,eAACioC,KAAM,CAACpJ,QAASA,IAAMz/B,KAAKid,QAAQinB,GAAc7iC,UAAU,sCAAqCkI,SAAC,YAC5G,CAEA0T,QAAQinB,GACNp6B,GAAGuM,SAASoa,WAAW,KAAM,CAAEyT,YAAaA,GAAejiB,EAAO3I,UAAU2D,QAAS,CAAC,EACxF,CAEAmwC,YAAYxiD,EAAO+8C,GACjB,IAAIuE,EAAQ1vD,IAAE+N,OAAO,IAAIvK,KAAKC,MAAMisD,QAASyB,GACpCA,EAAKjG,gBAAkBC,IAEhCuE,EAAMllD,KAAK,CAAE0gD,cAAeC,EAAeuE,MAAOthD,EAAMkC,OAAOpQ,QAC/DsD,KAAKmB,SAAS,CAAE+qD,SAClB,CAEAhvC,UAAUwqC,GACR,IAAIwE,EAAQ1vD,IAAEu/B,UAAU/7B,KAAKC,MAAMisD,MAAO,CAAExE,cAAeA,IACvDwE,GACFpiD,GAAGuM,SAASma,WAAW,CAAEk3B,cAAeA,EAAewE,MAAOA,EAAMA,OAAS,KAAMjqC,EAAO3I,UAAU4D,UAAW,CAAC,GAC7G3P,MAAM7C,OAGb,CAEA2iD,eAAeO,EAAYlxD,GAIzB,CAGF,+BAAO+jD,CAAyB3gD,EAAO4gD,GACrC,OAAIA,EAAch4C,OAAS5I,EAAM4I,KACxB,CACLA,KAAM5I,EAAM4I,MAGT,IACT,CAEA4kD,0BACEttD,KAAKmB,SAAS,CAAC+rD,uBAAuBltD,KAAKC,MAAMitD,wBAC9CltD,KAAKC,MAAMitD,uBACZltD,KAAKutD,QAET,CAQA7sD,SAAU,IAADmtD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEP,GAAGluD,KAAKF,MAAMw7C,QACZ,OAAM16C,eAAC+Q,KAAO,CAACC,KAAK,eAEtB,MAAMs7C,EAAwBltD,KAAKC,MAAMitD,sBACzC,IAAI7mD,EAAarG,KAAKC,MAAMK,KAAK6tD,mBAAmB,QAAS,CAAE3rD,KAAM,UAAWF,MAAO,UAAWC,IAAK,YACvG,MAAM6rD,EAAwBxtD,eAAA,OAAKS,UAAU,yCAAwCkI,SAAC3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKstD,0BAA2BjsD,UAAU,sBAAqBkI,SAAE2jD,EAAsB,oBAAoB,yBACxN,OACEtsD,eAAA,OAAA2I,SACED,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CACxBD,gBAAA,OAAKjI,UAAU,sBAAsBoQ,MAAO,CAACu7C,IAAIhtD,KAAKF,MAAMuuD,QAAQ,IAAI,QAAQ9kD,SAAA,CAC9E3I,eAAA,OAAKS,UAAS,OAAAK,OAA4B,QAA5BmsD,EAAmB,QAAnBC,EAAS9tD,KAAKF,aAAK,IAAAguD,OAAA,EAAVA,EAAYO,eAAO,IAAAR,IAAE,IAAG,wBAAuBtkD,SAAC3I,eAAA,UAAQkoC,SAAUokB,EAAuBztB,QAASA,IAAMz/B,KAAK6kD,WAAYxjD,UAAU,qCAAoCkI,SAAC,WAC/L3I,eAAA,OAAKS,UAAS,OAAAK,OAA4B,QAA5BqsD,EAAmB,QAAnBC,EAAShuD,KAAKF,aAAK,IAAAkuD,OAAA,EAAVA,EAAYK,eAAO,IAAAN,IAAE,IAAG,oCAAmCxkD,SAAC3I,eAAA,KAAGS,UAAU,MAAM4oB,KAAI,sBAAyBwV,QAASA,IAAQytB,EAA4C3gD,QAAQC,IAAI,MAAjCxM,KAAKF,MAAMsS,UAA4B7I,SAAC3I,eAAA,KAAA2I,SAAIlD,QACvNzF,eAAA,OAAKS,UAAS,OAAAK,OAA4B,QAA5BusD,EAAmB,QAAnBC,EAASluD,KAAKF,aAAK,IAAAouD,OAAA,EAAVA,EAAYG,eAAO,IAAAJ,IAAE,IAAG,mCAAkC1kD,SAAC3I,eAAA,UAAQkoC,SAAUokB,EAAuBztB,QAASA,IAAMz/B,KAAKmtD,UAAW9rD,UAAU,qCAAoCkI,SAAC,cACxMvJ,KAAKC,MAAM2sD,kBACZhsD,eAAA,OAAKS,UAAU,oBAAmBkI,SAChC3I,eAAA,OAAK6+B,QAASz/B,KAAK8sD,YAAah1B,IAAKg1B,GAAazrD,UAAU,gBAAgBi9B,IAAI,uBAIlFt+B,KAAKF,MAAMmoD,YAEX,KADArnD,eAACggC,GAAS,CAACr3B,SAAU6kD,EAAyB/sD,UAAU,OAAOwI,MAAM,iBAEtEqjD,GAAyBtsD,eAACwxB,GAAK,CAACtjB,IAAK9O,KAAKqZ,MAAOhD,SAAU,CAAC/V,KAAK+F,EAAYq9B,WAAW1jC,KAAKC,MAAMyjC,eAClGwpB,GAAyBltD,KAAKC,MAAMyI,KAAKc,KAAI,CAAC8kD,EAAInlD,KAAW,IAADolD,EAAAC,EAC5D,OACE5tD,eAAA,OAAKS,UAAU,kCAAiCkI,SAC9CD,gBAAA,OAAKjI,UAAU,SAAQkI,SAAA,CACrB3I,eAAA,OAAKS,UAAU,gBAAekI,SAC5BD,gBAAA,OAAKjI,UAAU,0BAAyBkI,SAAA,CAAE+kD,EAAIG,YAAY,IAAEH,EAAIlR,UAElE9zC,gBAAA,OAAKjI,UAAU,gBAAekI,SAAA,CAC5BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAAC,UAAOD,gBAAA,KAAG2gB,KAAI,gBAAAvoB,OAAkB4sD,EAAIpG,OAAM,KAAAxmD,OAAI4sD,EAAI/uC,SAAS4oC,WAAY5+C,SAAA,CAAE+kD,EAAI1kC,UAAU,IAAE0kC,EAAIzkC,YAAa,IAACjpB,eAAA,QAAMS,UAAWitD,EAAII,aAAanlD,SAAE+kD,EAAIK,oBAC1KrlD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAAC,UAAQ+kD,EAAIpqB,eACnC56B,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAAC,iBAAe+kD,EAAIjI,gBAC1C/8C,gBAAA,OAAKjI,UAAS,OAAAK,OAA4B,QAA5B6sD,EAAmB,QAAnBC,EAASxuD,KAAKF,aAAK,IAAA0uD,OAAA,EAAVA,EAAYH,eAAO,IAAAE,IAAE,KAAMhlD,SAAA,CAAC,UAAQ+kD,EAAI1H,YAEjEt9C,gBAAA,OAAKjI,UAAU,gBAAekI,SAAA,CAC5BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAAC,WAAS+kD,EAAIj1C,SACpC/P,gBAAA,OAAKjI,UAAU,QAAQoO,QAA0B,IAAlB6+C,EAAI7G,UAAmBl+C,SAAA,CAAC,OAAK+kD,EAAI/F,QAAU+F,EAAI/F,QAAU,SAG1F3nD,eAAA,OAAKS,UAAU,gBAAekI,SAC5B3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC,cAEzB3I,eAAA,OAAKS,UAAU,gBAAekI,SAC5BD,gBAAA,OAAKjI,UAAU,SAAQkI,SAAA,CAAC3I,eAAA,YAAUguD,KAAM,GAAIxZ,KAAM,EAAG/zC,UAAU,eAAeuL,aAAc0hD,EAAIpC,MAAOjrD,SAAW2J,IAAY5K,KAAKotD,YAAYxiD,EAAO0jD,EAAI3G,cAAc,IAAe,SAEzL/mD,eAAA,OAAKS,UAAU,gBAAekI,SAC5BD,gBAAA,OAAKjI,UAAU,SAAQkI,SAAA,CACpBvJ,KAAK0tD,WAAWY,EAAIpqB,aAAa,IAACtjC,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKkd,UAAUoxC,EAAI3G,eAAgBtmD,UAAU,sCAAqCkI,SAAC,eAC7I3I,eAACmlD,GAAkB,CAAC8B,gBAAiB7nD,KAAKqtD,eAAgB3kD,KAAM4lD,EAAKrG,YAAajoD,KAAKF,MAAMmoD,uBAzB/C9+C,EA6BhD,QAOlB,EC9KF,MAAM0lD,WAAyBjvD,YAC7BC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGgM,UACjB,IAAI2D,EAAU3Z,EAAM2Z,QACpBzZ,KAAKC,MAAQ,CACXq7C,SAAQ,EACR52B,mBAAoB,CAAEma,UAAWplB,EAAQolB,WACzCplB,QAAUA,EACV6lC,gBAAgB,GAChB52C,KAAK,GACLg7B,WAAW5jC,EAAMyf,SAASmkB,WAC1BorB,cAAa,EACbC,aAAY,EACZC,WAAW,KACXnR,aAAa,KACbzhB,aAAatyB,GAAGsyB,gBAElBp8B,KAAKivD,eAAiBjvD,KAAKivD,eAAen/C,KAAK9P,MAC/CA,KAAKulD,iBAAmBvlD,KAAKulD,iBAAiBz1C,KAAK9P,MACnDA,KAAK2lD,WAAa3lD,KAAK2lD,WAAW71C,KAAK9P,KACzC,CAEAoN,oBAAoB,IAAD0gD,EAAAoB,EACjBlvD,KAAKmB,SAAS,CAACw/B,YAAsB,QAAXmtB,EAAC9tD,KAAKF,aAAK,IAAAguD,GAAS,QAAToB,EAAVpB,EAAYr0C,eAAO,IAAAy1C,OAAT,EAAVA,EAAqBphD,OAChD9N,KAAKivD,eAAejvD,KAAKC,MAAMyjC,WACjC,CAEAurB,eAAevrB,EAAWpjC,GACxBiM,QAAQC,IAAIk3B,GACZ,IAAI/iC,EAAMX,KACP0jC,GAAcA,EAAW,GAC5B55B,GAAGuM,SAASoa,WAAW,KAAK,CAACiT,WAAWA,EAAWpjC,MAAMA,GAAc,IAAIyB,MAAQ+zB,eAAe7T,EAAO3I,UAAUjD,SAAU,CAAC,GAC7H9I,MAAM7C,IACL/J,EAAKQ,SAAS,CAACuH,KAAKgC,EAAQg5B,aAAWorB,cAAa,EAAKC,aAAY,GAAO,GAEhF,CAEAxJ,iBAAiBjlD,GACZA,GAAMN,KAAKivD,eAAejvD,KAAKC,MAAMyjC,WAAWpjC,EACrD,CAEA,gBAAMqlD,CAAWrlD,GACf,GAAGA,EACH,CACE,IAAIK,EAAMX,KACPW,EAAKV,MAAMyjC,YAAc/iC,EAAKV,MAAMyjC,WAAW,IAEhD1jC,KAAKmB,SAAS,CAACm6C,SAAQ,UACjBxxC,GAAGuM,SAASoa,WAAW,KAAK,CAACiT,WAAW/iC,EAAKV,MAAMyjC,WAAWpjC,KAAMA,EAAOH,KAAMuF,WAAWvF,KAAMe,SAASZ,KAAS,IAAIyB,MAAO+zB,eAAgB7T,EAAO3I,UAAUmC,YAAa,CAAC,GACnLlO,MAAM7C,IACL/J,EAAKQ,SAAS,CAAC6tD,WAAWtkD,EAAOokD,cAAa,EAAMC,aAAY,EAAKlR,aAAav9C,GAAM,IAG1FN,KAAKmB,SAAS,CAACm6C,SAAQ,IAG3B,MAEAt7C,KAAKmB,SAAS,CAAC2tD,cAAa,EAAMC,aAAY,GAChD,CAGAruD,SACE,IAAIC,EAAOX,KACT,OACEsJ,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAACggC,GAAS,CAAC/2B,MAAK,YAAAnI,OAAe1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IAAMG,KAAK,IAC3Hx3B,gBAAA,OAAKjI,UAAU,GAAEkI,SAAA,CAEP5I,EAAKV,MAAM6uD,aAAeluD,eAAC+jD,GAAY,CAACgB,WAAarlD,IAAQK,EAAKglD,WAAWrlD,EAAK,EAAIilD,iBAAmBjlD,IAAQK,EAAK4kD,iBAAiBjlD,EAAK,EAAGoI,KAAM1I,KAAKC,MAAMyI,OAAwB,GAGxL/H,EAAKV,MAAM8uD,YAAcnuD,eAAC8rD,GAAkB,CAAC2B,QAAS,EAAGpG,aAAa,EAAM3M,QAASt7C,KAAKC,MAAMq7C,QAASlpC,QAASA,KAAKzR,EAAKsuD,eAAetuD,EAAKV,MAAMyjC,WAAW,EAAGiiB,WAAarlD,IAAQK,EAAKglD,WAAWrlD,EAAK,EAAIoI,KAAM1I,KAAKC,MAAM+uD,WAAYtrB,WAAY1jC,KAAKC,MAAMyjC,WAAYpjC,KAAMN,KAAKC,MAAM49C,eAAsC,QAP5U,WAaf,EAGagR,UCtFA,MAAMM,WAAqBvvD,YACxCC,YAAYC,GAAQ,IAADsvD,EAAAC,EACjBtvD,MAAMD,GAoCR,KAMAmiD,eAAkBve,IAChB,IAAKA,EAEH,YADAn3B,QAAQ8d,MAAM,sBAIhB,MACM1L,EAAG,GAAAjd,OADO,2DACM,gBAAAA,OAAegiC,GAErCpkB,OAAO4iC,KAAKvjC,EAAI,EAlDhB3e,KAAKC,MAAQ,CACXyiD,mBAAoB54C,GAAGc,MAAMwgB,MAAMg4B,cACnClxC,QAAQ,EACRo9C,aAAc,KACd/vC,SAAUzV,GAAGyV,SAAS6L,MACtB0jC,eAAiC,QAAnBM,EAAApvD,KAAKF,MAAMyf,gBAAQ,IAAA6vC,GAAO,QAAPC,EAAnBD,EAAqBnvD,aAAK,IAAAovD,IAA1BA,EAA4BE,eAE5CvvD,KAAK6iD,UAAY7iD,KAAK6iD,UAAU/yC,KAAK9P,MACrCA,KAAKgjD,WAAahjD,KAAKgjD,WAAWlzC,KAAK9P,MACvCA,KAAKijD,gBAAkBjjD,KAAKijD,gBAAgBnzC,KAAK9P,MACjDA,KAAK2iD,mBAAqB3iD,KAAK2iD,mBAAmB7yC,KAAK9P,MACvDA,KAAKkjD,yBAA2BljD,KAAKkjD,yBAAyBpzC,KAAK9P,KACrE,CAIAkjD,2BAEE,MAAMviD,EAAOX,KACP0iD,EAAqB1iD,KAAKC,MAAMyiD,mBACtC54C,GAAGc,MAAM4lB,WAAW,CAAEqnB,QAAS/tC,GAAGc,MAAMwgB,MAAMysB,QAASuL,eAAgBV,GAAsB,KAAMzgC,EAAO3I,UAAUoB,mBAAoB,CAAC,GAAG,GACzInN,MAAM7C,IACL/J,EAAKQ,SAAS,CAAEuhD,oBAAqB/hD,EAAKV,MAAMyiD,oBAAqB,GAE3E,CACAO,kBACEjjD,KAAKmB,SAAS,CAAE+Q,QAAQ,IACQ,YAA5BlS,KAAKC,MAAMqvD,aACbtvD,KAAKkjD,2BACgC,gBAA5BljD,KAAKC,MAAMqvD,aACpBtvD,KAAKmB,SAAS,CAAE2tD,cAAc,IAE9B9uD,KAAK2iD,oBAET,CAkBAA,qBACE3iD,KAAKiiD,eAAejiD,KAAKC,MAAMsf,SAASmkB,YACxC1jC,KAAKmB,SAAS,CAAEqhD,WAAW,GAC7B,CACAK,UAAUyM,GACR,GAAqB,gBAAjBA,GACEtvD,KAAKC,MAAM6uD,aAKb,OAJA9uD,KAAKmB,SAAS,CAAE2tD,cAAc,SAC1B9uD,KAAKF,MAAMyf,SAAStf,OACtBD,KAAKF,MAAMwxB,QAAQ7wB,QAAQ,IAAKT,KAAKF,MAAMwxB,QAAQ/R,SAAUtf,WAAOsE,KAK1EvE,KAAKmB,SAAS,CAAE+Q,QAAQ,EAAMo9C,gBAChC,CACAtM,aACEhjD,KAAKmB,SAAS,CAAE+Q,QAAQ,GAC1B,CACAxR,SACE,GAAIoJ,GAAG2pB,UAAU3pB,GAAGc,MAAOd,GAAGyV,UAAW,CACvC,IAAI3U,EAAQd,GAAGc,MAAMwgB,MACjB7L,EAAWzV,GAAGyV,SAAS6L,MACvB3R,EAAU3P,GAAG2P,QAAQ2R,MACzB,OACE9hB,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,EACvBvJ,KAAKC,MAAMyiD,oBAAsB9hD,eAAA,KAAA2I,SAAG,iEACtC3I,eAAA,OAAKS,UAAU,2EAA0EkI,SACtFqB,EAAMwyC,OAETx8C,eAAA,KAAGS,UAAU,OAAMkI,SAAEqB,EAAM4kD,eACzBxvD,KAAKC,MAAMyiD,oBAAsB9hD,eAAA,KAAG6Q,MAAO,CAAE2hB,MAAO,OAAQ7pB,SAAC,gDAC/D3I,eAAA,OAAA2I,SACE3I,eAACioC,KAAM,CAACC,UAAW9oC,KAAKC,MAAMyiD,mBAAoBrhD,UAAU,2DAA2Do+B,QAASA,KAAQz/B,KAAKF,MAAMy9B,KAAK,CAAC,EAAGv9B,KAAKF,MAAMokD,KAAK,EAAG36C,SAAC,WAElL3I,eAAA,OAAKS,UAAU,WAAUkI,SACvB3I,eAAA,OAAKS,UAAU,qBAAoBkI,SAAC,8CAEpCkQ,GAAW8F,IAA+C,IAAnC9F,EAAQ5D,cAAc2tC,UAAwD,OAAlCjkC,EAAS4hC,sBAAmE,KAAlC5hC,EAAS4hC,sBAAiC73C,gBAAAglC,YAAA,CAAA/kC,SAAA,CACvJ3I,eAACioC,KAAM,CAACxnC,UAAU,2DAA2Do+B,QAASA,KAAQz/B,KAAK6iD,UAAU,QAAQ,EAAIpxC,MAAO,CAAE2hB,MAAO,mBAAoBq8B,WAAY,OAAQlmD,SAAC,6BAClL3I,eAACioC,KAAM,CAACxnC,UAAU,2DAA2Do+B,QAASA,KAAQz/B,KAAK6iD,UAAU,cAAc,EAAIpxC,MAAO,CAAE2hB,MAAO,mBAAoBq8B,WAAY,OAAQlmD,SAAGvJ,KAAKC,MAAM6uD,aAAuC,qBAAxB,wBACpNluD,eAACioC,KAAM,CAACxnC,UAAU,wDAAwDo+B,QAASA,IAAMz/B,KAAK6iD,UAAU,WAAWt5C,UAAoC,IAAlCvJ,KAAKC,MAAMyiD,mBAA8B,8BAAgC,+BAC9L9hD,eAACwgD,GAAe,CAACrgD,QAAU2H,IAAuB,GAARA,GAAc1I,KAAKijD,iBAAiB,EAAI/wC,OAAQlS,KAAKC,MAAMiS,OAAQE,QAASpS,KAAKC,MAAM+iD,WAAYhH,MAAOh8C,KAAKgjD,aACxJhjD,KAAKC,MAAM6uD,aACVluD,eAACiuD,GAAgB,CAACp1C,QAASA,EAAS8F,SAAUvf,KAAKC,MAAMsf,WACvD,UAIZ,CACA,OACE3e,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAGnD,ECrHa,WAA0B,mCCO1B,MAAM69C,WAAwB9vD,YAC3CC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAQ,CACX2K,MAAOd,GAAGc,MAAMwgB,MAChB7L,SAAUvf,KAAKF,MAAMyf,SACrBzJ,UAAW,GACX65C,QAAS,IAEX3vD,KAAK4vD,iBAAmB5vD,KAAK4vD,iBAAiB9/C,KAAK9P,KACrD,CACAoN,oBACA,CAEAwN,SACE,IAAIja,EAAOX,KAEP6e,EAAK,CAAEwlB,IAAKrkC,KAAKC,MAAM0vD,QAAS9wB,UAAW7+B,KAAKC,MAAMsf,SAASsf,WACnE/0B,GAAGgM,UAAUmO,aAFA,CAAC,EAEoBpF,GAAI,GAAMtR,MAAK,KAC/C5M,EAAKQ,SAAS,CAAE2U,UAAWhM,GAAGgM,UAAUsV,OAAQ,GAEpD,CAEAwkC,iBAAiBrwC,GACfvf,KAAKF,MAAMy9B,KAAKhe,EAAUvf,KAAKF,MAAMokD,KACvC,CAEAxjD,SACE,OAAIoJ,GAAG2pB,UAAU3pB,GAAGc,OAEhBtB,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CAEzB3I,eAAA,MAAIS,UAAU,sBAAqBkI,SAAC,+EAIpCD,gBAAA,OAAKjI,UAAU,+BAA8BkI,SAAA,CAC3C3I,eAAA,SAAOS,UAAU,OAAMkI,SAAC,8BACxBD,gBAAA,OAAKjI,UAAU,2DAA0DkI,SAAA,CACvE3I,eAACs1C,KAAS,CAACvnC,YAAY,UACrB,aAAW,UACX,mBAAiB,UAAUtN,UAAU,iCAAiC3E,MAAOsD,KAAKC,MAAM0vD,QAAS1uD,SAAW2J,IAAY5K,KAAKmB,SAAS,CAAEwuD,QAAS/kD,EAAMkC,OAAOpQ,OAAQ,EAAKu5C,KAAK,QAAQ0N,SAAS,MACnM/iD,eAAA,UACE6+B,QAASA,IAAMz/B,KAAK4a,SACpBvZ,UAAU,gDAA+CkI,SAEzD3I,eAAA,OACEk3B,IAAK+3B,GACLvxB,IAAI,SACJ+Q,MAAM,iBAMZ7yC,IAAEgN,IAAIxJ,KAAKC,MAAM6V,WAAYyJ,IAC3BhT,QAAQC,IAAI+S,GAEVjW,gBAAA,OAAKjI,UAAU,wEAAuEkI,SAAA,CACpFD,gBAAA,OAAKjI,UAAU,UAASkI,SAAA,CACtB3I,eAAA,MAAA2I,SAAKgW,EAASzR,OACdxE,gBAAA,KAAGjI,UAAU,YAAWkI,SAAA,CACrBgW,EAASgnC,SAAS,KAAGhnC,EAAS6kB,KAAK,KAAG7kB,EAAStf,SAElDqJ,gBAAA,OAAKjI,UAAU,eAAckI,SAAA,CAC3BD,gBAAA,QAAAC,SAAA,CACGgW,EAASuwC,SAAWvwC,EAASuwC,SAAS5kD,QAAQ,GAAK,GAAG,YAEzDtK,eAAA,kBAGsB,IAAzB2e,EAASwwC,YACNnvD,eAAA,OAAKS,UAAU,mDAAkDkI,SAAC,iBAClE3I,eAAA,OAAK6+B,QAASA,MAAqC,IAAzBlgB,EAASwwC,aAAsB/vD,KAAK4vD,iBAAiBrwC,EAAS,EAAKle,UAAU,2EAA2EyQ,GAAG,OAAMvI,SAAC,uBAc5M3I,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAGnD,EC7Fa,MAAMm+C,WAAuBpwD,YAC1Cc,SACE,OAAIoJ,GAAG2pB,UAAU3pB,GAAGc,OAEhBtB,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,OAAKS,UAAU,2EAA0EkI,SAAC,mBAG1F3I,eAAA,KAAGS,UAAU,OAAMkI,SAAC,8JACpBD,gBAAA,OAAAC,SAAA,CACA3I,eAACioC,KAAM,CAACxnC,UAAU,2DAA2Do+B,QAASA,KAAQz/B,KAAKF,MAAMy9B,KAAK,CAAC,EAAGv9B,KAAKF,MAAMokD,KAAK,EAAG36C,SAAC,SACpI3I,eAACioC,KAAM,CAACxnC,UAAU,wDAAwDo+B,QAASA,KAAQz/B,KAAKF,MAAMqkD,KAAK,CAAC,EAAGnkD,KAAKF,MAAMokD,KAAK,EAAG36C,SAAC,eAMzI3I,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAGnD,E,cCZF,MAAMo+C,WAAgBrwD,YACpBC,YAAYC,GACVC,MAAMD,GACN,IAAIa,EAAOX,KACXW,EAAKV,MAAQ,CACXiwD,WAAU,EACVrY,QAASl3C,EAAKb,MAAMrB,MAAMmgB,OAAOi5B,QACjCjtC,MAAO,KACP2U,SAAU,KACVhY,MAAO,GACP0iD,MAAO,GACPprB,UAAW,KACXosB,MAAO,CACLkF,aAAc,CACZriD,KAAM,eACNk9C,SAAS,EACTpW,MAAM,EACNrX,KAAMA,IAAe58B,EAAKV,MAAMgrD,MAAMI,iBACtC+E,KAAMA,IAAezvD,EAAK0vD,mBAC1BC,cAAeA,KACb3vD,EAAKirD,kBAAkB9hD,GAAGc,MAAMwgB,MAAMsY,YAC/B/iC,EAAKV,MAAMgrD,MAAMsF,gBAG5BlF,iBAAkB,CAChBv9C,KAAM,mBACNk9C,SAAS,EACTtiD,KAAM,KACNksC,MAAM,EACNrX,KAAMA,KACJ58B,EAAKirD,kBAAkBjrD,EAAKV,MAAMgrD,MAAMI,iBAAiB3iD,KAAKg7B,YACvD/iC,EAAKV,MAAMgrD,MAAMsF,eAE1BpM,KAAMA,IAAexjD,EAAKV,MAAMgrD,MAAMkF,cAExCI,cAAe,CACbziD,KAAM,gBACNk9C,SAAS,EACTpW,MAAM,EACNrX,KAAMzxB,UACJnL,EAAKqpD,UAAUrpD,EAAKV,MAAMgrD,MAAMsF,cAAc7nD,MACvC/H,EAAKV,MAAMgrD,MAAMuF,eAE1BrM,KAAMA,IAAexjD,EAAKV,MAAMgrD,MAAMI,kBAExCmF,cAAe,CACb1iD,KAAM,gBACNk9C,SAAS,EACTpW,MAAM,EACNrX,KAAMA,IAAe58B,EAAKV,MAAMgrD,MAAMwF,gBACtCtM,KAAMr4C,SACGnL,EAAKV,MAAMgrD,MAAMsF,eAE5BE,gBAAiB,CACf3iD,KAAM,kBACNk9C,SAAS,EACTpW,MAAM,EACNvqB,MAAM,GACNkT,KAAMzxB,eACUnL,EAAK+vD,qBAAqB/vD,EAAKV,MAAMgrD,MAAMM,gBAE3DpH,KAAMA,IAAexjD,EAAKV,MAAMgrD,MAAMuF,cACtCJ,KAAMA,CAACO,EAAYC,MACdA,GAAYA,EAAS9iD,OAASnN,EAAKV,MAAMgrD,MAAMwF,gBAAgB3iD,OAE3DnN,EAAKkwD,kBAEdP,cAAeA,IAAe3vD,EAAKV,MAAMgrD,MAAM6F,UAEjDvF,eAAgB,CACdz9C,KAAM,iBACNk9C,SAAS,EACTpW,MAAM,EACNuP,KAAMA,IAAexjD,EAAKV,MAAMgrD,MAAMwF,gBACtClzB,KAAMzxB,eACUnL,EAAKowD,WAAWpwD,EAAKV,MAAMgrD,MAAM6F,WAGnDA,SAAU,CACRhjD,KAAM,WACNk9C,SAAS,KAIfhrD,KAAKu9B,KAAOv9B,KAAKu9B,KAAKztB,KAAK9P,MAC3BA,KAAKgxD,QAAUhxD,KAAKgxD,QAAQlhD,KAAK9P,MACjCA,KAAKqwD,iBAAmBrwD,KAAKqwD,iBAAiBvgD,KAAK9P,MACnDA,KAAKixD,YAAcjxD,KAAKixD,YAAYnhD,KAAK9P,MACzCA,KAAK4rD,kBAAoB5rD,KAAK4rD,kBAAkB97C,KAAK9P,MACrDA,KAAKgqD,UAAYhqD,KAAKgqD,UAAUl6C,KAAK9P,MACrCA,KAAK6wD,gBAAkB7wD,KAAK6wD,gBAAgB/gD,KAAK9P,MACjDA,KAAK0wD,qBAAuB1wD,KAAK0wD,qBAAqB5gD,KAAK9P,MAC3DA,KAAK+wD,WAAa/wD,KAAK+wD,WAAWjhD,KAAK9P,KACzC,CAEAoN,oBACEpN,KAAKkxD,UACP,CAEAtF,kBAAkBloB,GAChB,IAAI/iC,EAAOX,KACP4e,EAAS,CAAE8kB,WAAYA,GAC3B55B,GAAG06C,cAAcvgC,aAAarF,EAAQ,CAAC,GAAG,GAAMrR,MAAK,KACnD5M,EAAKQ,SAAS,CAAEoG,MAAOuC,GAAG06C,cAAcp5B,OAAQ,GAEpD,CAEA,eAAM4+B,CAAU1pD,GACd,IAAIK,EAAOX,KACP0jC,EAAY/iC,EAAKV,MAAMgrD,MAAMI,iBAAiB3iD,KAAO/H,EAAKV,MAAMgrD,MAAMI,iBAAiB3iD,KAAKg7B,WAAa/iC,EAAKV,MAAM2K,MAAM84B,WAC1H9kB,EAAS,CAAE8kB,WAAYA,EAAYpjC,KAAMA,EAAKklD,OAC9C3mC,EAAK,CAAEve,KAAMA,EAAKklD,MAAM2L,aAAY,GACrCnxD,KAAKC,MAAMwZ,SAAWzZ,KAAKC,MAAMsf,WAAwD,IAA5Cvf,KAAKC,MAAMwZ,QAAQ5D,cAAc2tC,UAA+D,OAA3CxjD,KAAKC,MAAMsf,SAAS4hC,sBAA0E,KAA3CnhD,KAAKC,MAAMsf,SAAS4hC,qBAG1Kr3C,GAAGggD,eAAer5B,WAAW,KAAK5R,EAAGoD,EAAO3I,UAAU6C,gBAAgB,CAACunB,eAAan2B,MAAM7C,IACxF/J,EAAKQ,SAAS,CAAE8oD,MAAOngD,GAAGggD,eAAe1+B,OAAQ,IAInDthB,GAAGggD,eAAe7lC,aAAarF,EAAQC,GAAI,GAAMtR,MAAK,KACpD5M,EAAKQ,SAAS,CAAE8oD,MAAOngD,GAAGggD,eAAe1+B,OAAQ,GAIvD,CACA,cAAM8lC,GACJ,IAAIvwD,EAAOX,KACP4e,EAAS,CAAEi5B,QAAS73C,KAAKC,MAAM43C,SACnC/tC,GAAGc,MAAMmZ,iBAAiBnF,GAAQrR,MAAK,KACrC5M,EAAKQ,SAAS,CAAEyJ,MAAOd,GAAGc,MAAMwgB,QAChCzqB,EAAKw6C,aAAa,GAEtB,CAEAA,cACE,IAAIx6C,EAAOX,KAEP4e,EAAS,CAAE9M,GADH9R,KAAKC,MAAM2K,MACE84B,YACzB55B,GAAGyV,SAASwE,iBAAiBnF,GAAQrR,MAAK,KACxC,IAAIgS,EAAWzV,GAAGyV,SAAS6L,MAC3BzqB,EAAKQ,SAAS,CAAEoe,SAAUA,EAAUsf,UAAWtf,EAASsf,YACxDl+B,EAAKywD,YAAY,GAErB,CAEAA,aACE,IAAIzwD,EAAOX,KACP4e,EAAS,CAAE9M,GAAInR,EAAKV,MAAM4+B,WAC9B/0B,GAAG2P,QAAQsK,iBAAiBnF,GAAQrR,MAAK,KACvC,IAAIkM,EAAU3P,GAAG2P,QAAQ2R,MACzBzqB,EAAKQ,SAAS,CAAEsY,QAASA,GAAU,GAEvC,CAEA42C,mBACE,OAAQrwD,KAAKC,MAAM2K,MAAM80C,YAC3B,CAEAmR,kBACE,OAAQ7wD,KAAKC,MAAM2K,MAAMymD,cAAiBrxD,KAAKC,MAAM2K,MAAMymD,cAAgBrxD,KAAKC,MAAM2K,MAAMymD,cAAgB,CAC9G,CAEAL,UACE,IAAI/F,EAAQjrD,KAAKC,MAAMgrD,MAIvB,OAHAzuD,IAAEC,KAAKwuD,GAAQ/G,IACbA,EAAK8G,SAAU,CAAK,IAEfC,CACT,CAED,iBAAMgG,CAAY5gD,GACf,IAAIktB,QAAaltB,EAAQktB,OAKzB,OAJIltB,EAAQ+/C,OAAuC,IAA/B//C,EAAQ+/C,KAAK//C,EAAQktB,KACvCA,EAAOltB,EAAQigD,iBAEjB/yB,EAAKytB,SAAU,EACRztB,CACT,CAEA+zB,YAAYjhD,GACV,IAAIktB,EAAOltB,EAAQ8zC,OAKnB,OAJI9zC,EAAQkhD,WAAmC,IAAvBlhD,EAAQkhD,aAC9Bh0B,EAAOltB,EAAQmhD,kBAEjBj0B,EAAKytB,SAAU,EACRztB,CACT,CAEA,UAAMA,CAAK70B,EAAM2H,GACfA,EAAQ3H,KAAOA,EACf2H,EAAQukC,MAAO,EACf50C,KAAKmB,SAAS,CAACwvD,YAAYtgD,IAC3B,IAAI46C,EAAQlsC,OAAOyI,OAAO,CAAC,EAAGxnB,KAAKC,MAAMgrD,OACzCA,EAAQjrD,KAAKgxD,UACb,IAAIzzB,QAAav9B,KAAKixD,YAAY5gD,GAElC46C,EAAM1tB,EAAKzvB,MAAQyvB,EACfA,IAAMA,EAAKytB,SAAU,GACzBhrD,KAAKmB,SAAS,CAAE8pD,SAClB,CAEA,UAAM9G,CAAKz7C,EAAM2H,GACfA,EAAQ3H,KAAO,CAAC,EAChB2H,EAAQukC,MAAO,EACf,IAAIqW,EAAQlsC,OAAOyI,OAAO,CAAC,EAAGxnB,KAAKC,MAAMgrD,OACzCA,EAAQjrD,KAAKgxD,UACb,IAAIzzB,QAAav9B,KAAKsxD,YAAYjhD,GAClC46C,EAAM1tB,EAAKzvB,MAAQyvB,EACfA,IAAMA,EAAKytB,SAAU,GACzBhrD,KAAKmB,SAAS,CAAE8pD,SAClB,CAEA,0BAAMyF,CAAqBxM,GACzB,IAAIvjD,EAAMX,KAGV,GAAa,SAFUW,EAAKowD,aAI5B,OAAOpwD,EAAKV,MAAMgrD,MAAMwF,gBAIxB,OAAoB,IAFFzwD,KAAK6wD,kBAEU3M,EAE3BlkD,KAAKC,MAAMgrD,MAAMM,eAAe+E,aAExC,CACA,gBAAMS,CAAW7M,GACf,IAAIvjD,EAAMX,KACNirD,EAAOtqD,EAAKV,MAAMgrD,MAClBnxC,EAAOmxC,EAAMwF,gBAAgB/nD,KAC7B+oD,EAAcz+C,MAAMV,UAAU9I,IAAIkwB,KAAKuxB,EAAMwF,gBAAgB/nD,KAAKg5C,eAAe,SAASx4C,GAAQ,OAAOA,EAAK4I,EAAI,IAAGmN,KAAK,MAqB1H3e,EAAO2qD,EAAMsF,cAAc7nD,KAAK88C,MAChClvB,EAAO20B,EAAMuF,cAAc9nD,KAC3B6W,EAAW0rC,EAAMI,iBAAiB3iD,WAE/BoB,GAAGyS,WAAW4Q,OAAO,CAC1B0qB,QAAUl3C,EAAKV,MAAM2K,MAAMitC,QAC3BjuB,UAAY9P,EAAK8P,UACjBC,SAAW/P,EAAK+P,SAChB6nC,oBAAoB53C,EAAKqoC,WACzBwP,mBAAmB73C,EAAKsoC,UACxBwP,kBAAkBH,EAClBpzD,MAAOyb,EAAKoqB,YACZ9lC,MAAM0b,EAAK1b,MACXikD,uBAAuBvoC,EAAKuoC,uBAC5BC,gBAAgBxoC,EAAKwoC,gBACrBC,cAAczoC,EAAKyoC,cACnBne,KAAKtqB,EAAKsqB,KACVnkC,MAAM6Z,EAAK7Z,MACXokC,IAAIvqB,EAAKuqB,IACT/jC,KAAK,GAADoB,OAAKpB,EAAI,KAAAoB,OAAI40B,GACjBoN,WAAankB,EAAWA,EAASmkB,WAAY/iC,EAAKV,MAAM2K,MAAM84B,YAC9D,CAAC,GAAGn2B,MAAMyrC,IACV,GAAGr4C,EAAKV,MAAM2K,MAAMymD,aAAa,EAAE,CAGjC,IAAIQ,EAAY7Y,EAAItwC,KAAKmpD,UACrBltD,EAA+BhE,EAAKV,MAAMwZ,QAAQ5D,cAAci8C,qBACpEC,aAAWptD,GAAK4I,MAAKzB,UACnB,IAAKkmD,EAED,YADA1gB,MAAM,aAGV,MAAM,MAAEjnB,SAAgB2nC,EAAOC,mBAAmB,CAC9CJ,UAAWA,IAEftlD,QAAQC,IAAI6d,EAAM,GAGtB,IAKJ,CACA,wBAAM6nC,CAAmBp4C,EAAK23C,GAC5B,aAAanuC,MAAM,mDAAoD,CACvEnB,OAAQ,OACRC,KAAMC,KAAKC,UAAU,CACnB6vC,WAAWr4C,EAAK8P,UAChBwoC,UAAUt4C,EAAK+P,SACfxrB,MAAMyb,EAAKoqB,YAAYzjC,QAAQ,SAAU,IACzC4xD,OAAQ,IACRC,kBAAkBxoD,GAAGyV,SAAS6L,MAAM+1B,qBACpCoR,eAAed,EACfe,kBAAkB14C,EAAKqoC,WACvBsQ,iBAAiB34C,EAAKsoC,YAGxB96B,QAAS,CACP,eAAgB,kCAChB,cAAiB,0EAGlB/Z,MAAK,SAAS8qC,GACf,OAAOA,EAAS3wB,MAAM,IACrBna,MAAK,SAAS7E,GAIb,OADA6D,QAAQC,IAAI9D,GACLA,CACX,IAAGmf,OAAMwC,GAAS9d,QAAQ8d,MAAM,SAAUA,IAC1C,CACA3pB,SACE,GAAGV,KAAKC,MAAMiwD,UACZ,OACEtvD,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,YAInD,GAAI/H,GAAG2pB,UAAU3pB,GAAGc,MAAOd,GAAGyV,UAAW,CAAC,IAADmzC,EAAAC,EACvC,IAAI1H,EAAQjrD,KAAKC,MAAMgrD,MACvB,OACErqD,eAAA,OAAoBS,UAAU,uBAAsBkI,SAQlD3I,eAAA,QAAMS,UAAU,aAAYkI,SAC1BD,gBAAA,OAAKjI,UAAU,iBAAgBkI,SAAA,CAC7B3I,eAAA,OAAKS,UAAU,oCAAmCkI,SAChDD,gBAAA,OAAKjI,UAAU,sBAAqBkI,SAAA,CAClC3I,eAAA,OAAKS,UAAU,qBAYfT,eAAA,OAAKS,UAAU,2BAA0BkI,SACvC3I,eAAA,MAAA2I,SAAI,mDAIV3I,eAAA,OAAKS,UAAU,iCAAgCkI,SAC7CD,gBAAA,OAAKjI,UAAU,oBAAmBkI,SAAA,CAChCD,gBAAA,MAAIjI,UAAU,yFAAwFkI,SAAA,CACpG3I,eAAA,MAAIS,UAAU,yBAAwBkI,SACpC3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,YAEhC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAwB4pD,EAAMI,iBAAiBL,SAAWC,EAAMI,iBAAiBzW,KAAO,OAAS,IAAIrrC,SAClH3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,eAEhC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAwB4pD,EAAMsF,cAAcvF,SAAWC,EAAMsF,cAAc3b,KAAO,OAAS,IAAIrrC,SAC5G3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,kBAEhC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAwB4pD,EAAMuF,cAAcxF,SAAWC,EAAMuF,cAAc5b,KAAO,OAAS,IAAIrrC,SAC5G3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,kBAEhC3I,eAAA,MAAIS,UAAU,4BACdT,eAAA,MAAIS,UAAW,sBAAwB4pD,EAAMwF,gBAAgBzF,SAAWC,EAAMwF,gBAAgB7b,KAAO,OAAS,IAAIrrC,SAChH3I,eAAA,QAAMS,UAAU,cAAakI,SAAC,uBAIlCD,gBAAA,OAAKjI,UAAU,yBAAwBkI,SAAA,CACrC3I,eAAA,OAAK6O,QAASw7C,EAAMkF,aAAanF,QAAQzhD,SACvC3I,eAACuuD,GAAY,CACX5xB,KAAMA,CAAC70B,EAAM2H,KACXrQ,KAAKu9B,KAAK70B,EAAM2H,EAAQ,EAE1B6zC,KAAMlkD,KAAKC,MAAMgrD,MAAMkF,gBACnBnwD,KAAKF,UAGbc,eAAA,OAAK6O,QAASw7C,EAAMI,iBAAiBL,QAAQzhD,SAC3C3I,eAAC8uD,GAAe,CAACnwC,SAAUvf,KAAKC,MAAMsf,SAAU4kC,KAAMA,CAACz7C,EAAM2H,KAAcrQ,KAAKmkD,KAAKz7C,EAAM2H,EAAQ,EAAKktB,KAAMA,CAAC70B,EAAM2H,KAAcrQ,KAAKu9B,KAAK70B,EAAM2H,EAAQ,EAAK6zC,KAAMlkD,KAAKC,MAAMgrD,MAAMI,qBAEzLzqD,eAAA,OAAK6O,QAASw7C,EAAMsF,cAAcvF,QAAQzhD,SACxC3I,eAACwjD,GAAa,CAACD,KAAMA,CAACz7C,EAAM2H,KAAcrQ,KAAKmkD,KAAKz7C,EAAM2H,EAAQ,EAAK9I,MAAOvH,KAAKC,MAAMsH,MAAOg2B,KAAMA,CAAC70B,EAAM2H,KAAcrQ,KAAKu9B,KAAK70B,EAAM2H,EAAQ,EAAK6zC,KAAMlkD,KAAKC,MAAMgrD,MAAMsF,kBAEjL3vD,eAAA,OAAK6O,QAASw7C,EAAMuF,cAAcxF,QAAQzhD,SACxC3I,eAACooD,GAAa,CACdkB,QAAUlqD,KAAKC,MAAMwZ,SAAWzZ,KAAKC,MAAMsf,WAAwD,IAA5Cvf,KAAKC,MAAMwZ,QAAQ5D,cAAc2tC,UAA+D,OAA3CxjD,KAAKC,MAAMsf,SAAS4hC,sBAA0E,KAA3CnhD,KAAKC,MAAMsf,SAAS4hC,qBACnL6I,UAAYttD,IAAS6P,QAAQC,IAAI9P,GAAOsD,KAAKgqD,UAAUhqD,KAAKC,MAAMgrD,MAAMsF,cAAc7nD,KAAK,EAAGmhD,aAAc7pD,KAAKC,MAAMgrD,MAAMsF,cAAc7nD,KAAMy7C,KAAMA,CAACz7C,EAAM2H,KAAcrQ,KAAKmkD,KAAKz7C,EAAM2H,EAAQ,EAAK/P,KAAM2qD,EAAMsF,cAAc7nD,KAAOuiD,EAAMsF,cAAc7nD,KAAK88C,MAAQ,GAAIyE,MAAOjqD,KAAKC,MAAMgqD,MAAO1sB,KAAMA,CAAC70B,EAAM2H,KAAcrQ,KAAKu9B,KAAK70B,EAAM2H,EAAQ,EAAK6zC,KAAMlkD,KAAKC,MAAMgrD,MAAMuF,kBAEzX5vD,eAAA,OAAK6O,QAASw7C,EAAMwF,gBAAgBzF,QAAQzhD,SAExCvJ,KAAKC,MAAMwZ,SACX7Y,eAAC4gD,GAAe,CAACn3B,MAAOrqB,KAAKC,MAAMgrD,MAAMwF,gBAAgBpmC,MAAO85B,KAAMA,CAACz7C,EAAM2H,KAAcrQ,KAAKmkD,KAAKz7C,EAAM2H,EAAQ,EAAKktB,KAAMA,CAAC70B,EAAM2H,KAAcrQ,KAAKu9B,KAAK70B,EAAM2H,EAAQ,EAAK6zC,KAAMlkD,KAAKC,MAAMgrD,MAAMwF,oBAE3M7vD,eAAA,OAAK6O,QAASw7C,EAAMM,eAAeP,QAAQzhD,SACzC3I,eAACovD,GAAc,CAAC7L,KAAMA,CAACz7C,EAAM2H,KAAcrQ,KAAKmkD,KAAKz7C,EAAM2H,EAAQ,EAAKktB,KAAMA,CAAC70B,EAAM2H,KAAcrQ,KAAKu9B,KAAK70B,EAAM2H,EAAQ,EAAK6zC,KAAMlkD,KAAKC,MAAMgrD,MAAMM,mBAEzJ3qD,eAAA,OAAK6O,QAASw7C,EAAM6F,SAAS9F,QAAQzhD,SACnCD,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,OAAKS,UAAU,2EAA0EkI,SAAC,eAG1F3I,eAAA,KAAGS,UAAU,OAAMkI,SAAM,OAAJvJ,WAAI,IAAJA,MAAW,QAAP0yD,EAAJ1yD,KAAMC,aAAK,IAAAyyD,GAAO,QAAPC,EAAXD,EAAa9nD,aAAK,IAAA+nD,OAAd,EAAJA,EAAoBC,kCAvFhD,WAkGb,CACA,OACEhyD,eAAA,OAAKS,UAAWrB,KAAKF,MAAMuB,UAAUkI,SACnC3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,WAGnD,EAGao+C,U,mBC7bf,MAAM4C,WAAqBjzD,YACzBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAG4R,aACjB1b,KAAK8yD,cAAgB,uDACrB9yD,KAAKC,MAAQ,CACXykB,mBAAoB,CAAEoC,OAAQ9mB,KAAKF,MAAM4I,KAAKoJ,GAAI+sB,UAAW7+B,KAAKF,MAAM4I,KAAKm2B,WAC7Ek0B,SAAW,GACXC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZhvB,YAAa,GACbivB,MAAO,GACPC,WAAY,GACZC,gBAAgB,MAGlBrzD,KAAK8c,aAAe9c,KAAK8c,aAAahN,KAAK9P,MAC3CA,KAAK+c,cAAgB/c,KAAK+c,cAAcjN,KAAK9P,MAC7CA,KAAKszD,iBAAmBtzD,KAAKszD,iBAAiBxjD,KAAK9P,KACrD,CAEAoN,oBACE,IAAIzM,EAAOX,KACXW,EAAKslB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAAMnX,MAAK,KAAKvN,KAAKmB,SAAS,CAAC4xD,SAASpyD,EAAKslB,OAAOmF,OAAO,GAC1H,CAEAmoC,eAAeC,GACbxzD,KAAKmB,SAAS,CAAE6xD,UAAWhzD,KAAKC,MAAM+yD,SAASK,gBAAgBG,GACjE,CACAC,iBAAiBD,GACfxzD,KAAKmB,SAAS,CAAE8xD,YAAajzD,KAAKC,MAAMgzD,WAAWI,gBAAgBG,GACrE,CACAE,kBACE1zD,KAAKmB,SAAS,CAAE+xD,YAAalzD,KAAKC,MAAMizD,YAC1C,CACAS,aAAc,IAADC,EACX,OAA4B,QAA5BA,EAAO5zD,KAAKC,MAAMmzD,kBAAU,IAAAQ,OAAA,EAArBA,EAAuB50D,MAChC,CACA8d,aAAa02C,GACX,IAAI7yD,EAAOX,KACP23C,EAAU,CACZkc,WAAWlzD,EAAKb,MAAMga,KAAKgN,OAC3BgtC,QAASnzD,EAAKV,MAAMikC,YACpB6vB,cAAe/zD,KAAKC,MAAMozD,gBAAgBU,cAC1Cl1B,UAAW7+B,KAAKC,MAAMozD,gBAAgBx0B,WAExC/0B,GAAG4R,aAAa6U,YAAYonB,EAAQ,KAAK11B,EAAO3I,UAAUwD,aAAc,CAAC,GAAE,GAAOvP,MAAK,KAAK5M,EAAKQ,SAAS,CAAC6xD,UAAS,GAAO,GAC7H,CACAj2C,gBACE,IAAIpc,EAAOX,KACP23C,EAAU,CACZka,UAAUlxD,EAAKV,MAAMozD,gBAAgBU,cACrCZ,MAAMxyD,EAAKV,MAAMkzD,OAEnBrpD,GAAG4R,aAAa6U,YAAYonB,EAAQ,KAAK11B,EAAO3I,UAAUyD,cAAe,CAAC,GAAE,GAAOxP,MAAK,KACtF,IAAIwlD,EAAW,IAAIpyD,EAAKV,MAAM8yD,UAE9BA,EADYv2D,IAAE+B,QAAQw0D,EAASpyD,EAAKV,MAAMozD,kBACxBt0C,OAAOyI,OAAO,CAAC,EAAE7mB,EAAKV,MAAMozD,gBAAgB,CAACW,sBAAqB,IACpFrzD,EAAKQ,SAAS,CAAC8xD,YAAW,EAAMF,YAAU,GAE9C,CAEA/1C,YAAYw2C,GACV,IACI7b,EAAU,CACZka,UAAU2B,EAAQO,cAClBjtC,OAHS9mB,KAGGF,MAAMga,KAAKgN,QAEzBhd,GAAG4R,aAAa6U,YAAYonB,EAAQ,KAAK11B,EAAO3I,UAAU0D,YAAa,CAAC,GAAE,EAC5E,CAEAi3C,gBAAgBvrD,GACd4W,OAAOC,SAAS0K,KAAO,8CAAgDvhB,EAAKwrD,MAC9E,CAEAZ,mBACE,IAAI3yD,EAAMX,KAEV,IAAIm0D,EAAgB,CAClBC,WAAW,EACXC,eAHa73D,IAAE83D,MAAM93D,IAAEiU,OAAOzQ,KAAKC,MAAM8yD,UAAUS,GAAkBA,EAAQY,YAAa,kBAK5Fp0D,KAAKimB,OAAOyH,OAAOymC,EAAeA,EAAen0D,KAAKC,MAAMykB,oBAAoBnX,MAAK,KACnF5M,EAAKQ,SAAS,CAAC4xD,SAAS,IAAI,GAEhC,CAEAwB,aAAaf,GACX,IAAI7yD,EAAMX,KACNw0D,EAAa,GACjBA,EAAWxtD,KAAKwsD,EAAQO,eACxB,IAAII,EAAgB,CAClBC,WAAW,EACXC,eAAgBG,GAElBx0D,KAAKimB,OAAOyH,OAAOymC,EAAeA,EAAen0D,KAAKC,MAAMykB,oBAAoBnX,MAAK,KACnF5M,EAAKslB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAAMnX,MAAK,KAAKvN,KAAKmB,SAAS,CAAC4xD,SAASpyD,EAAKslB,OAAOmF,OAAO,GAAE,GAM9H,CAEAqpC,iBAAiB/rD,GACfoB,GAAG6R,iBAAiB+H,mBAAmB,CAAE5R,GAAIpJ,EAAKqrD,gBAAiBxmD,MAAK,KACtE,IAAI6lD,EAAatpD,GAAG6R,iBAAiByP,MACrCprB,KAAKmB,SAAS,CAAEiyD,WAAYA,EAAYF,YAAalzD,KAAKC,MAAMizD,YAAa,GAEjF,CAEAxyD,SACE,IAAIC,EAAOX,KACPqwB,EAAU,GACV3nB,EAAO,GA2FX,OA1FIoB,GAAG2pB,UAAUzzB,KAAKimB,UAEpBvd,EAAOlM,IAAEiU,OAAO,IAAIzQ,KAAKimB,OAAOmF,QAAQooC,IAAuC,IAArBA,EAAQY,YAClE/jC,EAAU,CACR,CACE2W,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAC1B0c,UAAU,EACVztC,WAAY,CAAClD,KAAWQ,UACxBsyC,WAAW,EACXO,cAAe,CACb79B,MAAM,GAERq6B,UAAWA,CAACQ,EAAMltC,IACTY,KAAMC,QAAQqsC,GAAM9mC,SAAS,eAGxC,CACEqhC,UAAW,OACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,QAC1B0c,UAAU,EACVztC,WAAY,CAAClD,KAAWQ,SAAUR,KAAW6C,WAC7CwwC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,YACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,aAC1B0c,UAAU,EACVztC,WAAY,CAAClD,KAAWQ,UACxBsyC,WAAW,EACXjD,UAAUA,CAACQ,EAAKltC,KACd,IAAIka,EAAUjd,IAAEu/B,UAAUp7B,EAAKb,MAAMga,KAAKkiB,cAAc,CAAC6C,UAAU4N,IACnE,OAAOhzB,EAAUA,EAAQknB,YAAc,EAAE,EAE3C8O,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,gBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,iBAC1B0c,UAAU,EACVrF,UAAS,EACTpoC,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,uBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,wBAC1BqX,UAAU,EACVqF,UAAU,EACV0C,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,aACX+G,YAAY,EACZn8B,KAAM5R,KAAKimB,OAAOoK,QAAQ,cAE1Bof,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,SACXp1B,KAAM,GACNs9B,WAAW,EACXnC,UAAU,EACVsC,MAAM,IACNpD,UAAWA,CAACQ,EAAMltC,IACR+J,gBAAA,OAAAC,SAAA,CACE3I,eAAA,UAAQiJ,MAAM,QAAQ41B,QAASA,IAAM9+B,EAAK4yD,eAAeh0D,GAAM8B,UAAU,kBAAiBkI,SAAC3I,eAAC8zD,KAAU,MACtG9zD,eAAA,UAAQiJ,MAAM,iBAAiB41B,QAAU70B,IAAYjK,EAAK8yD,iBAAiBl0D,EAAI,EAAK8B,UAAU,iBAAgBkI,SAAC3I,eAAC+zD,KAAW,MAC3H/zD,eAAA,UAAQiJ,MAAM,eAAe41B,QAAU70B,IAAYjK,EAAKqc,YAAYzd,EAAI,EAAK8B,UAAU,iBAAgBkI,SAAC3I,eAACg0D,KAAY,MACrHh0D,eAAA,UAAQiJ,MAAM,OAAO41B,QAAU70B,IAAYjK,EAAK8zD,iBAAiBl1D,EAAI,EAAK8B,UAAU,kBAAiBkI,SAAC3I,eAACi0D,KAAK,MAC1G/qD,GAAGsyB,gBAAkBtyB,GAAGyyB,UAC1B37B,eAAA,UAAQiJ,MAAM,WAAW41B,QAAU70B,IAAYjK,EAAKszD,gBAAgB10D,EAAI,EAAK8B,UAAU,kBAAiBkI,SAAC3I,eAACk0D,KAAU,MACnH,KAEDl0D,eAAA,UAAQiJ,MAAM,SAAS41B,QAAU70B,IAAYjK,EAAK4zD,aAAah1D,EAAI,EAAK8B,UAAU,iBAAgBkI,SAAC3I,eAAA,KAAGS,UAAU,yBAOhIiI,gBAAA,OAAoBjI,UAAU,4BAA2BkI,SAAA,CACvD3I,eAACuvC,GAAW,CACVlP,aAAa,EACbC,WAAa,EACbjb,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACNgc,mBAAoB1kB,KAAKC,MAAMykB,mBAC/B2L,QAASA,EACThvB,UAAU,gCACV4oC,kBAAkB,EAClBS,WAAW,EACXZ,eAAe,EACfC,YAAY,EACZkB,YAAY,EACZ8H,aAAa,IAEfzpC,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAM+yD,SAASzpD,SAAA,CACtC3I,eAACsnC,KAAW,CAAA3+B,SAAC,UACb3I,eAACunC,KAAS,CAAA5+B,SACR3I,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SAC3BD,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,kBAGP3I,eAACkQ,KAAK,CAAYlF,KAAK,MAAMqqC,KAAK,iBAAiBre,IAAKse,KAAWj1C,SAAW2J,IAC5E5K,KAAKmB,SAAS,CAAE+iC,YAAat5B,EAAMkC,OAAOpQ,OAAQ,GADzC,eAOjB4M,gBAACs/B,KAAW,CAAAr/B,SAAA,CACZ3I,eAACioC,KAAM,CAACzV,MAAM,UAAUqM,QAASA,KAAQ9+B,EAAKmc,cAAc,EAAGvT,SAAC,kBAC9D3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASA,KAAQ9+B,EAAK4yD,gBAAgB,EAAGhqD,SAAC,iBAIxED,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAMgzD,WAAW1pD,SAAA,CACxC3I,eAACsnC,KAAW,CAAA3+B,SAAC,WACb3I,eAACunC,KAAS,CAAA5+B,SACRD,gBAACoH,KAAI,CAACrP,UAAU,cAAakI,SAAA,CAC3B3I,eAACgQ,KAAS,CAACvP,UAAU,aAAYkI,SAC/B3I,eAAA,MAAA2I,SAAI,0DAEND,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,mDAGP3I,eAACkQ,KAAK,CAAClF,KAAK,SAAS3K,SAAW2J,IAAY5K,KAAKmB,SAAS,CAAEgyD,MAAOvoD,EAAMkC,OAAOpQ,OAAQ,YAK9F4M,gBAACs/B,KAAW,CAAAr/B,SAAA,CACZ3I,eAACioC,KAAM,CAACzV,MAAM,UAAUqM,QAASA,KAAQ9+B,EAAKoc,eAAe,EAAGxT,SAAC,QAC/D3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASA,KAAQ9+B,EAAK8yD,kBAAkB,EAAGlqD,SAAC,aAI1ED,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAMizD,WAAW3pD,SAAA,CACxCD,gBAAC4+B,KAAW,CAAA3+B,SAAA,CAAC,YAAUvJ,KAAK2zD,aAAa,cACzC/yD,eAACunC,KAAS,CAAA5+B,SACR3I,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SAC3B3I,eAACgQ,KAAS,CAACvP,UAAU,wBAAuBkI,SACzC/M,IAAEwyB,OAAOruB,EAAKV,MAAMmzD,WAAW,eAAe5pD,KAAIurD,GAE/Cn0D,eAAA,OAAKS,UAAU,MAAKkI,SAAC3I,eAAA,OAAKk3B,IAAKi9B,EAAMC,aAAeD,EAAMC,aAAgBD,EAAME,iBAAkBF,EAAME,iBAAmB,GAAK5zD,UAAU,qBAAqBi9B,IAAI,kBAM7K19B,eAACgoC,KAAW,CAAAr/B,SACV3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASA,KAAQ9+B,EAAK+yD,iBAAiB,EAAGnqD,SAAC,eAIzE3I,eAAA,UAAQ6O,OAAQjT,IAAEiU,OAAOzQ,KAAKC,MAAM8yD,UAAUS,GAAWA,EAAQY,YAAYp1D,QAAQ,EAAIqC,UAAU,iBAAiBwI,MAAM,iBAAiB41B,QAASA,KAAQ9+B,EAAK2yD,kBAAkB,EAAG/pD,SAAC,qBA7EhL,WAgFb,EAGaspD,UCxSf,MAAMqC,WAAqBt1D,YACzBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAG8R,aACjB5b,KAAKC,MAAQ,CACXykB,mBAAoB,CAAEoC,OAAQ9mB,KAAKF,MAAM4I,KAAKoJ,GAAI+sB,UAAW7+B,KAAKF,MAAM4I,KAAKm2B,WAC7Es2B,iBAAkB,GAClBj0B,WAAU,EACVgrB,MAAM,GAGV,CACA9+C,oBACE,IAAIzM,EAAOX,KACXW,EAAKslB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAAMnX,MAAK,KACtE5M,EAAKQ,SAAS,CAAEg0D,iBAAkBx0D,EAAKslB,OAAOmF,OAAQ,GAE1D,CAEA+lB,QAAQyc,GACN,IAAIjtD,EAAOX,KACX8J,GAAG8R,aAAa4U,WAAW,CAAEk3B,cAAekG,EAAYlG,cAAeE,aAAc,YAAaS,WAAW,GAAQ,KAAMpmC,EAAO3I,UAAU8D,iBAAkB,CAAC,GAAE,GAC5J7P,MAAK,KAAO5M,EAAKQ,SAAS,CAACg0D,iBAAiBx0D,EAAKslB,OAAOmF,OAAO,GACxE,CAGEo8B,aAAaC,EAAUmG,GACrB,IAAIjtD,EAAOX,KACX8J,GAAG8R,aAAa4U,WAAW,CAAEk3B,cAAekG,EAAYlG,cAAeE,aAAc,YAAaH,UAAWA,GAC7G,KAAMxlC,EAAO3I,UAAU8D,iBAAkB,CAAC,GAAE,GACvC7P,MAAM7C,IACL/J,EAAKQ,SAAS,CAACg0D,iBAAiBx0D,EAAKslB,OAAOmF,OAAO,GAE3D,CAEAgmB,OAAOwc,GACL,IAAIjtD,EAAOX,KACX8J,GAAG8R,aAAa4U,WAAW,CAAEk3B,cAAekG,EAAYlG,cAAeE,aAAc,YAAaa,WAAW,GAAQ,KAAMxmC,EAAO3I,UAAU8D,iBAAkB,CAAC,GAAE,GAChK7P,MAAM7C,IACL/J,EAAKQ,SAAS,CAACg0D,iBAAiBx0D,EAAKslB,OAAOmF,OAAO,GAEvD,CAEAlO,UAAUwqC,GACR,IAAIwE,EAAQ1vD,IAAEu/B,UAAU/7B,KAAKC,MAAMisD,MAAO,CAACxE,cAAcA,IACtDwE,GACDpiD,GAAG8R,aAAa4U,WAAW,CAACk3B,cAAcA,EAAewE,MAAMA,EAAMA,OAAO,KAAKjqC,EAAO3I,UAAU4D,UAAW,CAAC,GAAE,GAC/G3P,MAAM7C,OAGX,CAEA0qD,qBAAqBC,GACnB,IAAI12C,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAOyB,sBAAuB,CAAEqQ,OAAQ9mB,KAAKC,MAAMykB,mBAAmBoC,OAAQ+X,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,UAAW6oB,cAAe2N,EAAI3N,gBACrL1nD,KAAKF,MAAMwxB,QAAQtqB,KAAK2X,EAC1B,CAEAyuC,YAAYxiD,EAAM+8C,GAChB,IAAIuE,EAAQ1vD,IAAE+N,OAAO,IAAIvK,KAAKC,MAAMisD,QAAQyB,GACnCA,EAAKjG,gBAAkBC,IAEhCuE,EAAMllD,KAAK,CAAC0gD,cAAcC,EAAeuE,MAAMthD,EAAMkC,OAAOpQ,QAC5DsD,KAAKmB,SAAS,CAAC+qD,SACjB,CAEAxrD,SACE,IAAIC,EAAOX,KACX,OACEsJ,gBAAA,OAAoBjI,UAAU,4BAA2BkI,SAAA,CACvD3I,eAAA,OAAKS,UAAU,mCAAmCoQ,MAAO,CAAE4sB,gBAAiB,WAAaoB,QAASA,KAAKz/B,KAAKmB,SAAS,CAAC+/B,WAAWlhC,KAAKC,MAAMihC,WAAW,EAAE33B,SACvJD,gBAAA,MAAIjI,UAAU,OAAMkI,SAAA,CAAC,gBAAevJ,KAAKC,MAAMihC,UAAYtgC,eAAA,KAAGy4C,MAAM,2BAAgCz4C,eAAA,KAAGy4C,MAAM,8BAE/Gz4C,eAAA,OAAK6O,OAAQzP,KAAKC,MAAMihC,UAAU33B,SACjC/M,IAAEiU,OAAO9P,EAAKV,MAAMk1D,kBAAkBvH,IAAqC,IAAvBA,EAAYlF,WAAiBl/C,KAAI,CAACokD,EAAazkD,KAAW,IAADmsD,EAC5G,IAAIhR,EAAOnkD,KAAMC,QAAQwtD,EAAYtJ,MACrC,OAAOh7C,gBAAA,OAAiBmI,MAAO,CAAE4sB,gBAAiB,UAAWk3B,QAAS,YAAcl0D,UAAU,gCAA+BkI,SAAA,CAC3HD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClBD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClB3I,eAAA,OAAKS,UAAU,eAAckI,SAC3B3I,eAAA,SAAA2I,SAAO3I,eAAA,KAAA2I,SAAwB,QAAxB+rD,EAAI1H,EAAYruC,gBAAQ,IAAA+1C,OAAA,EAApBA,EAAsBxnD,WAEnCxE,gBAAA,OAAAC,SAAA,CAEE3I,eAAA,SAAOS,UAAU,OAAMkI,SAAEpJ,KAAMuF,WAAW4+C,KAC1C1jD,eAAA,SAAOS,UAAU,QAAOkI,SAACD,gBAAA,KAAAC,SAAA,CAAG,WAAmC,OAAtBqkD,EAAYhjD,MAAiBgjD,EAAYhjD,MAAM4kD,YAAc,cAIzG,KACK5B,EAAYnG,UACP7mD,eAAA,OAAKS,UAAU,UAASkI,SAC7B3I,eAAA,UAAQS,UAAU,6BAA6BwI,MAAM,UAAU41B,QAASA,IAAMz/B,KAAKwnD,cAAa,EAAMoG,GAAarkD,SAAE,cAK/GD,gBAAA,OAAKjI,UAAU,UAASkI,SAAA,CAC9B3I,eAAA,UAAQS,UAAU,4BAA4BwI,MAAM,aAAa41B,QAASA,KAAQ9+B,EAAKb,MAAMs1D,qBAAqBxH,EAAY,EAAGrkD,SAAC,eAGlI3I,eAAA,UAAQS,UAAU,6BAA6BwI,MAAM,UAAU41B,QAASA,IAAMz/B,KAAKwnD,cAAa,EAAKoG,GAAarkD,SAAC,YAGlH,MACC,IAAKqkD,EAAYvF,UACf,OAAQznD,eAAA,UAAQS,UAAU,6BAA6BwI,MAAM,YAAY41B,QAASA,KAAQ9+B,EAAKwwC,QAAQyc,EAAY,EAAGrkD,SAAC,aAG1H,EALA,GAOCO,GAAGyyB,WAAazyB,GAAGsyB,eACrBx7B,eAAA,UAAQS,UAAU,4BAA4BwI,MAAM,SAAS41B,QAASA,KAAQ9+B,EAAKywC,OAAOwc,EAAY,EAAGrkD,SAAC,WAE9F,QAzBjB,MA+BH3I,eAAA,OAAKS,UAAU,MAAMoQ,MAAO,CAAE8jD,QAAS,YAAahsD,SAClD3I,eAAA,SAAA2I,SAAO3I,eAAA,KAAA2I,SAAG,eAEZ3I,eAAA,OAAKS,UAAU,MAAMoQ,MAAO,CAAE8jD,QAAS,YAAahsD,SAClD3I,eAAA,YAAU40D,UAAU,EAAM5G,KAAM,GAAIxZ,KAAM,EAAG/zC,UAAU,eAAeuL,aAAcghD,EAAY1B,MAAOjrD,SAAW2J,IAAS5K,KAAKotD,YAAYxiD,EAAMgjD,EAAYlG,cAAc,MAE9K9mD,eAAA,OAAKS,UAAU,MAAMoQ,MAAO,CAAE8jD,QAAS,YAAahsD,SAClDD,gBAAA,SAAAC,SAAA,CAAO,WAASqkD,EAAYv0C,MAAMu0C,EAAYv0C,MAAM,gBAnDvClQ,EA0DX,QAjED,WAsEb,EAGa+rD,UC5If,MAAMO,WAAiB71D,YACrBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAG4rD,QACjB11D,KAAKC,MAAQ,CACXykB,mBAAoB,CAAEoC,OAAQ9mB,KAAKF,MAAM4I,KAAKoJ,GAAI+sB,UAAW7+B,KAAKF,MAAM4I,KAAKm2B,YAE/E7+B,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAC7D1kB,KAAK21D,cAAgB31D,KAAK21D,cAAc7lD,KAAK9P,KAC/C,CACA21D,cAAcD,GACZ,IAAI/0D,EAAMX,KACRA,KAAKimB,OAAOuH,OAAO,CAACkoC,EAAQE,YAC3BroD,MAAK,KACO5M,EAAKslB,OAAOmF,KAAK,GAElC,CACA1qB,SACE,IAAIC,EAAOX,KACPqwB,EAAU,GACV3nB,EAAO,GAoGX,OAnGIoB,GAAG2pB,UAAUzzB,KAAKimB,UACpBvd,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAC1Bid,QAAQ,EACRP,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERq6B,UAAWA,CAACQ,EAAMltC,IACRY,KAAM+F,cAAcumC,EAAM,uBAGtC,CACEzF,UAAW,aACXp1B,KAAK,kBACLm7B,UAAS,EACTrF,UAAS,EACT+H,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,QACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,SAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,aACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,cAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,aACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,cAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,iBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,kBAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,iBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,kBAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAU/E,CACEwpC,UAAW,WACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,YAC1BqX,UAAU,EACVqF,UAAS,EACT0C,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,SACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,UAC1B6e,WAAW,EACXnC,UAAU,EACVd,UAAWA,CAACQ,EAAMltC,KACE,IAAfA,EAAIs2D,WAAyC,IAArB/rD,GAAGsyB,iBAAyC,IAAhBtyB,GAAGyyB,UAE9C,GADD37B,eAAA,UAAQ6+B,QAASA,KAAQ9+B,EAAKg1D,cAAcp2D,EAAI,EAAK8B,UAAU,iBAAgBkI,SAAC3I,eAACk1D,KAAU,SAO5Gl1D,eAAA,OAAoBS,UAAU,4BAA2BkI,SACvD3I,eAACuvC,GAAW,CACZlP,aAAa,EACbC,WAAa,EACXjb,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,gCACV4oC,kBAAkB,EAClBS,WAAW,EACXZ,eAAe,EACfC,YAAY,EACZkB,YAAY,EACZ8H,aAAa,KAbR,WAiBb,EAGa0iB,UC7If,MAAMM,WAA2Bn2D,YAC/BC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAQ,CAAC,CAChB,CAEA+1D,yBACE,OAAOx5D,IAAEgN,IAAIxJ,KAAKF,MAAMqjC,MAAM8yB,qBAAsB/sD,IAAU,IAADgtD,EAC3D,MAAO,CACLpoD,KAAkB,QAAdooD,EAAEhtD,EAAKyT,eAAO,IAAAu5C,OAAA,EAAZA,EAAcpoD,KACpBqoD,SAAUjtD,EAAKitD,SACfC,UAAWltD,EAAKyS,iBAAiBq5C,aAAe9rD,EAAKyS,iBAAiBq5C,aAAgB9rD,EAAKyS,iBAAiBs5C,iBAAmB/rD,EAAKyS,iBAAiBs5C,iBAAmB,GACxK9B,MAAOjqD,EAAKyT,QAAQw2C,MACrB,GAEL,CAEArS,aACE,MAAO,CACL,CACE9Z,UAAW,OACXp1B,KAAM,eACNm7B,UAAU,GAEZ,CACE/F,UAAW,YACXp1B,KAAM,QACNm7B,UAAU,EACVd,UAAWA,CAACQ,EAAMltC,IACRqB,eAAA,OAAKS,UAAU,kBAAkBy2B,IAAK2U,EAAMnO,IAAI,MAG5D,CACE0I,UAAW,WACXp1B,KAAM,WACNm7B,UAAU,GAEZ,CACE/F,UAAW,QACXp1B,KAAM,QACNs9B,WAAW,EACXnC,UAAU,EACVd,UAAWA,CAACQ,EAAMltC,IACV,IAANmC,OAAW+qC,GAAc,KAIjC,CAEA/rC,SACE,IAAI2vB,EAAUrwB,KAAK8gD,aACfp4C,EAAO1I,KAAKg2D,yBAEhB,OACEp1D,eAAA,OAAoBS,UAAU,4BAA2BkI,SACvDD,gBAACyI,KAAU,CAACG,OAAQlS,KAAKF,MAAMu2D,KAAK9sD,SAAA,CAClC3I,eAACsnC,KAAW,CAAA3+B,SAAC,kBACb3I,eAACunC,KAAS,CAAA5+B,SACR3I,eAACuvC,GAAW,CACV/M,UAAW,cACXnd,OAAQnc,GAAGmsD,oBACXvtD,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,gCACV4/B,aAAa,EACbC,WAAW,EACX+I,kBAAkB,EAClBS,WAAW,EACXZ,eAAe,EACfC,YAAY,EACZkB,YAAY,EACZ8H,aAAa,MAGjBnyC,eAACgoC,KAAW,CAAAr/B,SACV3I,eAAA,UAAQS,UAAU,kBAAkBo+B,QAASz/B,KAAKF,MAAMsS,QAAQ7I,SAAC,gBArB9D,WA2Bb,EAGawsD,UCrFf,MAAMO,WAAoB12D,YACxBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAG6M,YACjB3W,KAAKC,MAAQ,CACXykB,mBAAoB,CAAEoC,OAAQ9mB,KAAKF,MAAM4I,KAAKoJ,GAAI+sB,UAAW7+B,KAAKF,MAAM4I,KAAKm2B,WAC7E03B,oBAAmB,EACnBC,cAAc,MAEhBx2D,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAoB,GAC9D1kB,KAAK+uD,YAAc/uD,KAAK+uD,YAAYj/C,KAAK9P,MACzCA,KAAKy2D,cAAgBz2D,KAAKy2D,cAAc3mD,KAAK9P,KAC/C,CAEA+uD,YAAY5rB,GACVnjC,KAAKmB,SAAS,CAACo1D,oBAAmB,EAAMC,cAAcrzB,GACxD,CAEAszB,cAAcl3D,GACZ,IAAIo4C,EAAU,CACZ+e,QAAQn3D,EAAIo3D,cAEd32D,KAAKimB,OAAOsK,YAAYonB,EAAQ,KAAK33C,KAAKimB,OAAOiG,cAAcL,WAAY,CAAC,GAAE,EAChF,CAGAnrB,SACE,IAAIC,EAAOX,KACPqwB,EAAU,GACV3nB,EAAO,GAwDX,OAvDIoB,GAAG2pB,UAAUzzB,KAAKimB,UACpBvd,EAAO1I,KAAKimB,OAAOmF,MACnBiF,EAAU,CACR,CACE2W,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAC1Bid,QAAQ,EACRP,UAAU,EACV0C,cAAe,CACb79B,MAAM,GAERq6B,UAAWA,CAACQ,EAAMltC,IACRY,KAAM+F,cAAcumC,EAAM,eAGtC,CACEzF,UAAW,QACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,SAC1B0c,UAAU,EACV0C,cAAe,CACb79B,MAAM,GAERq6B,UAAWA,CAACQ,EAAMltC,IACR+J,gBAAA,OAAAC,SAAA,CAAK,KAAGhK,EAAIq3D,MAAM1rD,QAAQ,OAGtC,CACE87B,UAAW,UACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,WAC1B0c,UAAU,EACV0C,cAAe,CACb79B,MAAM,GAERq6B,UAAWA,CAACQ,EAAMltC,IACR+J,gBAAA,OAAAC,SAAA,CAAKD,gBAAA,KAAAC,SAAA,CAAG,KAAGhK,EAAIs3D,QAAQ3rD,QAAQ,MAAO,sBAGlD,CACE87B,UAAW,UACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,WAC1B6e,WAAW,EACXnC,UAAU,EACVt9B,QAAyB,IAAjB3F,GAAGyyB,YAA4C,IAAtBzyB,GAAGsyB,eACpC6P,UAAWA,CAACQ,EAAMltC,IACR+J,gBAAA,OAAAC,SAAA,CACN3I,eAAA,UAAQiJ,MAAM,eAAexI,UAAU,sBAAsBo+B,QAASA,KAAQ9+B,EAAKouD,YAAYxvD,EAAI,EAAIgK,SAAC3I,eAAA,KAAGy4C,MAAM,iBAE9F,IAAjBvvC,GAAGyyB,YAA4C,IAAtBzyB,GAAGsyB,eAC1Bx7B,eAAA,UAAQS,UAAU,qBAAqBwI,MAAM,UAAU41B,QAASA,KAAQz/B,KAAKy2D,cAAcl3D,EAAI,EAAEgK,SAAC,YAChG,WAOdD,gBAAA,OAAoBjI,UAAU,4BAA2BkI,SAAA,CACvD3I,eAACuvC,GAAW,CACVlqB,OAAQjmB,KAAKimB,OACbvd,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,gCACV4/B,aAAa,EACbC,WAAW,EACX+I,kBAAkB,EAClBS,WAAW,EACXZ,eAAe,EACfC,YAAY,EACZkB,YAAY,EACZ8H,aAAa,IAEb/yC,KAAKC,MAAMu2D,cACb51D,eAAA,OAAK6O,OAAQzP,KAAKC,MAAMs2D,mBAAmBhtD,SACzC3I,eAACm1D,GAAkB,CAACM,MAAOr2D,KAAKC,MAAMs2D,mBAAqBnkD,QAASA,KAAKpS,KAAKmB,SAAS,CAACo1D,oBAAmB,GAAM,EAAGpzB,MAAOnjC,KAAKC,MAAMu2D,kBAEvI,OAnBM,WAuBb,EAGaF,UC5Gf,MAAMQ,WAAoBl3D,YACxBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGyM,YACjBvW,KAAKC,MAAQ,CACXykB,mBAAoB,CAAE5S,GAAI9R,KAAKF,MAAMrB,MAAMmgB,OAAOkI,OAAQ+X,UAAW7+B,KAAKF,MAAMrB,MAAMmgB,OAAOigB,WAC7Fk4B,SAAU,CAAC,EACXV,MAAM,EACNW,WAAW,EACXC,WAAY,EACZtD,WAAW,EACXuD,iBAAkB,EAClBC,iBAAkB,EAClBC,iBAAkB,EAClBjE,MAAO,EACPzqD,MAAK,GAGP1I,KAAKq3D,wBAA0Br3D,KAAKq3D,wBAAwBvnD,KAAK9P,MACjEA,KAAKo1D,qBAAuBp1D,KAAKo1D,qBAAqBtlD,KAAK9P,MAC3DA,KAAKid,QAAUjd,KAAKid,QAAQnN,KAAK9P,MACjCA,KAAKs3D,eAAiBt3D,KAAKs3D,eAAexnD,KAAK9P,KACjD,CAEAoN,oBACE,MAAMzM,EAAKX,KACXA,KAAKmB,SAAS,CAACuH,MAAK,IACpB1I,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAAOnX,MAAM7E,IACrEoB,GAAG2pB,UAAUzzB,KAAKimB,UAEnBvd,EAAO/H,EAAKslB,OAAOmF,KAAI,GACvBzqB,EAAKQ,SAAS,CAACuH,KAAKA,IACpB6D,QAAQC,IAAI9D,GACd,GAGJ,CAEAyH,uBACEnQ,KAAKmB,SAAS,CAACuH,MAAK,GACtB,CAEA6uD,YACEv3D,KAAKmB,SAAS,CAAEk1D,MAAOr2D,KAAKC,MAAMo2D,MACpC,CAEAmB,gBACE,IAAIC,EAAY,CACdC,WAAY13D,KAAKC,MAAM+2D,UACvBC,WAAYj3D,KAAKC,MAAMg3D,WACvBtD,WAAY3zD,KAAKC,MAAM0zD,WACvBgE,eAAgB33D,KAAKC,MAAMi3D,iBAC3BU,eAAgB53D,KAAKC,MAAMk3D,iBAC3BU,eAAgB73D,KAAKC,MAAMm3D,iBAC3BjE,MAAOnzD,KAAKC,MAAMkzD,MAClBrsC,OAAQ9mB,KAAKC,MAAMykB,mBAAmB5S,GACtC+sB,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,WAE3C/0B,GAAG4rD,QAAQvoC,OAAOsqC,GAAWlqD,MAAK,KAAKvN,KAAKmB,SAAS,CAACk1D,MAAK,EAAOW,WAAW,EAC3EC,WAAY,EACZtD,WAAW,EACXuD,iBAAkB,EAClBC,iBAAkB,EAClBC,iBAAkB,EAClBjE,MAAO,GAAG,GACd,CACAkE,0BACE,IAAI14C,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAOwB,cAAe,CAAEsQ,OAAQ9mB,KAAKC,MAAMykB,mBAAmB5S,GAAI+sB,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,YAC3I7+B,KAAKF,MAAMwxB,QAAQtqB,KAAK2X,EAC1B,CACAy2C,qBAAqBC,GACnB,IAAI12C,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAOyB,sBAAuB,CAAEqQ,OAAQ9mB,KAAKC,MAAMykB,mBAAmB5S,GAAI+sB,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,UAAW6oB,cAAe2N,EAAI3N,gBACjL1nD,KAAKF,MAAMwxB,QAAQtqB,KAAK2X,EAC1B,CAEAm5C,aACI,IAAIh+C,EAAO9Z,KAAKimB,OAAOmF,MACvBthB,GAAGwM,MAAMkX,OAAO,CAAC1T,EAAKgN,SAASvZ,MAAK,KAAKzD,GAAG+xB,WAAW5Z,EAAOjN,OAAOsB,MAAM,GAC/E,CAEA2G,UACE,IAAInD,EAAO9Z,KAAKimB,OAAOmF,MACvB,IAAIyT,EAAY/0B,GAAGgyB,kBAAkBhiB,GAAM+kB,UAC3C/0B,GAAGuM,SAASoa,WAAW,KAAK,CAACyT,YAAYpqB,EAAKoqB,YAAYrF,aAAW5c,EAAO3I,UAAU2D,QAAS,CAAC,EAClG,CACAq6C,iBACat3D,KAAKimB,OAAOmF,MACvB,MAAM1iB,EAAO1I,KAAKC,MAAMyI,KACxB1I,KAAKimB,OAAOuK,WAAW9nB,EAAK,KAAKuZ,EAAO3I,UAAU+B,WAAY,CAAC,GAAE,EACnE,CACAqgC,aAAa9wC,EAAO2yC,GAClB,IAAI70C,EAAOqW,OAAOyI,OAAOxnB,KAAKC,MAAMyI,KAAM,CAAC,GAE3CA,EAAK60C,GAAS3yC,EAAMkC,OAAOpQ,MAE3BsD,KAAKmB,SAAS,CAAEuH,QAClB,CAEAhI,SAaE,OAAIV,KAAKC,MAAMyI,KAGZ1I,KAAKC,MAAMyI,KAEZY,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAAA,OAAKS,UAAU,6CAA6CoQ,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAChG3I,eAAA,MAAIS,UAAU,OAAMkI,SAAC,mBAEvBD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClBD,gBAAA,OAAKjI,UAAU,4CAA2CkI,SAAA,CACxD3I,eAAA,SAAO6Q,MAAO,CAAE49B,MAAO,SAAU9lC,SAAC3I,eAAA,KAAA2I,SAAG,mBACrC3I,eAAA,SAAOK,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,YAAY,EAAK+D,YAAY,aAActN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMyI,KAAKkhB,eAE3LtgB,gBAAA,OAAKjI,UAAU,4CAA2CkI,SAAA,CACxD3I,eAAA,SAAO6Q,MAAO,CAAE49B,MAAO,SAAU9lC,SAAC3I,eAAA,KAAA2I,SAAG,kBACrC3I,eAAA,SAAQK,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,WAAW,EAAK+D,YAAY,YAAatN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMyI,KAAKmhB,cAE1LvgB,gBAAA,OAAKjI,UAAU,4CAA2CkI,SAAA,CACxD3I,eAAA,SAAO6Q,MAAO,CAAE49B,MAAO,SAAU9lC,SAAC3I,eAAA,KAAA2I,SAAG,cACrC3I,eAAA,SAAQK,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,eAAe,EAAI+D,YAAY,QAAStN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMyI,KAAKghB,kBAEzLpgB,gBAAA,OAAKjI,UAAU,4CAA2CkI,SAAA,CACxD3I,eAAA,SAAO6Q,MAAO,CAAE49B,MAAO,SAAU9lC,SAAC3I,eAAA,KAAA2I,SAAG,qBACrC3I,eAAA,SAAQ+N,YAAY,eAAgBtN,UAAU,sDAAsD3E,MAAOsD,KAAKC,MAAMyI,KAAKw7B,YAAajjC,SAAW2J,IAAY5K,KAAK07C,aAAa9wC,EAAO,cAAc,OAExMtB,gBAAA,OAAKjI,UAAU,4CAA2CkI,SAAA,CACxD3I,eAAA,SAAO6Q,MAAO,CAAE49B,MAAO,SAAU9lC,SAAC3I,eAAA,KAAA2I,SAAG,qBACrC3I,eAAA,SAAOS,UAAU,sDAAsD3E,OAAoC,IAA7BsD,KAAKC,MAAMyI,KAAKqvD,SAAoB,MAAQ,KAAMvC,UAAU,UAG9I50D,eAAA,OAAKS,UAAU,MAAKkI,SAClBD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClB3I,eAAA,UAAQS,UAAU,sBAAsBo+B,QAASA,KAAQz/B,KAAKq3D,yBAAyB,EAAG9tD,SAAC,aAC3F3I,eAAA,UAAQ6O,QAA4B,IAApB3F,GAAGsyB,iBAAkD,IAAzBp8B,KAAKC,MAAMyI,KAAKsvD,OAAev4B,QAASA,IAAMz/B,KAAK83D,aAAcz2D,UAAU,qBAAoBkI,SAAC,WAC5I3I,eAAA,UAAQS,UAAU,sBAAsBwI,MAAM,cAAc41B,QAASA,KAAQz/B,KAAKu3D,WAAW,EAAGhuD,SAAC,gBACjG3I,eAAA,UAAQS,UAAU,sBAAsBo+B,QAASA,KAAKz/B,KAAKid,SAAS,EAAG1T,SAAC,aACxE3I,eAAA,UAAQS,UAAU,sBAAsBo+B,QAASA,KAAKz/B,KAAKs3D,gBAAgB,EAAG/tD,SAAC,4BAInF3I,eAACiyD,GAAY,CAAC/4C,KAAM9Z,KAAKC,MAAMyI,KAAMA,KAAM1I,KAAKC,MAAMykB,qBACtD9jB,eAACs0D,GAAY,CAACxsD,KAAM1I,KAAKC,MAAMykB,mBAAoB0wC,qBAAsBp1D,KAAKo1D,uBAC9Ex0D,eAAC60D,GAAQ,CAAC/sD,KAAM1I,KAAKC,MAAMykB,qBAC3B9jB,eAAC01D,GAAW,CAAC5tD,KAAM1I,KAAKC,MAAMykB,qBAE9Bpb,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAMo2D,KAAK9sD,SAAA,CAClC3I,eAACsnC,KAAW,CAAA3+B,SAAC,6BACb3I,eAACunC,KAAS,CAAA5+B,SACRD,gBAACoH,KAAI,CAACrP,UAAU,cAAakI,SAAA,CAC3BD,gBAACsH,KAAS,CAACvP,UAAU,aAAa42D,OAAK,EAACC,QAAM,EAAA3uD,SAAA,CAC5C3I,eAACkQ,KAAK,CAAClF,KAAK,WAAWlP,MAAOsD,KAAKC,MAAM+2D,UAAW/1D,SAAUk3D,GAAOn4D,KAAKmB,SAAS,CAAE61D,UAAWmB,EAAIrrD,OAAO0D,YAC3G5P,eAACiQ,KAAK,CAAConD,OAAK,EAAA1uD,SAAC,+BAIfD,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,YAGP3I,eAACkQ,KAAK,CAAYlF,KAAK,SAASlP,MAAOsD,KAAKC,MAAMg3D,WAAYh2D,SAAUk3D,GAAOn4D,KAAKmB,SAAS,CAAE81D,WAAYkB,EAAIrrD,OAAOpQ,SAA3G,WAEb4M,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,YAGP3I,eAACkQ,KAAK,CAAYlF,KAAK,SAASlP,MAAOsD,KAAKC,MAAM0zD,WAAY1yD,SAAUk3D,GAAOn4D,KAAKmB,SAAS,CAAEwyD,WAAYwE,EAAIrrD,OAAOpQ,SAA3G,WAEb4M,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,WAGP3I,eAACkQ,KAAK,CAAYlF,KAAK,SAASlP,MAAOsD,KAAKC,MAAMi3D,iBAAkBj2D,SAAUk3D,GAAOn4D,KAAKmB,SAAS,CAAE+1D,iBAAkBiB,EAAIrrD,OAAOpQ,SAAvH,WAEb4M,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,WAGP3I,eAACkQ,KAAK,CAAYlF,KAAK,SAASlP,MAAOsD,KAAKC,MAAMk3D,iBAAkBl2D,SAAUk3D,GAAOn4D,KAAKmB,SAAS,CAAEg2D,iBAAkBgB,EAAIrrD,OAAOpQ,SAAvH,WAQb4M,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,WAGP3I,eAACkQ,KAAK,CAAYlF,KAAK,SAASlP,MAAOsD,KAAKC,MAAMkzD,MAAOlyD,SAAUk3D,GAAOn4D,KAAKmB,SAAS,CAAEgyD,MAAOgF,EAAIrrD,OAAOpQ,SAAjG,gBAIjB4M,gBAACs/B,KAAW,CAAAr/B,SAAA,CACV3I,eAACioC,KAAM,CAACzV,MAAM,oBAAoBqM,QAASA,KAAQz/B,KAAKu3D,WAAW,EAAGhuD,SAAC,WACvE3I,eAACioC,KAAM,CAACzV,MAAM,kBAAkBqM,QAASA,KAAQz/B,KAAKw3D,eAAe,EAAGjuD,SAAC,uBA3FtE,iBAFX,EAFS3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,SAoGxD,EAGailD,UC5NA,MAAMsB,WAAuBx4D,YACxCc,SACI,OAAgC,IAA5BV,KAAKF,MAAM2J,MAAMzK,OAAoB,KAErCsK,gBAAA,OAAKjI,UAAU,kBAAiBkI,SAAA,CAC5B3I,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,UAC5CrV,IAAE49B,KAAKp6B,KAAKF,MAAM2J,OAAOD,KAAI,CAACN,EAAMC,KACjC,IAAIwX,EAAuB,MAAZzX,EAAK,GAAWA,EAAK1B,MAAM,GAAG0B,EAC7C,OACItI,eAAA,OAAiBS,UAAuB,MAAZ6H,EAAK,GAAW,cAAc,OAAOK,SAC5DoX,GADKxX,EAEJ,MAK1B,EClBW,MAAMkvD,WAAuBz4D,YAExCc,SACI,IAAKV,KAAKF,MAAMuqB,MAAM,OAAO,KAC7B,IAAI1pB,EAAOX,KACPs4D,EAAW,GAef,OAdAv5C,OAAOziB,OAAO0D,KAAKF,MAAMuqB,OAAOzV,SAASyV,IACrC,IAAIhC,EAAUve,GAAGC,EAAE,SAAWsgB,EAAMgK,WAAW,GAC/C,IAAKhM,EAAQ,CACT,IAAIkwC,EAAOluC,EAAMhC,QAAQ7hB,MAAM,MAC3B+xD,EAAKv5D,OAAS,IACdqpB,EAAUve,GAAGC,EAAE,SAAWwuD,EAAK,IAAI,GAE3C,CACKlwC,IACDA,EAAUgC,EAAMhC,SAEpBiwC,EAAStxD,KAAKqhB,EAAQ,IAGF,IAApBiwC,EAASt5D,OAAoB,KAG7BsK,gBAAA,OAAKjI,UAAU,kBAAiBkI,SAAA,CAC5B3I,eAAA,OAAKS,UAAU,QAAQo+B,QAASA,KAC5B31B,GAAGyqB,WAAWxV,OAAOC,KAAKre,EAAKb,MAAMuqB,OAAO,GAAG,EACjD9gB,SAAC,MACHD,gBAAA,OAAAC,SAAA,CAAMO,GAAGC,EAAE,eAAe,OAC1BnJ,eAAA,MAAA2I,SACK+uD,EAAS9uD,KAAI,CAACgvD,EAAKrvD,IACRvI,eAAA,MAAA2I,SAAiBivD,GAARrvD,SAKrC,ECpCW,MAAMsvD,WAA+B74D,YAChDC,YAAYC,GACRC,MAAMD,GAENE,KAAKC,MAAQ,CACTooB,QAAS,KACThnB,UAAW,GAEnB,CAEAu5B,WAAWvS,EAAShnB,EAAWs5B,GAC3B,IAAIh6B,EAAOX,KACXW,EAAKQ,SAAS,CAAEknB,UAAShnB,cAAa,KAClCie,OAAOyB,YAAW,KACdpgB,EAAKm6B,cAAc,GACpBH,GAAW,IAAK,GAE3B,CAEAG,eACe96B,KACNmB,SAAS,CAAEknB,QAAS,KAAMhnB,UAAW,IAC9C,CAEAX,SACI,OACI4I,gBAAA,OAAKjI,UAAW,mBAAqBrB,KAAKC,MAAMooB,QAAQ,UAAU,KAAQroB,KAAKC,MAAMoB,UAAWkI,SAAA,CAC5F3I,eAAA,UAAQgL,KAAK,SAASvK,UAAU,QAAQ,aAAW,QAAQo+B,QAASA,KAChEz/B,KAAK86B,cAAc,EACrBvxB,SAAC3I,eAAA,QAAM,cAAY,OAAM2I,SAAC,WAC5B3I,eAAA,OAAKS,UAAU,iBAAgBkI,SAAEvJ,KAAKC,MAAMooB,YAGxD,EC7BJ,MAAMqwC,WAAsB94D,YAC1BC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAG+L,cACjB7V,KAAKC,MAAQ,CACXykB,mBAAoB,CAAE5S,GAAI9R,KAAKF,MAAMrB,MAAMmgB,OAAOigB,WAClDztB,OAAQ,CAAC,EACTgrB,aAAatyB,GAAGsyB,gBAElBtyB,GAAG2P,QAAQsK,iBAAiB/jB,KAAKC,MAAMykB,oBACvC1kB,KAAKimB,OAAOlC,iBAAiB/jB,KAAKC,MAAMykB,oBAAoBnX,MAAK,KAC/DvN,KAAKmB,SAAS,CAAEiQ,OAAQpR,KAAKimB,OAAOmF,OAAS,CAAC,GAAI,IAGpDprB,KAAK24D,eAAiB34D,KAAK24D,eAAe7oD,KAAK9P,MAC/CA,KAAK44D,cAAgB54D,KAAK44D,cAAc9oD,KAAK9P,MAC7CA,KAAK64D,OAAS74D,KAAK64D,OAAO/oD,KAAK9P,KACjC,CAEA24D,eAAe/tD,EAAO2yC,GACpB,IAAInsC,EAAS2N,OAAOyI,OAAOxnB,KAAKC,MAAMmR,QACtCA,EAAOmsC,GAAS3yC,EAAMkC,OAAO0D,QAC7BxQ,KAAKmB,SAAS,CAAEiQ,UAClB,CACA,uBAAMhE,GAEJpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,aAEpD,CACAi4B,cAAchuD,EAAO2yC,GACnB,IAAI58C,EAAOX,KACPoR,EAAS2N,OAAOyI,OAAOxnB,KAAKC,MAAMmR,QACtCA,EAAOmsC,GAAS3yC,EAAMkC,OAAOpQ,MAC7BsD,KAAKmB,SAAS,CAAEiQ,WAAU,KACxB7E,QAAQC,IAAI7L,EAAKV,MAAMmR,OAAO,GAElC,CAEAynD,SACE74D,KAAKimB,OAAOyH,OAAO1tB,KAAKimB,OAAOmF,MAAOprB,KAAKC,MAAMmR,OACnD,CAEA1Q,SACE,IAAIgI,EAAO,CAAC,EACR0I,EAAS,CAAC,EACVtH,GAAG2pB,UAAU3pB,GAAG2P,QAASzZ,KAAKimB,UAChCvd,EAAOoB,GAAG2P,QAAQ2R,OAAS,CAAC,EAC5Bha,EAASpR,KAAKC,MAAMmR,QAsBtB,OACE9H,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CACpD3I,eAACggC,GAAS,CAAC/2B,MAAK,YAAAnI,OAAe1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IAAMG,KAAK,IACzHx3B,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CACxBD,gBAACoH,KAAI,CAACrP,UAAU,cAAakI,SAAA,CAC3BD,gBAACsH,KAAS,CAACvP,UAAU,WAAUkI,SAAA,CAC7BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAAC,KAAE3I,eAACkQ,KAAK,CAAClF,KAAK,WAAW3K,SAAW2J,IAAY5K,KAAK24D,eAAe/tD,EAAO,SAAS,EAAK4F,QAASY,EAAO4gD,SAC9HpxD,eAACiQ,KAAK,CAAAtH,SAAC,cACT3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC3I,eAAA,QAAMS,UAAU,aAAYkI,SAAC,4BAGtDD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAO4gD,OAAOzoD,SAAA,CAChC3I,eAACiQ,KAAK,CAAAtH,SAAC,4BACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,uBAAuB,EAAKlO,MAAO0U,EAAO0gD,qBAAuB1gD,EAAO0gD,qBAAuB,QAErKxoD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAO4gD,OAAOzoD,SAAA,CAChC3I,eAACiQ,KAAK,CAAAtH,SAAC,uBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,kBAAkB,EAAKlO,MAAO0U,EAAO0nD,gBAAkB1nD,EAAO0nD,gBAAkB,QAEtJxvD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAO4gD,OAAOzoD,SAAA,CAChC3I,eAACiQ,KAAK,CAAAtH,SAAC,qBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,eAAe,EAAKlO,MAAO0U,EAAO2nD,aAAe3nD,EAAO2nD,aAAe,SAElH,IAA1B/4D,KAAKC,MAAMm8B,cAAuB9yB,gBAACsH,KAAS,CAAArH,SAAA,CAC3C3I,eAACiQ,KAAK,CAAAtH,SAAC,mBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,YAAY,EAAKlO,MAAO0U,EAAO4nD,UAAY5nD,EAAO4nD,UAAY,QAEpI1vD,gBAACsH,KAAS,CAAArH,SAAA,CACR3I,eAACiQ,KAAK,CAAAtH,SAAC,+BACPD,gBAAA,UAAQjI,UAAU,eAAeJ,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,wBAAwB,EAAIrB,SAAA,CAC1G3I,eAAA,UAAQlE,MAAM,GAAE6M,SAAC,kBAlDZ,CAAC,CAClB7M,MAAO,GACPsR,MAAO,WACP,CACAtR,MAAO,GACPsR,MAAO,WACP,CACAtR,MAAO,GACPsR,MAAO,WACP,CACAtR,MAAO,IACPsR,MAAO,YACP,CACAtR,MAAO,IACPsR,MAAO,YACP,CACAtR,MAAO,IACPsR,MAAO,aAkCiBxE,KAAIjH,GAAO3B,eAAA,UAAQV,SAAUkR,EAAO6nD,wBAA0B12D,EAAI7F,MAAOA,MAAO6F,EAAI7F,MAAM6M,SAAEhH,EAAIyL,gBAGlH1E,gBAACsH,KAAS,CAACvP,UAAU,YAAWkI,SAAA,CAC9BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CACpB3I,eAACkQ,KAAK,CAAClF,KAAK,WAAW3K,SAAW2J,IAAY5K,KAAK24D,eAAe/tD,EAAO,iBAAiB,EAAK4F,QAASY,EAAO8nD,iBAC/Gt4D,eAACiQ,KAAK,CAAAtH,SAAC,uBACT3I,eAAA,OAAKS,UAAU,QAAOkI,SACpB3I,eAAA,QAAMS,UAAU,aAAYkI,SAAC,kKAYjCD,gBAACsH,KAAS,CAACvP,UAAU,YAAWkI,SAAA,CAC9BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CACpB3I,eAACkQ,KAAK,CAAClF,KAAK,WAAW3K,SAAW2J,IAAY5K,KAAK24D,eAAe/tD,EAAO,WAAW,EAAK4F,QAASY,EAAOoyC,WACzG5iD,eAACiQ,KAAK,CAAAtH,SAAC,uBAET3I,eAAA,OAAKS,UAAU,QAAOkI,SACpB3I,eAAA,QAAMS,UAAU,aAAYkI,SAAC,uCAqBjCD,gBAACsH,KAAS,CAACvP,UAAU,YAAWkI,SAAA,CAC9BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CACpB3I,eAACkQ,KAAK,CAAClF,KAAK,WAAW3K,SAAW2J,IAAY5K,KAAK24D,eAAe/tD,EAAO,WAAW,EAAK4F,QAASY,EAAOgpC,WACzGx5C,eAACiQ,KAAK,CAAAtH,SAAC,gBAET3I,eAAA,OAAKS,UAAU,QAAOkI,SACpB3I,eAAA,QAAMS,UAAU,aAAYkI,SAAC,0CAGjCD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOgpC,SAAS7wC,SAAA,CAClC3I,eAACiQ,KAAK,CAAAtH,SAAC,sBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,iBAAiB,EAAKlO,MAAO0U,EAAO+nD,eAAiB/nD,EAAO+nD,eAAiB,QAEnJ7vD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOgpC,SAAS7wC,SAAA,CAClC3I,eAACiQ,KAAK,CAAAtH,SAAC,iBACPD,gBAACwH,KAAK,CACJhD,KAAK,gBACLlC,KAAK,SACL3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,gBAAgB,EACjElO,MAAO0U,EAAO+oC,cAAgB/oC,EAAO+oC,cAAgB,EAAE5wC,SAAA,CAEvD3I,eAAA,UAAQlE,MAAO,EAAE6M,SAAC,WAGlB3I,eAAA,UAAQlE,MAAO,EAAE6M,SAAC,iBAKtBD,gBAACsH,KAAS,CAACvP,UAAU,WAAUkI,SAAA,CAC7BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAAC3I,eAACkQ,KAAK,CAAClF,KAAK,WAAW3K,SAAW2J,IAAY5K,KAAK24D,eAAe/tD,EAAO,WAAW,EAAK4F,QAASY,EAAOgoD,WAC9Hx4D,eAACiQ,KAAK,CAAAtH,SAAC,iBACT3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC3I,eAAA,QAAMS,UAAU,aAAYkI,SAAC,qCAEpDD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOgoD,SAAS7vD,SAAA,CAClC3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,oBAAoB,EAAKlO,MAAO0U,EAAOioD,kBAAoBjoD,EAAOioD,kBAAoB,QAE5J/vD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOgoD,SAAS7vD,SAAA,CAClC3I,eAACiQ,KAAK,CAAAtH,SAAC,wBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,iBAAiB,EAAKlO,MAAO0U,EAAOkoD,eAAiBloD,EAAOkoD,eAAiB,QAEnJhwD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOgoD,SAAS7vD,SAAA,CAClC3I,eAACiQ,KAAK,CAAAtH,SAAC,iBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,qBAAqB,EAAKlO,MAAO0U,EAAOmoD,mBAAqBnoD,EAAOmoD,mBAAqB,QAGjKjwD,gBAACsH,KAAS,CAACvP,UAAU,WAAUkI,SAAA,CAC7BD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAAC3I,eAACkQ,KAAK,CAAClF,KAAK,WAAW3K,SAAW2J,IAAY5K,KAAK24D,eAAe/tD,EAAO,SAAS,EAAK4F,QAASY,EAAOooD,SAC5H54D,eAACiQ,KAAK,CAAAtH,SAAC,kBACT3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC3I,eAAA,QAAMS,UAAU,aAAYkI,SAAC,gCAEpDD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOooD,OAAOjwD,SAAA,CAChC3I,eAACiQ,KAAK,CAAAtH,SAAC,iBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,cAAc,EAAKlO,MAAO0U,EAAOqoD,YAAcroD,EAAOqoD,YAAc,QAE1InwD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOooD,OAAOjwD,SAAA,CAChC3I,eAACiQ,KAAK,CAAAtH,SAAC,wBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,mBAAmB,EAAKlO,MAAO0U,EAAOsoD,iBAAmBtoD,EAAOsoD,iBAAmB,QAEzJpwD,gBAACsH,KAAS,CAACnB,QAAS2B,EAAOooD,OAAOjwD,SAAA,CAChC3I,eAACiQ,KAAK,CAAAtH,SAAC,sBACP3I,eAACkQ,KAAK,CAAClF,KAAK,OAAO3K,SAAW2J,IAAY5K,KAAK44D,cAAchuD,EAAO,kBAAkB,EAAKlO,MAAO0U,EAAOuoD,gBAAkBvoD,EAAOuoD,gBAAkB,WAG1J/4D,eAAA,OAAKS,UAAU,YAAWkI,SACxB3I,eAAA,OAAKS,UAAU,wBAAuBkI,SACpC3I,eAACioC,KAAM,CAACzV,MAAM,eAAeqM,QAASz/B,KAAK64D,OAAOtvD,SAAC,kBAhJlD,WAwJb,EAGamvD,UChOA,MAAMkB,WAAmBh6D,YACpCC,YAAYC,GACRC,MAAMD,GAGNE,KAAKC,MAAQ,CACTq7C,SAAS,EACTxjB,IAAI,IAER93B,KAAK65D,YAAc75D,KAAK65D,YAAY/pD,KAAK9P,KAC7C,CAIA65D,cACI75D,KAAKmB,SAAS,CAACm6C,SAAQ,GAC3B,CAEA56C,SACI,OACI4I,gBAAAglC,YAAA,CAAA/kC,SAAA,CACEvJ,KAAKC,MAAMq7C,SAAY16C,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,UACrEjR,eAAA,OAAKk5D,OAAQ95D,KAAK65D,eAAiB75D,KAAKF,MAAQ2R,MAAO,CAACinC,QAAS14C,KAAKC,MAAMq7C,QAAU,OAAS,aAGxG,ECvBJ,MAAMye,WAA0Bn6D,YAC5BC,YAAYC,GACRC,MAAMD,GACNE,KAAK8yD,cAAgB,uDACrB9yD,KAAKimB,OAASnc,GAAGkwD,iBACjBh6D,KAAKC,MAAQ,CACTizD,YAAW,EACXE,WAAW,GACX6G,UAAU,GACVv1C,mBAAoB,CAAEoC,OAAQ9mB,KAAKF,MAAMrB,MAAMmgB,OAAOkI,OAAQ+X,UAAW7+B,KAAKF,MAAMrB,MAAMmgB,OAAOigB,WACjGq7B,OAAQ,GACR99B,aAAatyB,GAAGsyB,gBAEpBp8B,KAAKy2D,cAAgBz2D,KAAKy2D,cAAc3mD,KAAK9P,KACjD,CACAy2D,cAAcE,GACV,IAAIhf,EAAU,CACZ+e,QAAQC,GAEV7sD,GAAG6M,YAAY4Z,YAAYonB,EAAQ,KAAK7tC,GAAG6M,YAAYuV,cAAcL,WAAY,CAAC,GAAE,EACxF,CACAze,oBACIpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,cAClD,IAAIhgC,EAAOX,KAEPyZ,EAAU3P,GAAGgyB,oBAEjB,IAAIld,EAAQ,CAACigB,UAAWplB,EAASA,EAAQolB,UAAU,GACnDl+B,EAAKslB,OAAOwK,WAAW,KAAM,KAAMxO,EAAO3I,UAAUgE,WAAYsB,GAAO,GAAMrR,MAAMyrC,IAC/Eh5C,KAAKmB,SAAS,CAAE+4D,OAAQv5D,EAAKslB,OAAOmF,OAAQ,GAEpD,CACA+uC,cAAcC,GAEV,GAAsB,OAAnBA,EAAyB,MAAO,GACnC,IAAIj2B,EAAU,GAgBd,OAfK3nC,IAAEU,OAAOk9D,EAAgB7T,YAC1BpiB,EAAUi2B,EAAgB7T,UAEzB/pD,IAAEU,OAAOk9D,EAAgBC,YAC1Bl2B,GAAO,IAAAziC,OAAQ04D,EAAgBC,WAE9B79D,IAAEU,OAAOk9D,EAAgBh2B,QAC1BD,GAAO,IAAAziC,OAAQ04D,EAAgBh2B,OAE9B5nC,IAAEU,OAAOk9D,EAAgBn6D,SAC1BkkC,GAAO,IAAAziC,OAAQ04D,EAAgBn6D,QAE9BzD,IAAEU,OAAOk9D,EAAgB/1B,OAC1BF,GAAO,IAAAziC,OAAQ04D,EAAgB/1B,MAE5BF,CACX,CACAm2B,YAAY3+C,EAAiBs+C,GACzB,OAAGt+C,EACI/a,eAAA,KAAGqpB,KAAK,IAAIwV,QAASA,IAAIz/B,KAAKu6D,UAAU5+C,EAAiB6+C,aAAaP,GAAW1wD,SAAC,UAClF,EACX,CACAkxD,UAAUt3B,GACN,IAAIxiC,EAAOX,KACX,MAAM06D,EAAer4C,KAAK6G,MAAM7G,KAAKC,UAAU6gB,IAC/Cu3B,EAAaC,YAAa,EAC1Bh6D,EAAKslB,OAAOyH,OAAOyV,EAAOu3B,GAAcntD,MAAMyrC,IAC1C,IAAItwC,EAAO/H,EAAKslB,OAAOmF,MACnBzU,EAAcna,IAAEiU,OAAO,IAAI/H,IAAQy6B,IACP,IAArBA,EAAMw3B,aAEjBh6D,EAAKQ,SAAS,CAAE+4D,OAAQvjD,GAAc,GAE9C,CACAikD,qBAAqBC,EAAc1xD,GAC/B,OACIG,gBAAA,OAAiBjI,UAAU,+BAA+BoQ,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CAC5F3I,eAAA,OAAKS,UAAU,MAAKkI,SAAEsxD,EAAcl+C,QAAQ7O,OAC5ClN,eAAA,OAAKS,UAAU,MAAKkI,SAAEsxD,EAAc1E,WACpCv1D,eAAA,OAAKS,UAAU,MAAKkI,SAAEvJ,KAAKs6D,YAAYO,EAAcl/C,iBAAiBk/C,EAAcl+C,QAAQ7O,UAHtF3E,EAMlB,CACAuqD,kBACI1zD,KAAKmB,SAAS,CAAE+xD,YAAalzD,KAAKC,MAAMizD,YAC5C,CACAqH,UAAUv5B,EAAIi5B,GAEVj6D,KAAKmB,SAAS,CAAEiyD,WAAYpyB,EAAIi5B,YAAW/G,YAAalzD,KAAKC,MAAMizD,YAErE,CACF4H,YAAYx6D,GACR,OAAGA,EACQH,KAAMC,QAAQE,EAAM,OAAOqF,SAAS,cAExC,IAEX,CACAjF,SACI,IAAIC,EAAOX,KACP0I,EAAO,GAIX,OAHIoB,GAAG2pB,UAAU9yB,EAAKslB,UAClBvd,EAAO/H,EAAKV,MAAMi6D,QAGlB5wD,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAChD3I,eAACggC,GAAS,CAAC/2B,MAAK,UAAAnI,OAAa1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IAAMG,KAAK,EAAMC,KAAM/gC,KAAKF,MAAM2yC,WAC/I/pC,EAAKc,KAAI,CAACuxD,EAAEv7C,IAELlW,gBAAA,OAAajI,UAAU,iBAAgBkI,SAAA,CACnCD,gBAAA,OAAKjI,UAAU,6CAA6CoQ,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CAC9FD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAAC,IAAE5I,EAAKm6D,YAAYC,EAAEC,gBAC1Cp6D,eAAA,OAAKS,UAAU,MAAKkI,SAAEwxD,EAAEpE,eAExBrtD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAAC,KAAGwxD,EAAErF,SAAuC,MAA5BqF,EAAErF,QAAQuF,eAAyBF,EAAErF,QAAQvC,MAAQ4H,EAAEnE,MAAQmE,EAAEnE,SACtGh2D,eAAA,OAAKS,UAAU,oCAAmCkI,SAAEwxD,EAAEG,QAAQ,UAAU,KACxEt6D,eAAA,OAAKS,UAAU,oCAAmCkI,SAAE5I,EAAKm6D,YAAYC,EAAEI,mBAGzC,IAAzBJ,EAAEK,mBACFx6D,eAAA,OAAKS,UAAU,WAAUkI,SAAC3I,eAAA,UAAQS,UAAU,qBAAqBwI,MAAM,UAAU4H,MAAO,CAAC49B,MAAM,SAAU5P,QAASA,KAAQz/B,KAAKy2D,cAAcsE,EAAEpE,aAAa,EAAEptD,SAAC,cACtI,IAAzBwxD,EAAEK,mBAA0Bx6D,eAAA,OAAKS,UAAU,WAAUkI,SACtD3I,eAAA,OAAKS,UAAU,mBAAmBoQ,MAAO,CAAC49B,MAAO,QAAShK,UAAU,UAAWhJ,KAAK,QAAO9yB,SAAC,aAClE,IAAzBwxD,EAAEK,mBAA0Bx6D,eAAA,OAAKS,UAAU,WAAUkI,SAClD3I,eAAA,OAAKS,UAAU,mBAAmBoQ,MAAO,CAAC49B,MAAO,QAAShK,UAAU,UAAWhJ,KAAK,QAAO9yB,SAAC,iBAE/F3I,eAAA,OAAKS,UAAU,WAAUkI,SAAC3I,eAAA,UAAQ6+B,QAASA,IAAM9+B,EAAK85D,UAAUM,GAAI15D,UAAU,4BAA4BoQ,MAAO,CAAC49B,MAAM,SAAS9lC,SAAC,mBAG3ID,gBAAA,OAAKjI,UAAU,6DAA6DoQ,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CAC9GD,gBAAA,OAAKjI,UAAU,WAAUkI,SAAA,CACrB3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC,UAGvB3I,eAAA,OAAKS,UAAU,QAAOkI,SAEbwxD,EAAEjhD,KAAK8P,UAAoF,GAAAloB,OAAMq5D,EAAEjhD,KAAK8P,UAAS,KAAAloB,OAAIq5D,EAAEjhD,KAAK+P,UAA5G,GAAAnoB,OAAMq5D,EAAEX,gBAAgBiB,gBAAe,KAAA35D,OAAIq5D,EAAEX,gBAAgBkB,qBAI1FhyD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAChB3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC,aAGvB3I,eAAA,OAAKS,UAAU,SAAQkI,SAClB5I,EAAKw5D,cAAcY,EAAEX,sBAG9B9wD,gBAAA,OAAKjI,UAAU,WAAUkI,SAAA,CACrB3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC,WAGvB3I,eAAA,OAAKS,UAAU,QAAOkI,SACjBwxD,EAAEjhD,KAAK4P,eAEZ9oB,eAAA,OAAKS,UAAU,QAAOkI,SAAC,WAGvB3I,eAAA,OAAKS,UAAU,QAAOkI,SACjBwxD,EAAEjhD,KAAKoqB,oBAIpB56B,gBAAA,OAAKjI,UAAU,wEAAwEoQ,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACzHD,gBAAA,OAAKjI,UAAU,qBAAqBoQ,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACtE3I,eAAA,OAAKS,UAAU,MAAKkI,SAAC,SACrB3I,eAAA,OAAKS,UAAU,MAAKkI,SAAC,aACrB3I,eAAA,OAAKS,UAAU,WAElB05D,EAAE9E,oBAAoBzsD,KAAI,CAAC+xD,EAAIpyD,IAAmBxI,EAAKi6D,qBAAqBW,EAAIpyD,UA5D/EqW,KAiElBlW,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAMizD,WAAW3pD,SAAA,CAChD3I,eAACsnC,KAAW,CAAA3+B,SACRvJ,KAAKC,MAAMg6D,YAEfr5D,eAACunC,KAAS,CAAA5+B,SACR3I,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SAC3B3I,eAACgQ,KAAS,CAACvP,UAAU,wBAAuBkI,SAEtC3I,eAAA,OAAKS,UAAU,MAAKkI,SAAC3I,eAACg5D,GAAU,CAAC9hC,IAA8B,KAAxB93B,KAAKC,MAAMmzD,WAAmBpzD,KAAKC,MAAMmzD,WAAc,GAAI/xD,UAAU,qBAAqBoQ,MAAO,CAAC8vB,OAAO,KAAMjD,IAAI,gBAKpK19B,eAACgoC,KAAW,CAAAr/B,SACV3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASA,KAAQ9+B,EAAK+yD,iBAAiB,EAAGnqD,SAAC,iBAnF5D,WAwFjB,EAEWwwD,U,OC1LUn6D,YCJzB,MAAM47D,WAAgB57D,YAClBC,YAAYC,GACRC,MAAMD,GAENE,KAAKimB,OAASnc,GAAG8M,QACjB5W,KAAKC,MAAQ,CACT2W,QAAS,GACT6kD,eAAe,EACfC,cAAe,GACfC,eAAgB,CAAC,EACjBC,kBAAkB,EAClBC,WAAY,GACZC,iBAAiB,EACjBjlB,KAAM,KACNqZ,WAAU,GAEdlwD,KAAKimB,OAAO8G,OACZ/sB,KAAK+7D,mBAAqB/7D,KAAK+7D,mBAAmBjsD,KAAK9P,MACvDA,KAAKg8D,kBAAoBh8D,KAAKg8D,kBAAkBlsD,KAAK9P,MACrDA,KAAKi8D,iBAAmBj8D,KAAKi8D,iBAAiBnsD,KAAK9P,MACnDA,KAAKk8D,WAAal8D,KAAKk8D,WAAWpsD,KAAK9P,MACvCA,KAAKwtB,OAASxtB,KAAKwtB,OAAO1d,KAAK9P,MAC/BA,KAAKoxC,OAASpxC,KAAKoxC,OAAOthC,KAAK9P,KACnC,CAEAoN,oBACI,IAAIzM,EAAOX,KACXW,EAAKslB,OAAO8G,OAAOxf,MAAK,KACpB5M,EAAKQ,SAAS,CAAEyV,QAASjW,EAAKslB,OAAOmF,OAAQ,GAErD,CAEA+wC,eAAeC,GACX,MAAO,CAAE/9B,gBAAiB+9B,EAAS,IAAM,EAAI,UAAY,UAC7D,CAEAC,gBAAgBC,EAAQnzD,GACpB,MAAM0tC,EAAOylB,EAAOxuD,KAAKtH,MAAM,KACzB+1D,EAAgB1lB,EAAKA,EAAK73C,OAAS,GAAGH,cAC5C,OACIyK,gBAAA,OAAKjI,UAAU,cAAcoQ,MAAOzR,KAAKm8D,eAAehzD,GAAOI,SAAA,CAC3D3I,eAAA,OAAKS,UAAU,WAAUkI,SAAE+yD,EAAOxuD,OAClCxE,gBAAA,OAAKjI,UAAU,WAAUkI,SAAA,CAEL,UAAfgzD,EACD37D,eAAA,UACI6+B,QAASA,KAAQz/B,KAAKg8D,kBAAkBM,EAAOxuD,KAAM,SAAS,EAC9DjE,MAAM,0BACNxI,UAAU,iCAAgCkI,SAC1C3I,eAAC47D,KAAQ,MAEX,KACa,uBAAdF,EAAOxuD,MAA6C,qBAAbwuD,EAAOxuD,KAC3ClN,eAAA,OAAKk3B,IAAG,GAAAp2B,OAAK46D,EAAOG,KAAI,KAAA/6D,OAAIK,KAAKoC,OAASm6B,IAAKg+B,EAAOxuD,KAAM2D,MAAO,CAAC8vB,OAAO,OAAQ8N,MAAM,OAAQ39B,WAAW,SAC9G,QAENpI,gBAAA,OAAKjI,UAAU,MAAMoQ,MAAO,CAACC,WAAW,SAASnI,SAAA,CAC7B,UAAfgzD,EACD37D,eAAA,UACI6+B,QAASA,KAAQz/B,KAAKg8D,kBAAkBM,EAAOxuD,KAAM,WAAW,EAChEjE,MAAM,4BACNxI,UAAU,iCAAgCkI,SAC1C3I,eAAC47D,KAAQ,MAEb,KACgB,0BAAfF,EAAOxuD,MAAiD,wBAAdwuD,EAAOxuD,KAC9ClN,eAAA,OAAKk3B,IAAG,GAAAp2B,OAAK46D,EAAOG,KAAI,KAAA/6D,OAAIK,KAAKoC,OAASm6B,IAAKg+B,EAAOxuD,KAAM2D,MAAO,CAAC8vB,OAAO,OAAQ8N,MAAM,OAAQ39B,WAAW,SAC/G,QAELpI,gBAAA,OAAKjI,UAAU,WAAUkI,SAAA,CACrB3I,eAAA,KAAGqpB,KAAMqyC,EAAOG,KAAM5yD,MAAM,WAAWxI,UAAU,kBAAiBkI,SAAE3I,eAAC87D,KAAc,MACnF97D,eAAA,UAAQ6+B,QAASA,KAAQz/B,KAAK28D,gBAAgBL,EAAO,EAAKj7D,UAAU,sBAAqBkI,SAAC3I,eAACk1D,KAAU,WAIrH,CACA6G,gBAAgBL,GACZ,IAAIM,EAAiB,oCAAsCN,EAAOxuD,KAAO,IACzE9N,KAAKmB,SAAS,CAAEu6D,cAAekB,EAAgBjB,eAAgBW,EAAQb,eAAe,GAC1F,CACAM,qBACI/7D,KAAKmB,SAAS,CAAEy6D,kBAAmB57D,KAAKC,MAAM27D,kBAClD,CACAI,kBAAkBH,EAAYgB,GAC1B,MAAMC,EAAUjB,EAAWr1D,MAAM,KAC3Bu2D,EAAU,GAAAr7D,OAAMm7D,GAAOn7D,OAAGo7D,EAAQ,GAAE,QAC1C98D,KAAKmB,SAAS,CAAE26D,iBAAkB97D,KAAKC,MAAM67D,gBAAiBD,WAAWkB,GAC7E,CACAvvC,SACI,IAAI7sB,EAAOX,KACXA,KAAKimB,OAAOuH,OAAOxtB,KAAKC,MAAM07D,eAAe7tD,MACxCP,MAAK,KACF,IAAIqJ,EAAUpa,IAAEiU,OAAO,IAAIzQ,KAAKC,MAAM2W,UAAWomD,GACtCA,EAAGlvD,OAASnN,EAAKV,MAAM07D,eAAe7tD,OAEjD9N,KAAKmB,SAAS,CAAEyV,QAASA,EAAS6kD,eAAe,GAAQ,GAErE,CACArqB,SACIpxC,KAAKmB,SAAS,CAAEs6D,eAAe,GACnC,CACAQ,iBAAiBrxD,GACb5K,KAAKmB,SAAS,CAAE01C,KAAMjsC,EAAMkC,OAAO3B,MAAM,IAC7C,CACA8xD,qBAAqB74D,GAEjB,MADqB,0CACD3G,KAAK2G,EAAI3D,QAAQ,UAAW,IACpD,CACAy7D,aACI,IAAIv7D,EAAOX,KACX,GAAIW,EAAKV,MAAM42C,KAAKzrC,KAAO,EAAG,CAC1B,IAAI1C,EAAO,IAAIw0D,SACf,MAAMC,EAAmC,eAAzBx8D,EAAKV,MAAM42C,KAAKjrC,MAAkD,cAAzBjL,EAAKV,MAAM42C,KAAKjrC,KACzE,GAAIuxD,EAeAz0D,EAAK00D,OAAO,OAAQz8D,EAAKV,MAAM42C,KAAMl2C,EAAKV,MAAM47D,gBAfvC,CACT,GAAIl7D,EAAKs8D,qBAAqBt8D,EAAKV,MAAM42C,KAAK/oC,MAE1C,YADAwjC,MAAM,qCAMV,GAHmB90C,IAAEiU,OAAO,IAAI9P,EAAKV,MAAM2W,UAAW0lD,GAC3CA,EAAOxuD,OAASnN,EAAKV,MAAM42C,KAAK/oC,OAE1B9O,OAAS,EAEtB,YADAsyC,MAAM,sBAGV5oC,EAAK00D,OAAO,OAAQz8D,EAAKV,MAAM42C,KACnC,CAIA72C,KAAKmB,SAAS,CAAC+uD,WAAU,IACzBvvD,EAAKslB,OAAOqI,OAAO5lB,GAClB6E,MAAMyrC,IACH,GAAuB,KAAnBA,EAAItwC,KAAKkf,OAAe,CACxB,IAAIy1C,EAAiB,IAAI18D,EAAKV,MAAM2W,SACpC,GAAGumD,EAAS,CACR,MAAMG,EAAa38D,EAAKV,MAAM2W,QAAQ/I,MAAKmzB,GAAOA,EAAIlzB,OAASkrC,EAAItwC,KAAKA,KAAKoF,OACvEyvD,EAAc58D,EAAKV,MAAM2W,QAAQnG,QAAOuwB,GAAOA,EAAIlzB,OAASkrC,EAAItwC,KAAKA,KAAKoF,OAE5EuvD,EADDC,EACkB,IAAIC,EAAaD,GAEjB,IAAID,EAAgBrkB,EAAItwC,KAAKA,KAEtD,MACI20D,EAAiB,IAAIA,EAAgBrkB,EAAItwC,KAAKA,MAEhD1I,KAAKmB,SAAS,CACZyV,QAASymD,EACTzB,kBAAkB,EAClBE,iBAAgB,EAChBjlB,KAAM,KACNqZ,WAAU,GAEhB,IAEV,MAEIvvD,EAAKQ,SAAS,CACVyV,QAAS5W,KAAKC,MAAM2W,QACpBglD,kBAAkB,EAAM/kB,KAAM,KAC9BilB,iBAAiB,EACjB5L,WAAU,GAItB,CACAxvD,SACI,IAAIC,EAAOX,KACX,OACIsJ,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CACnDvJ,KAAKC,MAAMiwD,UAAUtvD,eAACw3D,GAAc,CAAC3uD,MAAOzJ,KAAKC,MAAMiwD,UAAU,CAAC,aAAa,KAAM,KAClFtvD,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,MAAA2I,SAAI3I,eAAA,KAAA2I,SAAG,kBAGf3I,eAAA,OAAKS,UAAU,MAAKkI,SAChB3I,eAAA,OAAKS,UAAU,yBAAwBkI,SACnC3I,eAAA,UAAQ6+B,QAAS9+B,EAAKo7D,mBAClBlyD,MAAM,iBACNxI,UAAU,iCAAgCkI,SAC1C3I,eAAC47D,KAAQ,UAIrB57D,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,SAAQkI,SAAA,CACnBD,gBAAA,OAAKjI,UAAU,+BAA8BkI,SAAA,CACzC3I,eAAA,OAAKS,UAAU,4BAA2BkI,SAAC,SAC3C3I,eAAA,OAAKS,UAAU,4BAA2BkI,SAAC,iBAC3C3I,eAAA,OAAKS,UAAU,gCAA+BkI,SAAC,sBAElD/M,IAAEgN,IAAI7I,EAAKV,MAAM2W,SAAS,CAAC0lD,EAAQnzD,IACzBxI,EAAK07D,gBAAgBC,EAAQnzD,UAsBhDG,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAMw7D,cAAclyD,SAAA,CACzC3I,eAACsnC,KAAW,CAAA3+B,SAAC,WACb3I,eAACunC,KAAS,CAAA5+B,SACN3I,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SACzB3I,eAACgQ,KAAS,CAACvP,UAAU,aAAYkI,SAC7B3I,eAACiQ,KAAK,CAAAtH,SAAE5I,EAAKV,MAAMy7D,sBAI/BpyD,gBAACs/B,KAAW,CAAAr/B,SAAA,CACR3I,eAACioC,KAAM,CAACzV,MAAM,UAAUqM,QAASA,KAAQ9+B,EAAK6sB,QAAQ,EAAGjkB,SAAC,QAC1D3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASA,KAAQ9+B,EAAKywC,QAAQ,EAAG7nC,SAAC,aAGpED,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAM27D,iBAAiBryD,SAAA,CAC5C3I,eAACsnC,KAAW,CAAA3+B,SAAC,WACb3I,eAACunC,KAAS,CAAA5+B,SACN3I,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SACzB3I,eAACgQ,KAAS,CAACvP,UAAU,aAAYkI,SAC7B3I,eAACkQ,KAAK,CACFw3B,OAAO,UACPrnC,SAAUN,EAAKs7D,iBACfrwD,KAAK,eAMrBtC,gBAACs/B,KAAW,CAAAr/B,SAAA,CACR3I,eAACioC,KAAM,CAACzV,MAAM,UAAUqM,QAASA,KAAQ9+B,EAAKu7D,YAAY,EAAG3yD,SAAC,kBAC9D3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASA,KAAQ9+B,EAAKo7D,oBAAoB,EAAGxyD,SAAC,iBAGhFD,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAM67D,gBAAgBvyD,SAAA,CAC3C3I,eAACsnC,KAAW,CAAA3+B,SAAC,WACb3I,eAACunC,KAAS,CAAA5+B,SACN3I,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SACzB3I,eAACgQ,KAAS,CAACvP,UAAU,aAAYkI,SAC7B3I,eAACkQ,KAAK,CACFw3B,OAAO,cACPrnC,SAAUN,EAAKs7D,iBACfrwD,KAAK,eAMrBtC,gBAACs/B,KAAW,CAAAr/B,SAAA,CACR3I,eAACioC,KAAM,CAACzV,MAAM,UAAUqM,QAASA,KAAQ9+B,EAAKu7D,YAAY,EAAG3yD,SAAC,iBAC9D3I,eAACioC,KAAM,CAACzV,MAAM,YAAYqM,QAASA,KAAQ9+B,EAAKq7D,kBAAkB,GAAG,EAAGzyD,SAAC,mBA/F5E,WAqGjB,EAEWiyD,U,+CCtRf,MAAMgC,WAAiB59D,YACnBC,YAAYC,GACRC,MAAMD,EACV,CAEAY,SACI,IAAIC,EAAOX,KACX,OAAI8J,GAAG2pB,UAAU3pB,GAAG8L,SAAU9L,GAAG+L,eAEzBjV,eAAA,OAAA2I,SAE6C,IAApC5I,EAAKb,MAAM29D,cAAcz+D,OAAiB4B,eAAA,OAAA2I,SAAK,qBAC5C5I,EAAKb,MAAM29D,cAAcj0D,KAAK25B,GAEtBviC,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAClB3I,eAAA,OAAK6Q,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAACD,gBAAA,MAAAC,SAAA,CAAI,kBAAgB45B,EAAMwzB,kBACtErtD,gBAAA,SAAOjI,UAAU,uBAAsBkI,SAAA,CACnC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACtC3I,eAAA,MAAA2I,SAAI,OACJ3I,eAAA,MAAA2I,SAAI,gBACJ3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAA2I,SAAI,gBACJ3I,eAAA,MAAA2I,SAAI,gBACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAA2I,SAAI,eAGZ3I,eAAA,SAAA2I,SACID,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAK45B,EAAMyyB,YACXh1D,eAAA,MAAA2I,SAAyB,GAApB45B,EAAMu0B,WAAmB,MAAM,OACpC92D,eAAA,MAAA2I,SAAuB,GAAlB45B,EAAM0yB,SAAiB,MAAM,OAClCj1D,eAAA,MAAA2I,SAAK45B,EAAMwwB,aACX/yD,eAAA,MAAA2I,SAAK45B,EAAM8zB,aACXr2D,eAAA,MAAA2I,SAAK45B,EAAMy0B,iBACXh3D,eAAA,MAAA2I,SAAK45B,EAAMw0B,iBACX/2D,eAAA,MAAA2I,SAAK45B,EAAMgwB,yBAYnDvyD,eAAA,OAAA2I,SAAK,cACjB,EAEWi0D,UCxDf,MAAME,WAAgB99D,YAClBC,YAAYC,GACRC,MAAMD,GACNyM,QAAQC,IAAI,gDAAuC1M,EACvD,CAEAY,SAEI,OAAIoJ,GAAG2pB,UAAU3pB,GAAG8L,SAAU9L,GAAG+L,eAEzBvM,gBAAA,OAAAC,SAAA,CACK3I,eAAA,OAAKS,UAAU,MAAKkI,SACjBD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAClB3I,eAAA,OAAK6Q,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAC3I,eAAA,MAAA2I,SAAI,cAChDD,gBAAA,SAAOjI,UAAU,uBAAsBkI,SAAA,CACnC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACtC3I,eAAA,MAAI6Q,MAAO,CAAC49B,MAAM,SAAS9lC,SAAC,uBAC5B3I,eAAA,MAAA2I,SAAI,gBACJ3I,eAAA,MAAA2I,SAAI,mBACJ3I,eAAA,MAAA2I,SAAI,eACJ3I,eAAA,MAAA2I,SAAI,kBAGZ3I,eAAA,SAAA2I,SACID,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAM69D,QAAQr7B,cACxBh5B,gBAAA,MAAAC,SAAA,CAAI,IAAEvJ,KAAKF,MAAM69D,QAAQC,WAAW1yD,QAAQ,MAC5C5B,gBAAA,MAAAC,SAAA,CAAI,IAAEvJ,KAAKF,MAAM69D,QAAQE,aAAa3yD,QAAQ,MAC9CtK,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAM69D,QAAQxgB,YACxBv8C,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAM69D,QAAQjgB,uBAO3C98C,eAAA,OAAKS,UAAU,MAAKkI,SACjB3I,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAAA,SAAOjI,UAAU,uBAAsBkI,SAAA,CACnC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACtC3I,eAAA,MAAI6Q,MAAO,CAAC49B,MAAM,SAAS9lC,SAAC,yBAC5B3I,eAAA,MAAA2I,SAAI,wBACJ3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAA2I,SAAI,mBACJ3I,eAAA,MAAA2I,SAAI,uBACJ3I,eAAA,MAAA2I,SAAI,eACJ3I,eAAA,MAAA2I,SAAI,kBAGZ3I,eAAA,SAAA2I,SACID,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAMg+D,qBAAqBx7B,cACrCh5B,gBAAA,MAAAC,SAAA,CAAI,IAAEvJ,KAAKF,MAAMg+D,qBAAqBF,WAAW1yD,QAAQ,MACzDtK,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAMg+D,qBAAqBjI,WACrCvsD,gBAAA,MAAAC,SAAA,CAAI,IAAEvJ,KAAKF,MAAMg+D,qBAAqBC,cAAc7yD,QAAQ,MAC5D5B,gBAAA,MAAAC,SAAA,CAAI,IAAEvJ,KAAKF,MAAMg+D,qBAAqBE,iBAAiB9yD,QAAQ,MAC/DtK,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAM69D,QAAQxgB,YACxBv8C,eAAA,MAAA2I,SAAKvJ,KAAKF,MAAM69D,QAAQjgB,yBAmChD98C,eAAA,OAAA2I,SAAK,cACjB,EAEWm0D,UCxFf,MAAMO,GAAUp8D,EAAQ,KAExB,MAAMq8D,WAAmBt+D,YACrBC,YAAYC,GACRC,MAAMD,GAAO,KAqWjBmvD,eAAkBrkD,IACH5K,KACNmB,SAAS,CAAEuiC,WAAY94B,EAAMkC,OAAOpQ,OAAQ,EACpD,KAEDo9C,aAAgBC,IACZ/5C,KAAKmB,SAAS,CAAE44C,UAAS,EA1WzB/5C,KAAKC,MAAQ,CACTykB,mBAAoB,CAAEma,UAAW7+B,KAAKF,MAAM2Z,QAAQolB,WACpD6e,QAAS,IAAI37C,KACbo7C,UAAW,IAAIp7C,KACf0X,QAASzZ,KAAKF,MAAMq+D,SACpBjE,OAAQ,GACRuD,cAAe,GACf7nD,SAAU,GACV+nD,QAAS,CACLr7B,YAAY,EACZs7B,WAAY,EACZC,aAAc,EACd1gB,UAAW,GACXO,QAAS,IAEbogB,qBAAsB,CAClBC,cAAe,EACfC,iBAAkB,EAClB17B,YAAY,EACZs7B,WAAY,EACZ/H,SAAS,GAEbhgD,cAAe,KACfuoD,gBAAiB,GACjBC,kBAAmB,KACnBC,yBAA0B,KAC1B56B,WAAY,EACZqW,OAAQ,UAEZ/5C,KAAKu+D,gBAAkBv+D,KAAKu+D,gBAAgBzuD,KAAK9P,MACjDA,KAAKw+D,cAAgBx+D,KAAKw+D,cAAc1uD,KAAK9P,MAC7CA,KAAKy+D,SAAWz+D,KAAKy+D,SAAS3uD,KAAK9P,MACnCA,KAAK0+D,iBAAmB1+D,KAAK0+D,iBAAiB5uD,KAAK9P,MACnDA,KAAK2+D,gBAAkB3+D,KAAK2+D,gBAAgB7uD,KAAK9P,MACjDA,KAAK4+D,iBACT,CAEAxxD,oBACIpN,KAAK6+D,cACL7+D,KAAK8+D,kBACT,CAEAF,kBACI5+D,KAAK29D,QAAU,CACXr7B,YAAatiC,KAAKC,MAAMi6D,OAASl6D,KAAKC,MAAMi6D,OAAOl7D,OAAS,EAC5D+/D,aAAa,EACbnB,WAAY,EACZC,aAAc,EACd1gB,UAAWn9C,KAAKC,MAAMk9C,UAAYn9C,KAAKC,MAAMk9C,UAAUgR,qBAAuB,GAC9EzQ,QAAS19C,KAAKC,MAAMy9C,QAAU19C,KAAKC,MAAMy9C,QAAQyQ,qBAAuB,GAEhF,CAEA6Q,iBACI,MAAO,CACHC,KAAM,CAAEnxD,KAAM,QAAS1C,KAAM,IAC7B8zD,UAAW,CAAEC,SAAU,SAAUC,WAAY,QAC7Cp6B,OAAQ,CACJgoB,IAAK,CAAEv7C,MAAO,QACd4tD,KAAM,CAAE5tD,MAAO,QACf6tD,OAAQ,CAAE7tD,MAAO,QACjBivB,MAAO,CAAEjvB,MAAO,SAG5B,CAEA8tD,mBACI,MAAO,CACHN,KAAM,CAAEO,MAAM,EAAMpsC,MAAO,CAAEqsC,KAAM,aACnCC,KAAM,CACF9zD,KAAM,UACN+zD,QAAS,QACTC,QAAS,CAAEH,KAAM,YACjBI,QAAS,CAAEJ,KAAM,aAErBP,UAAW,CAAEC,SAAU,SAAUC,WAAY,UAC7Cp6B,OAAQ,CACJgoB,IAAK,CAAEv7C,MAAO,QACd4tD,KAAM,CAAE5tD,MAAO,QACf6tD,OAAQ,CAAE7tD,MAAO,QACjBivB,MAAO,CAAEjvB,MAAO,SAG5B,CAEAqtD,mBACI,IAAIn+D,EAAOX,KACX8J,GAAG+L,cAAckO,iBAAiB,CAAEjS,GAAI9R,KAAKF,MAAM2Z,QAAQolB,YAAatxB,MAAK,KACzE5M,EAAKQ,SAAS,CAAE0U,cAAe/L,GAAG+L,cAAcuV,OAAS,CAAC,GAAI,GAEtE,CAEAyzC,cACI,IAAIl+D,EAAOX,KACX8J,GAAG8L,SAAS6a,WAAW,KAAM,KAAMxO,EAAO3I,UAAU1D,SAAU,CAAEipB,UAAW7+B,KAAKF,MAAM2Z,QAAQolB,YAAa,GAAMtxB,MAAK,KAClH,IAAIqI,EAAW9L,GAAG8L,SAASwV,MACvBizC,EAAoBzoD,EAAS/H,MAAMiyD,GAAsB,IAAhBA,EAAEC,YAC3CzB,EAA2B1oD,EAAS/H,MAAMiyD,GAAsB,IAAhBA,EAAEC,YACtDp/D,EAAKQ,SAAS,CAAEyU,WAAUyoD,oBAAmBC,4BAA2B,GAEhF,CAEAE,cAAcl+D,GACCN,KACNmB,SAAS,CAAEu8C,QAASp9C,EAAM0/D,QAAS1/D,GAC5C,CACAi+D,gBAAgBj+D,GACDN,KACNmB,SAAS,CAAEg8C,UAAW78C,EAAM2/D,QAAS3/D,GAC9C,CAEAm+D,WACI,IAAI99D,EAAOX,KACP23C,EAAU,CACVwF,UAAWx8C,EAAKV,MAAMk9C,UAAUrnB,cAActvB,MAAM,KAAK,GACzDk3C,QAAS/8C,EAAKV,MAAMy9C,QAAQ5nB,cAActvB,MAAM,KAAK,GACrDk9B,WAAY/iC,EAAKV,MAAMyjC,YAE3B55B,GAAGyT,gBAAgBkT,WAAW,KAAMknB,EAAS11B,EAAO3I,UAAUiE,gBAAiB,CAAEshB,UAAW7+B,KAAKF,MAAM2Z,QAAQolB,YAAa,GAAOtxB,MAAMyrC,IAAS,IAADknB,EAAAC,EAC7Ix/D,EAAKg9D,QAAU5+C,OAAOyI,OAAO,CAAC,EAAG7mB,EAAKg9D,QAAS,CAAEr7B,YAAqC,QAA1B49B,EAAK,OAAHlnB,QAAG,IAAHA,GAAgB,QAAbmnB,EAAHnnB,EAAKriC,mBAAW,IAAAwpD,OAAb,EAAHA,EAAkBnhE,cAAM,IAAAkhE,IAAI,EAAG/iB,UAAWxF,EAAQwF,UAAWO,QAAS/F,EAAQ+F,QAASmgB,aAAc,EAAGD,WAAY,IAClL59D,KAAKogE,gBAAgBpnB,EAAIriC,YAAaqiC,EAAIykB,eAC1C98D,EAAKQ,SAAS,CAAE+4D,OAAW,OAAHlhB,QAAG,IAAHA,OAAG,EAAHA,EAAKriC,YAAaynD,gBAAoB,OAAHplB,QAAG,IAAHA,KAAKriC,aAAeqiC,EAAIh6C,OAAS,EAAI,GAAK,sBACrG2B,EAAKQ,SAAS,CAAEs8D,cAAezkB,EAAIykB,eAAgB,GAE3D,CAEA2C,kBAAgD,IAAhClG,EAAM51D,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAAIm5D,EAAan5D,UAAAtF,OAAA,QAAAuF,IAAAD,UAAA,GAAAA,UAAA,GAAC,GACvC,IAAK41D,EAAOl7D,OAAQ,OAEpB,IAAIqhE,EAAK,CACLzC,WAAY,EACZC,aAAc,GAEdyC,EAAmB,EACnBvC,EAAgB,EAChBC,EAAmB,EACnBnI,EAAW,EACXl1D,EAAOX,KAEXy9D,EAAc7oD,SAAS2rD,IACnBD,GAAoBC,EAAapN,MACjC0C,GAAY0K,EAAa1K,SAAW,EAAI,EACxCkI,GAAiBwC,EAAa1K,SAAW0K,EAAapN,MAAQ,EAC9D6K,GAAoBuC,EAAa1K,SAAW,EAAI0K,EAAapN,KAAK,IAGtE+G,EAAOtlD,SAAQ,CAACuuB,EAAOh6B,KAAW,IAADq3D,EAC7B,IAAIC,EAAa,EACbC,EAAsB,IAAIv9B,EAAM8yB,qBAAqBxlD,QAAQqvD,GAA8B,IAAxBA,EAAEnjD,QAAQojD,YAC7EY,EAAuB,IAAIx9B,EAAM8yB,qBAAqBxlD,QAAQqvD,GAA8B,IAAxBA,EAAEnjD,QAAQojD,YAElF58B,EAAM8yB,oBAAoBrhD,SAASgsD,IAC/B,IAAIjkD,EAAUikD,EAASjkD,QACvB,GAAIA,GAAiC,IAAtBA,EAAQojD,WAAyC,IAAtBpjD,EAAQojD,UAAiB,CAC/D,IAAIp5D,GAAQgW,EAAQhW,KAAOgW,EAAQhW,KAAO,GAAKi6D,EAASzK,SACxDsK,GAAc95D,CAClB,KAGJ+5D,EAAoB9rD,SAAQ,CAACgsD,EAAUz3D,KACnC,IAAIwT,EAAUikD,EAASjkD,QACvB,GAAIA,EAAS,CACT,IAAIhW,EAAOgW,EAAQhW,KAAOgW,EAAQhW,KAAO,EACrCwC,EAAQ,EAAI,GAAKA,EAAQ,GAAK,KAAIxC,EAAO,KACzCwC,EAAQ,EAAI,KAAIxC,EAAO,KAC3B85D,GAAc95D,CAClB,KAEJg6D,EAAqB/rD,SAAQ,CAACgsD,EAAUz3D,KACpC,IAAIwT,EAAUikD,EAASjkD,QACvB,GAAIA,EACA,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQkkD,sBAAuBrhD,IAAK,CACpD,IAAI7Y,EAAQhG,EAAKV,MAAMo+D,kBAAkB13D,KAAOhG,EAAKV,MAAMo+D,kBAAkB13D,KAAO,EAChF6Y,EAAI,EAAI,GAAKA,EAAI,GAAK,KAAI7Y,EAAO,KACjC6Y,EAAI,EAAI,KAAI7Y,EAAO,KAEvB85D,GAAc95D,CAClB,CACJ,IAEJ,IAAIm6D,EAAWtkE,IAAEqR,KAAKs1B,EAAM8yB,qBAAsB8K,GACZ,IAA3BA,EAAUpkD,QAAQhW,OAI7B05D,EAAGzC,YAAcz6B,EAAMuyB,QAAUvyB,EAAMuyB,QAAQvC,MAAQhwB,EAAMyzB,MAAmB,QAAd4J,EAAGr9B,EAAMyzB,aAAK,IAAA4J,IAAI,EACpFH,EAAGxC,eAAkB4C,GAAcK,EAAW,EAAI,KAAOngE,EAAKV,MAAM4V,cAAcmjD,UAAYr4D,EAAKV,MAAM4V,cAAcmjD,UAAY,EAAG,IAG1Ih5D,KAAKmB,SAAS,CAAC28D,qBAAqB,CAACF,WAAW0C,EAAkBh+B,YAAYm7B,EAAcz+D,OAAQ62D,SAASA,EAAUkI,gBAAeC,sBACtIh+D,KAAKmB,SAAS,CAACw8D,QAAS,CAACE,aAAawC,EAAGxC,aAAcD,WAAWyC,EAAGzC,WAAYt7B,YAAY43B,EAAOl7D,OAAQm+C,UAAWn9C,KAAKC,MAAMk9C,UAAUgR,qBAAsBzQ,QAAS19C,KAAKC,MAAMy9C,QAAQyQ,uBAClM,CAEAt3C,SACI,IAAIlW,EAAOX,KACX,MAAMghE,EAAW,IAAI/C,GAAQgD,SACvBC,EAAQF,EAASG,aAAa,WACpC,IAAIC,EAAY,EAChBzgE,EAAKV,MAAMi6D,OAAO1wD,KAAI,CAAC25B,EAAOh6B,KAAW,IAADk4D,EAAAC,EAAAC,EACpC5gE,EAAK6gE,sBAAsBN,EAAO/9B,GAClC,IAAIiS,EAAO,GACPqrB,EAAa,EACb9M,EAAa,EACb8N,EAAY,EACZf,EAAsB,IAAIv9B,EAAM8yB,qBAAqBxlD,QAAQqvD,GAA8B,IAAxBA,EAAEnjD,QAAQojD,YAC7EY,EAAuB,IAAIx9B,EAAM8yB,qBAAqBxlD,QAAQqvD,GAA8B,IAAxBA,EAAEnjD,QAAQojD,YAC9Ee,EAAWtkE,IAAEqR,KAAKs1B,EAAM8yB,qBAAsB8K,GACZ,IAA3BA,EAAUpkD,QAAQhW,OAG7Bw8B,EAAM8yB,oBAAoBzsD,KAAKo3D,IAC3B,IAAIjkD,EAAUikD,EAASjkD,QACvB,GAAIA,GAAiC,IAAtBA,EAAQojD,WAAyC,IAAtBpjD,EAAQojD,UAAiB,CAC/D,IAAIp5D,GAAQgW,EAAQhW,KAAOgW,EAAQhW,KAAO,GAAKi6D,EAASzK,SACxDsK,GAAc95D,EACdyuC,EAAKpuC,KAAK,CACN2V,EAAQ7O,KACR8yD,EAASzK,SACTxvD,GAER,KAGJ+5D,EAAoBl3D,KAAI,CAACo3D,EAAUz3D,KAC/B,IAAIwT,EAAUikD,EAASjkD,QACvB,GAAIA,EAAS,CACT,IAAIhW,EAAOgW,EAAQhW,KAAOgW,EAAQhW,KAAO,EACrCwC,EAAQ,EAAI,GAAKA,EAAQ,GAAK,KAAIxC,EAAO,KACzCwC,EAAQ,EAAI,KAAIxC,EAAO,KAE3B85D,GAAc95D,EACd86D,GAAa96D,EACbgtD,GAAciN,EAASzK,QAC3B,KAGJwK,EAAqBn3D,KAAI,CAACo3D,EAAUz3D,KAChC,IAAIwT,EAAUikD,EAASjkD,QACvB,GAAIA,EAAS,CACT,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQkkD,sBAAuBrhD,IAAK,CACpD,IAAI7Y,EAAQhG,EAAKV,MAAMo+D,kBAAkB13D,KAAOhG,EAAKV,MAAMo+D,kBAAkB13D,KAAO,EAChF6Y,EAAI,EAAI,GAAKA,EAAI,GAAK,KAAI7Y,EAAO,KACjC6Y,EAAI,EAAI,KAAI7Y,EAAO,KAEvB85D,GAAc95D,EACd86D,GAAa96D,CACjB,CACAgtD,GAAch3C,EAAQkkD,qBAC1B,KAGJzrB,EAAKpuC,KAAK,CAAC,SAAU2sD,EAAY8N,EAAUv2D,QAAQ,KAE/C41D,IACA1rB,EAAKpuC,KAAK,CAAC,yBAA0B,GAAI,IACzCy5D,GAAc,GAGlBrrB,EAAKpuC,KAAK,CAAC,cAAe,gBAAiB,aAAc,cAAe,mBACxEouC,EAAKpuC,KAAK,CAAC,GAADtF,OAAI++D,EAAWv1D,QAAQ,IAAE,IAAAxJ,OAA4B,QAA5B2/D,EAAY,OAALl+B,QAAK,IAALA,GAAc,QAATm+B,EAALn+B,EAAOuyB,eAAO,IAAA4L,OAAT,EAALA,EAAgBnO,aAAK,IAAAkO,IAAI,GAAC,IAAA3/D,OAAmB,QAAnB6/D,EAAY,OAALp+B,QAAK,IAALA,OAAK,EAALA,EAAOyzB,aAAK,IAAA2K,IAAI,GAAC,IAAA7/D,OAAQyhC,EAAMuyB,SAA2C,MAAhCvyB,EAAMuyB,QAAQuF,gBAA0B93B,EAAMuyB,QAAQvC,MAAQhwB,EAAMyzB,OAAO1rD,QAAQ,GAAKi4B,EAAMyzB,MAAM1rD,QAAQ,IAAE,IAAAxJ,QAAS++D,GAAc9/D,EAAKV,MAAM4V,cAAcmjD,UAAYr4D,EAAKV,MAAM4V,cAAcmjD,UAAY,IAAI9tD,QAAQ,MAEhVvK,EAAKg+D,gBAAgBuC,EAAOE,GAE5BhsB,EAAKxgC,SAAQ,CAACrV,EAAK4J,KACfxI,EAAK+gE,iBAAiBR,EAAOE,EAAYj4D,EAAQ,EAAG5J,EAAI,IAG5D6hE,GAAahsB,EAAKp2C,OAAS,EAC3BkiE,EAAMS,OAAO,CAAC,GAAI,GAAI,GAAG,GAAG,GAAG,IAAI,IAGvC,IAAIhE,EAAUuD,EAAMS,OAAO,CAAC,YACxBC,EAAgBV,EAAMS,OAAO,CAAC,eAAe,gBAAiB,iBAAkB,cAAe,aAAc,YAAahhE,EAAK4+D,oBAC/HsC,EAAiBX,EAAMS,OAAO,CAAC,GAADjgE,OAAI1B,KAAKC,MAAM09D,QAAQr7B,aAAW,IAAA5gC,OAAQf,EAAKg9D,QAAQoB,cAAY,IAAAr9D,OAAO1B,KAAKC,MAAM09D,QAAQE,aAAa3yD,QAAQ,IAAE,IAAAxJ,OAAQ1B,KAAKC,MAAM09D,QAAQC,YAAU,GAAAl8D,OAAOf,EAAKg9D,QAAQxgB,WAAS,GAAAz7C,OAAOf,EAAKg9D,QAAQjgB,WAG5O/8C,EAAKmhE,kBAAkBF,EAAeC,EAAgBlhE,GACtDg9D,EAAQoE,QAAQ,GAAGtwD,MAAQ,CAAEwtD,KAAM,CAAEO,MAAM,IAC3C0B,EAAMc,UAAU,GAAG3yB,MAAQ,GAC3B6xB,EAAMc,UAAU,GAAG3yB,MAAQ,GAC3B6xB,EAAMc,UAAU,GAAG3yB,MAAQ,GAC3B6xB,EAAMc,UAAU,GAAG3yB,MAAQ,GAC3B6xB,EAAMc,UAAU,GAAG3yB,MAAQ,GAC3B6xB,EAAMc,UAAU,GAAG3yB,MAAQ,GAE3B2xB,EAASiB,KAAKC,cAAc30D,MAAK,SAAU7E,GACvC/H,EAAKwhE,gBAAgBz5D,EACzB,GACJ,CAEAo5D,kBAAkB/pB,EAAQqqB,EAASzhE,GAC/Bo3C,EAAOgqB,QAAQ,GAAGtwD,MAAQ9Q,EAAK4+D,mBAC/BxnB,EAAOgqB,QAAQ,GAAGtwD,MAAQ9Q,EAAK4+D,mBAC/BxnB,EAAOgqB,QAAQ,GAAGtwD,MAAQ9Q,EAAK4+D,mBAC/BxnB,EAAOgqB,QAAQ,GAAGtwD,MAAQ9Q,EAAK4+D,mBAC/BxnB,EAAOgqB,QAAQ,GAAGtwD,MAAQ9Q,EAAK4+D,mBAC/BxnB,EAAOgqB,QAAQ,GAAGtwD,MAAQ9Q,EAAK4+D,mBAE/B6C,EAAQL,QAAQ,GAAGtwD,MAAQ9Q,EAAKq+D,iBAChCoD,EAAQL,QAAQ,GAAGtwD,MAAQ9Q,EAAKq+D,iBAChCoD,EAAQL,QAAQ,GAAGtwD,MAAQ9Q,EAAKq+D,iBAChCoD,EAAQL,QAAQ,GAAGtwD,MAAQ9Q,EAAKq+D,iBAChCoD,EAAQL,QAAQ,GAAGtwD,MAAQ9Q,EAAKq+D,iBAChCoD,EAAQL,QAAQ,GAAGtwD,MAAQ9Q,EAAKq+D,gBACpC,CAEAmD,gBAAgBz5D,GACZ,MAAM25D,EAAc,IAAIC,WAAW55D,GAC7B65D,EAAO,IAAI52D,KAAK,CAAC02D,GAAc,CACjCz2D,KAAM,sEAEJ+S,EAAMW,OAAOkjD,IAAIC,gBAAgBF,GACjCG,EAASzyD,SAAS4nB,cAAc,KACtC6qC,EAAOz4C,KAAOtL,EACd+jD,EAAOC,SAAW,cAClBD,EAAO/jC,QACPrf,OAAOkjD,IAAII,gBAAgBjkD,EAC/B,CAEA6iD,sBAAsBN,EAAO/9B,EAAOvxB,GACtBsvD,EAAMS,OAAO/vD,GAAc,CAAC,SAAWuxB,EAAMwzB,aAAc,eAAiBxzB,EAAMrc,SACzEi7C,QAAQ,GAClBtwD,MAAQ,CAAEwtD,KAAM,CAAEO,MAAM,GACrC,CAEAd,iBAAiBwC,EAAO2B,EAAanmE,GACjC,IAAI+vC,EAAOy0B,EAAMa,QAAQc,GACzBp2B,EAAK/vC,MAAQA,EACb+vC,EAAKh7B,MAAQzR,KAAKu/D,kBACtB,CAEAZ,gBAAgBuC,EAAOE,GACnBphE,KAAK0+D,iBAAiBwC,EAAM,IAADx/D,OAAM0/D,GAAa,YAC9CphE,KAAK0+D,iBAAiBwC,EAAM,IAADx/D,OAAM0/D,GAAa,YAC9CphE,KAAK0+D,iBAAiBwC,EAAM,IAADx/D,OAAM0/D,GAAa,SAC9CphE,KAAK0+D,iBAAiBwC,EAAM,IAADx/D,OAAM0/D,GAAa,IAC9CphE,KAAK0+D,iBAAiBwC,EAAM,IAADx/D,OAAM0/D,GAAa,GAClD,CAEA0B,kBAAkB5B,EAAO2B,EAAanmE,EAAO8iE,GACzC,IAAI/yB,EAAOy0B,EAAMa,QAAQc,GACzBp2B,EAAK/vC,MAAQA,EACb+vC,EAAKh7B,MAAQzR,KAAKg/D,kBACL,IAATQ,IACA/yB,EAAKh7B,MAAMwtD,KAAKO,MAAO,EAC/B,CAEAkC,iBAAiBR,EAAOE,EAAW7hE,GAC/B,IAAIigE,GAAmB,gBAAXjgE,EAAI,IAAmC,kBAAXA,EAAI,IAA0BA,EAAI,GAAiC,gBAAXA,EAAI,IAAmC,mBAAXA,EAAI,IAChIS,KAAK8iE,kBAAkB5B,EAAM,IAADx/D,OAAM0/D,GAAa7hE,EAAI,GAAIigE,GACvDx/D,KAAK8iE,kBAAkB5B,EAAM,IAADx/D,OAAM0/D,GAAa7hE,EAAI,GAAIigE,GACvDx/D,KAAK8iE,kBAAkB5B,EAAM,IAADx/D,OAAM0/D,GAAa7hE,EAAI,GAAIigE,GACvDx/D,KAAK8iE,kBAAkB5B,EAAM,IAADx/D,OAAM0/D,GAAa7hE,EAAI,GAAIigE,GACvDx/D,KAAK8iE,kBAAkB5B,EAAM,IAADx/D,OAAM0/D,GAAa7hE,EAAI,GAAIigE,EAC3D,CAWA9+D,SACI,IAAIC,EAAOX,KACX,OAAI8J,GAAG2pB,UAAU3pB,GAAG8L,SAAU9L,GAAG+L,gBAC7B7V,KAAK4+D,kBAEDt1D,gBAAA,OAAAC,SAAA,CACID,gBAACkxC,KAAI,CACDC,UAAWz6C,KAAKC,MAAM85C,OACtB9E,SAAUj1C,KAAK85C,aAAavwC,SAAA,CAE5B3I,eAAC85C,KAAG,CACAC,SAAS,SACT9wC,MAAM,YACVjJ,eAAC85C,KAAG,CAACC,SAAS,WAAW9wC,MAAM,aAC/BjJ,eAAC85C,KAAG,CAACC,SAAS,UAAU9wC,MAAM,eAElCP,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAChB3I,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACC,KAAU,CACPX,SAAUS,EAAKV,MAAMk9C,UACrBl8C,SAAUN,EAAK49D,gBACf98D,WAAW,aACXw+D,QAAS8C,mBAAQ,IAAIhhE,MAAS,KAC9Bi+D,QAASr/D,EAAKV,MAAM+/D,eAIhCp/D,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAAAtH,SAAC,aACP3I,eAACC,KAAU,CACPX,SAAUS,EAAKV,MAAMy9C,QACrBz8C,SAAUN,EAAK69D,cACf/8D,WAAW,aACXw+D,QAASt/D,EAAKV,MAAMggE,QACpBD,QAAS,IAAIj+D,YAIzBnB,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAAAtH,SAAC,UACPD,gBAAA,UAAQjI,UAAU,eAAeJ,SAAUN,EAAKsuD,eAAe1lD,SAAA,CAC3D3I,eAAA,UAAQlE,MAAM,GAAE6M,SAAC,kBAChB5I,EAAKb,MAAMgW,UAAUtM,KAAI8kD,GAAO1tD,eAAA,UAAQlE,MAAO4xD,EAAI5qB,WAAWn6B,SAAE+kD,EAAIxgD,iBAIjFlN,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAAAtH,SAAC,SACP3I,eAACioC,KAAM,CAACnsC,MAAM,SAAS+iC,QAASA,KAAQz/B,KAAKy+D,UAAU,EAAKp9D,UAAU,kBAAiBkI,SAAC,UACxF3I,eAACioC,KAAM,CAACp5B,OAAqC,IAA7BzP,KAAKC,MAAMi6D,OAAOl7D,OAActC,MAAM,SAAS+iC,QAASA,KAAQz/B,KAAK6W,QAAQ,EAAKxV,UAAU,uBAAsBkI,SAAC,mBAKrH,WAAtBvJ,KAAKC,MAAM85C,QACXn5C,eAAA0tC,YAAA,CAAA/kC,SACkC,IAA7B5I,EAAKV,MAAMi6D,OAAOl7D,OAAgB4B,eAAA,OAAA2I,SAAMvJ,KAAKC,MAAMm+D,kBAChDz9D,EAAKV,MAAMi6D,OAAO1wD,KAAK25B,IAAW,IAAD6/B,EAAAC,EAC7B,IAAIxC,EAAa,EACb9M,EAAa,EACb8N,EAAY,EACZf,EAAsB,IAAIv9B,EAAM8yB,qBAAqBxlD,QAAQqvD,GAA8B,IAAxBA,EAAEnjD,QAAQojD,YAC7EY,EAAuB,IAAIx9B,EAAM8yB,qBAAqBxlD,QAAQqvD,GAA8B,IAAxBA,EAAEnjD,QAAQojD,YAC9Ee,EAAWtkE,IAAEqR,KAAKs1B,EAAM8yB,qBAAsB8K,GACZ,IAA3BA,EAAUpkD,QAAQhW,OAE7B,OACI/F,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CAClB3I,eAAA,OAAK6Q,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAACD,gBAAA,MAAAC,SAAA,CAAI,UAAQ45B,EAAMwzB,aAAa,eAAaxzB,EAAMrc,YAC9Fxd,gBAAA,SAAOjI,UAAU,uBAAsBkI,SAAA,CACnC3I,eAAA,SAAA2I,SACID,gBAAA,MAAImI,MAAO,CAAE4sB,gBAAiB,WAAY90B,SAAA,CACtC3I,eAAA,MAAA2I,SAAI,aACJ3I,eAAA,MAAIijC,QAAS,EAAEt6B,SAAC,aAChB3I,eAAA,MAAIijC,QAAS,EAAEt6B,SAAC,eAGxBD,gBAAA,SAAAC,SAAA,CAEQ45B,EAAM8yB,oBAAoBzsD,KAAKo3D,IAC3B,IAAIjkD,EAAUikD,EAASjkD,QACvB,GAAIA,GAAiC,IAAtBA,EAAQojD,WAAyC,IAAtBpjD,EAAQojD,UAAiB,CAC/D,IAAIp5D,GAAQgW,EAAQhW,KAAOgW,EAAQhW,KAAO,GAAKi6D,EAASzK,SAExD,OADAsK,GAAc95D,EACN2C,gBAAA,MAAAC,SAAA,CACJ3I,eAAA,MAAA2I,SAAKoT,EAAQ7O,OACblN,eAAA,MAAIijC,QAAS,EAAEt6B,SAAEq3D,EAASzK,WAC1Bv1D,eAAA,MAAIijC,QAAS,EAAEt6B,SAAE5C,MAEzB,KAGR2C,gBAAA,MAAAC,SAAA,CAEQm3D,EAAoBl3D,KAAI,CAACo3D,EAAUz3D,KAC/B,IAAIwT,EAAUikD,EAASjkD,QACvB,GAAIA,EAAS,CACT,IAAIhW,EAAOgW,EAAQhW,KAAOgW,EAAQhW,KAAO,EACrCwC,EAAQ,EAAI,GAAKA,EAAQ,GAAK,KAAIxC,EAAO,KACzCwC,EAAQ,EAAI,KAAIxC,EAAO,KAC3B85D,GAAc95D,EACd86D,GAAa96D,EACbgtD,GAAciN,EAASzK,QAC3B,KAIJwK,EAAqBn3D,KAAI,CAACo3D,EAAUz3D,KAChC,IAAIwT,EAAUikD,EAASjkD,QACvB,GAAIA,EAAS,CACT,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQkkD,sBAAuBrhD,IAAK,CACpD,IAAI7Y,EAAQhG,EAAKV,MAAMo+D,kBAAkB13D,KAAOhG,EAAKV,MAAMo+D,kBAAkB13D,KAAO,EAChF6Y,EAAI,EAAI,GAAKA,EAAI,GAAK,KAAI7Y,EAAO,KACjC6Y,EAAI,EAAI,KAAI7Y,EAAO,KAEvB85D,GAAc95D,EACd86D,GAAa96D,CACjB,CACAgtD,GAAch3C,EAAQkkD,qBAC1B,KAGRjgE,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,MAAIijC,QAAS,EAAEt6B,SAAEoqD,IACjB/yD,eAAA,MAAIijC,QAAS,EAAEt6B,SAAEk4D,EAAUv2D,QAAQ,QAGlC41D,EACGx3D,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAI,2BACJ3I,eAAA,MAAIijC,QAAS,IACbjjC,eAAA,MAAIijC,QAAS,EAAEt6B,SAAC,SACZ,KAEhBD,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAI3I,eAAA,KAAA2I,SAAG,kBACP3I,eAAA,MAAA2I,SAAI3I,eAAA,KAAA2I,SAAG,gBACP3I,eAAA,MAAA2I,SAAI3I,eAAA,KAAA2I,SAAG,oBACP3I,eAAA,MAAA2I,SAAI3I,eAAA,KAAA2I,SAAG,kBACP3I,eAAA,MAAA2I,SAAI3I,eAAA,KAAA2I,SAAG,wBAEXD,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,UAAMk3D,GAAcK,EAAW,EAAI,IAAI51D,QAAQ,KAC/C5B,gBAAA,MAAAC,SAAA,CAAI,IAAE45B,EAAMyzB,SACZttD,gBAAA,MAAAC,SAAA,CAAI,IAAuB,QAAtBy5D,EAAM,OAAL7/B,QAAK,IAALA,GAAc,QAAT8/B,EAAL9/B,EAAOuyB,eAAO,IAAAuN,OAAT,EAALA,EAAgB9P,aAAK,IAAA6P,IAAI,KAC/B15D,gBAAA,MAAAC,SAAA,CAAI,IAAE45B,EAAMuyB,SAA2C,MAAhCvyB,EAAMuyB,QAAQuF,gBAA0B93B,EAAMuyB,QAAQvC,MAAQhwB,EAAMyzB,OAAO1rD,QAAQ,GAAKi4B,EAAMyzB,MAAM1rD,QAAQ,MACnI5B,gBAAA,MAAAC,SAAA,CAAI,MACIk3D,GAAcK,EAAW,EAAI,KAAOngE,EAAKV,MAAM4V,cAAcmjD,UAAYr4D,EAAKV,MAAM4V,cAAcmjD,UAAY,IAAI9tD,QAAQ,GAC9H5B,gBAAA,OAAKmG,QAAQ,EAAKlG,SAAA,CAEb5I,EAAKg9D,QAAQoB,cAAgB57B,EAAMuyB,QAAUvyB,EAAMuyB,QAAQvC,MAAQ,EACnExyD,EAAKg9D,QAAQC,YAAcz6B,EAAMuyB,SAA2C,MAAhCvyB,EAAMuyB,QAAQuF,eAAyB93B,EAAMuyB,QAAQvC,MAAQhwB,EAAMyzB,MAAQzzB,EAAMyzB,MAC7Hj2D,EAAKg9D,QAAQE,eAAkB4C,GAAcK,EAAW,EAAI,KAAOngE,EAAKV,MAAM4V,cAAcmjD,UAAYr4D,EAAKV,MAAM4V,cAAcmjD,UAAY,sBAtFhJ71B,EAAMrxB,GA6F1B,MAKH,YAAtB9R,KAAKC,MAAM85C,QACRn5C,eAAA0tC,YAAA,CAAA/kC,SACkC,IAA7B5I,EAAKV,MAAMi6D,OAAOl7D,OAAgB4B,eAAA,UAC9BA,eAAC88D,GAAO,CAACC,QAAS39D,KAAKC,MAAM09D,QAASG,qBAAsB99D,KAAKC,MAAM69D,yBAM1D,aAAtB99D,KAAKC,MAAM85C,QAAyBn5C,eAAC48D,GAAQ,CAACC,cAAez9D,KAAKC,MAAMw9D,oBAKhF78D,eAAA,OAAA2I,SAAK,cACjB,EAEW20D,UC1iBf,MAAMgF,WAAetjE,YACjBC,YAAYC,GACRC,MAAMD,GAAO,KA6DjBg6C,aAAgBC,IACZ/5C,KAAKmB,SAAS,CAAE44C,UAAS,EA7DzB/5C,KAAKimB,OAASnc,GAAG+M,OACjB,IAAIiD,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAEhEj8B,KAAKC,MAAQ,CACTykB,mBAAoB,CAAEma,UAAWplB,EAAQolB,WACzCplB,QAAQA,EACR0pD,WAAY,GACZC,aAAc,GACd1lB,QAAS,IAAI37C,KACbo7C,UAAW,IAAIp7C,KACf+T,UAAW,GACXkqD,QAAS,IAAIj+D,KACbk+D,QAAS8C,mBAAQ,IAAIhhE,MAAS,KAC9BshE,YAAY,GACZjnC,aAAatyB,GAAGsyB,eAChB2d,OAAO,sBAEX/5C,KAAKu+D,gBAAkBv+D,KAAKu+D,gBAAgBzuD,KAAK9P,MACjDA,KAAKw+D,cAAgBx+D,KAAKw+D,cAAc1uD,KAAK9P,MAC7CA,KAAK6W,OAAS7W,KAAK6W,OAAO/G,KAAK9P,MAC/BA,KAAKivD,eAAiBjvD,KAAKivD,eAAen/C,KAAK9P,KACnD,CACAoN,oBACIpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,cAClD,IAAIhgC,EAAOX,KACX8J,GAAGgM,UAAU4N,mBAAmB1jB,KAAKC,MAAMykB,oBAAoBnX,MAAK,KAChE5M,EAAKQ,SAAS,CAAE2U,UAAWhM,GAAGgM,UAAUsV,OAAQ,GAExD,CACAk4C,kBAAkBhjE,GAEd,OADiB,KAAOA,EAAKglD,WAAa,IAAI99C,OAAO,GAAK,KAAO,IAAMlH,EAAKmtD,WAAWjmD,OAAO,GAAK,IAAMlH,EAAKijE,aAElH,CACA/E,cAAcl+D,GACCN,KACNmB,SAAS,CAAEu8C,QAASp9C,EAAM0/D,QAAS1/D,GAC5C,CACAi+D,gBAAgBj+D,GACDN,KACNmB,SAAS,CAAEg8C,UAAW78C,EAAM2/D,QAAS3/D,GAC9C,CAMAuW,SACI,IAAIlW,EAAOX,KACP23C,EAAU,CACV0rB,YAAa1iE,EAAKV,MAAMojE,YACxBlmB,UAAWx8C,EAAKV,MAAMk9C,UAAUrnB,cAActvB,MAAM,KAAK,GACzDk3C,QAAS/8C,EAAKV,MAAMy9C,QAAQ5nB,cAActvB,MAAM,KAAK,IAEzDsD,GAAG+M,OAAO0Z,YAAYonB,EAAS,KAAM11B,EAAO3I,UAAUY,qBAAsB,CAAC,GAAG,GAAM3M,MAAMyrC,IAExF/sC,KAAIX,KAAK,aAAcW,KAAIC,WAAW8sC,GAAK,GAEnD,CAMAiW,eAAe3yD,GACX,IAAImN,EAAQnN,EAASA,EAAOkN,KAAIN,GAAiBA,EAAKxM,QAAW,GACjEsD,KAAKmB,SAAS,CAACkiE,YAAY55D,GAC/B,CAEA/I,SACI,IAAIC,EAAOX,KACX,OACIsJ,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAChD3I,eAACggC,GAAS,CAAC/2B,MAAK,UAAAnI,OAAa1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IAAMG,KAAK,IACzHx3B,gBAACkxC,KAAI,CACHC,UAAWz6C,KAAKC,MAAM85C,OACtB9E,SAAUj1C,KAAK85C,aAAavwC,SAAA,CAE1B3I,eAAC85C,KAAG,CACJC,SAAS,qBACT9wC,MAAM,wBACNjJ,eAAC85C,KAAG,CAACC,SAAS,qBAAqB9wC,MAAM,6BAGrB,uBAAtB7J,KAAKC,MAAM85C,QACTzwC,gBAAA,OAAAC,SAAA,CACID,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CACxB3I,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACC,KAAU,CACPX,SAAUS,EAAKV,MAAMk9C,UACrBl8C,SAAUN,EAAK49D,gBACf98D,WAAW,aACXw+D,QAAS8C,mBAAQ,IAAIhhE,MAAS,KAC9Bi+D,QAASr/D,EAAKV,MAAM+/D,eAIhCp/D,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAAAtH,SAAC,aACP3I,eAACC,KAAU,CACPX,SAAUS,EAAKV,MAAMy9C,QACrBz8C,SAAUN,EAAK69D,cACf/8D,WAAW,aACXw+D,QAASt/D,EAAKV,MAAMggE,QACpBD,QAAS,IAAIj+D,eAMrBnB,eAAA,OAAKS,UAAU,MAAKkI,SACxB3I,eAAA,OAAKS,UAAU,QAAOkI,SAClBD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACiQ,KAAK,CAAAtH,SAAC,UACP3I,eAACqgD,KAAM,CACH5/C,UAAU,eACViN,gBAAgB,eAChBC,cAAc,EACdE,SAAS,EACTC,QAAS5E,GAAGgM,UAAU6Y,aAAa,MAAM,GACzC1tB,SAAUjB,KAAKivD,wBASvBruD,eAAA,OAAKS,UAAU,MAAKkI,SACxB3I,eAAA,OAAKS,UAAU,QAAOkI,SAClB3I,eAACioC,KAAM,CAACnsC,MAAM,SAAS+iC,QAASA,KAAKz/B,KAAK6W,QAAQ,EAAIxV,UAAU,kBAAiBkI,SAAC,kBAKnE,uBAAtBvJ,KAAKC,MAAM85C,QACRn5C,eAAA,OAAA2I,SACI3I,eAACs9D,GAAU,CAACpoD,UAAWnV,EAAKV,MAAM6V,UAAW2D,QAASzZ,KAAKC,MAAMwZ,cArEpE,WA0EjB,EAEWypD,UC1Jf,MAAMM,WAAiB5jE,YACrBC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGgM,UACjB,IAAIgE,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAChEj8B,KAAKC,MAAQ,CACXq7C,SAAQ,EACR52B,mBAAoB,CAAEma,UAAWplB,EAAQolB,WACzCplB,QAAUA,EACV6lC,gBAAgB,GAChB52C,KAAK,GACLg7B,WAAW,KACXorB,cAAa,EACbC,aAAY,EACZC,WAAW,KACXnR,aAAa,KACbzhB,aAAatyB,GAAGsyB,gBAElBp8B,KAAKivD,eAAiBjvD,KAAKivD,eAAen/C,KAAK9P,MAC/CA,KAAKulD,iBAAmBvlD,KAAKulD,iBAAiBz1C,KAAK9P,MACnDA,KAAK2lD,WAAa3lD,KAAK2lD,WAAW71C,KAAK9P,KACzC,CAEAoN,oBACEpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,cAClD72B,GAAGgM,UAAU4N,mBAAmB1jB,KAAKC,MAAMykB,oBAAoB,GAAMnX,MAAK,KACxEvN,KAAKmB,SAAS,CAACm+C,gBAAgBx1C,GAAGgM,UAAU6Y,aAAa,MAAM,IAAO,GAG1E,CAEA80C,YAAY//B,GACV1jC,KAAKF,MAAMwxB,QAAQtqB,KAAKib,EAAOvD,QAAQuD,EAAOjN,OAAOiB,UAAW,CAAEytB,eACpE,CAEAurB,eAAevrB,EAAWpjC,GACxB,IAAIK,EAAMX,KACP0jC,GAAcA,EAAW,GAC5B55B,GAAGuM,SAASoa,WAAW,KAAK,CAACiT,WAAWA,EAAWpjC,MAAMA,GAAc,IAAIyB,MAAQ+zB,eAAe7T,EAAO3I,UAAUjD,SAAU,CAAC,GAC7H9I,MAAM7C,IACL/J,EAAKQ,SAAS,CAACuH,KAAKgC,EAAQg5B,aAAWorB,cAAa,EAAKC,aAAY,GAAO,GAEhF,CAEAxJ,iBAAiBjlD,GACZA,GAAMN,KAAKivD,eAAejvD,KAAKC,MAAMyjC,WAAWpjC,EACrD,CAEA,gBAAMqlD,CAAWrlD,GACf,GAAGA,EACH,CACE,IAAIK,EAAMX,KACPW,EAAKV,MAAMyjC,YAAc/iC,EAAKV,MAAMyjC,WAAW,IAEhD1jC,KAAKmB,SAAS,CAACm6C,SAAQ,UACjBxxC,GAAGuM,SAASoa,WAAW,KAAK,CAACiT,WAAW/iC,EAAKV,MAAMyjC,WAAWpjC,KAAMA,EAAOH,KAAMuF,WAAWvF,KAAMe,SAASZ,KAAS,IAAIyB,MAAO+zB,eAAgB7T,EAAO3I,UAAUmC,YAAa,CAAC,GACnLlO,MAAM7C,IACL/J,EAAKQ,SAAS,CAAC6tD,WAAWtkD,EAAOokD,cAAa,EAAMC,aAAY,EAAKlR,aAAav9C,GAAM,IAG1FN,KAAKmB,SAAS,CAACm6C,SAAQ,IAG3B,MAEAt7C,KAAKmB,SAAS,CAAC2tD,cAAa,EAAMC,aAAY,GAChD,CAGAruD,SACE,IAAIC,EAAOX,KACX,OAAI8J,GAAG2pB,UAAU3pB,GAAGgM,WAEhBxM,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAACggC,GAAS,CAAC/2B,MAAK,YAAAnI,OAAe1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IAAMG,KAAK,IAC3Hx3B,gBAAA,OAAKjI,UAAU,YAAWkI,SAAA,CACtBD,gBAACsH,KAAS,CAACvP,UAAU,6BAA4BkI,SAAA,CAC/C3I,eAACiQ,KAAK,CAAAtH,SAAC,aACP3I,eAACqgD,KAAM,CACL5/C,UAAU,gBACViN,gBAAgB,gBAChBC,cAAc,EACdE,SAAS,EACTD,aAAa,EACbE,QAAS1O,KAAKC,MAAMq/C,gBACpB3wC,YAAa,yBACb1N,SAAW2iD,IACTjjD,EAAKsuD,eAAerL,EAAUlnD,MAAM,OAKpCiE,EAAKV,MAAM6uD,aAAeluD,eAAC+jD,GAAY,CAACgB,WAAarlD,IAAQK,EAAKglD,WAAWrlD,EAAK,EAAIilD,iBAAmBjlD,IAAQK,EAAK4kD,iBAAiBjlD,EAAK,EAAGoI,KAAM1I,KAAKC,MAAMyI,OAAwB,GAGxL/H,EAAKV,MAAM8uD,YAAcnuD,eAAC8rD,GAAkB,CAACpR,QAASt7C,KAAKC,MAAMq7C,QAASlpC,QAASA,KAAKzR,EAAKsuD,eAAetuD,EAAKV,MAAMyjC,WAAW,EAAGiiB,WAAarlD,IAAQK,EAAKglD,WAAWrlD,EAAK,EAAIoI,KAAM1I,KAAKC,MAAM+uD,WAAYtrB,WAAY1jC,KAAKC,MAAMyjC,WAAYpjC,KAAMN,KAAKC,MAAM49C,eAAsC,QAtB7S,YA8BXj9C,eAAA,OAAKkR,GAAG,YAGZ,EAGa0xD,UCvHA,MAAME,WAAoB9jE,YACrCC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MACL,CACIgqD,MAAO,GAEf,CAEA0Z,eAAerf,GAEX,OAAQ1jD,eAAA,MAAA2I,SAAID,gBAAA,MAAAC,SAAA,CAAK+6C,EAAKA,KAAK,KAAGA,EAAK16B,UAAU,IAAE06B,EAAKz6B,SAAS,QACjE,CAEA,+BAAO42B,CAAyB3gD,EAAO4gD,GACnC,OAAIA,EAAcuJ,QAAUnqD,EAAMmqD,MAEzB,CACLA,MAAOnqD,EAAMmqD,OAGV,IACT,CAEFvpD,SACI,OACIE,eAAA,OAAA2I,SACAD,gBAAA,SAAOjI,UAAU,uBAAsBkI,SAAA,CACrC3I,eAAA,MAAA2I,SACI3I,eAAA,MAAA2I,SAAI,WAIPvJ,KAAKC,MAAMgqD,MAAMzgD,KAAI8kD,GAAOtuD,KAAK2jE,eAAerV,SAI3D,EChCJ,MAAMkV,WAAiB5jE,YACnBC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MAAQ,CACT49C,aAAc19C,KAAMgE,MACpBy/D,cAAe,EACfC,eAAgB,EAChBC,QAAS,GACTC,iBAAkB,IAAIhiE,KACtBgG,OAAQ/H,KAAKgkE,YACbtgC,WAAY1jC,KAAKF,MAAMmkE,YAAYvgC,WAE3C,CACAsgC,YACI,IAAI1hE,EAAQ,IAAI0Q,MAahB,OAZA1Q,EAAM,GAAK,UACXA,EAAM,GAAK,WACXA,EAAM,GAAK,QACXA,EAAM,GAAK,QACXA,EAAM,GAAK,MACXA,EAAM,GAAK,OACXA,EAAM,GAAK,OACXA,EAAM,GAAK,SACXA,EAAM,GAAK,YACXA,EAAM,GAAK,UACXA,EAAM,IAAM,WACZA,EAAM,IAAM,WACLA,CACX,CAEAw7C,qBACQ99C,KAAKC,MAAMyjC,YAAc1jC,KAAKF,MAAMmkE,YAAYvgC,aAChD1jC,KAAKkkE,iBACLlkE,KAAKmB,SAAS,CAAEuiC,WAAY1jC,KAAKF,MAAMmkE,YAAYvgC,aAE3D,CACAt2B,oBACepN,KACNkkE,gBACT,CAEAA,iBAEIp6D,GAAGwR,cAAcmV,WAAW,KAAM,CAAEiT,WAAY1jC,KAAKF,MAAMmkE,YAAYvgC,WAAYpjC,KADxEN,KACmFC,MAAM8jE,iBAAiB5V,sBAAwBlsC,EAAO3I,UAAUiC,cAAe,CAAC,GAAG,GAAMhO,MAAMyrC,IACzLh5C,KAAKmB,SAAS,CAAE2iE,QAAS9qB,GAAM,GAEvC,CAEAmrB,SAAS/e,EAASgf,EAAS7hE,EAAK8hE,GACvBjf,GAGDplD,KAAKmB,SAAS,CAAE08C,aAAcumB,EAASR,cAAerhE,EAAKshE,eAAgBQ,IAC3ErkE,KAAKF,MAAMwkE,eAAeF,IAH1B9yB,MAAM,gBAKd,CAEAizB,QAAQF,GACJ,OAAO/6D,gBAAA,MAAAC,SAAA,CACH3I,eAAA,MAAI6+B,QAASA,IAAMz/B,KAAKmkE,SAASnkE,KAAKwkE,OAAO,EAAGH,GAAMjf,QAASplD,KAAKwkE,OAAO,EAAGH,GAAM7e,MAAO,EAAG6e,GAAOhjE,UAAWrB,KAAKwkE,OAAO,EAAGH,GAAMlf,IAAI57C,SAAEvJ,KAAKwkE,OAAO,EAAGH,GAAMx6D,QAChKjJ,eAAA,MAAI6+B,QAASA,IAAMz/B,KAAKmkE,SAASnkE,KAAKwkE,OAAO,EAAGH,GAAMjf,QAASplD,KAAKwkE,OAAO,EAAGH,GAAM7e,MAAO,EAAG6e,GAAOhjE,UAAWrB,KAAKwkE,OAAO,EAAGH,GAAMlf,IAAI57C,SAAEvJ,KAAKwkE,OAAO,EAAGH,GAAMx6D,QAChKjJ,eAAA,MAAI6+B,QAASA,IAAMz/B,KAAKmkE,SAASnkE,KAAKwkE,OAAO,EAAGH,GAAMjf,QAASplD,KAAKwkE,OAAO,EAAGH,GAAM7e,MAAO,EAAG6e,GAAOhjE,UAAWrB,KAAKwkE,OAAO,EAAGH,GAAMlf,IAAI57C,SAAEvJ,KAAKwkE,OAAO,EAAGH,GAAMx6D,QAChKjJ,eAAA,MAAI6+B,QAASA,IAAMz/B,KAAKmkE,SAASnkE,KAAKwkE,OAAO,EAAGH,GAAMjf,QAASplD,KAAKwkE,OAAO,EAAGH,GAAM7e,MAAO,EAAG6e,GAAOhjE,UAAWrB,KAAKwkE,OAAO,EAAGH,GAAMlf,IAAI57C,SAAEvJ,KAAKwkE,OAAO,EAAGH,GAAMx6D,QAChKjJ,eAAA,MAAI6+B,QAASA,IAAMz/B,KAAKmkE,SAASnkE,KAAKwkE,OAAO,EAAGH,GAAMjf,QAASplD,KAAKwkE,OAAO,EAAGH,GAAM7e,MAAO,EAAG6e,GAAOhjE,UAAWrB,KAAKwkE,OAAO,EAAGH,GAAMlf,IAAI57C,SAAEvJ,KAAKwkE,OAAO,EAAGH,GAAMx6D,QAChKjJ,eAAA,MAAI6+B,QAASA,IAAMz/B,KAAKmkE,SAASnkE,KAAKwkE,OAAO,EAAGH,GAAMjf,QAASplD,KAAKwkE,OAAO,EAAGH,GAAM7e,MAAO,EAAG6e,GAAOhjE,UAAWrB,KAAKwkE,OAAO,EAAGH,GAAMlf,IAAI57C,SAAEvJ,KAAKwkE,OAAO,EAAGH,GAAMx6D,QAChKjJ,eAAA,MAAI6+B,QAASA,IAAMz/B,KAAKmkE,SAASnkE,KAAKwkE,OAAO,EAAGH,GAAMjf,QAASplD,KAAKwkE,OAAO,EAAGH,GAAM7e,MAAO,EAAG6e,GAAOhjE,UAAWrB,KAAKwkE,OAAO,EAAGH,GAAMlf,IAAI57C,SAAEvJ,KAAKwkE,OAAO,EAAGH,GAAMx6D,UAExK,CACA26D,OAAOjiE,EAAK8hE,GACR,IAAInf,EAAO,IAAIuf,GACf,IAAK,IAAIC,KAAO1kE,KAAKC,MAAM6jE,QACvB,GAAIY,EAAI3nC,GAAKx6B,GAAOmiE,EAAIC,GAAKN,EAQzB,OAPAK,EAAIvf,IAAM,uBACNuf,EAAItf,UACJsf,EAAIvf,IAAM,yBACN5iD,GAAOvC,KAAKC,MAAM2jE,eAAiBS,GAAQrkE,KAAKC,MAAM4jE,iBACtDa,EAAIvf,IAAM,2BAGXuf,EAGf,OAAOxf,CACX,CACA0f,iBAAiBC,GAEb,IAAIvkE,EADON,KACKC,MAAM8jE,iBACtB,IAAIe,EAAU,IAAI/iE,KAEd+iE,EADAD,EACU,IAAI9iE,KAAKzB,EAAK+kD,SAAS/kD,EAAKglD,WAAa,IAEzC,IAAIvjD,KAAKzB,EAAK+kD,SAAS/kD,EAAKglD,WAAa,IACvDtlD,KAAKmB,SAAS,CAAE4iE,iBAAkBe,IAPvB9kE,KAQNkkE,gBACT,CACAxjE,SACI,IAAIC,EAAOX,KACX,OACIY,eAAA,OAAA2I,SACID,gBAAA,SAAOjI,UAAU,uBAAsBkI,SAAA,CACnCD,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAIijC,QAAS,EAAEt6B,SAAC3I,eAAA,UAAQ6+B,QAASA,IAAM9+B,EAAKikE,kBAAiB,GAAQvjE,UAAU,8BAA6BkI,SAAC3I,eAAA,KAAGS,UAAU,qCAC1HT,eAAA,MAAIilD,MAAM,SAAShiB,QAAS,EAAEt6B,SAAC3I,eAAA,KAAA2I,SAAI5I,EAAKV,MAAM8H,OAAOpH,EAAKV,MAAM8jE,iBAAiBze,gBACjF1kD,eAAA,MAAIijC,QAAS,EAAGgiB,MAAM,QAAOt8C,SAAC3I,eAAA,UAAQ6+B,QAASA,IAAM9+B,EAAKikE,kBAAiB,GAAOvjE,UAAU,8BAA6BkI,SAAC3I,eAAA,KAAGS,UAAU,yCAE3IiI,gBAAA,MAAAC,SAAA,CACI3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,SACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,QACJ3I,eAAA,MAAA2I,SAAI,WAEP5I,EAAK4jE,QAAQ,GACb5jE,EAAK4jE,QAAQ,GACb5jE,EAAK4jE,QAAQ,GACb5jE,EAAK4jE,QAAQ,GACb5jE,EAAK4jE,QAAQ,GACb5jE,EAAK4jE,QAAQ,OAI9B,EAEWf,UC/Hf,MAAMuB,WAAiBnlE,YACnBC,YAAYC,GACRC,MAAMD,GACNE,KAAKC,MAAQ,CACT+kE,MAAO,GACPC,aAAcjlE,KAAKF,MAAMmlE,aACzBC,aAAc,GACdC,mBAAoB,IAExBnlE,KAAKolE,qBAAuBplE,KAAKolE,qBAAqBt1D,KAAK9P,KAC/D,CACAoN,oBACIpN,KAAKgqD,WACT,CAEAlM,qBACI,GAAI99C,KAAKC,MAAMilE,cAAgBllE,KAAKF,MAAMQ,KAAM,CAC5CN,KAAKgqD,YACL,IAAIpuC,EAAepf,IAAEiX,QAAQzT,KAAKF,MAAM8b,cAAegyC,GAC7C,GAANlsD,OAAUksD,EAAYyX,eAE1BrlE,KAAKmB,SAAS,CAAE+jE,aAAcllE,KAAKF,MAAMQ,KAAM6kE,mBAAoBvpD,GACvE,CACJ,CAEAouC,YACI,IAAIrpD,EAAOX,KACP0jC,EAAa1jC,KAAKF,MAAM4jC,WAC5B,GAAIA,EAAa,GAAgC,kBAApB1jC,KAAKF,MAAMQ,KAAmB,CACvD,IAAIse,EAAS,CAAE8kB,WAAYA,EAAYpjC,KAAMN,KAAKF,MAAMQ,MACpDue,EAAK,CAAEve,KAAMN,KAAKF,MAAMQ,KAAM6wD,aAAa,GAC/CrnD,GAAGggD,eAAe7lC,aAAarF,EAAQC,GAAI,GAAMtR,MAAK,KAClD5M,EAAKQ,SAAS,CAAE6jE,MAAOl7D,GAAGggD,eAAe1+B,OAAQ,GAEzD,CACJ,CACAk6C,kBAAkBj/D,GAEd,IAAKC,EAAUC,EAAUg/D,GAASl/D,EAAWG,MAAM,MAG9ClE,EAAOC,EAAKC,GAAQ8D,EAASE,MAAM,KAMxC,OAHAlE,EAAQmE,SAASnE,EAAO,IAAIxF,WAGtB,GAAN4E,OAAUY,EAAK,KAAAZ,OAAIa,EAAG,KAAAb,OAAIc,EAAI,KAAAd,OAAI6E,EAAQ,KAAA7E,OAAI6jE,EAClD,CACAH,qBAAqB9gB,GAGjB,IAAIkhB,EAAgBxlE,KAAKslE,kBAAkB,GAAD5jE,OAAI1B,KAAKF,MAAMQ,KAAI,KAAAoB,OAAI4iD,IAC7D1oC,EAAe5b,KAAKC,MAAMklE,mBAAmBK,IAAkB,GACnE,MAAM,mBAAN9jE,OAA0Bka,EAAeA,EAAa5c,OAAS,EAAC,IACpE,CAEA0B,SAEI,OACI4I,gBAAA,OAAAC,SAAA,CACI3I,eAAA,SAAA2I,SAAO,cACPD,gBAAA,UAAQjI,UAAU,eAAeJ,SAAUjB,KAAKF,MAAM2lE,WAAY/oE,MAAOsD,KAAKF,MAAMmlE,aAAa17D,SAAA,CAC7F3I,eAAA,UAAA2I,SAAQ,kBACPvJ,KAAKC,MAAM+kE,MAAMx7D,KAAI8kD,GAAOhlD,gBAAA,UAAQ5M,MAAO4xD,EAAI/kD,SAAA,CAAE+kD,EAAI,IAAEtuD,KAAKolE,qBAAqB9W,aAIlG,EAEWyW,U,oBChEf,MAAMW,WAAsB9lE,YACxBC,YAAYC,GACRC,MAAMD,GAAO,KAyCjBwkE,eAAkB9e,IACdxlD,KAAKmB,SAAS,CAAE08C,aAAc2H,EAAMmgB,gBAAe,GAAQ,EAzC3D3lE,KAAKimB,OAASnc,GAAGwR,cACjBtb,KAAKC,MAAQ,CACTykB,mBAAoB,CAAEma,UAAW7+B,KAAKF,MAAMrB,MAAMmgB,OAAOigB,UAAW/X,OAAQ9mB,KAAKF,MAAMrB,MAAMmgB,OAAOkI,QACpG8+C,iBAAiB,EACjB9vD,UAAW,GACX+nC,aAAc,IAAI97C,KAClBkjE,aAAc,GACdvhC,WAAY,EACZ9nB,aAAc,GACdiqD,iBAAiB,EACjB/rD,KAAM,CAAC,EACPgsD,YAAa,CAAC,EACdH,gBAAe,GAEnB3lE,KAAKivD,eAAiBjvD,KAAKivD,eAAen/C,KAAK9P,MAC/CA,KAAKylE,WAAazlE,KAAKylE,WAAW31D,KAAK9P,MACvCA,KAAKqb,WAAarb,KAAKqb,WAAWvL,KAAK9P,MACvCA,KAAK+lE,qBAAuB/lE,KAAK+lE,qBAAqBj2D,KAAK9P,KAC/D,CACAoN,oBACI,IAAIzM,EAAOX,KACX8J,GAAGgM,UAAU4N,mBAAmB/iB,EAAKV,MAAMykB,oBAAoBnX,MAAK,KAChE5M,EAAKQ,SAAS,CAAE2U,UAAWhM,GAAGgM,UAAUsV,OAAQ,IAEpDthB,GAAGgQ,KAAK2W,WAAW,KAAM,KAAMxO,EAAO3I,UAAUU,KAAM,CAAElI,GAAI9R,KAAKC,MAAMykB,mBAAmBoC,SAAU,GAAMvZ,MAAMyrC,IAC5Gh5C,KAAKmB,SAAS,CAAE2Y,KAAMk/B,GAAM,GAGpC,CACAiW,eAAerkD,GACX,IAAIo7D,EAAQp7D,EAAMkC,OAAOpQ,MACX,IAAVspE,EAAehmE,KAAKmB,SAAS,CAAEykE,iBAAiB,EAAOliC,WAAY,EAAG9nB,aAAc,OAEpF5b,KAAKmB,SAAS,CAAEykE,iBAAiB,EAAMliC,WAAYsiC,IAAS,KACxDl8D,GAAG8R,aAAa6U,WAAW,KAAM,CAAEiT,WAAYsiC,GAAS/jD,EAAO3I,UAAU+D,uBAAwB,CAAC,GAAG,GAAM9P,MAAMyrC,IAC7Gh5C,KAAKmB,SAAS,CAAEya,aAAco9B,EAAK6sB,iBAAgB,EAAMF,gBAAe,GAAM,GAChF,GAGd,CAIAF,WAAWx/D,GAC6B,iBAAhCA,EAAE6G,OAAOpQ,MAAMmC,eACfmB,KAAKmB,SAAS,CAAE0kE,iBAAiB,EAAMZ,aAAch/D,EAAE6G,OAAOpQ,OACtE,CACA2e,WAAWzQ,EAAO2yC,GACd,IAAI0oB,EAAQjmE,KAAKC,MAAM6Z,KACvBmsD,EAAM1oB,GAAS3yC,EAAMkC,OAAOpQ,MAC5BsD,KAAKmB,SAAS,CAAE2Y,KAAMmsD,GAC1B,CACApqB,WACI,OAAO77C,KAAKC,MAAM49C,cACX79C,KAAKC,MAAMglE,cACXjlE,KAAKC,MAAMyjC,YACX1jC,KAAKC,MAAM6Z,KAAK8P,WAChB5pB,KAAKC,MAAM6Z,KAAK+P,UAChB7pB,KAAKC,MAAM6Z,KAAKoqB,WAC3B,CACA6hC,uBAEI,IAAIpnD,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAOuB,YAAa,CAAEuQ,OAAQ9mB,KAAKC,MAAMykB,mBAAmBoC,OAAQ+X,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,YAC7I7+B,KAAKF,MAAMwxB,QAAQtqB,KAAK2X,EAC5B,CACAotC,WACI,IAAK/rD,KAAK67C,WAEN,YADAvK,MAAM,4CAOV,IACIqG,EAAU,CAEV4U,aAHO,IAAIxqD,KAAK/B,KAAKC,MAAM49C,aAAe,IAAM79C,KAAKC,MAAMglE,cAAc5/D,iBAIzEq+B,WAAY1jC,KAAKC,MAAMyjC,WACvByoB,MAAM,EACN1E,WAAW,EACX3gC,OAAQ9mB,KAAKC,MAAMykB,mBAAmBoC,OACtC+X,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,UACzCytB,iBAAkB,GAEtBxiD,GAAG8R,aAAa2U,YAAYonB,EAAS,KAAM11B,EAAO3I,UAAUW,aAAc,CAAC,GAAG,GACzE1M,MAAK,KACFvN,KAAK+lE,sBAAsB,GAEvC,CACArlE,SACI,OACI4I,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAChD3I,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,SAAQkI,SAAA,CACnB3I,eAAA,SAAA2I,SAAO,aACPD,gBAAA,UAAQjI,UAAU,eAAeJ,SAAUjB,KAAKivD,eAAe1lD,SAAA,CAC3D3I,eAAA,UAAA2I,SAAQ,kBACPvJ,KAAKC,MAAM6V,UAAUtM,KAAI8kD,GAAO1tD,eAAA,UAAQlE,MAAO4xD,EAAI5qB,WAAWn6B,SAAE+kD,EAAIxgD,iBAKjFlN,eAAA,OAAK6O,QAAsC,IAA9BzP,KAAKC,MAAM2lE,gBAAyBvkE,UAAU,WAAUkI,SACjE3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAACslE,GAAmB,CAACjC,YAAa,CAAEvgC,WAAY1jC,KAAKC,MAAMyjC,YAAc4gC,eAAgBtkE,KAAKskE,qBAGtG1jE,eAAA,OAAK6O,QAAoC,IAA5BzP,KAAKC,MAAM0lE,eAAuBtkE,UAAU,MAAKkI,SAC1D3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAACmkE,GAAQ,CAACrhC,WAAY1jC,KAAKC,MAAMyjC,WAAY9nB,aAAc5b,KAAKC,MAAM2b,aAActb,KAAMN,KAAKC,MAAM49C,aAAconB,aAAcjlE,KAAKC,MAAMglE,aAAcQ,WAAYzlE,KAAKylE,iBAGnL7kE,eAAC8P,KAAI,CAACjB,QAASzP,KAAKC,MAAM4lE,gBAAiBxkE,UAAU,SAAQkI,SACzDD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACulE,KAAG,CAAA58D,SACA3I,eAACwlE,KAAG,CAAC/kE,UAAU,6BAA6Bg7B,KAAK,QAAO9yB,SAAC,2BAE7DD,gBAAC68D,KAAG,CAAA58D,SAAA,CACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMoT,WAAS,EAAC76C,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK8P,UAAW3oB,SAAW2J,GAAU5K,KAAKqb,WAAWzQ,EAAO,kBAEnJtB,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMznC,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK+P,SAAU5oB,SAAW2J,GAAU5K,KAAKqb,WAAWzQ,EAAO,oBAG5IhK,eAACulE,KAAG,CAAA58D,SACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,UACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMl9B,KAAK,MAAMqqC,KAAK,iBAAiBv5C,MAAOsD,KAAKC,MAAM6Z,KAAKoqB,YAAatM,IAAKse,KAAWj1C,SAAW2J,GAAU5K,KAAKqb,WAAWzQ,EAAO,sBAGhKhK,eAACulE,KAAG,CAAA58D,SACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,UACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMznC,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK4P,aAAczoB,SAAW2J,GAAU5K,KAAKqb,WAAWzQ,EAAO,4BAKxJhK,eAAA,OAAKS,UAAU,gBAAekI,SAC1B3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAK+rD,WAAY1qD,UAAU,8BAA6BkI,SAAC,mBApDnF,WAyDjB,EAGWm8D,UC5Jf,MAAMW,WAA8BzmE,YAChCC,YAAYC,GACRC,MAAMD,GAAO,KA6CjBwkE,eAAkB9e,IACdxlD,KAAKmB,SAAS,CAAE08C,aAAc2H,EAAMmgB,gBAAe,GAAQ,EA7C3D3lE,KAAKimB,OAASnc,GAAG2M,sBACjBzW,KAAKC,MAAQ,CACTykB,mBAAoB,CAAEma,UAAW7+B,KAAKF,MAAMrB,MAAMmgB,OAAOigB,UAAW/X,OAAQ9mB,KAAKF,MAAMrB,MAAMmgB,OAAOkI,OAAQ4gC,cAAe1nD,KAAKF,MAAMrB,MAAMmgB,OAAO8oC,eACnJud,aAAc,GACdpnB,aAAc,IAAI97C,KAClB2hC,WAAY,EACZ5pB,KAAM,CAAC,EACP8rD,iBAAiB,EACjB9vD,UAAW,GACX8F,aAAc,GACdiqD,iBAAiB,EACjBjY,YAAa,KACb+X,gBAAe,GAEnB3lE,KAAKivD,eAAiBjvD,KAAKivD,eAAen/C,KAAK9P,MAC/CA,KAAKylE,WAAazlE,KAAKylE,WAAW31D,KAAK9P,MACvCA,KAAKqb,WAAarb,KAAKqb,WAAWvL,KAAK9P,MACvCA,KAAK+lE,qBAAsB/lE,KAAK+lE,qBAAqBj2D,KAAK9P,KAC9D,CAEAoN,oBACI,IAAIzM,EAAOX,KACX8J,GAAGgM,UAAU4N,mBAAmB/iB,EAAKV,MAAMykB,oBAAoBnX,MAAK,KAChE5M,EAAKQ,SAAS,CAAE2U,UAAWhM,GAAGgM,UAAUsV,OAAQ,IAEpDthB,GAAGwM,MAAMma,WAAW,KAAM,KAAMxO,EAAO3I,UAAUU,KAAM,CAAElI,GAAI9R,KAAKC,MAAMykB,mBAAmBoC,SAAU,GAAMvZ,MAAMyrC,IAC7Gh5C,KAAKmB,SAAS,CAAE2Y,KAAMk/B,GAAM,IAEhClvC,GAAG8R,aAAa6U,WAAW,KAAM,KAAMxO,EAAO3I,UAAUU,KAAM,CAAElI,GAAI9R,KAAKC,MAAMykB,mBAAmBgjC,gBAAiB,GAAMn6C,MAAMyrC,IAC3Hh5C,KAAKmB,SAAS,CAAEysD,YAAa5U,GAAM,GAE3C,CAEAiW,eAAerkD,GACX,IAAIo7D,EAAQp7D,EAAMkC,OAAOpQ,MACZ,GAATspE,EAAchmE,KAAKmB,SAAS,CAAEykE,iBAAiB,EAAOliC,WAAY,EAAG9nB,aAAc,OAEnF5b,KAAKmB,SAAS,CAAEykE,iBAAiB,EAAMliC,WAAYsiC,IAAS,KACxDl8D,GAAG8R,aAAa6U,WAAW,KAAM,CAAEiT,WAAYsiC,GAAS/jD,EAAO3I,UAAU+D,uBAAwB,CAAC,GAAG,GAAM9P,MAAMyrC,IAC7Gh5C,KAAKmB,SAAS,CAAEya,aAAco9B,EAAK6sB,iBAAgB,EAAMF,gBAAe,GAAM,GAChF,GAGd,CAKAF,WAAWx/D,GAC6B,iBAAhCA,EAAE6G,OAAOpQ,MAAMmC,eACfmB,KAAKmB,SAAS,CAAE0kE,iBAAiB,EAAMZ,aAAch/D,EAAE6G,OAAOpQ,OACtE,CACA2e,WAAWzQ,EAAO2yC,GACd,IAAI0oB,EAAQjmE,KAAKC,MAAM6Z,KACvBmsD,EAAM1oB,GAAS3yC,EAAMkC,OAAOpQ,MAC5BsD,KAAKmB,SAAS,CAAE2Y,KAAMmsD,GAC1B,CACApqB,WACI,OAAO77C,KAAKC,MAAM49C,cACX79C,KAAKC,MAAMglE,cACXjlE,KAAKC,MAAMyjC,YACX1jC,KAAKC,MAAM6Z,KAAK8P,WAChB5pB,KAAKC,MAAM6Z,KAAK+P,UAChB7pB,KAAKC,MAAM6Z,KAAKoqB,WAC3B,CACA6hC,uBACI,IAAIpnD,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAOuB,YAAa,CAAEuQ,OAAQ9mB,KAAKC,MAAMykB,mBAAmBoC,OAAQ+X,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,YAC7I7+B,KAAKF,MAAMwxB,QAAQtqB,KAAK2X,EAC5B,CACA2nD,aACI,IAAKtmE,KAAK67C,WAEN,YADAvK,MAAM,4CAIV,IACIqG,EAAU,CAEV4U,aAHO,IAAIxqD,KAAK/B,KAAKC,MAAM49C,aAAe,IAAM79C,KAAKC,MAAMglE,cAAc5/D,iBAIzEq+B,WAAY1jC,KAAKC,MAAMyjC,WACvByoB,MAAM,EACN1E,WAAW,EACX3gC,OAAQ9mB,KAAKC,MAAMykB,mBAAmBoC,OACtC+X,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,UACzCytB,iBAAkB,EAClB5E,cAAe1nD,KAAKC,MAAM2tD,YAAYlG,eAE1C59C,GAAG8R,aAAa2U,YAAYonB,EAAS,KAAM11B,EAAO3I,UAAU7C,sBAAuB,CAAC,GAAG,GAAOlJ,MAAK,KAC/FvN,KAAK+lE,sBAAsB,GAEnC,CACArlE,SACI,OACI4I,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAChD3I,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,SAAQkI,SAAA,CACnB3I,eAAA,SAAA2I,SAAO,aACPD,gBAAA,UAAQjI,UAAU,eAAeJ,SAAUjB,KAAKivD,eAAe1lD,SAAA,CAC3D3I,eAAA,UAAQlE,MAAM,IAAG6M,SAAC,kBACjBvJ,KAAKC,MAAM6V,UAAUtM,KAAI8kD,GAAO1tD,eAAA,UAAQlE,MAAO4xD,EAAI5qB,WAAWn6B,SAAE+kD,EAAIxgD,iBAIjFlN,eAAA,OAAK6O,QAASzP,KAAKC,MAAM2lE,gBAAiBvkE,UAAU,WAAUkI,SAC1D3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAACslE,GAAmB,CAACjC,YAAa,CAAEvgC,WAAY1jC,KAAKC,MAAMyjC,YAAc4gC,eAAgBtkE,KAAKskE,qBAGtG1jE,eAAA,OAAK6O,QAAoC,IAA5BzP,KAAKC,MAAM0lE,eAAuBtkE,UAAU,MAAKkI,SAC1D3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAACmkE,GAAQ,CAACrhC,WAAY1jC,KAAKC,MAAMyjC,WAAY9nB,aAAc5b,KAAKC,MAAM2b,aAActb,KAAMN,KAAKC,MAAM49C,aAAconB,aAAcjlE,KAAKC,MAAMglE,aAAcQ,WAAYzlE,KAAKylE,iBAGnL7kE,eAAC8P,KAAI,CAACjB,QAASzP,KAAKC,MAAM4lE,gBAAiBxkE,UAAU,SAAQkI,SACzDD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACulE,KAAG,CAAA58D,SACA3I,eAACwlE,KAAG,CAAC/kE,UAAU,6BAA6Bg7B,KAAK,QAAO9yB,SAAC,2BAE7DD,gBAAC68D,KAAG,CAAA58D,SAAA,CACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMoT,WAAS,EAAC76C,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK8P,eAE5FtgB,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMznC,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK+P,iBAGtFjpB,eAACulE,KAAG,CAAA58D,SACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,UACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMl9B,KAAK,MAAMqqC,KAAK,iBAAiBv5C,MAAOsD,KAAKC,MAAM6Z,KAAKoqB,YAAatM,IAAKse,YAGzGt1C,eAACulE,KAAG,CAAA58D,SACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,UACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMznC,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK4P,yBAM9F9oB,eAAA,OAAKS,UAAU,gBAAekI,SAC1B3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKsmE,aAAcjlE,UAAU,8BAA6BkI,SAAC,qBApDrF,WAyDjB,EAGW88D,UC5Jf,MAAME,WAAqC3mE,YACvCC,YAAYC,GACRC,MAAMD,GAAO,KA8BjBwkE,eAAkB9e,IACdxlD,KAAKmB,SAAS,CAAE08C,aAAc2H,EAAMmgB,gBAAe,GAAQ,EA9B3D3lE,KAAKimB,OAASnc,GAAG2M,sBACjBzW,KAAKC,MAAQ,CACTykB,mBAAoB,CAAEma,UAAW7+B,KAAKF,MAAMrB,MAAMmgB,OAAOigB,UAAW/X,OAAQ9mB,KAAKF,MAAMrB,MAAMmgB,OAAOkI,OAAQ4gC,cAAe1nD,KAAKF,MAAMrB,MAAMmgB,OAAO8oC,eACnJud,aAAc,GACdpnB,aAAc,IAAI97C,KAClB2hC,WAAW1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,WACnC5pB,KAAM,CAAC,EACP8B,aAAc,GACdiqD,iBAAiB,EACjBjY,YAAa,KACb+X,gBAAe,GAEnB3lE,KAAKylE,WAAazlE,KAAKylE,WAAW31D,KAAK9P,MACvCA,KAAKqb,WAAarb,KAAKqb,WAAWvL,KAAK9P,MACvCA,KAAKwmE,kBAAmBxmE,KAAKwmE,kBAAkB12D,KAAK9P,KACxD,CAEAoN,oBACItD,GAAG8R,aAAa6U,WAAW,KAAM,CAAEiT,WAAY1jC,KAAKC,MAAMyjC,YAAczhB,EAAO3I,UAAU+D,uBAAwB,CAAC,GAAG,GAAM9P,MAAMyrC,IAC7Hh5C,KAAKmB,SAAS,CAAEya,aAAco9B,EAAK6sB,iBAAgB,EAAMF,gBAAe,GAAM,IAElF77D,GAAGwM,MAAMma,WAAW,KAAM,KAAMxO,EAAO3I,UAAUU,KAAM,CAAElI,GAAI9R,KAAKC,MAAMykB,mBAAmBoC,SAAU,GAAMvZ,MAAMyrC,IAC7Gh5C,KAAKmB,SAAS,CAAE2Y,KAAMk/B,GAAM,IAEhClvC,GAAG8R,aAAa6U,WAAW,KAAM,KAAMxO,EAAO3I,UAAUU,KAAM,CAAElI,GAAI9R,KAAKC,MAAMykB,mBAAmBgjC,gBAAiB,GAAMn6C,MAAMyrC,IAC3Hh5C,KAAKmB,SAAS,CAAEysD,YAAa5U,GAAM,GAE3C,CAMAysB,WAAWx/D,GAC6B,iBAAhCA,EAAE6G,OAAOpQ,MAAMmC,eACfmB,KAAKmB,SAAS,CAAE0kE,iBAAiB,EAAMZ,aAAch/D,EAAE6G,OAAOpQ,OACtE,CACA2e,WAAWzQ,EAAO2yC,GACd,IAAI0oB,EAAQjmE,KAAKC,MAAM6Z,KACvBmsD,EAAM1oB,GAAS3yC,EAAMkC,OAAOpQ,MAC5BsD,KAAKmB,SAAS,CAAE2Y,KAAMmsD,GAC1B,CACApqB,WACI,OAAO77C,KAAKC,MAAM49C,cACX79C,KAAKC,MAAMglE,cACXjlE,KAAKC,MAAMyjC,YACX1jC,KAAKC,MAAM6Z,KAAK8P,WAChB5pB,KAAKC,MAAM6Z,KAAK+P,UAChB7pB,KAAKC,MAAM6Z,KAAKoqB,WAC3B,CACAsiC,oBACI,IAAI7nD,EAAMsD,EAAOvD,QAAQuD,EAAOjN,OAAO8B,QAAS,CAAE+gC,QAAS73C,KAAKC,MAAM2tD,YAAY/V,UAClF73C,KAAKF,MAAMwxB,QAAQtqB,KAAK,CAAC03B,SAAS/f,EAAK1e,MAAM,CAACsvD,cAAc,IAChE,CACA+W,aACI,IAAKtmE,KAAK67C,WAEN,YADAvK,MAAM,4CAIV,IACIqG,EAAU,CAEV4U,aAHO,IAAIxqD,KAAK/B,KAAKC,MAAM49C,aAAe,IAAM79C,KAAKC,MAAMglE,cAAc5/D,iBAIzEq+B,WAAY1jC,KAAKC,MAAMyjC,WACvByoB,MAAM,EACN1E,WAAW,EACX3gC,OAAQ9mB,KAAKC,MAAMykB,mBAAmBoC,OACtC+X,UAAW7+B,KAAKC,MAAMykB,mBAAmBma,UACzCytB,iBAAkB,EAClB5E,cAAe1nD,KAAKC,MAAM2tD,YAAYlG,eAE1C59C,GAAG8R,aAAa2U,YAAYonB,EAAS,KAAM11B,EAAO3I,UAAU7C,sBAAuB,CAAC,GAAG,GAAOlJ,MAAK,KAC/FvN,KAAKwmE,mBAAmB,GAEhC,CACA9lE,SACI,OACI4I,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAChD3I,eAAA,MAAIS,UAAU,mDAAkDkI,SAAEvJ,KAAKC,MAAM2tD,YAAY5tD,KAAKC,MAAM2tD,YAAYruC,SAASzR,KAAK,KAC9HlN,eAAA,OAAKS,UAAU,WAAUkI,SACrB3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAACslE,GAAmB,CAACjC,YAAa,CAAEvgC,WAAY1jC,KAAKC,MAAMyjC,YAAc4gC,eAAgBtkE,KAAKskE,qBAGtG1jE,eAAA,OAAK6O,QAAoC,IAA5BzP,KAAKC,MAAM0lE,eAAuBtkE,UAAU,MAAKkI,SAC1D3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAACmkE,GAAQ,CAACrhC,WAAY1jC,KAAKC,MAAMyjC,WAAY9nB,aAAc5b,KAAKC,MAAM2b,aAActb,KAAMN,KAAKC,MAAM49C,aAAconB,aAAcjlE,KAAKC,MAAMglE,aAAcQ,WAAYzlE,KAAKylE,WAAYxd,aAAa,QAG5MrnD,eAAC8P,KAAI,CAACjB,QAASzP,KAAKC,MAAM4lE,gBAAiBxkE,UAAU,SAAQkI,SACzDD,gBAACsH,KAAS,CAAArH,SAAA,CACN3I,eAACulE,KAAG,CAAA58D,SACA3I,eAACwlE,KAAG,CAAC/kE,UAAU,6BAA6Bg7B,KAAK,QAAO9yB,SAAC,2BAE7DD,gBAAC68D,KAAG,CAAA58D,SAAA,CACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMoT,WAAS,EAAC76C,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK8P,eAE5FtgB,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,eACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMznC,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK+P,iBAGtFjpB,eAACulE,KAAG,CAAA58D,SACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,UACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMl9B,KAAK,MAAMqqC,KAAK,iBAAiBv5C,MAAOsD,KAAKC,MAAM6Z,KAAKoqB,YAAatM,IAAKse,YAGzGt1C,eAACulE,KAAG,CAAA58D,SACAD,gBAAC88D,KAAG,CAAA78D,SAAA,CACA3I,eAACiQ,KAAK,CAAAtH,SAAC,UACP3I,eAACkQ,KAAK,CAACg4B,UAAU,EAAMznC,UAAU,eAAeuL,aAAc5M,KAAKC,MAAM6Z,KAAK4P,yBAM9F9oB,eAAA,OAAKS,UAAU,gBAAekI,SAC1B3I,eAAA,OAAKS,UAAU,SAAQkI,SACnB3I,eAAA,UAAQ6+B,QAASA,IAAMz/B,KAAKsmE,aAAcjlE,UAAU,8BAA6BkI,SAAC,qBA5CrF,WAiDjB,EAGWg9D,UCxIf,MAAME,WAAsB7mE,YAC1BC,YAAYC,GACVC,MAAMD,GACKE,KACNC,MAAQ,CACXymE,gBAFS1mE,KAEaF,MAAMrB,MAAMmgB,OAAO8nD,gBACzC97D,MAAM,KAIV,CAEAwC,oBACEtD,GAAGsM,OAAOma,YAAY,CAACm2C,gBAAgB1mE,KAAKC,MAAMymE,iBAAiB,KAAKzkD,EAAO3I,UAAUkE,oBAAoB,CAACkpD,gBAAgB1mE,KAAKC,MAAMymE,kBAAiB,GACzJn5D,MAAM7C,IACL,IAAI0L,EAAStM,GAAGsM,OAAOgV,MACvBthB,GAAG+mB,QAAQ3F,IAAI,UAAW9U,EAAOw8C,aAAa,GAIlD,CAEAlyD,SAEI,OACE4I,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAAA,UAAQS,UAAU,cAAcoO,QAAQ,EAAMlG,SAC5C3I,eAAA,WAASS,UAAU,yBAAwBkI,SACzC3I,eAAA,KAAGqpB,KAAK,IAAI5oB,UAAU,GAAEkI,SACtB3I,eAAA,OAAKk3B,IAAK6uC,GAAMroC,IAAI,mBAI1B19B,eAAA,QAAMS,UAAU,aAAYkI,SAC1BD,gBAAA,OAAKjI,UAAU,iBAAgBkI,SAAA,CAC7B3I,eAAA,OAAKS,UAAU,oCAAmCkI,SAChDD,gBAAA,OAAKjI,UAAU,sBAAqBkI,SAAA,CAClC3I,eAAA,OAAKS,UAAU,qBAYfT,eAAA,OAAKS,UAAU,2BAA0BkI,SACvC3I,eAAA,MAAA2I,SAAI,mDAIV3I,eAAA,OAAKS,UAAU,iCAAgCkI,SAC7C3I,eAAA,OAAKS,UAAU,oBAAmBkI,SAChC3I,eAAA,OAAKS,UAAU,yBAAwBkI,SACrC3I,eAAA,OAAA2I,SACED,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,OAAKS,UAAU,2EAA0EkI,SAAC,eAG1F3I,eAAA,KAAGS,UAAU,OAAMkI,SAAEO,GAAG+mB,QAAQzF,IAAI,+BArC3C,WAiDf,EAGaq7C,UCjFf,MAAMG,WAAkBhnE,YACpBc,SACI,OACI4I,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CACjD3I,eAACggC,GAAS,CAAChvB,KAAM,kDAAmD/H,MAAO,YAAai3B,KAAK,IAC7Fx3B,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClB3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC3I,eAAA,KAAGqpB,KAAK,yFAAyFnd,OAAO,QAAOvD,SAAC3I,eAAA,MAAA2I,SAAI,mCAC3I3I,eAAA,OAAKS,UAAU,WAAUkI,SAAC,mEAE5BD,gBAAA,OAAKjI,UAAU,MAAKkI,SAAA,CAClB3I,eAAA,OAAKS,UAAU,QAAOkI,SAAC3I,eAAA,KAAGqpB,KAAK,kEAAkEnd,OAAO,QAAOvD,SAAC3I,eAAA,MAAA2I,SAAI,+BACpH3I,eAAA,OAAKS,UAAU,WAAUkI,SAAC,qEARtB,WAYjB,EAEWq9D,UCXf,MAAMC,WAAsBjnE,YAC1BC,YAAYC,GACVC,MAAMD,GACNE,KAAKimB,OAASnc,GAAGg9D,aACjB,IAAIhtD,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAC5DyH,EAAa1jC,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,WACzC1jC,KAAKC,MAAQ,CACXyI,MAAK,EACLgc,mBAAoB,CAAEma,UAAWplB,EAAQolB,UAAW6E,cACpDA,WAAYA,EACZnkB,SAAS,CAACzR,KAAK,IACfsuB,aAAatyB,GAAGsyB,eAEpB,CACA+e,cACE,IAAI57B,EAAW/iB,IAAEu/B,UAAUjyB,GAAGqQ,WAAWiR,MAAM,CAACytB,YAAYpyC,SAASzG,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,cAC7F,GAAInkB,EAUFvf,KAAKmB,SAAS,CAACoe,iBATjB,CACE,IAAIzF,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAChEnyB,GAAGqQ,WAAWuJ,mBAAmB,CAACmb,UAAUplB,EAAQolB,YAAYtxB,MAAK,KACnE,IAAIgS,EAAW/iB,IAAEu/B,UAAUjyB,GAAGqQ,WAAWiR,MAAM,CAACytB,YAAYpyC,SAASzG,KAAKF,MAAMrB,MAAMmgB,OAAO8kB,cAC7F1jC,KAAKmB,SAAS,CAACoe,SAASA,GAAU,GAEtC,CAKF,CACAnS,oBACEpN,KAAKmB,SAAS,CAACw/B,YAAY72B,GAAGgyB,oBAAoB6E,cAClD,MAAMhgC,EAAOX,KACbA,KAAKm7C,cACLn7C,KAAKimB,OAAOvC,mBAAmB1jB,KAAKC,MAAMykB,oBAAmB,GAAOnX,MAAM7E,IACnEoB,GAAG2pB,UAAUzzB,KAAKimB,UAEnBvd,EAAO/H,EAAKslB,OAAOmF,KAAI,GACvBzqB,EAAKQ,SAAS,CAACuH,KAAKA,IACpB6D,QAAQC,IAAI9D,GACd,GAEN,CAGA0yC,WACE,MAAM,uBAAN15C,OAA8B1B,KAAKC,MAAMsf,SAASzR,KACpD,CAEApN,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GAEX,GAAI1I,KAAKC,MAAMyI,KAAM,CACnBA,EAAO1I,KAAKimB,OAAOmF,KAAI,GAEvBiF,EAAU,CACR,CACI2W,UAAW,YACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,aAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWQ,WAE7B,CACEoqC,UAAW,cACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,eAC1B6e,WAAW,EACXnC,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERq6B,UAAWA,CAACQ,EAAMltC,IACRY,KAAM+F,cAAcumC,EAAM,uBAGtC,CACEzF,UAAW,aACXp1B,KAAK,kBACLm7B,UAAS,EACTrF,UAAS,EACT+H,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,QACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,SAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,aACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,cAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,aACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,cAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,iBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,kBAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAE/E,CACEwpC,UAAW,iBACXp1B,KAAM5R,KAAKimB,OAAOoK,QAAQ,kBAC1B0c,UAAS,EACT0C,cAAe,CACb79B,MAAM,GAERtS,WAAY,CAAElD,KAAWY,eAAeZ,KAAWsB,eAAetB,KAAWoB,aAGnF,CACA,OAAIwC,KAAKC,MAAMyI,KAIb9H,eAAA,OAAoBS,UAAU,uBAAsBkI,SAClD3I,eAACuvC,GAAW,CACVlqB,OAAQjmB,KAAKimB,OACbmd,UAAS,GAAA1hC,OAAK1B,KAAKo7C,WAAU,KAAA15C,OAAK1B,KAAKC,MAAM0gC,aAAe3gC,KAAKC,MAAMm8B,aAAY,IAAA16B,OAAM1B,KAAKC,MAAM0gC,YAAW,KAAI,IACnHj4B,KAAMA,EACN2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAW,EACXhmB,mBAAoB1kB,KAAKC,MAAMykB,mBAC/BtS,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,KAX1B,YAHAxqB,eAAC+Q,KAAO,CAACC,KAAM9H,GAAGC,EAAE,gBAAiB8H,QAAQ,SAmB1D,EAGag1D,U,cC7Jf,MAAME,WAAiBnnE,YACrBC,YAAYC,GACVC,MAAMD,GAENE,KAAKimB,OAASnc,GAAG8L,SACjB5V,KAAKC,MAAQ,CACXm2C,UAAU,EACV4wB,iBAAiB,EACjBC,uBAAwB,GACxBC,cAAc,EACdtqD,eAAe,CACbiiB,UAAU,IACVs0B,MAAM,GACN4M,UAAU,KACV/U,SAAQ,IAGZhrD,KAAKmnE,cAAgBnnE,KAAKmnE,cAAcr3D,KAAK9P,MAC7CA,KAAKonE,iBAAmBpnE,KAAKonE,iBAAiBt3D,KAAK9P,KACrD,CAEA6+D,cACE7+D,KAAKimB,OAAOwK,WAAW,KAAM,KAAMxO,EAAO3I,UAAU1D,SAAU,CAAEipB,UAAW7+B,KAAKC,MAAM2c,eAAeiiB,YAAa,EACpH,CACA,uBAAMzxB,GACJ,IAAIqM,EAAU3P,GAAGgyB,qBAEbhyB,GAAGsyB,gBAAkB3iB,GAAWA,EAAQolB,UAAW,SAC/C7+B,KAAKmB,SAAS,CAACyb,eAAe,IAAI5c,KAAKC,MAAM2c,eAAeiiB,UAAUplB,EAAQolB,UAAU,MAEhG7+B,KAAK6+D,cACL/0D,GAAG4L,UAAUqX,MAAK,EACpB,CAEA+zB,aACE,IAAIumB,GAAkC,IAArBv9D,GAAGsyB,eACpB,MAAO,CACL,CACE4K,UAAW,OACXp1B,KAAM,OACNm7B,SAAUs6B,EACV/nE,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,OACXp1B,KAAM,QAENm7B,SAAUs6B,EACV/nE,WAAY,CAAClD,KAAWQ,SAASR,KAAWoB,YAC5CiyC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,cACXp1B,KAAM,cACNm7B,SAASs6B,EACT/nE,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,OACXp1B,KAAM,OACNsgC,aAAam1B,EACbt6B,SAAUs6B,EACV/nE,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,QACXp1B,KAAM,QACNm7B,SAAUs6B,GAAsD,MAAxCrnE,KAAKC,MAAM2c,eAAeiiB,UAClDv/B,WAAY,CAAClD,KAAWQ,SAAUR,KAAWoB,YAC7CiyC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,aACXp1B,KAAM,cACNsgC,aAAam1B,EACbt6B,SAAUs6B,EACV/nE,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,WACXp1B,KAAM,WACNm7B,SAAUs6B,EACV/nE,WAAY,CAAClD,KAAWQ,SAAUR,KAAWoB,YAC7CiyC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,OACXp1B,KAAM,OACNsgC,aAAam1B,EACbt6B,SAAUs6B,EACV/nE,WAAY,CAAClD,KAAWQ,UACxB6yC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,QACXp1B,KAAM,QACNsgC,aAAam1B,EACbt6B,SAAUs6B,EACV/nE,WAAY,CAAClD,KAAWQ,SAAUR,KAAWoB,YAC7CiyC,cAAe,CACb79B,MAAM,IAGV,CACEo1B,UAAW,UACXp1B,KAAM,iBACNsgC,aAAyB,IAAbm1B,EACZt6B,UAAUs6B,GAAsD,MAAxCrnE,KAAKC,MAAM2c,eAAeiiB,UAClDqQ,UAAoD,MAAxClvC,KAAKC,MAAM2c,eAAeiiB,UACtC6I,UAAU,GAEZ,CACEV,UAAW,SACXp1B,KAAM,SACNsgC,aAA0B,IAAdm1B,EACZt6B,UAAuB,IAAds6B,EACTn4B,WAAY,EACZxH,UAAU,GAEZ,CACEV,UAAW,UACXp1B,KAAM,UACNnC,OAAgD,MAAxCzP,KAAKC,MAAM2c,eAAeiiB,UAClChtB,QAAkD,MAAxC7R,KAAKC,MAAM2c,eAAeiiB,UAAoB,SAAS,GACjE2P,cAAwD,MAAxCxuC,KAAKC,MAAM2c,eAAeiiB,UAAoB,SAAS,GACvEqQ,WAAW,EACXjD,UAAWA,CAACQ,EAAMltC,IACTqB,eAAA,UAAQiJ,MAAM,uBAAuBxI,UAAU,kBAAkBo+B,QAAU70B,IAAY5K,KAAKsnE,uBAAuB/nE,EAAI,EAAGgK,SAAC3I,eAAA,KAAGS,UAAU,mBAIvJ,CAEA+lE,iBAAiBx8D,GACf,MAAMjK,EAAOX,KACb,IAAI4c,EAAiBmC,OAAOyI,OAAO,CAAC,EAAG7mB,EAAKV,MAAM2c,gBAClDA,EAAeiiB,UAAYj0B,EAAMkC,OAAOpQ,MACxCiE,EAAKQ,SAAS,CAACyb,mBAAgB,KAC7Bjc,EAAKk+D,aAAa,GAGtB,CAEAsI,gBACE,OAAQvmE,eAAA,OAAKS,UAAU,YAAWkI,SAChCD,gBAACwH,KAAK,CAACg4B,UAAWh/B,GAAGsyB,eAAgB1/B,MAAOsD,KAAKC,MAAM2c,eAAeiiB,UAAWjzB,KAAK,SAAS3K,SAAW2J,IAAY5K,KAAKonE,iBAAiBx8D,EAAM,EAAGrB,SAAA,CAAC,wBAEjJ3I,eAAA,UAAQlE,MAAO,IAAI6M,SAAW,oBAAL,KAA8B,UAGxD/M,IAAEgN,IAAIM,GAAG4L,UAAU0V,OAAO,CAAC3R,EAAStQ,IAC1BvI,eAAA,UAAQlE,MAAO+c,EAAQolB,UAAUt1B,SAA0BkQ,EAAQ3L,MAA5B2L,EAAQolB,iBAKjE,CAEAyoC,uBAAuB/nE,GACrB,IAAIqd,EAAiBmC,OAAOyI,OAAO,CAAC,EAAExnB,KAAKC,MAAM2c,eAAe,CAACmjD,UAAUxgE,EAAIwgE,UAAU5M,MAAM5zD,EAAI4zD,MAAMnI,QAAQzrD,EAAIyrD,UACrHhrD,KAAKmB,SAAS,CAAE6lE,iBAAiB,EAAKpqD,kBACxC,CAEA2qD,qBAAqB38D,GACnB,IAAIgS,EAAiBmC,OAAOyI,OAAO,CAAC,EAAExnB,KAAKC,MAAM2c,eAAe,CAACu2C,MAAMvoD,EAAMkC,OAAOpQ,QACpFsD,KAAKmB,SAAS,CAAEyb,kBAClB,CAEA4qD,uBAAuB9qE,GACrB,IAAIkgB,EAAiBmC,OAAOyI,OAAO,CAAC,EAAExnB,KAAKC,MAAM2c,eAAe,CAACouC,QAAQtuD,IACzEsD,KAAKmB,SAAS,CAAEyb,kBAClB,CAEA,wBAAM6qD,GACJ,MAAM9mE,EAAOX,KACb,IAAI0nE,EAAWtrE,KAAWoB,WAAWwC,KAAKC,MAAM2c,eAAeu2C,OAC/D,GAAIuU,EAEF,YADA1nE,KAAKmB,SAAS,CAAE8lE,uBAAwBS,EAAUR,cAAc,IAIlE,IAAItqD,EAAiBmC,OAAOyI,OAAO,CAAC,EAAE7mB,EAAKV,MAAM2c,gBAEjD9S,GAAG69D,gBAAgBn3C,WAAW5T,EAAe,KAAKqF,EAAO3I,UAAUsD,eAAgB,MAAK,GAAMrP,MAAM7E,IAClGkU,EAAiBmC,OAAOyI,OAAO,CAAC,EAAE7mB,EAAKV,MAAM2c,eAAe,CAACmjD,UAAU,KAAK5M,MAAM,KAClFnzD,KAAKmB,SAAS,CAAC+lE,cAAa,EAAMD,uBAAuB,GAAGrqD,iBAAeoqD,iBAAgB,IAC3FrmE,EAAKk+D,aAAa,IAGpB7+D,KAAKmB,SAAS,CAAC+lE,cAAa,EAAMD,uBAAuB,IAE3D,CAEAvmE,SACE,IAAI2vB,EAAU,GACV3nB,EAAO,GASX,OARIoB,GAAG2pB,UAAUzzB,KAAKimB,OAAQnc,GAAG4L,aAC/BhN,EAAO1I,KAAKimB,OAAOmF,OACI,IAApBthB,GAAGsyB,iBAEJ1zB,EAAOlM,IAAEiU,OAAO,IAAI/H,IAAOQ,IAA+B,IAAhBA,EAAK8uD,UAEjD3nC,EAAUrwB,KAAK8gD,cAGfx3C,gBAAA,OAAoBjI,UAAU,uBAAsBkI,SAAA,CAClD3I,eAACuvC,GAAW,CACV/M,UAAU,WACVnd,OAAQjmB,KAAKimB,OACb0jB,YAAa,CAAC3pC,KAAKmnE,eACnBz+D,KAAMlM,IAAEwyB,OAAOtmB,EAAM,SACrB2nB,QAASA,EACThvB,UAAU,2BACV4oC,kBAAkB,EAClBS,WAAW,EACXZ,eAAsC,IAArBhgC,GAAGsyB,eACpB2N,YAAmC,IAArBjgC,GAAGsyB,eACjB4Y,kBAAyC,IAArBlrC,GAAGsyB,eACvBhqB,QAASA,KACPpS,KAAK0I,KAAO1I,KAAKimB,OAAOmF,KAAK,IAIjC9hB,gBAACyI,KAAU,CAACG,OAAQlS,KAAKC,MAAM+mE,gBAAgBz9D,SAAA,CAC7C3I,eAACsnC,KAAW,CAAA3+B,SAAC,qCACbD,gBAAC6+B,KAAS,CAAA5+B,SAAA,CACR3I,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SAC3BD,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,WAGP3I,eAACkQ,KAAK,CAACvQ,QAASP,KAAKC,MAAMinE,aAAyBt7D,KAAK,OAAOlP,MAAOsD,KAAKC,MAAM2c,eAAeu2C,MAAOlyD,SAAUk3D,IAASn4D,KAAKunE,qBAAqBpP,EAAI,GAA5G,QAC7Cv3D,eAACgnE,KAAY,CAACn4D,QAASzP,KAAKC,MAAMinE,aAAa39D,SAAYvJ,KAAKC,MAAMgnE,wBAAlB,YAGxDrmE,eAAC8P,KAAI,CAACrP,UAAU,cAAakI,SAC3BD,gBAACsH,KAAS,CAACvP,UAAU,aAAYkI,SAAA,CAC/B3I,eAACiQ,KAAK,CAAAtH,SAAC,aAGP3I,eAAC6qC,GAAe,CAACrqC,SAAU+2D,IAASn4D,KAAKwnE,uBAAuBrP,EAAI,EAAKvrD,aAAc5M,KAAKC,MAAM2c,eAAeouC,kBAIvH1hD,gBAACs/B,KAAW,CAAAr/B,SAAA,CACV3I,eAACioC,KAAM,CAACzV,MAAM,kBAAkBqM,QAASA,KAAQz/B,KAAKynE,oBAAoB,EAAGl+D,SAAC,SAC9E3I,eAACioC,KAAM,CAACzV,MAAM,oBAAoBqM,QAASA,KAAQz/B,KAAKmB,SAAS,CAAE6lE,iBAAiB,EAAOpqD,eAAgBmC,OAAOyI,OAAO,CAAC,EAAExnB,KAAKC,MAAM2c,eAAe,CAACmjD,UAAU,KAAK5M,MAAM,MAAO,EAAI5pD,SAAC,mBAzCrL,WA8Cb,EAGaw9D,UC/Of,MAAMc,GAAaC,YAAWtpC,IACxBupC,GAAWD,YAAW7kC,IACtB+kC,GAAmBF,YAAW/iC,IAC9BkjC,GAAmBH,YAAWxkC,IAC9B4kC,GAAkBJ,YAAWhkC,IAC7BqkC,GAAmBL,YAAWxjC,IAC9B8jC,GAAsBN,YAAWrjC,IACjC4jC,GAA0BP,YAAWQ,IACrCC,GAA4BT,YAAWjjC,IACvC2jC,GAA2BV,YAAWhjC,IACtC2jC,GAAgBX,YAAW3xB,IAC3BuyB,GAAkBZ,YAAWnxB,IAC7BgyB,GAAiBb,aCjDR,SAAoBhoE,GACjC,MAAM,UAAEmpC,GAAcE,UACtB,IAAIrvB,EAAOhQ,GAAGiQ,QAAQqR,MAClB3R,EAAUjd,IAAEu/B,UAAUjiB,EAAKkiB,cAAe,CAAEC,gBAAgB,IAC5Dwb,EAAe33C,EAAMrB,MAAMmgB,OAAO64B,aACtC,MAAM4D,EAAe,CACnB32B,mBAAoB,CAAEma,UAAWplB,EAAQolB,UAAW4Y,gBACpDA,aAAcA,EACdl4B,UAAU,EACV6c,aAActyB,GAAGsyB,eACjB9lB,MAAO,GACPyE,WAAW,GACX6tD,gBAAiB,GACjBC,qBAAsB,GACtBp5B,cAAc,CACZ,UACA,QACA,SAEFq5B,oBAAoB,YAEf7oE,EAAOkB,GAAY4nE,mBAAS1tB,GAC7Bp1B,EAASnc,GAAG+Q,WAIZ4jD,EAAW3yD,UACfhC,GAAG+Q,WAAWmP,cACR/D,EAAOvC,mBAAmBzjB,EAAMykB,oBACtC,IAOIskD,EAPA5mD,EAAO,CACTyc,WACE/0B,GAAGsyB,eACC3iB,EAAQolB,WAEdghB,WAAa/1C,GAAGsyB,gBAAmBtyB,GAAGyyB,UAAgB,KAAJ,SAG9CzyB,GAAGwM,MACNia,YAAYnO,EAAM,CAAC,EAAGH,EAAO3I,UAAUmE,WAAY,CAAC,GAAG,GACvDlQ,MAAM7E,IACL,IAAIugE,EAAmBn/D,GAAGwM,MACvB8U,MACA3a,QAAQvH,GAA4B,OAAnBA,EAAK0gB,YAEzBo/C,EAAgBl/D,GAAGwM,MAChB8U,MACA5hB,KAAKN,GAASA,EAAK4d,SACnBrW,QAAQqW,GACPb,EAAOmF,MAAM3rB,MAAMyJ,GAASA,EAAK4d,SAAWA,MAG5CkiD,IACFC,EAAmBA,EAAiBz/D,KAAKN,IAAI,IACxCA,EACHggE,SAAUF,EAAczf,SAASrgD,EAAK4d,QAAU,IAAM,SAG1D3lB,GAAU68C,IAAS,IACdA,EACH4qB,gBAAiBI,EACjB1yD,MAAO2yD,KACN,UAIDn/D,GAAG6L,YACN+N,mBAAmB,CAAEmb,UAAW/0B,GAAGgyB,oBAAoB+C,YAAa,GACpEtxB,MAAKzB,UAEoC,IAApChC,GAAG6L,YAAYyV,KAAI,GAAMpsB,QAC3Bc,EAAMwxB,QAAQtqB,KAAKib,EAAOvD,QAAQuD,EAAOjN,OAAOW,cAElD,IAAI4J,EAAW/iB,IAAEu/B,UAAUjyB,GAAG6L,YAAYyV,KAAI,GAAO,CACnDqsB,aAAc15C,OAAO05C,UAGTlzC,IAAXgb,SAIOzV,GAAG6L,YAAY8a,WAAW,KAAM,KAAMxO,EAAO3I,UAAUyB,WAAY,CAAE2oB,WAAYnkB,EAASmkB,aAAcn2B,MAAKzB,UAEjH,IAAIm9D,EAAmBv+D,EACxB+F,QAAQvH,GAA4B,OAAnBA,EAAK0gB,YAEzB,MAAMu/C,EAAqBz+D,EACxBlB,KAAKN,GAASA,EAAK4d,SACnBrW,QAAQqW,GACPb,EAAOmF,MAAM3rB,MAAMyJ,GAASA,EAAK4d,SAAWA,MAG5CqiD,IACFF,EAAmBA,EAAiBz/D,KAAKN,IAAI,IACxCA,EACHggE,SAAUC,EAAmB5f,SAASrgD,EAAK4d,QAAU,IAAM,SAQ/D3lB,GAAU68C,IAAS,IACdA,EACH6qB,qBAAsBM,EACtBpuD,WAAYkuD,KACX,IAEL9nE,GAAU68C,IAAS,IACdA,EACHz+B,SAAUA,OAjCVzf,EAAMwxB,QAAQtqB,KAAKib,EAAOvD,QAAQuD,EAAOjN,OAAOW,aAmCpD,GACE,EAmGNyzD,qBAAU,KACR3K,IACO,SAGN,IAEH,IAAIpuC,EAAU,GACV3nB,EAAO,GA8CX,OA5CA2nB,EAAU,CACR,CACE2W,UAAW,WACXp1B,KAAM,WACNwB,MAAK,EACT3D,QAAQ,GAEN,CACEu3B,UAAW,YACXp1B,KAAM,aACNm7B,UAAU,GAEZ,CACE/F,UAAW,WACXp1B,KAAM,YACNm7B,UAAU,GAEZ,CACE/F,UAAW,cACXp1B,KAAM,eACNm7B,UAAU,GAEZ,CACE/F,UAAW,eACXp1B,KAAM,QACNm7B,UAAU,GAEZ,CACE/F,UAAW,OACXp1B,KAAM,OACNm7B,UAAU,IAGV9sC,EAAMqW,MAAMtX,QAAUiB,EAAMsf,WACC,YAA5Btf,EAAM6oE,sBACRpgE,EAAOzI,EAAMqW,OACiB,UAA5BrW,EAAM6oE,sBACRpgE,EAAOzI,EAAM8a,YACiB,UAA5B9a,EAAM6oE,sBACRpgE,EAAOzI,EAAMqW,MAAM7F,QACjBvH,GAA2B,MAAlBA,EAAKggE,aAKjBtoE,eAAA,OAAoBS,UAAU,uBAAsBkI,SAClD3I,eAACoxC,KAAe,CACdC,SAAS,SACTvpC,KAAMA,EACN2nB,QAASA,EACTzV,OAAQ,CACN23B,iBAAiB,GAEnB+I,SAAS,EAAK/xC,SAEZzJ,GACAwJ,gBAAA,OAAAC,SAAA,CACED,gBAAA,OAAKjI,UAAU,qCAAoCkI,SAAA,CACjD3I,eAAA,MAAA2I,SAAA,GAAA7H,OAhQJ,SAANA,OAAgBzB,EAAMsf,SAASzR,KAAO,OAAS7N,EAAMsf,SAASzR,KAAO,IAgQzC,KAAApM,OAChBzB,EAAM0gC,aAAe1gC,EAAMm8B,aAAY,IAAA16B,OAC/BzB,EAAM0gC,YAAW,KACrB,MAEN//B,eAAA,OAAKS,UAAU,sBAAqBkI,SAClCD,gBAAA,OAAKjI,UAAU,cAAakI,SAAA,CAC1B3I,eAAA,OAAKS,UAAU,YAAWkI,SAC1B3I,eAACkQ,KAAK,CAACpU,MAAOuD,EAAM6oE,oBAAqBl9D,KAAK,SAAS3K,SAAW2J,IAAYzJ,GAAU68C,IAAS,IACtGA,EACH8qB,oBAAqBl+D,EAAMkC,OAAOpQ,SACjC,EAAE6M,SACJtJ,EAAMwvC,eACLjzC,IAAEgN,IAAIvJ,EAAMwvC,eAAe,CAAC/yC,EAAOyM,IACzBvI,eAAA,UAAQlE,MAAOA,EAAM6M,SAAc7M,GAARyM,SAKzCvI,eAAA,OAAKS,UAAU,YAAWkI,SACZD,gBAAA,UACEjI,UAAU,yBACVwI,MAAM,SACN41B,QAASA,IA3LT4pC,MAClB,MAAM,gBAAET,EAAe,aAAEnxB,EAAY,qBAACoxB,EAAoB,oBAACC,GAAwB7oE,EAEnF,IAAImiB,EAAO,CACTknD,QAA+B,UAAtBR,EAA8BD,EAAqBD,EAC5DnxB,aAAcA,GAEhB3tC,GAAG+Q,WACA0V,YAAYnO,EAAM,CAAC,EAAGH,EAAO3I,UAAU0B,kBACvCzN,MAAM7E,IACL6D,QAAQC,IAAI9D,GACZ6D,QAAQC,IAAI1C,GAAG+Q,WAAWuQ,OAC1BqzC,GAAU,GACV,EA8K6B4K,GAAc9/D,SAAA,CAE7B3I,eAAA,KAAGS,UAAU,gBACbT,eAAA,QAAA2I,SAAM,cAGV3I,eAAA,SAAO2oE,QAAQ,eAAeloE,UAAU,eAAckI,SACpD3I,eAACqoC,EAAS,CACR5nC,UAAU,kCACNvB,EAAMorC,wBAMpBtqC,eAACozC,KAAc,CACb5gC,KAAM,CAAE4zB,UAAW,WAAY7D,MAAO,OACtC+P,WAAYC,KAAkB,CAC5BC,YAAa,IACbK,iBAAiB,EACjBC,yBAAyB,EACzBC,wBAAyBA,CAACC,EAAMpU,EAAIp0B,IAC3BtB,GAAGC,EAAE,8BAA8B,EAAO,CAC/C6pC,EACApU,EACAp0B,MAIN2pC,UAAW,CAETl3C,KAAM,WACNgiE,QAAS,aACT3/D,SAAsC,UAA5BD,EAAM6oE,oBAA8B7oE,EAAM4oE,qBAAqB5oE,EAAM2oE,gBAC/E3zB,SAAUA,CAAC11C,EAAK21C,EAAUxrC,EAAUzD,KA9MjCgvC,EAAC11C,EAAK21C,EAAUxrC,EAAUzD,KACzC,MAAM,oBAAC6iE,GAAuB7oE,EACxBupE,EAA6C,UAA5BvpE,EAAM6oE,oBAA+B7oE,EAAM4oE,qBAAqB5oE,EAAM2oE,iBAC5E,IAAb1zB,IACGs0B,EAAcjgB,SAAShqD,EAAIunB,SAE5B3lB,EADuB,UAAtB2nE,EACS9qB,IAAS,IACdA,EACH6qB,qBAAsB,IACjB7qB,EAAU6qB,qBACbtpE,EAAIunB,UAIEk3B,IAAS,IACdA,EACH4qB,gBAAiB,IACZ5qB,EAAU4qB,gBACbrpE,EAAIunB,aAQG,IAAbouB,GACEs0B,EAAcjgB,SAAShqD,EAAIunB,SAE3B3lB,EADuB,UAAtB2nE,EACS9qB,IAAS,IACdA,EACH6qB,qBAAsB7qB,EAAU6qB,qBAAqBp4D,QAClDvH,GAASA,IAAS3J,EAAIunB,WAIjBk3B,IAAS,IACdA,EACH4qB,gBAAiB5qB,EAAU4qB,gBAAgBn4D,QACxCvH,GAASA,IAAS3J,EAAIunB,WAKjC,EAmKcmuB,CAAS11C,EAAK21C,EAAsB,EAEtCC,YAAaA,CAACD,EAAUE,EAAMnvC,KAnKzBkvC,EAACD,EAAUE,EAAMnvC,KAClC,IAAiB,IAAbivC,EAC6B,UAA5Bj1C,EAAM6oE,oBAET3nE,GAAU68C,IAAS,IACdA,EACH6qB,qBAAsB,OAGxB1nE,GAAU68C,IAAS,IACdA,EACH4qB,gBAAiB,WAId,CACL,IAAIU,EAAQ,GACmB,UAA5BrpE,EAAM6oE,qBAETQ,EAAUrpE,EAAM8a,WAAWvR,KAAKtE,GAAQA,EAAI4hB,SAC5C3lB,GAAU68C,IAAS,IACdA,EACH6qB,qBAAsBS,QAGxBA,EAAUrpE,EAAMqW,MAAM9M,KAAKtE,GAAQA,EAAI4hB,SACvC3lB,GAAU68C,IAAS,IACdA,EACH4qB,gBAAiBU,MAIrB,GAoIcn0B,CAAYD,EAAkB,MAG9Bp1C,EAAMy1C,kBA7EX,WAoFb,ID5SMk0B,GAAe3B,YAAWf,IAC1B2C,GAAgB5B,YAAWjuB,IAC3B8vB,GAAa7B,YAAWzoB,IACxBuqB,GAAY9B,YAAWnoB,IACvBkqB,GAAkB/B,YAAWhR,IAE7BgT,GAAgBhC,YAAWltB,IAC3BmvB,GAAgBjC,YAAWnrB,IAC3BqtB,GAAiBlC,YAAWlqB,IAC5BqsB,GAAoBnC,YAAWjB,IAC/BqD,GAAwBpC,YAAW/N,IACnCoQ,GAAcrC,YAAWtM,IACzB4O,GAActC,YAAW7X,IACzBoa,GAAoBvC,YAAWpP,IAC/B4R,GAAaxC,YAAW5E,IACxBqH,GAAezC,YAAWtE,IAC1BgH,GAAoB1C,YAAWpC,IAC/B+E,GAA4B3C,YAAWzB,IACvCqE,GAAmC5C,YAAWvB,IAC9CoE,GAAoB7C,YAAWrB,IAC/BmE,GAAgB9C,YAAWlB,IAC3BiE,GAAY/C,YAAW11C,IAEvB04C,GAAgBxyD,GAAS1Y,GAAaE,IAC1C,IAAIirE,GAAa,EAOjB,OANAvuE,IAAEC,KAAK6b,GAAQ+jB,IACb,IAAItiB,EAAUjQ,GAAGiQ,QAAQqR,MACrB4/C,EAAaxuE,IAAEu/B,UAAUjyB,GAAGwO,MAAO,CAAExK,KAAMuuB,IAC3C2uC,GAAcA,EAAWl5D,GAAK,GAAKiI,EAAQoiB,SAAW6uC,EAAWl5D,KACnEi5D,EAAaA,IAAc,EAAI,IAE5BA,EAAanrE,EAAYgB,eAAA,OAAA2I,SAAK,6CAA+C,EAGtF,MAAM0hE,WAAYrrE,YAChBC,YAAYC,GACVC,MAAMD,GACNE,KAAKC,MAAQ,CACXkoB,eAAgBroB,EAAMqoB,eAE1B,CAEAznB,SACE,OACEE,eAACsqE,IAAa,CAAA3hE,SACZD,gBAAA,OAAKwI,GAAG,iBAAiBzQ,UAAW,iBAAiBkI,SAAA,CACnD3I,eAACinE,GAAU,IAAK7nE,KAAKF,MAAOqrE,YAAY,EAAOhjD,eAAgBnoB,KAAKC,MAAMkoB,iBAC1E7e,gBAAC8hE,IAAM,CAAA7hE,SAAA,CACL3I,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOC,KACpBvU,OAAQA,IAAME,eAACmnE,GAAQ,IAAK/nE,KAAKF,UAEnCc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOG,aACpBzU,OAAQA,IAAME,eAACqnE,GAAgB,IAAKjoE,KAAKF,UAE3Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOI,kBACpB1U,OAAQA,IAAME,eAACsnE,GAAe,IAAKloE,KAAKF,UAE1Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOQ,wBACpB9U,OAAQA,IAAME,eAACunE,GAAgB,IAAKnoE,KAAKF,UAE3Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOK,qBACpB3U,OAAQA,IAAME,eAACwnE,GAAmB,IAAKpoE,KAAKF,UAE9Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOM,oBACpB5U,OAAQA,IAAME,eAACynE,GAAuB,IAAKroE,KAAKF,UAElDc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOO,iBACpB7U,OAAQA,IAAME,eAAC2nE,GAAyB,IAAKvoE,KAAKF,UAEpDc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOS,qBACpB/U,OAAQA,IAAME,eAAC4nE,GAAwB,IAAKxoE,KAAKF,UAEnDc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOE,aACpBxU,OAAQA,IAAME,eAAConE,GAAgB,IAAKhoE,KAAKF,UAE3Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOU,UACpBhV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,YAA5B64C,CAAyClqE,eAAC6nE,GAAa,IAAKzoE,KAAKF,WACzE,SAEFc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOW,YACpBjV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAAC8nE,GAAe,IAAK1oE,KAAKF,WAC9F,SACFc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOkB,UACpBxV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAAC+nE,GAAc,IAAK3oE,KAAKF,WAC7F,SACDc,eAACyqE,IAAK,CACLj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOY,SACpBlV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAAC6oE,GAAY,IAAKzpE,KAAKF,WAC3F,SACFc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOc,UACpBpV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAAC8oE,GAAa,IAAK1pE,KAAKF,WAE9Fc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOqB,SACpB3V,OAAQA,IAAME,eAAC2pE,GAAY,IAAKvqE,KAAKF,UAEvCc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOoB,OACpB1V,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAAC+oE,GAAU,IAAK3pE,KAAKF,WAE3Fc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOsB,MACpB5V,OAAQA,IAAME,eAACgpE,GAAS,IAAK5pE,KAAKF,UAEpCc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOiB,UACpBvV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAACkpE,GAAa,IAAK9pE,KAAKF,WAE9Fc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOe,SACpBrV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAACmpE,GAAa,IAAK/pE,KAAKF,WAE9Fc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOgB,cACpBtV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAACopE,GAAc,IAAKhqE,KAAKF,WAE/Fc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOmB,cACpBzV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAACqpE,GAAiB,IAAKjqE,KAAKF,WAElGc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAO8B,QACpBpW,OAAQA,IACEE,eAACwpE,GAAW,IAAKpqE,KAAKF,UAGlCc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOa,cACpBnV,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAACypE,GAAiB,IAAKrqE,KAAKF,WAEjGc,eAACyqE,IAAK,CACLj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOgC,UACpBtW,OAAQA,IAAME,eAACgqE,GAAa,IAAK5qE,KAAKF,UAExCc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOuB,YACpB7V,OAAQA,IAAME,eAACipE,GAAe,IAAK7pE,KAAKF,UAE1Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAO2B,YACpBjW,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAACspE,GAAqB,IAAKlqE,KAAKF,WAEtGc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAO4B,QACpBlW,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,YAA5B64C,CAAyClqE,eAACupE,GAAW,IAAKnqE,KAAKF,WAEzEc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAO6B,OACpBnW,OAAQoqE,GAAc,CAAChhE,GAAGkoB,UAAUC,WAAWnoB,GAAGkoB,UAAUG,OAApD24C,CAA4DlqE,eAAC0pE,GAAU,IAAKtqE,KAAKF,WAE3Fc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOwB,cACpB9V,OAAQA,IAAME,eAAC4pE,GAAiB,IAAKxqE,KAAKF,UAE5Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOyB,sBACpB/V,OAAQA,IAAME,eAAC6pE,GAAyB,IAAKzqE,KAAKF,UAEpDc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAO0B,6BACpBhW,OAAQA,IACEE,eAAC8pE,GAAgC,IAAK1qE,KAAKF,UAGvDc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAO+B,cACpBrW,OAAQA,IAAME,eAAC+pE,GAAiB,IAAK3qE,KAAKF,UAE5Cc,eAACyqE,IAAK,CACJj7C,OAAK,EACLqsC,KAAMx6C,EAAOjN,OAAOqE,MACpB3Y,OAAQA,IAAME,eAACiqE,GAAS,IAAK7qE,KAAKF,aAGtCc,eAAC63D,GAAsB,CAAC3pD,IAAKhF,GAAG2wB,oBAAoB9qB,OACpD/O,eAACw3D,GAAc,CAAC3uD,MAAOzJ,KAAKF,MAAM+8B,WAClCj8B,eAACy3D,GAAc,CAAChuC,MAAOrqB,KAAKF,MAAMuqB,YAjLnB,SAqLvB,EAuBaihD,oBApBSC,CAACtrE,EAAOurE,KACvB,CACLrjD,eAAgBqjD,EAASrjD,eACzBpO,QAAS9Z,EAAM8Z,QACf9B,WAAYhY,EAAMgY,WAClBE,aAAclY,EAAMkY,aACpBszD,iBAAkBxrE,EAAMwrE,iBACxBpzD,YAAapY,EAAMoY,YACnBjB,OAAQnX,EAAMmX,OACdkjB,YAAar6B,EAAMq6B,YACnBjQ,MAAOpqB,EAAMoqB,MACbwS,SAAU58B,EAAM48B,SAChBzkB,cAAenY,EAAMmY,cACrBE,MAAOrY,EAAMqY,MACbnN,MAAOlL,EAAMkL,MACb+gD,MAAOjsD,EAAMisD,MACbvzB,cAAe14B,EAAM04B,iBAIe,KAAzB2yC,CAA+BL,IEhT/B,MAAMS,WAA6B9rE,YAC9Cc,SACI,OACIE,eAAA,OAAKS,UAAW,mCAAqCrB,KAAKF,MAAMuB,UAAYrB,KAAKF,MAAMuB,UAAY,IAAIkI,SACnG3I,eAAA,UAAQS,UAAU,uBAAuBo+B,QAASA,KAC9CngB,OAAO4iC,KAAK,kEAAkE,EAChF34C,SAAEO,GAAGC,EAAE,mBAGrB,ECLJ,MAAM4hE,WAAmB/rE,YACrBc,SACI,IAAI2pB,EAAQrqB,KAAKF,MAAMuqB,OAAS,CAAEgK,UAAW,UAAWhM,QAAS,SACjE,MAAMujD,EAAS,UAAYvhD,EAAMgK,WAAahK,EAAMvc,MACpD,IAAIua,EAAUve,GAAGC,EAAE6hE,GAAQ,GACtBvjD,IAAQA,EAAUgC,EAAMhC,SAE7B,IAAIxe,EAAQC,GAAGC,EAAE,eAAe,GAC3BF,IAAMA,EAAQ,SAEnB,IAAIgiE,IAAiBxhD,EAAMgK,WAAUhK,EAAMgK,UAAUy3C,WAAW,WAEhE,OACIlrE,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,0CAAyCkI,SAAA,CACpD3I,eAACggC,GAAS,CAAC/2B,MAAOA,EAAO+H,KAAMyW,EAAShnB,UAAU,QACjDwqE,EACGjrE,eAAA,UAAQ6+B,QAASA,IAAM31B,GAAGsX,cAAcgI,SAAU/nB,UAAU,0BAAyBkI,SAAEO,GAAGC,EAAE,iBAC9F,KACFnJ,eAAC8qE,GAAoB,CAACrqE,UAAU,oBAIhD,EASWiqE,oBANSC,CAACtrE,EAAOurE,KACrB,CACHnhD,MAAOpqB,EAAMoqB,SAImB,KAAzBihD,CAA+BK,ICnC/B,MAAMI,WAAwBnsE,YACzCc,SACI,OACIE,eAAA,OAAKS,UAAU,MAAKkI,SAChBD,gBAAA,OAAKjI,UAAU,2CAA0CkI,SAAA,CACrD3I,eAACggC,GAAS,CAAC/2B,MAAM,eAAexI,UAAU,SAC1CiI,gBAAA,OAAAC,SAAA,CACI3I,eAAA,KAAA2I,SAAG,4EACH3I,eAAA,UAAQ6+B,QAASA,IAAMngB,OAAOC,SAASwf,SAAU19B,UAAU,kBAAiBkI,SAAC,WAC7E3I,eAAA,KAAGS,UAAU,kBAAiBkI,SAAC,sIAG/BD,gBAAA,KAAGjI,UAAU,kBAAiBkI,SAAA,CAAC,wCACU3I,eAAA,KAAGqpB,KAAK,IAAIwV,QAASA,IAAMz/B,KAAKF,MAAMshB,cAAcgI,SAAS7f,SAAC,iCAAgC,0EACrG3I,eAAA,KAAGqpB,KAAK,kEAAiE1gB,SAAC,uCAMhI,E,OCtBkC3J,YC2LvBosE,OA1LAvjE,IAA4F,IAA3F,WAACwjE,EAAU,QAAE3wB,EAAO,gBAAE4wB,EAAe,iBAACC,EAAgB,oBAAEC,EAAmB,SAACvwB,GAASpzC,EACjG,MAAM4jE,EAAoBpmE,IACtB,MAAM,KAAC6H,EAAI,MAAEpR,GAASuJ,EAAE6G,OACxBs/D,GAAqBpuB,IACV,IAAIA,EAAW,CAAClwC,GAAOpR,KAChC,EAER,OACE4M,gBAAAglC,YAAA,CAAA/kC,SAAA,CACED,gBAAA,OAAKjI,UAAU,kBAAiBkI,SAAA,CAC9B3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,eACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,YACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiBviD,eAG5BtgB,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,cACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,WACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiBtiD,cAG5BvgB,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,iBACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,OACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiBr+D,UAG5BxE,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,UACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,eACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiBziD,kBAG5BpgB,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,YACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,UACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiBhoC,aAG5B76B,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,uBACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,WACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiB9R,cAG5B/wD,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,UACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,QACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiB9tE,WAG5BiL,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,SACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,OACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiB/nC,UAG5B96B,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,UACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,QACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiBlsE,WAG5BqJ,gBAAA,OAAKjI,UAAU,aAAYkI,SAAA,CACzB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,QACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLkC,KAAK,MACLzM,UACE,oEAEFJ,SAAW2J,IACTyhE,EAAiBzhE,GACjBixC,GAAU,EAEZn/C,MAAOyvE,EAAiB9nC,SAG3BiX,GAAW16C,eAAC+Q,KAAO,CAACC,KAAK,kBAC1BtI,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CACpB3I,eAAA,OAAKS,UAAU,SAASoO,OAAQw8D,EAAWjtE,QAAU,EAAEuK,SACrD3I,eAAA,OAAKS,UAAU,qBAAqBg7B,KAAK,QAAO9yB,SAC7C0iE,MAGLrrE,eAAA,OAAKS,UAAU,SAASoO,OAAQy8D,EAAgBltE,QAAU,EAAEuK,SAC1D3I,eAAA,OAAKS,UAAU,sBAAsBg7B,KAAK,QAAO9yB,SAC9C2iE,WAIN,ECzLQ,OAA0B,0CCY1B,SAASI,GAAcxsE,GACpC,IACIysE,EADazsE,EAAMuhB,SAASmrD,WACAjuE,QAAQ,eAAiB,EACzD,MAAM6iB,EAAgB,IAAIK,EAAc3hB,EAAMuhB,WACvC8qD,EAAkBC,GAAuBrD,mBAAS,CACvDn/C,UAAW,GACXC,SAAU,GACV/b,KAAK,GACL4b,aAAa,GACbya,QAAQ,GACRk2B,SAAS,GACTh8D,MAAM,GACN+lC,KAAK,GACLnkC,MAAM,GACNokC,IAAI,MAECgM,EAAao8B,GAAkB1D,mBAAS,UACxC3qE,EAAOsuE,GAAY3D,mBAAS,KAC5BztB,EAASqxB,GAAc5D,oBAAS,IAChC/mD,EAAU4qD,GAAe7D,mBAAS,KAClCkD,EAAYY,GAAiB9D,mBAAS,KACtCmD,EAAiBY,GAAsB/D,mBAAS,IACvD,SAASltB,IACPgxB,EAAc,IACd,IAAIr9B,GAAQ,EAkBZ,MAhBoB,UAAhBa,GACFb,EAAQpxC,EAAMrB,OAAOiC,OAAS,GAAKgjB,EAASjlB,OAAOiC,OAAS,EAChC,IAAxBZ,EAAMrB,OAAOiC,QAA2C,IAA3BgjB,EAASjlB,OAAOiC,QAC/C6tE,EAAc,6CACS,oBAAhBx8B,GACTb,EAAQpxC,EAAMrB,OAAOiC,OAAS,EACF,IAAxBZ,EAAMrB,OAAOiC,QAAc6tE,EAAc,mBAE7C9tD,OAAOC,KAAKmtD,GAAkBv3D,SAAQjQ,IACC,IAAjCwnE,EAAiBxnE,GAAK3F,QAAwB,aAAR2F,IACxC6qC,GAAQ,EACRq9B,EAAc,kCAChB,IAIGr9B,CACT,CACA,MAAMu9B,EAAgBA,KACpBF,EAAc,IACdC,EAAmB,GAAG,EAqExB,OACExjE,gBAAA,OAAAC,SAAA,CACE3I,eAAA,UAAQS,UAAU,cAAcoO,QAAQ,EAAMlG,SAC5C3I,eAAA,WAASS,UAAU,yBAAwBkI,SACzC3I,eAAA,KAAGqpB,KAAK,IAAI5oB,UAAU,GAAEkI,SACtB3I,eAAA,OAAKk3B,IAAK6uC,GAAMroC,IAAI,mBAI1B19B,eAAA,QAAM6O,QAAQ,EAAOpO,UAAU,cAAakI,SAC1C3I,eAAA,WAASS,UAAU,6BAA4BkI,SAC7CD,gBAAA,OAAKjI,UAAU,iBAAgBkI,SAAA,CAC7B3I,eAAA,OAAKS,UAAU,oCAAmCkI,SAChDD,gBAAA,OAAKjI,UAAU,sBAAqBkI,SAAA,CAClC3I,eAAA,OAAKS,UAAU,qBACfT,eAAA,OAAKS,UAAU,2BAA0BkI,SACvCD,gBAAA,MAAAC,SAAA,CAAI,qBAEF3I,eAAA,SAAM,iCAMdA,eAAA,OAAKS,UAAU,gFAA+EkI,SAC5FD,gBAAA,QAAMjI,UAAU,wGAAuGkI,SAAA,CACpG,WAAhB8mC,EACCzvC,eAACorE,GAAM,CACLC,WAAYA,EACZ3wB,QAASA,EACT4wB,gBAAiBA,EACjBE,oBAAqBA,EACrBD,iBAAkBA,EAClBtwB,SAAUA,IAGZvyC,gBAAAglC,YAAA,CAAA/kC,SAAA,CACED,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CACpB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,mBAGtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,OACLvK,UACE,oEAEFJ,SAAW2J,IACT8hE,EAAS9hE,EAAMkC,OAAOpQ,OACtBm/C,GAAU,EAEZn/C,MAAO0B,OAGM,UAAhBiyC,GACC/mC,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CACpB3I,eAAA,SAAOS,UAAU,qBAAoBkI,SAAC,aACtC3I,eAAA,SACEkoC,SAAUwS,EACV1vC,KAAK,WACLvK,UACE,oEAEFJ,SAAW2J,IACTgiE,EAAYhiE,EAAMkC,OAAOpQ,OACzBm/C,GAAU,EAEZn/C,MAAOslB,OAII,UAAhBquB,EACDzvC,eAAA,OAAKS,UAAU,mCAAkCkI,SAC/C3I,eAAA,KACES,UAAU,qCACVynC,SAAUwS,EACV7b,QAASA,KACPgtC,GAAgBzuB,GAA4B,UAAdA,EAAuB,kBAAoB,UACzE+uB,GAAe,EACfxjE,SACH,uBAIA,KACF+xC,GAAW16C,eAAC+Q,KAAO,CAACC,KAAK,kBAC1BtI,gBAAA,OAAKjI,UAAU,QAAOkI,SAAA,CACpB3I,eAAA,OAAKS,UAAU,SAASoO,OAAQw8D,EAAWjtE,QAAU,EAAEuK,SACrD3I,eAAA,OAAKS,UAAU,qBAAqBg7B,KAAK,QAAO9yB,SAC7C0iE,MAGLrrE,eAAA,OACES,UAAU,SACVoO,OAAQy8D,EAAgBltE,QAAU,EAAEuK,SAEpC3I,eAAA,OAAKS,UAAU,sBAAsBg7B,KAAK,QAAO9yB,SAC9C2iE,YAMXtrE,eAAA,OAAKS,UAAU,QAAOkI,SACnBgjE,EACC3rE,eAACioC,KAAM,CACLpJ,QAAS3zB,UA7KRA,WAEnB,IAAgB,IADA+vC,IAId,GAFA8wB,GAAW,GAES,UAAhBt8B,QACIjvB,EACH7H,MAAM,CAAEnb,QAAO4jB,aACfzU,MAAK,KACJ+R,OAAO0J,aAAac,QAAQ,gBAAiB,cAC7CxK,OAAOC,SAASwf,QAAQ,IAEzBlX,OAAOwC,IACNwiD,EAAcxiD,EAAMhC,QAAQ,IAEhCskD,GAAW,QAEN,GAAoB,oBAAhBt8B,QACHjvB,EACH5H,eAAe,CAAEpb,UACjBmP,MAAM7E,IACLikE,GAAW,GACXG,EACE,8DACD,IAEFjlD,OAAOwC,IACNsiD,GAAW,GACXE,EAAcxiD,EAAMhC,QAAQ,SAG9B,IACE,MAAM5O,QAAgB2H,EAAcuB,gBAAgBwpD,GACpDQ,GAAW,GACXG,EAAmB,uDAADprE,OAAwD+X,EAAQ3L,KAAI,uDACtF2+D,EAAe,QACjB,CAAE,MAAOpiD,GACPsiD,GAAW,GACXE,EAAcxiD,EAAMhC,QACtB,CAwBN,EA+GoB2kD,EAAc,EAEhB3rE,UAAU,kCAAiCkI,SAG1B,oBAAhB8mC,EAAoC,iBAAmBA,EAAYx9B,gBAEpE,OAENjS,eAAA,MAAA2I,SAAI,8BACa,UAAhB8mC,EACDzvC,eAACygC,KAAI,CAAChgC,UAAU,cAAakI,SAC3BD,gBAACm4B,KAAQ,CAAAl4B,SAAA,CACTD,gBAAA,OAAKjI,UAAU,+BAA8BkI,SAAA,CAC3CD,gBAAA,OAAKjI,UAAU,qBAAoBkI,SAAA,CACjC3I,eAAA,MAAA2I,SAAI,qBACJ3I,eAAA,KAAA2I,SAAG,wEAEH3I,eAAA,OAAKk3B,IAAKm1C,GAAa3uC,IAAI,QAE/B19B,eAACioC,KAAM,CACLpJ,QAASA,KACTgtC,GAAgBzuB,GAA4B,WAAdA,EAAyB,QAAU,WACjE+uB,GAAe,EAEjB1rE,UAAU,wBAAuBkI,SACf,WAAhB8mC,EAA2B,QAAU,iBAIrC/mC,gBAAA,QAAMjI,UAAU,SAAQkI,SAAA,CAAC3I,eAAA,KAAA2I,SAAoB,oBAAhB8mC,EAAkC,WAAW,6BAC9EzvC,eAAA,KACES,UAAU,OACVo+B,QAASA,KACPgtC,GAAgBzuB,GAA4B,WAAdA,EAAyB,QAAU,WACjE+uB,GAAe,EACfxjE,SACH,yBASXD,gBAAA,OAAKmG,QAAQ,EAAMpO,UAAU,8BAA6BkI,SAAA,CACxDD,gBAAA,OAAAC,SAAA,CACED,gBAAA,OAAKjI,UAAU,mBAAkBkI,SAAA,CAC/BD,gBAACoH,KAAI,CAAAnH,SAAA,CACHD,gBAACsH,KAAS,CAAArH,SAAA,CACR3I,eAACiQ,KAAK,CAACxP,UAAU,qBAAoBkI,SAAC,mBACtC3I,eAAA,SACEgL,KAAK,OACLvK,UACE,oEAEFJ,SAAW2J,IACT8hE,EAAS9hE,EAAMkC,OAAOpQ,OACtBm/C,GAAU,EAEZn/C,MAAO0B,OAGXkL,gBAACsH,KAAS,CAAArH,SAAA,CACR3I,eAACiQ,KAAK,CAACxP,UAAU,qBAAoBkI,SAAC,aACtC3I,eAAA,SACEgL,KAAK,WACLvK,UACE,oEAEFJ,SAAW2J,IACTgiE,EAAYhiE,EAAMkC,OAAOpQ,OACzBm/C,GAAU,EAEZn/C,MAAOslB,OAGXphB,eAACgQ,KAAS,CACRnB,OAAQw8D,EAAWjtE,QAAU,EAC7BqC,UAAU,kCAAiCkI,SAE3C3I,eAACiQ,KAAK,CAAAtH,SAAE0iE,SAIZrrE,eAAA,OAAA2I,SACGgjE,EACC3rE,eAAA,UACE6+B,QAAS3zB,UACH+vC,WACIz6B,EACH7H,MAAM,CAAEnb,QAAO4jB,aACfzU,MAAK,KACJ+R,OAAO0J,aAAac,QAClB,gBACA,cAEFxK,OAAOC,SAASwf,QAAQ,IAEzBlX,OAAOwC,IACNwiD,EAAcxiD,EAAMhC,QAAQ,GAElC,EAEFhnB,UAAU,kCAAiCkI,SAC5C,UAGC,UAGR3I,eAAA,OAAKS,UAAU,wBAEjBT,eAAA,OAAKS,UAAU,gBAIvB,CC7Ve,SAAS6rE,GAAcptE,GAClC,OACIwJ,gBAAA,OAAKjI,UAAU,yCAAwCkI,SAAA,CACnD3I,eAAA,MAAA2I,SAAI,UACJ3I,eAAA,KAAA2I,SAAIzJ,EAAMuqB,MAAMhC,UAChBznB,eAAA,OAAKS,UAAU,gBAAekI,SAC1B3I,eAAA,UAAQS,UAAU,8BAA8Bo+B,QAASA,KACrD1gB,OAAOC,KAAKgK,cAAcpU,SAAQjQ,IACJ,IAAtBA,EAAIpG,QAAQ,OAAYyqB,aAAae,WAAWplB,EAAI,IAE5DqkB,aAAae,WAAW,iBACxBzK,OAAOC,SAAW,GAAG,EACvBhW,SAAC,yCAInB,C,qBCnBO,SAASmZ,GAAStR,GACjB,kBAAmB+7D,WACnB7tD,OAAOpP,iBAAiB,QAAQ,MAOxC,SAAyBk9D,EAAOh8D,GAC5B+7D,UAAUE,cAAc3qD,SAAS0qD,EAAO,CAAEE,MAAO,OAAQ//D,MAAKggE,IAC1DA,EAAaC,cAAgB,MAAQ,IACtC3lD,OAAMwC,IACL9d,QAAQ8d,MAAM,4CAA6CA,EAAM,GAEzE,CAXYojD,CADW,GAAA/rE,OAAMod,yBAAsB,qBACjB,GAGlC,CC0CAhT,eAAeyN,GAAM+H,EAAWD,EAASiI,GACvC,IACE/c,QAAQC,IAAI,eAAiB8U,GAC7B,MAAMF,EAAgB,IAAIK,EAAcJ,GACpCD,EAAcmR,kBACVnR,EAAcmR,aAGtBhmB,QAAQC,IAAI,iBAAD9K,aAAwB0f,EAAc8I,oBACjD,IAAIwjD,EAAgBpuD,OAAOC,SAAS0K,KAAK0jD,oBAAoBpvE,QAAQ,WAAa,GAAK+gB,OAAOC,SAAS0K,KAAK0jD,oBAAoBpvE,QAAQ,kBAAoB+gB,OAAOC,SAAS0K,KAAK0jD,oBAAoBpvE,QAAQ,gCAAkC,EAI/O,IAHoB,IAAhBmvE,SACatsD,EAAc8I,kBAG7B9I,EAAcwsD,YACbtuD,SAAWA,OAAOuuD,SAAWvuD,OAAOwuD,OAGrC,YADAvhE,QAAQC,IAAI,yCAalBV,eAA0BsV,EAAeC,EAAUC,EAAU6G,GAC3D,MAAMkB,EAAM,IAAIlI,EAAIC,EAAeC,EAAS1c,IAAK2c,GAC3C0J,EAAQ+iD,YACZC,EACAC,YAAgBC,IAAMC,kBAAkB9kD,KAE1C/J,OAAOxV,GAAK,IAAI6mB,EAAc3F,EAAO5J,EAAeiI,GACpD,IAAI+kD,QAAgB9uD,OAAOxV,GAAGyoB,WAAWpK,GAEzC,IAAIkmD,EAAY,KAChB,GAAID,EAAS,CACXC,EAAYztE,eAACqqE,GAAG,CAAC9iD,eAAgBA,IACrBlG,EAAO/C,aACTovD,MACRhvD,OAAOgS,QAAQi9C,aAAa,CAAC,EAAGt+D,SAASpG,MAAO,IAEpD,KAAO,CACL,IAAI5J,EAAQ+qB,EAAML,WAClBpe,QAAQC,IAAIvM,EAAMoqB,OAMdgkD,EALApuE,EAAMoqB,QAEoB,gBAA1BpqB,EAAMoqB,MAAMgK,WACc,gBAA1Bp0B,EAAMoqB,MAAMgK,WAEAzzB,eAAC4tE,GAAU,CAACptD,cAAeA,IAK7BxgB,eAAC+qE,GAAU,GAE3B,CAEA8C,IAAS/tE,OACPE,eAAC8tE,IAAQ,CAAC1jD,MAAOA,EAAMzhB,SAAE8kE,IACzBp+D,SAASspB,eAAe,QAE5B,CA9CIhH,CAAWnR,EAAeC,EAAUC,GAAYosD,EAClD,CAAE,MAAOznE,GACPwoE,IAAS/tE,OACPE,eAACssE,GAAa,CAAC7iD,MAAOpkB,IACtBgK,SAASspB,eAAe,QAE5B,CACF,EAtDA,iBACEo1C,IACAtB,KACA,IAAIhsD,EAAW,CAAE1c,IAAK,KAAM6nE,WAAY,CAAC,eACrClrD,EAAYhC,OAAO0J,aAAaC,QAAQ,iBAE5C,IAAoB,KADA3J,OAAOC,SAAS0K,KAAK0jD,oBAAoBpvE,QAAQ,WAAa,GAAK+gB,OAAOC,SAAS0K,KAAK0jD,oBAAoBpvE,QAAQ,iBAAkB,GAAK+gB,OAAOC,SAAS0K,KAAK0jD,oBAAoBpvE,QAAQ,gCAAiC,GAE/Ogb,GAAM+H,EAAWD,OAEf,KAAKC,EAWP,YAVAmtD,IAAS/tE,OACPE,eAAC0rE,GAAa,CACZjrD,SAAUA,EACVutD,kBAAmBA,CAAC/wE,EAAKyrB,KACvBhK,OAAO0J,aAAac,QAAQ,gBAAiBjsB,GAC7C0b,GAAM1b,EAAMwjB,EAASiI,EAAY,IAGrCrZ,SAASspB,eAAe,SAI1BhgB,GAAM+H,EAAWD,EACnB,CACD,CAxBD,E,kCCvBA,6BAIe,KACX/V,KAAMA,CAACC,EAAU7C,KACb,IAAImmE,EAAa,GACjBryE,IAAEC,KAAKiM,GAAM,SAAUnJ,GACnB,IAAIuvE,EAAYtyE,IAAEgN,IAAIjK,GAAK,SAAUktC,GACjC,MAAoB,qBAATA,GAAgC,MAARA,EACxBA,EAAK3vC,WAAW2D,QAAQ,KAAM,MAE9B,EAEf,IACAouE,GAAc,IAAMC,EAAU7vD,KAAK,OAAS,KAChD,IAEAxT,IAAMC,OAAO,IAAIC,KAAK,CAACkjE,GAAa,CAAEjjE,KAAM,aAAeL,EAAW,OAAO,EAGjFW,WAAYA,CAAC6iE,EAASC,KAGlBA,EAAgBA,GAAgB,IA2BhC,IAxBA,IAAIC,EAAa,IAAIC,OAGb,MAAQF,EAAR,iDAMYA,EAAe,aAE/B,MAKAG,EAAU,CAAC,IAIXC,EAAa,KAIVA,EAAaH,EAAW7vE,KAAK2vE,IAAU,CAG1C,IAiBIM,EAjBAC,EAAsBF,EAAW,GAOjCE,EAAoBtwE,QACpBswE,IAAwBN,GAKxBG,EAAQnoE,KAAK,IASbooE,EAAW,GAKa,eAFxBC,EAAkBD,EAAW,GAAG3uE,QAAQ,IAAIyuE,OAAO,KAAQ,KAAM,QAG7DG,EAAkB,IAItBA,EAAkBD,EAAW,GAKjCD,EAAQA,EAAQnwE,OAAS,GAAGgI,KAAKqoE,EACrC,CAGA,IAAIE,EAAc,GAOlB,OANAJ,EAAQv6D,SAASrV,IACQ,KAAjBA,EAAI0f,KAAK,KACbswD,EAAYvoE,KAAKzH,EAAI,IAIjBgwE,CAAW,E","file":"static/js/main.2f7c9dbc.chunk.js","sourcesContent":["/* eslint no-useless-escape: 0 */\r\nimport _ from 'underscore';\r\n\r\nexport const Validators = {\r\n oneRequired:(values) =>{\r\n let oneHasValue = true;\r\n _.each(values,(value)=>{\r\n oneHasValue = oneHasValue && value.value !== value.default;\r\n });\r\n return oneHasValue;\r\n },\r\n required: (value) => {\r\n if (_.isEmpty(value)){ \r\n return \"Value is required.\"\r\n }\r\n if (!value.toString().trim()){\r\n return \"Value is required.\"\r\n }\r\n },\r\n requiredNumber: (value) => { \r\n if (!value || _.isUndefined(value) || _.isNull(value) ){\r\n return \"Value is required.\"\r\n }\r\n },\r\n number: (value) => {\r\n if (!value)return;\r\n var vparsed = parseFloat(value);\r\n if (_.isNaN(vparsed) || !_.isNumber(vparsed)) {\r\n return \"Value is not a valid number.\"\r\n }\r\n },\r\n numberOnly: (value) => {\r\n if (!value)return;\r\n var vparsed = parseFloat(value);\r\n if (_.isNaN(vparsed) || !_.isNumber(vparsed)) {\r\n return \"Value is not a valid number.\"\r\n }\r\n var re = /[^\\d|\\-|\\.]/;\r\n if (re.test(value)){\r\n return \"Value is not a valid number.\"\r\n }\r\n }, \r\n positiveNumber: (value) => {\r\n if (!value || _.isUndefined(value) || _.isNull(value) || value < 0){\r\n return \"A positive numeric value is required.\"\r\n }\r\n },\r\n positiveIntegerAsPercentage: (value, context, mode) => {\r\n if (!value || _.isUndefined(value) || _.isNull(value)){\r\n return \"A positive integer value is required.\"\r\n }\r\n\r\n let numericValue = Number(value);\r\n if (isNaN(numericValue)){\r\n return \"A positive integer value is required.\"\r\n }\r\n\r\n if (mode !== 'import'){ \r\n numericValue = Math.floor(numericValue * 100);\r\n }\r\n \r\n if (numericValue <= 0 || !Number.isInteger(numericValue)){\r\n return \"A positive integer value is required.\"\r\n }\r\n }, \r\n percentage: (value) => {\r\n if (!value)return;\r\n var vparsed = parseFloat(value);\r\n if (_.isNaN(vparsed) || !_.isNumber(vparsed)) {\r\n return \"Value is not a valid percentage.\"\r\n }\r\n },\r\n email: function(value){ \r\n if (!value)return; \r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (!re.test(value)){\r\n return \"Value is not a valid email address.\"\r\n } \r\n },\r\n phone:function(value){\r\n if (!value)return; \r\n var re = /^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$/;\r\n if (!re.test(value)){\r\n return \"Value is not a valid phone number.\"\r\n } \r\n },\r\n noColon: function(value){\r\n if (value.indexOf(':') > -1){\r\n return 'Value may not contain colons (:).'\r\n }\r\n },\r\n noWhitespace: function(value){\r\n if (value.match(/\\s/)){\r\n return 'Value may not contain whitespace.'\r\n }\r\n },\r\n alphaOnly: function(value){\r\n if (value.match(/[\\W\\d]/g)){\r\n return 'Value may only contain alphabetic characters.';\r\n }\r\n },\r\n domainName: function(value, tenant){\r\n if (value.toLowerCase().indexOf(tenant.Name + '_') !== 0){\r\n return 'Domain name must begin with tenant name, followed by an underscore.'\r\n }\r\n },\r\n length50: function(value){\r\n if (value.toString().length > 50){\r\n return 'Value may not exceed 50 characters.'\r\n }\r\n },\r\n length100: function(value){\r\n if (value.toString().length > 100){\r\n return 'Value may not exceed 100 characters.'\r\n }\r\n },\r\n length200: function(value){\r\n if (value.toString().length > 200){\r\n return 'Value may not exceed 100 characters.'\r\n }\r\n },\r\n tenantName: function(value){\r\n if (value.toString().length < 3){\r\n return 'Value may not be less than 3 characters.'\r\n }\r\n if (value.toString().length > 63){\r\n return 'Value may not exceed 63 characters.'\r\n }\r\n\r\n let regex = /[^a-z0-9-]/gm;\r\n if (regex.exec(value) !== null){\r\n return 'Value may only contain lowercase letters, numbers, or hyphens.'\r\n } \r\n \r\n if (value[0] === '-' || value[value.length -1] === '-'){\r\n return 'Value may not begin or end with a hyphen.'\r\n }\r\n }\r\n}\r\n\r\nexport function Validate(value, validators, context, mode,row){\r\n var firstError = null;\r\n if (validators){\r\n validators.some((valFunc) => {\r\n return firstError = valFunc(value, context, mode,row);\r\n });\r\n }\r\n\r\n return firstError || null;\r\n}","/* eslint no-return-assign: 0 */\r\nimport React, { Component } from \"react\";\r\n// import MonthPicker from \"./MonthPicker\";\r\nimport Dates from \"../util/Dates\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nexport default class DateEditField extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={\r\n selected : Dates.fromISO(this.props.value)\r\n }\r\n }\r\n getValue() {\r\n let date = this.state.selected;\r\n return date && date.invalid ==null ? date.toISO().replace(':00.000Z','') : '';\r\n }\r\n\r\n render() {\r\n let selected =this.state.selected; \r\n let self = this;\r\n return (\r\n {\r\n selected = date ? Dates.fromDate(date).toISO() : '';\r\n self.setState({selected: selected ? Dates.fromISO(selected):null});\r\n if(this.props.onUpdate)\r\n this.props.onUpdate(selected);\r\n }}\r\n className=\"form-control\"\r\n timeInputLabel={this.props.hideTime?false:\"Time:\"}\r\n showTimeSelect={this.props.hideTime?false:true}\r\n dateFormat={`${this.props.hideTime?'MM/dd/yyyy':'MM/dd/yyyy h:mm aa'} `}\r\n /> \r\n );\r\n }\r\n}\r\n","const { DateTime, Settings } = require(\"luxon\");\r\n\r\n// Settings.defaultZoneName = \"utc\";\r\nlet localOffset = - (new Date().getTimezoneOffset() / 60);\r\n\r\nconst Dates = {\r\n isoCache: {},\r\n arbCache: {},\r\n arbCacheDayJs: {},\r\n DATETIME_MED: DateTime.DATETIME_MED,\r\n DATETIME_LONG: { month: 'long', day: 'numeric', year: 'numeric', hour: 'numeric', minute: '2-digit', literal: '' },\r\n DATE_SHORT: 'L/d/y',\r\n DATE_SHORT_FULL_YEAR: 'L/d/yyyy',\r\n SLOT_FORMAT:'LL/dd/yyyy hh:mm a',\r\n DATE_PREF: 'L/y',\r\n MONTH_YEAR: { month: 'long', year: 'numeric' },\r\n MONTH_SHORT: { month: 'short' },\r\n MONTH_YEAR_SHORT: { month: 'short', year: 'numeric' },\r\n epicBegin: DateTime.utc(1970, 1, 1).startOf('year'),\r\n epicEnd: DateTime.utc(2100, 12, 31).startOf('year'),\r\n epicDayRange: null, \r\n epicMonthRange: null,\r\n epicYearRange: null, \r\n usableBegin: DateTime.fromMillis(946702800000),\r\n usableEnd: DateTime.fromMillis(2082690000000), \r\n visualizableBegin: DateTime.local().plus({ years: -5 }).startOf('year'),\r\n visualizableEnd: DateTime.local().plus({ years: 10 }).endOf('year'), \r\n now: () => {\r\n return DateTime.local();\r\n },\r\n fromISO: (str, zone=null) => {\r\n if (!Dates.isoCache[str]) {\r\n Dates.isoCache[str] = DateTime.fromISO(str, { zone: zone });\r\n }\r\n return Dates.isoCache[str];\r\n },\r\n fromStr: (str, format) => {\r\n let formatStr = format || Dates.DATE_SHORT;\r\n let key = str + ':' + formatStr;\r\n\r\n if (!Dates.arbCache[key]) { \r\n Dates.arbCache[key] = DateTime.fromFormat(str, formatStr);\r\n }\r\n return Dates.arbCache[key];\r\n },\r\n fromDate: (jsDate) => { \r\n return DateTime.fromJSDate(jsDate);\r\n }, \r\n fromMs: (ms) => {\r\n return DateTime.fromMillis(ms);\r\n },\r\n fromObject: (obj) => {\r\n return DateTime.fromObject(obj);\r\n },\r\n toMonthYearStr(dt) {\r\n return dt.toLocaleString(Dates.MONTH_YEAR);\r\n },\r\n toMonthYearStrShort(dt) {\r\n return dt.toLocaleString(Dates.MONTH_YEAR_SHORT);\r\n },\r\n toMonthStrShort(dt) {\r\n return dt.toLocaleString(Dates.MONTH_SHORT);\r\n },\r\n toDateShort(dt){\r\n return dt.toLocaleString(Dates.DATE_SHORT);\r\n },\r\n toDateString(dt){\r\n return dt.toLocaleString(\"LL/dd/yyyy\");\r\n },\r\n toDateTime(dt){\r\n return dt.toFormat(Dates.SLOT_FORMAT);\r\n }, \r\n toJS(dt){\r\n return new Date(dt.toISO().replace(':00.000Z',''));\r\n },\r\n toGroupedStr(dt, grouping) {\r\n let g = grouping.toLowerCase();\r\n if (g === 'year') {\r\n return dt.year;\r\n } else if (g === 'quarter') {\r\n return 'Q' + dt.quarter + ' ' + dt.year;\r\n } else {\r\n return dt.toLocaleString(Dates.MONTH_YEAR);\r\n }\r\n },\r\n isValidDateStr: (str) => {\r\n try{ \r\n let attempt1 = Dates.fromStr(str, Dates.DATE_SHORT_FULL_YEAR);\r\n if (!attempt1.isValid){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n }catch(e){\r\n return false;\r\n }\r\n },\r\n isoToDateTime: (str, format) => {\r\n if (!str) return null; \r\n let dt = Dates.fromISO(str).plus({ hours: localOffset });\r\n return dt.toLocaleString(format || Dates.DATETIME_MED);\r\n },\r\n convertDateStringWithT(dateString) {\r\n // Split the date string into its components\r\n \r\n let [datePart, timePart] = dateString.split('T');\r\n \r\n // Further split the date part into month, day, and year\r\n let [year, month, day] = datePart.split('-');\r\n\r\n // Remove leading zero from the month\r\n month = parseInt(month, 10).toString();\r\n\r\n // Reassemble the date string\r\n return `${month}/${day}/${year}`;\r\n },\r\n _getArrayOfDatesInternal(unit, begin, end) {\r\n let output = [];\r\n let counter = begin;\r\n while (counter <= end) {\r\n output.push(counter);\r\n counter = counter.plus({ [unit]: 1 });\r\n }\r\n return output;\r\n },\r\n getArrayOfDays(begin, end) {\r\n if (!Dates.epicDayRange) { \r\n Dates.epicDayRange = Dates._getArrayOfDatesInternal('day', Dates.epicBegin, Dates.epicEnd);\r\n } \r\n let beginIndex = Math.floor(begin.diff(Dates.epicBegin, 'days').days);\r\n let endIndex = Math.ceil(end.diff(Dates.epicBegin, 'days').days);\r\n\r\n return { dates: Dates.epicDayRange.slice(beginIndex, endIndex), beginIndex, endIndex };\r\n }, \r\n getArrayOfMonths(begin, end, isNewStyle) {\r\n if (!Dates.epicMonthRange) {\r\n Dates.epicMonthRange = Dates._getArrayOfDatesInternal('month', Dates.epicBegin, Dates.epicEnd);\r\n }\r\n\r\n let beginIndex = ((begin.year - 1970) * 12) + begin.month - 1;\r\n let endIndex = ((end.year - 1970) * 12) + end.month;\r\n \r\n return { dates: Dates.epicMonthRange.slice(beginIndex, endIndex), beginIndex, endIndex };\r\n },\r\n getArrayOfYears(begin, end) {\r\n if (!Dates.epicYearRange) {\r\n Dates.epicYearRange = Dates._getArrayOfDatesInternal('year', Dates.epicBegin, Dates.epicEnd);\r\n } \r\n let beginIndex = begin.year - 1970;\r\n let endIndex = end.year - 1970 + 1;\r\n\r\n return { dates: Dates.epicYearRange.slice(beginIndex, endIndex), beginIndex, endIndex };\r\n },\r\n currentMonthPlusYears(years) {\r\n let today = DateTime.local();\r\n return [today, today.plus({ years: years })];\r\n },\r\n getMonthRangeFromMonthYearStrs(begin, end, years) {\r\n let output = []; \r\n if (begin) {\r\n output[0] = Dates.fromStr(begin, Dates.DATE_PREF);\r\n } else {\r\n output[0] = DateTime.local().startOf('month');\r\n }\r\n\r\n if (end) {\r\n output[1] = Dates.fromStr(end, Dates.DATE_PREF);\r\n } else {\r\n output[1] = output[0].plus({ months: (12 * (years || 3)) - 1 });\r\n }\r\n return output;\r\n },\r\n doRangesOverlap(a, b, c, d) {\r\n return (a >= c && a <= d) || (b >= c && b <= d) || (a >= c && b <= d);\r\n },\r\n doMonthRangesOverlap(range1, range2) {\r\n if (range1.beginIndex < range2.beginIndex && range2.beginIndex < range1.endIndex) { \r\n return true;\r\n }\r\n if (range1.beginIndex < range2.endIndex && range2.endIndex < range1.endIndex) {\r\n return true;\r\n }\r\n if (range2.beginIndex <= range1.beginIndex && range1.endIndex <= range2.endIndex) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n};\r\n\r\nexport default Dates;","/* global EM */\r\nimport React from 'react';\r\nimport _ from 'underscore';\r\n\r\nconst CsvFileViewer = ({data, errors, statuses, cellFormatter, className, limitTo, hideLimitWarning}) => {\r\n if (!data)return null;\r\n \r\n let errMsgGroups = _.indexBy(errors, (item, index) => {\r\n return item[0];\r\n });\r\n\r\n let limit = limitTo || 1000;\r\n let limitedData = data.slice(0, limit);\r\n\r\n return (\r\n
\r\n \r\n \r\n {limitedData.map((items, rowIndex) => { \r\n return( \r\n \r\n \r\n {items.map((value, colIndex) => { \r\n let msgs = errMsgGroups[rowIndex + ':' + colIndex];\r\n if (msgs){\r\n return \r\n }else{\r\n return \r\n }\r\n })}\r\n { statuses ? \r\n \r\n : null }\r\n \r\n ); \r\n })}\r\n \r\n
{rowIndex + 1}{cellFormatter?cellFormatter(rowIndex, colIndex, value):value}{cellFormatter?cellFormatter(rowIndex, colIndex, value):value}\r\n {rowIndex === 0 ? 'Status' : statuses[rowIndex]}\r\n
\r\n { data.length > limit && !hideLimitWarning ? \r\n
\r\n  {EM.t('util.table.limitWarning', null, [limit])}\r\n
\r\n : null }\r\n
\r\n );\r\n};\r\n\r\nexport default CsvFileViewer;","/* global EM */\r\nimport CSV from './CSV';\r\nimport saver from 'file-saver';\r\n\r\nconst File = {\r\n read: (ctrl) => {\r\n var reader = new FileReader();\r\n return new Promise(function (resolve, reject) {\r\n reader.onload = function () {\r\n let fileContents = reader.result;\r\n\r\n //remove zero-width spaces and various other control characters\r\n fileContents = fileContents.replace(/[\\u200B-\\u200D\\uFEFF\\u200E]/g, '');//\\u200F\\u0000-\\u001F\\u007F-\\u009F\r\n\r\n //remove non-breaking spaces from text\r\n fileContents = fileContents.replace(/\\u00A0/g, ' ');\r\n\r\n resolve(fileContents);\r\n };\r\n\r\n reader.onerror = function (event) {\r\n reject(new Error('File could not be read.'));\r\n };\r\n\r\n let fileSizeLimitSetting = parseInt(EM.getTenantOption('fileSizeLimit'));\r\n let sizeLimit = isNaN(fileSizeLimitSetting) ? 10485760 : fileSizeLimitSetting; \r\n let sizeLimitInMb = (sizeLimit/1048576).toFixed(2);\r\n\r\n if (ctrl.files[0].size > sizeLimit){\r\n reject(new Error('File is too large. Maximum file size is ' + sizeLimitInMb + ' MB.'));\r\n return;\r\n }\r\n\r\n reader.readAsText(ctrl.files[0]);\r\n });\r\n },\r\n\r\n save: (filename, data, mime) => {\r\n saver.saveAs(new Blob([data], { type: (mime || \"text/plain\") + ';charset=utf-8' }), filename);\r\n },\r\n\r\n readCSV: async (ctrl, allowBlankFiles) => {\r\n let fileContents = await File.read(ctrl);\r\n if (!fileContents) {\r\n throw new Error(EM.t('error.csv-no-data'));\r\n }\r\n\r\n let csvContents = CSV.fromString(fileContents.trim());\r\n if (csvContents.length < 2 && !allowBlankFiles) {\r\n throw new Error(EM.t('error.csv-no-data'));\r\n }\r\n\r\n return csvContents;\r\n },\r\n\r\n readCsvOrXml: async (ctrl, conversionFunc, allowBlankFiles) => {\r\n let fileContents = await File.read(ctrl);\r\n if (!fileContents) {\r\n throw new Error(EM.t('error.csv-no-data'));\r\n }\r\n\r\n let contents = fileContents.trim();\r\n if (contents.indexOf('' + html + '';\r\n\r\n File.save(filename + '.xls', output, mime);\r\n }\r\n}\r\n\r\nexport default File;\r\n","/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\n\r\nexport default class PercentageEditField extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n value: null\r\n }\r\n }\r\n\r\n getValue(){\r\n return this.state.value;\r\n }\r\n\r\n render() {\r\n let dv = this.props.value ? (this.props.value * 100).toFixed(0) : (this.props.defaultPercentage);\r\n\r\n return (\r\n {\r\n let newValue = event.target.value;\r\n if (newValue){\r\n this.setState({ value: newValue / 100 });\r\n if(this.props.onChange)this.props.onChange({ target: { value: newValue / 100 }});\r\n }\r\n }} onBlur={(event) => {\r\n let newValue = event.target.value;\r\n if (newValue){\r\n if (this.props.onUpdate)this.props.onUpdate(newValue / 100);\r\n this.setState({ value: newValue / 100 })\r\n event.target.blur();\r\n }\r\n }}/> \r\n );\r\n }\r\n}","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport Creatable from 'react-select/creatable';\r\n\r\nexport default class WorkItemSelector extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tasks: [],\r\n currentValue: this.props.value || ''\r\n }\r\n }\r\n\r\n componentDidMount(){\r\n EM.schedules.loadDefaultItem().then((defaultSchedule) => {\r\n if (!defaultSchedule)return;\r\n EM.schedules.loadFile(defaultSchedule.ScheduleId).then(() => {\r\n let fileContents = EM.schedules.getFile(defaultSchedule.ScheduleId);\r\n if (fileContents){\r\n let filters = fileContents.getFilterValues();\r\n let workitems = filters.find((item) => { return item.name === 'workitem' });\r\n let tasks = workitems.values.map((wi) => {\r\n return { label: wi, value: wi };\r\n });\r\n\r\n let addTaskList = EM.getSetting('AdditionalTasks'); \r\n if (addTaskList){\r\n addTaskList.split(',').map((task) => {\r\n return tasks.push({ value: task.trim(), label: task.trim() });\r\n });\r\n }\r\n\r\n this.setState({ tasks });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n let cv = this.state.currentValue;\r\n let value = cv ? { value: cv, label: cv } : this.props.value;\r\n return (\r\n { return EM.t('util.select-create', null, [input]) }}\r\n value={value} \r\n ref={this.props.innerRef} \r\n onChange={(selected) => {\r\n this.setState({ currentValue: selected ? selected.value.trim() : null });\r\n if (this.props.onChange)this.props.onChange(selected);\r\n if (this.props.onUpdate)this.props.onUpdate(selected ? selected.value.trim() : null);\r\n }} \r\n />\r\n );\r\n }\r\n};","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\nimport cs from 'classnames';\r\n\r\nexport default class AssignmentStatusEditField extends Component {\r\n componentDidMount() {\r\n const { defaultValue, didMount } = this.props;\r\n this.select.value = defaultValue;\r\n this.select.focus();\r\n if (didMount) didMount();\r\n }\r\n\r\n getValue() {\r\n return this.select.value.toString();\r\n }\r\n\r\n render() {\r\n const { defaultValue, className } = this.props;\r\n const editorClass = cs('form-control editor edit-select', className);\r\n \r\n const attr = {\r\n className: editorClass\r\n };\r\n\r\n return (\r\n this.select = node }\r\n defaultValue={ defaultValue }\r\n onChange={() => {\r\n if (this.props.onUpdate)this.props.onUpdate(this.getValue());\r\n this.select.blur();\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n}","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { Form, FormGroup, Input, Label } from \"reactstrap\";\r\n\r\nexport default class CheckBoxEditField extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n groupName: this.getGroupName(),\r\n hidden: false,\r\n selected: this.props.value || [],\r\n };\r\n this.wrapperRef = React.createRef();\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n this.onChangeOption = this.onChangeOption.bind(this);\r\n }\r\n componentDidMount() {\r\n if (this.props.sticky === false)\r\n document.addEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.sticky === false)\r\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n handleClickOutside(event) {\r\n let self = this;\r\n if (this.props.sticky === false) {\r\n if (this.wrapperRef && !this.wrapperRef.current.contains(event.target)) {\r\n //close this\r\n this.setState({ hidden: true }, () => {\r\n if (this.props.onUpdate) this.props.onUpdate(self.getValue());\r\n });\r\n return;\r\n }\r\n if (this.state.hidden === true) this.setState({ hidden: false });\r\n }\r\n }\r\n\r\n getGroupName() {\r\n return `${Math.random() * (999999999 - 111111111) + 111111111}`;\r\n }\r\n\r\n getValue() {\r\n return this.state.selected;\r\n }\r\n\r\n onChangeOption(event, value) {\r\n let selected = [...this.state.selected];\r\n if (event.target.checked === true && !_.contains(selected, value))\r\n selected.push(value);\r\n else if (event.target.checked === false)\r\n selected = _.filter(selected, (item) => {\r\n return item !== value;\r\n });\r\n\r\n this.setState({ selected });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import { CKEditor } from 'ckeditor4-react';\r\n\r\nfunction CKEditorInput(props) {\r\n const initializeEditor = (editor) => {\r\n if (props.value) {\r\n editor.setData(props.value);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n props.onChange(e.editor.getData())}\r\n editorUrl=\"https://cdn.ckeditor.com/4.18.0/standard-all/ckeditor.js\"\r\n config={{\r\n versionCheck: false,\r\n on: {\r\n instanceReady: (event) => {\r\n initializeEditor(event.editor);\r\n },\r\n },\r\n }}\r\n />\r\n

Add Mobile app url: https://flashop.page.link/openapp

\r\n
Add tags in the email body
\r\n
\r\n Promotion Link: {\"{promotion_link}\"} This tag will be replaced by actual promotion link in the email
\r\n Cart first image Link: {\"{cart_image_link}\"} This tag will be replaced by actual first image link in the email
\r\n Event Name: {\"{event_name}\"} This tag will be replaced by actual event name in the email
\r\n Add First Name of User: {\"{first_name}\"} This tag will be replaced by actual first name of the actual user in the email
\r\n Add Last Name of User: {\"{last_name}\"} This tag will be replaced by actual last name of the actual user in the email
\r\n Add Time slot of Appointment: {\"{time_slot}\"} This tag will be replaced by actual time slot of the actual user's appointment in the email\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CKEditorInput;\r\n","import React from 'react';\r\n\r\nconst Spinner = ({text, classes}) => {\r\n return (\r\n
\r\n
\r\n
Loading...
\r\n
\r\n {text}\r\n
\r\n );\r\n};\r\n\r\nexport default Spinner;","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { Modal } from 'reactstrap';\r\n\r\nexport default class PanelModal extends Component {\r\n render() {\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\n","/* eslint no-extend-native: \"off\" */\r\nimport _ from 'underscore';\r\n\r\nexport default {\r\n registerGlobal: function () {\r\n Promise.prototype.finally = Promise.prototype.finally || {\r\n finally (fn) {\r\n const onFinally = value => Promise.resolve(fn()).then(() => value);\r\n return this.then(\r\n result => onFinally(result),\r\n reason => onFinally(Promise.reject(reason))\r\n );\r\n }\r\n }.finally;\r\n \r\n String.prototype.capitalize = function () {\r\n return this[0].toUpperCase() + this.slice(1);\r\n };\r\n\r\n String.prototype.decapitalize = function () {\r\n return this[0].toLowerCase() + this.slice(1);\r\n };\r\n\r\n String.prototype.toIdToken = function () {\r\n return this.replace(/\\W/g, '_');\r\n };\r\n\r\n Array.prototype.sortAlphaNumeric = function(){\r\n var reA = /[^a-zA-Z]/g;\r\n var reN = /[^0-9]/g;\r\n\r\n function sortAlphaNum(a, b) {\r\n var aA = a.replace(reA, \"\");\r\n var bA = b.replace(reA, \"\");\r\n if (aA === bA) {\r\n var aN = parseInt(a.replace(reN, \"\"), 10);\r\n var bN = parseInt(b.replace(reN, \"\"), 10);\r\n return aN === bN ? 0 : aN > bN ? 1 : -1;\r\n } else {\r\n return aA > bA ? 1 : -1;\r\n }\r\n }\r\n\r\n return this.sort(sortAlphaNum);\r\n };\r\n\r\n Array.prototype.groupBy = Array.prototype.groupBy || function (criteria) {\r\n return this.reduce(function (obj, item) { \r\n var key = typeof criteria === 'function' ? criteria(item) : item[criteria]; \r\n if (!obj.hasOwnProperty(key))obj[key] = [];\r\n obj[key].push(item);\r\n return obj; \r\n }, {});\r\n };\r\n\r\n Array.prototype.mapFiltered = function(transform){\r\n return this.reduce(function(memo, item, itemIndex) {\r\n let result = transform(item, itemIndex);\r\n if (result)memo.push(result);\r\n return memo;\r\n }, []);\r\n };\r\n\r\n _.mixin({\r\n nest: (list, ...iteratees) => {\r\n return _.filteredNest(list, null, ...iteratees);\r\n },\r\n filteredNest: (list, filterFunction, ...iteratees) => {\r\n let groups = {};\r\n list.forEach((item, itemIndex) => {\r\n if (filterFunction) {\r\n let included = filterFunction(item);\r\n if (!included) return;\r\n }\r\n\r\n let cGroup = groups;\r\n iteratees.forEach((iteratee, ii) => {\r\n let result = (typeof iteratee === 'string' ? item[iteratee] : iteratee(item, itemIndex));\r\n if (!cGroup[result]) cGroup[result] = ii === iteratees.length - 1 ? [] : {};\r\n cGroup = cGroup[result];\r\n });\r\n cGroup.push(item);\r\n });\r\n\r\n return groups;\r\n }\r\n });\r\n },\r\n\r\n loadScript: function(uri) {\r\n return new Promise((resolve, reject) => {\r\n var tag = document.createElement('script');\r\n tag.src = uri;\r\n tag.async = true;\r\n tag.onload = () => {\r\n resolve();\r\n };\r\n var firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n });\r\n }\r\n}","export default {\r\n client: {\r\n home: '/',\r\n futureEvents:\"/futureEvents\",\r\n noOrderUsers:\"/noOrderUsers\",\r\n userNoOrdersUsers:\"/userNoOrders/:locationId\",\r\n totalCompletedOrders:\"/totalCompletedOrders\",\r\n userCompletedOrders:\"/userCompletedOrders/:locationId\",\r\n incompleteOrders:\"/incompleteOrders\",\r\n eventsWithPackagesSales:\"/eventsWithPackagesSales\",\r\n userIncompleteOrders:\"/userIncompleteOrders/:locationId\",\r\n companies: '/companies',\r\n eventGroups: '/location/eventgroups',\r\n products: '/products',\r\n companyConfig:'/companyConfig/:companyId',\r\n locations: '/locations',\r\n compaign: '/:locationId/compaign',\r\n sendGridStats: '/statistics/:eventName/:campaignName/:campaignId/:startDate',\r\n intervals: '/:locationId/intervals',\r\n groupUser: '/groupUsers/:eventGroupId',\r\n eventPackages: '/:locationId/eventPackages',\r\n events: '/:companyId/events',\r\n calendar: '/calendar',\r\n users:'/users',\r\n userDetails: '/userDetails/:userId/:companyId',\r\n userSchdeuler:\"/userScheduler/:userId/:companyId\",\r\n rescheduleAppointment:\"/rescheduleAppointment/:userId/:companyId/:appointmentId\",\r\n rescheduleAppointmentBooking:\"/rescheduleAppointmentBooking/:userId/:companyId/:appointmentId/:locationId\",\r\n printOrders: '/orderFulFillment/:userId',\r\n presets: '/presets',\r\n export:'/export',\r\n booking:'/booking/:eventId',\r\n completeOrder:'/CompleteOrder/:stripeSessionId',\r\n downloads:'/downloads',\r\n notFound: '/404',\r\n help: '/support',\r\n manual: '/manual',\r\n domain: '/:DomainName',\r\n visualizations: '/:DomainName/visualizations',\r\n demand: '/:DomainName/visualizations/demand',\r\n dataExplorer: '/:DomainName/visualizations/data-explorer',\r\n scenarioViewer: '/:DomainName/visualizations/scenario-view/:ScenarioId',\r\n scenarios: '/:DomainName/visualizations/scenarios',\r\n staffing: '/:DomainName/visualizations/staffing',\r\n staffingEmployee: '/:DomainName/visualizations/staffing/employee',\r\n staffingWorkItem: '/:DomainName/visualizations/staffing/workitem',\r\n dashboard: '/:DomainName/dashboard',\r\n demandReport: '/:DomainName/reports/demand',\r\n staffingReport: '/:DomainName/reports/staffing',\r\n management: '/:DomainName/management',\r\n schedules: '/:DomainName/management/schedules',\r\n activities: '/:DomainName/management/activities',\r\n allocations: '/:DomainName/management/allocations',\r\n complexities: '/:DomainName/management/complexities',\r\n organizations: '/:DomainName/management/organizations',\r\n departments: '/:DomainName/management/departments',\r\n roles: '/:DomainName/management/roles',\r\n attributes: '/:DomainName/management/attributes',\r\n algorithms: '/:DomainName/management/algorithms',\r\n headcounts: '/:DomainName/management/headcounts',\r\n actuals: '/:DomainName/management/actuals',\r\n employees: '/:DomainName/management/employees',\r\n assignments: '/:DomainName/management/assignments',\r\n settings: '/:DomainName/management/settings',\r\n generalSettings: '/:DomainName/management/settings/general',\r\n advancedSettings: '/:DomainName/management/settings/advanced',\r\n security: '/:DomainName/management/settings/security',\r\n referenceTables: '/:DomainName/management/settings/referenceTables',\r\n pipelinesOld: '/:DomainName/management/settings/pipelines-old',\r\n pipelines: '/:DomainName/management/settings/pipelines',\r\n pipelineViewer: '/:DomainName/management/settings/pipeline-view/:ConfigurationId',\r\n sales: \"/sales\",\r\n },\r\n clientApi: {\r\n login:'authentication/login',\r\n forgetPassword:'user/forgotpassword',\r\n company: 'company', //added it for company signup\r\n companySignup: 'companysignup', //added it for company signup\r\n dashboardCount: 'company/dashboardcounts/:id',\r\n futureEventsDetails: 'company/dashboard/futureeventsdetails/:companyId',\r\n eventsWithPackagesSales: 'company/dashboard/eventsWithpackagesSales/:companyId',\r\n incompleteOrders: 'company/dashboard/userOrdersWithevents/:companyId/incomplete_orders',\r\n userIncompleteOrders: 'company/dashboard/userListWithevents/:companyId/:locationId/incomplete_orders',\r\n totalCompletedOrders: 'company/dashboard/userOrdersWithevents/:companyId/completed_orders',\r\n userCompletedOrders: 'company/dashboard/userListWithevents/:companyId/:locationId/completed_orders',\r\n noOrdersUsers: 'company/dashboard/userOrdersWithevents/:companyId/no_orders_users',\r\n userNoOrdersUsers: 'company/dashboard/userListWithevents/:companyId/:locationId/no_orders_users',\r\n user: 'user', //added it for company signup\r\n account: 'account',\r\n byId:':Entity/:id',\r\n domainEntity: ':Entity',\r\n exportwithEventsList: 'exportwitheventList',\r\n eventTypes:'location/eventtypes/:companyId',\r\n eventTypeCreate: 'location/eventtypes',\r\n compaignCUD: 'marketing/compaign',\r\n compaign: 'marketing/compaign/:locationId',\r\n compaignTypeCUD: 'marketing/compaigntype',\r\n compaignType: 'marketing/compaigntype/:locationId',\r\n sendGridStats:'marketing/compaign/stats/:campaignId/:start_date',\r\n childEntity: ':companyId/:Entity',\r\n events:'company/:companyId/:Entity',\r\n singleEvent:'event/:eventId',\r\n updateEventBooking:'event/OnlineBooking',\r\n updateEvent:'event',\r\n search:':Entity/search',\r\n intervals:':companyId/:locationId/:Entity',\r\n groupUsers:'location/eventgroups/group/users/:eventGroupId',\r\n eventPromotion:'event/promotion/:locationId',\r\n eventUsers:'location/eventgroups/eventusers/:locationId',\r\n assignGroupUsers:'location/eventgroups/group',\r\n unassignGroupUsers:'location/eventgroups/group/:eventGroupId',\r\n eventgroups:'location/eventgroups/group/:companyId',\r\n eventgroupsAssignUsers:'location/eventgroups/csvUsers',\r\n eventgroupsCreate:'location/eventgroups',\r\n eventPackages:':companyId/:locationId/:Entity',\r\n userDetails: 'user/:id',\r\n updateUser:'user',\r\n userScheduler:':Entity/:locationId',\r\n calenderMonth:'calendar',\r\n calenderTab:'calendar/calendarTab',\r\n calendar:'mobile/calendar',\r\n calendarday:'calendarday',\r\n userSessions: ':Entity/:userId/:companyId',\r\n userSessionImage: ':Entity/byUserSessionId/:id',\r\n appointments: 'user/:Entity/:userId/:companyId',\r\n printOrders: \":Entity/:companyId/:userId\",\r\n orderRequeue: \"order/requeue\",\r\n prepaids: ':Entity/:userId/:companyId',\r\n presetsUpload: ':Entity/uploadPreset',\r\n translation: '%PUBLIC_URL%/i18n/:Lang.json',\r\n locationDates:'location/dates/:locationId',\r\n locationSlots:'location/slots/:locationId',\r\n locationSlotsV2:'location/slots_v2/:locationId',\r\n blocktimeslots:'blocktimeslots',\r\n deletetimeslots:'blocktimeslots/:slotId',\r\n blocktimeslotsMultiple:'blocktimeslots/multiple',\r\n eventOrder:'order/event',\r\n resetUser:'user/reset',\r\n changeDefaultCompany:'user/changeDefaultCompany',\r\n assignCompanies:'user/assign',\r\n products:'product/:companyId',\r\n eventGroups:'product/:companyId',\r\n product:'product/:productId/:companyId',\r\n companyProduct:'companyProduct',\r\n addUpdateProduct:'product',\r\n shareSession:'usersession/sharesession',\r\n unlockSession:'usersession/unlock',\r\n textSession:'usersession/sendtext',\r\n sendApp:'sendapp',\r\n saveNotes:'appointment/savenotes',\r\n downloadAppointment:'appointment/printschedule?LocationId=:LocationId',\r\n patchAppointment:'appointment/patch',\r\n rescheduleAppointment:\"appointment/reschedule\",\r\n appointmentsByLocation:'appointment/bylocationId',\r\n openOrders:'order/openordersforfullfilment/:companyId',\r\n // completedOrders:'order/completedOrders/:companyId',\r\n completedOrders:'order/v2/completedOrders/:companyId',\r\n activateAppointment:'appointment/activate/:stripeSessionId',\r\n userSearch:'user/search',\r\n help: 'docs/:Lang/:Name?cid=:CID&meta=:IsMeta',\r\n appointmentPresale:\"appointment/presales\",\r\n\r\n domainEntityImport: 'data/:DomainId/:Entity/import',\r\n domainEntityFile: 'file/:DomainId/:Entity/:Id',\r\n domainEntityClear: 'data/:DomainId/:Entity/clear',\r\n projections: 'projections/:DomainId/:ScheduleId',\r\n auditEntity: 'audit/:DomainId/:Entity/:EntityId',\r\n notify: 'notify',\r\n proxy: 'proxy'\r\n },\r\n admin: {\r\n home: '/administration',\r\n tenants: '/administration/tenants',\r\n domains: '/administration/domains',\r\n // users: '/administration/users',\r\n },\r\n adminApi: {\r\n adminEntity: 'management/:TenantId/:Entity',\r\n adminEntityImport: 'management/:TenantId/:Entity/import',\r\n switchTenant: 'management/*/tenants/switch',\r\n uptimeReport: 'management/*/uptime'\r\n },\r\n compose: function(url, params, qs) {\r\n var output = url.replace('%PUBLIC_URL%', process.env.PUBLIC_URL);\r\n if (params){\r\n Object.keys(params).forEach(function (key, index) {\r\n let value = params[key];\r\n output = output.replace(':' + key, value);\r\n });\r\n }\r\n if (!qs) return output; \r\n if (typeof qs === 'string'){\r\n return output + '?' + qs;\r\n }else{\r\n return output + '?' + Object.keys(qs).map(key => key + '=' + qs[key]).join('&');\r\n }\r\n },\r\n parseQuery(queryString) {\r\n let toParse = queryString || window.location.search.slice(1);\r\n let query = {};\r\n let pairs = toParse.split('&');\r\n for (let i = 0; i < pairs.length; i++) {\r\n let pair = pairs[i].split('=');\r\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');\r\n }\r\n return query;\r\n },\r\n baseUrl(){\r\n return process.env.PUBLIC_URL || 'http://20.237.233.211/';\r\n }\r\n}","export const GLOBAL_ERROR = 'GLOBAL_ERROR';\r\nexport const LOCAL_ERROR = 'LOCAL_ERROR';\r\nexport const CLEAR_LOCAL_ERROR = 'CLEAR_LOCAL_ERROR';\r\n\r\nexport const LOAD_ACCOUNT = 'LOAD_ACCOUNT';\r\n\r\nexport const SET_DOMAIN = 'SET_DOMAIN';\r\nexport const CLEAR_DOMAIN = 'CLEAR_DOMAIN';\r\nexport const MARK_DOMAIN_DIRTY = 'MARK_DOMAIN_DIRTY';\r\nexport const MARK_DOMAIN_CLEAN = 'MARK_DOMAIN_CLEAN';\r\n\r\nexport const LOAD_TRANSLATION = 'LOAD_TRANSLATION';\r\n\r\nexport const START_FETCH = 'START_FETCH';\r\nexport const END_FETCH = 'END_FETCH';\r\nexport const REMOVE_FETCH = 'REMOVE_FETCH';\r\n\r\nexport const LOAD_FILE = 'LOAD_FILE';\r\nexport const CLEAR_FILES = 'CLEAR_FILES';\r\nexport const FILE_ERROR = 'FILE_ERROR';\r\nexport const UPDATE_FILE = 'UPDATE_FILE';\r\n\r\nexport const CLEAR_PROJECTIONS = 'CLEAR_PROJECTIONS';\r\nexport const LOAD_PROJECTIONS = 'LOAD_PROJECTIONS';\r\nexport const PROJECTIONS_ERROR = 'PROJECTIONS_ERROR';\r\n\r\nexport const LOAD_USERS = 'LOAD_USERS';\r\nexport const CREATE_USERS = 'CREATE_USERS';\r\nexport const DELETE_USERS = 'DELETE_USERS';\r\nexport const UPDATE_USERS = 'UPDATE_USERS';\r\nexport const CREATE_PERMISSIONS = 'CREATE_PERMISSIONS';\r\n\r\nexport const AUDIT_ENTITY_ITEM = 'AUDIT_ENTITY_ITEM';\r\n\r\nexport const LOAD_TERMS = 'LOAD_TERMS';\r\nexport const LOAD_RELEASE = 'LOAD_RELEASE';\r\n\r\nexport const LOAD_NOTIFICATIONS = 'LOAD_NOTIFICATIONS';\r\nexport const REMOVE_NOTIFICATION = 'REMOVE_NOTIFICATION';\r\nexport const CLEAR_NOTIFICATIONS = 'CLEAR_NOTIFICATIONS';","/* global EM */\r\nimport * as types from '../actionTypes';\r\n\r\nfunction translate(itemName){\r\n let t = EM.t(itemName.toLowerCase() + '.title', true);\r\n return t || itemName;\r\n}\r\n\r\nexport function startFetch(itemName) {\r\n return { type: types.START_FETCH, data: translate(itemName) };\r\n}\r\n\r\nexport function endFetch(itemName) {\r\n window.setTimeout(() => {\r\n EM.dispatch(removeFetchItem(itemName));\r\n }, 500);\r\n return { type: types.END_FETCH, data: translate(itemName) };\r\n}\r\n\r\nexport function removeFetchItem(itemName, displayAs) {\r\n return { type: types.REMOVE_FETCH, data: translate(itemName) };\r\n}\r\n","/* global EM */\r\n/* eslint no-throw-literal: 0 */\r\nimport Routes from './Routes';\r\nimport * as fetchingActions from '../entities/actions/fetching';\r\n\r\nexport default class API{ \r\n constructor(authenticator, instance, loginMode){\r\n\r\n this.baseApiAddress = 'https://api.flashopllc.com/api/';\r\n //this.baseApiAddress = 'http://flashapi.techliance.com/api/';\r\n //this.baseApiAddress = 'http://203.215.175.50:5000/api/';\r\n //this.baseApiAddress = 'http://localhost:5000/api/';\r\n this.sendGridbaseApiAddress = \"https://api.sendgrid.com/v3/\"\r\n this.Authenticator = authenticator;\r\n this.abortController = null;\r\n this.instance = instance;\r\n this.loginMode = loginMode;\r\n\r\n this.resetSignal();\r\n }\r\n\r\n abortPendingFetches(){\r\n this.abortController.abort();\r\n this.resetSignal();\r\n }\r\n\r\n resetSignal(){\r\n if (AbortController){\r\n this.abortController = new AbortController();\r\n }else{\r\n this.abortController = { signal: null, abort: function(){} };\r\n }\r\n }\r\n\r\n async login(email, password){\r\n const url = Routes.compose(Routes.clientApi.login, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify({Username:email,Password:password,IsAssociate:true}) }, {}); \r\n } \r\n async register(body){\r\n const url = Routes.compose(Routes.clientApi.company, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(body) }, {}); \r\n } \r\n async registerCompany(body){\r\n const url = Routes.compose(Routes.clientApi.companySignup, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(body) }, {}); \r\n } \r\n async createUser(body){\r\n const url = Routes.compose(Routes.clientApi.user, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(body) }, {}); \r\n } \r\n \r\n async forgetPasword(email){\r\n const url = Routes.compose(Routes.clientApi.forgetPassword, { });\r\n return await this.loginFetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify({Username:email,IsAssociate:true}) }, {}); \r\n } \r\n\r\n async loadTranslation(Lang) {\r\n const url = Routes.compose(Routes.clientApi.translation, { Lang: Lang }, { build: process.env.REACT_APP_BUILD });\r\n return this.fetchStaticJson(url, {});\r\n } \r\n\r\n async loadHelp(CID, Name, Lang, IsMetaData) {\r\n const url = Routes.compose(Routes.clientApi.help, { CID: CID, Name: Name, Lang: Lang, IsMeta: IsMetaData });\r\n return await this.fetch(this.baseApiAddress + url, {}, Name);\r\n } \r\n \r\n async updateHelp(Name, Lang, Content) {\r\n const url = Routes.compose(Routes.clientApi.help, { Name: Name, Lang: Lang });\r\n return await this.fetch(this.baseApiAddress + url, { method: 'PUT', body: Content }, Name);\r\n } \r\n\r\n async loadAccount(loginMode) {\r\n let qs = (loginMode ? 'loginMode=' + loginMode : null); \r\n const url = Routes.compose(Routes.clientApi.account, null, qs);\r\n return this.fetch(this.baseApiAddress + url, {}, 'Account');\r\n } \r\n async loadEntityByParent(Entity, isSilent,parentDetail,getUrl){\r\n let params = {...(parentDetail ? parentDetail:{}), Entity: Entity}\r\n let url = Routes.compose(Routes.clientApi.childEntity, params);\r\n if(parentDetail && getUrl)\r\n { \r\n url = Routes.compose(getUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async loadSingleEntity(Entity, isSilent,routeParams,getUrl){ \r\n let params = {...(routeParams ? routeParams:{}), Entity: Entity}\r\n let url = Routes.compose(Routes.clientApi.byId, params);\r\n if(routeParams && getUrl)\r\n { \r\n url = Routes.compose(getUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async searchEntity(Entity, isSilent,routeParams,searchUrl,qs){ \r\n let params = {...(routeParams ? routeParams:{}), Entity: Entity}\r\n let url = Routes.compose(Routes.clientApi.search, params,qs);\r\n if(routeParams && searchUrl)\r\n url = Routes.compose(searchUrl,params,qs);\r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async loadDomainEntity(Entity, isSilent){\r\n const url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n return this.fetch(this.baseApiAddress + url, {}, isSilent ? null : Entity); \r\n }\r\n\r\n async auditDomainEntity(DomainId, Entity, EntityId){\r\n const url = Routes.compose(Routes.clientApi.auditEntity, { DomainId: DomainId, Entity: Entity, EntityId: EntityId });\r\n return this.fetch(this.baseApiAddress + url, {}, Entity); \r\n }\r\n\r\n async createDomainEntity(Entity, Item,createUrl,parentRecordDetail){\r\n let url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n if(parentRecordDetail && createUrl)\r\n {\r\n let params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n url = Routes.compose(createUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(Item) }, Entity); \r\n } \r\n \r\n async execute(Entity,data,requestUrl,qs,parentRecordDetail, method){ \r\n let params = {Entity: Entity };\r\n method = method || 'GET';\r\n if(parentRecordDetail)\r\n params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n \r\n let url = Routes.compose(requestUrl, params,(qs||null));\r\n let options = {method:method}\r\n\r\n if(data)\r\n options.body = JSON.stringify(data);\r\n\r\n return this.fetch(this.baseApiAddress + url,options,Entity)\r\n }\r\n\r\n async updateDomainEntity(Entity, Item,editUrl,parentRecordDetail){\r\n let url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n if(parentRecordDetail && editUrl)\r\n {\r\n let params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n url = Routes.compose(editUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(Item) }, Entity); \r\n } \r\n \r\n async deleteDomainEntity(Entity, ids,deleteUrl,parentRecordDetail){ \r\n let url = Routes.compose(Routes.clientApi.domainEntity, { Entity: Entity });\r\n if(parentRecordDetail && deleteUrl)\r\n {\r\n let params = {...(parentRecordDetail ? parentRecordDetail:{}), Entity: Entity}\r\n url = Routes.compose(deleteUrl,params);\r\n } \r\n return this.fetch(this.baseApiAddress + url, { method: 'DELETE', body: JSON.stringify(ids) }, Entity); \r\n } \r\n\r\n async importDomainEntity(DomainId, Entity, Items, isSilent, modsOnly){\r\n const qs = modsOnly ? { MODSONLY: true } : null;\r\n const url = Routes.compose(Routes.clientApi.domainEntityImport, { DomainId: DomainId, Entity: Entity }, qs);\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(Items) }, isSilent ? null : Entity); \r\n } \r\n \r\n async clearDomainEntity(DomainId, Entity){\r\n const url = Routes.compose(Routes.clientApi.domainEntityClear, { DomainId: DomainId, Entity: Entity });\r\n return this.fetch(this.baseApiAddress + url, { method: 'DELETE' }, Entity); \r\n }\r\n\r\n async loadDomainEntityFile(DomainId, Entity, Id){\r\n const url = Routes.compose(Routes.clientApi.domainEntityFile, { DomainId: DomainId, Entity: Entity, Id: Id });\r\n return this.fetchFile(this.baseApiAddress + url, {}, Entity + ' File'); \r\n }\r\n\r\n async updateDomainEntityFile(DomainId, Entity, Id, Data){\r\n const url = Routes.compose(Routes.clientApi.domainEntityFile, { DomainId: DomainId, Entity: Entity, Id: Id });\r\n return this.fetchFile(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(Data) }, null); \r\n } \r\n\r\n \tasync uploadDomainFile(Entity, Item, uploadUrl){\r\n let url = Routes.compose(uploadUrl, { Entity: Entity });\r\n return this.fetchFile(this.baseApiAddress + url, { method: 'POST', body: Item }, null); \r\n } \r\n async regenerateProjections(DomainId, ScheduleId, isSilent){\r\n const url = Routes.compose(Routes.clientApi.projections, { DomainId, ScheduleId }, 'output=1');\r\n return this.fetch(this.baseApiAddress + url, {}, 'Projections', isSilent); \r\n } \r\n\r\n async loadAdminEntity(tenantId, entity, entityId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId: entityId});\r\n return this.fetch(this.baseApiAddress + url, {}, entity); \r\n } \r\n\r\n async createAdminEntity(tenantId, entity, newItem, entityId){\r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId:entityId ? entityId:\"\"});\r\n return this.fetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(newItem) }, entity); \r\n }\r\n\r\n async deleteAdminEntity(tenantId, entity, ids){\r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId:\"\" });\r\n return this.fetch(this.baseApiAddress + url, { method: 'DELETE', body: JSON.stringify(ids) }, entity); \r\n }\r\n\r\n async updateAdminEntity(tenantId, entity, item){\r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: entity, EntityId:\"\" });\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(item) }, entity); \r\n } \r\n\r\n async importAdminEntity(tenantId, entity, items, isSilent){\r\n const url = Routes.compose(Routes.adminApi.adminEntityImport, { TenantId: tenantId, Entity: entity, EntityId:\"\" });\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(items) }, isSilent ? null : entity); \r\n } \r\n \r\n async switchTenant(newTenantId){\r\n const url = Routes.compose(Routes.adminApi.switchTenant, {});\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify({ TenantId: newTenantId }) }, 'Tenants'); \r\n } \r\n \r\n async auditUsers(tenantId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: 'users' });\r\n return this.fetch(this.baseApiAddress + url + '?operation=audit', {}, 'Users'); \r\n } \r\n \r\n async auditLogins(tenantId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: 'users' });\r\n return this.fetch(this.baseApiAddress + url + '?operation=logins', {}, 'Users'); \r\n } \r\n\r\n async updateUser(newUserObj){ \r\n const url = Routes.compose(Routes.clientApi.users, {});\r\n return this.fetch(this.baseApiAddress + url, { method: 'PUT', body: JSON.stringify(newUserObj) }); \r\n } \r\n\r\n async generateUserToken(tenantId, userId){ \r\n const url = Routes.compose(Routes.adminApi.adminEntity, { TenantId: tenantId, Entity: 'users' });\r\n return this.fetch(this.baseApiAddress + url + '?operation=generateToken', { method: 'POST', body: JSON.stringify({ UserId: userId }) }, 'Users'); \r\n } \r\n \r\n async uptimeReport(dateStr){ \r\n const url = Routes.compose(Routes.adminApi.uptimeReport, {});\r\n return this.fetch(this.baseApiAddress + url + '?since=' + dateStr, {}, 'Uptime'); \r\n } \r\n \r\n async notify(messageDetails){ \r\n const url = Routes.compose(Routes.clientApi.notify, {});\r\n return this.fetch(this.baseApiAddress + url, { method: 'POST', body: JSON.stringify(messageDetails) }); \r\n } \r\n\r\n async loadViaProxy(urlToProxy) {\r\n const url = Routes.compose(Routes.clientApi.proxy, {}, { url: urlToProxy });\r\n return this.fetch(this.baseApiAddress + url, {});\r\n } \r\n \r\n async loginFetch(url, options, itemName, isSilent){ \r\n let defaultOptions = {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache', \r\n signal: this.abortController.signal, \r\n headers: {\r\n 'Content-Type':'application/json' \r\n }\r\n }\r\n\r\n \r\n let newOptions = Object.assign(defaultOptions, options);\r\n \r\n return await fetch(url, newOptions)\r\n .then(responseText => {\r\n return responseText.json()\r\n })\r\n .then(responseObj => {\r\n if (responseObj.status === 200){\r\n return responseObj.data\r\n }else{\r\n throw responseObj;\r\n }\r\n }) \r\n .catch((ex) => { \r\n console.log('API Error:', ex); \r\n throw ex;\r\n })\r\n .finally(() => {\r\n // if (itemName && !isSilent)EM.dispatch(fetchingActions.endFetch(\"Authentication\")); \r\n });\r\n }\r\n\r\n async sendGridStats({campaignId, start_date}) {\r\n const url = Routes.compose(Routes.clientApi.sendGridStats, {campaignId, start_date});\r\n return this.fetch(this.baseApiAddress + url); \r\n } \r\n\r\n async fetch(url, options, itemName, isSilent){ \r\n if (itemName && !isSilent){\r\n EM.dispatch(fetchingActions.startFetch(itemName))\r\n }; \r\n let defaultOptions = {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache', \r\n signal: this.abortController.signal, \r\n headers: { \r\n 'Content-Type':'application/json' \r\n }\r\n }\r\n\r\n let allowAnonymous = await this.Authenticator.allowAnonymous(); \r\n var token = '' ;\r\n if(allowAnonymous!==true)\r\n {\r\n token = await this.Authenticator.acquireToken(); \r\n if (!token){\r\n throw { message: 'Token acquisition failed.', name: 'acquisitionFailure'};\r\n }\r\n defaultOptions.headers.Authorization =token;\r\n } \r\n \r\n let newOptions = Object.assign(defaultOptions, options);\r\n return await fetch(url, newOptions)\r\n .then(responseText => {\r\n return responseText.json()\r\n })\r\n .then(responseObj => { \r\n if (responseObj.status === 200){\r\n return responseObj.data\r\n }else{\r\n throw responseObj;\r\n }\r\n }) \r\n .catch((ex) => { \r\n if (ex instanceof TypeError && ex.message === \"Failed to fetch\") {\r\n throw 'Network Error: Please check your internet connection'\r\n } else { \r\n console.log('API Error:', ex); \r\n throw ex;\r\n }\r\n })\r\n .finally(() => {\r\n if (itemName && !isSilent)EM.dispatch(fetchingActions.endFetch(itemName)); \r\n });\r\n }\r\n\r\n async fetchFile(url, options, itemName, isSilent){ \r\n if (itemName && !isSilent)EM.dispatch(fetchingActions.startFetch(itemName)); \r\n\r\n var token = await this.Authenticator.acquireToken();\r\n if (!token){\r\n throw { message: 'Token acquisition failed.', name: 'acquisitionFailure'};\r\n }\r\n\r\n let defaultOptions = {\r\n method: 'GET',\r\n mode: 'cors',\r\n cache: 'no-cache', \r\n headers: {\r\n 'Authorization': token \r\n }\r\n }\r\n let newOptions = Object.assign(defaultOptions, options);\r\n \r\n return await fetch(url, newOptions)\r\n .then(responseText => {\r\n return responseText.json()\r\n })\r\n .then(responseObj => {\r\n if (responseObj.status === 'error'){\r\n throw responseObj;\r\n }else{\r\n return responseObj;\r\n }\r\n }) \r\n .catch((ex) => {\r\n console.log('API Error:', ex);\r\n throw ex;\r\n })\r\n .finally(() => {\r\n if (itemName && !isSilent)EM.dispatch(fetchingActions.endFetch(itemName)); \r\n });\r\n } \r\n \r\n async fetchStaticJson(url, options, itemName){ \r\n if (itemName)EM.dispatch(fetchingActions.startFetch(itemName)); \r\n return await fetch(url, options)\r\n .then(responseText => {\r\n return responseText.json()\r\n }) \r\n .catch(function (ex, b) {\r\n console.log('Fetch Static Error:', ex);\r\n throw ex;\r\n })\r\n .finally(() => {\r\n if (itemName)EM.dispatch(fetchingActions.endFetch(itemName)); \r\n });\r\n } \r\n \r\n async fetchStaticText(url, options){ \r\n return await fetch(url, options)\r\n .then(responseText => {\r\n return responseText.text()\r\n }) \r\n .catch(function (ex, b) {\r\n console.log('Fetch Static Error:', ex);\r\n throw ex;\r\n });\r\n } \r\n}","/* global msal */\r\n/* eslint no-throw-literal: 0 */\r\nimport Common from \"../util/Common\";\r\nimport API from \"./API\";\r\nexport default class Authenticator {\r\n\r\n constructor() {\r\n this.mode = \"Enterprise\";\r\n this.loginStyle = \"popup\";\r\n\r\n this.clientId = \"604417e0-0d21-48fa-895a-1b0a2e9a3db6\";\r\n this.config = {\r\n cache: {\r\n cacheLocation: \"localStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {},\r\n },\r\n };\r\n\r\n\r\n let currentAccount = window.localStorage.getItem(\"fo.account\");\r\n this.account = currentAccount ? JSON.parse(currentAccount):null;\r\n\r\n let usernamePref = window.localStorage.getItem(\"fo.username\");\r\n\r\n this.switchAccount = this.switchAccount.bind(this);\r\n this.logout = this.logout.bind(this);\r\n this.api = new API(this, null, \"Enterprise\");\r\n }\r\n\r\n async login(credentials) {\r\n var loginResponse = await this.api.login(credentials.email,credentials.password);\r\n if (loginResponse && loginResponse.user && loginResponse.user.userId > 0) {\r\n let user = loginResponse.user;\r\n let username = user.emailAddress;\r\n let prefUsername = `${user.firstName} ${user.lastName}`; \r\n window.localStorage.setItem(\"fo.username\", username);\r\n window.localStorage.setItem(\"fo.preferred_username\", prefUsername);\r\n window.localStorage.setItem(\"fo.authToken\", loginResponse.token);\r\n \r\n this.account = loginResponse.user;\r\n window.localStorage.setItem(\"fo.account\",JSON.stringify(this.account));\r\n } else {\r\n throw this.loginFailure();\r\n }\r\n }\r\n\r\n async forgetPassword(credentials) {\r\n return await this.api.forgetPasword(credentials.email);\r\n \r\n }\r\n \r\n async register(body) {\r\n return await this.api.register(body);\r\n }\r\n async registerCompany(body) {\r\n return await this.api.registerCompany(body);\r\n }\r\n async createUser(body) {\r\n return await this.api.createUser(body);\r\n }\r\n\r\n switchAccount() {\r\n this.login(\"select_account\");\r\n }\r\n\r\n logout() {\r\n window.localStorage.removeItem(\"rm.login_mode\");\r\n window.localStorage.clear();\r\n\r\n window.location.href = '/';\r\n\r\n }\r\n\r\n async isAuthenticated() {\r\n return !!this.account;\r\n }\r\n\r\n allowAnonymous() {\r\n return new Promise((resolve, reject) => {\r\n let allowAnonymous = window.sessionStorage.getItem('fo.allowAnonymous');\r\n resolve(allowAnonymous===\"true\"); \r\n });\r\n }\r\n\r\n acquireToken() {\r\n let self = this;\r\n return new Promise((resolve, reject) => {\r\n let token = window.localStorage.getItem(\"fo.authToken\");\r\n if (token) resolve(\"Bearer \" + token);\r\n else reject(self.tokenFailure(\"Not authorized\"));\r\n });\r\n }\r\n\r\n loginFailure(error) {\r\n return {\r\n message: \"Login failed. Possibly cancelled by user or popup blocked.\",\r\n };\r\n }\r\n\r\n tokenFailure(error) {\r\n return {\r\n message: \"Token acquisition failed. \" + error.toString(),\r\n name: \"acquisitionFailure\",\r\n };\r\n }\r\n\r\n getUsername() {\r\n let account = this.account;\r\n return account.username;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport function globalError(error) {\r\n return { type: types.GLOBAL_ERROR, data: error };\r\n}\r\n\r\nexport function localError(eid, error) {\r\n return { type: types.LOCAL_ERROR, eid: eid, data: error };\r\n}\r\n\r\nexport function clearLocalError(eid) {\r\n return { type: types.CLEAR_LOCAL_ERROR, eid: eid };\r\n}","import * as types from '../actionTypes';\r\nimport * as errorActions from './error';\r\n\r\nexport function loadAccountSuccess(accountData) {\r\n return { type: types.LOAD_ACCOUNT, data: accountData };\r\n}\r\n\r\nexport function loadAccount(loginMode) {\r\n return (dispatch, getState, api) => {\r\n let account = window.localStorage.getItem(\"fo.account\");\r\n let data = JSON.parse(account); \r\n if(data)\r\n return dispatch(loadAccountSuccess(data));\r\n else{\r\n dispatch(errorActions.globalError('User not found'));\r\n throw \"User not found\";\r\n }\r\n };\r\n}\r\n","import * as types from '../actionTypes';\r\nimport * as errorActions from './error';\r\n\r\nexport function loadTranslationSuccess(lng) {\r\n return { type: types.LOAD_TRANSLATION, data: lng };\r\n}\r\n\r\nexport function loadTranslation(lng, fallback) {\r\n return (dispatch, getState, api) => {\r\n return api.loadTranslation(lng).then(data => {\r\n data.name = lng;\r\n return dispatch(loadTranslationSuccess(data));\r\n }).catch(error => {\r\n return api.loadTranslation(fallback).then(data => {\r\n data.name = fallback;\r\n return dispatch(loadTranslationSuccess(data));\r\n }).catch(error => {\r\n console.log(error);\r\n dispatch(errorActions.globalError({ message: 'Translation file could not be loaded.' }));\r\n throw error;\r\n });\r\n });\r\n };\r\n}","export default class LocalStorageManager{\r\n constructor(store){\r\n this.localNamespace = 'fo.'; \r\n }\r\n\r\n set(key, value){\r\n let toSave = value;\r\n if (typeof value !== 'string'){\r\n toSave = JSON.stringify(value);\r\n }\r\n localStorage.setItem(this.localNamespace + key, toSave);\r\n }\r\n\r\n get(key){\r\n return localStorage.getItem(this.localNamespace + key);\r\n }\r\n\r\n remove(key){\r\n localStorage.removeItem(this.localNamespace + key);\r\n }\r\n\r\n keys(){\r\n return Object.keys(localStorage).filter(key => { \r\n return key.indexOf(this.localNamespace) === 0;\r\n }).map(key => {\r\n return key.replace(this.localNamespace, '');\r\n });\r\n }\r\n}","import Routes from '../app/Routes';\r\n\r\nexport default [\r\n {\r\n name: 'account', \r\n idField: 'userId'\r\n },\r\n {\r\n name: 'companies', \r\n apiName:'company',\r\n singleName:'company', \r\n idField: 'companyId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'dashboard', \r\n apiName:'company/dashboardcounts',\r\n getUrl:Routes.clientApi.dashboardCount,\r\n },\r\n {\r\n name: 'futureEvents', \r\n apiName:'futureeventsdetails',\r\n getUrl:Routes.clientApi.futureEventsDetails,\r\n idField: 'eventTypeId',\r\n uniqueness: [ 'eventTypeId' ]\r\n },\r\n {\r\n name: 'noOrderUsers', \r\n apiName:'noOrderUsers',\r\n getUrl:Routes.clientApi.noOrdersUsers,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'userNoOrderUsers', \r\n apiName:'userNoOrder',\r\n getUrl:Routes.clientApi.userNoOrdersUsers,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'eventsWithPackagesSales', \r\n apiName:'eventsWithpackagesSales',\r\n getUrl:Routes.clientApi.eventsWithPackagesSales,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'totalCompletedOrders', \r\n apiName:'totalCompletedOrders',\r\n getUrl:Routes.clientApi.totalCompletedOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'userCompletedOrders', \r\n apiName:'userCompletedOrders',\r\n getUrl:Routes.clientApi.userCompletedOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'incompleteOrders', \r\n apiName:'incompleteOrders',\r\n getUrl:Routes.clientApi.incompleteOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'userIncompleteOrders', \r\n apiName:'userIncompleteOrders',\r\n getUrl:Routes.clientApi.userIncompleteOrders,\r\n idField: 'locationId',\r\n uniqueness: [ 'locationId' ]\r\n },\r\n {\r\n name: 'eventTypes', \r\n apiName:'location/eventtypes',\r\n getUrl:Routes.clientApi.eventTypes,\r\n createUrl:Routes.clientApi.eventTypeCreate,\r\n editUrl:Routes.clientApi.eventTypeCreate,\r\n deleteUrl:Routes.clientApi.eventTypeCreate,\r\n idField: 'eventTypeId',\r\n uniqueness: [ 'eventTypeId' ]\r\n },\r\n {\r\n name: 'eventGroups', \r\n apiName:'location/eventgroups',\r\n getUrl:Routes.clientApi.eventgroups,\r\n createUrl:Routes.clientApi.eventgroupsCreate,\r\n editUrl:Routes.clientApi.eventgroupsCreate,\r\n deleteUrl:Routes.clientApi.eventgroupsCreate,\r\n assignUserUrl:Routes.clientApi.eventgroupsAssignUsers,\r\n singleName:'Group', \r\n idField: 'eventGroupId',\r\n uniqueness: [ 'eventGroupId' ]\r\n },\r\n {\r\n name: 'companyConfig', \r\n apiName:'companyConfig',\r\n singleName:'companyConfig', \r\n idField: 'companyConfigId',\r\n uniqueness: [ 'companyConfigId' ]\r\n },\r\n {\r\n name: 'locations', \r\n singleName:'location',\r\n apiName:'location',\r\n createUrl:Routes.clientApi.childEntity,\r\n editUrl:Routes.clientApi.childEntity,\r\n deleteUrl:Routes.clientApi.childEntity,\r\n idField: 'locationId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'compaign', \r\n apiName:'marketing/compaign',\r\n getUrl:Routes.clientApi.compaign,\r\n createUrl:Routes.clientApi.compaignCUD,\r\n editUrl:Routes.clientApi.compaignCUD,\r\n deleteUrl:Routes.clientApi.compaignCUD,\r\n idField: 'marketingCompaignId',\r\n uniqueness: [ 'marketingCompaignId' ]\r\n },\r\n {\r\n name: 'sendGridStats', \r\n apiName:'marketing/compaign/stats',\r\n getUrl:Routes.clientApi.sendGridStats,\r\n idField: 'date',\r\n },\r\n {\r\n name: 'compaignType', \r\n singleName:'compaignType',\r\n apiName:'marketing/compaigntype',\r\n getUrl:Routes.clientApi.compaignType,\r\n createUrl:Routes.clientApi.compaignTypeCUD,\r\n editUrl:Routes.clientApi.compaignTypeCUD,\r\n deleteUrl:Routes.clientApi.compaignTypeCUD,\r\n idField: 'marketingComaignTypeId',\r\n uniqueness: [ 'marketingComaignTypeId' ]\r\n },\r\n {\r\n name: 'products', \r\n singleName:'product',\r\n apiName:'product',\r\n createUrl:Routes.clientApi.addUpdateProduct,\r\n editUrl:Routes.clientApi.addUpdateProduct,\r\n deleteUrl:Routes.clientApi.addUpdateProduct,\r\n idField: 'productId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'companyProducts', \r\n singleName:'companyProducts',\r\n apiName:'companyProducts', \r\n idField: 'companyProductId',\r\n uniqueness: [ 'companyProductId' ]\r\n },\r\n {\r\n name: 'intervals', \r\n apiName:'interval',\r\n getUrl:Routes.clientApi.intervals,\r\n createUrl:Routes.clientApi.intervals,\r\n editUrl:Routes.clientApi.intervals,\r\n deleteUrl:Routes.clientApi.intervals,\r\n idField: 'intervalId',\r\n uniqueness: [ 'intervalId' ]\r\n },\r\n {\r\n name: 'groupUsers', \r\n apiName:'groupUsers',\r\n getUrl:Routes.clientApi.groupUsers,\r\n createUrl:Routes.clientApi.assignGroupUsers,\r\n deleteUrl:Routes.clientApi.unassignGroupUsers,\r\n idField: 'userId',\r\n uniqueness: [ 'userId' ]\r\n },\r\n {\r\n name: 'eventpackage', \r\n apiName:'eventpackage',\r\n getUrl:Routes.clientApi.eventPackages,\r\n createUrl:Routes.clientApi.eventPackages,\r\n editUrl:Routes.clientApi.eventPackages,\r\n deleteUrl:Routes.clientApi.eventPackages,\r\n idField: 'eventPackageId',\r\n uniqueness: [ 'eventPackageId' ]\r\n },\r\n {\r\n name: 'events', \r\n singleName:'event',\r\n apiName:'event',\r\n getUrl:Routes.clientApi.events,\r\n editUrl:Routes.clientApi.updateEvent,\r\n getSingleUrl:Routes.clientApi.singleEvent,\r\n idField: 'eventId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'eventPromotion', \r\n apiName:'eventPromotion',\r\n getUrl:Routes.clientApi.eventPromotion,\r\n idField: 'eventId',\r\n uniqueness: [ 'eventId' ]\r\n },\r\n {\r\n name: 'users', \r\n apiName:'user',\r\n singleName:'user',\r\n idField: 'userId',\r\n uniqueness: [ 'firstName' ]\r\n },\r\n {\r\n name: 'userDetails', \r\n apiName:'user',\r\n getUrl:Routes.clientApi.userDetails,\r\n idField: 'userId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'userScheduler', \r\n apiName:'calendar',\r\n getUrl:Routes.clientApi.userScheduler,\r\n },\r\n {\r\n name: 'rescheduleAppointment', \r\n apiName:'rescheduleAppointment',\r\n getUrl:Routes.clientApi.userScheduler,\r\n },\r\n {\r\n name: 'userSessions', \r\n apiName:'userSession',\r\n getUrl:Routes.clientApi.userSessions,\r\n editUrl:Routes.clientApi.userSessions,\r\n idField: 'userSessionId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'userSessionImage', \r\n apiName:'usersessionimage',\r\n getUrl:Routes.clientApi.userSessionImage,\r\n idField: 'userSessionId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'appointments', \r\n apiName:'appointment',\r\n getUrl:Routes.clientApi.appointments,\r\n idField: 'appointmentId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'availableDays', \r\n apiName:'calendarmonthsmall',\r\n searchUrl:Routes.clientApi.locationDates \r\n },\r\n {\r\n name: 'availableSlots', \r\n apiName:'slots',\r\n searchUrl:Routes.clientApi.locationSlots,\r\n searchUrlV2:Routes.clientApi.locationSlotsV2, \r\n },\r\n {\r\n name: 'calendar', \r\n apiName:'calendar'\r\n },\r\n {\r\n name: 'userTypes', \r\n apiName:'userTypes',\r\n idField: 'userTypeId',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name:'prepaid',\r\n apiName:'prepaid',\r\n getUrl:Routes.clientApi.prepaids,\r\n idField:'prepaidId',\r\n uniqueness:['prepaidId']\r\n },\r\n {\r\n name:'printOrders',\r\n apiName:'order',\r\n getUrl:Routes.clientApi.printOrders,\r\n requeueUrl:Routes.clientApi.orderRequeue,\r\n idField:'printOrderId',\r\n uniqueness:['printOrderId']\r\n },\r\n {\r\n name:'printOrderLineItems',\r\n apiName:'order',\r\n idField:'printOrderLineItemId',\r\n uniqueness:['printOrderLineItemId']\r\n },\r\n {\r\n name:'orderFulfillment',\r\n apiName:'order',\r\n getUrl:Routes.clientApi.printOrders,\r\n idField:'printOrderId',\r\n uniqueness:['printOrderId']\r\n },\r\n {\r\n name:'completedOrders',\r\n apiName:'order',\r\n getUrl:Routes.clientApi.completedOrders,\r\n idField:'printOrderId',\r\n uniqueness:['printOrderId']\r\n },\r\n {\r\n name:'presets',\r\n apiName:'presets',\r\n uploadUrl:Routes.clientApi.presetsUpload\r\n },\r\n {\r\n name:'export',\r\n apiName:'export',\r\n },\r\n {\r\n name: 'role', \r\n apiName:'role',\r\n idField: 'id',\r\n uniqueness: [ 'name' ]\r\n },\r\n {\r\n name: 'eventOrder', \r\n apiName:'order',\r\n createUrl:Routes.clientApi.eventOrder, \r\n }\r\n]","/* global EM */\r\nimport * as types from '../actionTypes';\r\n\r\nexport function clearDomainEntity(entity) {\r\n return { type: 'CLEAR_' + entity.name.toUpperCase() };\r\n}\r\n\r\nexport function loadEntityByParent(entity, isSilent, parentDetails) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.loadEntityByParent(apiName, isSilent, parentDetails, entity.getUrl).then(data => {\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function loadSingleEntity(entity, isSilent, params) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.loadSingleEntity(apiName, isSilent, params, entity.getSingleUrl).then(data => {\r\n return dispatch({ type: `LOAD_${entityName.toUpperCase()}`, data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function searchEntity(entity, isSilent, params, qs) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.searchEntity(apiName, isSilent, params, entity.searchUrl, qs).then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: `LOAD_${entityName.toUpperCase()}`, data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function loadDomainEntity(entity, isSilent) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.loadDomainEntity(apiName, isSilent).then(data => {\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function createDomainEntity(entity, newItem, parentRecordDetail) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.createDomainEntity(apiName, newItem, entity.createUrl, parentRecordDetail).then(data => {\r\n return dispatch({ type: 'CREATE_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function createBulkDomainEntity(domainId, entity, newItems) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.createDomainEntity(domainId, entityName, newItems).then(data => {\r\n return dispatch({ type: 'CREATE_BULK_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function updateDomainEntity(entity, newItem, oldItem, parentRecordDetail) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n //Optimisitically update the value for immediate re-render\r\n dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: newItem });\r\n return api.updateDomainEntity(apiName, newItem, entity.editUrl, parentRecordDetail).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: oldItem });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteDomainEntity(entity, ids, parentRecordDetail) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.deleteDomainEntity(apiName, ids, entity.deleteUrl, parentRecordDetail).then(data => {\r\n return dispatch({ type: 'DELETE_' + entityName.toUpperCase(), data: ids });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function clearAllDomainEntity(domainId, entity) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.clearDomainEntity(domainId, entityName).then(data => {\r\n return dispatch({ type: 'CLEARALL_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function importDomainEntity(domainId, entity, items, isSilent, modsOnly) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.importDomainEntity(domainId, entityName, items, isSilent, modsOnly).then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function loadAdminEntity(tenantId, entity, entityId) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.loadAdminEntity(tenantId, entityName, entityId ? entityId : \"\").then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function createAdminEntity(tenantId, entity, newItem, entityId) {\r\n let entityName = entity.name;\r\n\r\n return (dispatch, getState, api) => {\r\n return api.createAdminEntity(tenantId, entityName, newItem, entityId).then(data => {\r\n return dispatch({ type: 'CREATE_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function deleteAdminEntity(tenantId, entity, ids) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.deleteAdminEntity(tenantId, entityName, ids).then(data => {\r\n return dispatch({ type: 'DELETE_' + entityName.toUpperCase(), data: ids });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function updateAdminEntity(tenantId, entity, newItem, oldItem) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: newItem });\r\n return api.updateAdminEntity(tenantId, entityName, newItem).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'UPDATE_' + entityName.toUpperCase(), data: oldItem });\r\n });\r\n };\r\n}\r\n\r\nexport function importAdminEntity(tenantId, entity, items, isSilent) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.importAdminEntity(tenantId, entityName, items, isSilent).then(data => {\r\n console.log(`LOAD_${entityName.toUpperCase()}`);\r\n return dispatch({ type: 'LOAD_' + entityName.toUpperCase(), data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });;\r\n };\r\n}\r\n\r\nexport function auditDomainEntity(domainId, entity, entityId) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.auditDomainEntity(domainId, entityName, entityId).then(data => {\r\n return dispatch({ type: types.AUDIT_ENTITY_ITEM, key: entityName + entityId, data: data });\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nexport function execute(entity, data, requestUrl, qs, parentRecordDetail, method,executeDispatch) {\r\n // execute(Entity,data,requestUrl,qs,parentRecordDetail, method)\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.execute(apiName, data, requestUrl, qs, parentRecordDetail, method).then(data => {\r\n if(executeDispatch ===true)\r\n return dispatch({ type: getDispatchAction(method) + entityName.toUpperCase(), data: data });\r\n return data;\r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}\r\n\r\nfunction getDispatchAction(method) {\r\n switch (method) {\r\n case 'GET':\r\n return 'LOAD_';\r\n case 'POST':\r\n return 'CREATE_';\r\n case 'PUT':\r\n return 'UPDATE_';\r\n case 'DELETE':\r\n return 'DELETE_';\r\n default:\r\n return '';\r\n }\r\n}","/* global EM */\r\nimport _ from 'underscore';\r\nimport * as entityActions from '../entities/actions/entities';\r\nimport * as fileActions from '../entities/actions/files';\r\n\r\nexport default class Entity {\r\n constructor(store, entityTypeDef) {\r\n this.store = store;\r\n this.dispatch = store.dispatch;\r\n\r\n this.entityTypeDef = entityTypeDef;\r\n this.idField = entityTypeDef.idField;\r\n this.apiName = entityTypeDef.apiName;\r\n this.createUrl = entityTypeDef.createUrl;\r\n this.editUrl = entityTypeDef.editUrl;\r\n this.deleteUrl = entityTypeDef.deleteUrl;\r\n this.getUrl = entityTypeDef.getUrl;\r\n this.uploadUrl = entityTypeDef.uploadUrl;\r\n this.getSingleUrl = entityTypeDef.getSingleUrl;\r\n this.singleName = entityTypeDef.singleName;\r\n this.name = entityTypeDef.name;\r\n this.allowDuplicates = entityTypeDef.allowDuplicates || false;\r\n this.modelName = (entityTypeDef.modelName || this.name).capitalize();\r\n this.modelNameSingular = entityTypeDef.modelNameSingular || (this.modelName.slice(-1) === 's' ? this.modelName.slice(0, -1) : this.modelName);\r\n this.single = false;\r\n this.searchUrl = entityTypeDef.searchUrl;\r\n this.uniqueness = entityTypeDef.uniqueness || ['Name'];\r\n this.isFileListingTable = entityTypeDef.isFileListingTable ? true : false;\r\n\r\n if (this.isFileListingTable) {\r\n this.fileType = entityTypeDef.fileTypeClass;\r\n }\r\n\r\n this.optionList = null;\r\n this.valueList = null;\r\n this.idList = null;\r\n this.keyList = null;\r\n }\r\n\r\n resetCachedLists() {\r\n this.optionList = null;\r\n this.valueList = null;\r\n this.idList = null;\r\n this.keyList = null;\r\n }\r\n\r\n async load(force, isSilent) {\r\n await this.dispatch(entityActions.loadDomainEntity(this, isSilent));\r\n this.resetCachedLists();\r\n }\r\n\r\n async loadEntityByParent(parentDetail, force, isSilent) {\r\n await this.dispatch(entityActions.loadEntityByParent(this, isSilent, parentDetail));\r\n this.resetCachedLists();\r\n }\r\n async loadSingleEntity(params, force, isSilent) {\r\n await this.dispatch(entityActions.loadSingleEntity(this, isSilent, params));\r\n this.resetCachedLists();\r\n }\r\n async searchEntity(params, qs, force, isSilent) {\r\n await this.dispatch(entityActions.searchEntity(this, isSilent, params, qs));\r\n this.resetCachedLists();\r\n }\r\n async create(newItem, parentRecordDetail) {\r\n let state = this.store.getState();\r\n let created = await this.dispatch(entityActions.createDomainEntity(this, newItem, parentRecordDetail));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.account.userId, this);\r\n return created;\r\n }\r\n\r\n async createBulk(newItems, entityId) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n let created = await this.dispatch(entityActions.createBulkDomainEntity(state.domain.DomainId, this, newItems, entityId));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n return created;\r\n }\r\n\r\n async delete(ids, parentRecordDetail) {\r\n let state = this.store.getState();\r\n let deleted = await this.dispatch(entityActions.deleteDomainEntity(this, ids, parentRecordDetail));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n return deleted;\r\n }\r\n\r\n async update(oldItem, newItem, parentRecordDetail) {\r\n let state = this.store.getState();\r\n let updated = await this.dispatch(entityActions.updateDomainEntity(this, newItem, oldItem, parentRecordDetail));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.account.userId, this);\r\n return updated;\r\n }\r\n\r\n async import(items, isSilent, modsOnly) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n let imported = this.dispatch(entityActions.importDomainEntity(state.domain.DomainId, this, items, isSilent, modsOnly));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n return imported;\r\n }\r\n\r\n async audit(itemId) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n let audit = await this.dispatch(entityActions.auditDomainEntity(state.domain.DomainId, this, itemId));\r\n return audit.data;\r\n }\r\n\r\n async clearAll() {\r\n if (EM.debugMode) {\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n await this.dispatch(entityActions.clearAllDomainEntity(state.domain.DomainId, this));\r\n this.resetCachedLists();\r\n // EM.markDomainDirty(state.domain.DomainId, this);\r\n }\r\n }\r\n\r\n makeFileName(id, type) {\r\n return this.name + '-' + id + (type || '');\r\n }\r\n\r\n async loadFile(id, type, force) {\r\n if (!this.isFileListingTable) return;\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n if (!state.files[this.makeFileName(id, type)] || force) {\r\n return await this.dispatch(fileActions.loadDomainEntityFile(state.domain.DomainId, this, id));\r\n }\r\n }\r\n\r\n async saveFile(id, data) {\r\n if (!this.isFileListingTable) return;\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n return await this.dispatch(fileActions.updateDomainEntityFileBackground(state.domain.DomainId, this, id, data));\r\n }\r\n async upload(newFile, entityId) {\r\n let state = this.store.getState();\r\n let created = await this.dispatch(fileActions.uploadDomainEntityFile(this, newFile, entityId));\r\n this.resetCachedLists();\r\n return created;\r\n }\r\n async invalidateFile(id) {\r\n if (!this.isFileListingTable) return;\r\n let state = this.store.getState();\r\n if (!state.domain) return;\r\n return await this.dispatch(fileActions.invalidateFile(state.domain.DomainId, this, id));\r\n }\r\n\r\n async loadDefaultItem() {\r\n let self = this;\r\n await self.load();\r\n return this.findDefaultItem();\r\n }\r\n\r\n clear() {\r\n this.resetCachedLists();\r\n this.dispatch(entityActions.clearDomainEntity(this));\r\n }\r\n\r\n isLoaded() {\r\n return this.get() ? true : false;\r\n }\r\n\r\n get() {\r\n let state = this.store.getState();\r\n return state[this.name];\r\n }\r\n\r\n getFile(id, type) {\r\n let state = this.store.getState();\r\n return state.files[this.makeFileName(id, type)];\r\n }\r\n\r\n asOptionList(labelField, sortByLbl, valueField) {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.optionList) {\r\n this.optionList = state.map((row) => {\r\n let lbl = row[labelField || 'name'];\r\n if (labelField && typeof labelField === 'function') {\r\n lbl = labelField(row);\r\n }\r\n return { value: row[valueField || this.idField], label: lbl };\r\n });\r\n if (sortByLbl) {\r\n this.optionList = _.sortBy(this.optionList, (item) => {\r\n return item.label;\r\n });\r\n }\r\n }\r\n return this.optionList;\r\n }\r\n\r\n asIndexed() {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.idList) {\r\n this.idList = _.indexBy(state, this.idField.toString());\r\n }\r\n return this.idList;\r\n }\r\n\r\n asKeyed() {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.keyList) {\r\n this.keyList = _.indexBy(state, (item) => {\r\n return this.makeKeyFromItem(item);\r\n });\r\n }\r\n return this.keyList;\r\n }\r\n\r\n asValueList(labelField) {\r\n let state = this.get();\r\n if (!state) return [];\r\n if (!this.valueList) {\r\n this.valueList = {};\r\n state.forEach((row) => {\r\n this.valueList[row[labelField || 'Name']] = row[this.idField];\r\n });\r\n }\r\n return this.valueList;\r\n }\r\n\r\n makeKeyFromItem(item) {\r\n let fieldValues = this.uniqueness.map((objKey) => {\r\n return item[objKey] || '';\r\n });\r\n\r\n return fieldValues.join('.');\r\n }\r\n\r\n findItem(item) {\r\n let key = this.makeKeyFromItem(item);\r\n if (!key) {\r\n console.log('Key could not be created for entity. Check that the uniqueness field is set in entityTypes: ' + this.name);\r\n return null;\r\n }\r\n return this.findByKey(key);\r\n }\r\n\r\n findByKey(key) {\r\n return this.asKeyed()[key];\r\n }\r\n\r\n hasDuplicates() {\r\n let state = this.get();\r\n if (!state) return false;\r\n let dupes = {};\r\n for (var i = 0; i < state.length; i++) {\r\n let item = state[i];\r\n if (typeof item.Active !== 'undefined' && item.Active === false) continue;\r\n let key = this.makeKeyFromItem(item);\r\n if (dupes[key]) {\r\n EM.warn('First duplicate found: ', item);\r\n return true;\r\n } else {\r\n dupes[key] = true;\r\n }\r\n };\r\n return false;\r\n }\r\n\r\n findDuplicates() {\r\n let state = this.get();\r\n if (!state) return false;\r\n let keys = {};\r\n let dupes = {};\r\n for (var i = 0; i < state.length; i++) {\r\n let item = state[i];\r\n if (typeof item.Active !== 'undefined' && item.Active === false) continue;\r\n let key = this.makeKeyFromItem(item);\r\n if (keys[key]) {\r\n dupes[item[this.idField]] = true;\r\n }\r\n keys[key] = true;\r\n };\r\n return dupes;\r\n }\r\n\r\n findDefaultItem() {\r\n let self = this;\r\n let currentSet = self.get();\r\n if (!currentSet) return null;\r\n\r\n let defaultItem = currentSet.find(item => { return item.IsDefault });\r\n if (!defaultItem) {\r\n console.warn('No default. Returning the newest item instead.');\r\n defaultItem = currentSet[currentSet.length - 1];\r\n }\r\n\r\n return defaultItem;\r\n }\r\n\r\n lookupValue(id, fld) {\r\n let found = this.asIndexed()[id];\r\n return found ? found[fld || 'name'] : '';\r\n }\r\n\r\n lookupId(value, fld) {\r\n return this.asValueList(fld)[value];\r\n }\r\n\r\n byId(id) {\r\n return this.asIndexed()[id];\r\n }\r\n\r\n //Translation helpers\r\n t(key, exact) {\r\n return EM.t(this.name + '.' + key, exact);\r\n }\r\n\r\n columns(key, exact) {\r\n return EM.t(this.name + '.columns.' + key, exact);\r\n }\r\n\r\n isOverridden() {\r\n return EM.isOverridden(this);\r\n }\r\n\r\n async executePost(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n let created = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'POST',executeDispatch)); \r\n this.resetCachedLists(); \r\n return created ? created.data : {};\r\n }\r\n\r\n async executePut(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n let created = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'PUT',executeDispatch)); \r\n \r\n this.resetCachedLists(); \r\n if(created===undefined)return\r\n return created.data ? created.data : created;\r\n }\r\n\r\n async executeGet(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n let result = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'GET',executeDispatch)); \r\n this.resetCachedLists(); \r\n return result && result.data ? result.data : result;\r\n }\r\n\r\n async executeDelete(data,qs,requestUrl, parentRecordDetail,executeDispatch){ \r\n executeDispatch = typeof executeDispatch === 'undefined' ? true : executeDispatch;\r\n \r\n let result = await this.dispatch(entityActions.execute(this,data,requestUrl,qs,parentRecordDetail,'DELETE',executeDispatch)); \r\n return result;\r\n }\r\n\r\n}","/* global EM */\r\nimport * as types from '../actionTypes';\r\n\r\nexport function loadDomainEntityFile(domainId, entity, id) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.loadDomainEntityFile(domainId, entityName, id).then(data => { \r\n return dispatch({ type: 'LOAD_FILE', key: entity.makeFileName(id), data: new entity.fileType(data, entityName, id) });\r\n }).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'FILE_ERROR', key: entity.makeFileName(id) });\r\n });\r\n };\r\n}\r\n\r\nexport function updateDomainEntityFileBackground(domainId, entity, id, data) {\r\n let entityName = entity.name;\r\n return (dispatch, getState, api) => {\r\n return api.updateDomainEntityFile(domainId, entityName, id, data).then(data => { \r\n return dispatch({ type: 'UPDATE_FILE', key: entity.makeFileName(id) });\r\n }).catch(error => {\r\n EM.setError(error);\r\n return dispatch({ type: 'FILE_ERROR', key: entity.makeFileName(id) });\r\n });\r\n };\r\n}\r\n\r\nexport function invalidateFile(domainId, entity, id) {\r\n return (dispatch, getState, api) => {\r\n return dispatch({ type: 'FILE_ERROR', key: entity.makeFileName(id) });\r\n };\r\n}\r\n\r\nexport function clearFiles() {\r\n return { type: types.CLEAR_FILES };\r\n}\r\n\r\nexport function uploadDomainEntityFile(entity, newFile) {\r\n let entityName = entity.name;\r\n let apiName = entity.apiName;\r\n return (dispatch, getState, api) => {\r\n return api.uploadDomainFile(apiName, newFile,entity.uploadUrl).then(data => {\r\n return dispatch({ type: 'CREATE_' + entityName.toUpperCase(), data: data }); \r\n }).catch(error => {\r\n EM.setError(error);\r\n });\r\n };\r\n}","import _ from \"underscore\";\r\nimport * as errorActions from \"./actions/error\";\r\nimport * as accountActions from \"./actions/account\";\r\nimport * as translationActions from \"./actions/translation\";\r\nimport * as domainActions from \"./actions/domain\";\r\nimport * as fileActions from \"./actions/files\";\r\nimport * as termsActions from \"./actions/terms\";\r\nimport * as releaseActions from \"./actions/release\";\r\nimport LocalStorageManager from \"../util/LocalStorageManager\";\r\nimport entityTypes from \"./entityTypes\";\r\nimport Entity from \"./Entity\";\r\nimport * as IdbKv from \"idb-keyval\";\r\nimport Routes from \"../app/Routes\";\r\n\r\nexport default class EntityManager {\r\n constructor(store, authenticator, api) {\r\n \r\n this._isInitialized = false;\r\n\r\n this.storage = new LocalStorageManager();\r\n this.store = store;\r\n this.dispatch = store.dispatch;\r\n this.authenticator = authenticator;\r\n this.api = api;\r\n\r\n this.fallbackLanguage = \"en\";\r\n this.fallbackTheme = \"Light\";\r\n this.currentLanguage = this.storage.get(\"lang\") || this.fallbackLanguage;\r\n\r\n this.translation = null; //set after load\r\n this.helpCache = {};\r\n this.languageList = [{ value: \"en\", label: \"English\" }];\r\n if (process.env.REACT_APP_ENV !== \"prod\") {\r\n this.languageList.push({ value: \"dev\", label: \"Dev\" });\r\n }\r\n\r\n this.themeList = [\r\n { label: \"Light\", value: \"Light\" },\r\n { label: \"Dark\", value: \"Dark\" },\r\n ];\r\n this.currentTheme = this.storage.get(\"theme\") || this.fallbackTheme;\r\n\r\n this._debugMode = this.storage.get(\"debug\");\r\n this.helpMode = false;\r\n this.history = null;\r\n\r\n this.domainPermission = null;\r\n this.tenantPermission = null;\r\n this.domainColor = null;\r\n\r\n this.statusMessageRef = null;\r\n this.featureCache = null;\r\n\r\n this.dpCache = {};\r\n\r\n if (window.location.hostname === \"localhost\") {\r\n this.registerLogging();\r\n } else {\r\n this.unregisterLogging();\r\n }\r\n\r\n this.roleNames={\r\n SuperAdmin:'SuperAdmin',\r\n Owner :'Owner',\r\n Admin :'Admin',\r\n Sales :'Sales',\r\n Photographer :'Photographer',\r\n }\r\n this.roles = [\r\n {id:1,name:'SuperAdmin'},\r\n {id:2,name:'Owner'},\r\n {id:3,name:'Admin'},\r\n {id:4,name:'Sales'},\r\n {id:5,name:'Photographer'}\r\n ];\r\n this.baseUrl =window.location.origin;\r\n }\r\n\r\n get debugMode() {\r\n return this._debugMode;\r\n }\r\n\r\n set debugMode(value) {\r\n this._debugMode = value;\r\n if (value) {\r\n this.storage.set(\"debug\", true);\r\n this.registerLogging();\r\n } else {\r\n this.storage.remove(\"debug\");\r\n this.unregisterLogging();\r\n }\r\n }\r\n\r\n async initialize(allowAnonymous) {\r\n try {\r\n await this.dispatch(\r\n translationActions.loadTranslation(\r\n this.currentLanguage,\r\n this.fallbackLanguage\r\n )\r\n ).then((action) => {\r\n let state = this.store.getState();\r\n if (state.translation) {\r\n this.translation = state.translation;\r\n this.storage.set(\"lang\", state.translation.name);\r\n }\r\n });\r\n window.sessionStorage.setItem('fo.allowAnonymous',allowAnonymous);\r\n if (allowAnonymous === true) {\r\n } else {\r\n let accountDispatchedResponse = await this.dispatch(\r\n accountActions.loadAccount(this.authenticator.mode)\r\n );\r\n this.me = accountDispatchedResponse.data;\r\n }\r\n\r\n entityTypes.forEach((et) => {\r\n if (et.entityType) {\r\n this[et.name] = new et.entityType(this.store, et);\r\n } else {\r\n this[et.name] = new Entity(this.store, et);\r\n if(et.singleName)\r\n {\r\n\r\n this[et.singleName] = new Entity(this.store, Object.assign({},et,{name:et.singleName}));\r\n this[et.singleName].single = true;\r\n this[et.singleName].singleName = null;\r\n }\r\n }\r\n });\r\n this.warn(\"EM Initialized.\");\r\n\r\n // this.dispatch(releaseActions.loadReleaseData()).then(() => {\r\n // this.getUserNotifications();\r\n // });\r\n\r\n return true;\r\n } catch (e) {\r\n this.warn(\"EM Initialization Error\", e);\r\n return false;\r\n }\r\n }\r\n\r\n /*-----------------Entity & Data Methods-----------*/\r\n loadAccount() {\r\n return this.dispatch(accountActions.loadAccount());\r\n }\r\n\r\n async setActiveDomain(domain) {\r\n let state = this.store.getState();\r\n if (state.domain !== domain) {\r\n this.log(\"Setting active domain:\", domain.Name);\r\n this.dispatch(domainActions.setDomain(domain));\r\n document.documentElement.style.setProperty(\r\n \"--domain-color\",\r\n domain.color\r\n );\r\n await this.settings.load();\r\n if (this.debugMode && this.isDomainAdmin()) {\r\n await this.users.load();\r\n }\r\n }\r\n }\r\n\r\n getActiveDomain() {\r\n let state = this.store.getState();\r\n return state.domain;\r\n }\r\n\r\n async clearActiveDomain() {\r\n let state = this.store.getState();\r\n this.api.abortPendingFetches();\r\n if (state.domain) {\r\n this.log(\"Clearing active domain.\");\r\n await this.dispatch(domainActions.clearDomain());\r\n await this.dispatch(fileActions.clearFiles());\r\n this.domainPermission = null;\r\n entityTypes.forEach(async (et) => {\r\n await this[et.name].clear();\r\n });\r\n }\r\n this.domainColor = null;\r\n this.clearDpCache();\r\n }\r\n\r\n allLoaded(...args) {\r\n return _.every(args, (entity) => {\r\n return entity.isLoaded();\r\n });\r\n }\r\n\r\n allEntitiesLoaded(args) {\r\n let loaded = true;\r\n _.each(args, (entity) => {\r\n loaded = loaded && entity.isLoaded();\r\n });\r\n return loaded === true;\r\n }\r\n\r\n loadEntities(allEntities, force) {\r\n let promiseSet = [];\r\n allEntities.forEach((entity) => {\r\n promiseSet.push(entity.load(force));\r\n });\r\n return Promise.all(promiseSet);\r\n }\r\n\r\n setError(errorIn) {\r\n const eid = new Date().getTime();\r\n\r\n let errorOut = { errorCode: null, message: \"\",eid };\r\n\r\n if (typeof errorIn === \"string\") {\r\n errorOut.message = errorIn;\r\n } \r\n else if(errorIn.Message) errorOut.message = errorIn.Message;\r\n else {\r\n if (errorIn instanceof Error) {\r\n errorOut.message = errorIn.Message || errorIn.toString();\r\n } else {\r\n errorOut = Object.assign(errorOut, errorIn);\r\n }\r\n }\r\n\r\n //Don't show abort errors, since the user initiated the abort by changing domains.\r\n if (errorOut.message.indexOf(\"AbortError\") === 0) {\r\n console.log(errorOut.message);\r\n return;\r\n }\r\n\r\n this.dispatch(errorActions.localError(eid, errorOut));\r\n window.setTimeout(() => {\r\n this.dispatch(errorActions.clearLocalError(eid));\r\n }, 5000);\r\n }\r\n\r\n hideErrors(eid){\r\n this.dispatch(errorActions.clearLocalError(eid));\r\n }\r\n\r\n /*-------------------Security & Permissions-----------*/\r\n setDomainPermission() {\r\n let state = this.store.getState();\r\n let domain = state.domain;\r\n let match = this.me.Domains.find((d) => {\r\n return (\r\n d.DomainId === (domain ? domain.DomainId : -1) ||\r\n d.Permission.PermissionLookupId >= 500\r\n );\r\n });\r\n if (match) {\r\n return (this.domainPermission = match.Permission);\r\n }\r\n }\r\n\r\n setTenantPermission() {\r\n let match = this.me.User.Permissions.find((d) => {\r\n return d.PermissionLookupId >= 500;\r\n });\r\n if (match) {\r\n return (this.tenantPermission = match);\r\n }\r\n }\r\n\r\n \r\n\r\n isTenantAdmin() {\r\n if (!this.tenantPermission) this.setTenantPermission();\r\n if (!this.tenantPermission) return false;\r\n return this.tenantPermission.PermissionLookupId >= 500;\r\n }\r\n\r\n isDomainAdmin() {\r\n return true;\r\n // if (!this.domainPermission) this.setDomainPermission();\r\n // if (!this.domainPermission) return false;\r\n // return this.domainPermission.PermissionLookupId >= 100;\r\n }\r\n\r\n isDomainEditor() {\r\n return false;\r\n }\r\n\r\n isDomainSubscriber() {\r\n return false;\r\n // if (!this.domainPermission) this.setDomainPermission();\r\n // if (!this.domainPermission) return false;\r\n // return this.domainPermission.PermissionLookupId >= 1;\r\n }\r\n\r\n hasAnyDomainAdmin() {\r\n return true;\r\n }\r\n\r\n isMyEntity(entityObject) {\r\n return entityObject.CreatedBy === this.me.User.UserId;\r\n }\r\n\r\n hasAcceptedTerms() {\r\n let state = this.store.getState();\r\n let termsUpdatedDate = state.terms.dateUpdated;\r\n let userTermsAcceptedDate = state.account.User.TermsAccepted;\r\n let termsUpdatedTicks = new Date(termsUpdatedDate).getTime();\r\n let userTermsAcceptedTicks = new Date(userTermsAcceptedDate).getTime();\r\n if (userTermsAcceptedTicks < termsUpdatedTicks) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n async setAcceptedTerms() {\r\n let newUserObj = {\r\n TermsAccepted: new Date().toISOString(),\r\n };\r\n\r\n await this.api.updateUser(newUserObj);\r\n }\r\n\r\n /*-------------------Translation-----------*/\r\n t(key, exact, opts) {\r\n if (this.settings) {\r\n let tOverride = this.getSetting(\"t.\" + key);\r\n if (tOverride) {\r\n return tOverride;\r\n }\r\n }\r\n\r\n let selectorFunc = _.property(key.split(\".\"));\r\n let result = selectorFunc(this.translation);\r\n let strOutput = exact ? result : result || key;\r\n return opts ? this.supplant(strOutput, opts) : strOutput;\r\n }\r\n\r\n supplant(str, opts) {\r\n return str.replace(/{([^{}]*)}/g, function (a, b) {\r\n let r = opts[b];\r\n return typeof r === \"string\" || typeof r === \"number\" ? r : a;\r\n });\r\n }\r\n\r\n /*-------------------Logging-----------*/\r\n registerLogging() {\r\n this.log = console.log.bind(window.console);\r\n this.warn = console.warn.bind(window.console);\r\n this.time = console.time.bind(window.console);\r\n this.timeEnd = console.timeEnd.bind(window.console);\r\n }\r\n\r\n unregisterLogging() {\r\n this.log = () => {};\r\n this.warn = () => {};\r\n this.time = () => {};\r\n this.timeEnd = () => {};\r\n }\r\n\r\n logState() {\r\n this.log(this.store.getState());\r\n }\r\n\r\n logProcess() {\r\n this.log(process.env);\r\n }\r\n\r\n /*-------------------Utility methods-----------*/\r\n triggerWindowResize(delay) {\r\n window.setTimeout(() => {\r\n window.dispatchEvent(new Event(\"resize\"));\r\n }, delay || 500);\r\n }\r\n\r\n isOverridden(entity) {\r\n let eName = typeof entity === \"object\" ? entity.modelName : entity;\r\n let overrideSetting = this.getSetting(\"OverrideParent:\" + eName);\r\n if (overrideSetting) {\r\n if (overrideSetting.toLowerCase() === \"true\") return true;\r\n }\r\n return false;\r\n }\r\n\r\n getSetting(name) {\r\n let settingRecord = this.settings.findByKey(name);\r\n let settingValue = null;\r\n if (settingRecord && settingRecord.Value) {\r\n settingValue = settingRecord.Value;\r\n }\r\n\r\n return settingValue;\r\n }\r\n\r\n getTenantOption(name) {\r\n if (!this.tenantOptions) {\r\n try {\r\n this.tenantOptions = JSON.parse(this.me.Tenant.Options || \"{}\");\r\n } catch (e) {\r\n this.tenantOptions = {};\r\n }\r\n }\r\n return this.tenantOptions[name] || null;\r\n }\r\n\r\n async getConfig(name, configType) {\r\n await this.configurations.load();\r\n return this.configurations.get().find((config) => {\r\n if (configType) {\r\n return (\r\n config.ConfigurationTypeLookupId === configType &&\r\n config.Name === name\r\n );\r\n } else {\r\n return config.Name === name;\r\n }\r\n });\r\n }\r\n\r\n loadScript(uri) {\r\n return new Promise((resolve, reject) => {\r\n var tag = document.createElement(\"script\");\r\n tag.src = uri;\r\n tag.async = true;\r\n tag.onload = () => {\r\n resolve();\r\n };\r\n var firstScriptTag = document.getElementsByTagName(\"script\")[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n });\r\n }\r\n\r\n /*-------------------Notifications-----------*/\r\n async getUserNotifications() {\r\n let notificationsArr = [];\r\n\r\n let reduxStore = this.store.getState();\r\n let userNotificationAcknowledgedDate =\r\n reduxStore.account.User.NotificationsAcknowledged;\r\n let releaseNotesUpdatedDate = reduxStore.release.dateUpdated;\r\n let userNotificationAcknowledgedTicks = new Date(\r\n userNotificationAcknowledgedDate\r\n ).getTime();\r\n let releaseNotesUpdatedTicks = new Date(releaseNotesUpdatedDate).getTime();\r\n\r\n if (userNotificationAcknowledgedTicks < releaseNotesUpdatedTicks) {\r\n notificationsArr.push({\r\n id: 1,\r\n type: \"new_release\",\r\n Message: this.t(\"util.releaseNotification\", null, [\r\n process.env.REACT_APP_VERSION,\r\n ]),\r\n });\r\n }\r\n\r\n let payload = {\r\n type: \"LOAD_NOTIFICATIONS\",\r\n notifications: notificationsArr,\r\n };\r\n this.dispatch(payload);\r\n\r\n return notificationsArr;\r\n }\r\n\r\n async removeNotification(notification) {\r\n let payload = { type: \"REMOVE_NOTIFICATION\", notification: notification };\r\n await this.dispatch(payload);\r\n\r\n if (this.store.getState().notifications.length === 0) {\r\n this.updateUserNotificationsAcknowledged();\r\n }\r\n }\r\n\r\n async updateUserNotificationsAcknowledged() {\r\n let newUserObj = {\r\n NotificationsAcknowledged: new Date().toISOString(),\r\n };\r\n await this.api.updateUser(newUserObj).then(() => {\r\n this.dispatch(accountActions.loadAccount(this.authenticator.mode));\r\n });\r\n }\r\n\r\n /*-------------------Cross-page/Nav-----------*/\r\n setHistory(history) {\r\n var self = this;\r\n this.history = history;\r\n this.navCount = 0;\r\n this.history.listen((location, action) => {\r\n self.navCount++;\r\n if (self.navCount > 2) self.clearCrossPage();\r\n });\r\n }\r\n\r\n set crossPage(value) {\r\n this.navCount = 0;\r\n this.storage.set(\"crossPage\", value);\r\n }\r\n\r\n get crossPage() {\r\n return JSON.parse(this.storage.get(\"crossPage\"));\r\n }\r\n\r\n clearCrossPage() {\r\n this.storage.remove(\"crossPage\");\r\n }\r\n\r\n /*-------------------Themes-----------*/\r\n setTheme(theme, e) {\r\n this.storage.set(\"theme\", theme);\r\n this.currentTheme = theme;\r\n\r\n var pc = document.getElementById(\"page-container\");\r\n var toggles = document.getElementsByClassName(\"theme-toggle\");\r\n [].forEach.call(toggles, function (elem) {\r\n elem.classList.remove(\"active\");\r\n });\r\n\r\n var target = e.target;\r\n target.classList.add(\"active\");\r\n\r\n if (theme === \"Dark\") {\r\n pc.classList.add(\"dark-mode\");\r\n document.body.classList.add(\"dark\");\r\n } else {\r\n pc.classList.remove(\"dark-mode\");\r\n document.body.classList.remove(\"dark\");\r\n }\r\n }\r\n\r\n //Get variables for use in custom algo expression\r\n async getVariables() {\r\n var self = this;\r\n\r\n //default variables\r\n let variables = [\r\n \"Projection\",\r\n \"Complexity\",\r\n \"ComplexityNumeric\",\r\n \"Role\",\r\n \"Department\",\r\n \"Organization\",\r\n \"WorkItemName\",\r\n \"ActivityName\",\r\n \"ActivityId\",\r\n \"Begin\",\r\n \"End\",\r\n ];\r\n\r\n await self.attributeTypeLookup.load();\r\n await self.attributes.load().then(() => {\r\n self.attributes.get().forEach((attribute) => {\r\n if (attribute.AttributeTypeLookupId === 3) return;\r\n let aType = self.attributeTypeLookup.lookupValue(\r\n attribute.AttributeTypeLookupId\r\n );\r\n variables.push(aType + '[\"' + attribute.Name + '\"]');\r\n });\r\n });\r\n\r\n await self.schedules.loadDefaultItem().then(async (defaultSchedule) => {\r\n if (!defaultSchedule) return;\r\n await self.schedules.loadFile(defaultSchedule.ScheduleId).then(() => {\r\n let fileContents = self.schedules.getFile(defaultSchedule.ScheduleId);\r\n if (fileContents) {\r\n let filters = fileContents.getFilterValues();\r\n filters.forEach((filter) => {\r\n if (filter.label === \"Work Item\" || filter.label === \"Activity\")\r\n return;\r\n if (filter.name === \"workitem\" || filter.name === \"activity\")\r\n return;\r\n variables.push('Schedule[\"' + filter.label + '\"]');\r\n });\r\n }\r\n });\r\n });\r\n\r\n return _.uniq(variables);\r\n }\r\n\r\n /*-------------------Dirty/clean State-----------*/\r\n isDomainDirty() {\r\n let state = this.store.getState();\r\n let domain = state.domain;\r\n if (state.domain && state.domainState) {\r\n if (state.domainState[domain.DomainId]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n markDomainDirty(domainId, entity) {\r\n if (entity) {\r\n if (\r\n entity.name === \"assignments\" ||\r\n entity.name === \"activities\" ||\r\n entity.name === \"employees\" ||\r\n entity.name === \"roles\" ||\r\n entity.name === \"departments\" ||\r\n entity.name === \"organizations\" ||\r\n entity.name === \"headcounts\" ||\r\n entity.name === \"schedules\" ||\r\n entity.name === \"actuals\" ||\r\n entity.name === \"configurations\" ||\r\n entity.name === \"permissions\" ||\r\n entity.name === \"scenarios\" ||\r\n entity.name === \"notes\" ||\r\n entity.name === \"referenceTables\" ||\r\n entity.name === \"settings\"\r\n )\r\n return;\r\n }\r\n let payload = { type: \"MARK_DOMAIN_DIRTY\", domainId: domainId };\r\n return this.dispatch(payload);\r\n }\r\n\r\n markDomainClean(domainId) {\r\n let payload = { type: \"MARK_DOMAIN_CLEAN\", domainId: domainId };\r\n return this.dispatch(payload);\r\n }\r\n\r\n /*-------------------Global Status Messages-----------*/\r\n getStatusMessageRef(React) {\r\n return (this.statusMessageRef = React.createRef());\r\n }\r\n\r\n setStatusMessage(message, className, timeout) {\r\n if (!this.statusMessageRef) return;\r\n if (!this.statusMessageRef.current) return;\r\n this.statusMessageRef.current.setMessage(message, className, timeout);\r\n }\r\n\r\n clearStatusMessage() {\r\n if (!this.statusMessageRef) return;\r\n if (!this.statusMessageRef.current) return;\r\n this.statusMessageRef.current.clearMessage();\r\n }\r\n\r\n /*-------------------Env Stuff-----------*/\r\n isProd() {\r\n return process.env.REACT_APP_ENV === \"prod\";\r\n }\r\n\r\n isDev() {\r\n return process.env.REACT_APP_ENV === \"dev\";\r\n }\r\n\r\n /*-------------------Feature Stuff-----------*/\r\n hasFeature(feature) {\r\n if (!this.featureCache) {\r\n try {\r\n this.featureCache = JSON.parse(this.me.Tenant.Features || '{\"*\":{}}');\r\n } catch (e) {\r\n this.featureCache = { \"*\": {} };\r\n }\r\n }\r\n\r\n let domain = this.getActiveDomain();\r\n let dn = domain ? domain.Name : \"*\";\r\n let querySet = this.featureCache[dn] || this.featureCache[\"*\"];\r\n if (querySet[feature]) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n denyFeature() {\r\n if (this.history) this.history.push(\"/\");\r\n let errorCode = \"account:98\";\r\n this.dispatch(\r\n errorActions.localError(errorCode, {\r\n errorCode,\r\n message: this.t(\"util.noFeatureAccess\"),\r\n })\r\n );\r\n window.setTimeout(() => {\r\n this.dispatch(errorActions.clearLocalError(errorCode));\r\n }, 5000);\r\n }\r\n\r\n /*-------------------Cache Helpers-----------*/\r\n clearProjectionsCache() {\r\n let projStore = new IdbKv.Store(\"ProjectionsStoreDB\", \"ProjectionsStore\");\r\n IdbKv.clear(projStore);\r\n }\r\n\r\n clearDataExplorerCache() {\r\n let projStore = new IdbKv.Store(\"DataExplorerDb\", \"DataExplorerStore\");\r\n IdbKv.clear(projStore);\r\n }\r\n\r\n fromDpCache(key, func) {\r\n if (!this.dpCache[key]) {\r\n this.dpCache[key] = func();\r\n }\r\n return this.dpCache[key];\r\n }\r\n\r\n clearDpCacheItem(key) {\r\n this.dpCache[key] = null;\r\n }\r\n\r\n clearDpCache() {\r\n this.dpCache = {};\r\n }\r\n redirectTo(url, data) {\r\n url = Routes.compose(url, data);\r\n this.history.push(url);\r\n }\r\n\r\n getDefaultCompany(user){\r\n user = user ? user: this.account.get();\r\n return _.findWhere(user.userCompanies,{defaultCompany:true}) || (user.userCompanies ? user.userCompanies[0]:null);\r\n }\r\n\r\n\r\n\r\n getUserRole(){\r\n let roles =this.roles;\r\n let user = this.account.get(); \r\n\r\n return user ? _.findWhere(roles,{id:user.roleId}) : null;\r\n \r\n }\r\n\r\n isSuperAdmin() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 1;\r\n }\r\n\r\n isOwner() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 2;\r\n }\r\n isAdmin() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 3;\r\n }\r\n\r\n isSales() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 4;\r\n }\r\n isPhotographer() {\r\n var role = this.getUserRole();\r\n return role !==null && typeof role !== \"undefined\" && role.id === 5;\r\n }\r\n}\r\n","import * as types from '../actionTypes';\r\n\r\nexport function setDomain(domain) {\r\n return { type: types.SET_DOMAIN, data: domain };\r\n}\r\n\r\nexport function clearDomain() {\r\n return { type: types.CLEAR_DOMAIN };\r\n}","import * as types from '../actionTypes';\r\n\r\nconst intialState = {\r\n dateUpdated : null\r\n}\r\nexport default function terms(state = intialState, action) {\r\n switch (action.type) {\r\n case types.LOAD_TERMS:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nconst intialState = {\r\n dateUpdated : null\r\n}\r\nexport default function release(state = intialState, action) {\r\n switch (action.type) {\r\n case types.LOAD_RELEASE:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import { combineReducers } from 'redux';\r\nimport error from './error';\r\nimport account from './account';\r\nimport domain from './domain';\r\nimport domainState from './domainState';\r\nimport fetching from './fetching';\r\nimport translation from './translation';\r\nimport files from './files';\r\nimport projections from './projections';\r\nimport audit from './audit';\r\nimport terms from './terms';\r\nimport release from './release';\r\nimport notifications from './notifications';\r\nimport entityTypes from '../entityTypes';\r\n\r\nlet reducerSet = {\r\n error, \r\n account,\r\n translation,\r\n domain,\r\n domainState,\r\n files,\r\n fetching,\r\n projections,\r\n audit,\r\n terms,\r\n release,\r\n notifications\r\n};\r\n\r\nentityTypes.forEach(entityObject => {\r\n reducerSet[entityObject.name] = generateEntityReducer(entityObject);\r\n if(entityObject.singleName)\r\n reducerSet[entityObject.singleName] = generateEntityReducer(Object.assign({},entityObject,{name:entityObject.singleName}));\r\n});\r\n\r\nexport default combineReducers(reducerSet);\r\n\r\nfunction generateEntityReducer(entityObject){\r\n const ACTNAME = entityObject.name.toUpperCase();\r\n // const ACTNAMESINGLE = entityObject.singleName ? entityObject.singleName.toUpperCase():'';\r\n return function (state = null, action) {\r\n switch (action.type) {\r\n case `CLEAR_${ACTNAME}`:\r\n return null; \r\n case `CLEARALL_${ACTNAME}`:\r\n return []; \r\n case `LOAD_${ACTNAME}`:\r\n return action.data; \r\n case `RELOAD_${ACTNAME}`:\r\n return [ ...state ]; \r\n case `CREATE_${ACTNAME}`: \r\n if(action.data instanceof Array !==true && state instanceof Array === true)\r\n {\r\n return [ ...(state ? state : []), action.data ]; \r\n }\r\n else if(action.data instanceof Array ===true)\r\n return [...action.data];\r\n else return action.data; \r\n case `CREATE_BULK_${ACTNAME}`: \r\n return [ ...(state ? state : []), ...action.data ]; \r\n case `UPDATE_${ACTNAME}`: \r\n if(entityObject.single ===true || state instanceof Array !== true)\r\n return state ? Object.assign({}, state) : state;\r\n\r\n return state ? state.map((item) => {\r\n if (item[entityObject.idField] === action.data[entityObject.idField]) { \r\n return action.data; \r\n }else{\r\n if (entityObject.isFileListingTable && action.data.IsDefault){\r\n return Object.assign({}, item, { IsDefault: false });\r\n }else{\r\n return Object.assign({}, item);\r\n }\r\n }\r\n }) : state;\r\n case `DELETE_${ACTNAME}`:\r\n return state.filter((item) => {\r\n if(action.data)\r\n {return action.data.indexOf(item[entityObject.idField]) === -1;} \r\n }); \r\n default:\r\n return state;\r\n }\r\n }\r\n}","import * as types from '../actionTypes';\r\nimport _ from 'underscore';\r\n\r\nexport default function error(state = null, action) {\r\n switch (action.type) {\r\n case types.GLOBAL_ERROR:\r\n return action.data;\r\n case types.LOCAL_ERROR:\r\n return Object.assign({}, state, { [action.eid]: action.data }) \r\n case types.CLEAR_LOCAL_ERROR:\r\n return _.omit(state, action.eid);\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function account(state = null, action) {\r\n switch (action.type) {\r\n case types.LOAD_ACCOUNT:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function translation(state = {}, action) {\r\n switch (action.type) {\r\n case types.LOAD_TRANSLATION:\r\n return action.data;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function domain(state = null, action) {\r\n switch (action.type) {\r\n case types.SET_DOMAIN:\r\n return action.data;\r\n case types.CLEAR_DOMAIN:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\nimport _ from 'underscore';\r\n\r\nexport default function domainState(state = {}, action) {\r\n switch (action.type) {\r\n case types.MARK_DOMAIN_DIRTY:\r\n return Object.assign({}, state, { [action.domainId]: true }) \r\n case types.MARK_DOMAIN_CLEAN:\r\n return _.omit(state, action.domainId);\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function files(state = {}, action) {\r\n switch (action.type) {\r\n case types.LOAD_FILE:\r\n return Object.assign({}, state, { [ action.key ] : action.data })\r\n case types.CLEAR_FILES:\r\n return {} \r\n case types.FILE_ERROR:\r\n return Object.assign({}, state, { [ action.key ] : null })\r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\nimport _ from 'underscore';\r\n\r\nexport default function fetching(state = [], action) {\r\n switch (action.type) {\r\n case types.START_FETCH:\r\n return [ ...state, action.data ];\r\n case types.END_FETCH:\r\n return state.map((item) => {\r\n if (item === action.data) { \r\n return '#' + action.data; \r\n }else{\r\n return item;\r\n }\r\n });\r\n case types.REMOVE_FETCH:\r\n return _.without(state, '#' + action.data); \r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function projections(state = {}, action) {\r\n switch (action.type) {\r\n case types.LOAD_PROJECTIONS:\r\n return Object.assign({}, state, { [ action.key ] : action.data })\r\n case types.CLEAR_PROJECTIONS:\r\n return {} \r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function audit(state = {}, action) {\r\n switch (action.type) {\r\n case types.AUDIT_ENTITY_ITEM:\r\n return Object.assign({}, state, { [ action.key ] : action.data }) \r\n default:\r\n return state;\r\n }\r\n}","import * as types from '../actionTypes';\r\n\r\nexport default function notifications(state = [], action) {\r\n switch (action.type) {\r\n case types.LOAD_NOTIFICATIONS:\r\n return action.notifications;\r\n case types.REMOVE_NOTIFICATION:\r\n let leftNotifications = state.filter(x => {\r\n return x.id !== action.notification.id;\r\n });\r\n return leftNotifications;\r\n case types.CLEAR_NOTIFICATIONS:\r\n return {}\r\n default:\r\n return state;\r\n }\r\n}","import tinycolor from 'tinycolor2';\r\n\r\nexport default class ColorManager{\r\n constructor(){\r\n this.currentIndex = -1;\r\n this.set = ColorManager.COLORS;\r\n }\r\n\r\n reset(){\r\n this.currentIndex = -1;\r\n }\r\n\r\n next(){\r\n this.currentIndex++;\r\n if (this.currentIndex > this.set.length)this.currentIndex = 0;\r\n return this.current();\r\n }\r\n\r\n current(isAlt, isAlt2){\r\n if (isAlt){\r\n if(isAlt2){\r\n return tinycolor(this.at(this.currentIndex)).darken(20).toString();\r\n }else{\r\n return tinycolor(this.at(this.currentIndex)).darken().toString();\r\n }\r\n }else{\r\n return this.at(this.currentIndex);\r\n }\r\n }\r\n\r\n at(index){\r\n let newIndex = index >= this.set.length ? index % this.set.length : index;\r\n return this.set[newIndex];\r\n }\r\n\r\n static get COLORS(){\r\n return [\r\n //new colors\r\n '#e91e63', '#9f2db3', '#673ab7', '#3f51b4', '#2596f3', '#24bcd4', '#179688', '#8ac34a', \r\n '#cddc39', '#e8d300', '#fdc108', '#fc9800', '#fc5722',\r\n\r\n //old colors\r\n '#0074c7', '#809693', '#11C700', '#B600C7', '#00C7B6', '#C70011', '#C7B600', '#0597FF',\r\n '#FF6D05', '#D157A0', '#5300C7', \"#FF4A46\", \"#008941\", \"#006FA6\", \"#A30059\", \"#DBDB00\",\r\n \"#FFDBE5\", \"#7A4900\", \"#0000A6\", \"#63FFAC\", \"#B79762\", \"#004D43\", \"#8FB0FF\", \"#997D87\",\r\n \"#5A0007\", \"#C75300\", \"#1B4400\", \"#4FC601\", \"#3B5DFF\", \"#4A3B53\", \"#FF2F80\", \"#1CE6FF\",\r\n \"#61615A\", \"#BA0900\", \"#6B7900\", \"#00C2A0\", \"#FFAA92\", \"#FF90C9\", \"#B903AA\", \"#D16100\",\r\n \"#DDEFFF\", \"#000035\", \"#7B4F4B\", \"#A1C299\", \"#300018\", \"#0AA6D8\", \"#013349\", \"#00846F\",\r\n \"#372101\", \"#FFB500\", \"#C2FFED\", \"#A079BF\", \"#CC0744\", \"#C0B9B2\", \"#C2FF99\", \"#001E09\",\r\n \"#00489C\", \"#6F0062\", \"#0CBD66\", \"#EEC3FF\", \"#456D75\", \"#B77B68\", \"#7A87A1\", \"#788D66\",\r\n \"#885578\", \"#FAD09F\", \"#FF8A9A\", \"#00C753\", \"#BEC459\", \"#456648\", \"#0086ED\", \"#886F4C\",\r\n \"#34362D\", \"#B4A8BD\", \"#00A6AA\", \"#452C2C\", \"#636375\", \"#A3C8C9\", \"#FF913F\", \"#938A81\",\r\n \"#575329\", \"#00FECF\", \"#B05B6F\", \"#8CD0FF\", \"#3B9700\", \"#04F757\", \"#C8A1A1\", \"#1E6E00\",\r\n \"#7900D7\", \"#A77500\", \"#6367A9\", \"#A05837\", \"#6B002C\", \"#772600\", \"#D790FF\", \"#9B9700\",\r\n \"#549E79\", \"#FFF69F\", \"#201625\", \"#72418F\", \"#BC23FF\", \"#99ADC0\", \"#3A2465\", \"#922329\",\r\n \"#5B4534\", \"#FDE8DC\", \"#404E55\", \"#0089A3\", \"#CB7E98\", \"#A4E804\", \"#324E72\", \"#FF34FF\"\r\n ];\r\n }\r\n\r\n}","import React from 'react';\r\nimport ColorManager from '../util/ColorManager';\r\nimport tinycolor from 'tinycolor2';\r\n\r\nconst userColors = new ColorManager();\r\n\r\nconst UserIcon = ({ user, className, altUser}) => {\r\n if (!user && !altUser)return null;\r\n\r\n let bits = altUser ? altUser.split(' ') : user.firstName.split(' ');\r\n let initials = bits.reduce((accumulator, value) => {\r\n return accumulator + (value[0] || '');\r\n }, '').replace(/\\W/g, '').toUpperCase();\r\n\r\n let color = altUser ? '#dddddd' : userColors.at(user.UserId);\r\n let colorObj = tinycolor(color);\r\n if (colorObj.getBrightness() > 175){\r\n color = colorObj.darken(10).toString();\r\n }\r\n\r\n return (\r\n
\r\n {initials}\r\n
\r\n );\r\n};\r\n\r\nexport default UserIcon;","/* global EM */\r\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\r\nimport React, { Component } from 'react';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport Routes from \"../app/Routes\";\r\nimport { matchPath } from 'react-router';\r\nimport UserIcon from './UserIcon';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n Collapse,\r\n Navbar,\r\n NavbarToggler,\r\n Nav,\r\n NavItem,\r\n NavLink as RsNavLink,\r\n UncontrolledDropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem\r\n} from 'reactstrap';\r\n\r\n\r\n\r\nclass Header extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.state = {\r\n isOpen: false,\r\n allowAnonymous: this.props.allowAnonymous,\r\n companies: []\r\n };\r\n\r\n this.closeMenus = this.closeMenus.bind(this);\r\n if (!EM.history) EM.setHistory(this.props.history);\r\n }\r\n\r\n componentDidMount() {\r\n // Regular expression pattern to match \"/booking/\" followed by a number\r\n const pattern = /\\/booking\\/(\\d+)/;\r\n const patternRescheduleAppointment = /\\/rescheduleAppointmentBooking\\/(\\d+)/;\r\n // Check if the string matches the pattern\r\n const match = this.props.location.pathname.match(pattern) || this.props.location.pathname.match(patternRescheduleAppointment)\r\n if(match){\r\n return\r\n }\r\n var companies = EM.companies.get();\r\n if (companies && companies.length > 0) this.setState({ companies });\r\n else {\r\n EM.companies.load().then(() => {\r\n this.setState({ companies: EM.companies.get() });\r\n })\r\n }\r\n }\r\n\r\n toggle() {\r\n this.setState({\r\n isOpen: !this.state.isOpen\r\n });\r\n }\r\n\r\n closeMenus() {\r\n var elem = document.getElementById('root');\r\n if (elem) elem.click();\r\n this.setState({ isOpen: false });\r\n }\r\n\r\n getCompanyId() {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true }) || user.userCompanies[0];\r\n return company.companyId;\r\n }\r\n\r\n getDefaultCompany() {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true }) || user.userCompanies[0];\r\n return company;\r\n }\r\n\r\n changeCompany(companyId) {\r\n console.log(`change company : ${companyId}`);\r\n let user = EM.account.get();\r\n EM.account.executePut({ userId: user.userId, companyId: companyId }, null, Routes.clientApi.changeDefaultCompany, {},true).then((account) => {\r\n EM.storage.set('account',account);\r\n if(window.location.pathname.indexOf('/companyConfig/')===0){\r\n EM.redirectTo(Routes.client.companyConfig,{companyId:companyId})\r\n window.location.reload();\r\n } else {\r\n window.location.reload();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const isDashboard = !!matchPath(this.props.location.pathname, Routes.client.dashboard);\r\n const allowAnonymous = this.state.allowAnonymous;\r\n if (allowAnonymous) return \"\";\r\n const companyId = this.getCompanyId();\r\n const defaultCompany = this.getDefaultCompany();\r\n const isSuperAdmin = EM.isSuperAdmin();\r\n const isAdmin = EM.isAdmin();\r\n const isSales = EM.isSales();\r\n const isPhotographer = EM.isPhotographer();\r\n\r\n const companies = this.state.companies;\r\n return (\r\n \r\n {\r\n // EM.clearActiveDomain();\r\n }}>\r\n {/* \"Logo\" */}\r\n \r\n \r\n \r\n {this.props.domain ?\r\n
\r\n {\r\n // EM.clearActiveDomain();\r\n }}>{this.props.account.Tenant.DisplayName}\r\n
{this.props.domain.DisplayName}
\r\n
\r\n : null}\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n}\r\n\r\nexport default Header;","import React, { Component } from 'react';\r\nimport classNames from 'classnames';\r\n\r\nclass PageTitle extends Component {\r\n render() {\r\n return (\r\n
\r\n

\r\n {this.props.icon?:null}\r\n {this.props.img?{this.props.title}/:null}\r\n {this.props.title}\r\n { this.props.collapsible ? (this.props.collapsed ? : ) : null}\r\n

\r\n {!this.props.bar && this.props.text? \r\n
{this.props.text}
\r\n : null }\r\n {this.props.children?\r\n
\r\n {this.props.children}\r\n
\r\n :null}\r\n {this.props.bar && this.props.text? \r\n

{this.props.text}

\r\n : null } \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PageTitle;\r\n","import React from 'react'\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n Button,\r\n } from 'reactstrap'\r\n \r\nconst CardStats = ({label, value, color, navigate, to}) => {\r\n return (\r\n \r\n \r\n
{label}
\r\n
\r\n \r\n

{value}

\r\n {navigate? (\r\n // \r\n ): null}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CardStats;\r\n\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport CardStats from \"../components/CardStats\";\r\nimport _ from 'underscore';\r\nimport {\r\n Card,\r\n CardBody,\r\n CardHeader,\r\n Button,\r\n} from 'reactstrap'\r\n\r\nclass DashboardCount extends Component {\r\n constructor(props) {\r\n super(props);\r\n let user = EM.account.get();\r\n this.entity = EM.dashboard\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n this.state = {\r\n parentRecordDetail: { id: company.companyId },\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n getColorForValue = (value) => {\r\n return 'green';\r\n };\r\n\r\n render() {\r\n let data = {};\r\n if (this.entity.isLoaded()) {\r\n data = this.entity.get();\r\n if (data.totalCompanies) delete data.totalCompanies\r\n }\r\n return (\r\n
\r\n

Events

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

User Orders

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
Packages
\r\n
\r\n \r\n
\r\n
\r\n
Consumed
\r\n

{data?.studioPackageSales?.length ? `$${data.studioPackageSales[0].totalConsumedPrepaidPackagesPrice}` : ''}

\r\n\r\n
\r\n
\r\n
Non Consumed
\r\n

{data?.studioPackageSales?.length ? `$${data.studioPackageSales[0].totalNonConsumedPrepaidPackagesPrice}` : ''}

\r\n\r\n
\r\n
\r\n
\r\n this.props.history.push(\"/eventsWithPackagesSales\")} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Users

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default DashboardCount;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport PageTitle from '../components/PageTitle';\r\nimport _ from 'underscore';\r\nimport DashboardCount from './DashboardCount'\r\nclass Home extends Component {\r\n \r\n alpha(set){\r\n return _.sortBy(set, item => {\r\n return (item.order || 'z') + item.DisplayName;\r\n });\r\n }\r\n render() {\r\n const isAdmin = EM.isAdmin();\r\n const isSuperAdmin = EM.isSuperAdmin();\r\n let pageTitle = \"\"\r\n if(!isAdmin && !isSuperAdmin) {\r\n pageTitle = `Welcome ${this.props.account.firstName} ${this.props.account.lastName}!`\r\n } else {\r\n pageTitle = `Welcome to ${EM.getDefaultCompany().companyName}!`\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {isAdmin || isSuperAdmin ? (\r\n \r\n ): null} \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Home;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nclass NoOrderUsers extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.noOrderUsers;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
No Purchases
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
Event IDEvent NameUser's Cart CountActions
{row.locationId}{row.locationName}{row.noOrderUsersCount}\r\n this.props.history.push(`/userNoOrders/${row.locationId}`)}/>\r\n
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default NoOrderUsers;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass UserNoOrder extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.userNoOrderUsers;\r\n\r\n let company = EM.getDefaultCompany();\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId, locationId: this.props.match.params.locationId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
{data&&data?.noOrderUsers?.length?`No Purchases: ${data.locationName}`:\"No Purchases\"}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data && data?.noOrderUsers?.length ? data.noOrderUsers.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
NamePhoneEmailAddress
{`${row.firstName||''} ${row.lastName||''}`}{row.phoneNumber}{row.emailAddress}{`${row.address?`${row.address}, ${row.city}, ${row.state}, ${row.zip}`:''}`}
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserNoOrder;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass PackagesSale extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.eventsWithPackagesSales;\r\n\r\n let company = EM.getDefaultCompany();\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId, locationId: this.props.match.params.locationId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
{\"Events with Packages Sales\"}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data && data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
Location NameTotal Consumed Prepaid Packages PriceTotal Non Consumed Prepaid Packages PriceTotal Consumed By Users Total Non Consumed By Users
{row.locationName}${row.totalConsumedPrepaidPackagesPrice}${row.totalNonConsumedPrepaidPackagesPrice}{row.numberOfUsersConsumed}{row.numberOfUsersNonConsumed}
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PackagesSale;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass CompletedOrders extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.totalCompletedOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
Completed Orders
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
Event IDEvent NameUser's Cart CountActions
{row.locationId}{row.locationName}{row.userCartCount}\r\n this.props.history.push(`/userCompletedOrders/${row.locationId}`)}/>\r\n
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CompletedOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass UserCompletedOrder extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.userCompletedOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId, locationId: this.props.match.params.locationId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n \r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
{data?.length?`Completed Orders: ${data[0].locationName}`:\"Completed Orders\"}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
NamePhoneEmailAddress
{`${row.firstName||''} ${row.lastName||''}`}{row.phoneNumber}{row.emailAddress}{`${row.address?`${row.address}, ${row.city}, ${row.state}, ${row.zip}`:''}`}
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserCompletedOrder;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\n\r\nclass TotalInCompleteOrders extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.incompleteOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
Incomplete Orders
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
Event IDEvent NameUser's Cart CountAction
{row.locationId}{row.locationName}{row.userCartCount}\r\n this.props.history.push(`/userIncompleteOrders/${row.locationId}`)}/>\r\n
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default TotalInCompleteOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\nclass UserInCompleteOrders extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.userIncompleteOrders;\r\n\r\n let company = EM.getDefaultCompany();\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId, locationId: this.props.match.params.locationId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
{data?.length?`Incompleted Orders: ${data[0].locationName}`:\"Inompleted Orders\"}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data?.length ? data.map((row) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )): \r\n \r\n }\r\n \r\n
NamePhoneEmailAddress
{`${row.firstName||''} ${row.lastName||''}`}{row.phoneNumber}{row.emailAddress}{`${row.address?`${row.address}, ${row.city}, ${row.state}, ${row.zip}`:''}`}
{errMsg}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserInCompleteOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\n\r\nclass FutureEvents extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.futureEvents;\r\n\r\n let company = EM.getDefaultCompany();\r\n\r\n this.state = {\r\n parentRecordDetail:{companyId:company.companyId},\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n render() {\r\n let data = [];\r\n let errMsg = ''\r\n \r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n if(!data?.length) errMsg= \"No Record Found\"\r\n }\r\n return (\r\n
\r\n
\r\n \r\n

Future Events Details

\r\n
\r\n {data?.length > 0 ? data.map((row) => (\r\n
\r\n
\r\n {/*
Order {row.name}
*/}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {row.timeSlotsCounts.map((value, index) => (\r\n \r\n \r\n \r\n \r\n ))} \r\n \r\n
IDNameFree 8x10 Promotion\tFree Image PromotionForce 8x10 PromotionForce Image Promotion
{row.locationId}{row.name}{row.free810Promotion?\"Yes\":\"No\"}{row.freeImagePromotion?\"Yes\":\"No\"}{row.force810Promotion?\"Yes\":\"No\"}{row.forceImagePromotion?\"Yes\":\"No\"}
Time Slot By Day
\r\n Date\r\n \r\n Counts\r\n
{Dates.convertDateStringWithT(value.timeSlot)}{value.counts}
\r\n
\r\n
\r\n
\r\n
\r\n )):
\r\n
{errMsg}
\r\n
}\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.length > 0 && data.map((row, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {row.timeSlotsCounts.length?(\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {row.timeSlotsCounts.map((value, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ):null}\r\n \r\n ))}\r\n
#NameFree 8x10 Promotion\tFree Image PromotionForce 8x10 PromotionForce Image Promotion
{index+1}{row.name}{row.free810Promotion?\"Yes\":\"No\"}{row.freeImagePromotion?\"Yes\":\"No\"}{row.force810Promotion?\"Yes\":\"No\"}{row.forceImagePromotion?\"Yes\":\"No\"}
Time Slot By Day
\r\n Date\r\n \r\n Count\r\n
{Dates.isoToDateTime(value.timeSlot, \"YYYY-MM-DD hh:mm A\")}{value.counts}
*/}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default FutureEvents;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport Spinner from '../Spinner';\r\n\r\nexport default class NoTableData extends Component {\r\n render() {\r\n return (\r\n
\r\n { this.props.data ? \r\n EM.t('util.table.noData') \r\n : \r\n \r\n } \r\n
\r\n );\r\n }\r\n};","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, FormGroup, FormText, CustomInput, Label, Alert } from 'reactstrap';\r\nimport PanelModal from '../PanelModal';\r\nimport CsvFileViewer from '../CsvFileViewer';\r\nimport File from '../../util/File';\r\nimport { Validate } from '../../util/EntityValidators';\r\nimport _ from 'underscore';\r\nimport Spinner from '../Spinner';\r\n\r\nclass EntityImporter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentDataSet: null,\r\n errors: [],\r\n canImport: false,\r\n importItems: null,\r\n updatedItemRows: null,\r\n parsingFile: false\r\n };\r\n\r\n this.onClose = this.onClose.bind(this);\r\n this.onImport = this.onImport.bind(this);\r\n this.parseFile = this.parseFile.bind(this);\r\n this.entityTitle = this.props.entity.t('title');\r\n }\r\n\r\n onClose() {\r\n this.props.onClose();\r\n this.clearState();\r\n }\r\n\r\n onImport() {\r\n let formattedItems = null;\r\n\r\n //If caller wants to modify items before sending to server for import\r\n if (this.props.onBeforeImport) {\r\n try{\r\n formattedItems = this.props.onBeforeImport([...this.state.importItems]);\r\n if (formattedItems === false)return;\r\n }catch(e){\r\n console.log(e);\r\n return;\r\n }\r\n }\r\n\r\n this.props.entity.import(formattedItems ? formattedItems : this.state.importItems);\r\n this.props.onClose();\r\n this.clearState();\r\n }\r\n\r\n clearState(withErrors) {\r\n this.setState({ currentDataSet: null, errors: withErrors || [], canImport: false, importItems: null, updatedItemRows: null, parsingFile: false });\r\n }\r\n\r\n async parseFile(event) {\r\n var input = document.getElementById('importFile');\r\n let csvContents = null;\r\n try {\r\n csvContents = await File.readCSV(input);\r\n } catch (e) {\r\n this.clearState([['', e.message]]);\r\n return;\r\n }\r\n\r\n if (!csvContents){\r\n this.setState({ parsingFile: false });\r\n return;\r\n } \r\n\r\n \r\n let importLimitSetting = parseInt(EM.getTenantOption('importLimit'));\r\n let importLimit = isNaN(importLimitSetting) ? 10000 : importLimitSetting;\r\n if (csvContents.length > (importLimit + 1)){\r\n this.clearState([['', 'File exceeds import limit of ' + importLimit + ' rows.']]);\r\n return;\r\n }\r\n\r\n try {\r\n let results = await this.generateDataSetFromCsv(csvContents);\r\n this.setState({ currentDataSet: csvContents, errors: [], canImport: true, importItems: results.importItems, updatedItemRows: results.updatedItemRows, parsingFile: false });\r\n } catch (e) {\r\n this.setState({ currentDataSet: csvContents, errors: e, canImport: false, importItems: null, updatedItemRows: null, parsingFile: false }); \r\n }\r\n }\r\n\r\n generateDataSetFromCsv(csvContents) {\r\n let self = this;\r\n return new Promise(function (resolve, reject) {\r\n let keys = [];\r\n let validators = [];\r\n let columnDefs = [];\r\n let items = [];\r\n let updatedItemRows = {};\r\n let columnDefinitionsTextIndex = _.indexBy(self.props.columns, 'text');\r\n\r\n //Check that the CSV contains the correct columns\r\n let columnMessages = [];\r\n csvContents[0].forEach((displayName, colIndex) => {\r\n var col = columnDefinitionsTextIndex[displayName];\r\n if (!col) {\r\n columnMessages.push(['0:' + colIndex, EM.t('error.csv-wrong-column', false, [displayName, self.entityTitle])]);\r\n } else {\r\n columnDefs.push(col);\r\n keys.push(col.dataField);\r\n validators.push(col.validators || []);\r\n }\r\n });\r\n if (columnMessages.length > 0) {\r\n reject(columnMessages);\r\n return;\r\n }\r\n\r\n //Validate each row\r\n let validationMessages = [];\r\n csvContents.slice(1).forEach((row, rowIndex) => {\r\n //Perform validation on the row \r\n row.forEach((value, colIndex) => {\r\n let validationResult = Validate(value, validators[colIndex], (columnDefs[colIndex].getValidationContext ? columnDefs[colIndex].getValidationContext() : null), 'import');\r\n if (validationResult) {\r\n let dn = csvContents[0][colIndex];\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, dn + ': ' + validationResult]);\r\n }\r\n });\r\n });\r\n\r\n //Reverse lookup fields based on column config so that server is sent IDs, not text strings\r\n let newCsvContents = csvContents.slice(1).map((row, rowIndex) => {\r\n return row.map((valueIn, colIndex) => {\r\n let value = (valueIn && valueIn.trim) ? valueIn.trim() : valueIn;\r\n let columnDef = columnDefs[colIndex];\r\n if (columnDef.fromEntity) {\r\n let id = columnDef.fromEntity.lookupId(value);\r\n if ((typeof id === 'undefined' || id === null) && !columnDef.allowNulls) {\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, columnDef.text + ': Not found']);\r\n return null;\r\n } else {\r\n return id;\r\n }\r\n }else if (columnDef.fromList){\r\n let item = columnDef.fromList.find(item => item.label === value);\r\n if (item){\r\n return item.value;\r\n }else{\r\n return null;\r\n }\r\n } else if (columnDef.asActive) {\r\n return value === 'Yes' ? 'true' : 'false';\r\n } else if (columnDef.asPercentage) {\r\n return (value ? (value+\"\").replace('%','') : 0) / 100;\r\n } else if (columnDef.asPermission) {\r\n let permId = EM.permissionLookup.lookupId(value);\r\n if (!permId || permId > 100){\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, columnDef.text + ': Not found']);\r\n return null;\r\n }\r\n return permId;\r\n } else if (columnDef.asUser) {\r\n let userId = EM.users.lookupId(value);\r\n if (!userId){\r\n validationMessages.push([(rowIndex + 1) + ':' + colIndex, columnDef.text + ': Not found']);\r\n return null;\r\n }\r\n return userId;\r\n } else {\r\n return value;\r\n }\r\n });\r\n });\r\n\r\n if (validationMessages.length > 0) {\r\n reject(validationMessages);\r\n return;\r\n }\r\n\r\n newCsvContents.forEach((row, rowIndex) => { \r\n const item = _.object(keys, row.map(value => {\r\n if (typeof value !== \"undefined\" && value !== null){\r\n if (value.trim){\r\n return value.trim();\r\n }else{\r\n return value;\r\n }\r\n }else{\r\n return value;\r\n }\r\n }));\r\n \r\n const existingItem = self.props.entity.findItem(item); \r\n if (existingItem) {\r\n updatedItemRows[rowIndex + 1] = 'Update';\r\n item[self.props.entity.idField] = existingItem[self.props.entity.idField];\r\n } else {\r\n updatedItemRows[rowIndex + 1] = 'New';\r\n }\r\n\r\n items.push(item);\r\n });\r\n\r\n resolve({ importItems: items, updatedItemRows: updatedItemRows });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {EM.t('util.table.importTitle', false, [this.entityTitle])}\r\n \r\n
\r\n \r\n \r\n event.target.value = null} onChange={async (event) => {\r\n let fileName = event.target.value.replace(\"C:\\\\fakepath\\\\\", \"\");\r\n document.getElementsByClassName('custom-file-label')[0].innerText = fileName;\r\n this.setState({ parsingFile: true });\r\n await this.parseFile();\r\n }} label=\"Select a file\" />\r\n \r\n {EM.t('util.table.importInstructions')}\r\n \r\n \r\n {this.state.parsingFile ? \r\n \r\n : null } \r\n {this.state.errors.length <= 0 && this.state.currentDataSet !== null ?\r\n {EM.t('util.table.importAllowed')}\r\n : null}\r\n {this.state.errors.length > 0 ?\r\n {EM.t('util.table.importDisallowed')}\r\n : null}\r\n {this.state.errors.length > 0 ?\r\n
    \r\n {this.state.errors.slice(0, 20).map((error, index) => {\r\n let lr = error[0] ? error[0].split(':') : null;\r\n return
  • \r\n {lr ?\r\n Line {parseInt(lr[0]) + 1}, Column {parseInt(lr[1]) + 1}: \r\n : null}\r\n {error[1]}\r\n
  • \r\n })}\r\n {this.state.errors && this.state.errors.length > 20 ? \r\n
  • {EM.t('util.table.moreErrors', null , [this.state.errors.length - 20])}.
  • \r\n : null} \r\n
\r\n : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EntityImporter;\r\n","/* global EM */\r\nimport React, { Component, Suspense } from 'react';\r\nimport { Search, CSVExport } from 'react-bootstrap-table2-toolkit';\r\nimport EntityImporter from './EntityImporter';\r\nimport {Button} from 'reactstrap';\r\nimport { UncontrolledButtonDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap';\r\nimport _ from 'underscore';\r\n\r\nconst EntityCreator = React.lazy(() => import('./EntityCreator'));\r\n\r\nconst { SearchBar, ClearSearchButton } = Search;\r\nconst { ExportCSVButton } = CSVExport;\r\n\r\nclass EntityTableTools extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n importModalOpen: false,\r\n createModalOpen: false\r\n };\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n if(nextProps.createModalOpen!==null && nextProps.createModalOpen!==undefined){\r\n this.setState({createModalOpen: nextProps.createModalOpen}) \r\n }\r\n }\r\n render() { \r\n return [\r\n
\r\n {this.props.customTools ? _.map(this.props.customTools,function(tool){\r\n return tool()\r\n }) : null}\r\n {!this.props.restrictedOperations?\r\n
\r\n {!this.props.hideAddRecord ?\r\n \r\n : null }\r\n { !this.props.hideDelete ?\r\n \r\n : null }\r\n
\r\n : null }\r\n {!this.props.entity.isFileListingTable && !this.props.hideImportExport ? \r\n
\r\n {!this.props.restrictedOperations && EM.isDomainAdmin() && !this.props.hideImport ?\r\n \r\n : null } \r\n \r\n {EM.t('util.table.exportRecords')}{this.props.showingFilters?' Filtered':' All'}\r\n \r\n {this.props.hasOutputPipeline ? \r\n \r\n \r\n \r\n \r\n \r\n \r\n {EM.t('util.table.exportViaPipeline')}\r\n \r\n \r\n \r\n : null } \r\n
\r\n : null }\r\n \r\n {this.props.children} \r\n {!this.props.restrictedOperations && EM.isDomainAdmin()? \r\n
\r\n {!this.props.hideAudit ? \r\n \r\n : null }\r\n {EM.debugMode && !this.props.hideClearAll ? \r\n \r\n : null }\r\n
\r\n : null } \r\n {this.props.shouldShowFilters?\r\n
\r\n \r\n { this.props.showingFilters ?\r\n \r\n : null }\r\n
\r\n : null } \r\n { \r\n !this.props.hideSearch ? : null \r\n }\r\n {\r\n // !this.props.hideSearch ? :null\r\n !this.props.hideSearch ? null :null\r\n }\r\n {this.props.shouldShowColumnToggle?\r\n
\r\n \r\n
\r\n : null } \r\n
,\r\n {\r\n this.setState({ importModalOpen: false }); \r\n }}\r\n />,\r\n \r\n {\r\n this.setState({ createModalOpen: false }); \r\n if(this.props.onClose)\r\n this.props.onClose(); \r\n }}\r\n />\r\n \r\n ];\r\n }\r\n}\r\n\r\nexport default EntityTableTools;\r\n","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\nimport cs from 'classnames';\r\n\r\nexport default class ActiveEditField extends Component {\r\n componentDidMount() {\r\n const { defaultValue, didMount } = this.props;\r\n this.select.value = defaultValue;\r\n this.select.focus();\r\n if (didMount) didMount();\r\n }\r\n\r\n getValue() {\r\n return this.select.value.toString().toLowerCase() === 'true';\r\n }\r\n\r\n render() {\r\n const { defaultValue, className } = this.props;\r\n const editorClass = cs('form-control editor edit-select', className);\r\n \r\n const attr = {\r\n className: editorClass\r\n };\r\n\r\n return (\r\n this.select = node }\r\n defaultValue={ defaultValue }\r\n onChange={() => {\r\n \r\n if(this.props.row && this.props.dataField){\r\n this.props.onUpdate({row:this.props.row,dataField:this.props.dataField,value:this.getValue()});\r\n } else {\r\n this.props.onUpdate(this.getValue());\r\n }\r\n \r\n this.select.blur();\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nexport default class PopoutEditField extends Component {\r\n getValue(){\r\n return this.props.value;\r\n }\r\n\r\n render() {\r\n return \r\n }\r\n}","/* global EM */\r\n/* eslint no-return-assign: 0 */\r\nimport React, { Component } from 'react';\r\nimport Creatable from 'react-select/creatable';\r\n\r\nexport default class AssignmentLabelEditField extends Component {\r\n constructor(props){\r\n super(props);\r\n \r\n this.state = {\r\n labelList: [],\r\n currentValue: this.props.value || ''\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let labelList = []; \r\n let labelSetting = EM.getSetting('AdditionalLabels'); \r\n if (labelSetting){\r\n labelSetting.split(',').forEach((label) => {\r\n labelList.push({ value: label.trim(), label: label.trim() });\r\n });\r\n } \r\n\r\n this.setState({ labelList });\r\n }\r\n\r\n render() {\r\n let cv = this.state.currentValue;\r\n let value = cv ? { value: cv, label: cv } : this.props.value;\r\n\r\n return (\r\n { return EM.t('util.select-create', null, [input]) }}\r\n value={value} \r\n ref={this.props.innerRef} \r\n onChange={(selected) => {\r\n this.setState({ currentValue: selected ? selected.value.trim() : null });\r\n if (this.props.onChange)this.props.onChange(selected);\r\n if (this.props.onUpdate)this.props.onUpdate(selected ? selected.value.trim() : null);\r\n }} \r\n />\r\n );\r\n }\r\n}","/* global EM */\r\nimport { Type } from 'react-bootstrap-table2-editor';\r\nimport ActiveEditField from './ActiveEditField';\r\nimport PercentageEditField from './PercentageEditField';\r\nimport DateEditField from './DateEditField';\r\nimport PopoutEditField from './PopoutEditField';\r\nimport WorkItemSelector from './WorkItemSelector';\r\nimport UserIcon from '../components/UserIcon';\r\nimport AssignmentStatusEditField from './Staffing/AssignmentStatusEditField';\r\nimport AssignmentLabelEditField from './Staffing/AssignmentLabelEditField';\r\nimport React from 'react';\r\nimport { Validate } from '../util/EntityValidators';\r\nimport Dates from '../util/Dates';\r\nimport { textFilter, selectFilter, numberFilter, dateFilter, Comparator } from 'react-bootstrap-table2-filter';\r\nimport CheckBoxEditField from './CheckBoxEditField';\r\nimport _ from 'underscore';\r\n\r\nexport default function (columns, registerFilter) {\r\n return columns.map((columnDef, columnIndex) => {\r\n var newDef = Object.assign({}, columnDef);\r\n \r\n if (!newDef.hasOwnProperty('sort')) {\r\n newDef.sort = true;\r\n }\r\n\r\n if (newDef.fromEntity && !newDef.formatter && !newDef.editor) {\r\n newDef.editor = {\r\n type: Type.SELECT,\r\n options: newDef.allowNulls ? [{ value: null, label: null }, ...newDef.fromEntity.asOptionList(newDef.optionLabelField, newDef.omitEntitySort ? false : true)] : newDef.fromEntity.asOptionList(newDef.optionLabelField, newDef.omitEntitySort ? false : true)\r\n };\r\n\r\n // Handling filter case of role for super admin\r\n if(columnDef.text === 'Role') {\r\n let roles = newDef.editor.options;\r\n if(EM.isSuperAdmin()) {}\r\n else if(EM.isAdmin()) {\r\n roles = newDef.editor.options.filter((el) => {\r\n if(el.label !== 'SuperAdmin')\r\n return el\r\n })\r\n } else {\r\n roles = newDef.editor.options.filter((el) => {\r\n if(el.label !== 'SuperAdmin' && el.label !== 'Admin')\r\n return el\r\n })\r\n }\r\n newDef.editor.options = roles;\r\n }\r\n\r\n if(columnDef.text === 'User Type' && !EM.isAdmin() && !EM.isSuperAdmin()) {\r\n let types = newDef.editor.options;\r\n types = newDef.editor.options.filter((el) => {\r\n if(el.label !== 'Associate')\r\n return el\r\n })\r\n newDef.editor.options = types;\r\n }\r\n\r\n newDef.formatter = newDef.sortValue = newDef.csvFormatter = (cell, row) => {\r\n return newDef.fromEntity.lookupValue(cell);\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filterValue = (cell) => {\r\n return cell;\r\n };\r\n\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: newDef.allowNulls ? [{ value: null, label: null }, ...newDef.fromEntity.asOptionList(null, newDef.omitEntitySort ? false : true)] : newDef.fromEntity.asOptionList(null, newDef.omitEntitySort ? false : true)\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asUser) {\r\n newDef.editor = {\r\n type: Type.SELECT,\r\n options: EM.users.asOptionList((row) => {\r\n return row.Name + ' (' + row.Email + ')';\r\n }, true)\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: EM.users.asOptionList((row) => {\r\n return row.Name + ' (' + row.Email + ')';\r\n }, true)\r\n });\r\n }\r\n\r\n newDef.formatter = (cell) => {\r\n if (!cell) return null;\r\n let user = EM.users.byId(cell);\r\n if (!user) return {EM.t('users.userRemoved')};\r\n return {newDef.userText || user.Name}\r\n };\r\n\r\n newDef.csvFormatter = (cell) => {\r\n let user = EM.users.byId(cell);\r\n return user ? user.Name : 'User has been removed.';\r\n };\r\n }\r\n\r\n if (newDef.asUserIcon) {\r\n newDef.editor = null;\r\n newDef.editable = false;\r\n newDef.formatter = (cell) => {\r\n let user = EM.users.byId(cell);\r\n return \r\n };\r\n newDef.csvFormatter = (cell) => {\r\n let user = EM.users.byId(cell);\r\n return user ? user.Name : 'Unknown: ' + cell;\r\n };\r\n }\r\n\r\n if (newDef.asPermission) {\r\n newDef.editor = {\r\n type: Type.SELECT,\r\n options: [\r\n { value: 1, label: 'Subscriber (Read-Only)' },\r\n { value: 50, label: 'Editor (Read/Write)' },\r\n { value: 100, label: 'Domain Admin (Administrative)' }\r\n ]\r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n let permission = EM.permissionLookup.byId(cell);\r\n return permission ? permission.Name : cell;\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: 1, label: 'Subscriber' },\r\n { value: 50, label: 'Editor' },\r\n { value: 100, label: 'Domain Admin' }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asCheckbox && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n\r\n newDef.formatter = (cell,row) => {\r\n if (!cell) return;\r\n let output = [];\r\n _.each(cell,(item)=>{\r\n let option = _.findWhere(newDef.options,{value:item});\r\n if(option)\r\n output.push(option.label);\r\n });\r\n return output.toString();\r\n };\r\n }\r\n\r\n if (newDef.asActive && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n if (typeof cell === 'undefined' || cell === null) return '';\r\n return cell.toString().toLowerCase() === 'true' ? 'Yes' : 'No'\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: true, label: 'Yes' },\r\n { value: false, label: 'No' },\r\n ]\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asWorkItem && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n return cell;\r\n };\r\n newDef.csvFormatter = newDef.csvFormatter = (cell) => {\r\n return cell ? cell : '';\r\n };\r\n }\r\n\r\n if (newDef.asPercentage && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n if (!cell) return '';\r\n return (cell * 100).toFixed(0);\r\n };\r\n }\r\n\r\n if (newDef.asDate && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n if (!cell) return;\r\n return Dates.toMonthYearStrShort(Dates.fromISO(cell));\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n if (!cell) return '';\r\n return Dates.toDateShort(Dates.fromISO(cell));\r\n };\r\n newDef.filterValue = (cell) => {\r\n if (!cell) return null;\r\n return Dates.fromISO(cell).toJSDate();\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = dateFilter({\r\n placeholder: 'Date',\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'date'); },\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asDateTime && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n if (!cell) return;\r\n return Dates.toDateTime(Dates.fromISO(cell));\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n if (!cell) return '';\r\n return Dates.toDateShort(Dates.fromISO(cell));\r\n };\r\n newDef.filterValue = (cell) => {\r\n if (!cell) return null;\r\n return Dates.fromISO(cell).toJSDate();\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = dateFilter({\r\n placeholder: 'Date',\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'date'); },\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asFeature && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n if (newDef.onStartEdit) {\r\n newDef.onStartEdit(editorProps, value, row, column, rowIndex, columnIndex);\r\n }\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n let jsonObj;\r\n try {\r\n jsonObj = JSON.parse(cell);\r\n } catch (e) { }\r\n if (!jsonObj) {\r\n return cell ? 'Invalid JSON' : '';\r\n }\r\n let output = '';\r\n Object.keys(jsonObj).forEach(key => {\r\n let tmp = [];\r\n Object.keys(jsonObj[key]).forEach(feat => {\r\n if (jsonObj[key][feat]) {\r\n tmp.push(feat.capitalize());\r\n }\r\n });\r\n if (tmp.length > 0) {\r\n output += (key === '*' ? 'All' : key) + ': ' + tmp.join(', ');\r\n }\r\n });\r\n return output;\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n return cell || '';\r\n };\r\n newDef.classes = 'column-pre';\r\n }\r\n\r\n if (newDef.asOptions && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n if (newDef.onStartEdit) {\r\n newDef.onStartEdit(editorProps, value, row, column, rowIndex, columnIndex);\r\n }\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n let jsonObj;\r\n try {\r\n jsonObj = JSON.parse(cell);\r\n } catch (e) { }\r\n\r\n if (!jsonObj) {\r\n return cell ? 'Invalid JSON' : ;\r\n } else {\r\n return <>\r\n \r\n {jsonObj.color ?\r\n \r\n : null}\r\n \r\n }\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n return cell || '';\r\n };\r\n newDef.classes = 'column-options';\r\n }\r\n\r\n if (newDef.asReferenceTable && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n if (newDef.onStartEdit) {\r\n newDef.onStartEdit(editorProps, value, row, column, rowIndex, columnIndex);\r\n }\r\n return \r\n };\r\n newDef.formatter = (cell) => {\r\n return \r\n }\r\n newDef.csvFormatter = (cell) => {\r\n return cell || '';\r\n };\r\n newDef.headerClasses = 'column-functions';\r\n newDef.classes = 'column-functions';\r\n newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.asAssignmentStatus && !newDef.formatter && !newDef.editor) {\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n\r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n return cell ? cell : 'Assigned';\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: 'Assigned', label: 'Assigned' },\r\n { value: 'Locked', label: 'Locked' },\r\n ]\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asAssignmentLabel) { \r\n newDef.formatter = newDef.csvFormatter = (cell) => {\r\n return cell;\r\n };\r\n\r\n newDef.editorRenderer = (editorProps, value, row, column, rowIndex, columnIndex) => {\r\n return \r\n };\r\n }\r\n\r\n if (newDef.isReference) {\r\n newDef.isDummyField = true;\r\n newDef.headerClasses = 'column-reference';\r\n newDef.classes = 'column-reference';\r\n newDef.editable = false;\r\n newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.isDateReference) {\r\n newDef.headerClasses = newDef.headerClasses || 'column-reference';\r\n newDef.classes = newDef.classes || 'column-reference';\r\n newDef.editable = false;\r\n if (typeof newDef.csvExport === 'undefined') newDef.csvExport = false;\r\n newDef.formatter = (cell) => {\r\n if (!cell) return;\r\n return Dates.isoToDateTime(cell);\r\n };\r\n newDef.csvFormatter = (cell) => {\r\n if (!cell) return;\r\n let rawDate = Dates.isoToDateTime(cell, Dates.DATETIME_LONG);\r\n return rawDate.replace(/(\\d{4}),\\s/gm, '$1 '); //This could cause trouble for ex-us folks. \r\n };\r\n newDef.sortValue = (cell) => {\r\n if (!cell) return;\r\n return Dates.fromISO(cell).toMillis();\r\n };\r\n newDef.filterValue = (cell) => {\r\n if (!cell) return undefined;\r\n return Dates.fromISO(cell).toJSDate();\r\n };\r\n\r\n if (registerFilter) {\r\n newDef.filter = dateFilter({\r\n placeholder: 'Date',\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'date'); },\r\n });\r\n }\r\n }\r\n\r\n if (newDef.asFunctions) {\r\n newDef.isDummyField = true;\r\n newDef.dataField = 'functions' + columnIndex;\r\n newDef.headerClasses = 'column-functions';\r\n newDef.classes = 'column-functions';\r\n newDef.editable = false;\r\n newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.asMeta) {\r\n newDef.headerClasses = 'column-meta';\r\n newDef.classes = 'column-meta';\r\n newDef.editable = false;\r\n newDef.creatable = false;\r\n newDef.isMeta = true;\r\n newDef.unhideable = true;\r\n if (typeof newDef.csvExport === 'undefined') newDef.csvExport = false;\r\n }\r\n\r\n if (newDef.width) {\r\n newDef.classes = (newDef.classes ? newDef.classes + ' ' : '') + 'width-' + newDef.width;\r\n newDef.headerClasses = (newDef.headerClasses ? newDef.headerClasses + ' ' : '') + 'width-' + newDef.width;\r\n }\r\n\r\n if (newDef.validators) {\r\n newDef.validator = (newValue, row, column) => {\r\n let valResult = Validate(newValue, newDef.validators,null,null,row);\r\n if (valResult === null) {\r\n return true;\r\n } else {\r\n window.setTimeout(() => { EM.setError(valResult) }, 100);\r\n return { valid: false, message: valResult }\r\n }\r\n }\r\n }\r\n\r\n if (newDef.editable === false) {\r\n newDef.classes = (newDef.classes ? newDef.classes + ' ' : '') + 'readonly';\r\n }\r\n\r\n if (!newDef.csvFormatter) {\r\n newDef.csvFormatter = (cell) => {\r\n if (cell) {\r\n return cell;\r\n } else {\r\n if (cell === 0) {\r\n return '0';\r\n } else {\r\n return '';\r\n }\r\n }\r\n };\r\n }\r\n\r\n if (!newDef.hasOwnProperty('filter') && newDef.filterOptions && registerFilter) {\r\n if (newDef.filterOptions.dynamicEntity) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: newDef.filterOptions.dynamicEntity.asOptionList('Name', false, 'Name')\r\n });\r\n }\r\n if (newDef.filterOptions.number) {\r\n newDef.filter = numberFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter, 'number'); },\r\n withoutEmptyComparatorOption: true,\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT],\r\n placeholder: 'Value'\r\n });\r\n }\r\n if (newDef.filterOptions.text) {\r\n newDef.filter = textFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Value'\r\n });\r\n }\r\n if (newDef.filterOptions.bool) {\r\n newDef.filter = selectFilter({\r\n getFilter: (filter) => { if (registerFilter) registerFilter(filter); },\r\n placeholder: 'Select',\r\n options: [\r\n { value: true, label: 'Yes' },\r\n { value: false, label: 'No' },\r\n ]\r\n });\r\n }\r\n }\r\n\r\n \r\n if (!newDef.editor && !newDef.editorRenderer && newDef.editable !== false && newDef.characterLimit){\r\n newDef.editor = {\r\n maxLength: newDef.characterLimit\r\n }\r\n }\r\n return newDef;\r\n });\r\n}","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nexport default class EntityColumnConfig extends Component {\r\n constructor(props) { \r\n super(props);\r\n\r\n this.onClose = this.onClose.bind(this);\r\n }\r\n\r\n onClose() {\r\n this.props.onClose();\r\n }\r\n\r\n render() {\r\n let { columns, onColumnToggle, toggles } = this.props.columnToggleProps;\r\n return (\r\n \r\n {EM.t('util.table.configureColumns')}\r\n \r\n
\r\n {\r\n columns\r\n .map(column => ({\r\n ...column,\r\n toggle: toggles[column.dataField]\r\n }))\r\n .map(column => {\r\n return (\r\n {\r\n if (column.unhideable)return;\r\n onColumnToggle(column.dataField);\r\n event.target.blur();\r\n this.props.onColumnToggle(toggles);\r\n }}\r\n >\r\n { column.text }\r\n \r\n )\r\n })\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component, Suspense } from 'react';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport ToolkitProvider from 'react-bootstrap-table2-toolkit';\r\nimport cellEditFactory from 'react-bootstrap-table2-editor';\r\nimport paginationFactory, { PaginationProvider, PaginationTotalStandalone } from 'react-bootstrap-table2-paginator';\r\nimport filterFactory from 'react-bootstrap-table2-filter';\r\nimport NoTableData from './NoTableData';\r\nimport PageTitle from '../PageTitle';\r\nimport EntityTableTools from './EntityTableTools';\r\nimport ColumnMapper from '../ColumnMapper';\r\nimport EntityColumnConfig from './EntityColumnConfig';\r\nimport { numberFilter, Comparator } from 'react-bootstrap-table2-filter';\r\n\r\n// const EntityAuditTrail = React.lazy(() => import('./EntityAuditTrail'));\r\n\r\nexport default class EntityTable extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.columns = null;\r\n this.selectedRows = [];\r\n\r\n this.state = {\r\n currentPage:1,\r\n auditId: null,\r\n showingColumnToggle: false,\r\n showingFilters: false,\r\n collapsed : this.props.collapsible && this.props.collapsed ===true\r\n }\r\n\r\n this.onDelete = this.onDelete.bind(this);\r\n this.onAudit = this.onAudit.bind(this);\r\n this.filterRegistry = [];\r\n\r\n }\r\n\r\n registerFilter(filter, type){\r\n this.filterRegistry.push({ filter, type }); \r\n }\r\n\r\n clearFilters(){\r\n this.filterRegistry.forEach(filterOpt => {\r\n try{\r\n if (filterOpt.filter){\r\n if (filterOpt.type === 'date'){\r\n filterOpt.filter({ date: '', comparator: Comparator.EQ });\r\n }else if (filterOpt.type === 'number'){\r\n filterOpt.filter({ number: '', comparator: Comparator.EQ });\r\n }else{\r\n filterOpt.filter('');\r\n }\r\n }\r\n }catch(e){\r\n }\r\n }) \r\n }\r\n\r\n mapColumns() {\r\n if (this.props.columns) {\r\n this.columns = ColumnMapper(this.props.columns, this.registerFilter.bind(this));\r\n \r\n if (!this.props.neverShowId) {\r\n if (!this.columns.find(col => col.text === EM.t('util.table.idColumn'))){\r\n this.columns.unshift({\r\n dataField: this.props.entity.idField + 'Ref',\r\n text: EM.t('util.table.idColumn'),\r\n isDummyField: true,\r\n headerClasses: 'column-id',\r\n classes: 'column-id',\r\n editable: false,\r\n sort: true,\r\n csvExport: false,\r\n formatter: (cell, row) => {\r\n let value = row[this.props.entity.idField];\r\n return value;\r\n },\r\n csvFormatter: (cell, row) => {\r\n return row[this.props.entity.idField]\r\n },\r\n unhideable: true,\r\n filterValue: (cell, row) => {\r\n let value = row[this.props.entity.idField];\r\n return value;\r\n },\r\n sortValue: (cell, row) => {\r\n let value = row[this.props.entity.idField];\r\n return value;\r\n },\r\n filter: numberFilter({\r\n withoutEmptyComparatorOption: true,\r\n className: 'filter-label',\r\n placeholder: 'Value',\r\n comparators: [Comparator.EQ, Comparator.GT, Comparator.LT]\r\n })\r\n });\r\n }\r\n }\r\n // this.columns.unshift({\r\n // dataField: 'SNumberRef',\r\n // text: EM.t('util.table.sNumber'),\r\n // isDummyField: true,\r\n // headerClasses: 'column-id',\r\n // classes: 'column-id',\r\n // editable: false,\r\n // sort: true,\r\n // csvExport: false,\r\n // formatter: (cell, row,rowIndex ) => {\r\n // let value = (this.state.currentPage - 1) * 100 + (rowIndex + 1);\r\n // return value;\r\n // },\r\n // csvFormatter: (cell, row) => {\r\n // return row[this.props.entity.idField]\r\n // },\r\n // unhideable: true,\r\n // filterValue: (cell, row) => {\r\n // let value = row[this.props.entity.idField];\r\n // return value;\r\n // },\r\n // sortValue: (cell, row) => {\r\n // let value = row[this.props.entity.idField];\r\n // return value;\r\n // },\r\n // filter: numberFilter({\r\n // withoutEmptyComparatorOption: true,\r\n // className: 'filter-label',\r\n // placeholder: 'Value',\r\n // comparators: [Comparator.EQ, Comparator.GT, Comparator.LT]\r\n // })\r\n // });\r\n if ((EM.debugMode && !this.props.suppressMeta) || this.props.forceMeta){\r\n let metaCols = [{\r\n dataField: 'CreatedOn',\r\n text: EM.t('util.meta.created'),\r\n isDateReference: true,\r\n asMeta: true,\r\n width: 150\r\n },{\r\n dataField: 'CreatedBy',\r\n text: EM.t('util.meta.createdBy'),\r\n asUser: true,\r\n asMeta: true,\r\n width: 125\r\n },{\r\n dataField: 'ModifiedOn',\r\n text: EM.t('util.meta.modified'),\r\n isDateReference: true,\r\n asMeta: true,\r\n width: 150\r\n },{\r\n dataField: 'ModifiedBy',\r\n text: EM.t('util.meta.modifiedBy'),\r\n asUser: true,\r\n asMeta: true,\r\n width: 125\r\n }];\r\n\r\n Array.prototype.push.apply(this.columns, ColumnMapper(metaCols, this.registerFilter.bind(this)));\r\n }\r\n } else {\r\n this.columns = [\r\n {\r\n dataField: 'loading',\r\n text: this.props.entity.t('title'),\r\n editable: false,\r\n isDummyField: true,\r\n sort: true\r\n }\r\n ];\r\n }\r\n }\r\n\r\n // shouldComponentUpdate(nextProps, nextState) {\r\n // if (nextProps.data === this.props.data) {\r\n // if (nextState.auditId !== this.state.auditId || \r\n // nextState.showingColumnToggle !== this.state.showingColumnToggle ||\r\n // nextState.showingFilters !== this.state.showingFilters\r\n // ){\r\n // return true;\r\n // }else{\r\n // return false;\r\n // }\r\n // }\r\n // return true;\r\n // }\r\n\r\n onDelete() {\r\n let self = this;\r\n if (self.selectedRows.length <= 0) return;\r\n if (window.confirm(EM.t('util.table.deleteConfirmation'))) {\r\n let ids = self.selectedRows.map(item => { return item[self.props.entity.idField] }); \r\n if (self.props.onDelete) {\r\n let result = self.props.onDelete(ids);\r\n if (result && result.cancel)return;\r\n } else {\r\n self.props.entity.delete(ids,this.props.parentRecordDetail);\r\n }\r\n self.selectedRows = [];\r\n\r\n if (self.props.onAfterDelete) {\r\n self.props.onAfterDelete(ids);\r\n }\r\n }\r\n }\r\n\r\n onAudit(){\r\n let self = this;\r\n if (self.selectedRows.length > 1){\r\n window.alert(EM.t('util.table.auditMultipleWarning'));\r\n return;\r\n }\r\n\r\n if (self.selectedRows.length <= 0 && !EM.isSuperAdmin()){\r\n window.alert(EM.t('util.table.auditMultipleWarning'));\r\n return;\r\n }\r\n\r\n let selected = self.selectedRows[0];\r\n let id = selected ? selected[self.props.entity.idField] : '*';\r\n self.setState({ auditId: id });\r\n }\r\n\r\n // onPipelineExport(){\r\n // DataOutputHelper.exportEntity(this.props.entity, '-pipeline');\r\n // }\r\n\r\n render() {\r\n let self = this;\r\n this.mapColumns();\r\n let domain = EM.getActiveDomain();\r\n let isChildDomain = domain ? (domain.ParentDomainId ? true : false) : false;\r\n let restrictedOperations = isChildDomain && this.props.entity !== EM.settings && this.props.entity !== EM.permissions;\r\n\r\n // let hasDuplicates = this.props.entity.hasDuplicates();\r\n let hasDuplicates =false;\r\n // let highlighted = EM.debugMode ? this.props.entity.findDuplicates() : {};\r\n let highlighted = {};\r\n let rowClasses = (row, rowIndex) => {\r\n let classes = [];\r\n if (row.hasOwnProperty('Active')) {\r\n if (row.Active === false) classes.push('dimmed');\r\n }\r\n if (row.hasOwnProperty('IsDefault')) {\r\n if (row.IsDefault === true) classes.push('default');\r\n }\r\n if (EM.debugMode) {\r\n if (highlighted[row[this.props.entity.idField]]) {\r\n classes.push('highlight');\r\n }\r\n }\r\n if (this.props.setRowClasses){\r\n let newRowClasses = this.props.setRowClasses(row, rowIndex);\r\n return [...classes, (newRowClasses || [])].join(' ');\r\n }else{\r\n return classes.join(' ');\r\n }\r\n \r\n };\r\n\r\n if (isChildDomain) {\r\n if (this.props.entity.isOverridden()) restrictedOperations = false;\r\n }\r\n\r\n if (!this.props.columns && this.props.showColumnToggle){\r\n return null;\r\n }\r\n\r\n let addAlertClass = hasDuplicates || restrictedOperations;\r\n\r\n return (\r\n !column.hideInTable)}\r\n columnToggle={this.props.showColumnToggle}\r\n exportCSV={{\r\n fileName: this.props.entity.name + '.csv',\r\n exportAll: this.state.showingFilters ? false : true,\r\n onlyExportFiltered: this.state.showingFilters ? true : false,\r\n }}\r\n search={{\r\n searchFormatted: true\r\n }}\r\n >{props => (\r\n
\r\n {!this.props.hideToolbar ?\r\n
{if(this.props.collapsible){ this.setState({collapsed:!this.state.collapsed})} else this.setState({collapsed:false})}}>\r\n \r\n {this.props.columns ?\r\n {\r\n let confirmationText = EM.t('util.table.clearConfirmation', false, [this.props.entity.t('title')]);\r\n let promptResult = window.prompt(EM.t('util.table.clearPrompt', false, [confirmationText]));\r\n if (promptResult === confirmationText) {\r\n if (csvProps) csvProps.onExport();\r\n this.props.entity.clearAll();\r\n }\r\n }}\r\n \r\n showingExtraTools={this.state.showingColumnToggle}\r\n shouldShowColumnToggle={this.props.showColumnToggle}\r\n onToggleColumnToggle={() => {\r\n this.setState({ showingColumnToggle: !this.state.showingColumnToggle });\r\n }}\r\n\r\n showingFilters={this.state.showingFilters}\r\n shouldShowFilters={!this.props.hideFilters}\r\n onToggleFilters={() => {\r\n this.clearFilters();\r\n this.setState({ showingFilters: !this.state.showingFilters });\r\n }}\r\n onClearFilters={() => {\r\n this.clearFilters();\r\n }}\r\n >{this.props.children}\r\n : null}\r\n \r\n
\r\n : null }\r\n {this.props.subtitle ?\r\n

{this.props.subtitle}

\r\n : null}\r\n {/* {hasDuplicates && !this.props.entity.allowDuplicates ?\r\n
\r\n {EM.t('util.table.duplicatesMessage')}\r\n
\r\n : null} */}\r\n {restrictedOperations ?\r\n
\r\n {EM.t('util.table.restrictedMessage')}\r\n
\r\n : null}\r\n\r\n {this.props.showColumnToggle && props.columnToggleProps.toggles ?\r\n {\r\n this.setState({ showingColumnToggle: !this.state.showingColumnToggle })\r\n }}\r\n columnToggleProps={props.columnToggleProps} \r\n />\r\n : null }\r\n\r\n \r\n { !this.props.disableAudit ? \r\n \r\n {/* {\r\n this.setState({ auditId: null });\r\n }} /> */}\r\n \r\n : null }\r\n
\r\n )}\r\n \r\n );\r\n }\r\n};","/* eslint no-extend-native: \"off\" */\r\n\r\nexport default {\r\n formatPhoneNumber: function (phoneNumberString) {\r\n // Remove all non-digit characters\r\n let cleaned = ('' + phoneNumberString).replace(/\\D/g, '');\r\n \r\n // Extract the necessary parts\r\n let match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n \r\n // If the phone number doesn't match the expected format, return original\r\n if (match) {\r\n return '(' + match[1] + ') ' + match[2] + '-' + match[3];\r\n }\r\n \r\n return phoneNumberString;\r\n }\r\n}","/* global EM */\r\nimport React from 'react';\r\nimport InputMask from \"react-input-mask\";\r\nimport { Input } from \"reactstrap\";\r\nimport utils from '../util/utils';\r\n\r\nclass PhoneEditor extends React.Component { \r\n constructor(props) {\r\n super(props);\r\n this.value = '';\r\n }\r\n getValue() {\r\n return this.value;\r\n }\r\n\r\n getCtrlRef(column, ref) {\r\n return (this.ctrlRefs = ref || React.createRef());\r\n }\r\n\r\n render() {\r\n let self =this;\r\n const { updateData, value, column, rowIndex, ...rest } = this.props;\r\n let formattedValue = utils.formatPhoneNumber(value);\r\n return ( {\r\n self.value = event.target.value;\r\n }}\r\n // invalid={valMsg ? true : false}\r\n >);\r\n }\r\n}\r\n\r\nexport default PhoneEditor;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport utils from '../util/utils'\r\nimport PhoneEditor from '../components/PhoneEditor';\r\n\r\nclass Companies extends Component {\r\n constructor(props) {\r\n super(props); \r\n\r\n this.entity = EM.companies;\r\n this.state = {\r\n pageLoad:true\r\n }; \r\n }\r\n\r\n componentDidMount(){ \r\n this.entity.load(true);\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(EM.companies)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"emailAddress\",\r\n text: this.entity.columns(\"email\"),\r\n validators: [ Validators.required,Validators.email,Validators.length200],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"address\",\r\n text: this.entity.columns(\"address\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"address2\",\r\n text: this.entity.columns(\"address2\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"phone\",\r\n text:\"Phone\",\r\n validators:[Validators.required,Validators.phone], \r\n asPhone:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell,row) => { \r\n return utils.formatPhoneNumber(cell);\r\n },\r\n editorRenderer: (editorProps, value, row, column, rowIndex, columnIndex, onKeyDown, onBlur) => {\r\n return ;\r\n }\r\n },\r\n {\r\n dataField: \"city\",\r\n text: this.entity.columns(\"city\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"state\",\r\n text: this.entity.columns(\"state\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"zip\",\r\n text: this.entity.columns(\"zip\"),\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"Config\",\r\n text:\"Config\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return \r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Companies;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport Papa from 'papaparse';\r\nconst addColumnNames = (data, columnNames) => {\r\n const dataWithHeaders = data.map((row, index) => {\r\n const rowData = {};\r\n columnNames.forEach((columnName, columnIndex) => {\r\n if(row[columnIndex]!==undefined){\r\n rowData[columnName] = row[columnIndex];\r\n }else{\r\n rowData[columnName] = \"\"\r\n }\r\n });\r\n return rowData;\r\n });\r\n return dataWithHeaders;\r\n};\r\nclass EventGroups extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.entity = EM.eventGroups;\r\n this.state = {\r\n pageLoad:true,\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n defaultCompany:EM.getDefaultCompany(),\r\n parentRecordDetail:{companyId:EM.getDefaultCompany().companyId},\r\n uploadEventGroup:null,\r\n createModalOpen:null\r\n }; \r\n this.hiddenFileInput = React.createRef()\r\n \r\n this.openUpload = this.openUpload.bind(this);\r\n this.parseCSV = this.parseCSV.bind(this);\r\n this.updateCreateModel = this.updateCreateModel.bind(this);\r\n this.assignUsersToGroup = this.assignUsersToGroup.bind(this);\r\n this.createNewGroup = this.createNewGroup.bind(this);\r\n }\r\n async componentDidMount(){ \r\n await EM.locations.loadEntityByParent(this.state.parentRecordDetail,true);\r\n await this.entity.loadEntityByParent(this.state.parentRecordDetail,true) \r\n \r\n }\r\n reloadEventGroups(){\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true)\r\n }\r\n toUsers(eventGroupId){\r\n this.props.history.push(Routes.compose(Routes.client.groupUser,{eventGroupId})); \r\n }\r\n openUpload(uploadEventGroup){\r\n this.setState({uploadEventGroup})\r\n this.hiddenFileInput.current.click();\r\n }\r\n handleAssignUsersFile = event => {\r\n const file = event.target.files[0];\r\n const allowedExtensions = /(\\.csv)$/i;\r\n\r\n if (!allowedExtensions.test(file.name)) {\r\n alert('Please upload a CSV file.');\r\n return;\r\n }\r\n const fileUploaded = event.target.files[0];\r\n const reader = new FileReader();\r\n const self= this\r\n reader.onload = function (e) {\r\n const csvString = e.target.result;\r\n self.parseCSV(csvString);\r\n };\r\n\r\n reader.readAsText(fileUploaded);\r\n }\r\n async assignUsersToGroup(usersList){ \r\n const {uploadEventGroup} = this.state\r\n var request = {\r\n eventGroupName: uploadEventGroup.name,\r\n eventId: uploadEventGroup.locationId,\r\n usersList: usersList,\r\n eventGroupId: uploadEventGroup.eventGroupId\r\n }\r\n await this.entity.executePut(request,null,this.entity.entityTypeDef.assignUserUrl, {},false);\r\n this.reloadEventGroups()\r\n }\r\n parseCSV(csvString) {\r\n \r\n Papa.parse(csvString, { header: false, \r\n \r\n complete: (results) => { \r\n let parsedData = { data: [] };\r\n if (results && results.data && results.data.length > 0) {\r\n parsedData.data = results.data.slice(1).filter(row => {\r\n return row.some(cell => cell.trim() !== ''); // Filter out rows with at least one non-empty cell\r\n });\r\n } \r\n const dataWithHeaders = addColumnNames(parsedData.data, ['phone','firstName','lastName']); \r\n this.assignUsersToGroup(dataWithHeaders)\r\n } \r\n });\r\n }\r\n updateCreateModel = (value) => {\r\n this.setState({ createModalOpen: value });\r\n };\r\n async getcsvData(file){\r\n if(!file) return null;\r\n const allowedExtensions = /(\\.csv)$/i;\r\n\r\n if (!allowedExtensions.test(file.name)) {\r\n alert('Please upload a CSV file.');\r\n return false;\r\n }\r\n return new Promise((resolve, reject) => {\r\n const fileUploaded = file;\r\n const reader = new FileReader(); \r\n reader.onload = async function (e) {\r\n const csvString = e.target.result;\r\n await Papa.parse(csvString, {\r\n header: false, \r\n complete: async (results) => { \r\n let parsedData = { data: [] };\r\n if (results && results.data && results.data.length > 0) {\r\n parsedData.data = results.data.slice(1).filter(row => {\r\n return row.some(cell => cell.trim() !== ''); // Filter out rows with at least one non-empty cell\r\n });\r\n } \r\n const dataWithHeaders = addColumnNames(parsedData.data, ['phone','firstName','lastName']); \r\n resolve( dataWithHeaders) \r\n } \r\n });\r\n };\r\n \r\n reader.readAsText(fileUploaded);\r\n })\r\n }\r\n async createNewGroup(inputs){\r\n const response = await this.getcsvData(inputs.uploadAssignedUsers)\r\n \r\n if(response!==false){\r\n const body = {\r\n eventGroupName: inputs.name,\r\n eventId: inputs.locationId,\r\n usersList:response\r\n }\r\n await this.entity.executePost(body,null,this.entity.entityTypeDef.assignUserUrl, {},false);\r\n this.reloadEventGroups() \r\n this.updateCreateModel(false)\r\n const self = this\r\n setTimeout(() => {\r\n self.updateCreateModel(null)\r\n }, 100);\r\n }\r\n }\r\n helperContent(){\r\n return Download a Sample CSV\r\n }\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self=this\r\n if (EM.allLoaded(EM.eventGroups,EM.locations)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"locationId\",\r\n text: \"Event\",\r\n // hideInTable:true,\r\n validators: [ Validators.required],\r\n fromEntity:EM.locations,\r\n creatable:true\r\n }, \r\n {\r\n dataField: \"name\",\r\n text: \"Name\",\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"uploadAssignedUsers\",\r\n text: \"Upload Csv to assign Users\",\r\n hideInTable:true,\r\n // validators: [ Validators.required],\r\n asFile:true,\r\n helperContent:this.helperContent()\r\n }, \r\n {\r\n dataField: \"numberOfUsers\",\r\n text: \"Users\",\r\n editable:false,\r\n creatable:false\r\n },\r\n // {\r\n // dataField: \"isActive\",\r\n // text: \"Active\",\r\n // asActive: true,\r\n // creatable:false\r\n // },\r\n {\r\n dataField: \"Users\",\r\n text:\"Users\", \r\n creatable:false,\r\n editable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n )\r\n }, \r\n },\r\n ];\r\n }\r\n \r\n return (\r\n
\r\n {\r\n \r\n \r\n this.createNewGroup(data)\r\n \r\n }}\r\n // onDelete={()=>alert('das')}\r\n pageTitle={`Groups ${(this.state.defaultCompany.companyName && this.state.isSuperAdmin)?`(${this.state.defaultCompany.companyName})`:''}`}\r\n entity={this.entity}\r\n data={data}\r\n columns={columns}\r\n className=\"table-overflow-container\"\r\n hideImportExport={true}\r\n hideAudit ={true}\r\n onClose={() => {\r\n \r\n this.data = this.entity.get();\r\n }}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EventGroups;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport ActiveEditField from '../components/ActiveEditField';\r\nclass EventTypes extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.entity = props.eventTypes;\r\n this.state = {\r\n parentRecordDetail:{companyId:props.company.companyId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n companyName:props.company.companyName,\r\n };\r\n }\r\n\r\n toEventPackages(locationId){\r\n console.log(Routes.compose(Routes.client.eventPackages,{locationId}))\r\n this.props.history.push(Routes.compose(Routes.client.eventPackages,{locationId}));\r\n // EM.redirectTo(Routes.client.intervals,{locationId})\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self = this;\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"Packages\",\r\n text: this.entity.columns(\"packages\"),\r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \r\n \r\n )\r\n }, \r\n },\r\n ];\r\n }\r\n const onUpdate=(toUpdate)=>{\r\n // console.log(toUpdate)\r\n const newRow= toUpdate.row\r\n newRow[toUpdate.dataField]=toUpdate.value\r\n\r\n this.entity.update(toUpdate.row, newRow,{companyId:toUpdate.row.companyId}).then((res) => {\r\n });\r\n }\r\n const chooseControls = (element, row)=>{\r\n if(element.asActive && !element.formatter && !element.editor){\r\n return \r\n } else {\r\n return onUpdate({row:row,dataField:element.dataField,value:event.target.value})} defaultValue={row[element.dataField]} />\r\n }\r\n }\r\n const expandRow = {\r\n renderer: row => {\r\n const expandableColumns = columns.filter(column => (column.expandable===true))\r\n const render = expandableColumns.map((element,index) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {chooseControls(element, row)}\r\n \r\n
\r\n
\r\n )\r\n });\r\n return
{render}
\r\n },\r\n showExpandColumn: false,\r\n onExpand: (row, isExpand, rowIndex, e) => {\r\n // console.log(row);\r\n // console.log(isExpand);\r\n // console.log(rowIndex);\r\n // console.log(e);\r\n },\r\n expandHeaderColumnRenderer: ({ isAnyExpands }) => {\r\n if (isAnyExpands) {\r\n return ;\r\n }\r\n return ;\r\n },\r\n expandColumnRenderer: ({ expanded }) => {\r\n if (expanded) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n }\r\n };\r\n return ( \r\n {\r\n return true;\r\n }}\r\n onClose={() => {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default EventTypes;\r\n","export default __webpack_public_path__ + \"static/media/CollectionsCampaign.9bfa658b.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport {Tabs, Tab} from 'react-bootstrap';\r\nimport ActiveEditField from '../components/ActiveEditField';\r\nimport EventTypes from './EventTypes';\r\nimport compaign from \"../assets/CollectionsCampaign.svg\";\r\n\r\nclass Locations extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.entity = EM.locations;\r\n this.eventTypesEntity = EM.eventTypes\r\n // let user = EM.account.get();\r\n let company = EM.getDefaultCompany();\r\n // _.findWhere(user.userCompanies,{defaultCompany:true});\r\n this.state = {\r\n isGESKUS:false,\r\n company,\r\n parentRecordDetail:{companyId:company.companyId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n companyName:null,\r\n tabKey:'eventsList'\r\n };\r\n \r\n this.eventTypesEntity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.eventCategory = {\r\n \"null\":null,\r\n \"1\": \"Normal Event\", \r\n \"2\": \"School Event\",\r\n \"3\": \"Sports Event\"\r\n }\r\n }\r\n async componentDidMount(){\r\n \r\n const companyId = EM.getDefaultCompany().companyId\r\n this.setState({companyName:EM.getDefaultCompany().companyName})\r\n const parentRecordDetail = {id: companyId} \r\n await EM.companyConfig.loadSingleEntity(parentRecordDetail).then((data) => {\r\n \r\n });\r\n \r\n const companyConfig = EM.companyConfig.get()\r\n \r\n if(companyConfig.printinglabId===2 && companyConfig.printing===true){\r\n this.setState({isGESKUS:true})\r\n }\r\n \r\n }\r\n toRedirect(locationId, toward){\r\n this.props.history.push(Routes.compose(Routes.client[toward],{locationId}));\r\n // EM.redirectTo(Routes.client.intervals,{locationId})\r\n }\r\n\r\n handleSelect = (tabKey) => {\r\n this.setState({ tabKey });\r\n }\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self = this;\r\n if (EM.allLoaded(this.entity, this.eventTypesEntity)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"expiryDate\",\r\n text: this.entity.columns(\"expiryDate\"),\r\n asDateTime: true,\r\n // hideInTable:true,\r\n // expandable:true,\r\n hideTime:true,\r\n // filterOptions: {\r\n // text: true,\r\n // },\r\n },\r\n {\r\n dataField: \"address1\",\r\n text: this.entity.columns(\"address1\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"address2\",\r\n text: this.entity.columns(\"address2\"),\r\n hideInTable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"city\",\r\n text: this.entity.columns(\"city\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"state\",\r\n text: this.entity.columns(\"state\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"zip\",\r\n text: this.entity.columns(\"zip\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"phone\",\r\n text: this.entity.columns(\"phone\"),\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true,\r\n },\r\n {\r\n dataField: \"free810Promotion\",\r\n text: this.entity.columns(\"free810Promotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"freeImagePromotion\",\r\n text: this.entity.columns(\"freeImagePromotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"force810Promotion\",\r\n text: this.entity.columns(\"force810Promotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"forceImagePromotion\",\r\n text: this.entity.columns(\"forceImagePromotion\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"onlyDirectoryUpload\",\r\n text: this.entity.columns(\"onlyDirectoryUpload\"), \r\n hideInTable:true,\r\n asActive: true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n expandable:true\r\n }, \r\n {\r\n dataField: \"maziOrganizationCode\",\r\n text: this.entity.columns(\"maziOrganizationCode\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"eventTypeId\",\r\n text: this.eventTypesEntity.t(\"title\"),\r\n fromEntity: this.eventTypesEntity,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"eventCategory\",\r\n text: this.entity.columns(\"eventCategory\"),\r\n editor:{\r\n type: \"select\",\r\n options: [\r\n {value:\"1\", label: \"Normal Event\"},\r\n {value:\"2\",label:\"School Event\"},\r\n {value:\"3\",label:\"Sports Event\"}\r\n ]},\r\n validators: [ Validators.required ],\r\n formatter: (cell, row) => {\r\n return (
{this.eventCategory[row.eventCategory]}
)\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"Intervals\",\r\n text:\"Intervals\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \r\n \r\n )\r\n }, \r\n },\r\n {\r\n dataField: \"Compaigns\",\r\n text:\"Campaigns\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \"compaign\"{self.toRedirect(row.locationId,\"compaign\");}}/>\r\n \r\n )\r\n }, \r\n },\r\n ];\r\n\r\n if(this.state.isGESKUS){\r\n columns.splice(1, 0, {\r\n dataField: \"bookFront\",\r\n text: this.entity.columns(\"bookFront\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n columns.splice(2, 0, {\r\n dataField: \"bookBack\",\r\n text: this.entity.columns(\"bookBack\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n columns.splice(3, 0, {\r\n dataField: \"bookAd1\",\r\n text: this.entity.columns(\"bookAd1\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n columns.splice(4, 0, {\r\n dataField: \"bookAd2\",\r\n text: this.entity.columns(\"bookAd2\"),\r\n filterOptions: {\r\n text: true,\r\n },\r\n hideInTable:true,\r\n expandable:true\r\n });\r\n }\r\n }\r\n const onUpdate=(toUpdate)=>{\r\n // console.log(toUpdate)\r\n const newRow= toUpdate.row\r\n newRow[toUpdate.dataField]=toUpdate.value\r\n\r\n this.entity.update(toUpdate.row, newRow,{companyId:toUpdate.row.companyId}).then((res) => {\r\n });\r\n }\r\n const chooseControls = (element, row)=>{\r\n if(element.asActive && !element.formatter && !element.editor){\r\n return \r\n } else {\r\n return onUpdate({row:row,dataField:element.dataField,value:event.target.value})} defaultValue={row[element.dataField]} />\r\n }\r\n }\r\n const expandRow = {\r\n renderer: row => {\r\n const expandableColumns = columns.filter(column => (column.expandable===true))\r\n const render = expandableColumns.map((element,index) => {\r\n \r\n \r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {chooseControls(element, row)}\r\n \r\n
\r\n
\r\n )\r\n \r\n });\r\n return
{render}
\r\n // console.log(this.expandableColumns)\r\n // return (\r\n //
\r\n //

{ `This Expand row is belong to rowKey ${row.id}` }

\r\n //

You can render anything here, also you can add additional data on every row object

\r\n //

expandRow.renderer callback will pass the origin row object to you

\r\n //
\r\n // )\r\n },\r\n showExpandColumn: true,\r\n onExpand: (row, isExpand, rowIndex, e) => {\r\n // console.log(row);\r\n // console.log(isExpand);\r\n // console.log(rowIndex);\r\n // console.log(e);\r\n },\r\n expandHeaderColumnRenderer: ({ isAnyExpands }) => {\r\n if (isAnyExpands) {\r\n return ;\r\n }\r\n return ;\r\n },\r\n expandColumnRenderer: ({ expanded }) => {\r\n if (expanded) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n }\r\n };\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n {this.state.tabKey === \"eventsList\" ? (\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n ) : }\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Locations;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from \"../util/EntityValidators\";\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport { Type } from \"react-bootstrap-table2-editor\";\r\n\r\nclass Intervals extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.intervals;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n let locationId = this.props.match.params.locationId;\r\n this.state = {\r\n parentRecordDetail: { companyId: company.companyId, locationId },\r\n locationId: locationId,\r\n durationOptions: this.getDurationOption(),\r\n bookingCountOptions: this.getBookingCountOption(),\r\n daysOptions:this.getDaysOptions(),\r\n location:{},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n }; \r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n }\r\n\r\n componentDidMount(){ \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n this.getLocation();\r\n }\r\n\r\n getLocation(){ \r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n if(!location)\r\n {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.locations.loadEntityByParent({companyId:company.companyId}).then(()=>{\r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n this.setState({location:location});\r\n });\r\n }\r\n else{\r\n this.setState({location});\r\n }\r\n\r\n }\r\n getDaysOptions() {\r\n return [\r\n { label: 'Monday', value: 1 },\r\n { label: 'Tuesday', value: 2 },\r\n { label: 'Wednesday', value:3 },\r\n { label: 'Thursday', value: 4 },\r\n { label: 'Friday', value: 5 },\r\n { label: 'Saturday', value: 6 },\r\n { label: 'Sunday', value: 7 }\r\n ];\r\n }\r\n\r\n getDurationOption() {\r\n return [\r\n { label: 10, value: \"10\" },\r\n { label: 15, value: \"15\" },\r\n { label: 20, value: \"20\" },\r\n { label: 30, value: \"30\" },\r\n { label: 60, value: \"60\" },\r\n ];\r\n }\r\n\r\n getBookingCountOption() {\r\n return [\r\n { label: 1, value: \"1\" },\r\n { label: 2, value: \"2\" },\r\n { label: 3, value: \"3\" },\r\n { label: 4, value: \"4\" },\r\n ];\r\n }\r\n\r\n getTitle(){\r\n return `Intervals for ${this.state.location.name}`;\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let allLoaded = EM.allLoaded(this.entity,EM.locations); \r\n if (allLoaded) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"startDateTime\",\r\n text: \"Start Date Time\",\r\n validators: [Validators.required],\r\n asDateTime: true,\r\n // formatter: (cell, row) => { \r\n // return '';\r\n // }\r\n },\r\n {\r\n dataField: \"endDateTime\",\r\n text: \"End Date Time\",\r\n validators: [Validators.required],\r\n asDateTime: true,\r\n },\r\n {\r\n dataField: \"duration\",\r\n text: \"Duration\",\r\n validators: [Validators.required],\r\n editor: {\r\n type: Type.SELECT,\r\n options: this.state.durationOptions,\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"bookingCount\",\r\n text: \"Booking Count\",\r\n validators: [Validators.required],\r\n editor: {\r\n type: Type.SELECT,\r\n options: this.state.bookingCountOptions,\r\n },\r\n },\r\n {\r\n dataField: \"days\",\r\n text: \"Days\",\r\n validators: [Validators.required],\r\n asCheckbox: true,\r\n options: this.state.daysOptions,\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Intervals;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport PanelModal from '../PanelModal';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport Routes from '../../app/Routes';\r\nimport Spinner from '../Spinner';\r\nimport CKEditorInput from \"../CKEditorInput\";\r\nimport { Validators, Validate } from '../../util/EntityValidators'\r\nconst initialState={\r\n loading: false,\r\n key:\"\",\r\n label:\"\",\r\n value:\"\",\r\n popUpError:\"\",\r\n validators:false,\r\n entity:null,\r\n route:\"\",\r\n row:false\r\n}\r\nexport default class PopeUpUpdate extends Component{\r\n constructor(props){\r\n super(props); \r\n \r\n this.state = initialState; \r\n this.onTextChange = this.onTextChange.bind(this);\r\n this.ShowError = this.ShowError.bind(this);\r\n this.setConfig = this.setConfig.bind(this);\r\n this.validate = this.validate.bind(this);\r\n this.updateEntity = this.updateEntity.bind(this);\r\n this.reset = this.reset.bind(this); \r\n }\r\n reset(){\r\n this.setState(initialState);\r\n }\r\n closeSelf(){\r\n this.props.close()\r\n this.reset()\r\n }\r\n validate(value, column) {\r\n // console.log(this.state.entity)\r\n let currentValue = value;\r\n if (this.state.validators) {\r\n let valResult = Validate(\r\n currentValue,\r\n this.state.validators,\r\n this.state.getValidationContext ? this.state.getValidationContext() : null,\r\n \"creation\"\r\n );\r\n let errs = {};\r\n if (valResult !== null) {\r\n this.setState({ popUpError: valResult });\r\n } else {\r\n this.setState({ popUpError: \"\" });\r\n }\r\n }\r\n }\r\n updateEntity(){\r\n if(this.state.popUpError===\"\"){\r\n const request = this.state.row \r\n request[this.state.key]=this.state.value \r\n this.state.entity.executePut(request,null,this.state.entity.editUrl, {},true)\r\n this.props.close()\r\n }\r\n } \r\n ShowError() {\r\n if (this.state.popUpError != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.popUpError}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n setConfig(conf){\r\n this.setState({\r\n key:conf.key,\r\n label:conf.label,\r\n value:conf.value,\r\n validators:conf.validators,\r\n entity:conf.entity,\r\n row:conf.row\r\n })\r\n }\r\n \r\n\r\n onTextChange(value) {\r\n this.setState({ value:value });\r\n this.validate(value, this.state.key)\r\n }\r\n\r\n render(){\r\n return { this.props.close() }}>\r\n Update {this.state.label}\r\n \r\n {this.ShowError()}\r\n
\r\n
\r\n
\r\n {this.state.label}\r\n {this.state.key === \"emailToSend\" ? (\r\n { this.onTextChange(value) }} value={this.state.value}/>\r\n ):( \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n }\r\n};","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport PopeUpUpdate from '../components/Widgets/PopeUpUpdate'\r\nclass CompaignTypes extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = props.compaignTypeEntity;\r\n this.state = {\r\n isEditOpen:false,\r\n parentRecordDetail:{locationId:props.eventLocation.locationId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n locationName:props.eventLocation.name,\r\n };\r\n this.openEdit = this.openEdit.bind(this);\r\n this.popUpRef = React.createRef()\r\n this.messageType = {\r\n \"null\":null,\r\n \"1\": \"No Orders\",\r\n \"2\":\"In Complete Cart\",\r\n \"3\":\"Marketing Campaign\",\r\n \"4\":\"Appointment Reminder\",\r\n \"5\":\"Non Consumed Packages\"\r\n }\r\n }\r\n\r\n openEdit(column,row,validators, entity){\r\n this.popUpRef.current.setConfig({\r\n key:column.dataField,\r\n label:column.text,\r\n value:row[column.dataField],\r\n validators,\r\n entity,\r\n row\r\n })\r\n this.setState({isEditOpen:true})\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"messageType\",\r\n text: this.entity.columns(\"messageType\"),\r\n editor:{\r\n type: \"select\",\r\n options: [\r\n {value:\"1\", label: \"No Orders\"},\r\n {value:\"2\",label:\"In Complete Cart\"},\r\n {value:\"3\",label:\"Marketing Campaign\"},\r\n {value:\"4\",label:\"Appointment Reminder\"},\r\n {value:\"5\",label:\"Non Consumed Packages\"},\r\n ]},\r\n validators: [ Validators.required ],\r\n formatter: (cell, row) => {\r\n return (
{this.messageType[row.messageType]}
)\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"messageToSent\",\r\n text: this.entity.columns(\"messageToSent\"),\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"emailToSend\",\r\n text: this.entity.columns(\"emailToSend\"),\r\n // validators: [Validators.required],\r\n asEmail: true,\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n },\r\n ];\r\n }\r\n return ( \r\n <>\r\n this.setState({isEditOpen:false})} />\r\n {\r\n return true;\r\n }}\r\n onClose={() => {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CompaignTypes;\r\n","export default __webpack_public_path__ + \"static/media/analytics.47b371ea.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport {Tabs, Tab} from 'react-bootstrap';\r\nimport CompaignTypes from './CompaignTypes';\r\nimport timezones from \"../util/timezones.json\"\r\nimport analytics from \"../assets/analytics.svg\";\r\nimport Routes from '../app/Routes';\r\nclass Compaigns extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.compaign;\r\n this.compaignTypeEntity = EM.compaignType\r\n this.eventTypesEntity = EM.eventTypes\r\n this.eventPromotion = EM.eventPromotion\r\n let company = EM.getDefaultCompany();\r\n let locationId = this.props.match.params.locationId;\r\n\r\n // _.findWhere(user.userCompanies,{defaultCompany:true});\r\n this.state = {\r\n location:{name:''},\r\n parentRecordDetail:{locationId},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n tabKey:'marketingCompaigns'\r\n };\r\n \r\n this.entity.loadEntityByParent(this.state.parentRecordDetail);\r\n this.compaignTypeEntity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.eventTypesEntity.loadEntityByParent({companyId:company.companyId},true);\r\n this.eventPromotion.loadEntityByParent(this.state.parentRecordDetail,true);\r\n }\r\n\r\n async componentDidMount(){\r\n this.getLocation()\r\n }\r\n\r\n getLocation(){ \r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n if(!location)\r\n {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.locations.loadEntityByParent({companyId:company.companyId}).then(()=>{\r\n let location = _.findWhere(EM.locations.get(),{locationId:parseInt(this.props.match.params.locationId)});\r\n this.setState({location:location});\r\n });\r\n }\r\n else{\r\n this.setState({location});\r\n }\r\n }\r\n\r\n handleSelect = (tabKey) => {\r\n this.setState({ tabKey });\r\n }\r\n getTitle(){\r\n return `Marketing Campaigns for ${this.state.location.name}`;\r\n }\r\n\r\n timezoneOptions() {\r\n return timezones.map(timezone => {\r\n return {\r\n label: `${timezone.value} ${timezone.text}`,\r\n value: timezone.value\r\n };\r\n });\r\n }\r\n toRedirect(row){\r\n if(this.state.location.name) {\r\n this.props.history.push(Routes.compose(Routes.client.sendGridStats,{eventName:this.state.location.name,campaignName:row.name,campaignId:row.marketingCompaignId, startDate:row.startDate?.split('T')[0]}));\r\n }\r\n }\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n let self = this;\r\n if (EM.allLoaded(this.entity, this.compaignTypeEntity, this.eventPromotion)) {\r\n data = this.entity.get();\r\n columns = [ \r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"startDate\",\r\n asDateTime: true,\r\n text: this.entity.columns(\"startDate\"),\r\n // validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"interval\",\r\n text: this.entity.columns(\"interval\"),\r\n editor:{\r\n type: \"select\",\r\n options: [\r\n {value:\"1\", label: \"Everyday\"},\r\n {value:\"2\",label:\"2 days\"},\r\n {value:\"4\",label:\"4 days\"},\r\n {value:\"7\",label:\"7 days\"},\r\n {value:\"15\",label:\"15 days\"},\r\n {value:\"30\",label:\"30 days\"},\r\n ]},\r\n validators: [ Validators.required ],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"endDate\",\r\n asDateTime: true,\r\n text: this.entity.columns(\"endDate\"),\r\n // validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"marketingComaignTypeId\",\r\n text: this.compaignTypeEntity.t(\"title\"),\r\n fromEntity: this.compaignTypeEntity,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"eventTypeId\",\r\n text: this.eventTypesEntity.t(\"title\"),\r\n fromEntity: this.eventTypesEntity,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"eventId\",\r\n text: this.eventPromotion.t(\"title\"),\r\n fromEntity: this.eventPromotion,\r\n optionLabelField:(row)=> `${row.deal.substring(0,25)}.....`,\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"timezone\",\r\n text: this.entity.columns(\"timezone\"),\r\n editor:{\r\n type: \"select\",\r\n options: this.timezoneOptions()\r\n },\r\n validators: [ Validators.required ],\r\n filterOptions: {\r\n text: true,\r\n },\r\n }, {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n },\r\n {\r\n dataField: \"Analytics\",\r\n text:\"Analytics\", \r\n creatable:false,\r\n formatter: (cell,row) => { \r\n return (\r\n <>\r\n \"analytics\"{self.toRedirect(row)}}/>\r\n \r\n )\r\n }, \r\n },\r\n ];\r\n }\r\n \r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n {this.state.tabKey === \"marketingCompaigns\" ? (\r\n {\r\n let proceed = true\r\n for (const record of data) {\r\n if (\r\n ((field.startDate >= record.startDate && field.startDate <= record.endDate) ||\r\n (field.endDate >= record.startDate && field.endDate <= record.endDate) ||\r\n (record.startDate >= field.startDate && record.startDate <= field.endDate) ||\r\n (record.endDate >= field.startDate && record.endDate <= field.endDate)) &&\r\n record.marketingComaignTypeId == field.marketingComaignTypeId\r\n ) {\r\n EM.setError(\"Another campaign is already added in selected Dates and marketing campaign type\");\r\n proceed = false;\r\n return\r\n }\r\n }\r\n return proceed;\r\n }}\r\n onClose={() => {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n ) : }\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Compaigns;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\n// import EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport CardStats from \"../components/CardStats\";\r\nimport DateEditField from \"../components/DateEditField\";\r\nimport {\r\n FormGroup,\r\n Label,\r\n} from \"reactstrap\";\r\nclass Statistics extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.sendGridStats;\r\n const { campaignId, startDate, campaignName } = this.props.match.params;\r\n this.state = {\r\n selectedDate:startDate,\r\n parentRecordDetail:{campaignId, start_date:startDate, campaignName},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.entity.loadEntityByParent({campaignId, start_date:this.state.selectedDate});\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (prevState.selectedDate !== this.state.selectedDate) {\r\n this.entity.loadEntityByParent({\r\n campaignId: this.state.parentRecordDetail.campaignId,\r\n start_date: this.state.selectedDate,\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n this.entity.clear()\r\n }\r\n getTitle(){\r\n return `Marketing Campaign Statistics for ${this.state.parentRecordDetail.campaignName}`;\r\n }\r\n\r\n calculateTotals(statsData) {\r\n if (!statsData) return null;\r\n\r\n const totals = {\r\n bounce_drops: 0,\r\n bounces: 0,\r\n clicks: 0,\r\n delivered: 0,\r\n invalid_emails: 0,\r\n opens: 0,\r\n processed: 0,\r\n requests: 0,\r\n spam_report_drops: 0,\r\n spam_reports: 0,\r\n unique_clicks: 0,\r\n unique_opens: 0,\r\n };\r\n\r\n statsData.forEach(({ stats }) => {\r\n stats.forEach(({ metrics }) => {\r\n totals.bounce_drops += metrics.bounce_drops || 0;\r\n totals.bounces += metrics.bounces || 0;\r\n totals.clicks += metrics.clicks || 0;\r\n totals.delivered += metrics.delivered || 0;\r\n totals.invalid_emails += metrics.invalid_emails || 0;\r\n totals.opens += metrics.opens || 0;\r\n totals.processed += metrics.processed || 0;\r\n totals.requests += metrics.requests || 0;\r\n totals.spam_report_drops += metrics.spam_report_drops || 0;\r\n totals.spam_reports += metrics.spam_reports || 0;\r\n totals.unique_clicks += metrics.unique_clicks || 0;\r\n totals.unique_opens += metrics.unique_opens || 0;\r\n });\r\n });\r\n\r\n return totals;\r\n }\r\n\r\n getColorForValue = (value) => {\r\n if (value >= 100) {\r\n return 'green';\r\n } else if (value >= 1) {\r\n return 'orange';\r\n } else {\r\n return 'red';\r\n }\r\n };\r\n render() {\r\n // let columns = [];\r\n let errMsg = ''\r\n let data = [];\r\n let newData = [];\r\n // let self = this;\r\n let totals = null\r\n if (this.entity.isLoaded()) {\r\n data = this.entity.get();\r\n if((data.errors && data.errors.length > 0) || (data && data.length<1)) {\r\n errMsg= \"No Analytics Found\"\r\n } else {\r\n totals = this.calculateTotals(data)\r\n data.forEach(row => {\r\n const metricsObject = {\r\n date: row.date,\r\n ...row.stats[0].metrics\r\n };\r\n newData.push(metricsObject);\r\n });\r\n }\r\n // columns = [ \r\n // {\r\n // dataField: \"date\",\r\n // text: \"date\",\r\n // filterOptions: {\r\n // text: true,\r\n // },\r\n // }\r\n // ];\r\n }\r\n return (\r\n
\r\n
\r\n \r\n

{this.getTitle()}

\r\n
\r\n\r\n \r\n \r\n this.setState({selectedDate:date?.split('T')[0]})}\r\n />\r\n \r\n
\r\n {totals&&newData.length>0?\r\n Object.keys(totals).map((key) => (\r\n
\r\n \r\n
\r\n )):
\r\n

{errMsg}

\r\n
}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {newData.length > 0 && newData.map(row => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n
DateBounce DropsBouncesDeliveredInvalid EmailsOpensProcessedRequestsSpam Report DropsSpam ReportsUnique ClicksUnique Opens
{row.date}{row.bounce_drops}{row.bounces}{row.delivered}{row.invalid_emails}{row.opens}{row.processed}{row.requests}{row.spam_report_drops}{row.spam_reports}{row.unique_clicks}{row.unique_opens}
\r\n {/* */}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Statistics;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\nimport Routes from '../app/Routes';\r\nimport PopeUpUpdate from '../components/Widgets/PopeUpUpdate'\r\nclass Events extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.events;\r\n this.state = {\r\n isEditOpen:false,\r\n parentRecordDetail: { companyId: this.props.match.params.companyId },\r\n locationOptions:[],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.openEdit = this.openEdit.bind(this);\r\n this.getLocations();\r\n this.popUpRef = React.createRef()\r\n }\r\n async componentDidMount(){\r\n \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n \r\n }\r\n getLocations() {\r\n EM.locations.loadEntityByParent(this.state.parentRecordDetail,true);\r\n }\r\n\r\n openEdit(column,row,validators, entity){\r\n this.popUpRef.current.setConfig({\r\n key:column.dataField,\r\n label:column.text,\r\n value:row[column.dataField],\r\n validators,\r\n entity,\r\n row\r\n })\r\n this.setState({isEditOpen:true})\r\n }\r\n \r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity, EM.locations)) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"deal\",\r\n text: 'Deal',\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n {\r\n dataField: \"description\",\r\n text: this.entity.columns(\"description\"),\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n {\r\n dataField: \"locationId\",\r\n text: this.entity.columns(\"locationId\"),\r\n fromEntity: EM.locations,\r\n filterOptions: {\r\n text: true\r\n }\r\n },\r\n {\r\n dataField: \"allLocations\",\r\n text: this.entity.columns(\"allLocations\"),\r\n asActive: true\r\n },\r\n {\r\n dataField: \"chargeAmount\",\r\n text: this.entity.columns(\"chargeAmount\"),\r\n validators:[Validators.positiveNumber,Validators.numberOnly],\r\n filterOptions: {\r\n text: true\r\n },\r\n },\r\n {\r\n dataField: \"closeMessage\",\r\n text: this.entity.columns(\"closeMessage\"),\r\n filterOptions: {\r\n text: true\r\n },\r\n editable:false,\r\n events: {\r\n onClick: (e, column, columnIndex, row, rowIndex) =>this.openEdit(column,row,[Validators.required],this.entity) \r\n },\r\n type:'textarea'\r\n },\r\n // {\r\n // dataField: \"order\",\r\n // text: this.entity.columns(\"order\"),\r\n // validators:[Validators.positiveNumber,Validators.numberOnly],\r\n // filterOptions: {\r\n // number: true\r\n // }\r\n // },\r\n // {\r\n // dataField: \"showZipSearch\",\r\n // text: this.entity.columns(\"showZipSearch\"),\r\n // asActive: true,\r\n // filterOptions: {\r\n // bool: true\r\n // }\r\n // },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable: false\r\n },\r\n {\r\n dataField: \"copy\",\r\n text: this.entity.columns(\"copy\"),\r\n creatable: false,\r\n editable:false,\r\n formatter: (cell, row) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n this.setState({isEditOpen:false})} />\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n onCreate={(data) =>{\r\n let proceed=true;\r\n if(_.isNull(data.locationId) && _.isEqual(data.allLocations,false))\r\n {\r\n EM.setError(\"Please select a location or all.\");\r\n proceed=false;\r\n }\r\n return proceed;\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Events;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport _ from \"underscore\";\r\nimport Routes from '../app/Routes';\r\nimport PanelModal from '../components/PanelModal';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, FormGroup } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport { textFilter,Comparator } from 'react-bootstrap-table2-filter';\r\n\r\nclass Users extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.users;\r\n this.state = {\r\n userTypeId:\"\",\r\n showAssignCompany:false,\r\n selectedUser:null,\r\n companiesOptions:[],\r\n selectedCompanies:[],\r\n users:[],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n dynamicLabel:this.entity.columns(\"emailAddressUserName\")\r\n };\r\n this.entity = EM.users;\r\n this.userTypeChange = this.userTypeChange.bind(this);\r\n this.redirectTouserDetail = this.redirectTouserDetail.bind(this);\r\n this.reset = this.reset.bind(this);\r\n this.showAssignCompany = this.showAssignCompany.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n this.assignCompanies = this.assignCompanies.bind(this); \r\n this.mapUsers = this.mapUsers.bind(this);\r\n }\r\n\r\n componentDidMount(){ \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n let company = EM.getDefaultCompany();\r\n let body = {\r\n currentUserId:EM.account.get().userId,\r\n companyId:\r\n EM.isSuperAdmin() !== true && company\r\n ? company.companyId\r\n : company.companyId,\r\n userTypeId: !EM.isSuperAdmin() && !EM.isAdmin() ? 1 : null,\r\n };\r\n this.entity.executePost(body,{},Routes.clientApi.userSearch,{},true)\r\n .then((result)=>{\r\n let users = EM.users.get();\r\n if(!EM.isSuperAdmin() && !EM.isAdmin())\r\n users = _.where(users,{userTypeId:1});\r\n \r\n this.setState({users});\r\n });\r\n EM.userTypes.load();\r\n EM.role.load();\r\n //only if superadmin\r\n // EM.companies.load().then(()=>{\r\n // this.setState({companiesOptions:EM.companies.asOptionList('name',true,'companyId')});\r\n // });\r\n EM.companies.executeGet(null, null, 'company/active', {})\r\n }\r\n\r\n mapUsers(){\r\n return (this.state.users ||[]).map((user)=>{\r\n return Object.assign({},user,{phonenumber1:user.phoneNumber ? user.phoneNumber.replace(/\\D/g, ''):user.phoneNumber});\r\n });\r\n }\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n let storeUsers = EM.users.get();\r\n if (storeUsers && current_state.users !== storeUsers) {\r\n return {\r\n users: storeUsers\r\n }\r\n }\r\n return null\r\n }\r\n\r\n userTypeChange(event,userTypeId){\r\n this.setState({userTypeId});\r\n }\r\n\r\n redirectTouserDetail =(userId,row) =>{\r\n //should use logged in users company as the desired user can belong to multiple companies\r\n var company = EM.getDefaultCompany();\r\n let url=Routes.compose(Routes.client.userDetails,{userId,companyId:company.companyId});\r\n this.props.history.push(url);\r\n }\r\n\r\n reset(user){\r\n //debugger\r\n const UserTypeId = user.userTypeId;\r\n var companyId = EM.getDefaultCompany().companyId\r\n if(UserTypeId === 2){\r\n EM.user.executePost(null,{companyId,email:user.emailAddress,isAssociate:true},Routes.clientApi.resetUser, {}); \r\n } else { \r\n EM.user.executePost(null,{companyId,phone:user.phonenumber1,isAssociate:false},Routes.clientApi.resetUser, {}); \r\n }\r\n \r\n }\r\n\r\n showAssignCompany(user){ \r\n this.setState({showAssignCompany:true,selectedUser:user});\r\n }\r\n\r\n getColumns(){\r\n let self =this;\r\n return [ \r\n {\r\n dataField: \"userTypeId\",\r\n text: \"User Type\",\r\n validators: [ Validators.required],\r\n fromEntity:EM.userTypes,\r\n onChange:self.userTypeChange,\r\n }, \r\n {\r\n dataField: \"roleId\",\r\n text: \"Role\",\r\n validators: [Validators.required],\r\n fromEntity:EM.role,\r\n creatable:this.state.userTypeId === '2',\r\n }, \r\n {\r\n dataField: \"companyId\",\r\n text: \"Company\",\r\n hideInTable:true,\r\n validators: [ Validators.required],\r\n fromEntity:EM.companies,\r\n creatable:EM.isSuperAdmin(),\r\n // formatter: (cell, row) => {\r\n // let company = '';\r\n // if(row.userCompanies && row.userCompanies.length > 0) {\r\n // row.userCompanies.forEach((el) => {\r\n // if(el && el.defaultCompany === true)\r\n // company = el.companyName\r\n // })\r\n // }\r\n // return company;\r\n // }\r\n }, \r\n {\r\n dataField: \"firstName\",\r\n text: this.entity.columns(\"firstName\"),\r\n validators: [ Validators.required,Validators.length100],\r\n filter: textFilter({\r\n placeholder: 'Exact match',\r\n defaultValue: '',\r\n comparator: Comparator.EQ\r\n }),\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n \r\n {\r\n dataField: \"lastName\",\r\n text: this.entity.columns(\"lastName\"),\r\n validators: [ Validators.required],\r\n filter: textFilter({\r\n placeholder: 'Exact match',\r\n defaultValue: '',\r\n comparator: Comparator.EQ\r\n }),\r\n filterOptions: {\r\n text: true,\r\n }\r\n },\r\n {\r\n dataField: \"phoneNumber\",\r\n text: this.entity.columns(\"phoneNumber\"),\r\n validators:[Validators.required,Validators.phone,(value, context, mode,row)=>{\r\n return (typeof row !='undefined' && row.userTypeId === 1) ? \"Not allowed\" : '';\r\n }], \r\n asPhone:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"emailAddress\",\r\n text: this.state.userTypeId == ''?this.entity.columns(\"emailAddressUserName\"):(this.state.userTypeId === '2')?this.entity.columns(\"userName\"):this.entity.columns(\"emailAddress\"),\r\n validators: [Validators.required,Validators.length200,(value, context, mode,row)=>{\r\n return (typeof row !='undefined' && row.userTypeId === 1) ? Validators.email(value) : '';\r\n }],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"active\",\r\n text: this.entity.columns(\"active\"),\r\n asActive: true,\r\n creatable:false\r\n }, \r\n {\r\n dataField: \"userId\",\r\n // text: this.entity.columns(\"userId\"),\r\n text: \"Actions\",\r\n creatable: false,\r\n editable:false,\r\n width:200,\r\n formatter: (cell, row) => {\r\n //check super admin role for different options available/removed. \r\n return (
\r\n \r\n \r\n \r\n
);\r\n }\r\n },\r\n {\r\n dataField: \"phonenumber1\",\r\n text: 'd',\r\n creatable:false,\r\n editable:false,\r\n hidden:true, \r\n classes: 'hidden',\r\n headerClasses :'hidden',\r\n sort:false\r\n } \r\n ];\r\n }\r\n\r\n onChange(values){\r\n let items = values ? values.map(item => { return item.value }) : [];\r\n this.setState({selectedCompanies:items})\r\n }\r\n\r\n assignCompanies(){\r\n let self =this;\r\n EM.user.executePost({userId:this.state.selectedUser.userId,companyIds:this.state.selectedCompanies},null,Routes.clientApi.assignCompanies, {}).then(()=>{\r\n let users = [...this.state.users]\r\n let user = _.findWhere(users,{userId:self.state.selectedUser.userId});\r\n _.each(this.state.selectedCompanies,(companyId)=>{\r\n let company = _.findWhere(user.userCompanies,{companyId:companyId});\r\n if(!company)\r\n user.userCompanies.push({userId:self.state.userId,companyId:companyId});\r\n });\r\n self.setState({selectedUser:null,selectedCompanies:[],showAssignCompany:false});\r\n });\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(EM.users, EM.userTypes, EM.role)) { \r\n data = this.mapUsers(); \r\n columns = this.getColumns();\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n onCreateClose={() => { \r\n this.setState({dynamicLabel:this.entity.columns(\"emailAddressUserName\")})\r\n this.setState({userTypeId:''});\r\n }}\r\n onCreate={(data) =>{\r\n let proceed=true;\r\n // if(_.isNull(data.phoneNumber) && data.userTypeId === '1') \r\n // {\r\n // EM.setError(\"Phone number is required.\");\r\n // proceed=false;\r\n // }\r\n if(_.isEmpty(data.emailAddress) && data.userTypeId === '2'){\r\n EM.setError(\"Email address is required.\");\r\n proceed=false;\r\n }\r\n if(!EM.isSuperAdmin()) {\r\n data.companyId = EM.getDefaultCompany()?.companyId\r\n }\r\n return proceed;\r\n }}\r\n />\r\n \r\n Assign Companies\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Users;\r\n","export default __webpack_public_path__ + \"static/media/logo.02384eaf.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport PanelModal from '../PanelModal';\r\nimport { Button as ButtonPop, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\n\r\nconst initialState={\r\n maziOrganizationCode:'',\r\n popUpError:''\r\n};\r\nexport default class ConfirmMaziCode extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.state =initialState \r\n this.onTextChange = this.onTextChange.bind(this);\r\n this.confirmMatch = this.confirmMatch.bind(this);\r\n this.ShowError = this.ShowError.bind(this);\r\n this.resetState = this.resetState.bind(this);\r\n }\r\n onTextChange(event, field) {\r\n this.setState({ maziOrganizationCode:event.target.value });\r\n }\r\n resetState(){\r\n this.setState(initialState);\r\n this.props.isValid(false)\r\n } \r\n confirmMatch(){\r\n const maziOrganizationCode = this.state.maziOrganizationCode\r\n const prefix = this.props.prefix?this.props.prefix:''\r\n if((maziOrganizationCode)===(prefix+EM.location.get().maziOrganizationCode)){\r\n this.resetState()\r\n return this.props.isValid(true)\r\n } else {\r\n this.setState({popUpError:\"Invalid Authorization Code Given!\"})\r\n this.props.isValid(false)\r\n }\r\n }\r\n ShowError() {\r\n if (this.state.popUpError != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.popUpError}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n render(){\r\n\r\n return { this.resetState();this.props.close() }}>\r\n Confirm Identity\r\n \r\n {this.ShowError()}\r\n
\r\n
\r\n
\r\n Authorization Code\r\n { this.onTextChange(event, 'maziOrganizationCode') }}>\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport Spinner from \"../Spinner\";\r\nimport InputMask from 'react-input-mask';\r\nimport Routes from '../../app/Routes';\r\nimport { Route } from \"react-router-dom\";\r\nimport { WithContext as ReactTags } from 'react-tag-input';\r\nimport PanelModal from '../PanelModal';\r\nimport ConfirmMaziCode from './ConfirmMaziCode'\r\nimport { Button as ButtonPop, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport statesData from '../../util/statesUS.json'\r\n\r\nexport default class CustomerDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n user: {\r\n firstName: '',\r\n lastName: '',\r\n phoneNumber: '',\r\n email: '',\r\n firstName2:'',\r\n lastName2: '',\r\n maziAdult2MobileNumber: '',\r\n maziAdult2Email: '',\r\n streetAddress: '',\r\n city: '',\r\n state: '',\r\n zip: '',\r\n maziOrganizationCode:'',\r\n childrenNames:[]\r\n },\r\n popUpError:'',\r\n isPopOpen:false,\r\n isPopOpen2:false,\r\n onlineRegistration:true,\r\n location:false,\r\n company:false\r\n };\r\n this.onTextChange = this.onTextChange.bind(this);\r\n this.validate = this.validate.bind(this);\r\n this.confirmAndDownload = this.confirmAndDownload.bind(this);\r\n this.ShowError = this.ShowError.bind(this);\r\n this.onError = this.onError.bind(this);\r\n this.openPopUp = this.openPopUp.bind(this);\r\n this.openPopUp2 = this.openPopUp2.bind(this);\r\n this.mapStates = this.mapStates.bind(this);\r\n this.closePopUp = this.closePopUp.bind(this);\r\n this.handleValidCode = this.handleValidCode.bind(this);\r\n this.updateOnlineRegistration = this.updateOnlineRegistration.bind(this);\r\n this.validate();\r\n console.log(EM)\r\n }\r\n handleValidCode(){\r\n this.setState({isOpen2:false})\r\n this.updateOnlineRegistration()\r\n }\r\n openPopUp2(){\r\n this.setState({isOpen2:true})\r\n }\r\n closePopUp(){\r\n this.setState({isOpen2:false})\r\n }\r\n updateOnlineRegistration(){\r\n \r\n const self=this\r\n const onlineRegistration = this.state.onlineRegistration\r\n EM.event.executePut({eventId:EM.event.get().eventId, onlineBooking:!onlineRegistration},null,Routes.clientApi.updateEventBooking, {},true)\r\n .then((result)=>{\r\n self.setState({onlineRegistration:!self.state.onlineRegistration})\r\n });\r\n }\r\n ShowError() {\r\n if (this.state.popUpError != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.popUpError}\r\n
\r\n
\r\n
\r\n }\r\n}\r\n onError(){\r\n if(this.props.error){\r\n return
\r\n
\r\n
\r\n {this.props.error}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n handleDelete = i => {\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: this.state.user.childrenNames.filter((tag, index) => index !== i),\r\n }\r\n }))\r\n };\r\n\r\n handleAddition = (tag) => {\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: [...this.state.user.childrenNames, tag],\r\n }\r\n }))\r\n }\r\n handleInputBlur= (tag) => {\r\n if(tag===\"\")return\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: [...this.state.user.childrenNames, {id:tag,text:tag}]\r\n }\r\n }))\r\n \r\n }\r\n\r\n handleDrag = (tag, currPos, newPos) => {\r\n const newTags = this.state.user.childrenNames.slice();\r\n\r\n newTags.splice(currPos, 1);\r\n newTags.splice(newPos, 0, tag);\r\n\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n childrenNames: newTags\r\n }\r\n }))\r\n }\r\n async componentDidMount(){\r\n this.setState({location:EM.location.get()})\r\n this.setState({company:EM.company.get()})\r\n }\r\n \r\n onTextChange(event, field) {\r\n let user = Object.assign(this.state.user, {});\r\n user[field] = field === 'state' ? event?.value || '' : event.target.value;\r\n this.setState({ user });\r\n this.validate();\r\n }\r\n\r\n validate(){\r\n let user=this.state.user\r\n return user.firstName.trim().length >0 &&\r\n user.lastName.trim().length >0 &&\r\n user.phoneNumber.trim().length >0 &&\r\n user.email.trim().length >0 ;\r\n }\r\n handleDownload = (locationId) => {\r\n var url = 'https://api.flashopllc.com/api/appointment/printschedule?LocationId='\r\n \r\n window.open(`${url+locationId}`,)\r\n }\r\n confirmAndDownload(){\r\n const maziOrganizationCode = this.state.user.maziOrganizationCode\r\n if(maziOrganizationCode===EM.location.get().maziOrganizationCode){\r\n this.handleDownload(this.state.location.locationId)\r\n this.setState({isPopOpen:false})\r\n } else {\r\n this.setState({popUpError:\"Authorization Code Given!\"})\r\n }\r\n }\r\n openPopUp(){\r\n this.setState({isPopOpen:true,popUpError:''})\r\n this.setState(prevState => ({\r\n user: {\r\n ...prevState.user,\r\n maziOrganizationCode: \"\"\r\n }\r\n }));\r\n }\r\n\r\n mapStates(){\r\n return statesData.map(state => ({\r\n value: state.name,\r\n label: state.name\r\n }))\r\n }\r\n\r\n render() {\r\n const KeyCodes = {\r\n comma: 188,\r\n enter: 13\r\n };\r\n \r\n const delimiters = [KeyCodes.comma, KeyCodes.enter];\r\n if (EM.allLoaded(EM.event)) {\r\n let jsxRender\r\n \r\n if(this.state.company && this.state.location && this.state.company.companyConfig.mazibook===true && (this.state.location.maziOrganizationCode!==null && this.state.location.maziOrganizationCode!=='')){\r\n jsxRender=(\r\n
\r\n
\r\n {this.state.user.lastName && ` ${this.state.user.lastName} `}\r\n {this.state.user.firstName && ` ${this.state.user.firstName}`}\r\n {this.state.user.firstName && this.state.user.firstName2 && ` & `}\r\n {this.state.user.firstName2 && `${this.state.user.firstName2}`}\r\n {this.state.user.lastName !== this.state.user.lastName2 ? ` ${this.state.user.lastName2}` : null}\r\n
\r\n
\r\n
\r\n {this.state.user.childrenNames.map((name, i) => { \r\n const childrenArray=this.state.user.childrenNames \r\n return {name.id}{(childrenArray.length>1 && i!=(childrenArray.length-1))?', ':''};\r\n })\r\n }\r\n
\r\n {this.onError()}\r\n
\r\n
\r\n *Head Of Household First Name\r\n { this.onTextChange(event, 'firstName') }}>\r\n
\r\n
\r\n *Head Of Household Last Name\r\n { this.onTextChange(event, 'lastName') }}>\r\n
\r\n
\r\n
\r\n
\r\n *Head Of Household MOBILE NUMBER\r\n { this.onTextChange(event, 'phoneNumber') }} mask=\"(999) 999-9999\" maskChar=\" \" />\r\n
\r\n
\r\n *Head Of Household Email\r\n { this.onTextChange(event, 'email') }}>\r\n
\r\n
\r\n
\r\n
\r\n Spouse First Name\r\n { this.onTextChange(event, 'firstName2') }}>\r\n
\r\n
\r\n Spouse Last Name\r\n { this.onTextChange(event, 'lastName2') }}>\r\n
\r\n \r\n
\r\n
\r\n
\r\n Spouse Mobile Number\r\n { this.onTextChange(event, 'maziAdult2MobileNumber') }} mask=\"(999) 999-9999\" maskChar=\" \" />\r\n
\r\n
\r\n Spouse Email \r\n { this.onTextChange(event, 'maziAdult2Email') }}>\r\n
\r\n
\r\n
\r\n
\r\n Street Address\r\n { this.onTextChange(event, 'streetAddress') }}>\r\n
\r\n
\r\n City \r\n { this.onTextChange(event, 'city') }}>\r\n
\r\n
\r\n
\r\n
\r\n State\r\n {/* { this.onTextChange(event, 'state') }}> */}\r\n { \r\n this.onTextChange(selection, 'state');\r\n }}\r\n />\r\n
\r\n
\r\n Zip \r\n { this.onTextChange(event, 'zip') }}>\r\n
\r\n
\r\n
\r\n
\r\n Children Names\r\n {/* { this.onTextChange(event, 'childrenNames') }}> */}\r\n \r\n Enter Oldest child's name then press comma or enter key, repeat for additional children. \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {/*
\r\n
_________For Official Use Only_________
\r\n
\r\n
\r\n { this.openPopUp() }} style={{color:'black !important',fontWeight:'600'}}>Print Schedule\r\n this.openPopUp2()}>{this.state.onlineRegistration===true?'Suspend Online Registration':'Resume Online Registration'}\r\n
*/}\r\n\r\n { this.setState({isPopOpen:false}) }}>\r\n Confirm Identity\r\n \r\n {this.ShowError()}\r\n
\r\n
\r\n
\r\n Authorization Code\r\n { this.onTextChange(event, 'maziOrganizationCode') }}>\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {if(data==true)this.handleValidCode()}} isOpen={this.state.isOpen2} onClose={this.state.closePopUp} close={this.closePopUp}/>\r\n
\r\n )\r\n } else {\r\n jsxRender=(\r\n
\r\n
\r\n
\r\n First Name\r\n { this.onTextChange(event, 'firstName') }}>\r\n
\r\n
\r\n Last Name\r\n { this.onTextChange(event, 'lastName') }}>\r\n
\r\n
\r\n Phone\r\n { this.onTextChange(event, 'phoneNumber') }} mask=\"(999) 999-9999\" maskChar=\" \" />\r\n
\r\n
\r\n Email\r\n { this.onTextChange(event, 'email') }}>\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n return jsxRender\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../Spinner\";\r\n\r\nexport default class DateSelection extends Component {\r\n\r\n constructor(props) {\r\n super(props); \r\n this.state = {\r\n event: EM.event.get()\r\n };\r\n }\r\n\r\n slotSelected(slot) {\r\n // slot.key, slot.enabled, slot.strdt, 0, 0\r\n this.props.next(slot, this.props.step);\r\n }\r\n render() {\r\n const { disableEvent } = this.props \r\n if ((disableEvent && EM.allLoaded(EM.availableDays)) || EM.allLoaded(EM.event, EM.availableDays)) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.props.dates.map((slot,index) => (\r\n
\r\n
{slot.title}
\r\n
\r\n {\r\n (slot.slotsAvailable === false)\r\n ?
Fully Booked!
\r\n :
{\r\n if (slot.slotsAvailable === true)\r\n this.slotSelected(slot)\r\n }} className=\"available py-2 px-3 text-nowrap ms-auto fw-bolder text-uppercase\" >Available
\r\n }\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport Dates from '../util/Dates';\r\n\r\nexport default class CalendarView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n months: [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\", \"November\",\"December\"],\r\n data: this.props.data,\r\n date: new Date()\r\n };\r\n this.Foward = this.Foward.bind(this);\r\n this.Backward = this.Backward.bind(this);\r\n this.GetDay = this.GetDay.bind(this);\r\n this.DayClick = this.DayClick.bind(this);\r\n }\r\n\r\n GetDay(ny, nx) {\r\n let rmvc = this.state.data[nx][ny]; \r\n rmvc.css = \"table-light sortable pt-3 pb-3\";\r\n if(rmvc.enabled)\r\n rmvc.css = \"table-success sortable pt-3 pb-3\";\r\n\r\n return rmvc;\r\n }\r\n\r\n Backward() {\r\n let dt = this.state.date;\r\n dt.setMonth(dt.getMonth() - 1);\r\n this.setState({ date: dt,data: this.props.onCalendarChange(dt) });\r\n \r\n }\r\n\r\n Foward() {\r\n let dt = this.state.date;\r\n dt.setMonth(dt.getMonth() + 1);\r\n this.setState({ date: dt,data: this.props.onCalendarChange(dt) });\r\n }\r\n\r\n DayClick(key, enabled, strdt, Day, Week) {\r\n var date = Dates.fromStr(key.split('-')[0],'LLddyyyy');\r\n this.props.onDayClick(Dates.toJS(date));\r\n }\r\n\r\n GetWeek(Week) {\r\n return \r\n this.DayClick(this.GetDay(0, Week).key, this.GetDay(0, Week).enabled, this.GetDay(0, Week).strdt, 0, Week)} className={this.GetDay(0, Week).css}>{this.GetDay(0, Week).title} {this.GetDay(0, Week).aptCount}\r\n this.DayClick(this.GetDay(1, Week).key, this.GetDay(1, Week).enabled, this.GetDay(1, Week).strdt, 1, Week)} className={this.GetDay(1, Week).css}>{this.GetDay(1, Week).title} {this.GetDay(1, Week).aptCount}\r\n this.DayClick(this.GetDay(2, Week).key, this.GetDay(2, Week).enabled, this.GetDay(2, Week).strdt, 2, Week)} className={this.GetDay(2, Week).css}>{this.GetDay(2, Week).title} {this.GetDay(2, Week).aptCount}\r\n this.DayClick(this.GetDay(3, Week).key, this.GetDay(3, Week).enabled, this.GetDay(3, Week).strdt, 3, Week)} className={this.GetDay(3, Week).css}>{this.GetDay(3, Week).title} {this.GetDay(3, Week).aptCount}\r\n this.DayClick(this.GetDay(4, Week).key, this.GetDay(4, Week).enabled, this.GetDay(4, Week).strdt, 4, Week)} className={this.GetDay(4, Week).css}>{this.GetDay(4, Week).title} {this.GetDay(4, Week).aptCount}\r\n this.DayClick(this.GetDay(5, Week).key, this.GetDay(5, Week).enabled, this.GetDay(5, Week).strdt, 5, Week)} className={this.GetDay(5, Week).css}>{this.GetDay(5, Week).title} {this.GetDay(5, Week).aptCount}\r\n this.DayClick(this.GetDay(6, Week).key, this.GetDay(6, Week).enabled, this.GetDay(6, Week).strdt, 6, Week)} className={this.GetDay(6, Week).css}>{this.GetDay(6, Week).title} {this.GetDay(6, Week).aptCount}\r\n ;\r\n }\r\n\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n if (current_state.data !== props.data) {\r\n\r\n return {\r\n data: props.data\r\n }\r\n }\r\n return null\r\n }\r\n\r\n render() { \r\n console.log(this.state);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{this.state.months[this.state.date.getMonth()]}
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.GetWeek(0)}\r\n {this.GetWeek(1)}\r\n {this.GetWeek(2)}\r\n {this.GetWeek(3)}\r\n {this.GetWeek(4)}\r\n {this.GetWeek(5)}\r\n
MonTuesWedThuFriSatSun
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n ); \r\n }\r\n}","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport InputMask from 'react-input-mask';\r\nimport { Button } from \"reactstrap\";\r\nimport Routes from '../app/Routes';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport default class AppointmentOptions extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.IDhange = this.IDhange.bind(this);\r\n this.TypeChange = this.TypeChange.bind(this);\r\n\r\n this.state =\r\n {\r\n m_bPleaseWait: false,\r\n m_bCanceled: false,\r\n m_bShowConfirm: false,\r\n m_strID: \"\",\r\n m_strType: \"\",\r\n m_strAddress: \"\",\r\n data: this.props.data,\r\n m_strErrorMessage: \"\"\r\n };\r\n }\r\n\r\n IDhange(event) {\r\n this.setState({ m_strID: event.target.value });\r\n }\r\n\r\n TypeChange(event) {\r\n this.setState({ m_strType: event.target.value });\r\n }\r\n\r\n CancelChecking() {\r\n this.setState({ m_bShowConfirm: false });\r\n }\r\n\r\n FirstNameChange = (event) => {\r\n let capt = this.state.data;\r\n capt.firstName = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n LastNameChange = (event) => {\r\n let capt = this.state.data;\r\n capt.lastName = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n PhoneChange = (event) => {\r\n let capt = this.state.data;\r\n capt.phoneNumber = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n BackupPhoneChange = (event) => {\r\n let capt = this.state.data;\r\n capt.backupNumber = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n AddressChange = (event) => {\r\n let capt = this.state.data;\r\n capt.address1 = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n CityChange = (event) => {\r\n let capt = this.state.data;\r\n capt.city = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n StateChange = (event) => {\r\n let capt = this.state.data;\r\n capt.state = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n ZipChange = (event) => {\r\n let capt = this.state.data;\r\n capt.zip = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n EMailChange = (event) => {\r\n let capt = this.state.data;\r\n capt.eMail = event.target.value;\r\n this.setState({ data: capt });\r\n }\r\n\r\n ShowError() {\r\n if (this.state.m_strErrorMessage != \"\") {\r\n return
\r\n
\r\n
\r\n {this.state.m_strErrorMessage}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n\r\n CheckinView() {\r\n if (this.state.m_bShowConfirm)\r\n return
\r\n
\r\n\r\n {this.ShowError()}\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Phone
\r\n\r\n
\r\n
\r\n
 
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n\r\n patchCheckIn(checkedIn) {\r\n let self = this;\r\n EM.calendar.executePut({ appointmentId: this.state.data.appointmentID, propertyName: \"CheckedIn\", checkedIn: checkedIn,phoneNumber:this.state.data.phoneNumber }, \r\n null, Routes.clientApi.patchAppointment, {})\r\n .then((result) => {\r\n if(result) {\r\n let data = Object.assign({}, self.state.data, { checkedIn: checkedIn });\r\n self.setState({ data: data });\r\n self.props.onCheckInChange(this.state.data,checkedIn);\r\n }\r\n });\r\n }\r\n\r\n RenderRescheduleButton() {\r\n if (this.state.data.checkedIn !== true) {\r\n let url=''\r\n if(this.props.bookingPage) {\r\n url = Routes.compose(Routes.client.rescheduleAppointmentBooking, { userId: this.state.data.userID, companyId: this.state.data.location?.companyID, appointmentId: this.state.data.appointmentID, locationId: this.props.data.location.id});\r\n } else {\r\n url = Routes.compose(Routes.client.rescheduleAppointment, { userId: this.state.data.userID, companyId: this.state.data.location?.companyID, appointmentId: this.state.data.appointmentID });\r\n }\r\n return ()\r\n }\r\n }\r\n\r\n RenderConfirmButton() {\r\n if (!this.state.data.confirmed)\r\n return ();\r\n }\r\n\r\n RenderSitting() {\r\n if (this.state.data.sitting != \"\")\r\n return
SN: {this.state.data.sitting}
;\r\n }\r\n\r\n RenderCancelButton() {\r\n // if(EM.isAdmin() || EM.isSuperAdmin())\r\n return ();\r\n }\r\n\r\n confirm() { \r\n let self = this;\r\n EM.calendar.executePut({ appointmentId: this.state.data.appointmentID, propertyName: \"Confirmed\", confirmed: true }, null, Routes.clientApi.patchAppointment, {})\r\n .then((result) => { \r\n if(result) {\r\n let data = Object.assign({}, self.state.data, { confirmed: true });\r\n self.setState({ data: data });\r\n }\r\n })\r\n }\r\n\r\n cancel() {\r\n let self = this;\r\n EM.calendar.executePut({ appointmentId: this.state.data.appointmentID, propertyName: \"Cancelled\", cancelled: true }, null, Routes.clientApi.patchAppointment, {})\r\n .then((result) => {\r\n if(result) {\r\n let data = Object.assign({}, self.state.data, { canceled: true });\r\n self.setState({ data: data });\r\n }\r\n }); \r\n }\r\n\r\n\r\n render() {\r\n console.log(`canceled:${this.state.data.canceled}`)\r\n if (this.state.data.canceled) {\r\n return (\r\n
\r\n This has been canceled!\r\n
\r\n )\r\n }\r\n\r\n if (this.state.data.checkedIn) {\r\n return (\r\n //
\r\n //
\r\n //
{this.RenderSitting()} \r\n \r\n //
\r\n //
\r\n //
\r\n )\r\n }\r\n else\r\n return (\r\n \r\n {this.RenderRescheduleButton()}\r\n {!this.props.bookingPage ? (\r\n \r\n ):null}\r\n {this.RenderConfirmButton()}\r\n {this.RenderCancelButton()}\r\n
\r\n {this.CheckinView()}\r\n
\r\n
\r\n );\r\n }\r\n}","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../Spinner\";\r\nimport { Button} from \"reactstrap\";\r\nimport ConfirmMaziCode from './ConfirmMaziCode'\r\nimport Routes from \"../../app/Routes\";\r\nconst initialState= {\r\n loading: false,\r\n isPopOpen:false,\r\n time:false, \r\n reservedTime:false,\r\n blockShow:false,\r\n slotId:false,\r\n selectedSlotBlock:[],\r\n selectedSlotDelete:[]\r\n}\r\nexport default class TimeSelection extends Component {\r\n constructor(props) {\r\n super(props); \r\n this.state = initialState\r\n this.closePopUp = this.closePopUp.bind(this);\r\n this.handleValidCode = this.handleValidCode.bind(this);\r\n this.timeSelected = this.timeSelected.bind(this);\r\n this.pushSlots = this.pushSlots.bind(this);\r\n this.isSelectedSlot = this.isSelectedSlot.bind(this);\r\n this.handleBlockUnblock = this.handleBlockUnblock.bind(this);\r\n this.handleBlockButton = this.handleBlockButton.bind(this);\r\n }\r\n pushSlots(data){\r\n if(data.available)\r\n {\r\n if(!this.state.selectedSlotBlock.includes(data.timeSlot)){\r\n this.setState({\r\n selectedSlotBlock: [...this.state.selectedSlotBlock, data.timeSlot]\r\n })\r\n } else {\r\n const selectedSlotBlock = this.state.selectedSlotBlock.filter((prevItem) => prevItem !== data.timeSlot)\r\n this.setState({\r\n selectedSlotBlock\r\n })\r\n }\r\n } else {\r\n if(!this.state.selectedSlotDelete.includes(data.timeSlotId)){\r\n this.setState({\r\n selectedSlotDelete: [...this.state.selectedSlotDelete, data.timeSlotId]\r\n })\r\n } else {\r\n const selectedSlotDelete = this.state.selectedSlotDelete.filter((prevItem) => prevItem !== data.timeSlotId)\r\n this.setState({\r\n selectedSlotDelete\r\n })\r\n }\r\n }\r\n \r\n }\r\n \r\n \r\n\r\n closePopUp(){\r\n this.setState({isOpen:false})\r\n }\r\n handleValidCode(){\r\n this.setState({blockShow:true})\r\n this.closePopUp()\r\n }\r\n timeSelected(time) {\r\n \r\n this.props.next(time, this.props.step);\r\n this.setState(initialState)\r\n }\r\n \r\n\r\n isSelectedSlot(data){\r\n if(this.state.blockShow===false)return false\r\n const foundInBlockSlot = this.state.selectedSlotBlock.find(el => el === data.timeSlot);\r\n const foundInDeleteSlot = this.state.selectedSlotDelete.find(el => el === data.timeSlotId);\r\n if(foundInBlockSlot || foundInDeleteSlot){\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n async handleBlockUnblock(){ \r\n const self= this\r\n this.setState({loading:true})\r\n const selectedSlotBlock = this.state.selectedSlotBlock\r\n const selectedSlotDelete = this.state.selectedSlotDelete\r\n if(selectedSlotBlock.length){\r\n var timeSlots = []\r\n for(const value of selectedSlotBlock){\r\n timeSlots.push({\r\n \"locationId\": EM.location.get().locationId,\r\n \"timeSlot\": `${this.props.dateSelected.strdt} ${value}`\r\n });\r\n }\r\n await EM.availableSlots.executePost({\r\n timeSlots:timeSlots\r\n },{},Routes.clientApi.blocktimeslotsMultiple,{}).then((result)=>{\r\n self.setState({loading:false})\r\n });\r\n }\r\n if(selectedSlotDelete.length){\r\n await EM.availableSlots.executeDelete({\r\n timeSlotIds:selectedSlotDelete\r\n },{},Routes.clientApi.blocktimeslotsMultiple,{}).then((result)=>{\r\n self.setState({loading:false})\r\n });\r\n }\r\n\r\n this.props.loadSlots(this.props.dateSelected.strdt)\r\n this.setState({\r\n selectedSlotBlock:[],\r\n selectedSlotDelete:[],\r\n blockShow:false\r\n })\r\n }\r\n handleBlockButton(){\r\n console.log(this.state.blockShow)\r\n if(this.state.blockShow===false){\r\n this.setState({isOpen:true})\r\n } else {\r\n this.handleBlockUnblock()\r\n }\r\n \r\n }\r\n\r\n render() {\r\n const { disableEvent = null } = this.props;\r\n if(this.state.loading) \r\n return \r\n if (disableEvent || EM.allLoaded(EM.event)) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {this.props.slots.map((time,index) =>{\r\n if(time.timeSlotId!==undefined){\r\n \r\n // console.log(time.timeSlot)\r\n return (
{ this.pushSlots(time) }:(event) =>{if(time.available === true)this.timeSelected(time.timeSlot)}\r\n }\r\n >\r\n
\r\n
{time.timeSlot}
\r\n
\r\n {this.state.blockShow===true &&
\r\n {\r\n (time.available === false)\r\n ?
Unblock
\r\n :
{\r\n }} className=\"available py-2 px-3 text-nowrap ms-auto fw-bolder text-uppercase\" >Block
\r\n }\r\n
}\r\n {this.state.blockShow===false && time.available===false &&
\r\n {\r\n
Not Available
\r\n }\r\n
}\r\n \r\n
)\r\n } else {\r\n return
{ this.timeSelected(time); }}>\r\n
{time}
\r\n
\r\n }\r\n \r\n })}\r\n {if(data==true)this.handleValidCode()}} isOpen={this.state.isOpen} onClose={this.state.closePopUp} close={this.closePopUp}/>\r\n \r\n {this.props.mazibit &&
\r\n \r\n
}\r\n
\r\n );\r\n \r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React from \"react\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from 'react-select';\r\nimport { Button } from \"reactstrap\";\r\nimport DateSelection from \"../components/BookingWizard/DateSelection\";\r\nimport TimeSelection from \"../components/BookingWizard/TimeSelection\";\r\nimport InputMask from 'react-input-mask';\r\nimport _ from 'underscore';\r\nimport Dates from '../util/Dates';\r\nimport Routes from \"../app/Routes\";\r\n\r\nclass Sales extends React.Component {\r\n stateData () {\r\n if(this.props.calendar){\r\n console.log(this.props)\r\n return {\r\n locations: [],\r\n userFirstName: '',\r\n userLastName: '',\r\n userPhone: '',\r\n userEmail: '',\r\n locationId: this.props.calendar.locationId,\r\n locationAddress: '',\r\n locationobj: null,\r\n dates: [],\r\n selectedDateSlot: {strdt:this.props.calendar.date},\r\n slots: [],\r\n selectedTimeSlot: null,\r\n isPaid: null,\r\n isCreated: false,\r\n paymentObj: null,\r\n\r\n selectedStep: {\r\n name: 'contactInformation',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.contactInformation, visible: false, done: true} },\r\n next: async() => { \r\n await this.loadSlots()\r\n return {...this.state.steps.timeDetails, visible: true}\r\n },\r\n incomplete: () => {}\r\n },\r\n steps: {\r\n locationsDetails: {\r\n name: 'locationsDetails',\r\n visible: false,\r\n data: null,\r\n done: true,\r\n complete: () => { return {...this.state.steps.dateDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n },\r\n contactInformation: {\r\n name: 'contactInformation',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.contactInformation, visible: false, done: true} },\r\n next: async() => { \r\n await this.loadSlots()\r\n return {...this.state.steps.timeDetails, visible: true}\r\n },\r\n incomplete: () => { return {...this.state.steps.contactInformation, visible: false, done: false} },\r\n },\r\n dateDetails: {\r\n name: 'dateDetails',\r\n visible: false,\r\n data: null,\r\n done: true,\r\n complete: () => { return {...this.state.steps.dateDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n incomplete: () => { return {...this.state.steps.dateDetails, visible: false, done: false} },\r\n },\r\n timeDetails: {\r\n name: 'timeDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.timeDetails, visible: false, done: true}},\r\n next: () => { return {...this.state.steps.paymentDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n incomplete: () => { return {...this.state.steps.timeDetails, visible: false, done: false}},\r\n },\r\n paymentDetails: {\r\n name: 'paymentDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.paymentDetails, visible: false, done: true} },\r\n prev: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.paymentDetails, visible: false, done: false} },\r\n },\r\n },\r\n }\r\n }\r\n else {\r\n return {\r\n locations: [],\r\n userFirstName: '',\r\n userLastName: '',\r\n userPhone: '',\r\n userEmail: '',\r\n locationId: null,\r\n locationAddress: '',\r\n locationobj: null,\r\n dates: [],\r\n selectedDateSlot: null,\r\n slots: [],\r\n selectedTimeSlot: null,\r\n isPaid: null,\r\n isCreated: false,\r\n paymentObj: null,\r\n\r\n selectedStep: {\r\n name: 'locationsDetails',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.locationsDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.contactInformation, visible: true}},\r\n incomplete: () => {}\r\n },\r\n steps: {\r\n locationsDetails: {\r\n name: 'locationsDetails',\r\n visible: true,\r\n data: null,\r\n done: false,\r\n complete: () => { return{...this.state.steps.locationsDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n },\r\n contactInformation: {\r\n name: 'contactInformation',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.contactInformation, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.dateDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.locationsDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.contactInformation, visible: false, done: false} },\r\n },\r\n dateDetails: {\r\n name: 'dateDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.dateDetails, visible: false, done: true} },\r\n next: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.contactInformation, visible: true} },\r\n incomplete: () => { return {...this.state.steps.dateDetails, visible: false, done: false} },\r\n },\r\n timeDetails: {\r\n name: 'timeDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.timeDetails, visible: false, done: true}},\r\n next: () => { return {...this.state.steps.paymentDetails, visible: true} },\r\n prev: () => { return {...this.state.steps.dateDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.timeDetails, visible: false, done: false}},\r\n },\r\n paymentDetails: {\r\n name: 'paymentDetails',\r\n visible: false,\r\n data: null,\r\n done: false,\r\n complete: () => { return {...this.state.steps.paymentDetails, visible: false, done: true} },\r\n prev: () => { return {...this.state.steps.timeDetails, visible: true} },\r\n incomplete: () => { return {...this.state.steps.paymentDetails, visible: false, done: false} },\r\n },\r\n },\r\n }\r\n }\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n let staticState = this.stateData()\r\n this.state = {\r\n ...staticState\r\n };\r\n }\r\n\r\n reInitialize () {\r\n let staticState = this.stateData()\r\n this.setState({\r\n ...staticState\r\n }, () => {\r\n console.log('STATE ', this.state)\r\n this.getLocations()\r\n })\r\n }\r\n\r\n getLocations () {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.locations.loadEntityByParent({companyId: company.companyId}, true).then(()=>{\r\n this.setState({locations: EM.locations.asOptionList(null, true)})\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n if(!this.props.calendar)\r\n this.getLocations()\r\n }\r\n\r\n loadLocationDates() {\r\n let params = { locationId: this.state.locationId };\r\n EM.availableDays.searchEntity(params, {}, true).then(() => {\r\n this.setState({ dates: EM.availableDays.get() });\r\n });\r\n }\r\n\r\n getSelectedSlot(slot) {\r\n this.setState({selectedDateSlot: slot}, () => {\r\n this.next();\r\n this.loadSlots();\r\n })\r\n }\r\n\r\n loadSlots() {\r\n let date = this.state.selectedDateSlot;\r\n let self = this;\r\n let locationId = this.state.locationId;\r\n let params = { locationId: locationId, date: date.strdt };\r\n let qs = { date: date.strdt };\r\n console.log('date',date)\r\n EM.availableSlots.searchEntity(params, qs, true).then(() => {\r\n self.setState({ slots: EM.availableSlots.get() });\r\n });\r\n }\r\n\r\n next = async() => {\r\n try {\r\n \r\n let complete = this.state.selectedStep.complete()\r\n let next = await this.state.selectedStep.next()\r\n this.setState({\r\n steps : {...this.state.steps, [complete.name]: complete, [next.name]: next },\r\n selectedStep: next\r\n })\r\n } catch(error){\r\n console.log('error in next ', error)\r\n }\r\n }\r\n\r\n previous = () => {\r\n try {\r\n let incomplete = this.state.selectedStep.incomplete()\r\n let prev = this.state.selectedStep.prev()\r\n this.setState({\r\n steps : {...this.state.steps, [incomplete.name]: incomplete, [prev.name]: prev },\r\n selectedStep: prev\r\n })\r\n } catch(error){\r\n console.log('error in previous ', error)\r\n }\r\n }\r\n\r\n emailValidator(value) {\r\n if(value === '') return false;\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (!re.test(value)){\r\n return true;\r\n } \r\n return false\r\n }\r\n\r\n schedule() {\r\n try {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n \r\n const { userFirstName, userLastName, userPhone, locationId, userEmail, isPaid } = this.state;\r\n \r\n let user = EM.account.get();\r\n \r\n const { selectedDateSlot, selectedTimeSlot } = this.state \r\n let date = new Date(selectedDateSlot.strdt + ' ' + selectedTimeSlot);\r\n // let date = Dates.fromStr(selectedDateSlot.strdt + ' ' + selectedTimeSlot,`L/d/yyyy t`);\r\n // if(!date) date = Dates.fromStr(selectedDateSlot.strdt + ' ' + selectedTimeSlot,`L/d/yyyy HH:MM`);\r\n // console.log(Dates.fromStr(selectedDateSlot.strdt + ' ' + selectedTimeSlot,`L/d/yyyy HH:MM`));\r\n \r\n let req = {\r\n firstName: userFirstName,\r\n lastName: userLastName,\r\n phoneNumber: userPhone,\r\n backupPhoneNumber: userPhone,\r\n email: userEmail,\r\n notes: \"\",\r\n locationId: locationId,\r\n paid: isPaid,\r\n sales: `${user.firstName} ${user.lastName}`,\r\n salesId: `${user.userId}`,\r\n checkedIn: false,\r\n createdBy: user.userId,\r\n creationSourceId: 1,\r\n // slotDateTime: date.toISO().replace(':00.000Z','')\r\n slotDateTime: date.toLocaleString()\r\n }\r\n \r\n console.log('JSON ', req)\r\n EM.appointments.executePost(req, null, Routes.clientApi.appointmentPresale, {}, false)\r\n .then(() => {\r\n console.log('APPOINTMENT CREATED SUCCESSFULLY !')\r\n this.setState({isCreated: true})\r\n })\r\n } catch(error) {\r\n console.log('ERROR in Creating Appointment ', error)\r\n }\r\n }\r\n\r\n validate () {\r\n const { selectedDateSlot, selectedTimeSlot, userFirstName, userLastName, userPhone, isPaid } = this.state;\r\n return selectedDateSlot && selectedTimeSlot && userFirstName && userLastName && userPhone && isPaid !== null;\r\n }\r\n\r\n userInfoValidate () {\r\n const { userFirstName, userLastName, userPhone, userEmail } = this.state;\r\n if(userEmail && userEmail.length > 0) {\r\n return userFirstName && userLastName && userPhone && !this.emailValidator(userEmail)\r\n }\r\n return userFirstName && userLastName && userPhone\r\n }\r\n\r\n Header = () => {\r\n const { steps } = this.state;\r\n return (\r\n \r\n
    \r\n
  • \r\n Location\r\n
  • \r\n
  • \r\n
  • \r\n Contact Info\r\n
  • \r\n
  • \r\n
  • \r\n Date\r\n
  • \r\n
  • \r\n
  • \r\n Time\r\n
  • \r\n
  • \r\n
  • \r\n Payment\r\n
  • \r\n
\r\n
\r\n )\r\n }\r\n\r\n render() {\r\n const { steps } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n {/* Form Steps */}\r\n
\r\n {this.state.locationAddress && this.state.locationAddress.length > 0 ? (\r\n
\r\n
\r\n \r\n

\r\n \r\n {this.state.locationAddress}\r\n\r\n \r\n

\r\n
\r\n
\r\n ) : null}\r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Sales;\r\n","export default __webpack_public_path__ + \"static/media/scrollToTop.666e20fe.svg\";","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport AppointmentOptions from './AppointmentOptions';\r\nimport { Button } from 'reactstrap';\r\nimport Routes from '../app/Routes';\r\nimport _ from 'underscore';\r\nimport PageTitle from '../components/PageTitle';\r\nimport Sales from '../pages/Sales'\r\nimport Spinner from './Spinner';\r\nimport scrollToTop from \"../assets/scrollToTop.svg\";\r\nexport default class CalendarDayDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n locationId: this.props.locationId,\r\n data: this.props.data,\r\n date: this.props.date,\r\n m_bPleaseWait: true,\r\n notes: [],\r\n createAppointmentMode:false,\r\n showScrollButton: false,\r\n };\r\n this.Forward = this.Forward.bind(this);\r\n this.Backward = this.Backward.bind(this);\r\n this.notesChange = this.notesChange.bind(this);\r\n this.saveNotes = this.saveNotes.bind(this);\r\n this.checkinChanged = this.checkinChanged.bind(this);\r\n this.createAppointmentToggle = this.createAppointmentToggle.bind(this);\r\n this.reLoad = this.reLoad.bind(this);\r\n this.sales=React.createRef()\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('scroll', this.handleScroll);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.handleScroll);\r\n }\r\n\r\n handleScroll = () => {\r\n const { showScrollButton } = this.state;\r\n if (window.scrollY > 100 && !showScrollButton) {\r\n this.setState({ showScrollButton: true });\r\n } else if (window.scrollY <= 100 && showScrollButton) {\r\n this.setState({ showScrollButton: false });\r\n }\r\n };\r\n\r\n Forward() {\r\n let dt = this.state.date;\r\n dt.setDate(dt.getDate() + 1);\r\n this.props.onDayClick(dt);\r\n }\r\n\r\n reLoad(){\r\n let dt = this.state.date;\r\n this.props.onDayClick(dt);\r\n }\r\n\r\n Backward() {\r\n let dt = this.state.date;\r\n dt.setDate(dt.getDate() - 1);\r\n this.props.onDayClick(dt);\r\n }\r\n\r\n\r\n testButton(phoneNumber) {\r\n return ()\r\n }\r\n\r\n sendApp(phoneNumber) {\r\n EM.calendar.executeGet(null, { phoneNumber: phoneNumber }, Routes.clientApi.sendApp, {});\r\n }\r\n\r\n notesChange(event, appointmentID) {\r\n var notes = _.reject([...this.state.notes], (note) => {\r\n return note.appointmentId === appointmentID;\r\n });\r\n notes.push({ appointmentId: appointmentID, notes: event.target.value });\r\n this.setState({ notes });\r\n }\r\n\r\n saveNotes(appointmentId) {\r\n var notes = _.findWhere(this.state.notes, { appointmentId: appointmentId });\r\n if (notes)\r\n EM.calendar.executePut({ appointmentId: appointmentId, notes: notes.notes }, null, Routes.clientApi.saveNotes, {})\r\n .then((result) => {\r\n // handle change if need be\r\n });\r\n }\r\n\r\n checkinChanged(appointment,value){\r\n // let data = [...this.state.data];\r\n // var index = _.indexOf(data,appointment);\r\n // data[index].checkedIn = value;\r\n // this.setState({data});\r\n }\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n if (current_state.data !== props.data) {\r\n return {\r\n data: props.data\r\n }\r\n }\r\n return null\r\n }\r\n\r\n createAppointmentToggle(){\r\n this.setState({createAppointmentMode:!this.state.createAppointmentMode})\r\n if(this.state.createAppointmentMode){\r\n this.reLoad()\r\n }\r\n }\r\n scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n };\r\n\r\n render() {\r\n\r\n if(this.props.loading){\r\n return\r\n }\r\n const createAppointmentMode = this.state.createAppointmentMode\r\n let dateString = this.state.date.toLocaleDateString('en-US', { year: 'numeric', month: '2-digit', day: '2-digit' });\r\n const createAppointmentButton=
\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {this.state.showScrollButton && (\r\n
\r\n \"Scroll\r\n
\r\n )}\r\n
\r\n {!this.props.bookingPage? (\r\n \r\n ):null}\r\n {createAppointmentMode && }\r\n {!createAppointmentMode && this.state.data.map((loc,index) => {\r\n return (\r\n
\r\n
\r\n
\r\n
{loc.displayTime} {loc.deal}
\r\n
\r\n
\r\n
Name : {loc.firstName} {loc.lastName} {loc.recheduleCount}
\r\n
Phone: {loc.phoneNumber}
\r\n
Backup Phone: {loc.backupNumber}
\r\n
Email: {loc.eMail}
\r\n
\r\n
\r\n
Seller: {loc.sales}
\r\n \r\n
\r\n
\r\n
Notes:
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.testButton(loc.phoneNumber)} \r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from 'react-select';\r\nimport Routes from '../../app/Routes';\r\nimport PageTitle from '../PageTitle';\r\nimport CalendarView from '../CalendarView';\r\nimport CalendarDayDetails from '../CalendarDayDetails';\r\nimport Dates from '../../util/Dates';\r\n\r\nclass LocationCalendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.locations;\r\n let company = props.company;\r\n this.state = {\r\n loading:false,\r\n parentRecordDetail: { companyId: company.companyId },\r\n company : company,\r\n locationOptions:[],\r\n data:[],\r\n locationId:props.location.locationId,\r\n showCalendar:false,\r\n showDetails:false,\r\n dayDetails:null,\r\n selectedDate:null,\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.onCalendarChange = this.onCalendarChange.bind(this);\r\n this.onDayClick = this.onDayClick.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n this.setState({companyName:this.props?.company?.name})\r\n this.locationChange(this.state.locationId)\r\n }\r\n\r\n locationChange(locationId,date){\r\n console.log(locationId);\r\n let self =this;\r\n if(locationId && locationId>0)\r\n EM.calendar.executeGet(null,{locationId:locationId,date:(date ? date : new Date()).toISOString()},Routes.clientApi.calendar, {})\r\n .then((result)=>{\r\n self.setState({data:result, locationId,showCalendar:true,showDetails:false});\r\n });\r\n }\r\n\r\n onCalendarChange(date){\r\n if(date) this.locationChange(this.state.locationId,date);\r\n }\r\n\r\n async onDayClick(date){ \r\n if(date)\r\n {\r\n let self =this;\r\n if(self.state.locationId && self.state.locationId>0)\r\n {\r\n this.setState({loading:true})\r\n await EM.calendar.executeGet(null,{locationId:self.state.locationId,date:(date ? Dates.toDateTime(Dates.fromDate(date)) : new Date().toISOString())},Routes.clientApi.calendarday, {})\r\n .then((result)=>{ \r\n self.setState({dayDetails:result,showCalendar:false,showDetails:true,selectedDate:date});\r\n \r\n });\r\n this.setState({loading:false})\r\n }\r\n \r\n }\r\n else\r\n this.setState({showCalendar:false,showDetails:true});\r\n }\r\n\r\n\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n \r\n
\r\n {\r\n self.state.showCalendar ? {self.onDayClick(date);}} onCalendarChange={(date)=>{self.onCalendarChange(date)}} data={this.state.data}> : ''\r\n }\r\n {\r\n self.state.showDetails ? {self.locationChange(self.state.locationId)}} onDayClick={(date)=>{self.onDayClick(date);}} data={this.state.dayDetails} locationId={this.state.locationId} date={this.state.selectedDate} > :''\r\n }\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LocationCalendar;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport Spinner from \"../Spinner\";\r\nimport Routes from '../../app/Routes'\r\nimport ConfirmMaziCode from './ConfirmMaziCode'\r\nimport LocationCalendar from \"./LocationCalendar\";\r\nexport default class EventDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n onlineRegistration: EM.event.get().onlineBooking,\r\n isOpen: false,\r\n popeUpAction: null,\r\n location: EM.location.get(),\r\n showCalendar: this.props.location?.state?.openCalendar ? true : false\r\n };\r\n this.openPopUp = this.openPopUp.bind(this);\r\n this.closePopUp = this.closePopUp.bind(this);\r\n this.handleValidCode = this.handleValidCode.bind(this);\r\n this.confirmAndDownload = this.confirmAndDownload.bind(this);\r\n this.updateOnlineRegistration = this.updateOnlineRegistration.bind(this);\r\n }\r\n // async componentDidMount(){\r\n // this.setState({location:EM.location.get()})\r\n // }\r\n updateOnlineRegistration() {\r\n\r\n const self = this\r\n const onlineRegistration = this.state.onlineRegistration\r\n EM.event.executePut({ eventId: EM.event.get().eventId, onlineBooking: !onlineRegistration }, null, Routes.clientApi.updateEventBooking, {}, true)\r\n .then((result) => {\r\n self.setState({ onlineRegistration: !self.state.onlineRegistration })\r\n });\r\n }\r\n handleValidCode() {\r\n this.setState({ isOpen: false })\r\n if (this.state.popeUpAction === 'suspend') {\r\n this.updateOnlineRegistration()\r\n } else if (this.state.popeUpAction === \"appointment\") {\r\n this.setState({ showCalendar: true })\r\n } else {\r\n this.confirmAndDownload()\r\n }\r\n }\r\n /*handleDownload = (locationId) => {\r\n var url = 'https://api.flashopllc.com/api/appointment/printschedule?LocationId='\r\n \r\n window.open(`${url+locationId}`,)\r\n }*/\r\n\r\n handleDownload = (locationId) => {\r\n if (!locationId) {\r\n console.error('Invalid locationId');\r\n return;\r\n }\r\n\r\n const baseUrl = 'https://api.flashopllc.com/api/appointment/printschedule';\r\n const url = `${baseUrl}?LocationId=${locationId}`;\r\n\r\n window.open(url);\r\n }\r\n confirmAndDownload() {\r\n this.handleDownload(this.state.location.locationId)\r\n this.setState({ isPopOpen: false })\r\n }\r\n openPopUp(popeUpAction) {\r\n if (popeUpAction === \"appointment\") {\r\n if (this.state.showCalendar) {\r\n this.setState({ showCalendar: false })\r\n if (this.props.location.state) {\r\n this.props.history.replace({ ...this.props.history.location, state: undefined });\r\n }\r\n return\r\n }\r\n }\r\n this.setState({ isOpen: true, popeUpAction })\r\n }\r\n closePopUp() {\r\n this.setState({ isOpen: false })\r\n }\r\n render() {\r\n if (EM.allLoaded(EM.event, EM.location)) {\r\n let event = EM.event.get();\r\n let location = EM.location.get()\r\n let company = EM.company.get()\r\n return (\r\n
\r\n {!this.state.onlineRegistration &&

Online booking for this event has been temporarily disabled.

}\r\n
\r\n {event.deal}\r\n
\r\n

{event.description}

\r\n {!this.state.onlineRegistration &&

The online signup is temporarily suspended.

}\r\n
\r\n \r\n
\r\n
\r\n
_________For Official Use Only_________
\r\n
\r\n {(company && location && company.companyConfig.mazibook === true && (location.maziOrganizationCode !== null && location.maziOrganizationCode !== '')) && <>\r\n \r\n \r\n \r\n { if (data == true) this.handleValidCode() }} isOpen={this.state.isOpen} onClose={this.state.closePopUp} close={this.closePopUp} />\r\n {this.state.showCalendar ? (\r\n \r\n ) : null}\r\n }\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","export default __webpack_public_path__ + \"static/media/search.fc43bc7a.svg\";","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../Spinner\";\r\nimport _ from 'underscore';\r\nimport InputMask from 'react-input-mask';\r\nimport searchIcon from \"../../assets/search.svg\";\r\n\r\nexport default class LocationDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n event: EM.event.get(),\r\n location: this.props.location,\r\n locations: [],\r\n zipCode: ''\r\n };\r\n this.locationSelected = this.locationSelected.bind(this);\r\n }\r\n componentDidMount() {\r\n }\r\n\r\n search() {\r\n let self = this;\r\n let params = {};\r\n let qs = { zip: this.state.zipCode, companyId: this.state.location.companyId };\r\n EM.locations.searchEntity(params, qs, true).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n }\r\n\r\n locationSelected(location) {\r\n this.props.next(location, this.props.step);\r\n }\r\n\r\n render() {\r\n if (EM.allLoaded(EM.event)) {\r\n return (\r\n
\r\n {/* {this.ShowError()} */}\r\n
\r\n Let's find the closest location for your photos, please\r\n enter your zipcode\r\n
\r\n
\r\n \r\n
\r\n { this.setState({ zipCode: event.target.value }); }} mask=\"99999\" maskChar=\" \" />\r\n this.search()}\r\n className=\"input-group-text bg-transparent my-0 border-0\"\r\n >\r\n \r\n \r\n
\r\n
\r\n {\r\n _.map(this.state.locations, (location) => {\r\n console.log(location);\r\n return (\r\n
\r\n
\r\n
{location.name}
\r\n

\r\n {location.address1}, {location.city}, {location.state}\r\n

\r\n
\r\n \r\n {location.distance ? location.distance.toFixed(2) : ''} miles\r\n \r\n \r\n
\r\n
\r\n {location.fullyBooked === true\r\n ?
FULLY BOOKED
\r\n :
{ if (location.fullyBooked !== true) this.locationSelected(location); }} className=\"ml-auto available py-2 px-3 text-nowrap fw-bolder text-uppercase ms-auto\" id=\"next\">Available
\r\n }\r\n\r\n\r\n
\r\n )\r\n })\r\n }\r\n
\r\n\r\n\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button } from \"reactstrap\";\r\nimport Spinner from \"../Spinner\";\r\n\r\nexport default class PaymentDetails extends Component {\r\n render() {\r\n if (EM.allLoaded(EM.event)) {\r\n return (\r\n
\r\n
\r\n Stripe Payment\r\n
\r\n

Flashop proudly uses Stripe for all if its electronic commerce transactions. Clicking next will take you to the Stripe site to complete your transaction.

\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport logo from \"../assets/logo.svg\";\r\nimport \"../style/Login.css\";\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport CustomerDetails from \"../components/BookingWizard/CustomerDetails\";\r\nimport DateSelection from \"../components/BookingWizard/DateSelection\";\r\nimport EventDetails from \"../components/BookingWizard/EventDetails\";\r\nimport LocationDetails from \"../components/BookingWizard/LocationDetails\";\r\nimport PaymentDetails from \"../components/BookingWizard/PaymentDetails\";\r\nimport TimeSelection from \"../components/BookingWizard/TimeSelection\";\r\nimport Spinner from \"../components/Spinner\";\r\nimport { loadStripe } from \"@stripe/stripe-js\";\r\nimport Routes from '../app/Routes'\r\nclass Booking extends Component {\r\n constructor(props) {\r\n super(props);\r\n let self = this;\r\n self.state = {\r\n isLoading:false,\r\n eventId: self.props.match.params.eventId,\r\n event: null,\r\n location: null,\r\n dates: [],\r\n slots: [],\r\n companyId: null,\r\n steps: {\r\n eventDetails: {\r\n name: \"eventDetails\",\r\n visible: true,\r\n done: true,\r\n next: () => { return self.state.steps.locationsDetails; },\r\n skip: () => { return self.skipLocationStep(); },\r\n stepAfterSkip: () => { \r\n self.loadLocationDates(EM.event.get().locationId);\r\n return self.state.steps.dateSelection; \r\n },\r\n },\r\n locationsDetails: {\r\n name: \"locationsDetails\",\r\n visible: false,\r\n data: null,\r\n done: false,\r\n next: () => {\r\n self.loadLocationDates(self.state.steps.locationsDetails.data.locationId);\r\n return self.state.steps.dateSelection;\r\n },\r\n prev: () => { return self.state.steps.eventDetails; }\r\n },\r\n dateSelection: {\r\n name: \"dateSelection\",\r\n visible: false,\r\n done: false,\r\n next: async() => {\r\n self.loadSlots(self.state.steps.dateSelection.data);\r\n return self.state.steps.timeSelection;\r\n },\r\n prev: () => { return self.state.steps.locationsDetails; }\r\n },\r\n timeSelection: {\r\n name: \"timeSelection\",\r\n visible: false,\r\n done: false,\r\n next: () => { return self.state.steps.customerDetails; },\r\n prev: async() => { \r\n return self.state.steps.dateSelection; }\r\n },\r\n customerDetails: {\r\n name: \"customerDetails\",\r\n visible: false,\r\n done: false,\r\n error:\"\",\r\n next: async () => {\r\n return await self.placeOrderIfRequired(self.state.steps.paymentDetails);\r\n },\r\n prev: () => { return self.state.steps.timeSelection; },\r\n skip: (currentStep,nextStep) => {\r\n if(nextStep && nextStep.name === self.state.steps.customerDetails.name)\r\n return false;\r\n return self.skipPaymentStep(); \r\n },\r\n stepAfterSkip: () => { return self.state.steps.thankYou; },\r\n },\r\n paymentDetails: {\r\n name: \"paymentDetails\",\r\n visible: false,\r\n done: false,\r\n prev: () => { return self.state.steps.customerDetails; },\r\n next: async () => {\r\n return await self.placeOrder(self.state.steps.thankYou);\r\n },\r\n },\r\n thankYou: {\r\n name: \"thankYou\",\r\n visible: false\r\n }\r\n },\r\n };\r\n this.next = this.next.bind(this);\r\n this.hideAll = this.hideAll.bind(this);\r\n this.skipLocationStep = this.skipLocationStep.bind(this);\r\n this.getNextStep = this.getNextStep.bind(this);\r\n this.loadLocationDates = this.loadLocationDates.bind(this);\r\n this.loadSlots = this.loadSlots.bind(this);\r\n this.skipPaymentStep = this.skipPaymentStep.bind(this);\r\n this.placeOrderIfRequired = this.placeOrderIfRequired.bind(this);\r\n this.placeOrder = this.placeOrder.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getEvent();\r\n }\r\n\r\n loadLocationDates(locationId) {\r\n let self = this;\r\n let params = { locationId: locationId };\r\n EM.availableDays.searchEntity(params, {}, true).then(() => {\r\n self.setState({ dates: EM.availableDays.get() });\r\n });\r\n }\r\n\r\n async loadSlots(date) {\r\n let self = this;\r\n let locationId =self.state.steps.locationsDetails.data ? self.state.steps.locationsDetails.data.locationId : self.state.event.locationId;\r\n let params = { locationId: locationId, date: date.strdt };\r\n let qs = { date: date.strdt,bookByAdmin:false };\r\n if(this.state.company && this.state.location && this.state.company.companyConfig.mazibook===true && (this.state.location.maziOrganizationCode!==null && this.state.location.maziOrganizationCode!=='')){\r\n // console.log(Routes.clientApi.locationSlotsV2)\r\n \r\n EM.availableSlots.executeGet(null,qs,Routes.clientApi.locationSlotsV2,{locationId}).then((result)=>{\r\n self.setState({ slots: EM.availableSlots.get() });\r\n });\r\n } else{\r\n \r\n EM.availableSlots.searchEntity(params, qs, true).then(() => {\r\n self.setState({ slots: EM.availableSlots.get() });\r\n });\r\n }\r\n \r\n }\r\n async getEvent() {\r\n let self = this;\r\n let params = { eventId: this.state.eventId };\r\n EM.event.loadSingleEntity(params).then(() => {\r\n self.setState({ event: EM.event.get() });\r\n self.getLocation();\r\n });\r\n }\r\n\r\n getLocation() {\r\n let self = this;\r\n let event = this.state.event;\r\n let params = { id: event.locationId };\r\n EM.location.loadSingleEntity(params).then(() => {\r\n let location = EM.location.get();\r\n self.setState({ location: location, companyId: location.companyId });\r\n self.getCompany();\r\n });\r\n }\r\n\r\n getCompany() {\r\n let self = this;\r\n let params = { id: self.state.companyId };\r\n EM.company.loadSingleEntity(params).then(() => {\r\n let company = EM.company.get();\r\n self.setState({ company: company });\r\n });\r\n }\r\n\r\n skipLocationStep() {\r\n return !this.state.event.allLocations;\r\n }\r\n\r\n skipPaymentStep() {\r\n return !this.state.event.chargeAmount || (this.state.event.chargeAmount && this.state.event.chargeAmount <= 0);\r\n }\r\n\r\n hideAll() {\r\n let steps = this.state.steps;\r\n _.each(steps, (step) => {\r\n step.visible = false;\r\n });\r\n return steps;\r\n }\r\n\r\n async getNextStep(current) {\r\n let next = await current.next();\r\n if (current.skip && current.skip(current,next) === true) {\r\n next = current.stepAfterSkip();\r\n }\r\n next.visible = true;\r\n return next;\r\n }\r\n\r\n getPrevStep(current) {\r\n let next = current.prev();\r\n if (current.skipPrev && current.skipPrev() === true) {\r\n next = current.stepBeforeSkip();\r\n }\r\n next.visible = true;\r\n return next;\r\n }\r\n\r\n async next(data, current) { \r\n current.data = data;\r\n current.done = true;\r\n this.setState({currentStep:current});\r\n let steps = Object.assign({}, this.state.steps);\r\n steps = this.hideAll();\r\n let next = await this.getNextStep(current);\r\n\r\n steps[next.name] = next;\r\n if (next) next.visible = true;\r\n this.setState({ steps });\r\n }\r\n\r\n async prev(data, current) {\r\n current.data = {};\r\n current.done = false;\r\n let steps = Object.assign({}, this.state.steps);\r\n steps = this.hideAll();\r\n let next = await this.getPrevStep(current);\r\n steps[next.name] = next;\r\n if (next) next.visible = true;\r\n this.setState({ steps });\r\n }\r\n\r\n async placeOrderIfRequired(step) { \r\n let self =this;\r\n const response = await self.placeOrder();\r\n \r\n if(response==false){\r\n \r\n return self.state.steps.customerDetails\r\n }\r\n let skipPayment = this.skipPaymentStep();\r\n\r\n if (skipPayment !== true) return step;\r\n \r\n return this.state.steps.paymentDetails.stepAfterSkip;\r\n \r\n }\r\n async placeOrder(step){\r\n let self =this;\r\n let steps =self.state.steps; \r\n let user = steps.customerDetails.data;\r\n let childrenName= Array.prototype.map.call(steps.customerDetails.data.childrenNames, function(item) { return item.id; }).join(\", \")\r\n // let location2=EM.location.get()\r\n // let company=EM.company.get()\r\n \r\n // if(company && location2 && company.companyConfig.mazibook===true && (location2.maziOrganizationCode!==null && location2.maziOrganizationCode!=='')){\r\n // this.setState({isLoading:true})\r\n // const externalResponse = await self.createuserExternal(user,childrenName)\r\n // this.setState({isLoading:false})\r\n // // console.log(externalResponse)\r\n // if(externalResponse.error && externalResponse.error===\"The phone field contains an invalid number.\"){\r\n // const customerDetails = this.state.steps.customerDetails\r\n // customerDetails.error=externalResponse.error\r\n // this.setState(prevState => ({\r\n // steps: {\r\n // ...prevState.steps,\r\n // customerDetails: customerDetails\r\n // }\r\n // }));\r\n // return false\r\n // }\r\n // }\r\n let date = steps.dateSelection.data.strdt;\r\n let time = steps.timeSelection.data;\r\n let location = steps.locationsDetails.data;\r\n //if chargeamount is 0, place order \r\n await EM.eventOrder.create({\r\n eventId : self.state.event.eventId,\r\n firstName : user.firstName,\r\n lastName : user.lastName,\r\n maziAdult2FirstName:user.firstName2,\r\n maziAdult2LastName:user.lastName2,\r\n maziChildrenNames:childrenName,\r\n phone: user.phoneNumber,\r\n email:user.email,\r\n maziAdult2MobileNumber:user.maziAdult2MobileNumber,\r\n maziAdult2Email:user.maziAdult2Email,\r\n streetAddress:user.streetAddress,\r\n city:user.city,\r\n state:user.state,\r\n zip:user.zip,\r\n date: `${date} ${time}`,\r\n locationId : location ? location.locationId :self.state.event.locationId\r\n },{}).then((res)=>{\r\n if(self.state.event.chargeAmount>0){ \r\n //redirect to stripe\r\n var prodPaymentMode = process.env.REACT_APP_PAYMENT_MODE ==='prod';\r\n let sessionId = res.data.sessionId;\r\n let key = prodPaymentMode===true ? self.state.company.companyConfig.stripePublishableKey:process.env.REACT_APP_STRIPE_API_KEY_TEST;\r\n loadStripe(key).then(async (stripe)=>{\r\n if (!stripe) {\r\n alert(\"no stripe\");\r\n return;\r\n }\r\n const { error } = await stripe.redirectToCheckout({\r\n sessionId: sessionId\r\n });\r\n console.log(error);\r\n });\r\n \r\n }\r\n \r\n\r\n });\r\n \r\n }\r\n async createuserExternal(user,childrenName){\r\n return await fetch('https://api.mazibook.com/api/sso/user/createUser', {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n first_name:user.firstName,\r\n last_name:user.lastName,\r\n phone:user.phoneNumber.replace(/[^\\d]/g, ''),\r\n gender :\"3\",\r\n organization_code:EM.location.get().maziOrganizationCode, \r\n children_names:childrenName, \r\n adult2_first_name:user.firstName2, \r\n adult2_last_name:user.lastName2 \r\n\r\n }),\r\n headers: {\r\n 'Content-type': 'application/json; charset=UTF-8',\r\n 'Authorization': 'Bearer uziSHArwX4vpUyqxQEOlaBxPRafTLopCwbCMc0vzbNiXXNXkmLUTlgxzcECN9'\r\n }\r\n })\r\n .then(function(response){ \r\n return response.json()})\r\n .then(function(data)\r\n {\r\n \r\n console.log(data)\r\n return data\r\n }).catch(error => console.error('Error:', error)); \r\n }\r\n render() {\r\n if(this.state.isLoading){\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n if (EM.allLoaded(EM.event, EM.location)) {\r\n let steps = this.state.steps;\r\n return (\r\n
\r\n {/* */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*

About Company

\r\n

Booking Copy You can book your date and time simply from our website, Flashop app, or in person at one of our many retail locations we serve. Our promotional special is a digital download of your favorite image for $20 with over 25 images to choose from. Also other simple pricing package specials to choose from.

\r\n

Want us to come to you?

\r\n

Photography session and delivery.

\r\n

Now the fun part. You confirmed your photography session and location to bring your loved ones Dress to impress to be Photographed.

\r\n

We will take over 25+ images. Directly after the photo session your photos will be delivered to your Flashop app. Your Photographer will show you exactly how to select your Favorite image. When unlock it all the watermarks are removed so you can download it to your mobile device share it with friends and family or put it in your favorite editing app.

\r\n

It’s all about the Digital and instant gratification.

\r\n

If you decide you want all of your images unlocked. $149.99 groups under six. When you unlock the digital you also receive an text with all the images In a zip file.

\r\n

Check out or print specials as well With sizes up to 30 x 40. At AM Studios We give you the most convenient way to have professional portraits scheduled, photographed, and delivered.

\r\n

Thank you for your business and we look forward to serving you.

*/}\r\n
\r\n
\r\n
© 2024 Flashop. All rights reserved.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n Event\r\n
  • \r\n
  • \r\n
  • \r\n Location\r\n
  • \r\n
  • \r\n
  • \r\n Select Date\r\n
  • \r\n
  • \r\n
  • \r\n Select Time\r\n
  • \r\n
  • \r\n
  • \r\n Customer Info\r\n
  • \r\n
\r\n {/* Steps Start here.... */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Booking;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from '../util/EntityValidators';\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport { FaShareAlt, FaUnlockAlt, FaEye, FaRegListAlt, FaDownload } from \"react-icons/fa\";\r\nimport PanelModal from './PanelModal';\r\nimport InputMask from 'react-input-mask';\r\nimport Dates from '../util/Dates'\r\nimport _ from 'underscore';\r\nimport Routes from '../app/Routes'\r\n\r\nclass UserSessions extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.userSessions;\r\n this.rootContainer = 'https://flashopstorage.blob.core.windows.net/images/';\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId },\r\n sessions : [],\r\n showView: false,\r\n showUnlock: false,\r\n showImages: false,\r\n phoneNumber: '',\r\n price: '',\r\n userImages: [],\r\n selectedSession:null\r\n }\r\n \r\n this.shareSession = this.shareSession.bind(this);\r\n this.unlockSession = this.unlockSession.bind(this);\r\n this.clearAllSessions = this.clearAllSessions.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n let self = this;\r\n self.entity.loadEntityByParent(this.state.parentRecordDetail,true).then(()=>{this.setState({sessions:self.entity.get()})});\r\n }\r\n\r\n handleShowView(session) {\r\n this.setState({ showView: !this.state.showView,selectedSession:session });\r\n }\r\n handleShowUnlock(session) {\r\n this.setState({ showUnlock: !this.state.showUnlock,selectedSession:session });\r\n }\r\n handleViewImage() {\r\n this.setState({ showImages: !this.state.showImages });\r\n }\r\n imageCount() {\r\n return this.state.userImages?.length;\r\n }\r\n shareSession(session) {\r\n var self = this;\r\n var request = {\r\n fromUserId:self.props.user.userId,\r\n toPhone: self.state.phoneNumber,\r\n userSessionId: this.state.selectedSession.userSessionId,\r\n companyId: this.state.selectedSession.companyId\r\n }\r\n EM.userSessions.executePost(request,null,Routes.clientApi.shareSession, {},false).then(()=>{self.setState({showView:false})});\r\n }\r\n unlockSession() {\r\n var self = this;\r\n var request = {\r\n sessionId:self.state.selectedSession.userSessionId,\r\n price:self.state.price\r\n }\r\n EM.userSessions.executePost(request,null,Routes.clientApi.unlockSession, {},false).then(()=>{\r\n let sessions = [...self.state.sessions];\r\n var index = _.indexOf(sessions,self.state.selectedSession);\r\n sessions[index] = Object.assign({},self.state.selectedSession,{boughtDigitalSession:true})\r\n self.setState({showUnlock:false,sessions});\r\n }); \r\n }\r\n\r\n textSession(session){\r\n var self = this;\r\n var request = {\r\n sessionId:session.userSessionId,\r\n userId:self.props.user.userId\r\n }\r\n EM.userSessions.executePost(request,null,Routes.clientApi.textSession, {},false); \r\n }\r\n\r\n downloadSession(data) {\r\n window.location.href = \"https://fcaf.azurewebsites.net/api/session/\" + data.blobId;\r\n }\r\n\r\n clearAllSessions() {\r\n let self =this;\r\n let sessions = _.pluck(_.filter(this.state.sessions,(session)=>{return session.published;}),'userSessionId');\r\n var updateSession = {\r\n published: false,\r\n userSessionIds: sessions\r\n }\r\n this.entity.update(updateSession, updateSession, this.state.parentRecordDetail).then(() => {\r\n self.setState({sessions:[]});\r\n });\r\n }\r\n\r\n clearSession(session) {\r\n let self =this;\r\n let sessionIds = [];\r\n sessionIds.push(session.userSessionId);\r\n var updateSession = {\r\n published: false,\r\n userSessionIds: sessionIds\r\n }\r\n this.entity.update(updateSession, updateSession, this.state.parentRecordDetail).then(() => {\r\n self.entity.loadEntityByParent(this.state.parentRecordDetail,true).then(()=>{this.setState({sessions:self.entity.get()})});\r\n\r\n // let sessions = _.filter([...self.state.sessions],(ses)=>{return ses.userSessionId !== session.userSessionId;}); \r\n // console.log('sessions filtered :>> ', sessions);\r\n // this.setState({sessions});\r\n });\r\n }\r\n\r\n getSessionImages(data) {\r\n EM.userSessionImage.loadEntityByParent({ id: data.userSessionId }).then(() => {\r\n let userImages = EM.userSessionImage.get();\r\n this.setState({ userImages: userImages, showImages: !this.state.showImages });\r\n });\r\n }\r\n\r\n render() {\r\n let self = this;\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n // data = _.filter([...this.state.sessions],(session)=>{return session.published ===true;});\r\n data = _.filter([...this.entity.get()],(session)=>{return session.published ===true;});\r\n columns = [\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n editable: false,\r\n validators: [Validators.required],\r\n creatable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return Dates.fromISO(cell).toFormat(\"MM/dd/yyyy\")\r\n }\r\n },\r\n {\r\n dataField: \"name\",\r\n text: this.entity.columns(\"name\"),\r\n editable: false,\r\n validators: [Validators.required, Validators.length100],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"companyId\",\r\n text: this.entity.columns(\"createdBy\"),\r\n editable: false,\r\n validators: [Validators.required],\r\n creatable: false,\r\n formatter:(cell,row)=>{\r\n var company = _.findWhere(self.props.user.userCompanies,{companyId:cell});\r\n return company ? company.companyName : '';\r\n },\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"promoSelected\",\r\n text: this.entity.columns(\"promoSelected\"),\r\n editable: false,\r\n asActive:true,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"boughtDigitalSession\",\r\n text: this.entity.columns(\"boughtDigitalSession\"),\r\n asActive: true,\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n }, \r\n {\r\n dataField: \"expiryDate\",\r\n asDateTime: true,\r\n text: this.entity.columns(\"expiryDate\"),\r\n // validators: [ Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"unlock\",\r\n text: \"\",\r\n creatable: false,\r\n editable: false,\r\n width:300,\r\n formatter: (cell, row) => {\r\n return (
\r\n \r\n \r\n \r\n \r\n { EM.isSuperAdmin() || EM.isAdmin() ?\r\n \r\n :null\r\n }\r\n \r\n
);\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n \r\n \r\n Share\r\n \r\n
\r\n \r\n \r\n {\r\n this.setState({ phoneNumber: event.target.value })\r\n }}>\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n Unlock\r\n \r\n
\r\n \r\n

Are you sure you would like to unlock this session?

\r\n
\r\n \r\n \r\n { this.setState({ price: event.target.value }) }}>\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n Session ({this.imageCount()} Images)\r\n \r\n
\r\n \r\n {_.sortBy(self.state.userImages,'orderNumber').map(image => {\r\n return (\r\n
...
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserSessions;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\nimport _ from 'underscore';\r\nimport Routes from '../app/Routes'\r\n\r\nclass Appointments extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.appointments;\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId },\r\n appointmentsData: [],\r\n collapsed:true,\r\n notes:[]\r\n };\r\n\r\n }\r\n componentDidMount() {\r\n var self = this;\r\n self.entity.loadEntityByParent(this.state.parentRecordDetail,true).then(() => {\r\n self.setState({ appointmentsData: self.entity.get() });\r\n });\r\n }\r\n \r\n confirm(appointment) { \r\n let self = this;\r\n EM.appointments.executePut({ appointmentId: appointment.appointmentId, propertyName: \"Confirmed\", confirmed: true }, null, Routes.clientApi.patchAppointment, {},true)\r\n .then(() => {self.setState({appointmentsData:self.entity.get()});});\r\n}\r\n\r\n\r\n patchCheckIn(checkedIn,appointment) {\r\n let self = this;\r\n EM.appointments.executePut({ appointmentId: appointment.appointmentId, propertyName: \"CheckedIn\", checkedIn: checkedIn }, \r\n null, Routes.clientApi.patchAppointment, {},true)\r\n .then((result) => {\r\n self.setState({appointmentsData:self.entity.get()});\r\n });\r\n }\r\n\r\n cancel(appointment) {\r\n let self = this;\r\n EM.appointments.executePut({ appointmentId: appointment.appointmentId, propertyName: \"Cancelled\", cancelled: true }, null, Routes.clientApi.patchAppointment, {},true)\r\n .then((result) => {\r\n self.setState({appointmentsData:self.entity.get()});\r\n }); \r\n }\r\n\r\n saveNotes(appointmentId){\r\n var notes = _.findWhere(this.state.notes, {appointmentId:appointmentId});\r\n if(notes)\r\n EM.appointments.executePut({appointmentId:appointmentId, notes:notes.notes},null,Routes.clientApi.saveNotes, {},true)\r\n .then((result)=>{\r\n // handle change if need be\r\n });\r\n }\r\n\r\n redirectToReschedule(apt) {\r\n let url = Routes.compose(Routes.client.rescheduleAppointment, { userId: this.state.parentRecordDetail.userId, companyId: this.state.parentRecordDetail.companyId, appointmentId: apt.appointmentId });\r\n this.props.history.push(url);\r\n }\r\n\r\n notesChange(event,appointmentID){\r\n var notes = _.reject([...this.state.notes],(note)=>{\r\n return note.appointmentId === appointmentID;\r\n });\r\n notes.push({appointmentId:appointmentID, notes:event.target.value});\r\n this.setState({notes});\r\n }\r\n\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n
{this.setState({collapsed:!this.state.collapsed})}}>\r\n

Appointments { this.state.collapsed ? : }

\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Appointments;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from \"../util/EntityValidators\";\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport {FaTrashAlt } from \"react-icons/fa\";\r\nimport Dates from '../util/Dates'\r\n\r\nclass Prepaids extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.prepaid;\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId }\r\n }\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,true);\r\n this.deletePrepaid = this.deletePrepaid.bind(this);\r\n }\r\n deletePrepaid(prepaid){\r\n let self =this;\r\n this.entity.delete([prepaid.prepaidId])\r\n .then(()=>{\r\n let data = self.entity.get();\r\n });\r\n }\r\n render() {\r\n let self = this;\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n asDate: true,\r\n editable:false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (Dates.isoToDateTime(cell, \"YYYY-MM-DD hh:mm A\"));\r\n }\r\n },\r\n {\r\n dataField: \"allDigital\",\r\n text:\"Include Digital\",\r\n editable:true,\r\n asActive:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"price\",\r\n text: this.entity.columns(\"price\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"sheetCount\",\r\n text: this.entity.columns(\"sheetCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"imageCount\",\r\n text: this.entity.columns(\"imageCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1114\",\r\n text: this.entity.columns(\"largePrint1114\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1620\",\r\n text: this.entity.columns(\"largePrint1620\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n // {\r\n // dataField: \"largePrint2030\",\r\n // text: this.entity.columns(\"largePrint2030\"),\r\n // editable:true,\r\n // filterOptions: {\r\n // text: true,\r\n // },\r\n // },\r\n {\r\n dataField: \"consumed\",\r\n text: this.entity.columns(\"consumed\"),\r\n asActive: true,\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n }, \r\n {\r\n dataField: \"delete\",\r\n text: this.entity.columns(\"delete\"),\r\n creatable: false,\r\n editable: false,\r\n formatter: (cell, row) => {\r\n if(row.consumed!==true && (EM.isSuperAdmin() ===true ||EM.isAdmin() ===true) )\r\n return ()\r\n else return '';\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Prepaids;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport _ from \"underscore\";\r\nimport { ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\n\r\nclass PrintOrdersDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}; \r\n }\r\n\r\n getTransformOrderLines() {\r\n return _.map(this.props.order.printOrderLineItems, (item) => {\r\n return {\r\n name: item.product?.name,\r\n quantity: item.quantity,\r\n imagepath: item.userSessionImage.thumbnailUrl ? item.userSessionImage.thumbnailUrl : (item.userSessionImage.originalImageUrl ? item.userSessionImage.originalImageUrl : ''),\r\n price: item.product.price\r\n };\r\n });\r\n }\r\n\r\n getColumns() {\r\n return [\r\n {\r\n dataField: \"name\",\r\n text: 'Product name',\r\n editable: false,\r\n },\r\n {\r\n dataField: \"imagepath\",\r\n text: 'Image',\r\n editable: false,\r\n formatter: (cell, row) => {\r\n return ()\r\n }\r\n },\r\n {\r\n dataField: \"quantity\",\r\n text: 'Quantity',\r\n editable: false\r\n },\r\n {\r\n dataField: \"price\",\r\n text: 'Price',\r\n creatable: false,\r\n editable: false,\r\n formatter: (cell, row) => {\r\n return `$${cell ? cell : ''}`\r\n }\r\n }\r\n ];\r\n }\r\n\r\n render() {\r\n let columns = this.getColumns();\r\n let data = this.getTransformOrderLines();;\r\n\r\n return (\r\n
\r\n \r\n Order Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PrintOrdersDetails;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport EntityTable from \"./EntityTables/EntityTable\";\r\nimport Dates from '../util/Dates'\r\nimport PrintOrdersDetails from \"./PrintOrdersDetails\";\r\nimport Routes from '../app/Routes'\r\nclass PrintOrders extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.printOrders;\r\n this.state = {\r\n parentRecordDetail: { userId: this.props.data.id, companyId: this.props.data.companyId },\r\n orderDetailsHidden:true,\r\n selectedOrder:null\r\n }\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail, true);\r\n this.showDetails = this.showDetails.bind(this);\r\n this.handleRequeue = this.handleRequeue.bind(this);\r\n }\r\n\r\n showDetails(order){ \r\n this.setState({orderDetailsHidden:false,selectedOrder:order});\r\n }\r\n\r\n handleRequeue(row){ \r\n var request = {\r\n orderId:row.printOrderId \r\n }\r\n this.entity.executePost(request,null,this.entity.entityTypeDef.requeueUrl, {},false);\r\n }\r\n\r\n\r\n render() {\r\n let self = this;\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity)) {\r\n data = this.entity.get();\r\n columns = [\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n asDate: true,\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (Dates.isoToDateTime(cell, \"MM/dd/yyyy\"));\r\n }\r\n },\r\n {\r\n dataField: \"gross\",\r\n text: this.entity.columns(\"gross\"),\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (
$ {row.gross.toFixed(2)}
)\r\n }\r\n },\r\n {\r\n dataField: \"package\",\r\n text: this.entity.columns(\"package\"),\r\n editable: false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (
$ {row.package.toFixed(2)} Studio Package
)\r\n }\r\n },\r\n {\r\n dataField: \"requeue\",\r\n text: this.entity.columns(\"requeue\"),\r\n creatable: false,\r\n editable: false,\r\n hidden: EM.isAdmin() !== true && EM.isSuperAdmin() !== true,\r\n formatter: (cell, row) => {\r\n return (
\r\n \r\n {\r\n EM.isAdmin() === true || EM.isSuperAdmin() === true ?\r\n \r\n : null}\r\n
);\r\n }\r\n }\r\n ];\r\n }\r\n return (\r\n
\r\n \r\n { this.state.selectedOrder ?\r\n \r\n :null\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PrintOrders;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\nimport UserSessions from \"../components/UserSessions\";\r\nimport Appointments from \"../components/Appointments\";\r\nimport Prepaids from \"../components/Prepaids\";\r\nimport PrintOrders from \"../components/PrintOrders\";\r\nimport Routes from '../app/Routes';\r\nimport Spinner from '../components/Spinner'\r\nclass UserDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.userDetails;\r\n this.state = {\r\n parentRecordDetail: { id: this.props.match.params.userId, companyId: this.props.match.params.companyId },\r\n userData: {},\r\n show: false,\r\n includeDS: false,\r\n sheetCount: 0,\r\n imageCount:0,\r\n largePrint_11_14: 0,\r\n largePrint_16_20: 0,\r\n largePrint_20_30: 0,\r\n price: 0,\r\n data:false\r\n };\r\n \r\n this.redirectTouserScheduler = this.redirectTouserScheduler.bind(this);\r\n this.redirectToReschedule = this.redirectToReschedule.bind(this);\r\n this.sendApp = this.sendApp.bind(this);\r\n this.saveUserDetail = this.saveUserDetail.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n const self=this\r\n this.setState({data:false}) \r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,false).then((data)=>{\r\n if(EM.allLoaded(this.entity)){ \r\n \r\n data = self.entity.get(true);\r\n self.setState({data:data})\r\n console.log(data)\r\n }\r\n })\r\n // this.entity.load();\r\n }\r\n\r\n componentWillUnmount(){\r\n this.setState({data:false})\r\n }\r\n \r\n handModal() {\r\n this.setState({ show: !this.state.show });\r\n }\r\n\r\n createPackage() {\r\n var newRecord = {\r\n allDigital: this.state.includeDS,\r\n sheetCount: this.state.sheetCount,\r\n imageCount: this.state.imageCount,\r\n largePrint1114: this.state.largePrint_11_14,\r\n largePrint1620: this.state.largePrint_16_20,\r\n largePrint2030: this.state.largePrint_20_30,\r\n price: this.state.price,\r\n userId: this.state.parentRecordDetail.id,\r\n companyId: this.state.parentRecordDetail.companyId\r\n };\r\n EM.prepaid.create(newRecord).then(()=>{this.setState({show:false, includeDS: false,\r\n sheetCount: 0,\r\n imageCount:0,\r\n largePrint_11_14: 0,\r\n largePrint_16_20: 0,\r\n largePrint_20_30: 0,\r\n price: 0})});\r\n }\r\n redirectTouserScheduler() {\r\n let url = Routes.compose(Routes.client.userSchdeuler, { userId: this.state.parentRecordDetail.id, companyId: this.state.parentRecordDetail.companyId });\r\n this.props.history.push(url);\r\n }\r\n redirectToReschedule(apt) {\r\n let url = Routes.compose(Routes.client.rescheduleAppointment, { userId: this.state.parentRecordDetail.id, companyId: this.state.parentRecordDetail.companyId, appointmentId: apt.appointmentId });\r\n this.props.history.push(url);\r\n }\r\n\r\n deleteUser(){\r\n var user = this.entity.get();\r\n EM.users.delete([user.userId]).then(()=>{EM.redirectTo(Routes.client.users);});\r\n }\r\n\r\n sendApp(){\r\n let user = this.entity.get(); \r\n var companyId = EM.getDefaultCompany(user).companyId\r\n EM.calendar.executeGet(null,{phoneNumber:user.phoneNumber,companyId},Routes.clientApi.sendApp, {});\r\n }\r\n saveUserDetail(){\r\n var user = this.entity.get();\r\n const data = this.state.data\r\n this.entity.executePut(data,null,Routes.clientApi.updateUser, {},true) \r\n }\r\n onTextChange(event, field) {\r\n let data = Object.assign(this.state.data, {});\r\n \r\n data[field] = event.target.value;\r\n \r\n this.setState({ data });\r\n }\r\n\r\n render() {\r\n let data = [];\r\n // if (!this.state.data) { \r\n // // debugger\r\n // if(EM.allLoaded(this.entity)){ \r\n \r\n // data = this.entity.get(true);\r\n // this.setState({data:data})\r\n // console.log(data)\r\n // }\r\n // // debugger\r\n // }\r\n \r\n if(!this.state.data){ \r\n return \r\n }\r\n if(this.state.data)\r\n return (\r\n
\r\n
\r\n
User Details
\r\n
\r\n
\r\n
\r\n \r\n { this.onTextChange(event, 'firstName') }} placeholder=\"First Name\" className=\"form-control m-0 border border-2 border-primary p-2\" value={this.state.data.firstName}/>\r\n
\r\n
\r\n \r\n { this.onTextChange(event, 'lastName') }} placeholder=\"Last Name\" className=\"form-control m-0 border border-2 border-primary p-2\" value={this.state.data.lastName}/> \r\n
\r\n
\r\n \r\n { this.onTextChange(event, 'emailAddress') }} placeholder=\"Email\" className=\"form-control m-0 border border-2 border-primary p-2\" value={this.state.data.emailAddress}/> \r\n
\r\n
\r\n \r\n { this.onTextChange(event, 'phoneNumber') }}/>\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n Enter the Studio Package\r\n \r\n
\r\n \r\n this.setState({ includeDS: evt.target.checked })} />\r\n \r\n \r\n \r\n \r\n this.setState({ sheetCount: evt.target.value })} />\r\n \r\n \r\n \r\n this.setState({ imageCount: evt.target.value })} />\r\n \r\n \r\n \r\n this.setState({ largePrint_11_14: evt.target.value })} />\r\n \r\n \r\n \r\n this.setState({ largePrint_16_20: evt.target.value })} />\r\n \r\n {/* \r\n \r\n this.setState({ largePrint_20_30: evt.target.value })} />\r\n */}\r\n \r\n \r\n this.setState({ price: evt.target.value })} />\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UserDetails;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport Spinner from './Spinner';\r\nimport _ from 'underscore';\r\n\r\nexport default class FetchIndicator extends Component {\r\n render() {\r\n if (this.props.items.length === 0)return null;\r\n return (\r\n
\r\n \r\n {_.uniq(this.props.items).map((item, index) => {\r\n let itemName = item[0] === '#'?item.slice(1):item;\r\n return (\r\n
\r\n {itemName}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\n\r\nexport default class ErrorIndicator extends Component {\r\n \r\n render() {\r\n if (!this.props.error)return null;\r\n let self = this; \r\n let messages = [];\r\n Object.values(this.props.error).forEach((error) => {\r\n let message = EM.t('error.' + error.errorCode, true);\r\n if (!message){\r\n let bits = error.message.split(': ');\r\n if (bits.length > 1){\r\n message = EM.t('error.' + bits[0], true);\r\n }\r\n }\r\n if (!message){\r\n message = error.message;\r\n }\r\n messages.push(message);\r\n });\r\n\r\n if (messages.length === 0)return null;\r\n \r\n return (\r\n
\r\n
{\r\n EM.hideErrors(Object.keys(self.props.error)[0]);\r\n }}>X
\r\n
{EM.t('util.errors')}:
\r\n
    \r\n {messages.map((msg, index) => {\r\n return (
  • {msg}
  • );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport default class TemporaryStatusMessage extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n message: null,\r\n className: ''\r\n }\r\n }\r\n\r\n setMessage(message, className, timeout){\r\n let self = this;\r\n self.setState({ message, className }, () => {\r\n window.setTimeout(() => {\r\n self.clearMessage();\r\n }, timeout || 5000);\r\n });\r\n }\r\n\r\n clearMessage(){\r\n let self = this;\r\n self.setState({ message: null, className: '' });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
{this.state.message}
\r\n
\r\n );\r\n }\r\n}\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { Button, Form, FormGroup, Input, Label } from \"reactstrap\";\r\nimport Routes from \"../app/Routes\";\r\nimport PageTitle from '../components/PageTitle';\r\nclass CompanyConfig extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.companyConfig;\r\n this.state = {\r\n parentRecordDetail: { id: this.props.match.params.companyId },\r\n config: {},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n EM.company.loadSingleEntity(this.state.parentRecordDetail);\r\n this.entity.loadSingleEntity(this.state.parentRecordDetail).then(() => {\r\n this.setState({ config: this.entity.get() || {} });\r\n });\r\n\r\n this.onCheckChanged = this.onCheckChanged.bind(this);\r\n this.onTextChanged = this.onTextChanged.bind(this);\r\n this.onSave = this.onSave.bind(this);\r\n }\r\n\r\n onCheckChanged(event, field) {\r\n let config = Object.assign(this.state.config);\r\n config[field] = event.target.checked;\r\n this.setState({ config });\r\n }\r\n async componentDidMount(){\r\n \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n \r\n }\r\n onTextChanged(event, field) {\r\n let self = this;\r\n let config = Object.assign(this.state.config);\r\n config[field] = event.target.value;\r\n this.setState({ config }, () => {\r\n console.log(self.state.config);\r\n });\r\n }\r\n\r\n onSave() {\r\n this.entity.update(this.entity.get(), this.state.config);\r\n }\r\n\r\n render() {\r\n let data = {};\r\n let config = {}\r\n if (EM.allLoaded(EM.company, this.entity)) {\r\n data = EM.company.get() || {};\r\n config = this.state.config;\r\n }\r\n const expiryDays = [{\r\n value: 30,\r\n label: \"30 Days\"\r\n },{\r\n value: 60,\r\n label: \"60 Days\"\r\n },{\r\n value: 90,\r\n label: \"90 Days\"\r\n },{\r\n value: 120,\r\n label: \"120 Days\"\r\n },{\r\n value: 150,\r\n label: \"150 Days\"\r\n },{\r\n value: 180,\r\n label: \"180 Days\"\r\n }\r\n ]\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n
{ this.onCheckChanged(event, \"stripe\"); }} checked={config.stripe} />\r\n
\r\n
Stripe integration
\r\n\r\n
\r\n \r\n \r\n \r\n {this.state.isSuperAdmin===true && \r\n \r\n { this.onTextChanged(event, \"unitPrice\"); }} value={config.unitPrice ? config.unitPrice : ''} />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n { this.onCheckChanged(event, \"sessionEnhance\"); }} checked={config.sessionEnhance} />\r\n
\r\n
\r\n Enables Flashop Studio to digitally enhance your uploaded images saving you time. Allows you to focus on the business while delivering beautiful images!\r\n
\r\n
\r\n {/* \r\n
\r\n { this.onCheckChanged(event, \"digitalCopyPromo\"); }} checked={config.digitalCopyPromo} />\r\n \r\n
\r\n
\r\n Enables your users to select one image as a digital promo. This is a proven way to sell as the loss leaders.\r\n
\r\n
*/}\r\n \r\n
\r\n { this.onCheckChanged(event, \"mazibook\"); }} checked={config.mazibook} />\r\n \r\n
\r\n
\r\n Enables MaziBook integration.\r\n
\r\n
\r\n {/* \r\n
\r\n { this.onCheckChanged(event, \"enableInAppPurchases\"); }} checked={config.enableInAppPurchases} />\r\n \r\n
\r\n
\r\n Enables In-App purchasing.\r\n
\r\n
*/}\r\n {/* \r\n
\r\n { this.onCheckChanged(event, \"schoolDays\"); }} checked={config.schoolDays} />\r\n \r\n
\r\n
\r\n Enables School Days Pricing.\r\n
\r\n
*/}\r\n \r\n
\r\n { this.onCheckChanged(event, \"printing\"); }} checked={config.printing} />\r\n \r\n
\r\n
\r\n Enables you to own the printing.\r\n
\r\n
\r\n \r\n \r\n \r\n
{ this.onCheckChanged(event, \"sendGrid\"); }} checked={config.sendGrid} />\r\n
\r\n
SendGrid Twilio integration
\r\n
\r\n \r\n \r\n \r\n {/* twillio */}\r\n \r\n
{ this.onCheckChanged(event, \"twilio\"); }} checked={config.twilio} />\r\n
\r\n
Twilio SMS integration
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CompanyConfig;\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport Routes from '../../app/Routes';\r\nimport Dates from '../../util/Dates';\r\nimport Spinner from '../Spinner';\r\n\r\nexport default class SmartImage extends Component{\r\n constructor(props){\r\n super(props); \r\n \r\n \r\n this.state = {\r\n loading: true,\r\n src:\"\"\r\n }; \r\n this.imageLoaded = this.imageLoaded.bind(this);\r\n }\r\n \r\n \r\n\r\n imageLoaded(){\r\n this.setState({loading:false})\r\n }\r\n\r\n render(){\r\n return (\r\n <>\r\n {(this.state.loading) && }\r\n \r\n \r\n );\r\n }\r\n};","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates';\r\nimport _ from \"underscore\";\r\nimport Routes from \"../app/Routes\";\r\nimport PageTitle from '../components/PageTitle';\r\nimport PanelModal from '../components/PanelModal';\r\nimport SmartImage from '../components/Widgets/SmartImage'\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nclass OrderFullfillment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootContainer = 'https://flashopstorage.blob.core.windows.net/images/';\r\n this.entity = EM.orderFulfillment;\r\n this.state = {\r\n showImages:false,\r\n userImages:\"\",\r\n imageName:\"\",\r\n parentRecordDetail: { userId: this.props.match.params.userId, companyId: this.props.match.params.companyId },\r\n orders: [],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n }\r\n this.handleRequeue = this.handleRequeue.bind(this);\r\n }\r\n handleRequeue(printOrderId){ \r\n var request = {\r\n orderId:printOrderId \r\n }\r\n EM.printOrders.executePost(request,null,EM.printOrders.entityTypeDef.requeueUrl, {},false);\r\n }\r\n componentDidMount() {\r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n let self = this;\r\n \r\n let company = EM.getDefaultCompany();\r\n \r\n var params ={companyId :company ?company.companyId:0 };\r\n self.entity.executeGet(null, null, Routes.clientApi.openOrders, params,true).then((res) => {\r\n this.setState({ orders: self.entity.get() });\r\n });\r\n }\r\n renderAddress(shippingAddress) {\r\n \r\n if(shippingAddress ===null) return \"\";\r\n let address = \"\";\r\n if (!_.isNull(shippingAddress.address1)) {\r\n address = shippingAddress.address1;\r\n }\r\n if (!_.isNull(shippingAddress.address2)) {\r\n address += ` ${shippingAddress.address2}`;\r\n }\r\n if (!_.isNull(shippingAddress.city)) {\r\n address += ` ${shippingAddress.city}`;\r\n }\r\n if (!_.isNull(shippingAddress.state)) {\r\n address += ` ${shippingAddress.state}`;\r\n }\r\n if (!_.isNull(shippingAddress.zip)) {\r\n address += ` ${shippingAddress.zip}`;\r\n }\r\n return address;\r\n }\r\n renderImage(userSessionImage,imageName) {\r\n if(userSessionImage)\r\n return this.openImage(userSessionImage.editImageUrl,imageName)}>Image;\r\n return \"\";\r\n }\r\n fulfilled(order) {\r\n var self = this;\r\n const updatedOrder = JSON.parse(JSON.stringify(order));\r\n updatedOrder.fullfilled = true;\r\n self.entity.update(order, updatedOrder).then((res) => {\r\n let data = self.entity.get();\r\n let printOrders = _.filter([...data], (order) => {\r\n return order.fullfilled === false;\r\n });\r\n self.setState({ orders: printOrders });\r\n });\r\n }\r\n renderOrderLineItems(orderLineItem,index) {\r\n return (\r\n
\r\n
{orderLineItem.product.name}
\r\n
{orderLineItem.quantity}
\r\n
{this.renderImage(orderLineItem.userSessionImage,orderLineItem.product.name)}
\r\n
\r\n )\r\n }\r\n handleViewImage() {\r\n this.setState({ showImages: !this.state.showImages });\r\n }\r\n openImage(img,imageName) {\r\n \r\n this.setState({ userImages: img,imageName, showImages: !this.state.showImages });\r\n \r\n }\r\n formateDate(date) {\r\n if(date) {\r\n return Dates.fromISO(date, \"utc\").toFormat(\"MM/dd/yyyy\")\r\n }\r\n return null\r\n // return Dates.isoToDateTime(date, \"YYYY-MM-DD hh:mm A\");\r\n }\r\n render() {\r\n let self = this;\r\n let data = [];\r\n if (EM.allLoaded(self.entity)) {\r\n data = self.state.orders;\r\n }\r\n return (\r\n
\r\n \r\n {data.map((o,i) => { \r\n return (\r\n
\r\n
\r\n
{self.formateDate(o.createdDate)}
\r\n
{o.printOrderId}
\r\n {/*
$ {o.total.toFixed(2)}
*/}\r\n
$ {o.prepaid && o.prepaid.eventPackageId == null ? o.prepaid.price + o.gross : o.gross}
\r\n
{o.shipped?\"Shipped\":''}
\r\n
{self.formateDate(o.shippedDateTime)}
\r\n {\r\n \r\n (o.printQueueStatusId === 4)?\r\n (
):\r\n (o.printQueueStatusId === 1)?
\r\n
Queued
:\r\n (o.printQueueStatusId === 2)?
\r\n
Processing
\r\n
:\r\n (
)\r\n }\r\n
\r\n
\r\n
\r\n
\r\n Name:\r\n
\r\n
\r\n {\r\n !o.user.firstName ? `${o.shippingAddress.shipToFirstName} ${o.shippingAddress.shipToLastName}`:`${o.user.firstName} ${o.user.lastName}`\r\n }\r\n
\r\n
\r\n
\r\n
\r\n Address:\r\n
\r\n
\r\n {self.renderAddress(o.shippingAddress)}\r\n
\r\n
\r\n
\r\n
\r\n Email:\r\n
\r\n
\r\n {o.user.emailAddress}\r\n
\r\n
\r\n Phone:\r\n
\r\n
\r\n {o.user.phoneNumber}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Name
\r\n
Quantity
\r\n
\r\n
\r\n {o.printOrderLineItems.map((oli,index) => { return self.renderOrderLineItems(oli,index) })}\r\n
\r\n
\r\n )\r\n })}\r\n \r\n \r\n {this.state.imageName}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\nexport default OrderFullfillment;","import React, { Component } from \"react\";\r\nimport Modal from 'react-modal';\r\n\r\nconst wide = { width: '100%' }\r\nconst customStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)'\r\n }\r\n};\r\nclass MessageBox extends Component{\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Confirm

\r\n
\r\n
\r\n\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n
\r\n
\r\n

{this.props.m_strMessage}

\r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default MessageBox;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { FaFileDownload, FaTrashAlt, FaUpload, FaDownload } from \"react-icons/fa\";\r\nimport _ from \"underscore\";\r\nimport MessageBox from '../components/MessageBox';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport FetchIndicator from \"../components/FetchIndicator\";\r\n\r\nclass Presets extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.entity = EM.presets;\r\n this.state = {\r\n presets: [],\r\n showDeleteBox: false,\r\n deleteMessage: \"\",\r\n selectedPreset: {},\r\n showUploadPreset: false,\r\n presetName: \"\",\r\n showUploadImage: false,\r\n file: null,\r\n isLoading:false\r\n };\r\n this.entity.load();\r\n this.handleUploadPreset = this.handleUploadPreset.bind(this);\r\n this.handleUploadImage = this.handleUploadImage.bind(this);\r\n this.handleFileChange = this.handleFileChange.bind(this);\r\n this.uploadFile = this.uploadFile.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.cancel = this.cancel.bind(this); \r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n self.entity.load().then(() => {\r\n self.setState({ presets: self.entity.get() });\r\n });\r\n }\r\n\r\n rowStyleFormat(rowIdx) {\r\n return { backgroundColor: rowIdx % 2 === 0 ? '#ecf0f1' : '#dcdde1' };\r\n }\r\n\r\n populatePresets(preset, index) {\r\n const file = preset.name.split(\".\")\r\n const fileExtension = file[file.length - 1].toLowerCase();\r\n return (\r\n
\r\n
{preset.name}
\r\n
\r\n {/* {fileExtension!==\"jpeg\" && fileExtension!==\"jpg\" ? ( */}\r\n {fileExtension==\"preset\" ? (\r\n { this.handleUploadImage(preset.name, \"Sample\") }}\r\n title=\"Upload New Sample Image\"\r\n className=\"btn btn-primary buttonWidth100\">\r\n \r\n \r\n ):null}\r\n {preset.name ==\"SampleHSSeniors.jpg\" || preset.name==\"SampleDefault.jpg\"?(\r\n {preset.name}\r\n ):null}\r\n
\r\n
\r\n {fileExtension==\"preset\" ? (\r\n { this.handleUploadImage(preset.name, \"Original\") }}\r\n title=\"Upload New Original Image\"\r\n className=\"btn btn-primary buttonWidth100\">\r\n \r\n \r\n ) : null}\r\n {preset.name ===\"OriginalHSSeniors.jpg\" || preset.name===\"OriginalDefault.jpg\"?\r\n {preset.name}\r\n :null}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n showDeleteEvent(preset) {\r\n let confirmMessage = \"Are you sure you want to delete: \" + preset.name + \"?\";\r\n this.setState({ deleteMessage: confirmMessage, selectedPreset: preset, showDeleteBox: true });\r\n }\r\n handleUploadPreset() {\r\n this.setState({ showUploadPreset: !this.state.showUploadPreset });\r\n }\r\n handleUploadImage(presetName, imgType) {\r\n const imgName = presetName.split(\".\")\r\n const newImgName = `${imgType}${imgName[0]}.jpg`\r\n this.setState({ showUploadImage: !this.state.showUploadImage, presetName:newImgName });\r\n }\r\n delete() {\r\n let self = this;\r\n this.entity.delete(this.state.selectedPreset.name)\r\n .then(() => {\r\n let presets = _.filter([...this.state.presets], (pr) => {\r\n return pr.name !== self.state.selectedPreset.name;\r\n });\r\n this.setState({ presets: presets, showDeleteBox: false });\r\n });\r\n }\r\n cancel() {\r\n this.setState({ showDeleteBox: false });\r\n }\r\n handleFileChange(event) {\r\n this.setState({ file: event.target.files[0] });\r\n }\r\n containsSpecialChars(str) {\r\n const specialChars = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n return specialChars.test(str.replace(\".preset\", \"\"));\r\n }\r\n uploadFile() {\r\n let self = this;\r\n if (self.state.file.size > 0) {\r\n var data = new FormData();\r\n const isImage = self.state.file.type === \"image/jpeg\" || self.state.file.type === \"image/jpg\"\r\n if(!isImage) {\r\n if (self.containsSpecialChars(self.state.file.name)) {\r\n alert(\"File has special char in the name\");\r\n return;\r\n }\r\n let preset_exist = _.filter([...self.state.presets], (preset) => {\r\n return preset.name === self.state.file.name;\r\n });\r\n if (preset_exist.length > 0) {\r\n alert(\"File Already exist\");\r\n return;\r\n }\r\n data.append(\"file\", self.state.file);\r\n } else {\r\n // const imageName = self.state.presetName===\"Default.preset\"?\"SampleDefault.jpg\":\"SampleHSSeniors.jpg\"\r\n data.append(\"file\", self.state.file, self.state.presetName);\r\n }\r\n this.setState({isLoading:true})\r\n self.entity.upload(data)\r\n .then((res) => {\r\n if (res.data.status == 200) {\r\n let updatedPresets = [...self.state.presets]\r\n if(isImage) {\r\n const isImgExist = self.state.presets.find(img => img.name === res.data.data.name)\r\n const existingOne = self.state.presets.filter(img => img.name !== res.data.data.name)\r\n if(isImgExist) {\r\n updatedPresets = [...existingOne, isImgExist];\r\n } else {\r\n updatedPresets = [...updatedPresets, res.data.data];\r\n }\r\n } else {\r\n updatedPresets = [...updatedPresets, res.data.data];\r\n }\r\n this.setState({\r\n presets: updatedPresets,\r\n showUploadPreset: false,\r\n showUploadImage:false,\r\n file: null,\r\n isLoading:false\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n self.setState({\r\n presets: this.state.presets,\r\n showUploadPreset: true, file: null,\r\n showUploadImage: true,\r\n isLoading:false\r\n });\r\n }\r\n\r\n }\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n {this.state.isLoading?:null}\r\n
\r\n
\r\n

Presets

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Name
\r\n
Sample Image
\r\n
Original Image
\r\n
\r\n {_.map(self.state.presets, (preset, index) => {\r\n return self.populatePresets(preset, index);\r\n })}\r\n
\r\n {/*
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
*/}\r\n
\r\n\r\n {/* */}\r\n \r\n Upload\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Upload\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Upload\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\nexport default Presets; ","/* global EM */\r\nimport React, { Component } from \"react\";\r\n\r\n\r\nclass Packages extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n let self = this;\r\n if (EM.allLoaded(EM.products, EM.companyConfig)) {\r\n return (\r\n
\r\n {\r\n (self.props.packageOrders.length === 0) ? (
No records found
) :\r\n self.props.packageOrders.map((order) => {\r\n return (\r\n
\r\n
\r\n
Packages Order {order.printOrderId}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
IDAll DigitalConsumedImage CountSheet Count16x2011x14Price
{order.prepaidId}{order.allDigital == true?\"Yes\":\"No\"}{order.consumed == true?\"Yes\":\"No\"}{order.imageCount}{order.sheetCount}{order.largePrint1620}{order.largePrint1114}{order.price}
\r\n
\r\n
)\r\n })\r\n }\r\n
\r\n )\r\n }\r\n return (
Loading...
);\r\n }\r\n}\r\nexport default Packages;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nclass Summary extends Component {\r\n constructor(props) {\r\n super(props);\r\n console.log(\"🚀 ~ Summary ~ constructor ~ props:\", props)\r\n }\r\n \r\n render() {\r\n \r\n if (EM.allLoaded(EM.products, EM.companyConfig)) {\r\n return (\r\n
\r\n {
\r\n
\r\n
Summary
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Total Print OrdersTotal SalesTotal Lab CostStart DateEnd Date
{this.props.summary.totalOrders}${this.props.summary.totalSales.toFixed(2)}${this.props.summary.totalLabCost.toFixed(2)}{this.props.summary.startDate}{this.props.summary.endDate}
\r\n
\r\n
\r\n }\r\n {
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Total Package OrdersTotal Package SalesConsumedConsumed PriceNon Consumed PriceStart DateEnd Date
{this.props.packageOrdersSummary.totalOrders}${this.props.packageOrdersSummary.totalSales.toFixed(2)}{this.props.packageOrdersSummary.consumed}${this.props.packageOrdersSummary.consumedPrice.toFixed(2)}${this.props.packageOrdersSummary.nonConsumedPrice.toFixed(2)}{this.props.summary.startDate}{this.props.summary.endDate}
\r\n
\r\n
\r\n }\r\n {/* {
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Total OrdersTotal SalesTotal Lab CostStart DateEnd Date
{this.props.packageOrdersSummary.totalOrders + this.props.summary.totalOrders}${(this.props.packageOrdersSummary.totalSales + this.props.summary.totalSales).toFixed(2)}${this.props.summary.totalLabCost.toFixed(2)}{this.props.summary.startDate}{this.props.summary.endDate}
\r\n
\r\n
\r\n } */}\r\n
\r\n )\r\n }\r\n return (
Loading...
);\r\n }\r\n}\r\nexport default Summary;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Button, FormGroup, Label } from \"reactstrap\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport addDays from 'date-fns/addDays'\r\nimport Routes from '../app/Routes';\r\nimport _ from 'underscore';\r\nimport { Tabs, Tab } from 'react-bootstrap';\r\nimport Packages from \"./labBilling/Packages\"\r\nimport Summary from \"./labBilling/Summary\"\r\n\r\nconst ExcelJS = require(\"exceljs\");\r\n\r\nclass LabBilling extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.company.companyId },\r\n endDate: new Date(),\r\n startDate: new Date(),\r\n company: this.props.companys,\r\n orders: [],\r\n packageOrders: [],\r\n products: [],\r\n summary: {\r\n totalOrders:0,\r\n totalSales: 0,\r\n totalLabCost: 0,\r\n startDate: '',\r\n endDate: ''\r\n },\r\n packageOrdersSummary: {\r\n consumedPrice: 0,\r\n nonConsumedPrice: 0,\r\n totalOrders:0,\r\n totalSales: 0,\r\n consumed:0\r\n },\r\n companyConfig: null,\r\n recordsNotFound: '',\r\n singleUnitProduct: null,\r\n singleUnitSessionProduct: null,\r\n locationId: 0,\r\n tabKey: 'orders'\r\n };\r\n this.startDateChange = this.startDateChange.bind(this);\r\n this.endDateChange = this.endDateChange.bind(this);\r\n this.loadData = this.loadData.bind(this);\r\n this.createHeaderCell = this.createHeaderCell.bind(this);\r\n this.createHeaderRow = this.createHeaderRow.bind(this);\r\n this.initSummaryData();\r\n }\r\n\r\n componentDidMount() {\r\n this.getProducts();\r\n this.getCompanyConfig();\r\n }\r\n\r\n initSummaryData() {\r\n this.summary = {\r\n totalOrders: this.state.orders ? this.state.orders.length : 0,\r\n packagePrice:0,\r\n totalSales: 0,\r\n totalLabCost: 0,\r\n startDate: this.state.startDate ? this.state.startDate.toLocaleDateString() : '',\r\n endDate: this.state.endDate ? this.state.endDate.toLocaleDateString() : ''\r\n };\r\n }\r\n\r\n excelCellStyle() {\r\n return {\r\n font: { name: 'Arial', size: 10 },\r\n alignment: { vertical: 'middle', horizontal: 'left' },\r\n border: {\r\n top: { style: 'thin' },\r\n left: { style: 'thin' },\r\n bottom: { style: 'thin' },\r\n right: { style: 'thin' }\r\n }\r\n }\r\n }\r\n\r\n excelHeaderStyle() {\r\n return {\r\n font: { bold: true, color: { argb: 'FFFFFFFF' } },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'FF000000' },\r\n bgColor: { argb: 'FFFFFFFF' }\r\n },\r\n alignment: { vertical: 'middle', horizontal: 'center' },\r\n border: {\r\n top: { style: 'thin' },\r\n left: { style: 'thin' },\r\n bottom: { style: 'thin' },\r\n right: { style: 'thin' }\r\n }\r\n };\r\n }\r\n\r\n getCompanyConfig() {\r\n let self = this;\r\n EM.companyConfig.loadSingleEntity({ id: this.props.company.companyId }).then(() => {\r\n self.setState({ companyConfig: EM.companyConfig.get() || {} });\r\n });\r\n }\r\n\r\n getProducts() {\r\n let self = this;\r\n EM.products.executeGet(null, null, Routes.clientApi.products, { companyId: this.props.company.companyId }, true).then(() => {\r\n let products = EM.products.get();\r\n let singleUnitProduct = products.find((p) => p.productId === 2);\r\n let singleUnitSessionProduct = products.find((p) => p.productId === 1);\r\n self.setState({ products, singleUnitProduct, singleUnitSessionProduct });\r\n });\r\n }\r\n\r\n endDateChange(date) {\r\n var self = this;\r\n self.setState({ endDate: date, maxDate: date });\r\n }\r\n startDateChange(date) {\r\n var self = this;\r\n self.setState({ startDate: date, minDate: date });\r\n }\r\n\r\n loadData() {\r\n var self = this;\r\n var request = {\r\n startDate: self.state.startDate.toISOString().split('T')[0],\r\n endDate: self.state.endDate.toISOString().split('T')[0],\r\n locationId: self.state.locationId\r\n }\r\n EM.completedOrders.executeGet(null, request, Routes.clientApi.completedOrders, { companyId: this.props.company.companyId }, false).then((res) => {\r\n self.summary = Object.assign({}, self.summary, { totalOrders: res?.printOrders?.length ?? 0, startDate: request.startDate, endDate: request.endDate, totalLabCost: 0, totalSales: 0 });\r\n this.populateSummary(res.printOrders, res.packageOrders)\r\n self.setState({ orders: res?.printOrders, recordsNotFound: res?.printOrders && res.length > 0 ? '' : 'No records found.' })\r\n self.setState({ packageOrders: res.packageOrders })\r\n });\r\n }\r\n\r\n populateSummary(orders = [], packageOrders=[]) {\r\n if (!orders.length) return\r\n\r\n let ss = {\r\n totalSales: 0,\r\n totalLabCost: 0\r\n }\r\n let packageOrderSale = 0\r\n let consumedPrice = 0\r\n let nonConsumedPrice = 0\r\n let consumed = 0\r\n let self = this;\r\n \r\n packageOrders.forEach((packageOrder) => {\r\n packageOrderSale += packageOrder.price;\r\n consumed += packageOrder.consumed ? 1 : 0\r\n consumedPrice += packageOrder.consumed ? packageOrder.price : 0\r\n nonConsumedPrice += packageOrder.consumed ? 0 : packageOrder.price\r\n })\r\n\r\n orders.forEach((order, index) => {\r\n let totalUnits = 0\r\n let singleImageProducts = [...order.printOrderLineItems].filter((p) => p.product.productId === 2);\r\n let singleSessionProduct = [...order.printOrderLineItems].filter((p) => p.product.productId === 1);\r\n\r\n order.printOrderLineItems.forEach((lineItem) => {\r\n let product = lineItem.product;\r\n if (product && product.productId !== 1 && product.productId !== 2) {\r\n let unit = (product.unit ? product.unit : 0) * lineItem.quantity;\r\n totalUnits += unit;\r\n }\r\n })\r\n\r\n singleImageProducts.forEach((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n let unit = product.unit ? product.unit : 0;\r\n if (index + 1 > 1 && index + 1 <= 20) unit = 0.18;\r\n if (index + 1 > 20) unit = 0.04;\r\n totalUnits += unit;\r\n }\r\n })\r\n singleSessionProduct.forEach((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n for (let i = 0; i < product.userSessionImageCount; i++) {\r\n let unit = (self.state.singleUnitProduct.unit ? self.state.singleUnitProduct.unit : 0);\r\n if (i + 1 > 1 && i + 1 <= 20) unit = 0.18;\r\n if (i + 1 > 20) unit = 0.04;\r\n\r\n totalUnits += unit;\r\n }\r\n }\r\n })\r\n let hasSheet = _.find(order.printOrderLineItems, (lineItems) => {\r\n return lineItems.product.unit === 1;\r\n });\r\n \r\n // ss.totalSales += order.gross ? order.gross : 0\r\n ss.totalSales += order.prepaid ? order.prepaid.price + order.gross : order.gross ?? 0\r\n ss.totalLabCost += ((totalUnits + (hasSheet ? 1 : 0)) * (self.state.companyConfig.unitPrice ? self.state.companyConfig.unitPrice : 2))\r\n });\r\n\r\n this.setState({packageOrdersSummary:{totalSales:packageOrderSale, totalOrders:packageOrders.length, consumed:consumed, consumedPrice, nonConsumedPrice}})\r\n this.setState({summary: {totalLabCost:ss.totalLabCost, totalSales:ss.totalSales, totalOrders:orders.length, startDate: this.state.startDate.toLocaleDateString(), endDate: this.state.endDate.toLocaleDateString()}})\r\n }\r\n\r\n export() {\r\n let self = this;\r\n const workbook = new ExcelJS.Workbook();\r\n const sheet = workbook.addWorksheet(\"Sheet 1\");\r\n let rowNumber = 4;\r\n self.state.orders.map((order, index) => {\r\n self.addOrderNumberHeading(sheet, order);\r\n let rows = [];\r\n let totalUnits = 0;\r\n let imageCount = 0;\r\n let imageUnit = 0;\r\n let singleImageProducts = [...order.printOrderLineItems].filter((p) => p.product.productId === 2);\r\n let singleSessionProduct = [...order.printOrderLineItems].filter((p) => p.product.productId === 1);\r\n let hasSheet = _.find(order.printOrderLineItems, (lineItems) => {\r\n return lineItems.product.unit === 1;\r\n });\r\n\r\n order.printOrderLineItems.map((lineItem) => {\r\n let product = lineItem.product;\r\n if (product && product.productId !== 1 && product.productId !== 2) {\r\n let unit = (product.unit ? product.unit : 0) * lineItem.quantity;\r\n totalUnits += unit;\r\n rows.push([\r\n product.name,\r\n lineItem.quantity,\r\n unit\r\n ]);\r\n }\r\n });\r\n\r\n singleImageProducts.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n let unit = product.unit ? product.unit : 0;\r\n if (index + 1 > 1 && index + 1 <= 20) unit = 0.18;\r\n if (index + 1 > 20) unit = 0.04;\r\n\r\n totalUnits += unit;\r\n imageUnit += unit;\r\n imageCount += lineItem.quantity;\r\n }\r\n });\r\n\r\n singleSessionProduct.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n for (let i = 0; i < product.userSessionImageCount; i++) {\r\n let unit = (self.state.singleUnitProduct.unit ? self.state.singleUnitProduct.unit : 0);\r\n if (i + 1 > 1 && i + 1 <= 20) unit = 0.18;\r\n if (i + 1 > 20) unit = 0.04;\r\n\r\n totalUnits += unit;\r\n imageUnit += unit;\r\n }\r\n imageCount += product.userSessionImageCount;\r\n }\r\n });\r\n\r\n rows.push([\"Images\", imageCount, imageUnit.toFixed(2)]);\r\n\r\n if (hasSheet) {\r\n rows.push([\"First Sheet Processing\", \"\", 1]);\r\n totalUnits += 1;\r\n }\r\n\r\n rows.push([\"Total Units\", \"Package Price\", \"Gross Sale\", \"Total Sales\", \"Total lab Cost\"]);\r\n rows.push([`${totalUnits.toFixed(2)}`,`$${order?.prepaid?.price ?? 0}`,`$${order?.gross ?? 0}`, `$${order.prepaid && order.prepaid.eventPackageId == null ? (order.prepaid.price + order.gross).toFixed(2) : order.gross.toFixed(2)}`, `$${(totalUnits * (self.state.companyConfig.unitPrice ? self.state.companyConfig.unitPrice : 2)).toFixed(2)}`]);\r\n // headers\r\n self.createHeaderRow(sheet, rowNumber);\r\n\r\n rows.forEach((row, index) => {\r\n self.createContentRow(sheet, rowNumber + index + 1, row);\r\n });\r\n\r\n rowNumber += rows.length + 5;\r\n sheet.addRow(['', '', '','','','']);\r\n });\r\n\r\n let summary = sheet.addRow(['Summary']);\r\n let summaryHeader = sheet.addRow(['Total Orders','Package Price', 'Total Lab Cost', 'Total Sales', 'Start Date', 'End Date'], self.excelHeaderStyle());\r\n let summaryContent = sheet.addRow([`${this.state.summary.totalOrders}`, `$${self.summary.packagePrice}`,`$${this.state.summary.totalLabCost.toFixed(2)}`, `$${this.state.summary.totalSales}`, `${self.summary.startDate}`, `${self.summary.endDate}`]);\r\n\r\n\r\n self.initSummaryStyles(summaryHeader, summaryContent, self);\r\n summary.getCell(1).style = { font: { bold: true } };\r\n sheet.getColumn(1).width = 50;\r\n sheet.getColumn(2).width = 50;\r\n sheet.getColumn(3).width = 50;\r\n sheet.getColumn(4).width = 50;\r\n sheet.getColumn(5).width = 50;\r\n sheet.getColumn(6).width = 50;\r\n\r\n workbook.xlsx.writeBuffer().then(function (data) {\r\n self.triggerDownload(data);\r\n });\r\n }\r\n\r\n initSummaryStyles(header, content, self) {\r\n header.getCell(1).style = self.excelHeaderStyle();\r\n header.getCell(2).style = self.excelHeaderStyle();\r\n header.getCell(3).style = self.excelHeaderStyle();\r\n header.getCell(4).style = self.excelHeaderStyle();\r\n header.getCell(5).style = self.excelHeaderStyle();\r\n header.getCell(6).style = self.excelHeaderStyle();\r\n\r\n content.getCell(1).style = self.excelCellStyle();\r\n content.getCell(2).style = self.excelCellStyle();\r\n content.getCell(3).style = self.excelCellStyle();\r\n content.getCell(4).style = self.excelCellStyle();\r\n content.getCell(5).style = self.excelCellStyle();\r\n content.getCell(6).style = self.excelCellStyle();\r\n }\r\n\r\n triggerDownload(data) {\r\n const arrayBuffer = new Uint8Array(data);\r\n const blob = new Blob([arrayBuffer], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n });\r\n const url = window.URL.createObjectURL(blob);\r\n const anchor = document.createElement(\"a\");\r\n anchor.href = url;\r\n anchor.download = \"Report.xlsx\";\r\n anchor.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n addOrderNumberHeading(sheet, order, text) {\r\n var row = sheet.addRow(text ? text : [\"Order \" + order.printOrderId +\" | User ID: \" + order.userId]);\r\n var headCell = row.getCell(1);\r\n headCell.style = { font: { bold: true } };\r\n }\r\n\r\n createHeaderCell(sheet, cellAddress, value) {\r\n var cell = sheet.getCell(cellAddress);\r\n cell.value = value;\r\n cell.style = this.excelHeaderStyle();\r\n }\r\n\r\n createHeaderRow(sheet, rowNumber) {\r\n this.createHeaderCell(sheet, `A${rowNumber}`, 'Products');\r\n this.createHeaderCell(sheet, `B${rowNumber}`, 'Quantity');\r\n this.createHeaderCell(sheet, `C${rowNumber}`, 'Units');\r\n this.createHeaderCell(sheet, `D${rowNumber}`, '');\r\n this.createHeaderCell(sheet, `E${rowNumber}`, '');\r\n }\r\n\r\n createContentCell(sheet, cellAddress, value, bold) {\r\n var cell = sheet.getCell(cellAddress);\r\n cell.value = value;\r\n cell.style = this.excelCellStyle();\r\n if (bold === true)\r\n cell.style.font.bold = true;\r\n }\r\n\r\n createContentRow(sheet, rowNumber, row) {\r\n let bold = (row[0] === \"Total Units\" || row[0] === \"Package Price\" || row[0] === \"Gross Price\", row[0] === \"Total Sales\" || row[0] === \"Total lab Cost\");\r\n this.createContentCell(sheet, `A${rowNumber}`, row[0], bold);\r\n this.createContentCell(sheet, `B${rowNumber}`, row[1], bold);\r\n this.createContentCell(sheet, `C${rowNumber}`, row[2], bold);\r\n this.createContentCell(sheet, `D${rowNumber}`, row[3], bold);\r\n this.createContentCell(sheet, `E${rowNumber}`, row[4], bold);\r\n }\r\n\r\n locationChange = (event) => {\r\n var self = this;\r\n self.setState({ locationId: event.target.value });\r\n }\r\n\r\n handleSelect = (tabKey) => {\r\n this.setState({ tabKey });\r\n }\r\n\r\n render() {\r\n let self = this;\r\n if (EM.allLoaded(EM.products, EM.companyConfig)) {\r\n this.initSummaryData();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n this.state.tabKey === \"orders\" &&\r\n <>\r\n {self.state.orders.length === 0 ? (
{this.state.recordsNotFound}
) :\r\n self.state.orders.map((order) => {\r\n let totalUnits = 0;\r\n let imageCount = 0;\r\n let imageUnit = 0;\r\n let singleImageProducts = [...order.printOrderLineItems].filter((p) => p.product.productId === 2);\r\n let singleSessionProduct = [...order.printOrderLineItems].filter((p) => p.product.productId === 1);\r\n let hasSheet = _.find(order.printOrderLineItems, (lineItems) => {\r\n return lineItems.product.unit === 1;\r\n });\r\n return (\r\n
\r\n
\r\n
Order: {order.printOrderId} | User ID: {order.userId}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n order.printOrderLineItems.map((lineItem) => {\r\n let product = lineItem.product;\r\n if (product && product.productId !== 1 && product.productId !== 2) {\r\n let unit = (product.unit ? product.unit : 0) * lineItem.quantity;\r\n totalUnits += unit;\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n })\r\n }\r\n \r\n {\r\n singleImageProducts.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n let unit = product.unit ? product.unit : 0;\r\n if (index + 1 > 1 && index + 1 <= 20) unit = 0.18;\r\n if (index + 1 > 20) unit = 0.04;\r\n totalUnits += unit;\r\n imageUnit += unit;\r\n imageCount += lineItem.quantity;\r\n }\r\n })\r\n }\r\n {\r\n singleSessionProduct.map((lineItem, index) => {\r\n let product = lineItem.product;\r\n if (product) {\r\n for (let i = 0; i < product.userSessionImageCount; i++) {\r\n let unit = (self.state.singleUnitProduct.unit ? self.state.singleUnitProduct.unit : 0);\r\n if (i + 1 > 1 && i + 1 <= 20) unit = 0.18;\r\n if (i + 1 > 20) unit = 0.04;\r\n\r\n totalUnits += unit;\r\n imageUnit += unit;\r\n }\r\n imageCount += product.userSessionImageCount;\r\n }\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n {\r\n (hasSheet ?\r\n \r\n \r\n \r\n \r\n : null)\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ProductsQuantityUnits
{product.name}{lineItem.quantity}{unit}
Image{imageCount}{imageUnit.toFixed(2)}
First Sheet Processing1
Total UnitsApp SalesPackage PriceTotal SalesTotal lab Cost
{(totalUnits + (hasSheet ? 1 : 0)).toFixed(2)}${order.gross}${order?.prepaid?.price ?? 0}${order.prepaid && order.prepaid.eventPackageId == null ? (order.prepaid.price + order.gross).toFixed(2) : order.gross.toFixed(2)}\r\n ${((totalUnits + (hasSheet ? 1 : 0)) * (self.state.companyConfig.unitPrice ? self.state.companyConfig.unitPrice : 1)).toFixed(2)}\r\n \r\n
\r\n
\r\n
)\r\n })\r\n }\r\n \r\n }\r\n {this.state.tabKey === \"summary\" && (\r\n <>\r\n {self.state.orders.length === 0 ? (
) :\r\n ()\r\n }\r\n \r\n )}\r\n\r\n {\r\n this.state.tabKey === \"packages\" && \r\n }\r\n
\r\n )\r\n }\r\n return (
Loading...
);\r\n }\r\n}\r\nexport default LabBilling;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport addDays from 'date-fns/addDays'\r\nimport Routes from '../app/Routes';\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport CSV from '../util/CSV';\r\nimport PageTitle from '../components/PageTitle';\r\nimport { Button, FormGroup, Label } from \"reactstrap\";\r\nimport {Tabs, Tab} from 'react-bootstrap';\r\nimport LabBilling from '../components/LabBilling';\r\nimport Select from 'react-select';\r\n\r\nclass Export extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.export;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n\r\n this.state = {\r\n parentRecordDetail: { companyId: company.companyId },\r\n company:company,\r\n aptEndDate: '',\r\n aptStartDate: '',\r\n endDate: new Date(),\r\n startDate: new Date(),\r\n locations: [],\r\n maxDate: new Date(),\r\n minDate: addDays(new Date(), -10000),\r\n locationIds:[],\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n tabKey:'appointmentsExport'\r\n }\r\n this.startDateChange = this.startDateChange.bind(this);\r\n this.endDateChange = this.endDateChange.bind(this);\r\n this.export = this.export.bind(this);\r\n this.locationChange = this.locationChange.bind(this);\r\n }\r\n componentDidMount() {\r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n var self = this;\r\n EM.locations.loadEntityByParent(this.state.parentRecordDetail).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n }\r\n formattedDateLong(date) {\r\n let strReturn = ('0' + (date.getMonth() + 1)).slice(-2) + '/' + ('0' + date.getDate()).slice(-2) + '/' + date.getFullYear();\r\n return strReturn;\r\n }\r\n endDateChange(date) {\r\n var self = this;\r\n self.setState({ endDate: date, maxDate: date });\r\n }\r\n startDateChange(date) {\r\n var self = this;\r\n self.setState({ startDate: date, minDate: date });\r\n }\r\n // locationChange = (event) => { \r\n // var self = this;\r\n // self.setState({locationId:event.target.value}); \r\n // }\r\n\r\n export(){\r\n var self = this;\r\n var request = {\r\n locationIds: self.state.locationIds,\r\n startDate: self.state.startDate.toISOString().split('T')[0],\r\n endDate: self.state.endDate.toISOString().split('T')[0]\r\n }\r\n EM.export.executePost(request, null, Routes.clientApi.exportwithEventsList, {}, true).then((res) => {\r\n // this.setState({locationIds:[]})\r\n CSV.save('exportData', CSV.fromString(res));\r\n });\r\n }\r\n\r\n handleSelect = (tabKey) => {\r\n this.setState({ tabKey });\r\n }\r\n\r\n locationChange(values){\r\n let items = values ? values.map(item => { return item.value }) : [];\r\n this.setState({locationIds:items})\r\n }\r\n\r\n render() {\r\n let self = this;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.tabKey === \"appointmentsExport\" && \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {/* */}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n {this.state.tabKey === \"salesLabCostExport\" &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\nexport default Export;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from \"underscore\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from 'react-select';\r\nimport Routes from '../app/Routes';\r\nimport PageTitle from '../components/PageTitle';\r\nimport CalendarView from '../components/CalendarView';\r\nimport CalendarDayDetails from '../components/CalendarDayDetails';\r\nimport Dates from '../util/Dates';\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.locations;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n this.state = {\r\n loading:false,\r\n parentRecordDetail: { companyId: company.companyId },\r\n company : company,\r\n locationOptions:[],\r\n data:[],\r\n locationId:null,\r\n showCalendar:false,\r\n showDetails:false,\r\n dayDetails:null,\r\n selectedDate:null,\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.onCalendarChange = this.onCalendarChange.bind(this);\r\n this.onDayClick = this.onDayClick.bind(this);\r\n }\r\n\r\n componentDidMount(){\r\n this.setState({companyName:EM.getDefaultCompany().companyName})\r\n EM.locations.loadEntityByParent(this.state.parentRecordDetail, true).then(()=>{\r\n this.setState({locationOptions:EM.locations.asOptionList(null, true)});\r\n });\r\n\r\n }\r\n\r\n toIntervals(locationId) {\r\n this.props.history.push(Routes.compose(Routes.client.intervals, { locationId }));\r\n }\r\n\r\n locationChange(locationId,date){\r\n let self =this;\r\n if(locationId && locationId>0)\r\n EM.calendar.executeGet(null,{locationId:locationId,date:(date ? date : new Date()).toISOString()},Routes.clientApi.calendar, {})\r\n .then((result)=>{\r\n self.setState({data:result, locationId,showCalendar:true,showDetails:false});\r\n });\r\n }\r\n\r\n onCalendarChange(date){\r\n if(date) this.locationChange(this.state.locationId,date);\r\n }\r\n\r\n async onDayClick(date){ \r\n if(date)\r\n {\r\n let self =this;\r\n if(self.state.locationId && self.state.locationId>0)\r\n {\r\n this.setState({loading:true})\r\n await EM.calendar.executeGet(null,{locationId:self.state.locationId,date:(date ? Dates.toDateTime(Dates.fromDate(date)) : new Date().toISOString())},Routes.clientApi.calendarday, {})\r\n .then((result)=>{ \r\n self.setState({dayDetails:result,showCalendar:false,showDetails:true,selectedDate:date});\r\n \r\n });\r\n this.setState({loading:false})\r\n }\r\n \r\n }\r\n else\r\n this.setState({showCalendar:false,showDetails:true});\r\n }\r\n\r\n\r\n render() {\r\n let self = this;\r\n if (EM.allLoaded(EM.locations)) {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n { \r\n self.locationChange(selection.value);\r\n }}\r\n />\r\n \r\n {\r\n self.state.showCalendar ? {self.onDayClick(date);}} onCalendarChange={(date)=>{self.onCalendarChange(date)}} data={this.state.data}> : ''\r\n }\r\n {\r\n self.state.showDetails ? {self.locationChange(self.state.locationId)}} onDayClick={(date)=>{self.onDayClick(date);}} data={this.state.dayDetails} locationId={this.state.locationId} date={this.state.selectedDate} > :''\r\n }\r\n \r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n )\r\n \r\n }\r\n}\r\n\r\nexport default Calendar;\r\n","import React, { Component } from 'react';\r\n\r\nexport default class CalendarDay extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state =\r\n {\r\n slots: []\r\n };\r\n }\r\n\r\n BuildComponent(slot)\r\n {\r\n return ({slot.slot} ({slot.firstName} {slot.lastName}));\r\n }\r\n\r\n static getDerivedStateFromProps(props, current_state) {\r\n if (current_state.slots !== props.slots) {\r\n\r\n return {\r\n slots: props.slots\r\n }\r\n }\r\n return null\r\n }\r\n\r\n render() { \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {this.state.slots.map(loc => this.BuildComponent(loc))}\r\n
\r\n Date\r\n
\r\n
\r\n ); \r\n }\r\n}","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport Dates from '../util/Dates'\r\nimport Routes from \"../app/Routes\";\r\nimport CalDay from \"../components/CalendarDay\";\r\n\r\n\r\nclass Calendar extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedDate: Dates.now(), //m_strSelectedDate\r\n lastSelectDay: 0,\r\n lastSelectWeek: 0,\r\n aptDays: [],\r\n selectedDateView: new Date(),\r\n months: this.getMonths(),\r\n locationId: this.props.aptCalender.locationId,\r\n };\r\n }\r\n getMonths() {\r\n var month = new Array();\r\n month[0] = \"January\";\r\n month[1] = \"February\";\r\n month[2] = \"March\";\r\n month[3] = \"April\";\r\n month[4] = \"May\";\r\n month[5] = \"June\";\r\n month[6] = \"July\";\r\n month[7] = \"August\";\r\n month[8] = \"September\";\r\n month[9] = \"October\";\r\n month[10] = \"November\";\r\n month[11] = \"December\";\r\n return month;\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.state.locationId != this.props.aptCalender.locationId) {\r\n this.updateCalendar();\r\n this.setState({ locationId: this.props.aptCalender.locationId });\r\n }\r\n }\r\n componentDidMount() {\r\n var self = this;\r\n self.updateCalendar();\r\n }\r\n\r\n updateCalendar() {\r\n var self = this;\r\n EM.userScheduler.executeGet(null, { locationId: this.props.aptCalender.locationId, date: self.state.selectedDateView.toLocaleDateString() }, Routes.clientApi.calenderMonth, {}, true).then((res) => {\r\n this.setState({ aptDays: res });\r\n });\r\n }\r\n\r\n dayClick(enabled, strdate, day, week) {\r\n if (!enabled)\r\n alert(\"Not available\");\r\n else {\r\n this.setState({ selectedDate: strdate, lastSelectDay: day, lastSelectWeek: week });\r\n this.props.calendarChange(strdate);\r\n }\r\n }\r\n\r\n getWeek(week) {\r\n return \r\n this.dayClick(this.getDay(0, week).enabled, this.getDay(0, week).strdt, 0, week)} className={this.getDay(0, week).css}>{this.getDay(0, week).title}\r\n this.dayClick(this.getDay(1, week).enabled, this.getDay(1, week).strdt, 1, week)} className={this.getDay(1, week).css}>{this.getDay(1, week).title}\r\n this.dayClick(this.getDay(2, week).enabled, this.getDay(2, week).strdt, 2, week)} className={this.getDay(2, week).css}>{this.getDay(2, week).title}\r\n this.dayClick(this.getDay(3, week).enabled, this.getDay(3, week).strdt, 3, week)} className={this.getDay(3, week).css}>{this.getDay(3, week).title}\r\n this.dayClick(this.getDay(4, week).enabled, this.getDay(4, week).strdt, 4, week)} className={this.getDay(4, week).css}>{this.getDay(4, week).title}\r\n this.dayClick(this.getDay(5, week).enabled, this.getDay(5, week).strdt, 5, week)} className={this.getDay(5, week).css}>{this.getDay(5, week).title}\r\n this.dayClick(this.getDay(6, week).enabled, this.getDay(6, week).strdt, 6, week)} className={this.getDay(6, week).css}>{this.getDay(6, week).title}\r\n ;\r\n }\r\n getDay(day, week) {\r\n let rmvc = new CalDay();\r\n for (let mvd of this.state.aptDays) {\r\n if (mvd.x == day && mvd.y == week) {\r\n mvd.css = \"table-light sortable\";\r\n if (mvd.enabled) {\r\n mvd.css = \"table-success sortable\";\r\n if (day == this.state.lastSelectDay && week == this.state.lastSelectWeek) {\r\n mvd.css = \"table-primary sortable\";\r\n }\r\n }\r\n return mvd;\r\n }\r\n }\r\n return rmvc;\r\n }\r\n navigateCalendar(isForward) {\r\n var self = this;\r\n let date = self.state.selectedDateView;\r\n var newDate = new Date();\r\n if (isForward)\r\n newDate = new Date(date.setMonth(date.getMonth() + 1));\r\n else\r\n newDate = new Date(date.setMonth(date.getMonth() - 1));\r\n this.setState({ selectedDateView: newDate });\r\n self.updateCalendar();\r\n }\r\n render() {\r\n var self = this;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {self.getWeek(0)}\r\n {self.getWeek(1)}\r\n {self.getWeek(2)}\r\n {self.getWeek(3)}\r\n {self.getWeek(4)}\r\n {self.getWeek(5)}\r\n
{self.state.months[self.state.selectedDateView.getMonth()]}
SunMonTuesWedThuFriSat
\r\n
\r\n )\r\n }\r\n}\r\nexport default Calendar;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport Dates from '../util/Dates';\r\n\r\nclass TimeSlot extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n times: [],\r\n selectedTime: this.props.selectedTime,\r\n internalDate: \"\",\r\n appointmentsByDate: []\r\n };\r\n this.getAppointmentsCount = this.getAppointmentsCount.bind(this);\r\n }\r\n componentDidMount() {\r\n this.loadSlots();\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.state.internalDate != this.props.date) {\r\n this.loadSlots();\r\n let appointments = _.groupBy(this.props.appointments, (appointment) => {\r\n return `${appointment.displayDate}`;\r\n });\r\n this.setState({ internalDate: this.props.date, appointmentsByDate: appointments });\r\n }\r\n }\r\n\r\n loadSlots() {\r\n let self = this;\r\n let locationId = this.props.locationId;\r\n if (locationId > 0 && typeof this.props.date === 'string') {\r\n let params = { locationId: locationId, date: this.props.date };\r\n let qs = { date: this.props.date, bookByAdmin: true };\r\n EM.availableSlots.searchEntity(params, qs, true).then(() => {\r\n self.setState({ times: EM.availableSlots.get() });\r\n });\r\n }\r\n }\r\n convertDateString(dateString) {\r\n // Split the date string into its components\r\n let [datePart, timePart, am_pm] = dateString.split(' ');\r\n\r\n // Further split the date part into month, day, and year\r\n let [month, day, year] = datePart.split('/');\r\n\r\n // Remove leading zero from the month\r\n month = parseInt(month, 10).toString();\r\n\r\n // Reassemble the date string\r\n return `${month}/${day}/${year} ${timePart} ${am_pm}`;\r\n }\r\n getAppointmentsCount(slot) {\r\n /**following was old code and had format issue on day part***/ \r\n /**let appointments = this.state.appointmentsByDate[`${Dates.toDateShort(Dates.fromStr(this.props.date))} ${slot}`] || [];*/\r\n let dateToConvert = this.convertDateString(`${this.props.date} ${slot}`)\r\n let appointments = this.state.appointmentsByDate[dateToConvert] || [];\r\n return `(Appointments : ${appointments ? appointments.length : 0})`\r\n }\r\n\r\n render() {\r\n var self = this;\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\nexport default TimeSlot;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport AppointmentCalender from \"../components/Calendar\";\r\nimport TimeSlot from \"../components/TimeSlot\";\r\nimport Routes from '../app/Routes';\r\nimport InputMask from 'react-input-mask';\r\nimport { Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label, Row, Col } from 'reactstrap';\r\nimport PanelModal from '../components/PanelModal';\r\nimport Dates from '../util/Dates';\r\n\r\nclass UserScheduler extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.userScheduler;\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.match.params.companyId, userId: this.props.match.params.userId },\r\n showMyComponent: false,\r\n locations: [],\r\n selectedDate: new Date(),\r\n selectedTime: \"\",\r\n locationId: 0,\r\n appointments: [],\r\n showContactInfo: false,\r\n user: {},\r\n updatedUser: {},\r\n timeSlotHidden:true\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.timeChange = this.timeChange.bind(this);\r\n this.updateUser = this.updateUser.bind(this);\r\n this.redirectToUserDetail = this.redirectToUserDetail.bind(this);\r\n }\r\n componentDidMount() {\r\n var self = this;\r\n EM.locations.loadEntityByParent(self.state.parentRecordDetail).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n EM.user.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.userId }, true).then((res) => {\r\n this.setState({ user: res });\r\n });\r\n\r\n }\r\n locationChange(event) {\r\n let locId = event.target.value;\r\n if (locId === 0) { this.setState({ showMyComponent: false, locationId: 0, appointments: null }); }\r\n else {\r\n this.setState({ showMyComponent: true, locationId: locId }, () => {\r\n EM.appointments.executeGet(null, { locationId: locId }, Routes.clientApi.appointmentsByLocation, {}, true).then((res) => {\r\n this.setState({ appointments: res, showContactInfo:false,timeSlotHidden:true});\r\n });\r\n });\r\n }\r\n }\r\n calendarChange = (strdt) => {\r\n this.setState({ selectedDate: strdt,timeSlotHidden:false });\r\n }\r\n timeChange(e) {\r\n if (e.target.value.toLowerCase() != \"please select\")\r\n this.setState({ showContactInfo: true, selectedTime: e.target.value });\r\n }\r\n updateUser(event, field) {\r\n let uUser = this.state.user;\r\n uUser[field] = event.target.value;\r\n this.setState({ user: uUser });\r\n }\r\n validate() {\r\n return this.state.selectedDate\r\n && this.state.selectedTime\r\n && this.state.locationId\r\n && this.state.user.firstName\r\n && this.state.user.lastName\r\n && this.state.user.phoneNumber;\r\n }\r\n redirectToUserDetail() {\r\n // this.setState({appointments : null});\r\n let url = Routes.compose(Routes.client.userDetails, { userId: this.state.parentRecordDetail.userId, companyId: this.state.parentRecordDetail.companyId });\r\n this.props.history.push(url);\r\n }\r\n schedule() {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n // var date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy t`);\r\n // if(!date) date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy HH:MM`);\r\n // console.log(Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy HH:MM`));\r\n\r\n let date = new Date(this.state.selectedDate + ' ' + this.state.selectedTime).toLocaleString();\r\n let request = {\r\n // slotDateTime: date.toISO().replace(':00.000Z',''),\r\n slotDateTime: date,\r\n locationId: this.state.locationId,\r\n paid: true,\r\n checkedIn: false,\r\n userId: this.state.parentRecordDetail.userId,\r\n companyId: this.state.parentRecordDetail.companyId,\r\n creationSourceId: 1\r\n };\r\n EM.appointments.executePost(request, null, Routes.clientApi.domainEntity, {}, false)\r\n .then(() => {\r\n this.redirectToUserDetail();\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default UserScheduler;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport AppointmentCalender from \"../components/Calendar\";\r\nimport TimeSlot from \"../components/TimeSlot\";\r\nimport Routes from \"../app/Routes\";\r\nimport InputMask from 'react-input-mask';\r\nimport { Form, FormGroup, Input, Label, Row, Col } from 'reactstrap';\r\nimport Dates from \"../util/Dates\";\r\n\r\nclass RescheduleAppointment extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.rescheduleAppointment;\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.match.params.companyId, userId: this.props.match.params.userId, appointmentId: this.props.match.params.appointmentId },\r\n selectedTime: \"\",\r\n selectedDate: new Date(),\r\n locationId: 0,\r\n user: {},\r\n showMyComponent: false,\r\n locations: [],\r\n appointments: [],\r\n showContactInfo: false,\r\n appointment: null,\r\n timeSlotHidden:true\r\n };\r\n this.locationChange = this.locationChange.bind(this);\r\n this.timeChange = this.timeChange.bind(this);\r\n this.updateUser = this.updateUser.bind(this);\r\n this.redirectToUserDetail =this.redirectToUserDetail.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n var self = this;\r\n EM.locations.loadEntityByParent(self.state.parentRecordDetail).then(() => {\r\n self.setState({ locations: EM.locations.get() });\r\n });\r\n EM.users.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.userId }, true).then((res) => {\r\n this.setState({ user: res });\r\n });\r\n EM.appointments.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.appointmentId }, true).then((res) => {\r\n this.setState({ appointment: res });\r\n });\r\n }\r\n\r\n locationChange(event) {\r\n let locId = event.target.value;\r\n if (locId == 0) { this.setState({ showMyComponent: false, locationId: 0, appointments: null }); }\r\n else {\r\n this.setState({ showMyComponent: true, locationId: locId }, () => {\r\n EM.appointments.executeGet(null, { locationId: locId }, Routes.clientApi.appointmentsByLocation, {}, true).then((res) => {\r\n this.setState({ appointments: res, showContactInfo:false,timeSlotHidden:true});\r\n });\r\n });\r\n }\r\n }\r\n calendarChange = (strdt) => {\r\n this.setState({ selectedDate: strdt,timeSlotHidden:false });\r\n }\r\n\r\n timeChange(e) {\r\n if (e.target.value.toLowerCase() != \"please select\")\r\n this.setState({ showContactInfo: true, selectedTime: e.target.value });\r\n }\r\n updateUser(event, field) {\r\n let uUser = this.state.user;\r\n uUser[field] = event.target.value;\r\n this.setState({ user: uUser });\r\n }\r\n validate() {\r\n return this.state.selectedDate\r\n && this.state.selectedTime\r\n && this.state.locationId\r\n && this.state.user.firstName\r\n && this.state.user.lastName\r\n && this.state.user.phoneNumber;\r\n }\r\n redirectToUserDetail() {\r\n let url = Routes.compose(Routes.client.userDetails, { userId: this.state.parentRecordDetail.userId, companyId: this.state.parentRecordDetail.companyId });\r\n this.props.history.push(url);\r\n }\r\n reschedule() {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n // var date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy t`);\r\n let date = new Date(this.state.selectedDate + ' ' + this.state.selectedTime).toLocaleString();\r\n let request = {\r\n // slotDateTime: date.toISO().replace(':00.000Z',''),\r\n slotDateTime: date,\r\n locationId: this.state.locationId,\r\n paid: true,\r\n checkedIn: false,\r\n userId: this.state.parentRecordDetail.userId,\r\n companyId: this.state.parentRecordDetail.companyId,\r\n creationSourceId: 1,\r\n appointmentId: this.state.appointment.appointmentId\r\n };\r\n EM.appointments.executePost(request, null, Routes.clientApi.rescheduleAppointment, {}, false).then(() => {\r\n this.redirectToUserDetail();\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default RescheduleAppointment;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport _ from 'underscore';\r\nimport AppointmentCalender from \"../components/Calendar\";\r\nimport TimeSlot from \"../components/TimeSlot\";\r\nimport Routes from \"../app/Routes\";\r\nimport InputMask from 'react-input-mask';\r\nimport { Form, FormGroup, Input, Label, Row, Col } from 'reactstrap';\r\nimport Dates from \"../util/Dates\";\r\n\r\nclass RescheduleAppointmentBooking extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.rescheduleAppointment;\r\n this.state = {\r\n parentRecordDetail: { companyId: this.props.match.params.companyId, userId: this.props.match.params.userId, appointmentId: this.props.match.params.appointmentId },\r\n selectedTime: \"\",\r\n selectedDate: new Date(),\r\n locationId:this.props.match.params.locationId,\r\n user: {},\r\n appointments: [],\r\n showContactInfo: false,\r\n appointment: null,\r\n timeSlotHidden:true\r\n };\r\n this.timeChange = this.timeChange.bind(this);\r\n this.updateUser = this.updateUser.bind(this);\r\n this.redirectToBooking =this.redirectToBooking.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n EM.appointments.executeGet(null, { locationId: this.state.locationId }, Routes.clientApi.appointmentsByLocation, {}, true).then((res) => {\r\n this.setState({ appointments: res, showContactInfo:false,timeSlotHidden:true});\r\n });\r\n EM.users.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.userId }, true).then((res) => {\r\n this.setState({ user: res });\r\n });\r\n EM.appointments.executeGet(null, null, Routes.clientApi.byId, { id: this.state.parentRecordDetail.appointmentId }, true).then((res) => {\r\n this.setState({ appointment: res });\r\n });\r\n }\r\n\r\n calendarChange = (strdt) => {\r\n this.setState({ selectedDate: strdt,timeSlotHidden:false });\r\n }\r\n\r\n timeChange(e) {\r\n if (e.target.value.toLowerCase() != \"please select\")\r\n this.setState({ showContactInfo: true, selectedTime: e.target.value });\r\n }\r\n updateUser(event, field) {\r\n let uUser = this.state.user;\r\n uUser[field] = event.target.value;\r\n this.setState({ user: uUser });\r\n }\r\n validate() {\r\n return this.state.selectedDate\r\n && this.state.selectedTime\r\n && this.state.locationId\r\n && this.state.user.firstName\r\n && this.state.user.lastName\r\n && this.state.user.phoneNumber;\r\n }\r\n redirectToBooking() {\r\n let url = Routes.compose(Routes.client.booking, { eventId: this.state.appointment.eventId});\r\n this.props.history.push({pathname:url, state:{openCalendar: true}});\r\n }\r\n reschedule() {\r\n if (!this.validate()) {\r\n alert('Please fill in the required information.')\r\n return;\r\n }\r\n // var date = Dates.fromStr(this.state.selectedDate + ' ' + this.state.selectedTime,`L/d/yyyy t`);\r\n let date = new Date(this.state.selectedDate + ' ' + this.state.selectedTime).toLocaleString();\r\n let request = {\r\n // slotDateTime: date.toISO().replace(':00.000Z',''),\r\n slotDateTime: date,\r\n locationId: this.state.locationId,\r\n paid: true,\r\n checkedIn: false,\r\n userId: this.state.parentRecordDetail.userId,\r\n companyId: this.state.parentRecordDetail.companyId,\r\n creationSourceId: 1,\r\n appointmentId: this.state.appointment.appointmentId\r\n };\r\n EM.appointments.executePost(request, null, Routes.clientApi.rescheduleAppointment, {}, false).then(() => {\r\n this.redirectToBooking();\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n

{this.state.appointment?this.state.appointment.location.name:''}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default RescheduleAppointmentBooking;","/* global EM */\r\nimport logo from \"../assets/logo.svg\";\r\nimport \"../style/Login.css\";\r\nimport React, { Component } from \"react\";\r\nimport Spinner from \"../components/Spinner\";\r\nimport Routes from \"../app/Routes\";\r\n\r\nclass CompleteOrder extends Component {\r\n constructor(props) {\r\n super(props);\r\n let self = this;\r\n self.state = {\r\n stripeSessionId: self.props.match.params.stripeSessionId,\r\n event:null\r\n };\r\n\r\n \r\n }\r\n\r\n componentDidMount() { \r\n EM.events.executePost({stripeSessionId:this.state.stripeSessionId},null,Routes.clientApi.activateAppointment,{stripeSessionId:this.state.stripeSessionId},true)\r\n .then((result)=>{\r\n let events = EM.events.get();\r\n EM.storage.set(\"message\", events.closeMessage);\r\n // EM.redirectTo(Routes.client.completeOrder,{stripeSessionId:''});\r\n\r\n }); \r\n }\r\n\r\n render() {\r\n \r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*

About Company

\r\n

Booking Copy You can book your date and time simply from our website, Flashop app, or in person at one of our many retail locations we serve. Our promotional special is a digital download of your favorite image for $20 with over 25 images to choose from. Also other simple pricing package specials to choose from.

\r\n

Want us to come to you?

\r\n

Photography session and delivery.

\r\n

Now the fun part. You confirmed your photography session and location to bring your loved ones Dress to impress to be Photographed.

\r\n

We will take over 25+ images. Directly after the photo session your photos will be delivered to your Flashop app. Your Photographer will show you exactly how to select your Favorite image. When unlock it all the watermarks are removed so you can download it to your mobile device share it with friends and family or put it in your favorite editing app.

\r\n

It’s all about the Digital and instant gratification.

\r\n

If you decide you want all of your images unlocked. $149.99 groups under six. When you unlock the digital you also receive an text with all the images In a zip file.

\r\n

Check out or print specials as well With sizes up to 30 x 40. At AM Studios We give you the most convenient way to have professional portraits scheduled, photographed, and delivered.

\r\n

Thank you for your business and we look forward to serving you.

*/}\r\n
\r\n
\r\n
© 2024 Flashop. All rights reserved.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Thank you!\r\n
\r\n

{EM.storage.get(\"message\")}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n ); \r\n \r\n }\r\n}\r\n\r\nexport default CompleteOrder;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport PageTitle from '../components/PageTitle';\r\nclass Downloads extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n
Flashop Studio allows you to send images to your customers.
\r\n
\r\n
\r\n \r\n
Flashop Studio allows you to send images to your customers.
\r\n
\r\n
\r\n )\r\n }\r\n}\r\nexport default Downloads;","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { Validators } from \"../util/EntityValidators\";\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport { Type } from \"react-bootstrap-table2-editor\";\r\nimport {FaTrashAlt } from \"react-icons/fa\";\r\nimport Dates from '../util/Dates'\r\nimport Spinner from '../components/Spinner'\r\nclass EventPackages extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.entity = EM.eventpackage;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n let locationId = this.props.match.params.locationId;\r\n this.state = {\r\n data:false, \r\n parentRecordDetail: { companyId: company.companyId, locationId },\r\n locationId: locationId,\r\n location:{name:''},\r\n isSuperAdmin:EM.isSuperAdmin(),\r\n }; \r\n }\r\n getLocation(){ \r\n let location = _.findWhere(EM.eventTypes.get(),{eventTypeId:parseInt(this.props.match.params.locationId)});\r\n if(!location)\r\n {\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n EM.eventTypes.loadEntityByParent({companyId:company.companyId}).then(()=>{\r\n let location = _.findWhere(EM.eventTypes.get(),{eventTypeId:parseInt(this.props.match.params.locationId)});\r\n this.setState({location:location});\r\n });\r\n }\r\n else{\r\n this.setState({location});\r\n }\r\n\r\n }\r\n componentDidMount(){ \r\n this.setState({companyName:EM.getDefaultCompany().companyName}) \r\n const self = this\r\n this.getLocation()\r\n this.entity.loadEntityByParent(this.state.parentRecordDetail,false).then((data)=>{\r\n if(EM.allLoaded(this.entity)){ \r\n \r\n data = self.entity.get(true);\r\n self.setState({data:data})\r\n console.log(data)\r\n }\r\n })\r\n }\r\n\r\n\r\n getTitle(){\r\n return `Studio Packages for ${this.state.location.name}`;\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = []; \r\n \r\n if (this.state.data) {\r\n data = this.entity.get(true);\r\n const self =this\r\n columns = [\r\n {\r\n dataField: \"eventName\",\r\n text: this.entity.columns(\"eventName\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.required],\r\n },\r\n {\r\n dataField: \"createdDate\",\r\n text: this.entity.columns(\"createdDate\"),\r\n creatable: false,\r\n editable:false,\r\n filterOptions: {\r\n text: true,\r\n },\r\n formatter: (cell, row) => {\r\n return (Dates.isoToDateTime(cell, \"YYYY-MM-DD hh:mm A\"));\r\n }\r\n },\r\n {\r\n dataField: \"allDigital\",\r\n text:\"Include Digital\",\r\n editable:true,\r\n asActive:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"price\",\r\n text: this.entity.columns(\"price\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"sheetCount\",\r\n text: this.entity.columns(\"sheetCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"imageCount\",\r\n text: this.entity.columns(\"imageCount\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1114\",\r\n text: this.entity.columns(\"largePrint1114\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n },\r\n {\r\n dataField: \"largePrint1620\",\r\n text: this.entity.columns(\"largePrint1620\"),\r\n editable:true,\r\n filterOptions: {\r\n text: true,\r\n },\r\n validators: [ Validators.requiredNumber,Validators.positiveNumber,Validators.numberOnly],\r\n }\r\n ];\r\n }\r\n if(!this.state.data){ \r\n return \r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default EventPackages;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { FormFeedback,Button, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Input, Label } from 'reactstrap';\r\nimport { Validators } from '../util/EntityValidators';\r\nimport _ from \"underscore\";\r\nimport EntityTable from \"../components/EntityTables/EntityTable\";\r\nimport Routes from '../app/Routes';\r\nimport PanelModal from '../components/PanelModal';\r\nimport ActiveEditField from '../components/ActiveEditField';\r\n\r\nclass Products extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.entity = EM.products;\r\n this.state = {\r\n pageLoad: true,\r\n showPriceChange: false,\r\n priceValidationMessage: '',\r\n priceInvalid: false,\r\n companyProduct:{\r\n companyId:\"0\",\r\n price:'',\r\n productId:null,\r\n visible:true\r\n }\r\n };\r\n this.CompaniesList = this.CompaniesList.bind(this);\r\n this.onCompanyChanged = this.onCompanyChanged.bind(this);\r\n }\r\n\r\n getProducts(){ \r\n this.entity.executeGet(null, null, Routes.clientApi.products, { companyId: this.state.companyProduct.companyId }, true);\r\n }\r\n async componentDidMount() {\r\n let company = EM.getDefaultCompany();\r\n \r\n if(!EM.isSuperAdmin() && company && company.companyId> 0){ \r\n await this.setState({companyProduct:{...this.state.companyProduct,companyId:company.companyId+\"\"}})\r\n }\r\n this.getProducts();\r\n EM.companies.load(true);\r\n }\r\n\r\n getColumns() {\r\n let superAdmin = EM.isSuperAdmin() ===true;\r\n return [\r\n {\r\n dataField: \"name\",\r\n text: 'Name',\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"unit\",\r\n text: 'Units',\r\n // hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required,Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"description\",\r\n text: 'Description',\r\n editable:superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"code\",\r\n text: 'Code',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"price\",\r\n text: \"Price\",\r\n editable: superAdmin && this.state.companyProduct.companyId === '0',\r\n validators: [Validators.required, Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"productUrl\",\r\n text: 'Product Url',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"shipping\",\r\n text: 'Shipping',\r\n editable: superAdmin,\r\n validators: [Validators.required, Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"type\",\r\n text: 'Type',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"order\",\r\n text: 'Order',\r\n hideInTable:!superAdmin,\r\n editable: superAdmin,\r\n validators: [Validators.required, Validators.numberOnly],\r\n filterOptions: {\r\n text: true,\r\n },\r\n },\r\n {\r\n dataField: \"visible\",\r\n text: 'Visible in App',\r\n hideInTable:superAdmin===true,\r\n editable:!superAdmin && this.state.companyProduct.companyId === '0',\r\n creatable: this.state.companyProduct.companyId === '0',\r\n asActive: true \r\n },\r\n {\r\n dataField: \"active\",\r\n text: 'Active',\r\n hideInTable:superAdmin !==true,\r\n editable:superAdmin ===true,\r\n creatable: false,\r\n asActive: true \r\n },\r\n {\r\n dataField: \"actions\",\r\n text: \"Actions\",\r\n hidden: this.state.companyProduct.companyId === '0',\r\n classes: this.state.companyProduct.companyId === '0' ? 'hidden':'',\r\n headerClasses : this.state.companyProduct.companyId === '0' ? 'hidden':'',\r\n creatable: false,\r\n formatter: (cell, row) => {\r\n return \r\n }\r\n }\r\n ];\r\n }\r\n\r\n onCompanyChanged(event) {\r\n const self = this;\r\n let companyProduct = Object.assign({}, self.state.companyProduct);\r\n companyProduct.companyId = event.target.value;\r\n self.setState({companyProduct},()=>{\r\n self.getProducts();\r\n });\r\n \r\n }\r\n\r\n CompaniesList() {\r\n return (
\r\n { this.onCompanyChanged(event) }}>\r\n EM.isSuperAdmin()\r\n ? ()\r\n :null\r\n {\r\n _.map(EM.companies.get(), (company, index) => {\r\n return ();\r\n })\r\n }\r\n
);\r\n\r\n }\r\n\r\n showChangeCompanyPrice(row) {\r\n let companyProduct = Object.assign({},this.state.companyProduct,{productId:row.productId,price:row.price,visible:row.visible});\r\n this.setState({ showPriceChange: true,companyProduct});\r\n }\r\n\r\n onCompanyPriceChange(event) {\r\n let companyProduct = Object.assign({},this.state.companyProduct,{price:event.target.value});\r\n this.setState({ companyProduct});\r\n }\r\n\r\n onCompanyVisibleChange(value) {\r\n let companyProduct = Object.assign({},this.state.companyProduct,{visible:value});\r\n this.setState({ companyProduct});\r\n }\r\n\r\n async updateCompanyPrice() {\r\n const self = this;\r\n var notValid = Validators.numberOnly(this.state.companyProduct.price);\r\n if (notValid) {\r\n this.setState({ priceValidationMessage: notValid, priceInvalid: true });\r\n return;\r\n }\r\n\r\n let companyProduct = Object.assign({},self.state.companyProduct);\r\n\r\n EM.companyProducts.executePut(companyProduct,null,Routes.clientApi.companyProduct, null,true).then((data)=>{ \r\n companyProduct = Object.assign({},self.state.companyProduct,{productId:null,price:''});\r\n this.setState({priceInvalid:false,priceValidationMessage:'',companyProduct,showPriceChange:false});\r\n self.getProducts();\r\n });\r\n\r\n this.setState({priceInvalid:false,priceValidationMessage:''});\r\n\r\n }\r\n\r\n render() {\r\n let columns = [];\r\n let data = [];\r\n if (EM.allLoaded(this.entity, EM.companies)) {\r\n data = this.entity.get();\r\n if(EM.isSuperAdmin()!==true)\r\n {\r\n data = _.filter([...data],(item)=>{return item.active === true});\r\n }\r\n columns = this.getColumns();\r\n }\r\n return (\r\n
\r\n {\r\n this.data = this.entity.get();\r\n }}\r\n />\r\n\r\n \r\n Change Product Price for Company\r\n \r\n
\r\n \r\n \r\n { this.onCompanyPriceChange(evt); }} />\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n { this.onCompanyVisibleChange(evt); }} defaultValue={this.state.companyProduct.visible} />\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Products;\r\n","/* global EM */\r\nimport React, { Component } from \"react\";\r\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\r\nimport Routes from \"./Routes\";\r\nimport { withRouter, matchPath } from \"react-router\";\r\nimport { connect } from \"react-redux\";\r\nimport Header from \"../components/Header.js\";\r\nimport Home from \"../pages/Home\";\r\nimport NoOrderUsers from \"../pages/NoOrderUsers\";\r\nimport UserNoOrder from \"../pages/UserNoOrder\";\r\nimport PackagesSale from \"../pages/PackagesSale\";\r\nimport CompletedOrders from \"../pages/CompletedOrders\";\r\nimport UserCompletedOrders from \"../pages/UserCompletedOrders\";\r\nimport TotalInCompleteOrders from \"../pages/TotalInCompleteOrders\";\r\nimport UserInCompleteOrders from \"../pages/UserInCompleteOrders\";\r\nimport FutureEvents from \"../pages/FutureEvents\";\r\nimport Companies from \"../pages/Companies\";\r\nimport EventGroups from \"../pages/EventGroups\";\r\nimport Locations from \"../pages/Locations\";\r\nimport Intervals from \"../pages/Intervals\";\r\nimport Compaigns from \"../pages/Compaigns\";\r\nimport Statistics from \"../pages/Statistics\";\r\nimport Events from \"../pages/Events\";\r\nimport Users from '../pages/Users';\r\nimport Booking from '../pages/Booking';\r\nimport UserDetails from \"../pages/UserDetails\";\r\nimport FetchIndicator from \"../components/FetchIndicator\";\r\nimport ErrorIndicator from \"../components/ErrorIndicator\";\r\nimport TemporaryStatusMessage from \"../components/TemporaryStatusMessage\";\r\nimport CompanyConfig from '../pages/CompanyConfig';\r\nimport OrderFullfillment from \"../pages/OrderFullfillment\";\r\nimport Presets from \"../pages/Presets\";\r\nimport Export from \"../pages/Export\";\r\nimport Calendar from \"../pages/Calendar\";\r\nimport UserScheduler from \"../pages/UserScheduler\";\r\nimport RescheduleAppointment from \"../pages/RescheduleAppointment\";\r\nimport RescheduleAppointmentBooking from \"../pages/RescheduleAppointmentBooking\";\r\nimport CompleteOrder from \"../pages/CompleteOrder\";\r\nimport Downloads from '../pages/Downloads';\r\nimport Sales from \"../pages/Sales\";\r\nimport _ from 'underscore';\r\nimport EventPackages from \"../pages/EventPackages\";\r\nimport GroupUsers from \"../pages/GroupUsers\";\r\nimport Products from '../pages/Products';\r\n\r\nconst HeaderComp = withRouter(Header);\r\nconst HomePage = withRouter(Home);\r\nconst FutureEventsPage = withRouter(FutureEvents);\r\nconst NoOrderUsersPage = withRouter(NoOrderUsers);\r\nconst UserNoOrderPage = withRouter(UserNoOrder);\r\nconst PackagesSalePage = withRouter(PackagesSale);\r\nconst CompletedOrdersPage = withRouter(CompletedOrders);\r\nconst UserCompletedOrdersPage = withRouter(UserCompletedOrders);\r\nconst TotalInCompleteOrdersPage = withRouter(TotalInCompleteOrders);\r\nconst UserInCompleteOrdersPage = withRouter(UserInCompleteOrders);\r\nconst CompaniesPage = withRouter(Companies);\r\nconst EventGroupsPage = withRouter(EventGroups);\r\nconst GroupUsersPage = withRouter(GroupUsers);\r\n\r\nconst ProductsPage = withRouter(Products);\r\nconst LocationsPage = withRouter(Locations);\r\nconst EventsPage = withRouter(Events);\r\nconst UsersPage = withRouter(Users);\r\nconst UserDetailsPage = withRouter(UserDetails);\r\n\r\nconst IntervalsPage = withRouter(Intervals);\r\nconst CompaignsPage = withRouter(Compaigns);\r\nconst StatisticsPage = withRouter(Statistics);\r\nconst EventPackagesPage = withRouter(EventPackages);\r\nconst OrderFullfillmentPage = withRouter(OrderFullfillment);\r\nconst PresetsPage = withRouter(Presets);\r\nconst BookingPage = withRouter(Booking);\r\nconst CompanyConfigPage = withRouter(CompanyConfig);\r\nconst ExportPage = withRouter(Export);\r\nconst CalendarPage = withRouter(Calendar);\r\nconst UserSchedulerPage = withRouter(UserScheduler);\r\nconst RescheduleAppointmentPage = withRouter(RescheduleAppointment);\r\nconst RescheduleAppointmentBookingPage = withRouter(RescheduleAppointmentBooking);\r\nconst CompleteOrderPage = withRouter(CompleteOrder);\r\nconst DownloadsPage = withRouter(Downloads);\r\nconst SalesPage = withRouter(Sales);\r\n\r\nconst withAuthorize = roles => Component => props => {\r\n let authorized = false;\r\n _.each(roles, (role) => {\r\n let account = EM.account.get();\r\n let roleDetail = _.findWhere(EM.roles, { name: role });\r\n if (roleDetail && roleDetail.id > 0 && account.roleId === roleDetail.id)\r\n authorized = authorized || true;\r\n });\r\n return authorized ? Component :
You are not authorized to view this page!
;\r\n};\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n allowAnonymous: props.allowAnonymous\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n \r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n )}\r\n /> :null\r\n\r\n )}\r\n /> :null\r\n )}\r\n /> :null\r\n )}\r\n /> :null\r\n )}\r\n />\r\n }\r\n />\r\n )}\r\n />\r\n }\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n {\r\n return ();\r\n }}\r\n />\r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n {\r\n return ();\r\n }}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return {\r\n allowAnonymous: ownProps.allowAnonymous,\r\n account: state.account,\r\n activities: state.activities,\r\n complexities: state.complexities,\r\n complexityLookup: state.complexityLookup,\r\n departments: state.departments,\r\n domain: state.domain,\r\n domainState: state.domainState,\r\n error: state.error,\r\n fetching: state.fetching,\r\n organizations: state.organizations,\r\n roles: state.roles,\r\n files: state.files,\r\n notes: state.notes,\r\n notifications: state.notifications,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(App);\r\n","/* global EM */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport _ from \"underscore\";\r\nimport Routes from \"../app/Routes\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport ToolkitProvider, { Search } from \"react-bootstrap-table2-toolkit\";\r\nimport {Input} from 'reactstrap'\r\nexport default function GroupUsers(props) {\r\n const { SearchBar } = Search;\r\n let user = EM.account.get();\r\n let company = _.findWhere(user.userCompanies, { defaultCompany: true });\r\n let eventGroupId = props.match.params.eventGroupId;\r\n const initialState = {\r\n parentRecordDetail: { companyId: company.companyId, eventGroupId },\r\n eventGroupId: eventGroupId,\r\n location: false,\r\n isSuperAdmin: EM.isSuperAdmin(),\r\n users: [],\r\n eventUsers:[],\r\n selectedUserIds: [],\r\n selectedEventUserIds: [],\r\n filterOptions:[\r\n 'Company',\r\n 'Event',\r\n 'Group'\r\n ],\r\n SelectfilterOptions:'Company'\r\n };\r\n const [state, setState] = useState(initialState);\r\n const entity = EM.groupUsers;\r\n const getTitle = () => {\r\n return `Users ${state.location.name ? \"for \" + state.location.name : \"\"}`;\r\n };\r\n const loadData = async () => {\r\n EM.groupUsers.clear();\r\n await entity.loadEntityByParent(state.parentRecordDetail);\r\n let body = {\r\n companyId:\r\n EM.isSuperAdmin() !== true && company\r\n ? company.companyId\r\n : company.companyId,\r\n userTypeId: !EM.isSuperAdmin() && !EM.isAdmin() ? 1 : null,\r\n };\r\n let commonUserIds\r\n await EM.users\r\n .executePost(body, {}, Routes.clientApi.userSearch, {}, true)\r\n .then((data) => {\r\n let transformedArray = EM.users\r\n .get()\r\n .filter((item) => item.firstName !== null)\r\n\r\n commonUserIds = EM.users\r\n .get()\r\n .map((item) => item.userId) \r\n .filter((userId) =>\r\n entity.get().some((item) => item.userId === userId)\r\n );\r\n \r\n if (commonUserIds) {\r\n transformedArray = transformedArray.map((item) => ({\r\n ...item,\r\n assigned: commonUserIds.includes(item.userId) ? 'a' : 'z',\r\n }));\r\n }\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: commonUserIds,\r\n users: transformedArray,\r\n }));\r\n \r\n \r\n });\r\n await EM.eventGroups\r\n .loadEntityByParent({ companyId: EM.getDefaultCompany().companyId }, true)\r\n .then(async(result) => {\r\n \r\n if (EM.eventGroups.get(true).length === 0) {\r\n props.history.push(Routes.compose(Routes.client.eventGroups));\r\n }\r\n let location = _.findWhere(EM.eventGroups.get(true), {\r\n eventGroupId: Number(eventGroupId),\r\n });\r\n\r\n if(location===undefined){\r\n props.history.push(Routes.compose(Routes.client.eventGroups));\r\n return\r\n } else {\r\n await EM.eventGroups.executeGet(null, null, Routes.clientApi.eventUsers, { locationId: location.locationId }).then(async(result) => {\r\n \r\n let transformedArray = result\r\n .filter((item) => item.firstName !== null)\r\n\r\n const commonEventUserIds = result\r\n .map((item) => item.userId) \r\n .filter((userId) =>\r\n entity.get().some((item) => item.userId === userId)\r\n );\r\n \r\n if (commonEventUserIds) {\r\n transformedArray = transformedArray.map((item) => ({\r\n ...item,\r\n assigned: commonEventUserIds.includes(item.userId) ? 'a' : 'z',\r\n }));\r\n }\r\n // console.log(state.selectedUserIds)\r\n // const newArray = commonUserIds; // Create a copy of the existing array\r\n // console.log(newArray)\r\n // newArray.push(...commonEventUserIds);\r\n // console.log(newArray)\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: commonEventUserIds,\r\n eventUsers: transformedArray,\r\n }));\r\n }) \r\n setState((prevState) => ({\r\n ...prevState,\r\n location: location,\r\n }));\r\n }\r\n });\r\n \r\n };\r\n const assignUsers = () => {\r\n const { selectedUserIds, eventGroupId,selectedEventUserIds,SelectfilterOptions } = state;\r\n\r\n let body = {\r\n userIds: SelectfilterOptions==='Event'?selectedEventUserIds:selectedUserIds,\r\n eventGroupId: eventGroupId,\r\n };\r\n EM.groupUsers\r\n .executePost(body, {}, Routes.clientApi.assignGroupUsers)\r\n .then((data) => {\r\n console.log(data);\r\n console.log(EM.groupUsers.get());\r\n loadData()\r\n });\r\n };\r\n const onSelect = (row, isSelect, rowIndex, e) => {\r\n const {SelectfilterOptions} = state\r\n const selectedUsers = (state.SelectfilterOptions==='Event')?state.selectedEventUserIds:state.selectedUserIds\r\n if (isSelect === true) {\r\n if (!selectedUsers.includes(row.userId)) {\r\n if(SelectfilterOptions==='Event'){\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: [\r\n ...prevState.selectedEventUserIds,\r\n row.userId,\r\n ],\r\n }));\r\n } else {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: [\r\n ...prevState.selectedUserIds,\r\n row.userId,\r\n ],\r\n }));\r\n }\r\n \r\n }\r\n }\r\n\r\n if (isSelect === false) {\r\n if (selectedUsers.includes(row.userId)) {\r\n if(SelectfilterOptions==='Event'){\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: prevState.selectedEventUserIds.filter(\r\n (item) => item !== row.userId\r\n ),\r\n }));\r\n } else {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: prevState.selectedUserIds.filter(\r\n (item) => item !== row.userId\r\n ),\r\n }));\r\n }\r\n }\r\n }\r\n }\r\n const onSelectAll= (isSelect, rows, e) => {\r\n if (isSelect === false) {\r\n if(state.SelectfilterOptions==='Event')\r\n {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: []\r\n }));\r\n } else {\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: []\r\n }));\r\n }\r\n \r\n } else {\r\n let userIds=[]\r\n if(state.SelectfilterOptions==='Event')\r\n {\r\n userIds = state.eventUsers.map((obj) => obj.userId);\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedEventUserIds: userIds\r\n }));\r\n }else{\r\n userIds = state.users.map((obj) => obj.userId);\r\n setState((prevState) => ({\r\n ...prevState,\r\n selectedUserIds: userIds\r\n }));\r\n }\r\n \r\n }\r\n // ...\r\n }\r\n useEffect(() => {\r\n loadData();\r\n return () => {\r\n // Cleanup logic\r\n };\r\n }, []);\r\n\r\n let columns = [];\r\n let data = [];\r\n\r\n columns = [\r\n {\r\n dataField: \"assigned\",\r\n text: \"assigned\",\r\n sort:true,\r\n hidden: true\r\n },\r\n {\r\n dataField: \"firstName\",\r\n text: \"First Name\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"lastName\",\r\n text: \"Last Name\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"phoneNumber\",\r\n text: \"Phone Number\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"emailAddress\",\r\n text: \"Email\",\r\n editable: false,\r\n },\r\n {\r\n dataField: \"city\",\r\n text: \"City\",\r\n editable: false,\r\n },\r\n ];\r\n if (state.users.length && state.location) {\r\n if(state.SelectfilterOptions==='Company')\r\n {data = state.users;}\r\n if(state.SelectfilterOptions==='Event')\r\n {data = state.eventUsers;}\r\n if(state.SelectfilterOptions==='Group')\r\n {data = state.users.filter(\r\n (item) => item.assigned === 'a'\r\n );}\r\n }\r\n \r\n return (\r\n
\r\n \r\n {(props) => (\r\n
\r\n
\r\n

{`${getTitle()} ${\r\n state.companyName && state.isSuperAdmin\r\n ? `(${state.companyName})`\r\n : \"\"\r\n }`}

\r\n
\r\n
\r\n
\r\n { setState((prevState) => ({\r\n ...prevState,\r\n SelectfilterOptions: event.target.value,\r\n }))}}> \r\n {state.filterOptions &&\r\n _.map(state.filterOptions, (value, index) => {\r\n return ();\r\n })\r\n }\r\n \r\n
\r\n
\r\n assignUsers()}\r\n >\r\n \r\n Save\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n return EM.t(\"util.table.paginationTotal\", false, [\r\n from,\r\n to,\r\n size,\r\n ]);\r\n },\r\n })}\r\n selectRow={{\r\n // hideSelectAll: true,\r\n mode: \"checkbox\",\r\n bgColor: \"lightgreen\",\r\n selected: state.SelectfilterOptions==='Event'?state.selectedEventUserIds:state.selectedUserIds, // should be a row keys array\r\n onSelect: (row, isSelect, rowIndex, e) => {\r\n onSelect(row, isSelect, rowIndex, e)\r\n },\r\n onSelectAll: (isSelect, rows, e) => {\r\n onSelectAll(isSelect, rows, e)\r\n },\r\n }}\r\n {...props.baseProps}\r\n />\r\n
\r\n )}\r\n \r\n
\r\n );\r\n}\r\n","/* global EM */\r\nimport React, { Component } from 'react';\r\n\r\nexport default class ContactSupportButton extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n}\r\n","/* global EM */\r\n/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React, { Component } from 'react';\r\nimport PageTitle from '../components/PageTitle';\r\nimport { connect } from \"react-redux\";\r\nimport ContactSupportButton from './ContactSupportButton';\r\n\r\nclass ErrorBlock extends Component {\r\n render() { \r\n let error = this.props.error || { errorCode: 'general', message: 'Error' }; \r\n const msgKey = 'error.' + (error.errorCode || error.name);\r\n let message = EM.t(msgKey, true);\r\n if (!message)message = error.message;\r\n\r\n let title = EM.t('error.title', true);\r\n if (!title)title = 'Error';\r\n\r\n let isAccountError = error.errorCode?error.errorCode.startsWith('account'):false;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {isAccountError ? \r\n \r\n : null }\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return {\r\n error: state.error\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ErrorBlock);\r\n","/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React, { Component } from 'react';\r\nimport PageTitle from './PageTitle';\r\n\r\nexport default class LoginBlockNaive extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

Please click the button below, and you will be taken to the login page.

\r\n \r\n

\r\n If you're seeing this screen repeatedly, please verify that you have \"Allowed Popups\" for this site in your browser's settings.\r\n

\r\n

\r\n If you experience issues logging in, this.props.authenticator.logout()}>please click here to log out of existing sessions before proceeding. \r\n If the issue persists, please submit a support ticket. \r\n

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nexport default class MetaInfo extends Component {\r\n render() {\r\n return (\r\n <>\r\n
\r\n
\r\n ©{new Date().getFullYear()} Intrinsic Clinical Systems\r\n
\r\n
\r\n Privacy Policy\r\n
\r\n
\r\n {process.env.REACT_APP_VERSION}\r\n
\r\n
\r\n {this.props.noTerms ? \r\n null \r\n : \r\n
\r\n
\r\n Use of this system is subject to Terms and Conditions.\r\n
\r\n
\r\n }\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react'\r\nimport Spinner from '../components/Spinner'\r\n\r\nconst Signup = ({loginError, loading, responseMessage,signUpFormValues, setSignUpFormValues,validate}) => {\r\n const handleFormValues = (e) => {\r\n const {name, value} = e.target\r\n setSignUpFormValues((prevState) => {\r\n return {...prevState, [name]: value}\r\n })\r\n }\r\n return (\r\n <>\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.firstName}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.lastName}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.name}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.emailAddress}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.address}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.address2}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.phone}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.city}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.state}\r\n />\r\n
\r\n
\r\n \r\n {\r\n handleFormValues(event)\r\n validate()\r\n }}\r\n value={signUpFormValues.zip}\r\n />\r\n
\r\n {loading && }\r\n
\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Signup\r\n","export default __webpack_public_path__ + \"static/media/companySignup.bcf81095.svg\";","/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React, { useState } from 'react'\r\nimport { Form, FormGroup, Label, Button, Card,CardBody,CardHeader} from 'reactstrap'\r\nimport { ValidationError } from 'xml2js'\r\n// import logo from '../images/logo.svg';\r\nimport MetaInfo from './MetaInfo'\r\nimport Authenticator from '../app/Authenticator'\r\nimport logo from '../assets/logo.svg'\r\nimport Spinner from '../components/Spinner'\r\nimport Signup from './SignUp'\r\nimport companyIcon from \"../assets/companySignup.svg\";\r\n\r\nexport default function LoginSelector(props) {\r\n let loginModes = props.instance.loginModes\r\n let showEnterprise = loginModes.indexOf('Enterprise') > -1\r\n const authenticator = new Authenticator(props.instance)\r\n const [signUpFormValues, setSignUpFormValues] = useState({\r\n firstName: '',\r\n lastName: '',\r\n name:'',\r\n emailAddress:'',\r\n address:'',\r\n address2:'',\r\n phone:'',\r\n city:'',\r\n state:'',\r\n zip:'',\r\n })\r\n const [currentPage, setCurrentPage] = useState('Login')\r\n const [email, setEmail] = useState('')\r\n const [loading, setloading] = useState(false)\r\n const [password, setPassword] = useState('')\r\n const [loginError, setLoginError] = useState('')\r\n const [responseMessage, setResponseMessage] = useState('')\r\n function validate() {\r\n setLoginError('')\r\n let valid = true\r\n // if(isForgetPassword===false) {\r\n if (currentPage === 'Login') {\r\n valid = email.trim().length > 0 && password.trim().length > 0\r\n if (email.trim().length === 0 || password.trim().length === 0)\r\n setLoginError('Email/Username and Password are required')\r\n } else if (currentPage === 'Forgot Password') {\r\n valid = email.trim().length > 0\r\n if (email.trim().length === 0) setLoginError('Email required')\r\n } else {\r\n Object.keys(signUpFormValues).forEach(key => {\r\n if (signUpFormValues[key].length === 0 && key !== \"address2\") {\r\n valid = false\r\n setLoginError('Please fill out all the fields')\r\n }\r\n })\r\n }\r\n\r\n return valid\r\n }\r\n const resetValidate = () => {\r\n setLoginError('')\r\n setResponseMessage('')\r\n }\r\n const handleSubmit = async () => {\r\n const isValid = validate()\r\n if (isValid === true) {\r\n setloading(true)\r\n // if(isForgetPassword===false) {\r\n if (currentPage === 'Login') {\r\n await authenticator\r\n .login({ email, password })\r\n .then(() => {\r\n window.localStorage.setItem('rm.login_mode', 'Enterprise')\r\n window.location.reload()\r\n })\r\n .catch((error) => {\r\n setLoginError(error.message)\r\n })\r\n setloading(false)\r\n // } else {\r\n } else if (currentPage === 'Forgot Password') {\r\n await authenticator\r\n .forgetPassword({ email })\r\n .then((data) => {\r\n setloading(false)\r\n setResponseMessage(\r\n 'New Password has been sent on your registered phone number.',\r\n )\r\n })\r\n .catch((error) => {\r\n setloading(false)\r\n setLoginError(error.message)\r\n })\r\n } else {\r\n try {\r\n const company = await authenticator.registerCompany(signUpFormValues)\r\n setloading(false)\r\n setResponseMessage(`User has been created successfully for your company ${company.name}. The Password has been sent to your mobile number`)\r\n setCurrentPage(\"Login\")\r\n } catch (error) {\r\n setloading(false)\r\n setLoginError(error.message) \r\n }\r\n // try {\r\n // const company = await authenticator.register(signUpFormValues)\r\n // setloading(false)\r\n // if(company) {\r\n // const fullName = company.name.split(' ')\r\n // const params = {\r\n // companyId:company.companyId,\r\n // firstName: fullName[0],\r\n // lastName: fullName.length > 1 ? fullName[1] : \"\",\r\n // emailAddress: company.emailAddress,\r\n // phoneNumber: company.phone,\r\n // userTypeId: 2,\r\n // roleId: 3,\r\n // }\r\n // await authenticator.createUser(params)\r\n // setResponseMessage(`User has been created successfully for your company ${company.name}. The Password has been sent to your mobile number`)\r\n // setCurrentPage(\"Login\")\r\n // }\r\n // } catch (error) {\r\n // setloading(false)\r\n // setLoginError(error.message)\r\n // }\r\n }\r\n }\r\n }\r\n\r\n // console.log(loginDetails);\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n © 2024 Flashop.\r\n
\r\n All rights reserved.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {currentPage === 'SignUp' ? (\r\n \r\n ) : (\r\n <>\r\n
\r\n \r\n {\r\n setEmail(event.target.value)\r\n validate()\r\n }}\r\n value={email}\r\n />\r\n
\r\n {currentPage === 'Login' && (\r\n
\r\n \r\n {\r\n setPassword(event.target.value)\r\n validate()\r\n }}\r\n value={password}\r\n />\r\n
\r\n )}\r\n {currentPage === 'Login' ? (\r\n
\r\n {\r\n setCurrentPage((prevState) => prevState === 'Login'? 'Forgot Password' : 'Login')\r\n resetValidate()\r\n }}\r\n >\r\n Forgot Password?\r\n \r\n
\r\n ): null}\r\n {loading && }\r\n
\r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n {showEnterprise ? (\r\n {\r\n handleSubmit()\r\n }}\r\n className=\"btn btn-primary pl-4 pr-4 w-100\"\r\n >\r\n {/* {!isForgetPassword ? 'LOGIN' : 'RESET PASSWORD'} */}\r\n {currentPage === 'Forgot Password' ? 'RESET PASSWORD' : currentPage.toUpperCase()}\r\n \r\n ) : null} \r\n
\r\n
Welcome to Flashop Cloud!
\r\n {currentPage === 'Login' ? (\r\n \r\n \r\n
\r\n
\r\n
Create a Company
\r\n

In the next steps, we will create your company & get you started

\r\n
\r\n \"\"/\r\n
\r\n \r\n
\r\n
\r\n ) :

{currentPage === 'Forgot Password'?'Back to ':'Already have an account?'}

\r\n {\r\n setCurrentPage((prevState) => prevState === 'SignUp' ? 'Login' : 'SignUp')\r\n resetValidate()\r\n }}\r\n >\r\n Login\r\n
}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","/* eslint jsx-a11y/anchor-is-valid: 0 */\r\nimport React from 'react';\r\n\r\nexport default function PreLoginError(props){ \r\n return (\r\n
\r\n

Error

\r\n

{props.error.message}

\r\n
\r\n \r\n
\r\n
\r\n );\r\n}","export function register(config) {\r\n if ('serviceWorker' in navigator) {\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/cache-control.js`;\r\n registerValidSW(swUrl);\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker.register(swUrl, { scope: \"./\" }).then(registration => {\r\n registration.onupdatefound = () => {};\r\n }).catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","/* eslint no-extend-native: 0 */\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport thunk from \"redux-thunk\";\r\nimport { createStore, applyMiddleware } from \"redux\";\r\nimport { Provider } from \"react-redux\";\r\nimport Authenticator from \"./app/Authenticator\";\r\nimport API from \"./app/API\";\r\nimport EntityManager from \"./entities/EntityManager\";\r\nimport reducers from \"./entities/reducers\";\r\nimport App from \"./app/App\";\r\nimport Routes from \"./app/Routes\";\r\nimport ErrorBlock from \"./components/ErrorBlock\";\r\nimport LoginBlock from \"./components/LoginBlock\";\r\nimport LoginSelector from \"./components/LoginSelector\";\r\nimport LoggingInNotice from \"./components/LoggingInNotice\";\r\nimport PreLoginError from \"./components/PreLoginError\";\r\nimport Common from \"./util/Common\";\r\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\r\nimport \"react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css\";\r\nimport \"./style/index.scss\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\n(async function () {\r\n Common.registerGlobal();\r\n serviceWorker.register();\r\n let instance = { key: null, loginModes: [\"Enterprise\"] };\r\n let loginMode = window.localStorage.getItem(\"rm.login_mode\");\r\n let loginRequired = window.location.href.toLocaleLowerCase().indexOf('booking') < 0 && window.location.href.toLocaleLowerCase().indexOf('completeorder') <0 && window.location.href.toLocaleLowerCase().indexOf('rescheduleappointmentbooking') <0; \r\n if(loginRequired ===false){\r\n login(loginMode, instance);\r\n }\r\n else if (!loginMode) {\r\n ReactDOM.render(\r\n {\r\n window.localStorage.setItem(\"rm.login_mode\", mode);\r\n login(mode, instance,credentials);\r\n }}\r\n />,\r\n document.getElementById(\"root\")\r\n );\r\n return;\r\n } else {\r\n login(loginMode, instance);\r\n }\r\n})();\r\n\r\nasync function login(loginMode, instance,credentials) {\r\n try {\r\n console.log(\"Login mode: \" + loginMode);\r\n const authenticator = new Authenticator(instance);\r\n if (authenticator.initialize) {\r\n await authenticator.initialize();\r\n }\r\n\r\n console.log(`Authenticated:${await authenticator.isAuthenticated()}`);\r\n let loginRequired = window.location.href.toLocaleLowerCase().indexOf('booking') < 0 && window.location.href.toLocaleLowerCase().indexOf('completeorder') && window.location.href.toLocaleLowerCase().indexOf('rescheduleappointmentbooking') < 0;\r\n if (loginRequired===false) {}\r\n else if (!(await authenticator.isAuthenticated())) {}\r\n\r\n if (\r\n authenticator.isCallback ||\r\n (window !== window.parent && !window.opener)\r\n ) {\r\n console.log(\"Silent request via iFrame completed.\");\r\n return;\r\n }\r\n\r\n initialize(authenticator, instance, loginMode,(!loginRequired));\r\n } catch (e) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n }\r\n}\r\n\r\nasync function initialize(authenticator, instance, loginMode,allowAnonymous) {\r\n const api = new API(authenticator, instance.key, loginMode);\r\n const store = createStore(\r\n reducers,\r\n applyMiddleware(thunk.withExtraArgument(api))\r\n );\r\n window.EM = new EntityManager(store, authenticator, api);\r\n var success = await window.EM.initialize(allowAnonymous);\r\n\r\n let component = null;\r\n if (success) {\r\n component = ;\r\n let qsObj = Routes.parseQuery();\r\n if (qsObj.code) {\r\n window.history.replaceState({}, document.title, \"/\");\r\n }\r\n } else {\r\n let state = store.getState();\r\n console.log(state.error)\r\n if (state.error) {\r\n if (\r\n state.error.errorCode === \"account:100\" ||\r\n state.error.errorCode === \"account:101\"\r\n ) {\r\n component = ;\r\n } else {\r\n component = ;\r\n }\r\n } else {\r\n component = ;\r\n }\r\n }\r\n\r\n ReactDOM.render(\r\n {component},\r\n document.getElementById(\"root\")\r\n );\r\n}\r\n","/* eslint no-cond-assign: 0 */\r\nimport saver from 'file-saver';\r\nimport _ from 'underscore';\r\n\r\nexport default {\r\n save: (filename, data) => {\r\n let csv_output = '';\r\n _.each(data, function (row) {\r\n let rowOutput = _.map(row, function (cell) {\r\n if (typeof cell !== \"undefined\" && cell != null) {\r\n return cell.toString().replace(/\"/g, '\"\"');\r\n } else {\r\n return '';\r\n }\r\n });\r\n csv_output += '\"' + rowOutput.join('\",\"') + '\"\\n';\r\n });\r\n\r\n saver.saveAs(new Blob([csv_output], { type: \"text/csv\" }), filename + '.csv');\r\n },\r\n\r\n fromString: (strData, strDelimiter) => {\r\n // Check to see if the delimiter is defined. If not,\r\n // then default to comma.\r\n strDelimiter = (strDelimiter || \",\");\r\n\r\n // Create a regular expression to parse the CSV values.\r\n var objPattern = new RegExp(\r\n (\r\n // Delimiters.\r\n \"(\\\\\" + strDelimiter + \"|\\\\r?\\\\n|\\\\r|^)\" +\r\n\r\n // Quoted fields.\r\n \"(?:\\\"([^\\\"]*(?:\\\"\\\"[^\\\"]*)*)\\\"|\" +\r\n\r\n // Standard fields.\r\n \"([^\\\"\\\\\" + strDelimiter + \"\\\\r\\\\n]*))\"\r\n ),\r\n \"gi\"\r\n );\r\n\r\n // Create an array to hold our data. Give the array\r\n // a default empty first row.\r\n var arrData = [[]];\r\n\r\n // Create an array to hold our individual pattern\r\n // matching groups.\r\n var arrMatches = null;\r\n\r\n // Keep looping over the regular expression matches\r\n // until we can no longer find a match.\r\n while (arrMatches = objPattern.exec(strData)) {\r\n\r\n // Get the delimiter that was found.\r\n var strMatchedDelimiter = arrMatches[1];\r\n\r\n // Check to see if the given delimiter has a length\r\n // (is not the start of string) and if it matches\r\n // field delimiter. If id does not, then we know\r\n // that this delimiter is a row delimiter.\r\n if (\r\n strMatchedDelimiter.length &&\r\n strMatchedDelimiter !== strDelimiter\r\n ) {\r\n\r\n // Since we have reached a new row of data,\r\n // add an empty row to our data array.\r\n arrData.push([]);\r\n\r\n }\r\n\r\n var strMatchedValue;\r\n\r\n // Now that we have our delimiter out of the way,\r\n // let's check to see which kind of value we\r\n // captured (quoted or unquoted).\r\n if (arrMatches[2]) {\r\n // We found a quoted value. When we capture\r\n // this value, unescape any double quotes.\r\n strMatchedValue = arrMatches[2].replace(new RegExp(\"\\\"\\\"\", \"g\"), \"\\\"\");\r\n\r\n if (strMatchedValue === 'undefined') {\r\n strMatchedValue = '';\r\n }\r\n } else {\r\n // We found a non-quoted value.\r\n strMatchedValue = arrMatches[3];\r\n }\r\n\r\n // Now that we have our value string, let's add\r\n // it to the data array.\r\n arrData[arrData.length - 1].push(strMatchedValue);\r\n }\r\n\r\n //Remove blank rows\r\n let outputArray = [];\r\n arrData.forEach((row) => {\r\n if (row.join('') === '')return;\r\n outputArray.push(row);\r\n });\r\n \r\n // Return the parsed data.\r\n return (outputArray);\r\n }\r\n}\r\n"],"sourceRoot":""}