{"version":3,"sources":["webpack://JitsiMeetJS/webpack/universalModuleDefinition","webpack://JitsiMeetJS/webpack/bootstrap","webpack://JitsiMeetJS/./service/xmpp/XMPPEvents.js","webpack://JitsiMeetJS/./JitsiConferenceEvents.js","webpack://JitsiMeetJS/../strophe.js/dist/strophe.umd.js","webpack://JitsiMeetJS/./modules/browser/index.js","webpack://JitsiMeetJS/../jitsi-meet-logger/lib/index.js","webpack://JitsiMeetJS/./modules/statistics/statistics.js","webpack://JitsiMeetJS/./service/RTC/RTCEvents.js","webpack://JitsiMeetJS/./service/statistics/AnalyticsEvents.js","webpack://JitsiMeetJS/./service/RTC/MediaType.js","webpack://JitsiMeetJS/./modules/xmpp/SDPUtil.js","webpack://JitsiMeetJS/./modules/RTC/RTCUtils.js","webpack://JitsiMeetJS/./modules/util/GlobalOnErrorHandler.js","webpack://JitsiMeetJS/./modules/RTC/RTC.js","webpack://JitsiMeetJS/./service/RTC/VideoType.js","webpack://JitsiMeetJS/./JitsiTrackErrors.js","webpack://JitsiMeetJS/./JitsiTrackEvents.js","webpack://JitsiMeetJS/./JitsiConferenceErrors.js","webpack://JitsiMeetJS/../events/events.js","webpack://JitsiMeetJS/./JitsiTrackError.js","webpack://JitsiMeetJS/./modules/util/Listenable.js","webpack://JitsiMeetJS/./modules/xmpp/SDP.js","webpack://JitsiMeetJS/../@jitsi/js-utils/browser-detection/browsers.js","webpack://JitsiMeetJS/../@jitsi/js-utils/browser-detection/BrowserDetection.js","webpack://JitsiMeetJS/../@jitsi/js-utils/jitsi-local-storage/index.js","webpack://JitsiMeetJS/./modules/detection/DetectionEvents.js","webpack://JitsiMeetJS/./service/statistics/Events.js","webpack://JitsiMeetJS/./modules/videosipgw/VideoSIPGWConstants.js","webpack://JitsiMeetJS/../sdp-transform/lib/index.js","webpack://JitsiMeetJS/./JitsiConnectionEvents.js","webpack://JitsiMeetJS/./modules/xmpp/xmpp.js","webpack://JitsiMeetJS/./modules/util/MathUtil.js","webpack://JitsiMeetJS/./modules/settings/Settings.js","webpack://JitsiMeetJS/./modules/xmpp/SdpTransformUtil.js","webpack://JitsiMeetJS/./service/connectivity/ConnectionQualityEvents.js","webpack://JitsiMeetJS/./modules/xmpp/JingleSessionState.js","webpack://JitsiMeetJS/./modules/proxyconnection/constants.js","webpack://JitsiMeetJS/./service/RTC/Resolutions.js","webpack://JitsiMeetJS/./modules/statistics/CallStats.js","webpack://JitsiMeetJS/./service/RTC/CodecMimeType.js","webpack://JitsiMeetJS/./modules/util/RandomUtil.js","webpack://JitsiMeetJS/./modules/xmpp/ConnectionPlugin.js","webpack://JitsiMeetJS/./JitsiConnectionErrors.js","webpack://JitsiMeetJS/./service/RTC/SignalingEvents.js","webpack://JitsiMeetJS/../lodash.clonedeep/index.js","webpack://JitsiMeetJS/./modules/xmpp/XmppConnection.js","webpack://JitsiMeetJS/./service/RTC/CameraFacingMode.js","webpack://JitsiMeetJS/../webpack/buildin/global.js","webpack://JitsiMeetJS/../lodash.isequal/index.js","webpack://JitsiMeetJS/./modules/RTC/ScreenObtainer.js","webpack://JitsiMeetJS/./modules/util/ScriptUtil.js","webpack://JitsiMeetJS/./modules/connectivity/ParticipantConnectionStatus.js","webpack://JitsiMeetJS/./modules/connectivity/NetworkInfo.js","webpack://JitsiMeetJS/../sdp/sdp.js","webpack://JitsiMeetJS/./modules/recording/recordingXMLUtils.js","webpack://JitsiMeetJS/./modules/e2ee/E2EEncryption.js","webpack://JitsiMeetJS/./modules/xmpp/JingleSessionPC.js","webpack://JitsiMeetJS/./modules/xmpp/MediaSessionEvents.js","webpack://JitsiMeetJS/./JitsiMediaDevicesEvents.js","webpack://JitsiMeetJS/./modules/e2ee/OlmAdapter.js","webpack://JitsiMeetJS/../base64-js/index.js","webpack://JitsiMeetJS/./modules/xmpp/SDPDiffer.js","webpack://JitsiMeetJS/../process/browser.js","webpack://JitsiMeetJS/./modules/statistics/LocalStatsCollector.js","webpack://JitsiMeetJS/./modules/statistics/constants.js","webpack://JitsiMeetJS/./modules/xmpp/Caps.js","webpack://JitsiMeetJS/./JitsiTranscriptionStatus.js","webpack://JitsiMeetJS/./modules/RTC/JitsiTrack.js","webpack://JitsiMeetJS/./modules/detection/TrackVADEmitter.js","webpack://JitsiMeetJS/./modules/webaudio/WebAudioUtils.js","webpack://JitsiMeetJS/./service/e2eping/E2ePingEvents.js","webpack://JitsiMeetJS/./modules/util/Deferred.js","webpack://JitsiMeetJS/./modules/RTC/TPCUtils.js","webpack://JitsiMeetJS/./modules/statistics/SpeakerStats.js","webpack://JitsiMeetJS/./service/authentication/AuthenticationEvents.js","webpack://JitsiMeetJS/../@jitsi/js-utils/node_modules/js-md5/src/md5.js","webpack://JitsiMeetJS/../lodash.debounce/index.js","webpack://JitsiMeetJS/./modules/e2ee/crypto-utils.js","webpack://JitsiMeetJS/./modules/RTC/JitsiLocalTrack.js","webpack://JitsiMeetJS/./modules/detection/VADAudioAnalyser.js","webpack://JitsiMeetJS/./modules/recording/JibriSession.js","webpack://JitsiMeetJS/./JitsiMediaDevices.js","webpack://JitsiMeetJS/../jitsi-meet-logger/lib/Logger.js","webpack://JitsiMeetJS/../webpack/buildin/module.js","webpack://JitsiMeetJS/../sdp-transform/lib/grammar.js","webpack://JitsiMeetJS/./modules/transcription/audioRecorder.js","webpack://JitsiMeetJS/./JitsiConnection.js","webpack://JitsiMeetJS/./JitsiConference.js","webpack://JitsiMeetJS/./JitsiConferenceEventManager.js","webpack://JitsiMeetJS/./modules/browser/BrowserCapabilities.js","webpack://JitsiMeetJS/../bowser/es5.js","webpack://JitsiMeetJS/./modules/statistics/AnalyticsAdapter.js","webpack://JitsiMeetJS/./modules/statistics/PerformanceObserverStats.js","webpack://JitsiMeetJS/./modules/statistics/RTPStatsCollector.js","webpack://JitsiMeetJS/./modules/util/EventEmitterForwarder.js","webpack://JitsiMeetJS/./JitsiParticipant.js","webpack://JitsiMeetJS/./authenticateAndUpgradeRole.js","webpack://JitsiMeetJS/./modules/e2ee/E2EEContext.js","webpack://JitsiMeetJS/./modules/xmpp/ResumeTask.js","webpack://JitsiMeetJS/./modules/util/Retry.js","webpack://JitsiMeetJS/./modules/xmpp/StropheLastSuccess.js","webpack://JitsiMeetJS/./modules/xmpp/strophe.ping.js","webpack://JitsiMeetJS/./modules/xmpp/strophe.emuc.js","webpack://JitsiMeetJS/./modules/xmpp/ChatRoom.js","webpack://JitsiMeetJS/./modules/xmpp/Lobby.js","webpack://JitsiMeetJS/./modules/xmpp/moderator.js","webpack://JitsiMeetJS/./modules/util/UsernameGenerator.js","webpack://JitsiMeetJS/./modules/xmpp/strophe.jingle.js","webpack://JitsiMeetJS/./modules/util/AsyncQueue.js","webpack://JitsiMeetJS/../async/lib/async.js","webpack://JitsiMeetJS/./modules/util/StringUtils.js","webpack://JitsiMeetJS/./modules/xmpp/JingleSession.js","webpack://JitsiMeetJS/./modules/xmpp/SignalingLayerImpl.js","webpack://JitsiMeetJS/./service/RTC/SignalingLayer.js","webpack://JitsiMeetJS/./modules/xmpp/strophe.logger.js","webpack://JitsiMeetJS/./modules/xmpp/strophe.rayo.js","webpack://JitsiMeetJS/./modules/xmpp/strophe.util.js","webpack://JitsiMeetJS/./modules/RTC/BridgeChannel.js","webpack://JitsiMeetJS/../rtcpeerconnection-shim/rtcpeerconnection.js","webpack://JitsiMeetJS/./modules/RTC/TraceablePeerConnection.js","webpack://JitsiMeetJS/./modules/xmpp/RtxModifier.js","webpack://JitsiMeetJS/./modules/xmpp/SdpConsistency.js","webpack://JitsiMeetJS/./modules/RTC/JitsiRemoteTrack.js","webpack://JitsiMeetJS/./modules/RTC/LocalSdpMunger.js","webpack://JitsiMeetJS/./modules/connectivity/ConnectionQuality.js","webpack://JitsiMeetJS/./modules/connectivity/IceFailedHandling.js","webpack://JitsiMeetJS/./modules/detection/NoAudioSignalDetection.js","webpack://JitsiMeetJS/./modules/detection/P2PDominantSpeakerDetection.js","webpack://JitsiMeetJS/./modules/detection/VADNoiseDetection.js","webpack://JitsiMeetJS/./modules/detection/VADTalkMutedDetection.js","webpack://JitsiMeetJS/./modules/e2eping/e2eping.js","webpack://JitsiMeetJS/./modules/event/Jvb121EventGenerator.js","webpack://JitsiMeetJS/./modules/qualitycontrol/QualityController.js","webpack://JitsiMeetJS/./modules/recording/RecordingManager.js","webpack://JitsiMeetJS/./modules/statistics/AudioOutputProblemDetector.js","webpack://JitsiMeetJS/./modules/statistics/AvgRTPStatsReporter.js","webpack://JitsiMeetJS/./modules/statistics/SpeakerStatsCollector.js","webpack://JitsiMeetJS/./modules/transcription/transcriber.js","webpack://JitsiMeetJS/./modules/version/ComponentsVersions.js","webpack://JitsiMeetJS/./modules/videosipgw/VideoSIPGW.js","webpack://JitsiMeetJS/./modules/videosipgw/JitsiVideoSIPGWSession.js","webpack://JitsiMeetJS/./modules/detection/ActiveDeviceDetector.js","webpack://JitsiMeetJS/./modules/proxyconnection/ProxyConnectionService.js","webpack://JitsiMeetJS/./modules/proxyconnection/ProxyConnectionPC.js","webpack://JitsiMeetJS/./modules/recording/recordingConstants.js","webpack://JitsiMeetJS/./modules/statistics/PrecallTest.js","webpack://JitsiMeetJS/./modules/util/AuthUtil.js","webpack://JitsiMeetJS/./modules/webaudio/AudioMixer.js","webpack://JitsiMeetJS/../@jitsi/sdp-interop/lib/transform.js","webpack://JitsiMeetJS/../@jitsi/sdp-interop/lib/interop.js","webpack://JitsiMeetJS/./node_modules/uuid/dist/esm-browser/rng.js","webpack://JitsiMeetJS/./node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack://JitsiMeetJS/./node_modules/uuid/dist/esm-browser/v4.js","webpack://JitsiMeetJS/./index.js","webpack://JitsiMeetJS/./JitsiMeetJS.js","webpack://JitsiMeetJS/../jitsi-meet-logger/lib/LogCollector.js","webpack://JitsiMeetJS/../webpack/buildin/amd-options.js","webpack://JitsiMeetJS/../current-executing-script/dist/currentExecutingScript.js","webpack://JitsiMeetJS/./service/statistics/constants.js","webpack://JitsiMeetJS/../src/strophe.disco.js","webpack://JitsiMeetJS/../src/strophe.stream-management.js","webpack://JitsiMeetJS/../timers-browserify/main.js","webpack://JitsiMeetJS/../setimmediate/setImmediate.js","webpack://JitsiMeetJS/../sdp-transform/lib/parser.js","webpack://JitsiMeetJS/../sdp-transform/lib/writer.js","webpack://JitsiMeetJS/../@jitsi/sdp-simulcast/lib/index.js","webpack://JitsiMeetJS/../@jitsi/sdp-simulcast/lib/transform-utils.js","webpack://JitsiMeetJS/./modules/transcription/recordingResult.js","webpack://JitsiMeetJS/./modules/transcription/transcriptionServices/SphinxTranscriptionService.js","webpack://JitsiMeetJS/./modules/transcription/word.js","webpack://JitsiMeetJS/./modules/transcription/transcriptionServices/AbstractTranscriptionService.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/utils.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/chrome/getusermedia.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/chrome/getdisplaymedia.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/chrome/chrome_shim.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/edge/getusermedia.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/edge/getdisplaymedia.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/edge/edge_shim.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/edge/filtericeservers.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/firefox/getusermedia.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/firefox/getdisplaymedia.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/firefox/firefox_shim.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/safari/safari_shim.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/common_shim.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/adapter_core.js","webpack://JitsiMeetJS/../webrtc-adapter/src/js/adapter_factory.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","ADD_ICE_CANDIDATE_FAILED","AUDIO_MUTED_BY_FOCUS","AUTHENTICATION_REQUIRED","BRIDGE_DOWN","CALL_ACCEPTED","CALL_INCOMING","CALL_ENDED","CHAT_ERROR_RECEIVED","CONFERENCE_PROPERTIES_CHANGED","CONNECTION_ESTABLISHED","CONNECTION_FAILED","CONNECTION_INTERRUPTED","CONNECTION_RESTORED","CONNECTION_ICE_FAILED","CONNECTION_STATUS_CHANGED","DISPLAY_NAME_CHANGED","EMUC_ROOM_ADDED","EMUC_ROOM_REMOVED","ETHERPAD","FOCUS_DISCONNECTED","FOCUS_LEFT","GRACEFUL_SHUTDOWN","ICE_RESTARTING","ICE_RESTART_SUCCESS","KICKED","LOCAL_ROLE_CHANGED","MEETING_ID_SET","MESSAGE_RECEIVED","INVITE_MESSAGE_RECEIVED","PRIVATE_MESSAGE_RECEIVED","MUC_MEMBER_BOT_TYPE_CHANGED","MUC_DESTROYED","MUC_JOINED","MUC_MEMBER_JOINED","MUC_MEMBER_LEFT","MUC_LOBBY_MEMBER_JOINED","MUC_LOBBY_MEMBER_UPDATED","MUC_LOBBY_MEMBER_LEFT","MUC_DENIED_ACCESS","MUC_LEFT","MUC_ROLE_CHANGED","MUC_LOCK_CHANGED","MUC_MEMBERS_ONLY_CHANGED","PARTICIPANT_AUDIO_MUTED","PARTICIPANT_VIDEO_MUTED","PARTICIPANT_VIDEO_TYPE_CHANGED","PARTCIPANT_FEATURES_CHANGED","PASSWORD_REQUIRED","PHONE_NUMBER_CHANGED","PRESENCE_RECEIVED","PRESENCE_STATUS","PROMPT_FOR_LOGIN","READY_TO_JOIN","RECORDER_STATE_CHANGED","REMOTE_STATS","RENEGOTIATION_FAILED","RESERVATION_ERROR","ROOM_CONNECT_ERROR","ROOM_CONNECT_NOT_ALLOWED_ERROR","ROOM_JOIN_ERROR","ROOM_CONNECT_MEMBERS_ONLY_ERROR","ROOM_MAX_USERS_ERROR","SENDING_CHAT_MESSAGE","SENDING_PRIVATE_CHAT_MESSAGE","SESSION_ACCEPT_TIMEOUT","SPEAKER_STATS_RECEIVED","CONFERENCE_TIMESTAMP_RECEIVED","START_MUTED_FROM_FOCUS","SUBJECT_CHANGED","SUSPEND_DETECTED","TRANSCRIPTION_STATUS_CHANGED","TRANSPORT_INFO","VIDEO_SIP_GW_AVAILABILITY_CHANGED","VIDEO_SIP_GW_SESSION_STATE_CHANGED","ICE_CONNECTION_STATE_CHANGED","JSON_MESSAGE_RECEIVED","AUDIO_INPUT_STATE_CHANGE","AUTH_STATUS_CHANGED","BEFORE_STATISTICS_DISPOSED","CONFERENCE_ERROR","CONFERENCE_FAILED","CONFERENCE_JOINED","CONFERENCE_LEFT","DATA_CHANNEL_OPENED","DOMINANT_SPEAKER_CHANGED","CONFERENCE_CREATED_TIMESTAMP","DTMF_SUPPORT_CHANGED","ENDPOINT_MESSAGE_RECEIVED","JVB121_STATUS","PARTICIPANT_KICKED","LAST_N_ENDPOINTS_CHANGED","LOCK_STATE_CHANGED","SERVER_REGION_CHANGED","_MEDIA_SESSION_STARTED","_MEDIA_SESSION_ACTIVE_CHANGED","MEMBERS_ONLY_CHANGED","NO_AUDIO_INPUT","NOISY_MIC","PARTICIPANT_CONN_STATUS_CHANGED","PARTICIPANT_PROPERTY_CHANGED","P2P_STATUS","PROPERTIES_CHANGED","START_MUTED_POLICY_CHANGED","STARTED_MUTED","TALK_WHILE_MUTED","TRACK_ADDED","TRACK_AUDIO_LEVEL_CHANGED","TRACK_MUTE_CHANGED","TRACK_REMOVED","USER_JOINED","USER_LEFT","USER_ROLE_CHANGED","USER_STATUS_CHANGED","BOT_TYPE_CHANGED","LOBBY_USER_JOINED","LOBBY_USER_UPDATED","LOBBY_USER_LEFT","global$1","global","self","_typeof","obj","iterator","constructor","_toConsumableArray","arr","Array","isArray","arr2","length","_arrayWithoutHoles","iter","toString","from","_iterableToArray","TypeError","_nonIterableSpread","safe_add","x","y","lsw","str2binl","str","Error","bin","charCodeAt","md5_cmn","q","a","b","num","cnt","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","len","olda","oldb","oldc","oldd","MD5","hexdigest","binarray","charAt","binl2hex","hash","String","fromCharCode","binl2str","core_sha1","j","olde","w","e","rol","safe_add$1","sha1_ft","sha1_kt","core_hmac_sha1","data","bkey","str2binb","ipad","opad","concat","binb2b64","triplet","binb2str","SHA1","b64_hmac_sha1","b64_sha1","str_hmac_sha1","str_sha1","utils","out","cookies","cookieName","expires","domain","path","cookieObj","isObj","cookieValue","escape","unescape","document","cookie","$build","attrs","Strophe","Builder","$iq","$pres","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","FRAMING","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","REDIRECT","CONNTIMEOUT","BINDREQUIRED","ErrorCondition","BAD_FORMAT","CONFLICT","MISSING_JID_NODE","NO_AUTH_MECH","UNKNOWN_REASON","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","forEachChild","elem","elemName","func","childNodes","childNode","nodeType","this","isTagEqual","el","tagName","_xmlGenerator","_makeGenerator","doc","undefined","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","node","arguments","arg","xmlTextNode","sort","attr","setAttribute","k","xmlescape","text","replace","xmlunescape","createTextNode","xmlHtmlNode","html","DOMParser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","_i","createHtml","toLowerCase","getAttribute","cssText","cssAttrs","split","cssName","cssValue","push","join","_i2","createDocumentFragment","_i3","_i4","escapeNode","unescapeNode","getNodeFromJid","jid","indexOf","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","_handleError","stack","fatal","sourceURL","handler","line","message","fileName","lineNumber","log","level","msg","console","error","debug","info","warn","serialize","tree","names","keys","map","result","reduce","getNamedItem","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","up","parentNode","moreattrs","removeAttribute","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","type","id","options","matchBare","matchBareFromJid","user","getNamespace","elNamespace","ignoreNamespaceFragment","namespaceMatch","_this","nsMatch","isMatch","elem_type","run","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","_this2","proto","protocol","_proto","Websocket","Bosh","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","protocolErrorHandlers","_idleTimeout","_disconnectTimeout","authenticated","connected","disconnecting","do_authentication","paused","restored","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","registerSASLMechanisms","mechanisms","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","uuid","Math","random","addProtocolErrorHandler","status_code","callback","connect","pass","wait","hold","route","authcid","authzid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","restore","_sessionCachingSupported","_restore","JSON","sessionStorage","setItem","removeItem","xmlInput","xmlOutput","rawInput","rawOutput","nextValidRid","send","_queueData","_send","flush","clearTimeout","sendPresence","errback","timeout","_this3","timeoutHandler","addHandler","stanza","deleteTimedHandler","addTimedHandler","deleteHandler","sendIQ","_this4","iqtype","element","_sendRestart","_this5","thand","handRef","hand","SASLAnonymous","SASLExternal","SASLMD5","SASLOAuthBearer","SASLXOAuth2","SASLPlain","SASLSHA1","forEach","registerSASLMechanism","mechanism","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","_abortAllRequests","_doDisconnect","status","condition","plugin","statusChanged","err","_dataRecv","req","raw","_this6","_reqToData","strip","pop","_emptyQueue","cond","conflict","getElementsByTagName","UNKOWN_REASON","newList","_i5","_hand","_connect_cb","_callback","bodyWrap","getElementsByTagNameNS","matched","mech","authenticate","_no_auth_received","sortMechanismsByPriority","higher","priority","swap","_attemptSASLAuth","_attemptLegacyAuth","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","isClientFirst","response","onChallenge","btoa","challenge","atob","_onLegacyAuthIQResult","iq","_auth2_cb","_this7","serverSignature","matches","match","onSuccess","streamfeature_handlers","wrapper","_onStreamFeaturesAfterSASL","explicitResourceBinding","_onResourceBindResultIQ","resource","jidNode","_establishSession","_onSessionResultIQ","onFailure","_this8","now","_i6","_thand","SASLMechanism","connection","_connection","auth_str","test_cnonce","cnonce","nonce","salt","Hi","U","U_old","responseText","authMessage","attribMatch","substr","clientKey","serverKey","clientSignature","_quote","realm","host","digest_uri","cred","A1","A2","core","Strophe$1","$build$1","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","querySelector","textContent","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","floor","errors","inactivity","lastResponseHeaders","_buildBody","keepalive","_cacheSession","body","_onRequestStateChange","_throttledRequestHandler","session","parse","getItem","stringify","typ","parseInt","_sendTerminate","_callProtocolErrorHandlers","reqStatus","_getRequestStatus","err_callback","HTTP","_hitError","time_elapsed","def","readyState","getAllResponseHeaders","valid_request","too_many_retries","_removeRequest","reqIs0","_restartRequest","Number","_processRequest","primary_timeout","isNaN","secondary_timeout","server_error","content_type","contentType","open","sync","setRequestHeader","withCredentials","e2","sendFunc","customHeaders","headers","header","backoff","min","pow","abs","Strophe$2","$build$2","new_service","location","pathname","_buildStream","_check_streamerror","connectstatus","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","ver","streamStart","parsedMessage","see_uri","string","_streamWrap","_onMessage","CLOSED","close","closeString","code","rawStanza","search","firstChild","start","startString","$msg","BrowserCapabilities","Logger","require","LogCollector","idLoggers","loggers","curLevel","levels","TRACE","addGlobalTransport","transport","removeGlobalTransport","setGlobalOptions","getLogger","transports","logger","setLogLevelById","setLevel","setLogLevel","__filename","_instances","isCallstatsLoaded","_initCallStatsBackend","CallStats","isBackendInitialized","initBackend","callStatsID","callStatsSecret","userName","aliasName","applicationName","getWiFiStatsMethod","confID","siteID","Statistics","xmpp","rtpStatsMap","Map","eventEmitter","EventEmitter","callStatsIntegrationEnabled","enableCallStats","disableThirdPartyRequests","callStatsApplicationLogsDisabled","browser","isReactNative","ScriptUtil","loadScript","customScriptUrl","CALLSTATS_SCRIPT_URL","loadCallStatsAPI","callsStatsInstances","instances","add","audioLevelsEnabled","disableAudioLevels","pcStatsInterval","audioLevelsInterval","longTasksStatsInterval","analytics","Set","startRemoteStats","peerconnection","stopRemoteStats","rtpStats","RTPStats","set","localStats","startLocalStats","stream","LocalStats","addAudioLevelListener","listener","on","StatisticsEvents","removeAudioLevelListener","removeListener","addBeforeDisposedListener","removeBeforeDisposedListener","addConnectionStatsListener","removeConnectionStatsListener","addByteSentStatsListener","removeByteSentStatsListener","addLongTasksStatsListener","attachLongTasksStats","conference","supportsPerformanceObserver","performanceObserverStats","PerformanceObserverStats","JitsiConferenceEvents","startObserver","stopObserver","getLongTasksStats","removeLongTasksStatsListener","dispose","size","emit","callStats","values","stopCallStats","tpc","tpcId","_stopRemoteStats","removeAllListeners","delete","stopLocalStats","stop","startCallStats","remoteUserID","has","newInstance","_getAllCallStatsInstances","csInstances","statistics","cs","callStatsInstance","sendTerminateEvent","isCallstatsEnabled","sendConnectionResumeOrHoldEvent","isResume","instance","sendResumeOrHoldEvent","sendIceConnectionFailedEvent","sendMuteEvent","muted","sendScreenSharingEvent","ssrc","sendDominantSpeakerEvent","roomJid","sendActiveDeviceListEvent","devicesData","globalSet","associateStreamWithVideoTag","isLocal","userId","usageLabel","containerId","sendGetUserMediaFailed","JitsiTrackError","gum","constraintName","constraints","formatJitsiTrackErrorForCallStats","sendCreateOfferFailed","sendCreateAnswerFailed","sendSetLocalDescFailed","sendSetRemoteDescFailed","sendAddIceCandidateFailed","sendLog","globalSubSet","stats","next","csPerStats","sendApplicationLog","sendFeedback","overall","comment","sendEvent","FEEDBACK","rating","LOCAL_JID","reportGlobalError","sendAnalyticsAndLog","event","properties","eventToLog","sendAnalytics","eventName","CREATE_ANSWER_FAILED","CREATE_OFFER_FAILED","DATA_CHANNEL_OPEN","ENDPOINT_CONN_STATUS_CHANGED","LASTN_ENDPOINT_CHANGED","GRANTED_PERMISSIONS","SENDER_VIDEO_CONSTRAINTS_CHANGED","LASTN_VALUE_CHANGED","LOCAL_TRACK_SSRC_UPDATED","LOCAL_TRACK_MAX_ENABLED_RESOLUTION_CHANGED","TRACK_ATTACHED","REMOTE_TRACK_ADDED","REMOTE_TRACK_MUTE","REMOTE_TRACK_REMOVED","REMOTE_TRACK_UNMUTE","SET_LOCAL_DESCRIPTION_FAILED","SET_REMOTE_DESCRIPTION_FAILED","AUDIO_OUTPUT_DEVICE_CHANGED","DEVICE_LIST_CHANGED","DEVICE_LIST_WILL_CHANGE","DEVICE_LIST_AVAILABLE","LOCAL_UFRAG_CHANGED","REMOTE_UFRAG_CHANGED","TYPE_OPERATIONAL","TYPE_PAGE","TYPE_TRACK","TYPE_UI","ACTION_JINGLE_RESTART","ACTION_JINGLE_SA_TIMEOUT","ACTION_JINGLE_SI_RECEIVED","ACTION_JINGLE_SI_TIMEOUT","ACTION_JINGLE_TERMINATE","ACTION_JINGLE_TR_RECEIVED","ACTION_JINGLE_TR_SUCCESS","ACTION_P2P_DECLINED","ACTION_P2P_ESTABLISHED","ACTION_P2P_FAILED","ACTION_P2P_SWITCH_TO_JVB","AVAILABLE_DEVICE","CONNECTION_DISCONNECTED","ICE_DURATION","ICE_ESTABLISHMENT_DURATION_DIFF","ICE_STATE_CHANGED","NO_BYTES_SENT","TRACK_UNMUTED","createBridgeDownEvent","action","actionSubject","createConnectionFailedEvent","errorType","errorMessage","details","createConferenceEvent","source","createConnectionStageReachedEvent","stage","createE2eRttEvent","participantId","region","rtt","createFocusLeftEvent","createGetUserMediaEvent","createParticipantConnectionStatusEvent","createJingleEvent","createNoDataFromSourceEvent","mediaType","createP2PEvent","createRemotelyMutedEvent","createRtpStatsEvent","createTransportStatsEvent","createAudioOutputProblemEvent","userID","localAudioLevels","remoteAudioLevels","createBridgeChannelClosedEvent","createTtfmEvent","AUDIO","PRESENTER","VIDEO","SDPUtil","filterSpecialChars","iceparams","mediadesc","sessiondesc","pwd","ufrag","findLine","parseICEUfrag","parseICEPwd","substring","buildICEUfrag","frag","buildICEPwd","parseMID","parseMLine","media","shift","port","fmt","buildMLine","mline","parseRTPMap","clockrate","channels","parseSCTPMap","buildRTPMap","parseCrypto","parseFingerprint","fingerprint","parseFmtp","parseICECandidate","candidate","elems","foundation","component","ip","generation","tcptype","network","buildICECandidate","cand","hasOwnAttribute","parseSSRC","desc","lines","parseRTCPFB","pt","params","parseExtmap","direction","uri","haystack","needle","sessionpart","findLines","needles","candidateToJingle","candidateFromJingle","isFirefox","parsePrimaryVideoSsrc","videoMLine","numSsrcs","ssrcs","ssrcInfo","filter","index","array","numGroups","ssrcGroups","primarySsrc","fidGroup","find","group","semantics","simGroup","generateSsrc","RandomUtil","randomInt","getSsrcAttribute","mLine","attributeName","ssrcLine","parseGroupSsrcs","ssrcGroup","ssrcStr","getMedia","sdp","getUfrag","ufragLines","startsWith","preferCodec","codecName","matchingPayloadTypes","rtp","codec","payload","payloadTypes","payloads","reverse","payloadIndex","unshift","stripCodec","highProfile","h264Pts","removePts","stripH264HighCodec","CodecMimeType","H264","fmtp","item","config","includes","rtxApts","rtxPts","keepPts","rtcpFb","usesAdapter","OLD_GUM_DEFAULT_DEVICES","DEFAULT_CONSTRAINTS","video","height","ideal","max","SS_DEFAULT_FRAME_RATE","audioOutputDeviceId","audioOutputChanged","disableAP","disableAEC","disableNS","disableAGC","disableHPF","featureDetectionAudioEl","isAudioOutputDeviceChangeAvailable","setSinkId","availableDevices","availableDevicesPollTimer","emptyFuncton","getConstraints","um","audio","isNewStyleConstraintsSupported","isSafari","mandatory","optional","cameraDeviceId","deviceId","sourceId","facingMode","CameraFacingMode","USER","minFps","maxFps","fps","minFrameRate","maxFrameRate","resolution","Resolutions","width","minWidth","minHeight","maxWidth","maxHeight","setResolutionConstraints","micDeviceId","echoCancellation","googEchoCancellation","googAutoGainControl","googNoiseSuppression","googHighpassFilter","googNoiseSuppression2","googEchoCancellation2","googAutoGainControl2","isChrome","getSSConstraints","mozMediaSource","mediaSource","frameRate","errmsg","GlobalOnErrorHandler","callErrorHandler","isElectron","screenShareAudio","desktopStream","chromeMediaSource","bandwidth","firefox_fake_device","fake","screen","chromeMediaSourceId","getTrackSSConstraints","desktopSharingFrameRate","updateGrantedPermissions","audioTracksReceived","Boolean","getAudioTracks","videoTracksReceived","getVideoTracks","grantedPermissions","RTCEvents","sendDeviceListToAnalytics","deviceList","audioInputDeviceCount","kind","audioOutputDeviceCount","videoInputDeviceCount","videoOutputDeviceCount","device","groupId","label","updateKnownDevices","pds","devicesReceived","newDevices","mediaDeviceInfoToJSON","facing","compareAvailableMediaDevices","slice","RTCUtils","Listenable","super","clearInterval","enumerateDevices","navigator","mediaDevices","then","devices","initEnumerateDevicesWithCallback","usesNewGumFlow","RTCPeerConnectionType","RTCPeerConnection","attachMediaStream","wrapAttachMediaStream","srcObject","getStreamID","getTrackID","isChromiumBased","src","srcObjectPropertyName","jitsiObjectURL","URL","createObjectURL","defaultSetVideoSrc","MediaStream","videoTracks","audioTracks","_initPCConstraints","screenObtainer","getUserMediaWithConstraints","isDeviceListAvailable","ds","supportsDeviceChangeEvent","addEventListener","setInterval","pcConstraints","googHighStartBitrate","googPayloadPadding","googScreencastMinBitrate","googCpuOveruseDetection","googCpuOveruseEncodeUsage","googCpuUnderuseThreshold","googCpuOveruseThreshold","p2pPcConstraints","Promise","resolve","reject","getUserMedia","catch","_newGetUserMediaWithConstraints","umDevices","_newGetDesktopMedia","isSupported","supportsVideo","obtainStream","_parseDesktopSharingOptions","obtainAudioAndVideoPermissions","_getAudioAndVideoStreams","streams","audioStream","videoStream","res","audioVideo","addTrack","desktop","sourceType","track","MediaType","videoType","VideoType","DESKTOP","CAMERA","handleLocalStream","requestingDesktop","avStream","missingTracks","_getMissingTracks","stopMediaStream","desktopSharingSourceDevice","requestedDevices","missingDevices","audioDeviceRequested","videoDeviceRequested","desktopSharingSources","gumOptions","trackOptions","newObtainAudioAndVideoPermissions","mediaStreamsMetaData","maybeRequestDesktopDevice","matchingDevice","getTracks","applyConstraints","maybeRequestCaptureDevices","requestedCaptureDevices","clonedeep","autoGainControl","noiseSuppression","newGetConstraints","desktopAudioTracks","desktopAudioStream","desktopVideoTracks","desktopVideoStream","effects","isDeviceChangeAvailable","deviceType","mediaStream","release","url","revokeObjectURL","isDesktopSharingEnabled","setAudioOutputDevice","getAudioOutputDevice","getCurrentlyAvailableMediaDevices","getEventDataForActiveDevice","deviceData","setSuspendVideo","enable","googSuspendBelowMinBitrate","rtcUtils","origAttachMediaStream","apply","ex","callUnhandledRejectionHandler","promise","oldOnErrorHandler","oldOnUnhandledRejection","onunhandledrejection","args","errHandler","peerConnectionIdCounter","rtcTrackIdCounter","_newCreateLocalTracks","mediaStreamMetaData","metaData","getSettings","safeCounterIncrement","JitsiLocalTrack","rtcId","RTC","peerConnections","localTracks","_channel","_lastN","_lastNEndpoints","_senderVideoConstraints","_maxFrameHeight","_pinnedEndpoint","_selectedEndpoints","_lastNChangeListener","_onLastNChanged","_onDeviceListChanged","_updateAudioOutputForAudioTracks","addListener","destroy","_channelOpenListener","tracksInfo","newTracks","trackInfo","localTrack","createLocalTracks","initializeBridgeChannel","wsUrl","BridgeChannel","_senderVideoConstraintsChanged","sendPinnedEndpointMessage","sendSelectedEndpointsMessage","sendReceiverVideoConstraintMessage","_selectedEndpoint","sendSetLastNMessage","senderVideoConstraints","lastNEndpoints","oldLastNEndpoints","leavingLastNEndpoints","enteringLastNEndpoints","isInLastN","onCallEnded","setReceiverVideoConstraint","maxFrameHeight","isOpen","selectEndpoints","ids","pinEndpoint","eventType","createPeerConnection","signaling","iceConfig","isP2P","getPCConstraints","abtestSuspendVideo","addPermanentProperties","enableInsertableStreams","encodedInsertableStreams","forceEncodedAudioInsertableStreams","forceEncodedVideoInsertableStreams","supportsSdpSemantics","sdpSemantics","bundlePolicy","newConnection","TraceablePeerConnection","_removePeerConnection","traceablePeerConnection","addLocalTrack","getLastN","getSenderVideoConstraints","getLocalVideoTrack","localVideo","getLocalTracks","getLocalAudioTrack","localAudio","tracks","getType","getRemoteTracks","remoteTracks","pcRemoteTracks","setAudioMute","mutePromises","audioTrack","mute","unmute","all","removeLocalTrack","pos","removeRemoteTracks","owner","removedTracks","pcRemovedTracks","elSelector","isUserStreamById","streamId","closeBridgeChannel","setAudioLevel","audioLevel","getTrackBySSRC","isAudioTrack","sendChannelMessage","to","sendMessage","setLastN","remoteAudioTracks","setAudioOutput","CONSTRAINT_FAILED","ELECTRON_DESKTOP_PICKER_ERROR","ELECTRON_DESKTOP_PICKER_NOT_FOUND","GENERAL","NOT_FOUND","PERMISSION_DENIED","SCREENSHARING_GENERIC_ERROR","SCREENSHARING_USER_CANCELED","TRACK_IS_DISPOSED","TRACK_NO_STREAM_FOUND","UNSUPPORTED_RESOLUTION","LOCAL_TRACK_STOPPED","TRACK_AUDIO_OUTPUT_CHANGED","TRACK_VIDEOTYPE_CHANGED","NO_DATA_FROM_SOURCE","CHAT_ERROR","CONFERENCE_DESTROYED","CONFERENCE_MAX_USERS","CONNECTION_ERROR","NOT_ALLOWED_ERROR","MEMBERS_ONLY_ERROR","CONFERENCE_ACCESS_DENIED","ICE_FAILED","INCOMPATIBLE_SERVER_VERSIONS","OFFER_ANSWER_FAILED","PASSWORD_NOT_SUPPORTED","VIDEOBRIDGE_NOT_AVAILABLE","ReflectOwnKeys","R","Reflect","ReflectApply","target","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","once","emitter","eventListener","errorListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","_addListener","prepend","events","existing","warning","newListener","warned","count","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","copy","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","listeners","prependListener","prependOnceListener","list","position","originalListener","spliceOne","off","rawListeners","eventNames","TRACK_ERROR_TO_MESSAGE_MAP","JitsiTrackErrors","constraint","failedConstraintName","getResolutionFromFailedConstraint","removeEventListener","SDP","mediaI","failICE","removeTcpCandidates","removeUdpCandidates","getMediaSsrcMap","mediaSSRCs","mediaindex","mid","linessrc","idx","containsSSRC","medias","toJingle","thecreator","assrcline","creator","amidline","rtpmap","afmtpline","fmtpParameters","rtcpFbToJingle","ssrcMap","availableSsrc","ssrcParameters","ssrcSdpLine","kv","v","ridLines","usesRidsForSimulcast","rids","ridLine","ridInfo","extmapLines","extmap","senders","transportToJingle","sctpmap","sctpAttrs","number","setupLine","setup","iceParameters","payloadtype","feedback","rtcpFbFromJingle","feedbackElementTrrInt","each","_","fb","hasAttribute","fromJingle","jingle","sessionId","groups","$","contents","content","jingle2media","sctp","streamCount","payloadType","__","parameter","hdrExt","CHROME","OPERA","FIREFOX","INTERNET_EXPLORER","SAFARI","NWJS","ELECTRON","REACT_NATIVE","UNKNOWN","bowserNameToJitsiName","_detectElectron","userAgent","version","_detectNWJS","_detectReactNative","product","_detect","bowser","browserInfo","detectors","getBrowserName","getBrowserVersion","_detectChromiumBased","BrowserDetection","_bowser","Bowser","getParser","detectedBrowserInfo","_name","_version","getName","isOpera","isIExplorer","isNWJS","getVersion","_checkCondition","checkTree","satisfies","isVersionGreaterThan","isVersionLessThan","isVersionEqualTo","DummyLocalStorage","clear","_storage","keyName","keyValue","JitsiLocalStorage","localStorage","_localStorageDisabled","ignore","isLocalStorageDisabled","dontEmitChangedEvent","localStorageContent","jitsiLocalStorage","DETECTOR_STATE_CHANGE","VAD_NOISY_DEVICE","VAD_REPORT_PUBLISHED","VAD_SCORE_PUBLISHED","VAD_TALK_WHILE_MUTED","AUDIO_LEVEL","BEFORE_DISPOSED","BYTE_SENT_STATS","CONNECTION_STATS","LONG_TASKS_STATS","STATUS_AVAILABLE","STATUS_UNDEFINED","STATUS_BUSY","STATE_ON","STATE_OFF","STATE_PENDING","STATE_RETRYING","STATE_FAILED","ERROR_NO_CONNECTION","ERROR_SESSION_EXISTS","parser","writer","write","parseFmtpConfig","parseParams","parsePayloads","parseRemoteCandidates","parseImageAttributes","parseSimulcastStreamList","WRONG_STATE","DISPLAY_NAME_REQUIRED","DEFAULT_STUN_SERVERS","urls","JITSI_MEET_MUC_TYPE","XMPP","token","disconnectInProgress","connectionTimes","authenticatedUser","initStropheUtil","initStropheLogger","enableWebsocketResume","serviceUrl","websocketKeepAlive","XmppConnection","createConnection","bosh","_initStrophePlugins","caps","Caps","clientNode","initFeaturesList","ev","addFeature","disableRtx","enableOpusRed","supportsAudioRed","enableLipSync","rayo","E2EEncryption","getConnection","connectionHandler","credentials","performance","statusStr","getStatusString","XMPPEvents","getStunAndTurnCredentials","_resetState","pingJid","getFeaturesAndIdentities","identities","PING","identity","speakerStatsComponentAddress","conferenceDurationComponentAddress","lobbySupported","f","fr","endsWith","JitsiConnectionEvents","_onPrivateMessage","password","anonymousConnectionFailed","connectionFailed","lastErrorMsg","JitsiConnectionErrors","ping","stopInterval","wasIntentionalDisconnect","errMsg","_getConnectionFailedReasonDetails","lastErrorStatus","getLastErrorStatus","attaching","anonymousdomain","hosts","configDomain","hostname","createRoom","roomName","onCreateResource","roomjid","customDomain","muc","mucNickname","randomHexString","emuc","getJid","getJingleLog","getLog","getXmppLog","dial","getSessions","sessions","disconnectListener","_cleanupXmppConnection","isUsingWebSocket","evType","sendUnavailableBeacon","jvb","iceServers","p2p","p2pStunServers","stunServers","iceTransportPolicy","MucConnectionPlugin","JingleConnectionPlugin","RayoConnectionPlugin","deploymentInfo","shard","headersArr","trim","shard_changed","suspend_time","getPingSuspendTime","time_since_last_success","getTimeSinceLastSuccess","room","tryParseJSONAndVerify","jsonString","json","jsonMessage","parsedJson","users","created_timestamp","nextValue","MAX_SAFE_INTEGER","calculateAverage","valueArray","filterPositiveValues","RunningAverage","average","addNext","getAverage","_callStatsUserName","_machineId","_p8","externalStorage","username","UsernameGenerator","generateUsername","generateCallStatsUserName","jitsiMeetId","generateJitsiMeetId","parsePrimarySSRC","parseSecondarySSRC","_getSSRCCount","MLineWrap","getSSRCAttrValue","ssrcNumber","attrName","ssrcObj","removeSSRC","ssrcNum","addSSRCAttribute","findGroup","findGroups","findGroupByPrimarySSRC","primarySSRC","findSSRCByMSID","msid","getSSRCCount","containsAnySSRCGroups","getPrimaryVideoSsrc","fecGroup","getRtxSSRC","getSSRCs","getPrimaryVideoSSRCs","videoSSRCs","ssrcGroupInfo","secondarySsrc","dumpSSRCGroups","removeGroupsWithSSRC","groupInfo","removeGroupsBySemantics","replaceSSRC","oldSSRC","newSSRC","addSSRCGroup","SdpTransformWrap","rawSDP","parsedSDP","transform","selectMedia","selectedMLine","toRawSDP","LOCAL_STATS_UPDATED","REMOTE_STATS_UPDATED","PENDING","ACTIVE","ENDED","ACTIONS","ACCEPT","INITIATE","TERMINATE","UNAVAILABLE","order","wrtcFuncNames","fabricEvent","reportType","_fabrics","backend","backendInitialized","atLeastOneFabric","defaultInstance","fabrics","hasFabric","_addNewFabric","_emptyReportQueue","csInstance","defaultConfID","defaultPC","report","reportsQueue","errorData","_reportError","pc","eventData","sendFabricEvent","associateMstWithUserID","callStatsId","_error","reportError","theBackend","tryCatchMethods","methodName","originalMethod","theArguments","debugMethods","originalReportError","exception","CallStatsBackend","callstats","configParams","_traceAndCatchBackendCalls","applicationVersion","initialize","_initCallback","attachWifiStatsHandler","addresses","_reportEvent","conferenceID","sendUserFeedback","fabricAttributes","remoteEndpointType","endpointType","peer","server","addNewFabric","fabricUsage","multiplex","_addNewFabricCallback","success","streamEndpointId","fabricTerminated","VP8","VP9","randomElement","randomHexDigit","randomAlphanumStr","getConnectionPluginDefinition","base","ConnectionPluginListenable","CONNECTION_DROPPED_ERROR","OTHER_ERROR","SERVER_ERROR","PEER_MUTED_CHANGED","PEER_VIDEO_TYPE_CHANGED","argsTag","funcTag","genTag","mapTag","setTag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","addMapEntry","pair","addSetEntry","arrayReduce","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","Buffer","Uint8Array","getPrototype","objectCreate","propertyIsEnumerable","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","entry","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","baseTimes","skipIndexes","isIndex","assignValue","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","cloneBuffer","isPrototype","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","arrayBuffer","newValue","getMapData","getValue","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","CONN_STATUS_CHANGED","_options","_stropheConn","_usesWebsocket","_lastSuccessTracker","LastSuccessTracker","startTracking","_resumeTask","ResumeTask","_deferredIQs","PingConnectionPlugin","onPingThresholdExceeded","_onPingErrorThresholdExceeded","websocket","_status","OPEN","disco","_stropheConnectionCb","targetCallback","blockCallback","_maybeEnableStreamResume","_maybeStartWSKeepAlive","_processDeferredIQs","cancel","startInterval","_tryResumingConnection","_wsKeepAlive","Events","_clearDeferredIQs","deferred","closeWebsocket","streamManagement","getResumeToken","intervalWithJitter","fetch","timeLeft","sendIQ2","sendBeacon","schedule","ENVIRONMENT","g","objectTag","typedArrayTags","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","predicate","nativeObjectToString","symToStringTag","SetCache","isArg","isBuff","isType","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","isMasked","arrLength","seen","arrValue","othIndex","resIndex","arrayFilter","baseUnary","gumFunction","ScreenObtainer","_createObtainStreamMethod","JitsiMeetNW","obtainDesktopStream","jitsiError","obtainScreenOnElectron","supportsGetDisplayMedia","obtainScreenFromGetDisplayMedia","JitsiMeetScreenObtainer","openDesktopPicker","streamType","onGetStreamResponse","errorCallback","getDisplayMedia","cursor","applyConstraintsPromise","videoTrack","errorDetails","errorName","errorMsg","errorStack","currentExecutingScript","relativeURL","loadCallback","script","referenceNode","scriptEl","scriptSrc","baseScriptSrc","lastIndexOf","onload","insertBefore","ParticipantConnectionStatus","INACTIVE","INTERRUPTED","RESTORING","ParticipantConnectionStatusHandler","isConnectionActiveByJvb","isRestoringTimedout","isVideoMuted","isVideoTrackFrozen","supportsVideoMuteOnConnInterrupted","rtc","trackTimers","connStatusFromJvb","outOfLastNTimeout","rtcMuteTimeout","rtcMutedTimestamp","enteredLastNTimestamp","restoringTimers","connectionStatusMap","_getVideoFrozenTimeout","_onEndpointConnStatusChanged","onEndpointConnStatusChanged","_onP2PStatus","refreshConnectionStatusForAll","_onUserLeft","onUserLeft","_onTrackRtcMuted","onTrackRtcMuted","_onTrackRtcUnmuted","onTrackRtcUnmuted","_onRemoteTrackAdded","onRemoteTrackAdded","_onRemoteTrackRemoved","onRemoteTrackRemoved","_onSignallingMuteChanged","onSignallingMuteChanged","_onTrackVideoTypeChanged","onTrackVideoTypeChanged","_onLastNValueChanged","participantIds","clearRtcMutedTimestamp","endpointId","isActive","myUserId","figureOutConnectionStatus","_changeConnectionStatus","participant","newStatus","getConnectionStatus","getId","_setConnectionStatus","remoteTrack","getParticipantId","JitsiTrackEvents","hasAnyVideoRTCMuted","hasAnyVideoTrackWebRTCMuted","participants","getParticipants","getParticipantById","inP2PMode","isP2PActive","isRestoringTimedOut","_isRestoringTimedout","audioOnlyMode","isConnActiveByJvb","newState","_getNewStateForP2PMode","_getNewStateForJvbMode","_clearRestoringTimer","oldConnectionStatus","connectionStatus","nowMs","maybeSendParticipantConnectionStatusEvent","startedMs","getTracksByMediaType","participantConnectionStatus","leavingLastN","enteringLastN","rTimer","isMuted","NETWORK_INFO_EVENT","NetworkInfo","_current","isOnline","updateNetworkInfo","networkInfo","SDPUtils","localCName","generateIdentifier","splitLines","blob","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","prefix","parseCandidate","address","relatedAddress","relatedPort","tcpType","usernameFragment","writeCandidate","toUpperCase","parseIceOptions","parseRtpMap","parsed","clockRate","numChannels","writeRtpMap","preferredPayloadType","writeExtmap","headerExtension","preferredId","writeFmtp","parameters","param","parseRtcpFb","writeRtcpFb","rtcpFeedback","parseSsrcMedia","sp","colon","parseSsrcGroup","getMid","mediaSection","algorithm","getDtlsParameters","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","writeIceParameters","parseRtpParameters","description","codecs","headerExtensions","fecMechanisms","rtcp","rtpmapline","fmtps","writeRtpDescription","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","flows","apt","encParam","codecPayloadType","rtx","fec","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","parseMsid","spec","planB","msidParts","parseSctpDescription","maxMessageSize","maxSizeLine","sctpPort","writeSctpDescription","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","writeMediaSection","transceiver","iceGatherer","getLocalParameters","dtlsTransport","rtpSender","rtpReceiver","sendEncodingParameters","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","getFocusRecordingUpdate","presence","jibriStatus","initiator","recordingMode","sessionID","getHiddenDomainUpdate","liveStreamViewURLContainer","liveStreamViewURL","modeContainer","sessionIDContainer","getSessionIdFromIq","jibri","getSessionId","sessionIdContainer","isFromFocus","_conferenceJoined","_enabled","_initialized","_key","_e2eeCtx","E2EEContext","_olmAdapter","OlmAdapter","_ratchetKey","debounce","_ratchetKeyImpl","_rotateKey","_rotateKeyImpl","_onParticipantJoined","_onParticipantLeft","_onMediaSessionStarted","_onLocalTrackAdded","_setupReceiverE2EEForTrack","_trackMuteChanged","PARTICIPANT_E2EE_CHANNEL_READY","_onParticipantE2EEChannelReady","PARTICIPANT_KEY_UPDATED","_onParticipantKeyUpdated","supportsInsertableStreams","testing","disableE2EE","isEnabled","setEnabled","enabled","_restartMediaSessions","_generateKey","updateKey","setKey","crypto","getRandomValues","_getMediaSessions","_setupSenderE2EEForTrack","cleanup","material","importKey","newKey","ratchet","updateCurrentKey","findReceiverForTrack","handleReceiver","sender","findSenderForTrack","handleSender","doesVideoMuteByStreamRemove","isVideoTrack","JingleSessionPC","JingleSession","jingleContents","videoContents","maxFrameHeightSel","localJid","remoteJid","mediaConstraints","isInitiator","_bridgeSessionId","_cachedOldLocalSdp","_cachedNewLocalSdp","_iceCheckingStartedTimestamp","_gatheringStartedTimestamp","localRecvMaxFrameHeight","_localVideoActive","_remoteVideoActive","_gatheringReported","lasticecandidate","closed","remoteRecvMaxFrameHeight","signalingLayer","SignalingLayerImpl","modificationQueue","AsyncQueue","wasConnected","establishmentDuration","_xmppListeners","onXmppStatusChanged","_removeSenderVideoConstraintsChangeListener","_assertNotEnded","JingleSessionState","doInitialize","isReconnect","wasstable","webrtcIceUdpDisable","webrtcIceTcpDisable","pcOptions","gatherStats","maxstats","capScreenshareBitrate","videoQuality","disabledCodec","preferredCodec","disableSimulcast","disableH264","preferH264","_abtestSuspendVideoEnabled","startSilent","onicecandidate","phase","sendIceCandidate","onsignalingstatechange","signalingState","connectionState","oniceconnectionstatechange","iceConnectionState","reconnect","iceStarted","onnegotiationneeded","remoteDescription","usesUnifiedPlan","workFunction","finishedCallback","oldSdp","localDescription","_renegotiate","newSdp","notifyMySSRCUpdate","setChatRoom","enableLayerSuspension","MediaSessionEvents","REMOTE_VIDEO_CONSTRAINTS_CHANGED","getRemoteRecvMaxFrameHeight","idealHeight","localSDP","ice","sdpMLineIndex","jcand","errorMesssage","usedrip","dripContainer","sendIceCandidates","candidates","initiatorJid","cands","sdpMid","fingerprintLine","tmp","required","newJingleErrorHandler","sendIceFailedNotification","sessionInfo","addIceCandidates","iceCandidates","rtcCandidate","RTCIceCandidate","outerHTML","iceCandidate","addIceCandidate","readSsrcInfo","ssrcElement","setSSRCOwner","i3","ssrcInfoElement","generateRecvonlySsrc","acceptOffer","jingleOffer","failure","setOfferAnswerCycle","sendSessionAccept","invite","addTracks","createOffer","offerSdp","setLocalDescription","sendSessionInitiate","setAnswer","jingleAnswer","jingleOfferAnswerIq","newRemoteSdp","_processNewJingleOfferIq","oldLocalSdp","bridgeSessionId","sendContentModify","newLocalSdp","replaceTransport","jingleOfferElem","originalOffer","clone","remove","newFingerprint","sendTransportAccept","accept","responder","responderJid","sessionModify","transportAccept","medialines","sendTransportReject","transportReject","setSenderMaxBitrates","setMaxBitRate","setSenderVideoConstraint","setSenderVideoDegradationPreference","terminate","sendSessionTerminate","sessionTerminate","reasonDescription","restart","requestRestart","onTerminated","reasonCondition","reasonText","_parseSsrcInfoFromSourceAdd","sourceAddElem","currentRemoteSdp","addSsrcInfo","i1","i2","addRemoteStream","_addOrRemoveRemoteStream","removeRemoteStream","isAdd","logPrefix","addOrRemoveSsrcInfo","_parseSsrcInfoFromSourceRemove","_processRemoteAddSource","_processRemoteRemoveSource","offerIq","remoteSdp","removeSsrcInfo","usesPlanB","findIndex","optionalRemoteSdp","RTCSessionDescription","_initiatorRenegotiate","_responderRenegotiate","setRemoteDescription","createAnswer","answer","offer","replaceTrack","oldTrack","newTrack","clearRecvonlySsrc","shouldRenegotiate","newLocalSDP","sourceRemoveElem","ssrcLines","_verifyNoSSRCChanged","operationName","oldSDP","currentLocalSDP","sdpDiff","SDPDiffer","addedMedia","getNewMedia","removedMedia","addTrackAsUnmute","_addRemoveTrackAsMuteUnmute","removeTrackAsMute","isMute","oldLocalSDP","removeTrackMute","addTrackUnmute","setMediaTransferActive","audioActive","videoActive","logAudioStr","logVideoStr","isSessionActive","audioActiveChanged","setAudioTransferActive","pcVideoActiveChanged","setVideoTransferActive","modifyContents","newVideoSenders","parseVideoSenders","newMaxFrameHeight","parseMaxFrameHeight","_modifyRemoteVideoActive","remoteVideoSenders","isRemoteVideoActive","newSDP","sdpDiffer","request","failureCb","errResponse","errorElSel","errorReasonSel","errorMsgSel","getIceConnectionState","getConnectionState","finishCallback","shutdown","abTesting","enableSuspendVideoTest","_getInitiatorJid","integerHash","PERMISSION_PROMPT_IS_SHOWN","OLM_MESSAGE_TYPES","kOlmData","OlmAdapterEvents","_conf","_init","Deferred","_keyIndex","_reqs","_bootstrapOlm","_onEndpointMessageReceived","_onConferenceJoined","_onConferenceLeft","Olm","promises","pId","olmData","_getParticipantOlmData","uuidv4","olm","ciphertext","_encryptKeyInfo","setRejectTimeout","_sendMessage","allSettled","_olmAccount","Account","idKeys","identity_keys","_idKey","curve25519","keyInfo","base64js","fromByteArray","keyIndex","encrypt","_sendSessionInit","free","_sendError","Session","create_outbound","idKey","otKey","ack","pendingSessionUuid","create_inbound","remove_one_time_keys","decrypt","safeJsonParse","toByteArray","lastKey","isEqual","generate_one_time_keys","otKeys","one_time_keys","mark_keys_as_published","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","end","arrayEquals","array1","array2","equals","mySDP","otherSDP","myMedias","othersMedias","newMedia","othersMediaIdx","myMedia","othersMedia","otherSsrcGroup","mySsrcGroup","modify","sdpMediaSsrcs","modified","mediaSsrc","nv","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","nextTick","title","env","argv","versions","cwd","chdir","dir","umask","AudioContext","webkitAudioContext","LocalStatsCollector","interval","intervalId","intervalMilis","suspend","isLocalStatsSupported","analyser","createAnalyser","smoothingTimeConstant","fftSize","createMediaStreamSource","frequencyBinCount","getByteTimeDomainData","samples","maxVolume","parseFloat","toFixed","timeDomainDataToAudioLevel","newLevel","lastLevel","diff","animateLevel","IDENTITY_PROPERTIES","IDENTITY_PROPERTIES_FOR_COMPARE","ERROR_FEATURE_VERSION_MISMATCH","compareIdentities","some","generateSha","sortedIdentities","accumulatedValue","sortedFeatures","feature","versionToCapabilities","jidToVersion","rooms","_addChatRoom","_removeChatRoom","CAPS","_handleCaps","_onMucMemberLeft","_removeJidToVersionEntry","submit","_generateVersion","removeFeature","getFeatures","_getDiscoInfo","sha","receivedNode","category","_fixChatRoomPresenceMap","addToPresence","_notifyVersionChanged","_identities","_features","oldVersion","ON","OFF","trackHandler2Prop","JitsiTrack","streamInactiveHandler","trackMediaType","containers","disposed","_streamInactiveHandler","_setStream","_addMediaStreamInactiveHandler","onended","oninactive","_setHandler","_unregisterHandlers","isWebRTCTrackMuted","isLocalAudioTrack","getOriginalStream","getStreamId","getTrack","getTrackLabel","getTrackId","getUsageLabel","_maybeFireTrackAttached","container","_onTrackAttach","_attachTTFMTracker","detach","_onTrackDetach","isScreenSharing","active","newAudioLevel","supportsReceiverStats","getMSID","trackId","TrackVADEmitter","procNodeSampleRate","vadProcessor","jitsiLocalTrack","_procNodeSampleRate","_vadProcessor","_localTrack","_bufferResidue","Float32Array","_audioContext","createAudioContext","sampleRate","getRequiredPCMFrequency","_vadSampleSize","getSampleLength","_onAudioProcess","_initializeAudioContext","_audioSource","_audioProcessingNode","createScriptProcessor","audioEvent","inData","inputBuffer","getChannelData","completeInData","sampleTimestamp","pcmSample","vadScore","calculateAudioFrameVAD","timestamp","score","pcmData","getDeviceId","_connectAudioGraph","onaudioprocess","destination","_disconnectAudioGraph","_cleanupResources","stopStream","getDeviceLabel","_destroyed","AudioContextImpl","E2E_RTT_CHANGED","clearRejectTimeout","_timeout","ms","SIM_LAYER_RIDS","TPCUtils","videoBitrates","localStreamEncodingsConfig","high","low","scaleResolutionDownBy","standard","ensureCorrectOrderOfSsrcs","parsedSdp","reorderedSsrcs","sources","_getStreamEncodings","isSimulcastOn","insertUnifiedPlanSimulcastReceive","usesSdpMungingForSimulcast","simulcast_03","simulcast","simulcastLine","transceiverInit","sendEncodings","addTransceiver","getTransceivers","addStream","setEncodings","getLocalStreamHeightConstraints","localVideoHeightConstraints","encoding","stopped","localSSRCs","_addedStreams","_extractPrimarySSRC","getParameters","encodings","setParameters","transceivers","displayName","isLocalStats","_userId","setDisplayName","_isLocalStats","setDominantSpeaker","totalDominantSpeakerTime","_dominantSpeakerStart","_hasLeft","getUserId","getDisplayName","newName","isDominantSpeaker","isNowDominantSpeaker","timeElapsed","getTotalDominantSpeakerTime","total","hasLeft","markAsHasLeft","IDENTITY_UPDATED","WINDOW","JS_MD5_NO_WINDOW","WEB_WORKER","NODE_JS","JS_MD5_NO_NODE_JS","COMMON_JS","JS_MD5_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_MD5_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","BASE64_ENCODE_CHAR","blocks","buffer8","Uint32Array","JS_MD5_NO_ARRAY_BUFFER_IS_VIEW","isView","createOutputMethod","outputType","Md5","update","createMethod","method","nodeWrap","eval","nodeMethod","createHash","digest","sharedMemory","h0","h1","h2","h3","bytes","hBytes","finalized","hashed","first","notString","lastByteIndex","finalize","bc","da","hex","base64","v1","v2","v3","base64Str","md5","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMax","nativeMin","toNumber","isSymbol","isBinary","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","textEncoder","TextEncoder","subtle","deriveBits","encode","keyBytes","_setEffectInProgress","effect","_startStreamEffect","maxEnabledResolution","_constraints","_prevSetMuted","_facingMode","_trackEnded","_hasSentData","_testDataSent","_realDeviceId","_trackMutedTS","_onDeviceListWillChange","oldRealDeviceId","_setRealDeviceIdFromDeviceList","_onAudioOutputDeviceChanged","_initNoDataFromSourceHandlers","isEnded","_isNoDataFromSourceEventsEnabled","_fireNoDataFromSourceEvent","isReceivingData","storedMSID","_streamEffect","_originalStream","startEffect","_stopStreamEffect","stopEffect","_switchStreamEffect","setEffect","cont","removeTrack","_queueSetMuted","setMuted","_setMuted","logMuteInfo","_removeStreamFromConferenceAsMute","streamOptions","getCameraFacingMode","assign","streamsInfo","streamInfo","_addStreamToConferenceAsUnmute","_sendMuteStatus","_addLocalTrackAsUnmute","successCallback","_removeLocalTrackAsMute","_setConference","_onByteSentStatsReceived","bytesSent","trackSettings","_stopStreamInProgress","_switchCamera","_effectEnabled","VADAudioAnalyser","createVADProcessor","_createVADProcessor","_vadEmitter","_isVADEmitterRunning","_detectionServices","_vadInitTracker","_processVADScore","_trackAdded","_trackRemoved","addVADDetectionService","vadService","detector","_stopVADEmitter","_startVADEmitter","processVADScore","_changeDetectorsMuteState","changeMuteState","vadEmitter","JibriSession","_mode","_setSessionID","setStatus","getError","getID","_sessionID","getInitiator","_initiator","getLiveStreamViewURL","_liveStreamViewURL","getStatus","getTerminator","_terminator","getMode","setError","setLiveStreamViewURL","setInitiator","setTerminator","appData","broadcastId","focusMucJid","_createIQ","recordingXMLUtils","_setErrorFromIq","errorIq","children","_eventEmitter","_grantedPermissions","JitsiMediaDevicesEvents","_logOutputDevice","_handleGrantedPermissions","_permissionsApiSupported","permissions","query","deviceID","isDevicePermissionGranted","supported","results","every","permissionStatus","isMultipleAudioInputSupported","emitEvent","consoleTransport","globalTransports","transportIdx","globalOptions","getCallerInfo","callerInfo","fileLocation","column","disableCallerInfo","logPrefixes","toISOString","fullLogParts","methods","LOG","webpackPolyfill","deprecate","paths","grammar","reg","format","u","z","rate","subtype","sessionConfig","raddr","dir2","RecordingResult","TrackRecorder","recorder","startTime","startRecorder","trackRecorder","stopRecorder","determineCorrectFileType","MediaRecorder","isTypeSupported","AudioRecorder","jitsiConference","recorders","fileType","isRecording","instantiateTrackRecorder","updateNames","originalStream","createEmptyStream","mimeType","ondataavailable","dataEvent","recorderToRemove","download","Blob","href","click","getRecordingResults","getFileType","JitsiConnection","appID","errType","ANALYTICS_CONNECTION_DISCONNECTED","setToken","initJitsiConference","JitsiConference","getConnectionTimes","getLogs","metadata","ua","eventManager","JitsiConferenceEventManager","componentsVersions","ComponentsVersions","jvbJingleSession","lastDominantSpeaker","dtmfManager","somebodySupportsDTMF","authEnabled","startAudioMuted","startVideoMuted","startMutedPolicy","isMutedByFocus","mutedByFocusActor","wasStopped","connectionQuality","ConnectionQuality","avgRtpStatsReporter","AvgRTPStatsReporter","avgRtpStatsN","_audioOutputProblemDetector","AudioOutputProblemDetector","isJvbConnectionInterrupted","speakerStatsCollector","SpeakerStatsCollector","deferredStartP2PTask","delay","backToP2PDelay","isP2PConnectionInterrupted","p2pJingleSession","videoSIPGWHandler","VideoSIPGW","recordingManager","RecordingManager","_conferenceJoinAnalyticsEventSent","isE2EESupported","_e2eEncryption","resourceCreator","isAuthenticatedUser","setupXMPPListeners","_statsCurrentId","statisticsId","Settings","callStatsUserName","statsId","_onIceConnectionInterrupted","_onIceConnectionRestored","_onIceConnectionEstablished","_updateProperties","_sendConferenceJoinAnalyticsEvent","e2eping","E2ePing","setupRTCListeners","qualityController","QualityController","_peerConnStatusRtcMuteTimeout","_peerConnStatusOutOfLastNTimeout","callStatsThreshold","statisticsDisplayName","callStatsCustomScriptUrl","setupChatRoomListeners","setupStatisticsListeners","enableTalkWhileMuted","_audioAnalyser","vadTalkMutedDetection","VADTalkMutedDetection","DetectionEvents","enableNoisyMicDetection","vadNoiseDetection","VADNoiseDetection","enableNoAudioDetection","_noAudioSignalDetection","NoAudioSignalDetection","hasAudioSignal","channelLastN","jvb121Status","Jvb121EventGenerator","p2pDominantSpeakerDetection","P2PDominantSpeakerDetection","userRegion","setLocalParticipantProperty","_maybeSetSITimeout","authenticateAndUpgradeRole","isJoined","joined","isP2PEnabled","isP2PTestModeEnabled","p2pTestMode","leave","onLocalTrackRemoved","_sendConferenceLeftAnalyticsEvent","_delayedIceFailed","removeXMPPListeners","onMemberLeft","_getActiveMediaSession","isAuthEnabled","isLoggedIn","authIdentity","getAuthLogin","isExternalAuthEnabled","moderator","getExternalAuthUrl","urlForPopup","getPopupLoginUrl","getLoginUrl","getPerformanceStats","longTasksStats","eventId","addCommandListener","command","addPresenceListener","removeCommandListener","removePresenceListener","sendTextMessage","elementName","getFromPresence","sendPrivateTextMessage","sendPrivateMessage","sendCommand","sendCommandOnce","removeCommand","removeFromPresence","setSubject","subject","isModerator","getTranscriber","transcriber","Transcriber","localAudioTracks","getTranscriptionStatus","transcriptionStatus","localVideoTrack","_fireAudioLevelChangeEvent","activeTpc","getActivePeerConnection","_fireMuteChangeEvent","actorParticipant","muteParticipant","myroomjid","actorId","muteHandler","audioLevelHandler","_doReplaceTrack","_setupNewTrack","replaceTrackPromises","setVideoMute","addAsUnmutePromises","removeAsMutePromises","getRole","isHidden","hiddenDomain","lock","lockRoom","JitsiConferenceErrors","unlock","selectParticipant","selectParticipants","pinParticipant","lastN","isInteger","isVideoActive","getParticipantCount","countHidden","grantOwner","setAffiliation","kickParticipant","kick","_maybeClearSITimeout","_sessionInitiateTimeout","onMemberJoined","nick","statsID","botType","JitsiParticipant","_role","_botType","_updateFeatures","_maybeStartOrStopP2P","_supportsDTMF","updateDTMFSupport","setProperty","_onMemberBotTypeChanged","botParticipant","onMemberKicked","isSelfPresence","kickedParticipantId","kickedParticipant","onLocalRoleChanged","onUserRoleChanged","onDisplayNameChanged","_displayName","_tracks","onCallAccepted","onTransportInfo","transportInfo","removedTrack","_onIncomingCallP2P","jingleSession","rejectReason","supportsP2P","_shouldBeInP2PMode","_rejectIncomingCall","_acceptP2PIncomingCall","onIncomingCall","isFocus","_acceptJvbIncomingCall","serverRegion","_isE2EEEnabled","_setBridgeChannel","_suspendMediaTransferForJvbConnection","webSocket","bridgeChannelType","openBridgeChannel","forceJvb121","p2pFailed","_stopP2PSession","onSuspendDetected","supportsDTMF","isDTMFSupported","sendTones","tones","duration","peerConnection","startRecording","stopRecording","isSIPCallingSupported","hangup","startTranscriber","stopTranscriber","getPhoneNumber","getPhonePin","getMeetingUniqueId","getMeetingId","setStartMutedPolicy","policy","getStartMutedPolicy","isStartAudioMuted","isStartVideoMuted","removeLocalParticipantProperty","getLocalParticipantProperty","presMap","nodes","prop","overallFeedback","detailedFeedback","getSsrcByTrack","getLocalSSRC","getSSRC","remoteUserId","_isFocus","mucJid","_fireIncompatibleVersionsEvent","sendEndpointMessage","broadcastEndpointMessage","sendThroughVideobridge","messageType","messageToSend","isConnectionInterrupted","_onIceConnectionFailed","IceFailedHandling","remoteID","getStatsID","_addRemoteJVBTracks","_addRemoteTracks","_addRemoteP2PTracks","logName","p2pEstablishmentDuration","jvbEstablishmentDuration","done","forceJVB121Ratio","establishmentDurationDiff","_setP2PStatus","_removeRemoteJVBTracks","changed","getProperty","_maybeClearDeferredStartP2P","_removeRemoteTracks","_removeRemoteP2PTracks","sessionNickname","_resumeMediaTransferForJvbConnection","_startP2PSession","newP2PJingleSession","userLeftEvent","peers","peerCount","shouldBeInP2P","myId","peersId","hasBotPeer","wasP2PEstablished","getP2PConnectionState","startP2PSession","peerJid","stopP2PSession","getSpeakerStats","getStats","setPreferredReceiveMaxFrameHeight","setPreferredSendMaxFrameHeight","createVideoSIPGWSession","sipAddress","VideoSIPGWConstants","meetingId","perf","toggleE2EE","isLobbySupported","getLobby","isMembersOnly","membersOnlyEnabled","enableLobby","disableLobby","disable","joinLobby","email","lobbyDenyAccess","denyAccess","lobbyApproveAccess","approveAccess","xmppListeners","chatRoom","chatRoomForwarder","EventEmitterForwarder","actor","forward","setParticipantPropertyListener","recorderSession","logObject","AuthenticationEvents","txt","myJid","ts","updated","featuresChangedListener","_addConferenceXMPPListener","audioMuted","videoMuted","ignoreStartMuted","createdTimestamp","isUserInteractionRequiredForUnmute","supportsBandwidthStatistics","supportsCodecPreferences","RTCRtpTransceiver","RTCRtpSender","ondevicechange","supportsLocalCandidateRttStatistics","PerformanceObserver","supportedEntryTypes","RTCRtpReceiver","supportsRTTStatistics","_getChromiumBasedVersion","createEncodedStreams","createEncodedVideoStreams","ReadableStream","postMessage","getCapabilities","chromium","default","17","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","18","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chrome","epiphany","firefox","focus","generic","googlebot","google_search","ie","k_meleon","maxthon","edge","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","90","configurable","writable","getResult","91","_ua","parsedResult","getUA","parseBrowser","describe","getBrowser","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","isOS","isPlatform","isBrowser","compareVersion","isEngine","is","92","93","versionName","94","vendor","model","95","analyticsHandlers","permanentProperties","conferenceName","setAnalyticsHandlers","_setUserProperties","_sendEvent","setUserProperties","setConferenceName","_verifyRequiredFields","objectType","containerType","objectId","_maybeCacheEvent","statsInterval","longTasks","maxDuration","performanceStatsInterval","avgRatePerMinute","maxDurationMs","longTaskEventHandler","getEntries","task","observer","observe","buffered","longTasksIntervalId","_lastTimeStamp","KEYS_BY_BROWSER_TYPE","calculatePacketLoss","lostPackets","totalPackets","round","SsrcStats","loss","bitrate","upload","framerate","ConferenceStats","packetLoss","StatsCollector","_browserType","_usesPromiseGetStats","_getStatValue","_defineNewGetStatValueMethod","_defineGetStatValueMethod","baselineAudioLevelsReport","currentAudioLevelsReport","currentStatsReport","previousStatsReport","audioLevelReportHistory","audioLevelsIntervalId","conferenceStats","audioLevelsIntervalMilis","statsIntervalId","statsIntervalMilis","ssrc2stats","browsers","setLoss","setResolution","addBitrate","resetBitrate","setFramerate","setCodec","startAudioLevelStats","audioLevels","getAudioLevels","processNewAudioLevelReport","processAudioLevelReport","processNewStatsReport","processStatsReport","itemStatByKey","stat","keyFromName","getNonNegativeStat","getStatValue","byteSentStats","receiveBandwidth","sendBandwidth","localCandidateType","localip","remoteCandidateType","conferenceStatsTransport","selected","local","localCandidateId","remote","remoteCandidateId","ipAddress","portNumber","candidateType","before","ssrcIds","isRemote","remoteSource","ssrcStats","isDownloadStream","packetsNow","packetsBefore","packetsDiff","packetsLostNow","packetsLostBefore","packetsLostDiff","packetsTotal","packetsLost","bytesReceivedNow","bytesReceivedBefore","bytesReceived","nowBytesTransmitted","timeMs","bitrateReceivedKbps","bitrateSentKbps","_processAndEmitReport","bitrateDownload","bitrateUpload","resolutions","framerates","audioBitrateDownload","audioBitrateUpload","audioCodec","videoBitrateDownload","videoBitrateUpload","videoCodec","userResolutions","userFramerates","codecDesc","userCodecs","avgAudioLevels","localAvgAudioLevels","avgAudioLevel","sum","currentValue","getNonNegativeValue","_calculateBitrate","fieldName","bytesNow","bytesBefore","bytesProcessed","bitrateKbps","nominated","availableIncomingBitrate","availableOutgoingBitrate","remoteUsedCandidate","localUsedCandidate","localIp","networkType","currentRoundTripTime","framerateMean","frameHeight","frameWidth","framesPerSecond","framesSent","trackIdentifier","getSsrcByTrackId","dest","srcEvent","hidden","_jid","_id","_conference","_hidden","_statsID","_connectionStatus","_properties","_identity","getConference","jitsiTrack","oldValue","isAudioMuted","_isMediaTypeMuted","_getFeaturesPromise","getBotType","onLoginSuccessful","roomPassword","rejectPromise","canceled","authenticationError","connectionError","kJitsiE2EE","E2EEcontext","baseUrl","ljm","workerBlob","blobUrl","_worker","Worker","operation","receiverStreams","createEncodedAudioStreams","readableStream","readable","writableStream","senderStreams","stropheConnection","_resumeRetryN","_retryDelay","_cancelResume","_networkOnlineListener","_scheduleResume","_resumeTimeout","getJitterDelay","retryDelay","_resumeConnection","resumeToken","retry","minDelay","LastRequestTracker","_lastSuccess","xmppConnection","originalRawInput","ConnectionPlugin","failedPings","pingExecIntervals","_onPingThresholdExceeded","_addPingExecutionTimestamp","pingIntervals","maxInterval","previousTS","currentInterval","onPresence","onPresenceUnavailable","onPresenceError","onMessage","onMute","ChatRoom","doLeave","createNonAnonymousRoom","packet2JSON","json2packet","packet","filterNodeFromPresenceJSON","MEMBERS_AFFILIATIONS","members","presHandlers","_removeConnListeners","noBridgeAvailable","Moderator","lobby","Lobby","initPresenceMap","lastPresences","phoneNumber","phonePin","participantPropertyListener","locked","JitsiTranscriptionStatus","xns","addVideoInfoToPresence","presenceUpdateTime","customJoinPresenceExtensions","disableFocus","allocateConferenceFocus","onConnStatusChanged","fromJoin","presenceSyncTime","discoRoomInfo","getInfo","meetingIdValEl","setMeetingId","membersOnly","lobbyRoomField","setLobbyRoomJid","disableDiscoInfo","getForm","form","formSubmit","member","statusEl","hasStatusUpdate","hasVersionUpdate","xElement","mucUserItem","affiliation","getFocusUserJid","isHiddenDomain","fromHiddenDomain","xEl","extractIdentityInformation","userInfo","newRole","_initFocus","memberOfThis","displayJids","att","phone","pin","processNode","focusFeatures","supportsRestartByTerminate","tagHandlers","nickname","onParticipantLeft","skipEvents","onMucMemberLeft","destroySelect","reasonSelect","isKick","membersKeys","actorSelect","actorNick","subjectText","stamp","dateParts","passwordSelect","lobbyRoomNode","lobbyRoomJid","grantIQ","kickIQ","onError","onNotSupported","formsubmit","setMembersOnly","formToSubmit","handlerIdx","getMemberRole","sendVideoInfoPresence","sendAudioInfoPresence","addAudioInfoToPresence","getMediaPresenceInfo","mutedNode","videoTypeNode","isSipGatewayEnabled","iqToFocus","clean","onMucLeft","doReject","mainRoom","maybeJoinLobbyRoom","_maybeJoinLobbyRoom","lobbyRoom","_leaveLobbyRoom","avatar","invitePassword","memberRoomJid","msgToSend","createExpBackoffTimer","step","origin","xmppService","getNextTimeout","getNextErrorTimeout","externalAuthEnabled","sipGatewayEnabled","call_control","attachEvent","setFocusUserJid","focusJid","focusUserJid","getFocusComponent","focusComponent","createConferenceIq","machineUID","machineId","openSctp","enforcedBridge","enableTcc","enableRemb","minParticipants","audioPacketDelay","startBitrate","minBitrate","octo","probability","opusMaxAverageBitrate","stereo","useRoomAsSharedDocumentName","parseSessionId","resultIq","parseConfigOptions","authenticationEnabled","_allocateConferenceFocusSuccess","_allocateConferenceFocusError","invalidSession","reservationErr","errorCode","errorTextNode","waitMs","retrySec","urlCallback","failureCallback","_getLoginUrl","popup","urlCb","decodeURIComponent","logout","logoutUrl","jvbIceConfig","p2pIceConfig","offerToReceiveAudio","offerToReceiveVideo","onJingle","fromJid","sess","startMuted","successTime","me","iceservers","dict","credential","temp","useTurnUdp","updateLog","_queue","_processQueueTasks","_stopped","kill","previous_async","only_once","fn","called","noConflict","_toString","_isArray","_each","_map","_keys","setImmediate","completed","eachSeries","iterate","forEachSeries","eachLimit","limit","_eachLimit","forEachLimit","started","running","replenish","doParallel","doSeries","_asyncMap","eachfn","mapSeries","mapLimit","_mapLimit","doParallelLimit","memo","inject","foldl","reduceRight","reversed","foldr","_filter","filterSeries","select","selectSeries","_reject","rejectSeries","main_callback","detect","detectSeries","any","sortBy","criteria","left","right","auto","tasks","remainingTasks","taskComplete","theCallback","taskCallback","safeResults","rkey","requires","ready","times","attempts","wrappedTask","wrappedCallback","wrappedResults","retryAttempt","finalAttempt","seriesCallback","series","waterfall","wrapIterator","_parallel","parallel","parallelLimit","makeCallback","_concat","cb","concatSeries","whilst","doWhilst","until","doUntil","worker","concurrency","_insert","drain","saturated","workers","empty","idle","priorityQueue","_compareTasks","sequence","compare","beg","_binarySearch","cargo","working","drained","_console_fn","memoize","hasher","queues","memoized","unmemoized","unmemoize","counter","timesSeries","seq","fns","newargs","nextargs","compose","_applyEach","go","applyEach","applyEachSeries","forever","char","getState","addSources","removeSources","SignalingLayer","ssrcOwners","oldChatRoom","_audioMuteHandler","_videoMuteHandler","_videoTypeHandler","SignalingEvents","getPeerMediaInfo","getSSRCOwner","StropheLogger","logIncoming","logOutgoing","onRayo","roomPass","callResource","resetLastErrorStatusRegExpr","lastErrorStatusRegExpr","trace","errStatusCapture","senderVideoConstraintsChanged","_areRetriesEnabled","_closedFromClient","datachannel","createDataChannel","_handleChannel","_wsUrl","_initWebSocket","ws","_startConnectionRetries","timeoutS","reload","_retryTimeout","_stopConnectionRetries","_retryWebSocketConnection","closeEvent","colibriClass","msgPayload","jsonObject","pinnedEndpoint","endpointIds","selectedEndpoints","maxFrameHeightPixels","channel","dominantSpeakerEndpoint","endpoint","videoConstraints","dtlsRole","_initialTrackId","getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","findCodecByPayloadType","rtxCapabilityMatches","lRtx","rRtx","lCodecs","rCodecs","lCodec","rCodec","lHeaderExtension","rHeaderExtension","isActionAllowedInSignalingState","maybeAddCandidate","iceTransport","alreadyAdded","getRemoteCandidates","remoteCandidate","addRemoteCandidate","makeError","NotSupportedError","InvalidStateError","InvalidAccessError","OperationError","edgeVersion","addTrackToStreamAndFireEvent","dispatchEvent","MediaStreamTrackEvent","fireAddTrack","trackEvent","Event","_dispatchEvent","_eventTarget","canTrickleIceCandidates","needNegotiation","localStreams","remoteStreams","_localDescription","_remoteDescription","iceGatheringState","usingBundle","rtcpMuxPolicy","hasTurn","isString","filterIceServers","_iceGatherers","iceCandidatePoolSize","RTCIceGatherer","gatherPolicy","_config","_sdpSessionId","_sdpSessionVersion","_dtlsRole","_isClosed","onaddstream","ontrack","onremovestream","onconnectionstatechange","onicegatheringstatechange","ondatachannel","_emitGatheringStateChange","getConfiguration","getLocalStreams","getRemoteStreams","_createTransceiver","doNotAdd","hasBundleTransport","recvEncodingParameters","associatedRemoteMediaStreams","wantReceive","_createIceAndDtlsTransports","_maybeFireNegotiationNeeded","clonedStream","clonedTrack","removeStream","getSenders","getReceivers","_createIceGatherer","bufferedCandidateEvents","bufferCandidates","_gather","onlocalcandidate","evt","serializedCandidate","toJSON","complete","RTCIceTransport","onicestatechange","_updateIceConnectionState","_updateConnectionState","RTCDtlsTransport","ondtlsstatechange","_disposeIceAndDtlsTransports","_transceive","recv","receive","isIceLite","rejected","remoteIceParameters","remoteDtlsParameters","_updateSignalingState","receiverList","iceOptions","remoteMsid","isComplete","setTransport","setRemoteCandidates","isNewTrack","nativeTrack","removeTrackFromStreamAndFireEvent","states","checking","disconnected","failed","new","connecting","numAudioTracks","numVideoTracks","offerOptions","remoteCodec","rHdrExt","getLocalCandidates","mediaSectionsInOffer","candidateString","selector","MediaStreamTrack","senderOrReceiver","allStats","ortcObjectName","nativeGetstats","nativeStats","mapStats","inboundrtp","outboundrtp","candidatepair","localcandidate","remotecandidate","nativeMethod","audioTransferActive","_dtmfSender","_dtmfTonesQueue","videoTransferActive","localUfrag","remoteUfrag","_peerVideoTypeChanged","_peerMutedChanged","safeConstraints","rtcStatsSFUP2P","standardVideoBitrates","maxBitratesVideo","tpcUtils","statsinterval","interop","Interop","Simulcast","numOfLayers","explodeRemoteSimulcast","sdpConsistency","SdpConsistency","localSdpMunger","LocalSdpMunger","rtxModifier","RtxModifier","senderVideoMaxHeight","getCodecMimeType","codecPreference","what","_remoteStreamAdded","_remoteStreamRemoved","_remoteTrackAdded","onremovetrack","_remoteTrackRemoved","_processStat","statValue","endTime","dumpSDP","_getDesiredMediaDirection","mediaTransferActive","hasAnyTracksOfType","_setVideoType","setMute","getSynchronizationSources","endpoints","endpointTrackMap","mediaTrack","findTrackById","onaddtrack","streamAudioTracks","streamVideoTracks","remoteSDP","mediaLines","mls","trackSsrc","ownerEndpointId","peerMediaInfo","_createRemoteTrack","remoteTracksMap","existingTrack","JitsiRemoteTrack","isUserStream","_removeRemoteTrackById","_getRemoteTrackById","removedAudioTrack","removedVideoTrack","_removeRemoteTrack","toBeRemoved","normalizePlanB","firstSsrcs","newSsrcLines","filteredLines","ssrcId","cnameLine","replaceDefaultUnifiedPlanMsid","resStr","_getSSRC","_injectSsrcGroupForUnifiedSimulcast","fidGroups","getters","toPlanB","maybeAddMutedLocalVideoTracksToSDP","transformer","audioMedia","videoMedia","enforceSendRecv","transformStreamIdentifiers","hasCameraTrack","_mungeCodecOrder","containsTrack","webrtcStream","_addStream","generateNewStreamSSRCInfo","setPrimarySsrc","setSsrcCache","rtxSsrcMapping","rtxSsrc","promiseChain","_assertTrackBelongs","webRtcStream","_removeStream","doesBelong","isMediaStreamInPc","findSenderByKind","opts","_ensureSimulcastGroupIsLast","localSdp","sdpStr","videoStartIndex","simStartIndex","otherStartIndex","simEndIndex","simStr","otherEndIndex","sdpHead","simStrTrimmed","sdpTail","_adjustLocalMediaDirection","modifiedDirection","desiredAudioDirection","desiredVideoDirection","toUnifiedPlan","videoSender","preference","degradationPreference","presenterEnabled","scaleFactor","layer","enableConferenceFlag","mungeRemoteDescription","currentDescription","newHeight","encodingsEnabledState","ldStreamIndex","interToneGap","dtmf","localAudioTrack","createDTMFSender","ontonechange","_onToneChange","toneBuffer","insertDTMF","tone","clearVideoSsrcCache","peerTracks","_createOfferOrAnswer","isOffer","handleSuccess","resultSdp","resolveFn","rejectFn","hasPrimarySsrcCached","makeVideoPrimarySsrcsConsistent","mungeLocalDescription","modifyRtxSsrcs","groupsMap","groupSSRCs","extractSSRCMap","_processLocalSSRCsMap","handleFailure","oaPromise","trackMSID","newSSRCNum","oldSSRCNum","currNumSsrcs","updateAssociatedRtxStream","primarySsrcInfo","primarySsrcMsid","primarySsrcCname","previousRtxSSRC","correspondingRtxSsrcs","clearSsrcCache","ssrcMapping","sdpTransformer","modifyRtxSsrcs2","primaryVideoSsrcs","correspondingRtxSsrc","previousAssociatedRtxStream","stripRtx","cachedPrimarySsrc","injectRecvOnly","newPrimarySsrc","ttfmTrackerAudioAttached","ttfmTrackerVideoAttached","containerEvents","hasBeenMuted","_bindTrackHandlers","_containerHandlers","_containerEventHandler","_onTrackMute","_onTrackUnmute","_playCallback","gumStart","gumEnd","gumDuration","ttfm","_getStatus","_addMutedLocalVideoTracksToSDP","localVideos","isInPeerConnection","shouldFakeSdp","requiredSSRCs","ssrcCache","primaryCname","_transformMediaIdentifiers","pcId","streamAndTrackIDs","sessionDesc","audioMLine","kSimulcastFormats","layers","videoBitrateCap","getTarget","millisSinceStart","simulcastFormat","targetHeight","pixels","rampUp","_localStats","jvbRTT","_lastConnectionQualityUpdate","_remoteStats","_timeIceConnected","_timeVideoUnmuted","_timeLastBwCapRemoved","ConferenceEvents","_updateLocalConnectionQuality","ConnectionQualityEvents","_broadcastLocalStats","_updateRemoteStats","_updateLocalStats","_maybeUpdateUnmuteTime","bridgeCount","_calculateConnectionQuality","resolutionName","quality","activeTPC","newVideoBitrateCap","bandwidthLimiter","getBandwidthLimit","maxIncreasePerSecond","prevConnectionQuality","diffSeconds","updateLocalConnectionQuality","_actOnIceFailed","enableIceRestart","explicitlyDisabled","useTerminateForRestart","jvbConnection","jvbConnIceState","_canceled","_iceFailedTimeout","_timeoutTrigger","_hasAudioInput","_audioLevel","_clearTriggerTimeout","_handleAudioInputStateChange","_handleNoAudioInputDetection","_eventFired","_audioTrack","myUserID","_processing","_scoreArray","_audioLvlArray","_active","_calculateNoisyScore","scoreAvg","audioLevelAvg","_setActiveState","_recordValues","avgAudioLvl","_processTimeout","posAudioLevels","_calculateVADScore","ParticipantWrapper","requests","lastRequestId","clearIntervals","sendRequest","handleResponse","maybeSendAnalytics","isDataChannelOpen","pingInterval","pingIntervalMs","analyticsInterval","analyticsIntervalMs","requestId","requestMessage","timeSent","E2ePingEvents","Infinity","participantJoined","participantLeft","messageReceived","dataChannelOpened","participantWrapper","handleRequest","_jvb121","evaluateStatus","oldStatus","_propagateSendMaxFrameHeight","mediaSession","preferredReceiveMaxFrameHeight","sendMaxFrameHeight","selectSendMaxFrameHeight","activeMediaSession","preferredSendMaxFrameHeight","_sessions","_chatRoom","getSession","_handleFocusPresence","_handleJibriPresence","_addSession","_emitSessionUpdate","_createSession","_localAudioLevelCache","_reportedParticipants","_audioProblemCandidates","_numberOfRemoteAudioLevelsReceived","_onLocalAudioLevelsReport","_onRemoteAudioLevelReceived","_clearUserData","numberOfReports","localAudioLevelsString","AverageStatReport","calculate","appendReport","ConnectionAvgStats","_n","_sampleIdx","_avgRTT","_avgRemoteRTTMap","_avgRtpStatsReporter","_avgEnd2EndRTT","_onConnectionStats","_calculateAvgStats","_onRemoteStatsUpdated","_processRemoteStats","batchReport","jvbEnd2EndRTT","jvbStatsMonitor","avgRemoteRTT","_calculateAvgRemoteRTT","avgLocalRTT","_resetAvgStats","remoteAvg","avg","validData","rttAvg","_avgAudioBitrateUp","_avgAudioBitrateDown","_avgVideoBitrateUp","_avgVideoBitrateDown","_avgBandwidthUp","_avgBandwidthDown","_avgPacketLossTotal","_avgPacketLossUp","_avgPacketLossDown","_avgRemoteFPS","_avgRemoteScreenFPS","_avgLocalFPS","_avgLocalScreenFPS","_avgRemoteCameraPixels","_avgRemoteScreenPixels","_avgLocalCameraPixels","_avgLocalScreenPixels","_avgCQ","_cachedTransportStats","_onLocalStatsUpdated","_maybeSendTransportAnalyticsEvent","_onP2PStatusChanged","p2pStatsMonitor","_onJvb121StatusChanged","_resetAvgJvbStats","confSize","_calculateAvgVideoFps","_calculateAvgVideoPixels","peerResolutions","peerPixelsSum","myID","peerID","videosResolution","peerAvgPixels","_calculatePeerAvgVideoPixels","videos","peerSsrcCount","peerSsrcPixels","peerFpsSum","videosFps","peerAvgFPS","_calculatePeerAvgVideoFps","peerSsrcFps","transportStats","dominantSpeakerId","SpeakerStats","_onDominantSpeaker","_onUserJoin","_onUserLeave","_onDisplayNameChange","_updateStats","oldDominantSpeaker","newDominantSpeaker","savedUser","newStats","speakerStatsToUpdate","newParticipant","SphinxService","audioRecorder","transcriptionService","transcription","lineLength","blobCallBack","wordArray","getUTCMilliseconds","wordObject","begin","word","maybeMerge","hasPopulatedArrays","twoDimensionalArray","callBack","recordingResult","merge","arrays","potentialWords","pushWordToSortedArray","lowestWordArray","wordToAdd","updateTranscription","foundSmaller","wordToCompare","getTranscription","processVersions","mucResource","getComponentVersion","componentName","sessionStateChangeListener","sessionStateChanged","handleJibriSIPState","Constants","sipaddress","setState","failure_reason","JitsiVideoSIPGWSession","addStateListener","removeStateListener","_sendJibriIQ","failureReason","oldState","displayname","getActiveAudioDevice","audioDevices","devicePromiseArray","micDevice","devicePromise","outcomeArray","successfulPromises","rejectedPromises","rejectReasons","stopActiveDevices","deviceLabel","ProxyConnectionService","jitsiConnection","otherOptions","_peerConnection","_onFatalError","_onSendMessage","_onRemoteStream","processMessage","getPeerJid","_convertStringToXML","$jingle","_createPeerConnection","receiveVideo","_selfCloseConnection","xml","xmlDom","onRemoteStream","onSendMessage","ProxyConnectionPC","jitsiRemoteTrack","isVideo","convertVideoToDesktop","jitsiLocalTracks","newCreateLocalTracks","stringifiedIq","XMLSerializer","serializeToString","onConnectionClosed","receiveAudio","_onSessionAccept","_onSessionInitiate","_onSessionTerminate","_onTransportInfo","connectionStub","iceConfigStub","roomStub","_rtc","BUSY","RESOURCE_CONSTRAINT","SERVICE_UNAVAILABLE","FILE","api","_loadScript","appId","appSecret","disablePrecalltest","_initialize","execute","makePrecallTest","AuthUtil","getTokenAuthUrl","urlPattern","roleUpgrade","AudioMixer","_started","_streamsToMix","_streamMSSArray","addMediaStream","_mixedMSD","createMediaStreamDestination","streamMSS","found","PLAN_B_MIDS","findSimGroup","grp","findFidGroup","addSimGroupSources","sourceGroups","sourceList","findSourcebyId","relatedFidGroup","relatedSsrc","addSourcesToMline","otherSsrc","simGroup2","checkIfMlineForSsrcExists","mlines","sessionMedia","bLine","bundle","mids","msidSemantic","semantic","current","currentDesc","newMline","mLineForData","ssrc2group","createSourceGroupMap","bundleOnly","inactiveMid","cmLine","msCrypto","rnds8","rng","byteToHex","buf","bth","rnds","getAnalyticsAttributesFromOptions","video_requested","_mergeNamespaceAndModule","JitsiMeetJS","constants","recording","recordingConstants","sipVideoGW","detection","errorTypes","logLevels","JitsiMediaDevices","enableAnalyticsLogging","enableWindowOnErrorHandler","getGlobalOnErrorHandler","aprops","isWebRtcSupported","addGlobalLogTransport","globalTransport","removeGlobalLogTransport","setGlobalLogOptions","firePermissionPromptIsShownEvent","originalOptions","promiseFulfilled","mStream","currentlyAvailableMediaDevices","setVideoTrackContentHints","oldResolution","newResolution","resName","getLowerResolution","createTrackVADEmitter","localAudioDeviceId","createAudioMixer","isCollectingLocalStats","lineno","colno","setNetworkInfo","hint","contentHint","precallTest","util","logStorage","stringifyObjects","storeInterval","maxEntryLength","logLevel","_log","storeLogsIntervalID","totalLen","outputCache","someObject","formatLogMessage","prevMessage","prevMessageText","_flush","_reschedulePublishInterval","force","reschedule","isReady","cachedQueue","storeLogs","__webpack_amd_options__","scriptReadyRegex","fullPageUrl","pageUrl","scripts","supportsScriptReadyState","isNotOpera","hasNativeCurrentScriptAccessor","stackTraceLimit","hasStackBeforeThrowing","hasStackAfterThrowing","_nearestExecutingScript","eligibleScripts","skipStackDepth","getScriptFromUrl","getScriptUrlFromStack","ignoreMessage","getSoleInlineScript","currentScript","thrownErr","near","far","_items","conn","_onDiscoInfo","_onDiscoItems","addIdentity","lang","var_name","addItem","call_back","items","_buildIQResult","query_attrs","iqresult","logging","autoSendCountOnEveryIncomingStanza","requestResponseInterval","_c","_NS","_isStreamManagementEnabled","_serverProcesssedStanzasCounter","_clientProcessedStanzasCounter","_clientSentStanzasCounter","_originalXMLOutput","_requestHandler","_incomingHandler","_requestResponseIntervalCount","_isSupported","_unacknowledgedStanzas","_acknowledgedStanzaListeners","addAcknowledgedStanzaListener","_resumeToken","_resuming","_originalConnect","_connectArgs","requestAcknowledgement","getOutgoingCounter","getIncomingCounter","_interceptConnectArgs","_originalOnStreamFeaturesAfterSASL","_originalDoDisconnect","_interceptDoDisconnect","_originalDisconnect","_interceptDisconnect","_resumeState","_storedJid","previd","_handleServerRequestHandler","_ackHandler","_handleServerAck","_incomingStanzaHandler","_enabledHandler","_handleEnabled","_resumeFailedHandler","_handleResumeFailed","_resumedHandler","_handleResumed","_increaseSentStanzasCounter","firstElementChild","handledCount","_handleAcknowledgedStanzas","_increaseReceivedStanzasCounter","_answerProcessedStanzas","reportedHandledCount","lastKnownHandledCount","delta","_throwError","scope","Timeout","clearFn","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","MessageChannel","port1","port2","removeChild","toIntIfInt","parseReg","needsBlank","keyLocation","rawName","attachProperties","validLine","paramReducer","acc","expr","scid","formatRegExp","formatStr","makeLine","defaultOuterOrder","defaultInnerOrder","outerOrder","innerOrder","transformUtils","parseSsrcs","writeSsrcs","processVideo","validateDescription","_parseSimLayers","_buildNewToOldSsrcMap","newSsrcList","oldSsrcList","newSsrc","oldSsrc","_fillInSourceDataFromCache","newSimSsrcs","newMsid","newCname","ssrcsToReplace","ssrcsToAdd","_generateSourceData","addAssociatedStream","simSsrcs","simSsrc","_restoreSimulcast","simulcastSsrcs","relatedGroup","relatedSsrcs","relatedSSRC","simulcastGroup","nuke","implodeRemoteSimulcast","invalid","assertGoogConference","xGoogleFlag","removeGoogConference","Word","TranscriptionService","sphinxURL","toReturn","getURL","audioFileBlob","DONE","formatResponse","objects","filler","verify","getWord","getBeginTime","getEndTime","audioBlob","logDisabled_","deprecationWarnings_","extractVersion","uastring","wrapPeerConnectionEvent","eventNameToWrap","nativeAddEventListener","nativeEventName","modifiedEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","disableLog","bool","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","supportsUnifiedPlan","val","compactObject","isEmptyObject","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackStat","walkStats","resultSet","shimGetUserMedia","browserDetails","constraintsToChrome_","cc","exact","oldname_","oc","mix","advanced","shimConstraints_","remap","face","getSupportedFacingModeLies","getSupportedConstraints","dev","shimError_","PermissionDeniedError","PermissionDismissedError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","origGetUserMedia","DOMException","shimGetDisplayMedia","getSourceId","widthSpecified","heightSpecified","frameRateSpecified","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","origSetRemoteDescription","_ontrackpoly","te","shimGetSendersWithDtmf","shimSenderWithDtmf","_dtmf","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","origRemoveStream","origGetSenders","shimGetStats","origGetStats","onSucc","onErr","fixChromeStats_","standardReport","standardStats","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","_shimmedLocalStreams","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","replaceInternalStreamId","internalId","externalStream","internalStream","replaceExternalStreamId","alreadyExists","oldStream","methodObj","origSetLocalDescription","origLocalDescription","getOwnPropertyDescriptor","streamid","shimPeerConnection","addIceCandidateNullSupported","nativeAddIceCandidate","fixNegotiationNeeded","origMSTEnabled","RTCDtmfSender","RTCDTMFSender","RTCPeerConnectionShim","shimRTCPeerConnection","validTurn","shimReplaceTrack","setTrack","nativeGetUserMedia","nativeGetSettings","nativeApplyConstraints","preferredMediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","maxFramerate","shimCreateOffer","origCreateOffer","finally","shimCreateAnswer","origCreateAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","newIceServers","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","audioTransceiver","setDirection","videoTransceiver","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","shimMaxMessageSize","_sctp","sctpInDescription","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","dc","origDataChannelSend","origCreateDataChannel","dataChannel","shimConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","newEvent","removeAllowExtmapMixed","nativeSRD","adapter","shimChrome","shimFirefox","shimEdge","shimSafari","commonShim","chromeShim","browserShim","firefoxShim","edgeShim","safariShim","adapterFactory"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAqB,YAAID,IAEzBD,EAAkB,YAAIC,IARxB,CASGK,QAAQ,WACX,O,YCTE,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUP,QAGnC,IAAIC,EAASI,EAAiBE,GAAY,CACzCC,EAAGD,EACHE,GAAG,EACHT,QAAS,IAUV,OANAU,EAAQH,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOQ,GAAI,EAGJR,EAAOD,QA0Df,OArDAM,EAAoBM,EAAIF,EAGxBJ,EAAoBO,EAAIR,EAGxBC,EAAoBQ,EAAI,SAASd,EAASe,EAAMC,GAC3CV,EAAoBW,EAAEjB,EAASe,IAClCG,OAAOC,eAAenB,EAASe,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEV,EAAoBgB,EAAI,SAAStB,GACX,oBAAXuB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAenB,EAASuB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAenB,EAAS,aAAc,CAAEyB,OAAO,KAQvDnB,EAAoBoB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQnB,EAAoBmB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAxB,EAAoBgB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOnB,EAAoBQ,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRvB,EAAoB2B,EAAI,SAAShC,GAChC,IAAIe,EAASf,GAAUA,EAAO2B,WAC7B,WAAwB,OAAO3B,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAK,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG7B,EAAoBgC,EAAI,GAIjBhC,EAAoBA,EAAoBiC,EAAI,K,gBCuNrDtC,EAAOD,QAzSY,CAIfwC,yBAA0B,gCAI1BC,qBAAsB,4BACtBC,wBAAyB,+BACzBC,YAAa,mBAKbC,cAAe,2BAIfC,cAAe,2BAMfC,WAAY,wBACZC,oBAAqB,2BAGrBC,8BAA+B,qCAK/BC,uBAAwB,4BAIxBC,kBAAmB,yBAInBC,uBAAwB,8BAIxBC,oBAAqB,2BAIrBC,sBAAuB,6BAKvBC,0BAA2B,iCAI3BC,qBAAsB,4BAKtBC,gBAAiB,uBAKjBC,kBAAmB,yBACnBC,SAAU,gBACVC,mBAAoB,0BACpBC,WAAY,kBACZC,kBAAmB,yBAMnBC,eAAgB,qBAMhBC,oBAAqB,0BAWrBC,OAAQ,cAGRC,mBAAoB,yBAKpBC,eAAgB,sBAIhBC,iBAAkB,wBAIlBC,wBAAyB,+BAIzBC,yBAA0B,gCAG1BC,4BAA6B,mCAG7BC,cAAe,qBAGfC,WAAY,kBAGZC,kBAAmB,yBAGnBC,gBAAiB,uBAGjBC,wBAAyB,+BAGzBC,yBAA0B,gCAG1BC,sBAAuB,6BAGvBC,kBAAmB,yBAGnBC,SAAU,gBAIVC,iBAAkB,wBAGlBC,iBAAkB,wBAGlBC,yBAA0B,gCAI1BC,wBAAyB,mBAIzBC,wBAAyB,mBAMzBC,+BAAgC,kBAKhCC,4BAA6B,mCAC7BC,kBAAmB,yBAKnBC,qBAAsB,gCACtBC,kBAAmB,yBACnBC,gBAAiB,uBACjBC,iBAAkB,wBAGlBC,cAAe,qBAKfC,uBAAwB,4BAIxBC,aAAc,oBAKdC,qBAAsB,4BACtBC,kBAAmB,8BACnBC,mBAAoB,0BACpBC,+BAAgC,sCAChCC,gBAAiB,uBACjBC,gCAAiC,uCAKjCC,qBAAsB,4BAGtBC,qBAAsB,4BAItBC,6BAA8B,oCAY9BC,uBAAwB,8BAKxBC,uBAAwB,8BAKxBC,8BAA+B,qCAI/BC,uBAAwB,8BAIxBC,gBAAiB,uBAIjBC,iBAAkB,wBAQlBC,6BAA8B,oCAK9BC,eAAgB,4BAQhBC,kCAAmC,qCAUnCC,mCACI,qCAIJC,6BAA8B,oCAM9BC,sBAAuB,+B,6BCtS3B,y4FAQO,MAAMC,EAA2B,uCAK3BC,EAAsB,iCAOtBC,EAA6B,sCAK7BC,EAAmB,mBAKnBC,EAAoB,oBAMpBC,EAAoB,oBAKpBC,EAAkB,kBAOlBzE,EAAyB,mCAOzBE,EAAyB,mCAMzBC,EAAsB,gCAKtBuE,EAAsB,+BAKtBpE,EAAuB,gCAKvBqE,EAA2B,6BAK3BC,EAA+B,8BAK/BC,EAAuB,gCAMvBC,EAA4B,uCAgB5BC,EAAgB,0BAMhBhE,EAAS,oBAOTiE,EAAqB,gCAUrBC,EAA2B,mCAK3BC,EAAqB,gCAOrBC,EAAwB,mCAOxBC,EAAyB,mCAOzBC,EAAgC,0CAQhCC,EAAuB,gCAKvBpE,EAAmB,6BAKnBqE,EAAiB,4BAKjBC,EAAY,uBAKZpE,EAA2B,oCAgB3BqE,EACP,6CAKOpD,EACP,yCAMOqD,EACP,0CAOOC,EAAa,uBAKbpD,EAAuB,gCAMvBqD,EAAqB,+BAKrBhD,EAAyB,kCAMzBmB,EACP,2CAWOC,EACP,2CAKO6B,EACP,wCAKOC,EAAgB,2BAKhBnC,EAAkB,4BAKlBC,EAAmB,6BAKnBmC,EAAmB,8BAQnBC,EAAc,wBAKdC,EAA4B,gCAO5BC,EAAqB,8BAQrBC,EAAgB,0BAQhBtC,EACP,wCAMOuC,EAAc,wBAKdC,EAAY,sBAKZC,EAAoB,yBAKpBC,GAAsB,2BAKtBC,GAAmB,8BAKnBC,GAAoB,8BAKpBC,GAAqB,+BAKrBC,GAAkB,6B,iBCzW9B,gBAAkB7J,IAIX,WAAc,aAEV,IAAI8J,OAA8B,IAAXC,EAAyBA,EACpB,oBAATC,KAAuBA,KACZ,oBAAX3J,OAAyBA,OAAS,GAErD,SAAS4J,EAAQC,GAWf,OATED,EADoB,mBAAXzI,QAAoD,iBAApBA,OAAO2I,SACtC,SAAUD,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAX1I,QAAyB0I,EAAIE,cAAgB5I,QAAU0I,IAAQ1I,OAAOa,UAAY,gBAAkB6H,IAI9GA,GAGjB,SAASG,EAAmBC,GAC1B,OAGF,SAA4BA,GAC1B,GAAIC,MAAMC,QAAQF,GAAM,CACtB,IAAK,IAAI7J,EAAI,EAAGgK,EAAO,IAAIF,MAAMD,EAAII,QAASjK,EAAI6J,EAAII,OAAQjK,IAAKgK,EAAKhK,GAAK6J,EAAI7J,GAEjF,OAAOgK,GAPFE,CAAmBL,IAW5B,SAA0BM,GACxB,GAAIpJ,OAAO2I,YAAYhJ,OAAOyJ,IAAkD,uBAAzCzJ,OAAOkB,UAAUwI,SAASjK,KAAKgK,GAAgC,OAAOL,MAAMO,KAAKF,GAZtFG,CAAiBT,IAerD,WACE,MAAM,IAAIU,UAAU,mDAhBuCC,GAoC7D,IAAIC,EAAW,SAAkBC,EAAGC,GAClC,IAAIC,GAAW,MAAJF,IAAmB,MAAJC,GAE1B,OADWD,GAAK,KAAOC,GAAK,KAAOC,GAAO,KAC5B,GAAW,MAANA,GAejBC,EAAW,SAAkBC,GAC/B,GAAmB,iBAARA,EACT,MAAM,IAAIC,MAAM,oCAKlB,IAFA,IAAIC,EAAM,GAEDhL,EAAI,EAAGA,EAAiB,EAAb8K,EAAIb,OAAYjK,GAAK,EACvCgL,EAAIhL,GAAK,KAA+B,IAAxB8K,EAAIG,WAAWjL,EAAI,KAAaA,EAAI,GAGtD,OAAOgL,GAoCLE,EAAU,SAAiBC,EAAGC,EAAGC,EAAGX,EAAG3I,EAAGb,GAC5C,OAAOuJ,GAxDsBa,EAwDLb,EAASA,EAASW,EAAGD,GAAIV,EAASC,EAAGxJ,OAxD3BqK,EAwDgCxJ,GAvD9CuJ,IAAQ,GAAKC,EAuDqCF,GAxD1D,IAAiBC,EAAKC,GA2DhCC,EAAS,SAAgBJ,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAG3I,EAAGb,GAC7C,OAAOgK,EAAQG,EAAIhL,GAAKgL,EAAI/K,EAAG8K,EAAGC,EAAGX,EAAG3I,EAAGb,IAGzCuK,EAAS,SAAgBL,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAG3I,EAAGb,GAC7C,OAAOgK,EAAQG,EAAI/K,EAAID,GAAKC,EAAG8K,EAAGC,EAAGX,EAAG3I,EAAGb,IAGzCwK,EAAS,SAAgBN,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAG3I,EAAGb,GAC7C,OAAOgK,EAAQG,EAAIhL,EAAIC,EAAG8K,EAAGC,EAAGX,EAAG3I,EAAGb,IAGpCyK,EAAS,SAAgBP,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAG3I,EAAGb,GAC7C,OAAOgK,EAAQ7K,GAAKgL,GAAK/K,GAAI8K,EAAGC,EAAGX,EAAG3I,EAAGb,IAOvC0K,EAAW,SAAkBlB,EAAGmB,GAElCnB,EAAEmB,GAAO,IAAM,KAAQA,EAAM,GAC7BnB,EAA0B,IAAvBmB,EAAM,KAAO,GAAK,IAAWA,EAOhC,IANA,IAIIC,EAAMC,EAAMC,EAAMC,EAJlBb,EAAI,WACJC,GAAK,UACLhL,GAAK,WACLC,EAAI,UAGCN,EAAI,EAAGA,EAAI0K,EAAET,OAAQjK,GAAK,GACjC8L,EAAOV,EACPW,EAAOV,EACPW,EAAO3L,EACP4L,EAAO3L,EACP8K,EAAII,EAAOJ,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,WACrCM,EAAIkL,EAAOlL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,IAAK,WACtCK,EAAImL,EAAOnL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,GAAI,WACrCqL,EAAIG,EAAOH,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,YACtCoL,EAAII,EAAOJ,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,WACrCM,EAAIkL,EAAOlL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,GAAI,YACrCK,EAAImL,EAAOnL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,IAAK,YACtCqL,EAAIG,EAAOH,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,UACtCoL,EAAII,EAAOJ,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,EAAG,YACpCM,EAAIkL,EAAOlL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,IAAK,YACtCK,EAAImL,EAAOnL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,IAAK,OACvCqL,EAAIG,EAAOH,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,IAAK,IAAK,YACvCoL,EAAII,EAAOJ,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,IAAK,EAAG,YACrCM,EAAIkL,EAAOlL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,IAAK,IAAK,UACvCK,EAAImL,EAAOnL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,IAAK,YACvCqL,EAAIG,EAAOH,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,IAAK,GAAI,YACtCoL,EAAIK,EAAOL,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,WACrCM,EAAImL,EAAOnL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,GAAI,YACrCK,EAAIoL,EAAOpL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,GAAI,WACtCqL,EAAII,EAAOJ,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,WACtCoL,EAAIK,EAAOL,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,WACrCM,EAAImL,EAAOnL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,IAAK,EAAG,UACrCK,EAAIoL,EAAOpL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,IAAK,WACvCqL,EAAII,EAAOJ,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,WACtCoL,EAAIK,EAAOL,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,EAAG,WACpCM,EAAImL,EAAOnL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,IAAK,GAAI,YACtCK,EAAIoL,EAAOpL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,IAAK,WACtCqL,EAAII,EAAOJ,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,GAAI,YACrCoL,EAAIK,EAAOL,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,IAAK,GAAI,YACtCM,EAAImL,EAAOnL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,GAAI,UACrCK,EAAIoL,EAAOpL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,GAAI,YACrCqL,EAAII,EAAOJ,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,IAAK,IAAK,YACvCoL,EAAIM,EAAON,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,QACrCM,EAAIoL,EAAOpL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,IAAK,YACtCK,EAAIqL,EAAOrL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,GAAI,YACtCqL,EAAIK,EAAOL,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,IAAK,IAAK,UACvCoL,EAAIM,EAAON,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,YACrCM,EAAIoL,EAAOpL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,GAAI,YACrCK,EAAIqL,EAAOrL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,IAAK,WACtCqL,EAAIK,EAAOL,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,IAAK,IAAK,YACvCoL,EAAIM,EAAON,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,IAAK,EAAG,WACrCM,EAAIoL,EAAOpL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,IAAK,WACtCK,EAAIqL,EAAOrL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,IAAK,WACtCqL,EAAIK,EAAOL,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,GAAI,UACrCoL,EAAIM,EAAON,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,WACrCM,EAAIoL,EAAOpL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,IAAK,IAAK,WACvCK,EAAIqL,EAAOrL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,GAAI,WACtCqL,EAAIK,EAAOL,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,WACtCoL,EAAIO,EAAOP,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,WACrCM,EAAIqL,EAAOrL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,GAAI,YACrCK,EAAIsL,EAAOtL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,IAAK,YACvCqL,EAAIM,EAAON,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,UACtCoL,EAAIO,EAAOP,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,IAAK,EAAG,YACrCM,EAAIqL,EAAOrL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,GAAI,IAAK,YACtCK,EAAIsL,EAAOtL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,IAAK,IAAK,SACvCqL,EAAIM,EAAON,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,YACtCoL,EAAIO,EAAOP,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,EAAG,YACpCM,EAAIqL,EAAOrL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,IAAK,IAAK,UACvCK,EAAIsL,EAAOtL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,IAAK,YACtCqL,EAAIM,EAAON,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,IAAK,GAAI,YACtCoL,EAAIO,EAAOP,EAAGC,EAAGhL,EAAGC,EAAGoK,EAAE1K,EAAI,GAAI,GAAI,WACrCM,EAAIqL,EAAOrL,EAAG8K,EAAGC,EAAGhL,EAAGqK,EAAE1K,EAAI,IAAK,IAAK,YACvCK,EAAIsL,EAAOtL,EAAGC,EAAG8K,EAAGC,EAAGX,EAAE1K,EAAI,GAAI,GAAI,WACrCqL,EAAIM,EAAON,EAAGhL,EAAGC,EAAG8K,EAAGV,EAAE1K,EAAI,GAAI,IAAK,WACtCoL,EAAIX,EAASW,EAAGU,GAChBT,EAAIZ,EAASY,EAAGU,GAChB1L,EAAIoK,EAASpK,EAAG2L,GAChB1L,EAAImK,EAASnK,EAAG2L,GAGlB,MAAO,CAACb,EAAGC,EAAGhL,EAAGC,IASf4L,EAAM,CACRC,UAAW,SAAmBpK,GAC5B,OAvIW,SAAkBqK,GAI/B,IAHA,IACItB,EAAM,GAED9K,EAAI,EAAGA,EAAsB,EAAlBoM,EAASnC,OAAYjK,IACvC8K,GAJY,mBAIGuB,OAAOD,EAASpM,GAAK,IAAMA,EAAI,EAAI,EAAI,EAAI,IAJ9C,mBAI6DqM,OAAOD,EAASpM,GAAK,IAAMA,EAAI,EAAI,EAAI,IAGlH,OAAO8K,EA+HEwB,CAASV,EAASf,EAAS9I,GAAe,EAAXA,EAAEkI,UAE1CsC,KAAM,SAAcxK,GAClB,OAxJW,SAAkBiJ,GAG/B,IAFA,IAAIF,EAAM,GAED9K,EAAI,EAAGA,EAAiB,GAAbgL,EAAIf,OAAajK,GAAK,EACxC8K,GAAO0B,OAAOC,aAAazB,EAAIhL,GAAK,KAAOA,EAAI,GAAK,KAGtD,OAAO8K,EAiJE4B,CAASd,EAASf,EAAS9I,GAAe,EAAXA,EAAEkI,WAoB5C,SAAS0C,EAAUjC,EAAGmB,GAEpBnB,EAAEmB,GAAO,IAAM,KAAQ,GAAKA,EAAM,GAClCnB,EAAyB,IAAtBmB,EAAM,IAAM,GAAK,IAAWA,EAC/B,IAMI7L,EAAG4M,EAAG1L,EAAG4K,EAAMC,EAAMC,EAAMC,EAAMY,EANjCC,EAAI,IAAIhD,MAAM,IACdsB,EAAI,WACJC,GAAK,UACLhL,GAAK,WACLC,EAAI,UACJyM,GAAK,WAGT,IAAK/M,EAAI,EAAGA,EAAI0K,EAAET,OAAQjK,GAAK,GAAI,CAOjC,IANA8L,EAAOV,EACPW,EAAOV,EACPW,EAAO3L,EACP4L,EAAO3L,EACPuM,EAAOE,EAEFH,EAAI,EAAGA,EAAI,GAAIA,IAEhBE,EAAEF,GADAA,EAAI,GACClC,EAAE1K,EAAI4M,GAENI,EAAIF,EAAEF,EAAI,GAAKE,EAAEF,EAAI,GAAKE,EAAEF,EAAI,IAAME,EAAEF,EAAI,IAAK,GAG1D1L,EAAI+L,EAAWA,EAAWD,EAAI5B,EAAG,GAAI8B,EAAQN,EAAGvB,EAAGhL,EAAGC,IAAK2M,EAAWA,EAAWF,EAAGD,EAAEF,IAAKO,EAAQP,KACnGG,EAAIzM,EACJA,EAAID,EACJA,EAAI2M,EAAI3B,EAAG,IACXA,EAAID,EACJA,EAAIlK,EAGNkK,EAAI6B,EAAW7B,EAAGU,GAClBT,EAAI4B,EAAW5B,EAAGU,GAClB1L,EAAI4M,EAAW5M,EAAG2L,GAClB1L,EAAI2M,EAAW3M,EAAG2L,GAClBc,EAAIE,EAAWF,EAAGF,GAGpB,MAAO,CAACzB,EAAGC,EAAGhL,EAAGC,EAAGyM,GAQtB,SAASG,EAAQhM,EAAGmK,EAAGhL,EAAGC,GACxB,OAAIY,EAAI,GACCmK,EAAIhL,GAAKgL,EAAI/K,EAGlBY,EAAI,GACCmK,EAAIhL,EAAIC,EAGbY,EAAI,GACCmK,EAAIhL,EAAIgL,EAAI/K,EAAID,EAAIC,EAGtB+K,EAAIhL,EAAIC,EAOjB,SAAS6M,EAAQjM,GACf,OAAOA,EAAI,GAAK,WAAaA,EAAI,GAAK,WAAaA,EAAI,IAAM,YAAc,UAO7E,SAASkM,EAAe7L,EAAK8L,GAC3B,IAAIC,EAAOC,EAAShM,GAEhB+L,EAAKrD,OAAS,KAChBqD,EAAOX,EAAUW,EAAmB,EAAb/L,EAAI0I,SAM7B,IAHA,IAAIuD,EAAO,IAAI1D,MAAM,IACjB2D,EAAO,IAAI3D,MAAM,IAEZ9J,EAAI,EAAGA,EAAI,GAAIA,IACtBwN,EAAKxN,GAAe,UAAVsN,EAAKtN,GACfyN,EAAKzN,GAAe,WAAVsN,EAAKtN,GAGjB,IAAIuM,EAAOI,EAAUa,EAAKE,OAAOH,EAASF,IAAQ,IAAoB,EAAdA,EAAKpD,QAC7D,OAAO0C,EAAUc,EAAKC,OAAOnB,GAAO,KAQtC,SAASU,EAAWvC,EAAGC,GACrB,IAAIC,GAAW,MAAJF,IAAmB,MAAJC,GAE1B,OADWD,GAAK,KAAOC,GAAK,KAAOC,GAAO,KAC5B,GAAW,MAANA,EAOrB,SAASoC,EAAI1B,EAAKC,GAChB,OAAOD,GAAOC,EAAMD,IAAQ,GAAKC,EAQnC,SAASgC,EAASzC,GAIhB,IAHA,IAAIE,EAAM,GAGDhL,EAAI,EAAGA,EAAiB,EAAb8K,EAAIb,OAAYjK,GAAK,EACvCgL,EAAIhL,GAAK,KAHA,IAGO8K,EAAIG,WAAWjL,EAAI,KAAc,GAAKA,EAAI,GAG5D,OAAOgL,EAOT,SAAS2C,EAASvB,GAKhB,IAJA,IAEIwB,EAAShB,EADT9B,EAAM,GAGD9K,EAAI,EAAGA,EAAsB,EAAlBoM,EAASnC,OAAYjK,GAAK,EAG5C,IAFA4N,GAAWxB,EAASpM,GAAK,IAAM,GAAK,EAAIA,EAAI,GAAK,MAAS,IAAMoM,EAASpM,EAAI,GAAK,IAAM,GAAK,GAAKA,EAAI,GAAK,GAAK,MAAS,EAAIoM,EAASpM,EAAI,GAAK,IAAM,GAAK,GAAKA,EAAI,GAAK,GAAK,IAExK4M,EAAI,EAAGA,EAAI,EAAGA,IACT,EAAJ5M,EAAY,EAAJ4M,EAA0B,GAAlBR,EAASnC,OAC3Ba,GAAO,IAEPA,GAXI,mEAWOuB,OAAOuB,GAAW,GAAK,EAAIhB,GAAK,IAKjD,OAAO9B,EAOT,SAAS+C,EAAS7C,GAIhB,IAHA,IAAIF,EAAM,GAGD9K,EAAI,EAAGA,EAAiB,GAAbgL,EAAIf,OAAajK,GAAK,EACxC8K,GAAO0B,OAAOC,aAAazB,EAAIhL,GAAK,KAAO,GAAKA,EAAI,GAH3C,KAMX,OAAO8K,EAQT,IAAIgD,EAAO,CACTC,cAAe,SAAuBxM,EAAK8L,GACzC,OAAOM,EAASP,EAAe7L,EAAK8L,KAEtCW,SAAU,SAAkBjM,GAC1B,OAAO4L,EAAShB,EAAUY,EAASxL,GAAe,EAAXA,EAAEkI,UAE3C4D,SAAUA,EACVT,eAAgBA,EAChBa,cAAe,SAAuB1M,EAAK8L,GACzC,OAAOQ,EAAST,EAAe7L,EAAK8L,KAEtCa,SAAU,SAAkBnM,GAC1B,OAAO8L,EAASlB,EAAUY,EAASxL,GAAe,EAAXA,EAAEkI,WAIzCkE,EACQ,SAAkBrD,GAC1B,IAAI9K,EAAGK,EACH+N,EAAM,GACNvC,EAAMf,EAAIb,OAEd,IAAKjK,EAAI,EAAGA,EAAI6L,EAAK7L,KACnBK,EAAIyK,EAAIG,WAAWjL,KAEV,GAAUK,GAAK,IACtB+N,GAAOtD,EAAIuB,OAAOrM,GACTK,EAAI,MACb+N,GAAO5B,OAAOC,aAAa,IAAOpM,GAAK,GAAK,IAC5C+N,GAAO5B,OAAOC,aAAa,IAAOpM,GAAK,EAAI,IAC3C+N,GAAO5B,OAAOC,aAAa,IAAOpM,GAAK,EAAI,MAE3C+N,GAAO5B,OAAOC,aAAa,IAAOpM,GAAK,EAAI,IAC3C+N,GAAO5B,OAAOC,aAAa,IAAOpM,GAAK,EAAI,KAI/C,OAAO+N,GArBPD,EAuBU,SAAoBE,GAsB9B,IAAK,IAAIC,KAFTD,EAAUA,GAAW,GAGnB,GAAI3N,OAAOkB,UAAUC,eAAe1B,KAAKkO,EAASC,GAAa,CAC7D,IAAIC,EAAU,GACVC,EAAS,GACTC,EAAO,GACPC,EAAYL,EAAQC,GACpBK,EAA+B,WAAvBnF,EAAQkF,GAChBE,EAAcC,OAAOC,SAASH,EAAQD,EAAUzN,MAAQyN,IAExDC,IACFJ,EAAUG,EAAUH,QAAU,YAAcG,EAAUH,QAAU,GAChEC,EAASE,EAAUF,OAAS,WAAaE,EAAUF,OAAS,GAC5DC,EAAOC,EAAUD,KAAO,SAAWC,EAAUD,KAAO,IAGtDM,SAASC,OAASV,EAAa,IAAMM,EAAcL,EAAUC,EAASC,IAkB9E,SAASQ,EAAO1O,EAAM2O,GACpB,OAAO,IAAIC,EAAQC,QAAQ7O,EAAM2O,GA2BnC,SAASG,EAAIH,GACX,OAAO,IAAIC,EAAQC,QAAQ,KAAMF,GAanC,SAASI,EAAMJ,GACb,OAAO,IAAIC,EAAQC,QAAQ,WAAYF,GAWzC,IAAIC,EAAU,CAEZI,QAAS,YAqBTC,GAAI,CACFC,SAAU,sCACVC,KAAM,iBACNC,OAAQ,gBACRC,KAAM,iBACNC,OAAQ,mBACRC,QAAS,oBACTC,WAAY,wCACZC,YAAa,yCACbC,IAAK,iCACLC,KAAM,mCACNC,OAAQ,mCACRC,QAAS,sCACTC,KAAM,mCACNC,QAAS,sCACTf,QAAS,oBACTgB,QAAS,sCACTC,SAAU,sCACVC,MAAO,gCASTA,MAAO,CACLC,KAAM,CAAC,IAAK,aAAc,KAAM,OAAQ,KAAM,MAAO,KAAM,KAAM,IAAK,OAAQ,SAAU,KAAM,QAC9FC,WAAY,CACV,EAAK,CAAC,QACN,WAAc,CAAC,SACf,GAAM,GACN,KAAQ,CAAC,SACT,GAAM,GACN,IAAO,CAAC,MAAO,MAAO,QAAS,SAAU,SACzC,GAAM,CAAC,SACP,GAAM,CAAC,SACP,EAAK,CAAC,SACN,KAAQ,CAAC,SACT,OAAU,GACV,GAAM,CAAC,SACP,KAAQ,IAEVC,IAAK,CAAC,mBAAoB,QAAS,cAAe,YAAa,aAAc,cAAe,cAAe,eAAgB,aAAc,mBASzIC,SAAU,SAAkBC,GAC1B,IAAK,IAAI9Q,EAAI,EAAGA,EAAImP,EAAQsB,MAAMC,KAAKzG,OAAQjK,IAC7C,GAAI8Q,IAAQ3B,EAAQsB,MAAMC,KAAK1Q,GAC7B,OAAO,EAIX,OAAO,GAUT+Q,eAAgB,SAAwBD,EAAKE,GAC3C,QAA6C,IAAlC7B,EAAQsB,MAAME,WAAWG,IAAwB3B,EAAQsB,MAAME,WAAWG,GAAK7G,OAAS,EACjG,IAAK,IAAIjK,EAAI,EAAGA,EAAImP,EAAQsB,MAAME,WAAWG,GAAK7G,OAAQjK,IACxD,GAAIgR,IAAc7B,EAAQsB,MAAME,WAAWG,GAAK9Q,GAC9C,OAAO,EAKb,OAAO,GAETiR,SAAU,SAAkBC,GAC1B,IAAK,IAAIlR,EAAI,EAAGA,EAAImP,EAAQsB,MAAMG,IAAI3G,OAAQjK,IAC5C,GAAIkR,IAAU/B,EAAQsB,MAAMG,IAAI5Q,GAC9B,OAAO,EAIX,OAAO,IAoBXmR,OAAQ,CACNC,MAAO,EACPC,WAAY,EACZC,SAAU,EACVC,eAAgB,EAChBC,SAAU,EACVC,UAAW,EACXC,aAAc,EACdC,cAAe,EACfC,SAAU,EACVC,SAAU,EACVC,YAAa,GACbC,aAAc,IAEhBC,eAAgB,CACdC,WAAY,aACZC,SAAU,WACVC,iBAAkB,6BAClBC,aAAc,eACdC,eAAgB,WAYlBC,SAAU,CACRC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNrB,MAAO,EACPsB,MAAO,GAUTC,YAAa,CACXC,OAAQ,EACRC,KAAM,EACNC,MAAO,EACPC,SAAU,IAiBZC,QAAS,IACTC,kBAAmB,GAcnBC,aAAc,SAAsB3S,EAAMU,GACxCkO,EAAQK,GAAGjP,GAAQU,GAiBrBkS,aAAc,SAAsBC,EAAMC,EAAUC,GAClD,IAAK,IAAItT,EAAI,EAAGA,EAAIoT,EAAKG,WAAWtJ,OAAQjK,IAAK,CAC/C,IAAIwT,EAAYJ,EAAKG,WAAWvT,GAE5BwT,EAAUC,WAAatE,EAAQwD,YAAYC,QAAYS,IAAYK,KAAKC,WAAWH,EAAWH,IAChGC,EAAKE,KAkBXG,WAAY,SAAoBC,EAAIrT,GAClC,OAAOqT,EAAGC,UAAYtT,GAOxBuT,cAAe,KAMfC,eAAgB,WACd,IAAIC,EAWJ,YAP+CC,IAA3ClF,SAASmF,eAAeC,gBAAgCpF,SAASmF,eAAeC,gBAAkBpF,SAASqF,cAAgBrF,SAASqF,aAAe,IACrJJ,EAAMN,KAAKW,gBACPC,YAAYN,EAAIO,cAAc,YAElCP,EAAMjF,SAASmF,eAAeC,eAAe,gBAAiB,UAAW,MAGpEH,GASTQ,aAAc,WAKZ,OAJKrF,EAAQ2E,gBACX3E,EAAQ2E,cAAgB3E,EAAQ4E,kBAG3B5E,EAAQ2E,eAWjBO,aAAc,WAIZ,IAHA,IAAIL,EAAM,KACNS,EAAa,CAAC,yBAA0B,yBAA0B,yBAA0B,yBAA0B,qBAAsB,oBAAqB,oBAE5JnU,EAAI,EAAGA,EAAImU,EAAWxK,QACjB,OAAR+J,EADiC1T,IAEnC,IACE0T,EAAM,IAAIU,cAAcD,EAAWnU,IACnC,MAAOyM,GACPiH,EAAM,KAOZ,OAAOA,GAqBTW,WAAY,SAAoBpU,GAC9B,IAAKA,EACH,OAAO,KAMT,IAHA,IAAIqU,EAAOzF,EAAQqF,eAAeD,cAAchU,GAGvC6K,EAAI,EAAGA,EAAIyJ,UAAU5K,OAAQmB,IAAK,CACzC,IAAI0J,EAAMD,UAAUzJ,GAEpB,GAAK0J,EAIL,GAAmB,iBAARA,GAAmC,iBAARA,EACpCF,EAAKN,YAAYnF,EAAQ4F,YAAYD,SAChC,GAAqB,WAAjBtL,EAAQsL,IAAyC,mBAAbA,EAAIE,KACjD,IAAK,IAAIhV,EAAI,EAAGA,EAAI8U,EAAI7K,OAAQjK,IAAK,CACnC,IAAIiV,EAAOH,EAAI9U,GAEO,WAAlBwJ,EAAQyL,IAA2C,mBAAdA,EAAKD,WAAmCf,IAAZgB,EAAK,IAAgC,OAAZA,EAAK,IACjGL,EAAKM,aAAaD,EAAK,GAAIA,EAAK,SAG/B,GAAqB,WAAjBzL,EAAQsL,GACjB,IAAK,IAAIK,KAAKL,EACRpU,OAAOkB,UAAUC,eAAe1B,KAAK2U,EAAKK,SAAiBlB,IAAXa,EAAIK,IAA+B,OAAXL,EAAIK,IAC9EP,EAAKM,aAAaC,EAAGL,EAAIK,IAMjC,OAAOP,GAYTQ,UAAW,SAAmBC,GAM5B,OADAA,GADAA,GADAA,GADAA,GADAA,EAAOA,EAAKC,QAAQ,MAAO,UACfA,QAAQ,KAAM,SACdA,QAAQ,KAAM,SACdA,QAAQ,KAAM,WACdA,QAAQ,KAAM,WAa5BC,YAAa,SAAqBF,GAMhC,OADAA,GADAA,GADAA,GADAA,GADAA,EAAOA,EAAKC,QAAQ,UAAW,MACnBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,MACjBA,QAAQ,UAAW,MACnBA,QAAQ,UAAW,MAejCP,YAAa,SAAqBM,GAChC,OAAOlG,EAAQqF,eAAegB,eAAeH,IAY/CI,YAAa,SAAqBC,GAChC,IAAId,EAWJ,OATIe,UAEFf,GADa,IAAIe,WACHC,gBAAgBF,EAAM,cAEpCd,EAAO,IAAIF,cAAc,qBACpBmB,MAAQ,QACbjB,EAAKkB,QAAQJ,IAGRd,GAYTmB,QAAS,SAAiB3C,GACxB,IAAKA,EACH,OAAO,KAGT,IAAItI,EAAM,GAEqB,IAA3BsI,EAAKG,WAAWtJ,QAAgBmJ,EAAKK,WAAatE,EAAQwD,YAAYE,OACxE/H,GAAOsI,EAAK4C,WAGd,IAAK,IAAIhW,EAAI,EAAGA,EAAIoT,EAAKG,WAAWtJ,OAAQjK,IACtCoT,EAAKG,WAAWvT,GAAGyT,WAAatE,EAAQwD,YAAYE,OACtD/H,GAAOsI,EAAKG,WAAWvT,GAAGgW,WAI9B,OAAO7G,EAAQiG,UAAUtK,IAe3BmL,YAAa,SAAqB7C,GAChC,IAAIQ,EAEJ,GAAIR,EAAKK,WAAatE,EAAQwD,YAAYC,OAAQ,CAChDgB,EAAKzE,EAAQwF,WAAWvB,EAAKS,SAE7B,IAAK,IAAI7T,EAAI,EAAGA,EAAIoT,EAAKzC,WAAW1G,OAAQjK,IAC1C4T,EAAGsB,aAAa9B,EAAKzC,WAAW3Q,GAAGkW,SAAU9C,EAAKzC,WAAW3Q,GAAGiB,OAGlE,IAAK,IAAIkV,EAAK,EAAGA,EAAK/C,EAAKG,WAAWtJ,OAAQkM,IAC5CvC,EAAGU,YAAYnF,EAAQ8G,YAAY7C,EAAKG,WAAW4C,UAE5C/C,EAAKK,WAAatE,EAAQwD,YAAYE,OAC/Ce,EAAKzE,EAAQqF,eAAegB,eAAepC,EAAK4C,YAGlD,OAAOpC,GAeTwC,WAAY,SAAoBhD,GAC9B,IAAIQ,EAEJ,GAAIR,EAAKK,WAAatE,EAAQwD,YAAYC,OAAQ,CAChD,IAAI9B,EAAMsC,EAAK8C,SAASG,cAExB,GAAIlH,EAAQsB,MAAMI,SAASC,GACzB,IACE8C,EAAKzE,EAAQwF,WAAW7D,GAExB,IAAK,IAAI9Q,EAAI,EAAGA,EAAImP,EAAQsB,MAAME,WAAWG,GAAK7G,OAAQjK,IAAK,CAC7D,IAAIgR,EAAY7B,EAAQsB,MAAME,WAAWG,GAAK9Q,GAC1CiB,EAAQmS,EAAKkD,aAAatF,GAE9B,GAAI,MAAO/P,GAAqD,KAAVA,IAA0B,IAAVA,GAA6B,IAAVA,EASzF,GALkB,UAAd+P,GAA4C,WAAnBxH,EAAQvI,SAAgD,IAAlBA,EAAMsV,UACvEtV,EAAQA,EAAMsV,SAIE,UAAdvF,EAAuB,CAIzB,IAHA,IAAIJ,EAAM,GACN4F,EAAWvV,EAAMwV,MAAM,KAElB7J,EAAI,EAAGA,EAAI4J,EAASvM,OAAQ2C,IAAK,CACxC,IAAIqI,EAAOuB,EAAS5J,GAAG6J,MAAM,KACzBC,EAAUzB,EAAK,GAAGK,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,IAAIe,cAE9D,GAAIlH,EAAQsB,MAAMQ,SAASyF,GAAU,CACnC,IAAIC,EAAW1B,EAAK,GAAGK,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,IAC3D1E,EAAIgG,KAAKF,EAAU,KAAOC,IAI1B/F,EAAI3G,OAAS,IACfhJ,EAAQ2P,EAAIiG,KAAK,MACjBjD,EAAGsB,aAAalE,EAAW/P,SAG7B2S,EAAGsB,aAAalE,EAAW/P,GAI/B,IAAK,IAAI6V,EAAM,EAAGA,EAAM1D,EAAKG,WAAWtJ,OAAQ6M,IAC9ClD,EAAGU,YAAYnF,EAAQiH,WAAWhD,EAAKG,WAAWuD,KAEpD,MAAO/J,GAEP6G,EAAKzE,EAAQ4F,YAAY,QAEtB,CACLnB,EAAKzE,EAAQqF,eAAeuC,yBAE5B,IAAK,IAAIC,EAAM,EAAGA,EAAM5D,EAAKG,WAAWtJ,OAAQ+M,IAC9CpD,EAAGU,YAAYnF,EAAQiH,WAAWhD,EAAKG,WAAWyD,WAGjD,GAAI5D,EAAKK,WAAatE,EAAQwD,YAAYI,SAAU,CACzDa,EAAKzE,EAAQqF,eAAeuC,yBAE5B,IAAK,IAAIE,EAAM,EAAGA,EAAM7D,EAAKG,WAAWtJ,OAAQgN,IAC9CrD,EAAGU,YAAYnF,EAAQiH,WAAWhD,EAAKG,WAAW0D,UAE3C7D,EAAKK,WAAatE,EAAQwD,YAAYE,OAC/Ce,EAAKzE,EAAQ4F,YAAY3B,EAAK4C,YAGhC,OAAOpC,GAYTsD,WAAY,SAAoBtC,GAC9B,MAAoB,iBAATA,EACFA,EAGFA,EAAKU,QAAQ,aAAc,IAAIA,QAAQ,MAAO,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,MAAO,QAAQA,QAAQ,MAAO,QAAQA,QAAQ,MAAO,QAAQA,QAAQ,MAAO,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SAYjQ6B,aAAc,SAAsBvC,GAClC,MAAoB,iBAATA,EACFA,EAGFA,EAAKU,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,OAYrO8B,eAAgB,SAAwBC,GACtC,OAAIA,EAAIC,QAAQ,KAAO,EACd,KAGFD,EAAIZ,MAAM,KAAK,IAYxBc,iBAAkB,SAA0BF,GAC1C,IAAIG,EAAOrI,EAAQsI,kBAAkBJ,GAErC,GAAIG,EAAKF,QAAQ,KAAO,EACtB,OAAOE,EAEP,IAAIE,EAAQF,EAAKf,MAAM,KAEvB,OADAiB,EAAMC,OAAO,EAAG,GACTD,EAAMb,KAAK,MAatBe,mBAAoB,SAA4BP,GAC9C,IAAKA,EACH,OAAO,KAGT,IAAItV,EAAIsV,EAAIZ,MAAM,KAElB,OAAI1U,EAAEkI,OAAS,EACN,MAGTlI,EAAE4V,OAAO,EAAG,GACL5V,EAAE8U,KAAK,OAYhBY,kBAAmB,SAA2BJ,GAC5C,OAAOA,EAAMA,EAAIZ,MAAM,KAAK,GAAK,MAMnCoB,aAAc,SAAsB9K,QACX,IAAZA,EAAE+K,OACX3I,EAAQ4I,MAAMhL,EAAE+K,OAGd/K,EAAEiL,UACJ7I,EAAQ4I,MAAM,UAAYrE,KAAKuE,QAAU,IAAMlL,EAAEiL,UAAY,IAAMjL,EAAEmL,KAAO,MAAQnL,EAAExM,KAAO,KAAOwM,EAAEoL,SAC7FpL,EAAEqL,SACXjJ,EAAQ4I,MAAM,UAAYrE,KAAKuE,QAAU,IAAMlL,EAAEqL,SAAW,IAAMrL,EAAEsL,WAAa,MAAQtL,EAAExM,KAAO,KAAOwM,EAAEoL,SAE3GhJ,EAAQ4I,MAAM,UAAYhL,EAAEoL,UAiChCG,IAAK,SAAaC,EAAOC,GACnBD,IAAU7E,KAAKpB,SAASI,OAAqC,WAA5BlJ,EAAQ5J,OAAO6Y,UAAyD,mBAAzB7Y,OAAO6Y,QAAQC,OACjG9Y,OAAO6Y,QAAQC,MAAMF,IAUzBG,MAAO,SAAeH,GACpB9E,KAAK4E,IAAI5E,KAAKpB,SAASC,MAAOiG,IAShCI,KAAM,SAAcJ,GAClB9E,KAAK4E,IAAI5E,KAAKpB,SAASE,KAAMgG,IAS/BK,KAAM,SAAcL,GAClB9E,KAAK4E,IAAI5E,KAAKpB,SAASG,KAAM+F,IAS/BE,MAAO,SAAeF,GACpB9E,KAAK4E,IAAI5E,KAAKpB,SAASlB,MAAOoH,IAShCT,MAAO,SAAeS,GACpB9E,KAAK4E,IAAI5E,KAAKpB,SAASI,MAAO8F,IAYhCM,UAAW,SAAmB1F,GAC5B,IAAKA,EACH,OAAO,KAGgB,mBAAdA,EAAK2F,OACd3F,EAAOA,EAAK2F,QAGd,IAAIC,EAAQpP,EAAmBE,MAAMsJ,EAAKzC,WAAW1G,QAAQgP,QAAQC,KAAI,SAAUlZ,GACjF,OAAOoT,EAAKzC,WAAW3Q,GAAGkW,YAG5B8C,EAAMhE,OACN,IAAImE,EAASH,EAAMI,QAAO,SAAUhO,EAAG3J,GACrC,MAAO,GAAGiM,OAAOtC,EAAG,KAAKsC,OAAOjM,EAAG,MAAOiM,OAAOyB,EAAQiG,UAAUhC,EAAKzC,WAAW0I,aAAa5X,GAAGR,OAAQ,OAC1G,IAAIyM,OAAO0F,EAAK8C,WAEnB,GAAI9C,EAAKG,WAAWtJ,OAAS,EAAG,CAC9BkP,GAAU,IAEV,IAAK,IAAInZ,EAAI,EAAGA,EAAIoT,EAAKG,WAAWtJ,OAAQjK,IAAK,CAC/C,IAAIsZ,EAAQlG,EAAKG,WAAWvT,GAE5B,OAAQsZ,EAAM7F,UACZ,KAAKtE,EAAQwD,YAAYC,OAEvBuG,GAAUhK,EAAQ2J,UAAUQ,GAC5B,MAEF,KAAKnK,EAAQwD,YAAYE,KAEvBsG,GAAUhK,EAAQiG,UAAUkE,EAAMtD,WAClC,MAEF,KAAK7G,EAAQwD,YAAYG,MAEvBqG,GAAU,YAAcG,EAAMtD,UAAY,OAIhDmD,GAAU,KAAO/F,EAAK8C,SAAW,SAEjCiD,GAAU,KAGZ,OAAOA,GAOTI,WAAY,EAMZC,mBAAoB,GASpBC,oBAAqB,SAA6BlZ,EAAMmZ,GACtDvK,EAAQqK,mBAAmBjZ,GAAQmZ,GA8CvCvK,QAAkB,SAAU5O,EAAM2O,GAEnB,aAAT3O,GAAgC,YAATA,GAA+B,OAATA,IAC3C2O,IAAUA,EAAMyK,MAClBzK,EAAMyK,MAAQxK,EAAQK,GAAGG,OACfT,IACVA,EAAQ,CACNyK,MAAOxK,EAAQK,GAAGG,UAMxB+D,KAAKkG,SAAWzK,EAAQwF,WAAWpU,EAAM2O,GAEzCwE,KAAKkB,KAAOlB,KAAKkG,WAGnBzK,EAAQC,QAAQxN,UAAY,CAU1BmX,KAAM,WACJ,OAAOrF,KAAKkG,UAadxP,SAAU,WACR,OAAO+E,EAAQ2J,UAAUpF,KAAKkG,WAahCC,GAAI,WAEF,OADAnG,KAAKkB,KAAOlB,KAAKkB,KAAKkF,WACfpG,MAaTpU,KAAM,WAEJ,OADAoU,KAAKkB,KAAOlB,KAAKkG,SACVlG,MAeTxE,MAAO,SAAe6K,GACpB,IAAK,IAAI5E,KAAK4E,EACRrZ,OAAOkB,UAAUC,eAAe1B,KAAK4Z,EAAW5E,UAC7BlB,IAAjB8F,EAAU5E,GACZzB,KAAKkB,KAAKoF,gBAAgB7E,GAE1BzB,KAAKkB,KAAKM,aAAaC,EAAG4E,EAAU5E,KAK1C,OAAOzB,MAmBTrT,EAAG,SAAWE,EAAM2O,EAAOmG,GACzB,IAAIiE,EAAQnK,EAAQwF,WAAWpU,EAAM2O,EAAOmG,GAO5C,OANA3B,KAAKkB,KAAKN,YAAYgF,GAEF,iBAATjE,GAAqC,iBAATA,IACrC3B,KAAKkB,KAAO0E,GAGP5F,MAiBTuG,MAAO,SAAe7G,GACpB,IAAI8G,EACAC,EAAShL,EAAQqF,eAErB,IACE0F,OAAgCjG,IAAtBkG,EAAOC,WACjB,MAAOrN,GACPmN,GAAU,EAGZ,IAAIG,EAAUH,EAAUC,EAAOC,WAAWhH,GAAM,GAAQjE,EAAQ8G,YAAY7C,GAG5E,OAFAM,KAAKkB,KAAKN,YAAY+F,GACtB3G,KAAKkB,KAAOyF,EACL3G,MAeTxS,EAAG,SAAWmU,GACZ,IAAIiE,EAAQnK,EAAQ4F,YAAYM,GAEhC,OADA3B,KAAKkB,KAAKN,YAAYgF,GACf5F,MAcT4G,EAAG,SAAW5E,GACZ,IAAI6E,EAAWxL,SAASwF,cAAc,QAEtCgG,EAASC,UAAY9E,EAIrB,IAFA,IAAI+E,EAAQtL,EAAQiH,WAAWmE,GAExBE,EAAMlH,WAAWtJ,OAAS,GAC/ByJ,KAAKkB,KAAKN,YAAYmG,EAAMlH,WAAW,IAGzC,OAAOG,OAiCXvE,EAAQuL,QAAU,SAAUzC,EAAS5W,EAAId,EAAMoa,EAAMC,EAAIvQ,EAAMwQ,GAC7DnH,KAAKuE,QAAUA,EACfvE,KAAKrS,GAAKA,EACVqS,KAAKnT,KAAOA,EACZmT,KAAKiH,KAAOA,EACZjH,KAAKkH,GAAKA,EACVlH,KAAKmH,QAAUA,GAAW,CACxB,kBAAoB,EACpB,yBAA2B,GAGzBnH,KAAKmH,QAAQC,YACf3L,EAAQ0J,KAAK,yEACbnF,KAAKmH,QAAQE,iBAAmBrH,KAAKmH,QAAQC,iBACtCpH,KAAKmH,QAAQC,WAGlBpH,KAAKmH,QAAQE,iBACfrH,KAAKrJ,KAAOA,EAAO8E,EAAQsI,kBAAkBpN,GAAQ,KAErDqJ,KAAKrJ,KAAOA,EAIdqJ,KAAKsH,MAAO,GAGd7L,EAAQuL,QAAQ9Y,UAAY,CAY1BqZ,aAAc,SAAsB7H,GAClC,IAAI8H,EAAc9H,EAAKkD,aAAa,SAMpC,OAJI4E,GAAexH,KAAKmH,QAAQM,0BAC9BD,EAAcA,EAAYzE,MAAM,KAAK,IAGhCyE,GAYTE,eAAgB,SAAwBhI,GACtC,IAAIiI,EAAQ3H,KAER4H,GAAU,EAEd,OAAK5H,KAAKrS,KAGR8N,EAAQgE,aAAaC,EAAM,MAAM,SAAUA,GACrCiI,EAAMJ,aAAa7H,KAAUiI,EAAMha,KACrCia,GAAU,MAGPA,GAAW5H,KAAKuH,aAAa7H,KAAUM,KAAKrS,KAavDka,QAAS,SAAiBnI,GACxB,IAAI/I,EAAO+I,EAAKkD,aAAa,QAEzB5C,KAAKmH,QAAQE,mBACf1Q,EAAO8E,EAAQsI,kBAAkBpN,IAGnC,IAAImR,EAAYpI,EAAKkD,aAAa,QAElC,SAAI5C,KAAK0H,eAAehI,IAAWM,KAAKnT,OAAQ4O,EAAQwE,WAAWP,EAAMM,KAAKnT,OAAYmT,KAAKiH,OAAS7Q,MAAMC,QAAQ2J,KAAKiH,OAA0C,IAAlCjH,KAAKiH,KAAKrD,QAAQkE,GAAoBA,IAAc9H,KAAKiH,OAAYjH,KAAKkH,IAAMxH,EAAKkD,aAAa,QAAU5C,KAAKkH,IAASlH,KAAKrJ,MAAQA,IAASqJ,KAAKrJ,OAiB1RoR,IAAK,SAAarI,GAChB,IAAI+F,EAAS,KAEb,IACEA,EAASzF,KAAKuE,QAAQ7E,GACtB,MAAOrG,GAGP,MAFAoC,EAAQ0I,aAAa9K,GAEfA,EAGR,OAAOoM,GAST/O,SAAU,WACR,MAAO,aAAesJ,KAAKuE,QAAU,IAAMvE,KAAKnT,KAAO,IAAMmT,KAAKkH,GAAK,IAAMlH,KAAKrS,GAAK,OA6B3F8N,EAAQuM,aAAe,SAAUC,EAAQ1D,GACvCvE,KAAKiI,OAASA,EACdjI,KAAKuE,QAAUA,EACfvE,KAAKkI,YAAa,IAAIC,MAAOC,UAC7BpI,KAAKsH,MAAO,GAGd7L,EAAQuM,aAAa9Z,UAAY,CAQ/B6Z,IAAK,WAEH,OADA/H,KAAKkI,YAAa,IAAIC,MAAOC,UACtBpI,KAAKuE,WAMd8D,MAAO,WACLrI,KAAKkI,YAAa,IAAIC,MAAOC,WAS/B1R,SAAU,WACR,MAAO,kBAAoBsJ,KAAKuE,QAAU,IAAMvE,KAAKiI,OAAS,OA4JlExM,EAAQ6M,WAAa,SAAUC,EAASpB,GACtC,IAAIqB,EAASxI,KAGbA,KAAKuI,QAAUA,EAEfvI,KAAKmH,QAAUA,GAAW,GAC1B,IAAIsB,EAAQzI,KAAKmH,QAAQuB,UAAY,GAsDrC,IAAK,IAAIjH,KApDsB,IAA3B8G,EAAQ3E,QAAQ,QAA4C,IAA5B2E,EAAQ3E,QAAQ,SAAyC,IAAxB6E,EAAM7E,QAAQ,MACjF5D,KAAK2I,OAAS,IAAIlN,EAAQmN,UAAU5I,MAEpCA,KAAK2I,OAAS,IAAIlN,EAAQoN,KAAK7I,MAKjCA,KAAK2D,IAAM,GAGX3D,KAAKlF,OAAS,KAGdkF,KAAK8I,SAAW,KAEhB9I,KAAK+I,WAAa,GAClB/I,KAAKgJ,YAAa,EAClBhJ,KAAKiJ,SAAU,EAEfjJ,KAAKkJ,cAAgB,GACrBlJ,KAAKmJ,SAAW,GAChBnJ,KAAKoJ,aAAe,GACpBpJ,KAAKqJ,eAAiB,GACtBrJ,KAAKsJ,UAAY,GACjBtJ,KAAKuJ,YAAc,GACnBvJ,KAAKwJ,sBAAwB,CAC3B,KAAQ,GACR,UAAa,IAEfxJ,KAAKyJ,aAAe,KACpBzJ,KAAK0J,mBAAqB,KAC1B1J,KAAK2J,eAAgB,EACrB3J,KAAK4J,WAAY,EACjB5J,KAAK6J,eAAgB,EACrB7J,KAAK8J,mBAAoB,EACzB9J,KAAK+J,QAAS,EACd/J,KAAKgK,UAAW,EAChBhK,KAAKiK,MAAQ,GACbjK,KAAKkK,UAAY,EACjBlK,KAAKmK,sBAAwB,KAC7BnK,KAAKoK,sBAAwB,KAC7BpK,KAAKqK,wBAA0B,KAE/BrK,KAAKsK,WAAa,EAElBtK,KAAKyJ,aAAec,YAAW,WAC7B,OAAO/B,EAAOgC,YACb,KACH/P,EAAiBuF,KAAKmH,QAAQxM,SAC9BqF,KAAKyK,uBAAuBzK,KAAKmH,QAAQuD,YAE3BjP,EAAQqK,mBACpB,GAAI9Y,OAAOkB,UAAUC,eAAe1B,KAAKgP,EAAQqK,mBAAoBrE,GAAI,CACvE,IAAIkJ,EAAI,aAERA,EAAEzc,UAAYuN,EAAQqK,mBAAmBrE,GACzCzB,KAAKyB,GAAK,IAAIkJ,EACd3K,KAAKyB,GAAGmJ,KAAK5K,QAKnBvE,EAAQ6M,WAAWpa,UAAY,CAO7Bma,MAAO,WACLrI,KAAK2I,OAAOkC,SAGZ7K,KAAKgJ,YAAa,EAClBhJ,KAAKiJ,SAAU,EAEfjJ,KAAKkJ,cAAgB,GACrBlJ,KAAKmJ,SAAW,GAChBnJ,KAAKoJ,aAAe,GACpBpJ,KAAKqJ,eAAiB,GACtBrJ,KAAKsJ,UAAY,GACjBtJ,KAAKuJ,YAAc,GACnBvJ,KAAK2J,eAAgB,EACrB3J,KAAK4J,WAAY,EACjB5J,KAAK6J,eAAgB,EACrB7J,KAAKgK,UAAW,EAChBhK,KAAKiK,MAAQ,GACbjK,KAAK8K,UAAY,GACjB9K,KAAKkK,UAAY,GAYnBa,MAAO,WACL/K,KAAK+J,QAAS,GAQhBiB,OAAQ,WACNhL,KAAK+J,QAAS,GAyBhBkB,YAAa,SAAqBC,GAChC,IAAIC,EAAO,uCAAuCvJ,QAAQ,SAAS,SAAUjV,GAC3E,IAAIS,EAAoB,GAAhBge,KAAKC,SAAgB,EAE7B,OADc,MAAN1e,EAAYS,EAAQ,EAAJA,EAAU,GACzBsJ,SAAS,OAGpB,MAAsB,iBAAXwU,GAAyC,iBAAXA,EAChCC,EAAO,IAAMD,EAEbC,EAAO,IA0BlBG,wBAAyB,SAAiC5C,EAAU6C,EAAaC,GAC/ExL,KAAKwJ,sBAAsBd,GAAU6C,GAAeC,GA2CtDC,QAAS,SAAiB9H,EAAK+H,EAAMF,EAAUG,EAAMC,EAAMC,EAAOC,GAChE9L,KAAK2D,IAAMA,EAKX3D,KAAK+L,QAAUtQ,EAAQsI,kBAAkB/D,KAAK2D,KAK9C3D,KAAK8L,QAAUA,GAAWrQ,EAAQiI,eAAe1D,KAAK2D,KAKtD3D,KAAK0L,KAAOA,EAKZ1L,KAAKgM,SAAW,OAChBhM,KAAKiM,iBAAmBT,EACxBxL,KAAK6J,eAAgB,EACrB7J,KAAK4J,WAAY,EACjB5J,KAAK2J,eAAgB,EACrB3J,KAAKgK,UAAW,EAEhBhK,KAAKlF,OAASW,EAAQoI,iBAAiB7D,KAAK2D,KAE5C3D,KAAKkM,qBAAqBzQ,EAAQgC,OAAOE,WAAY,MAErDqC,KAAK2I,OAAOwD,SAASR,EAAMC,EAAMC,IA2BnCO,OAAQ,SAAgBzI,EAAK0I,EAAKC,EAAKd,EAAUG,EAAMC,EAAMW,GAC3D,KAAIvM,KAAK2I,kBAAkBlN,EAAQoN,MAE5B,CACL,IAAI7D,EAAQ,IAAI3N,MAAM,gEAEtB,MADA2N,EAAMnY,KAAO,sBACPmY,EAJNhF,KAAK2I,OAAO6D,QAAQ7I,EAAK0I,EAAKC,EAAKd,EAAUG,EAAMC,EAAMW,IAmC7DE,QAAS,SAAiB9I,EAAK6H,EAAUG,EAAMC,EAAMW,GACnD,IAAIvM,KAAK0M,2BAEF,CACL,IAAI1H,EAAQ,IAAI3N,MAAM,iEAEtB,MADA2N,EAAMnY,KAAO,sBACPmY,EAJNhF,KAAK2I,OAAOgE,SAAShJ,EAAK6H,EAAUG,EAAMC,EAAMW,IAYpDG,yBAA0B,WACxB,GAAI1M,KAAK2I,kBAAkBlN,EAAQoN,KAAM,CACvC,IAAK+D,KACH,OAAO,EAGT,IACEC,eAAeC,QAAQ,YAAa,aACpCD,eAAeE,WAAW,aAC1B,MAAO1T,GACP,OAAO,EAGT,OAAO,EAGT,OAAO,GAqBT2T,SAAU,SAAkBtN,KAsB5BuN,UAAW,SAAmBvN,KAgB9BwN,SAAU,SAAkBvT,KAgB5BwT,UAAW,SAAmBxT,KAe9ByT,aAAc,SAAsBd,KAgBpCe,KAAM,SAAc3N,GAClB,GAAa,OAATA,EAAJ,CAIA,GAAyB,mBAAdA,EAAK4B,KACd,IAAK,IAAIhV,EAAI,EAAGA,EAAIoT,EAAKnJ,OAAQjK,IAC/B0T,KAAKsN,WAAW5N,EAAKpT,QAEO,mBAAdoT,EAAK2F,KACrBrF,KAAKsN,WAAW5N,EAAK2F,QAErBrF,KAAKsN,WAAW5N,GAGlBM,KAAK2I,OAAO4E,UAWdC,MAAO,WAGLC,aAAazN,KAAKyJ,cAElBzJ,KAAKwK,WAmBPkD,aAAc,SAAsBhO,EAAM8L,EAAUmC,EAASC,GAC3D,IAAIC,EAAS7N,KAET8N,EAAiB,KAEI,mBAAdpO,EAAK2F,OACd3F,EAAOA,EAAK2F,QAGd,IAAI6B,EAAKxH,EAAKkD,aAAa,MAQ3B,GANKsE,IAEHA,EAAKlH,KAAKiL,YAAY,gBACtBvL,EAAK8B,aAAa,KAAM0F,IAGF,mBAAbsE,GAA8C,mBAAZmC,EAAwB,CACnE,IAAIpJ,EAAUvE,KAAK+N,YAAW,SAAUC,GAElCF,GACFD,EAAOI,mBAAmBH,GAGQ,UAAhCE,EAAOpL,aAAa,QAClB+K,GACFA,EAAQK,GAEDxC,GACTA,EAASwC,KAEV,KAAM,WAAY,KAAM9G,GAEvB0G,IACFE,EAAiB9N,KAAKkO,gBAAgBN,GAAS,WAS7C,OAPAC,EAAOM,cAAc5J,GAGjBoJ,GACFA,EAAQ,OAGH,MAMb,OADA3N,KAAKqN,KAAK3N,GACHwH,GAiBTkH,OAAQ,SAAgB1O,EAAM8L,EAAUmC,EAASC,GAC/C,IAAIS,EAASrO,KAET8N,EAAiB,KAEI,mBAAdpO,EAAK2F,OACd3F,EAAOA,EAAK2F,QAGd,IAAI6B,EAAKxH,EAAKkD,aAAa,MAQ3B,GANKsE,IAEHA,EAAKlH,KAAKiL,YAAY,UACtBvL,EAAK8B,aAAa,KAAM0F,IAGF,mBAAbsE,GAA8C,mBAAZmC,EAAwB,CACnE,IAAIpJ,EAAUvE,KAAK+N,YAAW,SAAUC,GAElCF,GACFO,EAAOJ,mBAAmBH,GAG5B,IAAIQ,EAASN,EAAOpL,aAAa,QAEjC,GAAe,WAAX0L,EACE9C,GACFA,EAASwC,OAEN,IAAe,UAAXM,EAIJ,CACL,IAAItJ,EAAQ,IAAI3N,MAAM,sBAAsB2C,OAAOsU,IAEnD,MADAtJ,EAAMnY,KAAO,eACPmY,EANF2I,GACFA,EAAQK,MAOX,KAAM,KAAM,CAAC,QAAS,UAAW9G,GAEhC0G,IACFE,EAAiB9N,KAAKkO,gBAAgBN,GAAS,WAS7C,OAPAS,EAAOF,cAAc5J,GAGjBoJ,GACFA,EAAQ,OAGH,MAMb,OADA3N,KAAKqN,KAAK3N,GACHwH,GAOToG,WAAY,SAAoBiB,GAC9B,GAAgB,OAAZA,IAAqBA,EAAQpO,UAAYoO,EAAQ1O,WAAY,CAC/D,IAAImF,EAAQ,IAAI3N,MAAM,gCAEtB,MADA2N,EAAMnY,KAAO,eACPmY,EAGRhF,KAAKiK,MAAM/G,KAAKqL,IAMlBC,aAAc,WACZ,IAAIC,EAASzO,KAEbA,KAAKiK,MAAM/G,KAAK,WAEhBlD,KAAK2I,OAAO6F,eAEZxO,KAAKyJ,aAAec,YAAW,WAC7B,OAAOkE,EAAOjE,YACb,MAyBL0D,gBAAiB,SAAyBjG,EAAQ1D,GAChD,IAAImK,EAAQ,IAAIjT,EAAQuM,aAAaC,EAAQ1D,GAE7C,OADAvE,KAAKsJ,UAAUpG,KAAKwL,GACbA,GAaTT,mBAAoB,SAA4BU,GAG9C3O,KAAKoJ,aAAalG,KAAKyL,IAmEzBZ,WAAY,SAAoBxJ,EAAS5W,EAAId,EAAMoa,EAAMC,EAAIvQ,EAAMwQ,GACjE,IAAIyH,EAAO,IAAInT,EAAQuL,QAAQzC,EAAS5W,EAAId,EAAMoa,EAAMC,EAAIvQ,EAAMwQ,GAElE,OADAnH,KAAKuJ,YAAYrG,KAAK0L,GACfA,GAaTT,cAAe,SAAuBQ,GAGpC3O,KAAKqJ,eAAenG,KAAKyL,GAGzB,IAAIriB,EAAI0T,KAAKuJ,YAAY3F,QAAQ+K,GAE7BriB,GAAK,GACP0T,KAAKuJ,YAAYtF,OAAO3X,EAAG,IAa/Bme,uBAAwB,SAAgCC,GACtD1K,KAAK0K,WAAa,IAClBA,EAAaA,GAAc,CAACjP,EAAQoT,cAAepT,EAAQqT,aAAcrT,EAAQsT,QAAStT,EAAQuT,gBAAiBvT,EAAQwT,YAAaxT,EAAQyT,UAAWzT,EAAQ0T,WACxJC,QAAQpP,KAAKqP,sBAAsBvhB,KAAKkS,QAWrDqP,sBAAuB,SAA+BC,GACpDtP,KAAK0K,WAAW4E,EAAUphB,UAAUrB,MAAQyiB,GAmB9CC,WAAY,SAAoBC,GAK9B,GAJAxP,KAAKkM,qBAAqBzQ,EAAQgC,OAAOQ,cAAeuR,GAExD/T,EAAQ0J,KAAK,kCAAoCqK,GAE7CxP,KAAK4J,UAAW,CAClB,IAAI6F,GAAO,EACXzP,KAAK6J,eAAgB,EAEjB7J,KAAK2J,gBACP8F,EAAO7T,EAAM,CACX,MAASH,EAAQK,GAAGG,OACpB,KAAQ,iBAKZ+D,KAAK0J,mBAAqB1J,KAAK0P,oBAAoB,IAAM1P,KAAK2P,qBAAqB7hB,KAAKkS,OAExFA,KAAK2I,OAAOiH,YAAYH,QAExBhU,EAAQ0J,KAAK,gEAEbnF,KAAK2I,OAAOkH,oBAEZ7P,KAAK8P,iBAcT5D,qBAAsB,SAA8B6D,EAAQC,EAAWtQ,GAErE,IAAK,IAAI+B,KAAKhG,EAAQqK,mBACpB,GAAI9Y,OAAOkB,UAAUC,eAAe1B,KAAKgP,EAAQqK,mBAAoBrE,GAAI,CACvE,IAAIwO,EAASjQ,KAAKyB,GAElB,GAAIwO,EAAOC,cACT,IACED,EAAOC,cAAcH,EAAQC,GAC7B,MAAOG,GACP1U,EAAQuJ,MAAM,GAAGhL,OAAOyH,EAAG,iDAAiDzH,OAAOmW,KAO3F,GAAInQ,KAAKiM,iBACP,IACEjM,KAAKiM,iBAAiB8D,EAAQC,EAAWtQ,GACzC,MAAOrG,GACPoC,EAAQ0I,aAAa9K,GAErBoC,EAAQuJ,MAAM,iDAAiDhL,OAAOX,MAW5EyW,cAAe,SAAuBE,GACH,iBAAtBhQ,KAAKyJ,cACdgE,aAAazN,KAAKyJ,cAIY,OAA5BzJ,KAAK0J,qBACP1J,KAAKiO,mBAAmBjO,KAAK0J,oBAC7B1J,KAAK0J,mBAAqB,MAG5BjO,EAAQwJ,MAAM,4BAEdjF,KAAK2I,OAAOmH,gBAEZ9P,KAAK2J,eAAgB,EACrB3J,KAAK6J,eAAgB,EACrB7J,KAAKgK,UAAW,EAEhBhK,KAAKmJ,SAAW,GAChBnJ,KAAKkJ,cAAgB,GACrBlJ,KAAKoJ,aAAe,GACpBpJ,KAAKqJ,eAAiB,GACtBrJ,KAAKsJ,UAAY,GACjBtJ,KAAKuJ,YAAc,GAEnBvJ,KAAKkM,qBAAqBzQ,EAAQgC,OAAOO,aAAcgS,GAEvDhQ,KAAK4J,WAAY,GAenBwG,UAAW,SAAmBC,EAAKC,GACjC,IAAIC,EAASvQ,KAEbvE,EAAQwJ,MAAM,oBAEd,IAAIvF,EAAOM,KAAK2I,OAAO6H,WAAWH,GAElC,GAAa,OAAT3Q,EAAJ,CAqBA,IAjBIM,KAAKgN,WAAavR,EAAQ6M,WAAWpa,UAAU8e,WAC7CtN,EAAK8C,WAAaxC,KAAK2I,OAAO8H,OAAS/Q,EAAKG,WAAWtJ,OACzDyJ,KAAKgN,SAAStN,EAAKG,WAAW,IAE9BG,KAAKgN,SAAStN,IAIdM,KAAKkN,WAAazR,EAAQ6M,WAAWpa,UAAUgf,WAC7CoD,EACFtQ,KAAKkN,SAASoD,GAEdtQ,KAAKkN,SAASzR,EAAQ2J,UAAU1F,KAK7BM,KAAKqJ,eAAe9S,OAAS,GAAG,CACrC,IAAIqY,EAAO5O,KAAKqJ,eAAeqH,MAC3BpkB,EAAI0T,KAAKmJ,SAASvF,QAAQgL,GAE1BtiB,GAAK,GACP0T,KAAKmJ,SAASlF,OAAO3X,EAAG,GAK5B,KAAO0T,KAAKuJ,YAAYhT,OAAS,GAC/ByJ,KAAKmJ,SAASjG,KAAKlD,KAAKuJ,YAAYmH,OAItC,GAAI1Q,KAAK6J,eAAiB7J,KAAK2I,OAAOgI,cACpC3Q,KAAK8P,oBADP,CAMA,IAAI7I,EAAOvH,EAAKkD,aAAa,QAE7B,GAAa,OAATqE,GAA0B,cAATA,EAAsB,CAEzC,GAAIjH,KAAK6J,cACP,OAIF,IAAI+G,EAAOlR,EAAKkD,aAAa,aACzBiO,EAAWnR,EAAKoR,qBAAqB,YAczC,OAZa,OAATF,GACW,wBAATA,GAAkCC,EAASta,OAAS,IACtDqa,EAAO,YAGT5Q,KAAKkM,qBAAqBzQ,EAAQgC,OAAOG,SAAUgT,IAEnD5Q,KAAKkM,qBAAqBzQ,EAAQgC,OAAOG,SAAUnC,EAAQ6C,eAAeyS,oBAG5E/Q,KAAK8P,cAAcc,GAMrBnV,EAAQgE,aAAaC,EAAM,MAAM,SAAUkG,GAEzC,IAAIoL,EAAUT,EAAOpH,SACrBoH,EAAOpH,SAAW,GAElB,IAAK,IAAI8H,EAAM,EAAGA,EAAMD,EAAQza,OAAQ0a,IAAO,CAC7C,IAAIC,EAAQF,EAAQC,GAGpB,MACMC,EAAMrJ,QAAQjC,KAAW2K,EAAO5G,eAAkBuH,EAAM5J,MACtD4J,EAAMnJ,IAAInC,KAId2K,EAAOpH,SAASjG,KAAKgO,GAEvB,MAAO7X,GAEPoC,EAAQ0J,KAAK,wDAA0D9L,EAAEoL,iBASjFiG,WAAY,GAkBZyG,YAAa,SAAqBd,EAAKe,EAAWd,GAGhD,IAAIe,EAFJ5V,EAAQwJ,MAAM,0BACdjF,KAAK4J,WAAY,EAGjB,IACEyH,EAAWrR,KAAK2I,OAAO6H,WAAWH,GAClC,MAAOhX,GACP,GAAIA,EAAExM,OAAS4O,EAAQ6C,eAAeC,WACpC,MAAMlF,EAGR2G,KAAKkM,qBAAqBzQ,EAAQgC,OAAOG,SAAUnC,EAAQ6C,eAAeC,YAE1EyB,KAAK8P,cAAcrU,EAAQ6C,eAAeC,YAG5C,GAAK8S,IAIDrR,KAAKgN,WAAavR,EAAQ6M,WAAWpa,UAAU8e,WAC7CqE,EAAS7O,WAAaxC,KAAK2I,OAAO8H,OAASY,EAASxR,WAAWtJ,OACjEyJ,KAAKgN,SAASqE,EAASxR,WAAW,IAElCG,KAAKgN,SAASqE,IAIdrR,KAAKkN,WAAazR,EAAQ6M,WAAWpa,UAAUgf,WAC7CoD,EACFtQ,KAAKkN,SAASoD,GAEdtQ,KAAKkN,SAASzR,EAAQ2J,UAAUiM,KAIpBrR,KAAK2I,OAAOwI,YAAYE,KAEtB5V,EAAQgC,OAAOG,UAajC,GANIyT,EAASC,uBACGD,EAASC,uBAAuB7V,EAAQK,GAAGW,OAAQ,YAAYlG,OAAS,EAExE8a,EAASP,qBAAqB,mBAAmBva,OAAS,GAAK8a,EAASP,qBAAqB,YAAYva,OAAS,EAGlI,CAMA,IAAIgb,EAAU,GACV7G,EAAa2G,EAASP,qBAAqB,aAE/C,GAAIpG,EAAWnU,OAAS,EACtB,IAAK,IAAIjK,EAAI,EAAGA,EAAIoe,EAAWnU,OAAQjK,IAAK,CAC1C,IAAIklB,EAAO/V,EAAQ4G,QAAQqI,EAAWpe,IAClC0T,KAAK0K,WAAW8G,IAAOD,EAAQrO,KAAKlD,KAAK0K,WAAW8G,IAIrC,IAAnBD,EAAQhb,QAC2C,IAAjD8a,EAASP,qBAAqB,QAAQva,QASb,IAA3ByJ,KAAK8J,mBACP9J,KAAKyR,aAAaF,GAPhBvR,KAAK2I,OAAO+I,kBAAkBN,QAnBhCpR,KAAK2I,OAAO+I,kBAAkBN,IAuClCO,yBAA0B,SAAkCjH,GAE1D,IAAK,IAAIpe,EAAI,EAAGA,EAAIoe,EAAWnU,OAAS,IAAKjK,EAAG,CAG9C,IAFA,IAAIslB,EAAStlB,EAEJ4M,EAAI5M,EAAI,EAAG4M,EAAIwR,EAAWnU,SAAU2C,EACvCwR,EAAWxR,GAAGhL,UAAU2jB,SAAWnH,EAAWkH,GAAQ1jB,UAAU2jB,WAClED,EAAS1Y,GAIb,GAAI0Y,IAAWtlB,EAAG,CAChB,IAAIwlB,EAAOpH,EAAWpe,GACtBoe,EAAWpe,GAAKoe,EAAWkH,GAC3BlH,EAAWkH,GAAUE,GAIzB,OAAOpH,GAgBT+G,aAAc,SAAsBF,GAC7BvR,KAAK+R,iBAAiBR,IACzBvR,KAAKgS,sBAiBTD,iBAAkB,SAA0BrH,GAC1CA,EAAa1K,KAAK2R,yBAAyBjH,GAAc,IAGzD,IAFA,IAAIuH,GAAkB,EAEb3lB,EAAI,EAAGA,EAAIoe,EAAWnU,SAAUjK,EACvC,GAAKoe,EAAWpe,GAAG4B,UAAUgkB,KAAKlS,MAAlC,CAIAA,KAAKmK,sBAAwBnK,KAAKmS,eAAenS,KAAKoS,iBAAiBtkB,KAAKkS,MAAO,KAAM,UAAW,KAAM,MAC1GA,KAAKoK,sBAAwBpK,KAAKmS,eAAenS,KAAKqS,iBAAiBvkB,KAAKkS,MAAO,KAAM,UAAW,KAAM,MAC1GA,KAAKqK,wBAA0BrK,KAAKmS,eAAenS,KAAKsS,mBAAmBxkB,KAAKkS,MAAO,KAAM,YAAa,KAAM,MAChHA,KAAKuS,gBAAkB,IAAI7H,EAAWpe,GAEtC0T,KAAKuS,gBAAgBC,QAAQxS,MAE7B,IAAIyS,EAAwBlX,EAAO,OAAQ,CACzC,MAASE,EAAQK,GAAGU,KACpB,UAAawD,KAAKuS,gBAAgB1lB,OAGpC,GAAImT,KAAKuS,gBAAgBG,cAAe,CACtC,IAAIC,EAAW3S,KAAKuS,gBAAgBK,YAAY5S,KAAM,MAEtDyS,EAAsBjlB,EAAEqlB,KAAKF,IAG/B3S,KAAKqN,KAAKoF,EAAsBpN,QAChC4M,GAAkB,EAClB,MAGF,OAAOA,GAOTK,mBAAoB,SAA4B5S,GAC9C,IAAIoT,EAAYC,KAAKtX,EAAQ4G,QAAQ3C,IAEjCiT,EAAW3S,KAAKuS,gBAAgBK,YAAY5S,KAAM8S,GAElD9E,EAASzS,EAAO,WAAY,CAC9B,MAASE,EAAQK,GAAGU,OAQtB,MALiB,KAAbmW,GACF3E,EAAOxgB,EAAEqlB,KAAKF,IAGhB3S,KAAKqN,KAAKW,EAAO3I,SACV,GAOT2M,mBAAoB,WACuB,OAArCvW,EAAQiI,eAAe1D,KAAK2D,MAG9B3D,KAAKkM,qBAAqBzQ,EAAQgC,OAAOG,SAAUnC,EAAQ6C,eAAeG,kBAE1EuB,KAAKuP,WAAW9T,EAAQ6C,eAAeG,oBAGvCuB,KAAKkM,qBAAqBzQ,EAAQgC,OAAOI,eAAgB,MAEzDmC,KAAKmS,eAAenS,KAAKgT,sBAAsBllB,KAAKkS,MAAO,KAAM,KAAM,KAAM,WAE7EA,KAAKqN,KAAK1R,EAAI,CACZ,KAAQ,MACR,GAAMqE,KAAKlF,OACX,GAAM,YACLnO,EAAE,QAAS,CACZsZ,MAAOxK,EAAQK,GAAGI,OACjBvP,EAAE,WAAY,IAAIa,EAAEiO,EAAQiI,eAAe1D,KAAK2D,MAAM0B,UAkB7D2N,sBAAuB,SAA+BtT,GAEpD,IAAIuT,EAAKtX,EAAI,CACXsL,KAAM,MACNC,GAAI,YACHva,EAAE,QAAS,CACZsZ,MAAOxK,EAAQK,GAAGI,OACjBvP,EAAE,WAAY,IAAIa,EAAEiO,EAAQiI,eAAe1D,KAAK2D,MAAMwC,KAAKxZ,EAAE,YAAYa,EAAEwS,KAAK0L,MAcnF,OAZKjQ,EAAQyI,mBAAmBlE,KAAK2D,OAInC3D,KAAK2D,IAAMlI,EAAQsI,kBAAkB/D,KAAK2D,KAAO,YAGnDsP,EAAG9M,KAAKxZ,EAAE,WAAY,IAAIa,EAAEiO,EAAQyI,mBAAmBlE,KAAK2D,MAE5D3D,KAAKmS,eAAenS,KAAKkT,UAAUplB,KAAKkS,MAAO,KAAM,KAAM,KAAM,WAEjEA,KAAKqN,KAAK4F,EAAG5N,SACN,GAYT+M,iBAAkB,SAA0B1S,GAC1C,IAAIyT,EAASnT,KAEb,GAAIA,KAAK+I,WAAW,oBAAqB,CACvC,IAAIqK,EAGAC,EAFUN,KAAKtX,EAAQ4G,QAAQ3C,IAEb4T,MADJ,yBAOlB,GAJmB,MAAfD,EAAQ,KACVD,EAAkBC,EAAQ,IAGxBD,IAAoBpT,KAAK+I,WAAW,oBAWtC,OATA/I,KAAKmO,cAAcnO,KAAKoK,uBACxBpK,KAAKoK,sBAAwB,KAEzBpK,KAAKqK,0BACPrK,KAAKmO,cAAcnO,KAAKqK,yBACxBrK,KAAKqK,wBAA0B,MAGjCrK,KAAK+I,WAAa,GACX/I,KAAKqS,iBAAiB,MAIjC5W,EAAQyJ,KAAK,kCAETlF,KAAKuS,iBACPvS,KAAKuS,gBAAgBgB,YAIvBvT,KAAKmO,cAAcnO,KAAKoK,uBACxBpK,KAAKoK,sBAAwB,KAEzBpK,KAAKqK,0BACPrK,KAAKmO,cAAcnO,KAAKqK,yBACxBrK,KAAKqK,wBAA0B,MAGjC,IAAImJ,EAAyB,GAEzBC,EAAU,SAAiBtK,EAAUzJ,GACvC,KAAOyJ,EAAS5S,QACd4c,EAAOhF,cAAchF,EAASuH,OAKhC,OAFAyC,EAAOO,2BAA2BhU,IAE3B,GAYT,OATA8T,EAAuBtQ,KAAKlD,KAAKmS,gBAAe,SAAUzS,GACxD,OAAO+T,EAAQD,EAAwB9T,KACtC,KAAM,kBAAmB,KAAM,OAClC8T,EAAuBtQ,KAAKlD,KAAKmS,gBAAe,SAAUzS,GACxD,OAAO+T,EAAQD,EAAwB9T,KACtCjE,EAAQK,GAAGW,OAAQ,WAAY,KAAM,OAExCuD,KAAKwO,gBAEE,GAUTkF,2BAA4B,SAAoChU,GAE9DM,KAAK8I,SAAWpJ,EAEhB,IAAK,IAAIpT,EAAI,EAAGA,EAAIoT,EAAKG,WAAWtJ,OAAQjK,IAAK,CAC/C,IAAIsZ,EAAQlG,EAAKG,WAAWvT,GAEL,SAAnBsZ,EAAMpD,WACRxC,KAAKiJ,SAAU,GAGM,YAAnBrD,EAAMpD,WACRxC,KAAKgJ,YAAa,GAItB,OAAKhJ,KAAKiJ,SAIEjJ,KAAKmH,QAAQwM,wBAGvB3T,KAAKkM,qBAAqBzQ,EAAQgC,OAAOY,aAAc,MAFvD2B,KAAKlS,QAKA,IATLkS,KAAKkM,qBAAqBzQ,EAAQgC,OAAOK,SAAU,OAE5C,IAuBXhQ,KAAM,WACJ,GAAKkS,KAAKiJ,QAAV,CAKAjJ,KAAKmS,eAAenS,KAAK4T,wBAAwB9lB,KAAKkS,MAAO,KAAM,KAAM,KAAM,gBAE/E,IAAI6T,EAAWpY,EAAQyI,mBAAmBlE,KAAK2D,KAE3CkQ,EACF7T,KAAKqN,KAAK1R,EAAI,CACZsL,KAAM,MACNC,GAAI,iBACHva,EAAE,OAAQ,CACXsZ,MAAOxK,EAAQK,GAAGa,OACjBhQ,EAAE,WAAY,IAAIa,EAAEqmB,GAAUxO,QAEjCrF,KAAKqN,KAAK1R,EAAI,CACZsL,KAAM,MACNC,GAAI,iBACHva,EAAE,OAAQ,CACXsZ,MAAOxK,EAAQK,GAAGa,OACjB0I,aArBH5J,EAAQmJ,IAAInJ,EAAQmD,SAASE,KAAM,oEAkCvC8U,wBAAyB,SAAiClU,GAGtD,IACIsQ,EAHN,GAAkC,UAA9BtQ,EAAKkD,aAAa,QAWpB,OAVAnH,EAAQ0J,KAAK,4BACEzF,EAAKoR,qBAAqB,YAG5Bva,OAAS,IACpByZ,EAAYvU,EAAQ6C,eAAeE,UAGrCwB,KAAKkM,qBAAqBzQ,EAAQgC,OAAOK,SAAUkS,EAAWtQ,IAEvD,EAIT,IAAI5R,EAAO4R,EAAKoR,qBAAqB,QAErC,KAAIhjB,EAAKyI,OAAS,GAmBhB,OAJAkF,EAAQ0J,KAAK,4BAEbnF,KAAKkM,qBAAqBzQ,EAAQgC,OAAOK,SAAU,KAAM4B,IAElD,EAlBP,IAAIoU,EAAUhmB,EAAK,GAAGgjB,qBAAqB,OAEvCgD,EAAQvd,OAAS,IACnByJ,KAAK2D,IAAMlI,EAAQ4G,QAAQyR,EAAQ,IAE/B9T,KAAKgJ,WACPhJ,KAAK+T,qBAEL/T,KAAK2J,eAAgB,EAErB3J,KAAKkM,qBAAqBzQ,EAAQgC,OAAOM,UAAW,SAoB5DgW,kBAAmB,WACjB,IAAK/T,KAAKgJ,WACR,MAAM,IAAI3R,MAAM,kDAAoD,yBAAyB2C,OAAOyB,EAAQK,GAAGc,QAAS,qCAG1HoD,KAAKmS,eAAenS,KAAKgU,mBAAmBlmB,KAAKkS,MAAO,KAAM,KAAM,KAAM,mBAE1EA,KAAKqN,KAAK1R,EAAI,CACZsL,KAAM,MACNC,GAAI,oBACHva,EAAE,UAAW,CACdsZ,MAAOxK,EAAQK,GAAGc,UACjByI,SAqBL2O,mBAAoB,SAA4BtU,GAC9C,GAAkC,WAA9BA,EAAKkD,aAAa,QACpB5C,KAAK2J,eAAgB,EAErB3J,KAAKkM,qBAAqBzQ,EAAQgC,OAAOM,UAAW,WAC/C,GAAkC,UAA9B2B,EAAKkD,aAAa,QAK3B,OAJAnH,EAAQ0J,KAAK,4BAEbnF,KAAKkM,qBAAqBzQ,EAAQgC,OAAOK,SAAU,KAAM4B,IAElD,EAGT,OAAO,GAYT2S,iBAAkB,SAA0B3S,GAgB1C,OAdIM,KAAKmK,wBACPnK,KAAKmO,cAAcnO,KAAKmK,uBACxBnK,KAAKmK,sBAAwB,MAG3BnK,KAAKqK,0BACPrK,KAAKmO,cAAcnO,KAAKqK,yBACxBrK,KAAKqK,wBAA0B,MAG7BrK,KAAKuS,iBAAiBvS,KAAKuS,gBAAgB0B,YAE/CjU,KAAKkM,qBAAqBzQ,EAAQgC,OAAOK,SAAU,KAAM4B,IAElD,GAeTwT,UAAW,SAAmBxT,GAW5B,MAVkC,WAA9BA,EAAKkD,aAAa,SACpB5C,KAAK2J,eAAgB,EAErB3J,KAAKkM,qBAAqBzQ,EAAQgC,OAAOM,UAAW,OACb,UAA9B2B,EAAKkD,aAAa,UAC3B5C,KAAKkM,qBAAqBzQ,EAAQgC,OAAOK,SAAU,KAAM4B,GAEzDM,KAAKuP,WAAW,2BAGX,GAcTG,oBAAqB,SAA6BzH,EAAQ1D,GACxD,IAAImK,EAAQ,IAAIjT,EAAQuM,aAAaC,EAAQ1D,GAG7C,OAFAmK,EAAMpH,MAAO,EACbtH,KAAKsJ,UAAUpG,KAAKwL,GACbA,GAiBTyD,eAAgB,SAAwB5N,EAAS5W,EAAId,EAAMoa,EAAMC,GAC/D,IAAI0H,EAAO,IAAInT,EAAQuL,QAAQzC,EAAS5W,EAAId,EAAMoa,EAAMC,GAGxD,OAFA0H,EAAKtH,MAAO,EACZtH,KAAKuJ,YAAYrG,KAAK0L,GACfA,GAYTe,qBAAsB,WAUpB,OATAlU,EAAQwJ,MAAM,mCAEdjF,KAAKkM,qBAAqBzQ,EAAQgC,OAAOW,YAAa,MAEtD4B,KAAK2I,OAAOgH,uBAGZ3P,KAAK8P,iBAEE,GASTtF,QAAS,WAMP,IALA,IAAI0J,EAASlU,KAKNA,KAAKsJ,UAAU/S,OAAS,GAC7ByJ,KAAKkJ,cAAchG,KAAKlD,KAAKsJ,UAAUoH,OAIzC,KAAO1Q,KAAKoJ,aAAa7S,OAAS,GAAG,CACnC,IAAImY,EAAQ1O,KAAKoJ,aAAasH,MAC1BpkB,EAAI0T,KAAKkJ,cAActF,QAAQ8K,GAE/BpiB,GAAK,GACP0T,KAAKkJ,cAAcjF,OAAO3X,EAAG,GAQjC,IAHA,IAAI6nB,GAAM,IAAIhM,MAAOC,UACjB4I,EAAU,GAELoD,EAAM,EAAGA,EAAMpU,KAAKkJ,cAAc3S,OAAQ6d,IAAO,CACxD,IAAIC,EAASrU,KAAKkJ,cAAckL,IAE5BpU,KAAK2J,eAAkB0K,EAAO/M,OACpB+M,EAAOnM,WAAamM,EAAOpM,OAE3BkM,GAAO,EACbE,EAAOtM,OACTiJ,EAAQ9N,KAAKmR,GAGfrD,EAAQ9N,KAAKmR,IAKnBrU,KAAKkJ,cAAgB8H,EACrBvD,aAAazN,KAAKyJ,cAElBzJ,KAAK2I,OAAO6B,UAGRxK,KAAK4J,YACP5J,KAAKyJ,aAAec,YAAW,WAC7B,OAAO2J,EAAO1J,YACb,QAqCT/O,EAAQ6Y,cAAgB,SAAUznB,EAAM6lB,EAAeb,GAIrD7R,KAAKnT,KAAOA,EAKZmT,KAAK0S,cAAgBA,EAmBrB1S,KAAK6R,SAAWA,GAGlBpW,EAAQ6Y,cAAcpmB,UAAY,CAmBhCgkB,KAAM,SAAcqC,GAClB,OAAO,GAST/B,QAAS,SAAiB+B,GACxBvU,KAAKwU,YAAcD,GAcrB3B,YAAa,SAAqB2B,EAAYzB,GAC5C,MAAM,IAAIzb,MAAM,6CAMlB4c,UAAW,WACTjU,KAAKwU,YAAc,MAMrBjB,UAAW,WACTvT,KAAKwU,YAAc,OAoBvB/Y,EAAQoT,cAAgB,aAExBpT,EAAQoT,cAAc3gB,UAAY,IAAIuN,EAAQ6Y,cAAc,aAAa,EAAO,IAEhF7Y,EAAQoT,cAAc3gB,UAAUgkB,KAAO,SAAUqC,GAC/C,OAA8B,OAAvBA,EAAWzI,SAOpBrQ,EAAQyT,UAAY,aAEpBzT,EAAQyT,UAAUhhB,UAAY,IAAIuN,EAAQ6Y,cAAc,SAAS,EAAM,IAEvE7Y,EAAQyT,UAAUhhB,UAAUgkB,KAAO,SAAUqC,GAC3C,OAA8B,OAAvBA,EAAWzI,SAGpBrQ,EAAQyT,UAAUhhB,UAAU0kB,YAAc,SAAU2B,GAClD,IAAIE,EAAWF,EAAWxI,QAK1B,OAJA0I,GAAsB,KACtBA,GAAsBF,EAAWzI,QACjC2I,GAAsB,KACtBA,GAAsBF,EAAW7I,KAC1BjR,EAAega,IAOxBhZ,EAAQ0T,SAAW,aAEnB1T,EAAQ0T,SAASjhB,UAAY,IAAIuN,EAAQ6Y,cAAc,eAAe,EAAM,IAE5E7Y,EAAQ0T,SAASjhB,UAAUgkB,KAAO,SAAUqC,GAC1C,OAA8B,OAAvBA,EAAWzI,SAGpBrQ,EAAQ0T,SAASjhB,UAAU0kB,YAAc,SAAU2B,EAAYzB,EAAW4B,GACxE,IAAIC,EAASD,GAAelc,EAAIC,UAAU,GAAqB,WAAhB2S,KAAKC,UAChDoJ,EAAW,KAAOha,EAAe8Z,EAAWzI,SAqEhD,OApEA2I,GAAY,MACZA,GAAYE,EACZJ,EAAWxL,WAAW4L,OAASA,EAC/BJ,EAAWxL,WAAW,6BAA+B0L,EACrDA,EAAW,MAAQA,EAEnBzU,KAAK4S,YAAc,SAAU2B,EAAYzB,GAOvC,IANA,IAAI8B,EAAOC,EAAMpe,EAAMqe,EAAIC,EAAGC,EAAO1oB,EAAGmV,EACpCwT,EAAe,UACfC,EAAc,GAAGlb,OAAOua,EAAWxL,WAAW,6BAA8B,KAAK/O,OAAO8Y,EAAW,KACnG6B,EAASJ,EAAWxL,WAAW4L,OAC/BQ,EAAc,wBAEXrC,EAAUQ,MAAM6B,IAAc,CACnC,IAAI9B,EAAUP,EAAUQ,MAAM6B,GAG9B,OAFArC,EAAYA,EAAUlR,QAAQyR,EAAQ,GAAI,IAElCA,EAAQ,IACd,IAAK,IACHuB,EAAQvB,EAAQ,GAChB,MAEF,IAAK,IACHwB,EAAOxB,EAAQ,GACf,MAEF,IAAK,IACH5c,EAAO4c,EAAQ,IAKrB,GAAIuB,EAAMQ,OAAO,EAAGT,EAAOpe,UAAYoe,EAErC,OADAJ,EAAWxL,WAAa,GACjBwL,EAAWlC,mBAIpB6C,GADAD,GAAgB,KAAOL,EAEvBC,EAAO9B,KAAK8B,GACZA,GAAQ,UACR,IAAInJ,EAAOjR,EAAe8Z,EAAW7I,MAGrC,IAFAoJ,EAAKE,EAAQ5a,EAAKV,eAAegS,EAAMmJ,GAElCvoB,EAAI,EAAGA,EAAImK,EAAMnK,IAAK,CAGzB,IAFAyoB,EAAI3a,EAAKV,eAAegS,EAAMtR,EAAKD,SAAS6a,IAEvCvT,EAAI,EAAGA,EAAI,EAAGA,IACjBqT,EAAGrT,IAAMsT,EAAEtT,GAGbuT,EAAQD,EAGVD,EAAK1a,EAAKD,SAAS2a,GACnB,IAAIO,EAAYjb,EAAKV,eAAeob,EAAI,cACpCQ,EAAYlb,EAAKG,cAAcua,EAAI,cACnCS,EAAkBnb,EAAKV,eAAeU,EAAKI,SAASJ,EAAKD,SAASkb,IAAaH,GAGnF,IAFAX,EAAWxL,WAAW,oBAAsB3O,EAAKC,cAAcib,EAAWJ,GAErEzT,EAAI,EAAGA,EAAI,EAAGA,IACjB4T,EAAU5T,IAAM8T,EAAgB9T,GAIlC,OADAwT,GAAgB,MAAQpC,KAAKzY,EAAKD,SAASkb,KAItCZ,GAOThZ,EAAQsT,QAAU,aAElBtT,EAAQsT,QAAQ7gB,UAAY,IAAIuN,EAAQ6Y,cAAc,cAAc,EAAO,IAE3E7Y,EAAQsT,QAAQ7gB,UAAUgkB,KAAO,SAAUqC,GACzC,OAA8B,OAAvBA,EAAWzI,SAapBrQ,EAAQsT,QAAQ7gB,UAAUsnB,OAAS,SAAUpe,GAC3C,MAAO,IAAMA,EAAIwK,QAAQ,MAAO,QAAQA,QAAQ,KAAM,OAAS,KAGjEnG,EAAQsT,QAAQ7gB,UAAU0kB,YAAc,SAAU2B,EAAYzB,EAAW4B,GAQvE,IAPA,IAAIS,EAAc,mCACdR,EAASD,GAAelc,EAAIC,UAAU,GAAqB,WAAhB2S,KAAKC,UAChDoK,EAAQ,GACRC,EAAO,KACPd,EAAQ,GAGL9B,EAAUQ,MAAM6B,IAAc,CACnC,IAAI9B,EAAUP,EAAUQ,MAAM6B,GAI9B,OAHArC,EAAYA,EAAUlR,QAAQyR,EAAQ,GAAI,IAC1CA,EAAQ,GAAKA,EAAQ,GAAGzR,QAAQ,WAAY,MAEpCyR,EAAQ,IACd,IAAK,QACHoC,EAAQpC,EAAQ,GAChB,MAEF,IAAK,QACHuB,EAAQvB,EAAQ,GAChB,MAEF,IAAK,MACGA,EAAQ,GACd,MAEF,IAAK,OACHqC,EAAOrC,EAAQ,IAKrB,IAAIsC,EAAapB,EAAWvI,SAAW,IAAMuI,EAAWzZ,OAE3C,OAAT4a,IACFC,EAAaA,EAAa,IAAMD,GAGlC,IAAIE,EAAOnb,EAAe8Z,EAAWzI,QAAU,IAAM2J,EAAQ,IAAMzV,KAAKwU,YAAY9I,MAChFmK,EAAKrd,EAAIK,KAAK+c,GAAQ,IAAMhB,EAAQ,IAAMD,EAC1CmB,EAAK,gBAAkBH,EACvBV,EAAe,GAenB,OAdAA,GAAgB,iBAChBA,GAAgB,YAAcjV,KAAKwV,OAAO/a,EAAe8Z,EAAWzI,UAAY,IAChFmJ,GAAgB,SAAWjV,KAAKwV,OAAOC,GAAS,IAChDR,GAAgB,SAAWjV,KAAKwV,OAAOZ,GAAS,IAChDK,GAAgB,eAChBA,GAAgB,UAAYjV,KAAKwV,OAAOb,GAAU,IAClDM,GAAgB,cAAgBjV,KAAKwV,OAAOG,GAAc,IAC1DV,GAAgB,YAAczc,EAAIC,UAAUD,EAAIC,UAAUod,GAAM,IAAMjB,EAAQ,aAAeD,EAAS,SAAWnc,EAAIC,UAAUqd,IAAO,IACtIb,GAAgB,WAEhBjV,KAAK4S,YAAc,WACjB,MAAO,IAGFqC,GAOTxZ,EAAQuT,gBAAkB,aAE1BvT,EAAQuT,gBAAgB9gB,UAAY,IAAIuN,EAAQ6Y,cAAc,eAAe,EAAM,IAEnF7Y,EAAQuT,gBAAgB9gB,UAAUgkB,KAAO,SAAUqC,GACjD,OAA2B,OAApBA,EAAW7I,MAGpBjQ,EAAQuT,gBAAgB9gB,UAAU0kB,YAAc,SAAU2B,GACxD,IAAIE,EAAW,KAYf,OAV2B,OAAvBF,EAAWzI,UACb2I,EAAWA,EAAW,KAAOF,EAAWxI,SAG1C0I,GAAsB,IACtBA,GAAsB,IACtBA,GAAsB,eACtBA,GAAsBF,EAAW7I,KACjC+I,GAAsB,IAEfha,EADPga,GAAsB,MAaxBhZ,EAAQqT,aAAe,aAEvBrT,EAAQqT,aAAa5gB,UAAY,IAAIuN,EAAQ6Y,cAAc,YAAY,EAAM,IAE7E7Y,EAAQqT,aAAa5gB,UAAU0kB,YAAc,SAAU2B,GAQrD,OAAOA,EAAWzI,UAAYyI,EAAWxI,QAAU,GAAKwI,EAAWxI,SAOrEtQ,EAAQwT,YAAc,aAEtBxT,EAAQwT,YAAY/gB,UAAY,IAAIuN,EAAQ6Y,cAAc,YAAY,EAAM,IAE5E7Y,EAAQwT,YAAY/gB,UAAUgkB,KAAO,SAAUqC,GAC7C,OAA2B,OAApBA,EAAW7I,MAGpBjQ,EAAQwT,YAAY/gB,UAAU0kB,YAAc,SAAU2B,GACpD,IAAIE,EAAW,KAQf,OAN2B,OAAvBF,EAAWzI,UACb2I,GAAsBF,EAAWxI,SAGnC0I,GAAsB,KACtBA,GAAsBF,EAAW7I,KAC1BjR,EAAega,IAExB,IAAIsB,EAAO,CACT,QAAWta,EACX,OAAUF,EACV,IAAOI,EACP,KA/qHF,SAAcH,GACZ,OAAO,IAAIC,EAAQC,QAAQ,UAAWF,IA+qHtC,MAASI,EACT,KAAQxB,EACR,IAAO5B,EACP,cAAiB4B,EAAKC,cACtB,SAAYD,EAAKE,SACjB,cAAiBF,EAAKG,cACtB,SAAYH,EAAKI,UASfwb,EAAYD,EAAKta,QACjBwa,EAAWF,EAAKxa,OAoBpBya,EAAUE,QAAU,SAAUxW,EAAME,EAAM0M,EAAK6J,GAC7CnW,KAAKkH,KAAO8O,EAAUnQ,WACtB7F,KAAKoW,QAAU1W,EACfM,KAAKrG,KAAOqc,EAAU5Q,UAAU1F,GAGhCM,KAAKqW,SAAWzW,EAChBI,KAAKJ,KAAOA,EACZI,KAAKsM,IAAMA,EACXtM,KAAKsW,KAAOC,IACZvW,KAAKmW,MAAQA,GAAS,EACtBnW,KAAKwW,OAAQ,EACbxW,KAAKyW,KAAO,KAEZzW,KAAK0W,IAAM,WACT,OAAK1W,KAAKsW,MAIA,IAAInO,KACAnI,KAAKsW,MAAQ,IAJlB,GAOXtW,KAAK2W,SAAW,WACd,OAAK3W,KAAKyW,MAIA,IAAItO,KACAnI,KAAKyW,MAAQ,IAJlB,GAOXzW,KAAK4W,IAAM5W,KAAK6W,WAGlBb,EAAUE,QAAQhoB,UAAY,CAc5B4oB,YAAa,WACX,IAAI5V,EAAO,KAEX,GAAIlB,KAAK4W,IAAIG,aAAe/W,KAAK4W,IAAIG,YAAYC,iBAG/C,GAAqB,iBAFrB9V,EAAOlB,KAAK4W,IAAIG,YAAYC,iBAEnB7W,QAIP,MAHA6V,EAAUhR,MAAM,6BAChBgR,EAAUhR,MAAM,iBAAmBhF,KAAK4W,IAAI3B,cAC5Ce,EAAUhR,MAAM,gBAAkBgR,EAAU5Q,UAAUpF,KAAK4W,IAAIG,cACzD,IAAI1f,MAAM,oBAEb,GAAI2I,KAAK4W,IAAI3B,aAAc,CAKhC,GAHAe,EAAU/Q,MAAM,mFAChB/D,GAAO,IAAIe,WAAYC,gBAAgBlC,KAAK4W,IAAI3B,aAAc,mBAAmB+B,iBAG/E,MAAM,IAAI3f,MAAM,8BACX,GAAI6J,EAAK+V,cAAc,eAAgB,CAC5CjB,EAAUhR,MAAM,8BAAgC9D,EAAK+V,cAAc,eAAeC,aAClFlB,EAAUhR,MAAM,iBAAmBhF,KAAK4W,IAAI3B,cAC5C,IAAIjQ,EAAQ,IAAI3N,MAEhB,MADA2N,EAAMnY,KAAOmpB,EAAU1X,eAAeC,WAChCyG,GAIV,OAAO9D,GAWT2V,QAAS,WACP,IAAID,EAAM,KAcV,OAZI1qB,OAAOirB,gBACTP,EAAM,IAAIO,gBAEFC,kBACNR,EAAIQ,iBAAiB,2BAEdlrB,OAAO8U,gBAChB4V,EAAM,IAAI5V,cAAc,sBAI1B4V,EAAIS,mBAAqBrX,KAAKJ,KAAK9R,KAAK,KAAMkS,MACvC4W,IA4BXZ,EAAUnN,KAAO,SAAU0L,GACzBvU,KAAKsX,MAAQ/C,EAGbvU,KAAKsM,IAAMlB,KAAKmM,MAAsB,WAAhBnM,KAAKC,UAG3BrL,KAAKqM,IAAM,KAEXrM,KAAK4L,KAAO,EACZ5L,KAAK2L,KAAO,GACZ3L,KAAK9T,OAAS,EACd8T,KAAKwX,OAAS,EACdxX,KAAKyX,WAAa,KAClBzX,KAAK0X,oBAAsB,KAC3B1X,KAAK8K,UAAY,IAGnBkL,EAAUnN,KAAK3a,UAAY,CAYzBuiB,MAAO,KAQPkH,WAAY,WACV,IAAItG,EAAW4E,EAAS,OAAQ,CAC9B,IAAOjW,KAAKsM,MACZ,MAAS0J,EAAUla,GAAGC,WAaxB,OAViB,OAAbiE,KAAKqM,KACPgF,EAAS7V,MAAM,CACb,IAAOwE,KAAKqM,MAIZrM,KAAKsX,MAAMnQ,QAAQyQ,WAAa5X,KAAKsX,MAAM5K,4BAC7C1M,KAAK6X,gBAGAxG,GAQTxG,OAAQ,WACN7K,KAAKsM,IAAMlB,KAAKmM,MAAsB,WAAhBnM,KAAKC,UAC3BrL,KAAKqM,IAAM,KACXrM,KAAKwX,OAAS,EAEVxX,KAAKsX,MAAM5K,4BACbxgB,OAAO2gB,eAAeE,WAAW,wBAGnC/M,KAAKsX,MAAMlK,aAAapN,KAAKsM,MAQ/BH,SAAU,SAAkBR,EAAMC,EAAMC,GACtC7L,KAAK2L,KAAOA,GAAQ3L,KAAK2L,KACzB3L,KAAK4L,KAAOA,GAAQ5L,KAAK4L,KACzB5L,KAAKwX,OAAS,EAEd,IAAIM,EAAO9X,KAAK2X,aAAanc,MAAM,CACjC,GAAMwE,KAAKsX,MAAMxc,OACjB,WAAY,KACZ,KAAQkF,KAAK2L,KACb,KAAQ3L,KAAK4L,KACb,QAAW,0BACX,IAAO,MACP,eAAgB,MAChB,aAAcoK,EAAUla,GAAGE,OAGzB6P,GACFiM,EAAKtc,MAAM,CACT,MAASqQ,IAIb,IAAIsF,EAAcnR,KAAKsX,MAAMnG,YAE7BnR,KAAK8K,UAAU5H,KAAK,IAAI8S,EAAUE,QAAQ4B,EAAKzS,OAAQrF,KAAK+X,sBAAsBjqB,KAAKkS,KAAMmR,EAAYrjB,KAAKkS,KAAKsX,QAASQ,EAAKzS,OAAOzC,aAAa,SAErJ5C,KAAKgY,4BA2BPxL,QAAS,SAAiB7I,EAAK0I,EAAKC,EAAKd,EAAUG,EAAMC,EAAMW,GAC7DvM,KAAKsX,MAAM3T,IAAMA,EACjB3D,KAAKqM,IAAMA,EACXrM,KAAKsM,IAAMA,EACXtM,KAAKsX,MAAMrL,iBAAmBT,EAC9BxL,KAAKsX,MAAMxc,OAASkb,EAAUnS,iBAAiB7D,KAAKsX,MAAM3T,KAC1D3D,KAAKsX,MAAM3N,eAAgB,EAC3B3J,KAAKsX,MAAM1N,WAAY,EACvB5J,KAAK2L,KAAOA,GAAQ3L,KAAK2L,KACzB3L,KAAK4L,KAAOA,GAAQ5L,KAAK4L,KACzB5L,KAAK9T,OAASqgB,GAAQvM,KAAK9T,OAE3B8T,KAAKsX,MAAMpL,qBAAqB8J,EAAUvY,OAAOS,SAAU,OAsB7DyO,SAAU,SAAkBhJ,EAAK6H,EAAUG,EAAMC,EAAMW,GACrD,IAAI0L,EAAUrL,KAAKsL,MAAMhsB,OAAO2gB,eAAesL,QAAQ,yBAEvD,KAAI,MAAOF,GAA+CA,EAAQ3L,KAAO2L,EAAQ5L,KAAO4L,EAAQtU,MAAQ,MAAOA,GAAuCqS,EAAUjS,kBAAkBkU,EAAQtU,OAASqS,EAAUjS,kBAAkBJ,IAE7L,OAAlCqS,EAAUtS,eAAeC,IAAiBqS,EAAUnS,iBAAiBoU,EAAQtU,OAASA,IAI/E,CACL,IAAIqB,EAAQ,IAAI3N,MAAM,qCAEtB,MADA2N,EAAMnY,KAAO,sBACPmY,EANNhF,KAAKsX,MAAMtN,UAAW,EAEtBhK,KAAKwM,QAAQyL,EAAQtU,IAAKsU,EAAQ5L,IAAK4L,EAAQ3L,IAAKd,EAAUG,EAAMC,EAAMW,IAe9EsL,cAAe,WACT7X,KAAKsX,MAAM3N,cACT3J,KAAKsX,MAAM3T,KAAO3D,KAAKsM,KAAOtM,KAAKqM,KACrCngB,OAAO2gB,eAAeC,QAAQ,uBAAwBF,KAAKwL,UAAU,CACnE,IAAOpY,KAAKsX,MAAM3T,IAClB,IAAO3D,KAAKsM,IACZ,IAAOtM,KAAKqM,OAIhBngB,OAAO2gB,eAAeE,WAAW,yBAWrCoE,YAAa,SAAqBE,GAChC,IAAIgH,EAAMhH,EAASzO,aAAa,QAEhC,GAAY,OAARyV,GAAwB,cAARA,EAAqB,CAEvC,IAAIzH,EAAOS,EAASzO,aAAa,aACjCoT,EAAUhR,MAAM,2BAA6B4L,GAC7C,IAAIC,EAAWQ,EAASP,qBAAqB,YAc7C,OAZa,OAATF,GACW,wBAATA,GAAkCC,EAASta,OAAS,IACtDqa,EAAO,YAGT5Q,KAAKsX,MAAMpL,qBAAqB8J,EAAUvY,OAAOG,SAAUgT,IAE3D5Q,KAAKsX,MAAMpL,qBAAqB8J,EAAUvY,OAAOG,SAAU,WAG7DoC,KAAKsX,MAAMxH,cAAcc,GAElBoF,EAAUvY,OAAOG,SAKrBoC,KAAKqM,MACRrM,KAAKqM,IAAMgF,EAASzO,aAAa,QAGnC,IAAI2J,EAAO8E,EAASzO,aAAa,YAE7B2J,IACFvM,KAAK9T,OAASosB,SAAS/L,EAAM,KAG/B,IAAIX,EAAOyF,EAASzO,aAAa,QAE7BgJ,IACF5L,KAAK4L,KAAO0M,SAAS1M,EAAM,KAG7B,IAAID,EAAO0F,EAASzO,aAAa,QAE7B+I,IACF3L,KAAK2L,KAAO2M,SAAS3M,EAAM,KAG7B,IAAI8L,EAAapG,EAASzO,aAAa,cAEnC6U,IACFzX,KAAKyX,WAAaa,SAASb,EAAY,MAU3C7H,YAAa,SAAqBH,GAChCzP,KAAKuY,eAAe9I,IAQtBK,cAAe,WACb9P,KAAKqM,IAAM,KACXrM,KAAKsM,IAAMlB,KAAKmM,MAAsB,WAAhBnM,KAAKC,UAEvBrL,KAAKsX,MAAM5K,4BACbxgB,OAAO2gB,eAAeE,WAAW,wBAGnC/M,KAAKsX,MAAMlK,aAAapN,KAAKsM,MAS/BqE,YAAa,WACX,OAAiC,IAA1B3Q,KAAK8K,UAAUvU,QASxBiiB,2BAA4B,SAAoCnI,GAC9D,IAAIoI,EAAYzY,KAAK0Y,kBAAkBrI,GAEnCsI,EAAe3Y,KAAKsX,MAAM9N,sBAAsBoP,KAAKH,GAErDE,GACFA,EAAalsB,KAAKuT,KAAMyY,IAc5BI,UAAW,SAAmBJ,GAC5BzY,KAAKwX,SACLxB,EAAU7Q,KAAK,4BAA8BsT,EAAY,uBAAyBzY,KAAKwX,QAEnFxX,KAAKwX,OAAS,GAChBxX,KAAKsX,MAAM3H,wBASf+B,kBAAmB,SAA2BlG,GAC5CwK,EAAU7Q,KAAK,gGAGbqG,EADEA,EACSA,EAAS1d,KAAKkS,KAAKsX,OAEnBtX,KAAKsX,MAAMnG,YAAYrjB,KAAKkS,KAAKsX,OAG9C,IAAIQ,EAAO9X,KAAK2X,aAEhB3X,KAAK8K,UAAU5H,KAAK,IAAI8S,EAAUE,QAAQ4B,EAAKzS,OAAQrF,KAAK+X,sBAAsBjqB,KAAKkS,KAAMwL,GAAWsM,EAAKzS,OAAOzC,aAAa,SAEjI5C,KAAKgY,4BAQPrI,qBAAsB,WACpB3P,KAAK6P,qBAMPA,kBAAmB,WACjB,KAAO7P,KAAK8K,UAAUvU,OAAS,GAAG,CAChC,IAAI8Z,EAAMrQ,KAAK8K,UAAU4F,MAEzBL,EAAImG,OAAQ,EACZnG,EAAIuG,IAAIJ,QAERnG,EAAIuG,IAAIS,mBAAqB,eASjC7M,QAAS,WACP,IAAI7Q,EAAOqG,KAAKsX,MAAMrN,MAOtB,GALIjK,KAAKsX,MAAM3N,eAA2C,IAA1B3J,KAAK8K,UAAUvU,QAAgC,IAAhBoD,EAAKpD,SAAiByJ,KAAKsX,MAAMzN,gBAC9FmM,EAAU/Q,MAAM,wDAChBtL,EAAKuJ,KAAK,QAGRlD,KAAKsX,MAAMvN,OAAf,CAIA,GAAI/J,KAAK8K,UAAUvU,OAAS,GAAKoD,EAAKpD,OAAS,EAAG,CAGhD,IAFA,IAAIuhB,EAAO9X,KAAK2X,aAEPrrB,EAAI,EAAGA,EAAIqN,EAAKpD,OAAQjK,IACf,OAAZqN,EAAKrN,KACS,YAAZqN,EAAKrN,GACPwrB,EAAKtc,MAAM,CACT,GAAMwE,KAAKsX,MAAMxc,OACjB,WAAY,KACZ,eAAgB,OAChB,aAAckb,EAAUla,GAAGE,OAG7B8b,EAAKvR,MAAM5M,EAAKrN,IAAI6Z,aAKnBnG,KAAKsX,MAAMrN,MAClBjK,KAAKsX,MAAMrN,MAAQ,GAEnBjK,KAAK8K,UAAU5H,KAAK,IAAI8S,EAAUE,QAAQ4B,EAAKzS,OAAQrF,KAAK+X,sBAAsBjqB,KAAKkS,KAAMA,KAAKsX,MAAMlH,UAAUtiB,KAAKkS,KAAKsX,QAASQ,EAAKzS,OAAOzC,aAAa,SAE9J5C,KAAKgY,2BAGP,GAAIhY,KAAK8K,UAAUvU,OAAS,EAAG,CAC7B,IAAIuiB,EAAe9Y,KAAK8K,UAAU,GAAG4L,MAEN,OAA3B1W,KAAK8K,UAAU,GAAG2L,MAChBzW,KAAK8K,UAAU,GAAG6L,WAAavL,KAAKmM,MAAMvB,EAAUzW,kBAAoBS,KAAK2L,OAC/E3L,KAAKgY,2BAILc,EAAe1N,KAAKmM,MAAMvB,EAAU1W,QAAUU,KAAK2L,QACrDqK,EAAU7Q,KAAK,WAAanF,KAAK8K,UAAU,GAAG5D,GAAK,oBAAsBkE,KAAKmM,MAAMvB,EAAU1W,QAAUU,KAAK2L,MAAQ,gCAErH3L,KAAKgY,+BAcXU,kBAAmB,SAA2BrI,EAAK0I,GACjD,IAAIN,EAEJ,GAA2B,IAAvBpI,EAAIuG,IAAIoC,WACV,IACEP,EAAYpI,EAAIuG,IAAI7G,OACpB,MAAO1W,GAGP2c,EAAUhR,MAAM,mEAA0EyT,GAQ9F,YAJyB,IAAdA,IACTA,EAA2B,iBAARM,EAAmBA,EAAM,GAGvCN,GAeTV,sBAAuB,SAA+BnY,EAAMyQ,GAG1D,GAFA2F,EAAU/Q,MAAM,cAAgBoL,EAAInJ,GAAK,IAAMmJ,EAAI8F,MAAQ,qBAAuB9F,EAAIuG,IAAIoC,YAEtF3I,EAAImG,MACNnG,EAAImG,OAAQ,OAId,GAA2B,IAAvBnG,EAAIuG,IAAIoC,WAAZ,CAKA,IAAIP,EAAYzY,KAAK0Y,kBAAkBrI,GAIvC,GAFArQ,KAAK0X,oBAAsBrH,EAAIuG,IAAIqC,wBAE/BjZ,KAAK6J,eAAiB4O,GAAa,IAKrC,OAJAzY,KAAK6Y,UAAUJ,QAEfzY,KAAKwY,2BAA2BnI,GAKlC,IAAI6I,EAAgBT,EAAY,GAAKA,EAAY,IAC7CU,EAAmB9I,EAAI8F,MAAQnW,KAAKsX,MAAMhN,WAS9C,IAPI4O,GAAiBC,KAEnBnZ,KAAKoZ,eAAe/I,GAEpB2F,EAAU/Q,MAAM,cAAgBoL,EAAInJ,GAAK,2BAGzB,MAAduR,EAAmB,CAErB,IAAIY,EAASrZ,KAAK8K,UAAU,KAAOuF,GACtBrQ,KAAK8K,UAAU,KAAOuF,GAKrBgJ,GAAUrZ,KAAK8K,UAAUvU,OAAS,GAAKyJ,KAAK8K,UAAU,GAAG4L,MAAQtL,KAAKmM,MAAMvB,EAAUzW,kBAAoBS,KAAK2L,QAC3H3L,KAAKsZ,gBAAgB,GAGvBtZ,KAAKsX,MAAMlK,aAAamM,OAAOlJ,EAAI/D,KAAO,GAE1C0J,EAAU/Q,MAAM,cAAgBoL,EAAInJ,GAAK,IAAMmJ,EAAI8F,MAAQ,YAC3DvW,EAAKyQ,GAELrQ,KAAKwX,OAAS,OACS,IAAdiB,GAAmBA,GAAa,KAAOA,EAAY,KAAOA,GAAa,MAEhFzC,EAAUhR,MAAM,cAAgBqL,EAAInJ,GAAK,IAAMmJ,EAAI8F,MAAQ,UAAYsC,EAAY,aAEnFzY,KAAK6Y,UAAUJ,GAEfzY,KAAKwY,2BAA2BnI,GAE5BoI,GAAa,KAAOA,EAAY,MAClCzY,KAAKsX,MAAMpL,qBAAqB8J,EAAUvY,OAAOQ,cAAe,MAEhE+B,KAAKsX,MAAMxH,kBAGbkG,EAAUhR,MAAM,cAAgBqL,EAAInJ,GAAK,IAAMmJ,EAAI8F,MAAQ,UAAYsC,EAAY,aAGhFS,GAAkBC,EAEZA,IAAqBnZ,KAAKsX,MAAM1N,WACzC5J,KAAKsX,MAAMpL,qBAAqB8J,EAAUvY,OAAOG,SAAU,aAF3DoC,KAAKgY,6BAeTwB,gBAAiB,SAAyBltB,GACxC,IAAIqb,EAAQ3H,KAERqQ,EAAMrQ,KAAK8K,UAAUxe,GAErBmsB,EAAYzY,KAAK0Y,kBAAkBrI,GAAM,GAG7C,GAAIA,EAAI8F,MAAQnW,KAAKsX,MAAMhN,WACzBtK,KAAKsX,MAAM3H,2BADb,CAMA,IAAImJ,EAAezI,EAAIqG,MACnB+C,GAAmBC,MAAMZ,IAAiBA,EAAe1N,KAAKmM,MAAMvB,EAAU1W,QAAUU,KAAK2L,MAC7FgO,EAAiC,OAAbtJ,EAAIoG,MAAiBpG,EAAIsG,WAAavL,KAAKmM,MAAMvB,EAAUzW,kBAAoBS,KAAK2L,MACxGiO,EAAsC,IAAvBvJ,EAAIuG,IAAIoC,aAAqBP,EAAY,GAAKA,GAAa,KAgB9E,IAdIgB,GAAmBE,GAAqBC,KACtCD,GACF3D,EAAUhR,MAAM,WAAWhL,OAAOgG,KAAK8K,UAAUxe,GAAG4a,GAAI,uCAG1DmJ,EAAImG,OAAQ,EACZnG,EAAIuG,IAAIJ,QAERnG,EAAIuG,IAAIS,mBAAqB,aAE7BrX,KAAK8K,UAAUxe,GAAK,IAAI0pB,EAAUE,QAAQ7F,EAAI+F,QAAS/F,EAAIgG,SAAUhG,EAAI/D,IAAK+D,EAAI8F,OAClF9F,EAAMrQ,KAAK8K,UAAUxe,IAGI,IAAvB+jB,EAAIuG,IAAIoC,WAAkB,CAC5BhD,EAAU/Q,MAAM,cAAgBoL,EAAInJ,GAAK,IAAMmJ,EAAI8F,MAAQ,YAE3D,IACE,IAAI0D,EAAe7Z,KAAKsX,MAAMnQ,QAAQ2S,aAAe,0BACrDzJ,EAAIuG,IAAImD,KAAK,OAAQ/Z,KAAKsX,MAAM/O,SAASvI,KAAKsX,MAAMnQ,QAAQ6S,WAEpB,IAA7B3J,EAAIuG,IAAIqD,kBAEjB5J,EAAIuG,IAAIqD,iBAAiB,eAAgBJ,GAGvC7Z,KAAKsX,MAAMnQ,QAAQ+S,kBACrB7J,EAAIuG,IAAIsD,iBAAkB,GAE5B,MAAOC,GASP,OARAnE,EAAUhR,MAAM,oBAAsBmV,EAAGzjB,YAEpCsJ,KAAKsX,MAAM1N,WACd5J,KAAKsX,MAAMpL,qBAAqB8J,EAAUvY,OAAOG,SAAU,oBAG7DoC,KAAKsX,MAAM/H,aAOb,IAAI6K,EAAW,WAGb,GAFA/J,EAAIiG,KAAO,IAAInO,KAEXR,EAAM2P,MAAMnQ,QAAQkT,cAAe,CACrC,IAAIC,EAAU3S,EAAM2P,MAAMnQ,QAAQkT,cAElC,IAAK,IAAIE,KAAUD,EACbttB,OAAOkB,UAAUC,eAAe1B,KAAK6tB,EAASC,IAChDlK,EAAIuG,IAAIqD,iBAAiBM,EAAQD,EAAQC,IAK/ClK,EAAIuG,IAAIvJ,KAAKgD,EAAI1W,OAKnB,GAAI0W,EAAI8F,MAAQ,EAAG,CAGjB,IAAIqE,EAAwF,IAA9EpP,KAAKqP,IAAIrP,KAAKmM,MAAMvB,EAAU1W,QAAUU,KAAK2L,MAAOP,KAAKsP,IAAIrK,EAAI8F,MAAO,IACtF5L,YAAW,WAET6P,MACCI,QAEHJ,IAGF/J,EAAI8F,QAEAnW,KAAKsX,MAAMrK,YAAc+I,EAAU1N,WAAWpa,UAAU+e,YACtDoD,EAAI+F,QAAQ5T,WAAaxC,KAAKyQ,OAASJ,EAAI+F,QAAQvW,WAAWtJ,OAChEyJ,KAAKsX,MAAMrK,UAAUoD,EAAI+F,QAAQvW,WAAW,IAE5CG,KAAKsX,MAAMrK,UAAUoD,EAAI+F,UAIzBpW,KAAKsX,MAAMnK,YAAc6I,EAAU1N,WAAWpa,UAAUif,WAC1DnN,KAAKsX,MAAMnK,UAAUkD,EAAI1W,WAG3Bqc,EAAU/Q,MAAM,qBAA6B,IAAN3Y,EAAU,QAAU,UAAY,8BAAgC+jB,EAAIuG,IAAIoC,cAUnHI,eAAgB,SAAwB/I,GACtC2F,EAAU/Q,MAAM,oBAEhB,IAAK,IAAI3Y,EAAI0T,KAAK8K,UAAUvU,OAAS,EAAGjK,GAAK,EAAGA,IAC1C+jB,IAAQrQ,KAAK8K,UAAUxe,IACzB0T,KAAK8K,UAAU7G,OAAO3X,EAAG,GAK7B+jB,EAAIuG,IAAIS,mBAAqB,aAE7BrX,KAAKgY,4BASPsB,gBAAiB,SAAyBhtB,GACxC,IAAI+jB,EAAMrQ,KAAK8K,UAAUxe,GAER,OAAb+jB,EAAIoG,OACNpG,EAAIoG,KAAO,IAAItO,MAGjBnI,KAAKwZ,gBAAgBltB,IAevBkkB,WAAY,SAAoBH,GAC9B,IACE,OAAOA,EAAIyG,cACX,MAAOzd,GACP,GAAkB,gBAAdA,EAAEoL,QACJ,MAAMpL,EAGR2G,KAAKsX,MAAM/H,WAAW,yBAW1BgJ,eAAgB,SAAwB9I,GACtCuG,EAAU/Q,MAAM,6BAEhB,IAAI6S,EAAO9X,KAAK2X,aAAanc,MAAM,CACjCyL,KAAM,cAGJwI,GACFqI,EAAKvR,MAAMkJ,EAAKpK,QAGlB,IAAIgL,EAAM,IAAI2F,EAAUE,QAAQ4B,EAAKzS,OAAQrF,KAAK+X,sBAAsBjqB,KAAKkS,KAAMA,KAAKsX,MAAMlH,UAAUtiB,KAAKkS,KAAKsX,QAASQ,EAAKzS,OAAOzC,aAAa,QAEpJ5C,KAAK8K,UAAU5H,KAAKmN,GAEpBrQ,KAAKgY,4BAQPzK,MAAO,WACL,IAAI/E,EAASxI,KAEbyN,aAAazN,KAAKsX,MAAM7N,cAExBzJ,KAAKgY,2BAELhY,KAAKsX,MAAM7N,aAAec,YAAW,WACnC,OAAO/B,EAAO8O,MAAM9M,YACnB,MAOLgE,aAAc,WACZxO,KAAKgY,2BAELvK,aAAazN,KAAKsX,MAAM7N,eAU1BuO,yBAA0B,WACnBhY,KAAK8K,UAGRkL,EAAU/Q,MAAM,wCAA0CjF,KAAK8K,UAAUvU,OAAS,aAFlFyf,EAAU/Q,MAAM,2DAKbjF,KAAK8K,WAAuC,IAA1B9K,KAAK8K,UAAUvU,SAIlCyJ,KAAK8K,UAAUvU,OAAS,GAC1ByJ,KAAKwZ,gBAAgB,GAGnBxZ,KAAK8K,UAAUvU,OAAS,GAAK6U,KAAKuP,IAAI3a,KAAK8K,UAAU,GAAGwB,IAAMtM,KAAK8K,UAAU,GAAGwB,KAAOtM,KAAK9T,QAC9F8T,KAAKwZ,gBAAgB,MAW3B,IAAIoB,EAAY7E,EAAKta,QACjBof,EAAW9E,EAAKxa,OAilBpB,OAljBAqf,EAAUhS,UAAY,SAAU2L,GAC9BvU,KAAKsX,MAAQ/C,EACbvU,KAAKyQ,MAAQ,UACb,IAAIlI,EAAUgM,EAAWhM,QAEzB,GAA+B,IAA3BA,EAAQ3E,QAAQ,QAA4C,IAA5B2E,EAAQ3E,QAAQ,QAAe,CAGjE,IAAIkX,EAAc,GAEkB,OAAhCvG,EAAWpN,QAAQuB,UAAkD,WAA7Bxc,OAAO6uB,SAASrS,SAC1DoS,GAAe,KAEfA,GAAe,MAGjBA,GAAe,MAAQ5uB,OAAO6uB,SAASrF,KAEV,IAAzBnN,EAAQ3E,QAAQ,KAClBkX,GAAe5uB,OAAO6uB,SAASC,SAAWzS,EAE1CuS,GAAevS,EAGjBgM,EAAWhM,QAAUuS,IAIzBF,EAAUhS,UAAU1a,UAAY,CAO9B+sB,aAAc,WACZ,OAAOJ,EAAS,OAAQ,CACtB,MAASD,EAAU9e,GAAGY,QACtB,GAAMsD,KAAKsX,MAAMxc,OACjB,QAAW,SAafogB,mBAAoB,SAA4B7J,EAAU8J,GACxD,IAAI3D,EAQJ,GAAsB,KALpBA,EADEnG,EAASC,uBACFD,EAASC,uBAAuBsJ,EAAU9e,GAAGW,OAAQ,SAErD4U,EAASP,qBAAqB,iBAG9Bva,OACT,OAAO,EAQT,IALA,IAAIyO,EAAQwS,EAAO,GACfxH,EAAY,GACZrO,EAAO,GAGFrV,EAAI,EAAGA,EAAI0Y,EAAMnF,WAAWtJ,OAAQjK,IAAK,CAChD,IAAI+M,EAAI2L,EAAMnF,WAAWvT,GAEzB,GALO,wCAKH+M,EAAEuJ,aAAa,SACjB,MAGiB,SAAfvJ,EAAEmJ,SACJb,EAAOtI,EAAE6d,YAETlH,EAAY3W,EAAEmJ,SAIlB,IAAI4Y,EAAc,2BAkBlB,OAfEA,GADEpL,GAGa,UAGbrO,IACFyZ,GAAe,MAAQzZ,GAGzBiZ,EAAU5V,MAAMoW,GAEhBpb,KAAKsX,MAAMpL,qBAAqBiP,EAAenL,GAE/ChQ,KAAKsX,MAAMxH,iBAEJ,GASTjF,OAAQ,aAURsB,SAAU,WAERnM,KAAKqb,eAGLrb,KAAKsb,OAAS,IAAIC,UAAUvb,KAAKsX,MAAM/O,QAAS,QAChDvI,KAAKsb,OAAOE,OAASxb,KAAKyb,QAAQ3tB,KAAKkS,MACvCA,KAAKsb,OAAOI,QAAU1b,KAAK2b,SAAS7tB,KAAKkS,MACzCA,KAAKsb,OAAOM,QAAU5b,KAAK6b,SAAS/tB,KAAKkS,MACzCA,KAAKsb,OAAOQ,UAAY9b,KAAK+b,oBAAoBjuB,KAAKkS,OAWxDmR,YAAa,SAAqBE,GAGhC,GAFYrR,KAAKkb,mBAAmB7J,EAAUuJ,EAAUnd,OAAOG,UAG7D,OAAOgd,EAAUnd,OAAOG,UAY5Boe,mBAAoB,SAA4BvX,GAC9C,IAAIO,GAAQ,EAERrX,EAAK8W,EAAQ7B,aAAa,SAEZ,iBAAPjV,EACTqX,EAAQ,4BACCrX,IAAOitB,EAAU9e,GAAGY,UAC7BsI,EAAQ,4BAA8BrX,GAGxC,IAAIsuB,EAAMxX,EAAQ7B,aAAa,WAQ/B,MANmB,iBAARqZ,EACTjX,EAAQ,8BACS,QAARiX,IACTjX,EAAQ,8BAAgCiX,IAGtCjX,IACFhF,KAAKsX,MAAMpL,qBAAqB0O,EAAUnd,OAAOG,SAAUoH,GAE3DhF,KAAKsX,MAAMxH,iBAEJ,IAYXiM,oBAAqB,SAA6BtX,GAChD,GAAuC,IAAnCA,EAAQ9K,KAAKiK,QAAQ,WAAqD,IAAlCa,EAAQ9K,KAAKiK,QAAQ,SAAgB,CAE/E,IAAIjK,EAAO8K,EAAQ9K,KAAKiI,QAAQ,mBAAoB,IACpD,GAAa,KAATjI,EAAa,OACjB,IAAIuiB,GAAc,IAAIja,WAAYC,gBAAgBvI,EAAM,YAAYqd,gBAEpEhX,KAAKsX,MAAMtK,SAASkP,GAEpBlc,KAAKsX,MAAMpK,SAASzI,EAAQ9K,MAGxBqG,KAAKgc,mBAAmBE,IAE1Blc,KAAKmR,YAAY+K,QAEd,GAAwC,IAApCzX,EAAQ9K,KAAKiK,QAAQ,WAAkB,CAGhD,IAAIuY,GAAgB,IAAIla,WAAYC,gBAAgBuC,EAAQ9K,KAAM,YAAYqd,gBAE9EhX,KAAKsX,MAAMtK,SAASmP,GAEpBnc,KAAKsX,MAAMpK,SAASzI,EAAQ9K,MAE5B,IAAIyiB,EAAUD,EAAcvZ,aAAa,iBAEzC,GAAIwZ,EAAS,CACX,IAAI7T,EAAUvI,KAAKsX,MAAM/O,SAEFA,EAAQ3E,QAAQ,SAAW,GAAKwY,EAAQxY,QAAQ,SAAW,GAAK2E,EAAQ3E,QAAQ,QAAU,KAG/G5D,KAAKsX,MAAMpL,qBAAqB0O,EAAUnd,OAAOU,SAAU,gDAE3D6B,KAAKsX,MAAMjP,QAEXrI,KAAKsX,MAAM/O,QAAU6T,EAErBpc,KAAKmM,iBAGPnM,KAAKsX,MAAMpL,qBAAqB0O,EAAUnd,OAAOG,SAAU,2BAE3DoC,KAAKsX,MAAMxH,oBAER,CACL,IAAIuM,EAASrc,KAAKsc,YAAY7X,EAAQ9K,MAElC+F,GAAO,IAAIuC,WAAYC,gBAAgBma,EAAQ,YAAYrF,gBAC/DhX,KAAKsb,OAAOQ,UAAY9b,KAAKuc,WAAWzuB,KAAKkS,MAE7CA,KAAKsX,MAAMnG,YAAYzR,EAAM,KAAM+E,EAAQ9K,QAY/CiW,YAAa,SAAqBH,GAChC,GAAIzP,KAAKsb,QAAUtb,KAAKsb,OAAOtC,aAAeuC,UAAUiB,OAAQ,CAC1D/M,GACFzP,KAAKsX,MAAMjK,KAAKoC,GAGlB,IAAIgN,EAAQ5B,EAAS,QAAS,CAC5B,MAASD,EAAU9e,GAAGY,UAGxBsD,KAAKsX,MAAMrK,UAAUwP,EAAMpX,QAE3B,IAAIqX,EAAc9B,EAAUxV,UAAUqX,GAEtCzc,KAAKsX,MAAMnK,UAAUuP,GAErB,IACE1c,KAAKsb,OAAOjO,KAAKqP,GACjB,MAAOrjB,GACPuhB,EAAUzV,KAAK,iCAInBnF,KAAKsX,MAAMxH,iBAQbA,cAAe,WACb8K,EAAU3V,MAAM,uCAEhBjF,KAAKqb,gBAOPiB,YAAa,SAAqBtO,GAChC,MAAO,YAAcA,EAAS,cAQhCqN,aAAc,WACZ,GAAIrb,KAAKsb,OACP,IACEtb,KAAKsb,OAAOM,QAAU,KACtB5b,KAAKsb,OAAOI,QAAU,KACtB1b,KAAKsb,OAAOQ,UAAY,KACxB9b,KAAKsb,OAAOmB,QACZ,MAAOpjB,GACPuhB,EAAU3V,MAAM5L,EAAEoL,SAItBzE,KAAKsb,OAAS,MAShB3K,YAAa,WACX,OAAO,GAQTkL,SAAU,SAAkBxiB,GACtB2G,KAAKsX,MAAM1N,YAAc5J,KAAKsX,MAAMzN,eACtC+Q,EAAU5V,MAAM,iCAEhBhF,KAAKsX,MAAMxH,iBACFzW,GAAgB,OAAXA,EAAEsjB,OAAkB3c,KAAKsX,MAAM1N,WAAa5J,KAAKsb,QAK/DV,EAAU5V,MAAM,iCAEhBhF,KAAKsX,MAAMpL,qBAAqB0O,EAAUnd,OAAOG,SAAU,0EAE3DoC,KAAKsX,MAAMxH,iBAEX8K,EAAU3V,MAAM,qBASpByM,kBAAmB,SAA2BlG,GAC5CoP,EAAU5V,MAAM,6DAEhBhF,KAAKsX,MAAMpL,qBAAqB0O,EAAUnd,OAAOG,SAAUgd,EAAUtc,eAAeI,cAEhF8M,GACFA,EAAS/e,KAAKuT,KAAKsX,OAGrBtX,KAAKsX,MAAMxH,iBAQbH,qBAAsB,aAKtBE,kBAAmB,aAQnB8L,SAAU,SAAkB3W,GAC1B4V,EAAU5V,MAAM,mBAAqBA,GAErChF,KAAKsX,MAAMpL,qBAAqB0O,EAAUnd,OAAOG,SAAU,0EAE3DoC,KAAK4P,eAQPpF,QAAS,WACP,IAAI7Q,EAAOqG,KAAKsX,MAAMrN,MAEtB,GAAItQ,EAAKpD,OAAS,IAAMyJ,KAAKsX,MAAMvN,OAAQ,CACzC,IAAK,IAAIzd,EAAI,EAAGA,EAAIqN,EAAKpD,OAAQjK,IAC/B,GAAgB,OAAZqN,EAAKrN,GAAa,CACpB,IAAI0hB,OAAS,EAGXA,EADc,YAAZrU,EAAKrN,GACE0T,KAAKib,eAAe5V,OAEpB1L,EAAKrN,GAGhB,IAAIswB,EAAYhC,EAAUxV,UAAU4I,GAEpChO,KAAKsX,MAAMrK,UAAUe,GAErBhO,KAAKsX,MAAMnK,UAAUyP,GAErB5c,KAAKsb,OAAOjO,KAAKuP,GAIrB5c,KAAKsX,MAAMrN,MAAQ,KA2BvBsS,WAAY,SAAoB9X,GAC9B,IAAI/E,EAEA+c,EAAQ,wDAEZ,GAAIhY,EAAQ9K,OAAS8iB,EASnB,OARAzc,KAAKsX,MAAMpK,SAASuP,GAEpBzc,KAAKsX,MAAMtK,SAASvI,QAEfzE,KAAKsX,MAAMzN,eACd7J,KAAKsX,MAAMxH,iBAIR,GAAsC,IAAlCrL,EAAQ9K,KAAKkjB,OAAO,WAI7B,GAFAnd,GAAO,IAAIuC,WAAYC,gBAAgBuC,EAAQ9K,KAAM,YAAYqd,iBAE5DhX,KAAKgc,mBAAmBtc,GAC3B,WAEG,CACL,IAAI/F,EAAOqG,KAAKsc,YAAY7X,EAAQ9K,MAEpC+F,GAAO,IAAIuC,WAAYC,gBAAgBvI,EAAM,YAAYqd,gBAG3D,OAAIhX,KAAKkb,mBAAmBxb,EAAMkb,EAAUnd,OAAOC,YAAnD,EAKIsC,KAAKsX,MAAMzN,eAA8C,aAA7BnK,EAAKod,WAAWta,UAAoE,gBAAzC9C,EAAKod,WAAWla,aAAa,SACtG5C,KAAKsX,MAAMtK,SAAStN,QAEpBM,KAAKsX,MAAMpK,SAAS0N,EAAUxV,UAAU1F,UAO1CM,KAAKsX,MAAMlH,UAAU1Q,EAAM+E,EAAQ9K,OAQrC8hB,QAAS,WACPb,EAAU3V,MAAM,kBAEhB,IAAI8X,EAAQ/c,KAAKib,eAEjBjb,KAAKsX,MAAMrK,UAAU8P,EAAM1X,QAE3B,IAAI2X,EAAcpC,EAAUxV,UAAU2X,GAEtC/c,KAAKsX,MAAMnK,UAAU6P,GAErBhd,KAAKsb,OAAOjO,KAAK2P,IAcnBxM,WAAY,SAAoBxC,GAC9B,OAAOA,GAQTT,MAAO,WACLvN,KAAKsX,MAAM9J,SAObgB,aAAc,WACZf,aAAazN,KAAKsX,MAAM7N,cAExBzJ,KAAKsX,MAAM9M,QAAQ1c,KAAKkS,KAAKsX,MAA7BtX,KAIJrK,EAAS8F,QAAUsa,EAAKta,QACxB9F,EAAS4F,OAASwa,EAAKxa,OACvB5F,EAASgG,IAAMoa,EAAKpa,IACpBhG,EAASsnB,KAAOlH,EAAKkH,KACrBtnB,EAASiG,MAAQma,EAAKna,MAEfma,GAzwLwDhqB,EAAOD,QAAUD,M,+CCD5F,YAEe,QAAIqxB,K,gBCYnB,IAAIC,EAASC,EAAQ,IACjBC,EAAeD,EAAQ,KAwBvBE,EAAY,GAKZC,EAAU,GAKVC,EAAWL,EAAOM,OAAOC,MAG7B3xB,EAAOD,QAAU,CAMb6xB,mBAAoB,SAASC,GACzBT,EAAOQ,mBAAmBC,IAO9BC,sBAAuB,SAASD,GAC5BT,EAAOU,sBAAsBD,IAMjCE,iBAAkB,SAAS3W,GACvBgW,EAAOW,iBAAiB3W,IAM5B4W,UAAW,SAAS7W,EAAI8W,EAAY7W,GAChC,IAAI8W,EAAS,IAAId,EAAOK,EAAUtW,EAAI8W,EAAY7W,GAOlD,OANGD,GACCoW,EAAUpW,GAAMoW,EAAUpW,IAAO,GACjCoW,EAAUpW,GAAIhE,KAAK+a,IAEnBV,EAAQra,KAAK+a,GAEVA,GASXC,gBAAiB,SAASrZ,EAAOqC,GAE7B,IADA,IAAI3a,EAAI2a,EAAKoW,EAAUpW,IAAO,GAAMqW,EAC5BjxB,EAAI,EAAGA,EAAIC,EAAEgK,OAAQjK,IACzBC,EAAED,GAAG6xB,SAAStZ,IAOtBuZ,YAAa,SAAUvZ,GACnB2Y,EAAW3Y,EAEX,IADA,IAAIvY,EAAI,EACFA,EAAIixB,EAAQhnB,OAAQjK,IACtBixB,EAAQjxB,GAAG6xB,SAAStZ,GAGxB,IAAI,IAAIqC,KAAMoW,EAAW,CACrB,IAAI/wB,EAAI+wB,EAAUpW,IAAO,GACzB,IAAI5a,EAAI,EAAGA,EAAIC,EAAEgK,OAAQjK,IACrBC,EAAED,GAAG6xB,SAAStZ,KAO1B4Y,OAAQN,EAAOM,OAIfJ,aAAcA,I,8BChIlB,yKAgBA,MAAMY,EAASb,EAAQ,GAAqBW,UAAUM,GAMtD,IAAIC,EAKAC,GAAoB,EAkCxB,SAASC,EAAsBrX,GACvBsX,IAAUC,wBAITD,IAAUE,YAAY,CACvBC,YAAazX,EAAQyX,YACrBC,gBAAiB1X,EAAQ0X,gBACzBC,SAAU3X,EAAQ2X,SAClBC,UAAW5X,EAAQ4X,UACnBC,gBAAiB7X,EAAQ6X,gBACzBC,mBAAoB9X,EAAQ8X,mBAC5BC,OAAQ/X,EAAQ+X,OAChBC,OAAQhY,EAAQgY,UAEhBlB,EAAOjZ,MAAM,+CA0EN,SAASoa,EAAWC,EAAMlY,GAMrCnH,KAAKsf,YAAc,IAAIC,IACvBvf,KAAKwf,aAAe,IAAIC,IACxBzf,KAAKqf,KAAOA,EACZrf,KAAKmH,QAAUA,GAAW,GAE1BnH,KAAK0f,4BACC1f,KAAKmH,QAAQyX,aAAe5e,KAAKmH,QAAQ0X,iBAAmB7e,KAAKmH,QAAQwY,kBAK1B,IAAzCP,EAAWQ,0BACnB5f,KAAK0f,8BACL1f,KAAK6f,iCACC7f,KAAKmH,QAAQ0Y,iCACfC,IAAQC,gBACRvB,EAAsBxe,KAAKmH,SAnIvC,SAA0BA,GACjBoX,IACDyB,IAAWC,WACP9Y,EAAQ+Y,iBAAmBC,KACf,GACE,OACI5f,EACC,IAAMie,EAAsBrX,IAEnDoX,GAAoB,GA4HhB6B,CAAiBpgB,KAAKmH,SAGrBnH,KAAKmH,QAAQ+X,QACdjB,EAAO9Y,KAAK,4BAUpBnF,KAAKqgB,oBAAsB,IAAId,IAE/BH,EAAWkB,UAAUC,IAAIvgB,MA7E7Bof,EAAWxU,KAAO,SAASzD,GACvBiY,EAAWoB,oBAAsBrZ,EAAQsZ,mBACF,iBAA5BtZ,EAAQuZ,kBACftB,EAAWsB,gBAAkBvZ,EAAQuZ,iBAGE,iBAAhCvZ,EAAQwZ,sBACfvB,EAAWuB,oBAAsBxZ,EAAQwZ,qBAGC,iBAAnCxZ,EAAQyZ,yBACfxB,EAAWwB,uBAAyBzZ,EAAQyZ,wBAGhDxB,EAAWQ,0BAA4BzY,EAAQyY,2BAiEnDR,EAAWoB,oBAAqB,EAChCpB,EAAWuB,oBAAsB,IACjCvB,EAAWsB,gBAAkB,IAC7BtB,EAAWQ,2BAA4B,EACvCR,EAAWyB,UAAYA,IAEvB7zB,OAAOC,eAAemyB,EAAY,YAAa,CAM3CjyB,IAAG,KACMmxB,IACDA,EAAa,IAAIwC,KAGdxC,KAQfc,EAAWlxB,UAAU6yB,iBAAmB,SAASC,GAC7ChhB,KAAKihB,gBAAgBD,GAErB,IACI,MAAME,EACA,IAAIC,IACFH,EACA5B,EAAWuB,oBACXvB,EAAWsB,gBACX1gB,KAAKwf,cAEb0B,EAASnE,MAAMqC,EAAWoB,oBAC1BxgB,KAAKsf,YAAY8B,IAAIJ,EAAe9Z,GAAIga,GAC1C,MAAO7nB,GACL4kB,EAAOjZ,MAAO,iDAAgD3L,KAItE+lB,EAAWiC,WAAa,GAExBjC,EAAWkC,gBAAkB,SAASC,EAAQ/V,GAC1C,IAAK4T,EAAWoB,mBACZ,OAEJ,MAAMa,EAAa,IAAIG,IAAWD,EAAQnC,EAAWuB,oBACjDnV,GAEJxL,KAAKqhB,WAAWne,KAAKme,GACrBA,EAAWtE,SAGfqC,EAAWlxB,UAAUuzB,sBAAwB,SAASC,GAC7CtC,EAAWoB,oBAGhBxgB,KAAKwf,aAAamC,GAAGC,IAA8BF,IAGvDtC,EAAWlxB,UAAU2zB,yBAA2B,SAASH,GAChDtC,EAAWoB,oBAGhBxgB,KAAKwf,aAAasC,eAAeF,IAA8BF,IAGnEtC,EAAWlxB,UAAU6zB,0BAA4B,SAASL,GACtD1hB,KAAKwf,aAAamC,GAAGC,IAAkCF,IAG3DtC,EAAWlxB,UAAU8zB,6BAA+B,SAASN,GACzD1hB,KAAKwf,aAAasC,eACdF,IAAkCF,IAG1CtC,EAAWlxB,UAAU+zB,2BAA6B,SAASP,GACvD1hB,KAAKwf,aAAamC,GAAGC,IAAmCF,IAG5DtC,EAAWlxB,UAAUg0B,8BAAgC,SAASR,GAC1D1hB,KAAKwf,aAAasC,eACdF,IACAF,IAGRtC,EAAWlxB,UAAUi0B,yBAA2B,SAAST,GACrD1hB,KAAKwf,aAAamC,GAAGC,IAAkCF,IAG3DtC,EAAWlxB,UAAUk0B,4BAA8B,SAASV,GACxD1hB,KAAKwf,aAAasC,eAAeF,IAC7BF,IASRtC,EAAWlxB,UAAUm0B,0BAA4B,SAASX,GACtD1hB,KAAKwf,aAAamC,GAAGC,IAAmCF,IAS5DtC,EAAWlxB,UAAUo0B,qBAAuB,SAASC,GAC5CzC,IAAQ0C,+BAMbxiB,KAAKyiB,yBAA2B,IAAIC,IAChC1iB,KAAKwf,aACLJ,EAAWwB,wBAEf2B,EAAWZ,GACPgB,oBACA,IAAM3iB,KAAKyiB,yBAAyBG,iBACxCL,EAAWZ,GACPgB,kBACA,IAAM3iB,KAAKyiB,yBAAyBI,iBAdpC5E,EAAO9Y,KAAK,kEAuBpBia,EAAWlxB,UAAU40B,kBAAoB,WACrC,OAAO9iB,KAAKyiB,yBACNziB,KAAKyiB,yBAAyBK,oBAC9B,MASV1D,EAAWlxB,UAAU60B,6BAA+B,SAASrB,GACzD1hB,KAAKwf,aAAasC,eAAeF,IAAmCF,IAGxEtC,EAAWlxB,UAAU80B,QAAU,WAC3B,IAQShjB,KAAKqgB,oBAAoB4C,MAC1BjjB,KAAKwf,aAAa0D,KAAKtB,KAE3B,IAAK,MAAMuB,KAAanjB,KAAKqgB,oBAAoB+C,SAC7CpjB,KAAKqjB,cAAcF,EAAUG,KAEjC,IAAK,MAAMC,KAASvjB,KAAKsf,YAAY/Z,OACjCvF,KAAKwjB,iBAAiBD,GAEtBvjB,KAAKwf,cACLxf,KAAKwf,aAAaiE,qBAlB1B,QAqBIrE,EAAWkB,UAAUoD,OAAO1jB,QAIpCof,EAAWuE,eAAiB,SAASpC,GACjC,GAAKnC,EAAWoB,mBAIhB,IAAK,IAAIl0B,EAAI,EAAGA,EAAI8yB,EAAWiC,WAAW9qB,OAAQjK,IAC9C,GAAI8yB,EAAWiC,WAAW/0B,GAAGi1B,SAAWA,EAAQ,CACzBnC,EAAWiC,WAAWpd,OAAO3X,EAAG,GAExC,GAAGs3B,OACd,QAUZxE,EAAWlxB,UAAUs1B,iBAAmB,SAASD,GAC7C,MAAMrC,EAAWlhB,KAAKsf,YAAYnyB,IAAIo2B,GAElCrC,IACAA,EAAS0C,OACT5jB,KAAKsf,YAAYoE,OAAOH,KAQhCnE,EAAWlxB,UAAU+yB,gBAAkB,SAASqC,GAC5CtjB,KAAKwjB,iBAAiBF,EAAIpc,KAW9BkY,EAAWlxB,UAAU21B,eAAiB,SAASP,EAAKQ,GAChD,IAAK9jB,KAAK0f,4BACN,OACG,GAAI1f,KAAKqgB,oBAAoB0D,IAAIT,EAAIpc,IAGxC,YAFA+W,EAAOjZ,MAAM,gDAKjBiZ,EAAO/Y,KAAM,0BAAyBoe,QAEtC,MAAMU,EACA,IAAIvF,IACF6E,EACA,CACIpE,OAAQlf,KAAKmH,QAAQ+X,OACrB4E,iBAGZ9jB,KAAKqgB,oBAAoBe,IAAIkC,EAAIpc,GAAI8c,IASzC5E,EAAW6E,0BAA4B,WACnC,MAAMC,EAAc,IAAIpD,IAExB,IAAK,MAAMqD,KAAc/E,EAAWkB,UAChC,IAAK,MAAM8D,KAAMD,EAAW9D,oBAAoB+C,SAC5Cc,EAAY3D,IAAI6D,GAIxB,OAAOF,GAMX9E,EAAWlxB,UAAUm1B,cAAgB,SAASC,GAC1C,MAAMe,EAAoBrkB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAEvDmd,IAUsC,IAAlCrkB,KAAKqgB,oBAAoB4C,MACzBjjB,KAAKwf,aAAa0D,KAAKtB,KAE3B5hB,KAAKqgB,oBAAoBqD,OAAOJ,EAAIpc,IAGpCmd,EAAkBC,uBAW1BlF,EAAWlxB,UAAUq2B,mBAAqB,WACtC,OAAOvkB,KAAK0f,6BAShBN,EAAWlxB,UAAUs2B,gCAAkC,SAASlB,EAAKmB,GACjE,MAAMC,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAASC,sBAAsBF,IAQvCrF,EAAWlxB,UAAU02B,6BAA+B,SAAStB,GACzD,MAAMoB,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAASE,gCAUjBxF,EAAWlxB,UAAU22B,cAAgB,SAASvB,EAAKwB,EAAO7d,GACtD,MAAMyd,EAAWpB,GAAOtjB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAEzDuX,IAAUoG,cAAcC,EAAO7d,EAAMyd,IAUzCtF,EAAWlxB,UAAU62B,uBACf,SAAShI,EAAOiI,GACd,IAAK,MAAMZ,KAAMpkB,KAAKqgB,oBAAoB+C,SACtCgB,EAAGW,uBAAuBhI,EAAOiI,IAS7C5F,EAAWlxB,UAAU+2B,yBAA2B,SAASC,GACrD,IAAK,MAAMd,KAAMpkB,KAAKqgB,oBAAoB+C,SACtCgB,EAAGa,2BAIPjlB,KAAKqf,KAAK4F,yBAAyBC,IAQvC9F,EAAW+F,0BAA4B,SAASC,GAC5C,MAAMC,EAAYjG,EAAW6E,4BAE7B,GAAIoB,EAAUpC,KACV,IAAK,MAAMmB,KAAMiB,EACb5G,IAAU0G,0BAA0BC,EAAahB,QAGrD3F,IAAU0G,0BAA0BC,EAAa,OAmBzDhG,EAAWlxB,UAAUo3B,4BAA8B,SAC3ChC,EACA0B,EACAO,EACAC,EACAC,EACAC,GACJ,MAAMhB,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAASY,4BACLN,EACAO,EACAC,EACAC,EACAC,IAWZtG,EAAWuG,uBAAyB,SAAStsB,GACzC,MAAM2L,EACA3L,aAAausB,IAthBvB,SAA2C5gB,GACvC,MAAMmL,EAAM,IAAI9Y,MAkBhB,OAfA8Y,EAAI/L,MAAQY,EAAMZ,MAGlB+L,EAAItjB,MAAQmY,EAAMnY,MAAQ,kBAAoBmY,EAAM6gB,KAAO7gB,EAAM6gB,IAAI7gB,OAC9DA,EAAM6gB,IAAI7gB,MAAMnY,KAAQ,MAAKmY,EAAM6gB,IAAI7gB,MAAMnY,KAAS,IAK7DsjB,EAAI2V,eAAiB9gB,EAAM6gB,KAAO7gB,EAAM6gB,IAAIE,YACtCnZ,KAAKwL,UAAUpT,EAAM6gB,IAAIE,aAAe,GAG9C5V,EAAI1L,QAAUO,EAAMP,QAEb0L,EAogBG6V,CAAkC3sB,GAAKA,EAC3CgsB,EAAYjG,EAAW6E,4BAE7B,GAAIoB,EAAUpC,KACV,IAAK,MAAMmB,KAAMiB,EACb5G,IAAUkH,uBAAuB3gB,EAAOof,QAG5C3F,IAAUkH,uBAAuB3gB,EAAO,OAUhDoa,EAAWlxB,UAAU+3B,sBAAwB,SAAS5sB,EAAGiqB,GACrD,MAAMoB,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAASuB,sBAAsB5sB,IAUvC+lB,EAAWlxB,UAAUg4B,uBAAyB,SAAS7sB,EAAGiqB,GACtD,MAAMoB,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAASwB,uBAAuB7sB,IAUxC+lB,EAAWlxB,UAAUi4B,uBAAyB,SAAS9sB,EAAGiqB,GACtD,MAAMoB,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAASyB,uBAAuB9sB,IAUxC+lB,EAAWlxB,UAAUk4B,wBAA0B,SAAS/sB,EAAGiqB,GACvD,MAAMoB,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAAS0B,wBAAwB/sB,IAUzC+lB,EAAWlxB,UAAUm4B,0BAA4B,SAAShtB,EAAGiqB,GACzD,MAAMoB,EAAW1kB,KAAKqgB,oBAAoBlzB,IAAIm2B,EAAIpc,IAE9Cwd,GACAA,EAAS2B,0BAA0BhtB,IAS3C+lB,EAAWkH,QAAU,SAAS55B,GAC1B,MAAM65B,EAAe,IAAIzF,IAMzB,IAAK,MAAM0F,KAASpH,EAAWkB,UAAW,CACtC,GAAIkG,EAAM3G,iCACN,OAGA2G,EAAMnG,oBAAoB4C,MAC1BsD,EAAahG,IAAIiG,EAAMnG,oBAAoB+C,SAASqD,OAAOl5B,OAInE,GAAIg5B,EAAatD,KACb,IAAK,MAAMyD,KAAcH,EACrB9H,IAAUkI,mBAAmBj6B,EAAGg6B,QAGpCjI,IAAUkI,mBAAmBj6B,EAAG,OAYxC0yB,EAAWlxB,UAAU04B,aAAe,SAASC,EAASC,GAUlD,OAPA1H,EAAWyB,UAAUkG,UACjBC,IACA,CACIC,OAAQJ,EACRC,YAGDrI,IAAUmI,aAAa5mB,KAAKmH,QAAQ+X,OAAQ2H,EAASC,IAGhE1H,EAAW8H,UAAY9J,EAAQ,KAAsC8J,UAOrE9H,EAAW+H,kBAAoB,SAASniB,GAChCA,aAAiB4gB,KAAmB5gB,EAAM6gB,IAC1CzG,EAAWuG,uBAAuB3gB,GAElCoa,EAAWkH,QAAQthB,IAa3Boa,EAAWgI,oBAAsB,SAASC,EAAOC,EAAa,IAC1D,IAAKD,EAGD,YAFApJ,EAAO9Y,KAAK,iCAKhB,IAAIoiB,EAIAA,EADiB,iBAAVF,EACMA,EAEA,CACTx6B,KAAMw6B,EACNC,cAIRrJ,EAAOrZ,IAAIgI,KAAKwL,UAAUmP,IAG1BvnB,KAAK6gB,UAAUkG,UAAUM,EAAOC,IAUpClI,EAAWoI,cAAgB,SAASC,EAAWH,EAAa,IACxDtnB,KAAK6gB,UAAUkG,UAAUU,EAAWH,M,6DChsBxCv7B,EAAOD,QA7GW,CAId47B,qBAAsB,2BAKtBC,oBAAqB,0BACrBC,kBAAmB,wBACnBC,6BAA8B,mCAC9Bn0B,yBAA0B,+BAC1Bo0B,uBAAwB,6BAOxBC,oBAAqB,0BAErBC,iCAAkC,uCAOlCC,oBAAqB,0BAQrBC,yBAA0B,+BAK1BC,2CAA4C,iDAE5CC,eAAgB,qBAMhBC,mBAAoB,yBAIpBC,kBAAmB,wBAMnBC,qBAAsB,2BAItBC,oBAAqB,0BAKrBC,6BAA8B,mCAK9BC,8BAA+B,oCAC/BC,4BAA6B,kCAC7BC,oBAAqB,0BAKrBC,wBAAyB,8BACzBC,sBAAuB,4BAMvBj1B,0BAA2B,gCAS3Bk1B,oBAAqB,0BASrBC,qBAAsB,6B,oiEC9EnB,MAAMC,EAAmB,cAMnBC,EAAY,OAMZC,EAAa,QAMbC,EAAU,KAOVC,EAAwB,UAOxBC,EAA2B,yBAO3BC,EAA4B,4BAQ5BC,EAA2B,2BAO3BC,EAA0B,YAO1BC,EACP,6BAOOC,EACP,4BAOOC,EAAsB,UAOtBC,EAAyB,cAMzBC,EAAoB,SAOpBC,EAA2B,gBAuB3BC,EAAmB,mBAYnBC,EAA0B,0BAS1BjD,EAAW,WAgBXkD,EAAe,eAWfC,EACP,kCAgBOC,EAAoB,oBAQpBC,EAAgB,sBAUhBC,EAAgB,gBAMhBC,EAAwB,WAGjC,MAAO,CACHC,OAHe,cAIfC,cAJe,cAKfxjB,KAAMgiB,IAUDyB,EACP,SAASC,EAAWC,EAAcC,GAChC,MAAO,CACH5jB,KAAMgiB,EACNuB,OAAQ,oBACRvtB,WAAY,EAAF,CACN,WAAc0tB,EACd,cAAiBC,GACdC,KAYZ,SAASC,EAAsBN,EAAQvtB,GAC1C,MAAO,CACHutB,SACAvtB,aACA8tB,OAAQ,aACR9jB,KAAMgiB,GAeP,MAAM+B,EAAoC,SAASC,EAAOhuB,GAC7D,MAAMutB,EAAS,2BAEf,MAAO,CACHA,SACAC,cAAeQ,EACfhuB,aACA8tB,OAAQP,EACRvjB,KAAMgiB,IAWDiC,EAAoB,SAASC,EAAeC,EAAQC,GAO7D,MAAO,CACHpuB,WAPe,CACf,eAAkBkuB,EAClBC,SACAC,OAKAx+B,KAAM,UACNoa,KAAMgiB,IAODqC,EAAuB,WAGhC,MAAO,CACHd,OAHW,aAIXC,cAJW,aAKXxjB,KAAMgiB,IAYDsC,EAA0B,SAASf,EAAQvtB,EAAa,IACjE,MAAO,CACHgK,KAAMgiB,EACN8B,OAAQ,iBACRP,SACAvtB,eAUKuuB,EAAyC,SAASvuB,EAAa,IAGxE,MAAO,CACHgK,KAAMgiB,EACN8B,OAAQ,mBACRP,OALW,WAMXvtB,eASKwuB,EAAoB,SAASjB,EAAQvtB,EAAa,IAC3D,MAAO,CACHgK,KAAMgiB,EACNuB,SACAO,OAAQ,SACR9tB,eAWKyuB,EAA8B,SAASC,EAAWp+B,GAC3D,MAAO,CACH0P,WAAY,CACR,WAAc0uB,EACdp+B,SAEJi9B,OAAQ,4BACRvjB,KAAMgiB,IASD2C,EAAiB,SAASpB,EAAQvtB,EAAa,IACxD,MAAO,CACHgK,KAAMgiB,EACNuB,SACAO,OAAQ,MACR9tB,eAOK4uB,EAA2B,WACpC,MAAO,CACH5kB,KAAMgiB,EACNuB,OAAQ,mBA+CHsB,EAAsB,SAAS7uB,GACxC,MAAO,CACHgK,KAAMgiB,EACNuB,OAAQ,YACRvtB,eA0BK8uB,EAA4B,SAAS9uB,GAC9C,MAAO,CACHgK,KAAMgiB,EACNuB,OAAQ,kBACRvtB,eAYD,SAAS+uB,EAA8BC,EAAQC,EAAkBC,GACpE,MAAO,CACHllB,KAAMgiB,EACNuB,OAAQ,uBACRvtB,WAAY,CACRgvB,SACAC,mBACAC,sBAYL,MAAMC,EAAiC,SAASzP,EAAMnN,GACzD,MAAO,CACHvI,KAAMgiB,EACNuB,OAAQ,uBACRvtB,WAAY,CACR0f,OACAnN,YAoBC6c,EAAkB,SAASpvB,GACpC,OAAO+tB,EAAkC,OAAQ/tB,K,6BCpjBrD,sGAGO,MAAMqvB,EAAQ,QAKRC,EAAY,YAKZC,EAAQ,S,8BCbrB,gEACA,MAAMvO,EAASF,oBAAUM,GAMnBoO,EAAU,CACZC,mBAAmB/qB,GAIRA,EAAOA,EAAKC,QAAQ,iBAAkB,IAAMD,EAEvDgrB,UAAUC,EAAWC,GACjB,IACIC,EAAKC,EADLpzB,EAAO,KAeX,OAZKozB,EAAQN,EAAQO,SAASJ,EAAW,eAAgBC,MAC7CC,EACEL,EAAQO,SACNJ,EACA,aACAC,MACZlzB,EAAO,CACHozB,MAAON,EAAQQ,cAAcF,GAC7BD,IAAKL,EAAQS,YAAYJ,KAI1BnzB,GAEXszB,cAAczoB,GACHA,EAAK2oB,UAAU,IAE1BC,cAAcC,GACF,eAAcA,EAE1BH,YAAY1oB,GACDA,EAAK2oB,UAAU,IAE1BG,YAAYR,GACA,aAAYA,EAExBS,SAAS/oB,GACEA,EAAK2oB,UAAU,GAE1BK,WAAWhpB,GACP,MAAM7K,EAAO,GACPqK,EAAQQ,EAAK2oB,UAAU,GAAGpqB,MAAM,KAUtC,OARApJ,EAAK8zB,MAAQzpB,EAAM0pB,QACnB/zB,EAAKg0B,KAAO3pB,EAAM0pB,QAClB/zB,EAAK8O,MAAQzE,EAAM0pB,QACa,KAA5B1pB,EAAMA,EAAMzN,OAAS,IACrByN,EAAM0M,MAEV/W,EAAKi0B,IAAM5pB,EAEJrK,GAEXk0B,WAAWC,GAEF,KAAIA,EAAML,SAASK,EAAMH,QAAQG,EAAMrlB,SACpCqlB,EAAMF,IAAIzqB,KAAK,OAE3B4qB,YAAYvpB,GACR,MAAM7K,EAAO,GACb,IAAIqK,EAAQQ,EAAK2oB,UAAU,GAAGpqB,MAAM,KAQpC,OANApJ,EAAKuN,GAAKlD,EAAM0pB,QAChB1pB,EAAQA,EAAM,GAAGjB,MAAM,KACvBpJ,EAAK9M,KAAOmX,EAAM0pB,QAClB/zB,EAAKq0B,UAAYhqB,EAAM0pB,QACvB/zB,EAAKs0B,SAAWjqB,EAAMzN,OAASyN,EAAM0pB,QAAU,IAExC/zB,GAQXu0B,aAAa1pB,GACT,MAAMR,EAAQQ,EAAK2oB,UAAU,IAAIpqB,MAAM,KAQvC,MAAO,CAPUiB,EAAM,GACNA,EAAM,GAGHA,EAAMzN,OAAS,EAAIyN,EAAM,GAAK,OAKtDmqB,YAAYjuB,GACR,IAAIsE,EACG,YAAWtE,EAAG0C,aAAa,SAAS1C,EAAG0C,aAAa,WACnD1C,EAAG0C,aAAa,eAOxB,OALI1C,EAAG0C,aAAa,aACmB,MAAhC1C,EAAG0C,aAAa,cACnB4B,GAAS,IAAGtE,EAAG0C,aAAa,aAGzB4B,GAEX4pB,YAAY5pB,GACR,MAAM7K,EAAO,GACPqK,EAAQQ,EAAK2oB,UAAU,GAAGpqB,MAAM,KAStC,OAPApJ,EAAKyD,IAAM4G,EAAM0pB,QACjB/zB,EAAK,gBAAkBqK,EAAM0pB,QAC7B/zB,EAAK,cAAgBqK,EAAM0pB,QACvB1pB,EAAMzN,SACNoD,EAAK,kBAAoBqK,EAAMb,KAAK,MAGjCxJ,GAEX00B,iBAAiB7pB,GACb,MAAM7K,EAAO,GACPqK,EAAQQ,EAAK2oB,UAAU,IAAIpqB,MAAM,KAMvC,OAJApJ,EAAKd,KAAOmL,EAAM0pB,QAClB/zB,EAAK20B,YAActqB,EAAM0pB,QAGlB/zB,GAEX40B,UAAU/pB,GACN,MAAM7K,EAAO,GACb,IAAIqK,EAAQQ,EAAKzB,MAAM,KAEvBiB,EAAM0pB,QACN1pB,EAAQA,EAAMb,KAAK,KAAKJ,MAAM,KAC9B,IAAK,IAAIzW,EAAI,EAAGA,EAAI0X,EAAMzN,OAAQjK,IAAK,CACnC,IAAIuB,EAAMmW,EAAM1X,GAAGyW,MAAM,KAAK,GAE9B,KAAOlV,EAAI0I,QAAqB,MAAX1I,EAAI,IACrBA,EAAMA,EAAIs/B,UAAU,GAExB,MAAM5/B,EAAQyW,EAAM1X,GAAGyW,MAAM,KAAK,GAE9BlV,GAAON,EACPoM,EAAKuJ,KAAK,CAAErW,KAAMgB,EACdN,UACGM,GAEP8L,EAAKuJ,KAAK,CAAErW,KAAM,GACdU,MAAOM,IAInB,OAAO8L,GAEX60B,kBAAkBhqB,GACd,MAAMiqB,EAAY,GACZC,EAAQlqB,EAAKzB,MAAM,KAEzB0rB,EAAUE,WAAaD,EAAM,GAAGvB,UAAU,IAC1CsB,EAAUG,UAAYF,EAAM,GAC5BD,EAAU/lB,SAAWgmB,EAAM,GAAG/rB,cAC9B8rB,EAAU5c,SAAW6c,EAAM,GAC3BD,EAAUI,GAAKH,EAAM,GACrBD,EAAUd,KAAOe,EAAM,GAGvBD,EAAUxnB,KAAOynB,EAAM,GACvBD,EAAUK,WAAa,EACvB,IAAK,IAAIxiC,EAAI,EAAGA,EAAIoiC,EAAMn4B,OAAQjK,GAAK,EACnC,OAAQoiC,EAAMpiC,IACd,IAAK,QACDmiC,EAAU,YAAcC,EAAMpiC,EAAI,GAClC,MACJ,IAAK,QACDmiC,EAAU,YAAcC,EAAMpiC,EAAI,GAClC,MACJ,IAAK,aACDmiC,EAAUK,WAAaJ,EAAMpiC,EAAI,GACjC,MACJ,IAAK,UACDmiC,EAAUM,QAAUL,EAAMpiC,EAAI,GAC9B,MACJ,QACI2xB,EAAOrZ,IACF,sCACG8pB,EAAMpiC,UAAUoiC,EAAMpiC,EAAI,OAS1C,OANAmiC,EAAUO,QAAU,IAIpBP,EAAUvnB,GAAKkE,KAAKC,SAAS3U,SAAS,IAAI0e,OAAO,EAAG,IAE7CqZ,GAEXQ,kBAAkBC,GACd,IAAI1qB,EAAO,CACN,eAAc0qB,EAAKP,WACpBO,EAAKN,UACLM,EAAKxmB,SACLwmB,EAAKrd,SACLqd,EAAKL,GACLK,EAAKvB,KACL,MACAuB,EAAKjoB,MACP9D,KAAK,KAGP,OADAqB,GAAQ,IACA0qB,EAAKjoB,MACb,IAAK,QACL,IAAK,QACL,IAAK,QACGioB,EAAKC,gBAAgB,aACdD,EAAKC,gBAAgB,cAC5B3qB,GAAQ,QACRA,GAAQ,IACRA,GAAQ0qB,EAAK,YACb1qB,GAAQ,IACRA,GAAQ,QACRA,GAAQ,IACRA,GAAQ0qB,EAAK,YACb1qB,GAAQ,KAchB,OAVI0qB,EAAKC,gBAAgB,aACrB3qB,GAAQ,UACRA,GAAQ,IACRA,GAAQ0qB,EAAKH,QACbvqB,GAAQ,KAEZA,GAAQ,aACRA,GAAQ,IACRA,GAAQ0qB,EAAKC,gBAAgB,cAAgBD,EAAKJ,WAAa,IAExDtqB,GAEX4qB,UAAUC,GAIN,MAAM11B,EAAO,IAAI4lB,IACX+P,EAAQD,EAAKtsB,MAAM,QAEzB,IAAK,IAAIzW,EAAI,EAAGA,EAAIgjC,EAAM/4B,OAAQjK,IAC9B,GAAiC,YAA7BgjC,EAAMhjC,GAAG6gC,UAAU,EAAG,GAAkB,CAExC,MAAMnI,EAAOsK,EAAMhjC,GAAGyW,MAAM,WAAW,GAAGA,MAAM,KAAK,GAEhDpJ,EAAKxM,IAAI63B,IACVrrB,EAAKynB,IAAI4D,EAAM,IAGnBrrB,EAAKxM,IAAI63B,GAAM9hB,KAAKosB,EAAMhjC,IAIlC,OAAOqN,GAEX41B,YAAY/qB,GACR,MAAMR,EAAQQ,EAAK4Q,OAAO,IAAIrS,MAAM,KAC9BpJ,EAAO,GAMb,OAJAA,EAAK61B,GAAKxrB,EAAM0pB,QAChB/zB,EAAKsN,KAAOjD,EAAM0pB,QAClB/zB,EAAK81B,OAASzrB,EAEPrK,GAEX+1B,YAAYlrB,GACR,MAAMR,EAAQQ,EAAK4Q,OAAO,GAAGrS,MAAM,KAC7BpJ,EAAO,GAYb,OAVAA,EAAKpM,MAAQyW,EAAM0pB,SACc,IAA7B/zB,EAAKpM,MAAMqW,QAAQ,KACnBjK,EAAKg2B,UAAY,QAEjBh2B,EAAKg2B,UAAYh2B,EAAKpM,MAAM6nB,OAAOzb,EAAKpM,MAAMqW,QAAQ,KAAO,GAC7DjK,EAAKpM,MAAQoM,EAAKpM,MAAM6nB,OAAO,EAAGzb,EAAKpM,MAAMqW,QAAQ,OAEzDjK,EAAKi2B,IAAM5rB,EAAM0pB,QACjB/zB,EAAK81B,OAASzrB,EAEPrK,GAEXqzB,SAAS6C,EAAUC,EAAQC,GACvB,IAAIT,EAAQO,EAAS9sB,MAAM,QAE3B,IAAK,IAAIzW,EAAI,EAAGA,EAAIgjC,EAAM/4B,OAAQjK,IAC9B,GAAIgjC,EAAMhjC,GAAG6gC,UAAU,EAAG2C,EAAOv5B,UAAYu5B,EACzC,OAAOR,EAAMhjC,GAGrB,IAAKyjC,EACD,OAAO,EAIXT,EAAQS,EAAYhtB,MAAM,QAC1B,IAAK,IAAI7J,EAAI,EAAGA,EAAIo2B,EAAM/4B,OAAQ2C,IAC9B,GAAIo2B,EAAMp2B,GAAGi0B,UAAU,EAAG2C,EAAOv5B,UAAYu5B,EACzC,OAAOR,EAAMp2B,GAIrB,OAAO,GAEX82B,UAAUH,EAAUC,EAAQC,GACxB,IAAIT,EAAQO,EAAS9sB,MAAM,QAC3B,MAAMktB,EAAU,GAEhB,IAAK,IAAI3jC,EAAI,EAAGA,EAAIgjC,EAAM/4B,OAAQjK,IAC1BgjC,EAAMhjC,GAAG6gC,UAAU,EAAG2C,EAAOv5B,UAAYu5B,GACzCG,EAAQ/sB,KAAKosB,EAAMhjC,IAG3B,GAAI2jC,EAAQ15B,SAAWw5B,EACnB,OAAOE,EAIXX,EAAQS,EAAYhtB,MAAM,QAC1B,IAAK,IAAI7J,EAAI,EAAGA,EAAIo2B,EAAM/4B,OAAQ2C,IAC1Bo2B,EAAMp2B,GAAGi0B,UAAU,EAAG2C,EAAOv5B,UAAYu5B,GACzCG,EAAQ/sB,KAAKosB,EAAMp2B,IAI3B,OAAO+2B,GAEXC,kBAAkB1rB,GAKd,GAAmC,IAA/BA,EAAKZ,QAAQ,cAEbY,EAAQ,KAAIA,OACT,GAA8B,iBAA1BA,EAAK2oB,UAAU,EAAG,IAMzB,OALAlP,EAAOrZ,IACH,kEAEJqZ,EAAOrZ,IAAIJ,GAEJ,KAE6B,SAApCA,EAAK2oB,UAAU3oB,EAAKjO,OAAS,KAE7BiO,EAAOA,EAAK2oB,UAAU,EAAG3oB,EAAKjO,OAAS,IAE3C,MAAMk4B,EAAY,GACZC,EAAQlqB,EAAKzB,MAAM,KAEzB,GAAiB,QAAb2rB,EAAM,GAIN,OAHAzQ,EAAOrZ,IAAI,uCACXqZ,EAAOrZ,IAAIJ,GAEJ,KAEXiqB,EAAUE,WAAaD,EAAM,GAAGvB,UAAU,IAC1CsB,EAAUG,UAAYF,EAAM,GAC5BD,EAAU/lB,SAAWgmB,EAAM,GAAG/rB,cAC9B8rB,EAAU5c,SAAW6c,EAAM,GAC3BD,EAAUI,GAAKH,EAAM,GACrBD,EAAUd,KAAOe,EAAM,GAGvBD,EAAUxnB,KAAOynB,EAAM,GAEvBD,EAAUK,WAAa,IACvB,IAAK,IAAIxiC,EAAI,EAAGA,EAAIoiC,EAAMn4B,OAAQjK,GAAK,EACnC,OAAQoiC,EAAMpiC,IACd,IAAK,QACDmiC,EAAU,YAAcC,EAAMpiC,EAAI,GAClC,MACJ,IAAK,QACDmiC,EAAU,YAAcC,EAAMpiC,EAAI,GAClC,MACJ,IAAK,aACDmiC,EAAUK,WAAaJ,EAAMpiC,EAAI,GACjC,MACJ,IAAK,UACDmiC,EAAUM,QAAUL,EAAMpiC,EAAI,GAC9B,MACJ,QACI2xB,EAAOrZ,IAAK,oBAAmB8pB,EAAMpiC,UAAUoiC,EAAMpiC,EAAI,OASjE,OANAmiC,EAAUO,QAAU,IAIpBP,EAAUvnB,GAAKkE,KAAKC,SAAS3U,SAAS,IAAI0e,OAAO,EAAG,IAE7CqZ,GAEX0B,oBAAoBjB,GAChB,IAAI1qB,EAAO,eAEXA,GAAQ0qB,EAAKtsB,aAAa,cAC1B4B,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,aAC1B4B,GAAQ,IAER,IAAIkE,EAAWwmB,EAAKtsB,aAAa,YAmBjC,OAfIkd,IAAQsQ,aAA0C,WAA3B1nB,EAAS/F,gBAChC+F,EAAW,OAGflE,GAAQkE,EACRlE,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,YAC1B4B,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,MAC1B4B,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,QAC1B4B,GAAQ,IACRA,GAAQ,MACRA,GAAS,IAAG0qB,EAAKtsB,aAAa,QAC9B4B,GAAQ,IACA0qB,EAAKtsB,aAAa,SAC1B,IAAK,QACL,IAAK,QACL,IAAK,QACGssB,EAAKtsB,aAAa,aACXssB,EAAKtsB,aAAa,cACzB4B,GAAQ,QACRA,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,YAC1B4B,GAAQ,IACRA,GAAQ,QACRA,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,YAC1B4B,GAAQ,KAchB,MAV+B,QAA3BkE,EAAS/F,gBACT6B,GAAQ,UACRA,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,WAC1B4B,GAAQ,KAEZA,GAAQ,aACRA,GAAQ,IACRA,GAAQ0qB,EAAKtsB,aAAa,eAAiB,IAEjC4B,EAAF,QAQZ6rB,sBAAsBC,GAClB,MAAMC,EAAWD,EAAWE,MACvBhrB,IAAIirB,GAAYA,EAASvpB,IACzBwpB,OAAO,CAAC1L,EAAM2L,EAAOC,IAAUA,EAAMhtB,QAAQohB,KAAU2L,GACvDp6B,OACCs6B,EACCP,EAAWQ,YAAcR,EAAWQ,WAAWv6B,QAAW,EAEjE,GAAIg6B,EAAW,GAAmB,IAAdM,EAEhB,OAEJ,IAAIE,EAAc,KAElB,GAAiB,IAAbR,EACAQ,EAAcT,EAAWE,MAAM,GAAGtpB,QAC/B,GAAiB,IAAbqpB,EAAgB,CAEvB,MAAMS,EACAV,EAAWQ,WAAWG,KACpBC,GAA6B,QAApBA,EAAMC,WAEnBH,IACAD,EAAcC,EAASR,MAAMztB,MAAM,KAAK,SAEzC,GAAIwtB,GAAY,EAAG,CAEtB,MAAMa,EACAd,EAAWQ,WAAWG,KACpBC,GAA6B,QAApBA,EAAMC,WAEnBC,IACAL,EAAcK,EAASZ,MAAMztB,MAAM,KAAK,IAIhD,OAAOguB,GAOXM,aAAY,IACDC,IAAWC,UAAU,EAAG,YAYnCC,iBAAiBC,EAAOzM,EAAM0M,GAC1B,IAAK,IAAIplC,EAAI,EAAGA,EAAImlC,EAAMjB,MAAMj6B,SAAUjK,EAAG,CACzC,MAAMqlC,EAAWF,EAAMjB,MAAMlkC,GAE7B,GAAIqlC,EAASzqB,KAAO8d,GACb2M,EAASr0B,YAAco0B,EAC1B,OAAOC,EAASpkC,QAa5BqkC,gBAAgBC,GACLA,EACFrB,MACAztB,MAAM,KACNyC,IAAIssB,GAAWxZ,SAASwZ,EAAS,KAS1CC,SAAQ,CAACC,EAAK/qB,IACH+qB,EAAIvE,MAAMwD,KAAKvkC,GAAKA,EAAEua,OAASA,GAO1CgrB,SAASD,GACL,MAAME,EACAF,EAAIjvB,MAAM,MAAM2tB,OAAOlsB,GAAQA,EAAK2tB,WAAW,iBAErD,GAAID,EAAW37B,OAAS,EACpB,OAAO27B,EAAW,GAAG9c,OAAO,eAAe7e,SAWnD67B,YAAYtE,EAAOuE,GACf,IAAKvE,IAAUuE,EACX,OAGJ,MAAMC,EAAuBxE,EAAMyE,IAC9B7B,OAAO6B,GAAOA,EAAIC,OAASD,EAAIC,MAAM7vB,gBAAkB0vB,EAAU1vB,eACjE6C,IAAI+sB,GAAOA,EAAIE,SAEpB,GAAIH,EAAsB,CAGtB,MAAMI,EACA5E,EAAM6E,SACPj8B,WACAqM,MAAM,KACNyC,IAAIpX,GAAKkqB,SAASlqB,EAAG,KAE1B,IAAK,MAAMohC,KAAM8C,EAAqBM,UAAW,CAC7C,MAAMC,EAAeH,EAAa9uB,QAAQ4rB,GAE1CkD,EAAazuB,OAAO4uB,EAAc,GAClCH,EAAaI,QAAQtD,GAEzB1B,EAAM6E,SAAWD,EAAavvB,KAAK,OAc3C4vB,WAAWtB,EAAOY,EAAWW,GAAc,GACvC,IAAKvB,IAAUY,EACX,OAGJ,MAAMY,EAAU,GAChB,IAAIC,EAAY,GAChB,MAAMC,EAAqBd,EAAU1vB,gBAAkBywB,IAAcC,MAAQL,EAE7E,IAAK,MAAMT,KAAOd,EAAMc,IAChBA,EAAIC,OACDD,EAAIC,MAAM7vB,gBAAkB0vB,EAAU1vB,gBACrCwwB,EACAF,EAAQ/vB,KAAKqvB,EAAIE,SAEjBS,EAAUhwB,KAAKqvB,EAAIE,UAY/B,GANIU,IACAD,EAAYzB,EAAM6B,KACb5C,OAAO6C,GAAQN,EAAQrvB,QAAQ2vB,EAAKd,UAAY,GAAKc,EAAKC,OAAOC,SAAS,wBAC1EjuB,IAAI+tB,GAAQA,EAAKd,UAGtBS,EAAU38B,OAAS,EAAG,CAGtB,MAAMm9B,EAAUR,EAAU1tB,IAAI+tB,GAAS,OAAMA,GACvCI,EAASlC,EAAM6B,KAAK5C,OACtB6C,IAA0C,IAAlCG,EAAQ9vB,QAAQ2vB,EAAKC,SAEjCN,EAAUhwB,QAAQywB,EAAOnuB,IAAI+tB,GAAQA,EAAKd,UAK1C,MAIMmB,EAJSnC,EAAMkB,SAChBj8B,WACAqM,MAAM,KACNyC,IAAI+T,QACcmX,OAAOlB,IAAiC,IAA3B0D,EAAUtvB,QAAQ4rB,IAE/B,IAAnBoE,EAAQr9B,QAERk7B,EAAM9D,KAAO,EACb8D,EAAM9B,UAAY,WAClB8B,EAAMkB,SAAW,KAEjBlB,EAAMkB,SAAWiB,EAAQzwB,KAAK,KAGlCsuB,EAAMc,IAAMd,EAAMc,IAAI7B,OAClB6C,IAA2C,IAAnCK,EAAQhwB,QAAQ2vB,EAAKd,UACjChB,EAAM6B,KAAO7B,EAAM6B,KAAK5C,OACpB6C,IAA2C,IAAnCK,EAAQhwB,QAAQ2vB,EAAKd,UAC7BhB,EAAMoC,SACNpC,EAAMoC,OAASpC,EAAMoC,OAAOnD,OACxB6C,IAA2C,IAAnCK,EAAQhwB,QAAQ2vB,EAAKd,cAMlChG,Q,m8BC1oBf,MAAMxO,EAASF,oBAAUM,GAKrByB,IAAQgU,eACR1W,EAAQ,KAGZ,MAAMoC,EAAe,IAAIC,IAenBsU,EAA0B,CAAE,QAAS,SAOrCC,EAAsB,CACxBC,MAAO,CACHC,OAAQ,CACJC,MAAO,IACPC,IAAK,IACL3Z,IAAK,OAQX4Z,EAAwB,EAI9B,IAAIC,EAAsB,UAEtBC,GAAqB,EAGrBC,GAAY,EAGZC,GAAa,EAGbC,GAAY,EAGZC,GAAa,EAGbC,GAAa,EAEjB,MAAMC,EAA0Bx5B,SAASwF,cAAc,SACjDi0B,OAC6C,IAAtCD,EAAwBE,UAErC,IAAIC,EACAC,EAKJ,SAASC,KA8ET,SAASC,EAAeC,EAAIjuB,EAAU,IAClC,MAAM4e,EAAc,CAChBsP,OAAO,EACPpB,OAAO,GAULqB,EACAxV,IAAQsQ,aACHtQ,IAAQyV,YACRzV,IAAQC,gBAEnB,GAAIqV,EAAGxxB,QAAQ,UAAY,EAAG,CAK1B,GAHAmiB,EAAYkO,MAAQ,CAAEuB,UAAW,GAC7BC,SAAU,IAEVtuB,EAAQuuB,eACJJ,IAEAvP,EAAYkO,MAAM0B,SAAWxuB,EAAQuuB,gBAIzC3P,EAAYkO,MAAMuB,UAAUI,SAAWzuB,EAAQuuB,mBAC5C,CAMH,MAAMG,EAAa1uB,EAAQ0uB,YAAcC,IAAiBC,KAEtDT,IACAvP,EAAYkO,MAAM4B,WAAaA,GAEnC9P,EAAYkO,MAAMwB,SAASvyB,KAAK,CAC5B2yB,gBAIJ1uB,EAAQ6uB,QAAU7uB,EAAQ8uB,QAAU9uB,EAAQ+uB,QAGxC/uB,EAAQ6uB,QAAU7uB,EAAQ+uB,OAE1B/uB,EAAQ6uB,OAAS7uB,EAAQ6uB,QAAU7uB,EAAQ+uB,IAC3CnQ,EAAYkO,MAAMuB,UAAUW,aAAehvB,EAAQ6uB,QAEnD7uB,EAAQ8uB,SACRlQ,EAAYkO,MAAMuB,UAAUY,aAAejvB,EAAQ8uB,SAvGnE,SACQlQ,EACAuP,EACAe,GACAC,IAAYD,KACRf,IACAvP,EAAYkO,MAAMsC,MAAQ,CACtBpC,MAAOmC,IAAYD,GAAYE,OAEnCxQ,EAAYkO,MAAMC,OAAS,CACvBC,MAAOmC,IAAYD,GAAYnC,SAIvCnO,EAAYkO,MAAMuB,UAAUgB,SAAWF,IAAYD,GAAYE,MAC/DxQ,EAAYkO,MAAMuB,UAAUiB,UAAYH,IAAYD,GAAYnC,QAGhEnO,EAAYkO,MAAMuB,UAAUgB,WAC5BzQ,EAAYkO,MAAMuB,UAAUkB,SACtB3Q,EAAYkO,MAAMuB,UAAUgB,UAGlCzQ,EAAYkO,MAAMuB,UAAUiB,YAC5B1Q,EAAYkO,MAAMuB,UAAUmB,UACtB5Q,EAAYkO,MAAMuB,UAAUiB,WAkFlCG,CACI7Q,EAAauP,EAAgCnuB,EAAQkvB,YA+C7D,GA7CIjB,EAAGxxB,QAAQ,UAAY,IACnBkc,IAAQC,gBAGRgG,EAAYsP,OAAQ,EACbvV,IAAQsQ,YACXjpB,EAAQ0vB,YACR9Q,EAAYsP,MAAQ,CAChBG,UAAW,GACXG,SAAUxuB,EAAQ0vB,YAClBpB,SAAU,CAAE,CACRG,SAAUzuB,EAAQ0vB,eAG1B9Q,EAAYsP,OAAQ,GAIxBtP,EAAYsP,MAAQ,CAAEG,UAAW,GAC7BC,SAAU,IACVtuB,EAAQ0vB,cACJvB,IAEAvP,EAAYsP,MAAMM,SAAWxuB,EAAQ0vB,aAIzC9Q,EAAYsP,MAAMI,SAASvyB,KAAK,CAC5B0yB,SAAUzuB,EAAQ0vB,eAK1B9Q,EAAYsP,MAAMI,SAASvyB,KACvB,CAAE4zB,kBAAmBrC,IAAeD,GACpC,CAAEuC,sBAAuBtC,IAAeD,GACxC,CAAEwC,qBAAsBrC,IAAeH,GACvC,CAAEyC,sBAAuBvC,IAAcF,GACvC,CAAE0C,oBAAqBtC,IAAeJ,GACtC,CAAE2C,uBAAwBzC,IAAcF,GACxC,CAAE4C,uBAAwB3C,IAAeD,GACzC,CAAE6C,sBAAuB1C,IAAeH,MAIhDY,EAAGxxB,QAAQ,WAAa,EACxB,GAAIkc,IAAQwX,WACRvR,EAAYkO,MAAQ,CAChBuB,UAAW+B,EAAiB,EAAD,KACpBpwB,GADoB,IAEvB4jB,OAAQ,YAEZ0K,SAAU,SAGX,GAAI3V,IAAQsQ,YACfrK,EAAYkO,MAAQ,CAChBuD,eAAgB,SAChBC,YAAa,SACbC,UAAWvwB,EAAQuwB,WAAa,CAC5Bjd,IAAK4Z,EACLD,IAAKC,QAIV,CACH,MAAMsD,EACA,uEAGNC,IAAqBC,iBAAiB,IAAIxgC,MAAMsgC,IAChD1Z,EAAOjZ,MAAM2yB,GAkDrB,OA/CIvC,EAAGxxB,QAAQ,YAAc,IACzBmiB,EAAYkO,MAAQ,CAChBuB,UAAW+B,EAAiB,EAAD,KACpBpwB,GADoB,IAEvB4jB,OAAQ,aAEZ0K,SAAU,IAKV3V,IAAQgY,cAAgB3wB,EAAQ4wB,kBAC5B5wB,EAAQ6wB,cAAcp0B,QAAQ,WAAa,IAS/CmiB,EAAYsP,MAAQ,CAAEG,UAAW,CAC7ByC,kBAAmBlS,EAAYkO,MAAMuB,UAAUyC,sBAKvD9wB,EAAQ+wB,YACHnS,EAAYkO,QAEblO,EAAYkO,MAAQ,CAAEuB,UAAW,GAC7BC,SAAU,KAElB1P,EAAYkO,MAAMwB,SAASvyB,KAAK,CAAEg1B,UAAW/wB,EAAQ+wB,aAOrDpY,IAAQsQ,aAAejpB,EAAQgxB,sBAI/BpS,EAAYqS,MAAO,GAGhBrS,EA+HX,SAASwR,EAAiBpwB,EAAU,IAChC,MAAM,cACF6wB,EADE,UAEFN,EAAY,CACRjd,IAAK4Z,EACLD,IAAKC,IAETltB,GACE,IAAEitB,EAAF,IAAO3Z,GAAQid,EAEf3R,EAAc,CAChBkS,kBAAmB9wB,EAAQ4jB,OAC3B2L,SAAUxqC,OAAOmsC,OAAO9B,MACxBI,UAAWzqC,OAAOmsC,OAAOnE,QAe7B,MAZmB,iBAARzZ,IACPsL,EAAYoQ,aAAe1b,GAGZ,iBAAR2Z,IACPrO,EAAYqQ,aAAehC,QAGF,IAAlB4D,IACPjS,EAAYuS,oBAAsBN,GAG/BjS,EASX,SAASwS,EAAsBpxB,EAAU,IAIrC,MAAM4e,EAAc,CAChB2R,UAAWrD,IAET,wBAAEmE,GAA4BrxB,EAMpC,OAJIqxB,GAA2BA,EAAwBpE,MACnDrO,EAAY2R,UAAYc,EAAwBpE,KAG7CrO,EASX,SAAS0S,EAAyBrD,EAAI7T,GAClC,MAAMmX,EACAC,QAAQpX,IAAWA,EAAOqX,iBAAiBriC,OAAS,EACpDsiC,EACAF,QAAQpX,IAAWA,EAAOuX,iBAAiBviC,OAAS,EACpDwiC,EAAqB,IAEE,IAAzB3D,EAAGxxB,QAAQ,WACXm1B,EAAmB9E,MAAQ4E,IAEF,IAAzBzD,EAAGxxB,QAAQ,WACXm1B,EAAmB1D,MAAQqD,GAG/BlZ,EAAa0D,KAAK8V,IAAUjR,oBAAqBgR,GA4CrD,SAASE,EAA0BC,GAC/B,MAAMC,EACAD,EAAWxI,OAAO9jC,GAAgB,eAAXA,EAAEwsC,MAAuB7iC,OAChD8iC,EACAH,EAAWxI,OAAO9jC,GAAgB,gBAAXA,EAAEwsC,MAAwB7iC,OACjD+iC,EACAJ,EAAWxI,OAAO9jC,GAAgB,eAAXA,EAAEwsC,MAAuB7iC,OAChDgjC,EACAL,EAAWxI,OAAO9jC,GAAgB,gBAAXA,EAAEwsC,MAAwB7iC,OAEvD2iC,EAAW9pB,QAAQoqB,IACf,MAAMv8B,EAAa,CACf,yBAA4Bk8B,EAC5B,0BAA6BE,EAC7B,yBAA4BC,EAC5B,0BAA6BC,EAC7B,UAAaC,EAAO7D,SACpB,gBAAmB6D,EAAOC,QAC1B,YAAeD,EAAOJ,KACtB,aAAgBI,EAAOE,OAG3Bta,IAAWoI,cAAcwC,IAAkB/sB,KAenD,SAAS08B,EAAmBC,GAY5B,IAAmCC,GArFnC,SAAsCC,GAClC,OAAIA,EAAWvjC,SAAWy+B,EAAiBz+B,QAOvCujC,EAAWt0B,IAAIu0B,GAAuBz4B,OAAO6B,KAAK,MAC1C6xB,EACCxvB,IAAIu0B,GAAuBz4B,OAAO6B,KAAK,IAQpD,SAAS42B,EAAsB70B,GAC3B,OAAO0H,KAAKwL,UAAU,CAClBghB,KAAMl0B,EAAKk0B,KACXzD,SAAUzwB,EAAKywB,SACf8D,QAASv0B,EAAKu0B,QACdC,MAAOx0B,EAAKw0B,MACZM,OAAQ90B,EAAK80B,WAkDjBC,CAA6BL,KAYjC5E,GAD+B6E,EAVDD,GAWKM,MAAM,GACzCjc,EAAO/Y,KACH,qCACA8vB,GAEJiE,EAA0BjE,GAG1BxV,EAAa0D,KAAK8V,IAAUnQ,wBAAyBgR,GAErDra,EAAa0D,KAAK8V,IAAUpQ,oBAAqBiR,IA4IrD,MAAMM,UAAiBC,IAInBnkC,cACIokC,MAAM7a,GAYV5U,KAAKzD,EAAU,IA4BX,GA3BkC,kBAAvBA,EAAQstB,aACfA,EAAattB,EAAQstB,WACrBxW,EAAO/Y,KAAM,gBAAeuvB,IAEC,kBAAtBttB,EAAQutB,YACfA,EAAYvtB,EAAQutB,UACpBzW,EAAO/Y,KAAM,eAAcwvB,IAEE,kBAAtBvtB,EAAQqtB,YACfA,EAAYrtB,EAAQqtB,UACpBvW,EAAO/Y,KAAM,eAAcsvB,IAEG,kBAAvBrtB,EAAQwtB,aACfA,EAAaxtB,EAAQwtB,WACrB1W,EAAO/Y,KAAM,gBAAeyvB,IAEE,kBAAvBxtB,EAAQytB,aACfA,EAAaztB,EAAQytB,WACrB3W,EAAO/Y,KAAM,gBAAe0vB,IAGhCI,EAAmB,GACnB9oC,OAAOouC,cAAcrF,GACrBA,OAA4B10B,EAE5BP,KAAKu6B,iBAnuBb,WACI,GAAIC,UAAUC,cAAgBD,UAAUC,aAAaF,iBACjD,OAAO/uB,IACHgvB,UAAUC,aAAaF,mBAClBG,KAAKC,IACFhB,EAAmBgB,GACnBnvB,EAASmvB,IACV,KACChB,EAAmB,IACnBnuB,EAAS,OA0tBGovB,GAEpB9a,IAAQ+a,iBACR76B,KAAK86B,sBAAwBC,kBAE7B/6B,KAAKg7B,kBACCC,GAAsB,CAAC1sB,EAASgT,KAC1BhT,IACAA,EAAQ2sB,UAAY3Z,KAIhCvhB,KAAKm7B,YAAc,EAAGj0B,QAASA,EAC/BlH,KAAKo7B,WAAa,EAAGl0B,QAASA,MAC3B,KAAI4Y,IAAQub,oBACRvb,IAAQC,gBAmCZ,CACH,MAAMtb,EAAU,gDAGhB,MADAwZ,EAAOjZ,MAAMP,GACP,IAAIpN,MAAMoN,GArChBzE,KAAK86B,sBAAwBC,kBAE7B/6B,KAAKg7B,kBACCC,GAAsB,CAAC1sB,EAASgT,KAjGlD,SAA4BhT,EAASgT,GAEjC,IAeI+Z,EAfAC,EAAwB,YAEtBA,KAAyBhtB,IAC3BgtB,EAAwB,eAClBA,KAAyBhtB,IAC3BgtB,EAAwB,OAG5BA,EACAhtB,EAAQgtB,GAAyBha,GAQjCA,IACA+Z,EAAM/Z,EAAOia,eAIRF,IACD/Z,EAAOia,eAAiBF,EAAMG,IAAIC,gBAAgBna,KAG1DhT,EAAQ+sB,IAAMA,GAAO,IAsELK,CAAmBptB,EAASgT,GAErBhT,IAGfvO,KAAKm7B,YAAc,UAAS,GAAEj0B,IAO1B,MACkB,iBAAPA,EACDA,EACAulB,IAAQC,mBAAmBxlB,IAEzClH,KAAKo7B,WAAa,EAAGl0B,QAASA,EAEzB00B,YAAY1tC,UAAU4qC,iBACvB8C,YAAY1tC,UAAU4qC,eAAiB,WACnC,OAAO94B,KAAK67B,cAGfD,YAAY1tC,UAAU0qC,iBACvBgD,YAAY1tC,UAAU0qC,eAAiB,WACnC,OAAO54B,KAAK87B,cAUxB97B,KAAK+7B,qBAELC,IAAepxB,KACXzD,EACAnH,KAAKi8B,4BAA4BnuC,KAAKkS,OAEtCA,KAAKk8B,yBACLl8B,KAAKu6B,iBAAiB4B,IAClBnH,EAAmBmH,EAAGl4B,OAAO,GAE7Bga,EAAOhZ,MAAM,sBAAuB+vB,GACpCiE,EAA0BjE,GAE1BxV,EAAa0D,KACT8V,IAAUlQ,sBACVkM,GAEAlV,IAAQsc,4BACR5B,UAAUC,aAAa4B,iBACnB,eACA,IAAMr8B,KAAKu6B,iBAAiBrF,IAIhCD,EAA4B/oC,OAAOowC,YAC/B,IAAMt8B,KAAKu6B,iBAAiBrF,GAj4BP,OA44BzC6G,qBACQjc,IAAQsQ,YACRpwB,KAAKu8B,cAAgB,IACdzc,IAAQub,mBAAqBvb,IAAQC,mBAC5C/f,KAAKu8B,cAAgB,CAAE9G,SAAU,CAC7B,CAAE+G,qBAAsB,GACxB,CAAEC,oBAAoB,GACtB,CAAEC,yBAA0B,KAC5B,CAAEC,yBAAyB,GAC3B,CAAEC,2BAA2B,GAC7B,CAAEC,yBAA0B,IAC5B,CAAEC,wBAAyB,MAG/B98B,KAAK+8B,iBACCnwB,KAAKsL,MAAMtL,KAAKwL,UAAUpY,KAAKu8B,iBAGzCv8B,KAAK+8B,iBAAmB/8B,KAAK+8B,kBAAoB/8B,KAAKu8B,cAsB1DN,4BAA4B7G,EAAIjuB,EAAU,IACtC,MAAM4e,EAAcoP,EAAeC,EAAIjuB,GAIvC,OAFA8W,EAAO/Y,KAAK,wBAAyB6gB,GAE9B,IAAIiX,QAAQ,CAACC,EAASC,KACzB1C,UAAUC,aAAa0C,aAAapX,GACnC2U,KAAKnZ,IACFtD,EAAOrZ,IAAI,sBACX6zB,EAAyBrD,EAAI7T,GAC7B0b,EAAQ1b,KAEX6b,MAAMp4B,IACHiZ,EAAO9Y,KACA,yCAAGH,KAAS+gB,MACnB0S,EAAyBrD,OAAI70B,GAC7B28B,EAAO,IAAItX,IAAgB5gB,EAAO+gB,EAAaqP,QAa3DiI,gCAAgCC,EAAWvX,EAAc,IACrD,OAAO,IAAIiX,QAAQ,CAACC,EAASC,KACzB1C,UAAUC,aAAa0C,aAAapX,GAC/B2U,KAAKnZ,IACFtD,EAAOrZ,IAAI,sBACX6zB,EAAyB6E,EAAW/b,GACpC0b,EAAQ1b,KAEX6b,MAAMp4B,IACHiZ,EAAO9Y,KACA,yCAAGH,KAAS+gB,MACnB0S,EAAyB6E,OAAW/8B,GACpC28B,EAAO,IAAItX,IAAgB5gB,EAAO+gB,EAAauX,QAmB/DC,oBAAoBp2B,GAChB,OAAK60B,IAAewB,eAAkB1d,IAAQ2d,gBAKvC,IAAIT,QAAQ,CAACC,EAASC,KACzBlB,IAAe0B,aACX19B,KAAK29B,4BAA4Bx2B,GACjCoa,IACI0b,EAAQ1b,IAEZvc,IACIk4B,EAAOl4B,OAXRg4B,QAAQE,OACX,IAAI7lC,MAAM,sCA6BtBumC,+BAA+Bz2B,EAAU,IACrCA,EAAQwzB,QAAUxzB,EAAQwzB,SAAW,IAAK5G,GAC1C5sB,EAAQkvB,WAAalvB,EAAQkvB,YA3gCF,IA+gC3B,OAF0BlvB,EAAQwzB,QAAQlH,SAAS,aAEzBuI,IAAewB,cAC9BR,QAAQE,OACX,IAAI7lC,MAAM,sCAGX2I,KAAK69B,yBAAyB12B,GAASuzB,KAAKoD,GA1Z3D,SAA2BA,EAASzH,GAChC,IAAI0H,EAAa/F,EAAegG,EAChC,MAAMC,EAAM,GAQZ,GAAIH,EAAS,CAIT,MAAMI,EAAaJ,EAAQI,WAE3B,GAAIA,EAAY,CACZ,MAAMpC,EAAcoC,EAAWtF,iBAE/B,GAAIkD,EAAYvlC,OAAQ,CACpBwnC,EAAc,IAAInC,YAClB,IAAK,IAAItvC,EAAI,EAAGA,EAAIwvC,EAAYvlC,OAAQjK,IACpCyxC,EAAYI,SAASrC,EAAYxvC,IAIzC,MAAMuvC,EAAcqC,EAAWpF,iBAE/B,GAAI+C,EAAYtlC,OAAQ,CACpBynC,EAAc,IAAIpC,YAClB,IAAK,IAAI1iC,EAAI,EAAGA,EAAI2iC,EAAYtlC,OAAQ2C,IACpC8kC,EAAYG,SAAStC,EAAY3iC,UAOzC6kC,EAAcD,EAAQzI,MACtB2I,EAAcF,EAAQ7J,MAG1B+D,EAAgB8F,EAAQM,QAG5B,GAAIpG,EAAe,CACf,MAAM,OAAEzW,EAAF,SAAUqU,EAAV,WAAoByI,GAAerG,EAEzCiG,EAAI/6B,KAAK,CACLqe,SACAqU,WACAyI,aACAC,MAAO/c,EAAOuX,iBAAiB,GAC/BnN,UAAW4S,IACXC,UAAWC,IAAUC,UAqB7B,OAlBIX,GACAE,EAAI/6B,KAAK,CACLqe,OAAQwc,EACRO,MAAOP,EAAYnF,iBAAiB,GACpCjN,UAAW4S,IACXC,UAAW,OAGfR,GACAC,EAAI/6B,KAAK,CACLqe,OAAQyc,EACRM,MAAON,EAAYlF,iBAAiB,GACpCnN,UAAW4S,IACXC,UAAWC,IAAUE,OACrBtI,eAID4H,EAgVCW,CAAkBd,EAAS32B,EAAQkvB,aAY3CwH,yBAAyB12B,GACrB,MAAM03B,EAAoB13B,EAAQwzB,QAAQlH,SAAS,WAEnDtsB,EAAQwzB,QAAUxzB,EAAQwzB,QAAQjK,OAAO8I,GAC1B,YAAXA,GAMJ,OAJmBryB,EAAQwzB,QAAQpkC,OAC7ByJ,KAAKi8B,4BAA4B90B,EAAQwzB,QAASxzB,GAClD61B,QAAQC,QAAQ,OAGjBvC,KAAKoE,IAKF,MAAMC,EACA/+B,KAAKg/B,kBAAkB73B,EAAQwzB,QAASmE,GAE9C,OAAIC,EAAcxoC,QACdyJ,KAAKi/B,gBAAgBH,GAEd9+B,KAAKi8B,4BACR8C,EAAe53B,GAIduzB,KAAK,IAAMsC,QAAQE,OAAO,IAAItX,IAC3B,CAAE/4B,KAAM,gBACRsoC,EAAehuB,EAAQwzB,QAASxzB,GAChC43B,MAGLD,IAEVpE,KAAKwD,IACF,IAAKW,EACD,MAAO,CAAEX,cAGb,GAAI/2B,EAAQ+3B,2BAGR,MAFAl/B,KAAKi/B,gBAAgBf,GAEf,IAAI7mC,MAAM,yEAIpB,OAAO,IAAI2lC,QAAQ,CAACC,EAASC,KACzBlB,IAAe0B,aACX19B,KAAK29B,4BAA4Bx2B,GACjCi3B,GAAWnB,EAAQ,CACfiB,aACAE,YAEJp5B,IACQk5B,GACAl+B,KAAKi/B,gBAAgBf,GAEzBhB,EAAOl4B,SAiB/Bg6B,kBAAkBG,EAAmB,GAAI5d,GACrC,MAAM6d,EAAiB,GAEjBC,EAAuBF,EAAiB1L,SAAS,SACjDiF,EACAnX,GAAUA,EAAOqX,iBAAiBriC,OAAS,EAE7C8oC,IAAyB3G,GACzB0G,EAAel8B,KAAK,SAGxB,MAAMo8B,EAAuBH,EAAiB1L,SAAS,SACjDoF,EACAtX,GAAUA,EAAOuX,iBAAiBviC,OAAS,EAMjD,OAJI+oC,IAAyBzG,GACzBuG,EAAel8B,KAAK,SAGjBk8B,EAUXzB,4BAA4Bx2B,GACxB,MAAO,CACHo4B,sBAAuBp4B,EAAQo4B,sBAC/BC,WAAY,CACR9H,UAAWvwB,EAAQqxB,yBAEvBiH,aAAclH,EAAsBpxB,IAsB5Cu4B,kCAAkCv4B,GAC9B8W,EAAO/Y,KAAK,0BAEZ,MAAMy6B,EAAuB,GAYvBC,EAA4B,WAK9B,MAFwC,KAFtBz4B,EAAQwzB,SAAW,IAErB/2B,QAAQ,YAGpB,OAAOo5B,QAAQC,UAGnB,MAAM,2BACFiC,EADE,sBAEFK,EAFE,wBAGF/G,GACArxB,EAIJ,GAAI+3B,EAA4B,CAC5B,MAAMW,EACA7K,GAAoBA,EAAiB/D,KAAKuI,GACxB,eAAhBA,EAAOJ,OACCI,EAAO7D,WAAauJ,GACrB1F,EAAOE,QAAUwF,IAEhC,IAAKW,EACD,OAAO7C,QAAQE,OAAO,IAAItX,IACtB,CAAE/4B,KAAM,+BACR,GACA,CAAEqyC,KAIV,MAAMC,EAAmB,CAAE,UAIrB,WAAEK,EAAF,aAAcC,GACdz/B,KAAK29B,4BAA4Bx2B,GAEjC4e,EAAc,CAChBkO,MAAO,EAAF,KACEuL,GADF,IAED7J,SAAUkK,EAAelK,YAIjC,OAAO31B,KAAKq9B,gCACR8B,EAAkBpZ,GACjB2U,KAAKnZ,IACF,MAAM+c,EAAQ/c,GAAUA,EAAOue,YAAY,GAM3C,OAJMxB,GAASA,EAAMyB,iBACXzB,EAAMyB,iBAAiBN,GACvBzC,QAAQC,WAGbvC,KAAK,KACK,CACH2D,WAAY,SACZ9c,cAMxB,OAAOvhB,KAAKu9B,oBAAoB,CAC5BgC,wBACA/G,6BAEN1qC,KAAKkS,MAqDDggC,EAA6B,WAC/B,MACMC,GADY94B,EAAQwzB,SAAW,CAAE,QAAS,UACNjK,OAAO8I,GAClC,UAAXA,GACe,UAAXA,GAAsB1Z,IAAQ2d,iBAEtC,IAAKwC,EAAwB1pC,OACzB,OAAOymC,QAAQC,UAGnB,MAAMlX,EA99BlB,SAA2BqP,EAAK,GAAIjuB,EAAU,IAG1C,MAAM4e,EAAcma,IAAU/4B,EAAQ4e,aAAeiO,GAErD,GAAIoB,EAAGxxB,QAAQ,UAAY,EAqBvB,GApBKmiB,EAAYkO,QACblO,EAAYkO,MAAQ,IAOpBnU,IAAQyV,aACJxP,EAAYkO,MAAMC,QAAUnO,EAAYkO,MAAMC,OAAOC,MACrDpO,EAAYkO,MAAMC,OAAS,CAAEC,MAAO+L,IAAUna,EAAYkO,MAAMC,OAAOC,QAEvElW,EAAO9Y,KAAK,8DAEZ4gB,EAAYkO,MAAMsC,OAASxQ,EAAYkO,MAAMsC,MAAMpC,MACnDpO,EAAYkO,MAAMsC,MAAQ,CAAEpC,MAAO+L,IAAUna,EAAYkO,MAAMsC,MAAMpC,QAErElW,EAAO9Y,KAAK,8DAGhBgC,EAAQuuB,eACR3P,EAAYkO,MAAM0B,SAAWxuB,EAAQuuB,mBAClC,CACH,MAAMG,EAAa1uB,EAAQ0uB,YAAcC,IAAiBC,KAE1DhQ,EAAYkO,MAAM4B,WAAaA,OAGnC9P,EAAYkO,OAAQ,EAuDxB,OApDImB,EAAGxxB,QAAQ,UAAY,GAClBmiB,EAAYsP,OAAsC,kBAAtBtP,EAAYsP,QACzCtP,EAAYsP,MAAQ,IAIpBvV,IAAQsQ,aAAetQ,IAAQyV,WAC/BxP,EAAYsP,MAAQ,CAChBM,SAAUxuB,EAAQ0vB,YAClBsJ,iBAAkBxL,IAAeH,EACjCsC,kBAAmBrC,IAAeD,EAClC4L,kBAAmB1L,IAAcF,IAShCzO,EAAYsP,MAAMI,WACnB1P,EAAYsP,MAAMI,SAAW,IAEjC1P,EAAYsP,MAAMI,SAASvyB,KACvB,CAAE0yB,SAAUzuB,EAAQ0vB,aACpB,CAAEC,kBAAmBrC,IAAeD,GACpC,CAAEuC,sBAAuBtC,IAAeD,GACxC,CAAEwC,qBAAsBrC,IAAeH,GACvC,CAAEyC,sBAAuBvC,IAAcF,GACvC,CAAE0C,oBAAqBtC,IAAeJ,GACtC,CAAE2C,uBAAwBzC,IAAcF,GACxC,CAAE4C,uBAAwB3C,IAAeD,GACzC,CAAE6C,sBAAuB1C,IAAeH,MAIhDzO,EAAYsP,OAAQ,EAGpBD,EAAGxxB,QAAQ,YAAc,IACpBmiB,EAAYkO,OAAsC,kBAAtBlO,EAAYkO,QACzClO,EAAYkO,MAAQ,IAGxBlO,EAAYkO,MAAQ,CAChBuB,UAAW+B,EAAiB,EAAD,KACpBpwB,GADoB,IAEvB4jB,OAAQ,eAKbhF,EAq4BqBsa,CAChBJ,EAAyB94B,GAI7B,OAFA8W,EAAO/Y,KAAK,0BAA2B6gB,GAEhC/lB,KAAKq9B,gCACR4C,EAAyBla,IAC/Bj4B,KAAKkS,MA0CP,OAAO4/B,IACFlF,MAtGiC,SAAS1C,GAC3C,IAAKA,EACD,OAGJ,MAAM,OAAEzW,EAAF,SAAUqU,EAAV,WAAoByI,GAAerG,EAEnCsI,EAAqB/e,EAAOqX,iBAElC,GAAI0H,EAAmB/pC,OAAQ,CAC3B,MAAMgqC,EAAqB,IAAI3E,YAAY0E,GAE3CX,EAAqBz8B,KAAK,CACtBqe,OAAQgf,EACR3K,WACAyI,aACAC,MAAOiC,EAAmB3H,iBAAiB,KAInD,MAAM4H,EAAqBjf,EAAOuX,iBAElC,GAAI0H,EAAmBjqC,OAAQ,CAC3B,MAAMkqC,EAAqB,IAAI7E,YAAY4E,GAE3Cb,EAAqBz8B,KAAK,CACtBqe,OAAQkf,EACR7K,WACAyI,aACAC,MAAOmC,EAAmB3H,iBAAiB,GAC3C0F,UAAWC,IAAUC,cAyE5BhE,KAAKsF,GACLtF,MAlC6B,SAASoE,GACvC,IAAKA,EACD,OAGJ,MAAMhD,EAAcgD,EAASlG,iBAE7B,GAAIkD,EAAYvlC,OAAQ,CACpB,MAAMwnC,EAAc,IAAInC,YAAYE,GAEpC6D,EAAqBz8B,KAAK,CACtBqe,OAAQwc,EACRO,MAAOP,EAAYnF,iBAAiB,GACpC8H,QAASv5B,EAAQu5B,UAIzB,MAAM7E,EAAciD,EAAShG,iBAE7B,GAAI+C,EAAYtlC,OAAQ,CACpB,MAAMynC,EAAc,IAAIpC,YAAYC,GAEpC8D,EAAqBz8B,KAAK,CACtBqe,OAAQyc,EACRM,MAAON,EAAYlF,iBAAiB,GACpC0F,UAAWC,IAAUE,OACrB+B,QAASv5B,EAAQu5B,cASxBhG,KAAK,IAAMiF,GACXvC,MAAMp4B,IACH26B,EAAqBvwB,QAAQ,EAAGmS,aAC5BvhB,KAAKi/B,gBAAgB1d,KAGlByb,QAAQE,OAAOl4B,KAUlCk3B,wBACI,OAAOvD,QACH6B,UAAUC,cACHD,UAAUC,aAAaF,kBAUtCoG,wBAAwBC,GACpB,MAAsB,WAAfA,GAA0C,gBAAfA,GAC5B9L,EASVmK,gBAAgB4B,GACZ,IAAKA,EACD,OAGJA,EAAYf,YAAY1wB,QAAQkvB,IACxBA,EAAM1a,MACN0a,EAAM1a,SAKVid,EAAYjd,MACZid,EAAYjd,OAMZid,EAAYC,SACZD,EAAYC,UAIhB,MAAMC,EAAMF,EAAYrF,eAEpBuF,WACOF,EAAYrF,eACnBC,IAAIuF,gBAAgBD,IAQ5BE,0BACI,OAAOjF,IAAewB,cAW1B0D,qBAAqBvL,GACjB,OAAK31B,KAAK2gC,wBAAwB,UAK3B9L,EAAwBE,UAAUY,GACpC+E,KAAK,KACFpG,EAAsBqB,EACtBpB,GAAqB,EAErBtW,EAAOrZ,IAAK,8BAA6B+wB,GAEzCnW,EAAa0D,KAAK8V,IAAUrQ,4BACxBgN,KAZDqH,QAAQE,OACX,IAAI7lC,MAAM,gDAoBtB8pC,uBACI,OAAO7M,EAQX8M,oCACI,OAAOpM,EAOXqM,4BAA4B7H,GACxB,MAAMN,EAAa,GACboI,EAAa,CACf,SAAY9H,EAAO7D,SACnB,KAAQ6D,EAAOJ,KACf,MAASI,EAAOE,MAChB,QAAWF,EAAOC,SAKtB,OAFAP,EAAWh2B,KAAKo+B,GAET,CAAEpI,cAWbqI,gBAAgBxb,EAAayb,GACpBzb,EAAY0P,WACb1P,EAAY0P,SAAW,IAK3B1P,EAAY0P,SACN1P,EAAY0P,SAAS/E,OACnB/jC,IAAMA,EAAEwB,eAAe,+BAE3BqzC,GACAzb,EAAY0P,SAASvyB,KAAK,CAAEu+B,2BAA4B,UAKpE,MAAMC,EAAW,IAAIvH,EAQrB,SAASc,GAAsB0G,GAC3B,OAAO,SAASpzB,EAASgT,GAErB,MAAM0c,EAAM0D,EAAsBC,MAAMF,EAAUvgC,WA4BlD,OA1BIogB,GACOmgB,EAASf,wBAAwB,WACjCpf,EAAOqX,gBACPrX,EAAOqX,iBAAiBriC,QAGxBg+B,GACPhmB,EAAQwmB,UAAU2M,EAASP,wBACtB/D,OAAM,SAASyE,GACZ,MAAM1xB,EACA,IAAIyV,IAAgBic,EAAI,KAAM,CAAE,gBAEtCjK,IAAqBkK,8BAA8B,CAC/CC,QAAS/hC,KACTwP,OAAQW,IAGZ8N,EAAO9Y,KACH,sGAGAoJ,EACA4B,MAIT8tB,GAIAyD,Q,oDCjmDf,MAAMv4B,EAAW,GAGX64B,EAAoB91C,OAAOwvB,QAYjC,MAAMumB,EAA0B/1C,OAAOg2C,qBAYvCh2C,OAAOwvB,QAlBP,YAAoCymB,GAChCh5B,EAASiG,QAAQ7K,GAAWA,KAAW49B,IACvCH,GAAqBA,KAAqBG,IAiB9Cj2C,OAAOg2C,qBAPP,SAAuC7a,GACnCle,EAASiG,QAAQ7K,GAAWA,EAAQ,KAAM,KAAM,KAAM,KAAM8iB,EAAM7X,SAClEyyB,GAA2BA,EAAwB5a,IAOvD,MAAMuQ,EAAuB,CAKzB7pB,WAAWxJ,GACP4E,EAASjG,KAAKqB,IAOlBszB,iBAAiB7yB,GACb,MAAMo9B,EAAal2C,OAAOwvB,QAErB0mB,GAGLA,EAAW,KAAM,KAAM,KAAM,KAAMp9B,IAOvC88B,8BAA8B98B,GAC1B,MAAMo9B,EAAal2C,OAAOg2C,qBAErBE,GAGLA,EAAWp9B,KAKnBjZ,EAAOD,QAAU8rC,G,84BC1DjB,MAAM3Z,EAASF,oBAAUM,GAMzB,IAAIgkB,EAA0B,EAO1BC,EAAoB,EA+CxB,SAASC,EAAsBC,EAAsB,IACjD,OAAOA,EAAoBh9B,IAAIi9B,IAC3B,MAAM,SACF7M,EADE,WAEFyI,EAFE,OAGF9c,EAHE,MAIF+c,EAJE,UAKFE,EALE,QAMFkC,GACA+B,GAEE,SAAE9M,EAAF,WAAYE,GAAeyI,EAAMoE,cAOvC,OAFAJ,EAAoBK,YAAqBL,GAElC,IAAIM,IAAgB,CACvBjN,WACAE,aACAlK,UAAW2S,EAAMlF,KACjByJ,MAAOP,EACP1M,WACAyI,aACA9c,SACA+c,QACAE,UAAWA,GAAa,KACxBkC,cAQG,MAAMoC,UAAY1I,IAM7BnkC,YAAYssB,EAAYpb,EAAU,IAC9BkzB,QACAr6B,KAAKuiB,WAAaA,EAMlBviB,KAAK+iC,gBAAkB,IAAIxjB,IAE3Bvf,KAAKgjC,YAAc,GAEnBhjC,KAAKmH,QAAUA,EAKfnH,KAAKijC,SAAW,KAUhBjjC,KAAKkjC,QAAU,EAQfljC,KAAKmjC,gBAAkB,KAKvBnjC,KAAKojC,wBAA0B,GAS/BpjC,KAAKqjC,qBAAkB9iC,EAQvBP,KAAKsjC,gBAAkB,KAQvBtjC,KAAKujC,mBAAqB,GAG1BvjC,KAAKwjC,qBAAuBxjC,KAAKyjC,gBAAgB31C,KAAKkS,MAEtDA,KAAK0jC,qBAAuB1jC,KAAK0jC,qBAAqB51C,KAAKkS,MAC3DA,KAAK2jC,iCACC3jC,KAAK2jC,iCAAiC71C,KAAKkS,MAI7Cm6B,IAASwG,wBAAwB,YACjCxG,IAASyJ,YACL5K,IAAUrQ,4BACV3oB,KAAK2jC,kCAGTxJ,IAASyJ,YACL5K,IAAUpQ,oBACV5oB,KAAK0jC,uBAUjBG,UACI1J,IAASrY,eACLkX,IAAUrQ,4BACV3oB,KAAK2jC,kCAGTxJ,IAASrY,eACLkX,IAAUpQ,oBACV5oB,KAAK0jC,sBAGT1jC,KAAK8hB,eACDkX,IAAUlR,uBACV9nB,KAAKwjC,sBAGLxjC,KAAK8jC,sBACL9jC,KAAK8hB,eACDkX,IAAUpR,kBACV5nB,KAAK8jC,sBAYjB,4BAA4BC,GACxB,OAAOxB,EAAsBwB,GAYjC,sCAAsC58B,GAClC,MAAM0zB,EAAiB/a,IAAQ+a,iBAK/B,OAJ2BA,EACrBV,IAASuF,kCAAkCv4B,GAC3CgzB,IAASyD,+BAA+Bz2B,IAEpBuzB,KAAKqJ,GACvBlJ,EACO0H,EAAsBwB,GApO7C,SAA2BA,EAAY58B,GACnC,MAAM68B,EAAY,GAClB,IAAIrO,EAAW,KAoBf,OAlBAoO,EAAW30B,QAAQ60B,IACXA,EAAUtY,YAAc4S,IACxB5I,EAAWxuB,EAAQ0vB,YACZoN,EAAUzF,YAAcC,IAAUE,SACzChJ,EAAWxuB,EAAQuuB,gBAEvB4M,EAAoBK,YAAqBL,GACzC,MAAM4B,EAAa,IAAItB,IAAJ,OACZqB,GADY,IAEftO,WACAE,WAAY1uB,EAAQ0uB,WACpBgN,MAAOP,EACP5B,QAASv5B,EAAQu5B,WAGrBsD,EAAU9gC,KAAKghC,KAGZF,EAiNQG,CAAkBJ,EAAY58B,IAY7Ci9B,wBAAwBpjB,EAAgBqjB,GACpCrkC,KAAKijC,SAAW,IAAIqB,IAChBtjB,EAAgBqjB,EAAOrkC,KAAKwf,aAAcxf,KAAKukC,+BAA+Bz2C,KAAKkS,OAEvFA,KAAK8jC,qBAAuB,KAKxB,IACI9jC,KAAKijC,SAASuB,0BACVxkC,KAAKsjC,iBACTtjC,KAAKijC,SAASwB,6BACVzkC,KAAKujC,yBAE2B,IAAzBvjC,KAAKqjC,iBACZrjC,KAAKijC,SAASyB,mCACV1kC,KAAKqjC,iBAEf,MAAOr+B,GACL4yB,IAAqBC,iBAAiB7yB,GACtCiZ,EAAOjZ,MACF,wBAAuBhF,KAAK2kC,4BACjB3kC,KAAKsjC,+BACAtjC,KAAKqjC,oCACtBr+B,GAGRhF,KAAK8hB,eAAekX,IAAUpR,kBAC1B5nB,KAAK8jC,sBACT9jC,KAAK8jC,qBAAuB,MAMP,IAAjB9jC,KAAKkjC,QACLljC,KAAKijC,SAAS2B,oBAAoB5kC,KAAKkjC,SAI/CljC,KAAK4jC,YAAY5K,IAAUpR,kBACvB5nB,KAAK8jC,sBAGT9jC,KAAK4jC,YAAY5K,IAAUlR,uBACvB9nB,KAAKwjC,sBAWbE,uBACI1jC,KAAK2jC,iCAAiCxJ,IAASgH,wBASnDoD,+BAA+BM,GAC3B5mB,EAAO/Y,KAAM,uCAAsC2/B,2BACnD7kC,KAAKojC,wBAA0ByB,EAC/B7kC,KAAKwf,aAAa0D,KAAK8V,IAAUhR,kCAQrCyb,gBAAgBqB,EAAiB,IAC7B,MAAMC,EAAoB/kC,KAAKmjC,iBAAmB,GAClD,IAAI6B,EAAwB,GACxBC,EAAyB,GAE7BjlC,KAAKmjC,gBAAkB2B,EAEvBE,EAAwBD,EAAkBrU,OACtCxpB,IAAOlH,KAAKklC,UAAUh+B,IAE1B+9B,EAAyBH,EAAepU,OACpCxpB,IAAyC,IAAnC69B,EAAkBnhC,QAAQsD,IAEpClH,KAAKuiB,WAAW/C,aAAa0D,KACzBP,2BACAqiB,EACAC,GAORE,cACQnlC,KAAKijC,WAODjjC,KAAKijC,UAAmC,cAAvBjjC,KAAKijC,SAASx1C,MAC/BuS,KAAKijC,SAASxmB,QAGlBzc,KAAKijC,SAAW,MAaxBmC,2BAA2BC,GACvBrlC,KAAKqjC,gBAAkBgC,EAEnBrlC,KAAKijC,UAAYjjC,KAAKijC,SAASqC,UAC/BtlC,KAAKijC,SAASyB,mCAAmCW,GAezDE,gBAAgBC,GACZxlC,KAAKujC,mBAAqBiC,EAEtBxlC,KAAKijC,UAAYjjC,KAAKijC,SAASqC,UAC/BtlC,KAAKijC,SAASwB,6BAA6Be,GAYnDC,YAAYv+B,GAERlH,KAAKsjC,gBAAkBp8B,EACnBlH,KAAKijC,UAAYjjC,KAAKijC,SAASqC,UAC/BtlC,KAAKijC,SAASuB,0BAA0Bt9B,GAShD,mBAAmBw+B,EAAWhkB,GAC1ByY,IAASyJ,YAAY8B,EAAWhkB,GAQpC,sBAAsBgkB,EAAWhkB,GAC7ByY,IAASrY,eAAe4jB,EAAWhkB,GAOvC,YAAYva,EAAU,IAGlB,OAFAnH,KAAKmH,QAAUA,EAERgzB,IAASvvB,KAAK5K,KAAKmH,SA4B9Bw+B,qBAAqBC,EAAWC,EAAWC,EAAO3+B,GAC9C,MAAMo1B,EAAgBuG,EAAIiD,iBAAiBD,QAED,IAA/B3+B,EAAQ6+B,qBACf7L,IAASoH,gBAAgBhF,EAAep1B,EAAQ6+B,oBAEhD5mB,IAAWyB,UAAUolB,uBACjB,CAAED,mBAAoB7+B,EAAQ6+B,sBAKlC7+B,EAAQ++B,0BACRjoB,EAAOhZ,MAAM,iDACb4gC,EAAUM,0BAA2B,EACrCN,EAAUO,oCAAqC,EAC/CP,EAAUQ,oCAAqC,GAG/CvmB,IAAQwmB,yBACRT,EAAUU,aAAe,UAM7BV,EAAUW,aAAe,aAEzBnE,EAA0BM,YAAqBN,GAE/C,MAAMoE,EACA,IAAIC,IACF1mC,KACAqiC,EACAuD,EACAC,EAAWtJ,EACXuJ,EAAO3+B,GAIf,OAFAnH,KAAK+iC,gBAAgB3hB,IAAIqlB,EAAcv/B,GAAIu/B,GAEpCA,EAYXE,sBAAsBC,GAClB,MAAM1/B,EAAK0/B,EAAwB1/B,GAEnC,QAAIlH,KAAK+iC,gBAAgBhf,IAAI7c,KAEzBlH,KAAK+iC,gBAAgBrf,OAAOxc,IAErB,GAWf2/B,cAAcvI,GACV,IAAKA,EACD,MAAM,IAAIjnC,MAAM,wCAGpB2I,KAAKgjC,YAAY9/B,KAAKo7B,GAEtBA,EAAM/b,WAAaviB,KAAKuiB,WAQ5BukB,WACI,OAAO9mC,KAAKkjC,OAMhB6D,4BACI,OAAO/mC,KAAKojC,wBAOhB4D,qBACI,MAAMC,EAAajnC,KAAKknC,eAAe3I,KAGvC,OAAO0I,EAAW1wC,OAAS0wC,EAAW,QAAK1mC,EAO/C4mC,qBACI,MAAMC,EAAapnC,KAAKknC,eAAe3I,KAGvC,OAAO6I,EAAW7wC,OAAS6wC,EAAW,QAAK7mC,EAS/C2mC,eAAevb,GACX,IAAI0b,EAASrnC,KAAKgjC,YAAY9I,QAO9B,YALkB35B,IAAdorB,IACA0b,EAASA,EAAO3W,OACZ4N,GAASA,EAAMgJ,YAAc3b,IAG9B0b,EASXE,gBAAgB5b,GACZ,IAAI6b,EAAe,GAEnB,IAAK,MAAMlkB,KAAOtjB,KAAK+iC,gBAAgB3f,SAAU,CAC7C,MAAMqkB,EAAiBnkB,EAAIikB,qBAAgBhnC,EAAWorB,GAElD8b,IACAD,EAAeA,EAAaxtC,OAAOytC,IAI3C,OAAOD,EAQXE,aAAan6C,GACT,MAAMo6C,EAAe,GASrB,OAPA3nC,KAAKknC,eAAe3I,KAAiBnvB,QAAQw4B,IAEzCD,EAAazkC,KAAK3V,EAAQq6C,EAAWC,OAASD,EAAWE,YAKtD9K,QAAQ+K,IAAIJ,GAOvBK,iBAAiB1J,GACb,MAAM2J,EAAMjoC,KAAKgjC,YAAYp/B,QAAQ06B,IAExB,IAAT2J,GAIJjoC,KAAKgjC,YAAY/+B,OAAOgkC,EAAK,GAUjCC,mBAAmBC,GACf,IAAIC,EAAgB,GAEpB,IAAK,MAAM9kB,KAAOtjB,KAAK+iC,gBAAgB3f,SAAU,CAC7C,MAAMilB,EAAkB/kB,EAAI4kB,mBAAmBC,GAE/CC,EAAgBA,EAAcpuC,OAAOquC,GAOzC,OAJApqB,EAAOhZ,MACF,6BAA4BkjC,EACtB,WAAUC,EAAc7xC,QAE5B6xC,EAMX,wBAAwBtC,GACpB,MAAMvJ,EACAuJ,EAAQ3L,IAAS4C,iBAAmB5C,IAASoC,cAEnD,OAAKA,EAIE3vB,KAAKsL,MAAMtL,KAAKwL,UAAUmkB,IAHtB,GAWf,yBAAyB+L,EAAY/mB,GACjC,OAAO4Y,IAASa,kBAAkBsN,EAAY/mB,GAOlD,mBAAmBA,GACf,OAAO4Y,IAASgB,YAAY5Z,GAOhC,kBAAkB+c,GACd,OAAOnE,IAASiB,WAAWkD,GAO/B,+BACI,OAAOnE,IAAS+B,wBAUpB,+BAA+B0E,GAC3B,OAAOzG,IAASwG,wBAAwBC,GAW5C,2BACI,OAAO9gB,IAAQ0d,cAQnB,8BACI,OAAOrD,IAASgH,uBAQpB,2CACI,OAAOhH,IAASiH,oCAOpB,mCAAmC5H,GAC/B,OAAOW,IAASkH,4BAA4B7H,GAUhD,4BAA4B7D,GACxB,OAAOwE,IAAS+G,qBAAqBvL,GAezC,oBAAoBpU,GAChB,OAAOuhB,EAAIyF,iBAAiBpO,IAASgB,YAAY5Z,IAerD,wBAAwBinB,GACpB,OAAOA,GAAyB,iBAAbA,GACC,YAAbA,EAQX,wBAAwBh9B,GACpB2uB,IAASI,iBAAiB/uB,GAQ9B,uBAAuBq1B,GACnB1G,IAAS8E,gBAAgB4B,GAO7B,iCACI,OAAO1G,IAAS8G,0BAMpBwH,qBACQzoC,KAAKijC,WACLjjC,KAAKijC,SAASxmB,QACdzc,KAAKijC,SAAW,KAEhBjjC,KAAK8hB,eAAekX,IAAUlR,uBAC1B9nB,KAAKwjC,uBAYjBkF,cAAcplB,EAAK0B,EAAM2jB,EAAYpjB,GACjC,MAAM+Y,EAAQhb,EAAIslB,eAAe5jB,GAE5BsZ,IAEOA,EAAMuK,gBAIPvK,EAAM/Y,YAAcA,GAC3BtH,EAAOjZ,MACF,GAAEs5B,qBAAyB/Y,EAAU,KAAO,kBAGrD+Y,EAAMoK,cAAcC,EAAYrlB,IAR5BrF,EAAO9Y,KAAM,6CAA4C6f,IAqBjE8jB,mBAAmBC,EAAItW,GACnB,IAAIzyB,KAAKijC,SAGL,MAAM,IAAI5rC,MAAM,gCAFhB2I,KAAKijC,SAAS+F,YAAYD,EAAItW,GAYtCwW,SAAS17C,GACDyS,KAAKkjC,SAAW31C,IAChByS,KAAKkjC,OAAS31C,EACVyS,KAAKijC,UAAYjjC,KAAKijC,SAASqC,UAC/BtlC,KAAKijC,SAAS2B,oBAAoBr3C,GAEtCyS,KAAKwf,aAAa0D,KAAK8V,IAAU/Q,oBAAqB16B,IAU9D23C,UAAUh+B,GACN,OAAQlH,KAAKmjC,iBACNnjC,KAAKmjC,gBAAgBv/B,QAAQsD,IAAO,EAW/Cy8B,iCAAiChO,GAC7B,MAAMuT,EAAoBlpC,KAAKunC,gBAAgBhJ,KAE/C,IAAK,MAAMD,KAAS4K,EAChB5K,EAAM6K,eAAexT,O,+CC/7BjC5pC,EAAOD,QAZW,CAId6yC,OAAQ,SAKRD,QAAS,Y,6BCdb,olBAQO,MAAM0K,EAAoB,wBAMpBC,EACP,oCAMOC,EACP,wCAKOC,EAAU,cAKVC,EAAY,gBAMZC,EAAoB,wBAKpBC,EACP,kCAMOC,EACP,kCAMOC,EAAoB,0BAKpBC,EAAwB,wBAMxBC,EAAyB,8B,6BCpEtC,8XAGO,MAAMC,EAAsB,gBActB/0C,EAA4B,2BAK5Bg1C,EAA6B,2BAK7B/0C,EAAqB,yBAKrBg1C,EAA0B,yBAM1BC,EAAsB,4BAMtB51C,EAAiB,wB,6BC5C9B,o6BAOO,MAAM9F,EAA0B,oCAK1B27C,EAAa,uBAKbC,EAAuB,uBAKvBC,EAAuB,uBAKvBC,EAAmB,6BAMnBC,EAAoB,wCAMpBC,EAAqB,yCAMrBC,EAA2B,0CAK3Bh7C,EAAqB,+BAKrBC,EAAa,uBAKbC,EAAoB,8BAKpB+6C,EAAa,uBAMbC,EACP,0CAKOC,EAAsB,+BAKtBC,EAAyB,kCAKzBx5C,EAAoB,8BAKpBS,EAAoB,8BAKpBg5C,EAA4B,sC,6BC1EzC,IAOIC,EAPAC,EAAuB,iBAAZC,QAAuBA,QAAU,KAC5CC,EAAeF,GAAwB,mBAAZA,EAAEpJ,MAC7BoJ,EAAEpJ,MACF,SAAsBuJ,EAAQC,EAAUjJ,GACxC,OAAOkJ,SAASn9C,UAAU0zC,MAAMn1C,KAAK0+C,EAAQC,EAAUjJ,IAKzD4I,EADEC,GAA0B,mBAAdA,EAAEM,QACCN,EAAEM,QACVt+C,OAAOu+C,sBACC,SAAwBJ,GACvC,OAAOn+C,OAAOw+C,oBAAoBL,GAC/BnxC,OAAOhN,OAAOu+C,sBAAsBJ,KAGxB,SAAwBA,GACvC,OAAOn+C,OAAOw+C,oBAAoBL,IAQtC,IAAIM,EAAclyB,OAAOG,OAAS,SAAqBnsB,GACrD,OAAOA,GAAUA,GAGnB,SAASkyB,IACPA,EAAa7U,KAAKne,KAAKuT,MAEzBjU,EAAOD,QAAU2zB,EACjB1zB,EAAOD,QAAQ4/C,KAwYf,SAAcC,EAAS9+C,GACrB,OAAO,IAAImwC,SAAQ,SAAUC,EAASC,GACpC,SAAS0O,SACerrC,IAAlBsrC,GACFF,EAAQ7pB,eAAe,QAAS+pB,GAElC5O,EAAQ,GAAG/C,MAAMztC,KAAK0U,YAExB,IAAI0qC,EAQS,UAATh/C,IACFg/C,EAAgB,SAAuB17B,GACrCw7B,EAAQ7pB,eAAej1B,EAAM++C,GAC7B1O,EAAO/sB,IAGTw7B,EAAQD,KAAK,QAASG,IAGxBF,EAAQD,KAAK7+C,EAAM++C,OA9ZvBnsB,EAAaA,aAAeA,EAE5BA,EAAavxB,UAAU49C,aAAUvrC,EACjCkf,EAAavxB,UAAU69C,aAAe,EACtCtsB,EAAavxB,UAAU89C,mBAAgBzrC,EAIvC,IAAI0rC,EAAsB,GAE1B,SAASC,EAAcxqB,GACrB,GAAwB,mBAAbA,EACT,MAAM,IAAI7qB,UAAU,0EAA4E6qB,GAsCpG,SAASyqB,EAAiBC,GACxB,YAA2B7rC,IAAvB6rC,EAAKJ,cACAvsB,EAAawsB,oBACfG,EAAKJ,cAmDd,SAASK,EAAalB,EAAQlkC,EAAMya,EAAU4qB,GAC5C,IAAI5/C,EACA6/C,EACAC,EA1HsBC,EAgJ1B,GApBAP,EAAcxqB,QAGCnhB,KADfgsC,EAASpB,EAAOW,UAEdS,EAASpB,EAAOW,QAAU9+C,OAAOY,OAAO,MACxCu9C,EAAOY,aAAe,SAIKxrC,IAAvBgsC,EAAOG,cACTvB,EAAOjoB,KAAK,cAAejc,EACfya,EAASA,SAAWA,EAASA,SAAWA,GAIpD6qB,EAASpB,EAAOW,SAElBU,EAAWD,EAAOtlC,SAGH1G,IAAbisC,EAEFA,EAAWD,EAAOtlC,GAAQya,IACxBypB,EAAOY,kBAeT,GAbwB,mBAAbS,EAETA,EAAWD,EAAOtlC,GAChBqlC,EAAU,CAAC5qB,EAAU8qB,GAAY,CAACA,EAAU9qB,GAErC4qB,EACTE,EAAS1Z,QAAQpR,GAEjB8qB,EAAStpC,KAAKwe,IAIhBh1B,EAAIy/C,EAAiBhB,IACb,GAAKqB,EAASj2C,OAAS7J,IAAM8/C,EAASG,OAAQ,CACpDH,EAASG,QAAS,EAGlB,IAAIvzC,EAAI,IAAI/B,MAAM,+CACEm1C,EAASj2C,OAAS,IAAMuC,OAAOmO,GADjC,qEAIlB7N,EAAEvM,KAAO,8BACTuM,EAAEuyC,QAAUR,EACZ/xC,EAAE6N,KAAOA,EACT7N,EAAEwzC,MAAQJ,EAASj2C,OA7KGk2C,EA8KHrzC,EA7KnB2L,SAAWA,QAAQI,MAAMJ,QAAQI,KAAKsnC,GAiL1C,OAAOtB,EAcT,SAAS0B,IACP,IAAK7sC,KAAK8sC,MAGR,OAFA9sC,KAAKmrC,OAAOrpB,eAAe9hB,KAAKiH,KAAMjH,KAAK+sC,QAC3C/sC,KAAK8sC,OAAQ,EACY,IAArB3rC,UAAU5K,OACLyJ,KAAK0hB,SAASj1B,KAAKuT,KAAKmrC,QAC1BnrC,KAAK0hB,SAASkgB,MAAM5hC,KAAKmrC,OAAQhqC,WAI5C,SAAS6rC,EAAU7B,EAAQlkC,EAAMya,GAC/B,IAAIurB,EAAQ,CAAEH,OAAO,EAAOC,YAAQxsC,EAAW4qC,OAAQA,EAAQlkC,KAAMA,EAAMya,SAAUA,GACjFwrB,EAAUL,EAAY/+C,KAAKm/C,GAG/B,OAFAC,EAAQxrB,SAAWA,EACnBurB,EAAMF,OAASG,EACRA,EA0HT,SAASC,EAAWhC,EAAQlkC,EAAMmmC,GAChC,IAAIb,EAASpB,EAAOW,QAEpB,QAAevrC,IAAXgsC,EACF,MAAO,GAET,IAAIc,EAAad,EAAOtlC,GACxB,YAAmB1G,IAAf8sC,EACK,GAEiB,mBAAfA,EACFD,EAAS,CAACC,EAAW3rB,UAAY2rB,GAAc,CAACA,GAElDD,EAsDT,SAAyBj3C,GAEvB,IADA,IAAIm3C,EAAM,IAAIl3C,MAAMD,EAAII,QACfjK,EAAI,EAAGA,EAAIghD,EAAI/2C,SAAUjK,EAChCghD,EAAIhhD,GAAK6J,EAAI7J,GAAGo1B,UAAYvrB,EAAI7J,GAElC,OAAOghD,EA1DLC,CAAgBF,GAAcG,EAAWH,EAAYA,EAAW92C,QAoBpE,SAASk3C,EAAcxmC,GACrB,IAAIslC,EAASvsC,KAAK8rC,QAElB,QAAevrC,IAAXgsC,EAAsB,CACxB,IAAIc,EAAad,EAAOtlC,GAExB,GAA0B,mBAAfomC,EACT,OAAO,EACF,QAAmB9sC,IAAf8sC,EACT,OAAOA,EAAW92C,OAItB,OAAO,EAOT,SAASi3C,EAAWr3C,EAAKpI,GAEvB,IADA,IAAI2/C,EAAO,IAAIt3C,MAAMrI,GACZzB,EAAI,EAAGA,EAAIyB,IAAKzB,EACvBohD,EAAKphD,GAAK6J,EAAI7J,GAChB,OAAOohD,EApWT1gD,OAAOC,eAAewyB,EAAc,sBAAuB,CACzDvyB,YAAY,EACZC,IAAK,WACH,OAAO8+C,GAET7qB,IAAK,SAAShgB,GACZ,GAAmB,iBAARA,GAAoBA,EAAM,GAAKqqC,EAAYrqC,GACpD,MAAM,IAAIusC,WAAW,kGAAoGvsC,EAAM,KAEjI6qC,EAAsB7qC,KAI1Bqe,EAAa7U,KAAO,gBAEGrK,IAAjBP,KAAK8rC,SACL9rC,KAAK8rC,UAAY9+C,OAAO4gD,eAAe5tC,MAAM8rC,UAC/C9rC,KAAK8rC,QAAU9+C,OAAOY,OAAO,MAC7BoS,KAAK+rC,aAAe,GAGtB/rC,KAAKgsC,cAAgBhsC,KAAKgsC,oBAAiBzrC,GAK7Ckf,EAAavxB,UAAU2/C,gBAAkB,SAAyB9/C,GAChE,GAAiB,iBAANA,GAAkBA,EAAI,GAAK09C,EAAY19C,GAChD,MAAM,IAAI4/C,WAAW,gFAAkF5/C,EAAI,KAG7G,OADAiS,KAAKgsC,cAAgBj+C,EACdiS,MASTyf,EAAavxB,UAAU4/C,gBAAkB,WACvC,OAAO3B,EAAiBnsC,OAG1Byf,EAAavxB,UAAUg1B,KAAO,SAAcjc,GAE1C,IADA,IAAIk7B,EAAO,GACF71C,EAAI,EAAGA,EAAI6U,UAAU5K,OAAQjK,IAAK61C,EAAKj/B,KAAK/B,UAAU7U,IAC/D,IAAIyhD,EAAoB,UAAT9mC,EAEXslC,EAASvsC,KAAK8rC,QAClB,QAAevrC,IAAXgsC,EACFwB,EAAWA,QAA4BxtC,IAAjBgsC,EAAOvnC,WAC1B,IAAK+oC,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAIC,EAGJ,GAFI7L,EAAK5rC,OAAS,IAChBy3C,EAAK7L,EAAK,IACR6L,aAAc32C,MAGhB,MAAM22C,EAGR,IAAI79B,EAAM,IAAI9Y,MAAM,oBAAsB22C,EAAK,KAAOA,EAAGvpC,QAAU,IAAM,KAEzE,MADA0L,EAAI89B,QAAUD,EACR79B,EAGR,IAAI5L,EAAUgoC,EAAOtlC,GAErB,QAAgB1G,IAAZgE,EACF,OAAO,EAET,GAAuB,mBAAZA,EACT2mC,EAAa3mC,EAASvE,KAAMmiC,OAE5B,KAAIhqC,EAAMoM,EAAQhO,OACd23C,EAAYV,EAAWjpC,EAASpM,GACpC,IAAS7L,EAAI,EAAGA,EAAI6L,IAAO7L,EACzB4+C,EAAagD,EAAU5hD,GAAI0T,KAAMmiC,GAGrC,OAAO,GAiET1iB,EAAavxB,UAAU01C,YAAc,SAAqB38B,EAAMya,GAC9D,OAAO2qB,EAAarsC,KAAMiH,EAAMya,GAAU,IAG5CjC,EAAavxB,UAAUyzB,GAAKlC,EAAavxB,UAAU01C,YAEnDnkB,EAAavxB,UAAUigD,gBACnB,SAAyBlnC,EAAMya,GAC7B,OAAO2qB,EAAarsC,KAAMiH,EAAMya,GAAU,IAqBhDjC,EAAavxB,UAAUw9C,KAAO,SAAczkC,EAAMya,GAGhD,OAFAwqB,EAAcxqB,GACd1hB,KAAK2hB,GAAG1a,EAAM+lC,EAAUhtC,KAAMiH,EAAMya,IAC7B1hB,MAGTyf,EAAavxB,UAAUkgD,oBACnB,SAA6BnnC,EAAMya,GAGjC,OAFAwqB,EAAcxqB,GACd1hB,KAAKmuC,gBAAgBlnC,EAAM+lC,EAAUhtC,KAAMiH,EAAMya,IAC1C1hB,MAIbyf,EAAavxB,UAAU4zB,eACnB,SAAwB7a,EAAMya,GAC5B,IAAI2sB,EAAM9B,EAAQ+B,EAAUhiD,EAAGiiD,EAK/B,GAHArC,EAAcxqB,QAGCnhB,KADfgsC,EAASvsC,KAAK8rC,SAEZ,OAAO9rC,KAGT,QAAaO,KADb8tC,EAAO9B,EAAOtlC,IAEZ,OAAOjH,KAET,GAAIquC,IAAS3sB,GAAY2sB,EAAK3sB,WAAaA,EACb,KAAtB1hB,KAAK+rC,aACT/rC,KAAK8rC,QAAU9+C,OAAOY,OAAO,cAEtB2+C,EAAOtlC,GACVslC,EAAOzqB,gBACT9hB,KAAKkjB,KAAK,iBAAkBjc,EAAMonC,EAAK3sB,UAAYA,SAElD,GAAoB,mBAAT2sB,EAAqB,CAGrC,IAFAC,GAAY,EAEPhiD,EAAI+hD,EAAK93C,OAAS,EAAGjK,GAAK,EAAGA,IAChC,GAAI+hD,EAAK/hD,KAAOo1B,GAAY2sB,EAAK/hD,GAAGo1B,WAAaA,EAAU,CACzD6sB,EAAmBF,EAAK/hD,GAAGo1B,SAC3B4sB,EAAWhiD,EACX,MAIJ,GAAIgiD,EAAW,EACb,OAAOtuC,KAEQ,IAAbsuC,EACFD,EAAK3gB,QAiIf,SAAmB2gB,EAAM1d,GACvB,KAAOA,EAAQ,EAAI0d,EAAK93C,OAAQo6B,IAC9B0d,EAAK1d,GAAS0d,EAAK1d,EAAQ,GAC7B0d,EAAK39B,MAlIG89B,CAAUH,EAAMC,GAGE,IAAhBD,EAAK93C,SACPg2C,EAAOtlC,GAAQonC,EAAK,SAEQ9tC,IAA1BgsC,EAAOzqB,gBACT9hB,KAAKkjB,KAAK,iBAAkBjc,EAAMsnC,GAAoB7sB,GAG1D,OAAO1hB,MAGbyf,EAAavxB,UAAUugD,IAAMhvB,EAAavxB,UAAU4zB,eAEpDrC,EAAavxB,UAAUu1B,mBACnB,SAA4Bxc,GAC1B,IAAIinC,EAAW3B,EAAQjgD,EAGvB,QAAeiU,KADfgsC,EAASvsC,KAAK8rC,SAEZ,OAAO9rC,KAGT,QAA8BO,IAA1BgsC,EAAOzqB,eAUT,OATyB,IAArB3gB,UAAU5K,QACZyJ,KAAK8rC,QAAU9+C,OAAOY,OAAO,MAC7BoS,KAAK+rC,aAAe,QACMxrC,IAAjBgsC,EAAOtlC,KACY,KAAtBjH,KAAK+rC,aACT/rC,KAAK8rC,QAAU9+C,OAAOY,OAAO,aAEtB2+C,EAAOtlC,IAEXjH,KAIT,GAAyB,IAArBmB,UAAU5K,OAAc,CAC1B,IACI1I,EADA0X,EAAOvY,OAAOuY,KAAKgnC,GAEvB,IAAKjgD,EAAI,EAAGA,EAAIiZ,EAAKhP,SAAUjK,EAEjB,oBADZuB,EAAM0X,EAAKjZ,KAEX0T,KAAKyjB,mBAAmB51B,GAK1B,OAHAmS,KAAKyjB,mBAAmB,kBACxBzjB,KAAK8rC,QAAU9+C,OAAOY,OAAO,MAC7BoS,KAAK+rC,aAAe,EACb/rC,KAKT,GAAyB,mBAFzBkuC,EAAY3B,EAAOtlC,IAGjBjH,KAAK8hB,eAAe7a,EAAMinC,QACrB,QAAkB3tC,IAAd2tC,EAET,IAAK5hD,EAAI4hD,EAAU33C,OAAS,EAAGjK,GAAK,EAAGA,IACrC0T,KAAK8hB,eAAe7a,EAAMinC,EAAU5hD,IAIxC,OAAO0T,MAoBbyf,EAAavxB,UAAUggD,UAAY,SAAmBjnC,GACpD,OAAOkmC,EAAWntC,KAAMiH,GAAM,IAGhCwY,EAAavxB,UAAUwgD,aAAe,SAAsBznC,GAC1D,OAAOkmC,EAAWntC,KAAMiH,GAAM,IAGhCwY,EAAaguB,cAAgB,SAAS9B,EAAS1kC,GAC7C,MAAqC,mBAA1B0kC,EAAQ8B,cACV9B,EAAQ8B,cAAcxmC,GAEtBwmC,EAAchhD,KAAKk/C,EAAS1kC,IAIvCwY,EAAavxB,UAAUu/C,cAAgBA,EAiBvChuB,EAAavxB,UAAUygD,WAAa,WAClC,OAAO3uC,KAAK+rC,aAAe,EAAIhB,EAAe/qC,KAAK8rC,SAAW,K,6BCxahE,YAEA,MAAM8C,EAA6B,GA2CnC,SAAShpB,EAAgB5gB,EAAOmC,EAASwzB,GACrC,GAAqB,iBAAV31B,QAA4C,IAAfA,EAAMnY,KAkB1C,OARAmT,KAAK6lB,IAAM,CACP7gB,QACA+gB,YAAa5e,EACbwzB,QAASA,GAAWvkC,MAAMC,QAAQskC,GAC5BA,EAAQT,MAAM,QACd35B,GAGFyE,EAAMnY,MACd,IAAK,kBACL,IAAK,wBACL,IAAK,gBACDmT,KAAKnT,KAAOgiD,oBACZ7uC,KAAKyE,QACCmqC,EAA2B5uC,KAAKnT,OAC3BmT,KAAK6lB,IAAI8U,SAAW,IAAIx3B,KAAK,MACxC,MACJ,IAAK,uBACL,IAAK,gBACDnD,KAAKnT,KAAOgiD,YACZ7uC,KAAKyE,QACCmqC,EAA2B5uC,KAAKnT,OAC3BmT,KAAK6lB,IAAI8U,SAAW,IAAIx3B,KAAK,MACxC,MACJ,IAAK,8BACL,IAAK,uBAAwB,CACzB,MAAM2iB,EAAiB9gB,EAAM8gB,gBAAkB9gB,EAAM8pC,WAKjD3nC,GACOA,EAAQ8sB,SACN0G,GAAWA,EAAQ/2B,QAAQ,UAAY,KACrB,aAAnBkiB,GACsB,aAAnBA,GACmB,cAAnBA,GACmB,cAAnBA,GACmB,UAAnBA,GACmB,WAAnBA,GACmB,aAAnBA,IACX9lB,KAAKnT,KAAOgiD,yBACZ7uC,KAAKyE,QACCmqC,EAA2B5uC,KAAKnT,MA6CtD,SAA2CkiD,EAAsBhpB,GAC7D,GAAIA,GAAeA,EAAYkO,OAASlO,EAAYkO,MAAMuB,UACtD,OAAQuZ,GACR,IAAK,QACD,OAAOhpB,EAAYkO,MAAMuB,UAAUgB,SACvC,IAAK,SACD,OAAOzQ,EAAYkO,MAAMuB,UAAUiB,UACvC,QACI,OAAO1Q,EAAYkO,MAAMuB,UAAUuZ,IAAyB,GAIpE,MAAO,GAxDeC,CACElpB,EACA3e,KAEZnH,KAAKnT,KAAOgiD,oBACZ7uC,KAAKyE,QACCmqC,EAA2B5uC,KAAKnT,MAC5BmY,EAAM8gB,gBAEpB,MAGJ,QACI9lB,KAAKnT,KAAOgiD,UACZ7uC,KAAKyE,QACCO,EAAMP,SAAWmqC,EAA2B5uC,KAAKnT,UAGxD,IAAqB,iBAAVmY,EAWd,MAAM,IAAI3N,MAAM,qBAVZu3C,EAA2B5pC,IAC3BhF,KAAKnT,KAAOmY,EACZhF,KAAKyE,QAAU0C,GAAWynC,EAA2B5pC,IAKrDhF,KAAKyE,QAAUO,EAMvBhF,KAAKoE,MAAQY,EAAMZ,QAAU,IAAI/M,OAAS+M,MAhI9CwqC,EAA2BC,0BACrB,sCACND,EAA2BC,+BACrB,sCACND,EAA2BC,+BACrB,mCACND,EAA2BC,iCACrB,mCACND,EAA2BC,qCACrB,kCACND,EAA2BC,WACrB,6BACND,EAA2BC,qBACrB,4CACND,EAA2BC,aACrB,2CACND,EAA2BC,qBACrB,sCACND,EAA2BC,qBACrB,kCACND,EAA2BC,yBACrB,iDA8GNjpB,EAAgB13B,UAAYlB,OAAOY,OAAOyJ,MAAMnJ,WAChD03B,EAAgB13B,UAAU+H,YAAc2vB,EAuBzBA,O,6BC/Jf,uDAOe,MAAMwU,EAMjBnkC,YAAYupB,EAAe,IAAIC,KAC3Bzf,KAAKwf,aAAeA,EAGpBxf,KAAKq8B,iBAAmBr8B,KAAK2hB,GAAK3hB,KAAK4jC,YACvC5jC,KAAKivC,oBAAsBjvC,KAAKyuC,IAAMzuC,KAAK8hB,eAS/C8hB,YAAYnc,EAAW/F,GAGnB,OAFA1hB,KAAKwf,aAAaokB,YAAYnc,EAAW/F,GAElC,IAAM1hB,KAAKivC,oBAAoBxnB,EAAW/F,GASrDI,eAAe2F,EAAW/F,GACtB1hB,KAAKwf,aAAasC,eAAe2F,EAAW/F,M,6BCxCpD,oDAUe,SAASwtB,EAAIld,GACxB,MAAMvE,EAAQuE,EAAIjvB,MAAM,UAExB,IAAK,IAAIzW,EAAI,EAAGiK,EAASk3B,EAAMl3B,OAAQjK,EAAIiK,EAAQjK,IAAK,CACpD,IAAI6iD,EAAU,KAAI1hB,EAAMnhC,GAEpBA,IAAMiK,EAAS,IACf44C,GAAU,QAEd1hB,EAAMnhC,GAAK6iD,EAEf,MAAMl3B,EAAawV,EAAMC,QAAR,OAEjB1tB,KAAKytB,MAAQA,EACbztB,KAAKsQ,IAAM2H,EAAUwV,EAAMtqB,KAAK,IAChCnD,KAAKiY,QAAUA,EASnBi3B,EAAIhhD,UAAUkhD,SAAU,EAMxBF,EAAIhhD,UAAUmhD,qBAAsB,EAMpCH,EAAIhhD,UAAUohD,qBAAsB,EAKpCJ,EAAIhhD,UAAUqhD,gBAAkB,WAC5B,MAAMC,EAAa,GAEnB,IAAK,IAAIC,EAAa,EAAGA,EAAazvC,KAAKytB,MAAMl3B,OAAQk5C,IAAc,CACnE,MAGMhiB,EAAQ,CACVgiB,aACAC,IAJEjjB,IAAQc,SACNd,IAAQO,SAAShtB,KAAKytB,MAAMgiB,GAAa,WAI7Cjf,MAAO,GACPM,WAAY,IAGhB0e,EAAWC,GAAchiB,EAEzBhB,IAAQuD,UAAUhwB,KAAKytB,MAAMgiB,GAAa,WAAWrgC,QAAQ5K,IACzD,MAAMmrC,EAAWnrC,EAAK2oB,UAAU,GAAGpqB,MAAM,KAAK,GAIzC0qB,EAAM+C,MAAMmf,KACbliB,EAAM+C,MAAMmf,GAAY,CACpB3qB,KAAM2qB,EACNrgB,MAAO,KAGf7B,EAAM+C,MAAMmf,GAAUrgB,MAAMpsB,KAAKsB,KAErCioB,IAAQuD,UAAUhwB,KAAKytB,MAAMgiB,GAAa,iBAAiBrgC,QAAQ5K,IAC/D,MAAMorC,EAAMprC,EAAKZ,QAAQ,KACnButB,EAAY3sB,EAAK4Q,OAAO,EAAGw6B,GAAKx6B,OAAO,IACvCob,EAAQhsB,EAAK4Q,OAAO,GAAK+b,EAAU56B,QAAQwM,MAAM,KAEnDytB,EAAMj6B,QACNk3B,EAAMqD,WAAW5tB,KAAK,CAClBiuB,YACAX,YAMhB,OAAOgf,GAQXN,EAAIhhD,UAAU2hD,aAAe,SAAS7qB,GAElC,MAAM8qB,EAAS9vC,KAAKuvC,kBACpB,IAAI9pC,GAAS,EAWb,OATAzY,OAAOuY,KAAKuqC,GAAQ1gC,QAAQqgC,IACpBhqC,GAGAqqC,EAAOL,GAAYjf,MAAMxL,KACzBvf,GAAS,KAIVA,GAIXypC,EAAIhhD,UAAU6hD,SAAW,SAASrwC,EAAMswC,GAEpCvjB,IAAQuD,UAAUhwB,KAAKiY,QAAS,YAAY7I,QAAQ5K,IAChD,MAAMR,EAAQQ,EAAKzB,MAAM,KACnBouB,EAAYntB,EAAM0pB,QAAQtY,OAAO,GAEvC1V,EAAK/S,EAAE,QAAS,CAAEsZ,MAAO,kCACrBkrB,cACJ,IAAK,IAAIj4B,EAAI,EAAGA,EAAI8K,EAAMzN,OAAQ2C,IAC9BwG,EAAK/S,EAAE,UAAW,CAAEE,KAAMmX,EAAM9K,KAAMiN,KAE1CzG,EAAKyG,OAGT,IAAK,IAAI7Z,EAAI,EAAGA,EAAI0T,KAAKytB,MAAMl3B,OAAQjK,IAAK,CACxC,MAAMwhC,EAAQrB,IAAQe,WAAWxtB,KAAKytB,MAAMnhC,GAAGyW,MAAM,QAAQ,IAE7D,GAAsB,UAAhB+qB,EAAML,OACa,UAAhBK,EAAML,OACU,gBAAhBK,EAAML,MACX,SAGJ,IAAIzI,EACJ,MAAMirB,EAAYxjB,IAAQO,SAAShtB,KAAKytB,MAAMnhC,GAAI,WAG9C04B,IADAirB,GACOA,EAAU9iB,UAAU,GAAGpqB,MAAM,KAAK,GAK7CrD,EAAK/S,EAAE,UAAW,CAAEujD,QAASF,EACzBnjD,KAAMihC,EAAML,QAChB,MAAM0iB,EAAW1jB,IAAQO,SAAShtB,KAAKytB,MAAMnhC,GAAI,UAEjD,GAAI6jD,EAAU,CAEV,MAAMT,EAAMjjB,IAAQc,SAAS4iB,GAE7BzwC,EAAKlE,MAAM,CAAE3O,KAAM6iD,IAGvB,GAAoB,UAAhB5hB,EAAML,OAAqC,UAAhBK,EAAML,MAAmB,CACpD/tB,EAAK/S,EAAE,cACH,CAAEsZ,MAAO,6BACLwnB,MAAOK,EAAML,QACjBzI,GACAtlB,EAAKlE,MAAM,CAAEwpB,SAEjB,IAAK,IAAI9rB,EAAI,EAAGA,EAAI40B,EAAMF,IAAIr3B,OAAQ2C,IAAK,CACvC,MAAMk3C,EACA3jB,IAAQO,SACNhtB,KAAKytB,MAAMnhC,GACV,YAAWwhC,EAAMF,IAAI10B,IAE9BwG,EAAK/S,EAAE,eAAgB8/B,IAAQsB,YAAYqiB,IAI3C,MAAMC,EACA5jB,IAAQO,SACNhtB,KAAKytB,MAAMnhC,GACV,UAASwhC,EAAMF,IAAI10B,IAE5B,GAAIm3C,EAAW,CACX,MAAMC,EAAiB7jB,IAAQ8B,UAAU8hB,GAGzC,IAAK,IAAI5uC,EAAI,EAAGA,EAAI6uC,EAAe/5C,OAAQkL,IACvC/B,EAAK/S,EAAE,YAAa2jD,EAAe7uC,IAAI0E,KAK/CnG,KAAKuwC,eAAejkD,EAAGoT,EAAMouB,EAAMF,IAAI10B,IAEvCwG,EAAKyG,KAGT,GAAI6e,EAAM,CACN,MAAMwrB,EAAU/jB,IAAQ2C,UAAUpvB,KAAKytB,MAAMnhC,IAE7C,IAAK,MAAQmkD,EAAeC,KAAoBF,EAC5C9wC,EAAK/S,EAAE,SAAU,CACbq4B,KAAMyrB,EACNxqC,MAAO,oCAGXyqC,EAAethC,QAAQuhC,IAEnB,MAAMf,EAAMe,EAAY/sC,QAAQ,KAC1BgtC,EAAKD,EAAYv7B,OAAOw6B,EAAM,GAGpC,GADAlwC,EAAK/S,EAAE,cACkB,IAArBikD,EAAGhtC,QAAQ,KACXlE,EAAKlE,MAAM,CAAE3O,KAAM+jD,QAChB,CACH,MAAM/jD,EAAO+jD,EAAG7tC,MAAM,IAAK,GAAG,GAE9BrD,EAAKlE,MAAM,CAAE3O,SAEb,IAAIgkD,EAAID,EAAG7tC,MAAM,IAAK,GAAG,GAEzB8tC,EAAIpkB,IAAQC,mBAAmBmkB,GAC/BnxC,EAAKlE,MAAM,CAAEjO,MAAOsjD,IAExBnxC,EAAKyG,OAGTzG,EAAKyG,KAKHsmB,IAAQuD,UAAUhwB,KAAKytB,MAAMnhC,GAAI,iBAExB8iB,QAAQ5K,IACnB,MAAMorC,EAAMprC,EAAKZ,QAAQ,KACnButB,EAAY3sB,EAAK4Q,OAAO,EAAGw6B,GAAKx6B,OAAO,IACvCob,EAAQhsB,EAAK4Q,OAAO,GAAK+b,EAAU56B,QAAQwM,MAAM,KAEnDytB,EAAMj6B,SACNmJ,EAAK/S,EAAE,aAAc,CAAEwkC,YACnBlrB,MAAO,oCACXuqB,EAAMphB,QAAQ/gB,GAAKqR,EAAK/S,EAAE,SAAU,CAAEq4B,KAAM32B,IAAK8X,MACjDzG,EAAKyG,QAKjB,MAAM2qC,EAAWrkB,IAAQuD,UAAUhwB,KAAKytB,MAAMnhC,GAAI,SAElD,GAAIwkD,EAASv6C,QAAUupB,IAAQixB,uBAAwB,CAGnD,MAAMC,EAAOF,EACRtrC,IAAIyrC,GAAWA,EAAQluC,MAAM,KAAK,IAClCyC,IAAI0rC,GAAWA,EAAQnuC,MAAM,KAAK,IAEvCiuC,EAAK5hC,QAAQ9C,IACT5M,EAAK/S,EAAE,SAAU,CACb2f,MACArG,MAAO,oCAEXvG,EAAKyG,OAGHsmB,IAAQO,SAAShtB,KAAKytB,MAAMnhC,GAAI,iBAGlCoT,EAAK/S,EAAE,YAAa,CAChBwkC,UAAW,MACXlrB,MAAO,oCAEX+qC,EAAK5hC,QAAQ9C,IACT5M,EAAK/S,EAAE,SAAU,CAAE2f,QAAOnG,OAE9BzG,EAAKyG,MAITsmB,IAAQO,SAAShtB,KAAKytB,MAAMnhC,GAAI,eAChCoT,EAAK/S,EAAE,YAAYwZ,KAIvBnG,KAAKuwC,eAAejkD,EAAGoT,EAAM,KAG7B,MAAMyxC,EAAc1kB,IAAQuD,UAAUhwB,KAAKytB,MAAMnhC,GAAI,aAErD,IAAK,IAAI4M,EAAI,EAAGA,EAAIi4C,EAAY56C,OAAQ2C,IAAK,CACzC,MAAMk4C,EAAS3kB,IAAQiD,YAAYyhB,EAAYj4C,IAS/C,GAPAwG,EAAK/S,EAAE,aAAc,CACjBsZ,MAAO,wCACP2pB,IAAKwhB,EAAOxhB,IACZ1oB,GAAIkqC,EAAO7jD,QAIX6jD,EAAOjjD,eAAe,aAGtB,OAAQijD,EAAOzhB,WACf,IAAK,WACDjwB,EAAKlE,MAAM,CAAE61C,QAAS,cACtB,MACJ,IAAK,WACD3xC,EAAKlE,MAAM,CAAE61C,QAAS,cACtB,MACJ,IAAK,WACD3xC,EAAKlE,MAAM,CAAE61C,QAAS,SACtB,MACJ,IAAK,WACD3xC,EAAKlE,MAAM,CAAE61C,QAAS,SAM9B3xC,EAAKyG,KAETzG,EAAKyG,KAITnG,KAAKsxC,kBAAkBhlD,EAAGoT,GAE1B,MAAMhT,EAAIsT,KAAKytB,MAAMnhC,GAEjBmgC,IAAQO,SAAStgC,EAAG,aAAcsT,KAAKiY,SACvCvY,EAAKlE,MAAM,CAAE61C,QAAS,SACf5kB,IAAQO,SAAStgC,EAAG,aAAcsT,KAAKiY,SAC9CvY,EAAKlE,MAAM,CAAE61C,QAAS,cACf5kB,IAAQO,SAAStgC,EAAG,aAAcsT,KAAKiY,SAC9CvY,EAAKlE,MAAM,CAAE61C,QAAS,cACf5kB,IAAQO,SAAStgC,EAAG,aAAcsT,KAAKiY,UAC9CvY,EAAKlE,MAAM,CAAE61C,QAAS,SAKP,MAAfvjB,EAAMH,MAAiBlB,IAAQO,SAAStgC,EAAG,gBAAiBsT,KAAKiY,UAEjEvY,EAAKlE,MAAM,CAAE61C,QAAS,aAE1B3xC,EAAKyG,KAIT,OAFAzG,EAAKyG,KAEEzG,GAGXwvC,EAAIhhD,UAAUojD,kBAAoB,SAAS7B,EAAY/vC,GACnDA,EAAK/S,EAAE,aAGP,MAAM4kD,EACA9kB,IAAQO,SAAShtB,KAAKytB,MAAMgiB,GAAa,aAAczvC,KAAKiY,SAElE,GAAIs5B,EAAS,CACT,MAAMC,EAAY/kB,IAAQyB,aAAaqjB,GAEvC7xC,EAAK/S,EAAE,UAAW,CACdsZ,MAAO,yCACPwrC,OAAQD,EAAU,GAClB9oC,SAAU8oC,EAAU,KAIpBA,EAAUj7C,OAAS,GACnBmJ,EAAKlE,MAAM,CAAEsiC,QAAS0T,EAAU,KAEpC9xC,EAAKyG,KAKHsmB,IAAQuD,UACNhwB,KAAKytB,MAAMgiB,GACX,iBACAzvC,KAAKiY,SAEA7I,QAAQ5K,IACjB,MAAM8pB,EAAc7B,IAAQ4B,iBAAiB7pB,GAE7C8pB,EAAYroB,MAAQ,8BACpBvG,EAAK/S,EAAE,eAAea,EAAE8gC,EAAYA,oBAC7BA,EAAYA,YAEnB,MAAMojB,EACAjlB,IAAQO,SACNhtB,KAAKytB,MAAMgiB,GACX,WACAzvC,KAAKiY,SAETy5B,IACApjB,EAAYqjB,MAAQD,EAAUt8B,OAAO,IAEzC1V,EAAKlE,MAAM8yB,GACX5uB,EAAKyG,OAET,MAAMyrC,EAAgBnlB,IAAQE,UAAU3sB,KAAKytB,MAAMgiB,GAAazvC,KAAKiY,SAErE,GAAI25B,EAAe,CACfA,EAAc3rC,MAAQ,uCACtBvG,EAAKlE,MAAMo2C,GAILnlB,IAAQuD,UACNhwB,KAAKytB,MAAMgiB,GACX,eACAzvC,KAAKiY,SAEE7I,QAAQ5K,IACnB,MAAMiqB,EAAYhC,IAAQyD,kBAAkB1rB,GAExCxE,KAAKovC,UACL3gB,EAAUI,GAAK,WAEnB,MAAMnmB,EACA+lB,GAA2C,iBAAvBA,EAAU/lB,SAC1B+lB,EAAU/lB,SAAS/F,cACnB,GAEL3C,KAAKqvC,sBACe,QAAb3mC,GAAmC,WAAbA,IAC1B1I,KAAKsvC,qBAAoC,QAAb5mC,GAGpChJ,EAAK/S,EAAE,YAAa8hC,GAAWtoB,OAGvCzG,EAAKyG,MAIT+oC,EAAIhhD,UAAUqiD,eAAiB,SAASd,EAAY/vC,EAAMmyC,GAEhDplB,IAAQuD,UACNhwB,KAAKytB,MAAMgiB,GACV,aAAYoC,GAEfziC,QAAQ5K,IACV,MAAMstC,EAAWrlB,IAAQ8C,YAAY/qB,GAEf,YAAlBstC,EAAS7qC,MACTvH,EAAK/S,EAAE,kBAAmB,CACtBsZ,MAAO,qCACP1Y,MAAOukD,EAASriB,OAAO,KAE3B/vB,EAAKyG,OAELzG,EAAK/S,EAAE,UAAW,CACdsZ,MAAO,qCACPgB,KAAM6qC,EAAS7qC,OAEf6qC,EAASriB,OAAOl5B,OAAS,GACzBmJ,EAAKlE,MAAM,CAAE,QAAWs2C,EAASriB,OAAO,KAE5C/vB,EAAKyG,SAKjB+oC,EAAIhhD,UAAU6jD,iBAAmB,SAASryC,EAAMmyC,GAC5C,IAAI7f,EAAM,GACV,MAAMggB,EACAtyC,EAAKuxB,KACH,gEAEJ+gB,EAAsBz7C,SACtBy7B,GAAO,uBACHggB,EAAsBzwC,KAAK,SAC3BywB,GAAOggB,EAAsBzwC,KAAK,SAElCywB,GAAO,IAEXA,GAAO,QAaX,OAVyBtyB,EAAKuxB,KAAK,wDAElBghB,KAAK,CAACC,EAAGC,KACtBngB,GAAQ,aAAY6f,KAAeM,EAAGvvC,aAAa,UAC/CuvC,EAAGC,aAAa,aAChBpgB,GAAQ,IAAGmgB,EAAGvvC,aAAa,YAE/BovB,GAAO,SAGJA,GAIXkd,EAAIhhD,UAAUmkD,WAAa,SAASC,GAChC,MAAMC,EAAYpqC,KAAKgM,MAGvBnU,KAAKsQ,IACE,cAAMiiC,yCAMb,MAAMC,EACAC,EAAEH,GAAQrhB,KAAK,mDAEjBuhB,EAAOj8C,QACPi8C,EAAOP,KAAK,CAACrC,EAAK1e,KACd,MAAMwhB,EACAD,EAAEvhB,GACCD,KAAK,YACLzrB,IAAI,CAAC0sC,EAAGS,IAAYA,EAAQ/vC,aAAa,SACzCzV,MAELulD,EAASn8C,OAAS,IAClByJ,KAAKsQ,KACG,WACA4gB,EAAMtuB,aAAa,cACZsuB,EAAMtuB,aAAa,WAC1B8vC,EAASvvC,KAAK,cAKlCnD,KAAKiY,QAAUjY,KAAKsQ,IACpBgiC,EAAOrhB,KAAK,YAAYghB,KAAK,CAACC,EAAGS,KAC7B,MAAMjmD,EAAIsT,KAAK4yC,aAAaH,EAAEE,IAE9B3yC,KAAKytB,MAAMvqB,KAAKxW,KAWpBsT,KAAKsQ,IAAMtQ,KAAKiY,QAAUjY,KAAKytB,MAAMtqB,KAAK,KAI9C+rC,EAAIhhD,UAAU0kD,aAAe,SAASD,GAClC,MAAMtjB,EAAOsjB,EAAQ1hB,KAAK,gBACpBrT,EAAY+0B,EAAQ1hB,KAAK,4DAC/B,IAAIe,EAAM,GACV,MAAM6gB,EAAOj1B,EAAUqT,KACnB,4DAEExD,EAAQ,CAAEA,MAAO4B,EAAK9tB,KAAK,SAEjCksB,KAAa,KAUb,GATgC,aAA5BklB,EAAQpxC,KAAK,aAEbksB,EAAME,KAAO,KAEb/P,EAAUqT,KAAK,qDAAqD16B,OACpEk3B,EAAMhlB,MAAQoqC,EAAKt8C,OAAS,YAAc,YAE1Ck3B,EAAMhlB,MAAQ,WAEdoqC,EAAKt8C,OAAQ,CACby7B,GAAQ,iBAAgBvE,EAAME,kBAC1BklB,EAAKtxC,KAAK,gBACdywB,GAAQ,aAAY6gB,EAAKtxC,KAAK,aAAasxC,EAAKtxC,KAAK,cAErD,MAAMuxC,EAAcD,EAAKtxC,KAAK,WAG1BywB,GADA8gB,EACQ,IAAGA,QAEJ,YAGXrlB,EAAMG,IACAyB,EACG4B,KAAK,iBACLzrB,IAAI,CAAC0sC,EAAGa,IAAgBA,EAAYnwC,aAAa,OACjDzV,MACT6kC,GAAUvF,IAAQoB,WAAWJ,GAArB,OA6CZ,OA1CAuE,GAAO,uBACF6gB,EAAKt8C,SACNy7B,GAAO,+BAIPpU,EAAUrnB,SACNqnB,EAAUrc,KAAK,WACfywB,GAAUvF,IAAQW,cAAcxP,EAAUrc,KAAK,UAAvC,QAERqc,EAAUrc,KAAK,SACfywB,GAAUvF,IAAQa,YAAY1P,EAAUrc,KAAK,QAArC,QAEZqc,EAAUqT,KAAK,qDAAqDghB,KAAK,CAACC,EAAG5jB,KACzE0D,GAAQ,iBAAgB1D,EAAY1rB,aAAa,QACjDovB,GAAQ,IAAGygB,EAAEnkB,GAAa3sB,OAC1BqwB,GAAO,OACH1D,EAAY8jB,aAAa,WACzBpgB,GAAQ,WAAU1D,EAAY1rB,aAAa,mBAMvDgb,EAAUqT,KAAK,cACVghB,KAAK,CAACC,EAAGzjB,KACN,IAAI/lB,EAAW+lB,EAAU7rB,aAAa,YAEtC8F,EAC0B,iBAAbA,EAAwBA,EAAS/F,cAAgB,GAEzD3C,KAAKqvC,sBACe,QAAb3mC,GAAmC,WAAbA,IAC1B1I,KAAKsvC,qBAAoC,QAAb5mC,IAEzB1I,KAAKovC,SACZ3gB,EAAUjtB,aAAa,KAAM,WAGjCwwB,GAAOvF,IAAQ0D,oBAAoB1B,MAGnCkkB,EAAQpxC,KAAK,YACrB,IAAK,YACDywB,GAAO,iBACP,MACJ,IAAK,YACDA,GAAO,iBACP,MACJ,IAAK,OACDA,GAAO,iBACP,MACJ,IAAK,OACDA,GAAO,iBAqFX,OAlFAA,GAAQ,SAAQ2gB,EAAQpxC,KAAK,cAMzB8tB,EAAK4B,KAAK,aAAa16B,SACvBy7B,GAAO,kBAGX3C,EAAK4B,KAAK,iBAAiBghB,KAAK,CAACC,EAAGa,KAChC/gB,GAAUvF,IAAQ0B,YAAY4kB,GAAtB,OACJN,EAAEM,GAAa9hB,KAAK,cAAc16B,SAClCy7B,GAAQ,UAAS+gB,EAAYnwC,aAAa,SAC1CovB,GACOygB,EAAEM,GACA9hB,KAAK,cACLzrB,IAAI,CAACwtC,EAAIC,KACN,MAAMpmD,EAAOomD,EAAUrwC,aAAa,QAEpC,OACK/V,EAAUA,EAAF,IAAY,IACfomD,EAAUrwC,aAAa,WAEpCzV,MACAgW,KAAK,MACd6uB,GAAO,QAIXA,GAAOhyB,KAAK+xC,iBAAiBU,EAAEM,GAAcA,EAAYnwC,aAAa,SAI1EovB,GAAOhyB,KAAK+xC,iBAAiB1iB,EAAM,KAGnCA,EACK4B,KAAK,8DACLghB,KAAK,CAACC,EAAGgB,KACNlhB,GACQ,YAAWkhB,EAAOtwC,aAAa,SAC/BswC,EAAOtwC,aAAa,eAIpCysB,EACK4B,KAAK,wDACLghB,KAAK,CAACC,EAAGrgB,KACN,MAAMV,EAAYU,EAAUjvB,aAAa,aACnC4tB,EACAiiB,EAAE5gB,GACCZ,KAAK,WACLzrB,IAAI,CAACwtC,EAAIjoB,IAAWA,EAAOnoB,aAAa,SACxCzV,MAELqjC,EAAMj6B,SACNy7B,GAAQ,gBAAeb,KAAaX,EAAMrtB,KAAK,cAK3DksB,EACK4B,KAAK,oDACLghB,KAAK,CAACC,EAAGnnB,KACN,MAAM/F,EAAO+F,EAAOnoB,aAAa,QAEjC6vC,EAAE1nB,GACGkG,KAAK,cACLghB,KAAK,CAACe,EAAIC,KACP,MAAMpmD,EAAOomD,EAAUrwC,aAAa,QACpC,IAAIrV,EAAQ0lD,EAAUrwC,aAAa,SAEnCrV,EAAQk/B,IAAQC,mBAAmBn/B,GACnCykC,GAAQ,UAAShN,KAAQn4B,IACrBU,GAASA,EAAMgJ,SACfy7B,GAAQ,IAAGzkC,GAEfykC,GAAO,WAIhBA,I,+hBCntBJ,MAAMmhB,EAAS,SAETC,EAAQ,QAERC,EAAU,UAEVC,EAAoB,YAEpBC,EAAS,SAETC,EAAO,OAEPC,EAAW,WAEXC,EAAe,eAEfC,EAAU,UCFjBC,EAAwB,CAC1B,OAAUT,EACV,SAAYA,EACZ,MAASC,EACT,QAAWC,EACX,oBAAqBC,EACrB,OAAUC,GA2Cd,SAASM,IACL,MAAMC,EAAYtZ,UAAUsZ,UAE5B,GAAIA,EAAUxgC,MAAM,YAAa,CAC7B,MAAMygC,EAAUD,EAAUxgC,MAAM,sBAAsB,GAEtD,MAAO,CACHzmB,KAAM4mD,EACNM,YAUZ,SAASC,IACL,MAAMF,EAAYtZ,UAAUsZ,UAE5B,GAAIA,EAAUxgC,MAAM,eAAgB,CAChC,MAAMygC,EAAUD,EAAUxgC,MAAM,yBAAyB,GAEzD,MAAO,CACHzmB,KAAM2mD,EACNO,YASZ,SAASE,IACL,MAAM3gC,EACAknB,UAAUsZ,UAAUxgC,MAAM,wCAChC,IAAIygC,EAMJ,GAAIzgC,GAA+B,gBAAtBknB,UAAU0Z,QAA2B,CAC9C,IAAIrnD,EASJ,OAPIymB,GAASA,EAAM/c,OAAS,IACxB1J,EAAOymB,EAAM,GACbygC,EAAUzgC,EAAM,IAEpBzmB,IAASA,EAAO,gBAChBknD,IAAYA,EAAU,WAEf,CACHlnD,KAAM6mD,EACNK,YAUZ,SAASI,EAAQC,GACb,IAAIC,EACJ,MAAMC,EAAY,CACdL,EACAJ,EACAG,GAIJ,IAAK,IAAI1nD,EAAI,EAAGA,EAAIgoD,EAAU/9C,OAAQjK,IAElC,GADA+nD,EAAcC,EAAUhoD,KACpB+nD,EACA,OAAOA,EAIf,MAAMxnD,EAAOunD,EAAOG,iBAEpB,OAAI1nD,KAAQ+mD,EACD,CACH/mD,KAAM+mD,EAAsB/mD,GAC5BknD,QAASK,EAAOI,sBAKxBH,EA3HJ,WACI,MAAMP,EAAYtZ,UAAUsZ,UACtBO,EAAc,CAChBxnD,KAAM8mD,EACNI,aAASxzC,GAGb,GAAIuzC,EAAUxgC,MAAM,YAAcwgC,EAAUxgC,MAAM,QAE9C,GAAIwgC,EAAUxgC,MAAM,WAAY,CAE5B,MAAMygC,EAAUD,EAAUxgC,MAAM,oBAAoB,GAEhDiG,OAAOjB,SAASy7B,EAAS,IAAM,KAC/BM,EAAYxnD,KAAOsmD,EACnBkB,EAAYN,QAAUA,QAG1BM,EAAYxnD,KAAOsmD,EACnBkB,EAAYN,QAAUD,EAAUxgC,MAAM,oBAAoB,GAIlE,OAAO+gC,EAoGOI,GACVJ,GAIG,CACHxnD,KAAM8mD,EACNI,aAASxzC,IAOF,MAAMm0C,EAQjBz+C,YAAYo+C,GACR,IAAIxnD,EAAMknD,EAGV,GADA/zC,KAAK20C,QAAUC,IAAOC,UAAUra,UAAUsZ,gBACf,IAAhBO,EAA6B,CACpC,MAAMS,EAAsBX,EAAQn0C,KAAK20C,SAEzC9nD,EAAOioD,EAAoBjoD,KAC3BknD,EAAUe,EAAoBf,aACvBM,EAAYxnD,QAAQ+mD,GAC3B/mD,EAAO+mD,EAAsBS,EAAYxnD,MACzCknD,EAAUM,EAAYN,UAEtBlnD,EAAO8mD,EACPI,OAAUxzC,GAGdP,KAAK+0C,MAAQloD,EACbmT,KAAKg1C,SAAWjB,EAOpBkB,UACI,OAAOj1C,KAAK+0C,MAOhBzd,WACI,OAAOt3B,KAAK+0C,QAAU5B,EAO1B+B,UACI,OAAOl1C,KAAK+0C,QAAU3B,EAO1BhjB,YACI,OAAOpwB,KAAK+0C,QAAU1B,EAO1B8B,cACI,OAAOn1C,KAAK+0C,QAAUzB,EAO1B/d,WACI,OAAOv1B,KAAK+0C,QAAUxB,EAO1B6B,SACI,OAAOp1C,KAAK+0C,QAAUvB,EAO1B1b,aACI,OAAO93B,KAAK+0C,QAAUtB,EAO1B1zB,gBACI,OAAO/f,KAAK+0C,QAAUrB,EAO1B2B,aACI,OAAOr1C,KAAKg1C,SAgBhBM,gBAAgBC,GACZ,GAAIv1C,KAAKg1C,SACL,OAAOh1C,KAAK20C,QAAQa,UAAUD,GAatCE,qBAAqB1B,GACjB,OAAO/zC,KAAKs1C,gBAAgB,CAAE,CAACt1C,KAAK+0C,OAAS,IAAGhB,IAYpD2B,kBAAkB3B,GACd,OAAO/zC,KAAKs1C,gBAAgB,CAAE,CAACt1C,KAAK+0C,OAAS,IAAGhB,IAapD4B,iBAAiB5B,GACb,OAAO/zC,KAAKs1C,gBAAgB,CAAE,CAACt1C,KAAK+0C,OAAS,IAAGhB,K,qBC7UxD,MAAM6B,UAA0Bn2B,IAAa,kB,UAAA,Y,EAK9B,I,EAL8B,c,EAAA,M,sFAYzCo2B,QACI71C,KAAK81C,SAAW,GAQpB,aACI,OAAO9oD,OAAOuY,KAAKvF,KAAK81C,UAAUv/C,OAStC4hB,QAAQ49B,GACJ,OAAO/1C,KAAK81C,SAASC,GAWzBjpC,QAAQipC,EAASC,GACbh2C,KAAK81C,SAASC,GAAWC,EAS7BjpC,WAAWgpC,UACA/1C,KAAK81C,SAASC,GASzBloD,IAAIE,GACA,MAAMwX,EAAOvY,OAAOuY,KAAKvF,KAAK81C,UAE9B,KAAIvwC,EAAKhP,QAAUxI,GAInB,OAAOwX,EAAKxX,GAQhBqX,YACI,OAAOwH,KAAKwL,UAAUpY,KAAK81C,WAOnC,MAAMG,UAA0Bx2B,IAK5BxpB,cACIokC,QAEA,IACIr6B,KAAK81C,SAAW5pD,OAAOgqD,aACvBl2C,KAAKm2C,uBAAwB,EAC/B,MAAOC,IAIJp2C,KAAK81C,WACN/wC,QAAQI,KAAK,8BACbnF,KAAK81C,SAAW,IAAIF,EACpB51C,KAAKm2C,uBAAwB,GASrCE,yBACI,OAAOr2C,KAAKm2C,sBAQhBN,QACI71C,KAAK81C,SAASD,QACd71C,KAAKkjB,KAAK,WAQd,aACI,OAAOljB,KAAK81C,SAASv/C,OAUzB4hB,QAAQ49B,GACJ,OAAO/1C,KAAK81C,SAAS39B,QAAQ49B,GAUjCjpC,QAAQipC,EAASC,EAAUM,GAAuB,GAC9Ct2C,KAAK81C,SAAShpC,QAAQipC,EAASC,GAE1BM,GACDt2C,KAAKkjB,KAAK,WAQlBnW,WAAWgpC,GACP/1C,KAAK81C,SAAS/oC,WAAWgpC,GACzB/1C,KAAKkjB,KAAK,WAUdr1B,IAAIvB,GACA,OAAO0T,KAAK81C,SAASjoD,IAAIvB,GAQ7B8Y,YACI,GAAIpF,KAAKq2C,uBACL,OAAOr2C,KAAK81C,SAAS1wC,YAGzB,MAAM7O,EAASyJ,KAAK81C,SAASv/C,OACvBggD,EAAsB,GAE5B,IAAK,IAAIjqD,EAAI,EAAGA,EAAIiK,EAAQjK,IAAK,CAC7B,MAAMuB,EAAMmS,KAAK81C,SAASjoD,IAAIvB,GAE9BiqD,EAAoB1oD,GAAOmS,KAAK81C,SAAS39B,QAAQtqB,GAGrD,OAAO+e,KAAKwL,UAAUm+B,IAIvB,MAAMC,EAAoB,IAAIP,G,6BClNrC,oXAMO,MAAMQ,EAAwB,wBAQxBvjD,EAA2B,4BAO3BoB,EAAiB,0BAOjBoiD,EAAmB,6BAWnBC,EAAuB,uBAYvBC,EAAsB,gCAQtBC,EAAuB,kC,6BC3DpC,0KAUO,MAAMC,EAAc,wBAOdC,EAAkB,6BAKlBC,EAAkB,6BASlBC,EAAmB,6BAKnBC,EAAmB,+B,6BCpChC,2dAIO,MAAMC,EAAmB,YAMnBC,EAAmB,YAOnBC,EAAc,OAMdC,EAAW,KAMXC,EAAY,MAMZC,EAAgB,UAOhBC,EAAiB,WAMjBC,EAAe,SAOfC,EAAsB,sBAOtBC,EAAuB,gC,gBC9DpC,IAAIC,EAASz6B,EAAQ,KACjB06B,EAAS16B,EAAQ,KAErBtxB,EAAQisD,MAAQD,EAChBhsD,EAAQosB,MAAQ2/B,EAAO3/B,MACvBpsB,EAAQksD,gBAAkBH,EAAOG,gBACjClsD,EAAQmsD,YAAcJ,EAAOI,YAC7BnsD,EAAQosD,cAAgBL,EAAOK,cAC/BpsD,EAAQqsD,sBAAwBN,EAAOM,sBACvCrsD,EAAQssD,qBAAuBP,EAAOO,qBACtCtsD,EAAQusD,yBAA2BR,EAAOQ,0B,6BCV1C,0QAWO,MAAMpuB,EAA0B,oCAS1Bl7B,EAAyB,mCAazBC,EAAoB,8BAMpBspD,EAAc,wBAOdC,EAAwB,oC,8BC9CrC,kSAuBA,MAAMt6B,EAASF,oBAAUM,GA0ClB,MAAMm6B,EAAuB,CAChC,CAAEC,KAAM,gCACR,CAAEA,KAAM,iCACR,CAAEA,KAAM,kCASCC,EAAsB,OAKpB,MAAMC,UAAave,IAc9BnkC,YAAYkR,EAASyxC,GACjBve,QACAr6B,KAAKuU,WAAa,KAClBvU,KAAK64C,sBAAuB,EAC5B74C,KAAK84C,gBAAkB,GACvB94C,KAAKmH,QAAUA,EACfnH,KAAK44C,MAAQA,EACb54C,KAAK+4C,mBAAoB,EA9C7BC,cACAC,cAiDIj5C,KAAKuU,WAvEb,UAA0B,sBAAE2kC,EAAF,WAAyBC,EAAa,aAAtC,MAAoDP,EAApD,mBAA2DQ,IAOjF,OALIR,IAEAO,GAAe,IAA+B,IAA7BA,EAAWv1C,QAAQ,KAAc,IAAM,YAAYg1C,KAGjE,IAAIS,IAAe,CACtBH,wBACAC,aACAC,uBA6DkBE,CAAiB,CAC/BJ,sBAAuB/xC,EAAQ+xC,sBAG/BC,WAAYhyC,EAAQgyC,YAAchyC,EAAQoyC,KAC1CX,QACAQ,mBAAoBjyC,EAAQiyC,qBAGhCp5C,KAAKw5C,sBAELx5C,KAAKy5C,KAAO,IAAIC,IAAK15C,KAAKuU,WAAYvU,KAAKmH,QAAQwyC,YAGnD35C,KAAK45C,mBAOLnH,EAAEvmD,QAAQy1B,GAAG,sBAAuBk4B,IAChC75C,KAAKuP,WAAWsqC,GAAIzc,MAAM,UAUlCwc,mBAGI55C,KAAKy5C,KAAKK,WAAW,qBACrB95C,KAAKy5C,KAAKK,WAAW,8BACrB95C,KAAKy5C,KAAKK,WAAW,wCACrB95C,KAAKy5C,KAAKK,WAAW,+BACrB95C,KAAKy5C,KAAKK,WAAW,0CACrB95C,KAAKy5C,KAAKK,WAAW,kCACrB95C,KAAKy5C,KAAKK,WAAW,kCAGf95C,KAAKmH,QAAQ4yC,YAAcj6B,IAAQsQ,aACrCpwB,KAAKy5C,KAAKK,WAAW,sBAEU,IAA/B95C,KAAKmH,QAAQ6yC,eAA0Bl6B,IAAQm6B,oBAC/Cj6C,KAAKy5C,KAAKK,WAAW,6BASzB95C,KAAKy5C,KAAKK,WAAW,qBACrB95C,KAAKy5C,KAAKK,WAAW,qBAKjBh6B,IAAQub,oBAAoD,IAA/Br7B,KAAKmH,QAAQ+yC,gBAC1Cj8B,EAAO/Y,KAAK,sBACZlF,KAAKy5C,KAAKK,WAAW,kCAGrB95C,KAAKuU,WAAW4lC,MAChBn6C,KAAKy5C,KAAKK,WAAW,0BAGrBM,IAAc5c,YAAYx9B,KAAKmH,UAC/BnH,KAAKy5C,KAAKK,WAAW,+BAO7BO,gBACI,OAAOr6C,KAAKuU,WAchB+lC,kBAAkBC,EAAc,GAAIxqC,EAAQjL,GACxC,MAAMqP,EAAMjoB,OAAOsuD,YAAYrmC,MACzBsmC,EAAYh/C,UAAQi/C,gBAAgB3qC,GAAQpN,cAQlD,GANA3C,KAAK84C,gBAAgB2B,GAAatmC,EAClC8J,EAAOrZ,IACF,kBAAiB61C,IAAY31C,EAAO,IAAGA,KAAS,QACjDqP,GAEJnU,KAAKwf,aAAa0D,KAAKy3B,IAAWvrD,0BAA2BmrD,EAAaxqC,EAAQjL,GAC9EiL,IAAWtU,UAAQgC,OAAOM,WAAagS,IAAWtU,UAAQgC,OAAOS,SAAU,CAC3E8B,KAAKuU,WAAW+9B,OAAOsI,4BAEvB38B,EAAO/Y,KAAM,iBAAgBlF,KAAKuU,WAAW5Q,KAG7C3D,KAAK66C,cAGL,MAAMC,EAAU96C,KAAKuU,WAAWzZ,OAGhCkF,KAAKy5C,KAAKsB,yBAAyBD,GAC9BpgB,KAAK,EAAG5xB,WAAUkyC,iBACVlyC,EAASib,IAAItoB,UAAQK,GAAGm/C,OACzBh9B,EAAOjZ,MACF,yBAAwB81C,qDAIjCE,EAAW5rC,QAAQ8rC,IACO,iBAAlBA,EAASj0C,OACTjH,KAAKm7C,6BAA+BD,EAASruD,MAG3B,wBAAlBquD,EAASj0C,OACTjH,KAAKo7C,mCAAqCF,EAASruD,MAGjC,eAAlBquD,EAASj0C,OACTjH,KAAKq7C,gBAAiB,EACtBH,EAASruD,MAAQmT,KAAKy5C,KAAKsB,yBAAyBG,EAASruD,KAAMquD,EAASj0C,MACvEyzB,KAAK,EAAG5xB,SAAUwyC,MACfA,EAAElsC,QAAQmsC,IACFA,EAAGC,SAAS,0BACZx7C,KAAKwf,aAAa0D,KACdu4B,6BAIfre,MAAM/jC,GAAK4kB,EAAO9Y,KAAK,qCAAsC9L,GAAKA,EAAEoL,cAI7EzE,KAAKm7C,8BACFn7C,KAAKo7C,qCACRp7C,KAAKuU,WAAWxG,WACZ/N,KAAK07C,kBAAkB5tD,KAAKkS,MAAO,KACnC,UAAW,KAAM,QAG5Bo9B,MAAMp4B,IACH,MAAM2yB,EAAS,0BAEfC,IAAqBC,iBACjB,IAAIxgC,MAAO,GAAEsgC,MAAW3yB,MAC5BiZ,EAAOjZ,MAAM2yB,EAAQ3yB,KAGzBu1C,EAAYoB,WACZ37C,KAAK+4C,mBAAoB,GAEzB/4C,KAAKuU,YAAcvU,KAAKuU,WAAW3K,WAChCnO,UAAQyI,mBAAmBlE,KAAKuU,WAAW5Q,MAG9C3D,KAAKwf,aAAa0D,KACdu4B,yBACAhgD,UAAQyI,mBAAmBlE,KAAKuU,WAAW5Q,WAEhD,GAAIoM,IAAWtU,UAAQgC,OAAOG,SACrB,+BAARkH,EACA9E,KAAK47C,2BAA4B,EAEjC57C,KAAK67C,kBAAmB,EAE5B77C,KAAK87C,aAAeh3C,EACR,cAARA,GACA9E,KAAKwf,aAAa0D,KACdu4B,oBACAM,cAAmCj3C,QAExC,GAAIiL,IAAWtU,UAAQgC,OAAOC,MACjCsC,KAAK87C,aAAeh3C,OACjB,GAAIiL,IAAWtU,UAAQgC,OAAOO,aAAc,CAE/CgC,KAAKuU,WAAWynC,KAAKC,eACrB,MAAMC,EAA2BvjB,QAAQ34B,KAAK64C,sBACxCsD,EAASr3C,GAAO9E,KAAK87C,aAE3B,GAAI97C,KAAK47C,0BAEL57C,KAAKwf,aAAa0D,KACdu4B,oBACAM,0BACD,GAAI/7C,KAAK67C,iBACZ77C,KAAKwf,aAAa0D,KACdu4B,oBACAM,cACAI,OACA57C,EACAP,KAAKo8C,0CACN,GAAIF,EACPl8C,KAAKwf,aAAa0D,KACdu4B,0BAA+CU,OAChD,CAMHl+B,EAAOjZ,MAAM,4BAIb,MAAMq3C,EAAkB5gD,UAAQ6gD,qBAE5BD,GAAmB,KAAOA,EAAkB,IAC5Cr8C,KAAKwf,aAAa0D,KACdu4B,oBACAM,eACAI,GAAU,oBACQ57C,EAClBP,KAAKo8C,qCAETp8C,KAAKwf,aAAa0D,KACdu4B,oBACAM,2BACAI,GAAU,gCACQ57C,EAClBP,KAAKo8C,2CAGVrsC,IAAWtU,UAAQgC,OAAOK,UAEjCkC,KAAKwf,aAAa0D,KACdu4B,oBACAM,oBACAj3C,EACAy1C,GASZpuC,SAASxI,EAAKg4C,GA4BV37C,KAAK66C,cACL76C,KAAKuU,WAAW9I,QACZ9H,EACAg4C,EACA37C,KAAKs6C,kBAAkBxsD,KAAKkS,KAAM,CAC9B2D,MACAg4C,cAWZvvC,OAAOjF,GACHnH,KAAK66C,cACL,MAAM1mC,EAAMnU,KAAK84C,gBAAgByD,UAAYrwD,OAAOsuD,YAAYrmC,MAEhE8J,EAAOrZ,IAAI,8BAA+BuP,GAC1CnU,KAAKuU,WAAWnI,OAAOjF,EAAQxD,IAAKwD,EAAQkF,IACxCiM,SAASnR,EAAQmF,IAAK,IAAM,EAC5BtM,KAAKs6C,kBAAkBxsD,KAAKkS,KAAM,CAC9B2D,IAAKwD,EAAQxD,IACbg4C,SAAUx0C,EAAQw0C,YAQ9Bd,cACI76C,KAAK47C,2BAA4B,EACjC57C,KAAK67C,kBAAmB,EACxB77C,KAAK87C,kBAAev7C,EACpBP,KAAK64C,0BAAuBt4C,EAQhCkL,QAAQ9H,EAAKg4C,GACT,IAAKh4C,EAAK,CACN,MAAM,gBAAE64C,EAAF,OAAmB1hD,GAAWkF,KAAKmH,QAAQs1C,MACjD,IAAIC,EAAeF,GAAmB1hD,EAStC,MAAM,SAAEigB,GAAa7uB,OAErB,GAAIswD,EAAiB,CACjB,MAAM3/B,EAAS9B,GAAYA,EAAS8B,QAE/BA,IAA4C,IAAlCA,EAAOjZ,QAAQ,eACnB5D,KAAK44C,SACZ8D,EAAe5hD,GAKvB6I,EAAM+4C,GAAiB3hC,GAAYA,EAAS4hC,SAGhD,OAAO38C,KAAKmM,SAASxI,EAAKg4C,GAa9BiB,WAAWC,EAAU11C,EAAS21C,GAE1B,IAAIC,EAAW,GAAEF,KAAY11C,EAAQ61C,aAC/B71C,EAAQ61C,aAAeh9C,KAAKmH,QAAQs1C,MAAMQ,IAAIt6C,iBAEpD,MAAMu6C,EAAcJ,EACdA,EAAiB98C,KAAKuU,WAAW5Q,IAAK3D,KAAK+4C,mBAC3CznB,IAAW6rB,gBAAgB,GAAGx6C,cAKpC,OAHAsb,EAAO/Y,KAAM,OAAMlF,KAAKuU,WAAW5Q,0BAA0Bu5C,KAC7DH,GAAWG,EAEJl9C,KAAKuU,WAAW6oC,KAAKR,WAAWG,EAAS,KAAM51C,GAQ1Dk2C,SACI,OAAOr9C,KAAKuU,WAAW5Q,IAO3B25C,eACI,MAAMhL,EAAStyC,KAAKuU,WAAW+9B,OAG/B,OAAOA,EAASA,EAAOiL,SAAW,GAMtCC,aACI,OAAQx9C,KAAKuU,WAAW0J,QAAU,IAAIrZ,KAAO,KAMjD64C,QAAQtb,GACJniC,KAAKuU,WAAW4lC,KAAKsD,QAAQtb,GASjC6Z,KAAKpuC,GACD,OAAO,IAAIovB,QAAQ,CAACC,EAASC,KACzBl9B,KAAKuU,WAAWynC,KACPA,KAAKh8C,KAAKuU,WAAWzZ,OAAQmiC,EAASC,EAAQtvB,KAO/D8vC,cACI,OAAO19C,KAAKuU,WAAW+9B,OAAOqL,SAUlCpuC,WAAWsqC,GACP,OAAI75C,KAAK64C,qBACE74C,KAAK64C,qBACJ74C,KAAKuU,YAIjBvU,KAAK64C,qBAAuB,IAAI7b,QAAQC,IACpC,MAAM2gB,EAAqB,CAACrD,EAAaxqC,KACjCA,IAAWtU,UAAQgC,OAAOO,eAC1Bi/B,IACAj9B,KAAKwf,aAAasC,eAAe64B,IAAWvrD,0BAA2BwuD,KAI/E59C,KAAKwf,aAAamC,GAAGg5B,IAAWvrD,0BAA2BwuD,KAG/D59C,KAAK69C,uBAAuBhE,GAErB75C,KAAK64C,sBAhBD7b,QAAQC,UA4BvB4gB,uBAAuBhE,GAWnB,IAFC75C,KAAKuU,WAAWupC,kBAAoB99C,KAAKuU,WAAW/G,SAEhDxN,KAAKuU,WAAWupC,kBAAjB,MAAqCjE,EAA0C,CAC/E,MAAMkE,EAASlE,EAAG5yC,KAElB,IAAe,iBAAX82C,GAAwC,WAAXA,KAI7B/9C,KAAKuU,WAAWpN,QAAQ6S,MAAO,EAG3Bha,KAAKuU,WAAWypC,yBAEhB,OAKZh+C,KAAKuU,WAAWhF,cAEqB,IAAjCvP,KAAKuU,WAAWpN,QAAQ6S,MACxBha,KAAKuU,WAAW/G,QAOxBgsC,sBACI,MAAM3T,EAAY,CACdoY,IAAK,CAAEC,WAAY,IACnBC,IAAK,CAAED,WAAY,KAGjBE,EAAkBp+C,KAAKmH,QAAQg3C,KAC9Bn+C,KAAKmH,QAAQg3C,IAAIE,aAAgB7F,EAEpCpiD,MAAMC,QAAQ+nD,KACdngC,EAAO/Y,KAAK,qBAAsBk5C,GAClCvY,EAAUsY,IAAID,WAAaE,GAG3Bp+C,KAAKmH,QAAQg3C,KAAOn+C,KAAKmH,QAAQg3C,IAAIG,qBACrCrgC,EAAO/Y,KAAK,6BACRlF,KAAKmH,QAAQg3C,IAAIG,oBAErBzY,EAAUsY,IAAIG,mBACRt+C,KAAKmH,QAAQg3C,IAAIG,oBAG3Bt+C,KAAKuU,WAAWxO,oBAAoB,OAAQ,IAAIw4C,IAAoBv+C,OACpEA,KAAKuU,WAAWxO,oBAAoB,SAAU,IAAIy4C,IAAuBx+C,KAAMA,KAAKwf,aAAcqmB,IAClG7lC,KAAKuU,WAAWxO,oBAAoB,OAAQ,IAAI04C,KASpDrC,oCACI,MAAMvxB,EAAU,GAGhB,GAAI7qB,KAAKmH,QAAQu3C,gBACV1+C,KAAKmH,QAAQu3C,eAAeC,OAC5B3+C,KAAKuU,WAAWmD,oBAAqB,CAGxC,MAAMknC,EAAa5+C,KAAKuU,WAAWmD,oBAC9BmnC,OAAO97C,MAAM,WACZuX,EAAU,GAEhBskC,EAAWxvC,QAAQ5K,IACf,MAAMR,EAAQQ,EAAKzB,MAAM,MACnBwX,EAASvW,EAAM0pB,QACfngC,EAAQyW,EAAMb,KAAK,MAEzBmX,EAAQC,GAAUhtB,IAItBs9B,EAAQi0B,cACF9+C,KAAKmH,QAAQu3C,eAAeC,QACtBrkC,EAAQ,iBAUxB,OAJAuQ,EAAQk0B,aAAe/+C,KAAKuU,WAAWynC,KAAKgD,qBAC5Cn0B,EAAQo0B,wBAA0Bj/C,KAAKuU,WAAW2qC,0BAG3Cr0B,EAQX5F,yBAAyBC,GAErB,IAAKllB,KAAKm7C,+BAAiCj2B,EACvC,OAGJ,MAAMpgB,EAAMmY,eAAK,CAAE8rB,GAAI/oC,KAAKm7C,+BAE5Br2C,EAAInY,EAAE,eAAgB,CAClBsZ,MAAO,2BACPk5C,KAAMj6B,IACL/e,KAELnG,KAAKuU,WAAWlH,KAAKvI,GAYzBs6C,sBAAsBC,GAClB,IACI,MAAMC,EAAO1yC,KAAKsL,MAAMmnC,GASxB,GAAIC,GAAwB,iBAATA,EAAmB,CAClC,MAAMr4C,EAAOq4C,EAAK5G,GAElB,QAAoB,IAATzxC,EACP,OAAOq4C,EAGXrhC,EAAOhZ,MAAM,yDACM,UAAWgC,IAEpC,MAAO5N,GAGL,OAFA4kB,EAAOjZ,MAAM3L,IAEN,EAGX,OAAO,EAUXqiD,kBAAkB52C,GACd,MAAMnO,EAAOmO,EAAIlC,aAAa,QAE9B,GAAMjM,IAASqJ,KAAKm7C,8BACbxkD,IAASqJ,KAAKo7C,mCACjB,OAAO,EAGX,MAAMmE,EAAc9M,EAAE3tC,GAAKmsB,KAAK,iBAC3BtvB,OACC69C,EAAax/C,KAAKo/C,sBAAsBG,GAgB9C,OAdIC,GACuC,iBAApCA,EAAW9G,IACX8G,EAAWC,OACdz/C,KAAKwf,aAAa0D,KACdy3B,IAAWpoD,uBAAwBitD,EAAWC,OAGlDD,GACuC,wBAApCA,EAAW9G,IACX8G,EAAWE,mBACd1/C,KAAKwf,aAAa0D,KACdy3B,IAAWnoD,8BAA+BgtD,EAAWE,oBAGtD,M,gECtwBR,SAAS/c,EAAqB8O,GACjC,IAAIkO,EAAYlO,EAMhB,OAJIA,GAAUl4B,OAAOqmC,mBACjBD,EAAY,GAGTA,EAAY,EAShB,SAASE,EAAiBC,GAC7B,OAAOA,EAAWvpD,OAAS,EAAIupD,EAAWp6C,OAAO,CAAChO,EAAGC,IAAMD,EAAIC,GAAKmoD,EAAWvpD,OAAS,EA6BrF,SAASwpD,EAAqBD,GACjC,OAAOA,EAAWpvB,OAAOnjC,GAASA,GAAS,GAvD/C,wIA8DO,MAAMyyD,EAIT/pD,cACI+J,KAAKigD,QAAU,EACfjgD,KAAKjS,EAAI,EASbmyD,QAAQ3yD,GACiB,iBAAVA,IAGXyS,KAAKjS,GAAK,EACViS,KAAKigD,QAAUjgD,KAAKigD,SAAY1yD,EAAQyS,KAAKigD,SAAWjgD,KAAKjS,GAOjEoyD,aACI,OAAOngD,KAAKigD,W,8BC3FpB,iDAGA,MAAMhiC,EAASF,oBAAUM,GAIzB,IAAI+hC,EAEAC,EA+GJ,SAASC,IACL,OAAUl1C,KAAKC,SAAS3U,SAAS,IAAzB,aAAwC0e,OAAO,EAAG,GA3G/C,KAKX0gC,SAAUU,IAQV5rC,KAAK21C,GACDvgD,KAAK81C,SAAWyK,GAAmB/J,KAOvC,wBASI,OARK4J,IACDA,EAAqBpgD,KAAK81C,SAAS39B,QAAQ,qBACtCioC,IACDA,EAmDhB,WACI,MAAMI,EAAWC,IAAkBC,mBAInC,OAFAziC,EAAOrZ,IAAI,0BAA2B47C,GAE/BA,EAxD0BG,GACrB3gD,KAAK81C,SAAShpC,QAAQ,oBAAqBszC,KAI5CA,GAOX,gBASI,OARKC,IACDA,EAAargD,KAAK81C,SAAS39B,QAAQ,eAC9BkoC,IACDA,EA+ChB,WACI,MAAMO,EAWCN,IAAQA,IAAQA,IAAQA,IAP/B,OAFAriC,EAAOrZ,IAAI,eAAgBg8C,GAEpBA,EApDkBC,GACb7gD,KAAK81C,SAAShpC,QAAQ,cAAeuzC,KAItCA,GAOX,gBAGI,OAAOrgD,KAAK81C,SAAS39B,QAAQ,cAOjC,cAAco6B,GACNA,EACAvyC,KAAK81C,SAAShpC,QAAQ,YAAaylC,GAEnCvyC,KAAK81C,SAAS/oC,WAAW,iB,wECjFrC,kHAOO,SAAS+zC,EAAiB5vB,GAC7B,OAAO5Y,SAAS4Y,EAAMV,MAAMztB,MAAM,KAAK,GAAI,IAQxC,SAASg+C,EAAmB7vB,GAC/B,OAAO5Y,SAAS4Y,EAAMV,MAAMztB,MAAM,KAAK,GAAI,IAQ/C,SAASi+C,EAAcvvB,GACnB,OAAKA,EAAMjB,MAIJiB,EAAMjB,MACRhrB,IAAIirB,GAAYA,EAASvpB,IACzBwpB,OAAO,CAAC1L,EAAM2L,EAAOC,IAAUA,EAAMhtB,QAAQohB,KAAU2L,GACvDp6B,OANM,EAaf,MAAM0qD,EAOFhrD,YAAYw7B,GACR,IAAKA,EACD,MAAM,IAAIp6B,MAAM,sBAGpB2I,KAAKyxB,MAAQA,EAUjB,YAKI,OAJKzxB,KAAKyxB,MAAMjB,QACZxwB,KAAKyxB,MAAMjB,MAAQ,IAGhBxwB,KAAKyxB,MAAMjB,MAStB,UAAUA,GACNxwB,KAAKyxB,MAAMjB,MAAQA,EAOvB,gBACI,OAAOxwB,KAAKyxB,MAAM9B,UAOtB,cAAcA,GACV3vB,KAAKyxB,MAAM9B,UAAYA,EAO3B,iBAKI,OAJK3vB,KAAKyxB,MAAMX,aACZ9wB,KAAKyxB,MAAMX,WAAa,IAGrB9wB,KAAKyxB,MAAMX,WAQtB,eAAeA,GACX9wB,KAAKyxB,MAAMX,WAAaA,EAW5BowB,iBAAiBC,EAAYC,GACzB,MAAM9jD,EAAY0C,KAAKwwB,MAAMS,KACzBowB,GAAWA,EAAQn6C,KAAOi6C,GACvBE,EAAQ/jD,YAAc8jD,GAG7B,OAAO9jD,GAAaA,EAAU/P,MAQlC+zD,WAAWC,GACFvhD,KAAKyxB,MAAMjB,OAAUxwB,KAAKyxB,MAAMjB,MAAMj6B,SAI3CyJ,KAAKyxB,MAAMjB,MACLxwB,KAAKyxB,MAAMjB,MAAME,OAAO2wB,GAAWA,EAAQn6C,KAAOq6C,IAQ5DC,iBAAiBH,GACbrhD,KAAKwwB,MAAMttB,KAAKm+C,GAWpBI,UAAUtwB,EAAWX,GACjB,OAAOxwB,KAAK8wB,WAAWG,KACnBC,GACIA,EAAMC,YAAcA,KACXX,GAASA,IAAUU,EAAMV,QAS9CkxB,WAAWvwB,GACP,OAAOnxB,KAAK8wB,WAAWJ,OACnBQ,GAASA,EAAMC,YAAcA,GASrCwwB,uBAAuBxwB,EAAWywB,GAC9B,OAAO5hD,KAAK8wB,WAAWG,KACnBC,GAASA,EAAMC,YAAcA,GACtB2vB,EAAiB5vB,KAAW0wB,GAS3CC,eAAeC,GACX,OAAO9hD,KAAKwwB,MAAMS,KACdowB,GAAiC,SAAtBA,EAAQ/jD,YACF,OAATwkD,GAAiBT,EAAQ9zD,QAAUu0D,IAOnDC,eACI,OAAOf,EAAchhD,KAAKyxB,OAQ9BuwB,wBACI,YAAiCzhD,IAA1BP,KAAKyxB,MAAMX,WAQtBmxB,sBACI,MAAMt2B,EAAY3rB,KAAKyxB,MAAMxqB,KAE7B,GAAkB,UAAd0kB,EACA,MAAM,IAAIt0B,MACL,qCAAoCs0B,MAK7C,GAAiB,IAFAq1B,EAAchhD,KAAKyxB,OAIhC,OAAOzxB,KAAKyxB,MAAMjB,MAAM,GAAGtpB,GAI/B,GAAIlH,KAAKyxB,MAAMX,WAAY,CACvB,MAAMM,EAAWpxB,KAAKyhD,UAAU,OAEhC,GAAIrwB,EACA,OAAO0vB,EAAiB1vB,GAE5B,MAAMJ,EAAWhxB,KAAKyhD,UAAU,OAEhC,GAAIzwB,EACA,OAAO8vB,EAAiB9vB,GAE5B,MAAMkxB,EAAWliD,KAAKyhD,UAAU,UAEhC,GAAIS,EACA,OAAOpB,EAAiBoB,IAcpCC,WAAWpxB,GACP,MAAMC,EAAWhxB,KAAK2hD,uBAAuB,MAAO5wB,GAGpD,OAAOC,GAAY+vB,EAAmB/vB,GAO1CoxB,WACI,OAAOpiD,KAAKwwB,MACPhrB,IAAIirB,GAAYA,EAASvpB,IACzBwpB,OAAO,CAAC1L,EAAM2L,EAAOC,IAAUA,EAAMhtB,QAAQohB,KAAU2L,GAQhE0xB,uBACI,MAAM12B,EAAY3rB,KAAKyxB,MAAMxqB,KAE7B,GAAkB,UAAd0kB,EACA,MAAM,IAAIt0B,MACL,0CAAyCs0B,GAGlD,MAAM22B,EAAatiD,KAAKoiD,WAExB,IAAK,MAAMG,KAAiBviD,KAAK8wB,WAI7B,GAAgC,QAA5ByxB,EAAcpxB,WACqB,WAA5BoxB,EAAcpxB,UAAwB,CAE7C,MAAMqxB,EAAgBzB,EAAmBwB,GAEzCD,EAAWr+C,OACPq+C,EAAW1+C,QAAQ4+C,GAAgB,GAI/C,OAAOF,EAMXG,iBACI,OAAO71C,KAAKwL,UAAUpY,KAAKyxB,MAAMX,YAQrC4xB,qBAAqB19B,GACZhlB,KAAKyxB,MAAMX,aAIhB9wB,KAAKyxB,MAAMX,WAAa9wB,KAAKyxB,MAAMX,WAC9BJ,OAAOiyB,IAAqD,IAAxCA,EAAUnyB,MAAM5sB,QAAS,GAAEohB,KAOxD49B,wBAAwBzxB,GACfnxB,KAAKyxB,MAAMX,aAIhB9wB,KAAKyxB,MAAMX,WACL9wB,KAAKyxB,MAAMX,WACRJ,OAAOiyB,GAAaA,EAAUxxB,YAAcA,IAQzD0xB,YAAYC,EAASC,GACb/iD,KAAKyxB,MAAMjB,OACXxwB,KAAKyxB,MAAMjB,MAAMphB,QAAQqhB,IACjBA,EAASvpB,KAAO47C,IAChBryB,EAASvpB,GAAK67C,KAW9BC,aAAa9xB,GACTlxB,KAAK8wB,WAAW5tB,KAAKguB,IAoBtB,MAAM+xB,EAOThtD,YAAYitD,GACRljD,KAAKmjD,UAAYC,QAAgBF,GAYrCG,YAAY13B,GACR,MAAM23B,EACAtjD,KAAKmjD,UAAU11B,MAAMwD,KAAKQ,GAASA,EAAMxqB,OAAS0kB,GAExD,OAAO23B,EAAgB,IAAIrC,EAAUqC,GAAiB,KAQ1DC,WACI,OAAOH,QAAgBpjD,KAAKmjD,c,6BC/apC,gHAGO,MAAMK,EAAsB,yBAMtBC,EAAuB,2B,6BCTpC,sGAMO,MAAMC,EAAU,UAQVC,EAAS,SAOTC,EAAQ,S,6BCrBrB,kCAIO,MAAMC,EAAU,CACnBC,OAAQ,iBACRxZ,iBAAkB,+BAClByZ,SAAU,mBACVC,UAAW,oBACXnxD,eAAgB,iBAChBoxD,YAAa,gB,cCyDjBl4D,EAAOD,QAnEa,CAChB,KAAQ,CACJyqC,MAAO,KACPrC,OAAQ,KACRgwB,MAAO,GAEX,OAAU,CACN3tB,MAAO,KACPrC,OAAQ,KACRgwB,MAAO,GAEX,IAAO,CACH3tB,MAAO,KACPrC,OAAQ,IACRgwB,MAAO,GAEX,GAAM,CACF3tB,MAAO,KACPrC,OAAQ,IACRgwB,MAAO,GAEX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,GAEX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,GAEX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,GAIX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,GAEX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,GAEX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,GAIX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,GAEX,IAAO,CACH3tB,MAAO,IACPrC,OAAQ,IACRgwB,MAAO,K,8BC/Df,0EAKA,MAAMjmC,EAASb,EAAQ,GAAqBW,UAAUM,GAQhD8lC,EACW,cADXA,EAEY,eAFZA,EAGmB,sBAHnBA,EAIoB,uBAJpBA,EAKe,kBALfA,EAMY,eANZA,EAOoB,uBAPpBA,EASc,iBASdC,EACU,aADVA,EAEY,eAFZA,EAGS,YAHTA,EAIW,cAJXA,EAKU,aALVA,EAMW,cANXA,EAUgB,mBAVhBA,EAWe,kBAXfA,EAYe,kBAZfA,EAagB,mBAahBC,EACK,QADLA,EAEK,QAFLA,EAGe,gBAOrB,IAAIC,EAcW,MAAM7lC,EAOjB,6BAA6BzZ,EAAOF,GAC5B2Z,EAAU8lC,SAAqB,YAAVv/C,GACrBiZ,EAAOjZ,MAAO,sBAAqBA,UAAcF,KAUzD,qBAAqBE,EAAOF,GAIxB,GAHAmZ,EAAOrZ,IAAK,yBAAwBI,SAAaF,KAGnC,YAAVE,EACA,OAGJyZ,EAAU+lC,oBAAqB,EAG/B,IAAIC,GAAmB,EACnBC,EAAkB,KAEtB,IAAK,MAAMrgC,KAAqB5F,EAAUkmC,QAAQvhC,SACzCiB,EAAkBugC,YACnB3mC,EAAOhZ,MAAM,+BACTof,EAAkBwgC,kBAClBJ,GAAmB,EACdC,IACDA,EAAkBrgC,KAM7BogC,GAILhmC,EAAUqmC,kBAAkBJ,GAShC,yBAAyBK,GAIrB,MAAMC,EAAgBD,EAAW7lC,OAC3B+lC,EAAYF,EAAW/jC,eAG7B,IAAK,MAAMkkC,KAAUzmC,EAAU0mC,aAC3B,GAAID,EAAOj+C,OAASo9C,EAAkB,CAClC,MAAMe,EAAYF,EAAOvrD,KAEzB8kB,EAAU4mC,aACNN,EACAK,EAAUn+C,KACVm+C,EAAUpgD,MACVogD,EAAUE,IAAML,QACjB,GAAIC,EAAOj+C,OAASo9C,EAAkB,CAIzC,MAAMkB,EAAYL,EAAOvrD,KAEzB8kB,EAAU8lC,QAAQiB,gBACdN,EAAOI,IAAML,EACbM,EAAUl+B,MACV29B,EACAO,EAAUA,gBACX,GAAIL,EAAOj+C,OAASo9C,EAA4B,CACnD,MAAM1qD,EAAOurD,EAAOvrD,KAEpB8kB,EAAU8lC,QAAQkB,uBACdP,EAAOI,IAAML,EACbtrD,EAAK+rD,YACLV,EACArrD,EAAKqrB,KACLrrB,EAAK8rB,WACL9rB,EAAK+rB,aAIjBjH,EAAU0mC,aAAa5uD,OAAS,EAapC,oBAAoB6tB,EAAInd,EAAMjC,EAAOsgD,GACjC,IAAIK,EAAS3gD,EAER2gD,IACD1nC,EAAO9Y,KAAK,uBACZwgD,EAAS,IAAItuD,MAAM,kBAEnBonB,EAAU+lC,oBAAsBpgC,EAChC3F,EAAU8lC,QAAQqB,YAAYN,EAAIlhC,EAAGlF,OAAQjY,EAAM0+C,GAEnDlnC,EAAU0mC,aAAajiD,KAAK,CACxB+D,KAAMo9C,EACN1qD,KAAM,CACFqL,MAAO2gD,EACPL,KACAr+C,UAkBhB,oBAAoBmd,EAAIiD,EAAOk+B,GAC3B,MAAMD,EAAKlhC,GAAMA,EAAGpD,eACd9B,EAASkF,GAAMA,EAAGlF,OAEpBT,EAAU+lC,oBAAsBpgC,EAChC3F,EAAU8lC,QAAQiB,gBAAgBF,EAAIj+B,EAAOnI,EAAQqmC,GAErD9mC,EAAU0mC,aAAajiD,KAAK,CACxBgc,SACAomC,KACAr+C,KAAMo9C,EACN1qD,KAAM,CAAE0tB,QACJk+B,eAahB,kCAAkCM,GAC9B,MAAMC,EAAkB,CACpB,yBACA,kBACA,oBAKJ,IAAK,MAAMC,KAAcD,EAAiB,CACtC,MAAME,EAAiBH,EAAWE,GAElCF,EAAWE,GAAc,YAAYE,GACjC,IACI,OAAOD,EAAepkB,MAAMikB,EAAYI,GAC1C,MAAO5sD,GACLu+B,IAAqBC,iBAAiBx+B,KAIlD,MAAM6sD,EAAe,CACjB,yBACA,kBACA,oBAKJ,IAAK,MAAMH,KAAcG,EAAc,CACnC,MAAMF,EAAiBH,EAAWE,GAElCF,EAAWE,GAAc,YAAYE,GACjChoC,EAAOhZ,MAAM8gD,EAAYE,GACzBD,EAAepkB,MAAMikB,EAAYI,IAGzC,MAAME,EAAsBN,EAAWD,YAGvCC,EAAWD,YAAc,SAASN,EAAIlhC,EAAInd,KAASk7B,GAI3Cl7B,IAASk9C,EAQJrkC,IAAQC,iBACThb,SAAWA,QAAQE,MAAM,cAAeqgD,EAAIlhC,EAAInd,GAGpDgX,EAAOhZ,MAAM,cAAeqgD,EAAIlhC,EAAInd,KAASk7B,GAEjD,IACIgkB,EAAoB15D,KAAKo5D,EAAYP,EAAIlhC,EAAInd,KAASk7B,GACxD,MAAOikB,GACDn/C,IAASk9C,EACTp/C,SAAWA,QAAQC,MAAM,cAAeohD,GAExCxuB,IAAqBC,iBAAiBuuB,KAatD,qBAKI,OAJK9B,IACDA,EAAW,IAAIxjC,KAGZwjC,EAeX,mBAAmBn9C,GACf,GAAIsX,EAAU8lC,QACV,MAAM,IAAIltD,MAAM,mDAEpB,IACI,MAAMgvD,EAAmBC,UAWzB,IAAIC,EAUJ,GAnBA9nC,EAAU8lC,QAAU,IAAI8B,EACxB5nC,EAAU+nC,2BAA2B/nC,EAAU8lC,SAC/C9lC,EAAUwN,OAAS,CACflN,UAAW5X,EAAQ4X,UACnBD,SAAU3X,EAAQ2X,UAEtBL,EAAUG,YAAczX,EAAQyX,YAChCH,EAAUI,gBAAkB1X,EAAQ0X,gBAIhC1X,EAAQ6X,kBACRunC,EAAe,CACXE,mBACK,GAAEt/C,EAAQ6X,oBACPc,IAAQm1B,eAIpB9tC,EAAQ+X,OAAQ,CAEhB,MAAM5L,EAAQnM,EAAQ+X,OAAO5L,MAAM,gBAGnCizC,EAAapnC,OAAShY,EAAQgY,QAAW7L,GAASA,EAAM,IAAO,IAInEmL,EAAU8lC,QAAQmC,WACdjoC,EAAUG,YACVH,EAAUI,gBACVJ,EAAUwN,OACVxN,EAAUkoC,mBACVpmD,EACAgmD,GAEJ,MAAMtnC,EAAqB9X,EAAQ8X,mBAcnC,OAZIA,IACAR,EAAU8lC,QAAQqC,uBAAuB3nC,GAEzCA,IAAqByb,KAAKj1B,IAClBA,GACAwY,EAAO/Y,KAAK,2BACN0H,KAAKsL,MAAMzS,GAAQohD,aAGhCzpB,MAAM,UAGJ,EACT,MAAO/jC,GAQL,OAJAu+B,IAAqBC,iBAAiBx+B,GACtColB,EAAU8lC,QAAU,KACpBtmC,EAAOjZ,MAAM3L,IAEN,GAWf,8BACI,OAAOs/B,QAAQla,EAAU8lC,SAS7B,iCAAiCn/B,EAAahB,GAC1C3F,EAAUqoC,aAAa1iC,EAAIggC,EAA8Bh/B,GAS7D,0BAA0B/rB,EAAG+qB,GACzB,IACI3F,EAAU4mC,aACNjhC,EACA+/B,EACA9qD,EACA+qB,GAAMA,EAAGpD,gBACf,MAAOhc,GAIDD,SAAqC,mBAAlBA,QAAQC,OAE3BD,QAAQC,MAAM,4BAA6BA,IAcvD,oBAAoB+hD,EAAclgC,EAASC,GACvC,OAAO,IAAIkW,QAAQ,CAACC,EAASC,KACzB,GAAIze,EAAU8lC,QACV9lC,EAAU8lC,QAAQyC,iBACdD,EACA,CACI96B,OAAQxN,EAAUwN,OAClBpF,UACAC,WAEJ,CAAC/W,EAAQtL,KACU,YAAXsL,EACAktB,EAAQx4B,GAERy4B,EAAOz4B,SAGhB,CACH,MAAM+K,EAAS,sDAEfyO,EAAOjZ,MAAMwK,GACb0tB,EAAO1tB,MAWnB,8BAA8BnW,EAAG+qB,GAC7B3F,EAAU4mC,aAAajhC,EAAI+/B,EAA4B9qD,EAAG,MAS9D,qBAAqBwuC,EAAM5gC,EAAMmd,GAC7B,IAAIiD,EAGAA,EADS,UAATpgB,EACQ4gC,EAAOuc,EAAyBA,EAEhCvc,EAAOuc,EAAwBA,EAG3C3lC,EAAUqoC,aAAa1iC,EAAIiD,GAe/BpxB,YAAYqtB,EAAKnc,GACbnH,KAAKkf,OAAS/X,EAAQ+X,OACtBlf,KAAKsjB,IAAMA,EACXtjB,KAAKghB,eAAiBsC,EAAItC,eAC1BhhB,KAAK8jB,aAAe3c,EAAQ2c,cA1eR,QA2epB9jB,KAAK4kD,WAAY,EAEjBnmC,EAAUkmC,QAAQpkC,IAAIvgB,MAElBye,EAAU+lC,qBACVxkD,KAAK6kD,gBAK0B,IAA3BpmC,EAAUkmC,QAAQ1hC,MAClBxE,EAAUqmC,kBAAkB9kD,OAUxC6kD,gBACI5mC,EAAO/Y,KAAK,eAAgBlF,KAAK8jB,cACjC,IACI,MAAMmjC,EAAmB,CACrBC,mBACIlnD,KAAKsjB,IAAIwiB,MACHrnB,EAAU8lC,QAAQ4C,aAAaC,KAC/B3oC,EAAU8lC,QAAQ4C,aAAaE,QAEvC/Z,EACA7uB,EAAU8lC,QAAQ+C,aAChBtnD,KAAKghB,eACLhhB,KAAK8jB,aACLrF,EAAU8lC,QAAQgD,YAAYC,UAC9BxnD,KAAKkf,OACL+nC,EACAxoC,EAAUgpC,uBAElBznD,KAAK4kD,WAAY,EAEjB,MAAM8C,EAAyB,YAAfpa,EAAIv9B,OAMpB,OAJK23C,GACDzpC,EAAOjZ,MAAM,kCAAmCsoC,EAAI7oC,SAGjDijD,EAET,MAAO1iD,GAGL,OAFA4yB,IAAqBC,iBAAiB7yB,IAE/B,GAoBfsgB,4BACQN,EACAO,EACAoiC,EACAliC,EACAC,GACJ,IAAKjH,EAAU8lC,QACX,OAGJ,MAAMmB,EAAcngC,EAAU9G,EAAUwN,OAAS07B,EAE7ClpC,EAAU+lC,mBACV/lC,EAAU8lC,QAAQkB,uBACdzlD,KAAKghB,eACL0kC,EACA1lD,KAAKkf,OACL8F,EACAS,EACAC,GAEJjH,EAAU0mC,aAAajiD,KAAK,CACxB+D,KAAMo9C,EACNiB,GAAItlD,KAAKghB,eACTrnB,KAAM,CACF+rD,cACAhgC,cACAV,OACAS,gBAYhBR,2BACIxG,EAAUqoC,aAAa9mD,KAAMokD,GAOjC9/B,qBACQ7F,EAAU+lC,oBACV/lC,EAAU8lC,QAAQiB,gBACdxlD,KAAKghB,eACLvC,EAAU8lC,QAAQH,YAAYwD,iBAC9B5nD,KAAKkf,QAEbT,EAAUkmC,QAAQjhC,OAAO1jB,MAM7B4kB,+BACInG,EAAU4mC,aACNrlD,KACAmkD,EACA,KACAnkD,KAAKghB,gBAQbiF,sBAAsB5sB,GAClBolB,EAAU4mC,aACNrlD,KAAMmkD,EAA2B9qD,EAAG2G,KAAKghB,gBAQjDkF,uBAAuB7sB,GACnBolB,EAAU4mC,aACNrlD,KAAMmkD,EAA4B9qD,EAAG2G,KAAKghB,gBAQlD2D,sBAAsBF,GAClBhG,EAAUqoC,aACN9mD,KACAykB,EAAW2/B,EAA2BA,GAU9Cr/B,uBAAuBhI,EAAOiI,GAC1B,IAAIugC,EAEAvgC,IACAugC,EAAY,CAAEvgC,SAGlBvG,EAAUqoC,aACN9mD,KACA+c,EAAQqnC,EAA+BA,EACvCmB,GAQRp/B,uBAAuB9sB,GACnBolB,EAAU4mC,aACNrlD,KAAMmkD,EAAmC9qD,EAAG2G,KAAKghB,gBAQzDoF,wBAAwB/sB,GACpBolB,EAAU4mC,aACNrlD,KAAMmkD,EAAoC9qD,EAAG2G,KAAKghB,gBAQ1DqF,0BAA0BhtB,GACtBolB,EAAU4mC,aACNrlD,KAAMmkD,EAA+B9qD,EAAG2G,KAAKghB,iBAQzDvC,EAAU8lC,QAAU,KAKpB9lC,EAAU0mC,aAAe,GAOzB1mC,EAAU+lC,oBAAqB,EAM/B/lC,EAAUG,YAAc,KAMxBH,EAAUI,gBAAkB,KAS5BJ,EAAUwN,OAAS,O,4DC3wBnBlgC,EAAOD,QAlBe,CAIlBunC,KAAM,OAKNw0B,IAAK,MAKLC,IAAK,Q,cCDT,SAASv2B,EAAU9W,EAAK2Z,GACpB,OAAOhpB,KAAKmM,MAAMnM,KAAKC,UAAY+oB,EAAM3Z,EAAM,IAAMA,EAQzD,SAASstC,EAAc5xD,GACnB,OAAOA,EAAIo7B,EAAU,EAAGp7B,EAAII,OAAS,IAqBzC,MAAM+6B,EAAa,CAKf02B,eAAc,IACHD,EA7CI,oBAoDf5K,gBAAgBhlD,GACZ,IAAIm1C,EAAM,GAEV,KAAOn1C,KACHm1C,GAAOttC,KAAKgoD,iBAGhB,OAAO1a,GAEXya,gBACAE,kBApCJ,SAA2B1xD,GACvB,IAAIkP,EAAS,GAEb,IAAK,IAAInZ,EAAI,EAAGA,EAAIiK,EAAQjK,GAAK,EAC7BmZ,GAAUsiD,EApCZ,kEAuCF,OAAOtiD,GA8BP8rB,aAGJxlC,EAAOD,QAAUwlC,G,6BC5EjB,8CAOA,SAAS42B,EAA8BC,EAAO,SAI1C,OAAO,cAAcA,EAIjBlyD,eAAeksC,GACX9H,SAAS8H,GACTniC,KAAKuU,WAAa,KAOtB3J,KAAK2J,GACDvU,KAAKuU,WAAaA,IAQf2zC,QAKR,MAAME,EACPF,EAA8B9tB,M,6BCvCpC,2MAeO,MAAMiuB,EAA2B,0BAK3BC,EAAc,wBAKdj3D,EAAoB,8BAMpBk3D,EAAe,0B,6BC/B5B,oEAMO,MAAMC,EAAqB,sBAOrBC,EAA0B,2B,iBCbvC,cAUA,IASIC,EAAU,qBAKVC,EAAU,oBACVC,EAAS,6BACTC,EAAS,eAKTC,EAAS,eAwBTC,EAAU,OAGVC,EAAe,8BAGfC,EAAW,mBAGXC,EAAgB,GACpBA,EAAcR,GAAWQ,EA7CV,kBA8CfA,EA9BqB,wBA8BWA,EA7Bd,qBA8BlBA,EA9Cc,oBA8CWA,EA7CX,iBA8CdA,EA9BiB,yBA8BWA,EA7BX,yBA8BjBA,EA7Bc,sBA6BWA,EA5BV,uBA6BfA,EA5Be,uBA4BWA,EAAcL,GACxCK,EA5CgB,mBA4CWA,EA3CX,mBA4ChBA,EA1CgB,mBA0CWA,EAAcJ,GACzCI,EAzCgB,mBAyCWA,EAxCX,mBAyChBA,EA/Be,uBA+BWA,EA9BJ,8BA+BtBA,EA9BgB,wBA8BWA,EA7BX,yBA6BsC,EACtDA,EArDe,kBAqDWA,EAAcP,GACxCO,EA3CiB,qBA2CW,EAG5B,IAAIC,EAA8B,iBAAVvzD,GAAsBA,GAAUA,EAAO5I,SAAWA,QAAU4I,EAGhFwzD,EAA0B,iBAARvzD,MAAoBA,MAAQA,KAAK7I,SAAWA,QAAU6I,KAGxEjK,EAAOu9D,GAAcC,GAAY/d,SAAS,cAATA,GAGjCge,EAA4Cv9D,IAAYA,EAAQiU,UAAYjU,EAG5Ew9D,EAAaD,GAAgC,iBAAVt9D,GAAsBA,IAAWA,EAAOgU,UAAYhU,EAGvFw9D,EAAgBD,GAAcA,EAAWx9D,UAAYu9D,EAUzD,SAASG,EAAYhkD,EAAKikD,GAGxB,OADAjkD,EAAI4b,IAAIqoC,EAAK,GAAIA,EAAK,IACfjkD,EAWT,SAASkkD,EAAYtoC,EAAK7zB,GAGxB,OADA6zB,EAAIb,IAAIhzB,GACD6zB,EAuDT,SAASuoC,EAAY/4B,EAAOg5B,EAAUC,EAAaC,GACjD,IAAIn5B,GAAS,EACTp6B,EAASq6B,EAAQA,EAAMr6B,OAAS,EAKpC,IAHIuzD,GAAavzD,IACfszD,EAAcj5B,IAAQD,MAEfA,EAAQp6B,GACfszD,EAAcD,EAASC,EAAaj5B,EAAMD,GAAQA,EAAOC,GAE3D,OAAOi5B,EAyCT,SAASE,EAAax8D,GAGpB,IAAIkY,GAAS,EACb,GAAa,MAATlY,GAA0C,mBAAlBA,EAAMmJ,SAChC,IACE+O,KAAYlY,EAAQ,IACpB,MAAO8L,IAEX,OAAOoM,EAUT,SAASukD,EAAWxkD,GAClB,IAAImrB,GAAS,EACTlrB,EAASrP,MAAMoP,EAAIyd,MAKvB,OAHAzd,EAAI4J,SAAQ,SAAS7hB,EAAOM,GAC1B4X,IAASkrB,GAAS,CAAC9iC,EAAKN,MAEnBkY,EAWT,SAASwkD,EAAQrqD,EAAMwjD,GACrB,OAAO,SAAShiD,GACd,OAAOxB,EAAKwjD,EAAUhiD,KAW1B,SAAS8oD,EAAW9oC,GAClB,IAAIuP,GAAS,EACTlrB,EAASrP,MAAMgrB,EAAI6B,MAKvB,OAHA7B,EAAIhS,SAAQ,SAAS7hB,GACnBkY,IAASkrB,GAASpjC,KAEbkY,EAIT,IASM0kD,EATFC,EAAah0D,MAAMlI,UACnBm8D,EAAYhf,SAASn9C,UACrBo8D,EAAct9D,OAAOkB,UAGrBq8D,EAAa3+D,EAAK,sBAGlB4+D,GACEL,EAAM,SAASM,KAAKF,GAAcA,EAAWhlD,MAAQglD,EAAWhlD,KAAKmlD,UAAY,KACvE,iBAAmBP,EAAO,GAItCQ,EAAeN,EAAU3zD,SAGzBvI,EAAiBm8D,EAAYn8D,eAO7By8D,EAAiBN,EAAY5zD,SAG7Bm0D,EAAaC,OAAO,IACtBH,EAAal+D,KAAK0B,GAAgByT,QAzQjB,sBAyQuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5EmpD,EAASxB,EAAgB39D,EAAKm/D,YAASxqD,EACvClT,EAASzB,EAAKyB,OACd29D,EAAap/D,EAAKo/D,WAClBC,EAAehB,EAAQj9D,OAAO4gD,eAAgB5gD,QAC9Ck+D,EAAel+D,OAAOY,OACtBu9D,EAAuBb,EAAYa,qBACnClnD,EAASmmD,EAAWnmD,OAGpBmnD,EAAmBp+D,OAAOu+C,sBAC1B8f,EAAiBN,EAASA,EAAOO,cAAW/qD,EAC5CgrD,EAAatB,EAAQj9D,OAAOuY,KAAMvY,QAGlCw+D,EAAWC,GAAU7/D,EAAM,YAC3B2zB,EAAMksC,GAAU7/D,EAAM,OACtBoxC,EAAUyuB,GAAU7/D,EAAM,WAC1Bk1B,EAAM2qC,GAAU7/D,EAAM,OACtB8/D,EAAUD,GAAU7/D,EAAM,WAC1B+/D,EAAeF,GAAUz+D,OAAQ,UAGjC4+D,EAAqBC,GAASL,GAC9BM,EAAgBD,GAAStsC,GACzBwsC,EAAoBF,GAAS7uB,GAC7BgvB,GAAgBH,GAAS/qC,GACzBmrC,GAAoBJ,GAASH,GAG7BQ,GAAc7+D,EAASA,EAAOa,eAAYqS,EAC1C4rD,GAAgBD,GAAcA,GAAYE,aAAU7rD,EASxD,SAAS8rD,GAAKC,GACZ,IAAI37B,GAAS,EACTp6B,EAAS+1D,EAAUA,EAAQ/1D,OAAS,EAGxC,IADAyJ,KAAK61C,UACIllB,EAAQp6B,GAAQ,CACvB,IAAIg2D,EAAQD,EAAQ37B,GACpB3wB,KAAKohB,IAAImrC,EAAM,GAAIA,EAAM,KA2F7B,SAASC,GAAUF,GACjB,IAAI37B,GAAS,EACTp6B,EAAS+1D,EAAUA,EAAQ/1D,OAAS,EAGxC,IADAyJ,KAAK61C,UACIllB,EAAQp6B,GAAQ,CACvB,IAAIg2D,EAAQD,EAAQ37B,GACpB3wB,KAAKohB,IAAImrC,EAAM,GAAIA,EAAM,KAyG7B,SAASE,GAASH,GAChB,IAAI37B,GAAS,EACTp6B,EAAS+1D,EAAUA,EAAQ/1D,OAAS,EAGxC,IADAyJ,KAAK61C,UACIllB,EAAQp6B,GAAQ,CACvB,IAAIg2D,EAAQD,EAAQ37B,GACpB3wB,KAAKohB,IAAImrC,EAAM,GAAIA,EAAM,KAuF7B,SAASG,GAAMJ,GACbtsD,KAAK2sD,SAAW,IAAIH,GAAUF,GA4FhC,SAASM,GAAcr/D,EAAOs/D,GAG5B,IAAIpnD,EAAUpP,GAAQ9I,IAsrBxB,SAAqBA,GAEnB,OAmFF,SAA2BA,GACzB,OAmIF,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EApIlBu/D,CAAav/D,IAAUw/D,GAAYx/D,GApFnCy/D,CAAkBz/D,IAAUY,EAAe1B,KAAKc,EAAO,aAC1D49D,EAAqB1+D,KAAKc,EAAO,WAAaq9D,EAAen+D,KAAKc,IAAUm7D,GAzrBhDuE,CAAY1/D,GAljB9C,SAAmBQ,EAAG67D,GAIpB,IAHA,IAAIj5B,GAAS,EACTlrB,EAASrP,MAAMrI,KAEV4iC,EAAQ5iC,GACf0X,EAAOkrB,GAASi5B,EAASj5B,GAE3B,OAAOlrB,EA4iBHynD,CAAU3/D,EAAMgJ,OAAQuC,QACxB,GAEAvC,EAASkP,EAAOlP,OAChB42D,IAAgB52D,EAEpB,IAAK,IAAI1I,KAAON,GACTs/D,IAAa1+D,EAAe1B,KAAKc,EAAOM,IACvCs/D,IAAuB,UAAPt/D,GAAmBu/D,GAAQv/D,EAAK0I,KACpDkP,EAAOvC,KAAKrV,GAGhB,OAAO4X,EAaT,SAAS4nD,GAAYr/D,EAAQH,EAAKN,GAChC,IAAI+/D,EAAWt/D,EAAOH,GAChBM,EAAe1B,KAAKuB,EAAQH,IAAQ0/D,GAAGD,EAAU//D,UACxCgT,IAAVhT,GAAyBM,KAAOG,KACnCA,EAAOH,GAAON,GAYlB,SAASigE,GAAa58B,EAAO/iC,GAE3B,IADA,IAAI0I,EAASq6B,EAAMr6B,OACZA,KACL,GAAIg3D,GAAG38B,EAAMr6B,GAAQ,GAAI1I,GACvB,OAAO0I,EAGX,OAAQ,EA8BV,SAASk3D,GAAUlgE,EAAOmgE,EAAQC,EAAQC,EAAY//D,EAAKG,EAAQoW,GACjE,IAAIqB,EAIJ,GAHImoD,IACFnoD,EAASzX,EAAS4/D,EAAWrgE,EAAOM,EAAKG,EAAQoW,GAASwpD,EAAWrgE,SAExDgT,IAAXkF,EACF,OAAOA,EAET,IAAKooD,GAAStgE,GACZ,OAAOA,EAET,IAAIugE,EAAQz3D,GAAQ9I,GACpB,GAAIugE,GAEF,GADAroD,EA2XJ,SAAwBmrB,GACtB,IAAIr6B,EAASq6B,EAAMr6B,OACfkP,EAASmrB,EAAM36B,YAAYM,GAG3BA,GAA6B,iBAAZq6B,EAAM,IAAkBziC,EAAe1B,KAAKmkC,EAAO,WACtEnrB,EAAOkrB,MAAQC,EAAMD,MACrBlrB,EAAOsoD,MAAQn9B,EAAMm9B,OAEvB,OAAOtoD,EApYIuoD,CAAezgE,IACnBmgE,EACH,OA6ON,SAAmB3iC,EAAQ6F,GACzB,IAAID,GAAS,EACTp6B,EAASw0B,EAAOx0B,OAEpBq6B,IAAUA,EAAQx6B,MAAMG,IACxB,OAASo6B,EAAQp6B,GACfq6B,EAAMD,GAAS5F,EAAO4F,GAExB,OAAOC,EArPIq9B,CAAU1gE,EAAOkY,OAErB,CACL,IAAIrI,EAAM8wD,GAAO3gE,GACb4gE,EAAS/wD,GAAOurD,GAAWvrD,GAAOwrD,EAEtC,GAAI0C,GAAS/9D,GACX,OA0HN,SAAqB6gE,EAAQV,GAC3B,GAAIA,EACF,OAAOU,EAAOl0B,QAEhB,IAAIz0B,EAAS,IAAI2oD,EAAOn4D,YAAYm4D,EAAO73D,QAE3C,OADA63D,EAAO1gB,KAAKjoC,GACLA,EAhII4oD,CAAY9gE,EAAOmgE,GAE5B,GAp0BY,mBAo0BRtwD,GAAoBA,GAAOsrD,GAAYyF,IAAWngE,EAAS,CAC7D,GAAI+7D,EAAax8D,GACf,OAAOS,EAAST,EAAQ,GAG1B,GADAkY,EA+XN,SAAyBzX,GACvB,MAAqC,mBAAtBA,EAAOiI,aAA8Bq4D,GAAYtgE,GAE5D,IAzVcya,EAwVHwiD,EAAaj9D,GAvVrB6/D,GAASplD,GAASyiD,EAAaziD,GAAS,IADjD,IAAoBA,EAzCL8lD,CAAgBJ,EAAS,GAAK5gE,IAClCmgE,EACH,OA6QR,SAAqB3iC,EAAQ/8B,GAC3B,OAAOwgE,GAAWzjC,EAAQ0jC,GAAW1jC,GAAS/8B,GA9QjC0gE,CAAYnhE,EAhD3B,SAAoBS,EAAQ+8B,GAC1B,OAAO/8B,GAAUwgE,GAAWzjC,EAAQxlB,GAAKwlB,GAAS/8B,GA+ClB2gE,CAAWlpD,EAAQlY,QAE1C,CACL,IAAK27D,EAAc9rD,GACjB,OAAOpP,EAAST,EAAQ,GAE1BkY,EA0YN,SAAwBzX,EAAQoP,EAAKwxD,EAAWlB,GAC9C,IAAImB,EAAO7gE,EAAOiI,YAClB,OAAQmH,GACN,IArtCiB,uBAstCf,OAAO0xD,GAAiB9gE,GAE1B,IAvuCU,mBAwuCV,IAvuCU,gBAwuCR,OAAO,IAAI6gE,GAAM7gE,GAEnB,IA3tCc,oBA4tCZ,OA3QN,SAAuB+gE,EAAUrB,GAC/B,IAAIU,EAASV,EAASoB,GAAiBC,EAASX,QAAUW,EAASX,OACnE,OAAO,IAAIW,EAAS94D,YAAYm4D,EAAQW,EAASC,WAAYD,EAASE,YAyQ3DC,CAAclhE,EAAQ0/D,GAE/B,IA7tCa,wBA6tCI,IA5tCJ,wBA6tCb,IA5tCU,qBA4tCI,IA3tCH,sBA2tCkB,IA1tClB,sBA2tCX,IA1tCW,sBA0tCI,IAztCG,6BAytCmB,IAxtCzB,uBAwtCyC,IAvtCzC,uBAwtCV,OA/MN,SAAyByB,EAAYzB,GACnC,IAAIU,EAASV,EAASoB,GAAiBK,EAAWf,QAAUe,EAAWf,OACvE,OAAO,IAAIe,EAAWl5D,YAAYm4D,EAAQe,EAAWH,WAAYG,EAAW54D,QA6MjE64D,CAAgBphE,EAAQ0/D,GAEjC,KAAK7E,EACH,OArQN,SAAkBrjD,EAAKkoD,EAAQkB,GAE7B,OAAOjF,EADK+D,EAASkB,EAAU5E,EAAWxkD,IAAM,GAAQwkD,EAAWxkD,GACzCgkD,EAAa,IAAIhkD,EAAIvP,aAmQpCo5D,CAASrhE,EAAQ0/D,EAAQkB,GAElC,IAhvCY,kBAivCZ,IA5uCY,kBA6uCV,OAAO,IAAIC,EAAK7gE,GAElB,IAjvCY,kBAkvCV,OAhQN,SAAqBshE,GACnB,IAAI7pD,EAAS,IAAI6pD,EAAOr5D,YAAYq5D,EAAOvkC,OAAQg+B,EAAQ0B,KAAK6E,IAEhE,OADA7pD,EAAO8pD,UAAYD,EAAOC,UACnB9pD,EA6PI+pD,CAAYxhE,GAErB,KAAK86D,EACH,OApPN,SAAkB1nC,EAAKssC,EAAQkB,GAE7B,OAAOjF,EADK+D,EAASkB,EAAU1E,EAAW9oC,IAAM,GAAQ8oC,EAAW9oC,GACzCsoC,EAAa,IAAItoC,EAAInrB,aAkPpCw5D,CAASzhE,EAAQ0/D,EAAQkB,GAElC,IApvCY,kBAqvCV,OA3Oec,EA2OI1hE,EA1OhBm+D,GAAgBn/D,OAAOm/D,GAAc1/D,KAAKijE,IAAW,GAD9D,IAAqBA,EA/LNC,CAAepiE,EAAO6P,EAAKqwD,GAAWC,IAInDtpD,IAAUA,EAAQ,IAAIsoD,IACtB,IAAIkD,EAAUxrD,EAAMjX,IAAII,GACxB,GAAIqiE,EACF,OAAOA,EAIT,GAFAxrD,EAAMgd,IAAI7zB,EAAOkY,IAEZqoD,EACH,IAAI+B,EAAQlC,EAsQhB,SAAoB3/D,GAClB,OAnOF,SAAwBA,EAAQ8hE,EAAUC,GACxC,IAAItqD,EAASqqD,EAAS9hE,GACtB,OAAOqI,GAAQrI,GAAUyX,EApwB3B,SAAmBmrB,EAAOxN,GAKxB,IAJA,IAAIuN,GAAS,EACTp6B,EAAS6sB,EAAO7sB,OAChBy5D,EAASp/B,EAAMr6B,SAEVo6B,EAAQp6B,GACfq6B,EAAMo/B,EAASr/B,GAASvN,EAAOuN,GAEjC,OAAOC,EA4vB2Bq/B,CAAUxqD,EAAQsqD,EAAY/hE,IAiOzDkiE,CAAeliE,EAAQuX,GAAMkpD,IAvQb0B,CAAW5iE,GAASgY,GAAKhY,GAUhD,OA5vBF,SAAmBqjC,EAAOg5B,GAIxB,IAHA,IAAIj5B,GAAS,EACTp6B,EAASq6B,EAAQA,EAAMr6B,OAAS,IAE3Bo6B,EAAQp6B,IAC8B,IAAzCqzD,EAASh5B,EAAMD,GAAQA,EAAOC,MA+uBpCw/B,CAAUP,GAAStiE,GAAO,SAAS8iE,EAAUxiE,GACvCgiE,IAEFQ,EAAW9iE,EADXM,EAAMwiE,IAIRhD,GAAY5nD,EAAQ5X,EAAK4/D,GAAU4C,EAAU3C,EAAQC,EAAQC,EAAY//D,EAAKN,EAAO6W,OAEhFqB,EAkDT,SAAS6qD,GAAa/iE,GACpB,SAAKsgE,GAAStgE,KAyYEqS,EAzYiBrS,EA0YxBi9D,GAAeA,KAAc5qD,MAvYvB2wD,GAAWhjE,IAAUw8D,EAAax8D,GAAUs9D,EAAa7B,GACzD92C,KAAK25C,GAASt+D,IAqY/B,IAAkBqS,EAtVlB,SAASkvD,GAAiB0B,GACxB,IAAI/qD,EAAS,IAAI+qD,EAAYv6D,YAAYu6D,EAAYvB,YAErD,OADA,IAAIjE,EAAWvlD,GAAQ2b,IAAI,IAAI4pC,EAAWwF,IACnC/qD,EA8GT,SAAS+oD,GAAWzjC,EAAQ8kC,EAAO7hE,EAAQ4/D,GACzC5/D,IAAWA,EAAS,IAKpB,IAHA,IAAI2iC,GAAS,EACTp6B,EAASs5D,EAAMt5D,SAEVo6B,EAAQp6B,GAAQ,CACvB,IAAI1I,EAAMgiE,EAAMl/B,GAEZ8/B,EAAW7C,EACXA,EAAW5/D,EAAOH,GAAMk9B,EAAOl9B,GAAMA,EAAKG,EAAQ+8B,QAClDxqB,EAEJ8sD,GAAYr/D,EAAQH,OAAkB0S,IAAbkwD,EAAyB1lC,EAAOl9B,GAAO4iE,GAElE,OAAOziE,EAkCT,SAAS0iE,GAAWlrD,EAAK3X,GACvB,IAqKiBN,EACb0Z,EAtKAtN,EAAO6L,EAAImnD,SACf,OAsKgB,WADZ1lD,SADa1Z,EApKAM,KAsKmB,UAARoZ,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV1Z,EACU,OAAVA,GAvKDoM,EAAmB,iBAAP9L,EAAkB,SAAW,QACzC8L,EAAK6L,IAWX,SAASimD,GAAUz9D,EAAQH,GACzB,IAAIN,EAj8BN,SAAkBS,EAAQH,GACxB,OAAiB,MAAVG,OAAiBuS,EAAYvS,EAAOH,GAg8B/B8iE,CAAS3iE,EAAQH,GAC7B,OAAOyiE,GAAa/iE,GAASA,OAAQgT,EA7tBvC8rD,GAAKn+D,UAAU2nD,MAnEf,WACE71C,KAAK2sD,SAAWhB,EAAeA,EAAa,MAAQ,IAmEtDU,GAAKn+D,UAAL,OAtDA,SAAoBL,GAClB,OAAOmS,KAAK+jB,IAAIl2B,WAAemS,KAAK2sD,SAAS9+D,IAsD/Cw+D,GAAKn+D,UAAUf,IA1Cf,SAAiBU,GACf,IAAI8L,EAAOqG,KAAK2sD,SAChB,GAAIhB,EAAc,CAChB,IAAIlmD,EAAS9L,EAAK9L,GAClB,MA7YiB,8BA6YV4X,OAA4BlF,EAAYkF,EAEjD,OAAOtX,EAAe1B,KAAKkN,EAAM9L,GAAO8L,EAAK9L,QAAO0S,GAqCtD8rD,GAAKn+D,UAAU61B,IAzBf,SAAiBl2B,GACf,IAAI8L,EAAOqG,KAAK2sD,SAChB,OAAOhB,OAA6BprD,IAAd5G,EAAK9L,GAAqBM,EAAe1B,KAAKkN,EAAM9L,IAwB5Ew+D,GAAKn+D,UAAUkzB,IAXf,SAAiBvzB,EAAKN,GAGpB,OAFWyS,KAAK2sD,SACX9+D,GAAQ89D,QAA0BprD,IAAVhT,EA5aV,4BA4akDA,EAC9DyS,MAoHTwsD,GAAUt+D,UAAU2nD,MAjFpB,WACE71C,KAAK2sD,SAAW,IAiFlBH,GAAUt+D,UAAV,OArEA,SAAyBL,GACvB,IAAI8L,EAAOqG,KAAK2sD,SACZh8B,EAAQ68B,GAAa7zD,EAAM9L,GAE/B,QAAI8iC,EAAQ,KAIRA,GADYh3B,EAAKpD,OAAS,EAE5BoD,EAAK+W,MAELzM,EAAOxX,KAAKkN,EAAMg3B,EAAO,IAEpB,IAyDT67B,GAAUt+D,UAAUf,IA7CpB,SAAsBU,GACpB,IAAI8L,EAAOqG,KAAK2sD,SACZh8B,EAAQ68B,GAAa7zD,EAAM9L,GAE/B,OAAO8iC,EAAQ,OAAIpwB,EAAY5G,EAAKg3B,GAAO,IA0C7C67B,GAAUt+D,UAAU61B,IA9BpB,SAAsBl2B,GACpB,OAAO2/D,GAAaxtD,KAAK2sD,SAAU9+D,IAAQ,GA8B7C2+D,GAAUt+D,UAAUkzB,IAjBpB,SAAsBvzB,EAAKN,GACzB,IAAIoM,EAAOqG,KAAK2sD,SACZh8B,EAAQ68B,GAAa7zD,EAAM9L,GAO/B,OALI8iC,EAAQ,EACVh3B,EAAKuJ,KAAK,CAACrV,EAAKN,IAEhBoM,EAAKg3B,GAAO,GAAKpjC,EAEZyS,MAkGTysD,GAASv+D,UAAU2nD,MA/DnB,WACE71C,KAAK2sD,SAAW,CACd,KAAQ,IAAIN,GACZ,IAAO,IAAK9sC,GAAOitC,IACnB,OAAU,IAAIH,KA4DlBI,GAASv+D,UAAT,OA/CA,SAAwBL,GACtB,OAAO6iE,GAAW1wD,KAAMnS,GAAjB,OAAgCA,IA+CzC4+D,GAASv+D,UAAUf,IAnCnB,SAAqBU,GACnB,OAAO6iE,GAAW1wD,KAAMnS,GAAKV,IAAIU,IAmCnC4+D,GAASv+D,UAAU61B,IAvBnB,SAAqBl2B,GACnB,OAAO6iE,GAAW1wD,KAAMnS,GAAKk2B,IAAIl2B,IAuBnC4+D,GAASv+D,UAAUkzB,IAVnB,SAAqBvzB,EAAKN,GAExB,OADAmjE,GAAW1wD,KAAMnS,GAAKuzB,IAAIvzB,EAAKN,GACxByS,MAgGT0sD,GAAMx+D,UAAU2nD,MApEhB,WACE71C,KAAK2sD,SAAW,IAAIH,IAoEtBE,GAAMx+D,UAAN,OAxDA,SAAqBL,GACnB,OAAOmS,KAAK2sD,SAAL,OAAwB9+D,IAwDjC6+D,GAAMx+D,UAAUf,IA5ChB,SAAkBU,GAChB,OAAOmS,KAAK2sD,SAASx/D,IAAIU,IA4C3B6+D,GAAMx+D,UAAU61B,IAhChB,SAAkBl2B,GAChB,OAAOmS,KAAK2sD,SAAS5oC,IAAIl2B,IAgC3B6+D,GAAMx+D,UAAUkzB,IAnBhB,SAAkBvzB,EAAKN,GACrB,IAAIqjE,EAAQ5wD,KAAK2sD,SACjB,GAAIiE,aAAiBpE,GAAW,CAC9B,IAAIqE,EAAQD,EAAMjE,SAClB,IAAKptC,GAAQsxC,EAAMt6D,OAASu6D,IAE1B,OADAD,EAAM3tD,KAAK,CAACrV,EAAKN,IACVyS,KAET4wD,EAAQ5wD,KAAK2sD,SAAW,IAAIF,GAASoE,GAGvC,OADAD,EAAMxvC,IAAIvzB,EAAKN,GACRyS,MAicT,IAAIyuD,GAAarD,EAAmBnB,EAAQmB,EAAkBp+D,QAyhB9D,WACE,MAAO,IAjhBLkhE,GAtQJ,SAAoB3gE,GAClB,OAAOq9D,EAAen+D,KAAKc,IAyX7B,SAAS6/D,GAAQ7/D,EAAOgJ,GAEtB,SADAA,EAAmB,MAAVA,EAnxCY,iBAmxCwBA,KAE1B,iBAAThJ,GAAqB07D,EAAS/2C,KAAK3kB,KAC1CA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQgJ,EAmC7C,SAAS+3D,GAAY/gE,GACnB,IAAIshE,EAAOthE,GAASA,EAAM0I,YAG1B,OAAO1I,KAFqB,mBAARshE,GAAsBA,EAAK3gE,WAAco8D,GAY/D,SAASuB,GAASjsD,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO+qD,EAAal+D,KAAKmT,GACzB,MAAOvG,IACT,IACE,OAAQuG,EAAO,GACf,MAAOvG,KAEX,MAAO,GAyDT,SAASk0D,GAAGhgE,EAAOwjE,GACjB,OAAOxjE,IAAUwjE,GAAUxjE,GAAUA,GAASwjE,GAAUA,GAxOrDvF,GA7oCa,qBA6oCD0C,GAAO,IAAI1C,EAAS,IAAIwF,YAAY,MAChDzxC,GAAO2uC,GAAO,IAAI3uC,IAAQspC,GAC1B7rB,GAvpCY,oBAupCDkxB,GAAOlxB,EAAQC,YAC1Bnc,GAAOotC,GAAO,IAAIptC,IAAQgoC,GAC1B4C,GAppCY,oBAopCDwC,GAAO,IAAIxC,MACzBwC,GAAS,SAAS3gE,GAChB,IAAIkY,EAASmlD,EAAen+D,KAAKc,GAC7BshE,EA7pCQ,mBA6pCDppD,EAAsBlY,EAAM0I,iBAAcsK,EACjD0wD,EAAapC,EAAOhD,GAASgD,QAAQtuD,EAEzC,GAAI0wD,EACF,OAAQA,GACN,KAAKrF,EAAoB,MAzpCf,oBA0pCV,KAAKE,EAAe,OAAOjD,EAC3B,KAAKkD,EAAmB,MAnqCf,mBAoqCT,KAAKC,GAAe,OAAOlD,EAC3B,KAAKmD,GAAmB,MAhqCf,mBAmqCb,OAAOxmD,IAuQX,IAAIpP,GAAUD,MAAMC,QA2BpB,SAAS02D,GAAYx/D,GACnB,OAAgB,MAATA,GAqGT,SAAkBA,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA/jDb,iBAw9CG2jE,CAAS3jE,EAAMgJ,UAAYg6D,GAAWhjE,GAiDhE,IAAI+9D,GAAWD,GAsLf,WACE,OAAO,GApKT,SAASkF,GAAWhjE,GAGlB,IAAI6P,EAAMywD,GAAStgE,GAASq9D,EAAen+D,KAAKc,GAAS,GACzD,OAAO6P,GAAOurD,GAAWvrD,GAAOwrD,EA2DlC,SAASiF,GAAStgE,GAChB,IAAI0Z,SAAc1Z,EAClB,QAASA,IAAkB,UAAR0Z,GAA4B,YAARA,GA2DzC,SAAS1B,GAAKvX,GACZ,OAAO++D,GAAY/+D,GAAU4+D,GAAc5+D,GAtuB7C,SAAkBA,GAChB,IAAKsgE,GAAYtgE,GACf,OAAOu9D,EAAWv9D,GAEpB,IAAIyX,EAAS,GACb,IAAK,IAAI5X,KAAOb,OAAOgB,GACjBG,EAAe1B,KAAKuB,EAAQH,IAAe,eAAPA,GACtC4X,EAAOvC,KAAKrV,GAGhB,OAAO4X,EA4tB8C0rD,CAASnjE,GA0ChEjC,EAAOD,QA9VP,SAAmByB,GACjB,OAAOkgE,GAAUlgE,GAAO,GAAM,M,yDCt3ChC,yGAUA,MAAM0wB,EAASF,oBAAUM,GAKV,MAAMg7B,UAAuBjf,IAMxC,oBACI,MAAO,CACHg3B,oBAAqB,uBAS7B,oBACI,OAAO31D,UAAQgC,OAenBxH,aAAY,sBAAEijD,EAAF,mBAAyBE,EAAzB,WAA6CD,IACrD9e,QACAr6B,KAAKqxD,SAAW,CACZnY,2BAAwD,IAA1BA,GAA+CA,EAC7EE,wBAAkD,IAAvBA,EAAqC,KAAgB7/B,OAAO6/B,IAG3Fp5C,KAAKsxD,aAAe,IAAI71D,UAAQ6M,WAAW6wC,GAC3Cn5C,KAAKuxD,eAAiBpY,EAAWhnB,WAAW,QAAUgnB,EAAWhnB,WAAW,QAG5EnyB,KAAKsxD,aAAahnD,WAAa,EAE/BtK,KAAKwxD,oBAAsB,IAAIC,IAC/BzxD,KAAKwxD,oBAAoBE,cAAc1xD,KAAMA,KAAKsxD,cAElDtxD,KAAK2xD,YAAc,IAAIC,IAAW5xD,KAAKsxD,cAcvCtxD,KAAK6xD,aAAe,GAIpB7xD,KAAK+F,oBACD,OACA,IAAI+rD,IAAqB,CACrBC,wBAAyB,IAAM/xD,KAAKgyD,mCAShD,gBACI,MAAMC,EAAYjyD,KAAKsxD,cAAgBtxD,KAAKsxD,aAAa3oD,QAAU3I,KAAKsxD,aAAa3oD,OAAO2S,OAE5F,OAAQtb,KAAKkyD,UAAYz2D,UAAQgC,OAAOM,WAAaiC,KAAKkyD,UAAYz2D,UAAQgC,OAAOS,aAC5E8B,KAAK89C,kBAAqBmU,GAAaA,EAAUj5C,aAAeuC,UAAU42C,MAQvF,YACI,OAAOnyD,KAAKsxD,aAAac,MAQ7B,oBACI,OAA2C,IAApCpyD,KAAKsxD,aAAaznD,cAQ7B,aACI,OAAO7J,KAAKsxD,aAAax2D,OAQ7B,uBACI,OAAOkF,KAAKuxD,eAQhB,UACI,OAAOvxD,KAAKsxD,aAAa3tD,IAQ7B,0BACI,OAAO3D,KAAKsxD,aAAa3oD,QAAU3I,KAAKsxD,aAAa3oD,OAAO+O,oBAQhE,aACI,OAAO1X,KAAKsxD,aAAarzC,OAQ7B,cACI,OAAOje,KAAKsxD,aAAanqD,QAQ7B,cACI,OAAOnH,KAAKsxD,aAAa/oD,QAQ7B,aACI,OAAOvI,KAAKkyD,QAUhBnsD,oBAAoBlZ,EAAMojB,GACtBjQ,KAAKnT,GAAQojB,EACbA,EAAOrF,KAAK5K,MAQhB+N,cAAco0B,GACVniC,KAAKsxD,aAAavjD,cAAco0B,GAUpC/1B,OAAOzI,EAAK0I,EAAKC,EAAKd,KAAa22B,GAC/BniC,KAAKsxD,aAAallD,OAAOzI,EAAK0I,EAAKC,EAAKtM,KAAKqyD,qBAAqBvkE,KAAKkS,KAAMwL,MAAc22B,GAS/F12B,QAAQ9H,EAAK+H,EAAMF,KAAa22B,GAC5BniC,KAAKsxD,aAAa7lD,QAAQ9H,EAAK+H,EAAM1L,KAAKqyD,qBAAqBvkE,KAAKkS,KAAMwL,MAAc22B,GAc5FkwB,qBAAqBC,EAAgBviD,KAAWoyB,GAC5CniC,KAAKkyD,QAAUniD,EAEf,IAAIwiD,GAAgB,EAEhBxiD,IAAWtU,UAAQgC,OAAOM,WAAagS,IAAWtU,UAAQgC,OAAOS,UACjE8B,KAAKwyD,2BACLxyD,KAAKyyD,yBACLzyD,KAAK0yD,sBACL1yD,KAAK2xD,YAAYgB,SACjB3yD,KAAKg8C,KAAK4W,cAAc5yD,KAAKlF,SACtBiV,IAAWtU,UAAQgC,OAAOO,eACjCgC,KAAKg8C,KAAKC,eAGVsW,EAAgBvyD,KAAK6yD,yBAChBN,GACD9kD,aAAazN,KAAK8yD,eAIrBP,IACDD,EAAeviD,KAAWoyB,GAC1BniC,KAAKwf,aAAa0D,KAAKm2B,EAAe0Z,OAAO3B,oBAAqBrhD,IAS1EijD,oBACI,IAAK,MAAMC,KAAYjzD,KAAK6xD,aACxBoB,EAAS/1B,OAAO,IAAI7lC,MAAM,eAE9B2I,KAAK6xD,aAAe,GAQxBqB,iBACQlzD,KAAKsxD,cAAgBtxD,KAAKsxD,aAAa3oD,SACvC3I,KAAKsxD,aAAa3oD,OAAO0S,eACzBrb,KAAKsxD,aAAa3oD,OAAOkT,SAAS,OAS1CtM,cAAc4yB,GACVniC,KAAK2xD,YAAYgB,SACjBllD,aAAazN,KAAK8yD,cAClB9yD,KAAKgzD,oBACLhzD,KAAKsxD,aAAa/hD,cAAc4yB,GAQpC30B,SAAS20B,GACLniC,KAAKsxD,aAAa9jD,SAAS20B,GAQ/B+c,0BACI,OAAOl/C,KAAKwxD,oBAAoBtS,0BAQpCsT,2BACI,IAAKxyD,KAAKqxD,SAASnY,sBAEf,OAGJ,MAAM,iBAAEia,GAAqBnzD,KAAKsxD,aAE7BtxD,KAAK89C,iBAEEqV,EAEAA,EAAiB31B,cAEjB21B,EAAiBC,mBACzBn1C,EAAO/Y,KAAK,uCACZiuD,EAAiB3xB,QAAoB,IAHrCvjB,EAAO9Y,KAAK,sEAFZ8Y,EAAO9Y,KAAK,+EAFZ8Y,EAAO9Y,KAAK,yDAiBpBstD,yBACI,MAAM,mBAAErZ,GAAuBp5C,KAAKqxD,SAEpC,GAAIrxD,KAAKuxD,gBAAkBnY,EAAqB,EAAG,CAC/Cp5C,KAAK8yD,cAAgB70C,EAAO/Y,KAAM,kCAAiCk0C,OACnE3rC,aAAazN,KAAK8yD,cAElB,MAAMO,EACiC,GAArBja,EAA0D,GAAhBhuC,KAAKC,SAAiB+tC,EAElFn7B,EAAOhZ,MAAO,2CAA0CouD,OAExDrzD,KAAK8yD,aAAevoD,WAAW,KAC3B,MAAMw2B,EAAM/gC,KAAKuI,QAAQ3G,QAAQ,SAAU,YAAYA,QAAQ,QAAS,WAExE0xD,MAAMvyB,GAAK3D,MACPp4B,IACIiZ,EAAOjZ,MAAO,wCAAuC+7B,EAAO,CAAE/7B,YAEjE01B,KAAK,IAAM16B,KAAKyyD,2BACtBY,IAUXX,sBACI,IAAK,MAAMO,KAAYjzD,KAAK6xD,aACxB,GAAIoB,EAAShgD,GAAI,CACbxF,aAAawlD,EAASrlD,SAEtB,MAAM2lD,EAAWprD,KAAKgM,MAAQ8+C,EAASl2C,MAEvC/c,KAAKoO,OACD6kD,EAAShgD,GACTxN,GAAUwtD,EAASh2B,QAAQx3B,GAC3BT,GAASiuD,EAAS/1B,OAAOl4B,GACzBuuD,GAIZvzD,KAAK6xD,aAAe,GASxBxkD,KAAKW,GACD,IAAKhO,KAAK4J,UACN,MAAM,IAAIvS,MAAM,iBAEpB2I,KAAKsxD,aAAajkD,KAAKW,GAa3BI,OAAO1O,EAAM8L,EAAUmC,EAASC,GAC5B,GAAK5N,KAAK4J,UAMV,OAAO5J,KAAKsxD,aAAaljD,OAAO1O,EAAM8L,EAAUmC,EAASC,GALrDD,EAAQ,iBAgBhB6lD,QAAQvgD,GAAI,QAAErF,IACV,OAAO,IAAIovB,QAAQ,CAACC,EAASC,KACzB,GAAIl9B,KAAK4J,UACL5J,KAAKoO,OACD6E,EACAxN,GAAUw3B,EAAQx3B,GAClBT,GAASk4B,EAAOl4B,GAChB4I,OACD,CACH,MAAMqlD,EAAW,CACbhgD,KACAgqB,UACAC,SACAngB,MAAO5U,KAAKgM,MACZvG,QAASrD,WAAW,KAEhB0oD,EAAShgD,QAAK1S,EAGd28B,OAAO38B,IACRqN,IAGP5N,KAAK6xD,aAAa3uD,KAAK+vD,MAUnCjB,gCACQhyD,KAAK89C,mBACL7/B,EAAO9Y,KAAK,yDACZnF,KAAKkzD,kBAebxlD,aAAahO,EAAM8L,EAAUmC,EAASC,GAC7B5N,KAAK4J,UAKV5J,KAAKsxD,aAAa5jD,aAAahO,EAAM8L,EAAUmC,EAASC,GAJpDD,EAAQ,iBAYhBqwC,wBACI,IAAKxjB,UAAUi5B,YAAczzD,KAAKsxD,aAAaznD,gBAAkB7J,KAAKsxD,aAAa1nD,UAC/E,OAAO,EAGX5J,KAAKsxD,aAAaplD,qBAAqBzQ,UAAQgC,OAAOQ,eACtD+B,KAAKsxD,aAAaznD,eAAgB,EAElC,MAAMiO,EAAO9X,KAAKsxD,aAAa3oD,OAAOgP,aACjCnc,MAAM,CACHyL,KAAM,cAERwI,EAAO7T,gBAAM,CACfqK,MAAOxK,UAAQK,GAAGG,OAClBgL,KAAM,gBAGV6Q,EAAKvR,MAAMkJ,EAAKpK,QAEhB,MAAM44B,EAAMzD,UAAUi5B,YACoB,IAAtCzzD,KAAKuI,QAAQ3E,QAAQ,YAAsB,SAAQ5D,KAAKuI,QAAYvI,KAAKuI,QACzE9M,UAAQ2J,UAAU0S,EAAKzS,SAO3B,OALA4Y,EAAO/Y,KAAM,wCAAuC+4B,GAEpDj+B,KAAKsxD,aAAa3oD,OAAOkH,oBACzB7P,KAAKsxD,aAAaxhD,iBAEX,EAWX+iD,yBACI,MAAM,iBAAEM,GAAqBnzD,KAAKsxD,aAGlC,SAFoB6B,IAAoBA,EAAiBC,oBAGrDpzD,KAAK2xD,YAAY+B,YAEV,O,2DCvhBnB3nE,EAAOD,QAZkB,CAIrB6nE,YAAa,cAKb59B,KAAM,S,cClBV,IAAI69B,EAGJA,EAAK,WACJ,OAAO5zD,KADH,GAIL,IAEC4zD,EAAIA,GAAK,IAAIvoB,SAAS,cAAb,GACR,MAAOhyC,GAEc,iBAAXnN,SAAqB0nE,EAAI1nE,QAOrCH,EAAOD,QAAU8nE,G,iBCnBjB,cAUA,IAaIlL,EAAU,qBAQVG,EAAS,eAGTgL,EAAY,kBAIZ/K,EAAS,eAyBTE,EAAe,8BAGfC,EAAW,mBAGX6K,EAAiB,GACrBA,EAxBiB,yBAwBYA,EAvBZ,yBAwBjBA,EAvBc,sBAuBYA,EAtBX,uBAuBfA,EAtBe,uBAsBYA,EArBZ,uBAsBfA,EArBsB,8BAqBYA,EApBlB,wBAqBhBA,EApBgB,yBAoBY,EAC5BA,EAAepL,GAAWoL,EAnDX,kBAoDfA,EAhCqB,wBAgCYA,EAlDnB,oBAmDdA,EAhCkB,qBAgCYA,EAlDhB,iBAmDdA,EAlDe,kBAkDYA,EAjDb,qBAkDdA,EAAejL,GAAUiL,EA/CT,mBAgDhBA,EAAeD,GAAaC,EA3CZ,mBA4ChBA,EAAehL,GAAUgL,EA1CT,mBA2ChBA,EAxCiB,qBAwCY,EAG7B,IAAI3K,EAA8B,iBAAVvzD,GAAsBA,GAAUA,EAAO5I,SAAWA,QAAU4I,EAGhFwzD,EAA0B,iBAARvzD,MAAoBA,MAAQA,KAAK7I,SAAWA,QAAU6I,KAGxEjK,EAAOu9D,GAAcC,GAAY/d,SAAS,cAATA,GAGjCge,EAA4Cv9D,IAAYA,EAAQiU,UAAYjU,EAG5Ew9D,EAAaD,GAAgC,iBAAVt9D,GAAsBA,IAAWA,EAAOgU,UAAYhU,EAGvFw9D,EAAgBD,GAAcA,EAAWx9D,UAAYu9D,EAGrD0K,EAAcxK,GAAiBJ,EAAW6K,QAG1CC,EAAY,WACd,IACE,OAAOF,GAAeA,EAAYG,SAAWH,EAAYG,QAAQ,QACjE,MAAO76D,KAHK,GAOZ86D,EAAmBF,GAAYA,EAASG,aAuD5C,SAASC,EAAUzjC,EAAO0jC,GAIxB,IAHA,IAAI3jC,GAAS,EACTp6B,EAAkB,MAATq6B,EAAgB,EAAIA,EAAMr6B,SAE9Bo6B,EAAQp6B,GACf,GAAI+9D,EAAU1jC,EAAMD,GAAQA,EAAOC,GACjC,OAAO,EAGX,OAAO,EAkET,SAASo5B,EAAWxkD,GAClB,IAAImrB,GAAS,EACTlrB,EAASrP,MAAMoP,EAAIyd,MAKvB,OAHAzd,EAAI4J,SAAQ,SAAS7hB,EAAOM,GAC1B4X,IAASkrB,GAAS,CAAC9iC,EAAKN,MAEnBkY,EAwBT,SAASykD,EAAW9oC,GAClB,IAAIuP,GAAS,EACTlrB,EAASrP,MAAMgrB,EAAI6B,MAKvB,OAHA7B,EAAIhS,SAAQ,SAAS7hB,GACnBkY,IAASkrB,GAASpjC,KAEbkY,EAIT,IAeM0kD,EAvCWvqD,EAAMwjD,EAwBnBgH,EAAah0D,MAAMlI,UACnBm8D,EAAYhf,SAASn9C,UACrBo8D,EAAct9D,OAAOkB,UAGrBq8D,EAAa3+D,EAAK,sBAGlB++D,EAAeN,EAAU3zD,SAGzBvI,EAAiBm8D,EAAYn8D,eAG7Bq8D,GACEL,EAAM,SAASM,KAAKF,GAAcA,EAAWhlD,MAAQglD,EAAWhlD,KAAKmlD,UAAY,KACvE,iBAAmBP,EAAO,GAQtCoK,EAAuBjK,EAAY5zD,SAGnCm0D,EAAaC,OAAO,IACtBH,EAAal+D,KAAK0B,GAAgByT,QA7PjB,sBA6PuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5EmpD,EAASxB,EAAgB39D,EAAKm/D,YAASxqD,EACvClT,EAASzB,EAAKyB,OACd29D,EAAap/D,EAAKo/D,WAClBG,EAAuBb,EAAYa,qBACnClnD,EAASmmD,EAAWnmD,OACpBuwD,EAAiBnnE,EAASA,EAAOC,iBAAciT,EAG/C6qD,EAAmBp+D,OAAOu+C,sBAC1B8f,EAAiBN,EAASA,EAAOO,cAAW/qD,EAC5CgrD,GAnEa3rD,EAmEQ5S,OAAOuY,KAnET69C,EAmEep2D,OAlE7B,SAASoU,GACd,OAAOxB,EAAKwjD,EAAUhiD,MAoEtBoqD,EAAWC,GAAU7/D,EAAM,YAC3B2zB,EAAMksC,GAAU7/D,EAAM,OACtBoxC,EAAUyuB,GAAU7/D,EAAM,WAC1Bk1B,EAAM2qC,GAAU7/D,EAAM,OACtB8/D,EAAUD,GAAU7/D,EAAM,WAC1B+/D,EAAeF,GAAUz+D,OAAQ,UAGjC4+D,EAAqBC,GAASL,GAC9BM,EAAgBD,GAAStsC,GACzBwsC,EAAoBF,GAAS7uB,GAC7BgvB,EAAgBH,GAAS/qC,GACzBmrC,EAAoBJ,GAASH,GAG7BQ,GAAc7+D,EAASA,EAAOa,eAAYqS,EAC1C4rD,GAAgBD,GAAcA,GAAYE,aAAU7rD,EASxD,SAAS8rD,GAAKC,GACZ,IAAI37B,GAAS,EACTp6B,EAAoB,MAAX+1D,EAAkB,EAAIA,EAAQ/1D,OAG3C,IADAyJ,KAAK61C,UACIllB,EAAQp6B,GAAQ,CACvB,IAAIg2D,EAAQD,EAAQ37B,GACpB3wB,KAAKohB,IAAImrC,EAAM,GAAIA,EAAM,KA+F7B,SAASC,GAAUF,GACjB,IAAI37B,GAAS,EACTp6B,EAAoB,MAAX+1D,EAAkB,EAAIA,EAAQ/1D,OAG3C,IADAyJ,KAAK61C,UACIllB,EAAQp6B,GAAQ,CACvB,IAAIg2D,EAAQD,EAAQ37B,GACpB3wB,KAAKohB,IAAImrC,EAAM,GAAIA,EAAM,KA4G7B,SAASE,GAASH,GAChB,IAAI37B,GAAS,EACTp6B,EAAoB,MAAX+1D,EAAkB,EAAIA,EAAQ/1D,OAG3C,IADAyJ,KAAK61C,UACIllB,EAAQp6B,GAAQ,CACvB,IAAIg2D,EAAQD,EAAQ37B,GACpB3wB,KAAKohB,IAAImrC,EAAM,GAAIA,EAAM,KA+F7B,SAASkI,GAASrxC,GAChB,IAAIuN,GAAS,EACTp6B,EAAmB,MAAV6sB,EAAiB,EAAIA,EAAO7sB,OAGzC,IADAyJ,KAAK2sD,SAAW,IAAIF,KACX97B,EAAQp6B,GACfyJ,KAAKugB,IAAI6C,EAAOuN,IA2CpB,SAAS+7B,GAAMJ,GACb,IAAI3yD,EAAOqG,KAAK2sD,SAAW,IAAIH,GAAUF,GACzCtsD,KAAKijB,KAAOtpB,EAAKspB,KAmGnB,SAAS2pC,GAAcr/D,EAAOs/D,GAC5B,IAAIiB,EAAQz3D,GAAQ9I,GAChBmnE,GAAS5G,GAASb,GAAY1/D,GAC9BonE,GAAU7G,IAAU4G,GAASpJ,GAAS/9D,GACtCqnE,GAAU9G,IAAU4G,IAAUC,GAAUP,GAAa7mE,GACrD4/D,EAAcW,GAAS4G,GAASC,GAAUC,EAC1CnvD,EAAS0nD,EAloBf,SAAmBp/D,EAAG67D,GAIpB,IAHA,IAAIj5B,GAAS,EACTlrB,EAASrP,MAAMrI,KAEV4iC,EAAQ5iC,GACf0X,EAAOkrB,GAASi5B,EAASj5B,GAE3B,OAAOlrB,EA2nBoBynD,CAAU3/D,EAAMgJ,OAAQuC,QAAU,GACzDvC,EAASkP,EAAOlP,OAEpB,IAAK,IAAI1I,KAAON,GACTs/D,IAAa1+D,EAAe1B,KAAKc,EAAOM,IACvCs/D,IAEQ,UAAPt/D,GAEC8mE,IAAkB,UAAP9mE,GAA0B,UAAPA,IAE9B+mE,IAAkB,UAAP/mE,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDu/D,GAAQv/D,EAAK0I,KAElBkP,EAAOvC,KAAKrV,GAGhB,OAAO4X,EAWT,SAAS+nD,GAAa58B,EAAO/iC,GAE3B,IADA,IAAI0I,EAASq6B,EAAMr6B,OACZA,KACL,GAAIg3D,GAAG38B,EAAMr6B,GAAQ,GAAI1I,GACvB,OAAO0I,EAGX,OAAQ,EA0BV,SAASs+D,GAAWtnE,GAClB,OAAa,MAATA,OACegT,IAAVhT,EAt1BQ,qBARL,gBAg2BJinE,GAAkBA,KAAkBxnE,OAAOO,GA0arD,SAAmBA,GACjB,IAAIunE,EAAQ3mE,EAAe1B,KAAKc,EAAOinE,GACnCp3D,EAAM7P,EAAMinE,GAEhB,IACEjnE,EAAMinE,QAAkBj0D,EACxB,IAAIw0D,GAAW,EACf,MAAO17D,IAET,IAAIoM,EAAS8uD,EAAqB9nE,KAAKc,GACnCwnE,IACED,EACFvnE,EAAMinE,GAAkBp3D,SAEjB7P,EAAMinE,IAGjB,OAAO/uD,EA1bHuvD,CAAUznE,GA4iBhB,SAAwBA,GACtB,OAAOgnE,EAAqB9nE,KAAKc,GA5iB7Bq9D,CAAer9D,GAUrB,SAAS0nE,GAAgB1nE,GACvB,OAAOu/D,GAAav/D,IAAUsnE,GAAWtnE,IAAUm7D,EAiBrD,SAASwM,GAAY3nE,EAAOwjE,EAAOoE,EAASvH,EAAYxpD,GACtD,OAAI7W,IAAUwjE,IAGD,MAATxjE,GAA0B,MAATwjE,IAAmBjE,GAAav/D,KAAWu/D,GAAaiE,GACpExjE,GAAUA,GAASwjE,GAAUA,EAmBxC,SAAyB/iE,EAAQ+iE,EAAOoE,EAASvH,EAAYwH,EAAWhxD,GACtE,IAAIixD,EAAWh/D,GAAQrI,GACnBsnE,EAAWj/D,GAAQ06D,GACnBwE,EAASF,EAl6BA,iBAk6BsBnH,GAAOlgE,GACtCwnE,EAASF,EAn6BA,iBAm6BsBpH,GAAO6C,GAKtC0E,GAHJF,EAASA,GAAU7M,EAAUmL,EAAY0B,IAGhB1B,EACrB6B,GAHJF,EAASA,GAAU9M,EAAUmL,EAAY2B,IAGhB3B,EACrB8B,EAAYJ,GAAUC,EAE1B,GAAIG,GAAarK,GAASt9D,GAAS,CACjC,IAAKs9D,GAASyF,GACZ,OAAO,EAETsE,GAAW,EACXI,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADArxD,IAAUA,EAAQ,IAAIsoD,IACd2I,GAAYjB,GAAapmE,GAC7B4nE,GAAY5nE,EAAQ+iE,EAAOoE,EAASvH,EAAYwH,EAAWhxD,GAiKnE,SAAoBpW,EAAQ+iE,EAAO3zD,EAAK+3D,EAASvH,EAAYwH,EAAWhxD,GACtE,OAAQhH,GACN,IApkCc,oBAqkCZ,GAAKpP,EAAOihE,YAAc8B,EAAM9B,YAC3BjhE,EAAOghE,YAAc+B,EAAM/B,WAC9B,OAAO,EAEThhE,EAASA,EAAOogE,OAChB2C,EAAQA,EAAM3C,OAEhB,IA7kCiB,uBA8kCf,QAAKpgE,EAAOihE,YAAc8B,EAAM9B,aAC3BmG,EAAU,IAAIpK,EAAWh9D,GAAS,IAAIg9D,EAAW+F,KAKxD,IAtmCU,mBAumCV,IAtmCU,gBAumCV,IAlmCY,kBAqmCV,OAAOxD,IAAIv/D,GAAS+iE,GAEtB,IA3mCW,iBA4mCT,OAAO/iE,EAAOnB,MAAQkkE,EAAMlkE,MAAQmB,EAAOyW,SAAWssD,EAAMtsD,QAE9D,IArmCY,kBAsmCZ,IApmCY,kBAwmCV,OAAOzW,GAAW+iE,EAAQ,GAE5B,KAAKlI,EACH,IAAIgN,EAAU7L,EAEhB,KAAKlB,EACH,IAAIgN,EAroCiB,EAqoCLX,EAGhB,GAFAU,IAAYA,EAAU3L,GAElBl8D,EAAOi1B,MAAQ8tC,EAAM9tC,OAAS6yC,EAChC,OAAO,EAGT,IAAIlG,EAAUxrD,EAAMjX,IAAIa,GACxB,GAAI4hE,EACF,OAAOA,GAAWmB,EAEpBoE,GA/oCuB,EAkpCvB/wD,EAAMgd,IAAIpzB,EAAQ+iE,GAClB,IAAItrD,EAASmwD,GAAYC,EAAQ7nE,GAAS6nE,EAAQ9E,GAAQoE,EAASvH,EAAYwH,EAAWhxD,GAE1F,OADAA,EAAK,OAAWpW,GACTyX,EAET,IAhoCY,kBAioCV,GAAI0mD,GACF,OAAOA,GAAc1/D,KAAKuB,IAAWm+D,GAAc1/D,KAAKskE,GAG9D,OAAO,EA9NDgF,CAAW/nE,EAAQ+iE,EAAOwE,EAAQJ,EAASvH,EAAYwH,EAAWhxD,GAExE,KAj8ByB,EAi8BnB+wD,GAAiC,CACrC,IAAIa,EAAeP,GAAYtnE,EAAe1B,KAAKuB,EAAQ,eACvDioE,EAAeP,GAAYvnE,EAAe1B,KAAKskE,EAAO,eAE1D,GAAIiF,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAehoE,EAAOT,QAAUS,EAC/CmoE,EAAeF,EAAelF,EAAMxjE,QAAUwjE,EAGlD,OADA3sD,IAAUA,EAAQ,IAAIsoD,IACf0I,EAAUc,EAAcC,EAAchB,EAASvH,EAAYxpD,IAGtE,IAAKuxD,EACH,OAAO,EAGT,OADAvxD,IAAUA,EAAQ,IAAIsoD,IA6NxB,SAAsB1+D,EAAQ+iE,EAAOoE,EAASvH,EAAYwH,EAAWhxD,GACnE,IAAI0xD,EA9qCqB,EA8qCTX,EACZiB,EAAWjG,GAAWniE,GACtBqoE,EAAYD,EAAS7/D,OAErB+/D,EADWnG,GAAWY,GACDx6D,OAEzB,GAAI8/D,GAAaC,IAAcR,EAC7B,OAAO,EAET,IAAInlC,EAAQ0lC,EACZ,KAAO1lC,KAAS,CACd,IAAI9iC,EAAMuoE,EAASzlC,GACnB,KAAMmlC,EAAYjoE,KAAOkjE,EAAQ5iE,EAAe1B,KAAKskE,EAAOljE,IAC1D,OAAO,EAIX,IAAI+hE,EAAUxrD,EAAMjX,IAAIa,GACxB,GAAI4hE,GAAWxrD,EAAMjX,IAAI4jE,GACvB,OAAOnB,GAAWmB,EAEpB,IAAItrD,GAAS,EACbrB,EAAMgd,IAAIpzB,EAAQ+iE,GAClB3sD,EAAMgd,IAAI2vC,EAAO/iE,GAEjB,IAAIuoE,EAAWT,EACf,OAASnlC,EAAQ0lC,GAAW,CAC1BxoE,EAAMuoE,EAASzlC,GACf,IAAI28B,EAAWt/D,EAAOH,GAClB2oE,EAAWzF,EAAMljE,GAErB,GAAI+/D,EACF,IAAI6I,EAAWX,EACXlI,EAAW4I,EAAUlJ,EAAUz/D,EAAKkjE,EAAO/iE,EAAQoW,GACnDwpD,EAAWN,EAAUkJ,EAAU3oE,EAAKG,EAAQ+iE,EAAO3sD,GAGzD,UAAmB7D,IAAbk2D,EACGnJ,IAAakJ,GAAYpB,EAAU9H,EAAUkJ,EAAUrB,EAASvH,EAAYxpD,GAC7EqyD,GACD,CACLhxD,GAAS,EACT,MAEF8wD,IAAaA,EAAkB,eAAP1oE,GAE1B,GAAI4X,IAAW8wD,EAAU,CACvB,IAAIG,EAAU1oE,EAAOiI,YACjB0gE,EAAU5F,EAAM96D,YAGhBygE,GAAWC,KACV,gBAAiB3oE,MAAU,gBAAiB+iE,IACzB,mBAAX2F,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDlxD,GAAS,GAKb,OAFArB,EAAK,OAAWpW,GAChBoW,EAAK,OAAW2sD,GACTtrD,EAzRAmxD,CAAa5oE,EAAQ+iE,EAAOoE,EAASvH,EAAYwH,EAAWhxD,GA3D5DyyD,CAAgBtpE,EAAOwjE,EAAOoE,EAASvH,EAAYsH,GAAa9wD,IAsEzE,SAASksD,GAAa/iE,GACpB,SAAKsgE,GAAStgE,IAwahB,SAAkBqS,GAChB,QAAS4qD,GAAeA,KAAc5qD,EAzadk3D,CAASvpE,MAGnBgjE,GAAWhjE,GAASs9D,EAAa7B,GAChC92C,KAAK25C,GAASt+D,IAsB/B,SAAS4jE,GAASnjE,GAChB,GAyZI6gE,GADethE,EAxZFS,IAyZGT,EAAM0I,YACtBwS,EAAwB,mBAARomD,GAAsBA,EAAK3gE,WAAco8D,EAEtD/8D,IAAUkb,EA3Zf,OAAO8iD,EAAWv9D,GAuZtB,IAAqBT,EACfshE,EACApmD,EAvZAhD,EAAS,GACb,IAAK,IAAI5X,KAAOb,OAAOgB,GACjBG,EAAe1B,KAAKuB,EAAQH,IAAe,eAAPA,GACtC4X,EAAOvC,KAAKrV,GAGhB,OAAO4X,EAgBT,SAASmwD,GAAYhlC,EAAOmgC,EAAOoE,EAASvH,EAAYwH,EAAWhxD,GACjE,IAAI0xD,EAlhCqB,EAkhCTX,EACZ4B,EAAYnmC,EAAMr6B,OAClB+/D,EAAYvF,EAAMx6D,OAEtB,GAAIwgE,GAAaT,KAAeR,GAAaQ,EAAYS,GACvD,OAAO,EAGT,IAAInH,EAAUxrD,EAAMjX,IAAIyjC,GACxB,GAAIg/B,GAAWxrD,EAAMjX,IAAI4jE,GACvB,OAAOnB,GAAWmB,EAEpB,IAAIpgC,GAAS,EACTlrB,GAAS,EACTuxD,EA/hCuB,EA+hCf7B,EAAoC,IAAIV,QAAWl0D,EAM/D,IAJA6D,EAAMgd,IAAIwP,EAAOmgC,GACjB3sD,EAAMgd,IAAI2vC,EAAOngC,KAGRD,EAAQomC,GAAW,CAC1B,IAAIE,EAAWrmC,EAAMD,GACjB6lC,EAAWzF,EAAMpgC,GAErB,GAAIi9B,EACF,IAAI6I,EAAWX,EACXlI,EAAW4I,EAAUS,EAAUtmC,EAAOogC,EAAOngC,EAAOxsB,GACpDwpD,EAAWqJ,EAAUT,EAAU7lC,EAAOC,EAAOmgC,EAAO3sD,GAE1D,QAAiB7D,IAAbk2D,EAAwB,CAC1B,GAAIA,EACF,SAEFhxD,GAAS,EACT,MAGF,GAAIuxD,GACF,IAAK3C,EAAUtD,GAAO,SAASyF,EAAUU,GACnC,GA72BarpE,EA62BOqpE,GAANF,EA52BXjzC,IAAIl2B,KA62BFopE,IAAaT,GAAYpB,EAAU6B,EAAUT,EAAUrB,EAASvH,EAAYxpD,IAC/E,OAAO4yD,EAAK9zD,KAAKg0D,GA/2B/B,IAAyBrpE,KAi3BX,CACN4X,GAAS,EACT,YAEG,GACDwxD,IAAaT,IACXpB,EAAU6B,EAAUT,EAAUrB,EAASvH,EAAYxpD,GACpD,CACLqB,GAAS,EACT,OAKJ,OAFArB,EAAK,OAAWwsB,GAChBxsB,EAAK,OAAW2sD,GACTtrD,EAyKT,SAAS0qD,GAAWniE,GAClB,OApZF,SAAwBA,EAAQ8hE,EAAUC,GACxC,IAAItqD,EAASqqD,EAAS9hE,GACtB,OAAOqI,GAAQrI,GAAUyX,EAhuB3B,SAAmBmrB,EAAOxN,GAKxB,IAJA,IAAIuN,GAAS,EACTp6B,EAAS6sB,EAAO7sB,OAChBy5D,EAASp/B,EAAMr6B,SAEVo6B,EAAQp6B,GACfq6B,EAAMo/B,EAASr/B,GAASvN,EAAOuN,GAEjC,OAAOC,EAwtB2Bq/B,CAAUxqD,EAAQsqD,EAAY/hE,IAkZzDkiE,CAAeliE,EAAQuX,GAAMkpD,IAWtC,SAASiC,GAAWlrD,EAAK3X,GACvB,IAsHiBN,EACb0Z,EAvHAtN,EAAO6L,EAAImnD,SACf,OAuHgB,WADZ1lD,SADa1Z,EArHAM,KAuHmB,UAARoZ,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV1Z,EACU,OAAVA,GAxHDoM,EAAmB,iBAAP9L,EAAkB,SAAW,QACzC8L,EAAK6L,IAWX,SAASimD,GAAUz9D,EAAQH,GACzB,IAAIN,EAxjCN,SAAkBS,EAAQH,GACxB,OAAiB,MAAVG,OAAiBuS,EAAYvS,EAAOH,GAujC/B8iE,CAAS3iE,EAAQH,GAC7B,OAAOyiE,GAAa/iE,GAASA,OAAQgT,EAp2BvC8rD,GAAKn+D,UAAU2nD,MAvEf,WACE71C,KAAK2sD,SAAWhB,EAAeA,EAAa,MAAQ,GACpD3rD,KAAKijB,KAAO,GAsEdopC,GAAKn+D,UAAL,OAzDA,SAAoBL,GAClB,IAAI4X,EAASzF,KAAK+jB,IAAIl2B,WAAemS,KAAK2sD,SAAS9+D,GAEnD,OADAmS,KAAKijB,MAAQxd,EAAS,EAAI,EACnBA,GAuDT4mD,GAAKn+D,UAAUf,IA3Cf,SAAiBU,GACf,IAAI8L,EAAOqG,KAAK2sD,SAChB,GAAIhB,EAAc,CAChB,IAAIlmD,EAAS9L,EAAK9L,GAClB,MA3YiB,8BA2YV4X,OAA4BlF,EAAYkF,EAEjD,OAAOtX,EAAe1B,KAAKkN,EAAM9L,GAAO8L,EAAK9L,QAAO0S,GAsCtD8rD,GAAKn+D,UAAU61B,IA1Bf,SAAiBl2B,GACf,IAAI8L,EAAOqG,KAAK2sD,SAChB,OAAOhB,OAA8BprD,IAAd5G,EAAK9L,GAAsBM,EAAe1B,KAAKkN,EAAM9L,IAyB9Ew+D,GAAKn+D,UAAUkzB,IAZf,SAAiBvzB,EAAKN,GACpB,IAAIoM,EAAOqG,KAAK2sD,SAGhB,OAFA3sD,KAAKijB,MAAQjjB,KAAK+jB,IAAIl2B,GAAO,EAAI,EACjC8L,EAAK9L,GAAQ89D,QAA0BprD,IAAVhT,EA3aV,4BA2akDA,EAC9DyS,MAuHTwsD,GAAUt+D,UAAU2nD,MApFpB,WACE71C,KAAK2sD,SAAW,GAChB3sD,KAAKijB,KAAO,GAmFdupC,GAAUt+D,UAAV,OAvEA,SAAyBL,GACvB,IAAI8L,EAAOqG,KAAK2sD,SACZh8B,EAAQ68B,GAAa7zD,EAAM9L,GAE/B,QAAI8iC,EAAQ,KAIRA,GADYh3B,EAAKpD,OAAS,EAE5BoD,EAAK+W,MAELzM,EAAOxX,KAAKkN,EAAMg3B,EAAO,KAEzB3wB,KAAKijB,MACA,IA0DTupC,GAAUt+D,UAAUf,IA9CpB,SAAsBU,GACpB,IAAI8L,EAAOqG,KAAK2sD,SACZh8B,EAAQ68B,GAAa7zD,EAAM9L,GAE/B,OAAO8iC,EAAQ,OAAIpwB,EAAY5G,EAAKg3B,GAAO,IA2C7C67B,GAAUt+D,UAAU61B,IA/BpB,SAAsBl2B,GACpB,OAAO2/D,GAAaxtD,KAAK2sD,SAAU9+D,IAAQ,GA+B7C2+D,GAAUt+D,UAAUkzB,IAlBpB,SAAsBvzB,EAAKN,GACzB,IAAIoM,EAAOqG,KAAK2sD,SACZh8B,EAAQ68B,GAAa7zD,EAAM9L,GAQ/B,OANI8iC,EAAQ,KACR3wB,KAAKijB,KACPtpB,EAAKuJ,KAAK,CAACrV,EAAKN,KAEhBoM,EAAKg3B,GAAO,GAAKpjC,EAEZyS,MAyGTysD,GAASv+D,UAAU2nD,MAtEnB,WACE71C,KAAKijB,KAAO,EACZjjB,KAAK2sD,SAAW,CACd,KAAQ,IAAIN,GACZ,IAAO,IAAK9sC,GAAOitC,IACnB,OAAU,IAAIH,KAkElBI,GAASv+D,UAAT,OArDA,SAAwBL,GACtB,IAAI4X,EAASirD,GAAW1wD,KAAMnS,GAAjB,OAAgCA,GAE7C,OADAmS,KAAKijB,MAAQxd,EAAS,EAAI,EACnBA,GAmDTgnD,GAASv+D,UAAUf,IAvCnB,SAAqBU,GACnB,OAAO6iE,GAAW1wD,KAAMnS,GAAKV,IAAIU,IAuCnC4+D,GAASv+D,UAAU61B,IA3BnB,SAAqBl2B,GACnB,OAAO6iE,GAAW1wD,KAAMnS,GAAKk2B,IAAIl2B,IA2BnC4+D,GAASv+D,UAAUkzB,IAdnB,SAAqBvzB,EAAKN,GACxB,IAAIoM,EAAO+2D,GAAW1wD,KAAMnS,GACxBo1B,EAAOtpB,EAAKspB,KAIhB,OAFAtpB,EAAKynB,IAAIvzB,EAAKN,GACdyS,KAAKijB,MAAQtpB,EAAKspB,MAAQA,EAAO,EAAI,EAC9BjjB,MAyDTy0D,GAASvmE,UAAUqyB,IAAMk0C,GAASvmE,UAAUgV,KAnB5C,SAAqB3V,GAEnB,OADAyS,KAAK2sD,SAASvrC,IAAI7zB,EA3qBC,6BA4qBZyS,MAkBTy0D,GAASvmE,UAAU61B,IANnB,SAAqBx2B,GACnB,OAAOyS,KAAK2sD,SAAS5oC,IAAIx2B,IAqG3Bm/D,GAAMx+D,UAAU2nD,MA3EhB,WACE71C,KAAK2sD,SAAW,IAAIH,GACpBxsD,KAAKijB,KAAO,GA0EdypC,GAAMx+D,UAAN,OA9DA,SAAqBL,GACnB,IAAI8L,EAAOqG,KAAK2sD,SACZlnD,EAAS9L,EAAI,OAAW9L,GAG5B,OADAmS,KAAKijB,KAAOtpB,EAAKspB,KACVxd,GA0DTinD,GAAMx+D,UAAUf,IA9ChB,SAAkBU,GAChB,OAAOmS,KAAK2sD,SAASx/D,IAAIU,IA8C3B6+D,GAAMx+D,UAAU61B,IAlChB,SAAkBl2B,GAChB,OAAOmS,KAAK2sD,SAAS5oC,IAAIl2B,IAkC3B6+D,GAAMx+D,UAAUkzB,IArBhB,SAAkBvzB,EAAKN,GACrB,IAAIoM,EAAOqG,KAAK2sD,SAChB,GAAIhzD,aAAgB6yD,GAAW,CAC7B,IAAIqE,EAAQl3D,EAAKgzD,SACjB,IAAKptC,GAAQsxC,EAAMt6D,OAASu6D,IAG1B,OAFAD,EAAM3tD,KAAK,CAACrV,EAAKN,IACjByS,KAAKijB,OAAStpB,EAAKspB,KACZjjB,KAETrG,EAAOqG,KAAK2sD,SAAW,IAAIF,GAASoE,GAItC,OAFAl3D,EAAKynB,IAAIvzB,EAAKN,GACdyS,KAAKijB,KAAOtpB,EAAKspB,KACVjjB,MA+hBT,IAAIyuD,GAAcrD,EAA+B,SAASp9D,GACxD,OAAc,MAAVA,EACK,IAETA,EAAShB,OAAOgB,GA9sClB,SAAqB4iC,EAAO0jC,GAM1B,IALA,IAAI3jC,GAAS,EACTp6B,EAAkB,MAATq6B,EAAgB,EAAIA,EAAMr6B,OACnC4gE,EAAW,EACX1xD,EAAS,KAEJkrB,EAAQp6B,GAAQ,CACvB,IAAIhJ,EAAQqjC,EAAMD,GACd2jC,EAAU/mE,EAAOojC,EAAOC,KAC1BnrB,EAAO0xD,KAAc5pE,GAGzB,OAAOkY,EAmsCA2xD,CAAYhM,EAAiBp9D,IAAS,SAAS0hE,GACpD,OAAOvE,EAAqB1+D,KAAKuB,EAAQ0hE,QAsd7C,WACE,MAAO,IA5cLxB,GAAS2G,GAkCb,SAASzH,GAAQ7/D,EAAOgJ,GAEtB,SADAA,EAAmB,MAAVA,EAt2CY,iBAs2CwBA,KAE1B,iBAAThJ,GAAqB07D,EAAS/2C,KAAK3kB,KAC1CA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQgJ,EA4D7C,SAASs1D,GAASjsD,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO+qD,EAAal+D,KAAKmT,GACzB,MAAOvG,IACT,IACE,OAAQuG,EAAO,GACf,MAAOvG,KAEX,MAAO,GAmCT,SAASk0D,GAAGhgE,EAAOwjE,GACjB,OAAOxjE,IAAUwjE,GAAUxjE,GAAUA,GAASwjE,GAAUA,GA5IrDvF,GA7yCa,qBA6yCD0C,GAAO,IAAI1C,EAAS,IAAIwF,YAAY,MAChDzxC,GAAO2uC,GAAO,IAAI3uC,IAAQspC,GAC1B7rB,GAzzCY,oBAyzCDkxB,GAAOlxB,EAAQC,YAC1Bnc,GAAOotC,GAAO,IAAIptC,IAAQgoC,GAC1B4C,GApzCY,oBAozCDwC,GAAO,IAAIxC,MACzBwC,GAAS,SAAS3gE,GAChB,IAAIkY,EAASovD,GAAWtnE,GACpBshE,EAAOppD,GAAUouD,EAAYtmE,EAAM0I,iBAAcsK,EACjD0wD,EAAapC,EAAOhD,GAASgD,GAAQ,GAEzC,GAAIoC,EACF,OAAQA,GACN,KAAKrF,EAAoB,MAzzCf,oBA0zCV,KAAKE,EAAe,OAAOjD,EAC3B,KAAKkD,EAAmB,MAr0Cf,mBAs0CT,KAAKC,EAAe,OAAOlD,EAC3B,KAAKmD,EAAmB,MAh0Cf,mBAm0Cb,OAAOxmD,IA8IX,IAAIwnD,GAAcgI,GAAgB,WAAa,OAAO9zD,UAApB,IAAsC8zD,GAAkB,SAAS1nE,GACjG,OAAOu/D,GAAav/D,IAAUY,EAAe1B,KAAKc,EAAO,YACtD49D,EAAqB1+D,KAAKc,EAAO,WA0BlC8I,GAAUD,MAAMC,QAgDpB,IAAIi1D,GAAWD,GA4Of,WACE,OAAO,GA1LT,SAASkF,GAAWhjE,GAClB,IAAKsgE,GAAStgE,GACZ,OAAO,EAIT,IAAI6P,EAAMy3D,GAAWtnE,GACrB,MApmDY,qBAomDL6P,GAnmDI,8BAmmDcA,GAxmDZ,0BAwmD6BA,GA7lD7B,kBA6lDgDA,EA6B/D,SAAS8zD,GAAS3jE,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA5oDb,iBAwqDvB,SAASsgE,GAAStgE,GAChB,IAAI0Z,SAAc1Z,EAClB,OAAgB,MAATA,IAA0B,UAAR0Z,GAA4B,YAARA,GA2B/C,SAAS6lD,GAAav/D,GACpB,OAAgB,MAATA,GAAiC,iBAATA,EAoBjC,IAAI6mE,GAAeD,EAhiDnB,SAAmBv0D,GACjB,OAAO,SAASrS,GACd,OAAOqS,EAAKrS,IA8hDsB8pE,CAAUlD,GAnvBhD,SAA0B5mE,GACxB,OAAOu/D,GAAav/D,IAClB2jE,GAAS3jE,EAAMgJ,WAAau9D,EAAee,GAAWtnE,KA+wB1D,SAASgY,GAAKvX,GACZ,OA1NgB,OADGT,EA2NAS,IA1NKkjE,GAAS3jE,EAAMgJ,UAAYg6D,GAAWhjE,GA0NjCq/D,GAAc5+D,GAAUmjE,GAASnjE,GA3NhE,IAAqBT,EAqQrBxB,EAAOD,QAlNP,SAAiByB,EAAOwjE,GACtB,OAAOmE,GAAY3nE,EAAOwjE,M,sbCjmD5B,MAAM9yC,EAASb,EAAQ,GAAqBW,UAAUM,GAEtD,IAAIi5C,EAAc,KAKlB,MAAMC,EAAiB,CAQnB75B,aAAc,KASd9yB,KAAKzD,EAAU,GAAI0e,GACf7lB,KAAKmH,QAAUA,EACfmwD,EAAczxC,EAEd7lB,KAAK09B,aAAe19B,KAAKw3D,4BAEpBx3D,KAAK09B,cACNzf,EAAO/Y,KAAK,6BAWpBsyD,4BACI,OAAI13C,IAAQs1B,SACD,CAAClD,EAAG3+B,EAAWU,KAClB/nB,OAAOurE,YAAYC,oBACfnkD,EACA,CAACvO,EAAO+gB,KACJ,IAAI4xC,EAmBAA,EADA3yD,GAAwB,sBAAfA,EAAMnY,KACF,IAAI+4B,IACbipB,+BAGS,IAAIjpB,IACb5gB,EAAO+gB,EAAa,CAAE,YAER,mBAAd9R,GACDA,EAAU0jD,MAGtB73C,IAAQgY,aACR93B,KAAK43D,uBACL93C,IAAQ+3C,0BACR73D,KAAK83D,iCAEhB75C,EAAOrZ,IAAI,mCAAoCkb,IAAQm1B,WAEhD,OAQXzX,cACI,OAA6B,OAAtBx9B,KAAK09B,cAahBk6B,uBAAuBzwD,EAAU,GAAIoM,EAAWU,GAC5C,GAAI/nB,OAAO6rE,yBACJ7rE,OAAO6rE,wBAAwBC,kBAAmB,CACrD,MAAM,sBAAEz4B,EAAF,WAAyBC,GAAer4B,EAE9Cjb,OAAO6rE,wBAAwBC,kBAC3B,CACIz4B,sBAAuBA,GAAyB,CAAE,SAAU,WAEhE,CAACiJ,EAAUyvB,EAAYlgC,GAAmB,IA0G1D,SACQ5wB,EAAU,CACNwL,SAAU,GACV6sB,WAAY,IAEhBjsB,EACAU,GACJ,MAAM,SAAEu0B,EAAF,WAAYyvB,EAAZ,iBAAwBlgC,EAAxB,MAA0C/yB,GAAUmC,EAAQwL,UAAY,GAE9E,GAAI61B,EAAU,CACV,MAAMhJ,E,+VAAa,CAAH,CACZxH,cAAewQ,EACfzQ,oBACG5wB,EAAQq4B,YAGf83B,EAAY,CAAE,WAAa93B,GACtB9E,KAAKnZ,GAAUhO,EAAU,CACtBgO,SACAqU,SAAU4S,EACVnK,WAAY45B,IACZhkD,OACL,CAIH,GAAiB,KAAbu0B,EAIA,YAHAv0B,EAAU,IAAI2R,IACVipB,gCAKR56B,EAAU,IAAI2R,IACVipB,8BACA7pC,KA5IQkzD,CACI,CACIvlD,SAAU,CACN61B,WACAyvB,aACAlgC,oBAEJyH,cAEJjsB,EACAU,GAER9D,GAAO8D,EAAU,IAAI2R,IACjBipB,gCACA1+B,UAIR8D,EAAU,IAAI2R,IACVipB,uCAUZipB,gCAAgC3wD,EAASqE,EAAU2sD,GAG/C,IAAIC,EAFJn6C,EAAO/Y,KAAK,4CAKRkzD,EADA59B,UAAU49B,gBACQ59B,UAAU49B,gBAAgBtqE,KAAK0sC,WAG/BA,UAAUC,aAAa29B,gBAAgBtqE,KAAK0sC,UAAUC,cAG5E29B,EAAgB,CACZnkC,OAAO,EACPoB,OAAO,EACPgjC,OAAQ,WAEP39B,KAAKnZ,IACF,IAAI+2C,EAEJ,GAAI/2C,GACGA,EAAOue,aACPve,EAAOue,YAAYvpC,OAAS,EAAG,CAClC,MAAMgiE,EAAah3C,EAAOuX,iBAAiB,GAGvCy/B,IACAD,EAA0BC,EAAWx4B,iBAAiB54B,EAAQs4B,oBAGlE64B,EAA0Bt7B,QAAQC,UAGtCq7B,EAAwB59B,KAAK,IACzBlvB,EAAS,CACL+V,SACAqU,SAAUrU,EAAOra,QAG5Bk2B,MAAMp4B,IACH,MAAMwzD,EAAe,CACjBC,UAAWzzD,GAASA,EAAMnY,KAC1B6rE,SAAU1zD,GAASA,EAAMP,QACzBk0D,WAAY3zD,GAASA,EAAMZ,OAG/B6Z,EAAOjZ,MAAM,wBAAyBwzD,GAElCA,EAAaE,WAAmE,IAAvDF,EAAaE,SAAS90D,QAAQ,oBAGvDu0D,EAAc,IAAIvyC,IAAgBipB,sBAKtCspB,EAAc,IAAIvyC,IAAgBipB,oCA2DnC0oB,Q,4DC1Qf,MAAMqB,EAAyBx7C,EAAQ,KAQjC4C,EAAa,CAgBfC,WACQqb,EACAn5B,EACAmqC,EACAusB,EACAC,EACAX,GACJ,MAAMvrE,EAAIyO,SAEJ09D,EAASnsE,EAAEiU,cADD,UAEVm4D,EAAgBpsE,EAAEkkB,qBAFR,UAEsC,GAItD,GAFAioD,EAAO52D,MAAQA,EAEX02D,EAAa,CAGb,MAAMI,EAAWL,IAEjB,GAAIK,EAAU,CACV,MAAMC,EAAYD,EAAS39B,IACrB69B,EACAD,EAAU/rC,UAAU,EAAG+rC,EAAUE,YAAY,KAAO,GAEtDF,GAAaC,IAEb79B,EAAM69B,EAAgB79B,IAK9Bw9B,IACAC,EAAOM,OAASP,GAEhBX,IACAY,EAAOr9C,QAAUy8C,GAGrBY,EAAOz9B,IAAMA,EACTgR,EACA0sB,EAAc5yD,WAAWkzD,aAAaP,EAAQC,GAE9CA,EAAc5yD,WAAWxF,YAAYm4D,KAOjDhtE,EAAOD,QAAUk0B,G,22BC9DjB,MAAM/B,EAASF,oBAAUM,GAsCZk7C,EAA8B,CAIvC5V,OAAQ,SAQR6V,SAAU,WAKVC,YAAa,cAKbC,UAAW,aAOA,MAAMC,EAwBjB,8BACQC,EACA10B,EACA20B,EACAC,EACAC,GACJ,OAAKH,EAKME,EAIAP,EAA4B5V,OAInC7jC,IAAQk6C,qCACHD,EAGM70B,EACA20B,EACDN,EAA4BE,YAC5BF,EAA4BG,UAG/BH,EAA4BC,SAPxBD,EAA4B5V,OAYpCze,EACDq0B,EAA4B5V,OAC5B4V,EAA4BC,SA1BvBD,EAA4BE,YAyC3C,8BAA8BK,EAAcC,GACxC,OAAKj6C,IAAQk6C,qCAMNF,IAAiBC,EAClBR,EAA4B5V,OAC5B4V,EAA4BE,YALvBF,EAA4B5V,OAoB3C1tD,YAAYgkE,EAAK13C,EAAYpb,GACzBnH,KAAKi6D,IAAMA,EACXj6D,KAAKuiB,WAAaA,EAQlBviB,KAAKk6D,YAAc,GAQnBl6D,KAAKm6D,kBAAoB,GAazBn6D,KAAKo6D,kBACsC,iBAA9BjzD,EAAQizD,kBACXjzD,EAAQizD,kBA/LY,IAyM9Bp6D,KAAKq6D,eACmC,iBAA3BlzD,EAAQkzD,eACXlzD,EAAQkzD,eAnMO,IA0NzBr6D,KAAKs6D,kBAAoB,GACzBr8C,EAAO/Y,KAAM,0BAAyBlF,KAAKq6D,gBAY3Cr6D,KAAKu6D,sBAAwB,IAAIh7C,IASjCvf,KAAKw6D,gBAAkB,IAAIj7C,IAQ3Bvf,KAAKy6D,oBAAsB,IAAIl7C,IAUnCm7C,uBAAuBxzD,GACnB,OAAOlH,KAAKi6D,IAAI/0B,UAAUh+B,GACpBlH,KAAKq6D,eAAiBr6D,KAAKo6D,kBAOrCxvD,OAEI5K,KAAK26D,6BACC36D,KAAK46D,4BAA4B9sE,KAAKkS,MAE5CA,KAAKi6D,IAAIr2B,YACL5K,IAAUnR,6BACV7nB,KAAK26D,8BAGT36D,KAAK66D,aAAe76D,KAAK86D,8BAA8BhtE,KAAKkS,MAC5DA,KAAKuiB,WAAWZ,GAAGgB,aAAkC3iB,KAAK66D,cAG1D76D,KAAK+6D,YAAc/6D,KAAKg7D,WAAWltE,KAAKkS,MACxCA,KAAKuiB,WAAWZ,GAAGgB,YAAiC3iB,KAAK+6D,aAKrDj7C,IAAQk6C,uCAERh6D,KAAKi7D,iBAAmBj7D,KAAKk7D,gBAAgBptE,KAAKkS,MAClDA,KAAKi6D,IAAIr2B,YACL5K,IAAU1Q,kBAAmBtoB,KAAKi7D,kBAEtCj7D,KAAKm7D,mBAAqBn7D,KAAKo7D,kBAAkBttE,KAAKkS,MACtDA,KAAKi6D,IAAIr2B,YACL5K,IAAUxQ,oBAAqBxoB,KAAKm7D,oBAIxCn7D,KAAKq7D,oBAAsBr7D,KAAKs7D,mBAAmBxtE,KAAKkS,MACxDA,KAAKuiB,WAAWZ,GACZgB,cACA3iB,KAAKq7D,qBAETr7D,KAAKu7D,sBAAwBv7D,KAAKw7D,qBAAqB1tE,KAAKkS,MAC5DA,KAAKuiB,WAAWZ,GACZgB,gBACA3iB,KAAKu7D,uBAITv7D,KAAKy7D,yBACCz7D,KAAK07D,wBAAwB5tE,KAAKkS,MAGxCA,KAAK27D,yBACC37D,KAAK47D,wBAAwB9tE,KAAKkS,OAG5CA,KAAKyjC,gBAAkBzjC,KAAKyjC,gBAAgB31C,KAAKkS,MACjDA,KAAKuiB,WAAWZ,GACZgB,2BACA3iB,KAAKyjC,iBAETzjC,KAAK67D,qBACC77D,KAAK86D,8BAA8BhtE,KAAKkS,MAC9CA,KAAKi6D,IAAIt4C,GACLqX,IAAU/Q,oBAAqBjoB,KAAK67D,sBAO5C74C,UAEIhjB,KAAKi6D,IAAIn4C,eACLkX,IAAUnR,6BACV7nB,KAAK26D,8BAEL76C,IAAQk6C,uCACRh6D,KAAKi6D,IAAIn4C,eACLkX,IAAU1Q,kBACVtoB,KAAKi7D,kBACTj7D,KAAKi6D,IAAIn4C,eACLkX,IAAUxQ,oBACVxoB,KAAKm7D,oBAETn7D,KAAKuiB,WAAWksB,IACZ9rB,cACA3iB,KAAKq7D,qBACTr7D,KAAKuiB,WAAWksB,IACZ9rB,gBACA3iB,KAAKu7D,wBAGbv7D,KAAKuiB,WAAWksB,IACZ9rB,2BACA3iB,KAAKyjC,iBAETzjC,KAAKi6D,IAAIn4C,eACLkX,IAAU/Q,oBAAqBjoB,KAAK67D,sBAExC77D,KAAKuiB,WAAWksB,IACZ9rB,aAAkC3iB,KAAK66D,cAE3C76D,KAAKuiB,WAAWksB,IACZ9rB,YAAiC3iB,KAAK+6D,aAE1C,MAAMe,EAAiB9uE,OAAOuY,KAAKvF,KAAKk6D,aAExC,IAAK,MAAM/uC,KAAiB2wC,EACxB97D,KAAKyN,aAAa0d,GAClBnrB,KAAK+7D,uBAAuB5wC,GAGhC,IAAK,MAAMjkB,KAAMlH,KAAKy6D,oBACdz6D,KAAKy6D,oBAAoBtsE,eAAe+Y,IACxClH,KAAKg7D,WAAW9zD,GAKxBlH,KAAKm6D,kBAAoB,GAU7BS,4BAA4BoB,EAAYC,GAEpCh+C,EAAOhZ,MACF,mDAAkDkD,KAAKgM,WACpD6nD,MAAeC,KAGnBD,IAAeh8D,KAAKuiB,WAAW25C,aAE/Bl8D,KAAKm6D,kBAAkB6B,GAAcC,EACrCj8D,KAAKm8D,0BAA0BH,IASvCI,wBAAwBC,EAAaC,GACjC,GAAID,EAAYE,wBAA0BD,EAAW,CAEjD,MAAMN,EAAaK,EAAYG,QAE/BH,EAAYI,qBAAqBH,GAEjCr+C,EAAOhZ,MACF,6BAA4BkD,KAAKgM,UAAU6nD,MACxCM,KAGRl9C,IAAWkH,QACP1Z,KAAKwL,UAAU,CACXlR,GAAI,mBACJm1D,YAAaL,EACbjsD,OAAQusD,KAIhBt8D,KAAKuiB,WAAW/C,aAAa0D,KACzBP,kCACAq5C,EAAYM,IAWxB7uD,aAAa0d,GACLnrB,KAAKk6D,YAAY/uC,KACjBj/B,OAAOuhB,aAAazN,KAAKk6D,YAAY/uC,IACrCnrB,KAAKk6D,YAAY/uC,GAAiB,MAU1C4wC,uBAAuB5wC,GACnBnrB,KAAKs6D,kBAAkBnvC,GAAiB,KAU5CmwC,mBAAmBoB,GACVA,EAAYn3C,WACNm3C,EAAYp1B,YAAc/I,MAEjCtgB,EAAOhZ,MACF,uCACGy3D,EAAYC,oBAEpBD,EAAY/6C,GACRi7C,qBACA58D,KAAKy7D,0BACTiB,EAAY/6C,GACRi7C,0BACAp+B,GAAax+B,KAAK27D,yBAAyBe,EAAal+B,KAWpEg9B,qBAAqBkB,GACjB,IAAKA,EAAYn3C,WACNm3C,EAAYp1B,YAAc/I,IAAiB,CAElD,MAAMy9B,EAAaU,EAAYC,mBAE/B1+C,EAAOhZ,MAAO,qCAAoC+2D,GAElDU,EAAYjuB,IACRmuB,qBACA58D,KAAKy7D,0BAETz7D,KAAKyN,aAAauuD,GAClBh8D,KAAK+7D,uBAAuBC,GAE5Bh8D,KAAKm8D,0BAA0BH,IAiBvCjC,mBAAmBsC,GACf,IAAKv8C,IAAQk6C,qCACT,OAAO,EAGX,MAAM9yD,EAAKm1D,EAAYG,QACjBK,EAAsBR,EAAYS,8BAClCxC,EAAoBt6D,KAAKs6D,kBAAkBpzD,GAC3C0G,EAAU5N,KAAK06D,uBAAuBxzD,GAE5C,OAAO21D,GAC6B,iBAAtBvC,GACNnyD,KAAKgM,MAAQmmD,GAAsB1sD,EAQ/CktD,gCACI,MAAMiC,EAAe/8D,KAAKuiB,WAAWy6C,kBAErC,IAAK,MAAMX,KAAeU,EACtB/8D,KAAKm8D,0BAA0BE,EAAYG,SAUnDL,0BAA0Bj1D,GACtB,MAAMm1D,EAAcr8D,KAAKuiB,WAAW06C,mBAAmB/1D,GAEvD,IAAKm1D,EAQD,YAFAp+C,EAAOhZ,MAAO,gDAA+CiC,GAKjE,MAAMg2D,EAAYl9D,KAAKuiB,WAAW46C,cAC5BC,EAAsBp9D,KAAKq9D,qBAAqBn2D,GAChDo2D,EAAwC,IAAxBt9D,KAAKi6D,IAAInzB,WAIzBgzB,EAAeuC,EAAYvC,gBAAkBwD,EAC7CvD,EAAqB/5D,KAAK+5D,mBAAmBsC,GAC7Cn3B,EAAYllC,KAAKi6D,IAAI/0B,UAAUh+B,GACrC,IAAIq2D,EAAoBv9D,KAAKm6D,kBAAkBjzD,GAEd,kBAAtBq2D,IAGPt/C,EAAOhZ,MAAM,uDACbs4D,GAAoB,GAGxB,MAAMC,EACAN,EACIvD,EAAmC8D,uBACjC3D,EACAC,GACFJ,EAAmC+D,uBACjCH,EACAr4B,EACAk4B,EACAtD,EACAC,GAIRyD,IAAajE,EAA4BG,WACzC15D,KAAK29D,qBAAqBz2D,GAG9B+W,EAAOhZ,MACF,8BAA6BiC,sBAC1B4yD,qBACAyD,yBACAxD,eACAmD,mBACAh4B,iCACAm3B,EAAYE,4BAA4BiB,KAEhD,MAAMI,EAAsB59D,KAAKy6D,oBAAoBvzD,IAAO,GAI5D,KAAM,QAAS02D,MACN,qBAAsBA,IACxBA,EAAoBzf,MAAQ+e,GAC5BU,EAAoBC,mBAAqBL,EAAU,CAEtD,MAAMM,EAAQ31D,KAAKgM,MAanB,GAXAnU,KAAK+9D,0CAA0C72D,EAAI42D,GAEnD99D,KAAKy6D,oBAAoBvzD,GAAzB,OACO02D,GADP,IAEIC,iBAAkBL,EAClBrf,IAAK+e,EACLc,UAAWF,MAKT,cAAe99D,KAAKy6D,oBAAoBvzD,IAAM,CAChD,MAAM20B,EAAcwgC,EAAY4B,qBAAqB1/B,KAEjDnoC,MAAMC,QAAQwlC,IAAuC,IAAvBA,EAAYtlC,SAC1CyJ,KAAKy6D,oBAAoBvzD,GAAIs3B,UAAY3C,EAAY,GAAG2C,YAIpEx+B,KAAKo8D,wBAAwBC,EAAamB,GAU9CO,0CAA0C72D,EAAI42D,GAC1C,MAAMI,EAA8Bl+D,KAAKy6D,oBAAoBvzD,GAEzDg3D,GACG,cAAeA,GACf,cAAeA,GACf,qBAAsBA,GACtB,QAASA,IACZA,EAA4B3wE,MAAQuwE,EAAQI,EAA4BF,UACxE5+C,IAAWoI,cACPgE,YAAuC0yC,KAYnDz6B,gBAAgB06B,EAAe,GAAIC,EAAgB,IAC/C,MAAMjqD,EAAMhM,KAAKgM,MAEjB8J,EAAOhZ,MACH,yBAA0Bk5D,EAAcC,EAAejqD,GAE3D,IAAK,MAAMjN,KAAMi3D,EACbn+D,KAAKu6D,sBAAsB72C,OAAOxc,GAClClH,KAAK29D,qBAAqBz2D,GAC1BlH,KAAKm8D,0BAA0Bj1D,GAEnC,IAAK,MAAMA,KAAMk3D,EAEbp+D,KAAKu6D,sBAAsBn5C,IAAIla,EAAIiN,GACnCnU,KAAKm8D,0BAA0Bj1D,GAYvCy2D,qBAAqBxyC,GACjB,MAAMkzC,EAASr+D,KAAKw6D,gBAAgBrtE,IAAIg+B,GAEpCkzC,IACA5wD,aAAa4wD,GACbr+D,KAAKw6D,gBAAgB92C,OAAOyH,IAkBpCkyC,qBAAqBlyC,GACjB,MAAMovC,EACAv6D,KAAKu6D,sBAAsBptE,IAAIg+B,GAErC,GAAIovC,GACIpyD,KAAKgM,MAAQomD,GAptBK,IAstBtB,OAAO,EAcX,OARev6D,KAAKw6D,gBAAgBrtE,IAAIg+B,IAGpCnrB,KAAKw6D,gBAAgBp5C,IAAI+J,EAAe5gB,WACpC,IAAMvK,KAAKm8D,0BAA0BhxC,GAhuBnB,OAouBnB,EAQX6vC,WAAW9zD,GACPlH,KAAK+9D,0CAA0C72D,EAAIiB,KAAKgM,cACjDnU,KAAKy6D,oBAAoBvzD,GASpCg0D,gBAAgB58B,GACZ,MAAMnT,EAAgBmT,EAAMq+B,mBACtBN,EAAcr8D,KAAKuiB,WAAW06C,mBAAmB9xC,GAGvD,GADAlN,EAAOhZ,MAAO,6BAA4BkmB,EAAiBhjB,KAAKgM,OAC3DkoD,GAML,GADAr8D,KAAKs6D,kBAAkBnvC,GAAiBhjB,KAAKgM,OACxCkoD,EAAYvC,eAAgB,CAI7B95D,KAAKyN,aAAa0d,GAGlB,MAAMvd,EAAU5N,KAAK06D,uBAAuBvvC,GAE5CnrB,KAAKk6D,YAAY/uC,GAAiBj/B,OAAOqe,WAAW,KAChD0T,EAAOhZ,MACF,6BAA4BkmB,4BACvBvd,QACV5N,KAAKyN,aAAa0d,GAClBnrB,KAAKm8D,0BAA0BhxC,IAChCvd,SApBHqQ,EAAOjZ,MAAO,0BAAyBmmB,GA8B/CiwC,kBAAkB98B,GACd,MAAMnT,EAAgBmT,EAAMq+B,mBAE5B1+C,EAAOhZ,MACF,+BAA8BkmB,EAAiBhjB,KAAKgM,OAEzDnU,KAAKyN,aAAa0d,GAClBnrB,KAAK+7D,uBAAuB5wC,GAE5BnrB,KAAKm8D,0BAA0BhxC,GASnCuwC,wBAAwBp9B,GACpB,MAAMnT,EAAgBmT,EAAMq+B,mBAE5B1+C,EAAOhZ,MACF,8CAA6CkmB,EAC9CmT,EAAMggC,WAEVt+D,KAAKm8D,0BAA0BhxC,GAUnCywC,wBAAwBt9B,EAAOr3B,GAC3B,MAAMC,EAAKo3B,EAAMq+B,mBACXmB,EAAQ31D,KAAKgM,MAEnBnU,KAAK+9D,0CAA0C72D,EAAI42D,GAEnD99D,KAAKy6D,oBAAoBvzD,GAAzB,OACOlH,KAAKy6D,oBAAoBvzD,IAAO,IADvC,IAEIs3B,UAAWv3B,EACX+2D,UAAWF,Q,gGC52BvB,iEAIO,MAAMS,EAAqB,uBAE5BtgD,EAASF,oBAAUM,GASlB,MAAMmgD,UAAoBpkC,IAI7BnkC,cACIokC,QACAr6B,KAAKy+D,SAAW,CACZC,UAAU,GAQlBC,mBAAkB,SAAED,IAChBzgD,EAAOhZ,MAAM,oBAAqB,CAAEy5D,aACpC1+D,KAAKy+D,SAAW,CACZC,UAAuB,IAAbA,GAEd1+D,KAAKwf,aAAa0D,KAAKq7C,EAAoBv+D,KAAKy+D,UAUpDC,WACI,OAAkC,IAA3B1+D,KAAKy+D,SAASC,UAI7B,MAAME,EAAc,IAAIJ,EAETI,Q,+EChDf,IAAIC,EAAW,CAIfA,mBAA8B,WAC5B,OAAOzzD,KAAKC,SAAS3U,SAAS,IAAI0e,OAAO,EAAG,MAI9CypD,EAASC,WAAaD,EAASE,qBAG/BF,EAASG,WAAa,SAASC,GAC7B,OAAOA,EAAKpgB,OAAO97C,MAAM,MAAMyC,KAAI,SAAShB,GAC1C,OAAOA,EAAKq6C,WAIhBggB,EAASK,cAAgB,SAASD,GAEhC,OADYA,EAAKl8D,MAAM,QACVyC,KAAI,SAAS25D,EAAMxuC,GAC9B,OAAQA,EAAQ,EAAI,KAAOwuC,EAAOA,GAAMtgB,OAAS,WAKrDggB,EAASO,eAAiB,SAASH,GACjC,IAAII,EAAWR,EAASK,cAAcD,GACtC,OAAOI,GAAYA,EAAS,IAI9BR,EAASS,iBAAmB,SAASL,GACnC,IAAII,EAAWR,EAASK,cAAcD,GAEtC,OADAI,EAAS3xC,QACF2xC,GAITR,EAASU,YAAc,SAASN,EAAMO,GACpC,OAAOX,EAASG,WAAWC,GAAMvuC,QAAO,SAASlsB,GAC/C,OAAgC,IAAzBA,EAAKZ,QAAQ47D,OAOxBX,EAASY,eAAiB,SAASj7D,GAqBjC,IApBA,IAAIR,EAQAyqB,EAAY,CACdE,YANA3qB,EADmC,IAAjCQ,EAAKZ,QAAQ,gBACPY,EAAK2oB,UAAU,IAAIpqB,MAAM,KAEzByB,EAAK2oB,UAAU,IAAIpqB,MAAM,MAIf,GAClB6rB,UAAWtW,SAAStU,EAAM,GAAI,IAC9B0E,SAAU1E,EAAM,GAAGrB,cACnBkP,SAAUyG,SAAStU,EAAM,GAAI,IAC7B6qB,GAAI7qB,EAAM,GACV07D,QAAS17D,EAAM,GACf2pB,KAAMrV,SAAStU,EAAM,GAAI,IAEzBiD,KAAMjD,EAAM,IAGL1X,EAAI,EAAGA,EAAI0X,EAAMzN,OAAQjK,GAAK,EACrC,OAAQ0X,EAAM1X,IACZ,IAAK,QACHmiC,EAAUkxC,eAAiB37D,EAAM1X,EAAI,GACrC,MACF,IAAK,QACHmiC,EAAUmxC,YAActnD,SAAStU,EAAM1X,EAAI,GAAI,IAC/C,MACF,IAAK,UACHmiC,EAAUoxC,QAAU77D,EAAM1X,EAAI,GAC9B,MACF,IAAK,QACHmiC,EAAU1B,MAAQ/oB,EAAM1X,EAAI,GAC5BmiC,EAAUqxC,iBAAmB97D,EAAM1X,EAAI,GACvC,MACF,QACEmiC,EAAUzqB,EAAM1X,IAAM0X,EAAM1X,EAAI,GAItC,OAAOmiC,GAITowC,EAASkB,eAAiB,SAAStxC,GACjC,IAAIuD,EAAM,GACVA,EAAI9uB,KAAKurB,EAAUE,YACnBqD,EAAI9uB,KAAKurB,EAAUG,WACnBoD,EAAI9uB,KAAKurB,EAAU/lB,SAASs3D,eAC5BhuC,EAAI9uB,KAAKurB,EAAU5c,UACnBmgB,EAAI9uB,KAAKurB,EAAUixC,SAAWjxC,EAAUI,IACxCmD,EAAI9uB,KAAKurB,EAAUd,MAEnB,IAAI1mB,EAAOwnB,EAAUxnB,KAkBrB,OAjBA+qB,EAAI9uB,KAAK,OACT8uB,EAAI9uB,KAAK+D,GACI,SAATA,GAAmBwnB,EAAUkxC,gBAC7BlxC,EAAUmxC,cACZ5tC,EAAI9uB,KAAK,SACT8uB,EAAI9uB,KAAKurB,EAAUkxC,gBACnB3tC,EAAI9uB,KAAK,SACT8uB,EAAI9uB,KAAKurB,EAAUmxC,cAEjBnxC,EAAUoxC,SAAgD,QAArCpxC,EAAU/lB,SAAS/F,gBAC1CqvB,EAAI9uB,KAAK,WACT8uB,EAAI9uB,KAAKurB,EAAUoxC,WAEjBpxC,EAAUqxC,kBAAoBrxC,EAAU1B,SAC1CiF,EAAI9uB,KAAK,SACT8uB,EAAI9uB,KAAKurB,EAAUqxC,kBAAoBrxC,EAAU1B,QAE5C,aAAeiF,EAAI7uB,KAAK,MAKjC07D,EAASoB,gBAAkB,SAASz7D,GAClC,OAAOA,EAAK4Q,OAAO,IAAIrS,MAAM,MAK/B87D,EAASqB,YAAc,SAAS17D,GAC9B,IAAIR,EAAQQ,EAAK4Q,OAAO,GAAGrS,MAAM,KAC7Bo9D,EAAS,CACXptB,YAAaz6B,SAAStU,EAAM0pB,QAAS,KAUvC,OAPA1pB,EAAQA,EAAM,GAAGjB,MAAM,KAEvBo9D,EAAOtzE,KAAOmX,EAAM,GACpBm8D,EAAOC,UAAY9nD,SAAStU,EAAM,GAAI,IACtCm8D,EAAOlyC,SAA4B,IAAjBjqB,EAAMzN,OAAe+hB,SAAStU,EAAM,GAAI,IAAM,EAEhEm8D,EAAOE,YAAcF,EAAOlyC,SACrBkyC,GAKTtB,EAASyB,YAAc,SAAS9tC,GAC9B,IAAIhD,EAAKgD,EAAMugB,iBACoBxyC,IAA/BiyB,EAAM+tC,uBACR/wC,EAAKgD,EAAM+tC,sBAEb,IAAItyC,EAAWuE,EAAMvE,UAAYuE,EAAM6tC,aAAe,EACtD,MAAO,YAAc7wC,EAAK,IAAMgD,EAAM3lC,KAAO,IAAM2lC,EAAM4tC,WACvC,IAAbnyC,EAAiB,IAAMA,EAAW,IAAM,QAM/C4wC,EAASnvC,YAAc,SAASlrB,GAC9B,IAAIR,EAAQQ,EAAK4Q,OAAO,GAAGrS,MAAM,KACjC,MAAO,CACLmE,GAAIoR,SAAStU,EAAM,GAAI,IACvB2rB,UAAW3rB,EAAM,GAAGJ,QAAQ,KAAO,EAAII,EAAM,GAAGjB,MAAM,KAAK,GAAK,WAChE6sB,IAAK5rB,EAAM,KAMf66D,EAAS2B,YAAc,SAASC,GAC9B,MAAO,aAAeA,EAAgBv5D,IAAMu5D,EAAgBC,cACvDD,EAAgB9wC,WAA2C,aAA9B8wC,EAAgB9wC,UAC1C,IAAM8wC,EAAgB9wC,UACtB,IACJ,IAAM8wC,EAAgB7wC,IAAM,QAMlCivC,EAAStwC,UAAY,SAAS/pB,GAI5B,IAHA,IACIosC,EADAuvB,EAAS,GAETn8D,EAAQQ,EAAK4Q,OAAO5Q,EAAKZ,QAAQ,KAAO,GAAGb,MAAM,KAC5C7J,EAAI,EAAGA,EAAI8K,EAAMzN,OAAQ2C,IAEhCinE,GADAvvB,EAAK5sC,EAAM9K,GAAG2lD,OAAO97C,MAAM,MACjB,GAAG87C,QAAUjO,EAAG,GAE5B,OAAOuvB,GAITtB,EAAS8B,UAAY,SAASnuC,GAC5B,IAAIhuB,EAAO,GACPgrB,EAAKgD,EAAMugB,YAIf,QAHmCxyC,IAA/BiyB,EAAM+tC,uBACR/wC,EAAKgD,EAAM+tC,sBAET/tC,EAAMouC,YAAc5zE,OAAOuY,KAAKitB,EAAMouC,YAAYrqE,OAAQ,CAC5D,IAAIk5B,EAAS,GACbziC,OAAOuY,KAAKitB,EAAMouC,YAAYxxD,SAAQ,SAASyxD,GACzCruC,EAAMouC,WAAWC,GACnBpxC,EAAOvsB,KAAK29D,EAAQ,IAAMruC,EAAMouC,WAAWC,IAE3CpxC,EAAOvsB,KAAK29D,MAGhBr8D,GAAQ,UAAYgrB,EAAK,IAAMC,EAAOtsB,KAAK,KAAO,OAEpD,OAAOqB,GAKTq6D,EAASiC,YAAc,SAASt8D,GAC9B,IAAIR,EAAQQ,EAAK4Q,OAAO5Q,EAAKZ,QAAQ,KAAO,GAAGb,MAAM,KACrD,MAAO,CACLkE,KAAMjD,EAAM0pB,QACZulB,UAAWjvC,EAAMb,KAAK,OAI1B07D,EAASkC,YAAc,SAASvuC,GAC9B,IAAIlD,EAAQ,GACRE,EAAKgD,EAAMugB,YAYf,YAXmCxyC,IAA/BiyB,EAAM+tC,uBACR/wC,EAAKgD,EAAM+tC,sBAET/tC,EAAMwuC,cAAgBxuC,EAAMwuC,aAAazqE,QAE3Ci8B,EAAMwuC,aAAa5xD,SAAQ,SAAS+iC,GAClC7iB,GAAS,aAAeE,EAAK,IAAM2iB,EAAGlrC,MACrCkrC,EAAGc,WAAad,EAAGc,UAAU18C,OAAS,IAAM47C,EAAGc,UAAY,IACxD,UAGD3jB,GAKTuvC,EAASoC,eAAiB,SAASz8D,GACjC,IAAI08D,EAAK18D,EAAKZ,QAAQ,KAClBI,EAAQ,CACVghB,KAAM1M,SAAS9T,EAAK4Q,OAAO,EAAG8rD,EAAK,GAAI,KAErCC,EAAQ38D,EAAKZ,QAAQ,IAAKs9D,GAO9B,OANIC,GAAS,GACXn9D,EAAM1G,UAAYkH,EAAK4Q,OAAO8rD,EAAK,EAAGC,EAAQD,EAAK,GACnDl9D,EAAMzW,MAAQiX,EAAK4Q,OAAO+rD,EAAQ,IAElCn9D,EAAM1G,UAAYkH,EAAK4Q,OAAO8rD,EAAK,GAE9Bl9D,GAGT66D,EAASuC,eAAiB,SAAS58D,GACjC,IAAIR,EAAQQ,EAAK4Q,OAAO,IAAIrS,MAAM,KAClC,MAAO,CACLouB,UAAWntB,EAAM0pB,QACjB8C,MAAOxsB,EAAMwB,KAAI,SAASwf,GACxB,OAAO1M,SAAS0M,EAAM,SAO5B65C,EAASwC,OAAS,SAASC,GACzB,IAAI5xB,EAAMmvB,EAASU,YAAY+B,EAAc,UAAU,GACvD,GAAI5xB,EACF,OAAOA,EAAIt6B,OAAO,IAItBypD,EAASxwC,iBAAmB,SAAS7pB,GACnC,IAAIR,EAAQQ,EAAK4Q,OAAO,IAAIrS,MAAM,KAClC,MAAO,CACLw+D,UAAWv9D,EAAM,GAAGrB,cACpBpV,MAAOyW,EAAM,KAOjB66D,EAAS2C,kBAAoB,SAASF,EAAcvxC,GAKlD,MAAO,CACL0xC,KAAM,OACNC,aANU7C,EAASU,YAAY+B,EAAevxC,EAC9C,kBAKoBvqB,IAAIq5D,EAASxwC,oBAKrCwwC,EAAS8C,oBAAsB,SAASlyC,EAAQmyC,GAC9C,IAAI5vC,EAAM,WAAa4vC,EAAY,OAInC,OAHAnyC,EAAOiyC,aAAatyD,SAAQ,SAASyyD,GACnC7vC,GAAO,iBAAmB6vC,EAAGN,UAAY,IAAMM,EAAGt0E,MAAQ,UAErDykC,GAKT6sC,EAASiD,gBAAkB,SAASt9D,GAClC,IAAIR,EAAQQ,EAAK4Q,OAAO,GAAGrS,MAAM,KACjC,MAAO,CACL3F,IAAKkb,SAAStU,EAAM,GAAI,IACxB+9D,YAAa/9D,EAAM,GACnBg+D,UAAWh+D,EAAM,GACjBi+D,cAAej+D,EAAMk2B,MAAM,KAI/B2kC,EAASqD,gBAAkB,SAAStB,GAClC,MAAO,YAAcA,EAAWxjE,IAAM,IACpCwjE,EAAWmB,YAAc,KACQ,iBAAzBnB,EAAWoB,UACfnD,EAASsD,qBAAqBvB,EAAWoB,WACzCpB,EAAWoB,YACdpB,EAAWqB,cAAgB,IAAMrB,EAAWqB,cAAc9+D,KAAK,KAAO,IACvE,QAKJ07D,EAASuD,qBAAuB,SAASJ,GACvC,GAAqC,IAAjCA,EAAUp+D,QAAQ,WACpB,OAAO,KAET,IAAII,EAAQg+D,EAAU5sD,OAAO,GAAGrS,MAAM,KACtC,MAAO,CACLs/D,UAAW,SACXC,QAASt+D,EAAM,GACfu+D,SAAUv+D,EAAM,GAChBw+D,SAAUx+D,EAAM,GAAKA,EAAM,GAAGjB,MAAM,KAAK,QAAKxC,EAC9CkiE,UAAWz+D,EAAM,GAAKA,EAAM,GAAGjB,MAAM,KAAK,QAAKxC,IAInDs+D,EAASsD,qBAAuB,SAASH,GACvC,OAAOA,EAAUK,UAAY,IACzBL,EAAUM,SACXN,EAAUO,SAAW,IAAMP,EAAUO,SAAW,KAChDP,EAAUQ,UAAYR,EAAUS,UAC7B,IAAMT,EAAUQ,SAAW,IAAMR,EAAUS,UAC3C,KAIR5D,EAAS6D,oBAAsB,SAASpB,EAAcvxC,GAGpD,OAFY8uC,EAASU,YAAY+B,EAAevxC,EAC9C,aACWvqB,IAAIq5D,EAASiD,kBAM5BjD,EAAS8D,iBAAmB,SAASrB,EAAcvxC,GACjD,IAAIhD,EAAQ8xC,EAASU,YAAY+B,EAAevxC,EAC9C,gBAAgB,GACdjD,EAAM+xC,EAASU,YAAY+B,EAAevxC,EAC5C,cAAc,GAChB,OAAMhD,GAASD,EAGR,CACLgzC,iBAAkB/yC,EAAM3X,OAAO,IAC/BumC,SAAU7uB,EAAI1X,OAAO,KAJd,MASXypD,EAAS+D,mBAAqB,SAASnzC,GACrC,MAAO,eAAiBA,EAAOqwC,iBAAxB,iBACYrwC,EAAOksB,SAAW,QAIvCkjB,EAASgE,mBAAqB,SAASvB,GASrC,IARA,IAAIwB,EAAc,CAChBC,OAAQ,GACRC,iBAAkB,GAClBC,cAAe,GACfC,KAAM,IAGJp1C,EADQ+wC,EAASG,WAAWsC,GACd,GAAGv+D,MAAM,KAClBzW,EAAI,EAAGA,EAAIwhC,EAAMv3B,OAAQjK,IAAK,CACrC,IAAIkjC,EAAK1B,EAAMxhC,GACX62E,EAAatE,EAASU,YACxB+B,EAAc,YAAc9xC,EAAK,KAAK,GACxC,GAAI2zC,EAAY,CACd,IAAI3wC,EAAQqsC,EAASqB,YAAYiD,GAC7BC,EAAQvE,EAASU,YACnB+B,EAAc,UAAY9xC,EAAK,KAQjC,OANAgD,EAAMouC,WAAawC,EAAM7sE,OAASsoE,EAAStwC,UAAU60C,EAAM,IAAM,GACjE5wC,EAAMwuC,aAAenC,EAASU,YAC5B+B,EAAc,aAAe9xC,EAAK,KACjChqB,IAAIq5D,EAASiC,aAChBgC,EAAYC,OAAO7/D,KAAKsvB,GAEhBA,EAAM3lC,KAAKmzE,eACjB,IAAK,MACL,IAAK,SACH8C,EAAYG,cAAc//D,KAAKsvB,EAAM3lC,KAAKmzE,iBAWlD,OAJAnB,EAASU,YAAY+B,EAAc,aAAalyD,SAAQ,SAAS5K,GAC/Ds+D,EAAYE,iBAAiB9/D,KAAK27D,EAASnvC,YAAYlrB,OAGlDs+D,GAKTjE,EAASwE,oBAAsB,SAASjqC,EAAMqgB,GAC5C,IAAIznB,EAAM,GAGVA,GAAO,KAAOoH,EAAO,IACrBpH,GAAOynB,EAAKspB,OAAOxsE,OAAS,EAAI,IAAM,IACtCy7B,GAAO,sBACPA,GAAOynB,EAAKspB,OAAOv9D,KAAI,SAASgtB,GAC9B,YAAmCjyB,IAA/BiyB,EAAM+tC,qBACD/tC,EAAM+tC,qBAER/tC,EAAMugB,eACZ5vC,KAAK,KAAO,OAEf6uB,GAAO,uBACPA,GAAO,8BAGPynB,EAAKspB,OAAO3zD,SAAQ,SAASojB,GAC3BR,GAAO6sC,EAASyB,YAAY9tC,GAC5BR,GAAO6sC,EAAS8B,UAAUnuC,GAC1BR,GAAO6sC,EAASkC,YAAYvuC,MAE9B,IAAI8wC,EAAW,EAiBf,OAhBA7pB,EAAKspB,OAAO3zD,SAAQ,SAASojB,GACvBA,EAAM8wC,SAAWA,IACnBA,EAAW9wC,EAAM8wC,aAGjBA,EAAW,IACbtxC,GAAO,cAAgBsxC,EAAW,QAEpCtxC,GAAO,iBAEHynB,EAAKupB,kBACPvpB,EAAKupB,iBAAiB5zD,SAAQ,SAASm0D,GACrCvxC,GAAO6sC,EAAS2B,YAAY+C,MAIzBvxC,GAKT6sC,EAAS2E,2BAA6B,SAASlC,GAC7C,IAcI9e,EAdAihB,EAAqB,GACrBX,EAAcjE,EAASgE,mBAAmBvB,GAC1CoC,GAAuD,IAA9CZ,EAAYG,cAAcr/D,QAAQ,OAC3C+/D,GAA6D,IAAjDb,EAAYG,cAAcr/D,QAAQ,UAG9C4sB,EAAQquC,EAASU,YAAY+B,EAAc,WAC5C97D,KAAI,SAAShB,GACZ,OAAOq6D,EAASoC,eAAez8D,MAEhCksB,QAAO,SAAS1sB,GACf,MAA2B,UAApBA,EAAM1G,aAEbyzB,EAAcP,EAAMj6B,OAAS,GAAKi6B,EAAM,GAAGxL,KAG3C4+C,EAAQ/E,EAASU,YAAY+B,EAAc,oBAC5C97D,KAAI,SAAShB,GAEZ,OADYA,EAAK4Q,OAAO,IAAIrS,MAAM,KACrByC,KAAI,SAAS25D,GACxB,OAAO7mD,SAAS6mD,EAAM,UAGxByE,EAAMrtE,OAAS,GAAKqtE,EAAM,GAAGrtE,OAAS,GAAKqtE,EAAM,GAAG,KAAO7yC,IAC7DyxB,EAAgBohB,EAAM,GAAG,IAG3Bd,EAAYC,OAAO3zD,SAAQ,SAASojB,GAClC,GAAiC,QAA7BA,EAAM3lC,KAAKmzE,eAA2BxtC,EAAMouC,WAAWiD,IAAK,CAC9D,IAAIC,EAAW,CACb9+C,KAAM+L,EACNgzC,iBAAkBzrD,SAASka,EAAMouC,WAAWiD,IAAK,KAE/C9yC,GAAeyxB,IACjBshB,EAASE,IAAM,CAACh/C,KAAMw9B,IAExBihB,EAAmBvgE,KAAK4gE,GACpBJ,KACFI,EAAWl3D,KAAKsL,MAAMtL,KAAKwL,UAAU0rD,KAC5BG,IAAM,CACbj/C,KAAM+L,EACNzhB,UAAWq0D,EAAY,aAAe,OAExCF,EAAmBvgE,KAAK4gE,QAII,IAA9BL,EAAmBltE,QAAgBw6B,GACrC0yC,EAAmBvgE,KAAK,CACtB8hB,KAAM+L,IAKV,IAAImH,EAAY2mC,EAASU,YAAY+B,EAAc,MAenD,OAdIppC,EAAU3hC,SAEV2hC,EADsC,IAApCA,EAAU,GAAGt0B,QAAQ,WACX0U,SAAS4f,EAAU,GAAG9iB,OAAO,GAAI,IACF,IAAlC8iB,EAAU,GAAGt0B,QAAQ,SAEqB,IAAvC0U,SAAS4f,EAAU,GAAG9iB,OAAO,GAAI,IAAa,IACnD,UAEK7U,EAEdkjE,EAAmBr0D,SAAQ,SAASqgB,GAClCA,EAAOy0C,WAAahsC,MAGjBurC,GAIT5E,EAASsF,oBAAsB,SAAS7C,GACtC,IAAI8C,EAAiB,GAIjBC,EAAaxF,EAASU,YAAY+B,EAAc,WACjD97D,KAAI,SAAShB,GACZ,OAAOq6D,EAASoC,eAAez8D,MAEhCksB,QAAO,SAAS36B,GACf,MAAyB,UAAlBA,EAAIuH,aACV,GACD+mE,IACFD,EAAeE,MAAQD,EAAW92E,MAClC62E,EAAep/C,KAAOq/C,EAAWr/C,MAKnC,IAAIu/C,EAAQ1F,EAASU,YAAY+B,EAAc,gBAC/C8C,EAAeI,YAAcD,EAAMhuE,OAAS,EAC5C6tE,EAAeK,SAA4B,IAAjBF,EAAMhuE,OAIhC,IAAImuE,EAAM7F,EAASU,YAAY+B,EAAc,cAG7C,OAFA8C,EAAeM,IAAMA,EAAInuE,OAAS,EAE3B6tE,GAKTvF,EAAS8F,UAAY,SAASrD,GAC5B,IAAIt9D,EACA4gE,EAAO/F,EAASU,YAAY+B,EAAc,WAC9C,GAAoB,IAAhBsD,EAAKruE,OAEP,MAAO,CAACgrB,QADRvd,EAAQ4gE,EAAK,GAAGxvD,OAAO,GAAGrS,MAAM,MACV,GAAIu7B,MAAOt6B,EAAM,IAEzC,IAAI6gE,EAAQhG,EAASU,YAAY+B,EAAc,WAC5C97D,KAAI,SAAShB,GACZ,OAAOq6D,EAASoC,eAAez8D,MAEhCksB,QAAO,SAASo0C,GACf,MAA+B,SAAxBA,EAAUxnE,aAErB,OAAIunE,EAAMtuE,OAAS,EAEV,CAACgrB,QADRvd,EAAQ6gE,EAAM,GAAGt3E,MAAMwV,MAAM,MACP,GAAIu7B,MAAOt6B,EAAM,SAFzC,GASF66D,EAASkG,qBAAuB,SAASzD,GACvC,IAEI0D,EAFAl3C,EAAQ+wC,EAASrxC,WAAW8zC,GAC5B2D,EAAcpG,EAASU,YAAY+B,EAAc,uBAEjD2D,EAAY1uE,OAAS,IACvByuE,EAAiB1sD,SAAS2sD,EAAY,GAAG7vD,OAAO,IAAK,KAEnDsE,MAAMsrD,KACRA,EAAiB,OAEnB,IAAIE,EAAWrG,EAASU,YAAY+B,EAAc,gBAClD,GAAI4D,EAAS3uE,OAAS,EACpB,MAAO,CACLo3B,KAAMrV,SAAS4sD,EAAS,GAAG9vD,OAAO,IAAK,IACvC1M,SAAUolB,EAAMF,IAChBo3C,eAAgBA,GAIpB,GADmBnG,EAASU,YAAY+B,EAAc,cACrC/qE,OAAS,EAAG,CAC3B,IAAIyN,EAAQ66D,EAASU,YAAY+B,EAAc,cAAc,GAC1DlsD,OAAO,IACPrS,MAAM,KACT,MAAO,CACL4qB,KAAMrV,SAAStU,EAAM,GAAI,IACzB0E,SAAU1E,EAAM,GAChBghE,eAAgBA,KAUtBnG,EAASsG,qBAAuB,SAAS13C,EAAOolB,GAC9C,IAAIuyB,EAAS,GAiBb,OAfEA,EADqB,cAAnB33C,EAAM/kB,SACC,CACP,KAAO+kB,EAAM2L,KAAO,MAAQ3L,EAAM/kB,SAAW,IAAMmqC,EAAKnqC,SAAW,OACnE,uBACA,eAAiBmqC,EAAKllB,KAAO,QAGtB,CACP,KAAOF,EAAM2L,KAAO,MAAQ3L,EAAM/kB,SAAW,IAAMmqC,EAAKllB,KAAO,OAC/D,uBACA,aAAeklB,EAAKllB,KAAO,IAAMklB,EAAKnqC,SAAW,mBAGzBnI,IAAxBsyC,EAAKmyB,gBACPI,EAAOliE,KAAK,sBAAwB2vC,EAAKmyB,eAAiB,QAErDI,EAAOjiE,KAAK,KAOrB07D,EAASwG,kBAAoB,WAC3B,OAAOj6D,KAAKC,SAAS3U,WAAW0e,OAAO,EAAG,KAQ5CypD,EAASyG,wBAA0B,SAASC,EAAQC,EAASC,GAC3D,IACI1xB,OAAsBxzC,IAAZilE,EAAwBA,EAAU,EAQhD,MAAO,aAFIC,GAAY,qBAGL,KARdF,GAGU1G,EAASwG,qBAKa,IAAMtxB,EADnC,yCAOT8qB,EAAS6G,kBAAoB,SAASC,EAAalsB,EAAMxyC,EAAMsa,GAC7D,IAAIyQ,EAAM6sC,EAASwE,oBAAoBsC,EAAYvsC,KAAMqgB,GAyBzD,GAtBAznB,GAAO6sC,EAAS+D,mBACd+C,EAAYC,YAAYC,sBAG1B7zC,GAAO6sC,EAAS8C,oBACdgE,EAAYG,cAAcD,qBACjB,UAAT5+D,EAAmB,UAAY,UAEjC+qB,GAAO,SAAW2zC,EAAYj2B,IAAM,OAEhCi2B,EAAYh2C,UACdqC,GAAO,KAAO2zC,EAAYh2C,UAAY,OAC7Bg2C,EAAYI,WAAaJ,EAAYK,YAC9Ch0C,GAAO,iBACE2zC,EAAYI,UACrB/zC,GAAO,iBACE2zC,EAAYK,YACrBh0C,GAAO,iBAEPA,GAAO,iBAGL2zC,EAAYI,UAAW,CAEzB,IAAIjkB,EAAO,QAAUvgC,EAAOra,GAAK,IAC7By+D,EAAYI,UAAUznC,MAAMp3B,GAAK,OACrC8qB,GAAO,KAAO8vB,EAGd9vB,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjhD,KACrD,IAAM88B,EACN6jB,EAAYM,uBAAuB,GAAGjC,MACxChyC,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjC,IAAIh/C,KACzD,IAAM88B,EACV9vB,GAAO,oBACH2zC,EAAYM,uBAAuB,GAAGjhD,KAAO,IAC7C2gD,EAAYM,uBAAuB,GAAGjC,IAAIh/C,KAC1C,QAUR,OANAgN,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjhD,KACrD,UAAY65C,EAASC,WAAa,OAClC6G,EAAYI,WAAaJ,EAAYM,uBAAuB,GAAGjC,MACjEhyC,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjC,IAAIh/C,KACzD,UAAY65C,EAASC,WAAa,QAEjC9sC,GAIT6sC,EAASqH,aAAe,SAAS5E,EAAcvxC,GAG7C,IADA,IAAIT,EAAQuvC,EAASG,WAAWsC,GACvBh1E,EAAI,EAAGA,EAAIgjC,EAAM/4B,OAAQjK,IAChC,OAAQgjC,EAAMhjC,IACZ,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACH,OAAOgjC,EAAMhjC,GAAG8oB,OAAO,GAK7B,OAAI2a,EACK8uC,EAASqH,aAAan2C,GAExB,YAGT8uC,EAASsH,QAAU,SAAS7E,GAG1B,OAFYzC,EAASG,WAAWsC,GACd,GAAGv+D,MAAM,KACd,GAAGqS,OAAO,IAGzBypD,EAASuH,WAAa,SAAS9E,GAC7B,MAAyC,MAAlCA,EAAav+D,MAAM,IAAK,GAAG,IAGpC87D,EAASrxC,WAAa,SAAS8zC,GAC7B,IACIt9D,EADQ66D,EAASG,WAAWsC,GACd,GAAGlsD,OAAO,GAAGrS,MAAM,KACrC,MAAO,CACLq2B,KAAMp1B,EAAM,GACZ2pB,KAAMrV,SAAStU,EAAM,GAAI,IACzB0E,SAAU1E,EAAM,GAChB4pB,IAAK5pB,EAAMk2B,MAAM,GAAG/2B,KAAK,OAI7B07D,EAASwH,WAAa,SAAS/E,GAC7B,IACIt9D,EADO66D,EAASU,YAAY+B,EAAc,MAAM,GACnClsD,OAAO,GAAGrS,MAAM,KACjC,MAAO,CACLy9C,SAAUx8C,EAAM,GAChBuuC,UAAWvuC,EAAM,GACjBsiE,eAAgBhuD,SAAStU,EAAM,GAAI,IACnCuiE,QAASviE,EAAM,GACfwiE,YAAaxiE,EAAM,GACnB07D,QAAS17D,EAAM,KAKnB66D,EAAS4H,WAAa,SAASxH,GAC7B,GAAoB,iBAATA,GAAqC,IAAhBA,EAAK1oE,OACnC,OAAO,EAGT,IADA,IAAI+4B,EAAQuvC,EAASG,WAAWC,GACvB3yE,EAAI,EAAGA,EAAIgjC,EAAM/4B,OAAQjK,IAChC,GAAIgjC,EAAMhjC,GAAGiK,OAAS,GAA4B,MAAvB+4B,EAAMhjC,GAAGqM,OAAO,GACzC,OAAO,EAIX,OAAO,GAKP5M,EAAOD,QAAU+yE,G,6BCnzBJ,KAQX6H,wBAAwBC,GACpB,MAAMC,EAAcD,GACbA,EAAS71D,qBAAqB,0BAA0B,GAE/D,GAAK81D,EAIL,MAAO,CACH5hE,MAAO4hE,EAAYhkE,aAAa,kBAChCikE,UAAWD,EAAYhkE,aAAa,aACpCkkE,cAAeF,EAAYhkE,aAAa,kBACxCmkE,UAAWH,EAAYhkE,aAAa,cACpCmN,OAAQ62D,EAAYhkE,aAAa,YAWzCokE,sBAAsBL,GAClB,MAAMM,EACAN,EAAS71D,qBAAqB,wBAAwB,GACtDo2D,EAAoBD,GACnBA,EAA2B/vD,YAC5BiwD,EACAR,EAAS71D,qBAAqB,QAAQ,GACtCrjB,EAAO05E,GACNA,EAAcjwD,aACdiwD,EAAcjwD,YAAYvU,cAC3BykE,EACAT,EAAS71D,qBAAqB,cAAc,GAIlD,MAAO,CACHo2D,oBACAz5E,OACAs5E,UALEK,GAAsBA,EAAmBlwD,cAenDmwD,mBAAmB10D,GACf,MAAM20D,EAAQ30D,GAAYA,EAAS7B,qBAAqB,SAAS,GAEjE,OAAOw2D,GAASA,EAAM1kE,aAAa,eASvC2kE,aAAaZ,GACT,MAAMa,EACAb,EAAS71D,qBAAqB,cAAc,GAGlD,OAFkB02D,GAAsBA,EAAmBtwD,aAW/DuwD,YAAYd,GACDA,EAAS/jE,aAAa,QAAQ6wB,SAAS,W,8BC3FtD,gIAaA,MAAMxV,EAASF,oBAAUM,GASlB,MAAM+7B,EAKTnkD,YAAYssB,GACRviB,KAAKuiB,WAAaA,EAElBviB,KAAK0nE,mBAAoB,EACzB1nE,KAAK2nE,UAAW,EAChB3nE,KAAK4nE,cAAe,EACpB5nE,KAAK6nE,UAAOtnE,EAEZP,KAAK8nE,SAAW,IAAIC,IACpB/nE,KAAKgoE,YAAc,IAAIC,IAAW1lD,GAGlCviB,KAAKkoE,YAAcC,IAASnoE,KAAKooE,gBAtBjB,KAuBhBpoE,KAAKqoE,WAAaF,IAASnoE,KAAKsoE,eAvBhB,KA4BhBtoE,KAAKuiB,WAAWZ,GACZgB,cACA3iB,KAAKuoE,qBAAqBz6E,KAAKkS,OACnCA,KAAKuiB,WAAWZ,GACZgB,YACA3iB,KAAKwoE,mBAAmB16E,KAAKkS,OACjCA,KAAKuiB,WAAWZ,GACZgB,oBACA,KACI3iB,KAAK0nE,mBAAoB,IAQjC1nE,KAAKuiB,WAAWZ,GACZgB,yBACA3iB,KAAKyoE,uBAAuB36E,KAAKkS,OACrCA,KAAKuiB,WAAWZ,GACZgB,cACA2b,GAASA,EAAM/Y,WAAavlB,KAAK0oE,mBAAmBpqC,IACxDt+B,KAAKuiB,WAAW03C,IAAIt4C,GAChBqX,IAAU3Q,mBACV,CAACiW,EAAOhb,IAAQtjB,KAAK2oE,2BAA2BrlD,EAAKgb,IACzDt+B,KAAKuiB,WAAWZ,GACZgB,qBACA3iB,KAAK4oE,kBAAkB96E,KAAKkS,OAGhCA,KAAKgoE,YAAYrmD,GACbsmD,IAAW17B,OAAOs8B,+BAClB7oE,KAAK8oE,+BAA+Bh7E,KAAKkS,OAC7CA,KAAKgoE,YAAYrmD,GACbsmD,IAAW17B,OAAOw8B,wBAClB/oE,KAAKgpE,yBAAyBl7E,KAAKkS,OAS3C,mBAAmBwzB,GACf,OAAO1T,IAAQmpD,6BACRhB,IAAWzqC,iBACThK,EAAO01C,SAAW11C,EAAO01C,QAAQC,aAQ9CC,YACI,OAAOppE,KAAK2nE,SAShB0B,WAAWC,GACHA,IAAYtpE,KAAK2nE,WAIrB3nE,KAAK2nE,SAAW2B,GAEXtpE,KAAK4nE,cAAgB0B,IAKtBtpE,KAAKuiB,WAAWgnD,wBAEhBvpE,KAAK4nE,cAAe,GAIxB5nE,KAAK6nE,OAAOyB,GAAUtpE,KAAKwpE,eAG3BxpE,KAAKgoE,YAAYyB,UAAUzpE,KAAK6nE,MAAMntC,KAAK/J,IAEvC3wB,KAAK8nE,SAAS4B,OAAO1pE,KAAKuiB,WAAW25C,WAAYl8D,KAAK6nE,KAAMl3C,MAUpE64C,eACI,OAAOt9E,OAAOy9E,OAAOC,gBAAgB,IAAI5e,WAAW,KAQxD0d,mBAAmBpqC,GACf,IAAK,MAAMrmB,KAAWjY,KAAKuiB,WAAWsnD,oBAClC7pE,KAAK8pE,yBAAyB7xD,EAASqmB,GAS/CmqC,uBAAuBxwD,GACnB,MAAM+qB,EAAchjC,KAAKuiB,WAAW2kB,iBAEpC,IAAK,MAAM5I,KAAS0E,EAChBhjC,KAAK8pE,yBAAyB7xD,EAASqmB,GAQ/CiqC,qBAAqBrhE,GACjB+W,EAAOhZ,MAAO,eAAciC,YAExBlH,KAAK0nE,mBAAqB1nE,KAAK2nE,UAC/B3nE,KAAKkoE,cAQbM,mBAAmBthE,GACf+W,EAAOhZ,MAAO,eAAciC,UAE5BlH,KAAK8nE,SAASiC,QAAQ7iE,GAElBlH,KAAK2nE,UACL3nE,KAAKqoE,aAQbS,+BAA+B5hE,GAC3B+W,EAAOhZ,MAAO,iCAAgCiC,cAWlD8hE,yBAAyB9hE,EAAIrZ,EAAK8iC,GAC9B1S,EAAOhZ,MAAO,eAAciC,uBAE5BlH,KAAK8nE,SAAS4B,OAAOxiE,EAAIrZ,EAAK8iC,GAQlC,wBACI1S,EAAOhZ,MAAM,mBAEb,MAAM+kE,QAAiBC,YAAUjqE,KAAK6nE,MAChCqC,QAAeC,YAAQH,GAE7BhqE,KAAK6nE,KAAO,IAAI7c,WAAWkf,GAE3B,MAAMv5C,QAAc3wB,KAAKgoE,YAAYoC,iBAAiBpqE,KAAK6nE,MAE3D7nE,KAAK8nE,SAAS4B,OAAO1pE,KAAKuiB,WAAW25C,WAAYl8D,KAAK6nE,KAAMl3C,GAShE,uBACI1S,EAAOhZ,MAAM,gBAEbjF,KAAK6nE,KAAO7nE,KAAKwpE,eACjB,MAAM74C,QAAc3wB,KAAKgoE,YAAYyB,UAAUzpE,KAAK6nE,MAEpD7nE,KAAK8nE,SAAS4B,OAAO1pE,KAAKuiB,WAAW25C,WAAYl8D,KAAK6nE,KAAMl3C,GAQhEg4C,2BAA2BrlD,EAAKgb,GAC5B,IAAKt+B,KAAK2nE,SACN,OAGJ,MAAMv8B,EAAW9nB,EAAI+mD,qBAAqB/rC,EAAMA,OAE5C8M,EACAprC,KAAK8nE,SAASwC,eAAel/B,EAAU9M,EAAMgJ,UAAWhJ,EAAMq+B,oBAE9D1+C,EAAO9Y,KAAM,6BAA4Bm5B,6BAAiChb,KAWlFwmD,yBAAyB7xD,EAASqmB,GAC9B,IAAKt+B,KAAK2nE,SACN,OAGJ,MAAMriB,EAAKrtC,EAAQ+I,eACbupD,EAASjlB,GAAMA,EAAGklB,mBAAmBlsC,EAAMA,OAE7CisC,EACAvqE,KAAK8nE,SAAS2C,aAAaF,EAAQjsC,EAAMgJ,UAAWhJ,EAAMq+B,oBAE1D1+C,EAAO9Y,KAAM,6BAA4Bm5B,0BAA8BgnB,KAS/EsjB,kBAAkBtqC,GACd,GAAIxe,IAAQ4qD,+BAAiCpsC,EAAM/Y,WAAa+Y,EAAMqsC,iBAAmBrsC,EAAMggC,UAC3F,IAAK,MAAMrmD,KAAWjY,KAAKuiB,WAAWsnD,oBAClC7pE,KAAK8pE,yBAAyB7xD,EAASqmB,O,0EC9SvD,0OA2BA,MAAMrgB,EAASF,oBAAUM,GA2CV,MAAMusD,UAAwBC,IASzC,yBAAyBC,GACrB,MAAMC,EAAgBD,EAAe75C,KAAK,0BAE1C,GAAI85C,EAAcx0E,OAAQ,CACtB,MAAM86C,EAAU05B,EAAc,GAAGnoE,aAAa,WAE9C,GAAgB,SAAZyuC,GACe,cAAZA,GACY,cAAZA,GACY,SAAZA,EACH,OAAOA,EAIf,OAAO,KASX,2BAA2By5B,GACvB,MAAME,EAAoBF,EAAe75C,KAAK,2CAE9C,OAAO+5C,EAAkBz0E,OAASgjB,OAAOyxD,EAAkBrpE,QAAU,KAyBzE1L,YACQoW,EACA4+D,EACAC,EACA32D,EACA42D,EACAtlC,EACAC,EACAslC,GACJ/wC,MACIhuB,EACA4+D,EACAC,EAAW32D,EAAY42D,EAAkBtlC,EAAWulC,GAWxDprE,KAAKqrE,iBAAmB,KAQxBrrE,KAAKsrE,wBAAqB/qE,EAQ1BP,KAAKurE,wBAAqBhrE,EAQ1BP,KAAKwrE,6BAA+B,KAYpCxrE,KAAKyrE,2BAA6B,KAOlCzrE,KAAK0rE,6BAA0BnrE,EAgB/BP,KAAK2rE,mBAAoB,EAYzB3rE,KAAK4rE,oBAAqB,EAS1B5rE,KAAK6rE,oBAAqB,EAE1B7rE,KAAK8rE,kBAAmB,EACxB9rE,KAAK+rE,QAAS,EAQd/rE,KAAK8lC,MAAQA,EAOb9lC,KAAKgsE,8BAA2BzrE,EAMhCP,KAAKisE,eAAiB,IAAIC,IAO1BlsE,KAAKmsE,kBAAoB,IAAIC,IAO7BpsE,KAAKqsE,cAAe,EAQpBrsE,KAAKssE,2BAAwB/rE,EAE7BP,KAAKusE,eAAiB,GACtBvsE,KAAKusE,eAAerpE,KAChBqR,EAAW8nB,iBACPgd,IAAe0Z,OAAO3B,oBACtBpxD,KAAKwsE,oBAAoB1+E,KAAKkS,QAGtCA,KAAKysE,iDAA8ClsE,EAUvDmsE,kBACI,OAAO1sE,KAAKitC,QAAU0/B,IAO1BC,aAAazlE,GACTnH,KAAKovC,QAAUzW,QAAQxxB,EAAQioC,SAC/BpvC,KAAK8rE,kBAAmB,EACxB9rE,KAAKmH,QAAUA,EAMfnH,KAAK6sE,aAAc,EAMnB7sE,KAAK8sE,WAAY,EACjB9sE,KAAK+sE,oBAAsBp0C,QAAQxxB,EAAQ4lE,qBAC3C/sE,KAAKgtE,oBAAsBr0C,QAAQxxB,EAAQ6lE,qBAE3C,MAAMC,EAAY,CAAElzB,WAAY5yC,EAAQ4yC,YAexC,GAbI5yC,EAAQ+lE,cACRD,EAAUE,SAhSI,KAkSlBF,EAAUG,uBAAwB,EAClCH,EAAU/mC,wBAA0B/+B,EAAQ++B,wBAC5C+mC,EAAUI,aAAelmE,EAAQkmE,aAG7BJ,EAAUI,eACVJ,EAAUK,cAAgBL,EAAUI,aAAaC,cACjDL,EAAUM,eAAiBN,EAAUI,aAAaE,gBAGlDvtE,KAAK8lC,MAAO,CAEZmnC,EAAUO,kBAAmB,EAC7BP,EAAUQ,YAActmE,EAAQg3C,KAAOh3C,EAAQg3C,IAAIsvB,YACnDR,EAAUS,WAAavmE,EAAQg3C,KAAOh3C,EAAQg3C,IAAIuvB,WAG9CvmE,EAAQg3C,MAGR8uB,EAAUK,cAAgBnmE,EAAQ++B,wBAC5B9S,IAAcC,KACdlsB,EAAQg3C,IAAImvB,cAClBL,EAAUM,eAAiBpmE,EAAQg3C,IAAIovB,gBAG3C,MAAMvnC,EAAqBhmC,KAAK2tE,2BAA2BxmE,QAEzB,IAAvB6+B,IACPinC,EAAUjnC,mBAAqBA,QAInCinC,EAAUO,iBACJrmE,EAAQqmE,kBACFrmE,EAAQumE,aAAevmE,EAAQsmE,YAC3CR,EAAUS,WAAavmE,EAAQumE,WAI3BvmE,EAAQ+hE,SACL/hE,EAAQ+hE,QAAQkE,uBACiC,iBAA1CjmE,EAAQ+hE,QAAQkE,wBAC1BH,EAAUG,sBACJhiE,KAAKC,SACLlE,EAAQ+hE,QAAQkE,sBAKtBhuD,IAAWyB,UAAUolB,uBAAuB,CAAEmnC,sBAAuBH,EAAUG,yBAInFjmE,EAAQymE,cACRX,EAAUW,aAAc,GAG5B5tE,KAAKghB,eACChhB,KAAKi6D,IAAIt0B,qBACH3lC,KAAKisE,eACLjsE,KAAK6lC,UACL7lC,KAAK8lC,MACLmnC,GAEZjtE,KAAKghB,eAAe6sD,eAAiBh0B,IACjC,IAAKA,EAMD,OAIJ,MAAMprB,EAAYorB,EAAGprB,UACfta,EAAMjoB,OAAOsuD,YAAYrmC,MAE/B,GAAIsa,EAAW,CAC6B,OAApCzuB,KAAKyrE,6BACLzrE,KAAKyrE,2BAA6Bt3D,GAItC,IAAIzL,EAAW+lB,EAAU/lB,SAEzB,GAAwB,iBAAbA,EAEP,GADAA,EAAWA,EAAS/F,cACH,QAAb+F,GAAmC,WAAbA,GACtB,GAAI1I,KAAKgtE,oBACL,YAED,GAAiB,QAAbtkE,GACH1I,KAAK+sE,oBACL,YAIJ/sE,KAAK6rE,qBAEbzsD,IAAWoI,cACP0C,IACA,CACI4jD,MAAO,YACPvgF,MAAO4mB,EAAMnU,KAAKyrE,2BAClBttB,IAAKn+C,KAAK8lC,MACV+gC,UAAW7mE,KAAKorE,cAExBprE,KAAK6rE,oBAAqB,GAE9B7rE,KAAK+tE,iBAAiBt/C,IAU1BzuB,KAAKghB,eAAegtD,uBAAyB,KACE,WAAvChuE,KAAKghB,eAAeitD,eACpBjuE,KAAK8sE,WAAY,EAC6B,WAAvC9sE,KAAKghB,eAAeitD,gBACgB,WAAxCjuE,KAAKghB,eAAektD,iBACvBluE,KAAKm/C,KAAK3/B,aAAa0D,KAAKy3B,IAAWhoD,iBAAkBqN,OAUjEA,KAAKghB,eAAemtD,2BAA6B,KAC7C,MAAMh6D,EAAMjoB,OAAOsuD,YAAYrmC,MA0B/B,OAxBKnU,KAAK8lC,QACN9lC,KAAKm/C,KAAKrG,gBACL,aAAY94C,KAAKghB,eAAeotD,oBAC/Bj6D,GAEV8J,EAAOrZ,IACF,cAAa5E,KAAKghB,eAAeotD,mBAC3B,SAAQpuE,KAAK8lC,WACpB3xB,GAEJiL,IAAWoI,cACP4C,IACA,CACI+zB,IAAKn+C,KAAK8lC,MACVmH,MAAOjtC,KAAKghB,eAAeotD,mBAC3B,gBAAmBpuE,KAAKghB,eAAeitD,eACvCI,UAAWruE,KAAK6sE,YAChBt/E,MAAO4mB,IAGfnU,KAAKm/C,KAAK3/B,aAAa0D,KACnBy3B,IAAW3nD,6BACXgN,KACAA,KAAKghB,eAAeotD,oBAChBpuE,KAAKghB,eAAeotD,oBAC5B,IAAK,WACDpuE,KAAKwrE,6BAA+Br3D,EACpC,MACJ,IAAK,YAUD,GAP2C,WAAvCnU,KAAKghB,eAAeitD,gBAChBjuE,KAAK6sE,aACL7sE,KAAKm/C,KAAK3/B,aAAa0D,KACnBy3B,IAAWzrD,oBAAqB8Q,OAIvCA,KAAKqsE,cAAgBrsE,KAAK8sE,UAAW,CAEtC1tD,IAAWoI,cACP0C,IACA,CACI4jD,MAAO,WACPvgF,MAAO4mB,EAAMnU,KAAKwrE,6BAClBrtB,IAAKn+C,KAAK8lC,MACV+gC,UAAW7mE,KAAKorE,cAMxB,MAAMkD,EACAljE,KAAKqP,IACHza,KAAKwrE,6BACLxrE,KAAKyrE,4BAEbzrE,KAAKssE,sBAAwBn4D,EAAMm6D,EAEnClvD,IAAWoI,cACP0C,IACA,CACI4jD,MAAO,gBACPvgF,MAAOyS,KAAKssE,sBACZnuB,IAAKn+C,KAAK8lC,MACV+gC,UAAW7mE,KAAKorE,cAGxBprE,KAAKqsE,cAAe,EACpBrsE,KAAKm/C,KAAK3/B,aAAa0D,KACnBy3B,IAAW5rD,uBAAwBiR,MAE3CA,KAAK6sE,aAAc,EACnB,MACJ,IAAK,eACD7sE,KAAK6sE,aAAc,EAIf7sE,KAAK8sE,WACL9sE,KAAKm/C,KAAK3/B,aAAa0D,KACnBy3B,IAAW1rD,uBAAwB+Q,MAE3C,MACJ,IAAK,SACDA,KAAKm/C,KAAK3/B,aAAa0D,KACnBy3B,IAAWxrD,sBAAuB6Q,QAS9CA,KAAKghB,eAAeutD,oBAAsB,KACtC,MAAMthC,EAAQjtC,KAAKghB,eAAeitD,eAC5BO,EAAoBxuE,KAAKghB,eAAewtD,kBAE9C,GAAI1uD,IAAQ2uD,mBAA+B,WAAVxhC,GAC1BuhC,GAAsD,iBAA1BA,EAAkBx8C,IAAkB,CACnE/T,EAAOhZ,MAAO,gCAA+BjF,KAAKghB,4BAA4BisB,KAC9E,MAAMyhC,EAAeC,IACjB,MAAMC,EAAS,IAAI1/B,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAE5DhyB,KAAK8uE,eACAp0C,KAAK,KACF,MAAMq0C,EAAS,IAAI7/B,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAE5DhyB,KAAKgvE,mBAAmBJ,EAAQG,GAChCJ,KAEJA,IAGR3uE,KAAKmsE,kBAAkBjpE,KACnBwrE,EACA1pE,IACQA,EACAiZ,EAAOjZ,MAAM,4BAA6BA,GAE1CiZ,EAAOhZ,MAAM,yCAOjCjF,KAAKisE,eAAegD,YAAYjvE,KAAKm/C,OAEhCn/C,KAAK8lC,OAAS3+B,EAAQ+nE,wBAGvBlvE,KAAKysE,4CAA8CzsE,KAAKi6D,IAAIr2B,YACxD5K,IAAUhR,iCAAkC,KACxChoB,KAAKwf,aAAa0D,KACdisD,IAAmBC,iCAAkCpvE,SAUzEqvE,8BACI,OAAIrvE,KAAK8lC,MACE9lC,KAAKgsE,yBAGThsE,KAAKmH,QAAQ+nE,sBAAwBlvE,KAAKi6D,IAAIlzB,4BAA4BuoC,iBAAc/uE,EAQnGwtE,iBAAiBt/C,GACb,MAAM8gD,EAAW,IAAIrgC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAE9D,GAAIvD,GAAaA,EAAUA,UAAUl4B,SAAWyJ,KAAK8rE,iBAAkB,CACnE,MAAM0D,EACA/iD,IAAQE,UACN4iD,EAAS9hD,MAAMgB,EAAUghD,eAAgBF,EAASt3D,SACpDy3D,EAAQjjD,IAAQyD,kBAAkBzB,EAAUA,WAElD,IAAM+gD,IAAOE,EAAQ,CACjB,MAAMC,EAAgB,6BAKtB,OAHA/3C,IAAqBC,iBAAiB,IAAIxgC,MAAMs4E,SAChD1xD,EAAOjZ,MAAM2qE,GAIjBH,EAAIvpE,MAAQ,uCAERjG,KAAK4vE,SAC6B,IAA9B5vE,KAAK6vE,cAAct5E,QAEnBgU,WAAW,KAC2B,IAA9BvK,KAAK6vE,cAAct5E,SAGvByJ,KAAK8vE,kBAAkB9vE,KAAK6vE,eAC5B7vE,KAAK6vE,cAAgB,KACtB,IAEP7vE,KAAK6vE,cAAc3sE,KAAKurB,IAExBzuB,KAAK8vE,kBAAkB,CAAErhD,SAG7BxQ,EAAOrZ,IAAI,qCAGX5E,KAAK8rE,kBAAmB,EAUhCgE,kBAAkBC,GACd,IAAK/vE,KAAK0sE,gBAAgB,qBAEtB,OAGJzuD,EAAOrZ,IAAI,oBAAqBmrE,GAChC,MAAM7gD,EAAOvzB,cAAI,CAAEotC,GAAI/oC,KAAKkrE,UACxBjkE,KAAM,QACLta,EAAE,SAAU,CAAEsZ,MAAO,oBAClBukB,OAAQ,iBACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAEZkjE,EAAW,IAAIrgC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAE9D,IAAK,IAAI0d,EAAM,EAAGA,EAAM6/B,EAAS9hD,MAAMl3B,OAAQm5C,IAAO,CAClD,MAAMugC,EAAQF,EAAWr/C,OAAOxwB,GAAMA,EAAGuvE,gBAAkB//B,GACrD5hB,EACArB,IAAQe,WAAW+hD,EAAS9hD,MAAMiiB,GAAK3sC,MAAM,QAAQ,IAE3D,GAAIktE,EAAM15E,OAAS,EAAG,CAClB,MAAMi5E,EACA/iD,IAAQE,UAAU4iD,EAAS9hD,MAAMiiB,GAAM6/B,EAASt3D,SAEtDu3D,EAAIvpE,MAAQ,uCACZipB,EAAKviC,EAAE,UAAW,CACdujD,QAASlwC,KAAKgwE,eAAiBhwE,KAAKirE,SAC9B,YAAc,YACpBp+E,KAAMojF,EAAM,GAAGC,OAASD,EAAM,GAAGC,OAASpiD,EAAML,QACjD9gC,EAAE,YAAa6iF,GAClB,IAAK,IAAIljF,EAAI,EAAGA,EAAI2jF,EAAM15E,OAAQjK,IAAK,CACnC,MAAMmiC,EACAhC,IAAQyD,kBAAkB+/C,EAAM3jF,GAAGmiC,WAIrCzuB,KAAKovC,UACL3gB,EAAUI,GAAK,WAEnBK,EAAKviC,EAAE,YAAa8hC,GAAWtoB,KAInC,MAAMgqE,EACA1jD,IAAQO,SACNuiD,EAAS9hD,MAAMiiB,GACf,iBAAkB6/B,EAASt3D,SAEnC,GAAIk4D,EAAiB,CACjB,MAAMC,EAAM3jD,IAAQ4B,iBAAiB8hD,GAErCC,EAAIC,UAAW,EACfnhD,EAAKviC,EACD,cACA,CAAEsZ,MAAO,gCACRzY,EAAE4iF,EAAI9hD,oBACJ8hD,EAAI9hD,YACXY,EAAK1zB,MAAM40E,GACXlhD,EAAK/oB,KAET+oB,EAAK/oB,KACL+oB,EAAK/oB,MAObnG,KAAKuU,WAAWnG,OACZ8gB,EAAM,KAAMlvB,KAAKswE,sBAAsBphD,GAxsBhC,KAktBfqhD,4BACI,MAAMC,EACA70E,cAAI,CACFotC,GAAI/oC,KAAKkrE,UACTjkE,KAAM,QACTta,EAAE,SAAU,CAAEsZ,MAAO,oBAClBukB,OAAQ,eACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MACb1f,EAAE,YAAa,CAAEsZ,MAAO,oCACxBzY,EAAE,UACF2Y,KAELnG,KAAKqrE,kBACEmF,EAAY7jF,EACX,iBAAkB,CACdsZ,MAAO,kCACPiB,GAAIlH,KAAKqrE,mBAGrBrrE,KAAKuU,WAAWi/C,QACZgd,EAAa,CAMT5iE,QAAS,KAEZwvB,MAAMp9B,KAAKswE,sBAAsBE,IAM1CC,iBAAiB/wE,GACb,GAA2C,WAAvCM,KAAKghB,eAAeitD,eAGpB,YAFAhwD,EAAO9Y,KAAK,kDAKhB,MAAMurE,EAAgB,GAyBtB,GAvBAhxE,EAAKuxB,KAAK,gCACLghB,KAAK,CAACrC,EAAKnhB,KACR,IAAIjqB,EAAOioB,IAAQ0D,oBAAoB1B,GAEvCjqB,EAAOA,EAAK5C,QAAQ,OAAQ,IAAIA,QAAQ,KAAM,IAI9C,MAAM+uE,EAAe,IAAIC,gBAAgB,CACrCnB,cAAe,EAOfS,OAAQ,GACRzhD,UAAWjqB,IAGfksE,EAAcxtE,KAAKytE,MAGtBD,EAAcn6E,OAIf,YAHA0nB,EAAOjZ,MACH,6BAA8BtF,EAAK,IAAMA,EAAK,GAAGmxE,WAoBzD5yD,EAAOhZ,MACF,eAAcyrE,EAAcn6E,kCACjCyJ,KAAKmsE,kBAAkBjpE,KAbFyrE,IACjB,IAAK,MAAMmC,KAAgBJ,EACvB1wE,KAAKghB,eAAe+vD,gBAAgBD,GAC/Bp2C,KACG,IAAMzc,EAAOhZ,MAAM,uBACnBkL,GAAO8N,EAAOjZ,MAAM,0BAA2BmL,IAG3Dw+D,MAYRqC,aAAat+B,GAEHD,EAAEC,GAAUzhB,KACV,gEAGFghB,KAAK,CAAC3lD,EAAG2kF,KACX,MAAMjsD,EAAOzL,OAAO03D,EAAYruE,aAAa,SAEzC5C,KAAK8lC,MAEL9lC,KAAKisE,eAAeiF,aAChBlsD,EAAMvpB,UAAQyI,mBAAmBlE,KAAKkrE,YAE1Cz4B,EAAEw+B,GACGhgD,KAAK,gDACLghB,KAAK,CAACk/B,EAAIC,KACP,MAAMjpC,EAAQipC,EAAgBxuE,aAAa,SAEvCulC,GAASA,EAAM5xC,SACXmjB,MAAMsL,IAASA,EAAO,EACtB/G,EAAO9Y,KACF,gBAAe6f,wBACFmjB,GAElBnoC,KAAKisE,eAAeiF,aAChBlsD,EACAvpB,UAAQyI,mBAAmBikC,SAa3DkpC,uBACQrxE,KAAKghB,eACLhhB,KAAKghB,eAAeqwD,uBAEpBpzD,EAAOjZ,MACH,wDAwBZssE,YAAYC,EAAa7pB,EAAS8pB,EAASxuC,GACvChjC,KAAKyxE,oBACDF,EACA,KAIIvxE,KAAK0xE,kBAAkBhqB,EAAS8pB,IAEpCA,EACAxuC,GAWR2uC,OAAO3uC,EAAc,IACjB,IAAKhjC,KAAKorE,YACN,MAAM,IAAI/zE,MAAM,+CAoBpB2I,KAAKmsE,kBAAkBjpE,KAlBFyrE,IACjB,MAAMiD,EAAY,GAElB,IAAK,MAAM1tC,KAAclB,EACrB4uC,EAAU1uE,KAAKlD,KAAKghB,eAAemd,SAAS+F,EAAYlkC,KAAKorE,cAGjEpuC,QAAQ+K,IAAI6pC,GACPl3C,KAAK,IAAM16B,KAAKghB,eAAe6wD,YAAY7xE,KAAKmrE,mBAChDzwC,KAAKo3C,GAAY9xE,KAAKghB,eAAe+wD,oBAAoBD,IACzDp3C,KAAK,KAGF16B,KAAKgyE,oBAAoBhyE,KAAKghB,eAAe6tD,iBAAiB78C,OAEjE0I,KAAK,IAAMi0C,IAAoB3pE,GAAS2pE,EAAiB3pE,KAK9DA,IACQA,EACAiZ,EAAOjZ,MAAM,eAAgBA,GAE7BiZ,EAAOhZ,MAAM,0BAe7B+sE,oBAAoBF,GAChB,IAAIlnE,EAAOjP,cAAI,CACXotC,GAAI/oC,KAAKkrE,UACTjkE,KAAM,QACPta,EAAE,SAAU,CACXsZ,MAAO,oBACPukB,OAAQ,mBACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAGd,IAAI6iC,IAAI4iC,GAAU/hC,SACdnlC,EACA5K,KAAKorE,YAAc,YAAc,aACrCxgE,EAAOA,EAAKvF,OACZ4Y,EAAO/Y,KAAK,qBAAsB0F,GAClC5K,KAAKuU,WAAWnG,OAAOxD,EACnB,KACIqT,EAAO/Y,KAAK,sCAEhBF,IACIiZ,EAAOjZ,MAAM,2BAA4BA,IA98BtC,KAu9BfitE,UAAUC,GACN,IAAKlyE,KAAKorE,YACN,MAAM,IAAI/zE,MAAM,oDAEpB2I,KAAKyxE,oBACDS,EACA,KACIj0D,EAAO/Y,KAAK,0BAEhBF,IACIiZ,EAAOjZ,MAAM,qBAAsBA,KAmB/CysE,oBAAoBU,EAAqBzqB,EAAS8pB,EAASxuC,EAAc,IA+DrEhjC,KAAKmsE,kBAAkBjpE,KA9DFyrE,IACjB,MAAMiD,EAAY,GAElB,IAAK,MAAMtzC,KAAS0E,EAChB4uC,EAAU1uE,KAAKlD,KAAKghB,eAAemd,SAASG,EAAOt+B,KAAKorE,cAG5D,MAAMgH,EACApyE,KAAKqyE,yBAAyBF,GAC9BG,EACAtyE,KAAKghB,eAAe6tD,iBAAiB78C,IAMrCugD,EAHA9/B,EAAE0/B,GACClhD,KAAK,4DAEwB1vB,KAAK,MAEvCgxE,IAAoBvyE,KAAKqrE,mBACzBrrE,KAAKqrE,iBAAmBkH,GAG5Bv1C,QAAQ+K,IAAI6pC,GACPl3C,KAAK,IAAM16B,KAAK8uE,aAAasD,EAAa9hE,MAC1CoqB,KAAK,KA2BF,GA1BI16B,KAAKitC,QAAU0/B,MACf3sE,KAAKitC,MAAQ0/B,KAeT3sE,KAAK8lC,OACA9lC,KAAK2rE,oBAAqB3rE,KAAK0rE,yBACpC1rE,KAAKwyE,qBAQTF,EAAa,CACb,MAAMG,EACA,IAAIvjC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAEnDhyB,KAAKgvE,mBACD,IAAI9/B,IAAIojC,GAAcG,MAGjC/3C,KAAK,IAAMi0C,IAAoB3pE,GAAS2pE,EAAiB3pE,KAK9DA,IACIA,EAAQwsE,EAAQxsE,GAAS0iD,MAcrCgrB,iBAAiBC,EAAiBjrB,EAAS8pB,GACvCxxE,KAAKm/C,KAAK3/B,aAAa0D,KAAKy3B,IAAW/qD,eAAgBoQ,MAMvD,MAAM4yE,EAAgBD,EAAgBE,QAEtCF,EACK1hD,KAAK,yBACL1vB,KAAK,UAAW,YAQrBoxE,EACK1hD,KAAK,+BACL6hD,SACLH,EACK1hD,KAAK,mCACL6hD,SAML,MAAMC,EAAiBJ,EAAgB1hD,KAAK,kCAE5C8hD,EAAexxE,KAAK,OAAQ,SAC5BwxE,EAAepxE,KAAK,+DAGpB3B,KAAKyxE,oBACDkB,EACA,KAEI3yE,KAAKyxE,oBACDmB,EACA,KACI,MAAMrD,EACA,IAAIrgC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAEnDhyB,KAAKgzE,oBAAoBzD,EAAU7nB,EAAS8pB,GAE5CxxE,KAAKm/C,KAAK3/B,aAAa0D,KACnBy3B,IAAW9qD,oBACXmQ,KACA4yE,IAERpB,IAERA,GAYRE,kBAAkBhqB,EAAS8pB,GAGvB,MAAMjC,EAAW,IAAIrgC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAC9D,IAAIihD,EAASt3E,cAAI,CAAEotC,GAAI/oC,KAAKkrE,UACxBjkE,KAAM,QACLta,EAAE,SAAU,CAAEsZ,MAAO,oBAClBukB,OAAQ,iBACRq8C,UAAW7mE,KAAKgwE,aAChBkD,UAAWlzE,KAAKmzE,aAChB9mE,IAAKrM,KAAKqM,MAEdrM,KAAKgtE,sBACLuC,EAASlgC,qBAAsB,GAE/BrvC,KAAK+sE,sBACLwC,EAASjgC,qBAAsB,GAE/BtvC,KAAKovC,UACLmgC,EAASngC,SAAU,GAEvBmgC,EAASx/B,SACLkjC,EACAjzE,KAAKgwE,eAAiBhwE,KAAKirE,SAAW,YAAc,YACpD,MAGJgI,EAASA,EAAO5tE,OAChB4Y,EAAO/Y,KAAK,yBAA0B+tE,GACtCjzE,KAAKuU,WAAWnG,OAAO6kE,EACnBvrB,EACA1nD,KAAKswE,sBAAsB2C,EAAQjuE,IAC/BwsE,EAAQxsE,GAIRhF,KAAKm/C,KAAK3/B,aAAa0D,KACnBy3B,IAAWroD,uBAAwB0N,QA5qCpC,KA0sCfwyE,oBACI,MAAMntC,EAAiBrlC,KAAK0rE,wBACtBr6B,EAAUrxC,KAAK2rE,kBAAoB,OAAS,OAElD,IAAIyH,EACEz3E,cAAI,CACFotC,GAAI/oC,KAAKkrE,UACTjkE,KAAM,QAELta,EAAE,SAAU,CACTsZ,MAAO,oBACPukB,OAAQ,iBACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAEb1f,EAAE,UAAW,CACVE,KAAM,QACNwkD,iBAGkB,IAAnBhM,IACP+tC,EAAgBA,EACXzmF,EAAE,mBAAoB,CAAEsZ,MAAO,mCAC/BzY,EAAE63C,IAGXpnB,EAAO/Y,KAAM,GAAElF,+CAA+CqxC,wBAA8BhM,KAE5FrlC,KAAKuU,WAAWnG,OACZglE,EACA,KACApzE,KAAKswE,sBAAsB8C,GAzuCpB,KAmvCfhuC,2BAA2BC,GACvBpnB,EAAO/Y,KAAM,GAAElF,uDAAuDqlC,KAEtErlC,KAAK0rE,wBAA0BrmC,EAE3BrlC,KAAK8lC,MAGD9lC,KAAKitC,QAAU0/B,KACf3sE,KAAKwyE,oBAGTxyE,KAAKi6D,IAAI70B,2BAA2BC,GAc5C2tC,oBAAoBzD,EAAU7nB,EAAS8pB,GACnC,IAAI6B,EAAkB13E,cAAI,CAAEotC,GAAI/oC,KAAKkrE,UACjCjkE,KAAM,QACLta,EAAE,SAAU,CACTsZ,MAAO,oBACPukB,OAAQ,mBACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAGlBkjE,EAAS9hD,MAAMre,QAAQ,CAACkkE,EAAY1jC,KAChC,MAAM9hB,EAAQrB,IAAQe,WAAW8lD,EAAWvwE,MAAM,QAAQ,IAE1DswE,EAAgB1mF,EAAE,UACd,CACIujD,QACIlwC,KAAKgwE,eAAiBhwE,KAAKirE,SACrB,YACA,YACVp+E,KAAMihC,EAAML,QAGpB8hD,EAASj+B,kBAAkB1B,EAAKyjC,GAChCA,EAAgBltE,OAIpBktE,EAAkBA,EAAgBhuE,OAClC4Y,EAAO/Y,KAAK,6BAA8BmuE,GAE1CrzE,KAAKuU,WAAWnG,OAAOilE,EACnB3rB,EACA1nD,KAAKswE,sBAAsB+C,EAAiB7B,GA7yCrC,KA4zCf+B,oBAAoB7rB,EAAS8pB,GAGzB,IAAIgC,EAAkB73E,cAAI,CAAEotC,GAAI/oC,KAAKkrE,UACjCjkE,KAAM,QACLta,EAAE,SAAU,CACTsZ,MAAO,oBACPukB,OAAQ,mBACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAGlBmnE,EAAkBA,EAAgBnuE,OAClC4Y,EAAO/Y,KAAK,4BAA8BsuE,GAE1CxzE,KAAKuU,WAAWnG,OAAOolE,EACnB9rB,EACA1nD,KAAKswE,sBAAsBkD,EAAiBhC,GA70CrC,KAu1CfiC,uBACI,OAAIzzE,KAAK0sE,kBACE1sE,KAAKghB,eAAe0yD,gBAGxB12C,QAAQC,UASnB02C,yBAAyBtuC,GACrB,OAAIrlC,KAAK0sE,mBACLzuD,EAAO/Y,KAAM,GAAElF,kCAAkCqlC,KAE1CrlC,KAAKghB,eAAe2yD,yBAAyBtuC,IAGjDrI,QAAQC,UASnB22C,sCACI,OAAI5zE,KAAK0sE,kBACE1sE,KAAKghB,eAAe4yD,sCAGxB52C,QAAQC,UAMnB42C,UAAUnsB,EAAS8pB,EAASrqE,GACxB,GAAInH,KAAKitC,QAAU0/B,IAAnB,CAIA,IAAKxlE,GAAWwxB,QAAQxxB,EAAQ2sE,sBAAuB,CACnD,IAAIC,EACEp4E,cAAI,CACFotC,GAAI/oC,KAAKkrE,UACTjkE,KAAM,QAELta,EAAE,SAAU,CACTsZ,MAAO,oBACPukB,OAAQ,oBACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAEb1f,EAAE,UACFA,EAAGwa,GAAWA,EAAQqI,QAAW,WACjCrJ,KAELgB,GAAWA,EAAQ6sE,kBACnBD,EACKpnF,EAAE,QACFa,EAAE2Z,EAAQ6sE,mBACV7tE,KACAA,KAEL4tE,EAAiB5tE,KAGrBnG,KAAKqrE,kBACE0I,EAAiBpnF,EAChB,iBAAkB,CACdsZ,MAAO,kCACPiB,GAAIlH,KAAKqrE,iBACT4I,QAAS9sE,IAAsC,IAA3BA,EAAQ+sE,iBAC7B/tE,KAGX4tE,EAAmBA,EAAiB1uE,OACpC4Y,EAAO/Y,KAAK,4BAA6B6uE,GACzC/zE,KAAKuU,WAAWnG,OACZ2lE,EACArsB,EACA1nD,KAAKswE,sBAAsByD,EAAkBvC,GA76C1C,UAg7CPvzD,EAAO/Y,KAAM,yCAAwClF,MAIzDA,KAAKuU,WAAW+9B,OAAOuhC,UAAU7zE,KAAKqM,MAQ1C8nE,aAAaC,EAAiBC,GAI1Bp2D,EAAO/Y,KAAM,sBAAqBlF,KAAQo0E,EAAiBC,GAE3Dr0E,KAAKusE,eAAen9D,QAAQ0S,GAAkBA,KAC9C9hB,KAAKusE,eAAiB,GAElBvsE,KAAKysE,6CACLzsE,KAAKysE,8CAGTzsE,KAAKyc,QAQT+vD,oBAAoBz8D,GACZA,IAAWspC,IAAe57C,OAAOM,WAAaiC,KAAKsrE,qBACnDrtD,EAAO/Y,KAAK,oCACZlF,KAAKgvE,mBACDhvE,KAAKsrE,mBACLtrE,KAAKurE,qBAcjB+I,4BAA4BC,EAAeC,GACvC,MAAMC,EAAc,GAiEpB,OA/DAhiC,EAAE8hC,GAAetiC,KAAK,CAACyiC,EAAI/hC,KACvB,MAAM9lD,EAAO4lD,EAAEE,GAASpxC,KAAK,QAC7B,IAAI+tB,EAAQ,GAEZmjB,EAAEE,GACG1hB,KAAK,uDACLghB,MAAK,WAEF,MAAM9gB,EAAYnxB,KAAK4C,aAAa,aAC9B4tB,EACAiiB,EAAEzyC,MACCixB,KAAK,WACLzrB,KAAI,WAED,OAAOxF,KAAK4C,aAAa,WAE5BzV,MAELqjC,EAAMj6B,SACN+4B,GACQ,gBAAe6B,KACfX,EAAMrtB,KAAK,eAMzBsvC,EAAEE,GAAS1hB,KACT,mDAGJghB,MAAK,WACL,MAAMjtB,EAAOytB,EAAEzyC,MAAMuB,KAAK,QAEtBizE,EAAiB3kC,aAAa7qB,GAC9B/G,EAAO9Y,KACF,yCAAwC6f,GAMjDytB,EAAEzyC,MAAMixB,KAAK,cAAcghB,MAAK,WAC5B3iB,GAAU,UAAStK,KAAQytB,EAAEzyC,MAAMuB,KAAK,UACpCkxC,EAAEzyC,MAAMuB,KAAK,UAAYkxC,EAAEzyC,MAAMuB,KAAK,SAAShL,SAC/C+4B,GAAU,IAAGmjB,EAAEzyC,MAAMuB,KAAK,UAE9B+tB,GAAS,aAKjBklD,EAAiB/mD,MAAMre,QAAQ,CAACqe,EAAOknD,KAC9BloD,IAAQO,SAASS,EAAQ,SAAQ5gC,KAGjC4nF,EAAYE,KACbF,EAAYE,GAAM,IAEtBF,EAAYE,IAAOrlD,OAIpBmlD,EAOXG,gBAAgBl1E,GACZM,KAAK60E,0BAAyB,EAAgBn1E,GAOlDo1E,mBAAmBp1E,GACfM,KAAK60E,0BAAyB,EAAoBn1E,GAWtDm1E,yBAAyBE,EAAOr1E,GAC5B,MAAMs1E,EAAYD,EAAQ,kBAAoB,qBAE1CA,GACA/0E,KAAKgxE,aAAatxE,GA+CtBM,KAAKmsE,kBAAkBjpE,KA5CFyrE,IACjB,IAAK3uE,KAAKghB,eAAe6tD,mBACjB7uE,KAAKghB,eAAe6tD,iBAAiB78C,IAAK,CAC9C,MAAMmqB,EAAY64B,EAAF,oCAKhB,OAHA/2D,EAAOjZ,MAAMm3C,QACbwyB,EAAiBxyB,GAKrBl+B,EAAOrZ,IAAK,cAAaowE,GACzB/2D,EAAOrZ,IACH,yBACA5E,KAAKghB,eAAeotD,oBAExB,MAAMkE,EACA,IAAIpjC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAC7CA,EAAM,IAAIkd,IAAIlvC,KAAKghB,eAAewtD,kBAAkBx8C,KACpDijD,EACAF,EACI/0E,KAAKs0E,4BAA4B50E,EAAMsyB,GACvChyB,KAAKk1E,+BAA+Bx1E,EAAMsyB,GAC9CogD,EACA2C,EACI/0E,KAAKm1E,wBAAwBF,GAC7Bj1E,KAAKo1E,2BAA2BH,GAE1Cj1E,KAAK8uE,aAAasD,EAAa9hE,KAC1BoqB,KAAK,KACF,MAAM+3C,EACA,IAAIvjC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAEnD/T,EAAOrZ,IACAowE,EAAF,gBAA4B1C,EAAaG,GAC9CzyE,KAAKgvE,mBAAmBsD,EAAaG,GACrC9D,KACD3pE,IACCiZ,EAAOjZ,MAASgwE,EAAF,WAAuBhwE,GACrC2pE,EAAiB3pE,OAajCqtE,yBAAyBgD,GACrB,MAAMC,EAAY,IAAIpmC,IAAI,IAe1B,OAbIlvC,KAAKgtE,sBACLsI,EAAUjmC,qBAAsB,GAEhCrvC,KAAK+sE,sBACLuI,EAAUhmC,qBAAsB,GAEhCtvC,KAAKovC,UACLkmC,EAAUlmC,SAAU,GAGxBkmC,EAAUjjC,WAAWgjC,GACrBr1E,KAAKgxE,aAAav+B,EAAE4iC,GAASpkD,KAAK,aAE3BqkD,EAUXF,2BAA2BG,GACvB,MAAMD,EAAYx1D,IAAQ01D,YACpB,IAAItmC,IAAIlvC,KAAKghB,eAAewtD,kBAAkBx8C,KAC9C,IAAIkd,IAAIlvC,KAAKghB,eAAeA,eAAewtD,kBAAkBx8C,KA+BnE,OA7BAujD,EAAenmE,QAAQ,CAACkgB,EAAOsgB,MAE3BtgB,EAAQA,EAAMvsB,MAAM,SACd2N,MACFoP,IAAQ01D,YACRlmD,EAAMlgB,QAAQ5K,IACV8wE,EAAU7nD,MAAMmiB,GACV0lC,EAAU7nD,MAAMmiB,GAAKhuC,QAAW4C,EAAF,OAAc,MAGtD8qB,EAAMlgB,QAAQ5K,IACV,MAAMkrC,EAAM4lC,EAAU7nD,MAAMgoD,UAAUhkD,GAASA,EAAMgC,SAASjvB,IAE1DkrC,GAAO,IACP4lC,EAAU7nD,MAAMiiB,GAAO4lC,EAAU7nD,MAAMiiB,GAAK9tC,QAAW4C,EAAF,OAAc,IAM/Dsb,IAAQsQ,cACRklD,EAAU7nD,MAAMiiB,GAAO4lC,EAAU7nD,MAAMiiB,GAAK9tC,QAAQ,aAAc,oBAMtF0zE,EAAUhlE,IAAMglE,EAAUr9D,QAAUq9D,EAAU7nD,MAAMtqB,KAAK,IAElDmyE,EAUXH,wBAAwBV,GACpB,MAAMa,EAAY,IAAIpmC,IAAIlvC,KAAKghB,eAAewtD,kBAAkBx8C,KAOhE,OALAyiD,EAAYrlE,QAAQ,CAACkgB,EAAOsgB,KACxB0lC,EAAU7nD,MAAMmiB,IAAQtgB,IAE5BgmD,EAAUhlE,IAAMglE,EAAUr9D,QAAUq9D,EAAU7nD,MAAMtqB,KAAK,IAElDmyE,EAYXxG,aAAa4G,GACT,GAA2C,WAAvC11E,KAAKghB,eAAeitD,eAA6B,CACjD,MAAMjpE,EAAQ,IAAI3N,MAAM,4CAIxB,OAFA2I,KAAKm/C,KAAK3/B,aAAa0D,KAAKy3B,IAAW9oD,qBAAsBmT,EAAOhF,MAE7Dg9B,QAAQE,OAAOl4B,GAG1B,MAAMswE,EACAI,GAAqB11E,KAAKghB,eAAewtD,kBAAkBx8C,IAEjE,IAAKsjD,EAAW,CACZ,MAAMtwE,EAAQ,IAAI3N,MAAO,kEAAiE2I,KAAKitC,OAI/F,OAFAjtC,KAAKm/C,KAAK3/B,aAAa0D,KAAKy3B,IAAW9oD,qBAAsBmT,EAAOhF,MAE7Dg9B,QAAQE,OAAOl4B,GAG1B,MAAMwpE,EAAoB,IAAImH,sBAAsB,CAChD1uE,KAAMjH,KAAKorE,YAAc,SAAW,QACpCp5C,IAAKsjD,IAGT,OAAIt1E,KAAKorE,YACEprE,KAAK41E,sBAAsBpH,GAG/BxuE,KAAK61E,sBAAsBrH,GAStCqH,sBAAsBrH,GAGlB,OAFAvwD,EAAOhZ,MAAM,2CAENjF,KAAKghB,eAAe80D,qBAAqBtH,GAC3C9zC,KAAK,KACFzc,EAAOhZ,MAAM,gCAENjF,KAAKghB,eAAe+0D,aAAa/1E,KAAKmrE,kBACxCzwC,KAAKs7C,IACF/3D,EAAOhZ,MAAM,0CAENjF,KAAKghB,eAAe+wD,oBAAoBiE,OAWnEJ,sBAAsBpH,GAGlB,OAFAvwD,EAAOhZ,MAAM,+BAENjF,KAAKghB,eAAe6wD,YAAY7xE,KAAKmrE,kBACvCzwC,KAAKu7C,IACFh4D,EAAOhZ,MAAM,0CAENjF,KAAKghB,eAAe+wD,oBAAoBkE,GAC1Cv7C,KAAK,KACFzc,EAAOhZ,MACH,2CAGGjF,KAAKghB,eAAe80D,qBAAqBtH,OAiBpE0H,aAAaC,EAAUC,GACnB,MAAM1H,EAAeC,IACjB,MAAM2D,EAActyE,KAAKghB,eAAe6tD,iBAAiB78C,IAErDlS,IAAQ01D,cAKJx1E,KAAKghB,eAAe7Z,QAAQimE,uBACzB+I,GAAYC,GAAYA,EAASzL,gBAMpC3qE,KAAKghB,eAAeq1D,qBAInBF,GAAYC,GAAYA,EAASzL,eAMlC3qE,KAAKghB,eAAeq1D,oBAGbF,GAAYA,EAASxL,iBAAmByL,IAK/Cp2E,KAAKghB,eAAeq1D,oBACpBr2E,KAAKghB,eAAeqwD,yBAI5BrxE,KAAKghB,eAAek1D,aAAaC,EAAUC,GACtC17C,KAAK47C,IACF,IAAIv0C,EAAU/E,QAAQC,UAYtB,OAVIq5C,IACIH,GAAYC,IACbp2E,KAAKitC,QAAU0/B,MAClB5qC,EAAU/hC,KAAK8uE,eAAep0C,KAAK,KAC/B,MAAM67C,EAAc,IAAIrnC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KAEjEhyB,KAAKgvE,mBAAmB,IAAI9/B,IAAIojC,GAAciE,MAI/Cx0C,EAAQrH,KAAK,KAChB,GAAI07C,GAAYA,EAASzL,eAGrB,OAAO3qE,KAAKghB,eAAe4yD,sCAGtBl5C,KAAK,IAAM16B,KAAKghB,eAAe2yD,4BAC/Bj5C,KAAK,IAAM16B,KAAKghB,eAAe0yD,qBAI/Ch5C,KAAK,IAAMi0C,IAAoB3pE,GAAS2pE,EAAiB3pE,KAGlE,OAAO,IAAIg4B,QAAQ,CAACC,EAASC,KACzBl9B,KAAKmsE,kBAAkBjpE,KACnBwrE,EACA1pE,IACQA,GACAiZ,EAAOjZ,MAAM,uBAAwBA,GACrCk4B,EAAOl4B,KAEPiZ,EAAO/Y,KAAK,uBACZ+3B,SAgBpBi4C,+BAA+BsB,EAAkBhC,GAC7C,MAAMe,EAAiB,GA2DvB,OAzDA9iC,EAAE+jC,GAAkBvkC,KAAK,CAACyiC,EAAI/hC,KAC1B,MAAM9lD,EAAO4lD,EAAEE,GAASpxC,KAAK,QAC7B,IAAI+tB,EAAQ,GAEZmjB,EAAEE,GACG1hB,KAAK,uDACLghB,MAAK,WAEF,MAAM9gB,EAAYnxB,KAAK4C,aAAa,aAC9B4tB,EACAiiB,EAAEzyC,MACCixB,KAAK,WACLzrB,KAAI,WACD,OAAOxF,KAAK4C,aAAa,WAE5BzV,MAELqjC,EAAMj6B,SACN+4B,GACQ,gBAAe6B,KACfX,EAAMrtB,KAAK,eAK/B,MAAMqtB,EAAQ,GAIRiiB,EAAEE,GAAS1hB,KACT,mDAEJghB,MAAK,WAEL,MAAMjtB,EAAOytB,EAAEzyC,MAAMuB,KAAK,QAE1BivB,EAAMttB,KAAK8hB,MAEfwvD,EAAiB/mD,MAAMre,QAAQ,CAACqe,EAAOknD,KAC9BloD,IAAQO,SAASS,EAAQ,SAAQ5gC,KAGjC0oF,EAAeZ,KAChBY,EAAeZ,GAAM,IAEzBnkD,EAAMphB,QAAQ4V,IACV,MAAMyxD,EACAhqD,IAAQuD,UAAUvC,EAAQ,UAASzI,GAErCyxD,EAAUlgF,SACVg/E,EAAeZ,IAAU8B,EAAUtzE,KAAK,QAAjB,UAG/BoyE,EAAeZ,IAAOrlD,OAIvBimD,EAeXmB,qBAAqBC,EAAeC,GAChC,MAAMC,EACA,IAAI3nC,IAAIlvC,KAAKghB,eAAe6tD,iBAAiB78C,KACnD,IAAI8kD,EAAU,IAAIC,IAAUH,EAAQC,GACpC,MAAMG,EAAaF,EAAQG,cAE3B,GAAIjqF,OAAOuY,KAAKyxE,GAAYzgF,OAKxB,OAJA0nB,EAAOjZ,MACF,GAAEhF,kCAAkC22E,IACrCK,IAEG,EAGXF,EAAU,IAAIC,IAAUF,EAAiBD,GACzC,MAAMM,EAAeJ,EAAQG,cAE7B,OAAIjqF,OAAOuY,KAAK2xE,GAAc3gF,SAC1B0nB,EAAOjZ,MACF,GAAEhF,qCAAqC22E,IACxCO,IAEG,GAcfC,iBAAiB74C,GACb,OAAOt+B,KAAKo3E,6BACR,EAA2B94C,GAC1B5D,KAAK,KAGF,GAAI4D,EAAMqsC,gBAAkB7qD,IAAQ4qD,8BAChC,OAAO1qE,KAAKyzE,uBACP/4C,KAAK,IAAM16B,KAAK4zE,uCAChBl5C,KAAK,IAAM16B,KAAK2zE,8BAarC0D,kBAAkB/4C,GACd,OAAOt+B,KAAKo3E,6BACR,EAA2B94C,GAUnC84C,4BAA4BE,EAAQh5C,GAChC,IAAKA,EACD,OAAOtB,QAAQE,OAAO,kCAE1B,MAAMy5C,EAAgBW,EAAS,kBAAoB,iBAC7C5I,EAAeC,IACjB,MAAMrrD,EAAMtjB,KAAKghB,eAEjB,IAAKsC,EAKD,YAJAqrD,EACK,iBAAgBgI,yCAKzB,MAAMY,EAAcj0D,EAAIurD,iBAAiB78C,KAEnCslD,EACIh0D,EAAIk0D,gBAAgBl5C,GACpBhb,EAAIm0D,eAAen5C,IAGxB5D,KAAK47C,IACEA,GAAqBiB,GAAej0D,EAAIkrD,kBAAkBx8C,IAC1DhyB,KAAK8uE,eACAp0C,KAAK,KAIF16B,KAAK02E,qBACDC,EAAe,IAAIznC,IAAIqoC,IAC3B5I,MAGRA,KAGRA,IAGR,OAAO,IAAI3xC,QAAQ,CAACC,EAASC,KACzBl9B,KAAKmsE,kBAAkBjpE,KACnBwrE,EACA1pE,IACQA,EACAk4B,EAAOl4B,GAEPi4B,QAgBpBy6C,uBAAuBC,EAAaC,GAChC,IAAK53E,KAAKghB,eACN,OAAOgc,QAAQE,OACX,uEAIR,MAAM26C,EAAcF,EAAc,eAAiB,iBAC7CG,EAAcF,EAAc,eAAiB,iBAEnD35D,EAAO/Y,KAAM,eAAc4yE,MAAgBD,aAE3C,MAAMnJ,EAAeC,IACjB,MAAMoJ,EAAkB/3E,KAAKitC,QAAU0/B,IAMjCqL,EACAh4E,KAAKghB,eAAei3D,uBAAuBN,GAE7C33E,KAAK2rE,oBAAsBiM,IAC3B53E,KAAK2rE,kBAAoBiM,EAUrB53E,KAAK8lC,OAASiyC,GACd/3E,KAAKwyE,qBAIb,MAAM0F,EACAl4E,KAAKghB,eAAem3D,uBAClBn4E,KAAK2rE,mBAAqB3rE,KAAK4rE,oBAInCmM,IACQC,GAAsBE,GAC9Bl4E,KAAK8uE,eACAp0C,KACGi0C,EACAA,GAERA,KAIR,OAAO,IAAI3xC,QAAQ,CAACC,EAASC,KACzBl9B,KAAKmsE,kBAAkBjpE,KACnBwrE,EACA1pE,IACQA,EACAk4B,EAAOl4B,GAEPi4B,QAgBpBm7C,eAAetN,GACX,MAAMuN,EACAzN,EAAgB0N,kBAAkBxN,GAClCyN,EACA3N,EAAgB4N,oBAAoB1N,GAU1C,GAPIyN,IACAt6D,EAAO/Y,KAAM,GAAElF,0CAA0Cu4E,KACzDv4E,KAAKgsE,yBAA2BuM,EAChCv4E,KAAKwf,aAAa0D,KACdisD,IAAmBC,iCAAkCpvE,OAGrC,OAApBq4E,EAKA,YAJAp6D,EAAOjZ,MACAhF,KAAF,0EAkBTie,EAAOhZ,MACAjF,KAAF,gCACM,mBAAkBq4E,OAE7Br4E,KAAKmsE,kBAAkBjpE,KAhBFyrE,IACb3uE,KAAK0sE,gBAAgB,mBACd1sE,KAAKy4E,yBAAyBJ,GAGrCr4E,KAAK8uE,eACAp0C,KAAKi0C,EAAkBA,GAE5BA,KAUJ3pE,IACQA,GACAiZ,EAAOjZ,MAAM,0BAA2BA,KAexDyzE,yBAAyBC,GACrB,MAAMC,EACuB,SAAvBD,GAC6B,cAAvBA,GAAsC14E,KAAKorE,aACpB,cAAvBsN,IAAuC14E,KAAKorE,YAQxD,OANIuN,IAAwB34E,KAAK4rE,qBAC7B3tD,EAAOhZ,MACF,GAAEjF,iCAAiC24E,KACxC34E,KAAK4rE,mBAAqB+M,GAGvB34E,KAAKghB,eAAem3D,uBACvBn4E,KAAK2rE,mBAAqB3rE,KAAK4rE,oBAQvCoD,mBAAmB4H,EAAQgC,GAEvB,GAAI54E,KAAKitC,QAAU0/B,IAGf,YAFA1uD,EAAO9Y,KAAM,4BAA2BnF,KAAKitC,kBAKjD,IAAKjtC,KAAKuU,WAAW3K,UAQjB,OANK5J,KAAKsrE,qBACNtrE,KAAKsrE,mBAAqBsL,GAE9B52E,KAAKurE,mBAAqBqN,OAC1B36D,EAAO9Y,KAAK,+DAKhBnF,KAAKsrE,wBAAqB/qE,EAC1BP,KAAKurE,wBAAqBhrE,EAG1B,IAAIs4E,EAAY,IAAI9B,IAAU6B,EAAQhC,GACtC,MAAM9D,EAASn3E,cAAI,CAAEotC,GAAI/oC,KAAKkrE,UAC1BjkE,KAAM,QACLta,EAAE,SAAU,CACTsZ,MAAO,oBACPukB,OAAQ,gBACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAGMwsE,EAAU9oC,SAAS+iC,IAGvC70D,EAAO/Y,KAAK,wBAAyB4tE,EAAOztE,QAC5CrF,KAAKuU,WAAWnG,OACZ0kE,EAAQ,KACR9yE,KAAKswE,sBAAsBwC,GAhyExB,MAkyEP70D,EAAOrZ,IAAI,yBAIfi0E,EAAY,IAAI9B,IAAUH,EAAQgC,GAClC,MAAMr4D,EAAM5kB,cAAI,CAAEotC,GAAI/oC,KAAKkrE,UACvBjkE,KAAM,QACLta,EAAE,SAAU,CACTsZ,MAAO,oBACPukB,OAAQ,aACRq8C,UAAW7mE,KAAKgwE,aAChB3jE,IAAKrM,KAAKqM,MAIOwsE,EAAU9oC,SAASxvB,IAGxCtC,EAAO/Y,KAAK,qBAAsBqb,EAAIlb,QACtCrF,KAAKuU,WAAWnG,OACZmS,EAAK,KAAMvgB,KAAKswE,sBAAsB/vD,GAtzEnC,MAwzEPtC,EAAOrZ,IAAI,0BAsBnB0rE,sBAAsBwI,EAASC,GAC3B,OAAOC,IAEH,MAAMh0E,EAAQ,GAGRi0E,EAAaxmC,EAAEumC,GAAa/nD,KAAK,SAEvC,GAAIgoD,EAAW1iF,OAAQ,CACnByO,EAAM2X,KAAOs8D,EAAW13E,KAAK,QAC7B,MAAM23E,EAAiBzmC,EAAEumC,GAAa/nD,KAAK,gBAEvCioD,EAAe3iF,SACfyO,EAAMwK,OAAS0pE,EAAe,GAAG/4E,SAGrC,MAAMg5E,EAAcF,EAAWhoD,KAAK,SAEhCkoD,EAAY5iF,SACZyO,EAAMF,IAAMq0E,EAAYx3E,QAI3Bq3E,IACDh0E,EAAMwK,OAAS,WAGnBxK,EAAMiT,QAAUjY,KAAKtJ,WAEjBqiF,EACAA,EAAU/zE,GACHhF,KAAKitC,QAAU0/B,KACM,mBAAjB3nE,EAAMwK,OAMjByO,EAAOhZ,MAAO,iBAAgB2H,KAAKwL,UAAUpT,IAE7C4yB,IAAqBC,iBACjB,IAAIxgC,MACC,iBAAgBuV,KAAKwL,UAAUpT,MASpDo0E,wBACI,OAAOp5E,KAAKghB,eAAeq4D,qBAM/B58D,QACIzc,KAAKitC,MAAQ0/B,IACb3sE,KAAKssE,2BAAwB/rE,EAEzBP,KAAKghB,iBACLhhB,KAAKghB,eAAe6sD,eAAiB,KACrC7tE,KAAKghB,eAAemtD,2BAA6B,KACjDnuE,KAAKghB,eAAeutD,oBAAsB,KAC1CvuE,KAAKghB,eAAegtD,uBAAyB,MAIjDhuE,KAAKmsE,kBAAkBt2B,QAEvB71C,KAAKmsE,kBAAkBjpE,KAAKo2E,IAExBt5E,KAAKisE,eAAegD,YAAY,MAGhCjvE,KAAKghB,gBAAkBhhB,KAAKghB,eAAevE,QAC3C68D,MAIJt5E,KAAKmsE,kBAAkBoN,WAO3B7iF,WACI,MAAQ,uBAAsBsJ,KAAK8lC,mBACR9lC,KAAKorE,mBAAmBprE,KAAKqM,OAS5DshE,4BAA2B,UAAE6L,IACzB,IAAKA,IAAcA,EAAUC,uBACzB,OAMJ,MAAM91E,EAAM3D,KAAK05E,mBAEjB,OAAOC,sBAAYh2E,GAAO,GAAM,M,2EC99EzB,KAIXyrE,iCAAkC,mD,6BCJtC,sHAYO,MAAMxmD,EAAsB,4BAWtBgxD,EACP,wC,8BCxBN,mIAYA,MAAM37D,EAASF,oBAAUM,GAInBw7D,EACK,QADLA,EAEQ,WAFRA,EAGY,eAHZA,EAIW,cAJXA,EAKY,eAGZC,EAAWzsF,OAAO,WAElB0sF,EAAmB,CACrBlR,+BAAgC,qCAChCE,wBAAyB,+BAuBtB,MAAMd,UAAmB7tC,IAI5BnkC,YAAYssB,GACR8X,QAEAr6B,KAAKg6E,MAAQz3D,EACbviB,KAAKi6E,MAAQ,IAAIC,IACjBl6E,KAAK6nE,UAAOtnE,EACZP,KAAKm6E,WAAa,EAClBn6E,KAAKo6E,MAAQ,IAAI76D,IAEb0oD,EAAWzqC,eACXx9B,KAAKq6E,gBAELr6E,KAAKg6E,MAAMr4D,GAAGgB,4BAAiD3iB,KAAKs6E,2BAA2BxsF,KAAKkS,OACpGA,KAAKg6E,MAAMr4D,GAAGgB,oBAAyC3iB,KAAKu6E,oBAAoBzsF,KAAKkS,OACrFA,KAAKg6E,MAAMr4D,GAAGgB,kBAAuC3iB,KAAKw6E,kBAAkB1sF,KAAKkS,OACjFA,KAAKg6E,MAAMr4D,GAAGgB,YAAiC3iB,KAAKwoE,mBAAmB16E,KAAKkS,QAE5EA,KAAKi6E,MAAM/8C,OAAO,IAAI7lC,MAAM,sBASpC,qBACI,YAA6B,IAAfnL,OAAOuuF,IAUzB,uBAAuB5sF,GAGnB,OAFAmS,KAAK6nE,KAAOh6E,EAELmS,KAAKm6E,UAUhB,gBAAgBtsF,GAEZmS,KAAK6nE,KAAOh6E,EACZmS,KAAKm6E,YAGL,MAAMO,EAAW,GAEjB,IAAK,MAAMre,KAAer8D,KAAKg6E,MAAMhd,kBAAmB,CACpD,MAAM2d,EAAMte,EAAYG,QAClBoe,EAAU56E,KAAK66E,uBAAuBxe,GAI5C,IAAKue,EAAQ3iE,QAAS,CAClBgG,EAAO9Y,KAAM,oCAAmCw1E,4BAGhD,SAGJ,MAAMxvE,EAAO2vE,cACPnhF,EAAO,CACT,CAAC++C,KAjHQ,MAkHTqiC,IAAK,CACD9zE,KAAM4yE,EACNlgF,KAAM,CACFqhF,WAAYh7E,KAAKi7E,gBAAgBL,EAAQ3iE,SACzC9M,UAINve,EAAI,IAAIstF,IAEdttF,EAAEsuF,iBA7HM,KA8HRtuF,EAAEwwC,MAAM,KACJp9B,KAAKo6E,MAAM12D,OAAOvY,KAEtBnL,KAAKo6E,MAAMh5D,IAAIjW,EAAMve,GACrB8tF,EAASx3E,KAAKtW,GAEdoT,KAAKm7E,aAAaxhF,EAAMghF,GAO5B,aAJM39C,QAAQo+C,WAAWV,GAIlB16E,KAAKm6E,UAShB,sBACIl8D,EAAOhZ,MAAM,uBAEb,UACUw1E,IAAI7vE,OAEV5K,KAAKq7E,YAAc,IAAIZ,IAAIa,QAC3Bt7E,KAAKq7E,YAAYztF,SAEjB,MAAM2tF,EAAS3uE,KAAKsL,MAAMlY,KAAKq7E,YAAYG,iBAE3Cx7E,KAAKy7E,OAASF,EAAOG,WAErBz9D,EAAOhZ,MAAM,oBACbjF,KAAKi6E,MAAMh9C,UACb,MAAO5jC,GACL4kB,EAAOjZ,MAAM,2BAA4B3L,GACzC2G,KAAKi6E,MAAM/8C,OAAO7jC,IAY1B4hF,gBAAgBhjE,GACZ,MAAM0jE,EAAU,GAOhB,YALkBp7E,IAAdP,KAAK6nE,OACL8T,EAAQ9tF,MAAMmS,KAAK6nE,MAAO+T,IAASC,cAAc77E,KAAK6nE,MACtD8T,EAAQG,SAAW97E,KAAKm6E,WAGrBliE,EAAQ8jE,QAAQnvE,KAAKwL,UAAUujE,IAU1Cd,uBAAuBxe,GAGnB,OAFAA,EAAYyd,GAAYzd,EAAYyd,IAAa,GAE1Czd,EAAYyd,GASvB,4BACI77D,EAAOhZ,MAAM,2BAEPjF,KAAKi6E,MAEX,MAAMS,EAAW,GAKjB,IAAK,MAAMre,KAAer8D,KAAKg6E,MAAMhd,kBACjC0d,EAASx3E,KAAKlD,KAAKg8E,iBAAiB3f,UAGlCr/B,QAAQo+C,WAAWV,GAW7B,0BACIz8D,EAAOhZ,MAAM,yBAEPjF,KAAKi6E,MAEX,IAAK,MAAM5d,KAAer8D,KAAKg6E,MAAMhd,kBACjCh9D,KAAKwoE,mBAAmBnM,EAAYG,QAASH,GAG7Cr8D,KAAKq7E,cACLr7E,KAAKq7E,YAAYY,OACjBj8E,KAAKq7E,iBAAc96E,GAU3B,iCAAiC87D,EAAa5pC,GAC1C,GA7PiB,QA6PbA,EAAQimB,KACR,OAGJ,IAAKjmB,EAAQsoD,IAGT,YAFA98D,EAAO9Y,KAAK,uCAKVnF,KAAKi6E,MAEX,MAAMn1E,EAAM2tB,EAAQsoD,IACdJ,EAAMte,EAAYG,QAClBoe,EAAU56E,KAAK66E,uBAAuBxe,GAE5C,OAAQv3D,EAAImC,MACZ,KAAK4yE,EACD,GAAIe,EAAQ3iE,QACRgG,EAAO9Y,KAAM,eAAcw1E,2BAE3B36E,KAAKk8E,WAAW7f,EAAa,mCAC1B,CAGH,MAAMpkD,EAAU,IAAIwiE,IAAI0B,QAExBlkE,EAAQmkE,gBAAgBp8E,KAAKq7E,YAAav2E,EAAInL,KAAK0iF,MAAOv3E,EAAInL,KAAK2iF,OACnE1B,EAAQ3iE,QAAUA,EAGlB,MAAMskE,EAAM,CACR,CAAC7jC,KA7RI,MA8RLqiC,IAAK,CACD9zE,KAAM4yE,EACNlgF,KAAM,CACFqhF,WAAYh7E,KAAKi7E,gBAAgBhjE,GACjC9M,KAAMrG,EAAInL,KAAKwR,QAK3BnL,KAAKm7E,aAAaoB,EAAK5B,GAE3B,MAEJ,KAAKd,EACD,GAAIe,EAAQ3iE,QACRgG,EAAO9Y,KAAM,eAAcw1E,2BAE3B36E,KAAKk8E,WAAW7f,EAAa,yBAC1B,GAAIv3D,EAAInL,KAAKwR,OAASyvE,EAAQ4B,mBAAoB,CACrD,MAAM,WAAExB,GAAel2E,EAAInL,KACrB/M,EAAIoT,KAAKo6E,MAAMjtF,IAAI2X,EAAInL,KAAKwR,MAC5B8M,EAAU,IAAIwiE,IAAI0B,QAExBlkE,EAAQwkE,eAAez8E,KAAKq7E,YAAaL,EAAWljE,MAGpD9X,KAAKq7E,YAAYqB,qBAAqBzkE,GAGtC,MAAMte,EAAOse,EAAQ0kE,QAAQ3B,EAAW/zE,KAAM+zE,EAAWljE,MAEzD8iE,EAAQ3iE,QAAUA,EAClB2iE,EAAQ4B,wBAAqBj8E,EAE7B0d,EAAOhZ,MAAO,gCAA+B01E,GAC7C36E,KAAKwf,aAAa0D,KAAK62D,EAAiBlR,+BAAgC8R,GAExE36E,KAAKo6E,MAAM12D,OAAO5e,EAAInL,KAAKwR,MAC3Bve,EAAEqwC,UAEF,MAAMqiB,EAAOs9B,EAAcjjF,GAE3B,GAAI2lD,EAAKzxD,IAAK,CACV,MAAMA,EAAM+tF,IAASiB,YAAYv9B,EAAKzxD,KAChCiuF,EAAWx8B,EAAKw8B,SAEtBlB,EAAQkC,QAAUjvF,EAClBmS,KAAKwf,aAAa0D,KAAK62D,EAAiBhR,wBAAyB4R,EAAK9sF,EAAKiuF,SAG/E79D,EAAO9Y,KAAK,oCAEZnF,KAAKk8E,WAAW7f,EAAa,gBAEjC,MAEJ,KAAKwd,EACD57D,EAAOjZ,MAAMF,EAAInL,KAAKqL,OAEtB,MAEJ,KAAK60E,EACD,GAAIe,EAAQ3iE,QAAS,CACjB,MAAM,WAAE+iE,GAAel2E,EAAInL,KAErB2lD,EAAOs9B,EADAhC,EAAQ3iE,QAAQ0kE,QAAQ3B,EAAW/zE,KAAM+zE,EAAWljE,OAGjE,QAAiBvX,IAAb++C,EAAKzxD,UAAuC0S,IAAlB++C,EAAKw8B,SAAwB,CACvD,MAAMjuF,IAAMyxD,EAAKzxD,KAAM+tF,IAASiB,YAAYv9B,EAAKzxD,KAC3CiuF,EAAWx8B,EAAKw8B,SAEjBiB,IAAQnC,EAAQkC,QAASjvF,KAC1B+sF,EAAQkC,QAAUjvF,EAClBmS,KAAKwf,aAAa0D,KAAK62D,EAAiBhR,wBAAyB4R,EAAK9sF,EAAKiuF,IAI/E,MAAMS,EAAM,CACR,CAAC7jC,KA5WA,MA6WDqiC,IAAK,CACD9zE,KAAM4yE,EACNlgF,KAAM,CACFqhF,WAAYh7E,KAAKi7E,gBAAgBL,EAAQ3iE,SACzC9M,KAAMrG,EAAInL,KAAKwR,QAK3BnL,KAAKm7E,aAAaoB,EAAK5B,SAG3B18D,EAAOhZ,MAAO,kCAAiC01E,sCAE/C36E,KAAKk8E,WAAW7f,EAAa,8CAEjC,MAEJ,KAAKwd,EACD,GAAIe,EAAQ3iE,QAAS,CACjB,MAAM,WAAE+iE,GAAel2E,EAAInL,KAErB2lD,EAAOs9B,EADAhC,EAAQ3iE,QAAQ0kE,QAAQ3B,EAAW/zE,KAAM+zE,EAAWljE,OAGjE,QAAiBvX,IAAb++C,EAAKzxD,UAAuC0S,IAAlB++C,EAAKw8B,SAAwB,CACvD,MAAMjuF,IAAMyxD,EAAKzxD,KAAM+tF,IAASiB,YAAYv9B,EAAKzxD,KAC3CiuF,EAAWx8B,EAAKw8B,SAEjBiB,IAAQnC,EAAQkC,QAASjvF,KAC1B+sF,EAAQkC,QAAUjvF,EAClBmS,KAAKwf,aAAa0D,KAAK62D,EAAiBhR,wBAAyB4R,EAAK9sF,EAAKiuF,IAInF,MAAMlvF,EAAIoT,KAAKo6E,MAAMjtF,IAAI2X,EAAInL,KAAKwR,MAElCnL,KAAKo6E,MAAM12D,OAAO5e,EAAInL,KAAKwR,MAC3Bve,EAAEqwC,eAEFhf,EAAOhZ,MAAO,sCAAqC01E,sCAEnD36E,KAAKk8E,WAAW7f,EAAa,mDAazCmM,mBAAmBthE,EAAIm1D,GACnBp+C,EAAOhZ,MAAO,eAAciC,UAE5B,MAAM0zE,EAAU56E,KAAK66E,uBAAuBxe,GAExCue,EAAQ3iE,UACR2iE,EAAQ3iE,QAAQgkE,OAChBrB,EAAQ3iE,aAAU1X,GAW1B27E,WAAW7f,EAAar3D,GACpB,MAAM21E,EAAMte,EAAYG,QAClBrsD,EAAM,CACR,CAACuoC,KAxbY,MAybbqiC,IAAK,CACD9zE,KAAM4yE,EACNlgF,KAAM,CACFqL,WAKZhF,KAAKm7E,aAAahrE,EAAKwqE,GAW3BQ,aAAaxhF,EAAMwxB,GACfnrB,KAAKg6E,MAAMhxC,YAAYrvC,EAAMwxB,GAUjC6wD,iBAAiB3f,GACb,MAAMse,EAAMte,EAAYG,QAClBoe,EAAU56E,KAAK66E,uBAAuBxe,GAE5C,GAAIue,EAAQ3iE,QAGR,OAFAgG,EAAO9Y,KAAM,iCAAgCw1E,mCAEtC39C,QAAQE,SAGnB,QAAmC38B,IAA/Bq6E,EAAQ4B,mBAGR,OAFAv+D,EAAO9Y,KAAM,iCAAgCw1E,2CAEtC39C,QAAQE,SAInBl9B,KAAKq7E,YAAY2B,uBAAuB,GAExC,MAAMC,EAASrwE,KAAKsL,MAAMlY,KAAKq7E,YAAY6B,iBACrCZ,EAAQtvF,OAAOo2B,OAAO65D,EAAOvB,YAAY,GAE/C,IAAKY,EACD,OAAOt/C,QAAQE,OAAO,IAAI7lC,MAAM,+BAIpC2I,KAAKq7E,YAAY8B,yBAEjB,MAAMhyE,EAAO2vE,cACPlwE,EAAO,CACT,CAAC8tC,KAtfY,MAufbqiC,IAAK,CACD9zE,KAAM4yE,EACNlgF,KAAM,CACF0iF,MAAOr8E,KAAKy7E,OACZa,QACAnxE,UAKNve,EAAI,IAAIstF,IAcd,OAZAttF,EAAEsuF,iBApgBU,KAqgBZtuF,EAAEwwC,MAAM,KACJp9B,KAAKo6E,MAAM12D,OAAOvY,GAClByvE,EAAQ4B,wBAAqBj8E,IAEjCP,KAAKo6E,MAAMh5D,IAAIjW,EAAMve,GAErBoT,KAAKm7E,aAAavwE,EAAM+vE,GAGxBC,EAAQ4B,mBAAqBrxE,EAEtBve,GAYf,SAASgwF,EAAcjjF,GACnB,IACI,OAAOiT,KAAKsL,MAAMve,GACpB,MAAON,GACL,MAAO,IAZf4uE,EAAW17B,OAASwtC,I,sEChiBpBjuF,EAAQmjE,WAuCR,SAAqBmuB,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClD1xF,EAAQ+wF,YAiDR,SAAsBO,GACpB,IAAIhN,EAcA9jF,EAbA+wF,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBlnF,EAAM,IAAIsnF,EAVhB,SAAsBL,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BE,CAAYN,EAAKG,EAAUC,IAEzCG,EAAU,EAGVxlF,EAAMqlF,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKjxF,EAAI,EAAGA,EAAI6L,EAAK7L,GAAK,EACxB8jF,EACGwN,EAAUR,EAAI7lF,WAAWjL,KAAO,GAChCsxF,EAAUR,EAAI7lF,WAAWjL,EAAI,KAAO,GACpCsxF,EAAUR,EAAI7lF,WAAWjL,EAAI,KAAO,EACrCsxF,EAAUR,EAAI7lF,WAAWjL,EAAI,IAC/B6J,EAAIwnF,KAAcvN,GAAO,GAAM,IAC/Bj6E,EAAIwnF,KAAcvN,GAAO,EAAK,IAC9Bj6E,EAAIwnF,KAAmB,IAANvN,EAGK,IAApBoN,IACFpN,EACGwN,EAAUR,EAAI7lF,WAAWjL,KAAO,EAChCsxF,EAAUR,EAAI7lF,WAAWjL,EAAI,KAAO,EACvC6J,EAAIwnF,KAAmB,IAANvN,GAGK,IAApBoN,IACFpN,EACGwN,EAAUR,EAAI7lF,WAAWjL,KAAO,GAChCsxF,EAAUR,EAAI7lF,WAAWjL,EAAI,KAAO,EACpCsxF,EAAUR,EAAI7lF,WAAWjL,EAAI,KAAO,EACvC6J,EAAIwnF,KAAcvN,GAAO,EAAK,IAC9Bj6E,EAAIwnF,KAAmB,IAANvN,GAGnB,OAAOj6E,GA3FTrK,EAAQ+vF,cAkHR,SAAwBgC,GAQtB,IAPA,IAAIzN,EACAj4E,EAAM0lF,EAAMtnF,OACZunF,EAAa3lF,EAAM,EACnB6L,EAAQ,GAIH1X,EAAI,EAAGyxF,EAAO5lF,EAAM2lF,EAAYxxF,EAAIyxF,EAAMzxF,GAH9B,MAInB0X,EAAMd,KAAK86E,EACTH,EAAOvxF,EAAIA,EALM,MAKgByxF,EAAOA,EAAQzxF,EAL/B,QAUF,IAAfwxF,GACF1N,EAAMyN,EAAM1lF,EAAM,GAClB6L,EAAMd,KACJ+6E,EAAO7N,GAAO,GACd6N,EAAQ7N,GAAO,EAAK,IACpB,OAEsB,IAAf0N,IACT1N,GAAOyN,EAAM1lF,EAAM,IAAM,GAAK0lF,EAAM1lF,EAAM,GAC1C6L,EAAMd,KACJ+6E,EAAO7N,GAAO,IACd6N,EAAQ7N,GAAO,EAAK,IACpB6N,EAAQ7N,GAAO,EAAK,IACpB,MAIJ,OAAOpsE,EAAMb,KAAK,KA3IpB,IALA,IAAI86E,EAAS,GACTL,EAAY,GACZH,EAA4B,oBAAfzyB,WAA6BA,WAAa50D,MAEvDumB,EAAO,mEACFrwB,EAAI,EAAG6L,EAAMwkB,EAAKpmB,OAAQjK,EAAI6L,IAAO7L,EAC5C2xF,EAAO3xF,GAAKqwB,EAAKrwB,GACjBsxF,EAAUjhE,EAAKplB,WAAWjL,IAAMA,EAQlC,SAASgxF,EAASF,GAChB,IAAIjlF,EAAMilF,EAAI7mF,OAEd,GAAI4B,EAAM,EAAI,EACZ,MAAM,IAAId,MAAM,kDAKlB,IAAIkmF,EAAWH,EAAIx5E,QAAQ,KAO3B,OANkB,IAAd25E,IAAiBA,EAAWplF,GAMzB,CAAColF,EAJcA,IAAaplF,EAC/B,EACA,EAAKolF,EAAW,GAsEtB,SAASS,EAAaH,EAAO9gE,EAAOmhE,GAGlC,IAFA,IAAI9N,EARoBx4E,EASpBwtE,EAAS,GACJ94E,EAAIywB,EAAOzwB,EAAI4xF,EAAK5xF,GAAK,EAChC8jF,GACIyN,EAAMvxF,IAAM,GAAM,WAClBuxF,EAAMvxF,EAAI,IAAM,EAAK,QACP,IAAfuxF,EAAMvxF,EAAI,IACb84E,EAAOliE,KAdF+6E,GADiBrmF,EAeMw4E,IAdT,GAAK,IACxB6N,EAAOrmF,GAAO,GAAK,IACnBqmF,EAAOrmF,GAAO,EAAI,IAClBqmF,EAAa,GAANrmF,IAaT,OAAOwtE,EAAOjiE,KAAK,IAjGrBy6E,EAAU,IAAIrmF,WAAW,IAAM,GAC/BqmF,EAAU,IAAIrmF,WAAW,IAAM,I,6BCnB/B,6CAQA,SAAS4mF,EAAYC,EAAQC,GAEzB,IAAKA,EACD,OAAO,EAIX,GAAID,EAAO7nF,SAAW8nF,EAAO9nF,OACzB,OAAO,EAGX,IAAK,IAAIjK,EAAI,EAAGC,EAAI6xF,EAAO7nF,OAAQjK,EAAIC,EAAGD,IAEtC,GAAI8xF,EAAO9xF,aAAc8J,OAASioF,EAAO/xF,aAAc8J,OAEnD,IAAKgoF,EAAO9xF,GAAGgyF,OAAOD,EAAO/xF,IACzB,OAAO,OAER,GAAI8xF,EAAO9xF,KAAO+xF,EAAO/xF,GAG5B,OAAO,EAIf,OAAO,EAQI,SAASyqF,EAAUwH,EAAOC,GAGrC,GAFAx+E,KAAKu+E,MAAQA,EACbv+E,KAAKw+E,SAAWA,GACXD,EACD,MAAM,IAAIlnF,MAAM,yBACb,IAAKmnF,EACR,MAAM,IAAInnF,MAAM,4BAQxB0/E,EAAU7oF,UAAU+oF,YAAc,WAE9B,MAAMwH,EAAWz+E,KAAKu+E,MAAMhvC,kBACtBmvC,EAAe1+E,KAAKw+E,SAASjvC,kBAC7BovC,EAAW,GAoFjB,OAlFA3xF,OAAOuY,KAAKm5E,GAActvE,QAAQwvE,IAC9B,MAAMC,EAAUJ,EAASG,GACnBE,EAAcJ,EAAaE,GAE5BC,IAAWC,GAQhB9xF,OAAOuY,KAAKu5E,EAAYtuD,OAAOphB,QAAQ4V,IACnC,IAAkD,IAA9Ch4B,OAAOuY,KAAKs5E,EAAQruD,OAAO5sB,QAAQohB,GAG9B25D,EAASC,KACVD,EAASC,GAAkB,CACvBnvC,WAAYqvC,EAAYrvC,WACxBC,IAAKovC,EAAYpvC,IACjBlf,MAAO,GACPM,WAAY,KAGpB6tD,EAASC,GAAgBpuD,MAAMxL,GAAQ85D,EAAYtuD,MAAMxL,QACtD,GAAI85D,EAAYtuD,MAAMxL,GAAMsK,OACpBuvD,EAAQruD,MAAMxL,GAAMsK,MAAO,MAGO/uB,IADvBs+E,EAAQruD,MAAMxL,GAAMsK,MAAM2B,KAC5CzsB,IAAkC,IAA1BA,EAAKZ,QAAQ,iBAEoBrD,IADtBu+E,EAAYtuD,MAAMxL,GAAMsK,MAAM2B,KACjDzsB,IAAkC,IAA1BA,EAAKZ,QAAQ,YAGhB+6E,EAASC,KACVD,EAASC,GAAkB,CACvBnvC,WAAYqvC,EAAYrvC,WACxBC,IAAKovC,EAAYpvC,IACjBlf,MAAO,GACPM,WAAY,KAGpB6tD,EAASC,GAAgBpuD,MAAMxL,GACzB85D,EAAYtuD,MAAMxL,OAMpC85D,EAAYhuD,WAAW1hB,QAAQ2vE,IAG3B,IAAIxtE,GAAU,EAEd,IAAK,IAAIjlB,EAAI,EAAGA,EAAIuyF,EAAQ/tD,WAAWv6B,OAAQjK,IAAK,CAChD,MAAM0yF,EAAcH,EAAQ/tD,WAAWxkC,GAEvC,GAAIyyF,EAAe5tD,YAAc6tD,EAAY7tD,WACtCgtD,EAAYY,EAAevuD,MAAOwuD,EAAYxuD,OAAQ,CAEzDjf,GAAU,EACV,OAIHA,IAIIotE,EAASC,KACVD,EAASC,GAAkB,CACvBnvC,WAAYqvC,EAAYrvC,WACxBC,IAAKovC,EAAYpvC,IACjBlf,MAAO,GACPM,WAAY,KAGpB6tD,EAASC,GAAgB9tD,WAAW5tB,KAAK67E,OAvE7CJ,EAASC,GAAkBE,IA4E5BH,GAMX5H,EAAU7oF,UAAU6hD,SAAW,SAASkvC,GACpC,MAAMC,EAAgBl/E,KAAKi3E,cAE3B,IAAIkI,GAAW,EA+Df,OA7DAnyF,OAAOuY,KAAK25E,GAAe9vE,QAAQqgC,IAC/B0vC,GAAW,EACX,MAAM1xD,EAAQyxD,EAAczvC,GAE5BwvC,EAAOtyF,EAAE,UAAW,CAAEE,KAAM4gC,EAAMiiB,MAElCuvC,EAAOtyF,EAAE,cACL,CAAEsZ,MAAO,6BACLwnB,MAAOA,EAAMiiB,MAKrB1iD,OAAOuY,KAAKkoB,EAAM+C,OAAOphB,QAAQmyC,IAC7B,MAAM69B,EAAY3xD,EAAM+C,MAAM+wB,GAE9B09B,EAAOtyF,EAAE,SAAU,CAAEsZ,MAAO,oCAC5Bg5E,EAAOzjF,MAAM,CAAEwpB,KAAMo6D,EAAUp6D,OAG/Bo6D,EAAU9vD,MAAMlgB,QAAQ5K,IACpB,MAAMorC,EAAMprC,EAAKZ,QAAQ,KACnBgtC,EAAKpsC,EAAK4Q,OAAOw6B,EAAM,GAG7B,GADAqvC,EAAOtyF,EAAE,cACgB,IAArBikD,EAAGhtC,QAAQ,KACXq7E,EAAOzjF,MAAM,CAAE3O,KAAM+jD,QAClB,CACH,MAAMyuC,EAAKzuC,EAAG7tC,MAAM,IAAK,GACnBlW,EAAOwyF,EAAG,GACV9xF,EAAQk/B,IAAQC,mBAAmB2yD,EAAG,IAE5CJ,EAAOzjF,MAAM,CAAE3O,SACfoyF,EAAOzjF,MAAM,CAAEjO,UAEnB0xF,EAAO94E,OAEX84E,EAAO94E,OAIXsnB,EAAMqD,WAAW1hB,QAAQyiB,IACjBA,EAAUrB,MAAMj6B,SAEhB0oF,EAAOtyF,EAAE,aAAc,CACnBwkC,UAAWU,EAAUV,UACrBlrB,MAAO,oCAGX4rB,EAAUrB,MAAMphB,QAAQ4V,IACpBi6D,EAAOtyF,EAAE,SAAU,CAAEq4B,SAChB7e,OAET84E,EAAO94E,QAIf84E,EAAO94E,KACP84E,EAAO94E,OAGJg5E,I,cCtNX,IAOIG,EACAC,EARAvrB,EAAUjoE,EAAOD,QAAU,GAU/B,SAAS0zF,IACL,MAAM,IAAInoF,MAAM,mCAEpB,SAASooF,IACL,MAAM,IAAIpoF,MAAM,qCAsBpB,SAASqoF,EAAWC,GAChB,GAAIL,IAAqB/0E,WAErB,OAAOA,WAAWo1E,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqB/0E,WAEhE,OADA+0E,EAAmB/0E,WACZA,WAAWo1E,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,GAC/B,MAAMtmF,GACJ,IAEI,OAAOimF,EAAiB7yF,KAAK,KAAMkzF,EAAK,GAC1C,MAAMtmF,GAEJ,OAAOimF,EAAiB7yF,KAAKuT,KAAM2/E,EAAK,MAvCnD,WACG,IAEQL,EADsB,mBAAf/0E,WACYA,WAEAi1E,EAEzB,MAAOnmF,GACLimF,EAAmBE,EAEvB,IAEQD,EADwB,mBAAjB9xE,aACcA,aAEAgyE,EAE3B,MAAOpmF,GACLkmF,EAAqBE,GAjB5B,GAwED,IAEIG,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaF,IAGlBE,GAAW,EACPF,EAAarpF,OACbspF,EAAQD,EAAa5lF,OAAO6lF,GAE5BE,GAAc,EAEdF,EAAMtpF,QACN0pF,KAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAIlyE,EAAU8xE,EAAWM,GACzBF,GAAW,EAGX,IADA,IAAI3nF,EAAM0nF,EAAMtpF,OACV4B,GAAK,CAGP,IAFAynF,EAAeC,EACfA,EAAQ,KACCE,EAAa5nF,GACdynF,GACAA,EAAaG,GAAYh4E,MAGjCg4E,GAAc,EACd5nF,EAAM0nF,EAAMtpF,OAEhBqpF,EAAe,KACfE,GAAW,EAnEf,SAAyBI,GACrB,GAAIX,IAAuB9xE,aAEvB,OAAOA,aAAayyE,GAGxB,IAAKX,IAAuBE,IAAwBF,IAAuB9xE,aAEvE,OADA8xE,EAAqB9xE,aACdA,aAAayyE,GAExB,IAEWX,EAAmBW,GAC5B,MAAO7mF,GACL,IAEI,OAAOkmF,EAAmB9yF,KAAK,KAAMyzF,GACvC,MAAO7mF,GAGL,OAAOkmF,EAAmB9yF,KAAKuT,KAAMkgF,KAgD7CC,CAAgBvyE,IAiBpB,SAASwyE,EAAKT,EAAK/uD,GACf5wB,KAAK2/E,IAAMA,EACX3/E,KAAK4wB,MAAQA,EAYjB,SAASyvD,KA5BTrsB,EAAQssB,SAAW,SAAUX,GACzB,IAAIx9C,EAAO,IAAI/rC,MAAM+K,UAAU5K,OAAS,GACxC,GAAI4K,UAAU5K,OAAS,EACnB,IAAK,IAAIjK,EAAI,EAAGA,EAAI6U,UAAU5K,OAAQjK,IAClC61C,EAAK71C,EAAI,GAAK6U,UAAU7U,GAGhCuzF,EAAM38E,KAAK,IAAIk9E,EAAKT,EAAKx9C,IACJ,IAAjB09C,EAAMtpF,QAAiBupF,GACvBJ,EAAWO,IASnBG,EAAKlyF,UAAU6Z,IAAM,WACjB/H,KAAK2/E,IAAI/9C,MAAM,KAAM5hC,KAAK4wB,QAE9BojC,EAAQusB,MAAQ,UAChBvsB,EAAQl0C,SAAU,EAClBk0C,EAAQwsB,IAAM,GACdxsB,EAAQysB,KAAO,GACfzsB,EAAQjgB,QAAU,GAClBigB,EAAQ0sB,SAAW,GAInB1sB,EAAQryC,GAAK0+D,EACbrsB,EAAQpwB,YAAcy8C,EACtBrsB,EAAQtoB,KAAO20C,EACfrsB,EAAQvlB,IAAM4xC,EACdrsB,EAAQlyC,eAAiBu+D,EACzBrsB,EAAQvwC,mBAAqB48D,EAC7BrsB,EAAQ9wC,KAAOm9D,EACfrsB,EAAQ7lB,gBAAkBkyC,EAC1BrsB,EAAQ5lB,oBAAsBiyC,EAE9BrsB,EAAQ9lB,UAAY,SAAUrhD,GAAQ,MAAO,IAE7CmnE,EAAQE,QAAU,SAAUrnE,GACxB,MAAM,IAAIwK,MAAM,qCAGpB28D,EAAQ2sB,IAAM,WAAc,MAAO,KACnC3sB,EAAQ4sB,MAAQ,SAAUC,GACtB,MAAM,IAAIxpF,MAAM,mCAEpB28D,EAAQ8sB,MAAQ,WAAa,OAAO,I,6BCvLpC,kCAgBA50F,OAAO60F,aAAe70F,OAAO60F,cAAgB70F,OAAO80F,mBAEpD,IAAI/yC,EAAU,KAkEC,SAASgzC,EAAoB1/D,EAAQ2/D,EAAU11E,GAC1DxL,KAAKuhB,OAASA,EACdvhB,KAAKmhF,WAAa,KAClBnhF,KAAKohF,cAAgBF,EACrBlhF,KAAK2oC,WAAa,EAClB3oC,KAAKwL,SAAWA,EArEhBtf,OAAO60F,eACP9yC,EAAU,IAAI8yC,aAUd9yC,EAAQozC,SAAWpzC,EAAQozC,WAgE/BJ,EAAoB/yF,UAAU6uB,MAAQ,WAClC,IAAKkkE,EAAoBK,wBACrB,OAEJrzC,EAAQjjC,SACR,MAAMu2E,EAAWtzC,EAAQuzC,iBAEzBD,EAASE,sBAxF2B,GAyFpCF,EAASG,QA/FsB,KAiGhBzzC,EAAQ0zC,wBAAwB3hF,KAAKuhB,QAE7C9V,QAAQ81E,GAEfvhF,KAAKmhF,WAAa7kD,YACd,KACI,MAAM1L,EAAQ,IAAIo6B,WAAWu2B,EAASK,mBAEtCL,EAASM,sBAAsBjxD,GAC/B,MAAM+X,EA3ElB,SAAoCm5C,GAEhC,IAAIC,EAAY,EAEhB,MAAMxrF,EAASurF,EAAQvrF,OAEvB,IAAK,IAAIjK,EAAI,EAAGA,EAAIiK,EAAQjK,IACpBy1F,EAAYD,EAAQx1F,KACpBy1F,EAAYD,EAAQx1F,IAI5B,OAAO01F,aAAaD,EAAY,KAAO,KAAKE,QAAQ,IA+DzBC,CAA2BtxD,GAM9C5wB,KAAK2oC,WA5DjB,SAAsBw5C,EAAUC,GAC5B,IAAI70F,EAAQ,EACZ,MAAM80F,EAAOD,EAAYD,EAUzB,OAPI50F,EADA80F,EAAO,GACCD,EAAY,GACbC,GAAQ,GACPD,EAAY,GAEZD,EAGLH,WAAWz0F,EAAM00F,QAAQ,IAgDNK,CAAa35C,EAAY3oC,KAAK2oC,YAChD3oC,KAAKwL,SAASxL,KAAK2oC,aAEvB3oC,KAAKohF,gBAObH,EAAoB/yF,UAAU01B,KAAO,WAC7B5jB,KAAKmhF,aACL7mD,cAAct6B,KAAKmhF,YACnBnhF,KAAKmhF,WAAa,OAU1BF,EAAoBK,sBAAwB,WACxC,OAAO3oD,QAAQsV,K,6BChJnB,kCAAO,MAAM9tB,EAAuB,uD,8BCApC,mHAOA,MAAMlC,EAASb,EAAQ,GAAqBW,UAAUM,GAKhDkkE,EAAsB,CAAE,WAAY,OAAQ,OAAQ,QACpDC,EAAkC,CAAE,WAAY,OAAQ,QAGjDC,EAAiC,2BAO9C,SAASC,EAAkBhrF,EAAGC,GAC1B,IAAIsmC,EAAM,EAMV,OAJAukD,EAAgCG,KAAK90F,GACiC,KAAjEowC,EAAQvmC,EAAE7J,GAAO8J,EAAE9J,GAAS,EAAQ6J,EAAE7J,GAAO8J,EAAE9J,KAAU,IAGvDowC,EAUX,SAAS2kD,EAAY5nC,EAAYlyC,GAC7B,MAAM+5E,EAAmB7nC,EAAW15C,KAAKohF,GAAmBh9E,OACxD,CAACo9E,EAAkB5nC,IACfqnC,EAAoB78E,OAChB,CAAC0qE,EAAKviF,EAAK+hD,IACPwgC,GACe,IAARxgC,EAAY,GAAK,MACjBsL,EAASrtD,GAAOqtD,EAASrtD,GAAO,IAC3C,IANyB,IAO5B,IACHk1F,EAAiBj6E,EAASxH,OAAOoE,OACnC,CAAC0qE,EAAK4S,IAAe5S,EAAM4S,EAAR,IAAoB,IAE3C,OAAO1oF,mBAASuoF,EAAmBE,GAMxB,MAAMrpC,UAAatf,IAO9BnkC,YAAYse,EAAa,GAAIrT,EAAO,8BAIhC,GAHAm5B,QACAr6B,KAAKkB,KAAOA,EACZlB,KAAKoyD,MAAQ79C,EAAW69C,OACnBpyD,KAAKoyD,MACN,MAAM,IAAI/6D,MACN,uDAIR2I,KAAKijF,sBAAwBj2F,OAAOY,OAAO,MAC3CoS,KAAKkjF,aAAel2F,OAAOY,OAAO,MAClCoS,KAAK+zC,QAAU,GACf/zC,KAAKmjF,MAAQ,IAAIriE,IAEjB,MAAMs8B,EAAO7oC,EAAW6oC,KAExBA,EAAKxZ,YAAY+W,IAAWrrD,gBACxB6vD,GAAQn/C,KAAKojF,aAAajkC,IAC9B/B,EAAKxZ,YAAY+W,IAAWprD,kBACxB4vD,GAAQn/C,KAAKqjF,gBAAgBlkC,IACjCnyD,OAAOuY,KAAK63C,EAAK+lC,OAAO/zE,QAAQzL,IAC5B3D,KAAKojF,aAAahmC,EAAK+lC,MAAMx/E,MAGjClI,UAAQ+D,aAAa,OAAQ,mCAC7BQ,KAAKoyD,MAAMtY,WAAWr+C,UAAQK,GAAGwnF,MACjC/uE,EAAWxG,WAAW/N,KAAKujF,YAAYz1F,KAAKkS,MAAOvE,UAAQK,GAAGwnF,MAE9DtjF,KAAKwjF,iBAAmBxjF,KAAKyjF,yBAAyB31F,KAAKkS,MAU/D85C,WAAWkpC,EAASU,GAAS,GACzB1jF,KAAKoyD,MAAMtY,WAAWkpC,GACtBhjF,KAAK2jF,mBACDD,GACA1jF,KAAK0jF,SAWbE,cAAcZ,EAASU,GAAS,GAC5B1jF,KAAKoyD,MAAMwxB,cAAcZ,GACzBhjF,KAAK2jF,mBACDD,GACA1jF,KAAK0jF,SAObA,SACI1jF,KAAKmjF,MAAM/zE,QAAQ+vC,GAAQA,EAAKzxC,gBASpCm2E,YAAYlgF,EAAKiK,EAAU,KACvB,MAAMtG,EACA3D,KAAO3D,KAAKkjF,aAAeljF,KAAKkjF,aAAav/E,GAAO,KAE1D,IAAK2D,KAAUA,EAAKysC,WAAW/zC,KAAKijF,uBAAwB,CACxD,MAAM/hF,EAAOoG,EAAQ,GAAEA,EAAKpG,QAAQoG,EAAKysC,UAAY,KAErD,OAAO/zC,KAAK8jF,cAAcngF,EAAKzC,EAAM0M,GAChC8sB,KAAK,EAAG5xB,WAAUkyC,iBACf,GAAI1zC,EAAM,CACN,MAAMy8E,EAAMnB,EACRxsF,MAAMO,KAAKqkD,GACX5kD,MAAMO,KAAKmS,IAETk7E,EAAgB,GAAE18E,EAAKpG,QAAQ6iF,IAErC,OAAIC,IAAiB9iF,GACjBlB,KAAKijF,sBAAsBe,GAAgBl7E,EAEpCA,GAIP9I,KAAKijF,sBAAsBe,GACpBhkF,KAAKijF,sBAAsBe,IAGtC/lE,EAAOjZ,MAAO,iBAAgB9D,kBAC1B8iF,KAEGhnD,QAAQE,OAAOulD,IAG1B,OAAO35E,IAInB,OAAOk0B,QAAQC,QAAQj9B,KAAKijF,sBAAsB37E,EAAKysC,UAS3DgH,yBAAyBp3C,EAAKzC,EAAM0M,EAAU,KAC1C,OAAO5N,KAAK8jF,cAAcngF,EAAKzC,EAAM0M,GAWzCk2E,cAAcngF,EAAKzC,EAAM0M,GACrB,OAAO,IAAIovB,QAAQ,CAACC,EAASC,IACzBl9B,KAAKoyD,MAAMltD,KAAKvB,EAAKzC,EAAMyR,IACvB,MAAM7J,EAAW,IAAIgY,IACfk6B,EAAa,IAAIl6B,IAEvB2xB,EAAE9/B,GACGse,KAAK,kBACLghB,KACG,CAACC,EAAGhyC,IAAO4I,EAASyX,IAAIrgB,EAAG0C,aAAa,SAChD6vC,EAAE9/B,GACGse,KAAK,mBACLghB,KACG,CAACC,EAAGhyC,IAAO86C,EAAWz6B,IAAI,CACtBtZ,KAAM/G,EAAG0C,aAAa,QACtB/V,KAAMqT,EAAG0C,aAAa,QACtBqhF,SAAU/jF,EAAG0C,aAAa,eAEtCq6B,EAAQ,CACJn0B,WACAkyC,gBACL9d,EAAQtvB,IASnBw1E,aAAajkC,GACTn/C,KAAKmjF,MAAM5iE,IAAI4+B,GACfA,EAAKvb,YAAY+W,IAAWnqD,gBAAiBwP,KAAKwjF,kBAClDxjF,KAAKkkF,wBAAwB/kC,GAQjCkkC,gBAAgBlkC,GACZn/C,KAAKmjF,MAAMz/D,OAAOy7B,GAClBA,EAAKr9B,eAAe64B,IAAWnqD,gBAAiBwP,KAAKwjF,kBAOzDU,wBAAwB/kC,GACpBA,EAAKglC,cAAc,IAAK,CACpBlnF,WAAY,CACRgJ,MAAOxK,UAAQK,GAAGwnF,KAClBzqF,KA/OH,QAgPGqI,KAAMlB,KAAKkB,KACX+a,IAAKjc,KAAK+zC,WAQtBqwC,wBAEIpkF,KAAKmjF,MAAM/zE,QAAQ+vC,GAAQn/C,KAAKkkF,wBAAwB/kC,IAM5DwkC,mBACI3jF,KAAK+zC,QACC6uC,EAAY5iF,KAAKoyD,MAAMiyB,YAAarkF,KAAKoyD,MAAMkyB,WAErDtkF,KAAKokF,wBAOTb,YAAYv1E,GACR,MAAMrX,EAAOqX,EAAOpL,aAAa,QAC3B62C,EAAOzrC,EAAOiJ,cAAc,KAC5B88B,EAAU0F,EAAK72C,aAAa,OAC5B1B,EAAOu4C,EAAK72C,aAAa,QACzB2hF,EAAavkF,KAAKkjF,aAAavsF,GAUrC,OARAqJ,KAAKkjF,aAAavsF,GAAQ,CAAEo9C,UACxB7yC,QACAqjF,GAAcA,EAAWxwC,UAAYA,GACrC/zC,KAAKwf,aAAa0D,KAAKy3B,IAAWvpD,4BAC9BuF,IAID,EAOX8sF,yBAAyB9/E,GACjBA,KAAO3D,KAAKkjF,qBACLljF,KAAKkjF,aAAav/E,O,gEClTrC,8EAKO,MAAM6gF,EAAK,KAOLC,EAAM,O,8BCZnB,wGAUA,MAAMxmE,EAASF,oBAAUM,GAKnBqmE,EAAoB,CACtB,WAAc,SACd,aAAgB,WAChB,YAAe,WAMJ,MAAMC,UAAmBllE,IAcpCxpB,YACQssB,EACAhB,EACA+c,EACAsmD,EACAC,EACArmD,GACJnE,QAGAr6B,KAAKq8B,iBAAmBr8B,KAAK4jC,YAC7B5jC,KAAKivC,oBAAsBjvC,KAAKyuC,IAAMzuC,KAAK8hB,eAM3C9hB,KAAK8kF,WAAa,GAClB9kF,KAAKuiB,WAAaA,EAClBviB,KAAK2oC,YAAc,EACnB3oC,KAAKiH,KAAO49E,EACZ7kF,KAAKs+B,MAAQA,EACbt+B,KAAKw+B,UAAYA,EACjBx+B,KAAKmJ,SAAW,IAAIoW,IASpBvf,KAAK+kF,UAAW,EAShB/kF,KAAKglF,uBAAyBJ,EAE9B5kF,KAAKilF,WAAW1jE,GAWpB2jE,+BAA+B3gF,GACvBub,IAAQsQ,YACRpwB,KAAKs+B,MAAM6mD,QAAU5gF,EAErBvE,KAAKuhB,OAAO6jE,WAAa7gF,EAUjC8gF,YAAYp+E,EAAM1C,GACd,GAAKmgF,EAAkBv2F,eAAe8Y,IAWtC,GANI1C,EACAvE,KAAKmJ,SAASiY,IAAIna,EAAM1C,GAExBvE,KAAKmJ,SAASua,OAAOzc,GAGrBjH,KAAKuhB,OACL,IAAK,MAAM+c,KAASt+B,KAAKuhB,OAAOue,YAC5BxB,EAAMomD,EAAkBz9E,IAAS1C,OAZrC0Z,EAAOjZ,MAAO,wBAAuBiC,GAqB7Cq+E,sBACI,GAAKtlF,KAAKuhB,OAAV,CAOA,IAAK,MAAMta,KAAQjH,KAAKmJ,SAAS5D,OAE7B,IAAK,MAAMgzD,KAAcv4D,KAAKuhB,OAAOuX,iBACjCy/B,EAAWmsB,EAAkBz9E,SAAS1G,EAG1CP,KAAKglF,wBACLhlF,KAAKklF,oCAA+B3kF,QAbpC0d,EAAO9Y,KACAnF,KAAF,sDAuBbilF,WAAW1jE,GACP,GAAIvhB,KAAKuhB,SAAWA,IAIpBvhB,KAAKuhB,OAASA,EAMVvhB,KAAKuhB,QAAQ,CACb,IAAK,MAAMta,KAAQjH,KAAKmJ,SAAS5D,OAC7BvF,KAAKqlF,YAAYp+E,EAAMjH,KAAKmJ,SAAShc,IAAI8Z,IAEzCjH,KAAKglF,wBACLhlF,KAAKklF,+BAA+BllF,KAAKglF,yBAQrD19C,UACI,OAAOtnC,KAAKiH,KAMhB4hC,eACI,OAAO7oC,KAAKsnC,YAAc/I,IAS9BgnD,qBACI,OAAOvlF,KAAKs+B,OAASt+B,KAAKs+B,MAAMxZ,MAMpC6lD,eACI,OAAO3qE,KAAKsnC,YAAc/I,IAQ9BhZ,UACI,MAAM,IAAIluB,MAAM,+BAQpBmuF,oBACI,OAAOxlF,KAAK6oC,gBAAkB7oC,KAAKulB,UAMvCkgE,oBACI,OAAOzlF,KAAKuhB,OAOhBmkE,cACI,OAAO1lF,KAAKuhB,OAASvhB,KAAKuhB,OAAOra,GAAK,KAO1Cy+E,WACI,OAAO3lF,KAAKs+B,MAOhBsnD,gBACI,OAAO5lF,KAAKs+B,MAAM5E,MAOtBmsD,aACI,OAAO7lF,KAAKs+B,MAAQt+B,KAAKs+B,MAAMp3B,GAAK,KAQxC4+E,gBACI,OAAI9lF,KAAK6oC,eACE,MAGJ7oC,KAAKw+B,UAAYx+B,KAAKw+B,UAAY,UAS7CunD,wBAAwBC,GAChBhmF,KAAKuiB,YAAcyjE,GACnBhmF,KAAKuiB,WAAW0jE,eAAejmF,KAAMgmF,GAc7C55E,OAAO45E,GACChmF,KAAKuhB,SACLvhB,KAAKimF,eAAeD,GACpB7rD,IAASa,kBAAkBgrD,EAAWhmF,KAAKuhB,SAE/CvhB,KAAK8kF,WAAW5hF,KAAK8iF,GACrBhmF,KAAK+lF,wBAAwBC,GAC7BhmF,KAAKkmF,mBAAmBF,GAW5BG,OAAOH,GACH,IAAK,IAAI5hE,EAAKpkB,KAAK8kF,WAAYx4F,EAAI83B,EAAG7tB,OAAS,EAAGjK,GAAK,IAAKA,EAAG,CAC3D,MAAMK,EAAIy3B,EAAG93B,GAER05F,IACDhmF,KAAKomF,eAAez5F,GACpBwtC,IAASa,kBAAkBruC,EAAG,OAE7Bq5F,GAAar5F,IAAMq5F,GACpB5hE,EAAGngB,OAAO3X,EAAG,GAIjB05F,IACAhmF,KAAKomF,eAAeJ,GACpB7rD,IAASa,kBAAkBgrD,EAAW,OAW9CC,eAAeD,IAWfI,eAAeJ,IAYfE,mBAAmBF,IASnBhjE,UAKI,OAJAhjB,KAAKyjB,qBAELzjB,KAAK+kF,UAAW,EAET/nD,QAAQC,UAOnBopD,mBAQA7pB,QACI,OAAIx8D,KAAKuhB,OACE4Y,IAASgB,YAAYn7B,KAAKuhB,QAG9B,KASX06C,WACI,YAAkC,IAAvBj8D,KAAKuhB,OAAO+kE,QACZtmF,KAAKuhB,OAAO+kE,OAc3B59C,cAAcC,EAAYrlB,GACtB,IAAIijE,EAAgB59C,EAMhB7oB,IAAQ0mE,8BAA0C,IAARljE,GAAuBtjB,KAAKs+D,YACtEioB,EAAgB,GAGhBvmF,KAAK2oC,aAAe49C,GACpBvmF,KAAK2oC,WAAa49C,EAClBvmF,KAAKkjB,KACD05C,4BACA2pB,EACAjjE,IAIuB,IAApBtjB,KAAK2oC,YACS,IAAlB49C,GACAvmF,KAAKulB,YACJvlB,KAAKulF,sBACTvlF,KAAKkjB,KACD05C,iBACA2pB,GAQZE,UACI,MAAMj+C,EAAWxoC,KAAK0lF,cAChBgB,EAAU1mF,KAAK6lF,aAErB,OAAOr9C,GAAYk+C,EAAW,GAAEl+C,KAAYk+C,IAAY,KAW5Dv9C,eAAe7U,GACX,OAAK6F,IAASwG,wBAAwB,UAOlC3gC,KAAK2qE,eACE3tC,QAAQC,UAIfD,QAAQ+K,IACJ/nC,KAAK8kF,WAAWt/E,IACZ+I,GACIA,EAAQwmB,UAAUT,GACb8I,MAAMp4B,IAOH,MANAiZ,EAAO9Y,KACH,+GAGAoJ,EACAvJ,GACEA,MAGrB01B,KAAK,KACF16B,KAAKkjB,KACD05C,6BACAtoC,KA5BL0I,QAAQE,OACX,IAAI7lC,MAAM,oD,qEC7d1B,+EAgBe,MAAMsvF,UAAwBlnE,IASzCxpB,YAAY2wF,EAAoBC,EAAcC,GAC1CzsD,QAKAr6B,KAAK+mF,oBAAsBH,EAK3B5mF,KAAKgnF,cAAgBH,EAKrB7mF,KAAKinF,YAAcH,EAKnB9mF,KAAKknF,eAAiB,IAAIC,aAAa,IAKvCnnF,KAAKonF,cAAgBC,YAAmB,CAAEC,WAAYT,EAAaU,4BAMnEvnF,KAAKwnF,eAAiBX,EAAaY,kBAMnCznF,KAAK0nF,gBAAkB1nF,KAAK0nF,gBAAgB55F,KAAKkS,MAEjDA,KAAK2nF,0BAeT,cAAc9wD,EAAa+vD,EAAoBC,GAC3C,OAAO/jD,IAAIlF,+BAA+B,CACtCjD,QAAS,CAAE,SACX9D,gBACD6D,KAAKwJ,IAEJ,IAAKA,EAAW,GACZ,MAAM,IAAI7sC,MAAO,qDAAoDw/B,GAGzE,OAAO,IAAI8vD,EAAgBC,EAAoBC,EAAc3iD,EAAW,MAYhFyjD,0BACI3nF,KAAK4nF,aAAe5nF,KAAKonF,cAAczF,wBAAwB3hF,KAAKinF,YAAY1lE,QAQhFvhB,KAAK6nF,qBAAuB7nF,KAAKonF,cAAcU,sBAAsB9nF,KAAK+mF,oBAAqB,EAAG,GActGW,gBAAgBK,GAEZ,MAAMC,EAASD,EAAWE,YAAYC,eAAe,GAC/CC,EAAiB,IAAKnoF,KAAKknF,kBAAmBc,GAC9CI,EAAkBjgF,KAAKgM,MAE7B,IAAI7nB,EAAI,EAER,KAAOA,EAAI0T,KAAKwnF,eAAiBW,EAAe5xF,OAAQjK,GAAK0T,KAAKwnF,eAAgB,CAC9E,MAAMa,EAAYF,EAAejuD,MAAM5tC,EAAGA,EAAI0T,KAAKwnF,gBAG7Cc,EAAWtoF,KAAKgnF,cAAcuB,uBAAuBF,EAAUnuD,SAErEl6B,KAAKkjB,KAAK0zB,sBAAqB,CAC3B4xC,UAAWJ,EACXK,MAAOH,EACPI,QAASL,EACT1yD,SAAU31B,KAAKinF,YAAY0B,gBAInC3oF,KAAKknF,eAAiBiB,EAAejuD,MAAM5tC,EAAG67F,EAAe5xF,QAQjEqyF,qBACI5oF,KAAK6nF,qBAAqBgB,eAAiB7oF,KAAK0nF,gBAChD1nF,KAAK4nF,aAAan8E,QAAQzL,KAAK6nF,sBAC/B7nF,KAAK6nF,qBAAqBp8E,QAAQzL,KAAKonF,cAAc0B,aAQzDC,wBAII/oF,KAAK6nF,qBAAqBgB,eAAiB,OAC3C7oF,KAAK6nF,qBAAqBt4E,aAC1BvP,KAAK4nF,aAAar4E,aAQtBy5E,oBACIhpF,KAAK+oF,wBACL/oF,KAAKinF,YAAYgC,aAQrBN,cACI,OAAO3oF,KAAKinF,YAAY0B,cAS5B/C,gBACI,OAAO5lF,KAAKinF,YAAYiC,iBAQ5BnsE,QACI/c,KAAK4oF,qBAQThlE,OACI5jB,KAAK+oF,wBACL/oF,KAAKknF,eAAiB,GAQ1BrjD,UACQ7jC,KAAKmpF,aAITnpF,KAAKgpF,oBACLhpF,KAAKmpF,YAAa,M,6BCrOnB,SAAS9B,EAAmBlgF,GAC/B,MAAMiiF,EAAmBl9F,OAAO60F,cAAgB70F,OAAO80F,mBAEvD,GAAKoI,EAIL,OAAO,IAAIA,EAAiBjiF,GAZhC,mC,6BCAA,uDAGO,MAAMkiF,EAAkB,2B,6BCF/B,kCAOe,MAAMnP,EAIjBjkF,cACI+J,KAAK+hC,QAAU,IAAI/E,QAAQ,CAACC,EAASC,KACjCl9B,KAAKi9B,QAAU,IAAIkF,KACfniC,KAAKspF,qBACLrsD,KAAWkF,IAEfniC,KAAKk9B,OAAS,IAAIiF,KACdniC,KAAKspF,qBACLpsD,KAAUiF,MAGlBniC,KAAK06B,KAAO16B,KAAK+hC,QAAQrH,KAAK5sC,KAAKkS,KAAK+hC,SACxC/hC,KAAKo9B,MAAQp9B,KAAK+hC,QAAQ3E,MAAMtvC,KAAKkS,KAAK+hC,SAM9CunD,qBACI77E,aAAazN,KAAKupF,UAMtBrO,iBAAiBsO,GACbxpF,KAAKupF,SAAWh/E,WAAW,KACvBvK,KAAKk9B,OAAO,IAAI7lC,MAAM,aACvBmyF,M,8BCxCX,0IAOA,MAAMvrE,EAASF,oBAAUM,GAKZorE,EAAiB,CAJN,IACA,IACA,KAQjB,MAAMC,EAQTzzF,YAAY+qB,EAAgB2oE,GACxB3pF,KAAKslD,GAAKtkC,EACVhhB,KAAK2pF,cAAgBA,EAerB3pF,KAAK4pF,2BAA6B,CAC9B,CACItD,QAAQ,EACRpiB,WAAYpkD,IAAQsQ,YAAcpwB,KAAK2pF,cAAcE,KAAO7pF,KAAK2pF,cAAcG,IAC/Ex9E,IAvCQ,IAwCRy9E,sBAAuBjqE,IAAQsQ,YAAc,EAAM,GAEvD,CACIk2D,QAAQ,EACRpiB,WAAYlkE,KAAK2pF,cAAcK,SAC/B19E,IA5CQ,IA6CRy9E,sBAAuB,GAE3B,CACIzD,QAAQ,EACRpiB,WAAYpkD,IAAQsQ,YAAcpwB,KAAK2pF,cAAcG,IAAM9pF,KAAK2pF,cAAcE,KAC9Ev9E,IAjDQ,IAkDRy9E,sBAAuBjqE,IAAQsQ,YAAc,EAAM,IAa/D65D,0BAA0BnnB,GACtB,MAAMonB,EAAY9mC,IAAUlrC,MAAM4qD,EAAY9wC,KAmB9C,OAjBAk4D,EAAUz8D,MAAMre,QAAQqiB,IACpB,GAAmB,UAAfA,EAAMxqB,KACN,OAEJ,IAAKwqB,EAAMX,aAAeW,EAAMX,WAAWv6B,OACvC,OAEJ,IAAI4zF,EAAiB,GAErB14D,EAAMX,WAAW,GAAGN,MAAMztB,MAAM,KAAKqM,QAAQ4V,IACzC,MAAMolE,EAAU34D,EAAMjB,MAAME,OAAO3F,GAAUA,EAAO7jB,GAAGxQ,aAAesuB,GAEtEmlE,EAAiBA,EAAenwF,OAAOowF,KAE3C34D,EAAMjB,MAAQ25D,IAGX,IAAIxU,sBAAsB,CAC7B1uE,KAAM67D,EAAY77D,KAClB+qB,IAAKoxB,IAAUrL,MAAMmyC,KAS7BG,oBAAoBnmD,GAChB,OAAIlkC,KAAKslD,GAAGglC,iBAAmBpmD,EAAWymC,eAC/B3qE,KAAK4pF,2BAGT1lD,EAAWymC,eACZ,CAAE,CACA2b,QAAQ,EACRpiB,WAAYlkE,KAAK2pF,cAAcE,OAEjC,CAAE,CAAEvD,QAAQ,IAatBiE,kCAAkCl7D,GAI9B,GAAIvP,IAAQ0qE,6BACR,OAAOn7D,EAEX,MAAM2C,EAAMoxB,IAAUlrC,MAAMmX,EAAK2C,KAC3B4d,EAAM5d,EAAIvE,MAAMgoD,UAAU3nD,GAAwB,UAAfA,EAAM7mB,MAE/C,GAAI+qB,EAAIvE,MAAMmiB,GAAKoB,OAAShf,EAAIvE,MAAMmiB,GAAK66C,cAAgBz4D,EAAIvE,MAAMmiB,GAAK86C,WAatE,OAVA14D,EAAIvE,MAAMre,QAAQ,CAAC0e,EAAOxhC,KACH,UAAfwhC,EAAM7mB,MAAoB3a,IAAMsjD,IAChC5d,EAAIvE,MAAMnhC,GAAG0kD,UAAOzwC,EACpByxB,EAAIvE,MAAMnhC,GAAGo+F,eAAYnqF,EAGzByxB,EAAIvE,MAAMnhC,GAAGm+F,kBAAelqF,KAI7B,IAAIo1E,sBAAsB,CAC7B1uE,KAAMooB,EAAKpoB,KACX+qB,IAAKoxB,IAAUrL,MAAM/lB,KAK7BA,EAAIvE,MAAMmiB,GAAKoB,KAAO,CAClB,CACI9pC,GAvJQ,IAwJRyoB,UAAW,QAEf,CACIzoB,GA1JQ,IA2JRyoB,UAAW,QAEf,CACIzoB,GA7JQ,IA8JRyoB,UAAW,SAOnB,MAAMg7D,EAAgB7qE,IAAQsQ,aAAetQ,IAAQ21B,qBAAqB,IACnE,QAAOg0C,EAAetmF,KAAK,KAC3B,YAAWsmF,EAAetmF,KAAK,KAOtC,OAJA6uB,EAAIvE,MAAMmiB,GAAK66C,aAAe,CAC1Bl9F,MAAOo9F,GAGJ,IAAIhV,sBAAsB,CAC7B1uE,KAAMooB,EAAKpoB,KACX+qB,IAAKoxB,IAAUrL,MAAM/lB,KAW7BmM,SAAS+F,EAAYknC,GACjB,MAAM9sC,EAAQ4F,EAAWyhD,WAEzB,GAAIva,EAAa,CAGb,MAAMwf,EAAkB,CACpBj7D,UAAW,WACXmO,QAAS,CAAEoG,EAAWuhD,qBACtBoF,cAAe,IAGd/qE,IAAQsQ,cACTw6D,EAAgBC,cAAgB7qF,KAAKqqF,oBAAoBnmD,IAE7DlkC,KAAKslD,GAAGtkC,eAAe8pE,eAAexsD,EAAOssD,QAK7C5qF,KAAKslD,GAAGtkC,eAAemd,SAASG,GASxCm5C,eAAevzC,GACX,MAAMvY,EAAYuY,EAAWoD,UACvBhJ,EAAQ4F,EAAWyhD,WAInBhgB,EAAc3lE,KAAKslD,GAAGtkC,eAAe+pE,kBACtC95D,KAAKzjC,GAAKA,EAAE49C,UAAY59C,EAAE49C,SAAS9M,OAAS9wC,EAAE49C,SAAS9M,MAAMlF,OAASzN,GAE3E,IAAKg6C,EACD,OAAO3oC,QAAQE,OAAO,IAAI7lC,MAAO,yBAAwBs0B,gBAM7D,GAJA1N,EAAOhZ,MAAO,UAASi/B,QAAiBlkC,KAAKslD,MAIf,aAA1BqgB,EAAYh2C,UAA0B,CAGtC,OAFeuU,EAAWuhD,qBAGtBzlF,KAAKslD,GAAGtkC,eAAegqE,UAAU9mD,EAAWuhD,qBAErCzlF,KAAKirF,aAAa/mD,GAAYxJ,KAAK,KACtC16B,KAAKslD,GAAGtiB,YAAY5hB,IAAI8iB,EAAWrB,MAAOqB,GAC1CyhC,EAAYh2C,UAAY,cAIzBqN,QAAQC,UAGnB,OAAO0oC,EAAY4E,OAAO2L,aAAa53C,GAW3C4sD,gCAAgChnD,GAE5B,GAAIpkB,IAAQC,gBACR,OAAO,KAGX,MAAMorE,EAA8B,GAC9Bj3D,EAASgQ,EAAWxB,cAAcxO,OAExC,IAAK,MAAMk3D,KAAYprF,KAAK4pF,2BACxBuB,EAA4BjoF,KAAKgxB,EAASk3D,EAASrB,uBAGvD,OAAOoB,EAQX3T,gBAAgBtzC,GACZ,MAAMvY,EAAYuY,EAAWoD,UACvBq+B,EAAc3lE,KAAKslD,GAAGtkC,eAAe+pE,kBACtC95D,KAAKzjC,GAAKA,EAAE+8E,QAAU/8E,EAAE+8E,OAAOjsC,OAAS9wC,EAAE+8E,OAAOjsC,MAAMp3B,KAAOg9B,EAAW2hD,cAE9E,OAAKlgB,GAIL1nD,EAAOhZ,MAAO,YAAWi/B,QAAiBlkC,KAAKslD,MAExCqgB,EAAY4E,OAAO2L,aAAa,OAL5Bl5C,QAAQE,OAAO,IAAI7lC,MAAO,yBAAwBs0B,gBAcjEuqD,aAAaC,EAAUC,GACnB,GAAID,GAAYC,EAAU,CACtB,MAAMzqD,EAAYyqD,EAAS9uC,UACrB/lB,EAAS60D,EAASqP,oBAMxB,IAAKlkE,EAID,OAHAvhB,KAAKslD,GAAGtiB,YAAYtf,OAAOyyD,EAAStzC,OACpC7iC,KAAKslD,GAAGtiB,YAAY5hB,IAAIg1D,EAASvzC,MAAOuzC,GAEjCp5C,QAAQC,UAEnB,MAAMqB,EAAQ3S,IAAc4S,IACtBhd,EAAOqX,iBAAiB,GACxBrX,EAAOuX,iBAAiB,GACxB6sC,EAAc3lE,KAAKslD,GAAGtkC,eAAe+pE,kBACtC95D,KAAKzjC,GAAKA,EAAE49C,SAAS9M,MAAMlF,OAASzN,IAAcn+B,EAAE69F,SAEzD,OAAK1lB,GAGL1nD,EAAOhZ,MAAO,aAAYkxE,UAAiBC,QAAep2E,KAAKslD,MAExDqgB,EAAY4E,OAAO2L,aAAa53C,GAClC5D,KAAK,KACF,MAAM1V,EAAOhlB,KAAKslD,GAAGgmC,WAAWn+F,IAAIgpF,EAAStzC,OAE7C7iC,KAAKslD,GAAGtiB,YAAYtf,OAAOyyD,EAAStzC,OACpC7iC,KAAKslD,GAAGgmC,WAAW5nE,OAAOyyD,EAAStzC,OACnC7iC,KAAKslD,GAAGimC,cAAgBvrF,KAAKslD,GAAGimC,cAAc76D,OAAOriC,GAAKA,IAAMkzB,GAChEvhB,KAAKslD,GAAGtiB,YAAY5hB,IAAIg1D,EAASvzC,MAAOuzC,GAExCp2E,KAAKslD,GAAGimC,cAAcroF,KAAKqe,GAC3BvhB,KAAKslD,GAAGgmC,WAAWlqE,IAAIg1D,EAASvzC,MAAO7d,GACvChlB,KAAKslD,GAAG9lC,aAAa0D,KAAK8V,IAAU9Q,yBAChCkuD,EACAp2E,KAAKslD,GAAGkmC,oBAAoBxmE,OAjB7BgY,QAAQE,OAAO,IAAI7lC,MAAM,yBAmBjC,GAAI8+E,IAAaC,EACpB,OAAOp2E,KAAKw3E,gBAAgBrB,GACvBz7C,KAAK,KACF16B,KAAKslD,GAAGtiB,YAAYtf,OAAOyyD,EAAStzC,OACpC7iC,KAAKslD,GAAGgmC,WAAW5nE,OAAOyyD,EAAStzC,SAExC,GAAIuzC,IAAaD,EAAU,CAC9B,MAAMnxD,EAAOhlB,KAAKslD,GAAGgmC,WAAWn+F,IAAIipF,EAASvzC,OAE7C,OAAO7iC,KAAKy3E,eAAerB,GACtB17C,KAAK,KACF16B,KAAKslD,GAAGtiB,YAAY5hB,IAAIg1D,EAASvzC,MAAOuzC,GACxCp2E,KAAKslD,GAAGgmC,WAAWlqE,IAAIg1D,EAASvzC,MAAO7d,MAcvDizD,uBAAuBqO,GACnBtmF,KAAK03E,uBAAuBn5C,IAAiB+nD,GASjD2E,aAAa3sD,GACT,MAAMqnC,EAAc3lE,KAAKslD,GAAGtkC,eAAe+pE,kBACtC95D,KAAKzjC,GAAKA,EAAE+8E,QAAU/8E,EAAE+8E,OAAOjsC,OAAS9wC,EAAE+8E,OAAOjsC,MAAMlF,OAASkF,EAAMgJ,WACrEs5B,EAAa+E,EAAY4E,OAAOkhB,gBAItC,OAFA7qB,EAAW8qB,UAAY1rF,KAAKqqF,oBAAoB/rD,GAEzCqnC,EAAY4E,OAAOohB,cAAc/qB,GAW5C8W,uBAAuB/rD,EAAW26D,GAC9B,MAAMsF,EAAe5rF,KAAKslD,GAAGtkC,eAAe+pE,kBACvCr6D,OAAOljC,GAAKA,EAAE49C,UAAY59C,EAAE49C,SAAS9M,OAAS9wC,EAAE49C,SAAS9M,MAAMlF,OAASzN,GACvEqX,EAAchjC,KAAKslD,GAAGpe,eAAevb,GAE3C1N,EAAO/Y,KAAM,GAAEohF,EAAS,WAAa,gBAAgB36D,uBAA+B3rB,KAAKslD,MACzFsmC,EAAax8E,QAAQ,CAACu2D,EAAa/1B,KAC3B02C,EAEY,IAAR12C,GAAa5M,EAAYzsC,OACzBovE,EAAYh2C,UAAY,WAExBg2C,EAAYh2C,UAAY,WAG5Bg2C,EAAYh2C,UAAY,aAcpCwoD,uBAAuBmO,GACnBtmF,KAAK03E,uBAAuBn5C,IAAiB+nD,O,oDCjTrDv6F,EAAOD,QA1HP,MAWImK,YAAYuvB,EAAQqmE,EAAaC,GAC7B9rF,KAAK+rF,QAAUvmE,EACfxlB,KAAKgsF,eAAeH,GACpB7rF,KAAKisF,cAAgBH,IAAgB,EACrC9rF,KAAKksF,oBAAmB,GACxBlsF,KAAKmsF,yBAA2B,EAChCnsF,KAAKosF,sBAAwB,EAC7BpsF,KAAKqsF,UAAW,EAQpBC,YACI,OAAOtsF,KAAK+rF,QAQhBQ,iBACI,OAAOvsF,KAAK6rF,YAShBG,eAAeQ,GACXxsF,KAAK6rF,YAAcW,EAQvBV,eACI,OAAO9rF,KAAKisF,cAQhBQ,oBACI,OAAOzsF,KAAKosF,sBAAwB,EAWxCF,mBAAmBQ,GACf,IAAK1sF,KAAKysF,qBAAuBC,EAC7B1sF,KAAKosF,sBAAwBjkF,KAAKgM,WAC/B,GAAInU,KAAKysF,sBAAwBC,EAAsB,CAC1D,MACMC,EADMxkF,KAAKgM,MACSnU,KAAKosF,sBAE/BpsF,KAAKmsF,0BAA4BQ,EACjC3sF,KAAKosF,sBAAwB,GASrCQ,8BACI,IAAIC,EAAQ7sF,KAAKmsF,yBAMjB,OAJInsF,KAAKysF,sBACLI,GAAS1kF,KAAKgM,MAAQnU,KAAKosF,uBAGxBS,EAQXC,UACI,OAAO9sF,KAAKqsF,SAQhBU,gBACI/sF,KAAKqsF,UAAW,EAChBrsF,KAAKksF,oBAAmB,M,cCjHhCngG,EAAOD,QAZsB,CASzBkhG,iBAAkB,oC,8CCTtB;;;;;;;;;IASA,WACE,aAEA,IAAItvF,MAAQ,wBACRuvF,OAA2B,iBAAX/gG,OAChBN,KAAOqhG,OAAS/gG,OAAS,GACzBN,KAAKshG,mBACPD,QAAS,GAEX,IAAIE,YAAcF,QAA0B,iBAATp3F,KAC/Bu3F,SAAWxhG,KAAKyhG,mBAAwC,iBAAZr5B,SAAwBA,QAAQ0sB,UAAY1sB,QAAQ0sB,SAASx/E,KACzGksF,QACFxhG,KAAOgK,OACEu3F,aACTvhG,KAAOiK,MAET,IAAIy3F,WAAa1hG,KAAK2hG,qBAAyC,iBAAXxhG,QAAuBA,OAAOD,QAC9E0hG,IAAsCxhG,yBACtCyhG,cAAgB7hG,KAAK8hG,wBAAiD,oBAAhB18B,YACtD28B,UAAY,mBAAmB5qF,MAAM,IACrC6qF,MAAQ,CAAC,IAAK,MAAO,SAAU,YAC/BC,MAAQ,CAAC,EAAG,EAAG,GAAI,IACnBC,aAAe,CAAC,MAAO,QAAS,SAAU,SAAU,cAAe,UACnEC,mBAAqB,mEAAmEhrF,MAAM,IAE9FirF,OAAS,GAAIC,QACjB,GAAIR,aAAc,CAChB,IAAIr/B,OAAS,IAAI4C,YAAY,IAC7Bi9B,QAAU,IAAIjjC,WAAWoD,QACzB4/B,OAAS,IAAIE,YAAY9/B,SAGvBxiE,KAAKyhG,mBAAsBj3F,MAAMC,UACnCD,MAAMC,QAAU,SAAUN,GACxB,MAA+C,mBAAxC/I,OAAOkB,UAAUwI,SAASjK,KAAKsJ,MAItC03F,eAAiB7hG,KAAKuiG,gCAAmCn9B,YAAYo9B,SACvEp9B,YAAYo9B,OAAS,SAAUr4F,GAC7B,MAAsB,iBAARA,GAAoBA,EAAIq4D,QAAUr4D,EAAIq4D,OAAOn4D,cAAgB+6D,cA6D/E,IAAIq9B,mBAAqB,SAAUC,GACjC,OAAO,SAAU7pF,GACf,OAAO,IAAI8pF,KAAI,GAAMC,OAAO/pF,GAAS6pF,OAwBrCG,aAAe,WACjB,IAAIC,EAASL,mBAAmB,OAC5BjB,UACFsB,EAASC,SAASD,IAEpBA,EAAO9gG,OAAS,WACd,OAAO,IAAI2gG,KAEbG,EAAOF,OAAS,SAAU/pF,GACxB,OAAOiqF,EAAO9gG,SAAS4gG,OAAO/pF,IAEhC,IAAK,IAAInY,EAAI,EAAGA,EAAIwhG,aAAav3F,SAAUjK,EAAG,CAC5C,IAAI2a,EAAO6mF,aAAaxhG,GACxBoiG,EAAOznF,GAAQonF,mBAAmBpnF,GAEpC,OAAOynF,GAGLC,SAAW,SAAUD,QACvB,IAAI/kB,OAASilB,KAAK,qBACd7jC,OAAS6jC,KAAK,4BACdC,WAAa,SAAUpqF,GACzB,GAAuB,iBAAZA,EACT,OAAOklE,OAAOmlB,WAAW,OAAON,OAAO/pF,EAAS,QAAQsqF,OAAO,OAE/D,GAAItqF,QACF,MAAM/G,MAKV,OAJa+G,EAAQxO,cAAgB+6D,cACjCvsD,EAAU,IAAIumD,WAAWvmD,IAGzBrO,MAAMC,QAAQoO,IAAYusD,YAAYo9B,OAAO3pF,IAC/CA,EAAQxO,cAAgB80D,OACjB4e,OAAOmlB,WAAW,OAAON,OAAO,IAAIzjC,OAAOtmD,IAAUsqF,OAAO,OAE5DL,OAAOjqF,IAGlB,OAAOoqF,YAST,SAASN,IAAIS,GACX,GAAIA,EACFhB,OAAO,GAAKA,OAAO,IAAMA,OAAO,GAAKA,OAAO,GAAKA,OAAO,GACxDA,OAAO,GAAKA,OAAO,GAAKA,OAAO,GAAKA,OAAO,GAC3CA,OAAO,GAAKA,OAAO,GAAKA,OAAO,IAAMA,OAAO,IAC5CA,OAAO,IAAMA,OAAO,IAAMA,OAAO,IAAMA,OAAO,IAAM,EACpDhuF,KAAKguF,OAASA,OACdhuF,KAAKiuF,QAAUA,aAEf,GAAIR,aAAc,CAChB,IAAIr/B,EAAS,IAAI4C,YAAY,IAC7BhxD,KAAKiuF,QAAU,IAAIjjC,WAAWoD,GAC9BpuD,KAAKguF,OAAS,IAAIE,YAAY9/B,QAE9BpuD,KAAKguF,OAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGnEhuF,KAAKivF,GAAKjvF,KAAKkvF,GAAKlvF,KAAKmvF,GAAKnvF,KAAKovF,GAAKpvF,KAAK+c,MAAQ/c,KAAKqvF,MAAQrvF,KAAKsvF,OAAS,EAChFtvF,KAAKuvF,UAAYvvF,KAAKwvF,QAAS,EAC/BxvF,KAAKyvF,OAAQ,EAYflB,IAAIrgG,UAAUsgG,OAAS,SAAU/pF,GAC/B,IAAIzE,KAAKuvF,UAAT,CAIA,IAAIG,EAAWzoF,SAAcxC,EAC7B,GAAa,WAATwC,EAAmB,CACrB,GAAa,WAATA,EAWF,MAAMvJ,MAVN,GAAgB,OAAZ+G,EACF,MAAM/G,MACD,GAAI+vF,cAAgBhpF,EAAQxO,cAAgB+6D,YACjDvsD,EAAU,IAAIumD,WAAWvmD,QACpB,KAAKrO,MAAMC,QAAQoO,IACnBgpF,cAAiBz8B,YAAYo9B,OAAO3pF,IACvC,MAAM/G,MAMZgyF,GAAY,EAKd,IAHA,IAAI/yE,EAAiBrwB,EAAXqkC,EAAQ,EAAMp6B,EAASkO,EAAQlO,OAAQy3F,EAAShuF,KAAKguF,OAC3DC,EAAUjuF,KAAKiuF,QAEZt9D,EAAQp6B,GAAQ,CAUrB,GATIyJ,KAAKwvF,SACPxvF,KAAKwvF,QAAS,EACdxB,EAAO,GAAKA,EAAO,IACnBA,EAAO,IAAMA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC5CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC3CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,IAAMA,EAAO,IAC5CA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAM,GAGlD0B,EACF,GAAIjC,aACF,IAAKnhG,EAAI0T,KAAK+c,MAAO4T,EAAQp6B,GAAUjK,EAAI,KAAMqkC,EAC/Cs9D,EAAQ3hG,KAAOmY,EAAQksB,QAGzB,IAAKrkC,EAAI0T,KAAK+c,MAAO4T,EAAQp6B,GAAUjK,EAAI,KAAMqkC,EAC/Cq9D,EAAO1hG,GAAK,IAAMmY,EAAQksB,IAAUk9D,MAAY,EAANvhG,UAI9C,GAAImhG,aACF,IAAKnhG,EAAI0T,KAAK+c,MAAO4T,EAAQp6B,GAAUjK,EAAI,KAAMqkC,GAC/ChU,EAAOlY,EAAQlN,WAAWo5B,IACf,IACTs9D,EAAQ3hG,KAAOqwB,EACNA,EAAO,MAChBsxE,EAAQ3hG,KAAO,IAAQqwB,GAAQ,EAC/BsxE,EAAQ3hG,KAAO,IAAe,GAAPqwB,GACdA,EAAO,OAAUA,GAAQ,OAClCsxE,EAAQ3hG,KAAO,IAAQqwB,GAAQ,GAC/BsxE,EAAQ3hG,KAAO,IAASqwB,GAAQ,EAAK,GACrCsxE,EAAQ3hG,KAAO,IAAe,GAAPqwB,IAEvBA,EAAO,QAAoB,KAAPA,IAAiB,GAAqC,KAA9BlY,EAAQlN,aAAao5B,IACjEs9D,EAAQ3hG,KAAO,IAAQqwB,GAAQ,GAC/BsxE,EAAQ3hG,KAAO,IAASqwB,GAAQ,GAAM,GACtCsxE,EAAQ3hG,KAAO,IAASqwB,GAAQ,EAAK,GACrCsxE,EAAQ3hG,KAAO,IAAe,GAAPqwB,QAI3B,IAAKrwB,EAAI0T,KAAK+c,MAAO4T,EAAQp6B,GAAUjK,EAAI,KAAMqkC,GAC/ChU,EAAOlY,EAAQlN,WAAWo5B,IACf,IACTq9D,EAAO1hG,GAAK,IAAMqwB,GAAQkxE,MAAY,EAANvhG,KACvBqwB,EAAO,MAChBqxE,EAAO1hG,GAAK,KAAO,IAAQqwB,GAAQ,IAAOkxE,MAAY,EAANvhG,KAChD0hG,EAAO1hG,GAAK,KAAO,IAAe,GAAPqwB,IAAiBkxE,MAAY,EAANvhG,MACzCqwB,EAAO,OAAUA,GAAQ,OAClCqxE,EAAO1hG,GAAK,KAAO,IAAQqwB,GAAQ,KAAQkxE,MAAY,EAANvhG,KACjD0hG,EAAO1hG,GAAK,KAAO,IAASqwB,GAAQ,EAAK,KAAUkxE,MAAY,EAANvhG,KACzD0hG,EAAO1hG,GAAK,KAAO,IAAe,GAAPqwB,IAAiBkxE,MAAY,EAANvhG,OAElDqwB,EAAO,QAAoB,KAAPA,IAAiB,GAAqC,KAA9BlY,EAAQlN,aAAao5B,IACjEq9D,EAAO1hG,GAAK,KAAO,IAAQqwB,GAAQ,KAAQkxE,MAAY,EAANvhG,KACjD0hG,EAAO1hG,GAAK,KAAO,IAASqwB,GAAQ,GAAM,KAAUkxE,MAAY,EAANvhG,KAC1D0hG,EAAO1hG,GAAK,KAAO,IAASqwB,GAAQ,EAAK,KAAUkxE,MAAY,EAANvhG,KACzD0hG,EAAO1hG,GAAK,KAAO,IAAe,GAAPqwB,IAAiBkxE,MAAY,EAANvhG,MAK1D0T,KAAK2vF,cAAgBrjG,EACrB0T,KAAKqvF,OAAS/iG,EAAI0T,KAAK+c,MACnBzwB,GAAK,IACP0T,KAAK+c,MAAQzwB,EAAI,GACjB0T,KAAKnH,OACLmH,KAAKwvF,QAAS,GAEdxvF,KAAK+c,MAAQzwB,EAOjB,OAJI0T,KAAKqvF,MAAQ,aACfrvF,KAAKsvF,QAAUtvF,KAAKqvF,MAAQ,YAAc,EAC1CrvF,KAAKqvF,MAAQrvF,KAAKqvF,MAAQ,YAErBrvF,OAGTuuF,IAAIrgG,UAAU0hG,SAAW,WACvB,IAAI5vF,KAAKuvF,UAAT,CAGAvvF,KAAKuvF,WAAY,EACjB,IAAIvB,EAAShuF,KAAKguF,OAAQ1hG,EAAI0T,KAAK2vF,cACnC3B,EAAO1hG,GAAK,IAAMshG,MAAU,EAAJthG,GACpBA,GAAK,KACF0T,KAAKwvF,QACRxvF,KAAKnH,OAEPm1F,EAAO,GAAKA,EAAO,IACnBA,EAAO,IAAMA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC5CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAC3CA,EAAO,GAAKA,EAAO,GAAKA,EAAO,IAAMA,EAAO,IAC5CA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAM,GAEtDA,EAAO,IAAMhuF,KAAKqvF,OAAS,EAC3BrB,EAAO,IAAMhuF,KAAKsvF,QAAU,EAAItvF,KAAKqvF,QAAU,GAC/CrvF,KAAKnH,SAGP01F,IAAIrgG,UAAU2K,KAAO,WACnB,IAAInB,EAAGC,EAAGhL,EAAGC,EAAGijG,EAAIC,EAAI9B,EAAShuF,KAAKguF,OAElChuF,KAAKyvF,MAQP93F,IADAA,IALAD,IADAA,EAAIs2F,EAAO,GAAK,YACN,EAAIt2F,IAAM,IAAM,WAAa,IAIvC/K,IADAA,IAAM,WADNC,IADAA,IAAM,WAAiB,WAAJ8K,GAAkBs2F,EAAO,GAAK,YACvC,GAAKphG,IAAM,IAAM8K,GAAK,KACH,UAALA,IAAoBs2F,EAAO,GAAK,aAC9C,GAAKrhG,IAAM,IAAMC,GAAK,IACjBA,EAAI8K,IAAOs2F,EAAO,GAAK,aAC5B,GAAKr2F,IAAM,IAAMhL,GAAK,GAEhC+K,EAAIsI,KAAKivF,GACTt3F,EAAIqI,KAAKkvF,GACTviG,EAAIqT,KAAKmvF,GASTx3F,IADAA,KALAD,IADAA,KADA9K,EAAIoT,KAAKovF,IACEz3F,GAAKhL,EAAIC,IAAOohG,EAAO,GAAK,YAC7B,EAAIt2F,IAAM,IAAMC,GAAK,IAI/BhL,IADAA,IAAMgL,GADN/K,IADAA,IAAMD,EAAK+K,GAAKC,EAAIhL,IAAOqhG,EAAO,GAAK,YAC7B,GAAKphG,IAAM,IAAM8K,GAAK,IAChBA,EAAIC,IAAOq2F,EAAO,GAAK,YAC7B,GAAKrhG,IAAM,IAAMC,GAAK,IAChBA,EAAI8K,IAAOs2F,EAAO,GAAK,aAC7B,GAAKr2F,IAAM,IAAMhL,GAAK,GAUlCgL,IADAA,KALAD,IADAA,IAAM9K,EAAK+K,GAAKhL,EAAIC,IAAOohG,EAAO,GAAK,YAC7B,EAAIt2F,IAAM,IAAMC,GAAK,IAI/BhL,IADAA,IAAMgL,GADN/K,IADAA,IAAMD,EAAK+K,GAAKC,EAAIhL,IAAOqhG,EAAO,GAAK,aAC7B,GAAKphG,IAAM,IAAM8K,GAAK,IAChBA,EAAIC,IAAOq2F,EAAO,GAAK,aAC7B,GAAKrhG,IAAM,IAAMC,GAAK,IAChBA,EAAI8K,IAAOs2F,EAAO,GAAK,WAC7B,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KALAD,IADAA,IAAM9K,EAAK+K,GAAKhL,EAAIC,IAAOohG,EAAO,GAAK,aAC7B,EAAIt2F,IAAM,IAAMC,GAAK,IAI/BhL,IADAA,IAAMgL,GADN/K,IADAA,IAAMD,EAAK+K,GAAKC,EAAIhL,IAAOqhG,EAAO,GAAK,aAC7B,GAAKphG,IAAM,IAAM8K,GAAK,IAChBA,EAAIC,IAAOq2F,EAAO,IAAM,QAC9B,GAAKrhG,IAAM,IAAMC,GAAK,IAChBA,EAAI8K,IAAOs2F,EAAO,IAAM,aAC9B,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KALAD,IADAA,IAAM9K,EAAK+K,GAAKhL,EAAIC,IAAOohG,EAAO,IAAM,aAC9B,EAAIt2F,IAAM,IAAMC,GAAK,IAI/BhL,IADAA,IAAMgL,GADN/K,IADAA,IAAMD,EAAK+K,GAAKC,EAAIhL,IAAOqhG,EAAO,IAAM,WAC9B,GAAKphG,IAAM,IAAM8K,GAAK,IAChBA,EAAIC,IAAOq2F,EAAO,IAAM,aAC9B,GAAKrhG,IAAM,IAAMC,GAAK,IAChBA,EAAI8K,IAAOs2F,EAAO,IAAM,aAC9B,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KAHA/K,IADAA,IAAM+K,EAAKhL,IADX+K,IADAA,IAAM/K,EAAKC,GAAK+K,EAAIhL,IAAOqhG,EAAO,GAAK,YAC7B,EAAIt2F,IAAM,IAAMC,GAAK,GACXA,IAAOq2F,EAAO,GAAK,aAC7B,EAAIphG,IAAM,IAAM8K,GAAK,GAGpBA,IADX/K,IADAA,IAAM+K,EAAKC,GAAK/K,EAAI8K,IAAOs2F,EAAO,IAAM,YAC9B,GAAKrhG,IAAM,IAAMC,GAAK,GACZA,IAAOohG,EAAO,GAAK,YAC7B,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KAHA/K,IADAA,IAAM+K,EAAKhL,IADX+K,IADAA,IAAM/K,EAAKC,GAAK+K,EAAIhL,IAAOqhG,EAAO,GAAK,YAC7B,EAAIt2F,IAAM,IAAMC,GAAK,GACXA,IAAOq2F,EAAO,IAAM,WAC9B,EAAIphG,IAAM,IAAM8K,GAAK,GAGpBA,IADX/K,IADAA,IAAM+K,EAAKC,GAAK/K,EAAI8K,IAAOs2F,EAAO,IAAM,YAC9B,GAAKrhG,IAAM,IAAMC,GAAK,GACZA,IAAOohG,EAAO,GAAK,YAC7B,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KAHA/K,IADAA,IAAM+K,EAAKhL,IADX+K,IADAA,IAAM/K,EAAKC,GAAK+K,EAAIhL,IAAOqhG,EAAO,GAAK,YAC7B,EAAIt2F,IAAM,IAAMC,GAAK,GACXA,IAAOq2F,EAAO,IAAM,aAC9B,EAAIphG,IAAM,IAAM8K,GAAK,GAGpBA,IADX/K,IADAA,IAAM+K,EAAKC,GAAK/K,EAAI8K,IAAOs2F,EAAO,GAAK,YAC7B,GAAKrhG,IAAM,IAAMC,GAAK,GACZA,IAAOohG,EAAO,GAAK,aAC7B,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KAHA/K,IADAA,IAAM+K,EAAKhL,IADX+K,IADAA,IAAM/K,EAAKC,GAAK+K,EAAIhL,IAAOqhG,EAAO,IAAM,aAC9B,EAAIt2F,IAAM,IAAMC,GAAK,GACXA,IAAOq2F,EAAO,GAAK,WAC7B,EAAIphG,IAAM,IAAM8K,GAAK,GAGpBA,IADX/K,IADAA,IAAM+K,EAAKC,GAAK/K,EAAI8K,IAAOs2F,EAAO,GAAK,aAC7B,GAAKrhG,IAAM,IAAMC,GAAK,GACZA,IAAOohG,EAAO,IAAM,aAC9B,GAAKr2F,IAAM,IAAMhL,GAAK,EAUhCgL,IADAA,KAHAm4F,GADAljG,IADAA,KAHAijG,EAAKl4F,EAAIhL,IAET+K,IADAA,IAAMm4F,EAAKjjG,GAAKohG,EAAO,GAAK,SAClB,EAAIt2F,IAAM,IAAMC,GAAK,IACfq2F,EAAO,GAAK,aAClB,GAAKphG,IAAM,IAAM8K,GAAK,GACvBA,IAET/K,IADAA,IAAMmjG,EAAKn4F,GAAKq2F,EAAO,IAAM,aACnB,GAAKrhG,IAAM,IAAMC,GAAK,IAChBohG,EAAO,IAAM,WACnB,GAAKr2F,IAAM,GAAKhL,GAAK,EAU/BgL,IADAA,KAHAm4F,GADAljG,IADAA,KAHAijG,EAAKl4F,EAAIhL,IAET+K,IADAA,IAAMm4F,EAAKjjG,GAAKohG,EAAO,GAAK,aAClB,EAAIt2F,IAAM,IAAMC,GAAK,IACfq2F,EAAO,GAAK,aAClB,GAAKphG,IAAM,IAAM8K,GAAK,GACvBA,IAET/K,IADAA,IAAMmjG,EAAKn4F,GAAKq2F,EAAO,GAAK,YAClB,GAAKrhG,IAAM,IAAMC,GAAK,IAChBohG,EAAO,IAAM,aACnB,GAAKr2F,IAAM,GAAKhL,GAAK,EAU/BgL,IADAA,KAHAm4F,GADAljG,IADAA,KAHAijG,EAAKl4F,EAAIhL,IAET+K,IADAA,IAAMm4F,EAAKjjG,GAAKohG,EAAO,IAAM,YACnB,EAAIt2F,IAAM,IAAMC,GAAK,IACfq2F,EAAO,GAAK,YAClB,GAAKphG,IAAM,IAAM8K,GAAK,GACvBA,IAET/K,IADAA,IAAMmjG,EAAKn4F,GAAKq2F,EAAO,GAAK,YAClB,GAAKrhG,IAAM,IAAMC,GAAK,IAChBohG,EAAO,GAAK,WAClB,GAAKr2F,IAAM,GAAKhL,GAAK,EAU/BgL,IADAA,KAHAm4F,GADAljG,IADAA,KAHAijG,EAAKl4F,EAAIhL,IAET+K,IADAA,IAAMm4F,EAAKjjG,GAAKohG,EAAO,GAAK,YAClB,EAAIt2F,IAAM,IAAMC,GAAK,IACfq2F,EAAO,IAAM,YACnB,GAAKphG,IAAM,IAAM8K,GAAK,GACvBA,IAET/K,IADAA,IAAMmjG,EAAKn4F,GAAKq2F,EAAO,IAAM,YACnB,GAAKrhG,IAAM,IAAMC,GAAK,IAChBohG,EAAO,GAAK,YAClB,GAAKr2F,IAAM,GAAKhL,GAAK,EAQ/BgL,IADAA,KAHA/K,IADAA,IAAM+K,IADND,IADAA,IAAM/K,GAAKgL,GAAK/K,IAAMohG,EAAO,GAAK,YACxB,EAAIt2F,IAAM,IAAMC,GAAK,IACfhL,IAAMqhG,EAAO,GAAK,aACxB,GAAKphG,IAAM,IAAM8K,GAAK,KAEhC/K,IADAA,IAAM+K,GAAK9K,GAAK+K,IAAMq2F,EAAO,IAAM,aACzB,GAAKrhG,IAAM,IAAMC,GAAK,IAChB8K,IAAMs2F,EAAO,GAAK,WACxB,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KAHA/K,IADAA,IAAM+K,IADND,IADAA,IAAM/K,GAAKgL,GAAK/K,IAAMohG,EAAO,IAAM,aACzB,EAAIt2F,IAAM,IAAMC,GAAK,IACfhL,IAAMqhG,EAAO,GAAK,aACxB,GAAKphG,IAAM,IAAM8K,GAAK,KAEhC/K,IADAA,IAAM+K,GAAK9K,GAAK+K,IAAMq2F,EAAO,IAAM,UACzB,GAAKrhG,IAAM,IAAMC,GAAK,IAChB8K,IAAMs2F,EAAO,GAAK,aACxB,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KAHA/K,IADAA,IAAM+K,IADND,IADAA,IAAM/K,GAAKgL,GAAK/K,IAAMohG,EAAO,GAAK,aACxB,EAAIt2F,IAAM,IAAMC,GAAK,IACfhL,IAAMqhG,EAAO,IAAM,WACzB,GAAKphG,IAAM,IAAM8K,GAAK,KAEhC/K,IADAA,IAAM+K,GAAK9K,GAAK+K,IAAMq2F,EAAO,GAAK,aACxB,GAAKrhG,IAAM,IAAMC,GAAK,IAChB8K,IAAMs2F,EAAO,IAAM,aACzB,GAAKr2F,IAAM,IAAMhL,GAAK,EAQhCgL,IADAA,KAHA/K,IADAA,IAAM+K,IADND,IADAA,IAAM/K,GAAKgL,GAAK/K,IAAMohG,EAAO,GAAK,YACxB,EAAIt2F,IAAM,IAAMC,GAAK,IACfhL,IAAMqhG,EAAO,IAAM,aACzB,GAAKphG,IAAM,IAAM8K,GAAK,KAEhC/K,IADAA,IAAM+K,GAAK9K,GAAK+K,IAAMq2F,EAAO,GAAK,YACxB,GAAKrhG,IAAM,IAAMC,GAAK,IAChB8K,IAAMs2F,EAAO,GAAK,YACxB,GAAKr2F,IAAM,IAAMhL,GAAK,EAE5BqT,KAAKyvF,OACPzvF,KAAKivF,GAAKv3F,EAAI,YAAc,EAC5BsI,KAAKkvF,GAAKv3F,EAAI,WAAa,EAC3BqI,KAAKmvF,GAAKxiG,EAAI,YAAc,EAC5BqT,KAAKovF,GAAKxiG,EAAI,WAAa,EAC3BoT,KAAKyvF,OAAQ,IAEbzvF,KAAKivF,GAAKjvF,KAAKivF,GAAKv3F,GAAK,EACzBsI,KAAKkvF,GAAKlvF,KAAKkvF,GAAKv3F,GAAK,EACzBqI,KAAKmvF,GAAKnvF,KAAKmvF,GAAKxiG,GAAK,EACzBqT,KAAKovF,GAAKpvF,KAAKovF,GAAKxiG,GAAK,IAc7B2hG,IAAIrgG,UAAU6hG,IAAM,WAClB/vF,KAAK4vF,WAEL,IAAIX,EAAKjvF,KAAKivF,GAAIC,EAAKlvF,KAAKkvF,GAAIC,EAAKnvF,KAAKmvF,GAAIC,EAAKpvF,KAAKovF,GAExD,OAAOzB,UAAWsB,GAAM,EAAK,IAAQtB,UAAe,GAALsB,GAC7CtB,UAAWsB,GAAM,GAAM,IAAQtB,UAAWsB,GAAM,EAAK,IACrDtB,UAAWsB,GAAM,GAAM,IAAQtB,UAAWsB,GAAM,GAAM,IACtDtB,UAAWsB,GAAM,GAAM,IAAQtB,UAAWsB,GAAM,GAAM,IACtDtB,UAAWuB,GAAM,EAAK,IAAQvB,UAAe,GAALuB,GACxCvB,UAAWuB,GAAM,GAAM,IAAQvB,UAAWuB,GAAM,EAAK,IACrDvB,UAAWuB,GAAM,GAAM,IAAQvB,UAAWuB,GAAM,GAAM,IACtDvB,UAAWuB,GAAM,GAAM,IAAQvB,UAAWuB,GAAM,GAAM,IACtDvB,UAAWwB,GAAM,EAAK,IAAQxB,UAAe,GAALwB,GACxCxB,UAAWwB,GAAM,GAAM,IAAQxB,UAAWwB,GAAM,EAAK,IACrDxB,UAAWwB,GAAM,GAAM,IAAQxB,UAAWwB,GAAM,GAAM,IACtDxB,UAAWwB,GAAM,GAAM,IAAQxB,UAAWwB,GAAM,GAAM,IACtDxB,UAAWyB,GAAM,EAAK,IAAQzB,UAAe,GAALyB,GACxCzB,UAAWyB,GAAM,GAAM,IAAQzB,UAAWyB,GAAM,EAAK,IACrDzB,UAAWyB,GAAM,GAAM,IAAQzB,UAAWyB,GAAM,GAAM,IACtDzB,UAAWyB,GAAM,GAAM,IAAQzB,UAAWyB,GAAM,GAAM,KAa1Db,IAAIrgG,UAAUwI,SAAW63F,IAAIrgG,UAAU6hG,IAYvCxB,IAAIrgG,UAAU6gG,OAAS,WACrB/uF,KAAK4vF,WAEL,IAAIX,EAAKjvF,KAAKivF,GAAIC,EAAKlvF,KAAKkvF,GAAIC,EAAKnvF,KAAKmvF,GAAIC,EAAKpvF,KAAKovF,GACxD,MAAO,CACA,IAALH,EAAYA,GAAM,EAAK,IAAOA,GAAM,GAAM,IAAOA,GAAM,GAAM,IACxD,IAALC,EAAYA,GAAM,EAAK,IAAOA,GAAM,GAAM,IAAOA,GAAM,GAAM,IACxD,IAALC,EAAYA,GAAM,EAAK,IAAOA,GAAM,GAAM,IAAOA,GAAM,GAAM,IACxD,IAALC,EAAYA,GAAM,EAAK,IAAOA,GAAM,GAAM,IAAOA,GAAM,GAAM,MAcjEb,IAAIrgG,UAAU0iC,MAAQ29D,IAAIrgG,UAAU6gG,OAYpCR,IAAIrgG,UAAUsiE,YAAc,WAC1BxwD,KAAK4vF,WAEL,IAAIxhC,EAAS,IAAI4C,YAAY,IACzBg9B,EAAS,IAAIE,YAAY9/B,GAK7B,OAJA4/B,EAAO,GAAKhuF,KAAKivF,GACjBjB,EAAO,GAAKhuF,KAAKkvF,GACjBlB,EAAO,GAAKhuF,KAAKmvF,GACjBnB,EAAO,GAAKhuF,KAAKovF,GACVhhC,GAcTmgC,IAAIrgG,UAAUkgE,OAASmgC,IAAIrgG,UAAUsiE,YAYrC+9B,IAAIrgG,UAAU8hG,OAAS,WAErB,IADA,IAAIC,EAAIC,EAAIC,EAAIC,EAAY,GAAIf,EAAQrvF,KAAK4wB,QACpCtkC,EAAI,EAAGA,EAAI,IAClB2jG,EAAKZ,EAAM/iG,KACX4jG,EAAKb,EAAM/iG,KACX6jG,EAAKd,EAAM/iG,KACX8jG,GAAarC,mBAAmBkC,IAAO,GACrClC,mBAA0C,IAAtBkC,GAAM,EAAIC,IAAO,IACrCnC,mBAA0C,IAAtBmC,GAAM,EAAIC,IAAO,IACrCpC,mBAAwB,GAALoC,GAMvB,OAJAF,EAAKZ,EAAM/iG,GACX8jG,GAAarC,mBAAmBkC,IAAO,GACrClC,mBAAoBkC,GAAM,EAAK,IAC/B,MAIJ,IAAInkG,QAAU2iG,eAEVnB,UACFvhG,OAAOD,QAAUA,SAmBjBF,KAAKykG,IAAMvkG,QACP0hG,MACFxhG,yCACE,OAAOF,SADH,0IA5pBZ,K,6ECTA,YAUA,IASIwkG,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAep4E,SAGf6wC,EAA8B,iBAAVvzD,GAAsBA,GAAUA,EAAO5I,SAAWA,QAAU4I,EAGhFwzD,EAA0B,iBAARvzD,MAAoBA,MAAQA,KAAK7I,SAAWA,QAAU6I,KAGxEjK,EAAOu9D,GAAcC,GAAY/d,SAAS,cAATA,GAUjCuf,EAPc59D,OAAOkB,UAOQwI,SAG7Bi6F,EAAYvlF,KAAKgpB,IACjBw8D,EAAYxlF,KAAKqP,IAkBjBtG,EAAM,WACR,OAAOvoB,EAAKuc,KAAKgM,OA4MnB,SAAS05C,EAAStgE,GAChB,IAAI0Z,SAAc1Z,EAClB,QAASA,IAAkB,UAAR0Z,GAA4B,YAARA,GA4EzC,SAAS4pF,EAAStjG,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAhCF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAsBtBu/D,CAAav/D,IAzTF,mBAyTYq9D,EAAen+D,KAAKc,GA8B1CujG,CAASvjG,GACX,OA3VM,IA6VR,GAAIsgE,EAAStgE,GAAQ,CACnB,IAAIwjE,EAAgC,mBAAjBxjE,EAAM6+D,QAAwB7+D,EAAM6+D,UAAY7+D,EACnEA,EAAQsgE,EAASkD,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAATxjE,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAMqU,QAAQ0uF,EAAQ,IAC9B,IAAIS,EAAWP,EAAWt+E,KAAK3kB,GAC/B,OAAQwjG,GAAYN,EAAUv+E,KAAK3kB,GAC/BmjG,EAAanjG,EAAM2sC,MAAM,GAAI62D,EAAW,EAAI,GAC3CR,EAAWr+E,KAAK3kB,GAxWb,KAwW6BA,EAGvCxB,EAAOD,QAtPP,SAAkB8T,EAAM+L,EAAMxE,GAC5B,IAAI6pF,EACAC,EACAC,EACAzrF,EACA0rF,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAAR5xF,EACT,MAAM,IAAI/I,UArIQ,uBA+IpB,SAAS46F,EAAWC,GAClB,IAAIvvD,EAAO6uD,EACPW,EAAUV,EAKd,OAHAD,EAAWC,OAAW1wF,EACtB8wF,EAAiBK,EACjBjsF,EAAS7F,EAAKgiC,MAAM+vD,EAASxvD,GAI/B,SAASyvD,EAAYF,GAMnB,OAJAL,EAAiBK,EAEjBP,EAAU5mF,WAAWsnF,EAAclmF,GAE5B2lF,EAAUG,EAAWC,GAAQjsF,EAWtC,SAASqsF,EAAaJ,GACpB,IAAIK,EAAoBL,EAAON,EAM/B,YAAyB7wF,IAAjB6wF,GAA+BW,GAAqBpmF,GACzDomF,EAAoB,GAAOR,GANJG,EAAOL,GAM8BH,EAGjE,SAASW,IACP,IAAIH,EAAOv9E,IACX,GAAI29E,EAAaJ,GACf,OAAOM,EAAaN,GAGtBP,EAAU5mF,WAAWsnF,EAzBvB,SAAuBH,GACrB,IAEIjsF,EAASkG,GAFW+lF,EAAON,GAI/B,OAAOG,EAASX,EAAUnrF,EAAQyrF,GAHRQ,EAAOL,IAGkC5rF,EAoBhCwsF,CAAcP,IAGnD,SAASM,EAAaN,GAKpB,OAJAP,OAAU5wF,EAINixF,GAAYR,EACPS,EAAWC,IAEpBV,EAAWC,OAAW1wF,EACfkF,GAeT,SAASysF,IACP,IAAIR,EAAOv9E,IACPg+E,EAAaL,EAAaJ,GAM9B,GAJAV,EAAW7vF,UACX8vF,EAAWjxF,KACXoxF,EAAeM,EAEXS,EAAY,CACd,QAAgB5xF,IAAZ4wF,EACF,OAAOS,EAAYR,GAErB,GAAIG,EAGF,OADAJ,EAAU5mF,WAAWsnF,EAAclmF,GAC5B8lF,EAAWL,GAMtB,YAHgB7wF,IAAZ4wF,IACFA,EAAU5mF,WAAWsnF,EAAclmF,IAE9BlG,EAIT,OAxGAkG,EAAOklF,EAASllF,IAAS,EACrBkiD,EAAS1mD,KACXmqF,IAAYnqF,EAAQmqF,QAEpBJ,GADAK,EAAS,YAAapqF,GACHwpF,EAAUE,EAAS1pF,EAAQ+pF,UAAY,EAAGvlF,GAAQulF,EACrEM,EAAW,aAAcrqF,IAAYA,EAAQqqF,SAAWA,GAiG1DU,EAAUv/B,OAnCV,gBACkBpyD,IAAZ4wF,GACF1jF,aAAa0jF,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAU5wF,GA+BjD2xF,EAAU1kF,MA5BV,WACE,YAAmBjN,IAAZ4wF,EAAwB1rF,EAASusF,EAAa79E,MA4BhD+9E,K,+CCtMF/vF,eAAegoE,EAAQH,GAC1B,MAAMooB,EAAc,IAAIC,YAGxB,OAAO1oB,OAAO2oB,OAAOC,WAAW,CAC5B1lG,KAAM,OACNgoB,KAAMu9E,EAAYI,OAAO,oBACzB35F,KAAM,UACNqM,KAAM,IAAI8rD,aACXgZ,EAAU,KAUV7nE,eAAe8nE,EAAUwoB,GAE5B,OAAO9oB,OAAO2oB,OAAOroB,UAAU,MAAOwoB,EAAU,QAAQ,EAAO,CAAE,aAAc,cAxEnF,qE,8BCAA,+KA6BA,MAAMx0E,EAASF,oBAAUM,GAMV,MAAMukB,UAAwB+hD,IAoBzC1uF,aAAY,SACR0/B,EADQ,WAERE,EAFQ,UAGRlK,EAHQ,WAIR0K,EAJQ,MAKRwM,EALQ,SAMRjN,EANQ,WAORyI,EAPQ,OAQR9c,EARQ,MASR+c,EATQ,UAURE,EAVQ,QAWRkC,EAAU,KAEVrG,MACqB,KACjB9Y,EACA+c,EAC4B,IAAMt+B,KAAKkjB,KAAK6mB,uBAC5Cpe,EACA6S,GAEJx+B,KAAK0yF,sBAAuB,EAC5B,MAAMC,EAASjyD,EAAQzP,KAAK53B,GAAKA,EAAE+vE,UAAUppE,OAEzC2yF,GACA3yF,KAAK4yF,mBAAmBD,GAQ5B3yF,KAAK6iC,MAAQA,EACb7iC,KAAK41B,SAAWA,EAChB51B,KAAKq+B,WAAaA,EAEdve,IAAQ+a,kBAGR76B,KAAKq2B,WAAaiI,EAAMoE,cAAcxO,OACtCl0B,KAAK6yF,qBAAuBx8D,EAI5Br2B,KAAK8yF,aAAex0D,EAAMnJ,iBAGrBnoC,OAAOuY,KAAKvF,KAAK8yF,cAAcv8F,QAAUioC,IAAcC,IAAUE,SAClE3+B,KAAK8yF,aAAe,CAChB5+D,OAAQoK,EAAMoE,cAAcxO,OAC5BqC,MAAO+H,EAAMoE,cAAcnM,UAOnCv2B,KAAKq2B,WAAavW,IAAQsQ,YAAc,KAAOiG,EAC/Cr2B,KAAK6yF,qBAAuB7yF,KAAKq2B,YAGrCr2B,KAAK21B,SAAWA,EAUhB31B,KAAK+yF,cAAgB/1D,QAAQC,UAS7Bj9B,KAAKgzF,YAAcn9D,EAMnB71B,KAAKizF,aAAc,EAKnBjzF,KAAKkzF,cAAe,EAOpBlzF,KAAKmzF,eAAgB,EAQrBnzF,KAAKozF,cAAkC,KAAlBpzF,KAAK21B,cAAkBp1B,EAAYP,KAAK21B,SAE7D31B,KAAKqzF,cAAgB,EAErBrzF,KAAKszF,wBAA0B34D,IAC3B,MAAM44D,EAAkBvzF,KAAKozF,cAE7BpzF,KAAKwzF,+BAA+B74D,SAMO,IAA/B36B,KAAK2lF,WAAW3sE,iBACa,IAAvBhZ,KAAKozF,gBACXz4D,EAAQ1J,KAAKrkC,GAAKA,EAAE+oC,WAAa31B,KAAKozF,qBAOf,IAApBG,QAAiE,IAAvBvzF,KAAKozF,iBAE1DpzF,KAAKizF,aAAc,IAQvBjzF,KAAK6oC,gBAAkB1O,IAASwG,wBAAwB,YACxD3gC,KAAKyzF,4BAA8BzzF,KAAKmpC,eAAer7C,KAAKkS,MAC5Dm6B,IAASyJ,YACL5K,IAAUrQ,4BACV3oB,KAAKyzF,8BAGbt5D,IAASyJ,YAAY5K,IAAUnQ,wBAAyB7oB,KAAKszF,yBAE7DtzF,KAAK0zF,gCAQTC,UACI,OAAI3zF,KAAK2qE,gBAAkB3qE,KAAKs+D,UAGrBt+D,KAAKizF,YAGsB,UAA/BjzF,KAAK2lF,WAAW3sE,YAA0BhZ,KAAKizF,YAO1DS,gCACS1zF,KAAK4zF,qCAIV5zF,KAAKqlF,YAAY,aAAc,KAC3BrlF,KAAKqzF,cAAgBnnG,OAAOsuD,YAAYrmC,MACxCnU,KAAK6zF,+BAGT7zF,KAAKqlF,YAAY,eAAgB,KAC7BrlF,KAAK6zF,6BACLz0E,IAAWgI,oBACPkD,IACA,CACI,WAActqB,KAAKsnC,UACnB,WAAc,QACd/5C,MAAOrB,OAAOsuD,YAAYrmC,MAAQnU,KAAKqzF,kBAI/CrzF,KAAK2qE,gBAAkB3qE,KAAKw+B,YAAcC,IAAUE,QACpD3+B,KAAKqlF,YAAY,cAAe,KACvBrlF,KAAK8zF,mBACN9zF,KAAK6zF,gCAWrBD,mCAEI,OAAQ5zF,KAAK2qE,gBAAkB3qE,KAAKw+B,YAAcC,IAAUC,QAMhEm1D,6BACI,MAAMtmG,GAASyS,KAAK8zF,kBAEpB9zF,KAAKkjB,KAAKgnB,sBAAqB38C,GAG/B6xB,IAAWoI,cAAckE,YAA4B1rB,KAAKsnC,UAAW/5C,IACrE6xB,IAAWkH,QAAQ1Z,KAAKwL,UAAU,CAC9BvrB,KAAMq9C,sBACNtlC,IAAKrX,KAYbimG,+BAA+B74D,GAC3B,MAAM2D,EAAQt+B,KAAK2lF,WACbvsD,EAAUkF,EAAMlF,KAAR,QACd,IAAII,EAASmB,EAAQ1J,KAAKrkC,GAAKA,EAAEwsC,OAASA,GAAQxsC,EAAE8sC,QAAU4E,EAAM5E,OAEpE,IAAKF,GAAiC,YAAvBx5B,KAAKozF,cAA6B,CAI7C,MAAM15D,GAAS4E,EAAM5E,OAAS,IAAI93B,QAAQ,aAAc,IAExD43B,EAASmB,EAAQ1J,KAAKrkC,GAAKA,EAAEwsC,OAASA,GAAQxsC,EAAE8sC,QAAUA,GAI1D15B,KAAKozF,cADL55D,EACqBA,EAAO7D,cAEPp1B,EAW7B0kF,WAAW1jE,GACP8Y,MAAM4qD,WAAW1jE,GAEbA,GAEAvhB,KAAK+zF,WAAa/zF,KAAKymF,UACvBxoE,EAAOhZ,MAAO,qBAAoBjF,KAAK+zF,iBAAiB/zF,SAExDie,EAAOhZ,MAAO,4BAA2BjF,MAWjD4yF,mBAAmBD,GACf3yF,KAAKg0F,cAAgBrB,EACrB3yF,KAAKi0F,gBAAkBj0F,KAAKuhB,OAC5BvhB,KAAKilF,WAAWjlF,KAAKg0F,cAAcE,YAAYl0F,KAAKi0F,kBACpDj0F,KAAKs+B,MAAQt+B,KAAKuhB,OAAOue,YAAY,GASzCq0D,oBACQn0F,KAAKg0F,gBACLh0F,KAAKg0F,cAAcI,aACnBp0F,KAAKilF,WAAWjlF,KAAKi0F,iBACrBj0F,KAAKi0F,gBAAkB,KACvBj0F,KAAKs+B,MAAQt+B,KAAKuhB,OAAOue,YAAY,IAS7Cu0D,oBAAoB1B,GACZ3yF,KAAKg0F,gBACLh0F,KAAKm0F,oBACLn0F,KAAKg0F,mBAAgBzzF,GAErBoyF,GACA3yF,KAAK4yF,mBAAmBD,GAUhC2B,UAAU3B,GACN,QAAkC,IAAvB3yF,KAAKg0F,oBAAmD,IAAXrB,EACpD,OAAO31D,QAAQC,UAGnB,QAAsB,IAAX01D,IAA2BA,EAAOvpB,UAAUppE,MACnD,OAAOg9B,QAAQE,OAAO,IAAI7lC,MAAM,kCAGpC,IAAkC,IAA9B2I,KAAK0yF,qBACL,OAAO11D,QAAQE,OAAO,IAAI7lC,MAAM,mCAKpC,GAAI2I,KAAKs+D,YAAct+D,KAAK6oC,eAGxB,OAFA7oC,KAAKg0F,cAAgBrB,EAEd31D,QAAQC,UAGnB,MAAM1a,EAAaviB,KAAKuiB,WAExB,OAAKA,GAMLviB,KAAK0yF,sBAAuB,EAExB5yE,IAAQ2uD,mBACRzuE,KAAKq0F,oBAAoB1B,GACrB3yF,KAAK2qE,gBACL3qE,KAAK8kF,WAAW11E,QAAQmlF,GAAQp6D,IAASa,kBAAkBu5D,EAAMv0F,KAAKuhB,SAGnEgB,EAAW2zD,aAAal2E,KAAMA,MAChC06B,KAAK,KACF16B,KAAK0yF,sBAAuB,IAE/Bt1D,MAAMp4B,IAIH,MAHAhF,KAAK0yF,sBAAuB,EAC5B1yF,KAAKq0F,sBACLp2E,EAAOjZ,MAAM,sCAAuCA,GAC9CA,KAKXud,EAAWiyE,YAAYx0F,MACzB06B,KAAK,KACF16B,KAAKq0F,oBAAoB1B,GACrB3yF,KAAK2qE,gBACL3qE,KAAK8kF,WAAW11E,QAAQmlF,GAAQp6D,IAASa,kBAAkBu5D,EAAMv0F,KAAKuhB,SAGnEgB,EAAW4b,SAASn+B,QAE9B06B,KAAK,KACF16B,KAAK0yF,sBAAuB,IAE/Bt1D,MAAMp4B,IAMH,MAHAhF,KAAK0yF,sBAAuB,EAC5B1yF,KAAKq0F,sBACLp2E,EAAOjZ,MAAM,sCAAuCA,GAC9CA,MA5CVhF,KAAKq0F,oBAAoB1B,GAElB31D,QAAQC,WAmDvB4K,OACI,OAAO7nC,KAAKy0F,gBAAe,GAQ/B3sD,SACI,OAAO9nC,KAAKy0F,gBAAe,GAY/BA,eAAe3vE,GACX,MAAM4vE,EAAW10F,KAAK20F,UAAU7mG,KAAKkS,KAAM8kB,GAI3C,OAFA9kB,KAAK+yF,cAAgB/yF,KAAK+yF,cAAcr4D,KAAKg6D,EAAUA,GAEhD10F,KAAK+yF,cAWhB4B,UAAU7vE,GACN,GAAI9kB,KAAKs+D,YAAcx5C,EACnB,OAAOkY,QAAQC,UAGnB,GAAIj9B,KAAK+kF,SACL,OAAO/nD,QAAQE,OAAO,IAAItX,IAAgBgkB,sBAG9C,IAAI7H,EAAU/E,QAAQC,UAGtB,MAAM23D,EAAc,IAAM32E,EAAO/Y,KAAM,QAAOlF,SAAS8kB,KAEvD,GAAI9kB,KAAK6oC,gBACE7oC,KAAKw+B,YAAcC,IAAUC,UAC5B5e,IAAQ4qD,8BAChBkqB,IACI50F,KAAKs+B,QACLt+B,KAAKs+B,MAAMgrC,SAAWxkD,QAEvB,GAAIA,EACPid,EAAU,IAAI/E,QAAQ,CAACC,EAASC,KAC5B03D,IACA50F,KAAK60F,kCACD,KACQ70F,KAAKg0F,eACLh0F,KAAKm0F,oBAMTn0F,KAAKslF,sBACLtlF,KAAKipF,aACLjpF,KAAKilF,WAAW,MAChBhoD,KAEJC,SAEL,CACH03D,IAGA,MAAME,EAAgB,CAClBp/D,eAAgB11B,KAAK2oF,cACrBhuD,QAAS,CAAE4D,KACXmC,QAAS1gC,KAAKg0F,cAAgB,CAAEh0F,KAAKg0F,eAAkB,GACvDn+D,WAAY71B,KAAK+0F,uBAGjBj1E,IAAQ+a,iBACRkH,EACM5H,IAASuF,kCAAkC1yC,OAAOgoG,OAChD,GACAF,EACA,CAAE/uE,YAAa,CAAEkO,MAAOj0B,KAAK8yF,kBAEjC9yF,KAAKq2B,aACLy+D,EAAcz+D,WAAar2B,KAAKq2B,YAGpC0L,EACM5H,IAASyD,+BAA+Bk3D,IAGlD/yD,EAAUA,EAAQrH,KAAKu6D,IAEnB,MAAMtpE,EAAY3rB,KAAKsnC,YAAc/I,IAAsBA,IAAkBv+B,KAAKsnC,UAC5E4tD,EACAp1E,IAAQ+a,iBACJo6D,EAAYhkE,KACV/rB,GAAQA,EAAKo5B,MAAMlF,OAASzN,GAC9BspE,EAAYhkE,KACV/rB,GAAQA,EAAKymB,YAAcA,GAEvC,IAAIupE,EAaA,MAAM,IAAItvE,IAAgBikB,yBAU9B,OAtBI7pC,KAAKilF,WAAWiQ,EAAW3zE,QAC3BvhB,KAAKs+B,MAAQ42D,EAAW52D,MAIpBt+B,KAAKw+B,YAAc02D,EAAW12D,YAC9BvgB,EAAO9Y,KACAnF,KAAF,yCACDA,KAAKw+B,UAAW02D,EAAW12D,WAC/Bx+B,KAAKw+B,UAAY02D,EAAW12D,WAMhCx+B,KAAKg0F,eACLh0F,KAAK4yF,mBAAmB5yF,KAAKg0F,eAGjCh0F,KAAK8kF,WAAWt/E,IACZ+uF,GAAQp6D,IAASa,kBAAkBu5D,EAAMv0F,KAAKuhB,SAE3CvhB,KAAKm1F,mCAIpB,OAAOpzD,EACFrH,KAAK,IAAM16B,KAAKo1F,gBAAgBtwE,IAChC4V,KAAK,IAAM16B,KAAKkjB,KAAKjuB,qBAAoB+K,OASlDm1F,iCACI,OAAKn1F,KAAKuiB,WAcH,IAAIya,QAAQ,CAACC,EAASC,KACzBl9B,KAAKuiB,WAAW8yE,uBAAuBr1F,MAClC06B,KAAKuC,EAASj4B,GAASk4B,EAAO,IAAI7lC,MAAM2N,OAftCg4B,QAAQC,UA0BvB43D,kCAAkCS,EAAiBn9B,GAC1Cn4D,KAAKuiB,WAKVviB,KAAKuiB,WAAWgzE,wBAAwBv1F,MAAM06B,KAC1C46D,EACAtwF,GAASmzD,EAAc,IAAI9gE,MAAM2N,KANjCswF,IAgBRF,gBAAgBvtD,GACZ,OAAK7nC,KAAKuiB,YAAeviB,KAAKuiB,WAAW48B,KAIlC,IAAIniB,QAAQC,IACfj9B,KAAKuiB,WAAW48B,KACZn/C,KAAK6oC,eACC,eACA,gBAAgBhB,EAAM5K,KAPzBD,QAAQC,UAoBvBja,UACIhjB,KAAKq0F,sBAEL,IAAItyD,EAAU/E,QAAQC,UAkBtB,OAhBIj9B,KAAKuiB,aACLwf,EAAU/hC,KAAKuiB,WAAWiyE,YAAYx0F,OAGtCA,KAAKuhB,SACLvhB,KAAKipF,aACLjpF,KAAKmmF,UAGThsD,IAASrY,eAAekX,IAAUnQ,wBAAyB7oB,KAAKszF,yBAE5DtzF,KAAKyzF,6BACLt5D,IAASrY,eAAekX,IAAUrQ,4BAC9B3oB,KAAKyzF,6BAGN1xD,EAAQrH,KAAK,IAAML,MAAMrX,WAUpCs7C,UAEI,OAAKt+D,KAAKuhB,YAGNvhB,KAAK2qE,gBAAmB3qE,KAAKi8D,eAIzBj8D,KAAKs+B,QAAUt+B,KAAKs+B,MAAMgrC,UAStCksB,eAAejzE,GACXviB,KAAKuiB,WAAaA,EAMlB,IAAK,IAAIj2B,EAAI,EAAGA,EAAI0T,KAAK8kF,WAAWvuF,OAAQjK,IACxC0T,KAAK+lF,wBAAwB/lF,KAAK8kF,WAAWx4F,IASrDi5B,UACI,OAAO,EAQXojE,cACI,OAAO3oF,KAAKozF,eAAiBpzF,KAAK21B,SAStCgnC,mBACI,OAAO38D,KAAKuiB,YAAcviB,KAAKuiB,WAAW25C,WAU9Cu5B,yBAAyBnyE,EAAKoyE,GACtBA,EAAY,IACZ11F,KAAKkzF,cAAe,GAExB,MAAM9kB,EAAqB9qD,EAAI+1D,qBAE3Br5E,KAAKmzF,eAAwC,cAAvB/kB,IACtB7jE,WAAW,KACFvK,KAAKkzF,eACNj1E,EAAO9Y,KAAM,GAAEnF,mDACT01F,KAENt2E,IAAWyB,UAAUkG,UAAUsD,IAAe,CAAE,WAAcrqB,KAAKsnC,cAExE,KACHtnC,KAAKmzF,eAAgB,GAU7B4B,sBACI,GAAI/0F,KAAK2qE,gBAAkB3qE,KAAKw+B,YAAcC,IAAUE,OAAQ,CAQ5D,IAAIg3D,EAEJ,IACIA,EAAgB31F,KAAKs+B,MAAMoE,cAC7B,MAAOrpC,IAKT,OAAIs8F,GAAiB,eAAgBA,EAC1BA,EAAc9/D,gBAGO,IAArB71B,KAAKgzF,YACLhzF,KAAKgzF,YAMTl9D,IAAiBC,MAShCkzD,aASIjpF,KAAK41F,uBAAwB,EAE7B,IACIz7D,IAAS8E,gBAAgBj/B,KAAKuhB,QADlC,QAGIvhB,KAAK41F,uBAAwB,GAiBrCC,gBACQ71F,KAAK2qE,gBACE3qE,KAAKw+B,YAAcC,IAAUE,QACO,mBAA7B3+B,KAAKs+B,MAAMu3D,gBACzB71F,KAAKs+B,MAAMu3D,gBAEX71F,KAAKgzF,YACChzF,KAAKgzF,cAAgBl9D,IAAiB69B,YAClC79B,IAAiBC,KACjBD,IAAiB69B,aAenCmgC,kBACI,GAAI9zF,KAAK2qE,iBACD3qE,KAAKs+D,WAAat+D,KAAK41F,uBAAyB51F,KAAKw+B,YAAcC,IAAUC,SACjF,OAAO,EAGX,IAAK1+B,KAAKuhB,OACN,OAAO,EAcX,OAFevhB,KAAK81F,eAAiB91F,KAAKi0F,gBAAkBj0F,KAAKuhB,QAEnDue,YAAY6iD,KAAKrkD,KACxB,eAAgBA,GAA+B,SAArBA,EAAMtlB,YACzB,UAAWslB,IAA0B,IAAhBA,EAAMxZ,QAQ7CpuB,WACI,MAAQ,cAAasJ,KAAK6iC,SAAS7iC,KAAKsnC,iB,2EC15BhD,wFAQA,MAAMrpB,EAASF,oBAAUM,GAYV,MAAM03E,UAAyBt2E,eAW1CxpB,YAAYssB,EAAYyzE,GACpB37D,QAKAr6B,KAAKi2F,oBAAsBD,EAM3Bh2F,KAAKk2F,YAAc,KAKnBl2F,KAAKm2F,sBAAuB,EAK5Bn2F,KAAKo2F,mBAAqB,GAS1Bp2F,KAAKq2F,gBAAkBr5D,QAAQC,UAK/Bj9B,KAAKs2F,iBAAmBt2F,KAAKs2F,iBAAiBxoG,KAAKkS,MAEnDuiB,EAAWZ,GAAGgB,cAAmC3iB,KAAKu2F,YAAYzoG,KAAKkS,OACvEuiB,EAAWZ,GAAGgB,gBAAqC3iB,KAAKw2F,cAAc1oG,KAAKkS,OAC3EuiB,EAAWZ,GAAGgB,qBAA0C3iB,KAAK4oE,kBAAkB96E,KAAKkS,OAQxFy2F,uBAAuBC,GACnB12F,KAAKo2F,mBAAmBlzF,KAAKwzF,GAC7BA,EAAW/0E,GAAG80B,wBAAuB,MAGVz2C,KAAKo2F,mBAAmB1lE,OAAOimE,IAAoC,IAAxBA,EAAS16B,YAKvD1lE,QAAUyJ,KAAKm2F,qBAC/Bn2F,KAAK42F,kBACG52F,KAAKm2F,sBACbn2F,KAAK62F,qBASjBA,mBACI72F,KAAKk2F,YAAYv0E,GAAGi1B,sBAAqB52C,KAAKs2F,kBAC9Ct2F,KAAKk2F,YAAYn5E,QACjB/c,KAAKm2F,sBAAuB,EAOhCS,kBACI52F,KAAKk2F,YAAYp0E,eAAe80B,sBAAqB52C,KAAKs2F,kBAC1Dt2F,KAAKk2F,YAAYtyE,OACjB5jB,KAAKm2F,sBAAuB,EAahCG,iBAAiBhO,GACb,IAAK,MAAMqO,KAAY32F,KAAKo2F,mBACxBO,EAASG,gBAAgBxO,GASjCyO,0BAA0Bz4B,GACtB,IAAK,MAAMq4B,KAAY32F,KAAKo2F,mBACxBO,EAASK,gBAAgB14B,GAWjCi4B,YAAYj4D,GACJA,EAAMknD,sBAGNxlF,KAAKq2F,gBAAkBr2F,KAAKq2F,gBAAgB37D,KAAK,IAAM16B,KAAKi2F,uBACvDv7D,KAAKmsD,GACFF,IAAgB/4F,OAAO0wC,EAAMqqD,cA/IjB,KA+IyD9B,IAExEnsD,KAAKu8D,IACFh5E,EAAOhZ,MAAM,kCAAmCq5B,EAAMsnD,iBAEtD5lF,KAAKk2F,YAAce,EAInBj3F,KAAK+2F,0BAA0Bz4D,EAAMggC,cAYrDsK,kBAAkBtqC,GACVA,EAAMknD,sBAENxlF,KAAKq2F,gBAAkBr2F,KAAKq2F,gBAAgB37D,KAAK,KAE7C16B,KAAK+2F,0BAA0Bz4D,EAAMggC,cAajDk4B,cAAcl4D,GACNA,EAAMknD,sBAENxlF,KAAKq2F,gBAAkBr2F,KAAKq2F,gBAAgB37D,KAAK,KAC7Czc,EAAOhZ,MAAM,uCAAwCq5B,EAAMsnD,iBAGvD5lF,KAAKk2F,cACLl2F,KAAK42F,kBACL52F,KAAKk2F,YAAYryD,UACjB7jC,KAAKk2F,YAAc,MAIvB,IAAK,MAAMS,KAAY32F,KAAKo2F,mBACxBO,EAAStuF,e,iFCnN7B,qDAOe,MAAM6uF,EAMjBjhG,YAAYkR,EAAU,IAClBnH,KAAKwU,YAAcrN,EAAQoN,WAC3BvU,KAAKm3F,MAAQhwF,EAAQ1Z,KAErBuS,KAAKo3F,cAAcjwF,EAAQ4/D,WAC3B/mE,KAAKq3F,UAAUlwF,EAAQ4I,QAQ3BunF,WACI,OAAOt3F,KAAK2lD,OAQhB4xC,QACI,OAAOv3F,KAAKw3F,WAQhBC,eACI,OAAOz3F,KAAK03F,WAQhBC,uBACI,OAAO33F,KAAK43F,mBAQhBC,YACI,OAAO73F,KAAKkyD,QAQhB4lC,gBACI,OAAO93F,KAAK+3F,YAQhBC,UACI,OAAOh4F,KAAKm3F,MAUhBc,SAASjzF,GACLhF,KAAK2lD,OAAS3gD,EAUlBkzF,qBAAqBn3D,GACjB/gC,KAAK43F,mBAAqB72D,EAS9Bs2D,UAAUtnF,GACN/P,KAAKkyD,QAAUniD,EAOnBooF,aAAa97B,GACTr8D,KAAK03F,WAAar7B,EAQtB+7B,cAAc/7B,GACVr8D,KAAK+3F,YAAc17B,EAoBvBt/C,OAAM,QAAEs7E,EAAF,YAAWC,EAAX,YAAwBC,EAAxB,SAAqC/vD,IACvC,OAAO,IAAIxL,QAAQ,CAACC,EAASC,KACzBl9B,KAAKwU,YAAYpG,OACbpO,KAAKw4F,UAAU,CACXhuE,OAAQ,QACR6tE,UACAE,cACAD,cACA9vD,aAEJ/iC,IAKIzF,KAAKq3F,UAAU,WACfr3F,KAAKo3F,cACDqB,IAAkBpxB,mBAAmB5hE,IAEzCw3B,KAEJj4B,IACIhF,KAAK04F,gBAAgB1zF,GAErBk4B,EAAOl4B,OAcvB4e,MAAK,YAAE20E,IACH,OAAO,IAAIv7D,QAAQ,CAACC,EAASC,KACzBl9B,KAAKwU,YAAYpG,OACbpO,KAAKw4F,UAAU,CACXhuE,OAAQ,OACR+tE,gBAEJt7D,EACAC,KAqBZs7D,WAAU,OAAEhuE,EAAF,QAAU6tE,EAAV,YAAmBC,EAAnB,YAAgCC,EAAhC,SAA6C/vD,IACnD,OAAO7sC,cAAI,CACPotC,GAAIwvD,EACJtxF,KAAM,QAETta,EAAE,QAAS,CACR,MAAS,kCACT,OAAU69B,EACV,SAAY6tE,EACZ,eAAkBr4F,KAAKm3F,MACvB,SAAY3uD,EACZ,sBAAyB8vD,IAE5BnyF,KAULuyF,gBAAgBC,GACZ,MAAM3zF,EAAQ2zF,EAAQ7nF,qBAAqB,SAAS,GAEpD9Q,KAAKi4F,SAASjzF,EAAM4zF,SAAS,GAAGz4F,SAUpCi3F,cAAcrwB,GACV/mE,KAAKw3F,WAAazwB,K,8xBCmBX,QAjQf,MAKI9wE,cACI+J,KAAK64F,cAAgB,IAAIp5E,IACzBzf,KAAK84F,oBAAsB,GAE3Bh2D,IAAIc,YACA5K,IAAUpQ,oBACV+R,GACI36B,KAAK64F,cAAc31E,KACf61E,sBACAp+D,IACZmI,IAAIc,YACA5K,IAAUlQ,sBACV6R,GACI36B,KAAKg5F,iBACDh5F,KAAKmhC,uBACLxG,IACZmI,IAAIc,YACA5K,IAAUjR,oBACVgR,GACI/4B,KAAKi5F,0BAA0BlgE,IAKvC/4B,KAAKk5F,yBAA2B,IAAIl8D,QAAQC,IACnCzC,UAAU2+D,YAMf3+D,UAAU2+D,YAAYC,MAAM,CAAEvsG,KAzCZ,WA0Cb6tC,KAAK,IAAMuC,GAAQ,GAAO,IAAMA,GAAQ,IANzCA,GAAQ,KAkBpBg8D,0BAA0BlgE,GACtB/4B,KAAK84F,oBAAL,OACO94F,KAAK84F,qBACL//D,GASXigE,iBAAiBK,EAAU1+D,GACvB,MAAMnB,EACAmB,EAAQ1J,KACNrkC,GAAgB,gBAAXA,EAAEwsC,MAA0BxsC,EAAE+oC,WAAa0jE,GAEpD7/D,GACApa,IAAW+F,0BACP2d,IAAIzB,4BAA4B7H,IAQ5Ce,iBAAiB/uB,GACbs3B,IAAIvI,iBAAiB/uB,GASzB0wB,wBACI,OAAO4G,IAAI5G,wBAUfyE,wBAAwBC,GACpB,OAAOkC,IAAInC,wBAAwBC,GAUvC04D,0BAA0BryF,GACtB,OAAO,IAAI+1B,QAAQC,IAGXh2B,KAAQjH,KAAK84F,oBACb77D,EAAQj9B,KAAK84F,oBAAoB7xF,IAMrCjH,KAAKk5F,yBAAyBx+D,KAAK6+D,IAC/B,IAAKA,EAID,OAAIz5E,IAAQyV,gBACR0H,GAAQ,QAIZA,GAAQ,GAKZ,MAAMy9C,EAAW,GAEjB,OAAQzzE,GACR,KAAKs3B,IACDm8C,EAASx3E,KACLs3B,UAAU2+D,YAAYC,MAAM,CACxBvsG,KAjJE,YAmJV,MACJ,KAAK0xC,IACDm8C,EAASx3E,KACLs3B,UAAU2+D,YAAYC,MAAM,CACxBvsG,KAzJE,gBA2JV,MACJ,QACI6tF,EAASx3E,KACLs3B,UAAU2+D,YAAYC,MAAM,CACxBvsG,KA7JE,YA+JV6tF,EAASx3E,KACLs3B,UAAU2+D,YAAYC,MAAM,CACxBvsG,KAnKE,gBAuKdmwC,QAAQ+K,IAAI2yC,GAAUhgD,KAClB8+D,GAAWv8D,EAAQu8D,EAAQC,MAAMC,GAvKnB,aA2KUA,EAAiBzsD,OAC9BysD,EAAiB3pF,UAI5B,IAAMktB,GAAQ,QAY9B08D,gCACI,OAAQ75E,IAAQsQ,YAQpB+Q,uBACI,OAAO2B,IAAI3B,uBAWfD,qBAAqBvL,GAWjB,OAVyBmN,IAAI1B,oCAER7qC,OAAS,GAI1ByJ,KAAKg5F,iBACDrjE,EAAUmN,IAAI1B,qCAGf0B,IAAI5B,qBAAqBvL,GAQpC0G,iBAAiBhV,EAAO9iB,GACpBvE,KAAK64F,cAAcj1D,YAAYvc,EAAO9iB,GAQ1C0qC,oBAAoB5nB,EAAO9iB,GACvBvE,KAAK64F,cAAc/2E,eAAeuF,EAAO9iB,GAO7Cq1F,UAAUvyE,KAAU8a,GAChBniC,KAAK64F,cAAc31E,KAAKmE,KAAU8a,GAStC1E,gBAII,OAAO3d,IAAQ2d,mB,cC1PvB,IAAIhgB,EAAS,CACT,MAAS,EACT,MAAS,EACT,KAAQ,EACR,IAAO,EACP,KAAQ,EACR,MAAS,GAObN,EAAO08E,iBAAmB90F,QAM1B,IAAI+0F,EAAmB,CAAE38E,EAAO08E,kBAOhC18E,EAAOQ,mBAAqB,SAASC,IACY,IAAzCk8E,EAAiBl2F,QAAQga,IACzBk8E,EAAiB52F,KAAK0a,IAS9BT,EAAOU,sBAAwB,SAASD,GACpC,IAAIm8E,EAAeD,EAAiBl2F,QAAQga,IACtB,IAAlBm8E,GACAD,EAAiB71F,OAAO81F,EAAc,IAO9C,IAAIC,EAAgB,GAgBpB,SAASC,IACL,IAAIC,EAAa,CACbn0C,WAAY,GACZo0C,aAAc,GACd31F,KAAM,KACN41F,OAAQ,MAGRp1F,EAAQ,IAAI3N,MACZ+M,EAAQY,EAAMZ,MAAOY,EAAMZ,MAAMrB,MAAM,MAAQ,GACnD,IAAIqB,GAASA,EAAM7N,OAAS,EACxB,OAAO2jG,EAEX,IAAIxtG,EAAI,KAIR,OAHG0X,EAAM,KACL1X,EAAI0X,EAAM,GAAGkP,MAAM,iDAEnB5mB,GAAKA,EAAE6J,QAAU,GAEe,IAA7B6N,EAAM,GAAGR,QAAQ,QAEhBs2F,EAAWn0C,WAAa3hD,EAAM,GAAGgR,OAAO,EAAGhR,EAAM,GAAGR,QAAQ,MAG5Ds2F,EAAWn0C,WAAa3hD,EAAM,GAAGgR,OAAO,EAAGhR,EAAM,GAAGR,QAAQ,MAEzDs2F,IAGXA,EAAWn0C,WAAar5D,EAAE,GAC1BwtG,EAAWC,aAAeztG,EAAE,GAC5BwtG,EAAW11F,KAAO9X,EAAE,GACpBwtG,EAAWE,OAAS1tG,EAAE,GACfwtG,GASX,SAASt1F,IACL,IAAIqZ,EAAS9c,UAAU,GAAI0D,EAAQ1D,UAAU,GACzCghC,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GACjD,KAAGsc,EAAO5Y,GAASoZ,EAAOpZ,OAQ1B,IAJA,IAAIq1F,IACIj8E,EAAO9W,QAAQkzF,mBAAqBL,EAAcK,oBAClDJ,IACJj8E,EAAa87E,EAAiB9/F,OAAOikB,EAAOD,YACxC1xB,EAAI,EAAGA,EAAI0xB,EAAWznB,OAAQjK,IAAK,CACvC,IAAIkB,EAAIwwB,EAAW1xB,GACfC,EAAIiB,EAAEqX,GACV,GAAGtY,GAAmB,mBAAPA,EAAmB,CAC9B,IAAI+tG,EAAc,GAElBA,EAAYp3F,MAAK,IAAIiF,MAAOoyF,eAExBt8E,EAAO/W,IACPozF,EAAYp3F,KAAK,IAAM+a,EAAO/W,GAAK,KAGnCgzF,GAAcA,EAAWn0C,WAAWxvD,OAAS,GAC7C+jG,EAAYp3F,KAAK,IAAMg3F,EAAWn0C,WAAa,OAGnD,IAAIy0C,EAAeF,EAAYtgG,OAAOmoC,GAEtC51C,EAAEuB,KAAKN,GAAGo0C,MAAMp0C,EAAGgtG,KAiB/B,SAASr9E,EAAOtY,EAAOqC,EAAI8W,EAAY7W,GACnCnH,KAAKkH,GAAKA,EACVlH,KAAKmH,QAAUA,GAAW,GAC1BnH,KAAKge,WAAaA,EACdhe,KAAKge,aACLhe,KAAKge,WAAa,IAEtBhe,KAAK6E,MAAQ4Y,EAAO5Y,GAEpB,IADA,IAAI41F,EAAUztG,OAAOuY,KAAKkY,GAClBnxB,EAAI,EAAGA,EAAImuG,EAAQlkG,OAAQjK,IAC/B0T,KAAKy6F,EAAQnuG,IACTsY,EAAI9W,KAAK,KAAMkS,KAAMy6F,EAAQnuG,IA7GzC6wB,EAAOW,iBAAmB,SAAS3W,GAC/B6yF,EAAgB7yF,GAAW,IAoH/BgW,EAAOjvB,UAAUiwB,SAAW,SAAUtZ,GAClC7E,KAAK6E,MAAQ4Y,EAAO5Y,IAExB9Y,EAAOD,QAAUqxB,EAKjBA,EAAOM,OAAS,CACZC,MAAO,QACP7e,MAAO,QACPC,KAAM,OACN47F,IAAK,MACL37F,KAAM,OACNrB,MAAO,U,cC3MX3R,EAAOD,QAAU,SAASC,GAoBzB,OAnBKA,EAAO4uG,kBACX5uG,EAAO6uG,UAAY,aACnB7uG,EAAO8uG,MAAQ,GAEV9uG,EAAO6sG,WAAU7sG,EAAO6sG,SAAW,IACxC5rG,OAAOC,eAAelB,EAAQ,SAAU,CACvCmB,YAAY,EACZC,IAAK,WACJ,OAAOpB,EAAOQ,KAGhBS,OAAOC,eAAelB,EAAQ,KAAM,CACnCmB,YAAY,EACZC,IAAK,WACJ,OAAOpB,EAAOO,KAGhBP,EAAO4uG,gBAAkB,GAEnB5uG,I,cCpBR,IAAI+uG,EAAU/uG,EAAOD,QAAU,CAC7B+kD,EAAG,CAAC,CACFhkD,KAAM,UACNkuG,IAAK,YAEPhuG,EAAG,CAAC,CAEFF,KAAM,SACNkuG,IAAK,wCACLz1F,MAAO,CAAC,WAAY,YAAa,iBAAkB,UAAW,QAAS,WACvE01F,OAAQ,wBAGV3sG,EAAG,CAAC,CAAExB,KAAM,SACZP,EAAG,CAAC,CAAEO,KAAM,gBACZouG,EAAG,CAAC,CAAEpuG,KAAM,QACZwM,EAAG,CAAC,CAAExM,KAAM,UACZuB,EAAG,CAAC,CAAEvB,KAAM,UACZquG,EAAG,CAAC,CAAEruG,KAAM,cACZO,EAAG,CAAC,CAAEP,KAAM,YAEZW,EAAG,CAAC,CACFX,KAAM,SACNkuG,IAAK,eACLz1F,MAAO,CAAC,QAAS,QACjB01F,OAAQ,UAEVruG,EAAG,CAAC,CACFE,KAAM,aACNkuG,IAAK,mBACLz1F,MAAO,CAAC,UAAW,MACnB01F,OAAQ,eAEVrjG,EAAG,CAAC,CACFuL,KAAM,YACN63F,IAAK,4BACLz1F,MAAO,CAAC,OAAQ,SAChB01F,OAAQ,UAEVtuG,EAAG,CAAC,CAGFquG,IAAK,mCACLz1F,MAAO,CAAC,OAAQ,OAAQ,WAAY,YACpC01F,OAAQ,gBAEVtjG,EAAG,CACD,CACEwL,KAAM,MACN63F,IAAK,0DACLz1F,MAAO,CAAC,UAAW,QAAS,OAAQ,YACpC01F,OAAQ,SAAUjuG,GAChB,OAAQA,EAAEq+F,SACR,qBACAr+F,EAAEouG,KACF,kBACA,iBAGN,CAEEj4F,KAAM,OACN63F,IAAK,wBACLz1F,MAAO,CAAC,UAAW,UACnB01F,OAAQ,cAEV,CACEnuG,KAAM,UACNkuG,IAAK,gBACLC,OAAQ,cAEV,CACEnuG,KAAM,OACNkuG,IAAK,sCACLz1F,MAAO,CAAC,OAAQ,UAAW,QAAS,WACpC01F,OAAQ,SAAUjuG,GAChB,OAAqB,MAAbA,EAAE2yE,QACR,qBACA,YAGN,CACEx8D,KAAM,eACN63F,IAAK,kCACLz1F,MAAO,CAAC,UAAW,SACnB01F,OAAQ,yBAEV,CACE93F,KAAM,SACN63F,IAAK,6CACLz1F,MAAO,CAAC,UAAW,OAAQ,WAC3B01F,OAAQ,SAAUjuG,GAChB,OAAqB,MAAbA,EAAEquG,QACR,mBACA,kBAGN,CAEEl4F,KAAM,MACN63F,IAAK,6CACLz1F,MAAO,CAAC,QAAS,YAAa,MAAO,UACrC01F,OAAQ,SAAUjuG,GAChB,MAAO,aAAeA,EAAE4iC,UAAY,MAAQ,MAAQ,OAAS5iC,EAAEymC,OAAS,MAAQ,MAGpF,CACEtwB,KAAM,SACN63F,IAAK,0CACLz1F,MAAO,CAAC,KAAM,QAAS,SAAU,iBACjC01F,OAAQ,SAAUjuG,GAChB,OAA2B,MAAnBA,EAAEsuG,cACR,qBACA,oBAGN,CACExuG,KAAM,QACNkuG,IAAK,eACLC,OAAQ,YAEV,CACEnuG,KAAM,MACNkuG,IAAK,gBACLC,OAAQ,UAEV,CACEnuG,KAAM,OACNkuG,IAAK,aACLC,OAAQ,WAEV,CACEnuG,KAAM,QACNkuG,IAAK,eACLC,OAAQ,YAEV,CACEnuG,KAAM,WACNkuG,IAAK,kBACLC,OAAQ,eAEV,CACEnuG,KAAM,YACNkuG,IAAK,0CAEP,CACEluG,KAAM,UACNkuG,IAAK,eAEP,CACEluG,KAAM,WACNkuG,IAAK,mBACLC,OAAQ,gBAEV,CACEnuG,KAAM,SACNkuG,IAAK,iBACLC,OAAQ,cAEV,CACEnuG,KAAM,cACNkuG,IAAK,2BACLz1F,MAAO,CAAC,OAAQ,QAChB01F,OAAQ,qBAEV,CAKE93F,KAAK,aACL63F,IAAK,+KACLz1F,MAAO,CAAC,aAAc,YAAa,YAAa,WAAY,KAAM,OAAQ,OAAQ,QAAS,QAAS,UAAW,aAAc,aAAc,gBAC3I01F,OAAQ,SAAUjuG,GAChB,IAAIqK,EAAM,qCAaV,OAXAA,GAAmB,MAAXrK,EAAEuuG,MAAiB,qBAAuB,OAGlDlkG,GAAqB,MAAbrK,EAAEgiC,QAAmB,cAAgB,KAEzB,MAAhBhiC,EAAE+hC,aACJ13B,GAAO,kBAGTA,GAA2B,MAAnBrK,EAAE,cAAyB,iBAAmB,KACtDqK,GAA6B,MAArBrK,EAAE,gBAA2B,mBAAqB,OAI9D,CACEF,KAAM,kBACNkuG,IAAK,wBAEP,CACEluG,KAAM,mBACNkuG,IAAK,0BACLC,OAAQ,wBAEV,CACEnuG,KAAM,aACNkuG,IAAK,qBACLC,OAAQ,kBAEV,CACE93F,KAAM,QACN63F,IAAK,iCACLz1F,MAAO,CAAC,KAAM,YAAa,SAC3B01F,OAAQ,SAAUjuG,GAChB,IAAIqK,EAAM,UAOV,OANmB,MAAfrK,EAAEuQ,YACJlG,GAAO,MACQ,MAAXrK,EAAEQ,QACJ6J,GAAO,QAGJA,IAGX,CAEE8L,KAAM,aAEN63F,IAAK,mEACLz1F,MAAO,CAAC,YAAa,SACrB01F,OAAQ,oBAEV,CACEnuG,KAAM,eACNkuG,IAAK,gCACLz1F,MAAO,CAAC,WAAY,SACpB01F,OAAQ,wBAEV,CACE93F,KAAM,SACN63F,IAAK,oBACLz1F,MAAO,CAAC,OAAQ,QAChB01F,OAAQ,eAEV,CACEnuG,KAAM,UACNkuG,IAAK,eAEP,CACEluG,KAAM,YACNkuG,IAAK,iBAEP,CACEluG,KAAM,UACNkuG,IAAK,uCACLz1F,MAAO,CAAC,gBAAiB,MAAO,kBAChC01F,OAAQ,SAAUjuG,GAChB,OAA4B,MAApBA,EAAEi4E,eACR,mBACA,kBAGN,CACEn4E,KAAM,cACNkuG,IAAK,0BACLC,OAAQ,oBAEV,CACE93F,KAAM,OACN63F,IAAK,sCACLz1F,MAAO,CAAC,KAAM,YAAa,UAC3B01F,OAAQ,SAAUjuG,GAChB,OAAQA,EAAE0iC,OAAU,eAAiB,cAGzC,CAGEvsB,KAAM,aACN63F,IAAK,IAAIjwC,OAEP,wKAMFxlD,MAAO,CAAC,KAAM,OAAQ,SAAU,OAAQ,UACxC01F,OAAQ,SAAUjuG,GAChB,MAAO,sBAAwBA,EAAEwuG,KAAO,SAAW,MAGvD,CAEE1uG,KAAM,YACNkuG,IAAK,IAAIjwC,OAEP,2FAQFxlD,MAAO,CAAC,OAAQ,QAAS,OAAQ,SACjC01F,OAAQ,SAAUjuG,GAChB,MAAO,mBAAqBA,EAAEwuG,KAAO,SAAW,MAGpD,CAIE1uG,KAAM,eACNkuG,IAAK,kCACLz1F,MAAO,CAAC,SACR01F,OAAQ,iBAEV,CAGEnuG,KAAM,YACNkuG,IAAK,8BACLC,OAAQ,gBAEV,CACE93F,KAAM,UACNoC,MAAO,CAAC,YAMdtY,OAAOuY,KAAKu1F,GAAS1rF,SAAQ,SAAUvhB,GAC1BitG,EAAQjtG,GACduhB,SAAQ,SAAUrZ,GAChBA,EAAIglG,MACPhlG,EAAIglG,IAAM,QAEPhlG,EAAIilG,SACPjlG,EAAIilG,OAAS,a,gBC9UnB,MAAMQ,EAAkBp+E,EAAQ,KAa1Bq+E,EAAgB,SAASn9D,GAE3Bt+B,KAAKs+B,MAAQA,EAGbt+B,KAAK07F,SAAW,KAIhB17F,KAAKrG,KAAO,KAIZqG,KAAKnT,KAAO,KAGZmT,KAAK27F,UAAY,MAQrB,SAASC,EAAcC,GACnB,QAA+Bt7F,IAA3Bs7F,EAAcH,SACd,MAAM,IAAIrkG,MAAM,yEAGpBwkG,EAAcH,SAAS3+E,QACvB8+E,EAAcF,UAAY,IAAIxzF,KAQlC,SAAS2zF,EAAaD,GAClB,QAA+Bt7F,IAA3Bs7F,EAAcH,SACd,MAAM,IAAIrkG,MAAM,wEAGpBwkG,EAAcH,SAAS93E,OAO3B,SAASm4E,IACL,GAAIC,cAAcC,gBA3DH,cA4DX,MA5DW,aA6DR,GAAID,cAAcC,gBA5DX,aA6DV,MA7DU,YA+Dd,MAAM,IAAI5kG,MACN,6DASR,SAAS6kG,EAAcC,GAGnBn8F,KAAKo8F,UAAY,GAGjBp8F,KAAKq8F,SAAWN,IAGhB/7F,KAAKs8F,aAAc,EAGnBt8F,KAAKm8F,gBAAkBA,EAM3BD,EAAcH,yBAA2BA,EAOzCG,EAAchuG,UAAUiwC,SAAW,SAASG,GACxC,GAAIA,EAAMuK,eAAgB,CAEtB,MAAMgzD,EAAgB77F,KAAKu8F,yBAAyBj+D,GAIpDt+B,KAAKo8F,UAAUl5F,KAAK24F,GAGpB77F,KAAKw8F,cAIDx8F,KAAKs8F,aACLV,EAAcC,KAU1BK,EAAchuG,UAAUquG,yBAA2B,SAASj+D,GACxD,MAAMu9D,EAAgB,IAAIJ,EAAcn9D,GAGlCm+D,EAAiBZ,EAAcv9D,MAAMmnD,oBACrClkE,EA2KV,WACI,GAA2B,oBAAhBqa,YACP,OAAO,IAAIA,YAEf,MAAM,IAAIvkC,MAAM,qCA/KDqlG,GAmBf,OAjBAD,EAAe7jE,iBAAiBxpB,QAAQ5hB,GAAK+zB,EAAO4c,SAAS3wC,IAG7DquG,EAAcH,SAAW,IAAIM,cAAcz6E,EACvC,CAAEo7E,SAAU38F,KAAKq8F,WAIrBR,EAAcliG,KAAO,GAGrBkiG,EAAcH,SAASkB,gBAAkB,SAASC,GAC1CA,EAAUljG,KAAKspB,KAAO,GACtB44E,EAAcliG,KAAKuJ,KAAK25F,EAAUljG,OAInCkiG,GAaXK,EAAchuG,UAAUsmG,YAAc,SAASl2D,GAC3C,GAAIA,EAAMqsC,eACN,OAGJ,MAAM/5C,EAAQ5wB,KAAKo8F,UACnB,IAAI9vG,EAEJ,IAAKA,EAAI,EAAGA,EAAIskC,EAAMr6B,OAAQjK,IAC1B,GAAIskC,EAAMtkC,GAAGgyC,MAAMq+B,qBAAuBr+B,EAAMq+B,mBAAoB,CAChE,MAAMmgC,EAAmBlsE,EAAMtkC,GAE3B0T,KAAKs8F,YACLR,EAAagB,GAGblsE,EAAM3sB,OAAO3X,EAAG,GAM5B0T,KAAKw8F,eAQTN,EAAchuG,UAAUsuG,YAAc,WAClC,MAAMj6E,EAAaviB,KAAKm8F,gBAExBn8F,KAAKo8F,UAAUhtF,QAAQysF,IACnB,GAAIA,EAAcv9D,MAAM/Y,UACpBs2E,EAAchvG,KAAO,sBAClB,CACH,MAAMqa,EAAK20F,EAAcv9D,MAAMq+B,mBAEzB6vB,EADcjqE,EAAW06C,mBAAmB/1D,GACtBqlF,iBAEZ,cAAZC,IACAqP,EAAchvG,KAAO2/F,OASrC0P,EAAchuG,UAAU6uB,MAAQ,WAC5B,GAAI/c,KAAKs8F,YACL,MAAM,IAAIjlG,MAAM,sCAKpB2I,KAAKs8F,aAAc,EAGnBt8F,KAAKo8F,UAAUhtF,QAAQysF,GAAiBD,EAAcC,IAGtD92F,QAAQH,IACH,2DACG5E,KAAKo8F,UAAU7lG,6BAM3B2lG,EAAchuG,UAAU01B,KAAO,WAE3B5jB,KAAKs8F,aAAc,EAGnBt8F,KAAKo8F,UAAUhtF,QAAQysF,GAAiBC,EAAaD,IACrD92F,QAAQH,IAAI,sBAMhBs3F,EAAchuG,UAAU6uG,SAAW,WAC/B/8F,KAAKo8F,UAAUhtF,QAAQysF,IACnB,MAAM58B,EAAO,IAAI+9B,KAAKnB,EAAcliG,KAAM,CAAEsN,KAAMjH,KAAKq8F,WACjDt7D,EAAMtF,IAAIC,gBAAgBujC,GAC1BvnE,EAAI2D,SAASwF,cAAc,KAEjCxF,SAASyc,KAAKlX,YAAYlJ,GAC1BA,EAAE8F,MAAQ,gBACV9F,EAAEulG,KAAOl8D,EACTrpC,EAAEqlG,SAAY,QAAO/8F,KAAKq8F,SAASt5F,MAAM,KAAK,GAC9CrL,EAAEwlG,QACFhxG,OAAOuvC,IAAIuF,gBAAgBD,MASnCm7D,EAAchuG,UAAUivG,oBAAsB,WAC1C,GAAIn9F,KAAKs8F,YACL,MAAM,IAAIjlG,MACN,kEAIR2I,KAAKw8F,cAEL,MAAM5rE,EAAQ,GAUd,OARA5wB,KAAKo8F,UAAUhtF,QACXssF,GACI9qE,EAAM1tB,KACF,IAAIs4F,EACA,IAAIwB,KAAKtB,EAAS/hG,KAAM,CAAEsN,KAAMjH,KAAKq8F,WACrCX,EAAS7uG,KACT6uG,EAASC,aAElB/qE,GAOXsrE,EAAchuG,UAAUkvG,YAAc,WAClC,OAAOp9F,KAAKq8F,UAkBhBtwG,EAAOD,QAAUowG,G,6BC7TjB,4EAmBe,SAASmB,EAAgBC,EAAO1kD,EAAOzxC,GAClDnH,KAAKs9F,MAAQA,EACbt9F,KAAK44C,MAAQA,EACb54C,KAAKmH,QAAUA,EACfnH,KAAKqf,KAAO,IAAIs5B,IAAKxxC,EAASyxC,GAG9B54C,KAAKq8B,iBAAiBof,oBAClB,CAAC8hD,EAASz4F,EAAKy1C,EAAa1vB,KACxBzL,IAAWgI,oBACPsD,YAA4B6yE,EAASz4F,EAAK+lB,MAItD7qB,KAAKq8B,iBAAiBof,0BAClB32C,IAMQA,GACAsa,IAAWoI,cACPg2E,IACA,CAAE/4F,QAASK,IAEnBsa,IAAWkH,QACP1Z,KAAKwL,UACD,CACIlR,GAAIs2F,IACJ14F,WAUxBu4F,EAAgBnvG,UAAUud,QAAU,SAAStE,EAAU,IACnDnH,KAAKqf,KAAK5T,QAAQtE,EAAQD,GAAIC,EAAQw0C,WAU1C0hD,EAAgBnvG,UAAUke,OAAS,SAASjF,GACxCnH,KAAKqf,KAAKjT,OAAOjF,IAOrBk2F,EAAgBnvG,UAAUqhB,WAAa,YAAY4yB,GAK/C,OAAOniC,KAAKqf,KAAK9P,cAAc4yB,IAQnCk7D,EAAgBnvG,UAAUmvD,OAAS,WAC/B,OAAOr9C,KAAKqf,KAAKg+B,UAOrBggD,EAAgBnvG,UAAUuvG,SAAW,SAAS7kD,GAC1C54C,KAAK44C,MAAQA,GAWjBykD,EAAgBnvG,UAAUwvG,oBAAsB,SAAS7wG,EAAMsa,GAC3D,OAAO,IAAIw2F,IAAgB,CACvB9wG,OACA2mC,OAAQrsB,EACRoN,WAAYvU,QASpBq9F,EAAgBnvG,UAAUmuC,iBAAmB,SAAShV,EAAO3F,GACzD1hB,KAAKqf,KAAKukB,YAAYvc,EAAO3F,IAQjC27E,EAAgBnvG,UAAU+gD,oBAAsB,SAAS5nB,EAAO3F,GAC5D1hB,KAAKqf,KAAKyC,eAAeuF,EAAO3F,IAMpC27E,EAAgBnvG,UAAU0vG,mBAAqB,WAC3C,OAAO59F,KAAKqf,KAAKy5B,iBAUrBukD,EAAgBnvG,UAAU4rD,WAAa,SAASkpC,EAASU,GAAS,GAC9D,OAAO1jF,KAAKqf,KAAKo6B,KAAKK,WAAWkpC,EAASU,IAU9C2Z,EAAgBnvG,UAAU01F,cAAgB,SAASZ,EAASU,GAAS,GACjE,OAAO1jF,KAAKqf,KAAKo6B,KAAKmqC,cAAcZ,EAASU,IAMjD2Z,EAAgBnvG,UAAU2vG,QAAU,WAChC,MAAMlkG,EAAOqG,KAAKqf,KAAKi+B,eAEjBwgD,EAAW,GAEjBA,EAASpM,KAAO,IAAIvpF,KACpB21F,EAAS/8D,IAAM70C,OAAO6uB,SAASkiF,KAC/Ba,EAASC,GAAKvjE,UAAUsZ,UAExB,MAAMlvC,EAAM5E,KAAKqf,KAAKm+B,aAQtB,OANI54C,IACAk5F,EAASz+E,KAAOza,GAGpBjL,EAAKmkG,SAAWA,EAETnkG,I,4qCC3HX,MAAMskB,GAASF,oBAAUM,GAmDV,SAASs/E,GAAgBx2F,GACpC,IAAKA,EAAQta,MAAQsa,EAAQta,KAAK8V,gBAAkBwE,EAAQta,KAAM,CAC9D,MAAM8qC,EACA,8GAIN,MADA1Z,GAAOjZ,MAAM2yB,GACP,IAAItgC,MAAMsgC,GAEpB33B,KAAKwf,aAAe,IAAIC,IACxBzf,KAAKmH,QAAUA,EACfnH,KAAKg+F,aAAe,IAAIC,IAA4Bj+F,MACpDA,KAAK+8D,aAAe,GACpB/8D,KAAKi6E,MAAM9yE,GACXnH,KAAKk+F,mBAAqB,IAAIC,IAAmBn+F,MAMjDA,KAAKo+F,iBAAmB,KACxBp+F,KAAKq+F,oBAAsB,KAC3Br+F,KAAKs+F,YAAc,KACnBt+F,KAAKu+F,sBAAuB,EAC5Bv+F,KAAKw+F,aAAc,EACnBx+F,KAAKy+F,iBAAkB,EACvBz+F,KAAK0+F,iBAAkB,EACvB1+F,KAAK2+F,iBAAmB,CACpBtpE,OAAO,EACPpB,OAAO,GAEXj0B,KAAK4+F,gBAAiB,EAGtB5+F,KAAK6+F,kBAAoB,KAMzB7+F,KAAK8+F,YAAa,EAGlB9+F,KAAKsnB,WAAa,GAOlBtnB,KAAK++F,kBACC,IAAIC,IAAkBh/F,KAAMA,KAAKwf,aAAcrY,GAMrDnH,KAAKi/F,oBACC,IAAIC,IAAoBl/F,KAAMmH,EAAQqsB,OAAO2rE,cAAgB,IAMnEn/F,KAAKo/F,4BAA8B,IAAIC,IAA2Br/F,MAKlEA,KAAKs/F,4BAA6B,EAKlCt/F,KAAKu/F,sBAAwB,IAAIC,IAAsBx/F,MAUvDA,KAAKy/F,qBAAuB,KAE5B,MAAMC,EACApnF,SAASnR,EAAQqsB,OAAO2qB,KAAOh3C,EAAQqsB,OAAO2qB,IAAIwhD,eAAgB,IAOxE3/F,KAAK2/F,eAAiBjmF,MAAMgmF,GAAS,EAAIA,EACzCzhF,GAAO/Y,KAAM,mBAAkBlF,KAAK2/F,gBAQpC3/F,KAAK4/F,4BAA6B,EAQlC5/F,KAAKm+C,KAAM,EAMXn+C,KAAK6/F,iBAAmB,KAExB7/F,KAAK8/F,kBAAoB,IAAIC,IAAW//F,KAAKm/C,MAC7Cn/C,KAAKggG,iBAAmB,IAAIC,IAAiBjgG,KAAKm/C,MAQlDn/C,KAAKkgG,uCAAoC3/F,EAKrCP,KAAKmgG,oBACLliF,GAAO/Y,KAAK,uCAEZlF,KAAKogG,eAAiB,IAAIhmD,IAAcp6C,OAKhD29F,GAAgBzvG,UAAU+H,YAAc0nG,GAcxCA,GAAgB0C,gBAAkB,SAAS18F,EAAK28F,GAC5C,IAAIpjD,EAEJ,GAAIojD,EAEApjD,EAAc5rB,IAAW6rB,gBAAgB,GAAGx6C,kBACzC,CAIHu6C,EAAczhD,UAAQiI,eAAeC,GAAKyR,OAAO,EAAG,GAC/CzS,cAIM,eAEHuP,KAAKgrC,KACTA,EAAc5rB,IAAW6rB,gBAAgB,GAAGx6C,eAIpD,OAAOu6C,GAQXygD,GAAgBzvG,UAAU+rF,MAAQ,SAAS9yE,EAAU,IAG7CA,EAAQoN,aACRvU,KAAKuU,WAAapN,EAAQoN,WAC1BvU,KAAKqf,KAAOrf,KAAKuU,WAAW8K,KAG5Brf,KAAKg+F,aAAauC,sBAGtB,MAAM,OAAE/sE,GAAWxzB,KAAKmH,QAExBnH,KAAKwgG,gBAAkBhtE,EAAOitE,aAAejtE,EAAOitE,aAAeC,IAASC,kBAC5E3gG,KAAKm/C,KAAOn/C,KAAKqf,KAAKu9B,WAClB58C,KAAKmH,QAAQta,KADL,SAED2mC,GAFC,IAGJotE,QAAS5gG,KAAKwgG,kBAElB7C,GAAgB0C,iBAIpBrgG,KAAK6gG,4BACC7gG,KAAK6gG,4BAA4B/yG,KAAKkS,MAC5CA,KAAKm/C,KAAKvb,YACN+W,yBAAmC36C,KAAK6gG,6BAE5C7gG,KAAK8gG,yBAA2B9gG,KAAK8gG,yBAAyBhzG,KAAKkS,MACnEA,KAAKm/C,KAAKvb,YACN+W,sBAAgC36C,KAAK8gG,0BAEzC9gG,KAAK+gG,4BACC/gG,KAAK+gG,4BAA4BjzG,KAAKkS,MAC5CA,KAAKm/C,KAAKvb,YACN+W,yBAAmC36C,KAAK+gG,6BAE5C/gG,KAAKghG,kBAAoBhhG,KAAKghG,kBAAkBlzG,KAAKkS,MACrDA,KAAKm/C,KAAKvb,YAAY+W,gCAClB36C,KAAKghG,mBAEThhG,KAAKihG,kCAAoCjhG,KAAKihG,kCAAkCnzG,KAAKkS,MACrFA,KAAKm/C,KAAKvb,YAAY+W,iBAA2B36C,KAAKihG,mCAEtDjhG,KAAKkhG,QAAU,IAAIC,IACfnhG,KACAwzB,EACA,CAAC/uB,EAASskC,KACN,IACI/oC,KAAKgpC,YACDvkC,EAASskC,GAAI,GACnB,MAAO/jC,GACLiZ,GAAO9Y,KAAK,+CAAgDH,GAASA,EAAMF,QAIlF9E,KAAKi6D,MACNj6D,KAAKi6D,IAAM,IAAIn3B,IAAI9iC,KAAMmH,GACzBnH,KAAKg+F,aAAaoD,qBAGtBphG,KAAKqhG,kBAAoB,IAAIC,IAAkBthG,MAE/CA,KAAKk+D,4BACC,IAAIvE,IACF35D,KAAKi6D,IACLj6D,KACA,CAKIq6D,eAAgB7mC,EAAO+tE,8BACvBnnC,kBAAmB5mC,EAAOguE,mCAEtCxhG,KAAKk+D,4BAA4BtzD,OAGjC,IAAI+U,GAAkB,EAuCtB,GArCI6T,EAAO01C,SAAW11C,EAAO01C,QAAQu4B,qBACjC9hF,EAAmC,IAAhBvU,KAAKC,UAAmBmoB,EAAO01C,QAAQu4B,oBAGzDzhG,KAAKmkB,aACNnkB,KAAKmkB,WAAa,IAAI/E,IAAWpf,KAAKqf,KAAM,CACxCN,UAAW/e,KAAKwgG,gBAChB1hF,SAAU0U,EAAOkuE,sBAAwBluE,EAAOkuE,sBAAwB1hG,KAAKk8D,WAC7Eh9C,OAAQsU,EAAOtU,QAAW,GAAElf,KAAKuU,WAAWpN,QAAQs1C,MAAM3hD,UAAUkF,KAAKmH,QAAQta,OACjFsyB,OAAQqU,EAAOrU,OACfe,gBAAiBsT,EAAOmuE,yBACxB/iF,YAAa4U,EAAO5U,YACpBC,gBAAiB2U,EAAO3U,gBACxBgB,iCAAkC2T,EAAO3T,iCACzCF,kBACAk9B,SAAU78C,KAAKmH,QAAQta,KACvBmyB,gBAAiBwU,EAAOxU,gBACxBC,mBAAoBuU,EAAOvU,qBAE/BG,IAAWyB,UAAUolB,uBAAuB,CACxC,eAAkBjmC,KAAKwgG,kBAIvBhtE,EAAO5S,wBACP5gB,KAAKmkB,WAAW7B,qBAAqBtiB,OAI7CA,KAAKg+F,aAAa4D,yBAIlB5hG,KAAKg+F,aAAa6D,2BAIdruE,EAAOsuE,uBAAyBhiF,IAAQyV,WAIxC,GAAI/B,EAAOwiE,mBAAoB,CAC3B/3E,GAAO/Y,KAAK,8DAEPlF,KAAK+hG,iBACN/hG,KAAK+hG,eAAiB,IAAIhM,IAAiB/1F,KAAMwzB,EAAOwiE,qBAG5D,MAAMgM,EAAwB,IAAIC,IAElCD,EAAsBrgF,GAAGugF,uBAAsC,IAC3DliG,KAAKwf,aAAa0D,KAAKP,qBAE3B3iB,KAAK+hG,eAAetL,uBAAuBuL,QAE3C/jF,GAAO9Y,KAAK,0FAMpB,GAAIquB,EAAO2uE,0BAA4BriF,IAAQyV,WAC3C,GAAI/B,EAAOwiE,mBAAoB,CACtBh2F,KAAK+hG,iBACN/hG,KAAK+hG,eAAiB,IAAIhM,IAAiB/1F,KAAMwzB,EAAOwiE,qBAG5D,MAAMoM,EAAoB,IAAIC,IAE9BD,EAAkBzgF,GAAGugF,mBAAkC,IACnDliG,KAAKwf,aAAa0D,KAAKP,cAE3B3iB,KAAK+hG,eAAetL,uBAAuB2L,QAE3CnkF,GAAO9Y,KAAK,0FAKhBquB,EAAO8uE,yBACPtiG,KAAKuiG,wBAA0B,IAAIC,IAAuBxiG,MAC1DA,KAAKuiG,wBAAwB5gF,GAAGugF,iBAAgC,KAC5DliG,KAAKwf,aAAa0D,KAAKP,oBAE3B3iB,KAAKuiG,wBAAwB5gF,GAAGugF,2BAA0CO,IACtEziG,KAAKwf,aAAa0D,KAAKP,2BAAgD8/E,MAK3E,iBAAkBjvE,GAClBxzB,KAAKipC,SAASzV,EAAOkvE,cAOzB1iG,KAAK2iG,aAAe,IAAIC,IAAqB5iG,MAG7CA,KAAK6iG,4BAA8B,IAAIC,IAA4B9iG,MAE/DwzB,GAAUA,EAAOkrB,gBAAkBlrB,EAAOkrB,eAAeqkD,YACzD/iG,KAAKgjG,4BACD,SAAUxvE,EAAOkrB,eAAeqkD,aAQ5CpF,GAAgBzvG,UAAUiV,KAAO,SAASw4C,GAClC37C,KAAKm/C,MACLn/C,KAAKm/C,KAAKh8C,KAAKw4C,GAAUjhB,KAAK,IAAM16B,KAAKijG,uBAYjDtF,GAAgBzvG,UAAUg1G,2BAA6B,SAAS/7F,GAC5D,OAAO+7F,IAA2Bz2G,KAAKuT,KAAhC,SACAmH,GADA,IAEH21C,iBAAkB6gD,GAAgB0C,oBAO1C1C,GAAgBzvG,UAAUi1G,SAAW,WACjC,OAAOnjG,KAAKm/C,MAAQn/C,KAAKm/C,KAAKikD,QAOlCzF,GAAgBzvG,UAAUm1G,aAAe,WACrC,OAAO1qE,QAAQ34B,KAAKmH,QAAQqsB,OAAO2qB,KAAOn+C,KAAKmH,QAAQqsB,OAAO2qB,IAAImrB,eAGxB,IAA5BtpE,KAAKmH,QAAQqsB,OAAO2qB,KAQtCw/C,GAAgBzvG,UAAUo1G,qBAAuB,WAC7C,OAAO3qE,QAAQ34B,KAAKmH,QAAQqsB,OAAO01C,SAC5BlpE,KAAKmH,QAAQqsB,OAAO01C,QAAQq6B,cAOvC5F,GAAgBzvG,UAAUs1G,MAAQ,WA2C9B,GA1CIxjG,KAAKk+D,8BACLl+D,KAAKk+D,4BAA4Bl7C,UACjChjB,KAAKk+D,4BAA8B,MAEnCl+D,KAAKi/F,sBACLj/F,KAAKi/F,oBAAoBj8E,UACzBhjB,KAAKi/F,oBAAsB,MAG3Bj/F,KAAKo/F,8BACLp/F,KAAKo/F,4BAA4Bp8E,UACjChjB,KAAKo/F,4BAA8B,MAGnCp/F,KAAKkhG,UACLlhG,KAAKkhG,QAAQt9E,OACb5jB,KAAKkhG,QAAU,MAGnBlhG,KAAKknC,iBAAiB93B,QAAQkvB,GAASt+B,KAAKyjG,oBAAoBnlE,IAEhEt+B,KAAKi6D,IAAIxxB,qBAETzoC,KAAK0jG,oCAED1jG,KAAKmkB,YACLnkB,KAAKmkB,WAAWnB,UAGpBhjB,KAAK2jG,mBAAqB3jG,KAAK2jG,kBAAkBhxC,SAG7C3yD,KAAKo+F,mBACLp+F,KAAKo+F,iBAAiB3hF,QACtBzc,KAAKo+F,iBAAmB,MAExBp+F,KAAK6/F,mBACL7/F,KAAK6/F,iBAAiBpjF,QACtBzc,KAAK6/F,iBAAmB,MAIxB7/F,KAAKm/C,KAAM,CACX,MAAMA,EAAOn/C,KAAKm/C,KAuBlB,OApBAA,EAAKr9B,eACD64B,yBACA36C,KAAK6gG,6BACT1hD,EAAKr9B,eACD64B,sBACA36C,KAAK8gG,0BACT3hD,EAAKr9B,eACD64B,yBACA36C,KAAK+gG,6BAET5hD,EAAKr9B,eACD64B,gCACA36C,KAAKghG,mBAET7hD,EAAKr9B,eAAe64B,iBAA2B36C,KAAKihG,mCAEpDjhG,KAAKg+F,aAAa4F,sBAElB5jG,KAAKm/C,KAAO,KAELA,EAAKqkD,QACP9oE,KAAK,KACE16B,KAAKi6D,KACLj6D,KAAKi6D,IAAIp2B,YAGhBzG,MAAMp4B,IAOH,MAHAhF,KAAKg9D,kBAAkB5tD,QACnBitD,GAAer8D,KAAK6jG,aAAaxnC,EAAYhf,WAE3Cr4C,IAKlB,OAAOg4B,QAAQE,OACX,IAAI7lC,MAAM,6CASlBsmG,GAAgBzvG,UAAU41G,uBAAyB,WAC/C,OAAO9jG,KAAKm9D,cAAgBn9D,KAAK6/F,iBAAmB7/F,KAAKo+F,kBAS7DT,GAAgBzvG,UAAU27E,kBAAoB,WAC1C,MAAMlsB,EAAW,GAKjB,OAHA39C,KAAKo+F,kBAAoBzgD,EAASz6C,KAAKlD,KAAKo+F,kBAC5Cp+F,KAAK6/F,kBAAoBliD,EAASz6C,KAAKlD,KAAK6/F,kBAErCliD,GAMXggD,GAAgBzvG,UAAU+mD,QAAU,WAChC,OAAOj1C,KAAKmH,QAAQta,MAMxB8wG,GAAgBzvG,UAAUmsD,cAAgB,WACtC,OAAOr6C,KAAKuU,YAMhBopF,GAAgBzvG,UAAU61G,cAAgB,WACtC,OAAO/jG,KAAKw+F,aAMhBb,GAAgBzvG,UAAU81G,WAAa,WACnC,OAAOrrE,QAAQ34B,KAAKikG,eAMxBtG,GAAgBzvG,UAAUg2G,aAAe,WACrC,OAAOlkG,KAAKikG,cAMhBtG,GAAgBzvG,UAAUi2G,sBAAwB,WAC9C,OAAOnkG,KAAKm/C,MAAQn/C,KAAKm/C,KAAKilD,UAAUD,yBAS5CxG,GAAgBzvG,UAAUm2G,mBAAqB,SAASC,GACpD,OAAO,IAAItnE,QAAQ,CAACC,EAASC,KACpBl9B,KAAKmkG,wBAKNG,EACAtkG,KAAKm/C,KAAKilD,UAAUG,iBAAiBtnE,EAASC,GAE9Cl9B,KAAKm/C,KAAKilD,UAAUI,YAAYvnE,EAASC,GAPzCA,OAiBZygE,GAAgBzvG,UAAUg5C,eAAiB,SAASvb,GAChD,IAAI0b,EAAS,GAMb,OAJIrnC,KAAKi6D,MACL5yB,EAASrnC,KAAKi6D,IAAI/yB,eAAevb,IAG9B0b,GAOXs2D,GAAgBzvG,UAAUi5C,mBAAqB,WAC3C,OAAOnnC,KAAKi6D,IAAMj6D,KAAKi6D,IAAI9yB,qBAAuB,MAOtDw2D,GAAgBzvG,UAAU84C,mBAAqB,WAC3C,OAAOhnC,KAAKi6D,IAAMj6D,KAAKi6D,IAAIjzB,qBAAuB,MAOtD22D,GAAgBzvG,UAAUu2G,oBAAsB,WAC5C,MAAO,CACHC,eAAgB1kG,KAAKmkB,WAAWrB,sBAaxC66E,GAAgBzvG,UAAUyzB,GAAK,SAASgjF,EAASpgG,GACzCvE,KAAKwf,cACLxf,KAAKwf,aAAamC,GAAGgjF,EAASpgG,IAYtCo5F,GAAgBzvG,UAAUugD,IAAM,SAASk2D,EAASpgG,GAC1CvE,KAAKwf,cACLxf,KAAKwf,aAAasC,eAAe6iF,EAASpgG,IAKlDo5F,GAAgBzvG,UAAUmuC,iBAAmBshE,GAAgBzvG,UAAUyzB,GACvEg8E,GAAgBzvG,UAAU+gD,oBAAsB0uD,GAAgBzvG,UAAUugD,IAQ1EkvD,GAAgBzvG,UAAU02G,mBAAqB,SAASC,EAAStgG,GACzDvE,KAAKm/C,MACLn/C,KAAKm/C,KAAK2lD,oBAAoBD,EAAStgG,IAS/Co5F,GAAgBzvG,UAAU62G,sBAAwB,SAASF,EAAStgG,GAC5DvE,KAAKm/C,MACLn/C,KAAKm/C,KAAK6lD,uBAAuBH,EAAStgG,IAUlDo5F,GAAgBzvG,UAAU+2G,gBAAkB,SACpCxgG,EAASygG,EAAc,QAC3B,GAAIllG,KAAKm/C,KAAM,CACX,MAAM0sC,GAAe7rF,KAAKm/C,KAAKgmD,gBAAgB,SAAW,IAAI53G,MAE9DyS,KAAKm/C,KAAKnW,YAAYvkC,EAASygG,EAAarZ,KAWpD8R,GAAgBzvG,UAAUk3G,uBAAyB,SAC3Cl+F,EAAIzC,EAASygG,EAAc,QAC3BllG,KAAKm/C,MACLn/C,KAAKm/C,KAAKkmD,mBAAmBn+F,EAAIzC,EAASygG,IASlDvH,GAAgBzvG,UAAUo3G,YAAc,SAASz4G,EAAMu2B,GAC/CpjB,KAAKm/C,MACLn/C,KAAKm/C,KAAKglC,cAAct3F,EAAMu2B,GAC9BpjB,KAAKm/C,KAAKzxC,gBAEVuQ,GAAO9Y,KAAK,iDAUpBw4F,GAAgBzvG,UAAUq3G,gBAAkB,SAAS14G,EAAMu2B,GACvDpjB,KAAKslG,YAAYz4G,EAAMu2B,GACvBpjB,KAAKwlG,cAAc34G,IAOvB8wG,GAAgBzvG,UAAUs3G,cAAgB,SAAS34G,GAC3CmT,KAAKm/C,MACLn/C,KAAKm/C,KAAKsmD,mBAAmB54G,IAQrC8wG,GAAgBzvG,UAAU89F,eAAiB,SAASn/F,GAC5CmT,KAAKm/C,OACLn/C,KAAKm/C,KAAKglC,cAAc,OAAQ,CAC5BlnF,WAAY,CAAEgJ,MAAO,mCACrB1Y,MAAOV,IAEXmT,KAAKm/C,KAAKzxC,iBAQlBiwF,GAAgBzvG,UAAUw3G,WAAa,SAASC,GACxC3lG,KAAKm/C,MAAQn/C,KAAK4lG,eAClB5lG,KAAKm/C,KAAKumD,WAAWC,IAQ7BhI,GAAgBzvG,UAAU23G,eAAiB,WACvC,QAAyBtlG,IAArBP,KAAK8lG,YAA2B,CAChC9lG,KAAK8lG,YAAc,IAAIC,IAGvB,MAAMC,EAAmBhmG,KAAKknC,eAAe3I,KAE7C,IAAK,MAAM6I,KAAc4+D,EACrBhmG,KAAK8lG,YAAY3nE,SAASiJ,GAI9B,MAAM8B,EAAoBlpC,KAAKi6D,IAAI1yB,gBAAgBhJ,KAEnD,IAAK,MAAMm+B,KAAexzB,EACtBlpC,KAAK8lG,YAAY3nE,SAASu+B,GAIlC,OAAO18D,KAAK8lG,aAQhBnI,GAAgBzvG,UAAU+3G,uBAAyB,WAC/C,OAAOjmG,KAAKm/C,KAAK+mD,qBAUrBvI,GAAgBzvG,UAAUiwC,SAAW,SAASG,GAC1C,GAAIA,EAAMqsC,eAAgB,CAEtB,MAAMw7B,EAAkBnmG,KAAKi6D,IAAIjzB,qBAEjC,GAAIm/D,EAGA,OAAI7nE,IAAU6nE,EACHnpE,QAAQC,QAAQqB,GAGpBtB,QAAQE,OAAO,IAAI7lC,MACtB,oDAKZ,OAAO2I,KAAKk2E,aAAa,KAAM53C,IAQnCq/D,GAAgBzvG,UAAUk4G,2BAA6B,SAC/Cz9D,EACArlB,GACJ,MAAM+iF,EAAYrmG,KAAKsmG,0BAOlBhjF,GAAO+iF,IAAc/iF,GACtBtjB,KAAKwf,aAAa0D,KACdP,4BACA3iB,KAAKk8D,WAAYvzB,IAQ7Bg1D,GAAgBzvG,UAAUq4G,qBAAuB,SAASjoE,GAStD,IAAIkoE,EAEJ,GATIxmG,KAAK4+F,gBAAkBtgE,EAAMuK,iBAAmBvK,EAAMggC,YACtDt+D,KAAK4+F,gBAAiB,EAGtB5+F,KAAKm/C,KAAKsnD,gBAAgBzmG,KAAKm/C,KAAKunD,WAAW,IAK/C1mG,KAAK6+F,kBAAmB,CACxB,MAAM8H,EAAUlrG,UAAQyI,mBAAmBlE,KAAK6+F,mBAEhD2H,EAAmBxmG,KAAK+8D,aAAa4pC,GAGzC3mG,KAAKwf,aAAa0D,KAAKP,qBAA0C2b,EAAOkoE,IAO5E7I,GAAgBzvG,UAAUu1G,oBAAsB,SAASnlE,GACrDA,EAAMk3D,eAAe,MACrBx1F,KAAKi6D,IAAIjyB,iBAAiB1J,GAC1BA,EAAM2Q,oBAAoB2tB,qBACtBt+B,EAAMsoE,aACVtoE,EAAM2Q,oBAAoB2tB,4BACtBt+B,EAAMuoE,mBAKNvoE,EAAMqsC,gBAAkBrsC,EAAME,YAAcC,IAAUC,SACtD1+B,KAAKmkB,WAAWY,wBAAuB,GAG3C/kB,KAAKwf,aAAa0D,KAAKP,gBAAqC2b,IAShEq/D,GAAgBzvG,UAAUsmG,YAAc,SAASl2D,GAC7C,OAAOt+B,KAAKk2E,aAAa53C,EAAO,OAYpCq/D,GAAgBzvG,UAAUgoF,aAAe,SAASC,EAAUC,GAExD,OAAID,GACIA,EAAS4O,UAKb3O,GACIA,EAAS2O,SALF/nD,QAAQE,OACX,IAAItX,IAAgBipB,sBAWzB7uC,KAAK8mG,gBAAgB3wB,EAAUC,GACjC17C,KAAK,KACEy7C,GACAn2E,KAAKyjG,oBAAoBttB,GAEzBC,GAGAp2E,KAAK+mG,eAAe3wB,GAGjBp5C,QAAQC,WAChBj4B,GAASg4B,QAAQE,OAAO,IAAI7lC,MAAM2N,MAe7C24F,GAAgBzvG,UAAU44G,gBAAkB,SAAS3wB,EAAUC,GAC3D,MAAM4wB,EAAuB,GAgB7B,OAdIhnG,KAAKo+F,iBACL4I,EAAqB9jG,KACjBlD,KAAKo+F,iBAAiBloB,aAAaC,EAAUC,IAEjDn4D,GAAO/Y,KAAK,0CAGZlF,KAAK6/F,iBACLmH,EAAqB9jG,KACjBlD,KAAK6/F,iBAAiB3pB,aAAaC,EAAUC,IAEjDn4D,GAAO/Y,KAAK,0CAGT83B,QAAQ+K,IAAIi/D,IAOvBrJ,GAAgBzvG,UAAU64G,eAAiB,SAAS3wB,GAChD,GAAIA,EAASvtC,gBAAmButC,EAASzL,gBAC9ByL,EAAS53C,YAAcC,IAAUC,QAAU,CAElD,MACMlF,EADUsJ,IAAI1B,oCAENnQ,KACNrkC,GACIA,EAAEwsC,OAAYg9C,EAASuP,WAAWvsD,KAAtB,SACLxsC,EAAE8sC,QAAU08C,EAASuP,WAAWjsD,OAE/CF,GACApa,IAAW+F,0BACP2d,IAAIzB,4BAA4B7H,IAGxC48C,EAASzL,iBACT3qE,KAAKwlG,cAAc,aACnBxlG,KAAKslG,YAAY,YAAa,CAC1B/3G,MAAO6oF,EAAS53C,UAChBvhC,WAAY,CACRgJ,MAAO,qCAInBjG,KAAKi6D,IAAIpzB,cAAcuvC,GAGnBA,EAASvtC,eACT7oC,KAAKm/C,KAAKzX,aAAa0uC,EAAS9X,WAEhCt+D,KAAKm/C,KAAK8nD,aAAa7wB,EAAS9X,WAGpC8X,EAASwwB,YAAc5mG,KAAKumG,qBAAqBz4G,KAAKkS,KAAMo2E,GAC5DA,EAASywB,kBAAoB7mG,KAAKomG,2BAA2Bt4G,KAAKkS,MAClEo2E,EAAS/5C,iBACLugC,qBACAwZ,EAASwwB,aACbxwB,EAAS/5C,iBACLugC,4BACAwZ,EAASywB,mBAEbzwB,EAASof,eAAex1F,MAExBA,KAAKwf,aAAa0D,KAAKP,cAAmCyzD,IAY9DunB,GAAgBzvG,UAAUmnG,uBAAyB,SAAS/2D,GACxD,MAAM4oE,EAAsB,GAkB5B,OAhBIlnG,KAAKo+F,iBACL8I,EAAoBhkG,KAAKlD,KAAKo+F,iBAAiBjnB,iBAAiB74C,IAEhErgB,GAAO/Y,KACH,uEAIJlF,KAAK6/F,iBACLqH,EAAoBhkG,KAAKlD,KAAK6/F,iBAAiB1oB,iBAAiB74C,IAEhErgB,GAAO/Y,KACH,uEAID83B,QAAQ+K,IAAIm/D,IAUvBvJ,GAAgBzvG,UAAUqnG,wBAA0B,SAASj3D,GACzD,MAAM6oE,EAAuB,GAiB7B,OAfInnG,KAAKo+F,iBACL+I,EAAqBjkG,KACjBlD,KAAKo+F,iBAAiB/mB,kBAAkB/4C,IAE5CrgB,GAAO/Y,KACH,+DAEJlF,KAAK6/F,iBACLsH,EAAqBjkG,KACjBlD,KAAK6/F,iBAAiBxoB,kBAAkB/4C,IAE5CrgB,GAAO/Y,KACH,+DAGD83B,QAAQ+K,IAAIo/D,IAOvBxJ,GAAgBzvG,UAAUk5G,QAAU,WAChC,OAAOpnG,KAAKm/C,KAAKsiB,MAUrBk8B,GAAgBzvG,UAAUm5G,SAAW,WACjC,OAAKrnG,KAAKuU,WAIH9Y,UAAQoI,iBAAiB7D,KAAKuU,WAAW8oC,YACxCr9C,KAAKmH,QAAQqsB,OAAO8zE,aAJjB,MAYf3J,GAAgBzvG,UAAU03G,YAAc,WACpC,OAAO5lG,KAAKm/C,KAAOn/C,KAAKm/C,KAAKymD,cAAgB,MAQjDjI,GAAgBzvG,UAAUq5G,KAAO,SAAS5rD,GACtC,OAAK37C,KAAK4lG,cAIH,IAAI5oE,QAAQ,CAACC,EAASC,KACzBl9B,KAAKm/C,KAAKqoD,SACN7rD,GAAY,GACZ,IAAM1e,IACN9sB,GAAO+sB,EAAO/sB,GACd,IAAM+sB,EAAOuqE,6BARVzqE,QAAQE,OAAO,IAAI7lC,MAAM,4BAgBxCsmG,GAAgBzvG,UAAUw5G,OAAS,WAC/B,OAAO1nG,KAAKunG,QAWhB5J,GAAgBzvG,UAAUy5G,kBAAoB,SAASx8E,GACnDnrB,KAAK4nG,mBAAmB,CAAEz8E,KAe9BwyE,GAAgBzvG,UAAU05G,mBAAqB,SAAS9rC,GACpD,IAAK1lE,MAAMC,QAAQylE,GACf,MAAM,IAAIzkE,MAAM,sDAGpB2I,KAAKi6D,IAAI10B,gBAAgBu2B,IAU7B6hC,GAAgBzvG,UAAU25G,eAAiB,SAAS18E,GAChDnrB,KAAKi6D,IAAIx0B,YAAYta,IAOzBwyE,GAAgBzvG,UAAU44C,SAAW,WACjC,OAAO9mC,KAAKi6D,IAAInzB,YAWpB62D,GAAgBzvG,UAAU+6C,SAAW,SAAS6+D,GAC1C,IAAKvuF,OAAOwuF,UAAUD,KAAWvuF,OAAOjB,SAASwvF,EAAO,IACpD,MAAM,IAAIzwG,MAAO,4BAA2BywG,GAEhD,MAAM/5G,EAAIwrB,OAAOuuF,GAEjB,GAAI/5G,GAAK,EACL,MAAM,IAAI4/C,WAAW,mCAMzB,GAJA3tC,KAAKi6D,IAAIhxB,SAASl7C,GAIdiS,KAAK6/F,iBAAkB,CACvB,MAAMmI,EAAsB,IAANj6G,EAEtBiS,KAAK6/F,iBACAnoB,wBAAuB,EAAMswB,GAC7B5qE,MAAMp4B,IACHiZ,GAAOjZ,MACF,2CAA0CgjG,KAC3ChjG,OAepB24F,GAAgBzvG,UAAUg3C,UAAY,SAAS/Z,GAC3C,OAAOnrB,KAAKi6D,IAAI/0B,UAAU/Z,IAO9BwyE,GAAgBzvG,UAAU8uE,gBAAkB,WACxC,OAAOhwE,OAAOo2B,OAAOpjB,KAAK+8D,eAS9B4gC,GAAgBzvG,UAAU+5G,oBACpB,SAASC,GAAc,GAErB,IAAInrC,EAAe/8D,KAAKg9D,kBAOxB,OALKkrC,IACDnrC,EAAeA,EAAarsC,OAAOtiC,IAAMA,EAAEi5G,aAIxCtqC,EAAaxmE,OAAS,GAQrConG,GAAgBzvG,UAAU+uE,mBAAqB,SAAS/1D,GACpD,OAAOlH,KAAK+8D,aAAa71D,IAO7By2F,GAAgBzvG,UAAUi6G,WAAa,SAASjhG,GAC5C,MAAMm1D,EAAcr8D,KAAKi9D,mBAAmB/1D,GAEvCm1D,GAGLr8D,KAAKm/C,KAAKipD,eAAe/rC,EAAYhf,SAAU,UAOnDsgD,GAAgBzvG,UAAUm6G,gBAAkB,SAASnhG,GACjD,MAAMm1D,EAAcr8D,KAAKi9D,mBAAmB/1D,GAEvCm1D,GAGLr8D,KAAKm/C,KAAKmpD,KAAKjsC,EAAYhf,WAQ/BsgD,GAAgBzvG,UAAUq6G,qBAAuB,WACzCvoG,KAAKwoG,0BACGxoG,KAAKo+F,kBAAoBp+F,KAAKioG,sBAAwB,KAC9D/7G,OAAOuhB,aAAazN,KAAKwoG,yBACzBxoG,KAAKwoG,wBAA0B,OASvC7K,GAAgBzvG,UAAU+0G,mBAAqB,YAEtCjjG,KAAKo+F,kBACCp+F,KAAKioG,uBAAyB,IAC7BjoG,KAAKwoG,0BACbxoG,KAAKwoG,wBAA0Bt8G,OAAOqe,WAAW,KAC7CvK,KAAKwoG,wBAA0B,KAC/BppF,IAAWoI,cAAciE,YACrBjC,IACA,CACI20B,KAAK,EACL5wD,MAn4CM,eA64C1BowG,GAAgBzvG,UAAUu4G,gBAAkB,SAASv/F,GACjD,MAAMm1D,EAAcr8D,KAAKi9D,mBAAmB/1D,GAEvCm1D,GAGLr8D,KAAKm/C,KAAKsnD,gBAAgBpqC,EAAYhf,UAAU,IAoBpDsgD,GAAgBzvG,UAAUu6G,eAAiB,SACnC9kG,EAAK+kG,EAAMjnC,EAAM4lC,EAAUsB,EAAS54F,EAAQmrC,EAAU0tD,GAC1D,MAAM1hG,EAAKzL,UAAQyI,mBAAmBP,GAEtC,GAAW,UAAPuD,GAAkBlH,KAAKk8D,aAAeh1D,EACtC,OAGJ,MAAMm1D,EACA,IAAIwsC,IAAiBllG,EAAK3D,KAAM0oG,EAAMrB,EAAUsB,EAAS54F,EAAQmrC,GAEvEmhB,EAAYysC,MAAQrnC,EACpBpF,EAAY0sC,SAAWH,EACvB5oG,KAAK+8D,aAAa71D,GAAMm1D,EACxBr8D,KAAKwf,aAAa0D,KACdP,cACAzb,EACAm1D,GAEJr8D,KAAKgpG,gBAAgB3sC,GAErBr8D,KAAKipG,uBACLjpG,KAAKijG,sBAWTtF,GAAgBzvG,UAAU86G,gBAAkB,SAAS3sC,GACjDA,EAAYwnB,cACPnpD,KAAK5xB,IACFuzD,EAAY6sC,cAAgBpgG,EAASib,IAAI,0BACzC/jB,KAAKmpG,oBAEDrgG,EAASib,IAAI,qCACbs4C,EAAY+sC,YAAY,mBAAmB,GAG3CtgG,EAASib,IAAI,gCACbs4C,EAAY+sC,YAAY,iBAAiB,KAGhDhsE,MAAM,KAAM,IASrBugE,GAAgBzvG,UAAUm7G,wBAA0B,SAAS1lG,EAAKilG,GAI9D,MACMU,EADQtpG,KAAKg9D,kBACU/rC,KAAK7iC,GAAKA,EAAEivD,WAAa15C,GAEtD,GAAI2lG,EAAgB,CAChBA,EAAeP,SAAWH,EAC1B,MAAM1hG,EAAKzL,UAAQyI,mBAAmBP,GAEtC3D,KAAKwf,aAAa0D,KACdP,mBACAzb,EACA0hG,GAOHU,EAAeP,UAChB/oG,KAAKipG,wBAIbtL,GAAgBzvG,UAAU21G,aAAe,SAASlgG,GAC9C,MAAMuD,EAAKzL,UAAQyI,mBAAmBP,GAEtC,GAAW,UAAPuD,GAAkBlH,KAAKk8D,aAAeh1D,EACtC,OAGJ,MAAMm1D,EAAcr8D,KAAK+8D,aAAa71D,UAE/BlH,KAAK+8D,aAAa71D,GAEHlH,KAAKi6D,IAAI/xB,mBAAmBhhC,GAEpCkI,QACVkvB,GACIt+B,KAAKwf,aAAa0D,KAAKP,gBAAqC2b,IAGhE+9B,GACAr8D,KAAKwf,aAAa0D,KACdP,YAAiCzb,EAAIm1D,GAG7Cr8D,KAAKipG,sBAAqB,GAC1BjpG,KAAKuoG,wBAYT5K,GAAgBzvG,UAAUq7G,eAAiB,SAASC,EAAgB7C,EAAS8C,GAIzE,GAAI9C,IAAY3mG,KAAKk8D,WACjB,OAGJ,MAAMsqC,EAAmBxmG,KAAK+8D,aAAa4pC,GAE3C,GAAI6C,EAMA,OALAxpG,KAAKwf,aAAa0D,KACdP,SAA8B6jF,QAElCxmG,KAAKwjG,QAKT,MAAMkG,EAAoB1pG,KAAK+8D,aAAa0sC,GAE5CzpG,KAAKwf,aAAa0D,KACdP,qBAA0C6jF,EAAkBkD,IAOpE/L,GAAgBzvG,UAAUy7G,mBAAqB,SAASloC,GAEpDzhE,KAAKwf,aAAa0D,KACdP,oBAAyC3iB,KAAKk8D,WAAYuF,IAGlEk8B,GAAgBzvG,UAAU07G,kBAAoB,SAASjmG,EAAK89D,GACxD,MAAMv6D,EAAKzL,UAAQyI,mBAAmBP,GAChC04D,EAAcr8D,KAAKi9D,mBAAmB/1D,GAEvCm1D,IAGLA,EAAYysC,MAAQrnC,EACpBzhE,KAAKwf,aAAa0D,KAAKP,oBAAyCzb,EAAIu6D,KAGxEk8B,GAAgBzvG,UAAU27G,qBAAuB,SAASlmG,EAAKkoF,GAC3D,MAAM3kF,EAAKzL,UAAQyI,mBAAmBP,GAChC04D,EAAcr8D,KAAKi9D,mBAAmB/1D,GAEvCm1D,GAIDA,EAAYytC,eAAiBje,IAIjCxvB,EAAYytC,aAAeje,EAC3B7rF,KAAKwf,aAAa0D,KACdP,uBACAzb,EACA2kF,KAUR8R,GAAgBzvG,UAAUotE,mBAAqB,SAASh9B,GACpD,GAAIA,EAAMwH,QAAU9lC,KAAKm9D,cAIrB,YAHAl/C,GAAO/Y,KACH,6DAGD,IAAKo5B,EAAMwH,OAAS9lC,KAAKm9D,cAI5B,YAHAl/C,GAAO/Y,KACH,yDAKR,MAAMgC,EAAKo3B,EAAMq+B,mBACXN,EAAcr8D,KAAKi9D,mBAAmB/1D,GAE5C,IAAKm1D,EAGD,YAFAp+C,GAAOjZ,MAAO,gCAA+BkC,GAMjDm1D,EAAY0tC,QAAQ7mG,KAAKo7B,GAErBt+B,KAAK8lG,aACL9lG,KAAK8lG,YAAY3nE,SAASG,GAG9B,MAAMqN,EAAU3rC,KAAKwf,aAErB8e,EAAMjC,iBACFugC,qBACA,IAAMjxB,EAAQzoB,KAAKP,qBAA0C2b,IACjEA,EAAMjC,iBACFugC,4BACA,CAACj0B,EAAYrlB,KACStjB,KAAKsmG,4BAELhjF,GACdqoB,EAAQzoB,KACJP,4BACAzb,EACAyhC,KAKhBgD,EAAQzoB,KAAKP,cAAmC2b,IAUpDq/D,GAAgBzvG,UAAU87G,eAAiB,SAAS/xF,EAAS+9D,GACrDh2E,KAAK6/F,mBAAqB5nF,IAC1BgG,GAAO/Y,KAAK,iBAEZlF,KAAK6/F,iBAAiB5tB,UAAU+D,GAChCh2E,KAAKwf,aAAa0D,KAAKP,yBAA8C3iB,KAAK6/F,oBAYlFlC,GAAgBzvG,UAAU+7G,gBAAkB,SAAShyF,EAASiyF,GACtDlqG,KAAK6/F,mBAAqB5nF,IAC1BgG,GAAO/Y,KAAK,wBACZlF,KAAK6/F,iBAAiBpvB,iBAAiBy5B,KAU/CvM,GAAgBzvG,UAAUstE,qBAAuB,SAAS2uC,GACtDnqG,KAAKg9D,kBAAkB5tD,QAAQitD,IAC3B,MAAMh1B,EAASg1B,EAAYv8B,YAE3B,IAAK,IAAIxzC,EAAI,EAAGA,EAAI+6C,EAAO9wC,OAAQjK,IAC/B,GAAI+6C,EAAO/6C,KAAO69G,EAAc,CAG5B9tC,EAAY0tC,QAAQ9lG,OAAO3X,EAAG,GAE9B0T,KAAKwf,aAAa0D,KACdP,gBAAqCwnF,GAErCnqG,KAAK8lG,aACL9lG,KAAK8lG,YAAYtR,YAAY2V,GAGjC,QAGTnqG,OAMP29F,GAAgBzvG,UAAUk8G,mBAAqB,SACvCC,EACA94B,GAEJ,IAAI+4B,EAECxqF,IAAQyqF,cAMDvqG,KAAKqjG,gBAAmBrjG,KAAKsjG,uBAM9BtjG,KAAK6/F,iBAEZyK,EAAe,CACX96F,OAAQ,OACRwkE,kBAAmB,0BACnBtb,SAAU,qCAEN14D,KAAKwqG,uBACbF,EAAe,CACX96F,OAAQ,UACRwkE,kBAAmB,2BACnBtb,SAAU,kEAEdt5C,IAAWoI,cAAciE,YAAkB7B,OAlB3C0gF,EAAe,CACX96F,OAAQ,UACRwkE,kBAAmB,eACnBtb,SAAU,0CATd4xC,EAAe,CACX96F,OAAQ,2BACRwkE,kBAAmB,oBACnBtb,SAAU,gDAwBd4xC,EACAtqG,KAAKyqG,oBAAoBJ,EAAeC,GAExCtqG,KAAK0qG,uBAAuBL,EAAe94B,IAOnDosB,GAAgBzvG,UAAUy8G,eAAiB,SACnCN,EACA94B,EACAp9D,GAEJ,GAAIk2F,EAAcvkE,MACd9lC,KAAKoqG,mBAAmBC,EAAe94B,OACpC,CACH,IAAKvxE,KAAKm/C,KAAKyrD,QAAQP,EAAcn/B,WAAY,CAC7C,MAAMpI,EAAc,6CASpB,YAPA9iE,KAAKyqG,oBACDJ,EAAe,CACX76F,OAAQ,iBACRwkE,kBAAmBlR,EACnBpK,SAAUoK,IAKtB9iE,KAAK6qG,uBAAuBR,EAAe94B,EAAap9D,KAOhEwpF,GAAgBzvG,UAAU28G,uBAAyB,SAC3CR,EACA94B,EACAp9D,GAGJnU,KAAKo+F,iBAAmBiM,EACxBrqG,KAAKm/C,KAAKrG,gBAAgB,oBAAsB3kC,EAChDnU,KAAKihG,oCAEDjhG,KAAK8+F,YACL1/E,IAAWgI,oBACPqE,YAAkBpC,IAAuB,CAAE80B,KAAK,KAGxD,MAAM2sD,EACAr4D,EAAE8+B,GACCtgD,KAAK,4DACL1vB,KAAK,UAEdvB,KAAKwf,aAAa0D,KACdP,wBACAmoF,GAEJ9qG,KAAKuoG,uBACLnpF,IAAWoI,cAAciE,YACrBlC,IACA,CACI40B,KAAK,EACL5wD,MAAO4mB,KAGf,IACIk2F,EAAc3jD,WAAW1mD,KAAKm/C,KAAMn/C,KAAKi6D,IAAzC,SACOj6D,KAAKmH,QAAQqsB,QADpB,IAEI0S,wBAAyBlmC,KAAK+qG,oBAEpC,MAAO/lG,GACL4yB,IAAqBC,iBAAiB7yB,GAI1ChF,KAAKgrG,kBAAkBz5B,EAAa84B,EAAcrpF,gBAGlD,MAAMgiB,EAAchjC,KAAKknC,iBAEzB,IACImjE,EAAc/4B,YACVC,EACA,KAIQvxE,KAAKm9D,eAAiBn9D,KAAKo+F,kBAC3Bp+F,KAAKirG,wCAGTjrG,KAAKwf,aAAa0D,KACdP,yBACA0nF,GACCrqG,KAAKm9D,eACNn9D,KAAKwf,aAAa0D,KACdP,gCACA0nF,IAGZrlG,IACI4yB,IAAqBC,iBAAiB7yB,GACtCiZ,GAAOjZ,MACH,2CAA4CA,IAEpDg+B,GAOJ/kB,GAAO/Y,KAAK,4CACZlF,KAAKmkB,WAAWN,eACZ7jB,KAAKo+F,iBAAiBp9E,eACtB,SACJhhB,KAAKmkB,WAAWpD,iBAAiB/gB,KAAKo+F,iBAAiBp9E,gBACzD,MAAO3nB,GACLu+B,IAAqBC,iBAAiBx+B,GACtC4kB,GAAOjZ,MAAM3L,KAarBskG,GAAgBzvG,UAAU88G,kBAAoB,SAAS31B,EAAS/vB,GAC5D,IAAIjhB,EAAQ,KACZ,MAAM6mE,EACAz4D,EAAE4iC,GACCpkD,KAAK,iCACLw+D,QAMT,IAAI0b,EAEJ,OANyB,IAArBD,EAAU30G,SACV8tC,EAAQ6mE,EAAU,GAAGtoG,aAAa,QAK9B5C,KAAKmH,QAAQqsB,OAAO43E,mBAC5B,IAAK,cACL,KAAK,EACL,UAAK7qG,EACD4qG,EAAoB,cACpB,MACJ,IAAK,YACDA,EAAoB,YAIE,gBAAtBA,EACAnrG,KAAKi6D,IAAI71B,wBAAwBkhB,EAAI,MACR,cAAtB6lD,GAAqC9mE,GAC5CrkC,KAAKi6D,IAAI71B,wBAAwB,KAAMC,IAgB/Cs5D,GAAgBzvG,UAAUu8G,oBAAsB,SACxCJ,EACAljG,GACAA,GAAWA,EAAQuxD,UACnB9gC,IAAqBC,iBAAiB,IAAIxgC,MAAM8P,EAAQuxD,WAI5D2xC,EAAcx2B,UACV,KACA7uE,IACIiZ,GAAO9Y,KACH,qEACiCH,IACtC,CACCwK,OAAQrI,GAAWA,EAAQqI,OAC3BwkE,kBAAmB7sE,GAAWA,EAAQ6sE,kBACtCF,sBAAsB,KAclC6pB,GAAgBzvG,UAAUi3C,YAAc,SAChCklE,EACAj2B,EACAC,GACJp2D,GAAO/Y,KACF,eAAckvE,OAAqBC,UAChCg2B,EAAcvkE,SAClBukE,IAAkBrqG,KAAKo+F,kBACvBp+F,KAAK8+F,YAAa,EAElB1/E,IAAWoI,cACPiE,YAAkBhC,IAAyB,CAAE00B,KAAK,KAGlDn+C,KAAKmkB,aACLnkB,KAAKmkB,WAAWlD,gBACZjhB,KAAKo+F,iBAAiBp9E,gBAC1B/C,GAAO/Y,KAAK,0BACZlF,KAAKmkB,WAAWd,cACZrjB,KAAKo+F,iBAAiBp9E,iBAI9BhhB,KAAKo+F,iBAAmB,KAGxBp+F,KAAKi6D,IAAI90B,eACFklE,IAAkBrqG,KAAK6/F,kBAGN,YAApBzrB,GAAgD,iBAAfC,GACjCp2D,GAAO/Y,KAAK,6BACZka,IAAWyB,UAAUolB,uBAAuB,CAAEolE,aAAa,KAChC,uBAApBj3B,GACW,eAAfC,GAIHj1D,IAAWyB,UAAUolB,uBAAuB,CAAEqlE,WAAW,IAE7DtrG,KAAKurG,mBAELttF,GAAOjZ,MACH,2CACAqlG,EAAch+F,IACdg+F,EAAcn/B,UACdkJ,EACAC,IAQZspB,GAAgBzvG,UAAUs9G,kBAAoB,SAASnB,GAC9CA,EAAcvkE,QACf9lC,KAAKwjG,QACLxjG,KAAKwf,aAAa0D,KAAKP,sBAI/Bg7E,GAAgBzvG,UAAUi7G,kBAAoB,WAC1C,IAAI5K,GAAuB,EAC3B,MAAMxhC,EAAe/8D,KAAKg9D,kBAG1B,IAAK,IAAI1wE,EAAI,EAAGA,EAAIywE,EAAaxmE,OAAQjK,GAAK,EAC1C,GAAIywE,EAAazwE,GAAGm/G,eAAgB,CAChClN,GAAuB,EACvB,MAGJA,IAAyBv+F,KAAKu+F,uBAC9Bv+F,KAAKu+F,qBAAuBA,EAC5Bv+F,KAAKwf,aAAa0D,KACdP,uBACA47E,KASZZ,GAAgBzvG,UAAUw9G,gBAAkB,WACxC,OAAO1rG,KAAKu+F,sBAOhBZ,GAAgBzvG,UAAUguE,SAAW,WACjC,OACIl8D,KAAKm/C,MAAQn/C,KAAKm/C,KAAKunD,UACjBjrG,UAAQyI,mBAAmBlE,KAAKm/C,KAAKunD,WACrC,MAGd/I,GAAgBzvG,UAAUy9G,UAAY,SAASC,EAAOC,EAAU9gG,GAC5D,MAAM+gG,EAAiB9rG,KAAKsmG,0BAExBwF,EACAA,EAAeH,UAAUC,EAAOC,EAAU9gG,GAE1CkT,GAAO9Y,KAAK,yCAWpBw4F,GAAgBzvG,UAAU69G,eAAiB,SAAS5kG,GAChD,OAAInH,KAAKm/C,KACEn/C,KAAKggG,iBAAiB+L,eAAe5kG,GAGzC61B,QAAQE,OAAO,IAAI7lC,MAAM,wCAUpCsmG,GAAgBzvG,UAAU89G,cAAgB,SAASjlC,GAC/C,OAAI/mE,KAAKm/C,KACEn/C,KAAKggG,iBAAiBgM,cAAcjlC,GAGxC/pC,QAAQE,OAAO,IAAI7lC,MAAM,wCAMpCsmG,GAAgBzvG,UAAU+9G,sBAAwB,WAC9C,QAAIjsG,KAAKm/C,MACEn/C,KAAKm/C,KAAK8sD,yBAUzBtO,GAAgBzvG,UAAUuvD,KAAO,SAAShM,GACtC,OAAIzxC,KAAKm/C,KACEn/C,KAAKm/C,KAAK1B,KAAKhM,GAGnB,IAAIzU,QAAQ,CAACC,EAASC,KACzBA,EAAO,IAAI7lC,MAAM,0CAOzBsmG,GAAgBzvG,UAAUg+G,OAAS,WAC/B,OAAIlsG,KAAKm/C,KACEn/C,KAAKm/C,KAAK+sD,SAGd,IAAIlvE,QAAQ,CAACC,EAASC,KACzBA,EAAO,IAAI7lC,MAAM,0CAOzBsmG,GAAgBzvG,UAAUi+G,iBAAmB,WACzC,OAAOnsG,KAAKy9C,KAAK,0BAOrBkgD,GAAgBzvG,UAAUk+G,gBAAkBzO,GAAgBzvG,UAAUg+G,OAKtEvO,GAAgBzvG,UAAUm+G,eAAiB,WACvC,OAAIrsG,KAAKm/C,KACEn/C,KAAKm/C,KAAKktD,iBAGd,MAMX1O,GAAgBzvG,UAAUo+G,YAAc,WACpC,OAAItsG,KAAKm/C,KACEn/C,KAAKm/C,KAAKmtD,cAGd,MAQX3O,GAAgBzvG,UAAUq+G,mBAAqB,WAC3C,GAAIvsG,KAAKm/C,KACL,OAAOn/C,KAAKm/C,KAAKqtD,gBAYzB7O,GAAgBzvG,UAAUo4G,wBAA0B,WAChD,OAAItmG,KAAKm9D,cACEn9D,KAAK6/F,iBAAiB7+E,eAG1BhhB,KAAKo+F,iBAAmBp+F,KAAKo+F,iBAAiBp9E,eAAiB,MAW1E28E,GAAgBzvG,UAAUmrF,mBAAqB,WAC3C,MAAMyyB,EAAiB9rG,KAAKsmG,0BAE5B,OAAOwF,EAAiBA,EAAezyB,qBAAuB,MASlEskB,GAAgBzvG,UAAUu+G,oBAAsB,SAASC,GAChD1sG,KAAK4lG,gBAGV5lG,KAAK2+F,iBAAmB+N,EACxB1sG,KAAKm/C,KAAKglC,cAAc,aAAc,CAClClnF,WAAY,CACRo4B,MAAOq3E,EAAOr3E,MACdpB,MAAOy4E,EAAOz4E,MACdhuB,MAAO,0CAGfjG,KAAKm/C,KAAKzxC,iBAOdiwF,GAAgBzvG,UAAUy+G,oBAAsB,WAC5C,OAAO3sG,KAAK2+F,kBAMhBhB,GAAgBzvG,UAAU0+G,kBAAoB,WAC1C,OAAO5sG,KAAKy+F,iBAMhBd,GAAgBzvG,UAAU2+G,kBAAoB,WAC1C,OAAO7sG,KAAK0+F,iBAMhBf,GAAgBzvG,UAAU0vG,mBAAqB,WAC3C,OAAO59F,KAAKm/C,KAAKrG,iBAMrB6kD,GAAgBzvG,UAAU80G,4BAA8B,SAASn2G,EAAMU,GACnEyS,KAAKslG,YAAa,qBAAoBz4G,EAAQ,CAAEU,WAMpDowG,GAAgBzvG,UAAU4+G,+BAAiC,SAASjgH,GAChEmT,KAAKwlG,cAAe,qBAAoB34G,GACxCmT,KAAKm/C,KAAKzxC,gBASdiwF,GAAgBzvG,UAAU6+G,4BAA8B,SAASlgH,GAC7D,MAAMoB,EAAW+R,KAAKm/C,KAAK6tD,QAAQC,MAAMh8E,KAAKi8E,GAC1CA,EAAK/sG,UAAa,qBAAoBtT,GAG1C,OAAOoB,EAAWA,EAASV,WAAQgT,GAWvCo9F,GAAgBzvG,UAAU04B,aAAe,SACjCumF,EACAC,GACJ,OAAOptG,KAAKmkB,WAAWyC,aAAaumF,EAAiBC,IAUzDzP,GAAgBzvG,UAAUq2B,mBAAqB,WAC3C,OAAOvkB,KAAKmkB,WAAWI,sBAS3Bo5E,GAAgBzvG,UAAUm/G,eAAiB,SAAS/uE,GAAO,MACvD,OAAOA,EAAM/Y,UAAN,UAAkBvlB,KAAKsmG,iCAAvB,aAAkB,EAAgCgH,aAAahvE,GAASA,EAAMivE,WASzF5P,GAAgBzvG,UAAU+3F,eAAiB,SAAS3nD,EAAO0nD,GACvD,MAAMzgE,EAAU+Y,EAAM/Y,UACtB,IAAIP,EAAO,KACX,MAAM8gB,EAAQxH,EAAMwH,MACd0nE,EAAe1nE,EAAQxH,EAAMq+B,mBAAqB,QAClDmvC,EACAhmE,EACI9lC,KAAK6/F,kBAAoB7/F,KAAK6/F,iBAAiB7+E,eAC/ChhB,KAAKo+F,kBAAoBp+F,KAAKo+F,iBAAiBp9E,eAErDuE,EAEIumF,IACA9mF,EAAO8mF,EAAewB,aAAahvE,IAGvCtZ,EAAOsZ,EAAMivE,UAEZvnB,EAAU9+E,IAAO8d,GAAS8mF,GAI/B9rG,KAAKmkB,WAAWmB,4BACZwmF,EACA9mF,EACAO,EACAioF,EACAlvE,EAAMwnD,gBACNE,EAAU9+E,KAUlBy2F,GAAgBzvG,UAAUy4B,mBAAqB,SAASliB,GACpD2a,IAAWkH,QAAQ7hB,IAWvBk5F,GAAgBzvG,UAAUu/G,SAAW,SAASC,GAC1C,OAAO1tG,KAAKm/C,KAAOn/C,KAAKm/C,KAAKyrD,QAAQ8C,GAAU,MAMnD/P,GAAgBzvG,UAAUy/G,+BAAiC,WACvD3tG,KAAKwf,aAAa0D,KAAKP,oBACnB8kF,iCAWR9J,GAAgBzvG,UAAU0/G,oBAAsB,SAAS7kE,EAAItW,GACzDzyB,KAAKi6D,IAAInxB,mBAAmBC,EAAItW,IASpCkrE,GAAgBzvG,UAAU2/G,yBAA2B,SAASp7E,GAC1DzyB,KAAK4tG,oBAAoB,GAAIn7E,IAiBjCkrE,GAAgBzvG,UAAU86C,YAAc,SAChCvkC,EACAskC,EAAK,GACL+kE,GAAyB,GAC7B,MAAMC,SAAqBtpG,EAK3B,GAAoB,WAAhBspG,IACQD,GAA0C,WAAhBC,EAMtC,GAAID,EACA9tG,KAAK4tG,oBAAoB7kE,EAAItkC,OAC1B,CACH,IAAIupG,EAAgBvpG,EAIhBygG,EAAc,OAElB,GAAoB,WAAhB6I,EAA0B,CAC1B7I,EAAc,eAGT8I,EAAc7/G,eAAeuqD,OAC9Bs1D,EAAct1D,KAAuB,IAGzC,IACIs1D,EAAgBphG,KAAKwL,UAAU41F,GACjC,MAAO30G,GAGL,YAFA4kB,GAAOjZ,MAAM,6CAA8C3L,IAM/D0vC,EACA/oC,KAAKolG,uBAAuBr8D,EAAIilE,EAAe9I,GAG/CllG,KAAKilG,gBAAgB+I,EAAe9I,QAnCxCjnF,GAAOjZ,MAAO,kCAAiC+oG,IAyCvDpQ,GAAgBzvG,UAAU+/G,wBAA0B,WAChD,OAAOjuG,KAAKm9D,cACNn9D,KAAK4/F,2BAA6B5/F,KAAKs/F,4BAQjD3B,GAAgBzvG,UAAU2yG,4BAA8B,SAAS5oF,GACzDA,EAAQ6tB,MACR9lC,KAAK4/F,4BAA6B,EAElC5/F,KAAKs/F,4BAA6B,EAElCrnF,EAAQ6tB,QAAU9lC,KAAKm9D,eACvBn9D,KAAKwf,aAAa0D,KAAKP,2BAS/Bg7E,GAAgBzvG,UAAUggH,uBAAyB,SAASj2F,GAGpDA,EAAQ6tB,OAGR1mB,IAAWyB,UAAUolB,uBAAuB,CAAEqlE,WAAW,IAErDtrG,KAAK6/F,kBACLzgF,IAAWgI,oBACPwE,YACI9B,IACA,CACI+8C,UAAW7mE,KAAK6/F,iBAAiBz0B,eAIjDprE,KAAKurG,gBAAgB,qBAAsB,eACpCtzF,GAAWjY,KAAKo+F,mBAAqBnmF,IAC5CjY,KAAK2jG,kBAAoB,IAAIwK,IAAkBnuG,MAC/CA,KAAK2jG,kBAAkB5mF,MAAM9E,KASrC0lF,GAAgBzvG,UAAU4yG,yBAA2B,SAAS7oF,GACtDA,EAAQ6tB,MACR9lC,KAAK4/F,4BAA6B,GAElC5/F,KAAKs/F,4BAA6B,EAClCt/F,KAAK2jG,mBAAqB3jG,KAAK2jG,kBAAkBhxC,UAGjD16C,EAAQ6tB,QAAU9lC,KAAKm9D,eACvBn9D,KAAKwf,aAAa0D,KAAKP,wBAU/Bg7E,GAAgBzvG,UAAUw8G,uBAAyB,SAC3CL,EACA94B,GACJvxE,KAAK4/F,4BAA6B,EAGlC5/F,KAAK6/F,iBAAmBwK,EACxBrqG,KAAKihG,oCAELjhG,KAAK6/F,iBAAiBn5C,WAClB1mD,KAAKm/C,KACLn/C,KAAKi6D,IAFT,SAGWj6D,KAAKmH,QAAQqsB,QAHxB,IAIQ0S,wBAAyBlmC,KAAK+qG,oBAGtC9sF,GAAO/Y,KAAK,4CAEZ,IAAIkpG,EAAW3yG,UAAQyI,mBAAmBlE,KAAK6/F,iBAAiB30B,WAEhE,MAAM7O,EAAcr8D,KAAK+8D,aAAaqxC,GAElC/xC,IACA+xC,EAAW/xC,EAAYgyC,cAAgBD,GAG3CpuG,KAAKmkB,WAAWN,eACZ7jB,KAAK6/F,iBAAiB7+E,eACtBotF,GAEJ,MAAMprE,EAAchjC,KAAKknC,iBAEzBlnC,KAAK6/F,iBAAiBvuB,YAClBC,EACA,KACItzD,GAAOhZ,MAAM,uCAEbjF,KAAKwf,aAAa0D,KACdP,yBACA3iB,KAAK6/F,mBAEb76F,IACIiZ,GAAOjZ,MACH,+CAAgDA,IAExDg+B,IAOR26D,GAAgBzvG,UAAUogH,oBAAsB,WAC5CtuG,KAAKuuG,iBACD,MAAOvuG,KAAKo+F,iBAAiBp9E,eAAeumB,oBAOpDo2D,GAAgBzvG,UAAUsgH,oBAAsB,WAC5CxuG,KAAKuuG,iBACD,MAAOvuG,KAAK6/F,iBAAiB7+E,eAAeumB,oBAUpDo2D,GAAgBzvG,UAAUqgH,iBAAmB,SAASE,EAASjnE,GAC3D,IAAK,MAAMlJ,KAASkJ,EAChBvpB,GAAO/Y,KAAM,iBAAgBupG,YAAkBnwE,KAC/Ct+B,KAAKs7D,mBAAmBh9B,IAWhCq/D,GAAgBzvG,UAAU6yG,4BAA8B,SAChDsJ,GAC0B,OAA1BrqG,KAAK6/F,mBAIL7/F,KAAK0uG,yBACC1uG,KAAK6/F,iBAAiBvzB,uBAGF,OAA1BtsE,KAAKo+F,mBACLp+F,KAAK2uG,yBACC3uG,KAAKo+F,iBAAiB9xB,uBAGhC,IAAIsiC,GAAO,EACX,MAAMC,EAAmB7uG,KAAKmH,QAAQqsB,OAAOq7E,iBAmB7C,GAhBKxE,EAAcvkE,MAER9lC,KAAK6/F,mBAAqBwK,GACjCpsF,GAAOjZ,MAAM,0DAEb4pG,GAAO,IACCvE,EAAcj/B,aACS,iBAArByjC,GACPzjG,KAAKC,SAAWwjG,IACnB5wF,GAAO/Y,KAAM,+BAA8B2pG,SAC3CzvF,IAAWyB,UAAUolB,uBAAuB,CAAEolE,aAAa,IAC3DrrG,KAAKurG,gBAAgB,UAAW,gBAEhCqD,GAAO,GAZPA,GAAO,GAeNl1F,MAAM1Z,KAAK0uG,4BACRh1F,MAAM1Z,KAAK2uG,0BAA2B,CAC1C,MAAMG,EACA9uG,KAAK0uG,yBAA2B1uG,KAAK2uG,yBAE3CvvF,IAAWoI,cACP2C,IACA,CAAE58B,MAAOuhH,IAGbzE,EAAcvkE,QAAU9lC,KAAKm9D,eAC7Bn9D,KAAKwf,aAAa0D,KAAKP,0BAGvBisF,IAMJ5uG,KAAK+uG,eAAc,GAGf/uG,KAAKo+F,iBACLp+F,KAAKgvG,yBAEL/wF,GAAO/Y,KAAK,mDAGhBlF,KAAKwuG,sBAGDxuG,KAAKo+F,kBACLp+F,KAAKirG,wCAGThtF,GAAO/Y,KAAK,6CACZlF,KAAKmkB,WAAWpD,iBAAiB/gB,KAAK6/F,iBAAiB7+E,gBAEvD5B,IAAWgI,oBACPwE,YACI/B,IACA,CACIg9C,UAAW7mE,KAAK6/F,iBAAiBz0B,iBAajDuyB,GAAgBzvG,UAAU8yG,kBAAoB,SAAS15E,EAAa,IAChE,MAAM2nF,GAAWlyB,IAAQz1D,EAAYtnB,KAAKsnB,YAG1C,GADAtnB,KAAKsnB,WAAaA,EACd2nF,EAAS,CACTjvG,KAAKwf,aAAa0D,KACdP,qBACA3iB,KAAKsnB,YAGa,CAIlB,eAGA,aACA,gBAGUlY,QAAQvhB,SACM0S,IAApB+mB,EAAWz5B,IACXuxB,IAAWyB,UAAUolB,uBAAuB,CACxC,CAACp4C,EAAI+T,QAAQ,IAAK,MAAO0lB,EAAWz5B,SAaxD8vG,GAAgBzvG,UAAUghH,YAAc,SAASrhH,GAC7C,OAAOmS,KAAKsnB,WAAWz5B,IAO3B8vG,GAAgBzvG,UAAUihH,4BAA8B,WAChDnvG,KAAKy/F,uBACLxhF,GAAO/Y,KAAK,mCACZuI,aAAazN,KAAKy/F,sBAClBz/F,KAAKy/F,qBAAuB,OASpC9B,GAAgBzvG,UAAU8gH,uBAAyB,WAC/ChvG,KAAKovG,oBACD,MAAOpvG,KAAKo+F,iBAAiBp9E,eAAeumB,oBAQpDo2D,GAAgBzvG,UAAUmhH,uBAAyB,WAC/CrvG,KAAKovG,oBACD,MAAOpvG,KAAK6/F,iBAAiB7+E,eAAeumB,oBAUpDo2D,GAAgBzvG,UAAUkhH,oBAAsB,SACxCE,EACA9nE,GACJ,IAAK,MAAMlJ,KAASkJ,EAChBvpB,GAAO/Y,KAAM,mBAAkBoqG,YAA0BhxE,KACzDt+B,KAAKw7D,qBAAqBl9B,IAQlCq/D,GAAgBzvG,UAAUqhH,qCAAuC,WAC7DtxF,GAAO/Y,KAAK,sDACZlF,KAAKo+F,iBAAiB1mB,wBAAuB,GAAM,GAAMh9C,KACrD,KACIzc,GAAO/Y,KAAK,oDAEhBF,IACIiZ,GAAOjZ,MACH,2DACAA,MAWhB24F,GAAgBzvG,UAAU6gH,cAAgB,SAASzyC,GAC/C,GAAIt8D,KAAKm+C,MAAQme,EAAjB,CAMA,GADAt8D,KAAKm+C,IAAMme,EACPA,EAAW,CACXr+C,GAAO/Y,KAAK,wCAIZka,IAAWyB,UAAUolB,uBAAuB,CACxCqlE,WAAW,EACXD,aAAa,IAKjB,MAAMrD,EAAwC,IAAxBhoG,KAAKi6D,IAAInzB,WAE/B9mC,KAAK6/F,iBACAnoB,wBAAuB,EAAMswB,GAC7B5qE,MAAMp4B,IACHiZ,GAAOjZ,MAEI,+CAAGgjG,KAAkBhjG,UAGxCiZ,GAAO/Y,KAAK,mCAIZlF,KAAKo+F,kBACLp+F,KAAKmkB,WAAWK,gCACZxkB,KAAKo+F,iBAAiBp9E,gBAAiBs7C,GAI/Ct8D,KAAKs+F,YAAc,KAGnBt+F,KAAKwf,aAAa0D,KACdP,aACA3iB,KACAA,KAAKm+C,KACTn+C,KAAKwf,aAAa0D,KACdP,gCACA3iB,KAAK8jG,0BAGT9jG,KAAKwf,aAAa0D,KACdljB,KAAKiuG,0BACCtrF,yBACAA,4BApDN1E,GAAOhZ,MAAO,8CAA6Cq3D,IA4DnEqhC,GAAgBzvG,UAAUshH,iBAAmB,SAAStkC,GAElD,GADAlrE,KAAKmvG,8BACDnvG,KAAK6/F,iBAGL,YAFA5hF,GAAOjZ,MAAM,gCAKjBhF,KAAK4/F,4BAA6B,EAClC5/F,KAAK6/F,iBACC7/F,KAAKqf,KAAK9K,WAAW+9B,OAAOm9D,oBAC1BzvG,KAAKm/C,KAAKunD,UACVx7B,GACRjtD,GAAO/Y,KACH,gCAAiClF,KAAKm/C,KAAKunD,UAAWx7B,GAC1DlrE,KAAKihG,oCAELjhG,KAAK6/F,iBAAiBn5C,WAClB1mD,KAAKm/C,KACLn/C,KAAKi6D,IAFT,SAGWj6D,KAAKmH,QAAQqsB,QAHxB,IAIQ0S,wBAAyBlmC,KAAK+qG,oBAGtC9sF,GAAO/Y,KAAK,4CAEZ,IAAIkpG,EAAW3yG,UAAQyI,mBAAmBlE,KAAK6/F,iBAAiB30B,WAEhE,MAAM7O,EAAcr8D,KAAK+8D,aAAaqxC,GAElC/xC,IACA+xC,EAAW/xC,EAAYgyC,cAAgBD,GAG3CpuG,KAAKmkB,WAAWN,eACZ7jB,KAAK6/F,iBAAiB7+E,eACtBotF,GAKJ,MAAMprE,EAAchjC,KAAKknC,iBAEzBlnC,KAAK6/F,iBAAiBluB,OAAO3uC,IAOjC26D,GAAgBzvG,UAAU+8G,sCAAwC,WAC9DhtF,GAAO/Y,KAAK,wDACZlF,KAAKo+F,iBAAiB1mB,wBAAuB,GAAO,GAAOh9C,KACvD,KACIzc,GAAO/Y,KAAK,uDAEhBF,IACIiZ,GAAOjZ,MACH,4DACAA,MAWhB24F,GAAgBzvG,UAAU+6G,qBAAuB,SAASyG,GACtD,IAAK5vF,IAAQyqF,gBACLvqG,KAAKqjG,gBACNrjG,KAAKsjG,uBAGR,YAFArlF,GAAO/Y,KAAK,qBAIhB,MAAMyqG,EAAQ3vG,KAAKg9D,kBACb4yC,EAAYD,EAAMp5G,OAGlBs5G,EAAgB7vG,KAAKwqG,qBAQ3B,IALKqF,GAAiB7vG,KAAKy/F,sBACvBz/F,KAAKmvG,+BAIJnvG,KAAK6/F,kBAAoBgQ,EAAe,CACzC,MAAMzoD,EAAOwoD,GAAaD,EAAM,GAG1BG,EAAO9vG,KAAKk8D,WACZ6zC,EAAU3oD,EAAKoV,QAErB,GAAIszC,EAAOC,EAKP,YAJA9xF,GAAOhZ,MACH,2DACqC6qG,EAAMC,GAG5C,GAAID,IAASC,EAGhB,YAFA9xF,GAAOjZ,MAAM,kBAAmB8qG,EAAMC,GAK1C,MAAMpsG,EAAMyjD,EAAK/J,SAEjB,GAAIqyD,EAAe,CACf,GAAI1vG,KAAKy/F,qBAGL,YAFAxhF,GAAOjZ,MAAM,+CAIjBiZ,GAAO/Y,KACF,wBAAuBvB,WACpB3D,KAAK2/F,6BACb3/F,KAAKy/F,qBAAuBl1F,WACxBvK,KAAKwvG,iBAAiB1hH,KAAKkS,KAAM2D,GACX,IAAtB3D,KAAK2/F,qBAET1hF,GAAO/Y,KAAM,wBAAuBvB,GACpC3D,KAAKwvG,iBAAiB7rG,QAEnB3D,KAAK6/F,mBAAqBgQ,IACjC5xF,GAAO/Y,KAAM,uBAAsBlF,KAAK6/F,iBAAiB30B,WAGrDlrE,KAAK6/F,iBAAiBz0B,aAAewkC,EAAY,GACjDxwF,IAAWgI,oBACPwE,YAAe7B,MAEvB/pB,KAAKurG,oBAUb5N,GAAgBzvG,UAAUs8G,mBAAqB,WAC3C,MAAMmF,EAAQ3vG,KAAKg9D,kBACb4yC,EAAYD,EAAMp5G,OAClBy5G,OAA+DzvG,IAAlDovG,EAAM1+E,KAAK7iC,GAAoB,gBAAfA,EAAE26G,UAC/B8G,EAA8B,IAAdD,IAAoBI,EAI1C,OAFA/xF,GAAOhZ,MAAO,mBAAkB2qG,kBAA0BI,QAAiBH,KAEpEA,GAWXlS,GAAgBzvG,UAAUq9G,gBAAkB,SACpC/7F,EACAwkE,GACJ,IAAKh0E,KAAK6/F,iBAGN,YAFA5hF,GAAOjZ,MAAM,iCAKjB,MAAMirG,EAAoBjwG,KAAKm9D,cAG3B8yC,IACIjwG,KAAKo+F,kBACLp+F,KAAKuvG,uCAITvvG,KAAKqvG,0BAITpxF,GAAO/Y,KAAK,4CACZlF,KAAKmkB,WAAWlD,gBAAgBjhB,KAAK6/F,iBAAiB7+E,gBACtD/C,GAAO/Y,KAAK,yCACZlF,KAAKmkB,WAAWd,cAAcrjB,KAAK6/F,iBAAiB7+E,gBAEpDhhB,KAAK6/F,iBAAiBhsB,UAClB,KACI51D,GAAO/Y,KAAK,iCAEhBF,IAcQwK,GACAyO,GAAOjZ,MACH,iEAC6BA,IAEtC,CACCwK,OAAQA,GAAkB,UAC1BwkE,kBAAmBA,GACO,yBAC1BF,qBAAsB9zE,KAAKm/C,MACpBn/C,KAAKi9D,mBACJxhE,UAAQyI,mBAAmBlE,KAAK6/F,iBAAiB30B,cAGjElrE,KAAK6/F,iBAAmB,KAGxB7/F,KAAK+uG,eAAc,GAEfkB,IAEIjwG,KAAKo+F,iBACLp+F,KAAKsuG,sBAELrwF,GAAO/Y,KAAK,mDAWxBy4F,GAAgBzvG,UAAUivE,YAAc,WACpC,OAAOn9D,KAAKm+C,KAShBw/C,GAAgBzvG,UAAUgiH,sBAAwB,WAC9C,OAAIlwG,KAAKm9D,cACEn9D,KAAK6/F,iBAAiB7+E,eAAeq4D,qBAGzC,MAOXskB,GAAgBzvG,UAAUiiH,gBAAkB,WACxC,MAAMR,EAAQ3vG,KAAKg9D,kBAGnB,GAAqB,IAAjB2yC,EAAMp5G,OAKN,MAAM,IAAIc,MACN,kEANgB,CACpB,MAAM+4G,EAAUT,EAAM,GAAGtyD,SAEzBr9C,KAAKwvG,iBAAiBY,KAU9BzS,GAAgBzvG,UAAUmiH,eAAiB,WACvCrwG,KAAKurG,mBAOT5N,GAAgBzvG,UAAUoiH,gBAAkB,WACxC,OAAOtwG,KAAKu/F,sBAAsBgR,YAWtC5S,GAAgBzvG,UAAUk3C,2BAA6B,SAASC,GAC5DrlC,KAAKqhG,kBAAkBmP,kCAAkCnrE,IAU7Ds4D,GAAgBzvG,UAAUylF,yBAA2B,SAAStuC,GAC1D,OAAOrlC,KAAKqhG,kBAAkBoP,+BAA+BprE,IAgBjEs4D,GAAgBzvG,UAAUwiH,wBACpB,SAASC,EAAY9kB,GACnB,OAAK7rF,KAAKm/C,KAIHn/C,KAAK8/F,kBACP4Q,wBAAwBC,EAAY9kB,GAJ9B,IAAIx0F,MAAMu5G,wBAY7BjT,GAAgBzvG,UAAU+yG,kCAAoC,WAC1D,MAAM4P,EAAY7wG,KAAKusG,sBAEnBvsG,KAAKkgG,mCAAsC2Q,GAAgD,OAAnC7wG,KAAKsmG,4BAIjElnF,IAAWoI,cAAcsD,YAAsB,SAAU,CACrD+lF,YACA1lF,cAAgB,GAAE0lF,KAAa7wG,KAAKwgG,qBAExCxgG,KAAKkgG,kCAAoC/3F,KAAKgM,QAOlDwpF,GAAgBzvG,UAAUw1G,kCAAoC,WAC1D,MAAMmN,EAAY7wG,KAAKusG,qBAElBsE,GAAc7wG,KAAKkgG,mCAKxB9gF,IAAWoI,cAAcsD,YAAsB,OAAQ,CACnD+lF,YACA1lF,cAAgB,GAAE0lF,KAAa7wG,KAAKwgG,kBACpCh6E,MAAO,CACHqlF,SAAUzgG,KAAKmM,OAAOpP,KAAKgM,MAAQnU,KAAKkgG,mCAAqC,KAC7E4Q,KAAM9wG,KAAKykG,2BAUvB9G,GAAgBzvG,UAAUq7E,sBAAwB,WAC1CvpE,KAAK6/F,kBACL7/F,KAAKqwG,iBAGLrwG,KAAKo+F,kBACLp+F,KAAKo+F,iBAAiBvqB,UAClB,KACA7uE,IACIiZ,GAAO9Y,KAAK,8DAA+DH,IAC5E,CACCwK,OAAQ,UACRwkE,kBAAmB,mBACnBE,gBAAgB,EAChBJ,sBAAsB,IAIlC9zE,KAAKipG,sBAAqB,IAQ9BtL,GAAgBzvG,UAAU68G,eAAiB,WACvC,OAAO/qG,KAAKogG,gBAAkBpgG,KAAKogG,eAAeh3B,aAStDu0B,GAAgBzvG,UAAUiyG,gBAAkB,WACxC,OAAO/lD,IAAc5c,YAAYx9B,KAAKmH,QAAQqsB,SASlDmqE,GAAgBzvG,UAAU6iH,WAAa,SAASznC,GACvCtpE,KAAKmgG,kBAMVngG,KAAKogG,eAAe/2B,WAAWC,GAL3BrrD,GAAO9Y,KAAK,6DAapBw4F,GAAgBzvG,UAAU8iH,iBAAmB,WACzC,OAAOr4E,QAAQ34B,KAAKm/C,MAAQn/C,KAAKm/C,KAAK8xD,WAAWzzE,gBAQrDmgE,GAAgBzvG,UAAUgjH,cAAgB,WACtC,OAAOv4E,QAAQ34B,KAAKm/C,MAAQn/C,KAAKm/C,KAAKgyD,qBAQ1CxT,GAAgBzvG,UAAUkjH,YAAc,WACpC,OAAIpxG,KAAKm/C,MAAQn/C,KAAK4lG,cACX5lG,KAAKm/C,KAAK8xD,WAAWzvE,SAGzBxE,QAAQE,OACX,IAAI7lC,MAAM,yDAQlBsmG,GAAgBzvG,UAAUmjH,aAAe,WACjCrxG,KAAKm/C,MAAQn/C,KAAK4lG,eAClB5lG,KAAKm/C,KAAK8xD,WAAWK,WAW7B3T,GAAgBzvG,UAAUqjH,UAAY,SAAS1lB,EAAa2lB,GACxD,OAAIxxG,KAAKm/C,KACEn/C,KAAKm/C,KAAK8xD,WAAW9tG,KAAK0oF,EAAa2lB,GAG3Cx0E,QAAQE,OAAO,IAAI7lC,MAAM,gCAOpCsmG,GAAgBzvG,UAAUujH,gBAAkB,SAASvqG,GAC7ClH,KAAKm/C,MACLn/C,KAAKm/C,KAAK8xD,WAAWS,WAAWxqG,IASxCy2F,GAAgBzvG,UAAUyjH,mBAAqB,SAASzqG,GAChDlH,KAAKm/C,MACLn/C,KAAKm/C,KAAK8xD,WAAWW,cAAc1qG,M,+DC/8G3C,uLAwBA,MAAM+W,EAASF,oBAAUM,GAMV,SAAS4/E,EAA4B17E,GAChDviB,KAAKuiB,WAAaA,EAClBviB,KAAK6xG,cAAgB,GAGrBtvF,EAAWZ,GAAGgB,qBACV2b,IACI,IAAKA,EAAM/Y,YAAchD,EAAW4B,WAChC,OAEJ,MAAMlM,EACAqmB,EAAMwH,MACFvjB,EAAWs9E,iBAAmBt9E,EAAW67E,iBAI7C96E,EAAOrL,GAAWA,EAAQ+I,gBAAmB,KAEnDuB,EAAW4B,WAAWU,cAClBvB,EACAgb,EAAMggC,UACNhgC,EAAMgJ,aAOtB22D,EAA4B/vG,UAAU0zG,uBAAyB,WAC3D,MAAMr/E,EAAaviB,KAAKuiB,WAClBuvF,EAAWvvF,EAAW48B,KAE5Bn/C,KAAK+xG,kBAAoB,IAAIC,IAAsBF,EAC/C9xG,KAAKuiB,WAAW/C,cAEpBsyF,EAASluE,YAAY+W,IAAW/qD,eAAgBy6G,IACvCA,EAAcvkE,OAMfvjB,EAAW03C,IAAIxxB,uBAMvBqpE,EAASluE,YACL+W,IAAW9qD,oBACX,CAACw6G,EAAeh1B,MAGXg1B,EAAcvkE,OACRvjB,EAAWyoF,kBACV31B,EAASg1B,EAAcrpF,kBAIvC8wF,EAASluE,YAAY+W,IAAWpsD,qBAC5B0jH,IAII7yF,IAAWoI,cAAcqE,eAEzBtJ,EAAWs8E,kBAAoBoT,EAG/B1vF,EAAW03C,IAAIvyB,cAAa,GAAMhN,KAC9B,KACInY,EAAWq8E,gBAAiB,EAC5Br8E,EAAWs8E,kBAAoB,OAElCzhE,MACGp4B,IACIud,EAAWs8E,kBAAoB,KAC/B5gF,EAAO9Y,KACH,gDAAiDH,OAKzEhF,KAAK+xG,kBAAkBG,QAAQv3D,IAAWjoD,gBACtCiwB,mBAEJ3iB,KAAK+xG,kBAAkBG,QAAQv3D,IAAWrqD,WACtCqyB,qBAGJmvF,EAASluE,YAAY+W,IAAWrqD,WAC5B,KACI0P,KAAKuiB,WAAW+8E,4BAA6B,EAG7CtyG,OAAOuY,KAAKusG,EAASh5D,iBAAiB1pC,QAAQvhB,IAC1C,MAAMw5B,EACA2D,YACG,cAAan9B,EACd,CAAEN,MAAOukH,EAASh5D,gBAAgBjrD,KAE1CuxB,IAAWoI,cAAcH,KAI7Br6B,OAAOuY,KAAKusG,EAASzyF,KAAKy5B,iBAAiB1pC,QAAQvhB,IAC/C,MAAMw5B,EACA2D,YACG,QAAOn9B,EACR,CAAEN,MAAOukH,EAASzyF,KAAKy5B,gBAAgBjrD,KAE/CuxB,IAAWoI,cAAcH,OAIrCyqF,EAASluE,YAAY+W,IAAW9oD,qBAAsB,CAACwH,EAAG4e,KACjDA,EAAQ6tB,OACTvjB,EAAW/C,aAAa0D,KAAKP,oBACzB8kF,sBAA2CpuG,KAIvD2G,KAAK+xG,kBAAkBG,QAAQv3D,IAAW1oD,gBACtC0wB,oBACA8kF,oBAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAW5oD,mBACtC4wB,oBACA8kF,oBACJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAW3oD,+BACtC2wB,oBACA8kF,qBACJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWzoD,gCACtCywB,oBACA8kF,sBAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWxoD,qBACtCwwB,oBACA8kF,wBAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWtpD,kBACtCsxB,oBACA8kF,qBAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWnsD,wBACtCm0B,oBACA8kF,2BAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWlsD,YACtCk0B,oBACA8kF,6BACJqK,EAASluE,YACL+W,IAAWlsD,YACX,IAAM2wB,IAAWoI,cAAc+C,gBAEnCvqB,KAAK+xG,kBAAkBG,QAAQv3D,IAAW7oD,kBACtC6wB,oBACA8kF,qBAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWhrD,kBACtCgzB,oBACA8kF,qBAEJqK,EAASluE,YAAY+W,IAAWxrD,sBAC5Bk7G,IACI9nF,EAAW2rF,uBAAuB7D,KAG1CrqG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWtqD,cACtCsyB,oBACA8kF,wBAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAW9rD,oBACtC8zB,mBACA8kF,cAEJznG,KAAK+xG,kBAAkBG,QAAQv3D,IAAWlrD,mBACtCkzB,oBACA8kF,sBAEJqK,EAASluE,YAAY+W,IAAWjrD,WAC5B,KACI0vB,IAAWoI,cAAc8D,eACzB/I,EAAW/C,aAAa0D,KACpBP,oBACA8kF,gBAGZqK,EAASluE,YAAY+W,IAAWroD,uBAC5B+3G,IACIjrF,IAAWgI,oBACPqE,YACInC,IACA,CAAE60B,IAAKksD,EAAcvkE,WAGrCgsE,EAASluE,YAAY+W,IAAWhpD,uBAC5B,CAACsmB,EAAStU,KAEN,GAAIA,EAAK,CACL,MAAM04D,EAAc95C,EAAW06C,mBAC3BxhE,UAAQyI,mBAAmBP,IAEH,QAAxBsU,EAAQ4/E,YACR5/E,EAAQmgF,cAAc/7B,GACS,OAAxBpkD,EAAQ4/E,aACf5/E,EAAQkgF,aAAa97B,GAI7B95C,EAAW/C,aAAa0D,KACpBP,yBACA1K,KAGZjY,KAAK+xG,kBAAkBG,QAAQv3D,IAAW/nD,6BACtC+vB,gCAEJ3iB,KAAK+xG,kBAAkBG,QAAQv3D,IAAW7nD,kCACtC6vB,qCAEJ3iB,KAAK+xG,kBAAkBG,QACnBv3D,IAAW5nD,mCACX4vB,sCAEJ3iB,KAAK+xG,kBAAkBG,QAAQv3D,IAAWrpD,qBACtCqxB,wBAEJmvF,EAASK,+BAA+B,CAACjxG,EAAMvK,KAC3C,MAAM0lE,EAAc95C,EAAW06C,mBAAmBtmE,GAE7C0lE,GAILA,EAAY+sC,YACRloG,EAAKf,QAAQgtB,UAAU,qBAAqB52B,QAC5C2K,EAAK3T,SAGbukH,EAASluE,YAAY+W,IAAW7qD,OAC5ByyB,EAAWgnF,eAAez7G,KAAKy0B,IACnCuvF,EAASluE,YAAY+W,IAAWhoD,iBAC5B4vB,EAAWipF,kBAAkB19G,KAAKy0B,IAEtCviB,KAAK+xG,kBAAkBG,QAAQv3D,IAAW5pD,iBACtC4xB,sBAEJ3iB,KAAK+xG,kBAAkBG,QAAQv3D,IAAW3pD,yBACtC2xB,wBAEJmvF,EAASluE,YAAY+W,IAAWpqD,kBAC5BgyB,EAAWkmF,eAAe36G,KAAKy0B,IACnCviB,KAAK+xG,kBAAkBG,QAAQv3D,IAAWlqD,wBACtCkyB,qBACJ3iB,KAAK+xG,kBAAkBG,QAAQv3D,IAAWjqD,yBACtCiyB,sBACJ3iB,KAAK+xG,kBAAkBG,QAAQv3D,IAAWhqD,sBACtCgyB,mBACJmvF,EAASluE,YAAY+W,IAAWvqD,4BAC5BmyB,EAAW8mF,wBAAwBv7G,KAAKy0B,IAC5CuvF,EAASluE,YAAY+W,IAAWnqD,gBAC5B+xB,EAAWshF,aAAa/1G,KAAKy0B,IACjCviB,KAAK+xG,kBAAkBG,QAAQv3D,IAAW9pD,SACtC8xB,mBACJ3iB,KAAK+xG,kBAAkBG,QAAQv3D,IAAW/pD,kBACtC+xB,oBACA8kF,4BAEJqK,EAASluE,YAAY+W,IAAWtrD,qBAC5BkzB,EAAWsnF,qBAAqB/7G,KAAKy0B,IAEzCuvF,EAASluE,YAAY+W,IAAW5qD,mBAAoB0xE,IAChDl/C,EAAWonF,mBAAmBloC,GAG1Bl/C,EAAW4B,YAAc5B,EAAWqjF,eACpCrjF,EAAWZ,GAAGgB,yBACVyvF,IACI,MAAMC,EAAY,CACdrtG,MAAOotG,EAAgB9a,WACvBpwF,GAAI,kBACJ6I,OAAQqiG,EAAgBva,aAG5Bz4E,IAAWkH,QAAQ1Z,KAAKwL,UAAUi6F,QAKlDP,EAASluE,YAAY+W,IAAW7pD,iBAC5ByxB,EAAWqnF,kBAAkB97G,KAAKy0B,IAEtCuvF,EAASluE,YAAY0uE,IAAqBtlB,iBACtC,CAACwR,EAAayF,KACV1hF,EAAWi8E,YAAcA,EACzBj8E,EAAW0hF,aAAeA,EAC1B1hF,EAAW/C,aAAa0D,KACpBP,sBAA2C67E,EAC3CyF,KAGZ6N,EAASluE,YACL+W,IAAW1qD,iBAGX,CAAC0T,EAAKkoF,EAAa0mB,EAAKC,EAAOC,KAC3B,MAAMvrG,EAAKzL,UAAQyI,mBAAmBP,GAEtC4e,EAAW/C,aAAa0D,KACpBP,mBACAzb,EAAIqrG,EAAKE,EAAI5mB,KAGzBimB,EAASluE,YACL+W,IAAWxqD,yBAGX,CAACwT,EAAKkoF,EAAa0mB,EAAKC,EAAOC,KAC3B,MAAMvrG,EAAKzL,UAAQyI,mBAAmBP,GAEtC4e,EAAW/C,aAAa0D,KACpBP,2BACAzb,EAAIqrG,EAAKE,KAGrBX,EAASluE,YAAY+W,IAAWnpD,gBAC5B,CAACmS,EAAKoM,KACF,MAAM7I,EAAKzL,UAAQyI,mBAAmBP,GAChC04D,EAAc95C,EAAW06C,mBAAmB/1D,GAE7Cm1D,GAAeA,EAAYnK,UAAYniD,IAG5CssD,EAAYnK,QAAUniD,EACtBwS,EAAW/C,aAAa0D,KACpBP,sBAA2Czb,EAAI6I,MAG3D+hG,EAASluE,YAAY+W,IAAW1nD,sBAC5B,CAAC0D,EAAM87B,KACH,MAAMvrB,EAAKzL,UAAQyI,mBAAmBvN,GAChC0lE,EAAc95C,EAAW06C,mBAAmB/1D,GAE9Cm1D,EACA95C,EAAW/C,aAAa0D,KACpBP,4BACA05C,EAAa5pC,GAEjBxU,EAAO9Y,KACH,0EACkBxO,EAClB87B,KAIhBq/E,EAAShN,oBAAoB,aAAc,CAACnrG,EAAMhD,KAC9C,IAAIivG,GAAc,EAElB,GAAIrjF,EAAW25C,aAAevlE,GAAQ4rB,EAAWqjF,cAC7CA,GAAc,MACX,CACH,MAAMvpC,EAAc95C,EAAW06C,mBAAmBtmE,GAE9C0lE,GAAeA,EAAYupC,gBAC3BA,GAAc,GAItB,IAAKA,EACD,OAGJ,MAAMnH,EAA4C,SAA1B9kG,EAAKsD,WAAWo4B,MAClCqpE,EAA4C,SAA1B/kG,EAAKsD,WAAWg3B,MAExC,IAAIy+E,GAAU,EAEVjU,IAAoBl8E,EAAWo8E,iBAAiBtpE,QAChD9S,EAAWo8E,iBAAiBtpE,MAAQopE,EACpCiU,GAAU,GAGVhU,IAAoBn8E,EAAWo8E,iBAAiB1qE,QAChD1R,EAAWo8E,iBAAiB1qE,MAAQyqE,EACpCgU,GAAU,GAGVA,GACAnwF,EAAW/C,aAAa0D,KACpBP,6BACAJ,EAAWo8E,oBAKnBp8E,EAAW4B,aAEX2tF,EAASluE,YAAY+W,IAAWxrD,sBAC5B8oB,IACIsK,EAAW4B,WAAWS,6BAClB3M,EAAQ+I,kBAIpB8wF,EAASluE,YAAY+W,IAAWrsD,yBAC5B,CAAC+K,EAAGisD,KACA/iC,EAAW4B,WAAWkC,0BAA0BhtB,EAAGisD,OAQnE24C,EAA4B/vG,UAAUkzG,kBAAoB,WACtD,MAAM7+E,EAAaviB,KAAKuiB,WAClB03C,EAAM13C,EAAW03C,IAEvBA,EAAIr2B,YACA5K,IAAU3Q,mBACV9F,EAAW+4C,mBAAmBxtE,KAAKy0B,IAEvC03C,EAAIr2B,YACA5K,IAAUzQ,qBACVhG,EAAWi5C,qBAAqB1tE,KAAKy0B,IAEzC03C,EAAIr2B,YAAY5K,IAAUtlC,yBACtBwT,IACQqb,EAAW87E,sBAAwBn3F,GAAMqb,EAAW48B,OACpD58B,EAAW87E,oBAAsBn3F,EACjCqb,EAAW/C,aAAa0D,KACpBP,2BAAgDzb,GAEhDqb,EAAW4B,YAAc5B,EAAW25C,aAAeh1D,GAEnDqb,EAAW4B,WAAWc,yBAClB1C,EAAW48B,KAAKpC,YAKpCkd,EAAIr2B,YAAY5K,IAAUpR,kBAAmB,KACzC,MAAMzT,EAAMjoB,OAAOsuD,YAAYrmC,MACzBtmB,EAAM,sBAGZowB,EAAOrZ,IAAK,UAAS/W,OAAUsmB,GAC/BoO,EAAW48B,KAAKrG,gBAAgBjrD,GAAOsmB,EACvCiL,IAAWoI,cACPwD,YAAkCn9B,EAAK,CAAEN,MAAO4mB,KAEpDoO,EAAW/C,aAAa0D,KAAKP,yBAGjCs3C,EAAIr2B,YAAY5K,IAAUnlC,0BACtB,CAAC8C,EAAM87B,KACH,MAAM4pC,EAAc95C,EAAW06C,mBAAmBtmE,GAE9C0lE,EACA95C,EAAW/C,aAAa0D,KACpBP,4BACA05C,EAAa5pC,GAEjBxU,EAAO9Y,KACH,mEACsBxO,EACtB87B,KAIhBwnC,EAAIr2B,YAAY5K,IAAUjQ,oBACtB,CAACzF,EAAKyJ,KACGzJ,EAAIwiB,OACL1mB,IAAWkH,QACP1Z,KAAKwL,UAAU,CACXlR,GAAI,cACJ3Z,MAAOw/B,OAI3BktC,EAAIr2B,YAAY5K,IAAUhQ,qBACtB,CAAC1F,EAAKyJ,KACGzJ,EAAIwiB,OACL1mB,IAAWkH,QACP1Z,KAAKwL,UAAU,CACXlR,GAAI,eACJ3Z,MAAOw/B,OAK3BktC,EAAIr2B,YAAY5K,IAAUtR,qBACtB,CAACruB,EAAGiqB,KACAf,EAAW4B,WAAW+B,uBAAuB7sB,EAAGiqB,GAC3CA,EAAIwiB,OACLvjB,EAAW/C,aAAa0D,KAAKP,oBACzB8kF,sBAA2CpuG,KAI3D4gE,EAAIr2B,YAAY5K,IAAUrR,oBACtB,CAACtuB,EAAGiqB,KACAf,EAAW4B,WAAW8B,sBAAsB5sB,EAAGiqB,GAC1CA,EAAIwiB,OACLvjB,EAAW/C,aAAa0D,KAAKP,oBACzB8kF,sBAA2CpuG,KAI3D4gE,EAAIr2B,YAAY5K,IAAUvQ,6BACtB,CAACpvB,EAAGiqB,KACAf,EAAW4B,WAAWgC,uBAAuB9sB,EAAGiqB,GAC3CA,EAAIwiB,OACLvjB,EAAW/C,aAAa0D,KAAKP,oBACzB8kF,sBAA2CpuG,KAI3D4gE,EAAIr2B,YAAY5K,IAAUtQ,8BACtB,CAACrvB,EAAGiqB,KACAf,EAAW4B,WAAWiC,wBAAwB/sB,EAAGiqB,GAC5CA,EAAIwiB,OACLvjB,EAAW/C,aAAa0D,KAAKP,oBACzB8kF,sBAA2CpuG,KAI3D4gE,EAAIr2B,YAAY5K,IAAU9Q,yBACtB,CAACoW,EAAOtZ,KAKAsZ,EAAMqsC,gBAAkBrsC,EAAME,YAAcC,IAAUC,SACtDnc,EAAW4B,WAAWY,wBAAuB,EAAMC,MAQnEi5E,EAA4B/vG,UAAU01G,oBAAsB,WACxD,MAAMrhF,EAAaviB,KAAKuiB,WAExBA,EAAWlD,KAAKo6B,KAAK33B,eACjB64B,IAAWvpD,4BACX4O,KAAK6xG,cAAcl3D,IAAWvpD,qCAC3B4O,KAAK6xG,cAAcl3D,IAAWvpD,6BAErCpE,OAAOuY,KAAKvF,KAAK6xG,eAAeziG,QAAQqY,IACpClF,EAAWlD,KAAKyC,eACZ2F,EACAznB,KAAK6xG,cAAcpqF,MAE3BznB,KAAK6xG,cAAgB,IAOzB5T,EAA4B/vG,UAAUqyG,mBAAqB,WACvD,MAAMh+E,EAAaviB,KAAKuiB,WAElBowF,EAA0Bh8G,IAC5B,MAAM0lE,EACA95C,EAAW06C,mBACbxhE,UAAQyI,mBAAmBvN,IAE3B0lE,GACA95C,EAAW/C,aAAa0D,KACpBP,8BACA05C,IAIZ95C,EAAWlD,KAAKo6B,KAAK7V,YACjB+W,IAAWvpD,4BACXuhH,GACJ3yG,KAAK6xG,cAAcl3D,IAAWvpD,6BACxBuhH,EAEN3yG,KAAK4yG,2BACDj4D,IAAWhsD,cACX4zB,EAAWooF,eAAe78G,KAAKy0B,IACnCviB,KAAK4yG,2BACDj4D,IAAWjsD,cACX6zB,EAAWynF,eAAel8G,KAAKy0B,IACnCviB,KAAK4yG,2BACDj4D,IAAW9nD,eACX0vB,EAAW0nF,gBAAgBn8G,KAAKy0B,IACpCviB,KAAK4yG,2BACDj4D,IAAW/rD,WACX2zB,EAAW4iB,YAAYr3C,KAAKy0B,IAEhCviB,KAAK4yG,2BAA2Bj4D,IAAWloD,uBACvC,CAACogH,EAAYC,KACLvwF,EAAWpb,QAAQqsB,OAAOu/E,mBAI9BxwF,EAAWk8E,gBAAkBoU,EAC7BtwF,EAAWm8E,gBAAkBoU,EAI7BvwF,EAAW2kB,iBAAiB93B,QAAQkvB,IAChC,OAAQA,EAAMgJ,WACd,KAAK/I,IACDhc,EAAWk8E,iBAAmBngE,EAAMuJ,OACpC,MACJ,KAAKtJ,IACDhc,EAAWm8E,iBAAmBpgE,EAAMuJ,UAK5CtlB,EAAW/C,aAAa0D,KAAKP,oBAGrC3iB,KAAK4yG,2BAA2Bj4D,IAAWnoD,8BACvCwgH,IACIzwF,EAAW/C,aAAa0D,KAAKP,+BAAoDqwF,MAO7F/U,EAA4B/vG,UAAU0kH,2BAA6B,SAC3DnrF,EAAW/F,GACf1hB,KAAK6xG,cAAcpqF,GAAa/F,EAChC1hB,KAAKuiB,WAAWlD,KAAKukB,YAAYnc,EAAW/F,IAMhDu8E,EAA4B/vG,UAAU2zG,yBAA2B,WAC7D,MAAMt/E,EAAaviB,KAAKuiB,WAEnBA,EAAW4B,aAKhB5B,EAAW4B,WAAW1C,sBAAsB,CAAC6B,EAAK0B,EAAMngB,EAAO0gB,KAC3DhD,EAAW03C,IAAIvxB,cAAcplB,EAAK0B,EAAMngB,EAAO0gB,KAMnDhD,EAAW4B,WAAWpC,0BAA0B,KAC5CQ,EAAW/C,aAAa0D,KACpBP,gCAIHJ,EAAWpb,QAAQqsB,OAAOo6C,aAC3BrrD,EAAW4B,WAAWhC,yBAAyB,CAACmB,EAAKkD,KACjDjE,EAAW2kB,eAAe3I,KAAiBnvB,QAAQkvB,IAC/C,MAAMtZ,EAAO1B,EAAIgqF,aAAahvE,GAEzBtZ,GAASwB,EAAMr4B,eAAe62B,IAInCsZ,EAAMm3D,yBAAyBnyE,EAAKkD,EAAMxB,Y,2EC5rB1D,mEAGA,MAAM/G,EAASF,oBAAUM,GAWV,MAAMnB,UAA4Bw3B,IAI7Cz+C,cACIokC,QACApc,EAAO/Y,KACF,sBAAqBlF,KAAKi1C,mBAAmBj1C,KAAKq1C,gBAU3Dq1B,8BACI,OAAO1qE,KAAKq7B,mBAAqBr7B,KAAKu1B,WAQ1Cg1E,cACI,OAAQvqG,KAAKyuE,kBAejBpzC,kBACI,OAAOr7B,KAAKs3B,YACLt3B,KAAK83B,cACL93B,KAAKo1C,UACLp1C,KAAKk1C,UAQhB1X,cACI,OAAOx9B,KAAKq7B,mBACLr7B,KAAKowB,aACLpwB,KAAK+f,iBACJ/f,KAAKu1B,aAAev1B,KAAK01C,kBAAkB,QASvDu9D,qCACI,OAAOjzG,KAAKowB,aAAepwB,KAAK01C,kBAAkB,MAStDskB,qCACI,OAAOh6D,KAAKq7B,mBAAqBr7B,KAAK+f,iBAAmB/f,KAAKu1B,WAQlE29E,8BAGI,OAAQlzG,KAAKowB,cAAgBpwB,KAAKu1B,WAOtC49E,2BACI,OAAOnzG,KAAKyuE,wBAC+B,IAA7BviF,OAAOknH,mBACdpmH,OAAOuY,KAAKrZ,OAAOknH,kBAAkBllH,WAAW0V,QAAQ,wBAA0B,GAClF5W,OAAOuY,KAAK8tG,aAAanlH,WAAW0V,QAAQ,oBAAsB,IAIjE5D,KAAKu1B,WAOjB6G,4BACI,OAAO5B,UAAUC,mBACuC,IAA1CD,UAAUC,aAAa64E,qBACqB,IAA5C94E,UAAUC,aAAa4B,iBAOzCk3E,sCACI,OAAOvzG,KAAKq7B,mBAAqBr7B,KAAK+f,iBAAmB/f,KAAKu1B,WAQlE/S,8BACI,YAA6C,IAA/Bt2B,OAAOsnH,qBACdA,oBAAoBC,oBAAoB7vG,QAAQ,aAAe,EAM1E4iF,wBACI,YAAwC,IAA1Bt6F,OAAOwnH,gBACd1mH,OAAOuY,KAAKmuG,eAAexlH,WAAW0V,QAAQ,8BAAgC,EAQzF+vG,wBASI,OAAQ3zG,KAAKowB,YASjBqN,gBACI,OAAO,EAQX+3C,YACI,OAAQx1E,KAAKyuE,kBAQjB+b,6BACI,OAAOxqF,KAAKq7B,mBAAqBr7B,KAAK+f,iBAAmB/f,KAAKu1B,WAQlEk5C,kBACI,QAAIzuE,KAAKowB,gBAILpwB,KAAKu1B,iBAAkD,IAA7BrpC,OAAOknH,oBAI1BpmH,OAAOuY,KAAK6tG,kBAAkBllH,WAC7B0V,QAAQ,qBAAuB,EAc/Ci3B,iBAGI,OAAI76B,KAAKs3B,YACGt3B,KAAK01C,kBAHe,OAM5B11C,KAAKowB,cAAepwB,KAAKu1B,eAIzBv1B,KAAKq7B,mBACEr7B,KAAK4zG,4BAXgB,GAuBpC9/E,cACI,OAAO9zB,KAAK66B,iBAOhBkW,uBACI,OAAO,EAOX8mB,0BACI,YAA4C,IAA9Br9B,UAAU49B,sBACkB,IAA3B59B,UAAUC,mBAET,IADED,UAAUC,aAAa29B,gBAQ7C6Q,4BACI,QAAqC,IAAxB/8E,OAAOmnH,eACZnnH,OAAOmnH,aAAanlH,UAAU2lH,uBAC3B3nH,OAAOmnH,aAAanlH,UAAU4lH,0BACrC,OAAO,EAKX,MAAMvyF,EAAS,IAAIwyF,eAEnB,IAGI,OAFA7nH,OAAO8nH,YAAYzyF,EAAQ,IAAK,CAAEA,KAE3B,EACT,SACE,OAAO,GAOf04B,mBACI,OAAOthB,QAAQzsC,OAAOmnH,cACfnnH,OAAOmnH,aAAaY,iBACpB/nH,OAAOmnH,aAAaY,gBAAgB,SAASlxC,OAAO4f,KAAKnwD,GAA4B,cAAnBA,EAAMmqE,WACxEzwG,OAAOwnH,gBACPxnH,OAAOwnH,eAAeO,iBACtB/nH,OAAOwnH,eAAeO,gBAAgB,SAASlxC,OAAO4f,KAAKnwD,GAA4B,cAAnBA,EAAMmqE,WASrFr2D,uBACI,OAAOtmC,KAAKq7B,mBAAqBr7B,KAAK4zG,4BAA8B,GAQxEA,2BACI,GAAI5zG,KAAKq7B,kBAAmB,CAExB,GAAIr7B,KAAKo1C,SAEL,OAAO77B,OAAOjB,SAAS07C,EAAQ0sB,SAASwzB,SAAU,IAQtD,MAAMnW,EAAKvjE,UAAUsZ,UAErB,GAAIiqD,EAAGzqF,MAAM,UAAW,CAIpB,OAFMiG,OAAOjB,SAASylF,EAAGzqF,MAAM,oBAAoB,GAAI,KAM/D,OAAQ,M,2EChWiDvnB,EAAOD,QAAiJ,SAASuN,GAAG,IAAI7L,EAAE,GAAG,SAASJ,EAAEd,GAAG,GAAGkB,EAAElB,GAAG,OAAOkB,EAAElB,GAAGR,QAAQ,IAAIiC,EAAEP,EAAElB,GAAG,CAACA,EAAEA,EAAEC,GAAE,EAAGT,QAAQ,IAAI,OAAOuN,EAAE/M,GAAGG,KAAKsB,EAAEjC,QAAQiC,EAAEA,EAAEjC,QAAQsB,GAAGW,EAAExB,GAAE,EAAGwB,EAAEjC,QAAQ,OAAOsB,EAAEV,EAAE2M,EAAEjM,EAAET,EAAEa,EAAEJ,EAAER,EAAE,SAASyM,EAAE7L,EAAElB,GAAGc,EAAEL,EAAEsM,EAAE7L,IAAIR,OAAOC,eAAeoM,EAAE7L,EAAE,CAACN,YAAW,EAAGC,IAAIb,KAAKc,EAAEA,EAAE,SAASiM,GAAG,oBAAoBhM,QAAQA,OAAOC,aAAaN,OAAOC,eAAeoM,EAAEhM,OAAOC,YAAY,CAACC,MAAM,WAAWP,OAAOC,eAAeoM,EAAE,aAAa,CAAC9L,OAAM,KAAMH,EAAEI,EAAE,SAAS6L,EAAE7L,GAAG,GAAG,EAAEA,IAAI6L,EAAEjM,EAAEiM,IAAI,EAAE7L,EAAE,OAAO6L,EAAE,GAAG,EAAE7L,GAAG,iBAAiB6L,GAAGA,GAAGA,EAAE3L,WAAW,OAAO2L,EAAE,IAAI/M,EAAEU,OAAOY,OAAO,MAAM,GAAGR,EAAEA,EAAEd,GAAGU,OAAOC,eAAeX,EAAE,UAAU,CAACY,YAAW,EAAGK,MAAM8L,IAAI,EAAE7L,GAAG,iBAAiB6L,EAAE,IAAI,IAAItL,KAAKsL,EAAEjM,EAAER,EAAEN,EAAEyB,EAAE,SAASP,GAAG,OAAO6L,EAAE7L,IAAIM,KAAK,KAAKC,IAAI,OAAOzB,GAAGc,EAAEW,EAAE,SAASsL,GAAG,IAAI7L,EAAE6L,GAAGA,EAAE3L,WAAW,WAAW,OAAO2L,EAAE86G,SAAS,WAAW,OAAO96G,GAAG,OAAOjM,EAAER,EAAEY,EAAE,IAAIA,GAAGA,GAAGJ,EAAEL,EAAE,SAASsM,EAAE7L,GAAG,OAAOR,OAAOkB,UAAUC,eAAe1B,KAAK4M,EAAE7L,IAAIJ,EAAEgB,EAAE,GAAGhB,EAAEA,EAAEiB,EAAE,IAAj5B,CAAs5B,CAAC+lH,GAAG,SAAS/6G,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE2mH,aAAQ,EAAO,IAAI7nH,EAAEc,EAAE,IAAIW,EAAE,WAAW,SAASsL,KAAK,OAAOA,EAAEg7G,cAAc,SAASh7G,EAAE7L,GAAG,IAAIJ,EAAEI,EAAE8lB,MAAMja,GAAG,OAAOjM,GAAGA,EAAEmJ,OAAO,GAAGnJ,EAAE,IAAI,IAAIiM,EAAEi7G,eAAe,SAASj7G,EAAE7L,GAAG,IAAIJ,EAAEI,EAAE8lB,MAAMja,GAAG,OAAOjM,GAAGA,EAAEmJ,OAAO,GAAGnJ,EAAE,IAAI,IAAIiM,EAAEk7G,oBAAoB,SAASl7G,EAAE7L,EAAEJ,GAAG,GAAGiM,EAAE6Y,KAAK1kB,GAAG,OAAOJ,GAAGiM,EAAEm7G,sBAAsB,SAASn7G,GAAG,OAAOA,GAAG,IAAI,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,SAAS,MAAM,OAAO,IAAI,SAAS,MAAM,KAAK,IAAI,SAAS,MAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,MAAM,MAAM,IAAI,UAAU,MAAM,KAAK,QAAQ,SAASA,EAAEo7G,oBAAoB,SAASp7G,GAAG,IAAI7L,EAAE6L,EAAE0J,MAAM,KAAKkB,OAAO,EAAE,GAAGuB,KAAK,SAASnM,GAAG,OAAOif,SAASjf,EAAE,KAAK,KAAK,GAAG7L,EAAE0V,KAAK,GAAG,KAAK1V,EAAE,GAAG,OAAOA,EAAE,IAAI,KAAK,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM,eAAe,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,gBAAgB,KAAK,EAAE,MAAM,YAAY,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,aAAa,KAAK,GAAG,MAAM,SAAS,KAAK,GAAG,MAAM,cAAc,KAAK,GAAG,MAAM,SAAS,KAAK,GAAG,MAAM,WAAW,QAAQ,SAAS6L,EAAEq7G,sBAAsB,SAASr7G,GAAG,IAAI7L,EAAE6L,EAAE0J,MAAM,KAAKkB,OAAO,EAAE,GAAGuB,KAAK,SAASnM,GAAG,OAAOif,SAASjf,EAAE,KAAK,KAAK,GAAG7L,EAAE0V,KAAK,KAAK,IAAI1V,EAAE,IAAIA,EAAE,GAAG,GAAG,OAAO,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,UAAU,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,QAAQ,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,SAAS,IAAIA,EAAE,IAAI,IAAIA,EAAE,GAAG,QAAQ,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,cAAc,IAAIA,EAAE,GAAG,YAAY,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,qBAAqB,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,aAAa,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,SAAS,IAAIA,EAAE,GAAG,WAAW,IAAIA,EAAE,GAAG,cAAc,IAAIA,EAAE,GAAG,SAAS,IAAIA,EAAE,GAAG,OAAO,IAAIA,EAAE,GAAG,WAAM,GAAQ6L,EAAEs7G,oBAAoB,SAASt7G,GAAG,OAAOA,EAAE0J,MAAM,KAAKxM,QAAQ8C,EAAEu7G,gBAAgB,SAASpnH,EAAEJ,EAAEd,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIyB,EAAEsL,EAAEs7G,oBAAoBnnH,GAAGa,EAAEgL,EAAEs7G,oBAAoBvnH,GAAGL,EAAEqe,KAAKgpB,IAAIrmC,EAAEM,GAAGqJ,EAAE,EAAEujG,EAAE5hG,EAAEmM,IAAI,CAAChY,EAAEJ,IAAI,SAASI,GAAG,IAAIJ,EAAEL,EAAEsM,EAAEs7G,oBAAoBnnH,GAAGlB,EAAEkB,EAAE,IAAI4I,MAAMhJ,EAAE,GAAG+V,KAAK,MAAM,OAAO9J,EAAEmM,IAAIlZ,EAAEyW,MAAM,MAAM,SAAS1J,GAAG,OAAO,IAAIjD,MAAM,GAAGiD,EAAE9C,QAAQ4M,KAAK,KAAK9J,KAAKu5B,aAAa,IAAItmC,IAAIoL,EAAE3K,EAAEqe,KAAKqP,IAAI1sB,EAAEM,IAAItB,GAAG,EAAEA,GAAG2K,GAAG,CAAC,GAAGujG,EAAE,GAAGluG,GAAGkuG,EAAE,GAAGluG,GAAG,OAAO,EAAE,GAAGkuG,EAAE,GAAGluG,KAAKkuG,EAAE,GAAGluG,GAAG,CAAC,GAAGA,IAAI2K,EAAE,OAAO,EAAE3K,GAAG,OAAO,GAAGkuG,EAAE,GAAGluG,GAAGkuG,EAAE,GAAGluG,GAAG,OAAO,IAAIsM,EAAEmM,IAAI,SAASnM,EAAE7L,GAAG,IAAIJ,EAAEd,EAAE,GAAG,GAAG8J,MAAMlI,UAAUsX,IAAI,OAAOpP,MAAMlI,UAAUsX,IAAI/Y,KAAK4M,EAAE7L,GAAG,IAAIJ,EAAE,EAAEA,EAAEiM,EAAE9C,OAAOnJ,GAAG,EAAEd,EAAE4W,KAAK1V,EAAE6L,EAAEjM,KAAK,OAAOd,GAAG+M,EAAEw7G,gBAAgB,SAASx7G,GAAG,OAAO/M,EAAEwoH,oBAAoBz7G,IAAIA,EAAE07G,sBAAsB,SAAS17G,GAAG,OAAO/M,EAAE0oH,YAAY37G,IAAI,IAAIA,EAAtvE,GAA2vE7L,EAAE2mH,QAAQpmH,EAAEsL,EAAEvN,QAAQ0B,EAAE2mH,SAASc,GAAG,SAAS57G,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE0nH,WAAW1nH,EAAE2nH,OAAO3nH,EAAE4nH,cAAc5nH,EAAEwnH,YAAYxnH,EAAEsnH,yBAAoB,EAAOtnH,EAAEsnH,oBAAoB,CAAC,cAAc,cAAc,kBAAkB,UAAUO,KAAK,OAAOC,WAAW,aAAaC,OAAO,SAASC,SAAS,WAAWC,SAAS,WAAWC,QAAQ,UAAUC,MAAM,QAAQC,QAAQ,UAAU,gBAAgB,gBAAgBC,UAAU,YAAY,oBAAoB,KAAK,WAAW,WAAWC,QAAQ,UAAU,iBAAiB,OAAO,aAAa,KAAK,sBAAsB,QAAQC,MAAM,QAAQ,cAAc,cAAcC,UAAU,YAAYC,OAAO,SAASC,SAAS,WAAWC,GAAG,KAAKC,OAAO,SAASC,OAAO,SAASC,SAAS,WAAW,+BAA+B,mBAAmBC,UAAU,YAAYC,SAAS,WAAWC,MAAM,QAAQC,MAAM,QAAQ,aAAa,KAAKC,QAAQ,UAAU,gBAAgB,QAAQC,OAAO,SAAS,iBAAiB,SAASC,KAAK,QAAQrpH,EAAEwnH,YAAY,CAAC8B,YAAY,cAAcC,QAAQ,kBAAkBC,KAAK,OAAOC,WAAW,aAAaC,OAAO,SAAShD,SAAS,WAAWiD,SAAS,WAAWC,QAAQ,UAAUC,MAAM,QAAQC,QAAQ,UAAUC,UAAU,YAAYC,cAAc,gBAAgBC,GAAG,oBAAoBC,SAAS,WAAWC,QAAQ,UAAUC,KAAK,iBAAiBC,GAAG,aAAaC,MAAM,sBAAsBC,MAAM,QAAQC,YAAY,cAAcC,UAAU,YAAYC,OAAO,SAASC,SAAS,WAAWC,GAAG,aAAaC,OAAO,kBAAkBC,OAAO,SAASC,SAAS,WAAWC,iBAAiB,+BAA+BC,UAAU,YAAYC,SAAS,WAAWC,MAAM,QAAQC,MAAM,QAAQC,GAAG,aAAaC,QAAQ,UAAUC,MAAM,gBAAgBC,OAAO,SAASC,OAAO,kBAAkBzrH,EAAE4nH,cAAc,CAAC8D,OAAO,SAASC,OAAO,SAAS/6E,QAAQ,UAAUg7E,GAAG,MAAM5rH,EAAE2nH,OAAO,CAACkE,aAAa,gBAAgBC,QAAQ,UAAUC,MAAM,QAAQC,IAAI,MAAMC,QAAQ,UAAUC,MAAM,QAAQpE,WAAW,aAAaD,KAAK,OAAOqB,MAAM,QAAQiD,MAAM,QAAQC,SAAS,YAAYC,aAAa,gBAAgBhD,KAAK,QAAQrpH,EAAE0nH,WAAW,CAAC4E,SAAS,WAAWC,MAAM,QAAQC,QAAQ,UAAUC,OAAO,SAASC,MAAM,QAAQC,OAAO,WAAWC,GAAG,SAAS/gH,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE2mH,aAAQ,EAAO,IAAI7nH,EAAEyB,GAAGzB,EAAEc,EAAE,MAAMd,EAAEoB,WAAWpB,EAAE,CAAC6nH,QAAQ7nH,GAAG+B,EAAEjB,EAAE,IAAI,SAASL,EAAEsM,EAAE7L,GAAG,IAAI,IAAIJ,EAAE,EAAEA,EAAEI,EAAE+I,OAAOnJ,IAAI,CAAC,IAAId,EAAEkB,EAAEJ,GAAGd,EAAEY,WAAWZ,EAAEY,aAAY,EAAGZ,EAAE+tH,cAAa,EAAG,UAAU/tH,IAAIA,EAAEguH,UAAS,GAAIttH,OAAOC,eAAeoM,EAAE/M,EAAEuB,IAAIvB,IAAI,IAAIoL,EAAE,WAAW,SAAS2B,KAAK,IAAI7L,EAAIlB,EAAE,OAAO+M,EAAEw7C,UAAU,SAASx7C,EAAE7L,GAAG,QAAG,IAASA,IAAIA,GAAE,GAAI,iBAAiB6L,EAAE,MAAM,IAAIhC,MAAM,gCAAgC,OAAO,IAAItJ,EAAEomH,QAAQ96G,EAAE7L,IAAI6L,EAAE6e,MAAM,SAAS7e,GAAG,OAAO,IAAItL,EAAEomH,QAAQ96G,GAAGkhH,aAAa/sH,EAAE6L,GAAE/M,EAAE,CAAC,CAACuB,IAAI,cAAcV,IAAI,WAAW,OAAOkB,EAAE2mH,cAAc,CAACnnH,IAAI,aAAaV,IAAI,WAAW,OAAOkB,EAAE6mH,aAAa,CAACrnH,IAAI,SAASV,IAAI,WAAW,OAAOkB,EAAE8mH,SAAS,CAACtnH,IAAI,gBAAgBV,IAAI,WAAW,OAAOkB,EAAE+mH,mBAA+CroH,EAAES,EAAElB,GAAG+M,EAA1f,GAA+f7L,EAAE2mH,QAAQz8G,EAAE2B,EAAEvN,QAAQ0B,EAAE2mH,SAASqG,GAAG,SAASnhH,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE2mH,aAAQ,EAAO,IAAI7nH,EAAE2uG,EAAE7tG,EAAE,KAAKW,EAAEktG,EAAE7tG,EAAE,KAAKiB,EAAE4sG,EAAE7tG,EAAE,KAAKL,EAAEkuG,EAAE7tG,EAAE,KAAKsK,EAAEujG,EAAE7tG,EAAE,KAAK,SAAS6tG,EAAE5hG,GAAG,OAAOA,GAAGA,EAAE3L,WAAW2L,EAAE,CAAC86G,QAAQ96G,GAAG,IAAIzM,EAAE,WAAW,SAASyM,EAAEA,EAAE7L,GAAG,QAAG,IAASA,IAAIA,GAAE,GAAI,MAAM6L,GAAG,KAAKA,EAAE,MAAM,IAAIhC,MAAM,sCAAsC2I,KAAKy6G,IAAIphH,EAAE2G,KAAK06G,aAAa,IAAG,IAAKltH,GAAGwS,KAAKkY,QAAQ,IAAI1qB,EAAE6L,EAAEnL,UAAU,OAAOV,EAAEmtH,MAAM,WAAW,OAAO36G,KAAKy6G,KAAKjtH,EAAE0kB,KAAK,SAAS7Y,GAAG,OAAOA,EAAE6Y,KAAKlS,KAAKy6G,MAAMjtH,EAAEotH,aAAa,WAAW,IAAIvhH,EAAE2G,KAAKA,KAAK06G,aAAa56F,QAAQ,GAAG,IAAItyB,EAAElB,EAAE6nH,QAAQljF,MAAM,SAASzjC,GAAG,GAAG,mBAAmBA,EAAE0kB,KAAK,OAAO1kB,EAAE0kB,KAAK7Y,GAAG,GAAG7L,EAAE0kB,gBAAgB9b,MAAM,OAAO5I,EAAE0kB,KAAKywE,MAAM,SAASn1F,GAAG,OAAO6L,EAAE6Y,KAAK1kB,MAAM,MAAM,IAAI6J,MAAM,2CAA2C,OAAO7J,IAAIwS,KAAK06G,aAAa56F,QAAQtyB,EAAEqtH,SAAS76G,KAAK26G,UAAU36G,KAAK06G,aAAa56F,SAAStyB,EAAEstH,WAAW,WAAW,OAAO96G,KAAK06G,aAAa56F,QAAQ9f,KAAK06G,aAAa56F,QAAQ9f,KAAK46G,gBAAgBptH,EAAE+mD,eAAe,SAASl7C,GAAG,OAAOA,EAAEP,OAAOkH,KAAK86G,aAAajuH,MAAM8V,eAAe,GAAG3C,KAAK86G,aAAajuH,MAAM,IAAIW,EAAEgnD,kBAAkB,WAAW,OAAOx0C,KAAK86G,aAAa/mE,SAASvmD,EAAEutH,MAAM,WAAW,OAAO/6G,KAAK06G,aAAaM,GAAGh7G,KAAK06G,aAAaM,GAAGh7G,KAAKi7G,WAAWztH,EAAEytH,QAAQ,WAAW,IAAI5hH,EAAE2G,KAAKA,KAAK06G,aAAaM,GAAG,GAAG,IAAIxtH,EAAEO,EAAEomH,QAAQljF,MAAM,SAASzjC,GAAG,GAAG,mBAAmBA,EAAE0kB,KAAK,OAAO1kB,EAAE0kB,KAAK7Y,GAAG,GAAG7L,EAAE0kB,gBAAgB9b,MAAM,OAAO5I,EAAE0kB,KAAKywE,MAAM,SAASn1F,GAAG,OAAO6L,EAAE6Y,KAAK1kB,MAAM,MAAM,IAAI6J,MAAM,2CAA2C,OAAO7J,IAAIwS,KAAK06G,aAAaM,GAAGxtH,EAAEqtH,SAAS76G,KAAK26G,UAAU36G,KAAK06G,aAAaM,IAAIxtH,EAAE0tH,UAAU,SAAS7hH,GAAG,IAAI7L,EAAEwS,KAAK+6G,QAAQluH,KAAK,OAAOwM,EAAEP,OAAOtL,GAAGmV,eAAe,GAAGnV,GAAG,IAAIA,EAAE2tH,aAAa,WAAW,OAAOn7G,KAAK+6G,QAAQhnE,SAASvmD,EAAE4tH,YAAY,WAAW,OAAOp7G,KAAK06G,aAAaW,SAASr7G,KAAK06G,aAAaW,SAASr7G,KAAKs7G,iBAAiB9tH,EAAE+tH,gBAAgB,SAASliH,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAI7L,EAAEwS,KAAKo7G,cAAcn0G,KAAK,OAAO5N,EAAEP,OAAOtL,GAAGmV,eAAe,GAAGnV,GAAG,IAAIA,EAAE8tH,cAAc,WAAW,IAAIjiH,EAAE2G,KAAKA,KAAK06G,aAAaW,SAAS,GAAG,IAAI7tH,EAAEa,EAAE8lH,QAAQljF,MAAM,SAASzjC,GAAG,GAAG,mBAAmBA,EAAE0kB,KAAK,OAAO1kB,EAAE0kB,KAAK7Y,GAAG,GAAG7L,EAAE0kB,gBAAgB9b,MAAM,OAAO5I,EAAE0kB,KAAKywE,MAAM,SAASn1F,GAAG,OAAO6L,EAAE6Y,KAAK1kB,MAAM,MAAM,IAAI6J,MAAM,2CAA2C,OAAO7J,IAAIwS,KAAK06G,aAAaW,SAAS7tH,EAAEqtH,SAAS76G,KAAK26G,UAAU36G,KAAK06G,aAAaW,UAAU7tH,EAAEguH,UAAU,WAAW,OAAOx7G,KAAK06G,aAAae,OAAOz7G,KAAK06G,aAAae,OAAOz7G,KAAK07G,eAAeluH,EAAEmuH,cAAc,SAAStiH,GAAG,OAAOA,EAAEP,OAAOkH,KAAKw7G,YAAY3uH,MAAM8V,eAAe,GAAG3C,KAAKw7G,YAAY3uH,MAAM,IAAIW,EAAEkuH,YAAY,WAAW,IAAIriH,EAAE2G,KAAKA,KAAK06G,aAAae,OAAO,GAAG,IAAIjuH,EAAET,EAAEonH,QAAQljF,MAAM,SAASzjC,GAAG,GAAG,mBAAmBA,EAAE0kB,KAAK,OAAO1kB,EAAE0kB,KAAK7Y,GAAG,GAAG7L,EAAE0kB,gBAAgB9b,MAAM,OAAO5I,EAAE0kB,KAAKywE,MAAM,SAASn1F,GAAG,OAAO6L,EAAE6Y,KAAK1kB,MAAM,MAAM,IAAI6J,MAAM,2CAA2C,OAAO7J,IAAIwS,KAAK06G,aAAae,OAAOjuH,EAAEqtH,SAAS76G,KAAK26G,UAAU36G,KAAK06G,aAAae,QAAQjuH,EAAE0qB,MAAM,WAAW,OAAOlY,KAAK46G,eAAe56G,KAAKi7G,UAAUj7G,KAAKs7G,gBAAgBt7G,KAAK07G,cAAc17G,MAAMxS,EAAE+sH,UAAU,WAAW,OAAOvtH,OAAOgoG,OAAO,GAAGh1F,KAAK06G,eAAeltH,EAAEgoD,UAAU,SAASn8C,GAAG,IAAI7L,EAAEwS,KAAK5S,EAAE,GAAGd,EAAE,EAAEyB,EAAE,GAAGM,EAAE,EAAE,GAAGrB,OAAOuY,KAAKlM,GAAG+V,SAAS,SAAS5hB,GAAG,IAAIT,EAAEsM,EAAE7L,GAAG,iBAAiBT,GAAGgB,EAAEP,GAAGT,EAAEsB,GAAG,GAAG,iBAAiBtB,IAAIK,EAAEI,GAAGT,EAAET,GAAG,MAAMA,EAAE,EAAE,CAAC,IAAIS,EAAEC,OAAOuY,KAAKnY,GAAGsK,EAAE3K,EAAEkkC,MAAM,SAAS53B,GAAG,OAAO7L,EAAEouH,KAAKviH,MAAM,GAAG3B,EAAE,CAAC,IAAIujG,EAAEj7F,KAAKw1C,UAAUpoD,EAAEsK,IAAI,QAAG,IAASujG,EAAE,OAAOA,EAAE,IAAIruG,EAAEG,EAAEkkC,MAAM,SAAS53B,GAAG,OAAO7L,EAAEquH,WAAWxiH,MAAM,GAAGzM,EAAE,CAAC,IAAID,EAAEqT,KAAKw1C,UAAUpoD,EAAER,IAAI,QAAG,IAASD,EAAE,OAAOA,GAAG,GAAG0B,EAAE,EAAE,CAAC,IAAIitD,EAAEtuD,OAAOuY,KAAKxX,GAAGkjC,MAAM,SAAS53B,GAAG,OAAO7L,EAAEsuH,UAAUziH,GAAE,MAAO,QAAG,IAASiiD,EAAE,OAAOt7C,KAAK+7G,eAAehuH,EAAEutD,MAAM9tD,EAAEsuH,UAAU,SAASziH,EAAE7L,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIJ,EAAE4S,KAAKu0C,iBAAiB5xC,cAAcrW,EAAE+M,EAAEsJ,cAAc5U,EAAE2J,EAAEy8G,QAAQY,sBAAsBzoH,GAAG,OAAOkB,GAAGO,IAAIzB,EAAEyB,EAAE4U,eAAerW,IAAIc,GAAGI,EAAEuuH,eAAe,SAAS1iH,GAAG,IAAI7L,EAAE,CAAC,GAAGJ,EAAEiM,EAAE/M,GAAE,EAAGyB,EAAEiS,KAAKw0C,oBAAoB,GAAG,iBAAiBzmD,EAAE,MAAM,MAAMsL,EAAE,IAAI,MAAMA,EAAE,IAAIjM,EAAEiM,EAAE+b,OAAO,GAAG,MAAM/b,EAAE,IAAI/M,GAAE,EAAGc,EAAEiM,EAAE+b,OAAO,IAAI5nB,EAAE,GAAG,MAAM6L,EAAE,GAAG7L,EAAE0V,KAAK,GAAG1V,EAAE0V,MAAM,IAAI,MAAM7J,EAAE,GAAGjM,EAAEiM,EAAE+b,OAAO,GAAG,MAAM/b,EAAE,KAAK/M,GAAE,EAAGc,EAAEiM,EAAE+b,OAAO,IAAI5nB,EAAEoW,QAAQlM,EAAEy8G,QAAQS,gBAAgB7mH,EAAEX,EAAEd,KAAK,GAAGkB,EAAEouH,KAAK,SAASviH,GAAG,OAAO2G,KAAKk7G,WAAU,KAAMpiH,OAAOO,GAAGsJ,eAAenV,EAAEquH,WAAW,SAASxiH,GAAG,OAAO2G,KAAKu7G,iBAAgB,KAAMziH,OAAOO,GAAGsJ,eAAenV,EAAEwuH,SAAS,SAAS3iH,GAAG,OAAO2G,KAAK27G,eAAc,KAAM7iH,OAAOO,GAAGsJ,eAAenV,EAAEyuH,GAAG,SAAS5iH,GAAG,OAAO2G,KAAK87G,UAAUziH,IAAI2G,KAAK47G,KAAKviH,IAAI2G,KAAK67G,WAAWxiH,IAAI7L,EAAEm1F,KAAK,SAAStpF,GAAG,IAAI7L,EAAEwS,KAAK,YAAO,IAAS3G,IAAIA,EAAE,IAAIA,EAAEspF,MAAM,SAAStpF,GAAG,OAAO7L,EAAEyuH,GAAG5iH,OAAOA,EAAluI,GAAuuI7L,EAAE2mH,QAAQvnH,EAAEyM,EAAEvN,QAAQ0B,EAAE2mH,SAAS+H,GAAG,SAAS7iH,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE2mH,aAAQ,EAAO,IAAI7nH,EAAEyB,GAAGzB,EAAEc,EAAE,MAAMd,EAAEoB,WAAWpB,EAAE,CAAC6nH,QAAQ7nH,GAAO+B,EAAE,6BAA6BtB,EAAE,CAAC,CAACmlB,KAAK,CAAC,cAAc2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,aAAaO,EAAEW,EAAEomH,QAAQE,cAAc,2BAA2Bh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,SAASO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,kCAAkCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,gBAAgB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,SAASO,EAAEW,EAAEomH,QAAQE,cAAc,2BAA2Bh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,mBAAmB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,gCAAgCO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,2CAA2Ch7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,uBAAuBO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,iCAAiCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,cAAc2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,cAAcO,EAAEW,EAAEomH,QAAQE,cAAc,qCAAqCh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,SAASO,EAAEW,EAAEomH,QAAQE,cAAc,iCAAiCh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,SAASO,EAAEW,EAAEomH,QAAQE,cAAc,iCAAiCh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,eAAeO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,kCAAkCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,cAAc2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,kBAAkBO,EAAEW,EAAEomH,QAAQE,cAAc,sCAAsCh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,cAAc2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,cAAcO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,sCAAsCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,kBAAkB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,WAAWO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,0CAA0Ch7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,YAAYO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,qCAAqCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,WAAW2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,UAAUO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,mCAAmCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,YAAYO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,qCAAqCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,YAAYO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,qCAAqCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,mBAAmB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,UAAUO,EAAEW,EAAEomH,QAAQE,cAAc,2CAA2Ch7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,cAAc2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,iBAAiBqlB,KAAK7Y,GAAG,kBAAkB,cAAcjM,EAAEW,EAAEomH,QAAQE,cAAc,kDAAkDh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,iBAAiB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,qBAAqBO,EAAEW,EAAEomH,QAAQE,cAAc,iCAAiCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,YAAY2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,kBAAkBO,EAAEW,EAAEomH,QAAQE,cAAc,2BAA2Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,kBAAkB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,kBAAkBO,EAAEW,EAAEomH,QAAQG,eAAe,mCAAmCj7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,YAAY2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,WAAWO,EAAEW,EAAEomH,QAAQE,cAAc,6BAA6Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,cAAc2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,aAAaO,EAAEW,EAAEomH,QAAQE,cAAc,+BAA+Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,YAAYO,EAAEW,EAAEomH,QAAQE,cAAc,qCAAqCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,SAAS2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,eAAeO,EAAEW,EAAEomH,QAAQE,cAAc,0BAA0Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,YAAY2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,aAAaO,EAAEW,EAAEomH,QAAQE,cAAc,+BAA+Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,YAAYO,EAAEW,EAAEomH,QAAQE,cAAc,8BAA8Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,sBAAsB,gBAAgB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,cAAcO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,qCAAqCh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,mBAAmB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,iBAAiBO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,IAAItL,EAAEomH,QAAQE,cAAc,0CAA0Ch7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,SAAS2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,QAAQO,EAAEW,EAAEomH,QAAQE,cAAc,4BAA4Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,SAASO,EAAEW,EAAEomH,QAAQE,cAAc,0CAA0Ch7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,YAAYO,EAAEW,EAAEomH,QAAQE,cAAc,qCAAqCh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,4BAA4B2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,WAAWO,EAAEW,EAAEomH,QAAQE,cAAc,oDAAoDh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,YAAYO,EAAEW,EAAEomH,QAAQE,cAAc,qCAAqCh7G,IAAItL,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,sBAAsB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,UAAUO,EAAEW,EAAEomH,QAAQE,cAAc,2CAA2Ch7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,QAAQ2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,iBAAiBO,EAAEW,EAAEomH,QAAQE,cAAc,6BAA6Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,SAAS7Y,GAAG,IAAI7L,GAAG6L,EAAE6Y,KAAK,iBAAiB9kB,EAAEiM,EAAE6Y,KAAK,YAAY,OAAO1kB,GAAGJ,GAAGytH,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,mBAAmBO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,kBAAkB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,iBAAiBO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,uBAAuB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAK,UAAUO,EAAEW,EAAEomH,QAAQE,cAAchmH,EAAEgL,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,OAAO2oG,SAAS,SAASxhH,GAAG,IAAI7L,GAAG,IAAI6L,EAAEwjB,OAAO,OAAO,yBAAyB,eAAe,MAAM,CAAChwB,KAAKkB,EAAEomH,QAAQE,cAAc7mH,EAAE6L,GAAG06C,QAAQhmD,EAAEomH,QAAQG,eAAe9mH,EAAE6L,OAAO7L,EAAE2mH,QAAQpnH,EAAEsM,EAAEvN,QAAQ0B,EAAE2mH,SAASgI,GAAG,SAAS9iH,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE2mH,aAAQ,EAAO,IAAI7nH,EAAEyB,GAAGzB,EAAEc,EAAE,MAAMd,EAAEoB,WAAWpB,EAAE,CAAC6nH,QAAQ7nH,GAAG+B,EAAEjB,EAAE,IAAQL,EAAE,CAAC,CAACmlB,KAAK,CAAC,aAAa2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,wBAAwBh7G,GAAG,MAAM,CAACxM,KAAKwB,EAAE8mH,OAAO0B,KAAK9iE,QAAQvmD,KAAK,CAAC0kB,KAAK,CAAC,kBAAkB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,yCAAyCh7G,GAAG,MAAM,CAACxM,KAAKwB,EAAE8mH,OAAOkE,aAAatlE,QAAQvmD,KAAK,CAAC0kB,KAAK,CAAC,YAAY2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,iCAAiCh7G,GAAGjM,EAAEW,EAAEomH,QAAQK,sBAAsBhnH,GAAG,MAAM,CAACX,KAAKwB,EAAE8mH,OAAOmE,QAAQvlE,QAAQvmD,EAAE4uH,YAAYhvH,KAAK,CAAC8kB,KAAK,CAAC,cAAc2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,6BAA6Bh7G,GAAGuI,QAAQ,SAAS,KAAKxU,EAAEW,EAAEomH,QAAQM,oBAAoBjnH,GAAGlB,EAAE,CAACO,KAAKwB,EAAE8mH,OAAOoE,MAAMxlE,QAAQvmD,GAAG,OAAOJ,IAAId,EAAE8vH,YAAYhvH,GAAGd,IAAI,CAAC4lB,KAAK,CAAC,uBAAuB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,qCAAqCh7G,GAAGuI,QAAQ,SAAS,KAAK,MAAM,CAAC/U,KAAKwB,EAAE8mH,OAAOqE,IAAIzlE,QAAQvmD,KAAK,CAAC0kB,KAAK,SAAS7Y,GAAG,IAAI7L,GAAG6L,EAAE6Y,KAAK,iBAAiB9kB,EAAEiM,EAAE6Y,KAAK,YAAY,OAAO1kB,GAAGJ,GAAGytH,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,8BAA8Bh7G,GAAGjM,EAAEW,EAAEomH,QAAQO,sBAAsBlnH,GAAGlB,EAAE,CAACO,KAAKwB,EAAE8mH,OAAOsE,QAAQ1lE,QAAQvmD,GAAG,OAAOJ,IAAId,EAAE8vH,YAAYhvH,GAAGd,IAAI,CAAC4lB,KAAK,CAAC,mBAAmB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,mCAAmCh7G,GAAGjM,EAAE,CAACP,KAAKwB,EAAE8mH,OAAOuE,OAAO,OAAOlsH,GAAGA,EAAE+I,SAASnJ,EAAE2mD,QAAQvmD,GAAGJ,IAAI,CAAC8kB,KAAK,CAAC,sBAAsB,gBAAgB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,kCAAkCh7G,IAAItL,EAAEomH,QAAQE,cAAc,mCAAmCh7G,IAAItL,EAAEomH,QAAQE,cAAc,aAAah7G,GAAG,MAAM,CAACxM,KAAKwB,EAAE8mH,OAAOG,WAAWvhE,QAAQvmD,KAAK,CAAC0kB,KAAK,CAAC,SAAS2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,uBAAuBh7G,GAAG,MAAM,CAACxM,KAAKwB,EAAE8mH,OAAOE,KAAKthE,QAAQvmD,KAAK,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,2BAA2Bh7G,GAAG,MAAM,CAACxM,KAAKwB,EAAE8mH,OAAOuB,MAAM3iE,QAAQvmD,KAAK,CAAC0kB,KAAK,CAAC,UAAU2oG,SAAS,WAAW,MAAM,CAAChuH,KAAKwB,EAAE8mH,OAAOwE,SAAS,CAACznG,KAAK,CAAC,QAAQ2oG,SAAS,WAAW,MAAM,CAAChuH,KAAKwB,EAAE8mH,OAAOyE,YAAY,CAAC1nG,KAAK,CAAC,iBAAiB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,mCAAmCh7G,GAAG,MAAM,CAACxM,KAAKwB,EAAE8mH,OAAO0E,aAAa9lE,QAAQvmD,MAAMA,EAAE2mH,QAAQpnH,EAAEsM,EAAEvN,QAAQ0B,EAAE2mH,SAASkI,GAAG,SAAShjH,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE2mH,aAAQ,EAAO,IAAI7nH,EAAEyB,GAAGzB,EAAEc,EAAE,MAAMd,EAAEoB,WAAWpB,EAAE,CAAC6nH,QAAQ7nH,GAAG+B,EAAEjB,EAAE,IAAQL,EAAE,CAAC,CAACmlB,KAAK,CAAC,cAAc2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK,MAAMq1G,OAAO,YAAY,CAACpqG,KAAK,CAAC,WAAW2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,aAAah7G,IAAI,OAAOjM,EAAE,CAAC6Z,KAAK5Y,EAAE+mH,cAAc+D,OAAOmD,OAAO,UAAU,OAAO9uH,IAAIJ,EAAEmvH,MAAM/uH,GAAGJ,IAAI,CAAC8kB,KAAK,CAAC,2BAA2B2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc8D,OAAOoD,OAAO,WAAW,CAACpqG,KAAK,CAAC,SAAS2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc8D,OAAOoD,OAAO,QAAQC,MAAM,UAAU,CAACrqG,KAAK,CAAC,eAAe2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc8D,OAAOoD,OAAO,SAASC,MAAM,sBAAsB,CAACrqG,KAAK,CAAC,SAAS2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc8D,OAAOoD,OAAO,YAAY,CAACpqG,KAAK,CAAC,kBAAkB2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc8D,UAAU,CAAChnG,KAAK,SAAS7Y,GAAG,IAAI7L,EAAE6L,EAAE6Y,KAAK,gBAAgB9kB,EAAEiM,EAAE6Y,KAAK,uBAAuB,OAAO1kB,IAAIJ,GAAGytH,SAAS,SAASxhH,GAAG,IAAI7L,EAAEO,EAAEomH,QAAQE,cAAc,iBAAiBh7G,GAAG,MAAM,CAAC4N,KAAK5Y,EAAE+mH,cAAc+D,OAAOmD,OAAO,QAAQC,MAAM/uH,KAAK,CAAC0kB,KAAK,CAAC,mBAAmB,iBAAiB2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc+D,OAAOmD,OAAO,WAAW,CAACpqG,KAAK,CAAC,aAAa2oG,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc+D,UAAU,CAACjnG,KAAK,SAAS7Y,GAAG,MAAM,eAAeA,EAAEk7C,gBAAe,IAAKsmE,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc+D,OAAOmD,OAAO,gBAAgB,CAACpqG,KAAK,SAAS7Y,GAAG,MAAM,SAASA,EAAEk7C,gBAAe,IAAKsmE,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc+D,UAAU,CAACjnG,KAAK,SAAS7Y,GAAG,MAAM,kBAAkBA,EAAEk7C,kBAAkBsmE,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc+D,OAAOmD,OAAO,eAAe,CAACpqG,KAAK,SAAS7Y,GAAG,IAAI7L,EAAE+rB,OAAOzgB,OAAOO,EAAE8hH,gBAAgBp4G,MAAM,KAAK,IAAI,MAAM,YAAY1J,EAAE6hH,WAAU,IAAK1tH,GAAG,GAAGqtH,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc8D,UAAU,CAAChnG,KAAK,SAAS7Y,GAAG,MAAM,YAAYA,EAAE6hH,WAAU,IAAKL,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAc+D,UAAU,CAACjnG,KAAK,SAAS7Y,GAAG,MAAM,UAAUA,EAAE6hH,WAAU,IAAKL,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAch3E,QAAQk+E,OAAO,WAAW,CAACpqG,KAAK,SAAS7Y,GAAG,MAAM,YAAYA,EAAE6hH,WAAU,IAAKL,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAch3E,WAAW,CAAClsB,KAAK,SAAS7Y,GAAG,MAAM,UAAUA,EAAE6hH,WAAU,IAAKL,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAch3E,WAAW,CAAClsB,KAAK,SAAS7Y,GAAG,MAAM,kBAAkBA,EAAE6hH,WAAU,IAAKL,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAcgE,MAAM,CAAClnG,KAAK,SAAS7Y,GAAG,MAAM,SAASA,EAAE6hH,WAAU,IAAKL,SAAS,WAAW,MAAM,CAAC5zG,KAAK5Y,EAAE+mH,cAAcgE,OAAO5rH,EAAE2mH,QAAQpnH,EAAEsM,EAAEvN,QAAQ0B,EAAE2mH,SAASqI,GAAG,SAASnjH,EAAE7L,EAAEJ,GAAG,aAAaI,EAAEE,YAAW,EAAGF,EAAE2mH,aAAQ,EAAO,IAAI7nH,EAAEyB,GAAGzB,EAAEc,EAAE,MAAMd,EAAEoB,WAAWpB,EAAE,CAAC6nH,QAAQ7nH,GAAG+B,EAAEjB,EAAE,IAAQL,EAAE,CAAC,CAACmlB,KAAK,SAAS7Y,GAAG,MAAM,mBAAmBA,EAAEk7C,gBAAe,IAAKsmE,SAAS,SAASxhH,GAAG,GAAG,WAAW6Y,KAAK7Y,GAAG,MAAM,CAACxM,KAAKwB,EAAE6mH,WAAW6E,OAAO,IAAIvsH,EAAEO,EAAEomH,QAAQE,cAAc,0BAA0Bh7G,GAAG,MAAM,CAACxM,KAAKwB,EAAE6mH,WAAW4E,SAAS/lE,QAAQvmD,KAAK,CAAC0kB,KAAK,CAAC,YAAY2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAKwB,EAAE6mH,WAAW8E,SAAS5sH,EAAEW,EAAEomH,QAAQE,cAAc,6BAA6Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,SAAS7Y,GAAG,OAAOA,EAAE6Y,KAAK,YAAY2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAKwB,EAAE6mH,WAAW+E,QAAQ7sH,EAAEW,EAAEomH,QAAQE,cAAc,4BAA4Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,SAAS7Y,GAAG,IAAI7L,EAAE6L,EAAE6Y,KAAK,UAAU9kB,EAAEiM,EAAE6Y,KAAK,eAAe,OAAO1kB,IAAIJ,GAAGytH,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAKwB,EAAE6mH,WAAWgF,OAAO9sH,EAAEW,EAAEomH,QAAQE,cAAc,2BAA2Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,IAAI,CAAC0kB,KAAK,CAAC,4BAA4B2oG,SAAS,WAAW,MAAM,CAAChuH,KAAKwB,EAAE6mH,WAAW6E,SAAS,CAAC7nG,KAAK,CAAC,mBAAmB2oG,SAAS,SAASxhH,GAAG,IAAI7L,EAAE,CAACX,KAAKwB,EAAE6mH,WAAWiF,QAAQ/sH,EAAEW,EAAEomH,QAAQE,cAAc,4BAA4Bh7G,GAAG,OAAOjM,IAAII,EAAEumD,QAAQ3mD,GAAGI,KAAKA,EAAE2mH,QAAQpnH,EAAEsM,EAAEvN,QAAQ0B,EAAE2mH,Y,0vBCU3+vB,MAGMl2F,EAASF,oBAAUM,GAoVV,QAxSf,MAIIpoB,cACI+J,KAAKqI,QAQTA,QAOIrI,KAAK+kF,UAAW,EAMhB/kF,KAAKy8G,kBAAoB,IAAI37F,IAO7B9gB,KAAK4wD,MAAQ,GAMb5wD,KAAK08G,oBAAsB,GAO3B18G,KAAK28G,eAAiB,GAEtB38G,KAAKimC,uBAAuB,CACxB,WAAczL,UAAUsZ,UACxB,aAAgBh0B,IAAQm1B,YAOhCjyB,UACI/E,EAAO9Y,KAAK,mCAERnF,KAAKy8G,mBAAqBz8G,KAAKy8G,kBAAkBx5F,KAAO,GACxDjjB,KAAKy8G,kBAAkBrtG,QAAQ7K,IACI,mBAApBA,EAAQye,SACfze,EAAQye,YAKpBhjB,KAAK48G,qBAAqB,IAC1B58G,KAAK+kF,UAAW,EAQpB63B,qBAAqBzzG,GACjB,GAAInJ,KAAK+kF,SACL,OAGJ/kF,KAAKy8G,kBAAoB,IAAI37F,IAAI3X,GAEjCnJ,KAAK68G,qBAGL,MAAMjsD,EAAQ5wD,KAAK4wD,MAEnB5wD,KAAK4wD,MAAQ,KACTA,GACAA,EAAMxhD,QAAQiY,GAASrnB,KAAK88G,WAAWz1F,IAS/Cw1F,qBACI78G,KAAKy8G,kBAAkBrtG,QAAQ7K,IAC3B,IACIA,EAAQw4G,kBAAkB/8G,KAAK08G,qBACjC,MAAO13G,GACLiZ,EAAO9Y,KAAK,uEACiBH,MAezCihC,uBAAuB3e,GACnBtnB,KAAK08G,oBAAL,OACO18G,KAAK08G,qBACLp1F,GAGPtnB,KAAK68G,qBAQTG,kBAAkBnwH,GACdmT,KAAK28G,eAAiB9vH,EACtBmT,KAAKimC,uBAAuB,CAAE,gBAAmBp5C,IAgBrDk6B,UAAUU,EAAWH,EAAa,IAC9B,GAAItnB,KAAK+kF,SACL,OAGJ,IAAI19D,EAAQ,KAEa,iBAAdI,EACPJ,EAAQ,CACJpgB,KAAMgiB,IACNuB,OAAQ/C,EACRgD,cAAehD,EACfsD,OAAQtD,EACRxqB,WAAYqqB,GAEY,iBAAdG,IACdJ,EAAQI,GAGPznB,KAAKi9G,sBAAsB51F,GAOhCrnB,KAAK88G,WAAWz1F,GANZpJ,EAAOjZ,MACF,mCAAkC4H,KAAKwL,UAAUiP,IAoB9D41F,sBAAsB51F,GAClB,IAAKA,EACD,OAAO,EAGNA,EAAMpgB,OACPogB,EAAMpgB,KAAOgiB,KAGjB,MAAMhiB,EAAOogB,EAAMpgB,KAEnB,OAAIA,IAASgiB,KAAoBhiB,IAASiiB,KACnCjiB,IAASmiB,KAAWniB,IAASkiB,KAChClL,EAAOjZ,MAAO,uBAAsBiC,IAE7B,GAGPA,IAASiiB,IACFyP,QAAQtR,EAAMx6B,OAKzBw6B,EAAMmD,OAASnD,EAAMmD,QAAUnD,EAAMx6B,MAAQw6B,EAAMoD,cACnDpD,EAAMoD,cAAgBpD,EAAMoD,eAAiBpD,EAAMx6B,MAAQw6B,EAAMmD,OACjEnD,EAAM0D,OAAS1D,EAAM0D,QAAU1D,EAAMx6B,MAAQw6B,EAAMmD,QAC5CnD,EAAMoD,cAERpD,EAAMmD,QAAWnD,EAAMoD,eAAkBpD,EAAM0D,UAQhD9jB,IAASkiB,MACT9B,EAAM61F,WAAa71F,EAAM61F,YAAc,sBACvC71F,EAAM81F,cAAgB91F,EAAM81F,eAAiB,aACjB,eAAxB91F,EAAM81F,eAAmC91F,EAAM3B,cAC/C2B,EAAM3B,YAAc1lB,KAAK28G,gBAIxBt1F,EAAM61F,YAAe71F,EAAM+1F,UACxB/1F,EAAM81F,eAAkB91F,EAAM3B,gBAClCzH,EAAOjZ,MACH,gFAGG,IArBXiZ,EAAOjZ,MACH,6DAEG,IAgCfq4G,iBAAiBh2F,GACb,QAAIrnB,KAAK4wD,QACL5wD,KAAK4wD,MAAM1tD,KAAKmkB,GAIZrnB,KAAK4wD,MAAMr6D,OAxTJ,KAyTPyJ,KAAK4wD,MAAM3sD,OAAO,EAAG,IAGlB,GAYf64G,WAAWz1F,GACHrnB,KAAKq9G,iBAAiBh2F,IAGtBrnB,KAAKy8G,kBAAkBrtG,QAAQ7K,IAC3B,IACIA,EAAQwiB,UAAUM,GACpB,MAAOhuB,GACL4kB,EAAO9Y,KAAM,kCAAiC9L,U,mFCzVlE,yEAKA,MAAM4kB,EAASF,oBAAUM,GAUlB,MAAMqE,EAOTzsB,YAAY01C,EAAS2xE,GACjBt9G,KAAKwf,aAAemsB,EACpB3rC,KAAKu9G,UAAY,EACjBv9G,KAAKw9G,YAAc,EACnBx9G,KAAKy9G,yBAA2BH,EAChCt9G,KAAKwmB,MAAQ,IAAIw5B,IAQrBl9B,oBACI,MAAO,CACH46F,kBA9BI,GA8Be19G,KAAKwmB,MAAM25B,cAAwB8hC,QAAQ,GAC9D07B,cAAe39G,KAAKw9G,aAS5B56F,gBAEI5iB,KAAK49G,qBAAuBvvE,IACxB,MAAMie,EAAUje,EAAKwvE,aAErB,IAAK,MAAMC,KAAQxxD,EACftsD,KAAKu9G,YACLv9G,KAAKw9G,YAAcpyG,KAAKgpB,IAAIp0B,KAAKw9G,YAAaM,EAAKjS,UAAU5pB,QAAQ,IAK7EhkE,EAAO/Y,KAAK,6DACZlF,KAAK+9G,SAAW,IAAIvK,oBAAoBxzG,KAAK49G,sBAC7C59G,KAAK+9G,SAASC,QAAQ,CAAE/2G,KAAM,WAC1Bg3G,UAAU,IACd,MAAMtiB,EAAYxzF,KAAKgM,MAGvBnU,KAAKk+G,oBAAsB5hF,YAAY,KACnC,MAAMnoB,EAAMhM,KAAKgM,MACX+sE,EAAWlhF,KAAKm+G,gBACfhqG,EAAMnU,KAAKm+G,gBA/DR,KAgEHhqG,EAAMwnF,GAhEH,IAiEJR,EAAOn7F,KAAKu9G,UAAYr8B,EAE9BlhF,KAAKwmB,MAAM05B,QAAQi7C,GACnBn7F,KAAKwf,aAAa0D,KACdtB,IAAmC5hB,KAAK8iB,qBAG5C9iB,KAAKu9G,UAAY,EACjBv9G,KAAKm+G,eAAiBh2G,KAAKgM,OAC5BnU,KAAKy9G,0BAOZ56F,eACI7iB,KAAK+9G,UAAY/9G,KAAK+9G,SAASxuG,aAC/BvP,KAAK49G,qBAAuB,KACxB59G,KAAKk+G,sBACL5jF,cAAct6B,KAAKk+G,qBACnBl+G,KAAKk+G,oBAAsB,U,2FC7FvC,uFAOA,MAAMtmF,EAAuBxa,EAAQ,IAE/Ba,EAASF,oBAAUM,GAMnB+/F,EAAuB,GA6D7B,SAASC,EAAoBC,EAAaC,GACtC,OAAKA,GAAgBA,GAAgB,IACzBD,GAAeA,GAAe,EAC/B,EAGJlzG,KAAKozG,MAAOF,EAAcC,EAAgB,KAOrD,SAASE,IACLz+G,KAAK0+G,KAAO,GACZ1+G,KAAK2+G,QAAU,CACX5hB,SAAU,EACV6hB,OAAQ,GAEZ5+G,KAAKq2B,WAAa,GAClBr2B,KAAK6+G,UAAY,EACjB7+G,KAAKwyB,MAAQ,GAqDjB,SAASssF,IAML9+G,KAAKk4B,UAAY,GAMjBl4B,KAAK2+G,QAAU,GAMf3+G,KAAK++G,WAAa,KAMlB/+G,KAAK4d,UAAY,GAkBN,SAASohG,EAChBh+F,EACAL,EACA28F,EACA99F,GAgBJxf,KAAKi/G,aAAen/F,IAAQm1B,UAC5B,MAAM1vC,EAAO64G,EAAqBp+G,KAAKi/G,cAEvC,IAAK15G,EAED,KAAO,qBAAoBvF,KAAKi/G,iCAOpCj/G,KAAKk/G,qBACCp/F,IAAQyV,YAAczV,IAAQsQ,YAUpCpwB,KAAKm/G,cACCn/G,KAAKk/G,qBACDl/G,KAAKo/G,6BAA6B75G,GAClCvF,KAAKq/G,0BAA0B95G,GAEzCvF,KAAKghB,eAAiBA,EACtBhhB,KAAKs/G,0BAA4B,KACjCt/G,KAAKu/G,yBAA2B,KAChCv/G,KAAKw/G,mBAAqB,KAC1Bx/G,KAAKy/G,oBAAsB,KAC3Bz/G,KAAK0/G,wBAA0B,GAC/B1/G,KAAK2/G,sBAAwB,KAC7B3/G,KAAKwf,aAAeA,EACpBxf,KAAK4/G,gBAAkB,IAAId,EAG3B9+G,KAAK6/G,yBAA2Bl/F,EAEhC3gB,KAAK8/G,gBAAkB,KACvB9/G,KAAK+/G,mBAAqBzC,EAM1Bt9G,KAAKggH,WAAa,IAAIzgG,IAnP1B6+F,EAAqB6B,IAAS5sE,SAAW,CACrC,KAAQ,OACR,gBAAmB,kBACnB,YAAe,cACf,YAAe,cACf,cAAiB,gBACjB,UAAa,YACb,cAAiB,gBACjB,GAAM,UACN,KAAQ,OACR,SAAY,YAEhB+qE,EAAqB6B,IAAS9sE,QAAU,CACpC,iBAAoB,gCACpB,cAAiB,6BACjB,cAAiB,oBACjB,cAAiB,oBACjB,aAAgB,mBAChB,iBAAoB,uBACpB,KAAQ,OACR,gBAAmB,kBACnB,YAAe,cACf,YAAe,cACf,cAAiB,gBACjB,UAAa,YACb,cAAiB,gBACjB,wBAA2B,0BAC3B,uBAA0B,yBAC1B,oBAAuB,sBACvB,mBAAsB,qBACtB,sBAAyB,wBACzB,kBAAqB,oBACrB,gBAAmB,kBACnB,iBAAoB,mBACpB,qBAAwB,UACxB,oBAAuB,0BACvB,mBAAsB,yBACtB,GAAM,KACN,KAAQ,OACR,SAAY,YAEhBirE,EAAqB6B,IAAS7sE,OACxBgrE,EAAqB6B,IAAS9sE,QACpCirE,EAAqB6B,IAASzsE,MACxB4qE,EAAqB6B,IAAS9sE,QACpCirE,EAAqB6B,IAASxsE,UACxB2qE,EAAqB6B,IAAS9sE,QACpCirE,EAAqB6B,IAAS1sE,QACxB6qE,EAAqB6B,IAAS9sE,QACpCirE,EAAqB6B,IAASvsE,cACxB0qE,EAAqB6B,IAAS9sE,QAqCpCsrE,EAAUvwH,UAAUgyH,QAAU,SAASxB,GACnC1+G,KAAK0+G,KAAOA,GAAQ,IAOxBD,EAAUvwH,UAAUiyH,cAAgB,SAAS9pF,GACzCr2B,KAAKq2B,WAAaA,GAAc,IAQpCooF,EAAUvwH,UAAUkyH,WAAa,SAASzB,GACtC3+G,KAAK2+G,QAAQ5hB,UAAY4hB,EAAQ5hB,SACjC/8F,KAAK2+G,QAAQC,QAAUD,EAAQC,QAOnCH,EAAUvwH,UAAUmyH,aAAe,WAC/BrgH,KAAK2+G,QAAQ5hB,SAAW,EACxB/8F,KAAK2+G,QAAQC,OAAS,GAO1BH,EAAUvwH,UAAUoyH,aAAe,SAASzB,GACxC7+G,KAAK6+G,UAAYA,GAAa,GAGlCJ,EAAUvwH,UAAUqyH,SAAW,SAAS/tF,GACpCxyB,KAAKwyB,MAAQA,GAAS,IA4H1BwsF,EAAe9wH,UAAU01B,KAAO,WACxB5jB,KAAK2/G,wBACLrlF,cAAct6B,KAAK2/G,uBACnB3/G,KAAK2/G,sBAAwB,MAG7B3/G,KAAK8/G,kBACLxlF,cAAct6B,KAAK8/G,iBACnB9/G,KAAK8/G,gBAAkB,OAQ/Bd,EAAe9wH,UAAUiqE,cAAgB,SAASnzD,GAC9C4yB,EAAqBC,iBAAiB7yB,GACtCiZ,EAAOjZ,MAAM,kBAAmBA,GAChChF,KAAK4jB,QAMTo7F,EAAe9wH,UAAU6uB,MAAQ,SAASyjG,GAClCA,IACI1gG,IAAQ0mE,yBACRvoE,EAAO/Y,KAAK,6DAEhBlF,KAAK2/G,sBAAwBrjF,YACzB,KACI,GAAIxc,IAAQ0mE,wBAAyB,CACjC,MAAMi6B,EAAczgH,KAAKghB,eAAe0/F,iBAExC,IAAK,MAAM17F,KAAQy7F,EACf,GAAIA,EAAYtyH,eAAe62B,GAAO,CAGlC,MAAM2jB,EAAiC,IAApB83E,EAAYz7F,GAE/BhlB,KAAKwf,aAAa0D,KACdtB,IACA5hB,KAAKghB,eACLzH,OAAOjB,SAAS0M,EAAM,IACtB2jB,GACA,SAKZ3oC,KAAKghB,eAAeuvF,SAChBrrD,IACI,IAAIs0C,EAAU,KAMVA,EAJCt0C,GAAWA,EAAOz/C,QACS,mBAAlBy/C,EAAOz/C,OAGPy/C,EAAOz/C,SAFPy/C,EAIdllD,KAAKu/G,yBAA2B/lB,EAC5Bx5F,KAAKk/G,qBACLl/G,KAAK2gH,6BAEL3gH,KAAK4gH,0BAGT5gH,KAAKs/G,0BACCt/G,KAAKu/G,0BAEfv6G,GAAShF,KAAKm4D,cAAcnzD,KAIxChF,KAAK6/G,2BAIb7/G,KAAK8/G,gBAAkBxjF,YACnB,KAEIt8B,KAAKghB,eAAeuvF,SAChBrrD,IACI,IAAIs0C,EAAU,KAQVA,EANCt0C,GAAWA,EAAOz/C,QACS,mBAAlBy/C,EAAOz/C,OAKPy/C,EAAOz/C,SAHPy/C,EAMdllD,KAAKw/G,mBAAqBhmB,EAC1B,IACQx5F,KAAKk/G,qBACLl/G,KAAK6gH,wBAEL7gH,KAAK8gH,qBAEX,MAAOznH,GACLu+B,EAAqBC,iBAAiBx+B,GACtC4kB,EAAOjZ,MAAO,mBAAkB3L,EAAKA,GAGzC2G,KAAKy/G,oBAAsBz/G,KAAKw/G,oBAEpCx6G,GAAShF,KAAKm4D,cAAcnzD,KAGpChF,KAAK+/G,qBAYbf,EAAe9wH,UAAUmxH,0BAA4B,SAAS95G,GAkB1D,IAAIw7G,EAEJ,OAAQ/gH,KAAKi/G,cACb,KAAKgB,IAAS9sE,OACd,KAAK8sE,IAAS7sE,MACd,KAAK6sE,IAASzsE,KACd,KAAKysE,IAASxsE,SAQVstE,EAAgB,CAACxtF,EAAM1lC,IAAQ0lC,EAAKytF,KAAKnzH,GACzC,MACJ,KAAKoyH,IAASvsE,aAIVqtE,EAAgB,SAASxtF,EAAM1lC,GAC3B,IAAIN,EAaJ,OAXAgmC,EAAKnQ,OAAOu/D,KAAKl5B,KACTA,EAAKt7D,eAAeN,KACpBN,EAAQk8D,EAAK57D,IAEN,IAORN,GAEX,MACJ,QACIwzH,EAAgB,CAACxtF,EAAM1lC,IAAQ0lC,EAAK1lC,GAMxC,MAAO,CAAC0lC,EAAM1mC,IAASk0H,EAAcxtF,EA1DjB,SAAS1mC,GACzB,MAAMgB,EAAM0X,EAAK1Y,GAEjB,GAAIgB,EACA,OAAOA,EAIX,KAAO,iBAAgBhB,sBAkDgBo0H,CAAYp0H,KAW3DmyH,EAAe9wH,UAAUgzH,mBAAqB,SAASh8D,EAAQr4D,GAC3D,IAAIU,EAAQyS,KAAKm/G,cAAcj6D,EAAQr4D,GAMvC,MAJqB,iBAAVU,IACPA,EAAQgsB,OAAOhsB,IAGfmsB,MAAMnsB,GACC,EAGJ6d,KAAKgpB,IAAI,EAAG7mC,IAQvByxH,EAAe9wH,UAAU4yH,mBAAqB,WAC1C,IAAK9gH,KAAKy/G,oBACN,OAGJ,MAAM0B,EAAenhH,KAAKm/G,cACpBiC,EAAgB,GAEtB,IAAK,MAAMxxE,KAAO5vC,KAAKw/G,mBAAoB,CACvC,IAAKx/G,KAAKw/G,mBAAmBrxH,eAAeyhD,GACxC,SAEJ,MAAMz7B,EAAMnU,KAAKw/G,mBAAmB5vE,GAGpC,IAAKz7B,EACD,SAGJ,IACI,MAAMktG,EAAmBF,EAAahtG,EAAK,oBACrCmtG,EAAgBH,EAAahtG,EAAK,kBAEpCktG,GAAoBC,KACpBthH,KAAK4/G,gBAAgB1nF,UAAY,CAC7B,SAAY9sB,KAAKozG,MAAM6C,EAAmB,KAC1C,OAAUj2G,KAAKozG,MAAM8C,EAAgB,OAG/C,MAAOjoH,IAET,GAAiB,sBAAb8a,EAAIlN,KAA8B,CAClC,IAAIq/E,EAAQz3D,EAAI0yF,EAAoBC,EAChCC,EAAqBp2F,EAAKpkB,EAE9B,IAEI,GADAq/E,EAAS66B,EAAahtG,EAAK,qBACtBmyE,EACD,SAGJz3D,EAAKsyF,EAAahtG,EAAK,iBACvBlN,EAAOk6G,EAAahtG,EAAK,iBACzBqtG,EAAUL,EAAahtG,EAAK,gBAC5BotG,EAAqBJ,EAAahtG,EAAK,sBACvCstG,EAAsBN,EAAahtG,EAAK,uBACxCkX,EAAMrrB,KAAKkhH,mBAAmB/sG,EAAK,wBACrC,MAAO9a,IACT,IAAKw1B,IAAO5nB,IAASu6G,GAAsB,SAAXl7B,EAC5B,SAIJ,MAAMo7B,EAA2B1hH,KAAK4/G,gBAAgBhiG,UAEjD8jG,EAAyB/+B,KACtBn1F,GACIA,EAAEqhC,KAAOA,GACFrhC,EAAEyZ,OAASA,GACXzZ,EAAEg0H,UAAYA,IAC7BE,EAAyBx+G,KAAK,CAC1B2rB,KACA5nB,OACAu6G,UACArjE,IAAKn+C,KAAKghB,eAAe8kB,MACzBy7E,qBACAE,sBACAp2F,QAGR,SAGJ,GAAiB,kBAAblX,EAAIlN,KAA0B,CAE9B,GAAkB,cAAdkN,EAAI84B,QAA0B94B,EAAIwtG,SAClC,SAGJ,MAAMC,EAAQ5hH,KAAKw/G,mBAAmBrrG,EAAI0tG,kBACpCC,EAAS9hH,KAAKw/G,mBAAmBrrG,EAAI4tG,mBAE3C/hH,KAAK4/G,gBAAgBhiG,UAAU1a,KAAK,CAChC2rB,GAAK,GAAEizF,EAAOE,aAAaF,EAAOG,aAClCh7G,KAAM26G,EAAMhkG,UACZ4jG,QAAU,GAAEI,EAAMI,aAAaJ,EAAMK,aACrC9jE,IAAKn+C,KAAKghB,eAAe8kB,MACzBy7E,mBAAoBK,EAAMM,cAC1BT,oBAAqBK,EAAOI,gBAIpC,GAAiB,SAAb/tG,EAAIlN,MAAgC,gBAAbkN,EAAIlN,MACX,eAAbkN,EAAIlN,MAAsC,UAAbkN,EAAIlN,KACpC,SAGJ,MAAMk7G,EAASniH,KAAKy/G,oBAAoB7vE,GACxC,IAAI5qB,EAAOhlB,KAAKkhH,mBAAmB/sG,EAAK,QAOxC,GAJiB,UAAbA,EAAIlN,MAAoB7Q,MAAMC,QAAQ8d,EAAIiuG,WAC1Cp9F,EAAOzL,OAAOpF,EAAIiuG,QAAQ,MAGzBD,IAAWn9F,EACZ,SAYJ,IAAqB,IAAjB7Q,EAAIkuG,WAA0C,IAArBluG,EAAImuG,aAC7B,SAGJ,IAAIC,EAAYviH,KAAKggH,WAAW7yH,IAAI63B,GAE/Bu9F,IACDA,EAAY,IAAI9D,EAChBz+G,KAAKggH,WAAW5+F,IAAI4D,EAAMu9F,IAG9B,IAAIC,GAAmB,EACnB30H,EAAM,kBACN40H,EAAatB,EAAahtG,EAAKtmB,GAE/B,MAAO40H,GACkC,KAAfA,IAC1BD,GAAmB,EACnB30H,EAAM,cACN40H,EAAatB,EAAahtG,EAAKtmB,GAC3B,MAAO40H,GACPxkG,EAAO9Y,KAAK,oDAGfs9G,GAAcA,EAAa,KAC5BA,EAAa,GAGjB,MAAMC,EAAgB1iH,KAAKkhH,mBAAmBiB,EAAQt0H,GAChD80H,EAAcv3G,KAAKgpB,IAAI,EAAGquF,EAAaC,GAEvCE,EACA5iH,KAAKkhH,mBAAmB/sG,EAAK,eAC7B0uG,EACA7iH,KAAKkhH,mBAAmBiB,EAAQ,eAChCW,EAAkB13G,KAAKgpB,IAAI,EAAGwuF,EAAiBC,GAErDN,EAAUrC,QAAQ,CACd6C,aAAcJ,EAAcG,EAC5BE,YAAaF,EACbN,qBAGJ,MAAMS,EACAjjH,KAAKkhH,mBAAmB/sG,EAAK,iBAC7B+uG,EACAljH,KAAKkhH,mBAAmBiB,EAAQ,iBAChCgB,EACA/3G,KAAKgpB,IAAI,EAAG6uF,EAAmBC,GAErC,IAAIxtB,EAAY,EAGZ0tB,EAAsBjC,EAAahtG,EAAK,aAET,iBAAxBivG,GAC2B,iBAAxBA,IACVA,EAAsB7pG,OAAO6pG,GACxB1pG,MAAM0pG,KACPhC,EAAcp8F,GAAQo+F,EAClBA,EAAsB,IACtB1tB,EAAY0tB,EACNjC,EAAagB,EAAQ,gBAIvCzsB,EAAYtqF,KAAKgpB,IAAI,EAAGshE,GAExB,MAAM2tB,EAASlvG,EAAIq0E,UAAY25B,EAAO35B,UACtC,IAAI86B,EAAsB,EAAGC,EAAkB,EAE3CF,EAAS,IAETC,EAAsBl4G,KAAKozG,MAAuB,EAAhB2E,EAAqBE,GACvDE,EAAkBn4G,KAAKozG,MAAmB,EAAZ9oB,EAAiB2tB,IAGnDd,EAAUnC,WAAW,CACjB,SAAYkD,EACZ,OAAUC,IAGd,MAAMltF,EAAa,CACfnC,OAAQ,KACRqC,MAAO,MAGX,IACI,IAAIrC,EAAQqC,IAEPrC,EAASitF,EAAahtG,EAAK,8BACxBoiB,EAAQ4qF,EAAahtG,EAAK,6BAGtB+f,EAASitF,EAAahtG,EAAK,0BAC/BoiB,EAAQ4qF,EAAahtG,EAAK,0BAH9BkiB,EAAWnC,OAASA,EACpBmC,EAAWE,MAAQA,GAMzB,MAAOl9B,IAGT,IAAIq+B,EAoBAlF,EAlBJ,IACIkF,EAAYypF,EAAahtG,EAAK,0BACvBgtG,EAAahtG,EAAK,sBAAwB,EACnD,MAAO9a,GAGL,IACIq+B,EAAY13B,KAAKkhH,mBAAmB/sG,EAAK,iBAC3C,MAAOhE,KAEboyG,EAAUjC,aAAal1G,KAAKozG,MAAM9mF,GAAa,IAE3CrB,EAAWnC,QAAUmC,EAAWE,MAChCgsF,EAAUpC,cAAc9pF,GAExBksF,EAAUpC,cAAc,MAM5B,IACI3tF,EAAQ2uF,EAAahtG,EAAK,kBAAoB,GAChD,MAAO9a,IAETkpH,EAAUhC,SAAS/tF,GAIvBxyB,KAAKwf,aAAa0D,KACdtB,IAAkC5hB,KAAKghB,eAAgBogG,GAE3DphH,KAAKwjH,yBAMTxE,EAAe9wH,UAAUs1H,sBAAwB,WAE7C,MAAMjF,EAAe,CACjBxhB,SAAU,EACV6hB,OAAQ,GAENN,EAAc,CAChBvhB,SAAU,EACV6hB,OAAQ,GAEZ,IAAI6E,EAAkB,EAClBC,EAAgB,EACpB,MAAMC,EAAc,GACdC,EAAa,GACb7gD,EAAS,GACf,IAAI8gD,EAAuB,EACvBC,EAAqB,EACrBC,EAAa,GACbC,EAAuB,EACvBC,EAAqB,EACrBC,EAAa,GAEjB,IAAK,MAAQl/F,EAAMu9F,KAAeviH,KAAKggH,WAAY,CAE/C,MAAMtB,EAAO6D,EAAU7D,KACjBz3G,EAAOy3G,EAAK8D,iBAAmB,WAAa,SAElDjE,EAAat3G,IAASy3G,EAAKqE,aAC3BzE,EAAYr3G,IAASy3G,EAAKsE,YAG1BS,GAAmBlB,EAAU5D,QAAQ5hB,SACrC2mB,GAAiBnB,EAAU5D,QAAQC,OAGnC,MAAMtgF,EAAQt+B,KAAKghB,eAAe4nB,eAAe5jB,GAEjD,GAAIsZ,EAAO,CACHA,EAAMuK,gBACNg7E,GAAwBtB,EAAU5D,QAAQ5hB,SAC1C+mB,GAAsBvB,EAAU5D,QAAQC,OACxCmF,EAAaxB,EAAU/vF,QAEvBwxF,GAAwBzB,EAAU5D,QAAQ5hB,SAC1CknB,GAAsB1B,EAAU5D,QAAQC,OACxCsF,EAAa3B,EAAU/vF,OAG3B,MAAMrH,EAAgBmT,EAAMq+B,mBAE5B,GAAIxxC,EAAe,CACf,MAAMkL,EAAaksF,EAAUlsF,WAE7B,GAAIA,EAAWE,OACJF,EAAWnC,SACW,IAAtBmC,EAAWE,QACY,IAAvBF,EAAWnC,OAAe,CACjC,MAAMiwF,EAAkBR,EAAYx4F,IAAkB,GAEtDg5F,EAAgBn/F,GAAQqR,EACxBstF,EAAYx4F,GAAiBg5F,EAEjC,GAA4B,IAAxB5B,EAAU1D,UAAiB,CAC3B,MAAMuF,EAAiBR,EAAWz4F,IAAkB,GAEpDi5F,EAAep/F,GAAQu9F,EAAU1D,UACjC+E,EAAWz4F,GAAiBi5F,EAEhC,GAAIL,EAAWxtH,QAAU2tH,EAAW3tH,OAAQ,CACxC,MAAM8tH,EAAY,CACd,MAASN,EACT,MAASG,GAGPI,EAAavhD,EAAO53C,IAAkB,GAE5Cm5F,EAAWt/F,GAAQq/F,EACnBthD,EAAO53C,GAAiBm5F,QAG5BrmG,EAAOjZ,MAAO,iCAAgCs5B,GAItDikF,EAAUlC,eAGdrgH,KAAK4/G,gBAAgBjB,QAAU,CAC3B,OAAU+E,EACV,SAAYD,GAGhBzjH,KAAK4/G,gBAAgBjB,QAAQtpF,MAAQ,CACjC,OAAUyuF,EACV,SAAYD,GAGhB7jH,KAAK4/G,gBAAgBjB,QAAQ1qF,MAAQ,CACjC,OAAUgwF,EACV,SAAYD,GAGhBhkH,KAAK4/G,gBAAgBb,WAAa,CAC9BlyB,MACIwxB,EACIC,EAAYvhB,SAAWuhB,EAAYM,OACnCL,EAAaxhB,SAAWwhB,EAAaK,QAC7C7hB,SACIshB,EAAoBC,EAAYvhB,SAAUwhB,EAAaxhB,UAC3D6hB,OACIP,EAAoBC,EAAYM,OAAQL,EAAaK,SAG7D,MAAM2F,EAAiB,GACvB,IAAIC,EAEJx3H,OAAOuY,KAAKvF,KAAK0/G,yBAAyBtwG,QAAQ4V,IAC9C,MAAM,KAAErrB,EAAF,QAAQ4rB,GAAYvlB,KAAK0/G,wBAAwB16F,GACjDy/F,EAAgB9qH,EAAK+L,OAAO,CAACg/G,EAAKC,IAAiBD,EAAMC,GAAgBhrH,EAAKpD,OAEpF,GAAIgvB,EACAi/F,EAAsBC,MACnB,CACH,MAAMnmF,EAAQt+B,KAAKghB,eAAe4nB,eAAervB,OAAOyL,IAExD,GAAIsZ,EAAO,CACP,MAAMnT,EAAgBmT,EAAMq+B,mBAExBxxC,IACAo5F,EAAep5F,GAAiBs5F,OAKhDzkH,KAAK0/G,wBAA0B,GAE/B1/G,KAAKwf,aAAa0D,KACdtB,IACA5hB,KAAKghB,eACL,CACI,UAAahhB,KAAK4/G,gBAAgB1nF,UAClC,QAAWl4B,KAAK4/G,gBAAgBjB,QAChC,WAAc3+G,KAAK4/G,gBAAgBb,WACnC,WAAc4E,EACd,UAAaC,EACb,MAAS7gD,EACT,UAAa/iE,KAAK4/G,gBAAgBhiG,UAClC4mG,sBACAD,mBAERvkH,KAAK4/G,gBAAgBhiG,UAAY,IAMrCohG,EAAe9wH,UAAU0yH,wBAA0B,WAC/C,IAAK5gH,KAAKs/G,0BACN,OAGJ,MAAM6B,EAAenhH,KAAKm/G,cAE1B,IAAK,MAAMvvE,KAAO5vC,KAAKu/G,yBAA0B,CAC7C,IAAKv/G,KAAKu/G,yBAAyBpxH,eAAeyhD,GAC9C,SAGJ,MAAMz7B,EAAMnU,KAAKu/G,yBAAyB3vE,GAE1C,GAAiB,SAAbz7B,EAAIlN,MAAgC,UAAbkN,EAAIlN,KAC3B,SAGJ,MAAMk7G,EAASniH,KAAKs/G,0BAA0B1vE,GAC9C,IAmBIjH,EAnBA3jB,EAAOhlB,KAAKkhH,mBAAmB/sG,EAAK,QAMxC,IAJK6Q,GAAQ5uB,MAAMC,QAAQ8d,EAAIiuG,WAC3Bp9F,EAAOzL,OAAOpF,EAAIiuG,QAAQ,KAGzBD,EAKL,GAAKn9F,EAAL,CAUA,IACI2jB,EACMw4E,EAAahtG,EAAK,oBACbgtG,EAAahtG,EAAK,oBAC/B,MAAO9a,GAIL,OAHA4kB,EAAO9Y,KAAK,0DACZm1B,cAAct6B,KAAK2/G,uBAKvB,GAAIh3E,EAAY,CACZ,IAAIpjB,EAIAA,EADa,SAAbpR,EAAIlN,MACOk6G,EAAahtG,EAAK,oBAIlBA,EAAImuG,aAQnB35E,GAA0B,MAEpB3jB,KAAQhlB,KAAK0/G,0BACf1/G,KAAK0/G,wBAAwB16F,GAAQ,CACjCO,UACA5rB,KAAM,KAGdqG,KAAK0/G,wBAAwB16F,GAAMrrB,KAAKuJ,KAAKylC,GAE7C3oC,KAAKwf,aAAa0D,KACdtB,IACA5hB,KAAKghB,eACLgE,EACA2jB,EACApjB,SApDCpd,KAAKgM,MAAQA,EAAIq0E,UAAa,KAC/BvqE,EAAO9Y,KAAK,kBANhB8Y,EAAO9Y,KAAQ6f,EAAF,sBAiFzBg6F,EAAe9wH,UAAUkxH,6BAA+B,SAAS75G,GAkB7D,MAAO,CAACguB,EAAM1mC,IAAS0mC,EAdH,SAAS1mC,GACzB,MAAMgB,EAAM0X,EAAK1Y,GAEjB,GAAIgB,EACA,OAAOA,EAIX,KAAO,iBAAgBhB,sBAMCo0H,CAAYp0H,KAU5CmyH,EAAe9wH,UAAU02H,oBAAsB,SAAS/zE,GACpD,IAAItjD,EAAQsjD,EAMZ,MAJqB,iBAAVtjD,IACPA,EAAQgsB,OAAOhsB,IAGfmsB,MAAMnsB,GACC,EAGJ6d,KAAKgpB,IAAI,EAAG7mC,IAavByxH,EAAe9wH,UAAU22H,kBAAoB,SAAS1wG,EAAKguG,EAAQ2C,GAC/D,MAAMC,EAAW/kH,KAAK4kH,oBAAoBzwG,EAAI2wG,IACxCE,EAAchlH,KAAK4kH,oBAAoBzC,EAAO2C,IAC9CG,EAAiB75G,KAAKgpB,IAAI,EAAG2wF,EAAWC,GAExC3B,EAASlvG,EAAIq0E,UAAY25B,EAAO35B,UACtC,IAAI08B,EAAc,EAOlB,OALI7B,EAAS,IAET6B,EAAc95G,KAAKozG,MAAwB,EAAjByG,EAAsB5B,IAG7C6B,GAMXlG,EAAe9wH,UAAU2yH,sBAAwB,WAC7C,IAAK7gH,KAAKy/G,oBACN,OAGJ,MAAM0B,EAAenhH,KAAKm/G,cACpBiC,EAAgB,GAEtBphH,KAAKw/G,mBAAmBpwG,QAAQ+E,IAI5B,GAAiB,mBAAbA,EAAIlN,MACDkN,EAAIgxG,WACU,cAAdhxG,EAAI84B,MAAuB,CAE9B,MAAMm4E,EAA2BjxG,EAAIixG,yBAC/BC,EAA2BlxG,EAAIkxG,0BAEjCD,GAA4BC,KAC5BrlH,KAAK4/G,gBAAgB1nF,UAAY,CAC7B,SAAY9sB,KAAKozG,MAAM4G,EAA2B,KAClD,OAAUh6G,KAAKozG,MAAM6G,EAA2B,OAIxD,MAAMC,EACAtlH,KAAKw/G,mBAAmBryH,IAAIgnB,EAAI4tG,mBAChCwD,EACAvlH,KAAKw/G,mBAAmBryH,IAAIgnB,EAAI0tG,kBAKtC,GAAIyD,GAAuBC,EAAoB,CAC3C,MAEM12F,EAAM,GAFYsyF,EAAamE,EAAqB,SACvCnE,EAAamE,EAAqB,UAM/CE,EAAW,GAHMrE,EAAaoE,EAAoB,SACtCpE,EAAaoE,EAAoB,UAG7Ct+G,EAAOk6G,EAAamE,EAAqB,YAGzC5D,EAA2B1hH,KAAK4/G,gBAAgBhiG,UAEjD8jG,EAAyB/+B,KACtBn1F,GACIA,EAAEqhC,KAAOA,GACNrhC,EAAEyZ,OAASA,GACXzZ,EAAEg0H,UAAYgE,IACzB9D,EAAyBx+G,KAAK,CAC1B2rB,KACA5nB,OACAu+G,UACArnE,IAAKn+C,KAAKghB,eAAe8kB,MACzBy7E,mBAAoBgE,EAAmBrD,cACvCT,oBAAqB6D,EAAoBpD,cACzCuD,YAAaF,EAAmBE,YAChCp6F,IAAgC,IAA3BlX,EAAIuxG,6BASlB,GAAiB,gBAAbvxG,EAAIlN,MAAuC,iBAAbkN,EAAIlN,KAAyB,CAClE,MAAMk7G,EAASniH,KAAKy/G,oBAAoBtyH,IAAIgnB,EAAIjN,IAC1C8d,EAAOhlB,KAAK4kH,oBAAoBzwG,EAAI6Q,MAE1C,IAAKm9F,IAAWn9F,EACZ,OAGJ,IAAIu9F,EAAYviH,KAAKggH,WAAW7yH,IAAI63B,GAE/Bu9F,IACDA,EAAY,IAAI9D,EAChBz+G,KAAKggH,WAAW5+F,IAAI4D,EAAMu9F,IAG9B,IAAIC,GAAmB,EACnB30H,EAAM,kBAEO,iBAAbsmB,EAAIlN,OACJu7G,GAAmB,EACnB30H,EAAM,eAGV,IAAI40H,EAAatuG,EAAItmB,KAEhB40H,GAAcA,EAAa,KAC5BA,EAAa,GAGjB,MAAMC,EAAgB1iH,KAAK4kH,oBAAoBzC,EAAOt0H,IAChD80H,EAAcv3G,KAAKgpB,IAAI,EAAGquF,EAAaC,GAEvCE,EACA5iH,KAAK4kH,oBAAoBzwG,EAAI6uG,aAC7BH,EACA7iH,KAAK4kH,oBAAoBzC,EAAOa,aAChCF,EACA13G,KAAKgpB,IAAI,EAAGwuF,EAAiBC,GAEnCN,EAAUrC,QAAQ,CACd6C,aAAcJ,EAAcG,EAC5BE,YAAaF,EACbN,qBAGa,gBAAbruG,EAAIlN,KAEJs7G,EAAUnC,WAAW,CACjB,SAAYpgH,KAAK6kH,kBACD1wG,EAAKguG,EAAQ,iBAC7B,OAAU,KAQdf,EAAcp8F,GAAQhlB,KAAK4kH,oBAAoBzwG,EAAIuhF,WACnD6sB,EAAUnC,WAAW,CACjB,SAAY,EACZ,OAAUpgH,KAAK6kH,kBACH1wG,EAAKguG,EAAQ,gBAUjC,MAAMwD,EAAgBxxG,EAAIwxG,cAEtBA,GACApD,EAAUjC,aAAal1G,KAAKozG,MAAMmH,GAAiB,SAQpD,GAAiB,UAAbxxG,EAAIlN,KAAkB,CAE7B,MAAMovB,EAAa,CACfnC,OAAQ/f,EAAIyxG,YACZrvF,MAAOpiB,EAAI0xG,YAIf,IAAInuF,EAAYvjB,EAAI2xG,gBAEpB,IAAKpuF,EAAW,CAEZ,MAAMyqF,EAASniH,KAAKy/G,oBAAoBtyH,IAAIgnB,EAAIjN,IAEhD,GAAIi7G,EAAQ,CACR,MAAMkB,EAASlvG,EAAIq0E,UAAY25B,EAAO35B,UAEtC,GAAI66B,EAAS,GAAKlvG,EAAI4xG,WAAY,CAI9BruF,GAFMvjB,EAAI4xG,WAAa5D,EAAO4D,YAEW1C,EAAU,KAI3D,IAAK3rF,EACD,OAIR,MAAMsuF,EAAkB7xG,EAAI6xG,gBACtBhhG,EAAOhlB,KAAKghB,eAAeilG,iBAAiBD,GAElD,IAAKhhG,EACD,OAEJ,IAAIu9F,EAAYviH,KAAKggH,WAAW7yH,IAAI63B,GAE/Bu9F,IACDA,EAAY,IAAI9D,EAChBz+G,KAAKggH,WAAW5+F,IAAI4D,EAAMu9F,IAE9BA,EAAUjC,aAAal1G,KAAKozG,MAAM9mF,GAAa,IAE3CrB,EAAWnC,QAAUmC,EAAWE,MAChCgsF,EAAUpC,cAAc9pF,GAExBksF,EAAUpC,cAAc,SAKpCngH,KAAKwf,aAAa0D,KACdtB,IAAkC5hB,KAAKghB,eAAgBogG,GAE3DphH,KAAKwjH,yBAMTxE,EAAe9wH,UAAUyyH,2BAA6B,WAC7C3gH,KAAKs/G,2BAIVt/G,KAAKu/G,yBAAyBnwG,QAAQ+E,IAClC,GAAiB,UAAbA,EAAIlN,KACJ,OAIJ,MAAM0hC,EAAax0B,EAAIw0B,WAEvB,IAAKA,EACD,OAGJ,MAAMq9E,EAAkB7xG,EAAI6xG,gBACtBhhG,EAAOhlB,KAAKghB,eAAeilG,iBAAiBD,GAElD,GAAIhhG,EAAM,CACN,MAAMO,EACAP,IAAShlB,KAAKghB,eAAessF,aAC/BttG,KAAKghB,eAAekmB,eAAe3I,MAEvCv+B,KAAKwf,aAAa0D,KACdtB,IACA5hB,KAAKghB,eACLgE,EACA2jB,EACApjB,S,oECnyChB,SAASysF,EAAsB12E,EAAK4qF,GAChC,IAAK5qF,IAAQ4qF,GAAmC,mBAApB5qF,EAAIsI,aACJ,mBAAdsiF,EAAKhjG,KACf,MAAM,IAAI7rB,MAAM,qDAEpB2I,KAAKs7B,IAAMA,EACXt7B,KAAKkmH,KAAOA,EAWhBlU,EAAsB9jH,UAAUgkH,QAAU,YAAY/vE,GAClD,MAAMgkF,EAAWhkF,EAAK,GAItBA,EAAK,GAAKniC,KAAKkmH,KAGflmH,KAAKs7B,IAAIsI,YACLuiF,EACA96E,SAASn9C,UAAUJ,KAAK8zC,MAAM5hC,KAAKkmH,KAAKhjG,KAAMif,KAGtDp2C,EAAOD,QAAUkmH,G,8BCpCjB,8FAUA,MAAM/zF,EAASF,oBAAUM,GAKV,MAAMwqF,EAiBjB5yG,YAAY0N,EAAK4e,EAAYspE,EAAau6B,EAAQzd,EAAS54F,EAAQmrC,GAC/Dl7C,KAAKqmH,KAAO1iH,EACZ3D,KAAKsmH,IAAM7qH,UAAQyI,mBAAmBP,GACtC3D,KAAKumH,YAAchkG,EACnBviB,KAAK8pG,aAAeje,EACpB7rF,KAAKkpG,eAAgB,EACrBlpG,KAAK+pG,QAAU,GACf/pG,KAAK8oG,MAAQ,OACb9oG,KAAKkyD,QAAUniD,EACf/P,KAAKwmH,QAAUJ,EACfpmH,KAAKymH,SAAW9d,EAChB3oG,KAAK0mH,kBAAoBntD,IAA4B5V,OACrD3jD,KAAK2mH,YAAc,GACnB3mH,KAAK4mH,UAAY1rE,EASrB2rE,gBACI,OAAO7mH,KAAKumH,YAMhBrX,YAAYriH,GACR,OAAOmT,KAAK2mH,YAAY95H,GAW5BiwE,8BACI,OACI98D,KAAK8/B,YAAY6iD,KACbmkC,GACIA,EAAWx/E,YAAc/I,KAClBuoF,EAAWvhC,sBASlC9oB,qBAAqB1sD,GACjB/P,KAAK0mH,kBAAoB32G,EAU7BwsD,sBACI,OAAOv8D,KAAK0mH,kBAShBtd,YAAYv8G,EAAMU,GACd,MAAMw5H,EAAW/mH,KAAK2mH,YAAY95H,GAE9BU,IAAUw5H,IACV/mH,KAAK2mH,YAAY95H,GAAQU,EACzByS,KAAKumH,YAAY/mG,aAAa0D,KAC1BP,+BACA3iB,KACAnT,EACAk6H,EACAx5H,IAQZuyC,YACI,OAAO9/B,KAAK+pG,QAAQ7vE,QAQxB+jC,qBAAqBtyC,GACjB,OAAO3rB,KAAK8/B,YAAYpP,OAAO4N,GAASA,EAAMgJ,YAAc3b,GAMhE6wC,QACI,OAAOx8D,KAAKsmH,IAMhBjpE,SACI,OAAOr9C,KAAKqmH,KAMhB95B,iBACI,OAAOvsF,KAAK8pG,aAMhBuE,aACI,OAAOruG,KAAKymH,SAMhB5uB,YACI,OAAO73F,KAAKkyD,QAMhB0zC,cACI,MAAsB,cAAf5lG,KAAK8oG,MAQhBzB,WACI,OAAOrnG,KAAKwmH,QAMhBQ,eACI,OAAOhnH,KAAKinH,kBAAkB1oF,KAclC0oF,kBAAkBt7F,GACd,OAAO3rB,KAAK8/B,YAAYp6B,OACpB,CAACof,EAAOwZ,IACJxZ,IAAUwZ,EAAMgJ,YAAc3b,GAAa2S,EAAMggC,YACrD,GAMRxE,eACI,OAAO95D,KAAKinH,kBAAkB1oF,KAMlC6oE,UACI,OAAOpnG,KAAK8oG,MAMhB2C,eACI,OAAOzrG,KAAKkpG,cAQhBrlB,YAAYj2E,EAAU,KAClB,OAAI5N,KAAKknH,oBACElnH,KAAKknH,qBAGhBlnH,KAAKknH,oBAAsBlnH,KAAKumH,YAAYlnG,KAAKo6B,KAAKoqC,YAAY7jF,KAAKqmH,KAAMz4G,GACxEwvB,MAAMp4B,GAECA,IAAUy9E,IACHziF,KAAKumH,YAAYlnG,KAAKo6B,KAAKoqC,YAAY7jF,KAAKqmH,KAAMz4G,IAG7DqQ,EAAO9Y,KAAM,kCAAiCnF,KAAKqmH,KAAQrhH,GAEpDg4B,QAAQE,OAAOl4B,KAGvBhF,KAAKknH,oBACPxsF,KAAKj1B,IACFzF,KAAKknH,yBAAsB3mH,EAEpBkF,GACRT,IAGC,MAFAhF,KAAKknH,yBAAsB3mH,EAErByE,KASlBmiH,aACI,OAAOnnH,KAAK+oG,a,+DCrRpB,sDA2De,SAAS7F,GAA2B,GAE/Ch8F,EAF+C,SAG/Cy0C,EAH+C,iBAI/CmB,EAJ+C,kBAQ/CsqE,EAR+C,aAW/CC,IAEA,IACIC,EADAC,GAAW,EAEXloG,EAAO,IAAIs5B,IAAK34C,KAAKuU,WAAWpN,SAEpC,MAAM6sD,EAAU,IAAIh3B,QAAQ,CAACC,EAASC,KAIlCoqF,EAAgBpqF,EAGhB7d,EAAKukB,YACD3Z,0BACA,KACI5K,OAAO9e,IAEf8e,EAAKukB,YACD70C,yBACA,KACI,GAAIw4H,EACA,OAIJH,GAAqBA,IAGR/nG,EAAKu9B,WACd58C,KAAKmH,QAAQta,KACbmT,KAAKmH,QAAQqsB,OACbspB,GAGCsnD,UAAU3yF,eACVipB,KAAK,KACFrb,GAAQA,EAAK9P,aAETg4G,IAOJvnH,KAAKmD,KAAKkkH,GAEVpqF,OAEHG,MAAM,EAAGp4B,QAAOP,cACb4a,EAAK9P,aAEL2tB,EAAO,CACHsqF,oBAAqBxiH,EACrBP,gBAIpB4a,EAAKukB,YACD50C,oBACA,CAACy4H,EAAiBhjH,EAAS81C,KACvBrd,EAAO,CACHuqF,kBACAltE,cACA91C,YAEJ4a,OAAO9e,IAGfgnH,GAAYloG,EAAK5T,QAAQvE,EAAIy0C,KAgBjC,OANAqY,EAAQrB,OAAS,KACb40D,GAAW,EACXD,EAAc,IACdjoG,GAAQA,EAAK9P,cAGVykD,I,8BC5JX,yDAIA,MAAM/1C,EAASF,oBAAUM,GAInBqpG,EAAar6H,OAAO,cAcX,MAAMs6H,EAIjB1xH,cAGI,IAAI2xH,EAAU,GACd,MAAMC,EAAMxsH,SAAS4b,cAAc,iCAEnC,GAAI4wG,EAAK,CACL,MAAMj4E,EAAMi4E,EAAIvsF,IAAI89B,YAAY,KAEhCwuD,EAAaC,EAAIvsF,IAAInO,UAAU,EAAGyiB,GAAvB,IAKf,MACMk4E,EACA,IAAI9qB,KAAK,CAAG,kBAFG4qB,EAAF,sCAEkC,CAAE3gH,KAAM,2BACvD8gH,EAAU77H,OAAOuvC,IAAIC,gBAAgBosF,GAE3C9nH,KAAKgoH,QAAU,IAAIC,OAAOF,EAAS,CAAEl7H,KAAM,gBAC3CmT,KAAKgoH,QAAQtsG,QAAUriB,GAAK4kB,EAAOvC,QAAQriB,GAS/C0wE,QAAQ5+C,GACJnrB,KAAKgoH,QAAQhU,YAAY,CACrBkU,UAAW,UACX/8F,kBAYRm/C,eAAel/B,EAAUhS,EAAMjO,GAC3B,GAAIigB,EAASs8E,GACT,OAIJ,IAAIS,EAFJ/8E,EAASs8E,IAAc,EAKnBS,EADA/8E,EAASyoE,qBACSzoE,EAASyoE,uBAEA,UAATz6E,EAAmBgS,EAAS0oE,4BACxC1oE,EAASg9E,4BAGnBpoH,KAAKgoH,QAAQhU,YAAY,CACrBkU,UAAW,SACXG,eAAgBF,EAAgBG,UAAYH,EAAgBE,eAC5DE,eAAgBJ,EAAgB7N,UAAY6N,EAAgBI,eAC5Dp9F,iBACD,CAAEg9F,EAAgBG,UAAYH,EAAgBE,eAC7CF,EAAgB7N,UAAY6N,EAAgBI,iBAWpD99C,aAAaF,EAAQnxC,EAAMjO,GACvB,GAAIo/C,EAAOm9C,GACP,OAIJ,IAAIc,EAFJj+C,EAAOm9C,IAAc,EAKjBc,EADAj+C,EAAOspC,qBACStpC,EAAOspC,uBAEE,UAATz6E,EAAmBmxC,EAAOupC,4BACpCvpC,EAAO69C,4BAGjBpoH,KAAKgoH,QAAQhU,YAAY,CACrBkU,UAAW,SACXG,eAAgBG,EAAcF,UAAYE,EAAcH,eACxDE,eAAgBC,EAAclO,UAAYkO,EAAcD,eACxDp9F,iBACD,CAAEq9F,EAAcF,UAAYE,EAAcH,eACzCG,EAAclO,UAAYkO,EAAcD,iBAUhD7+C,OAAOv+C,EAAet9B,EAAKiuF,GACvB97E,KAAKgoH,QAAQhU,YAAY,CACrBkU,UAAW,SACX/8F,gBACAt9B,MACAiuF,iB,wEC1IZ,yEAQA,MAAM79D,EAASF,oBAAUM,GAQV,MAAMuzC,EAKjB37D,YAAYwyH,GACRzoH,KAAKsxD,aAAem3D,EAOpBzoH,KAAK0oH,cAAgB,EAErB1oH,KAAK2oH,iBAAcpoH,EAOvB,iBACI,OAAOP,KAAK2oH,YAQhBj1D,WACI1zD,KAAK4oH,gBAEL5oH,KAAK0oH,eAAiB,EAEtB1oH,KAAK6oH,uBACCrqD,IAAYniC,iBACVkiC,IACA,EAAGG,eACKA,EACA1+D,KAAK8oH,kBAEL9oH,KAAK4oH,kBAIrBpqD,IAAYE,YAAc1+D,KAAK8oH,kBAQnCA,kBACQ9oH,KAAK+oH,iBAUT/oH,KAAK0oH,cAAgBt9G,KAAKqP,IAAI,EAAGza,KAAK0oH,eACtC1oH,KAAK2oH,YAAcK,YACHhpH,KAAK0oH,cACmB,KAArB1oH,KAAK0oH,cACpB,GAEJzqG,EAAO/Y,KAAM,6CAA4ClF,KAAKipH,gBAE9DjpH,KAAK+oH,eAAiBx+G,WAAW,IAAMvK,KAAKkpH,oBAAqBlpH,KAAKipH,aAS1EL,gBACQ5oH,KAAK+oH,iBACL9qG,EAAO/Y,KAAK,oCACZuI,aAAazN,KAAK+oH,gBAClB/oH,KAAK+oH,oBAAiBxoH,EACtBP,KAAK2oH,iBAAcpoH,GAU3B2oH,oBACI,MAAM,iBAAE/1D,GAAqBnzD,KAAKsxD,aAC5B63D,EAAch2D,EAAiBC,iBAGrC,IAAK+1D,EACD,OAGJlrG,EAAO/Y,KAAK,wCAEZ,MAAM67B,EAAM,IAAItF,IAAIz7B,KAAKsxD,aAAa/oD,SACtC,IAAI,OAAEsU,GAAWkkB,GAGkB,IAA/BlkB,EAAOjZ,QAAQ,aACfiZ,IAAmC,IAAzBA,EAAOjZ,QAAQ,KAAe,WAAUulH,EAAiB,WAAUA,GAGjFpoF,EAAIlkB,OAASA,EAEb7c,KAAKsxD,aAAa/oD,QAAUw4B,EAAIrqC,WAEhCy8D,EAAiBnoD,SASrB2nD,SACI3yD,KAAK4oH,gBACL5oH,KAAK0oH,cAAgB,EACjB1oH,KAAK6oH,yBACL7oH,KAAK6oH,yBACL7oH,KAAK6oH,uBAAyB,U,sEC5InC,SAASG,EAAeI,EAAOC,EAAW,IAAKlhE,EAAO,GACzD,OAAO/8C,KAAKmM,MAAOnM,KAAKC,UAAqC,IAAxBD,KAAKsP,IAAIytC,EAAMihE,GAAiBC,GAAaA,GAZtF,mC,6BCAA,kCAGe,MAAMC,EAIjBrzH,cACI+J,KAAKupH,aAAe,KASxB73D,cAAc83D,EAAgBf,GAC1B,MAAMgB,EAAmBhB,EAAkBv7G,SAE3Cu7G,EAAkBv7G,SAAW,IAAIi1B,KAGzBqnF,EAAe5/G,YACf5J,KAAKupH,aAAephH,KAAKgM,OAE7Bs1G,EAAiB7nF,MAAM6mF,EAAmBtmF,IASlD+c,0BACI,OAAOl/C,KAAKupH,aACNphH,KAAKgM,MAAQnU,KAAKupH,aAClB,Q,8BCtCd,yFAQA,MAAMtrG,EAASF,oBAAUM,GA+BV,MAAMyzC,UAA6B43D,IAQ9CzzH,aAAY,wBAAE87D,IACV13B,QACAr6B,KAAK2pH,YAAc,EACnB3pH,KAAK4pH,kBAAoB,IAAIxzH,MAlBL,IAmBxB4J,KAAK6pH,yBAA2B93D,EAOpCnnD,KAAK2J,GACD8lB,MAAMzvB,KAAK2J,GACX9Y,UAAQ+D,aAAa,OAAQ,iBAajCw8C,KAAKr4C,EAAK+jD,EAAS1iD,EAAO4I,GACtB5N,KAAK8pH,6BAEL,MAAM72G,EAAKtX,cAAI,CACXsL,KAAM,MACN8hC,GAAIplC,IAGRsP,EAAGtmB,EAAE,OAAQ,CAAEsZ,MAAOxK,UAAQK,GAAGm/C,OACjCj7C,KAAKuU,WAAWi/C,QAAQvgD,EAAI,CAAErF,YACzB8sB,KAAKgtB,EAAS1iD,GAYvB4tD,cAAcsY,EAAWgW,EAlFP,KAmFd5mD,cAAct6B,KAAKmhF,YACnBnhF,KAAKmhF,WAAaj1F,OAAOowC,YAAY,KACjCt8B,KAAKg8C,KAAKkvB,EAAW,KACjBlrE,KAAK2pH,YAAc,GACpB3kH,IACChF,KAAK2pH,aAAe,EACpB,MAAMhyF,EAAU,SAAO3yB,EAAQ,QAAU,WAErChF,KAAK2pH,aA/EF,GAgFH/xF,IAAqBC,iBAAiB,IAAIxgC,MAAMsgC,IAChD1Z,EAAOjZ,MAAM2yB,EAAQ3yB,GACrBhF,KAAK6pH,0BAA4B7pH,KAAK6pH,4BAEtC5rG,EAAO9Y,KAAKwyB,EAAQ3yB,IA3FnB,MA8FVk8E,GACHjjE,EAAO/Y,KAAM,iCAAgCg8E,QAMjDjlC,eACQj8C,KAAKmhF,aACLj1F,OAAOouC,cAAct6B,KAAKmhF,YAC1BnhF,KAAKmhF,WAAa,KAClBnhF,KAAK2pH,YAAc,EACnB1rG,EAAO/Y,KAAK,0BAQpB4kH,6BACI9pH,KAAK4pH,kBAAkB1mH,MAAK,IAAIiF,MAAOC,WAGnCpI,KAAK4pH,kBAAkBrzH,OAxGH,IAyGpByJ,KAAK4pH,kBAAkBl8F,QAY/BsxB,qBACI,MAAM+qE,EAAgB/pH,KAAK4pH,kBAAkB1vF,QAM7C6vF,EAAc7mH,MAAK,IAAIiF,MAAOC,WAE9B,IAAI4hH,EAAc,EACdC,EAAaF,EAAc,GAkB/B,OAhBAA,EAAc36G,QAAQ/V,IAClB,MAAM6wH,EAAkB7wH,EAAI4wH,EAExBC,EAAkBF,IAClBA,EAAcE,GAGlBD,EAAa5wH,IAMjB2wH,GAjKc,IAoKP5+G,KAAKgpB,IAAI41F,EAAa,O,yECjLrC,iGAUA,MAAM/rG,EAASF,oBAAUM,GAKV,MAAMkgC,UAA4B6J,IAK7CnyD,YAAYopB,GACRgb,QACAr6B,KAAKqf,KAAOA,EACZrf,KAAKmjF,MAAQ,GAOjBv4E,KAAK2J,GACD8lB,MAAMzvB,KAAK2J,GAGXvU,KAAKuU,WAAWxG,WAAW/N,KAAKmqH,WAAWr8H,KAAKkS,MAAO,KACnD,WAAY,KAAM,KAAM,KAAM,MAClCA,KAAKuU,WAAWxG,WAAW/N,KAAKoqH,sBAAsBt8H,KAAKkS,MACvD,KAAM,WAAY,cAAe,MACrCA,KAAKuU,WAAWxG,WAAW/N,KAAKqqH,gBAAgBv8H,KAAKkS,MAAO,KACxD,WAAY,QAAS,MACzBA,KAAKuU,WAAWxG,WAAW/N,KAAKsqH,UAAUx8H,KAAKkS,MAAO,KAClD,UAAW,KAAM,MACrBA,KAAKuU,WAAWxG,WAAW/N,KAAKuqH,OAAOz8H,KAAKkS,MACxC,iCAAkC,KAAM,MAAO,KAAM,MAS7D48C,WAAWj5C,EAAKg4C,EAAUx0C,GACtB,MAAM+d,EAAUzpB,UAAQsI,kBAAkBJ,GAE1C,GAAI3D,KAAKmjF,MAAMj+D,GAAU,CACrB,MAAMyS,EAAS,+BAGf,MADA1Z,EAAOjZ,MAAM2yB,GACP,IAAItgC,MAAMsgC,GAOpB,OALA33B,KAAKmjF,MAAMj+D,GAAW,IAAIslG,IAASxqH,KAAKuU,WAAY5Q,EAChDg4C,EAAU37C,KAAKqf,KAAMlY,GACzBnH,KAAKwf,aAAa0D,KACdy3B,IAAWrrD,gBAAiB0Q,KAAKmjF,MAAMj+D,IAEpCllB,KAAKmjF,MAAMj+D,GAOtBulG,QAAQ9mH,GACJ3D,KAAKwf,aAAa0D,KACdy3B,IAAWprD,kBAAmByQ,KAAKmjF,MAAMx/E,WACtC3D,KAAKmjF,MAAMx/E,GAOtBwmH,WAAW16G,GACP,MAAM9Y,EAAO8Y,EAAK7M,aAAa,QAG/B,GAAI6M,EAAK7M,aAAa,QAClB,OAAO,EAGX,MAAMu8C,EAAOn/C,KAAKmjF,MAAM1nF,UAAQsI,kBAAkBpN,IAElD,OAAKwoD,IAKD1M,EAAEhjC,GAAMwhB,KAAK,sEACY16B,QACzB4oD,EAAKurE,yBAGTvrE,EAAKgrE,WAAW16G,IAET,GAOX26G,sBAAsB36G,GAClB,MAAM9Y,EAAO8Y,EAAK7M,aAAa,QACzBu8C,EAAOn/C,KAAKmjF,MAAM1nF,UAAQsI,kBAAkBpN,IAElD,OAAKwoD,IAILA,EAAKirE,sBAAsB36G,EAAM9Y,IAE1B,GAOX0zH,gBAAgB56G,GACZ,MAAM9Y,EAAO8Y,EAAK7M,aAAa,QACzBu8C,EAAOn/C,KAAKmjF,MAAM1nF,UAAQsI,kBAAkBpN,IAElD,OAAKwoD,IAILA,EAAKkrE,gBAAgB56G,EAAM9Y,IAEpB,GAOX2zH,UAAUxlH,GAEN,MAAMnO,EAAOmO,EAAIlC,aAAa,QACxBu8C,EAAOn/C,KAAKmjF,MAAM1nF,UAAQsI,kBAAkBpN,IAElD,OAAKwoD,IAILA,EAAKmrE,UAAUxlH,EAAKnO,IAEb,GAOX4zH,OAAOt3G,GACH,MAAMtc,EAAOsc,EAAGrQ,aAAa,QACvBu8C,EAAOn/C,KAAKmjF,MAAM1nF,UAAQsI,kBAAkBpN,IAGlD,OAAKwoD,IAILA,EAAKorE,OAAOt3G,IAEL,O,yEC/Kf,kJAeA,MAAMgL,EAASF,oBAAUM,GAEZw5B,EAAS,CAClB8yE,YAAY1pH,EAAYgsG,GACpB,IAAK,MAAMrnG,KAASxP,MAAMO,KAAKsK,EAAW23F,UAAW,CACjD,MAAM13F,EAAO,CACTjE,WAAY,GACZ27F,SAAU,GACVz4F,QAASyF,EAAMzF,SAGnB,IAAK,MAAMoB,KAAQnL,MAAMO,KAAKiP,EAAM3I,YAChCiE,EAAKjE,WAAWsE,EAAK1U,MAAQ0U,EAAKhU,MAEtC,MAAMoU,EAAOlG,UAAQ4G,QAAQuD,GAEzBjE,IAIAT,EAAK3T,MAAQkO,UAAQoG,YAAYF,IAErCsrG,EAAM/pG,KAAKhC,GACXlB,KAAK2qH,YAAY/kH,EAAO1E,EAAK03F,YAGrCgyB,YAAY3d,EAAO4d,GACf,IAAK,IAAIv+H,EAAI,EAAGA,EAAI2gH,EAAM12G,OAAQjK,IAAK,CACnC,MAAM4U,EAAO+rG,EAAM3gH,GAEf4U,IACA2pH,EAAOl+H,EAAEuU,EAAKf,QAASe,EAAKjE,YACxBiE,EAAK3T,OACLs9H,EAAOr9H,EAAE0T,EAAK3T,OAEd2T,EAAK03F,UACL54F,KAAK4qH,YAAY1pH,EAAK03F,SAAUiyB,GAEpCA,EAAO1kH,SAcvB,SAAS2kH,EAA2Br7G,EAAMjN,GACtC,MAAMy7B,EAAM,GAEZ,IAAK,IAAI3xC,EAAI,EAAGA,EAAImjB,EAAKlZ,OAAQjK,IACzBmjB,EAAKnjB,GAAG6T,UAAYqC,GACpBy7B,EAAI/6B,KAAKuM,EAAKnjB,IAItB,OAAO2xC,EAWX,MAAM8sF,EAAuB,CAAE,QAAS,QAAS,UAKlC,MAAMP,UAAiBpwF,IAiBlCnkC,YAAYse,EAAY5Q,EAAKg4C,EAAUhD,EAAMxxC,GACzCkzB,QACAr6B,KAAKqf,KAAOs5B,EACZ34C,KAAKuU,WAAaA,EAClBvU,KAAK+8C,QAAUthD,UAAQsI,kBAAkBJ,GACzC3D,KAAK0mG,UAAY/iG,EACjB3D,KAAK27C,SAAWA,EAChB19B,EAAO/Y,KAAM,iBAAgBlF,KAAK0mG,WAClC1mG,KAAKgrH,QAAU,GACfhrH,KAAKgtG,QAAU,GACfhtG,KAAKirH,aAAe,GACpBjrH,KAAKkrH,qBAAuB,GAC5BlrH,KAAKojG,QAAS,EACdpjG,KAAKyhE,KAAO,KACZzhE,KAAKu4F,YAAc,KACnBv4F,KAAKmrH,mBAAoB,EACzBnrH,KAAKmH,QAAUA,GAAW,GAC1BnH,KAAKokG,UACC,IAAIgnB,IAAUprH,KAAK+8C,QAAS/8C,KAAKqf,KAAMrf,KAAKwf,aAAc,CACxDjL,WAAYvU,KAAKqf,KAAKlY,QACtBob,WAAYviB,KAAKmH,gBAEe,IAA7BnH,KAAKmH,QAAQiqG,aAA+BpxG,KAAKmH,QAAQiqG,eAChEpxG,KAAKqrH,MAAQ,IAAIC,IAAMtrH,OAE3BA,KAAKurH,gBAAgBpkH,GACrBnH,KAAKwrH,cAAgB,GACrBxrH,KAAKyrH,YAAc,KACnBzrH,KAAK0rH,SAAW,KAChB1rH,KAAK84C,gBAAkB,GACvB94C,KAAK2rH,4BAA8B,KAEnC3rH,KAAK4rH,QAAS,EACd5rH,KAAKkmG,oBAAsB2lB,MAQ/BN,gBAAgBpkH,EAAU,IACtBnH,KAAKgtG,QAAQjkE,GAAK/oC,KAAK0mG,UACvB1mG,KAAKgtG,QAAQ8e,IAAM,iCACnB9rH,KAAKgtG,QAAQC,MAAQ,GAEjB9lG,EAAQy5F,SACR5gG,KAAKgtG,QAAQC,MAAM/pG,KAAK,CACpB,QAAW,WACX,MAASiE,EAAQy5F,UAOzB5gG,KAAK+rH,wBAAuB,GAExB5kH,EAAQu3C,gBAAkBv3C,EAAQu3C,eAAeqkD,YACjD/iG,KAAKgtG,QAAQC,MAAM/pG,KAAK,CACpB,QAAW,SACX,WAAc,CACVgE,GAAIC,EAAQu3C,eAAeqkD,WAC3B98F,MAAO,iCAKnBjG,KAAKgsH,mBAAqB7jH,KAAKgM,MAYnChR,KAAKw4C,EAAUswE,GAGX,OAFAjsH,KAAK27C,SAAWA,EAET,IAAI3e,QAAQC,IACfj9B,KAAKmH,QAAQ+kH,cACNjuG,EAAO/Y,KAAM,iCAAgClF,KAAK+8C,UAGnD/8C,KAAKmH,QAAQ+kH,aACTlvF,QAAQC,UACRj9B,KAAKokG,UAAU+nB,2BAEjBzxF,KAAK,KACT16B,KAAK0N,cAAa,EAAMu+G,GACxBjsH,KAAKkrH,qBAAqBhoH,KACtBlD,KAAKuU,WAAW8nB,iBACZgd,IAAe0Z,OAAO3B,oBACtBpxD,KAAKosH,oBAAoBt+H,KAAKkS,QAEtCi9B,QAUZvvB,aAAa2+G,EAAUJ,GACnB,MAAMljF,EAAK/oC,KAAKgtG,QAAQjkE,GAExB,IAAK/oC,KAAKuU,aAAevU,KAAKuU,WAAW3K,YAAcm/B,IAAQ/oC,KAAKojG,SAAWipB,EAE3E,OAGJ,MAAM58G,EAAO7T,gBAAM,CAAEmtC,OAOjBsjF,IACA58G,EAAK9iB,EAAE,IAAK,CAAEsZ,MAAOjG,KAAKgtG,QAAQ8e,MAE9B9rH,KAAK27C,UACLlsC,EAAK9iB,EAAE,YAAYa,EAAEwS,KAAK27C,UAAUx1C,KAEpC8lH,GACAj/H,OAAOuY,KAAK0mH,GAA8B78G,QAAQvhB,IAC9C4hB,EAAK9iB,EAAEkB,GAAKL,EAAEy+H,EAA6Bp+H,IAAMsY,OAGzDsJ,EAAKtJ,MAGT0xC,EAAO+yE,YAAY5qH,KAAKgtG,QAAQC,MAAOx9F,GAGvCzP,KAAKssH,iBAAmBnkH,KAAKgM,MAE7BnU,KAAKuU,WAAWlH,KAAKoC,GACjB48G,GAKArsH,KAAKuU,WAAW/G,QAQxBi9G,UACIxsG,EAAOrZ,IAAI,WAAY5E,KAAK0mG,WAC5B,MAAMj3F,EAAO7T,gBAAM,CAAEmtC,GAAI/oC,KAAK0mG,UAC1Bz/F,KAAM,gBAEVjH,KAAKgtG,QAAQz2G,OAAS,GAerByJ,KAAKuU,WAAWupC,kBAAoB99C,KAAKuU,WAAW/G,QACrDxN,KAAKuU,WAAWlH,KAAKoC,GACrBzP,KAAKuU,WAAW/G,QAMpB++G,gBAGI,MAAMC,EACA7wH,cAAI,CACFsL,KAAM,MACN8hC,GAAI/oC,KAAK+8C,UAERpwD,EAAE,QAAS,CAAEsZ,MAAOxK,UAAQK,GAAGO,aAExC2D,KAAKuU,WAAWnG,OAAOo+G,EAAS/mH,IAC5B,MAAMmmH,EAGM,IAFNn5E,EAAEhtC,GAAQwrB,KAAK,+CACZ16B,OAGLq1H,IAAW5rH,KAAK4rH,SAChB5rH,KAAKwf,aAAa0D,KAAKy3B,IAAW5pD,iBAAkB66H,GACpD5rH,KAAK4rH,OAASA,GAGlB,MAAMa,EACAh6E,EAAEhtC,GAAQwrB,KAAK,qEAEjBw7F,EAAel2H,OACfyJ,KAAK0sH,aAAaD,EAAe9qH,QAEjCsc,EAAO9Y,KAAK,8BAGhB,MAAMwnH,EAAiF,IAAnEl6E,EAAEhtC,GAAQwrB,KAAK,yCAAyC16B,OAEtEq2H,EACAn6E,EAAEhtC,GAAQwrB,KAAK,qEAEjBjxB,KAAKqrH,OACLrrH,KAAKqrH,MAAMwB,gBAAgBD,GAAkBA,EAAer2H,OAASq2H,EAAejrH,YAASpB,GAG7FosH,IAAgB3sH,KAAKmxG,qBACrBnxG,KAAKmxG,mBAAqBwb,EAC1B3sH,KAAKwf,aAAa0D,KAAKy3B,IAAW3pD,yBAA0B27H,KAGjE3nH,IACC4yB,IAAqBC,iBAAiB7yB,GACtCiZ,EAAOjZ,MAAM,4BAA6BA,KAUlD0nH,aAAa7b,GACL7wG,KAAK6wG,YAAcA,IACf7wG,KAAK6wG,WACL5yF,EAAO9Y,KAAM,2BAA0BnF,KAAK6wG,gBAAgBA,KAEhE7wG,KAAK6wG,UAAYA,EACjB7wG,KAAKwf,aAAa0D,KAAKy3B,IAAW3qD,eAAgB6gH,IAO1D6Z,yBAGI,GAAI1qH,KAAKmH,QAAQ2lH,iBACb,OAGJ,MAAMC,EAAUpxH,cAAI,CAAEsL,KAAM,MACxB8hC,GAAI/oC,KAAK+8C,UACRpwD,EAAE,QAAS,CAAEsZ,MAAO,yCACpBtZ,EAAE,IAAK,CAAEsZ,MAAO,gBACbgB,KAAM,WAEdjH,KAAKuU,WAAWnG,OAAO2+G,EAASC,IAC5B,IAAKv6E,EAAEu6E,GAAM/7F,KACL,qEACwC16B,OAAQ,CACpD,MAAMohC,EAAS,oCAKf,OAHAC,IAAqBC,iBAAiB,IAAIxgC,MAAMsgC,SAChD1Z,EAAOjZ,MAAM2yB,GAKjB,MAAMs1F,EAAatxH,cAAI,CAAEotC,GAAI/oC,KAAK+8C,QAC9B91C,KAAM,QACLta,EAAE,QAAS,CAAEsZ,MAAO,yCAEzBgnH,EAAWtgI,EAAE,IAAK,CAAEsZ,MAAO,gBACvBgB,KAAM,WAEVgmH,EAAWtgI,EAAE,QAAS,CAAE,IAAO,cAC1BA,EAAE,SACFa,EAAE,6CAA6C2Y,KAAKA,KAEzD8mH,EAAWtgI,EAAE,QAAS,CAAE,IAAO,yBAC1BA,EAAE,SAASa,EAAE,UAAU2Y,KAAKA,KAEjCnG,KAAKuU,WAAWnG,OAAO6+G,IAExBjoH,IACC4yB,IAAqBC,iBAAiB7yB,GACtCiZ,EAAOjZ,MAAM,0CAA2CA,KAShEonH,oBAAoBr8G,GAEZA,IAAWspC,IAAe57C,OAAOM,WACjCiC,KAAK0N,eAQby8G,WAAW16G,GACP,MAAM9Y,EAAO8Y,EAAK7M,aAAa,QACzBsqH,EAAS,GACTC,EAAW19G,EAAKqB,qBAAqB,UAAU,GAEjDq8G,IACAD,EAAOn9G,OAASo9G,EAASj2G,aAAe,IAE5C,IAAIk2G,GAAkB,EAClBC,GAAmB,EACvB,MAAMC,EACA79G,EAAK6B,uBACH,sCAAuC,KAAK,GAC9Ci8G,EACAD,GAAYA,EAASx8G,qBAAqB,QAAQ,GAExDo8G,EAAOM,YACDD,GAAeA,EAAY3qH,aAAa,eAC9CsqH,EAAOzrD,KAAO8rD,GAAeA,EAAY3qH,aAAa,QAGtD,MAAMe,EAAM4pH,GAAeA,EAAY3qH,aAAa,OAEpDsqH,EAAOvpH,IAAMA,EACbupH,EAAOtiB,QACDjnG,GAA+D,IAAxDA,EAAIC,QAAW5D,KAAKokG,UAAUqpB,kBAAjB,KAC1BP,EAAOQ,eACD/pH,GAAOA,EAAIC,QAAQ,KAAO,GACrB5D,KAAKmH,QAAQmgG,eACR3jG,EAAIwpB,UAAUxpB,EAAIC,QAAQ,KAAO,EAAGD,EAAIC,QAAQ,MAEhE5D,KAAKwf,aAAa0D,KAAKy3B,IAAWppD,kBAAmB,CACjDo8H,iBAAkBT,EAAOQ,eACzB/mD,SAAUl3D,IAGd,MAAMm+G,EAAMn+G,EAAKwH,cAAc,KAE3B22G,GACAA,EAAI96C,SAGR,MAAMm6B,EAAQ,GAEdp1D,EAAO8yE,YAAYl7G,EAAMw9F,GACzBjtG,KAAKwrH,cAAc70H,GAAQs2G,EAI3B,MAAM4gB,EAA6B3sH,IAC/B,MAAMg6C,EAAW,GACX4yE,EAAW5sH,EAAK03F,SAAS3nE,KAAKtkC,GAAmB,SAAdA,EAAEwT,SAE3C,GAAI2tH,EAAU,CACV5yE,EAAS5zC,KAAO,GAChB,IAAK,MAAMlK,IAAO,CAAE,KAAM,OAAQ,UAAY,CAC1C,MAAMwI,EACAkoH,EAASl1B,SAAS3nE,KAAKtkC,GAAKA,EAAEwT,UAAY/C,GAE5CwI,IACAs1C,EAAS5zC,KAAKlK,GAAOwI,EAAMrY,QAIvC,MAAMo1D,EAAYzhD,EAAK03F,SAAS3nE,KAAKtkC,GAAmB,UAAdA,EAAEwT,SAM5C,OAJIwiD,IACAzH,EAAShqB,MAAQyxB,EAAUp1D,OAGxB2tD,GAGX,IAAK,IAAI5uD,EAAI,EAAGA,EAAI2gH,EAAM12G,OAAQjK,IAAK,CACnC,MAAM4U,EAAO+rG,EAAM3gH,GAEnB,OAAQ4U,EAAKf,SACb,IAAK,MAAO,CACR,MAAM,WAAElD,GAAeiE,EAEvB,IAAKjE,EACD,MAEJ,MAAM,KAAEgK,GAAShK,EAEjBiwH,EAAOtkB,QAAU3hG,EACjB,MAEJ,IAAK,OACDimH,EAAOxkB,KAAOxnG,EAAK3T,MACnB,MACJ,IAAK,SACD2/H,EAAOhmH,GAAKhG,EAAK3T,MACjB,MACJ,IAAK,WACD2/H,EAAOvkB,QAAUznG,EAAK3T,MACtB,MACJ,IAAK,WACD2/H,EAAOhyE,SAAW2yE,EAA2B3sH,GAC7C,MACJ,IAAK,OAAQ,CACT,MAAM,WAAEjE,GAAeiE,EAEvB,IAAKjE,EACD,MAEJ,MAAM,KAAEpQ,GAASoQ,EAEJ,YAATpQ,IACAqgI,EAAOn5E,QAAU92C,EAAW1P,OAEhC,QAKR,GAAIoJ,IAASqJ,KAAK0mG,UAAW,CACzB,MAAMqnB,EACuB,UAAvBb,EAAOM,YAA0BN,EAAOzrD,KAAO,OAQrD,GANIzhE,KAAKyhE,OAASssD,IACd/tH,KAAKyhE,KAAOssD,EACZ/tH,KAAKwf,aAAa0D,KACdy3B,IAAW5qD,mBACXiQ,KAAKyhE,QAERzhE,KAAKojG,OAAQ,CACdpjG,KAAKojG,QAAS,EACd,MAAMjvF,EAAMnU,KAAK84C,gBAAgB,cAC3B5sD,OAAOsuD,YAAYrmC,MAEzB8J,EAAOrZ,IAAI,uBAAwBuP,GAG/BnU,KAAK27C,WACL37C,KAAK4rH,QAAS,GAMd5rH,KAAKgsH,oBAAsBhsH,KAAKssH,kBAChCtsH,KAAK0N,eAGT1N,KAAKwf,aAAa0D,KAAKy3B,IAAWrqD,aAIjC0P,KAAKmH,QAAQ2lH,kBAAoB9sH,KAAKusH,sBAExC,QAAYhsH,IAARoD,EACPsa,EAAO/Y,KAAK,2CACT,QAA2B3E,IAAvBP,KAAKgrH,QAAQr0H,GAEpBqJ,KAAKgrH,QAAQr0H,GAAQu2H,EACrBjvG,EAAOrZ,IAAI,UAAWjO,EAAMu2H,GAC5BE,OAAoC7sH,IAAlB2sH,EAAOn9G,OACzBs9G,OAAsC9sH,IAAnB2sH,EAAOn5E,QACtBm5E,EAAOtiB,QACP5qG,KAAKguH,WAAWr3H,EAAMgN,IAKtB3D,KAAKwf,aAAa0D,KACdy3B,IAAWpqD,kBACXoG,EACAu2H,EAAOxkB,KACPwkB,EAAOzrD,KACPyrD,EAAOQ,eACPR,EAAOvkB,QACPukB,EAAOn9G,OACPm9G,EAAOhyE,SACPgyE,EAAOtkB,QACPskB,EAAOvpH,KAIXypH,GAAkB,OAEnB,CAGH,MAAMa,EAAejuH,KAAKgrH,QAAQr0H,GAE9Bs3H,EAAaxsD,OAASyrD,EAAOzrD,OAC7BwsD,EAAaxsD,KAAOyrD,EAAOzrD,KAC3BzhE,KAAKwf,aAAa0D,KACdy3B,IAAW7pD,iBAAkB6F,EAAMu2H,EAAOzrD,OAI9CwsD,EAAaT,cAAgBN,EAAOM,cACpCS,EAAaT,YAAcN,EAAOM,aAIlCS,EAAarlB,UAAYskB,EAAOtkB,UAChCqlB,EAAarlB,QAAUskB,EAAOtkB,QAC9B5oG,KAAKwf,aAAa0D,KACdy3B,IAAWvqD,4BACXuG,EACAu2H,EAAOtkB,UAGXskB,EAAOtiB,UAWPqjB,EAAarjB,SAAU,EACvB5qG,KAAKguH,WAAWr3H,EAAMgN,IAItBupH,EAAOrhC,cACPoiC,EAAapiC,YAAcqhC,EAAOrhC,aAIlCoiC,EAAal+G,SAAWm9G,EAAOn9G,SAC/Bq9G,GAAkB,EAClBa,EAAal+G,OAASm9G,EAAOn9G,QAG7Bk+G,EAAal6E,UAAYm5E,EAAOn5E,UAChCs5E,GAAmB,EACnBY,EAAal6E,QAAUm5E,EAAOn5E,SAMtC,IAAK,IAAIznD,EAAI,EAAGA,EAAI2gH,EAAM12G,OAAQjK,IAAK,CACnC,MAAM4U,EAAO+rG,EAAM3gH,GAEnB,OAAQ4U,EAAKf,SACb,IAAK,OACD,IAAK+sH,EAAOtiB,QAAS,CACjB,MAAM/e,EACA7rF,KAAKqf,KAAKlY,QAAQ+mH,YACdzyH,UAAQyI,mBAAmBvN,GAC3Bu2H,EAAOxkB,KAEjB1oG,KAAKwf,aAAa0D,KACdy3B,IAAWtrD,qBACXsH,EACAk1F,GAER,MACJ,IAAK,qBACGqhC,EAAOtiB,UAAY5qG,KAAKmrH,oBACxBnrH,KAAKmrH,mBAAoB,EACzBnrH,KAAKwf,aAAa0D,KAAKy3B,IAAWlsD,cAEtC,MACJ,IAAK,wBACD,GAAIy+H,EAAOtiB,QAAS,CAChB,MAAMtjF,EAAa,GAEnB,IAAK,IAAIpuB,EAAI,EAAGA,EAAIgI,EAAK03F,SAASriG,OAAQ2C,IAAK,CAC3C,MAAM,WAAE+D,GAAeiE,EAAK03F,SAAS1/F,GAEjC+D,GAAcA,EAAWpP,MACzBy5B,EAAWrqB,EAAWpP,KAAOoP,EAAW1P,OAIhDyS,KAAKwf,aAAa0D,KACdy3B,IAAW7rD,8BAA+Bw4B,GAElD,MACJ,IAAK,uBAAwB,CACzB,MAAM,WAAErqB,GAAeiE,EAEvB,IAAKjE,EACD,MAGJ,MAAM,OAAE8S,GAAW9S,EAEf8S,GAAUA,IAAW/P,KAAKkmG,sBAC1BlmG,KAAKkmG,oBAAsBn2F,EAC3B/P,KAAKwf,aAAa0D,KACdy3B,IAAW/nD,6BACXmd,IAKR,MAEJ,IAAK,eAAgB,CACjB,MAAMo+G,EAAMjtH,EAAKjE,WAEjB,IAAKkxH,EACD,MAEJnuH,KAAKyrH,YAAc0C,EAAIC,OAAS,KAChCpuH,KAAK0rH,SAAWyC,EAAIE,KAAO,KAC3BruH,KAAKwf,aAAa0D,KAAKy3B,IAAWrpD,sBAClC,MAEJ,QACI0O,KAAKsuH,YAAYptH,EAAMvK,IAK3By2H,GACAptH,KAAKwf,aAAa0D,KACdy3B,IAAWnpD,gBACXmF,EACAu2H,EAAOn9G,QAGXs9G,GACApvG,EAAO/Y,KAAM,wBAAuBvB,MAAQupH,EAAOn5E,WAS3Di6E,WAAWr3H,EAAM+2G,GACb1tG,KAAKu4F,YAAc5hG,EAEnBsnB,EAAO/Y,KAAM,iBAAgBvO,gBAAmB+2G,KAChD1tG,KAAKqf,KAAKo6B,KAAKoqC,YAAY6pB,EAAQ,MAAOhzE,KAAK5xB,IAC3C9I,KAAKuuH,cAAgBzlH,EACrBmV,EAAO/Y,KAAM,yCAAwClF,KAAKwuH,+BAC3DxpH,IACCiZ,EAAOjZ,MAAM,qCAAsCA,GAASA,EAAMP,WAQ1E0tG,+BAA+BzwF,GAC3B1hB,KAAK2rH,4BAA8BjqG,EAOvC8sG,6BACI,QAAOxuH,KAAKuuH,eACNvuH,KAAKuuH,cAAcxqG,IAAI,mDASjCuqG,YAAYptH,EAAMvK,GAGd,IACI,IAAI83H,EAAczuH,KAAKirH,aAAa/pH,EAAKf,SAErCe,EAAKf,QAAQgyB,WAAW,wBACxBs8F,EAAc,CAAEzuH,KAAK2rH,8BAGrB8C,GACAA,EAAYr/G,QAAQ7K,IAChBA,EAAQrD,EAAMzF,UAAQyI,mBAAmBvN,GAAOA,KAG1D,MAAO0C,GACLu+B,IAAqBC,iBAAiBx+B,GACtC4kB,EAAOjZ,MAAO,oBAAmB9D,EAAKf,gBAAiB9G,IAU/D2vC,YAAYvkC,EAASygG,EAAawpB,GAC9B,MAAM5pH,EAAMmY,eAAK,CAAE8rB,GAAI/oC,KAAK+8C,QACxB91C,KAAM,cAKU,SAAhBi+F,EACApgG,EAAInY,EAAEu4G,EAAazgG,GAAS0B,KAE5BrB,EAAInY,EAAEu4G,EAAa,CAAEj/F,MAAO,4BAA8BxB,GACrD0B,KAELuoH,GACA5pH,EAAInY,EAAE,OAAQ,CAAEsZ,MAAO,oCAClBzY,EAAEkhI,GACFvoH,KACAA,KAETnG,KAAKuU,WAAWlH,KAAKvI,GACrB9E,KAAKwf,aAAa0D,KAAKy3B,IAAWvoD,qBAAsBqS,GAW5D4gG,mBAAmBn+F,EAAIzC,EAASygG,EAAawpB,GACzC,MAAM5pH,EAAMmY,eAAK,CAAE8rB,GAAK,GAAE/oC,KAAK+8C,WAAW71C,IACtCD,KAAM,SAKU,SAAhBi+F,EACApgG,EAAInY,EAAEu4G,EAAazgG,GAAS0B,KAE5BrB,EAAInY,EAAEu4G,EAAa,CAAEj/F,MAAO,4BAA8BxB,GACrD0B,KAELuoH,GACA5pH,EAAInY,EAAE,OAAQ,CAAEsZ,MAAO,oCAClBzY,EAAEkhI,GACFvoH,KACAA,KAGTnG,KAAKuU,WAAWlH,KAAKvI,GACrB9E,KAAKwf,aAAa0D,KACdy3B,IAAWtoD,6BAA8BoS,GAQjDihG,WAAWC,GACP,MAAM7gG,EAAMmY,eAAK,CAAE8rB,GAAI/oC,KAAK+8C,QACxB91C,KAAM,cAEVnC,EAAInY,EAAE,UAAWg5G,GACjB3lG,KAAKuU,WAAWlH,KAAKvI,GASzB6pH,kBAAkBhrH,EAAKirH,UACZ5uH,KAAKwrH,cAAc7nH,GAEtBirH,IAIJ5uH,KAAKwf,aAAa0D,KAAKy3B,IAAWnqD,gBAAiBmT,GAEnD3D,KAAKokG,UAAUyqB,gBAAgBlrH,IAQnCymH,sBAAsB36G,EAAM9Y,GAExB,GAAI87C,EAAEhjC,GAAMwhB,KAAK,8CAA8C16B,OAC3D,OAAO,EAIX,MAAMu4H,EAAgBr8E,EAAEhjC,GAAMwhB,KAAK,2DAEnC,GAAI69F,EAAcv4H,OAAQ,CACtB,IAAIiZ,EACJ,MAAMu/G,EACAt8E,EAAEhjC,GAAMwhB,KACN,kEAUR,OAPI89F,EAAax4H,SACbiZ,EAASu/G,EAAaptH,QAG1B3B,KAAKwf,aAAa0D,KAAKy3B,IAAWtqD,cAAemf,EAAQs/G,EAAcvtH,KAAK,QAC5EvB,KAAKuU,WAAW6oC,KAAKqtE,QAAQzqH,KAAK+8C,UAE3B,EAIX,MAAMysD,EACA/2D,EAAEhjC,GACCwhB,KACG,sEAEH16B,OACHy4H,EACAv8E,EAAEhjC,GACCwhB,KACG,sEAEH16B,OACH04H,EAAcjiI,OAAOuY,KAAKvF,KAAKgrH,SAErC,GAAIgE,EAAQ,CACR,MAAME,EACAz8E,EAAEhjC,GACHwhB,KAAK,8DAEV,IAAIk+F,EAEAD,EAAY34H,SACZ44H,EAAYD,EAAY3tH,KAAK,SAMjCvB,KAAKwf,aAAa0D,KACdy3B,IAAW7qD,OACX05G,EACA2lB,EACA1zH,UAAQyI,mBAAmBvN,IAG/B6yG,GAIAylB,EAAY7/G,QAAQzL,IAChB,MAAMupH,EAASltH,KAAKgrH,QAAQrnH,UAErB3D,KAAKgrH,QAAQrnH,GACpB3D,KAAK2uH,kBAAkBhrH,EAAKupH,EAAOtiB,WAEvC5qG,KAAKuU,WAAW6oC,KAAKqtE,QAAQzqH,KAAK+8C,SAI7BiyE,GACDhvH,KAAKwf,aAAa0D,KAAKy3B,IAAW9pD,mBAG/BmP,KAAKgrH,QAAQr0H,GACpBqJ,KAAK2uH,kBAAkBh4H,GAAM,IASrC2zH,UAAUxlH,EAAKnO,GACX,MAAM+xG,EACAj2D,EAAE3tC,GAAKmsB,KAAK,kDACTtvB,QACFlG,UAAQyI,mBAAmBvN,GAE5BsQ,EAAOnC,EAAIlC,aAAa,QAE9B,GAAa,UAATqE,EAAkB,CAClB,MAAMyxD,EAAWjmB,EAAE3tC,GAAKmsB,KAAK,eAAetvB,OAI5C,OAFA3B,KAAKwf,aAAa0D,KAAKy3B,IAAW9rD,oBAAqB6pE,IAEhD,EAGX,MAAM65C,EAAM9/D,EAAE3tC,GAAKmsB,KAAK,SAAStvB,OAC3BgkG,EAAUlzD,EAAE3tC,GAAKmsB,KAAK,YAE5B,GAAI00E,EAAQpvG,OAAQ,CAChB,MAAM64H,EAAczpB,EAAQhkG,QAExBytH,GAA+B,KAAhBA,KACfpvH,KAAKwf,aAAa0D,KAAKy3B,IAAWjoD,gBAAiB08H,GACnDnxG,EAAOrZ,IAAK,yBAAwBwqH,IAK5C,IAAIC,EAAQ58E,EAAE3tC,GAAKmsB,KAAK,UAAU1vB,KAAK,SAEvC,IAAK8tH,IAEDA,EAAQ58E,EAAE3tC,GAAKmsB,KAAK,6BAA6B1vB,KAAK,SAElD8tH,GAAO,CAEP,MAAMC,EACAD,EAAM/7G,MAAM,2CAElB+7G,EAAS,GAAEC,EAAU,MAAMA,EAAU,MAAMA,EAAU,MAI7D,GAAI34H,IAASqJ,KAAK+8C,QAAS,CACvB,IAAI40B,EAEJ,GAAIl/B,EAAE3tC,GAAKmsB,KAAK,sEAAsE16B,OAClFyJ,KAAKusH,qBACF,IAAK56C,EAASl/B,EAAE3tC,GAAKmsB,KAAK,4DAClB0gD,EAAOp7E,OAAQ,CAC1B,MAAMg5H,EAAiB98E,EAAE3tC,GAAKmsB,KAAK,4DACnC,IAAI0qB,EAEA4zE,GAAkBA,EAAeh5H,SACjColD,EAAW4zE,EAAe5tH,QAG9B3B,KAAKwf,aAAa0D,KAAKy3B,IAAWzqD,wBAC9ByG,EAAMg7E,EAAOpwE,KAAK,QAASgxG,EAAK52D,IAI5C,MAAM4D,EAAc9M,EAAE3tC,GAAKmsB,KAAK,iBAAiBtvB,OAEjD,GAAI49C,EAAa,CACb,MAAMC,EAAax/C,KAAKqf,KAAK+/B,sBAAsBG,GAKnD,GAAIC,QAAwBj/C,IAAV8uH,EAId,YAHArvH,KAAKwf,aAAa0D,KAAKy3B,IAAW1nD,sBAC9B0D,EAAM6oD,GAMd+yD,IACa,SAATtrG,EACAjH,KAAKwf,aAAa0D,KAAKy3B,IAAWxqD,yBAC1BwG,EAAM+xG,EAAM6J,EAAKvyG,KAAK0mG,UAAW2oB,GACzB,cAATpoH,GACPjH,KAAKwf,aAAa0D,KAAKy3B,IAAW1qD,iBAC1B0G,EAAM+xG,EAAM6J,EAAKvyG,KAAK0mG,UAAW2oB,IAUrDhF,gBAAgB56G,EAAM9Y,GAClB,GAAI87C,EAAEhjC,GACGwhB,KACG,mFAGH16B,OACL0nB,EAAOrZ,IAAI,uBAAwBjO,GACnCqJ,KAAKwf,aAAa0D,KAAKy3B,IAAWtpD,wBAC/B,GAAIohD,EAAEhjC,GACJwhB,KACG,kFAGH16B,OAAQ,CACIkF,UAAQoI,iBAAiB4L,EAAK7M,aAAa,SAE3C5C,KAAKqf,KAAKlY,QAAQs1C,MAAMD,gBAKrCx8C,KAAKwf,aAAa0D,KAAKy3B,IAAW1oD,kBAGlCgsB,EAAO9Y,KAAK,eAAgBsK,GAC5BzP,KAAKwf,aAAa0D,KACdy3B,IAAW3oD,sCAEhB,GAAIygD,EAAEhjC,GAAMwhB,KAAK,8BAA8B16B,OAClD0nB,EAAO9Y,KAAK,oDACRsK,GACJzP,KAAKwf,aAAa0D,KAAKy3B,IAAWxoD,2BAC/B,GAAIsgD,EAAEhjC,GACRwhB,KACG,0FAEkD16B,OAAQ,CAG9D,MAAMi5H,EAAgB/8E,EAAEhjC,GAAMwhB,KAAK,cACnC,IAAIw+F,EAEAD,EAAcj5H,SACdk5H,EAAeD,EAAc7tH,QAGjC3B,KAAKwf,aAAa0D,KAAKy3B,IAAWzoD,gCAAiCu9H,QAEnExxG,EAAO9Y,KAAK,eAAgBsK,GAC5BzP,KAAKwf,aAAa0D,KAAKy3B,IAAW5oD,oBAS1Cq2G,eAAezkG,EAAK6pH,GAChB,MAAMkC,EAAU/zH,cAAI,CAChBotC,GAAI/oC,KAAK+8C,QACT91C,KAAM,QAETta,EAAE,QAAS,CAAEsZ,MAAO,yCACpBtZ,EAAE,OAAQ,CACP6gI,cACA9kB,KAAMjtG,UAAQyI,mBAAmBP,KAEpChX,EAAE,UAAUa,EAAG,yCAAwCggI,OACvDrnH,KAAKA,KAAKA,KAEXnG,KAAKuU,WAAWnG,OACZshH,EACAjqH,GAAUwY,EAAOrZ,IAAI,4CAA6CjB,EAAK,KAAM6pH,EAAa/nH,GAC1FT,GAASiZ,EAAOrZ,IAAI,yCAA0CI,IAOtEsjG,KAAK3kG,GACD,MAAMgsH,EAASh0H,cAAI,CAAEotC,GAAI/oC,KAAK+8C,QAC1B91C,KAAM,QACLta,EAAE,QAAS,CAAEsZ,MAAO,yCACpBtZ,EAAE,OAAQ,CAAE+7G,KAAMjtG,UAAQyI,mBAAmBP,GAC1C89D,KAAM,SACT90E,EAAE,UAAUa,EAAE,yBAAyB2Y,KAAKA,KAAKA,KAEtDnG,KAAKuU,WAAWnG,OACZuhH,EACAlqH,GAAUwY,EAAOrZ,IAAI,8BAA+BjB,EAAK8B,GACzDT,GAASiZ,EAAOrZ,IAAI,2BAA4BI,IAYxDwiG,SAAS35G,EAAK0lB,EAAWq8G,EAASC,GAE9B7vH,KAAKuU,WAAWnG,OACZzS,cAAI,CACAotC,GAAI/oC,KAAK+8C,QACT91C,KAAM,QAELta,EAAE,QAAS,CAAEsZ,MAAO,yCACzBg4B,IACI,GAAIwU,EAAExU,GACGhN,KACG,0EAEH16B,OAAQ,CACb,MAAMu5H,EACAn0H,cAAI,CACFotC,GAAI/oC,KAAK+8C,QACT91C,KAAM,QAELta,EAAE,QAAS,CACRsZ,MAAO,yCAGnB6pH,EAAWnjI,EAAE,IAAK,CACdsZ,MAAO,gBACPgB,KAAM,WAEV6oH,EACKnjI,EAAE,QAAS,CAAE,IAAO,cACpBA,EAAE,SACFa,EAAE,6CACF2Y,KACAA,KACL2pH,EACKnjI,EAAE,QAAS,CAAE,IAAO,8BACpBA,EAAE,SACFa,EAAEK,GACFsY,KACAA,KACL2pH,EACKnjI,EAAE,QACE,CAAE,IAAO,yCACbA,EAAE,SACFa,EAAU,OAARK,GAA+B,IAAfA,EAAI0I,OAAe,IAAM,KAC3C4P,KACAA,KAGDnG,KAAKmxG,oBACL2e,EACKnjI,EAAE,QAAS,CAAE,IAAO,+BACpBA,EAAE,SACFa,EAAE,QACF2Y,KACAA,KAKT2pH,EACKnjI,EAAE,QAAS,CAAE,IAAO,yBACpBA,EAAE,SACFa,EAAE,UACF2Y,KACAA,KAELnG,KAAKuU,WAAWnG,OAAO0hH,EAAYv8G,EAAWq8G,QAE9CC,KAGRD,GAYRG,eAAezmD,EAAS/1D,EAAWq8G,GAC3BtmD,GAAWt8E,OAAOo2B,OAAOpjB,KAAKgrH,SAASt6F,OAAOhkC,IAAMA,EAAEk+G,SAASr0G,QAI/DvJ,OAAOo2B,OAAOpjB,KAAKgrH,SAAS57G,QAAQ1iB,IAC5BA,EAAEiX,MAAQonH,EAAqBt3F,SAAS/mC,EAAE8gI,cAC1CxtH,KAAKqf,KAAK9K,WAAWnG,OACjBzS,cAAI,CACAotC,GAAI/oC,KAAK+8C,QACT91C,KAAM,QACTta,EAAE,QAAS,CACRsZ,MAAO,yCACVtZ,EAAE,OAAQ,CACP,YAAe,SACf,IAAOD,EAAEiX,MACVwC,KAAKA,QAKxB,MAAMgyD,EAAgBy3D,GAAoB,SAE1C5vH,KAAKqf,KAAK9K,WAAWnG,OACjBzS,cAAI,CACAotC,GAAI/oC,KAAK+8C,QACT91C,KAAM,QACPta,EAAE,QAAS,CAAEsZ,MAAO,yCACvBg4B,IACI,GAAIwU,EAAExU,GAAKhN,KAAK,2EAA2E16B,OAAQ,CAC/F,MAAMy5H,EACAr0H,cAAI,CACFotC,GAAI/oC,KAAK+8C,QACT91C,KAAM,QACPta,EAAE,QAAS,CAAEsZ,MAAO,yCAE3B+pH,EAAarjI,EAAE,IAAK,CAChBsZ,MAAO,gBACPgB,KAAM,WAEV+oH,EACKrjI,EAAE,QAAS,CAAE,IAAO,cACpBA,EAAE,SACFa,EAAE,6CACF2Y,KACAA,KACL6pH,EACKrjI,EAAE,QAAS,CAAE,IAAO,+BACpBA,EAAE,SACFa,EAAE87E,EAAU,OAAS,SACrBnjE,KACAA,KAGDnG,KAAK4rH,QACLoE,EACKrjI,EAAE,QACC,CAAE,IAAO,yCACZA,EAAE,SACFa,EAAE,KACF2Y,KACAA,KAGTnG,KAAKqf,KAAK9K,WAAWnG,OAAO4hH,EAAcz8G,EAAW4kD,QAErDA,EAAc,IAAI9gE,MAAM,8CAGhC8gE,GAQRgsB,cAAct2F,EAAKu1B,GACfA,EAAOjjB,QAAUtS,EACjBmS,KAAKylG,mBAAmB53G,GACxBmS,KAAKgtG,QAAQC,MAAM/pG,KAAKkgB,GACxBpjB,KAAKgsH,mBAAqB7jH,KAAKgM,MASnCgxF,gBAAgBt3G,GACZ,OAAOmS,KAAKgtG,QAAQC,MAAMh8E,KAAK/vB,GAAQrT,IAAQqT,EAAKf,SAOxDslG,mBAAmB53G,GACf,MAAMo/G,EAAQjtG,KAAKgtG,QAAQC,MAAMv8E,OAAOxvB,GAAQrT,IAAQqT,EAAKf,SAE7DH,KAAKgtG,QAAQC,MAAQA,EACrBjtG,KAAKgsH,mBAAqB7jH,KAAKgM,MAQnC2wF,oBAAoBj4G,EAAM0X,GACtB,GAAuB,mBAAZA,EACP,MAAM,IAAIlN,MAAM,+BAEpB,IAAIo3H,EAAczuH,KAAKirH,aAAap+H,GAE/B4hI,IACDzuH,KAAKirH,aAAap+H,GAAQ4hI,EAAc,KAEN,IAAlCA,EAAY7qH,QAAQW,GACpBkqH,EAAYvrH,KAAKqB,GAEjB0Z,EAAO9Y,KACF,sDAAqDtY,GASlEm4G,uBAAuBn4G,EAAM0X,GACzB,MAAMkqH,EAAczuH,KAAKirH,aAAap+H,GAChCojI,EAAaxB,EAAcA,EAAY7qH,QAAQW,IAAY,GAG7C,IAAhB0rH,EACAxB,EAAYxqH,OAAOgsH,EAAY,GAE/BhyG,EAAO9Y,KAAM,gBAAetY,wBAYpC+9G,QAAQ8C,GACJ,MAAMwf,EAASltH,KAAKgrH,QAAQtd,GAE5B,OAAIwf,EACOA,EAAOtiB,QAGX,KAMXhF,cACI,MAAqB,cAAd5lG,KAAKyhE,KAOhByuD,cAAc9f,GACV,OAAIpwG,KAAKgrH,QAAQ5a,GACNpwG,KAAKgrH,QAAQ5a,GAAS3uC,KAG1B,KAQXwlC,aAAap/D,EAAMr8B,GACfxL,KAAKmwH,sBAAsBtoF,GACvBr8B,GACAA,EAASq8B,GASjBH,aAAaG,EAAMr8B,GACf,OAAOxL,KAAKowH,sBAAsBvoF,EAAMr8B,GAO5C6kH,uBAAuBxoF,GACnB7nC,KAAKmkF,cACD,aACA,CACIlnF,WAAY,CAAE,MAAS,kCACvB1P,MAAOs6C,EAAKnxC,aASxB05H,sBAAsBvoF,EAAMr8B,GACxBxL,KAAKqwH,uBAAuBxoF,GAG5B7nC,KAAK0N,eACDlC,GACAA,IAQRugH,uBAAuBlkF,GACnB7nC,KAAKmkF,cACD,aACA,CACIlnF,WAAY,CAAE,MAAS,kCACvB1P,MAAOs6C,EAAKnxC,aAQxBy5H,sBAAsBtoF,GAClB7nC,KAAK+rH,uBAAuBlkF,GAC5B7nC,KAAK0N,eAcT4iH,qBAAqBt0D,EAAYrwC,GAE7B,MAAMlc,EAAOzP,KAAKwrH,cAAe,GAAExrH,KAAK+8C,WAAWif,KAEnD,IAAKvsD,EAED,OAAO,KAEX,MAAM9V,EAAO,CACTmrB,OAAO,EACP0Z,eAAWj+B,GAEf,IAAIgwH,EAAY,KAEhB,GAAI5kG,IAAc4S,IACdgyF,EAAYzF,EAA2Br7G,EAAM,kBAC1C,IAAIkc,IAAc4S,IAUrB,OAFAtgB,EAAOjZ,MAAO,2BAA0B2mB,GAEjC,KAV+B,CACtC4kG,EAAYzF,EAA2Br7G,EAAM,cAC7C,MAAM+gH,EAAgB1F,EAA2Br7G,EAAM,aAEnD+gH,EAAcj6H,OAAS,IACvBoD,EAAK6kC,UAAYgyF,EAAc,GAAGjjI,QAU1C,OAFAoM,EAAKmrB,MAAQyrG,EAAUh6H,OAAS,GAA4B,SAAvBg6H,EAAU,GAAGhjI,MAE3CoM,EAMXsyG,wBACI,QAAIjsG,KAAKokG,WACEpkG,KAAKokG,UAAUqsB,sBAU9BhzE,KAAKhM,GACD,OAAOzxC,KAAKuU,WAAW4lC,KAAKsD,KAAKhM,EAAQ,aACrCh2C,UAAQsI,kBAAkB/D,KAAK0mG,WAAY1mG,KAAK27C,SAChD37C,KAAKu4F,aAMb2T,SACI,OAAOlsG,KAAKuU,WAAW4lC,KAAK+xD,SAOhC+E,WACI,OAAOjxG,KAAKqrH,MAMhBhf,iBACI,OAAOrsG,KAAKyrH,YAMhBnf,cACI,OAAOtsG,KAAK0rH,SAQhBlf,eACI,OAAOxsG,KAAK6wG,UAQhBpK,gBAAgB9iG,EAAKkkC,GACjB5pB,EAAO/Y,KAAK,WAAY2iC,GACxB,MAAM6oF,EAAY/0H,cACd,CAAEotC,GAAI/oC,KAAKu4F,YACPtxF,KAAM,QACTta,EAAE,OAAQ,CACPsZ,MAAO,iCACPtC,QAEHnW,EAAEq6C,EAAKnxC,YACPyP,KAELnG,KAAKuU,WAAWnG,OACZsiH,EACAjrH,GAAUwY,EAAOrZ,IAAI,WAAYa,GACjCT,GAASiZ,EAAOrZ,IAAI,iBAAkBI,IAO9CulH,OAAOt3G,GAGH,GAFaA,EAAGrQ,aAAa,UAEhB5C,KAAKu4F,YAGd,YAFAt6E,EAAO9Y,KAAK,oCAIhB,MAAM0iC,EAAO4K,EAAEx/B,GAAIge,KAAK,QAEpB4W,EAAKtxC,QAA0B,SAAhBsxC,EAAKlmC,OACpB3B,KAAKwf,aAAa0D,KAAKy3B,IAAWpsD,qBAAsBs5C,EAAKtmC,KAAK,UAKlE0c,EAAO9Y,KAAK,sFAQpBwrH,QACI3wH,KAAKkrH,qBAAqB97G,QAAQ0jE,GAAUA,KAC5C9yE,KAAKkrH,qBAAuB,GAE5BlrH,KAAKojG,QAAS,EASlBI,QACI,OAAO,IAAIxmE,QAAQ,CAACC,EAASC,KACzB,MAAMtvB,EAAUrD,WAAW,IAAMqmH,GAAU,GAAO,KAC5CpxG,EAAexf,KAAKwf,aAQ1B,SAASoxG,EAAUC,GAAW,GAC1BrxG,EAAasC,eAAe64B,IAAW9pD,SAAU+/H,GACjDnjH,aAAaG,GACTijH,EAEA3zF,EAAO,IAAI7lC,MAAM,qEAGjB4lC,IAdRj9B,KAAK2wH,QAiBLnxG,EAAamC,GAAGg5B,IAAW9pD,SAAU+/H,GACrC5wH,KAAKyqH,gB,qECjsDjB,gFAKA,MAAMxsG,EAASF,oBAAUM,GAaV,MAAMitG,EAOjBr1H,YAAYkpD,GACRn/C,KAAKqf,KAAO8/B,EAAK9/B,KACjBrf,KAAK8wH,SAAW3xE,EAEhB,MAAM4xE,EAAqB/wH,KAAKgxH,oBAAoBljI,KAAKkS,MAEzDA,KAAK8wH,SAASz0F,iBACVse,IAAW5qD,mBACXghI,GAEJ/wH,KAAK8wH,SAASz0F,iBACVse,IAAW3pD,yBACX+/H,GAEJ/wH,KAAK8wH,SAASz0F,iBACVse,IAAWzoD,gCACXyR,IACI3D,KAAKyvH,aAAe9rH,IAShC65B,cACI,OAAOx9B,KAAKqf,KAAKg8B,eAQrB7Z,SACI,OAAKxhC,KAAKw9B,cAIH,IAAIR,QAAQ,CAACC,EAASC,KACzBl9B,KAAK8wH,SAASf,gBAAe,EAAM9yF,EAASC,KAJrCF,QAAQE,OAAO,IAAI7lC,MAAM,yBAaxCi6G,UACStxG,KAAKw9B,eAAkBx9B,KAAK8wH,SAASlrB,eAC9B5lG,KAAKixH,WAAcjxH,KAAK8wH,SAAS3f,oBAI7CnxG,KAAK8wH,SAASf,gBAAe,GAOjCmB,kBACQlxH,KAAKixH,WACLjxH,KAAKixH,UAAUztB,QACV9oE,KAAK,KACF16B,KAAKixH,eAAY1wH,EACjB0d,EAAO/Y,KAAK,sBAEfk4B,MAAM,QASnByvF,gBAAgBlpH,GACZ3D,KAAKyvH,aAAe9rH,EAOxBqtH,sBACI,IAAKhxH,KAAKw9B,cACN,OAGgBx9B,KAAK8wH,SAAS1tB,QAAUpjG,KAAK8wH,SAASlrB,eAEvC5lG,KAAK8wH,SAAS3f,qBAAuBnxG,KAAKixH,WAEzDjxH,KAAKmD,OACAu3B,KAAK,IAAMzc,EAAO/Y,KAAK,sBACvBk4B,MAAM/jC,GAAK4kB,EAAOjZ,MAAM,uBAAwB3L,IAW7D8J,KAAK0oF,EAAa2lB,GACd,MAAM5L,EAAc5lG,KAAK8wH,SAAS1tB,QAAUpjG,KAAK8wH,SAASlrB,cAE1D,IAAK5lG,KAAKyvH,aACN,OAAOzyF,QAAQE,OAAO,IAAI7lC,MAAM,kDAGpC,MAAMwlD,EAAWphD,UAAQiI,eAAe1D,KAAKyvH,cACvCzyE,EAAevhD,UAAQoI,iBAAiB7D,KAAKyvH,cAmHnD,OAjHAzvH,KAAKixH,UAAYjxH,KAAKqf,KAAKu9B,WACvBC,EAAU,CACNG,eACA8vE,kBAAkB,EAClBZ,cAAc,EACd9a,aAAa,IAIjBvlB,IAEA7rF,KAAKixH,UAAUxrB,mBAAmB,QAClCzlG,KAAKixH,UAAU9sC,cAAc,OAAQ,CACjClnF,WAAY,CAAEgJ,MAAO,mCACrB1Y,MAAOs+F,KAIX+Z,GACA5lG,KAAKixH,UAAUnsB,oBAvJL,QAuJwC,CAAC5jG,EAAMvK,KACrDqJ,KAAK8wH,SAAStxG,aAAa0D,KAAKy3B,IAAWjqD,yBAA0BiG,EAAM,CAAE66G,MAAOtwG,EAAK3T,UAE7FyS,KAAKixH,UAAU50F,iBACXse,IAAWpqD,kBAEX,CAACoG,EAAM+xG,EAAMjnC,EAAMisD,EAAgB/kB,EAAS54F,EAAQmrC,EAAU0tD,EAASjlG,KAE/D3W,OAAOo2B,OAAOpjB,KAAK8wH,SAAS9F,SAAS/5F,KAAKvkC,GAAKA,EAAEiX,MAAQA,IAM7D3D,KAAK8wH,SAAStxG,aAAa0D,KACvBy3B,IAAWlqD,wBACXgL,UAAQyI,mBAAmBvN,GAC3B+xG,EACAxtD,EAAWA,EAASi2E,YAAS5wH,KAGzCP,KAAKixH,UAAU50F,iBACXse,IAAWnqD,gBAAiBmG,IAGxBqJ,KAAK8wH,SAAStxG,aAAa0D,KACvBy3B,IAAWhqD,sBACX8K,UAAQyI,mBAAmBvN,MAGvCqJ,KAAKixH,UAAU50F,iBACXse,IAAWtqD,cACX,KAEIrD,OAAOuY,KAAKvF,KAAKixH,UAAUjG,SACtB57G,QAAQlW,GAAK8G,KAAK8wH,SAAStxG,aAAa0D,KACrCy3B,IAAWhqD,sBAAuB8K,UAAQyI,mBAAmBhL,KAErE8G,KAAKixH,UAAUN,QAEf3wH,KAAKixH,eAAY1wH,EACjB0d,EAAO/Y,KAAK,mCAIpBlF,KAAKixH,UAAU50F,iBAAiBse,IAAW7qD,OAAQ05G,IAC/C,GAAIA,EAKA,OAJAxpG,KAAK8wH,SAAStxG,aAAa0D,KAAKy3B,IAAW/pD,wBAE3CoP,KAAKixH,UAAUN,UASvB3wH,KAAK8wH,SAASz0F,iBACVse,IAAWzqD,wBACX,CAACg1B,EAASvuB,EAAM47G,EAAK6e,KACjBnzG,EAAOhZ,MAAO,6BAA4BigB,KAAWvuB,KAAQ47G,KACzDrtF,IAAYllB,KAAK8wH,SAAS/zE,UAE1B/8C,KAAK8wH,SAAS3tH,KAAKiuH,GAEnBpxH,KAAKkxH,qBAGjBlxH,KAAKixH,UAAU50F,iBACXse,IAAWtqD,cACX,CAACmf,EAAQ7L,KAGDA,GAAOA,IAAQ3D,KAAK8wH,SAAS/zE,QAC7B/8C,KAAK8wH,SAAS3tH,QAKlBnD,KAAKixH,UAAUN,QAEf3wH,KAAK8wH,SAAStxG,aAAa0D,KAAKy3B,IAAWtqD,cAAemf,MAKlExP,KAAK8wH,SAASz0F,iBACVse,IAAWrqD,WACX,KACI0P,KAAKkxH,qBAIV,IAAIl0F,QAAQ,CAACC,EAASC,KACzBl9B,KAAKixH,UAAU50F,iBAAiBse,IAAWrqD,WAAY,KACnD2sC,IAGIu0E,IAAU5L,IACV5lG,KAAKixH,UAAUxrB,mBA3Pb,SA4PFzlG,KAAKixH,UAAU9sC,cA5Pb,QA4P0C,CAAE52F,MAAOikH,IACrDxxG,KAAKixH,UAAUvjH,kBAGvB1N,KAAKixH,UAAU50F,iBAAiBse,IAAW1oD,gBAAiBirC,GAC5Dl9B,KAAKixH,UAAU50F,iBAAiBse,IAAW3oD,+BAAgCkrC,GAC3El9B,KAAKixH,UAAU50F,iBAAiBse,IAAW5oD,mBAAoBmrC,GAE/Dl9B,KAAKixH,UAAU9tH,SASvBuuG,WAAWxqG,GACP,IAAKlH,KAAKw9B,gBAAkBx9B,KAAK8wH,SAASlrB,cACtC,OAGJ,MAAMjiG,EAAM3W,OAAOuY,KAAKvF,KAAKixH,UAAUjG,SAClC/5F,KAAK/3B,GAAKuC,UAAQyI,mBAAmBhL,KAAOgO,GAE7CvD,EACA3D,KAAKixH,UAAU3oB,KAAK3kG,GAEpBsa,EAAOjZ,MAAO,wBAAuBkC,oBAQ7C0qG,cAAc1qG,GACV,IAAKlH,KAAKw9B,gBAAkBx9B,KAAK8wH,SAASlrB,cACtC,OAGJ,MAAMyrB,EAAgBrkI,OAAOuY,KAAKvF,KAAKixH,UAAUjG,SAC5C/5F,KAAK/3B,GAAKuC,UAAQyI,mBAAmBhL,KAAOgO,GAEjD,GAAImqH,EAAe,CACf,MAAM1tH,EAAM3D,KAAKixH,UAAUjG,QAAQqG,GAAe1tH,IAC5C2tH,EACAr0G,eAAK,CAAE8rB,GAAI/oC,KAAK8wH,SAAS/zE,UACtBpwD,EAAE,IAAK,CAAEsZ,MAAO,wCAChBtZ,EAAE,SAAU,CAAEo8C,GAAIplC,IAE3B3D,KAAKqf,KAAK9K,WAAWnG,OAAOkjH,EACxB,OACAj4H,IACI4kB,EAAOjZ,MAAO,4BAA2BrB,EAAOtK,UAGxD4kB,EAAOjZ,MAAO,wBAAuBqsH,wB,kECjUjD,wEAOA,MAAM/e,EACAl1F,EAAQ,IACRu9B,EAAav9B,EAAQ,GACrBwa,EAAuBxa,EAAQ,IAE/Ba,EAASF,oBAAUM,GAMzB,SAASkzG,EAAsBC,GAC3B,IAAI5kF,EAAQ,EAEZ,OAAO,SAASvkC,GAEZ,GAAIA,EAGA,YAFAukC,EAAQ,GAMZ,MAAMh/B,EAAUxC,KAAKsP,IAAI,EAAGkyB,EAAQ,GAIpC,OAFAA,GAAS,EAEFh/B,EAAU4jH,GAaV,SAASpG,EAAUvuE,EAAUx9B,EAAMssB,EAASxkC,GA0BvD,SAASua,EAAS2F,GACd,GAAIA,EAAM1tB,MAAQ0tB,EAAM1tB,KAAK44C,UAAW,CACpC,GAAIlrB,EAAMoqG,SAAWvlI,OAAO6uB,SAAS02G,OAKjC,YAJAxzG,EAAO9Y,KACF,6CACGkiB,EAAMoqG,QAIlB/wB,IAASnuD,UAAYlrB,EAAM1tB,KAAK44C,WAlCxCvyC,KAAK68C,SAAWA,EAChB78C,KAAK0xH,YAAcryG,EACnBrf,KAAK2xH,eAAiBJ,EAAsB,KAC5CvxH,KAAK4xH,oBAAsBL,EAAsB,KAGjDvxH,KAAK6xH,qBAAsB,EAC3B7xH,KAAKmH,QAAUA,EAKfnH,KAAK8xH,kBACC9xH,KAAKmH,QAAQoN,WAAWkoC,YAC4Bl8C,IAA/CP,KAAKmH,QAAQoN,WAAWkoC,MAAMs1E,aAEzC/xH,KAAKwf,aAAemsB,EAEpB3rC,KAAKuU,WAAavU,KAAK0xH,YAAYn9G,WAuB/BroB,OAAOmwC,iBACPnwC,OAAOmwC,iBAAiB,UAAW3a,GAAU,GAE7Cx1B,OAAO8lI,YAAY,YAAatwG,GAMxC0pG,EAAUl9H,UAAUi2G,sBAAwB,WACxC,OAAOnkG,KAAK6xH,qBAGhBzG,EAAUl9H,UAAUuiI,oBAAsB,WACtC,OAAOzwH,KAAK8xH,mBAGhB1G,EAAUl9H,UAAU2gI,gBAAkB,SAASlrH,GAC3Csa,EAAO/Y,KAAM,8BAA6BvB,GAGzB,UAFAlI,UAAQyI,mBAAmBP,KAGxCsa,EAAO/Y,KACH,gDACJlF,KAAKwf,aAAa0D,KAAKy3B,EAAWjrD,cAI1C07H,EAAUl9H,UAAU+jI,gBAAkB,SAASC,GACtClyH,KAAKmyH,eACNnyH,KAAKmyH,aAAeD,EACpBj0G,EAAO/Y,KAAM,sBAAqBlF,KAAKmyH,gBAI/C/G,EAAUl9H,UAAUu/H,gBAAkB,WAClC,OAAOztH,KAAKmyH,cAGhB/G,EAAUl9H,UAAUkkI,kBAAoB,WAEpC,IAAIC,EAAiBryH,KAAKmH,QAAQoN,WAAWkoC,MAAM46D,MAQnD,OAJKgb,IACDA,EAAkB,SAAQryH,KAAKmH,QAAQoN,WAAWkoC,MAAM3hD,QAGrDu3H,GAGXjH,EAAUl9H,UAAUokI,mBAAqB,WAErC,MAAM5yH,EAAO/D,cAAI,CAAEotC,GAAI/oC,KAAKoyH,oBACxBnrH,KAAM,SAGJ,UAAEsrC,GAAcmuD,IAChB6xB,EAAa7xB,IAAS8xB,UACtBh/F,EAASxzB,KAAKmH,QAAQob,WA6G5B,IAAIkwG,EAEJ,OA7GAx0G,EAAO/Y,KAAM,eAAcqtC,kBAA0BggF,KAErD7yH,EAAK/S,EAAE,aAAc,CACjBsZ,MAAO,kCACPk5C,KAAMn/C,KAAK68C,SACX,cAAe01E,IAGfhgF,GACA7yC,EAAKlE,MAAM,CAAE,aAAc+2C,SAEgBhyC,IAA3CP,KAAKmH,QAAQoN,WAAWm+G,gBACxBhzH,EAAK/S,EACD,WAAY,CACRE,KAAM,iBACNU,MAAOyS,KAAKmH,QAAQoN,WAAWm+G,iBAChCvsH,UAI2B5F,IAAlCP,KAAKmH,QAAQoN,WAAWkoC,YAC0Bl8C,IAA/CP,KAAKmH,QAAQoN,WAAWkoC,MAAMs1E,cACjCryH,EAAK/S,EACD,WAAY,CACRE,KAAM,eACNU,MAAOyS,KAAKmH,QAAQoN,WAAWkoC,MAAMs1E,eACtC5rH,UAEiB5F,IAAxBizB,EAAOkvE,cACPhjG,EAAK/S,EACD,WAAY,CACRE,KAAM,eACNU,MAAOimC,EAAOkvE,eACfv8F,KAEXzG,EAAK/S,EACD,WAAY,CACRE,KAAM,aACNU,MAAOorC,QAAQnF,EAAOumB,cACvB5zC,UAEkB5F,IAArBizB,EAAOm/F,WACPjzH,EAAK/S,EACG,WAAY,CACRE,KAAM,YACNU,MAAOorC,QAAQnF,EAAOm/F,aACvBxsH,UAEW5F,IAAtBizB,EAAOo/F,YACPlzH,EAAK/S,EACG,WAAY,CACRE,KAAM,aACNU,MAAOorC,QAAQnF,EAAOo/F,cACvBzsH,MAEc,IAAzBqtB,EAAOwmB,eACPt6C,EAAK/S,EACG,WAAY,CACRE,KAAM,gBACNU,OAAO,IACR4Y,UAEgB5F,IAA3BizB,EAAOq/F,iBACPnzH,EAAK/S,EACG,WAAY,CACRE,KAAM,kBACNU,MAAOimC,EAAOq/F,kBACf1sH,KAGfzG,EAAK/S,EACD,WAAY,CACRE,KAAM,gBACNU,OAAiD,IAA1CyS,KAAKmH,QAAQoN,WAAW2lC,gBAChC/zC,UACyB5F,IAA5BizB,EAAOs/F,kBACPpzH,EAAK/S,EACD,WAAY,CACRE,KAAM,mBACNU,MAAOimC,EAAOs/F,mBACf3sH,KAEPqtB,EAAOu/F,cACPrzH,EAAK/S,EACD,WAAY,CACRE,KAAM,eACNU,MAAOimC,EAAOu/F,eACf5sH,KAEPqtB,EAAOw/F,YACPtzH,EAAK/S,EACD,WAAY,CACRE,KAAM,aACNU,MAAOimC,EAAOw/F,aACf7sH,KAEPqtB,EAAO01C,SAAW11C,EAAO01C,QAAQ+pD,MACa,iBAApCz/F,EAAO01C,QAAQ+pD,KAAKC,aAC1B9nH,KAAKC,SAAWmoB,EAAO01C,QAAQ+pD,KAAKC,aACpCxzH,EAAK/S,EACD,WAAY,CACRE,KAAM,OACNU,OAAO,IACR4Y,KAMPnG,KAAKmH,QAAQob,WAAW6oF,mBAChC,IAAK,cACL,KAAK,EACL,UAAK7qG,EACDkyH,GAAW,EACX,MACJ,IAAK,YACDA,GAAW,EA+Cf,OA3CA/yH,EAAK/S,EACD,WAAY,CACRE,KAAM,WACNU,MAAOklI,IACRtsH,KAEHqtB,EAAO2/F,uBACPzzH,EAAK/S,EACD,WAAY,CACRE,KAAM,wBACNU,MAAOimC,EAAO2/F,wBACfhtH,UAEqC5F,IAA5CP,KAAKmH,QAAQob,WAAWk8E,iBACxB/+F,EAAK/S,EACD,WAAY,CACRE,KAAM,kBACNU,MAAOyS,KAAKmH,QAAQob,WAAWk8E,kBAChCt4F,UAEqC5F,IAA5CP,KAAKmH,QAAQob,WAAWm8E,iBACxBh/F,EAAK/S,EACD,WAAY,CACRE,KAAM,kBACNU,MAAOyS,KAAKmH,QAAQob,WAAWm8E,kBAChCv4F,UAE4B5F,IAAnCP,KAAKmH,QAAQob,WAAW6wG,QACxB1zH,EAAK/S,EACD,WAAY,CACRE,KAAM,SACNU,MAAOyS,KAAKmH,QAAQob,WAAW6wG,SAChCjtH,UAEiD5F,IAAxDP,KAAKmH,QAAQob,WAAW8wG,6BACxB3zH,EAAK/S,EACD,WAAY,CACRE,KAAM,8BACNU,MAAOyS,KAAKmH,QAAQob,WAAW8wG,8BAChCltH,KAEXzG,EAAKyG,KAEEzG,GAIX0rH,EAAUl9H,UAAUolI,eAAiB,SAASC,GAE1C,MAAMhhF,EAAYE,EAAE8gF,GAAUtiG,KAAK,cAAc1vB,KAAK,cAElDgxC,IACAt0B,EAAO/Y,KAAM,wBAAuBqtC,GACpCmuD,IAASnuD,UAAYA,IAI7B64E,EAAUl9H,UAAUslI,mBAAqB,SAASD,GAE9CvzH,KAAKiyH,gBAAgBx/E,EAAE8gF,GAAUtiG,KAAK,cAAc1vB,KAAK,aAEzD,MAAMkyH,EACAhhF,EAAE8gF,GAAUtiG,KACV,6DAC+C16B,OAAS,EAEhE0nB,EAAO/Y,KAAM,2BAA0BuuH,GAEvCzzH,KAAK6xH,oBAAsBp/E,EAAE8gF,GAAUtiG,KACnC,2DACiD16B,OAAS,EAE9D0nB,EAAO/Y,KACF,oCAAmClF,KAAK6xH,qBAExC7xH,KAAK6xH,qBAEN7xH,KAAKszH,eAAeC,GAIxB,MAAMtvB,EAAexxD,EAAE8gF,GAAUtiG,KAAK,eAAe1vB,KAAK,YAE1DvB,KAAKwf,aAAa0D,KAAKovF,EAAqBtlB,iBACxCymC,EAAuBxvB,GAIvBxxD,EAAE8gF,GAAUtiG,KACZ,gEACkD16B,SAClDyJ,KAAK8xH,mBAAoB,GAG7B7zG,EAAO/Y,KAAM,yBAAwBlF,KAAK8xH,oBAa9C1G,EAAUl9H,UAAUi+H,wBAA0B,WAC1C,OAAO,IAAInvF,QAAQC,IAEfj9B,KAAKiyH,gBAAgBjyH,KAAKmH,QAAQoN,WAAW49G,cAG7CnyH,KAAKuU,WAAWnG,OACZpO,KAAKsyH,qBACL7sH,GAAUzF,KAAK0zH,gCAAgCjuH,EAAQw3B,GACvDj4B,GAAShF,KAAK2zH,8BAA8B3uH,EAAOi4B,IAMvDj9B,KAAKuU,WAAW/G,WAaxB49G,EAAUl9H,UAAUylI,8BAAgC,SAAS3uH,EAAOwG,GAGhE,MAAMooH,EACAnhF,EAAEztC,GAAOisB,KAAK,0BAA0B16B,QACnCk8C,EAAEztC,GAAOisB,KAAK,yBAAyB16B,OAMlD,GAJIq9H,IACA31G,EAAO/Y,KAAK,+BACZw7F,IAASnuD,eAAYhyC,GAErBkyC,EAAEztC,GAAOisB,KAAK,4BAA4B16B,OAG1C,YAFAyJ,KAAKwf,aAAa0D,KAAKy3B,EAAWhrD,mBAMtC,MAAMkkI,EAAiBphF,EAAEztC,GAAOisB,KAAK,4BAErC,GAAI4iG,EAAet9H,OAAQ,CAEvB,MAAMu9H,EAAYD,EAAetyH,KAAK,cAChCwyH,EAAgBthF,EAAEztC,GAAOisB,KAAK,eACpC,IAAIynC,EAUJ,OARIq7D,IACAr7D,EAAWq7D,EAAcpyH,aAE7B3B,KAAKwf,aAAa0D,KACdy3B,EAAW7oD,kBACXgiI,EACAp7D,GAMR,GAAIjmB,EAAEztC,GAAOisB,KAAK,yBAAyB16B,OAAQ,CAC/C0nB,EAAO9Y,KAAK,uCAAwCH,GAUpD,OATiBvJ,UAAQoI,iBAAiBmB,EAAMpC,aAAa,SAE5C5C,KAAKmH,QAAQoN,WAAWkoC,MAAMD,kBAG3Cx8C,KAAK6xH,qBAAsB,QAE/B7xH,KAAKwf,aAAa0D,KAAKy3B,EAAWnsD,yBAItC,MAAMwlI,EAASh0H,KAAK4xH,sBACdj6F,EAAU,4BAA2Bq8F,EAE3Cp8F,EAAqBC,iBAAiB,IAAIxgC,MAAMsgC,IAChD1Z,EAAOjZ,MAAM2yB,EAAQ3yB,GAGrB,MAAMqtH,EAAiBryH,KAAKoyH,oBACtB6B,EAAWD,EAAS,IAKrBJ,GACD5zH,KAAKwf,aAAa0D,KACdy3B,EAAWlrD,mBACX4iI,EACA4B,GAIRj0H,KAAK2xH,gBAAe,GACpBzlI,OAAOqe,WACH,IAAMvK,KAAKmsH,0BAA0BzxF,KAAKlvB,GAC1CwoH,IAYR5I,EAAUl9H,UAAUwlI,gCAAkC,SAC9CjuH,EACA+F,GAQJ,GANAxL,KAAKwzH,mBAAmB/tH,GAGxBzF,KAAK4xH,qBAAoB,GAG0B,SAA/Cn/E,EAAEhtC,GAAQwrB,KAAK,cAAc1vB,KAAK,SAElCvB,KAAK2xH,gBAAe,GAGpBnmH,QACG,CACH,MAAMwoH,EAASh0H,KAAK2xH,iBAEpB1zG,EAAO/Y,KAAM,4BAA2B8uH,GACxC9nI,OAAOqe,WACH,IAAMvK,KAAKmsH,0BAA0BzxF,KAAKlvB,GAC1CwoH,KAIZ5I,EAAUl9H,UAAUujB,aAAe,WAC/B,OAAO,IAAIurB,QAAQ,CAACC,EAASC,KACzBl9B,KAAKuU,WAAWnG,OACZpO,KAAKsyH,qBACL7sH,IACIzF,KAAKszH,eAAe7tH,GACpBw3B,KAEJ07D,GAAWz7D,EAAO,CACdl4B,MAAOytC,EAAEkmD,GAAS1nE,KAAK,mBAClBi8E,KAAK,WACVzoG,QAASguC,EAAEkmD,GAAS1nE,KAAK,iBACpBtvB,aAMrBypH,EAAUl9H,UAAUs2G,YAAc,SAAS0vB,EAAaC,GACpDn0H,KAAKo0H,cAAyB,EAAOF,EAAaC,IAUtD/I,EAAUl9H,UAAUkmI,aAAe,SAASC,EAAOC,EAAOv7C,GACtD,MAAM9lE,EAAKtX,cAAI,CAAEotC,GAAI/oC,KAAKoyH,oBACtBnrH,KAAM,QACJzL,EAAQ,CACVyK,MAAO,kCACPk5C,KAAMn/C,KAAK68C,SACX,cAAe6jD,IAAS8xB,WAE5B,IAAIp7H,EAAM,WAeV,SAASwuD,EAAYjuB,EAAQxnB,GACzBynB,EAAqBC,iBAAiB,IAAIxgC,MAAMsgC,IAChD1Z,EAAOjZ,MAAM2yB,EAAQxnB,GACrB4oE,EAAU5oE,GAhBVkkH,IACA74H,EAAM64H,OAAQ,EACdj9H,EAAO,SAAQA,GAEnB6b,EAAGtmB,EAAE,YAAa6O,GAclBwE,KAAKuU,WAAWnG,OACZ6E,EACAxN,IAEI,IAAIs7B,EAAM0R,EAAEhtC,GAAQwrB,KAAK,aAAa1vB,KAAK,OAE3Cw/B,EAAMwzF,mBAAmBxzF,GACrBA,GACA9iB,EAAO/Y,KAAM,OAAM9N,MAAQ2pC,KAC3BuzF,EAAMvzF,IAEN6kB,EAAa,iBAAgBxuD,mBAAsBqO,IAG3DmgD,EAAY93D,UAAKyS,EAAY,OAAMnJ,aAI3Cg0H,EAAUl9H,UAAUq2G,iBAAmB,SAAS2vB,EAAaC,GACzDn0H,KAAKo0H,cAAyB,EAAMF,EAAaC,IAGrD/I,EAAUl9H,UAAUsmI,OAAS,SAAShpH,GAClC,MAAMyH,EAAKtX,cAAI,CAAEotC,GAAI/oC,KAAKoyH,oBACtBnrH,KAAM,SACJ,UAAEsrC,GAAcmuD,IAEjBnuD,GAKLt/B,EAAGtmB,EAAE,SAAU,CACXsZ,MAAO,kCACP,aAAcssC,IAElBvyC,KAAKuU,WAAWnG,OACZ6E,EACAxN,IAEI,IAAIgvH,EAAYhiF,EAAEhtC,GAAQwrB,KAAK,UAAU1vB,KAAK,cAE1CkzH,IACAA,EAAYF,mBAAmBE,IAEnCx2G,EAAO/Y,KAAM,oBAAmBuvH,EAAahvH,GAC7Ci7F,IAASnuD,eAAYhyC,EACrBiL,EAASipH,IAEbzvH,IAGI4yB,EAAqBC,iBAAiB,IAAIxgC,MAF3B,iBAGf4mB,EAAOjZ,MAHQ,eAGMA,MAzBzBwG,O,wDC5lBR,MAAM8lB,EAAalU,EAAQ,IASrB9X,EAAQ,CACV,UAAW,QAAS,UAAW,QAAS,QAAS,WAAY,OAC7D,SAAU,QAAS,WAAY,MAAO,OAAQ,WAAY,UAC1D,UAAW,WAAY,QAAS,UAAW,MAAO,OAAQ,YAC1D,UAAW,OAAQ,OAAQ,QAAS,UAAW,QAAS,WAAY,QACpE,SAAU,UAAW,QAAS,SAAU,SAAU,SAAU,QAC5D,SAAU,SAAU,WAAY,SAAU,SAAU,SAAU,UAC9D,WAAY,SAAU,SAAU,WAAY,QAAS,QAAS,QAC9D,UAAW,WAAY,QAAS,QAAS,OAAQ,QAAS,QAAS,SACnE,QAAS,SAAU,QAAS,KAAM,SAAU,OAAQ,QAAS,SAC7D,SAAU,SAAU,OAAQ,SAAU,UAAW,WAAY,UAC7D,QAAS,SAAU,OAAQ,QAAS,OAAQ,QAAS,YACrD,aAAc,OAAQ,QAAS,QAAS,aAAc,aACtD,UAAW,SAAU,OAAQ,QAAS,YAAa,YAAa,YAChE,aAAc,aAAc,cAAe,YAAa,UACxD,WAAY,SAAU,SAAU,SAAU,aAAc,MAAO,UAC/D,UAAW,SAAU,SAAU,UAAW,UAAW,MAAO,OAAQ,QACpE,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,QACpE,QAAS,QAAS,QAAS,SAAU,QAAS,UAAW,OAAQ,WACjE,OAAQ,SAAU,OAAQ,QAAS,SAAU,SAAU,UAAW,SAClE,QAAS,QAAS,SAAU,QAAS,SAAU,SAAU,UACzD,SAAU,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,UACjE,SAAU,SAAU,QAAS,UAAW,UAAW,OAAQ,QAAS,OACpE,QAAS,QAAS,OAAQ,SAAU,MAAO,OAAQ,MAAO,SAC1D,WAAY,QAAS,QAAS,YAAa,YAAa,WAAY,QACpE,WAAY,YAAa,SAAU,SAAU,OAAQ,QAAS,SAC9D,WAAY,WAAY,WAAY,WAAY,SAAU,QAAS,QACnE,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,SAAU,OACnE,UAAW,WAAY,YAAa,WAAY,UAAW,YAC3D,OAAQ,UAAW,UAAW,QAAS,QAAS,SAAU,UAC1D,aAAc,SAAU,YAAa,YAAa,UAAW,aAC7D,WAAY,UAAW,SAAU,SAAU,OAAQ,QAAS,MAC5D,UAAW,UAAW,OAAQ,YAAa,UAAW,QAAS,SAC/D,QAAS,MAAO,SAAU,UAAW,OAAQ,QAAS,UAAW,QACjE,SAAU,QAAS,OAAQ,SAAU,UAAW,SAAU,UAAW,OACrE,OAAQ,SAAU,UAAW,UAAW,OAAQ,MAAO,SAAU,SACjE,QAAS,QAAS,UAAW,UAAW,MAAO,OAAQ,SAAU,WACjE,SAAU,QAAS,UAAW,SAAU,SAAU,OAAQ,UAC1D,SAAU,SAAU,SAAU,SAAU,QAAS,QAAS,YAC1D,SAAU,SAAU,UAAW,YAAa,WAAY,UACxD,UAAW,UAAW,SAAU,SAAU,SAAU,SAAU,SAC9D,MAAO,QAAS,OAAQ,OAAQ,QAAS,QAAS,OAAQ,QAAS,OACnE,SAAU,SAAU,UAAW,SAAU,QAAS,UAAW,QAC7D,OAAQ,aAAc,SAAU,SAAU,WAAY,OAAQ,UAC9D,OAAQ,QAAS,QAAS,MAAO,WAAY,WAAY,UACzD,SAAU,QAAS,SAAU,WAAY,aAAc,YACvD,UAAW,WAAY,WAAY,WAAY,UAAW,SAC1D,WAAY,UAAW,QAAS,OAAQ,QAAS,SAAU,UAC3D,WAAY,QAAS,SAAU,OAAQ,UAAW,SAAU,QAC5D,QAAS,SAAU,QAAS,SAAU,SAAU,UAAW,SAAU,OACrE,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,SACzD,UAAW,QAAS,KAAM,SAAU,QAAS,SAAU,SAAU,QACjE,OAAQ,OAAQ,SAAU,WAAY,UAAW,SAAU,QAC3D,UAAW,QAAS,SAAU,SAAU,UAAW,SAAU,SAC7D,UAAW,UAAW,UAAW,QAAS,UAAW,UAAW,SAChE,SAAU,UAAW,UAAW,SAAU,UAAW,UAAW,UAChE,SAAU,UAAW,UAAW,QAAS,OAAQ,QAAS,OAAQ,QAClE,SAAU,UAAW,QAAS,UAAW,YAAa,SAAU,UAChE,WAAY,UAAW,QAAS,UAAW,WAAY,QAAS,YAChE,QAAS,QAAS,SAAU,WAAY,SAAU,QAAS,QAC3D,SAAU,QAAS,SAAU,QAAS,OAAQ,MAAO,QAAS,SAC9D,QAAS,WAAY,SAAU,UAAW,SAAU,OAAQ,QAC5D,SAAU,UAAW,OAAQ,QAAS,UAAW,OAAQ,UACzD,SAAU,SAAU,UAAW,SAAU,UAAW,UAAW,SAC/D,SAAU,SAAU,UAAW,UAAW,aAAc,UACxD,UAAW,UAAW,OAAQ,QAAS,UAAW,SAAU,WAC5D,SAAU,QAAS,SAAU,QAAS,SAAU,WAAY,SAC5D,UAAW,WAAY,UAAW,SAAU,UAAW,QAAS,YAChE,SAAU,WAAY,WAAY,UAAW,WAAY,SACzD,UAAW,SAAU,SAAU,OAAQ,WAAY,QAAS,UAC5D,UAAW,SAAU,YAAa,YAAa,UAAW,SAC1D,WAAY,WAAY,YAAa,YAAa,WAAY,UAC9D,QAAS,QAAS,SAAU,UAAW,QAAS,SAAU,UAC1D,UAAW,YAAa,YAAa,QAAS,SAAU,QAAS,OACjE,QAAS,WAAY,QAAS,SAAU,WAAY,SAAU,WAC9D,UAAW,WAAY,UAAW,UAAW,UAAW,YACxD,QAAS,UAAW,WAAY,QAAS,OAAQ,UAAW,UAC5D,UAAW,UAAW,UAAW,OAAQ,WAAY,WAAY,QACjE,QAAS,SAAU,UAAW,aAAc,YAAa,aACzD,YAAa,YAAa,WAAY,aAAc,cACpD,UAAW,QAAS,QAAS,SAAU,QAAS,SAAU,QAC1D,WAAY,QAAS,SAAU,QAAS,aAAc,QAAS,WAC/D,QAAS,QAAS,SAAU,UAAW,UAAW,WAAY,OAC9D,UAAW,UAAW,aAAc,aAAc,UAAW,OAC7D,SAAU,QAAS,SAAU,QAAS,YAAa,WAAY,UAC/D,QAAS,UAAW,WAAY,SAAU,QAAS,QAAS,OAAQ,OACpE,QAAS,OAAQ,UAAW,QAAS,UAAW,SAAU,OAAQ,SAClE,SAAU,WAAY,aAAc,SAAU,SAAU,SAAU,QAClE,SAAU,YAAa,aAAc,WAAY,SAAU,OAC3D,UAAW,SAAU,WAAY,UAAW,SAAU,SAAU,SAChE,SAAU,YAAa,UAAW,UAAW,SAAU,UAAW,OAClE,OAAQ,WAAY,MAAO,QAAS,WAAY,SAAU,UAC1D,WAAY,WAAY,YAAa,aAAc,OAAQ,UAC3D,UAAW,SAAU,OAAQ,SAAU,SAAU,UAAW,QAC5D,QAAS,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,OACnE,SAAU,SAAU,SAAU,UAAW,SAAU,SAAU,SAC7D,SAAU,QAAS,MAAO,OAAQ,SAAU,OAAQ,WAAa,UACjE,SAAU,UAAW,WAAY,WAAY,SAAU,SAAU,QACjE,QAAS,SAAU,SAAU,UAAW,UAAW,QAAS,QAC5D,SAAU,UAAW,SAAU,QAAS,SAAU,SAAU,UAC5D,QAAS,SAAU,UAAW,SAAU,UAAW,SAAU,UAC7D,SAAU,SAAU,SAAU,QAAS,UAAW,QAAS,OAAQ,QACnE,QAAS,SAAU,QAAS,UAAW,OAAQ,SAAU,MAAO,SAChE,QAAS,QAAS,SAAU,OAAQ,WAAY,SAAU,UAC1D,SAAU,SAAU,UAAW,MAAO,QAAS,OAAQ,QAAS,QAChE,SAAU,UAAW,UAAW,UAAW,QAAS,UAAW,OAC/D,QAAS,SAAU,UAAW,SAAU,UAAW,WAAY,QAC/D,UAAW,WAAY,UAAW,WAAY,YAAa,SAAU,OACrE,QAAS,SAAU,OAAQ,UAAW,UAAW,SAAU,SAC3D,QAAS,SAAU,QAAS,UAAW,UAAW,UAAW,UAC7D,UAAW,SAAU,UAAW,SAAU,WAAY,WAAY,UAClE,UAAW,QAAS,UAAW,QAAS,QAAS,QAAS,UAC1D,QAAS,UAAW,SAAU,SAAU,UAAW,QAAS,SAC5D,QAAS,SAAU,SAAU,UAAW,OAAQ,OAAQ,OAAQ,QAChE,OAAQ,QAAS,UAAW,UAAW,WAAY,WAAY,WAC/D,UAAW,UAAW,YAAa,MAAO,SAAU,SAAU,UAC9D,QAAS,UAAW,SAAU,QAAS,OAAQ,SAAU,SAAU,QACnE,WAAY,UAAW,SAAU,SAAU,SAAU,OAAQ,UAC7D,QAAS,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,SAC/D,UAAW,SAAU,QAAS,SAAU,QAAS,OAAQ,UACzD,UAAW,UAAW,aAAc,SAAU,SAAU,OAAQ,QAChE,KAAM,MAAO,MAAO,QAAS,OAAQ,QAAS,UAAW,SAAU,SACnE,SAAU,OAAQ,UAAW,SAAU,UAAW,QAAS,SAC3D,QAAS,SAAU,QAAS,SAAU,QAAS,SAAU,QAAS,OAClE,SAAU,SAAU,SAAU,OAAQ,QAAS,SAAU,SACzD,WAAY,WAAY,WAAY,UAAW,SAAU,QAAS,SAClE,UAAW,WAAY,WAAY,MAAO,QAAS,SAAU,QAC7D,UAAW,SAAU,SAAU,UAAW,QAAS,YAAa,QAChE,SAAU,SAAU,SAAU,QAAS,YAAa,OAAQ,QAC5D,QAAS,SAAU,UAAW,QAAS,YAAa,QAAS,SAC7D,OAAQ,SAAU,OAAQ,SAAU,QAAS,SAAU,SAAU,UACjE,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,QAAS,OAAQ,SACnE,QAAS,QAAS,QAAS,QAAS,QAAS,SAAU,OAAQ,UAC/D,SAAU,SAAU,QAAS,UAAW,UAAW,QAAS,OAAQ,OACpE,QAAS,SAAU,WAAY,SAAU,SAAU,QAAS,OAC5D,UAAW,WAAY,aAAc,QAAS,SAAU,QAAS,SACjE,OAAQ,QAAS,MAAO,OAAQ,QAAS,QAAS,OAAQ,SAC1D,UAAW,UAAW,MAAO,WAAY,OAAQ,QAAS,QAAS,QACnE,SAAU,OAAQ,QAAS,OAAQ,SAAU,OAAQ,SAAU,YAC/D,YAAa,UAAW,QAAS,QAAS,QAAS,OAAQ,YAC3D,YAAa,OAAQ,UAAW,YAAa,QAAS,SAAU,UAChE,UAAW,UAAW,SAAU,WAAY,OAAQ,QAAS,QAC7D,UAAW,QAAS,QAAS,SAAU,SAAU,UAAW,OAAQ,QACpE,UAAW,OAAQ,SAAU,UAAW,MAAO,SAAU,OACzD,aAAc,QAAS,MAAO,UAAW,SAAU,WAAY,UAC/D,WAAY,QAAS,OAAQ,QAAS,QAAS,UAAW,WAC1D,OAAQ,SAAU,UAAW,MAAO,SAAU,QAAS,SAAU,WACjE,SAAU,SAAU,MAAO,OAAQ,WAAY,UAAW,WAC1D,WAAY,SAAU,SAAU,QAAS,SAAU,SAAU,OAC7D,WAAY,QAAS,QAAS,YAAa,WAAY,OAAQ,QAC/D,SAAU,SAAU,QAAS,WAAY,MAAO,WAAY,YAC5D,UAAW,UAAW,UAAW,UAAW,OAAQ,QAAS,OAC7D,SAAU,UAAW,SAAU,UAAW,YAAa,YACvD,UAAW,YAAa,YAAa,SAAU,QAAS,UAAW,QACnE,OAAQ,QAAS,UAAW,SAAU,WAAY,YAAa,WAC/D,aAAc,WAAY,QAAS,SAAU,UAAW,SAAU,QAClE,SAAU,YAAa,QAAS,SAAU,OAAQ,UAAW,YAC7D,YAAa,UAAW,OAAQ,OAAQ,UAAW,SAAU,WAC7D,UAAW,SAAU,UAAW,SAAU,UAAW,UAAW,WAChE,QAAS,QAAS,SAAU,QAAS,MAAO,QAAS,UAAW,OAChE,UAAW,UAAW,YAAa,UAAW,WAAY,MAAO,WACjE,SAAU,YAAa,YAAa,aAAc,WAAY,WAC9D,UAAW,SAAU,YAAa,SAAU,UAAW,QAAS,UAChE,WAAY,SAAU,QAAS,SAAU,WAAY,MAAO,SAC5D,SAAU,UAAW,WAAY,QAAS,QAAS,UAAW,OAC9D,OAAQ,UAAW,WAAY,WAAY,WAAY,WACvD,WAAY,UAAW,SAAU,OAAQ,SAAU,SAAU,UAC7D,SAAU,UAAW,QAAS,SAAU,UAAW,SAAU,QAC7D,SAAU,WAAY,QAAS,SAAU,QAAS,YAAa,SAC/D,UAAW,QAAS,OAAQ,QAAS,WAAY,WAAY,UAC7D,QAAS,WAAY,UAAW,UAAW,SAAU,YAAa,SAClE,QAAS,YAAa,WAAY,SAAU,SAAU,MAAO,SAC7D,OAAQ,UAAW,MAAO,OAAQ,YAAa,SAAU,SAAU,SACnE,SAAU,MAAO,UAAW,QAAS,QAAS,QAAS,SAAU,OACjE,QAAS,SAAU,OAAQ,QAAS,SAAU,SAAU,UAAW,SACnE,WAAY,QAAS,SAAU,UAAW,SAAU,SAAU,SAC9D,QAAS,SAAU,SAAU,SAAU,SAAU,QAAS,QAAS,QACnE,UAAW,SAAU,QAAS,SAAU,QAAS,QAAS,SAC1D,SAAU,QAAS,SAAU,SAAU,UAAW,YAAa,QAC/D,YAAa,QAAS,UAAW,SAAU,UAAW,UAAW,WACjE,WAAY,UAAW,QAAS,SAAU,SAAU,SAAU,UAC9D,UAAW,QAAS,YAAa,UAAW,UAAW,QAAS,SAChE,WAAY,QAAS,SAAU,SAAU,SAAU,SAAU,QAC7D,OAAQ,SAAU,UAAW,WAAY,QAAS,UAAW,SAC7D,SAAU,OAAQ,SAAU,SAAU,OAAQ,QAAS,WAAY,SACnE,QAAS,MAAO,UAAW,OAAQ,MAAO,QAAS,SAAU,UAC7D,WAAY,MAAO,MAAO,QAAS,SAAU,MAAO,QAAS,SAC7D,WAAY,UAAW,OAAQ,OAAQ,SAAU,QAAS,QAAS,SACnE,UAAW,WAAY,WAAY,OAAQ,UAAW,OAAQ,SAC9D,SAAU,SAAU,SAAU,SAAU,OAAQ,SAAU,QAAS,QACnE,MAAO,OAAQ,QAAS,MAAO,WAAY,SAAU,SAAU,OAC/D,QAAS,WAAY,UAAW,OAAQ,YAAa,SAAU,UAC/D,UAAW,QAAS,SAAU,YAAa,UAAW,WAAY,OAClE,OAAQ,QAAS,QAAS,QAAS,SAAU,QAAS,SAAU,SAChE,QAAS,QAAS,UAAW,OAAQ,QAAS,SAAU,QAAS,QACjE,QAAS,SAAU,QAAS,QAAS,WAAY,QAAS,UAC1D,QAAS,QAAS,QAAS,QAAS,UAAW,SAAU,MAAO,OAChE,QAAS,OAAQ,UAAW,UAAW,QAAS,SAAU,SAAU,QACpE,QAAS,SAAU,SAAU,OAAQ,SAAU,WAAY,YAC3D,QAAS,QAAS,QAAS,QAAS,SAAU,UAAW,SACzD,UAAW,SAAU,SAAU,QAAS,SAAU,QAAS,SAC3D,UAAW,SAAU,QAAS,UAAW,MAAO,QAAS,SAAU,QACnE,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAC3D,QAAS,QAAS,SAAU,SAAU,SAAU,SAAU,UAAW,OACrE,WAAY,SAAU,SAAU,MAAO,WAAY,WAAY,OAC/D,WAAY,UAAW,UAAW,SAAU,OAAQ,UAAW,SAC/D,WAAY,WAAY,WAAY,SAAU,QAAS,SAAU,UACjE,SAAU,QAAS,UAAW,SAAU,UAAW,WAAY,SAC/D,QAAS,SAAU,SAAU,UAAW,SAAU,UAAW,QAC7D,OAAQ,QAAS,UAAW,SAAU,UAAW,QAAS,UAC1D,QAAS,OAAQ,SAAU,QAAS,QAAS,SAAU,UAAW,SAClE,QAAS,KAAM,OAAQ,QAAS,SAAU,SAAU,UAAW,SAC/D,QAAS,UAAW,UAAW,QAAS,OAAQ,MAAO,OAAQ,SAC/D,SAAU,OAAQ,QAAS,SAAU,UAAW,WAAY,OAC5D,YAAa,YAAa,UAAW,SAAU,WAAY,UAC3D,QAAS,MAAO,QAAS,UAAW,WAAY,WAAY,SAC5D,UAAW,QAAS,SAAU,QAAS,SAAU,QAAS,OAAQ,SAClE,WAAY,SAAU,YAAa,OAAQ,SAAU,UAAW,SAChE,UAAW,WAAY,QAAS,QAAS,QAAS,SAAU,UAC5D,SAAU,MAAO,QAAS,QAAS,UAAW,QAAS,OAAQ,OAC/D,QAAS,SAAU,OAAQ,QAAS,QAAS,SAAU,UACvD,WAAY,QAAS,SAAU,SAAU,QAAS,SAAU,OAC5D,SAAU,SAAU,SAAU,UAAW,UAAW,UAAW,SAC/D,SAAU,SAAU,UAAW,QAAS,QAAS,OAAQ,QAAS,OAClE,QAAS,QAAS,QAAS,SAAU,OAAQ,SAAU,SAAU,SACjE,UAAW,UAAW,OAAQ,QAAS,UAAW,QAAS,OAAQ,SACnE,UAAW,UAAW,SAAU,SAAU,SAAU,OAAQ,OAC5D,SAAU,UAAW,QAAS,OAAQ,UAAW,WAAY,SAC7D,SAAU,OAAQ,SAAU,SAAU,QAAS,SAAU,WACzD,SAAU,WAAY,QAAS,YAAa,WAAY,UACxD,UAAW,WAAY,YAAa,YAAa,WAAY,WAC7D,UAAW,UAAW,WAAY,SAAU,UAAW,UAAW,UAClE,SAAU,QAAS,MAAO,OAAQ,SAAU,SAAU,QAAS,SAC/D,SAAU,WAAY,SAAU,QAAS,SAAU,SAAU,SAC7D,QAAS,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,QACnE,QAAS,SAAU,SAAU,QAAS,SAAU,QAAS,QAAS,SAClE,SAAU,SAAU,MAAO,UAAW,SAAU,WAAY,QAC5D,UAAW,UAAW,UAAW,UAAW,QAAS,SAAU,QAC/D,WAAY,SAAU,OAAQ,UAAW,UAAW,QAAS,QAC7D,QAAS,QAAS,WAAY,SAAU,SAAU,OAAQ,QAAS,SACnE,QAAS,SAAU,OAAQ,QAAS,SAAU,QAAS,MAAO,WAC9D,OAAQ,MAAO,OAAQ,OAAQ,UAAW,UAAW,QAAS,OAC9D,OAAQ,OAAQ,QAAS,OAAQ,SAAU,QAAS,OAAQ,QAAS,OACrE,SAAU,WAAY,UAAW,WAAY,YAAa,aAC1D,aAAc,SAAU,UAAW,UAAW,WAAY,OAAQ,SAClE,OAAQ,OAAQ,QAAS,UAAW,QAAS,QAAS,OAAQ,QAC9D,OAAQ,WAAY,YAAa,QAAS,SAAU,QAAS,UAC7D,SAAU,QAAS,SAAU,OAAQ,QAAS,UAAW,QAAS,QAClE,QAAS,QAAS,SAAU,SAAU,WAAY,WAAY,WAC9D,YAAa,SAAU,UAAW,QAAS,SAAU,SAAU,SAC/D,UAAW,UAAW,SAAU,UAAW,QAAS,UAAW,WAC/D,SAAU,QAAS,QAAS,SAAU,MAAO,QAAS,SAAU,SAChE,SAAU,OAAQ,MAAO,OAAQ,QAAS,UAAW,OAAQ,QAC7D,SAAU,QAAS,QAAS,SAAU,QAAS,SAAU,QAAS,SAClE,SAAU,MAAO,QAAS,OAAQ,UAAW,WAAY,QAAS,SAClE,SAAU,SAAU,UAAW,UAAW,WAAY,QAAS,OAC/D,SAAU,SAAU,QAAS,SAAU,SAAU,OAAQ,QAAS,UAClE,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,MAAO,OAAQ,QACjE,SAAU,QAAS,OAAQ,SAAU,UAAW,UAAW,QAC3D,UAAW,WAAY,SAAU,QAAS,OAAQ,SAAU,OAC5D,UAAW,QAAS,UAAW,UAAW,SAAU,SAAU,UAC9D,SAAU,OAAQ,WAAY,UAAW,QAAS,OAAQ,SAC1D,SAAU,YAAa,QAAS,QAAS,OAAQ,OAAQ,SAAU,OACnE,MAAO,SAAU,QAAS,SAAU,QAAS,QAAS,OAAQ,UAC9D,QAAS,SAAU,SAAU,UAAW,UAAW,OAAQ,SAC3D,QAAS,SAAU,MAAO,QAAS,SAAU,UAAW,WACxD,SAAU,MAAO,QAAS,QAAS,QAAS,UAAW,QAAS,WAChE,SAAU,UAAW,QAAS,UAAW,SAAU,OAAQ,QAC3D,SAAU,MAAO,SAAU,QAAS,OAAQ,QAAS,QAAS,OAC9D,OAAQ,OAAQ,OAAQ,OAAQ,UAAW,SAAU,MAAO,OAAQ,QACpE,OAAQ,OAAQ,QAAS,UAAW,QAAS,UAAW,QAAS,MACjE,QAAS,OAAQ,QAAS,OAAQ,YAAa,OAAQ,WACvD,UAAW,WAAY,WAAY,UAAW,WAAY,QAAS,QACnE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,MAClE,SAAU,QAAS,UAAW,SAAU,WAAY,YAAa,SACjE,WAAY,SAAU,OAAQ,QAAS,QAAS,QAAS,UACzD,UAAW,WAAY,UAAW,UAAW,SAAU,UAAW,SAClE,UAAW,UAAW,QAAS,SAAU,SAAU,UAAW,OAC9D,OAAQ,SAAU,YAAa,YAAa,WAAY,WACxD,YAAa,UAAW,SAAU,QAAS,SAAU,SAAU,WAC/D,YAAa,YAAa,aAAc,aAAc,YAAa,QACnE,SAAU,SAAU,UAAW,aAAc,QAAS,SAAU,SAChE,SAAU,UAAW,UAAW,WAAY,WAAY,UACxD,UAAW,QAAS,UAAW,WAAY,WAAY,UAAW,UAClE,WAAY,SAAU,QAAS,SAAU,SAAU,UAAW,UAC9D,aAAc,WAAY,UAAW,OAAQ,SAAU,SAAU,SACjE,UAAW,SAAU,SAAU,SAAU,UAAW,UAAW,WAC/D,WAAY,QAAS,SAAU,UAAW,UAAW,QAAS,SAC9D,OAAQ,SAAU,WAAY,SAAU,QAAS,QAAS,SAC1D,UAAW,WAAY,UAAW,UAAW,OAAQ,SAAU,SAC/D,OAAQ,QAAS,SAAU,UAAW,UAAW,WAAY,UAC7D,WAAY,QAAS,MAAO,QAAS,SAAU,aAAc,aAC7D,cAAe,SAAU,UAAW,SAAU,UAAW,MAAO,OAChE,UAAW,WAAY,OAAQ,SAAU,UAAW,QAAS,QAC7D,UAAW,UAAW,WAAY,SAAU,UAAW,OAAQ,SAC/D,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,UAC1D,SAAU,SAAU,SAAU,UAAW,SAAU,UAAW,WAC9D,WAAY,OAAQ,QAAS,SAAU,UAAW,SAAU,SAC5D,OAAQ,MAAO,UAAW,QAAS,UAAW,WAAY,UAC1D,UAAW,SAAU,UAAW,WAAY,SAAU,UAAW,OACjE,QAAS,QAAS,QAAS,UAAW,SAAU,SAAU,OAAQ,SAClE,OAAQ,UAAW,SAAU,UAAW,WAAY,SAAU,SAC9D,WAAY,QAAS,UAAW,WAAY,SAAU,UAAW,UACjE,UAAW,WAAY,WAAY,SAAU,SAAU,QAAS,OAChE,SAAU,UAAW,SAAU,YAAa,aAAc,UAC1D,QAAS,QAAS,SAAU,SAAU,SAAU,WAAY,SAC5D,OAAQ,QAAS,QAAS,SAAU,SAAU,UAAW,WACzD,SAAU,OAAQ,SAAU,SAAU,UAAW,MAAO,OAAQ,SAChE,QAAS,OAAQ,SAAU,OAAQ,QAAS,QAAS,UAAW,SAChE,SAAU,SAAU,QAAS,QAAS,OAAQ,SAAU,QAAS,SACjE,WAAY,UAAW,OAAQ,QAAS,MAAO,UAAW,UAC1D,UAAW,SAAU,YAAa,YAAa,YAAa,SAC5D,SAAU,OAAQ,MAAO,QAAS,OAAQ,OAAQ,QAAS,QAAS,QACpE,SAAU,OAAQ,SAAU,QAAS,SAAU,SAAU,OAAQ,SACjE,SAAU,MAAO,WAAY,YAAa,UAAW,OAAQ,WAC7D,WAAY,OAAQ,SAAU,UAAW,SAAU,YAAa,QAChE,SAAU,QAAS,QAAS,OAAQ,UAAW,OAAQ,OAAQ,OAC/D,QAAS,MAAO,OAAQ,SAAU,QAAS,SAAU,QAAS,OAC9D,QAAS,OAAQ,OAAQ,UAAW,WAAY,SAAU,QAAS,SACnE,SAAU,UAAW,OAAQ,UAAW,MAAO,OAAQ,SAAU,OACjE,SAAU,OAAQ,UAAW,MAAO,QAAS,SAAU,OAAQ,SAC/D,OAAQ,MAAO,OAAQ,MAAO,OAAQ,QAAS,OAAQ,OAAQ,SAC/D,QAAS,MAAO,QAAS,OAAQ,MAAO,OAAQ,OAAQ,UAAW,MACnE,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,SAAU,UAC3D,OAAQ,QAAS,QAAS,QAAS,UAAW,UAAW,UAAW,QACpE,UAAW,SAAU,UAAW,OAAQ,OAAQ,SAAU,OAAQ,UAClE,QAAS,OAAQ,MAAO,OAAQ,SAAU,QAAS,QAAS,QAC5D,SAAU,QAAS,QAAS,QAAS,SAAU,UAAW,WAAY,MACtE,WAAY,WAAY,UAAW,QAAS,SAAU,OAAQ,QAC9D,UAAW,SAAU,SAAU,QAAS,UAAW,WAAY,QAC/D,SAAU,WAAY,WAAY,QAAS,QAAS,OAAQ,QAC5D,QAAS,SAAU,SAAU,SAAU,UAAW,SAAU,SAC5D,SAAU,OAAQ,SAAU,QAAS,QAAS,SAAU,WACxD,UAAW,UAAW,QAAS,SAAU,WAAY,YACrD,aAAc,WAAY,QAAS,UAAW,UAAW,SAAU,QACnE,UAAW,UAAW,UAAW,SAAU,WAAY,MAAO,SAC9D,SAAU,UAAW,SAAU,UAAW,QAAS,QAAS,UAC5D,QAAS,SAAU,QAAS,SAAU,SAAU,UAAW,QAAS,QACpE,SAAU,QAAS,UAAW,YAAa,SAAU,SAAU,UAC/D,UAAW,OAAQ,QAAS,MAAO,UAAW,WAAY,SAC1D,SAAU,OAAQ,SAAU,UAAW,SAAU,UAAW,QAAS,OACrE,QAAS,QAAS,SAAU,WAAY,OAAQ,SAAU,QAC1D,WAAY,YAAa,OAAQ,QAAS,SAAU,OAAQ,QAC5D,QAAS,SAAU,OAAQ,MAAO,MAAO,QAAS,WAAY,QAC9D,UAAW,OAAQ,QAAS,UAAW,WAAY,QAAS,UAC5D,UAAW,SAAU,WAAY,OAAQ,SAAU,SAAU,QAC7D,OAAQ,YAAa,QAAS,OAAQ,QAAS,OAAQ,SAAU,SACjE,UAAW,UAAW,QAAS,QAAS,QAAS,QAAS,MAAO,WACjE,SAAU,UAAW,UAAW,UAAW,OAAQ,UAAW,QAC9D,SAAU,UAAW,SAAU,OAAQ,UAAW,QAAS,MAAO,UAClE,QAAS,YAAa,OAAQ,OAAQ,UAAW,UAAW,WAC5D,YAAa,UAAW,WAAY,UAAW,UAAW,SAAU,OACpE,UAAW,UAAW,YAAa,WAAY,UAAW,UAC1D,QAAS,SAAU,SAAU,OAAQ,SAAU,QAAS,SAAU,UAClE,SAAU,UAAW,MAAO,QAAS,QAAS,UAAW,QAAS,QAClE,OAAQ,QAAS,UAAW,OAAQ,SAAU,OAAQ,SAAU,UAChE,QAAS,OAAQ,QAAS,SAAU,OAAQ,QAAS,QAAS,QAC9D,QAAS,UAAW,QAAS,SAAU,UAAW,UAAW,QAC7D,QAAS,OAAQ,QAAS,SAAU,QAAS,QAAS,WACtD,YAAa,MAAO,UAAW,WAAY,SAAU,QAAS,SAC9D,QAAS,SAAU,SAAU,WAAY,QAAS,UAAW,QAC7D,WAAY,UAAW,UAAW,SAAU,QAAS,QAAS,SAC9D,QAAS,OAAQ,UAAW,UAAW,WAAY,SAAU,WAC7D,WAAY,OAAQ,UAAW,SAAU,SAAU,OAAQ,YAC3D,UAAW,SAAU,SAAU,SAAU,SAAU,WAAY,OAC/D,OAAQ,SAAU,UAAW,QAAS,QAAS,SAAU,WACzD,SAAU,SAAU,UAAW,SAAU,UAAW,SAAU,SAC9D,QAAS,SAAU,QAAS,QAAS,SAAU,UAAW,SAC1D,SAAU,OAAQ,SAAU,UAAW,SAAU,WAAY,UAC7D,WAAY,UAAW,SAAU,UAAW,QAAS,MAAO,SAC5D,SAAU,SAAU,UAAW,SAAU,SAAU,QAAS,MAAO,SACnE,SAAU,UAAW,SAAU,OAAQ,QAAS,SAAU,QAC1D,UAAW,QAAS,QAAS,QAAS,QAAS,SAAU,SACzD,UAAW,SAAU,QAAS,OAAQ,WAAY,UAAW,UAC7D,SAAU,WAAY,SAAU,UAAW,YAAa,YACxD,WAAY,UAAW,UAAW,WAAY,QAAS,SAAU,UACjE,QAAS,SAAU,SAAU,QAAS,QAAS,SAAU,UAAW,QACpE,UAAW,OAAQ,QAAS,SAAU,SAAU,QAAS,SAAU,SACnE,YAAa,SAAU,UAAW,MAAO,QAAS,QAAS,SAC3D,QAAS,QAAS,SAAU,QAAS,OAAQ,QAAS,OAAQ,QAC9D,UAAW,UAAW,UAAW,OAAQ,SAAU,SAAU,MAAO,QACpE,UAAW,SAAU,WAAY,UAAW,WAAY,UAAW,QACnE,OAAQ,SAAU,QAAS,OAAQ,WAAY,SAAU,OAAQ,SACjE,OAAQ,WAAY,WAAY,UAAW,UAAW,WAAY,SAClE,SAAU,QAAS,UAAW,MAAO,QAAS,SAAU,QAAS,SACjE,UAAW,UAAW,WAAY,QAAS,UAAW,OAAQ,OAC9D,QAAS,QAAS,OAAQ,MAAO,MAAO,QAAS,SAAU,SAC3D,QAAS,OAAQ,OAAQ,QAAS,WAAY,SAAU,MAAO,QAC/D,SAAU,QAAS,SAAU,SAAU,MAAO,WAAY,WAC1D,QAAS,UAAW,SAAU,UAAW,QAAS,SAAU,UAC5D,SAAU,OAAQ,UAAW,SAAU,WAAY,UAAW,UAC9D,OAAQ,SAAU,SAAU,UAAW,SAAU,QAAS,QAAS,OACnE,QAAS,SAAU,QAAS,SAAU,SAAU,UAAW,UAC3D,QAAS,SAAU,SAAU,SAAU,MAAO,SAAU,QAAS,QACjE,QAAS,SAAU,OAAQ,WAAY,YAAa,YAAa,UACjE,SAAU,MAAO,QAAS,UAAW,SAAU,OAAQ,QAAS,QAChE,QAAS,QAAS,OAAQ,QAAS,SAAU,SAAU,QAAS,SAChE,OAAQ,QAAS,SAAU,UAAW,SAAU,SAAU,SAC1D,WAAY,QAAS,UAAW,UAAW,SAAU,QAAS,SAC9D,WAAY,OAAQ,QAAS,QAAS,QAAS,UAAW,WAC1D,WAAY,SAAU,QAAS,SAAU,WAAY,SAAU,SAC/D,WAAY,WAAY,OAAQ,OAAQ,OAAQ,SAAU,UAC1D,WAAY,SAAU,WAAY,WAAY,OAAQ,QAAS,QAC/D,SAAU,UAAW,SAAU,SAAU,QAAS,OAAQ,SAC1D,SAAU,OAAQ,SAAU,QAAS,UAAW,SAAU,aAC1D,UAAW,QAAS,SAAU,UAAW,SAAU,UAAW,SAC9D,UAAW,UAAW,QAAS,UAAW,UAAW,WAAY,UACjE,UAAW,aAAc,OAAQ,QAAS,UAAW,UAAW,SAChE,SAAU,SAAU,QAAS,QAAS,SAAU,SAAU,SAC1D,WAAY,WAAY,YAAa,SAAU,UAAW,UAC1D,QAAS,QAAS,SAAU,SAAU,UAAW,SAAU,UAC3D,SAAU,UAAW,SAAU,UAAW,WAAY,UAAW,UACjE,SAAU,SAAU,YAAa,UAAW,UAAW,OAAQ,UAC/D,UAAW,SAAU,SAAU,OAAQ,QAAS,YAAa,QAC7D,QAAS,QAAS,OAAQ,QAAS,OAAQ,OAAQ,MAAO,OAAQ,OAClE,QAAS,OAAQ,OAAQ,QAc7BvZ,EAAOD,QAAU,CACb40D,iBARJ,WAII,MAAQ,GAHKpvB,EAAWy2B,cAAcziD,MACvBgsB,EAAW22B,kBAAkB,Q,8BCjbhD,gJAkBA,MAAMhqC,EAASF,oBAAUM,GASV,MAAMmgC,UAA+BkrE,IAQhDzzH,YAAYopB,EAAMG,EAAcqmB,GAC5BxL,QACAr6B,KAAKqf,KAAOA,EACZrf,KAAKwf,aAAeA,EACpBxf,KAAK29C,SAAW,GAChB39C,KAAK00H,aAAe7uF,EAAUoY,IAC9Bj+C,KAAK20H,aAAe9uF,EAAUsY,IAC9Bn+C,KAAKmrE,iBAAmB,CACpBypD,qBAAqB,EACrBC,qBAAqB,GAQ7BjqH,KAAK2J,GACD8lB,MAAMzvB,KAAK2J,GACXvU,KAAKuU,WAAWxG,WAAW/N,KAAK80H,SAAShnI,KAAKkS,MAC1C,oBAAqB,KAAM,MAAO,KAAM,MAOhD80H,SAAS7hH,GACL,MAAM5G,EAAMomC,EAAEx/B,GAAIge,KAAK,UAAU1vB,KAAK,OAChCipB,EAASioB,EAAEx/B,GAAIge,KAAK,UAAU1vB,KAAK,UACnCwzH,EAAU9hH,EAAGrQ,aAAa,QAG1B25E,EAAM5gF,cAAI,CAAEsL,KAAM,SACpB8hC,GAAIgsF,EACJ7tH,GAAI+L,EAAGrQ,aAAa,QAGxBqb,EAAOrZ,IAAK,aAAY4lB,UAAeuqG,IAAW9hH,GAClD,IAAI+hH,EAAOh1H,KAAK29C,SAAStxC,GAEzB,GAAe,qBAAXme,EAA+B,CAC/B,IAAKwqG,EAaD,OAZAz4C,EAAI/gF,MAAM,CAAEyL,KAAM,UAClBs1E,EAAI5vF,EAAE,QAAS,CAAEsa,KAAM,WAClBta,EAAE,iBAAkB,CACjBsZ,MAAO,wCAEVE,KACAxZ,EAAE,kBAAmB,CAClBsZ,MAAO,6BAEfgY,EAAO9Y,KAAK,qBAAsB8N,GAClCjT,KAAKuU,WAAWlH,KAAKkvE,IAEd,EAIX,GAAIw4C,IAAYC,EAAK9pD,UAcjB,OAbAjtD,EAAO9Y,KACH,8BAA+BkH,EAAK2oH,EAAK9pD,UAAWj4D,GACxDspE,EAAI/gF,MAAM,CAAEyL,KAAM,UAClBs1E,EAAI5vF,EAAE,QAAS,CAAEsa,KAAM,WAClBta,EAAE,iBAAkB,CACjBsZ,MAAO,wCAEVE,KACAxZ,EAAE,kBAAmB,CAClBsZ,MAAO,6BAEfjG,KAAKuU,WAAWlH,KAAKkvE,IAEd,OAER,QAAah8E,IAATy0H,EAYP,OATAz4C,EAAI/gF,MAAM,CAAEyL,KAAM,UAClBs1E,EAAI5vF,EAAE,QAAS,CAAEsa,KAAM,WAClBta,EAAE,sBAAuB,CACtBsZ,MAAO,wCAEVE,KACL8X,EAAO9Y,KAAK,uBAAwBkH,EAAK4G,GACzCjT,KAAKuU,WAAWlH,KAAKkvE,IAEd,EAEX,MAAMpoE,EAAMjoB,OAAOsuD,YAAYrmC,MAKzB2xB,EAAgD,UAAxCrqC,UAAQyI,mBAAmB6wH,GAIzC,OAAQvqG,GACR,IAAK,mBAAoB,CACrBvM,EAAOrZ,IAAI,sCAAuCuP,GAClD,MAAM8gH,EAAaxiF,EAAEx/B,GAAIge,KAAK,qBAE9B,GAAIgkG,GAAcA,EAAW1+H,OAAS,EAAG,CACrC,MAAMs8G,EAAaoiB,EAAW1zH,KAAK,SAC7BuxG,EAAamiB,EAAW1zH,KAAK,SAEnCvB,KAAKwf,aAAa0D,KACdy3B,IAAWloD,uBACI,SAAfogH,EACe,SAAfC,GAGR70F,EAAO/Y,KACF,wBAAuB6vH,QACjBjvF,EAAQ,GAAK,eAExB,MAAMD,EAAYC,EAAQ9lC,KAAK20H,aAAe30H,KAAK00H,aAEnDM,EACM,IAAIpqD,IACFn4B,EAAEx/B,GAAIge,KAAK,UAAU1vB,KAAK,OAC1BkxC,EAAEx/B,GAAI1R,KAAK,MACXwzH,EACA/0H,KAAKuU,WACLvU,KAAKmrE,iBAILv+D,KAAKsL,MAAMtL,KAAKwL,UAAUytB,IAC1BC,GACgB,GAExB9lC,KAAK29C,SAASq3E,EAAK3oH,KAAO2oH,EAE1Bh1H,KAAKwf,aAAa0D,KAAKy3B,IAAWhsD,cAC9BqmI,EAAMviF,EAAEx/B,GAAIge,KAAK,WAAY9c,GACjC,MAEJ,IAAK,iBACDnU,KAAKwf,aAAa0D,KACdy3B,IAAWjsD,cAAesmI,EAAMviF,EAAEx/B,GAAIge,KAAK,YAC/C,MAEJ,IAAK,iBACD+jG,EAAK58C,eAAe3lC,EAAEx/B,GAAIge,KAAK,YAC/B,MAEJ,IAAK,iBACDjxB,KAAKwf,aAAa0D,KACdy3B,IAAW9nD,eAAgBmiI,EAAMviF,EAAEx/B,GAAIge,KAAK,YAChD,MAEJ,IAAK,oBAAqB,CACtBhT,EAAOrZ,IAAI,iBAAkBowH,EAAK3oH,KAClC,IAAI+nE,EAAkB,KAClBC,EAAa,KAEb5hC,EAAEx/B,GAAIge,KAAK,kBAAkB16B,SAC7B69E,EACM3hC,EAAEx/B,GAAIge,KAAK,yBAAyB,GAAG9wB,QAC7Ck0E,EAAa5hC,EAAEx/B,GAAIge,KAAK,uBAAuBtvB,QAEnD3B,KAAK6zE,UAAUmhD,EAAK3oH,IAAK+nE,EAAiBC,GAC1Cr0E,KAAKwf,aAAa0D,KAAKy3B,IAAW/rD,WAC9BomI,EAAM5gD,EAAiBC,GAC3B,MAEJ,IAAK,oBACDp2D,EAAO/Y,KAAK,oCAAqCiP,GACjDiL,IAAWoI,cAAciE,YACrB/B,IACA,CACIy0B,IAAKrY,EACLv4C,MAAO4mB,KAGf6gH,EAAKtiD,iBAAiBjgC,EAAEx/B,GAAIge,KAAK,WAAY,KACzC,MAAMikG,EAAchpI,OAAOsuD,YAAYrmC,MAEvC8J,EAAO/Y,KAAK,sCAAuCgwH,GACnD91G,IAAWoI,cAAciE,YACrB9B,IACA,CACIw0B,IAAKrY,EACLv4C,MAAO2nI,MAEhBlwH,IACC4yB,IAAqBC,iBAAiB7yB,GACtCiZ,EAAOjZ,MAAM,2BAA4BA,GACzCgwH,EAAKzhD,wBAET,MACJ,IAAK,YACL,IAAK,aACDyhD,EAAKpgD,gBAAgBniC,EAAEx/B,GAAIge,KAAK,oBAChC,MACJ,IAAK,eACL,IAAK,gBACD+jG,EAAKlgD,mBAAmBriC,EAAEx/B,GAAIge,KAAK,oBACnC,MACJ,QACIhT,EAAO9Y,KAAK,gCAAiCqlB,GAC7C+xD,EAAI/gF,MAAM,CAAEyL,KAAM,UAClBs1E,EAAI5vF,EAAE,QAAS,CAAEsa,KAAM,WAClBta,EAAE,cACC,CAAEsZ,MAAO,wCACZE,KAKT,OAFAnG,KAAKuU,WAAWlH,KAAKkvE,IAEd,EAUXkzB,oBAAoB0lB,EAAI/tE,GACpB,MAAM4tE,EACA,IAAIpqD,IACFt5C,IAAW6rB,gBAAgB,IAC3Bg4E,EACA/tE,EACApnD,KAAKuU,WACLvU,KAAKmrE,iBACLnrE,KAAK20H,cACK,GACM,GAIxB,OAFA30H,KAAK29C,SAASq3E,EAAK3oH,KAAO2oH,EAEnBA,EASXnhD,UAAUxnE,EAAK+nE,EAAiBC,GACxBr0E,KAAK29C,SAASxvD,eAAeke,KACI,UAA7BrM,KAAK29C,SAAStxC,GAAK4gC,OACnBjtC,KAAK29C,SAAStxC,GAAK8nE,aAAaC,EAAiBC,UAE9Cr0E,KAAK29C,SAAStxC,IAO7BuuC,4BAaI56C,KAAKuU,WAAWnG,OACZzS,cAAI,CAAEsL,KAAM,MACR8hC,GAAI/oC,KAAKuU,WAAWzZ,SACnBnO,EAAE,WAAY,CAAEsZ,MAAO,wBAC5Bg4B,IACI,MAAMm3F,EAAa,GAEnB3iF,EAAExU,GAAKhN,KAAK,qBAAqBghB,KAAK,CAACrC,EAAK1vC,KAGxC,MAAMm1H,EAAO,GACPpuH,GAFN/G,EAAKuyC,EAAEvyC,IAESqB,KAAK,QAErB,OAAQ0F,GACR,IAAK,OACDouH,EAAK58E,KAAQ,QAAOv4C,EAAGqB,KAAK,QACxBrB,EAAGqB,KAAK,UACR8zH,EAAK58E,MAAS,IAAGv4C,EAAGqB,KAAK,SAE7B6zH,EAAWlyH,KAAKmyH,GAChB,MACJ,IAAK,OACL,IAAK,QAAS,CACVA,EAAK58E,KAAUxxC,EAAF,IACb,MAAMu5C,EAAWtgD,EAAGqB,KAAK,YAKzB,GAAIi/C,EAAU,CACV,MAAMltC,EACAknB,UAAUsZ,UAAUxgC,MAClB,4BAEJA,GAASgF,SAAShF,EAAM,GAAI,IAAM,GAClC+hH,EAAK58E,MAAW+H,EAAF,IAGd60E,EAAK70E,SAAWA,EAGxB60E,EAAK58E,MAAQv4C,EAAGqB,KAAK,QACRrB,EAAGqB,KAAK,UAGjB8zH,EAAK58E,MAAS,IAAGv4C,EAAGqB,KAAK,SAE7B,MAAMqc,EAAY1d,EAAGqB,KAAK,aAEtBqc,GAA2B,QAAdA,IACby3G,EAAK58E,MAAS,cAAa76B,GAG/By3G,EAAKC,WAAap1H,EAAGqB,KAAK,aACf8zH,EAAKC,WAChBF,EAAWlyH,KAAKmyH,GAChB,UAKR,MAAMluH,EAAUnH,KAAKqf,KAAKlY,QAG1B,IAAK,IAAI7a,EAAI8oI,EAAW7+H,OAAS,EAAGjK,EAAI,EAAGA,IAAK,CAC5C,MAAM4M,EAAIkS,KAAKmM,MAAMnM,KAAKC,UAAY/e,EAAI,IACpCipI,EAAOH,EAAW9oI,GAExB8oI,EAAW9oI,GAAK8oI,EAAWl8H,GAC3Bk8H,EAAWl8H,GAAKq8H,EAGpB,IAAI7kG,EAGAA,EADAvpB,EAAQquH,WACCnnI,GAAKA,EAAEoqD,KAAKtmB,WAAW,QAGvB9jC,GAAKA,EAAEoqD,KAAKtmB,WAAW,SAAY9jC,EAAEoqD,KAAK70C,QAAQ,kBAAoB,EAGnF5D,KAAK00H,aAAax2E,WAAak3E,EAAW1kG,OAAOA,GACjD1wB,KAAK20H,aAAaz2E,WAAak3E,GAChCjlH,IACC8N,EAAO9Y,KAAK,kCAAmCgL,GAC/C8N,EAAO9Y,KAAK,kDASxBo4C,SACI,MAAM5jD,EAAO,GAgBb,OAdA3M,OAAOuY,KAAKvF,KAAK29C,UAAUvuC,QAAQ/C,IAC/B,MACMi5C,EADUtlD,KAAK29C,SAAStxC,GACX2U,eAEfskC,GAAMA,EAAGmwE,YAET97H,EAAM,UAAS0S,GAAS,CACpBopH,UAAWnwE,EAAGmwE,UACdjvG,MAAO8+B,EAAG9+B,MACVua,IAAK70C,OAAO6uB,SAASkiF,SAK1BtjG,M,0EChaf,wDAKe,MAAMyyE,EAIjBn2E,cACI+J,KAAK01H,OAASvzH,IAAM09E,MAAM7/E,KAAK21H,mBAAmB7nI,KAAKkS,MAAO,GAC9DA,KAAK41H,UAAW,EAMpB//E,QACI71C,KAAK01H,OAAOG,OAMhBF,mBAAmB7X,EAAMnvC,GACrBmvC,EAAKnvC,GAoBTzrE,KAAK46G,EAAMtyG,GACHxL,KAAK41H,SACLpqH,GAAYA,EAAS,IAAInU,MAAM,+BAInC2I,KAAK01H,OAAOxyH,KAAK46G,EAAMtyG,GAO3B+tE,WACIv5E,KAAK41H,UAAW,K,iBC3DxB;;;;;;;IASC,WAEG,IAGIhqI,EAAMkqI,EAHN3zH,EAAQ,GAeZ,SAAS4zH,EAAUC,GACf,IAAIC,GAAS,EACb,OAAO,WACH,GAAIA,EAAQ,MAAM,IAAI5+H,MAAM,gCAC5B4+H,GAAS,EACTD,EAAGp0F,MAAMh2C,EAAMuV,YAdX,OADZvV,EAAOoU,QAEL81H,EAAiBlqI,EAAKuW,OAGxBA,EAAM+zH,WAAa,WAEf,OADAtqI,EAAKuW,MAAQ2zH,EACN3zH,GAcX,IAAIg0H,EAAYnpI,OAAOkB,UAAUwI,SAE7B0/H,EAAWhgI,MAAMC,SAAW,SAAUN,GACtC,MAA+B,mBAAxBogI,EAAU1pI,KAAKsJ,IAGtBsgI,EAAQ,SAAUlgI,EAAKH,GACvB,GAAIG,EAAIiZ,QACJ,OAAOjZ,EAAIiZ,QAAQpZ,GAEvB,IAAK,IAAI1J,EAAI,EAAGA,EAAI6J,EAAII,OAAQjK,GAAK,EACjC0J,EAASG,EAAI7J,GAAIA,EAAG6J,IAIxBmgI,EAAO,SAAUngI,EAAKH,GACtB,GAAIG,EAAIqP,IACJ,OAAOrP,EAAIqP,IAAIxP,GAEnB,IAAIwjG,EAAU,GAId,OAHA68B,EAAMlgI,GAAK,SAAUa,EAAG1K,EAAGoL,GACvB8hG,EAAQt2F,KAAKlN,EAASgB,EAAG1K,EAAGoL,OAEzB8hG,GAaP+8B,EAAQ,SAAUxgI,GAClB,GAAI/I,OAAOuY,KACP,OAAOvY,OAAOuY,KAAKxP,GAEvB,IAAIwP,EAAO,GACX,IAAK,IAAI9D,KAAK1L,EACNA,EAAI5H,eAAesT,IACnB8D,EAAKrC,KAAKzB,GAGlB,OAAO8D,QAMY,IAAZyuD,GAA6BA,EAAQssB,UAgB5Cn+E,EAAMm+E,SAAWtsB,EAAQssB,SAErBn+E,EAAMq0H,kBADkB,IAAjBA,EACc,SAAUR,GAE7BQ,EAAaR,IAIM7zH,EAAMm+E,UAvBH,mBAAjBk2C,GACPr0H,EAAMm+E,SAAW,SAAU01C,GAEvBQ,EAAaR,IAEjB7zH,EAAMq0H,aAAer0H,EAAMm+E,WAG3Bn+E,EAAMm+E,SAAW,SAAU01C,GACvBzrH,WAAWyrH,EAAI,IAEnB7zH,EAAMq0H,aAAer0H,EAAMm+E,UAgBnCn+E,EAAM8vC,KAAO,SAAU97C,EAAKH,EAAUwV,GAElC,GADAA,EAAWA,GAAY,cAClBrV,EAAII,OACL,OAAOiV,IAEX,IAAIirH,EAAY,EAIhB,SAAS7nB,EAAKz+F,GACRA,GACA3E,EAAS2E,GACT3E,EAAW,eAGXirH,GAAa,IACItgI,EAAII,QACjBiV,IAXV6qH,EAAMlgI,GAAK,SAAUa,GACjBhB,EAASgB,EAAG++H,EAAUnnB,QAe9BzsG,EAAMiN,QAAUjN,EAAM8vC,KAEtB9vC,EAAMu0H,WAAa,SAAUvgI,EAAKH,EAAUwV,GAExC,GADAA,EAAWA,GAAY,cAClBrV,EAAII,OACL,OAAOiV,IAEX,IAAIirH,EAAY,EACZE,EAAU,WACV3gI,EAASG,EAAIsgI,IAAY,SAAUtmH,GAC3BA,GACA3E,EAAS2E,GACT3E,EAAW,eAGXirH,GAAa,IACItgI,EAAII,OACjBiV,IAGAmrH,QAKhBA,KAEJx0H,EAAMy0H,cAAgBz0H,EAAMu0H,WAE5Bv0H,EAAM00H,UAAY,SAAU1gI,EAAK2gI,EAAO9gI,EAAUwV,GACrCurH,EAAWD,GACjBl1F,MAAM,KAAM,CAACzrC,EAAKH,EAAUwV,KAEnCrJ,EAAM60H,aAAe70H,EAAM00H,UAE3B,IAAIE,EAAa,SAAUD,GAEvB,OAAO,SAAU3gI,EAAKH,EAAUwV,GAE5B,GADAA,EAAWA,GAAY,cAClBrV,EAAII,QAAUugI,GAAS,EACxB,OAAOtrH,IAEX,IAAIirH,EAAY,EACZQ,EAAU,EACVC,EAAU,GAEd,SAAUC,IACN,GAAIV,GAAatgI,EAAII,OACjB,OAAOiV,IAGX,KAAO0rH,EAAUJ,GAASG,EAAU9gI,EAAII,QAEpC2gI,GAAW,EACXlhI,EAASG,GAFT8gI,GAAW,GAEY,IAAI,SAAU9mH,GAC7BA,GACA3E,EAAS2E,GACT3E,EAAW,eAIX0rH,GAAW,GADXT,GAAa,IAEItgI,EAAII,OACjBiV,IAGA2rH,QApBpB,KA8BJC,EAAa,SAAUpB,GACvB,OAAO,WACH,IAAI7zF,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,WACtC,OAAO60H,EAAGp0F,MAAM,KAAM,CAACz/B,EAAM8vC,MAAMj4C,OAAOmoC,MAS9Ck1F,EAAW,SAAUrB,GACrB,OAAO,WACH,IAAI7zF,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,WACtC,OAAO60H,EAAGp0F,MAAM,KAAM,CAACz/B,EAAMu0H,YAAY18H,OAAOmoC,MAKpDm1F,EAAY,SAAUC,EAAQphI,EAAKH,EAAUwV,GAI7C,GAHArV,EAAMmgI,EAAKngI,GAAK,SAAUa,EAAG1K,GACzB,MAAO,CAACqkC,MAAOrkC,EAAGiB,MAAOyJ,MAExBwU,EAME,CACH,IAAIguF,EAAU,GACd+9B,EAAOphI,GAAK,SAAUa,EAAGwU,GACrBxV,EAASgB,EAAEzJ,OAAO,SAAU4iB,EAAK0gC,GAC7B2oD,EAAQxiG,EAAE25B,OAASkgB,EACnBrlC,EAAS2E,SAEd,SAAUA,GACT3E,EAAS2E,EAAKqpF,WAblB+9B,EAAOphI,GAAK,SAAUa,EAAGwU,GACrBxV,EAASgB,EAAEzJ,OAAO,SAAU4iB,GACxB3E,EAAS2E,UAezBhO,EAAMqD,IAAM4xH,EAAWE,GACvBn1H,EAAMq1H,UAAYH,EAASC,GAC3Bn1H,EAAMs1H,SAAW,SAAUthI,EAAK2gI,EAAO9gI,EAAUwV,GAC7C,OAAOksH,EAAUZ,EAAVY,CAAiBvhI,EAAKH,EAAUwV,IAG3C,IAAIksH,EAAY,SAASZ,GACrB,OA3CkB,SAASA,EAAOd,GAClC,OAAO,WACH,IAAI7zF,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,WACtC,OAAO60H,EAAGp0F,MAAM,KAAM,CAACm1F,EAAWD,IAAQ98H,OAAOmoC,KAwC9Cw1F,CAAgBb,EAAOQ,IAKlCn1H,EAAMuD,OAAS,SAAUvP,EAAKyhI,EAAM5hI,EAAUwV,GAC1CrJ,EAAMu0H,WAAWvgI,GAAK,SAAUa,EAAGwU,GAC/BxV,EAAS4hI,EAAM5gI,GAAG,SAAUmZ,EAAK0gC,GAC7B+mF,EAAO/mF,EACPrlC,EAAS2E,SAEd,SAAUA,GACT3E,EAAS2E,EAAKynH,OAItBz1H,EAAM01H,OAAS11H,EAAMuD,OAErBvD,EAAM21H,MAAQ31H,EAAMuD,OAEpBvD,EAAM41H,YAAc,SAAU5hI,EAAKyhI,EAAM5hI,EAAUwV,GAC/C,IAAIwsH,EAAW1B,EAAKngI,GAAK,SAAUa,GAC/B,OAAOA,KACR47B,UACHzwB,EAAMuD,OAAOsyH,EAAUJ,EAAM5hI,EAAUwV,IAG3CrJ,EAAM81H,MAAQ91H,EAAM41H,YAEpB,IAAIG,EAAU,SAAUX,EAAQphI,EAAKH,EAAUwV,GAC3C,IAAIguF,EAAU,GAId+9B,EAHAphI,EAAMmgI,EAAKngI,GAAK,SAAUa,EAAG1K,GACzB,MAAO,CAACqkC,MAAOrkC,EAAGiB,MAAOyJ,OAEjB,SAAUA,EAAGwU,GACrBxV,EAASgB,EAAEzJ,OAAO,SAAUsjD,GACpBA,GACA2oD,EAAQt2F,KAAKlM,GAEjBwU,UAEL,SAAU2E,GACT3E,EAAS8qH,EAAK98B,EAAQl4F,MAAK,SAAU5J,EAAGC,GACpC,OAAOD,EAAEi5B,MAAQh5B,EAAEg5B,UACnB,SAAU35B,GACV,OAAOA,EAAEzJ,cAIrB4U,EAAMuuB,OAAS0mG,EAAWc,GAC1B/1H,EAAMg2H,aAAed,EAASa,GAE9B/1H,EAAMi2H,OAASj2H,EAAMuuB,OACrBvuB,EAAMk2H,aAAel2H,EAAMg2H,aAE3B,IAAIG,EAAU,SAAUf,EAAQphI,EAAKH,EAAUwV,GAC3C,IAAIguF,EAAU,GAId+9B,EAHAphI,EAAMmgI,EAAKngI,GAAK,SAAUa,EAAG1K,GACzB,MAAO,CAACqkC,MAAOrkC,EAAGiB,MAAOyJ,OAEjB,SAAUA,EAAGwU,GACrBxV,EAASgB,EAAEzJ,OAAO,SAAUsjD,GACnBA,GACD2oD,EAAQt2F,KAAKlM,GAEjBwU,UAEL,SAAU2E,GACT3E,EAAS8qH,EAAK98B,EAAQl4F,MAAK,SAAU5J,EAAGC,GACpC,OAAOD,EAAEi5B,MAAQh5B,EAAEg5B,UACnB,SAAU35B,GACV,OAAOA,EAAEzJ,cAIrB4U,EAAM+6B,OAASk6F,EAAWkB,GAC1Bn2H,EAAMo2H,aAAelB,EAASiB,GAE9B,IAAInkF,EAAU,SAAUojF,EAAQphI,EAAKH,EAAUwiI,GAC3CjB,EAAOphI,GAAK,SAAUa,EAAGwU,GACrBxV,EAASgB,GAAG,SAAUyO,GACdA,GACA+yH,EAAcxhI,GACdwhI,EAAgB,cAGhBhtH,UAGT,SAAU2E,GACTqoH,QAGRr2H,EAAMs2H,OAASrB,EAAWjjF,GAC1BhyC,EAAMu2H,aAAerB,EAASljF,GAE9BhyC,EAAMwgF,KAAO,SAAUxsF,EAAKH,EAAUwiI,GAClCr2H,EAAM8vC,KAAK97C,GAAK,SAAUa,EAAGwU,GACzBxV,EAASgB,GAAG,SAAU65C,GACdA,IACA2nF,GAAc,GACdA,EAAgB,cAEpBhtH,UAEL,SAAU2E,GACTqoH,GAAc,OAItBr2H,EAAMw2H,IAAMx2H,EAAMwgF,KAElBxgF,EAAMs3F,MAAQ,SAAUtjG,EAAKH,EAAUwiI,GACnCr2H,EAAM8vC,KAAK97C,GAAK,SAAUa,EAAGwU,GACzBxV,EAASgB,GAAG,SAAU65C,GACbA,IACD2nF,GAAc,GACdA,EAAgB,cAEpBhtH,UAEL,SAAU2E,GACTqoH,GAAc,OAItBr2H,EAAM4lC,IAAM5lC,EAAMs3F,MAElBt3F,EAAMy2H,OAAS,SAAUziI,EAAKH,EAAUwV,GACpCrJ,EAAMqD,IAAIrP,GAAK,SAAUa,EAAGwU,GACxBxV,EAASgB,GAAG,SAAUmZ,EAAK0oH,GACnB1oH,EACA3E,EAAS2E,GAGT3E,EAAS,KAAM,CAACje,MAAOyJ,EAAG6hI,SAAUA,UAG7C,SAAU1oH,EAAKqpF,GACd,GAAIrpF,EACA,OAAO3E,EAAS2E,GAOhB3E,EAAS,KAAM8qH,EAAK98B,EAAQl4F,MAJnB,SAAUw3H,EAAMC,GACrB,IAAIrhI,EAAIohI,EAAKD,SAAUlhI,EAAIohI,EAAMF,SACjC,OAAOnhI,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,MAEE,SAAUX,GAC5C,OAAOA,EAAEzJ,cAMzB4U,EAAM62H,KAAO,SAAUC,EAAOztH,GAC1BA,EAAWA,GAAY,aACvB,IAAIjG,EAAOgxH,EAAM0C,GACbC,EAAiB3zH,EAAKhP,OAC1B,IAAK2iI,EACD,OAAO1tH,IAGX,IAAIguF,EAAU,GAEVtrD,EAAY,GACZtK,EAAc,SAAUoyF,GACxB9nF,EAAUpb,QAAQkjG,IAUlBmD,EAAe,WACfD,IACA7C,EAAMnoF,EAAUhU,MAAM,IAAI,SAAU87F,GAChCA,QAIRpyF,GAAY,WACR,IAAKs1F,EAAgB,CACjB,IAAIE,EAAc5tH,EAElBA,EAAW,aAEX4tH,EAAY,KAAM5/B,OAI1B68B,EAAM9wH,GAAM,SAAU9D,GAClB,IAAIq8G,EAAOsY,EAAS6C,EAAMx3H,IAAMw3H,EAAMx3H,GAAI,CAACw3H,EAAMx3H,IAC7C43H,EAAe,SAAUlpH,GACzB,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAIjD,GAHIghC,EAAK5rC,QAAU,IACf4rC,EAAOA,EAAK,IAEZhyB,EAAK,CACL,IAAImpH,EAAc,GAClBjD,EAAME,EAAM/8B,IAAU,SAAS+/B,GAC3BD,EAAYC,GAAQ//B,EAAQ+/B,MAEhCD,EAAY73H,GAAK0gC,EACjB32B,EAAS2E,EAAKmpH,GAEd9tH,EAAW,kBAGXguF,EAAQ/3F,GAAK0gC,EACbhgC,EAAMq0H,aAAa2C,IAGvBK,EAAW1b,EAAK5jF,MAAM,EAAG9uB,KAAKuP,IAAImjG,EAAKvnH,OAAS,KAAO,GACvDkjI,EAAQ,WACR,OAlaiBzjI,EAkaQ,SAAU0B,EAAGV,GAClC,OAAQU,GAAK8hG,EAAQrrG,eAAe6I,IAnab4gI,GAoaxB,IApaSzhI,EAkaGqjI,GAjaf9zH,OACGvP,EAAIuP,OAAO1P,EAAU4hI,IAEhCvB,EAAMlgI,GAAK,SAAUa,EAAG1K,EAAGoL,GACvBkgI,EAAO5hI,EAAS4hI,EAAM5gI,EAAG1K,EAAGoL,MAEzBkgI,MA6Zcp+B,EAAQrrG,eAAesT,GApalC,IAAUtL,EAAKH,EAAU4hI,GAsa/B,GAAI6B,IACA3b,EAAKA,EAAKvnH,OAAS,GAAG8iI,EAAc7/B,OAEnC,CACD,IAAI93E,EAAW,WACP+3G,OA1DK,SAAUzD,GAC3B,IAAK,IAAI1pI,EAAI,EAAGA,EAAI4hD,EAAU33C,OAAQjK,GAAK,EACvC,GAAI4hD,EAAU5hD,KAAO0pI,EAEjB,YADA9nF,EAAUjqC,OAAO3X,EAAG,GAwDhBw1B,CAAeJ,GACfo8F,EAAKA,EAAKvnH,OAAS,GAAG8iI,EAAc7/B,KAG5C51D,EAAYliB,QAKxBvf,EAAMinH,MAAQ,SAASsQ,EAAO5b,EAAMtyG,GAChC,IACImuH,EAAW,GAEM,mBAAVD,IACPluH,EAAWsyG,EACXA,EAAO4b,EACPA,EANgB,GASpBA,EAAQphH,SAASohH,EAAO,KATJ,EAUpB,IAAIE,EAAc,SAASC,EAAiBC,GAQxC,IAPA,IAAIC,EAAe,SAASjc,EAAMkc,GAC9B,OAAO,SAASC,GACZnc,GAAK,SAAS3tG,EAAK1K,GACfw0H,GAAgB9pH,GAAO6pH,EAAc,CAAC7pH,IAAKA,EAAK1K,OAAQA,MACzDq0H,KAGJJ,GACHC,EAASz2H,KAAK62H,EAAajc,IAAQ4b,GAAO,KAE9Cv3H,EAAM+3H,OAAOP,GAAU,SAAS/qB,EAAMj1G,GAClCA,EAAOA,EAAKA,EAAKpD,OAAS,IACzBsjI,GAAmBruH,GAAU7R,EAAKwW,IAAKxW,EAAK8L,YAIrD,OAAO+F,EAAWouH,IAAgBA,GAGtCz3H,EAAMg4H,UAAY,SAAUlB,EAAOztH,GAE/B,GADAA,EAAWA,GAAY,cAClB4qH,EAAS6C,GAAQ,CACpB,IAAI9oH,EAAM,IAAI9Y,MAAM,6DACpB,OAAOmU,EAAS2E,GAElB,IAAK8oH,EAAM1iI,OACP,OAAOiV,IAEX,IAAI4uH,EAAe,SAAUpkI,GACzB,OAAO,SAAUma,GACb,GAAIA,EACA3E,EAASo2B,MAAM,KAAMzgC,WACrBqK,EAAW,iBAEV,CACD,IAAI22B,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC7CslB,EAAOzwB,EAASywB,OAChBA,EACA0b,EAAKj/B,KAAKk3H,EAAa3zG,IAGvB0b,EAAKj/B,KAAKsI,GAEdrJ,EAAMq0H,cAAa,WACfxgI,EAAS4rC,MAAM,KAAMO,SAKrCi4F,EAAaj4H,EAAMnM,SAASijI,GAA5BmB,IAGJ,IAAIC,EAAY,SAAS9C,EAAQ0B,EAAOztH,GAEpC,GADAA,EAAWA,GAAY,aACnB4qH,EAAS6C,GACT1B,EAAO/xH,IAAIyzH,GAAO,SAAUjD,EAAIxqH,GACxBwqH,GACAA,GAAG,SAAU7lH,GACT,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC7CghC,EAAK5rC,QAAU,IACf4rC,EAAOA,EAAK,IAEhB32B,EAAS/e,KAAK,KAAM0jB,EAAKgyB,QAGlC32B,OAEF,CACD,IAAIguF,EAAU,GACd+9B,EAAOtlF,KAAKskF,EAAM0C,IAAQ,SAAUx3H,EAAG+J,GACnCytH,EAAMx3H,IAAG,SAAU0O,GACf,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC7CghC,EAAK5rC,QAAU,IACf4rC,EAAOA,EAAK,IAEhBq3D,EAAQ/3F,GAAK0gC,EACb32B,EAAS2E,SAEd,SAAUA,GACT3E,EAAS2E,EAAKqpF,QAK1Br3F,EAAMm4H,SAAW,SAAUrB,EAAOztH,GAC9B6uH,EAAU,CAAE70H,IAAKrD,EAAMqD,IAAKysC,KAAM9vC,EAAM8vC,MAAQgnF,EAAOztH,IAG3DrJ,EAAMo4H,cAAgB,SAAStB,EAAOnC,EAAOtrH,GACzC6uH,EAAU,CAAE70H,IAAKkyH,EAAUZ,GAAQ7kF,KAAM8kF,EAAWD,IAAUmC,EAAOztH,IAGzErJ,EAAM+3H,OAAS,SAAUjB,EAAOztH,GAE5B,GADAA,EAAWA,GAAY,aACnB4qH,EAAS6C,GACT92H,EAAMq1H,UAAUyB,GAAO,SAAUjD,EAAIxqH,GAC7BwqH,GACAA,GAAG,SAAU7lH,GACT,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC7CghC,EAAK5rC,QAAU,IACf4rC,EAAOA,EAAK,IAEhB32B,EAAS/e,KAAK,KAAM0jB,EAAKgyB,QAGlC32B,OAEF,CACD,IAAIguF,EAAU,GACdr3F,EAAMu0H,WAAWH,EAAM0C,IAAQ,SAAUx3H,EAAG+J,GACxCytH,EAAMx3H,IAAG,SAAU0O,GACf,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC7CghC,EAAK5rC,QAAU,IACf4rC,EAAOA,EAAK,IAEhBq3D,EAAQ/3F,GAAK0gC,EACb32B,EAAS2E,SAEd,SAAUA,GACT3E,EAAS2E,EAAKqpF,QAK1Br3F,EAAMnM,SAAW,SAAUijI,GACvB,IAAIuB,EAAe,SAAU7pG,GACzB,IAAIqlG,EAAK,WAIL,OAHIiD,EAAM1iI,QACN0iI,EAAMtoG,GAAOiR,MAAM,KAAMzgC,WAEtB60H,EAAGvvG,QAKd,OAHAuvG,EAAGvvG,KAAO,WACN,OAAQkK,EAAQsoG,EAAM1iI,OAAS,EAAKikI,EAAa7pG,EAAQ,GAAI,MAE1DqlG,GAEX,OAAOwE,EAAa,IAGxBr4H,EAAMy/B,MAAQ,SAAUo0F,GACpB,IAAI7zF,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GACjD,OAAO,WACH,OAAO60H,EAAGp0F,MACN,KAAMO,EAAKnoC,OAAO5D,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,eAKzD,IAAIs5H,EAAU,SAAUlD,EAAQphI,EAAK6/H,EAAIxqH,GACrC,IAAIpe,EAAI,GACRmqI,EAAOphI,GAAK,SAAUa,EAAG0jI,GACrB1E,EAAGh/H,GAAG,SAAUmZ,EAAKlZ,GACjB7J,EAAIA,EAAE4M,OAAO/C,GAAK,IAClByjI,EAAGvqH,SAER,SAAUA,GACT3E,EAAS2E,EAAK/iB,OAGtB+U,EAAMnI,OAASo9H,EAAWqD,GAC1Bt4H,EAAMw4H,aAAetD,EAASoD,GAE9Bt4H,EAAMy4H,OAAS,SAAU1oH,EAAMlc,EAAUwV,GACjC0G,IACAlc,GAAS,SAAUma,GACf,GAAIA,EACA,OAAO3E,EAAS2E,GAEpBhO,EAAMy4H,OAAO1oH,EAAMlc,EAAUwV,MAIjCA,KAIRrJ,EAAM04H,SAAW,SAAU7kI,EAAUkc,EAAM1G,GACvCxV,GAAS,SAAUma,GACf,GAAIA,EACA,OAAO3E,EAAS2E,GAEpB,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC7C+Q,EAAK0vB,MAAM,KAAMO,GACjBhgC,EAAM04H,SAAS7kI,EAAUkc,EAAM1G,GAG/BA,QAKZrJ,EAAM24H,MAAQ,SAAU5oH,EAAMlc,EAAUwV,GAC/B0G,IASD1G,IARAxV,GAAS,SAAUma,GACf,GAAIA,EACA,OAAO3E,EAAS2E,GAEpBhO,EAAM24H,MAAM5oH,EAAMlc,EAAUwV,OAQxCrJ,EAAM44H,QAAU,SAAU/kI,EAAUkc,EAAM1G,GACtCxV,GAAS,SAAUma,GACf,GAAIA,EACA,OAAO3E,EAAS2E,GAEpB,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC5C+Q,EAAK0vB,MAAM,KAAMO,GAIlB32B,IAHArJ,EAAM44H,QAAQ/kI,EAAUkc,EAAM1G,OAQ1CrJ,EAAM09E,MAAQ,SAAUm7C,EAAQC,GAI5B,SAASC,EAAQzjI,EAAGkC,EAAMsuC,EAAKz8B,GAO7B,GANK/T,EAAEw/H,UACLx/H,EAAEw/H,SAAU,GAETb,EAASz8H,KACVA,EAAO,CAACA,IAEM,GAAfA,EAAKpD,OAEL,OAAO4L,EAAMq0H,cAAa,WAClB/+H,EAAE0jI,OACF1jI,EAAE0jI,WAIb9E,EAAM18H,GAAM,SAASmkH,GACjB,IAAIvqF,EAAO,CACP55B,KAAMmkH,EACNtyG,SAA8B,mBAAbA,EAA0BA,EAAW,MAGtDy8B,EACFxwC,EAAEwhI,MAAMnmG,QAAQS,GAEhB97B,EAAEwhI,MAAM/1H,KAAKqwB,GAGX97B,EAAE2jI,WAAa3jI,EAAEwhI,MAAM1iI,SAAWkB,EAAEwjI,aACpCxjI,EAAE2jI,YAENj5H,EAAMq0H,aAAa/+H,EAAEu8D,iBAjCPzzD,IAAhB06H,IACAA,EAAc,GAoClB,IAAII,EAAU,EACV5jI,EAAI,CACJwhI,MAAO,GACPgC,YAAaA,EACbG,UAAW,KACXE,MAAO,KACPH,MAAO,KACPlE,SAAS,EACTltH,QAAQ,EACR7G,KAAM,SAAUvJ,EAAM6R,GACpB0vH,EAAQzjI,EAAGkC,GAAM,EAAO6R,IAE1BqqH,KAAM,WACJp+H,EAAE0jI,MAAQ,KACV1jI,EAAEwhI,MAAQ,IAEZnmG,QAAS,SAAUn5B,EAAM6R,GACvB0vH,EAAQzjI,EAAGkC,GAAM,EAAM6R,IAEzBwoD,QAAS,WACL,IAAKv8D,EAAEsS,QAAUsxH,EAAU5jI,EAAEwjI,aAAexjI,EAAEwhI,MAAM1iI,OAAQ,CACxD,IAAIunH,EAAOrmH,EAAEwhI,MAAMvrG,QACfj2B,EAAE6jI,OAA4B,IAAnB7jI,EAAEwhI,MAAM1iI,QACnBkB,EAAE6jI,QAEND,GAAW,EACX,IAUIX,EAAK3E,GAVE,WACPsF,GAAW,EACPvd,EAAKtyG,UACLsyG,EAAKtyG,SAASo2B,MAAMk8E,EAAM38G,WAE1B1J,EAAE0jI,OAAS1jI,EAAEwhI,MAAM1iI,OAAS8kI,IAAY,GACxC5jI,EAAE0jI,QAEN1jI,EAAEu8D,aAGNgnE,EAAOld,EAAKnkH,KAAM+gI,KAG1BnkI,OAAQ,WACJ,OAAOkB,EAAEwhI,MAAM1iI,QAEnB2gI,QAAS,WACL,OAAOmE,GAEXE,KAAM,WACF,OAAO9jI,EAAEwhI,MAAM1iI,OAAS8kI,IAAY,GAExCtwH,MAAO,YACc,IAAbtT,EAAEsS,SACNtS,EAAEsS,QAAS,EACXtS,EAAEu8D,YAENhpD,OAAQ,YACa,IAAbvT,EAAEsS,SACNtS,EAAEsS,QAAS,EACXtS,EAAEu8D,aAGV,OAAOv8D,GAGX0K,EAAMq5H,cAAgB,SAAUR,EAAQC,GAEpC,SAASQ,EAAc/jI,EAAGC,GACxB,OAAOD,EAAEma,SAAWla,EAAEka,SAiDxB,IAAIpa,EAAI0K,EAAM09E,MAAMm7C,EAAQC,GAU5B,OAPAxjI,EAAEyL,KAAO,SAAUvJ,EAAMkY,EAAUrG,IAnCnC,SAAiB/T,EAAGkC,EAAMkY,EAAUrG,GAOlC,GANK/T,EAAEw/H,UACLx/H,EAAEw/H,SAAU,GAETb,EAASz8H,KACVA,EAAO,CAACA,IAEM,GAAfA,EAAKpD,OAEL,OAAO4L,EAAMq0H,cAAa,WAClB/+H,EAAE0jI,OACF1jI,EAAE0jI,WAIb9E,EAAM18H,GAAM,SAASmkH,GACjB,IAAIvqF,EAAO,CACP55B,KAAMmkH,EACNjsG,SAAUA,EACVrG,SAA8B,mBAAbA,EAA0BA,EAAW,MAG1D/T,EAAEwhI,MAAMh1H,OApCd,SAAuBy3H,EAAUnoG,EAAMooG,GAGrC,IAFA,IAAIC,GAAO,EACP19C,EAAMw9C,EAASnlI,OAAS,EACrBqlI,EAAM19C,GAAK,CAChB,IAAIxuC,EAAMksF,GAAQ19C,EAAM09C,EAAM,IAAO,GACjCD,EAAQpoG,EAAMmoG,EAAShsF,KAAS,EAClCksF,EAAMlsF,EAENwuC,EAAMxuC,EAAM,EAGhB,OAAOksF,EAyBYC,CAAcpkI,EAAEwhI,MAAO1lG,EAAMkoG,GAAiB,EAAG,EAAGloG,GAE/D97B,EAAE2jI,WAAa3jI,EAAEwhI,MAAM1iI,SAAWkB,EAAEwjI,aACpCxjI,EAAE2jI,YAENj5H,EAAMq0H,aAAa/+H,EAAEu8D,YASzBknE,CAAQzjI,EAAGkC,EAAMkY,EAAUrG,WAItB/T,EAAEq7B,QAEFr7B,GAGX0K,EAAM25H,MAAQ,SAAUd,EAAQvoG,GAC5B,IAAIspG,GAAc,EACd9C,EAAc,GAEd6C,EAAQ,CACR7C,MAAOA,EACPxmG,QAASA,EACT2oG,UAAW,KACXE,MAAO,KACPH,MAAO,KACPa,SAAS,EACT94H,KAAM,SAAUvJ,EAAM6R,GACb4qH,EAASz8H,KACVA,EAAO,CAACA,IAEZ08H,EAAM18H,GAAM,SAASmkH,GACjBmb,EAAM/1H,KAAK,CACPvJ,KAAMmkH,EACNtyG,SAA8B,mBAAbA,EAA0BA,EAAW,OAE1DswH,EAAME,SAAU,EACZF,EAAMV,WAAanC,EAAM1iI,SAAWk8B,GACpCqpG,EAAMV,eAGdj5H,EAAMq0H,aAAasF,EAAM9nE,UAE7BA,QAAS,SAASA,IACd,IAAI+nE,EAAJ,CACA,GAAqB,IAAjB9C,EAAM1iI,OAGN,OAFGulI,EAAMX,QAAUW,EAAME,SAASF,EAAMX,aACxCW,EAAME,SAAU,GAIpB,IAAIvpB,EAAwB,iBAAZhgF,EACFwmG,EAAMh1H,OAAO,EAAGwuB,GAChBwmG,EAAMh1H,OAAO,EAAGg1H,EAAM1iI,QAEhC4lC,EAAKm6F,EAAK7jB,GAAI,SAAUqL,GACxB,OAAOA,EAAKnkH,QAGbmiI,EAAMR,OAAOQ,EAAMR,QACtBS,GAAU,EACVf,EAAO7+F,GAAI,WACP4/F,GAAU,EAEV,IAAI55F,EAAOhhC,UACXk1H,EAAM5jB,GAAI,SAAU94G,GACZA,EAAK6R,UACL7R,EAAK6R,SAASo2B,MAAM,KAAMO,MAIlC6xB,SAGRz9D,OAAQ,WACJ,OAAO0iI,EAAM1iI,QAEjB2gI,QAAS,WACL,OAAO6E,IAGf,OAAOD,GAGX,IAAIG,EAAc,SAAUpvI,GACxB,OAAO,SAAUmpI,GACb,IAAI7zF,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GACjD60H,EAAGp0F,MAAM,KAAMO,EAAKnoC,OAAO,CAAC,SAAUmW,GAClC,IAAIgyB,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GAC1B,oBAAZ4D,UACHoL,EACIpL,QAAQC,OACRD,QAAQC,MAAMmL,GAGbpL,QAAQlY,IACbwpI,EAAMl0F,GAAM,SAAUnrC,GAClB+N,QAAQlY,GAAMmK,aAOtCmL,EAAMyC,IAAMq3H,EAAY,OACxB95H,EAAM0+E,IAAMo7C,EAAY,OAKxB95H,EAAM+5H,QAAU,SAAUlG,EAAImG,GAC1B,IAAIvE,EAAO,GACPwE,EAAS,GACbD,EAASA,GAAU,SAAUnlI,GACzB,OAAOA,GAEX,IAAIqlI,EAAW,WACX,IAAIl6F,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,WAClCqK,EAAW22B,EAAKzxB,MAChB7iB,EAAMsuI,EAAOv6F,MAAM,KAAMO,GACzBt0C,KAAO+pI,EACPz1H,EAAMm+E,UAAS,WACX90E,EAASo2B,MAAM,KAAMg2F,EAAK/pI,OAGzBA,KAAOuuI,EACZA,EAAOvuI,GAAKqV,KAAKsI,IAGjB4wH,EAAOvuI,GAAO,CAAC2d,GACfwqH,EAAGp0F,MAAM,KAAMO,EAAKnoC,OAAO,CAAC,WACxB49H,EAAK/pI,GAAOsT,UACZ,IAAI1J,EAAI2kI,EAAOvuI,UACRuuI,EAAOvuI,GACd,IAAK,IAAIvB,EAAI,EAAGC,EAAIkL,EAAElB,OAAQjK,EAAIC,EAAGD,IACnCmL,EAAEnL,GAAGs1C,MAAM,KAAMzgC,iBAO/B,OAFAk7H,EAASzE,KAAOA,EAChByE,EAASC,WAAatG,EACfqG,GAGXl6H,EAAMo6H,UAAY,SAAUvG,GAC1B,OAAO,WACL,OAAQA,EAAGsG,YAActG,GAAIp0F,MAAM,KAAMzgC,aAI7CgB,EAAMu3H,MAAQ,SAAU9sF,EAAO52C,EAAUwV,GAErC,IADA,IAAIgxH,EAAU,GACLlwI,EAAI,EAAGA,EAAIsgD,EAAOtgD,IACvBkwI,EAAQt5H,KAAK5W,GAEjB,OAAO6V,EAAMqD,IAAIg3H,EAASxmI,EAAUwV,IAGxCrJ,EAAMs6H,YAAc,SAAU7vF,EAAO52C,EAAUwV,GAE3C,IADA,IAAIgxH,EAAU,GACLlwI,EAAI,EAAGA,EAAIsgD,EAAOtgD,IACvBkwI,EAAQt5H,KAAK5W,GAEjB,OAAO6V,EAAMq1H,UAAUgF,EAASxmI,EAAUwV,IAG9CrJ,EAAMu6H,IAAM,WACR,IAAIC,EAAMx7H,UACV,OAAO,WACH,IAAIirC,EAAOpsC,KACPmiC,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,WAClCqK,EAAW22B,EAAKzxB,MACpBvO,EAAMuD,OAAOi3H,EAAKx6F,GAAM,SAAUy6F,EAAS5G,EAAI0E,GAC3C1E,EAAGp0F,MAAMwK,EAAMwwF,EAAQ5iI,OAAO,CAAC,WAC3B,IAAImW,EAAMhP,UAAU,GAChB07H,EAAWzmI,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GACrDu5H,EAAGvqH,EAAK0sH,UAGhB,SAAU1sH,EAAKqpF,GACXhuF,EAASo2B,MAAMwK,EAAM,CAACj8B,GAAKnW,OAAOw/F,SAK9Cr3F,EAAM26H,QAAU,WACd,OAAO36H,EAAMu6H,IAAI96F,MAAM,KAAMxrC,MAAMlI,UAAU0kC,QAAQnmC,KAAK0U,aAG5D,IAAI47H,EAAa,SAAUxF,EAAQoF,GAC/B,IAAIK,EAAK,WACL,IAAI5wF,EAAOpsC,KACPmiC,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,WAClCqK,EAAW22B,EAAKzxB,MACpB,OAAO6mH,EAAOoF,GAAK,SAAU3G,EAAI0E,GAC7B1E,EAAGp0F,MAAMwK,EAAMjK,EAAKnoC,OAAO,CAAC0gI,OAEhClvH,IAEJ,GAAIrK,UAAU5K,OAAS,EAAG,CACtB,IAAI4rC,EAAO/rC,MAAMlI,UAAUgsC,MAAMztC,KAAK0U,UAAW,GACjD,OAAO67H,EAAGp7F,MAAM5hC,KAAMmiC,GAGtB,OAAO66F,GAGf76H,EAAM86H,UAAY7F,EAAW2F,GAC7B56H,EAAM+6H,gBAAkB7F,EAAS0F,GAEjC56H,EAAMg7H,QAAU,SAAUnH,EAAIxqH,IAC1B,SAASib,EAAKtW,GACV,GAAIA,EAAK,CACL,GAAI3E,EACA,OAAOA,EAAS2E,GAEpB,MAAMA,EAEV6lH,EAAGvvG,GAEPA,IAIiC16B,EAAOD,QACxCC,EAAOD,QAAUqW,OAIX,kBACF,OAAOA,GADL,QAAC,OAAD,aAhlCb,K,oDCcDpW,EAAOD,QAAU,CAAE6tF,YAhBnB,SAAqBt9D,GACjB,IAAKA,EACD,OAAO,EAGX,IAAI+gH,EAAgB9wI,EAAVuM,EAAO,EAEjB,IAAKvM,EAAI,EAAGA,EAAI+vB,EAAO9lB,OAAQjK,IAC3B8wI,EAAO/gH,EAAO9kB,WAAWjL,GACzBuM,GAAQukI,EAAOhyH,KAAKsP,IAAI,GAAI2B,EAAO9lB,OAAS,EAAIjK,GAChDuM,EAAOuS,KAAKuP,IAAW,EAAP9hB,GAGpB,OAAOA,K,8BCpBX,yEAOA,MAAMolB,EAASF,oBAAUM,GAOV,MAAMwsD,UAAsBzwC,IAiBvCnkC,YACQoW,EACA4+D,EACAC,EACA32D,EACA42D,EACAtlC,EACAulC,GACJ/wC,QACAr6B,KAAKqM,IAAMA,EACXrM,KAAKirE,SAAWA,EAChBjrE,KAAKkrE,UAAYA,EACjBlrE,KAAKuU,WAAaA,EAClBvU,KAAKmrE,iBAAmBA,EACxBnrE,KAAK6lC,UAAYA,EAOjB7lC,KAAKorE,YAAcA,EAMnBprE,KAAK4vE,SAAU,EAKf5vE,KAAK6vE,cAAgB,GAMrB7vE,KAAKm/C,KAAO,KAMZn/C,KAAKitC,MAAQ,KAMbjtC,KAAKi6D,IAAM,KAOf,mBACI,OAAOj6D,KAAKorE,YAAcprE,KAAKirE,SAAWjrE,KAAKkrE,UAOnD,mBACI,OAAOlrE,KAAKorE,YAAcprE,KAAKkrE,UAAYlrE,KAAKirE,SAapDvkB,WAAWvH,EAAM8a,EAAK9yD,GAClB,GAAmB,OAAfnH,KAAKitC,MAAgB,CACrB,MAAMtV,EACC,kCAAiC33B,KAAKqM,oCAC3BrM,KAAKitC,QAGvB,MADAhvB,EAAOjZ,MAAM2yB,GACP,IAAItgC,MAAMsgC,GAEpB33B,KAAKm/C,KAAOA,EACZn/C,KAAKi6D,IAAMA,EACXj6D,KAAKitC,MAAQ0/B,IACb3sE,KAAK4sE,aAAazlE,GAStBylE,aAAazlE,IAWbspE,iBAAiB/9B,IAQjB2qF,WACI,OAAOr9H,KAAKitC,MAUhBqwF,WAAW5qF,IAOX6qF,cAAc7qF,IAiBdmhC,UAAUnsB,EAAS8pB,EAASrqE,IAW5BmqE,YAAYh/B,EAAQoV,EAAS8pB,IAK7BkI,mBACI,OAAO15E,KAAKorE,YAAcprE,KAAKirE,SAAWjrE,KAAKkrE,c,0EC1MvD,iFAQA,MAAMjtD,EAASF,oBAAUM,GAMV,MAAM6tD,UAA2BsxD,IAI5CvnI,cACIokC,QAUAr6B,KAAKy9H,WAAa,IAAIl+G,IAMtBvf,KAAK8xG,SAAW,KAOpB7iC,YAAY9vB,GACR,MAAMu+E,EAAc19H,KAAK8xG,SAEzB9xG,KAAK8xG,SAAW3yD,EACZu+E,IACAA,EAAY14B,uBACR,aAAchlG,KAAK29H,mBACvBD,EAAY14B,uBACR,aAAchlG,KAAK49H,mBACvBF,EAAY14B,uBACR,YAAahlG,KAAK69H,oBAEtB1+E,IAEAn/C,KAAK29H,kBAAoB,CAACz8H,EAAMvK,KAC5BqJ,KAAKwf,aAAa0D,KACd46G,IACAnnI,EAAM4nC,IAAgC,SAAfr9B,EAAK3T,QAEpC4xD,EAAK2lD,oBAAoB,aAAc9kG,KAAK29H,mBAE5C39H,KAAK49H,kBAAoB,CAAC18H,EAAMvK,KAC5BqJ,KAAKwf,aAAa0D,KACd46G,IACAnnI,EAAM4nC,IAAgC,SAAfr9B,EAAK3T,QAEpC4xD,EAAK2lD,oBAAoB,aAAc9kG,KAAK49H,mBAE5C59H,KAAK69H,kBAAoB,CAAC38H,EAAMvK,KAC5BqJ,KAAKwf,aAAa0D,KACd46G,IACAnnI,EAAMuK,EAAK3T,QAEnB4xD,EAAK2lD,oBAAoB,YAAa9kG,KAAK69H,oBAOnDE,iBAAiB51F,EAAOxc,GACpB,GAAI3rB,KAAK8xG,SACL,OAAO9xG,KAAK8xG,SAASwe,qBAAqBnoF,EAAOxc,GAErD1N,EAAOjZ,MAAM,kDAMjBg5H,aAAah5G,GACT,OAAOhlB,KAAKy9H,WAAWtwI,IAAI63B,GAS/BksD,aAAalsD,EAAMg3C,GACf,GAAoB,iBAATh3C,EACP,MAAM,IAAInuB,UAAW,QAAOmuB,uBAEhChlB,KAAKy9H,WAAWr8G,IAAI4D,EAAMg3C,O,8ECzGlC,8CAgBe,MAAMwhE,UAAuBpjG,IAOxC4jG,aAAah5G,GACT,MAAM,IAAI3tB,MAAM,mBAcpB0mI,iBAAiB51F,EAAOxc,GACpB,MAAM,IAAIt0B,MAAM,sB,6BCxCxB,mBAOA,MAAM4mI,UAAsBvU,IAIxBzzH,cACIokC,QACAr6B,KAAK4E,IAAM,GAOfgG,KAAK2J,GACD8lB,MAAMzvB,KAAK2J,GACXvU,KAAKuU,WAAWrH,SAAWlN,KAAKk+H,YAAYpwI,KAAKkS,MACjDA,KAAKuU,WAAWpH,UAAYnN,KAAKm+H,YAAYrwI,KAAKkS,MAOtDk+H,YAAYlwH,GACRhO,KAAK4E,IAAI1B,KAAK,EAAE,IAAIiF,MAAOC,UAAW,WAAY4F,IAOtDmwH,YAAYnwH,GACRhO,KAAK4E,IAAI1B,KAAK,EAAE,IAAIiF,MAAOC,UAAW,WAAY4F,KAO3C,eACXvS,UAAQsK,oBAAoB,SAAU,IAAIk4H,K,8BC/C9C,wEAOA,MAAMhgH,EAASF,oBAAUM,GAOV,MAAMogC,UAA6BirE,IAK9C9+G,KAAK2J,GACD8lB,MAAMzvB,KAAK2J,GAEXvU,KAAKuU,WAAWxG,WACZ/N,KAAKo+H,OAAOtwI,KAAKkS,MAdV,kBAc6B,KAAM,MAAO,KAAM,MAO/Do+H,OAAOnrH,GACHgL,EAAO/Y,KAAK,UAAW+N,GAa3BwqC,KAAK1U,EAAIpyC,EAAMkmD,EAAUwhF,EAAU9lC,GAC/B,OAAO,IAAIv7D,QAAQ,CAACC,EAASC,KACzB,IAAKq7D,EAGD,YAFAr7D,EAAO,IAAI7lC,MAAM,oBAIrB,MAAMgZ,EAAM1U,cAAI,CACZsL,KAAM,MACN8hC,GAAIwvD,IAGRloF,EAAI1jB,EAAE,OAAQ,CACVsZ,MAhDG,kBAiDH8iC,KACApyC,SAEJ0Z,EAAI1jB,EAAE,SAAU,CACZE,KAAM,cACNU,MAAOsvD,IACR12C,KAECk4H,GAAYA,EAAS9nI,QACrB8Z,EAAI1jB,EAAE,SAAU,CACZE,KAAM,kBACNU,MAAO8wI,IACRl4H,KAGPnG,KAAKuU,WAAWnG,OACZiC,EACA5K,IACIwY,EAAO/Y,KAAK,eAAgBO,GAG5B,MAAMoO,EAAW4+B,EAAEhtC,GAAQwrB,KAAK,OAAO1vB,KAAK,OAE5CvB,KAAKs+H,aAAezqH,EAASuB,OAAO,QAAQ7e,QAC5C0nB,EAAO/Y,KAAM,2BAA0BlF,KAAKs+H,cAC5CrhG,KAEJj4B,IACIiZ,EAAO/Y,KAAK,cAAeF,GAC3Bk4B,EAAOl4B,OAUvBknG,SACI,OAAO,IAAIlvE,QAAQ,CAACC,EAASC,KACzB,IAAKl9B,KAAKs+H,aAIN,OAHAphG,EAAO,IAAI7lC,MAAM,6BACjB4mB,EAAO9Y,KAAK,uBAKhB,MAAMkL,EAAM1U,cAAI,CACZsL,KAAM,MACN8hC,GAAI/oC,KAAKs+H,eAGbjuH,EAAI1jB,EAAE,SAAU,CACZsZ,MAvGG,oBA0GPjG,KAAKuU,WAAWnG,OAAOiC,EAAK5K,IACxBwY,EAAO/Y,KAAK,iBAAkBO,GAC9BzF,KAAKs+H,aAAe,KACpBrhG,KACDj4B,IACCiZ,EAAO/Y,KAAK,gBAAiBF,GAC7BhF,KAAKs+H,aAAe,KACpBphG,EAAO,IAAI7lC,MAAM,0B,yEC1HjC,+CASA,MAAM4mB,EAASF,oBAAUM,GAkBzB,IAAIg+B,GAAmB,EAQvB,MAAMkiF,EAA8B,6BAO9BC,EACA,wDAKS,eAEX/iI,UAAQmJ,IAAM,SAASC,EAAOC,GAe1B,OATAmZ,EAAOwgH,MAAM,UAAW55H,EAAOC,GACZ,iBAARA,IAC6B,IAA7BA,EAAIlB,QAAQ,cAC0C,IAAtDkB,EAAIlB,QAAQ,uCAEnBiB,EAAQpJ,UAAQmD,SAASG,MAIrB8F,GACR,KAAKpJ,UAAQmD,SAASC,OAGO,IAArBw9C,GACOkiF,EAA4BrsH,KAAKpN,KACxCmZ,EAAOhZ,MAAM,yBACbo3C,GAAmB,GAEvB,MACJ,KAAK5gD,UAAQmD,SAASG,KAClBkf,EAAO9Y,KAAM,YAAWL,GACxB,MAAM45H,EAAmBF,EAAuB/zE,KAAK3lD,GAEjD45H,GAAgD,IAA5BA,EAAiBnoI,SACrC8lD,EAAkB/jC,SAASomH,EAAiB,GAAI,IAChDzgH,EAAOhZ,MAAO,2BAA0Bo3C,IAE5C,MACJ,KAAK5gD,UAAQmD,SAASlB,MACtB,KAAKjC,UAAQmD,SAASI,MAElB8F,EAAO,YAAWA,EAClB8yB,IAAqBC,iBAAiB,IAAIxgC,MAAMyN,IAChDmZ,EAAOjZ,MAAMF,KAarBrJ,UAAQ6gD,mBAAqB,WACzB,OAAOD,GAGX5gD,UAAQi/C,gBAAkB,SAAS3qC,GAC/B,OAAQA,GACR,KAAKtU,UAAQgC,OAAOY,aAChB,MAAO,eACX,KAAK5C,UAAQgC,OAAOC,MAChB,MAAO,QACX,KAAKjC,UAAQgC,OAAOE,WAChB,MAAO,aACX,KAAKlC,UAAQgC,OAAOG,SAChB,MAAO,WACX,KAAKnC,UAAQgC,OAAOI,eAChB,MAAO,iBACX,KAAKpC,UAAQgC,OAAOK,SAChB,MAAO,WACX,KAAKrC,UAAQgC,OAAOM,UAChB,MAAO,YACX,KAAKtC,UAAQgC,OAAOO,aAChB,MAAO,eACX,KAAKvC,UAAQgC,OAAOQ,cAChB,MAAO,gBACX,KAAKxC,UAAQgC,OAAOS,SAChB,MAAO,WACX,QACI,MAAO,e,yECjInB,wGAOA,MAAM+f,EAASF,oBAAUM,GAMV,MAAMimB,EAYjBruC,YAAY+qB,EAAgBqjB,EAAOsH,EAASgzF,GACxC,IAAK39G,IAAmBqjB,EACpB,MAAM,IAAIxtC,UACN,kDACD,GAAImqB,GAAkBqjB,EACzB,MAAM,IAAIxtC,UACN,qDA8BR,GA3BImqB,EACA/C,EAAOhZ,MAAM,qCAEbgZ,EAAOhZ,MAAO,6BAA4Bo/B,MAK9CrkC,KAAKijC,SAAW,KAGhBjjC,KAAK64F,cAAgBltD,EAIrB3rC,KAAKm3F,MAAQ,KAGbn3F,KAAK4+H,oBAAqB,EAG1B5+H,KAAK6+H,mBAAoB,EAEzB7+H,KAAKukC,+BAAiCo6F,EAIlC39G,EAAgB,CAChB,MAAM89G,EACA99G,EAAe+9G,kBACb,mBAAoB,CAChBr2H,SAAU,uCAItB1I,KAAKg/H,eAAeF,GACpB9+H,KAAKm3F,MAAQ,mBAGN9yD,IACPrkC,KAAK4+H,oBAAqB,EAC1B5+H,KAAKi/H,OAAS56F,EACdrkC,KAAKk/H,kBASbA,iBAEI,MAAMC,EAAK,IAAI5jH,UAAUvb,KAAKi/H,QAG9Bj/H,KAAKg/H,eAAeG,GACpBn/H,KAAKm3F,MAAQ,YAQjBioC,0BACI,IAAIC,EAAW,EAEf,MAAMC,EAAS,KACPt/H,KAAKslC,WAGTtlC,KAAKk/H,eAAel/H,KAAKi/H,QACzBI,EAAWj0H,KAAKqP,IAAe,EAAX4kH,EAAc,IAClCr/H,KAAKu/H,cAAgBh1H,WAAW+0H,EAAmB,IAAXD,KAG5Cr/H,KAAKu/H,cAAgBh1H,WAAW+0H,EAAmB,IAAXD,GAQ5CG,yBACQx/H,KAAKu/H,gBACL9xH,aAAazN,KAAKu/H,eAClBv/H,KAAKu/H,mBAAgBh/H,GAU7Bk/H,0BAA0BC,GACtB,IAAK1/H,KAAK4+H,mBACN,OAEJ,MAAM,KAAEjiH,EAAF,OAAQnN,GAAWkwH,EAEzBtgH,IAAWoI,cAAc4E,YAA+BzP,EAAMnN,IAC9DxP,KAAK4+H,oBAAqB,EAC1B5+H,KAAK64F,cAAcntD,KAAK1S,IAAUpR,kBAAmB,KACjD5nB,KAAKw/H,yBACLx/H,KAAK4+H,oBAAqB,IAE9B5+H,KAAKo/H,0BAOT,WACI,OAAOp/H,KAAKm3F,MAMhB16E,QAII,GAHAzc,KAAK6+H,mBAAoB,EACzB7+H,KAAKw/H,yBACLx/H,KAAK4+H,oBAAqB,EACtB5+H,KAAKijC,SAAU,CACf,IACIjjC,KAAKijC,SAASxmB,QAChB,MAAOzX,IAEThF,KAAKijC,SAAW,MASxBqC,SACI,OAAOtlC,KAAKijC,WAA0C,SAA7BjjC,KAAKijC,SAASjqB,YAChChZ,KAAKijC,SAASjqB,aAAeuC,UAAU42C,MAYlDnpB,YAAYD,EAAItW,GACZzyB,KAAKuN,MAAM,CACPoyH,aAAc,kBACdC,WAAYntG,EACZsW,OAQRnE,oBAAoBr3C,GAChB,MAAMsyI,EAAa,CACfF,aAAc,oBACd73B,MAAOv6G,GAGXyS,KAAKuN,MAAMsyH,GACX5hH,EAAOrZ,IAAK,yBAAwBrX,GAUxCi3C,0BAA0Bw3B,GACtB/9C,EAAOrZ,IACH,kEACAo3D,GAEJh8D,KAAKuN,MAAM,CACPoyH,aAAc,6BACdG,eAAgB9jE,GAAc,OAYtCv3B,6BAA6Bs7F,GACzB9hH,EAAOrZ,IACH,oEACAm7H,GAEJ//H,KAAKuN,MAAM,CACPoyH,aAAc,gCACdK,kBAAmBD,IAS3Br7F,mCAAmCu7F,GAC/BhiH,EAAOrZ,IACA,sEAAsBq7H,YAC7BjgI,KAAKuN,MAAM,CACPoyH,aAAc,0BACdt6F,eAAgB46F,IAOxBjB,eAAekB,GACX,MAAMv0F,EAAU3rC,KAAK64F,cAErBqnC,EAAQ1kH,OAAS,KACbyC,EAAO/Y,KAAQlF,KAAKm3F,MAAP,mBAQbxrD,EAAQzoB,KAAK8V,IAAUpR,oBAG3Bs4G,EAAQxkH,QAAU2L,IAGK,cAAfrnB,KAAKm3F,OACLl5E,EAAOjZ,MAAO,kBAAiBqiB,EAAM5iB,UAI7Cy7H,EAAQpkH,UAAY,EAAGniB,WAEnB,IAAI5D,EAEJ,IACIA,EAAM6W,KAAKsL,MAAMve,GACnB,MAAOqL,GAML,OALA4yB,IAAqBC,iBAAiB7yB,QACtCiZ,EAAOjZ,MACH,4CACArL,EAAMqL,GAKd,MAAM26H,EAAe5pI,EAAI4pI,aAEzB,OAAQA,GACR,IAAK,qCAAsC,CAEvC,MAAMQ,EAA0BpqI,EAAIoqI,wBAEpCliH,EAAO/Y,KACH,uCACAi7H,GACJx0F,EAAQzoB,KACJ8V,IAAUtlC,yBACVysI,GACJ,MAEJ,IAAK,wCAAyC,CAC1C,MAAMC,EAAWrqI,EAAIqqI,SACfnkE,EAA0B,SAAflmE,EAAIuwF,OAErBroE,EAAO/Y,KACF,uCAAsCk7H,cACnCnkE,KACRtwB,EAAQzoB,KAAK8V,IAAUnR,6BACnBu4G,EAAUnkE,GAEd,MAEJ,IAAK,kBACDtwB,EAAQzoB,KACJ8V,IAAUnlC,0BAA2BkC,EAAIY,KACzCZ,EAAI6pI,YAER,MAEJ,IAAK,4BAA6B,CAE9B,MAAM96F,EAAiB/uC,EAAI+uC,eAE3B7mB,EAAO/Y,KAAK,6BACR4/B,EAAgB/uC,GACpB41C,EAAQzoB,KAAK8V,IAAUlR,uBACnBgd,EAAgB/uC,GAEpB,MAEJ,IAAK,yBAA0B,CAC3B,MAAMsqI,EAAmBtqI,EAAIsqI,iBAEzBA,IACApiH,EAAO/Y,KAAM,2BAA0B0H,KAAKwL,UAAUioH,IACtDrgI,KAAKukC,+BAA+B87F,IAExC,MAEJ,QACIpiH,EAAOhZ,MAAM,mCAAoClP,GAMjD41C,EAAQzoB,KAAM,mBAAkBy8G,EAAgB5pI,KAKxDmqI,EAAQtkH,QAAUyL,IACdpJ,EAAO/Y,KAAM,sBAAoBlF,KAAK6+H,kBAAoB,SAAW,WAElD,cAAf7+H,KAAKm3F,QACAn3F,KAAK6+H,oBACN5gH,EAAOjZ,MAAO,mBAAkBqiB,EAAM1K,QAAQ0K,EAAM7X,UACpDxP,KAAKy/H,0BAA0Bp4G,KAKvCrnB,KAAKijC,SAAW,MAIpBjjC,KAAKijC,SAAWi9F,EAUpB3yH,MAAMsyH,GACF,MAAMK,EAAUlgI,KAAKijC,SAErB,IAAKjjC,KAAKslC,SAEN,MADArnB,EAAOjZ,MAAM,2CACP,IAAI3N,MAAM,qBAGpB6oI,EAAQ7yH,KAAKT,KAAKwL,UAAUynH,Q,wECzYpC,IAAIhhE,EAAWzhD,EAAQ,IAYvB,SAASsoD,EAAkBC,EAAalsB,EAAMxyC,EAAMsa,EAAQ++G,GAC1D,IAAItuG,EAAM6sC,EAASwE,oBAAoBsC,EAAYvsC,KAAMqgB,GAuBzD,GApBAznB,GAAO6sC,EAAS+D,mBACZ+C,EAAYC,YAAYC,sBAG5B7zC,GAAO6sC,EAAS8C,oBACZgE,EAAYG,cAAcD,qBACjB,UAAT5+D,EAAmB,UAAYq5H,GAAY,UAE/CtuG,GAAO,SAAW2zC,EAAYj2B,IAAM,OAEhCi2B,EAAYI,WAAaJ,EAAYK,YACvCh0C,GAAO,iBACE2zC,EAAYI,UACrB/zC,GAAO,iBACE2zC,EAAYK,YACrBh0C,GAAO,iBAEPA,GAAO,iBAGL2zC,EAAYI,UAAW,CACzB,IAAI2gB,EAAU/gB,EAAYI,UAAUw6D,iBAChC56D,EAAYI,UAAUznC,MAAMp3B,GAChCy+D,EAAYI,UAAUw6D,gBAAkB75C,EAExC,IAAI5kC,EAAO,SAAWvgC,EAASA,EAAOra,GAAK,KAAO,IAC9Cw/E,EAAU,OACd10D,GAAO,KAAO8vB,EAEd9vB,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjhD,KACrD,IAAM88B,EAGN6jB,EAAYM,uBAAuB,GAAGjC,MACxChyC,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjC,IAAIh/C,KACzD,IAAM88B,EACV9vB,GAAO,oBACH2zC,EAAYM,uBAAuB,GAAGjhD,KAAO,IAC7C2gD,EAAYM,uBAAuB,GAAGjC,IAAIh/C,KAC1C,QAUR,OANAgN,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjhD,KACrD,UAAY65C,EAASC,WAAa,OAClC6G,EAAYI,WAAaJ,EAAYM,uBAAuB,GAAGjC,MACjEhyC,GAAO,UAAY2zC,EAAYM,uBAAuB,GAAGjC,IAAIh/C,KACzD,UAAY65C,EAASC,WAAa,QAEjC9sC,EA2CT,SAASwuG,EAAsBC,EAAmBC,GAChD,IAAIC,EAAqB,CACvB59D,OAAQ,GACRC,iBAAkB,GAClBC,cAAe,IAGb29D,EAAyB,SAASpxG,EAAIuzC,GACxCvzC,EAAKlX,SAASkX,EAAI,IAClB,IAAK,IAAIljC,EAAI,EAAGA,EAAIy2E,EAAOxsE,OAAQjK,IACjC,GAAIy2E,EAAOz2E,GAAGymD,cAAgBvjB,GAC1BuzC,EAAOz2E,GAAGi0E,uBAAyB/wC,EACrC,OAAOuzC,EAAOz2E,IAKhBu0I,EAAuB,SAASC,EAAMC,EAAMC,EAASC,GACvD,IAAIC,EAASN,EAAuBE,EAAKlgE,WAAWiD,IAAKm9D,GACrDG,EAASP,EAAuBG,EAAKngE,WAAWiD,IAAKo9D,GACzD,OAAOC,GAAUC,GACbD,EAAOr0I,KAAK8V,gBAAkBw+H,EAAOt0I,KAAK8V,eAqDhD,OAlDA89H,EAAkB19D,OAAO3zD,SAAQ,SAAS8xH,GACxC,IAAK,IAAI50I,EAAI,EAAGA,EAAIo0I,EAAmB39D,OAAOxsE,OAAQjK,IAAK,CACzD,IAAI60I,EAAST,EAAmB39D,OAAOz2E,GACvC,GAAI40I,EAAOr0I,KAAK8V,gBAAkBw+H,EAAOt0I,KAAK8V,eAC1Cu+H,EAAO9gE,YAAc+gE,EAAO/gE,UAAW,CACzC,GAAkC,QAA9B8gE,EAAOr0I,KAAK8V,eACZu+H,EAAOtgE,YAAcugE,EAAOvgE,WAAWiD,MAGpCg9D,EAAqBK,EAAQC,EAC9BV,EAAkB19D,OAAQ29D,EAAmB39D,QAC/C,UAGJo+D,EAASv0H,KAAKsL,MAAMtL,KAAKwL,UAAU+oH,KAE5B9gE,YAAcj1D,KAAKqP,IAAIymH,EAAO7gE,YACjC8gE,EAAO9gE,aAEXsgE,EAAmB59D,OAAO7/D,KAAKi+H,GAG/BA,EAAOngE,aAAemgE,EAAOngE,aAAatwC,QAAO,SAASyhB,GACxD,IAAK,IAAIj5C,EAAI,EAAGA,EAAIgoI,EAAOlgE,aAAazqE,OAAQ2C,IAC9C,GAAIgoI,EAAOlgE,aAAa9nE,GAAG+N,OAASkrC,EAAGlrC,MACnCi6H,EAAOlgE,aAAa9nE,GAAG+5C,YAAcd,EAAGc,UAC1C,OAAO,EAGX,OAAO,KAIT,WAKNwtF,EAAkBz9D,iBAAiB5zD,SAAQ,SAASgyH,GAClD,IAAK,IAAI90I,EAAI,EAAGA,EAAIo0I,EAAmB19D,iBAAiBzsE,OACnDjK,IAAK,CACR,IAAI+0I,EAAmBX,EAAmB19D,iBAAiB12E,GAC3D,GAAI80I,EAAiBxxG,MAAQyxG,EAAiBzxG,IAAK,CACjD+wG,EAAmB39D,iBAAiB9/D,KAAKm+H,GACzC,WAMCV,EAIT,SAASW,EAAgC92G,EAAQvjB,EAAMgnE,GACrD,OAS6C,IATtC,CACLgI,MAAO,CACLlE,oBAAqB,CAAC,SAAU,oBAChC+D,qBAAsB,CAAC,SAAU,sBAEnCE,OAAQ,CACNjE,oBAAqB,CAAC,oBAAqB,uBAC3C+D,qBAAsB,CAAC,mBAAoB,0BAE7C7uE,GAAMujB,GAAQ5mB,QAAQqqE,GAG1B,SAASszD,EAAkBC,EAAc/yG,GAGvC,IAAIgzG,EAAeD,EAAaE,sBAC3BzwG,MAAK,SAAS0wG,GACb,OAAOlzG,EAAUE,aAAegzG,EAAgBhzG,YAC5CF,EAAUI,KAAO8yG,EAAgB9yG,IACjCJ,EAAUd,OAASg0G,EAAgBh0G,MACnCc,EAAU5c,WAAa8vH,EAAgB9vH,UACvC4c,EAAU/lB,WAAai5H,EAAgBj5H,UACvC+lB,EAAUxnB,OAAS06H,EAAgB16H,QAK7C,OAHKw6H,GACHD,EAAaI,mBAAmBnzG,IAE1BgzG,EAIV,SAASI,EAAUh1I,EAAMi2E,GACvB,IAAIzpE,EAAI,IAAIhC,MAAMyrE,GAUlB,OATAzpE,EAAExM,KAAOA,EAETwM,EAAEsjB,KAAO,CACPmlH,kBAAmB,EACnBC,kBAAmB,GACnBC,mBAAoB,GACpBnrI,eAAW0J,EACX0hI,oBAAgB1hI,GAChB1T,GACKwM,EAGTtN,EAAOD,QAAU,SAASI,EAAQg2I,GAIhC,SAASC,EAA6B7jG,EAAO/c,GAC3CA,EAAO4c,SAASG,GAChB/c,EAAO6gH,cAAc,IAAIl2I,EAAOm2I,sBAAsB,WAClD,CAAC/jG,MAAOA,KASd,SAASgkG,EAAah9E,EAAIhnB,EAAO8M,EAAUtN,GACzC,IAAIykG,EAAa,IAAIC,MAAM,SAC3BD,EAAWjkG,MAAQA,EACnBikG,EAAWn3F,SAAWA,EACtBm3F,EAAW58D,YAAc,CAACv6B,SAAUA,GACpCm3F,EAAWzkG,QAAUA,EACrB5xC,EAAOqe,YAAW,WAChB+6C,EAAGm9E,eAAe,QAASF,MAI/B,IAAIxnG,EAAoB,SAASvH,GAC/B,IAAI8xB,EAAKtlD,KAEL0iI,EAAernI,SAASgI,yBAwB5B,GAvBA,CAAC,mBAAoB,sBAAuB,iBACvC+L,SAAQ,SAASs/E,GAChBppC,EAAGopC,GAAUg0C,EAAah0C,GAAQ5gG,KAAK40I,MAG7C1iI,KAAK2iI,wBAA0B,KAE/B3iI,KAAK4iI,iBAAkB,EAEvB5iI,KAAK6iI,aAAe,GACpB7iI,KAAK8iI,cAAgB,GAErB9iI,KAAK+iI,kBAAoB,KACzB/iI,KAAKgjI,mBAAqB,KAE1BhjI,KAAKiuE,eAAiB,SACtBjuE,KAAKouE,mBAAqB,MAC1BpuE,KAAKkuE,gBAAkB,MACvBluE,KAAKijI,kBAAoB,MAEzBzvG,EAAS5mB,KAAKsL,MAAMtL,KAAKwL,UAAUob,GAAU,KAE7CxzB,KAAKkjI,YAAsC,eAAxB1vG,EAAOgT,aACG,cAAzBhT,EAAO2vG,cACT,MAAMtB,EAAU,oBACZ,8CAKN,OAJYruG,EAAO2vG,gBACjB3vG,EAAO2vG,cAAgB,WAGjB3vG,EAAO8qB,oBACb,IAAK,MACL,IAAK,QACH,MACF,QACE9qB,EAAO8qB,mBAAqB,MAIhC,OAAQ9qB,EAAOgT,cACb,IAAK,WACL,IAAK,aACL,IAAK,aACH,MACF,QACEhT,EAAOgT,aAAe,WAO1B,GAHAhT,EAAO0qB,WA/OX,SAA0BA,EAAYgkF,GACpC,IAAIkB,GAAU,EAEd,OADAllF,EAAatxC,KAAKsL,MAAMtL,KAAKwL,UAAU8lC,KACrBxtB,QAAO,SAAS22B,GAChC,GAAIA,IAAWA,EAAO5O,MAAQ4O,EAAOtmB,KAAM,CACzC,IAAI0X,EAAO4O,EAAO5O,MAAQ4O,EAAOtmB,IAC7BsmB,EAAOtmB,MAAQsmB,EAAO5O,MACxB1zC,QAAQI,KAAK,qDAEf,IAAIk+H,EAA2B,iBAAT5qF,EAoBtB,OAnBI4qF,IACF5qF,EAAO,CAACA,IAEVA,EAAOA,EAAK/nB,QAAO,SAASqQ,GAM1B,OALyC,IAAzBA,EAAIn9B,QAAQ,WACU,IAAlCm9B,EAAIn9B,QAAQ,mBACe,IAA3Bm9B,EAAIn9B,QAAQ,YACXw/H,GAGHA,GAAU,GACH,GAEuB,IAAzBriG,EAAIn9B,QAAQ,UAAkBs+H,GAAe,QACb,IAAnCnhG,EAAIn9B,QAAQ,4BAGXyjD,EAAOtmB,IACdsmB,EAAO5O,KAAO4qF,EAAW5qF,EAAK,GAAKA,IAC1BA,EAAKliD,WAkNI+sI,CAAiB9vG,EAAO0qB,YAAc,GAAIgkF,GAE9DliI,KAAKujI,cAAgB,GACjB/vG,EAAOgwG,qBACT,IAAK,IAAIl3I,EAAIknC,EAAOgwG,qBAAsBl3I,EAAI,EAAGA,IAC/C0T,KAAKujI,cAAcrgI,KAAK,IAAIhX,EAAOu3I,eAAe,CAChDvlF,WAAY1qB,EAAO0qB,WACnBwlF,aAAclwG,EAAO8qB,2BAIzB9qB,EAAOgwG,qBAAuB,EAGhCxjI,KAAK2jI,QAAUnwG,EAIfxzB,KAAK4rF,aAAe,GAEpB5rF,KAAK4jI,cAAgB/kE,EAASwG,oBAC9BrlE,KAAK6jI,mBAAqB,EAE1B7jI,KAAK8jI,eAAYvjI,EAEjBP,KAAK+jI,WAAY,GAGnB/2I,OAAOC,eAAe8tC,EAAkB7sC,UAAW,mBAAoB,CACrEmsH,cAAc,EACdltH,IAAK,WACH,OAAO6S,KAAK+iI,qBAGhB/1I,OAAOC,eAAe8tC,EAAkB7sC,UAAW,oBAAqB,CACtEmsH,cAAc,EACdltH,IAAK,WACH,OAAO6S,KAAKgjI,sBAKhBjoG,EAAkB7sC,UAAU2/E,eAAiB,KAC7C9yC,EAAkB7sC,UAAU81I,YAAc,KAC1CjpG,EAAkB7sC,UAAU+1I,QAAU,KACtClpG,EAAkB7sC,UAAUg2I,eAAiB,KAC7CnpG,EAAkB7sC,UAAU8/E,uBAAyB,KACrDjzC,EAAkB7sC,UAAUigF,2BAA6B,KACzDpzC,EAAkB7sC,UAAUi2I,wBAA0B,KACtDppG,EAAkB7sC,UAAUk2I,0BAA4B,KACxDrpG,EAAkB7sC,UAAUqgF,oBAAsB,KAClDxzC,EAAkB7sC,UAAUm2I,cAAgB,KAE5CtpG,EAAkB7sC,UAAUu0I,eAAiB,SAAS51I,EAAMw6B,GACtDrnB,KAAK+jI,YAGT/jI,KAAKoiI,cAAc/6G,GACc,mBAAtBrnB,KAAK,KAAOnT,IACrBmT,KAAK,KAAOnT,GAAMw6B,KAItB0T,EAAkB7sC,UAAUo2I,0BAA4B,WACtD,IAAIj9G,EAAQ,IAAIm7G,MAAM,2BACtBxiI,KAAKyiI,eAAe,0BAA2Bp7G,IAGjD0T,EAAkB7sC,UAAUq2I,iBAAmB,WAC7C,OAAOvkI,KAAK2jI,SAGd5oG,EAAkB7sC,UAAUs2I,gBAAkB,WAC5C,OAAOxkI,KAAK6iI,cAGd9nG,EAAkB7sC,UAAUu2I,iBAAmB,WAC7C,OAAOzkI,KAAK8iI,eAKd/nG,EAAkB7sC,UAAUw2I,mBAAqB,SAAStrG,EAAMurG,GAC9D,IAAIC,EAAqB5kI,KAAK4rF,aAAar1F,OAAS,EAChDovE,EAAc,CAChBrnC,MAAO,KACPsnC,YAAa,KACb47D,aAAc,KACd17D,cAAe,KACf26D,kBAAmB,KACnBC,mBAAoB,KACpB36D,UAAW,KACXC,YAAa,KACb5sC,KAAMA,EACNsW,IAAK,KACLu2B,uBAAwB,KACxB4+D,uBAAwB,KACxBtjH,OAAQ,KACRujH,6BAA8B,GAC9BC,aAAa,GAEf,GAAI/kI,KAAKkjI,aAAe0B,EACtBj/D,EAAY67D,aAAexhI,KAAK4rF,aAAa,GAAG41C,aAChD77D,EAAYG,cAAgB9lE,KAAK4rF,aAAa,GAAG9lB,kBAC5C,CACL,IAAI9nD,EAAahe,KAAKglI,8BACtBr/D,EAAY67D,aAAexjH,EAAWwjH,aACtC77D,EAAYG,cAAgB9nD,EAAW8nD,cAKzC,OAHK6+D,GACH3kI,KAAK4rF,aAAa1oF,KAAKyiE,GAElBA,GAGT5qC,EAAkB7sC,UAAUiwC,SAAW,SAASG,EAAO/c,GACrD,GAAIvhB,KAAK+jI,UACP,MAAMlC,EAAU,oBACZ,0DAGN,IAQIl8D,EAJJ,GAJoB3lE,KAAK4rF,aAAa36D,MAAK,SAAS5iC,GAClD,OAAOA,EAAEiwC,QAAUA,KAInB,MAAMujG,EAAU,qBAAsB,yBAIxC,IAAK,IAAIv1I,EAAI,EAAGA,EAAI0T,KAAK4rF,aAAar1F,OAAQjK,IACvC0T,KAAK4rF,aAAat/F,GAAGgyC,OACtBt+B,KAAK4rF,aAAat/F,GAAG8sC,OAASkF,EAAMlF,OACtCusC,EAAc3lE,KAAK4rF,aAAat/F,IAiBpC,OAdKq5E,IACHA,EAAc3lE,KAAK0kI,mBAAmBpmG,EAAMlF,OAG9Cp5B,KAAKilI,+BAEsC,IAAvCjlI,KAAK6iI,aAAaj/H,QAAQ2d,IAC5BvhB,KAAK6iI,aAAa3/H,KAAKqe,GAGzBokD,EAAYrnC,MAAQA,EACpBqnC,EAAYpkD,OAASA,EACrBokD,EAAYI,UAAY,IAAI75E,EAAOmnH,aAAa/0E,EAC5CqnC,EAAYG,eACTH,EAAYI,WAGrBhrC,EAAkB7sC,UAAU88F,UAAY,SAASzpE,GAC/C,IAAI+jC,EAAKtlD,KACT,GAAIkiI,GAAe,MACjB3gH,EAAOue,YAAY1wB,SAAQ,SAASkvB,GAClCgnB,EAAGnnB,SAASG,EAAO/c,UAEhB,CAIL,IAAI2jH,EAAe3jH,EAAOsxD,QAC1BtxD,EAAOue,YAAY1wB,SAAQ,SAASkvB,EAAOsR,GACzC,IAAIu1F,EAAcD,EAAaplG,YAAY8P,GAC3CtR,EAAMjC,iBAAiB,WAAW,SAAShV,GACzC89G,EAAY77D,QAAUjiD,EAAMiiD,cAGhC47D,EAAaplG,YAAY1wB,SAAQ,SAASkvB,GACxCgnB,EAAGnnB,SAASG,EAAO4mG,QAKzBnqG,EAAkB7sC,UAAUsmG,YAAc,SAASjqB,GACjD,GAAIvqE,KAAK+jI,UACP,MAAMlC,EAAU,oBACZ,6DAGN,KAAMt3D,aAAkBr+E,EAAOmnH,cAC7B,MAAM,IAAIx8G,UAAU,0FAItB,IAAI8uE,EAAc3lE,KAAK4rF,aAAa36D,MAAK,SAASzjC,GAChD,OAAOA,EAAEu4E,YAAcwE,KAGzB,IAAK5E,EACH,MAAMk8D,EAAU,qBACZ,8CAEN,IAAItgH,EAASokD,EAAYpkD,OAEzBokD,EAAYI,UAAUniD,OACtB+hD,EAAYI,UAAY,KACxBJ,EAAYrnC,MAAQ,KACpBqnC,EAAYpkD,OAAS,MAMiB,IAHnBvhB,KAAK4rF,aAAapmF,KAAI,SAAShY,GAChD,OAAOA,EAAE+zB,UAEM3d,QAAQ2d,IACrBvhB,KAAK6iI,aAAaj/H,QAAQ2d,IAAW,GACvCvhB,KAAK6iI,aAAa5+H,OAAOjE,KAAK6iI,aAAaj/H,QAAQ2d,GAAS,GAG9DvhB,KAAKilI,+BAGPlqG,EAAkB7sC,UAAUk3I,aAAe,SAAS7jH,GAClD,IAAI+jC,EAAKtlD,KACTuhB,EAAOue,YAAY1wB,SAAQ,SAASkvB,GAClC,IAAIisC,EAASjlB,EAAG+/E,aAAap0G,MAAK,SAAS5iC,GACzC,OAAOA,EAAEiwC,QAAUA,KAEjBisC,GACFjlB,EAAGkvC,YAAYjqB,OAKrBxvC,EAAkB7sC,UAAUm3I,WAAa,WACvC,OAAOrlI,KAAK4rF,aAAal7D,QAAO,SAASi1C,GACvC,QAASA,EAAYI,aAEtBvgE,KAAI,SAASmgE,GACZ,OAAOA,EAAYI,cAIvBhrC,EAAkB7sC,UAAUo3I,aAAe,WACzC,OAAOtlI,KAAK4rF,aAAal7D,QAAO,SAASi1C,GACvC,QAASA,EAAYK,eAEtBxgE,KAAI,SAASmgE,GACZ,OAAOA,EAAYK,gBAKvBjrC,EAAkB7sC,UAAUq3I,mBAAqB,SAAS91D,EACtDyzD,GACF,IAAI59E,EAAKtlD,KACT,GAAIkjI,GAAezzD,EAAgB,EACjC,OAAOzvE,KAAK4rF,aAAa,GAAGhmB,YACvB,GAAI5lE,KAAKujI,cAAchtI,OAC5B,OAAOyJ,KAAKujI,cAAc71G,QAE5B,IAAIk4C,EAAc,IAAI15E,EAAOu3I,eAAe,CAC1CvlF,WAAYl+C,KAAK2jI,QAAQzlF,WACzBwlF,aAAc1jI,KAAK2jI,QAAQrlF,qBAkB7B,OAhBAtxD,OAAOC,eAAe24E,EAAa,QAC/B,CAACr4E,MAAO,MAAO+sH,UAAU,IAG7Bt6G,KAAK4rF,aAAanc,GAAe+1D,wBAA0B,GAC3DxlI,KAAK4rF,aAAanc,GAAeg2D,iBAAmB,SAASp+G,GAC3D,IAAI62D,GAAO72D,EAAMoH,WAAqD,IAAxCzhC,OAAOuY,KAAK8hB,EAAMoH,WAAWl4B,OAG3DqvE,EAAY34B,MAAQixC,EAAM,YAAc,YACuB,OAA3D54B,EAAGsmC,aAAanc,GAAe+1D,yBACjClgF,EAAGsmC,aAAanc,GAAe+1D,wBAAwBtiI,KAAKmkB,IAGhEu+C,EAAYvpC,iBAAiB,iBAC3Br8B,KAAK4rF,aAAanc,GAAeg2D,kBAC5B7/D,GAIT7qC,EAAkB7sC,UAAUw3I,QAAU,SAASh2F,EAAK+/B,GAClD,IAAInqB,EAAKtlD,KACL4lE,EAAc5lE,KAAK4rF,aAAanc,GAAe7J,YACnD,IAAIA,EAAY+/D,iBAAhB,CAGA,IAAIH,EACFxlI,KAAK4rF,aAAanc,GAAe+1D,wBACnCxlI,KAAK4rF,aAAanc,GAAe+1D,wBAA0B,KAC3D5/D,EAAY32B,oBAAoB,iBAC9BjvC,KAAK4rF,aAAanc,GAAeg2D,kBACnC7/D,EAAY+/D,iBAAmB,SAASC,GACtC,KAAItgF,EAAG49E,aAAezzD,EAAgB,GAAtC,CAMA,IAAIpoD,EAAQ,IAAIm7G,MAAM,gBACtBn7G,EAAMoH,UAAY,CAACyhD,OAAQxgC,EAAK+/B,cAAeA,GAE/C,IAAIvgD,EAAO02G,EAAIn3G,UAEXyvD,GAAOhvD,GAAqC,IAA7BliC,OAAOuY,KAAK2pB,GAAM34B,OACrC,GAAI2nF,EAGwB,QAAtBtY,EAAY34B,OAAyC,cAAtB24B,EAAY34B,QAC7C24B,EAAY34B,MAAQ,iBAEjB,CACqB,QAAtB24B,EAAY34B,QACd24B,EAAY34B,MAAQ,aAGtB/d,EAAKN,UAAY,EAEjBM,EAAKnC,MAAQ64C,EAAYC,qBAAqB/F,iBAE9C,IAAI+lE,EAAsBhnE,EAASkB,eAAe7wC,GAClD7H,EAAMoH,UAAYzhC,OAAOgoG,OAAO3tE,EAAMoH,UAClCowC,EAASY,eAAeomE,IAE5Bx+G,EAAMoH,UAAUA,UAAYo3G,EAC5Bx+G,EAAMoH,UAAUq3G,OAAS,WACvB,MAAO,CACLr3G,UAAWpH,EAAMoH,UAAUA,UAC3ByhD,OAAQ7oD,EAAMoH,UAAUyhD,OACxBT,cAAepoD,EAAMoH,UAAUghD,cAC/B3P,iBAAkBz4C,EAAMoH,UAAUqxC,mBAMxC,IAAIT,EAAWR,EAASS,iBAAiBha,EAAGy9E,kBAAkB/wG,KAK5DqtC,EAASh4C,EAAMoH,UAAUghD,gBAJtByO,EAKC,0BAHA,KAAO72D,EAAMoH,UAAUA,UAAY,OAKzC62B,EAAGy9E,kBAAkB/wG,IACjB6sC,EAASO,eAAe9Z,EAAGy9E,kBAAkB/wG,KAC7CqtC,EAASl8D,KAAK,IAClB,IAAI4iI,EAAWzgF,EAAGsmC,aAAa6N,OAAM,SAAS9zB,GAC5C,OAAOA,EAAYC,aACmB,cAAlCD,EAAYC,YAAY34B,SAGD,cAAzBqY,EAAG29E,oBACL39E,EAAG29E,kBAAoB,YACvB39E,EAAGg/E,6BAKApmD,GACH54B,EAAGm9E,eAAe,eAAgBp7G,GAEhC0+G,IACFzgF,EAAGm9E,eAAe,eAAgB,IAAID,MAAM,iBAC5Cl9E,EAAG29E,kBAAoB,WACvB39E,EAAGg/E,+BAKPp4I,EAAOqe,YAAW,WAChBi7H,EAAwBp2H,SAAQ,SAAS/V,GACvCusE,EAAY+/D,iBAAiBtsI,QAE9B,KAIL0hC,EAAkB7sC,UAAU82I,4BAA8B,WACxD,IAAI1/E,EAAKtlD,KACLwhI,EAAe,IAAIt1I,EAAO85I,gBAAgB,MAC9CxE,EAAayE,iBAAmB,WAC9B3gF,EAAG4gF,4BACH5gF,EAAG6gF,0BAGL,IAAIrgE,EAAgB,IAAI55E,EAAOk6I,iBAAiB5E,GAWhD,OAVA17D,EAAcugE,kBAAoB,WAChC/gF,EAAG6gF,0BAELrgE,EAAcpqD,QAAU,WAEtB1uB,OAAOC,eAAe64E,EAAe,QACjC,CAACv4E,MAAO,SAAU+sH,UAAU,IAChCh1D,EAAG6gF,0BAGE,CACL3E,aAAcA,EACd17D,cAAeA,IAMnB/qC,EAAkB7sC,UAAUo4I,6BAA+B,SACvD72D,GACF,IAAI7J,EAAc5lE,KAAK4rF,aAAanc,GAAe7J,YAC/CA,WACKA,EAAY+/D,wBACZ3lI,KAAK4rF,aAAanc,GAAe7J,aAE1C,IAAI47D,EAAexhI,KAAK4rF,aAAanc,GAAe+xD,aAChDA,WACKA,EAAayE,wBACbjmI,KAAK4rF,aAAanc,GAAe+xD,cAE1C,IAAI17D,EAAgB9lE,KAAK4rF,aAAanc,GAAe3J,cACjDA,WACKA,EAAcugE,yBACdvgE,EAAcpqD,eACd1b,KAAK4rF,aAAanc,GAAe3J,gBAK5C/qC,EAAkB7sC,UAAUq4I,YAAc,SAAS5gE,EAC/Ct4D,EAAMm5H,GACR,IAAI/2G,EAAS+wG,EAAsB76D,EAAY86D,kBAC3C96D,EAAY+6D,oBACZrzH,GAAQs4D,EAAYI,YACtBt2C,EAAOi8D,UAAY/lB,EAAYM,uBAC/Bx2C,EAAOyzC,KAAO,CACZoB,MAAOzF,EAASC,WAChB2F,SAAUkB,EAAYvB,eAAeK,UAEnCkB,EAAYk/D,uBAAuBtuI,SACrCk5B,EAAOyzC,KAAKl+C,KAAO2gD,EAAYk/D,uBAAuB,GAAG7/G,MAE3D2gD,EAAYI,UAAU14D,KAAKoiB,IAEzB+2G,GAAQ7gE,EAAYK,aAAev2C,EAAOszC,OAAOxsE,OAAS,IAEnC,UAArBovE,EAAYvsC,MACTusC,EAAYk/D,wBACZ3C,EAAc,OACnBv8D,EAAYk/D,uBAAuBz1H,SAAQ,SAAShhB,UAC3CA,EAAE41E,OAGT2B,EAAYk/D,uBAAuBtuI,OACrCk5B,EAAOi8D,UAAY/lB,EAAYk/D,uBAE/Bp1G,EAAOi8D,UAAY,CAAC,IAEtBj8D,EAAOyzC,KAAO,CACZuB,SAAUkB,EAAYvB,eAAeK,UAEnCkB,EAAYvB,eAAeE,QAC7B70C,EAAOyzC,KAAKoB,MAAQqB,EAAYvB,eAAeE,OAE7CqB,EAAYM,uBAAuB1vE,SACrCk5B,EAAOyzC,KAAKl+C,KAAO2gD,EAAYM,uBAAuB,GAAGjhD,MAE3D2gD,EAAYK,YAAYygE,QAAQh3G,KAIpCsL,EAAkB7sC,UAAU6jF,oBAAsB,SAASjP,GACzD,IAeIzD,EACAtvC,EAhBAu1B,EAAKtlD,KAGT,IAAuD,IAAnD,CAAC,QAAS,UAAU4D,QAAQk/D,EAAY77D,MAC1C,OAAO+1B,QAAQE,OAAO2kG,EAAU,YAC5B,qBAAuB/+D,EAAY77D,KAAO,MAGhD,IAAKq6H,EAAgC,sBACjCx+D,EAAY77D,KAAMq+C,EAAG2oB,iBAAmB3oB,EAAGy+E,UAC7C,OAAO/mG,QAAQE,OAAO2kG,EAAU,oBAC5B,qBAAuB/+D,EAAY77D,KACnC,aAAeq+C,EAAG2oB,iBAKxB,GAAyB,UAArBnL,EAAY77D,KAGdo4D,EAAWR,EAASK,cAAc4D,EAAY9wC,KAC9CjC,EAAcsvC,EAAS3xC,QACvB2xC,EAASjwD,SAAQ,SAASkyD,EAAcmO,GACtC,IAAIh2B,EAAOolB,EAASgE,mBAAmBvB,GACvChc,EAAGsmC,aAAanc,GAAegxD,kBAAoBhnF,KAGrD6L,EAAGsmC,aAAax8E,SAAQ,SAASu2D,EAAa8J,GAC5CnqB,EAAGogF,QAAQ//D,EAAYj2B,IAAK+/B,WAEzB,GAAyB,WAArB3M,EAAY77D,KAAmB,CACxCo4D,EAAWR,EAASK,cAAc5Z,EAAG09E,mBAAmBhxG,KACxDjC,EAAcsvC,EAAS3xC,QACvB,IAAIg5G,EAAY7nE,EAASU,YAAYxvC,EACjC,cAAcx5B,OAAS,EAC3B8oE,EAASjwD,SAAQ,SAASkyD,EAAcmO,GACtC,IAAI9J,EAAcrgB,EAAGsmC,aAAanc,GAC9B7J,EAAcD,EAAYC,YAC1B47D,EAAe77D,EAAY67D,aAC3B17D,EAAgBH,EAAYG,cAC5B26D,EAAoB96D,EAAY86D,kBAChCC,EAAqB/6D,EAAY+6D,mBAMrC,KAHe7hE,EAASuH,WAAW9E,IACgC,IAA/DzC,EAASU,YAAY+B,EAAc,iBAAiB/qE,UAEtCovE,EAAYghE,SAAU,CACtC,IAAIC,EAAsB/nE,EAAS8D,iBAC/BrB,EAAcvxC,GACd82G,EAAuBhoE,EAAS2C,kBAChCF,EAAcvxC,GACd22G,IACFG,EAAqBplE,KAAO,UAGzBnc,EAAG49E,aAAiC,IAAlBzzD,IACrBnqB,EAAGogF,QAAQ//D,EAAYj2B,IAAK+/B,GACD,QAAvB+xD,EAAav0F,OACfu0F,EAAazkH,MAAM6oD,EAAaghE,EAC5BF,EAAY,cAAgB,cAEN,QAAxB5gE,EAAc74B,OAChB64B,EAAc/oD,MAAM8pH,IAKxB,IAAIp3G,EAAS+wG,EAAsBC,EAC/BC,GAIJp7E,EAAGihF,YAAY5gE,EACXl2C,EAAOszC,OAAOxsE,OAAS,GACvB,OAeV,OAVA+uD,EAAGy9E,kBAAoB,CACrB97H,KAAM67D,EAAY77D,KAClB+qB,IAAK8wC,EAAY9wC,KAEM,UAArB8wC,EAAY77D,KACdq+C,EAAGwhF,sBAAsB,oBAEzBxhF,EAAGwhF,sBAAsB,UAGpB9pG,QAAQC,WAGjBlC,EAAkB7sC,UAAU4nF,qBAAuB,SAAShT,GAC1D,IAAIxd,EAAKtlD,KAGT,IAAuD,IAAnD,CAAC,QAAS,UAAU4D,QAAQk/D,EAAY77D,MAC1C,OAAO+1B,QAAQE,OAAO2kG,EAAU,YAC5B,qBAAuB/+D,EAAY77D,KAAO,MAGhD,IAAKq6H,EAAgC,uBACjCx+D,EAAY77D,KAAMq+C,EAAG2oB,iBAAmB3oB,EAAGy+E,UAC7C,OAAO/mG,QAAQE,OAAO2kG,EAAU,oBAC5B,sBAAwB/+D,EAAY77D,KACpC,aAAeq+C,EAAG2oB,iBAGxB,IAAInwC,EAAU,GACdwnB,EAAGw9E,cAAc1zH,SAAQ,SAASmS,GAChCuc,EAAQvc,EAAOra,IAAMqa,KAEvB,IAAIwlH,EAAe,GACf1nE,EAAWR,EAASK,cAAc4D,EAAY9wC,KAC9CjC,EAAcsvC,EAAS3xC,QACvBg5G,EAAY7nE,EAASU,YAAYxvC,EACjC,cAAcx5B,OAAS,EACvB2sI,EAAcrkE,EAASU,YAAYxvC,EACnC,mBAAmBx5B,OAAS,EAChC+uD,EAAG49E,YAAcA,EACjB,IAAI8D,EAAanoE,EAASU,YAAYxvC,EAClC,kBAAkB,GA4UtB,OA1UEu1B,EAAGq9E,0BADDqE,GAC2BA,EAAW5xH,OAAO,IAAIrS,MAAM,KACpDa,QAAQ,YAAc,EAK7By7D,EAASjwD,SAAQ,SAASkyD,EAAcmO,GACtC,IAAIngD,EAAQuvC,EAASG,WAAWsC,GAC5BloC,EAAOylC,EAASsH,QAAQ7E,GAExBqlE,EAAW9nE,EAASuH,WAAW9E,IACgC,IAA/DzC,EAASU,YAAY+B,EAAc,iBAAiB/qE,OACpDmS,EAAW4mB,EAAM,GAAGla,OAAO,GAAGrS,MAAM,KAAK,GAEzC4sB,EAAYkvC,EAASqH,aAAa5E,EAAcvxC,GAChDk3G,EAAapoE,EAAS8F,UAAUrD,GAEhC5xB,EAAMmvB,EAASwC,OAAOC,IAAiBzC,EAASE,qBAGpD,GAAI4nE,GAAsB,gBAATvtG,IAAwC,cAAb1wB,GAC3B,kBAAbA,GAGF48C,EAAGsmC,aAAanc,GAAiB,CAC/B//B,IAAKA,EACLtW,KAAMA,EACN1wB,SAAUA,EACVi+H,UAAU,OARd,CAmBA,IAAIhhE,EACAC,EACA47D,EACA17D,EACAE,EACAC,EACA4+D,EACApE,EAEAniG,GAfCqoG,GAAYrhF,EAAGsmC,aAAanc,IAC7BnqB,EAAGsmC,aAAanc,GAAek3D,WAEjCrhF,EAAGsmC,aAAanc,GAAiBnqB,EAAGo/E,mBAAmBtrG,GAAM,IAc/D,IACIwtG,EACAC,EAFAnG,EAAqB7hE,EAASgE,mBAAmBvB,GAGhDqlE,IACHC,EAAsB/nE,EAAS8D,iBAAiBrB,EAC5CvxC,IACJ82G,EAAuBhoE,EAAS2C,kBAAkBF,EAC9CvxC,IACiB0xC,KAAO,UAE9BojE,EACIhmE,EAAS2E,2BAA2BlC,GAExC,IAAI8C,EAAiBvF,EAASsF,oBAAoB7C,GAE9C4lE,EAAaroE,EAASU,YAAY+B,EAClC,sBAAuBvxC,GAAax5B,OAAS,EAC7C05E,EAAQpR,EAASU,YAAY+B,EAAc,gBAC1C97D,KAAI,SAAS0pB,GACZ,OAAO2vC,EAASY,eAAevwC,MAEhCwB,QAAO,SAASxB,GACf,OAA0B,IAAnBA,EAAKN,aAuBlB,IAnB0B,UAArBk0C,EAAY77D,MAAyC,WAArB67D,EAAY77D,QAC5C0/H,GAAYzD,GAAezzD,EAAgB,GAC5CnqB,EAAGsmC,aAAanc,KAClBnqB,EAAGghF,6BAA6B72D,GAChCnqB,EAAGsmC,aAAanc,GAAe7J,YAC3BtgB,EAAGsmC,aAAa,GAAGhmB,YACvBtgB,EAAGsmC,aAAanc,GAAe+xD,aAC3Bl8E,EAAGsmC,aAAa,GAAG41C,aACvBl8E,EAAGsmC,aAAanc,GAAe3J,cAC3BxgB,EAAGsmC,aAAa,GAAG9lB,cACnBxgB,EAAGsmC,aAAanc,GAAe1J,WACjCzgB,EAAGsmC,aAAanc,GAAe1J,UAAUohE,aACrC7hF,EAAGsmC,aAAa,GAAG9lB,eAErBxgB,EAAGsmC,aAAanc,GAAezJ,aACjC1gB,EAAGsmC,aAAanc,GAAezJ,YAAYmhE,aACvC7hF,EAAGsmC,aAAa,GAAG9lB,gBAGF,UAArBhD,EAAY77D,MAAqB0/H,GAmG9B,GAAyB,WAArB7jE,EAAY77D,OAAsB0/H,EAAU,CAErD/gE,GADAD,EAAcrgB,EAAGsmC,aAAanc,IACJ7J,YAC1B47D,EAAe77D,EAAY67D,aAC3B17D,EAAgBH,EAAYG,cAC5BE,EAAcL,EAAYK,YAC1BC,EAAyBN,EAAYM,uBACrCw6D,EAAoB96D,EAAY86D,kBAEhCn7E,EAAGsmC,aAAanc,GAAeo1D,uBAC3BA,EACJv/E,EAAGsmC,aAAanc,GAAeixD,mBAC3BA,EACJp7E,EAAGsmC,aAAanc,GAAerL,eAAiBA,EAE5C6L,EAAM15E,QAAiC,QAAvBirI,EAAav0F,SAC1By5F,IAAaQ,GACZhE,GAAiC,IAAlBzzD,EAGnBQ,EAAM7gE,SAAQ,SAASqf,GACrB8yG,EAAkB57D,EAAY67D,aAAc/yG,MAH9C+yG,EAAa4F,oBAAoBn3D,IAQhCizD,GAAiC,IAAlBzzD,IACS,QAAvB+xD,EAAav0F,OACfu0F,EAAazkH,MAAM6oD,EAAaghE,EAC5B,eAEsB,QAAxB9gE,EAAc74B,OAChB64B,EAAc/oD,MAAM8pH,KAMCrG,EACvB76D,EAAY86D,kBACZ96D,EAAY+6D,oBAEkB39D,OAAOryC,QAAO,SAAS/jC,GACrD,MAAgC,QAAzBA,EAAEE,KAAK8V,iBACbpM,QACYovE,EAAYM,uBAAuB,GAAGjC,YAC5C2B,EAAYM,uBAAuB,GAAGjC,IAG/C1e,EAAGihF,YAAY5gE,EACG,aAAdh2C,GAA0C,aAAdA,EACd,aAAdA,GAA0C,aAAdA,IAG5Bq2C,GACe,aAAdr2C,GAA0C,aAAdA,SAiBxBg2C,EAAYK,aAhBnB1nC,EAAQ0nC,EAAY1nC,MAChB2oG,GACGnpG,EAAQmpG,EAAW1lH,UACtBuc,EAAQmpG,EAAW1lH,QAAU,IAAIr1B,EAAO0vC,aAE1CumG,EAA6B7jG,EAAOR,EAAQmpG,EAAW1lH,SACvDwlH,EAAa7jI,KAAK,CAACo7B,EAAO0nC,EAAaloC,EAAQmpG,EAAW1lH,YAErDuc,EAAQq2E,UACXr2E,EAAQq2E,QAAU,IAAIjoH,EAAO0vC,aAE/BumG,EAA6B7jG,EAAOR,EAAQq2E,SAC5C4yB,EAAa7jI,KAAK,CAACo7B,EAAO0nC,EAAaloC,EAAQq2E,iBAvKN,EAC7CxuC,EAAcrgB,EAAGsmC,aAAanc,IAC1BnqB,EAAGo/E,mBAAmBtrG,IACdsW,IAAMA,EAEbi2B,EAAYC,cACfD,EAAYC,YAActgB,EAAGigF,mBAAmB91D,EAC5CyzD,IAGFjzD,EAAM15E,QAA6C,QAAnCovE,EAAY67D,aAAav0F,SACvCi6F,GAAgBhE,GAAiC,IAAlBzzD,EAGjCQ,EAAM7gE,SAAQ,SAASqf,GACrB8yG,EAAkB57D,EAAY67D,aAAc/yG,MAH9Ck3C,EAAY67D,aAAa4F,oBAAoBn3D,IAQjDwwD,EAAoBv0I,EAAOwnH,eAAeO,gBAAgB76E,GAItD8oG,EAAc,QAChBzB,EAAkB19D,OAAS09D,EAAkB19D,OAAOryC,QAChD,SAAS8B,GACP,MAAsB,QAAfA,EAAM3lC,SAIrBo5E,EAAyBN,EAAYM,wBAA0B,CAAC,CAC9DjhD,KAAgC,MAAzB,EAAIyqD,EAAgB,KAI7B,IAOQluD,EAPJ8lH,GAAa,EACjB,GAAkB,aAAd13G,GAA0C,aAAdA,GAK9B,GAJA03G,GAAc1hE,EAAYK,YAC1BA,EAAcL,EAAYK,aACtB,IAAI95E,EAAOwnH,eAAe/tC,EAAYG,cAAe1sC,GAErDiuG,EAEF/oG,EAAQ0nC,EAAY1nC,MAEhB2oG,GAAoC,MAAtBA,EAAW1lH,SAElB0lH,GACJnpG,EAAQmpG,EAAW1lH,UACtBuc,EAAQmpG,EAAW1lH,QAAU,IAAIr1B,EAAO0vC,YACxC5uC,OAAOC,eAAe6wC,EAAQmpG,EAAW1lH,QAAS,KAAM,CACtDp0B,IAAK,WACH,OAAO85I,EAAW1lH,WAIxBv0B,OAAOC,eAAeqxC,EAAO,KAAM,CACjCnxC,IAAK,WACH,OAAO85I,EAAW3oG,SAGtB/c,EAASuc,EAAQmpG,EAAW1lH,UAEvBuc,EAAQq2E,UACXr2E,EAAQq2E,QAAU,IAAIjoH,EAAO0vC,aAE/Bra,EAASuc,EAAQq2E,UAEf5yF,IACF4gH,EAA6B7jG,EAAO/c,GACpCokD,EAAYm/D,6BAA6B5hI,KAAKqe,IAEhDwlH,EAAa7jI,KAAK,CAACo7B,EAAO0nC,EAAazkD,SAEhCokD,EAAYK,aAAeL,EAAYK,YAAY1nC,QAC5DqnC,EAAYm/D,6BAA6B11H,SAAQ,SAAS/gB,GACxD,IAAIi5I,EAAcj5I,EAAEyxC,YAAY7O,MAAK,SAASzjC,GAC5C,OAAOA,EAAE0Z,KAAOy+D,EAAYK,YAAY1nC,MAAMp3B,MAE5CogI,GAl0Bd,SAA2ChpG,EAAO/c,GAChDA,EAAOizE,YAAYl2D,GACnB/c,EAAO6gH,cAAc,IAAIl2I,EAAOm2I,sBAAsB,cAClD,CAAC/jG,MAAOA,KAg0BFipG,CAAkCD,EAAaj5I,MAGnDs3E,EAAYm/D,6BAA+B,IAG7Cn/D,EAAY86D,kBAAoBA,EAChC96D,EAAY+6D,mBAAqBA,EACjC/6D,EAAYK,YAAcA,EAC1BL,EAAYvB,eAAiBA,EAC7BuB,EAAYM,uBAAyBA,EACrCN,EAAYk/D,uBAAyBA,EAIrCv/E,EAAGihF,YAAYjhF,EAAGsmC,aAAanc,IAC3B,EACA43D,aA8Ea9mI,IAAjB+kD,EAAGw+E,YACLx+E,EAAGw+E,UAAiC,UAArBhhE,EAAY77D,KAAmB,SAAW,WAG3Dq+C,EAAG09E,mBAAqB,CACtB/7H,KAAM67D,EAAY77D,KAClB+qB,IAAK8wC,EAAY9wC,KAEM,UAArB8wC,EAAY77D,KACdq+C,EAAGwhF,sBAAsB,qBAEzBxhF,EAAGwhF,sBAAsB,UAE3B95I,OAAOuY,KAAKu4B,GAAS1uB,SAAQ,SAAS/C,GACpC,IAAIkV,EAASuc,EAAQzxB,GACrB,GAAIkV,EAAOue,YAAYvpC,OAAQ,CAC7B,IAA0C,IAAtC+uD,EAAGw9E,cAAcl/H,QAAQ2d,GAAgB,CAC3C+jC,EAAGw9E,cAAc5/H,KAAKqe,GACtB,IAAI8F,EAAQ,IAAIm7G,MAAM,aACtBn7G,EAAM9F,OAASA,EACfr1B,EAAOqe,YAAW,WAChB+6C,EAAGm9E,eAAe,YAAap7G,MAInC0/G,EAAa33H,SAAQ,SAASmkB,GAC5B,IAAI+K,EAAQ/K,EAAK,GACb6X,EAAW7X,EAAK,GAChBhS,EAAOra,KAAOqsB,EAAK,GAAGrsB,IAG1Bo7H,EAAah9E,EAAIhnB,EAAO8M,EAAU,CAAC7pB,WAIzCwlH,EAAa33H,SAAQ,SAASmkB,GACxBA,EAAK,IAGT+uG,EAAah9E,EAAI/xB,EAAK,GAAIA,EAAK,GAAI,OAKrCrnC,EAAOqe,YAAW,WACV+6C,GAAMA,EAAGsmC,cAGftmC,EAAGsmC,aAAax8E,SAAQ,SAASu2D,GAC3BA,EAAY67D,cACuB,QAAnC77D,EAAY67D,aAAav0F,OACzB04B,EAAY67D,aAAaE,sBAAsBnrI,OAAS,IAC1DwO,QAAQI,KAAK,sFAEbwgE,EAAY67D,aAAaI,mBAAmB,UAG/C,KAEI5kG,QAAQC,WAGjBlC,EAAkB7sC,UAAUuuB,MAAQ,WAClCzc,KAAK4rF,aAAax8E,SAAQ,SAASu2D,GAM7BA,EAAY67D,cACd77D,EAAY67D,aAAa59G,OAEvB+hD,EAAYG,eACdH,EAAYG,cAAcliD,OAExB+hD,EAAYI,WACdJ,EAAYI,UAAUniD,OAEpB+hD,EAAYK,aACdL,EAAYK,YAAYpiD,UAI5B5jB,KAAK+jI,WAAY,EACjB/jI,KAAK8mI,sBAAsB,WAI7B/rG,EAAkB7sC,UAAU44I,sBAAwB,SAAStpE,GAC3Dx9D,KAAKiuE,eAAiBzQ,EACtB,IAAIn2C,EAAQ,IAAIm7G,MAAM,wBACtBxiI,KAAKyiI,eAAe,uBAAwBp7G,IAI9C0T,EAAkB7sC,UAAU+2I,4BAA8B,WACxD,IAAI3/E,EAAKtlD,KACmB,WAAxBA,KAAKiuE,iBAAwD,IAAzBjuE,KAAK4iI,kBAG7C5iI,KAAK4iI,iBAAkB,EACvB12I,EAAOqe,YAAW,WAChB,GAAI+6C,EAAGs9E,gBAAiB,CACtBt9E,EAAGs9E,iBAAkB,EACrB,IAAIv7G,EAAQ,IAAIm7G,MAAM,qBACtBl9E,EAAGm9E,eAAe,oBAAqBp7G,MAExC,KAIL0T,EAAkB7sC,UAAUg4I,0BAA4B,WACtD,IAAI1oE,EACAgqE,EAAS,CACX,IAAO,EACPz7D,OAAQ,EACR07D,SAAU,EACV79H,UAAW,EACX6sH,UAAW,EACXiR,aAAc,EACdC,OAAQ,GAuBV,GArBA3nI,KAAK4rF,aAAax8E,SAAQ,SAASu2D,GAC7BA,EAAY67D,eAAiB77D,EAAYghE,UAC3Ca,EAAO7hE,EAAY67D,aAAav0F,YAIpCuwB,EAAW,MACPgqE,EAAOG,OAAS,EAClBnqE,EAAW,SACFgqE,EAAOC,SAAW,EAC3BjqE,EAAW,WACFgqE,EAAOE,aAAe,EAC/BlqE,EAAW,eACFgqE,EAAOI,IAAM,EACtBpqE,EAAW,MACFgqE,EAAO59H,UAAY,EAC5B4zD,EAAW,YACFgqE,EAAO/Q,UAAY,IAC5Bj5D,EAAW,aAGTA,IAAax9D,KAAKouE,mBAAoB,CACxCpuE,KAAKouE,mBAAqB5Q,EAC1B,IAAIn2C,EAAQ,IAAIm7G,MAAM,4BACtBxiI,KAAKyiI,eAAe,2BAA4Bp7G,KAKpD0T,EAAkB7sC,UAAUi4I,uBAAyB,WACnD,IAAI3oE,EACAgqE,EAAS,CACX,IAAO,EACPz7D,OAAQ,EACR87D,WAAY,EACZj+H,UAAW,EACX6sH,UAAW,EACXiR,aAAc,EACdC,OAAQ,GAyBV,GAvBA3nI,KAAK4rF,aAAax8E,SAAQ,SAASu2D,GAC7BA,EAAY67D,cAAgB77D,EAAYG,gBACvCH,EAAYghE,WACfa,EAAO7hE,EAAY67D,aAAav0F,SAChCu6F,EAAO7hE,EAAYG,cAAc74B,aAIrCu6F,EAAO59H,WAAa49H,EAAO/Q,UAE3Bj5D,EAAW,MACPgqE,EAAOG,OAAS,EAClBnqE,EAAW,SACFgqE,EAAOK,WAAa,EAC7BrqE,EAAW,aACFgqE,EAAOE,aAAe,EAC/BlqE,EAAW,eACFgqE,EAAOI,IAAM,EACtBpqE,EAAW,MACFgqE,EAAO59H,UAAY,IAC5B4zD,EAAW,aAGTA,IAAax9D,KAAKkuE,gBAAiB,CACrCluE,KAAKkuE,gBAAkB1Q,EACvB,IAAIn2C,EAAQ,IAAIm7G,MAAM,yBACtBxiI,KAAKyiI,eAAe,wBAAyBp7G,KAIjD0T,EAAkB7sC,UAAU2jF,YAAc,WACxC,IAAIvsB,EAAKtlD,KAET,GAAIslD,EAAGy+E,UACL,OAAO/mG,QAAQE,OAAO2kG,EAAU,oBAC5B,yCAGN,IAAIiG,EAAiBxiF,EAAGsmC,aAAal7D,QAAO,SAASljC,GACnD,MAAkB,UAAXA,EAAE4rC,QACR7iC,OACCwxI,EAAiBziF,EAAGsmC,aAAal7D,QAAO,SAASljC,GACnD,MAAkB,UAAXA,EAAE4rC,QACR7iC,OAGCyxI,EAAe7mI,UAAU,GAC7B,GAAI6mI,EAAc,CAEhB,GAAIA,EAAaxyG,WAAawyG,EAAavyG,SACzC,MAAM,IAAI5+B,UACN,6DAEmC0J,IAArCynI,EAAapT,sBAEbkT,GADuC,IAArCE,EAAapT,oBACE,GAC6B,IAArCoT,EAAapT,oBACL,EAEAoT,EAAapT,0BAGOr0H,IAArCynI,EAAanT,sBAEbkT,GADuC,IAArCC,EAAanT,oBACE,GAC6B,IAArCmT,EAAanT,oBACL,EAEAmT,EAAanT,qBAoBpC,IAfAvvE,EAAGsmC,aAAax8E,SAAQ,SAASu2D,GACN,UAArBA,EAAYvsC,OACd0uG,EACqB,IACnBniE,EAAYo/D,aAAc,GAEE,UAArBp/D,EAAYvsC,QACrB2uG,EACqB,IACnBpiE,EAAYo/D,aAAc,MAMzB+C,EAAiB,GAAKC,EAAiB,GACxCD,EAAiB,IACnBxiF,EAAGo/E,mBAAmB,SACtBoD,KAEEC,EAAiB,IACnBziF,EAAGo/E,mBAAmB,SACtBqD,KAIJ,IAAI/1G,EAAM6sC,EAASyG,wBAAwBhgB,EAAGs+E,cAC1Ct+E,EAAGu+E,sBACPv+E,EAAGsmC,aAAax8E,SAAQ,SAASu2D,EAAa8J,GAG5C,IAAInxC,EAAQqnC,EAAYrnC,MACpBlF,EAAOusC,EAAYvsC,KACnBsW,EAAMi2B,EAAYj2B,KAAOmvB,EAASE,qBACtC4G,EAAYj2B,IAAMA,EAEbi2B,EAAYC,cACfD,EAAYC,YAActgB,EAAGigF,mBAAmB91D,EAC5CnqB,EAAG49E,cAGT,IAAIzC,EAAoBv0I,EAAOmnH,aAAaY,gBAAgB76E,GAGxD8oG,EAAc,QAChBzB,EAAkB19D,OAAS09D,EAAkB19D,OAAOryC,QAChD,SAAS8B,GACP,MAAsB,QAAfA,EAAM3lC,SAGrB4zI,EAAkB19D,OAAO3zD,SAAQ,SAASojB,GAGrB,SAAfA,EAAM3lC,WAC0C0T,IAAhDiyB,EAAMouC,WAAW,6BACnBpuC,EAAMouC,WAAW,2BAA6B,KAK5C+E,EAAY+6D,oBACZ/6D,EAAY+6D,mBAAmB39D,QACjC4C,EAAY+6D,mBAAmB39D,OAAO3zD,SAAQ,SAAS64H,GACjDz1G,EAAM3lC,KAAK8V,gBAAkBslI,EAAYp7I,KAAK8V,eAC9C6vB,EAAM4tC,YAAc6nE,EAAY7nE,YAClC5tC,EAAM+tC,qBAAuB0nE,EAAYl1F,mBAKjD0tF,EAAkBz9D,iBAAiB5zD,SAAQ,SAAS8jC,IAC3ByyB,EAAY+6D,oBAC/B/6D,EAAY+6D,mBAAmB19D,kBAAoB,IACtC5zD,SAAQ,SAAS84H,GAC5Bh1F,EAAOtjB,MAAQs4G,EAAQt4G,MACzBsjB,EAAOhsC,GAAKghI,EAAQhhI,UAM1B,IAAI++D,EAAyBN,EAAYM,wBAA0B,CAAC,CAClEjhD,KAAgC,MAAzB,EAAIyqD,EAAgB,KAEzBnxC,GAEE4jG,GAAe,OAAkB,UAAT9oG,IACvB6sC,EAAuB,GAAGjC,MAC7BiC,EAAuB,GAAGjC,IAAM,CAC9Bh/C,KAAMihD,EAAuB,GAAGjhD,KAAO,IAKzC2gD,EAAYo/D,cACdp/D,EAAYK,YAAc,IAAI95E,EAAOwnH,eACjC/tC,EAAYG,cAAe1sC,IAGjCusC,EAAY86D,kBAAoBA,EAChC96D,EAAYM,uBAAyBA,KAIP,eAA5B3gB,EAAGq+E,QAAQn9F,eACbxU,GAAO,kBAAoBszB,EAAGsmC,aAAapmF,KAAI,SAAShY,GACtD,OAAOA,EAAEkiD,OACRvsC,KAAK,KAAO,QAEjB6uB,GAAO,4BAEPszB,EAAGsmC,aAAax8E,SAAQ,SAASu2D,EAAa8J,GAC5Cz9C,GAAO0zC,EAAkBC,EAAaA,EAAY86D,kBAC9C,QAAS96D,EAAYpkD,OAAQ+jC,EAAGw+E,WACpC9xG,GAAO,oBAEH2zC,EAAYC,aAAwC,QAAzBtgB,EAAG29E,mBACX,IAAlBxzD,GAAwBnqB,EAAG49E,cAC9Bv9D,EAAYC,YAAYuiE,qBAAqB/4H,SAAQ,SAAS8f,GAC5DA,EAAKN,UAAY,EACjBoD,GAAO,KAAO6sC,EAASkB,eAAe7wC,GAAQ,UAGV,cAAlCy2C,EAAYC,YAAY34B,QAC1Bjb,GAAO,+BAKb,IAAI3C,EAAO,IAAInjC,EAAOypF,sBAAsB,CAC1C1uE,KAAM,QACN+qB,IAAKA,IAEP,OAAOgL,QAAQC,QAAQ5N,IAGzB0L,EAAkB7sC,UAAU6nF,aAAe,WACzC,IAAIzwB,EAAKtlD,KAET,GAAIslD,EAAGy+E,UACL,OAAO/mG,QAAQE,OAAO2kG,EAAU,oBAC5B,0CAGN,GAA4B,sBAAtBv8E,EAAG2oB,gBACiB,wBAAtB3oB,EAAG2oB,eACL,OAAOjxC,QAAQE,OAAO2kG,EAAU,oBAC5B,+CAAiDv8E,EAAG2oB,iBAG1D,IAAIj8C,EAAM6sC,EAASyG,wBAAwBhgB,EAAGs+E,cAC1Ct+E,EAAGu+E,sBACHv+E,EAAG49E,cACLlxG,GAAO,kBAAoBszB,EAAGsmC,aAAapmF,KAAI,SAAShY,GACtD,OAAOA,EAAEkiD,OACRvsC,KAAK,KAAO,QAEjB6uB,GAAO,4BAEP,IAAIo2G,EAAuBvpE,EAASS,iBAChCha,EAAG09E,mBAAmBhxG,KAAKz7B,OAC/B+uD,EAAGsmC,aAAax8E,SAAQ,SAASu2D,EAAa8J,GAC5C,KAAIA,EAAgB,EAAI24D,GAAxB,CAGA,GAAIziE,EAAYghE,SAkBd,MAjByB,gBAArBhhE,EAAYvsC,KACe,cAAzBusC,EAAYj9D,SACdspB,GAAO,qCAEPA,GAAO,mBAAqB2zC,EAAYj9D,SACpC,0BAEwB,UAArBi9D,EAAYvsC,KACrBpH,GAAO,4DAEuB,UAArB2zC,EAAYvsC,OACrBpH,GAAO,sEAGTA,GAAO,2CAEQ2zC,EAAYj2B,IAAM,QAMjC,IAAIxL,EADN,GAAIyhC,EAAYpkD,OAEW,UAArBokD,EAAYvsC,KACd8K,EAAayhC,EAAYpkD,OAAOqX,iBAAiB,GACnB,UAArB+sC,EAAYvsC,OACrB8K,EAAayhC,EAAYpkD,OAAOuX,iBAAiB,IAE/CoL,GAEEg+F,GAAe,OAA8B,UAArBv8D,EAAYvsC,OACnCusC,EAAYM,uBAAuB,GAAGjC,MACzC2B,EAAYM,uBAAuB,GAAGjC,IAAM,CAC1Ch/C,KAAM2gD,EAAYM,uBAAuB,GAAGjhD,KAAO,IAO3D,IAAI27G,EAAqBH,EACrB76D,EAAY86D,kBACZ96D,EAAY+6D,qBAEHC,EAAmB59D,OAAOryC,QAAO,SAAS/jC,GACrD,MAAgC,QAAzBA,EAAEE,KAAK8V,iBACbpM,QACYovE,EAAYM,uBAAuB,GAAGjC,YAC5C2B,EAAYM,uBAAuB,GAAGjC,IAG/ChyC,GAAO0zC,EAAkBC,EAAag7D,EAClC,SAAUh7D,EAAYpkD,OAAQ+jC,EAAGw+E,WACjCn+D,EAAYvB,gBACZuB,EAAYvB,eAAeI,cAC7BxyC,GAAO,wBAIX,IAAI3C,EAAO,IAAInjC,EAAOypF,sBAAsB,CAC1C1uE,KAAM,SACN+qB,IAAKA,IAEP,OAAOgL,QAAQC,QAAQ5N,IAGzB0L,EAAkB7sC,UAAU6iF,gBAAkB,SAAStiD,GACrD,IACI4wC,EADA/Z,EAAKtlD,KAET,OAAIyuB,QAA2CluB,IAA5BkuB,EAAUghD,gBACzBhhD,EAAUyhD,OACLlzC,QAAQE,OAAO,IAAIrmC,UAAU,qCAI/B,IAAImmC,SAAQ,SAASC,EAASC,GACnC,IAAKooB,EAAG09E,mBACN,OAAO9lG,EAAO2kG,EAAU,oBACpB,2DACC,GAAKpzG,GAAqC,KAAxBA,EAAUA,UAe5B,CACL,IAAIghD,EAAgBhhD,EAAUghD,cAC9B,GAAIhhD,EAAUyhD,OACZ,IAAK,IAAI5jF,EAAI,EAAGA,EAAIg5D,EAAGsmC,aAAar1F,OAAQjK,IAC1C,GAAIg5D,EAAGsmC,aAAat/F,GAAGojD,MAAQjhB,EAAUyhD,OAAQ,CAC/CT,EAAgBnjF,EAChB,MAIN,IAAIq5E,EAAcrgB,EAAGsmC,aAAanc,GAClC,IAAI9J,EAqCF,OAAOzoC,EAAO2kG,EAAU,iBACpB,8BArCJ,GAAIl8D,EAAYghE,SACd,OAAO1pG,IAET,IAAI/N,EAAOliC,OAAOuY,KAAKkpB,EAAUA,WAAWl4B,OAAS,EACjDsoE,EAASY,eAAehxC,EAAUA,WAAa,GAEnD,GAAsB,QAAlBS,EAAKxmB,WAAqC,IAAdwmB,EAAKvB,MAA4B,IAAduB,EAAKvB,MACtD,OAAOsP,IAGT,GAAI/N,EAAKN,WAAgC,IAAnBM,EAAKN,UACzB,OAAOqO,IAIT,IAAsB,IAAlBwyC,GAAwBA,EAAgB,GACxC9J,EAAY67D,eAAiBl8E,EAAGsmC,aAAa,GAAG41C,gBAC7CD,EAAkB57D,EAAY67D,aAActyG,GAC/C,OAAOgO,EAAO2kG,EAAU,iBACpB,8BAKR,IAAIwG,EAAkB55G,EAAUA,UAAUowB,OACJ,IAAlCwpF,EAAgBzkI,QAAQ,QAC1BykI,EAAkBA,EAAgBjzH,OAAO,KAE3CiqD,EAAWR,EAASS,iBAAiBha,EAAG09E,mBAAmBhxG,MAClDy9C,IAAkB,MACtBvgD,EAAKjoB,KAAOohI,EAAkB,qBAC7B,OACN/iF,EAAG09E,mBAAmBhxG,IAClB6sC,EAASO,eAAe9Z,EAAG09E,mBAAmBhxG,KAC9CqtC,EAASl8D,KAAK,SA5DpB,IAAK,IAAIjK,EAAI,EAAGA,EAAIosD,EAAGsmC,aAAar1F,SAC9B+uD,EAAGsmC,aAAa1yF,GAAGytI,WAGvBrhF,EAAGsmC,aAAa1yF,GAAGsoI,aAAaI,mBAAmB,KACnDviE,EAAWR,EAASS,iBAAiBha,EAAG09E,mBAAmBhxG,MAClD94B,IAAM,0BACfosD,EAAG09E,mBAAmBhxG,IAClB6sC,EAASO,eAAe9Z,EAAG09E,mBAAmBhxG,KAC9CqtC,EAASl8D,KAAK,KACdmiD,EAAG49E,cAVmChqI,KAkE9C+jC,QAIJlC,EAAkB7sC,UAAUqiH,SAAW,SAAS+3B,GAC9C,GAAIA,GAAYA,aAAoBp8I,EAAOq8I,iBAAkB,CAC3D,IAAIC,EAAmB,KAUvB,GATAxoI,KAAK4rF,aAAax8E,SAAQ,SAASu2D,GAC7BA,EAAYI,WACZJ,EAAYI,UAAUznC,QAAUgqG,EAClCE,EAAmB7iE,EAAYI,UACtBJ,EAAYK,aACnBL,EAAYK,YAAY1nC,QAAUgqG,IACpCE,EAAmB7iE,EAAYK,iBAG9BwiE,EACH,MAAM3G,EAAU,qBAAsB,qBAExC,OAAO2G,EAAiBj4B,WAG1B,IAAI71B,EAAW,GASf,OARA16E,KAAK4rF,aAAax8E,SAAQ,SAASu2D,GACjC,CAAC,YAAa,cAAe,cAAe,eACxC,iBAAiBv2D,SAAQ,SAASs/E,GAC5B/oB,EAAY+oB,IACdhU,EAASx3E,KAAKyiE,EAAY+oB,GAAQ6hB,kBAIrCvzE,QAAQ+K,IAAI2yC,GAAUhgD,MAAK,SAAS+tG,GACzC,IAAIjvC,EAAU,IAAIj6E,IAMlB,OALAkpH,EAASr5H,SAAQ,SAASoX,GACxBA,EAAMpX,SAAQ,SAAS4xG,GACrBxnB,EAAQp4E,IAAI4/F,EAAK95G,GAAI85G,SAGlBxnB,MAKO,CAAC,eAAgB,iBAAkB,iBACnD,kBAAmB,oBACTpqF,SAAQ,SAASs5H,GAC3B,IAAI3yI,EAAM7J,EAAOw8I,GACjB,GAAI3yI,GAAOA,EAAI7H,WAAa6H,EAAI7H,UAAUqiH,SAAU,CAClD,IAAIo4B,EAAiB5yI,EAAI7H,UAAUqiH,SACnCx6G,EAAI7H,UAAUqiH,SAAW,WACvB,OAAOo4B,EAAe/mG,MAAM5hC,MAC3B06B,MAAK,SAASkuG,GACb,IAAIC,EAAW,IAAItpH,IAKnB,OAJAvyB,OAAOuY,KAAKqjI,GAAax5H,SAAQ,SAASlI,GA1uDpD,IAAsB85G,EA2uDV4nB,EAAY1hI,GAAID,KA1uDnB,CACL6hI,WAAY,cACZC,YAAa,eACbC,cAAe,iBACfC,eAAgB,kBAChBC,gBAAiB,qBANCloB,EA2uD0B4nB,EAAY1hI,IApuDnDD,OAAS+5G,EAAK/5G,KAquDX4hI,EAASznH,IAAIla,EAAI0hI,EAAY1hI,OAExB2hI,UAOf,IAAIpuC,EAAU,CAAC,cAAe,gBA8D9B,OA7DAA,EAAQrrF,SAAQ,SAASs/E,GACvB,IAAIy6C,EAAepuG,EAAkB7sC,UAAUwgG,GAC/C3zD,EAAkB7sC,UAAUwgG,GAAU,WACpC,IAAIvsD,EAAOhhC,UACX,MAAuB,mBAAZghC,EAAK,IACO,mBAAZA,EAAK,GACPgnG,EAAavnG,MAAM5hC,KAAM,CAACmB,UAAU,KAC1Cu5B,MAAK,SAASooC,GACU,mBAAZ3gC,EAAK,IACdA,EAAK,GAAGP,MAAM,KAAM,CAACkhC,OAEtB,SAAS99D,GACa,mBAAZm9B,EAAK,IACdA,EAAK,GAAGP,MAAM,KAAM,CAAC58B,OAIpBmkI,EAAavnG,MAAM5hC,KAAMmB,gBAIpCs5F,EAAU,CAAC,sBAAuB,uBAAwB,oBAClDrrF,SAAQ,SAASs/E,GACvB,IAAIy6C,EAAepuG,EAAkB7sC,UAAUwgG,GAC/C3zD,EAAkB7sC,UAAUwgG,GAAU,WACpC,IAAIvsD,EAAOhhC,UACX,MAAuB,mBAAZghC,EAAK,IACO,mBAAZA,EAAK,GACPgnG,EAAavnG,MAAM5hC,KAAMmB,WAC/Bu5B,MAAK,WACmB,mBAAZyH,EAAK,IACdA,EAAK,GAAGP,MAAM,SAEf,SAAS58B,GACa,mBAAZm9B,EAAK,IACdA,EAAK,GAAGP,MAAM,KAAM,CAAC58B,OAIpBmkI,EAAavnG,MAAM5hC,KAAMmB,eAMpC,CAAC,YAAYiO,SAAQ,SAASs/E,GAC5B,IAAIy6C,EAAepuG,EAAkB7sC,UAAUwgG,GAC/C3zD,EAAkB7sC,UAAUwgG,GAAU,WACpC,IAAIvsD,EAAOhhC,UACX,MAAuB,mBAAZghC,EAAK,GACPgnG,EAAavnG,MAAM5hC,KAAMmB,WAC/Bu5B,MAAK,WACmB,mBAAZyH,EAAK,IACdA,EAAK,GAAGP,MAAM,SAIbunG,EAAavnG,MAAM5hC,KAAMmB,eAI7B45B,I,8BC/zDT,oOA2BA,MAAM9c,EAASF,oBAAUM,GA4CV,SAASqoB,EAChBuzB,EACA/yD,EACA+kE,EACApmC,EACA9f,EACA+f,EACA3+B,GAUJnH,KAAKopI,uBAAgD,IAAxBjiI,EAAQymE,aAQrC5tE,KAAKqpI,iBAAc9oI,EAkBnBP,KAAKspI,gBAAkB,GAUvBtpI,KAAKupI,qBAAsB,EAO3BvpI,KAAKi6D,IAAMA,EAMXj6D,KAAKkH,GAAKA,EAOVlH,KAAK8lC,MAAQA,EASb9lC,KAAKwnC,aAAe,IAAIjoB,IAMxBvf,KAAKgjC,YAAc,IAAIzjB,IAQvBvf,KAAKurF,cAAgB,GAoBrBvrF,KAAKsrF,WAAa,IAAI/rE,IAKtBvf,KAAKwpI,WAAa,KAKlBxpI,KAAKypI,YAAc,KAMnBzpI,KAAKisE,eAAiBA,EAGtBjsE,KAAK0pI,sBAAwB1pI,KAAK0pI,sBAAsB57I,KAAKkS,MAC7DA,KAAKisE,eAAetqD,GAChBm8G,IACA99H,KAAK0pI,uBAET1pI,KAAK2pI,kBAAoB3pI,KAAK2pI,kBAAkB77I,KAAKkS,MACrDA,KAAKisE,eAAetqD,GAChBm8G,IACA99H,KAAK2pI,mBACT3pI,KAAKmH,QAAUA,EAIf,MAAMyiI,EAAkB7jH,GAAe,GAEvC6jH,EAAgBn0G,SAAWm0G,EAAgBn0G,UAAY,GAInDr/B,MAAMC,QAAQuzI,EAAgBn0G,UAC9Bm0G,EAAgBn0G,SAASvyB,KAAK,CAAE2mI,eAAgB7pI,KAAK8lC,QAErD7nB,EAAO9Y,KAAK,iEAGhBnF,KAAKghB,eACC,IAAImZ,IAASW,sBAAsB+K,EAAW+jG,GAIpD,MAAME,EAAwB,CAC1BhgD,IA7MW,IA8MXE,SA7MW,IA8MXH,KAhNW,MAqNf7pF,KAAK2pF,cAAgB3pF,KAAKmH,QAAQkmE,cAAgBrtE,KAAKmH,QAAQkmE,aAAa08D,iBACtE/pI,KAAKmH,QAAQkmE,aAAa08D,iBAC1BD,EAEN9pI,KAAKgqI,SAAW,IAAItgD,IAAS1pF,KAAMA,KAAK2pF,eACxC3pF,KAAKy1H,UAAY,GACjBz1H,KAAKwmB,MAAQ,GACbxmB,KAAKiqI,cAAgB,KAMrBjqI,KAAKmtE,SAAWhmE,EAAQgmE,SAExBntE,KAAKkqI,QAAU,IAAIC,IACnB,MAAMC,EAAYhtH,EAAQ,KAE1Bpd,KAAK0qF,UAAY,IAAI0/C,EACjB,CACIC,YAAa5gD,IAAelzF,OAC5B+zI,wBAAwB,EACxB77D,gBAAiB3uD,IAAQ2uD,oBAEjCzuE,KAAKuqI,eAAiB,IAAIC,IAAexqI,KAAKtJ,YAO9CsJ,KAAKyqI,eAAiB,IAAIC,IAAe1qI,MAMzCA,KAAKwf,aAAey6C,EAAIz6C,aACxBxf,KAAK2qI,YAAc,IAAIC,IAKvB5qI,KAAK6qI,qBAAuB,KAG5B,MAAMC,EAAmBt4G,GACA,iBAAVA,EACAxlC,OAAOo2B,OAAOgQ,GAAenC,KAAK1jC,GAASA,IAAUilC,EAAM7vB,eAG/D,KAIX,IAAI4qE,EAAiBu9D,EACjB9qI,KAAKmH,QAAQomE,gBAAmBvtE,KAAKmH,QAAQumE,YAAct6C,QAK3DtT,IAAQsQ,aAAem9C,IAAmBn6C,QAC1Cm6C,EAAiB,MAIrB,IAAID,EAAgBw9D,EAChB9qI,KAAKmH,QAAQmmE,eAAkBttE,KAAKmH,QAAQsmE,aAAer6C,QAI3Dk6C,IAAkBl6C,QAClBnV,EAAO9Y,KAAK,uDACZmoE,EAAgB,OAGhBC,GAAkBD,KAElBttE,KAAK+qI,gBAAkB,CACnBvpG,OAA0B,OAAlB8rC,EACR3hD,UAAW4S,IACXo+D,SAAUrvB,GAAgCC,IAKlDvtE,KAAKy+H,MAAQ,CAACuM,EAAM9lI,KAChB+Y,EAAOhZ,MAAM+lI,EAAM9lI,GAEnBlF,KAAKy1H,UAAUvyH,KAAK,CAChBwuF,KAAM,IAAIvpF,KACVlB,KAAM+jI,EACNz9I,MAAO2X,GAAQ,MAGvBlF,KAAK6tE,eAAiB,KACtB7tE,KAAKghB,eAAe6sD,eAAiBxmD,IACjCrnB,KAAKy+H,MACD,iBACA7xH,KAAKwL,UAAUiP,EAAMoH,UAAW,KAAM,MAEd,OAAxBzuB,KAAK6tE,gBACL7tE,KAAK6tE,eAAexmD,IAKxBvH,IAAQ01D,aACRx1E,KAAKghB,eAAegjH,YACd38G,GAASrnB,KAAKirI,mBAAmB5jH,EAAM9F,QAC7CvhB,KAAKghB,eAAekjH,eACd78G,GAASrnB,KAAKkrI,qBAAqB7jH,EAAM9F,SAE/CvhB,KAAKghB,eAAeijH,QAAU58G,IAC1B,MAAM9F,EAAS8F,EAAMyW,QAAQ,GAE7B99B,KAAKmrI,kBAAkB5pH,EAAQ8F,EAAMiX,MAAOjX,EAAMs+C,aAClDpkD,EAAO6pH,cAAgBxF,IACnB5lI,KAAKqrI,oBAAoB9pH,EAAQqkH,EAAItnG,SAIjDt+B,KAAKguE,uBAAyB,KAC9BhuE,KAAKghB,eAAegtD,uBAAyB3mD,IACzCrnB,KAAKy+H,MAAM,yBAA0Bz+H,KAAKiuE,gBACN,OAAhCjuE,KAAKguE,wBACLhuE,KAAKguE,uBAAuB3mD,IAGpCrnB,KAAKmuE,2BAA6B,KAClCnuE,KAAKghB,eAAemtD,2BAA6B9mD,IAC7CrnB,KAAKy+H,MAAM,6BAA8Bz+H,KAAKouE,oBACN,OAApCpuE,KAAKmuE,4BACLnuE,KAAKmuE,2BAA2B9mD,IAGxCrnB,KAAKuuE,oBAAsB,KAC3BvuE,KAAKghB,eAAeutD,oBAAsBlnD,IACtCrnB,KAAKy+H,MAAM,uBACsB,OAA7Bz+H,KAAKuuE,qBACLvuE,KAAKuuE,oBAAoBlnD,IAGjCrnB,KAAKqkI,cAAgB,KACrBrkI,KAAKghB,eAAeqjH,cAAgBh9G,IAChCrnB,KAAKy+H,MAAM,iBACgB,OAAvBz+H,KAAKqkI,eACLrkI,KAAKqkI,cAAch9G,IAIvBrnB,KAAKmtE,WACLntE,KAAKiqI,cAAgB/9I,OAAOowC,YAAY,KACpCt8B,KAAKuwG,SAAS/pF,IACV,GAAIA,EAAM/gB,QACqB,mBAAjB+gB,EAAM/gB,OAAuB,CACvC,MAAM+zF,EAAUhzE,EAAM/gB,SAEtB,IAAK,IAAInZ,EAAI,EAAGA,EAAIktG,EAAQjjG,SAAUjK,EAAG,CACrC,MAAM2xC,EAAMu7D,EAAQltG,GAEpB2xC,EAAI34B,QAAQ8J,QAAQviB,IAChBmT,KAAKsrI,aAAartG,EAAKpxC,EAAMoxC,EAAI+iF,KAAKn0H,YAI9C25B,EAAMpX,QAAQhiB,GAAK4S,KAAKsrI,aAAal+I,EAAG,GAAIA,KAEjD,SAIJ,MAGP6wB,EAAO/Y,KAAM,cAAalF,MAY9B0mC,EAAwBx4C,UAAUo9I,aAC5B,SAASpmF,EAAQr4D,EAAM0+I,GACrB,MAAMrkI,EAAM,GAAEg+C,EAAOh+C,MAAMra,IAC3B,IAAIwB,EAAI2R,KAAKwmB,MAAMtf,GACnB,MAAMiN,EAAM,IAAIhM,KAEX9Z,IACD2R,KAAKwmB,MAAMtf,GAAM7Y,EAAI,CACjBstG,UAAWxnF,EACXq3H,QAASr3H,EACTiP,OAAQ,GACRs2G,MAAO,KAGfrrI,EAAE+0B,OAAOlgB,KAAKqoI,GACdl9I,EAAEqrI,MAAMx2H,KAAKiR,EAAI/L,WACb/Z,EAAE+0B,OAAO7sB,OAASyJ,KAAKmtE,WACvB9+E,EAAE+0B,OAAOsK,QACTr/B,EAAEqrI,MAAMhsG,SAEZr/B,EAAEm9I,QAAUr3H,GAMpB,MAAMs3H,EAAU,SAAS3oE,GACrB,OAAI,MAAOA,EACA,GAGH,SAAQA,EAAY77D,WAAW67D,EAAY9wC,OAYvD0U,EAAwBx4C,UAAUmrF,mBAAqB,WACnD,MAAMpsC,EAAQjtC,KAAKghB,eAAeotD,mBAElC,MAAc,cAAVnhC,EACO,YAGJA,GAaXvG,EAAwBx4C,UAAUw9I,0BAA4B,SACtD//G,GACJ,IAAIggH,GAAsB,EAO1B,OALIhgH,IAAc4S,IACdotG,EAAsB3rI,KAAKopI,oBACpBz9G,IAAc4S,MACrBotG,EAAsB3rI,KAAKupI,qBAE3BoC,EACO3rI,KAAK4rI,mBAAmBjgH,GAAa,WAAa,WAGtD,YAQX+a,EAAwBx4C,UAAUo8F,cAAgB,WAC9C,OAAQtqF,KAAKmH,QAAQqmE,kBASzB9mC,EAAwBx4C,UAAUw7I,sBAAwB,SAClD1tE,EACAx9B,GAEJ,IAAKw9B,EAGD,YAFA/9C,EAAOjZ,MAAO,yCAAwChF,MAI1D,MAAMu4D,EAAav4D,KAAKunC,gBAAgBy0B,EAAYz9B,KAEhDg6B,EAAWhiE,QAEXgiE,EAAW,GAAGszE,cAAcrtG,IAWpCkI,EAAwBx4C,UAAUy7I,kBAAoB,SAC9C3tE,EACArwC,EACA2yC,GAEJ,IAAKtC,EAGD,YAFA/9C,EAAOjZ,MAAM,uCAIjB,MAAMs5B,EAAQt+B,KAAKunC,gBAAgBy0B,EAAYrwC,GAE3C2S,EAAM/nC,QAEN+nC,EAAM,GAAGwtG,QAAQxtE,IAWzB53B,EAAwBx4C,UAAUwyH,eAAiB,WAC/C,MAAMD,EAAc,GAgBpB,OAfuBzgH,KAAKghB,eAAeskH,eACtC50G,OAAO0a,GAAYA,EAAS9M,OAAS8M,EAAS9M,MAAMlF,OAASmF,KAEnDnvB,QAAQ0yG,IACnB,MAAM98F,EAAO88F,EAAOiqB,4BAEhB/mH,GAAQA,EAAKzuB,SAKbkqH,EAAYz7F,EAAK,GAAG+F,QAAU/F,EAAK,GAAG2jB,cAIvC83E,GASX/5E,EAAwBx4C,UAAUg5C,eAAiB,SAASvb,GACxD,IAAI0b,EAASjxC,MAAMO,KAAKqJ,KAAKgjC,YAAY5f,UAMzC,YAJkB7iB,IAAdorB,IACA0b,EAASA,EAAO3W,OAAO4N,GAASA,EAAMgJ,YAAc3b,IAGjD0b,GAQXX,EAAwBx4C,UAAU84C,mBAAqB,WACnD,OAAOhnC,KAAKknC,eAAe3I,KAAiB,IAShDmI,EAAwBx4C,UAAU09I,mBAAqB,SAASjgH,GAC5D,IAAKA,EACD,MAAM,IAAIt0B,MAAM,2BAGpB,OAAO2I,KAAKknC,eAAevb,GAAWp1B,OAAS,GAUnDmwC,EAAwBx4C,UAAUq5C,gBAAkB,SAC5Cy0B,EACArwC,GACJ,MAAM6b,EAAe,GACfwkG,EACAhwE,EAAa,CAAEA,GAAeh8D,KAAKwnC,aAAajiC,OAEtD,IAAK,MAAM66H,KAAY4L,EAAW,CAC9B,MAAMC,EAAmBjsI,KAAKwnC,aAAar6C,IAAIizI,GAE/C,GAAK6L,EAOL,IAAK,MAAMpnD,KAAkBonD,EAAiB1mI,OAE1C,IAAKomB,GAAaA,IAAck5D,EAAgB,CAC5C,MAAMqnD,EAAaD,EAAiB9+I,IAAI03F,GAEpCqnD,GACA1kG,EAAatkC,KAAKgpI,IAMlC,OAAO1kG,GASXd,EAAwBx4C,UAAU06C,eAAiB,SAAS5jB,GACxD,GAAoB,iBAATA,EACP,MAAM,IAAI3tB,MAAO,QAAO2tB,qBAE5B,IAAK,MAAMkf,KAAclkC,KAAKgjC,YAAY5f,SACtC,GAAIpjB,KAAKstG,aAAappE,KAAgBlf,EAClC,OAAOkf,EAGf,IAAK,MAAMw4B,KAAe18D,KAAKunC,kBAC3B,GAAIm1B,EAAY6wC,YAAcvoF,EAC1B,OAAO03C,EAIf,OAAO,MASXh2B,EAAwBx4C,UAAU+3H,iBAAmB,SAAS/+G,GAE1D,MAAMilI,EAAgB7tG,GAASA,EAAMqnD,WAAWz+E,KAAOA,EACjDg9B,EAAalkC,KAAKknC,iBAAiBjW,KAAKk7G,GAE9C,GAAIjoG,EACA,OAAOlkC,KAAKstG,aAAappE,GAG7B,MAAMw4B,EAAc18D,KAAKunC,kBAAkBtW,KAAKk7G,GAEhD,OAAIzvE,EACOA,EAAY6wC,UAGhB,MAOX7mE,EAAwBx4C,UAAU+8I,mBAAqB,SAAS1pH,GAC5D,MAAMinB,EAAW1F,IAAI3H,YAAY5Z,GAEjC,IAAKuhB,IAAIyF,iBAAiBC,GAKtB,YAJAvqB,EAAO/Y,KACAlF,KAAF,+DACSwoC,GAMd1oB,IAAQub,oBACR9Z,EAAO6qH,WAAa/kH,IAChBrnB,KAAKmrI,kBAAkB5pH,EAAQ8F,EAAMiX,QAEzC/c,EAAO6pH,cAAgB/jH,IACnBrnB,KAAKqrI,oBAAoB9pH,EAAQ8F,EAAMiX,SAK/C,MAAM+tG,EAAoB9qH,EAAOqX,iBAEjC,IAAK,MAAMgP,KAAcykG,EACrBrsI,KAAKmrI,kBAAkB5pH,EAAQqmB,GAEnC,MAAM0kG,EAAoB/qH,EAAOuX,iBAEjC,IAAK,MAAMy/B,KAAc+zE,EACrBtsI,KAAKmrI,kBAAkB5pH,EAAQg3C,IAgBvC7xB,EAAwBx4C,UAAUi9I,kBAAoB,SAAS5pH,EAAQ+c,EAAOqnC,EAAc,MACxF,MAAMn9B,EAAW1F,IAAI3H,YAAY5Z,GAC3BoK,EAAY2S,EAAMlF,KAExB,IAAKp5B,KAAK8lC,QAAUhD,IAAIyF,iBAAiBC,GAKrC,YAJAvqB,EAAO/Y,KACAlF,KAAF,+DACSwoC,GAOlB,GAHAvqB,EAAO/Y,KAAQlF,KAAF,uBAA8BwoC,EAAU7c,IAGhDA,EAOD,YANAiM,mBACI,IAAIvgC,MACC,oDAAmDmxC,IAOhE,MAAM+jG,EAAYzsH,IAAQ01D,YACpB,IAAItmC,IAAIlvC,KAAKwuE,kBAAkBx8C,KAC/B,IAAIkd,IAAIlvC,KAAKghB,eAAewtD,kBAAkBx8C,KACpD,IAAIw6G,EAEJ,GAAI1sH,IAAQ2uD,kBACR,GAAI9I,GAAeA,EAAYj2B,IAAK,CAChC,MAAMA,EAAMi2B,EAAYj2B,IAExB88F,EAAaD,EAAU9+G,MAAMiD,OAAO+7G,GAAOhgH,IAAQO,SAASy/G,EAAM,SAAQ/8F,SAE1E88F,EAAaD,EAAU9+G,MAAMiD,OAAO+7G,IAChC,MAAM3qF,EAAOr1B,IAAQO,SAASy/G,EAAK,UAEnC,YAAuB,IAAT3qF,GAAwBtZ,IAAasZ,EAAK30B,UAAU,GAAGpqB,MAAM,KAAK,UAIxFypI,EAAaD,EAAU9+G,MAAMiD,OAAO+7G,GAAOA,EAAIt6G,WAAY,KAAIxG,IAGnE,IAAK6gH,EAAWj2I,OAQZ,YAPAqhC,mBACI,IAAIvgC,MACC,2BACGs0B,2CACA6c,MAMhB,IAAIiuC,EAAYhqD,IAAQuD,UAAUw8G,EAAW,GAAI,WAIjD,GAFA/1D,EACMA,EAAU/lD,OAAOlsB,IAA8C,IAAtCA,EAAKZ,QAAS,QAAO4kC,KAC/CiuC,EAAUlgF,OAOX,YANAqhC,mBACI,IAAIvgC,MACC,8BACGmxC,mCAA0C7c,MAQ1D,MAAMmG,EAAU2kD,EAAU,GAAGtpD,UAAU,GAAGpqB,MAAM,KAAK,GAC/C2pI,EAAYnzH,OAAOuY,GACnB66G,EAAkB3sI,KAAKisE,eAAe+xD,aAAa0O,GAEzD,GAAIhzH,MAAMgzH,IAAcA,EAAY,EAOhC,YANA90G,mBACI,IAAIvgC,MACC,iBAAgBy6B,6BACb0W,iBAAwB7c,MAIjC,IAAKghH,EAQR,YAPA/0G,mBACI,IAAIvgC,MACC,4BACGq1I,6BACAlkG,iBAAwB7c,MAMxC1N,EAAOrZ,IAAO5E,KAAF,mBAA0B2sI,EAAiBD,GAEvD,MAAME,EACA5sI,KAAKisE,eAAe8xD,iBAAiB4O,EAAiBhhH,GAE5D,IAAKihH,EAMD,YALAh1G,mBACI,IAAIvgC,MACC,GAAE2I,0CACC2sI,MAKhB,MAAM7nH,EAAQ8nH,EAAc9nH,MACtB0Z,EAAYouG,EAAcpuG,UAEhCx+B,KAAK6sI,mBACDF,EAAiBprH,EAAQ+c,EAAO3S,EAAW6S,EAAWkuG,EAAW5nH,IAkBzE4hB,EAAwBx4C,UAAU2+I,mBAAqB,SAC/CF,EACAprH,EACA+c,EACA3S,EACA6S,EACAxZ,EACAF,GACJ,IAAIgoH,EAAkB9sI,KAAKwnC,aAAar6C,IAAIw/I,GAEvCG,IACDA,EAAkB,IAAIvtH,IACtBvf,KAAKwnC,aAAapmB,IAAIurH,EAAiBG,IAG3C,MAAMC,EAAgBD,EAAgB3/I,IAAIw+B,GAS1C,GAJIohH,GAAiBjtH,IAAQyV,YACzBv1B,KAAKqrI,oBAAoB0B,EAActnD,oBAAqBsnD,EAAcpnD,YAG1EonD,GAAiBA,EAAcpnD,aAAernD,EAO9C,YAJArgB,EAAO/Y,KACAlF,KAAF,qDACM,GAAE2sI,MAAoBhhH,KAG1BohH,GACP9uH,EAAOjZ,MAAO,GAAEhF,qCAAqC2sI,KAAmBhhH,KAG5E,MAAM+wC,EACA,IAAIswE,IACEhtI,KAAKi6D,IACLj6D,KAAKi6D,IAAI13C,WACToqH,EACAprH,EACA+c,EACA3S,EACA6S,EACAxZ,EACAF,EACA9kB,KAAK8lC,OAEjBgnG,EAAgB1rH,IAAIuK,EAAW+wC,GAE/B18D,KAAKwf,aAAa0D,KAAK8V,IAAU3Q,mBAAoBq0C,EAAa18D,OAUtE0mC,EAAwBx4C,UAAUg9I,qBAAuB,SAAS3pH,GAC9D,IAAKuhB,IAAImqG,aAAa1rH,GAAS,CAC3B,MAAMra,EAAK47B,IAAI3H,YAAY5Z,GAK3B,YAHAtD,EAAO/Y,KACF,6DAA4DgC,GAMrE,MAAMolI,EAAoB/qH,EAAOuX,iBAEjC,IAAK,MAAMy/B,KAAc+zE,EACrBtsI,KAAKqrI,oBAAoB9pH,EAAQg3C,GAErC,MAAM8zE,EAAoB9qH,EAAOqX,iBAEjC,IAAK,MAAMgP,KAAcykG,EACrBrsI,KAAKqrI,oBAAoB9pH,EAAQqmB,IAWzClB,EAAwBx4C,UAAUm9I,oBAAsB,SAChD9pH,EACA+c,GACJ,MAAMkK,EAAW1F,IAAI3H,YAAY5Z,GAC3BmlE,EAAUpoD,GAASwE,IAAI1H,WAAWkD,GAExCrgB,EAAO/Y,KAAM,GAAElF,gCAAgCwoC,MAAak+C,KAEvDl+C,EAOAk+C,EAOA1mF,KAAKktI,uBAAuB1kG,EAAUk+C,IAWvCzoE,EAAO9Y,KACF,GAAEnF,0CAA0CwoC,8BAChCk+C,KAnBjB9uD,mBACI,IAAIvgC,MAAS2I,KAAF,+CARf43B,mBACI,IAAIvgC,MAAS2I,KAAF,iDAqCvB0mC,EAAwBx4C,UAAUi/I,oBAAsB,SAChD3kG,EACAk+C,GAEJ,IAAK,MAAMulD,KAAoBjsI,KAAKwnC,aAAapkB,SAC7C,IAAK,MAAM8oH,KAAcD,EAAiB7oH,SAGtC,GAAI8oH,EAAWxmD,eAAiBl9C,GACzB0jG,EAAWrmD,cAAgBa,EAC9B,OAAOwlD,GAiBvBxlG,EAAwBx4C,UAAUg6C,mBAAqB,SAASC,GAC5D,MAAMC,EAAgB,GAChB0kG,EAAkB9sI,KAAKwnC,aAAar6C,IAAIg7C,GAE9C,GAAI2kG,EAAiB,CACjB,MAAMM,EAAoBN,EAAgB3/I,IAAIoxC,KACxC8uG,EAAoBP,EAAgB3/I,IAAIoxC,KAE9C6uG,GAAqBhlG,EAAcllC,KAAKkqI,GACxCC,GAAqBjlG,EAAcllC,KAAKmqI,GAExCrtI,KAAKwnC,aAAa9jB,OAAOykB,GAO7B,OAJAlqB,EAAOhZ,MACF,GAAEjF,kCAAkCmoC,YACjCC,EAAc7xC,UAEf6xC,GAQX1B,EAAwBx4C,UAAUo/I,mBAAqB,SAASC,GAC5DA,EAAYvqH,UACZ,MAAMmI,EAAgBoiH,EAAY5wE,mBAC5BmwE,EAAkB9sI,KAAKwnC,aAAar6C,IAAIg+B,GAEzC2hH,EAGOA,EAAgBppH,OAAO6pH,EAAYjmG,YAC3CrpB,EAAOjZ,MACF,oBAAmBuoI,gCAJxBtvH,EAAOjZ,MACF,+CAA8CmmB,GAKvDnrB,KAAKwf,aAAa0D,KAAK8V,IAAUzQ,qBAAsBglH,IAa3D7mG,EAAwBx4C,UAAUg/I,uBAAyB,SACnD1kG,EACAk+C,GACJ,MAAM6mD,EAAcvtI,KAAKmtI,oBAAoB3kG,EAAUk+C,GAMvD,OAJI6mD,GACAvtI,KAAKstI,mBAAmBC,GAGrBA,GA8GX,MAAMC,EAAiB,SAASn+G,GAC5B,GAAoB,iBAATA,GAA8B,OAATA,GACL,iBAAbA,EAAK2C,IAGf,OAFA/T,EAAO9Y,KAAK,mDAELkqB,EAIX,MAAM+zB,EAAYhmC,EAAQ,IACpBnF,EAAUmrC,EAAUlrC,MAAMmX,EAAK2C,UAEd,IAAZ/Z,QACyB,IAAlBA,EAAQwV,OACfr3B,MAAMC,QAAQ4hB,EAAQwV,QAC7BxV,EAAQwV,MAAMre,QAAQqiB,IASlB,MAAMg8G,EAAa,GACbC,EAAe,GAcrB,QAZgC,IAArBj8G,EAAMX,YACV16B,MAAMC,QAAQo7B,EAAMX,aACvBW,EAAMX,WAAW1hB,QAAQ8hB,SACU,IAApBA,EAAMC,WACU,QAApBD,EAAMC,gBACkB,IAAhBD,EAAMV,OACbi9G,EAAWvqI,KAAKqW,OAAO2X,EAAMV,MAAMztB,MAAM,KAAK,OAM1D3M,MAAMC,QAAQo7B,EAAMjB,OAAQ,CAC5B,IAAIlkC,EAEJ,IAAKA,EAAI,EAAGA,EAAImlC,EAAMjB,MAAMj6B,OAAQjK,IACF,iBAAnBmlC,EAAMjB,MAAMlkC,SACa,IAAtBmlC,EAAMjB,MAAMlkC,GAAG4a,IACtBumI,EAAW7pI,QAAQ6tB,EAAMjB,MAAMlkC,GAAG4a,KAAO,IAC5CwmI,EAAaxqI,KAAKuuB,EAAMjB,MAAMlkC,WACvBmlC,EAAMjB,MAAMlkC,IAI3B,IAAKA,EAAI,EAAGA,EAAImlC,EAAMjB,MAAMj6B,OAAQjK,SACF,IAAnBmlC,EAAMjB,MAAMlkC,IACnBohJ,EAAaxqI,KAAKuuB,EAAMjB,MAAMlkC,IAItCmlC,EAAMjB,MA0BtB,SAAuCimD,EAAY,IAC/C,IAAK32D,IAAQwX,aAAexX,IAAQ21B,qBAAqB,IACrD,OAAOghC,EAGX,IAAIk3D,EAAgB,IAAKl3D,GAsBzB,OApB2BA,EAAU/lD,OAAOiB,GACxCA,EAASr0B,YAAc,WAAaq0B,EAASpkC,QAAU,KACtDiY,IAAImsB,GAAYA,EAASzqB,IAEXkI,QAAQw+H,IAEvB,MAAMC,EAAYF,EAAc18G,KAAKzsB,GACjCA,EAAK0C,KAAO0mI,GAA6B,UAAnBppI,EAAKlH,WAE/BuwI,EAAUtgJ,MAAS,YAAWqgJ,EAG9BD,EACMA,EAAcj9G,OAAOlsB,GAAQA,EAAK0C,KAAO0mI,GAI/CD,EAAczqI,KAAK2qI,KAGhBF,EArDmBG,CAA8BJ,MAKxD,MAAMK,EAAS3qF,EAAUrL,MAAM9/B,GAG/B,OAAO,IAAI09D,sBAAsB,CAC7B1uE,KAAMooB,EAAKpoB,KACX+qB,IAAK+7G,KA2FbrnG,EAAwBx4C,UAAUo/G,aAAe,SAASppE,GACtD,MAAMzT,EAAWzwB,KAAKguI,SAAS9pG,EAAWrB,OAE1C,OAAOpS,GAAYA,EAASD,MAAM,IAatCkW,EAAwBx4C,UAAU+/I,oCAC5B,SAAS5+G,GACP,MAAM2C,EAAMoxB,IAAUlrC,MAAMmX,EAAK2C,KAC3BiC,EAAQjC,EAAIvE,MAAMwD,KAAKnD,GAAwB,UAAfA,EAAM7mB,MAI5CgtB,EAAMnD,WAAamD,EAAMnD,YAAc,GACvC,MAAMo9G,EAAYj6G,EAAMnD,WAAWJ,OAAOQ,GAA6B,QAApBA,EAAMC,WAEzD,GAAI8C,EAAMy2D,WAAaz2D,EAAMw2D,aAAc,CACvC,MAAMj6D,EAAQ,GAad,GAXI09G,GAAaA,EAAU33I,OACvB23I,EAAU9+H,QAAQ8hB,IACdV,EAAMttB,KAAKguB,EAAMV,MAAMztB,MAAM,KAAK,MAGtCkxB,EAAMzD,MAAMphB,QAAQ4V,IACO,SAAnBA,EAAK1nB,WACLkzB,EAAMttB,KAAK8hB,EAAK9d,MAIxB+sB,EAAMnD,WAAWG,KAAKC,GAA6B,QAApBA,EAAMC,WAErC,OAAO9B,EAEX4E,EAAMnD,WAAW5tB,KAAK,CAClBiuB,UAAW,MACXX,MAAOA,EAAMrtB,KAAK,OAI1B,OAAO,IAAIwyE,sBAAsB,CAC7B1uE,KAAMooB,EAAKpoB,KACX+qB,IAAKoxB,IAAUrL,MAAM/lB,MAKjC,MAAMm8G,EAAU,CACZlgE,iBACI,OAAOjuE,KAAKghB,eAAeitD,gBAE/BG,qBACI,OAAOpuE,KAAKghB,eAAeotD,oBAE/BS,mBACI,IAAIx/C,EAAOrvB,KAAKghB,eAAe6tD,iBAE/B,OAAKx/C,GAMLrvB,KAAKy+H,MAAM,oCAAqCgN,EAAQp8G,IAGpDvP,IAAQ2uD,mBACRp/C,EAAOrvB,KAAKkqI,QAAQkE,QAAQ/+G,GAC5BrvB,KAAKy+H,MAAM,8CACPgN,EAAQp8G,IAEZA,EAAOrvB,KAAKiuI,oCAAoC5+G,GAChDrvB,KAAKy+H,MAAM,yDACPgN,EAAQp8G,MAERvP,IAAQ4qD,gCACRr7C,EAAOrvB,KAAKyqI,eAAe4D,mCAAmCh/G,GAC9DpR,EAAOhZ,MACH,uDAAwDoqB,IAWhEA,EA3IY,SAASw/C,EAAkB1nE,GAC/C,IAAK0nE,EACD,MAAM,IAAIx3E,MAAM,mCAGpB,MAAMi3I,EAAc,IAAIrrF,IAAiB4rB,EAAiB78C,KACpDu8G,EAAaD,EAAYjrF,YAAY,SAC3C,IAAI4rD,GAAU,EAEVs/B,GAAuC,aAAzBA,EAAW5+G,YACrBxoB,EAAQymE,YACR2gE,EAAW5+G,UAAY,WAEvB4+G,EAAW5+G,UAAY,WAG3Bs/E,GAAU,GAGd,MAAMu/B,EAAaF,EAAYjrF,YAAY,SAO3C,OALImrF,GAAuC,aAAzBA,EAAW7+G,YACzB6+G,EAAW7+G,UAAY,WACvBs/E,GAAU,GAGVA,EACO,IAAIt5B,sBAAsB,CAC7B1uE,KAAM4nE,EAAiB5nE,KACvB+qB,IAAKs8G,EAAY/qF,aAIlBsrB,EA0GQ4/D,CAAgBp/G,EAAMrvB,KAAKmH,UAItCkoB,EAAOrvB,KAAKyqI,eAAeiE,2BAA2Br/G,GAE/CA,IArCHpR,EAAOhZ,MAAM,iDAEN,KAqCfupE,oBACI,IAAIn/C,EAAOrvB,KAAKghB,eAAewtD,kBAE/B,OAAKn/C,GAKLrvB,KAAKy+H,MAAM,qCAAsCgN,EAAQp8G,IAGrDvP,IAAQ2uD,oBACRp/C,EAAOrvB,KAAKkqI,QAAQkE,QAAQ/+G,GAC5BrvB,KAAKy+H,MACD,+CAAgDgN,EAAQp8G,KAGzDA,IAbHpR,EAAOhZ,MAAM,mDAEN,MAq+BnB,SAAS0pI,EAAe7iC,GACpB,OAAOA,EAAe5kE,iBACjBy7C,KAAKn1F,GAAqB,WAAhBA,EAAEgxC,WAx9BrBxxC,OAAOuY,KAAK4oI,GAAS/+H,QAAQ89F,IACzBlgH,OAAOC,eACHy5C,EAAwBx4C,UACxBg/G,EAAM,CACF//G,IAAKghJ,EAAQjhC,OAKzBxmE,EAAwBx4C,UAAU8/I,SAAW,SAASnrG,GAClD,OAAO7iC,KAAKsrF,WAAWn+F,IAAI01C,IAY/B6D,EAAwBx4C,UAAU0gJ,iBAAmB,SAAS9rE,GAC1D,IAAK9iE,KAAK+qI,iBAAmBjrH,IAAQqzF,2BACjC,OAAOrwC,EAGX,MAAMonB,EAAY9mC,IAAUlrC,MAAM4qD,EAAY9wC,KACxCP,EAAQy4D,EAAUz8D,MAAMwD,KAAKvkC,GAAKA,EAAEua,OAASjH,KAAK+qI,gBAAgBp/G,WAiBxE,OAfI3rB,KAAK+qI,gBAAgBvpG,QACrB/U,IAAQ2F,YAAYX,EAAOzxB,KAAK+qI,gBAAgBpuC,UAO5C38F,KAAK+qI,gBAAgBpuC,WAAavpE,QAAsBtT,IAAQC,iBAAmB/f,KAAK8lC,OACxFrZ,IAAQsG,WAAWtB,EAAOzxB,KAAK+qI,gBAAgBpuC,UAAU,IAG7DlwE,IAAQsG,WAAWtB,EAAOzxB,KAAK+qI,gBAAgBpuC,UAG5C,IAAIhnB,sBAAsB,CAC7B1uE,KAAM67D,EAAY77D,KAClB+qB,IAAKoxB,IAAUrL,MAAMmyC,MAU7BxjD,EAAwBx4C,UAAU2gJ,cAAgB,SAASvwG,GACvD,GAAIA,EAAM/Y,UACN,OAAOvlB,KAAKgjC,YAAYjf,IAAIua,EAAMuE,OAGtC,MAAM1X,EAAgBmT,EAAMq+B,mBACtBmwE,EAAkB9sI,KAAKwnC,aAAar6C,IAAIg+B,GAE9C,OAAOwN,QAAQm0G,GAAmBA,EAAgB3/I,IAAImxC,EAAMgJ,aAAehJ,IAS/EoI,EAAwBx4C,UAAUiwC,SAAW,SAASG,EAAO8sC,GAAc,GACvE,MAAMvoC,EAAQvE,EAAMuE,MAIpB,GAFA5kB,EAAO/Y,KAAM,OAAMo5B,SAAat+B,QAE5BA,KAAKgjC,YAAYjf,IAAI8e,GAErB,OAAO7F,QAAQE,OAAO,IAAI7lC,MAAO,GAAEinC,mBAAuBt+B,SAM9D,GAHAA,KAAKgjC,YAAY5hB,IAAIyhB,EAAOvE,GAGxBxe,IAAQ2uD,mBAAqBzuE,KAAK8lC,MAClC9lC,KAAKgqI,SAAS7rG,SAASG,EAAO8sC,OAC3B,CAMH,MAAM0jE,EAAexwG,EAAMmnD,oBAE3B,GAAIqpD,EACA9uI,KAAK+uI,WAAWD,QAGb,IAAKhvH,IAAQ4qD,+BACLpsC,EAAMuK,gBACLvK,EAAMqsC,iBAAmBrsC,EAAMggC,UAC3C,OAAOthC,QAAQE,OAAO,IAAI7lC,MAAO,GAAE2I,8BAA8Bs+B,MAIrE,GAAIxe,IAAQ01D,aAAe11D,IAAQ4qD,+BACxBpsC,EAAMqsC,gBAAkBrsC,EAAMggC,UAAW,CAChD,MAAM7tC,EAAWzwB,KAAKgvI,0BAA0B1wG,GAEhDt+B,KAAKuqI,eAAe0E,eAAex+G,EAASD,MAAM,IAClD,MAAMY,EACAX,EAAS+hB,OAAOvhB,KAAK0xB,GAAqC,QAAxBA,EAAUxxB,WAE9CC,GACApxB,KAAK0qF,UAAUwkD,aAAa99G,EAASZ,OAEzC,MAAM09G,EACAz9G,EAAS+hB,OAAO9hB,OACdiyB,GAAqC,QAAxBA,EAAUxxB,WAE/B,GAAI+8G,EAAW,CACX,MAAMiB,EAAiB,IAAI5vH,IAE3B2uH,EAAU9+H,QAAQ4hB,IACd,MAAMD,EAAcC,EAASR,MAAM,GAC7B4+G,EAAUp+G,EAASR,MAAM,GAE/B2+G,EAAe/tH,IAAI2P,EAAaq+G,KAEpCpvI,KAAK2qI,YAAYuE,aAAaC,KAK1C,IAAIE,EAAeryG,QAAQC,UAO3B,OAJInd,IAAQsQ,cACRi/G,EAAervI,KAAKgqI,SAAS/+C,aAAa3sD,IAGvC+wG,GAWX3oG,EAAwBx4C,UAAUupF,eAAiB,SAASn5C,GACxD,IAAKt+B,KAAKsvI,oBAAoB,iBAAkBhxG,GAE5C,OAAOtB,QAAQE,OAAO,yCAG1Bjf,EAAO/Y,KAAM,UAASo5B,kBAAsBt+B,QAC5C,MAAMuvI,EAAejxG,EAAMmnD,oBAE3B,OAAK8pD,EAODzvH,IAAQ2uD,kBACDzuE,KAAKgqI,SAASvyD,eAAen5C,IAGxCt+B,KAAK+uI,WAAWQ,GAETvyG,QAAQC,SAAQ,KAZnBhf,EAAOjZ,MACF,iBAAgBs5B,kBAAsBt+B,2BAEpCg9B,QAAQE,OAAO,sBAiB9BwJ,EAAwBx4C,UAAU6gJ,WAAa,SAASluG,GACpD7gC,KAAKghB,eAAegqE,UAAUnqD,GAC9B7gC,KAAKurF,cAAcroF,KAAK29B,IAO5B6F,EAAwBx4C,UAAUshJ,cAAgB,SAAS3uG,GACvD7gC,KAAKghB,eAAeokH,aAAavkG,GACjC7gC,KAAKurF,cACCvrF,KAAKurF,cAAc76D,OAAOnP,GAAUA,IAAWsf,IAczD6F,EAAwBx4C,UAAUohJ,oBAAsB,SAChDvpF,EACA7hB,GACJ,MAAMurG,EAAazvI,KAAKgjC,YAAYjf,IAAImgB,EAAWrB,OAOnD,OALK4sG,GACDxxH,EAAOjZ,MACF,GAAE+gD,MAAe7hB,wBAAiClkC,QAGpDyvI,GASX/oG,EAAwBx4C,UAAUwhJ,kBAAoB,SAAS7uG,GAC3D,OAAO7gC,KAAKurF,cAAc3nF,QAAQi9B,IAAgB,GAUtD6F,EAAwBx4C,UAAUsmG,YAAc,SAAStwD,GACrD,MAAMqrG,EAAerrG,EAAWuhD,oBAEhCzlF,KAAKy+H,MACD,eACAv6F,EAAWrB,MAAO0sG,EAAeA,EAAaroI,QAAK3G,GAElDP,KAAKsvI,oBAAoB,eAAgBprG,KAI9ClkC,KAAKgjC,YAAYtf,OAAOwgB,EAAWrB,OACnC7iC,KAAKsrF,WAAW5nE,OAAOwgB,EAAWrB,OAE9B0sG,GACAvvI,KAAKghB,eAAeokH,aAAamK,KAUzC7oG,EAAwBx4C,UAAUyhJ,iBAAmB,SAAShkH,GAC1D,OAAO3rB,KAAKghB,eAAeqkH,aAAap0G,KAAK5iC,GAAKA,EAAEiwC,OAASjwC,EAAEiwC,MAAMlF,OAASzN,IAUlF+a,EAAwBx4C,UAAUm8E,qBAAuB,SAAS/rC,GAC9D,OAAOt+B,KAAKghB,eAAeskH,eAAer0G,KAAK7jC,GAAKA,EAAEkxC,QAAUA,IAUpEoI,EAAwBx4C,UAAUs8E,mBAAqB,SAASlsC,GAC5D,OAAOt+B,KAAKghB,eAAeqkH,aAAap0G,KAAK5iC,GAAKA,EAAEiwC,QAAUA,IAelEoI,EAAwBx4C,UAAUgoF,aAAe,SAASC,EAAUC,GAChE,GAAIt2D,IAAQ2uD,kBACR,OAAOzuE,KAAKgqI,SAAS9zD,aAAaC,EAAUC,GAGvC17C,KAAK,IAAM16B,KAAKsqF,iBAAmBxqE,IAAQ0qE,8BAGpD,IAAI6kD,EAAeryG,QAAQC,UAS3B,OAPIk5C,GACAn2E,KAAKw0F,YAAYre,GAEjBC,IACAi5D,EAAervI,KAAKm+B,SAASi4C,IAG1Bi5D,EAAa30G,KAAK,KAAM,IAWnCgM,EAAwBx4C,UAAUspF,gBAAkB,SAAStzC,GACzD,MAAMqrG,EAAerrG,EAAWuhD,oBAMhC,OAJAzlF,KAAKy+H,MACD,mBACAv6F,EAAWrB,MAAO0sG,EAAeA,EAAaroI,GAAK,MAElDlH,KAAKsvI,oBAAoB,mBAAoBprG,GAK9CpkB,IAAQ2uD,kBACDzuE,KAAKgqI,SAASxyD,gBAAgBtzC,GAGrCqrG,GACAtxH,EAAO/Y,KACF,YAAWg/B,kBAA2BlkC,QAC3CA,KAAKwvI,cAAcD,GAEZvyG,QAAQC,SAAQ,KAG3Bhf,EAAOjZ,MAAO,2CAA0Ck/B,GAEjDlH,QAAQE,OAAO,qBAjBXF,QAAQE,OAAO,0CAoB9BwJ,EAAwBx4C,UAAU6wI,kBAAoB,SAASrlG,EAAOk2G,GAGlE,OAFA5vI,KAAKy+H,MAAM,oBAAqB/kG,EAAOk2G,GAEhC5vI,KAAKghB,eAAe+9G,kBAAkBrlG,EAAOk2G,IAWxDlpG,EAAwBx4C,UAAU2hJ,4BAA8B,SACxDC,GACJ,IAAIC,EAASD,EAAS99G,IAEtB,MAAMg+G,EAAkBD,EAAOnsI,QAAQ,WACjCqsI,EAAgBF,EAAOnsI,QAAQ,mBAAoBosI,GACzD,IAAIE,EAAkBH,EAAO32E,YAAY,gBAEzC,IAAuB,IAAnB62E,IACwB,IAArBC,GACAA,IAAoBD,EACvB,OAAOH,EAGX,MAAMK,EAAcJ,EAAOnsI,QAAQ,OAAQqsI,GACrCG,EAASL,EAAO5iH,UAAU8iH,EAAeE,EAAc,GAE7DJ,EAASA,EAAOnuI,QAAQwuI,EAAQ,IAChCF,EAAkBH,EAAO32E,YAAY,gBACrC,MAAMi3E,EAAgBN,EAAOnsI,QAAQ,OAAQssI,GACvCI,EAAUP,EAAO71G,MAAM,EAAGm2G,GAC1BE,EAAgBH,EAAOvxF,OACvB2xF,EAAUT,EAAO71G,MAAMm2G,GAI7B,OAFAN,EAAU,GAAEO,QAAcC,IAAgBC,IAEnC,IAAI76D,sBAAsB,CAC7B1uE,KAAM6oI,EAAS7oI,KACf+qB,IAAK+9G,KAYbrpG,EAAwBx4C,UAAUuiJ,2BAA6B,SACvD5hE,GACJ,MAAMy/D,EAAc,IAAIrrF,IAAiB4rB,EAAiB78C,KAC1D,IAAI0+G,GAAoB,EACxB,MAAMnC,EAAaD,EAAYjrF,YAAY,SAE3C,GAAIkrF,EAAY,CACZ,MAAMoC,EACA3wI,KAAK0rI,0BAA0BntG,KAEjCgwG,EAAW5+G,YAAcghH,IACzBpC,EAAW5+G,UAAYghH,EACvB1yH,EAAO/Y,KACF,qCAAoCyrI,GACzCD,GAAoB,QAGxBzyH,EAAO9Y,KAAK,oDAGhB,MAAMqpI,EAAaF,EAAYjrF,YAAY,SAE3C,GAAImrF,EAAY,CACZ,MAAMoC,EACA5wI,KAAK0rI,0BAA0BntG,KAEjCiwG,EAAW7+G,YAAcihH,IACzBpC,EAAW7+G,UAAYihH,EACvB3yH,EAAO/Y,KACF,qCAAoC0rI,GACzCF,GAAoB,QAGxBzyH,EAAO9Y,KAAK,mDAGhB,OAAIurI,EACO,IAAI/6D,sBAAsB,CAC7B1uE,KAAM4nE,EAAiB5nE,KACvB+qB,IAAKs8G,EAAY/qF,aAIlBsrB,GAGXnoC,EAAwBx4C,UAAU6jF,oBAAsB,SAASjP,GAC7D,IAAIgtE,EAAWhtE,EAmBf,OAjBA9iE,KAAKy+H,MAAM,oCAAqCgN,EAAQqE,IAGxDA,EAAW9vI,KAAK4uI,iBAAiBkB,GAE7BhwH,IAAQ01D,aACRs6D,EAAW9vI,KAAKywI,2BAA2BX,GAC3CA,EAAW9vI,KAAK6vI,4BAA4BC,KAI5CA,EAAW9vI,KAAKkqI,QAAQ2G,cAAcf,GACtC9vI,KAAKy+H,MACD,oDACAgN,EAAQqE,KAGT,IAAI9yG,QAAQ,CAACC,EAASC,KACzBl9B,KAAKghB,eAAe+wD,oBAAoB+9D,GACnCp1G,KAAK,KACF16B,KAAKy+H,MAAM,gCACX,MAAM+K,EAAa/8G,IAAQwF,SAAS69G,EAAS99G,KAEzCw3G,IAAexpI,KAAKwpI,aACpBxpI,KAAKwpI,WAAaA,EAClBxpI,KAAKwf,aAAa0D,KACd8V,IAAUjQ,oBAAqB/oB,KAAMwpI,IAE7CvsG,KACD9sB,IACCnQ,KAAKy+H,MAAM,+BAAgCtuH,GAC3CnQ,KAAKwf,aAAa0D,KACd8V,IAAUvQ,6BACVtY,EAAKnQ,MACTk9B,EAAO/sB,QAkBvBu2B,EAAwBx4C,UAAU+pF,uBAAyB,SAASqO,GAChEroE,EAAOhZ,MAAO,GAAEjF,+BAA+BsmF,KAC/C,MAAM2oB,EAAUjvG,KAAKopI,sBAAwB9iD,EAI7C,OAFAtmF,KAAKopI,oBAAsB9iD,EAEvBxmE,IAAQ2uD,mBACRzuE,KAAKgqI,SAAS/xD,uBAAuBqO,IAG9B,GAGJ2oB,GAUXvoE,EAAwBx4C,UAAU0lF,oCAAsC,WACpE,IAAK5zE,KAAKghB,eAAeqkH,WAGrB,OAFApnH,EAAOhZ,MAAM,yCAEN+3B,QAAQC,UAEnB,MAAMkpE,EAAkBnmG,KAAKgnC,qBACvB8pG,EAAc9wI,KAAK2vI,iBAAiBpxG,KAE1C,IAAKuyG,EACD,OAAO9zG,QAAQC,UAEnB,MAAM2jC,EAAakwE,EAAYrlD,gBAE/B,IAAK7qB,EAAW8qB,YAAc9qB,EAAW8qB,UAAUn1F,OAC/C,OAAOymC,QAAQC,UAEnB,IAAK,MAAMmuD,KAAYxqB,EAAW8qB,UAC9B,GAAI9qB,EAAW8qB,UAAUv9F,eAAei9F,GAAW,CAC/C,MAAM2lD,EAAa5qC,EAAgB3nE,YAAcC,SApgEvB,qBACC,sBAugE3BxgB,EAAO/Y,KAAM,kDAAiDlF,WAAW+wI,KACzEnwE,EAAW8qB,UAAUN,GAAU4lD,sBAAwBD,EAI/D,OAAOD,EAAYnlD,cAAc/qB,IAYrCl6B,EAAwBx4C,UAAUwlF,cAAgB,WAC9C,IAAK1zE,KAAKghB,eAAeqkH,WAGrB,OAFApnH,EAAOhZ,MAAM,wCAEN+3B,QAAQC,UAEnB,MAAMkpE,EAAkBnmG,KAAKgnC,qBAE7B,IAAKm/D,EACD,OAAOnpE,QAAQC,UAGnB,MAAMuB,EAAY2nE,EAAgB3nE,UAMlC,KAAOx+B,KAAKmH,QAAQkmE,cAAgBrtE,KAAKmH,QAAQkmE,aAAa08D,kBACtDjqH,IAAQ01D,aAAex1E,KAAKmH,QAAQimE,uBAAyB5uC,IAAcC,WAC5E3e,IAAQ2uD,mBACX,OAAOzxC,QAAQC,UAGnB,MAAMg0G,EAAmB9qC,EAAgBlS,iBAClCkS,EAAgBlS,gBAAgB/sF,KAAOi/F,EAAgBzgB,cACxDorD,EAAc9wI,KAAK2vI,iBAAiBpxG,KAE1C,IAAKuyG,EACD,OAAO9zG,QAAQC,UAEnB,MAAM2jC,EAAakwE,EAAYrlD,gBAE/B,IAAM7qB,EAAW8qB,YAAa9qB,EAAW8qB,UAAUn1F,OAC/C,OAAOymC,QAAQC,UAGnB,GAAIj9B,KAAKsqF,iBACL,IAAK,MAAMc,KAAYxqB,EAAW8qB,UAC9B,GAAI9qB,EAAW8qB,UAAUv9F,eAAei9F,GAAW,CAI/C,MAAMuzB,EAAU7+F,IAAQ01D,aACjBh3C,IAAcC,WACdz+B,KAAKmH,QAAQimE,sBACd6jE,EAAmBjxI,KAAK2pF,cAAcE,KArkEhC,IAskEN7pF,KAAKgqI,SAASpgD,2BAA2BwB,GAAUlnB,WAEzDjmD,EAAO/Y,KAAM,GAAElF,iCAAiC2+G,kBACvC3+G,KAAKgqI,SAASpgD,2BAA2BwB,GAAU9+E,KAC5Ds0D,EAAW8qB,UAAUN,GAAUlnB,WAAay6C,OAGjD,CAEH,IAAIA,EAAU3+G,KAAK2pF,cAAcE,KAEjC,GAAIrrD,IAAcC,SAAkB,CAEhC,MAAMyyG,EAAclxI,KAAK6qI,qBACnBz/H,KAAKmM,MAAM4uF,EAAgB9vE,WAAar2B,KAAK6qI,sBAC7C,EACAz/C,EAAWprF,KAAKgqI,SAASpgD,2BAC1B34D,KAAKkgH,GAASA,EAAMpnD,wBAA0BmnD,GAE/C9lD,IACAntE,EAAO/Y,KAAM,GAAElF,iCAAiCorF,EAASlnB,uCACzDy6C,EAAUvzB,EAASlnB,YAG3BtD,EAAW8qB,UAAU,GAAGxnB,WAAay6C,EAGzC,OAAOmyB,EAAYnlD,cAAc/qB,IAGrCl6B,EAAwBx4C,UAAU4nF,qBAAuB,SAAShT,GAO9D,GANA9iE,KAAKy+H,MAAM,qCAAsCgN,EAAQ3oE,IAIzDA,EAAc9iE,KAAK4uI,iBAAiB9rE,GAEhChjD,IAAQ01D,YAAa,CAErB,GAAIx1E,KAAKsqF,gBAAiB,CAItB,MAAM8mD,IAAyBpxI,KAAKmH,QAAQimE,wBAA0BuhE,EAAe3uI,OAGrF8iE,EAAc9iE,KAAK0qF,UAAU2mD,uBAAuBvuE,EAAasuE,GACjEpxI,KAAKy+H,MACD,kDACAgN,EAAQ3oE,IAIhBA,EAAc0qE,EAAe1qE,OAC1B,CACH,MAAMwuE,EAAqBtxI,KAAKghB,eAAewtD,kBAG/C1L,EAAc9iE,KAAKkqI,QAAQ2G,cAAc/tE,EAAawuE,GACtDtxI,KAAKy+H,MACD,gDACAgN,EAAQ3oE,IAER9iE,KAAKsqF,kBAELxnB,EAAc9iE,KAAK0qF,UAAU2mD,uBAAuBvuE,GAGpDA,EAAc9iE,KAAKgqI,SAASz/C,kCAAkCznB,GAC9D9iE,KAAKy+H,MACD,oDACAgN,EAAQ3oE,IAGZA,EAAc9iE,KAAKgqI,SAAS//C,0BAA0BnnB,IAI9D,OAAO,IAAI9lC,QAAQ,CAACC,EAASC,KACzBl9B,KAAKghB,eAAe80D,qBAAqBhT,GACpCpoC,KAAK,KACF16B,KAAKy+H,MAAM,iCACX,MAAMgL,EAAch9G,IAAQwF,SAAS6wC,EAAY9wC,KAE7Cy3G,IAAgBzpI,KAAKypI,cACrBzpI,KAAKypI,YAAcA,EACnBzpI,KAAKwf,aAAa0D,KACd8V,IAAUhQ,qBAAsBhpB,KAAMypI,IAE9CxsG,KACD9sB,IACCnQ,KAAKy+H,MAAM,gCAAiCtuH,GAC5CnQ,KAAKwf,aAAa0D,KACd8V,IAAUtQ,8BACVvY,EACAnQ,MACJk9B,EAAO/sB,QAevBu2B,EAAwBx4C,UAAUylF,yBAA2B,SAASiyC,EAAc,MAChF,GAAIA,EAAc,EACd,MAAM,IAAIvuH,MAAO,wBAAuBuuH,GAI5C,GAAI9lG,IAAQC,gBACR,OAAOid,QAAQC,UAInB,MAAMs0G,EAA4B,OAAhB3rB,EAAuB5lH,KAAK6qI,qBAAuBjlB,EAErE5lH,KAAK6qI,qBAAuB0G,EAE5BtzH,EAAOrZ,IAAK,GAAE5E,8BAA8BuxI,KAE5C,MAAMprC,EAAkBnmG,KAAKgnC,qBAE7B,IAAKm/D,GAAmBA,EAAgB7nC,WAAa6nC,EAAgB3nE,YAAcC,SAC/E,OAAOzB,QAAQC,UAEnB,MAAM6zG,EAAc9wI,KAAK2vI,iBAAiBpxG,KAE1C,IAAKuyG,EACD,OAAO9zG,QAAQC,UAEnB,MAAM2jC,EAAakwE,EAAYrlD,gBAE/B,IAAK7qB,IAAeA,EAAW8qB,YAAc9qB,EAAW8qB,UAAUn1F,OAC9D,OAAOymC,QAAQC,UAGnB,GAAIj9B,KAAKsqF,gBAAiB,CAEtB,MAAMknD,EAAwBxxI,KAAKgqI,SAAS9+C,gCAAgCib,EAAgB7nE,OACvF94B,IAAI0uB,GAAUA,GAAUq9G,GAMvBE,EAAgBzxI,KAAKgqI,SAASpgD,2BAC/BnU,UAAU07D,GAAyC,IAAhCA,EAAMpnD,uBAE1BwnD,EAAY,IAAwB,IAAnBE,IACjBD,EAAsBC,IAAiB,GAE3C,IAAK,MAAMrmD,KAAYxqB,EAAW8qB,UAC1B9qB,EAAW8qB,UAAUv9F,eAAei9F,KACpCxqB,EAAW8qB,UAAUN,GAAU9E,OAASkrD,EAAsBpmD,SAG/DmmD,EAAY,GACnB3wE,EAAW8qB,UAAU,GAAG3B,sBAAwBoc,EAAgB9vE,YAAck7G,EACxEnmI,KAAKmM,MAAM4uF,EAAgB9vE,WAAak7G,GACxC,EACN3wE,EAAW8qB,UAAU,GAAGpF,QAAS,IAEjC1lB,EAAW8qB,UAAU,GAAG3B,2BAAwBxpF,EAChDqgE,EAAW8qB,UAAU,GAAGpF,QAAS,GAKrC,OAFAroE,EAAO/Y,KAAM,GAAElF,8BAA8BuxI,iBAAyB3kI,KAAKwL,UAAUwoD,EAAW8qB,cAEzFolD,EAAYnlD,cAAc/qB,GAAYlmC,KAAK,KAM9C,GALAyrE,EAAgBtT,qBAAuB0+C,EACvCvxI,KAAKwf,aAAa0D,KAAK8V,IAAU7Q,2CAA4Cg+E,GAIzEnmG,KAAK8lC,QAAU9lC,KAAKsqF,gBACpB,OAAOtqF,KAAK0zE,mBAkBxBhtC,EAAwBx4C,UAAUiqF,uBAAyB,SAASmO,GAChEroE,EAAOhZ,MAAO,GAAEjF,+BAA+BsmF,KAC/C,MAAM2oB,EAAUjvG,KAAKupI,sBAAwBjjD,EAI7C,OAFAtmF,KAAKupI,oBAAsBjjD,EAEvBxmE,IAAQ2uD,mBACRzuE,KAAKgqI,SAAS7xD,uBAAuBmO,IAG9B,GAGJ2oB,GAYXvoE,EAAwBx4C,UAAUy9G,UAAY,SAASC,EAAOC,EAAW,IAAK6lC,EAAe,KACzF,IAAK1xI,KAAKqpI,YAAa,CACnB,GAAIrpI,KAAKghB,eAAeqkH,WAAY,CAChC,MAAMt/D,EAAY/lE,KAAKghB,eAAeqkH,aAAap0G,KAAK5iC,GAAKA,EAAEsjJ,MAE/D3xI,KAAKqpI,YAActjE,GAAaA,EAAU4rE,KAC1C3xI,KAAKqpI,aAAeprH,EAAO/Y,KAAQlF,KAAF,4CAGrC,IAAKA,KAAKqpI,YAAa,CACnB,MAAMuI,EAAkBx7I,MAAMO,KAAKqJ,KAAKgjC,YAAY5f,UAAU6N,KAAKzjC,GAAKA,EAAEq7C,gBAEtE7oC,KAAKghB,eAAe6wH,kBAAoBD,IACxC5xI,KAAKqpI,YAAcrpI,KAAKghB,eAAe6wH,iBAAiBD,EAAgBjsD,aAE5E3lF,KAAKqpI,aAAeprH,EAAO/Y,KAAQlF,KAAF,6DAGjCA,KAAKqpI,cACLrpI,KAAKqpI,YAAYyI,aAAe9xI,KAAK+xI,cAAcjkJ,KAAKkS,OAIhE,GAAIA,KAAKqpI,YAAa,CAClB,GAAIrpI,KAAKqpI,YAAY2I,WAOjB,YANAhyI,KAAKspI,gBAAgBpmI,KAAK,CACtB0oG,QACAC,WACA6lC,iBAMR1xI,KAAKqpI,YAAY4I,WAAWrmC,EAAOC,EAAU6lC,QAE7CzzH,EAAO9Y,KAAQnF,KAAF,6CAarB0mC,EAAwBx4C,UAAU6jJ,cAAgB,SAAS1qH,GAGvD,GAAIrnB,KAAKqpI,aAA8B,KAAfhiH,EAAM6qH,MAAelyI,KAAKspI,gBAAgB/yI,OAAQ,CACtE,MAAM,MAAEq1G,EAAF,SAASC,EAAT,aAAmB6lC,GAAiB1xI,KAAKspI,gBAAgB57G,QAE/D1tB,KAAKqpI,YAAY4I,WAAWrmC,EAAOC,EAAU6lC,KAQrDhrG,EAAwBx4C,UAAUmjF,qBAAuB,WACrD,MAAMtuB,EAAUt2B,IAAQ4E,eAExBpT,EAAO/Y,KAAM,GAAElF,qCAAqC+iD,KACpD/iD,KAAKuqI,eAAe0E,eAAelsF,IAOvCrc,EAAwBx4C,UAAUmoF,kBAAoB,WAClDp4D,EAAO/Y,KAAK,gCACZlF,KAAKuqI,eAAe4H,uBAQxBzrG,EAAwBx4C,UAAUuuB,MAAQ,WACtCzc,KAAKy+H,MAAM,QAGXz+H,KAAKisE,eAAex9B,IAChBqvF,IAAoC99H,KAAK2pI,mBAC7C3pI,KAAKisE,eAAex9B,IAChBqvF,IAAyC99H,KAAK0pI,uBAElD,IAAK,MAAM0I,KAAcpyI,KAAKwnC,aAAapkB,SACvC,IAAK,MAAMs5C,KAAe01E,EAAWhvH,SACjCpjB,KAAKstI,mBAAmB5wE,GAGhC18D,KAAKwnC,aAAaqO,QAElB71C,KAAKurF,cAAgB,GAErBvrF,KAAKqpI,YAAc,KACnBrpI,KAAKspI,gBAAkB,GAElBtpI,KAAKi6D,IAAItzB,sBAAsB3mC,OAChCie,EAAOjZ,MAAM,4CAEU,OAAvBhF,KAAKiqI,gBACL/9I,OAAOouC,cAAct6B,KAAKiqI,eAC1BjqI,KAAKiqI,cAAgB,MAEzBhsH,EAAO/Y,KAAM,WAAUlF,WACvBA,KAAKghB,eAAevE,SAGxBiqB,EAAwBx4C,UAAU6nF,aAAe,SAAShwD,GACtD,OAAO/lB,KAAKqyI,sBAAqB,EAAoBtsH,IAGzD2gB,EAAwBx4C,UAAU2jF,YAAc,SAAS9rD,GACrD,OAAO/lB,KAAKqyI,sBAAqB,EAAkBtsH,IAcvD2gB,EAAwBx4C,UAAUmkJ,qBAAuB,SACjDC,EACAvsH,GACJ,MAAM0oF,EAAU6jC,EAAU,QAAU,SAEpCtyI,KAAKy+H,MAAO,SAAQhwB,EAAW7hG,KAAKwL,UAAU2N,EAAa,KAAM,MAEjE,MAAMwsH,EAAgB,CAACC,EAAWC,EAAWC,KACzC,IACI1yI,KAAKy+H,MACA,SAAQhwB,2BAAkCg9B,EAAQ+G,IAEnD1yH,IAAQ01D,cAGHx1E,KAAK4rI,mBAAmBrtG,MACrBv+B,KAAKuqI,eAAeoI,wBACxB3yI,KAAKqxE,uBAITmhE,EAAY,IAAI78D,sBAAsB,CAClC1uE,KAAMurI,EAAUvrI,KAChB+qB,IAAKhyB,KAAKuqI,eAAeqI,gCACrBJ,EAAUxgH,OAGlBhyB,KAAKy+H,MACA,SAAQhwB,wEAETg9B,EAAQ+G,KAMZxyI,KAAKsqF,iBAAmBxqE,IAAQ0qE,gCAC3BxqF,KAAKmH,QAAQimE,uBACdptE,KAAKmH,QAAQimE,uBAAyBuhE,EAAe3uI,SAEzDwyI,EAAYxyI,KAAK0qF,UAAUmoD,sBAAsBL,GACjDxyI,KAAKy+H,MACA,SAAQhwB,EACH,uCACNg9B,EAAQ+G,MAGXxyI,KAAKmH,QAAQ4yC,YAAcj6B,IAAQ0qE,+BAEpCgoD,EAAY,IAAI78D,sBAAsB,CAClC1uE,KAAMurI,EAAUvrI,KAChB+qB,IAAKhyB,KAAK2qI,YAAYmI,eAAeN,EAAUxgH,OAGnDhyB,KAAKy+H,MACA,SAAQhwB,EACF,0CACPg9B,EAAQ+G,KAGhB,MAAMhiG,EAj5ClB,SAAwBnhB,GAKpB,MAAMmhB,EAAU,IAAIjxB,IAMdwzH,EAAY,IAAIxzH,IAEtB,GAAoB,iBAAT8P,GAA8B,OAATA,GACL,iBAAbA,EAAK2C,IAGf,OAFA/T,EAAO9Y,KAAK,mDAELqrC,EAGX,MAAMv4B,EAAUmrC,IAAUlrC,MAAMmX,EAAK2C,KAErC,IAAK57B,MAAMC,QAAQ4hB,EAAQwV,OACvB,OAAO+iB,EAGX,IAAK,MAAM/e,KAASxZ,EAAQwV,MACxB,GAAKr3B,MAAMC,QAAQo7B,EAAMjB,OAAzB,CAIA,GAAIp6B,MAAMC,QAAQo7B,EAAMX,YACpB,IAAK,MAAMI,KAASO,EAAMX,WACtB,QAA+B,IAApBI,EAAMC,gBACa,IAAhBD,EAAMV,MAAuB,CAEvC,MAAMwiH,EACA9hH,EAAMV,MAAMztB,MAAM,KAAKyC,IACrBssB,GAAWxZ,SAASwZ,EAAS,KAC/B8vB,EAAcoxF,EAAW,GAI/B9hH,EAAMV,MAAQwiH,EAGTD,EAAUhvH,IAAI69B,IACfmxF,EAAU3xH,IAAIwgC,EAAa,IAE/BmxF,EAAU5lJ,IAAIy0D,GAAa1+C,KAAKguB,GAI5C,IAAK,MAAMlM,KAAQyM,EAAMjB,MAAO,CAC5B,GAAuB,SAAnBxL,EAAK1nB,UACL,SAGJ,MAAMwkD,EAAO98B,EAAKz3B,MAClB,IAAIkjC,EAAW+f,EAAQrjD,IAAI20D,GAEtBrxB,IACDA,EAAW,CACPD,MAAO,GACPgiB,OAAQ,GACRsP,QAEJtR,EAAQpvB,IAAI0gC,EAAMrxB,IAGtB,MAAM0wB,EAAan8B,EAAK9d,GAIxB,GAFAupB,EAASD,MAAMttB,KAAKi+C,GAEhB4xF,EAAUhvH,IAAIo9B,GAAa,CAC3B,MAAMrwB,EAAaiiH,EAAU5lJ,IAAIg0D,GAEjC,IAAK,MAAMjwB,KAASJ,EAChBL,EAAS+hB,OAAOtvC,KAAKguB,KAMrC,OAAOsf,EA6zCiByiG,CAAeT,GAE/Bv0H,EAAOhZ,MAAM,wBAAyBurC,GACtCxwC,KAAKkzI,sBAAsB1iG,GAE3BiiG,EAAUD,GACZ,MAAOn5I,GACL2G,KAAKy+H,MAAO,SAAQhwB,WAAkBp1G,GACtC2G,KAAKy+H,MAAO,SAAQhwB,WAAkBg9B,EAAQ+G,IAC9Cv0H,EAAOjZ,MAAO,SAAQypG,WAAkBp1G,EAAGoyI,EAAQ+G,IAEnDE,EAASr5I,KAIX85I,EAAgB,CAAChjI,EAAKuiI,KACxB1yI,KAAKy+H,MAAO,SAAQhwB,aAAoBt+F,GACxC,MAAMu1B,EACA4sG,EACIt5G,IAAUrR,oBACVqR,IAAUtR,qBAEpB1nB,KAAKwf,aAAa0D,KAAKwiB,EAAWv1B,EAAKnQ,MAEvC0yI,EAASviI,IAGb,OAAO,IAAI6sB,QAAQ,CAACC,EAASC,KACzB,IAAIk2G,EAGAA,EADAd,EACYtyI,KAAKghB,eAAe6wD,YAAY9rD,GAEhC/lB,KAAKghB,eAAe+0D,aAAahwD,GAGjDqtH,EACK14G,KACG1I,GAAOugH,EAAcvgH,EAAKiL,EAASC,GACnCl4B,GAASmuI,EAAcnuI,EAAOk4B,OAS9CwJ,EAAwBx4C,UAAUs9F,oBAAsB,SAASnqC,GAC7D,OAAIA,GAAWA,EAAQ7O,QAAU6O,EAAQ7O,OAAOj8C,OACrC8qD,EAAQ7O,OAAO,GAAGhiB,MAAM,GACxB6wB,GAAWA,EAAQ7wB,OAAS6wB,EAAQ7wB,MAAMj6B,OAC1C8qD,EAAQ7wB,MAAM,GAGlB,MAUXkW,EAAwBx4C,UAAUglJ,sBAAwB,SAAS1iG,GAC/D,IAAK,MAAMlS,KAASt+B,KAAKgjC,YAAY5f,SAAU,CAC3C,MAAMiwH,EAAY/0G,EAAMy1D,WAExB,GAAIvjD,EAAQzsB,IAAIsvH,GAAY,CACxB,MAAMtwF,EAAUvS,EAAQrjD,IAAIkmJ,GAE5B,IAAKtwF,EAGD,YAFA9kC,EAAOjZ,MAAO,sBAAqBquI,QAAgBrzI,QAIvD,MAAM8iD,EAAU9iD,KAAKsrF,WAAWn+F,IAAImxC,EAAMuE,OACpCywG,EAAatzI,KAAKwrF,oBAAoBzoC,GACtCwwF,EAAavzI,KAAKwrF,oBAAoB1oC,GAGxCwwF,IAAeC,GACI,OAAfA,EACAt1H,EAAO/Y,KACF,8BAA6Bo5B,QAAYt+B,OAC1C+iD,GAEJ9kC,EAAOjZ,MACF,wBAAuBs5B,KAAS+0G,QAAgBrzI,cACtC+iD,GAEnB/iD,KAAKsrF,WAAWlqE,IAAIkd,EAAMuE,MAAOkgB,GAEjC/iD,KAAKwf,aAAa0D,KACd8V,IAAU9Q,yBAA0BoW,EAAOg1G,IAE/Cr1H,EAAOhZ,MACF,kBAAiBquI,UAAmBh1G,KAAS+0G,2BACjBrzI,WAE7Bs+B,EAAMqsC,gBAAmBrsC,EAAMggC,WAIvCrgD,EAAO9Y,KAAM,uCAAsCm5B,WAAe+0G,QAAgBrzI,UAK9F0mC,EAAwBx4C,UAAU6iF,gBAAkB,SAAStiD,GAQzD,OAPAzuB,KAAKy+H,MAAM,kBAAmB7xH,KAAKwL,UAAU,CACzCqW,UAAWA,EAAUA,UACrByhD,OAAQzhD,EAAUyhD,OAClBT,cAAehhD,EAAUghD,cACzB3P,iBAAkBrxC,EAAUqxC,kBAC7B,KAAM,MAEF9/D,KAAKghB,eAAe+vD,gBAAgBtiD,IAY/CiY,EAAwBx4C,UAAUqiH,SAAW,SAAS/kG,EAAUmC,GAIxDmS,IAAQyV,YAAczV,IAAQsQ,aAAetQ,IAAQC,gBAErD/f,KAAKghB,eAAeuvF,WACf71E,KAAKlvB,GACL4xB,MAAMzvB,GAAW,UAMtB3N,KAAKghB,eAAeuvF,SAAS/kG,IAWrCk7B,EAAwBx4C,UAAU8gJ,0BAA4B,SAAS1wG,GACnE,MAAMuE,EAAQvE,EAAMuE,MACpB,IAAIpS,EAAWzwB,KAAKguI,SAASnrG,GAS7B,GAPIpS,GACAxS,EAAOjZ,MAAO,4CAA2C69B,GAMzD7iC,KAAKsqF,mBACAtqF,KAAKmH,QAAQimE,uBACdptE,KAAKmH,QAAQimE,uBAAyBuhE,EAAe3uI,OAAS,CAClEywB,EAAW,CACPD,MAAO,GACPgiB,OAAQ,IAEZ,IAAK,IAAIlmD,EAAI,EAAGA,EAAIm9F,IAAelzF,OAAQjK,IACvCmkC,EAASD,MAAMttB,KAAKupB,IAAQ4E,gBAEhCZ,EAAS+hB,OAAOtvC,KAAK,CACjBstB,MAAOC,EAASD,MAAM0J,QACtB/I,UAAW,aAGfV,EAAW,CACPD,MAAO,CAAE/D,IAAQ4E,gBACjBmhB,OAAQ,IAGhB,IAAKxyC,KAAKmH,QAAQ4yC,WAAY,CAK1B,MAAMy5F,EAAe/iH,EAASD,MAAMj6B,OAEpC,IAAK,IAAIjK,EAAI,EAAGA,EAAIknJ,IAAgBlnJ,EAAG,CACnC,MAAMykC,EAAcN,EAASD,MAAMlkC,GAC7B8iJ,EAAU3iH,IAAQ4E,eAExBZ,EAASD,MAAMttB,KAAKksI,GACpB3+G,EAAS+hB,OAAOtvC,KAAK,CACjBstB,MAAO,CAAEO,EAAaq+G,GACtBj+G,UAAW,SAOvB,OAHAV,EAASqxB,KAAOxjB,EAAMy1D,WACtB/zF,KAAKsrF,WAAWlqE,IAAIyhB,EAAOpS,GAEpBA,GAQXiW,EAAwBx4C,UAAUwI,SAAW,WACzC,MAAQ,OAAMsJ,KAAKkH,UAAUlH,KAAK8lC,Y,mFCjuFtC,wEAOA,MAAM7nB,EAASF,oBAAUM,GAezB,SAASo1H,EAA0BhiH,EAAOiiH,EAAiBtE,GACvDnxH,EAAOhZ,MACF,+BAA8BmqI,EAC5B,iCAAgCsE,EAAgBxsI,IACvD,MAAM6pB,EAAc2iH,EAAgBxsI,GAC9BysI,EAAkBD,EAAgB5xF,KAClC8xF,EAAmBF,EAAgBpvE,MAEnCuvE,EAAkBpiH,EAAM0wB,WAAWpxB,GAErC8iH,IAAoBzE,GAKpByE,IACA51H,EAAOhZ,MACA8rB,EAAF,sCACI8iH,EAAF,mCAIPpiH,EAAM6vB,WAAWuyF,GAEjB51H,EAAOhZ,MAAO,+BAA8B4uI,GAC5C51H,EAAOhZ,MAAMwsB,EAAMgxB,kBAEnBhxB,EAAMixB,qBAAqBmxF,IAE/BpiH,EAAM+vB,iBAAiB,CACnBt6C,GAAIkoI,EACJ9xI,UAAW,QACX/P,MAAOqmJ,IAEXniH,EAAM+vB,iBAAiB,CACnBt6C,GAAIkoI,EACJ9xI,UAAW,OACX/P,MAAOomJ,IAEXliH,EAAMuxB,aAAa,CACf7xB,UAAW,MACXX,MAAQ,GAAEO,KAAeq+G,OA9BzBnxH,EAAOhZ,MAAO,GAAEmqI,iCAAuCr+G,KA0ChD,MAAM65G,EAIjB30I,cAKI+J,KAAK8zI,sBAAwB,IAAIv0H,IAQrCw0H,iBACI/zI,KAAK8zI,sBAAsBj+F,QAS/Bq5F,aAAa8E,GACT/1H,EAAOhZ,MAAM,yBAA0B+uI,GACvCh0I,KAAK8zI,sBAAwBE,EAUjClB,eAAe/C,GACX,MAAMkE,EAAiB,IAAIhxF,IAAiB8sF,GACtCz/G,EAAa2jH,EAAe5wF,YAAY,SAE9C,OAAK/yB,EAMEtwB,KAAKk0I,gBAAgB5jH,GACtB2jH,EAAe1wF,WAAawsF,GAN9B9xH,EAAOhZ,MAAO,sCAAqC8qI,GAE5CA,GAcfmE,gBAAgB5jH,GACZ,GAA6B,aAAzBA,EAAWX,UAGX,OAFA1R,EAAOhZ,MAAM,wDAEN,EAEX,GAAIqrB,EAAWyxB,eAAiB,EAG5B,OAFA9jC,EAAOhZ,MAAM,sDAEN,EAEXgZ,EAAOhZ,MAAM,yBAA0BjF,KAAK8zI,uBAC5C,MAAMK,EAAoB7jH,EAAW+xB,uBAErCpkC,EAAOhZ,MAAM,8BAA+BkvI,EACxC,qCACJ,IAAK,MAAMnvH,KAAQmvH,EAAmB,CAClC,MAAMryF,EAAOxxB,EAAW4wB,iBAAiBl8B,EAAM,QACzCs/C,EAAQh0C,EAAW4wB,iBAAiBl8B,EAAM,SAChD,IAAIovH,EAAuBp0I,KAAK8zI,sBAAsB3mJ,IAAI63B,GAE1D,GAAIovH,EACAn2H,EAAOhZ,MAEA,qDAAa+f,MAASovH,SAC1B,CACHn2H,EAAOhZ,MACF,oDAAmD+f,GAIxD,MAAMqvH,EAA8B/jH,EAAW6xB,WAAWn9B,GAEtDqvH,GACAp2H,EAAOhZ,MACF,cAAaovI,qDAETrvH,GACTovH,EAAuBC,IAEvBD,EAAuB3nH,IAAQ4E,eAC/BpT,EAAOhZ,MAAO,sBAAqBmvI,cACRpvH,IAE/B/G,EAAOhZ,MAAO,oBAAmBmvI,oBACApvH,GACjChlB,KAAK8zI,sBAAsB1yH,IAAI4D,EAAMovH,GAEzCX,EACInjH,EACA,CACIppB,GAAI8d,EACJs/C,QACAxiB,QAEJsyF,GAKR,OAAO,EAQXE,SAASvE,GACL,MAAMkE,EAAiB,IAAIhxF,IAAiB8sF,GACtCz/G,EAAa2jH,EAAe5wF,YAAY,SAE9C,IAAK/yB,EAGD,OAFArS,EAAOhZ,MAAO,sCAAqC8qI,GAE5CA,EAEX,GAA6B,aAAzBz/G,EAAWX,UAGX,OAFA1R,EAAOhZ,MAAM,uDAEN8qI,EAEX,GAAIz/G,EAAWyxB,eAAiB,EAG5B,OAFA9jC,EAAOhZ,MAAM,qDAEN8qI,EAEX,IAAKz/G,EAAW0xB,wBAIZ,OAHA/jC,EAAOhZ,MAAM,0DAGN8qI,EAEX,MAAM7B,EAAY59G,EAAWoxB,WAAW,OAIxCpxB,EAAWsyB,wBAAwB,OAGnC,IAAK,MAAM5xB,KAAYk9G,EAAW,CAC9B,MAAMkB,EAAUruF,YAAmB/vB,GAEnCV,EAAWgxB,WAAW8tF,GAG1B,OAAO6E,EAAe1wF,e,wECjP9B,iEAUA,MAAMtlC,EAASF,oBAAUM,GASV,MAAMmsH,EAOjBv0I,YAAY++E,GACRh1E,KAAKmyI,sBACLnyI,KAAKg1E,UAAYA,EAQrBm9D,sBACInyI,KAAKu0I,kBAAoB,KACzBv0I,KAAKw0I,gBAAiB,EAU1BvF,eAAel+G,GACX,GAA2B,iBAAhBA,EACP,MAAM,IAAI15B,MAAM,kCAEpB2I,KAAKu0I,kBAAoBxjH,EAO7B4hH,uBACI,OAAOh6G,QAAQ34B,KAAKu0I,mBAcxB3B,gCAAgC7C,GAC5B,MAAMkE,EAAiB,IAAIhxF,IAAiB8sF,GACtCz/G,EAAa2jH,EAAe5wF,YAAY,SAE9C,IAAK/yB,EAKD,OAJArS,EAAOhZ,MACAjF,KAAKg1E,UAAP,uCACQ+6D,GAENA,EAGX,GAA6B,aAAzBz/G,EAAWX,UAGP3vB,KAAKu0I,mBAAqBv0I,KAAKw0I,eAC/BlkH,EAAWkxB,iBAAiB,CACxBt6C,GAAIlH,KAAKu0I,kBACTj3I,UAAW,QACX/P,MAAQ,YAAWyS,KAAKu0I,oBAG5Bt2H,EAAO/Y,KACAlF,KAAKg1E,UAAP,oDAGN,CACH,MAAMy/D,EAAiBnkH,EAAW2xB,sBAElC,IAAKwyF,EAKD,OAJAx2H,EAAO/Y,KACAlF,KAAKg1E,UAAP,oDAGE+6D,EAEX,GAAI/vI,KAAKu0I,kBAAmB,CACxBt2H,EAAO/Y,KACAlF,KAAKg1E,UAAP,sCACQy/D,EAAF,gBACEz0I,KAAKu0I,mBAClBjkH,EAAWuyB,YAAY4xF,EAAgBz0I,KAAKu0I,mBAC5C,IAAK,MAAMrjH,KAASZ,EAAWQ,WAC3B,GAAwB,QAApBI,EAAMC,UAAqB,CAC3B,MAAMJ,EAAc+vB,YAAiB5vB,GAC/Bk+G,EAAUruF,YAAmB7vB,GAG/BH,IAAgB0jH,IAChBvjH,EAAMV,MACC,GAAExwB,KAAKu0I,qBAAqBnF,WAK/CpvI,KAAKu0I,kBAAoBE,EACzBx2H,EAAO/Y,KACAlF,KAAKg1E,UAAP,wCACQh1E,KAAKu0I,mBAGtBv0I,KAAKw0I,gBAAiB,EAG1B,OAAOP,EAAe1wF,e,2EC1I9B,gFAMA,MAAMtlC,EAASb,EAAQ,GAAqBW,UAAUM,GAEhD2a,EAAY5b,EAAQ,GAE1B,IAAIs3H,GAA2B,EAC3BC,GAA2B,EAM/B,MAAMC,EAAkB,CACpB,QAAS,UAAW,iBAAkB,UAAW,QAAS,QAAS,aAAc,iBAAkB,YACnG,QAAS,OAAQ,UAAW,aAAc,UAAW,UAAW,WAQrD,MAAM5H,UAAyBroD,IAmB1C1uF,YACQgkE,EACA13C,EACAoqH,EACAprH,EACA+c,EACA3S,EACA6S,EACAxZ,EACAF,EACAghB,GAaJ,GAZAzL,MACI9X,EACAhB,EACA+c,EACA,OAGA3S,EACA6S,GACJx+B,KAAKi6D,IAAMA,EAGS,iBAATj1C,EACP,MAAM,IAAInuB,UAAW,QAAOmuB,qBAEhChlB,KAAKglB,KAAOA,EACZhlB,KAAK2sI,gBAAkBA,EACvB3sI,KAAK8kB,MAAQA,EACb9kB,KAAK8lC,MAAQA,EAEb7nB,EAAOhZ,MAAO,2BAA0BjF,MAKxCA,KAAK60I,aAAe/vH,EAGhB9kB,KAAKi6D,KAAOj6D,KAAKs+B,OACjBt+B,KAAK80I,qBAET90I,KAAK+0I,mBAAqB,GAC1BH,EAAgBxlI,QAAQiY,IACpBrnB,KAAK+0I,mBAAmB1tH,GAASrnB,KAAKg1I,uBAAuBlnJ,KAAKkS,KAAMqnB,KAUhFytH,qBACI90I,KAAKs+B,MAAMjC,iBAAiB,OAAQ,IAAMr8B,KAAKi1I,gBAC/Cj1I,KAAKs+B,MAAMjC,iBAAiB,SAAU,IAAMr8B,KAAKk1I,kBACjDl1I,KAAKs+B,MAAMjC,iBAAiB,QAAS,KACjCpe,EAAOhZ,MAAO,mBAAkBkD,KAAKgM,WAAWnU,UAWxDi1I,eACIh3H,EAAOhZ,MAAO,kBAAiBkD,KAAKgM,WAAWnU,QAE/CA,KAAKi6D,IAAIz6C,aAAa0D,KAAK8V,EAAU1Q,kBAAmBtoB,MAU5Dk1I,iBACIj3H,EAAOhZ,MAAO,oBAAmBkD,KAAKgM,WAAWnU,QAEjDA,KAAKi6D,IAAIz6C,aAAa0D,KAAK8V,EAAUxQ,oBAAqBxoB,MAO9D8rI,QAAQv+I,GACAyS,KAAK8kB,QAAUv3B,IAIfA,IACAyS,KAAK60I,cAAe,GAIpB70I,KAAKuhB,SACLvhB,KAAKuhB,OAAOuD,MAAQv3B,GAGxByS,KAAK8kB,MAAQv3B,EACbyS,KAAKkjB,KAAK05C,qBAAqC58D,OAQnDs+D,UACI,OAAOt+D,KAAK8kB,MAShB63C,mBACI,OAAO38D,KAAK2sI,gBAMhBpnH,UACI,OAAO,EASXgoF,UACI,OAAOvtG,KAAKglB,KAQhB6mH,cAAc5kI,GACNjH,KAAKw+B,YAAcv3B,IAGvBjH,KAAKw+B,UAAYv3B,EACjBjH,KAAKkjB,KAAK05C,0BAA0C31D,IAMxDkuI,gBACI,MAAMluI,EAAOjH,KAAK2qE,eAAiB,QAAU,QAEvCx2D,EAAMjoB,OAAOsuD,YAAYrmC,MAE/BpP,QAAQH,IAAK,iBAAgBqC,OAAWkN,GACxCnU,KAAKuiB,WAAWq7E,qBAAwB32F,EAAF,WAAmBkN,EAKzD,MAAMihI,EAAWlpJ,OAAO4sD,gBAAgB,2BAClCu8F,EAASnpJ,OAAO4sD,gBAAgB,yBAChCw8F,EACC57H,MAAM27H,IAAY37H,MAAM07H,GAAgC,EAApBC,EAASD,EAI9CG,EAAOphI,GACNnU,KAAKuiB,WAAWq7E,qBAAqB,oBAClC59F,KAAKuiB,WAAWq7E,qBAAqB,eACzC03C,EAENt1I,KAAKuiB,WAAWq7E,qBAAwB32F,EAAF,SAAiBsuI,EACvDxwI,QAAQH,IAAK,eAAcqC,OAAWsuI,GAEtCn2H,IAAWoI,cAAc6E,YACrB,CACI,WAAcplB,EACd6d,MAAO9kB,KAAK60I,aACZtnJ,MAAOgoJ,KAYnBrvD,mBAAmBF,GACV0uD,GAA4B10I,KAAK6oC,gBAC9B8rG,GAA4B30I,KAAK2qE,iBAIrC3qE,KAAK6oC,iBACL6rG,GAA2B,GAE3B10I,KAAK2qE,iBACLgqE,GAA2B,GAG/B3uD,EAAU3pD,iBAAiB,UAAWr8B,KAAKm1I,cAAcrnJ,KAAKkS,QAUlEimF,eAAeD,GACX/nE,EAAOhZ,MAAO,2CAA0CjF,MAExD40I,EAAgBxlI,QAAQiY,IACpB2+D,EAAU3pD,iBAAiBhV,EAAOrnB,KAAK+0I,mBAAmB1tH,MAWlE++D,eAAeJ,GACX/nE,EAAOhZ,MAAO,6CAA4CjF,MAE1D40I,EAAgBxlI,QAAQiY,IACpB2+D,EAAU/2C,oBAAoB5nB,EAAOrnB,KAAK+0I,mBAAmB1tH,MASrE2tH,uBAAuB/tI,GACnBgX,EAAOhZ,MAAO,GAAEgC,sDAAyDjH,QAQ7Ew1I,aACI,MAAM,QAAElsE,EAAF,MAAWxkD,EAAX,WAAkB9L,GAAehZ,KAAKs+B,MAE5C,MAAQ,eAActlB,aAAsB8L,eAAmBwkD,IAOnE5yE,WACI,MAAQ,uBAAsBsJ,KAAK28D,6BAA6B38D,KAAKsnC,oBACjEtnC,KAAKutG,mBAAmBvtG,KAAK8lC,kBAAkB9lC,KAAKw1I,oB,4EClUhE,wEAOA,MAAMv3H,EAASF,oBAAUM,GAUV,MAAMqsH,EAOjBz0I,YAAYqtB,GACRtjB,KAAKsjB,IAAMA,EAkBfmyH,+BAA+BnH,GAE3B,MAAMoH,EAAc11I,KAAKsjB,IAAI4jB,eAAe3I,KAE5C,IAAKm3G,EAAYn/I,OACb,OAAO,EACuB,IAAvBm/I,EAAYn/I,QACnB0nB,EAAOjZ,MACAhF,KAAKsjB,IAAP,kEACoCoyH,GAG7C,MAAMplH,EAAag+G,EAAYjrF,YAAY,SAE3C,IAAK/yB,EAKD,OAJArS,EAAOhZ,MACAjF,KAAKsjB,IAAP,4DAGE,EAGX,IAAI67D,GAAW,EAEf,IAAK,MAAM5mB,KAAcm9E,EAAa,CAClC,MAAM5wH,EAAQyzC,EAAW+F,UACnBz9B,EAAc03B,EAAWktB,oBAKzBkwD,EACA90G,GAAe7gC,KAAKsjB,IAAIosH,kBAAkB7uG,GAC1C+0G,EAAgB9wH,IAAU6wH,EAQhC,GANA13H,EAAOhZ,MACF,GAAEjF,KAAKsjB,OAAOi1C,YACXzzC,4BACA6wH,4BACAC,MAEHA,EACD,SAIJ,MAAMC,EACA71I,KAAKsjB,IAAIgnE,gBACLtqF,KAAKsjB,IAAIonE,UAAUorD,UACnB,CAAE91I,KAAKsjB,IAAIinH,eAAegK,mBAEpC,IAAKsB,EAAct/I,OAAQ,CACvB0nB,EAAOjZ,MACF,wBAAuBuzD,QAAiBv4D,KAAKsjB,OAElD,SAGJ67D,GAAW,EAMX7uD,EAAWX,UAAY,WAGvB,MAMMomH,EAAgB,YANFF,EAAc,GAQlC,IAAK,MAAMt0F,KAAWs0F,EAElBvlH,EAAWgxB,WAAWC,GAGtBtjC,EAAOhZ,MACF,GAAEjF,KAAKsjB,6BAA6Bi+B,SACjCgX,KACRjoC,EAAWkxB,iBAAiB,CACxBt6C,GAAIq6C,EACJjkD,UAAW,QACX/P,MAAOwoJ,IAEXzlH,EAAWkxB,iBAAiB,CACxBt6C,GAAIq6C,EACJjkD,UAAW,OACX/P,MAAOgrE,EAAWw7B,aAG1B,GAAI8hD,EAAct/I,OAAS,EAAG,CAC1B,MAAM26B,EAAQ,CACVV,MAAOqlH,EAAc1yI,KAAK,KAC1BguB,UAAW,OAGVb,EAAWmxB,UAAUvwB,EAAMC,UAAWD,EAAMV,SAE7CvS,EAAOhZ,MACF,GAAEjF,KAAKsjB,+BAA+Bi1C,IACvCrnC,GACJZ,EAAW0yB,aAAa9xB,IAQ3BlxB,KAAKsjB,IAAInc,QAAQ4yC,YAClB/5C,KAAKsjB,IAAIqnH,YAAYuJ,gBAAgB5jH,GAI7C,OAAO6uD,EAaX62D,2BAA2B10E,GACvB,MAAM20E,EAAOj2I,KAAKsjB,IAAIpc,GAEtB,IAAK,MAAMyqB,KAAY2vC,EAAa9wC,MAChC,OAAQmB,EAASr0B,WACjB,IAAK,QACL,IAAK,QACL,IAAK,UACDq0B,EAASpkC,MAAQokC,EAASpkC,OAAU,GAAEokC,EAASpkC,SAAS0oJ,IACxD,MACJ,IAAK,OACD,GAAItkH,EAASpkC,MAAO,CAChB,MAAM2oJ,EAAoBvkH,EAASpkC,MAAMwV,MAAM,KAE/C,GAAiC,IAA7BmzI,EAAkB3/I,OAAc,CAChC,MAAMiyC,EAAW0tG,EAAkB,GAC7BxvD,EAAUwvD,EAAkB,GAElCvkH,EAASpkC,MACF,GAAEi7C,KAAYytG,KAAQvvD,KAAWuvD,SAExCh4H,EAAO9Y,KACH,sDACkCwsB,EAASpkC,SAiBnE8gJ,mCAAmCh/G,GAC/B,IAAKA,EACD,MAAM,IAAIh4B,MAAM,mCAGpB,MAAMi3I,EAAc,IAAIrrF,IAAiB5zB,EAAK2C,KAE9C,OAAIhyB,KAAKy1I,+BAA+BnH,GAC7B,IAAI34D,sBAAsB,CAC7B1uE,KAAMooB,EAAKpoB,KACX+qB,IAAKs8G,EAAY/qF,aAIlBl0B,EAkBXq/G,2BAA2ByH,GAEvB,IAAKA,IAAgBA,EAAYnkH,MAAQmkH,EAAYlvI,KACjD,OAAOkvI,EAGX,MAAM7H,EAAc,IAAIrrF,IAAiBkzF,EAAYnkH,KAC/CokH,EAAa9H,EAAYjrF,YAAY,SAEvC+yF,GACAp2I,KAAKg2I,2BAA2BI,GAGpC,MAAM9lH,EAAag+G,EAAYjrF,YAAY,SAM3C,OAJI/yB,GACAtwB,KAAKg2I,2BAA2B1lH,GAG7B,IAAIqlD,sBAAsB,CAC7B1uE,KAAMkvI,EAAYlvI,KAClB+qB,IAAKs8G,EAAY/qF,iB,0EC3Q7B,+EAMA,MAAMjtB,EAAclZ,EAAQ,IACtBqhB,EAAYrhB,EAAQ,IACpBu9B,EAAav9B,EAAQ,GAErBa,EAASF,oBAAUM,GAWnBg4H,EAAoB,CACtB,CAAE9/G,MAAO,KACLrC,OAAQ,KACRoiH,OAAQ,EACRliH,IAAK,IACL+W,OAAQ,IACR1wB,IAAK,KACT,CAAE8b,MAAO,KACLrC,OAAQ,IACRoiH,OAAQ,EACRliH,IAAK,KACL+W,OAAQ,KACR1wB,IAAK,KACT,CAAE8b,MAAO,IACLrC,OAAQ,IACRoiH,OAAQ,EACRliH,IAAK,IACL+W,OAAQ,IACR1wB,IAAK,KACT,CAAE8b,MAAO,IACLrC,OAAQ,IACRoiH,OAAQ,EACRliH,IAAK,IACL+W,OAAQ,IACR1wB,IAAK,KACT,CAAE8b,MAAO,IACLrC,OAAQ,IACRoiH,OAAQ,EACRliH,IAAK,IACL+W,OAAQ,IACR1wB,IAAK,KACT,CAAE8b,MAAO,IACLrC,OAAQ,IACRoiH,OAAQ,EACRliH,IAAK,IACL+W,OAAQ,IACR1wB,IAAK,KAab,IAAIs4G,EAAe,IAQfwjB,EAAkB,KAStB,SAASC,EAAU9rD,EAAWr0D,EAAYogH,GAItC,GAAIA,EAAmB,KACnB,OAAO,EAGX,IAAItrG,EAAS,EACTjX,EAAS9oB,KAAKqP,IAAI4b,EAAWnC,OAAQmC,EAAWE,OAEpD,GAAIm0D,EAAW,CAEX,IAAIgsD,EAAkBL,EAAkBplH,KAAKqqB,GAAKA,EAAEpnB,QAAUA,GAE9D,GAAIwiH,EAGA,IAAKxiH,EAASwiH,EAAgBxiH,OAAQA,GAAU,IAAKA,GAAU,EAAG,CAC9D,MAAMyiH,EAAeziH,EAIrB,GAFAwiH,EACML,EAAkBplH,KAAKqqB,GAAKA,EAAEpnB,SAAWyiH,IAC3CD,EAGA,MAFAvrG,GAAUurG,EAAgBvrG,YAMnC,CAGH,MAAMyrG,EAASvgH,EAAWE,MAAQF,EAAWnC,OAGzCiX,EADAyrG,GAAU,MACD,IACFA,GAAU,OACR,KACFA,GAAU,OACR,IAEA,KAMjB,OAAOxrI,KAAKqP,IAAI0wB,EASpB,SAAgBsrG,GACZ,GAAIA,EAAmB,IACnB,OAAOl9H,OAAOqmC,iBAMlB,OAAOmzE,EAAe3nH,KAAKsP,IAAI,KAAM+7H,EAAmB,KAjBhCI,CAAOzrI,KAAKgpB,IAAI,EAAGqiH,EAAmB,OA0BnD,MAAMz3C,EAOjB/oG,YAAYssB,EAAY/C,EAAcrY,GAClCnH,KAAKwf,aAAeA,EAKpBxf,KAAKumH,YAAchkG,EAKnBviB,KAAK82I,YAAc,CACf/3C,kBAAmB,IACnBg4C,YAAQx2I,GAMZP,KAAKg3I,8BAAgC,EAMrCh3I,KAAKi3I,aAAe,GAMpBj3I,KAAKk3I,mBAAqB,EAM1Bl3I,KAAKm3I,mBAAqB,EAO1Bn3I,KAAKo3I,uBAAyB,EAG1BjwI,EAAQqsB,OAAOu/F,cAAgB5rH,EAAQqsB,OAAOu/F,aAAe,IAC7DA,EAAe5rH,EAAQqsB,OAAOu/F,cAKlCxwG,EAAWZ,GACP01H,yBACA,KACIr3I,KAAKs3I,8BAA8B,GACnCt3I,KAAKwf,aAAa0D,KACdq0H,sBACAv3I,KAAK82I,aACT92I,KAAKw3I,yBAGbj1H,EAAW48B,KAAKvb,YACZ+W,EAAW3nD,6BACX,CAACq3G,EAAe7sC,KACP6sC,EAAcvkE,OAAsB,cAAb03B,IACxBx9D,KAAKk3I,kBAAoBhrJ,OAAOsuD,YAAYrmC,SAMxDoO,EAAWZ,GACP01H,4BACA,CAACh7E,EAAa5pC,KAnOC,UAoOPA,EAAQxrB,MACRjH,KAAKy3I,mBACDp7E,EAAYG,QAAS/pC,EAAQrP,UAa7Cb,EAAW4B,WAAWlC,2BAClBjiB,KAAK03I,kBAAkB5pJ,KAAKkS,OAGhCuiB,EAAWZ,GACP01H,qBACA/4G,IACQA,EAAMqsC,iBACFrsC,EAAMggC,UACNt+D,KAAKm3I,mBAAqB,EAE1Bn3I,KAAK23I,4BAIrBp1H,EAAWZ,GACP01H,cACA/4G,IACQA,EAAMqsC,iBAAmBrsC,EAAMggC,WAC/Bt+D,KAAK23I,2BAGjBp1H,EAAW03C,IAAIt4C,GACXqX,6CACAsF,IACIt+B,KAAK82I,YAAYjkD,qBAAuBv0D,EAAMu0D,uBAGtDtwE,EAAWZ,GACP01H,wBACAvsC,IACI9qG,KAAK82I,YAAYhsC,aAAeA,IAGxCvoF,EAAWZ,GACP01H,qBACA/vH,IACItnB,KAAK82I,YAAYc,YACXr+H,QAAQ+N,GAAc,IAAI,mBAS5CqwH,yBACQ33I,KAAKm3I,kBAAoB,IACzBn3I,KAAKm3I,kBAAoBjrJ,OAAOsuD,YAAYrmC,OAapD0jI,4BAA4Br5G,EAAW8/B,EAASw5E,GAI5C,MAAMzhH,EAAaC,EAAYwhH,GAE/B,IACI/4B,EADAg5B,EAAU,IA2Bd,GAtBI/3I,KAAK82I,YAAY/3B,aACjBA,EAAa/+G,KAAK82I,YAAY/3B,WAAWH,OAgBrCtgD,IACAygD,GAAc,KAIlBzgD,IAAYjoC,GAAcmI,IAAcC,EAAUC,SAC/C1+B,KAAKk3I,kBAAoB,GACzBl3I,KAAKm3I,kBAAoB,OAGT52I,IAAfw+G,GACA9gG,EAAOjZ,MAAM,6DAEb+yI,EAAU,KAEVA,EADOh5B,GAAc,EACX,IACHA,GAAc,EACX,GACHA,GAAc,EACX,GACHA,GAAc,EACX,GACHA,GAAc,GACX,GAEA,MAEX,CAIH,MAAMi5B,EAAYh4I,KAAKumH,YAAYjgB,0BAC7Bhc,EACA3xD,QAAQq/G,GAAaA,EAAU1tD,iBAE/B2tD,EACAD,GAAaA,EAAUE,kBACtBF,EAAUE,iBAAiBC,kBAAkB,UAK/CF,GAAsB1B,IACvBv2I,KAAKo3I,sBAAwBlrJ,OAAOsuD,YAAYrmC,MAGhD4+G,EAAewjB,GAEnBA,EAAkB0B,EASlB,IAAI9sG,EACEqrG,EAAUlsD,EAAej0D,EAPNnqC,OAAOsuD,YAAYrmC,MACtC/I,KAAKgpB,IAAIp0B,KAAKm3I,kBACZn3I,KAAKk3I,kBACLl3I,KAAKo3I,wBAMbjsG,EAAS//B,KAAKqP,IAAI,GAAM0wB,EAxVT,MA0VXorG,IACAprG,EAAS//B,KAAKqP,IAAI0wB,EAAQorG,IAG9BwB,EAAU,IAAM/3I,KAAK82I,YAAYn4B,QAAQC,OAASzzE,EAG9C4zE,GAAcA,GAAc,KAC5Bg5B,EAAU3sI,KAAKqP,IAAIs9H,EAAS,KAKpC,GAAI/3I,KAAKg3I,6BAA+B,EAAG,CACvC,MAAMoB,EAAuB,EACvBC,EAAwBr4I,KAAK82I,YAAY/3C,kBACzCu5C,GACCpsJ,OAAOsuD,YAAYrmC,MAAQnU,KAAKg3I,8BAC7B,IAEVe,EACM3sI,KAAKqP,IACHs9H,EACAM,EACOC,EAAcF,GAGjC,OAAOhtI,KAAKqP,IAAI,IAAKs9H,GAOzBT,8BAA8B/pJ,GAC1ByS,KAAK82I,YAAY/3C,kBAAoBxxG,EACrCyS,KAAKg3I,6BAA+B9qJ,OAAOsuD,YAAYrmC,MAO3DqjI,uBAEI,MAAM79I,EAAO,CACTglH,QAAS3+G,KAAK82I,YAAYn4B,QAC1BI,WAAY/+G,KAAK82I,YAAY/3B,WAC7BhgB,kBAAmB/+F,KAAK82I,YAAY/3C,kBACpCg4C,OAAQ/2I,KAAK82I,YAAYC,OACzBjsC,aAAc9qG,KAAK82I,YAAYhsC,aAC/BjY,qBAAsB7yF,KAAK82I,YAAYjkD,qBACvC0xB,eAAgBvkH,KAAK82I,YAAYtyB,qBAGrC,IACIxkH,KAAKumH,YAAY1Y,yBAAyB,CACtC5mG,KApcW,QAqcXmc,OAAQzpB,IACd,MAAON,KAmBbq+I,kBAAkBp0H,EAAK3pB,GAEnB,IAAK2pB,EAAIwiB,MAAO,CACZ,MAAMixG,EACAp9I,EAAKikB,WACAjkB,EAAKikB,UAAUrnB,QAAUoD,EAAKikB,UAAU,GAAGyN,IAEtDrrB,KAAK82I,YAAYC,OAASA,QAAkBx2I,EAKhD,GAAI+iB,IAAQtjB,KAAKumH,YAAYjgB,0BACzB,OAGJ,IAAIz4G,EACJ,MAAM0qJ,GACCv4I,KAAKumH,YAAYtY,0BAClB9H,EACAnmG,KAAKumH,YAAYv/E,qBACjBxI,EACA2nE,EAAkBA,EAAgB3nE,eAAYj+B,EAC9C+9D,GAAU6nC,GAAkBA,EAAgB7nC,UAC5CjoC,EAAa8vE,EACb/6F,KAAKqP,IAAI0rF,EAAgB9vE,WAAY8vE,EAAgBtT,sBAAwB,KAOnF,IAAKhlG,KALAywE,GACDt+D,KAAK23I,yBAIGh+I,EACJA,EAAKxL,eAAeN,KACpBmS,KAAK82I,YAAYjpJ,GAAO8L,EAAK9L,IAKjC0qJ,GACAv4I,KAAKs3I,8BACDt3I,KAAK63I,4BACDr5G,EACA8/B,EACAjoC,IAGZr2B,KAAKwf,aAAa0D,KACdq0H,sBACAv3I,KAAK82I,aACT92I,KAAKw3I,uBAQTC,mBAAmBvwI,EAAIvN,GAEnBqG,KAAKi3I,aAAa/vI,GAAM,CACpBy3G,QAAShlH,EAAKglH,QACdI,WAAYplH,EAAKolH,WACjBhgB,kBAAmBplG,EAAKolG,kBACxBg4C,OAAQp9I,EAAKo9I,OACbjsC,aAAcnxG,EAAKmxG,aACnBjY,qBAAsBl5F,EAAKk5F,qBAC3B0xB,eAAgB5qH,EAAK4qH,gBAGzBvkH,KAAKwf,aAAa0D,KACdq0H,uBACArwI,EACAlH,KAAKi3I,aAAa/vI,IAO1BqpG,WACI,OAAOvwG,KAAK82I,gB,sFC1jBpB,wEAMA,MAAM74H,EAASF,oBAAUM,GAaV,MAAM8vF,EAKjBl4G,YAAYssB,GACRviB,KAAKumH,YAAchkG,EASvBi2H,kBACI,MAAM,iBAAEC,GAAqBz4I,KAAKumH,YAAYp/G,QAAQqsB,OAChDklH,OAAiD,IAArBD,IAAqCA,EACjEjqB,EAA6BxuH,KAAKumH,YAAYpnE,KAAKqvE,6BACnDmqB,EAAyBnqB,IAA+BiqB,EAM9D,GAJAx6H,EAAO/Y,KACA,iCAAqBuzI,qCACajqB,GAErCkqB,IAAwBD,IAAqBjqB,EAM7C,OALAvwG,EAAO/Y,KAAK,kDACZlF,KAAKumH,YAAY/mG,aAAa0D,KAC1BP,oBACA8kF,cAKR,MAAMmxC,EAAgB54I,KAAKumH,YAAYnoB,iBACjCy6C,EAAkBD,GAAiBA,EAAcx/D,wBAElDw/D,EAE0B,cAApBC,EACP56H,EAAO/Y,KAAK,qDAEZ+Y,EAAO/Y,KACA,mEAAa2zI,+BACcF,GAC9BA,EACA34I,KAAKumH,YAAYnoB,iBAAiBvqB,UAC9B,KACI51D,EAAO/Y,KAAK,6CAEhBF,IACIiZ,EAAOjZ,MAAO,8CAA6CA,EAAMP,UAClE,CACC+K,OAAQ,qBACRwkE,kBAAmB,aACnBE,gBAAgB,EAChBJ,sBAAsB,IAG9B9zE,KAAKumH,YAAYnoB,iBAAiB7tB,6BArBtCtyD,EAAO9Y,KAAK,8CA6BpB4X,QAUI/c,KAAKumH,YAAYlnG,KAAK28B,KAAK,MAAOthB,KAC9B,KACS16B,KAAK84I,YACN94I,KAAK+4I,kBAAoB7sJ,OAAOqe,WAAW,KACvCvK,KAAK+4I,uBAAoBx4I,EACzBP,KAAKw4I,mBACN,OAGXxzI,IACIiZ,EAAOjZ,MAAM,8CAA+CA,KAOxE2tD,SACI3yD,KAAK84I,WAAY,EACjB5sJ,OAAOuhB,aAAazN,KAAK+4I,uB,qFCnHjC,qFAoBe,MAAMv2C,UAA+B/iF,IAOhDxpB,YAAYssB,GACR8X,QAEAr6B,KAAKumH,YAAchkG,EACnBviB,KAAKg5I,gBAAkB,KACvBh5I,KAAKi5I,eAAiB,KAEjBn5H,IAAQ0mE,yBACTjkE,EAAW4B,WAAW1C,sBAAsBzhB,KAAKk5I,YAAYprJ,KAAKkS,OAEtEuiB,EAAWZ,GAAGgB,cAAmC3iB,KAAKu2F,YAAYzoG,KAAKkS,OAM3Em5I,uBACI1rI,aAAazN,KAAKg5I,iBAClBh5I,KAAKg5I,gBAAkB,KAU3BI,6BAA6BzwG,GAGzB,MAAM54B,EAAwB,IAAf44B,EAIa,OAAxB3oC,KAAKi5I,gBAA2Bj5I,KAAKi5I,iBAAmBlpI,IACxD/P,KAAKi5I,eAAiBlpI,EACtB/P,KAAKkjB,KAAKg/E,2BAA0CliG,KAAKi5I,iBAUjEI,6BAA6B1wG,GACrB3oC,KAAKs5I,cAIU,IAAf3wG,GAAqB3oC,KAAKg5I,gBAMJ,IAAfrwG,GAAoB3oC,KAAKg5I,iBAChCh5I,KAAKm5I,uBANLn5I,KAAKg5I,gBAAkBzuI,WAAW,KAC9BvK,KAAKs5I,aAAc,EAEnBt5I,KAAKkjB,KAAKg/E,mBAvEA,MAuFtBg3C,YAAY51H,EAAK0B,EAAM2jB,EAAYpjB,GAE/B,IAAKA,IAAYvlB,KAAKu5I,YAClB,OAIJ,MAAMjuD,EAAahoE,EAAIgoE,WAAWn+F,IAAI6S,KAAKu5I,YAAY12G,OAIlDyoD,GAAeA,EAAW96D,MAAMiD,SAASzO,KAM9ChlB,KAAKo5I,6BAA6BzwG,GAClC3oC,KAAKq5I,6BAA6B1wG,IAStC4tD,YAAYj4D,GACJA,EAAMknD,sBAENxlF,KAAKu5I,YAAcj7G,EACnBt+B,KAAKs5I,aAAc,EACnBt5I,KAAKm5I,uBAGDr5H,IAAQ0mE,0BACRloD,EAAM3c,GACFi7C,iBACAj0B,IACI3oC,KAAKq5I,6BAA6B1wG,KAG1CrK,EAAM3c,GACFi7C,4BACAj0B,IACI3oC,KAAKq5I,6BAA6B1wG,GAClC3oC,KAAKo5I,6BAA6BzwG,U,6BCjJ1D,6DAkBe,MAAMm6D,EAMjB7sG,YAAYssB,GACRviB,KAAKuiB,WAAaA,EAElBA,EAAW8Z,iBACP1Z,4BACA3iB,KAAKk5I,YAAYprJ,KAAKkS,OAE1BA,KAAKw5I,SAAWx5I,KAAKuiB,WAAW25C,WASpCg9E,YAAYhyI,EAAIyhC,IAKP3oC,KAAKuiB,WAAW46C,eACdx0B,GAtCiB,IAuChBzhC,IAAOlH,KAAKw5I,UACLx5I,KAAKuiB,WAAW4kB,qBAAqBm3B,WAIpDt+D,KAAKuiB,WAAW03C,IAAIz6C,aAAa0D,KAC7B8V,IAAUtlC,yBACVwT,M,6BCtDZ,8DAuCe,MAAMm7F,UAA0B5iF,eAM3CxpB,cACIokC,QAMAr6B,KAAKy5I,aAAc,EAKnBz5I,KAAK05I,YAAc,GAKnB15I,KAAK25I,eAAiB,GAKtB35I,KAAK45I,SAAU,EAEf55I,KAAK65I,qBAAuB75I,KAAK65I,qBAAqB/rJ,KAAKkS,MAS/D65I,uBACI,MAAMC,EAAWj6F,YAAiB7/C,KAAK05I,aACjCK,EAAgBl6F,YAAiB7/C,KAAK25I,gBAExCG,EAxEoB,IAwEkBC,EAlEd,MAmExB/5I,KAAKkjB,KAAKwzB,oBAEV12C,KAAKg6I,iBAAgB,IAIzBh6I,KAAKqI,QAST4xI,cAAc3xD,EAAU4xD,GACpBl6I,KAAK05I,YAAYx2I,KAAKolF,GACtBtoF,KAAK25I,eAAez2I,KAAKg3I,GAS7BF,gBAAgB1zD,GACZtmF,KAAK45I,QAAUtzD,EACftmF,KAAKkjB,KAAKuzB,wBAAuBz2C,KAAK45I,SAQ1C5iD,gBAAgB14B,GAEZt+D,KAAKg6I,iBAAiB17E,GACtBt+D,KAAKqI,QAQT4zD,WACI,OAAOj8D,KAAK45I,QAQhBvxI,QACIrI,KAAKy5I,aAAc,EACnBz5I,KAAK05I,YAAc,GACnB15I,KAAK25I,eAAiB,GACtBlsI,aAAazN,KAAKm6I,iBAatBrjD,gBAAgBxO,GACZ,GAAKtoF,KAAK45I,QAKV,GAAI55I,KAAKy5I,YAAT,CAEI,MAAMW,EAAiBr6F,YAAqBuoC,EAASI,SAErD1oF,KAAKi6I,cAAc3xD,EAASG,MAAO5oC,YAAiBu6F,SAOxD,GAAI9xD,EAASG,MAvJK,GAuJsB,CACpC,MAAM2xD,EAAiBr6F,YAAqBuoC,EAASI,SAC/CwxD,EAAcr6F,YAAiBu6F,GAEjCF,EArJkB,MAsJlBl6I,KAAKy5I,aAAc,EACnBz5I,KAAKi6I,cAAc3xD,EAASG,MAAOyxD,GAGnCl6I,KAAKm6I,gBAAkB5vI,WAAWvK,KAAK65I,qBApJpB,W,6BClCnC,8DAkCe,MAAM53C,UAA8BxiF,eAK/CxpB,cACIokC,QAMAr6B,KAAKy5I,aAAc,EAKnBz5I,KAAK05I,YAAc,GAKnB15I,KAAK45I,SAAU,EAEf55I,KAAKq6I,mBAAqBr6I,KAAKq6I,mBAAmBvsJ,KAAKkS,MAQ3Dq6I,qBACkBx6F,YAAiB7/C,KAAK05I,aAxDlB,KA2Dd15I,KAAKkjB,KAAK2zB,wBAIV72C,KAAKg6I,iBAAgB,IAIzBh6I,KAAKqI,QAST2xI,gBAAgB1zD,GACZtmF,KAAK45I,QAAUtzD,EACftmF,KAAKkjB,KAAKuzB,wBAAuBz2C,KAAK45I,SAQ1C5iD,gBAAgB14B,GAEZt+D,KAAKg6I,gBAAgB17E,GACrBt+D,KAAKqI,QAQT4zD,WACI,OAAOj8D,KAAK45I,QAYhB9iD,gBAAgBxO,GACPtoF,KAAK45I,UAKN55I,KAAKy5I,YACLz5I,KAAK05I,YAAYx2I,KAAKolF,EAASG,OAO/BH,EAASG,MArHG,KAsHZzoF,KAAKy5I,aAAc,EACnBz5I,KAAK05I,YAAYx2I,KAAKolF,EAASG,OAG/BzoF,KAAKm6I,gBAAkB5vI,WAAWvK,KAAKq6I,mBA/GhB,OAwH/BhyI,QACIrI,KAAKy5I,aAAc,EACnBz5I,KAAK05I,YAAc,GACnBjsI,aAAazN,KAAKm6I,oB,8BCxJ1B,sFASA,MAAMl8H,EAASF,oBAAUM,GAiBzB,MAAMi8H,EAOFrkJ,YAAYomE,EAAa6kC,GAErBlhG,KAAKq8D,YAAcA,EAGnBr8D,KAAKkhG,QAAUA,EAGflhG,KAAKkH,GAAKm1D,EAAYG,QAGtBx8D,KAAKu6I,SAAW,GAIhBv6I,KAAKw6I,cAAgB,EAErBx6I,KAAKy6I,eAAiBz6I,KAAKy6I,eAAe3sJ,KAAKkS,MAC/CA,KAAK06I,YAAc16I,KAAK06I,YAAY5sJ,KAAKkS,MACzCA,KAAK26I,eAAiB36I,KAAK26I,eAAe7sJ,KAAKkS,MAC/CA,KAAK46I,mBAAqB56I,KAAK46I,mBAAmB9sJ,KAAKkS,MACvDA,KAAKwnB,cAAgBxnB,KAAKwnB,cAAc15B,KAAKkS,MAIzCkhG,EAAQ25C,mBACR76I,KAAK06I,cAGT16I,KAAK86I,aAAe5uJ,OAAOowC,YACvBt8B,KAAK06I,YAAax5C,EAAQ65C,gBAC9B/6I,KAAKg7I,kBAAoB9uJ,OAAOqe,WAC5BvK,KAAK46I,mBAAoB56I,KAAKkhG,QAAQ+5C,qBAO9CR,iBACQz6I,KAAK86I,cACL5uJ,OAAOouC,cAAct6B,KAAK86I,cAE1B96I,KAAKg7I,mBACL9uJ,OAAOouC,cAAct6B,KAAKg7I,mBAQlCN,cACI,MAAMQ,EAAYl7I,KAAKw6I,gBACjBW,EAAiB,CACnBl0I,KAzEa,mBA0EbC,GAAIg0I,GAGRl7I,KAAKkhG,QAAQl4D,YAAYmyG,EAAgBn7I,KAAKkH,IAC9ClH,KAAKu6I,SAASW,GAAa,CACvBh0I,GAAIg0I,EACJE,SAAUlvJ,OAAOsuD,YAAYrmC,OAQrCwmI,eAAehoI,GACX,MAAMmmE,EAAU94E,KAAKu6I,SAAS5nI,EAASzL,IAEnC4xE,IACAA,EAAQztD,IAAMn/B,OAAOsuD,YAAYrmC,MAAQ2kE,EAAQsiE,SACjDp7I,KAAKkhG,QAAQ1hF,aAAa0D,KACtBm4H,kBACAr7I,KAAKq8D,YACLyc,EAAQztD,MAGhBrrB,KAAK46I,qBASTA,qBACI,MAAMzmI,EAAMjoB,OAAOsuD,YAAYrmC,MAI/B,IACI2kE,EAASoiE,EADT7vH,EAAMiwH,IAIV,IAAKJ,KAAal7I,KAAKu6I,SACfv6I,KAAKu6I,SAASpsJ,eAAe+sJ,KAC7BpiE,EAAU94E,KAAKu6I,SAASW,GAEpBpiE,EAAQsiE,SAAWjnI,EAAMnU,KAAKkhG,QAAQ+5C,2BAE/Bj7I,KAAKu6I,SAASW,GACdpiE,EAAQztD,MACfA,EAAMjgB,KAAKqP,IAAI4Q,EAAKytD,EAAQztD,OAKpCA,EAAMiwH,KACNt7I,KAAKwnB,cAAc6D,GAQ3B7D,cAAc6D,GACVjM,IAAWoI,cAAc0D,YACrBlrB,KAAKkH,GACLlH,KAAKq8D,YAAY6yC,YAAY,UAC7B7jF,KAmBG,MAAM81E,EAMjBlrG,YAAYssB,EAAYpb,EAAS6hC,GAC7BhpC,KAAKuiB,WAAaA,EAClBviB,KAAKwf,aAAe+C,EAAW/C,aAC/Bxf,KAAKgpC,YAAcA,EAGnBhpC,KAAK+6I,eAAiB,IAGtB/6I,KAAKi7I,oBAAsB,IAG3Bj7I,KAAK+8D,aAAe,GAGpB/8D,KAAK66I,mBAAoB,EAErB1zI,GAAWA,EAAQ+5F,UACyB,iBAAjC/5F,EAAQ+5F,QAAQ45C,eACvB96I,KAAK+6I,eAAiB5zI,EAAQ+5F,QAAQ45C,cAEO,iBAAtC3zI,EAAQ+5F,QAAQ85C,oBACvBh7I,KAAKi7I,oBAAsB9zI,EAAQ+5F,QAAQ85C,mBAI3Ch7I,KAAKi7I,oBAAsB,GAAKj7I,KAAKi7I,oBACnCj7I,KAAK+6I,iBACP/6I,KAAKi7I,oBAAsBj7I,KAAK+6I,iBAGxC98H,EAAO/Y,KACF,uCACGlF,KAAK+6I,qCACL/6I,KAAKi7I,wBAEbj7I,KAAKu7I,kBAAoBv7I,KAAKu7I,kBAAkBztJ,KAAKkS,MACrDuiB,EAAWZ,GACPgB,cACA3iB,KAAKu7I,mBAETv7I,KAAKw7I,gBAAkBx7I,KAAKw7I,gBAAgB1tJ,KAAKkS,MACjDuiB,EAAWZ,GACPgB,YACA3iB,KAAKw7I,iBAETx7I,KAAKy7I,gBAAkBz7I,KAAKy7I,gBAAgB3tJ,KAAKkS,MACjDuiB,EAAWZ,GACPgB,4BACA3iB,KAAKy7I,iBAETz7I,KAAK07I,kBAAoB17I,KAAK07I,kBAAkB5tJ,KAAKkS,MACrDuiB,EAAWZ,GACPgB,sBACA3iB,KAAK07I,mBAObA,oBACI17I,KAAK66I,mBAAoB,EASzB,IAAK,MAAM3zI,KAAMlH,KAAK+8D,aAClB,GAAI/8D,KAAK+8D,aAAa5uE,eAAe+Y,GAAK,CACtC,MAAMy0I,EAAqB37I,KAAK+8D,aAAa71D,GAE7Chb,OAAOqe,WAAWoxI,EAAmBjB,YAAa,MAW9De,gBAAgBp/E,EAAa5pC,GA9PR,qBAiQbA,EAAQxrB,KACRjH,KAAK47I,cAAcv/E,EAAYG,QAAS/pC,GA5P1B,sBA6PPA,EAAQxrB,MACfjH,KAAK26I,eAAet+E,EAAYG,QAAS/pC,GAWjD8oH,kBAAkBr0I,EAAIm1D,GACdr8D,KAAK+6I,gBAAkB,IAIvB/6I,KAAK+8D,aAAa71D,KAClB+W,EAAO/Y,KACF,0CAAyCgC,gBAC9ClH,KAAK+8D,aAAa71D,GAAIuzI,wBACfz6I,KAAK+8D,aAAa71D,IAG7BlH,KAAK+8D,aAAa71D,GAAM,IAAIozI,EAAmBj+E,EAAar8D,OAQhEw7I,gBAAgBt0I,GACRlH,KAAK+6I,gBAAkB,GAIvB/6I,KAAK+8D,aAAa71D,KAClBlH,KAAK+8D,aAAa71D,GAAIuzI,wBACfz6I,KAAK+8D,aAAa71D,IAWjC00I,cAAczwH,EAAe2tD,GAEzB,GAAIA,GAAWA,EAAQ5xE,GAAI,CACvB,MAAMyL,EAAW,CACb1L,KAnTU,oBAoTVC,GAAI4xE,EAAQ5xE,IAGhBlH,KAAKgpC,YAAYr2B,EAAUwY,QAE3BlN,EAAO/Y,KACF,6CAA4CimB,MAUzDwvH,eAAexvH,EAAexY,GAC1B,MAAMgpI,EAAqB37I,KAAK+8D,aAAa5xC,GAEzCwwH,GACAA,EAAmBhB,eAAehoI,GAO1CiR,OACI3F,EAAO/Y,KAAK,oBAEZlF,KAAKuiB,WAAWksB,IACZ9rB,cACA3iB,KAAKu7I,mBACTv7I,KAAKuiB,WAAWksB,IACZ9rB,YACA3iB,KAAKw7I,iBACTx7I,KAAKuiB,WAAWksB,IACZ9rB,4BACA3iB,KAAKy7I,iBACTz7I,KAAKuiB,WAAWksB,IACZ9rB,sBACA3iB,KAAK07I,mBAET,IAAK,MAAMx0I,KAAMlH,KAAK+8D,aACd/8D,KAAK+8D,aAAa5uE,eAAe+Y,IACjClH,KAAK+8D,aAAa71D,GAAIuzI,iBAI9Bz6I,KAAK+8D,aAAe,O,uEC1X5B,gEAMA,MAAM9+C,EAASF,oBAAUM,GAOV,MAAMukF,EAKjB3sG,YAAYssB,GACRviB,KAAKumH,YAAchkG,EASnBviB,KAAK67I,SAAU,EAEf77I,KAAKumH,YAAYlqF,iBACb1Z,cAAmC,IAAM3iB,KAAK87I,kBAClD97I,KAAKumH,YAAYlqF,iBACb1Z,YAAiC,IAAM3iB,KAAK87I,kBAChD97I,KAAKumH,YAAYlqF,iBACb1Z,aAAkC,IAAM3iB,KAAK87I,kBAOrDA,iBACI,MAAMC,EAAY/7I,KAAK67I,QACjBv/E,GACCt8D,KAAKumH,YAAYppD,eACbn9D,KAAKumH,YAAYte,uBAAyB,EAEjD8zC,IAAcz/E,IACdt8D,KAAK67I,QAAUv/E,EACfr+C,EAAOhZ,MAAO,iBAAgB82I,QAAgBz/E,KAC9Ct8D,KAAKumH,YAAY/mG,aAAa0D,KAC1BP,gBAAqCo5H,EAAWz/E,Q,iFCpDhE,qDAUO,MAAMglC,EAOTrrG,YAAYssB,GACRviB,KAAKuiB,WAAaA,EAClBviB,KAAKuiB,WAAWZ,GACZgB,yBACA1K,GAAWjY,KAAKyoE,uBAAuBxwD,IAC3CjY,KAAKuiB,WAAWZ,GACZgB,gCACA,IAAM3iB,KAAKg8I,gCAWnBvzE,uBAAuBwzE,GACnBA,EAAar4G,YACTurC,IAAmBC,iCACnBn3D,IACQA,IAAYjY,KAAKuiB,WAAWuhF,0BAC5B9jG,KAAKg8I,iCAGjBh8I,KAAKk8I,gCACED,EAAa72G,2BAA2BplC,KAAKk8I,gCAGpDD,EAAaroE,sCAGbqoE,EAAaxoE,uBAUjBuoE,+BACI,MAAMG,EAAqBn8I,KAAKo8I,2BAC1B1hE,EAAW,GAEjB,GAAIyhE,GAAsB,EACtB,IAAK,MAAMlkI,KAAWjY,KAAKuiB,WAAWsnD,oBAClC6Q,EAASx3E,KAAK+U,EAAQ07D,yBAAyBwoE,IAIvD,OAAOn/G,QAAQ+K,IAAI2yC,GASvB0hE,2BACI,MAAMC,EAAqBr8I,KAAKuiB,WAAWuhF,yBACrC93B,EAA2BqwE,GAAsBA,EAAmBhtE,8BAE1E,OAAIrvE,KAAKs8I,6BAA+B,GAAKtwE,GAA4B,EAC9D5gE,KAAKqP,IAAIza,KAAKs8I,4BAA6BtwE,GAC3CA,GAA4B,EAC5BA,EAGJhsE,KAAKs8I,4BAOhB9rC,kCAAkCnrE,GAC9BrlC,KAAKk8I,+BAAiC72G,EAEtC,IAAK,MAAMptB,KAAWjY,KAAKuiB,WAAWsnD,oBAClCxkC,GAAkBptB,EAAQmtB,2BAA2BC,GAU7DorE,+BAA+BprE,GAG3B,OAFArlC,KAAKs8I,4BAA8Bj3G,EAE5BrlC,KAAKg8I,kC,4wBC1GpB,MAAM/9H,EAASF,oBAAUM,GA+PV4hF,IAzPf,MAQIhqG,YAAY67G,GAIR9xG,KAAKu8I,UAAY,GAEjBv8I,KAAKw8I,UAAY1qC,EAEjB9xG,KAAKmqH,WAAanqH,KAAKmqH,WAAWr8H,KAAKkS,MAEvCA,KAAKw8I,UAAUh9H,aAAaokB,YACxB+W,IAAWppD,kBAAmByO,KAAKmqH,YAS3CsyB,WAAW11E,GACP,OAAO/mE,KAAKu8I,UAAUx1E,GAe1BojD,YAAW,iBAAEwD,EAAF,SAAoBhnD,IACvB8xB,IAAkBhxB,YAAYd,GAC9B3mE,KAAK08I,qBAAqB/1E,GACnBgnD,GACP3tH,KAAK28I,qBAAqBh2E,GAoBlColC,eAAe5kG,GACX,MAAM8Q,EAAU,IAAIi/E,IAAJ,OACT/vF,GADS,IAEZoN,WAAYvU,KAAKw8I,UAAUjoI,cAG/B,OAAO0D,EAAQ8E,MAAM,CACjBs7E,QAASlxF,EAAQkxF,QACjBC,YAAanxF,EAAQmxF,YACrBC,YAAav4F,KAAKw8I,UAAUjkD,YAC5B/vD,SAAUrhC,EAAQqhC,WAEjB9N,KAAK,KAKG16B,KAAKy8I,WAAWxkI,EAAQs/E,WACzBv3F,KAAK48I,YAAY3kI,GACjBjY,KAAK68I,mBAAmB5kI,IAGrBA,IAEVmlB,MAAMp4B,IACHhF,KAAK68I,mBAAmB5kI,GAEjB+kB,QAAQE,OAAOl4B,KAYlCgnG,cAAcjlC,GACV,MAAM9uD,EAAUjY,KAAKy8I,WAAW11E,GAEhC,OAAI9uD,EACOA,EAAQ2L,KAAK,CAAE20E,YAAav4F,KAAKw8I,UAAUjkD,cAG/Cv7D,QAAQE,OAAO,IAAI7lC,MAAM,2BASpCulJ,YAAY3kI,GACRjY,KAAKu8I,UAAUtkI,EAAQs/E,SAAWt/E,EAYtC6kI,eAAe/1E,EAAWh3D,EAAQtiB,GAC9B,MAAMwqB,EAAU,IAAIi/E,IAAa,CAC7B3iF,WAAYvU,KAAKw8I,UAAUjoI,WAC3BgkF,YAAav4F,KAAKw8I,UAAUjkD,YAC5B9qG,OACAs5E,YACAh3D,WAKJ,OAFA/P,KAAK48I,YAAY3kI,GAEVA,EASX4kI,mBAAmB5kI,EAAS4uD,GACxB7mE,KAAKw8I,UAAUh9H,aAAa0D,KACxBy3B,IAAWhpD,uBAAwBsmB,EAAS4uD,GAUpD61E,qBAAqB/1E,GACjB,MAAMC,EAAc6xB,IAAkB/xB,wBAAwBC,GAE9D,IAAKC,EACD,OAGJ,MAAM,MAAE5hE,EAAF,UAAS6hE,EAAT,cAAoBC,EAApB,UAAmCC,EAAnC,OAA8Ch3D,GAAW62D,EAI/D,IAAI3uD,EAAUjY,KAAKy8I,WAAW11E,GAKzB9uD,GAAsB,QAAXlI,EAaZkI,GACGA,EAAQ4/E,cAAgB9nF,GACxBkI,EAAQq/E,aAAetyF,EAC1BiZ,EAAO9Y,KAAK,uCACRyH,KAAKwL,UAAUwuD,KAKlB3uD,IACDA,EAAUjY,KAAK88I,eAAe/1E,EAAWh3D,EAAQ+2D,IAGrD7uD,EAAQo/E,UAAUtnF,GAEd/K,GACAiT,EAAQggF,SAASjzF,GAGrBhF,KAAK68I,mBAAmB5kI,EAAS4uD,IA/B7B5oD,EAAO9Y,KACH,qCACA,2CAuCZw3I,qBAAqBh2E,GACjB,MAAM,kBAAEO,EAAF,KAAqBz5E,EAArB,UAA2Bs5E,GAC3B0xB,IAAkBzxB,sBAAsBL,GAE9C,IAAKI,EAID,YAHA9oD,EAAO9Y,KACH,2DAKR,IAAI8S,EAAUjY,KAAKy8I,WAAW11E,GAEzB9uD,IACDA,EAAUjY,KAAK88I,eAAe/1E,EAAW,GAAIt5E,IAGjDwqB,EAAQigF,qBAAqBhxB,GAE7BlnE,KAAK68I,mBAAmB5kI,O,kFClQhC,6FASA,MAAMgG,EAASF,oBAAUM,GAWV,MAAMghF,EAOjBppG,YAAYssB,GACRviB,KAAKumH,YAAchkG,EACnBviB,KAAK+8I,sBAAwB,GAC7B/8I,KAAKg9I,sBAAwB,GAC7Bh9I,KAAKi9I,wBAA0B,GAC/Bj9I,KAAKk9I,mCAAqC,GAC1Cl9I,KAAKm9I,0BAA4Bn9I,KAAKm9I,0BAA0BrvJ,KAAKkS,MACrEA,KAAKo9I,4BAA8Bp9I,KAAKo9I,4BAA4BtvJ,KAAKkS,MACzEA,KAAKq9I,eAAiBr9I,KAAKq9I,eAAevvJ,KAAKkS,MAC/CA,KAAKumH,YAAY5kG,GAAG41H,uBAA8Cv3I,KAAKo9I,6BACvEp9I,KAAKumH,YAAYpiG,WAAWlC,2BAA2BjiB,KAAKm9I,2BAC5Dn9I,KAAKumH,YAAY5kG,GAAG01H,YAA4Br3I,KAAKq9I,gBAUzDD,4BAA4BnxH,GAAQ,eAAEs4F,IAClC,MAAM+4B,EAAmBt9I,KAAKk9I,mCAAmCjxH,GAAU,GAAM,EAIjF,GAFAjsB,KAAKk9I,mCAAmCjxH,GAAUqxH,GAEE,IAAhDt9I,KAAKg9I,sBAAsBp5I,QAAQqoB,IAAmBA,KAAUjsB,KAAKi9I,yBAC9D14B,GAAkB,GAAK+4B,EAAkB,EAChD,OAGJ,MAAMjhF,EAAcr8D,KAAKumH,YAAYtpD,mBAAmBhxC,GAExD,GAAIowC,EAAa,CAGb,GAFeA,EAAY4B,qBAAqB1/B,KAErChoC,OAAS,GAAK8lE,EAAY2qD,eAIjC,OAIR,MAAM96F,EAAmBlsB,KAAK+8I,sBAAsB9wH,GAE/C71B,MAAMC,QAAQ61B,KAAqBA,EAAiButE,MAAM9wD,GAA6B,IAAfA,KACzE3oC,KAAKi9I,wBAAwBhxH,GAAU,CACnCE,kBAAmBo4F,EACnBr4F,iBAAkB,KAY9BixH,0BAA0B75H,GAAK,eAAEihG,IACzBjhG,IAAQtjB,KAAKumH,YAAYjgB,4BAI7Bt5G,OAAOuY,KAAKg/G,GAAgBn1G,QAAQ6c,IAChC,IAAoD,IAAhDjsB,KAAKg9I,sBAAsBp5I,QAAQqoB,GACnC,OAGJ,MAAMC,EAAmBlsB,KAAK+8I,sBAAsB9wH,GAE/C71B,MAAMC,QAAQ61B,GAERA,EAAiB31B,QAxFR,GAyFhB21B,EAAiBwB,QAFjB1tB,KAAK+8I,sBAAsB9wH,GAAU,GAKzCjsB,KAAK+8I,sBAAsB9wH,GAAQ/oB,KAAKqhH,EAAet4F,MAI3Dj/B,OAAOuY,KAAKvF,KAAKi9I,yBAAyB7tI,QAAQ6c,IAC9C,MAAM,iBAAEC,EAAF,kBAAoBC,GAAsBnsB,KAAKi9I,wBAAwBhxH,GAI7E,GAFAC,EAAiBhpB,KAAKqhH,EAAet4F,IAnGjB,IAqGhBC,EAAiB31B,OAAoC,CACrD,GAAI21B,EAAiButE,MAAM9wD,QAAoC,IAAfA,GAA6C,IAAfA,GAAmB,CAC7F,MAAM40G,EAAyB3wI,KAAKwL,UAAU8T,GAE9C9M,IAAWoI,cACPwE,YAA8BC,EAAQsxH,EAAwBpxH,IAClElO,EAAO9Y,KAAM,yEACT8mB,0BAA+BsxH,2BAC/BpxH,KACJnsB,KAAKg9I,sBAAsB95I,KAAK+oB,GAChCjsB,KAAKq9I,eAAepxH,UAGjBjsB,KAAKi9I,wBAAwBhxH,OAWhDoxH,eAAepxH,UACJjsB,KAAK+8I,sBAAsB9wH,GAQtCjJ,UACIhjB,KAAKumH,YAAY93E,IAAI8oG,uBAA8Cv3I,KAAKo9I,6BACxEp9I,KAAKumH,YAAY93E,IAAI4oG,YAA4Br3I,KAAKq9I,gBACtDr9I,KAAKumH,YAAYpiG,WAAWjC,8BAA8BliB,KAAKm9I,2BAC/Dn9I,KAAK+8I,2BAAwBx8I,EAC7BP,KAAKi9I,6BAA0B18I,EAC/BP,KAAKg9I,2BAAwBz8I,EAC7BP,KAAKk9I,wCAAqC38I,EAC1CP,KAAKumH,iBAAchmH,M,6FC5J3B,6HAkBA,MAAM0d,EAASF,oBAAUM,GAMzB,MAAMm/H,EAMFvnJ,YAAYpJ,GACRmT,KAAKnT,KAAOA,EACZmT,KAAK4sC,MAAQ,EACb5sC,KAAK0kH,IAAM,EACX1kH,KAAK8hF,QAAU,GAQnB5hC,QAAQP,GACqB,iBAAdA,EACP1hC,EAAOjZ,MACF,GAAEhF,KAAKnT,iCAAiCmT,KAAK4sC,QAC9C+S,GACIjmC,MAAMimC,KACd3/C,KAAK0kH,KAAO/kE,EACZ3/C,KAAK8hF,QAAQ5+E,KAAKy8C,GAClB3/C,KAAK4sC,OAAS,GAStB6wG,YACI,OAAOz9I,KAAK0kH,IAAM1kH,KAAK4sC,MAQ3B8wG,aAAax4F,GACTA,EAAUllD,KAAKnT,KAAP,QAAqBmT,KAAKy9I,YAClCv4F,EAAUllD,KAAKnT,KAAP,YAAyB+f,KAAKwL,UAAUpY,KAAK8hF,SAOzDz5E,QACIrI,KAAK8hF,QAAU,GACf9hF,KAAK0kH,IAAM,EACX1kH,KAAK4sC,MAAQ,GASrB,MAAM+wG,EAQF1nJ,YAAYgpG,EAAqBn5D,EAAO/3C,GAKpCiS,KAAK8lC,MAAQA,EAOb9lC,KAAK49I,GAAK7vJ,EAQViS,KAAK69I,WAAa,EAMlB79I,KAAK89I,QAAU,IAAIN,EAAkB,OAYrCx9I,KAAK+9I,iBAAmB,IAAIx+H,IAO5Bvf,KAAKg+I,qBAAuB/+C,EAU5Bj/F,KAAKi+I,oBAAiB19I,EAEtBP,KAAKk+I,mBAAqB,CAAC56H,EAAKkD,KACxBxmB,KAAK8lC,QAAUxiB,EAAIwiB,OACnB9lC,KAAKm+I,mBAAmB33H,IAIhC,MAAMjE,EAAa08E,EAAoBsnB,YAEvChkG,EAAW4B,WAAWlC,2BAClBjiB,KAAKk+I,oBAEJl+I,KAAK8lC,QACN9lC,KAAK+6D,YAAc7zD,GAAMlH,KAAK+9I,iBAAiBr6H,OAAOxc,GACtDqb,EAAWZ,GAAG01H,YAA4Br3I,KAAK+6D,aAE/C/6D,KAAKo+I,sBACC,CAACl3I,EAAIvN,IAASqG,KAAKq+I,oBAAoBn3I,EAAIvN,GACjD4oB,EAAWZ,GACP41H,uBACAv3I,KAAKo+I,wBASjBD,mBAAmBxkJ,GACf,GAAKA,GAcL,GARImmB,IAAQ6zF,yBACJh6G,EAAKikB,WAAajkB,EAAKikB,UAAUrnB,QACjCyJ,KAAK89I,QAAQ59F,QAAQvmD,EAAKikB,UAAU,GAAGyN,KAI/CrrB,KAAK69I,YAAc,EAEf79I,KAAK69I,YAAc79I,KAAK49I,GAAI,CAC5B,GAAI99H,IAAQ6zF,wBAAyB,CACjC,MAAMpxF,EAAaviB,KAAKg+I,qBAAqBz3B,YAEvC+3B,EAAc,CAChBngG,IAAKn+C,KAAK8lC,MACV,gBAAmBvjB,EAAW0lF,uBAelC,GAZItuG,EAAKikB,WAAajkB,EAAKikB,UAAUrnB,QACjCvJ,OAAOgoG,OAAOspD,EAAa,CACvB,qBACI3kJ,EAAKikB,UAAU,GAAG2jG,mBACtB,sBACI5nH,EAAKikB,UAAU,GAAG6jG,oBACtB,eAAkB9nH,EAAKikB,UAAU,GAAG3W,OAI5CjH,KAAK89I,QAAQJ,aAAaY,GAEtBt+I,KAAK8lC,MAAO,CAEZ,MAAMy4G,EAAgBv+I,KACjBg+I,qBAAqBQ,gBAAgBP,eAErCvkI,MAAM6kI,KAEPD,EAAW,SACLt+I,KAAK89I,QAAQL,YAAcc,OAElC,CAEH,MAAME,EAAez+I,KAAK0+I,yBACpBC,EAAc3+I,KAAK89I,QAAQL,YAEjCz9I,KAAKi+I,eAAiBU,EAAcF,EAE/B/kI,MAAMilI,IAAiBjlI,MAAM+kI,KAE9BH,EAAW,gBAAsBt+I,KAAKi+I,gBAI9C7+H,IAAWoI,cAAcsE,YAAoBwyH,IAGjDt+I,KAAK4+I,uBA5DL3gI,EAAOjZ,MAAM,YAsErB05I,yBACI,IAAI9xG,EAAQ,EAAG83E,EAAM,EAIrB,IAAK,MAAMm6B,KAAa7+I,KAAK+9I,iBAAiB36H,SAAU,CACpD,MAAM07H,EAAMD,EAAUpB,YAEjB/jI,MAAMolI,KACPp6B,GAAOo6B,EACPlyG,GAAS,EACTiyG,EAAUx2I,SAIlB,OAAOq8G,EAAM93E,EAUjByxG,oBAAoBn3I,EAAIvN,GACpB,MAAMolJ,EAAmC,iBAAhBplJ,EAAKo9I,OAC9B,IAAIiI,EAASh/I,KAAK+9I,iBAAiB5wJ,IAAI+Z,IAElC83I,GAAUD,IACXC,EAAS,IAAIxB,EAAqBt2I,EAAF,aAChClH,KAAK+9I,iBAAiB38H,IAAIla,EAAI83I,IAG9BD,EACAC,EAAO9+F,QAAQvmD,EAAKo9I,QACbiI,GACPh/I,KAAK+9I,iBAAiBr6H,OAAOxc,GAQrC03I,iBACI5+I,KAAK89I,QAAQz1I,QACTrI,KAAK+9I,kBACL/9I,KAAK+9I,iBAAiBloG,QAE1B71C,KAAK69I,WAAa,EAMtB76H,UAEI,MAAMT,EAAaviB,KAAKg+I,qBAAqBz3B,YAE7ChkG,EAAW4B,WAAWjC,8BAClBliB,KAAKk+I,oBACJl+I,KAAK8lC,QACNvjB,EAAWksB,IACP8oG,uBACAv3I,KAAKo+I,uBACT77H,EAAWksB,IACP4oG,YACAr3I,KAAK+6D,eAaN,MAAMmkC,EAOjBjpG,YAAYssB,EAAYx0B,GAOpBiS,KAAK49I,GAAK7vJ,EAENA,EAAI,GACJkwB,EAAO/Y,KAAM,0CAAyCnX,aAc1DiS,KAAK69I,WAAa,EAOlB79I,KAAKumH,YAAchkG,EAQnBviB,KAAKi/I,mBACC,IAAIzB,EAAkB,wBAQ5Bx9I,KAAKk/I,qBACC,IAAI1B,EAAkB,0BAQ5Bx9I,KAAKm/I,mBACC,IAAI3B,EAAkB,wBAQ5Bx9I,KAAKo/I,qBACC,IAAI5B,EAAkB,0BAQ5Bx9I,KAAKq/I,gBACC,IAAI7B,EAAkB,oBAQ5Bx9I,KAAKs/I,kBACC,IAAI9B,EAAkB,sBAQ5Bx9I,KAAKu/I,oBACC,IAAI/B,EAAkB,qBAQ5Bx9I,KAAKw/I,iBACC,IAAIhC,EAAkB,sBAQ5Bx9I,KAAKy/I,mBACC,IAAIjC,EAAkB,wBAO5Bx9I,KAAK0/I,cAAgB,IAAIlC,EAAkB,oBAQ3Cx9I,KAAK2/I,oBACC,IAAInC,EAAkB,2BAO5Bx9I,KAAK4/I,aAAe,IAAIpC,EAAkB,mBAQ1Cx9I,KAAK6/I,mBACC,IAAIrC,EAAkB,0BAQ5Bx9I,KAAK8/I,uBACC,IAAItC,EAAkB,iBAQ5Bx9I,KAAK+/I,uBACC,IAAIvC,EAAkB,wBAO5Bx9I,KAAKggJ,sBACC,IAAIxC,EAAkB,gBAQ5Bx9I,KAAKigJ,sBACC,IAAIzC,EAAkB,uBAQ5Bx9I,KAAKkgJ,OAAS,IAAI1C,EAAkB,sBAEpCx9I,KAAKmgJ,2BAAwB5/I,EAE7BP,KAAKogJ,qBAAuBzmJ,IACxBqG,KAAKm+I,mBAAmBxkJ,GACxBqG,KAAKqgJ,kCAAkC1mJ,IAE3C4oB,EAAWZ,GACP41H,sBACAv3I,KAAKogJ,sBAETpgJ,KAAKsgJ,oBAAsB,KACvBriI,EAAOhZ,MAAM,uCACbjF,KAAK4+I,iBACL5+I,KAAKw+I,gBAAgBI,iBACrB5+I,KAAKugJ,gBAAgB3B,kBAEzBr8H,EAAWZ,GACP01H,aACAr3I,KAAKsgJ,qBAETtgJ,KAAKwgJ,uBAAyB,CAACzE,EAAWz/E,MAIpB,IAAdA,IACAr+C,EAAO/Y,KAAK,+BACZlF,KAAKygJ,sBAGbl+H,EAAWZ,GACP01H,gBACAr3I,KAAKwgJ,wBAETxgJ,KAAKw+I,gBACC,IAAIb,EAAmB39I,MAAM,EAAiBjS,GAEpDiS,KAAKugJ,gBACC,IAAI5C,EAAmB39I,MAAM,EAAgBjS,IAtN/CkwB,EAAO/Y,KAAK,uCA+NpBi5I,mBAAmBxkJ,GAEf,IAAKA,EAGD,YAFAskB,EAAOjZ,MAAM,YAKjB,MAAM8gC,EAAQ9lC,KAAKumH,YAAYppD,cACzBujF,EAAW1gJ,KAAKumH,YAAYte,sBAElC,IAAKniE,GAAS46G,EAAW,EAKrB,OAUJ,MAAM/hC,EAAUhlH,EAAKglH,QACfzmF,EAAYv+B,EAAKu+B,UACjB6mF,EAAaplH,EAAKolH,WAClBrnF,EAAY/9B,EAAKklH,UACjBxoF,EAAa18B,EAAK08B,WAExB,GAAKsoF,EAIE,GAAKzmF,EAIL,GAAK6mF,EAIL,GAAKrnF,EAIL,GAAKrB,GA2DZ,GArDAr2B,KAAKi/I,mBAAmB/+F,QAAQy+D,EAAQtpF,MAAMupF,QAC9C5+G,KAAKk/I,qBAAqBh/F,QAAQy+D,EAAQtpF,MAAM0nE,UAEhD/8F,KAAKm/I,mBAAmBj/F,QAAQy+D,EAAQ1qF,MAAM2qF,QAC9C5+G,KAAKo/I,qBAAqBl/F,QAAQy+D,EAAQ1qF,MAAM8oE,UAE5Cj9E,IAAQozF,gCACRlzG,KAAKq/I,gBAAgBn/F,QAAQhoB,EAAU0mF,QACvC5+G,KAAKs/I,kBAAkBp/F,QAAQhoB,EAAU6kE,WAG7C/8F,KAAKw/I,iBAAiBt/F,QAAQ6+D,EAAWH,QACzC5+G,KAAKy/I,mBAAmBv/F,QAAQ6+D,EAAWhiB,UAC3C/8F,KAAKu/I,oBAAoBr/F,QAAQ6+D,EAAWlyB,OAE5C7sF,KAAKkgJ,OAAOhgG,QAAQvmD,EAAKolG,mBAErBrnE,IACA13B,KAAK0/I,cAAcx/F,QACflgD,KAAK2gJ,sBACDjpH,GAAW,EAAoB+G,WACvCz+B,KAAK2/I,oBAAoBz/F,QACrBlgD,KAAK2gJ,sBACDjpH,GAAW,EAAoB+G,YAEvCz+B,KAAK4/I,aAAa1/F,QACdlgD,KAAK2gJ,sBACDjpH,GAAW,EAAkB+G,WACrCz+B,KAAK6/I,mBAAmB3/F,QACpBlgD,KAAK2gJ,sBACDjpH,GAAW,EAAkB+G,aAGrCpI,IACAr2B,KAAK8/I,uBAAuB5/F,QACxBlgD,KAAK4gJ,yBACDvqH,GAAY,EAAoBoI,WAExCz+B,KAAK+/I,uBAAuB7/F,QACxBlgD,KAAK4gJ,yBACDvqH,GAAY,EAAoBoI,YAExCz+B,KAAKggJ,sBAAsB9/F,QACvBlgD,KAAK4gJ,yBACDvqH,GAAY,EAAkBoI,WAEtCz+B,KAAKigJ,sBAAsB//F,QACvBlgD,KAAK4gJ,yBACDvqH,GAAY,EAAkBoI,aAG1Cz+B,KAAK69I,YAAc,EAEf79I,KAAK69I,YAAc79I,KAAK49I,GAAI,CAE5B,MAAMU,EAAc,CAChBngG,IAAKrY,EACL,gBAAmB46G,GAGnB/mJ,EAAKikB,WAAajkB,EAAKikB,UAAUrnB,QACjCvJ,OAAOgoG,OAAOspD,EAAa,CACvB,qBACI3kJ,EAAKikB,UAAU,GAAG2jG,mBACtB,sBACI5nH,EAAKikB,UAAU,GAAG6jG,oBACtB,eAAkB9nH,EAAKikB,UAAU,GAAG3W,OAI5CjH,KAAKi/I,mBAAmBvB,aAAaY,GACrCt+I,KAAKk/I,qBAAqBxB,aAAaY,GAEvCt+I,KAAKm/I,mBAAmBzB,aAAaY,GACrCt+I,KAAKo/I,qBAAqB1B,aAAaY,GAEnCx+H,IAAQozF,gCACRlzG,KAAKq/I,gBAAgB3B,aAAaY,GAClCt+I,KAAKs/I,kBAAkB5B,aAAaY,IAExCt+I,KAAKw/I,iBAAiB9B,aAAaY,GACnCt+I,KAAKy/I,mBAAmB/B,aAAaY,GACrCt+I,KAAKu/I,oBAAoB7B,aAAaY,GAEtCt+I,KAAK0/I,cAAchC,aAAaY,GAC3B5kI,MAAM1Z,KAAK2/I,oBAAoBlC,cAChCz9I,KAAK2/I,oBAAoBjC,aAAaY,GAE1Ct+I,KAAK4/I,aAAalC,aAAaY,GAC1B5kI,MAAM1Z,KAAK6/I,mBAAmBpC,cAC/Bz9I,KAAK6/I,mBAAmBnC,aAAaY,GAGzCt+I,KAAK8/I,uBAAuBpC,aAAaY,GACpC5kI,MAAM1Z,KAAK+/I,uBAAuBtC,cACnCz9I,KAAK+/I,uBAAuBrC,aAAaY,GAE7Ct+I,KAAKggJ,sBAAsBtC,aAAaY,GACnC5kI,MAAM1Z,KAAKigJ,sBAAsBxC,cAClCz9I,KAAKigJ,sBAAsBvC,aAAaY,GAG5Ct+I,KAAKkgJ,OAAOxC,aAAaY,GAEzBl/H,IAAWoI,cAAcsE,YAAoBwyH,IAE7Ct+I,KAAK4+I,uBA/GL3gI,EAAOjZ,MAAM,sBAJbiZ,EAAOjZ,MAAM,uBAJbiZ,EAAOjZ,MAAM,wBAJbiZ,EAAOjZ,MAAM,uBAJbiZ,EAAOjZ,MAAM,gBA8IrB47I,yBAAyBC,EAAiBt7H,EAASiZ,GAC/C,IAAIsiH,EAAgB,EAChBlxC,EAAY,EAChB,MAAMmxC,EAAO/gJ,KAAKumH,YAAYrqD,WAE9B,IAAK,MAAM8kF,KAAUh0J,OAAOuY,KAAKs7I,GAC7B,GAAIt7H,EAAUy7H,IAAWD,EAAOC,IAAWD,EAAM,CAC7C,MAAM1kF,EACA92C,EACI,KACAvlB,KAAKumH,YAAYtpD,mBAAmB+jF,GACxCC,EAAmBJ,EAAgBG,GAGzC,IAAKz7H,GAAW82C,IAAgB4kF,EAAkB,CAC9C,MAAMC,EAAgBlhJ,KAAKmhJ,6BACvBF,EAAkB5kF,EAAa79B,GAE9B9kB,MAAMwnI,KACPJ,GAAiBI,EACjBtxC,GAAa,IAM7B,OAAOkxC,EAAgBlxC,EAc3BuxC,6BAA6BC,EAAQ/kF,EAAa79B,GAC9C,IAAIhO,EAAQxjC,OAAOuY,KAAK67I,GAAQ57I,IAAIwf,GAAQzL,OAAOyL,IAC/C6W,EAAc,KAIlB,MAAMvY,EAAMtjB,KAAKumH,YAAYjgB,0BAEzBjqC,GACAxgC,EAAcwgC,EAAY4B,qBAAqB1/B,KAC3C1C,IACArL,EACMA,EAAME,OACJ1L,GAAQ6W,EAAY5K,KAChBqN,IACKA,EAAMggC,WACAhgC,EAAMivE,YAAcvoF,GACpBsZ,EAAME,YAAcA,OAG/C3C,EAAc77B,KAAKumH,YAAYr/E,eAAe3I,KAC9C/N,EACMA,EAAME,OACJ1L,GAAQ6W,EAAY5K,KAChBqN,IACKA,EAAMggC,WACAh7C,EAAIgqF,aAAahvE,KAAWtZ,GAC5BsZ,EAAME,YAAcA,KAG/C,IAAIsiH,EAAgB,EAChBO,EAAgB,EAEpB,IAAK,MAAMr8H,KAAQwL,EAAO,CACtB,MAAM8wH,EACA/nI,OAAO6nI,EAAOp8H,GAAMkP,QAAU3a,OAAO6nI,EAAOp8H,GAAMuR,QAGnD7c,MAAM4nI,IAAmBA,EAAiB,IAC3CR,GAAiBQ,EACjBD,GAAiB,GAIzB,OAAOP,EAAgBO,EAa3BV,sBAAsBjpH,EAAWnS,EAASiZ,GACtC,IAAI+iH,EAAa,EACb3xC,EAAY,EAChB,MAAMmxC,EAAO/gJ,KAAKumH,YAAYrqD,WAE9B,IAAK,MAAM8kF,KAAUh0J,OAAOuY,KAAKmyB,GAC7B,GAAInS,EAAUy7H,IAAWD,EAAOC,IAAWD,EAAM,CAC7C,MAAM1kF,EACA92C,EACI,KAAOvlB,KAAKumH,YAAYtpD,mBAAmB+jF,GAC/CQ,EAAY9pH,EAAUspH,GAG5B,IAAKz7H,GAAW82C,IAAgBmlF,EAAW,CACvC,MAAMC,EACAzhJ,KAAK0hJ,0BACHF,EAAWnlF,EAAa79B,GAE3B9kB,MAAM+nI,KACPF,GAAcE,EACd7xC,GAAa,IAM7B,OAAO2xC,EAAa3xC,EAcxB8xC,0BAA0BN,EAAQ/kF,EAAa79B,GAC3C,IAAIhO,EAAQxjC,OAAOuY,KAAK67I,GAAQ57I,IAAIwf,GAAQzL,OAAOyL,IAC/C6W,EAAc,KAIlB,MAAMvY,EAAMtjB,KAAKumH,YAAYjgB,0BAEzBjqC,GACAxgC,EAAcwgC,EAAY4B,qBAAqB1/B,KAC3C1C,IACArL,EACMA,EAAME,OACJ1L,GAAQ6W,EAAY5K,KAChBqN,IAAUA,EAAMggC,WACThgC,EAAMivE,YAAcvoF,GACpBsZ,EAAME,YAAcA,OAG3C3C,EAAc77B,KAAKumH,YAAYr/E,eAAe3I,KAC9C/N,EACMA,EAAME,OACJ1L,GAAQ6W,EAAY5K,KAChBqN,IAAUA,EAAMggC,WACTh7C,EAAIgqF,aAAahvE,KAAWtZ,GAC5BsZ,EAAME,YAAcA,KAG3C,IAAI+iH,EAAa,EACbF,EAAgB,EAEpB,IAAK,MAAMr8H,KAAQwL,EAAO,CACtB,MAAMmxH,EAAcpoI,OAAO6nI,EAAOp8H,KAG7BtL,MAAMioI,IAAgBA,EAAc,IACrCJ,GAAcI,EACdN,GAAiB,GAIzB,OAAOE,EAAaF,EAUxBhB,kCAAkC1mJ,GAC9B,IAAKA,IAASA,EAAKikB,YAAcjkB,EAAKikB,UAAUrnB,OAC5C,OAEJ,MAAMqrJ,EAAiB,CACnBzjG,IAAKxkD,EAAKikB,UAAU,GAAGugC,IACvB,qBAAwBxkD,EAAKikB,UAAU,GAAG2jG,mBAC1C,sBAAyB5nH,EAAKikB,UAAU,GAAG6jG,oBAC3C,eAAkB9nH,EAAKikB,UAAU,GAAG3W,MAGnCjH,KAAKmgJ,uBAA0BpjE,IAAQ6kE,EAAgB5hJ,KAAKmgJ,yBAC7DngJ,KAAKmgJ,sBAAwByB,EAC7BxiI,IAAWoI,cAAcuE,YAA0B61H,KAW3DnB,oBACIzgJ,KAAK4+I,iBACL5+I,KAAKw+I,gBAAgBI,iBAOzBA,iBACI5+I,KAAKi/I,mBAAmB52I,QACxBrI,KAAKk/I,qBAAqB72I,QAE1BrI,KAAKm/I,mBAAmB92I,QACxBrI,KAAKo/I,qBAAqB/2I,QAE1BrI,KAAKq/I,gBAAgBh3I,QACrBrI,KAAKs/I,kBAAkBj3I,QAEvBrI,KAAKw/I,iBAAiBn3I,QACtBrI,KAAKy/I,mBAAmBp3I,QACxBrI,KAAKu/I,oBAAoBl3I,QAEzBrI,KAAK0/I,cAAcr3I,QACnBrI,KAAK2/I,oBAAoBt3I,QACzBrI,KAAK4/I,aAAav3I,QAClBrI,KAAK6/I,mBAAmBx3I,QAExBrI,KAAK8/I,uBAAuBz3I,QAC5BrI,KAAK+/I,uBAAuB13I,QAC5BrI,KAAKggJ,sBAAsB33I,QAC3BrI,KAAKigJ,sBAAsB53I,QAE3BrI,KAAKkgJ,OAAO73I,QAEZrI,KAAK69I,WAAa,EAMtB76H,UACIhjB,KAAKumH,YAAY93E,IACb4oG,aACAr3I,KAAKsgJ,qBACTtgJ,KAAKumH,YAAY93E,IACb8oG,sBACAv3I,KAAKogJ,sBACTpgJ,KAAKumH,YAAY93E,IACb4oG,gBACAr3I,KAAKwgJ,wBACTxgJ,KAAKw+I,gBAAgBx7H,UACrBhjB,KAAKugJ,gBAAgBv9H,c,qFCx/B7B,8EASe,MAAMw8E,EAQjBvpG,YAAYssB,GACRviB,KAAKwmB,MAAQ,CACTi5B,MAAO,GAIPoiG,kBAAmB,MAGvB,MAAMr8H,EAASjD,EAAW25C,WAE1Bl8D,KAAKwmB,MAAMi5B,MAAMj6B,GAAU,IAAIs8H,IAAat8H,EAAQ,MAAM,GAC1DxlB,KAAKuiB,WAAaA,EAElBA,EAAW8Z,iBACP1Z,2BACA3iB,KAAK+hJ,mBAAmBj0J,KAAKkS,OACjCuiB,EAAW8Z,iBACP1Z,cACA3iB,KAAKgiJ,YAAYl0J,KAAKkS,OAC1BuiB,EAAW8Z,iBACP1Z,YACA3iB,KAAKiiJ,aAAan0J,KAAKkS,OAC3BuiB,EAAW8Z,iBACP1Z,uBACA3iB,KAAKkiJ,qBAAqBp0J,KAAKkS,OAC/BuiB,EAAWlD,MACXkD,EAAWlD,KAAKukB,YACZ+W,IAAWpoD,uBACXyN,KAAKmiJ,aAAar0J,KAAKkS,OAanC+hJ,mBAAmBF,GACf,MAAMO,EACApiJ,KAAKwmB,MAAMi5B,MAAMz/C,KAAKwmB,MAAMq7H,mBAC5BQ,EAAqBriJ,KAAKwmB,MAAMi5B,MAAMoiG,GAE5CO,GAAsBA,EAAmBl2D,oBAAmB,GAC5Dm2D,GAAsBA,EAAmBn2D,oBAAmB,GAC5DlsF,KAAKwmB,MAAMq7H,kBAAoBA,EAWnCG,YAAYx8H,EAAQ62C,GACZA,EAAYgrC,YAIXrnG,KAAKwmB,MAAMi5B,MAAMj6B,KAClBxlB,KAAKwmB,MAAMi5B,MAAMj6B,GAAU,IAAIs8H,IAAat8H,EAAQ62C,EAAYkwB,mBAYxE01D,aAAaz8H,GACT,MAAM88H,EAAYtiJ,KAAKwmB,MAAMi5B,MAAMj6B,GAE/B88H,GACAA,EAAUv1D,gBAYlBm1D,qBAAqB18H,EAAQgnE,GACzB,MAAM81D,EAAYtiJ,KAAKwmB,MAAMi5B,MAAMj6B,GAE/B88H,GACAA,EAAUt2D,eAAeQ,GAWjC+jB,WACI,OAAOvwG,KAAKwmB,MAAMi5B,MAStB0iG,aAAaI,GACT,IAAK,MAAM/8H,KAAU+8H,EAAU,CAC3B,IAAIC,EACJ,MAAMC,EAAiBziJ,KAAKuiB,WAAW06C,mBAAmBz3C,GAGrDi9H,GAAmBA,EAAep7C,aAC/BrnG,KAAKwmB,MAAMi5B,MAAMj6B,IACjBg9H,EAAuBxiJ,KAAKwmB,MAAMi5B,MAAMj6B,GAEnCg9H,EAAqBj2D,kBACtBi2D,EACKx2D,eAAeu2D,EAAS/8H,GAAQqmE,eAGzC22D,EAAuB,IAAIV,IACvBt8H,EAAQ+8H,EAAS/8H,GAAQqmE,aAC7B7rF,KAAKwmB,MAAMi5B,MAAMj6B,GAAUg9H,EAC3BA,EAAqBz1D,kBAI7By1D,EAAqBr2D,yBACfo2D,EAAS/8H,GAAQ2mE,6B,gBC/JnC,MAAM+P,EAAgB9+E,EAAQ,IACxBslI,EAAgBtlI,EAClB,KAiBJ,SAAS2oF,IAEL/lG,KAAK2iJ,cAAgB,IAAIzmD,EAGzBl8F,KAAK4iJ,qBAAuB,IAAIF,EAGhC1iJ,KAAKw8H,QAAU,KAIfx8H,KAAK27F,UAAY,KAGjB37F,KAAK6iJ,cAAgB,KAIrB7iJ,KAAKwL,SAAW,KAIhBxL,KAAKw5F,QAAU,GAGfx5F,KAAKitC,MAzCY,SA6CjBjtC,KAAK8iJ,WAAa,EA+DtB,SAASC,EAAaj9C,EAAa9vB,GAO/B,GANAjxE,QAAQH,IACJ,0FAC2BoxE,EAAOgtE,UAAUzsJ,QAI5Cy/E,EAAOgtE,UAAUzsJ,OAAS,EAAG,CAC7B,IAAIy5D,EAASgmB,EAAO2lB,UAAUsnD,qBACxBn9C,EAAYnK,UAAUsnD,qBAIxBjzF,EAAS,IACTA,EAAS,GAGb,IAAIp/B,EAAQ,IAEZolD,EAAOgtE,UAAU5zI,QAAQ8zI,IACrBA,EAAWC,OAASnzF,EACpBkzF,EAAWhlE,KAAOluB,EAClBp/B,GAAYsyH,EAAWE,KAAb,MAEdxyH,GAAS,IACT7rB,QAAQH,IAAIgsB,GAKZolD,EAAOgtE,UAAUn2J,KAAOmpF,EAAOnpF,KAInCi5G,EAAYtM,QAAQt2F,KAAK8yE,EAAOgtE,WAChCl9C,EAAY02B,UACZz3H,QAAQH,IAAK,oBAAmBkhG,EAAY02B,SAG5C12B,EAAYu9C,aAkHhB,SAASC,EAAmBC,GACxB,IAAK,IAAIj3J,EAAI,EAAGA,EAAIi3J,EAAoBhtJ,OAAQjK,IACN,IAAlCi3J,EAAoBj3J,GAAGiK,QACvBgtJ,EAAoBt/I,OAAO3X,EAAG,GAItC,OAAOi3J,EAAoBhtJ,OAAS,EAvNxCwvG,EAAY73G,UAAU6uB,MAAQ,WAC1B,GAtDiB,WAsDb/c,KAAKitC,MACL,MAAM,IAAI51C,MACL,4FAEG2I,KAAKitC,gBAEjBjtC,KAAKitC,MA3De,YA4DpBjtC,KAAK2iJ,cAAc5lI,QACnB/c,KAAK27F,UAAY,IAAIxzF,MASzB49F,EAAY73G,UAAU01B,KAAO,SAAcpY,GACvC,GAvEoB,cAuEhBxL,KAAKitC,MACL,MAAM,IAAI51C,MACL,8FAEG2I,KAAKitC,gBAIjBloC,QAAQH,IAAI,8CACZ5E,KAAK2iJ,cAAc/+H,OAGnB,MAAM4/H,EAAWT,EAAaj1J,KAAK,KAAMkS,MAEzCA,KAAK2iJ,cAAcxlD,sBAAsB/tF,QAAQq0I,IAC7CzjJ,KAAK4iJ,qBAAqBv1I,KAAKo2I,EAAiBD,GAChDxjJ,KAAKw8H,YAITx8H,KAAKitC,MA1FkB,eA6FvBjtC,KAAKwL,SAAWA,GA2DpBu6F,EAAY73G,UAAUm1J,WAAa,WAxJR,iBAyJnBrjJ,KAAKitC,OAAiD,IAAjBjtC,KAAKw8H,SAG1Cx8H,KAAK0jJ,SAQb39C,EAAY73G,UAAUw1J,MAAQ,WAC1B3+I,QAAQH,IACH,sDACG5E,KAAKw5F,QAAQjjG,QACrByJ,KAAK6iJ,cAAgB,GAOrB,MAAMc,EAAS3jJ,KAAKw5F,QAGdoqD,EAAiB,GASvB,IANAN,EAAmBK,GAGnBA,EAAOv0I,QAAQwhB,GA6FnB,SAA+BA,EAAOwyH,GAClC,GAAqB,IAAjBxyH,EAAMr6B,OACNq6B,EAAM1tB,KAAKkgJ,OACR,CACH,GAAIxyH,EAAMA,EAAMr6B,OAAS,GAAG4sJ,OAASC,EAAKD,MAGtC,YAFAvyH,EAAM1tB,KAAKkgJ,GAKf,IAAK,IAAI92J,EAAI,EAAGA,EAAIskC,EAAMr6B,OAAQjK,IAC9B,GAAI82J,EAAKD,MAAQvyH,EAAMtkC,GAAG62J,MAGtB,YAFAvyH,EAAM3sB,OAAO3X,EAAG,EAAG82J,GAK3BxyH,EAAM1tB,KAAKkgJ,IA9GSS,CAAsBD,EAAgBhzH,IAGvD0yH,EAAmBK,IAAS,CAE/B,IAAIG,EAAkBH,EAAO,GAE7BA,EAAOv0I,QAAQ4zI,IACPA,EAAU,GAAGG,MAAQW,EAAgB,GAAGX,QACxCW,EAAkBd,KAK1B,IAAIe,EAAYD,EAAgBp2H,QAMhC,IAJA1tB,KAAKgkJ,oBAAoBD,EAAWD,EAAgBj3J,MAI7Ci3J,EAAgBvtJ,OAAS,GAAG,CAC/B,IAAI0tJ,GAAe,EACnB,MAAMC,EAAgBJ,EAAgB,GAAGX,MASzC,GAPAQ,EAAOv0I,QAAQ4zI,IACPA,EAAU,GAAGG,MAAQe,IACrBD,GAAe,KAKnBA,EACA,MAGJF,EAAYD,EAAgBp2H,QAC5B1tB,KAAKgkJ,oBAAoBD,EAAW,OAM5C/jJ,KAAKitC,MAjOc,WAkOfjtC,KAAKwL,UACLxL,KAAKwL,SAASxL,KAAK6iJ,gBAU3B98C,EAAY73G,UAAU81J,oBAAsB,SAASZ,EAAMv2J,GACnDA,UACAmT,KAAK6iJ,eAAkB,KAAIh2J,KAC3BmT,KAAK8iJ,WAAaj2J,EAAK0J,OAAS,GAEhCyJ,KAAK8iJ,WAAaM,EAAKA,KAAK7sJ,OA/OJ,KAgPxByJ,KAAK6iJ,eAAiB,SACtB7iJ,KAAK8iJ,WAAa,GAEtB9iJ,KAAK6iJ,eAAkB,IAAGO,EAAKA,KAC/BpjJ,KAAK8iJ,YAAcM,EAAKA,KAAK7sJ,OAAS,GAwD1CwvG,EAAY73G,UAAUiwC,SAAW,SAASG,GACtCt+B,KAAK2iJ,cAAcxkH,SAASG,IAOhCynE,EAAY73G,UAAUsmG,YAAc,SAASl2D,GACzCt+B,KAAK2iJ,cAAcnuD,YAAYl2D,IAQnCynE,EAAY73G,UAAUi2J,iBAAmB,WACrC,GAjUmB,aAiUfnkJ,KAAKitC,MACL,MAAM,IAAI51C,MACL,qGAEG2I,KAAKitC,gBAGjB,OAAOjtC,KAAK6iJ,eAMhB98C,EAAY73G,UAAUmvI,SAAW,WAC7B,OAAOr9H,KAAKitC,OAOhB84D,EAAY73G,UAAUma,MAAQ,WAC1BrI,KAAKitC,MA1VY,SA2VjBjtC,KAAKw8H,QAAU,KACfx8H,KAAK6iJ,cAAgB,KACrB7iJ,KAAK27F,UAAY,KACjB37F,KAAKwL,SAAW,KAChBxL,KAAKw5F,QAAU,GACfx5F,KAAK8iJ,WAAa,GAGtB/2J,EAAOD,QAAUi6G,G,8BCvWjB,yDAEA,MAAM9nF,EAASb,EAAQ,GAAqBW,UAAUM,GAUvC,SAAS8/E,EAAmB57E,GAEvCviB,KAAK0gF,SAAW,GAEhB1gF,KAAKuiB,WAAaA,EAClBviB,KAAKuiB,WAAWqiF,mBACZ,WAAY5kG,KAAKokJ,gBAAgBt2J,KAAKkS,OAG9Cm+F,EAAmBjwG,UAAUk2J,gBACvB,SAAS1jE,EAAU2jE,EAAa32C,GAC9B,IAAK1tG,KAAKuiB,WAAWkrF,SAASC,GAK1B,YAJAzvF,EAAO9Y,KACF,8CAA6Cu7E,EAC9CgtB,GAKR,MAAM9oG,EAAM,GAEZ87E,EAASkY,SAASxpF,QAAQwf,IAEtB,MAAM/hC,EAAO+hC,EAAU3xB,WAAWpQ,KAC5BknD,EAAUnlB,EAAUrhC,MAEtByS,KAAK0gF,SAAS7zF,KAAUknD,IACxB/zC,KAAK0gF,SAAS7zF,GAAQknD,EACtB91B,EAAO/Y,KAAM,OAAMrY,cAAiBknD,KAEpCnvC,EAAI1B,KAAK,CACLgE,GAAI,oBACJ0nB,UAAW/hC,EACXknD,eAMRnvC,EAAIrO,OAAS,GACb6oB,IAAWkH,QAAQ1Z,KAAKwL,UAAUxT,KAW9Cu5F,EAAmBjwG,UAAUo2J,oBAAsB,SAASC,GACxD,OAAOvkJ,KAAK0gF,SAAS6jE,M,kFChEzB,0FACA,MAAMtmI,EAASF,oBAAUM,GAUV,MAAM0hF,EAOjB9pG,YAAY67G,GACR9xG,KAAK8xG,SAAWA,EAChB9xG,KAAKwf,aAAesyF,EAAStyF,aAC7BvB,EAAOhZ,MAAM,uBACbjF,KAAK29C,SAAW,GAEhB39C,KAAKwkJ,2BAA6BxkJ,KAAKykJ,oBAAoB32J,KAAKkS,MAKhE8xG,EAAShN,oBAAoB,uBACzB9kG,KAAK0kJ,oBAAoB52J,KAAKkS,OAStC0kJ,oBAAoBxjJ,GAChB,MAAMjE,EAAaiE,EAAKjE,WAExB,IAAKA,EACD,OAGJghB,EAAOhZ,MAAM,+BAAgChI,GAE7C,MAAMugE,EAAWvgE,EAAWgwC,MAE5B,GAAIuwB,IAAax9D,KAAKitC,MAItB,OAAQuwB,GACR,KAAKmnF,WACL,KAAKA,YACL,KAAKA,gBACL,KAAKA,iBACL,KAAKA,eAAwB,CACzB,MAAMjlF,EAAUziE,EAAW2nJ,WAE3B,IAAKllF,EACD,OAIJ,MAAMznD,EAAUjY,KAAK29C,SAAS+hB,GAE1BznD,EACAA,EAAQ4sI,SAASrnF,EAAUvgE,EAAW6nJ,gBAEtC7mI,EAAO9Y,KAAK,kCAAmCu6D,KAc3DgxC,wBAAwBC,EAAY9kB,GAChC,GAAI7rF,KAAK29C,SAASgzD,GAId,OAHA1yF,EAAO9Y,KAAK,uDACRwrG,GAEG,IAAIt5G,MAAMstJ,wBAGrB,MAAM1sI,EAAU,IAAI8sI,IAChBp0C,EAAY9kB,EAAa7rF,KAAK8xG,UAMlC,OAJA75F,EAAQ+sI,iBAAiBhlJ,KAAKwkJ,4BAE9BxkJ,KAAK29C,SAASgzD,GAAc14F,EAErBA,EASXwsI,oBAAoBp9H,GAChB,MAAMq4C,EAAUr4C,EAAMq4C,QAEtB,GAAIr4C,EAAMm2C,WAAamnF,aAChBt9H,EAAMm2C,WAAamnF,eAAwB,CAC9C,MAAM1sI,EAAUjY,KAAK29C,SAAS+hB,GAE9B,IAAKznD,EAID,YAHAgG,EAAOjZ,MAAM,6CACT06D,GAKRznD,EAAQgtI,oBAAoBjlJ,KAAKwkJ,mCAC1BxkJ,KAAK29C,SAAS+hB,GAGzB1/D,KAAKwf,aAAa0D,KACdy3B,IAAW5nD,mCACXs0B,O,6EClIZ,gFAOA,MAAMpJ,EAASF,oBAAUM,GAYV,MAAM0mI,UAA+B3qH,IAWhDnkC,YAAY06G,EAAY9kB,EAAaimB,GACjCz3E,QAEAr6B,KAAK2wG,WAAaA,EAClB3wG,KAAK6rF,YAAcA,EACnB7rF,KAAK8xG,SAAWA,EAShB9xG,KAAKitC,WAAQ1sC,EAMjBqjB,OACQ5jB,KAAKitC,QAAU2jE,aACZ5wG,KAAKitC,QAAU2jE,eAMtB5wG,KAAKklJ,aAAa,QALdjnI,EAAO9Y,KAAK,mDAWpB4X,QAGQ/c,KAAKitC,QAAU2jE,YACZ5wG,KAAKitC,QAAU2jE,aACf5wG,KAAKitC,QAAU2jE,iBACf5wG,KAAKitC,QAAU2jE,iBAMtB5wG,KAAKklJ,aAAa,SALdjnI,EAAO9Y,KAAK,yCAgBpB0/I,SAASrnF,EAAU2nF,GACf,GAAI3nF,IAAax9D,KAAKitC,MAClB,OAGJ,MAAMm4G,EAAWplJ,KAAKitC,MAEtBjtC,KAAKitC,MAAQuwB,EACbx9D,KAAKwf,aAAa0D,KAlFJ,gBAmFV,CACIw8C,QAAS1/D,KAAK2wG,WACdw0C,gBACAC,WACA5nF,SAAUx9D,KAAKitC,MACf4+C,YAAa7rF,KAAK6rF,cAW9Bm5D,iBAAiBtjI,GACb1hB,KAAK4jC,YApGS,gBAoGkBliB,GAQpCujI,oBAAoBvjI,GAChB1hB,KAAK8hB,eA7GS,gBA6GqBJ,GASvCwjI,aAAa16H,GACT,MAAMvtB,EAAa,CACf,MAAS,kCACT,OAAUutB,EACVo6H,WAAY5kJ,KAAK2wG,YAGrB1zG,EAAWooJ,YAAcrlJ,KAAK6rF,YAE9B,MAAM54E,EAAKtX,cAAI,CACXotC,GAAI/oC,KAAK8xG,SAASvZ,YAClBtxF,KAAM,QACLta,EAAE,QAASsQ,GACXkJ,KAEL8X,EAAOhZ,MAASulB,EAAF,wBAAiCvX,EAAG/M,UAClDlG,KAAK8xG,SAASv9F,WAAWnG,OACrB6E,EACA,OACAjO,IACIiZ,EAAOjZ,MACF,aAAYwlB,kCAAwCxlB,GACzDhF,KAAK6kJ,SAASj0C,sB,yFCzJ9B,gFAOA,MAAM3yF,EAASF,oBAAUM,GAYV,SAASinI,IAEpB,OAAO,IAAItoH,QAAQC,IACf6F,IAAIvI,iBAAiBI,IACjB,MAAM4qH,EAAe5qH,EAAQjK,OAAO8I,GAA0B,eAAhBA,EAAOJ,MAC/CosH,EAAqB,GAG3B,IAAK,MAAMC,KAAaF,EAAc,CAClC,MAAMG,EAAgB5iH,IAAIlF,+BAA+B,CAAEjD,QAAS,CAAE,SAClE9D,YAAa4uH,EAAU9vH,WAAY+E,KAAK2M,IAIxC,MAAM/I,EAAQ+I,EAAO,GACfo1D,EAAiBn+D,EAAMmnD,oBAO7B,OALArmE,IAAWkC,gBAAgBm7E,EAAgBn+D,EAAMoK,cAAc56C,KAAKwwC,IACpEA,EAAMjC,iBAAiBugC,sBAAsC,KACzDx9C,IAAWuE,eAAe84E,KAGvBn+D,IAGXknH,EAAmBtiJ,KAAKwiJ,GAG5B1oH,QAAQo+C,WAAWoqE,GAAoB9qH,KAAKirH,IACxC,MAAMC,EAAqBD,EAAaj1H,OAAOtiC,GAAkB,cAAbA,EAAE2hB,QAChD81I,EAAmBF,EAAaj1H,OAAOtiC,GAAkB,aAAbA,EAAE2hB,QAG9CilB,EAAmB4wH,EAAmBpgJ,IAAIpX,GAAKA,EAAEb,OACjDu4J,EAAgBD,EAAiBrgJ,IAAIpX,GAAKA,EAAEb,OAElD,IAAK,MAAMiiB,KAAUs2I,EACjB7nI,EAAOjZ,MAAM,8CAA+CwK,GAIhE,IAAK,MAAMgqB,KAAUxE,EACjBwE,EAAO7X,GAAGi7C,4BAA4Cj0B,IAK9CA,EAAa,OACbo9G,EAAkB/wH,GAClBiI,EAAQ,CAAEtH,SAAU6D,EAAO7D,SACvBqwH,YAAaxsH,EAAO8E,MAAM5E,WAM1CnvB,WAAW,KACPw7I,EAAkB/wH,GAClBiI,EAAQ,CACJtH,SAAU,GACVqwH,YAAa,MApEX,WAoF1B,SAASD,EAAkB7sH,GACvB,IAAK,MAAMM,KAAUN,EACjBM,EAAOyvD,gB,kvCCrFf,MAAMhrE,EAASF,oBAAUM,GAOV,MAAM4nI,EAmBjBhwJ,YAAYkR,EAAU,IAClB,MAAM,gBACF++I,GAEA/+I,EADGg/I,EAFP,EAGIh/I,EAHJ,qBAUAnH,KAAKqxD,SAAL,GACIxrB,UAAWqgH,GACJA,EAAgB7mI,KAAK9K,WAAW+9B,OAAOqiF,cAC3CwxB,GAQPnmJ,KAAKomJ,gBAAkB,KAGvBpmJ,KAAKqmJ,cAAgBrmJ,KAAKqmJ,cAAcv4J,KAAKkS,MAC7CA,KAAKsmJ,eAAiBtmJ,KAAKsmJ,eAAex4J,KAAKkS,MAC/CA,KAAKumJ,gBAAkBvmJ,KAAKumJ,gBAAgBz4J,KAAKkS,MAiBrDwmJ,eAAe/hJ,GACX,MAAM2rG,EAAU3rG,EAAQ9N,KAExB,IAAKy5G,EACD,OAMJ,GAAIpwG,KAAKomJ,iBACFpmJ,KAAKomJ,gBAAgBK,eAAiBr2C,EAOzC,YANApwG,KAAKqmJ,cACDj2C,EACAvsD,IAAQvZ,iBACR,YAMR,MAAMr3B,EAAKjT,KAAK0mJ,oBAAoBjiJ,EAAQ9K,KAAKsZ,IAC3C0zI,EAAU1zI,GAAMA,EAAGge,KAAK,UACxBzG,EAASm8H,GAAWA,EAAQplJ,KAAK,UAEnCipB,IAAWq5B,IAAQE,WACnB/jD,KAAKomJ,gBAAkBpmJ,KAAK4mJ,sBAAsBx2C,EAAS,CACvDhlC,aAAa,EACby7E,cAAc,KAMlB7mJ,KAAKomJ,iBACLpmJ,KAAKomJ,gBAAgBI,eAAeG,GAKpCn8H,IAAWq5B,IAAQvZ,kBAChB9f,IAAWq5B,IAAQI,aACnBz5B,IAAWq5B,IAAQG,WACtBhkD,KAAK8mJ,uBAeb/pI,MAAMqzF,EAASptE,EAAc,IACzBhjC,KAAKomJ,gBAAkBpmJ,KAAK4mJ,sBAAsBx2C,EAAS,CACvDhlC,aAAa,EACby7E,cAAc,IAGlB7mJ,KAAKomJ,gBAAgBrpI,MAAMimB,GAQ/Bpf,OACQ5jB,KAAKomJ,iBACLpmJ,KAAKomJ,gBAAgBxiI,OAGzB5jB,KAAKomJ,gBAAkB,KAW3BM,oBAAoBK,GAChB,IACI,MAAMC,GAAS,IAAI/kJ,WAAYC,gBAAgB6kJ,EAAK,YAEpD,OAAOt0G,EAAEu0G,GACX,MAAO3tJ,GAGL,OAFA4kB,EAAOjZ,MAAM,kDAEN,MAef4hJ,sBAAsBx2C,EAASjpG,EAAU,IACrC,IAAKipG,EACD,MAAM,IAAI/4G,MAAM,mDAGpB,MAAM41E,EAAY,EAAH,CACXpnC,UAAW7lC,KAAKqxD,SAASxrB,UACzB+pF,QAAS5vH,KAAKqmJ,cACdY,eAAgBjnJ,KAAKumJ,gBACrBW,cAAelnJ,KAAKsmJ,eACpBl2C,WACGjpG,GAGP,OAAO,IAAIggJ,IAAkBl6E,GAiBjCo5E,cAAcj2C,EAASzlF,EAAWE,EAAU,IACxC5M,EAAOjZ,MACH,oCAAqCorG,EAASzlF,EAAWE,GAE7D,MAAM5X,EAAKtX,cAAI,CACXotC,GAAIqnE,EACJnpG,KAAM,QAELta,EAAE,SAAU,CACTsZ,MAAO,oBACPukB,OAAQG,IAEXh+B,EAAE,WACFa,EAAEq9B,GACF1kB,KAELnG,KAAKsmJ,eAAel2C,EAASn9F,GAEzBjT,KAAKomJ,iBACFpmJ,KAAKomJ,gBAAgBK,eAAiBr2C,GACzCpwG,KAAK8mJ,uBAebP,gBAAgBa,GACZ,IAAKpnJ,KAAKqxD,SAAS41F,eAIf,OAHAhpI,EAAOjZ,MAAM,gDACboiJ,EAAiBpkI,UAKrB,MAAMqkI,EAAUD,EAAiBz8E,eACjC,IAAInsC,EAEA6oH,IACA7oH,EAAYx+B,KAAKqxD,SAASi2F,sBACpB7oH,IAAUC,QAAUD,IAAUE,QAKxC,MAAMkC,EAAcumH,EAAiB3hE,oBAC/B8hE,EAAmBzkH,IAAI0kH,qBACzB,CACI,CACI7xH,SACK,SAAQ31B,KAAKomJ,gBAAgBK,aAClC96H,UAAW07H,EAAU9oH,IAAkBA,IACvCF,WAAY,QACZ9c,OAAQsf,EACRvC,MAAOuC,EAAY/H,iBAAiB,GACpC0F,eAIZx+B,KAAKqxD,SAAS41F,eAAeM,EAAiB,IAWlDjB,eAAel2C,EAASn9F,GACpB,GAAKjT,KAAKqxD,SAAS61F,cAInB,IACI,MAAMO,GACA,IAAIC,eAAgBC,kBAAkB10I,EAAG/M,UAAY+M,GAE3DjT,KAAKqxD,SAAS61F,cAAc92C,EAAS,CAAEn9F,GAAIw0I,IAC7C,MAAOpuJ,GACL4kB,EAAOjZ,MAAM,mDAUrB8hJ,uBACI9mJ,KAAK4jB,OAEL5jB,KAAKqxD,SAASu2F,oBACP5nJ,KAAKqxD,SAASu2F,yB,84BC7T7B,MAAM3pI,EAASF,oBAAUM,GASV,MAAM8oI,EAoBjBlxJ,YAAYkR,EAAU,IAClBnH,KAAKqxD,SAAL,GACIxrB,UAAW,GACXulC,aAAa,EACby8E,cAAc,EACdhB,cAAc,GACX1/I,GASPnH,KAAK+pG,QAAU,GAOf/pG,KAAKomJ,gBAAkB,KAGvBpmJ,KAAK2b,SAAW3b,KAAK2b,SAAS7tB,KAAKkS,MACnCA,KAAKumJ,gBAAkBvmJ,KAAKumJ,gBAAgBz4J,KAAKkS,MACjDA,KAAKsmJ,eAAiBtmJ,KAAKsmJ,eAAex4J,KAAKkS,MASnDymJ,aACI,OAAOzmJ,KAAKqxD,SAAS++C,QAUzBo2C,eAAeG,GACX,OAAQA,EAAQplJ,KAAK,WACrB,KAAKsiD,IAAQC,OACT9jD,KAAK8nJ,iBAAiBnB,GACtB,MAEJ,KAAK9iG,IAAQE,SACT/jD,KAAK+nJ,mBAAmBpB,GACxB,MAEJ,KAAK9iG,IAAQG,UACThkD,KAAKgoJ,oBAAoBrB,GACzB,MAEJ,KAAK9iG,IAAQhxD,eACTmN,KAAKioJ,iBAAiBtB,IAa9B5pI,MAAMimB,EAAc,IACZhjC,KAAKomJ,kBAITpmJ,KAAK+pG,QAAU/pG,KAAK+pG,QAAQ/vG,OAAOgpC,GAEnChjC,KAAKomJ,gBAAkBpmJ,KAAK4mJ,wBAE5B5mJ,KAAKomJ,gBAAgBz0E,OAAO3uC,IAShCpf,OACQ5jB,KAAKomJ,iBACLpmJ,KAAKomJ,gBAAgBvyE,YAGzB7zE,KAAKgoJ,sBAUTpB,wBAOI,MAWMsB,EAAiB,CAGnBt+I,WAAW,EACX0oC,OAAQ,CACJuhC,UAAW,QAEfzlE,OAAQpO,KAAKsmJ,eAIbjqH,iBAAkB,IAAM,QAWtB8rH,EAAgB,EAAH,CACfjqG,WAAY1F,KACTx4C,KAAKqxD,SAASxrB,WAgCfuiH,EAAW,CACbtjD,oBAAqB,OACrBhsD,gBAAiB,GACjBt5B,aAAc,CAAE0D,KApBJmE,IACZ,OAAQA,GACR,KAAKszB,IAAWxrD,sBAChB,KAAKwrD,IAAW3rD,kBACZgR,KAAK2b,SAASkoC,IAAQvZ,iBAAkBjjB,MAiB5CipG,qBAAsB,KAGX,IAEXtrB,uBAAwB,QAe5BhlG,KAAKqoJ,KAAO,IAAIvlH,IARO,GAQa,IAOpC9iC,KAAKqoJ,KAAKzkH,YACN5K,IAAU3Q,mBACVroB,KAAKumJ,iBAGT,MAAMz6C,EAAiB,IAAIlhC,SACvBrqE,OACAA,EACAP,KAAKqxD,SAAS++C,QACd83C,EACA,CACItzB,oBAAqB50H,KAAKqxD,SAASw2F,aACnChzB,oBAAqB70H,KAAKqxD,SAASw1F,cAEvCsB,GACA,EACAnoJ,KAAKqxD,SAAS+Z,aASlB,OAFA0gC,EAAeplD,WAAW0hG,EAAUpoJ,KAAKqoJ,KAzHtB,IA2HZv8C,EAYXnwF,SAASgP,EAAWE,EAAU,IAC1B7qB,KAAKqxD,SAASu+D,QAAQ5vH,KAAKqxD,SAAS++C,QAASzlF,EAAWE,GAY5D07H,gBAAgBa,GACZpnJ,KAAK+pG,QAAQ7mG,KAAKkkJ,GAElBpnJ,KAAKqxD,SAAS41F,eAAeG,GAWjCd,eAAerzI,GACXjT,KAAKqxD,SAAS61F,cAAclnJ,KAAKqxD,SAAS++C,QAASn9F,GAYvD60I,iBAAiBnB,GACR3mJ,KAAKomJ,gBAMVpmJ,KAAKomJ,gBAAgBn0E,UAAU00E,GAL3B1oI,EAAOjZ,MAAM,sDAgBrB+iJ,mBAAmBpB,GACX3mJ,KAAKomJ,gBACLnoI,EAAOjZ,MAAM,sDAKjBhF,KAAKomJ,gBAAkBpmJ,KAAK4mJ,wBAE5B5mJ,KAAKomJ,gBAAgB90E,YACjBq1E,EACA,OACA,IAAM3mJ,KAAK2b,SACP3b,KAAKqxD,SAAS++C,QACdvsD,IAAQvZ,iBACR,4BAYZ09G,sBACIhoJ,KAAK+pG,QAAQ36F,QAAQkvB,GAASA,EAAMtb,WACpChjB,KAAK+pG,QAAU,GAEX/pG,KAAKomJ,iBACLpmJ,KAAKomJ,gBAAgBjyE,eAGrBn0E,KAAKqoJ,OACLroJ,KAAKqoJ,KAAKvmI,eACNkX,IAAU3Q,mBACVroB,KAAKumJ,iBAGTvmJ,KAAKqoJ,KAAKxkH,WAYlBokH,iBAAiBtB,GACb3mJ,KAAKomJ,gBAAgB31E,iBAAiBk2E,O,wFCjZ/B,KACX3hJ,MAAO,CACHsjJ,KAAM,OACN5qJ,MAAO,QACP6qJ,oBAAqB,sBACrBC,oBAAqB,uBAEzB/6J,KAAM,CACFg7J,KAAM,OACNhsJ,OAAQ,UAEZsT,OAAQ,CACJ00E,IAAK,MACLD,GAAI,KACJ9gC,QAAS,a,6BCdjB,6DAQA,MACM/X,EAAU,IAAIlsB,IACpB,IAAImoD,GAAe,EACf8gF,EAAM,KAkHK,KACX99I,KAhDGzI,eAAoBgF,GACvB,GAAIygE,EACA,MAAM,IAAIvwE,MAAM,oCAOpB,aArEJ,WACI,IAAIyoB,IAAQC,gBAIZ,OAAO,IAAIid,QAAQC,IACfjd,IAAWC,WACPE,KACY,GACE,OACI5f,EACC08B,KAsDrB0rH,GAEND,EAAM,IAAIx8J,OAAOo6D,UAtCrB,SAAqBn/C,GACjB,OAAO,IAAI61B,QAAQ,CAACC,EAASC,KACzB,IAAK/1B,EAAQyY,0BAA2B,CACpC,MAAMgpI,EAAQzhJ,EAAQyX,YAChBiqI,EAAY1hJ,EAAQ0X,gBACpB2G,EAASre,EAAQs5F,cAAgBt5F,EAAQu6F,uBAAyBhB,IAASC,kBAEjF+nD,EAAIhiG,WAAWkiG,EAAOC,EAAWrjI,EAAQ,CAACzV,EAAQtL,KAC/B,YAAXsL,GACA24I,EAAI/mI,GAhDK,qBAgDoB,IAAIwgB,KAC7BwJ,EAAQzoB,KAjDH,wBAiDiCif,KAE1CylC,GAAe,EACf3qC,KAEAC,EAAO,CACHntB,SACAtL,aAGT,KAAM,CAAEqkJ,oBAAoB,OAoBhCC,CAAY5hJ,IAwCnB6hJ,QAxBG,WACH,OAAKphF,EAIE,IAAI5qC,QAAQ,CAACC,EAASC,KACzByO,EAAQhqB,GArGa,qBAqGY,CAAC5R,EAAQ0iB,KACvB,YAAX1iB,EACAktB,EAAQxK,GAERyK,EAAO,CACHntB,SACA0iB,cAMZi2H,EAAIO,oBAhBGjsH,QAAQE,OAAO,oB,cCzG9B,MAAMgsH,EAAW,CAsBbC,gBAAe,CAACC,EAAYvsG,EAAUwsG,IAGf,iBAFPD,EAGD,KAHCA,EAMDxnJ,QAAQ,SAAUi7C,GACxBj7C,QAAQ,iBAAiC,IAAhBynJ,IAItCt9J,EAAOD,QAAUo9J,G,8BClCjB,iEAQA,MAAMjrI,EAASF,oBAAUM,GAMV,MAAMirI,EAIjBrzJ,cACI+J,KAAKupJ,UAAW,EAChBvpJ,KAAKwpJ,cAAgB,GACrBxpJ,KAAKypJ,gBAAkB,GAQ3BC,eAAenoI,GACNA,EAAOqX,kBACR3a,EAAO9Y,KAAK,mDAGhBnF,KAAKwpJ,cAActmJ,KAAKqe,GAU5BxE,QAEI,GAAI/c,KAAKupJ,SACL,OAAOvpJ,KAAK2pJ,UAAUpoI,OAK1B,GAFAvhB,KAAKonF,cAAgBC,eAEhBrnF,KAAKwpJ,cAAcjzJ,OAGpB,OAFA0nB,EAAO9Y,KAAK,8DAEL,KAGXnF,KAAKupJ,UAAW,EAEhBvpJ,KAAK2pJ,UAAY3pJ,KAAKonF,cAAcwiE,+BAEpC,IAAK,MAAMroI,KAAUvhB,KAAKwpJ,cAAe,CACrC,MAAMK,EAAY7pJ,KAAKonF,cAAczF,wBAAwBpgE,GAE7DsoI,EAAUp+I,QAAQzL,KAAK2pJ,WAGvB3pJ,KAAKypJ,gBAAgBvmJ,KAAK2mJ,GAG9B,OAAO7pJ,KAAK2pJ,UAAUpoI,OAQ1BlZ,QACIrI,KAAKupJ,UAAW,EAChBvpJ,KAAKwpJ,cAAgB,GAGrB,IAAK,MAAMK,KAAa7pJ,KAAKypJ,gBACzBI,EAAUt6I,aAGdvP,KAAKypJ,gBAAkB,GAEnBzpJ,KAAKonF,gBACLpnF,KAAKonF,mBAAgB7mF,O,kJCYlB,MA/ED,SAAS0X,EAAS23H,GAgC5B,YA/BuB,IAAZ33H,QAAoD,IAAlBA,EAAQwV,OAAyBr3B,MAAMC,QAAQ4hB,EAAQwV,QAChGxV,EAAQwV,MAAMre,QAAQqiB,IACdA,EAAM24D,SAAW34D,EAAM24D,QAAQ7zF,SAC/Bk7B,EAAMjB,MAAQ,GACdiB,EAAM24D,QAAQh7E,QAAQ2b,IAClB/9B,OAAOuY,KAAKwlB,GAAQ3b,QAAQ9R,IACN,OAAdA,GAGJm0B,EAAMjB,MAAMttB,KAAK,CACbgE,GAAI6jB,EAAO7jB,GACX5J,YACA/P,MAAOw9B,EAAOztB,gBAInBm0B,EAAM24D,SAIb34D,EAAMX,YAAcW,EAAMX,WAAWv6B,QACrCk7B,EAAMX,WAAW1hB,QAAQyiB,SACU,IAApBA,EAAUrB,OAClBp6B,MAAMC,QAAQw7B,EAAUrB,SACvBqB,EAAUrB,MAAQqB,EAAUrB,MAAMrtB,KAAK,UAOpDigD,IAAUrL,MAAM9/B,EAAS23H,IA+CrB,EArCD,SAAS59G,GACnB,MAAM/Z,EAAUmrC,IAAUlrC,MAAM8Z,GAiChC,YA/BuB,IAAZ/Z,QAAoD,IAAlBA,EAAQwV,OAAyBr3B,MAAMC,QAAQ4hB,EAAQwV,QAChGxV,EAAQwV,MAAMre,QAAQqiB,SAES,IAAhBA,EAAMjB,OAAyBp6B,MAAMC,QAAQo7B,EAAMjB,SAC1DiB,EAAM24D,QAAU,GAChB34D,EAAMjB,MAAMphB,QAAQ4V,IAChB,MAAM8kI,EAAQr4H,EAAM24D,QAAQ3U,UAAU1qD,GAAUA,EAAO7jB,KAAO8d,EAAK9d,IAEnE,GAAI4iJ,GAAS,EACTr4H,EAAM24D,QAAQ0/D,GAAO9kI,EAAK1nB,WAAa0nB,EAAKz3B,UACzC,CACH,MAAM+tC,EAAM,CAAEp0B,GAAI8d,EAAK9d,IAEvBo0B,EAAItW,EAAK1nB,WAAa0nB,EAAKz3B,MAC3BkkC,EAAM24D,QAAQlnF,KAAKo4B,aAGpB7J,EAAMjB,YAIe,IAArBiB,EAAMX,YAA8B16B,MAAMC,QAAQo7B,EAAMX,aAC/DW,EAAMX,WAAW1hB,QAAQyiB,IACU,iBAApBA,EAAUrB,QACjBqB,EAAUrB,MAAQqB,EAAUrB,MAAMztB,MAAM,UAOrDkV,GClFX,MAAM8xI,EAAc,CAAE,QAAS,QAAS,QAClCC,EAAen4H,GAAaA,EAAUZ,KAAKg5H,GAAyB,QAAlBA,EAAI94H,WACtD+4H,EAAer4H,GAAaA,EAAUZ,KAAKg5H,GAAyB,QAAlBA,EAAI94H,WAW5D,SAASg5H,EAAmB14H,EAAOL,EAAUg5H,EAAcC,GACvD,IAAK54H,IAAUL,EACX,OAEJ,MAAMk5H,EAAiBhvH,GAAO+uH,EAAWp5H,KAAKlG,GAAUA,EAAO7jB,GAAGxQ,aAAe4kC,GAEjFlK,EAASZ,MAAMphB,QAAQksB,IACnB7J,EAAM24D,QAAQlnF,KAAKonJ,EAAehvH,IAGlC,MAAMivH,EAAkBH,EAAa9xI,SAASgjB,EAAK,KAAKrK,KAAKg5H,GAAyB,QAAlBA,EAAI94H,WAExE,GAAIo5H,EAAiB,CACjB,MAAMC,EAAcD,EAAgB/5H,MAAMS,KAAK5iC,GAAKA,IAAMitC,GAE1D7J,EAAM24D,QAAQlnF,KAAKonJ,EAAeE,IAClC/4H,EAAMX,WAAW5tB,KAAKqnJ,MAK9B94H,EAAMX,WAAW5tB,KAAKkuB,GAgB1B,SAASq5H,EAAkBh5H,EAAOzM,EAAMolI,EAAcC,GAClD,IAAK54H,IAAUzM,EACX,OAMJ,GAJAyM,EAAM24D,QAAU,GAChB34D,EAAMX,WAAa,IAGds5H,EAAaplI,EAAK9d,IAInB,OAHAuqB,EAAM24D,QAAQlnF,KAAK8hB,QACnByM,EAAMqwB,KAAO98B,EAAK88B,MAItB,MAGM1wB,EAAW44H,EAAaI,EAAaplI,EAAK9d,KAC1C8pB,EAAWk5H,EAAaE,EAAaplI,EAAK9d,KAGhD,GAAIkqB,EACA+4H,EAAmB14H,EAAOL,EAAUg5H,EAAcC,QAC/C,GAAIr5H,EAAU,CAEjB,MAAM05H,EAAY15H,EAASR,MAAMS,KAAK5iC,GAAKA,IAAM22B,GAC3C2lI,EAAYX,EAAaI,EAAaM,IAExCC,EACAR,EAAmB14H,EAAOk5H,EAAWP,EAAcC,IAGnDr5H,EAASR,MAAMphB,QAAQksB,IACnB7J,EAAM24D,QAAQlnF,KAnBHo4B,IAAO+uH,EAAWp5H,KAAKlG,GAAUA,EAAO7jB,GAAGxQ,aAAe4kC,GAmBlDgvH,CAAehvH,MAEtC7J,EAAMX,WAAW5tB,KAAK8tB,IAK9BS,EAAMqwB,KAAOrwB,EAAM24D,QAAQ,GAAGtoC,KAsBlC,SAAS8oG,EAA0B5lI,EAAMolI,EAAcS,GASnD,IAAKA,EAAO55H,KARcnD,KAClBA,EAAMs8D,SACCt8D,EAAMs8D,QAAQzH,KAAK53D,GAAUA,EAAO7jB,KAAO8d,EAAK9d,KAM1B,CAGjC,IAAKkjJ,EAAaplI,EAAK9d,IACnB,OAAO,EAEX,MAAMkqB,EAAW44H,EAAaI,EAAaplI,EAAK9d,KAC1C8pB,EAAWk5H,EAAaE,EAAaplI,EAAK9d,KAEhD,GAAIkqB,EACA,OAAOy5H,EAAOloE,KAAK70D,GAASA,EAAMs8D,SAC3Bt8D,EAAMs8D,QAAQzH,KAAKrnD,GAAOA,EAAIp0B,GAAGxQ,aAAe06B,EAASZ,MAAM,KACnE,GAAIQ,GAAYhM,EAAK9d,GAAGxQ,aAAes6B,EAASR,MAAM,GAAI,CAG7D,OAAOo6H,EAFW,CAAE1jJ,GAAI8pB,EAASR,MAAM,IAEK45H,EAAcS,GAI9D,OAAO,EAGX,OAAO,EAiCJ,MAAM1gB,EAMTiE,QAAQtrE,GACJ,IAAKA,GAA0C,iBAApBA,EAAY9wC,IAGnC,OAFAjtB,QAAQI,KAAK,mDAEN29D,EAIX,MAAM7qD,EAAUmrC,EAAgB0f,EAAY9wC,KAG5C,IAAK/Z,EAAQwV,QAAUxV,EAAQwV,MAAMl3B,OAGjC,OAFAwO,QAAQI,KAAK,iCAEN29D,EAIX,GAAI7qD,EAAQwV,MAAMgsE,MAAM/sG,IAAqC,IAAhCq9J,EAAYnmJ,QAAQlX,EAAEgjD,MAG/C,OAFA3qC,QAAQI,KAAK,uDAEN29D,EAGX,MAAMr1C,EAAQ,GACRq9H,EAAe7yI,EAAQwV,MAE7BxV,EAAQwV,MAAQ,GAChBq9H,EAAa17I,QAAQqiB,IACjB,MAAMxqB,EAAOwqB,EAAMxqB,KAEnB,GAAa,gBAATA,EAIA,OAHAwqB,EAAMie,IAAM,YACZjiB,EAAMgE,EAAMie,KAAOje,GAIvB,QAA2B,IAAhBhE,EAAMxmB,GAAuB,CACpC,MAAM8jJ,EAAQ7qH,IAAUzO,GAGpBs5H,EAAM3gE,SAAWh0F,MAAMC,QAAQ00J,EAAM3gE,UACrC2gE,EAAM3gE,QAAQh7E,QAAQ2b,IAClB0G,EAAMqwB,KAAO/2B,EAAO+2B,KAAOrwB,EAAMqwB,YAAc/2B,EAAO+2B,OAUzDipG,EAAMj6H,YAAeW,EAAMqwB,OAC5BipG,EAAMj6H,WAAa,WAEhBi6H,EAAMjpG,KACbipG,EAAMr7G,IAAMzoC,EACZwmB,EAAMxmB,GAAQ8jJ,OACPt5H,EAAMqwB,OAETrwB,EAAM24D,SAAWh0F,MAAMC,QAAQo7B,EAAM24D,WACrC38D,EAAMxmB,GAAMmjF,QAAU38D,EAAMxmB,GAAMmjF,QAAQpwF,OAAOy3B,EAAM24D,eAE3B,IAArB34D,EAAMX,YAA8B16B,MAAMC,QAAQo7B,EAAMX,cAC/DrD,EAAMxmB,GAAM6pB,WAAarD,EAAMxmB,GAAM6pB,WAAW92B,OAAOy3B,EAAMX,gBAIzE7Y,EAAQwV,MAAQzgC,OAAOo2B,OAAOqK,GAG9B,MAAMu9H,EAAS,GAEfh+J,OAAOo2B,OAAOqK,GAAOre,QAAQ0e,IACD,aAApBA,EAAM6B,WACNq7H,EAAO9nJ,KAAK4qB,EAAM4hB,OAK1Bz3B,EAAQu6B,OAAOpjC,QAAQ8hB,IACA,WAAfA,EAAMjqB,OACNiqB,EAAM+5H,KAAOD,EAAO7nJ,KAAK,QAKjC8U,EAAQizI,aAAe,CACnBC,SAAU,MACVvyG,MAAO,KAEX,MAAMm1F,EAAS3qF,EAAgBnrC,GAE/B,OAAO,IAAI09D,sBAAsB,CAC7B1uE,KAAM67D,EAAY77D,KAClB+qB,IAAK+7G,IAYb8C,cAAc/tE,EAAasoF,EAAU,MACjC,IAAKtoF,GAA0C,iBAApBA,EAAY9wC,IAGnC,OAFAjtB,QAAQI,KAAK,mDAEN29D,EAIX,MAAM7qD,EAAUmrC,EAAgB0f,EAAY9wC,KAG5C,IAAK/Z,EAAQwV,QAAUxV,EAAQwV,MAAMl3B,OAGjC,OAFAwO,QAAQI,KAAK,iCAEN29D,EAIX,GAAI7qD,EAAQwV,MAAMl3B,OAAS,GAAK0hB,EAAQwV,MAAMgsE,MAAM/sG,IAAqC,IAAhCq9J,EAAYnmJ,QAAQlX,EAAEgjD,MAG3E,OAFA3qC,QAAQI,KAAK,6CAEN29D,EAEX,MAAMuoF,EAAcD,EAAUhoG,EAAgBgoG,EAAQp5H,KAAO,KACvDvE,EAAQ,GAEdxV,EAAQwV,MAAMre,QAAQqiB,IAClB,MAAMxqB,EAAOwqB,EAAMxqB,KAEnB,GAAa,gBAATA,EAAwB,CACxB,IAAKokJ,IAAgBA,EAAY59H,MAAO,CACpC,MAAM69H,EAAWprH,IAAUzO,GAK3B,OAHA65H,EAAS57G,IAAM1iD,OAAOuY,KAAKkoB,GAAOl3B,OAAOG,gBACzC+2B,EAAMgE,EAAMie,KAAO47G,GAIvB,MAAMC,EAAeF,EAAY59H,MAAMgoD,UAAU/oF,GAAKA,EAAEua,OAASA,GAOjE,YALIskJ,IACAF,EAAY59H,MAAM89H,GAAgB95H,EAClC45H,EAAY59H,MAAM89H,GAAc77G,IAAM67G,IAO9C,MAAMC,EA3LlB,SAA8BpB,GAC1B,MAAMoB,EAAa,GAEnB,OAAKpB,GAAiBh0J,MAAMC,QAAQ+zJ,IAGpCA,EAAah7I,QAAQ8hB,IACbA,EAAMV,OAASp6B,MAAMC,QAAQ66B,EAAMV,QACnCU,EAAMV,MAAMphB,QAAQ4V,SACgB,IAArBwmI,EAAWxmI,KAClBwmI,EAAWxmI,GAAQ,IAEvBwmI,EAAWxmI,GAAM9hB,KAAKguB,OAK3Bs6H,GAbIA,EAuLgBC,CAAqBh6H,EAAMX,YAEzCW,EAAM24D,SAGX34D,EAAM24D,QAAQh7E,QAAQ,CAAC4V,EAAM4qB,KAGzB,IAAK5qB,EAAK88B,KACN,OAIJ,IAAKupG,IAAgBA,EAAY59H,MAAO,CACpC,GAAIm9H,EAA0B5lI,EAAMwmI,EAAYx+J,OAAOo2B,OAAOqK,IAC1D,OAEJ,MAAM69H,EAAWprH,IAAUzO,GAU3B,OARA65H,EAAS57G,IAAM1iD,OAAOuY,KAAKkoB,GAAOl3B,OAAOG,WACzC40J,EAAS37H,UAAYigB,GAEK,aAApBne,EAAM9B,UADN,WAC8C,WACpD27H,EAASI,gBAAanrJ,EACtBkqJ,EAAkBa,EAAUtmI,EAAMwmI,EAAY/5H,EAAM24D,cACpD38D,EAAM69H,EAAS57G,KAAO47G,GAM1B,GAAIV,EAA0B5lI,EAAMwmI,EAAYH,EAAY59H,OACxD,OAIJ,MAAMk+H,EAAcN,EAAY59H,MAC3BgoD,UAAUm2E,GAAUA,EAAOj8H,WACA,aAArBi8H,EAAOj8H,WACPi8H,EAAO3kJ,OAASA,GAE3B,GAAI0kJ,GAAe,EACfN,EAAY59H,MAAMk+H,GAAah8H,UAAY,WAC3C86H,EAAkBY,EAAY59H,MAAMk+H,GAAc3mI,EAAMwmI,EAAY/5H,EAAM24D,aACvE,CACH,MAAMkhE,EAAWprH,IAAUzO,GAE3B65H,EAAS57G,IAAM27G,EAAY59H,MAAMl3B,OAAOG,WACxC40J,EAAS37H,UAAY,WACrB86H,EAAkBa,EAAUtmI,EAAMwmI,EAAY/5H,EAAM24D,SACpDihE,EAAY59H,MAAMvqB,KAAKooJ,QAInCrzI,EAAQwV,MAAQ49H,EAAcA,EAAY59H,MAAQzgC,OAAOo2B,OAAOqK,GAChE,MAAMw9H,EAAO,GAEbhzI,EAAQwV,MAAMre,QAAQqiB,IAClBw5H,EAAK/nJ,KAAKuuB,EAAMie,OAIpBz3B,EAAQu6B,OAAOpjC,QAAQ8hB,IACA,WAAfA,EAAMjqB,OACNiqB,EAAM+5H,KAAOA,EAAK9nJ,KAAK,QAK/B8U,EAAQizI,aAAe,CACnBC,SAAU,MACVvyG,MAAO,KAIX3gC,EAAQw5G,OAAOnrD,iBACf,MAAMksE,EAAYpvF,EAAgBnrC,GAElC,OAAO,IAAI09D,sBAAsB,CAC7B1uE,KAAM67D,EAAY77D,KAClB+qB,IAAKwgH,O,6BChbjB,IAAI5oE,EAAoC,oBAAXD,QAA0BA,OAAOC,iBAAmBD,OAAOC,gBAAgB97E,KAAK67E,SAA+B,oBAAbkiF,UAAgE,mBAA7BA,SAASjiF,iBAAkCiiF,SAASjiF,gBAAgB97E,KAAK+9J,UACvOC,EAAQ,IAAI9gG,WAAW,IACZ,SAAS+gG,IACtB,IAAKniF,EACH,MAAM,IAAIvyE,MAAM,4GAGlB,OAAOuyE,EAAgBkiF,GCNzB,IAFA,IAAIE,EAAY,GAEP,EAAI,EAAG,EAAI,MAAO,EACzBA,EAAU9oJ,MAAM,EAAI,KAAOxM,SAAS,IAAI0e,OAAO,IAWlC,MARf,SAAqB62I,EAAKj8F,GACxB,IAAI1jE,EAAI0jE,GAAU,EACdk8F,EAAMF,EAGV,OAAQE,EAAID,EAAI3/J,EAAI,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM4/J,EAAID,EAAI3/J,EAAI,IAAM,IAAM4/J,EAAID,EAAI3/J,EAAI,KAAO4/J,EAAID,EAAI3/J,EAAI,KAAO4/J,EAAID,EAAI3/J,EAAI,KAAO4/J,EAAID,EAAI3/J,EAAI,KAAO4/J,EAAID,EAAI3/J,EAAI,KAAO4/J,EAAID,EAAI3/J,EAAI,MAAMqW,eCaxT,IAzBf,SAAYwE,EAAS8kJ,EAAKj8F,GACD,iBAAZ7oD,IACT8kJ,EAAkB,WAAZ9kJ,EAAuB,IAAI6jD,WAAW,IAAM,KAClD7jD,EAAU,MAIZ,IAAIglJ,GADJhlJ,EAAUA,GAAW,IACFkE,SAAWlE,EAAQ4kJ,KAAOA,KAK7C,GAHAI,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBF,EAAK,CAGP,IAFA,IAAIlvI,EAAQizC,GAAU,EAEb1jE,EAAI,EAAGA,EAAI,KAAMA,EACxB2/J,EAAIlvI,EAAQzwB,GAAK6/J,EAAK7/J,GAGxB,OAAO2/J,EAGT,OAAO,EAAYE,K,gBCvBrBpgK,EAAOD,QAAUsxB,EAAQ,KAAiB+2F,S,6BCF1C,4VA0CA,MAAMl2F,EAASd,IAAOY,UAAUM,GA+ChC,SAAS+tI,EAAkCjlJ,GACvC,MAAMlK,EAAa,CACf,gBACIkK,EAAQwzB,QAAQlH,SAAS,SAC7B,gBACItsB,EAAQwzB,QAAQlH,SAAS,SAC7B,yBACItsB,EAAQwzB,QAAQlH,SAAS,YAOjC,OAJIx2B,EAAWovJ,kBACXpvJ,EAAWo5B,WAAalvB,EAAQkvB,YAG7Bp5B,EAiCIqvJ,UAVf,SAAkCvgK,GAC9B,MACkC,iBAAvBG,OAAOqgK,YACRv/J,OAAOgoG,OAAO,GAAI9oG,OAAOqgK,YAAaxgK,GACtCA,EAMCugK,CAAyB,CAEpCv4G,QAAS,aAETspD,oBASA4oD,2BAEAuG,UAAW,CACPtuF,4BAA6B3E,IAC7BkzF,UAAWC,IACXC,WAAY/7C,EACZ1K,oBAAqB2lB,GAEzBt/E,OAAQ,CACJhqB,WAAYI,EACZpO,WAAYknC,EACZmxG,UAAW1qD,EACX5jE,MAAOs+B,EACPniC,aAAcs+D,EACdgG,kBAAmBw4C,EACnBr2C,QAASm6C,GAEb7jI,OAAQ,CACJ+K,WAAYklF,EACZlzF,WAAYwnC,EACZzd,MAAOuQ,GAEXg+G,WAAY,CACRjnI,qBAEJknI,UAAW3vI,IAAOM,OAClBgd,aAAcsyH,IACdlsI,UAAWzB,IAAWyB,UACtBjW,KAAKzD,EAAU,IACXu5F,IAAS91F,KAAKzD,EAAQo5C,iBACtBnhC,IAAWxU,KAAKzD,GAIXjb,OAAO4sD,kBACR5sD,OAAO4sD,gBAAkB,KAGU,IAAnC3xC,EAAQ6lJ,yBACR/uI,EAAO9Y,KAAK,kCACZnF,KAAK6gB,UAAUmC,WAGf7b,EAAQ8lJ,4BACRr1H,IAAqB7pB,WACjB/N,KAAKktJ,wBAAwBp/J,KAAKkS,OAK1C,MAAMmtJ,EAAShmJ,EAAQu3C,eAEvB,GAAIyuG,GAAUngK,OAAOuY,KAAK4nJ,GAAQ52J,OAAS,EAAG,CAC1C,MAAM87G,EAAY,GAElB,IAAK,MAAM9wG,KAAQ4rJ,EACXA,EAAOh/J,eAAeoT,KACtB8wG,EAAU9wG,GAAQ4rJ,EAAO5rJ,IAIjC8wG,EAAUnrG,GAAK,kBACfkY,IAAWkH,QAAQ1Z,KAAKwL,UAAUi6F,IAGtC,GAAIryG,KAAK+zC,QAAS,CACd,MAAMs+D,EAAY,CACdnrG,GAAI,oBACJ0nB,UAAW,iBACXmlB,QAAS/zC,KAAK+zC,SAGlB30B,IAAWkH,QAAQ1Z,KAAKwL,UAAUi6F,IAGtC,OAAOvvE,IAAIl4B,KAAKzD,IAQpB85B,wBAAuB,IACZ6B,IAAI7B,0BAWfmsH,kBAAiB,IACNtqH,IAAIsqH,oBAGfhvI,YAAYvZ,GACRsY,IAAOiB,YAAYvZ,IAWvBqZ,gBAAgBrZ,EAAOqC,GACnBiW,IAAOe,gBAAgBrZ,EAAOqC,IASlCmmJ,sBAAsBC,GAClBnwI,IAAOQ,mBAAmB2vI,IAS9BC,yBAAyBD,GACrBnwI,IAAOU,sBAAsByvI,IAUjCE,oBAAoBrmJ,GAChBgW,IAAOW,iBAAiB3W,IAwC5Bg9B,kBACQh9B,EAAU,GAAIsmJ,EAAkCC,GACpD,IAAIC,GAAmB,EAkBvB,OAhByC,IAArCF,GACAvhK,OAAOqe,WAAW,KACTojJ,GACDZ,IAAkBnzD,UACdb,6BACAj5E,IAAQm1B,YArSa,KA0ShC/oD,OAAO4sD,kBACR5sD,OAAO4sD,gBAAkB,IAE7B5sD,OAAO4sD,gBAAgB,2BACjB5sD,OAAOsuD,YAAYrmC,MAElB2uB,IAAIlF,+BAA+Bz2B,GACrCuzB,KAAK2M,IAWF,GAVAsmH,GAAmB,EAEnBzhK,OAAO4sD,gBAAgB,yBACjB5sD,OAAOsuD,YAAYrmC,MAEzBiL,IAAWoI,cACP+D,YACI,UACA6gI,EAAkCjlJ,MAErC27B,IAAI37B,QAAQsZ,mBACb,IAAK,IAAIn0B,EAAI,EAAGA,EAAI+6C,EAAO9wC,OAAQjK,IAAK,CACpC,MAAMgyC,EAAQ+I,EAAO/6C,GACfshK,EAAUtvH,EAAMmnD,oBAElBnnD,EAAMgJ,YAAc/I,MACpBnf,IAAWkC,gBAAgBssI,EACvBtvH,EAAMoK,cAAc56C,KAAKwwC,IAC7BA,EAAMjC,iBACFugC,sBACA,KACIx9C,IAAWuE,eAAeiqI,MAO9C,MAAMC,EACA/qH,IAAI1B,oCAEV,GAAIysH,EACA,IAAK,IAAIvhK,EAAI,EAAGA,EAAI+6C,EAAO9wC,OAAQjK,IAAK,CACtB+6C,EAAO/6C,GAEfknG,+BACFq6D,GAMZ,IAAK,MAAMvvH,KAAS+I,EACZ/I,EAAMr3B,OAASs3B,KACQ,YAApBD,EAAME,WACTx+B,KAAK8tJ,0BAA0BxvH,EAAMA,MAAO,UAIpD,OAAO+I,IAEVjK,MAAMp4B,IAGH,GAFA2oJ,GAAmB,EAEf3oJ,EAAMnY,OAASgiD,2BACX/uB,IAAQ+a,iBAAkB,CAC9B,MAAMkzH,EAAgB5mJ,EAAQkvB,YAAc,MACtC23H,EAjW1B,SAA4B33H,GACxB,IAAKC,IAAYD,GACb,OAAO,KAEX,MAAM6tB,EAAQ5tB,IAAYD,GAAY6tB,MACtC,IAAIjmB,EAAM,KACNgwH,EAAU,KAed,OAbAjhK,OAAOuY,KAAK+wB,KAAalnB,QAAQhiB,IAC7B,MAAMG,EAAQ+oC,IAAYlpC,KAErB6wC,GAAQA,EAAIimB,MAAQ32D,EAAM22D,OAAS32D,EAAM22D,MAAQA,KAClD+pG,EAAU7gK,EACV6wC,EAAM1wC,KAIV0gK,IAAY53H,IACZ43H,EAAU,MAGPA,EA4U+BC,CAAmBH,GAEzC,GAAsB,OAAlBC,EAeA,OAdA7mJ,EAAQkvB,WAAa23H,EAErB/vI,EAAOhZ,MACH,0CACA+oJ,GAEJ5uI,IAAWoI,cAAc+D,YACrB,UACA,CACI,eAAkBwiI,EAClB,eAAkBC,EAClBx+I,OAAQ,4BAGTxP,KAAKmkC,kBACRh9B,OACA5G,EACAmtJ,GAAmB1gK,OAAOgoG,OAAO,GAAI7tF,IAK7C,GAAIumJ,GACG1oJ,EAAM6gB,IAAIE,aACV/gB,EAAM6gB,IAAIE,YAAYkO,OACtBjvB,EAAM6gB,IAAIE,YAAYkO,MAAMuB,WAC5BxwB,EAAM6gB,IAAIE,YAAYkO,MAAMuB,UAAUI,SAGzC,OAFA83H,EAAgBh4H,oBAAiBn1B,EAE1BP,KAAKmkC,kBAAkBupH,GAItC,GAAI1oJ,EAAMnY,OACEgiD,8BAA8C,CAItD,MAAMwjE,EAAY,CACdnrG,GAAI,8BACJzC,QAASO,EAAMP,SAGnB2a,IAAWkH,QAAQ1Z,KAAKwL,UAAUi6F,IAElCjzF,IAAWoI,cACP+D,YACI,UACA,CACI/b,OAAQ,0CAEjB,GAAIxK,EAAMnY,OAASgiD,YAA4B,CAElD,MAAMwjE,EAAY,CACdnrG,GAAI,2BACJ6I,OAAQ/K,EAAM6gB,IAAI8U,SAGtBvb,IAAWkH,QAAQ1Z,KAAKwL,UAAUi6F,IAElC,MAAMp1G,EACAmvJ,EAAkCjlJ,GAExClK,EAAWuS,OAAS,mBACpBvS,EAAW09B,QAAU31B,EAAM6gB,IAAI8U,QAAQx3B,KAAK,KAC5Cic,IAAWoI,cACP+D,YAAwB,QAAStuB,QAClC,CAEHmiB,IAAWuG,uBAAuB3gB,GAElC,MAAM/H,EACAmvJ,EAAkCjlJ,GAExClK,EAAWuS,OAASxK,EAAMnY,KAC1BuyB,IAAWoI,cACP+D,YAAwB,QAAStuB,IAMzC,OAHA/Q,OAAO4sD,gBAAgB,yBACjB5sD,OAAOsuD,YAAYrmC,MAElB6oB,QAAQE,OAAOl4B,MAoBlCmpJ,sBAAqB,CAACC,EAAoB9mE,EAAYT,IAC3CF,IAAgB/4F,OAAOwgK,EAAoB9mE,EAAYT,GASlEwnE,iBAAgB,IACL,IAAI/E,IAQfhE,qBAAoB,IACTA,cAWXppH,wBAII,OAHAje,EAAO9Y,KAAK,yFAGLnF,KAAKy6B,aAAayB,yBAY7ByE,wBAAwBC,GAIpB,OAHA3iB,EAAO9Y,KAAK,2FAGLnF,KAAKy6B,aAAakG,wBAAwBC,IAUrD+4D,gCACI,OAAO35F,KAAKy6B,aAAak/D,iCAQ7B20D,uBAAsB,IACXlvI,IAAWoB,oBACXygE,IAAoBK,wBAS/B/mD,iBAAiB/uB,GACbyS,EAAO9Y,KAAK,oFAEZnF,KAAKy6B,aAAaF,iBAAiB/uB,IAWvC0hJ,wBAAwBzoJ,EAASsmB,EAAQwjI,EAAQC,EAAOxpJ,GACpDiZ,EAAOjZ,MACF,mBAAkBP,EAClB,WAAUsmB,EACV,SAAQwjI,EACR,WAAUC,EACX,eAAgBxpJ,GACpBoa,IAAW+H,kBAAkBniB,IASjCypJ,gBAAe,SAAE/vF,IACbF,IAAYG,kBAAkB,CAAED,cAUpCovF,0BAA0BxvH,EAAOowH,GACzB,gBAAiBpwH,GACjBA,EAAMqwH,YAAcD,EAChBpwH,EAAMqwH,cAAgBD,GACtBzwI,EAAOhZ,MAAM,oCAGjBgZ,EAAOhZ,MAAM,yDAIrB2pJ,gBAQAC,KAAM,CACF3F,aACAlpI,eACAF,gB,6CCtoBR,IAAI3C,EAASC,EAAQ,IAgDrB,SAASC,EAAayxI,EAAY3nJ,GAC9BnH,KAAK8uJ,WAAaA,EAClB9uJ,KAAK+uJ,oBAAmB5nJ,IAAWA,EAAQ4nJ,mBAAmB5nJ,EAAQ4nJ,iBACtE/uJ,KAAKgvJ,cAAgB7nJ,GAAWA,EAAQ6nJ,cAAgB7nJ,EAAQ6nJ,cAAe,IAC/EhvJ,KAAKivJ,eAAiB9nJ,GAAWA,EAAQ8nJ,eAAiB9nJ,EAAQ8nJ,eAAiB,IAGnFjiK,OAAOuY,KAAK4X,EAAOM,QAAQrO,QAC3B,SAAU8/I,GAENlvJ,KADiBmd,EAAOM,OAAOyxI,IACZ,WACflvJ,KAAKmvJ,KAAKvtH,MAAM5hC,KAAMmB,YACxBrT,KAAKkS,KAAMkvJ,IACfphK,KAAKkS,OAMPA,KAAKovJ,oBAAsB,KAM3BpvJ,KAAK6/E,MAAQ,GAKb7/E,KAAKqvJ,SAAW,EAMhBrvJ,KAAKsvJ,YAAc,GAiBvBjyI,EAAanvB,UAAUkqB,UAAY,SAAUm3I,GACzC,IACI,OAAO3iJ,KAAKwL,UAAUm3I,GACxB,MAAOvqJ,GACL,MAAO,iCAmBfqY,EAAanvB,UAAUshK,iBAAmB,SAC1CN,GAEI,IADA,IAAIpqJ,EAAM,GACDxY,EAAI,EAAG6L,EAAMgJ,UAAU5K,OAAQjK,EAAI6L,EAAK7L,IAAK,CAClD,IAAI8U,EAAMD,UAAU7U,IAEf0T,KAAK+uJ,kBAAoBG,IAAa/xI,EAAOM,OAAO/f,OACtC,iBAAR0D,IACPA,EAAMpB,KAAKoY,UAAUhX,IAEzB0D,GAAO1D,EACH9U,IAAM6L,EAAM,IACZ2M,GAAO,KAGf,OAAOA,EAAIvO,OAASuO,EAAM,MAS9BuY,EAAanvB,UAAUihK,KAAO,WAG1B,IAAI3mE,EAAYrnF,UAAU,GACtB2D,EAAM9E,KAAKwvJ,iBAAiB5tH,MAAM5hC,KAAMmB,WAC5C,GAAI2D,EAAK,CAEL,IAAI2qJ,EAAczvJ,KAAK6/E,MAAM7/E,KAAK6/E,MAAMtpF,OAAS,GAC7Cm5J,EAAkBD,GAAeA,EAAY9tJ,KAC7C+tJ,IAAoB5qJ,EACpB2qJ,EAAY7iH,OAAS,GAErB5sC,KAAK6/E,MAAM38E,KAAK,CACZvB,KAAMmD,EACN0jF,UAAWA,EACX57C,MAAO,IAEX5sC,KAAKqvJ,UAAYvqJ,EAAIvO,QAIzByJ,KAAKqvJ,UAAYrvJ,KAAKivJ,gBACtBjvJ,KAAK2vJ,QAAO,GAAkB,IAQtCtyI,EAAanvB,UAAU6uB,MAAQ,WAC3B/c,KAAK4vJ,8BAQTvyI,EAAanvB,UAAU0hK,2BAA6B,WAC5C5vJ,KAAKovJ,sBACLljK,OAAOuhB,aAAazN,KAAKovJ,qBACzBpvJ,KAAKovJ,oBAAsB,MAG/BpvJ,KAAKovJ,oBAAsBljK,OAAOqe,WAC9BvK,KAAK2vJ,OAAO7hK,KACRkS,MAAM,GAA0B,GACpCA,KAAKgvJ,gBAOb3xI,EAAanvB,UAAUsf,MAAQ,WAC3BxN,KAAK2vJ,QACD,GACA,IAcRtyI,EAAanvB,UAAUyhK,OAAS,SAASE,EAAOC,GAExC9vJ,KAAKqvJ,SAAW,IAAMrvJ,KAAK8uJ,WAAWiB,WAAaF,KAG/C7vJ,KAAK8uJ,WAAWiB,WAEZ/vJ,KAAKsvJ,YAAY/4J,SACjByJ,KAAKsvJ,YAAYlgJ,QACb,SAAU4gJ,GACNhwJ,KAAK8uJ,WAAWmB,UAAUD,IAC5BliK,KAAKkS,OAGXA,KAAKsvJ,YAAc,IAGvBtvJ,KAAK8uJ,WAAWmB,UAAUjwJ,KAAK6/E,QAE/B7/E,KAAKsvJ,YAAYpsJ,KAAKlD,KAAK6/E,OAG/B7/E,KAAK6/E,MAAQ,GACb7/E,KAAKqvJ,SAAW,GAGhBS,GACA9vJ,KAAK4vJ,8BAQbvyI,EAAanvB,UAAU01B,KAAO,WAE1B5jB,KAAK2vJ,QAAO,GAA0B,IAG1C5jK,EAAOD,QAAUuxB,G,eClRjB,YACAtxB,EAAOD,QAAUokK,I,+BCDjB;;;;;;;;GAsBElwJ,MAAQ9T,OAXNF,EAAO,QAAD,4BAcR,WAEF,IAAImkK,EAAmB,kCAGnBC,EAAgBlkK,OAAO6uB,SAAW7uB,OAAO6uB,SAASkiF,KAAO,KACzDozD,EAAUD,GAAcA,EAAYxuJ,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,KAAc,KAGvF0uJ,EAAUj1J,SAASyV,qBAAqB,UAGxCy/I,EAA2B,eAAiBD,EAAQ,IAAMj1J,SAASwF,cAAc,WAGjF2vJ,GAActkK,OAAO6rH,OAAqC,mBAA5B7rH,OAAO6rH,MAAMrhH,WAG3C+5J,EAAiC,kBAAmBp1J,SAIpD,oBAAqBhE,OAASA,MAAMq5J,kBAAoBpV,MAC/BjkJ,MAAMq5J,gBACjCr5J,MAAMq5J,gBAAkBpV,KAO1B,IAAIqV,GAAyB,EACzBC,GAAwB,EA+O5B,SAASC,IAIP,GAAuB,IAAnBP,EAAQ/5J,OACV,OAAO,KAGT,IAAIjK,EAAG+M,EAAG+K,EAAO28B,EAAKg4B,EAClB+3F,EAAkB,GAClBC,EAAiBF,EAAwBE,gBAAkB,EAQ/D,IAAKzkK,EAAI,EAAGA,EAAIgkK,EAAQ/5J,OAAQjK,IAC1BkkK,GAAcD,EACZJ,EAAiBj+I,KAAKo+I,EAAQhkK,GAAG0sB,aACnC83I,EAAgB5tJ,KAAKotJ,EAAQhkK,IAI/BwkK,EAAgB5tJ,KAAKotJ,EAAQhkK,IAQjC,GAJA+M,EAAI,IAAIhC,MACJs5J,IACFvsJ,EAAQ/K,EAAE+K,QAEPA,GAASwsJ,EACZ,IACE,MAAMv3J,EAER,MAAO8W,GAEL/L,EAAQ+L,EAAI/L,MAiEhB,GA7DIA,KAEF20D,EAzQJ,SAA0Bh4B,EAAK+vH,GAC7B,IAAIxkK,EACAysE,EAAS,KAIb,GAFA+3F,EAAkBA,GAAmBR,EAElB,iBAARvvH,GAAoBA,EAC7B,IAAKz0C,EAAIwkK,EAAgBv6J,OAAQjK,KAC/B,GAAIwkK,EAAgBxkK,GAAGgvC,MAAQyF,EAAK,CAGlCg4B,EAAS+3F,EAAgBxkK,GACzB,MAIN,OAAOysE,EAyPIi4F,CADTjwH,EAvMJ,SAASkwH,EAAsB7sJ,EAAO2sJ,GACpC,IAAI19I,EACA0tB,EAAM,KACNmwH,EAA0C,iBAAnBH,EA+B3B,OA9BAA,EAAiBG,EAAgB9lJ,KAAKozG,MAAMuyC,GAAkB,EACzC,iBAAV3sJ,GAAsBA,IAC3B8sJ,EACF79I,EAAUjP,EAAMkP,MAAM,+GAGtBD,EAAUjP,EAAMkP,MAAM,kNAELD,EAAQ,KACvBA,EAAUjP,EAAMkP,MAAM,kHAItBD,GAAWA,EAAQ,KAGnB0tB,EAFEgwH,EAAiB,EAEbE,EADW7sJ,EAAM81B,MAAM91B,EAAMR,QAAQyP,EAAQ,IAAMA,EAAQ,GAAG9c,QACvBw6J,EAAiB,GAGxD19I,EAAQ,KAWb0tB,EAqKCkwH,CAAsB7sJ,EAAO2sJ,GACJD,KAEhBT,GAAWtvH,IAAQsvH,IAiB9Bt3F,EA5OR,SAA6B+3F,GAC3B,IAAIxkK,EAAG6L,EACH4gE,EAAS,KAEb,IAAKzsE,EAAI,EAAG6L,GADZ24J,EAAkBA,GAAmBR,GACH/5J,OAAQjK,EAAI6L,EAAK7L,IACjD,IAAKwkK,EAAgBxkK,GAAG8lD,aAAa,OAAQ,CAC3C,GAAI2mB,EAAQ,CACVA,EAAS,KACT,MAEFA,EAAS+3F,EAAgBxkK,GAG7B,OAAOysE,EA+NQo4F,CAAoBL,IAU9B/3F,GAK4B,IAA3B+3F,EAAgBv6J,SAClBwiE,EAAS+3F,EAAgB,IAIxB/3F,GAeC03F,IACF13F,EAAS19D,SAAS+1J,gBAIjBr4F,GAeCy3F,GAAcD,EAChB,IAAKjkK,EAAIwkK,EAAgBv6J,OAAQjK,KAC/B,GAAsC,gBAAlCwkK,EAAgBxkK,GAAG0sB,WAA8B,CACnD+/C,EAAS+3F,EAAgBxkK,GACzB,MAkCR,OA5BKysE,IAyBHA,EAAS+3F,EAAgBA,EAAgBv6J,OAAS,IAAM,MAGnDwiE,GA3YT,WACE,IACE,IAAI5oD,EAAM,IAAI9Y,MAEd,MADAs5J,EAA8C,iBAAdxgJ,EAAI/L,SAAwB+L,EAAI/L,MAC1D+L,EAER,MAAOkhJ,GACLT,EAAmD,iBAApBS,EAAUjtJ,SAAwBitJ,EAAUjtJ,QAP/E,GA+YAysJ,EAAwBE,eAAiB,EAOrC,IAAIn4F,EAA4Bi4F,EAShC,OARAj4F,EAAuB04F,KAAST,EAChCj4F,EAAuB24F,IA1R3B,WAME,OAAO,MAqRL34F,EAAuB64D,OArL3B,WAIE,OAAO,MAuLE74D,IA9cD,gC,cCPV7sE,EAAOD,QAJW,CACdo7B,UAAW,U,0CCCfzrB,UAAQsK,oBAAoB,QAC5B,CACIyO,YAAa,KACb6vE,YAAc,GACdC,UAAY,GACZktE,OAAS,GAOT5mJ,KAAM,SAAS6mJ,GAEfzxJ,KAAKwU,YAAci9I,EACfzxJ,KAAKqkF,YAAc,GACnBrkF,KAAKskF,UAAc,GACnBtkF,KAAKwxJ,OAAc,GAEnBC,EAAK1jJ,WAAW/N,KAAK0xJ,aAAa5jK,KAAKkS,MAAOvE,UAAQK,GAAGO,WAAY,KAAM,MAAO,KAAM,MAExFo1J,EAAK1jJ,WAAW/N,KAAK2xJ,cAAc7jK,KAAKkS,MAAOvE,UAAQK,GAAGQ,YAAa,KAAM,MAAO,KAAM,OAa9Fs1J,YAAa,SAAS3tE,EAAUh9E,EAAMpa,EAAMglK,GAExC,IAAK,IAAIvlK,EAAE,EAAGA,EAAE0T,KAAKqkF,YAAY9tF,OAAQjK,IAErC,GAAI0T,KAAKqkF,YAAY/3F,GAAG23F,UAAYA,GAChCjkF,KAAKqkF,YAAY/3F,GAAG2a,MAAQA,GAC5BjH,KAAKqkF,YAAY/3F,GAAGO,MAAQA,GAC5BmT,KAAKqkF,YAAY/3F,GAAGulK,MAAQA,EAE5B,OAAO,EAIf,OADA7xJ,KAAKqkF,YAAYnhF,KAAK,CAAC+gF,SAAUA,EAAUh9E,KAAMA,EAAMpa,KAAMA,EAAMglK,KAAMA,KAClE,GAUX/3G,WAAY,SAASg4G,GAEjB,IAAK,IAAIxlK,EAAE,EAAGA,EAAE0T,KAAKskF,UAAU/tF,OAAQjK,IAElC,GAAI0T,KAAKskF,UAAUh4F,IAAMwlK,EACrB,OAAO,EAGhB,OADA9xJ,KAAKskF,UAAUphF,KAAK4uJ,IACb,GAUXluE,cAAe,SAASkuE,GAEpB,IAAK,IAAIxlK,EAAE,EAAGA,EAAE0T,KAAKskF,UAAU/tF,OAAQjK,IAElC,GAAI0T,KAAKskF,UAAUh4F,KAAOwlK,EAEtB,OADA9xJ,KAAKskF,UAAUrgF,OAAO3X,EAAE,IACjB,EAGhB,OAAO,GAaXylK,QAAS,SAASpuJ,EAAK9W,EAAMqU,EAAM8wJ,GAE/B,QAAI9wJ,IAAS8wJ,IAEbhyJ,KAAKwxJ,OAAOtuJ,KAAK,CAACS,IAAKA,EAAK9W,KAAMA,EAAMqU,KAAMA,EAAM8wJ,UAAWA,IACxD,KAUX9sJ,KAAM,SAASvB,EAAKzC,EAAMwmD,EAAS1iD,EAAO4I,GAEtC,IAAIpS,EAAQ,CAACyK,MAAOxK,UAAQK,GAAGO,YAC3B6E,IACA1F,EAAM0F,KAAOA,GAEjB,IAAIgE,EAAOvJ,MAAI,CAAChF,KAAKqJ,KAAKwU,YAAY7Q,IACrBolC,GAAGplC,EAAKsD,KAAK,QAAQta,EAAE,QAAS6O,GACjDwE,KAAKwU,YAAYpG,OAAOlJ,EAAMwiD,EAAS1iD,EAAO4I,IAUlDqkJ,MAAO,SAAStuJ,EAAKzC,EAAMwmD,EAAS1iD,EAAO4I,GAEvC,IAAIpS,EAAQ,CAACyK,MAAOxK,UAAQK,GAAGQ,aAC3B4E,IACA1F,EAAM0F,KAAOA,GAEjB,IAAI+wJ,EAAQt2J,MAAI,CAAChF,KAAKqJ,KAAKwU,YAAY7Q,IACtBolC,GAAGplC,EAAKsD,KAAK,QAAQta,EAAE,QAAS6O,GACjDwE,KAAKwU,YAAYpG,OAAO6jJ,EAAOvqG,EAAS1iD,EAAO4I,IAKnDskJ,eAAgB,SAASlkJ,EAAQmkJ,GAE7B,IAAIjrJ,EAAQ8G,EAAOpL,aAAa,MAC5BjM,EAAOqX,EAAOpL,aAAa,QAC3BwvJ,EAAWz2J,MAAI,CAACsL,KAAM,SAAUC,GAAIA,IAMxC,OAJa,OAATvQ,GACAy7J,EAAS52J,MAAM,CAACutC,GAAIpyC,IAGjBy7J,EAASzlK,EAAE,QAASwlK,IAM/BT,aAAc,SAAS1jJ,GAEnB,IAEI1hB,EAFA4U,EAAO8M,EAAO8C,qBAAqB,SAAS,GAAGlO,aAAa,QAC5DpH,EAAQ,CAACyK,MAAOxK,UAAQK,GAAGO,YAE3B6E,IAEA1F,EAAM0F,KAAOA,GAEjB,IAAIkxJ,EAAWpyJ,KAAKkyJ,eAAelkJ,EAAQxS,GAC3C,IAAKlP,EAAE,EAAGA,EAAE0T,KAAKqkF,YAAY9tF,OAAQjK,IAEjCkP,EAAQ,CAACyoF,SAAUjkF,KAAKqkF,YAAY/3F,GAAG23F,SAC1Bh9E,KAAUjH,KAAKqkF,YAAY/3F,GAAG2a,MACvCjH,KAAKqkF,YAAY/3F,GAAGO,OACpB2O,EAAM3O,KAAOmT,KAAKqkF,YAAY/3F,GAAGO,MACjCmT,KAAKqkF,YAAY/3F,GAAGulK,OACpBr2J,EAAM,YAAcwE,KAAKqkF,YAAY/3F,GAAGulK,MAC5CO,EAASzlK,EAAE,WAAY6O,GAAO2K,KAElC,IAAK7Z,EAAE,EAAGA,EAAE0T,KAAKskF,UAAU/tF,OAAQjK,IAE/B8lK,EAASzlK,EAAE,UAAW,CAAC,IAAMqT,KAAKskF,UAAUh4F,KAAK6Z,KAGrD,OADAnG,KAAKwU,YAAYnH,KAAK+kJ,EAAS/sJ,SACxB,GAKXssJ,cAAe,SAAS3jJ,GAEpB,IAEIikJ,EAAO3lK,EAFP6lK,EAAc,CAAClsJ,MAAOxK,UAAQK,GAAGQ,aACjC4E,EAAO8M,EAAO8C,qBAAqB,SAAS,GAAGlO,aAAa,QAEhE,GAAI1B,GAIA,IAFAixJ,EAAYjxJ,KAAOA,EACnB+wJ,EAAQ,GACH3lK,EAAI,EAAGA,EAAI0T,KAAKwxJ,OAAOj7J,OAAQjK,IAEhC,GAAI0T,KAAKwxJ,OAAOllK,GAAG4U,MAAQA,EAC3B,CACI+wJ,EAAQjyJ,KAAKwxJ,OAAOllK,GAAG0lK,UAAUhkJ,GACjC,YAMRikJ,EAAQjyJ,KAAKwxJ,OAEjB,IAAIY,EAAWpyJ,KAAKkyJ,eAAelkJ,EAAQmkJ,GAC3C,IAAK7lK,EAAI,EAAGA,EAAI2lK,EAAM17J,OAAQjK,IAC9B,CACI,IAAIkP,EAAQ,CAACmI,IAAMsuJ,EAAM3lK,GAAGqX,KACxBsuJ,EAAM3lK,GAAGO,OACT2O,EAAM3O,KAAOolK,EAAM3lK,GAAGO,MACtBolK,EAAM3lK,GAAG4U,OACT1F,EAAM0F,KAAO+wJ,EAAM3lK,GAAG4U,MAC1BkxJ,EAASzlK,EAAE,OAAQ6O,GAAO2K,KAG9B,OADAnG,KAAKwU,YAAYnH,KAAK+kJ,EAAS/sJ,SACxB,K,kDCpNf5J,UAAQsK,oBAAoB,mBAAoB,CAK/CssJ,SAAS,EAOTC,oCAAoC,EAQpCC,wBAAyB,EAMzBC,GAAI,KAMJC,IAAK,gBAMLC,4BAA4B,EAQ5BC,gCAAiC,KAQjCC,+BAAgC,KAMhCC,0BAA2B,KAQ3BC,mBAAoB,KAMpBC,gBAAiB,KAMjBC,iBAAkB,KAKlBC,8BAA+B,EAM/BC,cAAc,EAKdC,uBAAwB,GAOxBC,6BAA8B,GAE9BC,8BAA+B,SAAS3xI,GACvC1hB,KAAKozJ,6BAA6BlwJ,KAAKwe,IAGxC8f,OAAQ,SAASx2B,GAChB,IAAKhL,KAAKkzJ,aACT,MAAM,IAAI77J,MAAM,sDACV,GAAI2I,KAAK0mH,oBAAsBjrH,UAAQgC,OAAOM,UACpD,MAAM,IAAI1G,MAAM,sDAEjB2I,KAAKwyJ,GAAGnlJ,KAAK9R,SAAO,SAAU,CAAE0K,MAAOjG,KAAKyyJ,IAAKznJ,YACjDhL,KAAKwyJ,GAAGhlJ,QACRxN,KAAKwyJ,GAAGznJ,SAGTqoD,eAAgB,WACf,OAAOpzD,KAAKszJ,cAGb,cACC,OAAOtzJ,KAAKkzJ,cAGbloJ,OAAQ,WACP,IAAKhL,KAAKozD,iBACT,MAAM,IAAI/7D,MAAM,mBAEjB,GAAI2I,KAAK0mH,oBAAsBjrH,UAAQgC,OAAOO,aAC7C,MAAM,IAAI3G,MAAM,yDAGjB2I,KAAKwyJ,GAAGrrJ,QAAQwM,yBAA0B,EAC1C3T,KAAKuzJ,WAAY,EAEjBvzJ,KAAKwzJ,iBAAiB5xH,MAAM5hC,KAAKwyJ,GAAIxyJ,KAAKyzJ,eAG3CC,uBAAwB,WACvB,GAAI1zJ,KAAK0mH,oBAAsBjrH,UAAQgC,OAAOM,UAC7C,MAAM,IAAI1G,MAAM,sEAEjB2I,KAAKizJ,8BAAgC,EACrCjzJ,KAAKwyJ,GAAGnlJ,KAAK9R,SAAO,IAAK,CAAE0K,MAAOjG,KAAKyyJ,QAGxCkB,mBAAoB,WACnB,OAAO3zJ,KAAK6yJ,2BAGbe,mBAAoB,WACnB,OAAO5zJ,KAAK4yJ,gCAGbhoJ,KAAM,SAAS6mJ,GACdzxJ,KAAKwyJ,GAAKf,EACVh2J,UAAQ+D,aAAa,KAAMQ,KAAKyyJ,KAGhCzyJ,KAAK8yJ,mBAAqB9yJ,KAAKwyJ,GAAGvlJ,UAClCjN,KAAKwyJ,GAAGvlJ,UAAYjN,KAAKiN,UAAUnf,KAAKkS,MAExCA,KAAKwzJ,iBAAmBxzJ,KAAKwyJ,GAAG/mJ,QAChCzL,KAAKwyJ,GAAG/mJ,QAAUzL,KAAK6zJ,sBAAsB/lK,KAAKkS,MAElDA,KAAK8zJ,mCAAqC9zJ,KAAKwyJ,GAAG9+I,2BAClD1T,KAAKwyJ,GAAG9+I,2BAA6B1T,KAAK0T,2BAA2B5lB,KAAKkS,MAE1EA,KAAK+zJ,sBAAwB/zJ,KAAKwyJ,GAAG1iJ,cACrC9P,KAAKwyJ,GAAG1iJ,cAAgB9P,KAAKg0J,uBAAuBlmK,KAAKkS,MAEzDA,KAAKi0J,oBAAsBj0J,KAAKwyJ,GAAGjjJ,WACnCvP,KAAKwyJ,GAAGjjJ,WAAavP,KAAKk0J,qBAAqBpmK,KAAKkS,OAGrDk0J,qBAAsB,WACrBl0J,KAAKszJ,kBAAe/yJ,EACpBP,KAAKi0J,oBAAoBryH,MAAM5hC,KAAKwyJ,GAAIrxJ,YAGzC6yJ,uBAAwB,WACnBh0J,KAAKozD,mBACHpzD,KAAKuzJ,WACNvzJ,KAAKwyJ,GAAG5oJ,YAAc5J,KAAKwyJ,GAAG3oJ,gBAClC7J,KAAKm0J,aAAe,CACnBhrJ,SAAUnJ,KAAKwyJ,GAAGrpJ,SAClBD,cAAelJ,KAAKwyJ,GAAGtpJ,cACvBE,aAAcpJ,KAAKwyJ,GAAGppJ,aACtBC,eAAgBrJ,KAAKwyJ,GAAGnpJ,eACxBC,UAAWtJ,KAAKwyJ,GAAGlpJ,UACnBC,YAAavJ,KAAKwyJ,GAAGjpJ,aAEtBvJ,KAAKo0J,WAAap0J,KAAKwyJ,GAAG7uJ,IAE1B3D,KAAKqyJ,SAAW52J,UAAQwJ,MAAM,0CAA4CjF,KAAKm0J,aAAahrJ,SAAS5S,SAKtGyJ,KAAKwyJ,GAAGvoJ,MAAQ,GAEhBjK,KAAK+zJ,sBAAsBnyH,MAAM5hC,KAAKwyJ,GAAIrxJ,YAG3C0yJ,sBAAuB,WACtB7zJ,KAAKyzJ,aAAetyJ,UAEpBnB,KAAKwzJ,iBAAiB5xH,MAAM5hC,KAAKwyJ,GAAIrxJ,YAGtCuS,2BAA4B,SAAShU,GAGpC,OAFAM,KAAKkzJ,aAAexzJ,EAAK4R,uBAAuBtR,KAAKyyJ,IAAK,MAAMl8J,OAAS,EAElEyJ,KAAK8zJ,mCAAmClyH,MAAM5hC,KAAKwyJ,GAAIrxJ,YAG/D+O,cAAe,SAAUH,GAExB,GADA/P,KAAK0mH,kBAAoB32G,EACpB/P,KAAKozD,kBACLrjD,IAAWtU,UAAQgC,OAAOM,WAAagS,IAAWtU,UAAQgC,OAAOO,aAqC/D,GAAI+R,IAAWtU,UAAQgC,OAAOY,aAAe,CACnD2B,KAAKwyJ,GAAG7uJ,IAAM3D,KAAKo0J,WAGnB,IAAK,MAAMnmK,KAAY+R,KAAKm0J,aAC3Bn0J,KAAKwyJ,GAAGvkK,GAAY+R,KAAKm0J,aAAalmK,GAIvC+R,KAAKwyJ,GAAGnlJ,KAAK9R,SAAO,SAAU,CAC7B0K,MAAOjG,KAAKyyJ,IACZ7rJ,EAAG5G,KAAK4yJ,+BACRyB,OAAQr0J,KAAKszJ,gBAEdtzJ,KAAKwyJ,GAAGhlJ,aACEuC,IAAWtU,UAAQgC,OAAOC,QACpCsC,KAAKqyJ,SAAW52J,UAAQwJ,MAAM,oCAC9BjF,KAAKszJ,kBAAe/yJ,QArDpBP,KAAKqyJ,SAAW52J,UAAQwJ,MAAM,kBAE9BjF,KAAK2yJ,gCAAkC,EACvC3yJ,KAAK4yJ,+BAAiC,EAEtC5yJ,KAAK6yJ,0BAA4B,EAEjC7yJ,KAAK0yJ,4BAA6B,EAClC1yJ,KAAKizJ,8BAAgC,EAGrCjzJ,KAAKuzJ,WAAY,EAEbxjJ,IAAWtU,UAAQgC,OAAOO,eAC7BgC,KAAKkzJ,cAAe,GAGrBlzJ,KAAKmzJ,uBAAyB,GAE1BnzJ,KAAK+yJ,iBACR/yJ,KAAKwyJ,GAAGrkJ,cAAcnO,KAAK+yJ,iBAGxB/yJ,KAAKgzJ,kBACRhzJ,KAAKwyJ,GAAGrkJ,cAAcnO,KAAKgzJ,kBAG5BhzJ,KAAK+yJ,gBAAkB/yJ,KAAKwyJ,GAAGzkJ,WAAW/N,KAAKs0J,4BAA4BxmK,KAAKkS,MAAOA,KAAKyyJ,IAAK,KACjGzyJ,KAAKu0J,YAAcv0J,KAAKwyJ,GAAGzkJ,WAAW/N,KAAKw0J,iBAAiB1mK,KAAKkS,MAAOA,KAAKyyJ,IAAK,KAClFzyJ,KAAKgzJ,iBAAmBhzJ,KAAKwyJ,GAAGzkJ,WAAW/N,KAAKy0J,uBAAuB3mK,KAAKkS,OAG5EA,KAAK00J,gBAAkB10J,KAAKwyJ,GAAGrgJ,eAAenS,KAAK20J,eAAe7mK,KAAKkS,MAAOA,KAAKyyJ,IAAK,WACxFzyJ,KAAK40J,qBAAuB50J,KAAKwyJ,GAAGrgJ,eAAenS,KAAK60J,oBAAoB/mK,KAAKkS,MAAOA,KAAKyyJ,IAAK,UAClGzyJ,KAAK80J,gBAAmB90J,KAAKwyJ,GAAGrgJ,eAAenS,KAAK+0J,eAAejnK,KAAKkS,MAAOA,KAAKyyJ,IAAI,YA8B1FxlJ,UAAW,SAASvN,GAOnB,OANIjE,UAAQwE,WAAWP,EAAM,OAC5BjE,UAAQwE,WAAWP,EAAM,aACzBjE,UAAQwE,WAAWP,EAAM,aACzBM,KAAKg1J,4BAA4Bt1J,GAG3BM,KAAK8yJ,mBAAmBrmK,KAAKuT,KAAKwyJ,GAAI9yJ,IAG9Ci1J,eAAgB,SAASj1J,GAOxB,OANAM,KAAK0yJ,4BAA6B,EAElC1yJ,KAAKszJ,aAA+C,SAAhC5zJ,EAAKkD,aAAa,WAAwBlD,EAAKkD,aAAa,MAEhF5C,KAAKwyJ,GAAGxnJ,UAED,GAGR6pJ,oBAAqB,SAASn1J,GAC7B,MAAMsF,EAAQtF,GAAQA,EAAKu1J,mBAAqBv1J,EAAKu1J,kBAAkB90J,QAKvE,OAHAH,KAAKwyJ,GAAGtmJ,qBAAqBzQ,UAAQgC,OAAOC,MAAOsH,EAAOtF,GAC1DM,KAAKwyJ,GAAG1iJ,iBAED,GAGRilJ,eAAgB,SAASr1J,GAExB,IAAIw1J,EAAe58I,SAAS5Y,EAAKkD,aAAa,MAQ9C,GAPA5C,KAAKm1J,2BAA2BD,EAAcl1J,KAAK2yJ,iCAEnD3yJ,KAAKuzJ,WAAY,EACjBvzJ,KAAKwyJ,GAAGvpJ,SAAU,EAClBjJ,KAAKwyJ,GAAG7oJ,eAAgB,EACxB3J,KAAKwyJ,GAAGxoJ,UAAW,EAEfhK,KAAKmzJ,uBAAuB58J,OAAS,EAAG,CAC3CyJ,KAAKqyJ,SAAW52J,UAAQwJ,MAAM,oCAAqCjF,KAAKmzJ,wBACxE,IAAI,MAAMnlJ,KAAUhO,KAAKmzJ,uBACxBnzJ,KAAKwyJ,GAAGnlJ,KAAKW,QAGdhO,KAAKqyJ,SAAW52J,UAAQwJ,MAAM,+BAAgCjF,KAAKmzJ,wBAKpE,OAFAnzJ,KAAKwyJ,GAAGtmJ,qBAAqBzQ,UAAQgC,OAAOM,UAAW,OAEhD,GAGR02J,uBAAwB,SAAS/0J,GAShC,OARIjE,UAAQwE,WAAWP,EAAM,OAASjE,UAAQwE,WAAWP,EAAM,aAAejE,UAAQwE,WAAWP,EAAM,cACtGM,KAAKo1J,kCAEDp1J,KAAKsyJ,oCACRtyJ,KAAKq1J,4BAIA,GAGRF,2BAA4B,SAASG,EAAsBC,GAC1D,IAAIC,EAAQF,EAAuBC,EAE/BC,EAAQ,GACXx1J,KAAKy1J,YAAY,uDAAyDH,EAAuB,gBAAkBC,GAGhHC,EAAQx1J,KAAKmzJ,uBAAuB58J,QACvCyJ,KAAKy1J,YAAY,8FAAgGD,EAAQ,kCAAoCx1J,KAAKmzJ,uBAAuB58J,OAAS,WAAa++J,EAAuB,gBAAkBC,GAGzP,IAAI,IAAIjpK,EAAI,EAAGA,EAAIkpK,EAAOlpK,IAEzB,IADA,IAAI0hB,EAAShO,KAAKmzJ,uBAAuBzlI,QAChCx0B,EAAI,EAAGA,EAAI8G,KAAKozJ,6BAA6B78J,OAAQ2C,IAC7D8G,KAAKozJ,6BAA6Bl6J,GAAG8U,GAInChO,KAAKqyJ,SAAWryJ,KAAKmzJ,uBAAuB58J,OAAS,GACxDkF,UAAQ0J,KAAK,4BAA6BnF,KAAKmzJ,wBAGhDnzJ,KAAK2yJ,gCAAkC2C,EAEnCt1J,KAAKuyJ,wBAA0B,IAClCvyJ,KAAKizJ,8BAAgC,IAIvCqB,4BAA6B,WAG5B,OAFAt0J,KAAKq1J,2BAEE,GAGRb,iBAAkB,SAAS90J,GAC1B,IAAIw1J,EAAe58I,SAAS5Y,EAAKkD,aAAa,MAG9C,OAFA5C,KAAKm1J,2BAA2BD,EAAcl1J,KAAK2yJ,kCAE5C,GAGR0C,wBAAyB,WACpBr1J,KAAK0yJ,4BACR1yJ,KAAKwyJ,GAAGnlJ,KAAK9R,SAAO,IAAK,CAAE0K,MAAOjG,KAAKyyJ,IAAK7rJ,EAAG5G,KAAK4yJ,mCAItDoC,4BAA6B,SAASt1J,GACrC,GAAIM,KAAK0yJ,2BAA4B,CACpC,IAAmD,IAA/C1yJ,KAAKmzJ,uBAAuBvvJ,QAAQlE,GAEvC,OAGDM,KAAKmzJ,uBAAuBjwJ,KAAKxD,GACjCM,KAAK6yJ,4BAED7yJ,KAAKuyJ,wBAA0B,IAClCvyJ,KAAKizJ,gCAEDjzJ,KAAKizJ,gCAAkCjzJ,KAAKuyJ,yBAE/ChoJ,WAAW,KACNvK,KAAK0mH,oBAAsBjrH,UAAQgC,OAAOM,WAC7CiC,KAAK0zJ,0BAEJ,MAMP0B,gCAAiC,WAC5Bp1J,KAAK0yJ,4BACR1yJ,KAAK4yJ,kCAIP6C,YAAa,SAAS3wJ,GAErB,MADArJ,UAAQuJ,MAAMF,GACR,IAAIzN,MAAMyN,M,yBC9blB,gBAAI4wJ,OAA2B,IAAX9/J,GAA0BA,GACjB,oBAATC,MAAwBA,MAChC3J,OACR01C,EAAQyJ,SAASn9C,UAAU0zC,MAiB/B,SAAS+zH,EAAQzuJ,EAAI0uJ,GACnB51J,KAAKsmH,IAAMp/G,EACXlH,KAAK61J,SAAWD,EAflB9pK,EAAQye,WAAa,WACnB,OAAO,IAAIorJ,EAAQ/zH,EAAMn1C,KAAK8d,WAAYmrJ,EAAOv0J,WAAYsM,eAE/D3hB,EAAQwwC,YAAc,WACpB,OAAO,IAAIq5H,EAAQ/zH,EAAMn1C,KAAK6vC,YAAao5H,EAAOv0J,WAAYm5B,gBAEhExuC,EAAQ2hB,aACR3hB,EAAQwuC,cAAgB,SAAS1sB,GAC3BA,GACFA,EAAQ6O,SAQZk5I,EAAQznK,UAAU4nK,MAAQH,EAAQznK,UAAU6nK,IAAM,aAClDJ,EAAQznK,UAAUuuB,MAAQ,WACxBzc,KAAK61J,SAASppK,KAAKipK,EAAO11J,KAAKsmH,MAIjCx6H,EAAQkqK,OAAS,SAASziI,EAAM0iI,GAC9BxoJ,aAAa8lB,EAAK2iI,gBAClB3iI,EAAK9pB,aAAewsJ,GAGtBnqK,EAAQqqK,SAAW,SAAS5iI,GAC1B9lB,aAAa8lB,EAAK2iI,gBAClB3iI,EAAK9pB,cAAgB,GAGvB3d,EAAQsqK,aAAetqK,EAAQw6F,OAAS,SAAS/yD,GAC/C9lB,aAAa8lB,EAAK2iI,gBAElB,IAAID,EAAQ1iI,EAAK9pB,aACbwsJ,GAAS,IACX1iI,EAAK2iI,eAAiB3rJ,YAAW,WAC3BgpB,EAAK8iI,YACP9iI,EAAK8iI,eACNJ,KAKP74I,EAAQ,KAIRtxB,EAAQ0qI,aAAgC,oBAAT3gI,MAAwBA,KAAK2gI,mBAClB,IAAX5gI,GAA0BA,EAAO4gI,cACxCx2H,MAAQA,KAAKw2H,aACrC1qI,EAAQwqK,eAAkC,oBAATzgK,MAAwBA,KAAKygK,qBAClB,IAAX1gK,GAA0BA,EAAO0gK,gBACxCt2J,MAAQA,KAAKs2J,iB,mCC9DtC,wBAAU1gK,EAAQ2K,GACf,aAEA,IAAI3K,EAAO4gI,aAAX,CAIA,IAII+/B,EA6HIv0J,EAZAk+H,EArBAs2B,EACAC,EAjGJC,EAAa,EACbC,EAAgB,GAChBC,GAAwB,EACxBt2J,EAAM1K,EAAOyF,SAoJbw7J,EAAW7pK,OAAO4gD,gBAAkB5gD,OAAO4gD,eAAeh4C,GAC9DihK,EAAWA,GAAYA,EAAStsJ,WAAassJ,EAAWjhK,EAGf,qBAArC,GAAGc,SAASjK,KAAKmJ,EAAOo+D,SApFxBuiG,EAAoB,SAASO,GACzB9iG,EAAQssB,UAAS,WAAcy2E,EAAaD,QAIpD,WAGI,GAAIlhK,EAAOo+G,cAAgBp+G,EAAOohK,cAAe,CAC7C,IAAIC,GAA4B,EAC5BC,EAAethK,EAAOkmB,UAM1B,OALAlmB,EAAOkmB,UAAY,WACfm7I,GAA4B,GAEhCrhK,EAAOo+G,YAAY,GAAI,KACvBp+G,EAAOkmB,UAAYo7I,EACZD,GAwEJE,GAIAvhK,EAAOwhK,iBA9CVl3B,EAAU,IAAIk3B,gBACVC,MAAMv7I,UAAY,SAASuL,GAE/B0vI,EADa1vI,EAAM1tB,OAIvB48J,EAAoB,SAASO,GACzB52B,EAAQo3B,MAAMtjD,YAAY8iD,KA2CvBx2J,GAAO,uBAAwBA,EAAIO,cAAc,WAtCpDmB,EAAO1B,EAAI0W,gBACfu/I,EAAoB,SAASO,GAGzB,IAAI/9F,EAASz4D,EAAIO,cAAc,UAC/Bk4D,EAAO1hD,mBAAqB,WACxB0/I,EAAaD,GACb/9F,EAAO1hD,mBAAqB,KAC5BrV,EAAKu1J,YAAYx+F,GACjBA,EAAS,MAEb/2D,EAAKpB,YAAYm4D,KAKrBw9F,EAAoB,SAASO,GACzBvsJ,WAAWwsJ,EAAc,EAAGD,KAlD5BN,EAAgB,gBAAkBprJ,KAAKC,SAAW,IAClDorJ,EAAkB,SAASpvI,GACvBA,EAAM0D,SAAWn1B,GACK,iBAAfyxB,EAAM1tB,MACyB,IAAtC0tB,EAAM1tB,KAAKiK,QAAQ4yJ,IACnBO,GAAc1vI,EAAM1tB,KAAKugC,MAAMs8H,EAAcjgK,UAIjDX,EAAOymC,iBACPzmC,EAAOymC,iBAAiB,UAAWo6H,GAAiB,GAEpD7gK,EAAOo8H,YAAY,YAAaykC,GAGpCF,EAAoB,SAASO,GACzBlhK,EAAOo+G,YAAYwiD,EAAgBM,EAAQ,OAgEnDD,EAASrgC,aA1KT,SAAsBhrH,GAEI,mBAAbA,IACTA,EAAW,IAAI6/B,SAAS,GAAK7/B,IAI/B,IADA,IAAI22B,EAAO,IAAI/rC,MAAM+K,UAAU5K,OAAS,GAC/BjK,EAAI,EAAGA,EAAI61C,EAAK5rC,OAAQjK,IAC7B61C,EAAK71C,GAAK6U,UAAU7U,EAAI,GAG5B,IAAIwxH,EAAO,CAAEtyG,SAAUA,EAAU22B,KAAMA,GAGvC,OAFAw0H,EAAcD,GAAc54C,EAC5By4C,EAAkBG,GACXA,KA6JTG,EAASP,eAAiBA,EA1J1B,SAASA,EAAeQ,UACbH,EAAcG,GAyBzB,SAASC,EAAaD,GAGlB,GAAIF,EAGArsJ,WAAWwsJ,EAAc,EAAGD,OACzB,CACH,IAAIh5C,EAAO64C,EAAcG,GACzB,GAAIh5C,EAAM,CACN84C,GAAwB,EACxB,KAjCZ,SAAa94C,GACT,IAAItyG,EAAWsyG,EAAKtyG,SAChB22B,EAAO27E,EAAK37E,KAChB,OAAQA,EAAK5rC,QACb,KAAK,EACDiV,IACA,MACJ,KAAK,EACDA,EAAS22B,EAAK,IACd,MACJ,KAAK,EACD32B,EAAS22B,EAAK,GAAIA,EAAK,IACvB,MACJ,KAAK,EACD32B,EAAS22B,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MACJ,QACI32B,EAASo2B,WAnDpB,EAmDqCO,IAiBlBp6B,CAAI+1G,GADR,QAGIw4C,EAAeQ,GACfF,GAAwB,MAvE3C,CAyLiB,oBAAT/gK,UAAyC,IAAXD,EAAyBoK,KAAOpK,EAASC,Q,wCCzLhF,IAAI2hK,EAAa,SAAU3mH,GACzB,OAAO/3C,OAAOygB,OAAOs3B,MAAQA,EAAIt3B,OAAOs3B,GAAKA,GAgB3C4mH,EAAW,SAAU1hK,EAAKglB,EAAU43B,GACtC,IAAI+kH,EAAa3hK,EAAIlJ,MAAQkJ,EAAIuP,MAC7BvP,EAAImN,OAAS6X,EAAShlB,EAAImN,MAC5B6X,EAAShlB,EAAImN,MAAQ,GAEdw0J,IAAe38I,EAAShlB,EAAIlJ,QACnCkuB,EAAShlB,EAAIlJ,MAAQ,IAEvB,IAAI8qK,EAAc5hK,EAAImN,KACpB,GACAw0J,EAAa38I,EAAShlB,EAAIlJ,MAAQkuB,GAvBf,SAAUzH,EAAOyH,EAAUzV,EAAOsyJ,GACvD,GAAIA,IAAYtyJ,EACdyV,EAAS68I,GAAWJ,EAAWlkJ,EAAM,SAGrC,IAAK,IAAIhnB,EAAI,EAAGA,EAAIgZ,EAAM/O,OAAQjK,GAAK,EACnB,MAAdgnB,EAAMhnB,EAAE,KACVyuB,EAASzV,EAAMhZ,IAAMkrK,EAAWlkJ,EAAMhnB,EAAE,KAkB9CurK,CAAiBllH,EAAQr/B,MAAMvd,EAAIglG,KAAM48D,EAAa5hK,EAAIuP,MAAOvP,EAAIlJ,MAEjEkJ,EAAImN,MACN6X,EAAShlB,EAAImN,MAAMA,KAAKy0J,IAIxB78D,EAAU19E,EAAQ,IAClB06I,EAAYhtG,OAAO58D,UAAUgkB,KAAKpkB,KAAK,iBAE3ChC,EAAQosB,MAAQ,SAAU8Z,GACxB,IAAI/Z,EAAU,GACVwV,EAAQ,GACR1S,EAAW9C,EAoBf,OAjBA+Z,EAAIjvB,MAAM,gBAAgB2tB,OAAOonI,GAAW1oJ,SAAQ,SAAU7iB,GAC5D,IAAI0a,EAAO1a,EAAE,GACTomD,EAAUpmD,EAAE2tC,MAAM,GACT,MAATjzB,IACFwmB,EAAMvqB,KAAK,CAACqvB,IAAK,GAAIe,KAAM,KAC3BvY,EAAW0S,EAAMA,EAAMl3B,OAAO,IAGhC,IAAK,IAAI2C,EAAI,EAAGA,GAAK4hG,EAAQ7zF,IAAS,IAAI1Q,OAAQ2C,GAAK,EAAG,CACxD,IAAInD,EAAM+kG,EAAQ7zF,GAAM/N,GACxB,GAAInD,EAAIglG,IAAI7oF,KAAKygC,GACf,OAAO8kH,EAAS1hK,EAAKglB,EAAU43B,OAKrC16B,EAAQwV,MAAQA,EACTxV,GAGT,IAAI8/I,EAAe,SAAUC,EAAKC,GAChC,IAAI5pK,EAAI4pK,EAAKl1J,MAAM,QAAS,GAI5B,OAHiB,IAAb1U,EAAEkI,SACJyhK,EAAI3pK,EAAE,IAAMmpK,EAAWnpK,EAAE,KAEpB2pK,GAGTlsK,EAAQmsD,YAAc,SAAU7gD,GAC9B,OAAOA,EAAI2L,MAAM,SAAS2C,OAAOqyJ,EAAc,KAIjDjsK,EAAQksD,gBAAkBlsD,EAAQmsD,YAElCnsD,EAAQosD,cAAgB,SAAU9gD,GAChC,OAAOA,EAAI2L,MAAM,KAAKyC,IAAI+T,SAG5BztB,EAAQqsD,sBAAwB,SAAU/gD,GAGxC,IAFA,IAAI24E,EAAa,GACb/rE,EAAQ5M,EAAI2L,MAAM,KAAKyC,IAAIgyJ,GACtBlrK,EAAI,EAAGA,EAAI0X,EAAMzN,OAAQjK,GAAK,EACrCyjF,EAAW7sE,KAAK,CACd0rB,UAAW5qB,EAAM1X,GACjBuiC,GAAI7qB,EAAM1X,EAAI,GACdqhC,KAAM3pB,EAAM1X,EAAI,KAGpB,OAAOyjF,GAGTjkF,EAAQssD,qBAAuB,SAAUhhD,GACvC,OAAOA,EAAI2L,MAAM,KAAKyC,KAAI,SAAU+tB,GAClC,OAAOA,EAAKpG,UAAU,EAAGoG,EAAKh9B,OAAO,GAAGwM,MAAM,KAAK2C,OAAOqyJ,EAAc,QAI5EjsK,EAAQusD,yBAA2B,SAAUjhD,GAC3C,OAAOA,EAAI2L,MAAM,KAAKyC,KAAI,SAAU+b,GAClC,OAAOA,EAAOxe,MAAM,KAAKyC,KAAI,SAAUw1F,GACrC,IAAIk9D,EAAMnuJ,GAAS,EASnB,MAPkB,MAAdixF,EAAO,GACTk9D,EAAOV,EAAWx8D,IAElBk9D,EAAOV,EAAWx8D,EAAO7tE,UAAU,EAAG6tE,EAAOzkG,SAC7CwT,GAAS,GAGJ,CACLmuJ,KAAMA,EACNnuJ,OAAQA,W,gBCrHhB,IAAI+wF,EAAU19E,EAAQ,IAGlB+6I,EAAe,WACfn9D,EAAS,SAAUo9D,GACrB,IAAI9rK,EAAI,EACJ61C,EAAOhhC,UACPhJ,EAAMgqC,EAAK5rC,OACf,OAAO6hK,EAAUx2J,QAAQu2J,GAAc,SAAUnhK,GAC/C,GAAI1K,GAAK6L,EACP,OAAOnB,EAET,IAAIoK,EAAM+gC,EAAK71C,GAEf,OADAA,GAAK,EACG0K,GACR,IAAK,KACH,MAAO,IACT,IAAK,KACH,OAAO8B,OAAOsI,GAChB,IAAK,KACH,OAAOmY,OAAOnY,GAChB,IAAK,KACH,MAAO,QAMTi3J,EAAW,SAAUpxJ,EAAMlR,EAAKglB,GAClC,IAIIonB,EAAO,CAACl7B,EAAO,KAJTlR,EAAIilG,kBAAkB3vD,SAC7Bt1C,EAAIilG,OAAOjlG,EAAImN,KAAO6X,EAAWA,EAAShlB,EAAIlJ,OAC/CkJ,EAAIilG,SAGN,GAAIjlG,EAAIuP,MACN,IAAK,IAAIhZ,EAAI,EAAGA,EAAIyJ,EAAIuP,MAAM/O,OAAQjK,GAAK,EAAG,CAC5C,IAAIyB,EAAIgI,EAAIuP,MAAMhZ,GACdyJ,EAAIlJ,KACNs1C,EAAKj/B,KAAK6X,EAAShlB,EAAIlJ,MAAMkB,IAG7Bo0C,EAAKj/B,KAAK6X,EAAShlB,EAAIuP,MAAMhZ,UAKjC61C,EAAKj/B,KAAK6X,EAAShlB,EAAIlJ,OAEzB,OAAOmuG,EAAOp5D,MAAM,KAAMO,IAKxBm2H,EAAoB,CACtB,IAAK,IAAK,IAAK,IACf,IAAK,IAAK,IAAK,IACf,IAAK,IAAK,IAAK,IAAK,KAElBC,EAAoB,CAAC,IAAK,IAAK,IAAK,KAGxCxsK,EAAOD,QAAU,SAAUmsB,EAAS23H,GAClCA,EAAOA,GAAQ,GAEQ,MAAnB33H,EAAQ87B,UACV97B,EAAQ87B,QAAU,GAEA,MAAhB97B,EAAQprB,OACVorB,EAAQprB,KAAO,KAEjBorB,EAAQwV,MAAMre,SAAQ,SAAUqiB,GACR,MAAlBA,EAAMkB,WACRlB,EAAMkB,SAAW,OAIrB,IAAI6lI,EAAa5oB,EAAK4oB,YAAcF,EAChCG,EAAa7oB,EAAK6oB,YAAcF,EAChCvmI,EAAM,GAkCV,OA/BAwmI,EAAWppJ,SAAQ,SAAUnI,GAC3B6zF,EAAQ7zF,GAAMmI,SAAQ,SAAUrZ,GAC1BA,EAAIlJ,QAAQorB,GAAgC,MAArBA,EAAQliB,EAAIlJ,MACrCmlC,EAAI9uB,KAAKm1J,EAASpxJ,EAAMlR,EAAKkiB,IAEtBliB,EAAImN,QAAQ+U,GAAgC,MAArBA,EAAQliB,EAAImN,OAC1C+U,EAAQliB,EAAImN,MAAMkM,SAAQ,SAAUlP,GAClC8xB,EAAI9uB,KAAKm1J,EAASpxJ,EAAMlR,EAAKmK,aAOrC+X,EAAQwV,MAAMre,SAAQ,SAAUqiB,GAC9BO,EAAI9uB,KAAKm1J,EAAS,IAAKv9D,EAAQpuG,EAAE,GAAI+kC,IAErCgnI,EAAWrpJ,SAAQ,SAAUnI,GAC3B6zF,EAAQ7zF,GAAMmI,SAAQ,SAAUrZ,GAC1BA,EAAIlJ,QAAQ4kC,GAA4B,MAAnBA,EAAM17B,EAAIlJ,MACjCmlC,EAAI9uB,KAAKm1J,EAASpxJ,EAAMlR,EAAK07B,IAEtB17B,EAAImN,QAAQuuB,GAA4B,MAAnBA,EAAM17B,EAAImN,OACtCuuB,EAAM17B,EAAImN,MAAMkM,SAAQ,SAAUlP,GAChC8xB,EAAI9uB,KAAKm1J,EAASpxJ,EAAMlR,EAAKmK,gBAOhC8xB,EAAI7uB,KAAK,QAAU,S,gBCjG5B,IAAIigD,EAAYhmC,EAAQ,IACpBs7I,EAAiBt7I,EAAQ,KACzBu7I,EAAaD,EAAeC,WAC5BC,EAAaF,EAAeE,WAQhC,SAASpnI,EAAkBC,EAAOzM,EAAM0M,GACpC,OAAOD,EACFjB,MACAE,QAAO,SAASD,GAAY,OAAOA,EAASvpB,KAAO8d,KACnD0L,QAAO,SAASD,GAAY,OAAOA,EAASnzB,YAAco0B,KAC1DlsB,KAAI,SAASirB,GAAY,OAAOA,EAASljC,SAAU,GAK5D,SAAS68I,EAAUjjI,GAEfnH,KAAKmH,QAAUA,GAAoB,GAE9BnH,KAAKmH,QAAQkjI,cACdrqI,KAAKmH,QAAQkjI,YAnBO,GAqBxBtlI,QAAQH,IAAI,uBAAyB5E,KAAKmH,QAAQkjI,YAAc,WAMhErqI,KAAK81I,UAAY,GAiBrB,SAAS+iB,EAAa5gJ,EAASuS,GACZ,MAAXvS,GAAoB7hB,MAAMC,QAAQ4hB,EAAQwV,QAI9CxV,EAAQwV,MAAMre,SAAQ,SAAUqiB,GACT,UAAfA,EAAMxqB,MACNujB,EAAOiH,MAKnB,SAASqnI,EAAoBzpI,GAEzB,OAAOA,GAAgB,MAARA,GACRA,EAAKpoB,MAAqB,IAAbooB,EAAKpoB,MAClBooB,EAAK2C,KAAmB,IAAZ3C,EAAK2C,IAkJ5Bo4G,EAAUl8I,UAAU6lJ,eAAiB,WACjC/zI,KAAK81I,UAAY,IAWrB1L,EAAUl8I,UAAUghJ,aAAe,SAAS1+G,GACxCxwB,KAAK81I,UAAYtlH,GAYrB45G,EAAUl8I,UAAU6qK,gBAAkB,SAAUtnI,GAC5C,IAAIL,EAAWK,EAAMX,YACjBW,EAAMX,WAAWG,MAAK,SAASC,GAAS,MAA2B,QAApBA,EAAMC,aACzD,OAAIC,EACOA,EAASZ,MACXztB,MAAM,KACNyC,KAAI,SAASssB,GAAW,OAAOxZ,SAASwZ,MAEtC,CAACL,EAAMjB,MAAM,GAAGtpB,KAI/BkjI,EAAUl8I,UAAU8qK,sBAAwB,SAAUC,EAAaC,GAE/D,IADA,IAAI1oH,EAAU,GACLlkD,EAAI,EAAGA,EAAI2sK,EAAY1iK,SAAUjK,EAAG,CACzC,IAAI6sK,EAAUF,EAAY3sK,GACtB8sK,EAAUF,EAAY5sK,IAAM,KAChCkkD,EAAQ2oH,GAAWC,EAEvB,OAAO5oH,GAGX45F,EAAUl8I,UAAUmrK,2BAA6B,SAAS5nI,GACtD1sB,QAAQH,IAAI,sCAAuC5E,KAAK81I,WACxD,IAAIwjB,EAAct5J,KAAK+4J,gBAAgBtnI,GACvC1sB,QAAQH,IAAI,sCAAuC00J,GACnD,IAAIC,EAAU/nI,EAAiBC,EAAO6nI,EAAY,GAAI,QAClDE,EAAWhoI,EAAiBC,EAAO6nI,EAAY,GAAI,SACnDG,EAAiBz5J,KAAKg5J,sBAAsBM,EAAat5J,KAAK81I,WAClE/wI,QAAQH,IAAI,uCAAwC60J,GAGpD,IAAIC,EAAa15J,KAAK81I,UACjBplH,QAAO,SAAS1L,GAAQ,OAAwD,IAAjDh4B,OAAOo2B,OAAOq2I,GAAgB71J,QAAQohB,MA2B1E,OA1BAjgB,QAAQH,IAAI,oCAAqC80J,GAGjDjoI,EAAMjB,MAAMphB,SAAQ,SAAS4V,GACrBy0I,EAAez0I,EAAK9d,MACpB8d,EAAK9d,GAAKuyJ,EAAez0I,EAAK9d,QAItCwyJ,EAAWtqJ,SAAQ,SAAS4V,GACxByM,EAAMjB,MAAMttB,KAAK,CACbgE,GAAI8d,EACJ1nB,UAAW,OACX/P,MAAOgsK,IAEX9nI,EAAMjB,MAAMttB,KAAK,CACbgE,GAAI8d,EACJ1nB,UAAW,QACX/P,MAAOisK,OAGf/nI,EAAMX,WAAaW,EAAMX,YAAc,GACvCW,EAAMX,WAAW5tB,KAAK,CAClBiuB,UAAW,MACXX,MAAOxwB,KAAK81I,UAAU3yI,KAAK,OAExBsuB,GAGX24G,EAAUl8I,UAAUyrK,oBAAsB,SAASloI,EAAOV,GACtD,IAAI6oI,EAAsB,SAASnoI,EAAOzM,GACtCyM,EAAMjB,MAAMttB,KAAK,CACbgE,GAAI8d,EACJ1nB,UAAW,QACX/P,MAAOqmJ,IAEXniH,EAAMjB,MAAMttB,KAAK,CACbgE,GAAI8d,EACJ1nB,UAAW,OACX/P,MAAOomJ,KAGXA,EAAkBniH,EAAiBC,EAAOV,EAAa,QACvD6iH,EAAmBpiH,EAAiBC,EAAOV,EAAa,SAKxD/wB,KAAKmH,QAAQsnE,kBAAoBklE,IACjCA,EAAkBliH,EAAMqwB,KACLrwB,EAAMjB,MACZphB,QAAQ4V,IACjByM,EAAMjB,MAAMttB,KAAK,CACbgE,GAAI8d,EAAK9d,GACT5J,UAAW,OACX/P,MAAOomJ,OAOnB,IADA,IAAIkmB,EAAW,GACNvtK,EAAI,EAAGA,EAAI0T,KAAKmH,QAAQkjI,YAAc,IAAK/9I,EAAG,CACnD,IAAIwtK,EA/RD1uJ,KAAKmM,MAAM,WAAAnM,KAAKC,UADb,EAiSNuuJ,EAAoBnoI,EAAOqoI,GAC3BD,EAAS32J,KAAK42J,GAOlB,OALAroI,EAAMX,WAAaW,EAAMX,YAAc,GACvCW,EAAMX,WAAW5tB,KAAK,CAClBiuB,UAAW,MACXX,MAAOO,EAAc,IAAM8oI,EAAS12J,KAAK,OAEtCsuB,GAoBX24G,EAAUl8I,UAAU6rK,kBAAoB,SAAStoI,GAG7C,IAAIV,EACAR,EAAWkB,EAAMjB,OAASiB,EAAMjB,MAC/BhrB,KAAI,SAASirB,GAAY,OAAOA,EAASvpB,MACzCwpB,QAAO,SAAS1L,EAAM2L,EAAOC,GAC1B,OAAOA,EAAMhtB,QAAQohB,KAAU2L,KAElCp6B,QAAU,EACXs6B,EAAaY,EAAMX,YAAcW,EAAMX,WAAWv6B,QAAW,EAEjE,GAAiB,IAAbg6B,GAAkBA,EAAW,EAE7B,OAAOkB,EAEX,GAAgB,GAAZlB,GAA+B,IAAdM,EAEjB,OAAOY,EAGX,GAAiB,IAAblB,EACAQ,EAAcU,EAAMjB,MAAM,GAAGtpB,OAC1B,CAGH,IAAI8pB,EAAWS,EAAMX,WAAWJ,QAAO,SAASQ,GAAS,MAA2B,QAApBA,EAAMC,aAAwB,GAC9F,IAAIH,EAIA,OAAOS,EAHPV,EAAczY,SAAS0Y,EAASR,MAAMztB,MAAM,KAAK,IAsBzD,OAhBAgC,QAAQH,IAAI,qCAAsC5E,KAAK81I,WACvD/wI,QAAQH,IAAI,qCAAuCmsB,IAEY,IAAzC/wB,KAAK81I,UAAUlyI,QAAQmtB,IAGzChsB,QAAQH,IAAI,2EAEZ6sB,EAAQzxB,KAAKq5J,2BAA2B5nI,KAExC1sB,QAAQH,IAAI,2EAEZ6sB,EAAQzxB,KAAK25J,oBAAoBloI,EAAOV,IAG5C/wB,KAAK81I,UAAY91I,KAAK+4J,gBAAgBtnI,GAC/BA,GAaX24G,EAAUl8I,UAAUmjJ,uBAAyB,SAAUhiH,EAAM+hH,GAEzD,IAAK0nB,EAAoBzpI,GACrB,OAAOA,EAGX,IAAIpX,EAAUmrC,EAAUlrC,MAAMmX,EAAK2C,KAE/Bn8B,EAAOmK,KAqBX,OApBA64J,EAAa5gJ,GAAS,SAAUwZ,GAGxB57B,EAAKsR,QAAQmjI,uBAjXzB,SAAgC74G,GAE5B,GAAKA,GAAUr7B,MAAMC,QAAQo7B,EAAMX,YASnC,IALA,IAAIs5D,EAAUuuE,EAAWlnI,GACrByyB,EAAQ,GAGRhrD,EAAIu4B,EAAMX,WAAWv6B,OAClB2C,KAEH,GAAsC,QAAlCu4B,EAAMX,WAAW53B,GAAGi4B,UAAxB,CAMA,IAFA,IAAI6oI,EAAiBvoI,EAAMX,WAAW53B,GAAGs3B,MAAMztB,MAAM,KAE5CzW,EAAI,EAAGA,EAAI0tK,EAAezjK,OAAQjK,IAAK,CAE5C,IAAI04B,EAAOg1I,EAAe1tK,GAC1B43D,EAAMhhD,KAAK8hB,GAEX,IAAIhhB,EAAQomF,EAAQplE,GAAM88B,KAAK/+C,MAAM,KACrCqnF,EAAQplE,GAAM88B,KAAO,CAAC99C,EAAM,GAAI,IAAK1X,EAAG,IAAK0X,EAAM,GAAI,IAAK1X,GAAG6W,KAAK,IACpEinF,EAAQplE,GAAMs/C,MAAQ,CAAC8lB,EAAQplE,GAAMs/C,MAAO,IAAKh4E,GAAG6W,KAAK,IAGzDsuB,EAAMX,WAAW1hB,SAAQ,SAAU6qJ,GAC/B,GAA+B,QAA3BA,EAAa9oI,UAAjB,CAIA,IAAI+oI,EAAeD,EAAazpI,MAAMztB,MAAM,MACR,IAAhCm3J,EAAat2J,QAAQohB,IAKzBk1I,EAAa9qJ,SAAQ,SAAU+qJ,GAC3B/vE,EAAQ+vE,GAAar4G,KAAOsoC,EAAQplE,GAAM88B,KAC1CsoC,EAAQ+vE,GAAa71F,MAAQ8lB,EAAQplE,GAAMs/C,MACvC61F,IAAgBn1I,GAChBk/B,EAAMhhD,KAAKi3J,UAQ3B1oI,EAAMjB,MAAQooI,EAAWxuE,EAASlmC,GAClCzyB,EAAMX,WAAW7sB,OAAO/K,EAAG,IA6TvBoxI,CAAuB74G,GAzTnC,SAAgCA,GAE5B,GAAKA,GAAUr7B,MAAMC,QAAQo7B,EAAMX,YAAnC,CAMA,IAAIs5D,EAAUuuE,EAAWlnI,GAGzBA,EAAMX,WAAW1hB,SAAQ,SAAUgrJ,GAC/B,GAAiC,QAA7BA,EAAejpI,UAAnB,CAIApsB,QAAQG,KAAK,wBAA0Bk1J,EAAe5pI,OAEtD4pI,EAAeC,MAAO,EAKtB,IAHA,IAAIL,EAAiBI,EAAe5pI,MAAMztB,MAAM,KAGvCzW,EAAI,EAAGA,EAAI0tK,EAAezjK,OAAQjK,IAAK,CAE5C,IAAI04B,EAAOg1I,EAAe1tK,UACnB89F,EAAQplE,GAGfyM,EAAMX,WAAW1hB,SAAQ,SAAU6qJ,GAC/B,GAA+B,QAA3BA,EAAa9oI,UAAjB,CAIA,IAAI+oI,EAAeD,EAAazpI,MAAMztB,MAAM,MACR,IAAhCm3J,EAAat2J,QAAQohB,KAKzBk1I,EAAa9qJ,SAAQ,SAAU+qJ,UACpB/vE,EAAQ+vE,MAInBF,EAAaI,MAAO,YAOhC5oI,EAAMjB,MAAQooI,EAAWxuE,GAIzB,IADA,IAAI99F,EAAImlC,EAAMX,WAAWv6B,OAClBjK,KACCmlC,EAAMX,WAAWxkC,GAAG+tK,MACpB5oI,EAAMX,WAAW7sB,OAAO3X,EAAG,QAvD/ByY,QAAQG,KAAK,6DAwTTo1J,CAAuB7oI,IAOtB57B,EAAKsR,QAAQsnE,iBAAmB2iE,EA3P7C,SAA8B3/G,GACrBA,IAIAr7B,MAAMC,QAAQo7B,EAAM8oI,WACrB9oI,EAAM8oI,QAAU,IAGf9oI,EAAM8oI,QAAQ53E,MACX,SAAUr2F,GAAK,MAAmB,6BAAZA,EAAEiB,UAC5BkkC,EAAM8oI,QAAQr3J,KAAK,CAAC,MAAS,8BAiPzBs3J,CAAqB/oI,GApQjC,SAA8BA,GACrBA,QAAsC,IAAtBA,EAAMgpI,cAI3BhpI,EAAMgpI,iBAAcl6J,GAiQZm6J,CAAqBjpI,MAItB,IAAIkkD,sBAAsB,CAC7B1uE,KAAMooB,EAAKpoB,KACX+qB,IAAKoxB,EAAUrL,MAAM9/B,MAW7BmyH,EAAUl8I,UAAU2kJ,sBAAwB,SAAUxjH,GAElD,IAAKypI,EAAoBzpI,GACrB,OAAOA,EAGX,IAAIpX,EAAUmrC,EAAUlrC,MAAMmX,EAAK2C,KAE/Bn8B,EAAOmK,KASX,OARA64J,EAAa5gJ,GAAS,SAAUwZ,GACL,YAAnBA,EAAM9B,WAA8C,YAAnB8B,EAAM9B,WAI3C95B,EAAKkkK,kBAAkBtoI,MAGpB,IAAIkkD,sBAAsB,CAC7B1uE,KAAMooB,EAAKpoB,KACX+qB,IAAKoxB,EAAUrL,MAAM9/B,MAM7BlsB,EAAOD,QAAUs+I,G,cCrejBt+I,EAAQ8sK,WAAa,SAASxuE,EAASlmC,GACrC,IAAI1zB,EAAQ,GAGZ,QAAuB,IAAZ45D,GACyB,IAAhCp9F,OAAOuY,KAAK6kF,GAAS7zF,OAAc,CAEhCH,MAAMC,QAAQ6tD,KACjBA,EAAQ,IAIV,IAAK,IAAI53D,EAAI,EAAGA,EAAI43D,EAAM3tD,OAAQjK,IAAK,CACrC,IAAI04B,EAAOk/B,EAAM53D,GACby+B,EAASq/D,EAAQplE,GACrBh4B,OAAOuY,KAAKwlB,GAAQ3b,SAAQ,SAAU9R,GACpCkzB,EAAMttB,KAAK,CACTgE,GAAI8d,EACJ1nB,UAAWA,EACX/P,MAAOw9B,EAAOztB,QAMpBtQ,OAAOuY,KAAK6kF,GAASh7E,SAAQ,SAAU4V,GAErC,GADAA,EAAO1M,SAAS0M,KACZk/B,EAAMtgD,QAAQohB,IAAS,GAA3B,CAKA,IAAI+F,EAASq/D,EAAQplE,GACrBh4B,OAAOuY,KAAKwlB,GAAQ3b,SAAQ,SAAU9R,GACpCkzB,EAAMttB,KAAK,CACTgE,GAAI8d,EACJ1nB,UAAWA,EACX/P,MAAOw9B,EAAOztB,YAMtB,OAAOkzB,GAGT1kC,EAAQ6sK,WAAa,SAAUlnI,GAC7B,IAAI24D,EAAU,GASd,YAP2B,IAAhB34D,EAAMjB,OAAyBp6B,MAAMC,QAAQo7B,EAAMjB,QAC5DiB,EAAMjB,MAAMphB,SAAQ,SAAU4V,GACvBolE,EAAQplE,EAAK9d,MAChBkjF,EAAQplE,EAAK9d,IAAM,IACrBkjF,EAAQplE,EAAK9d,IAAI8d,EAAK1nB,WAAa0nB,EAAKz3B,SAGrC68F,I,cC3DTr+F,EAAOD,QATiB,SAASmzE,EAAMpyE,EAAM8uG,EAAWqnD,GACpDhjJ,KAAKi/D,KAAOA,EACZj/D,KAAKnT,KAAOA,EACZmT,KAAK27F,UAAYA,EACjB37F,KAAKgjJ,UAAYA,I,gBCdrB,MAAM2X,EAAOv9I,EAAQ,KAEfulI,EAAgBvlI,EAAQ,IACxBw9I,EAAuBx9I,EAAQ,KAK/BslI,EAAgB,WAElB1iJ,KAAK+gC,IAiHT,WACI,MAAMt8B,EAAU,2DAEhB,QAAyBlE,IAArBizB,OAAOqnI,UACP91J,QAAQH,IAAIH,OACT,CACH,MAAMq2J,EAAWtnI,OAAOqnI,UAExB,QAA0Bt6J,IAAtBu6J,EAASrnI,UAA0BqnI,EAASrnI,SAAS,YACrD,OAAOqnI,EAEX/1J,QAAQH,IAAIH,IA5HLs2J,IAMfrY,EAAcx0J,UAAYlB,OAAOY,OAAOgtK,EAAqB1sK,WAK7Dw0J,EAAczsJ,YAAcysJ,EAS5BA,EAAcx0J,UAAUwsJ,YAAc,SAASsgB,EAAexvJ,GAC1DzG,QAAQH,IAAK,6BAA4B5E,KAAK+gC,KAC9Ch8B,QAAQH,IAAK,8BAA6Bo2J,GAC1C,MAAMliF,EAAU,IAAI3hE,eAEpB2hE,EAAQzhE,mBAAqB,WACzB,GAAIyhE,EAAQ9/D,aAAe7B,eAAe8jJ,MAChB,MAAnBniF,EAAQ/oE,OACXvE,EAASstE,EAAQ7jE,mBACd,GAAI6jE,EAAQ9/D,aAAe7B,eAAe8jJ,KAC7C,MAAM,IAAI5jK,MACL,yDACGyhF,EAAQ/oE,SAKxB+oE,EAAQ/+D,KAAK,OAAQ/Z,KAAK+gC,KAC1B+3C,EAAQ7+D,iBAAiB,eACrB0oI,EAAc5mD,4BAClBjjB,EAAQzrE,KAAK2tJ,GACbj2J,QAAQH,IAAK,QAAOo2J,IASxBtY,EAAcx0J,UAAUgtK,eAAiB,SAASvoJ,GAC9C,MAAMlN,EAASmH,KAAKsL,MAAMvF,GAAUwoJ,QAKpC11J,EAAOioB,QACP,MAAMkD,EAAQ,GAOd,OALAnrB,EAAO2J,QACHg0I,GACIA,EAAKgY,QACExqI,EAAM1tB,KAAK,IAAIy3J,EAAKvX,EAAKA,KAAMA,EAAKrmI,MAAOqmI,EAAKllE,OAExDttD,GAQX8xH,EAAcx0J,UAAUmtK,OAAS,SAAS1oJ,GAItC,GAHA5N,QAAQH,IAAK,wBAAuB+N,EAASjc,YAGrB,iBAAbic,EACP,OAAO,EAIX,IAAI2sC,EAEJ,IACIA,EAAO1yC,KAAKsL,MAAMvF,GACpB,MAAO3N,GAGL,OAFAD,QAAQH,IAAII,IAEL,EAIX,QAAqBzE,IAAjB++C,EAAK67G,QACL,OAAO,EAIX,MAAMvqI,EAAQ0uB,EAAK67G,QAEnB,SAAMvqI,EAAM,KAAMA,EAAM,GAAG,gBA8B/B7kC,EAAOD,QAAU42J,G,cCvIjB,MAAMiY,EAAO,SAASvX,EAAMD,EAAOjlE,GAC/Bl+E,KAAKojJ,KAAOA,EACZpjJ,KAAKmjJ,MAAQA,EACbnjJ,KAAKk+E,IAAMA,GAOfy8E,EAAKzsK,UAAUotK,QAAU,WACrB,OAAOt7J,KAAKojJ,MAOhBuX,EAAKzsK,UAAUqtK,aAAe,WAC1B,OAAOv7J,KAAKmjJ,OAOhBwX,EAAKzsK,UAAUstK,WAAa,WACxB,OAAOx7J,KAAKk+E,KAGhBnyF,EAAOD,QAAU6uK,G,cChCjB,MAAMC,EAAuB,WACzB,MAAM,IAAIvjK,MAAM,0DAapBujK,EAAqB1sK,UAAUmf,KAAO,SAAco2I,EAAiBj4I,GACjExL,KAAK06I,YAAY+I,EAAgBxkF,KAAMtsD,IAC/B3S,KAAKq7J,OAAO1oJ,GACZ8wI,EAAgBT,UAAYhjJ,KAAKk7J,eAAevoJ,IAEhD5N,QAAQH,IAAI,wDACZ6+I,EAAgBT,UAAY,IAEhCx3I,EAASi4I,MAcjBmX,EAAqB1sK,UAAUwsJ,YAAc,SAAS+gB,EAAWjwJ,GAC7D,MAAM,IAAInU,MAAM,iDAmBpBujK,EAAqB1sK,UAAUgtK,eAAiB,SAASvoJ,GACrD,MAAM,IAAItb,MAAM,4CAUpBujK,EAAqB1sK,UAAUmtK,OAAS,SAAS1oJ,GAC7C,MAAM,IAAItb,MAAM,4CAGpBtL,EAAOD,QAAU8uK,G,olECjEjB,IAAIc,GAAe,EACfC,GAAuB,EAUpB,SAASC,EAAeC,EAAU5D,EAAMhwH,GAC7C,MAAM30B,EAAQuoJ,EAASvoJ,MAAM2kJ,GAC7B,OAAO3kJ,GAASA,EAAM/c,QAAU0xC,GAAO3vB,SAAShF,EAAM20B,GAAM,IAMvD,SAAS6zH,EAAwB5vK,EAAQ6vK,EAAiBtoJ,GAC/D,IAAKvnB,EAAO6uC,kBACV,OAEF,MAAMtyB,EAAQvc,EAAO6uC,kBAAkB7sC,UACjC8tK,EAAyBvzJ,EAAM4zB,iBACrC5zB,EAAM4zB,iBAAmB,SAAS4/H,EAAiBvhC,GACjD,GAAIuhC,IAAoBF,EACtB,OAAOC,EAAuBp6H,MAAM5hC,KAAMmB,WAE5C,MAAM04H,EAAmBxgI,IACvB,MAAM6iK,EAAgBzoJ,EAAQpa,GAC1B6iK,GACFxhC,EAAGwhC,IAKP,OAFAl8J,KAAKm8J,UAAYn8J,KAAKm8J,WAAa,GACnCn8J,KAAKm8J,UAAUzhC,GAAMb,EACdmiC,EAAuBp6H,MAAM5hC,KAAM,CAACi8J,EACzCpiC,KAGJ,MAAMuiC,EAA4B3zJ,EAAMwmC,oBACxCxmC,EAAMwmC,oBAAsB,SAASgtH,EAAiBvhC,GACpD,GAAIuhC,IAAoBF,IAAoB/7J,KAAKm8J,YACzCn8J,KAAKm8J,UAAUzhC,GACrB,OAAO0hC,EAA0Bx6H,MAAM5hC,KAAMmB,WAE/C,MAAMk7J,EAAcr8J,KAAKm8J,UAAUzhC,GAEnC,cADO16H,KAAKm8J,UAAUzhC,GACf0hC,EAA0Bx6H,MAAM5hC,KAAM,CAACi8J,EAC5CI,KAGJrvK,OAAOC,eAAewb,EAAO,KAAOszJ,EAAiB,CACnD5uK,MACE,OAAO6S,KAAK,MAAQ+7J,IAEtB36I,IAAIs5G,GACE16H,KAAK,MAAQ+7J,KACf/7J,KAAKivC,oBAAoB8sH,EACrB/7J,KAAK,MAAQ+7J,WACV/7J,KAAK,MAAQ+7J,IAElBrhC,GACF16H,KAAKq8B,iBAAiB0/H,EAClB/7J,KAAK,MAAQ+7J,GAAmBrhC,IAGxCxtI,YAAY,EACZmtH,cAAc,IAIX,SAASiiD,EAAWC,GACzB,MAAoB,kBAATA,EACF,IAAIllK,MAAM,yBAA2BklK,EACxC,4BAENb,EAAea,EACPA,EAAQ,8BACZ,8BAOC,SAASC,EAAgBD,GAC9B,MAAoB,kBAATA,EACF,IAAIllK,MAAM,yBAA2BklK,EACxC,4BAENZ,GAAwBY,EACjB,oCAAsCA,EAAO,WAAa,YAG5D,SAAS33J,IACd,GAAsB,iBAAX1Y,OAAqB,CAC9B,GAAIwvK,EACF,OAEqB,oBAAZ32J,SAAkD,mBAAhBA,QAAQH,KACnDG,QAAQH,IAAIg9B,MAAM78B,QAAS5D,YAQ1B,SAASs7J,EAAWC,EAAWC,GAC/BhB,GAGL52J,QAAQI,KAAKu3J,EAAY,8BAAgCC,EACrD,aASC,SAASC,EAAc1wK,GAC5B,MAAM,UAACsuC,GAAatuC,EAGduZ,EAAS,CAACqa,QAAS,KAAMi0B,QAAS,MAGxC,QAAsB,IAAX7nD,IAA2BA,EAAOsuC,UAE3C,OADA/0B,EAAOqa,QAAU,iBACVra,EAGT,GAAI+0B,EAAUqiI,gBACZp3J,EAAOqa,QAAU,UACjBra,EAAOsuC,QAAU6nH,EAAephI,EAAUsZ,UACtC,mBAAoB,QACnB,GAAItZ,EAAUsiI,qBACW,IAA3B5wK,EAAO6wK,iBAA6B7wK,EAAO8wK,0BAC1C9wK,EAAOu3I,eAKXh+H,EAAOqa,QAAU,SACjBra,EAAOsuC,QAAU6nH,EAAephI,EAAUsZ,UACtC,wBAAyB,QACxB,GAAItZ,EAAUC,cACjBD,EAAUsZ,UAAUxgC,MAAM,sBAC5B7N,EAAOqa,QAAU,OACjBra,EAAOsuC,QAAU6nH,EAAephI,EAAUsZ,UACtC,qBAAsB,OACrB,KAAI5nD,EAAO6uC,oBACdP,EAAUsZ,UAAUxgC,MAAM,wBAQ5B,OADA7N,EAAOqa,QAAU,2BACVra,EAPPA,EAAOqa,QAAU,SACjBra,EAAOsuC,QAAU6nH,EAAephI,EAAUsZ,UACtC,uBAAwB,GAC5BruC,EAAOw3J,oBAAsB/wK,EAAOknH,mBAChC,qBAAsBlnH,EAAOknH,kBAAkBllH,UAMrD,OAAOuX,EAST,SAASooD,EAASqvG,GAChB,MAA+C,oBAAxClwK,OAAOkB,UAAUwI,SAASjK,KAAKywK,GAQjC,SAASC,EAAcxjK,GAC5B,OAAKk0D,EAASl0D,GAIP3M,OAAOuY,KAAK5L,GAAM+L,QAAO,SAASmkD,EAAah8D,GACpD,MAAMoN,EAAQ4yD,EAASl0D,EAAK9L,IACtBN,EAAQ0N,EAAQkiK,EAAcxjK,EAAK9L,IAAQ8L,EAAK9L,GAChDuvK,EAAgBniK,IAAUjO,OAAOuY,KAAKhY,GAAOgJ,OACnD,YAAcgK,IAAVhT,GAAuB6vK,EAClBvzG,EAEF78D,OAAOgoG,OAAOnrC,EAAa,CAAC,CAACh8D,GAAMN,MACzC,IAXMoM,EAgCJ,SAAS0jK,EAAY53J,EAAQ64B,EAAOg/H,GACzC,MAAMC,EAAkBD,EAAW,eAAiB,cAC9CE,EAAiB,IAAIj+I,IAC3B,GAAc,OAAV+e,EACF,OAAOk/H,EAET,MAAMC,EAAa,GAcnB,OAbAh4J,EAAO2J,QAAQ7hB,IACM,UAAfA,EAAM0Z,MACN1Z,EAAMy4H,kBAAoB1nF,EAAMp3B,IAClCu2J,EAAWv6J,KAAK3V,KAGpBkwK,EAAWruJ,QAAQsuJ,IACjBj4J,EAAO2J,QAAQoX,IACTA,EAAMvf,OAASs2J,GAAmB/2I,EAAMkgE,UAAYg3E,EAAUx2J,IAhCjE,SAASy2J,EAAUn3I,EAAO2hC,EAAMy1G,GAChCz1G,IAAQy1G,EAAU75I,IAAIokC,EAAKjhD,MAGhC02J,EAAUx8I,IAAI+mC,EAAKjhD,GAAIihD,GACvBn7D,OAAOuY,KAAK4iD,GAAM/4C,QAAQviB,IACpBA,EAAK2uD,SAAS,MAChBmiH,EAAUn3I,EAAOA,EAAMr5B,IAAIg7D,EAAKt7D,IAAQ+wK,GAC/B/wK,EAAK2uD,SAAS,QACvB2M,EAAKt7D,GAAMuiB,QAAQlI,IACjBy2J,EAAUn3I,EAAOA,EAAMr5B,IAAI+Z,GAAK02J,QAuBhCD,CAAUl4J,EAAQ+gB,EAAOg3I,OAIxBA,EC/OT,MAAMnL,EAAU53J,EAET,SAASojK,EAAiB3xK,GAC/B,MAAMsuC,EAAYtuC,GAAUA,EAAOsuC,UAEnC,IAAKA,EAAUC,aACb,OAGF,MAAMqjI,EAAiBrjK,EAAoBvO,GAErC6xK,EAAuB,SAASpxK,GACpC,GAAiB,iBAANA,GAAkBA,EAAE6oC,WAAa7oC,EAAE8oC,SAC5C,OAAO9oC,EAET,MAAMqxK,EAAK,GA4CX,OA3CAhxK,OAAOuY,KAAK5Y,GAAGyiB,QAAQvhB,IACrB,GAAY,YAARA,GAA6B,aAARA,GAA8B,gBAARA,EAC7C,OAEF,MAAMT,EAAuB,iBAAXT,EAAEkB,GAAqBlB,EAAEkB,GAAO,CAACsmC,MAAOxnC,EAAEkB,SAC5C0S,IAAZnT,EAAE6wK,OAA0C,iBAAZ7wK,EAAE6wK,QACpC7wK,EAAEqtB,IAAMrtB,EAAEgnC,IAAMhnC,EAAE6wK,OAEpB,MAAMC,EAAW,SAAS1+F,EAAQ3yE,GAChC,OAAI2yE,EACKA,EAAS3yE,EAAK8L,OAAO,GAAGqnE,cAAgBnzE,EAAKqtC,MAAM,GAE3C,aAATrtC,EAAuB,WAAaA,GAE9C,QAAgB0T,IAAZnT,EAAE+mC,MAAqB,CACzB6pI,EAAGvoI,SAAWuoI,EAAGvoI,UAAY,GAC7B,IAAI0oI,EAAK,GACc,iBAAZ/wK,EAAE+mC,OACXgqI,EAAGD,EAAS,MAAOrwK,IAAQT,EAAE+mC,MAC7B6pI,EAAGvoI,SAASvyB,KAAKi7J,GACjBA,EAAK,GACLA,EAAGD,EAAS,MAAOrwK,IAAQT,EAAE+mC,MAC7B6pI,EAAGvoI,SAASvyB,KAAKi7J,KAEjBA,EAAGD,EAAS,GAAIrwK,IAAQT,EAAE+mC,MAC1B6pI,EAAGvoI,SAASvyB,KAAKi7J,SAGL59J,IAAZnT,EAAE6wK,OAA0C,iBAAZ7wK,EAAE6wK,OACpCD,EAAGxoI,UAAYwoI,EAAGxoI,WAAa,GAC/BwoI,EAAGxoI,UAAU0oI,EAAS,GAAIrwK,IAAQT,EAAE6wK,OAEpC,CAAC,MAAO,OAAO7uJ,QAAQgvJ,SACN79J,IAAXnT,EAAEgxK,KACJJ,EAAGxoI,UAAYwoI,EAAGxoI,WAAa,GAC/BwoI,EAAGxoI,UAAU0oI,EAASE,EAAKvwK,IAAQT,EAAEgxK,QAKzCzxK,EAAE0xK,WACJL,EAAGvoI,UAAYuoI,EAAGvoI,UAAY,IAAIz7B,OAAOrN,EAAE0xK,WAEtCL,GAGHM,EAAmB,SAASv4I,EAAanmB,GAC7C,GAAIk+J,EAAe/pH,SAAW,GAC5B,OAAOn0C,EAAKmmB,GAGd,IADAA,EAAcnZ,KAAKsL,MAAMtL,KAAKwL,UAAU2N,MACQ,iBAAtBA,EAAYsP,MAAoB,CACxD,MAAMkpI,EAAQ,SAASxoK,EAAK2B,EAAGC,GACzBD,KAAK3B,KAAS4B,KAAK5B,KACrBA,EAAI4B,GAAK5B,EAAI2B,UACN3B,EAAI2B,KAIf6mK,GADAx4I,EAAcnZ,KAAKsL,MAAMtL,KAAKwL,UAAU2N,KACtBsP,MAAO,kBAAmB,uBAC5CkpI,EAAMx4I,EAAYsP,MAAO,mBAAoB,wBAC7CtP,EAAYsP,MAAQ0oI,EAAqBh4I,EAAYsP,OAEvD,GAAItP,GAA4C,iBAAtBA,EAAYkO,MAAoB,CAExD,IAAIuqI,EAAOz4I,EAAYkO,MAAM4B,WAC7B2oI,EAAOA,IAA0B,iBAATA,EAAqBA,EAAO,CAACrqI,MAAOqqI,IAC5D,MAAMC,EAA6BX,EAAe/pH,QAAU,GAE5D,GAAKyqH,IAAwB,SAAfA,EAAKP,OAAmC,gBAAfO,EAAKP,OACf,SAAfO,EAAKrqI,OAAmC,gBAAfqqI,EAAKrqI,UACtCqG,EAAUC,aAAaikI,0BACvBlkI,EAAUC,aAAaikI,0BAA0B7oI,YAChD4oI,GAA6B,CAElC,IAAIprJ,EAMJ,UAPO0S,EAAYkO,MAAM4B,WAEN,gBAAf2oI,EAAKP,OAA0C,gBAAfO,EAAKrqI,MACvC9gB,EAAU,CAAC,OAAQ,QACK,SAAfmrJ,EAAKP,OAAmC,SAAfO,EAAKrqI,QACvC9gB,EAAU,CAAC,UAETA,EAEF,OAAOmnB,EAAUC,aAAaF,mBAC7BG,KAAKC,IAEJ,IAAIgkI,GADJhkI,EAAUA,EAAQjK,OAAO9jC,GAAgB,eAAXA,EAAEwsC,OACdnI,KAAKrkC,GAAKymB,EAAQsvE,KAAKrvE,GACvC1mB,EAAE8sC,MAAM/2B,cAAc8wB,SAASngB,KAUjC,OATKqrJ,GAAOhkI,EAAQpkC,QAAU8c,EAAQogB,SAAS,UAC7CkrI,EAAMhkI,EAAQA,EAAQpkC,OAAS,IAE7BooK,IACF54I,EAAYkO,MAAM0B,SAAW6oI,EAAKP,MAAQ,CAACA,MAAOU,EAAIhpI,UACZ,CAACxB,MAAOwqI,EAAIhpI,WAExD5P,EAAYkO,MAAQ8pI,EAAqBh4I,EAAYkO,OACrDo+H,EAAQ,WAAazlJ,KAAKwL,UAAU2N,IAC7BnmB,EAAKmmB,KAIlBA,EAAYkO,MAAQ8pI,EAAqBh4I,EAAYkO,OAGvD,OADAo+H,EAAQ,WAAazlJ,KAAKwL,UAAU2N,IAC7BnmB,EAAKmmB,IAGR64I,EAAa,SAASvlK,GAC1B,OAAIykK,EAAe/pH,SAAW,GACrB16C,EAEF,CACLxM,KAAM,CACJgyK,sBAAuB,kBACvBC,yBAA0B,kBAC1B/8B,kBAAmB,kBACnBg9B,qBAAsB,gBACtBC,4BAA6B,uBAC7BC,gBAAiB,mBACjBC,+BAAgC,kBAChCC,wBAAyB,kBACzBC,gBAAiB,aACjBC,mBAAoB,aACpBC,mBAAoB,cACpBjmK,EAAExM,OAASwM,EAAExM,KACf4X,QAASpL,EAAEoL,QACXqqC,WAAYz1C,EAAEy1C,YAAcz1C,EAAEysB,eAC9BpvB,WACE,OAAOsJ,KAAKnT,MAAQmT,KAAKyE,SAAW,MAAQzE,KAAKyE,WAmBvD,GALA+1B,EAAU2C,aATY,SAASpX,EAAaxS,EAAWq8G,GACrD0uC,EAAiBv4I,EAAap5B,IAC5B6tC,EAAUsiI,mBAAmBnwK,EAAG4mB,EAAWla,IACrCu2H,GACFA,EAAQgvC,EAAWvlK,SAKYvL,KAAK0sC,GAKxCA,EAAUC,aAAa0C,aAAc,CACvC,MAAMoiI,EAAmB/kI,EAAUC,aAAa0C,aAC5CrvC,KAAK0sC,EAAUC,cACnBD,EAAUC,aAAa0C,aAAe,SAAS/Y,GAC7C,OAAOk6I,EAAiBl6I,EAAIz3B,GAAK4yK,EAAiB5yK,GAAG+tC,KAAKnZ,IACxD,GAAI50B,EAAE0oC,QAAU9T,EAAOqX,iBAAiBriC,QACpC5J,EAAEsnC,QAAU1S,EAAOuX,iBAAiBviC,OAItC,MAHAgrB,EAAOue,YAAY1wB,QAAQkvB,IACzBA,EAAM1a,SAEF,IAAI47I,aAAa,GAAI,iBAE7B,OAAOj+I,GACNloB,GAAK2jC,QAAQE,OAAO0hI,EAAWvlK,QCjLjC,SAASomK,EAAoBvzK,EAAQwzK,GACtCxzK,EAAOsuC,UAAUC,cACnB,oBAAqBvuC,EAAOsuC,UAAUC,cAGlCvuC,EAAOsuC,UAAUC,eAKI,mBAAhBilI,EAKXxzK,EAAOsuC,UAAUC,aAAa29B,gBAC5B,SAAyBryC,GACvB,OAAO25I,EAAY35I,GAChB2U,KAAK9E,IACJ,MAAM+pI,EAAiB55I,EAAYkO,OAASlO,EAAYkO,MAAMsC,MACxDqpI,EAAkB75I,EAAYkO,OAClClO,EAAYkO,MAAMC,OACd2rI,EAAqB95I,EAAYkO,OACrClO,EAAYkO,MAAMyD,UAcpB,OAbA3R,EAAYkO,MAAQ,CAClBuB,UAAW,CACTyC,kBAAmB,UACnBK,oBAAqB1C,EACrBQ,aAAcypI,GAAsB,IAGpCF,IACF55I,EAAYkO,MAAMuB,UAAUkB,SAAWipI,GAErCC,IACF75I,EAAYkO,MAAMuB,UAAUmB,UAAYipI,GAEnC1zK,EAAOsuC,UAAUC,aAAa0C,aAAapX,MA1BxDhhB,QAAQC,MAAM,gECLX,SAAS86J,EAAgB5zK,GAC9BA,EAAO0vC,YAAc1vC,EAAO0vC,aAAe1vC,EAAO6zK,kBAG7C,SAASC,EAAY9zK,GAC1B,GAAsB,iBAAXA,GAAuBA,EAAO6uC,qBAAuB,YAC5D7uC,EAAO6uC,kBAAkB7sC,WAAY,CACvClB,OAAOC,eAAef,EAAO6uC,kBAAkB7sC,UAAW,UAAW,CACnEf,MACE,OAAO6S,KAAKigK,UAEd7+I,IAAIk6B,GACEt7C,KAAKigK,UACPjgK,KAAKivC,oBAAoB,QAASjvC,KAAKigK,UAEzCjgK,KAAKq8B,iBAAiB,QAASr8B,KAAKigK,SAAW3kH,IAEjDpuD,YAAY,EACZmtH,cAAc,IAEhB,MAAM6lD,EACFh0K,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACvC5pF,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACjC,WAuCE,OAtCK91E,KAAKmgK,eACRngK,KAAKmgK,aAAgB9mK,IAGnBA,EAAEkoB,OAAO8a,iBAAiB,WAAY+jI,IACpC,IAAIh1H,EAEFA,EADEl/C,EAAO6uC,kBAAkB7sC,UAAUo3I,aAC1BtlI,KAAKslI,eACbr0G,KAAK7jC,GAAKA,EAAEkxC,OAASlxC,EAAEkxC,MAAMp3B,KAAOk5J,EAAG9hI,MAAMp3B,IAErC,CAACo3B,MAAO8hI,EAAG9hI,OAGxB,MAAMjX,EAAQ,IAAIm7G,MAAM,SACxBn7G,EAAMiX,MAAQ8hI,EAAG9hI,MACjBjX,EAAM+jB,SAAWA,EACjB/jB,EAAMs+C,YAAc,CAACv6B,YACrB/jB,EAAMyW,QAAU,CAACzkC,EAAEkoB,QACnBvhB,KAAKoiI,cAAc/6G,KAErBhuB,EAAEkoB,OAAOue,YAAY1wB,QAAQkvB,IAC3B,IAAI8M,EAEFA,EADEl/C,EAAO6uC,kBAAkB7sC,UAAUo3I,aAC1BtlI,KAAKslI,eACbr0G,KAAK7jC,GAAKA,EAAEkxC,OAASlxC,EAAEkxC,MAAMp3B,KAAOo3B,EAAMp3B,IAElC,CAACo3B,SAEd,MAAMjX,EAAQ,IAAIm7G,MAAM,SACxBn7G,EAAMiX,MAAQA,EACdjX,EAAM+jB,SAAWA,EACjB/jB,EAAMs+C,YAAc,CAACv6B,YACrB/jB,EAAMyW,QAAU,CAACzkC,EAAEkoB,QACnBvhB,KAAKoiI,cAAc/6G,MAGvBrnB,KAAKq8B,iBAAiB,YAAar8B,KAAKmgK,eAEnCD,EAAyBt+H,MAAM5hC,KAAMmB,iBAMhD1G,EAA8BvO,EAAQ,QAASmN,IACxCA,EAAEssE,aACL34E,OAAOC,eAAeoM,EAAG,cACvB,CAAC9L,MAAO,CAAC69C,SAAU/xC,EAAE+xC,YAElB/xC,IAKN,SAASgnK,EAAuBn0K,GAErC,GAAsB,iBAAXA,GAAuBA,EAAO6uC,qBACnC,eAAgB7uC,EAAO6uC,kBAAkB7sC,YAC3C,qBAAsBhC,EAAO6uC,kBAAkB7sC,UAAW,CAC5D,MAAMoyK,EAAqB,SAASh7G,EAAIhnB,GACtC,MAAO,CACLA,QACA,WAQE,YAPmB/9B,IAAfP,KAAKugK,QACY,UAAfjiI,EAAMlF,KACRp5B,KAAKugK,MAAQj7G,EAAGusF,iBAAiBvzG,GAEjCt+B,KAAKugK,MAAQ,MAGVvgK,KAAKugK,OAEdC,IAAKl7G,IAKT,IAAKp5D,EAAO6uC,kBAAkB7sC,UAAUm3I,WAAY,CAClDn5I,EAAO6uC,kBAAkB7sC,UAAUm3I,WAAa,WAE9C,OADArlI,KAAKygK,SAAWzgK,KAAKygK,UAAY,GAC1BzgK,KAAKygK,SAASvmI,SAEvB,MAAMwmI,EAAex0K,EAAO6uC,kBAAkB7sC,UAAUiwC,SACxDjyC,EAAO6uC,kBAAkB7sC,UAAUiwC,SACjC,SAAkBG,EAAO/c,GACvB,IAAIgpD,EAASm2F,EAAa9+H,MAAM5hC,KAAMmB,WAKtC,OAJKopE,IACHA,EAAS+1F,EAAmBtgK,KAAMs+B,GAClCt+B,KAAKygK,SAASv9J,KAAKqnE,IAEdA,GAGX,MAAMo2F,EAAkBz0K,EAAO6uC,kBAAkB7sC,UAAUsmG,YAC3DtoG,EAAO6uC,kBAAkB7sC,UAAUsmG,YACjC,SAAqBjqB,GACnBo2F,EAAgB/+H,MAAM5hC,KAAMmB,WAC5B,MAAMyuC,EAAM5vC,KAAKygK,SAAS78J,QAAQ2mE,IACrB,IAAT36B,GACF5vC,KAAKygK,SAASx8J,OAAO2rC,EAAK,IAIlC,MAAMgxH,EAAgB10K,EAAO6uC,kBAAkB7sC,UAAU88F,UACzD9+F,EAAO6uC,kBAAkB7sC,UAAU88F,UAAY,SAAmBzpE,GAChEvhB,KAAKygK,SAAWzgK,KAAKygK,UAAY,GACjCG,EAAch/H,MAAM5hC,KAAM,CAACuhB,IAC3BA,EAAOue,YAAY1wB,QAAQkvB,IACzBt+B,KAAKygK,SAASv9J,KAAKo9J,EAAmBtgK,KAAMs+B,OAIhD,MAAMuiI,EAAmB30K,EAAO6uC,kBAAkB7sC,UAAUk3I,aAC5Dl5I,EAAO6uC,kBAAkB7sC,UAAUk3I,aACjC,SAAsB7jH,GACpBvhB,KAAKygK,SAAWzgK,KAAKygK,UAAY,GACjCI,EAAiBj/H,MAAM5hC,KAAM,CAACuhB,IAE9BA,EAAOue,YAAY1wB,QAAQkvB,IACzB,MAAMisC,EAASvqE,KAAKygK,SAASxvI,KAAK5iC,GAAKA,EAAEiwC,QAAUA,GAC/CisC,GACFvqE,KAAKygK,SAASx8J,OAAOjE,KAAKygK,SAAS78J,QAAQ2mE,GAAS,WAIvD,GAAsB,iBAAXr+E,GAAuBA,EAAO6uC,mBACrC,eAAgB7uC,EAAO6uC,kBAAkB7sC,WACzC,qBAAsBhC,EAAO6uC,kBAAkB7sC,WAC/ChC,EAAOmnH,gBACL,SAAUnnH,EAAOmnH,aAAanlH,WAAY,CACrD,MAAM4yK,EAAiB50K,EAAO6uC,kBAAkB7sC,UAAUm3I,WAC1Dn5I,EAAO6uC,kBAAkB7sC,UAAUm3I,WAAa,WAC9C,MAAMh0F,EAAUyvH,EAAel/H,MAAM5hC,KAAM,IAE3C,OADAqxC,EAAQjiC,QAAQm7D,GAAUA,EAAOi2F,IAAMxgK,MAChCqxC,GAGTrkD,OAAOC,eAAef,EAAOmnH,aAAanlH,UAAW,OAAQ,CAC3Df,MAQE,YAPmBoT,IAAfP,KAAKugK,QACiB,UAApBvgK,KAAKs+B,MAAMlF,KACbp5B,KAAKugK,MAAQvgK,KAAKwgK,IAAI3uB,iBAAiB7xI,KAAKs+B,OAE5Ct+B,KAAKugK,MAAQ,MAGVvgK,KAAKugK,UAMb,SAASQ,EAAa70K,GAC3B,IAAKA,EAAO6uC,kBACV,OAGF,MAAMimI,EAAe90K,EAAO6uC,kBAAkB7sC,UAAUqiH,SACxDrkH,EAAO6uC,kBAAkB7sC,UAAUqiH,SAAW,WAC5C,MAAO+3B,EAAU24B,EAAQC,GAAS//J,UAIlC,GAAIA,UAAU5K,OAAS,GAAyB,mBAAb+xI,EACjC,OAAO04B,EAAap/H,MAAM5hC,KAAMmB,WAKlC,GAA4B,IAAxB6/J,EAAazqK,SAAsC,IAArB4K,UAAU5K,QACpB,mBAAb+xI,GACT,OAAO04B,EAAap/H,MAAM5hC,KAAM,IAGlC,MAAMmhK,EAAkB,SAASxuJ,GAC/B,MAAMyuJ,EAAiB,GAiBvB,OAhBgBzuJ,EAASlN,SACjB2J,QAAQ81C,IACd,MAAMm8G,EAAgB,CACpBn6J,GAAIg+C,EAAOh+C,GACXshF,UAAWtjC,EAAOsjC,UAClBvhF,KAAM,CACJgiI,eAAgB,kBAChBC,gBAAiB,oBACjBhkF,EAAOj+C,OAASi+C,EAAOj+C,MAE3Bi+C,EAAO5/C,QAAQ8J,QAAQviB,IACrBw0K,EAAcx0K,GAAQq4D,EAAO87D,KAAKn0H,KAEpCu0K,EAAeC,EAAcn6J,IAAMm6J,IAG9BD,GAIHE,EAAe,SAAS96I,GAC5B,OAAO,IAAIjH,IAAIvyB,OAAOuY,KAAKihB,GAAOhhB,IAAI3X,GAAO,CAACA,EAAK24B,EAAM34B,OAG3D,GAAIsT,UAAU5K,QAAU,EAAG,CACzB,MAAMgrK,EAA0B,SAAS5uJ,GACvCsuJ,EAAOK,EAAaH,EAAgBxuJ,MAGtC,OAAOquJ,EAAap/H,MAAM5hC,KAAM,CAACuhK,EAC/Bj5B,IAIJ,OAAO,IAAItrG,QAAQ,CAACC,EAASC,KAC3B8jI,EAAap/H,MAAM5hC,KAAM,CACvB,SAAS2S,GACPsqB,EAAQqkI,EAAaH,EAAgBxuJ,MACpCuqB,MACJxC,KAAKumI,EAAQC,IAIb,SAASM,EAA2Bt1K,GACzC,KAAwB,iBAAXA,GAAuBA,EAAO6uC,mBACvC7uC,EAAOmnH,cAAgBnnH,EAAOwnH,gBAChC,OAIF,KAAM,aAAcxnH,EAAOmnH,aAAanlH,WAAY,CAClD,MAAM4yK,EAAiB50K,EAAO6uC,kBAAkB7sC,UAAUm3I,WACtDy7B,IACF50K,EAAO6uC,kBAAkB7sC,UAAUm3I,WAAa,WAC9C,MAAMh0F,EAAUyvH,EAAel/H,MAAM5hC,KAAM,IAE3C,OADAqxC,EAAQjiC,QAAQm7D,GAAUA,EAAOi2F,IAAMxgK,MAChCqxC,IAIX,MAAMqvH,EAAex0K,EAAO6uC,kBAAkB7sC,UAAUiwC,SACpDuiI,IACFx0K,EAAO6uC,kBAAkB7sC,UAAUiwC,SAAW,WAC5C,MAAMosC,EAASm2F,EAAa9+H,MAAM5hC,KAAMmB,WAExC,OADAopE,EAAOi2F,IAAMxgK,KACNuqE,IAGXr+E,EAAOmnH,aAAanlH,UAAUqiH,SAAW,WACvC,MAAMhmC,EAASvqE,KACf,OAAOA,KAAKwgK,IAAIjwD,WAAW71E,KAAKj1B,GAK9BhL,EAAkBgL,EAAQ8kE,EAAOjsC,OAAO,KAK9C,KAAM,aAAcpyC,EAAOwnH,eAAexlH,WAAY,CACpD,MAAMuzK,EAAmBv1K,EAAO6uC,kBAAkB7sC,UAAUo3I,aACxDm8B,IACFv1K,EAAO6uC,kBAAkB7sC,UAAUo3I,aACjC,WACE,MAAMo8B,EAAYD,EAAiB7/H,MAAM5hC,KAAM,IAE/C,OADA0hK,EAAUtyJ,QAAQg8B,GAAYA,EAASo1H,IAAMxgK,MACtC0hK,IAGbjnK,EAA8BvO,EAAQ,QAASmN,IAC7CA,EAAE+xC,SAASo1H,IAAMnnK,EAAEsoK,WACZtoK,IAETnN,EAAOwnH,eAAexlH,UAAUqiH,SAAW,WACzC,MAAMnlE,EAAWprC,KACjB,OAAOA,KAAKwgK,IAAIjwD,WAAW71E,KAAKj1B,GAC9BhL,EAAkBgL,EAAQ2lC,EAAS9M,OAAO,KAIhD,KAAM,aAAcpyC,EAAOmnH,aAAanlH,cACpC,aAAchC,EAAOwnH,eAAexlH,WACtC,OAIF,MAAM8yK,EAAe90K,EAAO6uC,kBAAkB7sC,UAAUqiH,SACxDrkH,EAAO6uC,kBAAkB7sC,UAAUqiH,SAAW,WAC5C,GAAIpvG,UAAU5K,OAAS,GACnB4K,UAAU,aAAcjV,EAAOq8I,iBAAkB,CACnD,MAAMjqG,EAAQn9B,UAAU,GACxB,IAAIopE,EACAn/B,EACAj7B,EAoBJ,OAnBAnQ,KAAKqlI,aAAaj2H,QAAQ/gB,IACpBA,EAAEiwC,QAAUA,IACVisC,EACFp6D,GAAM,EAENo6D,EAASl8E,KAIf2R,KAAKslI,eAAel2H,QAAQhiB,IACtBA,EAAEkxC,QAAUA,IACV8M,EACFj7B,GAAM,EAENi7B,EAAWh+C,GAGRA,EAAEkxC,QAAUA,IAEjBnuB,GAAQo6D,GAAUn/B,EACbpO,QAAQE,OAAO,IAAIsiI,aACxB,4DACA,uBACOj1F,EACFA,EAAOgmC,WACLnlE,EACFA,EAASmlE,WAEXvzE,QAAQE,OAAO,IAAIsiI,aACxB,gDACA,uBAEJ,OAAOwB,EAAap/H,MAAM5hC,KAAMmB,YAI7B,SAASygK,EAAkC11K,GAIhDA,EAAO6uC,kBAAkB7sC,UAAUs2I,gBACjC,WAEE,OADAxkI,KAAK6hK,qBAAuB7hK,KAAK6hK,sBAAwB,GAClD70K,OAAOuY,KAAKvF,KAAK6hK,sBACrBr8J,IAAIgjC,GAAYxoC,KAAK6hK,qBAAqBr5H,GAAU,KAG3D,MAAMk4H,EAAex0K,EAAO6uC,kBAAkB7sC,UAAUiwC,SACxDjyC,EAAO6uC,kBAAkB7sC,UAAUiwC,SACjC,SAAkBG,EAAO/c,GACvB,IAAKA,EACH,OAAOm/I,EAAa9+H,MAAM5hC,KAAMmB,WAElCnB,KAAK6hK,qBAAuB7hK,KAAK6hK,sBAAwB,GAEzD,MAAMt3F,EAASm2F,EAAa9+H,MAAM5hC,KAAMmB,WAMxC,OALKnB,KAAK6hK,qBAAqBtgJ,EAAOra,KAE+B,IAA1DlH,KAAK6hK,qBAAqBtgJ,EAAOra,IAAItD,QAAQ2mE,IACtDvqE,KAAK6hK,qBAAqBtgJ,EAAOra,IAAIhE,KAAKqnE,GAF1CvqE,KAAK6hK,qBAAqBtgJ,EAAOra,IAAM,CAACqa,EAAQgpD,GAI3CA,GAGX,MAAMq2F,EAAgB10K,EAAO6uC,kBAAkB7sC,UAAU88F,UACzD9+F,EAAO6uC,kBAAkB7sC,UAAU88F,UAAY,SAAmBzpE,GAChEvhB,KAAK6hK,qBAAuB7hK,KAAK6hK,sBAAwB,GAEzDtgJ,EAAOue,YAAY1wB,QAAQkvB,IAEzB,GADsBt+B,KAAKqlI,aAAap0G,KAAK5iC,GAAKA,EAAEiwC,QAAUA,GAE5D,MAAM,IAAIkhI,aAAa,wBACnB,wBAGR,MAAMsC,EAAkB9hK,KAAKqlI,aAC7Bu7B,EAAch/H,MAAM5hC,KAAMmB,WAC1B,MAAM4gK,EAAa/hK,KAAKqlI,aACrB30G,OAAOsxI,IAAqD,IAAxCF,EAAgBl+J,QAAQo+J,IAC/ChiK,KAAK6hK,qBAAqBtgJ,EAAOra,IAAM,CAACqa,GAAQvnB,OAAO+nK,IAGzD,MAAMlB,EAAmB30K,EAAO6uC,kBAAkB7sC,UAAUk3I,aAC5Dl5I,EAAO6uC,kBAAkB7sC,UAAUk3I,aACjC,SAAsB7jH,GAGpB,OAFAvhB,KAAK6hK,qBAAuB7hK,KAAK6hK,sBAAwB,UAClD7hK,KAAK6hK,qBAAqBtgJ,EAAOra,IACjC25J,EAAiBj/H,MAAM5hC,KAAMmB,YAGxC,MAAMw/J,EAAkBz0K,EAAO6uC,kBAAkB7sC,UAAUsmG,YAC3DtoG,EAAO6uC,kBAAkB7sC,UAAUsmG,YACjC,SAAqBjqB,GAanB,OAZAvqE,KAAK6hK,qBAAuB7hK,KAAK6hK,sBAAwB,GACrDt3F,GACFv9E,OAAOuY,KAAKvF,KAAK6hK,sBAAsBzyJ,QAAQo5B,IAC7C,MAAMoH,EAAM5vC,KAAK6hK,qBAAqBr5H,GAAU5kC,QAAQ2mE,IAC3C,IAAT36B,GACF5vC,KAAK6hK,qBAAqBr5H,GAAUvkC,OAAO2rC,EAAK,GAEC,IAA/C5vC,KAAK6hK,qBAAqBr5H,GAAUjyC,eAC/ByJ,KAAK6hK,qBAAqBr5H,KAIhCm4H,EAAgB/+H,MAAM5hC,KAAMmB,YAIlC,SAAS8gK,EAAwB/1K,GACtC,IAAKA,EAAO6uC,kBACV,OAEF,MAAM+iI,EAAiBrjK,EAAoBvO,GAE3C,GAAIA,EAAO6uC,kBAAkB7sC,UAAUiwC,UACnC2/H,EAAe/pH,SAAW,GAC5B,OAAO6tH,EAAkC11K,GAK3C,MAAMg2K,EAAsBh2K,EAAO6uC,kBAAkB7sC,UAChDs2I,gBACLt4I,EAAO6uC,kBAAkB7sC,UAAUs2I,gBACjC,WACE,MAAM29B,EAAgBD,EAAoBtgI,MAAM5hC,MAEhD,OADAA,KAAKoiK,gBAAkBpiK,KAAKoiK,iBAAmB,GACxCD,EAAc38J,IAAI+b,GAAUvhB,KAAKoiK,gBAAgB7gJ,EAAOra,MAGnE,MAAM05J,EAAgB10K,EAAO6uC,kBAAkB7sC,UAAU88F,UACzD9+F,EAAO6uC,kBAAkB7sC,UAAU88F,UAAY,SAAmBzpE,GAahE,GAZAvhB,KAAKqiK,SAAWriK,KAAKqiK,UAAY,GACjCriK,KAAKoiK,gBAAkBpiK,KAAKoiK,iBAAmB,GAE/C7gJ,EAAOue,YAAY1wB,QAAQkvB,IAEzB,GADsBt+B,KAAKqlI,aAAap0G,KAAK5iC,GAAKA,EAAEiwC,QAAUA,GAE5D,MAAM,IAAIkhI,aAAa,wBACnB,yBAKHx/J,KAAKoiK,gBAAgB7gJ,EAAOra,IAAK,CACpC,MAAMo7J,EAAY,IAAIp2K,EAAO0vC,YAAYra,EAAOue,aAChD9/B,KAAKqiK,SAAS9gJ,EAAOra,IAAMo7J,EAC3BtiK,KAAKoiK,gBAAgBE,EAAUp7J,IAAMqa,EACrCA,EAAS+gJ,EAEX1B,EAAch/H,MAAM5hC,KAAM,CAACuhB,KAG7B,MAAMs/I,EAAmB30K,EAAO6uC,kBAAkB7sC,UAAUk3I,aA6D5D,SAASm9B,EAAwBj9G,EAAIwd,GACnC,IAAI9wC,EAAM8wC,EAAY9wC,IAOtB,OANAhlC,OAAOuY,KAAK+/C,EAAG88G,iBAAmB,IAAIhzJ,QAAQozJ,IAC5C,MAAMC,EAAiBn9G,EAAG88G,gBAAgBI,GACpCE,EAAiBp9G,EAAG+8G,SAASI,EAAev7J,IAClD8qB,EAAMA,EAAIpwB,QAAQ,IAAIkpD,OAAO43G,EAAex7J,GAAI,KAC5Cu7J,EAAev7J,MAEd,IAAIyuE,sBAAsB,CAC/B1uE,KAAM67D,EAAY77D,KAClB+qB,QAGJ,SAAS2wI,EAAwBr9G,EAAIwd,GACnC,IAAI9wC,EAAM8wC,EAAY9wC,IAOtB,OANAhlC,OAAOuY,KAAK+/C,EAAG88G,iBAAmB,IAAIhzJ,QAAQozJ,IAC5C,MAAMC,EAAiBn9G,EAAG88G,gBAAgBI,GACpCE,EAAiBp9G,EAAG+8G,SAASI,EAAev7J,IAClD8qB,EAAMA,EAAIpwB,QAAQ,IAAIkpD,OAAO23G,EAAev7J,GAAI,KAC5Cw7J,EAAex7J,MAEd,IAAIyuE,sBAAsB,CAC/B1uE,KAAM67D,EAAY77D,KAClB+qB,QAnFJ9lC,EAAO6uC,kBAAkB7sC,UAAUk3I,aACjC,SAAsB7jH,GACpBvhB,KAAKqiK,SAAWriK,KAAKqiK,UAAY,GACjCriK,KAAKoiK,gBAAkBpiK,KAAKoiK,iBAAmB,GAE/CvB,EAAiBj/H,MAAM5hC,KAAM,CAAEA,KAAKqiK,SAAS9gJ,EAAOra,KAAOqa,WACpDvhB,KAAKoiK,gBAAiBpiK,KAAKqiK,SAAS9gJ,EAAOra,IAC9ClH,KAAKqiK,SAAS9gJ,EAAOra,IAAIA,GAAKqa,EAAOra,WAClClH,KAAKqiK,SAAS9gJ,EAAOra,KAGhChb,EAAO6uC,kBAAkB7sC,UAAUiwC,SACjC,SAAkBG,EAAO/c,GACvB,GAA4B,WAAxBvhB,KAAKiuE,eACP,MAAM,IAAIuxF,aACR,sDACA,qBAEJ,MAAM1hI,EAAU,GAAG5D,MAAMztC,KAAK0U,UAAW,GACzC,GAAuB,IAAnB28B,EAAQvnC,SACPunC,EAAQ,GAAGgC,YAAY7O,KAAKzjC,GAAKA,IAAM8wC,GAG1C,MAAM,IAAIkhI,aACR,gHAEA,qBAGJ,MAAMoD,EAAgB5iK,KAAKqlI,aAAap0G,KAAK5iC,GAAKA,EAAEiwC,QAAUA,GAC9D,GAAIskI,EACF,MAAM,IAAIpD,aAAa,wBACnB,sBAGNx/J,KAAKqiK,SAAWriK,KAAKqiK,UAAY,GACjCriK,KAAKoiK,gBAAkBpiK,KAAKoiK,iBAAmB,GAC/C,MAAMS,EAAY7iK,KAAKqiK,SAAS9gJ,EAAOra,IACvC,GAAI27J,EAKFA,EAAU1kI,SAASG,GAGnBtB,QAAQC,UAAUvC,KAAK,KACrB16B,KAAKoiI,cAAc,IAAII,MAAM,4BAE1B,CACL,MAAM8/B,EAAY,IAAIp2K,EAAO0vC,YAAY,CAAC0C,IAC1Ct+B,KAAKqiK,SAAS9gJ,EAAOra,IAAMo7J,EAC3BtiK,KAAKoiK,gBAAgBE,EAAUp7J,IAAMqa,EACrCvhB,KAAKgrF,UAAUs3E,GAEjB,OAAOtiK,KAAKqlI,aAAap0G,KAAK5iC,GAAKA,EAAEiwC,QAAUA,IA+BnD,CAAC,cAAe,gBAAgBlvB,SAAQ,SAASs/E,GAC/C,MAAMy6C,EAAej9I,EAAO6uC,kBAAkB7sC,UAAUwgG,GAClDo0E,EAAY,CAAC,CAACp0E,KAClB,MAAMvsD,EAAOhhC,UAGb,OAFqBA,UAAU5K,QACH,mBAAjB4K,UAAU,GAEZgoI,EAAavnG,MAAM5hC,KAAM,CAC7B8iE,IACC,MAAMzzC,EAAOkzI,EAAwBviK,KAAM8iE,GAC3C3gC,EAAK,GAAGP,MAAM,KAAM,CAACvS,KAEtBlf,IACKgyB,EAAK,IACPA,EAAK,GAAGP,MAAM,KAAMzxB,IAErBhP,UAAU,KAGVgoI,EAAavnG,MAAM5hC,KAAMmB,WAC/Bu5B,KAAKooC,GAAey/F,EAAwBviK,KAAM8iE,MAErD52E,EAAO6uC,kBAAkB7sC,UAAUwgG,GAAUo0E,EAAUp0E,MAGzD,MAAMq0E,EACF72K,EAAO6uC,kBAAkB7sC,UAAU6jF,oBACvC7lF,EAAO6uC,kBAAkB7sC,UAAU6jF,oBACjC,WACE,OAAK5wE,UAAU5K,QAAW4K,UAAU,GAAG8F,MAGvC9F,UAAU,GAAKwhK,EAAwB3iK,KAAMmB,UAAU,IAChD4hK,EAAwBnhI,MAAM5hC,KAAMmB,YAHlC4hK,EAAwBnhI,MAAM5hC,KAAMmB,YAQjD,MAAM6hK,EAAuBh2K,OAAOi2K,yBAChC/2K,EAAO6uC,kBAAkB7sC,UAAW,oBACxClB,OAAOC,eAAef,EAAO6uC,kBAAkB7sC,UAC3C,mBAAoB,CAClBf,MACE,MAAM21E,EAAckgG,EAAqB71K,IAAIy0C,MAAM5hC,MACnD,MAAyB,KAArB8iE,EAAY77D,KACP67D,EAEFy/F,EAAwBviK,KAAM8iE,MAI7C52E,EAAO6uC,kBAAkB7sC,UAAUsmG,YACjC,SAAqBjqB,GACnB,GAA4B,WAAxBvqE,KAAKiuE,eACP,MAAM,IAAIuxF,aACR,sDACA,qBAIJ,IAAKj1F,EAAOi2F,IACV,MAAM,IAAIhB,aAAa,yFAC2B,aAGpD,KADgBj1F,EAAOi2F,MAAQxgK,MAE7B,MAAM,IAAIw/J,aAAa,6CACnB,sBAKN,IAAIj+I,EADJvhB,KAAKqiK,SAAWriK,KAAKqiK,UAAY,GAEjCr1K,OAAOuY,KAAKvF,KAAKqiK,UAAUjzJ,QAAQ8zJ,IAChBljK,KAAKqiK,SAASa,GAAUpjI,YACtC7O,KAAKqN,GAASisC,EAAOjsC,QAAUA,KAEhC/c,EAASvhB,KAAKqiK,SAASa,MAIvB3hJ,IACgC,IAA9BA,EAAOue,YAAYvpC,OAGrByJ,KAAKolI,aAAaplI,KAAKoiK,gBAAgB7gJ,EAAOra,KAG9Cqa,EAAOizE,YAAYjqB,EAAOjsC,OAE5Bt+B,KAAKoiI,cAAc,IAAII,MAAM,wBAK9B,SAAS2gC,EAAmBj3K,GACjC,MAAM4xK,EAAiBrjK,EAAoBvO,GAM3C,IAJKA,EAAO6uC,mBAAqB7uC,EAAO8wK,0BAEtC9wK,EAAO6uC,kBAAoB7uC,EAAO8wK,0BAE/B9wK,EAAO6uC,kBACV,OAGF,MAAMqoI,EAC0D,IAA9Dl3K,EAAO6uC,kBAAkB7sC,UAAU6iF,gBAAgBx6E,OAGjDunK,EAAe/pH,QAAU,IAC3B,CAAC,sBAAuB,uBAAwB,mBAC3C3kC,SAAQ,SAASs/E,GAChB,MAAMy6C,EAAej9I,EAAO6uC,kBAAkB7sC,UAAUwgG,GAClDo0E,EAAY,CAAC,CAACp0E,KAIlB,OAHAvtF,UAAU,GAAK,IAAiB,oBAAXutF,EACjBxiG,EAAO0kF,gBACP1kF,EAAOypF,uBAAuBx0E,UAAU,IACrCgoI,EAAavnG,MAAM5hC,KAAMmB,aAElCjV,EAAO6uC,kBAAkB7sC,UAAUwgG,GAAUo0E,EAAUp0E,MAK/D,MAAM20E,EACFn3K,EAAO6uC,kBAAkB7sC,UAAU6iF,gBACvC7kF,EAAO6uC,kBAAkB7sC,UAAU6iF,gBACjC,WACE,OAAKqyF,GAAiCjiK,UAAU,GAQ5C28J,EAAe/pH,QAAU,IAC3B5yC,UAAU,IAAiC,KAA3BA,UAAU,GAAGstB,UACtBuO,QAAQC,UAEVomI,EAAsBzhI,MAAM5hC,KAAMmB,YAXnCA,UAAU,IACZA,UAAU,GAAGygC,MAAM,MAEd5E,QAAQC,YAYhB,SAASqmI,EAAqBp3K,GACnCuO,EAA8BvO,EAAQ,oBAAqBmN,IAEzD,GAA0B,WADfA,EAAE8xC,OACN8iC,eAGP,OAAO50E,I,sBCxsBJ,SAASwkK,EAAiB3xK,GAC/B,MAAMsuC,EAAYtuC,GAAUA,EAAOsuC,UAc7B+kI,EAAmB/kI,EAAUC,aAAa0C,aAC5CrvC,KAAK0sC,EAAUC,cACnBD,EAAUC,aAAa0C,aAAe,SAASxwC,GAC7C,OAAO4yK,EAAiB5yK,GAAGywC,MAAM/jC,GAAK2jC,QAAQE,OAf7B,SAAS7jC,GAC1B,MAAO,CACLxM,KAAM,CAACgyK,sBAAuB,mBAAmBxlK,EAAExM,OAASwM,EAAExM,KAC9D4X,QAASpL,EAAEoL,QACXqqC,WAAYz1C,EAAEy1C,WACdp4C,WACE,OAAOsJ,KAAKnT,OASqC+xK,CAAWvlK,MClB7D,SAASomK,EAAoBvzK,GAC5B,oBAAqBA,EAAOsuC,WAG5BtuC,EAAOsuC,UAAUC,eAGnBvuC,EAAOsuC,UAAUC,cACnB,oBAAqBvuC,EAAOsuC,UAAUC,eAGxCvuC,EAAOsuC,UAAUC,aAAa29B,gBAC5BlsE,EAAOsuC,UAAU49B,gBAAgBtqE,KAAK5B,EAAOsuC,aCL1C,SAAS2oI,EAAmBj3K,GACjC,MAAM4xK,EAAiBrjK,EAAoBvO,GAE3C,GAAIA,EAAOu3I,iBACJv3I,EAAO0kF,kBACV1kF,EAAO0kF,gBAAkB,SAAyBzuC,GAChD,OAAOA,IAGNj2C,EAAOypF,wBACVzpF,EAAOypF,sBAAwB,SAA+BxzC,GAC5D,OAAOA,IAMP27H,EAAe/pH,QAAU,OAAO,CAClC,MAAMwvH,EAAiBv2K,OAAOi2K,yBAC1B/2K,EAAOq8I,iBAAiBr6I,UAAW,WACvClB,OAAOC,eAAef,EAAOq8I,iBAAiBr6I,UAAW,UAAW,CAClEkzB,IAAI7zB,GACFg2K,EAAeniJ,IAAI30B,KAAKuT,KAAMzS,GAC9B,MAAMssD,EAAK,IAAI2oF,MAAM,WACrB3oF,EAAGyvB,QAAU/7E,EACbyS,KAAKoiI,cAAcvoF,MAQvB3tD,EAAOmnH,gBAAkB,SAAUnnH,EAAOmnH,aAAanlH,YACzDlB,OAAOC,eAAef,EAAOmnH,aAAanlH,UAAW,OAAQ,CAC3Df,MAQE,YAPmBoT,IAAfP,KAAKugK,QACiB,UAApBvgK,KAAKs+B,MAAMlF,KACbp5B,KAAKugK,MAAQ,IAAIr0K,EAAOs3K,cAAcxjK,MACT,UAApBA,KAAKs+B,MAAMlF,OACpBp5B,KAAKugK,MAAQ,OAGVvgK,KAAKugK,SAMdr0K,EAAOs3K,gBAAkBt3K,EAAOu3K,gBAClCv3K,EAAOu3K,cAAgBv3K,EAAOs3K,eAGhC,MAAME,EAAwBC,IAAsBz3K,EAChD4xK,EAAe/pH,SACnB7nD,EAAO6uC,kBAAoB,SAA2BvH,GAMpD,OALIA,GAAUA,EAAO0qB,aACnB1qB,EAAO0qB,WC1DN,SAA0BA,EAAYgkF,GAC3C,IAAIkB,GAAU,EAEd,OADAllF,EAAatxC,KAAKsL,MAAMtL,KAAKwL,UAAU8lC,KACrBxtB,OAAO22B,IACvB,GAAIA,IAAWA,EAAO5O,MAAQ4O,EAAOtmB,KAAM,CACzC,IAAI0X,EAAO4O,EAAO5O,MAAQ4O,EAAOtmB,IAC7BsmB,EAAOtmB,MAAQsmB,EAAO5O,MACxBh+C,EAAiB,mBAAoB,qBAEvC,MAAM4oI,EAA2B,iBAAT5qF,EAsBxB,OArBI4qF,IACF5qF,EAAO,CAACA,IAEVA,EAAOA,EAAK/nB,OAAOqQ,IAEjB,GAA6B,IAAzBA,EAAIn9B,QAAQ,SACd,OAAO,EAGT,MAAMggK,EAAY7iI,EAAI5O,WAAW,UAC5B4O,EAAI5O,WAAW,WAChB4O,EAAItN,SAAS,iBACjB,OAAImwI,IAAcxgC,GAChBA,GAAU,GACH,GAEFwgC,IAAcxgC,WAGhB/7E,EAAOtmB,IACdsmB,EAAO5O,KAAO4qF,EAAW5qF,EAAK,GAAKA,IAC1BA,EAAKliD,UD2BM+sI,CAAiB9vG,EAAO0qB,WAC1C4/G,EAAe/pH,SACjBt5C,EAAU,+BAAgC+4B,EAAO0qB,aAE5C,IAAIwlH,EAAsBlwI,IAEnCtnC,EAAO6uC,kBAAkB7sC,UAAYw1K,EAAsBx1K,UAGtD,SAAS21K,EAAiB33K,GAE3BA,EAAOmnH,gBACL,iBAAkBnnH,EAAOmnH,aAAanlH,aAC1ChC,EAAOmnH,aAAanlH,UAAUgoF,aAC1BhqF,EAAOmnH,aAAanlH,UAAU41K,UE5E/B,SAASjG,EAAiB3xK,GAC/B,MAAM4xK,EAAiBrjK,EAAoBvO,GACrCsuC,EAAYtuC,GAAUA,EAAOsuC,UAC7B+tG,EAAmBr8I,GAAUA,EAAOq8I,iBAS1C,GAPA/tG,EAAU2C,aAAe,SAASpX,EAAaxS,EAAWq8G,GAExDn1H,EAAiB,yBACb,uCACJ+/B,EAAUC,aAAa0C,aAAapX,GAAa2U,KAAKnnB,EAAWq8G,MAG7DkuC,EAAe/pH,QAAU,IAC3B,oBAAqBvZ,EAAUC,aAAaikI,2BAA4B,CAC1E,MAAMH,EAAQ,SAASxoK,EAAK2B,EAAGC,GACzBD,KAAK3B,KAAS4B,KAAK5B,KACrBA,EAAI4B,GAAK5B,EAAI2B,UACN3B,EAAI2B,KAITqsK,EAAqBvpI,EAAUC,aAAa0C,aAC9CrvC,KAAK0sC,EAAUC,cAUnB,GATAD,EAAUC,aAAa0C,aAAe,SAASxwC,GAM7C,MALiB,iBAANA,GAAqC,iBAAZA,EAAE0oC,QACpC1oC,EAAIigB,KAAKsL,MAAMtL,KAAKwL,UAAUzrB,IAC9B4xK,EAAM5xK,EAAE0oC,MAAO,kBAAmB,sBAClCkpI,EAAM5xK,EAAE0oC,MAAO,mBAAoB,wBAE9B0uI,EAAmBp3K,IAGxB47I,GAAoBA,EAAiBr6I,UAAUw0C,YAAa,CAC9D,MAAMshI,EAAoBz7B,EAAiBr6I,UAAUw0C,YACrD6lG,EAAiBr6I,UAAUw0C,YAAc,WACvC,MAAM3sC,EAAMiuK,EAAkBpiI,MAAM5hC,KAAMmB,WAG1C,OAFAo9J,EAAMxoK,EAAK,qBAAsB,mBACjCwoK,EAAMxoK,EAAK,sBAAuB,oBAC3BA,GAIX,GAAIwyI,GAAoBA,EAAiBr6I,UAAU6xC,iBAAkB,CACnE,MAAMkkI,EACJ17B,EAAiBr6I,UAAU6xC,iBAC7BwoG,EAAiBr6I,UAAU6xC,iBAAmB,SAASpzC,GAMrD,MALkB,UAAdqT,KAAKo5B,MAAiC,iBAANzsC,IAClCA,EAAIigB,KAAKsL,MAAMtL,KAAKwL,UAAUzrB,IAC9B4xK,EAAM5xK,EAAG,kBAAmB,sBAC5B4xK,EAAM5xK,EAAG,mBAAoB,wBAExBs3K,EAAuBriI,MAAM5hC,KAAM,CAACrT,OCrD5C,SAAS8yK,EAAoBvzK,EAAQg4K,GACtCh4K,EAAOsuC,UAAUC,cACnB,oBAAqBvuC,EAAOsuC,UAAUC,cAGlCvuC,EAAOsuC,UAAUC,eAGvBvuC,EAAOsuC,UAAUC,aAAa29B,gBAC5B,SAAyBryC,GACvB,IAAMA,IAAeA,EAAYkO,MAAQ,CACvC,MAAM9jB,EAAM,IAAIqvJ,aAAa,0DAK7B,OAHArvJ,EAAItjB,KAAO,gBAEXsjB,EAAIwM,KAAO,EACJqgB,QAAQE,OAAO/sB,GAOxB,OAL0B,IAAtB4V,EAAYkO,MACdlO,EAAYkO,MAAQ,CAACwD,YAAaysI,GAElCn+I,EAAYkO,MAAMwD,YAAcysI,EAE3Bh4K,EAAOsuC,UAAUC,aAAa0C,aAAapX,KCnBjD,SAASi6I,EAAY9zK,GACJ,iBAAXA,GAAuBA,EAAOi4K,eACpC,aAAcj4K,EAAOi4K,cAAcj2K,aAClC,gBAAiBhC,EAAOi4K,cAAcj2K,YAC1ClB,OAAOC,eAAef,EAAOi4K,cAAcj2K,UAAW,cAAe,CACnEf,MACE,MAAO,CAACi+C,SAAUprC,KAAKorC,aAMxB,SAAS+3H,EAAmBj3K,GACjC,MAAM4xK,EAAiBrjK,EAAoBvO,GAE3C,GAAsB,iBAAXA,IACLA,EAAO6uC,oBAAqB7uC,EAAOk4K,qBACvC,OAwBF,IAtBKl4K,EAAO6uC,mBAAqB7uC,EAAOk4K,uBAEtCl4K,EAAO6uC,kBAAoB7uC,EAAOk4K,sBAGhCtG,EAAe/pH,QAAU,IAE3B,CAAC,sBAAuB,uBAAwB,mBAC3C3kC,SAAQ,SAASs/E,GAChB,MAAMy6C,EAAej9I,EAAO6uC,kBAAkB7sC,UAAUwgG,GAClDo0E,EAAY,CAAC,CAACp0E,KAIlB,OAHAvtF,UAAU,GAAK,IAAiB,oBAAXutF,EACjBxiG,EAAO0kF,gBACP1kF,EAAOypF,uBAAuBx0E,UAAU,IACrCgoI,EAAavnG,MAAM5hC,KAAMmB,aAElCjV,EAAO6uC,kBAAkB7sC,UAAUwgG,GAAUo0E,EAAUp0E,MAM3DovE,EAAe/pH,QAAU,GAAI,CAC/B,MAAMsvH,EACFn3K,EAAO6uC,kBAAkB7sC,UAAU6iF,gBACvC7kF,EAAO6uC,kBAAkB7sC,UAAU6iF,gBACnC,WACE,OAAK5vE,UAAU,GAQXA,UAAU,IAAiC,KAA3BA,UAAU,GAAGstB,UACxBuO,QAAQC,UAEVomI,EAAsBzhI,MAAM5hC,KAAMmB,YAVnCA,UAAU,IACZA,UAAU,GAAGygC,MAAM,MAEd5E,QAAQC,YAWrB,MAAMonI,EAAmB,CACvBv7B,WAAY,cACZC,YAAa,eACbC,cAAe,iBACfC,eAAgB,kBAChBC,gBAAiB,oBAGbo7B,EAAiBp4K,EAAO6uC,kBAAkB7sC,UAAUqiH,SAC1DrkH,EAAO6uC,kBAAkB7sC,UAAUqiH,SAAW,WAC5C,MAAO+3B,EAAU24B,EAAQC,GAAS//J,UAClC,OAAOmjK,EAAe1iI,MAAM5hC,KAAM,CAACsoI,GAAY,OAC5C5tG,KAAKlU,IACJ,GAAIs3I,EAAe/pH,QAAU,KAAOktH,EAGlC,IACEz6I,EAAMpX,QAAQ4xG,IACZA,EAAK/5G,KAAOo9J,EAAiBrjD,EAAK/5G,OAAS+5G,EAAK/5G,OAElD,MAAO5N,GACP,GAAe,cAAXA,EAAExM,KACJ,MAAMwM,EAGRmtB,EAAMpX,QAAQ,CAAC4xG,EAAM10H,KACnBk6B,EAAMpF,IAAI90B,EAAGU,OAAOgoG,OAAO,GAAIgsB,EAAM,CACnC/5G,KAAMo9J,EAAiBrjD,EAAK/5G,OAAS+5G,EAAK/5G,UAKlD,OAAOuf,IAERkU,KAAKumI,EAAQC,IAIb,SAASqD,EAAmBr4K,GACjC,GAAwB,iBAAXA,IAAuBA,EAAO6uC,oBACvC7uC,EAAOmnH,aACT,OAEF,GAAInnH,EAAOmnH,cAAgB,aAAcnnH,EAAOmnH,aAAanlH,UAC3D,OAEF,MAAM4yK,EAAiB50K,EAAO6uC,kBAAkB7sC,UAAUm3I,WACtDy7B,IACF50K,EAAO6uC,kBAAkB7sC,UAAUm3I,WAAa,WAC9C,MAAMh0F,EAAUyvH,EAAel/H,MAAM5hC,KAAM,IAE3C,OADAqxC,EAAQjiC,QAAQm7D,GAAUA,EAAOi2F,IAAMxgK,MAChCqxC,IAIX,MAAMqvH,EAAex0K,EAAO6uC,kBAAkB7sC,UAAUiwC,SACpDuiI,IACFx0K,EAAO6uC,kBAAkB7sC,UAAUiwC,SAAW,WAC5C,MAAMosC,EAASm2F,EAAa9+H,MAAM5hC,KAAMmB,WAExC,OADAopE,EAAOi2F,IAAMxgK,KACNuqE,IAGXr+E,EAAOmnH,aAAanlH,UAAUqiH,SAAW,WACvC,OAAOvwG,KAAKs+B,MAAQt+B,KAAKwgK,IAAIjwD,SAASvwG,KAAKs+B,OACvCtB,QAAQC,QAAQ,IAAI1d,MAIrB,SAASilJ,EAAqBt4K,GACnC,GAAwB,iBAAXA,IAAuBA,EAAO6uC,oBACvC7uC,EAAOmnH,aACT,OAEF,GAAInnH,EAAOmnH,cAAgB,aAAcnnH,EAAOwnH,eAAexlH,UAC7D,OAEF,MAAMuzK,EAAmBv1K,EAAO6uC,kBAAkB7sC,UAAUo3I,aACxDm8B,IACFv1K,EAAO6uC,kBAAkB7sC,UAAUo3I,aAAe,WAChD,MAAMo8B,EAAYD,EAAiB7/H,MAAM5hC,KAAM,IAE/C,OADA0hK,EAAUtyJ,QAAQg8B,GAAYA,EAASo1H,IAAMxgK,MACtC0hK,IAGXjnK,EAA8BvO,EAAQ,QAASmN,IAC7CA,EAAE+xC,SAASo1H,IAAMnnK,EAAEsoK,WACZtoK,IAETnN,EAAOwnH,eAAexlH,UAAUqiH,SAAW,WACzC,OAAOvwG,KAAKwgK,IAAIjwD,SAASvwG,KAAKs+B,QAI3B,SAASmmI,EAAiBv4K,GAC1BA,EAAO6uC,qBACR,iBAAkB7uC,EAAO6uC,kBAAkB7sC,aAG/ChC,EAAO6uC,kBAAkB7sC,UAAUk3I,aACjC,SAAsB7jH,GACpB9mB,EAAiB,eAAgB,eACjCuF,KAAKqlI,aAAaj2H,QAAQm7D,IACpBA,EAAOjsC,OAAS/c,EAAOue,YAAYrM,SAAS82C,EAAOjsC,QACrDt+B,KAAKw0F,YAAYjqB,OAMpB,SAASm6F,EAAmBx4K,GAG7BA,EAAOy4K,cAAgBz4K,EAAO04K,iBAChC14K,EAAO04K,eAAiB14K,EAAOy4K,aAI5B,SAASE,EAAmB34K,GAIjC,GAAwB,iBAAXA,IAAuBA,EAAO6uC,kBACzC,OAEF,MAAM+pI,EAAqB54K,EAAO6uC,kBAAkB7sC,UAAU48F,eAC1Dg6E,IACF54K,EAAO6uC,kBAAkB7sC,UAAU48F,eACjC,WACE9qF,KAAK+kK,sBAAwB,GAC7B,MAAMC,EAAiB7jK,UAAU,GAC3B8jK,EAAqBD,GACD,kBAAmBA,EACzCC,GAEFD,EAAen6E,cAAcz7E,QAAS81J,IACpC,GAAI,QAASA,EAAe,CAE1B,IADiB,oBACHhzJ,KAAKgzJ,EAAc54J,KAC/B,MAAM,IAAIzV,UAAU,+BAGxB,GAAI,0BAA2BquK,KACvBljF,WAAWkjF,EAAcn7E,wBAA0B,GACvD,MAAM,IAAIp8C,WAAW,2CAGzB,GAAI,iBAAkBu3H,KACdljF,WAAWkjF,EAAcC,eAAiB,GAC9C,MAAM,IAAIx3H,WAAW,kCAK7B,MAAMg4B,EAAcm/F,EAAmBljI,MAAM5hC,KAAMmB,WACnD,GAAI8jK,EAAoB,CAQtB,MAAM,OAAC16F,GAAU5E,EACXl2C,EAAS86C,EAAOkhB,gBAChB,cAAeh8D,IACnBA,EAAOi8D,UAAYs5E,EAAen6E,cAClC7qF,KAAK+kK,sBAAsB7hK,KACzBqnE,EAAOohB,cAAcl8D,GACpB2N,MAAM,UAIb,OAAOuoC,IAKR,SAASy/F,EAAgBl5K,GAI9B,GAAwB,iBAAXA,IAAuBA,EAAO6uC,kBACzC,OAEF,MAAMsqI,EAAkBn5K,EAAO6uC,kBAAkB7sC,UAAU2jF,YAC3D3lF,EAAO6uC,kBAAkB7sC,UAAU2jF,YAAc,WAC/C,OAAI7xE,KAAK+kK,uBAAyB/kK,KAAK+kK,sBAAsBxuK,OACpDymC,QAAQ+K,IAAI/nC,KAAK+kK,uBACvBrqI,KAAK,IACG2qI,EAAgBzjI,MAAM5hC,KAAMmB,YAEpCmkK,QAAQ,KACPtlK,KAAK+kK,sBAAwB,KAG1BM,EAAgBzjI,MAAM5hC,KAAMmB,YAIhC,SAASokK,EAAiBr5K,GAI/B,GAAwB,iBAAXA,IAAuBA,EAAO6uC,kBACzC,OAEF,MAAMyqI,EAAmBt5K,EAAO6uC,kBAAkB7sC,UAAU6nF,aAC5D7pF,EAAO6uC,kBAAkB7sC,UAAU6nF,aAAe,WAChD,OAAI/1E,KAAK+kK,uBAAyB/kK,KAAK+kK,sBAAsBxuK,OACpDymC,QAAQ+K,IAAI/nC,KAAK+kK,uBACvBrqI,KAAK,IACG8qI,EAAiB5jI,MAAM5hC,KAAMmB,YAErCmkK,QAAQ,KACPtlK,KAAK+kK,sBAAwB,KAG1BS,EAAiB5jI,MAAM5hC,KAAMmB,YC3RjC,SAASskK,EAAoBv5K,GAClC,GAAsB,iBAAXA,GAAwBA,EAAO6uC,kBAA1C,CAYA,GATM,oBAAqB7uC,EAAO6uC,kBAAkB7sC,YAClDhC,EAAO6uC,kBAAkB7sC,UAAUs2I,gBACjC,WAIE,OAHKxkI,KAAK0lK,gBACR1lK,KAAK0lK,cAAgB,IAEhB1lK,KAAK0lK,kBAGZ,cAAex5K,EAAO6uC,kBAAkB7sC,WAAY,CACxD,MAAMy3K,EAAYz5K,EAAO6uC,kBAAkB7sC,UAAUiwC,SACrDjyC,EAAO6uC,kBAAkB7sC,UAAU88F,UAAY,SAAmBzpE,GAC3DvhB,KAAK0lK,gBACR1lK,KAAK0lK,cAAgB,IAElB1lK,KAAK0lK,cAAcjyI,SAASlS,IAC/BvhB,KAAK0lK,cAAcxiK,KAAKqe,GAI1BA,EAAOqX,iBAAiBxpB,QAAQkvB,GAASqnI,EAAUl5K,KAAKuT,KAAMs+B,EAC5D/c,IACFA,EAAOuX,iBAAiB1pB,QAAQkvB,GAASqnI,EAAUl5K,KAAKuT,KAAMs+B,EAC5D/c,KAGJr1B,EAAO6uC,kBAAkB7sC,UAAUiwC,SACjC,SAAkBG,GAChB,MAAM/c,EAASpgB,UAAU,GAQzB,OAPIogB,IACGvhB,KAAK0lK,cAEE1lK,KAAK0lK,cAAcjyI,SAASlS,IACtCvhB,KAAK0lK,cAAcxiK,KAAKqe,GAFxBvhB,KAAK0lK,cAAgB,CAACnkJ,IAKnBokJ,EAAU/jI,MAAM5hC,KAAMmB,YAG7B,iBAAkBjV,EAAO6uC,kBAAkB7sC,YAC/ChC,EAAO6uC,kBAAkB7sC,UAAUk3I,aACjC,SAAsB7jH,GACfvhB,KAAK0lK,gBACR1lK,KAAK0lK,cAAgB,IAEvB,MAAM/0I,EAAQ3wB,KAAK0lK,cAAc9hK,QAAQ2d,GACzC,IAAe,IAAXoP,EACF,OAEF3wB,KAAK0lK,cAAczhK,OAAO0sB,EAAO,GACjC,MAAM0W,EAAS9lB,EAAOue,YACtB9/B,KAAKqlI,aAAaj2H,QAAQm7D,IACpBljC,EAAO5T,SAAS82C,EAAOjsC,QACzBt+B,KAAKw0F,YAAYjqB,QAOtB,SAASq7F,EAAqB15K,GACnC,GAAsB,iBAAXA,GAAwBA,EAAO6uC,oBAGpC,qBAAsB7uC,EAAO6uC,kBAAkB7sC,YACnDhC,EAAO6uC,kBAAkB7sC,UAAUu2I,iBACjC,WACE,OAAOzkI,KAAK6lK,eAAiB7lK,KAAK6lK,eAAiB,OAGnD,gBAAiB35K,EAAO6uC,kBAAkB7sC,YAAY,CAC1DlB,OAAOC,eAAef,EAAO6uC,kBAAkB7sC,UAAW,cAAe,CACvEf,MACE,OAAO6S,KAAK8lK,cAEd1kJ,IAAIk6B,GACEt7C,KAAK8lK,eACP9lK,KAAKivC,oBAAoB,YAAajvC,KAAK8lK,cAC3C9lK,KAAKivC,oBAAoB,QAASjvC,KAAK+lK,mBAEzC/lK,KAAKq8B,iBAAiB,YAAar8B,KAAK8lK,aAAexqH,GACvDt7C,KAAKq8B,iBAAiB,QAASr8B,KAAK+lK,iBAAoB1sK,IACtDA,EAAEykC,QAAQ1uB,QAAQmS,IAIhB,GAHKvhB,KAAK6lK,iBACR7lK,KAAK6lK,eAAiB,IAEpB7lK,KAAK6lK,eAAepyI,SAASlS,GAC/B,OAEFvhB,KAAK6lK,eAAe3iK,KAAKqe,GACzB,MAAM8F,EAAQ,IAAIm7G,MAAM,aACxBn7G,EAAM9F,OAASA,EACfvhB,KAAKoiI,cAAc/6G,UAK3B,MAAM64I,EACJh0K,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACrC5pF,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACjC,WACE,MAAMxwB,EAAKtlD,KAiBX,OAhBKA,KAAK+lK,kBACR/lK,KAAKq8B,iBAAiB,QAASr8B,KAAK+lK,iBAAmB,SAAS1sK,GAC9DA,EAAEykC,QAAQ1uB,QAAQmS,IAIhB,GAHK+jC,EAAGugH,iBACNvgH,EAAGugH,eAAiB,IAElBvgH,EAAGugH,eAAejiK,QAAQ2d,IAAW,EACvC,OAEF+jC,EAAGugH,eAAe3iK,KAAKqe,GACvB,MAAM8F,EAAQ,IAAIm7G,MAAM,aACxBn7G,EAAM9F,OAASA,EACf+jC,EAAG88E,cAAc/6G,OAIhB64I,EAAyBt+H,MAAM0jB,EAAInkD,aAK3C,SAAS6kK,EAAiB95K,GAC/B,GAAsB,iBAAXA,IAAwBA,EAAO6uC,kBACxC,OAEF,MAAM7sC,EAAYhC,EAAO6uC,kBAAkB7sC,UACrCm3K,EAAkBn3K,EAAU2jF,YAC5B2zF,EAAmBt3K,EAAU6nF,aAC7BhE,EAAsB7jF,EAAU6jF,oBAChC+D,EAAuB5nF,EAAU4nF,qBACjC/E,EAAkB7iF,EAAU6iF,gBAElC7iF,EAAU2jF,YACR,SAAqByjB,EAAiB6+B,GACpC,MAAMhtH,EAAWhG,UAAU5K,QAAU,EAAK4K,UAAU,GAAKA,UAAU,GAC7D4gC,EAAUsjI,EAAgBzjI,MAAM5hC,KAAM,CAACmH,IAC7C,OAAKgtH,GAGLpyF,EAAQrH,KAAK46D,EAAiB6+B,GACvBn3F,QAAQC,WAHN8E,GAMb7zC,EAAU6nF,aACR,SAAsBuf,EAAiB6+B,GACrC,MAAMhtH,EAAWhG,UAAU5K,QAAU,EAAK4K,UAAU,GAAKA,UAAU,GAC7D4gC,EAAUyjI,EAAiB5jI,MAAM5hC,KAAM,CAACmH,IAC9C,OAAKgtH,GAGLpyF,EAAQrH,KAAK46D,EAAiB6+B,GACvBn3F,QAAQC,WAHN8E,GAMb,IAAIkkI,EAAe,SAASnjG,EAAawyB,EAAiB6+B,GACxD,MAAMpyF,EAAUgwC,EAAoBnwC,MAAM5hC,KAAM,CAAC8iE,IACjD,OAAKqxD,GAGLpyF,EAAQrH,KAAK46D,EAAiB6+B,GACvBn3F,QAAQC,WAHN8E,GAKX7zC,EAAU6jF,oBAAsBk0F,EAEhCA,EAAe,SAASnjG,EAAawyB,EAAiB6+B,GACpD,MAAMpyF,EAAU+zC,EAAqBl0C,MAAM5hC,KAAM,CAAC8iE,IAClD,OAAKqxD,GAGLpyF,EAAQrH,KAAK46D,EAAiB6+B,GACvBn3F,QAAQC,WAHN8E,GAKX7zC,EAAU4nF,qBAAuBmwF,EAEjCA,EAAe,SAASx3I,EAAW6mE,EAAiB6+B,GAClD,MAAMpyF,EAAUgvC,EAAgBnvC,MAAM5hC,KAAM,CAACyuB,IAC7C,OAAK0lG,GAGLpyF,EAAQrH,KAAK46D,EAAiB6+B,GACvBn3F,QAAQC,WAHN8E,GAKX7zC,EAAU6iF,gBAAkBk1F,EAGvB,SAASpI,EAAiB3xK,GAC/B,MAAMsuC,EAAYtuC,GAAUA,EAAOsuC,UAEnC,GAAIA,EAAUC,cAAgBD,EAAUC,aAAa0C,aAAc,CAEjE,MAAM1C,EAAeD,EAAUC,aACzByrI,EAAgBzrI,EAAa0C,aAAarvC,KAAK2sC,GACrDD,EAAUC,aAAa0C,aAAgBpX,GAC9BmgJ,EAAcC,EAAgBpgJ,KAIpCyU,EAAU2C,cAAgB3C,EAAUC,cACvCD,EAAUC,aAAa0C,eACvB3C,EAAU2C,aAAe,SAAsBpX,EAAa20G,EAAI0rC,GAC9D5rI,EAAUC,aAAa0C,aAAapX,GACnC2U,KAAKggG,EAAI0rC,IACVt4K,KAAK0sC,IAIJ,SAAS2rI,EAAgBpgJ,GAC9B,OAAIA,QAAqCxlB,IAAtBwlB,EAAYkO,MACtBjnC,OAAOgoG,OAAO,GACnBjvE,EACA,CAACkO,MAAOx5B,EAAoBsrB,EAAYkO,SAIrClO,EAGF,SAASsgJ,GAAqBn6K,GAEnC,MAAMo6K,EAAqBp6K,EAAO6uC,kBAClC7uC,EAAO6uC,kBACL,SAA2BwrI,EAAUhqI,GACnC,GAAIgqI,GAAYA,EAASroH,WAAY,CACnC,MAAMsoH,EAAgB,GACtB,IAAK,IAAIl6K,EAAI,EAAGA,EAAIi6K,EAASroH,WAAW3nD,OAAQjK,IAAK,CACnD,IAAI+6D,EAASk/G,EAASroH,WAAW5xD,IAC5B+6D,EAAOl5D,eAAe,SACvBk5D,EAAOl5D,eAAe,QACxBsM,EAAiB,mBAAoB,qBACrC4sD,EAASz6C,KAAKsL,MAAMtL,KAAKwL,UAAUivC,IACnCA,EAAO5O,KAAO4O,EAAOtmB,WACdsmB,EAAOtmB,IACdylI,EAActjK,KAAKmkD,IAEnBm/G,EAActjK,KAAKqjK,EAASroH,WAAW5xD,IAG3Ci6K,EAASroH,WAAasoH,EAExB,OAAO,IAAIF,EAAmBC,EAAUhqI,IAE5CrwC,EAAO6uC,kBAAkB7sC,UAAYo4K,EAAmBp4K,UAEpD,wBAAyBhC,EAAO6uC,mBAClC/tC,OAAOC,eAAef,EAAO6uC,kBAAmB,sBAAuB,CACrE5tC,IAAG,IACMm5K,EAAmBG,sBAM3B,SAASC,GAA0Bx6K,GAElB,iBAAXA,GAAuBA,EAAOi4K,eACrC,aAAcj4K,EAAOi4K,cAAcj2K,aACjC,gBAAiBhC,EAAOi4K,cAAcj2K,YAC1ClB,OAAOC,eAAef,EAAOi4K,cAAcj2K,UAAW,cAAe,CACnEf,MACE,MAAO,CAACi+C,SAAUprC,KAAKorC,aAMxB,SAASu7H,GAAsBz6K,GACpC,MAAMm5K,EAAkBn5K,EAAO6uC,kBAAkB7sC,UAAU2jF,YAC3D3lF,EAAO6uC,kBAAkB7sC,UAAU2jF,YACjC,SAAqBm2D,GACnB,GAAIA,EAAc,MACgC,IAArCA,EAAapT,sBAEtBoT,EAAapT,sBACToT,EAAapT,qBAEnB,MAAMgyC,EAAmB5mK,KAAK+qF,kBAAkB95D,KAAK00C,GACf,UAApCA,EAAYv6B,SAAS9M,MAAMlF,OACY,IAArC4uG,EAAapT,qBAAiCgyC,EACb,aAA/BA,EAAiBj3I,UACfi3I,EAAiBC,aACnBD,EAAiBC,aAAa,YAE9BD,EAAiBj3I,UAAY,WAES,aAA/Bi3I,EAAiBj3I,YACtBi3I,EAAiBC,aACnBD,EAAiBC,aAAa,YAE9BD,EAAiBj3I,UAAY,aAGa,IAArCq4G,EAAapT,qBACnBgyC,GACH5mK,KAAK8qF,eAAe,cAG0B,IAArCk9C,EAAanT,sBAEtBmT,EAAanT,sBACTmT,EAAanT,qBAEnB,MAAMiyC,EAAmB9mK,KAAK+qF,kBAAkB95D,KAAK00C,GACf,UAApCA,EAAYv6B,SAAS9M,MAAMlF,OACY,IAArC4uG,EAAanT,qBAAiCiyC,EACb,aAA/BA,EAAiBn3I,UACfm3I,EAAiBD,aACnBC,EAAiBD,aAAa,YAE9BC,EAAiBn3I,UAAY,WAES,aAA/Bm3I,EAAiBn3I,YACtBm3I,EAAiBD,aACnBC,EAAiBD,aAAa,YAE9BC,EAAiBn3I,UAAY,aAGa,IAArCq4G,EAAanT,qBACnBiyC,GACH9mK,KAAK8qF,eAAe,SAGxB,OAAOu6E,EAAgBzjI,MAAM5hC,KAAMmB,Y,wBCrUlC,SAAS4lK,GAAoB76K,GAGlC,IAAKA,EAAO0kF,iBAAoB1kF,EAAO0kF,iBAAmB,eACtD1kF,EAAO0kF,gBAAgB1iF,UACzB,OAGF,MAAM84K,EAAwB96K,EAAO0kF,gBACrC1kF,EAAO0kF,gBAAkB,SAAyBzuC,GAQhD,GANoB,iBAATA,GAAqBA,EAAK1T,WACA,IAAjC0T,EAAK1T,UAAU7qB,QAAQ,SACzBu+B,EAAOv1B,KAAKsL,MAAMtL,KAAKwL,UAAU+pB,KAC5B1T,UAAY0T,EAAK1T,UAAUrZ,OAAO,IAGrC+sB,EAAK1T,WAAa0T,EAAK1T,UAAUl4B,OAAQ,CAE3C,MAAM0wK,EAAkB,IAAID,EAAsB7kI,GAC5C+kI,EAAkBroG,KAASY,eAAet9B,EAAK1T,WAC/C04I,EAAqBn6K,OAAOgoG,OAAOiyE,EACrCC,GAWJ,OARAC,EAAmBrhC,OAAS,WAC1B,MAAO,CACLr3G,UAAW04I,EAAmB14I,UAC9ByhD,OAAQi3F,EAAmBj3F,OAC3BT,cAAe03F,EAAmB13F,cAClC3P,iBAAkBqnG,EAAmBrnG,mBAGlCqnG,EAET,OAAO,IAAIH,EAAsB7kI,IAEnCj2C,EAAO0kF,gBAAgB1iF,UAAY84K,EAAsB94K,UAIzDuM,EAA8BvO,EAAQ,eAAgBmN,IAChDA,EAAEo1B,WACJzhC,OAAOC,eAAeoM,EAAG,YAAa,CACpC9L,MAAO,IAAIrB,EAAO0kF,gBAAgBv3E,EAAEo1B,WACpC6rF,SAAU,UAGPjhH,IAIJ,SAAS+tK,GAAmBl7K,GACjC,IAAKA,EAAO6uC,kBACV,OAEF,MAAM+iI,EAAiBrjK,EAAoBvO,GAErC,SAAUA,EAAO6uC,kBAAkB7sC,WACvClB,OAAOC,eAAef,EAAO6uC,kBAAkB7sC,UAAW,OAAQ,CAChEf,MACE,YAA6B,IAAf6S,KAAKqnK,MAAwB,KAAOrnK,KAAKqnK,SAK7D,MAAMC,EAAoB,SAASxkG,GACjC,IAAKA,IAAgBA,EAAY9wC,IAC/B,OAAO,EAET,MAAMqtC,EAAWR,KAASK,cAAc4D,EAAY9wC,KAEpD,OADAqtC,EAAS3xC,QACF2xC,EAASsjB,KAAKrhB,IACnB,MAAM7vC,EAAQotC,KAASrxC,WAAW8zC,GAClC,OAAO7vC,GAAwB,gBAAfA,EAAM2H,OACqB,IAApC3H,EAAM/oB,SAAS9E,QAAQ,WAI5B2jK,EAA0B,SAASzkG,GAEvC,MAAMxvD,EAAQwvD,EAAY9wC,IAAI1e,MAAM,mCACpC,GAAc,OAAVA,GAAkBA,EAAM/c,OAAS,EACnC,OAAQ,EAEV,MAAMw9C,EAAUz7B,SAAShF,EAAM,GAAI,IAEnC,OAAOygC,GAAYA,GAAW,EAAIA,GAG9ByzH,EAA2B,SAASC,GAKxC,IAAIC,EAAwB,MAwB5B,MAvB+B,YAA3B5J,EAAeh+I,UAKb4nJ,EAJA5J,EAAe/pH,QAAU,IACF,IAArB0zH,EAGsB,MAIA,WAEjB3J,EAAe/pH,QAAU,GAML,KAA3B+pH,EAAe/pH,QAAiB,MAAQ,MAGlB,YAGrB2zH,GAGHC,EAAoB,SAAS7kG,EAAa2kG,GAG9C,IAAIziG,EAAiB,MAKU,YAA3B84F,EAAeh+I,SACgB,KAA3Bg+I,EAAe/pH,UACrBixB,EAAiB,OAGnB,MAAM1xD,EAAQurD,KAASU,YAAYuD,EAAY9wC,IAC7C,uBAUF,OATI1e,EAAM/c,OAAS,EACjByuE,EAAiB1sD,SAAShF,EAAM,GAAG8B,OAAO,IAAK,IACX,YAA3B0oJ,EAAeh+I,UACO,IAArB2nJ,IAIVziG,EAAiB,YAEZA,GAGHk7F,EACFh0K,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACvC5pF,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACjC,WAKE,GAJA91E,KAAKqnK,MAAQ,KAIkB,WAA3BvJ,EAAeh+I,SAAwBg+I,EAAe/pH,SAAW,GAAI,CACvE,MAAM,aAACxN,GAAgBvmC,KAAKukI,mBACP,WAAjBh+F,GACFv5C,OAAOC,eAAe+S,KAAM,OAAQ,CAClC7S,MACE,YAA6B,IAAf6S,KAAKqnK,MAAwB,KAAOrnK,KAAKqnK,OAEzDn6K,YAAY,EACZmtH,cAAc,IAKpB,GAAIitD,EAAkBnmK,UAAU,IAAK,CAEnC,MAAMivB,EAAYm3I,EAAwBpmK,UAAU,IAG9CymK,EAAaJ,EAAyBp3I,GAGtCy3I,EAAYF,EAAkBxmK,UAAU,GAAIivB,GAGlD,IAAI40C,EAEFA,EADiB,IAAf4iG,GAAkC,IAAdC,EACLtuJ,OAAOuuJ,kBACA,IAAfF,GAAkC,IAAdC,EACZz8J,KAAKgpB,IAAIwzI,EAAYC,GAErBz8J,KAAKqP,IAAImtJ,EAAYC,GAKxC,MAAMh1H,EAAO,GACb7lD,OAAOC,eAAe4lD,EAAM,iBAAkB,CAC5C1lD,IAAG,IACM63E,IAGXhlE,KAAKqnK,MAAQx0H,EAGf,OAAOqtH,EAAyBt+H,MAAM5hC,KAAMmB,YAI3C,SAAS4mK,GAAuB77K,GACrC,IAAMA,EAAO6uC,qBACT,sBAAuB7uC,EAAO6uC,kBAAkB7sC,WAClD,OAOF,SAAS85K,EAAWC,EAAI3iH,GACtB,MAAM4iH,EAAsBD,EAAG56J,KAC/B46J,EAAG56J,KAAO,WACR,MAAM1T,EAAOwH,UAAU,GACjB5K,EAASoD,EAAKpD,QAAUoD,EAAKspB,MAAQtpB,EAAKs1D,WAChD,GAAsB,SAAlBg5G,EAAGjvJ,YACHssC,EAAGzS,MAAQt8C,EAAS+uD,EAAGzS,KAAKmyB,eAC9B,MAAM,IAAInuE,UAAU,4CAClByuD,EAAGzS,KAAKmyB,eAAiB,WAE7B,OAAOkjG,EAAoBtmI,MAAMqmI,EAAI9mK,YAGzC,MAAMgnK,EACJj8K,EAAO6uC,kBAAkB7sC,UAAU6wI,kBACrC7yI,EAAO6uC,kBAAkB7sC,UAAU6wI,kBACjC,WACE,MAAMqpC,EAAcD,EAAsBvmI,MAAM5hC,KAAMmB,WAEtD,OADA6mK,EAAWI,EAAapoK,MACjBooK,GAEX3tK,EAA8BvO,EAAQ,cAAemN,IACnD2uK,EAAW3uK,EAAE6mI,QAAS7mI,EAAE8xC,QACjB9xC,IAYJ,SAASgvK,GAAoBn8K,GAClC,IAAKA,EAAO6uC,mBACR,oBAAqB7uC,EAAO6uC,kBAAkB7sC,UAChD,OAEF,MAAMua,EAAQvc,EAAO6uC,kBAAkB7sC,UACvClB,OAAOC,eAAewb,EAAO,kBAAmB,CAC9Ctb,MACE,MAAO,CACLspI,UAAW,YACXgR,SAAU,cACVznI,KAAKouE,qBAAuBpuE,KAAKouE,oBAErClhF,YAAY,EACZmtH,cAAc,IAEhBrtH,OAAOC,eAAewb,EAAO,0BAA2B,CACtDtb,MACE,OAAO6S,KAAKsoK,0BAA4B,MAE1ClnJ,IAAIs5G,GACE16H,KAAKsoK,2BACPtoK,KAAKivC,oBAAoB,wBACrBjvC,KAAKsoK,iCACFtoK,KAAKsoK,0BAEV5tC,GACF16H,KAAKq8B,iBAAiB,wBAClBr8B,KAAKsoK,yBAA2B5tC,IAGxCxtI,YAAY,EACZmtH,cAAc,IAGhB,CAAC,sBAAuB,wBAAwBjrG,QAASs/E,IACvD,MAAM65E,EAAa9/J,EAAMimF,GACzBjmF,EAAMimF,GAAU,WAcd,OAbK1uF,KAAKwoK,6BACRxoK,KAAKwoK,2BAA6BnvK,IAChC,MAAMisD,EAAKjsD,EAAE8xC,OACb,GAAIma,EAAGmjH,uBAAyBnjH,EAAG4oB,gBAAiB,CAClD5oB,EAAGmjH,qBAAuBnjH,EAAG4oB,gBAC7B,MAAMw6F,EAAW,IAAIlmC,MAAM,wBAAyBnpI,GACpDisD,EAAG88E,cAAcsmC,GAEnB,OAAOrvK,GAET2G,KAAKq8B,iBAAiB,2BACpBr8B,KAAKwoK,6BAEFD,EAAW3mI,MAAM5hC,KAAMmB,cAK7B,SAASwnK,GAAuBz8K,GAErC,IAAKA,EAAO6uC,kBACV,OAEF,MAAM+iI,EAAiBrjK,EAAoBvO,GAC3C,GAA+B,WAA3B4xK,EAAeh+I,SAAwBg+I,EAAe/pH,SAAW,GACnE,OAEF,MAAM60H,EAAY18K,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACrD5pF,EAAO6uC,kBAAkB7sC,UAAU4nF,qBACnC,SAA8BzmD,GAM5B,OALIA,GAAQA,EAAK2C,MAAuD,IAAhD3C,EAAK2C,IAAIpuB,QAAQ,4BACvCyrB,EAAK2C,IAAM3C,EAAK2C,IAAIjvB,MAAM,MAAM2tB,OAAQlsB,GACf,yBAAhBA,EAAKq6C,QACX17C,KAAK,OAEHylK,EAAUhnI,MAAM5hC,KAAMmB,YCnUjC,MAAM0nK,GCIC,UAAwB,OAAC38K,GAAU,GAAIib,EAAU,CACtD2hK,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,YAAY,IAGZ,MAAM5W,EAAU53J,EACVqjK,EAAiBrjK,EAAoBvO,GAErC28K,EAAU,CACd/K,iBACAoL,aACAtN,eAAgBnhK,EAChB6hK,WAAY7hK,EACZ+hK,gBAAiB/hK,GAInB,OAAQqjK,EAAeh+I,SACrB,IAAK,SACH,IAAKqpJ,IAAeA,IACfhiK,EAAQ2hK,WAEX,OADAzW,EAAQ,wDACDwW,EAETxW,EAAQ,+BAERwW,EAAQO,YAAcD,EAEtBA,EAA4Bj9K,GAC5Bi9K,EAA2Bj9K,GAC3Bi9K,EAA8Bj9K,GAC9Bi9K,EAAuBj9K,GACvBi9K,EAAmCj9K,GACnCi9K,EAAkCj9K,GAClCi9K,EAAwBj9K,GACxBi9K,EAAsCj9K,GACtCi9K,EAAgCj9K,GAEhCg9K,GAA+Bh9K,GAC/Bg9K,GAA+Bh9K,GAC/Bg9K,GAA8Bh9K,GAC9Bg9K,GAAkCh9K,GAClCg9K,GAAkCh9K,GAClC,MACF,IAAK,UACH,IAAKm9K,IAAgBA,IAChBliK,EAAQ4hK,YAEX,OADA1W,EAAQ,yDACDwW,EAETxW,EAAQ,gCAERwW,EAAQO,YAAcC,EAEtBA,EAA6Bn9K,GAC7Bm9K,EAA+Bn9K,GAC/Bm9K,EAAwBn9K,GACxBm9K,EAA6Bn9K,GAC7Bm9K,EAA+Bn9K,GAC/Bm9K,EAAiCn9K,GACjCm9K,EAA+Bn9K,GAC/Bm9K,EAA+Bn9K,GAC/Bm9K,EAA4Bn9K,GAC5Bm9K,EAA6Bn9K,GAE7Bg9K,GAA+Bh9K,GAC/Bg9K,GAA+Bh9K,GAC/Bg9K,GAA8Bh9K,GAC9Bg9K,GAAkCh9K,GAClC,MACF,IAAK,OACH,IAAKo9K,IAAaA,IAAgCniK,EAAQ6hK,SAExD,OADA3W,EAAQ,yDACDwW,EAETxW,EAAQ,6BAERwW,EAAQO,YAAcE,EAEtBA,EAA0Bp9K,GAC1Bo9K,EAA6Bp9K,GAC7Bo9K,EAA4Bp9K,GAC5Bo9K,EAA0Bp9K,GAI1Bg9K,GAA8Bh9K,GAC9Bg9K,GAAkCh9K,GAClC,MACF,IAAK,SACH,IAAKq9K,IAAepiK,EAAQ8hK,WAE1B,OADA5W,EAAQ,wDACDwW,EAETxW,EAAQ,+BAERwW,EAAQO,YAAcG,EAEtBA,GAAgCr9K,GAChCq9K,GAAiCr9K,GACjCq9K,EAA4Br9K,GAC5Bq9K,EAA+Br9K,GAC/Bq9K,EAAgCr9K,GAChCq9K,GAAqCr9K,GACrCq9K,EAA4Br9K,GAE5Bg9K,GAA+Bh9K,GAC/Bg9K,GAA8Bh9K,GAC9Bg9K,GAAkCh9K,GAClCg9K,GAAkCh9K,GAClC,MACF,QACEmmK,EAAQ,wBAIZ,OAAOwW,ED1HOW,CAAe,CAACt9K,gBACjB28K","file":"lib-jitsi-meet.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"JitsiMeetJS\"] = factory();\n\telse\n\t\troot[\"JitsiMeetJS\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 147);\n","const XMPPEvents = {\n /**\n * Indicates error while adding ice candidate.\n */\n ADD_ICE_CANDIDATE_FAILED: 'xmpp.add_ice_candidate_failed',\n\n // Designates an event indicating that the focus has asked us to mute our\n // audio.\n AUDIO_MUTED_BY_FOCUS: 'xmpp.audio_muted_by_focus',\n AUTHENTICATION_REQUIRED: 'xmpp.authentication_required',\n BRIDGE_DOWN: 'xmpp.bridge_down',\n\n /**\n * Triggered when 'session-accept' is received from the responder.\n */\n CALL_ACCEPTED: 'xmpp.callaccepted.jingle',\n\n // Designates an event indicating that an offer (e.g. Jingle\n // session-initiate) was received.\n CALL_INCOMING: 'xmpp.callincoming.jingle',\n\n // Triggered when Jicofo kills our media session, this can happen while\n // we're still in the MUC, when it decides to terminate the media session.\n // For example when the session is idle for too long, because we're the only\n // person in the conference room.\n CALL_ENDED: 'xmpp.callended.jingle',\n CHAT_ERROR_RECEIVED: 'xmpp.chat_error_received',\n\n // The conference properties (as advertised by jicofo) have changed\n CONFERENCE_PROPERTIES_CHANGED: 'xmpp.conference_properties_changed',\n\n /**\n * This event is triggered when the ICE connects for the first time.\n */\n CONNECTION_ESTABLISHED: 'xmpp.connection.connected',\n\n // Designates an event indicating that the connection to the XMPP server\n // failed.\n CONNECTION_FAILED: 'xmpp.connection.failed',\n\n // Designates an event indicating that the media (ICE) connection was\n // interrupted. This should go to the RTC module.\n CONNECTION_INTERRUPTED: 'xmpp.connection.interrupted',\n\n // Designates an event indicating that the media (ICE) connection was\n // restored. This should go to the RTC module.\n CONNECTION_RESTORED: 'xmpp.connection.restored',\n\n // Designates an event indicating that the media (ICE) connection failed.\n // This should go to the RTC module.\n CONNECTION_ICE_FAILED: 'xmpp.connection.ice.failed',\n\n /**\n * Designates an event indicating connection status changes.\n */\n CONNECTION_STATUS_CHANGED: 'xmpp.connection.status.changed',\n\n // Designates an event indicating that the display name of a participant\n // has changed.\n DISPLAY_NAME_CHANGED: 'xmpp.display_name_changed',\n\n /**\n * Chat room instance have been added to Strophe.emuc plugin.\n */\n EMUC_ROOM_ADDED: 'xmpp.emuc_room_added',\n\n /**\n * Chat room instance have been removed from Strophe.emuc plugin.\n */\n EMUC_ROOM_REMOVED: 'xmpp.emuc_room_removed',\n ETHERPAD: 'xmpp.etherpad',\n FOCUS_DISCONNECTED: 'xmpp.focus_disconnected',\n FOCUS_LEFT: 'xmpp.focus_left',\n GRACEFUL_SHUTDOWN: 'xmpp.graceful_shutdown',\n\n /**\n * Event fired when 'transport-replace' Jingle message has been received,\n * before the new offer is set on the PeerConnection.\n */\n ICE_RESTARTING: 'rtc.ice_restarting',\n\n /**\n * Event fired after the 'transport-replace' message has been processed\n * and the new offer has been set successfully.\n */\n ICE_RESTART_SUCCESS: 'rtc.ice_restart_success',\n\n /**\n * Designates an event indicating that we were kicked from the XMPP MUC.\n * @param {boolean} isSelfPresence - whether it is for local participant\n * or another participant.\n * @param {string} actorJid - the jid of the participant who was initator\n * of the kick.\n * @param {?string} participantJid - when it is not a kick for local participant,\n * this is the jid of the participant which was kicked.\n */\n KICKED: 'xmpp.kicked',\n\n // Designates an event indicating that our role in the XMPP MUC has changed.\n LOCAL_ROLE_CHANGED: 'xmpp.localrole_changed',\n\n /**\n * Event fired when the unique meeting id is set.\n */\n MEETING_ID_SET: 'xmpp.meeting_id_set',\n\n // Designates an event indicating that an XMPP message in the MUC was\n // received.\n MESSAGE_RECEIVED: 'xmpp.message_received',\n\n // Designates an event indicating that an invite XMPP message in the MUC was\n // received.\n INVITE_MESSAGE_RECEIVED: 'xmpp.invite_message_received',\n\n // Designates an event indicating that a private XMPP message in the MUC was\n // received.\n PRIVATE_MESSAGE_RECEIVED: 'xmpp.private_message_received',\n\n // Designates an event indicating that a bot participant type had changed\n MUC_MEMBER_BOT_TYPE_CHANGED: 'xmpp.muc_member_bot_type_changed',\n\n // Designates an event indicating that the XMPP MUC was destroyed.\n MUC_DESTROYED: 'xmpp.muc_destroyed',\n\n // Designates an event indicating that we have joined the XMPP MUC.\n MUC_JOINED: 'xmpp.muc_joined',\n\n // Designates an event indicating that a participant joined the XMPP MUC.\n MUC_MEMBER_JOINED: 'xmpp.muc_member_joined',\n\n // Designates an event indicating that a participant left the XMPP MUC.\n MUC_MEMBER_LEFT: 'xmpp.muc_member_left',\n\n // Designates an event indicating that a participant joined the lobby XMPP MUC.\n MUC_LOBBY_MEMBER_JOINED: 'xmpp.muc_lobby_member_joined',\n\n // Designates an event indicating that a participant in the lobby XMPP MUC has been updated\n MUC_LOBBY_MEMBER_UPDATED: 'xmpp.muc_lobby_member_updated',\n\n // Designates an event indicating that a participant left the XMPP MUC.\n MUC_LOBBY_MEMBER_LEFT: 'xmpp.muc_lobby_member_left',\n\n // Designates an event indicating that a participant was denied access to a conference from the lobby XMPP MUC.\n MUC_DENIED_ACCESS: 'xmpp.muc_denied access',\n\n // Designates an event indicating that local participant left the muc\n MUC_LEFT: 'xmpp.muc_left',\n\n // Designates an event indicating that the MUC role of a participant has\n // changed.\n MUC_ROLE_CHANGED: 'xmpp.muc_role_changed',\n\n // Designates an event indicating that the MUC has been locked or unlocked.\n MUC_LOCK_CHANGED: 'xmpp.muc_lock_changed',\n\n // Designates an event indicating that the MUC members only config has changed.\n MUC_MEMBERS_ONLY_CHANGED: 'xmpp.muc_members_only_changed',\n\n // Designates an event indicating that a participant in the XMPP MUC has\n // advertised that they have audio muted (or unmuted).\n PARTICIPANT_AUDIO_MUTED: 'xmpp.audio_muted',\n\n // Designates an event indicating that a participant in the XMPP MUC has\n // advertised that they have video muted (or unmuted).\n PARTICIPANT_VIDEO_MUTED: 'xmpp.video_muted',\n\n // Designates an event indicating that the video type (e.g. 'camera' or\n // 'screen') for a participant has changed.\n // Note: currently this event fires every time we receive presence from\n // someone (regardless of whether or not the \"video type\" changed).\n PARTICIPANT_VIDEO_TYPE_CHANGED: 'xmpp.video_type',\n\n /**\n * Indicates that the features of the participant has been changed.\n */\n PARTCIPANT_FEATURES_CHANGED: 'xmpp.partcipant_features_changed',\n PASSWORD_REQUIRED: 'xmpp.password_required',\n\n /**\n * Indicates that phone number changed.\n */\n PHONE_NUMBER_CHANGED: 'conference.phoneNumberChanged',\n PRESENCE_RECEIVED: 'xmpp.presence_received',\n PRESENCE_STATUS: 'xmpp.presence_status',\n PROMPT_FOR_LOGIN: 'xmpp.prompt_for_login',\n\n // xmpp is connected and obtained user media\n READY_TO_JOIN: 'xmpp.ready_to_join',\n\n /**\n * Indicates that recording state changed.\n */\n RECORDER_STATE_CHANGED: 'xmpp.recorderStateChanged',\n\n // Designates an event indicating that we received statistics from a\n // participant in the MUC.\n REMOTE_STATS: 'xmpp.remote_stats',\n\n /**\n * Indicates that the offer / answer renegotiation has failed.\n */\n RENEGOTIATION_FAILED: 'xmpp.renegotiation_failed',\n RESERVATION_ERROR: 'xmpp.room_reservation_error',\n ROOM_CONNECT_ERROR: 'xmpp.room_connect_error',\n ROOM_CONNECT_NOT_ALLOWED_ERROR: 'xmpp.room_connect_error.not_allowed',\n ROOM_JOIN_ERROR: 'xmpp.room_join_error',\n ROOM_CONNECT_MEMBERS_ONLY_ERROR: 'xmpp.room_connect_error.members_only',\n\n /**\n * Indicates that max users limit has been reached.\n */\n ROOM_MAX_USERS_ERROR: 'xmpp.room_max_users_error',\n\n // Designates an event indicating that we sent an XMPP message to the MUC.\n SENDING_CHAT_MESSAGE: 'xmpp.sending_chat_message',\n\n // Designates an event indicating that we sent a private XMPP message to\n // a specific user of the muc.\n SENDING_PRIVATE_CHAT_MESSAGE: 'xmpp.sending_private_chat_message',\n\n /**\n * Event fired when we do not get our 'session-accept' acknowledged by\n * Jicofo. It most likely means that there is serious problem with our\n * connection or XMPP server and we should reload the conference.\n *\n * We have seen that to happen in BOSH requests race condition when the BOSH\n * request table containing the 'session-accept' was discarded by Prosody.\n * Jicofo does send the RESULT immediately without any condition, so missing\n * packets means that most likely it has never seen our IQ.\n */\n SESSION_ACCEPT_TIMEOUT: 'xmpp.session_accept_timeout',\n\n /**\n * Event fired when speaker stats update message is received.\n */\n SPEAKER_STATS_RECEIVED: 'xmpp.speaker_stats_received',\n\n /**\n * Event fired when conference creation timestamp is received.\n */\n CONFERENCE_TIMESTAMP_RECEIVED: 'xmpp.conference_timestamp_received',\n\n // Designates an event indicating that we should join the conference with\n // audio and/or video muted.\n START_MUTED_FROM_FOCUS: 'xmpp.start_muted_from_focus',\n\n // Designates an event indicating that the subject of the XMPP MUC has\n // changed.\n SUBJECT_CHANGED: 'xmpp.subject_changed',\n\n // FIXME: how does it belong to XMPP ? - it's detected by the PeerConnection\n // suspending detected\n SUSPEND_DETECTED: 'xmpp.suspend_detected',\n\n /**\n * Notifies for transcription status changes. The event provides the\n * following parameters to its listeners:\n *\n * @param {String} status - The new status.\n */\n TRANSCRIPTION_STATUS_CHANGED: 'xmpp.transcription_status_changed',\n\n /**\n * Event fired when 'transport-info' with new ICE candidates is received.\n */\n TRANSPORT_INFO: 'xmpp.transportinfo.jingle',\n\n /**\n * Indicates that video SIP GW state changed.\n *\n * @param {VideoSIPGWConstants} status - Any of the following statuses:\n * STATUS_BUSY, STATUS_AVAILABLE or STATUS_UNDEFINED.\n */\n VIDEO_SIP_GW_AVAILABILITY_CHANGED: 'xmpp.videoSIPGWAvailabilityChanged',\n\n /**\n * Indicates that video SIP GW Session state changed.\n * The statuses are any of the following statuses:\n * STATE_ON, STATE_OFF, STATE_PENDING, STATE_RETRYING, STATE_FAILED.\n * {@see VideoSIPGWConstants}\n *\n * @param {options} event - {address, oldState, newState, displayName}.\n */\n VIDEO_SIP_GW_SESSION_STATE_CHANGED:\n 'xmpp.videoSIPGWSessionStateChanged',\n\n // Designates an event indicating that the local ICE connection state has\n // changed.\n ICE_CONNECTION_STATE_CHANGED: 'xmpp.ice_connection_state_changed',\n\n /**\n * Event which is emitted when the body in an XMPP message in the MUC\n * contains JSON\n */\n JSON_MESSAGE_RECEIVED: 'xmmp.json_message_received'\n};\n\nmodule.exports = XMPPEvents;\n","/**\n * The events for the conference.\n */\n\n/**\n * Event indicates that the current conference audio input switched between audio\n * input states,i.e. with or without audio input.\n */\nexport const AUDIO_INPUT_STATE_CHANGE = 'conference.audio_input_state_changed';\n\n/**\n * Indicates that authentication status changed.\n */\nexport const AUTH_STATUS_CHANGED = 'conference.auth_status_changed';\n\n/**\n * Fired just before the statistics module is disposed and it's the last chance\n * to submit some logs to the statistics service (ex. CallStats if enabled),\n * before it's disconnected.\n */\nexport const BEFORE_STATISTICS_DISPOSED = 'conference.beforeStatisticsDisposed';\n\n/**\n * Indicates that an error occured.\n */\nexport const CONFERENCE_ERROR = 'conference.error';\n\n/**\n * Indicates that conference failed.\n */\nexport const CONFERENCE_FAILED = 'conference.failed';\n\n/**\n * Indicates that conference has been joined. The event does NOT provide any\n * parameters to its listeners.\n */\nexport const CONFERENCE_JOINED = 'conference.joined';\n\n/**\n * Indicates that conference has been left.\n */\nexport const CONFERENCE_LEFT = 'conference.left';\n\n/**\n * Indicates that the connection to the conference has been established\n * XXX This is currently fired whenVthe *ICE* connection enters 'connected'\n * state for the first time.\n */\nexport const CONNECTION_ESTABLISHED = 'conference.connectionEstablished';\n\n/**\n * Indicates that the connection to the conference has been interrupted for some\n * reason.\n * XXX This is currently fired when the *ICE* connection is interrupted.\n */\nexport const CONNECTION_INTERRUPTED = 'conference.connectionInterrupted';\n\n/**\n * Indicates that the connection to the conference has been restored.\n * XXX This is currently fired when the *ICE* connection is restored.\n */\nexport const CONNECTION_RESTORED = 'conference.connectionRestored';\n\n/**\n * A connection to the video bridge's data channel has been established.\n */\nexport const DATA_CHANNEL_OPENED = 'conference.dataChannelOpened';\n\n/**\n * A user has changed it display name\n */\nexport const DISPLAY_NAME_CHANGED = 'conference.displayNameChanged';\n\n/**\n * The dominant speaker was changed.\n */\nexport const DOMINANT_SPEAKER_CHANGED = 'conference.dominantSpeaker';\n\n/**\n * UTC conference timestamp when first participant joined.\n */\nexport const CONFERENCE_CREATED_TIMESTAMP = 'conference.createdTimestamp';\n\n/**\n * Indicates that DTMF support changed.\n */\nexport const DTMF_SUPPORT_CHANGED = 'conference.dtmfSupportChanged';\n\n/**\n * Indicates that a message from another participant is received on data\n * channel.\n */\nexport const ENDPOINT_MESSAGE_RECEIVED = 'conference.endpoint_message_received';\n\n/**\n * NOTE This is lib-jitsi-meet internal event and can be removed at any time !\n *\n * Event emitted when conference transits, between one to one and multiparty JVB\n * conference. If the conference switches to P2P it's neither one to one nor\n * a multiparty JVB conference, but P2P (the status argument of this event will\n * be false).\n *\n * The first argument is a boolean which carries the previous value and\n * the seconds argument is a boolean with the new status. The event is emitted\n * only if the previous and the new values are different.\n *\n * @type {string}\n */\nexport const JVB121_STATUS = 'conference.jvb121Status';\n\n/**\n * You are kicked from the conference.\n * @param {JitsiParticipant} the participant that initiated the kick.\n */\nexport const KICKED = 'conference.kicked';\n\n/**\n * Participant was kicked from the conference.\n * @param {JitsiParticipant} the participant that initiated the kick.\n * @param {JitsiParticipant} the participant that was kicked.\n */\nexport const PARTICIPANT_KICKED = 'conference.participant_kicked';\n\n/**\n * The Last N set is changed.\n *\n * @param {Array|null} leavingEndpointIds the ids of all the endpoints\n * which are leaving Last N\n * @param {Array|null} enteringEndpointIds the ids of all the endpoints\n * which are entering Last N\n */\nexport const LAST_N_ENDPOINTS_CHANGED = 'conference.lastNEndpointsChanged';\n\n/**\n * Indicates that the room has been locked or unlocked.\n */\nexport const LOCK_STATE_CHANGED = 'conference.lock_state_changed';\n\n/**\n * Indicates that the region of the media server (jitsi-videobridge) that we\n * are connected to changed (or was initially set).\n * @type {string} the region.\n */\nexport const SERVER_REGION_CHANGED = 'conference.server_region_changed';\n\n/**\n * An event(library-private) fired when a new media session is added to the conference.\n * @type {string}\n * @private\n */\nexport const _MEDIA_SESSION_STARTED = 'conference.media_session.started';\n\n/**\n * An event(library-private) fired when the conference switches the currently active media session.\n * @type {string}\n * @private\n */\nexport const _MEDIA_SESSION_ACTIVE_CHANGED = 'conference.media_session.active_changed';\n\n/**\n * Indicates that the conference had changed to members only enabled/disabled.\n * The first argument of this event is a boolean which when set to\n * true means that the conference is running in members only mode.\n * You may need to use Lobby if supported to ask for permissions to enter the conference.\n */\nexport const MEMBERS_ONLY_CHANGED = 'conference.membersOnlyChanged';\n\n/**\n * New text message was received.\n */\nexport const MESSAGE_RECEIVED = 'conference.messageReceived';\n\n/**\n * Event indicates that the current selected input device has no signal\n */\nexport const NO_AUDIO_INPUT = 'conference.no_audio_input';\n\n/**\n * Event indicates that the current microphone used by the conference is noisy.\n */\nexport const NOISY_MIC = 'conference.noisy_mic';\n\n/**\n * New private text message was received.\n */\nexport const PRIVATE_MESSAGE_RECEIVED = 'conference.privateMessageReceived';\n\n/**\n * Event fired when JVB sends notification about interrupted/restored user's\n * ICE connection status or we detect local problem with the video track.\n * First argument is the ID of the participant and\n * the seconds is a string indicating if the connection is currently\n * - active - the connection is active\n * - inactive - the connection is inactive, was intentionally interrupted by\n * the bridge\n * - interrupted - a network problem occurred\n * - restoring - the connection was inactive and is restoring now\n *\n * The current status value can be obtained by calling\n * JitsiParticipant.getConnectionStatus().\n */\nexport const PARTICIPANT_CONN_STATUS_CHANGED\n = 'conference.participant_conn_status_changed';\n\n/**\n * Indicates that the features of the participant has been changed.\n */\nexport const PARTCIPANT_FEATURES_CHANGED\n = 'conference.partcipant_features_changed';\n\n/**\n * Indicates that a the value of a specific property of a specific participant\n * has changed.\n */\nexport const PARTICIPANT_PROPERTY_CHANGED\n = 'conference.participant_property_changed';\n\n/**\n * Indicates that the conference has switched between JVB and P2P connections.\n * The first argument of this event is a boolean which when set to\n * true means that the conference is running on the P2P connection.\n */\nexport const P2P_STATUS = 'conference.p2pStatus';\n\n/**\n * Indicates that phone number changed.\n */\nexport const PHONE_NUMBER_CHANGED = 'conference.phoneNumberChanged';\n\n/**\n * The conference properties changed.\n * @type {string}\n */\nexport const PROPERTIES_CHANGED = 'conference.propertiesChanged';\n\n/**\n * Indicates that recording state changed.\n */\nexport const RECORDER_STATE_CHANGED = 'conference.recorderStateChanged';\n\n/**\n * Indicates that video SIP GW state changed.\n * @param {VideoSIPGWConstants} status.\n */\nexport const VIDEO_SIP_GW_AVAILABILITY_CHANGED\n = 'conference.videoSIPGWAvailabilityChanged';\n\n/**\n * Indicates that video SIP GW Session state changed.\n * @param {options} event - {\n * {string} address,\n * {VideoSIPGWConstants} oldState,\n * {VideoSIPGWConstants} newState,\n * {string} displayName}\n * }.\n */\nexport const VIDEO_SIP_GW_SESSION_STATE_CHANGED\n = 'conference.videoSIPGWSessionStateChanged';\n\n/**\n * Indicates that start muted settings changed.\n */\nexport const START_MUTED_POLICY_CHANGED\n = 'conference.start_muted_policy_changed';\n\n/**\n * Indicates that the local user has started muted.\n */\nexport const STARTED_MUTED = 'conference.started_muted';\n\n/**\n * Indicates that subject of the conference has changed.\n */\nexport const SUBJECT_CHANGED = 'conference.subjectChanged';\n\n/**\n * Indicates that DTMF support changed.\n */\nexport const SUSPEND_DETECTED = 'conference.suspendDetected';\n\n/**\n * Event indicates that local user is talking while he muted himself\n */\nexport const TALK_WHILE_MUTED = 'conference.talk_while_muted';\n\n/**\n * A new media track was added to the conference. The event provides the\n * following parameters to its listeners:\n *\n * @param {JitsiTrack} track the added JitsiTrack\n */\nexport const TRACK_ADDED = 'conference.trackAdded';\n\n/**\n * Audio levels of a media track ( attached to the conference) was changed.\n */\nexport const TRACK_AUDIO_LEVEL_CHANGED = 'conference.audioLevelsChanged';\n\n/**\n * A media track ( attached to the conference) mute status was changed.\n * @param {JitsiParticipant|null} the participant that initiated the mute\n * if it is a remote mute.\n */\nexport const TRACK_MUTE_CHANGED = 'conference.trackMuteChanged';\n\n/**\n * The media track was removed from the conference. The event provides the\n * following parameters to its listeners:\n *\n * @param {JitsiTrack} track the removed JitsiTrack\n */\nexport const TRACK_REMOVED = 'conference.trackRemoved';\n\n/**\n * Notifies for transcription status changes. The event provides the\n * following parameters to its listeners:\n *\n * @param {String} status - The new status.\n */\nexport const TRANSCRIPTION_STATUS_CHANGED\n = 'conference.transcriptionStatusChanged';\n\n\n/**\n * A new user joined the conference.\n */\nexport const USER_JOINED = 'conference.userJoined';\n\n/**\n * A user has left the conference.\n */\nexport const USER_LEFT = 'conference.userLeft';\n\n/**\n * User role changed.\n */\nexport const USER_ROLE_CHANGED = 'conference.roleChanged';\n\n/**\n * User status changed.\n */\nexport const USER_STATUS_CHANGED = 'conference.statusChanged';\n\n/**\n * Event indicates that the bot participant type changed.\n */\nexport const BOT_TYPE_CHANGED = 'conference.bot_type_changed';\n\n/**\n * A new user joined the lobby room.\n */\nexport const LOBBY_USER_JOINED = 'conference.lobby.userJoined';\n\n/**\n * A user from the lobby room has been update.\n */\nexport const LOBBY_USER_UPDATED = 'conference.lobby.userUpdated';\n\n/**\n * A user left the lobby room.\n */\nexport const LOBBY_USER_LEFT = 'conference.lobby.userLeft';\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.strophe = factory());\n}(this, function () { 'use strict';\n\n var global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n\n /*\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n /*\n * Everything that isn't used by Strophe has been stripped here!\n */\n\n /*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n var safe_add = function safe_add(x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xFFFF;\n };\n /*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\n var bit_rol = function bit_rol(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n };\n /*\n * Convert a string to an array of little-endian words\n */\n\n\n var str2binl = function str2binl(str) {\n if (typeof str !== \"string\") {\n throw new Error(\"str2binl was passed a non-string\");\n }\n\n var bin = [];\n\n for (var i = 0; i < str.length * 8; i += 8) {\n bin[i >> 5] |= (str.charCodeAt(i / 8) & 255) << i % 32;\n }\n\n return bin;\n };\n /*\n * Convert an array of little-endian words to a string\n */\n\n\n var binl2str = function binl2str(bin) {\n var str = \"\";\n\n for (var i = 0; i < bin.length * 32; i += 8) {\n str += String.fromCharCode(bin[i >> 5] >>> i % 32 & 255);\n }\n\n return str;\n };\n /*\n * Convert an array of little-endian words to a hex string.\n */\n\n\n var binl2hex = function binl2hex(binarray) {\n var hex_tab = \"0123456789abcdef\";\n var str = \"\";\n\n for (var i = 0; i < binarray.length * 4; i++) {\n str += hex_tab.charAt(binarray[i >> 2] >> i % 4 * 8 + 4 & 0xF) + hex_tab.charAt(binarray[i >> 2] >> i % 4 * 8 & 0xF);\n }\n\n return str;\n };\n /*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\n var md5_cmn = function md5_cmn(q, a, b, x, s, t) {\n return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);\n };\n\n var md5_ff = function md5_ff(a, b, c, d, x, s, t) {\n return md5_cmn(b & c | ~b & d, a, b, x, s, t);\n };\n\n var md5_gg = function md5_gg(a, b, c, d, x, s, t) {\n return md5_cmn(b & d | c & ~d, a, b, x, s, t);\n };\n\n var md5_hh = function md5_hh(a, b, c, d, x, s, t) {\n return md5_cmn(b ^ c ^ d, a, b, x, s, t);\n };\n\n var md5_ii = function md5_ii(a, b, c, d, x, s, t) {\n return md5_cmn(c ^ (b | ~d), a, b, x, s, t);\n };\n /*\n * Calculate the MD5 of an array of little-endian words, and a bit length\n */\n\n\n var core_md5 = function core_md5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n var olda, oldb, oldc, oldd;\n\n for (var i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);\n d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302);\n a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222);\n c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844);\n d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safe_add(a, olda);\n b = safe_add(b, oldb);\n c = safe_add(c, oldc);\n d = safe_add(d, oldd);\n }\n\n return [a, b, c, d];\n };\n /*\n * These are the functions you'll usually want to call.\n * They take string arguments and return either hex or base-64 encoded\n * strings.\n */\n\n\n var MD5 = {\n hexdigest: function hexdigest(s) {\n return binl2hex(core_md5(str2binl(s), s.length * 8));\n },\n hash: function hash(s) {\n return binl2str(core_md5(str2binl(s), s.length * 8));\n }\n };\n\n /*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\n /* global define */\n\n /* Some functions and variables have been stripped for use with Strophe */\n\n /*\n * Calculate the SHA-1 of an array of big-endian words, and a bit length\n */\n function core_sha1(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << 24 - len % 32;\n x[(len + 64 >> 9 << 4) + 15] = len;\n var w = new Array(80);\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n var e = -1009589776;\n var i, j, t, olda, oldb, oldc, oldd, olde;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n olde = e;\n\n for (j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = x[i + j];\n } else {\n w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n }\n\n t = safe_add$1(safe_add$1(rol(a, 5), sha1_ft(j, b, c, d)), safe_add$1(safe_add$1(e, w[j]), sha1_kt(j)));\n e = d;\n d = c;\n c = rol(b, 30);\n b = a;\n a = t;\n }\n\n a = safe_add$1(a, olda);\n b = safe_add$1(b, oldb);\n c = safe_add$1(c, oldc);\n d = safe_add$1(d, oldd);\n e = safe_add$1(e, olde);\n }\n\n return [a, b, c, d, e];\n }\n /*\n * Perform the appropriate triplet combination function for the current\n * iteration\n */\n\n\n function sha1_ft(t, b, c, d) {\n if (t < 20) {\n return b & c | ~b & d;\n }\n\n if (t < 40) {\n return b ^ c ^ d;\n }\n\n if (t < 60) {\n return b & c | b & d | c & d;\n }\n\n return b ^ c ^ d;\n }\n /*\n * Determine the appropriate additive constant for the current iteration\n */\n\n\n function sha1_kt(t) {\n return t < 20 ? 1518500249 : t < 40 ? 1859775393 : t < 60 ? -1894007588 : -899497514;\n }\n /*\n * Calculate the HMAC-SHA1 of a key and some data\n */\n\n\n function core_hmac_sha1(key, data) {\n var bkey = str2binb(key);\n\n if (bkey.length > 16) {\n bkey = core_sha1(bkey, key.length * 8);\n }\n\n var ipad = new Array(16),\n opad = new Array(16);\n\n for (var i = 0; i < 16; i++) {\n ipad[i] = bkey[i] ^ 0x36363636;\n opad[i] = bkey[i] ^ 0x5C5C5C5C;\n }\n\n var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * 8);\n return core_sha1(opad.concat(hash), 512 + 160);\n }\n /*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\n function safe_add$1(x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xFFFF;\n }\n /*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\n function rol(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n }\n /*\n * Convert an 8-bit or 16-bit string to an array of big-endian words\n * In 8-bit function, characters >255 have their hi-byte silently ignored.\n */\n\n\n function str2binb(str) {\n var bin = [];\n var mask = 255;\n\n for (var i = 0; i < str.length * 8; i += 8) {\n bin[i >> 5] |= (str.charCodeAt(i / 8) & mask) << 24 - i % 32;\n }\n\n return bin;\n }\n /*\n * Convert an array of big-endian words to a base-64 string\n */\n\n\n function binb2b64(binarray) {\n var tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var str = \"\";\n var triplet, j;\n\n for (var i = 0; i < binarray.length * 4; i += 3) {\n triplet = (binarray[i >> 2] >> 8 * (3 - i % 4) & 0xFF) << 16 | (binarray[i + 1 >> 2] >> 8 * (3 - (i + 1) % 4) & 0xFF) << 8 | binarray[i + 2 >> 2] >> 8 * (3 - (i + 2) % 4) & 0xFF;\n\n for (j = 0; j < 4; j++) {\n if (i * 8 + j * 6 > binarray.length * 32) {\n str += \"=\";\n } else {\n str += tab.charAt(triplet >> 6 * (3 - j) & 0x3F);\n }\n }\n }\n\n return str;\n }\n /*\n * Convert an array of big-endian words to a string\n */\n\n\n function binb2str(bin) {\n var str = \"\";\n var mask = 255;\n\n for (var i = 0; i < bin.length * 32; i += 8) {\n str += String.fromCharCode(bin[i >> 5] >>> 24 - i % 32 & mask);\n }\n\n return str;\n }\n /*\n * These are the functions you'll usually want to call\n * They take string arguments and return either hex or base-64 encoded strings\n */\n\n\n var SHA1 = {\n b64_hmac_sha1: function b64_hmac_sha1(key, data) {\n return binb2b64(core_hmac_sha1(key, data));\n },\n b64_sha1: function b64_sha1(s) {\n return binb2b64(core_sha1(str2binb(s), s.length * 8));\n },\n binb2str: binb2str,\n core_hmac_sha1: core_hmac_sha1,\n str_hmac_sha1: function str_hmac_sha1(key, data) {\n return binb2str(core_hmac_sha1(key, data));\n },\n str_sha1: function str_sha1(s) {\n return binb2str(core_sha1(str2binb(s), s.length * 8));\n }\n };\n\n var utils = {\n utf16to8: function utf16to8(str) {\n var i, c;\n var out = \"\";\n var len = str.length;\n\n for (i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n\n if (c >= 0x0000 && c <= 0x007F) {\n out += str.charAt(i);\n } else if (c > 0x07FF) {\n out += String.fromCharCode(0xE0 | c >> 12 & 0x0F);\n out += String.fromCharCode(0x80 | c >> 6 & 0x3F);\n out += String.fromCharCode(0x80 | c >> 0 & 0x3F);\n } else {\n out += String.fromCharCode(0xC0 | c >> 6 & 0x1F);\n out += String.fromCharCode(0x80 | c >> 0 & 0x3F);\n }\n }\n\n return out;\n },\n addCookies: function addCookies(cookies) {\n /* Parameters:\n * (Object) cookies - either a map of cookie names\n * to string values or to maps of cookie values.\n *\n * For example:\n * { \"myCookie\": \"1234\" }\n *\n * or:\n * { \"myCookie\": {\n * \"value\": \"1234\",\n * \"domain\": \".example.org\",\n * \"path\": \"/\",\n * \"expires\": expirationDate\n * }\n * }\n *\n * These values get passed to Strophe.Connection via\n * options.cookies\n */\n cookies = cookies || {};\n\n for (var cookieName in cookies) {\n if (Object.prototype.hasOwnProperty.call(cookies, cookieName)) {\n var expires = '';\n var domain = '';\n var path = '';\n var cookieObj = cookies[cookieName];\n var isObj = _typeof(cookieObj) === \"object\";\n var cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj));\n\n if (isObj) {\n expires = cookieObj.expires ? \";expires=\" + cookieObj.expires : '';\n domain = cookieObj.domain ? \";domain=\" + cookieObj.domain : '';\n path = cookieObj.path ? \";path=\" + cookieObj.path : '';\n }\n\n document.cookie = cookieName + '=' + cookieValue + expires + domain + path;\n }\n }\n }\n };\n\n /** Function: $build\n * Create a Strophe.Builder.\n * This is an alias for 'new Strophe.Builder(name, attrs)'.\n *\n * Parameters:\n * (String) name - The root element name.\n * (Object) attrs - The attributes for the root element in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\n\n function $build(name, attrs) {\n return new Strophe.Builder(name, attrs);\n }\n /** Function: $msg\n * Create a Strophe.Builder with a element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\n\n\n function $msg(attrs) {\n return new Strophe.Builder(\"message\", attrs);\n }\n /** Function: $iq\n * Create a Strophe.Builder with an element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\n\n\n function $iq(attrs) {\n return new Strophe.Builder(\"iq\", attrs);\n }\n /** Function: $pres\n * Create a Strophe.Builder with a element as the root.\n *\n * Parameters:\n * (Object) attrs - The element attributes in object notation.\n *\n * Returns:\n * A new Strophe.Builder object.\n */\n\n\n function $pres(attrs) {\n return new Strophe.Builder(\"presence\", attrs);\n }\n /** Class: Strophe\n * An object container for all Strophe library functions.\n *\n * This class is just a container for all the objects and constants\n * used in the library. It is not meant to be instantiated, but to\n * provide a namespace for library objects, constants, and functions.\n */\n\n\n var Strophe = {\n /** Constant: VERSION */\n VERSION: \"@VERSION@\",\n\n /** Constants: XMPP Namespace Constants\n * Common namespace constants from the XMPP RFCs and XEPs.\n *\n * NS.HTTPBIND - HTTP BIND namespace from XEP 124.\n * NS.BOSH - BOSH namespace from XEP 206.\n * NS.CLIENT - Main XMPP client namespace.\n * NS.AUTH - Legacy authentication namespace.\n * NS.ROSTER - Roster operations namespace.\n * NS.PROFILE - Profile namespace.\n * NS.DISCO_INFO - Service discovery info namespace from XEP 30.\n * NS.DISCO_ITEMS - Service discovery items namespace from XEP 30.\n * NS.MUC - Multi-User Chat namespace from XEP 45.\n * NS.SASL - XMPP SASL namespace from RFC 3920.\n * NS.STREAM - XMPP Streams namespace from RFC 3920.\n * NS.BIND - XMPP Binding namespace from RFC 3920 and RFC 6120.\n * NS.SESSION - XMPP Session namespace from RFC 3920.\n * NS.XHTML_IM - XHTML-IM namespace from XEP 71.\n * NS.XHTML - XHTML body namespace from XEP 71.\n */\n NS: {\n HTTPBIND: \"http://jabber.org/protocol/httpbind\",\n BOSH: \"urn:xmpp:xbosh\",\n CLIENT: \"jabber:client\",\n AUTH: \"jabber:iq:auth\",\n ROSTER: \"jabber:iq:roster\",\n PROFILE: \"jabber:iq:profile\",\n DISCO_INFO: \"http://jabber.org/protocol/disco#info\",\n DISCO_ITEMS: \"http://jabber.org/protocol/disco#items\",\n MUC: \"http://jabber.org/protocol/muc\",\n SASL: \"urn:ietf:params:xml:ns:xmpp-sasl\",\n STREAM: \"http://etherx.jabber.org/streams\",\n FRAMING: \"urn:ietf:params:xml:ns:xmpp-framing\",\n BIND: \"urn:ietf:params:xml:ns:xmpp-bind\",\n SESSION: \"urn:ietf:params:xml:ns:xmpp-session\",\n VERSION: \"jabber:iq:version\",\n STANZAS: \"urn:ietf:params:xml:ns:xmpp-stanzas\",\n XHTML_IM: \"http://jabber.org/protocol/xhtml-im\",\n XHTML: \"http://www.w3.org/1999/xhtml\"\n },\n\n /** Constants: XHTML_IM Namespace\n * contains allowed tags, tag attributes, and css properties.\n * Used in the createHtml function to filter incoming html into the allowed XHTML-IM subset.\n * See http://xmpp.org/extensions/xep-0071.html#profile-summary for the list of recommended\n * allowed tags and their attributes.\n */\n XHTML: {\n tags: ['a', 'blockquote', 'br', 'cite', 'em', 'img', 'li', 'ol', 'p', 'span', 'strong', 'ul', 'body'],\n attributes: {\n 'a': ['href'],\n 'blockquote': ['style'],\n 'br': [],\n 'cite': ['style'],\n 'em': [],\n 'img': ['src', 'alt', 'style', 'height', 'width'],\n 'li': ['style'],\n 'ol': ['style'],\n 'p': ['style'],\n 'span': ['style'],\n 'strong': [],\n 'ul': ['style'],\n 'body': []\n },\n css: ['background-color', 'color', 'font-family', 'font-size', 'font-style', 'font-weight', 'margin-left', 'margin-right', 'text-align', 'text-decoration'],\n\n /** Function: XHTML.validTag\n *\n * Utility method to determine whether a tag is allowed\n * in the XHTML_IM namespace.\n *\n * XHTML tag names are case sensitive and must be lower case.\n */\n validTag: function validTag(tag) {\n for (var i = 0; i < Strophe.XHTML.tags.length; i++) {\n if (tag === Strophe.XHTML.tags[i]) {\n return true;\n }\n }\n\n return false;\n },\n\n /** Function: XHTML.validAttribute\n *\n * Utility method to determine whether an attribute is allowed\n * as recommended per XEP-0071\n *\n * XHTML attribute names are case sensitive and must be lower case.\n */\n validAttribute: function validAttribute(tag, attribute) {\n if (typeof Strophe.XHTML.attributes[tag] !== 'undefined' && Strophe.XHTML.attributes[tag].length > 0) {\n for (var i = 0; i < Strophe.XHTML.attributes[tag].length; i++) {\n if (attribute === Strophe.XHTML.attributes[tag][i]) {\n return true;\n }\n }\n }\n\n return false;\n },\n validCSS: function validCSS(style) {\n for (var i = 0; i < Strophe.XHTML.css.length; i++) {\n if (style === Strophe.XHTML.css[i]) {\n return true;\n }\n }\n\n return false;\n }\n },\n\n /** Constants: Connection Status Constants\n * Connection status constants for use by the connection handler\n * callback.\n *\n * Status.ERROR - An error has occurred\n * Status.CONNECTING - The connection is currently being made\n * Status.CONNFAIL - The connection attempt failed\n * Status.AUTHENTICATING - The connection is authenticating\n * Status.AUTHFAIL - The authentication attempt failed\n * Status.CONNECTED - The connection has succeeded\n * Status.DISCONNECTED - The connection has been terminated\n * Status.DISCONNECTING - The connection is currently being terminated\n * Status.ATTACHED - The connection has been attached\n * Status.REDIRECT - The connection has been redirected\n * Status.CONNTIMEOUT - The connection has timed out\n */\n Status: {\n ERROR: 0,\n CONNECTING: 1,\n CONNFAIL: 2,\n AUTHENTICATING: 3,\n AUTHFAIL: 4,\n CONNECTED: 5,\n DISCONNECTED: 6,\n DISCONNECTING: 7,\n ATTACHED: 8,\n REDIRECT: 9,\n CONNTIMEOUT: 10,\n BINDREQUIRED: 11\n },\n ErrorCondition: {\n BAD_FORMAT: \"bad-format\",\n CONFLICT: \"conflict\",\n MISSING_JID_NODE: \"x-strophe-bad-non-anon-jid\",\n NO_AUTH_MECH: \"no-auth-mech\",\n UNKNOWN_REASON: \"unknown\"\n },\n\n /** Constants: Log Level Constants\n * Logging level indicators.\n *\n * LogLevel.DEBUG - Debug output\n * LogLevel.INFO - Informational output\n * LogLevel.WARN - Warnings\n * LogLevel.ERROR - Errors\n * LogLevel.FATAL - Fatal errors\n */\n LogLevel: {\n DEBUG: 0,\n INFO: 1,\n WARN: 2,\n ERROR: 3,\n FATAL: 4\n },\n\n /** PrivateConstants: DOM Element Type Constants\n * DOM element types.\n *\n * ElementType.NORMAL - Normal element.\n * ElementType.TEXT - Text data element.\n * ElementType.FRAGMENT - XHTML fragment element.\n */\n ElementType: {\n NORMAL: 1,\n TEXT: 3,\n CDATA: 4,\n FRAGMENT: 11\n },\n\n /** PrivateConstants: Timeout Values\n * Timeout values for error states. These values are in seconds.\n * These should not be changed unless you know exactly what you are\n * doing.\n *\n * TIMEOUT - Timeout multiplier. A waiting request will be considered\n * failed after Math.floor(TIMEOUT * wait) seconds have elapsed.\n * This defaults to 1.1, and with default wait, 66 seconds.\n * SECONDARY_TIMEOUT - Secondary timeout multiplier. In cases where\n * Strophe can detect early failure, it will consider the request\n * failed if it doesn't return after\n * Math.floor(SECONDARY_TIMEOUT * wait) seconds have elapsed.\n * This defaults to 0.1, and with default wait, 6 seconds.\n */\n TIMEOUT: 1.1,\n SECONDARY_TIMEOUT: 0.1,\n\n /** Function: addNamespace\n * This function is used to extend the current namespaces in\n * Strophe.NS. It takes a key and a value with the key being the\n * name of the new namespace, with its actual value.\n * For example:\n * Strophe.addNamespace('PUBSUB', \"http://jabber.org/protocol/pubsub\");\n *\n * Parameters:\n * (String) name - The name under which the namespace will be\n * referenced under Strophe.NS\n * (String) value - The actual namespace.\n */\n addNamespace: function addNamespace(name, value) {\n Strophe.NS[name] = value;\n },\n\n /** Function: forEachChild\n * Map a function over some or all child elements of a given element.\n *\n * This is a small convenience function for mapping a function over\n * some or all of the children of an element. If elemName is null, all\n * children will be passed to the function, otherwise only children\n * whose tag names match elemName will be passed.\n *\n * Parameters:\n * (XMLElement) elem - The element to operate on.\n * (String) elemName - The child element tag name filter.\n * (Function) func - The function to apply to each child. This\n * function should take a single argument, a DOM element.\n */\n forEachChild: function forEachChild(elem, elemName, func) {\n for (var i = 0; i < elem.childNodes.length; i++) {\n var childNode = elem.childNodes[i];\n\n if (childNode.nodeType === Strophe.ElementType.NORMAL && (!elemName || this.isTagEqual(childNode, elemName))) {\n func(childNode);\n }\n }\n },\n\n /** Function: isTagEqual\n * Compare an element's tag name with a string.\n *\n * This function is case sensitive.\n *\n * Parameters:\n * (XMLElement) el - A DOM element.\n * (String) name - The element name.\n *\n * Returns:\n * true if the element's tag name matches _el_, and false\n * otherwise.\n */\n isTagEqual: function isTagEqual(el, name) {\n return el.tagName === name;\n },\n\n /** PrivateVariable: _xmlGenerator\n * _Private_ variable that caches a DOM document to\n * generate elements.\n */\n _xmlGenerator: null,\n\n /** PrivateFunction: _makeGenerator\n * _Private_ function that creates a dummy XML DOM document to serve as\n * an element and text node generator.\n */\n _makeGenerator: function _makeGenerator() {\n var doc; // IE9 does implement createDocument(); however, using it will cause the browser to leak memory on page unload.\n // Here, we test for presence of createDocument() plus IE's proprietary documentMode attribute, which would be\n // less than 10 in the case of IE9 and below.\n\n if (document.implementation.createDocument === undefined || document.implementation.createDocument && document.documentMode && document.documentMode < 10) {\n doc = this._getIEXmlDom();\n doc.appendChild(doc.createElement('strophe'));\n } else {\n doc = document.implementation.createDocument('jabber:client', 'strophe', null);\n }\n\n return doc;\n },\n\n /** Function: xmlGenerator\n * Get the DOM document to generate elements.\n *\n * Returns:\n * The currently used DOM document.\n */\n xmlGenerator: function xmlGenerator() {\n if (!Strophe._xmlGenerator) {\n Strophe._xmlGenerator = Strophe._makeGenerator();\n }\n\n return Strophe._xmlGenerator;\n },\n\n /** PrivateFunction: _getIEXmlDom\n * Gets IE xml doc object\n *\n * Returns:\n * A Microsoft XML DOM Object\n * See Also:\n * http://msdn.microsoft.com/en-us/library/ms757837%28VS.85%29.aspx\n */\n _getIEXmlDom: function _getIEXmlDom() {\n var doc = null;\n var docStrings = [\"Msxml2.DOMDocument.6.0\", \"Msxml2.DOMDocument.5.0\", \"Msxml2.DOMDocument.4.0\", \"MSXML2.DOMDocument.3.0\", \"MSXML2.DOMDocument\", \"MSXML.DOMDocument\", \"Microsoft.XMLDOM\"];\n\n for (var d = 0; d < docStrings.length; d++) {\n if (doc === null) {\n try {\n doc = new ActiveXObject(docStrings[d]);\n } catch (e) {\n doc = null;\n }\n } else {\n break;\n }\n }\n\n return doc;\n },\n\n /** Function: xmlElement\n * Create an XML DOM element.\n *\n * This function creates an XML DOM element correctly across all\n * implementations. Note that these are not HTML DOM elements, which\n * aren't appropriate for XMPP stanzas.\n *\n * Parameters:\n * (String) name - The name for the element.\n * (Array|Object) attrs - An optional array or object containing\n * key/value pairs to use as element attributes. The object should\n * be in the format {'key': 'value'} or {key: 'value'}. The array\n * should have the format [['key1', 'value1'], ['key2', 'value2']].\n * (String) text - The text child data for the element.\n *\n * Returns:\n * A new XML DOM element.\n */\n xmlElement: function xmlElement(name) {\n if (!name) {\n return null;\n }\n\n var node = Strophe.xmlGenerator().createElement(name); // FIXME: this should throw errors if args are the wrong type or\n // there are more than two optional args\n\n for (var a = 1; a < arguments.length; a++) {\n var arg = arguments[a];\n\n if (!arg) {\n continue;\n }\n\n if (typeof arg === \"string\" || typeof arg === \"number\") {\n node.appendChild(Strophe.xmlTextNode(arg));\n } else if (_typeof(arg) === \"object\" && typeof arg.sort === \"function\") {\n for (var i = 0; i < arg.length; i++) {\n var attr = arg[i];\n\n if (_typeof(attr) === \"object\" && typeof attr.sort === \"function\" && attr[1] !== undefined && attr[1] !== null) {\n node.setAttribute(attr[0], attr[1]);\n }\n }\n } else if (_typeof(arg) === \"object\") {\n for (var k in arg) {\n if (Object.prototype.hasOwnProperty.call(arg, k) && arg[k] !== undefined && arg[k] !== null) {\n node.setAttribute(k, arg[k]);\n }\n }\n }\n }\n\n return node;\n },\n\n /* Function: xmlescape\n * Excapes invalid xml characters.\n *\n * Parameters:\n * (String) text - text to escape.\n *\n * Returns:\n * Escaped text.\n */\n xmlescape: function xmlescape(text) {\n text = text.replace(/\\&/g, \"&\");\n text = text.replace(//g, \">\");\n text = text.replace(/'/g, \"'\");\n text = text.replace(/\"/g, \""\");\n return text;\n },\n\n /* Function: xmlunescape\n * Unexcapes invalid xml characters.\n *\n * Parameters:\n * (String) text - text to unescape.\n *\n * Returns:\n * Unescaped text.\n */\n xmlunescape: function xmlunescape(text) {\n text = text.replace(/\\&/g, \"&\");\n text = text.replace(/</g, \"<\");\n text = text.replace(/>/g, \">\");\n text = text.replace(/'/g, \"'\");\n text = text.replace(/"/g, \"\\\"\");\n return text;\n },\n\n /** Function: xmlTextNode\n * Creates an XML DOM text node.\n *\n * Provides a cross implementation version of document.createTextNode.\n *\n * Parameters:\n * (String) text - The content of the text node.\n *\n * Returns:\n * A new XML DOM text node.\n */\n xmlTextNode: function xmlTextNode(text) {\n return Strophe.xmlGenerator().createTextNode(text);\n },\n\n /** Function: xmlHtmlNode\n * Creates an XML DOM html node.\n *\n * Parameters:\n * (String) html - The content of the html node.\n *\n * Returns:\n * A new XML DOM text node.\n */\n xmlHtmlNode: function xmlHtmlNode(html) {\n var node; //ensure text is escaped\n\n if (DOMParser) {\n var parser = new DOMParser();\n node = parser.parseFromString(html, \"text/xml\");\n } else {\n node = new ActiveXObject(\"Microsoft.XMLDOM\");\n node.async = \"false\";\n node.loadXML(html);\n }\n\n return node;\n },\n\n /** Function: getText\n * Get the concatenation of all text children of an element.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * A String with the concatenated text of all text element children.\n */\n getText: function getText(elem) {\n if (!elem) {\n return null;\n }\n\n var str = \"\";\n\n if (elem.childNodes.length === 0 && elem.nodeType === Strophe.ElementType.TEXT) {\n str += elem.nodeValue;\n }\n\n for (var i = 0; i < elem.childNodes.length; i++) {\n if (elem.childNodes[i].nodeType === Strophe.ElementType.TEXT) {\n str += elem.childNodes[i].nodeValue;\n }\n }\n\n return Strophe.xmlescape(str);\n },\n\n /** Function: copyElement\n * Copy an XML DOM element.\n *\n * This function copies a DOM element and all its descendants and returns\n * the new copy.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * A new, copied DOM element tree.\n */\n copyElement: function copyElement(elem) {\n var el;\n\n if (elem.nodeType === Strophe.ElementType.NORMAL) {\n el = Strophe.xmlElement(elem.tagName);\n\n for (var i = 0; i < elem.attributes.length; i++) {\n el.setAttribute(elem.attributes[i].nodeName, elem.attributes[i].value);\n }\n\n for (var _i = 0; _i < elem.childNodes.length; _i++) {\n el.appendChild(Strophe.copyElement(elem.childNodes[_i]));\n }\n } else if (elem.nodeType === Strophe.ElementType.TEXT) {\n el = Strophe.xmlGenerator().createTextNode(elem.nodeValue);\n }\n\n return el;\n },\n\n /** Function: createHtml\n * Copy an HTML DOM element into an XML DOM.\n *\n * This function copies a DOM element and all its descendants and returns\n * the new copy.\n *\n * Parameters:\n * (HTMLElement) elem - A DOM element.\n *\n * Returns:\n * A new, copied DOM element tree.\n */\n createHtml: function createHtml(elem) {\n var el;\n\n if (elem.nodeType === Strophe.ElementType.NORMAL) {\n var tag = elem.nodeName.toLowerCase(); // XHTML tags must be lower case.\n\n if (Strophe.XHTML.validTag(tag)) {\n try {\n el = Strophe.xmlElement(tag);\n\n for (var i = 0; i < Strophe.XHTML.attributes[tag].length; i++) {\n var attribute = Strophe.XHTML.attributes[tag][i];\n var value = elem.getAttribute(attribute);\n\n if (typeof value === 'undefined' || value === null || value === '' || value === false || value === 0) {\n continue;\n }\n\n if (attribute === 'style' && _typeof(value) === 'object' && typeof value.cssText !== 'undefined') {\n value = value.cssText; // we're dealing with IE, need to get CSS out\n } // filter out invalid css styles\n\n\n if (attribute === 'style') {\n var css = [];\n var cssAttrs = value.split(';');\n\n for (var j = 0; j < cssAttrs.length; j++) {\n var attr = cssAttrs[j].split(':');\n var cssName = attr[0].replace(/^\\s*/, \"\").replace(/\\s*$/, \"\").toLowerCase();\n\n if (Strophe.XHTML.validCSS(cssName)) {\n var cssValue = attr[1].replace(/^\\s*/, \"\").replace(/\\s*$/, \"\");\n css.push(cssName + ': ' + cssValue);\n }\n }\n\n if (css.length > 0) {\n value = css.join('; ');\n el.setAttribute(attribute, value);\n }\n } else {\n el.setAttribute(attribute, value);\n }\n }\n\n for (var _i2 = 0; _i2 < elem.childNodes.length; _i2++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[_i2]));\n }\n } catch (e) {\n // invalid elements\n el = Strophe.xmlTextNode('');\n }\n } else {\n el = Strophe.xmlGenerator().createDocumentFragment();\n\n for (var _i3 = 0; _i3 < elem.childNodes.length; _i3++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[_i3]));\n }\n }\n } else if (elem.nodeType === Strophe.ElementType.FRAGMENT) {\n el = Strophe.xmlGenerator().createDocumentFragment();\n\n for (var _i4 = 0; _i4 < elem.childNodes.length; _i4++) {\n el.appendChild(Strophe.createHtml(elem.childNodes[_i4]));\n }\n } else if (elem.nodeType === Strophe.ElementType.TEXT) {\n el = Strophe.xmlTextNode(elem.nodeValue);\n }\n\n return el;\n },\n\n /** Function: escapeNode\n * Escape the node part (also called local part) of a JID.\n *\n * Parameters:\n * (String) node - A node (or local part).\n *\n * Returns:\n * An escaped node (or local part).\n */\n escapeNode: function escapeNode(node) {\n if (typeof node !== \"string\") {\n return node;\n }\n\n return node.replace(/^\\s+|\\s+$/g, '').replace(/\\\\/g, \"\\\\5c\").replace(/ /g, \"\\\\20\").replace(/\\\"/g, \"\\\\22\").replace(/\\&/g, \"\\\\26\").replace(/\\'/g, \"\\\\27\").replace(/\\//g, \"\\\\2f\").replace(/:/g, \"\\\\3a\").replace(//g, \"\\\\3e\").replace(/@/g, \"\\\\40\");\n },\n\n /** Function: unescapeNode\n * Unescape a node part (also called local part) of a JID.\n *\n * Parameters:\n * (String) node - A node (or local part).\n *\n * Returns:\n * An unescaped node (or local part).\n */\n unescapeNode: function unescapeNode(node) {\n if (typeof node !== \"string\") {\n return node;\n }\n\n return node.replace(/\\\\20/g, \" \").replace(/\\\\22/g, '\"').replace(/\\\\26/g, \"&\").replace(/\\\\27/g, \"'\").replace(/\\\\2f/g, \"/\").replace(/\\\\3a/g, \":\").replace(/\\\\3c/g, \"<\").replace(/\\\\3e/g, \">\").replace(/\\\\40/g, \"@\").replace(/\\\\5c/g, \"\\\\\");\n },\n\n /** Function: getNodeFromJid\n * Get the node portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the node.\n */\n getNodeFromJid: function getNodeFromJid(jid) {\n if (jid.indexOf(\"@\") < 0) {\n return null;\n }\n\n return jid.split(\"@\")[0];\n },\n\n /** Function: getDomainFromJid\n * Get the domain portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the domain.\n */\n getDomainFromJid: function getDomainFromJid(jid) {\n var bare = Strophe.getBareJidFromJid(jid);\n\n if (bare.indexOf(\"@\") < 0) {\n return bare;\n } else {\n var parts = bare.split(\"@\");\n parts.splice(0, 1);\n return parts.join('@');\n }\n },\n\n /** Function: getResourceFromJid\n * Get the resource portion of a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the resource.\n */\n getResourceFromJid: function getResourceFromJid(jid) {\n if (!jid) {\n return null;\n }\n\n var s = jid.split(\"/\");\n\n if (s.length < 2) {\n return null;\n }\n\n s.splice(0, 1);\n return s.join('/');\n },\n\n /** Function: getBareJidFromJid\n * Get the bare JID from a JID String.\n *\n * Parameters:\n * (String) jid - A JID.\n *\n * Returns:\n * A String containing the bare JID.\n */\n getBareJidFromJid: function getBareJidFromJid(jid) {\n return jid ? jid.split(\"/\")[0] : null;\n },\n\n /** PrivateFunction: _handleError\n * _Private_ function that properly logs an error to the console\n */\n _handleError: function _handleError(e) {\n if (typeof e.stack !== \"undefined\") {\n Strophe.fatal(e.stack);\n }\n\n if (e.sourceURL) {\n Strophe.fatal(\"error: \" + this.handler + \" \" + e.sourceURL + \":\" + e.line + \" - \" + e.name + \": \" + e.message);\n } else if (e.fileName) {\n Strophe.fatal(\"error: \" + this.handler + \" \" + e.fileName + \":\" + e.lineNumber + \" - \" + e.name + \": \" + e.message);\n } else {\n Strophe.fatal(\"error: \" + e.message);\n }\n },\n\n /** Function: log\n * User overrideable logging function.\n *\n * This function is called whenever the Strophe library calls any\n * of the logging functions. The default implementation of this\n * function logs only fatal errors. If client code wishes to handle the logging\n * messages, it should override this with\n * > Strophe.log = function (level, msg) {\n * > (user code here)\n * > };\n *\n * Please note that data sent and received over the wire is logged\n * via Strophe.Connection.rawInput() and Strophe.Connection.rawOutput().\n *\n * The different levels and their meanings are\n *\n * DEBUG - Messages useful for debugging purposes.\n * INFO - Informational messages. This is mostly information like\n * 'disconnect was called' or 'SASL auth succeeded'.\n * WARN - Warnings about potential problems. This is mostly used\n * to report transient connection errors like request timeouts.\n * ERROR - Some error occurred.\n * FATAL - A non-recoverable fatal error occurred.\n *\n * Parameters:\n * (Integer) level - The log level of the log message. This will\n * be one of the values in Strophe.LogLevel.\n * (String) msg - The log message.\n */\n log: function log(level, msg) {\n if (level === this.LogLevel.FATAL && _typeof(window.console) === 'object' && typeof window.console.error === 'function') {\n window.console.error(msg);\n }\n },\n\n /** Function: debug\n * Log a message at the Strophe.LogLevel.DEBUG level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n debug: function debug(msg) {\n this.log(this.LogLevel.DEBUG, msg);\n },\n\n /** Function: info\n * Log a message at the Strophe.LogLevel.INFO level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n info: function info(msg) {\n this.log(this.LogLevel.INFO, msg);\n },\n\n /** Function: warn\n * Log a message at the Strophe.LogLevel.WARN level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n warn: function warn(msg) {\n this.log(this.LogLevel.WARN, msg);\n },\n\n /** Function: error\n * Log a message at the Strophe.LogLevel.ERROR level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n error: function error(msg) {\n this.log(this.LogLevel.ERROR, msg);\n },\n\n /** Function: fatal\n * Log a message at the Strophe.LogLevel.FATAL level.\n *\n * Parameters:\n * (String) msg - The log message.\n */\n fatal: function fatal(msg) {\n this.log(this.LogLevel.FATAL, msg);\n },\n\n /** Function: serialize\n * Render a DOM element and all descendants to a String.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * The serialized element tree as a String.\n */\n serialize: function serialize(elem) {\n if (!elem) {\n return null;\n }\n\n if (typeof elem.tree === \"function\") {\n elem = elem.tree();\n }\n\n var names = _toConsumableArray(Array(elem.attributes.length).keys()).map(function (i) {\n return elem.attributes[i].nodeName;\n });\n\n names.sort();\n var result = names.reduce(function (a, n) {\n return \"\".concat(a, \" \").concat(n, \"=\\\"\").concat(Strophe.xmlescape(elem.attributes.getNamedItem(n).value), \"\\\"\");\n }, \"<\".concat(elem.nodeName));\n\n if (elem.childNodes.length > 0) {\n result += \">\";\n\n for (var i = 0; i < elem.childNodes.length; i++) {\n var child = elem.childNodes[i];\n\n switch (child.nodeType) {\n case Strophe.ElementType.NORMAL:\n // normal element, so recurse\n result += Strophe.serialize(child);\n break;\n\n case Strophe.ElementType.TEXT:\n // text element to escape values\n result += Strophe.xmlescape(child.nodeValue);\n break;\n\n case Strophe.ElementType.CDATA:\n // cdata section so don't escape values\n result += \"\";\n }\n }\n\n result += \"\" + elem.nodeName + \">\";\n } else {\n result += \"/>\";\n }\n\n return result;\n },\n\n /** PrivateVariable: _requestId\n * _Private_ variable that keeps track of the request ids for\n * connections.\n */\n _requestId: 0,\n\n /** PrivateVariable: Strophe.connectionPlugins\n * _Private_ variable Used to store plugin names that need\n * initialization on Strophe.Connection construction.\n */\n _connectionPlugins: {},\n\n /** Function: addConnectionPlugin\n * Extends the Strophe.Connection object with the given plugin.\n *\n * Parameters:\n * (String) name - The name of the extension.\n * (Object) ptype - The plugin's prototype.\n */\n addConnectionPlugin: function addConnectionPlugin(name, ptype) {\n Strophe._connectionPlugins[name] = ptype;\n }\n };\n /** Class: Strophe.Builder\n * XML DOM builder.\n *\n * This object provides an interface similar to JQuery but for building\n * DOM elements easily and rapidly. All the functions except for toString()\n * and tree() return the object, so calls can be chained. Here's an\n * example using the $iq() builder helper.\n * > $iq({to: 'you', from: 'me', type: 'get', id: '1'})\n * > .c('query', {xmlns: 'strophe:example'})\n * > .c('example')\n * > .toString()\n *\n * The above generates this XML fragment\n * > \n * > \n * > \n * > \n * > \n * The corresponding DOM manipulations to get a similar fragment would be\n * a lot more tedious and probably involve several helper variables.\n *\n * Since adding children makes new operations operate on the child, up()\n * is provided to traverse up the tree. To add two children, do\n * > builder.c('child1', ...).up().c('child2', ...)\n * The next operation on the Builder will be relative to the second child.\n */\n\n /** Constructor: Strophe.Builder\n * Create a Strophe.Builder object.\n *\n * The attributes should be passed in object notation. For example\n * > let b = new Builder('message', {to: 'you', from: 'me'});\n * or\n * > let b = new Builder('messsage', {'xml:lang': 'en'});\n *\n * Parameters:\n * (String) name - The name of the root element.\n * (Object) attrs - The attributes for the root element in object notation.\n *\n * Returns:\n * A new Strophe.Builder.\n */\n\n Strophe.Builder = function (name, attrs) {\n // Set correct namespace for jabber:client elements\n if (name === \"presence\" || name === \"message\" || name === \"iq\") {\n if (attrs && !attrs.xmlns) {\n attrs.xmlns = Strophe.NS.CLIENT;\n } else if (!attrs) {\n attrs = {\n xmlns: Strophe.NS.CLIENT\n };\n }\n } // Holds the tree being built.\n\n\n this.nodeTree = Strophe.xmlElement(name, attrs); // Points to the current operation node.\n\n this.node = this.nodeTree;\n };\n\n Strophe.Builder.prototype = {\n /** Function: tree\n * Return the DOM tree.\n *\n * This function returns the current DOM tree as an element object. This\n * is suitable for passing to functions like Strophe.Connection.send().\n *\n * Returns:\n * The DOM tree as a element object.\n */\n tree: function tree() {\n return this.nodeTree;\n },\n\n /** Function: toString\n * Serialize the DOM tree to a String.\n *\n * This function returns a string serialization of the current DOM\n * tree. It is often used internally to pass data to a\n * Strophe.Request object.\n *\n * Returns:\n * The serialized DOM tree in a String.\n */\n toString: function toString() {\n return Strophe.serialize(this.nodeTree);\n },\n\n /** Function: up\n * Make the current parent element the new current element.\n *\n * This function is often used after c() to traverse back up the tree.\n * For example, to add two children to the same element\n * > builder.c('child1', {}).up().c('child2', {});\n *\n * Returns:\n * The Stophe.Builder object.\n */\n up: function up() {\n this.node = this.node.parentNode;\n return this;\n },\n\n /** Function: root\n * Make the root element the new current element.\n *\n * When at a deeply nested element in the tree, this function can be used\n * to jump back to the root of the tree, instead of having to repeatedly\n * call up().\n *\n * Returns:\n * The Stophe.Builder object.\n */\n root: function root() {\n this.node = this.nodeTree;\n return this;\n },\n\n /** Function: attrs\n * Add or modify attributes of the current element.\n *\n * The attributes should be passed in object notation. This function\n * does not move the current element pointer.\n *\n * Parameters:\n * (Object) moreattrs - The attributes to add/modify in object notation.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n attrs: function attrs(moreattrs) {\n for (var k in moreattrs) {\n if (Object.prototype.hasOwnProperty.call(moreattrs, k)) {\n if (moreattrs[k] === undefined) {\n this.node.removeAttribute(k);\n } else {\n this.node.setAttribute(k, moreattrs[k]);\n }\n }\n }\n\n return this;\n },\n\n /** Function: c\n * Add a child to the current element and make it the new current\n * element.\n *\n * This function moves the current element pointer to the child,\n * unless text is provided. If you need to add another child, it\n * is necessary to use up() to go back to the parent in the tree.\n *\n * Parameters:\n * (String) name - The name of the child.\n * (Object) attrs - The attributes of the child in object notation.\n * (String) text - The text to add to the child.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n c: function c(name, attrs, text) {\n var child = Strophe.xmlElement(name, attrs, text);\n this.node.appendChild(child);\n\n if (typeof text !== \"string\" && typeof text !== \"number\") {\n this.node = child;\n }\n\n return this;\n },\n\n /** Function: cnode\n * Add a child to the current element and make it the new current\n * element.\n *\n * This function is the same as c() except that instead of using a\n * name and an attributes object to create the child it uses an\n * existing DOM element object.\n *\n * Parameters:\n * (XMLElement) elem - A DOM element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n cnode: function cnode(elem) {\n var impNode;\n var xmlGen = Strophe.xmlGenerator();\n\n try {\n impNode = xmlGen.importNode !== undefined;\n } catch (e) {\n impNode = false;\n }\n\n var newElem = impNode ? xmlGen.importNode(elem, true) : Strophe.copyElement(elem);\n this.node.appendChild(newElem);\n this.node = newElem;\n return this;\n },\n\n /** Function: t\n * Add a child text element.\n *\n * This *does not* make the child the new current element since there\n * are no children of text elements.\n *\n * Parameters:\n * (String) text - The text data to append to the current element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n t: function t(text) {\n var child = Strophe.xmlTextNode(text);\n this.node.appendChild(child);\n return this;\n },\n\n /** Function: h\n * Replace current element contents with the HTML passed in.\n *\n * This *does not* make the child the new current element\n *\n * Parameters:\n * (String) html - The html to insert as contents of current element.\n *\n * Returns:\n * The Strophe.Builder object.\n */\n h: function h(html) {\n var fragment = document.createElement('body'); // force the browser to try and fix any invalid HTML tags\n\n fragment.innerHTML = html; // copy cleaned html into an xml dom\n\n var xhtml = Strophe.createHtml(fragment);\n\n while (xhtml.childNodes.length > 0) {\n this.node.appendChild(xhtml.childNodes[0]);\n }\n\n return this;\n }\n };\n /** PrivateClass: Strophe.Handler\n * _Private_ helper class for managing stanza handlers.\n *\n * A Strophe.Handler encapsulates a user provided callback function to be\n * executed when matching stanzas are received by the connection.\n * Handlers can be either one-off or persistant depending on their\n * return value. Returning true will cause a Handler to remain active, and\n * returning false will remove the Handler.\n *\n * Users will not use Strophe.Handler objects directly, but instead they\n * will use Strophe.Connection.addHandler() and\n * Strophe.Connection.deleteHandler().\n */\n\n /** PrivateConstructor: Strophe.Handler\n * Create and initialize a new Strophe.Handler.\n *\n * Parameters:\n * (Function) handler - A function to be executed when the handler is run.\n * (String) ns - The namespace to match.\n * (String) name - The element name to match.\n * (String) type - The element type to match.\n * (String) id - The element id attribute to match.\n * (String) from - The element from attribute to match.\n * (Object) options - Handler options\n *\n * Returns:\n * A new Strophe.Handler object.\n */\n\n Strophe.Handler = function (handler, ns, name, type, id, from, options) {\n this.handler = handler;\n this.ns = ns;\n this.name = name;\n this.type = type;\n this.id = id;\n this.options = options || {\n 'matchBareFromJid': false,\n 'ignoreNamespaceFragment': false\n }; // BBB: Maintain backward compatibility with old `matchBare` option\n\n if (this.options.matchBare) {\n Strophe.warn('The \"matchBare\" option is deprecated, use \"matchBareFromJid\" instead.');\n this.options.matchBareFromJid = this.options.matchBare;\n delete this.options.matchBare;\n }\n\n if (this.options.matchBareFromJid) {\n this.from = from ? Strophe.getBareJidFromJid(from) : null;\n } else {\n this.from = from;\n } // whether the handler is a user handler or a system handler\n\n\n this.user = true;\n };\n\n Strophe.Handler.prototype = {\n /** PrivateFunction: getNamespace\n * Returns the XML namespace attribute on an element.\n * If `ignoreNamespaceFragment` was passed in for this handler, then the\n * URL fragment will be stripped.\n *\n * Parameters:\n * (XMLElement) elem - The XML element with the namespace.\n *\n * Returns:\n * The namespace, with optionally the fragment stripped.\n */\n getNamespace: function getNamespace(elem) {\n var elNamespace = elem.getAttribute(\"xmlns\");\n\n if (elNamespace && this.options.ignoreNamespaceFragment) {\n elNamespace = elNamespace.split('#')[0];\n }\n\n return elNamespace;\n },\n\n /** PrivateFunction: namespaceMatch\n * Tests if a stanza matches the namespace set for this Strophe.Handler.\n *\n * Parameters:\n * (XMLElement) elem - The XML element to test.\n *\n * Returns:\n * true if the stanza matches and false otherwise.\n */\n namespaceMatch: function namespaceMatch(elem) {\n var _this = this;\n\n var nsMatch = false;\n\n if (!this.ns) {\n return true;\n } else {\n Strophe.forEachChild(elem, null, function (elem) {\n if (_this.getNamespace(elem) === _this.ns) {\n nsMatch = true;\n }\n });\n return nsMatch || this.getNamespace(elem) === this.ns;\n }\n },\n\n /** PrivateFunction: isMatch\n * Tests if a stanza matches the Strophe.Handler.\n *\n * Parameters:\n * (XMLElement) elem - The XML element to test.\n *\n * Returns:\n * true if the stanza matches and false otherwise.\n */\n isMatch: function isMatch(elem) {\n var from = elem.getAttribute('from');\n\n if (this.options.matchBareFromJid) {\n from = Strophe.getBareJidFromJid(from);\n }\n\n var elem_type = elem.getAttribute(\"type\");\n\n if (this.namespaceMatch(elem) && (!this.name || Strophe.isTagEqual(elem, this.name)) && (!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) !== -1 : elem_type === this.type)) && (!this.id || elem.getAttribute(\"id\") === this.id) && (!this.from || from === this.from)) {\n return true;\n }\n\n return false;\n },\n\n /** PrivateFunction: run\n * Run the callback on a matching stanza.\n *\n * Parameters:\n * (XMLElement) elem - The DOM element that triggered the\n * Strophe.Handler.\n *\n * Returns:\n * A boolean indicating if the handler should remain active.\n */\n run: function run(elem) {\n var result = null;\n\n try {\n result = this.handler(elem);\n } catch (e) {\n Strophe._handleError(e);\n\n throw e;\n }\n\n return result;\n },\n\n /** PrivateFunction: toString\n * Get a String representation of the Strophe.Handler object.\n *\n * Returns:\n * A String.\n */\n toString: function toString() {\n return \"{Handler: \" + this.handler + \"(\" + this.name + \",\" + this.id + \",\" + this.ns + \")}\";\n }\n };\n /** PrivateClass: Strophe.TimedHandler\n * _Private_ helper class for managing timed handlers.\n *\n * A Strophe.TimedHandler encapsulates a user provided callback that\n * should be called after a certain period of time or at regular\n * intervals. The return value of the callback determines whether the\n * Strophe.TimedHandler will continue to fire.\n *\n * Users will not use Strophe.TimedHandler objects directly, but instead\n * they will use Strophe.Connection.addTimedHandler() and\n * Strophe.Connection.deleteTimedHandler().\n */\n\n /** PrivateConstructor: Strophe.TimedHandler\n * Create and initialize a new Strophe.TimedHandler object.\n *\n * Parameters:\n * (Integer) period - The number of milliseconds to wait before the\n * handler is called.\n * (Function) handler - The callback to run when the handler fires. This\n * function should take no arguments.\n *\n * Returns:\n * A new Strophe.TimedHandler object.\n */\n\n Strophe.TimedHandler = function (period, handler) {\n this.period = period;\n this.handler = handler;\n this.lastCalled = new Date().getTime();\n this.user = true;\n };\n\n Strophe.TimedHandler.prototype = {\n /** PrivateFunction: run\n * Run the callback for the Strophe.TimedHandler.\n *\n * Returns:\n * true if the Strophe.TimedHandler should be called again, and false\n * otherwise.\n */\n run: function run() {\n this.lastCalled = new Date().getTime();\n return this.handler();\n },\n\n /** PrivateFunction: reset\n * Reset the last called time for the Strophe.TimedHandler.\n */\n reset: function reset() {\n this.lastCalled = new Date().getTime();\n },\n\n /** PrivateFunction: toString\n * Get a string representation of the Strophe.TimedHandler object.\n *\n * Returns:\n * The string representation.\n */\n toString: function toString() {\n return \"{TimedHandler: \" + this.handler + \"(\" + this.period + \")}\";\n }\n };\n /** Class: Strophe.Connection\n * XMPP Connection manager.\n *\n * This class is the main part of Strophe. It manages a BOSH or websocket\n * connection to an XMPP server and dispatches events to the user callbacks\n * as data arrives. It supports SASL PLAIN, SASL DIGEST-MD5, SASL SCRAM-SHA1\n * and legacy authentication.\n *\n * After creating a Strophe.Connection object, the user will typically\n * call connect() with a user supplied callback to handle connection level\n * events like authentication failure, disconnection, or connection\n * complete.\n *\n * The user will also have several event handlers defined by using\n * addHandler() and addTimedHandler(). These will allow the user code to\n * respond to interesting stanzas or do something periodically with the\n * connection. These handlers will be active once authentication is\n * finished.\n *\n * To send data to the connection, use send().\n */\n\n /** Constructor: Strophe.Connection\n * Create and initialize a Strophe.Connection object.\n *\n * The transport-protocol for this connection will be chosen automatically\n * based on the given service parameter. URLs starting with \"ws://\" or\n * \"wss://\" will use WebSockets, URLs starting with \"http://\", \"https://\"\n * or without a protocol will use BOSH.\n *\n * To make Strophe connect to the current host you can leave out the protocol\n * and host part and just pass the path, e.g.\n *\n * > let conn = new Strophe.Connection(\"/http-bind/\");\n *\n * Options common to both Websocket and BOSH:\n * ------------------------------------------\n *\n * cookies:\n *\n * The *cookies* option allows you to pass in cookies to be added to the\n * document. These cookies will then be included in the BOSH XMLHttpRequest\n * or in the websocket connection.\n *\n * The passed in value must be a map of cookie names and string values.\n *\n * > { \"myCookie\": {\n * > \"value\": \"1234\",\n * > \"domain\": \".example.org\",\n * > \"path\": \"/\",\n * > \"expires\": expirationDate\n * > }\n * > }\n *\n * Note that cookies can't be set in this way for other domains (i.e. cross-domain).\n * Those cookies need to be set under those domains, for example they can be\n * set server-side by making a XHR call to that domain to ask it to set any\n * necessary cookies.\n *\n * mechanisms:\n *\n * The *mechanisms* option allows you to specify the SASL mechanisms that this\n * instance of Strophe.Connection (and therefore your XMPP client) will\n * support.\n *\n * The value must be an array of objects with Strophe.SASLMechanism\n * prototypes.\n *\n * If nothing is specified, then the following mechanisms (and their\n * priorities) are registered:\n *\n * SCRAM-SHA1 - 70\n * DIGEST-MD5 - 60\n * PLAIN - 50\n * OAUTH-BEARER - 40\n * OAUTH-2 - 30\n * ANONYMOUS - 20\n * EXTERNAL - 10\n *\n * explicitResourceBinding:\n *\n * If `explicitResourceBinding` is set to a truthy value, then the XMPP client\n * needs to explicitly call `Strophe.Connection.prototype.bind` once the XMPP\n * server has advertised the \"urn:ietf:params:xml:ns:xmpp-bind\" feature.\n *\n * Making this step explicit allows client authors to first finish other\n * stream related tasks, such as setting up an XEP-0198 Stream Management\n * session, before binding the JID resource for this session.\n *\n * WebSocket options:\n * ------------------\n *\n * If you want to connect to the current host with a WebSocket connection you\n * can tell Strophe to use WebSockets through a \"protocol\" attribute in the\n * optional options parameter. Valid values are \"ws\" for WebSocket and \"wss\"\n * for Secure WebSocket.\n * So to connect to \"wss://CURRENT_HOSTNAME/xmpp-websocket\" you would call\n *\n * > let conn = new Strophe.Connection(\"/xmpp-websocket/\", {protocol: \"wss\"});\n *\n * Note that relative URLs _NOT_ starting with a \"/\" will also include the path\n * of the current site.\n *\n * Also because downgrading security is not permitted by browsers, when using\n * relative URLs both BOSH and WebSocket connections will use their secure\n * variants if the current connection to the site is also secure (https).\n *\n * BOSH options:\n * -------------\n *\n * By adding \"sync\" to the options, you can control if requests will\n * be made synchronously or not. The default behaviour is asynchronous.\n * If you want to make requests synchronous, make \"sync\" evaluate to true.\n * > let conn = new Strophe.Connection(\"/http-bind/\", {sync: true});\n *\n * You can also toggle this on an already established connection.\n * > conn.options.sync = true;\n *\n * The *customHeaders* option can be used to provide custom HTTP headers to be\n * included in the XMLHttpRequests made.\n *\n * The *keepalive* option can be used to instruct Strophe to maintain the\n * current BOSH session across interruptions such as webpage reloads.\n *\n * It will do this by caching the sessions tokens in sessionStorage, and when\n * \"restore\" is called it will check whether there are cached tokens with\n * which it can resume an existing session.\n *\n * The *withCredentials* option should receive a Boolean value and is used to\n * indicate wether cookies should be included in ajax requests (by default\n * they're not).\n * Set this value to true if you are connecting to a BOSH service\n * and for some reason need to send cookies to it.\n * In order for this to work cross-domain, the server must also enable\n * credentials by setting the Access-Control-Allow-Credentials response header\n * to \"true\". For most usecases however this setting should be false (which\n * is the default).\n * Additionally, when using Access-Control-Allow-Credentials, the\n * Access-Control-Allow-Origin header can't be set to the wildcard \"*\", but\n * instead must be restricted to actual domains.\n *\n * The *contentType* option can be set to change the default Content-Type\n * of \"text/xml; charset=utf-8\", which can be useful to reduce the amount of\n * CORS preflight requests that are sent to the server.\n *\n * Parameters:\n * (String) service - The BOSH or WebSocket service URL.\n * (Object) options - A hash of configuration options\n *\n * Returns:\n * A new Strophe.Connection object.\n */\n\n Strophe.Connection = function (service, options) {\n var _this2 = this;\n\n // The service URL\n this.service = service; // Configuration options\n\n this.options = options || {};\n var proto = this.options.protocol || \"\"; // Select protocal based on service or options\n\n if (service.indexOf(\"ws:\") === 0 || service.indexOf(\"wss:\") === 0 || proto.indexOf(\"ws\") === 0) {\n this._proto = new Strophe.Websocket(this);\n } else {\n this._proto = new Strophe.Bosh(this);\n }\n /* The connected JID. */\n\n\n this.jid = \"\";\n /* the JIDs domain */\n\n this.domain = null;\n /* stream:features */\n\n this.features = null; // SASL\n\n this._sasl_data = {};\n this.do_session = false;\n this.do_bind = false; // handler lists\n\n this.timedHandlers = [];\n this.handlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n this.protocolErrorHandlers = {\n 'HTTP': {},\n 'websocket': {}\n };\n this._idleTimeout = null;\n this._disconnectTimeout = null;\n this.authenticated = false;\n this.connected = false;\n this.disconnecting = false;\n this.do_authentication = true;\n this.paused = false;\n this.restored = false;\n this._data = [];\n this._uniqueId = 0;\n this._sasl_success_handler = null;\n this._sasl_failure_handler = null;\n this._sasl_challenge_handler = null; // Max retries before disconnecting\n\n this.maxRetries = 5; // Call onIdle callback every 1/10th of a second\n\n this._idleTimeout = setTimeout(function () {\n return _this2._onIdle();\n }, 100);\n utils.addCookies(this.options.cookies);\n this.registerSASLMechanisms(this.options.mechanisms); // initialize plugins\n\n for (var k in Strophe._connectionPlugins) {\n if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) {\n var F = function F() {};\n\n F.prototype = Strophe._connectionPlugins[k];\n this[k] = new F();\n this[k].init(this);\n }\n }\n };\n\n Strophe.Connection.prototype = {\n /** Function: reset\n * Reset the connection.\n *\n * This function should be called after a connection is disconnected\n * before that connection is reused.\n */\n reset: function reset() {\n this._proto._reset(); // SASL\n\n\n this.do_session = false;\n this.do_bind = false; // handler lists\n\n this.timedHandlers = [];\n this.handlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = [];\n this.authenticated = false;\n this.connected = false;\n this.disconnecting = false;\n this.restored = false;\n this._data = [];\n this._requests = [];\n this._uniqueId = 0;\n },\n\n /** Function: pause\n * Pause the request manager.\n *\n * This will prevent Strophe from sending any more requests to the\n * server. This is very useful for temporarily pausing\n * BOSH-Connections while a lot of send() calls are happening quickly.\n * This causes Strophe to send the data in a single request, saving\n * many request trips.\n */\n pause: function pause() {\n this.paused = true;\n },\n\n /** Function: resume\n * Resume the request manager.\n *\n * This resumes after pause() has been called.\n */\n resume: function resume() {\n this.paused = false;\n },\n\n /** Function: getUniqueId\n * Generate a unique ID for use in elements.\n *\n * All stanzas are required to have unique id attributes. This\n * function makes creating these easy. Each connection instance has\n * a counter which starts from zero, and the value of this counter\n * plus a colon followed by the suffix becomes the unique id. If no\n * suffix is supplied, the counter is used as the unique id.\n *\n * Suffixes are used to make debugging easier when reading the stream\n * data, and their use is recommended. The counter resets to 0 for\n * every new connection for the same reason. For connections to the\n * same server that authenticate the same way, all the ids should be\n * the same, which makes it easy to see changes. This is useful for\n * automated testing as well.\n *\n * Parameters:\n * (String) suffix - A optional suffix to append to the id.\n *\n * Returns:\n * A unique string to be used for the id attribute.\n */\n getUniqueId: function getUniqueId(suffix) {\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n\n if (typeof suffix === \"string\" || typeof suffix === \"number\") {\n return uuid + \":\" + suffix;\n } else {\n return uuid + \"\";\n }\n },\n\n /** Function: addProtocolErrorHandler\n * Register a handler function for when a protocol (websocker or HTTP)\n * error occurs.\n *\n * NOTE: Currently only HTTP errors for BOSH requests are handled.\n * Patches that handle websocket errors would be very welcome.\n *\n * Parameters:\n * (String) protocol - 'HTTP' or 'websocket'\n * (Integer) status_code - Error status code (e.g 500, 400 or 404)\n * (Function) callback - Function that will fire on Http error\n *\n * Example:\n * function onError(err_code){\n * //do stuff\n * }\n *\n * let conn = Strophe.connect('http://example.com/http-bind');\n * conn.addProtocolErrorHandler('HTTP', 500, onError);\n * // Triggers HTTP 500 error and onError handler will be called\n * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect);\n */\n addProtocolErrorHandler: function addProtocolErrorHandler(protocol, status_code, callback) {\n this.protocolErrorHandlers[protocol][status_code] = callback;\n },\n\n /** Function: connect\n * Starts the connection process.\n *\n * As the connection process proceeds, the user supplied callback will\n * be triggered multiple times with status updates. The callback\n * should take two arguments - the status code and the error condition.\n *\n * The status code will be one of the values in the Strophe.Status\n * constants. The error condition will be one of the conditions\n * defined in RFC 3920 or the condition 'strophe-parsererror'.\n *\n * The Parameters _wait_, _hold_ and _route_ are optional and only relevant\n * for BOSH connections. Please see XEP 124 for a more detailed explanation\n * of the optional parameters.\n *\n * Parameters:\n * (String) jid - The user's JID. This may be a bare JID,\n * or a full JID. If a node is not supplied, SASL OAUTHBEARER or\n * SASL ANONYMOUS authentication will be attempted (OAUTHBEARER will\n * process the provided password value as an access token).\n * (String) pass - The user's password.\n * (Function) callback - The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (String) route - The optional route value.\n * (String) authcid - The optional alternative authentication identity\n * (username) if intending to impersonate another user.\n * When using the SASL-EXTERNAL authentication mechanism, for example\n * with client certificates, then the authcid value is used to\n * determine whether an authorization JID (authzid) should be sent to\n * the server. The authzid should not be sent to the server if the\n * authzid and authcid are the same. So to prevent it from being sent\n * (for example when the JID is already contained in the client\n * certificate), set authcid to that same JID. See XEP-178 for more\n * details.\n */\n connect: function connect(jid, pass, callback, wait, hold, route, authcid) {\n this.jid = jid;\n /** Variable: authzid\n * Authorization identity.\n */\n\n this.authzid = Strophe.getBareJidFromJid(this.jid);\n /** Variable: authcid\n * Authentication identity (User name).\n */\n\n this.authcid = authcid || Strophe.getNodeFromJid(this.jid);\n /** Variable: pass\n * Authentication identity (User password).\n */\n\n this.pass = pass;\n /** Variable: servtype\n * Digest MD5 compatibility.\n */\n\n this.servtype = \"xmpp\";\n this.connect_callback = callback;\n this.disconnecting = false;\n this.connected = false;\n this.authenticated = false;\n this.restored = false; // parse jid for domain\n\n this.domain = Strophe.getDomainFromJid(this.jid);\n\n this._changeConnectStatus(Strophe.Status.CONNECTING, null);\n\n this._proto._connect(wait, hold, route);\n },\n\n /** Function: attach\n * Attach to an already created and authenticated BOSH session.\n *\n * This function is provided to allow Strophe to attach to BOSH\n * sessions which have been created externally, perhaps by a Web\n * application. This is often used to support auto-login type features\n * without putting user credentials into the page.\n *\n * Parameters:\n * (String) jid - The full JID that is bound by the session.\n * (String) sid - The SID of the BOSH session.\n * (String) rid - The current RID of the BOSH session. This RID\n * will be used by the next request.\n * (Function) callback The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * Other settings will require tweaks to the Strophe.TIMEOUT value.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n attach: function attach(jid, sid, rid, callback, wait, hold, wind) {\n if (this._proto instanceof Strophe.Bosh) {\n this._proto._attach(jid, sid, rid, callback, wait, hold, wind);\n } else {\n var error = new Error('The \"attach\" method can only be used with a BOSH connection.');\n error.name = 'StropheSessionError';\n throw error;\n }\n },\n\n /** Function: restore\n * Attempt to restore a cached BOSH session.\n *\n * This function is only useful in conjunction with providing the\n * \"keepalive\":true option when instantiating a new Strophe.Connection.\n *\n * When \"keepalive\" is set to true, Strophe will cache the BOSH tokens\n * RID (Request ID) and SID (Session ID) and then when this function is\n * called, it will attempt to restore the session from those cached\n * tokens.\n *\n * This function must therefore be called instead of connect or attach.\n *\n * For an example on how to use it, please see examples/restore.js\n *\n * Parameters:\n * (String) jid - The user's JID. This may be a bare JID or a full JID.\n * (Function) callback - The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n restore: function restore(jid, callback, wait, hold, wind) {\n if (this._sessionCachingSupported()) {\n this._proto._restore(jid, callback, wait, hold, wind);\n } else {\n var error = new Error('The \"restore\" method can only be used with a BOSH connection.');\n error.name = 'StropheSessionError';\n throw error;\n }\n },\n\n /** PrivateFunction: _sessionCachingSupported\n * Checks whether sessionStorage and JSON are supported and whether we're\n * using BOSH.\n */\n _sessionCachingSupported: function _sessionCachingSupported() {\n if (this._proto instanceof Strophe.Bosh) {\n if (!JSON) {\n return false;\n }\n\n try {\n sessionStorage.setItem('_strophe_', '_strophe_');\n sessionStorage.removeItem('_strophe_');\n } catch (e) {\n return false;\n }\n\n return true;\n }\n\n return false;\n },\n\n /** Function: xmlInput\n * User overrideable function that receives XML data coming into the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.xmlInput = function (elem) {\n * > (user code)\n * > };\n *\n * Due to limitations of current Browsers' XML-Parsers the opening and closing\n * tag for WebSocket-Connoctions will be passed as selfclosing here.\n *\n * BOSH-Connections will have all stanzas wrapped in a tag. See\n * if you want to strip this tag.\n *\n * Parameters:\n * (XMLElement) elem - The XML data received by the connection.\n */\n xmlInput: function xmlInput(elem) {\n return;\n },\n\n /** Function: xmlOutput\n * User overrideable function that receives XML data sent to the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.xmlOutput = function (elem) {\n * > (user code)\n * > };\n *\n * Due to limitations of current Browsers' XML-Parsers the opening and closing\n * tag for WebSocket-Connoctions will be passed as selfclosing here.\n *\n * BOSH-Connections will have all stanzas wrapped in a tag. See\n * if you want to strip this tag.\n *\n * Parameters:\n * (XMLElement) elem - The XMLdata sent by the connection.\n */\n xmlOutput: function xmlOutput(elem) {\n return;\n },\n\n /** Function: rawInput\n * User overrideable function that receives raw data coming into the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.rawInput = function (data) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (String) data - The data received by the connection.\n */\n rawInput: function rawInput(data) {\n return;\n },\n\n /** Function: rawOutput\n * User overrideable function that receives raw data sent to the\n * connection.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.rawOutput = function (data) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (String) data - The data sent by the connection.\n */\n rawOutput: function rawOutput(data) {\n return;\n },\n\n /** Function: nextValidRid\n * User overrideable function that receives the new valid rid.\n *\n * The default function does nothing. User code can override this with\n * > Strophe.Connection.nextValidRid = function (rid) {\n * > (user code)\n * > };\n *\n * Parameters:\n * (Number) rid - The next valid rid\n */\n nextValidRid: function nextValidRid(rid) {\n return;\n },\n\n /** Function: send\n * Send a stanza.\n *\n * This function is called to push data onto the send queue to\n * go out over the wire. Whenever a request is sent to the BOSH\n * server, all pending data is sent and the queue is flushed.\n *\n * Parameters:\n * (XMLElement |\n * [XMLElement] |\n * Strophe.Builder) elem - The stanza to send.\n */\n send: function send(elem) {\n if (elem === null) {\n return;\n }\n\n if (typeof elem.sort === \"function\") {\n for (var i = 0; i < elem.length; i++) {\n this._queueData(elem[i]);\n }\n } else if (typeof elem.tree === \"function\") {\n this._queueData(elem.tree());\n } else {\n this._queueData(elem);\n }\n\n this._proto._send();\n },\n\n /** Function: flush\n * Immediately send any pending outgoing data.\n *\n * Normally send() queues outgoing data until the next idle period\n * (100ms), which optimizes network use in the common cases when\n * several send()s are called in succession. flush() can be used to\n * immediately send all pending data.\n */\n flush: function flush() {\n // cancel the pending idle period and run the idle function\n // immediately\n clearTimeout(this._idleTimeout);\n\n this._onIdle();\n },\n\n /** Function: sendPresence\n * Helper function to send presence stanzas. The main benefit is for\n * sending presence stanzas for which you expect a responding presence\n * stanza with the same id (for example when leaving a chat room).\n *\n * Parameters:\n * (XMLElement) elem - The stanza to send.\n * (Function) callback - The callback function for a successful request.\n * (Function) errback - The callback function for a failed or timed\n * out request. On timeout, the stanza will be null.\n * (Integer) timeout - The time specified in milliseconds for a\n * timeout to occur.\n *\n * Returns:\n * The id used to send the presence.\n */\n sendPresence: function sendPresence(elem, callback, errback, timeout) {\n var _this3 = this;\n\n var timeoutHandler = null;\n\n if (typeof elem.tree === \"function\") {\n elem = elem.tree();\n }\n\n var id = elem.getAttribute('id');\n\n if (!id) {\n // inject id if not found\n id = this.getUniqueId(\"sendPresence\");\n elem.setAttribute(\"id\", id);\n }\n\n if (typeof callback === \"function\" || typeof errback === \"function\") {\n var handler = this.addHandler(function (stanza) {\n // remove timeout handler if there is one\n if (timeoutHandler) {\n _this3.deleteTimedHandler(timeoutHandler);\n }\n\n if (stanza.getAttribute('type') === 'error') {\n if (errback) {\n errback(stanza);\n }\n } else if (callback) {\n callback(stanza);\n }\n }, null, 'presence', null, id); // if timeout specified, set up a timeout handler.\n\n if (timeout) {\n timeoutHandler = this.addTimedHandler(timeout, function () {\n // get rid of normal handler\n _this3.deleteHandler(handler); // call errback on timeout with null stanza\n\n\n if (errback) {\n errback(null);\n }\n\n return false;\n });\n }\n }\n\n this.send(elem);\n return id;\n },\n\n /** Function: sendIQ\n * Helper function to send IQ stanzas.\n *\n * Parameters:\n * (XMLElement) elem - The stanza to send.\n * (Function) callback - The callback function for a successful request.\n * (Function) errback - The callback function for a failed or timed\n * out request. On timeout, the stanza will be null.\n * (Integer) timeout - The time specified in milliseconds for a\n * timeout to occur.\n *\n * Returns:\n * The id used to send the IQ.\n */\n sendIQ: function sendIQ(elem, callback, errback, timeout) {\n var _this4 = this;\n\n var timeoutHandler = null;\n\n if (typeof elem.tree === \"function\") {\n elem = elem.tree();\n }\n\n var id = elem.getAttribute('id');\n\n if (!id) {\n // inject id if not found\n id = this.getUniqueId(\"sendIQ\");\n elem.setAttribute(\"id\", id);\n }\n\n if (typeof callback === \"function\" || typeof errback === \"function\") {\n var handler = this.addHandler(function (stanza) {\n // remove timeout handler if there is one\n if (timeoutHandler) {\n _this4.deleteTimedHandler(timeoutHandler);\n }\n\n var iqtype = stanza.getAttribute('type');\n\n if (iqtype === 'result') {\n if (callback) {\n callback(stanza);\n }\n } else if (iqtype === 'error') {\n if (errback) {\n errback(stanza);\n }\n } else {\n var error = new Error(\"Got bad IQ type of \".concat(iqtype));\n error.name = \"StropheError\";\n throw error;\n }\n }, null, 'iq', ['error', 'result'], id); // if timeout specified, set up a timeout handler.\n\n if (timeout) {\n timeoutHandler = this.addTimedHandler(timeout, function () {\n // get rid of normal handler\n _this4.deleteHandler(handler); // call errback on timeout with null stanza\n\n\n if (errback) {\n errback(null);\n }\n\n return false;\n });\n }\n }\n\n this.send(elem);\n return id;\n },\n\n /** PrivateFunction: _queueData\n * Queue outgoing data for later sending. Also ensures that the data\n * is a DOMElement.\n */\n _queueData: function _queueData(element) {\n if (element === null || !element.tagName || !element.childNodes) {\n var error = new Error(\"Cannot queue non-DOMElement.\");\n error.name = \"StropheError\";\n throw error;\n }\n\n this._data.push(element);\n },\n\n /** PrivateFunction: _sendRestart\n * Send an xmpp:restart stanza.\n */\n _sendRestart: function _sendRestart() {\n var _this5 = this;\n\n this._data.push(\"restart\");\n\n this._proto._sendRestart();\n\n this._idleTimeout = setTimeout(function () {\n return _this5._onIdle();\n }, 100);\n },\n\n /** Function: addTimedHandler\n * Add a timed handler to the connection.\n *\n * This function adds a timed handler. The provided handler will\n * be called every period milliseconds until it returns false,\n * the connection is terminated, or the handler is removed. Handlers\n * that wish to continue being invoked should return true.\n *\n * Because of method binding it is necessary to save the result of\n * this function if you wish to remove a handler with\n * deleteTimedHandler().\n *\n * Note that user handlers are not active until authentication is\n * successful.\n *\n * Parameters:\n * (Integer) period - The period of the handler.\n * (Function) handler - The callback function.\n *\n * Returns:\n * A reference to the handler that can be used to remove it.\n */\n addTimedHandler: function addTimedHandler(period, handler) {\n var thand = new Strophe.TimedHandler(period, handler);\n this.addTimeds.push(thand);\n return thand;\n },\n\n /** Function: deleteTimedHandler\n * Delete a timed handler for a connection.\n *\n * This function removes a timed handler from the connection. The\n * handRef parameter is *not* the function passed to addTimedHandler(),\n * but is the reference returned from addTimedHandler().\n *\n * Parameters:\n * (Strophe.TimedHandler) handRef - The handler reference.\n */\n deleteTimedHandler: function deleteTimedHandler(handRef) {\n // this must be done in the Idle loop so that we don't change\n // the handlers during iteration\n this.removeTimeds.push(handRef);\n },\n\n /** Function: addHandler\n * Add a stanza handler for the connection.\n *\n * This function adds a stanza handler to the connection. The\n * handler callback will be called for any stanza that matches\n * the parameters. Note that if multiple parameters are supplied,\n * they must all match for the handler to be invoked.\n *\n * The handler will receive the stanza that triggered it as its argument.\n * *The handler should return true if it is to be invoked again;\n * returning false will remove the handler after it returns.*\n *\n * As a convenience, the ns parameters applies to the top level element\n * and also any of its immediate children. This is primarily to make\n * matching /iq/query elements easy.\n *\n * Options\n * ~~~~~~~\n * With the options argument, you can specify boolean flags that affect how\n * matches are being done.\n *\n * Currently two flags exist:\n *\n * - matchBareFromJid:\n * When set to true, the from parameter and the\n * from attribute on the stanza will be matched as bare JIDs instead\n * of full JIDs. To use this, pass {matchBareFromJid: true} as the\n * value of options. The default value for matchBareFromJid is false.\n *\n * - ignoreNamespaceFragment:\n * When set to true, a fragment specified on the stanza's namespace\n * URL will be ignored when it's matched with the one configured for\n * the handler.\n *\n * This means that if you register like this:\n * > connection.addHandler(\n * > handler,\n * > 'http://jabber.org/protocol/muc',\n * > null, null, null, null,\n * > {'ignoreNamespaceFragment': true}\n * > );\n *\n * Then a stanza with XML namespace of\n * 'http://jabber.org/protocol/muc#user' will also be matched. If\n * 'ignoreNamespaceFragment' is false, then only stanzas with\n * 'http://jabber.org/protocol/muc' will be matched.\n *\n * Deleting the handler\n * ~~~~~~~~~~~~~~~~~~~~\n * The return value should be saved if you wish to remove the handler\n * with deleteHandler().\n *\n * Parameters:\n * (Function) handler - The user callback.\n * (String) ns - The namespace to match.\n * (String) name - The stanza name to match.\n * (String|Array) type - The stanza type (or types if an array) to match.\n * (String) id - The stanza id attribute to match.\n * (String) from - The stanza from attribute to match.\n * (String) options - The handler options\n *\n * Returns:\n * A reference to the handler that can be used to remove it.\n */\n addHandler: function addHandler(handler, ns, name, type, id, from, options) {\n var hand = new Strophe.Handler(handler, ns, name, type, id, from, options);\n this.addHandlers.push(hand);\n return hand;\n },\n\n /** Function: deleteHandler\n * Delete a stanza handler for a connection.\n *\n * This function removes a stanza handler from the connection. The\n * handRef parameter is *not* the function passed to addHandler(),\n * but is the reference returned from addHandler().\n *\n * Parameters:\n * (Strophe.Handler) handRef - The handler reference.\n */\n deleteHandler: function deleteHandler(handRef) {\n // this must be done in the Idle loop so that we don't change\n // the handlers during iteration\n this.removeHandlers.push(handRef); // If a handler is being deleted while it is being added,\n // prevent it from getting added\n\n var i = this.addHandlers.indexOf(handRef);\n\n if (i >= 0) {\n this.addHandlers.splice(i, 1);\n }\n },\n\n /** Function: registerSASLMechanisms\n *\n * Register the SASL mechanisms which will be supported by this instance of\n * Strophe.Connection (i.e. which this XMPP client will support).\n *\n * Parameters:\n * (Array) mechanisms - Array of objects with Strophe.SASLMechanism prototypes\n *\n */\n registerSASLMechanisms: function registerSASLMechanisms(mechanisms) {\n this.mechanisms = {};\n mechanisms = mechanisms || [Strophe.SASLAnonymous, Strophe.SASLExternal, Strophe.SASLMD5, Strophe.SASLOAuthBearer, Strophe.SASLXOAuth2, Strophe.SASLPlain, Strophe.SASLSHA1];\n mechanisms.forEach(this.registerSASLMechanism.bind(this));\n },\n\n /** Function: registerSASLMechanism\n *\n * Register a single SASL mechanism, to be supported by this client.\n *\n * Parameters:\n * (Object) mechanism - Object with a Strophe.SASLMechanism prototype\n *\n */\n registerSASLMechanism: function registerSASLMechanism(mechanism) {\n this.mechanisms[mechanism.prototype.name] = mechanism;\n },\n\n /** Function: disconnect\n * Start the graceful disconnection process.\n *\n * This function starts the disconnection process. This process starts\n * by sending unavailable presence and sending BOSH body of type\n * terminate. A timeout handler makes sure that disconnection happens\n * even if the BOSH server does not respond.\n * If the Connection object isn't connected, at least tries to abort all pending requests\n * so the connection object won't generate successful requests (which were already opened).\n *\n * The user supplied connection callback will be notified of the\n * progress as this process happens.\n *\n * Parameters:\n * (String) reason - The reason the disconnect is occuring.\n */\n disconnect: function disconnect(reason) {\n this._changeConnectStatus(Strophe.Status.DISCONNECTING, reason);\n\n Strophe.warn(\"Disconnect was called because: \" + reason);\n\n if (this.connected) {\n var pres = false;\n this.disconnecting = true;\n\n if (this.authenticated) {\n pres = $pres({\n 'xmlns': Strophe.NS.CLIENT,\n 'type': 'unavailable'\n });\n } // setup timeout handler\n\n\n this._disconnectTimeout = this._addSysTimedHandler(3000, this._onDisconnectTimeout.bind(this));\n\n this._proto._disconnect(pres);\n } else {\n Strophe.warn(\"Disconnect was called before Strophe connected to the server\");\n\n this._proto._abortAllRequests();\n\n this._doDisconnect();\n }\n },\n\n /** PrivateFunction: _changeConnectStatus\n * _Private_ helper function that makes sure plugins and the user's\n * callback are notified of connection status changes.\n *\n * Parameters:\n * (Integer) status - the new connection status, one of the values\n * in Strophe.Status\n * (String) condition - the error condition or null\n * (XMLElement) elem - The triggering stanza.\n */\n _changeConnectStatus: function _changeConnectStatus(status, condition, elem) {\n // notify all plugins listening for status changes\n for (var k in Strophe._connectionPlugins) {\n if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) {\n var plugin = this[k];\n\n if (plugin.statusChanged) {\n try {\n plugin.statusChanged(status, condition);\n } catch (err) {\n Strophe.error(\"\".concat(k, \" plugin caused an exception changing status: \").concat(err));\n }\n }\n }\n } // notify the user's callback\n\n\n if (this.connect_callback) {\n try {\n this.connect_callback(status, condition, elem);\n } catch (e) {\n Strophe._handleError(e);\n\n Strophe.error(\"User connection callback caused an exception: \".concat(e));\n }\n }\n },\n\n /** PrivateFunction: _doDisconnect\n * _Private_ function to disconnect.\n *\n * This is the last piece of the disconnection logic. This resets the\n * connection and alerts the user's connection callback.\n */\n _doDisconnect: function _doDisconnect(condition) {\n if (typeof this._idleTimeout === \"number\") {\n clearTimeout(this._idleTimeout);\n } // Cancel Disconnect Timeout\n\n\n if (this._disconnectTimeout !== null) {\n this.deleteTimedHandler(this._disconnectTimeout);\n this._disconnectTimeout = null;\n }\n\n Strophe.debug(\"_doDisconnect was called\");\n\n this._proto._doDisconnect();\n\n this.authenticated = false;\n this.disconnecting = false;\n this.restored = false; // delete handlers\n\n this.handlers = [];\n this.timedHandlers = [];\n this.removeTimeds = [];\n this.removeHandlers = [];\n this.addTimeds = [];\n this.addHandlers = []; // tell the parent we disconnected\n\n this._changeConnectStatus(Strophe.Status.DISCONNECTED, condition);\n\n this.connected = false;\n },\n\n /** PrivateFunction: _dataRecv\n * _Private_ handler to processes incoming data from the the connection.\n *\n * Except for _connect_cb handling the initial connection request,\n * this function handles the incoming data for all requests. This\n * function also fires stanza handlers that match each incoming\n * stanza.\n *\n * Parameters:\n * (Strophe.Request) req - The request that has data ready.\n * (string) req - The stanza a raw string (optiona).\n */\n _dataRecv: function _dataRecv(req, raw) {\n var _this6 = this;\n\n Strophe.debug(\"_dataRecv called\");\n\n var elem = this._proto._reqToData(req);\n\n if (elem === null) {\n return;\n }\n\n if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {\n if (elem.nodeName === this._proto.strip && elem.childNodes.length) {\n this.xmlInput(elem.childNodes[0]);\n } else {\n this.xmlInput(elem);\n }\n }\n\n if (this.rawInput !== Strophe.Connection.prototype.rawInput) {\n if (raw) {\n this.rawInput(raw);\n } else {\n this.rawInput(Strophe.serialize(elem));\n }\n } // remove handlers scheduled for deletion\n\n\n while (this.removeHandlers.length > 0) {\n var hand = this.removeHandlers.pop();\n var i = this.handlers.indexOf(hand);\n\n if (i >= 0) {\n this.handlers.splice(i, 1);\n }\n } // add handlers scheduled for addition\n\n\n while (this.addHandlers.length > 0) {\n this.handlers.push(this.addHandlers.pop());\n } // handle graceful disconnect\n\n\n if (this.disconnecting && this._proto._emptyQueue()) {\n this._doDisconnect();\n\n return;\n }\n\n var type = elem.getAttribute(\"type\");\n\n if (type !== null && type === \"terminate\") {\n // Don't process stanzas that come in after disconnect\n if (this.disconnecting) {\n return;\n } // an error occurred\n\n\n var cond = elem.getAttribute(\"condition\");\n var conflict = elem.getElementsByTagName(\"conflict\");\n\n if (cond !== null) {\n if (cond === \"remote-stream-error\" && conflict.length > 0) {\n cond = \"conflict\";\n }\n\n this._changeConnectStatus(Strophe.Status.CONNFAIL, cond);\n } else {\n this._changeConnectStatus(Strophe.Status.CONNFAIL, Strophe.ErrorCondition.UNKOWN_REASON);\n }\n\n this._doDisconnect(cond);\n\n return;\n } // send each incoming stanza through the handler chain\n\n\n Strophe.forEachChild(elem, null, function (child) {\n // process handlers\n var newList = _this6.handlers;\n _this6.handlers = [];\n\n for (var _i5 = 0; _i5 < newList.length; _i5++) {\n var _hand = newList[_i5]; // encapsulate 'handler.run' not to lose the whole handler list if\n // one of the handlers throws an exception\n\n try {\n if (_hand.isMatch(child) && (_this6.authenticated || !_hand.user)) {\n if (_hand.run(child)) {\n _this6.handlers.push(_hand);\n }\n } else {\n _this6.handlers.push(_hand);\n }\n } catch (e) {\n // if the handler throws an exception, we consider it as false\n Strophe.warn('Removing Strophe handlers due to uncaught exception: ' + e.message);\n }\n }\n });\n },\n\n /** Attribute: mechanisms\n * SASL Mechanisms available for Connection.\n */\n mechanisms: {},\n\n /** PrivateFunction: _connect_cb\n * _Private_ handler for initial connection request.\n *\n * This handler is used to process the initial connection request\n * response from the BOSH server. It is used to set up authentication\n * handlers and start the authentication process.\n *\n * SASL authentication will be attempted if available, otherwise\n * the code will fall back to legacy authentication.\n *\n * Parameters:\n * (Strophe.Request) req - The current request.\n * (Function) _callback - low level (xmpp) connect callback function.\n * Useful for plugins with their own xmpp connect callback (when they\n * want to do something special).\n */\n _connect_cb: function _connect_cb(req, _callback, raw) {\n Strophe.debug(\"_connect_cb was called\");\n this.connected = true;\n var bodyWrap;\n\n try {\n bodyWrap = this._proto._reqToData(req);\n } catch (e) {\n if (e.name !== Strophe.ErrorCondition.BAD_FORMAT) {\n throw e;\n }\n\n this._changeConnectStatus(Strophe.Status.CONNFAIL, Strophe.ErrorCondition.BAD_FORMAT);\n\n this._doDisconnect(Strophe.ErrorCondition.BAD_FORMAT);\n }\n\n if (!bodyWrap) {\n return;\n }\n\n if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {\n if (bodyWrap.nodeName === this._proto.strip && bodyWrap.childNodes.length) {\n this.xmlInput(bodyWrap.childNodes[0]);\n } else {\n this.xmlInput(bodyWrap);\n }\n }\n\n if (this.rawInput !== Strophe.Connection.prototype.rawInput) {\n if (raw) {\n this.rawInput(raw);\n } else {\n this.rawInput(Strophe.serialize(bodyWrap));\n }\n }\n\n var conncheck = this._proto._connect_cb(bodyWrap);\n\n if (conncheck === Strophe.Status.CONNFAIL) {\n return;\n } // Check for the stream:features tag\n\n\n var hasFeatures;\n\n if (bodyWrap.getElementsByTagNameNS) {\n hasFeatures = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, \"features\").length > 0;\n } else {\n hasFeatures = bodyWrap.getElementsByTagName(\"stream:features\").length > 0 || bodyWrap.getElementsByTagName(\"features\").length > 0;\n }\n\n if (!hasFeatures) {\n this._proto._no_auth_received(_callback);\n\n return;\n }\n\n var matched = [];\n var mechanisms = bodyWrap.getElementsByTagName(\"mechanism\");\n\n if (mechanisms.length > 0) {\n for (var i = 0; i < mechanisms.length; i++) {\n var mech = Strophe.getText(mechanisms[i]);\n if (this.mechanisms[mech]) matched.push(this.mechanisms[mech]);\n }\n }\n\n if (matched.length === 0) {\n if (bodyWrap.getElementsByTagName(\"auth\").length === 0) {\n // There are no matching SASL mechanisms and also no legacy\n // auth available.\n this._proto._no_auth_received(_callback);\n\n return;\n }\n }\n\n if (this.do_authentication !== false) {\n this.authenticate(matched);\n }\n },\n\n /** Function: sortMechanismsByPriority\n *\n * Sorts an array of objects with prototype SASLMechanism according to\n * their priorities.\n *\n * Parameters:\n * (Array) mechanisms - Array of SASL mechanisms.\n *\n */\n sortMechanismsByPriority: function sortMechanismsByPriority(mechanisms) {\n // Sorting mechanisms according to priority.\n for (var i = 0; i < mechanisms.length - 1; ++i) {\n var higher = i;\n\n for (var j = i + 1; j < mechanisms.length; ++j) {\n if (mechanisms[j].prototype.priority > mechanisms[higher].prototype.priority) {\n higher = j;\n }\n }\n\n if (higher !== i) {\n var swap = mechanisms[i];\n mechanisms[i] = mechanisms[higher];\n mechanisms[higher] = swap;\n }\n }\n\n return mechanisms;\n },\n\n /** Function: authenticate\n * Set up authentication\n *\n * Continues the initial connection request by setting up authentication\n * handlers and starting the authentication process.\n *\n * SASL authentication will be attempted if available, otherwise\n * the code will fall back to legacy authentication.\n *\n * Parameters:\n * (Array) matched - Array of SASL mechanisms supported.\n *\n */\n authenticate: function authenticate(matched) {\n if (!this._attemptSASLAuth(matched)) {\n this._attemptLegacyAuth();\n }\n },\n\n /** PrivateFunction: _attemptSASLAuth\n *\n * Iterate through an array of SASL mechanisms and attempt authentication\n * with the highest priority (enabled) mechanism.\n *\n * Parameters:\n * (Array) mechanisms - Array of SASL mechanisms.\n *\n * Returns:\n * (Boolean) mechanism_found - true or false, depending on whether a\n * valid SASL mechanism was found with which authentication could be\n * started.\n */\n _attemptSASLAuth: function _attemptSASLAuth(mechanisms) {\n mechanisms = this.sortMechanismsByPriority(mechanisms || []);\n var mechanism_found = false;\n\n for (var i = 0; i < mechanisms.length; ++i) {\n if (!mechanisms[i].prototype.test(this)) {\n continue;\n }\n\n this._sasl_success_handler = this._addSysHandler(this._sasl_success_cb.bind(this), null, \"success\", null, null);\n this._sasl_failure_handler = this._addSysHandler(this._sasl_failure_cb.bind(this), null, \"failure\", null, null);\n this._sasl_challenge_handler = this._addSysHandler(this._sasl_challenge_cb.bind(this), null, \"challenge\", null, null);\n this._sasl_mechanism = new mechanisms[i]();\n\n this._sasl_mechanism.onStart(this);\n\n var request_auth_exchange = $build(\"auth\", {\n 'xmlns': Strophe.NS.SASL,\n 'mechanism': this._sasl_mechanism.name\n });\n\n if (this._sasl_mechanism.isClientFirst) {\n var response = this._sasl_mechanism.onChallenge(this, null);\n\n request_auth_exchange.t(btoa(response));\n }\n\n this.send(request_auth_exchange.tree());\n mechanism_found = true;\n break;\n }\n\n return mechanism_found;\n },\n\n /** PrivateFunction: _sasl_challenge_cb\n * _Private_ handler for the SASL challenge\n *\n */\n _sasl_challenge_cb: function _sasl_challenge_cb(elem) {\n var challenge = atob(Strophe.getText(elem));\n\n var response = this._sasl_mechanism.onChallenge(this, challenge);\n\n var stanza = $build('response', {\n 'xmlns': Strophe.NS.SASL\n });\n\n if (response !== \"\") {\n stanza.t(btoa(response));\n }\n\n this.send(stanza.tree());\n return true;\n },\n\n /** PrivateFunction: _attemptLegacyAuth\n *\n * Attempt legacy (i.e. non-SASL) authentication.\n */\n _attemptLegacyAuth: function _attemptLegacyAuth() {\n if (Strophe.getNodeFromJid(this.jid) === null) {\n // we don't have a node, which is required for non-anonymous\n // client connections\n this._changeConnectStatus(Strophe.Status.CONNFAIL, Strophe.ErrorCondition.MISSING_JID_NODE);\n\n this.disconnect(Strophe.ErrorCondition.MISSING_JID_NODE);\n } else {\n // Fall back to legacy authentication\n this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null);\n\n this._addSysHandler(this._onLegacyAuthIQResult.bind(this), null, null, null, \"_auth_1\");\n\n this.send($iq({\n 'type': \"get\",\n 'to': this.domain,\n 'id': \"_auth_1\"\n }).c(\"query\", {\n xmlns: Strophe.NS.AUTH\n }).c(\"username\", {}).t(Strophe.getNodeFromJid(this.jid)).tree());\n }\n },\n\n /** PrivateFunction: _onLegacyAuthIQResult\n * _Private_ handler for legacy authentication.\n *\n * This handler is called in response to the initial \n * for legacy authentication. It builds an authentication and\n * sends it, creating a handler (calling back to _auth2_cb()) to\n * handle the result\n *\n * Parameters:\n * (XMLElement) elem - The stanza that triggered the callback.\n *\n * Returns:\n * false to remove the handler.\n */\n _onLegacyAuthIQResult: function _onLegacyAuthIQResult(elem) {\n // build plaintext auth iq\n var iq = $iq({\n type: \"set\",\n id: \"_auth_2\"\n }).c('query', {\n xmlns: Strophe.NS.AUTH\n }).c('username', {}).t(Strophe.getNodeFromJid(this.jid)).up().c('password').t(this.pass);\n\n if (!Strophe.getResourceFromJid(this.jid)) {\n // since the user has not supplied a resource, we pick\n // a default one here. unlike other auth methods, the server\n // cannot do this for us.\n this.jid = Strophe.getBareJidFromJid(this.jid) + '/strophe';\n }\n\n iq.up().c('resource', {}).t(Strophe.getResourceFromJid(this.jid));\n\n this._addSysHandler(this._auth2_cb.bind(this), null, null, null, \"_auth_2\");\n\n this.send(iq.tree());\n return false;\n },\n\n /** PrivateFunction: _sasl_success_cb\n * _Private_ handler for succesful SASL authentication.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _sasl_success_cb: function _sasl_success_cb(elem) {\n var _this7 = this;\n\n if (this._sasl_data[\"server-signature\"]) {\n var serverSignature;\n var success = atob(Strophe.getText(elem));\n var attribMatch = /([a-z]+)=([^,]+)(,|$)/;\n var matches = success.match(attribMatch);\n\n if (matches[1] === \"v\") {\n serverSignature = matches[2];\n }\n\n if (serverSignature !== this._sasl_data[\"server-signature\"]) {\n // remove old handlers\n this.deleteHandler(this._sasl_failure_handler);\n this._sasl_failure_handler = null;\n\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n\n this._sasl_data = {};\n return this._sasl_failure_cb(null);\n }\n }\n\n Strophe.info(\"SASL authentication succeeded.\");\n\n if (this._sasl_mechanism) {\n this._sasl_mechanism.onSuccess();\n } // remove old handlers\n\n\n this.deleteHandler(this._sasl_failure_handler);\n this._sasl_failure_handler = null;\n\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n\n var streamfeature_handlers = [];\n\n var wrapper = function wrapper(handlers, elem) {\n while (handlers.length) {\n _this7.deleteHandler(handlers.pop());\n }\n\n _this7._onStreamFeaturesAfterSASL(elem);\n\n return false;\n };\n\n streamfeature_handlers.push(this._addSysHandler(function (elem) {\n return wrapper(streamfeature_handlers, elem);\n }, null, \"stream:features\", null, null));\n streamfeature_handlers.push(this._addSysHandler(function (elem) {\n return wrapper(streamfeature_handlers, elem);\n }, Strophe.NS.STREAM, \"features\", null, null)); // we must send an xmpp:restart now\n\n this._sendRestart();\n\n return false;\n },\n\n /** PrivateFunction: _onStreamFeaturesAfterSASL\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onStreamFeaturesAfterSASL: function _onStreamFeaturesAfterSASL(elem) {\n // save stream:features for future usage\n this.features = elem;\n\n for (var i = 0; i < elem.childNodes.length; i++) {\n var child = elem.childNodes[i];\n\n if (child.nodeName === 'bind') {\n this.do_bind = true;\n }\n\n if (child.nodeName === 'session') {\n this.do_session = true;\n }\n }\n\n if (!this.do_bind) {\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);\n\n return false;\n } else if (!this.options.explicitResourceBinding) {\n this.bind();\n } else {\n this._changeConnectStatus(Strophe.Status.BINDREQUIRED, null);\n }\n\n return false;\n },\n\n /** Function: bind\n *\n * Sends an IQ to the XMPP server to bind a JID resource for this session.\n *\n * https://tools.ietf.org/html/rfc6120#section-7.5\n *\n * If `explicitResourceBinding` was set to a truthy value in the options\n * passed to the Strophe.Connection constructor, then this function needs\n * to be called explicitly by the client author.\n *\n * Otherwise it'll be called automatically as soon as the XMPP server\n * advertises the \"urn:ietf:params:xml:ns:xmpp-bind\" stream feature.\n */\n bind: function bind() {\n if (!this.do_bind) {\n Strophe.log(Strophe.LogLevel.INFO, \"Strophe.Connection.prototype.bind called but \\\"do_bind\\\" is false\");\n return;\n }\n\n this._addSysHandler(this._onResourceBindResultIQ.bind(this), null, null, null, \"_bind_auth_2\");\n\n var resource = Strophe.getResourceFromJid(this.jid);\n\n if (resource) {\n this.send($iq({\n type: \"set\",\n id: \"_bind_auth_2\"\n }).c('bind', {\n xmlns: Strophe.NS.BIND\n }).c('resource', {}).t(resource).tree());\n } else {\n this.send($iq({\n type: \"set\",\n id: \"_bind_auth_2\"\n }).c('bind', {\n xmlns: Strophe.NS.BIND\n }).tree());\n }\n },\n\n /** PrivateFunction: _onResourceBindIQ\n * _Private_ handler for binding result and session start.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onResourceBindResultIQ: function _onResourceBindResultIQ(elem) {\n if (elem.getAttribute(\"type\") === \"error\") {\n Strophe.warn(\"Resource binding failed.\");\n var conflict = elem.getElementsByTagName(\"conflict\");\n var condition;\n\n if (conflict.length > 0) {\n condition = Strophe.ErrorCondition.CONFLICT;\n }\n\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, condition, elem);\n\n return false;\n } // TODO - need to grab errors\n\n\n var bind = elem.getElementsByTagName(\"bind\");\n\n if (bind.length > 0) {\n var jidNode = bind[0].getElementsByTagName(\"jid\");\n\n if (jidNode.length > 0) {\n this.jid = Strophe.getText(jidNode[0]);\n\n if (this.do_session) {\n this._establishSession();\n } else {\n this.authenticated = true;\n\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n }\n }\n } else {\n Strophe.warn(\"Resource binding failed.\");\n\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n\n return false;\n }\n },\n\n /** PrivateFunction: _establishSession\n * Send IQ request to establish a session with the XMPP server.\n *\n * See https://xmpp.org/rfcs/rfc3921.html#session\n *\n * Note: The protocol for session establishment has been determined as\n * unnecessary and removed in RFC-6121.\n */\n _establishSession: function _establishSession() {\n if (!this.do_session) {\n throw new Error(\"Strophe.Connection.prototype._establishSession \" + \"called but apparently \".concat(Strophe.NS.SESSION, \" wasn't advertised by the server\"));\n }\n\n this._addSysHandler(this._onSessionResultIQ.bind(this), null, null, null, \"_session_auth_2\");\n\n this.send($iq({\n type: \"set\",\n id: \"_session_auth_2\"\n }).c('session', {\n xmlns: Strophe.NS.SESSION\n }).tree());\n },\n\n /** PrivateFunction: _onSessionResultIQ\n * _Private_ handler for the server's IQ response to a client's session\n * request.\n *\n * This sets Connection.authenticated to true on success, which\n * starts the processing of user handlers.\n *\n * See https://xmpp.org/rfcs/rfc3921.html#session\n *\n * Note: The protocol for session establishment has been determined as\n * unnecessary and removed in RFC-6121.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _onSessionResultIQ: function _onSessionResultIQ(elem) {\n if (elem.getAttribute(\"type\") === \"result\") {\n this.authenticated = true;\n\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n } else if (elem.getAttribute(\"type\") === \"error\") {\n Strophe.warn(\"Session creation failed.\");\n\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n\n return false;\n }\n\n return false;\n },\n\n /** PrivateFunction: _sasl_failure_cb\n * _Private_ handler for SASL authentication failure.\n *\n * Parameters:\n * (XMLElement) elem - The matching stanza.\n *\n * Returns:\n * false to remove the handler.\n */\n _sasl_failure_cb: function _sasl_failure_cb(elem) {\n // delete unneeded handlers\n if (this._sasl_success_handler) {\n this.deleteHandler(this._sasl_success_handler);\n this._sasl_success_handler = null;\n }\n\n if (this._sasl_challenge_handler) {\n this.deleteHandler(this._sasl_challenge_handler);\n this._sasl_challenge_handler = null;\n }\n\n if (this._sasl_mechanism) this._sasl_mechanism.onFailure();\n\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n\n return false;\n },\n\n /** PrivateFunction: _auth2_cb\n * _Private_ handler to finish legacy authentication.\n *\n * This handler is called when the result from the jabber:iq:auth\n * stanza is returned.\n *\n * Parameters:\n * (XMLElement) elem - The stanza that triggered the callback.\n *\n * Returns:\n * false to remove the handler.\n */\n _auth2_cb: function _auth2_cb(elem) {\n if (elem.getAttribute(\"type\") === \"result\") {\n this.authenticated = true;\n\n this._changeConnectStatus(Strophe.Status.CONNECTED, null);\n } else if (elem.getAttribute(\"type\") === \"error\") {\n this._changeConnectStatus(Strophe.Status.AUTHFAIL, null, elem);\n\n this.disconnect('authentication failed');\n }\n\n return false;\n },\n\n /** PrivateFunction: _addSysTimedHandler\n * _Private_ function to add a system level timed handler.\n *\n * This function is used to add a Strophe.TimedHandler for the\n * library code. System timed handlers are allowed to run before\n * authentication is complete.\n *\n * Parameters:\n * (Integer) period - The period of the handler.\n * (Function) handler - The callback function.\n */\n _addSysTimedHandler: function _addSysTimedHandler(period, handler) {\n var thand = new Strophe.TimedHandler(period, handler);\n thand.user = false;\n this.addTimeds.push(thand);\n return thand;\n },\n\n /** PrivateFunction: _addSysHandler\n * _Private_ function to add a system level stanza handler.\n *\n * This function is used to add a Strophe.Handler for the\n * library code. System stanza handlers are allowed to run before\n * authentication is complete.\n *\n * Parameters:\n * (Function) handler - The callback function.\n * (String) ns - The namespace to match.\n * (String) name - The stanza name to match.\n * (String) type - The stanza type attribute to match.\n * (String) id - The stanza id attribute to match.\n */\n _addSysHandler: function _addSysHandler(handler, ns, name, type, id) {\n var hand = new Strophe.Handler(handler, ns, name, type, id);\n hand.user = false;\n this.addHandlers.push(hand);\n return hand;\n },\n\n /** PrivateFunction: _onDisconnectTimeout\n * _Private_ timeout handler for handling non-graceful disconnection.\n *\n * If the graceful disconnect process does not complete within the\n * time allotted, this handler finishes the disconnect anyway.\n *\n * Returns:\n * false to remove the handler.\n */\n _onDisconnectTimeout: function _onDisconnectTimeout() {\n Strophe.debug(\"_onDisconnectTimeout was called\");\n\n this._changeConnectStatus(Strophe.Status.CONNTIMEOUT, null);\n\n this._proto._onDisconnectTimeout(); // actually disconnect\n\n\n this._doDisconnect();\n\n return false;\n },\n\n /** PrivateFunction: _onIdle\n * _Private_ handler to process events during idle cycle.\n *\n * This handler is called every 100ms to fire timed handlers that\n * are ready and keep poll requests going.\n */\n _onIdle: function _onIdle() {\n var _this8 = this;\n\n // add timed handlers scheduled for addition\n // NOTE: we add before remove in the case a timed handler is\n // added and then deleted before the next _onIdle() call.\n while (this.addTimeds.length > 0) {\n this.timedHandlers.push(this.addTimeds.pop());\n } // remove timed handlers that have been scheduled for deletion\n\n\n while (this.removeTimeds.length > 0) {\n var thand = this.removeTimeds.pop();\n var i = this.timedHandlers.indexOf(thand);\n\n if (i >= 0) {\n this.timedHandlers.splice(i, 1);\n }\n } // call ready timed handlers\n\n\n var now = new Date().getTime();\n var newList = [];\n\n for (var _i6 = 0; _i6 < this.timedHandlers.length; _i6++) {\n var _thand = this.timedHandlers[_i6];\n\n if (this.authenticated || !_thand.user) {\n var since = _thand.lastCalled + _thand.period;\n\n if (since - now <= 0) {\n if (_thand.run()) {\n newList.push(_thand);\n }\n } else {\n newList.push(_thand);\n }\n }\n }\n\n this.timedHandlers = newList;\n clearTimeout(this._idleTimeout);\n\n this._proto._onIdle(); // reactivate the timer only if connected\n\n\n if (this.connected) {\n this._idleTimeout = setTimeout(function () {\n return _this8._onIdle();\n }, 100);\n }\n }\n };\n /** Class: Strophe.SASLMechanism\n *\n * encapsulates SASL authentication mechanisms.\n *\n * User code may override the priority for each mechanism or disable it completely.\n * See for information about changing priority and for informatian on\n * how to disable a mechanism.\n *\n * By default, all mechanisms are enabled and the priorities are\n *\n * OAUTHBEARER - 60\n * SCRAM-SHA1 - 50\n * DIGEST-MD5 - 40\n * PLAIN - 30\n * ANONYMOUS - 20\n * EXTERNAL - 10\n *\n * See: Strophe.Connection.addSupportedSASLMechanisms\n */\n\n /**\n * PrivateConstructor: Strophe.SASLMechanism\n * SASL auth mechanism abstraction.\n *\n * Parameters:\n * (String) name - SASL Mechanism name.\n * (Boolean) isClientFirst - If client should send response first without challenge.\n * (Number) priority - Priority.\n *\n * Returns:\n * A new Strophe.SASLMechanism object.\n */\n\n Strophe.SASLMechanism = function (name, isClientFirst, priority) {\n /** PrivateVariable: name\n * Mechanism name.\n */\n this.name = name;\n /** PrivateVariable: isClientFirst\n * If client sends response without initial server challenge.\n */\n\n this.isClientFirst = isClientFirst;\n /** Variable: priority\n * Determines which is chosen for authentication (Higher is better).\n * Users may override this to prioritize mechanisms differently.\n *\n * In the default configuration the priorities are\n *\n * SCRAM-SHA1 - 40\n * DIGEST-MD5 - 30\n * Plain - 20\n *\n * Example: (This will cause Strophe to choose the mechanism that the server sent first)\n *\n * > Strophe.SASLMD5.priority = Strophe.SASLSHA1.priority;\n *\n * See for a list of available mechanisms.\n *\n */\n\n this.priority = priority;\n };\n\n Strophe.SASLMechanism.prototype = {\n /**\n * Function: test\n * Checks if mechanism able to run.\n * To disable a mechanism, make this return false;\n *\n * To disable plain authentication run\n * > Strophe.SASLPlain.test = function() {\n * > return false;\n * > }\n *\n * See for a list of available mechanisms.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n *\n * Returns:\n * (Boolean) If mechanism was able to run.\n */\n test: function test(connection) {\n return true;\n },\n\n /** PrivateFunction: onStart\n * Called before starting mechanism on some connection.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n */\n onStart: function onStart(connection) {\n this._connection = connection;\n },\n\n /** PrivateFunction: onChallenge\n * Called by protocol implementation on incoming challenge. If client is\n * first (isClientFirst === true) challenge will be null on the first call.\n *\n * Parameters:\n * (Strophe.Connection) connection - Target Connection.\n * (String) challenge - current challenge to handle.\n *\n * Returns:\n * (String) Mechanism response.\n */\n onChallenge: function onChallenge(connection, challenge) {\n throw new Error(\"You should implement challenge handling!\");\n },\n\n /** PrivateFunction: onFailure\n * Protocol informs mechanism implementation about SASL failure.\n */\n onFailure: function onFailure() {\n this._connection = null;\n },\n\n /** PrivateFunction: onSuccess\n * Protocol informs mechanism implementation about SASL success.\n */\n onSuccess: function onSuccess() {\n this._connection = null;\n }\n };\n /** Constants: SASL mechanisms\n * Available authentication mechanisms\n *\n * Strophe.SASLAnonymous - SASL ANONYMOUS authentication.\n * Strophe.SASLPlain - SASL PLAIN authentication.\n * Strophe.SASLMD5 - SASL DIGEST-MD5 authentication\n * Strophe.SASLSHA1 - SASL SCRAM-SHA1 authentication\n * Strophe.SASLOAuthBearer - SASL OAuth Bearer authentication\n * Strophe.SASLExternal - SASL EXTERNAL authentication\n * Strophe.SASLXOAuth2 - SASL X-OAuth2 authentication\n */\n // Building SASL callbacks\n\n /** PrivateConstructor: SASLAnonymous\n * SASL ANONYMOUS authentication.\n */\n\n Strophe.SASLAnonymous = function () {};\n\n Strophe.SASLAnonymous.prototype = new Strophe.SASLMechanism(\"ANONYMOUS\", false, 20);\n\n Strophe.SASLAnonymous.prototype.test = function (connection) {\n return connection.authcid === null;\n };\n /** PrivateConstructor: SASLPlain\n * SASL PLAIN authentication.\n */\n\n\n Strophe.SASLPlain = function () {};\n\n Strophe.SASLPlain.prototype = new Strophe.SASLMechanism(\"PLAIN\", true, 50);\n\n Strophe.SASLPlain.prototype.test = function (connection) {\n return connection.authcid !== null;\n };\n\n Strophe.SASLPlain.prototype.onChallenge = function (connection) {\n var auth_str = connection.authzid;\n auth_str = auth_str + \"\\0\";\n auth_str = auth_str + connection.authcid;\n auth_str = auth_str + \"\\0\";\n auth_str = auth_str + connection.pass;\n return utils.utf16to8(auth_str);\n };\n /** PrivateConstructor: SASLSHA1\n * SASL SCRAM SHA 1 authentication.\n */\n\n\n Strophe.SASLSHA1 = function () {};\n\n Strophe.SASLSHA1.prototype = new Strophe.SASLMechanism(\"SCRAM-SHA-1\", true, 70);\n\n Strophe.SASLSHA1.prototype.test = function (connection) {\n return connection.authcid !== null;\n };\n\n Strophe.SASLSHA1.prototype.onChallenge = function (connection, challenge, test_cnonce) {\n var cnonce = test_cnonce || MD5.hexdigest(\"\" + Math.random() * 1234567890);\n var auth_str = \"n=\" + utils.utf16to8(connection.authcid);\n auth_str += \",r=\";\n auth_str += cnonce;\n connection._sasl_data.cnonce = cnonce;\n connection._sasl_data[\"client-first-message-bare\"] = auth_str;\n auth_str = \"n,,\" + auth_str;\n\n this.onChallenge = function (connection, challenge) {\n var nonce, salt, iter, Hi, U, U_old, i, k;\n var responseText = \"c=biws,\";\n var authMessage = \"\".concat(connection._sasl_data[\"client-first-message-bare\"], \",\").concat(challenge, \",\");\n var cnonce = connection._sasl_data.cnonce;\n var attribMatch = /([a-z]+)=([^,]+)(,|$)/;\n\n while (challenge.match(attribMatch)) {\n var matches = challenge.match(attribMatch);\n challenge = challenge.replace(matches[0], \"\");\n\n switch (matches[1]) {\n case \"r\":\n nonce = matches[2];\n break;\n\n case \"s\":\n salt = matches[2];\n break;\n\n case \"i\":\n iter = matches[2];\n break;\n }\n }\n\n if (nonce.substr(0, cnonce.length) !== cnonce) {\n connection._sasl_data = {};\n return connection._sasl_failure_cb();\n }\n\n responseText += \"r=\" + nonce;\n authMessage += responseText;\n salt = atob(salt);\n salt += \"\\x00\\x00\\x00\\x01\";\n var pass = utils.utf16to8(connection.pass);\n Hi = U_old = SHA1.core_hmac_sha1(pass, salt);\n\n for (i = 1; i < iter; i++) {\n U = SHA1.core_hmac_sha1(pass, SHA1.binb2str(U_old));\n\n for (k = 0; k < 5; k++) {\n Hi[k] ^= U[k];\n }\n\n U_old = U;\n }\n\n Hi = SHA1.binb2str(Hi);\n var clientKey = SHA1.core_hmac_sha1(Hi, \"Client Key\");\n var serverKey = SHA1.str_hmac_sha1(Hi, \"Server Key\");\n var clientSignature = SHA1.core_hmac_sha1(SHA1.str_sha1(SHA1.binb2str(clientKey)), authMessage);\n connection._sasl_data[\"server-signature\"] = SHA1.b64_hmac_sha1(serverKey, authMessage);\n\n for (k = 0; k < 5; k++) {\n clientKey[k] ^= clientSignature[k];\n }\n\n responseText += \",p=\" + btoa(SHA1.binb2str(clientKey));\n return responseText;\n };\n\n return auth_str;\n };\n /** PrivateConstructor: SASLMD5\n * SASL DIGEST MD5 authentication.\n */\n\n\n Strophe.SASLMD5 = function () {};\n\n Strophe.SASLMD5.prototype = new Strophe.SASLMechanism(\"DIGEST-MD5\", false, 60);\n\n Strophe.SASLMD5.prototype.test = function (connection) {\n return connection.authcid !== null;\n };\n /** PrivateFunction: _quote\n * _Private_ utility function to backslash escape and quote strings.\n *\n * Parameters:\n * (String) str - The string to be quoted.\n *\n * Returns:\n * quoted string\n */\n\n\n Strophe.SASLMD5.prototype._quote = function (str) {\n return '\"' + str.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"') + '\"'; //\" end string workaround for emacs\n };\n\n Strophe.SASLMD5.prototype.onChallenge = function (connection, challenge, test_cnonce) {\n var attribMatch = /([a-z]+)=(\"[^\"]+\"|[^,\"]+)(?:,|$)/;\n var cnonce = test_cnonce || MD5.hexdigest(\"\" + Math.random() * 1234567890);\n var realm = \"\";\n var host = null;\n var nonce = \"\";\n var qop = \"\";\n\n while (challenge.match(attribMatch)) {\n var matches = challenge.match(attribMatch);\n challenge = challenge.replace(matches[0], \"\");\n matches[2] = matches[2].replace(/^\"(.+)\"$/, \"$1\");\n\n switch (matches[1]) {\n case \"realm\":\n realm = matches[2];\n break;\n\n case \"nonce\":\n nonce = matches[2];\n break;\n\n case \"qop\":\n qop = matches[2];\n break;\n\n case \"host\":\n host = matches[2];\n break;\n }\n }\n\n var digest_uri = connection.servtype + \"/\" + connection.domain;\n\n if (host !== null) {\n digest_uri = digest_uri + \"/\" + host;\n }\n\n var cred = utils.utf16to8(connection.authcid + \":\" + realm + \":\" + this._connection.pass);\n var A1 = MD5.hash(cred) + \":\" + nonce + \":\" + cnonce;\n var A2 = 'AUTHENTICATE:' + digest_uri;\n var responseText = \"\";\n responseText += 'charset=utf-8,';\n responseText += 'username=' + this._quote(utils.utf16to8(connection.authcid)) + ',';\n responseText += 'realm=' + this._quote(realm) + ',';\n responseText += 'nonce=' + this._quote(nonce) + ',';\n responseText += 'nc=00000001,';\n responseText += 'cnonce=' + this._quote(cnonce) + ',';\n responseText += 'digest-uri=' + this._quote(digest_uri) + ',';\n responseText += 'response=' + MD5.hexdigest(MD5.hexdigest(A1) + \":\" + nonce + \":00000001:\" + cnonce + \":auth:\" + MD5.hexdigest(A2)) + \",\";\n responseText += 'qop=auth';\n\n this.onChallenge = function () {\n return \"\";\n };\n\n return responseText;\n };\n /** PrivateConstructor: SASLOAuthBearer\n * SASL OAuth Bearer authentication.\n */\n\n\n Strophe.SASLOAuthBearer = function () {};\n\n Strophe.SASLOAuthBearer.prototype = new Strophe.SASLMechanism(\"OAUTHBEARER\", true, 40);\n\n Strophe.SASLOAuthBearer.prototype.test = function (connection) {\n return connection.pass !== null;\n };\n\n Strophe.SASLOAuthBearer.prototype.onChallenge = function (connection) {\n var auth_str = 'n,';\n\n if (connection.authcid !== null) {\n auth_str = auth_str + 'a=' + connection.authzid;\n }\n\n auth_str = auth_str + ',';\n auth_str = auth_str + \"\\x01\";\n auth_str = auth_str + 'auth=Bearer ';\n auth_str = auth_str + connection.pass;\n auth_str = auth_str + \"\\x01\";\n auth_str = auth_str + \"\\x01\";\n return utils.utf16to8(auth_str);\n };\n /** PrivateConstructor: SASLExternal\n * SASL EXTERNAL authentication.\n *\n * The EXTERNAL mechanism allows a client to request the server to use\n * credentials established by means external to the mechanism to\n * authenticate the client. The external means may be, for instance,\n * TLS services.\n */\n\n\n Strophe.SASLExternal = function () {};\n\n Strophe.SASLExternal.prototype = new Strophe.SASLMechanism(\"EXTERNAL\", true, 10);\n\n Strophe.SASLExternal.prototype.onChallenge = function (connection) {\n /** According to XEP-178, an authzid SHOULD NOT be presented when the\n * authcid contained or implied in the client certificate is the JID (i.e.\n * authzid) with which the user wants to log in as.\n *\n * To NOT send the authzid, the user should therefore set the authcid equal\n * to the JID when instantiating a new Strophe.Connection object.\n */\n return connection.authcid === connection.authzid ? '' : connection.authzid;\n };\n /** PrivateConstructor: SASLXOAuth2\n * SASL X-OAuth2 authentication.\n */\n\n\n Strophe.SASLXOAuth2 = function () {};\n\n Strophe.SASLXOAuth2.prototype = new Strophe.SASLMechanism(\"X-OAUTH2\", true, 30);\n\n Strophe.SASLXOAuth2.prototype.test = function (connection) {\n return connection.pass !== null;\n };\n\n Strophe.SASLXOAuth2.prototype.onChallenge = function (connection) {\n var auth_str = \"\\0\";\n\n if (connection.authcid !== null) {\n auth_str = auth_str + connection.authzid;\n }\n\n auth_str = auth_str + \"\\0\";\n auth_str = auth_str + connection.pass;\n return utils.utf16to8(auth_str);\n };\n var core = {\n 'Strophe': Strophe,\n '$build': $build,\n '$iq': $iq,\n '$msg': $msg,\n '$pres': $pres,\n 'SHA1': SHA1,\n 'MD5': MD5,\n 'b64_hmac_sha1': SHA1.b64_hmac_sha1,\n 'b64_sha1': SHA1.b64_sha1,\n 'str_hmac_sha1': SHA1.str_hmac_sha1,\n 'str_sha1': SHA1.str_sha1\n };\n\n /*\n This program is distributed under the terms of the MIT license.\n Please see the LICENSE file for details.\n\n Copyright 2006-2008, OGG, LLC\n */\n var Strophe$1 = core.Strophe;\n var $build$1 = core.$build;\n /** PrivateClass: Strophe.Request\n * _Private_ helper class that provides a cross implementation abstraction\n * for a BOSH related XMLHttpRequest.\n *\n * The Strophe.Request class is used internally to encapsulate BOSH request\n * information. It is not meant to be used from user's code.\n */\n\n /** PrivateConstructor: Strophe.Request\n * Create and initialize a new Strophe.Request object.\n *\n * Parameters:\n * (XMLElement) elem - The XML data to be sent in the request.\n * (Function) func - The function that will be called when the\n * XMLHttpRequest readyState changes.\n * (Integer) rid - The BOSH rid attribute associated with this request.\n * (Integer) sends - The number of times this same request has been sent.\n */\n\n Strophe$1.Request = function (elem, func, rid, sends) {\n this.id = ++Strophe$1._requestId;\n this.xmlData = elem;\n this.data = Strophe$1.serialize(elem); // save original function in case we need to make a new request\n // from this one.\n\n this.origFunc = func;\n this.func = func;\n this.rid = rid;\n this.date = NaN;\n this.sends = sends || 0;\n this.abort = false;\n this.dead = null;\n\n this.age = function () {\n if (!this.date) {\n return 0;\n }\n\n var now = new Date();\n return (now - this.date) / 1000;\n };\n\n this.timeDead = function () {\n if (!this.dead) {\n return 0;\n }\n\n var now = new Date();\n return (now - this.dead) / 1000;\n };\n\n this.xhr = this._newXHR();\n };\n\n Strophe$1.Request.prototype = {\n /** PrivateFunction: getResponse\n * Get a response from the underlying XMLHttpRequest.\n *\n * This function attempts to get a response from the request and checks\n * for errors.\n *\n * Throws:\n * \"parsererror\" - A parser error occured.\n * \"bad-format\" - The entity has sent XML that cannot be processed.\n *\n * Returns:\n * The DOM element tree of the response.\n */\n getResponse: function getResponse() {\n var node = null;\n\n if (this.xhr.responseXML && this.xhr.responseXML.documentElement) {\n node = this.xhr.responseXML.documentElement;\n\n if (node.tagName === \"parsererror\") {\n Strophe$1.error(\"invalid response received\");\n Strophe$1.error(\"responseText: \" + this.xhr.responseText);\n Strophe$1.error(\"responseXML: \" + Strophe$1.serialize(this.xhr.responseXML));\n throw new Error(\"parsererror\");\n }\n } else if (this.xhr.responseText) {\n // In React Native, we may get responseText but no responseXML. We can try to parse it manually.\n Strophe$1.debug(\"Got responseText but no responseXML; attempting to parse it with DOMParser...\");\n node = new DOMParser().parseFromString(this.xhr.responseText, 'application/xml').documentElement;\n\n if (!node) {\n throw new Error('Parsing produced null node');\n } else if (node.querySelector('parsererror')) {\n Strophe$1.error(\"invalid response received: \" + node.querySelector('parsererror').textContent);\n Strophe$1.error(\"responseText: \" + this.xhr.responseText);\n var error = new Error();\n error.name = Strophe$1.ErrorCondition.BAD_FORMAT;\n throw error;\n }\n }\n\n return node;\n },\n\n /** PrivateFunction: _newXHR\n * _Private_ helper function to create XMLHttpRequests.\n *\n * This function creates XMLHttpRequests across all implementations.\n *\n * Returns:\n * A new XMLHttpRequest.\n */\n _newXHR: function _newXHR() {\n var xhr = null;\n\n if (window.XMLHttpRequest) {\n xhr = new XMLHttpRequest();\n\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType(\"text/xml; charset=utf-8\");\n }\n } else if (window.ActiveXObject) {\n xhr = new ActiveXObject(\"Microsoft.XMLHTTP\");\n } // use Function.bind() to prepend ourselves as an argument\n\n\n xhr.onreadystatechange = this.func.bind(null, this);\n return xhr;\n }\n };\n /** Class: Strophe.Bosh\n * _Private_ helper class that handles BOSH Connections\n *\n * The Strophe.Bosh class is used internally by Strophe.Connection\n * to encapsulate BOSH sessions. It is not meant to be used from user's code.\n */\n\n /** File: bosh.js\n * A JavaScript library to enable BOSH in Strophejs.\n *\n * this library uses Bidirectional-streams Over Synchronous HTTP (BOSH)\n * to emulate a persistent, stateful, two-way connection to an XMPP server.\n * More information on BOSH can be found in XEP 124.\n */\n\n /** PrivateConstructor: Strophe.Bosh\n * Create and initialize a Strophe.Bosh object.\n *\n * Parameters:\n * (Strophe.Connection) connection - The Strophe.Connection that will use BOSH.\n *\n * Returns:\n * A new Strophe.Bosh object.\n */\n\n Strophe$1.Bosh = function (connection) {\n this._conn = connection;\n /* request id for body tags */\n\n this.rid = Math.floor(Math.random() * 4294967295);\n /* The current session ID. */\n\n this.sid = null; // default BOSH values\n\n this.hold = 1;\n this.wait = 60;\n this.window = 5;\n this.errors = 0;\n this.inactivity = null;\n this.lastResponseHeaders = null;\n this._requests = [];\n };\n\n Strophe$1.Bosh.prototype = {\n /** Variable: strip\n *\n * BOSH-Connections will have all stanzas wrapped in a tag when\n * passed to or .\n * To strip this tag, User code can set to \"body\":\n *\n * > Strophe.Bosh.prototype.strip = \"body\";\n *\n * This will enable stripping of the body tag in both\n * and .\n */\n strip: null,\n\n /** PrivateFunction: _buildBody\n * _Private_ helper function to generate the wrapper for BOSH.\n *\n * Returns:\n * A Strophe.Builder with a element.\n */\n _buildBody: function _buildBody() {\n var bodyWrap = $build$1('body', {\n 'rid': this.rid++,\n 'xmlns': Strophe$1.NS.HTTPBIND\n });\n\n if (this.sid !== null) {\n bodyWrap.attrs({\n 'sid': this.sid\n });\n }\n\n if (this._conn.options.keepalive && this._conn._sessionCachingSupported()) {\n this._cacheSession();\n }\n\n return bodyWrap;\n },\n\n /** PrivateFunction: _reset\n * Reset the connection.\n *\n * This function is called by the reset function of the Strophe Connection\n */\n _reset: function _reset() {\n this.rid = Math.floor(Math.random() * 4294967295);\n this.sid = null;\n this.errors = 0;\n\n if (this._conn._sessionCachingSupported()) {\n window.sessionStorage.removeItem('strophe-bosh-session');\n }\n\n this._conn.nextValidRid(this.rid);\n },\n\n /** PrivateFunction: _connect\n * _Private_ function that initializes the BOSH connection.\n *\n * Creates and sends the Request that initializes the BOSH connection.\n */\n _connect: function _connect(wait, hold, route) {\n this.wait = wait || this.wait;\n this.hold = hold || this.hold;\n this.errors = 0;\n\n var body = this._buildBody().attrs({\n \"to\": this._conn.domain,\n \"xml:lang\": \"en\",\n \"wait\": this.wait,\n \"hold\": this.hold,\n \"content\": \"text/xml; charset=utf-8\",\n \"ver\": \"1.6\",\n \"xmpp:version\": \"1.0\",\n \"xmlns:xmpp\": Strophe$1.NS.BOSH\n });\n\n if (route) {\n body.attrs({\n 'route': route\n });\n }\n\n var _connect_cb = this._conn._connect_cb;\n\n this._requests.push(new Strophe$1.Request(body.tree(), this._onRequestStateChange.bind(this, _connect_cb.bind(this._conn)), body.tree().getAttribute(\"rid\")));\n\n this._throttledRequestHandler();\n },\n\n /** PrivateFunction: _attach\n * Attach to an already created and authenticated BOSH session.\n *\n * This function is provided to allow Strophe to attach to BOSH\n * sessions which have been created externally, perhaps by a Web\n * application. This is often used to support auto-login type features\n * without putting user credentials into the page.\n *\n * Parameters:\n * (String) jid - The full JID that is bound by the session.\n * (String) sid - The SID of the BOSH session.\n * (String) rid - The current RID of the BOSH session. This RID\n * will be used by the next request.\n * (Function) callback The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * Other settings will require tweaks to the Strophe.TIMEOUT value.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n _attach: function _attach(jid, sid, rid, callback, wait, hold, wind) {\n this._conn.jid = jid;\n this.sid = sid;\n this.rid = rid;\n this._conn.connect_callback = callback;\n this._conn.domain = Strophe$1.getDomainFromJid(this._conn.jid);\n this._conn.authenticated = true;\n this._conn.connected = true;\n this.wait = wait || this.wait;\n this.hold = hold || this.hold;\n this.window = wind || this.window;\n\n this._conn._changeConnectStatus(Strophe$1.Status.ATTACHED, null);\n },\n\n /** PrivateFunction: _restore\n * Attempt to restore a cached BOSH session\n *\n * Parameters:\n * (String) jid - The full JID that is bound by the session.\n * This parameter is optional but recommended, specifically in cases\n * where prebinded BOSH sessions are used where it's important to know\n * that the right session is being restored.\n * (Function) callback The connect callback function.\n * (Integer) wait - The optional HTTPBIND wait value. This is the\n * time the server will wait before returning an empty result for\n * a request. The default setting of 60 seconds is recommended.\n * Other settings will require tweaks to the Strophe.TIMEOUT value.\n * (Integer) hold - The optional HTTPBIND hold value. This is the\n * number of connections the server will hold at one time. This\n * should almost always be set to 1 (the default).\n * (Integer) wind - The optional HTTBIND window value. This is the\n * allowed range of request ids that are valid. The default is 5.\n */\n _restore: function _restore(jid, callback, wait, hold, wind) {\n var session = JSON.parse(window.sessionStorage.getItem('strophe-bosh-session'));\n\n if (typeof session !== \"undefined\" && session !== null && session.rid && session.sid && session.jid && (typeof jid === \"undefined\" || jid === null || Strophe$1.getBareJidFromJid(session.jid) === Strophe$1.getBareJidFromJid(jid) || // If authcid is null, then it's an anonymous login, so\n // we compare only the domains:\n Strophe$1.getNodeFromJid(jid) === null && Strophe$1.getDomainFromJid(session.jid) === jid)) {\n this._conn.restored = true;\n\n this._attach(session.jid, session.sid, session.rid, callback, wait, hold, wind);\n } else {\n var error = new Error(\"_restore: no restoreable session.\");\n error.name = \"StropheSessionError\";\n throw error;\n }\n },\n\n /** PrivateFunction: _cacheSession\n * _Private_ handler for the beforeunload event.\n *\n * This handler is used to process the Bosh-part of the initial request.\n * Parameters:\n * (Strophe.Request) bodyWrap - The received stanza.\n */\n _cacheSession: function _cacheSession() {\n if (this._conn.authenticated) {\n if (this._conn.jid && this.rid && this.sid) {\n window.sessionStorage.setItem('strophe-bosh-session', JSON.stringify({\n 'jid': this._conn.jid,\n 'rid': this.rid,\n 'sid': this.sid\n }));\n }\n } else {\n window.sessionStorage.removeItem('strophe-bosh-session');\n }\n },\n\n /** PrivateFunction: _connect_cb\n * _Private_ handler for initial connection request.\n *\n * This handler is used to process the Bosh-part of the initial request.\n * Parameters:\n * (Strophe.Request) bodyWrap - The received stanza.\n */\n _connect_cb: function _connect_cb(bodyWrap) {\n var typ = bodyWrap.getAttribute(\"type\");\n\n if (typ !== null && typ === \"terminate\") {\n // an error occurred\n var cond = bodyWrap.getAttribute(\"condition\");\n Strophe$1.error(\"BOSH-Connection failed: \" + cond);\n var conflict = bodyWrap.getElementsByTagName(\"conflict\");\n\n if (cond !== null) {\n if (cond === \"remote-stream-error\" && conflict.length > 0) {\n cond = \"conflict\";\n }\n\n this._conn._changeConnectStatus(Strophe$1.Status.CONNFAIL, cond);\n } else {\n this._conn._changeConnectStatus(Strophe$1.Status.CONNFAIL, \"unknown\");\n }\n\n this._conn._doDisconnect(cond);\n\n return Strophe$1.Status.CONNFAIL;\n } // check to make sure we don't overwrite these if _connect_cb is\n // called multiple times in the case of missing stream:features\n\n\n if (!this.sid) {\n this.sid = bodyWrap.getAttribute(\"sid\");\n }\n\n var wind = bodyWrap.getAttribute('requests');\n\n if (wind) {\n this.window = parseInt(wind, 10);\n }\n\n var hold = bodyWrap.getAttribute('hold');\n\n if (hold) {\n this.hold = parseInt(hold, 10);\n }\n\n var wait = bodyWrap.getAttribute('wait');\n\n if (wait) {\n this.wait = parseInt(wait, 10);\n }\n\n var inactivity = bodyWrap.getAttribute('inactivity');\n\n if (inactivity) {\n this.inactivity = parseInt(inactivity, 10);\n }\n },\n\n /** PrivateFunction: _disconnect\n * _Private_ part of Connection.disconnect for Bosh\n *\n * Parameters:\n * (Request) pres - This stanza will be sent before disconnecting.\n */\n _disconnect: function _disconnect(pres) {\n this._sendTerminate(pres);\n },\n\n /** PrivateFunction: _doDisconnect\n * _Private_ function to disconnect.\n *\n * Resets the SID and RID.\n */\n _doDisconnect: function _doDisconnect() {\n this.sid = null;\n this.rid = Math.floor(Math.random() * 4294967295);\n\n if (this._conn._sessionCachingSupported()) {\n window.sessionStorage.removeItem('strophe-bosh-session');\n }\n\n this._conn.nextValidRid(this.rid);\n },\n\n /** PrivateFunction: _emptyQueue\n * _Private_ function to check if the Request queue is empty.\n *\n * Returns:\n * True, if there are no Requests queued, False otherwise.\n */\n _emptyQueue: function _emptyQueue() {\n return this._requests.length === 0;\n },\n\n /** PrivateFunction: _callProtocolErrorHandlers\n * _Private_ function to call error handlers registered for HTTP errors.\n *\n * Parameters:\n * (Strophe.Request) req - The request that is changing readyState.\n */\n _callProtocolErrorHandlers: function _callProtocolErrorHandlers(req) {\n var reqStatus = this._getRequestStatus(req);\n\n var err_callback = this._conn.protocolErrorHandlers.HTTP[reqStatus];\n\n if (err_callback) {\n err_callback.call(this, reqStatus);\n }\n },\n\n /** PrivateFunction: _hitError\n * _Private_ function to handle the error count.\n *\n * Requests are resent automatically until their error count reaches\n * 5. Each time an error is encountered, this function is called to\n * increment the count and disconnect if the count is too high.\n *\n * Parameters:\n * (Integer) reqStatus - The request status.\n */\n _hitError: function _hitError(reqStatus) {\n this.errors++;\n Strophe$1.warn(\"request errored, status: \" + reqStatus + \", number of errors: \" + this.errors);\n\n if (this.errors > 4) {\n this._conn._onDisconnectTimeout();\n }\n },\n\n /** PrivateFunction: _no_auth_received\n *\n * Called on stream start/restart when no stream:features\n * has been received and sends a blank poll request.\n */\n _no_auth_received: function _no_auth_received(callback) {\n Strophe$1.warn(\"Server did not yet offer a supported authentication \" + \"mechanism. Sending a blank poll request.\");\n\n if (callback) {\n callback = callback.bind(this._conn);\n } else {\n callback = this._conn._connect_cb.bind(this._conn);\n }\n\n var body = this._buildBody();\n\n this._requests.push(new Strophe$1.Request(body.tree(), this._onRequestStateChange.bind(this, callback), body.tree().getAttribute(\"rid\")));\n\n this._throttledRequestHandler();\n },\n\n /** PrivateFunction: _onDisconnectTimeout\n * _Private_ timeout handler for handling non-graceful disconnection.\n *\n * Cancels all remaining Requests and clears the queue.\n */\n _onDisconnectTimeout: function _onDisconnectTimeout() {\n this._abortAllRequests();\n },\n\n /** PrivateFunction: _abortAllRequests\n * _Private_ helper function that makes sure all pending requests are aborted.\n */\n _abortAllRequests: function _abortAllRequests() {\n while (this._requests.length > 0) {\n var req = this._requests.pop();\n\n req.abort = true;\n req.xhr.abort();\n\n req.xhr.onreadystatechange = function () {};\n }\n },\n\n /** PrivateFunction: _onIdle\n * _Private_ handler called by Strophe.Connection._onIdle\n *\n * Sends all queued Requests or polls with empty Request if there are none.\n */\n _onIdle: function _onIdle() {\n var data = this._conn._data; // if no requests are in progress, poll\n\n if (this._conn.authenticated && this._requests.length === 0 && data.length === 0 && !this._conn.disconnecting) {\n Strophe$1.debug(\"no requests during idle cycle, sending blank request\");\n data.push(null);\n }\n\n if (this._conn.paused) {\n return;\n }\n\n if (this._requests.length < 2 && data.length > 0) {\n var body = this._buildBody();\n\n for (var i = 0; i < data.length; i++) {\n if (data[i] !== null) {\n if (data[i] === \"restart\") {\n body.attrs({\n \"to\": this._conn.domain,\n \"xml:lang\": \"en\",\n \"xmpp:restart\": \"true\",\n \"xmlns:xmpp\": Strophe$1.NS.BOSH\n });\n } else {\n body.cnode(data[i]).up();\n }\n }\n }\n\n delete this._conn._data;\n this._conn._data = [];\n\n this._requests.push(new Strophe$1.Request(body.tree(), this._onRequestStateChange.bind(this, this._conn._dataRecv.bind(this._conn)), body.tree().getAttribute(\"rid\")));\n\n this._throttledRequestHandler();\n }\n\n if (this._requests.length > 0) {\n var time_elapsed = this._requests[0].age();\n\n if (this._requests[0].dead !== null) {\n if (this._requests[0].timeDead() > Math.floor(Strophe$1.SECONDARY_TIMEOUT * this.wait)) {\n this._throttledRequestHandler();\n }\n }\n\n if (time_elapsed > Math.floor(Strophe$1.TIMEOUT * this.wait)) {\n Strophe$1.warn(\"Request \" + this._requests[0].id + \" timed out, over \" + Math.floor(Strophe$1.TIMEOUT * this.wait) + \" seconds since last activity\");\n\n this._throttledRequestHandler();\n }\n }\n },\n\n /** PrivateFunction: _getRequestStatus\n *\n * Returns the HTTP status code from a Strophe.Request\n *\n * Parameters:\n * (Strophe.Request) req - The Strophe.Request instance.\n * (Integer) def - The default value that should be returned if no\n * status value was found.\n */\n _getRequestStatus: function _getRequestStatus(req, def) {\n var reqStatus;\n\n if (req.xhr.readyState === 4) {\n try {\n reqStatus = req.xhr.status;\n } catch (e) {\n // ignore errors from undefined status attribute. Works\n // around a browser bug\n Strophe$1.error(\"Caught an error while retrieving a request's status, \" + \"reqStatus: \" + reqStatus);\n }\n }\n\n if (typeof reqStatus === \"undefined\") {\n reqStatus = typeof def === 'number' ? def : 0;\n }\n\n return reqStatus;\n },\n\n /** PrivateFunction: _onRequestStateChange\n * _Private_ handler for Strophe.Request state changes.\n *\n * This function is called when the XMLHttpRequest readyState changes.\n * It contains a lot of error handling logic for the many ways that\n * requests can fail, and calls the request callback when requests\n * succeed.\n *\n * Parameters:\n * (Function) func - The handler for the request.\n * (Strophe.Request) req - The request that is changing readyState.\n */\n _onRequestStateChange: function _onRequestStateChange(func, req) {\n Strophe$1.debug(\"request id \" + req.id + \".\" + req.sends + \" state changed to \" + req.xhr.readyState);\n\n if (req.abort) {\n req.abort = false;\n return;\n }\n\n if (req.xhr.readyState !== 4) {\n // The request is not yet complete\n return;\n }\n\n var reqStatus = this._getRequestStatus(req);\n\n this.lastResponseHeaders = req.xhr.getAllResponseHeaders();\n\n if (this.disconnecting && reqStatus >= 400) {\n this._hitError(reqStatus);\n\n this._callProtocolErrorHandlers(req);\n\n return;\n }\n\n var valid_request = reqStatus > 0 && reqStatus < 500;\n var too_many_retries = req.sends > this._conn.maxRetries;\n\n if (valid_request || too_many_retries) {\n // remove from internal queue\n this._removeRequest(req);\n\n Strophe$1.debug(\"request id \" + req.id + \" should now be removed\");\n }\n\n if (reqStatus === 200) {\n // request succeeded\n var reqIs0 = this._requests[0] === req;\n var reqIs1 = this._requests[1] === req; // if request 1 finished, or request 0 finished and request\n // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to\n // restart the other - both will be in the first spot, as the\n // completed request has been removed from the queue already\n\n if (reqIs1 || reqIs0 && this._requests.length > 0 && this._requests[0].age() > Math.floor(Strophe$1.SECONDARY_TIMEOUT * this.wait)) {\n this._restartRequest(0);\n }\n\n this._conn.nextValidRid(Number(req.rid) + 1);\n\n Strophe$1.debug(\"request id \" + req.id + \".\" + req.sends + \" got 200\");\n func(req); // call handler\n\n this.errors = 0;\n } else if (reqStatus === 0 || reqStatus >= 400 && reqStatus < 600 || reqStatus >= 12000) {\n // request failed\n Strophe$1.error(\"request id \" + req.id + \".\" + req.sends + \" error \" + reqStatus + \" happened\");\n\n this._hitError(reqStatus);\n\n this._callProtocolErrorHandlers(req);\n\n if (reqStatus >= 400 && reqStatus < 500) {\n this._conn._changeConnectStatus(Strophe$1.Status.DISCONNECTING, null);\n\n this._conn._doDisconnect();\n }\n } else {\n Strophe$1.error(\"request id \" + req.id + \".\" + req.sends + \" error \" + reqStatus + \" happened\");\n }\n\n if (!valid_request && !too_many_retries) {\n this._throttledRequestHandler();\n } else if (too_many_retries && !this._conn.connected) {\n this._conn._changeConnectStatus(Strophe$1.Status.CONNFAIL, \"giving-up\");\n }\n },\n\n /** PrivateFunction: _processRequest\n * _Private_ function to process a request in the queue.\n *\n * This function takes requests off the queue and sends them and\n * restarts dead requests.\n *\n * Parameters:\n * (Integer) i - The index of the request in the queue.\n */\n _processRequest: function _processRequest(i) {\n var _this = this;\n\n var req = this._requests[i];\n\n var reqStatus = this._getRequestStatus(req, -1); // make sure we limit the number of retries\n\n\n if (req.sends > this._conn.maxRetries) {\n this._conn._onDisconnectTimeout();\n\n return;\n }\n\n var time_elapsed = req.age();\n var primary_timeout = !isNaN(time_elapsed) && time_elapsed > Math.floor(Strophe$1.TIMEOUT * this.wait);\n var secondary_timeout = req.dead !== null && req.timeDead() > Math.floor(Strophe$1.SECONDARY_TIMEOUT * this.wait);\n var server_error = req.xhr.readyState === 4 && (reqStatus < 1 || reqStatus >= 500);\n\n if (primary_timeout || secondary_timeout || server_error) {\n if (secondary_timeout) {\n Strophe$1.error(\"Request \".concat(this._requests[i].id, \" timed out (secondary), restarting\"));\n }\n\n req.abort = true;\n req.xhr.abort(); // setting to null fails on IE6, so set to empty function\n\n req.xhr.onreadystatechange = function () {};\n\n this._requests[i] = new Strophe$1.Request(req.xmlData, req.origFunc, req.rid, req.sends);\n req = this._requests[i];\n }\n\n if (req.xhr.readyState === 0) {\n Strophe$1.debug(\"request id \" + req.id + \".\" + req.sends + \" posting\");\n\n try {\n var content_type = this._conn.options.contentType || \"text/xml; charset=utf-8\";\n req.xhr.open(\"POST\", this._conn.service, this._conn.options.sync ? false : true);\n\n if (typeof req.xhr.setRequestHeader !== 'undefined') {\n // IE9 doesn't have setRequestHeader\n req.xhr.setRequestHeader(\"Content-Type\", content_type);\n }\n\n if (this._conn.options.withCredentials) {\n req.xhr.withCredentials = true;\n }\n } catch (e2) {\n Strophe$1.error(\"XHR open failed: \" + e2.toString());\n\n if (!this._conn.connected) {\n this._conn._changeConnectStatus(Strophe$1.Status.CONNFAIL, \"bad-service\");\n }\n\n this._conn.disconnect();\n\n return;\n } // Fires the XHR request -- may be invoked immediately\n // or on a gradually expanding retry window for reconnects\n\n\n var sendFunc = function sendFunc() {\n req.date = new Date();\n\n if (_this._conn.options.customHeaders) {\n var headers = _this._conn.options.customHeaders;\n\n for (var header in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, header)) {\n req.xhr.setRequestHeader(header, headers[header]);\n }\n }\n }\n\n req.xhr.send(req.data);\n }; // Implement progressive backoff for reconnects --\n // First retry (send === 1) should also be instantaneous\n\n\n if (req.sends > 1) {\n // Using a cube of the retry number creates a nicely\n // expanding retry window\n var backoff = Math.min(Math.floor(Strophe$1.TIMEOUT * this.wait), Math.pow(req.sends, 3)) * 1000;\n setTimeout(function () {\n // XXX: setTimeout should be called only with function expressions (23974bc1)\n sendFunc();\n }, backoff);\n } else {\n sendFunc();\n }\n\n req.sends++;\n\n if (this._conn.xmlOutput !== Strophe$1.Connection.prototype.xmlOutput) {\n if (req.xmlData.nodeName === this.strip && req.xmlData.childNodes.length) {\n this._conn.xmlOutput(req.xmlData.childNodes[0]);\n } else {\n this._conn.xmlOutput(req.xmlData);\n }\n }\n\n if (this._conn.rawOutput !== Strophe$1.Connection.prototype.rawOutput) {\n this._conn.rawOutput(req.data);\n }\n } else {\n Strophe$1.debug(\"_processRequest: \" + (i === 0 ? \"first\" : \"second\") + \" request has readyState of \" + req.xhr.readyState);\n }\n },\n\n /** PrivateFunction: _removeRequest\n * _Private_ function to remove a request from the queue.\n *\n * Parameters:\n * (Strophe.Request) req - The request to remove.\n */\n _removeRequest: function _removeRequest(req) {\n Strophe$1.debug(\"removing request\");\n\n for (var i = this._requests.length - 1; i >= 0; i--) {\n if (req === this._requests[i]) {\n this._requests.splice(i, 1);\n }\n } // IE6 fails on setting to null, so set to empty function\n\n\n req.xhr.onreadystatechange = function () {};\n\n this._throttledRequestHandler();\n },\n\n /** PrivateFunction: _restartRequest\n * _Private_ function to restart a request that is presumed dead.\n *\n * Parameters:\n * (Integer) i - The index of the request in the queue.\n */\n _restartRequest: function _restartRequest(i) {\n var req = this._requests[i];\n\n if (req.dead === null) {\n req.dead = new Date();\n }\n\n this._processRequest(i);\n },\n\n /** PrivateFunction: _reqToData\n * _Private_ function to get a stanza out of a request.\n *\n * Tries to extract a stanza out of a Request Object.\n * When this fails the current connection will be disconnected.\n *\n * Parameters:\n * (Object) req - The Request.\n *\n * Returns:\n * The stanza that was passed.\n */\n _reqToData: function _reqToData(req) {\n try {\n return req.getResponse();\n } catch (e) {\n if (e.message !== \"parsererror\") {\n throw e;\n }\n\n this._conn.disconnect(\"strophe-parsererror\");\n }\n },\n\n /** PrivateFunction: _sendTerminate\n * _Private_ function to send initial disconnect sequence.\n *\n * This is the first step in a graceful disconnect. It sends\n * the BOSH server a terminate body and includes an unavailable\n * presence if authentication has completed.\n */\n _sendTerminate: function _sendTerminate(pres) {\n Strophe$1.debug(\"_sendTerminate was called\");\n\n var body = this._buildBody().attrs({\n type: \"terminate\"\n });\n\n if (pres) {\n body.cnode(pres.tree());\n }\n\n var req = new Strophe$1.Request(body.tree(), this._onRequestStateChange.bind(this, this._conn._dataRecv.bind(this._conn)), body.tree().getAttribute(\"rid\"));\n\n this._requests.push(req);\n\n this._throttledRequestHandler();\n },\n\n /** PrivateFunction: _send\n * _Private_ part of the Connection.send function for BOSH\n *\n * Just triggers the RequestHandler to send the messages that are in the queue\n */\n _send: function _send() {\n var _this2 = this;\n\n clearTimeout(this._conn._idleTimeout);\n\n this._throttledRequestHandler();\n\n this._conn._idleTimeout = setTimeout(function () {\n return _this2._conn._onIdle();\n }, 100);\n },\n\n /** PrivateFunction: _sendRestart\n *\n * Send an xmpp:restart stanza.\n */\n _sendRestart: function _sendRestart() {\n this._throttledRequestHandler();\n\n clearTimeout(this._conn._idleTimeout);\n },\n\n /** PrivateFunction: _throttledRequestHandler\n * _Private_ function to throttle requests to the connection window.\n *\n * This function makes sure we don't send requests so fast that the\n * request ids overflow the connection window in the case that one\n * request died.\n */\n _throttledRequestHandler: function _throttledRequestHandler() {\n if (!this._requests) {\n Strophe$1.debug(\"_throttledRequestHandler called with \" + \"undefined requests\");\n } else {\n Strophe$1.debug(\"_throttledRequestHandler called with \" + this._requests.length + \" requests\");\n }\n\n if (!this._requests || this._requests.length === 0) {\n return;\n }\n\n if (this._requests.length > 0) {\n this._processRequest(0);\n }\n\n if (this._requests.length > 1 && Math.abs(this._requests[0].rid - this._requests[1].rid) < this.window) {\n this._processRequest(1);\n }\n }\n };\n\n /*\n This program is distributed under the terms of the MIT license.\n Please see the LICENSE file for details.\n\n Copyright 2006-2008, OGG, LLC\n */\n var Strophe$2 = core.Strophe;\n var $build$2 = core.$build;\n /** Class: Strophe.WebSocket\n * _Private_ helper class that handles WebSocket Connections\n *\n * The Strophe.WebSocket class is used internally by Strophe.Connection\n * to encapsulate WebSocket sessions. It is not meant to be used from user's code.\n */\n\n /** File: websocket.js\n * A JavaScript library to enable XMPP over Websocket in Strophejs.\n *\n * This file implements XMPP over WebSockets for Strophejs.\n * If a Connection is established with a Websocket url (ws://...)\n * Strophe will use WebSockets.\n * For more information on XMPP-over-WebSocket see RFC 7395:\n * http://tools.ietf.org/html/rfc7395\n *\n * WebSocket support implemented by Andreas Guth (andreas.guth@rwth-aachen.de)\n */\n\n /** PrivateConstructor: Strophe.Websocket\n * Create and initialize a Strophe.WebSocket object.\n * Currently only sets the connection Object.\n *\n * Parameters:\n * (Strophe.Connection) connection - The Strophe.Connection that will use WebSockets.\n *\n * Returns:\n * A new Strophe.WebSocket object.\n */\n\n Strophe$2.Websocket = function (connection) {\n this._conn = connection;\n this.strip = \"wrapper\";\n var service = connection.service;\n\n if (service.indexOf(\"ws:\") !== 0 && service.indexOf(\"wss:\") !== 0) {\n // If the service is not an absolute URL, assume it is a path and put the absolute\n // URL together from options, current URL and the path.\n var new_service = \"\";\n\n if (connection.options.protocol === \"ws\" && window.location.protocol !== \"https:\") {\n new_service += \"ws\";\n } else {\n new_service += \"wss\";\n }\n\n new_service += \"://\" + window.location.host;\n\n if (service.indexOf(\"/\") !== 0) {\n new_service += window.location.pathname + service;\n } else {\n new_service += service;\n }\n\n connection.service = new_service;\n }\n };\n\n Strophe$2.Websocket.prototype = {\n /** PrivateFunction: _buildStream\n * _Private_ helper function to generate the start tag for WebSockets\n *\n * Returns:\n * A Strophe.Builder with a element.\n */\n _buildStream: function _buildStream() {\n return $build$2(\"open\", {\n \"xmlns\": Strophe$2.NS.FRAMING,\n \"to\": this._conn.domain,\n \"version\": '1.0'\n });\n },\n\n /** PrivateFunction: _check_streamerror\n * _Private_ checks a message for stream:error\n *\n * Parameters:\n * (Strophe.Request) bodyWrap - The received stanza.\n * connectstatus - The ConnectStatus that will be set on error.\n * Returns:\n * true if there was a streamerror, false otherwise.\n */\n _check_streamerror: function _check_streamerror(bodyWrap, connectstatus) {\n var errors;\n\n if (bodyWrap.getElementsByTagNameNS) {\n errors = bodyWrap.getElementsByTagNameNS(Strophe$2.NS.STREAM, \"error\");\n } else {\n errors = bodyWrap.getElementsByTagName(\"stream:error\");\n }\n\n if (errors.length === 0) {\n return false;\n }\n\n var error = errors[0];\n var condition = \"\";\n var text = \"\";\n var ns = \"urn:ietf:params:xml:ns:xmpp-streams\";\n\n for (var i = 0; i < error.childNodes.length; i++) {\n var e = error.childNodes[i];\n\n if (e.getAttribute(\"xmlns\") !== ns) {\n break;\n }\n\n if (e.nodeName === \"text\") {\n text = e.textContent;\n } else {\n condition = e.nodeName;\n }\n }\n\n var errorString = \"WebSocket stream error: \";\n\n if (condition) {\n errorString += condition;\n } else {\n errorString += \"unknown\";\n }\n\n if (text) {\n errorString += \" - \" + text;\n }\n\n Strophe$2.error(errorString); // close the connection on stream_error\n\n this._conn._changeConnectStatus(connectstatus, condition);\n\n this._conn._doDisconnect();\n\n return true;\n },\n\n /** PrivateFunction: _reset\n * Reset the connection.\n *\n * This function is called by the reset function of the Strophe Connection.\n * Is not needed by WebSockets.\n */\n _reset: function _reset() {\n return;\n },\n\n /** PrivateFunction: _connect\n * _Private_ function called by Strophe.Connection.connect\n *\n * Creates a WebSocket for a connection and assigns Callbacks to it.\n * Does nothing if there already is a WebSocket.\n */\n _connect: function _connect() {\n // Ensure that there is no open WebSocket from a previous Connection.\n this._closeSocket(); // Create the new WobSocket\n\n\n this.socket = new WebSocket(this._conn.service, \"xmpp\");\n this.socket.onopen = this._onOpen.bind(this);\n this.socket.onerror = this._onError.bind(this);\n this.socket.onclose = this._onClose.bind(this);\n this.socket.onmessage = this._connect_cb_wrapper.bind(this);\n },\n\n /** PrivateFunction: _connect_cb\n * _Private_ function called by Strophe.Connection._connect_cb\n *\n * checks for stream:error\n *\n * Parameters:\n * (Strophe.Request) bodyWrap - The received stanza.\n */\n _connect_cb: function _connect_cb(bodyWrap) {\n var error = this._check_streamerror(bodyWrap, Strophe$2.Status.CONNFAIL);\n\n if (error) {\n return Strophe$2.Status.CONNFAIL;\n }\n },\n\n /** PrivateFunction: _handleStreamStart\n * _Private_ function that checks the opening tag for errors.\n *\n * Disconnects if there is an error and returns false, true otherwise.\n *\n * Parameters:\n * (Node) message - Stanza containing the tag.\n */\n _handleStreamStart: function _handleStreamStart(message) {\n var error = false; // Check for errors in the tag\n\n var ns = message.getAttribute(\"xmlns\");\n\n if (typeof ns !== \"string\") {\n error = \"Missing xmlns in \";\n } else if (ns !== Strophe$2.NS.FRAMING) {\n error = \"Wrong xmlns in : \" + ns;\n }\n\n var ver = message.getAttribute(\"version\");\n\n if (typeof ver !== \"string\") {\n error = \"Missing version in \";\n } else if (ver !== \"1.0\") {\n error = \"Wrong version in : \" + ver;\n }\n\n if (error) {\n this._conn._changeConnectStatus(Strophe$2.Status.CONNFAIL, error);\n\n this._conn._doDisconnect();\n\n return false;\n }\n\n return true;\n },\n\n /** PrivateFunction: _connect_cb_wrapper\n * _Private_ function that handles the first connection messages.\n *\n * On receiving an opening stream tag this callback replaces itself with the real\n * message handler. On receiving a stream error the connection is terminated.\n */\n _connect_cb_wrapper: function _connect_cb_wrapper(message) {\n if (message.data.indexOf(\"\\s*)*/, \"\");\n if (data === '') return;\n var streamStart = new DOMParser().parseFromString(data, \"text/xml\").documentElement;\n\n this._conn.xmlInput(streamStart);\n\n this._conn.rawInput(message.data); //_handleStreamSteart will check for XML errors and disconnect on error\n\n\n if (this._handleStreamStart(streamStart)) {\n //_connect_cb will check for stream:error and disconnect on error\n this._connect_cb(streamStart);\n }\n } else if (message.data.indexOf(\"\n // Parse the raw string to an XML element\n var parsedMessage = new DOMParser().parseFromString(message.data, \"text/xml\").documentElement; // Report this input to the raw and xml handlers\n\n this._conn.xmlInput(parsedMessage);\n\n this._conn.rawInput(message.data);\n\n var see_uri = parsedMessage.getAttribute(\"see-other-uri\");\n\n if (see_uri) {\n var service = this._conn.service; // Valid scenarios: WSS->WSS, WS->ANY\n\n var isSecureRedirect = service.indexOf(\"wss:\") >= 0 && see_uri.indexOf(\"wss:\") >= 0 || service.indexOf(\"ws:\") >= 0;\n\n if (isSecureRedirect) {\n this._conn._changeConnectStatus(Strophe$2.Status.REDIRECT, \"Received see-other-uri, resetting connection\");\n\n this._conn.reset();\n\n this._conn.service = see_uri;\n\n this._connect();\n }\n } else {\n this._conn._changeConnectStatus(Strophe$2.Status.CONNFAIL, \"Received closing stream\");\n\n this._conn._doDisconnect();\n }\n } else {\n var string = this._streamWrap(message.data);\n\n var elem = new DOMParser().parseFromString(string, \"text/xml\").documentElement;\n this.socket.onmessage = this._onMessage.bind(this);\n\n this._conn._connect_cb(elem, null, message.data);\n }\n },\n\n /** PrivateFunction: _disconnect\n * _Private_ function called by Strophe.Connection.disconnect\n *\n * Disconnects and sends a last stanza if one is given\n *\n * Parameters:\n * (Request) pres - This stanza will be sent before disconnecting.\n */\n _disconnect: function _disconnect(pres) {\n if (this.socket && this.socket.readyState !== WebSocket.CLOSED) {\n if (pres) {\n this._conn.send(pres);\n }\n\n var close = $build$2(\"close\", {\n \"xmlns\": Strophe$2.NS.FRAMING\n });\n\n this._conn.xmlOutput(close.tree());\n\n var closeString = Strophe$2.serialize(close);\n\n this._conn.rawOutput(closeString);\n\n try {\n this.socket.send(closeString);\n } catch (e) {\n Strophe$2.warn(\"Couldn't send tag.\");\n }\n }\n\n this._conn._doDisconnect();\n },\n\n /** PrivateFunction: _doDisconnect\n * _Private_ function to disconnect.\n *\n * Just closes the Socket for WebSockets\n */\n _doDisconnect: function _doDisconnect() {\n Strophe$2.debug(\"WebSockets _doDisconnect was called\");\n\n this._closeSocket();\n },\n\n /** PrivateFunction _streamWrap\n * _Private_ helper function to wrap a stanza in a tag.\n * This is used so Strophe can process stanzas from WebSockets like BOSH\n */\n _streamWrap: function _streamWrap(stanza) {\n return \"\" + stanza + '';\n },\n\n /** PrivateFunction: _closeSocket\n * _Private_ function to close the WebSocket.\n *\n * Closes the socket if it is still open and deletes it\n */\n _closeSocket: function _closeSocket() {\n if (this.socket) {\n try {\n this.socket.onclose = null;\n this.socket.onerror = null;\n this.socket.onmessage = null;\n this.socket.close();\n } catch (e) {\n Strophe$2.debug(e.message);\n }\n }\n\n this.socket = null;\n },\n\n /** PrivateFunction: _emptyQueue\n * _Private_ function to check if the message queue is empty.\n *\n * Returns:\n * True, because WebSocket messages are send immediately after queueing.\n */\n _emptyQueue: function _emptyQueue() {\n return true;\n },\n\n /** PrivateFunction: _onClose\n * _Private_ function to handle websockets closing.\n *\n * Nothing to do here for WebSockets\n */\n _onClose: function _onClose(e) {\n if (this._conn.connected && !this._conn.disconnecting) {\n Strophe$2.error(\"Websocket closed unexpectedly\");\n\n this._conn._doDisconnect();\n } else if (e && e.code === 1006 && !this._conn.connected && this.socket) {\n // in case the onError callback was not called (Safari 10 does not\n // call onerror when the initial connection fails) we need to\n // dispatch a CONNFAIL status update to be consistent with the\n // behavior on other browsers.\n Strophe$2.error(\"Websocket closed unexcectedly\");\n\n this._conn._changeConnectStatus(Strophe$2.Status.CONNFAIL, \"The WebSocket connection could not be established or was disconnected.\");\n\n this._conn._doDisconnect();\n } else {\n Strophe$2.debug(\"Websocket closed\");\n }\n },\n\n /** PrivateFunction: _no_auth_received\n *\n * Called on stream start/restart when no stream:features\n * has been received.\n */\n _no_auth_received: function _no_auth_received(callback) {\n Strophe$2.error(\"Server did not offer a supported authentication mechanism\");\n\n this._conn._changeConnectStatus(Strophe$2.Status.CONNFAIL, Strophe$2.ErrorCondition.NO_AUTH_MECH);\n\n if (callback) {\n callback.call(this._conn);\n }\n\n this._conn._doDisconnect();\n },\n\n /** PrivateFunction: _onDisconnectTimeout\n * _Private_ timeout handler for handling non-graceful disconnection.\n *\n * This does nothing for WebSockets\n */\n _onDisconnectTimeout: function _onDisconnectTimeout() {},\n\n /** PrivateFunction: _abortAllRequests\n * _Private_ helper function that makes sure all pending requests are aborted.\n */\n _abortAllRequests: function _abortAllRequests() {},\n\n /** PrivateFunction: _onError\n * _Private_ function to handle websockets errors.\n *\n * Parameters:\n * (Object) error - The websocket error.\n */\n _onError: function _onError(error) {\n Strophe$2.error(\"Websocket error \" + error);\n\n this._conn._changeConnectStatus(Strophe$2.Status.CONNFAIL, \"The WebSocket connection could not be established or was disconnected.\");\n\n this._disconnect();\n },\n\n /** PrivateFunction: _onIdle\n * _Private_ function called by Strophe.Connection._onIdle\n *\n * sends all queued stanzas\n */\n _onIdle: function _onIdle() {\n var data = this._conn._data;\n\n if (data.length > 0 && !this._conn.paused) {\n for (var i = 0; i < data.length; i++) {\n if (data[i] !== null) {\n var stanza = void 0;\n\n if (data[i] === \"restart\") {\n stanza = this._buildStream().tree();\n } else {\n stanza = data[i];\n }\n\n var rawStanza = Strophe$2.serialize(stanza);\n\n this._conn.xmlOutput(stanza);\n\n this._conn.rawOutput(rawStanza);\n\n this.socket.send(rawStanza);\n }\n }\n\n this._conn._data = [];\n }\n },\n\n /** PrivateFunction: _onMessage\n * _Private_ function to handle websockets messages.\n *\n * This function parses each of the messages as if they are full documents.\n * [TODO : We may actually want to use a SAX Push parser].\n *\n * Since all XMPP traffic starts with\n * \n *\n * The first stanza will always fail to be parsed.\n *\n * Additionally, the seconds stanza will always be with\n * the stream NS defined in the previous stanza, so we need to 'force'\n * the inclusion of the NS in this stanza.\n *\n * Parameters:\n * (string) message - The websocket message.\n */\n _onMessage: function _onMessage(message) {\n var elem; // check for closing stream\n\n var close = '';\n\n if (message.data === close) {\n this._conn.rawInput(close);\n\n this._conn.xmlInput(message);\n\n if (!this._conn.disconnecting) {\n this._conn._doDisconnect();\n }\n\n return;\n } else if (message.data.search(\" tag before we close the connection\n\n\n return;\n }\n\n this._conn._dataRecv(elem, message.data);\n },\n\n /** PrivateFunction: _onOpen\n * _Private_ function to handle websockets connection setup.\n *\n * The opening stream tag is sent here.\n */\n _onOpen: function _onOpen() {\n Strophe$2.debug(\"Websocket open\");\n\n var start = this._buildStream();\n\n this._conn.xmlOutput(start.tree());\n\n var startString = Strophe$2.serialize(start);\n\n this._conn.rawOutput(startString);\n\n this.socket.send(startString);\n },\n\n /** PrivateFunction: _reqToData\n * _Private_ function to get a stanza out of a request.\n *\n * WebSockets don't use requests, so the passed argument is just returned.\n *\n * Parameters:\n * (Object) stanza - The stanza.\n *\n * Returns:\n * The stanza that was passed.\n */\n _reqToData: function _reqToData(stanza) {\n return stanza;\n },\n\n /** PrivateFunction: _send\n * _Private_ part of the Connection.send function for WebSocket\n *\n * Just flushes the messages that are in the queue\n */\n _send: function _send() {\n this._conn.flush();\n },\n\n /** PrivateFunction: _sendRestart\n *\n * Send an xmpp:restart stanza.\n */\n _sendRestart: function _sendRestart() {\n clearTimeout(this._conn._idleTimeout);\n\n this._conn._onIdle.bind(this._conn)();\n }\n };\n\n global$1.Strophe = core.Strophe;\n global$1.$build = core.$build;\n global$1.$iq = core.$iq;\n global$1.$msg = core.$msg;\n global$1.$pres = core.$pres;\n\n return core;\n\n}));\n","import BrowserCapabilities from './BrowserCapabilities';\n\nexport default new BrowserCapabilities();\n","/* Copyright @ 2015-present 8x8, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Logger = require(\"./Logger\");\nvar LogCollector = require(\"./LogCollector\");\n\n/**\n * Definition of the log method\n * @name log_method\n * @function\n * @param {...*} log_args the arguments to be logged\n */\n/**\n * The logger's transport type definition.\n *\n * @typedef {object} LoggerTransport\n *\n * @property {log_method} trace method called to log on {@link Logger.levels.TRACE} logging level\n * @property {log_method} debug method called to log on {@link Logger.levels.DEBUG} logging level\n * @property {log_method} info method called to log on {@link Logger.levels.INFO} logging level\n * @property {log_method} log method called to log on {@link Logger.levels.LOG} logging level\n * @property {log_method} warn method called to log on {@link Logger.levels.WARN} logging level\n * @property {log_method} error method called to log on {@link Logger.levels.ERROR} logging level\n */\n\n/**\n * Map with the created loggers with ID.\n */\nvar idLoggers = {};\n\n/**\n * Array with the loggers without id.\n */\nvar loggers = [];\n\n/**\n * Log level for the lbrary.\n */\nvar curLevel = Logger.levels.TRACE;\n\n\nmodule.exports = {\n /**\n * Adds given {@link LoggerTransport} instance to the list of global\n * transports which means that it'll be used by all {@link Logger}s\n * @param {LoggerTransport} transport\n */\n addGlobalTransport: function(transport) {\n Logger.addGlobalTransport(transport);\n },\n /**\n * Removes given {@link LoggerTransport} instance from the list of global\n * transports\n * @param {LoggerTransport} transport\n */\n removeGlobalTransport: function(transport) {\n Logger.removeGlobalTransport(transport);\n },\n /**\n * Sets global options which will be used by all loggers. Changing these\n * works even after other loggers are created.\n */\n setGlobalOptions: function(options) {\n Logger.setGlobalOptions(options);\n },\n /**\n * Creates new logger.\n * @arguments the same as Logger constructor\n */\n getLogger: function(id, transports, options) {\n var logger = new Logger(curLevel, id, transports, options);\n if(id) {\n idLoggers[id] = idLoggers[id] || [];\n idLoggers[id].push(logger);\n } else {\n loggers.push(logger);\n }\n return logger;\n },\n /**\n * Changes the log level for the existing loggers by id.\n * @param level the new log level.\n * @param id if specified the level will be changed only for loggers with the\n * same id. Otherwise the operation will affect all loggers that don't\n * have id.\n */\n setLogLevelById: function(level, id) {\n var l = id? (idLoggers[id] || []) : loggers;\n for(var i = 0; i < l.length; i++) {\n l[i].setLevel(level);\n }\n },\n /**\n * Changes the log level for all existing loggers.\n * @param level the new log level.\n */\n setLogLevel: function (level) {\n curLevel = level;\n var i = 0;\n for(; i < loggers.length; i++) {\n loggers[i].setLevel(level);\n }\n\n for(var id in idLoggers) {\n var l = idLoggers[id] || [];\n for(i = 0; i < l.length; i++) {\n l[i].setLevel(level);\n }\n }\n },\n /**\n * The supported log levels.\n */\n levels: Logger.levels,\n /**\n * Exports the LogCollector.\n */\n LogCollector: LogCollector\n};\n","import EventEmitter from 'events';\n\nimport * as JitsiConferenceEvents from '../../JitsiConferenceEvents';\nimport JitsiTrackError from '../../JitsiTrackError';\nimport { FEEDBACK } from '../../service/statistics/AnalyticsEvents';\nimport * as StatisticsEvents from '../../service/statistics/Events';\nimport browser from '../browser';\nimport ScriptUtil from '../util/ScriptUtil';\n\nimport analytics from './AnalyticsAdapter';\nimport CallStats from './CallStats';\nimport LocalStats from './LocalStatsCollector';\nimport { PerformanceObserverStats } from './PerformanceObserverStats';\nimport RTPStats from './RTPStatsCollector';\nimport { CALLSTATS_SCRIPT_URL } from './constants';\n\nconst logger = require('jitsi-meet-logger').getLogger(__filename);\n\n/**\n * Stores all active {@link Statistics} instances.\n * @type {Set}\n */\nlet _instances;\n\n/**\n * True if callstats API is loaded\n */\nlet isCallstatsLoaded = false;\n\n/**\n * Since callstats.io is a third party, we cannot guarantee the quality of their\n * service. More specifically, their server may take noticeably long time to\n * respond. Consequently, it is in our best interest (in the sense that the\n * intergration of callstats.io is pretty important to us but not enough to\n * allow it to prevent people from joining a conference) to (1) start\n * downloading their API as soon as possible and (2) do the downloading\n * asynchronously.\n *\n * @param {StatisticsOptions} options - Options to use for downloading and\n * initializing callstats backend.\n */\nfunction loadCallStatsAPI(options) {\n if (!isCallstatsLoaded) {\n ScriptUtil.loadScript(\n options.customScriptUrl || CALLSTATS_SCRIPT_URL,\n /* async */ true,\n /* prepend */ true,\n /* relativeURL */ undefined,\n /* loadCallback */ () => _initCallStatsBackend(options)\n );\n isCallstatsLoaded = true;\n }\n}\n\n/**\n * Initializes Callstats backend.\n *\n * @param {StatisticsOptions} options - The options to use for initializing\n * callstats backend.\n * @private\n */\nfunction _initCallStatsBackend(options) {\n if (CallStats.isBackendInitialized()) {\n return;\n }\n\n if (!CallStats.initBackend({\n callStatsID: options.callStatsID,\n callStatsSecret: options.callStatsSecret,\n userName: options.userName,\n aliasName: options.aliasName,\n applicationName: options.applicationName,\n getWiFiStatsMethod: options.getWiFiStatsMethod,\n confID: options.confID,\n siteID: options.siteID\n })) {\n logger.error('CallStats Backend initialization failed bad');\n }\n}\n\n/**\n * callstats strips any additional fields from Error except for \"name\", \"stack\",\n * \"message\" and \"constraintName\". So we need to bundle additional information\n * from JitsiTrackError into error passed to callstats to preserve valuable\n * information about error.\n * @param {JitsiTrackError} error\n */\nfunction formatJitsiTrackErrorForCallStats(error) {\n const err = new Error();\n\n // Just copy original stack from error\n err.stack = error.stack;\n\n // Combine name from error's name plus (possibly) name of original GUM error\n err.name = (error.name || 'Unknown error') + (error.gum && error.gum.error\n && error.gum.error.name ? ` - ${error.gum.error.name}` : '');\n\n // Put all constraints into this field. For constraint failed errors we will\n // still know which exactly constraint failed as it will be a part of\n // message.\n err.constraintName = error.gum && error.gum.constraints\n ? JSON.stringify(error.gum.constraints) : '';\n\n // Just copy error's message.\n err.message = error.message;\n\n return err;\n}\n\n/**\n * Init statistic options\n * @param options\n */\nStatistics.init = function(options) {\n Statistics.audioLevelsEnabled = !options.disableAudioLevels;\n if (typeof options.pcStatsInterval === 'number') {\n Statistics.pcStatsInterval = options.pcStatsInterval;\n }\n\n if (typeof options.audioLevelsInterval === 'number') {\n Statistics.audioLevelsInterval = options.audioLevelsInterval;\n }\n\n if (typeof options.longTasksStatsInterval === 'number') {\n Statistics.longTasksStatsInterval = options.longTasksStatsInterval;\n }\n\n Statistics.disableThirdPartyRequests = options.disableThirdPartyRequests;\n};\n\n/**\n * The options to configure Statistics.\n * @typedef {Object} StatisticsOptions\n * @property {string} applicationName - The application name to pass to\n * callstats.\n * @property {string} aliasName - The alias name to use when initializing callstats.\n * @property {string} userName - The user name to use when initializing callstats.\n * @property {string} confID - The callstats conference ID to use.\n * @property {string} callStatsID - Callstats credentials - the id.\n * @property {string} callStatsSecret - Callstats credentials - the secret.\n * @property {string} customScriptUrl - A custom lib url to use when downloading\n * callstats library.\n * @property {string} roomName - The room name we are currently in.\n */\n/**\n *\n * @param xmpp\n * @param {StatisticsOptions} options - The options to use creating the\n * Statistics.\n */\nexport default function Statistics(xmpp, options) {\n /**\n * {@link RTPStats} mapped by {@link TraceablePeerConnection.id} which\n * collect RTP statistics for each peerconnection.\n * @type {Map}\n */\n this.callsStatsInstances = new Map();\n\n Statistics.instances.add(this);\n}\nStatistics.audioLevelsEnabled = false;\nStatistics.audioLevelsInterval = 200;\nStatistics.pcStatsInterval = 10000;\nStatistics.disableThirdPartyRequests = false;\nStatistics.analytics = analytics;\n\nObject.defineProperty(Statistics, 'instances', {\n /**\n * Returns the Set holding all active {@link Statistics} instances. Lazily\n * initializes the Set to allow any Set polyfills to be applied.\n * @type {Set}\n */\n get() {\n if (!_instances) {\n _instances = new Set();\n }\n\n return _instances;\n }\n});\n\n/**\n * Starts collecting RTP stats for given peerconnection.\n * @param {TraceablePeerConnection} peerconnection\n */\nStatistics.prototype.startRemoteStats = function(peerconnection) {\n this.stopRemoteStats(peerconnection);\n\n try {\n const rtpStats\n = new RTPStats(\n peerconnection,\n Statistics.audioLevelsInterval,\n Statistics.pcStatsInterval,\n this.eventEmitter);\n\n rtpStats.start(Statistics.audioLevelsEnabled);\n this.rtpStatsMap.set(peerconnection.id, rtpStats);\n } catch (e) {\n logger.error(`Failed to start collecting remote statistics: ${e}`);\n }\n};\n\nStatistics.localStats = [];\n\nStatistics.startLocalStats = function(stream, callback) {\n if (!Statistics.audioLevelsEnabled) {\n return;\n }\n const localStats = new LocalStats(stream, Statistics.audioLevelsInterval,\n callback);\n\n this.localStats.push(localStats);\n localStats.start();\n};\n\nStatistics.prototype.addAudioLevelListener = function(listener) {\n if (!Statistics.audioLevelsEnabled) {\n return;\n }\n this.eventEmitter.on(StatisticsEvents.AUDIO_LEVEL, listener);\n};\n\nStatistics.prototype.removeAudioLevelListener = function(listener) {\n if (!Statistics.audioLevelsEnabled) {\n return;\n }\n this.eventEmitter.removeListener(StatisticsEvents.AUDIO_LEVEL, listener);\n};\n\nStatistics.prototype.addBeforeDisposedListener = function(listener) {\n this.eventEmitter.on(StatisticsEvents.BEFORE_DISPOSED, listener);\n};\n\nStatistics.prototype.removeBeforeDisposedListener = function(listener) {\n this.eventEmitter.removeListener(\n StatisticsEvents.BEFORE_DISPOSED, listener);\n};\n\nStatistics.prototype.addConnectionStatsListener = function(listener) {\n this.eventEmitter.on(StatisticsEvents.CONNECTION_STATS, listener);\n};\n\nStatistics.prototype.removeConnectionStatsListener = function(listener) {\n this.eventEmitter.removeListener(\n StatisticsEvents.CONNECTION_STATS,\n listener);\n};\n\nStatistics.prototype.addByteSentStatsListener = function(listener) {\n this.eventEmitter.on(StatisticsEvents.BYTE_SENT_STATS, listener);\n};\n\nStatistics.prototype.removeByteSentStatsListener = function(listener) {\n this.eventEmitter.removeListener(StatisticsEvents.BYTE_SENT_STATS,\n listener);\n};\n\n/**\n * Add a listener that would be notified on a LONG_TASKS_STATS event.\n *\n * @param {Function} listener a function that would be called when notified.\n * @returns {void}\n */\nStatistics.prototype.addLongTasksStatsListener = function(listener) {\n this.eventEmitter.on(StatisticsEvents.LONG_TASKS_STATS, listener);\n};\n\n/**\n * Creates an instance of {@link PerformanceObserverStats} and starts the\n * observer that records the stats periodically.\n *\n * @returns {void}\n */\nStatistics.prototype.attachLongTasksStats = function(conference) {\n if (!browser.supportsPerformanceObserver()) {\n logger.warn('Performance observer for long tasks not supported by browser!');\n\n return;\n }\n\n this.performanceObserverStats = new PerformanceObserverStats(\n this.eventEmitter,\n Statistics.longTasksStatsInterval);\n\n conference.on(\n JitsiConferenceEvents.CONFERENCE_JOINED,\n () => this.performanceObserverStats.startObserver());\n conference.on(\n JitsiConferenceEvents.CONFERENCE_LEFT,\n () => this.performanceObserverStats.stopObserver());\n};\n\n/**\n * Obtains the current value of the LongTasks event statistics.\n *\n * @returns {Object|null} stats object if the observer has been\n * created, null otherwise.\n */\nStatistics.prototype.getLongTasksStats = function() {\n return this.performanceObserverStats\n ? this.performanceObserverStats.getLongTasksStats()\n : null;\n};\n\n/**\n * Removes the given listener for the LONG_TASKS_STATS event.\n *\n * @param {Function} listener the listener we want to remove.\n * @returns {void}\n */\nStatistics.prototype.removeLongTasksStatsListener = function(listener) {\n this.eventEmitter.removeListener(StatisticsEvents.LONG_TASKS_STATS, listener);\n};\n\nStatistics.prototype.dispose = function() {\n try {\n // NOTE Before reading this please see the comment in stopCallStats...\n //\n // Here we prevent from emitting the event twice in case it will be\n // triggered from stopCallStats.\n // If the event is triggered from here it means that the logs will not\n // be submitted anyway (because there is no CallStats instance), but\n // we're doing that for the sake of some kind of consistency.\n if (!this.callsStatsInstances.size) {\n this.eventEmitter.emit(StatisticsEvents.BEFORE_DISPOSED);\n }\n for (const callStats of this.callsStatsInstances.values()) {\n this.stopCallStats(callStats.tpc);\n }\n for (const tpcId of this.rtpStatsMap.keys()) {\n this._stopRemoteStats(tpcId);\n }\n if (this.eventEmitter) {\n this.eventEmitter.removeAllListeners();\n }\n } finally {\n Statistics.instances.delete(this);\n }\n};\n\nStatistics.stopLocalStats = function(stream) {\n if (!Statistics.audioLevelsEnabled) {\n return;\n }\n\n for (let i = 0; i < Statistics.localStats.length; i++) {\n if (Statistics.localStats[i].stream === stream) {\n const localStats = Statistics.localStats.splice(i, 1);\n\n localStats[0].stop();\n break;\n }\n }\n};\n\n/**\n * Stops remote RTP stats for given peerconnection ID.\n * @param {string} tpcId {@link TraceablePeerConnection.id}\n * @private\n */\nStatistics.prototype._stopRemoteStats = function(tpcId) {\n const rtpStats = this.rtpStatsMap.get(tpcId);\n\n if (rtpStats) {\n rtpStats.stop();\n this.rtpStatsMap.delete(tpcId);\n }\n};\n\n/**\n * Stops collecting RTP stats for given peerconnection\n * @param {TraceablePeerConnection} tpc\n */\nStatistics.prototype.stopRemoteStats = function(tpc) {\n this._stopRemoteStats(tpc.id);\n};\n\n// CALSTATS METHODS\n\n/**\n * Initializes the callstats.io API.\n * @param {TraceablePeerConnection} tpc the {@link TraceablePeerConnection}\n * instance for which CalStats will be started.\n * @param {string} remoteUserID\n */\nStatistics.prototype.startCallStats = function(tpc, remoteUserID) {\n if (!this.callStatsIntegrationEnabled) {\n return;\n } else if (this.callsStatsInstances.has(tpc.id)) {\n logger.error('CallStats instance for ${tpc} exists already');\n\n return;\n }\n\n logger.info(`Starting CallStats for ${tpc}...`);\n\n const newInstance\n = new CallStats(\n tpc,\n {\n confID: this.options.confID,\n remoteUserID\n });\n\n this.callsStatsInstances.set(tpc.id, newInstance);\n};\n\n/**\n * Obtains the list of *all* {@link CallStats} instances collected from every\n * valid {@link Statistics} instance.\n * @return {Set}\n * @private\n */\nStatistics._getAllCallStatsInstances = function() {\n const csInstances = new Set();\n\n for (const statistics of Statistics.instances) {\n for (const cs of statistics.callsStatsInstances.values()) {\n csInstances.add(cs);\n }\n }\n\n return csInstances;\n};\n\n/**\n * Removes the callstats.io instances.\n */\nStatistics.prototype.stopCallStats = function(tpc) {\n const callStatsInstance = this.callsStatsInstances.get(tpc.id);\n\n if (callStatsInstance) {\n // FIXME the original purpose of adding BEFORE_DISPOSED event was to be\n // able to submit the last log batch from jitsi-meet to CallStats. After\n // recent changes we dispose the CallStats earlier\n // (before Statistics.dispose), so we need to emit this event here to\n // give this last chance for final log batch submission.\n //\n // Eventually there should be a separate module called \"log storage\"\n // which should emit proper events when it's underlying\n // CallStats instance is going away.\n if (this.callsStatsInstances.size === 1) {\n this.eventEmitter.emit(StatisticsEvents.BEFORE_DISPOSED);\n }\n this.callsStatsInstances.delete(tpc.id);\n\n // The fabric needs to be terminated when being stopped\n callStatsInstance.sendTerminateEvent();\n }\n};\n\n/**\n * Returns true if the callstats integration is enabled, otherwise returns\n * false.\n *\n * @returns true if the callstats integration is enabled, otherwise returns\n * false.\n */\nStatistics.prototype.isCallstatsEnabled = function() {\n return this.callStatsIntegrationEnabled;\n};\n\n/**\n * Logs either resume or hold event for the given peer connection.\n * @param {TraceablePeerConnection} tpc the connection for which event will be\n * reported\n * @param {boolean} isResume true for resume or false for hold\n */\nStatistics.prototype.sendConnectionResumeOrHoldEvent = function(tpc, isResume) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.sendResumeOrHoldEvent(isResume);\n }\n};\n\n/**\n * Notifies CallStats and analytics (if present) for ice connection failed\n * @param {TraceablePeerConnection} tpc connection on which failure occurred.\n */\nStatistics.prototype.sendIceConnectionFailedEvent = function(tpc) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.sendIceConnectionFailedEvent();\n }\n};\n\n/**\n * Notifies CallStats for mute events\n * @param {TraceablePeerConnection} tpc connection on which failure occurred.\n * @param {boolean} muted true for muted and false for not muted\n * @param {String} type \"audio\"/\"video\"\n */\nStatistics.prototype.sendMuteEvent = function(tpc, muted, type) {\n const instance = tpc && this.callsStatsInstances.get(tpc.id);\n\n CallStats.sendMuteEvent(muted, type, instance);\n};\n\n/**\n * Notifies CallStats for screen sharing events\n * @param start {boolean} true for starting screen sharing and\n * false for not stopping\n * @param {string|null} ssrc - optional ssrc value, used only when\n * starting screen sharing.\n */\nStatistics.prototype.sendScreenSharingEvent\n = function(start, ssrc) {\n for (const cs of this.callsStatsInstances.values()) {\n cs.sendScreenSharingEvent(start, ssrc);\n }\n };\n\n/**\n * Notifies the statistics module that we are now the dominant speaker of the\n * conference.\n * @param {String} roomJid - The room jid where the speaker event occurred.\n */\nStatistics.prototype.sendDominantSpeakerEvent = function(roomJid) {\n for (const cs of this.callsStatsInstances.values()) {\n cs.sendDominantSpeakerEvent();\n }\n\n // xmpp send dominant speaker event\n this.xmpp.sendDominantSpeakerEvent(roomJid);\n};\n\n/**\n * Notifies about active device.\n * @param {{deviceList: {String:String}}} devicesData - list of devices with\n * their data\n */\nStatistics.sendActiveDeviceListEvent = function(devicesData) {\n const globalSet = Statistics._getAllCallStatsInstances();\n\n if (globalSet.size) {\n for (const cs of globalSet) {\n CallStats.sendActiveDeviceListEvent(devicesData, cs);\n }\n } else {\n CallStats.sendActiveDeviceListEvent(devicesData, null);\n }\n};\n\n/* eslint-disable max-params */\n\n/**\n * Lets the underlying statistics module know where is given SSRC rendered by\n * providing renderer tag ID.\n * @param {TraceablePeerConnection} tpc the connection to which the stream\n * belongs to\n * @param {number} ssrc the SSRC of the stream\n * @param {boolean} isLocal\n * @param {string} userId\n * @param {string} usageLabel meaningful usage label of this stream like\n * 'microphone', 'camera' or 'screen'.\n * @param {string} containerId the id of media 'audio' or 'video' tag which\n * renders the stream.\n */\nStatistics.prototype.associateStreamWithVideoTag = function(\n tpc,\n ssrc,\n isLocal,\n userId,\n usageLabel,\n containerId) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.associateStreamWithVideoTag(\n ssrc,\n isLocal,\n userId,\n usageLabel,\n containerId);\n }\n};\n\n/* eslint-enable max-params */\n\n/**\n * Notifies CallStats that getUserMedia failed.\n *\n * @param {Error} e error to send\n */\nStatistics.sendGetUserMediaFailed = function(e) {\n const error\n = e instanceof JitsiTrackError\n ? formatJitsiTrackErrorForCallStats(e) : e;\n const globalSet = Statistics._getAllCallStatsInstances();\n\n if (globalSet.size) {\n for (const cs of globalSet) {\n CallStats.sendGetUserMediaFailed(error, cs);\n }\n } else {\n CallStats.sendGetUserMediaFailed(error, null);\n }\n};\n\n/**\n * Notifies CallStats that peer connection failed to create offer.\n *\n * @param {Error} e error to send\n * @param {TraceablePeerConnection} tpc connection on which failure occurred.\n */\nStatistics.prototype.sendCreateOfferFailed = function(e, tpc) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.sendCreateOfferFailed(e);\n }\n};\n\n/**\n * Notifies CallStats that peer connection failed to create answer.\n *\n * @param {Error} e error to send\n * @param {TraceablePeerConnection} tpc connection on which failure occured.\n */\nStatistics.prototype.sendCreateAnswerFailed = function(e, tpc) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.sendCreateAnswerFailed(e);\n }\n};\n\n/**\n * Notifies CallStats that peer connection failed to set local description.\n *\n * @param {Error} e error to send\n * @param {TraceablePeerConnection} tpc connection on which failure occurred.\n */\nStatistics.prototype.sendSetLocalDescFailed = function(e, tpc) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.sendSetLocalDescFailed(e);\n }\n};\n\n/**\n * Notifies CallStats that peer connection failed to set remote description.\n *\n * @param {Error} e error to send\n * @param {TraceablePeerConnection} tpc connection on which failure occurred.\n */\nStatistics.prototype.sendSetRemoteDescFailed = function(e, tpc) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.sendSetRemoteDescFailed(e);\n }\n};\n\n/**\n * Notifies CallStats that peer connection failed to add ICE candidate.\n *\n * @param {Error} e error to send\n * @param {TraceablePeerConnection} tpc connection on which failure occurred.\n */\nStatistics.prototype.sendAddIceCandidateFailed = function(e, tpc) {\n const instance = this.callsStatsInstances.get(tpc.id);\n\n if (instance) {\n instance.sendAddIceCandidateFailed(e);\n }\n};\n\n/**\n * Adds to CallStats an application log.\n *\n * @param {String} m a log message to send or an {Error} object to be reported\n */\nStatistics.sendLog = function(m) {\n const globalSubSet = new Set();\n\n // FIXME we don't want to duplicate logs over P2P instance, but\n // here we should go over instances and call this method for each\n // unique conference ID rather than selecting the first one.\n // We don't have such use case though, so leaving as is for now.\n for (const stats of Statistics.instances) {\n if (stats.callStatsApplicationLogsDisabled) {\n return;\n }\n\n if (stats.callsStatsInstances.size) {\n globalSubSet.add(stats.callsStatsInstances.values().next().value);\n }\n }\n\n if (globalSubSet.size) {\n for (const csPerStats of globalSubSet) {\n CallStats.sendApplicationLog(m, csPerStats);\n }\n } else {\n CallStats.sendApplicationLog(m, null);\n }\n};\n\n/**\n * Sends the given feedback through CallStats.\n *\n * @param overall an integer between 1 and 5 indicating the user's rating.\n * @param comment the comment from the user.\n * @returns {Promise} Resolves when callstats feedback has been submitted\n * successfully.\n */\nStatistics.prototype.sendFeedback = function(overall, comment) {\n // Statistics.analytics.sendEvent is currently fire and forget, without\n // confirmation of successful send.\n Statistics.analytics.sendEvent(\n FEEDBACK,\n {\n rating: overall,\n comment\n });\n\n return CallStats.sendFeedback(this.options.confID, overall, comment);\n};\n\nStatistics.LOCAL_JID = require('../../service/statistics/constants').LOCAL_JID;\n\n/**\n * Reports global error to CallStats.\n *\n * @param {Error} error\n */\nStatistics.reportGlobalError = function(error) {\n if (error instanceof JitsiTrackError && error.gum) {\n Statistics.sendGetUserMediaFailed(error);\n } else {\n Statistics.sendLog(error);\n }\n};\n\n/**\n * Sends event to analytics and logs a message to the logger/console. Console\n * messages might also be logged to callstats automatically.\n *\n * @param {string | Object} event the event name, or an object which\n * represents the entire event.\n * @param {Object} properties properties to attach to the event (if an event\n * name as opposed to an event object is provided).\n */\nStatistics.sendAnalyticsAndLog = function(event, properties = {}) {\n if (!event) {\n logger.warn('No event or event name given.');\n\n return;\n }\n\n let eventToLog;\n\n // Also support an API with a single object as an event.\n if (typeof event === 'object') {\n eventToLog = event;\n } else {\n eventToLog = {\n name: event,\n properties\n };\n }\n\n logger.log(JSON.stringify(eventToLog));\n\n // We do this last, because it may modify the object which is passed.\n this.analytics.sendEvent(event, properties);\n};\n\n/**\n * Sends event to analytics.\n *\n * @param {string | Object} eventName the event name, or an object which\n * represents the entire event.\n * @param {Object} properties properties to attach to the event\n */\nStatistics.sendAnalytics = function(eventName, properties = {}) {\n this.analytics.sendEvent(eventName, properties);\n};\n","const RTCEvents = {\n /**\n * Indicates error while create answer call.\n */\n CREATE_ANSWER_FAILED: 'rtc.create_answer_failed',\n\n /**\n * Indicates error while create offer call.\n */\n CREATE_OFFER_FAILED: 'rtc.create_offer_failed',\n DATA_CHANNEL_OPEN: 'rtc.data_channel_open',\n ENDPOINT_CONN_STATUS_CHANGED: 'rtc.endpoint_conn_status_changed',\n DOMINANT_SPEAKER_CHANGED: 'rtc.dominant_speaker_changed',\n LASTN_ENDPOINT_CHANGED: 'rtc.lastn_endpoint_changed',\n\n /**\n * Event emitted when the user granted a permission for the camera / mic.\n * Used to keep track of the granted permissions on browsers which don't\n * support the Permissions API.\n */\n GRANTED_PERMISSIONS: 'rtc.granted_permissions',\n\n SENDER_VIDEO_CONSTRAINTS_CHANGED: 'rtc.sender_video_constraints_changed',\n\n /**\n * Event emitted when {@link RTC.setLastN} method is called to update with\n * the new value set.\n * The first argument is the value passed to {@link RTC.setLastN}.\n */\n LASTN_VALUE_CHANGED: 'rtc.lastn_value_changed',\n\n /**\n * Event emitted when ssrc for a local track is extracted and stored\n * in {@link TraceablePeerConnection}.\n * @param {JitsiLocalTrack} track which ssrc was updated\n * @param {string} ssrc that was stored\n */\n LOCAL_TRACK_SSRC_UPDATED: 'rtc.local_track_ssrc_updated',\n\n /**\n * The max enabled resolution of a local video track was changed.\n */\n LOCAL_TRACK_MAX_ENABLED_RESOLUTION_CHANGED: 'rtc.local_track_max_enabled_resolution_changed',\n\n TRACK_ATTACHED: 'rtc.track_attached',\n\n /**\n * Event fired when we remote track is added to the conference.\n * 1st event argument is the added JitsiRemoteTrack instance.\n **/\n REMOTE_TRACK_ADDED: 'rtc.remote_track_added',\n\n // FIXME get rid of this event in favour of NO_DATA_FROM_SOURCE event\n // (currently implemented for local tracks only)\n REMOTE_TRACK_MUTE: 'rtc.remote_track_mute',\n\n /**\n * Indicates that the remote track has been removed from the conference.\n * 1st event argument is the removed {@link JitsiRemoteTrack} instance.\n */\n REMOTE_TRACK_REMOVED: 'rtc.remote_track_removed',\n\n // FIXME get rid of this event in favour of NO_DATA_FROM_SOURCE event\n // (currently implemented for local tracks only)\n REMOTE_TRACK_UNMUTE: 'rtc.remote_track_unmute',\n\n /**\n * Indicates error while set local description.\n */\n SET_LOCAL_DESCRIPTION_FAILED: 'rtc.set_local_description_failed',\n\n /**\n * Indicates error while set remote description.\n */\n SET_REMOTE_DESCRIPTION_FAILED: 'rtc.set_remote_description_failed',\n AUDIO_OUTPUT_DEVICE_CHANGED: 'rtc.audio_output_device_changed',\n DEVICE_LIST_CHANGED: 'rtc.device_list_changed',\n\n /**\n * Indicates that the list with available devices will change.\n */\n DEVICE_LIST_WILL_CHANGE: 'rtc.device_list_will_change',\n DEVICE_LIST_AVAILABLE: 'rtc.device_list_available',\n\n /**\n * Indicates that a message from another participant is received on\n * data channel.\n */\n ENDPOINT_MESSAGE_RECEIVED: 'rtc.endpoint_message_received',\n\n /**\n * Designates an event indicating that the local ICE username fragment of\n * the jingle session has changed.\n * The first argument of the vent is TraceablePeerConnection which\n * is the source of the event.\n * The second argument is the actual \"ufrag\" string.\n */\n LOCAL_UFRAG_CHANGED: 'rtc.local_ufrag_changed',\n\n /**\n * Designates an event indicating that the local ICE username fragment of\n * the jingle session has changed.\n * The first argument of the vent is TraceablePeerConnection which\n * is the source of the event.\n * The second argument is the actual \"ufrag\" string.\n */\n REMOTE_UFRAG_CHANGED: 'rtc.remote_ufrag_changed'\n};\n\nmodule.exports = RTCEvents;\n","/**\n * This class exports constants and factory methods related to the analytics\n * API provided by AnalyticsAdapter. In order for entries in a database to be\n * somewhat easily traceable back to the code which produced them, events sent\n * through analytics should be defined here.\n *\n * Since the AnalyticsAdapter API can be used in different ways, for some events\n * it is more convenient to just define the event name as a constant. For other\n * events a factory function is easier.\n *\n * A general approach for adding a new event:\n * 1. Determine the event type: track, UI, page, or operational. If in doubt use\n * operational.\n * 2. Determine whether the event is related to other existing events, and\n * which fields are desired to be set: name, action, actionSubject, source.\n * 3. If the name is sufficient (the other fields are not important), use a\n * constant. Otherwise use a factory function.\n *\n * Note that the AnalyticsAdapter uses the events passed to its functions for\n * its own purposes, and might modify them. Because of this, factory functions\n * should create new objects.\n *\n */\n\n/**\n * The constant which identifies an event of type \"operational\".\n * @type {string}\n */\nexport const TYPE_OPERATIONAL = 'operational';\n\n/**\n * The constant which identifies an event of type \"page\".\n * @type {string}\n */\nexport const TYPE_PAGE = 'page';\n\n/**\n * The constant which identifies an event of type \"track\".\n * @type {string}\n */\nexport const TYPE_TRACK = 'track';\n\n/**\n * The constant which identifies an event of type \"ui\".\n * @type {string}\n */\nexport const TYPE_UI = 'ui';\n\n/**\n * The \"action\" value for Jingle events which indicates that the Jingle session\n * was restarted (TODO: verify/fix the documentation)\n * @type {string}\n */\nexport const ACTION_JINGLE_RESTART = 'restart';\n\n/**\n * The \"action\" value for Jingle events which indicates that a session-accept\n * timed out (TODO: verify/fix the documentation)\n * @type {string}\n */\nexport const ACTION_JINGLE_SA_TIMEOUT = 'session-accept.timeout';\n\n/**\n * The \"action\" value for Jingle events which indicates that a session-initiate\n * was received.\n * @type {string}\n */\nexport const ACTION_JINGLE_SI_RECEIVED = 'session-initiate.received';\n\n/**\n * The \"action\" value for Jingle events which indicates that a session-initiate\n * not arrived within a timeout (the value is specified in\n * the {@link JingleSessionPC}.\n * @type {string}\n */\nexport const ACTION_JINGLE_SI_TIMEOUT = 'session-initiate.timeout';\n\n/**\n * A constant for the \"terminate\" action for Jingle events. TODO: verify/fix\n * the documentation)\n * @type {string}\n */\nexport const ACTION_JINGLE_TERMINATE = 'terminate';\n\n/**\n * The \"action\" value for Jingle events which indicates that a transport-replace\n * was received.\n * @type {string}\n */\nexport const ACTION_JINGLE_TR_RECEIVED\n = 'transport-replace.received';\n\n/**\n * The \"action\" value for Jingle events which indicates that a transport-replace\n * succeeded (TODO: verify/fix the documentation)\n * @type {string}\n */\nexport const ACTION_JINGLE_TR_SUCCESS\n = 'transport-replace.success';\n\n/**\n * The \"action\" value for P2P events which indicates that P2P session initiate message has been rejected by the client\n * because the mandatory requirements were not met.\n * @type {string}\n */\nexport const ACTION_P2P_DECLINED = 'decline';\n\n/**\n * The \"action\" value for P2P events which indicates that a connection was\n * established (TODO: verify/fix the documentation)\n * @type {string}\n */\nexport const ACTION_P2P_ESTABLISHED = 'established';\n\n/**\n * The \"action\" value for P2P events which indicates that something failed.\n * @type {string}\n */\nexport const ACTION_P2P_FAILED = 'failed';\n\n/**\n * The \"action\" value for P2P events which indicates that a switch to\n * jitsi-videobridge happened.\n * @type {string}\n */\nexport const ACTION_P2P_SWITCH_TO_JVB = 'switch.to.jvb';\n\n/**\n * The name of an event which indicates an available device. We send one such\n * event per available device once when the available devices are first known,\n * and every time that they change\n * @type {string}\n *\n * Properties:\n * audio_input_device_count: the number of audio input devices available at\n * the time the event was sent.\n * audio_output_device_count: the number of audio output devices available\n * at the time the event was sent.\n * video_input_device_count: the number of video input devices available at\n * the time the event was sent.\n * video_output_device_count: the number of video output devices available\n * at the time the event was sent.\n * device_id: an identifier of the device described in this event.\n * device_group_id:\n * device_kind: one of 'audioinput', 'audiooutput', 'videoinput' or\n * 'videooutput'.\n * device_label: a string which describes the device.\n */\nexport const AVAILABLE_DEVICE = 'available.device';\n\n/**\n * This appears to be fired only in certain cases when the XMPP connection\n * disconnects (and it was intentional?). It is currently never observed to\n * fire in production.\n *\n * TODO: document\n *\n * Properties:\n * message: an error message\n */\nexport const CONNECTION_DISCONNECTED = 'connection.disconnected';\n\n/**\n * Indicates that the user of the application provided feedback in terms of a\n * rating (an integer from 1 to 5) and an optional comment.\n * Properties:\n * value: the user's rating (an integer from 1 to 5)\n * comment: the user's comment\n */\nexport const FEEDBACK = 'feedback';\n\n/**\n * Indicates the duration of a particular phase of the ICE connectivity\n * establishment.\n *\n * Properties:\n * phase: the ICE phase (e.g. 'gathering', 'checking', 'establishment')\n * value: the duration in milliseconds.\n * p2p: whether the associated ICE connection is p2p or towards a\n * jitsi-videobridge\n * initiator: whether the local Jingle peer is the initiator or responder\n * in the Jingle session. XXX we probably actually care about the ICE\n * role (controlling vs controlled), and we assume that this correlates\n * with the Jingle initiator.\n */\nexport const ICE_DURATION = 'ice.duration';\n\n/**\n * Indicates the difference in milliseconds between the ICE establishment time\n * for the P2P and JVB connections (e.g. a value of 10 would indicate that the\n * P2P connection took 10ms more than JVB connection to establish).\n *\n * Properties:\n * value: the difference in establishment durations in milliseconds.\n *\n */\nexport const ICE_ESTABLISHMENT_DURATION_DIFF\n = 'ice.establishment.duration.diff';\n\n/**\n * Indicates that the ICE state has changed.\n *\n * Properties:\n * state: the ICE state which was entered (e.g. 'checking', 'connected',\n * 'completed', etc).\n * value: the time in milliseconds (as reported by\n * window.performance.now()) that the state change occurred.\n * p2p: whether the associated ICE connection is p2p or towards a\n * jitsi-videobridge\n * signalingState: The signaling state of the associated PeerConnection\n * reconnect: whether the associated Jingle session is in the process of\n * reconnecting (or is it ICE? TODO: verify/fix the documentation)\n */\nexport const ICE_STATE_CHANGED = 'ice.state.changed';\n\n/**\n * Indicates that no bytes have been sent for the track.\n *\n * Properties:\n * mediaType: the media type of the local track ('audio' or 'video').\n */\nexport const NO_BYTES_SENT = 'track.no-bytes-sent';\n\n/**\n * Indicates that a track was unmuted (?).\n *\n * Properties:\n * mediaType: the media type of the local track ('audio' or 'video').\n * trackType: the type of the track ('local' or 'remote').\n * value: TODO: document\n */\nexport const TRACK_UNMUTED = 'track.unmuted';\n\n/**\n * Creates an operational event which indicates that we have received a\n * \"bridge down\" event from jicofo.\n */\nexport const createBridgeDownEvent = function() {\n const bridgeDown = 'bridge.down';\n\n return {\n action: bridgeDown,\n actionSubject: bridgeDown,\n type: TYPE_OPERATIONAL\n };\n};\n\n/**\n * Creates an event which indicates that the XMPP connection failed\n * @param errorType TODO\n * @param errorMessage TODO\n * @param detail connection failed details.\n */\nexport const createConnectionFailedEvent\n = function(errorType, errorMessage, details) {\n return {\n type: TYPE_OPERATIONAL,\n action: 'connection.failed',\n attributes: {\n 'error_type': errorType,\n 'error_message': errorMessage,\n ...details\n }\n };\n };\n\n/**\n * Creates a conference event.\n *\n * @param {string} action - The action of the event.\n * @param {Object} attributes - The attributes to be added to the event.\n * @returns {{type: string, source: string, action: string, attributes: object}}\n */\nexport function createConferenceEvent(action, attributes) {\n return {\n action,\n attributes,\n source: 'conference',\n type: TYPE_OPERATIONAL\n };\n}\n\n/**\n * Creates an operational event which indicates that a particular connection\n * stage was reached (i.e. the XMPP connection transitioned to the \"connected\"\n * state).\n *\n * @param stage the stage which was reached\n * @param attributes additional attributes for the event. This should be an\n * object with a \"value\" property indicating a timestamp in milliseconds\n * relative to the beginning of the document's lifetime.\n *\n */\nexport const createConnectionStageReachedEvent = function(stage, attributes) {\n const action = 'connection.stage.reached';\n\n return {\n action,\n actionSubject: stage,\n attributes,\n source: action,\n type: TYPE_OPERATIONAL\n };\n};\n\n/**\n * Creates an operational event for the end-to-end round trip time to a\n * specific remote participant.\n * @param participantId the ID of the remote participant.\n * @param region the region of the remote participant\n * @param rtt the rtt\n */\nexport const createE2eRttEvent = function(participantId, region, rtt) {\n const attributes = {\n 'participant_id': participantId,\n region,\n rtt\n };\n\n return {\n attributes,\n name: 'e2e_rtt',\n type: TYPE_OPERATIONAL\n };\n};\n\n/**\n * Creates an event which indicates that the focus has left the MUC.\n */\nexport const createFocusLeftEvent = function() {\n const action = 'focus.left';\n\n return {\n action,\n actionSubject: action,\n type: TYPE_OPERATIONAL\n };\n};\n\n/**\n * Creates an event related to a getUserMedia call.\n *\n * @param action the type of the result that the event represents: 'error',\n * 'success', 'warning', etc.\n * @param attributes the attributes to attach to the event.\n * @returns {{type: string, source: string, name: string}}\n */\nexport const createGetUserMediaEvent = function(action, attributes = {}) {\n return {\n type: TYPE_OPERATIONAL,\n source: 'get.user.media',\n action,\n attributes\n };\n};\n\n/**\n * Creates an event related to remote participant connection status changes.\n *\n * @param attributes the attributes to attach to the event.\n * @returns {{type: string, source: string, name: string}}\n */\nexport const createParticipantConnectionStatusEvent = function(attributes = {}) {\n const action = 'duration';\n\n return {\n type: TYPE_OPERATIONAL,\n source: 'peer.conn.status',\n action,\n attributes\n };\n};\n\n/**\n * Creates an event for a Jingle-related event.\n * @param action the action of the event\n * @param attributes attributes to add to the event.\n */\nexport const createJingleEvent = function(action, attributes = {}) {\n return {\n type: TYPE_OPERATIONAL,\n action,\n source: 'jingle',\n attributes\n };\n};\n\n/**\n * Creates an event which indicates that a local track was not able to read\n * data from its source (a camera or a microphone).\n *\n * @param mediaType {String} the media type of the local track ('audio' or\n * 'video').\n */\nexport const createNoDataFromSourceEvent = function(mediaType, value) {\n return {\n attributes: {\n 'media_type': mediaType,\n value\n },\n action: 'track.no.data.from.source',\n type: TYPE_OPERATIONAL\n };\n};\n\n/**\n * Creates an event for a p2p-related event.\n * @param action the action of the event\n * @param attributes attributes to add to the event.\n */\nexport const createP2PEvent = function(action, attributes = {}) {\n return {\n type: TYPE_OPERATIONAL,\n action,\n source: 'p2p',\n attributes\n };\n};\n\n/**\n * Indicates that we received a remote command to mute.\n */\nexport const createRemotelyMutedEvent = function() {\n return {\n type: TYPE_OPERATIONAL,\n action: 'remotely.muted'\n };\n};\n\n/**\n * Creates an event which contains RTP statistics such as RTT and packet loss.\n *\n * All average RTP stats are currently reported under 1 event name, but with\n * different properties that allows to distinguish between a P2P call, a\n * call relayed through TURN or the JVB, and multiparty vs 1:1.\n *\n * The structure of the event is:\n *\n * {\n * p2p: true,\n * conferenceSize: 2,\n * localCandidateType: \"relay\",\n * remoteCandidateType: \"relay\",\n * transportType: \"udp\",\n *\n * // Average RTT of 200ms\n * \"rtt.avg\": 200,\n * \"rtt.samples\": \"[100, 200, 300]\",\n *\n * // Average packet loss of 10%\n * \"packet.loss.avg\": 10,\n * \"packet.loss.samples\": '[5, 10, 15]'\n *\n * // Difference in milliseconds in the end-to-end RTT between p2p and jvb.\n * // The e2e RTT through jvb is 15ms shorter:\n * \"rtt.diff\": 15,\n *\n * // End-to-end RTT through JVB is ms.\n * \"end2end.rtt.avg\" = 100\n * }\n *\n * Note that the value of the \"samples\" properties are (JSON encoded) strings,\n * and not JSON arrays, as events' attributes can not be nested. The samples are\n * currently included for debug purposes only and can be removed anytime soon\n * from the structure.\n *\n * Also note that not all of values are present in each event, as values are\n * obtained and calculated as part of different process/event pipe. For example\n * {@link ConnectionAvgStats} instances are doing the reports for each\n * {@link TraceablePeerConnection} and work independently from the main stats\n * pipe.\n */\nexport const createRtpStatsEvent = function(attributes) {\n return {\n type: TYPE_OPERATIONAL,\n action: 'rtp.stats',\n attributes\n };\n};\n\n/**\n * Creates an event which contains the round trip time (RTT) to a set of\n * regions.\n *\n * @param attributes\n * @returns {{type: string, action: string, attributes: *}}\n */\nexport const createRttByRegionEvent = function(attributes) {\n return {\n type: TYPE_OPERATIONAL,\n action: 'rtt.by.region',\n attributes\n };\n};\n\n/**\n * Creates an event which contains the local and remote ICE candidate types\n * for the transport that is currently selected.\n *\n * @param attributes\n * @returns {{type: string, action: string, attributes: *}}\n */\nexport const createTransportStatsEvent = function(attributes) {\n return {\n type: TYPE_OPERATIONAL,\n action: 'transport.stats',\n attributes\n };\n};\n\n/**\n * Creates an event which contains information about the audio output problem (the user id of the affected participant,\n * the local audio levels and the remote audio levels that triggered the event).\n *\n * @param {string} userID - The user id of the affected participant.\n * @param {*} localAudioLevels - The local audio levels.\n * @param {*} remoteAudioLevels - The audio levels received from the participant.\n */\nexport function createAudioOutputProblemEvent(userID, localAudioLevels, remoteAudioLevels) {\n return {\n type: TYPE_OPERATIONAL,\n action: 'audio.output.problem',\n attributes: {\n userID,\n localAudioLevels,\n remoteAudioLevels\n }\n };\n}\n\n/**\n * Creates an event which contains an information related to the bridge channel close event.\n *\n * @param {string} code - A code from {@link https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent}\n * @param {string} reason - A string which describes the reason for closing the bridge channel.\n * @returns {{type: string, action: string, attributes: { code: string, reason: string }}}\n */\nexport const createBridgeChannelClosedEvent = function(code, reason) {\n return {\n type: TYPE_OPERATIONAL,\n action: 'bridge-channel.error',\n attributes: {\n code,\n reason\n }\n };\n};\n\n/**\n * Creates an event which indicates the Time To First Media (TTFM).\n * It is measured in milliseconds relative to the beginning of the document's\n * lifetime (i.e. the origin used by window.performance.now()), and it excludes\n * the following:\n * 1. The delay due to getUserMedia()\n * 2. The period between the MUC being joined and the reception of the Jingle\n * session-initiate from jicofo. This is because jicofo will not start a Jingle\n * session until there are at least 2 participants in the room.\n *\n * @param attributes the attributes to add to the event. Currently used fields:\n * mediaType: the media type of the local track ('audio' or 'video').\n * muted: whether the track has ever been muted (?)\n * value: the TTMF in milliseconds.\n */\nexport const createTtfmEvent = function(attributes) {\n return createConnectionStageReachedEvent('ttfm', attributes);\n};\n","/**\n * The audio type.\n */\nexport const AUDIO = 'audio';\n\n/**\n * The presenter type.\n */\nexport const PRESENTER = 'presenter';\n\n/**\n * The video type.\n */\nexport const VIDEO = 'video';\n","import { getLogger } from 'jitsi-meet-logger';\nconst logger = getLogger(__filename);\n\nimport CodecMimeType from '../../service/RTC/CodecMimeType';\nimport browser from '../browser';\nimport RandomUtil from '../util/RandomUtil';\n\nconst SDPUtil = {\n filterSpecialChars(text) {\n // XXX Neither one of the falsy values (e.g. null, undefined, false,\n // \"\", etc.) \"contain\" special chars.\n // eslint-disable-next-line no-useless-escape\n return text ? text.replace(/[\\\\\\/\\{,\\}\\+]/g, '') : text;\n },\n iceparams(mediadesc, sessiondesc) {\n let data = null;\n let pwd, ufrag;\n\n if ((ufrag = SDPUtil.findLine(mediadesc, 'a=ice-ufrag:', sessiondesc))\n && (pwd\n = SDPUtil.findLine(\n mediadesc,\n 'a=ice-pwd:',\n sessiondesc))) {\n data = {\n ufrag: SDPUtil.parseICEUfrag(ufrag),\n pwd: SDPUtil.parseICEPwd(pwd)\n };\n }\n\n return data;\n },\n parseICEUfrag(line) {\n return line.substring(12);\n },\n buildICEUfrag(frag) {\n return `a=ice-ufrag:${frag}`;\n },\n parseICEPwd(line) {\n return line.substring(10);\n },\n buildICEPwd(pwd) {\n return `a=ice-pwd:${pwd}`;\n },\n parseMID(line) {\n return line.substring(6);\n },\n parseMLine(line) {\n const data = {};\n const parts = line.substring(2).split(' ');\n\n data.media = parts.shift();\n data.port = parts.shift();\n data.proto = parts.shift();\n if (parts[parts.length - 1] === '') { // trailing whitespace\n parts.pop();\n }\n data.fmt = parts;\n\n return data;\n },\n buildMLine(mline) {\n return (\n `m=${mline.media} ${mline.port} ${mline.proto} ${\n mline.fmt.join(' ')}`);\n },\n parseRTPMap(line) {\n const data = {};\n let parts = line.substring(9).split(' ');\n\n data.id = parts.shift();\n parts = parts[0].split('/');\n data.name = parts.shift();\n data.clockrate = parts.shift();\n data.channels = parts.length ? parts.shift() : '1';\n\n return data;\n },\n\n /**\n * Parses SDP line \"a=sctpmap:...\" and extracts SCTP port from it.\n * @param line eg. \"a=sctpmap:5000 webrtc-datachannel\"\n * @returns [SCTP port number, protocol, streams]\n */\n parseSCTPMap(line) {\n const parts = line.substring(10).split(' ');\n const sctpPort = parts[0];\n const protocol = parts[1];\n\n // Stream count is optional\n const streamCount = parts.length > 2 ? parts[2] : null;\n\n\n return [ sctpPort, protocol, streamCount ];// SCTP port\n },\n buildRTPMap(el) {\n let line\n = `a=rtpmap:${el.getAttribute('id')} ${el.getAttribute('name')}/${\n el.getAttribute('clockrate')}`;\n\n if (el.getAttribute('channels')\n && el.getAttribute('channels') !== '1') {\n line += `/${el.getAttribute('channels')}`;\n }\n\n return line;\n },\n parseCrypto(line) {\n const data = {};\n const parts = line.substring(9).split(' ');\n\n data.tag = parts.shift();\n data['crypto-suite'] = parts.shift();\n data['key-params'] = parts.shift();\n if (parts.length) {\n data['session-params'] = parts.join(' ');\n }\n\n return data;\n },\n parseFingerprint(line) { // RFC 4572\n const data = {};\n const parts = line.substring(14).split(' ');\n\n data.hash = parts.shift();\n data.fingerprint = parts.shift();\n\n // TODO assert that fingerprint satisfies 2UHEX *(\":\" 2UHEX) ?\n return data;\n },\n parseFmtp(line) {\n const data = [];\n let parts = line.split(' ');\n\n parts.shift();\n parts = parts.join(' ').split(';');\n for (let i = 0; i < parts.length; i++) {\n let key = parts[i].split('=')[0];\n\n while (key.length && key[0] === ' ') {\n key = key.substring(1);\n }\n const value = parts[i].split('=')[1];\n\n if (key && value) {\n data.push({ name: key,\n value });\n } else if (key) {\n // rfc 4733 (DTMF) style stuff\n data.push({ name: '',\n value: key });\n }\n }\n\n return data;\n },\n parseICECandidate(line) {\n const candidate = {};\n const elems = line.split(' ');\n\n candidate.foundation = elems[0].substring(12);\n candidate.component = elems[1];\n candidate.protocol = elems[2].toLowerCase();\n candidate.priority = elems[3];\n candidate.ip = elems[4];\n candidate.port = elems[5];\n\n // elems[6] => \"typ\"\n candidate.type = elems[7];\n candidate.generation = 0; // default value, may be overwritten below\n for (let i = 8; i < elems.length; i += 2) {\n switch (elems[i]) {\n case 'raddr':\n candidate['rel-addr'] = elems[i + 1];\n break;\n case 'rport':\n candidate['rel-port'] = elems[i + 1];\n break;\n case 'generation':\n candidate.generation = elems[i + 1];\n break;\n case 'tcptype':\n candidate.tcptype = elems[i + 1];\n break;\n default: // TODO\n logger.log(\n `parseICECandidate not translating \"${\n elems[i]}\" = \"${elems[i + 1]}\"`);\n }\n }\n candidate.network = '1';\n\n // not applicable to SDP -- FIXME: should be unique, not just random\n // eslint-disable-next-line newline-per-chained-call\n candidate.id = Math.random().toString(36).substr(2, 10);\n\n return candidate;\n },\n buildICECandidate(cand) {\n let line = [\n `a=candidate:${cand.foundation}`,\n cand.component,\n cand.protocol,\n cand.priority,\n cand.ip,\n cand.port,\n 'typ',\n cand.type\n ].join(' ');\n\n line += ' ';\n switch (cand.type) {\n case 'srflx':\n case 'prflx':\n case 'relay':\n if (cand.hasOwnAttribute('rel-addr')\n && cand.hasOwnAttribute('rel-port')) {\n line += 'raddr';\n line += ' ';\n line += cand['rel-addr'];\n line += ' ';\n line += 'rport';\n line += ' ';\n line += cand['rel-port'];\n line += ' ';\n }\n break;\n }\n if (cand.hasOwnAttribute('tcptype')) {\n line += 'tcptype';\n line += ' ';\n line += cand.tcptype;\n line += ' ';\n }\n line += 'generation';\n line += ' ';\n line += cand.hasOwnAttribute('generation') ? cand.generation : '0';\n\n return line;\n },\n parseSSRC(desc) {\n // proprietary mapping of a=ssrc lines\n // TODO: see \"Jingle RTP Source Description\" by Juberti and P. Thatcher\n // on google docs and parse according to that\n const data = new Map();\n const lines = desc.split('\\r\\n');\n\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].substring(0, 7) === 'a=ssrc:') {\n // FIXME: Use regex to smartly find the ssrc.\n const ssrc = lines[i].split('a=ssrc:')[1].split(' ')[0];\n\n if (!data.get(ssrc)) {\n data.set(ssrc, []);\n }\n\n data.get(ssrc).push(lines[i]);\n }\n }\n\n return data;\n },\n parseRTCPFB(line) {\n const parts = line.substr(10).split(' ');\n const data = {};\n\n data.pt = parts.shift();\n data.type = parts.shift();\n data.params = parts;\n\n return data;\n },\n parseExtmap(line) {\n const parts = line.substr(9).split(' ');\n const data = {};\n\n data.value = parts.shift();\n if (data.value.indexOf('/') === -1) {\n data.direction = 'both';\n } else {\n data.direction = data.value.substr(data.value.indexOf('/') + 1);\n data.value = data.value.substr(0, data.value.indexOf('/'));\n }\n data.uri = parts.shift();\n data.params = parts;\n\n return data;\n },\n findLine(haystack, needle, sessionpart) {\n let lines = haystack.split('\\r\\n');\n\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].substring(0, needle.length) === needle) {\n return lines[i];\n }\n }\n if (!sessionpart) {\n return false;\n }\n\n // search session part\n lines = sessionpart.split('\\r\\n');\n for (let j = 0; j < lines.length; j++) {\n if (lines[j].substring(0, needle.length) === needle) {\n return lines[j];\n }\n }\n\n return false;\n },\n findLines(haystack, needle, sessionpart) {\n let lines = haystack.split('\\r\\n');\n const needles = [];\n\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].substring(0, needle.length) === needle) {\n needles.push(lines[i]);\n }\n }\n if (needles.length || !sessionpart) {\n return needles;\n }\n\n // search session part\n lines = sessionpart.split('\\r\\n');\n for (let j = 0; j < lines.length; j++) {\n if (lines[j].substring(0, needle.length) === needle) {\n needles.push(lines[j]);\n }\n }\n\n return needles;\n },\n candidateToJingle(line) {\n // a=candidate:2979166662 1 udp 2113937151 192.168.2.100 57698 typ host\n // generation 0\n // \n if (line.indexOf('candidate:') === 0) {\n // eslint-disable-next-line no-param-reassign\n line = `a=${line}`;\n } else if (line.substring(0, 12) !== 'a=candidate:') {\n logger.log(\n 'parseCandidate called with a line that is not a candidate'\n + ' line');\n logger.log(line);\n\n return null;\n }\n if (line.substring(line.length - 2) === '\\r\\n') { // chomp it\n // eslint-disable-next-line no-param-reassign\n line = line.substring(0, line.length - 2);\n }\n const candidate = {};\n const elems = line.split(' ');\n\n if (elems[6] !== 'typ') {\n logger.log('did not find typ in the right place');\n logger.log(line);\n\n return null;\n }\n candidate.foundation = elems[0].substring(12);\n candidate.component = elems[1];\n candidate.protocol = elems[2].toLowerCase();\n candidate.priority = elems[3];\n candidate.ip = elems[4];\n candidate.port = elems[5];\n\n // elems[6] => \"typ\"\n candidate.type = elems[7];\n\n candidate.generation = '0'; // default, may be overwritten below\n for (let i = 8; i < elems.length; i += 2) {\n switch (elems[i]) {\n case 'raddr':\n candidate['rel-addr'] = elems[i + 1];\n break;\n case 'rport':\n candidate['rel-port'] = elems[i + 1];\n break;\n case 'generation':\n candidate.generation = elems[i + 1];\n break;\n case 'tcptype':\n candidate.tcptype = elems[i + 1];\n break;\n default: // TODO\n logger.log(`not translating \"${elems[i]}\" = \"${elems[i + 1]}\"`);\n }\n }\n candidate.network = '1';\n\n // not applicable to SDP -- FIXME: should be unique, not just random\n // eslint-disable-next-line newline-per-chained-call\n candidate.id = Math.random().toString(36).substr(2, 10);\n\n return candidate;\n },\n candidateFromJingle(cand) {\n let line = 'a=candidate:';\n\n line += cand.getAttribute('foundation');\n line += ' ';\n line += cand.getAttribute('component');\n line += ' ';\n\n let protocol = cand.getAttribute('protocol');\n\n // use tcp candidates for FF\n\n if (browser.isFirefox() && protocol.toLowerCase() === 'ssltcp') {\n protocol = 'tcp';\n }\n\n line += protocol; // .toUpperCase(); // chrome M23 doesn't like this\n line += ' ';\n line += cand.getAttribute('priority');\n line += ' ';\n line += cand.getAttribute('ip');\n line += ' ';\n line += cand.getAttribute('port');\n line += ' ';\n line += 'typ';\n line += ` ${cand.getAttribute('type')}`;\n line += ' ';\n switch (cand.getAttribute('type')) {\n case 'srflx':\n case 'prflx':\n case 'relay':\n if (cand.getAttribute('rel-addr')\n && cand.getAttribute('rel-port')) {\n line += 'raddr';\n line += ' ';\n line += cand.getAttribute('rel-addr');\n line += ' ';\n line += 'rport';\n line += ' ';\n line += cand.getAttribute('rel-port');\n line += ' ';\n }\n break;\n }\n if (protocol.toLowerCase() === 'tcp') {\n line += 'tcptype';\n line += ' ';\n line += cand.getAttribute('tcptype');\n line += ' ';\n }\n line += 'generation';\n line += ' ';\n line += cand.getAttribute('generation') || '0';\n\n return `${line}\\r\\n`;\n },\n\n /**\n * Parse the 'most' primary video ssrc from the given m line\n * @param {object} mLine object as parsed from transform.parse\n * @return {number} the primary video ssrc from the given m line\n */\n parsePrimaryVideoSsrc(videoMLine) {\n const numSsrcs = videoMLine.ssrcs\n .map(ssrcInfo => ssrcInfo.id)\n .filter((ssrc, index, array) => array.indexOf(ssrc) === index)\n .length;\n const numGroups\n = (videoMLine.ssrcGroups && videoMLine.ssrcGroups.length) || 0;\n\n if (numSsrcs > 1 && numGroups === 0) {\n // Ambiguous, can't figure out the primary\n return;\n }\n let primarySsrc = null;\n\n if (numSsrcs === 1) {\n primarySsrc = videoMLine.ssrcs[0].id;\n } else if (numSsrcs === 2) {\n // Can figure it out if there's an FID group\n const fidGroup\n = videoMLine.ssrcGroups.find(\n group => group.semantics === 'FID');\n\n if (fidGroup) {\n primarySsrc = fidGroup.ssrcs.split(' ')[0];\n }\n } else if (numSsrcs >= 3) {\n // Can figure it out if there's a sim group\n const simGroup\n = videoMLine.ssrcGroups.find(\n group => group.semantics === 'SIM');\n\n if (simGroup) {\n primarySsrc = simGroup.ssrcs.split(' ')[0];\n }\n }\n\n return primarySsrc;\n },\n\n /**\n * Generate an ssrc\n * @returns {number} an ssrc\n */\n generateSsrc() {\n return RandomUtil.randomInt(1, 0xffffffff);\n },\n\n /**\n * Get an attribute for the given ssrc with the given attributeName\n * from the given mline\n * @param {object} mLine an mLine object as parsed from transform.parse\n * @param {number} ssrc the ssrc for which an attribute is desired\n * @param {string} attributeName the name of the desired attribute\n * @returns {string} the value corresponding to the given ssrc\n * and attributeName\n */\n getSsrcAttribute(mLine, ssrc, attributeName) {\n for (let i = 0; i < mLine.ssrcs.length; ++i) {\n const ssrcLine = mLine.ssrcs[i];\n\n if (ssrcLine.id === ssrc\n && ssrcLine.attribute === attributeName) {\n return ssrcLine.value;\n }\n }\n },\n\n /**\n * Parses the ssrcs from the group sdp line and\n * returns them as a list of numbers\n * @param {object} the ssrcGroup object as parsed from\n * sdp-transform\n * @returns {list} a list of the ssrcs in the group\n * parsed as numbers\n */\n parseGroupSsrcs(ssrcGroup) {\n return ssrcGroup\n .ssrcs\n .split(' ')\n .map(ssrcStr => parseInt(ssrcStr, 10));\n },\n\n /**\n * Get the mline of the given type from the given sdp\n * @param {object} sdp sdp as parsed from transform.parse\n * @param {string} type the type of the desired mline (e.g. \"video\")\n * @returns {object} a media object\n */\n getMedia(sdp, type) {\n return sdp.media.find(m => m.type === type);\n },\n\n /**\n * Extracts the ICE username fragment from an SDP string.\n * @param {string} sdp the SDP in raw text format\n */\n getUfrag(sdp) {\n const ufragLines\n = sdp.split('\\n').filter(line => line.startsWith('a=ice-ufrag:'));\n\n if (ufragLines.length > 0) {\n return ufragLines[0].substr('a=ice-ufrag:'.length);\n }\n },\n\n /**\n * Sets the given codecName as the preferred codec by moving it to the beginning\n * of the payload types list (modifies the given mline in place). All instances\n * of the codec are moved up.\n * @param {object} mLine the mline object from an sdp as parsed by transform.parse\n * @param {string} codecName the name of the preferred codec\n */\n preferCodec(mline, codecName) {\n if (!mline || !codecName) {\n return;\n }\n\n const matchingPayloadTypes = mline.rtp\n .filter(rtp => rtp.codec && rtp.codec.toLowerCase() === codecName.toLowerCase())\n .map(rtp => rtp.payload);\n\n if (matchingPayloadTypes) {\n // Call toString() on payloads to get around an issue within SDPTransform that sets\n // payloads as a number, instead of a string, when there is only one payload.\n const payloadTypes\n = mline.payloads\n .toString()\n .split(' ')\n .map(p => parseInt(p, 10));\n\n for (const pt of matchingPayloadTypes.reverse()) {\n const payloadIndex = payloadTypes.indexOf(pt);\n\n payloadTypes.splice(payloadIndex, 1);\n payloadTypes.unshift(pt);\n }\n mline.payloads = payloadTypes.join(' ');\n }\n },\n\n /**\n * Strips the given codec from the given mline. All related RTX payload\n * types are also stripped. If the resulting mline would have no codecs,\n * it's disabled.\n *\n * @param {object} mLine the mline object from an sdp as parsed by transform.parse.\n * @param {string} codecName the name of the codec which will be stripped.\n * @param {boolean} highProfile determines if only the high profile H264 codec needs to be\n * stripped from the sdp when the passed codecName is H264.\n */\n stripCodec(mLine, codecName, highProfile = false) {\n if (!mLine || !codecName) {\n return;\n }\n\n const h264Pts = [];\n let removePts = [];\n const stripH264HighCodec = codecName.toLowerCase() === CodecMimeType.H264 && highProfile;\n\n for (const rtp of mLine.rtp) {\n if (rtp.codec\n && rtp.codec.toLowerCase() === codecName.toLowerCase()) {\n if (stripH264HighCodec) {\n h264Pts.push(rtp.payload);\n } else {\n removePts.push(rtp.payload);\n }\n }\n }\n\n // high profile H264 codecs have 64 as the first two bytes of the profile-level-id.\n if (stripH264HighCodec) {\n removePts = mLine.fmtp\n .filter(item => h264Pts.indexOf(item.payload) > -1 && item.config.includes('profile-level-id=64'))\n .map(item => item.payload);\n }\n\n if (removePts.length > 0) {\n // We also need to remove the payload types that are related to RTX\n // for the codecs we want to disable.\n const rtxApts = removePts.map(item => `apt=${item}`);\n const rtxPts = mLine.fmtp.filter(\n item => rtxApts.indexOf(item.config) !== -1);\n\n removePts.push(...rtxPts.map(item => item.payload));\n\n // Call toString() on payloads to get around an issue within\n // SDPTransform that sets payloads as a number, instead of a string,\n // when there is only one payload.\n const allPts = mLine.payloads\n .toString()\n .split(' ')\n .map(Number);\n const keepPts = allPts.filter(pt => removePts.indexOf(pt) === -1);\n\n if (keepPts.length === 0) {\n // There are no other codecs, disable the stream.\n mLine.port = 0;\n mLine.direction = 'inactive';\n mLine.payloads = '*';\n } else {\n mLine.payloads = keepPts.join(' ');\n }\n\n mLine.rtp = mLine.rtp.filter(\n item => keepPts.indexOf(item.payload) !== -1);\n mLine.fmtp = mLine.fmtp.filter(\n item => keepPts.indexOf(item.payload) !== -1);\n if (mLine.rtcpFb) {\n mLine.rtcpFb = mLine.rtcpFb.filter(\n item => keepPts.indexOf(item.payload) !== -1);\n }\n }\n }\n};\n\nexport default SDPUtil;\n","/* global\n __filename,\n MediaStreamTrack,\n RTCIceCandidate: true,\n RTCPeerConnection,\n RTCSessionDescription: true\n*/\n\nimport EventEmitter from 'events';\nimport { getLogger } from 'jitsi-meet-logger';\nimport clonedeep from 'lodash.clonedeep';\n\nimport JitsiTrackError from '../../JitsiTrackError';\nimport CameraFacingMode from '../../service/RTC/CameraFacingMode';\nimport * as MediaType from '../../service/RTC/MediaType';\nimport RTCEvents from '../../service/RTC/RTCEvents';\nimport Resolutions from '../../service/RTC/Resolutions';\nimport VideoType from '../../service/RTC/VideoType';\nimport { AVAILABLE_DEVICE } from '../../service/statistics/AnalyticsEvents';\nimport browser from '../browser';\nimport Statistics from '../statistics/statistics';\nimport GlobalOnErrorHandler from '../util/GlobalOnErrorHandler';\nimport Listenable from '../util/Listenable';\nimport SDPUtil from '../xmpp/SDPUtil';\n\nimport screenObtainer from './ScreenObtainer';\n\nconst logger = getLogger(__filename);\n\n// Require adapter only for certain browsers. This is being done for\n// react-native, which has its own shims, and while browsers are being migrated\n// over to use adapter's shims.\nif (browser.usesAdapter()) {\n require('webrtc-adapter');\n}\n\nconst eventEmitter = new EventEmitter();\n\nconst AVAILABLE_DEVICES_POLL_INTERVAL_TIME = 3000; // ms\n\n/**\n * Default resolution to obtain for video tracks if no resolution is specified.\n * This default is used for old gum flow only, as new gum flow uses\n * {@link DEFAULT_CONSTRAINTS}.\n */\nconst OLD_GUM_DEFAULT_RESOLUTION = 720;\n\n/**\n * Default devices to obtain when no specific devices are specified. This\n * default is used for old gum flow only.\n */\nconst OLD_GUM_DEFAULT_DEVICES = [ 'audio', 'video' ];\n\n/**\n * Default MediaStreamConstraints to use for calls to getUserMedia.\n *\n * @private\n */\nconst DEFAULT_CONSTRAINTS = {\n video: {\n height: {\n ideal: 720,\n max: 720,\n min: 240\n }\n }\n};\n\n/**\n * The default frame rate for Screen Sharing.\n */\nconst SS_DEFAULT_FRAME_RATE = 5;\n\n// Currently audio output device change is supported only in Chrome and\n// default output always has 'default' device ID\nlet audioOutputDeviceId = 'default'; // default device\n// whether user has explicitly set a device to use\nlet audioOutputChanged = false;\n\n// Disables all audio processing\nlet disableAP = false;\n\n// Disables Acoustic Echo Cancellation\nlet disableAEC = false;\n\n// Disables Noise Suppression\nlet disableNS = false;\n\n// Disables Automatic Gain Control\nlet disableAGC = false;\n\n// Disables Highpass Filter\nlet disableHPF = false;\n\nconst featureDetectionAudioEl = document.createElement('audio');\nconst isAudioOutputDeviceChangeAvailable\n = typeof featureDetectionAudioEl.setSinkId !== 'undefined';\n\nlet availableDevices;\nlet availableDevicesPollTimer;\n\n/**\n * An empty function.\n */\nfunction emptyFuncton() {\n // no-op\n}\n\n/**\n * Initialize wrapper function for enumerating devices.\n * TODO: remove this, it should no longer be needed.\n *\n * @returns {?Function}\n */\nfunction initEnumerateDevicesWithCallback() {\n if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {\n return callback => {\n navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n updateKnownDevices(devices);\n callback(devices);\n }, () => {\n updateKnownDevices([]);\n callback([]);\n });\n };\n }\n}\n\n/**\n *\n * @param constraints\n * @param isNewStyleConstraintsSupported\n * @param resolution\n */\nfunction setResolutionConstraints(\n constraints,\n isNewStyleConstraintsSupported,\n resolution) {\n if (Resolutions[resolution]) {\n if (isNewStyleConstraintsSupported) {\n constraints.video.width = {\n ideal: Resolutions[resolution].width\n };\n constraints.video.height = {\n ideal: Resolutions[resolution].height\n };\n }\n\n constraints.video.mandatory.minWidth = Resolutions[resolution].width;\n constraints.video.mandatory.minHeight = Resolutions[resolution].height;\n }\n\n if (constraints.video.mandatory.minWidth) {\n constraints.video.mandatory.maxWidth\n = constraints.video.mandatory.minWidth;\n }\n\n if (constraints.video.mandatory.minHeight) {\n constraints.video.mandatory.maxHeight\n = constraints.video.mandatory.minHeight;\n }\n}\n\n/**\n * @param {string[]} um required user media types\n *\n * @param {Object} [options={}] optional parameters\n * @param {string} options.resolution\n * @param {number} options.bandwidth\n * @param {number} options.fps\n * @param {string} options.desktopStream\n * @param {string} options.cameraDeviceId\n * @param {string} options.micDeviceId\n * @param {CameraFacingMode} options.facingMode\n * @param {bool} firefox_fake_device\n * @param {Object} options.frameRate - used only for dekstop sharing.\n * @param {Object} options.frameRate.min - Minimum fps\n * @param {Object} options.frameRate.max - Maximum fps\n * @param {bool} options.screenShareAudio - Used by electron clients to\n * enable system audio screen sharing.\n */\nfunction getConstraints(um, options = {}) {\n const constraints = {\n audio: false,\n video: false\n };\n\n // Don't mix new and old style settings for Chromium as this leads\n // to TypeError in new Chromium versions. @see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=614716\n // This is a temporary solution, in future we will fully split old and\n // new style constraints when new versions of Chromium and Firefox will\n // have stable support of new constraints format. For more information\n // @see https://github.com/jitsi/lib-jitsi-meet/pull/136\n const isNewStyleConstraintsSupported\n = browser.isFirefox()\n || browser.isSafari()\n || browser.isReactNative();\n\n if (um.indexOf('video') >= 0) {\n // same behaviour as true\n constraints.video = { mandatory: {},\n optional: [] };\n\n if (options.cameraDeviceId) {\n if (isNewStyleConstraintsSupported) {\n // New style of setting device id.\n constraints.video.deviceId = options.cameraDeviceId;\n }\n\n // Old style.\n constraints.video.mandatory.sourceId = options.cameraDeviceId;\n } else {\n // Prefer the front i.e. user-facing camera (to the back i.e.\n // environment-facing camera, for example).\n // TODO: Maybe use \"exact\" syntax if options.facingMode is defined,\n // but this probably needs to be decided when updating other\n // constraints, as we currently don't use \"exact\" syntax anywhere.\n const facingMode = options.facingMode || CameraFacingMode.USER;\n\n if (isNewStyleConstraintsSupported) {\n constraints.video.facingMode = facingMode;\n }\n constraints.video.optional.push({\n facingMode\n });\n }\n\n if (options.minFps || options.maxFps || options.fps) {\n // for some cameras it might be necessary to request 30fps\n // so they choose 30fps mjpg over 10fps yuy2\n if (options.minFps || options.fps) {\n // Fall back to options.fps for backwards compatibility\n options.minFps = options.minFps || options.fps;\n constraints.video.mandatory.minFrameRate = options.minFps;\n }\n if (options.maxFps) {\n constraints.video.mandatory.maxFrameRate = options.maxFps;\n }\n }\n\n setResolutionConstraints(\n constraints, isNewStyleConstraintsSupported, options.resolution);\n }\n if (um.indexOf('audio') >= 0) {\n if (browser.isReactNative()) {\n // The react-native-webrtc project that we're currently using\n // expects the audio constraint to be a boolean.\n constraints.audio = true;\n } else if (browser.isFirefox()) {\n if (options.micDeviceId) {\n constraints.audio = {\n mandatory: {},\n deviceId: options.micDeviceId, // new style\n optional: [ {\n sourceId: options.micDeviceId // old style\n } ] };\n } else {\n constraints.audio = true;\n }\n } else {\n // same behaviour as true\n constraints.audio = { mandatory: {},\n optional: [] };\n if (options.micDeviceId) {\n if (isNewStyleConstraintsSupported) {\n // New style of setting device id.\n constraints.audio.deviceId = options.micDeviceId;\n }\n\n // Old style.\n constraints.audio.optional.push({\n sourceId: options.micDeviceId\n });\n }\n\n // if it is good enough for hangouts...\n constraints.audio.optional.push(\n { echoCancellation: !disableAEC && !disableAP },\n { googEchoCancellation: !disableAEC && !disableAP },\n { googAutoGainControl: !disableAGC && !disableAP },\n { googNoiseSuppression: !disableNS && !disableAP },\n { googHighpassFilter: !disableHPF && !disableAP },\n { googNoiseSuppression2: !disableNS && !disableAP },\n { googEchoCancellation2: !disableAEC && !disableAP },\n { googAutoGainControl2: !disableAGC && !disableAP }\n );\n }\n }\n if (um.indexOf('screen') >= 0) {\n if (browser.isChrome()) {\n constraints.video = {\n mandatory: getSSConstraints({\n ...options,\n source: 'screen'\n }),\n optional: []\n };\n\n } else if (browser.isFirefox()) {\n constraints.video = {\n mozMediaSource: 'window',\n mediaSource: 'window',\n frameRate: options.frameRate || {\n min: SS_DEFAULT_FRAME_RATE,\n max: SS_DEFAULT_FRAME_RATE\n }\n };\n\n } else {\n const errmsg\n = '\\'screen\\' WebRTC media source is supported only in Chrome'\n + ' and Firefox';\n\n GlobalOnErrorHandler.callErrorHandler(new Error(errmsg));\n logger.error(errmsg);\n }\n }\n if (um.indexOf('desktop') >= 0) {\n constraints.video = {\n mandatory: getSSConstraints({\n ...options,\n source: 'desktop'\n }),\n optional: []\n };\n\n // Audio screen sharing for electron only works for screen type devices.\n // i.e. when the user shares the whole desktop.\n if (browser.isElectron() && options.screenShareAudio\n && (options.desktopStream.indexOf('screen') >= 0)) {\n\n // Provide constraints as described by the electron desktop capturer\n // documentation here:\n // https://www.electronjs.org/docs/api/desktop-capturer\n // Note. The documentation specifies that chromeMediaSourceId should not be present\n // which, in the case a users has multiple monitors, leads to them being shared all\n // at once. However we tested with chromeMediaSourceId present and it seems to be\n // working properly and also takes care of the previously mentioned issue.\n constraints.audio = { mandatory: {\n chromeMediaSource: constraints.video.mandatory.chromeMediaSource\n } };\n }\n }\n\n if (options.bandwidth) {\n if (!constraints.video) {\n // same behaviour as true\n constraints.video = { mandatory: {},\n optional: [] };\n }\n constraints.video.optional.push({ bandwidth: options.bandwidth });\n }\n\n // we turn audio for both audio and video tracks, the fake audio & video\n // seems to work only when enabled in one getUserMedia call, we cannot get\n // fake audio separate by fake video this later can be a problem with some\n // of the tests\n if (browser.isFirefox() && options.firefox_fake_device) {\n // seems to be fixed now, removing this experimental fix, as having\n // multiple audio tracks brake the tests\n // constraints.audio = true;\n constraints.fake = true;\n }\n\n return constraints;\n}\n\n/**\n * Creates a constraints object to be passed into a call to getUserMedia.\n *\n * @param {Array} um - An array of user media types to get. The accepted\n * types are \"video\", \"audio\", and \"desktop.\"\n * @param {Object} options - Various values to be added to the constraints.\n * @param {string} options.cameraDeviceId - The device id for the video\n * capture device to get video from.\n * @param {Object} options.constraints - Default constraints object to use\n * as a base for the returned constraints.\n * @param {Object} options.desktopStream - The desktop source id from which\n * to capture a desktop sharing video.\n * @param {string} options.facingMode - Which direction the camera is\n * pointing to.\n * @param {string} options.micDeviceId - The device id for the audio capture\n * device to get audio from.\n * @param {Object} options.frameRate - used only for dekstop sharing.\n * @param {Object} options.frameRate.min - Minimum fps\n * @param {Object} options.frameRate.max - Maximum fps\n * @private\n * @returns {Object}\n */\nfunction newGetConstraints(um = [], options = {}) {\n // Create a deep copy of the constraints to avoid any modification of\n // the passed in constraints object.\n const constraints = clonedeep(options.constraints || DEFAULT_CONSTRAINTS);\n\n if (um.indexOf('video') >= 0) {\n if (!constraints.video) {\n constraints.video = {};\n }\n\n // Override the constraints on Safari because of the following webkit bug.\n // https://bugs.webkit.org/show_bug.cgi?id=210932\n // Camera doesn't start on older macOS versions if min/max constraints are specified.\n // TODO: remove this hack when the bug fix is available on Mojave, Sierra and High Sierra.\n if (browser.isSafari()) {\n if (constraints.video.height && constraints.video.height.ideal) {\n constraints.video.height = { ideal: clonedeep(constraints.video.height.ideal) };\n } else {\n logger.warn('Ideal camera height missing, camera may not start properly');\n }\n if (constraints.video.width && constraints.video.width.ideal) {\n constraints.video.width = { ideal: clonedeep(constraints.video.width.ideal) };\n } else {\n logger.warn('Ideal camera width missing, camera may not start properly');\n }\n }\n if (options.cameraDeviceId) {\n constraints.video.deviceId = options.cameraDeviceId;\n } else {\n const facingMode = options.facingMode || CameraFacingMode.USER;\n\n constraints.video.facingMode = facingMode;\n }\n } else {\n constraints.video = false;\n }\n\n if (um.indexOf('audio') >= 0) {\n if (!constraints.audio || typeof constraints.audio === 'boolean') {\n constraints.audio = {};\n }\n\n // Use the standard audio constraints on non-chromium browsers.\n if (browser.isFirefox() || browser.isSafari()) {\n constraints.audio = {\n deviceId: options.micDeviceId,\n autoGainControl: !disableAGC && !disableAP,\n echoCancellation: !disableAEC && !disableAP,\n noiseSuppression: !disableNS && !disableAP\n };\n } else {\n // NOTE(brian): the new-style ('advanced' instead of 'optional')\n // doesn't seem to carry through the googXXX constraints\n // Changing back to 'optional' here (even with video using\n // the 'advanced' style) allows them to be passed through\n // but also requires the device id to capture to be set in optional\n // as sourceId otherwise the constraints are considered malformed.\n if (!constraints.audio.optional) {\n constraints.audio.optional = [];\n }\n constraints.audio.optional.push(\n { sourceId: options.micDeviceId },\n { echoCancellation: !disableAEC && !disableAP },\n { googEchoCancellation: !disableAEC && !disableAP },\n { googAutoGainControl: !disableAGC && !disableAP },\n { googNoiseSuppression: !disableNS && !disableAP },\n { googHighpassFilter: !disableHPF && !disableAP },\n { googNoiseSuppression2: !disableNS && !disableAP },\n { googEchoCancellation2: !disableAEC && !disableAP },\n { googAutoGainControl2: !disableAGC && !disableAP }\n );\n }\n } else {\n constraints.audio = false;\n }\n\n if (um.indexOf('desktop') >= 0) {\n if (!constraints.video || typeof constraints.video === 'boolean') {\n constraints.video = {};\n }\n\n constraints.video = {\n mandatory: getSSConstraints({\n ...options,\n source: 'desktop'\n })\n };\n }\n\n return constraints;\n}\n\n/**\n * Generates GUM constraints for screen sharing.\n *\n * @param {Object} options - The options passed to\n * obtainAudioAndVideoPermissions.\n * @returns {Object} - GUM constraints.\n *\n * TODO: Currently only the new GUM flow and Chrome is using the method. We\n * should make it work for all use cases.\n */\nfunction getSSConstraints(options = {}) {\n const {\n desktopStream,\n frameRate = {\n min: SS_DEFAULT_FRAME_RATE,\n max: SS_DEFAULT_FRAME_RATE\n }\n } = options;\n const { max, min } = frameRate;\n\n const constraints = {\n chromeMediaSource: options.source,\n maxWidth: window.screen.width,\n maxHeight: window.screen.height\n };\n\n if (typeof min === 'number') {\n constraints.minFrameRate = min;\n }\n\n if (typeof max === 'number') {\n constraints.maxFrameRate = max;\n }\n\n if (typeof desktopStream !== 'undefined') {\n constraints.chromeMediaSourceId = desktopStream;\n }\n\n return constraints;\n}\n\n/**\n * Generates constraints for screen sharing when using getDisplayMedia.\n * The constraints(MediaTrackConstraints) are applied to the resulting track.\n *\n * @returns {Object} - MediaTrackConstraints constraints.\n */\nfunction getTrackSSConstraints(options = {}) {\n // we used to set height and width in the constraints, but this can lead\n // to inconsistencies if the browser is on a lower resolution screen\n // and we share a screen with bigger resolution, so they are now not set\n const constraints = {\n frameRate: SS_DEFAULT_FRAME_RATE\n };\n const { desktopSharingFrameRate } = options;\n\n if (desktopSharingFrameRate && desktopSharingFrameRate.max) {\n constraints.frameRate = desktopSharingFrameRate.max;\n }\n\n return constraints;\n}\n\n/**\n * Updates the granted permissions based on the options we requested and the\n * streams we received.\n * @param um the options we requested to getUserMedia.\n * @param stream the stream we received from calling getUserMedia.\n */\nfunction updateGrantedPermissions(um, stream) {\n const audioTracksReceived\n = Boolean(stream) && stream.getAudioTracks().length > 0;\n const videoTracksReceived\n = Boolean(stream) && stream.getVideoTracks().length > 0;\n const grantedPermissions = {};\n\n if (um.indexOf('video') !== -1) {\n grantedPermissions.video = videoTracksReceived;\n }\n if (um.indexOf('audio') !== -1) {\n grantedPermissions.audio = audioTracksReceived;\n }\n\n eventEmitter.emit(RTCEvents.GRANTED_PERMISSIONS, grantedPermissions);\n}\n\n/**\n * Checks if new list of available media devices differs from previous one.\n * @param {MediaDeviceInfo[]} newDevices - list of new devices.\n * @returns {boolean} - true if list is different, false otherwise.\n */\nfunction compareAvailableMediaDevices(newDevices) {\n if (newDevices.length !== availableDevices.length) {\n return true;\n }\n\n /* eslint-disable newline-per-chained-call */\n\n return (\n newDevices.map(mediaDeviceInfoToJSON).sort().join('')\n !== availableDevices\n .map(mediaDeviceInfoToJSON).sort().join(''));\n\n /* eslint-enable newline-per-chained-call */\n\n /**\n *\n * @param info\n */\n function mediaDeviceInfoToJSON(info) {\n return JSON.stringify({\n kind: info.kind,\n deviceId: info.deviceId,\n groupId: info.groupId,\n label: info.label,\n facing: info.facing\n });\n }\n}\n\n/**\n * Sends analytics event with the passed device list.\n *\n * @param {Array} deviceList - List with info about the\n * available devices.\n * @returns {void}\n */\nfunction sendDeviceListToAnalytics(deviceList) {\n const audioInputDeviceCount\n = deviceList.filter(d => d.kind === 'audioinput').length;\n const audioOutputDeviceCount\n = deviceList.filter(d => d.kind === 'audiooutput').length;\n const videoInputDeviceCount\n = deviceList.filter(d => d.kind === 'videoinput').length;\n const videoOutputDeviceCount\n = deviceList.filter(d => d.kind === 'videooutput').length;\n\n deviceList.forEach(device => {\n const attributes = {\n 'audio_input_device_count': audioInputDeviceCount,\n 'audio_output_device_count': audioOutputDeviceCount,\n 'video_input_device_count': videoInputDeviceCount,\n 'video_output_device_count': videoOutputDeviceCount,\n 'device_id': device.deviceId,\n 'device_group_id': device.groupId,\n 'device_kind': device.kind,\n 'device_label': device.label\n };\n\n Statistics.sendAnalytics(AVAILABLE_DEVICE, attributes);\n });\n}\n\n\n/**\n * Update known devices.\n *\n * @param {Array