{"version":3,"sources":["constants.ts","utils/memory-storage.ts","utils/cookie-storage.ts","utils/storage-strategy.ts","utils/helpers.ts","utils/api-client.ts","setup.service.ts","conversation.service.tsx","reducer.ts","actions.ts","io.ts","utils/context.service.ts","AppContext.tsx","Styles.tsx","utils/utils.service.ts","widget-container/widget-toggle.tsx","assets/images/bots-28.svg","utils/color-set.ts","widget-container/widget-header/widget-header.tsx","widget-container/widget-footer/SendButtonIcon.tsx","widget-container/constants.ts","widget-container/widget-footer/date-input/date-input.tsx","widget-container/widget-footer/datetime-input/datetime-input.tsx","widget-container/widget-footer/time-input/time-input.tsx","widget-container/common-components/chat-button/chat-button.tsx","widget-container/widget-footer/select-list.tsx","widget-container/widget-modal/widget-modal.tsx","widget-container/widget-body/widget-message/message-helpers/interaction-multi-select/interaction-multi-select.tsx","widget-container/widget-footer/text-input.tsx","widget-container/widget-footer/phone-input/phone-input.tsx","widget-container/widget-footer/email-input/email-input.tsx","widget-container/widget-footer/widget-footer.tsx","assets/images/bots.svg","widget-container/widget-body/widget-message/action-interactions/end-conversation/end-conversation.tsx","widget-container/widget-body/widget-message/message-helpers/interaction-single-select/interaction-single-select.tsx","widget-container/widget-body/widget-message/message-helpers/text-message/text-message.tsx","widget-container/widget-body/widget-message/message-helpers/video-message/video-message.tsx","assets/images/play-button.png","widget-container/widget-body/widget-message/message-helpers/image-message/image-message.tsx","assets/images/document-icon.svg","widget-container/widget-body/widget-message/message-helpers/document-message/document-message.tsx","assets/images/url-default.svg","widget-container/widget-body/widget-message/message-helpers/url-message/url-message.tsx","utils/timezone.service.ts","widget-container/common-components/select-list-with-filter/select-list-with-filter.tsx","widget-container/common-components/select-list-with-filter/select-option.ts","widget-container/common-components/timezone-popup/timezone-popup.tsx","assets/images/no_Times.svg","assets/images/Error_icon.svg","assets/images/double_booking_icon.svg","widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type.ts","widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.service.ts","widget-container/common-components/loader/loader.tsx","widget-container/widget-body/widget-message/action-interactions/schedule-action/schedule-action.tsx","widget-container/widget-body/widget-message/action-interactions/require-consent/require-consent.tsx","widget-container/widget-body/widget-message/action-interactions/require-consent/consent-buttons.tsx","widget-container/widget-body/widget-message/question-interactions/timezone-question/timezone-question.tsx","utils/timeago.ts","widget-container/widget-body/widget-message/chat-timestamp/chat-timestamp.tsx","widget-container/widget-body/widget-message/action-interactions/deny-consent/view-again-button.tsx","widget-container/widget-body/widget-message/action-interactions/deny-consent/deny-consent.tsx","widget-container/widget-body/widget-message/widget-message.tsx","widget-container/widget-body/widget-body.tsx","widget-container/widget-notification/notification-message/notification-message.tsx","widget-container/widget-notification/widget-notification.tsx","widget-container/widget.tsx","App.tsx","registerServiceWorker.ts","index.tsx","assets/timezoneConfig.js"],"names":["ConversationState","NotificationStyle","CONTACT_COOKIE_HEADER_KEY","SESSION_COOKIE_HEADER_KEY","ANALYTIC_COOKIE_HEADER_KEY","MemoryStorage","this","currentSession","storageData","analyticCookie","getAnalytics","sessionCookie","value","currentContact","contactCookie","currentAnalytics","analyticsSetting","CookieStorage","storage","window","parent","postMessage","type","values","name","expiry","expires","same_site","path","cookiesValues","push","StorageStrategy","strategy","createGuid","_p8","s","p","Math","random","toString","substr","ApiClient","url","options","client","updateOptions","credentials","httpVerb","fetchOptions","method","headers","body","JSON","stringify","fetch","updatedOptions","setupWidget","a","getStrategy","chSessionId","preview","getSession","chContactId","getContact","chAnalytics","post","process","pageUrl","pageTitle","websiteId","botId","response","json","success","sessionId","sessionCookieData","parse","get","e","contactCookieData","analyticCookieData","setValues","status","data","bot_id","isFirstTime","is_first_time","conversationState","conversation_state","showClosedWidgetInteractions","show_closed_widget_interactions","welcomeDisplayStyle","welcome_display_style","settings","getWebsiteSetting","session_timeout","oncehubBrandingUrl","branding_url","showPromotionalMessage","show_promotional_message","id","botName","bot_name","companyName","company_name","colour","textColour","text_colour","shape","widgetIcon","widget_icon","botIcon","bot_icon","fetchConverasation","page","Error","total","pageSize","response_interactions","map","item","log_id","reverse","welcomeInteractions","i","length","message","sent_by","is_read","parseInt","SocketStatus","reducer","state","action","startedAt","socket","messageFailed","messages","Date","now","Restarting","CONNECTED","CONNECTING","DISCONNECTED","Active","open","Initialised","interaction","interaction_type","action_type","schedule_status","schedule_fallback_message","schedule_confirm_data","Finished","bot","hasCloseNotifications","time_zone_id","timezoneId","messageIds","Set","nextMessages","has","filter","getWebsiteId","currentInteractionId","interactionId","external_id","randomId","createActions","dispatch","getState","lastAnswer","retryAnswerTimeout","nextMessageAt","ping","finished","connect","URL","io","protocol","host","pathname","transports","connectSocket","on","then","addNextMessage","interaction_time","toISOString","text","error","setTimeout","endConversation","max","clearTimeout","answer_id","ms","time","payload","eventId","website_id","current_interaction_id","session","done","sessionSocket","emit","close","send","connected","nextInteraction","answer","content","finishConversation","updateTimezone","closeWidget","openWidget","interactionSeen","restart","resendLastMessage","scheduleResponse","closeNotifications","cleanDoubleBookingError","heartbeat","timeout","loadPage","nextPage","ceil","Context","constructor","instance","AppContext","React","createContext","notificationStyle","NotificationBadgeWithWelcomeInteraction","ConversationContext","SocketServiceContext","add","remove","Promise","all","conversation","AppContextProvider","children","setInstance","useReducer","useEffect","cancelled","fetchData","widgetLoadingFinished","appContext","useMemo","conversationContext","socketService","stateRef","useRef","current","ref","useSocketService","Provider","className","style","Styles","useContext","color","textColor","memo","test","navigator","userAgent","cookieEnabled","document","cookie","disabled","indexOf","IS_MOBILE","SHORT_DAY_NAMES","MONTH_NAMES","SHORT_MONTH_NAMES","WidgetToggle","count","actions","data-testid","onClick","xmlns","width","height","fill","fillRule","stroke","d","ColorSet","WidgetHeader","alt","src","botImg","SendButton","active","viewBox","version","strokeWidth","transform","points","strokeLinecap","VADLIDATION_MESSAGES","dateFormatError","futureDateError","DEFAULT_TIMEZONE_ID","EMAILREGEXPATTERN","DATE_MASK","DATE_REGEX","DateInput","Component","maskedInputRef","createRef","pipe","config","setValidation","props","date","substring","month","year","getFullYear","getMonth","getDate","allowOnlyFutureDate","getTime","onChange","keydown","event","keyCode","onSubmit","componentDidUpdate","inputElement","focus","render","mask","placeholder","keepCharPositions","autoComplete","autoCorrect","guide","placeholderChar","onKeyDown","DATETIME_MASK","DATE_TIME_REGEX","DatetimeInput","toUpperCase","hours","minutes","am","setHours","setMinutes","TIME_MASK","TIME_REGEX","TimeInput","ChatButton","title","classNames","clickHandler","isDisabled","SelectList","useState","setHeight","el","querySelector","parentElement","updateHeight","clientHeight","addEventListener","removeEventListener","useListHeight","setFilter","regex","RegExp","filteredOptions","items","option_text","selected","setSelected","onOptionClick","single","onSelect","selectedItem","container","listener","target","contains","input","HTMLInputElement","chatContainer","createPortal","maxHeight","key","checked","currentTarget","WidgetModal","closeModal","show","modalMessage","optionMessage","errorMessage","min","InteractionMultiSelect","setError","option","datatype","toggle","Boolean","selection","TextInput","textarea","heightDiv","innerText","endsWith","trim","clientWidth","shiftKey","preventDefault","tabIndex","contentEditable","COUNTRY_OPTIONS","Object","keys","COUNTRY","PhoneInput","question","welcomePhoneQuestion","onError","visitorCountry","country","visitorCountryObject","getDefaultCountry","visitorCountryCode","getCountryCallingCode","countryList","setCountryList","setCountry","setValue","invalid","setInvalid","selectCountry","useCallback","code","inputEl","selectionStart","selectionEnd","formatter","AsYouType","formattedInput","phoneNumber","getNumber","isValid","sort","x","y","EmailInput","emailInput","findActiveQuestion","SelectInput","sendAnswer","selectProps","question_type","interaction_options","interaction_option_id","multi_choice_minimum","multi_choice_maximum","option_order","join","multi_interaction_options_answer_ids","multi_choice_type","createElement","Input","openSelectList","questionId","readOnly","require_in_future","changeValue","checkValidation","questionType","errorMsg","phone","validatePhone","WidgetFooter","connecting","openEmoji","setState","updateState","next","showValidationMessage","welcomeMessage","welcomeQuestion","emojiDisabled","isEmojiDisabled","selectBox","editableBox","validationOption","selectList","hidden","border","SendButtonIcon","native","perLine","showPreview","emoji","EndConversation","InteractionSingleSelect","TextMessageComponent","messageId","VideoMessage","parameters","super","isFullScreen","isOpen","isPaused","autoPlay","playerRef","togglePlay","hasPlayerRef","video","play","pause","componentDidMount","currentTime","mute","subscribeToStateChange","handleFullScreen","bind","prevState","isFullscreen","renderTitleBox","videoTitle","description","muted","showBotName","playsInline","videoUrl","mp4","ogg","disableDefaultControls","ImageMessage","imageRef","theme","arrow","backgroundColor","opacity","transition","arrow__direction__left","marginLeft","arrow__direction__right","marginRight","arrow__size__medium","borderRadius","marginTop","padding","background","footer","footerCount","toggleLightbox","setAttribute","top","renderLightbox","images","imageUrl","caption","imageTitle","onClose","showImageCount","isNotificationInteraction","undefined","DocumentMessage","fileName","documentUrl","split","pop","decodeURIComponent","href","rel","download","appendChild","click","removeChild","DocumentIcon","MessageUrl","openLink","urlProps","display","urlDefaultImage","hostname","extractHostName","TimezoneService","convertNumberToMinutes","numberString","convertOffsetToDisplayString","offset","hrs","mins","offsetMinute","getFullTimezoneString","hasDST","region","offsetString","getTimezoneStringByTimezoneId","tzId","timezone","TIMEZONES","tzString","timezoneObj","getTimezoneSettings","Country","Region","getSelectOptionRegionString","hasDst","TimeZone","HasDayLightSavings","eachDST","startTimeMili","endTimeMili","getOffsetAndDST","timeNow","timeZoneData","tzOffset","activeDST","find","DST","Number","getRegionData","TimeZones","tz","displayOrder","DisplayOrder","Id","shortName","ShortName","countryName","regionWithGMTAndDST","getTimezoneData","tzData","allCountriesString","regions","b","topCountriesString","TOP_COUNTRIES_IDS","reduce","prevArr","countryId","allCountriesData","topCountriesData","SelectListWithFilter","inputRef","customUlRef","customSelectDivRef","dropDownToggler","ulElm","selectedElm","scrollIntoView","customOuterDivElm","windowHeight","innerHeight","customOuterDimensions","getBoundingClientRect","lowerSectionHeight","parentDiv","classList","onCustomOptionClick","index","customSelectConfig","onOptionChange","optionValue","selectItems","forEach","optionText","filterItems","allOptions","placeholderText","selectedOptionText","showValidation","validationMessage","hasSelection","SelectListOption","params","TimezonePopup","tempSelectedCountry","tempSelectedRegionDetail","tempRegionList","dropdownCountryWithRegionList","dropdownRegionList","seperatorOption","selectOptionsForCountryList","selectOptionsForRegionList","placeholderTextForRegionsList","getStatesObj","selectedRegionDetails","selectedCountryName","selectedRegionNameWithGMTAndDST","showRegionValidation","getSelectedRegionsByTimezoneId","t","some","setDropdownCountryWithRegionList","concat","countryData","setDropdownRegionList","regionData","onCountryChange","newValue","resetRegionValidation","setCountryAndRegionByIndex","countryIndex","regionIndex","newRegionSelection","setRegionByIndex","selectedRegion","onRegionChange","onContinueBtnClick","timezoneString","closePopup","onCloseButtonClick","initializePopup","nextProps","stateObj","float","margin","dateToString","stringToDate","parts","nextDay","setDate","request","lastAvailableDay","part","slots","dateSlots","pm","duration","confirmSlot","Loader","doubleBooking","confirmAPIPromise","findNextAvailableDay","selectedDatePosition","selectedSlot","blockTrackingId","firstDate","changeInDays","start","end","nextDate","position","slot","promise","buttonText","smsChecked","modal","openModal","isNaN","DelayedLoader","setText","BackArrow","NextArrow","SlotDate","dates","getDay","Slots","setIndex","outerWidth","setPageSize","disableNext","disablePrev","viewNextAvailableDay","slice","timeStr","areSlotsAvailable","CalenderContent","timeZoneId","fetchSlots","block","displayedDates","selectedDate","selectedDaySlots","nextDatesVisibility","changeSelectedDatePosition","prevDates","nextDates","emptyDate","fetchDate","lastDateForSlot","slotOnDate","ConfirmSlotContent","dateObjSummary","confirmationFullText","schedule_confirmation_title","confirmationText","smsNotificationToggle","schedule_sms_notification","smsOptInText","schedule_sms_opt_in_text","confirmationTextLength","smsOptInTextLength","selectTimeSlotView","isChecked","smsConsent","schedule_confirmation_button","confirming","confirm","back","ConfirmationContent","confirmEventData","email","isCalendarEventCreated","dateObjSummarySplit","fullMonth","dayOfMonth","ErrorWhileFetchingContent","NoTimesIcon","ConversationEndedContent","ErrorWhileConfirmingContent","CONFIRM_ERROR_ICON","ErrorDoubleBookingContent","DOUBLE_BOOKING_ERROR_ICON","ScheduleAction","last","refs","initial_load","calendarVisible","trackingid","startTime","timeZoneString","resourcesLinkId","resourceLinkId","enableSmsNotification","blockSlot","meetingLowerBoundary","meetingUpperBoundary","schedule_timeslot_fallback_button_text","panelTrackingId","catch","startDate","endDate","shouldRenderheading","interaction_text","schedule_action_event_type_meeting_length","RequireConsent","consentRef","bodyText","link","linkText","ConsentButtons","consented","onConsentClick","consentText","onMessageSent","requireConsent","messageContainer","closest","yesText","noText","TimeZoneQuestion","showModal","timezoneName","Timeago","ChatTimestamp","sentBy","ContactTimestamp","failed","allowFuture","substitute","stringOrFunction","num","strings","str","isFunction","dateDifference","numbers","replace","timestrings","day","days","hour","minute","months","prefixAgo","prefixFromNow","seconds","suffixAgo","suffixFromNow","wordSeparator","years","words","abs","separator","prefix","suffix","round","functionToCheck","call","ViewAgainButton","viewed","viewAgainText","DenyConsent","Select","setSticky","resizeCount","setResizeCount","hasContent","useLayoutEffect","getElementById","renderMessageBody","message_type","video_mp4","video_ogg","video_ogv","renderImageMessage","image_url","renderDocumentMessage","document_url","renderUrlMessage","button_text","privacy_policy_link","privacy_policy_link_text","MessageExtras","deny_button_text","accept_button_text","view_again_button_text","twoDigits","messageTitle","startOfDay","getHours","getMinutes","toLocaleDateString","WidgetMessage","showTimestamp","sticky","select","endChatWithoutMessage","colorCode","r","g","TypingIndication","WidgetBody","ended","lastMessage","contact","showTimestampFactory","textAlign","isBotTyping","ID_PREFIX","renderTextComponent","NotificationMessage","renderMessageInteraction","renderQuestion","HorizontalTrack","WidgetNotification","unread","upperDiv","lowerDiv","isTyping","lower","upper","observer","ResizeObserver","observe","disconnect","autoHide","renderTrackHorizontal","findPos","header","emptyPortion","chatHeaderHeight","extraOffset","Widget","result","notifications","NotificationBadgeOnly","shouldShouldNotifications","restarting","scrollBar","firstMessageId","scrollId","firstMessageIdRef","lastMessageId","bar","pos","scrollTop","getScrollHeight","getScrollTop","scrollToBottom","useScrollManager","notificationEffect","removeWidget","openWidgetOnPreview","sessionDuration","hearbeat","work","visibilityState","setInterval","clearInterval","timeoutEffect","onScrollFrame","App","location","match","analyticCookieCommand","callType","xmlhttp","XMLHttpRequest","onreadystatechange","readyState","getResponseHeader","setAnalytics","withCredentials","setRequestHeader","website_slug","cookieType","page_url","element","ReactDOM","unmountComponentAtNode","page_title","REACT_APP_ENV","REACT_APP_WEBSITE_ID","REACT_APP_WIDGET_PREVIEW","REACT_APP_BOT_ID","serviceWorker","ready","registration","unregister","setStrategy","module","exports","CityList","CountryCallingCode","PriorityCountryId"],"mappings":"q0BAEO,IAAKA,EAQAC,G,SARAD,K,gBAAAA,E,0BAAAA,E,mBAAAA,E,yBAAAA,M,cAQAC,K,sFAAAA,E,iDAAAA,M,KAiCL,MA8BMC,EAA4B,wBAC5BC,EAA4B,wBAC5BC,EAA6B,yBC1EnC,MAAMC,EAMX,oBACE,OAAOC,KAAKC,eAGd,iBAAwBC,GACtB,MAAMC,EAAiBH,KAAKI,eAC5BJ,KAAKC,eAAiBC,EAAYG,cAAcC,MAChDN,KAAKO,eAAiBL,EAAYM,cAAcF,MAChDN,KAAKS,iBAAmBN,GAAkBD,EAAYC,eAAeG,MAGvE,oBACE,OAAON,KAAKO,eAGd,oBAA2BL,GACzB,MAAMC,EAAiBH,KAAKI,eAC5BJ,KAAKO,eAAiBL,EAAYM,cAAcF,MAChDN,KAAKS,iBAAmBN,GAAkBD,EAAYC,eAAeG,MAGvE,sBACE,OAAON,KAAKS,kBA5BHV,EACJE,oB,EADIF,EAEJQ,oB,EAFIR,EAGJU,sB,EAHIV,EAIJW,sB,ECFF,MAAMC,EAMX,oBACE,OAAOX,KAAKC,eAGd,oBACE,OAAOD,KAAKO,eAMd,oBAA2BK,GACzBZ,KAAKS,iBAAmBG,EAAQT,eAAeG,MAC/CO,OAAOC,OAAOC,YACZ,CACEC,KAAM,YACNC,OAAQ,CACN,CACEC,KAAMN,EAAQT,eAAee,KAC7BC,OAAQP,EAAQT,eAAeiB,QAC/Bd,MAAOM,EAAQT,eAAeG,MAC9Be,UAAWT,EAAQT,eAAekB,UAClCC,KAAMV,EAAQT,eAAemB,MAE/B,CACEJ,KAAMN,EAAQJ,cAAcU,KAC5BC,OAAQP,EAAQJ,cAAcY,QAC9Bd,MAAOM,EAAQJ,cAAcF,MAC7Be,UAAWT,EAAQT,eAAekB,UAClCC,KAAMV,EAAQT,eAAemB,QAInC,KAOJ,sBACE,OAAOtB,KAAKS,iBAGd,iBAAwBP,GACtB,IAAIqB,EAA2B,GAE3BrB,EAAYG,gBACdL,KAAKC,eAAiBC,EAAYG,cAAcC,MAEhDiB,EAAcC,KAAK,CACjBN,KAAMhB,EAAYG,cAAca,KAChCC,OAAQjB,EAAYG,cAAce,QAClCd,MAAON,KAAKC,eACZoB,UAAWnB,EAAYG,cAAcgB,UACrCC,KAAMpB,EAAYG,cAAciB,QAIhCpB,EAAYM,gBACdR,KAAKO,eAAiBL,EAAYM,cAAcF,MAEhDiB,EAAcC,KAAK,CACjBN,KAAMhB,EAAYM,cAAcU,KAChCC,OAAQjB,EAAYM,cAAcY,QAClCd,MAAON,KAAKO,eACZc,UAAWnB,EAAYM,cAAca,UACrCC,KAAMpB,EAAYM,cAAcc,QAIhCpB,EAAYC,iBACdH,KAAKS,iBAAmBP,EAAYC,eAAeG,MAEnDiB,EAAcC,KAAK,CACjBN,KAAMhB,EAAYC,eAAee,KACjCC,OAAQjB,EAAYC,eAAeiB,QACnCd,MAAON,KAAKS,iBACZY,UAAWnB,EAAYC,eAAekB,UACtCC,KAAMpB,EAAYC,eAAemB,QAIrCT,OAAOC,OAAOC,YACZ,CACEC,KAAM,YACNC,OAAQM,GAEV,MA9FOZ,EACJD,sB,EADIC,EAEJV,oB,EAFIU,EAGJJ,oB,EAHII,EAIJF,sB,ECJF,MAAMgB,EAGX,qBACE,OAAOA,EAAgBC,SAGzB,qBAGED,EAAgBC,SAAWf,GAVlBc,EACIC,SAA0C3B,E,WCJpD,SAAS4B,IACd,SAASC,EAAIC,GACX,IAAIC,GAAKC,KAAKC,SAASC,SAAS,IAAM,aAAaC,OAAO,EAAG,GAC7D,OAAOL,EAAI,IAAMC,EAAEI,OAAO,EAAG,GAAK,IAAMJ,EAAEI,OAAO,EAAG,GAAKJ,EAE3D,OAAOF,GAAI,GAASA,GAAI,GAAQA,GAAI,GAAQA,GAAI,GCU3C,MAAMO,EACX,WAAWC,EAAaC,GACtB,OAAOrC,KAAKsC,OACVF,EACApC,KAAKuC,cAAcF,GACnB,MACAA,EAAQG,cAAe,GAI3B,YAAYJ,EAAaC,GACvB,OAAOrC,KAAKsC,OACVF,EACApC,KAAKuC,cAAcF,GACnB,OACAA,EAAQG,cAAe,GAI3B,cACEJ,EACAC,EACAI,EACAD,GAEA,IAAIE,EAA6B,CAC/BC,OAAQF,EACRG,QAASP,EAAQO,QACjBC,KAAMC,KAAKC,UAAUV,EAAQQ,OAK/B,OAHIL,IACFE,EAAaF,YAAc,WAEtBQ,MAAMZ,EAAKM,GAGpB,qBAA6BL,GAC3B,IAAIY,EAAc,eAAQZ,GAK1B,OAJAY,EAAeL,QAAf,2BACKP,EAAQO,SADb,IAEE,eAAgBjB,MAEXsB,GC3CJ,SAAeC,EAAtB,kC,4CAAO,WACLb,GADK,mCAAAc,EAAA,6DAGCvC,EAAUa,EAAgB2B,cAC5BC,EAAchB,EAAQiB,QAAU,KAAO1C,EAAQ2C,aAC/CC,EAAcnB,EAAQiB,QAAU,KAAO1C,EAAQ6C,aAC/CC,EAAcrB,EAAQiB,QAAU,KAAO1C,EAAQR,eAN9C,SAOkB+B,EAAUwB,KAC/BC,8CACA,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAM,CACJgB,QAASxB,EAAQwB,QACjBC,UAAWzB,EAAQyB,UACnBC,UAAW1B,EAAQ0B,UACnBC,MAAO3B,EAAQ2B,MACfV,QAASjB,EAAQiB,QACjBE,cACAE,cACAL,eAEFb,aAAa,IAvBZ,cAOCyB,EAPD,gBA2BcA,EAASC,OA3BvB,WA4BgB,KADfA,EA3BD,QA4BIC,QA5BJ,0CA4B6B,MA5B7B,QA8BDC,EAAY,KAKhB,IACEC,EAAoBvB,KAAKwB,MACvBL,EAASrB,QAAQ2B,IAAI1E,IAA8B,IAErDuE,EAAYC,EAAkB/D,MAC9B,MAAOkE,GACPH,EAAoB,KAGtB,IACEI,EAAoB3B,KAAKwB,MACvBL,EAASrB,QAAQ2B,IAAI3E,IAA8B,IAErD,MAAO4E,GACPC,EAAoB,KAGtB,IACEC,EAAqB5B,KAAKwB,MACxBL,EAASrB,QAAQ2B,IAAIzE,IAA+B,IAEtD,MAAO0E,GACPE,EAAqB,KAzDlB,GA4DDxE,EAAc,GAGhBA,EADEmC,EAAQiB,QACI,CACZ9C,cAAeiE,EACfpE,cAAegE,GAGH,CACZ7D,cAAeiE,EACfpE,cAAegE,EACflE,eAAgBuE,GAIpB9D,EAAQ+D,UAAUzE,GAEM,MAApB+D,EAASW,OA7ER,0CA8EI,CACLZ,MAAOE,EAAKW,KAAKC,QAAU,KAC3BzB,YAAae,EACbW,YAAab,EAAKW,KAAKG,cACvBC,kBAAmBf,EAAKW,KAAKK,mBAC7BC,6BAA8BjB,EAAKW,KAAKO,gCACxCC,oBAAqBnB,EAAKW,KAAKS,sBAC/BC,SAAUC,EAAkBtB,EAAKW,KAAKU,SAAUlD,EAAQ0B,WACxD0B,gBAAiBvB,EAAKW,KAAKY,gBAC3BC,mBAAoBxB,EAAKW,KAAKc,aAC9BC,uBAAwB1B,EAAKW,KAAKgB,2BAxFjC,iCA2FI,MA3FJ,6C,sBA+FP,SAASL,EAAkBX,EAAMd,GAC/B,MAAO,CACL+B,GAAI/B,EACJgC,QAAO,OAAElB,QAAF,IAAEA,OAAF,EAAEA,EAAMmB,SACfC,YAAW,OAAEpB,QAAF,IAAEA,OAAF,EAAEA,EAAMqB,aACnBC,OAAM,OAAEtB,QAAF,IAAEA,OAAF,EAAEA,EAAMsB,OACdC,WAAU,OAAEvB,QAAF,IAAEA,OAAF,EAAEA,EAAMwB,YAClBC,MAAK,OAAEzB,QAAF,IAAEA,OAAF,EAAEA,EAAMyB,MACbC,WAAU,OAAE1B,QAAF,IAAEA,OAAF,EAAEA,EAAM2B,YAClBC,QAAO,OAAE5B,QAAF,IAAEA,OAAF,EAAEA,EAAM6B,UChHZ,SAAeC,EAAtB,kC,4CAAO,WACL5C,EACA6C,EAAe,GAFV,+BAAAzD,EAAA,6DAICvC,EAAUa,EAAgB2B,cAC1BhB,EACJwB,6DAEAgD,EACA,eACA7C,EACA,kBACAnD,EAAQ2C,aAZL,SAakBpB,EAAUoC,IAAInC,EAAK,CACxCQ,QAAS,CACP,eAAgB,sBAff,UAkBmB,OALlBqB,EAbD,QAkBQW,OAlBR,sBAmBG,IAAIiC,MAAM,mCAnBb,UAqBCC,EAAQ7C,EAASrB,QAAQ2B,IAAI,SAC7BwC,EAAW9C,EAASrB,QAAQ2B,IAAI,YACzB,MAATuC,GAA6B,MAAZC,EAvBhB,uBAuBwC,IAAIF,MAvB5C,yBAwBc5C,EAASC,OAxBvB,QA+BL,KAPMA,EAxBD,QAyBA8C,sBAAwB9C,EAAK8C,sBAAsBC,KAAIC,GAAI,2BAC3DA,GAD2D,IAE9DpB,GAAIoB,EAAKC,OAAOlF,eAElBiC,EAAK8C,sBAAsBI,UACrBC,EAA4D,GACzDC,EAAIpD,EAAK8C,sBAAsBO,OAAS,EAAGD,GAAK,EAAGA,IAElC,SADlBE,EAAUtD,EAAK8C,sBAAsBM,IAC/BG,SAAsBD,EAAQE,SACxCL,EAAoB7F,KAAKgG,GAlCxB,yBAqCE,CACLR,sBAAuB9C,EAAK8C,sBAC5BK,oBAAqBA,EAAoBD,UACzCN,MAAOa,SAASb,GAChBC,SAAUY,SAASZ,KAzChB,6C,sBCOA,IAAKa,EA6FL,SAASC,EAAQC,EAAiBC,GACvC,OAAQA,EAAO/G,MACb,IAAK,QACH,OAAO,2BACF+G,EAAOlD,MADZ,IAEE+B,KAAM,EACNoB,UAAWF,EAAME,UACjBC,OAAQH,EAAMG,OACdC,eAAe,IAEnB,IAAK,UACH,OAAO,2BACFJ,GADL,IAEEK,SAAU,GACVvB,KAAM,EACNoB,UAAWI,KAAKC,MAChBvB,MAAO,EACPgB,MAAOpI,EAAkB4I,WACzBJ,eAAe,IAEnB,IAAK,iBACH,OAAO,2BACFJ,GADL,IAEEG,OAAQL,EAAaW,YAEzB,IAAK,oBACH,OAAO,2BACFT,GADL,IAEEG,OAAQL,EAAaY,aAEzB,IAAK,oBACH,OAAO,2BACFV,GADL,IAEEG,OAAQL,EAAaa,eAEzB,IAAK,YACH,OAAO,2BACFX,GADL,IAEEA,MAAOpI,EAAkBgJ,SAE7B,IAAK,cACH,OAAO,2BACFZ,GADL,IAEEI,eAAe,EACfpB,MAAOgB,EAAMhB,MAAQ,EACrBqB,SAAU,IAAIL,EAAMK,SAAUJ,EAAOP,WAEzC,IAAK,cACH,OAAO,2BACFM,GADL,IAEEa,MAAM,EACNb,MACEA,EAAMA,QAAUpI,EAAkBkJ,YAC9BlJ,EAAkBgJ,OAClBZ,EAAMA,QAEhB,IAAK,eACH,OAAO,2BACFA,GADL,IAEEa,MAAM,IAEV,IAAK,iBACH,OAAO,2BACFb,GADL,IAEEI,eAAe,IAEnB,IAAK,oBAAqB,CACxB,MAAMC,EAAW,IAAIL,EAAMK,UACrBX,EAAO,eAAQW,EAASA,EAASZ,OAAS,IAChD,GAAwB,QAApBC,EAAQC,QAAmB,MAAM,IAAIZ,MACzC,MAAMgC,EAAW,eAAQrB,EAAQ3C,MACjC,GAAqC,WAAjCgE,EAAYC,iBAA+B,MAAM,IAAIjC,MACzD,GAAgC,aAA5BgC,EAAYE,YAA4B,MAAM,IAAIlC,MAWtD,MAVI,oBAAqBkB,EAAO9D,UAC9B4E,EAAYG,gBAAkBjB,EAAO9D,SAAS+E,gBAC9CH,EAAYI,0BACVlB,EAAO9D,SAASgF,4BAElBJ,EAAYG,gBAAkB,YAC9BH,EAAYK,sBAAwBnB,EAAO9D,UAE7CuD,EAAQ3C,KAAOgE,EACfV,EAASA,EAASZ,OAAS,GAAKC,EACzB,2BAAKM,GAAZ,IAAmBK,aAErB,IAAK,6BAA8B,CACjC,MAAMA,EAAW,IAAIL,EAAMK,UACrBX,EAAO,eAAQW,EAASA,EAASZ,OAAS,IAChD,GAAwB,QAApBC,EAAQC,QAAmB,MAAM,IAAIZ,MACzC,MAAMgC,EAAW,eAAQrB,EAAQ3C,MACjC,GAAqC,WAAjCgE,EAAYC,iBAA+B,MAAM,IAAIjC,MACzD,GAAgC,aAA5BgC,EAAYE,YAA4B,MAAM,IAAIlC,MAItD,cAHOgC,EAAYG,gBACnBxB,EAAQ3C,KAAOgE,EACfV,EAASA,EAASZ,OAAS,GAAKC,EACzB,2BAAKM,GAAZ,IAAmBK,aAErB,IAAK,mBACH,OAAO,2BAAKL,GAAZ,IAAmBA,MAAOpI,EAAkByJ,WAC9C,IAAK,mBACH,OAAO,2BACFrB,GADL,IAEEK,SAAUL,EAAMK,SAASlB,KAAIO,GACH,YAApBA,EAAQC,UACY,IAApBD,EAAQE,QAD8BF,EAEnC,2BAAKA,GAAZ,IAAqBE,SAAS,QAGpC,IAAK,uBACH,OAAO,2BACFI,GADL,IAEEsB,IAAKtB,EAAMsB,KAAN,2BACAtB,EAAMsB,KADN,IAEHC,uBAAuB,MAG7B,IAAK,mBACH,OAAO,2BACFvB,GADL,IAEEK,SAAUL,EAAMK,SAASlB,KAAIO,GAC3BA,EAAQ1B,KAAOiC,EAAOjC,GAClB0B,EADJ,2BAGSA,GAHT,IAIME,SAAS,QAIrB,IAAK,sBACH,OAAO,2BACFI,GADL,IAEEI,eAAe,IAEnB,IAAK,kBAAmB,CACtB,IAAIC,EAAWL,EAAMK,SACrB,MAAMX,EAAUW,EAASA,EAASZ,OAAS,GAC3C,GAAwB,YAApBC,EAAQC,QAAuB,OAAOK,EAC1C,MAAMe,EAAcrB,EAAQ3C,KAC5B,MAAqC,WAAjCgE,EAAYC,kBACgB,aAA5BD,EAAYE,YADsCjB,GAEtDK,EAAW,IAAIA,GACfA,EAASA,EAASZ,OAAS,GAA3B,2BACKC,GADL,IAEE3C,KAAK,2BAAMgE,GAAP,IAAoBS,aAAcvB,EAAOwB,eAExC,2BAAKzB,GAAZ,IAAmBK,cAErB,IAAK,wBAAyB,CAC5B,MAAMA,EAAW,IAAIL,EAAMK,UACrBqB,EAAa,IAAIC,IAAItB,EAASlB,KAAIO,GAAWA,EAAQ1B,MACrD4D,EAAe3B,EAAOI,SAC5B,IAAIrB,EAAQgB,EAAMhB,MAClB,IAAK,IAAIQ,EAAIoC,EAAanC,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACjD,MAAME,EAAUkC,EAAapC,GACL,QAApBE,EAAQC,SAAsB+B,EAAWG,IAAInC,EAAQ1B,MACvDqC,EAAS3G,KAAKgG,GACdV,KAGJ,OAAO,2BAAKgB,GAAZ,IAAmBK,WAAUrB,UAE/B,IAAK,oBACH,OAAO,2BAAKgB,GAAZ,IAAmBlB,KAAMkB,EAAMlB,KAAO,IAExC,IAAK,YAAa,CAChB,MAAMuB,EAAW,IAAIL,EAAMK,UACrBqB,EAAa,IAAIC,IAAItB,EAASlB,KAAIO,GAAWA,EAAQ1B,MACrD4D,EAAe3B,EAAOI,SAASyB,QACnCpC,IAAYgC,EAAWG,IAAInC,EAAQ1B,MAErC,OAAO,2BACFgC,GADL,IAEEK,SAAU,IAAIuB,KAAiB5B,EAAMK,UACrCrB,MAAOgB,EAAMhB,QAGjB,QACE,MAAM,IAAID,MAAM,kBAAoB/D,KAAKC,UAAUgF,EAAQ,KAAM,KAuBhE,SAAS8B,EAAa/B,GAC3B,GAAuB,OAAnBA,EAAMvC,SAAmB,MAAM,IAAIsB,MACvC,OAAOiB,EAAMvC,SAASO,GAGjB,SAASgE,EAAqBhC,GACnC,MAAMK,EAAWL,EAAMK,SACvB,IAAI4B,EAA+B,KACnC,IAAK,IAAIzC,EAAIa,EAASZ,OAAS,EAAGD,GAAK,GAAuB,OAAlByC,EAAwBzC,IAAK,CACvE,MAAME,EAAUW,EAASb,GAEH,QAApBE,EAAQC,SAC0C,MAAjDD,EAAQ3C,KAAqBiE,mBAE9BiB,EAAiBvC,EAAQ3C,KAAqBmF,aAGlD,OAAOD,G,SAtTGnC,O,yBAAAA,I,+BAAAA,I,4BAAAA,M,oCC6DZ,SAASqC,IACP,OACoB,WAAhBlI,KAAKC,WAA2B,GAAGC,SAAS,KAC5B,WAAhBF,KAAKC,WAA2B,GAAGC,SAAS,IAY3C,SAASiI,EACdC,EACAC,GAEA,IAAInC,EAAwB,KACxBoC,EAAiC,KACjCC,EAA0B,KAC1BC,EAAgBnC,KAAKC,MACrBmC,EAAO,KACPC,GAAW,EACX7J,EAAUa,EAAgB2B,cAE9B,SAASsH,IA2EP,OA1EAzC,ECnGG,WACL,MAAM7F,EAAM,IAAIuI,IAAI/G,uCAKpB,OAJegH,IAAGxI,EAAIyI,SAAW,KAAOzI,EAAI0I,KAAM,CAChDxJ,KAAMc,EAAI2I,SAAW,YACrBC,WAAY,CAAC,YAAa,aD+FjBC,GAETd,EAAS,CAAEnJ,KAAM,sBAEjBiH,EAAOiD,GAAG,WAAW,IAAMf,EAAS,CAAEnJ,KAAM,qBAE5CiH,EAAOiD,GAAG,cAAc,IAAMf,EAAS,CAAEnJ,KAAM,wBAE/CiH,EAAOiD,GAAG,aAAa,KACrBf,EAAS,CAAEnJ,KAAM,mBACjB2F,EAAmBkD,EAAaO,MAAae,MAAKtG,GAChDsF,EAAS,CACPnJ,KAAM,wBACNmH,SAAUtD,EAAKmC,6BAKrBiB,EAAOiD,GAAG,0BAA0B,IAAMf,EAAS,CAAEnJ,KAAM,gBAE3DiH,EAAOiD,GACL,mBACCrC,GACCuC,EAAe,CACbtF,GAAI+C,EAAY1B,OAAOlF,WACvBwF,QAAS,MACT5C,KAAMgE,EACNnB,SAAS,EACT2D,kBAAkB,IAAIjD,MAAOkD,kBAInCrD,EAAOiD,GAAG,gBAAgBrG,GACxBuG,EAAe,CACbtF,GAAIjB,EAAKsC,OAAOlF,WAChBwF,QAAS,MACT5C,KAAM,CACJ0G,KAAM1G,EAAK0G,MAEb7D,SAAS,EACT2D,kBAAkB,IAAIjD,MAAOkD,kBAIjCrD,EAAOiD,GAAG,qBAAqBrG,GAC7BuG,EAAe,CACbtF,GAAIjB,EAAKsC,OAAOlF,WAChBwF,QAAS,MACT5C,KAAM,CACJ0G,KAAM1G,EAAK2G,OAEb9D,SAAS,EACT2D,kBAAkB,IAAIjD,MAAOkD,kBAIjCrD,EAAOiD,GAAG,oBAAoB,KAC5BO,WAAWC,EAAiB3J,KAAK4J,IAAI,EAAGpB,EAAgBnC,KAAKC,WAG/DJ,EAAOiD,GAAG,oBAAoBrG,IACD,OAAvByF,GAA6BsB,aAAatB,GAC9CH,EAAS,CAAEnJ,KAAM,mBAAoB8E,GAAIjB,EAAKgH,YAC9CtB,EAAgBnC,KAAKC,MAAQ,OAG/BJ,EAAOiD,GAAG,yBAAyB,KACjCO,WAAWC,EAAiB3J,KAAK4J,IAAI,EAAGpB,EAAgBnC,KAAKC,WAG/DJ,EAAOiD,GAAG,QAASY,IACjBtB,EAAOsB,KAGF7D,EAGT,SAASmD,EAAe5D,GACtB,MAAMuE,EAAOxB,EAAgBnC,KAAKC,MAC9B0D,GAAQ,GACVxB,EAAgBnC,KAAKC,MAAQ,IAC7B8B,EAAS,CAAEnJ,KAAM,cAAewG,cAEhC+C,GAAiB,IACjBkB,YAAW,IAAMtB,EAAS,CAAEnJ,KAAM,cAAewG,aAAYuE,IAIjE,SAASvK,EAAT,GAA+C,IAA/BR,EAA8B,EAA9BA,KAAS6D,EAAqB,wBAC5C,GAAI4F,EAAU,OACd,IAAIrG,EAAYxD,EAAQ2C,aACxB,IAAKa,EAEH,YADAsH,IAGa,OAAXzD,IACFA,EAASyC,KAEX,MAAM5C,EAAQsC,IACR4B,EAAO,2BACRnH,GADQ,IAEXoH,QAAShC,IACTiC,WAAYrC,EAAa/B,GACzBqE,uBAAwBrC,EAAqBhC,GAC7CsE,QAAShI,IAEX,IAAIiI,GAAO,EACX,MAAMC,EAAgBrE,EACtBA,EAAOsE,KAAKvL,EAAMgL,GAAS,KACzBK,GAAO,EACH5B,GAAU6B,EAAcE,WAE9B,MAAMC,EAAO,KACPxE,IAAWqE,GAAiBD,IAC5BpE,EAAOyE,WACTzE,EAAOsE,KAAKvL,EAAMgL,GAAS,KACzBK,GAAO,EACH5B,GAAU6B,EAAcE,WAGhCf,WAAWgB,EAAa,EAAPjC,KAEnBiB,WAAWgB,EAAa,EAAPjC,GAmCnB,SAASmC,IACPnL,EAAK,CAAER,KAAM,qBA6Ff,SAAS0K,IACPvB,EAAS,CAAEnJ,KAAM,qBA6BnB,MAAO,CACL4L,OA7JF,SAAgBA,GACd,MAAM9E,EAAQsC,IAAWtC,MAEvBA,IAAUpI,EAAkBgJ,QAC5BZ,IAAUpI,EAAkBkJ,cAI9ByB,EAAU,aACRrJ,KAAM,SACN6K,UAAW5B,KACR2C,GAELpL,EAAK6I,GACLF,EAAS,CACPnJ,KAAM,cACNwG,QAAS,CACPC,QAAS,UACT3B,GAAIuE,EAAWwB,UACfnE,SAAS,EACT7C,KAAM,CACJ0G,KAAMqB,EAAOC,SAEfxB,kBAAkB,IAAIjD,MAAOkD,iBAGjChB,EAAqBmB,YACnB,IAAMtB,EAAS,CAAEnJ,KAAM,oBTjLO,OSoThC2L,kBACAG,mBA3HF,WACEtL,EAAK,CAAER,KAAM,wBACbyJ,GAAW,GA0HXsC,eA9GF,SAAwBzD,GACtB9H,EAAK,CAAER,KAAM,kBAAmBsI,iBAChCa,EAAS,CAAEnJ,KAAM,kBAAmBuI,WAAYD,KA6GhD0D,YA1GF,WACE7C,EAAS,CAAEnJ,KAAM,kBA0GjBiM,WAvGF,WACE,MAAM9E,EAAWiC,IAAWjC,SACtBX,EAAUW,EAASA,EAASZ,OAAS,GAC3C,GAAe,MAAXC,EAAJ,CAIA,GAAwB,QAApBA,EAAQC,QAAmB,CAC7B,MAAMoB,EAAcrB,EAAQ3C,MACS,YAAjCgE,EAAYC,kBAE4B,WAAjCD,EAAYC,kBACW,aAA5BD,EAAYE,aACVF,EAAYG,iBACsB,kBAAhCH,EAAYG,kBAJpB2D,IAWJxC,EAAS,CAAEnJ,KAAM,qBAjBf2L,KAoGFO,gBAhFF,WACE1L,EAAK,CAAER,KAAM,qBACbmJ,EAAS,CAAEnJ,KAAM,sBA+EjBmM,QA5EF,WACE1C,GAAW,EACPxC,IACFA,EAAOuE,QACPvE,EAAS,MAEXkC,EAAS,CAAEnJ,KAAM,aAuEjBoM,kBApEF,WACE,GAAmB,OAAf/C,EAAqB,MAAM,IAAIxD,MACnC0D,EAAgBnC,KAAKC,MAAQ,IAC7B8B,EAAS,CAAEnJ,KAAM,wBACjBuJ,EAAgBnC,KAAKC,MAAQ,IAC7B7G,EAAK6I,GACLC,EAAqBmB,YACnB,IAAMtB,EAAS,CAAEnJ,KAAM,oBT9PO,MS4ThCqM,iBAzDF,SACEpJ,GAMAkG,EAAS,CAAEnJ,KAAM,oBAAqBiD,aACtCsG,EAAgBnC,KAAKC,MAAQ,IAC7BsE,KAiDAW,mBA9CF,WACEnD,EAAS,CAAEnJ,KAAM,yBACjBQ,EAAK,CAAER,KAAM,iCA6CbuM,wBAtCF,WACEpD,EAAS,CAAEnJ,KAAM,gCAsCjBwM,UAnCF,WACEhM,EAAK,CAAER,KAAM,eAmCbyM,QAjIF,WACEhD,GAAW,EACXN,EAAS,CAAEnJ,KAAM,qBACF,OAAXiH,IACFA,EAAOuE,QACPvE,EAAS,OA6HXyF,SAjCF,WACE,MAAM5F,EAAQsC,IACd,GAAItC,EAAMhB,QAAUgB,EAAMK,SAASZ,OAAQ,OAC3C,IAAIoG,EACF7F,EAAMK,SAASZ,OAASO,EAAMf,WAAa,EACvCe,EAAMK,SAASZ,OAASO,EAAMf,SAAW,EACzChF,KAAK6L,KAAK9F,EAAMK,SAASZ,OAASO,EAAMf,UAC1Ce,EAAMlB,OAAS+G,IACnBxD,EAAS,CAAEnJ,KAAM,oBAAqB4F,KAAM+G,IACtB,MAAlB7F,EAAMvC,UACVoB,EAAmBmB,EAAMvC,SAASO,GAAI6H,GAAUxC,MAAKtG,GACnDsF,EAAS,CACPnJ,KAAM,YACNmH,SAAUtD,EAAKmC,6BExXhB,MAAM6G,EAGHC,YACC/J,EACAT,EACAO,EACAC,EACAE,GACN,KALMD,YAKP,KAJOT,UAIP,KAHOO,UAGP,KAFOC,YAEP,KADOE,QAGT,qBACE,OAAO6J,EAAQE,SAGjB,mBAA0B1L,GACxBwL,EAAQE,SAAW,IAAIF,EACrBxL,EAAQ0B,UACR1B,EAAQiB,QACRjB,EAAQwB,QACRxB,EAAQyB,UACRzB,EAAQ2B,QArBD6J,EACIE,c,EC4BV,MAAMC,EAAaC,IAAMC,cAA2B,CACzD9E,IAAK,CACHtD,GAAI,WACJL,gBAAiB,IACjB4D,uBAAuB,EACvB8E,kBAAmBxO,EAAkByO,yCAEvCzF,MAAM,EACNrF,SAAS,EACTiC,SAAU,CACRO,GAAI,aACJC,QAAS,OACTI,OAAQ,UACRF,YAAa,UACbK,MAAO,SACPF,WAAY,OACZG,WAAY,mBACZE,QAAS,MAEXqB,MAAOpI,EAAkBgJ,OACzBT,OAAQL,EAAaW,UACrB7C,mBAAoB,GACpBE,wBAAwB,IAGbyI,EAAsBJ,IAAMC,cAAoC,CAC3E/F,SAAU,GACVd,oBAAqB,GACrBa,eAAe,EACfnB,SAAU,GACVD,MAAO,IAGIwH,EAAuBL,IAAMC,cACxChE,GACE,IAAM,OACN,MACElC,UAAW,EACXoB,IAAK,CACHtD,GAAI,SACJqI,kBACExO,EAAkByO,wCACpB/E,uBAAuB,EACvB5D,gBAAiB,KAEnBF,SAAU,CACRO,GAAI,aACJC,QAAS,OACTI,OAAQ,UACRF,YAAa,UACbK,MAAO,SACPF,WAAY,OACZG,WAAY,mBACZE,QAAS,MAEX0B,SAAU,GACVvB,KAAM,EACNE,MAAO,EACPC,SAAU,GACVe,MAAOpI,EAAkBkJ,YACzBX,OAAQL,EAAaW,UACrBI,MAAM,EACNT,eAAe,EACfxC,mBAAoB,GACpBE,wBAAwB,O,4CAK9B,WACE7B,EACAT,EACAO,EACAC,EACAE,GALF,qBAAAb,EAAA,sEAkBqBD,EAAY,CAC7Ba,YACAT,UACAQ,YACAD,UACAG,UAvBJ,UAyBe,QAPPa,EAlBR,iDAyB4B,MAzB5B,UA2BEhE,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACNuN,IAAK1J,EAAKb,MAAQ,GAAK,CAAC,UACxBwK,OAAQ3J,EAAKb,MAAQ,CAAC,UAAY,IAEpC,KAEgB,MAAda,EAAKb,MAnCX,yCAoCW,MApCX,wBAuC+ByK,QAAQC,IAAI,CAAC/H,EAAmB5C,KAvC/D,uCAuCS4K,EAvCT,MAwCMrL,EAxCN,0CAyCW,CACL8F,IAAK,CACHtD,GAAIjB,EAAKb,MACTqF,uBAAuB,EACvB5D,gBAAiB,IACjB0I,kBAAmBtJ,EAAKQ,qBAE1BE,SAAUV,EAAKU,SACf4C,SAAUwG,EAAa3H,sBACvBF,MAAO6H,EAAa3H,sBAAsBO,OAC1CO,MAAOjD,EAAKI,kBACZ0D,MAAM,EACN5B,SAAU,GACVrB,mBAAoBb,EAAKa,mBACzBE,uBAAwBf,EAAKe,yBAvDnC,iCA0DW,CACLwD,IAAK,CACHtD,GAAIjB,EAAKb,MACTqF,uBAAwBxE,EAAKM,6BAC7BM,gBAAwC,IAAvBZ,EAAKY,gBACtB0I,kBAAmBtJ,EAAKQ,qBAE1BE,SAAUV,EAAKU,SACf4C,SAAUwG,EAAa3H,sBACvBK,oBAAqBsH,EAAatH,oBAClCP,MAAO6H,EAAa7H,MACpBgB,MAAOjD,EAAKI,kBACZ0D,MAAM,EACN5B,SAAU4H,EAAa5H,SACvBrB,mBAAoBb,EAAKa,mBACzBE,uBAAwBf,EAAKe,yBAzEnC,6C,sBAwFO,SAASgJ,GAAmB,MACjC5K,EADiC,UAEjCD,EAFiC,QAGjCT,EAHiC,QAIjCO,EAJiC,UAKjCC,EALiC,SAMjC+K,IAEA,MAAMxM,EAA0B,CAC9B2B,MAAOA,EACPH,QAASA,EACTE,UAAWA,EACXT,QAASA,EACTQ,UAAWA,GAEb+J,EAAQiB,YAAYzM,GARZ,QASkB0M,qBAAWlH,EJoF9B,CACLuB,IAAK,KACL7D,SAAU,KACV4C,SAAU,GACVd,oBAAqB,GACrBT,KAAM,EACNE,MAAO,EACPC,SAAU,GACVe,MAAOpI,EAAkBkJ,YACzBZ,UAAWI,KAAKC,MAChBJ,OAAQL,EAAaa,aACrBE,MAAM,EACNT,eAAe,EACfxC,mBAAoB,GACpBE,wBAAwB,II3GlB,mBASDkC,EATC,KASMqC,EATN,KAUR6E,qBAAU,KACR,IAAIC,GAAY,EAahB,O,mDAZAC,CAAUnL,EAAWT,EAASO,EAASC,EAAWE,GAAOmH,MAAKtG,IACxDoK,GACQ,MAARpK,IACJsF,EAAS,CACPnJ,KAAM,QACN6D,SAEFhE,OAAOC,OAAOC,YACZ,CAAEoO,sBAAuB,yBACzB,SAGG,KACLF,GAAY,KAEb,CAAClL,EAAWT,EAASO,EAASC,EAAWE,EAAO8D,EAAME,YACzD,MAAMoH,EAAiCC,mBACrC,IACEvH,EAAMsB,KACNtB,EAAMvC,UAAY,CAChBjC,UACA8F,IAAKtB,EAAMsB,IACX7D,SAAUuC,EAAMvC,SAChBuC,MAAOA,EAAMA,MACbG,OAAQH,EAAMG,OACdU,KAAMb,EAAMa,KACZjD,mBAAoBoC,EAAMpC,mBAC1BE,uBAAwBkC,EAAMlC,yBAElC,CACEtC,EACAwE,EAAMsB,IACNtB,EAAMa,KACNb,EAAMvC,SACNuC,EAAMA,MACNA,EAAMG,OACNH,EAAMpC,mBACNoC,EAAMlC,yBAGJ0J,EAAsBD,mBAC1B,MACEvI,MAAOgB,EAAMhB,MACbqB,SAAUL,EAAMK,SAChBd,oBAAqBS,EAAMT,qBAAuB,GAClDN,SAAUe,EAAMf,SAChBmB,cAAeJ,EAAMI,iBAEvB,CACEJ,EAAMhB,MACNgB,EAAMK,SACNL,EAAMT,oBACNS,EAAMf,SACNe,EAAMI,gBAGJqH,EArFR,SAA0BzH,EAAiBqC,GACzC,IAAIqF,EAAWC,iBAAiB3H,GAChC0H,EAASE,QAAU5H,EACnB,IAAI6H,EAAMF,iBAAuB,MAIjC,OAHoB,OAAhBE,EAAID,UACNC,EAAID,QAAUxF,EAAcC,GAAU,IAAMqF,EAASE,WAEhDC,EAAID,QA8EWE,CAAiB9H,EAAOqC,GAC9C,OACEiF,GACE,kBAACd,EAAqBuB,SAAtB,CAA+BvP,MAAOiP,GACpC,kBAACvB,EAAW6B,SAAZ,CAAqBvP,MAAO8O,GAC1B,kBAACf,EAAoBwB,SAArB,CAA8BvP,MAAOgP,GACnC,yBACEQ,UAAU,MACVC,MACE,CACE,gBAAiBX,EAAW7J,SAASY,OACrC,eAAgBiJ,EAAW7J,SAASa,aAIvCyI,MCnRf,SAASmB,IAAU,MAAD,EACiCC,qBAC/CjC,GACAzI,SAFc2K,EADA,EACR/J,OAA2BgK,EADnB,EACO/J,WAGvB,OACE,sFAE4B8J,EAF5B,mGAK0BA,EAL1B,0HASsBA,EATtB,yFAY0BA,EAZ1B,+FAe0BA,EAf1B,uDAgB4BA,EAhB5B,wDAiB6BA,EAjB7B,gFAoBeA,EApBf,gFAuBcA,EAvBd,gFA0BiBC,EA1BjB,+EA6BcA,EA7Bd,+EAgCgBD,EAhChB,mFAmCkBA,EAnClB,4BAyCWjC,UAAMmC,KAASJ,G,QC5BrB,iCAAiCK,KAAKxP,OAAOyP,UAAUC,WAGnB,MAC3C,GAAyB,qBAAdD,WAA6B,kBAAmBA,UACzD,OAAOA,UAAUE,cAEnBC,SAASC,OAAS,wBAClB,MAAMC,GAA6D,IAAlDF,SAASC,OAAOE,QAAQ,qBACpCD,IACHF,SAASC,OACP,iEARuC,GAJtC,MAiBMG,EAAY,4DAA4DR,KACnFC,UAAUC,WAaCO,EAAkB,CAC7B,MACA,MACA,MACA,MACA,MACA,MACA,OAGWC,EAAc,CACzB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGWC,EAAoB,CAC/B,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,O,OCjFF,SAASC,GAAa,MAAEC,IAAiB,MAAD,EAIlCjB,qBAAWjC,GAFbrF,EAFoC,EAEpCA,KAFoC,IAGpCpD,SAAYe,EAHwB,EAGxBA,MAAOF,EAHiB,EAGjBA,WAAYG,EAHK,EAGLA,WAE3B4K,EAAUlB,qBAAW3B,GAC3B,OACE,yBACE8C,cAAY,aACZC,QAAS1I,EAAOwI,EAAQnE,YAAcmE,EAAQlE,WAC9C6C,UAAS,qCAAgCxJ,EAAhC,YAAyCqC,EAAO,SAAW,KAEpE,0BAAMmH,UAAW,0BAA4BvJ,IAC7C,0BAAMuJ,UAAU,mBACd,yBAAKwB,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,MACxD,uBAAGC,KAAMrL,EAAYsL,SAAS,WAC5B,0BACEC,OAAQvL,EACRwL,EAAE,oDAEJ,0BACED,OAAQvL,EACRwL,EAAE,sDAKTV,EAAQ,GAAK,0BAAMpB,UAAU,cAAcoB,IAKnCjD,UAAMmC,KAAYa,GCvClB,G,OAAA,IAA0B,qCCAlC,MAAMY,EAAW,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCnDF,SAASC,IAAgB,MAAD,EACW7B,qBAAWjC,GAAYzI,SAAhDkB,EADc,EACdA,QAASR,EADK,EACLA,YACT+G,EAAgBiD,qBAAW3B,GAA3BtB,YACQkD,EAAUD,qBAAWjC,GAAYzI,SAAzCY,OACR,OACE,yBACEL,GAAG,cACHgK,UAAS,+CACsB,IAA7B+B,EAASjB,QAAQV,GAAgB,gBAAkB,KAGrD,0BAAMJ,UAAU,iBACd,2BACE,yBAAKiC,IAAI,GAAGC,IAAKvL,GAAWwL,MAGhC,gCAAMhM,EAAN,KACA,0BAAM6J,UAAU,oBAAoBuB,QAASrE,GAC3C,8BAMOiB,WAAMmC,KAAS0B,G,wBCtB9B,SAASI,IAAW,OAAEC,IACpB,MAAMjC,EAAQD,qBAAWjC,GAAYzI,SAASY,OAC9C,OAAOgM,EACL,yBACEZ,MAAM,OACNC,OAAO,OACPY,QAAQ,YACRC,QAAQ,MACRf,MAAM,8BAEN,uCACA,+BACA,uBACExL,GAAG,SACH6L,OAAO,OACPW,YAAY,IACZb,KAAK,OACLC,SAAS,WAET,uBACE5L,GAAG,kBACHyM,UAAU,sCACVb,SAAS,WAET,uBAAG5L,GAAG,QAAQyM,UAAU,qCACtB,6BACEzM,GAAG,SACH6L,QAAqC,IAA7BE,EAASjB,QAAQV,GAAgB,UAAYA,EACrDoC,YAAY,MACZE,OAAO,gDAET,0BACEZ,EAAE,aACF9L,GAAG,OACH6L,QAAqC,IAA7BE,EAASjB,QAAQV,GAAgB,UAAYA,EACrDoC,YAAY,IACZG,cAAc,eAOxB,yBACElB,MAAM,OACNC,OAAO,OACPY,QAAQ,YACRC,QAAQ,MACRf,MAAM,8BAEN,uCACA,+BACA,uBACExL,GAAG,SACH6L,OAAO,OACPW,YAAY,IACZb,KAAK,OACLC,SAAS,WAET,uBACE5L,GAAG,cACHyM,UAAU,sCACVb,SAAS,UACTC,OAAO,WAEP,uBAAG7L,GAAG,UAAUyM,UAAU,qCACxB,6BACEzM,GAAG,SACHwM,YAAY,MACZE,OAAO,4DAET,0BACEZ,EAAE,aACF9L,GAAG,OACHwM,YAAY,IACZG,cAAc,eASbxE,WAAMmC,KAAY8B,I,oBCzF1B,MAAMQ,GACL,CACJC,gBAAiB,uDACjBC,gBAAiB,6CAHRF,GAKD,CACRC,gBACE,oEACFC,gBAAiB,iDARRF,GAUJ,qCAVIA,GAWJ,oCAXIA,GAYL,qDAqBKG,GAAsB,MAGtBC,GAAoB,yJC5B3BC,GAAY,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MAE1DC,GAAa,0BAInB,MAAMC,WAAkBhF,IAAMiF,UAA4B,eAAD,oBAC9DC,eAA+ClF,IAAMmF,YADS,KAatDC,KAAO,CAAC/S,EAAegT,KAC7B,MAAMC,EAAgBvT,KAAKwT,MAAMD,cAC3BZ,EAAkBD,GAA0BC,gBAC5Cc,EAAO9L,SAASrH,EAAMoT,UAAU,EAAG,IACzC,GAAID,EAAO,GAET,OADAF,EAAcZ,IACP,EAET,MAAMgB,EAAQhM,SAASrH,EAAMoT,UAAU,EAAG,IAC1C,GAAIC,EAAQ,GAEV,OADAJ,EAAcZ,IACP,EAET,MAAMiB,EAAOjM,SAASrH,EAAMoT,UAAU,EAAG,KACzC,IAAKV,GAAW3C,KAAK/P,GAEnB,OADAiT,EAAc,MACPjT,EAET,MAAMyL,EAAO,IAAI3D,KAAKwL,EAAMD,EAAQ,EAAGF,GAKvC,OAHE1H,EAAK8H,gBAAkBD,GACvB7H,EAAK+H,aAAeH,EAAQ,GAC5BF,IAAS1H,EAAKgI,UAIL/T,KAAKwT,MAAMQ,qBAAuBjI,EAAKkI,WAAa7L,KAAKC,OAClEkL,EAAcb,GAA0BE,iBACjCtS,IAEPiT,EAAc,MACdvT,KAAKwT,MAAMU,SAAS5T,GACbA,IARPiT,EAAcZ,IACP,IAtCmD,KAmE9DwB,QAAWC,IACa,KAAlBA,EAAMC,SACRrU,KAAKwT,MAAMc,YAlEfC,qBAEIvU,KAAKmT,gBACLnT,KAAKmT,eAAezD,SACpB1P,KAAKmT,eAAezD,QAAQ8E,cAE5BxU,KAAKmT,eAAezD,QAAQ8E,aAAaC,QAwC7CC,SACE,OACE,kBAAC,KAAD,CACErB,KAAMrT,KAAKqT,KACX1D,IAAK3P,KAAKmT,eACVwB,KAAM5B,GACN6B,YAAY,aACZC,mBAAmB,EACnB/O,GAAG,aACHgP,aAAa,MACbC,YAAY,MACZC,OAAO,EACPC,gBA/DgB,SAgEhBC,UAAWlV,KAAKmU,WCpExB,MAAMgB,GAAgB,CACpB,KACA,KACA,IACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,IACA,KACA,KACA,IACA,UACA,OAGWC,GAAkB,mDAIxB,MAAMC,WAAsBpH,IAAMiF,UAAgC,eAAD,oBACtEC,eAA+ClF,IAAMmF,YADiB,KAa9DC,KAAO,CAAC/S,EAAegT,KAC7BhT,EAAQA,EAAMgV,cACd,MAAM/B,EAAgBvT,KAAKwT,MAAMD,cAC3BZ,EAAkBD,GAA8BC,gBAChDc,EAAO9L,SAASrH,EAAMoT,UAAU,EAAG,IACzC,GAAID,EAAO,GAET,OADAF,EAAcZ,IACP,EAET,MAAMgB,EAAQhM,SAASrH,EAAMoT,UAAU,EAAG,IAC1C,GAAIC,EAAQ,GAEV,OADAJ,EAAcZ,IACP,EAET,MAAMiB,EAAOjM,SAASrH,EAAMoT,UAAU,EAAG,KACnC6B,EAAQ5N,SAASrH,EAAMoT,UAAU,GAAI,KAC3C,GAAI6B,EAAQ,GAEV,OADAhC,EAAcZ,IACP,EAET,MAAM6C,EAAU7N,SAASrH,EAAMoT,UAAU,GAAI,KAC7C,GAAI8B,EAAU,GAEZ,OADAjC,EAAcZ,IACP,EAET,MAAM8C,EAAiC,OAA5BnV,EAAMoT,UAAU,GAAI,IAC/B,IAAK0B,GAAgB/E,KAAK/P,GAExB,OADAiT,EAAc,MACPjT,EAET,MAAMyL,EAAO,IAAI3D,KAAKwL,EAAMD,EAAQ,EAAGF,GAKvC,OAHE1H,EAAK8H,gBAAkBD,GACvB7H,EAAK+H,aAAeH,EAAQ,GAC5BF,IAAS1H,EAAKgI,WAKZ0B,EACF1J,EAAK2J,SAASH,GAEdxJ,EAAK2J,SAAmB,KAAVH,EAAe,GAAK,GAAKA,GAEzCxJ,EAAK4J,WAAWH,GACZxV,KAAKwT,MAAMQ,qBAAuBjI,EAAKkI,WAAa7L,KAAKC,OAC3DkL,EAAcb,GAA8BE,iBACrCtS,IAEPiT,EAAc,MACdvT,KAAKwT,MAAMU,SAAS5T,GACbA,KAfPiT,EAAcZ,IACP,IAlD2D,KAsFtEwB,QAAWC,IACa,KAAlBA,EAAMC,SACRrU,KAAKwT,MAAMc,YArFfC,qBAEIvU,KAAKmT,gBACLnT,KAAKmT,eAAezD,SACpB1P,KAAKmT,eAAezD,QAAQ8E,cAE5BxU,KAAKmT,eAAezD,QAAQ8E,aAAaC,QA2D7CC,SACE,OACE,kBAAC,KAAD,CACErB,KAAMrT,KAAKqT,KACX1D,IAAK3P,KAAKmT,eACVwB,KAAMQ,GACNP,YAAY,sBACZC,mBAAmB,EACnB/O,GAAG,iBACHgP,aAAa,MACbC,YAAY,MACZC,OAAO,EACPC,gBAlFgB,SAmFhBC,UAAWlV,KAAKmU,WC5GxB,MAAMyB,GAAY,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,UAAW,OAEnDC,GAAa,2BAInB,MAAMC,WAAkB7H,IAAMiF,UAA2B,eAAD,oBAC7DC,eAA+ClF,IAAMmF,YADQ,KAarDC,KAAO,CAAC/S,EAAegT,KAC7BhT,EAAQA,EAAMgV,cACd,MAAM/B,EAAgBvT,KAAKwT,MAAMD,cAC3B/H,EAAQkH,GACR6C,EAAQ5N,SAASrH,EAAMoT,UAAU,EAAG,IAC1C,GAAI6B,EAAQ,GAEV,OADAhC,EAAc/H,IACP,EAGT,OADgB7D,SAASrH,EAAMoT,UAAU,EAAG,IAC9B,IACZH,EAAc/H,IACP,GAEJqK,GAAWxF,KAAK/P,IAIP,IAAViV,EACFhC,EAAc/H,GAEdxL,KAAKwT,MAAMU,SAAS5T,GAEfA,IARLiT,EAAc,MACPjT,IA7BkD,KAyD7D6T,QAAWC,IACa,KAAlBA,EAAMC,SACRrU,KAAKwT,MAAMc,YAxDfC,qBAEIvU,KAAKmT,gBACLnT,KAAKmT,eAAezD,SACpB1P,KAAKmT,eAAezD,QAAQ8E,cAE5BxU,KAAKmT,eAAezD,QAAQ8E,aAAaC,QA8B7CC,SACE,OACE,kBAAC,KAAD,CACErB,KAAMrT,KAAKqT,KACX1D,IAAK3P,KAAKmT,eACVwB,KAAMiB,GACNhB,YAAY,WACZC,mBAAmB,EACnB/O,GAAG,aACHgP,aAAa,MACbC,YAAY,MACZC,OAAO,EACPC,gBArDgB,SAsDhBC,UAAWlV,KAAKmU,W,qBCxDjB,MAAM4B,GAAcvC,GACzB,0BACEwC,MAAOxC,EAAMwC,MACbhV,KAAK,SACL8O,UAAS,+EACP0D,EAAMyC,WAAazC,EAAMyC,WAAa,MAExC5E,QAASmC,EAAM0C,aACfvF,SAAU6C,EAAM2C,YAEf3C,EAAMjI,MCmII6K,OA1Gf,SAAiD5C,GAC/C,MAAMhC,EAjBR,WAAkC,MAAD,EACH6E,mBAAiB,GADd,mBACxB7E,EADwB,KAChB8E,EADgB,KAa/B,OAXAtH,qBAAU,KACR,IAAIuH,EAAK9F,SAAS+F,cAAc,iBAEhC,GADAD,EAAKA,GAAMA,EAAGE,eACTF,EACH,OAEF,MAAMG,EAAe,IAAMJ,EAAWC,EAAmBI,aAAe,GAGxE,OAFAD,IACA7V,OAAO+V,iBAAiB,SAAUF,GAC3B,IAAM7V,OAAOgW,oBAAoB,SAAUH,MAE7ClF,EAIQsF,GAD2D,EAE9CT,mBAAiB,IAF6B,mBAEnEzM,EAFmE,KAE3DmN,EAF2D,KAGpEC,EAAQ,IAAIC,OAAOrN,EAAQ,KACjBsG,EAAUD,qBAAWjC,GAAYzI,SAAzCY,OACF+Q,EAAkB1D,EAAM2D,MAAMvN,QAAO1C,GACzC8P,EAAM3G,KAAKnJ,EAAKkQ,eANwD,EAQ1Cf,mBAAoC,IARM,mBAQnEgB,EARmE,KAQzDC,EARyD,KASpEC,EAAiBrQ,IACjBsM,EAAMgE,OACRhE,EAAMiE,SAASvQ,GAEfoQ,GAAYI,GAAY,2BACnBA,GADmB,IAEtB,CAACxQ,EAAKpB,KAAM4R,EAAaxQ,EAAKpB,SAI9B6R,EAAYlI,iBAAuB,MACnCjD,EAAQgH,EAAMhH,MACpBwC,qBAAU,KACR,MAAM4I,EAAYxD,IACI,MAAhBA,EAAMyD,QAAuC,MAArBF,EAAUjI,UAEpCiI,EAAUjI,UAAY0E,EAAMyD,QAC5BF,EAAUjI,QAAQoI,SAAS1D,EAAMyD,SAInCrL,MAGF,OADAiE,SAASmG,iBAAiB,YAAagB,GAChC,IAAMnH,SAASoG,oBAAoB,YAAae,KACtD,CAACpL,IACJwC,qBAAU,KACR,IAAK2I,EAAUjI,QAAS,OACxB,MAAMqI,EAAQJ,EAAUjI,QAAQ8G,cAAc,oBAC1CuB,GAASA,aAAiBC,kBAAkBD,EAAMtD,WAExD,MAAMwD,EAAgBxI,iBAA2B,MAGjD,OAF8B,OAA1BwI,EAAcvI,UAChBuI,EAAcvI,QAAUe,SAAS+F,cAAc,iBAE/CyB,EAAcvI,SACdwI,uBACE,yBACEvI,IAAKgI,EACL7R,GAAG,oBACHgK,UAAS,wBACsB,IAA7B+B,EAASjB,QAAQV,GAAgB,gBAAkB,KAGrD,wBAAIH,MAAO,CAAEoI,UAAW3G,IACrBgC,EAAMgE,OACHN,EAAgBjQ,KAAIC,GAClB,wBAAIkR,IAAKlR,EAAKpB,GAAIuL,QAAS,IAAMkG,EAAcrQ,IAC5CA,EAAKkQ,eAGVF,EAAgBjQ,KAAIC,GAClB,wBAAIkR,IAAKlR,EAAKpB,IACZ,2BAAOgK,UAAU,sBACd5I,EAAKkQ,YACN,2BACEpW,KAAK,WACLqX,UAAWhB,EAASnQ,EAAKpB,IACzBoO,SAAU,IAAMqD,EAAcrQ,KAEhC,0BACE4I,UAAS,qBACsB,IAA7B+B,EAASjB,QAAQV,GAAgB,gBAAkB,WAOnE,yBACEJ,UACE0D,EAAMgE,OACF,0BACA,gDAGN,2BACExW,KAAK,OACLV,MAAOsJ,EACPgL,YAAY,iBACZV,SAAUE,GAAS2C,EAAU3C,EAAMkE,cAAchY,UAEjDkT,EAAMgE,QACN,kBAACzB,GAAD,CACExK,KAAK,OACL2K,aAAc,IACZ1C,EAAMiE,SAASjE,EAAM2D,MAAMvN,QAAO1C,GAAQmQ,EAASnQ,EAAKpB,WAMlEmS,EAAcvI,U,OCzIb,MAAM6I,WAAoBtK,IAAMiF,UAAkC,eAAD,oBACtEsF,WAAa,KACXxY,KAAKwT,MAAMgF,cAGb9D,SACE,MAAMiD,EAAYlH,SAAS+F,cAAc,gBACzC,OACExW,KAAKwT,MAAMiF,MACXd,GACAO,uBACE,6BACE,yBAAKpI,UAAU,kBAAkBhK,GAAG,cAClC,yBAAKgK,UAAU,iBACb,0BACEsB,cAAY,kBACZtB,UAAU,cACVuB,QAASrR,KAAKwY,YAEd,6BAEF,2BAAIxY,KAAKwT,MAAMkF,eAEjB,yBAAK5I,UAAU,gBACZiG,GAAW,CACVxK,KAAM,SACN2K,aAAclW,KAAKwY,eAIzB,yBAAK1I,UAAW,oBAAqBhK,GAAG,iBAE1C6R,I,OCvBD,SAASgB,GAAczH,GAC5B,OAAc,IAAVA,EACK,WAED,GAAN,OAAUA,EAAV,YAIG,SAAS0H,GACdC,EACAlN,EACA0L,GAEA,OAAY,OAAR1L,EACE0L,EAAWwB,EACP,4BAAN,OAAmCF,GAAcE,IAE1C,KAGLxB,GAAYwB,GAAOxB,GAAY1L,EAC1B,KAED,4BAAN,OAAmCgN,GACjCE,GADF,8BAEuBF,GAAchN,IAK3C,SAASmN,IAAuB,QAAEzW,EAAF,SAAWoV,EAAX,IAAqBoB,EAArB,IAA0BlN,IAAe,MAAD,EACtC0K,mBAAoC,IADE,mBAC/DgB,EAD+D,KACrDC,EADqD,OAE5CjB,mBAAwB,MAFoB,mBAE/D7K,EAF+D,KAExDuN,EAFwD,KAatD7I,EAAUD,qBAAWjC,GAAYzI,SAAzCY,OACR,OACE,6BACE,kBAAC,GAAD,CACEuS,aAAclN,EACdiN,KAAgB,OAAVjN,EACNgN,WAAY,IAAMO,EAAS,QAE7B,6BACE,wBAAIjJ,UAAU,+BACXzN,EAAQ4E,KAAI+R,GACX,wBACElJ,UAAS,yCACsB,IAA7B+B,EAASjB,QAAQV,GACb,4BACA,IAENkI,IAAKY,EAAOlT,GACZmT,SAAUD,EAAO5B,aAEjB,2BAAOtH,UAAU,sBACdkJ,EAAO5B,YACR,2BACEpW,KAAK,WACLkT,SAAU,KAAMgF,OAlChBpT,EAkCuBkT,EAAOlT,GAjC5CwR,GAAYD,GAAQ,2BAAUA,GAAV,IAAoB,CAACvR,IAAMuR,EAASvR,OAD1CA,OAmCAuS,QAASc,QAAQ9B,EAAS2B,EAAOlT,OAEnC,0BACEgK,UACEqJ,QAAQ9B,EAAS2B,EAAOlT,KACpB,uBACA,mBAOhB,yBACEgK,UAAS,oBACsB,IAA7B+B,EAASjB,QAAQV,GAAgB,4BAA8B,KAGjE,kBAAC6F,GAAD,CAAYxK,KAAK,OAAO2K,aAnDjB,KACb,MAAMkD,EAAY/W,EAAQuH,QAAOoP,GAAUG,QAAQ9B,EAAS2B,EAAOlT,OAC7D0F,EAAQoN,GAAaC,GAAO,EAAGlN,EAAKyN,EAAU7R,QACpDwR,EAASvN,GACK,OAAVA,GACFiM,EAAS2B,SAqDAnL,WAAMmC,KAAY0I,ICxGjC,SAASO,IAAU,MAAE/Y,EAAO4T,WAAT,SAAmBI,IACpC,MAAMgF,EAAW7J,iBAA4B,MACvC8J,EAAY9J,iBAAuB,MACnC9G,EAAOsH,qBAAWjC,GAAYrF,KACpCqG,qBAAU,KACJsK,EAAS5J,SACX4J,EAAS5J,QAAQ+E,UAElB,IACHzF,qBAAU,KACHrG,GACC4Q,EAAU7J,SAAW4J,EAAS5J,UACpC6J,EAAU7J,QAAQ8J,UAChBlZ,EAAMmZ,SAAS,OAAiC,IAAxBnZ,EAAMoZ,OAAOnS,OAAejH,EAAQ,IAAMA,EACpEiZ,EAAU7J,QAAQK,MAAMwB,MAAQ+H,EAAS5J,QAAQiK,YAAc,KAC/DL,EAAS5J,QAAQK,MAAMyB,OAAS+H,EAAU7J,QAAQiH,aAAe,QAChE,CAAChO,EAAMrI,IASV,OACE,oCACE,8BACEqP,IAAK2J,EACLhZ,MAAOA,EACP4U,UAbad,IACjB,GAAsB,KAAlBA,EAAMC,QACV,OAAKD,EAAMwF,cAAX,GACExF,EAAMyF,sBACNvF,MAUEJ,SAAUE,GAASF,EAASE,EAAMkE,cAAchY,SAElD,yBACEwZ,UAAW,EACXC,iBAAe,EACfpK,IAAK4J,EACLzJ,UAAU,uBAMH7B,WAAMmC,KAAYiJ,I,oCC9BjC,MAAMW,GAAmCC,OAAOC,KAAKC,IAASlT,KAE5DnB,IAAE,CAAOA,KAAIsR,YAAa+C,GAAQrU,OAuBpC,SAASsU,IAAW,SAClBC,EADkB,qBAElBC,EAFkB,SAGlBpG,EAHkB,QAIlBqG,EAJkB,SAKlBjG,IAEA,MAAMkG,EAlBR,SAA2BC,GACzB,IAAIC,EACJ,IAAK,IAAIpT,EAAI,EAAGA,EAAI0S,GAAgBzS,OAAQD,IAC1C,GAAImT,GAAWT,GAAgB1S,GAAG8P,cAAgBqD,EAAS,CACzDC,EAAuBV,GAAgB1S,GACvC,MAGJ,OAAOoT,EAUgBC,CACrBN,EAASI,UACNH,EAAuBA,EAAsBG,QAAU,OAEtDG,EAAqBJ,EAAc,WACjCK,aAAsBL,EAAe1U,KACzC,GAPI,EAQ8BuQ,oBAAkB,GARhD,mBAQDyE,EARC,KAQYC,EARZ,OASsB1E,mBACpBmE,GAVF,mBASDC,EATC,KASQO,EATR,OAYkB3E,mBAAuBuE,GAZzC,mBAYDta,EAZC,KAYM2a,EAZN,OAasB5E,oBAAkB,GAbxC,mBAaD6E,EAbC,KAaQC,EAbR,KAcFpD,EAAQtI,iBAAyB,MACjC2L,EAAgBC,uBAAaZ,IACjCO,EAAWP,GACXM,GAAe,GACf,MAAMO,EAAOT,aAAsBJ,EAAQ3U,IAC3CmV,EAAS,IAAMK,GACf7P,YAAW,KACT,IAAI8P,EAAUxD,EAAMrI,QACJ,OAAZ6L,IACAA,GAASA,EAAQ9G,QACrB8G,EAAQC,eAAiBD,EAAQE,aAAeF,EAAQjb,MAAMiH,UAC7D,OACF,IACHyH,qBAAU,KACJ+I,EAAMrI,SAAW8K,GACnBzC,EAAMrI,QAAQ+E,WAyClB,OACE,yBAAK3E,UAAU,gBACb,yBAAKA,UAAU,QAAQuB,QAvCX,KACE,OAAZoJ,EACFM,GAAe,GACNhD,EAAMrI,SACfqI,EAAMrI,QAAQ+E,UAoCZ,yBAAK3E,UAAU,gBAAgBuB,QAAS,IAAM0J,GAAe,IAC1DN,GAAW,0BAAM3K,UAAU,QAAQ2K,EAAQ3U,IAC5C,0BAAMgK,UAAU,WAElB,2BAAOA,UAAU,eACf,2BACE9O,KAAK,MACL2O,IAAKoI,EACLzX,MAAOA,EACPwP,UAAU,SACV8E,YAAY,qBACZjE,UAAW8J,EACXvG,SA7CME,IACd,MAAMsH,EAAY,IAAIC,KAChBC,EAAiBF,EAAU3D,MAAM3D,EAAMkE,cAAchY,OACrDub,EAAcH,EAAUI,YAC9B,IAAIZ,GAAU,EACVW,KAEAA,EAAYpB,SACVA,GAAWA,EAAQ3U,KAAO+V,EAAYpB,SAExCO,EAAW,CACTlV,GAAI+V,EAAYpB,QAChBrD,YAAa+C,GAAQ0B,EAAYpB,WAGrCS,GAAWW,EAAYE,WAEzBZ,EAAWD,GACNA,GAASX,EAAQ,MACtBU,EAASW,GACT1H,EAAS0H,IA0BD1G,UAxBSd,IACK,KAAlBA,EAAMC,UACN6G,EACFX,EAAQ7H,IAER4B,UAuBCwG,GACC,kBAAC,GAAD,CACEtD,QAAM,EACNL,MAAO6C,GACPxN,MAAO,IAAMuO,GAAe,GAC5BtD,SAAU2D,KA1HpBpB,GAAgBgC,MAAK,CAACC,EAAGC,IACnBD,EAAE7E,YAAc8E,EAAE9E,YACb,EACE6E,EAAE7E,YAAc8E,EAAE9E,aACnB,EAED,IA2HInJ,WAAMmC,KAAYgK,IC/IjC,SAAS+B,IAAW,SAAEjI,EAAF,QAAYqG,EAAZ,SAAqBjG,IAAoB,MAAD,EAChC+B,mBAAiB,IADe,mBACnD/V,EADmD,KAC5C2a,EAD4C,OAE5B5E,oBAAkB,GAFU,mBAEnD6E,EAFmD,KAE1CC,EAF0C,KAGpDpD,EAAQtI,iBAAyB,MACvCT,qBAAU,KACR,IAAIuM,EAAUxD,EAAMrI,QACJ,OAAZ6L,GACAA,GAASA,EAAQ9G,UACpB,IAwBH,OACE,2BACEzT,KAAK,QACL2O,IAAKoI,EACLzX,MAAOA,EACPsU,YAAY,sBACZV,SA7BYE,IACd,MAAMgI,EAAahI,EAAMkE,cAAchY,MACvC,IAAI4a,GAAU,EACVkB,EACFlB,GAAWpI,GAAkBzC,KAAK+L,GAElC7B,EAAQ,MAEVY,EAAWD,GACNA,GAASX,EAAQ,MACtBU,EAASmB,GACTlI,EAASkI,IAmBPlH,UAjBed,IACK,KAAlBA,EAAMC,UACJ6G,EACFX,EAAQ7H,KAER6H,EAAQ,MACRjG,SAgBOrG,WAAMmC,KAAY+L,ICejC,SAASE,GACPvU,EACAN,GAEA,GAAIM,IAAUpI,EAAkBgJ,OAAQ,OAAO,KAC/C,GAAe,MAAXlB,EAAiB,OAAO,KAC5B,GAAwB,QAApBA,EAAQC,QAAmB,OAAO,KACtC,MAAMoB,EAA2BrB,EAAQ3C,KACzC,MAAqC,aAAjCgE,EAAYC,iBAAwC,KACjDD,EAsBT,SAASyT,IAAY,SACnBjC,EACAkC,WAAY3P,EAFO,MAGnBJ,IACoB,MAAD,EACO6J,mBAAwB,MAD/B,mBACZ7K,EADY,KACLuN,EADK,KAEbyD,EAAcnN,mBAAQ,IACK,kBAA3BgL,EAASoC,cACJ,CACLjF,QAAQ,EACRL,MAAOkD,EAASqC,oBAChBjF,SAAUuB,GACRpM,EAAO,CACLC,QAASmM,EAAO5B,YAChBuF,sBAAuB3D,EAAOlT,KAElC0G,SAGK,CACLgL,QAAQ,EACRL,MAAOkD,EAASqC,oBAChBjF,SAAUpV,IACR,MAAMmJ,EAAQoN,GACZyB,EAASuC,sBAAwB,EACjCvC,EAASwC,qBACTxa,EAAQkF,QAEVwR,EAASvN,GACK,OAAVA,IACFnJ,EAAQ2Z,MAAK,CAACC,EAAGC,IAAMD,EAAEa,aAAeZ,EAAEY,eAC1ClQ,EAAO,CACLC,QAASxK,EAAQ4E,KAAI+R,GAAUA,EAAO5B,cAAa2F,KAAK,MACxDC,qCAAsC3a,EAAQ4E,KAC5C+R,GAAUA,EAAOlT,SAKzB0G,UAGH,CAACI,EAAQJ,EAAO6N,IACnB,MAAmC,SAA/BA,EAAS4C,kBAAqC,KAEhD,oCACE,kBAAC,GAAD,CACEvE,aAAclN,EACdiN,KAAgB,OAAVjN,EACNgN,WAAY,IAAMO,EAAS,QAE5B9K,IAAMiP,cAAc9G,GAAYoG,IAKvC,SAASW,IAAM,MACb7c,EADa,SAEb+Z,EAFa,qBAGbC,EAHa,SAIbpG,EAJa,QAKbqG,EALa,SAMbjG,EANa,eAOb8I,IAEA,IAAI3I,GAAQ,EACZ,MAAM4I,EAAahD,GAAYA,EAASrQ,YAOxC,GANAgF,qBAAU,KACR,GAAIyF,EAAO,CACT,MAAMsD,EAAQtH,SAAS+F,cAAc,sBACvB,OAAVuB,GAAkBA,aAAiBC,kBAAkBD,EAAMtD,WAEhE,CAAC4I,EAAY5I,IACC,OAAb4F,EACF,OAAO,2BAAO1J,UAAU,EAAMrQ,MAAM,KAC/B,GACsB,iBAA3B+Z,EAASoC,eACkB,kBAA3BpC,EAASoC,cAET,MAAmC,SAA/BpC,EAAS4C,kBAET,2BAAOnN,UAAU,iBACf,2BACE9O,KAAK,MACL8O,UAAU,SACV8E,YAAY,qBACZ0I,UAAU,EACVjM,QAAS+L,KAKR,2BAAOzM,UAAU,EAAMrQ,MAAM,KAEjC,GAA+B,SAA3B+Z,EAASoC,cAClB,OACE,kBAAC,GAAD,CACEvI,SAAUA,EACVX,cAAegH,EACfjG,SAAUA,EACVN,oBAAqBqG,EAASkD,oBAG7B,GAA+B,aAA3BlD,EAASoC,cAClB,OACE,kBAAC,GAAD,CACEvI,SAAUA,EACVX,cAAegH,EACfjG,SAAUA,EACVN,oBAAqBqG,EAASkD,oBAG7B,GAA+B,SAA3BlD,EAASoC,cAClB,OACE,kBAAC,GAAD,CACEvI,SAAUA,EACVX,cAAegH,EACfjG,SAAUA,IAGT,GAA+B,UAA3B+F,EAASoC,cAClB,OACE,kBAAC,GAAD,CACEpC,SAAUA,EACVC,qBAAsBA,EACtBhG,SAAUA,EACViG,QAASA,EACTrG,SAAUA,IAGT,GAA+B,UAA3BmG,EAASoC,cAClB,OACE,kBAAC,GAAD,CAAYnI,SAAUA,EAAUiG,QAASA,EAASrG,SAAUA,IAGhE,MAAMsJ,EAAepJ,GACnBF,EAASE,EAAMkE,cAAchY,OACzB4U,EAAad,GACC,KAAlBA,EAAMC,SAAkBC,IAE1B,OADAG,GAAQ,EACuB,WAA3B4F,EAASoC,cAET,2BACEzb,KAAK,SACLV,MAAOA,EACPsU,YAAY,iBACZV,SAAUsJ,EACVtI,UAAWA,IAGqB,SAA3BmF,EAASoC,cACX,kBAAC,GAAD,CAAWnc,MAAOA,EAAO4T,SAAUA,EAAUI,SAAUA,IAC1B,cAA3B+F,EAASoC,eAClBhI,GAAQ,EACD,2BAAO9D,UAAU,EAAMrQ,MAAM,OAEpCmU,GAAQ,EACD,MAmBX,SAASgJ,GACPC,EACA3F,GAEA,GAAqB,IAAjBA,EAAMxQ,OAAc,OACxB,IAAI2T,EAA6B,CAAEa,SAAS,EAAO4B,SAAU,IAC7D,OAAQD,GACN,IAAK,QACHxC,EAAQa,SAAWjJ,GAAkBzC,KAAK0H,GAC1CmD,EAAQyC,SAAWjL,GACnB,MACF,IAAK,QACHwI,EAAQa,SAxBd,SAAuB6B,GACrB,MAAMlC,EAAY,IAAIC,KACtBD,EAAU3D,MAAM6F,GAChB,MAAM/B,EAAcH,EAAUI,YAC9B,QAAOD,GAAcA,EAAYE,UAoBV8B,CAAc9F,GACjCmD,EAAQyC,SAAWjL,GAGvB,OAAOwI,EAGT,SAAS4C,KACP,MAAM1O,EAAaa,qBAAWjC,GACxBkC,EAAQd,EAAW7J,SAASY,OAC5B4X,EAAa3O,EAAWnH,SAAWL,EAAaY,WAHhC,EAII6N,mBAAS,CACjC2H,WAAW,EACXzS,KAAM,GACNC,MAAO,KACP4R,gBAAgB,IARI,mBAIftV,EAJe,KAIRmW,EAJQ,KAUhBC,EAAc7C,uBACjB8C,GAAyBF,GAASnW,GAAK,2BAAUA,GAAUqW,MAC5D,IAEIC,EAAwC,OAAhBtW,EAAM0D,MAC5BrD,EAAa8H,qBAAW5B,GAAxBlG,SACAd,EAAwB4I,qBAAW5B,GAAnChH,oBACFG,EAAUW,EAASA,EAASZ,OAAS,GACrC8W,EAAiBhX,EACnBA,EAAoBA,EAAoBE,OAAS,GACjD,KACE8S,EAAWgC,GAAmBjN,EAAWtH,MAAON,GAChD8W,EAAkBjC,GAAmBjN,EAAWtH,MAAOuW,GACvD/D,EACJgE,GAAqD,UAAlCA,EAAgB7B,cAC/B6B,EACA,KACAZ,EAAerD,GAAYA,EAASoC,cACpC8B,EAlPR,SACEb,GAEA,OAAQA,GACN,KAAK,KACL,IAAK,eACL,IAAK,gBACL,IAAK,SACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,QACH,OAAO,EACT,QACE,OAAO,GAmOWc,CAAgBd,GAChCe,EACa,kBAAjBf,GAAqD,iBAAjBA,EAChCgB,EACa,SAAjBhB,GACiB,WAAjBA,GACiB,UAAjBA,GACiB,SAAjBA,GACiB,aAAjBA,GACiB,SAAjBA,GACiB,UAAjBA,GACiB,cAAjBA,EACI/M,EACS,OAAb0J,GAAqBoE,GAA0C,IAA7B3W,EAAMyD,KAAKmO,OAAOnS,OAChDU,EAASgI,qBAAW3B,GACpBiO,EAAa,KACjB,MAAM1P,EAAU/E,EAAMyD,KAAKmO,OACrBiF,EAAmBlB,GAAgBC,EAAc7Q,GACnD8R,EAAkB5C,QACpBmC,EAAY,CAAE1S,MAAOmT,EAAkBhB,YAGrB,OAAhB7V,EAAM0D,OACRvD,EAAO2E,OAAO,CAAEC,YAElBoR,EAAS,CACPzS,MAAO,KACPwS,WAAW,EACXzS,KAAM,GACN6R,gBAAgB,MAIdwB,EAAavP,mBAAyB,IACrCvH,EAAMsV,gBAA8B,MAAZ/C,EAEA,kBAA3BA,EAASoC,eACkB,iBAA3BpC,EAASoC,cAEF,KAGP,kBAACH,GAAD,CACEjC,SAAUA,EACVkC,WAAY3P,IACVqR,EAAS,CACPzS,MAAO,KACPwS,WAAW,EACXzS,KAAM,GACN6R,gBAAgB,IAElBnV,EAAO2E,OAAOA,IAEhBJ,MAAO,IAAM0R,EAAY,CAAEd,gBAAgB,MAnBO,MAsBrD,CAACtV,EAAMsV,eAAgB/C,EAAUpS,EAAQiW,IAC5C,OACE,oCACGU,EACD,yBAAK9O,UAAU,eACb,yBAAK+O,QAAST,EAAuBtO,UAAU,iBAC7C,8BAAOhI,EAAM0D,QAEf,yBACEuE,MAAO,CACL+O,QAC4B,IAA1BV,EACI,oBACA,qBAERtO,UAAS,mBAAea,EAAsB,GAAX,SAA1B,YACPyN,EAAwB,YAAc,GAD/B,YAELK,EAAY,aAAe,GAFtB,uBAGNC,EAA8B,GAAhB,gBAEjB,kBAACvB,GAAD,CACE7c,MAAOwH,EAAMyD,KACb8O,SAAUA,EACVC,qBAAsBA,EACtBhG,SAAUiI,EACVa,eAjDa,IAAMc,EAAY,CAAEd,gBAAgB,IAkDjDlJ,SAAU3I,GAAQ2S,EAAY,CAAE3S,SAEhCgP,QAAS/O,GAAS0S,EAAY,CAAE1S,YAElC,4BACExK,KAAK,SACL2P,SAAUA,EACVb,UAAU,YACVuB,QAASkL,GAET,kBAACwC,GAAD,CAAgB5M,QAASxB,MAG7B,yBACEb,UAAS,uBAAkByO,EAAgB,WAAa,WAExD,0BACEzO,UAAU,cACVuB,QAAS,KACNkN,GACDN,EAAS,2BAAKnW,GAAN,IAAakW,WAAYlW,EAAMkW,gBAG1Cpa,EAeD,uBAAGkM,UAAU,SAAS+O,QAASd,GAA/B,eAIDjW,EAAMkW,WACL,yBAAKlO,UAAU,0BACb,kBAAC,KAAD,CACEkP,QAAQ,EACR9O,MAAOA,EACP8F,MAAM,WACNiJ,QAAS,EACTC,aAAa,EACb7N,QAAS8N,IACPlB,EAAS,2BACJnW,GADG,IAENkW,WAAW,EACXzS,KAAMzD,EAAMyD,KAAQ4T,EAAcH,gBAWrC/Q,WAAMmC,KAAS0N,ICxdf,OAA0B,iC,cCGlC,MAAMsB,GAAkB,IAC7B,uBAAKtP,UAAU,WACb,uBAAKA,UAAU,gBAAf,gD,cCOJ,SAASuP,IAAwB,QAAEhd,EAAF,SAAWoV,IAAoB,MAC9CvH,EAAUD,qBAAWjC,GAAYzI,SAAzCY,OACR,OACE,wBAAI2J,UAAU,uEACXzN,EAAQ4E,KAAI+R,GACX,wBACEZ,IAAKY,EAAOlT,GACZuL,QAAS,IAAMoG,EAASuB,GACxBlJ,UAAS,yCACsB,IAA7B+B,EAASjB,QAAQV,GAAgB,4BAA8B,KAGhE8I,EAAO5B,gBAOHnJ,WAAMmC,KAAYiP,ICxBjC,SAASC,GAAqB9L,GAC5B,OACE,wBACE1N,GAAI0N,EAAM+L,UACVzP,UACE0D,EAAMjI,MAAQiI,EAAMjI,KAAKhE,OAAS,EAC9B,8EACA,uDAGLiM,EAAMjI,MAKE0C,cAA8BqR,I,uBCEtC,MAAME,WAAqBvR,gBAUhCH,YAAY2R,GACVC,MAAMD,GADoC,KANnC3X,MAA4B,CACnC6X,cAAc,EACdC,QAAQ,EACRC,UAAW7f,KAAKwT,MAAMsM,UAGoB,KAD5CC,eAC4C,OA6D5CC,WAAa,KACX,GAAIhgB,KAAKigB,eAAgB,CAAC,MAChBC,EAAUlgB,KAAK+f,UAAUrQ,QAAzBwQ,MACJlgB,KAAK8H,MAAM+X,SACb7f,KAAKmgB,KAAKD,GAEVlgB,KAAKogB,MAAMF,KAjEflgB,KAAK+f,UAAY9R,cAEnBoS,oBACMrgB,KAAKwT,MAAMsM,UACbrU,YAAW,KACT,GAAIzL,KAAKigB,eAAgB,CAAC,MAChBC,EAAUlgB,KAAK+f,UAAUrQ,QAAzBwQ,MACJlgB,KAAKwT,MAAM8M,cACZJ,EAAMA,MAA2BI,YAActgB,KAAKwT,MAAM8M,aAE7DtgB,KAAKugB,KAAKL,GACVlgB,KAAKmgB,KAAKD,MAEX,KAEDlgB,KAAKigB,gBACPjgB,KAAK+f,UAAUrQ,QAAQ8Q,uBACrBxgB,KAAKygB,iBAAiBC,KAAK1gB,OAKjCygB,iBAAiB3Y,EAAO6Y,GACtB3gB,KAAKie,SAAS,CAAE0B,aAAc7X,EAAM6X,eAChC7X,EAAM8Y,eAAiBD,EAAUC,aACnC/f,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACNuN,IAAK,CAAC,yBACNC,OAAQ,CAAC,mBAEX,MAEQ1G,EAAM8Y,cAAgBD,EAAUC,cAC1C/f,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACNuN,IAAK,CAAC,kBACNC,OAAQ,CAAC,0BAEX,KAKNqS,iBACE,OAAI7gB,KAAKwT,MAAMsN,WAEX,uBAAKhR,UAAU,YACb,8BACG9P,KAAKwT,MAAMsN,WACX9gB,KAAKwT,MAAMuN,cAKb,KAcTR,KAAKL,GACHA,EAAMc,OAAQ,EAGhBb,KAAKD,GACHA,EAAMC,OACNngB,KAAKie,SAAS,CACZ4B,UAAU,IAIdO,MAAMF,GACJA,EAAME,QACNpgB,KAAKie,SAAS,CACZ4B,UAAU,IAIdnL,SACE,OACE,uBAAK5E,UAAU,eAAehK,GAAI9F,KAAKwT,MAAM1N,IAC3C,wBAAMgK,UAAS,uDACb,uBAAKA,UAAU,cACZ9P,KAAKwT,MAAMyN,aACV,0BAAQnR,UAAU,YAAY9P,KAAKwT,MAAMzN,SAE3C,uBAAK+J,UAAU,sBACb,gBAAC,UAAD,CAAQH,IAAK3P,KAAK+f,UAAWmB,aAAa,GACxC,0BAAQlP,IAAKhS,KAAKwT,MAAM2N,SAASC,MACjC,0BAAQpP,IAAKhS,KAAKwT,MAAM2N,SAASE,MACjC,gBAAC,iBAAD,CAAe1Q,UAAU,IACzB,gBAAC,cAAD,CAAY2Q,uBAAwBthB,KAAK8H,MAAM+X,YAEjD,uBACE/P,UAAW9P,KAAK8H,MAAM+X,SAAW,YAAc,SAC/CxO,QAASrR,KAAKggB,YAEd,uBAAKjO,IAAI,OAAOC,IC/IjB,isED+IqCT,MAAM,KAAKC,OAAO,UAI3DxR,KAAK6gB,mBAMNZ,eACN,OAAkC,OAA3BjgB,KAAK+f,UAAUrQ,S,gCEzInB,MAAM6R,WAAqBtT,gBAG/B,eAAD,oBACAuT,SAA8CvT,cAD9C,KAESnG,MAA4B,CACnC8X,QAAQ,GAHV,KAKS6B,MAAQ,CAEfC,MAAO,CACLC,gBAAiB,2BACjBlQ,KAAM,OACNmQ,QAAS,GACTC,WAAY,gBAEZ,SAAU,CACRD,QAAS,IAGbE,uBAAwB,CAAEC,WAAY,IACtCC,wBAAyB,CAAEC,YAAa,IACxCC,oBAAqB,CACnBC,aAAc,GACd3Q,OAAQ,GACR4Q,WAAY,GAEZ,4BAA6B,CAC3B5Q,OAAQ,GACR6Q,QAAS,KAIb7V,MAAO,CACL,SAAU,CACRoV,QAAS,GAEXnQ,KAAM,UACNmQ,QAAS,GACTC,WAAY,aAEdlK,UAAW,CACT2K,WAAY,4BAIdC,OAAQ,CACNrS,MAAO,SAETsS,YAAa,CACXtS,MAAO,uBA/CX,KAmDAuS,eAAiB,KACf,MAAM7C,GAAU5f,KAAK8H,MAAM8X,OAC3B5f,KAAKie,SACH,CACE2B,WAEF,KACEnU,YAAW,KACTgF,SAAS5N,KAAK6f,aAAa,QAAS,OAEtC7hB,OAAO8hB,IAAI5hB,YACT,CACEC,KAAM,eACNuN,IAAKqR,EAAS,CAAC,wBAA0B,CAAC,kBAC1CpR,OAAQoR,EAAS,CAAC,kBAAoB,CAAC,yBAEzC,SAMRgD,iBACE,OACE,gBAAC,KAAD,CACEC,OAAQ,CACN,CAAE7Q,IAAKhS,KAAKwT,MAAMsP,SAAUC,QAAS/iB,KAAKwT,MAAMwP,YAAc,KAEhEpD,OAAQ5f,KAAK8H,MAAM8X,OACnBqD,QAASjjB,KAAKyiB,eACdS,gBAAgB,EAChBzB,MAAOzhB,KAAKyhB,QAKlB/M,SACE,OACE,uBAAK5E,UAAU,eAAehK,GAAI9F,KAAKwT,MAAM1N,IAC3C,wBAAMgK,UAAU,0EACZ9P,KAAKwT,MAAM2P,2BAA6BnjB,KAAK4iB,iBAC9C5iB,KAAKwT,MAAMyN,aACV,0BAAQnR,UAAU,YAAY9P,KAAKwT,MAAMzN,SAE3C,uBACEgM,IAAK/R,KAAKwT,MAAMwP,YAAc,GAC9BrT,IAAK3P,KAAKwhB,SACVxP,IAAKhS,KAAKwT,MAAMsP,SAChBzR,QACErR,KAAKwT,MAAM2P,+BACPC,EACApjB,KAAKyiB,oB,WC1HR,OAA0B,0CCelC,MAAMY,GAAmB7P,IAW9B,IAAI8P,EAAW9P,EAAM+P,YAAYC,MAAM,KAAKC,MAE5C,OADAH,EAAWA,EAAWI,mBAAmBJ,GAAY,KAEnD,uBAAKxT,UAAU,eAAehK,GAAI0N,EAAM1N,IACtC,wBACEkQ,MAAM,oBACNlG,UAAU,iFAET0D,EAAMyN,aACL,0BAAQnR,UAAU,YAAY0D,EAAMzN,SAGtC,0BACE+J,UAAU,+CACVuB,QAxBa,KACnB,MAAMlO,EAAIsN,SAASyM,cAAc,KACjC/Z,EAAEwgB,KAAOnQ,EAAM+P,YACfpgB,EAAE0U,OAAS,SACX1U,EAAEygB,IAAM,sBACRzgB,EAAE0gB,SAAWrQ,EAAMwC,OAAS,GAC5BvF,SAAS5N,KAAKihB,YAAY3gB,GAC1BA,EAAE4gB,QACFtT,SAAS5N,KAAKmhB,YAAY7gB,KAkBpB,yBACE,uBAAK6O,IAAKiS,GAAclS,IAAI,mBAE9B,4BACE,qBAAG4R,KAAK,uBAAuBnQ,EAAMwC,OACrC,qBAAGlG,UAAU,YAAYwT,Q,WC/CtB,OAA0B,wCCmBlC,MAAMY,WAAmBjW,gBAA2C,eAAD,oBACxEuT,SAA8CvT,cAD0B,KAGxEkW,SAAW,KACT,MAAMhhB,EAAIsN,SAASyM,cAAc,KACjC/Z,EAAEwgB,KAAO3jB,KAAKwT,MAAM4Q,SAAShiB,IAC7Be,EAAE0U,OAAS,SACX1U,EAAEygB,IAAM,sBACRzgB,EAAE4M,MAAMsU,QAAU,OAClB5T,SAAS5N,KAAKihB,YAAY3gB,GAC1BA,EAAE4gB,QACFtT,SAAS5N,KAAKmhB,YAAY7gB,IAG5BuR,SACE,OACE,uBAAK5E,UAAU,eAAehK,GAAI9F,KAAKwT,MAAM1N,IAC3C,wBACEgK,UAAU,oFACVuB,QAASrR,KAAKmkB,UAEd,2BACGnkB,KAAKwT,MAAMyN,aACV,0BAAQnR,UAAU,YAAY9P,KAAKwT,MAAMzN,SAE3C,uBACEgM,IAAI,GACJpC,IAAK3P,KAAKwhB,SACVxP,IAAKhS,KAAKwT,MAAMsP,UAAYwB,MAGhC,0BAAQxU,UAAU,4BAChB,wBAAMA,UAAU,YAAYkG,MAAOhW,KAAKwT,MAAM4Q,SAASpO,OACpDhW,KAAKwT,MAAM4Q,SAASpO,OAEvB,qBACE2N,KAAK,sBACL7T,UAAU,WACVkG,MAAM,a5BzDb,MACL,uBAAuB5T,GACrB,IAAImiB,EAcJ,OAVEA,EADEniB,EAAIwO,QAAQ,OAAS,EACZxO,EAAIohB,MAAM,KAAK,GAEfphB,EAAIohB,MAAM,KAAK,GAI5Be,EAAWA,EAASf,MAAM,KAAK,GAE/Be,EAAWA,EAASf,MAAM,KAAK,GAExBe,I4B2CiBC,gBAAgBxkB,KAAKwT,MAAM4Q,SAAShiB,U,aC3BzD,MAAMqiB,OACIC,uBAA0BC,GACX,IAAxBA,EAAapd,SACLod,EAAe,GAAM,IAAI1iB,aAEzB0iB,EAAe,IAAO,IAAI1iB,WAL7BwiB,GASIG,6BAAgCC,IAA6B,MAAD,EACrDA,EAAO5iB,WAAWuhB,MAAM,KAD6B,mBAClEsB,EADkE,KAC7DC,EAD6D,KAEzE,IAAIC,EAAuB,KAI3B,OAHID,IACFC,EAAeP,GAAgBC,uBAAuBK,IAElD,GAAN,OAAUF,EAAS,EAAI,IAAMC,EAAMA,EAAnC,YAA0CE,IAfjCP,GAkBJQ,sBAAwB,CAC7BJ,EACAK,EACAzK,EACA0K,KAEA,MAAMC,EAAeX,GAAgBG,6BAA6BC,GAClE,OAAIM,EACI,OAAN,OAAcC,EAAd,YACEF,EAAS,UAAY,GADvB,YAEIzK,EAFJ,aAEgB0K,GAEV,OAAN,OAAcC,EAAd,YAA8BF,EAAS,WAAa,IAApD,YAA2DzK,IA9BpDgK,GAkCJY,8BAAiCC,IAAkB,MACjDC,EADgD,YACpCC,aAAU,GAAGF,GAAQzS,IADe,MAEvD,IAAI4S,EAAW,GACf,GAAIF,EAAU,CACZ,MAAMG,EAAcH,EADR,EAEed,GAAgBkB,oBACzCD,GADMb,EAFI,EAEJA,OAAQK,EAFJ,EAEIA,OAGhBO,EAAWhB,GAAgBQ,sBACzBJ,EACAK,EACAQ,EAAYE,QACZF,EAAYG,QAGhB,OAAOJ,GAjDEhB,GAoDJqB,4BAA8B,CAACX,EAAQN,EAAgBkB,KAC5D,MAAMX,EAAeX,GAAgBG,6BAA6BC,GAClE,MAAO,UAAGM,EAAH,gBAAiBC,EAAjB,YAAiCW,EAAS,SAAW,IAAKrM,QAtDxD+K,GAyDJkB,oBAAuBJ,IAC5B,IAAIV,EAASU,EAASS,SAClBd,GAAS,EACb,GAAIK,EAASU,oBAAsBV,EAASU,mBAAmB1e,OAAQ,CACrE,MAAM+Y,EAAclY,KAAKC,MAD4C,2BAErE,YAAsBkd,EAASU,mBAA/B,+CAAmD,CAAC,MAAzCC,EAAwC,QAE/C5F,IAAgB4F,EAAQC,eACxB7F,IAAgB4F,EAAQE,cAExBlB,GAAS,EACTL,GAAUqB,EAAQrB,SAR+C,mFAYvE,MAAO,CACLA,SACAK,WA1EOT,GA8EJ4B,gBAAkB,CAACC,EAAiBC,KACzC,IAAIC,EAAWD,EAAaP,SAAS/jB,WACjCijB,GAAS,EACb,GACEqB,EAAaN,oBACbM,EAAaN,mBAAmB1e,OAChC,CACA,MAAMkf,EAAYF,EAAaN,mBAAmBS,MAChDC,GACEC,OAAOD,EAAIR,gBAAkBG,GAC7BA,GAAWM,OAAOD,EAAIP,eAEtBK,IACFD,EAAWC,EAAU5B,OACrBK,GAAS,GAGb,MAAO,CAAEL,OAAQ2B,EAAUtB,WA/FlBT,GAkGJoC,cAAiBtd,IACtB,MAAMud,EAA4CtB,aAAU,GACtDc,EAAUle,KAAKC,MACf0e,EAAKD,GAAaA,EAAUvd,IAAeud,EAAUvd,GAAY,GAHX,EAIjCkb,GAAgB4B,gBAAgBC,EAASS,GAA5D7B,EAJoD,EAIpDA,OAAQL,EAJ4C,EAI5CA,OAEhB,MAAO,CACLmC,aAAcD,EAAGE,aACjB1d,WAAYwd,EAAGG,GACf/B,OAAQ4B,EAAGlB,OACXsB,UAAWJ,EAAGK,UACdvC,SACA1O,YAAY,EACZkR,YAAaN,EAAGnB,QAChB0B,oBAAqB7C,GAAgBqB,4BACnCiB,EAAGlB,OACHhB,EACAK,KAnHKT,GAwHJ8C,gBAAkB,KACvB,MAAMT,EAA4CtB,aAAU,GACtDgC,EAEF,GAEJ,IAAK,MAAMpP,KAAO0O,EAChB,GAAI1O,KAAO0O,EAAW,CACpB,MAAMC,EAAKD,GAAaA,EAAU1O,IAAQ0O,EAAU1O,GAAK,GACrD2O,GAAMA,EAAGnB,UACX4B,EAAOT,EAAGnB,SAAW4B,EAAOT,EAAGnB,UAAY,GAC3C4B,EAAOT,EAAGnB,SAASpkB,KAAKijB,GAAgBoC,cAAczO,KAM5D,MAAMqP,EAAqBxN,OAAOC,KAAKsN,GAAQxL,OAC/C,IAAK,MAAMvB,KAAW+M,EACpB,GAAI/M,KAAW+M,EAAQ,CACrB,MAAME,EAAUF,EAAO/M,GACnBiN,GAAWA,EAAQngB,OAAS,GAC9BmgB,EAAQ1L,MAAK,CAAC7Y,EAAGwkB,IACRxkB,EAAE6jB,aAAeW,EAAEX,eAKlC,MAAMY,EAAqBC,qBAAkBC,QAC3C,CAACC,EAAmBC,EAAW1gB,KAE3Bwf,EAAUkB,IACVlB,EAAUkB,GAAWzgB,SACiC,IAAtDwgB,EAAQnX,QAAQkW,EAAUkB,GAAW,GAAGpC,UAExCmC,EAAQvmB,KAAKslB,EAAUkB,GAAW,GAAGpC,SAEhCmC,IAET,IAEIE,EAAsCR,EAAmBxgB,KAC7DogB,GACSG,EAAOH,KAQlB,MAAO,CACLa,iBAN0CN,EAAmB3gB,KAC7DogB,GACSG,EAAOH,KAKhBY,qB,OCxLC,MAAME,WAAgCla,YAU3CH,YAAY0F,GACVkM,MAAMlM,GAD0C,KAN1C4U,SAA8Cna,cAMJ,KAL1Coa,YAAiDpa,cAKP,KAJ1Cqa,mBAEJra,cAE8C,KAsB1Csa,gBAAkB,KACxBvoB,KAAKie,UACH0C,IACS,CACLf,QAASe,EAAUf,WAGvB,KAEE,GADkB5f,KAAK8H,MAAM8X,OACd,CACb,MAAM4I,EAAQxoB,KAAKqoB,YAAY3Y,QAC/B,GAAI8Y,EAAO,CACT,MAAMC,EAAcD,EAAMhS,cAAc,eACpCiS,GACFA,EAAYC,iBAEd,MAAMC,EAAoB3oB,KAAKsoB,mBAAmB5Y,QAClD,GAAIiZ,EAAmB,CACrB,MAAMC,EAAe/nB,OAAOgoB,YACtBC,EAAwBH,EAAkBI,wBAG1CC,EACJJ,EAHqBE,EAAsBnG,IACnBmG,EAAsBtX,OAG1CyX,EAAYT,EAAM/R,cACpBwS,IACET,EAAM7R,aAAeqS,GACvBC,EAAUC,UAAU1a,OAAO,YAC3Bya,EAAUC,UAAU3a,IAAI,iBAExB0a,EAAUC,UAAU1a,OAAO,eAC3Bya,EAAUC,UAAU3a,IAAI,qBArDU,KA+D1C4a,oBAAsB,CAACnQ,EAA6BoQ,EAAO5kB,KACjExE,KAAKie,SAAS,CACZ2B,QAAQ,IAEN5f,KAAKwT,MAAM6V,oBACbrpB,KAAKwT,MAAM6V,mBAAmBC,eAC5BtQ,EAAOuQ,YACPH,EACA5kB,IArEJ,MAAMglB,EAA6B,GACnCxpB,KAAKwT,MAAMgW,YAAYC,SAAQ,CAACzQ,EAAQoQ,KACtCI,EAAYhoB,KACV,sBAAI4W,IAAKgR,EAAOnQ,SAAUD,EAAO0Q,YAC/B,4BAAO1Q,EAAO0Q,iBAIpB1pB,KAAK8H,MAAQ,CACX6hB,YAAaH,EACb5J,QAAQ,GAIZS,oBACMrgB,KAAKooB,UAAYpoB,KAAKooB,SAAS1Y,SAChC1P,KAAKooB,SAAS1Y,QAAwB+E,QA0D3CC,SAAU,MAAD,EAOH1U,KAAKwT,MAAM6V,mBALbO,EAFK,EAELA,WACAC,EAHK,EAGLA,gBACAC,EAJK,EAILA,mBACAC,EALK,EAKLA,eACAC,EANK,EAMLA,kBAEIC,EACJjqB,KAAKwT,MAAM6V,mBAAmBS,mBAAmBviB,OAAS,EAC5D,OACE,2BACE,uBACEuI,UAAS,gCACP9P,KAAK8H,MAAM8X,OAAS,SAAW,IAEjCvO,QAASuY,EAAWriB,OAAS,EAAIvH,KAAKuoB,qBAAkBnF,IAG1D,yBACEtT,UAAS,wBACe,IAAtB8Z,EAAWriB,OAAe,WAAa,GADhC,YAELvH,KAAK8H,MAAM8X,OAAS,WAAa,IACrC9Z,GAAG,yBAEH,uBACE6J,IAAK3P,KAAKsoB,mBACVxY,UAAU,sBACVuB,QAASuY,EAAWriB,OAAS,EAAIvH,KAAKuoB,qBAAkBnF,GAExD,qBACEtT,UAAS,mBACP9P,KAAK8H,MAAM8X,OAAS,iBAAmB,KAGxCqK,EAAeH,EAAqBD,GAEvC,uBACE/Z,UAAU,oCACV+O,QAASkL,GAERC,IAGL,uBAAKla,UAAU,kDACb,sBAAIH,IAAK3P,KAAKqoB,aACXuB,EAAW3iB,KAAI,CAAC+R,EAAQoQ,IAErB,sBACEhR,IAAKgR,EACLtZ,UAAS,kCACPma,GAAgBH,IAAuB9Q,EAAO0Q,WAC1C,WACA,GAHG,YAIL1Q,EAAO7C,WAAa,WAAa,IACrC9E,QACE2H,EAAO7C,WACH,KACAnW,KAAKmpB,oBAAoBzI,KAAK1gB,KAAMgZ,EAAQoQ,IAGjDpQ,EAAO0Q,mBCxKrB,MAAMQ,GAIXpc,YAAYqc,GAIR,KAPJhU,gBAOG,OANHuT,gBAMG,OALHH,iBAKG,EACDvpB,KAAKmW,WAAagU,EAAOhU,WACzBnW,KAAK0pB,WAAaS,EAAOT,WACzB1pB,KAAKupB,YAAcY,EAAOZ,aCCvB,MAAMa,WAAsBnc,YA4BjCH,YAAY0F,GACVkM,MAAMlM,GADgC,KAxBhC6W,yBAwBgC,OAvBhCC,8BAuBgC,OAtBhCC,oBAsBgC,OArBhCC,8BAAmD,GAqBnB,KApBhCC,mBAAsC,GAoBN,KAnBhCC,gBAAmC,CACzC,CACErD,YAAa,wCACblR,YAAY,EACZ6Q,aAAc,EACdnC,OAAQ,GACRM,OAAQ,GACRgC,UAAW,GACX5d,WAAY,GACZ+d,oBAAqB,KAUe,KAPhCqD,4BAEJ,GAKoC,KAJhCC,2BAEJ,GAEoC,KADxCC,8BAAgC,iCACQ,KAgCxCC,aACEC,IAEO,CACLC,oBAAqBD,EAAsB1D,YAC3C4D,gCACEF,EAAsBzD,oBACxByD,wBACAG,sBAAsB,IAxCc,KA4CxCC,+BAAkC7F,GACzBtlB,KAAKwqB,8BAA8B9D,MAAK0E,GAClBA,EAAEC,MAAK7mB,GAAKA,EAAE+E,aAAe+b,MA9CpB,KAmDxCgG,iCAAmC,KAAO,MAAD,EAInC7G,GAAgB8C,kBAFlBU,EAFqC,EAErCA,iBACAC,EAHqC,EAGrCA,iBAEFloB,KAAKwqB,8BAAgCtC,EAAiBqD,OACpD,CAACvrB,KAAK0qB,iBACNzC,GAEFjoB,KAAK2qB,4BAA8B3qB,KAAKwqB,8BAA8BvjB,KACpE,CAACukB,EAAapC,IACG,IAAIc,GAAiB,CAClC/T,WAAYqV,EAAY,GAAGrV,WAC3BuT,WAAY8B,EAAY,GAAGnE,YAC3BkC,YAAaiC,EAAY,QAjEO,KAwExCC,sBAAyBnG,IACvBtlB,KAAKyqB,mBAAqBzqB,KAAKmrB,+BAC7B7F,GAEFtlB,KAAK4qB,2BAA6B5qB,KAAKyqB,mBAAmBxjB,KACxD,CAACykB,EAAYtC,IACI,IAAIc,GAAiB,CAClC/T,WAAYuV,EAAWvV,WACvBuT,WAAYgC,EAAWpE,oBACvBiC,YAAamC,OAjFmB,KAwFxCC,gBAAkB,CAACC,EAAyBxC,KAC1CppB,KAAK6rB,wBACL7rB,KAAK8rB,2BAA2B1C,IA1FM,KA6FxC0C,2BAA6B,CAACC,EAAsBC,EAAc,KAChE,MAAMC,EAAqBjsB,KAAKwqB,8BAA8BuB,GAC5DC,GAEFhsB,KAAKyqB,mBAAqBzqB,KAAKwqB,8BAA8BuB,GAC7D/rB,KAAK4qB,2BAA6B5qB,KAAKyqB,mBAAmBxjB,KACxD,CAACykB,EAAYtC,IACI,IAAIc,GAAiB,CAClC/T,WAAYuV,EAAWvV,WACvBuT,WAAYgC,EAAWpE,oBACvBiC,YAAamC,MAKnB1rB,KAAKie,SAAS,CACZ+M,oBAAqBiB,EAAmB5E,cAEtCrnB,KAAKyqB,mBAAmBljB,OAAS,EACnCvH,KAAKie,SAAS,CACZgN,gCAAiC,KAGnCjrB,KAAKksB,iBAAiB,IApHc,KAwHxCA,iBAAoBF,IAClB,MAAMG,EAAiBnsB,KAAKyqB,mBAAmBuB,GAC/ChsB,KAAKie,SAAS,CACZgN,gCAAiCkB,EAAe7E,oBAChDyD,sBAAuBoB,KA5Ha,KAgIxCC,eAAiB,CAACR,EAAyBxC,KACzCppB,KAAK6rB,wBACL7rB,KAAKksB,iBAAiB9C,IAlIgB,KAqIxCyC,sBAAwB,KACtB7rB,KAAKie,SAAS,CACZiN,sBAAsB,KAvIc,KA2IxCmB,mBAAqB,KACnB,GACErsB,KAAK8H,MAAMkjB,qBACXhrB,KAAK8H,MAAMmjB,gCACX,CACA,MAAM3F,EAAOtlB,KAAK8H,MAAMijB,sBAAsBxhB,WACxC+iB,EAAiB7H,GAAgBY,8BACrCC,GAEFtlB,KAAKqqB,oBAAsBrqB,KAAK8H,MAAMkjB,oBACtChrB,KAAKsqB,yBAA2BtqB,KAAK8H,MAAMijB,sBAC3C/qB,KAAKuqB,eAAiBvqB,KAAKyqB,mBAC3BzqB,KAAKwT,MAAM+Y,WAAWjH,EAAMgH,QAE5BtsB,KAAKie,SAAS,CACZiN,sBAAsB,KA1JY,KA+JxCsB,mBAAqB,KACnBxsB,KAAKie,SAAS,CACZ+M,oBAAqBhrB,KAAKqqB,oBAC1BU,sBAAuB/qB,KAAKsqB,yBAC5BW,gCAAiCjrB,KAAKsqB,yBACnChD,sBAELtnB,KAAKyqB,mBAAqBzqB,KAAKuqB,eAC/BvqB,KAAKwT,MAAM+Y,cArKXvsB,KAAKysB,gBAAgBjZ,GACrB,MAAMuX,EAAwBtG,GAAgBoC,cAC5CrT,EAAMjK,YAERvJ,KAAK8H,MAAQ9H,KAAK8qB,aAAaC,GAC/B/qB,KAAKqqB,oBAAsBrqB,KAAK8H,MAAMkjB,oBACtChrB,KAAKsqB,yBAA2BtqB,KAAK8H,MAAMijB,sBAC3C/qB,KAAKuqB,eAAiBvqB,KAAKyqB,mBAG7BgC,gBAAgBjZ,GACdxT,KAAKsrB,mCACLtrB,KAAKyrB,sBAAsBjY,EAAMjK,YAGnCgL,mBAAmBmY,GAEjB,GADwBA,EAAUnjB,aAAevJ,KAAKwT,MAAMjK,WACvC,CACnBvJ,KAAKyrB,sBAAsBiB,EAAUnjB,YACrC,MAAMwhB,EAAwBtG,GAAgBoC,cAC5C6F,EAAUnjB,YAENojB,EAAW3sB,KAAK8qB,aAAaC,GACnC/qB,KAAKqqB,oBAAsBsC,EAAS3B,oBACpChrB,KAAKsqB,yBAA2BqC,EAAS5B,sBACzC/qB,KAAKuqB,eAAiBvqB,KAAKyqB,mBAC3BzqB,KAAKie,SAAS0O,IA6IlBjY,SACE,MAAMiD,EAAYlH,SAAS+F,cAAc,gBACzC,OACEmB,GACAO,uBACE,uBAAKpI,UAAU,kBAAkBsB,cAAY,kBAC3C,uBAAKtB,UAAU,kBACb,2CAEE,wBAAMA,UAAU,cAAcuB,QAASrR,KAAKwsB,sBAE9C,qFACA,gBAAC,GAAD,CACEhD,YAAa,GACbH,mBAAoB,CAClBS,mBAAoB9pB,KAAK8H,MAAMkjB,oBAC/BpB,WAAY5pB,KAAK2qB,4BACjBrB,eAAgBtpB,KAAK2rB,gBACrB9B,gBAAiB,GACjBE,gBAAgB,KAIpB,gBAAC,GAAD,CACEP,YAAa,GACbH,mBAAoB,CAClBS,mBAAoB9pB,KAAK8H,MAAMmjB,gCAC/BrB,WAAY5pB,KAAK4qB,2BACjBtB,eAAgBtpB,KAAKosB,eACrBvC,gBAAiB,iCACjBE,eAAgB/pB,KAAK8H,MAAMojB,qBAC3BlB,kBAAmB,yCAGvB,uBAAKja,MAAO,CAAE6c,MAAO,QAASC,OAAQ,YACpC,gBAAC9W,GAAD,CACExK,KAAK,WACL2K,aAAclW,KAAKqsB,wBAK3B1U,IC3PO,WAA0B,qCCA1B,OAA0B,uCCA1B,OAA0B,gD,OC4FlC,SAASmV,GAAarZ,GAC3B,OAAOA,EAAKI,cAAgB,IAAMJ,EAAKK,WAAa,IAAML,EAAKM,UAG1D,SAASgZ,GAAatZ,GAC3B,MAAMuZ,EAAQvZ,EAAK+P,MAAM,KACzB,OAAO,IAAIpb,KAAKT,SAASqlB,EAAM,IAAKrlB,SAASqlB,EAAM,IAAKrlB,SAASqlB,EAAM,KAGlE,SAASC,GAAQxZ,GACtB,MAAM0K,EAAO4O,GAAatZ,GAE1B,OADA0K,EAAK+O,QAAQ/O,EAAKpK,UAAY,GACvB+Y,GAAa3O,G,8CC5Ff,WACL9b,GADK,uCAAAc,EAAA,yDAGCvC,EAAUa,EAAgB2B,cAEb,OADbC,EAAczC,EAAQ2C,cAJvB,sBAMG,IAAIsD,MAAM,qBANb,uBAQiB1E,EAAUwB,KAAV,UACjBC,kCADiB,8BAEpB,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAK,2BAAMR,GAAP,IAAgBgB,kBAdnB,cAQC8pB,EARD,gBAiBcA,EAAQjpB,OAjBtB,WAiBCA,EAjBD,QAkBKC,QAlBL,0CAmBID,GAnBJ,QA8BL,IAAWuP,KATL2Z,EAIFlpB,EAAKW,KAAKuoB,iBACX5J,MAAM,KACNvc,KAAKomB,GAAiB1lB,SAAS0lB,MACjBjmB,UACXkmB,EAAoC,GACvBppB,EAAKW,KAAKyoB,MAAO,CASlC,IARMC,EAAoB,GADQ,EAELrpB,EAAKW,KAAKyoB,MAAM7Z,GAArCgC,EAF0B,EAE1BA,GAAI+X,EAFsB,EAEtBA,GAAIC,EAFkB,EAElBA,SACZhY,GACF8X,EAAU/rB,QAAQiU,GAEhB+X,GACFD,EAAU/rB,QAAQgsB,GAEXlmB,EAAIimB,EAAUhmB,OAAS,EAAGD,GAAK,EAAGA,IACzCimB,EAAUjmB,GAAGmmB,SAAWA,EAE1BH,EAAM7Z,GAAQ8Z,EA1CX,yBA6CE,CACLD,QACAnpB,SAAS,EACTipB,iBAAkB,IAAIhlB,QAAQglB,KAhD3B,6C,sBAoDA,SAAeM,GAAtB,mC,8CAAO,WACLrrB,GADK,qBAAAc,EAAA,yDAGCvC,EAAUa,EAAgB2B,cAEb,OADbC,EAAczC,EAAQ2C,cAJvB,sBAMG,IAAIsD,MAAM,qBANb,uBAQiB1E,EAAUwB,KAAV,UACjBC,kCADiB,0BAEpB,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAK,2BAAMR,GAAP,IAAgBgB,kBAdnB,cAQC8pB,EARD,gBAiBcA,EAAQjpB,OAjBtB,cAiBCA,EAjBD,yBAkBEA,EAAKW,MAlBP,6C,oEAqBA,WACLxC,GADK,qBAAAc,EAAA,yDAGCvC,EAAUa,EAAgB2B,cAEb,OADbC,EAAczC,EAAQ2C,cAJvB,sBAMG,IAAIsD,MAAM,qBANb,uBAQiB1E,EAAUwB,KAAV,UACjBC,kCADiB,qCAEpB,CACEhB,QAAS,CACP,eAAgB,oBAElBC,KAAK,2BAAMR,GAAP,IAAgBgB,kBAdnB,cAQC8pB,EARD,gBAiBcA,EAAQjpB,OAjBtB,cAiBCA,EAjBD,yBAkBEA,EAAKW,MAlBP,6C,6BCjFA,MAAM8oB,GAAUna,GAEnB,uBAAK1D,UAAU,mBACb,2BACE,uBAAKA,UAAU,WACb,qBAAGA,UAAU,8CAEf,8BAAM0D,EAAMjI,KAAOiI,EAAMjI,KAAO,MCqFxC,SAAS1D,GAAQC,EAAcC,GAC7B,OAAQA,EAAO/G,MACb,IAAK,cACH,OAAO,2BACF8G,GADL,IAEEslB,iBAAkB,KAClBE,MAAO,GACPM,cAAe,KACfC,kBAAmB,KACnBC,sBAAsB,EACtBC,qBAAsB,EACtBC,aAAc,KACdC,gBAAiB,KACjBC,UAAWpB,GAAa,IAAI1kB,QAGhC,IAAK,oBAAqB,CACxB,MAAMqL,EAAOsZ,GAAajlB,EAAMomB,WAEhC,OADAza,EAAKyZ,QAAQzZ,EAAKM,UAAYhM,EAAOomB,cAC9B,2BACFrmB,GADL,IAEEimB,qBAAsB,EACtBG,UAAWpB,GAAarZ,KAG5B,IAAK,QAAS,CACZ,MAAM0K,EAAW,2BACZrW,GADY,IAEfslB,iBAAkBrlB,EAAOlD,KAAKuoB,iBAC9BE,MAAM,2BAAMxlB,EAAMwlB,OAAUvlB,EAAOlD,KAAKyoB,SAE1C,IAAK,IAAI7Z,EAAO1L,EAAOqmB,MAAO3a,IAAS1L,EAAOsmB,KAAO,CACnDlQ,EAAKmP,MAAM7Z,GAAQ0K,EAAKmP,MAAM7Z,IAAS,GACvC,MAAM6a,EAAWvB,GAAatZ,GAC9B6a,EAASpB,QAAQoB,EAASva,UAAY,GACtCN,EAAOqZ,GAAawB,GAEtB,OAAOnQ,EAET,IAAK,gBAAiB,CACpB,MAAMA,EAAW,2BACZrW,GADY,IAEfwlB,MAAM,eAAMxlB,EAAMwlB,SAEpB,IAAK,IAAI7Z,EAAO1L,EAAOqmB,MAAO3a,IAAS1L,EAAOsmB,KAAO,CACnDlQ,EAAKmP,MAAM7Z,GAAQ,KACnB,MAAM6a,EAAWvB,GAAatZ,GAC9B6a,EAASpB,QAAQoB,EAASva,UAAY,GACtCN,EAAOqZ,GAAawB,GAEtB,OAAOnQ,EAET,IAAK,yBACH,OAAO,2BAAKrW,GAAZ,IAAmBimB,qBAAsBhmB,EAAOwmB,WAClD,IAAK,cACH,OAAO,2BAAKzmB,GAAZ,IAAmBkmB,aAAcjmB,EAAOymB,OAC1C,IAAK,qBACH,OAAO,2BAAK1mB,GAAZ,IAAmB+lB,kBAAmB9lB,EAAO0mB,UAC/C,IAAK,aACH,OAAO,2BAAK3mB,GAAZ,IAAmBmmB,gBAAiBlmB,EAAOlD,OAC7C,IAAK,iBACH,OAAO,2BACFiD,GADL,IAEE8lB,cAAe,CACbpmB,QAASO,EAAOP,QAChBknB,WAAY3mB,EAAO2mB,YAErBV,aAAc,KACdH,kBAAmB,OAGvB,IAAK,sBACH,OAAO,2BACF/lB,GADL,IAEE8lB,cAAe,KACfC,kBAAmB,KACnBG,aAAc,KACdV,MAAO,KAGX,IAAK,0BACH,OAAO,2BAAKxlB,GAAZ,IAAmBgmB,qBAAsB/lB,EAAOzH,QAClD,IAAK,iBACH,MAAMiuB,GAAYzmB,EAAMimB,qBAAuBhmB,EAAOwmB,UAAY,EAC5D9a,EAAOsZ,GAAahlB,EAAOzH,OAEjC,OADAmT,EAAKyZ,QAAQzZ,EAAKM,UAAYwa,GACvB,2BACFzmB,GADL,IAEEomB,UAAWpB,GAAarZ,GACxBsa,qBAAsBQ,IAE1B,IAAK,UACH,OAAO,2BAAKzmB,GAAZ,IAAmB6mB,WAAY5mB,EAAOzH,QACxC,QACE,MAAM,IAAIuG,OAIhB,SAASmf,GAASxS,GAChB,MAAMrC,EAAUlB,qBAAW3B,GACrBc,EAAaa,qBAAWjC,GACxBuX,EAAWlW,mBACf,IAAMoV,GAAgBY,8BAA8B7R,EAAMjK,aAC1D,CAACiK,EAAMjK,aALsC,EAOpB8M,oBAAkB,GAPE,mBAOxCuY,EAPwC,KAOjCC,EAPiC,KAQ/C7f,qBAAU,KACHI,EAAWzG,MACdkmB,GAAU,KAEX,CAACzf,IACJ,MAAMmd,EAAalR,uBAChB9R,IACmB,MAAdA,GACF4H,EAAQpE,eAAexD,GAEzBslB,GAAU,KAEZ,CAAC1d,IAGH,OAAI2d,MAAMnnB,SAAS6L,EAAMjK,cACvB4H,EAAQpE,eAAe8F,IAChB,MAGP,yBAAK/C,UAAU,uBACZ8e,GACC,kBAAC,GAAD,CACErlB,WAAYiK,EAAMjK,WAAWtH,WAC7BsqB,WAAYA,IAGhB,wBAAIlb,QAAS,IAAMwd,GAAU,IAAQtJ,GACrC,yBAAKzV,UAAU,WAAWyV,IAKhC,SAASwJ,KAAiB,MAAD,EACC1Y,mBAAiB,IADlB,mBAChB9K,EADgB,KACVyjB,EADU,KAQvB,OANAhgB,qBAAU,KACR,MAAMvB,EAAUhC,YAAW,KACzBujB,EAAQ,0DACP,KACH,MAAO,IAAMpjB,aAAa6B,KACzB,IACI,kBAACkgB,GAAD,CAAQpiB,KAAMA,IAGvB,SAAS0jB,GAAUzb,GACjB,MAAM2C,EAAa3C,EAAM7C,SACzB,OACE,4BACEb,UAAS,wBAAmBqG,EAAa,WAAa,IACtD9E,QAAU8E,OAA6BiN,EAAhB5P,EAAMnC,QAC7B2E,MAAQG,EAA6D,GAAhD,+CAErB,yBAAK5E,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACFH,KAAM0E,EAAa,UAAY,GAC/BrG,UAAWqG,EAAa,GAAK,kBAC7BzE,SAAS,cAOnB,SAASwd,GAAU1b,GACjB,MAAM7C,EAAW6C,EAAM7C,SACvB,OACE,4BACEb,UAAS,oBAAea,EAAW,WAAa,IAChDU,QAAUV,OAA2ByS,EAAhB5P,EAAMnC,QAC3B2E,MAAQrF,EAAuD,GAA5C,2CAEnB,yBAAKY,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACF9B,UAAWa,EAAW,GAAK,kBAC3Bc,KAAMd,EAAW,UAAY,GAC7Be,SAAS,cAenB,SAASyd,GAAS3b,GAChB,MAAM7C,EAAW6C,EAAM7C,SACjB8C,EAAOsZ,GAAavZ,EAAM4b,MAAM5b,EAAM+a,WAC5C,OACE,wBAAIze,UAAYa,EAAwB,GAAb,YACzB,gCAASG,EAAgB2C,EAAK4b,WAC9B,uBACEvf,UACE0D,EAAM6D,WAAa7D,EAAM+a,SACrB,mCACA,GAENld,QAAS,IAAMmC,EAAMnC,QAAQmC,EAAM+a,WAElC9a,EAAKM,YAMd,SAASub,GAAM9b,GAKX,MAAD,EACyB6C,mBAAiB,GAD1C,mBACM+S,EADN,KACamG,EADb,OAE+BlZ,mBAC9BxV,OAAO2uB,YAAc,IAAM,EAAI,GAHhC,mBAEMzoB,EAFN,KAEgB0oB,EAFhB,KAKDzgB,qBAAU,KACR,MAAM4I,EAAW,KACf6X,EAAY5uB,OAAO2uB,YAAc,IAAM,EAAI,IAG7C,OADA3uB,OAAO+V,iBAAiB,SAAUgB,GAC3B,KACL/W,OAAOgW,oBAAoB,SAAUe,MAEtC,IACH,MAAMT,EAAQ3D,EAAM2D,MACduY,EAActG,EAAQriB,GAAYoQ,EAAM5P,OACxCooB,EAAcvG,EAAQriB,EAAW,EACvC,OACE,oCACE,yBAAK+I,UAAU,mBACK,IAAjBqH,EAAM5P,OACL,yBACEuI,UACE0D,EAAMoc,qBACF,mCACA,qBAGN,8DACA,4BACIpc,EAAMoc,sBACN,uBACEjM,KAAK,qBACLtS,QAAS,IACPmC,EAAMrJ,SAAS,CACbnJ,KAAM,0BACNV,OAAO,KALb,6BAeN,4BACG6W,EAAM0Y,MAAMzG,EAAOA,EAAQriB,GAAUE,KAAI,CAACC,EAAMkiB,IAC/C,wBACEtZ,UAAU,8DACVuB,QAAS,IAAMmC,EAAMiE,SAASvQ,GAC9BkR,IAAKgR,GAEJliB,EAAK4oB,aAMhB,yBAAKhgB,UAAU,eACb,4BACEA,UAAW6f,EAAc,WAAa,GACtCte,QAASse,OAAcvM,EAAY,IAAMmM,EAASnG,EAAQriB,IAF5D,iBAMA,4BACE+I,UAAS,UAAK4f,EAAc,WAAa,GAAhC,cACTre,QAASqe,OAActM,EAAY,IAAMmM,EAASnG,EAAQriB,IAF5D,iBAyBR,SAASgpB,GAAkBzC,GACzB,OAAc,OAAVA,QAA4BlK,IAAVkK,GACE,IAAjBA,EAAM/lB,OAGf,SAASyoB,IAAgB,SACvB7lB,EADuB,MAEvBmjB,EAFuB,iBAGvBF,EAHuB,qBAIvBU,EAJuB,UAKvBI,EALuB,WAMvB+B,EANuB,WAOvBC,EAPuB,qBAQvBnC,EARuB,MASvBoC,IAEA,MAAMC,EAAiB/gB,mBAAQ,KAC7B,MAAM+gB,EAA2B,CAAClC,EAAWjB,GAAQiB,IAErD,OADAkC,EAAe,GAAKnD,GAAQmD,EAAe,IACpCA,IACN,CAAClC,IACEmC,EAAeD,EAAerC,GAC9Bta,EAAOsZ,GAAasD,GACpBC,EAAmBhD,EAAM+C,GAOzBE,EACJnD,GACAA,EAAiBnZ,UACf8Y,GAAaqD,EAAeA,EAAe7oB,OAAS,IAAI0M,UACtDuc,EAA8BjC,GAClCpkB,EAAS,CAAEnJ,KAAM,yBAA0ButB,aAC7C,IAAIkC,EACAC,EACA3D,GAAamB,GAAWja,UAAY7L,KAAKC,QAC3CooB,EAAY,IAAMtmB,EAAS,CAAEnJ,KAAM,oBAAqBmtB,cAAe,KAErEoC,IACFG,EAAY,IAAMvmB,EAAS,CAAEnJ,KAAM,oBAAqBmtB,aAAc,KAExE,MAAMwC,EAAYP,EAAe1J,MAAKjT,IAAS6Z,EAAM7Z,KAC/Cmd,EACJD,QAAkCvN,IAArBkK,EAAMqD,GAA2BA,EAAY,KACxDL,GAAoBxC,GACtB3jB,EAAS,CAAEnJ,KAAM,0BAA2BV,OAAO,IAErD,IAAIuwB,EAAkB,EACtB,IAAK,IAAIvpB,EAAI8oB,EAAe7oB,OAAS,EAAGD,GAAK,EAAGA,IAC9C,GAAIyoB,GAAkBzC,EAAM8C,EAAe9oB,KAAM,CAC/CupB,EAAkBvpB,EAClB,MA0BJ,OAvBA0H,qBAAU,KACJ4hB,GACFV,EAAWU,KAEZ,CAACA,EAAWV,IACflhB,qBAAU,KACR,IAAK8e,EAAsB,OAC3B,IAAIra,EAAO4c,EACP9B,EAAW,EACf,OAAa,CACX,MAAMuC,EAAaxD,EAAM7Z,GACzB,QAAmB2P,IAAf0N,EACF,OAAO3mB,EAAS,CAAEnJ,KAAM,iBAAkBV,MAAOmT,EAAM8a,aAClD,GAAmB,OAAfuC,EACT,OACK,GAA0B,IAAtBA,EAAWvpB,OAGpB,OAAO4C,EAAS,CAAEnJ,KAAM,iBAAkBV,MAAOmT,EAAM8a,aAFvD9a,EAAOwZ,GAAQxZ,GAIjB8a,OAED,CAACpkB,EAAU2jB,EAAsBuC,EAAc/C,IAEhD,yBAAKxd,UAAU,oBACb,kBAACkW,GAAD,CAAUzc,WAAY0mB,IACtB,yBAAKngB,UAAU,mBACV6gB,GAAa,kBAAC5B,GAAD,OACd4B,GAAaL,GACb,oCACE,4BACGvf,EAAY0C,EAAKK,YADpB,IACkCL,EAAKI,eAEvC,yBAAK/D,UAAU,yBACb,kBAACmf,GAAD,CAAWte,UAAW8f,EAAWpf,QAASof,IAC1C,4BACE,kBAACtB,GAAD,CACEZ,SAAU,EACVa,MAAOgB,EACPzf,SAAUof,GAAkBzC,EAAM8C,EAAe,KACjD/Y,SAAU0W,EACV1c,QAASmf,IAEX,kBAACrB,GAAD,CACEZ,SAAU,EACVa,MAAOgB,EACPzf,SAAUof,GAAkBzC,EAAM8C,EAAe,KACjD/Y,SAAU0W,EACV1c,QAASmf,IAEX,kBAACrB,GAAD,CACEZ,SAAU,EACVa,MAAOgB,EACPzf,SAAUof,GAAkBzC,EAAM8C,EAAe,KACjD/Y,SAAU0W,EACV1c,QAASmf,KAGb,kBAACtB,GAAD,CAAWve,UAAW+f,EAAWrf,QAASqf,KAE5C,kBAACpB,GAAD,CACEnY,MAAOmZ,EACP7Y,SA/FQ+W,IAEhB2B,EAAM3B,GAERrkB,EAAS,CAAEnJ,KAAM,cAAewtB,UA4FtBrkB,SAAUA,EACViO,IAAKgY,EAAerC,GACpB6B,sBACGW,GAAuBxC,GAAwB8C,OAsBhE,SAASE,GAAmBvd,GAAiC,MACnDgb,EAAqBhb,EAArBgb,KAAMjlB,EAAeiK,EAAfjK,WACRgc,EAAWd,GAAgBY,8BAA8B9b,GACzDynB,EAAiBxC,EAAKwC,eAAexN,MAAM,KAC3CzX,EAAOilB,EAAevN,MACtBhQ,EAAOud,EAAejU,KAAK,KACjB7M,EAAUD,qBAAWjC,GAAYzI,SAAzCY,OACF8qB,EAAuBzd,EAAM3K,YAAYqoB,4BAC/C,IAAIC,EAAmB3d,EAAM3K,YAAYqoB,4BACzC,MAAME,EAAwB5d,EAAM3K,YAAYwoB,0BAChD,IAAIC,EAAe9d,EAAM3K,YAAY0oB,yBACrC,MAAMC,GAA0BL,GAAoB,IAAIlvB,WAAWsF,OAC7DkqB,GAAsBH,GAAgB,IAAIrvB,WAAWsF,OACrD0mB,EAAkBza,EAAMya,gBACxByD,EACJ,yBACE5hB,UAAS,kDACP0hB,GAA0B,GAAK,mBAAqB,KAGtD,yBAAK1hB,UAAU,mBACb,yBAAKA,UAAU,mBACb,wBAAIkG,MAAOib,GACRE,EACD,4BAAQtS,OAAQ2S,EAAyB,IAAzC,QAEF,2BAAI/d,GACJ,2BAAI1H,GACJ,yBACEiK,MAAOuP,EACPzV,UAAS,oBACPshB,EAAwB,mBAAqB,KAG/C,gCAAS7L,IAGV6L,EAEC,yBAAKthB,UAAU,0BACb,+BACE,2BACE9O,KAAK,WACLqX,QAAS7E,EAAMme,UACfzd,SAAU,IAAMV,EAAMoe,eAExB,gCACGN,EACD,yBAAKzS,OAAQ4S,EAAqB,IAAlC,UAXP,GAkBD,kBAAC1b,GAAD,CACEC,MAAOxC,EAAM3K,YAAYgpB,6BACzBtmB,KACEiI,EAAMse,WACJ,kBAAC/C,GAAD,MAEAvb,EAAM3K,YAAYgpB,6BAGtB1b,WAAY3C,EAAMse,WAClB7b,WAAU,iCACRzC,EAAMse,WAAa,iBAAmB,IAExC5b,aAAc,IAAM1C,EAAMue,QAAQve,EAAMgb,WAWlD,OAJIgD,EAAyB,IAAMC,EAAqB,MACtDN,GAAoBA,GAAoB,IAAItB,MAAM,EAAG,IACrDyB,GAAgBA,GAAgB,IAAIzB,MAAM,EAAG,KAG7C,yBAAK/f,UAAU,gCACb,yBAAKA,UAAU,uBACb,4BACEA,UAAS,WAEFme,GAAmBza,EAAMse,WACxB,wBACA,YAKRzgB,SAEO4c,GAAmBza,EAAMse,gBACxB1O,EACA5P,EAAMwe,MAMd,yBAAKzgB,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACF9B,UAAS,WACsB,IAA7B+B,EAASjB,QAAQV,GAAgB,UAAY,gBAE/CuB,KAAK,GACLC,SAAS,aA3Bf,QAgCA,8BAGCuc,EAGCyD,EAFA,kBAAC/D,GAAD,CAAQpiB,KAAM,MAWxB,SAAS0mB,GAAoBze,GAAgD,MAAD,EAMtEA,EAAM0e,iBAJRC,EAFwE,EAExEA,MACAlC,EAHwE,EAGxEA,WACAe,EAJwE,EAIxEA,eACAoB,EALwE,EAKxEA,uBAEI7M,EAAWd,GAAgBY,8BAA8B4K,GACzDoC,EAAsBrB,EAAexN,MAAM,KAC3CzX,EAAOsmB,EAAoB5O,MAC3BhQ,EAAO4e,EAAoBtV,KAAK,KAChCuV,EACJvhB,EAAYC,EAAkBJ,QAAQogB,EAAetd,UAAU,EAAG,KAC9D6e,EAAa5qB,SAASqpB,EAAetd,UAAU,EAAG,KACxD,OACE,yBAAK5D,UAAU,kDACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,oBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,sBACb,yBAAKA,UAAU,YACb,4BAAKwiB,GACL,4BAAKC,GACL,4BAAQziB,UAAU,2BAGtB,0DACA,2BAAI2D,GACJ,2BAAI1H,GACJ,yBAAK+D,UAAU,aACb,gCAASyV,GACT,yBAAKzV,UAAU,qBAAqByV,IAEtC,yBAAKzV,UAAU,qBACZsiB,EACG,2CACA,4BACH,IACD,yBAAKtiB,UAAU,aACb,gCAASqiB,GACT,yBAAKriB,UAAU,gBAAgBqiB,UAWjD,SAASK,KACP,OACE,yBAAK1iB,UAAU,6EACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBAAKkC,IAAKygB,GAAa1gB,IAAI,MAE7B,gEACA,iFAQZ,SAAS2gB,KACP,OACE,yBAAK5iB,UAAU,6EACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBAAKkC,IAAKygB,GAAa1gB,IAAI,MAE7B,8EACA,uGAWZ,SAAS4gB,IAA4B,QAAEnrB,IACrC,OACE,yBAAKsI,UAAU,6EACb,yBAAKA,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBAAKkC,IAAK4gB,GAAoB7gB,IAAI,MAEpC,4BAAKvK,OAQjB,SAASqrB,GAA0Brf,GAKjC,OACE,yBAAK1D,UAAU,gCACb,yBAAKA,UAAU,wBACb,4BACEA,UAAU,WACVuB,QAAS,IAAMmC,EAAMrJ,SAAS,CAAEnJ,KAAM,yBAEtC,yBAAKuQ,MAAM,KAAKC,OAAO,KAAKF,MAAM,8BAChC,0BACEM,EAAE,yFACF9B,UAAU,eACV2B,KAAK,GACLC,SAAS,aATf,QAcA,8BAEF,yBAAK5B,UAAU,iBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,mBACb,yBAAKA,UAAU,uBACb,yBACEiC,IAAI,GACJjC,UAAU,kBACVkC,IAAK8gB,MAGT,4BAAKtf,EAAMhM,SACX,kBAACuO,GAAD,CACExK,KAAMiI,EAAMkb,YAAc,oBAC1BxY,aAAc,IACZ1C,EAAMrJ,SAAS,CAAEnJ,KAAM,wBAEzBiV,WAAW,+CASzB,SAAS8c,IAAe,YAAElqB,EAAF,KAAemqB,IACrC,MAAM5jB,EAAaa,qBAAWjC,GACxBmD,EAAUlB,qBAAW3B,GAFyB,EAG1BS,qBAAWlH,GAAS,CAC5CylB,MAAO,GACPF,iBAAkB,KAClBc,UAAWpB,GAAa,IAAI1kB,MAC5B2lB,qBAAsB,EACtBC,aAAc,KACdH,kBAAmB,KACnBI,gBAAiB,KACjBL,cAAe,KACfe,YAAY,EACZb,sBAAsB,IAb4B,mBAG7ChmB,EAH6C,KAGtCqC,EAHsC,KAe9C8oB,EAAOxjB,iBAIV,CACDyjB,cAAc,EACd5pB,aAAcT,EAAYS,aAC1B6pB,iBAAiB,IAEnBF,EAAKvjB,QAAQpG,aAAeT,EAAYS,aACxC,MAAMyoB,EAAWvD,GACfrkB,EAAS,CACPnJ,KAAM,qBACNytB,QAASf,GAAY,CACnB0F,WAAYtrB,EAAMmmB,gBAClBR,SAAUe,EAAKf,SACf4F,UAAW7E,EAAK6E,UAChBtvB,UAAWqL,EAAW7J,SAASO,GAC/BkrB,eAAgBxC,EAAKwC,eACrBf,WAAYpnB,EAAYS,aACxBgqB,eAAgB7O,GAAgBY,8BAC9Bxc,EAAYS,cAEdiqB,gBAAiB/E,EAAKgF,eACtBC,sBAAuB3rB,EAAM6mB,WAC7B5kB,cAAelB,EAAYmB,gBAI3BmmB,EAAS3B,KFhyBV,SAAP,oCEiyBIkF,CAAU,CACRjG,SAAUe,EAAKf,SACfkG,qBAAsBnF,EAAK6E,UAC3BO,qBAAsBpF,EAAK6E,UAAY7E,EAAKf,SAC5CuD,eAAgBxC,EAAKwC,eACrBuC,gBAAiB/E,EAAKgF,eACtBzpB,cAAelB,EAAYmB,cAE1BmB,MAAKtG,IACA,oBAAqBA,EACM,yBAAzBA,EAAKmE,gBACPmB,EAAS,CACPnJ,KAAM,iBACNwG,QAAS3C,EAAKoE,0BACdylB,WAAY7pB,EAAKgvB,yCAEe,8BAAzBhvB,EAAKmE,iBACdmI,EAAQ9D,iBAAiBxI,GAEhB,oBAAqBA,GAChCsF,EAAS,CACPnJ,KAAM,aACN6D,KAAMA,EAAKivB,qBAIhBC,OAAM,KACL5iB,EAAQ9D,iBAAiB,CACvBrE,gBAAiB,4BACjBC,0BAA2B,6BAK7BjG,EAAQqY,uBACX5H,IACC,MAAM2a,EAAQrB,GAAatZ,GAC3B2a,EAAMlB,QAAQkB,EAAMra,UAAY,GAChC,MAAMsa,EAAM,IAAIjmB,KAAKgmB,EAAMna,WAC3Boa,EAAInB,QAAQmB,EAAIta,UAAY,GAC5B5J,EAAS,CACPnJ,KAAM,gBACNotB,MAAO3a,EACP4a,IAAKvB,GAAauB,KFr5BnB,SAAP,mCEu5BM6B,CAAW,CACTnsB,UAAWqL,EAAW7J,SAASO,GAC/BmqB,WAAYpnB,EAAYS,aACxBS,cAAelB,EAAYmB,YAC3BgqB,UAAW5F,EAAMna,UACjBggB,QAAS5F,EAAIpa,UACbif,aAAcD,EAAKvjB,QAAQwjB,eAE1B/nB,MAAKtG,IACA,oBAAqBA,EAErBouB,EAAKvjB,QAAQyjB,iBACbtqB,EAAYS,eAAiB2pB,EAAKvjB,QAAQpG,cAE1C6H,EAAQ9D,iBAAiBxI,GAG3BsF,EAAS,CACPnJ,KAAM,QACN6D,OACAupB,MAAOtB,GAAasB,GACpBC,IAAKvB,GAAauB,QAIvB0F,OAAM,KACL5iB,EAAQ9D,iBAAiB,CACvBrE,gBAAiB,6BACjBC,0BAA2B,4BAGjCgqB,EAAKvjB,QAAQwjB,cAAe,IAE9B,CACE/hB,EACA/B,EAAW7J,SAASO,GACpB+C,EAAYmB,YACZnB,EAAYS,eAGhB0F,qBAAU,IAAM7E,EAAS,CAAEnJ,KAAM,iBAAkB,CACjD6H,EAAYS,eAEd0F,qBAAU,KACR,GAA+B,MAA3BlH,EAAM+lB,kBAA2B,OACrC,IAAI5e,GAAY,EAwBhB,OAvBAnH,EAAM+lB,kBACH1iB,MAAKtG,IACAoK,IAEF,oBAAqBpK,GACI,yBAAzBA,EAAKmE,gBAELmB,EAAS,CACPnJ,KAAM,iBACNwG,QAAS3C,EAAKoE,0BACdylB,WAAY7pB,EAAKgvB,yCAGnB1iB,EAAQ9D,iBAAiBxI,OAG5BkvB,OAAM,KACD9kB,GACJkC,EAAQ9D,iBAAiB,CACvBrE,gBAAiB,yBACjBC,0BAA2B,4BAG1B,KACLgG,GAAY,KAEb,CAACkC,EAASrJ,EAAM+lB,oBACnB,IAAIqG,GAA+B,EAC/BrnB,EAA2B,KAqE/B,MApEoC,+BAAhChE,EAAYG,gBACd6D,EAAU,kBAAC2lB,GAAD,MAEsB,2BAAhC3pB,EAAYG,iBACoB,8BAAhCH,EAAYG,gBAEZ6D,EACE,kBAAC8lB,GAAD,CACEnrB,QAASqB,EAAYI,4BAGhBJ,EAAYK,uBACrBgrB,GAAsB,EACtBrnB,EACE,kBAAColB,GAAD,CACEC,iBAAkBrpB,EAAYK,yBAGzBkG,EAAWtH,QAAUpI,EAAkBgJ,OAChDmE,EAAU,kBAAC6lB,GAAD,MACD5qB,EAAM8lB,cACf/gB,EACE,kBAACgmB,GAAD,CACE1oB,SAAUA,EACV3C,QAASM,EAAM8lB,cAAcpmB,QAC7BknB,WAAY5mB,EAAM8lB,cAAcc,aAG3B5mB,EAAMkmB,aACfnhB,EACE,kBAACkkB,GAAD,CACEgB,QAASA,EACTvD,KAAM1mB,EAAMkmB,aACZzkB,WAAYV,EAAYS,aACxBT,YAAaA,EACbipB,WAAwC,OAA5BhqB,EAAM+lB,kBAClBmE,KAAM,KACJ7nB,EAAS,CAAEnJ,KAAM,cAAewtB,KAAM,OACtCrkB,EAAS,CACPnJ,KAAM,aACN6D,KAAM,MAGV+sB,WAAY,KACV9pB,EAAM6mB,WACFxkB,EAAS,CAAEnJ,KAAM,UAAWV,OAAO,IACnC6J,EAAS,CAAEnJ,KAAM,UAAWV,OAAO,KAEzCqxB,UAAW7pB,EAAM6mB,WACjBV,gBAAiBnmB,EAAMmmB,kBAGlB+E,IACTC,EAAKvjB,QAAQyjB,iBAAkB,EAC/BtmB,EACE,kBAACmjB,GAAD,CACE7lB,SAAUA,EACVmjB,MAAOxlB,EAAMwlB,MACb4C,WAAYltB,EACZkrB,UAAWpmB,EAAMomB,UACjB+B,WAAYpnB,EAAYS,aACxB8jB,iBAAkBtlB,EAAMslB,iBACxBW,qBAAsBjmB,EAAMimB,qBAC5BD,qBAAsBhmB,EAAMgmB,qBAC5BqC,MAAOA,KAKX,yBAAKrgB,UAAU,sBACb,yBAAKA,UAAU,qBACZokB,GACC,wBAAIpkB,UAAU,0CACZ,4BAAQA,UAAU,kBACfjH,EAAYsrB,kBAEf,4BAAQrkB,UAAU,mBAAlB,KACKjH,EAAYurB,0CADjB,aAKHvnB,IAMMoB,WAAMmC,KAAY2iB,IC3jC1B,MAAMsB,WAAuBpmB,gBAGjC,eAAD,oBACAqmB,WAA2CrmB,cAE3CyG,SACE,OACE,wBACE5O,GAAI9F,KAAKwT,MAAM1N,GACfgK,UAAU,8FAEV,wBAAMA,UAAU,uBACd,8BAAS9P,KAAKwT,MAAMwC,QAEtB,wBAAMlG,UAAU,sBAAsB9P,KAAKwT,MAAM+gB,UACjD,8BACGv0B,KAAKwT,MAAMghB,MAAQx0B,KAAKwT,MAAMihB,UAC7B,qBACE3kB,UAAU,kBACV6T,KAAM3jB,KAAKwT,MAAMghB,KACjB5Q,IAAI,sBACJ/L,OAAO,UAEN7X,KAAKwT,MAAMihB,a,OCpBnB,MAAMC,WAAuBzmB,IAAMiF,UAGvC,eAAD,oBACSpL,MAA8B,CACrC6sB,WAAW,GAFb,KAcAC,eAAkBC,IAChB70B,KAAKwT,MAAMshB,cAAcD,GACzB70B,KAAKie,SAAS,CACZ0W,WAAW,KAZftU,oBACE,MAAM0U,EAAiBtkB,SAAS+F,cAAc,oBAC9C,GAAIue,EAAgB,CAClB,MAAMC,EAAmBD,EAAeE,QAAQ,sBAC5CD,GACFA,EAAiBtM,kBAUvBhU,SACE,OACG1U,KAAK8H,MAAM6sB,WACV,0BAAM7kB,UAAU,oBACd,uBACEA,UAAU,kDACVuB,QAASrR,KAAK40B,eAAelU,KAAK1gB,KAAMA,KAAKwT,MAAM0hB,UAElDl1B,KAAKwT,MAAM0hB,SAEd,uBAAG7jB,QAASrR,KAAK40B,eAAelU,KAAK1gB,KAAMA,KAAKwT,MAAM2hB,SACnDn1B,KAAKwT,MAAM2hB,U,OClCxB,SAASC,GAAiB5hB,GACxB,MAAMrC,EAAUlB,qBAAW3B,GACrBqC,EACJV,qBAAWjC,GAAYlG,QAAUpI,EAAkBgJ,QAAU8K,EAAM7C,SAHd,EAI5B0F,oBAAS,GAJmB,mBAIhDuY,EAJgD,KAIzCyG,EAJyC,KAcvD,OACE,0BAAMvlB,UAAU,sDACd,2BAAI0D,EAAMjI,MACV,4BACEoF,SAAUA,EACVb,UAAU,mCACVuB,QAAS,IAAMgkB,GAAU,IAExB7hB,EAAMkb,aAEP/d,GAAYie,GACZ,kBAAC,GAAD,CACErlB,WAAYsJ,GACZ0Z,WAtBa,CAAChjB,EAAqB+rB,KACzCD,GAAU,GACL9rB,GAAe+rB,IACpBnkB,EAAQpE,eAAexD,GACvB4H,EAAQvE,OAAO,CACbC,QAASyoB,EACThsB,aAAcC,SAuBL0E,WAAMmC,KAA6BglB,IChD3C,MAAMG,ICeb,SAASC,GAAchiB,GACrB,MAAMzN,EAAUkK,qBAAWjC,GAAYzI,SAASQ,QAChD,OACE,uBAAG+J,UAAU,mBACO,QAAjB0D,EAAMiiB,QACL,oCACG1vB,EADH,KACcwvB,GAAQhxB,IAAIiP,EAAMzH,OAGhB,YAAjByH,EAAMiiB,QACL,kBAACC,GAAD,CAAkBhuB,QAAS8L,EAAM9L,QAASqE,KAAMyH,EAAMzH,QAM9D,SAAS2pB,GAAiBliB,GACxB,MAAMmiB,EAAS1lB,qBAAW5B,GAAqBnG,cACzCjD,EAAoBgL,qBAAWjC,GAAYlG,MAC3CqJ,EAAUlB,qBAAW3B,GAC3B,OAAIkF,EAAM9L,QACD,YAAc6tB,GAAQhxB,IAAIiP,EAAMzH,MAC9B4pB,EACL1wB,IAAsBvF,EAAkByJ,SAExC,oCACE,4BAAQ2G,UAAU,iCAAlB,mBAOF,oCACE,4BAAQA,UAAU,iCAAlB,wBAEU,IACV,4BACEA,UAAU,uBACVuB,QAASF,EAAQ/D,mBAFnB,mBAUC,aD9DEmoB,GACJhxB,IAAM,CAACwT,EAAe6d,GAAuB,KAClD,MAAMC,EAAa,CAACC,EAAuBC,EAAaC,KACtD,MAAMC,EAAMV,GAAQW,WAAWJ,GAC3BA,EAAiBC,EAAKI,GACtBL,EACEx1B,EAAS01B,EAAQI,SAAWJ,EAAQI,QAAQL,IAASA,EAC3D,OAAOE,EAAII,QAAQ,MAAO/1B,IAMtBg2B,EAAc,CAClBC,IAAK,QACLC,KAAM,UACNC,KAAM,UACNlhB,MAAO,WACPmhB,OAAQ,WACRlhB,QAAS,aACT7B,MAAO,UACPgjB,OAAQ,YACRC,UAAW,KACXC,cAAe,KACfC,QAAS,WACTC,UAAW,MACXC,cAAe,WACfC,mBAAe7T,EACfxP,KAAM,SACNsjB,MAAO,YAEHf,GAtBU,IAAI/tB,MAAO6L,UACd,IAAI7L,KAAK2P,GAAO9D,UAsB7B,IAAIkjB,EACJ,MAAML,EAAU/0B,KAAKq1B,IAAIjB,GAAkB,IACrC3gB,EAAUshB,EAAU,GACpBvhB,EAAQC,EAAU,GAClBghB,EAAOjhB,EAAQ,GACf2hB,EAAQV,EAAO,IACfa,OAC0BjU,IAA9BkT,EAAYW,cAA8B,IAAMX,EAAYW,cAG9D,IAAIK,EAAShB,EAAYM,UACrBW,EAASjB,EAAYS,UA2BzB,OAzBInB,GACEO,EAAiB,IACnBmB,EAAShB,EAAYO,cACrBU,EAASjB,EAAYU,eAIzBG,EACGL,EAAU,IACTjB,EAAWS,EAAYQ,QAAS/0B,KAAKy1B,MAAMV,GAAUR,IACtDQ,EAAU,IAAMjB,EAAWS,EAAYI,OAAQ,EAAGJ,IAClD9gB,EAAU,IACTqgB,EAAWS,EAAY9gB,QAASzT,KAAKy1B,MAAMhiB,GAAU8gB,IACtD9gB,EAAU,IAAMqgB,EAAWS,EAAYG,KAAM,EAAGH,IAChD/gB,EAAQ,IACPsgB,EAAWS,EAAY/gB,MAAOxT,KAAKy1B,MAAMjiB,GAAQ+gB,IAClD/gB,EAAQ,IAAMsgB,EAAWS,EAAYC,IAAK,EAAGD,IAC7CE,EAAO,IACNX,EAAWS,EAAYE,KAAMz0B,KAAKy1B,MAAMhB,GAAOF,IAChDE,EAAO,IAAMX,EAAWS,EAAY3iB,MAAO,EAAG2iB,IAC9CE,EAAO,KACNX,EAAWS,EAAYK,OAAQ50B,KAAKy1B,MAAMhB,EAAO,IAAKF,IACvDY,EAAQ,KAAOrB,EAAWS,EAAY1iB,KAAM,EAAG0iB,IAChDT,EAAWS,EAAYY,MAAOn1B,KAAKy1B,MAAMN,GAAQZ,GAElC,aAAVa,EACH,CAACG,EAAQH,GAAOpa,KAAKsa,GACrB,CAACC,EAAQH,EAAOI,GAAQxa,KAAKsa,IAxExB9B,GAgFJW,WAAcuB,GAEjBA,GACsC,sBAAtC,GAAGx1B,SAASy1B,KAAKD,GCjBRxpB,WAAMmC,KAA0BolB,ICpDxC,MAAMmC,WAAwB1pB,IAAMiF,UAGxC,eAAD,oBACSpL,MAA+B,CACtC8vB,QAAQ,GAFV,KAcAhD,eAAkBC,IAChB70B,KAAKwT,MAAMshB,cAAcD,GACzB70B,KAAKie,SAAS,CACZ2Z,QAAQ,KAZZvX,oBACE,MAAM0U,EAAiBtkB,SAAS+F,cAAc,oBAC9C,GAAIue,EAAgB,CAClB,MAAMC,EAAmBD,EAAeE,QAAQ,sBAC5CD,GACFA,EAAiBtM,kBAUvBhU,SACE,OACG1U,KAAK8H,MAAM8vB,QACV,0BAAM9nB,UAAU,8BACd,uBACEA,UAAU,kDACVuB,QAASrR,KAAK40B,eAAelU,KAAK1gB,KAAMA,KAAKwT,MAAMqkB,gBAElD73B,KAAKwT,MAAMqkB,iBCtCjB,MAAMC,WAAoB7pB,gBAA6C,eAAD,oBAC3EqmB,WAA2CrmB,cAE3CyG,SACE,OACE,wBACE5O,GAAI9F,KAAKwT,MAAM1N,GACfgK,UAAU,8FAEV,4BAAO9P,KAAKwT,MAAM+gB,YCoB1B,SAASwD,IAAO,QAAEvwB,EAAF,WAAW+U,EAAX,UAAuByb,IACrC,MAAM5oB,EAAaa,qBAAWjC,GADsC,EAE9BqI,mBAAS,GAFqB,mBAE7D4hB,EAF6D,KAEhDC,EAFgD,KAG9DvvB,EAAOyG,EAAWzG,MAAQyG,EAAWtH,QAAUpI,EAAkBgJ,OACvE,IAAIyvB,GAAa,EAejB,GAdAnpB,qBAAU,KACR,IAAKrG,EAAM,OACX,MAAMiP,EAAW,IAAMsgB,GAAehnB,GAASA,EAAQ,IAEvD,OADArQ,OAAO+V,iBAAiB,SAAUgB,GAC3B,IAAM/W,OAAOgW,oBAAoB,SAAUe,KACjD,CAACjP,IACJyvB,2BAAgB,KACd,IAAKzvB,IAASwvB,EAAY,OAC1B,MAAMxgB,EAAYlH,SAAS4nB,eAAe,4BACpCrD,EAAmBvkB,SAAS4nB,eAAe7wB,EAAQ1B,IACvC,OAAd6R,GAA2C,OAArBqd,GAC1BgD,EAAUhD,EAAiBre,aAAegB,EAAUhB,aAAe,MAClE,CAAChO,EAAMnB,EAAQ1B,GAAIqyB,EAAYH,EAAWC,IAC7CjpB,qBAAU,IAAM,IAAMgpB,GAAU,IAAQ,CAACA,KACpCrvB,EAAM,OAAO,KAClB,GAAwB,QAApBnB,EAAQC,QACV,OAAO,KAET,MAAMoB,EAAcrB,EAAQ3C,KAC5B,MAAqC,aAAjCgE,EAAYC,iBAAwC,KACtB,kBAA9BD,EAAY4T,eACd0b,EAA+C,kBAAlCtvB,EAAYoU,kBAEvBkb,GACE,kBAAC,GAAD,CACE91B,QAASwG,EAAY6T,oBACrBjF,SAAUuB,GACRuD,EAAW,CACT1P,QAASmM,EAAO5B,YAChBuF,sBAAuB3D,EAAOlT,QAMD,iBAA9B+C,EAAY4T,eACrB0b,EAA+C,kBAAlCtvB,EAAYoU,kBAEW,kBAAlCpU,EAAYoU,mBACV,kBAAC,GAAD,CACExF,SAAUpV,GACRka,EAAW,CACT1P,QAASxK,EAAQ4E,KAAI+R,GAAUA,EAAO5B,cAAa2F,KAAK,MACxDC,qCAAsC3a,EAAQ4E,KAC5C+R,GAAUA,EAAOlT,OAIvB+S,IAAKhQ,EAAY+T,qBACjBjR,IAAK9C,EAAYgU,qBACjBxa,QAASwG,EAAY6T,uBAKpB,KA+CX,SAAS4b,GAAkB9wB,EAAkBwrB,GAC3C,GAAwB,YAApBxrB,EAAQC,QACV,OACE,kBAAC,GAAD,CAAsB8X,UAAW/X,EAAQ1B,GAAIyF,KAAM/D,EAAQ3C,KAAK0G,OAGpE,MAAM1C,EAAcrB,EAAQ3C,KAC5B,GAAI,SAAUgE,EACZ,OACE,kBAAC,GAAD,CAAsB0W,UAAW/X,EAAQ1B,GAAIyF,KAAM1C,EAAY0C,OAGnE,GAAqC,YAAjC1C,EAAYC,iBACd,MAAiC,kBAA7BD,EAAY0vB,cAxDQzyB,EA0DpB0B,EAAQ1B,GA1DwB0yB,EA2DhC3vB,EAAY2vB,UA3DuCC,EA4DnD5vB,EAAY6vB,UA1DhB,6BACE,kBAAC,GAAD,CACE5Y,UAAU,EACVqB,SAAU,CACRC,IAAKoX,EACLnX,IAAKoX,GAEP3yB,GAAIA,EACJwa,YAAa,MAoDuB,kBAA7BzX,EAAY0vB,aA9C3B,SAA4BzyB,EAAYkM,EAAagE,GACnD,OAAO,kBAAC,GAAD,CAAc8M,SAAU9Q,EAAKgR,WAAYhN,EAAOlQ,GAAIA,IA8ChD6yB,CACLnxB,EAAQ1B,GACR+C,EAAY+vB,UACZ/vB,EAAYmN,OAEwB,qBAA7BnN,EAAY0vB,aAhD3B,SAA+BzyB,EAAY1D,EAAa4T,GACtD,OAAO,kBAACqN,GAAD,CAAiBvd,GAAIA,EAAIyd,YAAanhB,EAAK4T,MAAOA,IAgD9C6iB,CACLrxB,EAAQ1B,GACR+C,EAAYiwB,aACZjwB,EAAYmN,OAEwB,QAA7BnN,EAAY0vB,aAlD3B,SACEzyB,EACA1D,EACA0gB,EACA9M,GAEA,OACE,kBAAC,GAAD,CACEgN,WAAW,GACXF,SAAUA,EACVsB,SAAU,CACRpO,MAAOA,GAAS,GAChB5T,IAAKA,GAEP0D,GAAIA,IAqCGizB,CACLvxB,EAAQ1B,GACR+C,EAAYzG,IACZyG,EAAY+vB,UACZ/vB,EAAYmN,OAIZ,kBAAC,GAAD,CACEuJ,UAAW/X,EAAQ1B,GACnByF,KAAM1C,EAAYsrB,mBAInB,GAAqC,aAAjCtrB,EAAYC,iBACrB,MAAkC,cAA9BD,EAAY4T,cAEZ,kBAAC,GAAD,CACE9L,UAAWqiB,EACXznB,KAAM1C,EAAYsrB,iBAClBzF,WAAY7lB,EAAYmwB,cAK1B,kBAAC,GAAD,CACEzZ,UAAW/X,EAAQ1B,GACnByF,KAAM1C,EAAYsrB,mBAKxB,GAAgC,aAA5BtrB,EAAYE,YACd,OAAO,kBAAC,GAAD,CAAgBF,YAAaA,EAAamqB,KAAMA,IAClD,GAAgC,gBAA5BnqB,EAAYE,YACrB,OACE,kBAAC,GAAD,CACEwrB,SAAU1rB,EAAYsrB,iBACtBne,MAAOnN,EAAYmN,MACnBwe,KAAM3rB,EAAYowB,oBAClBxE,SAAU5rB,EAAYqwB,yBACtBpzB,GAAI0B,EAAQ1B,KAGX,GAAgC,iBAA5B+C,EAAYE,YACrB,OACE,kBAAC,GAAD,CAAawrB,SAAU1rB,EAAYsrB,iBAAkBruB,GAAI0B,EAAQ1B,KAE9D,GAAgC,qBAA5B+C,EAAYE,YACrB,OACE,kBAAC,GAAD,CACEwW,UAAW/X,EAAQ1B,GACnByF,KAAM1C,EAAYsrB,mBAItB,MAAM,IAAIttB,MAAM,mBAnItB,IAA4Bf,EAAY0yB,EAAmBC,EAwI3D,SAASU,IAAc,QACrB3xB,EADqB,WAErB+U,IAKA,GAAwB,YAApB/U,EAAQC,QAAuB,OAAO,KAC1C,MAAMoB,EAAcrB,EAAQ3C,KAC5B,MAAqC,WAAjCgE,EAAYC,iBAAsC,KACtB,gBAA5BD,EAAYE,YAEZ,kBAAC,GAAD,CACEosB,OAAQtsB,EAAYuwB,iBACpBtE,cAAejoB,GAAW0P,EAAW,CAAE1P,YACvCqoB,QAASrsB,EAAYwwB,qBAGY,iBAA5BxwB,EAAYE,YAEnB,kBAAC,GAAD,CACE8uB,cAAehvB,EAAYywB,uBAC3BxE,cAAejoB,GAAW0P,EAAW,CAAE1P,cAIpC,KAIX,SAAS0sB,GAAUtd,GACjB,OAAOA,EAAI,EAAIA,EAAEha,WAAa,IAAMga,EAAEha,WAGxC,SAASu3B,GAAahyB,GACpB,GAAwB,QAApBA,EAAQC,QAAmB,CAC7B,MAAMoB,EAAcrB,EAAQ3C,KAC5B,GAAqC,WAAjCgE,EAAYC,kBACkB,aAA5BD,EAAYE,YAA4B,OAGhD,MAAM0K,EAAO,IAAIrL,KAAKZ,EAAQ6D,kBACxBouB,EAAa,IAAIrxB,KACrBqL,EAAKI,cACLJ,EAAKK,WACLL,EAAKM,WAEDwB,EAAQ9B,EAAKimB,WACb3tB,EAAI,UAAMwtB,GACJ,IAAVhkB,EAAc,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,GADrC,YAELgkB,GAAU9lB,EAAKkmB,cAFV,YAE2BpkB,GAAS,GAAK,KAAO,MAC1D,OAAI9B,EAAKQ,UAAYwlB,EAAWxlB,UACvBR,EAAKmmB,qBAAuB,IAAM7tB,EAElCA,EAeX,SAAS8tB,IAAc,KAAEh1B,EAAF,KAAQmuB,EAAR,QAAcvsB,EAAd,OAAuBwB,EAAvB,cAA+B6xB,IACpD,MAAM1qB,EAAaa,qBAAWjC,GAD8C,EAEhDqI,oBAAkB,GAF8B,mBAErE0jB,EAFqE,KAE7D/B,EAF6D,KAGtEgC,EAAShH,GACb,kBAAC+E,GAAD,CAAQvwB,QAAS3C,EAAM0X,WAAYtU,EAAO2E,OAAQorB,UAAWA,IAE/D,GAjBF,SAA+BnzB,GAC7B,MAAMgE,EAAchE,EAAKA,KACzB,GAAgC,qBAA5BgE,EAAYE,YAAoC,CAClD,MAAMwC,EAAO1C,EAAYsrB,iBACzB,GAAa,OAAT5oB,QAA0B6X,IAAT7X,GAA+B,KAATA,EACzC,OAAO,EAGX,OAAO,EASH0uB,CAAsBp1B,GACxB,OAAO,wBAAIiL,UAAU,WAPqD,MAUtEoqB,EADoB9qB,EAAW7J,SAA7BY,OACgBkwB,QAAQ,IAAK,IAC/B8D,EAAIxyB,SAASuyB,EAAUxmB,UAAU,EAAG,GAAI,IAAM,IAC9C0mB,EAAIzyB,SAASuyB,EAAUxmB,UAAU,EAAG,GAAI,IAAM,IAC9CiU,EAAIhgB,SAASuyB,EAAUxmB,UAAU,EAAG,GAAI,IAAM,IACpD,OACE,wBACE5D,UAAS,UACU,QAAjBjL,EAAK4C,QAAL,mBACgBsyB,EAAS,iBAAmB,IACxC,YAHG,YAIL,KAAQI,EAAI,KAAQC,EAAI,KAAQzS,GAAK,GAAM,GAAK,eAEpD,yBAAK7X,UAAS,UAAKiqB,EAAS,uBAAyB,gBACjC,QAAjBl1B,EAAK4C,SACJ,0BAAMqI,UAAU,WACd,yBAAKiC,IAAI,MAAMC,IAAKvL,KAGxB,yBAAKqJ,UAAU,oBAAoBkG,MAAOwjB,GAAa30B,IACpDi1B,GACC,kBAAC,GAAD,CACE/tB,KAAM3D,KAAK9D,MAAMO,EAAKwG,kBACtBoqB,OAAQ5wB,EAAK4C,QACbC,SAAUsrB,GAAQnuB,EAAK6C,UAG3B,yBAAKoI,UAAU,kBAAkBwoB,GAAkBzzB,EAAMmuB,KAE1DA,GAAQ,kBAACmG,GAAD,CAAe3xB,QAAS3C,EAAM0X,WAAYtU,EAAO2E,UAE3DotB,GAKQ/rB,WAAMmC,KAAYypB,ICvTjC,SAASQ,IAAiB,QAAE5zB,IAC1B,OACE,wBAAIqJ,UAAU,YACZ,0BAAMA,UAAU,WACd,yBAAKiC,IAAI,MAAMC,IAAKvL,KAEtB,yBAAKqJ,UAAU,qBACb,0BAAMA,UAAU,uDACd,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,yBAuCzB,SAASwqB,GAAW9mB,GAClB,MAAMpE,EAAaa,qBAAWjC,GACxB/F,EAASgI,qBAAW3B,GACpB7H,EAAU2I,EAAW7J,SAASkB,SAAWwL,GAHf,EAIJhC,qBAAW5B,GAA/BlG,EAJwB,EAIxBA,SAAUrB,EAJc,EAIdA,MAClB,IAAIyzB,EAAQtqB,qBAAWjC,GAAYlG,QAAUpI,EAAkByJ,SAC/D,MAAMqxB,EAAcryB,EAASA,EAASZ,OAAS,GAC/C,IAAIsB,EACA2xB,IACF3xB,EAAc2xB,EAAY31B,MAG1BuK,EAAW9L,SACX8L,EAAWtH,QAAUpI,EAAkByJ,UAClB,eAArBiG,EAAWtH,OAE0B,WAAjCe,EAAYC,mBACdyxB,EAAoC,qBAA5B1xB,EAAYE,aAGxB,MAAM+wB,EAtCR,SAA8B3xB,GAC5B,IAAIiB,GAAO,EACPqxB,GAAW,EACf,IACE,IAAInzB,EAAIa,EAASZ,OAAS,EAC1BD,GAAK,KAAe,IAAT8B,IAA2B,IAAbqxB,GACzBnzB,IAE4B,YAAxBa,EAASb,GAAGG,QACdgzB,EAAUnzB,EACuB,QAAxBa,EAASb,GAAGG,UACrB2B,EAAM9B,GAGV,OAAQ8hB,GACLhgB,GAAOggB,GAASqR,GAAWrR,GAAWqR,GAAWrR,GAAShgB,GAAOggB,EAuB9CsR,CAAqBvyB,GAC3B+H,EAAUD,qBAAWjC,GAAYzI,SAAzCY,OACR,OACE,yBACE2J,UAAS,wBACsB,IAA7B+B,EAASjB,QAAQV,GAAgB,gBAAkB,KAGrD,yBAAK2O,OAAQ1W,EAASZ,SAAWT,EAAOiJ,MAAO,CAAE4qB,UAAW,WAA5D,eAGA,wBAAI7qB,UAAU,sBACX3H,EAASlB,KAAI,CAACO,EAAS4hB,IACtB,kBAAC,GAAD,CACEhR,IAAKgR,EACLvkB,KAAM2C,EACNS,OAAQA,EACR+qB,KAAMxrB,IAAYgzB,EAClBV,cAAeA,EAAc1Q,GAC7B3iB,QAAS2I,EAAW7J,SAASkB,SAAWwL,QAG1CsoB,GA1EV,SAAqB/yB,GACnB,GAAe,MAAXA,EAAiB,OAAO,EAC5B,GAAwB,YAApBA,EAAQC,QAAuB,OAAOD,EAAQE,QAClD,MAAMmB,EAAcrB,EAAQ3C,KAC5B,GAAoC,MAAhCgE,EAAYC,iBAA0B,OAAO,EACjD,GAAqC,aAAjCD,EAAYC,iBAAiC,OAAO,EACxD,GAAqC,YAAjCD,EAAYC,iBAAgC,OAAO,EACvD,GAAgC,aAA5BD,EAAYE,YAA4B,CAC1C,GAAoC,kBAAhCF,EAAYG,gBAAqC,OAAO,EAC5D,GAAmC,MAA/BH,EAAYG,gBAAyB,OAAO,EAElD,OAAO,EA+DU4xB,CAAYJ,IACrB,kBAACH,GAAD,CAAkB5zB,QAASA,KAG9B8zB,GAAS,kBAACnb,GAAD,MACTmb,IACC32B,GAqBOqK,WAAMmC,KAAYkqB,I,wBCpIjC,MAAMO,GAAY,IAElB,SAASC,GAAoBh1B,EAAYyF,EAAc8F,GACrD,OACE,yBAAKvB,UAAU,kBACb,0BAAMA,UAAU,eAAehK,GAAI+0B,GAAY/0B,EAAIuL,QAASA,GAC1D,2BAAI9F,KAyHZ,SAASwvB,IAAoB,QAAEvzB,EAAF,OAAWoF,EAAX,WAAmBK,EAAnB,OAA+BkF,IAC1D,MAAMtJ,EAAcrB,EAAQ3C,KAC5B,OAAoC,MAAhCgE,EAAYC,iBACPgyB,GACLtzB,EAAQ1B,GACP0B,EAAQ3C,KAA0B0G,KACnC0B,GAEwC,YAAjCpE,EAAYC,iBAEnB,yBAAKgH,UAAU,kBA7HrB,SACEhK,EACA+C,EACAwI,GAEA,MAAiC,kBAA7BxI,EAAY0vB,aAEZ,kBAAC,GAAD,CACEzY,UAAU,EACVqB,SAAU,CACRC,IAAKvY,EAAY2vB,UACjBnX,IAAKxY,EAAY6vB,WAEnB5yB,GAAI+0B,GAAY/0B,IAGkB,qBAA7B+C,EAAY0vB,aAEnB,0BAAMlnB,QAASA,GACb,kBAACgS,GAAD,CACEE,YAAa1a,EAAYiwB,aACzB9iB,MAAOnN,EAAYmN,MACnBlQ,GAAI+0B,GAAY/0B,KAIgB,kBAA7B+C,EAAY0vB,aAEnB,0BAAMlnB,QAASA,GACb,kBAAC,GAAD,CACE8R,2BAA2B,EAC3BL,SAAUja,EAAY+vB,UACtB5V,WAAYna,EAAYmN,MACxBlQ,GAAI+0B,GAAY/0B,KAIgB,QAA7B+C,EAAY0vB,aAEnB,0BAAMlnB,QAASA,GACb,kBAAC,GAAD,CACE2R,WAAYna,EAAYmN,MACxB8M,SAAUja,EAAY+vB,UACtBxU,SAAU,CACRpO,MAAOnN,EAAYmN,MACnB5T,IAAKyG,EAAYzG,KAEnB0D,GAAI+0B,GAAY/0B,KAMpB,0BAAMgK,UAAU,eAAehK,GAAI+0B,GAAY/0B,EAAIuL,QAASA,GAC1D,2BAAIxI,EAAYsrB,mBAwEf6G,CAAyBxzB,EAAQ1B,GAAI+C,EAAaoE,IAGb,aAAjCpE,EAAYC,iBArEzB,SACEhD,EACA+C,EACAwI,EACAc,EACAoK,GAEA,MAAMhR,EAAOuvB,GAAoBh1B,EAAI+C,EAAYsrB,iBAAkB9iB,GACnE,OAAKc,EAEoC,kBAA9BtJ,EAAY4T,cAEnB,oCACGlR,EACkC,kBAAlC1C,EAAYoU,mBACX,kBAAC,GAAD,CACE5a,QAASwG,EAAY6T,oBACrBjF,SAAUuB,IACRuD,EAAW,CACT1P,QAASmM,EAAO5B,YAChBuF,sBAAuB3D,EAAOlT,KAEhCuL,QAM6B,iBAA9BxI,EAAY4T,cAEnB,oCACGqe,GAAoBh1B,EAAI+C,EAAYsrB,iBAAkB9iB,GACpB,kBAAlCxI,EAAYoU,mBACX,kBAAC,GAAD,CACExF,SAAUpV,IACRka,EAAW,CACT1P,QAASxK,EAAQ4E,KAAI+R,GAAUA,EAAO5B,cAAa2F,KAAK,MACxDC,qCAAsC3a,EAAQ4E,KAC5C+R,GAAUA,EAAOlT,OAGrBuL,KAEFwH,IAAKhQ,EAAY+T,qBACjBjR,IAAK9C,EAAYgU,qBACjBxa,QAASwG,EAAY6T,uBAMtBnR,EA1CAA,EA6DA0vB,CAAezzB,EAAQ1B,GAAI+C,EAAaoE,EAAYkF,EAAQvF,GAE5DkuB,GACLtzB,EAAQ1B,GACR+C,EAAYsrB,iBACZlnB,GAKSgB,WAAMmC,KAAY2qB,IC7JjC,SAASG,GAAgB1nB,GACvB,OACE,yCAASA,EAAT,CAAgBzD,MAAO,CAAEsU,QAAS,QAAUvU,UAAU,sBAI1D,SAASuqB,KACP,OACE,yBAAKvqB,UAAU,qBACb,0BAAMA,UAAU,gBACd,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,sBACf,yBAAKA,UAAU,wBAoBvB,SAASqrB,IAAmB,OAAEC,IAAkB,MAAD,EACMnrB,qBACjD3B,GADMhB,EADqC,EACrCA,mBAAoBL,EADiB,EACjBA,WAAYL,EADK,EACLA,OADK,EAInBqD,qBAAWjC,GAA7B/F,EAJqC,EAIrCA,OAAQH,EAJ6B,EAI7BA,MACRK,EAAa8H,qBAAW5B,GAAxBlG,SACFkzB,EAAW5rB,iBAAuB,MAClC6rB,EAAW7rB,iBAAuB,MAClC8rB,EACJtzB,IAAWL,EAAaW,WAvB5B,SAAqBf,GACnB,GAAe,MAAXA,EAAiB,OAAO,EAC5B,GAAwB,YAApBA,EAAQC,QAAuB,OAAOD,EAAQE,QAClD,MAAMmB,EAAcrB,EAAQ3C,KAC5B,GAAoC,MAAhCgE,EAAYC,iBAA0B,OAAO,EACjD,GAAqC,aAAjCD,EAAYC,iBAAiC,OAAO,EACxD,GAAqC,YAAjCD,EAAYC,iBAAgC,OAAO,EACvD,GAAgC,aAA5BD,EAAYE,YAA4B,CAC1C,GAAoC,kBAAhCF,EAAYG,gBAAqC,OAAO,EAC5D,GAAmC,MAA/BH,EAAYG,gBAAyB,OAAO,EAElD,OAAO,EAaL4xB,CAAYzyB,EAASA,EAASZ,OAAS,IACnC4K,EACJrK,IAAUpI,EAAkBkJ,aAC5Bd,IAAUpI,EAAkBgJ,OAC9BsG,qBAAU,KACR,MAAMwsB,EAAQF,EAAS5rB,QACjB+rB,EAAQJ,EAAS3rB,QACvB,GAAc,OAAV8rB,GAA+B,OAAbH,EAAmB,OAEzC,MAAMK,EAAW,IAAIC,MAAe,KAClC,IAAInqB,EAAS,GACbA,GAAUgqB,EAAM7kB,aACF,OAAV8kB,IACFA,EAAM1rB,MAAMyB,OAASA,EAAS,MAEhC3Q,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACNuN,IAAK,CAAC,0BACNC,OAAQ,CAAC,iBAAkB,mBAC3BgD,OAAQA,EAAS,GAAK,MAExB,QAIJ,OADAkqB,EAASE,QAAQJ,GACV,KACLE,EAASG,gBAEV,IACH,MAEM3B,EAFajqB,qBAAWjC,GACOzI,SAA7BY,OACgBkwB,QAAQ,IAAK,IAC/B8D,EAAIxyB,SAASuyB,EAAUxmB,UAAU,EAAG,GAAI,IAAM,IAC9C0mB,EAAIzyB,SAASuyB,EAAUxmB,UAAU,EAAG,GAAI,IAAM,IAC9CiU,EAAIhgB,SAASuyB,EAAUxmB,UAAU,EAAG,GAAI,IAAM,IACpD,OACE,yBACE/D,IAAK0rB,EACLvrB,UAAS,sBACP,KAAQqqB,EAAI,KAAQC,EAAI,KAAQzS,GAAK,GAAM,GAAK,eAGlD,0BAAM7X,UAAU,aAAauB,QAAS/D,GACpC,uBAAGwC,UAAU,uBAEf,yBAAKA,UAAU,gCACb,kBAAC,aAAD,CAAYgsB,UAAU,EAAMC,sBAAuBb,IACjD,yBAAKvrB,IAAK2rB,EAAUxrB,UAAU,wBAC3BsrB,EAAOn0B,KAAIO,GACV,kBAAC,GAAD,CACE4Q,IAAK5Q,EAAQ1B,GACb8G,OAAQA,EACRuF,OAAQA,EACR3K,QAASA,EACTyF,WAAYA,MAGfsuB,GAAY,kBAAC,GAAD,UAQVttB,WAAMmC,KAAY+qB,IC3GjC,SAASD,GAAgB1nB,GACvB,OACE,yCAASA,EAAT,CAAgBzD,MAAO,CAAEsU,QAAS,QAAUvU,UAAU,sBAI1D,SAASksB,GAAQl2B,GACf,IAAKA,EAAI,OAAO,EAChB,MAAMyQ,EAAK9F,SAAS4nB,eAAevyB,GACnC,IAAKyQ,EAAI,OAAO,EAChB,MAAM0lB,EAASxrB,SAAS4nB,eAAe,eACvC,GAAI4D,EAAQ,CACV,MAAMC,EAAe,GACfC,EAAmBF,EAAOtlB,aAC1BylB,EAAc,EACpB,OACE7lB,EAAGwS,wBAAwBpG,KAC1BuZ,EAAeC,GAChBC,EAGJ,OAAO,EA+LT,SAASC,KACP,MAAMjtB,EAAaa,qBAAWjC,GACxBmD,EAAUlB,qBAAW3B,GACnBnG,EAAa8H,qBAAW5B,GAAxBlG,SACFizB,EAAuB/rB,mBAAQ,KACnC,MAAMitB,EAAuB,GAC7B,IAAK,IAAIh1B,EAAIa,EAASZ,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC7C,MAAME,EAAUW,EAASb,GACD,QAApBE,EAAQC,SAAsBD,EAAQE,SACxC40B,EAAO96B,KAAKgG,GAIhB,OADA80B,EAAOl1B,UACAk1B,IACN,CAACn0B,IACEqyB,EAAcryB,EAASA,EAASZ,OAAS,GACzCg1B,EA5MR,SAAmCntB,GACjC,OAAIA,EAAW9L,UACX8L,EAAWzG,MAEbyG,EAAWhG,IAAI+E,oBAAsBxO,EAAkB68B,uBAGrDptB,EAAWtH,QAAUpI,EAAkB4I,aACnC8G,EAAWhG,IAAIC,sBAqMrBozB,CAA0BrtB,IAAegsB,EAAO7zB,OAAS,EACrDm1B,EAAattB,EAAWtH,QAAUpI,EAAkB4I,WAKpDq0B,EAxMR,SACEvB,EACAtzB,EACAa,EACA6xB,EACAoC,GAEA,MAAMD,EAAYltB,iBAAmB,MAC/BotB,EAAWptB,iBAAsB,MAClC9G,GAA0B,IAAlByyB,EAAO7zB,SAClBs1B,EAASntB,QAAU0rB,EAAO,GAAGt1B,IAE/B,MAAMg3B,EAAoBrtB,iBAAsB,MAC1CstB,EAAgBvC,GAAeA,EAAY10B,GAC3C4B,EAAU8yB,GAAeA,EAAY9yB,QAC3C,IAAID,EAAU,UACd,GAAI+yB,GAAuC,QAAxBA,EAAY/yB,QAAmB,CAChDA,EAAU,MACV,MAAMoB,EAAc2xB,EAAY31B,KACK,WAAjCgE,EAAYC,kBACkB,aAA5BD,EAAYE,aAEZF,EAAYG,iBACoB,kBAAhCH,EAAYG,kBAEZvB,EAAU,WAuDlB,OAlDAuH,qBAAU,KACR,IAAKrG,EAAM,OACX,MAAMq0B,EAAML,EAAUjtB,QACtB,GAAY,OAARstB,GACAJ,EAAJ,CACE,GACgC,OAA9BE,EAAkBptB,SAClBotB,EAAkBptB,UAAYktB,EAC9B,CACA,MAAMK,EAAMjB,GAAQc,EAAkBptB,SAOtC,OANY,IAARutB,EACFD,EAAIE,UAAUF,EAAIG,mBAElBH,EAAIE,UAAUF,EAAII,eAAiBH,QAErCH,EAAkBptB,QAAUktB,GAOhC,GAJEE,EAAkBptB,QAAUktB,EAId,YAAZn1B,EAGF,OAFAu1B,EAAIK,sBACJR,EAASntB,QAAU,MAGrB,GAAyB,OAArBmtB,EAASntB,QAAkB,CAC7B,MAAMutB,EAAMjB,GAAQa,EAASntB,SAS7B,OARY,IAARutB,EACFD,EAAIE,UAAUF,EAAIG,mBAElBH,EAAIE,UAAUF,EAAII,eAAiBH,QAEjCv1B,IACFm1B,EAASntB,QAAU,OAIvB,GAAI5H,IAAUpI,EAAkByJ,SAC9B6zB,EAAIK,qBACC,CACL,MAAMJ,EAAMjB,GAAQe,GACR,IAARE,EACFD,EAAIE,UAAUF,EAAIG,mBAElBH,EAAIE,UAAUF,EAAII,eAAiBH,OAGtC,CAACt0B,EAAMo0B,EAAet1B,EAASK,EAAOJ,EAASk1B,IAC3CD,EAwHWW,CAChBlC,EACAhsB,EAAWtH,MACXsH,EAAWzG,KACX6xB,EACAryB,EAAS,GAAKA,EAAS,GAAGrC,GAAK,MA0BjC,OAxBAkJ,qBACE,IA9CJ,SACErG,EACAyyB,EACAtzB,EACAqJ,GAEKxI,IACDyyB,GACFjqB,EAAQjE,kBAENpF,IAAUpI,EAAkByJ,UAC9BgI,EAAQrE,sBAoCNN,CAAM4C,EAAWzG,KAAwB,IAAlByyB,EAAO7zB,OAAc6H,EAAWtH,MAAOqJ,IAChE,CAACiqB,EAAO7zB,OAAQ6H,EAAWzG,KAAMyG,EAAWtH,MAAOqJ,EAASqpB,IAE9DxrB,qBAAU,IAjIZ,SAA4BrG,EAAe4zB,GACrC5zB,EACF9H,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACNuN,IAAK,CAAC,kBACNC,OAAQ,CAAC,kBAAmB,2BAE9B,KAEQ+tB,GACV17B,OAAOC,OAAOC,YACZ,CACEC,KAAM,eACNuN,IAAK,CAAC,mBACNC,OAAQ,CAAC,iBAAkB,2BAE7B,KAgHY+uB,CAAmBnuB,EAAWzG,KAAM4zB,IAAgB,CAClEntB,EAAWzG,KACX4zB,IAEFvtB,qBACE,IA7EJ,SACElH,EACAa,EACArF,EACA6N,GAEI7N,IACEqF,EACEb,IAAUpI,EAAkBkJ,aAC9BuI,EAAQlE,aAGVpM,OAAOC,OAAOC,YACZ,CACEy8B,aAAc,gBAEhB,MA8DFC,CACEruB,EAAWtH,MACXsH,EAAWzG,KACXyG,EAAW9L,QACX6N,IAEJ,CAAC/B,EAAWtH,MAAOsH,EAAWzG,KAAMyG,EAAW9L,QAAS6N,IAE1DnC,qBACE,IA1HJ,SACElH,EACA41B,EACAvsB,GAEA,GAAIrJ,IAAUpI,EAAkBkJ,YAAa,CAC3C,MAAM6E,EAAUhC,WAAW0F,EAAQ1D,QAASiwB,GAC5C,MAAO,IAAM9xB,aAAa6B,GAE5B,GAAI3F,IAAUpI,EAAkBgJ,OAC9B,OAEF,IAAIi1B,EAAkC,KAClClwB,EAAiC,KACrC,MAAMmwB,EAAO,KACsB,YAA7BntB,SAASotB,iBACK,OAAZpwB,GACF7B,aAAa6B,GAEf0D,EAAQ3D,YACRmwB,EAAWG,aAAY,KACrB3sB,EAAQ3D,cACPkwB,EAAkB,IACiB,WAA7BjtB,SAASotB,kBACD,OAAbF,GACFI,cAAcJ,GAEhBlwB,EAAUhC,WAAW0F,EAAQ1D,QAASiwB,KAK1C,OAFAE,IACAntB,SAASmG,iBAAiB,mBAAoBgnB,GACvC,IAAMntB,SAASoG,oBAAoB,mBAAoB+mB,GA2F1DI,CAAc5uB,EAAWtH,MAAOsH,EAAWhG,IAAI3D,gBAAiB0L,IAClE,CAACA,EAAS/B,EAAWhG,IAAI3D,gBAAiB2J,EAAWtH,QAGrD,yBACEgI,UACEe,EAAY,uCAAyC,kBAGtDzB,EAAW9L,SACV,6BACE,4BACEwM,UAAU,iBACVuB,QAASF,EAAQhE,QACjBwD,SAAU+rB,GAETA,EAAa,gBAAkB,YAItC,kBAAC,EAAD,CAAcxrB,MAAOkqB,EAAO7zB,SAC5B,yBAAKuI,UAAWV,EAAWzG,KAAO,cAAgB,UAChD,kBAAC,GAAD,MACA,kBAAC,aAAD,CACEs1B,cAxDUh9B,IACZA,EAAOi8B,UAAY,KACvB/rB,EAAQzD,YAuDF5H,GAAG,2BACH6J,IAAKgtB,EACLZ,sBAAuBb,GACvBY,UAAU,GAEV,kBAAC,GAAD,OAEF,kBAAC,GAAD,OAEDS,GAAiB,kBAAC,GAAD,CAAoBnB,OAAQA,KAKrCntB,WAAMmC,KAASisB,IChSf6B,OAff,UAAa,QAAE56B,EAAF,QAAWO,EAAX,UAAoBE,EAApB,UAA+BD,EAA/B,MAA0CE,IACrD,OACE,kBAAC4K,EAAD,CACE5K,MAAOA,EACPV,QAASA,EACTS,UAAWA,EACXF,QAASA,EACTC,UAAWA,GAEX,kBAAC,GAAD,MACA,kBAAC,EAAD,Q,cCnBcqV,QACW,cAA7BtY,OAAOs9B,SAAS5Z,UAEe,UAA7B1jB,OAAOs9B,SAAS5Z,UAEhB1jB,OAAOs9B,SAAS5Z,SAAS6Z,MACvB,2DCeNv9B,OAAO+V,iBACL,WACA,EAAG/R,WACD,MAAMjE,EAAUa,EAAgB2B,cAChC,GAAIyB,GAAQA,EAAKqH,YAAcrH,EAAKw5B,sBAAuB,CACzD,MAAMC,EAAWz5B,EAAKw5B,sBAChBnyB,EAAarH,EAAKqH,WAClB9J,EACJwB,mCACc,WAAb06B,EACG,0BACA,4BAEN,IAAIC,EAAU,IAAIC,eAClBD,EAAQE,mBAAqB,WAC3B,GAA2B,IAAvBF,EAAQG,YAAuC,MAAnBH,EAAQ35B,OAAgB,CACtD,MAAM1E,EAAc,CAClBM,cAAesC,KAAKwB,MAClBi6B,EAAQI,kBAAkB/+B,IAA8B,IAE1DO,eAAgB2C,KAAKwB,MACnBi6B,EAAQI,kBAAkB7+B,IAA+B,KAG7Dc,EAAQg+B,aAAa1+B,KAGzBq+B,EAAQ51B,KAAkB,WAAb21B,EAAwB,OAAS,SAAUl8B,GACxDm8B,EAAQM,iBAAkB,EAC1BN,EAAQO,iBACN,eACA,mCAEFP,EAAQ9xB,KACN3J,KAAKC,UAAU,CACbg8B,aAAc7yB,EACd1I,YAAa5C,EAAQ6C,oBAK7B,GAGF5C,OAAO+V,iBACL,WACA,EAAG/R,WACD,MAAMjE,EAAUa,EAAgB2B,cAC5ByB,GAAQA,EAAKm6B,YAAkC,qBAApBn6B,EAAKm6B,WAClCp+B,EAAQX,eAAiB4E,EAAKvE,MAE9BuE,GACAA,EAAKm6B,YACe,qBAApBn6B,EAAKm6B,WAELp+B,EAAQL,eAAiBsE,EAAKvE,MAE9BuE,GACAA,EAAKm6B,YACe,uBAApBn6B,EAAKm6B,aAELp+B,EAAQH,iBAAmBoE,EAAKvE,UAGpC,GAGFO,OAAO+V,iBACL,WACA,EAAG/R,WACD,GAAIA,GAAQA,EAAKqH,YAAcrH,EAAKo6B,SAAU,CAC5C,MAAMC,EAAUzuB,SAAS4nB,eAAe,aACxC8G,IAASC,uBAAuBF,GAChCC,IAASzqB,OACP,kBAAC,GAAD,CACE3Q,UAAWc,EAAKqH,WAChB5I,QAASuB,EAAKvB,QACdU,MAAOa,EAAKC,OACZhB,UAAWe,EAAKw6B,WAChBx7B,QAASgB,EAAKo6B,WAEhBxuB,SAAS4nB,eAAe,kBAI9B,GAGgC,UAA9Bz0B,gXAAY07B,cACdz+B,OAAOE,YACL,CACEk+B,SAAU,YACVI,WAAY,OACZnzB,WAAYtI,gXAAY27B,qBACxBj8B,QAAkD,SAAzCM,gXAAY47B,yBACrB16B,OAAQlB,gXAAY67B,kBAEtB,KAGF5+B,OAAOC,OAAOC,YAAY,CAAEC,KAAM,QAAU,KDfxC,kBAAmBsP,WACrBA,UAAUovB,cAAcC,MAAMx0B,MAAKy0B,IACjCA,EAAaC,gBCiBnBp+B,EAAgBq+B,e,iBCxIhBC,EAAOC,QAAU,CACflZ,UAAW,CACT,CACE,EAAK,CACH,CACEI,GAAI,IACJE,UAAW,GACXxB,QAAS,YACTC,OAAQ,GACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,KAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,iBACTC,OAAQ,YACRoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,mBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,cACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,EAAK,CACH,CACEhZ,GAAI,IACJE,UAAW,KACXxB,QAAS,sBACTC,OAAQ,YACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,sBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,cACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,4BACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,6CACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,6BACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,YACTC,OACE,4EACFoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,gCACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,+BACRoa,SAAU,GACVja,SAAU,KACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,mBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,SAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,cACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,SAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,yBACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,0CACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,gDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,uDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,2CACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,yDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,oBACTC,OAAQ,sBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,gCACRoa,SAAU,GACVja,UAAW,IACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,OACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,uCACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,mDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,mDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,0BACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,uDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,oCACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,oDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,4BACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,GACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,mDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,2BACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,GACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,QACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,iBACTC,OAAQ,cACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,2BACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,wBACTC,OAAQ,gBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,6BACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,mBACTC,OAAQ,iBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,0BACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,wCACTC,OAAQ,qDACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,wCACTC,OAAQ,qBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,YACRoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,iBACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,qBACTC,OAAQ,gBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,QACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,8BACTC,OAAQ,oBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,eACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,oBACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,8BACTC,OAAQ,eACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,UACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,mBACTC,OAAQ,kBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,mBACTC,OAAQ,oBACRoa,SAAU,GACVja,UAAW,IACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,mBACTC,OACE,8EACFoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,0BACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,kDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,mBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,mBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,gBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,iBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,iBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,iBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,iBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,cACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,iDACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,oDACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,4BACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,qCACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,4BACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,MACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,kBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,sBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,GAAM,CACJ,CACEhZ,GAAI,KACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,gCACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,eACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,wBACTC,OAAQ,iBACRoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,gDACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,wCACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,wCACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,qBACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,kCACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,yBACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,6CACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,eACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,eACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,mBACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OACE,gEACFoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,mDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,4CACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,sBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,+CACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,kCACTC,OAAQ,qCACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,kCACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,MACXxB,QAAS,wBACTC,OAAQ,iBACRoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,uBACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,oCACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,kCACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,6BACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,KACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,mBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,uBACTC,OAAQ,uDACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,uBACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,UACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,QACRoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,iBACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,2BACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,qBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,wBACTC,OAAQ,iBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,cACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,mBACTC,OAAQ,eACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,OACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,MACXxB,QAAS,WACTC,OAAQ,YACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,iBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,wBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,kBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,qBACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,GACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,yBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,GACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,qBACTC,OAAQ,mBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,gBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,0DACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,cACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,GACXxB,QAAS,qBACTC,OAAQ,2BACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,qBACTC,OAAQ,4BACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,mBACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,wBACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,WACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,4BACTC,OAAQ,eACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,mCACTC,OAAQ,YACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,wBACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,gBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,iBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,cACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,aACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,kBACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,oCACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,iBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,0DACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,IACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,yBACTC,OAAQ,eACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,uBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,uBACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,+BACTC,OAAQ,gBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,cACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,OACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,sBACTC,OAAQ,gBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,mBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,eACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,2BACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,SAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,UACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,OACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,uBACTC,OAAQ,mBACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,iBACTC,OAAQ,8BACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,IACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,eACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,eACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,UACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,gBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,eACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,4BACRoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,CAClB,CACEpB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,iBAEf,CACEvB,OAAQ,KACRsB,cAAe,gBACfC,YAAa,kBAGjB8Z,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,gBACTC,OAAQ,SACRoa,SAAU,GACVja,UAAW,GACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,aACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,aACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,YACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,YACTC,OAAQ,UACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,UACTC,OAAQ,0BACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,OAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,0BACTC,OAAQ,YACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,uBACTC,OAAQ,oBACRoa,SAAU,GACVja,UAAW,EACXiB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,MAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,MACXxB,QAAS,qBACTC,OAAQ,eACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,oBACTC,OAAQ,WACRoa,SAAU,GACVja,SAAU,GACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,QACTC,OAAQ,QACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,SACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,QAGxB,IAAO,CACL,CACEhZ,GAAI,MACJE,UAAW,KACXxB,QAAS,WACTC,OAAQ,SACRoa,SAAU,GACVja,SAAU,EACViB,aAAc,EACdhB,mBAAoB,GACpBia,mBAAoB,UAK5BC,kBAAmB,CACjB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,S","file":"static/js/main.1644607f.chunk.js","sourcesContent":["import { Interaction, Message, WebsiteSettings } from \"./interaction.interface\";\n\nexport enum ConversationState {\n Active = \"active\",\n Initialised = \"initialised\",\n /* these two status are not sent by server */\n Finished = \"finshed\",\n Restarting = \"Restarting\"\n}\n\nexport enum NotificationStyle {\n NotificationBadgeWithWelcomeInteraction = \"notification_badge_and_welcome_interactions\",\n NotificationBadgeOnly = \"notification_badge_only\"\n}\n\nexport interface IWidgetOptions {\n botId: null | string;\n pageUrl: string;\n websiteId: string;\n preview: boolean;\n pageTitle: string;\n}\n\nexport interface ISetupWidgetResponse {\n botId: null | string;\n isFirstTime: boolean;\n chSessionId: null | string;\n conversationState: ConversationState;\n showClosedWidgetInteractions: boolean;\n welcomeDisplayStyle: NotificationStyle;\n settings: WebsiteSettings;\n session_timeout: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n}\n\nexport interface FetchConversationResponse {\n response_interactions: Message[];\n welcomeInteractions: (Interaction & { log_id: number })[];\n total: number;\n pageSize: number;\n}\n\nexport const LOCAL_STORAGE_SESSION_KEY_PREFIX = \"ch_session\";\n\nexport const LOCAL_STORAGE_CONTACT_KEY_PREFIX = \"ch_contact\";\n\nexport interface Socket {\n on(event: string, fn: Function): void;\n emit(event: string, ...args: any[]): void;\n close(): void;\n connected: boolean;\n}\n\nexport interface Analytics {\n analytics_on_consent: boolean;\n}\n\nexport interface StorageData {\n contactCookie: CookieData;\n sessionCookie: CookieData;\n analyticCookie: CookieData;\n}\n\nexport interface CookieData {\n name: string;\n value: string;\n expires: string;\n same_site: string;\n path: string;\n secure: string;\n}\n\nexport const CONTACT_COOKIE_HEADER_KEY = \"set-co-contact-cookie\";\nexport const SESSION_COOKIE_HEADER_KEY = \"set-co-session-cookie\";\nexport const ANALYTIC_COOKIE_HEADER_KEY = \"set-co-analytic-cookie\";\n\nexport const RETRY_ANSWER_TIMEOUT = 10000;\n\nexport const mockSessionCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_session_web-test\",\n value: \"test-session\",\n expires: \"2020-09-18T06:30:00.464Z\"\n};\nexport const mockContactCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_contact_web-test\",\n value: \"test-contact\",\n expires: \"2020-12-17T06:00:00.463Z\"\n};\nexport const mockAnalyticCookie = {\n same_site: \"strict\",\n path: \"/\",\n secure: false,\n name: \"ch_analytic_web-test\",\n value: \"test-analytic\",\n expires: \"2020-12-17T06:00:00.463Z\"\n};\n","import { Analytics, StorageData } from \"../constants\";\nexport class MemoryStorage {\n static currentSession: string;\n static currentContact: string;\n static currentAnalytics: string;\n static analyticsSetting: Analytics;\n\n public static getSession() {\n return this.currentSession;\n }\n\n public static setValues(storageData: StorageData) {\n const analyticCookie = this.getAnalytics();\n this.currentSession = storageData.sessionCookie.value;\n this.currentContact = storageData.contactCookie.value;\n this.currentAnalytics = analyticCookie || storageData.analyticCookie.value;\n }\n\n public static getContact() {\n return this.currentContact;\n }\n\n public static setAnalytics(storageData: StorageData) {\n const analyticCookie = this.getAnalytics();\n this.currentContact = storageData.contactCookie.value;\n this.currentAnalytics = analyticCookie || storageData.analyticCookie.value;\n }\n\n public static getAnalytics() {\n return this.currentAnalytics;\n }\n}\n","import { Analytics, StorageData } from \"../constants\";\nimport { ICookie } from \"../interfaces/cookie\";\n\nexport class CookieStorage {\n static analyticsSetting: Analytics;\n static currentSession: string;\n static currentContact: string;\n static currentAnalytics: string;\n\n public static getSession(): string {\n return this.currentSession;\n }\n\n public static getContact(): string {\n return this.currentContact;\n }\n\n /**\n * Sets the analytics cookie\n */\n public static setAnalytics(storage: StorageData) {\n this.currentAnalytics = storage.analyticCookie.value;\n window.parent.postMessage(\n {\n type: \"setCookie\",\n values: [\n {\n name: storage.analyticCookie.name,\n expiry: storage.analyticCookie.expires,\n value: storage.analyticCookie.value,\n same_site: storage.analyticCookie.same_site,\n path: storage.analyticCookie.path\n },\n {\n name: storage.contactCookie.name,\n expiry: storage.contactCookie.expires,\n value: storage.contactCookie.value,\n same_site: storage.analyticCookie.same_site,\n path: storage.analyticCookie.path\n }\n ]\n },\n \"*\"\n );\n }\n\n /**\n * Gets the analytics cookie\n */\n public static getAnalytics(): string {\n return this.currentAnalytics;\n }\n\n public static setValues(storageData: StorageData) {\n let cookiesValues: ICookie[] = [];\n\n if (storageData.sessionCookie) {\n this.currentSession = storageData.sessionCookie.value;\n\n cookiesValues.push({\n name: storageData.sessionCookie.name,\n expiry: storageData.sessionCookie.expires,\n value: this.currentSession,\n same_site: storageData.sessionCookie.same_site,\n path: storageData.sessionCookie.path\n });\n }\n\n if (storageData.contactCookie) {\n this.currentContact = storageData.contactCookie.value;\n\n cookiesValues.push({\n name: storageData.contactCookie.name,\n expiry: storageData.contactCookie.expires,\n value: this.currentContact,\n same_site: storageData.contactCookie.same_site,\n path: storageData.contactCookie.path\n });\n }\n\n if (storageData.analyticCookie) {\n this.currentAnalytics = storageData.analyticCookie.value;\n\n cookiesValues.push({\n name: storageData.analyticCookie.name,\n expiry: storageData.analyticCookie.expires,\n value: this.currentAnalytics,\n same_site: storageData.analyticCookie.same_site,\n path: storageData.analyticCookie.path\n });\n }\n\n window.parent.postMessage(\n {\n type: \"setCookie\",\n values: cookiesValues\n },\n \"*\"\n );\n }\n}\n","import { MemoryStorage } from \"./memory-storage\";\nimport { CookieStorage } from \"./cookie-storage\";\n\nexport class StorageStrategy {\n private static strategy: MemoryStorage | CookieStorage = MemoryStorage;\n\n public static getStrategy(): any {\n return StorageStrategy.strategy;\n }\n\n public static setStrategy(): void {\n // As we are using first party cookies\n // We can always set cookies in normal and incognito mode\n StorageStrategy.strategy = CookieStorage;\n // if (navigator.cookieEnabled) {\n // StorageStrategy.strategy = CookieStorage;\n // } else {\n // StorageStrategy.strategy = MemoryStorage;\n // }\n }\n}\n","export function createGuid() {\n function _p8(s) {\n var p = (Math.random().toString(16) + \"000000000\").substr(2, 8);\n return s ? \"-\" + p.substr(0, 4) + \"-\" + p.substr(4, 4) : p;\n }\n return _p8(false) + _p8(true) + _p8(true) + _p8(false);\n}\n","import { createGuid } from \"./helpers\";\n\ninterface apiOptions {\n headers: {};\n body?: {};\n credentials?: boolean;\n}\n\ninterface fetchOptions {\n method: string;\n headers: {};\n body: string;\n credentials?: \"include\";\n}\n\nexport class ApiClient {\n static get(url: string, options: apiOptions) {\n return this.client(\n url,\n this.updateOptions(options),\n \"get\",\n options.credentials || false\n );\n }\n\n static post(url: string, options: apiOptions) {\n return this.client(\n url,\n this.updateOptions(options),\n \"post\",\n options.credentials || false\n );\n }\n\n private static client(\n url,\n options: apiOptions,\n httpVerb: string,\n credentials: boolean\n ) {\n let fetchOptions: fetchOptions = {\n method: httpVerb,\n headers: options.headers,\n body: JSON.stringify(options.body)\n };\n if (credentials) {\n fetchOptions.credentials = \"include\";\n }\n return fetch(url, fetchOptions);\n }\n\n private static updateOptions(options: any) {\n let updatedOptions = { ...options };\n updatedOptions.headers = {\n ...options.headers,\n \"x-request-id\": createGuid()\n };\n return updatedOptions;\n }\n}\n","import {\n IWidgetOptions,\n ISetupWidgetResponse,\n ANALYTIC_COOKIE_HEADER_KEY,\n CONTACT_COOKIE_HEADER_KEY,\n SESSION_COOKIE_HEADER_KEY\n} from \"./constants\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { ApiClient } from \"./utils/api-client\";\n\n/**\n * Gets bot in current session\n * If botId is not found in response then there is no active bot and all other fields will be empty\n */\nexport async function setupWidget(\n options: IWidgetOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n let chSessionId = options.preview ? null : storage.getSession();\n let chContactId = options.preview ? null : storage.getContact();\n let chAnalytics = options.preview ? null : storage.getAnalytics();\n const response = await ApiClient.post(\n process.env.REACT_APP_SETTINGS_API + \"setup-widget\",\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: {\n pageUrl: options.pageUrl,\n pageTitle: options.pageTitle,\n websiteId: options.websiteId,\n botId: options.botId,\n preview: options.preview,\n chContactId,\n chAnalytics,\n chSessionId\n },\n credentials: true\n }\n );\n\n const json = await response.json();\n if (json.success !== true) return null;\n\n let sessionId = null;\n let sessionCookieData;\n let contactCookieData;\n let analyticCookieData;\n\n try {\n sessionCookieData = JSON.parse(\n response.headers.get(SESSION_COOKIE_HEADER_KEY) || \"\"\n );\n sessionId = sessionCookieData.value;\n } catch (e) {\n sessionCookieData = null;\n }\n\n try {\n contactCookieData = JSON.parse(\n response.headers.get(CONTACT_COOKIE_HEADER_KEY) || \"\"\n );\n } catch (e) {\n contactCookieData = null;\n }\n\n try {\n analyticCookieData = JSON.parse(\n response.headers.get(ANALYTIC_COOKIE_HEADER_KEY) || \"\"\n );\n } catch (e) {\n analyticCookieData = null;\n }\n\n let storageData = {};\n\n if (options.preview) {\n storageData = {\n contactCookie: contactCookieData,\n sessionCookie: sessionCookieData\n };\n } else {\n storageData = {\n contactCookie: contactCookieData,\n sessionCookie: sessionCookieData,\n analyticCookie: analyticCookieData\n };\n }\n\n storage.setValues(storageData);\n\n if (response.status === 200) {\n return {\n botId: json.data.bot_id || null,\n chSessionId: sessionId,\n isFirstTime: json.data.is_first_time,\n conversationState: json.data.conversation_state,\n showClosedWidgetInteractions: json.data.show_closed_widget_interactions,\n welcomeDisplayStyle: json.data.welcome_display_style,\n settings: getWebsiteSetting(json.data.settings, options.websiteId),\n session_timeout: json.data.session_timeout,\n oncehubBrandingUrl: json.data.branding_url,\n showPromotionalMessage: json.data.show_promotional_message\n };\n } else {\n return null;\n }\n}\n\nfunction getWebsiteSetting(data, websiteId) {\n return {\n id: websiteId,\n botName: data?.bot_name,\n companyName: data?.company_name,\n colour: data?.colour,\n textColour: data?.text_colour,\n shape: data?.shape,\n widgetIcon: data?.widget_icon,\n botIcon: data?.bot_icon\n };\n}\n","import { FetchConversationResponse } from \"./constants\";\nimport { ApiClient } from \"./utils/api-client\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\nimport { Interaction } from \"./interaction.interface\";\n\n/** Fetches current conversation. In preview we don't fetch conversation */\nexport async function fetchConverasation(\n websiteId: string,\n page: number = 1\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const url =\n process.env.REACT_APP_SETTINGS_API +\n \"response-interactions?page=\" +\n page +\n \"&website_id=\" +\n websiteId +\n \"&ch_session_id=\" +\n storage.getSession();\n const response = await ApiClient.get(url, {\n headers: {\n \"content-type\": \"application/json\"\n }\n });\n if (response.status !== 200) {\n throw new Error(\"Unexpected response from server\");\n }\n const total = response.headers.get(\"total\");\n const pageSize = response.headers.get(\"per-page\");\n if (total == null || pageSize == null) throw new Error();\n const json = await response.json();\n json.response_interactions = json.response_interactions.map(item => ({\n ...item,\n id: item.log_id.toString()\n }));\n json.response_interactions.reverse();\n const welcomeInteractions: (Interaction & { log_id: number })[] = [];\n for (let i = json.response_interactions.length - 1; i >= 0; i--) {\n const message = json.response_interactions[i];\n if (message.sent_by === \"bot\" && !message.is_read) {\n welcomeInteractions.push(message);\n }\n }\n return {\n response_interactions: json.response_interactions,\n welcomeInteractions: welcomeInteractions.reverse(),\n total: parseInt(total),\n pageSize: parseInt(pageSize)\n };\n}\n","import {\n Message,\n Interaction,\n ConfirmEventData,\n WebsiteSettings\n} from \"./interaction.interface\";\nimport { NotificationStyle, ConversationState } from \"./constants\";\nimport {\n ErrorWhileBlocking,\n ErrorWhileConfirming,\n FetchSlotsAPIErrorResponse\n} from \"./widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type\";\n\nexport enum SocketStatus {\n CONNECTED,\n DISCONNECTED,\n CONNECTING\n}\n\nexport interface Bot {\n id: string;\n session_timeout: number;\n hasCloseNotifications: boolean;\n notificationStyle: NotificationStyle;\n}\n\nexport interface IAppContext {\n preview: boolean;\n settings: WebsiteSettings;\n bot: Bot;\n state: ConversationState;\n socket: SocketStatus;\n open: boolean;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n}\n\nexport interface IConversationContext {\n messages: Message[];\n welcomeInteractions?: [];\n messageFailed: boolean;\n pageSize: number;\n total: number;\n}\n\nexport interface AppState {\n startedAt: number;\n bot: null | Bot;\n settings: null | WebsiteSettings;\n messages: Message[];\n welcomeInteractions?: [];\n page: number;\n total: number;\n state: ConversationState;\n socket: SocketStatus;\n open: boolean;\n messageFailed: boolean;\n pageSize: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n}\n\nexport type AppAction =\n | {\n type: \"SETUP\";\n data: {\n bot: Bot;\n settings: WebsiteSettings;\n messages: Message[];\n total: number;\n state: ConversationState;\n open: boolean;\n pageSize: number;\n oncehubBrandingUrl: string;\n showPromotionalMessage: boolean;\n };\n }\n | { type: \"RESTART\" }\n | { type: \"SOCKET_CONNECT\" }\n | { type: \"SOCKET_CONNECTING\" }\n | { type: \"SOCKET_DISCONNECT\" }\n | { type: \"NEW_MESSAGE\"; message: Message }\n | { type: \"BOT_RESPONSE\" }\n | { type: \"INITIATED\" }\n | { type: \"OPEN_WIDGET\" }\n | { type: \"CLOSE_WIDGET\" }\n | { type: \"MESSAGE_FAILED\" }\n | {\n type: \"SCHEDULE_RESPONSE\";\n response:\n | ErrorWhileConfirming\n | ConfirmEventData\n | FetchSlotsAPIErrorResponse\n | ErrorWhileBlocking;\n }\n | { type: \"END_CONVERSATION\" }\n | { type: \"INTERACTION_SEEN\" }\n | { type: \"CLOSED_NOTIFICATIONS\" }\n | { type: \"ANSWER_DELIVERED\"; id: string }\n | { type: \"RESEND_LAST_MESSAGE\" }\n | { type: \"UPDATE_TIMEZONE\"; timezoneId: string }\n | { type: \"CLEAN_DOUBLE_BOOKING_ERROR\" }\n | { type: \"APPEND_MISSED_MESSAGE\"; messages: Message[] }\n | { type: \"LOADING_NEXT_PAGE\"; page: number }\n | { type: \"LOAD_PAGE\"; messages: Message[] };\n\nexport function reducer(state: AppState, action: AppAction): AppState {\n switch (action.type) {\n case \"SETUP\":\n return {\n ...action.data,\n page: 1,\n startedAt: state.startedAt,\n socket: state.socket,\n messageFailed: false\n };\n case \"RESTART\":\n return {\n ...state,\n messages: [],\n page: 0,\n startedAt: Date.now(),\n total: 0,\n state: ConversationState.Restarting,\n messageFailed: false\n };\n case \"SOCKET_CONNECT\":\n return {\n ...state,\n socket: SocketStatus.CONNECTED\n };\n case \"SOCKET_CONNECTING\":\n return {\n ...state,\n socket: SocketStatus.CONNECTING\n };\n case \"SOCKET_DISCONNECT\":\n return {\n ...state,\n socket: SocketStatus.DISCONNECTED\n };\n case \"INITIATED\":\n return {\n ...state,\n state: ConversationState.Active\n };\n case \"NEW_MESSAGE\":\n return {\n ...state,\n messageFailed: false,\n total: state.total + 1,\n messages: [...state.messages, action.message]\n };\n case \"OPEN_WIDGET\":\n return {\n ...state,\n open: true,\n state:\n state.state === ConversationState.Initialised\n ? ConversationState.Active\n : state.state\n };\n case \"CLOSE_WIDGET\":\n return {\n ...state,\n open: false\n };\n case \"MESSAGE_FAILED\":\n return {\n ...state,\n messageFailed: true\n };\n case \"SCHEDULE_RESPONSE\": {\n const messages = [...state.messages];\n const message = { ...messages[messages.length - 1] };\n if (message.sent_by !== \"bot\") throw new Error();\n const interaction = { ...message.data } as Interaction;\n if (interaction.interaction_type !== \"action\") throw new Error();\n if (interaction.action_type !== \"schedule\") throw new Error();\n if (\"schedule_status\" in action.response) {\n interaction.schedule_status = action.response.schedule_status;\n interaction.schedule_fallback_message =\n action.response.schedule_fallback_message;\n } else {\n interaction.schedule_status = \"confirmed\";\n interaction.schedule_confirm_data = action.response;\n }\n message.data = interaction;\n messages[messages.length - 1] = message;\n return { ...state, messages };\n }\n case \"CLEAN_DOUBLE_BOOKING_ERROR\": {\n const messages = [...state.messages];\n const message = { ...messages[messages.length - 1] };\n if (message.sent_by !== \"bot\") throw new Error();\n const interaction = { ...message.data } as Interaction;\n if (interaction.interaction_type !== \"action\") throw new Error();\n if (interaction.action_type !== \"schedule\") throw new Error();\n delete interaction.schedule_status;\n message.data = interaction;\n messages[messages.length - 1] = message;\n return { ...state, messages };\n }\n case \"END_CONVERSATION\":\n return { ...state, state: ConversationState.Finished };\n case \"INTERACTION_SEEN\":\n return {\n ...state,\n messages: state.messages.map(message => {\n if (message.sent_by === \"contact\") return message;\n if (message.is_read === true) return message;\n return { ...message, is_read: true };\n })\n };\n case \"CLOSED_NOTIFICATIONS\":\n return {\n ...state,\n bot: state.bot && {\n ...state.bot,\n hasCloseNotifications: true\n }\n };\n case \"ANSWER_DELIVERED\":\n return {\n ...state,\n messages: state.messages.map(message =>\n message.id !== action.id\n ? message\n : {\n ...message,\n is_read: true\n }\n )\n };\n case \"RESEND_LAST_MESSAGE\":\n return {\n ...state,\n messageFailed: false\n };\n case \"UPDATE_TIMEZONE\": {\n let messages = state.messages;\n const message = messages[messages.length - 1];\n if (message.sent_by === \"contact\") return state;\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"action\") return state;\n if (interaction.action_type !== \"schedule\") return state;\n messages = [...messages];\n messages[messages.length - 1] = {\n ...message,\n data: { ...interaction, time_zone_id: action.timezoneId }\n };\n return { ...state, messages };\n }\n case \"APPEND_MISSED_MESSAGE\": {\n const messages = [...state.messages];\n const messageIds = new Set(messages.map(message => message.id));\n const nextMessages = action.messages;\n let total = state.total;\n for (let i = nextMessages.length - 1; i >= 0; i--) {\n const message = nextMessages[i];\n if (message.sent_by === \"bot\" && !messageIds.has(message.id)) {\n messages.push(message);\n total++;\n }\n }\n return { ...state, messages, total };\n }\n case \"LOADING_NEXT_PAGE\": {\n return { ...state, page: state.page + 1 };\n }\n case \"LOAD_PAGE\": {\n const messages = [...state.messages];\n const messageIds = new Set(messages.map(message => message.id));\n const nextMessages = action.messages.filter(\n message => !messageIds.has(message.id)\n );\n return {\n ...state,\n messages: [...nextMessages, ...state.messages],\n total: state.total\n };\n }\n default:\n throw new Error(\"Unknown action \" + JSON.stringify(action, null, 4));\n }\n}\n\nexport function initialAppState(): AppState {\n return {\n bot: null,\n settings: null,\n messages: [],\n welcomeInteractions: [],\n page: 0,\n total: 0,\n pageSize: 15,\n state: ConversationState.Initialised,\n startedAt: Date.now(),\n socket: SocketStatus.DISCONNECTED,\n open: false,\n messageFailed: false,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false\n };\n}\n\nexport function getWebsiteId(state: AppState): string {\n if (state.settings === null) throw new Error();\n return state.settings.id;\n}\n\nexport function currentInteractionId(state: AppState): null | string {\n const messages = state.messages;\n let interactionId: string | null = null;\n for (let i = messages.length - 1; i >= 0 && interactionId === null; i--) {\n const message = messages[i];\n if (\n message.sent_by === \"bot\" &&\n (message.data as Interaction).interaction_type != null\n ) {\n interactionId = (message.data as Interaction).external_id;\n }\n }\n return interactionId;\n}\n","import {\n AppAction,\n AppState,\n currentInteractionId,\n getWebsiteId\n} from \"./reducer\";\nimport {\n Interaction,\n Message,\n ConfirmEventData\n} from \"./interaction.interface\";\nimport { Dispatch } from \"react\";\nimport {\n ErrorWhileBlocking,\n ErrorWhileConfirming,\n FetchSlotsAPIErrorResponse\n} from \"./widget-container/widget-body/widget-message/action-interactions/schedule-action/slots.type\";\nimport { fetchConverasation } from \"./conversation.service\";\nimport { ConversationState, Socket, RETRY_ANSWER_TIMEOUT } from \"./constants\";\nimport { connectSocket } from \"./io\";\nimport { StorageStrategy } from \"./utils/storage-strategy\";\n\nexport type ServerEvent =\n | {\n type: \"conversation_initiated\";\n }\n | {\n type: \"new_interaction\";\n }\n | {\n type: \"bot_response\";\n }\n | {\n type: \"interaction_error\";\n }\n | { type: \"end_conversation\" }\n | {\n type: \"all_interactions_send\";\n }\n | {\n type: \"answer_delivered\";\n };\n\ninterface AnswerEvent {\n type: \"answer\";\n answer_id: string;\n content?: string;\n time_zone_id?: string;\n interaction_option_id?: number;\n multi_interaction_options_answer_ids?: number[];\n}\n\ntype ClientEvent =\n | AnswerEvent\n | {\n type: \"next_interaction\";\n }\n | {\n type: \"welcome_interactions_closed\";\n }\n | {\n type: \"finish_conversation\";\n }\n | {\n type: \"update_timezone\";\n time_zone_id: string;\n }\n | {\n type: \"interaction_seen\";\n }\n | {\n type: \"heartbeat\";\n };\n\nfunction randomId(): string {\n return (\n ((Math.random() * 1073741824) >>> 0).toString(36) +\n ((Math.random() * 1073741824) >>> 0).toString(36)\n );\n}\n\nexport type Actions = ReturnType;\n\nexport type Answer =\n | { content: string }\n | { content: string; interaction_option_id: number }\n | { content: string; multi_interaction_options_answer_ids: number[] }\n | { content: string; time_zone_id: string };\n\nexport function createActions(\n dispatch: Dispatch,\n getState: () => AppState\n) {\n let socket: null | Socket = null;\n let lastAnswer: AnswerEvent | null = null;\n let retryAnswerTimeout: any = null;\n let nextMessageAt = Date.now();\n let ping = 2500;\n let finished = false;\n let storage = StorageStrategy.getStrategy();\n\n function connect() {\n socket = connectSocket();\n\n dispatch({ type: \"SOCKET_CONNECTING\" });\n\n socket.on(\"connect\", () => dispatch({ type: \"SOCKET_CONNECT\" }));\n\n socket.on(\"disconnect\", () => dispatch({ type: \"SOCKET_DISCONNECT\" }));\n\n socket.on(\"reconnect\", () => {\n dispatch({ type: \"SOCKET_CONNECT\" });\n fetchConverasation(getWebsiteId(getState())).then(data =>\n dispatch({\n type: \"APPEND_MISSED_MESSAGE\",\n messages: data.response_interactions\n })\n );\n });\n\n socket.on(\"conversation_initiated\", () => dispatch({ type: \"INITIATED\" }));\n\n socket.on(\n \"new_interaction\",\n (interaction: Interaction & { log_id: number }) =>\n addNextMessage({\n id: interaction.log_id.toString(),\n sent_by: \"bot\",\n data: interaction,\n is_read: false,\n interaction_time: new Date().toISOString()\n })\n );\n\n socket.on(\"bot_response\", data =>\n addNextMessage({\n id: data.log_id.toString(),\n sent_by: \"bot\",\n data: {\n text: data.text\n },\n is_read: false,\n interaction_time: new Date().toISOString()\n })\n );\n\n socket.on(\"interaction_error\", data =>\n addNextMessage({\n id: data.log_id.toString(),\n sent_by: \"bot\",\n data: {\n text: data.error\n },\n is_read: false,\n interaction_time: new Date().toISOString()\n })\n );\n\n socket.on(\"end_conversation\", () => {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n });\n\n socket.on(\"answer_delivered\", data => {\n if (retryAnswerTimeout !== null) clearTimeout(retryAnswerTimeout);\n dispatch({ type: \"ANSWER_DELIVERED\", id: data.answer_id });\n nextMessageAt = Date.now() + 500; // Display the typing indicator for atleast 0.5 second before sending the next interaction\n });\n\n socket.on(\"all_interactions_send\", () => {\n setTimeout(endConversation, Math.max(0, nextMessageAt - Date.now()));\n });\n\n socket.on(\"pong\", (ms: number) => {\n ping = ms;\n });\n\n return socket;\n }\n\n function addNextMessage(message: Message) {\n const time = nextMessageAt - Date.now();\n if (time <= 0) {\n nextMessageAt = Date.now() + 1000;\n dispatch({ type: \"NEW_MESSAGE\", message });\n } else {\n nextMessageAt += 1000;\n setTimeout(() => dispatch({ type: \"NEW_MESSAGE\", message }), time);\n }\n }\n\n function push({ type, ...data }: ClientEvent) {\n if (finished) return;\n let sessionId = storage.getSession();\n if (!sessionId) {\n endConversation();\n return;\n }\n if (socket === null) {\n socket = connect();\n }\n const state = getState();\n const payload = {\n ...data,\n eventId: randomId(),\n website_id: getWebsiteId(state),\n current_interaction_id: currentInteractionId(state),\n session: sessionId\n };\n let done = false;\n const sessionSocket = socket;\n socket.emit(type, payload, () => {\n done = true;\n if (finished) sessionSocket.close();\n });\n const send = () => {\n if (socket !== sessionSocket || done) return;\n if (socket.connected) {\n socket.emit(type, payload, () => {\n done = true;\n if (finished) sessionSocket.close();\n });\n }\n setTimeout(send, ping * 2);\n };\n setTimeout(send, ping * 2);\n }\n\n function answer(answer: Answer) {\n const state = getState().state;\n if (\n state !== ConversationState.Active &&\n state !== ConversationState.Initialised\n ) {\n return;\n }\n lastAnswer = {\n type: \"answer\",\n answer_id: randomId(),\n ...answer\n };\n push(lastAnswer);\n dispatch({\n type: \"NEW_MESSAGE\",\n message: {\n sent_by: \"contact\",\n id: lastAnswer.answer_id,\n is_read: false,\n data: {\n text: answer.content\n },\n interaction_time: new Date().toISOString()\n }\n });\n retryAnswerTimeout = setTimeout(\n () => dispatch({ type: \"MESSAGE_FAILED\" }),\n RETRY_ANSWER_TIMEOUT\n );\n }\n\n function nextInteraction() {\n push({ type: \"next_interaction\" });\n }\n\n function finishConversation() {\n push({ type: \"finish_conversation\" });\n finished = true;\n }\n\n function timeout() {\n finished = true;\n dispatch({ type: \"END_CONVERSATION\" });\n if (socket !== null) {\n socket.close();\n socket = null;\n }\n }\n\n function updateTimezone(time_zone_id: string) {\n push({ type: \"update_timezone\", time_zone_id });\n dispatch({ type: \"UPDATE_TIMEZONE\", timezoneId: time_zone_id });\n }\n\n function closeWidget() {\n dispatch({ type: \"CLOSE_WIDGET\" });\n }\n\n function openWidget() {\n const messages = getState().messages;\n const message = messages[messages.length - 1];\n if (message == null) {\n nextInteraction();\n return;\n }\n if (message.sent_by === \"bot\") {\n const interaction = message.data as Interaction;\n if (interaction.interaction_type === \"message\") {\n nextInteraction();\n } else if (interaction.interaction_type === \"action\") {\n if (interaction.action_type === \"schedule\") {\n if (interaction.schedule_status) {\n if (interaction.schedule_status !== \"slots_fetched\") {\n nextInteraction();\n }\n }\n }\n }\n }\n dispatch({ type: \"OPEN_WIDGET\" });\n }\n\n function interactionSeen() {\n push({ type: \"interaction_seen\" });\n dispatch({ type: \"INTERACTION_SEEN\" });\n }\n\n function restart() {\n finished = false;\n if (socket) {\n socket.close();\n socket = null;\n }\n dispatch({ type: \"RESTART\" });\n }\n\n function resendLastMessage() {\n if (lastAnswer === null) throw new Error();\n nextMessageAt = Date.now() + 1000;\n dispatch({ type: \"RESEND_LAST_MESSAGE\" });\n nextMessageAt = Date.now() + 1000;\n push(lastAnswer);\n retryAnswerTimeout = setTimeout(\n () => dispatch({ type: \"MESSAGE_FAILED\" }),\n RETRY_ANSWER_TIMEOUT\n );\n }\n\n function scheduleResponse(\n response:\n | ErrorWhileConfirming\n | ConfirmEventData\n | FetchSlotsAPIErrorResponse\n | ErrorWhileBlocking\n ) {\n dispatch({ type: \"SCHEDULE_RESPONSE\", response });\n nextMessageAt = Date.now() + 2000;\n nextInteraction();\n }\n\n function closeNotifications() {\n dispatch({ type: \"CLOSED_NOTIFICATIONS\" });\n push({ type: \"welcome_interactions_closed\" });\n }\n\n function endConversation() {\n dispatch({ type: \"END_CONVERSATION\" });\n }\n\n function cleanDoubleBookingError() {\n dispatch({ type: \"CLEAN_DOUBLE_BOOKING_ERROR\" });\n }\n\n function heartbeat() {\n push({ type: \"heartbeat\" });\n }\n\n function loadPage() {\n const state = getState();\n if (state.total === state.messages.length) return;\n let nextPage =\n state.messages.length % state.pageSize === 0\n ? state.messages.length / state.pageSize + 1\n : Math.ceil(state.messages.length / state.pageSize);\n if (state.page === nextPage) return;\n dispatch({ type: \"LOADING_NEXT_PAGE\", page: nextPage });\n if (state.settings == null) return;\n fetchConverasation(state.settings.id, nextPage).then(data =>\n dispatch({\n type: \"LOAD_PAGE\",\n messages: data.response_interactions\n })\n );\n }\n\n return {\n answer,\n nextInteraction,\n finishConversation,\n updateTimezone,\n closeWidget,\n openWidget,\n interactionSeen,\n restart,\n resendLastMessage,\n scheduleResponse,\n closeNotifications,\n cleanDoubleBookingError,\n heartbeat,\n timeout,\n loadPage\n };\n}\n","import io from \"socket.io-client\";\nimport { Socket } from \"./constants\";\n\nexport function connectSocket(): Socket {\n const url = new URL(process.env.REACT_APP_SOCKET_API as string);\n const socket = io(url.protocol + \"//\" + url.host, {\n path: url.pathname + \"socket.io\",\n transports: [\"websocket\", \"polling\"]\n });\n return socket;\n}\n","import { IWidgetOptions } from \"../constants\";\n\nexport class Context {\n private static instance: Context;\n\n private constructor(\n public websiteId,\n public preview,\n public pageUrl,\n public pageTitle,\n public botId\n ) {}\n\n public static getInstance(): Context {\n return Context.instance;\n }\n\n public static setInstance(options: IWidgetOptions): void {\n Context.instance = new Context(\n options.websiteId,\n options.preview,\n options.pageUrl,\n options.pageTitle,\n options.botId\n );\n }\n}\n","import React, { useReducer, useMemo, useEffect, useRef, Dispatch } from \"react\";\nimport { setupWidget } from \"./setup.service\";\nimport { Message, WebsiteSettings } from \"./interaction.interface\";\nimport { fetchConverasation } from \"./conversation.service\";\nimport {\n IAppContext,\n Bot,\n reducer,\n IConversationContext,\n initialAppState,\n AppAction,\n AppState,\n SocketStatus\n} from \"./reducer\";\nimport { Actions, createActions } from \"./actions\";\nimport {\n ConversationState,\n IWidgetOptions,\n NotificationStyle\n} from \"./constants\";\nimport { Context } from \"./utils/context.service\";\n\ninterface Props {\n botId: null | string;\n preview: boolean;\n pageUrl: string;\n websiteId: string;\n pageTitle: string;\n children: React.ReactNode;\n}\n\nexport const AppContext = React.createContext({\n bot: {\n id: \"test-bot\",\n session_timeout: 600,\n hasCloseNotifications: false,\n notificationStyle: NotificationStyle.NotificationBadgeWithWelcomeInteraction\n },\n open: false,\n preview: false,\n settings: {\n id: \"website-id\",\n botName: \"Test\",\n colour: \"#bf23af\",\n companyName: \"Default\",\n shape: \"speech\",\n textColour: \"#fff\",\n widgetIcon: \"co-widget-icon-1\",\n botIcon: null\n },\n state: ConversationState.Active,\n socket: SocketStatus.CONNECTED,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false\n});\n\nexport const ConversationContext = React.createContext({\n messages: [],\n welcomeInteractions: [],\n messageFailed: false,\n pageSize: 15,\n total: 0\n});\n\nexport const SocketServiceContext = React.createContext(\n createActions(\n () => null,\n () => ({\n startedAt: 0,\n bot: {\n id: \"bot-id\",\n notificationStyle:\n NotificationStyle.NotificationBadgeWithWelcomeInteraction,\n hasCloseNotifications: false,\n session_timeout: 600\n },\n settings: {\n id: \"website-id\",\n botName: \"Test\",\n colour: \"#bf23af\",\n companyName: \"Default\",\n shape: \"speech\",\n textColour: \"#fff\",\n widgetIcon: \"co-widget-icon-1\",\n botIcon: null\n },\n messages: [],\n page: 0,\n total: 0,\n pageSize: 15,\n state: ConversationState.Initialised,\n socket: SocketStatus.CONNECTED,\n open: false,\n messageFailed: false,\n oncehubBrandingUrl: \"\",\n showPromotionalMessage: false\n })\n )\n);\n\nasync function fetchData(\n websiteId: string,\n preview: boolean,\n pageUrl: string,\n pageTitle: string,\n botId: null | string\n): Promise {\n const data = await setupWidget({\n websiteId,\n preview,\n pageTitle,\n pageUrl,\n botId\n });\n if (data === null) return null;\n\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: data.botId ? [] : [\"no-bot\"],\n remove: data.botId ? [\"no-bot\"] : []\n },\n \"*\"\n );\n if (data.botId == null) {\n return null;\n }\n\n const [conversation] = await Promise.all([fetchConverasation(websiteId)]);\n if (preview) {\n return {\n bot: {\n id: data.botId,\n hasCloseNotifications: false,\n session_timeout: 60 * 10 * 1000,\n notificationStyle: data.welcomeDisplayStyle\n },\n settings: data.settings,\n messages: conversation.response_interactions,\n total: conversation.response_interactions.length,\n state: data.conversationState,\n open: true,\n pageSize: 15,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage\n };\n } else {\n return {\n bot: {\n id: data.botId,\n hasCloseNotifications: !data.showClosedWidgetInteractions,\n session_timeout: data.session_timeout * 1000,\n notificationStyle: data.welcomeDisplayStyle\n },\n settings: data.settings,\n messages: conversation.response_interactions,\n welcomeInteractions: conversation.welcomeInteractions,\n total: conversation.total,\n state: data.conversationState,\n open: false,\n pageSize: conversation.pageSize,\n oncehubBrandingUrl: data.oncehubBrandingUrl,\n showPromotionalMessage: data.showPromotionalMessage\n };\n }\n}\n\nfunction useSocketService(state: AppState, dispatch: Dispatch) {\n let stateRef = useRef(state);\n stateRef.current = state;\n let ref = useRef(null);\n if (ref.current === null) {\n ref.current = createActions(dispatch, () => stateRef.current);\n }\n return ref.current;\n}\n\nexport function AppContextProvider({\n botId,\n websiteId,\n preview,\n pageUrl,\n pageTitle,\n children\n}: Props) {\n const options: IWidgetOptions = {\n botId: botId,\n pageUrl: pageUrl,\n websiteId: websiteId,\n preview: preview,\n pageTitle: pageTitle\n };\n Context.setInstance(options);\n const [state, dispatch] = useReducer(reducer, initialAppState());\n useEffect(() => {\n let cancelled = false;\n fetchData(websiteId, preview, pageUrl, pageTitle, botId).then(data => {\n if (cancelled) return;\n if (data == null) return;\n dispatch({\n type: \"SETUP\",\n data\n });\n window.parent.postMessage(\n { widgetLoadingFinished: \"widgetLoadingFinished\" },\n \"*\"\n );\n });\n return () => {\n cancelled = true;\n };\n }, [websiteId, preview, pageUrl, pageTitle, botId, state.startedAt]);\n const appContext: null | IAppContext = useMemo(\n () =>\n state.bot &&\n state.settings && {\n preview,\n bot: state.bot,\n settings: state.settings,\n state: state.state,\n socket: state.socket,\n open: state.open,\n oncehubBrandingUrl: state.oncehubBrandingUrl,\n showPromotionalMessage: state.showPromotionalMessage\n },\n [\n preview,\n state.bot,\n state.open,\n state.settings,\n state.state,\n state.socket,\n state.oncehubBrandingUrl,\n state.showPromotionalMessage\n ]\n );\n const conversationContext = useMemo(\n () => ({\n total: state.total,\n messages: state.messages,\n welcomeInteractions: state.welcomeInteractions || [],\n pageSize: state.pageSize,\n messageFailed: state.messageFailed\n }),\n [\n state.total,\n state.messages,\n state.welcomeInteractions,\n state.pageSize,\n state.messageFailed\n ]\n );\n const socketService = useSocketService(state, dispatch);\n return (\n appContext && (\n \n \n \n \n {children}\n \n \n \n \n )\n );\n}\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"./AppContext\";\n\nfunction Styles() {\n const { colour: color, textColour: textColor } = useContext(\n AppContext\n ).settings;\n return (\n \n );\n}\n\nexport default React.memo<{}>(Styles);\n","export class UtilsService {\n static extractHostName(url): string {\n let hostname;\n // find & remove protocol (http, ftp, etc.) and get hostname\n\n if (url.indexOf(\"//\") > -1) {\n hostname = url.split(\"/\")[2];\n } else {\n hostname = url.split(\"/\")[0];\n }\n\n // find & remove port number\n hostname = hostname.split(\":\")[0];\n // find & remove \"?\"\n hostname = hostname.split(\"?\")[0];\n\n return hostname;\n }\n}\n\nexport const BROWSER_IS_SAFARI = (() => {\n return /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);\n})();\n\nexport const ARE_COOKIES_DISABLED: boolean = (() => {\n if (typeof navigator !== \"undefined\" && \"cookieEnabled\" in navigator) {\n return navigator.cookieEnabled;\n }\n document.cookie = \"is_cookie_enabled=yes\";\n const disabled = document.cookie.indexOf(\"is_cookie_enabled\") === -1;\n if (!disabled) {\n document.cookie =\n \"is_cookie_enabled=yes; expires=Thu, 01-Jan-1970 00:00:00 GMT\";\n }\n return disabled;\n})();\n\nexport const IS_MOBILE = /(iphone|ipod|android|blackberry|windows ce|palm|symbian)/i.test(\n navigator.userAgent\n);\n\nexport const DAY_NAMES = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\nexport const SHORT_DAY_NAMES = [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n];\n\nexport const MONTH_NAMES = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const SHORT_MONTH_NAMES = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n","import React, { useContext } from \"react\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\n\ninterface Props {\n count: number;\n}\n\nfunction WidgetToggle({ count }: Props) {\n const {\n open,\n settings: { shape, textColour, widgetIcon }\n } = useContext(AppContext);\n const actions = useContext(SocketServiceContext);\n return (\n \n \n \n \n \n \n \n \n \n \n {count > 0 && {count}}\n \n );\n}\n\nexport default React.memo(WidgetToggle);\n","export default __webpack_public_path__ + \"static/media/bots-28.aebca506.svg\";","export const ColorSet = [\n \"#ffffff\",\n \"#fff4fe\",\n \"#fffaff\",\n \"#fffbff\",\n \"#fffcff\",\n \"#fffdff\",\n \"#fffeff\",\n \"#FFFAF0\",\n \"#F8F8FF\",\n \"#FFFFF0\",\n \"#FFFAFA\",\n \"#fffdf0\",\n \"#fffdf1\",\n \"#fffdf2\",\n \"#fffdf3\",\n \"#fffdf4\",\n \"#fffdf5\",\n \"#fffdf6\",\n \"#fffdf7\",\n \"#fffdf8\",\n \"#fffdf9\",\n \"#f9f8f4\",\n \"#fdfdfc\",\n \"#f9f9f9\",\n \"#f9f9f7\",\n \"#fdfdfc\",\n \"#fffffd\",\n \"#fffefb\",\n \"#fdfdfb\",\n \"#fbfbfb\",\n \"#fff8fe\",\n \"#fff7fe\",\n \"#fbfafb\",\n \"#fdf7fc\",\n \"#fdfdfd\",\n \"#fff9fe\",\n \"#fff5fe\",\n \"#fdfcfd\",\n \"#fdf9fd\",\n \"#fdfbfd\",\n \"#fbf3fa\",\n \"#fbfcfd\",\n \"#fdffec\",\n \"#feffff\",\n \"#fef9ff\",\n \"#fff9fd\",\n \"#fff5fb\",\n \"#fff8f6\",\n \"#fff6f6\",\n \"#fffaf9\",\n \"#fcffe9\",\n \"#fdfffe\",\n \"#fdfdff\",\n \"#f9fbff\",\n \"#fffaf6\",\n \"#e9fff4\",\n \"#f7f7f7\"\n];\n","import React, { useContext } from \"react\";\nimport \"./widget-header.scss\";\nimport botImg from \"../../assets/images/bots-28.svg\";\nimport { AppContext, SocketServiceContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\nfunction WidgetHeader() {\n const { botIcon, companyName } = useContext(AppContext).settings;\n const { closeWidget } = useContext(SocketServiceContext);\n const { colour: color } = useContext(AppContext).settings;\n return (\n \n \n \n \"\"\n \n \n

{companyName}

\n \n \n \n \n );\n}\n\nexport default React.memo<{}>(WidgetHeader);\n","import React, { useContext } from \"react\";\nimport { AppContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ninterface Props {\n active: boolean;\n}\n\nfunction SendButton({ active }: Props) {\n const color = useContext(AppContext).settings.colour;\n return active ? (\n \n Send\n \n \n \n \n \n \n \n \n \n \n ) : (\n \n Send\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default React.memo(SendButton);\n","/* tslint:disable */\nimport { IMaskedInputs, IValidationMessage } from \"./widget-footer/input.model\";\n\nexport const VADLIDATION_MESSAGES: IValidationMessage = {\n date: {\n dateFormatError: \"Please enter a valid date with the format DD/MM/YYYY\",\n futureDateError: \"Please enter a date that is in the future\"\n },\n dateTime: {\n dateFormatError:\n \"Please enter a valid datetime with the format DD/MM/YYYY HH:MM PM\",\n futureDateError: \"Please enter a datetime that is in the future\"\n },\n email: \"Please enter a valid email address\",\n phone: \"Please enter a valid phone number\",\n time: \"Please enter a valid time with the format HH:MM PM\"\n};\n\nexport const MASKEDINPUTS_PROPS: IMaskedInputs = {\n date: {\n guide: true,\n placeholder: \"DD/MM/YYYY\",\n placeholderChar: \"\\u2000\"\n },\n dateTime: {\n guide: true,\n placeholder: \"DD/MM/YYYY HH:MM PM\",\n placeholderChar: \"\\u2000\"\n },\n time: {\n guide: true,\n placeholder: \"HH:MM PM\",\n placeholderChar: \"\\u2000\"\n }\n};\nexport const ID_PREFIX: string = \"co-message-\";\nexport const DEFAULT_TIMEZONE_ID = \"270\";\nexport const TIMEZONE_ID_COOKIE = \"timezoneId\";\n// eslint-disable-next-line\nexport const EMAILREGEXPATTERN = /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/;\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface IDateInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n allowOnlyFutureDate: boolean;\n onSubmit(): void;\n}\n\nconst DATE_MASK = [/\\d/, /\\d/, \"/\", /\\d/, /\\d/, \"/\", /\\d/, /\\d/, /\\d/, /\\d/];\n\nexport const DATE_REGEX = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class DateInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n const setValidation = this.props.setValidation;\n const dateFormatError = VADLIDATION_MESSAGES.date.dateFormatError;\n const date = parseInt(value.substring(0, 2));\n if (date > 31) {\n setValidation(dateFormatError);\n return false;\n }\n const month = parseInt(value.substring(3, 5));\n if (month > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const year = parseInt(value.substring(6, 10));\n if (!DATE_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n const time = new Date(year, month - 1, date);\n const validity =\n time.getFullYear() === year &&\n time.getMonth() === month - 1 &&\n date === time.getDate();\n if (!validity) {\n setValidation(dateFormatError);\n return false;\n } else if (this.props.allowOnlyFutureDate && time.getTime() <= Date.now()) {\n setValidation(VADLIDATION_MESSAGES.date.futureDateError);\n return value;\n } else {\n setValidation(null);\n this.props.onChange(value);\n return value;\n }\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface IDatetimeInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n allowOnlyFutureDate: boolean;\n onSubmit(): void;\n}\n\nconst DATETIME_MASK = [\n /\\d/,\n /\\d/,\n \"/\",\n /\\d/,\n /\\d/,\n \"/\",\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n \" \",\n /\\d/,\n /\\d/,\n \":\",\n /\\d/,\n /\\d/,\n \" \",\n /a|A|p|P/,\n /m|M/\n];\n\nexport const DATE_TIME_REGEX = /\\d{1,2}\\/\\d{1,2}\\/\\d{4} \\d{1,2}:\\d{1,2} (?:A|P)M/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class DatetimeInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n value = value.toUpperCase();\n const setValidation = this.props.setValidation;\n const dateFormatError = VADLIDATION_MESSAGES.dateTime.dateFormatError;\n const date = parseInt(value.substring(0, 2));\n if (date > 31) {\n setValidation(dateFormatError);\n return false;\n }\n const month = parseInt(value.substring(3, 5));\n if (month > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const year = parseInt(value.substring(6, 10));\n const hours = parseInt(value.substring(11, 13));\n if (hours > 12) {\n setValidation(dateFormatError);\n return false;\n }\n const minutes = parseInt(value.substring(14, 16));\n if (minutes > 60) {\n setValidation(dateFormatError);\n return false;\n }\n const am = value.substring(17, 18) === \"AM\";\n if (!DATE_TIME_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n const time = new Date(year, month - 1, date);\n const validity =\n time.getFullYear() === year &&\n time.getMonth() === month - 1 &&\n date === time.getDate();\n if (!validity) {\n setValidation(dateFormatError);\n return false;\n }\n if (am) {\n time.setHours(hours);\n } else {\n time.setHours(hours === 12 ? 12 : 12 + hours);\n }\n time.setMinutes(minutes);\n if (this.props.allowOnlyFutureDate && time.getTime() <= Date.now()) {\n setValidation(VADLIDATION_MESSAGES.dateTime.futureDateError);\n return value;\n } else {\n setValidation(null);\n this.props.onChange(value);\n return value;\n }\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import React from \"react\";\nimport MaskedInput from \"react-text-mask\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\n\ninterface TimeInputProps {\n setValidation: (message: null | string) => void;\n onChange: (text: string) => void;\n onSubmit: () => void;\n}\n\nconst TIME_MASK = [/\\d/, /\\d/, \":\", /\\d/, /\\d/, \" \", /a|A|p|P/, /m|M/];\n\nexport const TIME_REGEX = /\\d{1,2}:\\d{1,2} (?:A|P)M/;\n\nconst placeholderChar = \"\\u2000\";\n\nexport class TimeInput extends React.Component {\n maskedInputRef: React.RefObject = React.createRef();\n\n componentDidUpdate() {\n if (\n this.maskedInputRef &&\n this.maskedInputRef.current &&\n this.maskedInputRef.current.inputElement\n ) {\n this.maskedInputRef.current.inputElement.focus();\n }\n }\n\n private pipe = (value: string, config: any): false | string => {\n value = value.toUpperCase();\n const setValidation = this.props.setValidation;\n const error = VADLIDATION_MESSAGES.time;\n const hours = parseInt(value.substring(0, 2));\n if (hours > 12) {\n setValidation(error);\n return false;\n }\n const minutes = parseInt(value.substring(3, 5));\n if (minutes > 60) {\n setValidation(error);\n return false;\n }\n if (!TIME_REGEX.test(value)) {\n setValidation(null);\n return value;\n }\n if (hours === 0) {\n setValidation(error);\n } else {\n this.props.onChange(value);\n }\n return value;\n };\n\n render() {\n return (\n \n );\n }\n\n keydown = (event: KeyboardEvent) => {\n if (event.keyCode === 13) {\n this.props.onSubmit();\n }\n };\n}\n","import \"./chat-button.scss\";\nimport * as React from \"react\";\n\ninterface IChatButtonProps {\n clickHandler: () => void;\n title?: any;\n text: any;\n isDisabled?: boolean;\n isLoading?: boolean;\n classNames?: string;\n}\n\nexport const ChatButton = (props: IChatButtonProps) => (\n \n {props.text}\n \n);\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"../common-components/select-list-with-filter/select-list-with-filter.scss\";\nimport \"./select-list.scss\";\nimport { ChatButton } from \"../common-components/chat-button/chat-button\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport { AppContext } from \"src/AppContext\";\n\ninterface InteractionOption {\n id: number | string;\n option_text: string;\n}\n\ninterface SingleSelectProps {\n single: true;\n items: T[];\n onSelect: (item: T) => void;\n close: () => void;\n}\n\ninterface MultiSelectProps {\n single: false;\n items: T[];\n onSelect: (items: T[]) => void;\n close: () => void;\n}\n\nexport type SelectListProps =\n | SingleSelectProps\n | MultiSelectProps;\n\nfunction useListHeight(): number {\n const [height, setHeight] = useState(0);\n useEffect(() => {\n let el = document.querySelector(\".chat-content\");\n el = el && el.parentElement;\n if (!el) {\n return;\n }\n const updateHeight = () => setHeight((el as HTMLElement).clientHeight / 2);\n updateHeight();\n window.addEventListener(\"resize\", updateHeight);\n return () => window.removeEventListener(\"resize\", updateHeight);\n });\n return height;\n}\n\nfunction SelectList(props: SelectListProps) {\n const height = useListHeight();\n const [filter, setFilter] = useState(\"\");\n const regex = new RegExp(filter, \"i\");\n const { colour: color } = useContext(AppContext).settings;\n const filteredOptions = props.items.filter(item =>\n regex.test(item.option_text)\n );\n const [selected, setSelected] = useState<{ [id: string]: boolean }>({});\n const onOptionClick = (item: T): void => {\n if (props.single) {\n props.onSelect(item);\n } else {\n setSelected(selectedItem => ({\n ...selectedItem,\n [item.id]: !selectedItem[item.id]\n }));\n }\n };\n const container = useRef(null);\n const close = props.close;\n useEffect(() => {\n const listener = (event: Event) => {\n if (event.target == null || container.current == null) return;\n if (\n container.current === event.target ||\n container.current.contains(event.target as any)\n ) {\n return;\n }\n close();\n };\n document.addEventListener(\"mousedown\", listener);\n return () => document.removeEventListener(\"mousedown\", listener);\n }, [close]);\n useEffect(() => {\n if (!container.current) return;\n const input = container.current.querySelector(\"input[type=text]\");\n if (input && input instanceof HTMLInputElement) input.focus();\n });\n const chatContainer = useRef(null);\n if (chatContainer.current === null)\n chatContainer.current = document.querySelector(\".chat-window\");\n return (\n chatContainer.current &&\n createPortal(\n \n
    \n {props.single\n ? filteredOptions.map(item => (\n
  • onOptionClick(item)}>\n {item.option_text}\n
  • \n ))\n : filteredOptions.map(item => (\n
  • \n \n
  • \n ))}\n
\n \n setFilter(event.currentTarget.value)}\n />\n {!props.single && (\n \n props.onSelect(props.items.filter(item => selected[item.id]))\n }\n />\n )}\n \n ,\n chatContainer.current\n )\n );\n}\n\nexport default SelectList;\n","import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"./widget-modal.scss\";\nimport { ChatButton } from \"../common-components/chat-button/chat-button\";\n\ninterface IWidgetModalProp {\n modalMessage: null | string;\n show: boolean;\n closeModal: () => void;\n}\n\nexport class WidgetModal extends React.Component {\n closeModal = () => {\n this.props.closeModal();\n };\n\n render() {\n const container = document.querySelector(\".chat-window\");\n return (\n this.props.show &&\n container &&\n createPortal(\n
\n
\n
\n \n \n \n

{this.props.modalMessage}

\n
\n
\n {ChatButton({\n text: \"Got it\",\n clickHandler: this.closeModal\n })}\n
\n
\n
\n
,\n container\n )\n );\n }\n}\n","import React, { useState, useContext } from \"react\";\nimport { ChatButton } from \"src/widget-container/common-components/chat-button/chat-button\";\nimport { WidgetModal } from \"src/widget-container/widget-modal/widget-modal\";\nimport { ColorSet } from \"src/utils/color-set\";\nimport { AppContext } from \"src/AppContext\";\n\nimport \"./interaction-multi-select.scss\";\n\ninterface Option {\n id: number;\n option_text: string;\n}\n\ninterface Props {\n min: null | number;\n max: null | number;\n options: Option[];\n onSelect: (selected: Option[]) => void;\n}\n\nexport function optionMessage(count: number): string {\n if (count === 1) {\n return \"1 option\";\n } else {\n return `${count} options`;\n }\n}\n\nexport function errorMessage(\n min: number,\n max: number | null,\n selected: number\n): null | string {\n if (max === null) {\n if (selected < min) {\n return `You must select at least ${optionMessage(min)}`;\n } else {\n return null;\n }\n } else {\n if (selected >= min && selected <= max) {\n return null;\n } else {\n return `You must select at least ${optionMessage(\n min\n )} and not more than ${optionMessage(max)}`;\n }\n }\n}\n\nfunction InteractionMultiSelect({ options, onSelect, min, max }: Props) {\n const [selected, setSelected] = useState<{ [id: number]: boolean }>({});\n const [error, setError] = useState(null);\n const toggle = (id: number) =>\n setSelected(selected => ({ ...selected, [id]: !selected[id] }));\n const select = () => {\n const selection = options.filter(option => Boolean(selected[option.id]));\n const error = errorMessage(min || 1, max, selection.length);\n setError(error);\n if (error === null) {\n onSelect(selection);\n }\n };\n const { colour: color } = useContext(AppContext).settings;\n return (\n
\n setError(null)}\n />\n
\n
    \n {options.map(option => (\n \n \n \n ))}\n
\n \n \n
\n
\n
\n );\n}\n\nexport default React.memo(InteractionMultiSelect);\n","import React, { useEffect, useRef, useContext } from \"react\";\nimport { AppContext } from \"src/AppContext\";\n\ninterface Props {\n value: string;\n onChange: (value: string) => void;\n onSubmit: () => void;\n}\n\nfunction TextInput({ value, onChange, onSubmit }: Props) {\n const textarea = useRef(null);\n const heightDiv = useRef(null);\n const open = useContext(AppContext).open;\n useEffect(() => {\n if (textarea.current) {\n textarea.current.focus();\n }\n }, []);\n useEffect(() => {\n if (!open) return;\n if (!(heightDiv.current && textarea.current)) return;\n heightDiv.current.innerText =\n value.endsWith(\"\\n\") || value.trim().length === 0 ? value + \"A\" : value;\n heightDiv.current.style.width = textarea.current.clientWidth + \"px\";\n textarea.current.style.height = heightDiv.current.clientHeight + \"px\";\n }, [open, value]);\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode !== 13) return;\n if (!event.shiftKey) {\n event.preventDefault();\n onSubmit();\n return;\n }\n };\n return (\n <>\n onChange(event.currentTarget.value)}\n />\n \n \n );\n}\n\nexport default React.memo(TextInput);\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { AsYouType, getCountryCallingCode } from \"libphonenumber-js\";\nimport COUNTRY from \"src/country-code.json\";\n\nimport SelectList from \"../select-list\";\n\nimport \"./phone-input.scss\";\nimport { VADLIDATION_MESSAGES } from \"src/widget-container/constants\";\nimport { PhoneQuestion } from \"src/interaction.interface\";\n\ninterface Props {\n question: PhoneQuestion;\n welcomePhoneQuestion: PhoneQuestion | null;\n onError: (message: null | string) => void;\n onChange: (text: string) => void;\n onSubmit(): void;\n}\n\ninterface CountryOption {\n id: string;\n option_text: string;\n}\nconst COUNTRY_OPTIONS: CountryOption[] = Object.keys(COUNTRY).map<\n CountryOption\n>(id => ({ id, option_text: COUNTRY[id] }));\n\nCOUNTRY_OPTIONS.sort((x, y) => {\n if (x.option_text > y.option_text) {\n return 1;\n } else if (x.option_text < y.option_text) {\n return -1;\n } else {\n return 1;\n }\n});\n\nfunction getDefaultCountry(country) {\n let visitorCountryObject;\n for (let i = 0; i < COUNTRY_OPTIONS.length; i++) {\n if (country && COUNTRY_OPTIONS[i].option_text === country) {\n visitorCountryObject = COUNTRY_OPTIONS[i];\n break;\n }\n }\n return visitorCountryObject;\n}\n\nfunction PhoneInput({\n question,\n welcomePhoneQuestion,\n onChange,\n onError,\n onSubmit\n}: Props) {\n const visitorCountry = getDefaultCountry(\n question.country ||\n (welcomePhoneQuestion ? welcomePhoneQuestion!.country : null)\n );\n const visitorCountryCode = visitorCountry\n ? `+${getCountryCallingCode(visitorCountry.id as any) as string}`\n : \"\";\n const [countryList, setCountryList] = useState(false);\n const [country, setCountry] = useState(\n null || visitorCountry\n );\n const [value, setValue] = useState(\"\" || visitorCountryCode);\n const [invalid, setInvalid] = useState(true);\n const input = useRef(null);\n const selectCountry = useCallback((country: CountryOption) => {\n setCountry(country);\n setCountryList(false);\n const code = getCountryCallingCode(country.id as any) as string;\n setValue(\"+\" + code);\n setTimeout(() => {\n let inputEl = input.current;\n if (inputEl === null) return;\n if (inputEl) inputEl.focus();\n inputEl.selectionStart = inputEl.selectionEnd = inputEl.value.length;\n }, 300);\n }, []);\n useEffect(() => {\n if (input.current && visitorCountry) {\n input.current.focus();\n }\n });\n\n const onClick = () => {\n if (country === null) {\n setCountryList(true);\n } else if (input.current) {\n input.current.focus();\n }\n };\n const change = (event: React.ChangeEvent) => {\n const formatter = new AsYouType();\n const formattedInput = formatter.input(event.currentTarget.value);\n const phoneNumber = formatter.getNumber();\n let invalid = true;\n if (phoneNumber) {\n if (\n phoneNumber.country &&\n (!country || country.id !== phoneNumber.country)\n ) {\n setCountry({\n id: phoneNumber.country as string,\n option_text: COUNTRY[phoneNumber.country]\n });\n }\n invalid = !phoneNumber.isValid();\n }\n setInvalid(invalid);\n if (!invalid) onError(null);\n setValue(formattedInput);\n onChange(formattedInput);\n };\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode !== 13) return;\n if (invalid) {\n onError(VADLIDATION_MESSAGES.phone);\n } else {\n onSubmit();\n }\n };\n return (\n
\n
\n
setCountryList(true)}>\n {country && {country.id}}\n \n
\n \n
\n {countryList && (\n setCountryList(false)}\n onSelect={selectCountry}\n />\n )}\n
\n );\n}\n\nexport default React.memo(PhoneInput);\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n VADLIDATION_MESSAGES,\n EMAILREGEXPATTERN\n} from \"src/widget-container/constants\";\n\ninterface Props {\n onError: (message: null | string) => void;\n onChange: (text: string) => void;\n onSubmit(): void;\n}\n\nfunction EmailInput({ onChange, onError, onSubmit }: Props) {\n const [value, setValue] = useState(\"\");\n const [invalid, setInvalid] = useState(true);\n const input = useRef(null);\n useEffect(() => {\n let inputEl = input.current;\n if (inputEl === null) return;\n if (inputEl) inputEl.focus();\n }, []);\n const change = (event: React.ChangeEvent) => {\n const emailInput = event.currentTarget.value;\n let invalid = true;\n if (emailInput) {\n invalid = !EMAILREGEXPATTERN.test(emailInput);\n } else {\n onError(null);\n }\n setInvalid(invalid);\n if (!invalid) onError(null);\n setValue(emailInput);\n onChange(emailInput);\n };\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 13) {\n if (invalid) {\n onError(VADLIDATION_MESSAGES.email);\n } else {\n onError(null);\n onSubmit();\n }\n }\n };\n return (\n \n );\n}\n\nexport default React.memo(EmailInput);\n","import React, {\n useState,\n useContext,\n useCallback,\n useMemo,\n useEffect\n} from \"react\";\nimport { Picker } from \"emoji-mart\";\nimport \"emoji-mart/css/emoji-mart.css\";\n\nimport {\n AppContext,\n ConversationContext,\n SocketServiceContext\n} from \"src/AppContext\";\nimport {\n Message,\n Interaction,\n Question,\n SingleChoiceQuestion,\n MultiChoiceQuestion,\n InteractionOption,\n PhoneQuestion\n} from \"src/interaction.interface\";\nimport { SocketStatus } from \"src/reducer\";\nimport { Answer } from \"src/actions\";\nimport { ConversationState } from \"src/constants\";\n\nimport \"./widget-footer.scss\";\nimport SendButtonIcon from \"./SendButtonIcon\";\nimport { DateInput } from \"./date-input/date-input\";\nimport { DatetimeInput } from \"./datetime-input/datetime-input\";\nimport { TimeInput } from \"./time-input/time-input\";\nimport SelectList, { SelectListProps } from \"./select-list\";\nimport { errorMessage } from \"../widget-body/widget-message/message-helpers/interaction-multi-select/interaction-multi-select\";\nimport { WidgetModal } from \"../widget-modal/widget-modal\";\nimport TextInput from \"./text-input\";\nimport PhoneInput from \"./phone-input/phone-input\";\nimport EmailInput from \"./email-input/email-input\";\nimport {\n VADLIDATION_MESSAGES,\n EMAILREGEXPATTERN\n} from \"src/widget-container/constants\";\nimport { AsYouType } from \"libphonenumber-js\";\n\ninterface ValidationOptions {\n isValid: boolean;\n errorMsg: string;\n}\nexport interface State {\n openEmoji: boolean;\n text: string;\n validationMessage: null | string;\n}\n\ninterface InputProps {\n value: string;\n question: null | Question;\n welcomePhoneQuestion: null | PhoneQuestion;\n onSubmit: () => void;\n onChange: (value: string) => void;\n onError: (error: null | string) => void;\n openSelectList: () => void;\n}\n\ninterface SelectInputProps {\n question: SingleChoiceQuestion | MultiChoiceQuestion;\n sendAnswer: (answer: Answer) => void;\n close: () => void;\n}\n\nfunction findActiveQuestion(\n state: ConversationState,\n message?: Message | null\n): null | Question {\n if (state !== ConversationState.Active) return null;\n if (message == null) return null;\n if (message.sent_by !== \"bot\") return null;\n const interaction: Interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"question\") return null;\n return interaction;\n}\n\nfunction isEmojiDisabled(\n questionType: null | Question[\"question_type\"]\n): boolean {\n switch (questionType) {\n case null:\n case \"multi_choice\":\n case \"single_choice\":\n case \"number\":\n case \"phone\":\n case \"date\":\n case \"time\":\n case \"datetime\":\n case \"email\":\n return true;\n default:\n return false;\n }\n}\n\nfunction SelectInput({\n question,\n sendAnswer: answer,\n close\n}: SelectInputProps) {\n const [error, setError] = useState(null);\n const selectProps = useMemo((): SelectListProps => {\n if (question.question_type === \"single_choice\") {\n return {\n single: true,\n items: question.interaction_options,\n onSelect: option =>\n answer({\n content: option.option_text,\n interaction_option_id: option.id as number\n }),\n close\n };\n } else {\n return {\n single: false,\n items: question.interaction_options,\n onSelect: options => {\n const error = errorMessage(\n question.multi_choice_minimum || 1,\n question.multi_choice_maximum,\n options.length\n );\n setError(error);\n if (error === null) {\n options.sort((x, y) => x.option_order - y.option_order);\n answer({\n content: options.map(option => option.option_text).join(\", \"),\n multi_interaction_options_answer_ids: options.map(\n option => option.id\n )\n });\n }\n },\n close\n };\n }\n }, [answer, close, question]);\n if (question.multi_choice_type !== \"list\") return null;\n return (\n <>\n setError(null)}\n />\n {React.createElement(SelectList, selectProps)}\n \n );\n}\n\nfunction Input({\n value,\n question,\n welcomePhoneQuestion,\n onChange,\n onError,\n onSubmit,\n openSelectList\n}: InputProps) {\n let focus = false;\n const questionId = question && question.external_id;\n useEffect(() => {\n if (focus) {\n const input = document.querySelector(\".chat-footer input\");\n if (input !== null && input instanceof HTMLInputElement) input.focus();\n }\n }, [questionId, focus]);\n if (question === null) {\n return ;\n } else if (\n question.question_type === \"multi_choice\" ||\n question.question_type === \"single_choice\"\n ) {\n if (question.multi_choice_type === \"list\") {\n return (\n \n );\n } else {\n return ;\n }\n } else if (question.question_type === \"date\") {\n return (\n \n );\n } else if (question.question_type === \"datetime\") {\n return (\n \n );\n } else if (question.question_type === \"time\") {\n return (\n \n );\n } else if (question.question_type === \"phone\") {\n return (\n \n );\n } else if (question.question_type === \"email\") {\n return (\n \n );\n }\n const changeValue = (event: React.SyntheticEvent) =>\n onChange(event.currentTarget.value);\n const onKeyDown = (event: React.KeyboardEvent) =>\n event.keyCode === 13 && onSubmit();\n focus = true;\n if (question.question_type === \"number\") {\n return (\n \n );\n } else if (question.question_type === \"text\") {\n return ;\n } else if (question.question_type === \"time_zone\") {\n focus = false;\n return ;\n } else {\n focus = false;\n return null;\n }\n}\n/**\n *\n * @param phone validate phone number validation\n */\nfunction validatePhone(phone) {\n const formatter = new AsYouType();\n formatter.input(phone);\n const phoneNumber = formatter.getNumber();\n return phoneNumber ? phoneNumber.isValid() : false;\n}\n/**\n *\n * @param questionType to identify the question type\n * @param input\n * Validating the input and returning object with error message and boolean isValid.\n */\nfunction checkValidation(\n questionType: null | Question[\"question_type\"],\n input\n) {\n if (input.length === 0) return;\n let invalid: ValidationOptions = { isValid: false, errorMsg: \"\" };\n switch (questionType) {\n case \"email\":\n invalid.isValid = !EMAILREGEXPATTERN.test(input);\n invalid.errorMsg = VADLIDATION_MESSAGES.email;\n break;\n case \"phone\":\n invalid.isValid = !validatePhone(input);\n invalid.errorMsg = VADLIDATION_MESSAGES.phone;\n break;\n }\n return invalid;\n}\n\nfunction WidgetFooter() {\n const appContext = useContext(AppContext);\n const color = appContext.settings.colour;\n const connecting = appContext.socket === SocketStatus.CONNECTING;\n const [state, setState] = useState({\n openEmoji: false,\n text: \"\",\n error: null,\n openSelectList: false\n });\n const updateState = useCallback(\n (next: Partial) => setState(state => ({ ...state, ...next })),\n []\n );\n const showValidationMessage = state.error !== null;\n const { messages } = useContext(ConversationContext);\n const { welcomeInteractions } = useContext(ConversationContext);\n const message = messages[messages.length - 1];\n const welcomeMessage = welcomeInteractions\n ? welcomeInteractions[welcomeInteractions.length - 1]\n : null;\n const question = findActiveQuestion(appContext.state, message);\n const welcomeQuestion = findActiveQuestion(appContext.state, welcomeMessage);\n const welcomePhoneQuestion: PhoneQuestion | null =\n welcomeQuestion && welcomeQuestion.question_type === \"phone\"\n ? welcomeQuestion\n : null;\n const questionType = question && question.question_type;\n const emojiDisabled = isEmojiDisabled(questionType);\n const selectBox =\n questionType === \"single_choice\" || questionType === \"multi_choice\";\n const editableBox =\n questionType === \"text\" ||\n questionType === \"number\" ||\n questionType === \"email\" ||\n questionType === \"time\" ||\n questionType === \"datetime\" ||\n questionType === \"date\" ||\n questionType === \"phone\" ||\n questionType === \"time_zone\";\n const disabled =\n question === null || selectBox || state.text.trim().length === 0;\n const socket = useContext(SocketServiceContext);\n const sendAnswer = () => {\n const content = state.text.trim();\n const validationOption = checkValidation(questionType, content);\n if (validationOption!.isValid) {\n updateState({ error: validationOption!.errorMsg } as any);\n return;\n }\n if (state.error === null) {\n socket.answer({ content });\n }\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false\n });\n };\n const openSelectList = () => updateState({ openSelectList: true } as any);\n const selectList = useMemo(() => {\n if (!state.openSelectList || question == null) return null;\n if (\n question.question_type !== \"single_choice\" &&\n question.question_type !== \"multi_choice\"\n ) {\n return null;\n }\n return (\n {\n setState({\n error: null,\n openEmoji: false,\n text: \"\",\n openSelectList: false\n });\n socket.answer(answer);\n }}\n close={() => updateState({ openSelectList: false } as any)}\n />\n );\n }, [state.openSelectList, question, socket, updateState]);\n return (\n <>\n {selectList}\n
\n \n \n updateState({ text })}\n // @ts-ignore\n onError={error => updateState({ error })}\n />\n \n \n \n
\n \n \n !emojiDisabled &&\n setState({ ...state, openEmoji: !state.openEmoji })\n }\n />\n {process.env.REACT_APP_SOLO_PHASE_ONE_TOGGLE === \"true\" &&\n appContext.oncehubBrandingUrl && (\n \n )}\n\n \n \n {state.openEmoji && (\n
\n {\n setState({\n ...state,\n openEmoji: false,\n text: state.text + (emoji as any).native\n });\n }}\n />\n
\n )}\n \n \n );\n}\n\nexport default React.memo<{}>(WidgetFooter);\n","export default __webpack_public_path__ + \"static/media/bots.aebca506.svg\";","import * as React from \"react\";\nimport \"./end-conversation.scss\";\n\nexport const EndConversation = () => (\n
\n
\n This conversation has been ended by the bot\n
\n
\n);\n","import React, { useContext } from \"react\";\nimport { InteractionOption } from \"src/interaction.interface\";\n\nimport \"./interaction-single-select.scss\";\nimport { AppContext } from \"src/AppContext\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ninterface Props {\n options: InteractionOption[];\n onSelect: (option: InteractionOption) => void;\n}\n\nfunction InteractionSingleSelect({ options, onSelect }: Props) {\n const { colour: color } = useContext(AppContext).settings;\n return (\n
    \n {options.map(option => (\n onSelect(option)}\n className={`border-primary text-secondary ${\n ColorSet.indexOf(color) !== -1 ? \"border-enable light-color\" : \"\"\n }`}\n >\n {option.option_text}\n \n ))}\n
\n );\n}\n\nexport default React.memo(InteractionSingleSelect);\n","import * as React from \"react\";\n\ninterface ITextMessageProps {\n messageId: string;\n text: string;\n}\n\nfunction TextMessageComponent(props: ITextMessageProps) {\n return (\n 7\n ? \"chat-message chat-message-align-left bg-primary text-primary border-primary\"\n : \"chat-message bg-primary text-primary border-primary\"\n }\n >\n {props.text}\n
\n );\n}\n\nexport default React.memo(TextMessageComponent);\n","import * as React from \"react\";\nimport { Player, BigPlayButton, ControlBar } from \"video-react\";\n\nimport \"./video-message.scss\";\nimport \"video-react/dist/video-react.css\";\nimport PlayButtonImg from \"../../../../../assets/images/play-button.png\";\n\ninterface IVideoMessageProps {\n description?: string;\n videoTitle?: string;\n videoUrl: any;\n autoPlay: boolean;\n botName?: string;\n id: string;\n currentTime?: number;\n showBotName?: boolean;\n}\n\ninterface IVideoMessageState {\n isOpen: boolean;\n isPaused: boolean;\n isFullScreen: boolean;\n}\n\nexport class VideoMessage extends React.PureComponent<\n IVideoMessageProps,\n IVideoMessageState\n> {\n readonly state: IVideoMessageState = {\n isFullScreen: false,\n isOpen: false,\n isPaused: !this.props.autoPlay\n };\n playerRef: any;\n constructor(parameters: IVideoMessageProps) {\n super(parameters);\n this.playerRef = React.createRef();\n }\n componentDidMount() {\n if (this.props.autoPlay) {\n setTimeout(() => {\n if (this.hasPlayerRef()) {\n const { video } = this.playerRef.current;\n if (this.props.currentTime) {\n (video.video as HTMLVideoElement).currentTime = this.props.currentTime;\n }\n this.mute(video);\n this.play(video);\n }\n }, 200);\n }\n if (this.hasPlayerRef()) {\n this.playerRef.current.subscribeToStateChange(\n this.handleFullScreen.bind(this)\n );\n }\n }\n\n handleFullScreen(state, prevState) {\n this.setState({ isFullScreen: state.isFullScreen });\n if (state.isFullscreen && !prevState.isFullscreen) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: [\"co-iframe-full-screen\"],\n remove: [\"co-iframe-open\"]\n },\n \"*\"\n );\n } else if (!state.isFullscreen && prevState.isFullscreen) {\n window.parent.postMessage(\n {\n type: \"updateIframe\",\n add: [\"co-iframe-open\"],\n remove: [\"co-iframe-full-screen\"]\n },\n \"*\"\n );\n }\n }\n\n renderTitleBox() {\n if (this.props.videoTitle) {\n return (\n
\n \n {this.props.videoTitle}\n {this.props.description}\n \n
\n );\n }\n return null;\n }\n\n togglePlay = () => {\n if (this.hasPlayerRef()) {\n const { video } = this.playerRef.current;\n if (this.state.isPaused) {\n this.play(video);\n } else {\n this.pause(video);\n }\n }\n };\n\n mute(video: HTMLVideoElement) {\n video.muted = true;\n }\n\n play(video: HTMLVideoElement) {\n video.play();\n this.setState({\n isPaused: false\n });\n }\n\n pause(video: HTMLVideoElement) {\n video.pause();\n this.setState({\n isPaused: true\n });\n }\n\n render() {\n return (\n
\n \n
\n {this.props.showBotName && (\n {this.props.botName}\n )}\n
\n \n \n \n \n \n \n \n \"Play\"\n
\n
\n
\n {this.renderTitleBox()}\n \n \n );\n }\n\n private hasPlayerRef() {\n return this.playerRef.current !== null ? true : false;\n }\n}\n","export default \"data:image/png;base64,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\"","import * as React from \"react\";\nimport \"./image-message.scss\";\nimport Lightbox from \"react-images\";\n\nexport interface IImageMessageProps {\n imageTitle: null | string;\n imageUrl: string;\n isNotificationInteraction?: boolean;\n botName?: string;\n id: string;\n showBotName?: boolean;\n}\n\nexport interface IImageMessageState {\n isOpen: boolean;\n}\n\nexport class ImageMessage extends React.PureComponent<\n IImageMessageProps,\n IImageMessageState\n> {\n imageRef: React.RefObject = React.createRef();\n readonly state: IImageMessageState = {\n isOpen: false\n };\n readonly theme = {\n // arrows\n arrow: {\n backgroundColor: \"rgba(255, 255, 255, 0.8)\",\n fill: \"#222\",\n opacity: 0.6,\n transition: \"opacity 200ms\",\n\n \":hover\": {\n opacity: 1\n }\n },\n arrow__direction__left: { marginLeft: 10 },\n arrow__direction__right: { marginRight: 10 },\n arrow__size__medium: {\n borderRadius: 40,\n height: 40,\n marginTop: -20,\n\n \"@media (min-width: 768px)\": {\n height: 70,\n padding: 15\n }\n },\n // container\n close: {\n \":hover\": {\n opacity: 1\n },\n fill: \"#000000\",\n opacity: 0.6,\n transition: \"all 200ms\"\n },\n container: {\n background: \"rgba(255, 255, 255, 0.8)\"\n },\n\n // footer\n footer: {\n color: \"black\"\n },\n footerCount: {\n color: \"rgba(0, 0, 0, 0.6)\"\n }\n };\n\n toggleLightbox = () => {\n const isOpen = !this.state.isOpen;\n this.setState(\n {\n isOpen\n },\n () => {\n setTimeout(() => {\n document.body.setAttribute(\"style\", \"\");\n });\n window.top.postMessage(\n {\n type: \"updateIframe\",\n add: isOpen ? [\"co-iframe-fullscreen\"] : [\"co-iframe-open\"],\n remove: isOpen ? [\"co-iframe-open\"] : [\"co-iframe-fullscreen\"]\n },\n \"*\"\n );\n }\n );\n };\n\n renderLightbox() {\n return (\n \n );\n }\n\n render() {\n return (\n
\n \n {!this.props.isNotificationInteraction && this.renderLightbox()}\n {this.props.showBotName && (\n {this.props.botName}\n )}\n \n \n
\n );\n }\n}\n","export default __webpack_public_path__ + \"static/media/document-icon.4b0f83a1.svg\";","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable no-script-url */\nimport * as React from \"react\";\nimport \"./../image-message/image-message.scss\";\nimport \"./document-message.scss\";\nimport DocumentIcon from \"./../../../../../assets/images/document-icon.svg\";\n\nexport interface IMessageDocumentProp {\n title: null | string;\n documentUrl: string;\n botName?: string;\n id: string;\n showBotName?: boolean;\n}\n\nexport const DocumentMessage = (props: IMessageDocumentProp) => {\n const downloadFile = () => {\n const a = document.createElement(\"a\");\n a.href = props.documentUrl;\n a.target = \"_blank\";\n a.rel = \"noreferrer noopener\";\n a.download = props.title || \"\";\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n };\n let fileName = props.documentUrl.split(\"/\").pop();\n fileName = fileName ? decodeURIComponent(fileName) : \"NA\";\n return (\n
\n \n {props.showBotName && (\n {props.botName}\n )}\n\n \n \n \"document\n \n \n {props.title}\n

{fileName}

\n
\n \n \n
\n );\n};\n","export default __webpack_public_path__ + \"static/media/url-default.a4938810.svg\";","/* eslint-disable no-script-url */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport * as React from \"react\";\nimport \"./url-message.scss\";\nimport urlDefaultImage from \"src/assets/images/url-default.svg\";\nimport { UtilsService } from \"./../../../../../utils/utils.service\";\n\nexport interface IMessageUrlProp {\n urlProps: {\n title: string;\n url: string;\n };\n id: string;\n imageTitle?: string;\n imageUrl: null | string;\n botName?: string;\n showBotName?: boolean;\n}\n\nexport class MessageUrl extends React.PureComponent {\n imageRef: React.RefObject = React.createRef();\n\n openLink = () => {\n const a = document.createElement(\"a\");\n a.href = this.props.urlProps.url;\n a.target = \"_blank\";\n a.rel = \"noreferrer noopener\";\n a.style.display = \"none\";\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n };\n\n render() {\n return (\n
\n \n
\n {this.props.showBotName && (\n {this.props.botName}\n )}\n \n
\n \n \n {this.props.urlProps.title}\n \n \n {UtilsService.extractHostName(this.props.urlProps.url)}\n \n \n \n
\n );\n }\n}\n","import {\n TimeZones as TIMEZONES,\n PriorityCountryId as TOP_COUNTRIES_IDS\n} from \"src/assets/timezoneConfig.js\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\n\nexport interface ITimezone {\n Id: string;\n ShortName: string;\n Country: string;\n Region: string;\n CityList: string;\n TimeZone: number;\n DisplayOrder: number;\n HasDayLightSavings: Array<{\n offset: string;\n startTimeMili: string;\n endTimeMili: string;\n }>;\n CountryCallingCode: string;\n}\n\nexport interface ITimezoneData {\n displayOrder: number;\n timezoneId: string;\n region: string;\n shortName: string;\n offset: string;\n isDisabled: boolean;\n countryName: string;\n regionWithGMTAndDST: string;\n}\nexport class TimezoneService {\n private static convertNumberToMinutes = (numberString: string) => {\n if (numberString.length === 1) {\n return ((+numberString / 10) * 60).toString();\n } else {\n return ((+numberString / 100) * 60).toString();\n }\n };\n\n private static convertOffsetToDisplayString = (offset: number | string) => {\n const [hrs, mins] = offset.toString().split(\".\");\n let offsetMinute: string = \"00\";\n if (mins) {\n offsetMinute = TimezoneService.convertNumberToMinutes(mins);\n }\n return `${offset > 0 ? \"+\" + hrs : hrs}:${offsetMinute}`;\n };\n\n static getFullTimezoneString = (\n offset: number,\n hasDST: boolean,\n country: string,\n region: string\n ) => {\n const offsetString = TimezoneService.convertOffsetToDisplayString(offset);\n if (region) {\n return `(GMT${offsetString})${\n hasDST ? \" [DST] \" : \"\"\n } ${country}; ${region}`;\n } else {\n return `(GMT${offsetString})${hasDST ? \" [DST]; \" : \";\"} ${country}`;\n }\n };\n\n static getTimezoneStringByTimezoneId = (tzId: string) => {\n const [timezone] = TIMEZONES[0][tzId || DEFAULT_TIMEZONE_ID];\n let tzString = \"\";\n if (timezone) {\n const timezoneObj = timezone as ITimezone;\n const { offset, hasDST } = TimezoneService.getTimezoneSettings(\n timezoneObj\n );\n tzString = TimezoneService.getFullTimezoneString(\n offset,\n hasDST,\n timezoneObj.Country,\n timezoneObj.Region\n );\n }\n return tzString;\n };\n\n static getSelectOptionRegionString = (region, offset: string, hasDst) => {\n const offsetString = TimezoneService.convertOffsetToDisplayString(offset);\n return `${region} (GMT${offsetString})${hasDst ? \" [DST]\" : \"\"}`.trim();\n };\n\n static getTimezoneSettings = (timezone: ITimezone) => {\n let offset = timezone.TimeZone;\n let hasDST = false;\n if (timezone.HasDayLightSavings && timezone.HasDayLightSavings.length) {\n const currentTime = Date.now();\n for (const eachDST of timezone.HasDayLightSavings) {\n if (\n currentTime >= +eachDST.startTimeMili &&\n currentTime <= +eachDST.endTimeMili\n ) {\n hasDST = true;\n offset = +eachDST.offset;\n }\n }\n }\n return {\n offset,\n hasDST\n };\n };\n\n static getOffsetAndDST = (timeNow: number, timeZoneData: ITimezone) => {\n let tzOffset = timeZoneData.TimeZone.toString();\n let hasDST = false;\n if (\n timeZoneData.HasDayLightSavings &&\n timeZoneData.HasDayLightSavings.length\n ) {\n const activeDST = timeZoneData.HasDayLightSavings.find(\n DST =>\n Number(DST.startTimeMili) <= timeNow &&\n timeNow <= Number(DST.endTimeMili)\n );\n if (activeDST) {\n tzOffset = activeDST.offset;\n hasDST = true;\n }\n }\n return { offset: tzOffset, hasDST };\n };\n\n static getRegionData = (timezoneId: string): ITimezoneData => {\n const TimeZones: { [key: string]: ITimezone[] } = TIMEZONES[0];\n const timeNow = Date.now();\n const tz = TimeZones && TimeZones[timezoneId] && TimeZones[timezoneId][0];\n const { hasDST, offset } = TimezoneService.getOffsetAndDST(timeNow, tz);\n\n return {\n displayOrder: tz.DisplayOrder,\n timezoneId: tz.Id,\n region: tz.Region,\n shortName: tz.ShortName,\n offset,\n isDisabled: false,\n countryName: tz.Country,\n regionWithGMTAndDST: TimezoneService.getSelectOptionRegionString(\n tz.Region,\n offset,\n hasDST\n )\n };\n };\n\n static getTimezoneData = () => {\n const TimeZones: { [key: string]: ITimezone[] } = TIMEZONES[0];\n const tzData: {\n [key: string]: ITimezoneData[];\n } = {};\n\n for (const key in TimeZones) {\n if (key in TimeZones) {\n const tz = TimeZones && TimeZones[key] && TimeZones[key][0];\n if (tz && tz.Country) {\n tzData[tz.Country] = tzData[tz.Country] || [];\n tzData[tz.Country].push(TimezoneService.getRegionData(key));\n }\n }\n }\n\n // sort in display order and alphabetically\n const allCountriesString = Object.keys(tzData).sort();\n for (const country in tzData) {\n if (country in tzData) {\n const regions = tzData[country];\n if (regions && regions.length > 1) {\n regions.sort((a, b) => {\n return a.displayOrder - b.displayOrder;\n });\n }\n }\n }\n const topCountriesString = TOP_COUNTRIES_IDS.reduce(\n (prevArr: string[], countryId, i) => {\n if (\n TimeZones[countryId] &&\n TimeZones[countryId].length &&\n prevArr.indexOf(TimeZones[countryId][0].Country) === -1\n ) {\n prevArr.push(TimeZones[countryId][0].Country);\n }\n return prevArr;\n },\n []\n );\n const allCountriesData: ITimezoneData[][] = allCountriesString.map(\n countryName => {\n return tzData[countryName];\n }\n );\n const topCountriesData: ITimezoneData[][] = topCountriesString.map(\n countryName => {\n return tzData[countryName];\n }\n );\n return {\n topCountriesData,\n allCountriesData\n };\n };\n}\n","import * as React from \"react\";\nimport \"./select-list-with-filter.scss\";\nimport { SelectListOption } from \"./select-option\";\n\nexport interface ISelectListWithFilterProps {\n selectItems: any[];\n customSelectConfig: {\n selectedOptionText: string;\n allOptions: Array>;\n onOptionChange: (newOption: T, index, event?) => void;\n placeholderText: string;\n showValidation?: boolean;\n validationMessage?: string;\n };\n}\n\ninterface ISelectListWithFilterState {\n filterItems: JSX.Element[];\n isOpen: boolean;\n}\n\nexport class SelectListWithFilter extends React.Component<\n ISelectListWithFilterProps,\n ISelectListWithFilterState\n> {\n private inputRef: React.RefObject = React.createRef();\n private customUlRef: React.RefObject = React.createRef();\n private customSelectDivRef: React.RefObject<\n HTMLDivElement\n > = React.createRef();\n\n constructor(props: ISelectListWithFilterProps) {\n super(props);\n const selectItems: JSX.Element[] = [];\n this.props.selectItems.forEach((option, index) => {\n selectItems.push(\n
  • \n {option.optionText}\n
  • \n );\n });\n this.state = {\n filterItems: selectItems,\n isOpen: false\n };\n }\n\n componentDidMount() {\n if (this.inputRef && this.inputRef.current) {\n (this.inputRef.current as HTMLElement).focus();\n }\n }\n\n private dropDownToggler = () => {\n this.setState(\n prevState => {\n return {\n isOpen: !prevState.isOpen\n };\n },\n () => {\n const nowIsOpen = this.state.isOpen;\n if (nowIsOpen) {\n const ulElm = this.customUlRef.current;\n if (ulElm) {\n const selectedElm = ulElm.querySelector(\"li.selected\");\n if (selectedElm) {\n selectedElm.scrollIntoView();\n }\n const customOuterDivElm = this.customSelectDivRef.current;\n if (customOuterDivElm) {\n const windowHeight = window.innerHeight;\n const customOuterDimensions = customOuterDivElm.getBoundingClientRect();\n const customOuterTop = customOuterDimensions.top;\n const customOuterHeight = customOuterDimensions.height;\n const lowerSectionHeight =\n windowHeight - customOuterTop - customOuterHeight;\n const parentDiv = ulElm.parentElement;\n if (parentDiv) {\n if (ulElm.clientHeight < lowerSectionHeight) {\n parentDiv.classList.remove(\"open-top\");\n parentDiv.classList.add(\"open-bottom\");\n } else {\n parentDiv.classList.remove(\"open-bottom\");\n parentDiv.classList.add(\"open-top\");\n }\n }\n }\n }\n }\n }\n );\n };\n\n private onCustomOptionClick = (option: SelectListOption, index, e) => {\n this.setState({\n isOpen: false\n });\n if (this.props.customSelectConfig) {\n this.props.customSelectConfig.onOptionChange(\n option.optionValue,\n index,\n e\n );\n }\n };\n\n render() {\n const {\n allOptions,\n placeholderText,\n selectedOptionText,\n showValidation,\n validationMessage\n } = this.props.customSelectConfig;\n const hasSelection =\n this.props.customSelectConfig.selectedOptionText.length > 0;\n return (\n
    \n 1 ? this.dropDownToggler : undefined}\n />\n\n \n 1 ? this.dropDownToggler : undefined}\n >\n \n {hasSelection ? selectedOptionText : placeholderText}\n

    \n
    \n \n
    \n
      \n {allOptions.map((option, index) => {\n return (\n \n {option.optionText}\n \n );\n })}\n
    \n
    \n \n \n );\n }\n}\n","export class SelectListOption {\n isDisabled: boolean;\n optionText: string;\n optionValue: T;\n constructor(params: {\n isDisabled: boolean;\n optionText: string;\n optionValue: T;\n }) {\n this.isDisabled = params.isDisabled;\n this.optionText = params.optionText;\n this.optionValue = params.optionValue;\n }\n}\n","import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport \"./timezone-popup.scss\";\nimport {\n ITimezonePopupProps,\n ITimezonePopupStates\n} from \"./timezone-popup.interface\";\nimport { TimezoneService, ITimezoneData } from \"src/utils/timezone.service\";\nimport { ChatButton } from \"../chat-button/chat-button\";\nimport { SelectListWithFilter } from \"../select-list-with-filter/select-list-with-filter\";\nimport { SelectListOption } from \"../select-list-with-filter/select-option\";\n\nexport class TimezonePopup extends React.Component<\n ITimezonePopupProps,\n ITimezonePopupStates\n> {\n private tempSelectedCountry: string;\n private tempSelectedRegionDetail: ITimezoneData;\n private tempRegionList: ITimezoneData[];\n private dropdownCountryWithRegionList: ITimezoneData[][] = [];\n private dropdownRegionList: ITimezoneData[] = [];\n private seperatorOption: ITimezoneData[] = [\n {\n countryName: \"-------------------------------------\",\n isDisabled: true,\n displayOrder: 0,\n offset: \"\",\n region: \"\",\n shortName: \"\",\n timezoneId: \"\",\n regionWithGMTAndDST: \"\"\n }\n ];\n private selectOptionsForCountryList: Array<\n SelectListOption\n > = [];\n private selectOptionsForRegionList: Array<\n SelectListOption\n > = [];\n placeholderTextForRegionsList = \"Please select time zone region\";\n constructor(props: ITimezonePopupProps) {\n super(props);\n this.initializePopup(props);\n const selectedRegionDetails = TimezoneService.getRegionData(\n props.timezoneId\n );\n this.state = this.getStatesObj(selectedRegionDetails);\n this.tempSelectedCountry = this.state.selectedCountryName;\n this.tempSelectedRegionDetail = this.state.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n }\n\n initializePopup(props: ITimezonePopupProps) {\n this.setDropdownCountryWithRegionList();\n this.setDropdownRegionList(props.timezoneId);\n }\n\n componentDidUpdate(nextProps: ITimezonePopupProps) {\n const timezoneChanged = nextProps.timezoneId !== this.props.timezoneId;\n if (timezoneChanged) {\n this.setDropdownRegionList(nextProps.timezoneId);\n const selectedRegionDetails = TimezoneService.getRegionData(\n nextProps.timezoneId\n );\n const stateObj = this.getStatesObj(selectedRegionDetails);\n this.tempSelectedCountry = stateObj.selectedCountryName;\n this.tempSelectedRegionDetail = stateObj.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n this.setState(stateObj);\n }\n }\n\n getStatesObj = (\n selectedRegionDetails: ITimezoneData\n ): ITimezonePopupStates => {\n return {\n selectedCountryName: selectedRegionDetails.countryName,\n selectedRegionNameWithGMTAndDST:\n selectedRegionDetails.regionWithGMTAndDST,\n selectedRegionDetails,\n showRegionValidation: false\n };\n };\n\n getSelectedRegionsByTimezoneId = (tzId: string) => {\n return this.dropdownCountryWithRegionList.find(t => {\n const hasSelectedRegions = t.some(e => e.timezoneId === tzId);\n return hasSelectedRegions;\n });\n };\n\n setDropdownCountryWithRegionList = () => {\n const {\n allCountriesData,\n topCountriesData\n } = TimezoneService.getTimezoneData();\n this.dropdownCountryWithRegionList = topCountriesData.concat(\n [this.seperatorOption],\n allCountriesData\n );\n this.selectOptionsForCountryList = this.dropdownCountryWithRegionList.map(\n (countryData, index) => {\n const option = new SelectListOption({\n isDisabled: countryData[0].isDisabled,\n optionText: countryData[0].countryName,\n optionValue: countryData[0]\n });\n return option;\n }\n );\n };\n\n setDropdownRegionList = (tzId: string) => {\n this.dropdownRegionList = this.getSelectedRegionsByTimezoneId(\n tzId\n ) as ITimezoneData[];\n this.selectOptionsForRegionList = this.dropdownRegionList.map(\n (regionData, index) => {\n const option = new SelectListOption({\n isDisabled: regionData.isDisabled,\n optionText: regionData.regionWithGMTAndDST,\n optionValue: regionData\n });\n return option;\n }\n );\n };\n\n onCountryChange = (newValue: ITimezoneData, index: number) => {\n this.resetRegionValidation();\n this.setCountryAndRegionByIndex(index);\n };\n\n setCountryAndRegionByIndex = (countryIndex: number, regionIndex = 0) => {\n const newRegionSelection = this.dropdownCountryWithRegionList[countryIndex][\n regionIndex\n ];\n this.dropdownRegionList = this.dropdownCountryWithRegionList[countryIndex];\n this.selectOptionsForRegionList = this.dropdownRegionList.map(\n (regionData, index) => {\n const option = new SelectListOption({\n isDisabled: regionData.isDisabled,\n optionText: regionData.regionWithGMTAndDST,\n optionValue: regionData\n });\n return option;\n }\n );\n this.setState({\n selectedCountryName: newRegionSelection.countryName\n });\n if (this.dropdownRegionList.length > 1) {\n this.setState({\n selectedRegionNameWithGMTAndDST: \"\"\n });\n } else {\n this.setRegionByIndex(0);\n }\n };\n\n setRegionByIndex = (regionIndex: number) => {\n const selectedRegion = this.dropdownRegionList[regionIndex];\n this.setState({\n selectedRegionNameWithGMTAndDST: selectedRegion.regionWithGMTAndDST,\n selectedRegionDetails: selectedRegion\n });\n };\n\n onRegionChange = (newValue: ITimezoneData, index: number) => {\n this.resetRegionValidation();\n this.setRegionByIndex(index);\n };\n\n resetRegionValidation = () => {\n this.setState({\n showRegionValidation: false\n });\n };\n\n onContinueBtnClick = () => {\n if (\n this.state.selectedCountryName &&\n this.state.selectedRegionNameWithGMTAndDST\n ) {\n const tzId = this.state.selectedRegionDetails.timezoneId;\n const timezoneString = TimezoneService.getTimezoneStringByTimezoneId(\n tzId\n );\n this.tempSelectedCountry = this.state.selectedCountryName;\n this.tempSelectedRegionDetail = this.state.selectedRegionDetails;\n this.tempRegionList = this.dropdownRegionList;\n this.props.closePopup(tzId, timezoneString);\n } else {\n this.setState({\n showRegionValidation: true\n });\n }\n };\n\n onCloseButtonClick = () => {\n this.setState({\n selectedCountryName: this.tempSelectedCountry,\n selectedRegionDetails: this.tempSelectedRegionDetail,\n selectedRegionNameWithGMTAndDST: this.tempSelectedRegionDetail\n .regionWithGMTAndDST\n });\n this.dropdownRegionList = this.tempRegionList;\n this.props.closePopup();\n };\n render() {\n const container = document.querySelector(\".chat-window\");\n return (\n container &&\n createPortal(\n
    \n
    \n

    \n Your time zone\n \n

    \n

    All times will be displayed according to your time zone:

    \n \n\n \n
    \n \n
    \n
    \n
    ,\n container\n )\n );\n }\n}\n","export default __webpack_public_path__ + \"static/media/no_Times.d9349db9.svg\";","export default __webpack_public_path__ + \"static/media/Error_icon.3dda98a7.svg\";","export default __webpack_public_path__ + \"static/media/double_booking_icon.3bf28f2f.svg\";","import { ConfirmEventData } from \"src/interaction.interface\";\n\nexport interface FetchSlotsOptions {\n startDate: number;\n endDate: number;\n timeZoneId: string;\n websiteId: string;\n interactionId: string;\n initial_load: boolean;\n}\n\nexport interface Slot {\n timeStr: string;\n startTime: number;\n duration: number;\n dateString: string;\n dateObjSummary: string;\n resourceLinkId: any;\n}\n\nexport type FetchSlotsAPISuccessResponse = {\n success: true;\n slots: {\n [date: string]: Slot[];\n };\n /** date in d/m/yyyy format */\n lastAvailableDay: Date;\n};\n\nexport type FetchSlotsAPIErrorResponse = {\n schedule_status: \"error_while_fetching_slots\";\n schedule_fallback_message: string;\n};\n\nexport type FetchSlotsAPIResponse =\n | FetchSlotsAPISuccessResponse\n | FetchSlotsAPIErrorResponse;\n\nexport interface ConfirmOptions {\n trackingid?: any;\n duration: number;\n timeZoneId: string;\n timeZoneString: string;\n startTime: number;\n websiteId: string;\n interactionId: string;\n dateObjSummary: string;\n resourcesLinkId: any;\n enableSmsNotification: boolean;\n}\n\nexport interface BlockOptions {\n meetingIds?: any;\n duration: number;\n dateObjSummary: string;\n resourcesLinkId: any;\n meetingLowerBoundary: number;\n meetingUpperBoundary: number;\n interactionId: string;\n}\n\nexport interface DoubleBookingResponse {\n schedule_status: \"error_double_booking\";\n schedule_fallback_message: string;\n schedule_timeslot_fallback_button_text: string;\n}\n\nexport interface ErrorWhileConfirming {\n schedule_status: \"error_while_confirming\";\n schedule_fallback_message: string;\n}\n\nexport interface ErrorWhileBlocking {\n schedule_status: \"error_while_blocking_time\";\n schedule_fallback_message: string;\n}\n\nexport type ConfirmAPIResponse =\n | DoubleBookingResponse\n | ErrorWhileConfirming\n | ConfirmEventData;\n\nexport type BlockAPIResponse =\n | DoubleBookingResponse\n | ErrorWhileBlocking\n | BlockAPIData;\n\nexport type BlockAPIData = {\n bookingTrackingId: string;\n panelTrackingId: string;\n};\n\nexport function dateToString(date: Date): string {\n return date.getFullYear() + \"-\" + date.getMonth() + \"-\" + date.getDate();\n}\n\nexport function stringToDate(date: string): Date {\n const parts = date.split(\"-\");\n return new Date(parseInt(parts[0]), parseInt(parts[1]), parseInt(parts[2]));\n}\n\nexport function nextDay(date: string) {\n const next = stringToDate(date);\n next.setDate(next.getDate() + 1);\n return dateToString(next);\n}\n","import { ApiClient } from \"../../../../../utils/api-client\";\nimport {\n Slot,\n FetchSlotsOptions,\n FetchSlotsAPIResponse,\n ConfirmOptions,\n ConfirmAPIResponse,\n BlockOptions,\n BlockAPIResponse\n} from \"./slots.type\";\nimport { StorageStrategy } from \"../../../../../utils/storage-strategy\";\n\nexport async function fetchSlots(\n options: FetchSlotsOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/fetch-times`,\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: { ...options, chSessionId }\n }\n );\n const json = await request.json();\n if (!json.success) {\n return json;\n }\n const lastAvailableDay: [\n number,\n number,\n number\n ] = json.data.lastAvailableDay\n .split(\"-\")\n .map((part: string) => parseInt(part));\n lastAvailableDay.reverse();\n const slots: { [date: string]: Slot[] } = {};\n for (const date in json.data.slots) {\n const dateSlots: Slot[] = [];\n const { am, pm, duration } = json.data.slots[date];\n if (am) {\n dateSlots.push(...am);\n }\n if (pm) {\n dateSlots.push(...pm);\n }\n for (let i = dateSlots.length - 1; i >= 0; i--) {\n dateSlots[i].duration = duration;\n }\n slots[date] = dateSlots;\n }\n\n return {\n slots,\n success: true,\n lastAvailableDay: new Date(...lastAvailableDay)\n };\n}\n\nexport async function confirmSlot(\n options: ConfirmOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/confirm`,\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: { ...options, chSessionId }\n }\n );\n const json = await request.json();\n return json.data;\n}\n\nexport async function blockSlot(\n options: BlockOptions\n): Promise {\n const storage = StorageStrategy.getStrategy();\n const chSessionId = storage.getSession();\n if (chSessionId == null) {\n throw new Error(\"Session not found\");\n }\n const request = await ApiClient.post(\n `${process.env.REACT_APP_SETTINGS_API}schedule-times/block-meeting-time`,\n {\n headers: {\n \"content-type\": \"application/json\"\n },\n body: { ...options, chSessionId }\n }\n );\n const json = await request.json();\n return json.data;\n}\n","import * as React from \"react\";\nimport \"./loader.scss\";\nimport { ILoaderProps } from \"./loader.interface\";\n\nexport const Loader = (props: ILoaderProps) => {\n return (\n
    \n
    \n
    \n \n
    \n
    {props.text ? props.text : \"\"}
    \n
    \n
    \n );\n};\n","/* eslint-disable jsx-a11y/heading-has-content */\n/* eslint-disable no-script-url */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {\n useReducer,\n useMemo,\n useState,\n useCallback,\n useContext,\n useEffect,\n useRef,\n Dispatch\n} from \"react\";\n\nimport {\n ScheduleInteraction,\n ConfirmEventData\n} from \"src/interaction.interface\";\nimport { TimezoneService } from \"src/utils/timezone.service\";\nimport { TimezonePopup } from \"src/widget-container/common-components/timezone-popup/timezone-popup\";\nimport { SocketServiceContext, AppContext } from \"src/AppContext\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\nimport NoTimesIcon from \"src/assets/images/no_Times.svg\";\nimport CONFIRM_ERROR_ICON from \"src/assets/images/Error_icon.svg\";\nimport DOUBLE_BOOKING_ERROR_ICON from \"src/assets/images/double_booking_icon.svg\";\n\nimport \"./schedule-action.scss\";\n\nimport {\n Slot,\n nextDay,\n stringToDate,\n dateToString,\n ConfirmAPIResponse,\n FetchSlotsAPISuccessResponse\n} from \"./slots.type\";\n\nimport { confirmSlot, fetchSlots, blockSlot } from \"./slots.service\";\nimport { Loader } from \"src/widget-container/common-components/loader/loader\";\nimport { ChatButton } from \"src/widget-container/common-components/chat-button/chat-button\";\nimport {\n MONTH_NAMES,\n SHORT_MONTH_NAMES,\n SHORT_DAY_NAMES\n} from \"src/utils/utils.service\";\nimport { ConversationState } from \"src/constants\";\nimport { ColorSet } from \"src/utils/color-set\";\n\ntype SelectedDatePosition = 0 | 1 | 2;\n\ninterface Props {\n last: boolean;\n interaction: ScheduleInteraction;\n}\n\ninterface State {\n lastAvailableDay: null | Date;\n findNextAvailableDay: boolean;\n slots: {\n [date: string]: undefined | null | Slot[];\n };\n firstDate: string;\n selectedDatePosition: SelectedDatePosition;\n selectedSlot: null | Slot;\n confirmAPIPromise: null | Promise;\n blockTrackingId: null | String;\n doubleBooking: null | {\n message: string;\n buttonText: string;\n };\n smsChecked: boolean;\n}\n\ntype Action =\n | { type: \"RESET_SLOTS\" }\n | { type: \"CHANGE_FIRST_DATE\"; changeInDays: number }\n | { type: \"SET_FIRST_DATE\"; value: string; position: number }\n | {\n type: \"SLOTS\";\n data: FetchSlotsAPISuccessResponse;\n start: string;\n end: string;\n }\n | { type: \"LOADING_SLOTS\"; start: string; end: string }\n | {\n type: \"SELECTED_DATE_POSITION\";\n position: SelectedDatePosition;\n }\n | { type: \"START_CONFIRMATION\"; promise: Promise }\n | { type: \"BLOCK_SLOT\"; data: String }\n | { type: \"SELECT_SLOT\"; slot: null | Slot }\n | { type: \"DOUBLE_BOOKING\"; message: string; buttonText: string }\n | { type: \"BACK_DOUBLE_BOOKING\" }\n | { type: \"SET_SMS\"; value: boolean }\n | { type: \"FIND_NEXT_AVAILABLE_DAY\"; value: boolean };\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case \"RESET_SLOTS\": {\n return {\n ...state,\n lastAvailableDay: null,\n slots: {},\n doubleBooking: null,\n confirmAPIPromise: null,\n findNextAvailableDay: true,\n selectedDatePosition: 0,\n selectedSlot: null,\n blockTrackingId: null,\n firstDate: dateToString(new Date())\n };\n }\n case \"CHANGE_FIRST_DATE\": {\n const date = stringToDate(state.firstDate);\n date.setDate(date.getDate() + action.changeInDays);\n return {\n ...state,\n selectedDatePosition: 0,\n firstDate: dateToString(date)\n };\n }\n case \"SLOTS\": {\n const next: State = {\n ...state,\n lastAvailableDay: action.data.lastAvailableDay,\n slots: { ...state.slots, ...action.data.slots }\n };\n for (let date = action.start; date !== action.end; ) {\n next.slots[date] = next.slots[date] || [];\n const nextDate = stringToDate(date);\n nextDate.setDate(nextDate.getDate() + 1);\n date = dateToString(nextDate);\n }\n return next;\n }\n case \"LOADING_SLOTS\": {\n const next: State = {\n ...state,\n slots: { ...state.slots }\n };\n for (let date = action.start; date !== action.end; ) {\n next.slots[date] = null;\n const nextDate = stringToDate(date);\n nextDate.setDate(nextDate.getDate() + 1);\n date = dateToString(nextDate);\n }\n return next;\n }\n case \"SELECTED_DATE_POSITION\":\n return { ...state, selectedDatePosition: action.position };\n case \"SELECT_SLOT\":\n return { ...state, selectedSlot: action.slot };\n case \"START_CONFIRMATION\":\n return { ...state, confirmAPIPromise: action.promise };\n case \"BLOCK_SLOT\":\n return { ...state, blockTrackingId: action.data };\n case \"DOUBLE_BOOKING\": {\n return {\n ...state,\n doubleBooking: {\n message: action.message,\n buttonText: action.buttonText\n },\n selectedSlot: null,\n confirmAPIPromise: null\n };\n }\n case \"BACK_DOUBLE_BOOKING\": {\n return {\n ...state,\n doubleBooking: null,\n confirmAPIPromise: null,\n selectedSlot: null,\n slots: {}\n };\n }\n case \"FIND_NEXT_AVAILABLE_DAY\":\n return { ...state, findNextAvailableDay: action.value };\n case \"SET_FIRST_DATE\":\n const position = (state.selectedDatePosition + action.position) % 3;\n const date = stringToDate(action.value);\n date.setDate(date.getDate() - position);\n return {\n ...state,\n firstDate: dateToString(date),\n selectedDatePosition: position as any\n };\n case \"SET_SMS\":\n return { ...state, smsChecked: action.value };\n default:\n throw new Error();\n }\n}\n\nfunction TimeZone(props: { timezoneId: string }) {\n const actions = useContext(SocketServiceContext);\n const appContext = useContext(AppContext);\n const timezone = useMemo(\n () => TimezoneService.getTimezoneStringByTimezoneId(props.timezoneId),\n [props.timezoneId]\n );\n const [modal, openModal] = useState(false);\n useEffect(() => {\n if (!appContext.open) {\n openModal(false);\n }\n }, [appContext]);\n const closePopup = useCallback(\n (timezoneId: string) => {\n if (timezoneId != null) {\n actions.updateTimezone(timezoneId);\n }\n openModal(false);\n },\n [actions]\n );\n /** remove this when time_zone_id issue is resolved */\n if (isNaN(parseInt(props.timezoneId))) {\n actions.updateTimezone(DEFAULT_TIMEZONE_ID);\n return null;\n }\n return (\n
    \n {modal && (\n \n )}\n

    openModal(true)}>{timezone}

    \n
    {timezone}
    \n
    \n );\n}\n\nfunction DelayedLoader() {\n const [text, setText] = useState(\"\");\n useEffect(() => {\n const timeout = setTimeout(() => {\n setText(\"Still retrieving... this may take a few more seconds\");\n }, 5000);\n return () => clearTimeout(timeout);\n }, []);\n return ;\n}\n\nfunction BackArrow(props: { disabled: boolean; onClick?: () => void }) {\n const isDisabled = props.disabled;\n return (\n \n \n \n \n \n );\n}\n\nfunction NextArrow(props: { disabled: boolean; onClick?: () => void }) {\n const disabled = props.disabled;\n return (\n \n \n \n \n \n );\n}\n\ninterface SlotDateProps {\n dates: string[];\n position: number;\n selected: number;\n disabled: boolean;\n onClick: (position: number) => void;\n}\n\nfunction SlotDate(props: SlotDateProps) {\n const disabled = props.disabled;\n const date = stringToDate(props.dates[props.position]);\n return (\n
  • \n {SHORT_DAY_NAMES[date.getDay()]}\n props.onClick(props.position)}\n >\n {date.getDate()}\n \n
  • \n );\n}\n\nfunction Slots(props: {\n items: Slot[];\n onSelect: (item: Slot) => void;\n dispatch: Dispatch;\n viewNextAvailableDay: boolean;\n}) {\n const [index, setIndex] = useState(0);\n const [pageSize, setPageSize] = useState(\n window.outerWidth <= 650 ? 4 : 6\n );\n useEffect(() => {\n const listener = () => {\n setPageSize(window.outerWidth <= 650 ? 4 : 6);\n };\n window.addEventListener(\"resize\", listener);\n return () => {\n window.removeEventListener(\"resize\", listener);\n };\n }, []);\n const items = props.items;\n const disableNext = index + pageSize >= items.length;\n const disablePrev = index - pageSize < 0;\n return (\n <>\n
    \n {items.length === 0 ? (\n \n
    No times available on this day
    \n

    \n {!props.viewNextAvailableDay && (\n \n props.dispatch({\n type: \"FIND_NEXT_AVAILABLE_DAY\",\n value: true\n })\n }\n >\n View next available day\n \n )}\n

    \n
    \n ) : (\n
      \n {items.slice(index, index + pageSize).map((item, index) => (\n props.onSelect(item)}\n key={index}\n >\n {item.timeStr}\n \n ))}\n
    \n )}\n \n
    \n setIndex(index - pageSize)}\n >\n Earlier times\n \n setIndex(index + pageSize)}\n >\n Later times\n \n
    \n \n );\n}\n\ninterface CalenderContentProps {\n slots: {\n [date: string]: undefined | null | Slot[];\n };\n firstDate: string;\n timeZoneId: string;\n selectedDatePosition: SelectedDatePosition;\n fetchSlots: (date: string) => void;\n dispatch: Dispatch;\n lastAvailableDay: null | Date;\n findNextAvailableDay: boolean;\n block: (slot: Slot) => void;\n}\n\nfunction areSlotsAvailable(slots: null | undefined | Slot[]): boolean {\n if (slots === null || slots === undefined) return true;\n return slots.length !== 0;\n}\n\nfunction CalenderContent({\n dispatch,\n slots,\n lastAvailableDay,\n findNextAvailableDay,\n firstDate,\n timeZoneId,\n fetchSlots,\n selectedDatePosition,\n block\n}: CalenderContentProps) {\n const displayedDates = useMemo(() => {\n const displayedDates: string[] = [firstDate, nextDay(firstDate)];\n displayedDates[2] = nextDay(displayedDates[1]);\n return displayedDates;\n }, [firstDate]);\n const selectedDate = displayedDates[selectedDatePosition];\n const date = stringToDate(selectedDate);\n const selectedDaySlots = slots[selectedDate];\n const selectSlot = (slot: Slot) => {\n if (process.env.REACT_APP_BOOKINGS_API_INTEGRATION_TOGGLE === \"true\") {\n block(slot);\n }\n dispatch({ type: \"SELECT_SLOT\", slot });\n };\n const nextDatesVisibility =\n lastAvailableDay &&\n lastAvailableDay.getTime() >\n stringToDate(displayedDates[displayedDates.length - 1]).getTime();\n const changeSelectedDatePosition = (position: SelectedDatePosition) =>\n dispatch({ type: \"SELECTED_DATE_POSITION\", position });\n let prevDates: undefined | { (): void } = undefined;\n let nextDates: undefined | { (): void } = undefined;\n if (stringToDate(firstDate).getTime() > Date.now()) {\n prevDates = () => dispatch({ type: \"CHANGE_FIRST_DATE\", changeInDays: -3 });\n }\n if (nextDatesVisibility) {\n nextDates = () => dispatch({ type: \"CHANGE_FIRST_DATE\", changeInDays: 3 });\n }\n const emptyDate = displayedDates.find(date => !slots[date]);\n const fetchDate =\n emptyDate && slots[emptyDate] === undefined ? emptyDate : null;\n if (selectedDaySlots && findNextAvailableDay) {\n dispatch({ type: \"FIND_NEXT_AVAILABLE_DAY\", value: false });\n }\n let lastDateForSlot = 0;\n for (let i = displayedDates.length - 1; i >= 0; i--) {\n if (areSlotsAvailable(slots[displayedDates[i]])) {\n lastDateForSlot = i;\n break;\n }\n }\n useEffect(() => {\n if (fetchDate) {\n fetchSlots(fetchDate);\n }\n }, [fetchDate, fetchSlots]);\n useEffect(() => {\n if (!findNextAvailableDay) return;\n let date = selectedDate;\n let position = 0;\n while (true) {\n const slotOnDate = slots[date];\n if (slotOnDate === undefined) {\n return dispatch({ type: \"SET_FIRST_DATE\", value: date, position });\n } else if (slotOnDate === null) {\n return;\n } else if (slotOnDate.length === 0) {\n date = nextDay(date);\n } else {\n return dispatch({ type: \"SET_FIRST_DATE\", value: date, position });\n }\n position++;\n }\n }, [dispatch, findNextAvailableDay, selectedDate, slots]);\n return (\n
    \n \n
    \n {!!emptyDate && }\n {!emptyDate && selectedDaySlots && (\n <>\n

    \n {MONTH_NAMES[date.getMonth()]} {date.getFullYear()}\n

    \n
    \n \n
      \n \n \n \n
    \n \n
    \n = lastDateForSlot\n }\n />\n \n )}\n
    \n
    \n );\n}\n\ninterface ConfirmSlotContentProps {\n slot: Slot;\n back: () => void;\n confirming: boolean;\n timezoneId: string;\n interaction: ScheduleInteraction;\n confirm: (slot: Slot) => void;\n isChecked: boolean;\n smsConsent: () => void;\n blockTrackingId: any;\n}\n\nfunction ConfirmSlotContent(props: ConfirmSlotContentProps) {\n const { slot, timezoneId } = props;\n const timezone = TimezoneService.getTimezoneStringByTimezoneId(timezoneId);\n const dateObjSummary = slot.dateObjSummary.split(\",\");\n const time = dateObjSummary.pop();\n const date = dateObjSummary.join(\",\");\n const { colour: color } = useContext(AppContext).settings;\n const confirmationFullText = props.interaction.schedule_confirmation_title;\n let confirmationText = props.interaction.schedule_confirmation_title;\n const smsNotificationToggle = props.interaction.schedule_sms_notification;\n let smsOptInText = props.interaction.schedule_sms_opt_in_text;\n const confirmationTextLength = (confirmationText || \"\").toString().length;\n const smsOptInTextLength = (smsOptInText || \"\").toString().length;\n const blockTrackingId = props.blockTrackingId;\n const selectTimeSlotView = (\n = 32 ? \"multi-line-title\" : \"\"\n }`}\n >\n
    \n
    \n
    \n {confirmationText}\n \n
    \n

    {date}

    \n

    {time}

    \n \n {timezone}\n {/*
    {timezone}
    */}\n
    \n {smsNotificationToggle &&\n process.env.REACT_APP_BOOKINGS_API_INTEGRATION_TOGGLE === \"true\" ? (\n
    \n \n
    \n ) : (\n ``\n )}\n \n ) : (\n props.interaction.schedule_confirmation_button\n )\n }\n isDisabled={props.confirming}\n classNames={`confirm-meeting-button ${\n props.confirming ? \"loading-button\" : \"\"\n }`}\n clickHandler={() => props.confirm(props.slot)}\n />\n
    \n \n \n );\n\n if (confirmationTextLength > 70 || smsOptInTextLength > 56) {\n confirmationText = (confirmationText || \"\").slice(0, 70);\n smsOptInText = (smsOptInText || \"\").slice(0, 56);\n }\n return (\n
    \n
    \n \n \n \n \n Back\n \n
    \n
    \n {process.env.REACT_APP_BOOKINGS_API_INTEGRATION_TOGGLE === \"true\" ? (\n !blockTrackingId ? (\n \n ) : (\n selectTimeSlotView\n )\n ) : (\n selectTimeSlotView\n )}\n
    \n );\n}\n\nfunction ConfirmationContent(props: { confirmEventData: ConfirmEventData }) {\n const {\n email,\n timeZoneId,\n dateObjSummary,\n isCalendarEventCreated\n } = props.confirmEventData;\n const timezone = TimezoneService.getTimezoneStringByTimezoneId(timeZoneId);\n const dateObjSummarySplit = dateObjSummary.split(\",\");\n const time = dateObjSummarySplit.pop();\n const date = dateObjSummarySplit.join(\",\");\n const fullMonth =\n MONTH_NAMES[SHORT_MONTH_NAMES.indexOf(dateObjSummary.substring(5, 8))];\n const dayOfMonth = parseInt(dateObjSummary.substring(9, 11));\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    {fullMonth}

    \n

    {dayOfMonth}

    \n \n
    \n
    \n
    Your meeting is confirmed!
    \n

    {date}

    \n

    {time}

    \n
    \n {timezone}\n
    {timezone}
    \n
    \n
    \n {isCalendarEventCreated\n ? \"An event has been added to your calendar\"\n : \"An email has been sent to\"}\n {\":\"}\n
    \n {email}\n
    {email}
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorWhileFetchingContent() {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    No times are currently available
    \n

    We will contact you to arrange a time to meet.

    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ConversationEndedContent() {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    Due to inactivity, this conversation has ended
    \n

    \n Please refresh the page to renew the chat and schedule your\n meeting.\n

    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorWhileConfirmingContent({ message }: { message?: string }) {\n return (\n
    \n
    \n
    \n
    \n
    \n \"\"\n
    \n
    {message}
    \n
    \n
    \n
    \n
    \n );\n}\n\nfunction ErrorDoubleBookingContent(props: {\n message: string;\n dispatch: Dispatch;\n buttonText?: string;\n}) {\n return (\n
    \n
    \n props.dispatch({ type: \"BACK_DOUBLE_BOOKING\" })}\n >\n \n \n \n Back\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    {props.message}
    \n \n props.dispatch({ type: \"BACK_DOUBLE_BOOKING\" })\n }\n classNames=\"confirm-meeting-button select-new-time\"\n />\n
    \n
    \n
    \n
    \n );\n}\n\nfunction ScheduleAction({ interaction, last }: Props) {\n const appContext = useContext(AppContext);\n const actions = useContext(SocketServiceContext);\n const [state, dispatch] = useReducer(reducer, {\n slots: {},\n lastAvailableDay: null,\n firstDate: dateToString(new Date()),\n selectedDatePosition: 0,\n selectedSlot: null,\n confirmAPIPromise: null,\n blockTrackingId: null,\n doubleBooking: null,\n smsChecked: false,\n findNextAvailableDay: true\n });\n const refs = useRef<{\n initial_load: boolean;\n time_zone_id: string;\n calendarVisible: boolean;\n }>({\n initial_load: true,\n time_zone_id: interaction.time_zone_id,\n calendarVisible: false\n });\n refs.current.time_zone_id = interaction.time_zone_id;\n const confirm = (slot: Slot) =>\n dispatch({\n type: \"START_CONFIRMATION\",\n promise: confirmSlot({\n trackingid: state.blockTrackingId,\n duration: slot.duration,\n startTime: slot.startTime,\n websiteId: appContext.settings.id,\n dateObjSummary: slot.dateObjSummary,\n timeZoneId: interaction.time_zone_id,\n timeZoneString: TimezoneService.getTimezoneStringByTimezoneId(\n interaction.time_zone_id\n ),\n resourcesLinkId: slot.resourceLinkId,\n enableSmsNotification: state.smsChecked,\n interactionId: interaction.external_id\n })\n });\n\n const block = (slot: Slot) => {\n blockSlot({\n duration: slot.duration,\n meetingLowerBoundary: slot.startTime,\n meetingUpperBoundary: slot.startTime + slot.duration,\n dateObjSummary: slot.dateObjSummary,\n resourcesLinkId: slot.resourceLinkId,\n interactionId: interaction.external_id\n })\n .then(data => {\n if (\"schedule_status\" in data) {\n if (data.schedule_status === \"error_double_booking\") {\n dispatch({\n type: \"DOUBLE_BOOKING\",\n message: data.schedule_fallback_message,\n buttonText: data.schedule_timeslot_fallback_button_text\n });\n } else if (data.schedule_status === \"error_while_blocking_time\") {\n actions.scheduleResponse(data);\n }\n } else if (!(\"schedule_status\" in data)) {\n dispatch({\n type: \"BLOCK_SLOT\",\n data: data.panelTrackingId\n });\n }\n })\n .catch(() => {\n actions.scheduleResponse({\n schedule_status: \"error_while_blocking_time\",\n schedule_fallback_message: \"Something went wrong\"\n });\n });\n };\n\n const fetch = useCallback(\n (date: string) => {\n const start = stringToDate(date);\n start.setDate(start.getDate() - 1);\n const end = new Date(start.getTime());\n end.setDate(end.getDate() + 7);\n dispatch({\n type: \"LOADING_SLOTS\",\n start: date,\n end: dateToString(end)\n });\n fetchSlots({\n websiteId: appContext.settings.id,\n timeZoneId: interaction.time_zone_id,\n interactionId: interaction.external_id,\n startDate: start.getTime(),\n endDate: end.getTime(),\n initial_load: refs.current.initial_load\n })\n .then(data => {\n if (\"schedule_status\" in data) {\n if (\n refs.current.calendarVisible &&\n interaction.time_zone_id === refs.current.time_zone_id\n ) {\n actions.scheduleResponse(data);\n }\n } else {\n dispatch({\n type: \"SLOTS\",\n data,\n start: dateToString(start),\n end: dateToString(end)\n });\n }\n })\n .catch(() => {\n actions.scheduleResponse({\n schedule_status: \"error_while_fetching_slots\",\n schedule_fallback_message: \"Something went wrong\"\n });\n });\n refs.current.initial_load = false;\n },\n [\n actions,\n appContext.settings.id,\n interaction.external_id,\n interaction.time_zone_id\n ]\n );\n useEffect(() => dispatch({ type: \"RESET_SLOTS\" }), [\n interaction.time_zone_id\n ]);\n useEffect(() => {\n if (state.confirmAPIPromise == null) return;\n let cancelled = false;\n state.confirmAPIPromise\n .then(data => {\n if (cancelled) return;\n if (\n \"schedule_status\" in data &&\n data.schedule_status === \"error_double_booking\"\n ) {\n dispatch({\n type: \"DOUBLE_BOOKING\",\n message: data.schedule_fallback_message,\n buttonText: data.schedule_timeslot_fallback_button_text\n });\n } else {\n actions.scheduleResponse(data);\n }\n })\n .catch(() => {\n if (cancelled) return;\n actions.scheduleResponse({\n schedule_status: \"error_while_confirming\",\n schedule_fallback_message: \"Something went wrong\"\n });\n });\n return () => {\n cancelled = true;\n };\n }, [actions, state.confirmAPIPromise]);\n let shouldRenderheading: boolean = true;\n let content: React.ReactNode = null;\n if (interaction.schedule_status === \"error_while_fetching_slots\") {\n content = ;\n } else if (\n interaction.schedule_status === \"error_while_confirming\" ||\n interaction.schedule_status === \"error_while_blocking_time\"\n ) {\n content = (\n \n );\n } else if (interaction.schedule_confirm_data) {\n shouldRenderheading = false;\n content = (\n \n );\n } else if (appContext.state !== ConversationState.Active) {\n content = ;\n } else if (state.doubleBooking) {\n content = (\n \n );\n } else if (state.selectedSlot) {\n content = (\n {\n dispatch({ type: \"SELECT_SLOT\", slot: null });\n dispatch({\n type: \"BLOCK_SLOT\",\n data: \"\"\n });\n }}\n smsConsent={() => {\n state.smsChecked\n ? dispatch({ type: \"SET_SMS\", value: false })\n : dispatch({ type: \"SET_SMS\", value: true });\n }}\n isChecked={state.smsChecked}\n blockTrackingId={state.blockTrackingId}\n />\n );\n } else if (last) {\n refs.current.calendarVisible = true;\n content = (\n \n );\n }\n return (\n
    \n
    \n {shouldRenderheading && (\n

    \n \n {interaction.interaction_text}\n \n \n | {interaction.schedule_action_event_type_meeting_length} minutes\n \n

    \n )}\n {content}\n
    \n
    \n );\n}\n\nexport default React.memo(ScheduleAction);\n","import * as React from \"react\";\n\ninterface IRequireConsentProps {\n bodyText: string;\n title: string;\n link: string;\n linkText: string;\n id: string;\n}\n\nexport class RequireConsent extends React.PureComponent<\n IRequireConsentProps,\n any\n> {\n consentRef: React.RefObject = React.createRef();\n\n render() {\n return (\n \n \n {this.props.title}\n \n {this.props.bodyText}\n \n {this.props.link && this.props.linkText && (\n \n {this.props.linkText}\n \n )}\n \n \n );\n }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\nimport \"./require-consent.scss\";\n\ninterface IConsentButtonsProps {\n onMessageSent: (message: string) => void;\n noText: string;\n yesText: string;\n}\n\ninterface IConsentButtonsState {\n consented: boolean;\n}\n\nexport class ConsentButtons extends React.Component<\n IConsentButtonsProps,\n IConsentButtonsState\n> {\n readonly state: IConsentButtonsState = {\n consented: false\n };\n\n componentDidMount() {\n const requireConsent = document.querySelector(\".require-consent\");\n if (requireConsent) {\n const messageContainer = requireConsent.closest(\".message-container\");\n if (messageContainer) {\n messageContainer.scrollIntoView();\n }\n }\n }\n onConsentClick = (consentText: string) => {\n this.props.onMessageSent(consentText);\n this.setState({\n consented: true\n });\n };\n render() {\n return (\n !this.state.consented && (\n \n \n {this.props.yesText}\n \n \n {this.props.noText}\n \n \n )\n );\n }\n}\n","import React, { useState, useContext } from \"react\";\nimport { TimezonePopup } from \"src/widget-container/common-components/timezone-popup/timezone-popup\";\nimport { DEFAULT_TIMEZONE_ID } from \"src/widget-container/constants\";\nimport { SocketServiceContext, AppContext } from \"src/AppContext\";\nimport { ConversationState } from \"src/constants\";\n\nimport \"./timezone-question.scss\";\n\nexport interface ITimezoneQuestionProps {\n text: string;\n buttonText: string;\n disabled: boolean;\n}\n\nfunction TimeZoneQuestion(props: ITimezoneQuestionProps) {\n const actions = useContext(SocketServiceContext);\n const disabled =\n useContext(AppContext).state !== ConversationState.Active || props.disabled;\n const [modal, showModal] = useState(false);\n const onClosePopup = (timezoneId?: string, timezoneName?: string) => {\n showModal(false);\n if (!timezoneId || !timezoneName) return;\n actions.updateTimezone(timezoneId);\n actions.answer({\n content: timezoneName,\n time_zone_id: timezoneId\n });\n };\n return (\n \n

    {props.text}

    \n showModal(true)}\n >\n {props.buttonText}\n \n {!disabled && modal && (\n \n )}\n
    \n );\n}\n\nexport default React.memo(TimeZoneQuestion);\n","export class Timeago {\n static get = (input: number, allowFuture: boolean = false): string => {\n const substitute = (stringOrFunction: any, num: number, strings: any) => {\n const str = Timeago.isFunction(stringOrFunction)\n ? stringOrFunction(num, dateDifference)\n : stringOrFunction;\n const value = (strings.numbers && strings.numbers[num]) || num;\n return str.replace(/%d/i, value);\n };\n const nowTime = new Date().getTime();\n const date = new Date(input).getTime();\n // refreshMillis= 6e4, //A minute\n\n const timestrings = {\n day: \"a day\",\n days: \"%d days\",\n hour: \"an hour\",\n hours: \"%d hours\",\n minute: \"a minute\",\n minutes: \"%d minutes\",\n month: \"a month\",\n months: \"%d months\",\n prefixAgo: null,\n prefixFromNow: null,\n seconds: \"just now\",\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n wordSeparator: undefined,\n year: \"a year\",\n years: \"%d years\"\n };\n const dateDifference = nowTime - date;\n let words;\n const seconds = Math.abs(dateDifference) / 1000;\n const minutes = seconds / 60;\n const hours = minutes / 60;\n const days = hours / 24;\n const years = days / 365;\n const separator =\n timestrings.wordSeparator === undefined ? \" \" : timestrings.wordSeparator;\n\n // var timestrings = this.settings.timestrings;\n let prefix = timestrings.prefixAgo;\n let suffix = timestrings.suffixAgo;\n\n if (allowFuture) {\n if (dateDifference < 0) {\n prefix = timestrings.prefixFromNow;\n suffix = timestrings.suffixFromNow;\n }\n }\n\n words =\n (seconds < 45 &&\n substitute(timestrings.seconds, Math.round(seconds), timestrings)) ||\n (seconds < 90 && substitute(timestrings.minute, 1, timestrings)) ||\n (minutes < 45 &&\n substitute(timestrings.minutes, Math.round(minutes), timestrings)) ||\n (minutes < 90 && substitute(timestrings.hour, 1, timestrings)) ||\n (hours < 24 &&\n substitute(timestrings.hours, Math.round(hours), timestrings)) ||\n (hours < 42 && substitute(timestrings.day, 1, timestrings)) ||\n (days < 30 &&\n substitute(timestrings.days, Math.round(days), timestrings)) ||\n (days < 45 && substitute(timestrings.month, 1, timestrings)) ||\n (days < 365 &&\n substitute(timestrings.months, Math.round(days / 30), timestrings)) ||\n (years < 1.5 && substitute(timestrings.year, 1, timestrings)) ||\n substitute(timestrings.years, Math.round(years), timestrings);\n\n return words === \"just now\"\n ? [prefix, words].join(separator)\n : [prefix, words, suffix].join(separator);\n // conditional based on optional argument\n // if (somethingElse) {\n // out = out.toUpperCase();\n // }\n // return out;\n };\n\n static isFunction = (functionToCheck: any) => {\n return (\n functionToCheck &&\n {}.toString.call(functionToCheck) === \"[object Function]\"\n );\n };\n}\n","import React, { useContext } from \"react\";\nimport { Timeago } from \"src/utils/timeago\";\nimport {\n AppContext,\n ConversationContext,\n SocketServiceContext\n} from \"src/AppContext\";\nimport { ConversationState } from \"../../../../constants\";\n\ninterface IChatTimestampProps {\n sentBy: \"bot\" | \"contact\";\n time: number;\n is_read: boolean;\n}\n\nfunction ChatTimestamp(props: IChatTimestampProps) {\n const botName = useContext(AppContext).settings.botName;\n return (\n

    \n {props.sentBy === \"bot\" && (\n <>\n {botName}, {Timeago.get(props.time)}\n \n )}\n {props.sentBy === \"contact\" && (\n \n )}\n

    \n );\n}\n\nfunction ContactTimestamp(props: { time: number; is_read: boolean }): any {\n const failed = useContext(ConversationContext).messageFailed;\n const conversationState = useContext(AppContext).state;\n const actions = useContext(SocketServiceContext);\n if (props.is_read) {\n return \"Delivered\" + Timeago.get(props.time);\n } else if (failed) {\n if (conversationState === ConversationState.Finished) {\n return (\n <>\n \n Sending failed\n \n \n );\n } else {\n return (\n <>\n \n Sending failed…\n {\" \"}\n \n Click to retry\n \n \n );\n }\n } else {\n return \"Sending...\";\n }\n}\n\nexport default React.memo(ChatTimestamp);\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\n\nimport \"../require-consent/require-consent.scss\";\n\ninterface IViewAgainButtonProps {\n onMessageSent: (message: string) => void;\n viewAgainText: string;\n}\n\ninterface IViewAgainButtonState {\n viewed: boolean;\n}\n\nexport class ViewAgainButton extends React.Component<\n IViewAgainButtonProps,\n IViewAgainButtonState\n> {\n readonly state: IViewAgainButtonState = {\n viewed: false\n };\n\n componentDidMount() {\n const requireConsent = document.querySelector(\".require-consent\");\n if (requireConsent) {\n const messageContainer = requireConsent.closest(\".message-container\");\n if (messageContainer) {\n messageContainer.scrollIntoView();\n }\n }\n }\n onConsentClick = (consentText: string) => {\n this.props.onMessageSent(consentText);\n this.setState({\n viewed: true\n });\n };\n render() {\n return (\n !this.state.viewed && (\n \n \n {this.props.viewAgainText}\n \n \n )\n );\n }\n}\n","import * as React from \"react\";\n\ninterface IDenyConsentProps {\n bodyText: string;\n id: string;\n}\n\nexport class DenyConsent extends React.PureComponent {\n consentRef: React.RefObject = React.createRef();\n\n render() {\n return (\n \n {this.props.bodyText}\n \n );\n }\n}\n","import React, { useState, useContext, useLayoutEffect, useEffect } from \"react\";\nimport { Message, Interaction } from \"src/interaction.interface\";\nimport { AppContext } from \"src/AppContext\";\nimport { Actions, Answer } from \"src/actions\";\n\nimport \"./widget-message.scss\";\nimport InteractionSingleSelect from \"./message-helpers/interaction-single-select/interaction-single-select\";\nimport InteractionMultiSelect from \"./message-helpers/interaction-multi-select/interaction-multi-select\";\nimport TextMessageComponent from \"./message-helpers/text-message/text-message\";\nimport { VideoMessage } from \"./message-helpers/video-message/video-message\";\nimport { ImageMessage } from \"./message-helpers/image-message/image-message\";\nimport { DocumentMessage } from \"./message-helpers/document-message/document-message\";\nimport { MessageUrl } from \"./message-helpers/url-message/url-message\";\nimport ScheduleAction from \"./action-interactions/schedule-action/schedule-action\";\nimport { RequireConsent } from \"./action-interactions/require-consent/require-consent\";\nimport { ConsentButtons } from \"./action-interactions/require-consent/consent-buttons\";\nimport TimezoneQuestion from \"./question-interactions/timezone-question/timezone-question\";\nimport ChatTimestamp from \"./chat-timestamp/chat-timestamp\";\nimport { ViewAgainButton } from \"./action-interactions/deny-consent/view-again-button\";\nimport { DenyConsent } from \"./action-interactions/deny-consent/deny-consent\";\nimport { ConversationState } from \"src/constants\";\n\ninterface Props {\n last: boolean;\n data: Message;\n botIcon: string;\n socket: Actions;\n showTimestamp: boolean;\n}\n\ninterface SelectProps {\n message: Message;\n sendAnswer: (answer: Answer) => void;\n setSticky: (sticky: boolean) => void;\n}\n\nfunction Select({ message, sendAnswer, setSticky }: SelectProps): any {\n const appContext = useContext(AppContext);\n const [resizeCount, setResizeCount] = useState(0);\n const open = appContext.open && appContext.state === ConversationState.Active;\n let hasContent = false;\n useEffect(() => {\n if (!open) return;\n const listener = () => setResizeCount(count => count + 1);\n window.addEventListener(\"resize\", listener);\n return () => window.removeEventListener(\"resize\", listener);\n }, [open]);\n useLayoutEffect(() => {\n if (!open || !hasContent) return;\n const container = document.getElementById(\"message-scroll-container\");\n const messageContainer = document.getElementById(message.id);\n if (container === null || messageContainer === null) return;\n setSticky(messageContainer.clientHeight / container.clientHeight < 0.6);\n }, [open, message.id, hasContent, setSticky, resizeCount]);\n useEffect(() => () => setSticky(false), [setSticky]);\n if (!open) return null;\n if (message.sent_by !== \"bot\") {\n return null;\n }\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"question\") return null;\n if (interaction.question_type === \"single_choice\") {\n hasContent = interaction.multi_choice_type === \"quick_replies\";\n return (\n hasContent && (\n \n sendAnswer({\n content: option.option_text,\n interaction_option_id: option.id\n })\n }\n />\n )\n );\n } else if (interaction.question_type === \"multi_choice\") {\n hasContent = interaction.multi_choice_type === \"quick_replies\";\n return (\n interaction.multi_choice_type === \"quick_replies\" && (\n \n sendAnswer({\n content: options.map(option => option.option_text).join(\", \"),\n multi_interaction_options_answer_ids: options.map(\n option => option.id\n )\n })\n }\n min={interaction.multi_choice_minimum}\n max={interaction.multi_choice_maximum}\n options={interaction.interaction_options}\n />\n )\n );\n } else {\n return null;\n }\n}\n\nfunction renderVideoMessage(id: string, video_mp4: string, video_ogg: string) {\n return (\n
    \n \n
    \n );\n}\n\nfunction renderImageMessage(id: string, src: string, title: null | string) {\n return ;\n}\n\nfunction renderDocumentMessage(id: string, url: string, title: null | string) {\n return ;\n}\n\nfunction renderUrlMessage(\n id: string,\n url: string,\n imageUrl: string | null,\n title: string\n) {\n return (\n \n );\n}\n\nfunction renderMessageBody(message: Message, last: boolean): JSX.Element {\n if (message.sent_by === \"contact\") {\n return (\n \n );\n }\n const interaction = message.data;\n if (\"text\" in interaction) {\n return (\n \n );\n }\n if (interaction.interaction_type === \"message\") {\n if (interaction.message_type === \"video_message\") {\n return renderVideoMessage(\n message.id,\n interaction.video_mp4,\n interaction.video_ogv\n );\n } else if (interaction.message_type === \"image_message\") {\n return renderImageMessage(\n message.id,\n interaction.image_url,\n interaction.title\n );\n } else if (interaction.message_type === \"document_message\") {\n return renderDocumentMessage(\n message.id,\n interaction.document_url,\n interaction.title\n );\n } else if (interaction.message_type === \"url\") {\n return renderUrlMessage(\n message.id,\n interaction.url,\n interaction.image_url,\n interaction.title\n );\n } else {\n return (\n \n );\n }\n } else if (interaction.interaction_type === \"question\") {\n if (interaction.question_type === \"time_zone\") {\n return (\n \n );\n } else {\n return (\n \n );\n }\n } else {\n if (interaction.action_type === \"schedule\") {\n return ;\n } else if (interaction.action_type === \"ask_consent\") {\n return (\n \n );\n } else if (interaction.action_type === \"deny_consent\") {\n return (\n \n );\n } else if (interaction.action_type === \"end_conversation\") {\n return (\n \n );\n } else {\n throw new Error(\"Unknown message\");\n }\n }\n}\n\nfunction MessageExtras({\n message,\n sendAnswer\n}: {\n message: Message;\n sendAnswer: (answer: Answer) => void;\n}) {\n if (message.sent_by === \"contact\") return null;\n const interaction = message.data as Interaction;\n if (interaction.interaction_type !== \"action\") return null;\n if (interaction.action_type === \"ask_consent\") {\n return (\n sendAnswer({ content })}\n yesText={interaction.accept_button_text}\n />\n );\n } else if (interaction.action_type === \"deny_consent\") {\n return (\n sendAnswer({ content })}\n />\n );\n } else {\n return null;\n }\n}\n\nfunction twoDigits(x: number): string {\n return x > 9 ? x.toString() : \"0\" + x.toString();\n}\n\nfunction messageTitle(message: Message): string | undefined {\n if (message.sent_by === \"bot\") {\n const interaction = message.data as Interaction;\n if (interaction.interaction_type === \"action\") {\n if (interaction.action_type === \"schedule\") return;\n }\n }\n const date = new Date(message.interaction_time);\n const startOfDay = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n const hours = date.getHours();\n const time = `${twoDigits(\n hours === 0 ? 12 : hours > 12 ? hours - 12 : hours\n )}:${twoDigits(date.getMinutes())} ${hours >= 12 ? \"PM\" : \"AM\"}`;\n if (date.getTime() < startOfDay.getTime()) {\n return date.toLocaleDateString() + \" \" + time;\n } else {\n return time;\n }\n}\n\nfunction endChatWithoutMessage(data): boolean {\n const interaction = data.data;\n if (interaction.action_type === \"end_conversation\") {\n const text = interaction.interaction_text;\n if (text === null || text === undefined || text === \"\") {\n return true;\n }\n }\n return false;\n}\n\nfunction WidgetMessage({ data, last, botIcon, socket, showTimestamp }: Props) {\n const appContext = useContext(AppContext);\n const [sticky, setSticky] = useState(false);\n const select = last && (\n