diff --git a/dist/index.html b/dist/index.html index 64f002d..7293d9b 100644 --- a/dist/index.html +++ b/dist/index.html @@ -9,8 +9,8 @@ - - + + - - + + + iocaine diff --git a/dist/v-1489417124904/js/maps/app.js.map b/dist/v-1489417124904/js/maps/app.js.map deleted file mode 100644 index 044bf84..0000000 --- a/dist/v-1489417124904/js/maps/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["app.js"],"names":["configure","i18nInit","init","module","modules","pluginsModules","pluginsWithModule","taiga","this","taigaContribPlugins","window","generateHash","components","_","map","x","JSON","stringify","hex_sha1","join","generateUniqueSessionIdentifier","date","randomNumber","Date","getTime","Math","floor","random","sessionId","$routeProvider","$locationProvider","$httpProvider","$provide","$tgEventsProvider","$compileProvider","$translateProvider","$translatePartialLoaderProvider","$animateProvider","authHttpIntercept","blockingIntercept","decorators","defaultHeaders","loaderIntercept","originalWhen","preferedLangCode","userInfo","versionCheckHttpIntercept","classNameFilter","when","path","route","resolve","angular","extend","languageLoad","$q","$translate","deferred","defer","then","promise","projectLoaded","projectService","$route","ref","setSection","current","$$route","section","params","pslug","setProjectBySlug","cleanProject","call","templateUrl","controller","controllerAs","loader","title","description","joyride","reloadOnSearch","access","requiresLogin","template","redirectTo","disableHeader","mobileViewport","otherwise","html5Mode","enabled","requireBase","Content-Type","Accept-Language","taigaConfig","defaultLanguage","X-Session-Id","defaults","headers","patch","post","put","get","useApplyAsync","setSessionId","$location","$navUrls","$lightboxService","errorHandlingService","httpResponseError","response","nextUrl","search","status","config","cancelable","closeAll","error","url","indexOf","force_next","unauthorized","next","reject","responseError","factory","interceptors","push","loaderService","request","logRequest","requestError","rejection","logResponse","$injector","data","version","element","injector","invoke","_this","$confirm","versionErrorMsg","instant","notify","redirectToBlockedPage","responseOk","block","blocked_code","debugInfoEnabled","debugInfo","localStorage","parse","lang","addPart","useLoader","urlTemplate","_version","useSanitizeValueStrategy","addInterpolation","preferredLanguage","fallbackLanguage","getDecorators","each","decorator","provider","messages","moment","locale","ljs","load","defaultMessage","type","email","urlstrict","number","digits","dateIso","alphanum","phone","notnull","notblank","required","regexp","min","max","range","minlength","maxlength","rangelength","mincheck","maxcheck","rangecheck","equalto","linewidth","pikaday","checksley","updateMessages","$log","$rootscope","$auth","$events","$analytics","appMetaService","navigationBarService","lightboxService","un","user","validators","debug","$on","refresh","val","width","lines","valid","nl2br","split","every","line","length","prettyDate","isValid","updateValidators","contribPlugins","adminPlugins","filter","userSettingsPlugins","e","ctx","language","Promise","setScheduler","cb","$evalAsync","setupConnection","isAuthenticated","getUser","initialize","event","getLightboxOpen","preventDefault","start","setAll","addMobileViewport","removeMobileViewport","enableHeader","value","plugin","concat","run","TaigaBase","TaigaController","TaigaService","child","parent","ctor","constructor","key","hasProp","prototype","__super__","hasOwnProperty","bind","fn","me","apply","arguments","superClass","onInitialDataError","xhr","notfound","permissionDenied","q","Base","Service","Controller","DEFAULT_COLOR_LIST","addClass","bindMethods","bindOnce","cancelTimeout","debounce","debounceLeading","defineImmutableProperty","getDefaulColorList","getMatches","getRandomDefaultColor","groupBy","isEmail","isImage","isPdf","joinStr","mixOf","replaceTags","scopeDefer","sizeFormat","slugify","startswith","stripTags","timeout","toString","toggleText","trim","truncate","unslugify","item","i","l","slice","el","className","classList","add","str","breakTag","replace","object","dependencies","methods","keys","forIn","isFunction","bindAll","scope","attr","continuation","delBind","$eval","$watch","Mixed","base","method","mixin","mixins","name","char","toLowerCase","capitalize","texts","nextTextPosition","text","coll","pred","len","result","wait","setTimeout","timeoutVar","clearTimeout","func","$apply","isNumber","isString","isPlainObject","isUndefined","leading","trailing","str1","str2","startsWith","maxLength","suffix","out","String","substring","lastIndexOf","input","precision","size","units","isNaN","parseFloat","isFinite","log","pow","toFixed","exception","pattern","RegExp","tags","obj","Object","defineProperty","fn_result","isObject","removeKeys","chain","flatten","reduce","cartesianProduct","reduceRight","a","b","y","match","oldImmutable","newImmutable","pathObj","forEach","newValue","toJS","sample","clone","string","regex","index","matches","exec","FiltersMixin","PageMixin","UsFiltersMixin","fillUsersAndRoles","users","roles","activeUsers","computableRoles","is_active","sortBy","activeUsersById","id","usersById","project","members","uniq","includes","loadUsersAndRoles","all","rs","projects","usersList","projectId","rolesList","results","selectFilter","existing","location","compact","isInCurrentRouteParams","noreload","replaceFilter","replaceAllFilters","filters","unselectFilter","newValues","parsedValues","isEmpty","applyStoredFilters","projectSlug","getFilters","storeFilters","filtersHashSuffix","hash","ns","storage","set","formatSelectedFilters","list","urlIds","invalidAppliedTags","invalidTags","selectedFilters","selectedIds","validAppliedTags","it","find","sit","dataType","color","changeQ","filtersReloadContent","generateFilters","removeFilter","addFilter","newFilter","category","selectCustomFilter","customFilter","saveCustomFilter","urlfilters","assigned_to","owner","filterRemoteStorageService","storeCustomFiltersName","userFilters","removeCustomFilter","loadFilters","storeFiltersName","epic","userstories","filtersData","assignedTo","customFiltersRaw","selected","statuses","tagsWithAtLeastOneElement","tag","count","full_name","owners","epics","subject","filterQ","translate","content","hideEmpty","totalTaggedElements","customFilters","forOwn","AuthService","CancelAccountDirective","ChangeEmailDirective","ChangePasswordFromRecoveryDirective","ForgotPasswordDirective","InvitationDirective","LoginDirective","LoginPage","PublicRegisterMessageDirective","RegisterDirective","currentUserService","$routeParams","decodeURIComponent","clear","removeToken","$inject","rootscope","model","http","urls","config1","currentUserService1","themeService","userModel","_currentTheme","_getUserTheme","setUserdata","userData","Immutable","fromJS","getAttrs","setUser","theme","_setTheme","newTheme","use","_setLocales","make_model","auth","remove","setToken","token","getToken","auth_token","login","logout","removeUser","register","getInvitation","invitations","acceptInvitiationWithNewUser","forgotPassword","changePasswordFromRecovery","changeEmail","cancelAccount","service","$config","templates","templateFn","publicRegisterEnabled","encodeURIComponent","restrict","directive","$window","link","$scope","$el","$attrs","form","onError","onSuccess","submit","Form","href","onKeyUp","target","currentTarget","iscapsLockActivated","loginFormType","validate","username","password","on","prerenderReady","off","onErrorSubmit","onSuccessSubmit","onlyOneErrorElement","trackEvent","_error_message","setErrors","message","success","$params","tokenInParams","loginForm","onErrorSubmitLogin","onErrorSubmitRegister","onSuccessSubmitLogin","onSuccessSubmitRegister","registerForm","submitLogin","submitRegister","invitation","dataLogin","project_slug","project_name","invitation_token","dataRegister","escape","$repo","$model","email_token","queryOne","cancel_token","TaigaMainDirective","onresize","$broadcast","home","not-found","permission-denied","discover","discover-search","forgot-password","change-password","change-email","cancel-account","create-project","create-project-scrum","create-project-kanban","create-project-duplicate","create-project-import","create-project-import-platform","profile","user-profile","blocked-project","project-backlog","project-taskboard","project-kanban","project-issues","project-epics","project-search","project-epics-detail","project-userstories-detail","project-tasks-detail","project-issues-detail","project-wiki","project-wiki-list","project-wiki-page","project-team","project-admin-home","project-admin-project-profile-details","project-admin-project-profile-default-values","project-admin-project-profile-modules","project-admin-project-profile-export","project-admin-project-profile-reports","project-admin-project-values-status","project-admin-project-values-points","project-admin-project-values-priorities","project-admin-project-values-severities","project-admin-project-values-types","project-admin-project-values-custom-fields","project-admin-project-values-tags","project-admin-memberships","project-admin-roles","project-admin-third-parties-webhooks","project-admin-third-parties-github","project-admin-third-parties-gitlab","project-admin-third-parties-bitbucket","project-admin-third-parties-gogs","project-admin-contrib","user-settings-user-profile","user-settings-user-change-password","user-settings-user-avatar","user-settings-mail-notifications","user-settings-contrib","$navurls","update","AnimationFrame","Autofocus","Capslock","CheckPermissionDirective","ClassPermissionDirective","DataPickerConfig","LightboxClose","ProjectUrl","Qqueue","QueueModelTransformation","SelectedText","Svg","Template","ToggleCommentDirective","i18n","previousMonth","nextMonth","months","weekdays","weekdaysShort","isRTL","firstDay","parseInt","format","$document","getSelection","selection","createRange","render","permission","removeClass","unObserve","unwatch","tgCheckPermission","$observe","checkPermissions","tgClassPermissionWatchAction","unbindWatcher","negation","my_permissions","classes","animationFrame","performAnimation","tail","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","time","shift","slug","is_backlog_activated","is_kanban_activated","is_wiki_activated","is_issues_activated","lastPromise","qqueue","bindAdd","args","qqueue1","repo","model1","setObject","scope1","prop","attrs","cloneDeep","_attrs","_name","getObj","save","transformation","defered","comment","modified","omit","_modifiedAttrs","assign","$templateCache","lodash","tmp","elm","onClose","svgIcon","svgTitle","svgTitleTranslate","svgTitleTranslateValues","$timeout","$parse","$element","ngShow","focus","preload","spinner","src","onLoad","image","Image","onload","transclude","show","prepend","hide","EventsProvider","EventsService","win","liveAnnouncementService1","rootScope","liveAnnouncementService","processMessage","subscriptions","connected","pendingMessages","missedHeartbeats","heartbeatInterval","WebSocket","info","loc","scheme","stopExistingConnection","protocol","trimStart","host","ws","addEventListener","onOpen","onMessage","removeEventListener","stopHeartBeatMessages","close","notifications","subscribe","desc","$digest","startHeartBeatMessages","heartbeatIntervalTime","maxMissedHeartbeats","reconnectTryInterval","setInterval","Error","sendMessage","cmd","error1","clearInterval","processHeartBeatPongMessage","serialize","msg","send","routingKey","subscription","routing_key","callback","unsubscribe","$get","$win","$conf","$rootScope","FeedbackDirective","$loading","feedbackService","openLightbox","submitButton","currentLoading","create","feedback","finish","open","RelatedTaskAssignedToInlineEditionDirective","RelatedTaskCreateButtonDirective","RelatedTaskCreateFormDirective","RelatedTaskRowDirective","RelatedTasksDirective","$compile","$template","templateEdit","templateView","renderEdit","renderView","saveTask","childScope","$new","task","$destroy","html","keyCode","$modelValue","perms","modify_task","delete_task","select","askOnDelete","askResponse","$emit","ngModel","require","$tgmodel","newTask","createTask","reset","default_task_status","openNewRelatedTask","us","$rs","_isEditable","_isVisible","loadTasks","tasks","usId","us_order","showRelatedTasks","avatarService","$ctrl","autoSave","notAutoSave","updateRelatedTask","avatar","member","getAvatar","imgurl","bg","full_name_display","tgRelatedTaskAssignedToInlineEdition","unbind","userId","updatedRelatedTask","ResourcesService","initResources","initUrls","auth-register","by_username","users-password-recovery","users-change-password-from-recovery","users-change-password","users-change-email","users-cancel-account","user-stats","user-liked","user-voted","user-watched","user-contacts","user-me","permissions","notify-policies","user-storage","memberships","bulk-create-memberships","resolver","project-templates","project-modules","bulk-update-projects-order","project-like","project-unlike","project-watch","project-unwatch","project-contact","project-transfer-validate-token","project-transfer-accept","project-transfer-reject","project-transfer-request","project-transfer-start","epic-statuses","userstory-statuses","points","task-statuses","issue-statuses","issue-types","priorities","severities","milestones","epic-upvote","epic-downvote","epic-watch","epic-unwatch","epic-related-userstories","epic-related-userstories-bulk-create","bulk-create-us","bulk-update-us-backlog-order","bulk-update-us-milestone","bulk-update-us-miles-order","bulk-update-us-kanban-order","userstories-filters","userstory-upvote","userstory-downvote","userstory-watch","userstory-unwatch","bulk-create-tasks","bulk-update-task-taskboard-order","task-upvote","task-downvote","task-watch","task-unwatch","task-filters","issues","bulk-create-issues","issues-filters","issue-upvote","issue-downvote","issue-watch","issue-unwatch","wiki","wiki-restore","wiki-links","history/epic","history/us","history/issue","history/task","history/wiki","attachments/epic","attachments/us","attachments/issue","attachments/task","attachments/wiki_page","custom-attributes/epic","custom-attributes/userstory","custom-attributes/task","custom-attributes/issue","custom-attributes-values/epic","custom-attributes-values/userstory","custom-attributes-values/task","custom-attributes-values/issue","webhooks","webhooks-test","webhooklogs","webhooklogs-resend","epics-csv","userstories-csv","tasks-csv","issues-csv","timeline-profile","timeline-user","timeline-project","exporter","importer","locales","applications","application-tokens","stats-discover","importers-trello-auth-url","importers-trello-authorize","importers-trello-list-projects","importers-trello-list-users","importers-trello-import-project","importers-jira-auth-url","importers-jira-authorize","importers-jira-list-projects","importers-jira-list-users","importers-jira-import-project","importers-github-auth-url","importers-github-authorize","importers-github-list-projects","importers-github-list-users","importers-github-import-project","importers-asana-auth-url","importers-asana-authorize","importers-asana-list-projects","importers-asana-list-users","importers-asana-import-project","$urls","providers","toArray","SearchBoxDirective","SearchController","SearchDirective","navUrls","projectService1","loadSearchData","sectionName","loadInitialData","projectName","projectDescription","searchTerm","t","searchResults","term","loadProject","epicStatusById","epic_statuses","issueStatusById","issue_statuses","taskStatusById","task_statuses","severityById","priorityById","usStatusById","us_statuses","loading","_loadSearchData","_promise","abort","reload","$templatecache","$routeparams","linkTable","activeSectionName","applyAutoTab","getActiveSection","lastSearchResults","markSectionTabActive","renderFilterTabs","renderTableContent","tabsDom","maxVal","selectedSection","wikipages","oldElements","oldScope","children","parseHTML","activeSection","sectionData","searchText","AnalyticsService","doc","conf","initialized","accountId","pageEvent","trackRoutes","ignoreFirstPageLoad","injectAnalytics","ga","getUrl","trackPage","s","o","g","r","m","createElement","getElementsByTagName","async","parentNode","insertBefore","document","page","action","label","BindScope","jQuery","CompileHtmlDirective","tgCompileHtml","oldValue","contents","AssignedToDirective","BlockButtonDirective","CreatedByDisplayDirective","DateRangeDirective","DateSelectorDirective","DeleteButtonDirective","EditableSubjectDirective","ListItemAssignedtoDirective","ListItemEpicStatusDirective","ListItemIssueStatusDirective","ListItemPriorityDirective","ListItemSeverityDirective","ListItemTaskStatusDirective","ListItemTypeDirective","ListItemUsStatusDirective","SprintProgressBarDirective","TgMainTitleDirective","TgProgressBarDirective","UserDisplayDirective","WatchersDirective","renderRange","first","second","endDate","initDate","tgDateRange","valFirst","valSecond","datePickerConfigService","selectedDate","datePickerConfig","merge","field","picker","Pikaday","destroy","setDate","renderProgress","percentage","visual_percentage","hasClass","css","tgSprintProgressbar","sprint","closedPoints","totalPoints","closed_points","total_points","round","owner_extra_info","created_date","tgUserId","$modelTransform","deleteWatcher","isEditable","renderWatchers","ref1","requiredPerm","watchers","transform","watcherId","watcherIds","revert","pull","$currentUserService","renderAssignedTo","assignedObject","fullName","isIocaine","isUnassigned","assigned_to_extra_info","is_iocaine","fullNameVisible","ask","instance","is_blocked","onDeleteGoToUrl","onDeleteTitle","subtitle","click","tgListitemEpicStatus","tgListitemUsStatus","tgListitemTaskStatus","tgListitemAssignedto","issue","tgListitemIssueStatus","issueTypeById","domNode","tgListitemType","priority","tgListitemPriority","severity","tgListitemSeverity","tgProgressBar","i18nSectionName","ConfirmService","NOTIFICATION_MSG","light-error","lightboxSelector","ok","askChoice","choices","replacement","warning","choicesField","append","icon","detailImage","svgContainer","useSVG","$","createElementNS","setAttributeNS","appendChild","spin","stop","percent","body","selector","tsem","one","CustomAttributeValueDirective","CustomAttributesValuesController","CustomAttributesValuesDirective","DATE_TYPE","MULTILINE_TYPE","RICHTEXT_TYPE","TEXT_TYPE","TYPE_CHOICES","URL_TYPE","confirm","objectId","customAttributes","customAttributesValues","loadCustomAttributesValues","getAttributeValue","attribute","attributeValue","attributes_values","updateAttributeValue","attributesValues","$templates","$storage","collapsedHash","$ctrls","collapsed","toggleCollapse","requiredEditionPerm","$selectedText","setFocusAndSelectOnInputField","edit","editable","onSelect","saveCustomRichText","markdown","cancelCustomRichText","tgCustomAttributeValue","customAttributeValue","stopPropagation","EstimationsService","LbUsEstimationDirective","UsEstimationDirective","$tgEstimationsService","estimationProcess","onSelectedPointForRole","roleId","pointId","$setViewValue","mainTemplate","calculateTotalPoints","calculateRoles","$watchCollection","$qqueue","EstimationProcess","pointsTemplate","$el1","us1","project1","bindClickEvents","pointsById","notNullValues","values","v","k","acc","num","role","pointObj","renderPointsSelector","siblings","popover","horizontalList","maxPointLength","pop","point","some","horizontal","closest","offset","top","height","clientHeight","byRefFilter","darkerFilter","defaultFilter","inArray","markdownToHTML","momentFormat","momentFromNow","toMutableFilter","yesNoFilter","defaultValue","without_suffix","fromNow","memoizedMutable","toMutable","js","memoize","List","$filterFilter","cleanRef","substr","luminosity","black","c","j","newColor","white","wysiwigService","getHTML","$filter","arrayFilter","listItem","AssignedToLightboxDirective","BlockLightboxDirective","BlockingMessageInputDirective","CreateBulkUserstoriesDirective","CreateEditUserstoryDirective","LightboxDirective","LightboxKeyboardNavigationService","LightboxLeaveProjectWarningDirective","LightboxService","WatchersLightboxDirective","onEsc","docEl","lightboxContent","not","firstField","activeElement","blur","code","which","$applyAsync","removeAttr","lightboxEl","dispatch","prev","trigger","$attr","visible","$tgrepo","unblock","finishCallback","blocked_note","watch","ngmodel","attachmentsService","attachmentsToAdd","attachmentsToDelete","createAttachments","deleteAttachments","resetAttachments","createEditUs","isNew","addAttachment","attachment","deleteAttachment","addTag","inserted","itemtags","projectTags","tags_colors","deleteTag","statusList","usStatusList","attachments","is_archived","createEditUsOpen","team_requirement","client_requirement","promises","upload","file","broadcastEvent","include_attachments","include_tasks","getByRef","keydown","statusId","bulk","bulkCreate","lightboxKeyboardNavigationService","closeLightbox","filterUsers","normalizeString","selectedItem","selectedUser","usersTemplate","normalizedString","toUpperCase","visibleUsers","partial","showMore","assignedToId","searchingText","usersSearch","getFilteredUsers","_filterUsers","Loader","LoaderDirective","tgLoader","onStart","onEnd","autoClose","lastResponseDate","pageLoaded","requestCount","startLoadTime","minTime","force","diff","endTime","timeoutValue","intervalAuto","auto","LoadingDirective","TgLoadingService","settings","removeClasses","classess","timeoutId","tgLoading","showLoading","RelatedTaskStatusDirective","UsStatusDirective","usStatusDom","usStatusDomParent","tgUsStatus","onUpdate","selectionTemplate","updateTaskStatus","taskStatusDom","taskStatusDomParent","tgRelatedTaskStatus","closePopover","isVisible","docViewBottom","docViewLeft","docViewRight","docViewTop","docViewWidth","elemBottom","elemLeft","elemRight","elemTop","elemWidth","display","visibility","scrollTop","left","fadeOut","fadeIn","ExceptionHandlerFactory","ravenConfig","Raven","install","cause","captureException","ColorizeTagsBacklogDirective","LbTagLineDirective","TagsDirective","formatter","parser","isArray","$formatters","$parsers","tgColorizeBacklogTags","COMMA_KEY","ENTER_KEY","autocomplete","templateTags","addValue","deleteValue","hideSaveButton","renderTags","resetInput","saveInputTag","showSaveButton","withoutColors","has","tagsColors","style","fromCharCode","Awesomplete","CreateEditSprint","createSprint","getLastSprint","hasErrors","resetSprint","ussToAdd","newSprint","estimated_start","estimated_finish","estimated_end","copy","realClone","sprintsCounter","sprints","__all__","milestonesCounter","openSprints","sortedSprints","closed","uss","estimatedFinish","estimatedStart","lastSprint","lastSprintNameDom","editSprint","BacklogController","BacklogDirective","BurndownBacklogGraphDirective","TgBacklogProgressBarDirective","ToggleBurndownVisibility","UsPointsDirective","UsRolePointsSelectorDirective","params1","events","analytics","rs2","modelTransform","backlogOrder","milestonesOrder","disablePagination","firstLoadComplete","showTags","activeFilters","showGraphPlaceholder","displayVelocity","initializeEventHandlers","getShowTags","loadUserstories","loadProjectStats","ussToMove","loadSprints","loadClosedSprints","findIndex","moveUs","unloadClosedSprints","initializeSubscription","routingKey1","routingKey2","loadAllPaginatedUserstories","toggleShowTags","storeShowTags","toggleActiveFilters","toggleVelocityForecasting","visibleUserStories","forecastedStories","stats","defined_points","completedPercentage","total_milestones","calculateForecasting","setMilestonesOrder","len1","results1","user_stories","sprint_order","closedSprints","totalClosedMilestones","closedSprintsById","totalMilestones","totalOpenMilestones","sprintsById","currentSprint","findCurrentSprint","reverse","resetPagination","pageSize","loadingUserstories","storeQueryParams","listUnassigned","header","backlog_order","loadBacklog","backlog_points_sum","current_sum","assigned_points","speed","closedMilestones","total_closed_milestones","prepareBulkUpdateData","uses","us_id","order","usList","newUsIndex","newSprintId","afterDestination","beforeDestination","currentSprintId","len2","len3","len4","len5","len6","modifiedUs","n","oldSprintId","options","orderField","orderList","p","previous","previousWithTheSameOrder","ref2","setOrders","setPreviousOrders","startIndex","milestone","listIt","moveIt","bulkUpdateMilestone","bulkUpdateBacklogOrder","set-orders","updateUserStoryStatus","editUserStory","$event","deleteUserStory","without","addNewUs","default_us_status","addNewSprint","currentDate","end","doomLineTemplate","linkDoomLine","linkFilters","linkToolbar","openFilterInit","showHideFilter","showHideTags","addDoomLineDom","getUsItems","reloadDoomLine","removeDoomlineDom","domElement","before","rowElements","checkSelected","getUsToMove","lastChecked","moveToCurrentSprint","moveToLatestSprint","moveUssToSprint","shiftPressed","ussDom","itemScope","selectedUss","extraPoints","totalExtraPoints","ussCurrent","union","moveToSprintDom","selectedUsDom","toggleClass","shiftKey","elements","nextAll","prevAll","nextUntil","prevUntil","ussToMoveList","sidebar","hideText","showText","filtersSearch","numberOfRoles","roleName","is","rolScope","$tgTemplate","rolesTemplate","bindClickElements","filteringRoleId","renderRolesSelector","selectedRoleId","updatingSelectedRoleId","tgBacklogUsPoints","popRolesDom","firstLoad","toggleGraph","isBurndownGraphCollapsed","redrawChart","dataToDraw","client_increment_line","colors","evolution_line","milestonesRange","optimal_line","team_increment_line","zero_line","ml","zip","fillColor","optimal","evolution","grid","borderWidth","right","bottom","borderColor","hoverable","xaxis","ticks","axisLabel","axisLabelUseCanvas","axisLabelFontSizePixels","axisLabelFontFamily","axisLabelPadding","tickFormatter","axis","yaxis","series","shadowSize","fill","radius","lineWidth","tooltip","tooltipOpts","xval","yval","flotItem","seriesIndex","sprintName","abs","empty","plot","adjustPercentaje","projectPointsPercentaje","closedPointsPercentaje","adjusted","tgBacklogProgressBar","definedPoints","BacklogSortableDirective","deleteElement","drake","initIsBacklog","scroll","dragula","copySortSource","isContainer","contains","moves","container","isChecked","dragMultiple","dragMultipleItems","firstElement","isBacklog","sameContainer","autoScroll","margin","pixels","scrollWhenOutside","down","dragging","BacklogSprintDirective","BacklogSprintHeaderDirective","ToggleExcludeClosedSprintsVisualization","slideOptions","sprintTableMinHeight","toggleSprint","duration","easing","sprintArrow","sprintTable","tgBacklogSprint","slideToggle","compiledTemplate","estimatedDateRange","taskboardUrl","templateScope","excludeClosedSprints","loadingElm","after","SprintGraphDirective","days","day","unshift","d","optimal_points","open_points","tickSize","last","mode","daysNames","formattedDate","roundedValue","CreateBulkTasksDirective","CreateEditTaskDirective","tagsToAdd","sprintId","user_story","createEditTaskOpen","console","TaskboardController","TaskboardDirective","TaskboardSquishColumnDirective","rs1","q1","taskboardTasksService","openFilter","usTasks","_setMeta","setZoom","zoomLevel","zoom","previousZoomLevel","isFirstLoad","resetFolds","zoomLoading","startDate","completedPoints","completedPointsSum","totalPointsSum","openTasks","totalTasks","total_tasks","refreshTagsColors","replaceModel","taskMove","onAssignedToChanged","userid","taskModel","loadTaskboard","loadSprintStats","loadSprint","pointsList","roleById","taskStatusList","remainingPointsSum","remainingTasks","res","completed_points","completed_tasks","setUserstories","sslug","setRolePoints","showPlaceHolder","tasksRaw","editTask","getTask","getIn","editingTask","oldStatusId","moveUpdateData","getTaskModel","move","status__is_archived","set_orders","assignOrders","addNewTask","toggleFold","changeTaskAssignedTo","getPoint","getRole","pointsByRole","poitnId","tableBodyDom","tableHeaderDom","scrollLeft","avatarWidth","maxColumnWidth","getCeilWidth","recalculateStatusColumnWidth","recalculateTaskboardWidth","refreshTaskboardTableWidth","setStatusColumnWidth","statusesFolded","getStatusColumnModes","usFolded","getUsRowModes","foldStatus","storeStatusColumnModes","foldUs","storeUsRowModes","tasksMatrixSize","sqrt","column","ctrl","columnWidths","columns","totalWidth","outerWidth","total","statusFoldedWidth","TaskboardSortableDirective","containers","filterError","itemEl","newParentScope","oldParentScope","tdom","$tgConfirm","accepts","cancel","itemIndex","itemTask","newStatusId","newUsId","oldUsId","parentEl","st","TaskboardTasksService","foldStatusChanged","Map","taskId","refreshRawOrder","taskboard_order","invert","findedTask","findedIndex","usItem","taksWithoutMoved","taskByUsStatus","task_id","images","thumbnail_card_url","colorized_tags","KanbanUserstoriesService","userstoriesRaw","archivedStatus","statusHide","usByStatus","addArchivedStatus","isUsInArchivedHiddenStatus","getUsModel","hideStatus","deleteStatus","showStatus","getStatus","toDelete","archived","difference","kanban_order","usByStatusWithoutMoved","getUs","findedUs","usModel","KanbanArchivedStatusHeaderDirective","KanbanArchivedStatusIntroDirective","KanbanController","KanbanDirective","KanbanSquishColumnDirective","KanbanWipLimitDirective","kanbanUserstoriesService1","kanbanUserstoriesService","openArchived","loadUserStoriesForStatus","hideUserStoriesForStatus","editUs","editingUserStory","changeUsAssignedTo","listAll","filteredStatus","loadKanban","hideArchivedText","showArchivedText","hidden","tgKanbanArchivedStatusHeader","userStories","hiddenUserStoriexText","updateIntroText","tgKanbanArchivedStatusIntro","hasArchived","itemUs","userStoriesLoaded","updateTableWidth","folds","kanban","redrawWipLimit","tgKanbanWipLimit","wip_limit","KanbanSortableDirective","EpicDetailController","EpicStatusButtonDirective","EpicStatusDisplayDirective","epicRef","epicref","initializeOnDeleteGoToUrl","epicSubject","epicStatus","statusById","epicDescription","description_html","loadEpic","immutableProject","immutableEpic","epicId","commentModel","neighbors","previousUrl","listInEpic","onUpvote","upvote","onDownvote","downvote","onWatch","onUnwatch","onSelectColor","onSelectColorError","onSelectColorSuccess","is_closed","IssueDetailController","IssuePriorityButtonDirective","IssueSeverityButtonDirective","IssueStatusButtonDirective","IssueStatusDisplayDirective","IssueTypeButtonDirective","PromoteIssueToUsButtonDirective","issueRef","issueref","ref3","issueSubject","issueStatus","issueType","typeById","issueSeverity","issuePriority","issueDescription","loadIssue","issue_types","typeList","severityList","priorityList","issueId","typees","severityes","priorityes","generated_from_issue","CreateBulkIssuesDirective","CreateIssueDirective","createIssueOpen","default_issue_status","default_issue_type","default_priority","default_severity","IssueAssignedToInlineEditionDirective","IssueStatusInlineEditionDirective","IssuesController","IssuesDirective","loadIssues","voting","myFiltersHashSuffix","orderBy","order_by","types","issueStatusList","issueTypes","loadIssuesRequests","models","paginatedBy","addNewIssue","addIssuesInBulk","upVoteIssue","downVoteIssue","getOrderBy","linkOrdering","linkPagination","$pagEl","afterCurrent","atBegin","atEnd","beforeCurrent","getNumPages","renderPagination","numPages","cpage","pages","showPrevious","showNext","pagenum","colHeadElement","currentOrder","svg","finalOrder","newOrder","updateIssueStatus","issueStatusDom","issueStatusDomParent","tgIssueStatusInlineEdition","updateIssue","tgIssueAssignedToInlineEdition","updatedIssue","UsClientRequirementButtonDirective","UsStatusButtonDirective","UsStatusDisplayDirective","UsTeamRequirementButtonDirective","UserStoryDetailController","configService","usRef","usref","tribeEnabled","tribeHost","closedTasks","progressPercentage","userStoryRef","userStorySubject","userStoryStatus","userStoryPoints","userStoryDescription","userStoryClosedTasks","userStoryTotalTasks","userStoryProgressPercentage","allClosed","loadUs","httpParams","kanbanStaus","noMilestone","pick","onTribeInfo","publishDesc","publishTitle","alt","canEdit","isRequired","TaskDetailController","TaskIsIocaineButtonDirective","TaskStatusButtonDirective","TaskStatusDisplayDirective","taskRef","taskref","taskSubject","taskStatus","taskDescription","loadTask","loadUserStory","LeaveProjectDirective","TeamController","TeamFiltersDirective","TeamMemberCurrentUserDirective","TeamMemberStatsDirective","TeamMembersDirective","membersFilter","setRole","filtersRole","loadMembers","totals","currentUser","issuesEnabled","tasksEnabled","wikiEnabled","loadMemberStats","memberStats","vals","statsKey","sum","_processStats","_processStat","stat","singleStat","userRoles","filtersQ","lightboxFactory","leaveConfirm","confirm_leave_project_text","leave_project_text","leave","loadProjects","class","isCurrentUser","WikiDetailController","WikiSummaryDirective","WikiWysiwyg","moveLink","wikiSlug","wikiTitle","linksVisible","wikiPageName","wikiPageContent","totalEditions","editions","lastModifiedDate","modified_date","loadWiki","getBySlug","wikiId","loadWikiLinks","listLinks","wikiLinks","selectedWikiLink","checkLinksPerms","splice","saveAll","last_modifier","wikiPage","attachmentsFullService","wikiHistoryService","uploadFile","editableDescription","saveDescription","loadHistoryEntries","uploadFiles","files","storageKey","WikiNavDirective","linkWikiLinks","addWikiLinkPermission","deleteWikiLinkPermission","direction","mirrorContainer","linkId","parents","newLink","loadPromise","WikiPagesListController","loadWikiPages","ChangeOwnerLightboxController","ChangeOwnerLightboxDirective","LbRequestOwnershipDirective","LightboxAddMembersWarningMessageDirective","TransferProjectStartSuccessDirective","confirmService","transferRequest","lightboxService1","commentOpen","limit","getUsers","currentOwnerId","userSearch","selectUser","transferStart","bindToController","MembershipsController","MembershipsDirective","MembershipsRowActionsDirective","MembershipsRowAdminCheckboxDirective","MembershipsRowAvatarDirective","MembershipsRowRoleSelectorDirective","NoMoreMembershipsExplanationDirective","lightboxFactory1","i_am_admin","canAddUsers","max_memberships","total_memberships","httpFilters","getUrlFilters","membership","is_user_active","addNewMembers","showLimitUsersWarningMessage","pending","user_email","isOwner","is_owner","tgMembershipsRowAvatar","tgMembershipsRowAdminCheckbox","inputId","is_admin","roleList","selectedRole","tgMembershipsRowRoleSelector","newRole","activedTemplate","pendingTemplate","tgMembershipsRowActions","resendInvitation","defaultMsg","fetchProject","AdminNavigationDirective","tgAdminNavigation","AdminProjectChangeOwnerDirective","AdminProjectRequestOwnershipDirective","AdminProjectRestrictionsDirective","CsvEpicDirective","CsvExporterController","CsvExporterEpicsController","CsvExporterIssuesController","CsvExporterTasksController","CsvExporterUserstoriesController","CsvIssueDirective","CsvTaskDirective","CsvUsDirective","ProjectDefaultValuesDirective","ProjectExportDirective","ProjectLogoDirective","ProjectLogoModelDirective","ProjectModulesDirective","ProjectProfileController","ProjectProfileDirective","tgAuth","epicStatusList","issueTypesList","prioritiesList","severitiesList","openDeleteLightbox","newUrl","initializeFields","newVal","oldVal","videoconferences_extra_data","videoconferences","isVideoconferenceActivated","asyn_message","buttonsEl","dump_ready_text","hideButtons","hideResult","hideSpinner","loading_msg","loading_title","resultEl","resultMessageEl","resultTitleEl","setAsyncMessage","setAsyncTitle","setLoadingMessage","setLoadingTitle","setSyncMessage","setSyncTitle","showButtons","showErrorMode","showExportResultAsyncMode","showExportResultSyncMode","showLoadingMode","showResult","showSpinner","spinnerEl","syn_message","dumpUrl","errorMsg","_generateUuid","setCsvUuid","csvUrl","resolveAbsolute","csvUuid","uuid","regenerateUuid","sectionTitle","showSizeInfo","logoAttachment","changeLogo","removeLogo","modelSetter","tgProjectLogoModel","requestOwnership","changeOwner","project-id","active-users","current-owner-id","ColorSelectionDirective","ProjectCustomAttributesController","ProjectCustomAttributesDirective","ProjectTagsController","ProjectTagsDirective","ProjectValuesController","ProjectValuesDirective","ProjectValuesSectionController","moveValue","loadValues","resource","listValues","maxValueOrder","maxBy","itemValue","linkDragAndDrop","linkValue","goToBottomList","initializeNewValue","initializeTextTranslations","objName","saveNewValue","saveValue","valueType","objname","addNewElementText","table","formEl","row","editionRow","option","onSucces","moveTo","colorList","allowEmpty","tgAllowEmpty","moveCustomAttributes","deleteCustomAttribute","saveCustomAttribute","createCustomAttribute","loadCustomAttributes","maxOrder","attrValues","attrModel","newIndex","idx","cancelCreate","cancelUpdate","hideAddButton","hideCancelButton","hideCreateForm","hideEditForm","resetNewAttr","revertChangesInCustomAttribute","showAddButton","showCancelButton","showCreateForm","showEditForm","sortableEl","itemAttr","newAttr","mixingClass","cancelMixingTags","confirmMixingTags","toggleMixingFromTags","startMixingTags","editTag","createTag","filterAndSortTags","loadTags","projectTagsAll","tagsFilter","from_tag","to_tag","loadingDelete","mixingTags","toTag","fromTags","loadingMixing","mixTags","initializeMixingTags","initializeTagsFilter","originalTag","loadingEdit","loadingCreate","EditRoleDirective","NewRoleDirective","RolePermissionsDirective","RolesController","RolesDirective","_disableComputable","_enableComputable","anyComputableRole","computable","loadRoles","public_permission","external_user","public_permissions","forceLoadProject","askOnError","askOnSuccess","toggleComputable","toggleView","toggle","DEFAULT_PERMISSIONS","insertPosition","baseTemplate","categoryTemplate","resumeTemplate","generateCategoriesFromRole","renderCategory","renderPermissions","renderResume","categories","epicPermissions","isPermissionEditable","issuePermissions","milestonePermissions","setActivePermissions","setActivePermissionsPerCategory","taskPermissions","userStoryPermissions","wikiPermissions","active","is_private","cat","activePermissions","getActivePermissions","categoryId","anon_permissions","BitbucketController","BitbucketWebhooksDirective","GithubController","GithubWebhooksDirective","GitlabController","GitlabWebhooksDirective","GogsController","NewWebhookDirective","SelectInputText","ValidOriginIpsDirective","WebhookDirective","WebhooksController","loadWebhooks","openHistory","showEditMode","showVisualizationMode","updateLogs","updateShowHideHistoryText","webhook","tgWebhook","validStatus","prettySentHeaders","toPairs","request_headers","arg","prettySentData","request_data","created","logs_counter","logs","historyElement","textElement","test","resend","addWebhookDOMNode","formDOMNode","loadModules","github","gitlab","bitbucket","saveAttribute","$ngModel","gogs","DeleteProjectDirective","projectToDelete","BindHtmlDirective","BindOnceAltDirective","BindOnceBindDirective","BindOnceHrefDirective","BindOnceHtmlDirective","BindOnceRefDirective","BindOnceSrcDirective","BindOnceTitleDirective","BindTitleDirective","tgBoBind","tgBoHtml","tgBoRef","tgBoSrc","tgBoHref","tgBoAlt","tgBoTitle","tgTitleHtml","tgBindHtml","ConfigurationService","ContribController","ContribUserSettingsController","currentPlugin","head","FiltersStorageService","HttpService","cacheFactory","cache","removeAll","locationFactory","lastRoute","Model","ModelService","dataTypes","_dataTypes","setAttrs","_isModified","applyCasts","attrName","castMethod","castName","casts","getIdAttrName","getName","setAttr","getter","self","setter","enumerable","configurable","isModified","isAttributeModified","markSaved","desSerialize","sdata","ddata","$http","$gmUrls","$gmStorage","cls","int","float","NavigationUrlsDirective","NavigationUrlsService","formatUrl","replacer","bindOnceP","parseNav","param","tgNavGetParams","tgNav","fullUrl","getURLParams","getURLParamsStr","metaKey","ctrlKey","RepositoryService","resolveUrlForModel","idAttrName","resolveUrlForAttributeModel","extraParams","_data","_status","returnHeaders","queryMany","httpOptions","enablePagination","queryOneAttribute","queryOneRaw","queryPaginated","queryOnePaginatedRaw","wikipage","StorageService","_default","serializedValue","getItem","setItem","removeItem","UrlsService","fmt","mainUrl","trimEnd","resourceProvider","_get","userstory","_list","hashSuffix","getQueryParams","editComment","activityId","commentData","getCommentHistory","deleteComment","undeleteComment","history","listInAllProjects","project_id","bulk_issues","hashSuffixStatusColumnModes","hashSuffixStatusViewModes","mdrender","listByUser","bulkCreateMemberships","invitation_extra_text","bulk_memberships","notifyPolicies","listByMember","memberId","bulkUpdateOrder","bulkData","regenerate_epics_csv_uuid","regenerate_userstories_csv_uuid","regenerate_tasks_csv_uuid","regenerate_issues_csv_uuid","from_tags","statusUpdater","complete","failed","maxFileSize","uploadComplete","uploadFailed","uploadProgress","fileName","fileSize","evt","loaded","uploadedSize","totalSize","responseText","getResponseHeader","isPrivate","FormData","XMLHttpRequest","setRequestHeader","transformRequest","identity","deferredAbort","get_all","noop","u","hashSuffixUsRowModes","userStoryId","milestone_id","bulk_tasks","bulkUpdateTaskTaskboardOrder","changeAvatar","removeAvatar","changePassword","currentPassword","newPassword","current_password","userSettings","contacts","page_size","status_id","bulk_stories","milestoneId","bulkUpdateKanbanOrder","webhookId","webhooklogId","UserChangePasswordController","UserChangePasswordDirective","newPassword1","newPassword2","DeleteUserDirective","TaigaAvatarModelDirective","UserAvatarDirective","UserProfileDirective","UserSettingsController","getLan","getTheme","maxFileSizeMsg","availableThemes","avatarAttachment","tgAvatarModel","UserSettingsNavigationDirective","tgUserSettingsNavigation","UserNotificationsController","UserNotificationsDirective","UserNotificationsListDirective","policy","policyIndex","prev_level","notify_level","AssignedItemDirective","AssignedToSelectorController","assigned","_getAssignedMember","_filterAssignedMember","assignedMember","nonAssignedMembers","AssignedToSelectorDirective","onRemoveAssigned","onAssignTo","AssignedToController","has_permissions","_closeAndRemoveAssigned","_closeAndAssign","onSelectAssignedTo","on-remove-assigned","on-assign-to","assignTo","AttachmentLinkDirective","attachmentsPreviewService","tgAttachmentLink","fileId","AttachmentGalleryDirective","onDelete","AttachmentController","is_deprecated","editMode","mergeIn","AttachmentDirective","AttachmentsDropDirective","eventAttr","tgAttachmentsDrop","dataTransfer","originalEvent","AttachmentsFullController","deprecatedsCount","attachmentsVisible","deprecatedsVisible","uploadingAttachments","objId","setMode","toggleDeprecatedsVisible","addAttachments","loadAttachments","toDeleteAttachment","errorMessage","reorderAttachment","updateAttachment","toUpdateAttachment","hasPermission","editPermission","showAttachments","AttachmentsFullDirective","AttachmentsFullService","_attachments","_deprecatedsCount","_attachmentsVisible","_deprecatedsVisible","regenerate","uploading","from_comment","oldIndex","setIn","oldAttachment","AttachmentsPreviewController","getCurrent","hasPagination","getIndex","attachmentIndex","findLast","AttachmentPreviewLightboxDirective","AttachmentsPreviewService","AttachmentsSimpleController","onAdd","AttachmentsSimpleDirective","AttachmentSortableDirective","tgAttachmentsSortable","AutoSelectDirective","AvatarDirective","attributeName","tgAvatarBig","avatarBig","BelongToEpicsDirective","isIterable","BindCode","$sce","wysiwygService","wysiwygCodeHightlighterService","compile","tElement","tAttrs","tgBindCodeGetter","tgBindCodeWatch","tgBindCode","$$addBindingClass","$$addBindingInfo","getTrustedHtml","addHightlighter","BoardZoomDirective","levels","CardSlideshowController","cardSlideshowDirective","CardController","onToggleFold","getClosedTasks","closedTasksPercent","getPermissionsKey","_setVisibility","related","slides","isRelatedTasksVisible","isSlideshowVisible","getNavKey","cardDirective","onClickAssignedTo","onClickEdit","ClickInputFile","inputFile","ColorSelectorController","checkIsColorRequired","displayColorList","userCanChangeColor","isColorRequired","dropRight","setColor","initColor","resetColor","toggleColorList","onSelectDropdownColor","onKeyDown","ColorSelectorDirective","_timeout","mouseenter","mouseleave","StoryHeaderController","loadingSubject","originalSubject","_checkNav","_checkPermissions","editSubject","saveSubject","onEditSubjectError","onEditSubjectSuccess","DetailHeaderDirective","FileChangeDirective","tgFileChange","FilterRemoteStorageService","myFilters","innerPromise","FilterSlideDownDirective","ngIf","contentHeight","wrapperHeight","outerHeight","context","nextSibling","max-height","FilterController","opened","customFilterForm","customFilterName","toggleFilterCategory","filterName","isOpen","onSaveCustomFilter","onChangeQ","onRemoveFilter","filterCategory","onAddFilter","onRemoveCustomFilter","onSelectCustomFilter","isFilterSelected","FilterDirective","vm","filtersForm","$dirty","defaultQ","JoyRideDirective","joyRideService","initJoyrRide","intro","unsuscribe","introJs","oncomplete","onexit","disableJoyRide","setOptions","exitOnEsc","exitOnOverlayClick","showStepNumbers","nextLabel","prevLabel","skipLabel","doneLabel","disableInteraction","setOption","loadJoyRideConfig","exit","JoyRideService","checkPermissionsService","getConfig","dashboard","steps","position","backlog","check","joyRide","joyRides","KanbanBoardZoomDirective","getZoomView","zooms","zoomIndex","onZoomChange","LiveAnnouncementDirective","defineProperties","LiveAnnouncementService","ProjectLogoBigSrcDirective","projectLogoService","logo","projectLogo","getDefaultProjectLogo","ProjectLogoSmallSrcDirective","ProjectMenuController","menu","_getActiveSection","_setVideoConference","_setMenuPermissions","videoconferenceUrl","_videoConferenceUrl","indexBacklog","indexKanban","oldSectionName","sectionsBreadcrumb","baseUrl","ProjectMenuDirective","projectChange","fixed","TagOptionDirective","containerHeight","selectedPosition","onSelectTag","colorArray","TagLineCommonController","tagLineService","disableColorSelection","newTag","_createColorsArray","projectTagColors","createColorsArray","displayTagInput","addNewTag","onAddTag","selectColor","TagLineCommonDirective","tagName","loadingAddTag","loadingRemoveTag","onDeleteTag","TagLineController","onDeleteTagError","onDeleteTagSuccess","onAddTagError","onAddTagSuccess","TagLineDirective","TagLineService","myPermissions","projectPermissions","TagDirective","hasPermissions","TaskboardZoomDirective","TermsOfServiceAndPrivacyPolicyNoticeDirective","privacyPolicyUrl","termsOfServiceUrl","TribeButtonDirective","locationService","port","TribeLinkedDirective","gigTitle","gigId","VoteButtonController","isMouseOver","showTextWhenMouseIsOver","showTextWhenMouseIsLeave","toggleVote","is_voter","_downvote","_upvote","VoteButtonDirective","WatchButtonController","openWatchers","getPerms","toggleWatch","is_watcher","_unwatch","_watch","WatchButtonDirective","attributes","environment","CommentEditWysiwyg","CommentWysiwyg","saveComment","onAddComment","onChange","CustomFieldEditWysiwyg","ItemWysiwyg","WysiwygCodeHightlighterService","getLanguages","languages","getJSON","_languages_","getLanguageInClassList","lan","loadLanguage","Prism","replaceCodeBrToNl","replaceWith","hightlightCode","highlightElement","codes","WysiwygCodeLightbox","textarea","querySelector","codeLanguage","onSave","WysiwygMentionService","navurls","cancelablePromise","searchEmoji","filteredEmojis","searchEmojiByName","searchUser","searchProps","searchItem","searchTypes","items","mention","Medium","wysiwygMentionService","AlignRightButton","CodeButton","CustomPasteHandler","addCodeBlockAndHightlight","getIcon","getRangeCodeBlock","isCodeBlockSelected","oldIsBlockContainer","refreshCodeBlocks","removeCodeBlockAndHightlight","removeSelections","removeAllRanges","endContainer","parentsUntil","mediumInstance","pre","innerText","replaceChild","checkContentChanged","extract","startContainer","insertAfter","extractContents","mainChildren","preList","innerHTML","removeChild","querySelectorAll","setAttribute","nextElementSibling","nodeName","MediumEditor","extensions","button","toolbar","buttons","contentDefault","handleClick","getButton","getSelectionRange","commonAncestorContainer","textAlign","execCommand","tagNames","getExtensionByName","hideToolbar","paste","doPaste","pastedHTML","pastedPlain","util","htmlEntities","insertHTMLCommand","isBlockContainer","cancelWithConfirmation","change","clean","codeBlockSelected","discardLocalStorage","editorMarkdown","editorMedium","getCurrentContent","isDraft","isEditOnly","isOutdated","localSave","notPersist","saveEnd","setEditMode","setHtmlMedium","throttleChange","updateMarkdownWithCurrentHtml","uploadEnd","editonly","codeEditorVisible","codeLans","loadEmojis","saveSnippet","codePre","saving","outdated","onCancel","pasteHTML","store","getMarkdown","throttle","targetBlank","imageDragging","placeholder","autolist","AutoList","alignright","mediumMention","MentionExtension","getItems","mentionCb","changeMarkdown","onUploadFile","currentCodeLanguage","unwatchLoader","WysiwygService","emojis","setEmojiImagePath","getEmojiById","getEmojiByName","replaceImgsByEmojiName","emoji","emojiId","emojiIds","regexImgs","replaceEmojiNameByImgs","removeTrailingListBr","cleanIssueConverter","codeLanguageConverter","node","firstChild","textContent","toMarkdown","gfm","converters","md","breaks","markdownit","DiscoverHomeOrderByController","is_open","week","month","year","currentText","currentOrderBy","DiscoverHomeOrderByDirective","DiscoverSearchBarController","discoverProjectsService","projectsCount","fetchStats","submitFilter","DiscoverSearchBarDirective","DiscoverSearchListHeaderController","like_is_open","activity_is_open","openLike","setOrderBy","openActivity","DiscoverSearchListHeaderDirective","FeaturedProjectsController","featured","fetchFeatured","FeaturedProjectsDirective","HighlightedDirective","highlighted","MostActiveController","mostActive","fetch","fetchMostActive","MostActiveDirective","MostLikedController","mostLiked","fetchMostLiked","MostLikedDirective","DiscoverHomeController","onSubmit","DiscoverSearchController","routeParams","searchResult","nextSearchPage","loadingGlobal","loadingList","loadingPagination","resetSearchList","fetchByGlobalSearch","fetchByOrderBy","getFilter","fetchSearch","is_looking_for_people","onChangeFilter","updateParams","onChangeOrder","DiscoverSearchDirective","DiscoverProjectsService","projectsService","_mostLiked","_mostActive","_featured","_searchResult","_projectsCount","decorate","_decorate","_nextSearchPage","_discoverParams","discover_mode","_params","getProjects","is_featured","CreateEpicController","epicsService","newEpic","default_epic_status","createEpic","validateForm","onCreateEpic","setFormErrors","CreateEpicDirective","errors","EpicRowController","displayUserStories","displayAssignedTo","displayStatusList","loadingStatus","_calculateProgressBar","canEditEpics","toggleUserStoryList","listRelatedUserStories","epicStories","updateStatus","updateEpicStatus","updateAssignedTo","assignLoader","updateEpicAssignedTo","EpicRowDirective","EpicsDashboardController","setfn","isEpicsDashboardEnabled","fetchEpics","notFound","canCreateEpics","on-create-epic","EpicsSortableDirective","tgEpicsSortable","EpicsTableController","displayOptions","displayVotes","votes","progress","_disablePagination","_loadingEpics","toggleEpicTableOptions","reorderEpic","nextPage","hoverEpicTableOption","timer","hideEpicTableOption","updateViewOptions","EpicsTableDirective","StoryRowController","totalTasksCompleted","story","StoryRowDirective","EpicsService","resources","xhrError","_epics","_page","epicData","withoutMoved","fromPairs","epics_order","reorder","reorderRelatedUserstory","epicUserstories","userstoryId","replaceEpic","RelatedUserStoriesController","showCreateRelatedUserstoriesLightbox","showRelatedUserStoriesSection","legth","userCanSort","loadRelatedUserstories","RelatedUserstoriesCreateController","projectUserstories","selectProject","selectedProjectId","onSelectedProject","listAllInProject","excludeIds","filteredData","saveRelatedUserStory","selectedUserstoryId","onSavedRelatedUserstory","validateExistingUserstoryForm","setExistingUserstoryFormErrors","addRelatedUserstory","bulkCreateRelatedUserStories","userstoriesText","onCreatedRelatedUserstory","validateNewUserstoryForm","setNewUserstoryFormErrors","RelatedUserstoriesCreateDirective","existingUserstoryForm","newUserstoryForm","showLightbox","selectedUserstory","searchUserstory","relatedUserstoriesText","selectedProject","onUpdateSearchUserstory","RelatedUserstoriesSortableDirective","tgRelatedUserstoriesSortable","RelatedUserStoriesDirective","RelatedUserstoryRowController","setAvatarData","getAssignedToFullNameDisplay","onDeleteRelatedUserstory","deleteRelatedUserstory","RelatedUserstoryRowDirective","ExternalAppController","externalAppsService","loginUrl","createApplicationToken","_getApplicationToken","_redirect","_applicationId","application","_state","state","_user","_application","loginWithAnotherUserUrl","applicationToken","getApplicationToken","back","authorizeApplicationToken","ExternalAppsService","applicationId","externalapps","FeedbackService","sendFeedback","CommentController","permissionService","hiddenDeletedComment","showDeletedComment","hideDeletedComment","checkCancelComment","onEditMode","commentId","canEditDeleteComment","pk","onEditComment","displayCommentHistory","CommentDirective","editing","deleting","onDeleteComment","onRestoreDeletedComment","CommentsController","initializePermissions","canAddCommentPermission","CommentsDirective","comments","LightboxDisplayHistoricController","_loadHistoric","commentHistoryEntries","LightboxDisplayHistoricDirective","HistoryEntryDirective","entry","HistoryTabsDirective","showCommentTab","showActivityTab","onActiveComments","onActiveActivities","onOrderComments","activeTab","commentsNum","activitiesNum","onReverse","HistorySectionController","viewComments","_loadHistory","_getComments","_getActivities","activities","values_diff","showHistorySection","toggleEditMode","onActiveHistoryTab","restoreDeletedComment","addComment","HistorySectionDirective","ActivitiesDiffController","diffTags","diffRemoveTags","diffAddTags","HistoryDiffDirective","HistoryDirective","DutyDirective","duty","getDutyType","HomeController","HomeService","_attachProjectInfoToWorkInProgress","workInProgress","projectsById","_attachProjectInfoToDuty","_duties","_getValidDutiesAndAttachProjectInfo","watching","objType","duties","dutyType","getWorkInProgress","assignedEpicsPromise","assignedIssuesPromise","assignedTasksPromise","assignedUserStoriesPromise","params_epics","params_issues","params_tasks","params_uss","projectsPromise","watchingEpicsPromise","watchingIssuesPromise","watchingTasksPromise","watchingUserStoriesPromise","getProjectsByUserId","status__is_closed","HomeProjectListDirective","WorkingOnController","homeService","_setAssignedTo","elem","_setWatching","WorkingOnDirective","InviteMembersFormController","rolesValues","defaultMaxInvites","_areRolesValidated","roleIds","contactsToInvite","emailsToInvite","_checkLimitMemberships","pendingMembersCount","membersLimit","showWarningMessage","sendInvites","setInvitedContacts","role_id","inviteContactsMessage","InviteMembersFormDirective","onDisplayContactList","onRemoveInvitedContact","onRemoveInvitedEmail","onSendInvites","AddMembersController","userService","displayContactList","_getContacts","excludeProjectId","getContacts","_filterContacts","invited","contact","inviteSuggested","removeContact","testEmptyContacts","inviteEmail","emailData","removeEmail","LightboxAddMembersDirective","SuggestAddMembersController","contactQuery","filterContacts","filteredContacts","setInvited","onInviteSuggested","SuggestAddMembersDirective","onInviteEmail","DropdownProjectListDirective","newProject","DropdownUserDirective","authService","navUrlsService","isFeedbackEnabled","userMenu","NavigationBarDirective","isEnabledHeader","NavigationBarService","enabledHeader","ProfileBarController","loadStats","getStats","ProfileBarDirective","ProfileContactsController","loadContacts","ProfileContactsDirective","FavItemDirective","itemType","FavsBaseController","ProfileLikedController","ProfileVotedController","ProfileWatchedController","_init","enableFilterByAll","enableFilterByProjects","enableFilterByEpics","enableFilterByUserStories","enableFilterByTasks","enableFilterByIssues","enableFilterByTextQuery","_resetList","scrollDisabled","_enableLoadingSpinner","isLoading","_disableLoadingSpinner","_enableScroll","_disableScroll","_checkIfHasMorePages","hasNext","_checkIfHasNoResults","hasNoResults","loadItems","_getItems","filterByTextQuery","showAll","showProjectsOnly","showEpicsOnly","showUserStoriesOnly","showTasksOnly","showIssuesOnly","tabName","getLiked","getVoted","getWatched","ProfileLikedDirective","ProfileVotedDirective","ProfileWatchedDirective","ProfileHints","hintKey","HINTS","hint","linkText","ProfileProjectsController","attachUserContactsToProjects","ProfileProjectsDirective","ProfileTabDirective","tab","tabIcon","tabActive","tabDisabled","addTab","ProfileTabsController","tabs","toggleTab","ProfileTabsDirective","ProfileController","getUserByUserName","userFullName","userUsername","BlockedProjectExplanationDirective","ContactProjectButtonController","launchContactForm","ContactProjectButtonDirective","layout","ContactProjectLbController","contactProject","sendingFeedback","ContactProjectLbDirective","inject","LikeProjectButtonController","likeButtonService","toggleLike","_unlike","_like","like","unlike","LikeProjectButtonDirective","LikeProjectButtonService","_getProjectIndex","_updateProjects","isFan","projectIndex","totalFans","is_fan","total_fans","setProjects","_updateCurrentProject","setProject","likeProject","unlikeProject","SortProjectsDirective","sortData","sorted_project_ids","bulkUpdateProjectsOrder","WatchProjectButtonController","watchButtonService","showWatchOptions","toggleWatcherOptions","closeWatcherOptions","notifyLevel","WatchProjectButtonDirective","WatchProjectButtonService","isWatcher","totalWatchers","total_watchers","watchProject","unwatchProject","AsanaImportProjectFormController","canCreatePublicProjects","canCreatePrivateProjects","projectForm","platformName","keepExternalReference","project_type","checkUsersLimit","limitMembersPrivateProject","canAddMembersPrivateProject","limitMembersPublicProject","canAddMembersPublicProject","saveForm","onSaveProjectDetails","canCreateProject","isDisabled","AsanaImportProjectFormDirective","onCancelForm","fetchingUsers","AsanaImportController","asanaImportService","importProjectService","step","projectUsers","startProjectSelector","fetchProjects","onSelectProject","fetchUsers","onCancelMemberSelection","startImport","importProject","importPromise","submitUserSelection","AsanaImportDirective","AsanaImportService","asanaImporter","listProjects","listUsers","userBindings","projectType","getAuthUrl","authUrl","authorize","CreatetProjectFormController","projectUrl","creation_template","formSubmitLoading","CreateProjectFormDirective","createProjectMembersRestrictionsDirective","createProjectRestrictionsDirective","CreateProjectController","displayScrumDesc","displayKanbanDesc","displayHelp","DuplicateProjectController","refreshReferenceProject","getProjectBySlug","referenceProject","invitedMembers","toggleInvitedMember","duplicate","DuplicateProjectDirective","GithubImportProjectFormController","GithubImportProjectFormDirective","GithubImportController","githubImportService","GithubImportDirective","GithubImportService","githubImporter","callbackUri","ImportProjectMembersController","selectImportUserLightbox","warningImportUsers","displayEmailSelector","cancelledUsers","selectedUsers","selectableUsers","userContacts","fetchUser","refreshSelectableUsers","searchingUser","beforeSubmitUsers","confirmUser","externalUser","taigaUser","discardSuggestedUser","unselectUser","getSelectedMember","isMemberSelected","userSelected","showSuggestedMatch","getDistinctSelectedTaigaUsers","ids","importMoreUsersDisabled","isImportMoreUsersDisabled","ImportProjectMembersDirective","platform","ImportProjectSelectorController","ImportProjectSelectorDirective","noProjectsMsg","ImportTaigaController","importTaiga","ImportTaigaDirective","LbImportErrorDirective","ImportProjectController","trelloService","jiraService","githubService","asanaService","tgNavUrls","asanaOauthToken","githubOauthToken","jiraOauthToken","locationSearch","trelloOauthToken","from","cancelCurrentImport","oauth_verifier","oauth_token","jiraUrl","absUrl","unfoldOptions","unfoldedOptions","isActiveImporter","backToCreate","ImportProjectDirective","onCancelImport","ImportProjectService","importSuccess","importError","restrictionError","getRestrictionError","error_message","errorKey","maxMemberships","membersError","privateError","publicError","InviteMembersController","InviteMembersDirective","onToggleInvitedMember","SingleMemberDirective","disabled","JiraImportProjectFormController","importer_type","create_subissues","JiraImportProjectFormDirective","JiraImportController","jiraImportService","JiraImportDirective","JiraImportService","jiraImporter","importerType","SelectImportUserLightboxCtrl","invalid","assignUser","onSelectUser","userEmail","SelectImportUserLightboxDirective","TrelloImportProjectFormController","TrelloImportProjectFormDirective","TrelloImportController","trelloImportService","TrelloImportDirective","TrelloImportService","trelloImporter","verifyCode","WarningUserImportDirective","onConfirm","ProjectsListingController","ProjectController","activeMembers","ProjectsService","getProjectStats","paginate","transferValidateToken","transferAccept","reason","transferReject","CantOwnProjectExplanationDirective","TransferProject","showAddComment","_refreshUserData","_validateToken","_setProjectData","_checkOwnerData","canBeOwnedByUser","canOwnProject","ownerMessage","maxProjects","currentProjects","validNumberOfMemberships","loadingAccept","loadingReject","hideComment","TransferProjectDirective","Resource","urlsService","urlname","object_id","x-disable-pagination","progressMessage","progressPercent","bulk_userstories","AsanaResource","GithubResource","JiraResource","TrelloResource","users_bindings","keep_external_reference","jira_url","projectTemplate","pagination","paginateResponseService","x-lazy-pagination","getTimeline","only_relevant","Resources","services","serviceFn","serviceName","serviceProperty","warn","getUserStorage","setUserStorage","createUserStorage","getUserByUsername","exclude_project","getProfileTimeline","getUserTimeline","epicIid","getWikiHistory","wikiHistory","AppMetaService","_set","meta","setTitle","setDescription","setTwitterMetas","origin","setOpenGraphMetas","listener","_listener","metas","AttachmentsService","getMaxFileSize","maxFileSizeFormated","sizeError","saveError","AvatarService","modulo","COLORS","IMAGES","logos","getDefault","murmurhash3_32_gc","getUnnamed","avatarParamName","gravatar","logoUrl","photo","root","gravatar_id","CheckPermissionsService","CurrentUserService","storageService","_projects","_projectsById","_joyride","_loadUserInfo","totalMembers","membersResult","ErrorHandlingService","errorHandling","showingError","blocked","LightboxFactory","scopeAttrs","PaginateResponse","paginateResponse","ProjectLogoService","ProjectService","userActivityService","interval","_project","_section","_sectionsBreadcrumb","_activeMembers","e2e","autoRefresh","intervalId","onInactive","onActive","ThemeService","themeName","stylesheetEl","UserActivityService","resetTimer","subscriptionsActive","subscriptionsInactive","isActive","startTimer","idleTimeout","timerId","_fireInactive","_fireActive","_unSubscriptionsActive","_unSubscriptionsInactive","UserService","pageNumber","objectType","textQuery","contactsFiltered","contactId","UserTimelineAttachmentDirective","validFileExtensions","extension","is_image","templateHtml","UserTimelineItemTitle","sce","_fieldTranslationKey","description_diff","timeline","title_attr","_getLink","_getUsernameSpan","field_name","new_value","sprint_name","us_name","event_us","_getTimelineObj","_getDetailObjUrl","related_us_name","epic_name","obj_name","role_name","keySeq","_translateTitleParams","parent_userstory","span","_getParams","timeline_type","translate_params","getTitle","paramsKeys","translation","UserTimelineType","timelineType","hasIn","getType","UserTimelineItemDirective","UserTimelinePaginationSequence","generate","getContent","minItems","UserTimelineController","userTimelineService","timelineList","getProjectTimeline","loadTimeline","UserTimelineDirective","UserTimelineService","userTimelinePaginationSequenceService","userTimelineItemType","userTimelineItemTitle","_valid_fields","_invalid","fieldKey","value_diff","_isInValidTimeline","_parseEventType","event_type","_getTimelineObject","_attachExtraInfoToTimelineEntry","_parseTimeline","newdata","newItem","moveInBacklog","deleteIn","_addEntyAttributes","filterNot","IsolateClickDirective","WikiHistoryDiffDirective","WikiHistoryEntryDirective","singleHistoryEntry","historyEntry","WikiHistoryController","historyEntries","initializeHistoryEntries","setWikiId","WikiHistoryDirective","WikiHistoryService","_wikiId","_historyEntries"],"mappings":"CAyBA,WACE,GAAIA,GAAWC,EAAUC,EAAMC,EAAQC,EAASC,EAAgBC,EAAmBC,CAEnFC,MAAKD,MAAQA,KAEbC,KAAKC,oBAAsBD,KAAKC,qBAAuBC,OAAOD,wBAE9DF,EAAMI,aAAe,SAASC,GAO5B,MANkB,OAAdA,IACFA,MAEFA,EAAaC,EAAEC,IAAIF,EAAY,SAASG,GACtC,MAAOC,MAAKC,UAAUF,KAEjBG,SAASN,EAAWO,KAAK,OAGlCZ,EAAMa,gCAAkC,WACtC,GAAIC,GAAMC,CAGV,OAFAD,IAAO,GAAKE,OAAQC,UACpBF,EAAeG,KAAKC,MAAsB,UAAhBD,KAAKE,UACxBpB,EAAMI,cAAcU,EAAMC,KAGnCf,EAAMqB,UAAYrB,EAAMa,kCAExBpB,EAAY,SAAS6B,EAAgBC,EAAmBC,EAAeC,EAAUC,EAAmBC,EAAkBC,EAAoBC,EAAiCC,GACzK,GAAIC,GAAmBC,EAAmBC,EAAYC,EAAgBC,EAAiBC,EAAcC,EAAkBC,EAAUC,CA8djI,OA7dAT,GAAiBU,gBAAgB,mCACjCJ,EAAed,EAAemB,KAC9BnB,EAAemB,KAAO,SAASC,EAAMC,GA4BnC,MA3BAA,GAAMC,UAAYD,EAAMC,YACxBC,QAAQC,OAAOH,EAAMC,SACnBG,cACE,KAAM,aAAc,SAASC,EAAIC,GAC/B,GAAIC,EAKJ,OAJAA,GAAWF,EAAGG,QACdF,IAAaG,KAAK,WAChB,MAAOF,GAASN,YAEXM,EAASG,UAGpBC,eACE,KAAM,mBAAoB,SAAU,SAASN,EAAIO,EAAgBC,GAC/D,GAAIN,GAAUO,CASd,OARAP,GAAWF,EAAGG,QACdI,EAAeG,WAA6C,OAAjCD,EAAMD,EAAOG,QAAQC,SAAmBH,EAAII,QAAU,QAC7EL,EAAOG,QAAQG,OAAOC,MACxBR,EAAeS,iBAAiBR,EAAOG,QAAQG,OAAOC,OAAOX,KAAKF,EAASN,UAE3EW,EAAeU,eACff,EAASN,WAEJM,EAASG,YAIfjB,EAAa8B,KAAK5C,EAAgBoB,EAAMC,IAEjDrB,EAAemB,KAAK,KAClB0B,YAAa,iBACbC,WAAY,OACZC,aAAc,KACdC,QAAQ,EACRC,MAAO,kBACPD,QAAQ,EACRE,YAAa,wBACbC,QAAS,cAEXnD,EAAemB,KAAK,aAClB0B,YAAa,4CACbC,WAAY,eACZC,aAAc,KACdE,MAAO,8BACPD,QAAQ,IAEVhD,EAAemB,KAAK,oBAClB0B,YAAa,gDACbI,MAAO,8BACPD,QAAQ,EACRF,WAAY,iBACZC,aAAc,KACdK,gBAAgB,IAElBpD,EAAemB,KAAK,cAClB0B,YAAa,yCACbQ,QACEC,eAAe,GAEjBL,MAAO,sBACPC,YAAa,4BACbF,QAAQ,EACRF,WAAY,kBACZC,aAAc,OAEhB/C,EAAemB,KAAK,gBAClB8B,MAAO,uBACPJ,YAAa,sCACbG,QAAQ,EACRF,WAAY,oBACZC,aAAc,OAEhB/C,EAAemB,KAAK,sBAClB8B,MAAO,uBACPM,SAAU,iEACVP,QAAQ,IAEVhD,EAAemB,KAAK,uBAClB8B,MAAO,uBACPM,SAAU,kEACVP,QAAQ,IAEVhD,EAAemB,KAAK,0BAClB8B,MAAO,uBACPM,SAAU,gDACVP,QAAQ,IAEVhD,EAAemB,KAAK,kCAClB8B,MAAO,uBACPM,SAAU,0CACVP,QAAQ,IAEVhD,EAAemB,KAAK,oBAClB0B,YAAa,gCACbG,QAAQ,EACRF,WAAY,UACZC,aAAc,KACdR,QAAS,qBAEXvC,EAAemB,KAAK,0BAClB0B,YAAa,qBACbO,gBAAgB,EAChBb,QAAS,SACTS,QAAQ,IAEVhD,EAAemB,KAAK,yBAClBoB,QAAS,QACTM,YAAa,uCACbG,QAAQ,EACRF,WAAY,qBACZC,aAAc,OAEhB/C,EAAemB,KAAK,iCAClB0B,YAAa,wBACbG,QAAQ,EACRT,QAAS,UAEXvC,EAAemB,KAAK,2BAClB0B,YAAa,uBACbG,QAAQ,EACRT,QAAS,UACTY,QAAS,YAEXnD,EAAemB,KAAK,0BAClB0B,YAAa,qBACbG,QAAQ,EACRT,QAAS,SACTY,QAAS,WAEXnD,EAAemB,KAAK,oCAClB0B,YAAa,2BACbG,QAAQ,EACRT,QAAS,YAEXvC,EAAemB,KAAK,6BAClB0B,YAAa,oBACbG,QAAQ,EACRT,QAAS,mBAEXvC,EAAemB,KAAK,iCAClB0B,YAAa,wBACbG,QAAQ,EACRT,QAAS,mBAEXvC,EAAemB,KAAK,wBAClBqC,WAAY,SAAShB,GACnB,MAAO,YAAcA,EAAOC,MAAQ,gBAGxCzC,EAAemB,KAAK,6BAClB0B,YAAa,sBACbG,QAAQ,EACRT,QAAS,SAEXvC,EAAemB,KAAK,8BAClB0B,YAAa,iBACbG,QAAQ,EACRT,QAAS,SAEXvC,EAAemB,KAAK,wBAClB0B,YAAa,iBACbG,QAAQ,EACRT,QAAS,SAEXvC,EAAemB,KAAK,0BAClB0B,YAAa,oBACbG,QAAQ,EACRT,QAAS,WAEXvC,EAAemB,KAAK,mCAClB0B,YAAa,2BACbG,QAAQ,EACRT,QAAS,WAEXvC,EAAemB,KAAK,iDAClB0B,YAAa,mCACbN,QAAS,UAEXvC,EAAemB,KAAK,wDAClB0B,YAAa,0CACbN,QAAS,UAEXvC,EAAemB,KAAK,iDAClB0B,YAAa,mCACbN,QAAS,UAEXvC,EAAemB,KAAK,gDAClB0B,YAAa,kCACbN,QAAS,UAEXvC,EAAemB,KAAK,iDAClB0B,YAAa,mCACbN,QAAS,UAEXvC,EAAemB,KAAK,+CAClB0B,YAAa,yCACbN,QAAS,UAEXvC,EAAemB,KAAK,+CAClB0B,YAAa,yCACbN,QAAS,UAEXvC,EAAemB,KAAK,mDAClB0B,YAAa,6CACbN,QAAS,UAEXvC,EAAemB,KAAK,mDAClB0B,YAAa,6CACbN,QAAS,UAEXvC,EAAemB,KAAK,8CAClB0B,YAAa,wCACbN,QAAS,UAEXvC,EAAemB,KAAK,sDAClB0B,YAAa,gDACbN,QAAS,UAEXvC,EAAemB,KAAK,6CAClB0B,YAAa,uCACbN,QAAS,UAEXvC,EAAemB,KAAK,qCAClB0B,YAAa,+BACbN,QAAS,UAEXvC,EAAemB,KAAK,+BAClB0B,YAAa,yBACbN,QAAS,UAEXvC,EAAemB,KAAK,gDAClB0B,YAAa,0CACbN,QAAS,UAEXvC,EAAemB,KAAK,8CAClB0B,YAAa,wCACbN,QAAS,UAEXvC,EAAemB,KAAK,8CAClB0B,YAAa,wCACbN,QAAS,UAEXvC,EAAemB,KAAK,iDAClB0B,YAAa,2CACbN,QAAS,UAEXvC,EAAemB,KAAK,4CAClB0B,YAAa,sCACbN,QAAS,UAEXvC,EAAemB,KAAK,yCAClB0B,YAAa,sBAEf7C,EAAemB,KAAK,mCAClB0B,YAAa,uCACbG,QAAQ,EACRF,WAAY,UACZC,aAAc,OAEhB/C,EAAemB,KAAK,+BAClB0B,YAAa,2BAEf7C,EAAemB,KAAK,uCAClB0B,YAAa,mCAEf7C,EAAemB,KAAK,qCAClB0B,YAAa,iCAEf7C,EAAemB,KAAK,8BAClB0B,YAAa,2BAEf7C,EAAemB,KAAK,iCAClB0B,YAAa,6BAEf7C,EAAemB,KAAK,kCAClB0B,YAAa,+BAEf7C,EAAemB,KAAK,YAClB0B,YAAa,uBACbG,QAAQ,EACRK,QACEC,eAAe,GAEjBR,WAAY,UACZC,aAAc,OAEhB/C,EAAemB,KAAK,kBAClB0B,YAAa,uBACbG,QAAQ,EACRF,WAAY,UACZC,aAAc,OAEhB/C,EAAemB,KAAK,UAClB0B,YAAa,kBACbI,MAAO,mBACPC,YAAa,yBACbO,eAAe,EACfX,WAAY,cAEd9C,EAAemB,KAAK,aAClB0B,YAAa,qBACbI,MAAO,sBACPC,YAAa,4BACbO,eAAe,IAEjBzD,EAAemB,KAAK,oBAClB0B,YAAa,4BACbI,MAAO,6BACPC,YAAa,mCACbO,eAAe,IAEjBzD,EAAemB,KAAK,2BAClB0B,YAAa,0CACbI,MAAO,6BACPC,YAAa,6BACbO,eAAe,IAEjBzD,EAAemB,KAAK,sBAClB0B,YAAa,uBACbI,MAAO,wBACPC,YAAa,8BACbO,eAAe,IAEjBzD,EAAemB,KAAK,kBAClB0B,YAAa,kCACbI,MAAO,0BACPC,YAAa,gCACbJ,WAAY,cACZC,aAAc,KACdU,eAAe,EACfC,gBAAgB,IAElB1D,EAAemB,KAAK,4BAClB0B,YAAa,wCACbG,QAAQ,IAEVhD,EAAemB,KAAK,UAClB0B,YAAa,qBAEf7C,EAAemB,KAAK,cAClB0B,YAAa,yBAEf7C,EAAemB,KAAK,sBAClB0B,YAAa,iCAEf7C,EAAe2D,WACbd,YAAa,yBAEf5C,EAAkB2D,WAChBC,SAAS,EACTC,aAAa,IAEflD,GACEmD,eAAgB,mBAChBC,kBAAmBnF,OAAOoF,YAAYC,iBAAmB,KACzDC,eAAgBzF,EAAMqB,WAExBG,EAAckE,SAASC,QAAQ,UAAYzD,EAC3CV,EAAckE,SAASC,QAAQC,MAAQ1D,EACvCV,EAAckE,SAASC,QAAQE,KAAO3D,EACtCV,EAAckE,SAASC,QAAQG,IAAM5D,EACrCV,EAAckE,SAASC,QAAQI,KAC7BN,eAAgBzF,EAAMqB,WAExBG,EAAcwE,eAAc,GAC5BtE,EAAkBuE,aAAajG,EAAMqB,WACrCU,EAAoB,SAASiB,EAAIkD,EAAWC,EAAUC,EAAkBC,GACtE,GAAIC,EAoBJ,OAnBAA,GAAoB,SAASC,GAC3B,GAAIC,GAASC,CAgBb,OAfwB,KAApBF,EAASG,QAAiBH,EAASG,cAAkBH,EAASI,OAAOC,YACvER,EAAiBS,WACjBR,EAAqBS,SACQ,MAApBP,EAASG,QAAkBR,EAAUa,MAAMC,QAAQ,iBAC5DR,EAAUN,EAAUa,MACpBN,EAASP,EAAUO,SACfA,EAAOQ,WACTf,EAAUa,IAAIZ,EAASvD,QAAQ,UAAU6D,OAAO,aAAcA,EAAOQ,YAErEf,EAAUa,IAAIZ,EAASvD,QAAQ,UAAU6D,QACvCS,cAAgB,EAChBC,KAAQX,KAIPxD,EAAGoE,OAAOb,KAGjBc,cAAef,IAGnB7E,EAAS6F,QAAQ,qBAAsB,KAAM,YAAa,aAAc,kBAAmB,yBAA0BvF,IACrHP,EAAc+F,aAAaC,KAAK,qBAChCrF,EAAkB,SAASa,EAAIyE,GAC7B,OACEC,QAAS,SAASf,GAEhB,MADAc,GAAcE,aACPhB,GAETiB,aAAc,SAASC,GAErB,MADAJ,GAAcK,cACP9E,EAAGoE,OAAOS,IAEnBR,cAAe,SAASQ,GAEtB,MADAJ,GAAcK,cACP9E,EAAGoE,OAAOS,IAEnBtB,SAAU,SAASA,GAEjB,MADAkB,GAAcK,cACPvB,KAIb9E,EAAS6F,QAAQ,mBAAoB,KAAM,WAAYnF,IACvDX,EAAc+F,aAAaC,KAAK,mBAChCjF,EAA4B,SAASS,GACnC,GAAIsD,EAiBJ,OAhBAA,GAAoB,SAASC,GAC3B,GAAIwB,EAaJ,OAZwB,OAApBxB,EAASG,QAAkBH,EAASyB,KAAKC,UAC3CF,EAAYlF,QAAQqF,QAAQ,QAAQC,WACpCJ,EAAUK,QACR,aAAc,aAAc,SAAUC,GACpC,MAAO,UAASC,EAAUrF,GACxB,GAAIsF,EAEJ,OADAA,GAAkBtF,EAAWuF,QAAQ,uBAC9BF,EAASG,OAAO,QAASF,EAAiB,KAAM,OAExDtI,SAGA+C,EAAGoE,OAAOb,KAGjBc,cAAef,IAGnB7E,EAAS6F,QAAQ,6BAA8B,KAAM/E,IACrDf,EAAc+F,aAAaC,KAAK,6BAChCxF,EAAoB,SAASgB,EAAIqD,GAC/B,GAAIqC,GAAuBrB,EAAesB,CAgB1C,OAfAD,GAAwB,WACtB,MAAOrC,GAAqBuC,SAE9BD,EAAa,SAASpC,GAIpB,MAHIA,GAASyB,KAAKa,cAChBH,IAEKnC,GAETc,EAAgB,SAASd,GAIvB,MAHwB,OAApBA,EAASG,QACXgC,IAEK1F,EAAGoE,OAAOb,KAGjBA,SAAUoC,EACVtB,cAAeA,IAGnB5F,EAAS6F,QAAQ,qBAAsB,KAAM,yBAA0BtF,IACvER,EAAc+F,aAAaC,KAAK,qBAChC7F,EAAiBmH,iBAAiB3I,OAAOoF,YAAYwD,YAAa,GAC9DC,aAAa1G,WACfA,EAAW7B,KAAKwI,MAAMD,aAAa1G,WAErCD,GAAgC,MAAZC,EAAmBA,EAAS4G,KAAO,SAAW/I,OAAOoF,YAAYC,iBAAmB,KACxG3D,EAAgCsH,QAAQ,SACxCvH,EAAmBwH,UAAU,2BAC3BC,YAAa,IAAMlJ,OAAOmJ,SAAW,uCACpCC,yBAAyB,oBAAoBC,iBAAiB,wCAAwCC,kBAAkBpH,GAC3HT,EAAmB8H,iBAAiBrH,GACpCJ,EAAa9B,OAAOwJ,gBACbrJ,EAAEsJ,KAAK3H,EAAY,SAAS4H,GACjC,MAAOpI,GAASoI,UAAUA,EAAUC,SAAUD,EAAUA,cAI5DnK,EAAW,SAASwJ,EAAMjG,GACxB,GAAI8G,EAkCJ,OAjCAC,QAAOC,OAAOf,GACD,OAATA,GACFgB,IAAIC,KAAM,IAAMhK,OAAOmJ,SAAW,2BAA8BJ,EAAO,OAEzEa,GACEK,eAAgBnH,EAAWuF,QAAQ,sCACnC6B,MACEC,MAAOrH,EAAWuF,QAAQ,iCAC1BzB,IAAK9D,EAAWuF,QAAQ,+BACxB+B,UAAWtH,EAAWuF,QAAQ,qCAC9BgC,OAAQvH,EAAWuF,QAAQ,kCAC3BiC,OAAQxH,EAAWuF,QAAQ,kCAC3BkC,QAASzH,EAAWuF,QAAQ,mCAC5BmC,SAAU1H,EAAWuF,QAAQ,oCAC7BoC,MAAO3H,EAAWuF,QAAQ,kCAE5BqC,QAAS5H,EAAWuF,QAAQ,8BAC5BsC,SAAU7H,EAAWuF,QAAQ,gCAC7BuC,SAAU9H,EAAWuF,QAAQ,+BAC7BwC,OAAQ/H,EAAWuF,QAAQ,6BAC3ByC,IAAKhI,EAAWuF,QAAQ,0BACxB0C,IAAKjI,EAAWuF,QAAQ,0BACxB2C,MAAOlI,EAAWuF,QAAQ,4BAC1B4C,UAAWnI,EAAWuF,QAAQ,iCAC9B6C,UAAWpI,EAAWuF,QAAQ,iCAC9B8C,YAAarI,EAAWuF,QAAQ,mCAChC+C,SAAUtI,EAAWuF,QAAQ,gCAC7BgD,SAAUvI,EAAWuF,QAAQ,gCAC7BiD,WAAYxI,EAAWuF,QAAQ,kCAC/BkD,QAASzI,EAAWuF,QAAQ,+BAC5BmD,UAAW1I,EAAWuF,QAAQ,gCAC9BoD,QAAS3I,EAAWuF,QAAQ,+BAEvBqD,UAAUC,eAAe,UAAW/B,IAG7CpK,EAAO,SAASoM,EAAMC,EAAYC,EAAOC,EAASC,EAAYlJ,EAAYiD,EAAWC,EAAUiG,EAAgB3E,EAAe4E,EAAsBhG,EAAsBiG,GACxK,GAAIC,GAAIC,EAAMC,CAsDd,OArDAV,GAAKW,MAAM,0BACXV,EAAWW,IAAI,0CAA2C,WACxD,MAAO1J,GAAW2J,YAEpBH,GACEd,UAAW,SAASkB,EAAKC,GACvB,GAAIC,GAAOC,CAKX,OAJAD,GAAQ/M,EAAMiN,MAAMJ,GAAKK,MAAM,UAC/BF,EAAQ1M,EAAE6M,MAAMJ,EAAO,SAASK,GAC9B,MAAOA,GAAKC,OAASP,KAIzBlB,QAAS,SAASiB,GAChB,GAAIS,EAEJ,OADAA,GAAarK,EAAWuF,QAAQ,4BACzBwB,OAAO6C,EAAKS,GAAYC,YAGnC1B,UAAU2B,iBAAiBf,GAC3BT,EAAWyB,eAAiBxN,KAAKC,oBACjC8L,EAAW0B,aAAepN,EAAEqN,OAAO1N,KAAKC,qBACtCmK,KAAQ,UAEV2B,EAAW4B,oBAAsBtN,EAAEqN,OAAO1N,KAAKC,qBAC7CmK,KAAQ,iBAEV2B,EAAWW,IAAI,sBAAuB,SAASkB,EAAGC,GAChD,GAAI5E,EAEJ,OADAA,GAAO4E,EAAIC,SACJrO,EAASwJ,EAAMjG,KAExB+K,QAAQC,aAAa,SAASC,GAC5B,MAAOlC,GAAWmC,WAAWD,KAE/BhC,EAAQkC,kBACJnC,EAAMoC,oBACR7B,EAAOP,EAAMqC,WAEfnC,EAAWoC,aACXvC,EAAWW,IAAI,uBAAwB,SAAS6B,GAE9C,GADAnI,EAAqB1G,OACjB2M,EAAgBmC,kBAAkBpB,OAEpC,MADAmB,GAAME,iBACCpC,EAAgBzF,aAG3B0F,EAAKP,EAAWW,IAAI,oBAAqB,SAAS6B,EAAOrH,GAIvD,MAHIA,GAAK7C,QACPmD,EAAckH,OAAM,GAEfpC,MAEFP,EAAWW,IAAI,sBAAuB,SAAS6B,EAAOrH,GAC3D,GAAI3C,GAAaD,CAmBjB,OAlBI4C,GAAK7C,QACPmD,EAAckH,OAAM,GAElBxH,EAAKxC,QAAUwC,EAAKxC,OAAOC,gBACxBqH,EAAMoC,mBACTnI,EAAUxD,KAAKyD,EAASvD,QAAQ,YAGhCuE,EAAK5C,OAAS4C,EAAK3C,eACrBD,EAAQtB,EAAWuF,QAAQrB,EAAK5C,OAAS,IACzCC,EAAcvB,EAAWuF,QAAQrB,EAAK3C,aAAe,IACrD4H,EAAewC,OAAOrK,EAAOC,IAE3B2C,EAAKnC,eACPoH,EAAeyC,oBAEfzC,EAAe0C,uBAEb3H,EAAKpC,cACAsH,EAAqBtH,gBAErBsH,EAAqB0C,kBAKlClM,QAAQjD,OAAO,mBAAmBoP,MAAM,wBAAyB,KAEjEjP,EAAoBO,EAAEqN,OAAO1N,KAAKC,oBAAqB,SAAS+O,GAC9D,MAAOA,GAAOrP,SAGhBE,EAAiBQ,EAAEC,IAAIR,EAAmB,SAASkP,GACjD,MAAOA,GAAOrP,SAGhBC,GAAW,YAAa,cAAe,iBAAkB,kBAAmB,YAAa,cAAe,YAAa,qBAAsB,gBAAiB,oBAAqB,eAAgB,iBAAkB,cAAe,cAAe,mBAAoB,aAAc,YAAa,YAAa,cAAe,aAAc,eAAgB,oBAAqB,gBAAiB,eAAgB,oBAAqB,kBAAmB,eAAgB,YAAa,oBAAqB,oBAAqB,gBAAiB,eAAgB,mBAAoB,aAAc,aAAc,YAAa,aAAc,UAAW,YAAa,SAAU,yBAA0B,kBAAmB,YAAYqP,OAAOpP,GAE7sBF,EAASiD,QAAQjD,OAAO,QAASC,GAEjCD,EAAO+G,QAAQ,iBAAkB,oBAAqB,gBAAiB,WAAY,oBAAqB,mBAAoB,qBAAsB,kCAAmC,mBAAoBlH,IAEzMG,EAAOuP,KAAK,OAAQ,aAAc,UAAW,YAAa,eAAgB,aAAc,cAAe,aAAc,mBAAoB,WAAY,yBAA0B,yBAA0B,kBAAmBxP,MAE3NuE,KAAKjE,MA2BR,WACE,GAAImP,GAAWC,EAAiBC,EAC9BxM,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,eACbC,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,YAElEhB,GAAY,WACV,QAASA,MAET,MAAOA,MAITE,EAAe,SAAUe,GAGvB,QAASf,KACP,MAAOA,GAAaQ,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAGxD,MANAtN,GAAOwM,EAAce,GAMdf,GAENF,GAEHC,EAAkB,SAAUgB,GAG1B,QAAShB,KAEP,MADApP,MAAKqQ,mBAAqBN,EAAK/P,KAAKqQ,mBAAoBrQ,MACjDoP,EAAgBS,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAc3D,MAlBAtN,GAAOuM,EAAiBgB,GAOxBhB,EAAgBQ,UAAUS,mBAAqB,SAASC,GAQtD,MAPIA,KACiB,MAAfA,EAAI7J,OACNzG,KAAKoG,qBAAqBmK,WACF,MAAfD,EAAI7J,QACbzG,KAAKoG,qBAAqBoK,oBAGvBxQ,KAAKyQ,EAAEtJ,OAAOmJ,IAGhBlB,GAEND,GAEHnP,KAAKD,MAAM2Q,KAAOvB,EAElBnP,KAAKD,MAAM4Q,QAAUtB,EAErBrP,KAAKD,MAAM6Q,WAAaxB,GAEvBnL,KAAKjE,MA2BR,WACE,GAAI6Q,GAAoBC,EAAUC,EAAaC,EAAUC,EAAeC,EAAUC,EAAiBC,EAAyBC,EAAoBC,EAAYC,EAAuBC,EAASC,EAASC,EAASC,EAAOC,EAASC,EAAO7E,EAAOrH,EAAOmM,EAAaC,EAAYC,EAAYC,EAASC,EAAYC,EAAWpS,EAAOqS,EAASC,EAAUC,EAAYC,EAAMC,EAAUC,EAC5W1L,KAAaA,SAAW,SAAS2L,GAAQ,IAAK,GAAIC,GAAI,EAAGC,EAAI5S,KAAKoN,OAAQuF,EAAIC,EAAGD,IAAO,GAAIA,IAAK3S,OAAQA,KAAK2S,KAAOD,EAAM,MAAOC,EAAK,WACvIE,KAAWA,MACXhQ,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfgB,GAAW,SAASgC,EAAIC,GACtB,MAAID,GAAGE,UACEF,EAAGE,UAAUC,IAAIF,GAEjBD,EAAGC,WAAa,IAAMA,GAIjC/F,EAAQ,SAAU5E,GAChB,MAAO,UAAS8K,GACd,GAAIC,EAEJ,OADAA,GAAW,UACHD,EAAM,IAAIE,QAAQ,gCAAiC,KAAOD,EAAW,QAE9EnT,MAEH+Q,EAAc,SAAU3I,GACtB,MAAO,UAASiL,GACd,GAAIC,GAAcC,CAQlB,OAPAD,GAAejT,EAAEmT,KAAKH,GACtBE,KACAlT,EAAEoT,MAAMJ,EAAQ,SAAStE,EAAOW,GAC9B,GAAI3I,EAAQ9C,KAAKqP,EAAc5D,GAAO,GAAKrP,EAAEqT,WAAW3E,GACtD,MAAOwE,GAAQhM,KAAKmI,KAGjBrP,EAAEsT,QAAQN,EAAQE,KAE1BvT,MAEHgR,EAAW,SAAU5I,GACnB,MAAO,UAASwL,EAAOC,EAAMC,GAC3B,GAAIC,GAASnH,CAEb,OADAA,GAAMgH,EAAMI,MAAMH,GACN,SAARjH,EACKkH,EAAalH,IAEtBmH,EAAU,KACHA,EAAUH,EAAMK,OAAOJ,EAAM,SAASjH,GAC3C,GAAY,SAARA,EAIJ,MADAkH,GAAalH,GACTmH,EACKA,IADT,YAKH/T,MAEH6R,EAAQ,WACN,GAAIqC,GAAOC,EAAMxB,EAAGyB,EAAQC,EAAOC,EAAQC,EAAM/Q,CAYjD,KAXA2Q,EAAOhE,UAAU,GAAImE,EAAS,GAAKnE,UAAU/C,OAASyF,EAAM5O,KAAKkM,UAAW,MAC5E+D,EAAQ,SAAU9D,GAGhB,QAAS8D,KACP,MAAOA,GAAMrE,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAGjD,MANAtN,GAAOqR,EAAO9D,GAMP8D,GAENC,GACExB,EAAI2B,EAAOlH,OAAS,EAAGuF,GAAK,EAAGA,MAAS,CAC3C0B,EAAQC,EAAO3B,GACfnP,EAAM6Q,EAAMzE,SACZ,KAAK2E,IAAQ/Q,GACX4Q,EAAS5Q,EAAI+Q,GACbL,EAAMtE,UAAU2E,GAAQH,EAG5B,MAAOF,IAGT3B,EAAO,SAASxK,EAAMyM,GACpB,MAAOnU,GAAEkS,KAAKxK,EAAMyM,IAGtBvC,EAAU,SAASlK,GACjB,MAAOA,GAAKsK,WAAWoC,cAAclC,OAAOa,QAAQ,OAAQ,KAAKA,QAAQ,KAAM,SAASA,QAAQ,YAAa,IAAIA,QAAQ,SAAU,MAGrIX,EAAY,SAAS1K,GACnB,MAAIA,GACK1H,EAAEqU,WAAW3M,EAAKqL,QAAQ,KAAM,MAElCrL,GAGTuK,EAAa,SAASrK,EAAS0M,GAC7B,GAAIC,GAAkBC,CAOtB,OANAD,GAAmB3M,EAAQF,KAAK,qBACP,MAApB6M,GAA6BA,GAAoBD,EAAMvH,UAC1DwH,EAAmB,GAErBC,EAAOF,EAAMC,GACb3M,EAAQF,KAAK,mBAAoB6M,EAAmB,GAC7C3M,EAAQ4M,KAAKA,IAGtBrD,EAAU,SAASsD,EAAMC,GACvB,GAAIpC,GAAGD,EAAMsC,EAAKC,CAElB,KADAA,KACKtC,EAAI,EAAGqC,EAAMF,EAAK1H,OAAQuF,EAAIqC,EAAKrC,IACtCD,EAAOoC,EAAKnC,GACZsC,EAAOF,EAAKrC,IAASA,CAEvB,OAAOuC,IAGT7C,EAAU,SAAS8C,EAAMpB,GACvB,MAAO5T,QAAOiV,WAAWrB,EAAcoB,IAGzCjE,EAAgB,SAASmE,GACvB,MAAOlV,QAAOmV,aAAaD,IAG7BrD,EAAa,SAAS6B,EAAO0B,GAC3B,MAAOjV,GAAE6C,MAAM,SAAUkF,GACvB,MAAO,YACL,MAAOwL,GAAM2B,OAAOD,KAErBtV,QAGLqS,EAAW,SAAStD,GAClB,MAAI1O,GAAEmV,SAASzG,GACNA,EAAQ,GACN1O,EAAEoV,SAAS1G,GACbA,EACE1O,EAAEqV,cAAc3G,GAClBvO,KAAKC,UAAUsO,GACb1O,EAAEsV,YAAY5G,GAChB,GAEFA,EAAMsD,YAGfT,EAAU,SAASsB,EAAK4B,GACtB,MAAOA,GAAKnU,KAAKuS,IAGnBhC,EAAW,SAASgE,EAAMI,GACxB,MAAOjV,GAAE6Q,SAASoE,EAAMJ,GACtBU,SAAS,EACTC,UAAU,KAId1E,EAAkB,SAAS+D,EAAMI,GAC/B,MAAOjV,GAAE6Q,SAASoE,EAAMJ,GACtBU,SAAS,EACTC,UAAU,KAId3D,EAAa,SAAS4D,EAAMC,GAC1B,MAAO1V,GAAE2V,WAAWF,EAAMC,IAG5BvD,EAAW,SAASU,EAAK+C,EAAWC,GAClC,GAAIC,EAIJ,OAHc,OAAVD,IACFA,EAAS,OAES,gBAARhD,IAAuBA,YAAekD,SAGlDD,EAAMjD,EAAIL,MAAM,GACZsD,EAAI/I,OAAS6I,IACfE,EAAMA,EAAIE,UAAU,EAAGJ,EAAY,GACnCE,EAAMA,EAAIE,UAAU,EAAGpV,KAAK+J,IAAImL,EAAI/I,OAAQ+I,EAAIG,YAAY,OAC5DH,GAAYD,GAEPC,GAREjD,GAWXlB,EAAa,SAASuE,EAAOC,GAC3B,GAAIjM,GAAQkM,EAAMC,CAIlB,OAHiB,OAAbF,IACFA,EAAY,GAEVG,MAAMC,WAAWL,MAAYM,SAASN,GACjC,IAEK,IAAVA,EACK,WAETG,GAAS,QAAS,KAAM,KAAM,KAAM,KAAM,MAC1CnM,EAAStJ,KAAKC,MAAMD,KAAK6V,IAAIP,GAAStV,KAAK6V,IAAI,OAC3CvM,EAAS,IACXA,EAAS,GAEXkM,GAAQF,EAAQtV,KAAK8V,IAAI,KAAMxM,IAASyM,QAAQR,GACzCC,EAAO,IAAMC,EAAMnM,KAG5B4H,EAAY,SAASe,EAAK+D,GACxB,GAAIC,EACJ,OAAID,IACFC,EAAU,GAAIC,QAAO,OAASF,EAAY,cAAiB,MACpDb,OAAOlD,GAAKE,QAAQ8D,EAAS,KAE7Bd,OAAOlD,GAAKE,QAAQ,cAAe,KAI9CtB,EAAc,SAASoB,EAAKkE,EAAMhE,GAChC,GAAI8D,EAKJ,OAJAA,GAAU,GAAIC,QAAO,KAAOC,EAAO,KAAM,MACzClE,EAAMA,EAAIE,QAAQ8D,EAAS,IAAM9D,EAAU,KAC3C8D,EAAU,GAAIC,QAAO,MAASC,EAAO,KAAM,MAC3ClE,EAAMA,EAAIE,QAAQ8D,EAAS,KAAO9D,EAAU,MAI9ChC,EAA0B,SAAUhJ,GAClC,MAAO,UAASiP,EAAK9C,EAAMvE,GACzB,MAAOsH,QAAOC,eAAeF,EAAK9C,GAChCzO,IAAK,WACH,GAAI0R,EACJ,KAAKnX,EAAEqT,WAAW1D,GAChB,KAAM,wDAGR,IADAwH,EAAYxH,IACRwH,GAAanX,EAAEoX,SAASD,IACH,SAAnBA,EAAUf,KACZ,KAAM,oDAGV,OAAOe,QAIZxX,MAEHK,EAAEgU,OACAqD,WAAY,SAASL,EAAK7D,GACxB,MAAOnT,GAAEsX,OAAOnE,IAAOoE,UAAUC,OAAO,SAASR,EAAK3H,GAEpD,aADO2H,GAAI3H,GACJ2H,GACNA,GAAKtI,SAEV+I,iBAAkB,WAChB,MAAOzX,GAAE0X,YAAY5H,UAAW,SAAS6H,EAAGC,GAC1C,MAAO5X,GAAEuX,QAAQvX,EAAEC,IAAI0X,EAAG,SAASzX,GACjC,MAAOF,GAAEC,IAAI2X,EAAG,SAASC,GACvB,OAAQA,GAAGjJ,OAAO1O,QAElB,aAKVmR,EAAU,SAAS6C,GACjB,MAA8D,QAAvDA,EAAK4D,MAAM,yCAGpB1G,EAAU,SAAS8C,GACjB,MAAgB,OAARA,GAA0L,OAAzKA,EAAK4D,MAAM,2JAGtCxG,EAAQ,SAAS4C,GACf,MAAkC,QAA3BA,EAAK4D,MAAM,aAGpBxS,EAAQ,SAASyS,EAAcC,GAC7B,GAAIC,EAWJ,OAVAA,MACAD,EAAaE,QAAQ,SAASC,EAAU9I,GACtC,GAAI8I,IAAaJ,EAAatS,IAAI4J,GAChC,MAAI8I,GAASC,KACJH,EAAQ5I,GAAO8I,EAASC,OAExBH,EAAQ5I,GAAO8I,IAIrBF,GAGTzH,GAAsB,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAElPU,EAAwB,WACtB,MAAOlR,GAAEqY,OAAO7H,IAGlBQ,EAAqB,WACnB,MAAOhR,GAAEsY,MAAM9H,IAGjBS,EAAa,SAASsH,EAAQC,EAAOC,GACnC,GAAIX,GAAOY,CAIX,KAHAD,IAAUA,EAAQ,GAClBC,KACAZ,EAAQ,KACDA,EAAQU,EAAMG,KAAKJ,IACxBG,EAAQxR,KAAK4Q,EAAMW,GAErB,OAAOC,IAGThZ,EAAQC,KAAKD,MAEbA,EAAM+Q,SAAWA,EAEjB/Q,EAAMiN,MAAQA,EAEdjN,EAAMgR,YAAcA,EAEpBhR,EAAMiR,SAAWA,EAEjBjR,EAAM8R,MAAQA,EAEd9R,EAAMwS,KAAOA,EAEbxS,EAAMkS,QAAUA,EAEhBlS,EAAM0S,UAAYA,EAElB1S,EAAMuS,WAAaA,EAEnBvS,EAAMyR,QAAUA,EAEhBzR,EAAMqS,QAAUA,EAEhBrS,EAAMkR,cAAgBA,EAEtBlR,EAAMgS,WAAaA,EAEnBhS,EAAMsS,SAAWA,EAEjBtS,EAAM6R,QAAUA,EAEhB7R,EAAMyS,SAAWA,EAEjBzS,EAAMmR,SAAWA,EAEjBnR,EAAMoR,gBAAkBA,EAExBpR,EAAMmS,WAAaA,EAEnBnS,EAAMiS,WAAaA,EAEnBjS,EAAMoS,UAAYA,EAElBpS,EAAM+R,YAAcA,EAEpB/R,EAAMqR,wBAA0BA,EAEhCrR,EAAM2R,QAAUA,EAEhB3R,EAAM0R,QAAUA,EAEhB1R,EAAM4R,MAAQA,EAEd5R,EAAM4F,MAAQA,EAEd5F,EAAMwR,sBAAwBA,EAE9BxR,EAAMsR,mBAAqBA,EAE3BtR,EAAMuR,WAAaA,GAElBrN,KAAKjE,MA2BR,WACE,GAAIiZ,GAAcC,EAAWC,EAAgB3H,EAASI,EAAS7R,EAAOsS,EAAUE,CAEhFxS,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErBI,EAAU5R,KAAKD,MAAM6R,QAErBW,EAAOvS,KAAKD,MAAMwS,KAElBF,EAAWrS,KAAKD,MAAMsS,SAEtB6G,EAAY,WACV,QAASA,MAqCT,MAnCAA,GAAUtJ,UAAUwJ,kBAAoB,SAASC,EAAOC,GACtD,GAAIC,GAAaC,CAgBjB,OAfAD,GAAclZ,EAAEqN,OAAO2L,EAAO,SAAUjR,GACtC,MAAO,UAASmE,GACd,MAAOA,GAAKkN,YAEbzZ,OACHA,KAAK4T,MAAM2F,YAAclZ,EAAEqZ,OAAOH,EAAa,qBAC/CvZ,KAAK4T,MAAM+F,gBAAkBnI,EAAQxR,KAAK4T,MAAM2F,YAAa,SAAS3L,GACpE,MAAOA,GAAEgM,KAEX5Z,KAAK4T,MAAMyF,MAAQhZ,EAAEqZ,OAAOL,EAAO,qBACnCrZ,KAAK4T,MAAMiG,UAAYrI,EAAQxR,KAAK4T,MAAMyF,MAAO,SAASzL,GACxD,MAAOA,GAAEgM,KAEX5Z,KAAK4T,MAAM0F,MAAQjZ,EAAEqZ,OAAOJ,EAAO,SACnCE,EAAkBnZ,EAAEL,KAAK4T,MAAMkG,QAAQC,SAASzZ,IAAI,QAAQ0Z,OAAOjL,QAC5D/O,KAAK4T,MAAM4F,gBAAkBnZ,EAAEiZ,GAAO5L,OAAO,cAAcA,OAAO,SAASnN,GAChF,MAAOF,GAAE4Z,SAAST,EAAiBjZ,EAAEqZ,MACpC7K,SAGLmK,EAAUtJ,UAAUsK,kBAAoB,WACtC,GAAI9W,EAEJ,OADAA,GAAUpD,KAAKyQ,EAAE0J,KAAKna,KAAKoa,GAAGC,SAASC,UAAUta,KAAK4T,MAAM2G,WAAYva,KAAKoa,GAAGC,SAASG,UAAUxa,KAAK4T,MAAM2G,aACvGnX,EAAQD,KAAK,SAAUiF,GAC5B,MAAO,UAASqS,GACd,GAAInB,GAAOD,CAGX,OAFAA,GAAQoB,EAAQ,GAAInB,EAAQmB,EAAQ,GACpCrS,EAAMgR,kBAAkBC,EAAOC,GACxBmB,IAERza,QAGEkZ,KAITnZ,EAAMmZ,UAAYA,EAElBD,EAAe,WACb,QAASA,MAgIT,MA9HAA,GAAarJ,UAAU8K,aAAe,SAASnG,EAAMxF,EAAO7E,GAC1D,GAAIyQ,GAAUC,EAAU/W,CAaxB,IAZY,MAARqG,IACFA,GAAO,GAETrG,EAAS7D,KAAK4a,SAASpU,SACF,SAAjB3C,EAAO0Q,IAA6B,SAATA,IAC7BoG,EAAWta,EAAEC,IAAIP,EAAMsS,SAASxO,EAAO0Q,IAAOtH,MAAM,KAAM,SAAS1M,GACjE,MAAOgS,GAAKhS,KAEdoa,EAASpT,KAAKxH,EAAMsS,SAAStD,IAC7B4L,EAAWta,EAAEwa,QAAQF,GACrB5L,EAAQ6C,EAAQ,IAAKvR,EAAE2Z,KAAKW,MAEzB3a,KAAK4a,SAASE,uBAAuBvG,EAAMxF,GAE9C,MADA6L,GAAW1Q,EAAOlK,KAAK4a,SAAW5a,KAAK4a,SAASG,SAAS/a,KAAK4T,OACvDgH,EAASpU,OAAO+N,EAAMxF,IAIjCkK,EAAarJ,UAAUoL,cAAgB,SAASzG,EAAMxF,EAAO7E,GAC3D,GAAI0Q,EAIJ,IAHY,MAAR1Q,IACFA,GAAO,IAEJlK,KAAK4a,SAASE,uBAAuBvG,EAAMxF,GAE9C,MADA6L,GAAW1Q,EAAOlK,KAAK4a,SAAW5a,KAAK4a,SAASG,SAAS/a,KAAK4T,OACvDgH,EAASpU,OAAO+N,EAAMxF,IAIjCkK,EAAarJ,UAAUqL,kBAAoB,SAASC,EAAShR,GAC3D,GAAI0Q,EAKJ,OAJY,OAAR1Q,IACFA,GAAO,GAET0Q,EAAW1Q,EAAOlK,KAAK4a,SAAW5a,KAAK4a,SAASG,SAAS/a,KAAK4T,OACvDgH,EAASpU,OAAO0U,IAGzBjC,EAAarJ,UAAUuL,eAAiB,SAAS5G,EAAMxF,EAAO7E,GAC5D,GAAI0Q,GAAUQ,EAAWvX,EAAQwX,CAKjC,IAJY,MAARnR,IACFA,GAAO,GAETrG,EAAS7D,KAAK4a,SAASpU,SACF,SAAjB3C,EAAO0Q,GAmBX,MAhBc,UAAVxF,GAA8B,OAAVA,SACflL,GAAO0Q,GAEhB8G,EAAehb,EAAEC,IAAIP,EAAMsS,SAASxO,EAAO0Q,IAAOtH,MAAM,KAAM,SAAS1M,GACrE,MAAOgS,GAAKhS,KAEd6a,EAAY/a,EAAE8G,OAAOkU,EAAc,SAAS9a,GAC1C,MAAOA,KAAMR,EAAMsS,SAAStD,KAE9BqM,EAAY/a,EAAEwa,QAAQO,GAEpBrM,EADE1O,EAAEib,QAAQF,GACJ,KAEAxJ,EAAQ,IAAKvR,EAAE2Z,KAAKoB,IAE9BR,EAAW1Q,EAAOlK,KAAK4a,SAAW5a,KAAK4a,SAASG,SAAS/a,KAAK4T,OACvDgH,EAASpU,OAAO+N,EAAMxF,IAG/BkK,EAAarJ,UAAU2L,mBAAqB,SAASC,EAAa9L,GAChE,GAAIwL,EACJ,UAAI7a,EAAEib,QAAQtb,KAAK4a,SAASpU,YAC1B0U,EAAUlb,KAAKyb,WAAWD,EAAa9L,IACnC4H,OAAO9D,KAAK0H,GAAS9N,WACvBpN,KAAK4a,SAASpU,OAAO0U,GACrBlb,KAAK4a,SAASxH,WACP,IAMb6F,EAAarJ,UAAU8L,aAAe,SAASF,EAAa3X,EAAQ8X,GAClE,GAAIC,GAAMC,CAGV,OAFAA,GAAKL,EAAc,IAAMG,EACzBC,EAAO7b,EAAMI,cAAcqb,EAAaK,IACjC7b,KAAK8b,QAAQC,IAAIH,EAAM/X,IAGhCoV,EAAarJ,UAAU6L,WAAa,SAASD,EAAaG,GACxD,GAAIC,GAAMC,CAGV,OAFAA,GAAKL,EAAc,IAAMG,EACzBC,EAAO7b,EAAMI,cAAcqb,EAAaK,IACjC7b,KAAK8b,QAAQhW,IAAI8V,QAG1B3C,EAAarJ,UAAUoM,sBAAwB,SAAS5R,EAAM6R,EAAMC,GAClE,GAAIC,GAAoBC,EAAaC,EAAiBC,EAAaC,CA2BnE,OA1BAD,GAAcJ,EAAOjP,MAAM,KAC3BoP,EAAkBhc,EAAEqN,OAAOuO,EAAM,SAASO,GACxC,MAAOF,GAAYvV,QAAQ1G,EAAEgS,SAASmK,EAAG5C,YAE3CwC,EAAc/b,EAAEqN,OAAO4O,EAAa,SAASE,GAC3C,OAAQnc,EAAEoc,KAAKJ,EAAiB,SAASK,GACvC,MAAOrc,GAAEgS,SAASqK,EAAI9C,MAAQ4C,MAGlCL,EAAqB9b,EAAEC,IAAI8b,EAAa,SAASI,GAC/C,OACE5C,GAAI4C,EACJ9M,IAAKtF,EAAO,IAAMoS,EAClBG,SAAUvS,EACVmK,KAAMiI,KAGVD,EAAmBlc,EAAEC,IAAI+b,EAAiB,SAASG,GACjD,OACE5C,GAAI4C,EAAG5C,GACPlK,IAAKtF,EAAO,IAAMoS,EAAG5C,GACrB+C,SAAUvS,EACVmK,KAAMiI,EAAGjI,KACTqI,MAAOJ,EAAGI,SAGPT,EAAmBlN,OAAOsN,IAG5BtD,KAITlZ,EAAMkZ,aAAeA,EAErBE,EAAiB,WACf,QAASA,MAmKT,MAjKAA,GAAevJ,UAAUiN,QAAU,SAASpM,GAG1C,MAFAzQ,MAAKgb,cAAc,IAAKvK,GACxBzQ,KAAK8c,uBACE9c,KAAK+c,mBAGd5D,EAAevJ,UAAUoN,aAAe,SAAStP,GAG/C,MAFA1N,MAAKmb,eAAezN,EAAOiP,SAAUjP,EAAOkM,IAC5C5Z,KAAK8c,uBACE9c,KAAK+c,mBAGd5D,EAAevJ,UAAUqN,UAAY,SAASC,GAG5C,MAFAld,MAAK0a,aAAawC,EAAUC,SAASR,SAAUO,EAAUxP,OAAOkM,IAChE5Z,KAAK8c,uBACE9c,KAAK+c,mBAGd5D,EAAevJ,UAAUwN,mBAAqB,SAASC,GAGrD,MAFArd,MAAKib,kBAAkBoC,EAAa3P,QACpC1N,KAAK8c,uBACE9c,KAAK+c,mBAGd5D,EAAevJ,UAAU0N,iBAAmB,SAAS/I,GACnD,GAAI2G,GAASqC,CAOb,OANArC,MACAqC,EAAavd,KAAK4a,SAASpU,SAC3B0U,EAAQ9D,KAAOmG,EAAWnG,KAC1B8D,EAAQzU,OAAS8W,EAAW9W,OAC5ByU,EAAQsC,YAAcD,EAAWC,YACjCtC,EAAQuC,MAAQF,EAAWE,MACpBzd,KAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAWva,KAAK2d,wBAAwBxa,KAAK,SAAUiF,GAClH,MAAO,UAASwV,GAEd,MADAA,GAAYrJ,GAAQ2G,EACb9S,EAAMsV,2BAA2BhC,aAAatT,EAAMwL,MAAM2G,UAAWqD,EAAaxV,EAAMuV,wBAAwBxa,KAAKiF,EAAM2U,mBAEnI/c,QAGLmZ,EAAevJ,UAAUiO,mBAAqB,SAASR,GACrD,MAAOrd,MAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAWva,KAAK2d,wBAAwBxa,KAAK,SAAUiF,GAClH,MAAO,UAASwV,GAGd,aAFOA,GAAYP,EAAazD,IAChCxR,EAAMsV,2BAA2BhC,aAAatT,EAAMwL,MAAM2G,UAAWqD,EAAaxV,EAAMuV,wBAAwBxa,KAAKiF,EAAM2U,iBACpH3U,EAAM2U,oBAEd/c,QAGLmZ,EAAevJ,UAAUmN,gBAAkB,WACzC,GAAIe,GAAaP,CAWjB,OAVAvd,MAAK0b,aAAa1b,KAAK6D,OAAOC,MAAO9D,KAAK4a,SAASpU,SAAUxG,KAAK+d,kBAClER,EAAavd,KAAK4a,SAASpU,SAC3BsX,KACAA,EAAYhE,QAAU9Z,KAAK4T,MAAM2G,UACjCuD,EAAY1G,KAAOmG,EAAWnG,KAC9B0G,EAAYrX,OAAS8W,EAAW9W,OAChCqX,EAAYN,YAAcD,EAAWC,YACrCM,EAAYL,MAAQF,EAAWE,MAC/BK,EAAYE,KAAOT,EAAWS,KAC9BF,EAAYrN,EAAI8M,EAAW9M,EACpBzQ,KAAKyQ,EAAE0J,KAAKna,KAAKoa,GAAG6D,YAAYC,YAAYJ,GAAc9d,KAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAWva,KAAK2d,0BAA0Bxa,KAAK,SAAUiF,GAC9K,MAAO,UAAS6M,GACd,GAAIkJ,GAAYC,EAAkBrW,EAAMiW,EAAMP,EAAOY,EAAUC,EAAUlH,EAAMmH,CAsF/E,OArFAxW,GAAOkN,EAAO,GACdmJ,EAAmBnJ,EAAO,GAC1BqJ,EAAWje,EAAEC,IAAIyH,EAAKuW,SAAU,SAAS9B,GAEvC,MADAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACPmK,IAETpF,EAAO/W,EAAEC,IAAIyH,EAAKqP,KAAM,SAASoF,GAE/B,MADAA,GAAG5C,GAAK4C,EAAGjI,KACJiI,IAET+B,EAA4Ble,EAAEqN,OAAO0J,EAAM,SAASoH,GAClD,MAAOA,GAAIC,MAAQ,IAErBN,EAAa9d,EAAEC,IAAIyH,EAAKyV,YAAa,SAAShB,GAO5C,MANIA,GAAG5C,GACL4C,EAAG5C,GAAK4C,EAAG5C,GAAGvH,WAEdmK,EAAG5C,GAAK,OAEV4C,EAAGjI,KAAOiI,EAAGkC,WAAa,aACnBlC,IAETiB,EAAQpd,EAAEC,IAAIyH,EAAK4W,OAAQ,SAASnC,GAGlC,MAFAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACdmK,EAAGjI,KAAOiI,EAAGkC,UACNlC,IAETwB,EAAO3d,EAAEC,IAAIyH,EAAK6W,MAAO,SAASpC,GAQhC,MAPIA,GAAG5C,IACL4C,EAAG5C,GAAK4C,EAAG5C,GAAGvH,WACdmK,EAAGjI,KAAO,IAAMiI,EAAGhZ,IAAM,IAAMgZ,EAAGqC,UAElCrC,EAAG5C,GAAK,OACR4C,EAAGjI,KAAO,kBAELiI,IAETpU,EAAMiU,mBACFyB,EAAYrX,SACd4X,EAAWjW,EAAM4T,sBAAsB,SAAUsC,EAAUR,EAAYrX,QACvE2B,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAY1G,OACdiH,EAAWjW,EAAM4T,sBAAsB,OAAQ5E,EAAM0G,EAAY1G,MACjEhP,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAYN,cACda,EAAWjW,EAAM4T,sBAAsB,cAAemC,EAAYL,EAAYN,aAC9EpV,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAYL,QACdY,EAAWjW,EAAM4T,sBAAsB,QAASyB,EAAOK,EAAYL,OACnErV,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAYE,OACdK,EAAWjW,EAAM4T,sBAAsB,OAAQgC,EAAMF,EAAYE,MACjE5V,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEvDjW,EAAM0W,QAAUhB,EAAYrN,EAC5BrI,EAAM8S,UAEF5W,MAAO8D,EAAM2W,UAAUxW,QAAQ,oCAC/BoU,SAAU,SACVqC,QAASV,IAETha,MAAO8D,EAAM2W,UAAUxW,QAAQ,kCAC/BoU,SAAU,OACVqC,QAAS5H,EACT6H,WAAW,EACXC,oBAAqBX,EAA0BnR,SAE/C9I,MAAO8D,EAAM2W,UAAUxW,QAAQ,yCAC/BoU,SAAU,cACVqC,QAASb,IAET7Z,MAAO8D,EAAM2W,UAAUxW,QAAQ,wCAC/BoU,SAAU,QACVqC,QAASvB,IAETnZ,MAAO8D,EAAM2W,UAAUxW,QAAQ,kCAC/BoU,SAAU,OACVqC,QAAShB,IAGb5V,EAAM+W,iBACC9e,EAAE+e,OAAOhB,EAAkB,SAASrP,EAAOW,GAChD,MAAOtH,GAAM+W,cAAc5X,MACzBqS,GAAIlK,EACJ6E,KAAM7E,EACNhC,OAAQqB,QAIb/O,QAGEmZ,KAITpZ,EAAMoZ,eAAiBA,GAEtBlV,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,kBAEvBsE,KAAKjE,MA2BR,WACE,GAAIqf,GAAaC,EAAwBC,EAAsBC,EAAqCC,EAAyBC,EAAqBC,EAAgBC,EAAWC,EAAgCC,EAAmB5O,EAAUvR,EAAQI,EAChP8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbmR,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,aAAc,mBAEtCigB,EAAY,WAGV,QAASA,GAAUG,EAAoB9Z,EAAWC,EAAU8Z,EAAchU,GACxE,GAAIlF,EACAiZ,GAAmB3R,oBAChB4R,EAA0B,cAC7BlZ,EAAMZ,EAASvD,QAAQ,QACnBqd,EAAmB,OACrBlZ,EAAMmZ,mBAAmBD,EAAmB,MAC5C/Z,EAAUO,OAAO,OAAQ,OAEvBwZ,EAA2B,cAC7BhU,EAAMkU,QACNlU,EAAMmU,eAENla,EAAUa,IAAIA,KAMtB,MArBA8Y,GAAUQ,SAAW,uBAAwB,YAAa,aAAc,eAAgB,WAqBjFR,KAITjgB,EAAOwE,WAAW,YAAayb,GAE/BP,EAAc,SAAUjP,GAKtB,QAASiP,GAAYgB,EAAWvE,EAASwE,EAAOlG,EAAImG,EAAMC,EAAMC,EAAS1B,EAAW2B,EAAqBC,GACvG,GAAIC,EACJ5gB,MAAKqgB,UAAYA,EACjBrgB,KAAK8b,QAAUA,EACf9b,KAAKsgB,MAAQA,EACbtgB,KAAKoa,GAAKA,EACVpa,KAAKugB,KAAOA,EACZvgB,KAAKwgB,KAAOA,EACZxgB,KAAK0G,OAAS+Z,EACdzgB,KAAK+e,UAAYA,EACjB/e,KAAK+f,mBAAqBW,EAC1B1gB,KAAK2gB,aAAeA,EACpBtB,EAAYxP,UAAUJ,YAAYxL,KAAKjE,MACvC4gB,EAAY5gB,KAAKqO,UACjBrO,KAAK6gB,cAAgB7gB,KAAK8gB,gBAC1B9gB,KAAK+gB,YAAYH,GAuLnB,MA1MA/d,GAAOwc,EAAajP,GAEpBiP,EAAYe,SAAW,aAAc,aAAc,WAAY,eAAgB,UAAW,UAAW,YAAa,aAAc,uBAAwB,kBAoBxJf,EAAYzP,UAAUmR,YAAc,SAASH,GAC3C,MAAIA,IACF5gB,KAAKghB,SAAWC,UAAUC,OAAON,EAAUO,YACpCnhB,KAAK+f,mBAAmBqB,QAAQphB,KAAKghB,WAErChhB,KAAKghB,SAAW,MAI3B3B,EAAYzP,UAAUkR,cAAgB,WACpC,GAAItd,EACJ,QAAuC,OAA9BA,EAAMxD,KAAKqgB,UAAU9T,MAAgB/I,EAAI6d,MAAQ,SAAWrhB,KAAK0G,OAAOZ,IAAI,iBAAmB,SAG1GuZ,EAAYzP,UAAU0R,UAAY,WAChC,GAAIC,EAEJ,IADAA,EAAWvhB,KAAK8gB,gBACZ9gB,KAAK6gB,gBAAkBU,EAEzB,MADAvhB,MAAK6gB,cAAgBU,EACdvhB,KAAK2gB,aAAaa,IAAIxhB,KAAK6gB,gBAItCxB,EAAYzP,UAAU6R,YAAc,WAClC,GAAIxY,GAAMzF,CAGV,OAFAyF,IAAuC,OAA9BzF,EAAMxD,KAAKqgB,UAAU9T,MAAgB/I,EAAIyF,KAAO,SAAWjJ,KAAK0G,OAAOZ,IAAI,oBAAsB,KAC1G9F,KAAK+e,UAAUvV,kBAAkBP,GAC1BjJ,KAAK+e,UAAUyC,IAAIvY,IAG5BoW,EAAYzP,UAAUvB,QAAU,WAC9B,GAAI9B,GAAMyU,CACV,OAAIhhB,MAAKqgB,UAAU9T,KACVvM,KAAKqgB,UAAU9T,MAExByU,EAAWhhB,KAAK8b,QAAQhW,IAAI,cAE1ByG,EAAOvM,KAAKsgB,MAAMoB,WAAW,QAASV,GACtChhB,KAAKqgB,UAAU9T,KAAOA,EACtBvM,KAAKyhB,cACLzhB,KAAKshB,YACE/U,IAEPvM,KAAKshB,YAEA,OAGTjC,EAAYzP,UAAUwR,QAAU,SAAS7U,GAMvC,MALAvM,MAAKqgB,UAAUsB,KAAOpV,EACtBvM,KAAK8b,QAAQC,IAAI,WAAYxP,EAAK4U,YAClCnhB,KAAKqgB,UAAU9T,KAAOA,EACtBvM,KAAK+gB,YAAYxU,GACjBvM,KAAKyhB,cACEzhB,KAAKshB,aAGdjC,EAAYzP,UAAUsQ,MAAQ,WAG5B,MAFAlgB,MAAKqgB,UAAUsB,KAAO,KACtB3hB,KAAKqgB,UAAU9T,KAAO,KACfvM,KAAK8b,QAAQ8F,OAAO,aAG7BvC,EAAYzP,UAAUiS,SAAW,SAASC,GACxC,MAAO9hB,MAAK8b,QAAQC,IAAI,QAAS+F,IAGnCzC,EAAYzP,UAAUmS,SAAW,WAC/B,MAAO/hB,MAAK8b,QAAQhW,IAAI,UAG1BuZ,EAAYzP,UAAUuQ,YAAc,WAClC,MAAOngB,MAAK8b,QAAQ8F,OAAO,UAG7BvC,EAAYzP,UAAUxB,gBAAkB,WACtC,MAAuB,QAAnBpO,KAAKqO,WAMXgR,EAAYzP,UAAUjD,QAAU,WAC9B,GAAI7F,EAEJ,OADAA,GAAM9G,KAAKwgB,KAAK7d,QAAQ,WACjB3C,KAAKugB,KAAKza,IAAIgB,GAAK3D,KAAK,SAAUiF,GACvC,MAAO,UAASL,EAAMtB,GACpB,GAAI8F,EAKJ,OAJAA,GAAOxE,EAAKA,KACZwE,EAAKuV,MAAQ1Z,EAAMiG,UAAU2T,WAC7BzV,EAAOnE,EAAMkY,MAAMoB,WAAW,QAASnV,GACvCnE,EAAMgZ,QAAQ7U,GACPA,IAERvM,QAGLqf,EAAYzP,UAAUqS,MAAQ,SAASla,EAAMqC,GAC3C,GAAItD,EAKJ,OAJAA,GAAM9G,KAAKwgB,KAAK7d,QAAQ,QACxBoF,EAAO1H,EAAEsY,MAAM5Q,GAAM,GACrBA,EAAKqC,KAAOA,EAAOA,EAAO,SAC1BpK,KAAKmgB,cACEngB,KAAKugB,KAAK3a,KAAKkB,EAAKiB,GAAM5E,KAAK,SAAUiF,GAC9C,MAAO,UAASL,EAAMtB,GACpB,GAAI8F,EAIJ,OAHAA,GAAOnE,EAAMkY,MAAMoB,WAAW,QAAS3Z,EAAKA,MAC5CK,EAAMyZ,SAAStV,EAAKyV,YACpB5Z,EAAMgZ,QAAQ7U,GACPA,IAERvM,QAGLqf,EAAYzP,UAAUsS,OAAS,WAK7B,MAJAliB,MAAKmgB,cACLngB,KAAKkgB,QACLlgB,KAAK+f,mBAAmBoC,aACxBniB,KAAKshB,YACEthB,KAAKyhB,eAGdpC,EAAYzP,UAAUwS,SAAW,SAASra,EAAMqC,EAAMuQ,GACpD,GAAI7T,EAQJ,OAPAA,GAAM9G,KAAKwgB,KAAK7d,QAAQ,iBACxBoF,EAAO1H,EAAEsY,MAAM5Q,GAAM,GACrBA,EAAKqC,KAAOA,EAAOA,EAAO,SACb,YAATA,IACFrC,EAAK4S,WAAWA,GAAWA,GAE7B3a,KAAKmgB,cACEngB,KAAKugB,KAAK3a,KAAKkB,EAAKiB,GAAM5E,KAAK,SAAUiF,GAC9C,MAAO,UAAS9B,GACd,GAAIiG,EAIJ,OAHAA,GAAOnE,EAAMkY,MAAMoB,WAAW,QAASpb,EAASyB,MAChDK,EAAMyZ,SAAStV,EAAKyV,YACpB5Z,EAAMgZ,QAAQ7U,GACPA,IAERvM,QAGLqf,EAAYzP,UAAUyS,cAAgB,SAASP,GAC7C,MAAO9hB,MAAKoa,GAAGkI,YAAYxc,IAAIgc,IAGjCzC,EAAYzP,UAAU2S,6BAA+B,SAASxa,GAC5D,MAAO/H,MAAKoiB,SAASra,EAAM,WAAW,IAGxCsX,EAAYzP,UAAU4S,eAAiB,SAASza,GAC9C,GAAIjB,EAIJ,OAHAA,GAAM9G,KAAKwgB,KAAK7d,QAAQ,2BACxBoF,EAAO1H,EAAEsY,MAAM5Q,GAAM,GACrB/H,KAAKmgB,cACEngB,KAAKugB,KAAK3a,KAAKkB,EAAKiB,IAG7BsX,EAAYzP,UAAU6S,2BAA6B,SAAS1a,GAC1D,GAAIjB,EAIJ,OAHAA,GAAM9G,KAAKwgB,KAAK7d,QAAQ,uCACxBoF,EAAO1H,EAAEsY,MAAM5Q,GAAM,GACrB/H,KAAKmgB,cACEngB,KAAKugB,KAAK3a,KAAKkB,EAAKiB,IAG7BsX,EAAYzP,UAAU8S,YAAc,SAAS3a,GAC3C,GAAIjB,EAGJ,OAFAA,GAAM9G,KAAKwgB,KAAK7d,QAAQ,sBACxBoF,EAAO1H,EAAEsY,MAAM5Q,GAAM,GACd/H,KAAKugB,KAAK3a,KAAKkB,EAAKiB,IAG7BsX,EAAYzP,UAAU+S,cAAgB,SAAS5a,GAC7C,GAAIjB,EAGJ,OAFAA,GAAM9G,KAAKwgB,KAAK7d,QAAQ,wBACxBoF,EAAO1H,EAAEsY,MAAM5Q,GAAM;AACd/H,KAAKugB,KAAK3a,KAAKkB,EAAKiB,IAGtBsX,GAENtf,EAAM4Q,SAEThR,EAAOijB,QAAQ,UAAWvD,GAE1BQ,EAAiC,SAASgD,EAAS3c,EAAU8Z,EAAc8C,GACzE,GAAIle,GAAUme,CAiBd,OAhBAne,GAAWke,EAAUhd,IAAI,wBAAwB,GACjDid,EAAa,WACX,GAAIxc,GAASyc,EAAuBlc,CAEpC,QADAkc,EAAwBH,EAAQ/c,IAAI,2BAIpCgB,EAAMZ,EAASvD,QAAQ,YACnBqd,EAAyB,aAC3BzZ,EAAU0c,mBAAmBjD,EAAyB,YACtDlZ,GAAO,SAAWP,GAEb3B,GACLkC,IAAKA,KARE,KAYToc,SAAU,KACVtP,SACAhP,SAAUme,IAIdpjB,EAAOwjB,UAAU,2BAA4B,YAAa,aAAc,eAAgB,cAAetD,IAEvGF,EAAiB,SAAS3T,EAAO3D,EAAUpC,EAAW4c,EAAS7C,EAAc9Z,EAAU+F,EAASjJ,EAAYogB,GAC1G,GAAIC,EAsDJ,OArDAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMC,EAASC,EAAWC,CAgD9B,OA/CAH,GAAO,GAAI7X,WAAUiY,KAAKN,EAAI9G,KAAK,oBAC/BuD,EAAmB,MAAKA,EAAmB,OAAM9Z,EAASvD,QAAQ,SACpE2gB,EAAO/c,QAAU0Z,mBAAmBD,EAAmB,MAEvDsD,EAAO/c,QAAUL,EAASvD,QAAQ,QAEhCqd,EAAyB,aAC3BsD,EAAO/c,QAAU0Z,mBAAmBD,EAAyB,aAE/D2D,EAAY,SAASrd,GAEnB,MADA2F,GAAQkC,kBAC+B,IAAnCmV,EAAO/c,QAAQQ,QAAQ,QAClBqc,EAAQxI,SAASkJ,KAAOR,EAAO/c,QAE/BN,EAAUa,IAAIwc,EAAO/c,UAGhCmd,EAAU,SAASpd,GACjB,MAAO+B,GAASG,OAAO,cAAexF,EAAWuF,QAAQ,qCAE3D+a,EAAOS,QAAU,SAASxV,GACxB,GAAIyV,GAAQjV,CAIZ,IAHAiV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BlV,EAAQiV,EAAOpX,MACf0W,EAAOY,qBAAsB,EACzBnV,IAAUA,EAAM0F,cAClB,MAAO6O,GAAOY,qBAAsB,GAGxCN,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIxG,GAAMoc,EAAe/gB,CAEzB,IADAmL,EAAME,iBACDgV,EAAKW,WASV,MANArc,IACEsc,SAAYd,EAAI9G,KAAK,wCAAwC7P,MAC7D0X,SAAYf,EAAI9G,KAAK,wCAAwC7P,OAE/DuX,EAAgBtB,EAAQ/c,IAAI,gBAAiB,UAC7C1C,EAAU4I,EAAMiW,MAAMla,EAAMoc,GACrB/gB,EAAQD,KAAKwgB,EAAWD,KAEhC1jB,OACHujB,EAAIgB,GAAG,SAAU,OAAQX,GACzB1jB,OAAOskB,gBAAiB,EACjBlB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,WAAY,UAAW,aAAc,cAAe,YAAa,eAAgB,aAAc,YAAa,aAAc,UAAWxD,IAEtJG,EAAoB,SAAS9T,EAAO3D,EAAUpC,EAAWC,EAAU2c,EAAS7C,EAAc9T,EAAYlJ,EAAYogB,GAChH,GAAIC,EAmDJ,OAlDAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMiB,EAAeC,EAAiBf,CA+C1C,OA9CKf,GAAQ/c,IAAI,2BACfG,EAAUxD,KAAKyD,EAASvD,QAAQ,cAChCsD,EAAUmN,WAEZkQ,EAAOvb,QACP0b,EAAOF,EAAI9G,KAAK,QAAQ7Q,WACtBgZ,qBAAqB,IAEnB5E,EAAmB,MAAKA,EAAmB,OAAM9Z,EAASvD,QAAQ,SACpE2gB,EAAO/c,QAAU0Z,mBAAmBD,EAAmB,MAEvDsD,EAAO/c,QAAUL,EAASvD,QAAQ,QAEpCgiB,EAAkB,SAASre,GAEzB,MADA4F,GAAW2Y,WAAW,OAAQ,WAAY,oBAAqB,GACxB,IAAnCvB,EAAO/c,QAAQQ,QAAQ,QAClBqc,EAAQxI,SAASkJ,KAAOR,EAAO/c,QAE/BN,EAAUa,IAAIwc,EAAO/c,UAGhCme,EAAgB,SAASpe,GACvB,GAAIuO,EAOJ,OANIvO,GAASyB,KAAK+c,iBAChBjQ,EAAO7R,EAAWuF,QAAQ,wBACxB1B,MAAOP,EAASyB,KAAK+c,iBAEvBzc,EAASG,OAAO,cAAeqM,IAE1B4O,EAAKsB,UAAUze,EAASyB,OAEjC6b,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAInL,EAEJ,IADAmL,EAAME,iBACDgV,EAAKW,WAIV,MADAhhB,GAAU4I,EAAMoW,SAASkB,EAAOvb,MACzB3E,EAAQD,KAAKwhB,EAAiBD,KAEtC1kB,OACHujB,EAAIgB,GAAG,SAAU,OAAQX,GACzBN,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAENvkB,OAAOskB,gBAAiB,IAG/BnB,KAAMA,IAIV1jB,EAAOwjB,UAAU,cAAe,UAAW,aAAc,cAAe,aAAc,YAAa,eAAgB,eAAgB,aAAc,UAAWrD,IAE5JL,EAA0B,SAASzT,EAAO3D,EAAUpC,EAAWC,EAAUlD,GACvE,GAAIqgB,EAkCJ,OAjCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMiB,EAAeC,EAAiBf,CA8B1C,OA7BAN,GAAOvb,QACP0b,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACxB+Y,EAAkB,SAASre,GACzB,GAAI0e,GAAS1gB,CAIb,OAHA2B,GAAUxD,KAAKyD,EAASvD,QAAQ,UAChC2B,EAAQtB,EAAWuF,QAAQ,sCAC3Byc,EAAUhiB,EAAWuF,QAAQ,qCACtBF,EAAS4c,QAAQ3gB,EAAO0gB,IAEjCN,EAAgB,SAASpe,GACvB,GAAIuO,EAEJ,OADAA,GAAO7R,EAAWuF,QAAQ,8BACnBF,EAASG,OAAO,cAAeqM,IAExC+O,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAInL,EAEJ,IADAmL,EAAME,iBACDgV,EAAKW,WAIV,MADAhhB,GAAU4I,EAAMwW,eAAec,EAAOvb,MAC/B3E,EAAQD,KAAKwhB,EAAiBD,KAEtC1kB,OACHujB,EAAIgB,GAAG,SAAU,OAAQX,GACzBN,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAENvkB,OAAOskB,gBAAiB,IAG/BnB,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqB,UAAW,aAAc,cAAe,aAAc,aAAc1D,IAE1GD,EAAsC,SAASxT,EAAO3D,EAAUpC,EAAWif,EAAShf,EAAUlD,GAC5F,GAAIqgB,EAsCJ,OArCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMiB,EAAeC,EAAiBf,EAAQ/O,CAgClD,OA/BAyO,GAAOvb,QACc,MAAjBmd,EAAQpD,OACVwB,EAAO6B,eAAgB,EACvB7B,EAAOvb,KAAK+Z,MAAQoD,EAAQpD,QAE5B7b,EAAUxD,KAAKyD,EAASvD,QAAQ,UAChCkS,EAAO7R,EAAWuF,QAAQ,uCAC1BF,EAASG,OAAO,cAAeqM,IAEjC4O,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACxB+Y,EAAkB,SAASre,GAGzB,MAFAL,GAAUxD,KAAKyD,EAASvD,QAAQ,UAChCkS,EAAO7R,EAAWuF,QAAQ,yCACnBF,EAAS4c,QAAQpQ,IAE1B6P,EAAgB,SAASpe,GAEvB,MADAuO,GAAO7R,EAAWuF,QAAQ,uCACnBF,EAASG,OAAO,cAAeqM,IAExC+O,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAInL,EAEJ,IADAmL,EAAME,iBACDgV,EAAKW,WAIV,MADAhhB,GAAU4I,EAAMyW,2BAA2Ba,EAAOvb,MAC3C3E,EAAQD,KAAKwhB,EAAiBD,KAEtC1kB,OACHujB,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,gCAAiC,UAAW,aAAc,cAAe,eAAgB,aAAc,aAAc3D,IAEtIE,EAAsB,SAAS1T,EAAO3D,EAAUpC,EAAW4c,EAASqC,EAAShf,EAAUgG,EAAYlJ,EAAY0D,GAC7G,GAAI2c,EA6FJ,OA5FAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI4B,GAAWC,EAAoBC,EAAuBC,EAAsBC,EAAyBpiB,EAASqiB,EAAcC,EAAaC,EAAgB7D,CAuF7J,OAtFAA,GAAQoD,EAAQpD,MAChB1e,EAAU4I,EAAMqW,cAAcP,GAC9B1e,EAAQD,KAAK,SAASyiB,GAEpB,MADAtC,GAAOsC,WAAaA,EACbtC,EAAON,sBAAwBtc,EAAOZ,IAAI,2BAEnD1C,EAAQD,KAAK,KAAM,SAASmD,GAC1B,GAAIuO,EAGJ,OAFA5O,GAAUxD,KAAKyD,EAASvD,QAAQ,UAChCkS,EAAO7R,EAAWuF,QAAQ,mCACnBF,EAASG,OAAO,cAAeqM,KAExCyO,EAAOuC,WACL/D,MAAOA,GAETsD,EAAY7B,EAAI9G,KAAK,mBAAmB7Q,WACtCgZ,qBAAqB,IAEvBW,EAAuB,SAASjf,GAC9B,GAAIuO,EAQJ,OAPA3I,GAAW2Y,WAAW,OAAQ,mBAAoB,uCAAwC,GAC1F5e,EAAUxD,KAAKyD,EAASvD,QAAQ,WAC9BmX,QAASwJ,EAAOsC,WAAWE,gBAE7BjR,EAAO7R,EAAWuF,QAAQ,iCACxBwd,aAAgBzC,EAAOsC,WAAWG,eAE7B1d,EAASG,OAAO,UAAWqM,IAEpCwQ,EAAqB,SAAS/e,GAC5B,MAAO+B,GAASG,OAAO,cAAelC,EAASyB,KAAK+c,iBAEtDY,EAAcxU,EAAS,IAAM,SAAU9I,GACrC,MAAO,UAASmG,GACd,GAAIxG,GAAMoc,CAEV,IADA5V,EAAME,iBACD2W,EAAUhB,WAUf,MAPAD,GAAgBtB,EAAQ/c,IAAI,gBAAiB,UAC7CiC,EAAOub,EAAOuC,UACdziB,EAAU4I,EAAMiW,OACdoC,SAAUtc,EAAKsc,SACfC,SAAUvc,EAAKuc,SACf0B,iBAAkBje,EAAK+Z,OACtBqC,GACI/gB,EAAQD,KAAKoiB,EAAsBF,KAE3CrlB,OACHujB,EAAIgB,GAAG,SAAU,kBAAmBmB,GACpCnC,EAAIgB,GAAG,QAAS,gBAAiBmB,GACjCpC,EAAO2C,cACLnE,MAAOA,GAET2D,EAAelC,EAAI9G,KAAK,sBAAsB7Q,WAC5CgZ,qBAAqB,IAEvBY,EAA0B,SAASlf,GAKjC,MAJA4F,GAAW2Y,WAAW,OAAQ,mBAAoB,kCAAmC,GACrF5e,EAAUxD,KAAKyD,EAASvD,QAAQ,WAC9BmX,QAASwJ,EAAOsC,WAAWE,gBAEtBzd,EAASG,OAAO,UAAW,0CAA2C,cAAiBnI,EAAE6lB,OAAO5C,EAAOsC,WAAWG,gBAE3HT,EAAwB,SAAShf,GAC/B,GAAIuO,EAOJ,OANIvO,GAASyB,KAAK+c,iBAChBjQ,EAAO7R,EAAWuF,QAAQ,wBACxB1B,MAAOP,EAASyB,KAAK+c,iBAEvBzc,EAASG,OAAO,cAAeqM,IAE1B4Q,EAAaV,UAAUze,EAASyB,OAEzC4d,EAAiBzU,EAAS,IAAM,SAAU9I,GACxC,MAAO,UAASmG,GAEd,GADAA,EAAME,iBACDgX,EAAarB,WAIlB,MADAhhB,GAAU4I,EAAMuW,6BAA6Be,EAAO2C,cAC7C7iB,EAAQD,KAAKqiB,EAAyBF,KAE9CtlB,OACHujB,EAAIgB,GAAG,SAAU,qBAAsBoB,GACvCpC,EAAIgB,GAAG,QAAS,mBAAoBoB,GAC7BrC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,gBAAiB,UAAW,aAAc,cAAe,YAAa,eAAgB,aAAc,eAAgB,aAAc,YAAazD,IAEhKH,EAAuB,SAAS4G,EAAOC,EAAQpa,EAAO3D,EAAUpC,EAAWif,EAAShf,EAAUlD,GAC5F,GAAIqgB,EAkDJ,OAjDAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMiB,EAAeC,EAAiBf,CA4C1C,OA3CAN,GAAOvb,QACPub,EAAOvb,KAAKse,YAAcnB,EAAQmB,YAClC5C,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACxB+Y,EAAkB,SAASre,GACzB,GAAIuO,EAcJ,OAbI7I,GAAMoC,kBACR+X,EAAMG,SAAS,QAASta,EAAMqC,UAAUuL,IAAIzW,KAAK,SAAUiF,GACzD,MAAO,UAASL,GAGd,MAFAiE,GAAMoV,QAAQrZ,GACd9B,EAAUxD,KAAKyD,EAASvD,QAAQ,SACzBsD,EAAUmN,YAElBpT,QAEHiG,EAAUxD,KAAKyD,EAASvD,QAAQ,UAChCsD,EAAUmN,WAEZyB,EAAO7R,EAAWuF,QAAQ,6BACnBF,EAAS4c,QAAQpQ,IAE1B6P,EAAgB,SAASpe,GACvB,GAAIuO,EAIJ,OAHAA,GAAO7R,EAAWuF,QAAQ,wBACxB1B,MAAOP,EAASyB,KAAK+c,iBAEhBzc,EAASG,OAAO,cAAeqM,IAExC+O,EAAS,WACP,GAAIxgB,EACJ,IAAKqgB,EAAKW,WAIV,MADAhhB,GAAU4I,EAAM0W,YAAYY,EAAOvb,MAC5B3E,EAAQD,KAAKwhB,EAAiBD,IAEvCnB,EAAIgB,GAAG,SAAU,SAAShW,GAExB,MADAA,GAAME,iBACCmV,MAETL,EAAIgB,GAAG,QAAS,wBAAyB,SAAShW,GAEhD,MADAA,GAAME,iBACCmV,MAEFN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,UAAW,WAAY,UAAW,aAAc,cAAe,eAAgB,aAAc,aAAc5D,IAE9ID,EAAyB,SAAS6G,EAAOC,EAAQpa,EAAO3D,EAAUpC,EAAWif,EAAShf,GACpF,GAAImd,EAoCJ,OAnCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMiB,EAAeC,EAAiBf,CA8B1C,OA7BAN,GAAOvb,QACPub,EAAOvb,KAAKwe,aAAerB,EAAQqB,aACnC9C,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACxB+Y,EAAkB,SAASre,GACzB,GAAIuO,EAIJ,OAHA7I,GAAMkW,SACNjc,EAAUxD,KAAKyD,EAASvD,QAAQ,SAChCkS,EAAO7R,WAAWuF,QAAQ,0BACnBF,EAAS4c,QAAQpQ,IAE1B6P,EAAgB,SAASpe,GACvB,GAAIuO,EAIJ,OAHAA,GAAO7R,WAAWuF,QAAQ,wBACxB1B,MAAOP,EAASyB,KAAK+c,iBAEhBzc,EAASG,OAAO,QAASqM,IAElC+O,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAInL,EAEJ,IADAmL,EAAME,iBACDgV,EAAKW,WAIV,MADAhhB,GAAU4I,EAAM2W,cAAcW,EAAOvb,MAC9B3E,EAAQD,KAAKwhB,EAAiBD,KAEtC1kB,OACHujB,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,mBAAoB,UAAW,WAAY,UAAW,aAAc,cAAe,eAAgB,aAAc7D,KAEjIrb,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,oBAEvBsE,KAAKjE,MA2BR,WACE,GAAIwmB,GAAoBxV,EAAUQ,EAAS9R,EAAMC,EAAQI,EAAOygB,CAEhEzgB,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,gBAExB6mB,EAAqB,SAASza,EAAYqX,GACxC,GAAIC,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOJ,GAAQqD,SAAW,WACxB,MAAO1a,GAAW2a,WAAW,aAI/BrD,KAAMA,IAIV1jB,EAAOwjB,UAAU,UAAW,aAAc,UAAWqD,IAErDhG,GACEmG,KAAQ,IACRtM,SAAY,YACZxT,MAAS,SACT+f,YAAa,aACbC,oBAAqB,qBACrBC,SAAY,YACZC,kBAAmB,mBACnB9E,MAAS,SACT+E,kBAAmB,mBACnBC,kBAAmB,0BACnBC,eAAgB,uBAChBC,iBAAkB,yBAClB/E,SAAY,YACZwD,WAAc,qBACdwB,iBAAkB,eAClBC,uBAAwB,qBACxBC,wBAAyB,sBACzBC,2BAA4B,yBAC5BC,wBAAyB,sBACzBC,iCAAkC,gCAClCC,QAAW,WACXC,eAAgB,qBAChBC,kBAAmB,4BACnB9N,QAAW,oBACX+N,kBAAmB,4BACnBC,oBAAqB,sCACrBC,iBAAkB,2BAClBC,iBAAkB,2BAClBC,gBAAiB,0BACjBC,iBAAkB,2BAClBC,uBAAwB,8BACxBC,6BAA8B,4BAC9BC,uBAAwB,8BACxBC,wBAAyB,+BACzBC,eAAgB,yBAChBC,oBAAqB,8BACrBC,oBAAqB,+BACrBC,eAAgB,yBAChBC,qBAAsB,kDACtBC,wCAAyC,kDACzCC,+CAAgD,yDAChDC,wCAAyC,kDACzCC,uCAAwC,iDACxCC,wCAAyC,kDACzCC,sCAAuC,gDACvCC,sCAAuC,gDACvCC,0CAA2C,oDAC3CC,0CAA2C,oDAC3CC,qCAAsC,+CACtCC,6CAA8C,uDAC9CC,oCAAqC,8CACrCC,4BAA6B,sCAC7BC,sBAAuB,gCACvBC,uCAAwC,iDACxCC,qCAAsC,+CACtCC,qCAAsC,+CACtCC,wCAAyC,kDACzCC,mCAAoC,6CACpCC,wBAAyB,0CACzBC,6BAA8B,8BAC9BC,qCAAsC,sCACtCC,4BAA6B,6BAC7BC,mCAAoC,oCACpCC,wBAAyB,kCAG3B1qB,EAAO,SAASoM,EAAMue,GAEpB,MADAve,GAAKW,MAAM,8BACJ4d,EAASC,OAAO9J,IAGzB7gB,EAAOuP,KAAK,OAAQ,aAAcxP,KAEjCuE,KAAKjE,MA2BR,WACE,GAAIuqB,GAAgBC,EAAWC,EAAUC,EAA0BC,EAA0BC,EAAkBC,EAAeC,EAAYC,EAAQC,EAA0BC,EAAcC,EAAKC,EAAUC,EAAwBzrB,EAAQI,EACvO8S,KAAWA,MACXhQ,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbJ,EAASiD,QAAQjD,OAAO,kBAExBirB,EAAmB,SAAS5nB,GAC1B,OACE8C,IAAK,WACH,OACEulB,MACEC,cAAetoB,EAAWuF,QAAQ,gCAClCgjB,UAAWvoB,EAAWuF,QAAQ,gCAC9BijB,QAASxoB,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,gCAAiCvF,EAAWuF,QAAQ,iCACxlBkjB,UAAWzoB,EAAWuF,QAAQ,mCAAoCvF,EAAWuF,QAAQ,mCAAoCvF,EAAWuF,QAAQ,mCAAoCvF,EAAWuF,QAAQ,mCAAoCvF,EAAWuF,QAAQ,mCAAoCvF,EAAWuF,QAAQ,mCAAoCvF,EAAWuF,QAAQ,oCACxWmjB,eAAgB1oB,EAAWuF,QAAQ,yCAA0CvF,EAAWuF,QAAQ,yCAA0CvF,EAAWuF,QAAQ,yCAA0CvF,EAAWuF,QAAQ,yCAA0CvF,EAAWuF,QAAQ,yCAA0CvF,EAAWuF,QAAQ,yCAA0CvF,EAAWuF,QAAQ,2CAEnZojB,MAA0D,SAAnD3oB,EAAWuF,QAAQ,4BAC1BqjB,SAAUC,SAAS7oB,EAAWuF,QAAQ,uCAAwC,IAC9EujB,OAAQ9oB,EAAWuF,QAAQ,gCAMnC5I,EAAO0H,QAAQ,6BAA8B,aAAcujB,IAE3DK,EAAe,SAAS7H,EAAS2I,GAC/B,GAAIjmB,EASJ,OARAA,GAAM,WACJ,MAAIsd,GAAQ4I,aACH5I,EAAQ4I,eAAe3Z,WACrB0Z,EAAUE,UACZF,EAAUE,UAAUC,cAAcrX,KAEpC,KAGP/O,IAAKA,IAITnG,EAAO0H,QAAQ,iBAAkB,UAAW,YAAa4jB,IAEzDP,EAA2B,SAASpnB,GAClC,GAAI+f,GAAM8I,CAgCV,OA/BAA,GAAS,SAAS5I,EAAKzJ,EAASsS,GAC9B,GAAItS,GAAWsS,GACTtS,EAAQhU,IAAI,kBAAkBiB,QAAQqlB,MACxC,MAAO7I,GAAI8I,YAAY,WAI7BhJ,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI4I,GAAYE,EAAWC,CAmB3B,OAlBAhJ,GAAIzS,SAAS,UACbsb,EAAa5I,EAAOgJ,kBACpBD,EAAUjJ,EAAOrP,OAAO,WACtB,MAAO3Q,GAAewW,SACrB,WACD,GAAKxW,EAAewW,QAIpB,MADAqS,GAAO5I,EAAKjgB,EAAewW,QAASsS,GAC7BG,MAETD,EAAY9I,EAAOiJ,SAAS,oBAAqB,SAASL,GACxD,GAAKA,EAIL,MADAD,GAAO5I,EAAKjgB,EAAewW,QAASsS,GAC7BE,MAEFhJ,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIVqH,EAAyBtK,SAAW,oBAEpCzgB,EAAOwjB,UAAU,oBAAqBuH,GAEtCC,EAA2B,WACzB,GAAItH,GAAM9O,CAiCV,OAhCAA,GAAO,oBACP8O,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIkJ,GAAkBC,EAA8BC,CA4BpD,OA3BAF,GAAmB,SAAS5S,EAAS/G,EAAWqZ,GAC9C,GAAIS,EAKJ,OAJAA,GAA6B,MAAlBT,EAAW,GAClBS,IACFT,EAAaA,EAAWvZ,MAAM,IAE5Bga,GAAY/S,EAAQgT,eAAe/lB,QAAQqlB,QACtC7I,EAAIzS,SAASiC,GACV8Z,GAAY/S,EAAQgT,eAAe/lB,QAAQqlB,QAG9C7I,EAAI8I,YAAYtZ,GAFhBwQ,EAAIzS,SAASiC,IAKxB4Z,EAA+B,SAAS7S,GACtC,GAAI/G,GAAWga,EAASX,EAAY3R,CACpC,IAAIX,EAAS,CACX8S,IACAG,EAAUzJ,EAAOtP,MAAMwP,EAAOjP,IAC9BkG,IACA,KAAK1H,IAAaga,GAChBX,EAAaW,EAAQha,GACrB0H,EAAQlT,KAAKmlB,EAAiB5S,EAAS/G,EAAWqZ,GAEpD,OAAO3R,KAGJmS,EAAgBtJ,EAAOrP,OAAO,UAAW0Y,KAGhDtJ,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqBwH,GAEtCJ,EAAiB,WACf,GAAItX,GAAK+Z,EAAgBC,EAAkBC,CA2B3C,OA1BAF,GAAiB9sB,OAAOitB,uBAAyBjtB,OAAOktB,6BAA+BltB,OAAOmtB,yBAC9FJ,EAAmB,SAAU7kB,GAC3B,MAAO,UAASklB,GACd,GAAItd,EAGJ,IAFAA,EAAKkd,EAAKK,QACVvd,IACIkd,EAAK9f,OACP,MAAO4f,GAAeC,KAGzBjtB,MACHktB,KACAja,EAAM,WACJ,GAAIjD,GAAI2C,EAAGqC,EAAKyF,CAEhB,KADAA,KACK9H,EAAI,EAAGqC,EAAM7E,UAAU/C,OAAQuF,EAAIqC,EAAKrC,IAC3C3C,EAAKG,UAAUwC,GACfua,EAAK3lB,KAAKyI,GACU,IAAhBkd,EAAK9f,OACPqN,EAAQlT,KAAKylB,EAAeC,IAE5BxS,EAAQlT,KAAK,OAGjB,OAAOkT,KAGPxH,IAAKA,IAITtT,EAAO0H,QAAQ,iBAAkBkjB,GAEjCa,EAAyB,WACvB,GAAI/H,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOD,GAAI9G,KAAK,YAAY8H,GAAG,QAAS,WACtC,MAAOhB,GAAIzS,SAAS,cAItBuS,KAAMA,IAIV1jB,EAAOwjB,UAAU,kBAAmBiI,GAEpCN,EAAa,SAAST,GACpB,GAAIvkB,EAuBJ,OAtBAA,GAAM,SAASgU,GACb,GAAIjM,EAOJ,OANIiM,GAAQrB,OACVqB,EAAUA,EAAQrB,QAEpB5K,GACEiM,QAASA,EAAQ0T,MAEf1T,EAAQ2T,sBAAwB3T,EAAQgT,eAAe/lB,QAAQ,cAC1DsjB,EAAS1nB,QAAQ,kBAAmBkL,GAEzCiM,EAAQ4T,qBAAuB5T,EAAQgT,eAAe/lB,QAAQ,cACzDsjB,EAAS1nB,QAAQ,iBAAkBkL,GAExCiM,EAAQ6T,mBAAqB7T,EAAQgT,eAAe/lB,QAAQ,sBACvDsjB,EAAS1nB,QAAQ,eAAgBkL,GAEtCiM,EAAQ8T,qBAAuB9T,EAAQgT,eAAe/lB,QAAQ,kBACzDsjB,EAAS1nB,QAAQ,iBAAkBkL,GAErCwc,EAAS1nB,QAAQ,UAAWkL,KAGnC/H,IAAKA,IAITnG,EAAO0H,QAAQ,eAAgB,aAAcyjB,IAE7CC,EAAS,SAAShoB,GAChB,GAAIE,GAAU4qB,EAAaC,CA4B3B,OA3BA7qB,GAAWF,EAAGG,QACdD,EAASN,UACTkrB,EAAc5qB,EAASG,QACvB0qB,GACEC,QAAS,SAAU3lB,GACjB,MAAO,UAAS4H,GACd,MAAO,YACL,GAAIge,EAEJ,OADAA,GAAO,GAAK7d,UAAU/C,OAASyF,EAAM5O,KAAKkM,UAAW,MAC9C0d,EAAcA,EAAY1qB,KAAK,WACpC,MAAO6M,GAAGE,MAAM9H,EAAO4lB,QAK5BhuB,MACHiT,IAAK,SAAU7K,GACb,MAAO,UAAS4H,GAMd,MAFE6d,GAHGA,EAGWA,EAAY1qB,KAAK6M,GAFjBA,IAIT8d,IAER9tB,QAKPL,EAAO0H,QAAQ,aAAc,KAAM0jB,IAEnCC,EAA2B,SAAU5a,GAKnC,QAAS4a,GAAyBiD,EAASC,EAAMzd,EAAG0d,GAClDnuB,KAAK8tB,OAASG,EACdjuB,KAAKkuB,KAAOA,EACZluB,KAAKyQ,EAAIA,EACTzQ,KAAKsgB,MAAQ6N,EA6Cf,MArDAtrB,GAAOmoB,EAA0B5a,GAEjC4a,EAAyB5K,SAAW,YAAa,UAAW,KAAM,YASlE4K,EAAyBpb,UAAUwe,UAAY,SAASC,EAAQC,GAC9DtuB,KAAK4T,MAAQya,EACbruB,KAAKsuB,KAAOA,GAGdtD,EAAyBpb,UAAU+I,MAAQ,WACzC,GAAI4V,GAAOjO,CAGX,OAFAiO,GAAQluB,EAAEmuB,UAAUxuB,KAAK4T,MAAM5T,KAAKsuB,MAAMG,QAC1CnO,EAAQtgB,KAAKsgB,MAAMoB,WAAW1hB,KAAK4T,MAAM5T,KAAKsuB,MAAMI,MAAOH,IAI7DvD,EAAyBpb,UAAU+e,OAAS,WAC1C,MAAO3uB,MAAK4T,MAAM5T,KAAKsuB,OAGzBtD,EAAyBpb,UAAUgf,KAAO,SAASC,GACjD,GAAIC,EAsBJ,OArBAA,GAAU9uB,KAAKyQ,EAAEvN,QACjBlD,KAAK8tB,OAAO7a,IAAI,SAAU7K,GACxB,MAAO,YACL,GAAIuQ,GAAOoW,EAASC,EAAU3X,EAAK4N,CAenC,OAdA5N,GAAMjP,EAAMumB,SACZI,EAAU1X,EAAI0X,QACd1X,EAAI0X,QAAU,GACdpW,EAAQvQ,EAAMuQ,QACdqW,EAAW3uB,EAAE4uB,KAAK5X,EAAI6X,gBAAiB,YACvCvW,EAAQtY,EAAE8uB,OAAOxW,EAAOqW,GACxBH,EAAelW,GACXoW,EAAQ3hB,SACVuL,EAAMoW,QAAUA,GAElB9J,EAAU,WAER,MADA7c,GAAMwL,MAAMxL,EAAMkmB,MAAQ3V,EACnBmW,EAAQnsB,QAAQuN,MAAM,KAAMC,YAE9B/H,EAAM8lB,KAAKU,KAAKjW,GAAOxV,KAAK8hB,EAAS6J,EAAQ3nB,UAErDnH,OACI8uB,EAAQ1rB,SAGV4nB,GAENjrB,EAAM4Q,SAEThR,EAAOijB,QAAQ,8BAA+BoI,GAE9CG,EAAW,SAASiE,GAClB,OACEtpB,IAAK,SAAUsC,GACb,MAAO,UAASmM,EAAM8a,GACpB,GAAIC,EAQJ,OAPc,OAAVD,IACFA,GAAS,GAEXC,EAAMF,EAAetpB,IAAIyO,GACrB8a,IACFC,EAAMjvB,EAAEuE,SAAS0qB,IAEZA,IAERtvB,QAIPL,EAAO0H,QAAQ,eAAgB,iBAAkB8jB,IAEjDV,EAAW,WACT,GAAI7lB,EAEJ,OADAA,GAAW,mJAETA,SAAUA,IAIdjF,EAAOwjB,UAAU,cAAesH,IAEhCI,EAAgB,WACd,GAAIxH,GAAMze,CAGV,OAFAA,GAAW,6IACXye,EAAO,SAASzP,EAAO2b,EAAKhB,MAE1B3a,OACE4b,QAAS,KAEXnM,KAAMA,EACNze,SAAUA,IAIdjF,EAAOwjB,UAAU,mBAAoB0H,IAErCK,EAAM,WACJ,GAAItmB,EAEJ,OADAA,GAAW,sSAETgP,OACE6b,QAAS,IACTC,SAAU,IACVC,kBAAmB,IACnBC,wBAAyB,KAE3BhrB,SAAUA,IAIdjF,EAAOwjB,UAAU,SAAU+H,IAE3BV,EAAY,SAASqF,EAAUC,EAAQ9C,GACrC,OACE9J,SAAU,IACVG,KAAM,SAASC,EAAQyM,EAAUxB,GAC/B,GAAIjO,EACJ,OAAIiO,GAAMyB,QACR1P,EAAQwP,EAAOvB,EAAMyB,QACd1M,EAAOrP,OAAOqM,EAAO,SAASvR,GACnC,GAAIA,KAAU,EACZ,MAAO8gB,GAAS,WACd,MAAOE,GAAS,GAAGE,aAKlBJ,EAAS,WACd,MAAOE,GAAS,GAAGE,aAO7BtwB,EAAOwjB,UAAU,eAAgB,WAAY,SAAU,iBAAkBqH,IAEzE7qB,EAAOwjB,UAAU,iBAAkB,WACjC,GAAI+M,GAASC,EAASvrB,CAUtB,OATAurB,GAAU,sCAAwCjwB,OAAOmJ,SAAW,+CACpEzE,EAAW,qDACXsrB,EAAU,SAASE,EAAKC,GACtB,GAAIC,EAIJ,OAHAA,GAAQ,GAAIC,OACZD,EAAME,OAASH,EACfC,EAAMF,IAAMA,EACLE,IAGP1rB,SAAUA,EACV6rB,YAAY,EACZrd,SAAS,EACTiQ,KAAM,SAASzP,EAAOd,EAAIyb,GACxB,GAAI+B,GAAOD,EAAQje,CAWnB,OAVAke,GAAQxd,EAAG2J,KAAK,YAChBrK,EAAU,KACVie,EAAS,WAGP,GAFAvd,EAAG2J,KAAK,oBAAoBmF,SAC5B0O,EAAMI,OACFte,EAEF,MADAiD,cAAajD,GACNA,EAAU,MAGdmc,EAAM9B,SAAS,aAAc,SAAS2D,GAS3C,MARIhe,IACFiD,aAAajD,GAEfU,EAAG2J,KAAK,oBAAoBmF,SAC5BxP,EAAU+C,WAAW,WACnB,MAAOrC,GAAG6d,QAAQR,IACjB,KACHG,EAAMM,OACCV,EAAQE,EAAKC,UAM3BpsB,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,kBAEvBsE,KAAKjE,MA2BR,WACE,GAAI6wB,GAAgBC,EAAe/f,EAAapR,EAAQuS,EAAYnS,EAClEgQ,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,YAElEpQ,GAAQC,KAAKD,MAEbmS,EAAalS,KAAKD,MAAMmS,WAExBnB,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,kBAExBmxB,EAAgB,WACd,QAASA,GAAcC,EAAKja,EAAKpQ,EAAQib,EAAMqP,EAA0BC,GACvEjxB,KAAK+wB,IAAMA,EACX/wB,KAAK8W,IAAMA,EACX9W,KAAK0G,OAASA,EACd1G,KAAK2hB,KAAOA,EACZ3hB,KAAKkxB,wBAA0BF,EAC/BhxB,KAAKixB,UAAYA,EACjBjxB,KAAKmxB,eAAiBphB,EAAK/P,KAAKmxB,eAAgBnxB,MAChD+Q,EAAY/Q,MAiOd,MA9NA8wB,GAAclhB,UAAUtB,WAAa,SAASlN,GAQ5C,GAPApB,KAAKoB,UAAYA,EACjBpB,KAAKoxB,iBACLpxB,KAAKqxB,WAAY,EACjBrxB,KAAK6G,OAAQ,EACb7G,KAAKsxB,mBACLtxB,KAAKuxB,iBAAmB,EACxBvxB,KAAKwxB,kBAAoB,KACE,SAAvBxxB,KAAK+wB,IAAIU,UACX,MAAOzxB,MAAK8W,IAAI4a,KAAK,6CAIzBZ,EAAclhB,UAAUzB,gBAAkB,WACxC,GAAIwjB,GAAKlvB,EAAMmvB,EAAQ9qB,CAGvB,IAFA9G,KAAK6xB,yBACL/qB,EAAM9G,KAAK0G,OAAOZ,IAAI,aActB,MAVKoM,GAAWpL,EAAK,QAAWoL,EAAWpL,EAAK,UAC9C6qB,EAAM3xB,KAAK+wB,IAAInW,SACfgX,EAA0B,WAAjBD,EAAIG,SAAwB,OAAS,MAC9CrvB,EAAOpC,EAAE0xB,UAAUjrB,EAAK,KACxBA,EAAM8qB,EAAS,KAAOD,EAAIK,KAAO,IAAMvvB,GAEzCzC,KAAKiyB,GAAK,GAAIjyB,MAAK+wB,IAAIU,UAAU3qB,GACjC9G,KAAKiyB,GAAGC,iBAAiB,OAAQlyB,KAAKmyB,QACtCnyB,KAAKiyB,GAAGC,iBAAiB,UAAWlyB,KAAKoyB,WACzCpyB,KAAKiyB,GAAGC,iBAAiB,QAASlyB,KAAK0jB,SAChC1jB,KAAKiyB,GAAGC,iBAAiB,QAASlyB,KAAKwvB,UAGhDsB,EAAclhB,UAAUiiB,uBAAyB,WAC/C,GAAgB,SAAZ7xB,KAAKiyB,GAST,MANAjyB,MAAKiyB,GAAGI,oBAAoB,OAAQryB,KAAKmyB,QACzCnyB,KAAKiyB,GAAGI,oBAAoB,QAASryB,KAAKwvB,SAC1CxvB,KAAKiyB,GAAGI,oBAAoB,QAASryB,KAAK0jB,SAC1C1jB,KAAKiyB,GAAGI,oBAAoB,UAAWryB,KAAKoyB,WAC5CpyB,KAAKsyB,wBACLtyB,KAAKiyB,GAAGM,cACMvyB,MAAKiyB,IAGrBnB,EAAclhB,UAAU4iB,cAAgB,WACtC,MAAOxyB,MAAKyyB,UAAU,KAAM,gBAAiB,SAAUrqB,GACrD,MAAO,UAASL,GAEd,MADAK,GAAM8oB,wBAAwBR,KAAK3oB,EAAKzD,MAAOyD,EAAK2qB,MAC7CtqB,EAAM6oB,UAAU0B,YAExB3yB,QAGL8wB,EAAclhB,UAAUgjB,uBAAyB,WAC/C,GAAIC,GAAuBC,EAAqBC,CAChD,KAAI/yB,KAAKwxB,kBA0BT,MAvBAsB,GAAsB9yB,KAAK0G,OAAOZ,IAAI,4BAA6B,GACnE+sB,EAAwB7yB,KAAK0G,OAAOZ,IAAI,8BAA+B,KACvEitB,EAAuB/yB,KAAK0G,OAAOZ,IAAI,6BAA8B,KACrE9F,KAAKuxB,iBAAmB,EACxBvxB,KAAKwxB,kBAAoBwB,YAAY,SAAU5qB,GAC7C,MAAO,YACL,GAAIwF,EACJ,KACE,GAAIxF,EAAMmpB,kBAAoBuB,EAC5B,KAAM,IAAIG,OAAM,oCAMlB,OAJA7qB,GAAMmpB,mBACNnpB,EAAM8qB,aACJC,IAAK,SAEA/qB,EAAM0O,IAAIrK,MAAM,uBACvB,MAAO2mB,GAGP,MAFAxlB,GAAIwlB,EACJhrB,EAAM0O,IAAIjQ,MAAM,oBAAsB+G,EAAEoX,SACjC5c,EAAM+F,qBAGhBnO,MAAO6yB,GACH7yB,KAAK8W,IAAIrK,MAAM,sBAGxBqkB,EAAclhB,UAAU0iB,sBAAwB,WAC9C,GAAKtyB,KAAKwxB,kBAKV,MAFA6B,eAAcrzB,KAAKwxB,mBACnBxxB,KAAKwxB,kBAAoB,KAClBxxB,KAAK8W,IAAIrK,MAAM,uBAGxBqkB,EAAclhB,UAAU0jB,4BAA8B,SAASvrB,GAE7D,MADA/H,MAAKuxB,iBAAmB,EACjBvxB,KAAK8W,IAAIrK,MAAM,2BAGxBqkB,EAAclhB,UAAU2jB,UAAY,SAASvO,GAC3C,MAAI3kB,GAAEoX,SAASuN,GACNxkB,KAAKC,UAAUukB,GAEjBA,GAGT8L,EAAclhB,UAAUsjB,YAAc,SAASlO,GAC7C,GAAIrS,GAAGqC,EAAKlL,EAAU0pB,EAAK/Y,CAE3B,IADAza,KAAKsxB,gBAAgB/pB,KAAKyd,GACrBhlB,KAAKqxB,UAAV,CAMA,IAHAvnB,EAAWzJ,EAAEC,IAAIN,KAAKsxB,gBAAiBtxB,KAAKuzB,WAC5CvzB,KAAKsxB,mBACL7W,KACK9H,EAAI,EAAGqC,EAAMlL,EAASsD,OAAQuF,EAAIqC,EAAKrC,IAC1C6gB,EAAM1pB,EAAS6I,GACf8H,EAAQlT,KAAKvH,KAAKiyB,GAAGwB,KAAKD,GAE5B,OAAO/Y,KAGTqW,EAAclhB,UAAUuhB,eAAiB,SAASppB,GAChD,GAAI2rB,GAAYC,CAEhB,IADAD,EAAa3rB,EAAK6rB,YACoB,MAAlC5zB,KAAKoxB,cAAcsC,GAIvB,MADAC,GAAe3zB,KAAKoxB,cAAcsC,GAC9BC,EAAa/f,MACR+f,EAAa/f,MAAM2B,OAAO,WAC/B,MAAOoe,GAAaE,SAAS9rB,EAAKA,QAG7B4rB,EAAaE,SAAS9rB,EAAKA,OAItC+oB,EAAclhB,UAAU6iB,UAAY,SAAS7e,EAAO8f,EAAYG,GAC9D,GAAI7O,GAAS2O,CACb,KAAI3zB,KAAK6G,MAkBT,MAfA7G,MAAK8W,IAAIrK,MAAM,iBAAmBinB,GAClCC,GACE/f,MAAOA,EACP8f,WAAYA,EACZG,SAAUxzB,EAAE6Q,SAAS2iB,EAAU,KAC7Bje,SAAW,EACXC,UAAY,KAGhBmP,GACEmO,IAAO,YACPS,YAAeF,GAEjB1zB,KAAKoxB,cAAcsC,GAAcC,EACjC3zB,KAAKkzB,YAAYlO,GACbpR,EACKA,EAAMlH,IAAI,WAAY,SAAUtE,GACrC,MAAO,YACL,MAAOA,GAAM0rB,YAAYJ,KAE1B1zB,OALL,QASF8wB,EAAclhB,UAAUkkB,YAAc,SAASJ,GAC7C,GAAI1O,EACJ,KAAIhlB,KAAK6G,MAQT,MALA7G,MAAK8W,IAAIrK,MAAM,qBAAuBinB,GACtC1O,GACEmO,IAAO,cACPS,YAAeF,GAEV1zB,KAAKkzB,YAAYlO,IAG1B8L,EAAclhB,UAAUuiB,OAAS,WAC/B,GAAInN,GAASlD,CAab,OAZA9hB,MAAKqxB,WAAY,EACjBrxB,KAAK4yB,yBACL5yB,KAAK8W,IAAIrK,MAAM,+BACfqV,EAAQ9hB,KAAK2hB,KAAKI,WAClBiD,GACEmO,IAAK,OACLprB,MACE+Z,MAAOA,EACP1gB,UAAWpB,KAAKoB,YAGpBpB,KAAKkzB,YAAYlO,GACVhlB,KAAKwyB,iBAGd1B,EAAclhB,UAAUwiB,UAAY,SAAS7jB,GAC3C,GAAIxG,EAGJ,OAFA/H,MAAK8W,IAAIrK,MAAM,+BAAiC8B,EAAMxG,MACtDA,EAAOvH,KAAKwI,MAAMuF,EAAMxG,MACP,SAAbA,EAAKorB,IACAnzB,KAAKszB,4BAA4BvrB,GAEjC/H,KAAKmxB,eAAeppB,IAI/B+oB,EAAclhB,UAAU8T,QAAU,SAAS7c,GAGzC,MAFA7G,MAAK8W,IAAIjQ,MAAM,oBAAsBA,GACrC7G,KAAK6G,OAAQ,EACNsO,WAAWnV,KAAKmO,gBAAiBnO,KAAK+yB,uBAG/CjC,EAAclhB,UAAU4f,QAAU,WAIhC,MAHAxvB,MAAK8W,IAAIrK,MAAM,qBACfzM,KAAKqxB,WAAY,EACjBrxB,KAAKsyB,wBACEnd,WAAWnV,KAAKmO,gBAAiBnO,KAAK+yB,uBAGxCjC,KAITD,EAAiB,WACf,QAASA,MAeT,MAbAA,GAAejhB,UAAU5J,aAAe,SAAS5E,GAC/C,MAAOpB,MAAKoB,UAAYA,GAG1ByvB,EAAejhB,UAAUmkB,KAAO,SAASC,EAAMloB,EAAMmoB,EAAOjoB,EAAOklB,EAAyBgD,GAC1F,GAAItR,EAGJ,OAFAA,GAAU,GAAIkO,GAAckD,EAAMloB,EAAMmoB,EAAOjoB,EAAOklB,EAAyBgD,GAC/EtR,EAAQtU,WAAWtO,KAAKoB,WACjBwhB,GAGTiO,EAAejhB,UAAUmkB,KAAK3T,SAAW,UAAW,OAAQ,YAAa,UAAW,4BAA6B,cAE1GyQ,KAITlxB,EAAOkK,SAAS,YAAagnB,IAE5B5sB,KAAKjE,MA2BR,WACE,GAAIm0B,GAAmBnjB,EAAUE,EAAUM,EAASK,EAAOlS,EAAQI,EAAOwS,CAE1ExS,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBa,EAAQ7R,KAAKD,MAAM8R,MAEnBX,EAAWlR,KAAKD,MAAMmR,SAEtBqB,EAAOvS,KAAKD,MAAMwS,KAElB5S,EAASiD,QAAQjD,OAAO,oBAExBw0B,EAAoB,SAAShuB,EAAkBggB,EAAO9d,EAAU+rB,EAAUC,GACxE,GAAIlR,GAAWE,CAyCf,OAxCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAM6Q,EAAc1Q,EAAQ2Q,CAgChC,OA/BA9Q,GAAOF,EAAI9G,KAAK,QAAQ7Q,YACxBgY,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WAUV,MAPAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMsO,OAAO,WAAYnR,EAAOoR,UAC1CtxB,EAAQD,KAAK,SAAS4E,GAGpB,MAFAysB,GAAeG,SACfxuB,EAAiBosB,MAAMhP,GAChBlb,EAASG,OAAO,UAAW,sCAE7BpF,EAAQD,KAAK,KAAM,WAExB,MADAqxB,GAAeG,SACRtsB,EAASG,OAAO,aAG1BxI,OACHu0B,EAAehR,EAAI9G,KAAK,kBACxB8G,EAAIgB,GAAG,SAAU,OAAQX,GACzB0Q,EAAe,WAGb,MAFAhR,GAAOoR,YACPvuB,EAAiByuB,KAAKrR,GACfA,EAAI9G,KAAK,YAAYwT,SAE9B3M,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEN6P,KAETnR,GACEE,KAAMA,EACNnf,YAAa,gCACb0P,WAKJjU,EAAOwjB,UAAU,gBAAiB,kBAAmB,UAAW,aAAc,aAAc,oBAAqBgR,KAEhHlwB,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,yBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,mBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,mBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,gBAAiB,aAExCsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,oBAEvBsE,KAAKjE,MA2BR,WACE,GAAI60B,GAA6CC,EAAkCC,EAAgCC,EAAyBC,EAAuB/jB,EAAUvR,EAAQI,EAAOwS,CAE5LxS,GAAQC,KAAKD,MAEbwS,EAAOvS,KAAKD,MAAMwS,KAElBrB,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,wBAExBq1B,EAA0B,SAAS7O,EAAO+O,EAAU7sB,EAAU0D,EAAYqoB,EAAUe,EAAWnyB,GAC7F,GAAIqgB,GAAM+R,EAAcC,CAqGxB,OApGAA,GAAeF,EAAUrvB,IAAI,8BAA8B,GAC3DsvB,EAAeD,EAAUrvB,IAAI,mCAAmC,GAChEud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIkP,GAAYC,EAAYC,CA6F5B,OA5FAx1B,MAAKy1B,WAAanS,EAAOoS,OACzBF,EAAWtkB,EAAS,IAAM,SAASykB,GACjC,GAAInB,GAAgBpxB,CAiBpB,OAhBAuyB,GAAK9W,QAAU0E,EAAI9G,KAAK,SAAS7P,MACjC4nB,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,eAAe/N,QAC3DtL,EAAU+iB,EAAMyI,KAAK+G,GACrBvyB,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YAEL,MADAosB,GAAeG,SACR5oB,EAAW2a,WAAW,0BAE9B1mB,OACHoD,EAAQD,KAAK,KAAM,SAAUiF,GAC3B,MAAO,YAGL,MAFAosB,GAAeG,SACfpR,EAAI9G,KAAK,SAAS7P,IAAI+oB,EAAK9W,SACpBxW,EAASG,OAAO,WAExBxI,OACIoD,IAETkyB,EAAa,SAASK,GAsBpB,MArBA31B,MAAKy1B,WAAWG,WAChB51B,KAAKy1B,WAAanS,EAAOoS,OACzBnS,EAAIkB,MACJlB,EAAIsS,KAAKX,EAASE,GAChBO,KAAMA,KACJF,aACJlS,EAAI9G,KAAK,oBAAoB7P,IAAI+oB,EAAK9W,SACtC0E,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAChC,MAAsB,MAAlBA,EAAMunB,QACDN,EAASpP,EAAO2P,aAAa5yB,KAAK,WACvC,MAAOoyB,GAAWnP,EAAO2P,eAEA,KAAlBxnB,EAAMunB,QACRP,EAAWnP,EAAO2P,aADpB,SAITxS,EAAIgB,GAAG,QAAS,aAAc,SAAShW,GACrC,MAAOinB,GAASpP,EAAO2P,aAAa5yB,KAAK,WACvC,MAAOoyB,GAAWnP,EAAO2P,iBAGtBxS,EAAIgB,GAAG,QAAS,eAAgB,SAAShW,GAC9C,MAAOgnB,GAAWnP,EAAO2P,gBAG7BR,EAAa,SAASI,GACpB,GAAIK,EAaJ,OAZAA,IACEC,YAAa3S,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,oBACnDmvB,YAAa5S,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,qBAErDwc,EAAIsS,KAAKX,EAASG,GAChBM,KAAMA,EACNK,MAAOA,KACL1S,IACJC,EAAIgB,GAAG,QAAS,aAAc,WAE5B,MADA+Q,GAAWlP,EAAO2P,aACXxS,EAAI9G,KAAK,SAASwT,QAAQkG,WAE5B5S,EAAIgB,GAAG,QAAS,eAAgB,SAAShW,GAC9C,GAAIyW,GAAS1gB,CAIb,OAHAA,GAAQtB,EAAWuF,QAAQ,4BAC3BotB,EAAOvP,EAAO2P,YACd/Q,EAAU2Q,EAAK9W,QACRxW,EAAS+tB,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAASkzB,GACxD,GAAIjzB,EAMJ,OALAA,GAAU+iB,EAAMvE,OAAO+T,GACvBvyB,EAAQD,KAAK,WAEX,MADAkzB,GAAY1B,SACLrR,EAAOgT,MAAM,0BAEflzB,EAAQD,KAAK,KAAM,WAExB,MADAkzB,GAAY1B,QAAO,GACZtsB,EAASG,OAAO,gBAK/B8a,EAAOrP,OAAOuP,EAAO+S,QAAS,SAAS3pB,GACrC,GAAKA,EAGL,MAAO2oB,GAAW3oB,KAEpB0W,EAAO5W,IAAI,oCAAqC,WAC9C,MAAOX,GAAW2a,WAAW,0BAE/BpD,EAAO5W,IAAI,+BAAgC,WACzC,MAAOX,GAAW2a,WAAW,0BAExBpD,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNmT,QAAS,YAIb72B,EAAOwjB,UAAU,oBAAqB,UAAW,WAAY,aAAc,aAAc,aAAc,cAAe,aAAc6R,IAEpID,EAAiC,SAAS5O,EAAO+O,EAAU7sB,EAAUouB,EAAUrC,EAAUloB,GACvF,GAAImX,GAAMqT,CAyEV,OAxEAA,IACE7X,QAAS,GACTrB,YAAa,MAEf6F,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI+O,GAAOoE,EAAYxK,EAAQyK,CA+D/B,OA9DAD,GAAa,SAAShB,GACpB,GAAInB,GAAgBpxB,CAkBpB,OAjBAuyB,GAAK9W,QAAU0E,EAAI9G,KAAK,SAAS7P,MACjC+oB,EAAKnY,YAAc8F,EAAOoT,QAAQlZ,YAClCmY,EAAKlvB,OAAS6c,EAAOoT,QAAQjwB,OAC7B6c,EAAOoT,QAAQjwB,OAAS6c,EAAOxJ,QAAQ+c,oBACvCvT,EAAOoT,QAAQlZ,YAAc,KAC7BgX,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,eAAe/N,QAC3DtL,EAAU+iB,EAAMsO,OAAO,QAASkB,GAChCvyB,EAAQD,KAAK,WAGX,MAFA+I,GAAW2Y,WAAW,OAAQ,SAAU,2BAA4B,GACpE2P,EAAeG,SACRrR,EAAOgT,MAAM,uBAEtBlzB,EAAQD,KAAK,KAAM,WAGjB,MAFAogB,GAAI9G,KAAK,SAAS7P,IAAI+oB,EAAK9W,SAC3B2V,EAAeG,SACRtsB,EAASG,OAAO,WAElBpF,GAETmvB,EAAQ,WAEN,MADAhP,GAAIkB,MACGnB,EAAOwT,oBAAqB,GAErCF,EAAQ,WAQN,MAPAF,IACE7X,QAAS,GACTrB,YAAa,MAEfkZ,EAAgB,OAAIpT,EAAOxJ,QAAQ+c,oBACnCH,EAAiB,QAAIpT,EAAOxJ,QAAQF,GACpC8c,EAAoB,WAAIpT,EAAOyT,GAAGnd,GAC3B0J,EAAOoT,QAAUD,EAAS/U,WAAW,QAASgV,IAEvDvK,EAAS,WACP,IAAI7I,EAAOwT,mBAIX,MADAxT,GAAOwT,oBAAqB,EACrBvT,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GACvC,MAAsB,MAAlBA,EAAMunB,QACDa,EAAWD,GAASvzB,KAAK,WAE9B,MADAyzB,KACOrT,EAAI9G,KAAK,SAASwT,UAEA,KAAlB1hB,EAAMunB,QACRxS,EAAO/N,OAAO,WACnB,MAAOgd,OAFJ,UAOXjP,EAAOsL,KAAO,WACZ,MAAO+H,GAAWD,GAASvzB,KAAK,WAC9B,MAAOovB,QAGXxyB,EAAMiR,SAASsS,EAAQ,KAAMsT,GAC7BtT,EAAO5W,IAAI,0BAA2B,WACpC,MAAO4W,GAAO/N,OAAO4W,KAEhB7I,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIb7Q,OAAO,EACPyP,KAAMA,EACNnf,YAAa,uCAIjBvE,EAAOwjB,UAAU,2BAA4B,UAAW,WAAY,aAAc,WAAY,aAAc,eAAgB4R,IAE5HD,EAAmC,SAAS3O,EAAO+O,EAAU7sB,EAAUouB,EAAUtB,GAC/E,GAAI9R,GAAMze,CAqBV,OApBAA,GAAWuwB,EAAUrvB,IAAI,qCAAqC,GAC9Dud,EAAO,SAASC,EAAQC,EAAKC,GAe3B,MAdAF,GAAOrP,OAAO,UAAW,SAASrH,GAChC,GAAKA,EASL,MANA2W,GAAIkB,MACAnB,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,iBACxCwc,EAAIsS,KAAKX,EAAStwB,KAAY0e,IAE9BC,EAAIsS,KAAK,IAEJtS,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GAC7C,MAAO+U,GAAOgT,MAAM,qCAGjBhT,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,6BAA8B,UAAW,WAAY,aAAc,WAAY,cAAe2R,IAE/GG,EAAwB,SAAS9O,EAAO6Q,EAAKjrB,GAC3C,GAAIsX,EAiDJ,OAhDAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIyT,GAAaC,EAAYC,CA2C7B,OA1CAA,GAAY,WACV,MAAOH,GAAII,MAAMnb,KAAKqH,EAAO/I,UAAW,KAAM+I,EAAO+T,MAAMl0B,KAAK,SAAUiF,GACxE,MAAO,UAASgvB,GAId,MAHA9T,GAAO8T,MAAQ/2B,EAAEqZ,OAAO0d,EAAO,SAAS72B,GACtC,OAAQA,EAAE+2B,SAAU/2B,EAAEiD,OAEjB4zB,IAERp3B,QAELk3B,EAAa,WACX,QAAI5T,EAAOxJ,SACFwJ,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,oBAIjDkwB,EAAc,WACZ,QAAI3T,EAAOxJ,SACFwJ,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,qBAIjDuc,EAAOiU,iBAAmB,WACxB,GAAI/zB,EACJ,OAAO0zB,OAAiBD,MAA0C,OAAvBzzB,EAAM8f,EAAO8T,OAAiB5zB,EAAI4J,OAAS,UAExFkW,EAAO5W,IAAI,oBAAqB,WAC9B,MAAOyqB,KAAYh0B,KAAK,WACtB,MAAO4I,GAAW2a,WAAW,4BAGjCpD,EAAO5W,IAAI,uBAAwB,WACjC,MAAOyqB,KAAYh0B,KAAK,WACtB,MAAO4I,GAAW2a,WAAW,4BAGjCpD,EAAO5W,IAAI,gCAAiC,WAC1C,MAAO4W,GAAOoD,WAAW,6BAE3B3mB,EAAMiR,SAASsS,EAAQ,KAAM,SAAS1W,GACpC,MAAOuqB,OAEF7T,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,kBAAmB,UAAW,eAAgB,aAAc8R,IAE7EJ,EAA8C,SAAS1O,EAAOpa,EAAY/I,EAAYw0B,GACpF,GAAInU,GAAMze,CAsDV,OArDAA,GAAWvE,EAAEuE,SAAS,0HACtBye,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOC,EAAUC,EAAahC,EAAMiC,CA+CxC,OA9CAA,GAAoB,SAASjC,GAC3B,GAAIkC,GAAQhqB,EAAKiqB,CAYjB,OAXAjqB,IACE0G,KAAMvR,EAAWuF,QAAQ,oCAE3BuvB,EAASxU,EAAOzJ,UAAU8b,EAAKnY,aAC/Bqa,EAASL,EAAcO,UAAUD,GACjCjqB,EAAImqB,OAASH,EAAO/wB,IACpB+G,EAAIoqB,GAAKJ,EAAOI,GACZH,IACFjqB,EAAI0G,KAAOujB,EAAOI,mBAEpB3U,EAAI9G,KAAK,WAAWoZ,KAAKjxB,EAASiJ,IAC3B0V,EAAI9G,KAAK,oBAAoB5I,KAAK,QAAShG,EAAI0G,OAExDkjB,EAAQlU,EAAIpf,aACZwxB,EAAOrS,EAAOtP,MAAMwP,EAAO2U,sCAC3BR,EAAcrU,EAAOtP,MAAMwP,EAAOmU,aAClCD,GAAYC,EACZrU,EAAOrP,OAAOuP,EAAO2U,qCAAsC,WAEzD,MADAxC,GAAOrS,EAAOtP,MAAMwP,EAAO2U,sCACpBP,EAAkBjC,KAE3BiC,EAAkBjC,GAClBpS,EAAIgB,GAAG,QAAS,mBAAoB,SAAShW,GAC3C,MAAOxC,GAAW2a,WAAW,kBAAmBiP,KAElD51B,EAAMiR,SAASsS,EAAQ,UAAW,SAASxJ,GACzC,GAAIA,EAAQgT,eAAe/lB,QAAQ,oBAEjC,MADAwc,GAAI6U,OAAO,SACJ7U,EAAI9G,KAAK,KAAK3L,SAAS,mBAGlCwS,EAAO5W,IAAI,oBAAqBwE,EAAS,IAAM,SAAU9I,GACvD,MAAO,UAASyF,EAAKwqB,EAAQC,GAC3B,GAAIA,EAAmB1e,KAAO+b,EAAK/b,GAOjC,MANA0e,GAAmB9a,YAAc6a,EAC7BX,GACFvR,EAAMyI,KAAK0J,GAAoBn1B,KAAK,WAClC,MAAOmgB,GAAOgT,MAAM,uCAGjBsB,EAAkBU,KAG5Bt4B,QACIsjB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,wCAAyC,UAAW,aAAc,aAAc,kBAAmB0R,KAEnH5wB,KAAKjE,MA2BR,WACE,GAAIu4B,GAAkBC,EAAeC,EAAU94B,EAAQI,EAAOygB,EAC5D3d,EAAS,SAASyM,EAAOC;AAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbw4B,EAAmB,SAAUnoB,GAG3B,QAASmoB,KACP,MAAOA,GAAiB1oB,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAG5D,MANAtN,GAAO01B,EAAkBnoB,GAMlBmoB,GAENx4B,EAAM4Q,SAET6P,GACEmB,KAAQ,QACR+W,gBAAiB,iBACjBpW,YAAe,eACfjJ,MAAS,SACTsf,YAAe,qBACfC,0BAA2B,2BAC3BC,sCAAuC,uCACvCC,wBAAyB,yBACzBC,qBAAsB,sBACtBC,uBAAwB,gBACxBC,aAAc,kBACdC,aAAc,kBACdC,aAAc,kBACdC,eAAgB,oBAChBC,gBAAiB,qBACjBC,UAAW,YACXC,YAAe,eACfC,kBAAmB,mBACnBC,eAAgB,gBAChBC,YAAe,eACfC,0BAA2B,2BAC3BrgB,MAAS,SACTigB,YAAe,eACfK,SAAY,YACZvf,SAAY,YACZwf,oBAAqB,qBACrBC,kBAAmB,uBACnBC,6BAA8B,8BAC9BC,eAAgB,oBAChBC,iBAAkB,sBAClBC,gBAAiB,qBACjBC,kBAAmB,uBACnBC,kBAAmB,UACnBC,kCAAmC,uCACnCC,0BAA2B,+BAC3BC,0BAA2B,+BAC3BC,2BAA4B,gCAC5BC,yBAA0B,8BAC1BC,gBAAiB,iBACjBC,qBAAsB,sBACtBC,OAAU,UACVC,gBAAiB,iBACjBC,iBAAkB,kBAClBC,cAAe,eACfC,WAAc,cACdC,WAAc,cACdC,WAAc,cACdtc,MAAS,SACTuc,cAAe,mBACfC,gBAAiB,qBACjBC,aAAc,kBACdC,eAAgB,oBAChBC,2BAA4B,gCAC5BC,uCAAwC,4CACxCvd,YAAe,eACfwd,iBAAkB,2BAClBC,+BAAgC,yCAChCC,2BAA4B,qCAC5BC,6BAA8B,wCAC9BC,8BAA+B,wCAC/BF,2BAA4B,qCAC5BG,sBAAuB,4BACvBC,mBAAoB,yBACpBC,qBAAsB,2BACtBC,kBAAmB,wBACnBC,oBAAqB,0BACrB9E,MAAS,SACT+E,oBAAqB,qBACrBC,mCAAoC,qCACpCC,cAAe,mBACfC,gBAAiB,qBACjBC,aAAc,kBACdC,eAAgB,oBAChBC,eAAgB,sBAChBC,OAAU,UACVC,qBAAsB,sBACtBC,iBAAkB,uBAClBC,eAAgB,oBAChBC,iBAAkB,sBAClBC,cAAe,mBACfC,gBAAiB,qBACjBC,KAAQ,QACRC,eAAgB,mBAChBC,aAAc,cACdC,eAAgB,gBAChBC,aAAc,qBACdC,gBAAiB,iBACjBC,eAAgB,gBAChBC,eAAgB,mBAChBC,mBAAoB,qBACpBC,iBAAkB,2BAClBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,wBAAyB,oBACzBC,yBAA0B,0BAC1BC,8BAA+B,+BAC/BC,yBAA0B,0BAC1BC,0BAA2B,2BAC3BC,gCAAiC,kCACjCC,qCAAsC,wCACtCC,gCAAiC,kCACjCC,iCAAkC,mCAClCC,SAAY,YACZC,gBAAiB,oBACjBC,YAAe,eACfC,qBAAsB,yBACtBC,YAAa,qBACbC,kBAAmB,2BACnBC,YAAa,qBACbC,aAAc,sBACdC,mBAAoB,oBACpBC,gBAAiB,iBACjBC,mBAAoB,oBACpBx4B,OAAU,UACVy4B,SAAY,YACZC,SAAY,sBACZxK,SAAY,YACZyK,QAAW,WACXC,aAAgB,gBAChBC,qBAAsB,sBACtBC,iBAAkB,kBAClBC,4BAA6B,6BAC7BC,6BAA8B,8BAC9BC,iCAAkC,kCAClCC,8BAA+B,+BAC/BC,kCAAmC,mCACnCC,0BAA2B,2BAC3BC,2BAA4B,4BAC5BC,+BAAgC,gCAChCC,4BAA6B,6BAC7BC,gCAAiC,iCACjCC,4BAA6B,6BAC7BC,6BAA8B,8BAC9BC,iCAAkC,kCAClCC,8BAA+B,+BAC/BC,kCAAmC,mCACnCC,2BAA4B,4BAC5BC,4BAA6B,6BAC7BC,gCAAiC,iCACjCC,6BAA8B,8BAC9BC,iCAAkC,mCAGpCjI,EAAW,SAAS3sB,EAAM60B,GAExB,MADA70B,GAAKW,MAAM,uBACJk0B,EAAMrW,OAAO9J,IAGtBgY,EAAgB,SAAS1sB,EAAMkrB,GAC7B,GAAIrkB,GAAGqC,EAAKnL,EAAU+2B,EAAWnmB,CAIjC,KAHA3O,EAAKW,MAAM,wBACXm0B,EAAYvgC,EAAEwgC,QAAQ1wB,WAAW0C,MAAM,GACvC4H,KACK9H,EAAI,EAAGqC,EAAM4rB,EAAUxzB,OAAQuF,EAAIqC,EAAKrC,IAC3C9I,EAAW+2B,EAAUjuB,GACrB8H,EAAQlT,KAAKsC,EAASmtB,GAExB,OAAOvc,IAGT9a,EAASiD,QAAQjD,OAAO,kBAAmB,cAE3CA,EAAOijB,QAAQ,eAAgB2V,GAE/B54B,EAAOuP,KAAK,OAAQ,UAAWupB,IAE/B94B,EAAOuP,KAAK,OAAQ,eAAgB,+BAAgC,uCAAwC,6CAA8C,kCAAmC,qCAAsC,kCAAmC,4BAA6B,mCAAoC,8BAA+B,4BAA6B,kCAAmC,4BAA6B,6BAA8B,2BAA4B,6BAA8B,+BAAgC,8BAA+B,6BAA8B,8BAA+B,+BAAgC,kCAAmC,8BAA+B,4BAA6BspB,KAErxBv0B,KAAKjE,MA2BR,WACE,GAAI8gC,GAAoBC,EAAkBC,EAAiBhwB,EAAUE,EAAUC,EAAiBK,EAASK,EAAOlS,EAAQI,EAAOwS,EAC7H1P,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBa,EAAQ7R,KAAKD,MAAM8R,MAEnBV,EAAkBnR,KAAKD,MAAMoR,gBAE7BoB,EAAOvS,KAAKD,MAAMwS,KAElBrB,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,kBAExBohC,EAAmB,SAAU3wB,GAK3B,QAAS2wB,GAAiB1S,EAAQH,EAAM9T,EAAIvW,EAAQ4M,EAAGmK,EAAUzO,EAAgB80B,EAASliB,EAAW3Y,EAAsB86B,GACzH,GAAI38B,GAAa48B,EAAgB78B,CACjCtE,MAAK4T,MAAQya,EACbruB,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKmM,eAAiBA,EACtBnM,KAAKihC,QAAUA,EACfjhC,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiB49B,EACtBlhC,KAAK4T,MAAMwtB,YAAc,SACzBphC,KAAKqhC,kBACL/8B,EAAQtE,KAAK+e,UAAUxW,QAAQ,qBAC7B+4B,YAAathC,KAAK4T,MAAMkG,QAAQvF,OAElChQ,EAAcvE,KAAK+e,UAAUxW,QAAQ,2BACnC+4B,YAAathC,KAAK4T,MAAMkG,QAAQvF,KAChCgtB,mBAAoBvhC,KAAK4T,MAAMkG,QAAQvV,cAEzCvE,KAAKmM,eAAewC,OAAOrK,EAAOC,GAClCvE,KAAK4T,MAAM4tB,WAAa,KACxBL,EAAiBhwB,EAAgB,IAAK,SAAU/I,GAC9C,MAAO,UAASq5B,GACd,MAAOr5B,GAAM+4B,eAAeM,KAE7BzhC,OACHgR,EAAShR,KAAK4T,MAAO,YAAa,SAAUxL,GAC1C,MAAO,UAASmS,GACd,IAAKnS,EAAMwL,MAAM8tB,eAAiBt5B,EAAMwL,MAAM4tB,WAC5C,MAAOp5B,GAAM+4B,mBAGhBnhC,OACHA,KAAK4T,MAAMK,OAAO,aAAc,SAAU7L,GACxC,MAAO,UAASu5B,GACd,GAAa,SAATA,GAAmBv5B,EAAMwL,MAAM2G,UACjC,MAAOnS,GAAM+4B,eAAeQ,KAG/B3hC,OAmEL,MAjHA6C,GAAOk+B,EAAkB3wB,GAEzB2wB,EAAiB3gB,SAAW,SAAU,UAAW,eAAgB,eAAgB,KAAM,cAAe,mBAAoB,aAAc,aAAc,yBAA0B,oBA+ChL2gB,EAAiBnxB,UAAUkO,YAAc,WACvC,GAAIgR,EAGJ,OAFAA,GAAU9uB,KAAKyQ,EAAEvN,QACjB4rB,EAAQnsB,UACDmsB,EAAQ1rB,SAGjB29B,EAAiBnxB,UAAUgyB,YAAc,WACvC,GAAI9nB,EAsBJ,OArBAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAMiuB,eAAiBrwB,EAAQsI,EAAQgoB,cAAe,SAASvhC,GAClE,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMmuB,gBAAkBvwB,EAAQsI,EAAQkoB,eAAgB,SAASzhC,GACpE,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMquB,eAAiBzwB,EAAQsI,EAAQooB,cAAe,SAAS3hC,GAClE,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMuuB,aAAe3wB,EAAQsI,EAAQmhB,WAAY,SAAS16B,GAC7D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMwuB,aAAe5wB,EAAQsI,EAAQkhB,WAAY,SAASz6B,GAC7D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMyuB,aAAe7wB,EAAQsI,EAAQwoB,YAAa,SAAS/hC,GAC9D,MAAOA,GAAEqZ,KAEJE,GAGTinB,EAAiBnxB,UAAUuxB,eAAiB,SAASQ,GAKnD,MAJY,OAARA,IACFA,EAAO,IAET3hC,KAAK4T,MAAM2uB,SAAU,EACdviC,KAAKwiC,gBAAgBb,GAAMx+B,KAAK,SAAUiF,GAC/C,MAAO,UAASL,GAEd,MADAK,GAAMwL,MAAM8tB,cAAgB35B,EACrBK,EAAMwL,MAAM2uB,SAAU,IAE9BviC,QAGL+gC,EAAiBnxB,UAAU4yB,gBAAkB,SAASb,GAQpD,MAPY,OAARA,IACFA,EAAO,IAEL3hC,KAAKyiC,UACPziC,KAAKyiC,SAASC,QAEhB1iC,KAAKyiC,SAAWziC,KAAKoa,GAAG5T,OAAO,MAAMxG,KAAK4T,MAAM2G,UAAWonB,GACpD3hC,KAAKyiC,UAGd1B,EAAiBnxB,UAAUyxB,gBAAkB,WAC3C,GAAIvnB,EAGJ,OAFAA,GAAU9Z,KAAK4hC,cACf5hC,KAAK4T,MAAM2G,UAAYT,EAAQF,GACxB5Z,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,QAGlDynB,GAENlvB,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,mBAAoB48B,GAEtCD,EAAqB,SAASx9B,EAAgB6C,EAAkBkkB,EAAUpkB,EAAW1C,GACnF,GAAI8f,EAiCJ,OAhCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI8Q,GAAcxa,EAAS8J,CA6B3B,OA5BA9J,GAAU,KACV8J,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIkV,GAAM5O,EAAM/N,CAGhB,IAFAyH,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,WAOV,MAJAvP,GAAO0O,EAAI9G,KAAK,gBAAgB7P,MAChC9F,EAAMujB,EAAS1nB,QAAQ,kBACrBmX,QAASA,EAAQhU,IAAI,UAEhBwd,EAAO/N,OAAO,WAInB,MAHApP,GAAiBosB,MAAMhP,GACvBtd,EAAUxD,KAAKqE,GACfb,EAAUO,OAAO,OAAQqO,GAAMpS,KAAKqE,GAC7BvD,EAAOo/B,aAGjB3iC,OACHs0B,EAAe,WAEb,MADAxa,GAAUxW,EAAewW,QAClB3T,EAAiByuB,KAAKrR,GAAKpgB,KAAK,WACrC,MAAOogB,GAAI9G,KAAK,gBAAgBwT,WAGpC1M,EAAIgB,GAAG,SAAU,OAAQX,GAClB0Q,MAGPpwB,YAAa,8BACbmf,KAAMA,IAIVyd,EAAmB1gB,SAAW,mBAAoB,kBAAmB,aAAc,cAAe,UAElGzgB,EAAOwjB,UAAU,cAAe2d,GAEhCE,EAAkB,SAASl1B,EAAMopB,EAAU0N,EAAgBC,EAAc58B,GACvE,GAAIod,GAAMyf,CAoHV,OAnHAA,GAAY,SAASxf,EAAQC,EAAKC,EAAQiU,GACxC,GAAIsL,GAAmBC,EAAcC,EAAkBC,EAAmBC,EAAsBC,EAAkBC,EAAoBC,EAASxgB,CAuF/I,OAtFAkgB,IAAe,EACfD,EAAoB,cACpBO,EAAU/f,EAAI9G,KAAK,kBACnBymB,EAAoB,KACpBD,EAAmB,SAASl7B,GAC1B,GAAI4K,GAAGqC,EAAKuuB,EAAQhvB,EAAM/Q,EAAKggC,EAAiBz0B,CAKhD,IAJAw0B,EAAS,EACTC,KACAA,EAAgBjvB,KAAO,cACvBivB,EAAgBz0B,UACXi0B,EAGH,MAFAQ,GAAgBjvB,KAAOwuB,EACvBS,EAAgBz0B,MAAQhH,EAAKg7B,GACtBS,CAET,IAAIz7B,EAEF,IADAvE,GAAO,cAAe,QAAS,SAAU,QAAS,aAC7CmP,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IAGrC,GAFA4B,EAAO/Q,EAAImP,GACX5D,EAAQhH,EAAKwM,GACTxF,EAAM3B,OAASm2B,EAAQ,CACzBA,EAASx0B,EAAM3B,OACfo2B,EAAgBjvB,KAAOA,EACvBivB,EAAgBz0B,MAAQA,CACxB,OAIN,MAAe,KAAXw0B,EACKC,EAEFA,GAETJ,EAAmB,SAASr7B,GAC1B,GAAIwM,GAAMkG,EAAS1L,CACnB0L,KACA,KAAKlG,IAAQxM,GACXgH,EAAQhH,EAAKwM,GACb+uB,EAAQ7mB,KAAK,MAAQlI,GAAMmc,OAC3BjW,EAAQlT,KAAK+7B,EAAQ7mB,KAAK,MAAQlI,EAAO,SAASshB,KAAK9mB,EAAM3B,QAE/D,OAAOqN,IAET0oB,EAAuB,SAASv/B,GAI9B,MAHA0/B,GAAQ7mB,KAAK,YAAY4P,YAAY,UACrCiX,EAAQ7mB,KAAK,MAAQ7Y,EAAQ2Q,KAAO,MAAMzD,SAAS,UACnDkyB,GAAe,EACRD,EAAoBn/B,EAAQ2Q,MAErCuO,GACElE,MAAOgkB,EAAe98B,IAAI,gBAC1B42B,OAAQkG,EAAe98B,IAAI,iBAC3BsxB,MAAOwL,EAAe98B,IAAI,gBAC1BmY,YAAa2kB,EAAe98B,IAAI,sBAChC29B,UAAWb,EAAe98B,IAAI,qBAEhCu9B,EAAqB,SAASz/B,GAC5B,GAAIqE,GAASy7B,EAAaC,EAAU/vB,EAAOhP,CAW3C,OAVA8+B,GAAcngB,EAAI9G,KAAK,wBAAwBmnB,WAC/CD,EAAWD,EAAY9vB,QACnB+vB,IACFA,EAAS/N,WACT8N,EAAY9hB,UAEdhO,EAAQ0P,EAAOoS,OACf9hB,EAAMhQ,EAAQ2Q,MAAQ3Q,EAAQmL,MAC9BnK,EAAWhC,QAAQqF,QAAQ47B,UAAUtxB,EAAKuQ,EAAUlf,EAAQ2Q,QAC5DtM,EAAUitB,EAAStwB,GAAUgP,GACtB2P,EAAI9G,KAAK,wBAAwBoZ,KAAK5tB,IAE/Cqb,EAAOrP,OAAO,gBAAiB,SAASlM,GACtC,GAAI+7B,EAEJ,IADAZ,EAAoBn7B,EAOpB,MAHA+7B,GAAgBb,EAAiBl7B,GACjCq7B,EAAiBr7B,GACjBs7B,EAAmBS,GACZX,EAAqBW,KAE9BxgB,EAAOrP,OAAO,aAAc,SAASutB,GACnC,GAAmB,SAAfA,EACF,MAAOv7B,GAAUO,OAAO,OAAQg7B,KAG7Bje,EAAIgB,GAAG,QAAS,wBAAyB,SAAShW,GACvD,GAAI3K,GAASmgC,EAAa3C,EAAapd,CASvC,OARAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/Bmd,EAAcpd,EAAOzU,SAASxH,KAAK,QACnCg8B,EAAeb,EAAyBA,EAAkB9B,MAC1Dx9B,GACE2Q,KAAM6sB,EACNryB,MAAOg1B,GAEFzgB,EAAO/N,OAAO,WAEnB,MADA8tB,GAAmBz/B,GACZu/B,EAAqBv/B,QAIlCyf,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOuM,CAIX,OAHAvM,GAAQlU,EAAIpf,aACZ2+B,EAAUxf,EAAQC,EAAKC,EAAQiU,GAC/BuM,EAAanB,EAAahuB,KACnByO,EAAOrP,OAAO,YAAa,SAASsG,GACzC,GAAiB,MAAbA,EACF,MAAO+I,GAAOke,WAAawC,MAK/B3gB,KAAMA,IAIV1jB,EAAOwjB,UAAU,YAAa,OAAQ,WAAY,iBAAkB,eAAgB,cAAe6d,KAElG/8B,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,sBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,kBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,iBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,yBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,wBAEvBsE,KAAKjE,MA2BR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,iBAEvBsE,KAAKjE,MA2BR,WACE,GAAIikC,GAAkBtkC,EAAQI,EAC5B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbJ,EAASiD,QAAQjD,OAAO,eAExBskC,EAAmB,SAAU7zB,GAK3B,QAAS6zB,GAAiB5jB,EAAWvJ,EAAKpQ,EAAQqqB,EAAKmT,EAAKtpB,GAC1D,GAAIupB,EACJnkC,MAAKqgB,UAAYA,EACjBrgB,KAAK8W,IAAMA,EACX9W,KAAK0G,OAASA,EACd1G,KAAK+wB,IAAMA,EACX/wB,KAAKkkC,IAAMA,EACXlkC,KAAK4a,SAAWA,EAChB5a,KAAKokC,aAAc,EACnBD,EAAOnkC,KAAK0G,OAAOZ,IAAI,gBACvB9F,KAAKqkC,UAAYF,EAAKE,UACtBrkC,KAAKskC,UAAYH,EAAKG,WAAa,sBACnCtkC,KAAKukC,YAAcJ,EAAKI,cAAe,EACvCvkC,KAAKwkC,oBAAsBL,EAAKK,sBAAuB,EA4DzD,MA7EA3hC,GAAOohC,EAAkB7zB,GAEzB6zB,EAAiB7jB,SAAW,aAAc,OAAQ,YAAa,UAAW,YAAa,aAkBvF6jB,EAAiBr0B,UAAUtB,WAAa,WACtC,MAAKtO,MAAKqkC,WAIVrkC,KAAKykC,kBACLzkC,KAAK+wB,IAAI2T,GAAG,SAAU1kC,KAAKqkC,UAAW,QACtCrkC,KAAK+wB,IAAI2T,GAAG,UAAW,mBACnB1kC,KAAKukC,cAAiBvkC,KAAKwkC,qBAC7BxkC,KAAK+wB,IAAI2T,GAAG,OAAQ,WAAY1kC,KAAK2kC,UAEnC3kC,KAAKukC,aACPvkC,KAAKqgB,UAAU3T,IAAI1M,KAAKskC,UAAW,SAAUl8B,GAC3C,MAAO,YACL,MAAOA,GAAMw8B,UAAUx8B,EAAMu8B,SAAU,WAExC3kC,OAEEA,KAAKokC,aAAc,OAhBxBpkC,MAAK8W,IAAIrK,MAAM,iDAmBnBw3B,EAAiBr0B,UAAU+0B,OAAS,WAClC,MAAO3kC,MAAK4a,SAASnY,QAGvBwhC,EAAiBr0B,UAAU60B,gBAAkB,WAC3C,GAAIz0B,EAIJ,QAHAA,EAAK,SAAU2C,EAAEkyB,EAAEC,EAAEC,EAAEC,EAAEhtB,EAAEitB,GAAGtyB,EAAyB,sBAAEqyB,EAAEryB,EAAEqyB,GAAGryB,EAAEqyB,IAAI,YAC7DryB,EAAEqyB,GAAGv0B,EAAEkC,EAAEqyB,GAAGv0B,OAAOlJ,KAAK4I,YAAawC,EAAEqyB,GAAGpyB,EAAE,EAAE,GAAI7R,MAAOiX,EAAE6sB,EAAEK,cAAcJ,GAC5EG,EAAEJ,EAAEM,qBAAqBL,GAAG,GAAG9sB,EAAEotB,MAAM,EAAEptB,EAAEoY,IAAI2U,EAAEE,EAAEI,WAAWC,aAAattB,EAAEitB,KAC3E/kC,OAAQqlC,SAAU,SAAU,0CAA2C,OAGnFtB,EAAiBr0B,UAAUg1B,UAAY,SAAS99B,EAAKxC,GACnD,GAAKtE,KAAKokC,aAGLpkC,KAAK+wB,IAAI2T,GAId,MADApgC,GAAQA,GAAStE,KAAKkkC,IAAI,GAAG5/B,MACtBtE,KAAK+wB,IAAI2T,GAAG,OAAQ,YACzBc,KAAQ1+B,EACRxC,MAASA,KAIb2/B,EAAiBr0B,UAAUiV,WAAa,SAAS1H,EAAUsoB,EAAQC,EAAO32B,GACxE,GAAK/O,KAAKokC,aAGLpkC,KAAK+wB,IAAI2T,GAGd,MAAO1kC,MAAK+wB,IAAI2T,GAAG,OAAQ,QAASvnB,EAAUsoB,EAAQC,EAAO32B,IAGxDk1B,GAENlkC,EAAM4Q,SAEThR,EAAOijB,QAAQ,eAAgBqhB,IAE9BhgC,KAAKjE,MAsBR,WACE,GAAI2lC,GAAWhmC,CAEfA,GAASiD,QAAQjD,OAAO,eAExBgmC,EAAY,SAASj/B,GACnB,GAAI2c,EAWJ,OAVK3c,GAAOoC,YACV88B,OAAO51B,GAAG4D,MAAQ,WAChB,MAAO5T,MAAK+H,KAAK,WAGrBsb,EAAO,SAASC,EAAQC,GACtB,IAAK7c,EAAOoC,UACV,MAAOya,GAAIxb,KAAK,QAASub,GAAQxS,SAAS,cAI5CuS,KAAMA,IAIV1jB,EAAOwjB,UAAU,eAAgB,YAAawiB,KAE7C1hC,KAAKjE,MAsBR,WACE,GAAI6lC,EAEJA,GAAuB,SAAS3Q,GAC9B,GAAI7R,EAOJ,OANAA,GAAO,SAASzP,EAAO3L,EAASsmB,GAC9B,MAAO3a,GAAMK,OAAOsa,EAAMuX,cAAe,SAASttB,EAAUutB,GAE1D,MADA99B,GAAQ4tB,KAAKrd,GACN0c,EAASjtB,EAAQ+9B,YAAYpyB,OAItCyP,KAAMA,IAIVwiB,EAAqBzlB,SAAW,YAEhCxd,QAAQjD,OAAO,eAAewjB,UAAU,gBAAiB0iB,IAExD5hC,KAAKjE,MA2BR,WACE,GAAIimC,GAAqBC,EAAsBC,EAA2BC,EAAoBC,EAAuBC,EAAuBC,EAA0BC,EAA6BC,EAA6BC,EAA8BC,EAA2BC,EAA2BC,EAA6BC,EAAuBC,EAA2BC,EAA4BC,EAAsBC,EAAwBC,EAAsBC,EAAmBp2B,EAAUrR,EAAQI,CAExgBA,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,eAExBymC,EAAqB,SAASpjC,GAC5B,GAAIqgB,GAAMgkB,CAiBV,OAhBAA,GAAc,SAAS9jB,EAAK+jB,EAAOC,GACjC,GAAIC,GAASC,EAAUp6B,CAIvB,OAHAA,GAAarK,EAAWuF,QAAQ,wBAChCk/B,EAAW19B,OAAOu9B,GAAOxb,OAAOze,GAChCm6B,EAAUz9B,OAAOw9B,GAAQzb,OAAOze,GACzBkW,EAAIsS,KAAK4R,EAAW,IAAMD,IAEnCnkB,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI8jB,GAAO9jC,EAAK+jC,CAEhB,OADA/jC,GAAMggB,EAAOkkB,YAAYz6B,MAAM,KAAMq6B,EAAQ9jC,EAAI,GAAI+jC,EAAS/jC,EAAI,GAC3DwN,EAASsS,EAAQgkB,EAAO,SAASK,GACtC,MAAO32B,GAASsS,EAAQikB,EAAQ,SAASK,GACvC,MAAOP,GAAY9jB,EAAKokB,EAAUC,SAKtCvkB,KAAMA,IAIV1jB,EAAOwjB,UAAU,eAAgB,aAAcijB,IAE/CC,EAAwB,SAASt6B,EAAY87B,GAC3C,GAAIxkB,EAoCJ,OAnCAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAI9X,GAAYw5B,EAAc1P,CA4B9B,OA3BA0P,GAAe,KACfx5B,EAAa,WACX,GAAIy5B,EAKJ,OAJAA,GAAmBF,EAAwB/hC,MAC3CzF,EAAE2nC,MAAMD,GACNE,MAAO1kB,EAAI,KAENA,EAAI2kB,OAAS,GAAIC,SAAQJ,IAElC3P,EAASrsB,EAAWW,IAAI,sBAAuB,SAAUtE,GACvD,MAAO,UAASyF,GAId,MAHI0V,GAAI2kB,QACN3kB,EAAI2kB,OAAOE,UAEN95B,MAERtO,OACHwjB,EAAOiJ,SAAS,cAAe,SAAS7f,GAQtC,MAPA2W,GAAI3W,IAAIA,GACG,MAAPA,IACE2W,EAAI2kB,QACN3kB,EAAI2kB,OAAOE,UAEb95B,KAEKiV,EAAI2kB,OAAOG,QAAQz7B,KAErB0W,EAAO5W,IAAI,WAAY,WAG5B,MAFA6W,GAAIkB,MACJ2T,IACO7U,EAAI2kB,OAAOE,cAIpB/kB,KAAMA,IAIV1jB,EAAOwjB,UAAU,kBAAmB,aAAc,4BAA6BkjB,IAE/EW,EAA6B,WAC3B,GAAI3jB,GAAMilB,CA4BV,OA3BAA,GAAiB,SAAS/kB,EAAKglB,EAAYC,GACzC,MAAIjlB,GAAIklB,SAAS,qBACRllB,EAAImlB,IAAI,QAASH,EAAa,MAErChlB,EAAI9G,KAAK,qBAAqBisB,IAAI,QAASF,EAAoB,KACxDjlB,EAAI9G,KAAK,WAAWoZ,KAAK0S,EAAa,QAGjDllB,EAAO,SAASC,EAAQC,EAAKC,GAe3B,MAdAxS,GAASsS,EAAQE,EAAOmlB,oBAAqB,SAASC,GACpD,GAAIC,GAAcN,EAAYO,EAAaN,CAW3C,OAVAK,GAAeD,EAAOG,cACtBD,EAAcF,EAAOI,aACrBT,EAAa,EACO,IAAhBO,IACFP,EAAatnC,KAAKgoC,MAAM,KAAOJ,EAAeC,KAEhDN,EAAoB,EACA,IAAhBM,IACFN,EAAoBvnC,KAAKgoC,MAAM,IAAMJ,EAAeC,KAE/CR,EAAe/kB,EAAKglB,EAAYC,KAElCllB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,sBAAuB6jB,GAExCb,EAA4B,SAAShR,EAAWD,EAAUlyB,EAAYkD,EAAUsxB,GAC9E,GAAInU,EAqBJ,OApBAA,GAAO,SAASC,EAAQC,EAAKC,GAgB3B,MAfAxS,GAASsS,EAAQE,EAAO+S,QAAS,SAASjW,GACxC,GAAIuX,GAAQr0B,CACZ,IAAa,MAAT8c,EAUF,MATAuX,GAASL,EAAcO,UAAUzX,EAAM4oB,kBACvC5lB,EAAO7F,MAAQ6C,EAAM4oB,mBACnBhR,kBAAmBl1B,EAAWuF,QAAQ,yBAExC+a,EAAO7F,MAAMoa,OAASA,EAAO/wB,IAC7Bwc,EAAO7F,MAAMwa,GAAKJ,EAAOI,GACzB3U,EAAOxc,KAA+B,OAAvBtD,EAAM8f,EAAO7F,OAAiBja,EAAIiW,UAAY,QAAUvT,EAASvD,QAAQ,gBACtF0hB,SAAUf,EAAO7F,MAAM4G,WACpB,GACEf,EAAOziB,KAAOkJ,OAAOuW,EAAM6oB,cAAcrd,OAAO9oB,EAAWuF,QAAQ,sBAGvE+a,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,UACT5iB,OAAO,EACP1P,YAAa,sCAIjBvE,EAAOwjB,UAAU,sBAAuB,cAAe,WAAY,aAAc,aAAc,kBAAmBgjB,IAElHgB,EAAuB,SAAShS,EAAWD,EAAUlyB,EAAYkD,EAAUsxB,GACzE,GAAInU,EAiBJ,OAhBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIqU,GAAQje,CAWZ,OAVAA,GAAK4J,EAAO4lB,SACZ9lB,EAAO/W,KAAO+W,EAAOzJ,UAAUD,KAC7Bse,kBAAmBl1B,EAAWuF,QAAQ,yBAExCsvB,EAASL,EAAcO,UAAUzU,EAAOzJ,UAAUD,IAAO,MACzD0J,EAAO/W,KAAKsrB,OAASA,EAAO/wB,IAC5Bwc,EAAO/W,KAAK0rB,GAAKJ,EAAOI,GACxB3U,EAAOxc,IAAMwc,EAAO/W,KAAKkN,UAAYvT,EAASvD,QAAQ,gBACpD0hB,SAAUf,EAAO/W,KAAK8X,WACnB,GACEf,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVtP,OAAO,EACP1P,YAAa,wCAIjBvE,EAAOwjB,UAAU,iBAAkB,cAAe,WAAY,aAAc,aAAc,kBAAmBgkB,IAE7GC,EAAoB,SAASr7B,EAAY1D,EAAU8d,EAAOkjB,EAAiBlU,EAAWD,EAAUlyB,GAC9F,GAAIqgB,EA4FJ,OA3FAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIkjB,GAAeC,EAAYC,EAAgB5a,CAsF/C,OArFA2a,GAAa,WACX,GAAI/lC,GAAKimC,CACT,QAAkC,OAAzBjmC,EAAM8f,EAAOxJ,UAAkD,OAA9B2vB,EAAOjmC,EAAIspB,gBAA0B2c,EAAK1iC,QAAQyc,EAAOkmB,cAAyB,cAE9H9a,EAAO,SAAS+a,GACd,GAAIC,EAYJ,OAXAA,GAAYP,EAAgBza,KAAK,SAASlc,GAExC,MADAA,GAAKi3B,SAAWA,EACTj3B,IAETk3B,EAAUzmC,KAAK,WAKb,MAJAwmC,GAAWtpC,EAAEC,IAAIqpC,EAAU,SAASE,GAClC,MAAOvmB,GAAOzJ,UAAUgwB,KAE1BL,EAAeG,GACR59B,EAAW2a,WAAW,oBAExBkjB,EAAUzmC,KAAK,KAAM,WAC1B,MAAOkF,GAASG,OAAO,YAG3B8gC,EAAgB,SAASQ,GACvB,GAAIF,EAcJ,OAbAA,GAAYP,EAAgBza,KAAK,SAASlc,GAExC,MADAA,GAAKi3B,SAAWG,EACTp3B,IAETk3B,EAAUzmC,KAAK,WACb,GAAIuP,GAAMi3B,CAMV,OALAj3B,GAAO22B,EAAgB1a,SACvBgb,EAAWtpC,EAAEC,IAAIoS,EAAKi3B,SAAU,SAASE,GACvC,MAAOvmB,GAAOzJ,UAAUgwB,KAE1BL,EAAeG,GACR59B,EAAW2a,WAAW,oBAExBkjB,EAAUzmC,KAAK,KAAM,WAE1B,MADAuP,MAAKq3B,SACE1hC,EAASG,OAAO,YAG3BghC,EAAiB,SAASG,GAExB,MADArmB,GAAOqmB,SAAWA,EACXrmB,EAAOimB,WAAaA,KAE7BhmB,EAAIgB,GAAG,QAAS,qBAAsB,SAAShW,GAC7C,GAAIyW,GAAShB,EAAQ1f,EAAOulC,CAE5B,IADAt7B,EAAME,iBACD86B,IAOL,MAJAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B4lB,EAAY7lB,EAAOjc,KAAK,cACxBzD,EAAQtB,EAAWuF,QAAQ,kDAC3Byc,EAAU1B,EAAOzJ,UAAUgwB,GAAW3R,kBAC/B7vB,EAAS+tB,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GACzD,MAAO,UAASiuB,GACd,GAAIyT,EAIJ,OAHAzT,GAAY1B,SACZmV,EAAazpC,EAAEsY,MAAMyN,EAAO2P,YAAY4T,UAAU,GAClDG,EAAazpC,EAAE2pC,KAAKF,EAAYD,GACzBP,EAAcQ,KAEtB9pC,SAELsjB,EAAO5W,IAAI,gBAAiB,SAASmB,EAAKg8B,GACxC,GAAIF,EAIJ,OAHAA,GAAWtpC,EAAEsY,MAAMyN,EAAO2P,YAAY4T,UAAU,GAChDA,EAASpiC,KAAKsiC,GACdF,EAAWtpC,EAAE2Z,KAAK2vB,GACX/a,EAAK+a,KAEdrmB,EAAOrP,OAAOuP,EAAO+S,QAAS,SAAS7jB,GACrC,GAAIi3B,EACJ,IAAY,MAARj3B,EASJ,MANAi3B,GAAWtpC,EAAEC,IAAIoS,EAAKi3B,SAAU,SAASE,GACvC,MAAOvmB,GAAOzJ,UAAUgwB,KAE1BF,EAAWtpC,EAAEqN,OAAOi8B,EAAU,SAASntB,GACrC,QAASA,IAEJgtB,EAAeG,KAEjBrmB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIb7Q,OAAO,EACP1P,YAAa,kCACbmf,KAAMA,EACNmT,QAAS,YAIb72B,EAAOwjB,UAAU,cAAe,aAAc,aAAc,UAAW,8BAA+B,cAAe,WAAY,aAAcikB,IAE/InB,EAAsB,SAASl6B,EAAY1D,EAAU8d,EAAOiO,EAAUiV,EAAiBlU,EAAWnyB,EAAYkyB,EAAU+U,EAAqBzS,GAC3I,GAAInU,GAAMze,CAkGV,OAjGAA,GAAWuwB,EAAUrvB,IAAI,sCAAsC,GAC/Dud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYW,EAAkBtb,CA2FlC,OA1FA2a,GAAa,WACX,GAAI/lC,GAAKimC,CACT,QAAkC,OAAzBjmC,EAAM8f,EAAOxJ,UAAkD,OAA9B2vB,EAAOjmC,EAAIspB,gBAA0B2c,EAAK1iC,QAAQyc,EAAOkmB,cAAyB,cAE9H9a,EAAO,SAASyJ,GACd,GAAI7D,GAAgB9hB,EAAMk3B,CAiB1B,OAhBAl3B,GAAO0T,EAAO2P,YAAYpd,QAC1BjG,EAAK8K,YAAc6a,EACnB7D,EAAiBJ,IAAWpQ,OAAOT,GAAK7U,QACxCk7B,EAAYP,EAAgBza,KAAK,SAASlc,GAExC,MADAA,GAAK8K,YAAc6a,EACZ3lB,IAETk3B,EAAUzmC,KAAK,WAGb,MAFAqxB,GAAeG,SACfuV,EAAiBb,EAAgB1a,UAC1B5iB,EAAW2a,WAAW,oBAE/BkjB,EAAUzmC,KAAK,KAAM,WAEnB,MADAkF,GAASG,OAAO,SACTgsB,EAAeG,WAEjBiV,GAETM,EAAmB,SAASC,GAC1B,GAAItS,GAAQI,EAAIpqB,EAAKu8B,EAAUvU,EAAMwU,EAAWC,CAsBhD,OArBAzS,GAASL,EAAcO,UAA4B,MAAlBoS,EAAyBA,EAAeI,uBAAyB,QAClGtS,EAAK,KACiE,OAA/C,MAAlBkS,EAAyBA,EAAe3sB,YAAc,SACzD4sB,EAAWD,EAAeI,uBAAuBrS,kBACjDoS,GAAe,EACfrS,EAAKJ,EAAOI,KAEZmS,EAAWpnC,EAAWuF,QAAQ,6BAC9B+hC,GAAe,GAEjBD,EAA8B,MAAlBF,EAAyBA,EAAeK,WAAa,OACjE38B,GACEu8B,SAAUA,EACVvS,OAAQA,EAAO/wB,IACfmxB,GAAIA,EACJqS,aAAcA,EACdf,WAAYA,IACZc,UAAWA,EACXI,kBAAmBH,IAAiBL,EAAoB77B,oBAE1DynB,EAAOX,EAAStwB,EAASiJ,IAAMyV,GACxBC,EAAIsS,KAAKA,IAElBtS,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GAEzC,GADAA,EAAME,iBACD86B,IAGL,MAAOjmB,GAAO/N,OAAO,WACnB,MAAOxJ,GAAW2a,WAAW,kBAAmBN,EAAO2P,iBAG3DxS,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAExC,GADAA,EAAME,iBACD86B,IAIL,MADAnjB,GAAO2P,YAAYvY,YAAcysB,EAAoB57B,UAAUvI,IAAI,MAC5D8oB,EAAKqb,EAAoB57B,UAAUvI,IAAI,SAEhDyd,EAAIgB,GAAG,QAAS,eAAgB,SAAShW,GACvC,GAAIjK,EAEJ,IADAiK,EAAME,iBACD86B,IAIL,MADAjlC,GAAQtB,EAAWuF,QAAQ,yCACpBF,EAASqiC,IAAIpmC,GAAOnB,KAAK,SAAUiF,GACxC,MAAO,UAAS9B,GAGd,MAFAA,GAASquB,SACTvO,EAAO2P,YAAYvY,YAAc,KAC1BoR,EAAK,QAEb5uB,SAELsjB,EAAO5W,IAAI,oBAAqB,SAASmB,EAAKwqB,EAAQ3lB,GACpD,GAAIA,EAAKkH,KAAOwM,EAAO2P,YAAYnc,GAGnC,MAAOgV,GAAKyJ,KAEd/U,EAAOrP,OAAOuP,EAAO+S,QAAS,SAASoU,GACrC,MAAOT,GAAiBS,KAEnBrnB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNmT,QAAS,YAIb72B,EAAOwjB,UAAU,gBAAiB,aAAc,aAAc,UAAW,aAAc,8BAA+B,cAAe,aAAc,WAAY,uBAAwB,kBAAmB8iB,IAE1MC,EAAuB,SAASn6B,EAAYqoB,EAAUe,GACpD,GAAI9R,GAAMze,CAuCV,OAtCAA,GAAWuwB,EAAUrvB,IAAI,uCACzBud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,EAgCJ,OA/BAA,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,mBAE/Cuc,EAAOrP,OAAOuP,EAAO+S,QAAS,SAAS7jB,GACrC,GAAKA,EAML,MAHI62B,MACFhmB,EAAI9G,KAAK,eAAe3L,SAAS,YAE/B4B,EAAKk4B,YACPrnB,EAAI9G,KAAK,eAAe4P,YAAY,aAC7B9I,EAAI9G,KAAK,iBAAiB3L,SAAS,eAE1CyS,EAAI9G,KAAK,eAAe3L,SAAS,aAC1ByS,EAAI9G,KAAK,iBAAiB4P,YAAY,gBAGjD9I,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GAEtC,MADAA,GAAME,iBACC1C,EAAW2a,WAAW,QAASN,EAAO2P,eAE/CxS,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GACxC,GAAIimB,GAAgBG,CAMpB,OALApmB,GAAME,iBACN+lB,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,kBAAkB/N,QAC9DimB,EAAS,WACP,MAAOH,GAAeG,UAEjB5oB,EAAW2a,WAAW,UAAWN,EAAO2P,YAAapB,KAEvDrR,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,UACT5xB,SAAUA,IAIdjF,EAAOwjB,UAAU,iBAAkB,aAAc,aAAc,cAAe+iB,IAE9EI,EAAwB,SAASx6B,EAAMqa,EAAO9d,EAAUpC,EAAWkvB,GACjE,GAAI9R,GAAMze,CAkCV,OAjCAA,GAAWuwB,EAAUrvB,IAAI,wCACzBud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,MAAK5C,GAAOqnB,gBAGPrnB,EAAOsnB,eAGZvnB,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GACzC,GAAIw8B,GAAUzmC,CAGd,OAFAA,GAAQkf,EAAOsnB,cACfC,EAAW3kB,EAAO2P,YAAYlX,QACvBxW,EAAS+tB,YAAY9xB,EAAOymC,GAAU5nC,KAAK,SAAUiF,GAC1D,MAAO,UAASiuB,GACd,GAAIjzB,EAQJ,OAPAA,GAAU+iB,EAAMvE,OAAOwE,EAAO2P,aAC9B3yB,EAAQD,KAAK,WACX,GAAI2D,EAGJ,OAFAuvB,GAAY1B,SACZ7tB,EAAMwc,EAAOtP,MAAMwP,EAAOqnB,iBACnB5kC,EAAUxD,KAAKqE,KAEjB1D,EAAQD,KAAK,KAAM,WAExB,MADAkzB,GAAY1B,QAAO,GACZtsB,EAASG,OAAO,aAG1BxI,SAEEsjB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,SAxBJ3Y,EAAKjF,MAAM,gEAHXiF,EAAKjF,MAAM,sEA+BpBwc,KAAMA,EACNH,SAAU,KACVsT,QAAS,UACT5xB,SAAUA,IAIdjF,EAAOwjB,UAAU,kBAAmB,OAAQ,UAAW,aAAc,cAAe,cAAemjB,IAEnGC,EAA2B,SAASx6B,EAAYoa,EAAO9d,EAAU+rB,EAAUiV,EAAiBlU,GAC1F,GAAI9R,GAAMze,CA6EV,OA5EAA,GAAWuwB,EAAUrvB,IAAI,2CACzBud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAY3a,CAsEhB,OArEAtL,GAAO5W,IAAI,iBAAkB,WAE3B,MADA6W,GAAI9G,KAAK,iBAAiBmU,OACnBrN,EAAI9G,KAAK,iBAAiBiU,SAEnC6Y,EAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQyc,EAAOkmB,oBAEtD9a,EAAO,SAAS/P,GACd,GAAI2V,GAAgBoV,CAoBpB,OAnBApV,GAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,oBAAoB/N,QAChEk7B,EAAYP,EAAgBza,KAAK,SAASlc,GAExC,MADAA,GAAKmM,QAAUA,EACRnM,IAETk3B,EAAUzmC,KAAK,SAAUiF,GACvB,MAAO,YAIL,MAHAC,GAASG,OAAO,WAChBuD,EAAW2a,WAAW,kBACtBnD,EAAI9G,KAAK,iBAAiBmU,OACnBrN,EAAI9G,KAAK,iBAAiBiU,SAElC1wB,OACH4pC,EAAUzmC,KAAK,KAAM,WACnB,MAAOkF,GAASG,OAAO,WAEzBohC,EAAU,WAAW,WACnB,MAAOpV,GAAeG,WAEjBiV,GAETrmB,EAAIynB,MAAM,WACR,GAAKzB,IAKL,MAFAhmB,GAAI9G,KAAK,iBAAiBiU,OAC1BnN,EAAI9G,KAAK,iBAAiBmU,OACnBrN,EAAI9G,KAAK,SAASwT,UAE3B1M,EAAIgB,GAAG,QAAS,QAAS,SAAS3W,GAChC,GAAIiR,EAGJ,OAFAjR,GAAEa,iBACFoQ,EAAUyE,EAAO5Q,KAAKmM,QACf+P,EAAK/P,KAEd0E,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAChC,GAAIsQ,EACJ,OAAsB,MAAlBtQ,EAAMunB,SACRjX,EAAUyE,EAAO5Q,KAAKmM,QACf+P,EAAK/P,IACe,KAAlBtQ,EAAMunB,SACfxS,EAAO/N,OAAO,SAAUnN,GACtB,MAAO,YACL,MAAOge,GAAO2P,YAAYgU,WAE3B/pC,OACHujB,EAAI9G,KAAK,iBAAiBmU,OACnBrN,EAAI9G,KAAK,iBAAiBiU,QAP5B,SAUTnN,EAAI9G,KAAK,iBAAiBmU,OAC1BtN,EAAOrP,OAAOuP,EAAO+S,QAAS,SAASxnB,GACrC,GAAKA,EAIL,MADAuU,GAAO5Q,KAAO3D,EACTw6B,IAAL,OACShmB,EAAI9G,KAAK,uBAAuBmF,WAGpC0B,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,UACT5xB,SAAUA,IAIdjF,EAAOwjB,UAAU,qBAAsB,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAeojB,IAE1IE,EAA8B,WAC5B,GAAIpjB,EAQJ,OAPAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIxF,EAEJ,OADAA,GAAOsF,EAAOtP,MAAMwP,EAAOynB,sBACpBj6B,EAASsS,EAAQ,iBAAkB,SAASue,GACjD,MAAOte,GAAIsS,KAAKgM,EAAe7jB,EAAKvX,QAAQ8N,UAI9C8O,KAAMA,IAIV1jB,EAAOwjB,UAAU,uBAAwBsjB,GAEzCM,EAA4B,WAC1B,GAAI1jB,EAQJ,OAPAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIuT,EAEJ,OADAA,GAAKzT,EAAOtP,MAAMwP,EAAO0nB,oBAClBl6B,EAASsS,EAAQ,eAAgB,SAAS+e,GAC/C,MAAO9e,GAAIsS,KAAKwM,EAAatL,EAAGtwB,QAAQ8N,UAI1C8O,KAAMA,IAIV1jB,EAAOwjB,UAAU,qBAAsB4jB,GAEvCF,EAA8B,WAC5B,GAAIxjB,EAQJ,OAPAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAImS,EAEJ,OADAA,GAAOrS,EAAOtP,MAAMwP,EAAO2nB,sBACpBn6B,EAASsS,EAAQ,iBAAkB,SAAS2e,GACjD,MAAO1e,GAAIsS,KAAKoM,EAAetM,EAAKlvB,QAAQ8N,UAI9C8O,KAAMA,IAIV1jB,EAAOwjB,UAAU,uBAAwB0jB,GAEzCL,EAA8B,SAASrR,EAAWnyB,EAAYw0B,GAC5D,GAAInU,GAAMze,CAmBV,OAlBAA,GAAWuwB,EAAUrvB,IAAI,uDAAuD,GAChFud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQ,YAAa,SAASzJ,GAC5C,GAAIge,GAAQhqB,EAAK6E,EAAMolB,CAYvB,OAXAplB,GAAO4Q,EAAOtP,MAAMwP,EAAO4nB,sBAC3Bv9B,GACE0G,KAAMvR,EAAWuF,QAAQ,oCAE3BuvB,EAASje,EAAUnH,EAAK8K,aACxBqa,EAASL,EAAcO,UAAUD,GACjCjqB,EAAImqB,OAASH,EAAO/wB,IACpB+G,EAAIoqB,GAAKJ,EAAOI,GACZH,IACFjqB,EAAI0G,KAAOujB,EAAOI,mBAEb3U,EAAIsS,KAAKjxB,EAASiJ,QAI3BwV,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyB,cAAe,aAAc,kBAAmBqjB,IAE1FE,EAA+B,WAC7B,GAAIrjB,EAQJ,OAPAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI6nB,EAEJ,OADAA,GAAQ/nB,EAAOtP,MAAMwP,EAAO8nB,uBACrBt6B,EAASsS,EAAQ,kBAAmB,SAASye,GAClD,MAAOxe,GAAIsS,KAAKkM,EAAgBsJ,EAAM5kC,QAAQ8N,UAIhD8O,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyBujB,GAE1CI,EAAwB,WACtB,GAAIzjB,EAmBJ,OAlBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EAaJ,OAZAA,GAAS,SAASof,EAAeF,GAC/B,GAAIG,GAASphC,CAIb,OAHAA,GAAOmhC,EAAcF,EAAMjhC,MAC3BohC,EAAUjoB,EAAI9G,KAAK,UACnB+uB,EAAQ9C,IAAI,mBAAoBt+B,EAAKwS,OAC9B4uB,EAAQ33B,KAAK,QAASzJ,EAAKmK,OAEpCvD,EAASsS,EAAQ,gBAAiB,SAASioB,GACzC,GAAIF,EAEJ,OADAA,GAAQ/nB,EAAOtP,MAAMwP,EAAOioB,gBACrBtf,EAAOof,EAAeF,KAExB/nB,EAAOrP,OAAOuP,EAAOioB,eAAgB,SAASJ,GACnD,MAAOlf,GAAO7I,EAAOioB,cAAeF,OAItChoB,KAAMA,EACNnf,YAAa,iCAIjBvE,EAAOwjB,UAAU,iBAAkB2jB,GAEnCH,EAA4B,WAC1B,GAAItjB,EAmBJ,OAlBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EAaJ,OAZAA,GAAS,SAASiW,EAAciJ,GAC9B,GAAIG,GAASE,CAIb,OAHAA,GAAWtJ,EAAaiJ,EAAMK,UAC9BF,EAAUjoB,EAAI9G,KAAK,UACnB+uB,EAAQ9C,IAAI,mBAAoBgD,EAAS9uB,OAClC4uB,EAAQ33B,KAAK,QAAS63B,EAASn3B,OAExCvD,EAASsS,EAAQ,eAAgB,SAAS8e,GACxC,GAAIiJ,EAEJ,OADAA,GAAQ/nB,EAAOtP,MAAMwP,EAAOmoB,oBACrBxf,EAAOiW,EAAciJ,KAEvB/nB,EAAOrP,OAAOuP,EAAOmoB,mBAAoB,SAASN,GACvD,MAAOlf,GAAO7I,EAAO8e,aAAciJ,OAIrChoB,KAAMA,EACNnf,YAAa,iCAIjBvE,EAAOwjB,UAAU,qBAAsBwjB,GAEvCC,EAA4B,WAC1B,GAAIvjB,EAmBJ,OAlBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EAaJ,OAZAA,GAAS,SAASgW,EAAckJ,GAC9B,GAAIG,GAASI,CAIb,OAHAA,GAAWzJ,EAAakJ,EAAMO,UAC9BJ,EAAUjoB,EAAI9G,KAAK,UACnB+uB,EAAQ9C,IAAI,mBAAoBkD,EAAShvB,OAClC4uB,EAAQ33B,KAAK,QAAS+3B,EAASr3B,OAExCvD,EAASsS,EAAQ,eAAgB,SAAS6e,GACxC,GAAIkJ,EAEJ,OADAA,GAAQ/nB,EAAOtP,MAAMwP,EAAOqoB,oBACrB1f,EAAOgW,EAAckJ,KAEvB/nB,EAAOrP,OAAOuP,EAAOqoB,mBAAoB,SAASR,GACvD,MAAOlf,GAAO7I,EAAO6e,aAAckJ,OAIrChoB,KAAMA,EACNnf,YAAa,iCAIjBvE,EAAOwjB,UAAU,qBAAsByjB,GAEvCM,EAAyB,SAAS/R,GAChC,GAAI9R,GAAM8I,EAAQvnB,CAmBlB,OAlBAA,GAAWuwB,EAAUrvB,IAAI,uCAAuC,GAChEqmB,EAAS,SAASrZ,EAAIy1B,GACpB,MAAOz1B,GAAG+iB,KAAKjxB,GACb2jC,WAAYA,MAGhBllB,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIvb,EAOJ,OANAA,GAAUrF,QAAQqF,QAAQsb,GAC1BD,EAAOrP,OAAOuP,EAAOsoB,cAAe,SAASvD,GAG3C,MAFAA,GAAaloC,EAAE4K,KAAK,EAAGs9B,IACvBA,EAAaloC,EAAE2K,KAAK,IAAKu9B,IAClBpc,EAAO5I,EAAKglB,KAEdjlB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,cAAe+jB,IAElDD,EAAuB,SAASjkC,GAC9B,GAAIqgB,EASJ,OARAA,GAAO,SAASC,EAAQC,EAAKC,GAI3B,MAHAA,GAAOiJ,SAAS,kBAAmB,SAASsf,GAC1C,MAAOzoB,GAAO8d,YAAc2K,IAEvBzoB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNnf,YAAa,oCACb0P,OACE0tB,YAAa,kBAKnB3hC,EAAOwjB,UAAU,eAAgB,aAAc8jB,KAE9ChjC,KAAKjE,MA2BR,WACE,GAAIgsC,GAAgBC,EAAkBl7B,EAAaE,EAAeC,EAAUvR,EAAQI,EAAOqS,EACzFvP,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbqS,EAAUpS,KAAKD,MAAMqS,QAErBnB,EAAgBjR,KAAKD,MAAMkR,cAE3BC,EAAWlR,KAAKD,MAAMmR,SAEtBH,EAAc/Q,KAAKD,MAAMgR,YAEzBk7B,GACEhnB,SACE3gB,MAAO,kBACP0gB,QAAS,sBAEXne,OACEvC,MAAO,uBACP0gB,QAAS,6BAEXknB,eACE5nC,MAAO,uBACP0gB,QAAS,8BAIbgnB,EAAiB,SAAU57B,GAKzB,QAAS47B,GAAev7B,EAAGpE,EAAiBk2B,EAASxjB,GACnD/e,KAAKyQ,EAAIA,EACTzQ,KAAKqM,gBAAkBA,EACvBrM,KAAKuiC,QAAUA,EACfviC,KAAK+e,UAAYA,EACjBhO,EAAY/Q,MAmRd,MA5RA6C,GAAOmpC,EAAgB57B,GAEvB47B,EAAe5rB,SAAW,KAAM,kBAAmB,aAAc,cAUjE4rB,EAAep8B,UAAUghB,KAAO,SAAS9d,GACvC,GAAIA,EAEF,MADA9S,MAAKqM,gBAAgBkmB,MAAMzf,GACpBA,EAAG2R,IAAI,oBAIlBunB,EAAep8B,UAAU86B,IAAM,SAASpmC,EAAOymC,EAAU/lB,EAASmnB,GAChE,GAAIrd,GAAShc,CA0Cb,OAzCwB,OAApBq5B,IACFA,EAAmB,yBAErBrd,EAAU9uB,KAAKyQ,EAAEvN,QACjB4P,EAAKlQ,QAAQqF,QAAQkkC,GACjB7nC,GACFwO,EAAG2J,KAAK,UAAU5H,KAAKvQ,GAErBymC,GACFj4B,EAAG2J,KAAK,aAAa5H,KAAKk2B,GAExB/lB,GACFlS,EAAG2J,KAAK,YAAY5H,KAAKmQ,GAE3BlS,EAAGyR,GAAG,uBAAwB,gBAAiBrT,EAAS,IAAM,SAAU9I,GACtE,MAAO,UAASmG,GACd,GAAIimB,GAAgBxQ,CAIpB,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BuQ,EAAiBpsB,EAAMm6B,UAAUve,OAAOA,GAAQtV,QACzCogB,EAAQnsB,SACbgyB,OAAQ,SAASyX,GAKf,GAJU,MAANA,IACFA,GAAK,GAEP5X,EAAeG,SACXyX,EACF,MAAOhkC,GAAMwoB,KAAK9d,QAKzB9S,QACH8S,EAAGyR,GAAG,uBAAwB,cAAe,SAAUnc,GACrD,MAAO,UAASmG,GAGd,MAFAA,GAAME,iBACNqgB,EAAQ3nB,SACDiB,EAAMwoB,KAAK9d,KAEnB9S,OACHA,KAAKqM,gBAAgBuoB,KAAK9hB,GACnBgc,EAAQ1rB,SAGjB4oC,EAAep8B,UAAUwmB,YAAc,SAAS9xB,EAAO0gB,GACrD,MAAOhlB,MAAK0qC,IAAIpmC,EAAOtE,KAAK+e,UAAUxW,QAAQ,2BAA4Byc,IAG5EgnB,EAAep8B,UAAUy8B,UAAY,SAAS/nC,EAAOymC,EAAUuB,EAASC,EAAaC,EAASL,GAC5F,GAAIM,GAAc3d,EAAShc,CAoD3B,OAnDwB,OAApBq5B,IACFA,EAAmB,wBAErBrd,EAAU9uB,KAAKyQ,EAAEvN,QACjB4P,EAAKlQ,QAAQqF,QAAQkkC,GACrBr5B,EAAG2J,KAAK,UAAU5H,KAAKvQ,GACvBwO,EAAG2J,KAAK,aAAa5H,KAAKk2B,GACtBwB,EACFz5B,EAAG2J,KAAK,gBAAgB5H,KAAK03B,GAE7Bz5B,EAAG2J,KAAK,gBAAgBmF,SAEtB4qB,EACF15B,EAAG2J,KAAK,YAAY5H,KAAK23B,GAEzB15B,EAAG2J,KAAK,YAAYmF,SAEtB6qB,EAAe35B,EAAG2J,KAAK,YACvBgwB,EAAa5W,KAAK,IAClBx1B,EAAEsJ,KAAK2iC,EAAS,SAASv9B,EAAOW,GAE9B,MADAX,GAAQ1O,EAAE6lB,OAAOnX,GACV09B,EAAaC,OAAO9pC,QAAQqF,QAAQ,kBAAoByH,EAAM,KAAOX,EAAQ,gBAEtF+D,EAAGyR,GAAG,uBAAwB,iBAAkBrT,EAAS,IAAM,SAAU9I,GACvE,MAAO,UAASmG,GACd,GAAIimB,GAAgBxQ,CAIpB,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BuQ,EAAiBpsB,EAAMm6B,UAAUve,OAAOA,GAAQtV,QACzCogB,EAAQnsB,SACb0b,SAAUouB,EAAa7/B,MACvB+nB,OAAQ,SAASyX,GAKf,GAJU,MAANA,IACFA,GAAK,GAEP5X,EAAeG,SACXyX,EACF,MAAOhkC,GAAMwoB,KAAK9d,QAKzB9S,QACH8S,EAAGyR,GAAG,uBAAwB,cAAe,SAAUnc,GACrD,MAAO,UAASmG,GAGd,MAFAA,GAAME,iBACNqgB,EAAQ3nB,SACDiB,EAAMwoB,KAAK9d,KAEnB9S,OACHA,KAAKqM,gBAAgBuoB,KAAK9hB,GACnBgc,EAAQ1rB,SAGjB4oC,EAAep8B,UAAU/I,MAAQ,SAASme,GACxC,GAAI8J,GAAShc,CAmBb,OAlBAgc,GAAU9uB,KAAKyQ,EAAEvN,QACjB4P,EAAKlQ,QAAQqF,QAAQ,2BACrB6K,EAAG2J,KAAK,UAAUoZ,KAAK7Q,GACvBlS,EAAGyR,GAAG,uBAAwB,gBAAiB,SAAUnc,GACvD,MAAO,UAASmG,GAGd,MAFAA,GAAME,iBACNqgB,EAAQnsB,UACDyF,EAAMwoB,KAAK9d,KAEnB9S,OACH8S,EAAGyR,GAAG,uBAAwB,SAAU,SAAUnc,GAChD,MAAO,UAASmG,GAGd,MAFAA,GAAME,iBACNqgB,EAAQnsB,UACDyF,EAAMwoB,KAAK9d,KAEnB9S,OACHA,KAAKqM,gBAAgBuoB,KAAK9hB,GACnBgc,EAAQ1rB,SAGjB4oC,EAAep8B,UAAUqV,QAAU,SAAS3gB,EAAO0gB,EAAS2nB,GAC1D,GAAI7d,GAAS8d,EAAa95B,EAAI+5B,EAAcC,CA2C5C,OA1CAhe,GAAU9uB,KAAKyQ,EAAEvN,QACjB4P,EAAKlQ,QAAQqF,QAAQ,6BACrB6K,EAAG2J,KAAK,OAAOmF,SACf9O,EAAG2J,KAAK,OAAOmF,SACX+qB,IACgB,QAAdA,EAAKviC,KACPwiC,EAAcG,EAAE,SAASj8B,SAAS,WAAW+C,KAAK,MAAO84B,EAAKp4B,MACvC,QAAdo4B,EAAKviC,OACdwiC,EAAcrH,SAASL,cAAc,OACrCnlC,EAAM+Q,SAAS87B,EAAa,QAC5B7sC,EAAM+Q,SAAS87B,EAAaD,EAAKp4B,MACjCxU,EAAM+Q,SAAS87B,EAAa,WAC5BC,EAAetH,SAASyH,gBAAgB,6BAA8B,OACtEF,EAASvH,SAASyH,gBAAgB,6BAA8B,OAChEF,EAAOG,eAAe,+BAAgC,OAAQ,IAAMN,EAAKp4B,MACzEq4B,EAAYM,YAAYL,GAAcK,YAAYJ,IAEhDF,GACF95B,EAAG2J,KAAK,WAAWkU,QAAQic,IAG3BtoC,GACFwO,EAAG2J,KAAK,UAAUoZ,KAAKvxB,GAErB0gB,GACFlS,EAAG2J,KAAK,YAAYoZ,KAAK7Q,GAE3BlS,EAAGyR,GAAG,uBAAwB,gBAAiB,SAAUnc,GACvD,MAAO,UAASmG,GAGd,MAFAA,GAAME,iBACNqgB,EAAQnsB,UACDyF,EAAMwoB,KAAK9d,KAEnB9S,OACH8S,EAAGyR,GAAG,uBAAwB,SAAU,SAAUnc,GAChD,MAAO,UAASmG,GAGd,MAFAA,GAAME,iBACNqgB,EAAQnsB,UACDyF,EAAMwoB,KAAK9d,KAEnB9S,OACHA,KAAKqM,gBAAgBuoB,KAAK9hB;AACnBgc,EAAQ1rB,SAGjB4oC,EAAep8B,UAAUvL,OAAS,SAASC,EAAO0gB,EAASmoB,GACzD,GAAIr6B,EAcJ,OAbY,OAARq6B,IACFA,GAAO,GAETr6B,EAAKlQ,QAAQqF,QAAQ,6BACjB3D,GACFwO,EAAG2J,KAAK,UAAUoZ,KAAKvxB,GAErB0gB,GACFlS,EAAG2J,KAAK,YAAYoZ,KAAK7Q,GAEvBmoB,GACFr6B,EAAG2J,KAAK,SAAS4P,YAAY,WAG7B3d,MAAO,SAAUtG,GACf,MAAO,YACL,MAAOA,GAAMiE,gBAAgBuoB,KAAK9hB,KAEnC9S,MACHotC,KAAM,SAAUhlC,GACd,MAAO,YACL,MAAOA,GAAMiE,gBAAgBkmB,MAAMzf,KAEpC9S,MACHsqB,OAAQ,SAAUliB,GAChB,MAAO,UAAS3B,EAAQnC,EAAO0gB,EAASqoB,GAOtC,MANI/oC,IACFwO,EAAG2J,KAAK,UAAUoZ,KAAKvxB,GAErB0gB,GACFlS,EAAG2J,KAAK,YAAYoZ,KAAK7Q,GAEvBqoB,GACFv6B,EAAG2J,KAAK,SAAS3L,SAAS,UAC1BgC,EAAG2J,KAAK,yBAAyB4P,YAAY,UAC7CvZ,EAAG2J,KAAK,gCAAgC5P,MAAMwgC,EAAU,KACjDv6B,EAAG2J,KAAK,gCAAgCoZ,KAAKwX,EAAU,KAAK3E,IAAI,OAAS2E,EAAU,EAAK,OAE/Fv6B,EAAG2J,KAAK,SAAS4P,YAAY,UACtBvZ,EAAG2J,KAAK,yBAAyB3L,SAAS,aAGpD9Q,QAIPgsC,EAAep8B,UAAUpH,OAAS,SAAS4B,EAAM4a,EAAS1gB,EAAOgpB,GAC/D,GAAIggB,GAAMx6B,EAAIy6B,CAGd,IAFAA,EAAW,yBAA2BnjC,EACtC0I,EAAKlQ,QAAQqF,QAAQslC,IACjBz6B,EAAG21B,SAAS,UA8BhB,MA3BInkC,GACFwO,EAAG2J,KAAK,MAAMoZ,KAAKvxB,GAEnBwO,EAAG2J,KAAK,MAAMoZ,KAAK71B,KAAK+e,UAAUxW,QAAQ0jC,EAAiB7hC,GAAM9F,QAE/D0gB,EACFlS,EAAG2J,KAAK,KAAKoZ,KAAK7Q,GAElBlS,EAAG2J,KAAK,KAAKoZ,KAAK71B,KAAK+e,UAAUxW,QAAQ0jC,EAAiB7hC,GAAM4a,UAElEsoB,EAAO1qC,QAAQqF,QAAQ,QACvBqlC,EAAK7wB,KAAK,6CAA6C4P,YAAY,UAAUvb,SAAS,YACtFw8B,EAAK7wB,KAAK8wB,GAAUlhB,YAAY,YAAYvb,SAAS,UACjD9Q,KAAKwtC,MACPv8B,EAAcjR,KAAKwtC,MAEhBlgB,IACHA,EAAgB,UAATljB,GAA6B,gBAATA,EAAyB,KAAO,MAE7DpK,KAAKwtC,KAAOp7B,EAAQkb,EAAM,SAAUllB,GAClC,MAAO,YAIL,MAHAklC,GAAK7wB,KAAK8wB,GAAUlhB,YAAY,UAAUvb,SAAS,YAAY28B,IAAI,eAAgB,WACjF,MAAOV,GAAE/sC,MAAMqsB,YAAY,oBAEfjkB,GAAMolC,OAErBxtC,OACI8S,EAAGyR,GAAG,QAAS,sBAAuB,SAAUnc,GACrD,MAAO,UAASmG,GACd,MAAO++B,GAAK7wB,KAAK8wB,GAAUlhB,YAAY,UAAUvb,SAAS,cAE3D9Q,QAGEgsC,GAENjsC,EAAM4Q,SAEThR,EAASiD,QAAQjD,OAAO,eAExBA,EAAOijB,QAAQ,aAAcopB,IAE5B/nC,KAAKjE,MA2BR,WACE,GAAI0tC,GAA+BC,EAAkCC,EAAiCC,EAAWC,EAAgBC,EAAeC,EAAWC,EAAcC,EAAUn9B,EAAaC,EAAUE,EAAU/Q,EAAcR,EAAQI,EACxO8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbgR,EAAc/Q,KAAKD,MAAMgR,YAEzBC,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtB/Q,EAAeJ,EAAMI,aAErBR,EAASiD,QAAQjD,OAAO,eAExBquC,EAAY,OAEZD,EAAgB,MAEhBD,EAAiB,YAEjBD,EAAY,OAEZK,EAAW,MAEXD,IAEIv+B,IAAKs+B,EACLz5B,KAAM,wCAEN7E,IAAKo+B,EACLv5B,KAAM,yCAEN7E,IAAKm+B,EACLt5B,KAAM,wCAEN7E,IAAKw+B,EACL35B,KAAM,uCAEN7E,IAAKq+B,EACLx5B,KAAM,4CAIVo5B,EAAmC,SAAUv9B,GAK3C,QAASu9B,GAAiC/5B,EAAOyM,EAAW6N,EAAM9T,EAAI+zB,EAAS19B,GAC7EzQ,KAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAKmuC,QAAUA,EACfnuC,KAAKyQ,EAAIA,EACTM,EAAY/Q,MACZA,KAAKoK,KAAO,KACZpK,KAAKouC,SAAW,KAChBpuC,KAAKua,UAAY,KACjBva,KAAKquC,oBACLruC,KAAKsuC,uBAAyB,KAkDhC,MAlEAzrC,GAAO8qC,EAAkCv9B,GAEzCu9B,EAAiCvtB,SAAW,SAAU,aAAc,UAAW,eAAgB,aAAc,MAiB7GutB,EAAiC/9B,UAAUtB,WAAa,SAASlE,EAAMgkC,GAIrE,MAHApuC,MAAK8Z,QAAU9Z,KAAK4T,MAAMkG,QAC1B9Z,KAAKoK,KAAOA,EACZpK,KAAKouC,SAAWA,EACTpuC,KAAKua,UAAYva,KAAK4T,MAAM2G,WAGrCozB,EAAiC/9B,UAAU2+B,2BAA6B,WACtE,MAAKvuC,MAAKouC,SAGHpuC,KAAKoa,GAAGk0B,uBAAuBtuC,KAAKoK,MAAMtE,IAAI9F,KAAKouC,UAAUjrC,KAAK,SAAUiF,GACjF,MAAO,UAASkmC,GAGd,MAFAlmC,GAAMimC,iBAAmBjmC,EAAM0R,QAAQ1R,EAAMgC,KAAO,sBACpDhC,EAAMkmC,uBAAyBA,EACxBA,IAERtuC,OARMA,KAAKsuC,wBAWhBX,EAAiC/9B,UAAU4+B,kBAAoB,SAASC,GACtE,GAAIC,EAGJ,OAFAA,GAAiBruC,EAAEsY,MAAM81B,GAAW,GACpCC,EAAe3/B,MAAQ/O,KAAKsuC,uBAAuBK,kBAAkBF,EAAU70B,IACxE80B,GAGTf,EAAiC/9B,UAAUg/B,qBAAuB,SAASF,GACzE,GAAIG,GAAkBnrB,EAASC,CAgB/B,OAfAA,GAAY,SAAUvb,GACpB,MAAO,YACL,MAAOA,GAAMiY,UAAUqG,WAAW,mCAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,UAAS9B,GAEd,MADA8B,GAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAMqI,EAAEtJ,WAEhBnH,MACH6uC,EAAmBxuC,EAAEsY,MAAM3Y,KAAKsuC,uBAAuBK,mBAAmB,GAC1EE,EAAiBH,EAAe90B,IAAM80B,EAAe3/B,MACrD/O,KAAKsuC,uBAAuBK,kBAAoBE,EAChD7uC,KAAKsuC,uBAAuB10B,GAAK5Z,KAAKouC,SAC/BpuC,KAAKkuB,KAAKU,KAAK5uB,KAAKsuC,wBAAwBnrC,KAAKwgB,EAAWD,IAG9DiqB,GAEN5tC,EAAM6Q,YAETg9B,EAAkC,SAASkB,EAAYC,GACrD,GAAIC,GAAe3rB,EAAMze,EAAUme,CA4BnC,OA3BAne,GAAWkqC,EAAWhpC,IAAI,mDAAmD,GAC7EkpC,EAAgB,SAAS5kC,GACvB,MAAOjK,IAAc,8BAA+BiK,KAEtDiZ,EAAO,SAASC,EAAQC,EAAKC,EAAQyrB,GACnC,GAAIxX,GAAOrR,EAAQxK,CAanB,OAZA6b,GAAQwX,EAAO,GACf7oB,EAAS6oB,EAAO,GAChBrzB,EAAOozB,EAAcxrB,EAAOpZ,MAC5BkZ,EAAO4rB,UAAYH,EAASjpC,IAAI8V,KAAS,EACzC5K,EAASsS,EAAQE,EAAO+S,QAAS,SAASxnB,GAExC,MADA0oB,GAAMnpB,WAAWkV,EAAOpZ,KAAM2E,EAAM6K,IAC7B6d,EAAM8W,+BAEfjrB,EAAO6rB,eAAiB,WAEtB,MADA7rB,GAAO4rB,WAAa5rB,EAAO4rB,UACpBH,EAAShzB,IAAIH,EAAM0H,EAAO4rB,YAE5B5rB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,SAGf1B,EAAa,SAASQ,EAAKC,GACzB,MAAO5e,IACLwqC,oBAAqB5rB,EAAO4rB,wBAI9B5Y,SAAU,2BAA4B,WACtCryB,WAAYwpC,EACZvpC,aAAc,OACd8e,SAAU,KACVtP,OAAO,EACPyP,KAAMA,EACNze,SAAUme,IAIdpjB,EAAOwjB,UAAU,4BAA6B,cAAe,aAAc,aAAcyqB,IAEzFF,EAAgC,SAASvY,EAAWka,EAAena,EAAUlyB,EAAY6kC,GACvF,GAAIxkB,GAAMze,EAAUwwB,CAyIpB,OAxIAxwB,GAAWuwB,EAAUrvB,IAAI,iDAAiD,GAC1EsvB,EAAeD,EAAUrvB,IAAI,sDAAsD,GACnFud,EAAO,SAASC,EAAQC,EAAKC,EAAQiU,GACnC,GAAIiX,GAAgBnF,EAAYl8B,EAAY8e,EAAQmjB,EAA+B1rB,CAiInF,OAhIAvW,GAAarK,EAAWuF,QAAQ,4BAChC4jB,EAAS,SAASuiB,EAAgBa,GAChC,GAAI1hC,GAAKk6B,EAAkByH,EAAU3Z,EAAM9mB,CAkB3C,OAjBY,OAARwgC,IACFA,GAAO,GAGPxgC,EADE2/B,EAAetkC,OAASyjC,GAAaa,EAAe3/B,MAC9ChF,OAAO2kC,EAAe3/B,MAAO,cAAc+c,OAAOze,GAElDqhC,EAAe3/B,MAEzBygC,EAAWjG,IACX17B,GACE+L,GAAI80B,EAAe90B,GACnBrF,KAAMm6B,EAAen6B,KACrBhQ,YAAamqC,EAAenqC,YAC5BwK,MAAOA,EACPw6B,WAAYiG,EACZplC,KAAMskC,EAAetkC,OAEnBolC,IAAaD,GAASxgC,GAyBxB8mB,EAAOjxB,EAASiJ,GAChBgoB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,KA1BhBA,EAAOT,EAAavnB,GACpBgoB,EAAOX,EAASW,GAAMvS,GACtBC,EAAIsS,KAAKA,GACL6Y,EAAetkC,OAASyjC,GAC1B9F,EAAmBF,EAAwB/hC,MAC3CzF,EAAE2nC,MAAMD,GACNE,MAAO1kB,EAAI9G,KAAK,qBAAqB,GACrCgzB,SAAU,SAAUrnC,GAClB,MAAO,UAASvH,GACd,GAAIinC,EACJ,OAAOA,GAAejnC,IAEvBb,MACHmyB,OAAQ,SAAU/pB,GAChB,MAAO,YACL,GAA4B,mBAAjB0/B,eAAiD,OAAjBA,aACzC,MAAOvkB,GAAI2kB,OAAOG,QAAQP,gBAG7B9nC,QAEEujB,EAAI2kB,OAAS,GAAIC,SAAQJ,IAlBlC,SA0BJwB,EAAa,WACX,GAAIhQ,GAAa6V,CAGjB,OAFA7V,GAAcjW,EAAOxJ,QAAQgT,eAC7BsiB,EAAsB5rB,EAAO4rB,oBACtB7V,EAAYxyB,QAAQqoC,OAE7B9rB,EAAOosB,mBAAqB,SAAUtnC,GACpC,MAAO,UAASunC,EAAU9b,GAExB,MADA6a,GAAe3/B,MAAQ4gC,EAChBlY,EAAMmX,qBAAqBF,GAAgBvrC,KAAK,WAErD,MADA0wB,KACO1H,EAAOuiB,GAAgB,OAGjC1uC,MACHsjB,EAAOssB,qBAAuB,SAAUxnC,GACtC,MAAO,YACL,MAAO+jB,GAAOuiB,GAAgB,KAE/B1uC,MACH4jB,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIkV,GAAMlN,CAGV,IAFAhI,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,WAUV,MAPA7N,GAAQgN,EAAI9G,KAAK,6CACjBiyB,EAAe3/B,MAAQwH,EAAM3J,MACzB8hC,EAAetkC,OAASyjC,GACtB9jC,OAAO2kC,EAAe3/B,MAAO1B,GAAYC,YAC3CohC,EAAe3/B,MAAQhF,OAAO2kC,EAAe3/B,MAAO1B,GAAYye,OAAO,eAGpExI,EAAO/N,OAAO,WACnB,MAAOkiB,GAAMmX,qBAAqBF,GAAgBvrC,KAAK,WACrD,MAAOgpB,GAAOuiB,GAAgB,SAInC1uC,OACHsvC,EAAgC,WAC9B,MAAO/rB,GAAI9G,KAAK,+CAA+CwT,QAAQkG,UAEzEuY,EAAiBprB,EAAOtP,MAAMwP,EAAOqsB,wBACR,OAAzBnB,EAAe3/B,OAA2C,SAAzB2/B,EAAe3/B,QAClD2/B,EAAe3/B,MAAQ,IAEzBuU,EAAOwsB,qBAAuBpB,EAC9BviB,EAAOuiB,GACPnrB,EAAIgB,GAAG,QAAS,6BAA8B,SAAShW,GACrD,MAAOA,GAAMwhC,oBAEfxsB,EAAIgB,GAAG,QAAS,sBAAuB,WACrC,GAAKglB,MAGD8F,EAAcvpC,MAAMsH,OAIxB,MADA+e,GAAOuiB,GAAgB,GAChBY,MAET/rB,EAAIgB,GAAG,QAAS,uBAAwB,SAAShW,GAG/C,MAFAA,GAAME,iBACN0d,EAAOuiB,GAAgB,GAChBY,MAET/rB,EAAIgB,GAAG,QAAS,4CAA6C,SAAShW,GACpE,MAAsB,MAAlBA,EAAMunB,SAA+C,aAA7BvnB,EAAM0V,cAAc7Z,KACvCwZ,EAAOrV,GACa,KAAlBA,EAAMunB,QACR3J,EAAOuiB,GAAgB,GADzB,SAITnrB,EAAIgB,GAAG,SAAU,OAAQX,GACzBL,EAAIgB,GAAG,QAAS,uBAAwBX,GACjCN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNmT,QAAS,4BACTtT,SAAU,OAIdvjB,EAAOwjB,UAAU,0BAA2B,cAAe,gBAAiB,WAAY,aAAc,4BAA6BuqB,KAElIzpC,KAAKjE,MA2BR,WACE,GAAIgwC,GAAoBC,EAAyBC,EAAuB1+B,EAAS7R,EAAQI,EACvFgQ,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,YAElEpQ,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErB7R,EAASiD,QAAQjD,OAAO,eAExBswC,EAA0B,SAASE,EAAuBjc,EAAY/N,EAAOgP,EAAWD,GACtF,GAAI7R,EAkCJ,OAjCAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GA6BnC,MA5BA9C,GAAOrP,OAAOuP,EAAO+S,QAAS,SAASQ,GACrC,GAAIqZ,EACJ,IAAIrZ,EAuBF,MAtBAqZ,GAAoBD,EAAsB1b,OAAOlR,EAAKwT,EAAIzT,EAAOxJ,SACjEs2B,EAAkBC,uBAAyB,SAASC,EAAQC,EAAS3V,GAGnE,MAFA7D,GAAG6D,OAASA,EACZwV,EAAkBjkB,SACX7I,EAAO/N,OAAO,WACnB,MAAO6Q,GAAOoqB,cAAczZ,MAGhCqZ,EAAkBjkB,OAAS,WACzB,GAAIte,GAAKgoB,EAAM4a,EAAc7rC,CAW7B,OAVAiJ,IACEi7B,YAAa9oC,KAAK0wC,uBAClBp3B,MAAOtZ,KAAK2wC,iBACZnB,SAAUxvC,KAAKupC,WACfhH,SAAS,GAEXkO,EAAe,uDACf7rC,EAAWuwB,EAAUrvB,IAAI2qC,GAAc,GACvC5a,EAAOjxB,EAASiJ,GAChBgoB,EAAOX,EAASW,GAAMvS,GACftjB,KAAKujB,IAAIsS,KAAKA,IAEhBua,EAAkBjkB,WAGtB7I,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,oBAAqB,wBAAyB,aAAc,UAAW,cAAe,WAAY8sB,IAEnHC,EAAwB,SAASC,EAAuBjc,EAAY/N,EAAOgP,EAAWD,EAAUmU,EAAiBhhC,GAC/G,GAAIgb,EAuDJ,OAtDAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIwI,EAiDJ,OAhDAA,GAAO,SAASgM,GACd,GAAIlX,GAASkmB,CAYb,OAXAA,GAAYP,EAAgBza,KAAK,SAAUxmB,GACzC,MAAO,UAAS2uB,GAEd,MADAA,GAAG6D,OAASA,EACL7D,IAER/2B,OACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOC,GAASG,OAAO,WAExBxI,MACI4pC,EAAUzmC,KAAK,KAAMugB,IAE9BJ,EAAOstB,iBAAiB,WACtB,MAAOxqB,GAAO2P,aAAe3P,EAAO2P,YAAY6E,QAC/C,WACD,GAAIwV,GAAmBrZ,CAEvB,IADAA,EAAK3Q,EAAO2P,YA0BV,MAxBAqa,GAAoBD,EAAsB1b,OAAOlR,EAAKwT,EAAIzT,EAAOxJ,SACjEs2B,EAAkBC,uBAAyB,SAASC,EAAQC,EAAS3V,GAGnE,MAFAwV,GAAkB7N,QAAU+N,EAC5BF,EAAkBjkB,SACXyC,EAAKgM,GAAQz3B,KAAK,WAGvB,MAFAitC,GAAkB7N,SAAU,EAC5BrO,EAAWxN,WAAW,kBACf0pB,EAAkBjkB,YAG7BikB,EAAkBjkB,OAAS,WACzB,GAAIte,GAAKgoB,EAAM4a,EAAc7rC,CAW7B,OAVAiJ,IACEi7B,YAAa9oC,KAAK0wC,uBAClBp3B,MAAOtZ,KAAK2wC,iBACZnB,SAAUxvC,KAAKupC,WACfhH,QAAS6N,EAAkB7N,SAE7BkO,EAAe,uDACf7rC,EAAWuwB,EAAUrvB,IAAI2qC,GAAc,GACvC5a,EAAOjxB,EAASiJ,GAChBgoB,EAAOX,EAASW,GAAMvS,GACftjB,KAAKujB,IAAIsS,KAAKA,IAEhBua,EAAkBjkB,WAGtB7I,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,kBAAmB,wBAAyB,aAAc,UAAW,cAAe,WAAY,8BAA+B,aAAc+sB,IAE9JF,EAAqB,SAAS7a,EAAWhP,EAAO9d,EAAUtF,EAAI8tC,GAC5D,GAAIC,GAAmBrc,EAAQsc,CA6J/B,OA5JAA,GAAiB5b,EAAUrvB,IAAI,+CAA+C,GAC9EgrC,EAAoB,WAClB,QAASA,GAAkBE,EAAMC,EAAKC,GACpClxC,KAAKujB,IAAMytB,EACXhxC,KAAK+2B,GAAKka,EACVjxC,KAAK8Z,QAAUo3B,EACflxC,KAAKmxC,gBAAkBphC,EAAK/P,KAAKmxC,gBAAiBnxC,MAClDA,KAAKupC,WAAavpC,KAAK8Z,QAAQgT,eAAe/lB,QAAQ,kBACtD/G,KAAKsZ,MAAQtZ,KAAK8Z,QAAQR,MAC1BtZ,KAAK46B,OAAS56B,KAAK8Z,QAAQ8gB,OAC3B56B,KAAKuiC,SAAU,EACfviC,KAAKoxC,WAAa5/B,EAAQxR,KAAK46B,OAAQ,SAASr6B,GAC9C,MAAOA,GAAEqZ,KAEX5Z,KAAKqwC,uBAAyB,SAASC,EAAQC,KAC/CvwC,KAAKmsB,OAAS,aAiIhB,MA9HA2kB,GAAkBlhC,UAAUgf,KAAO,SAAS0hB,EAAQC,GAClD,GAAIttC,EAkBJ,OAjBAA,GAAWF,EAAGG,QACd2tC,EAAQ59B,IAAI,SAAU7K,GACpB,MAAO,YACL,GAAIsb,GAASC,CAWb,OAVAA,GAAY,WAEV,MADA1gB,GAASN,UACFyF,EAAM+jB,UAEfzI,EAAU,WAIR,MAHArb,GAASG,OAAO,SAChBJ,EAAM2uB,GAAGgT,SACT3hC,EAAM+jB,SACClpB,EAASkE,UAEXgf,EAAMyI,KAAKxmB,EAAM2uB,IAAI5zB,KAAKwgB,EAAWD,KAE7C1jB,OACIiD,EAASG,SAGlB0tC,EAAkBlhC,UAAU8gC,qBAAuB,WACjD,GAAIW,GAAeC,CAOnB,OANAA,GAASjxC,EAAEC,IAAIN,KAAK+2B,GAAG6D,OAAQ,SAAUxyB,GACvC,MAAO,UAASmpC,EAAGC,GACjB,GAAIhuC,EACJ,OAAsC,QAA9BA,EAAM4E,EAAMgpC,WAAWG,IAAc/tC,EAAIuL,MAAQ,SAE1D/O,OACmB,IAAlBsxC,EAAOlkC,OACF,KAETikC,EAAgBhxC,EAAEqN,OAAO4jC,EAAQ,SAASC,GACxC,MAAY,OAALA,IAEoB,IAAzBF,EAAcjkC,OACT,IAEF/M,EAAEwX,OAAOw5B,EAAe,SAASI,EAAKC,GAC3C,MAAOD,GAAMC,MAIjBZ,EAAkBlhC,UAAU+gC,eAAiB,WAC3C,GAAIn3B,GAAiBF,CAYrB,OAXAE,GAAkBnZ,EAAEqN,OAAO1N,KAAK8Z,QAAQR,MAAO,cAC/CA,EAAQjZ,EAAEC,IAAIkZ,EAAiB,SAAUpR,GACvC,MAAO,UAASupC,GACd,GAAIpB,GAASqB,CAKb,OAJArB,GAAUnoC,EAAM2uB,GAAG6D,OAAO+W,EAAK/3B,IAC/Bg4B,EAAWxpC,EAAMgpC,WAAWb,GAC5BoB,EAAOtxC,EAAEsY,MAAMg5B,GAAM,GACrBA,EAAK/W,OAAsB,MAAZgX,GAAuC,MAAjBA,EAASr9B,KAAgBq9B,EAASr9B,KAAO,IACvEo9B,IAER3xC,QAIL8wC,EAAkBlhC,UAAUuhC,gBAAkB,WAa5C,MAZAnxC,MAAKujB,IAAIgB,GAAG,QAAS,mBAAoB,SAAUnc,GACjD,MAAO,UAASmG,GACd,GAAI+hC,GAAQtsB,CAOZ,OANAzV,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BqsB,EAAStsB,EAAOjc,KAAK,WACrBK,EAAMypC,qBAAqBvB,EAAQtsB,GACnCA,EAAO8tB,WAAWzlB,YAAY,UACvBrI,EAAOlT,SAAS,YAExB9Q,OACIA,KAAKujB,IAAIgB,GAAG,QAAS,SAAU,SAAUnc,GAC9C,MAAO,UAASmG,GACd,GAAIgiC,GAAS3V,EAAQ0V,EAAQtsB,CAS7B,OARAzV,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BqsB,EAAStsB,EAAOjc,KAAK,WACrBwoC,EAAUvsB,EAAOjc,KAAK,YACtBK,EAAMmb,IAAI9G,KAAK,YAAYs1B,UAAUxf,QACrCqI,EAASv6B,EAAEsY,MAAMvQ,EAAM2uB,GAAG6D,QAAQ,GAClCA,EAAO0V,GAAUC,EACVnoC,EAAMioC,uBAAuBC,EAAQC,EAAS3V,KAEtD56B,QAGL8wC,EAAkBlhC,UAAUiiC,qBAAuB,SAASvB,EAAQtsB,GAClE,GAAIguB,GAAgBnc,EAAMoc,EAAgBrX,EAAQsX,CA+BlD,IA9BAtX,EAASv6B,EAAEC,IAAIN,KAAK46B,OAAQ,SAAUxyB,GACpC,MAAO,UAAS+pC,GAGd,MAFAA,GAAQ9xC,EAAEsY,MAAMw5B,GAAO,GACvBA,EAAM9zB,SAAWjW,EAAM2uB,GAAG6D,OAAO0V,KAAY6B,EAAMv4B,GAC5Cu4B,IAERnyC,OACHiyC,EAAiB,EACjBD,EAAiB3xC,EAAE+xC,KAAKxX,EAAQ,SAAUxyB,GACxC,MAAO,UAAS+pC,GACd,MAAOA,GAAM59B,KAAKnH,OAAS6kC,IAE5BjyC,OACH61B,EAAOkb,GACLnW,OAAUA,EACV0V,OAAQA,EACR+B,WAAYL,IAEdhyC,KAAKujB,IAAI9G,KAAK,YAAYs1B,UAAUxf,QACpCvyB,KAAKujB,IAAI9G,KAAK,oBAAoBmF,SACpB,MAAVoC,EACFhkB,KAAKujB,IAAI9G,KAAKuH,GAAQ0oB,OAAO7W,GAE7B71B,KAAKujB,IAAImpB,OAAO7W,GAElB71B,KAAKujB,IAAI9G,KAAK,oBAAoBs1B,UAAUnd,KAAK,WAC/C,MAAOmY,GAAE/sC,MAAMqsB,YAAY,UAAUimB,QAAQ,MAAMjmB,YAAY,YAEjErsB,KAAKujB,IAAI9G,KAAK,oBAAoBiU,OAClCwhB,EAAMlyC,KAAKujB,IAAI9G,KAAK,oBAChBy1B,EAAIK,SAASC,IAAMN,EAAIO,SAAWlN,SAAS+H,KAAKoF,aAClD,MAAOR,GAAIphC,SAAS,eAIjBggC,KAGTrc,EAAS,SAASlR,EAAKwT,EAAIjd,GACzB,GAAIs2B,EAMJ,OALA7sB,GAAI6U,OAAO,SACXgY,EAAoB,GAAIU,GAAkBvtB,EAAKwT,EAAIjd,GAC/Cs2B,EAAkB7G,YACpB6G,EAAkBe,kBAEbf,IAGP3b,OAAQA,IAIZ90B,EAAO0H,QAAQ,yBAA0B,cAAe,UAAW,aAAc,KAAM,YAAa2oC,KAEnG/rC,KAAKjE,MA2BR,WACE,GAAI2yC,GAAaC,EAAcC,EAAeC,EAASC,EAAgBpzC,EAAQqzC,EAAcC,EAAejhC,EAAYjS,EAAOmzC,EAAiBzgC,EAAW0gC,CAE3JpzC,GAAQC,KAAKD,MAEbJ,EAASiD,QAAQjD,OAAO,eAExBkzC,EAAgB,WACd,MAAO,UAAS9jC,EAAOqkC,GACrB,MAAIrkC,MAAW,KAAM,QACZqkC,EAEFrkC,IAIXpP,EAAO+N,OAAO,UAAWmlC,GAEzBM,EAAc,SAASnwC,GACrB,MAAO,UAAS+L,GACd,MAAIA,GACK/L,EAAWuF,QAAQ,cAErBvF,EAAWuF,QAAQ,eAI9B5I,EAAO+N,OAAO,SAAU,aAAcylC,IAEtC1gC,EAAY,WACV,MAAO1S,GAAM0S,WAGf9S,EAAO+N,OAAO,YAAa+E,GAE3BugC,EAAe,WACb,MAAO,UAASz8B,EAAOuV,GACrB,MAAIvV,GACKxM,OAAOwM,GAAOuV,OAAOA,GAEvB,KAIXnsB,EAAO+N,OAAO,eAAgBslC,GAE9BC,EAAgB,WACd,MAAO,UAAS18B,EAAO88B,GACrB,MAAI98B,GACKxM,OAAOwM,GAAO+8B,QAAQD,IAAkB,GAE1C,KAIX1zC,EAAO+N,OAAO,gBAAiBulC,GAE/BjhC,EAAa,SAAU5J,GACrB,MAAO,YACL,MAAOA,GAAMrI,MAAMiS,aAEpBhS,MAEHL,EAAO+N,OAAO,aAAcsE,GAE5BkhC,EAAkB,WAChB,GAAIK,GAAiBC,CAKrB,OAJAA,GAAY,SAASC,GACnB,MAAOA,GAAGh7B,QAEZ86B,EAAkBlzC,EAAEqzC,QAAQF,GACrB,SAASj9B,GACd,MAAIA,aAAiB0K,WAAU0yB,KACtBJ,EAAgBh9B,GAElBA,IAIX5W,EAAO+N,OAAO,YAAawlC,GAE3BP,EAAc,SAASiB,GACrB,MAAO,UAAS31B,EAAavQ,GAC3B,GAAImmC,EACJ,QAAc,MAAVnmC,EAAiBA,EAAOsI,WAAW,KAAO,SAC5C69B,EAAWnmC,EAAOomC,OAAO,GAClBzzC,EAAEqN,OAAOuQ,EAAa,SAAU7V,GACrC,MAAO,UAAS2uB,GACd,MAAO3gB,QAAO2gB,EAAGvzB,KAAKwS,WAAW69B,KAElC7zC,QAEE4zC,EAAc31B,EAAavQ,KAItC/N,EAAO+N,OAAO,SAAU,eAAgBilC,IAExCC,EAAe,WACb,MAAO,UAASh2B,EAAOm3B,GACrB,GAAIC,GAAOC,EAAGthC,EAAGuhC,EAAGl/B,EAAKm/B,EAAU3wC,EAAK4wC,CAYxC,KAXAx3B,EAAQ,GAAIxG,QAAOwG,GAAOxJ,QAAQ,cAAe,IAC7CwJ,EAAMxP,OAAS,IACjBwP,EAAQA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,IAEvEm3B,EAAaA,GAAc,EAC3BI,EAAW,IACXF,EAAI,EACJthC,EAAI,EACJqhC,EAAQ,EACRI,EAAQ,IACR5wC,GAAO,EAAG,EAAG,GACR0wC,EAAI,EAAGl/B,EAAMxR,EAAI4J,OAAQ8mC,EAAIl/B,EAAKk/B,IACrCvhC,EAAInP,EAAI0wC,GACRD,EAAIpoB,SAASjP,EAAMk3B,OAAW,EAAJnhC,EAAO,GAAI,IACrCshC,EAAIhzC,KAAKgoC,MAAMhoC,KAAK+J,IAAI/J,KAAKgK,IAAI+oC,EAAOC,EAAKF,EAAaK,GAASA,IAAQ/hC,SAAS,IACpF8hC,IAAa,KAAOF,GAAGH,OAAOG,EAAE7mC,OAElC,OAAO+mC,KAIXx0C,EAAO+N,OAAO,SAAUklC,GAExBG,EAAiB,SAASsB,GACxB,MAAO,UAAS99B,GACd,MAAIA,GACK89B,EAAeC,QAAQ/9B,GAEzB,KAIX5W,EAAO+N,OAAO,kBAAmB,mBAAoBqlC,IAErDD,EAAU,SAASyB,GACjB,MAAO,UAASt4B,EAAMu4B,EAAavsC,GACjC,GAAIyF,EACJ,IAAI8mC,EAEF,OADA9mC,EAAS6mC,EAAQ,WACHt4B,EAAM,SAASw4B,GAC3B,MAAOD,GAAYztC,QAAQ0tC,EAASxsC,aAM5CtI,EAAO+N,OAAO,WAAY,UAAWolC,KAEpC7uC,KAAKjE,MA2BR,WACE,GAAI00C,GAA6BC,EAAwBC,EAA+BC,EAAgCC,EAA8BC,EAAmBC,EAAmCC,EAAsCC,EAAiBC,EAA2BnkC,EAAUE,EAAUvR,EAAQqS,EAAYI,EAASG,EAC7U1P,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,eACb/I,KAAaA,SAAW,SAAS2L,GAAQ,IAAK,GAAIC,GAAI,EAAGC,EAAI5S,KAAKoN,OAAQuF,EAAIC,EAAGD,IAAO,GAAIA,IAAK3S,OAAQA,KAAK2S,KAAOD,EAAM,MAAOC,EAAK,UAEzIhT,GAASiD,QAAQjD,OAAO,eAExBqR,EAAWhR,KAAKD,MAAMiR,SAEtBoB,EAAUpS,KAAKD,MAAMqS,QAErBlB,EAAWlR,KAAKD,MAAMmR,SAEtBc,EAAahS,KAAKD,MAAMiS,WAExBO,EAAOvS,KAAKD,MAAMwS,KAElB2iC,EAAkB,SAAU9kC,GAG1B,QAAS8kC,GAAgBloB,EAAgBvc,EAAGwgB,GAC1CjxB,KAAKgtB,eAAiBA,EACtBhtB,KAAKyQ,EAAIA,EACTzQ,KAAKixB,UAAYA,EAqGnB,MA1GApuB,GAAOqyC,EAAiB9kC,GAQxB8kC,EAAgBtlC,UAAUglB,KAAO,SAASrR,EAAKiM,EAAS4lB,GACtD,GAAItmB,GAASumB,EAAOC,CA6CpB,OA5CAt1C,MAAKwvB,QAAUA,EACXnvB,EAAEoV,SAAS8N,KACbA,EAAMwpB,EAAExpB,IAEVuL,EAAU9uB,KAAKyQ,EAAEvN,QACjBoyC,EAAkB/xB,EAAIqgB,WAAW2R,IAAI,UACrCD,EAAgB1kB,OAChB5wB,KAAKgtB,eAAe/Z,IAAI,WACtB,MAAOsQ,GAAImlB,IAAI,UAAW,UAE5B1oC,KAAKgtB,eAAe/Z,IAAI,WAEtB,MADAsQ,GAAIzS,SAAS,QACNyS,EAAIkqB,IAAI,gBAAiB,SAAUrlC,GACxC,MAAO,YACL,GAAIotC,EAEJ,OADAA,GAAajyB,EAAI9G,KAAK,kBAAkB6qB,QACpCkO,EAAWpoC,OACNmW,EAAI9G,KAAK,kBAAkB6qB,QAAQrX,QACjCsV,SAASkQ,cACX1I,EAAExH,SAASkQ,eAAeC,OAD5B,SAIR11C,SAELA,KAAKgtB,eAAe/Z,IAAI,SAAU7K,GAChC,MAAO,YAEL,MADAktC,GAAgB5kB,OACT5B,EAAQnsB,YAEhB3C,OACHq1C,EAAQzyC,QAAQqF,QAAQs9B,UACxB8P,EAAM9wB,GAAG,mBAAoB,SAAUnc,GACrC,MAAO,UAASwF,GACd,GAAI+nC,EAEJ,IADAA,EAAO/nC,EAAEkoB,QAAUloB,EAAEkoB,QAAUloB,EAAEgoC,MACpB,KAATD,EACF,MAAIP,GACKhtC,EAAM6oB,UAAU4kB,YAAYT,GAE5BhtC,EAAMmqB,MAAMhP,KAIxBvjB,OACI8uB,EAAQ1rB,SAGjB8xC,EAAgBtlC,UAAU2iB,MAAQ,SAAShP,GACzC,MAAO,IAAIxV,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,GACd,GAAI0yC,GAAOzhC,CAmBX,IAlBIvT,EAAEoV,SAAS8N,KACbA,EAAMwpB,EAAExpB,IAEV8xB,EAAQzyC,QAAQqF,QAAQs9B,UACxB8P,EAAM5wB,IAAI,aACV4wB,EAAM5wB,IAAI,wBACVlB,EAAIzS,SAAS,iBACb1I,EAAM4kB,eAAe/Z,IAAI,WAEvB,MADAsQ,GAAIzS,SAAS,SACNyS,EAAIkqB,IAAI,gBAAiB,WAM9B,MALAlqB,GAAIuyB,WAAW,SACfvyB,EAAI8I,YAAY,QAAQA,YAAY,SAASA,YAAY,iBACrDjkB,EAAMonB,SACRpnB,EAAM6oB,UAAU1b,OAAOnN,EAAMonB,SAExB7sB,QAGP4gB,EAAIklB,SAAS,mBAKf,MAJA70B,GAAQ2P,EAAIxb,KAAK,SACb6L,GACFA,EAAMgiB,WAEDrS,EAAI3B,WAGd5hB,QAGLk1C,EAAgBtlC,UAAUpB,gBAAkB,WAC1C,MAAOu+B,GAAE,uCAGXmI,EAAgBtlC,UAAUhJ,SAAW,WACnC,GAAIyuC,GAAO1iC,EAAGqC,EAAK+gC,EAAYvyC,EAAKiX,CAIpC,KAHA46B,EAAQzyC,QAAQqF,QAAQs9B,UACxB/hC,EAAM6xC,EAAM54B,KAAK,kBACjBhC,KACK9H,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrCojC,EAAavyC,EAAImP,GACjB8H,EAAQlT,KAAKvH,KAAKuyB,MAAMwa,EAAEgJ,IAE5B,OAAOt7B,IAGFy6B,GAENn1C,MAAM4Q,SAEThR,EAAOijB,QAAQ,mBAAoB,iBAAkB,KAAM,aAAcsyB,IAEzEF,EAAoC,SAAU5kC,GAG5C,QAAS4kC,KACP,MAAOA,GAAkCnlC,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAyD7E,MA5DAtN,GAAOmyC,EAAmC5kC,GAM1C4kC,EAAkCplC,UAAUw9B,KAAO,WACjD,GAAIiI,EAEJ,OADAA,GAAQzyC,QAAQqF,QAAQs9B,UACjB8P,EAAM5wB,IAAI,yBAGnBuwB,EAAkCplC,UAAUomC,SAAW,SAASzyB,EAAKoyB,GACnE,GAAIF,GAAevuC,EAAM+uC,CAEzB,IADAR,EAAgBlyB,EAAI9G,KAAK,aACZ,KAATk5B,EACF,MAA6C,KAAzCpyB,EAAI9G,KAAK,qBAAqBrP,OACzBmW,EAAI9G,KAAK,2BAA2By5B,QAAQ,SAE5CT,EAAcS,QAAQ,QAE1B,IAAa,KAATP,EAAa,CACtB,IAAKF,EAAcroC,OACjB,MAAOmW,GAAI9G,KAAK,6CAA6C3L,SAAS,WAGtE,IADA5J,EAAOuuC,EAAcvuC,KAAK,qBACtBA,EAAKkG,OAEP,MADAqoC,GAAcppB,YAAY,YACnBnlB,EAAK4J,SAAS,gBAGpB,IAAa,KAAT6kC,EAAa,CACtB,IAAKF,EAAcroC,OACjB,MAAOmW,GAAI9G,KAAK,0BAA0B3L,SAAS,WAGnD,IADAmlC,EAAOR,EAAcQ,KAAK,uCACtBA,EAAK7oC,OAEP,MADAqoC,GAAcppB,YAAY,YACnB4pB,EAAKnlC,SAAS,cAM7BkkC,EAAkCplC,UAAUlQ,KAAO,SAAS6jB,GAC1D,GAAI8xB,EAGJ,OAFAr1C,MAAKotC,OACLiI,EAAQzyC,QAAQqF,QAAQs9B,UACjB8P,EAAM9wB,GAAG,8BAA+B,SAAUnc,GACvD,MAAO,UAASmG,GACd,GAAIonC,EAEJ,IADAA,EAAOpnC,EAAMunB,QAAUvnB,EAAMunB,QAAUvnB,EAAMqnC,MAChC,KAATD,GAAwB,KAATA,GAAwB,KAATA,EAEhC,MADApnC,GAAME,iBACCrG,EAAM4tC,SAASzyB,EAAKoyB,KAG9B31C,QAGEg1C,GAENj1C,MAAM4Q,SAEThR,EAAOijB,QAAQ,oCAAqCoyB,GAEpDD,EAAoB,SAAS1oC,GAC3B,GAAIgX,EASJ,OARAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,IAAKA,EAAO2yB,MAAMC,QAChB,MAAO7yB,GAAIgB,GAAG,QAAS,SAAU,SAAShW,GAExC,MADAA,GAAME,iBACCpC,EAAgBkmB,MAAMhP,OAKjCL,SAAU,IACVG,KAAMA,IAIV1jB,EAAOwjB,UAAU,YAAa,kBAAmB4xB,IAEjDJ,EAAyB,SAAS5oC,EAAYsqC,EAAShuC,EAAUgE,EAAiB+nB,EAAUiV,EAAiBrmC,GAC3G,GAAIqgB,EAiEJ,OAhEAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIzd,GAAOrE,EAAOgyC,CA0DlB,OAzDAhyC,GAAQtB,EAAWuF,QAAQib,EAAOlf,OAClCif,EAAI9G,KAAK,YAAY5H,KAAKvQ,GAC1BgyC,EAAU,SAAUluC,GAClB,MAAO,UAASmuC,GACd,GAAI3M,EAkBJ,OAjBAA,GAAYP,EAAgBza,KAAK,SAASlc,GAGxC,MAFAA,GAAKk4B,YAAa,EAClBl4B,EAAK8jC,aAAe,GACb9jC,IAETk3B,EAAUzmC,KAAK,WAGb,MAFAkF,GAASG,OAAO,WAChBuD,EAAW2a,WAAW,kBACf6vB,MAET3M,EAAUzmC,KAAK,KAAM,WAEnB,MADAkF,GAASG,OAAO,SACTkK,KAAKq3B,WAEdH,EAAU,WAAW,WACnB,MAAO2M,OAEF3M,IAER5pC,MACH2I,EAAQ,WACN,GAAI6rB,GAAgBoV,CAcpB,OAbApV,GAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,kBAAkB/N,QAC9Dk7B,EAAYP,EAAgBza,KAAK,SAASlc,GAGxC,MAFAA,GAAKk4B,YAAa,EAClBl4B,EAAK8jC,aAAejzB,EAAI9G,KAAK,WAAW7P,MACjC8F,IAETk3B,EAAUzmC,KAAK,WAEb,MADAkF,GAASG,OAAO,WACTuD,EAAW2a,WAAW,oBAE/BkjB,EAAUzmC,KAAK,KAAM,WACnB,MAAOkF,GAASG,OAAO,WAElBohC,EAAU,WAAW,WAE1B,MADApV,GAAeG,SACRtoB,EAAgBkmB,MAAMhP,MAGjCD,EAAO5W,IAAI,QAAS,WAElB,MADA6W,GAAI9G,KAAK,WAAW7P,IAAIwZ,EAAO2P,YAAYygB,cACpCnqC,EAAgBuoB,KAAKrR,KAE9BD,EAAO5W,IAAI,UAAW,SAAUtE,GAC9B,MAAO,UAASmG,EAAO+R,EAAOi2B,GAC5B,MAAOD,GAAQC,KAEhBv2C,OACHsjB,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAENlB,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAE/C,MADAA,GAAME,iBACC9F,QAITzE,YAAa,sCACbmf,KAAMA,EACNmT,QAAS,YAIb72B,EAAOwjB,UAAU,aAAc,aAAc,UAAW,aAAc,kBAAmB,aAAc,8BAA+B,aAAcwxB,IAEpJC,EAAgC,SAAS9oC,EAAMqpB,EAAWD,GACxD,GAAI7R,GAAMze,EAAUme,CAmBpB,OAlBAne,GAAWuwB,EAAUrvB,IAAI,wDAAwD,GACjFud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,MAAK5C,GAAOizB,MAGLnzB,EAAOrP,OAAOuP,EAAOizB,MAAO,SAAS1nC,GAC1C,MAAIA,MAAU,GAAWA,KAAU,EAC1BwU,EAAI9G,KAAK,iBAAiB4P,YAAY,UAEtC9I,EAAI9G,KAAK,iBAAiB3L,SAAS,YANrChF,EAAKjF,MAAM,8DAUtBkc,EAAa,SAASQ,EAAKC,GACzB,MAAO5e,IACL8xC,QAASlzB,EAAO+S,YAIlB3xB,SAAUme,EACVM,KAAMA,EACNmT,QAAS,UACTtT,SAAU,OAIdvjB,EAAOwjB,UAAU,0BAA2B,OAAQ,cAAe,WAAYyxB,IAE/EE,EAA+B,SAAS3uB,EAAOC,EAAQ4Q,EAAK9C,EAAY7nB,EAAiB+nB,EAAUpxB,EAAYqF,EAAUtF,EAAI4zC,GAC3H,GAAItzB,EAwMJ,OAvMAA,GAAO,SAASC,EAAQC,EAAKgL,GAC3B,GAAIqoB,GAAkBC,EAAqBC,EAAmBC,EAAmBtzB,EAAMuzB,EAAkBpzB,EAAQ2Q,CAkMjH,OAjMA9Q,GAAO,KACPH,EAAO2zB,gBACP3zB,EAAO4zB,OAAQ,EACfN,EAAmB31B,UAAU0yB,OAC7BkD,EAAsB51B,UAAU0yB,OAChCqD,EAAmB,WAEjB,MADAJ,GAAmB31B,UAAU0yB,OACtBkD,EAAsB51B,UAAU0yB,QAEzCrwB,EAAO6zB,cAAgB,SAASC,GAC9B,MAAOR,GAAmBA,EAAiBrvC,KAAK6vC,IAElD9zB,EAAO+zB,iBAAmB,SAASD,GAIjC,GAHAR,EAAmBA,EAAiBlpC,OAAO,SAAS8O,GAClD,MAAOA,GAAG1W,IAAI,UAAYsxC,EAAWtxC,IAAI,UAEvCsxC,EAAWtxC,IAAI,MACjB,MAAO+wC,GAAsBA,EAAoBtvC,KAAK6vC,IAG1D9zB,EAAOg0B,OAAS,SAAS94B,EAAK5B,GAC5B,GAAI26B,GAAUC,EAAUC,EAAargC,EAAMrI,CAmB3C,IAlBAA,EAAQwD,EAAKiM,EAAI/J,eACjB2C,EAAOkM,EAAOxJ,QAAQ1C,KACtBqgC,EAAcn0B,EAAOxJ,QAAQ49B,YACjB,MAARtgC,IACFA,MAEiB,MAAfqgC,IACFA,MAEE1wC,EAAQ9C,KAAKmT,EAAMrI,GAAS,GAC9BqI,EAAK7P,KAAKwH,GAEZ0oC,EAAYj5B,GAAO5B,GAAS,KAC5B0G,EAAOxJ,QAAQ1C,KAAOA,EACtBogC,EAAWn3C,EAAEsY,MAAM2K,EAAOyT,GAAG3f,MAC7BmgC,EAAWl3C,EAAEoc,KAAK+6B,EAAU,SAASh7B,GACnC,MAAOA,GAAG,KAAOzN,KAEdwoC,EAEH,MADAC,GAASjwC,MAAMwH,EAAO6N,IACf0G,EAAOyT,GAAG3f,KAAOogC,GAG5Bl0B,EAAOq0B,UAAY,SAASn5B,GAC1B,GAAIg5B,GAAUpgC,EAAMrI,CAQpB,OAPAA,GAAQwD,EAAKiM,EAAI,GAAG/J,eACpB2C,EAAOkM,EAAOxJ,QAAQ1C,KACtBogC,EAAWn3C,EAAEsY,MAAM2K,EAAOyT,GAAG3f,MAC7B/W,EAAEuhB,OAAO41B,EAAU,SAASh5B,GAC1B,MAAOA,GAAI,KAAOzP,IAEpBuU,EAAOyT,GAAG3f,KAAOogC,EACVn3C,EAAE2pC,KAAK1mB,EAAOyT,GAAG3f,KAAMrI,IAEhCuU,EAAO5W,IAAI,aAAc,SAASmB,EAAK0M,EAAW9T,EAAQmxC,GAuBxD,MAtBIn0B,IACFA,EAAKmT,QAEPtT,EAAO4zB,OAAQ,EACf5zB,EAAOu0B,aAAeD,EACtBt0B,EAAOw0B,YAAc72B,UAAU0yB,OAC/BqD,IACA1zB,EAAOyT,GAAK3Q,EAAO1E,WAAW,eAC5B5H,QAASS,EACTqgB,UACAn0B,OAAQA,EACRsxC,aAAa,EACb3gC,UAEFmM,EAAI9G,KAAK,iBAAiBoZ,KAAK7yB,EAAWuF,QAAQ,kBAClDgb,EAAI9G,KAAK,UAAUoZ,KAAK7yB,EAAWuF,QAAQ,mCAC3Cgb,EAAI9G,KAAK,cAAc7P,IAAI,IAC3B2W,EAAI9G,KAAK,iBAAiB3L,SAAS,UACnCyS,EAAI9G,KAAK,iBAAiB4P,YAAY,YACtC9I,EAAI9G,KAAK,0BAA0B4P,YAAY,YAC/C9I,EAAI9G,KAAK,4BAA4B4P,YAAY,YACjD/I,EAAO00B,kBAAmB,EACnB3rC,EAAgBuoB,KAAKrR,EAAK,WAC/B,MAAOD,GAAO00B,kBAAmB,MAGrC10B,EAAO5W,IAAI,cAAe,SAASmB,EAAKkpB,EAAI+gB,GA6B1C,MA5BIr0B,IACFA,EAAKmT,QAEPtT,EAAOyT,GAAKA,EACZzT,EAAOw0B,YAAc72B,UAAUC,OAAO42B,GACtCx0B,EAAO4zB,OAAQ,EACfF,IACAzzB,EAAI9G,KAAK,iBAAiBoZ,KAAK7yB,EAAWuF,QAAQ,gBAClDgb,EAAI9G,KAAK,UAAUoZ,KAAK7yB,EAAWuF,QAAQ,oCAC3Cgb,EAAI9G,KAAK,cAAc7P,IAAI,IACvBmqB,EAAG6T,YACLrnB,EAAI9G,KAAK,iBAAiB4P,YAAY,UACtC9I,EAAI9G,KAAK,iBAAiB3L,SAAS,cAEnCyS,EAAI9G,KAAK,iBAAiB3L,SAAS,UACnCyS,EAAI9G,KAAK,iBAAiB4P,YAAY,aAEpC0K,EAAGkhB,iBACL10B,EAAI9G,KAAK,0BAA0B3L,SAAS,YAE5CyS,EAAI9G,KAAK,0BAA0B4P,YAAY,YAE7C0K,EAAGmhB,mBACL30B,EAAI9G,KAAK,4BAA4B3L,SAAS,YAE9CyS,EAAI9G,KAAK,4BAA4B4P,YAAY,YAEnD/I,EAAO00B,kBAAmB,EACnB3rC,EAAgBuoB,KAAKrR,EAAK,WAC/B,MAAOD,GAAO00B,kBAAmB,MAGrClB,EAAoB,SAASz/B,GAC3B,GAAI8gC,EAIJ,OAHAA,GAAW93C,EAAEC,IAAIs2C,EAAiBn+B,OAAQ,SAAS2+B,GACjD,MAAOT,GAAmByB,OAAOhB,EAAWiB,KAAMhhC,EAAIuC,GAAI0J,EAAOyT,GAAGjd,QAAS,QAExE/W,EAAGoX,IAAIg+B,IAEhBpB,EAAoB,SAAS1/B,GAC3B,GAAI8gC,EAIJ,OAHAA,GAAW93C,EAAEC,IAAIu2C,EAAoBp+B,OAAQ,SAAS2+B,GACpD,MAAOT,GAAmB,UAAU,KAAMS,EAAWx9B,MAEhD7W,EAAGoX,IAAIg+B,IAEhBv0B,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAI+pC,GAAgB9jB,EAAgB3wB,EAAQT,CAG5C,IAFAmL,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,WA8BV,MA3BAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjD7K,GACE00C,qBAAqB,EACrBC,eAAe,GAEbl1B,EAAO4zB,OACT9zC,EAAU+iB,EAAMsO,OAAO,cAAenR,EAAOyT,IAC7CuhB,EAAiB,uBAEjBl1C,EAAU+iB,EAAMyI,KAAKtL,EAAOyT,IAAI,GAChCuhB,EAAiB,uBAEnBl1C,EAAQD,KAAK,SAAS4E,GACpB,MAAOgvC,GAAkBhvC,GAAM5E,KAAK,SAAUiF,GAC5C,MAAO,YACL,MAAO0uC,GAAkB/uC,KAE1B/H,OAAOmD,KAAK,SAAUiF,GACvB,MAAO,YAGL,MAFAosB,GAAeG,SACftoB,EAAgBkmB,MAAMhP,GACfyT,EAAI/Y,YAAYw6B,SAAS1wC,EAAK+R,QAAS/R,EAAKvE,IAAKK,GAAQV,KAAK,SAAS4zB,GAC5E,MAAO7C,GAAWxN,WAAW4xB,EAAgBvhB,OAGhD/2B,SAEEoD,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,GAFAysB,EAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,GAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACxB8G,EAAIgB,GAAG,SAAU,OAAQX,GACzBL,EAAIgB,GAAG,QAAS,SAAU,SAAShW,GAKjC,MAJAA,GAAME,iBACN6U,EAAO/N,OAAO,WACZ,MAAO+N,GAAOyT,GAAGgT,WAEZ19B,EAAgBkmB,MAAMhP,KAE/BA,EAAIm1B,QAAQ,SAASnqC,GACnB,GAAIonC,EAEJ,IADAA,EAAOpnC,EAAMunB,QAAUvnB,EAAMunB,QAAUvnB,EAAMqnC,MAChC,KAATD,EAEF,MADAtpC,GAAgBkmB,MAAMhP,GACfD,EAAO/N,OAAO,WACnB,MAAO+N,GAAOyT,GAAGgT,aAIhBzmB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,2BAA4B,UAAW,WAAY,eAAgB,aAAc,kBAAmB,aAAc,aAAc,aAAc,KAAM,uBAAwB2xB,IAE7LD,EAAiC,SAAS1uB,EAAO6Q,EAAKjrB,EAAYM,EAAiB+nB,EAAUhO,GAC3F,GAAI/C,EAoDJ,OAnDAA,GAAO,SAASC,EAAQC,EAAKgL,GAC3B,GAAI9K,GAAMG,EAAQ2Q,CA8ClB,OA7CA9Q,GAAO,KACPH,EAAO5W,IAAI,cAAe,SAASmB,EAAK0M,EAAW9T,GASjD,MARIgd,IACFA,EAAKmT,QAEPtT,EAAO,QACL/I,UAAWA,EACXo+B,SAAUlyC,EACVmyC,KAAM,IAEDvsC,EAAgBuoB,KAAKrR,KAE9BK,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAKpB,IAJAmL,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,WACtBgZ,qBAAqB,IAElBnB,EAAKW,WAeV,MAZAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU4zB,EAAI/Y,YAAY46B,WAAWv1B,EAAO,OAAO/I,UAAW+I,EAAO,OAAOq1B,SAAUr1B,EAAO,OAAOs1B,MACpGx1C,EAAQD,KAAK,SAAS8R,GAQpB,MAPAA,GAAS5U,EAAEC,IAAI2U,EAAOlN,KAAM,SAAUK,GACpC,MAAO,UAAS7H,GACd,MAAO6lB,GAAO1E,WAAW,cAAenhB,KAEzCP,OACHw0B,EAAeG,SACf5oB,EAAW2a,WAAW,sBAAuBzR,GACtC5I,EAAgBkmB,MAAMhP,KAExBngB,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,GAFAysB,EAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,UAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACxB8G,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,6BAA8B,UAAW,eAAgB,aAAc,kBAAmB,aAAc,WAAY0xB,IAErIH,EAA8B,SAASroC,EAAiBysC,EAAmC3jB,EAAWD,EAAUsC,GAC9G,GAAInU,EA+GJ,OA9GAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIu1B,GAAeC,EAAaC,EAAiB9sB,EAAQ+sB,EAAcC,EAAcC,CAyGrF,OAxGAD,GAAe,KACfD,EAAe,KACfE,EAAgBjkB,EAAUrvB,IAAI,mDAAmD,GACjFmzC,EAAkB,SAASrgC,GACzB,GAAIygC,EAOJ,OANAA,GAAmBzgC,EACnBygC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,MAGvF4lC,EAAc,SAASnkC,EAAMtI,GAC3B,GAAI8X,EAKJ,OAJAA,GAAW9X,EAAK2rB,kBAAkBohB,cAClCj1B,EAAW40B,EAAgB50B,GAC3BxP,EAAOA,EAAKykC,cACZzkC,EAAOokC,EAAgBpkC,GAChBxU,EAAE4Z,SAASoK,EAAUxP,IAE9BsX,EAAS,SAAS9N,EAAUxJ,GAC1B,GAAIhH,GAAKgoB,EAAMxc,EAAOkgC,CAiCtB,OAhCAlgC,GAAQhZ,EAAEsY,MAAM2K,EAAO/J,aAAa,GACpB,MAAZ8E,IACFhF,EAAQhZ,EAAE8G,OAAOkS,GACfO,GAAMyE,EAASzE,MAGnBP,EAAQhZ,EAAEqZ,OAAOL,EAAO,SAASyrB,GAC/B,MAAIA,GAAElrB,KAAO0J,EAAO/W,KAAKqN,GAChB,EAEAkrB,EAAElrB,KAGD,MAAR/E,IACFwE,EAAQhZ,EAAEqN,OAAO2L,EAAOhZ,EAAEm5C,QAAQR,EAAankC,KAEjD0kC,EAAel5C,EAAEwS,MAAMwG,EAAO,EAAG,GACjCkgC,EAAel5C,EAAEC,IAAIi5C,EAAc,SAAShtC,GAC1C,MAAOA,GAAKsrB,OAASL,EAAcO,UAAUxrB,KAE3C8R,GACEA,IACFA,EAASwZ,OAASL,EAAcO,UAAU1Z,IAG9CxQ,GACEwQ,SAAUA,EACVhF,MAAOhZ,EAAEwS,MAAMwG,EAAO,EAAG,GACzBogC,SAAUpgC,EAAMjM,OAAS,GAE3ByoB,EAAOujB,EAAcvrC,GACrBgoB,EAAOX,EAASW,GAAMvS,GACfC,EAAI9G,KAAK,qBAAqBoZ,KAAKA,IAE5CkjB,EAAgB,WAEd,MADAD,GAAkC1L,OAC3B/gC,EAAgBkmB,MAAMhP,IAE/BD,EAAO5W,IAAI,kBAAmB,SAASmB,EAAK6E,GAC1C,GAAIgnC,EAKJ,OAJAR,GAAexmC,EACfgnC,EAAehnC,EAAK8K,YACpB27B,EAAe71B,EAAOzJ,UAAU6/B,GAChCvtB,EAAOgtB,GACA9sC,EAAgBuoB,KAAKrR,GAAKpgB,KAAK,WAEpC,MADAogB,GAAI9G,KAAK,SAASwT,QACX6oB,EAAkCp5C,KAAK6jB,OAGlDD,EAAOrP,OAAO,cAAe,SAAS0lC,GACpC,GAAqB,MAAjBA,EAEF,MADAxtB,GAAOgtB,EAAcQ,GACdp2B,EAAI9G,KAAK,SAASwT,UAG7B1M,EAAIgB,GAAG,QAAS,oBAAqB,SAAShW,GAC5C,GAAIyV,EAIJ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B80B,IACOz1B,EAAO/N,OAAO,WAEnB,MADA+N,GAAOoD,WAAW,oBAAqB1C,EAAOjc,KAAK,WAAYmxC,GACxD51B,EAAOs2B,YAAc,SAGhCr2B,EAAIgB,GAAG,QAAS,sBAAuB,SAAShW,GAI9C,MAHAA,GAAME,iBACNF,EAAMwhC,kBACNgJ,IACOz1B,EAAO/N,OAAO,WAEnB,MADA+N,GAAOs2B,YAAc,KACdt2B,EAAOoD,WAAW,oBAAqB,KAAMwyB,OAGxD31B,EAAIgB,GAAG,QAAS,SAAU,SAAShW,GAGjC,MAFAA,GAAME,iBACNsqC,IACOz1B,EAAO/N,OAAO,WACnB,MAAO+N,GAAOs2B,YAAc,SAGzBt2B,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbvgB,YAAa,4CACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,kBAAmB,kBAAmB,oCAAqC,cAAe,WAAY,kBAAmBuxB,IAE1IS,EAA4B,SAAShvB,EAAO9Z,EAAiBysC,EAAmC3jB,EAAWD,EAAUsC,GACnH,GAAInU,EAqFJ,OApFAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIu1B,GAAec,EAAkB1tB,EAAQ+sB,EAAcE,CA+E3D,OA9EAF,GAAe,KACfE,EAAgBjkB,EAAUrvB,IAAI,mDAAmD,GACjF+zC,EAAmB,SAAShlC,GAC1B,GAAIilC,GAAczgC,CAiBlB,OAhBY,OAARxE,IACFA,EAAO,IAETilC,EAAe,SAASjlC,EAAMtI,GAC5B,GAAI8X,EACJ,SAAI60B,IAAgB74C,EAAEoc,KAAKy8B,EAAavP,SAAU,SAASppC,GACzD,MAAOA,KAAMgM,EAAKqN,QAIpByK,EAAW9X,EAAK2rB,kBAAkBohB,cAClCzkC,EAAOA,EAAKykC,cACLj5C,EAAE4Z,SAASoK,EAAUxP,KAE9BwE,EAAQhZ,EAAEsY,MAAM2K,EAAO/J,aAAa,GACpCF,EAAQhZ,EAAEqN,OAAO2L,EAAOhZ,EAAEm5C,QAAQM,EAAcjlC,KAGlDsX,EAAS,SAAS9S,GAChB,GAAIxL,GAAKgoB,EAAM0jB,CAaf,OAZAA,GAAel5C,EAAEwS,MAAMwG,EAAO,EAAG,GACjCkgC,EAAel5C,EAAEC,IAAIi5C,EAAc,SAAShtC,GAE1C,MADAA,GAAKsrB,OAASL,EAAcO,UAAUxrB,GAC/BA,IAETsB,GACEwQ,UAAU,EACVhF,MAAOkgC,EACPE,SAAUpgC,EAAMjM,OAAS,GAE3ByoB,EAAOujB,EAAcvrC,GACrBgoB,EAAOX,EAASW,GAAMvS,GACfC,EAAI9G,KAAK,oBAAoBoZ,KAAKA,IAE3CkjB,EAAgB,WAEd,MADAD,GAAkC1L,OAC3B/gC,EAAgBkmB,MAAMhP,IAE/BD,EAAO5W,IAAI,cAAe,SAASmB,EAAK6E,GACtC,GAAI2G,EAIJ,OAHA6/B,GAAexmC,EACf2G,EAAQwgC,IACR1tB,EAAO9S,GACAhN,EAAgBuoB,KAAKrR,GAAKpgB,KAAK,WAEpC,MADAogB,GAAI9G,KAAK,SAASwT,QACX6oB,EAAkCp5C,KAAK6jB,OAGlDD,EAAOrP,OAAO,cAAe,SAAS0lC,GACpC,GAAItgC,EACJ,IAAqB,MAAjBsgC,EAKJ,MAFAtgC,GAAQwgC,EAAiBF,GACzBxtB,EAAO9S,GACAkK,EAAI9G,KAAK,SAASwT,UAE3B1M,EAAIgB,GAAG,QAAS,oBAAqBrT,EAAS,IAAK,SAAS3C,GAC1D,GAAIyV,EAIJ,OAHA+0B,KACAxqC,EAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBX,EAAO/N,OAAO,WAEnB,MADA+N,GAAOs2B,YAAc,KACdt2B,EAAOoD,WAAW,gBAAiB1C,EAAOjc,KAAK,iBAG1Dwb,EAAIgB,GAAG,QAAS,SAAU,SAAShW,GAGjC,MAFAA,GAAME,iBACNsqC,IACOz1B,EAAO/N,OAAO,WACnB,MAAO+N,GAAOs2B,YAAc,SAGzBt2B,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbvgB,YAAa,sCACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,gBAAiB,UAAW,kBAAmB,oCAAqC,cAAe,WAAY,kBAAmBgyB,IAEnJF,EAAuC,SAAS5oC,EAAiB8oB,EAAWD,GAC1E,GAAI7R,EAIJ,OAHAA,GAAO,SAASC,EAAQC,EAAKgL,GAC3B,MAAOliB,GAAgBuoB,KAAKrR,KAG5Brf,YAAa,sDACbmf,KAAMA,EACNzP,OAAO,IAIXjU,EAAOwjB,UAAU,iCAAkC,kBAAmB8xB,KAErEhxC,KAAKjE,MA2BR,WACE,GAAI+5C,GAAQC,EAAiBr6C,EAAQqS,EAAYjS,EAAOqS,CAExDrS,GAAQC,KAAKD,MAEbiS,EAAahS,KAAKD,MAAMiS,WAExBI,EAAUpS,KAAKD,MAAMqS,QAErBzS,EAASiD,QAAQjD,OAAO,eAExBq6C,EAAkB,SAASC,EAAUluC,GACnC,GAAIsX,EAWJ,OAVAA,GAAO,SAASC,EAAQC,EAAKC,GAK3B,MAJAy2B,GAASC,QAAQ,WAEf,MADAnN,GAAExH,SAAS+H,MAAMx8B,SAAS,iBACnByS,EAAIzS,SAAS,YAEfmpC,EAASE,MAAM,WAEpB,MADApN,GAAExH,SAAS+H,MAAMjhB,YAAY,iBACtB9I,EAAI8I,YAAY,cAIzBhJ,KAAMA,IAIV1jB,EAAOwjB,UAAU,YAAa,WAAY,aAAc62B,IAExDD,EAAS,SAAShuC,GAChB,GAAIquC,GAAW1zC,EAAQ2zC,EAAkBzlB,EAAM0lB,EAAYC,EAAc7rC,EAAO8rC,CA8ChF,OA7CA9zC,IACE+zC,QAAS,KAEX7lB,GAAO,EACP4lB,EAAgB,EAChBD,EAAe,EACfF,EAAmB,EACnBC,EAAa,SAASI,GACpB,GAAIC,GAAMC,EAASC,CAqBnB,OApBa,OAATH,IACFA,GAAQ,GAENF,IACFK,EAAe,EACVH,IACHE,GAAU,GAAI75C,OAAOC,UACrB25C,EAAOC,EAAUJ,EACbG,EAAOj0C,EAAO+zC,UAChBI,EAAen0C,EAAO+zC,QAAUE,IAGpCvoC,EAAQyoC,EAAc,WAGpB,MAFA9uC,GAAW2a,WAAW,cACtBkO,GAAO,EACA10B,OAAOskB,gBAAiB,KAGnCg2B,EAAgB,EAChBD,EAAe,EACRF,EAAmB,GAE5BD,EAAY,WACV,GAAIU,EACJ,OAAOA,GAAe9nB,YAAY,WAChC,GAAIqnB,GAAqC,IAAjBE,EAEtB,MADAD,KACOjnB,cAAcynB,IAErB,KAENpsC,EAAQ,WAGN,MAFA8rC,IAAgB,GAAIz5C,OAAOC,UAC3B+K,EAAW2a,WAAW,gBACfkO,GAAO,IAGd0lB,WAAYA,EACZ1lB,KAAM,WACJ,MAAOA,IAETlmB,MAAO,SAASqsC,GAId,GAHY,MAARA,IACFA,GAAO,IAEJnmB,IACHlmB,IACIqsC,GACF,MAAOX,MAIbF,QAAS,SAASlqC,GAChB,MAAOjE,GAAWW,IAAI,eAAgBsD,IAExCmqC,MAAO,SAASnqC,GACd,MAAOjE,GAAWW,IAAI,aAAcsD,IAEtCtI,WAAY,WACV,MAAO6yC,MAET1yC,YAAa,WAEX,MADA0yC,KACOF,GAAmB,GAAIt5C,OAAOC,aAK3C+4C,EAAO35B,SAAW,cAElBzgB,EAAO0H,QAAQ,WAAY0yC,IAE1B91C,KAAKjE,MA2BR,WACE,GAAIg7C,GAAkBC,EAAkBt7C,EACtCkT,KAAWA,KAEblT,GAASiD,QAAQjD,OAAO,eAExBs7C,EAAmB,SAAS/lB,GAC1B,GAAI/E,EAEJ,OADAA,GAAU,sCAAwCjwB,OAAOmJ,SAAW,+CAC7D,WACL,GAAIuZ,EAoEJ,OAnEAA,IACEs4B,UACEl3B,OAAQ,KACRpQ,MAAO,KACPmZ,WACA3a,QAAS,EACTxN,SAAU,MAEZof,OAAQ,SAASA,GAEf,MADApB,GAAQs4B,SAASl3B,OAASA,EACnBpB,GAEThP,MAAO,SAASA,GAEd,MADAgP,GAAQs4B,SAAStnC,MAAQA,EAClBgP,GAEThe,SAAU,SAASA,GAEjB,MADAge,GAAQs4B,SAASt2C,SAAWA,EACrBge,GAETu4B,cAAe,WACb,GAAIC,EAGJ,OAFAA,GAAW,GAAKjrC,UAAU/C,OAASyF,EAAM5O,KAAKkM,UAAW,MACzDyS,EAAQs4B,SAASnuB,QAAUquB,EACpBx4B,GAETxQ,QAAS,SAASA,GAEhB,MADAwQ,GAAQs4B,SAAS9oC,QAAUA,EACpBwQ,GAETlU,MAAO,WACL,GAAIsV,GAAQq3B,CAeZ,OAdAr3B,GAASpB,EAAQs4B,SAASl3B,OAC1BpB,EAAQs4B,SAASnuB,QAAQzsB,IAAI,SAASyS,GACpC,MAAOiR,GAAOqI,YAAYtZ,KAEvBiR,EAAOykB,SAAS,YAAe7lB,EAAQs4B,SAASt2C,WACnDge,EAAQs4B,SAASt2C,SAAWof,EAAO6R,QAErCwlB,EAAYlmC,WAAW,WACrB,IAAK6O,EAAOykB,SAAS,WAEnB,MADAzkB,GAAOlT,SAAS,WACTkT,EAAO6R,KAAK1F,IAEnBvN,EAAQs4B,SAAS9oC,SACrBwQ,EAAQs4B,SAASG,UAAYA,EACtBz4B,GAET+R,OAAQ,WACN,GAAIwmB,GAAen3B,EAAQq3B,CAe3B,OAdAr3B,GAASpB,EAAQs4B,SAASl3B,OAC1Bq3B,EAAYz4B,EAAQs4B,SAASG,UACzBA,IACFhmC,aAAagmC,GACbF,EAAgBv4B,EAAQs4B,SAASnuB,QACjCouB,EAAc76C,IAAI,SAASyS,GACzB,MAAO6P,GAAQs4B,SAASl3B,OAAOlT,SAASiC,KAE1CiR,EAAO6R,KAAKjT,EAAQs4B,SAASt2C,UAC7Bof,EAAOqI,YAAY,WACfzJ,EAAQs4B,SAAStnC,OACnBshB,EAASlR,EAAOgiB,YAAYpjB,EAAQs4B,SAAStnC,QAG1CgP,MAOfq4B,EAAiB76B,SAAW,YAE5BzgB,EAAO0H,QAAQ,aAAc4zC,GAE7BD,EAAmB,SAAS5mB,GAC1B,GAAI/Q,EAeJ,OAdAA,GAAO,SAASC,EAAQC,EAAK1P,GAC3B,GAAI2gB,GAAgB5vB,CAGpB,OAFA4vB,GAAiB,KACjB5vB,EAAW2e,EAAIsS,OACRvS,EAAOrP,OAAOJ,EAAKynC,UAAW,SAAUlzC,GAC7C,MAAO,UAASmzC,GACd,MAAIA,GACK/mB,EAAiBJ,IAAWpQ,OAAOT,GAAKnR,QAAQ,KAAKxN,SAASA,GAAUgP,MAAM0P,GAAQ5U,QACpF8lB,EACFA,EAAeG,SADjB,SAIR30B,SAGH0rC,SAAU,MACVroB,KAAMA,IAIV1jB,EAAOwjB,UAAU,aAAc,aAAc63B,KAE5C/2C,KAAKjE,MA2BR,WACE,GAAIw7C,GAA4BC,EAAmBzqC,EAAUE,EAAUvR,EAAQI,CAE/EA,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,eAExB87C,EAAoB,SAASt1B,EAAOgP,GAclC,GAAI9R,GAAMze,CAuDV,OAtDAA,GAAWuwB,EAAUrvB,IAAI,yCAAyC,GAClEud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOtL,EAAQ4K,CAwCnB,OAvCAU,GAAQlU,EAAIpf,aACZgoB,EAAS,SAAS4K,GAChB,GAAIsL,GAAcqZ,EAAaC,CAI/B,IAHAA,EAAoBp4B,EAAI9G,KAAK,cAC7Bi/B,EAAcn4B,EAAI9G,KAAK,8BACvB4lB,EAAe/e,EAAO+e,aAClBA,EAAatL,EAAGtwB,QAElB,MADAi1C,GAAY7mC,KAAKwtB,EAAatL,EAAGtwB,QAAQ8N,MAClConC,EAAkBjT,IAAI,QAASrG,EAAatL,EAAGtwB,QAAQmW,QAGlE2G,EAAIgB,GAAG,QAAS,aAAc,SAAShW,GAGrC,MAFAA,GAAME,iBACNF,EAAMwhC,kBACCxsB,EAAI9G,KAAK,eAAes1B,UAAUnd,SAE3CrR,EAAIgB,GAAG,QAAS,UAAWrT,EAAS,IAAM,SAAS3C,GACjD,GAAIyV,GAAQ+S,CAQZ,OAPAxoB,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B8S,EAAKzT,EAAOtP,MAAMwP,EAAOo4B,YACzB7kB,EAAGtwB,OAASud,EAAOjc,KAAK,aACxBokB,EAAO4K,GACPxT,EAAI9G,KAAK,eAAes1B,UAAUxf,QAC3BjP,EAAO/N,OAAO,WACnB,MAAO4Q,GAAMyI,KAAKmI,GAAI5zB,KAAK,WACzB,MAAOmgB,GAAOtP,MAAMwP,EAAOq4B,iBAIjCv4B,EAAO5W,IAAI,qBAAsB,WAC/B,MAAOyf,GAAO7I,EAAOtP,MAAMwP,EAAOo4B,eAEpCt4B,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEbsS,EAAKzT,EAAOtP,MAAMwP,EAAOo4B,YACzBzvB,EAAO4K,GACA/lB,EAASsS,EAAQ,UAAW,SAASxJ,GAC1C,GAAI+b,EAKJ,IAJAA,EAAOjxB,GACL0Z,SAAYxE,EAAQwoB,cAEtB/e,EAAImpB,OAAO7W,GACPvS,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,kBAExC,MADAwc,GAAI6U,OAAO,SACJ7U,EAAI9G,KAAK,KAAK3L,SAAS,qBAKlCuS,KAAMA,IAIV1jB,EAAOwjB,UAAU,cAAe,UAAW,cAAes4B,IAE1DD,EAA6B,SAASr1B,EAAOgP,GAc3C,GAAI9R,GAAMy4B,EAAmBC,CAyD7B,OAxDAD,GAAoB3mB,EAAUrvB,IAAI,mDAAmD,GACrFi2C,EAAmB,SAASx4B,EAAKoS,EAAMsM,GACrC,GAAI+Z,GAAeC,CAGnB,IAFAA,EAAsB14B,EAAI9G,KAAK,cAC/Bu/B,EAAgBz4B,EAAI9G,KAAK,kCACrBwlB,EAAetM,EAAKlvB,QAEtB,MADAu1C,GAAcnnC,KAAKotB,EAAetM,EAAKlvB,QAAQ8N,MACxC0nC,EAAoBvT,IAAI,QAASzG,EAAetM,EAAKlvB,QAAQmW,QAGxEyG,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOC,EAAUC,EAAahC,CAyClC,OAxCA8B,GAAQlU,EAAIpf,aACZwxB,EAAOrS,EAAOtP,MAAMwP,EAAO04B,qBAC3BvkB,EAAcrU,EAAOtP,MAAMwP,EAAOmU,aAClCD,GAAYC,EACZpU,EAAIgB,GAAG,QAAS,eAAgB,SAAShW,GAGvC,MAFAA,GAAME,iBACNF,EAAMwhC,kBACCxsB,EAAI9G,KAAK,eAAes1B,UAAUnd,SAE3CrR,EAAIgB,GAAG,QAAS,UAAWrT,EAAS,IAAM,SAAS3C,GACjD,GAAIyV,EAOJ,IANAzV,EAAME;AACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B0R,EAAKlvB,OAASud,EAAOjc,KAAK,aAC1Bwb,EAAI9G,KAAK,eAAes1B,UAAUxf,QAClCwpB,EAAiBx4B,EAAKoS,EAAMrS,EAAO2e,gBAC/BvK,EACF,MAAOpU,GAAO/N,OAAO,WACnB,MAAO4Q,GAAMyI,KAAK+G,GAAMxyB,KAAK,WAE3B,MADAmgB,GAAOtP,MAAMwP,EAAOq4B,UACbv4B,EAAOgT,MAAM,uCAK5BhT,EAAOrP,OAAOuP,EAAO04B,oBAAqB,WAExC,MADAvmB,GAAOrS,EAAOtP,MAAMwP,EAAO04B,qBACpBH,EAAiBx4B,EAAKoS,EAAMrS,EAAO2e,kBAE5CliC,EAAMiR,SAASsS,EAAQ,UAAW,SAASxJ,GAKzC,GAJAyJ,EAAImpB,OAAOoP,GACTx9B,SAAYxE,EAAQooB,iBAEtB6Z,EAAiBx4B,EAAKoS,EAAMrS,EAAO2e,gBAC/BnoB,EAAQgT,eAAe/lB,QAAQ,oBAEjC,MADAwc,GAAI6U,OAAO,SACJ7U,EAAI9G,KAAK,KAAK3L,SAAS,mBAG3BwS,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,uBAAwB,UAAW,cAAeq4B,IAEnEzO,EAAE/8B,GAAG+hC,QAAU,WACb,GAAIxuB,GAAKgP,EAAO3rB,EAAUu1C,EAAcC,EAAWxnB,CAuEnD,OAtEArR,GAAMvjB,KACNo8C,EAAY,SAAUh0C,GACpB,MAAO,YACL,GAAIi0C,GAAeC,EAAaC,EAAcC,EAAYC,EAAcC,EAAYC,EAAUC,EAAWC,EAASC,CAmBlH,OAlBAv5B,GAAImlB,KACFqU,QAAW,QACXC,WAAc,WAEhBR,EAAazP,EAAE7sC,QAAQ+8C,YACvBZ,EAAgBG,EAAazP,EAAE7sC,QAAQuyC,SACvCgK,EAAe1P,EAAE7sC,QAAQ2M,QACzB0vC,EAAeE,EACfH,EAAc,EACdO,EAAUt5B,EAAIgvB,SAASC,IACvBkK,EAAaG,EAAUt5B,EAAIkvB,SAC3BqK,EAAYv5B,EAAI1W,QAChB8vC,EAAWp5B,EAAIgvB,SAAS2K,KACxBN,EAAYr5B,EAAIgvB,SAAS2K,KAAOJ,EAChCv5B,EAAImlB,KACFqU,QAAW,OACXC,WAAc,YAERN,GAAcL,GAAmBQ,GAAWL,GAAgBG,GAAYL,GAAiBM,GAAaL,IAE/Gv8C,MACHm8C,EAAe,SAAU/zC,GACvB,MAAO,UAASonB,GAOd,MANIA,IACFA,EAAQvrB,KAAKsf,GAEfA,EAAI45B,QAAQ,WACV,MAAO55B,GAAI8I,YAAY,UAAUA,YAAY,SAExC9I,EAAIkB,IAAI,iBAEhBzkB,MACH4G,EAAW,SAAUwB,GACnB,MAAO,YACL,MAAO2kC,GAAE,mBAAmBpjC,KAAK,WAC/B,MAAOojC,GAAE/sC,MAAMk2C,QAAQ,mBAG1Bl2C,MACH40B,EAAO,SAAUxsB,GACf,MAAO,UAASonB,GACd,MAAIjM,GAAIklB,SAAS,UACRlW,KAEP3rB,IACKw1C,KACH74B,EAAIzS,SAAS,OAEfyS,EAAI65B,OAAO,WAGT,MAFA75B,GAAIzS,SAAS,UACbi8B,EAAExH,SAAS+H,MAAM7oB,IAAI,WACdsoB,EAAExH,SAAS+H,MAAMG,IAAI,gBAAiB,WAC3C,MAAO7mC,SAGJ2c,EAAIgB,GAAG,cAAe,SAAS3W,GACpC,MAAOuuC,GAAa3sB,QAIzBxvB,MACHuyB,EAAQ,SAAUnqB,GAChB,MAAO,YACL,MAAOmb,GAAI2yB,QAAQ,iBAEpBl2C,OAED40B,KAAMA,EACNrC,MAAOA,EACP3rB,SAAUA,KAIb3C,KAAKjE,MA2BR,WACE,GAAIq9C,GAAyB19C,EAAQI,CAErCA,GAAQC,KAAKD,MAEbJ,EAASiD,QAAQjD,OAAO,eAExB09C,EAA0B,SAASvxC,EAAMpF,GACvC,GAAI42C,EAGJ,OAFAt9C,MAAK0G,OAASA,EACd42C,EAAct9C,KAAK0G,OAAOZ,IAAI,cAAe,MACzCw3C,GACFxxC,EAAKW,MAAM,wCACX8wC,MAAM72C,OAAO42C,GAAaE,UACnB,SAASvmC,EAAWwmC,GAEzB,MADA3xC,GAAKjF,MAAMqJ,MAAMpE,EAAMqE,WAChBotC,MAAMG,iBAAiBzmC,MAGhCnL,EAAKW,MAAM,gDACJ,SAASwK,EAAWwmC,GACzB,MAAO3xC,GAAKjF,MAAMqJ,MAAMpE,EAAMqE,cAKpCxQ,EAAO0H,QAAQ,qBAAsB,OAAQ,YAAag2C,KAEzDp5C,KAAKjE,MA2BR,WACE,GAAI29C,GAA8BC,EAAoBC,EAAe7sC,EAAUrR,EAAQI,EAAOwS,EAC5FxL,KAAaA,SAAW,SAAS2L,GAAQ,IAAK,GAAIC,GAAI,EAAGC,EAAI5S,KAAKoN,OAAQuF,EAAIC,EAAGD,IAAO,GAAIA,IAAK3S,OAAQA,KAAK2S,KAAOD,EAAM,MAAOC,EAAK,UAEzI5S,GAAQC,KAAKD,MAEbwS,EAAOvS,KAAKD,MAAMwS,KAElBvB,EAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,eAExBk+C,EAAgB,WACd,GAAIC,GAAWz6B,EAAM06B,CAwBrB,OAvBAD,GAAY,SAASvM,GACnB,MAAIlxC,GAAE29C,QAAQzM,GACLA,EAAE5wC,KAAK,MAET,IAETo9C,EAAS,SAASxM,GAChB,GAAIt8B,EACJ,OAAKs8B,IAGLt8B,EAAS5U,EAAEkxC,EAAEtkC,MAAM,MAAM3M,IAAI,SAASC,GACpC,MAAOF,GAAEkS,KAAKhS,KAET0U,EAAOlG,aAEhBsU,EAAO,SAASC,EAAQC,EAAKC,EAAQiU,GAGnC,MAFAA,GAAMwmB,YAAY12C,KAAKu2C,GACvBrmB,EAAMymB,SAAS32C,KAAKw2C,GACbz6B,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIb+R,QAAS,UACTnT,KAAMA,IAIV1jB,EAAOwjB,UAAU,SAAU06B,GAE3BF,EAA+B,WAC7B,GAAIt6B,GAAMze,CAoBV,OAnBAA,GAAWvE,EAAEuE,SAAS,kbACtBye,EAAO,SAASC,EAAQC,EAAKC,EAAQiU,GACnC,GAAItL,EAaJ,OAZAA,GAAS,SAAS/U,GAChB,GAAIye,EAIJ,OAHAA,GAAOjxB,GACLwS,KAAMA,IAEDmM,EAAIsS,KAAKA,IAElBvS,EAAOrP,OAAOuP,EAAO26B,sBAAuB,SAAS/mC,GACnD,GAAY,MAARA,EACF,MAAO+U,GAAO/U,KAGXkM,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyBw6B,GAE1CC,EAAqB,SAAS5mB,EAAK7B,EAAWD,GAC5C,GAAIkpB,GAAWC,EAAWC,EAAcj7B,EAAMk7B,CAuH9C,OAtHAF,GAAY,GACZD,EAAY,IACZG,EAAeppB,EAAUrvB,IAAI,oCAAoC,GACjEw4C,EAAe,KACfj7B,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIo4B,GAAUC,EAAaC,EAAgBC,EAAYC,EAAYC,EAAcC,EAAgBC,CA6GjG,OA5GAA,GAAgB1+C,EAAE2+C,IAAIx7B,EAAQ,iBAC9Bm7B,EAAa,SAASvnC,EAAM6nC,GAC1B,GAAIriC,GAAO/O,EAAKgoB,CAchB,OAbkB,OAAdopB,IACFA,MAEFriC,EAASmiC,EAAgC,KAAhBE,EAAWxd,GACpC5zB,GACEuJ,KAAM/W,EAAEC,IAAI8W,EAAM,SAASqqB,GACzB,OACEltB,KAAMktB,EACNyd,MAAOtiC,EAAQ,0BAA4BA,EAAQ,OAIzDiZ,EAAOX,EAASqpB,EAAa1wC,IAAMyV,GAC5BC,EAAI9G,KAAK,mBAAmBoZ,KAAKA,IAE1CipB,EAAiB,WACf,MAAOv7B,GAAI9G,KAAK,SAAS4P,YAAY,WAEvCqyB,EAAiB,WACf,MAAOn7B,GAAI9G,KAAK,SAAS3L,SAAS,WAEpC8tC,EAAa,WAEX,MADAr7B,GAAI9G,KAAK,SAAS7P,IAAI,IACf0xC,EAAa/rB,SAEtBisB,EAAW,SAASzvC,GAClB,GAAIqI,EAEJ,IADArI,EAAQwD,EAAKxD,EAAM0F,eACE,IAAjB1F,EAAM3B,OAaV,MAVAgK,GAAO/W,EAAEsY,MAAMyN,EAAO2P,aAAa,GACvB,MAAR3e,IACFA,MAEErQ,EAAQ9C,KAAKmT,EAAMrI,GAAS,GAC9BqI,EAAK7P,KAAKwH,GAEZuU,EAAO/N,OAAO,WACZ,MAAO6Q,GAAOoqB,cAAcp5B,KAEvBsnC,KAETD,EAAc,SAAS1vC,GACrB,GAAIqI,EAEJ,IADArI,EAAQwD,EAAKxD,EAAM0F,eACE,IAAjB1F,EAAM3B,OAKV,MAFAgK,GAAO/W,EAAEsY,MAAMyN,EAAO2P,aAAa,GACnC3e,EAAO/W,EAAE2pC,KAAK5yB,EAAMrI,GACbuU,EAAO/N,OAAO,WACnB,MAAO6Q,GAAOoqB,cAAcp5B,MAGhCynC,EAAe,WACb,GAAI9vC,EAGJ,OAFAA,GAAQwU,EAAI9G,KAAK,SAAS7P,MAC1B4xC,EAASzvC,GACF6vC,KAETr7B,EAAIgB,GAAG,WAAY,QAAS,SAAShW,GACnC,GAAIyV,EAEJ,OADAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC3B1V,EAAMunB,UAAYuoB,GACpB9vC,EAAME,iBACCowC,KACyC,MAAvCzoC,OAAO+oC,aAAa5wC,EAAMunB,UACnCvnB,EAAME,iBACCowC,KAEH76B,EAAOpX,MAAMQ,OACR0xC,IAEAJ,MAIbn7B,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAEhC,MADAA,GAAME,iBACCowC,MAETt7B,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GACtC,GAAIyV,GAAQjV,CAIZ,OAHAR,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BlV,EAAQiV,EAAO8tB,SAAS,aAAaj9B,OAC9B4pC,EAAY1vC,KAErBiC,EAASsS,EAAQ,UAAW,SAASxJ,GACnC,GAAIvD,EAKJ,OAJAA,GAAQgN,EAAI9G,KAAK,SACjB6hC,EAAe,GAAIc,aAAY7oC,EAAM,IACnC0F,KAAM5b,EAAEmT,KAAKsG,EAAQ49B,eAEhBnhC,EAAMgO,GAAG,6BAA8B,WAE5C,MADAi6B,GAASjoC,EAAM3J,OACR2J,EAAM3J,IAAI,QAGrB0W,EAAOrP,OAAOuP,EAAO+S,QAAS,SAASnf,GACrC,GAAI5T,GAAKy7C,CAET,OADAA,IAAwC,OAAzBz7C,EAAM8f,EAAOxJ,SAAmBtW,EAAIk0C,YAAc,YAC1DiH,EAAWvnC,EAAM6nC,KAEnB37B,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNmT,QAAS,UACTtyB,YAAa,gCAIjBvE,EAAOwjB,UAAU,eAAgB,eAAgB,cAAe,WAAYy6B,KAE3E35C,KAAKjE,MA2BR,WACE,GAAIq/C,GAAkBruC,EAAUE,EAAUvR,EAAQI,CAElDA,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,gBAExB0/C,EAAmB,SAASl5B,EAAO9d,EAAU2uB,EAAKjrB,EAAYM,EAAiB+nB,EAAUpxB,GACvF,GAAIqgB,EA6LJ,OA5LAA,GAAO,SAASC,EAAQC,EAAKgL,GAC3B,GAAI+wB,GAAc77B,EAAM87B,EAAeC,EAAW59B,EAAQ69B,EAAa77B,EAAQ87B,CAyL/E,OAxLAF,IAAY,EACZF,GAAe,EACf77B,EAAO,KACPH,EAAOq8B,aACPD,EAAW,KACXD,EAAc,WAIZ,MAHIh8B,IACFA,EAAKmT,QAEAtT,EAAOq8B,WACZ7lC,QAAS,KACTvF,KAAM,KACNqrC,gBAAiB,KACjBC,iBAAkB,OAGtBj8B,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAI+pC,GAAgB9jB,EAAgBsrB,EAAeF,EAAiBD,EAAWtyC,EAAYjK,EAASmxB,EAAcvQ,CAMlH,OALAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B5W,EAAarK,EAAWuF,QAAQ,4BAChCgsB,EAAehR,EAAI9G,KAAK,kBACxBgH,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,YAKVo7B,GAAY,EACZlH,EAAiB,KACjBsH,EAAkB7S,EAAE,eAAengC,MACnCkzC,EAAgB/S,EAAE,aAAangC,MAC3B0yC,GACFK,EAAY/8C,QAAQm9C,KAAKz8B,EAAOq8B,WAChCA,EAAUC,gBAAkB71C,OAAO61C,EAAiBvyC,GAAYye,OAAO,cACvE6zB,EAAUE,iBAAmB91C,OAAO+1C,EAAezyC,GAAYye,OAAO,cACtE1oB,EAAU+iB,EAAMsO,OAAO,aAAckrB,GACrCrH,EAAiB,8BAEjBqH,EAAYr8B,EAAOq8B,UAAUK,YAC7BL,EAAUC,gBAAkB71C,OAAO61C,EAAiBvyC,GAAYye,OAAO,cACvE6zB,EAAUE,iBAAmB91C,OAAO+1C,EAAezyC,GAAYye,OAAO,cACtE1oB,EAAU+iB,EAAMyI,KAAK+wB,GACrBrH,EAAiB,2BAEnB9jB,EAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAQD,KAAK,SAAS4E,GAiBpB,MAhBAysB,GAAeG,SACX2qB,IACFh8B,EAAO28B,gBAAkB,GAE3B38B,EAAO48B,QAAU7/C,EAAEC,IAAIgjB,EAAO48B,QAAS,SAAS1jC,GAC9C,MAAIA,GAAG5C,KAAO7R,EAAK6R,GACV7R,EAEAyU,IAGY,8BAAnB87B,GAAkDoH,EACpD3zC,EAAW2a,WAAW4xB,EAAgBvwC,EAAM23C,GAE5C3zC,EAAW2a,WAAW4xB,EAAgBvwC,GAEjCsE,EAAgBkmB,MAAMhP,KAExBngB,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,MAFAysB,GAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACAzc,EAASG,OAAO,cAAeT,EAAK+c,gBAClC/c,EAAKo4C,QACP93C,EAASG,OAAO,cAAeT,EAAKo4C,QAAQ,IAD9C,WA9CPX,GAAY,MACZj8B,GAAI9G,KAAK,qBAAqB3L,SAAS,gBAkD1C9Q,OACH4hB,EAAS,WACP,GAAIoD,GAAS1gB,CAGb,OAFAA,GAAQtB,EAAWuF,QAAQ,gCAC3Byc,EAAU1B,EAAOq8B,UAAUprC,KACpBlM,EAAS+tB,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GACzD,MAAO,UAASiuB,GACd,GAAI3S,GAASC,CAWb,OAVAA,GAAY,WAIV,MAHA0S,GAAY1B,SACZrR,EAAO88B,mBAAqB,EAC5B/zC,EAAgBkmB,MAAMhP,GACfxX,EAAW2a,WAAW,4BAA6BpD,EAAOq8B,YAEnEj8B,EAAU,WAER,MADA2S,GAAY1B,QAAO,GACZtsB,EAASG,OAAO,UAElB2d,EAAMvE,OAAO0B,EAAOq8B,WAAWx8C,KAAKwgB,EAAWD,KAEvD1jB,QAELu/C,EAAgB,WACd,GAAIc,GAAaC,CAOjB,OANAD,GAAchgD,EAAEqN,OAAO4V,EAAO48B,QAAS,SAAStX,GAC9C,OAAQA,EAAO2X,SAEjBD,EAAgBjgD,EAAEqZ,OAAO2mC,EAAa,SAASzX,GAC7C,MAAO7+B,QAAO6+B,EAAOiX,iBAAkB,cAAc/zB,OAAO,OAEvDw0B,EAAcA,EAAclzC,OAAS,IAE9CkW,EAAO5W,IAAI,oBAAqB,SAAS6B,EAAOgM,EAAWimC,GACzD,GAAIC,GAAiBC,EAAgBC,EAAYC,EAAmBvzC,EAAYwH,CAuChF,OAtCA6qC,GAAWc,EACXf,IACAh8B,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACxB6X,EAAKmT,QACL0oB,GAAe,EACfjyC,EAAarK,EAAWuF,QAAQ,4BAChC+a,EAAOq8B,UAAU7lC,QAAUS,EAC3B+I,EAAOq8B,UAAUprC,KAAO,KACxB+O,EAAOq8B,UAAUnyB,KAAO,KACxBmzB,EAAapB,IACbmB,EAAiB32C,SACb42C,EACFD,EAAiB32C,OAAO42C,EAAWd,kBAC1Bv8B,EAAOq8B,UAAUC,kBAC1Bc,EAAiB32C,OAAOuZ,EAAOq8B,UAAUC,kBAE3Ct8B,EAAOq8B,UAAUC,gBAAkBc,EAAe50B,OAAOze,GACzDozC,EAAkB12C,SAASkJ,IAAI,EAAG,SAC9B0tC,EACFF,EAAkB12C,OAAO42C,EAAWd,kBAAkB5sC,IAAI,EAAG,SACpDqQ,EAAOq8B,UAAUE,mBAC1BY,EAAkB12C,OAAOuZ,EAAOq8B,UAAUE,mBAE5Cv8B,EAAOq8B,UAAUE,iBAAmBY,EAAgB30B,OAAOze,GAC3DuzC,EAAoBr9B,EAAI9G,KAAK,qBAC0B,OAApC,MAAdkkC,EAAqBA,EAAWpsC,KAAO,UAC1CM,EAAO7R,EAAWuF,QAAQ,6CACxBo4C,WAAYA,EAAWpsC,OAEzBqsC,EAAkB/qB,KAAKhhB,IAEzB0O,EAAI9G,KAAK,kBAAkB3L,SAAS,UACpC+D,EAAO7R,EAAWuF,QAAQ,kCAC1Bgb,EAAI9G,KAAK,UAAU5H,KAAKA,GACxBA,EAAO7R,EAAWuF,QAAQ,iBAC1Bgb,EAAI9G,KAAK,iBAAiB5H,KAAKA,GAC/BxI,EAAgBuoB,KAAKrR,GACrBA,EAAI9G,KAAK,gBAAgBwT,QAClB1M,EAAI9G,KAAK,qBAAqB4P,YAAY,eAEnD/I,EAAO5W,IAAI,kBAAmB,SAASmB,EAAK+6B,GAC1C,GAAIiY,GAAYxzC,EAAYuhB,CAgB5B,OAfA6wB,KACAH,GAAe,EACfjyC,EAAarK,EAAWuF,QAAQ,4BAChC+a,EAAO/N,OAAO,WAGZ,MAFA+N,GAAOq8B,UAAY/W,EAAOoX,YAC1B18B,EAAOq8B,UAAUC,gBAAkB71C,OAAOuZ,EAAOq8B,UAAUC,iBAAiB9zB,OAAOze,GAC5EiW,EAAOq8B,UAAUE,iBAAmB91C,OAAOuZ,EAAOq8B,UAAUE,kBAAkB/zB,OAAOze,KAE9FkW,EAAI9G,KAAK,kBAAkB4P,YAAY,UACvCw0B,EAAa79C,EAAWuF,QAAQ,uBAChCgb,EAAI9G,KAAK,UAAU5H,KAAKgsC,GACxBjyB,EAAO5rB,EAAWuF,QAAQ,eAC1Bgb,EAAI9G,KAAK,iBAAiB5H,KAAK+Z,GAC/BviB,EAAgBuoB,KAAKrR,GACrBA,EAAI9G,KAAK,gBAAgBwT,QAAQkG,SAC1B5S,EAAI9G,KAAK,qBAAqB3L,SAAS,eAEhDyS,EAAIgB,GAAG,QAAS,eAAgB,SAAShW,GACvC,MAAIgV,GAAI9G,KAAK,gBAAgB7P,MAAMQ,OAAS,GAAKoyC,EACxCj8B,EAAI9G,KAAK,qBAAqB3L,SAAS,aAEvCyS,EAAI9G,KAAK,qBAAqB4P,YAAY,eAGrD9I,EAAIgB,GAAG,SAAU,OAAQX,GACzBL,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GAEzC,MADAA,GAAME,iBACCmT,MAET0B,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAENg7B,MAGPp8B,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyB,UAAW,aAAc,eAAgB,aAAc,kBAAmB,aAAc,aAAck8B,KAE/Ip7C,KAAKjE,MA2BR,WACE,GAAI8gD,GAAmBC,EAAkBC,EAA+BC,EAA+BC,EAA0BC,EAAmBC,EAA+BrwC,EAAaC,EAAU7Q,EAAcqR,EAASK,EAAOlS,EAAQoS,EAAYhS,EAAOqS,EAASE,EAC1QzP,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBS,EAAatS,KAAKD,MAAMuS,WAExBP,EAAa/R,KAAKD,MAAMgS,WAExBf,EAAWhR,KAAKD,MAAMiR,SAEtBQ,EAAUxR,KAAKD,MAAMyR,QAErBY,EAAUpS,KAAKD,MAAMqS,QAErBrB,EAAc/Q,KAAKD,MAAMgR,YAEzB5Q,EAAeH,KAAKD,MAAMI,aAE1BR,EAASiD,QAAQjD,OAAO,gBAExBmhD,EAAoB,SAAU1wC,GAa5B,QAAS0wC,GAAkBzyB,EAAQhO,EAAW6N,EAAMigB,EAAS/zB,EAAIinC,EAAS5wC,EAAGmK,EAAUzO,EAAgB80B,EAASqgB,EAAQC,EAAWxiC,EAAWwjB,EAASif,EAAKC,EAAgBr7C,EAAsB0V,EAAS4B,EAA4Bpa,GACrO,GAAIF,EACJpD,MAAK4T,MAAQya,EACbruB,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASw9C,EACdrhD,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKmM,eAAiBA,EACtBnM,KAAKihC,QAAUA,EACfjhC,KAAKshD,OAASA,EACdthD,KAAKuhD,UAAYA,EACjBvhD,KAAK+e,UAAYA,EACjB/e,KAAKuiC,QAAUA,EACfviC,KAAKwhD,IAAMA,EACXxhD,KAAKyhD,eAAiBA,EACtBzhD,KAAKoG,qBAAuBA,EAC5BpG,KAAK8b,QAAUA,EACf9b,KAAK0d,2BAA6BA,EAClC1d,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK0hD,gBACL1hD,KAAK2hD,mBACL3hD,KAAKwlC,KAAO,EACZxlC,KAAK4hD,mBAAoB,EACzB5hD,KAAK6hD,mBAAoB,EACzB7hD,KAAK4T,MAAMqK,eACPje,KAAKub,mBAAmBvb,KAAK6D,OAAOC,MAAO,qBAG/C9D,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,wBAChDvI,KAAK8hD,UAAW,EAChB9hD,KAAK+hD,eAAgB,EACrB/hD,KAAK4T,MAAMouC,qBAAuB,KAClChiD,KAAKiiD,iBAAkB,EACvBjiD,KAAKkiD,0BACL9+C,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAUjB,IATA8D,EAAMy5C,mBAAoB,EAC1Bv9C,EAAQ8D,EAAM2W,UAAUxW,QAAQ,sBAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAM2W,UAAUxW,QAAQ,4BACpC+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,KACjCgtB,mBAAoBn5B,EAAMwL,MAAMkG,QAAQvV,cAE1C6D,EAAM+D,eAAewC,OAAOrK,EAAOC,GAC/B6D,EAAMgS,GAAG6D,YAAYkkC,YAAY/5C,EAAMwL,MAAM2G,WAE/C,MADAnS,GAAM05C,UAAW,EACV15C,EAAMwL,MAAM8S,WAAW,WAAYte,EAAM05C,YAGnD9hD,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,QAukBlD,MA5oBA6C,GAAOi+C,EAAmB1wC,GAE1B0wC,EAAkB1gC,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,mBAAoB,aAAc,YAAa,eAAgB,aAAc,aAAc,cAAe,8BAA+B,yBAA0B,aAAc,+BAAgC,oBAEpV0gC,EAAkBlxC,UAAU+N,uBAAyB,yBAErDmjC,EAAkBlxC,UAAUmO,iBAAmB,kBAE/C+iC,EAAkBlxC,UAAU8xC,gBAE5BZ,EAAkBlxC,UAAU+xC,mBA8D5Bb,EAAkBlxC,UAAUkN,qBAAuB,WACjD,MAAO9c,MAAKoiD,iBAAgB,IAG9BtB,EAAkBlxC,UAAUsyC,wBAA0B,WA8DpD,MA7DAliD,MAAK4T,MAAMlH,IAAI,sBAAuB,SAAUtE,GAC9C,MAAO,YAIL,MAHAA,GAAMg6C,iBAAgB,GACtBh6C,EAAMi6C,mBACNj6C,EAAM+lC,QAAQ3lC,OAAO,WACdJ,EAAMm5C,UAAU18B,WAAW,YAAa,SAAU,mCAAoC,KAE9F7kB,OACHA,KAAK4T,MAAMlH,IAAI,4BAA6B,SAAUtE,GACpD,MAAO,UAASwF,EAAG7F,EAAMu6C,GAMvB,MALAl6C,GAAMm6C,cAAcp/C,KAAK,WACvB,MAAOiF,GAAMwL,MAAM8S,WAAW,qCAAsC47B,KAEtEl6C,EAAMi6C,mBACNj6C,EAAM+lC,QAAQ3lC,OAAO,WACdJ,EAAMm5C,UAAU18B,WAAW,SAAU,SAAU,2BAA4B,KAEnF7kB,OACHA,KAAK4T,MAAMlH,IAAI,qBAAsB,SAAUtE,GAC7C,MAAO,YAKL,MAJAA,GAAMg6C,iBAAgB,GACtBh6C,EAAMi6C,mBACNj6C,EAAMiY,UAAUqG,WAAW,kBAC3Bte,EAAM+lC,QAAQ3lC,OAAO,WACdJ,EAAMm5C,UAAU18B,WAAW,YAAa,SAAU,8BAA+B,KAEzF7kB,OACHA,KAAK4T,MAAMlH,IAAI,0BAA2B,SAAUtE,GAClD,MAAO,YACL,MAAOA,GAAMi6C,qBAEdriD,OACHA,KAAK4T,MAAMlH,IAAI,4BAA6B,SAAUtE,GACpD,MAAO,UAASmG,EAAOq6B,GAOrB,MANAxgC,GAAMm6C,cACNn6C,EAAMi6C,mBACNj6C,EAAMg6C,iBAAgB,GAClBxZ,EAAO2X,QACTn4C,EAAMo6C,oBAEDp6C,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,OACHA,KAAK4T,MAAMlH,IAAI,sBAAuB,SAAUtE,GAC9C,MAAO,UAASmG,EAAOxG,GACrB,GAAI+Q,EAKJ,OAJAA,GAAQzY,EAAEoiD,UAAUr6C,EAAMwL,MAAMqK,YAAa,SAAS8Y,GACpD,MAAOA,GAAGnd,KAAO7R,EAAK6R,KAExBxR,EAAMwL,MAAMqK,YAAYnF,GAAS/Q,EAC1BK,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,OACHA,KAAK4T,MAAMlH,IAAI,iBAAkB1M,KAAK0iD,QACtC1iD,KAAK4T,MAAMlH,IAAI,kBAAmB,SAAUtE,GAC1C,MAAO,YAEL,MADAA,GAAMm6C,cACCn6C,EAAMi6C,qBAEdriD,OACHA,KAAK4T,MAAMlH,IAAI,8BAA+B1M,KAAKwiD,mBAC5CxiD,KAAK4T,MAAMlH,IAAI,gCAAiC1M,KAAK2iD,sBAG9D7B,EAAkBlxC,UAAUgzC,uBAAyB,WACnD,GAAIC,GAAaC,CASjB,OARAD,GAAc,mBAAqB7iD,KAAK4T,MAAM2G,UAAY,eAC1Dva,KAAKshD,OAAO7uB,UAAUzyB,KAAK4T,MAAOivC,EAAa,SAAUz6C,GACvD,MAAO,UAAS4c,GAEd,MADA5c,GAAM26C,8BACC36C,EAAMm6C,gBAEdviD,OACH8iD,EAAc,mBAAqB9iD,KAAK4T,MAAM2G,UAAY,cACnDva,KAAKshD,OAAO7uB,UAAUzyB,KAAK4T,MAAOkvC,EAAa,SAAU16C,GAC9D,MAAO,UAAS4c,GACd,MAAO5c,GAAMm6C,gBAEdviD,QAGL8gD,EAAkBlxC,UAAUozC,eAAiB,WAC3C,MAAOhjD,MAAK4T,MAAM2B,OAAO,SAAUnN,GACjC,MAAO,YAEL,MADAA,GAAM05C,UAAY15C,EAAM05C,SACjB15C,EAAMgS,GAAG6D,YAAYglC,cAAc76C,EAAMwL,MAAM2G,UAAWnS,EAAM05C,YAExE9hD,QAGL8gD,EAAkBlxC,UAAUszC,oBAAsB,WAChD,MAAOljD,MAAK+hD,eAAiB/hD,KAAK+hD,eAGpCjB,EAAkBlxC,UAAUuzC,0BAA4B,WAWtD,MAVAnjD,MAAKiiD,iBAAmBjiD,KAAKiiD,gBACxBjiD,KAAKiiD,gBAKRjiD,KAAK4T,MAAMwvC,mBAAqB/iD,EAAEC,IAAIN,KAAKqjD,kBAAmB,SAAS7mC,GACrE,MAAOA,GAAGhZ,MALZxD,KAAK4T,MAAMwvC,mBAAqB/iD,EAAEC,IAAIN,KAAK4T,MAAMqK,YAAa,SAASzB,GACrE,MAAOA,GAAGhZ,MAOPuO,EAAW/R,KAAK4T,MAAO,SAAUxL,GACtC,MAAO,YACL,MAAOA,GAAMwL,MAAM8S,WAAW,wBAE/B1mB,QAGL8gD,EAAkBlxC,UAAUyyC,iBAAmB,WAC7C,MAAOriD,MAAKoa,GAAGC,SAASipC,MAAMtjD,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACjE,MAAO,UAASk7C,GACd,GAAIxa,EAUJ,OATA1gC,GAAMwL,MAAM0vC,MAAQA,EACpBxa,EAAcwa,EAAMta,aAAesa,EAAMta,aAAesa,EAAMC,eAC1Dza,EACF1gC,EAAMwL,MAAM0vC,MAAME,oBAAsBviD,KAAKgoC,MAAM,IAAMqa,EAAMva,cAAgBD,GAE/E1gC,EAAMwL,MAAM0vC,MAAME,oBAAsB,EAE1Cp7C,EAAMwL,MAAMouC,uBAAgD,MAAtBsB,EAAMta,cAAoD,MAA1Bsa,EAAMG,kBAC5Er7C,EAAMs7C,uBACCJ,IAERtjD,QAGL8gD,EAAkBlxC,UAAU+zC,mBAAqB,SAASzD,GACxD,GAAI1jC,GAAI03B,EAAGl/B,EAAKyF,EAASmuB,CAEzB,KADAnuB,KACKy5B,EAAI,EAAGl/B,EAAMkrC,EAAQ9yC,OAAQ8mC,EAAIl/B,EAAKk/B,IACzCtL,EAASsX,EAAQhM,GACjBl0C,KAAK2hD,gBAAgB/Y,EAAOhvB,OAC5Ba,EAAQlT,KAAK,WACX,GAAIqL,GAAGgxC,EAAMna,EAAMoa,CAGnB,KAFApa,EAAOb,EAAOkb,aACdD,KACKjxC,EAAI,EAAGgxC,EAAOna,EAAKr8B,OAAQwF,EAAIgxC,EAAMhxC,IACxC4J,EAAKitB,EAAK72B,GACVixC,EAASt8C,KAAKvH,KAAK2hD,gBAAgB/Y,EAAOhvB,IAAI4C,EAAG5C,IAAM4C,EAAGunC,aAE5D,OAAOF,IACN5/C,KAAKjE,MAEV,OAAOya,IAGTqmC,EAAkBlxC,UAAU+yC,oBAAsB,WAChD,MAAO3iD,MAAK4T,MAAM2B,OAAO,SAAUnN,GACjC,MAAO,YAEL,MADAA,GAAMwL,MAAMowC,iBACL57C,EAAMiY,UAAUqG,WAAW,gCAEnC1mB,QAGL8gD,EAAkBlxC,UAAU4yC,kBAAoB,WAC9C,GAAI3+C,EAIJ,OAHAA,IACE08C,QAAQ,GAEHvgD,KAAKoa,GAAG8lC,QAAQjkC,KAAKjc,KAAK4T,MAAM2G,UAAW1W,GAAQV,KAAK,SAAUiF,GACvE,MAAO,UAAS6M,GACd,GAAIi/B,GAAGl/B,EAAK4zB,EAAQsX,CAIpB,KAHAA,EAAUjrC,EAAOimB,WACjB9yB,EAAMu7C,mBAAmBzD,GACzB93C,EAAMwL,MAAMqwC,sBAAwBhvC,EAAOsrC,OACtCrM,EAAI,EAAGl/B,EAAMkrC,EAAQ9yC,OAAQ8mC,EAAIl/B,EAAKk/B,IACzCtL,EAASsX,EAAQhM,GACjBtL,EAAOkb,aAAezjD,EAAEqZ,OAAOkvB,EAAOkb,aAAc,eAOtD,OALA17C,GAAMwL,MAAMowC,cAAgB9D,EAC5B93C,EAAMwL,MAAMswC,kBAAoB1yC,EAAQ0uC,EAAS,SAAS3/C,GACxD,MAAOA,GAAEqZ,KAEXxR,EAAMiY,UAAUqG,WAAW,0BAA2Bw5B,GAC/CA,IAERlgD,QAGL8gD,EAAkBlxC,UAAU2yC,YAAc,WACxC,GAAI1+C,EAIJ,OAHAA,IACE08C,QAAQ,GAEHvgD,KAAKoa,GAAG8lC,QAAQjkC,KAAKjc,KAAK4T,MAAM2G,UAAW1W,GAAQV,KAAK,SAAUiF,GACvE,MAAO,UAAS6M,GACd,GAAIi/B,GAAGl/B,EAAK4zB,EAAQsX,CAOpB,KANAA,EAAUjrC,EAAOimB,WACjB9yB,EAAMu7C,mBAAmBzD,GACzB93C,EAAMwL,MAAMuwC,gBAAkBjE,EAC9B93C,EAAMwL,MAAMqwC,sBAAwBhvC,EAAOsrC,OAC3Cn4C,EAAMwL,MAAMwwC,oBAAsBnvC,EAAO2f,KACzCxsB,EAAMwL,MAAMuwC,gBAAkB/7C,EAAMwL,MAAMwwC,oBAAsBh8C,EAAMwL,MAAMqwC,sBACvE/P,EAAI,EAAGl/B,EAAMkrC,EAAQ9yC,OAAQ8mC,EAAIl/B,EAAKk/B,IACzCtL,EAASsX,EAAQhM,GACjBtL,EAAOkb,aAAezjD,EAAEqZ,OAAOkvB,EAAOkb,aAAc,eAYtD,OAVA17C,GAAMwL,MAAMssC,QAAUA,EACjB93C,EAAMwL,MAAMowC,gBACf57C,EAAMwL,MAAMowC,kBAEd57C,EAAMwL,MAAMqsC,eAAiBC,EAAQ9yC,OACrChF,EAAMwL,MAAMywC,YAAc7yC,EAAQ0uC,EAAS,SAAS3/C,GAClD,MAAOA,GAAEqZ,KAEXxR,EAAMiY,UAAUqG,WAAW,iBAAkBw5B,GAC7C93C,EAAMwL,MAAM0wC,cAAgBl8C,EAAMm8C,oBAC3BrE,IAERlgD,QAGL8gD,EAAkBlxC,UAAUywC,YAAc,WACxC,MAAOhgD,GAAEqN,OAAO1N,KAAK4T,MAAMssC,QAAS,SAAU93C,GAC5C,MAAO,UAASwgC,GACd,OAAQA,EAAO2X,SAEhBvgD,OAAOwkD,WAGZ1D,EAAkBlxC,UAAUmzC,4BAA8B,WACxD,GAAIvd,EAEJ,OADAA,GAAOxlC,KAAKwlC,KACLxlC,KAAKoiD,iBAAgB,EAAMpiD,KAAK4T,MAAMqK,YAAY7Q,QAAQjK,KAAK,SAAUiF,GAC9E,MAAO,YACL,MAAOA,GAAMo9B,KAAOA,IAErBxlC,QAGL8gD,EAAkBlxC,UAAUwyC,gBAAkB,SAASqC,EAAiBC,GACtE,GAAI7gD,GAAQT,CAIZ,OAHuB,OAAnBqhD,IACFA,GAAkB,GAEfzkD,KAAK4T,MAAM2G,WAGhBva,KAAK2kD,oBAAqB,EAC1B3kD,KAAK4hD,mBAAoB,EACzB/9C,EAASxD,EAAEsY,MAAM3Y,KAAK4a,SAASpU,UAC/BxG,KAAKoa,GAAG6D,YAAY2mC,iBAAiB5kD,KAAK4T,MAAM2G,UAAW1W,GACvD4gD,IACFzkD,KAAKwlC,KAAO,GAEd3hC,EAAO2hC,KAAOxlC,KAAKwlC,KACnBpiC,EAAUpD,KAAKoa,GAAG6D,YAAY4mC,eAAe7kD,KAAK4T,MAAM2G,UAAW1W,EAAQ6gD,GACpEthD,EAAQD,KAAK,SAAUiF,GAC5B,MAAO,UAAS6M,GACd,GAAI6vC,GAAQtoC,EAAI03B,EAAGl/B,EAAKy0B,EAAMxrB,CAW9B,KAVAA,EAAchJ,EAAO,GACrB6vC,EAAS7vC,EAAO,GACZwvC,IACFr8C,EAAMwL,MAAMqK,gBAEd7V,EAAMwL,MAAMqK,YAAc7V,EAAMwL,MAAMqK,YAAYhP,OAAO5O,EAAEqZ,OAAOuE,EAAa,kBAC/E7V,EAAMwL,MAAMwvC,mBAAqB/iD,EAAEC,IAAI8H,EAAMwL,MAAMqK,YAAa,SAASzB,GACvE,MAAOA,GAAGhZ,MAEZimC,EAAOrhC,EAAMwL,MAAMqK,YACdi2B,EAAI,EAAGl/B,EAAMy0B,EAAKr8B,OAAQ8mC,EAAIl/B,EAAKk/B,IACtC13B,EAAKitB,EAAKyK,GACV9rC,EAAMs5C,aAAallC,EAAG5C,IAAM4C,EAAGuoC,aAUjC,OARA38C,GAAMu8C,oBAAqB,EACvBG,EAAO,uBACT18C,EAAMw5C,mBAAoB,EAC1Bx5C,EAAMo9B,QAERzzB,EAAW3J,EAAMwL,MAAO,WACtB,MAAOxL,GAAMwL,MAAM8S,WAAW,wBAEzBzI,IAERje,QAtCM,MAyCX8gD,EAAkBlxC,UAAUo1C,YAAc,WACxC,MAAOhlD,MAAKyQ,EAAE0J,KAAKna,KAAKqiD,mBAAoBriD,KAAKuiD,cAAeviD,KAAKoiD,oBAAoBj/C,KAAKnD,KAAK0jD,uBAGrG5C,EAAkBlxC,UAAU8zC,qBAAuB,WACjD,GAAIuB,GAAoBC,EAAahR,EAAGl/B,EAAKy0B,EAAMhvB,EAAS6oC,EAAOta,EAAcjS,CAQjF,KAPAusB,EAAQtjD,KAAK4T,MAAM0vC,MACnBta,EAAesa,EAAMta,aACrBkc,EAAc5B,EAAM6B,gBACpBF,EAAqB,EACrBjlD,KAAKqjD,qBACL5Z,EAAOzpC,KAAK4T,MAAMqK,YAClBxD,KACKy5B,EAAI,EAAGl/B,EAAMy0B,EAAKr8B,OAAQ8mC,EAAIl/B,IACjC+hB,EAAK0S,EAAKyK,GACVgR,GAAenuB,EAAGiS,aAClBic,GAAsBluB,EAAGiS,aACzBhpC,KAAKqjD,kBAAkB97C,KAAKwvB,KACxBusB,EAAM8B,MAAQ,GAAKH,EAAqB3B,EAAM8B,QALZlR,IAQpCz5B,EAAQlT,KAAK,OAGjB,OAAOkT,IAGTqmC,EAAkBlxC,UAAUgyB,YAAc,WACxC,GAAI9nB,EAiBJ,OAhBAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQ2T,sBACXztB,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAMyxC,mBAAqBvrC,EAAQwrC,wBACxCtlD,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAMgnB,OAASv6B,EAAEqZ,OAAOI,EAAQ8gB,OAAQ,SAC7C56B,KAAK4T,MAAMw9B,WAAa5/B,EAAQsI,EAAQ8gB,OAAQ,SAASr6B,GACvD,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMyuB,aAAe7wB,EAAQsI,EAAQwoB,YAAa,SAAS/hC,GAC9D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMikC,aAAex3C,EAAEqZ,OAAOI,EAAQwoB,YAAa,MACjDxoB,GAGTgnC,EAAkBlxC,UAAUyxB,gBAAkB,WAC5C,GAAIvnB,EAIJ,OAHAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OAChDtZ,KAAK4iD,yBACE5iD,KAAKglD,cAAc7hD,KAAK,SAAUiF,GACvC,MAAO,YACL,MAAOA,GAAM2U,oBAEd/c,OAAOmD,KAAK,SAAUiF,GACvB,MAAO,YACL,MAAOA,GAAMwL,MAAM0iB,MAAM,oBAE1Bt2B,QAGL8gD,EAAkBlxC,UAAU21C,sBAAwB,SAASC,EAAMvd,GAIjE,MAHa,OAATA,IACFA,EAAQ,iBAEH5nC,EAAEC,IAAIklD,EAAM,SAASjlD,GAC1B,OACEklD,MAASllD,EAAEqZ,GACX8rC,MAASnlD,EAAE0nC,OAKjB6Y,EAAkBlxC,UAAU8yC,OAAS,SAAS70C,EAAK83C,EAAQC,EAAYC,GACrE,GAAIC,GAAkBC,EAAmBC,EAAiBj+C,EAAMyU,EAAI03B,EAAGxkC,EAAKkD,EAAGoC,EAAK4uC,EAAMqC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMpqC,EAAMgpB,EAAGqhB,EAAYC,EAAG5G,EAAW7a,EAAG0hB,EAAaC,EAASC,EAAYC,EAAWC,EAAGC,EAAUC,EAA0BhtC,EAAS1W,EAASqN,EAAGg5B,EAAMsd,EAAMC,EAAWC,EAAmBre,EAAQse,EAAYnwB,CAYrU,IAXAyvB,EAAcb,EAAO,GAAGwB,UACxBrtC,EAAU6rC,EAAO,GAAG7rC,QAChB0sC,IACF5d,EAAS5oC,KAAK4T,MAAMywC,YAAYmC,IAAgBxmD,KAAK4T,MAAMswC,kBAAkBsC,IAE3EX,IACFlG,EAAY3/C,KAAK4T,MAAMywC,YAAYwB,IAAgB7lD,KAAK4T,MAAMswC,kBAAkB2B,IAElFG,EAAkBH,IAAgBW,EAAcX,EAAcW,EAC9DG,EAAY,KACZD,EAAa,GACTb,IAAgBW,EAClB,GAAoB,OAAhBX,EAAsB,CACxB,IAAKn2C,EAAMwkC,EAAI,EAAGl/B,EAAM2wC,EAAOv4C,OAAQ8mC,EAAIl/B,EAAKtF,IAAQwkC,EACtDnd,EAAK4uB,EAAOj2C,GACZrP,EAAEuhB,OAAOgnB,EAAOkb,aAAc,SAAStnC,GACrC,MAAOA,GAAG5C,KAAOmd,EAAGnd,IAGxB8sC,GAAa,gBACbC,EAAY3mD,KAAK0hD,aACjBqE,EAAoB1lD,EAAEwS,MAAM7S,KAAK4T,MAAMqK,YAAa,EAAG2nC,GACvDE,EAAmBzlD,EAAEwS,MAAM7S,KAAK4T,MAAMqK,YAAa2nC,GACnD5lD,KAAK4T,MAAMqK,YAAcje,KAAK4T,MAAMqK,YAAYhP,OAAO02C,OAClD,CACL,IAAK/yC,EAAI,EAAGgxC,EAAO+B,EAAOv4C,OAAQwF,EAAIgxC,EAAMhxC,IAC1CmkB,EAAK4uB,EAAO/yC,GACZvS,EAAEuhB,OAAO5hB,KAAK4T,MAAMqK,YAAa,SAASzB,GACxC,MAAOA,GAAG5C,KAAOmd,EAAGnd,IAGxB8sC,GAAa,eACbC,EAAY3mD,KAAK2hD,gBAAgBhC,EAAU/lC,IAC3CmsC,EAAoB1lD,EAAEwS,MAAM8sC,EAAUmE,aAAc,EAAG8B,GACvDE,EAAmBzlD,EAAEwS,MAAM8sC,EAAUmE,aAAc8B,GACnDjG,EAAUmE,aAAenE,EAAUmE,aAAa70C,OAAO02C,OAGrC,QAAhBa,GACFE,EAAa,gBACbC,EAAY3mD,KAAK0hD,aACjBzlC,EAAO5b,EAAEqN,OAAO1N,KAAK4T,MAAMqK,YAAa,SAASmpC,GAC/C,OAAQ/mD,EAAEoc,KAAKkpC,EAAQ,SAAS0B,GAC9B,MAAOD,GAAOxtC,KAAOytC,EAAOztC,OAGhCmsC,EAAoB1lD,EAAEwS,MAAMoJ,EAAM,EAAG2pC,GACrCE,EAAmBzlD,EAAEwS,MAAMoJ,EAAM2pC,KAEjCc,EAAa,eACbC,EAAY3mD,KAAK2hD,gBAAgB/Y,EAAOhvB,IACxCqC,EAAO5b,EAAEqN,OAAOiyC,EAAUmE,aAAc,SAASsD,GAC/C,OAAQ/mD,EAAEoc,KAAKkpC,EAAQ,SAAS0B,GAC9B,MAAOD,GAAOxtC,KAAOytC,EAAOztC,OAGhCmsC,EAAoB1lD,EAAEwS,MAAMoJ,EAAM,EAAG2pC,GACrCE,EAAmBzlD,EAAEwS,MAAMoJ,EAAM2pC,GAsBrC,KAnBAiB,EAAWd,EAAkBA,EAAkB34C,OAAS,GACxD65C,KACKJ,EAEMA,IACTK,EAAaP,EAAUE,EAASjtC,IAAM,EACtCktC,EAA2BzmD,EAAEqN,OAAOq4C,EAAmB,SAASvpC,GAC9D,MAAOA,GAAGkqC,KAAgBC,EAAUE,EAASjtC,MAE3CktC,EAAyB15C,OAAS,IACpC65C,EAAoB5mD,EAAEC,IAAIwmD,EAA0B,SAAStqC,GAC3D,OACEipC,MAAOjpC,EAAG5C,GACV8rC,MAAOiB,EAAUnqC,EAAG5C,SAV1BstC,EAAa,EAefZ,KACK52C,EAAMu1B,EAAI,EAAGghB,EAAON,EAAOv4C,OAAQ63B,EAAIghB,EAAMv2C,IAAQu1B,EACxDlO,EAAK4uB,EAAOj2C,GACZqnB,EAAGowB,UAAYnB,EACfjvB,EAAG2vB,GAAcQ,EAAax3C,EAC9Bi3C,EAAU5vB,EAAGnd,IAAMmd,EAAG2vB,GACtBJ,EAAW/+C,MACTk+C,MAAO1uB,EAAGnd,GACV8rC,MAAO3uB,EAAG2vB,IAId,KADAQ,EAAaP,EAAUhB,EAAOA,EAAOv4C,OAAS,GAAGwM,IAC5ClK,EAAM62C,EAAI,EAAGL,EAAOJ,EAAiB14C,OAAQm5C,EAAIL,EAAMx2C,IAAQ62C,EAClE/pC,EAAKspC,EAAiBp2C,GACtBi3C,EAAUnqC,EAAG5C,IAAMstC,EAAax3C,EAAM,CAQxC,KANA1P,KAAK4T,MAAMqK,YAAc5d,EAAEqZ,OAAO1Z,KAAK4T,MAAMqK,YAAa,SAAU7V,GAClE,MAAO,UAASoU,GACd,MAAOpU,GAAMs5C,aAAallC,EAAG5C,MAE9B5Z,OACHypC,EAAOzpC,KAAK4T,MAAMssC,QACbpb,EAAI,EAAGqhB,EAAO1c,EAAKr8B,OAAQ03B,EAAIqhB,EAAMrhB,IACxC8D,EAASa,EAAK3E,GACd8D,EAAOkb,aAAezjD,EAAEqZ,OAAOkvB,EAAOkb,aAAc,SAAU17C,GAC5D,MAAO,UAASoU,GACd,MAAOpU,GAAMu5C,gBAAgB/Y,EAAOhvB,IAAI4C,EAAG5C,MAE5C5Z,MAGL,KADA+mD,EAAO/mD,KAAK4T,MAAMowC,cACb4C,EAAI,EAAGR,EAAOW,EAAK35C,OAAQw5C,EAAIR,EAAMQ,IACxChe,EAASme,EAAKH,GACdhe,EAAOkb,aAAezjD,EAAEqZ,OAAOkvB,EAAOkb,aAAc,SAAU17C,GAC5D,MAAO,UAASoU,GACd,MAAOpU,GAAMu5C,gBAAgB/Y,EAAOhvB,IAAI4C,EAAG5C,MAE5C5Z,MAEL,IAAI2lD,EAAOv4C,OAAS,GAAMy4C,IAAgBW,EACxCz+C,EAAOu+C,EAAWr3C,OAAOg4C,GACzB7jD,EAAUpD,KAAKoa,GAAG6D,YAAYqpC,oBAAoBxtC,EAAS+rC,EAAa99C,OACnE,IAAI49C,EAAOv4C,OAAS,EACzBrF,EAAOu+C,EAAWr3C,OAAOg4C,GACzB7jD,EAAUpD,KAAKoa,GAAG6D,YAAYspC,uBAAuBztC,EAAS/R,OACzD,CAEL,IADAi/C,KACKv2C,EAAI,EAAG41C,EAAOY,EAAkB75C,OAAQqD,EAAI41C,EAAM51C,IACrD+L,EAAKyqC,EAAkBx2C,GACvBu2C,EAAUxqC,EAAGipC,OAASjpC,EAAGkpC,KAE3Be,IACE/gD,SACE8hD,aAAchnD,KAAKC,UAAUumD,KAGjC5jD,EAAUpD,KAAKkuB,KAAKU,KAAK+2B,EAAO,IAAI,KAAUc,GAAS,GAUzD,MARArjD,GAAQD,KAAK,SAAUiF,GACrB,MAAO,YAEL,GADAA,EAAMiY,UAAUqG,WAAW,mBACvBte,EAAMwL,MAAMswC,mBAAqB97C,EAAMwL,MAAMswC,kBAAkBsC,GACjE,MAAOp+C,GAAMiY,UAAUqG,WAAW,iCAGrC1mB,OACIoD,GAGT09C,EAAkBlxC,UAAU63C,sBAAwB,WAClD,MAAOznD,MAAK+c,kBAAkB5Z,KAAK,SAAUiF,GAC3C,MAAO,YAEL,MADAA,GAAMiY,UAAUqG,WAAW,kBACpBte,EAAMi6C,qBAEdriD,QAGL8gD,EAAkBlxC,UAAU83C,cAAgB,SAASntC,EAAW/W,EAAKmkD,GACnE,GAAInzB,GAAgBxQ,CAGpB,OAFAA,GAAS+oB,EAAE4a,EAAO3jC,QAClBwQ,EAAiBx0B,KAAKuiC,UAAUve,OAAOA,GAAQm3B,cAAc,cAAc/oC,QAAQ,KAAK1D,QACjF1O,KAAKoa,GAAG6D,YAAYw6B,SAASl+B,EAAW/W,GAAKL,KAAK,SAAUiF,GACjE,MAAO,UAAS2uB,GACd,MAAO3uB,GAAMo5C,IAAI1J,YAAY77B,KAAK,KAAM8a,EAAGnd,GAAIW,GAAWpX,KAAK,SAAS20C,GAEtE,MADA1vC,GAAMiY,UAAUqG,WAAW,cAAeqQ,EAAI+gB,EAAYr/B,QACnD+b,EAAeG,aAGzB30B,QAGL8gD,EAAkBlxC,UAAUg4C,gBAAkB,SAAS7wB,GACrD,GAAI/R,GAAS1gB,CAGb,OAFAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,0BAC/Byc,EAAU+R,EAAGlY,QACN7e,KAAKmuC,QAAQ/X,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GAC7D,MAAO,UAASiuB,GACd,GAAIjzB,EAOJ,OANAgF,GAAMwL,MAAMqK,YAAc5d,EAAEwnD,QAAQz/C,EAAMwL,MAAMqK,YAAa8Y,GAC7D3zB,EAAUgF,EAAM8lB,KAAKtM,OAAOmV,GAC5B3zB,EAAQD,KAAK,WAEX,MADAkzB,GAAY1B,SACLvsB,EAAMqI,EAAE0J,KAAK/R,EAAMi6C,mBAAoBj6C,EAAMm6C,kBAE/Cn/C,EAAQD,KAAK,KAAM,WAExB,MADAkzB,GAAY1B,QAAO,GACZvsB,EAAM+lC,QAAQ3lC,OAAO,aAG/BxI,QAGL8gD,EAAkBlxC,UAAUk4C,SAAW,SAAS19C,GAC9C,OAAQA,GACN,IAAK,WACH,MAAOpK,MAAKqgB,UAAUqG,WAAW,aAAc1mB,KAAK4T,MAAM2G,UAAWva,KAAK4T,MAAMkG,QAAQiuC,kBAAmB/nD,KAAK4T,MAAMikC,aACxH,KAAK,OACH,MAAO73C,MAAKqgB,UAAUqG,WAAW,cAAe1mB,KAAK4T,MAAM2G,UAAWva,KAAK4T,MAAMkG,QAAQiuC,qBAI/FjH,EAAkBlxC,UAAUo4C,aAAe,WACzC,MAAOhoD,MAAKqgB,UAAUqG,WAAW,oBAAqB1mB,KAAK4T,MAAM2G,YAGnEumC,EAAkBlxC,UAAU20C,kBAAoB,WAC9C,GAAI0D,EAEJ,OADAA,IAAc,GAAIlnD,OAAOC,UAClBX,EAAEoc,KAAKzc,KAAK4T,MAAMssC,QAAS,SAAStX,GACzC,GAAIsf,GAAKx5C,CAGT,OAFAA,GAAQ3E,OAAO6+B,EAAOgX,gBAAiB,cAAc9zB,OAAO,KAC5Do8B,EAAMn+C,OAAO6+B,EAAOiX,iBAAkB,cAAc/zB,OAAO,KACpDm8B,GAAev5C,GAASu5C,GAAeC,KAI3CpH,GAENjvC,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,aAAclZ,EAAMoZ,iBAEtExZ,EAAOwE,WAAW,oBAAqB28C,GAEvCC,EAAmB,SAAS56B,EAAOpa,EAAY/I,EAAYg0B,GACzD,GAAImxB,GAAkB9kC,EAAM+kC,EAAcC,EAAaC,EAAaC,EAAgBC,EAAgBC,CAqPpG,OApPAN,GAAmB9nD,EAAEuE,SAAS,yDAC9BwjD,EAAe,SAAS9kC,EAAQC,EAAKC,EAAQiU,GAC3C,GAAIixB,GAAgBC,EAAYC,EAAgBC,CAiDhD,OAhDAD,GAAiB,WACf,GAAI1D,GAAa4D,EAAYn2C,EAAGuhC,EAAGl/B,EAAKy0B,EAAMhvB,EAAS6oC,EAAOta,EAAcjS,CAI5E,IAHIzT,EAAO2+B,iBACT4G,IAEmB,MAAhBvlC,EAAOggC,OAAgD,MAA7BhgC,EAAOggC,MAAMta,cAAuD,IAA9B1lB,EAAOggC,MAAMta,cAAiD,MAA1B1lB,EAAO2+B,gBAA0B,CAKxI,GAJA4G,IACAvF,EAAQhgC,EAAOggC,MACfta,EAAesa,EAAMta,aACrBkc,EAAc5B,EAAM6B,iBACf7hC,EAAOrF,YACV,MAIF,KAFAwrB,EAAOnmB,EAAOrF,YACdxD,KACK9H,EAAIuhC,EAAI,EAAGl/B,EAAMy0B,EAAKr8B,OAAQ8mC,EAAIl/B,EAAKrC,IAAMuhC,EAAG,CAGnD,GAFAnd,EAAK0S,EAAK92B,GACVuyC,GAAenuB,EAAGiS,aACdkc,EAAclc,EAAc,CAC9B8f,EAAavlC,EAAI9G,KAAK,oCAAoC9J,GAC1D+1C,EAAeI,EACf,OAEAruC,EAAQlT,KAAK,QAGjB,MAAOkT,KAGXouC,EAAoB,WAClB,MAAOtlC,GAAI9G,KAAK,cAAcmF,UAEhC8mC,EAAiB,SAASzgD,GACxB,GAAI4M,EAEJ,OADAA,GAAO7R,EAAWuF,QAAQ,oBACnBwkC,EAAE9kC,GAAS8gD,OAAOZ,GACvBtzC,KAAQA,MAGZ8zC,EAAa,WACX,GAAIK,EAEJ,OADAA,GAAczlC,EAAI9G,KAAK,oCAChBpc,EAAEC,IAAI0oD,EAAa,SAASzoD,GACjC,MAAOqC,SAAQqF,QAAQ1H,MAG3B+iB,EAAO5W,IAAI,qBAAsBk8C,GACjCtlC,EAAO5W,IAAI,uBAAwBm8C,GAC5BvlC,EAAOrP,OAAO,QAAS20C,IAEhCN,EAAc,SAAShlC,EAAQC,EAAKC,EAAQiU,GAC1C,GAAIwxB,GAAeC,EAAaC,EAAaC,EAAqBC,EAAoBC,EAAiBC,CA2GvG,OA1GAL,GAAc,WACZ,GAAIM,EAEJ,OADAA,GAASjmC,EAAI9G,KAAK,8CACXpc,EAAEC,IAAIkpD,EAAQ,SAAS92C,GAC5B,GAAI+2C,EAIJ,OAHA/2C,GAAOq6B,EAAEr6B,GAAM4/B,QAAQ,aACvBmX,EAAY/2C,EAAKkB,QACjB61C,EAAU1yB,GAAGowB,UAAY7jC,EAAO48B,QAAQ,GAAGtmC,GACpC6vC,EAAU1yB,MAGrBuyB,EAAkB,SAASI,EAAa9gB,GACtC,GAAI+gB,GAAaC,EAAkBC,CAmBnC,OAlBAA,GAAaxpD,EAAEijB,EAAOrF,aACtBqF,EAAOrF,YAAc4rC,EAAWhC,QAAQ33C,MAAM25C,EAAYH,GAAa36C,QACvE46C,EAActpD,EAAEC,IAAIopD,EAAa,SAASnY,EAAGC,GAC3C,MAAOD,GAAEvI,eAEX4gB,EAAmBvpD,EAAEwX,OAAO8xC,EAAa,SAASlY,EAAKC,GACrD,MAAOD,GAAMC,IAEf9I,EAAOkb,aAAezjD,EAAEypD,MAAMlhB,EAAOkb,aAAc4F,GACnD9gB,EAAOI,cAAgB4gB,EACvB5yB,EAAI/Y,YAAYqpC,oBAAoBhkC,EAAOxJ,QAAQF,GAAI0J,EAAO48B,QAAQ,GAAGtmC,GAAI8vC,GAAavmD,KAAK,SAAUiF,GACvG,MAAO,YAIL,MAHAqvB,GAAM8qB,cACN9qB,EAAM4qB,mBACN5qB,EAAM0rB,4BACC1rB,EAAMisB,yBAEd1jD,OACIujB,EAAI9G,KAAK,mBAAmBmU,QAErCw4B,EAAsB,SAASM,GAC7B,MAAOJ,GAAgBI,EAAapmC,EAAOghC,gBAE7C+E,EAAqB,SAASK,GAC5B,MAAOJ,GAAgBI,EAAapmC,EAAO48B,QAAQ,KAErD58B,EAAO5W,IAAI,qCAAsC,SAASkB,EAAG00C,GAC3D,MAAOjiD,GAAEm5C,QAAQ4P,EAAqB9G,OAExCiH,GAAe,EACfJ,EAAc,KACdF,EAAgB,SAASjlC,GACvB,GAAI+lC,GAAiBC,CAKrB,OAJAb,GAAcnlC,EAAOsuB,QAAQ,gBAC7BtuB,EAAOsuB,QAAQ,gBAAgB2X,YAAY,6BAC3CF,EAAkBxmC,EAAI9G,KAAK,mBAC3ButC,EAAgBzmC,EAAI9G,KAAK,8CACrButC,EAAc58C,OAAS,GAAKkW,EAAO48B,QAAQ9yC,OAAS,EAC/C28C,EAAgBr5B,OAEhBq5B,EAAgBn5B,QAG3Bmc,EAAE7sC,QAAQqkB,GAAG,4CAA6C,SAAShW,GAEjE,MADAg7C,KAAiBh7C,EAAM27C,UAChB,IAET3mC,EAAIgB,GAAG,SAAU,qCAAsC,SAAShW,GAC9D,GAAI7K,GAASymD,EAAUC,EAASC,EAASrmC,CAwBzC,OAvBImlC,IAAeI,IACjBY,KACAzmD,EAAUqpC,EAAEx+B,EAAM0V,eAAequB,QAAQ,gBACzC8X,EAAUjB,EAAYiB,UACtBC,EAAUlB,EAAYkB,UAClBhqD,EAAE+xC,KAAKgY,EAAS,SAASljD,GAC3B,MAAOA,KAASxD,EAAQ,KAExBymD,EAAWhB,EAAYmB,UAAU5mD,GACxBrD,EAAE+xC,KAAKiY,EAAS,SAASpU,GAClC,MAAOA,KAASvyC,EAAQ,OAExBymD,EAAWhB,EAAYoB,UAAU7mD,IAEnCrD,EAAEC,IAAI6pD,EAAU,SAAS56B,GACvB,GAAIhZ,EAGJ,OAFAA,GAAQw2B,EAAExd,GAAK9S,KAAK,kBACpBlG,EAAM+X,KAAK,WAAW,GACf26B,EAAc1yC,MAGzByN,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BD,EAAOsuB,QAAQ,gBAAgB2X,YAAY,cACpChB,EAAcjlC,KAEvBT,EAAIgB,GAAG,QAAS,yBAA0B,SAAUnc,GAClD,MAAO,UAASmG,GACd,GAAI+zC,EAEJ,OADAA,GAAY4G,IACL5lC,EAAO/N,OAAOlV,EAAEm5C,QAAQ6P,EAAoB/G,MAEpDtiD,OACHujB,EAAIgB,GAAG,QAAS,0BAA2B,SAAUnc,GACnD,MAAO,UAASmG,GACd,GAAI+zC,EAEJ,OADAA,GAAY4G,IACL5lC,EAAO/N,OAAOlV,EAAEm5C,QAAQ4P,EAAqB9G,MAErDtiD,OACHujB,EAAIgB,GAAG,QAAS,aAAc,SAAShW,GAGrC,MAFAA,GAAME,iBACNgpB,EAAMurB,iBACCyF,EAAahxB,KAEflU,EAAIgB,GAAG,QAAS,0BAA2B,SAAShW,GACzD,GAAI+zC,GAAWkI,CAEf,OADAA,GAAgB/yB,EAAM4rB,kBAClB//B,EAAOghC,eACThC,EAAYjiD,EAAEC,IAAIkqD,EAAe,SAASzzB,EAAIje,GAG5C,MAFAie,GAAGowB,UAAY7jC,EAAOghC,cAAc1qC,GACpCmd,EAAG2uB,MAAQ5sC,EACJie,IAEFzT,EAAO/N,OAAOlV,EAAEm5C,QAAQ4P,EAAqB9G,MAEpDA,EAAYjiD,EAAEC,IAAIkqD,EAAe,SAASzzB,EAAIje,GAE5C,MADAie,GAAG2uB,MAAQ5sC,EACJie,IAEFhrB,EAAW2a,WAAW,oBAAqBpD,EAAO/I,UAAW+nC,OAI1EmG,EAAe,SAAShxB,GACtB,GAAIlI,GAAK1a,CAET,OADA0a,GAAM3sB,QAAQqF,QAAQ,cAClBwvB,EAAMqqB,UACRvyB,EAAIze,SAAS,UACb+D,EAAO7R,EAAWuF,QAAQ,qBACnBgnB,EAAI1a,KAAKA,KAEhB0a,EAAIlD,YAAY,UAChBxX,EAAO7R,EAAWuF,QAAQ,qBACnBgnB,EAAI1a,KAAKA,KAGpB0zC,EAAiB,SAASjlC,EAAQC,EAAKkU,GACrC,GAAIgzB,EAGJ,OAFAA,GAAUlnC,EAAI9G,KAAK,0BACnBguC,EAAQ35C,SAAS,UACV2mB,EAAMsqB,eAAgB,GAE/ByG,EAAiB,SAASllC,EAAQC,EAAKkU,GACrC,GAAIizB,GAAUC,EAAUF,EAASzmC,CAejC,OAdAymC,GAAUlnC,EAAI9G,KAAK,0BACnBguC,EAAQhd,IAAI,gBAAiB,WAC3B,MAAOr7B,GAAQ,IAAK,WAElB,MADArG,GAAW2a,WAAW,UACfqmB,EAAE,aAAarE,IAAI,aAAc,eAG5C1kB,EAASphB,QAAQqF,QAAQ,wBACzB8kC,EAAE,aAAarE,IAAI,aAAc,UACjC+hB,EAAQR,YAAY,UACpBjmC,EAAOimC,YAAY,UACnBS,EAAW1nD,EAAWuF,QAAQ,wBAC9BoiD,EAAW3nD,EAAWuF,QAAQ,wBAC9B+J,EAAW0R,GAAS0mC,EAAUC,IACvBlzB,EAAMyrB,uBAEfmF,EAAc,SAAS/kC,EAAQC,EAAKC,EAAQiU,GAE1C,MADAnU,GAAOsnC,iBACArnC,EAAIgB,GAAG,QAAS,uBAAwB,SAAShW,GAEtD,MADAA,GAAME,iBACC6U,EAAO/N,OAAO,WACnB,MAAOizC,GAAellC,EAAQC,EAAKkU,QAIzCpU,EAAO,SAASC,EAAQC,EAAKC,EAAQzX,GACnC,GAAI0rB,GAAOvc,CAYX,OAXAuc,GAAQlU,EAAIpf,aACZmkD,EAAYhlC,EAAQC,EAAKC,EAAQiU,GACjC4wB,EAAY/kC,EAAQC,EAAKC,EAAQiU,GACjC2wB,EAAa9kC,EAAQC,EAAKC,EAAQiU,GAClCvc,EAAUuc,EAAM7c,SAASpU,UACrB0U,EAAQzU,QAAUyU,EAAQ9D,MAAQ8D,EAAQzK,GAAKyK,EAAQsC,aAAetC,EAAQuC,QAChF8qC,EAAejlC,EAAQC,EAAKkU,GAE9BnU,EAAO5W,IAAI,WAAY,WACrB,MAAO+7C,GAAahxB,KAEfnU,EAAO5W,IAAI,WAAY,WAE5B,MADA6W,GAAIkB,MACGsoB,EAAE7sC,QAAQukB,IAAI,sBAIvBpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,aAAc,UAAW,aAAc,aAAc,eAAgB49B,IAEtFK,EAAgC,SAASr1C,EAAYopB,EAAWD,EAAUlyB,GACxE,GAAIqgB,GAAMy4B,CAmDV,OAlDAA,GAAoB3mB,EAAUrvB,IAAI,uCAAuC,GACzEud,EAAO,SAASC,EAAQC,EAAKC,GA6C3B,MA5CAxS,GAASsS,EAAQ,UAAW,SAASxJ,GACnC,GAAI+wC,GAAevxC,CAGnB,OAFAA,GAAQjZ,EAAEqN,OAAOoM,EAAQR,MAAO,cAChCuxC,EAAgBxqD,EAAEoW,KAAK6C,GACnBuxC,EAAgB,EACXtnC,EAAImpB,OAAOxX,EAAS4mB,GACzBxiC,MAASA,KACPgK,KAEJC,EAAI9G,KAAK,oBAAoBmF,SACtB2B,EAAI9G,KAAK,kBAAkB3L,SAAS,oBAG/CwS,EAAO5W,IAAI,kBAAmB,SAASmB,EAAKyiC,EAAQwa,GAElD,MADAvnC,GAAI9G,KAAK,YAAYs1B,UAAUxf,QACxBhP,EAAI9G,KAAK,kBAAkBoZ,KAAKi1B,EAAW,yBAEpDxnC,EAAO5W,IAAI,2BAA4B,SAASmB,EAAKyiC,GACnD,GAAIz7B,EAGJ,OAFA0O,GAAI9G,KAAK,YAAYs1B,UAAUxf,QAC/B1d,EAAO7R,EAAWuF,QAAQ,wBACnBgb,EAAI9G,KAAK,kBAAkB5H,KAAKA,KAEzC0O,EAAIgB,GAAG,QAAS,SAAShW,GACvB,GAAIyV,EAKJ,OAJAA,GAASphB,QAAQqF,QAAQsG,EAAMyV,SAC3BA,EAAO+mC,GAAG,SAAW/mC,EAAO+mC,GAAG,SACjCx8C,EAAMwhC,kBAEDxsB,EAAI9G,KAAK,YAAYs1B,UAAUnd,SAExCrR,EAAIgB,GAAG,QAAS,mBAAoB,SAAShW,GAG3C,MAFAA,GAAME,iBACNF,EAAMwhC,kBACChkC,EAAW2a,WAAW,8BAE/BnD,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAChC,GAAIy8C,GAAUhnC,CAKd,OAJAzV,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B+mC,EAAWhnC,EAAOpQ,QACX7H,EAAW2a,WAAW,kBAAmB1C,EAAOjc,KAAK,WAAYic,EAAOnP,UAE1EyO,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,0BAA2B,aAAc,cAAe,WAAY,aAAci+B,IAEnGD,EAAoB,SAAShR,EAAuBhqB,EAAO8kC,GACzD,GAAI5nC,GAAM6nC,CA8GV,OA7GAA,GAAgBD,EAAYnlD,IAAI,kDAAkD,GAClFud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAO0zB,EAAmB/a,EAAmBgb,EAAiBC,EAAqBC,EAAgBC,CAuGvG,OAtGA9zB,GAAQlU,EAAIpf,aACZonD,EAAyB,KACzBD,EAAiB,KACjBF,EAAkB,KAClBhb,EAAoB,KACpB9sB,EAAO5W,IAAI,kBAAmB,SAASmB,EAAKyiC,EAAQwa,GAClD,GAAI/zB,EAGJ,OAFAA,GAAKzT,EAAOtP,MAAMwP,EAAOgoC,mBACzBF,EAAiBhb,EACVF,EAAkBjkB,WAE3B7I,EAAO5W,IAAI,2BAA4B,SAASmB,GAC9C,GAAIkpB,EAGJ,OAFAA,GAAKzT,EAAOtP,MAAMwP,EAAOgoC,mBACzBF,EAAiB,KACVlb,EAAkBjkB,WAE3B7I,EAAOrP,OAAOuP,EAAOgoC,kBAAmB,SAASz0B,GAC/C,GAAIzd,EACJ,IAAIyd,EA2CF,MA1CAqZ,GAAoBD,EAAsB1b,OAAOlR,EAAKwT,EAAIzT,EAAOxJ,SACjER,EAAQ82B,EAAkBO,iBACL,IAAjBr3B,EAAMlM,QACRmW,EAAI9G,KAAK,sBAAsBmF,SAC/B2B,EAAI9G,KAAK,eAAe3L,SAAS,kBACP,IAAjBwI,EAAMlM,SACfk+C,EAAiBjrD,EAAEmT,KAAKujB,EAAG6D,QAAQ,IAEjCwV,EAAkB7G,YACpB4hB,IAEF/a,EAAkBC,uBAAyB,SAASC,EAAQC,EAAS3V,GAGnE,MAFA7D,GAAG6D,OAASA,EACZwV,EAAkBjkB,SACXnsB,KAAK4uB,KAAK0hB,EAAQC,GAASptC,KAAK,WACrC,MAAOs0B,GAAM4qB,sBAGjBjS,EAAkBjkB,OAAS,WACzB,GAAIte,GAAKgoB,EAAM4a,EAAcF,EAASqB,EAAUhtC,EAAUiQ,EAAMvQ,EAAOwkC,CAqBvE,OApBAA,GAAc9oC,KAAK0wC,uBACI,MAAlB4a,GAA4C,IAAjBhyC,EAAMlM,QACpCyH,EAAOi0B,EACPxkC,EAAQwkC,IAERyH,EAAUvwC,KAAK+2B,GAAG6D,OAAO0wB,GACzB1Z,EAAW5xC,KAAKoxC,WAAWb,GAC3B17B,EAAO+8B,EAASr9B,KAAO,YAAcu0B,EAAc,UACnDxkC,EAAQstC,EAASr9B,KAAO,MAAQu0B,GAElCj7B,GACEi7B,YAAaA,EACbxvB,MAAOtZ,KAAK2wC,iBACZnB,SAAUxvC,KAAKupC,WACf10B,KAAMA,EACNvQ,MAAOA,GAETmsC,EAAe,6CACf7rC,EAAWqmD,EAAYnlD,IAAI2qC,GAAc,GACzC5a,EAAOjxB,EAASiJ,GACT7N,KAAKujB,IAAIsS,KAAKA,IAEhBua,EAAkBjkB,WAG7Bk/B,EAAsB,WACpB,GAAIx1B,GAAMvc,CAMV,OALAA,GAAQ82B,EAAkBO,iBAC1B9a,EAAOq1B,GACL5xC,MAASA,IAEXiK,EAAImpB,OAAO7W,GACJtS,EAAI9G,KAAK,aAAas1B,UAAUnd,KAAK,WAC1C,MAAOmY,GAAE/sC,MAAM4hB,YAGnBupC,EAAoB,WAalB,MAZA5nC,GAAIgB,GAAG,QAAS,cAAe,SAAShW,GACtC,GAAIwoB,EAKJ,OAJAxoB,GAAME,iBACNF,EAAMwhC,kBACNhZ,EAAKzT,EAAOtP,MAAMwP,EAAOgoC,mBACzBD,EAAyBD,EACH,MAAlBA,EACKlb,EAAkByB,qBAAqByZ,GAEvCD,MAGJ9nC,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GACvC,GAAIk9C,GAAaznC,EAAQ+S,CASzB,OARAxoB,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B8S,EAAKzT,EAAOtP,MAAMwP,EAAOgoC,mBACzBD,EAAyBvnC,EAAOjc,KAAK,WACrC0jD,EAAcloC,EAAI9G,KAAK,aACvBgvC,EAAYhvC,KAAK,KAAK4P,YAAY,UAClCo/B,EAAYhvC,KAAK,mBAAqB8uC,EAAyB,MAAMz6C,SAAS,UACvEs/B,EAAkByB,qBAAqB0Z,MAG3CjoC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,qBAAsB,wBAAyB,UAAW,cAAeg+B,IAE1FD,EAA2B,SAASnS,GAClC,GAAIne,GAAMvN,EAAMqN,CA0ChB,OAzCAE,GAAO,WAGL,MAFAmc,GAAE,sBAAsB1gB,YAAY,SACpC0gB,EAAE,yCAAyC1gB,YAAY,UAChD0gB,EAAE,sBAAsB1gB,YAAY,SAE7CqE,EAAO,SAASg7B,GAEd,MADA3e,GAAE,yCAAyCj8B,SAAS,UAChD46C,EACK3e,EAAE,sBAAsBj8B,SAAS,SAEjCi8B,EAAE,sBAAsBj8B,SAAS,SAG5CuS,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIkoC,GAAW9vC,EAAM+vC,CAuBrB,OAtBAD,IAAY,EACZ9vC,EAAOzb,GAAc;AACrBmjB,EAAOsoC,yBAA2B7c,EAASjpC,IAAI8V,KAAS,EACxD+vC,EAAc,WAMZ,MALIroC,GAAOsoC,yBACTh7B,EAAK86B,GAELh7B,EAAKg7B,GAEAA,GAAY,GAErBpoC,EAAOrP,OAAO,uBAAwB,WACpC,GAAmC,MAA/BqP,EAAO0+B,qBAET,MADA1+B,GAAOsoC,yBAA2BtoC,EAAOsoC,0BAA4BtoC,EAAO0+B,qBACrE2J,MAGXpoC,EAAIgB,GAAG,QAAS,wCAAyC,WAGvD,MAFAjB,GAAOsoC,0BAA4BtoC,EAAOsoC,yBAC1C7c,EAAShzB,IAAIH,EAAM0H,EAAOsoC,0BACnBD,MAEFroC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,8BAA+B,aAAc+9B,IAE9DF,EAAgC,SAASh+C,GACvC,GAAIqgB,GAAMwoC,CA2JV,OA1JAA,GAAc,SAAS5jD,EAAS6jD,GAC9B,GAAIC,GAAuBC,EAAQjkD,EAAMkkD,EAAmBC,EAAiBC,EAAc1F,EAAehsC,EAAS2xC,EAAqBv/C,EAAOw/C,CAwI/I,OAvIAx/C,GAAQ5E,EAAQ4E,QAChB5E,EAAQwqC,OAAO5lC,EAAQ,GACvBq/C,EAAkB,WAChBzxC,IACA,KAAK,GAAIy5B,GAAI,EAAGzK,EAAOqiB,EAAW5wB,WAAW9tB,OAAS,EAAG,GAAKq8B,EAAOyK,GAAKzK,EAAOyK,GAAKzK,EAAM,GAAKA,EAAOyK,IAAMA,IAAMz5B,EAAQlT,KAAK2sC,EACjI,OAAOz5B,IACNvK,MAAMlQ,MACT+H,KACAskD,EAAYhsD,EAAEC,IAAIwrD,EAAW5wB,WAAY,SAASoxB,GAChD,MAAO,KAETvkD,EAAKR,MACHQ,KAAM1H,EAAEksD,IAAIL,EAAiBG,GAC7Bv/C,OACE0/C,UAAW,iBAEb5xB,QACElK,MAAM,KAGVy7B,EAAe9rD,EAAEC,IAAIwrD,EAAW5wB,WAAY,SAASoxB,GACnD,MAAOA,GAAGG,UAEZ1kD,EAAKR,MACHQ,KAAM1H,EAAEksD,IAAIL,EAAiBC,GAC7Br/C,OACE0/C,UAAW,2BAGfP,EAAiB5rD,EAAEqN,OAAOrN,EAAEC,IAAIwrD,EAAW5wB,WAAY,SAASoxB,GAC9D,MAAOA,GAAGI,YACR,SAASA,GACX,MAAoB,OAAbA,IAET3kD,EAAKR,MACHQ,KAAM1H,EAAEksD,IAAIL,EAAiBD,GAC7Bn/C,OACE0/C,UAAW,0BAGfT,EAAwB1rD,EAAEC,IAAIwrD,EAAW5wB,WAAY,SAASoxB,GAC5D,OAAQA,EAAG,kBAAoBA,EAAG,sBAEpCvkD,EAAKR,MACHQ,KAAM1H,EAAEksD,IAAIL,EAAiBH,GAC7Bj/C,OACE0/C,UAAW,yBAGfJ,EAAsB/rD,EAAEC,IAAIwrD,EAAW5wB,WAAY,SAASoxB,GAC1D,OAAQA,EAAG,oBAEbvkD,EAAKR,MACHQ,KAAM1H,EAAEksD,IAAIL,EAAiBE,GAC7Bt/C,OACE0/C,UAAW,yBAGfR,GAAU,gBAAiB,wBAAyB,qBAAsB,oBAAqB,qBAC/FvF,GACEkG,MACEC,aACEpa,IAAK,EACLqa,MAAO,EACP3P,KAAM,EACN4P,OAAQ,GAEVC,YAAa,OACbC,WAAW,GAEbC,OACEC,MAAOpB,EAAW5wB,WAAW9tB,OAC7B+/C,UAAWnqD,EAAWuF,QAAQ,6BAC9B6kD,oBAAoB,EACpBC,wBAAyB,GACzBC,oBAAqB,gDACrBC,iBAAkB,EAClBC,cAAe,SAAS5gD,EAAK6gD,GAC3B,MAAO,KAGXC,OACEP,UAAWnqD,EAAWuF,QAAQ,6BAC9B6kD,oBAAoB,EACpBC,wBAAyB,GACzBC,oBAAqB,gDACrBC,iBAAkB,GAEpBI,QACEC,WAAY,EACZ9gD,OACE4jB,MAAM,EACNm9B,MAAM,GAERjzB,QACElK,MAAM,EACNm9B,MAAM,EACNC,OAAQ,EACRC,UAAW,IAGf/B,OAAQA,EACRgC,SAAS,EACTC,aACEjvC,QAAS,SAAS0mB,EAAOwoB,EAAMC,EAAMC,GACnC,GAAIvgD,EACJ,OAA6B,KAAzBugD,EAASC,aACXxgD,GACEygD,WAAYxC,EAAW5wB,WAAWgzB,GAAM35C,KACxCxF,MAAO9N,KAAKstD,IAAIJ,IAEXnrD,EAAWuF,QAAQ,wBAAyBsF,IACjB,IAAzBugD,EAASC,aAClBxgD,GACEygD,WAAYxC,EAAW5wB,WAAWgzB,GAAM35C,KACxCxF,MAAO9N,KAAKstD,IAAIJ,IAEXnrD,EAAWuF,QAAQ,qBAAsBsF,IACd,IAAzBugD,EAASC,aAClBxgD,GACEygD,WAAYxC,EAAW5wB,WAAWgzB,GAAM35C,KACxCxF,MAAO9N,KAAKstD,IAAIJ,IAEXnrD,EAAWuF,QAAQ,iCAAkCsF,KAE5DA,GACEygD,WAAYxC,EAAW5wB,WAAWgzB,GAAM35C,KACxCxF,MAAO9N,KAAKstD,IAAIJ,IAEXnrD,EAAWuF,QAAQ,+BAAgCsF,OAKlE5F,EAAQumD,QACDvmD,EAAQwmD,KAAK1mD,EAAM0+C,GAAS1+C,KAAK,SAE1Csb,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIvb,EAUJ,OATAA,GAAUrF,QAAQqF,QAAQsb,GAC1BD,EAAOrP,OAAO,QAAS,SAASlF,GAC9B,GAAoB,MAAhBuU,EAAOggC,MAET,MADAuI,GAAY5jD,EAASqb,EAAOggC,OACrBhgC,EAAO5W,IAAI,SAAU,WAC1B,MAAOm/C,GAAY5jD,EAASqb,EAAOggC,WAIlChgC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,0BAA2B,aAAc69B,IAE1DC,EAAgC,SAAS9rB,EAAWD,GAClD,GAAIw5B,GAAkBrrC,EAAM8I,EAAQvnB,CA0CpC,OAzCAA,GAAWuwB,EAAUrvB,IAAI,6BAA6B,GACtDqmB,EAAS,SAASvY,EAAOd,EAAI67C,EAAyBC,GACpD,GAAI/4B,EAMJ,OALAA,GAAOjxB,GACL+pD,wBAAyBA,EACzBC,uBAAwBA,IAE1B/4B,EAAOX,EAASW,GAAMjiB,GACfd,EAAG+iB,KAAKA,IAEjB64B,EAAmB,SAASnmB,GAC1B,GAAIsmB,EAGJ,OAFAA,GAAWxuD,EAAE4K,KAAK,EAAGs9B,IACrBsmB,EAAWxuD,EAAE2K,KAAK,IAAK6jD,IAChB5tD,KAAKgoC,MAAM4lB,IAEpBxrC,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIvb,EAoBJ,OAnBAA,GAAUrF,QAAQqF,QAAQsb,GAC1BD,EAAOrP,OAAOuP,EAAOsrC,qBAAsB,SAASxL,GAClD,GAAIza,GAAc+lB,EAAwBG,EAAeJ,EAAyB7lB,CAClF,IAAa,MAATwa,EAaF,MAZAxa,GAAcwa,EAAMta,aAAesa,EAAMta,aAAesa,EAAMC,eAC9DwL,EAAgBzL,EAAMC,eACtB1a,EAAeya,EAAMva,cACjBgmB,EAAgBjmB,GAClB6lB,EAAwC,IAAd7lB,EAAoBimB,EAC9CH,EAAwC,IAAf/lB,EAAqBkmB,IAE9CJ,EAA0B,IAC1BC,EAAwC,IAAf/lB,EAAqBC,GAEhD6lB,EAA0BD,EAAiBC,EAA0B,GACrEC,EAAyBF,EAAiBE,EAAyB,GAC5DziC,EAAO7I,EAAQC,EAAKorC,EAAyBC,KAGjDtrC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyB,cAAe,WAAY89B,KAEpEh9C,KAAKjE,MA2BR,WACE,GAAIgvD,GAA0Bh+C,EAAUi+C,EAAetvD,EAAQI,CAE/DA,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,gBAExBsvD,EAAgB,SAASn8C,GAGvB,MAFAi6B,GAAEj6B,GAAIc,QAAQgiB,WACdmX,EAAEj6B,GAAI2R,MACCsoB,EAAEj6B,GAAI8O,UAGfotC,EAA2B,WACzB,GAAI3rC,EA6FJ,OA5FAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQ,UAAW,SAASxJ,GAC1C,GAAIo1C,GAAOC,EAAeC,CAC1B,IAAMt1C,EAAQgT,eAAe/lB,QAAQ,gBAmFrC,MAhFAooD,IAAgB,EAChBD,EAAQG,SAAS9rC,EAAI,GAAIwpB,EAAE,qBAAqB,KAC9CuiB,gBAAgB,EAChBvP,MAAM,EACNwP,YAAa,SAASz8C,GACpB,MAAOA,GAAGE,UAAUw8C,SAAS,iBAE/BC,MAAO,SAAS/8C,GACd,QAAKq6B,EAAEr6B,GAAM+1B,SAAS,UAM1BymB,EAAM3qC,GAAG,OAAQ,SAAS7R,EAAMg9C,GAC9B,GAAIC,GAAWpgD,CAKf,OAJAA,GAASw9B,EAAEr6B,GAAMnD,SACjB4/C,EAAgB5/C,EAAOk5B,SAAS,sBAChCsE,EAAExH,SAAS+H,MAAMx8B,SAAS,eAC1B6+C,EAAY5iB,EAAEr6B,GAAM+J,KAAK,0BAA0BsuC,GAAG,YAC/C7qD,OAAO0vD,aAAalhD,MAAMgE,EAAMg9C,KAEzCR,EAAM3qC,GAAG,SAAU,SAAS7R,GAC1B,MAAOq6B,GAAEr6B,GAAM5B,SAAS,uBAE1Bo+C,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIm9C,GAAmBC,EAAch3C,EAAOi3C,EAAWxgD,EAAQygD,EAAepnB,EAAQ+c,CA4CtF,OA3CAp2C,GAASw9B,EAAEr6B,GAAMnD,SACjBw9B,EAAE,cAAcnrB,SAChBrS,EAASw9B,EAAEr6B,GAAMnD,SACjBwgD,EAAYxgD,EAAOk5B,SAAS,uBAAyBl5B,EAAOk5B,SAAS,oBAEnEunB,EADEb,GAAiBY,EACHZ,IAAkBY,EAElBhjB,EAAEr6B,GAAMkB,QAAQg1B,OAAOhvB,KAAOrK,EAAOqE,QAAQg1B,OAAOhvB,GAEtEi2C,EAAoB3vD,OAAO0vD,aAAaxiB,OACxCL,EAAExH,SAAS+H,MAAMjhB,YAAY,eAC7Buc,EAAS,KACTknB,EAAeD,EAAkBziD,OAASyiD,EAAkB,GAAKn9C,EAC7Dq9C,EACFj3C,EAAQi0B,EAAE+iB,GAAch3C,MAAM,6BAE9BA,EAAQi0B,EAAE+iB,GAAch3C,QACxB8vB,EAASr5B,EAAOqE,QAAQg1B,OAAOhvB,IAE5Bo2C,EAiBDrK,EADEkK,EAAkBziD,OACX/M,EAAEC,IAAIuvD,EAAmB,SAASn9C,GACzC,MAAOA,GAAOq6B,EAAEr6B,GAAMkB,QAAQmjB,MAGtBgW,EAAEr6B,GAAMkB,QAAQmjB,KAnB1B4uB,EADEkK,EAAkBziD,OACX/M,EAAEC,IAAIuvD,EAAmB,SAASn9C,GACzC,MAAOA,GAAOq6B,EAAEr6B,GAAMkB,QAAQmjB,MAGtBgW,EAAEr6B,GAAMkB,QAAQmjB,IAExB84B,EAAkBziD,OACpB/M,EAAEsJ,KAAKkmD,EAAmB,SAASn9C,GACjC,MAAOu8C,GAAcv8C,KAGvBu8C,EAAcv8C,IAWX4Q,EAAOgT,MAAM,iBAAkBqvB,EAAQ7sC,EAAO8vB,KAEvDwmB,EAASa,YAAY/vD,SACnBgwD,OAAQ,GACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvBhtC,EAAO5W,IAAI,WAAY,WAE5B,MADA6W,GAAIkB,MACGyqC,EAAM9mB,gBAKjB/kB,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqB6rC,IAErC/qD,KAAKjE,MA2BR,WACE,GAAIuwD,GAAwBC,EAA8BC,EAAyC9wD,EAAQI,CAE3GA,GAAQC,KAAKD,MAEbJ,EAASiD,QAAQjD,OAAO,gBAExB4wD,EAAyB,SAASpqC,EAAOpa,GACvC,GAAIsX,GAAMqtC,EAAcC,EAAsBC,CAuC9C,OAtCAD,GAAuB,GACvBD,GACEG,SAAU,IACVC,OAAQ,UAEVF,EAAe,SAAUxoD,GACvB,MAAO,UAASmb,GACd,GAAIwtC,GAAaC,CAIjB,OAHAA,GAAcztC,EAAI9G,KAAK,iBACvBs0C,EAAcxtC,EAAI9G,KAAK,mBACvBs0C,EAAY9G,YAAY,UACjB+G,EAAY/G,YAAY,UAEhCjqD,MACHqjB,EAAO,SAASC,EAAQC,EAAKC,GAoB3B,MAnBAF,GAAOrP,OAAOuP,EAAOytC,gBAAiB,SAASroB,GAE7C,MADAA,GAAStlB,EAAOtP,MAAMwP,EAAOytC,iBACzBroB,EAAO2X,OACFh9B,EAAIzS,SAAS,iBAEb8/C,EAAartC,KAGxBA,EAAIgB,GAAG,QAAS,iCAAkC,SAAShW,GAGzD,MAFAA,GAAME,iBACNmiD,EAAartC,GACNA,EAAI9G,KAAK,iBAAiBy0C,YAAYR,KAE/CntC,EAAIgB,GAAG,QAAS,eAAgB,SAAShW,GACvC,GAAIq6B,EAGJ,OAFAr6B,GAAME,iBACNm6B,EAAStlB,EAAOtP,MAAMwP,EAAOytC,iBACtBllD,EAAW2a,WAAW,kBAAmBkiB,KAE3CtlB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,mBAAoB,UAAW,aAAcotC,IAE9DC,EAA+B,SAAStqD,EAAUivB,EAAWD,EAAUlyB,GACrE,GAAIqgB,GAAMze,CAyCV,OAxCAA,GAAWuwB,EAAUrvB,IAAI,8BACzBud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAY6S,EAAW/uC,EAAY8e,CAkCvC,OAjCA9e,GAAarK,EAAWuF,QAAQ,wBAChCghC,EAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,0BAE/Cq1C,EAAY,WACV,MAAO94B,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,yBAE/ColB,EAAS,SAASyc,GAChB,GAAIuoB,GAAkBtjD,EAAKujD,EAAoBz8B,EAAQjmB,EAAO2iD,EAAcC,CAoB5E,OAnBAD,GAAenrD,EAASvD,QAAQ,qBAC9BmX,QAASwJ,EAAOxJ,QAAQ0T,KACxBob,OAAQA,EAAOpb,OAEjB9e,EAAQ3E,OAAO6+B,EAAOgX,iBAAiB9zB,OAAOze,GAC9CsnB,EAAS5qB,OAAO6+B,EAAOiX,kBAAkB/zB,OAAOze,GAChD+jD,EAAqB1iD,EAAQ,IAAMimB,EACnC9mB,GACE0G,KAAMq0B,EAAOr0B,KACb88C,aAAcA,EACdD,mBAAoBA,EACpBvoB,aAAcD,EAAOG,eAAiB,EACtCD,YAAaF,EAAOI,cAAgB,EACpCoT,UAAWA,IACX7S,WAAYA,KAEd+nB,EAAgBhuC,EAAOoS,OACvBr1B,EAAE8uB,OAAOmiC,EAAezjD,GACxBsjD,EAAmBj8B,EAAStwB,GAAU0sD,GAC/B/tC,EAAIsS,KAAKs7B,IAElB7tC,EAAOrP,OAAO,SAAU,SAAS20B,GAC/B,MAAOzc,GAAOyc,KAETtlB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,OAIdvjB,EAAOwjB,UAAU,yBAA0B,aAAc,cAAe,WAAY,aAAcqtC,IAElGC,EAA0C,SAAS1kD,EAAYqoB,EAAUpxB,GACvE,GAAIuuD,GAAsBluC,CAkC1B,OAjCAkuC,IAAuB,EACvBluC,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIgR,GAAgBg9B,CAiBpB,OAhBAA,GAAazkB,EAAE,SACfxpB,EAAIkuC,MAAMD,GACVh9B,EAAiB,KACjBjR,EAAIgB,GAAG,QAAS,SAAShW,GAIvB,MAHAA,GAAME,iBACN8iD,GAAwBA,EACxB/8B,EAAiBJ,IAAWpQ,OAAOwtC,GAAY9iD,QAC3C6iD,EACKxlD,EAAW2a,WAAW,iCAEtB3a,EAAW2a,WAAW,iCAGjCpD,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAENnB,EAAO5W,IAAI,0BAA2B,SAAUtE,GACrD,MAAO,UAASyF,EAAKqyC,GACnB,GAAIxwC,GAAKmF,CAQT,OAPA2f,GAAeG,SAEbjlB,EADEwwC,EAAQ9yC,OAAS,EACb,6CAEA,6CAERyH,EAAO7R,EAAWuF,QAAQmH,GACnB6T,EAAI9G,KAAK,SAAS5H,KAAKA,KAE/B7U,SAGHqjB,KAAMA,IAIV1jB,EAAOwjB,UAAU,6CAA8C,aAAc,aAAc,aAAcstC,KAExGxsD,KAAKjE,MA2BR,WACE,GAAI0xD,GAAsB1gD,EAAUQ,EAASK,EAAOlS,EAAQoS,EAAYhS,EAAOqS,EAASE,CAExFvS,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBS,EAAatS,KAAKD,MAAMuS,WAExBP,EAAa/R,KAAKD,MAAMgS,WAExBf,EAAWhR,KAAKD,MAAMiR,SAEtBQ,EAAUxR,KAAKD,MAAMyR,QAErBY,EAAUpS,KAAKD,MAAMqS,QAErBzS,EAASiD,QAAQjD,OAAO,kBAExB+xD,EAAuB,SAAS1uD,GAC9B,GAAIqgB,GAAMwoC,CAuHV,OAtHAA,GAAc,SAAS5jD,EAAS6jD,GAC9B,GAAI/jD,GAAM4pD,EAAMlL,EAAS55C,CAyFzB,OAxFAA,GAAQ5E,EAAQ4E,QAChB5E,EAAQwqC,OAAO,KACfkf,EAAOtxD,EAAEC,IAAIwrD,EAAY,SAASvrD,GAChC,MAAOwJ,QAAOxJ,EAAEqxD,OAElB7pD,KACAA,EAAK8pD,SACH9pD,KAAM1H,EAAEksD,IAAIoF,EAAMtxD,EAAEC,IAAIwrD,EAAY,SAASgG,GAC3C,MAAOA,GAAEC,kBAEXjlD,OACE0/C,UAAW,2BAGfzkD,EAAK8pD,SACH9pD,KAAM1H,EAAEksD,IAAIoF,EAAMtxD,EAAEC,IAAIwrD,EAAY,SAASgG,GAC3C,MAAOA,GAAEE,eAEXllD,OACE0/C,UAAW,0BAGf/F,GACEkG,MACEC,aACEpa,IAAK,EACLqa,MAAO,EACP3P,KAAM,EACN4P,OAAQ,GAEVC,YAAa,OACbC,WAAW,GAEbC,OACEgF,UAAW,EAAG,OACdjnD,IAAK2mD,EAAK,GACV1mD,IAAK5K,EAAE6xD,KAAKP,GACZQ,KAAM,OACNC,UAAWT,EACXxE,UAAWnqD,EAAWuF,QAAQ,gCAC9B6kD,oBAAoB,EACpBC,wBAAyB,GACzBC,oBAAqB,gDACrBC,iBAAkB,GAEpBG,OACE1iD,IAAK,EACLmiD,UAAWnqD,EAAWuF,QAAQ,gCAC9B6kD,oBAAoB,EACpBC,wBAAyB,GACzBC,oBAAqB,gDACrBC,iBAAkB,GAEpBI,QACEC,WAAY,EACZ9gD,OACE4jB,MAAM,EACNm9B,MAAM,GAERjzB,QACElK,MAAM,EACNm9B,MAAM,EACNC,OAAQ,EACRC,UAAW,IAGf/B,QAAS,qBAAsB,yBAC/BgC,SAAS,EACTC,aACEjvC,QAAS,SAAS0mB,EAAOwoB,EAAMC,EAAMC,GACnC,GAAIiE,GAAeC,CAGnB,OAFAD,GAAgBtoD,OAAOmkD,GAAMpiC,OAAO9oB,EAAWuF,QAAQ,0BACvD+pD,EAAerxD,KAAKgoC,MAAMklB,GACG,IAAzBC,EAASC,YACJrrD,EAAWuF,QAAQ,4BACxB8pD,cAAeA,EACfC,aAAcA,IAGTtvD,EAAWuF,QAAQ,yBACxB8pD,cAAeA,EACfC,aAAcA,OAMxBrqD,EAAQumD,QACDvmD,EAAQwmD,KAAK1mD,EAAM0+C,GAAS1+C,KAAK,SAE1Csb,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIvb,EAqBJ,OApBAA,GAAUrF,QAAQqF,QAAQsb,GAC1BD,EAAO5W,IAAI,SAAU,WACnB,GAAI4W,EAAOggC,MACT,MAAOuI,GAAY5jD,EAASqb,EAAOggC,MAAMqO,QAG7CruC,EAAO5W,IAAI,oCAAqC,WAE9C,MADA6W,GAAIhU,SAAS06C,YAAY,QAClB73C,EAAQ,IAAK,WAClB,GAAIkR,EAAOggC,MACT,MAAOuI,GAAY5jD,EAASqb,EAAOggC,MAAMqO,UAI/CruC,EAAOrP,OAAO,QAAS,SAASlF,GAC9B,GAAoB,MAAhBuU,EAAOggC,MAGX,MAAOuI,GAAY5jD,EAASqb,EAAOggC,MAAMqO,QAEpCruC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,aAAcuuC,KAEhDztD,KAAKjE,MA2BR,WACE,GAAIuyD,GAA0BC,EAAyBxhD,EAAUE,EAAUvR,EAAQI,EAAOwS,EACxFxL,KAAaA,SAAW,SAAS2L,GAAQ,IAAK,GAAIC,GAAI,EAAGC,EAAI5S,KAAKoN,OAAQuF,EAAIC,EAAGD,IAAO,GAAIA,IAAK3S,OAAQA,KAAK2S,KAAOD,EAAM,MAAOC,EAAK,UAEzI5S,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBqB,EAAOvS,KAAKD,MAAMwS,KAElBigD,EAA0B,SAASrsC,EAAOC,EAAQ4Q,EAAKjrB,EAAYqoB,EAAU/nB,EAAiBrJ,EAAYD,EAAI4zC,GAC5G,GAAItzB,EA6JJ,OA5JAA,GAAO,SAASC,EAAQC,EAAKgL,GAC3B,GAAIqoB,GAAkBC,EAAqBC,EAAmBC,EAAmBC,EAAkBpzB,EAAQ2Q,EAAck+B,CAuJzH,OAtJAnvC,GAAO4zB,OAAQ,EACfN,EAAmB31B,UAAU0yB,OAC7BkD,EAAsB51B,UAAU0yB,OAChCqD,EAAmB,WAEjB,MADAJ,GAAmB31B,UAAU0yB,OACtBkD,EAAsB51B,UAAU0yB,QAEzCrwB,EAAO6zB,cAAgB,SAASC,GAC9B,MAAOR,GAAmBA,EAAiBrvC,KAAK6vC,IAElD9zB,EAAO+zB,iBAAmB,SAASD,GAIjC,GAHAR,EAAmBA,EAAiBlpC,OAAO,SAAS8O,GAClD,MAAOA,GAAG1W,IAAI,UAAYsxC,EAAWtxC,IAAI,UAEvCsxC,EAAWtxC,IAAI,MACjB,MAAO+wC,GAAsBA,EAAoBtvC,KAAK6vC,IAG1DN,EAAoB,SAASz/B,GAC3B,GAAI8gC,EAIJ,OAHAA,GAAW93C,EAAEC,IAAIs2C,EAAiBn+B,OAAQ,SAAS2+B,GACjD,MAAOT,GAAmByB,OAAOhB,EAAWiB,KAAMhhC,EAAIuC,GAAI0J,EAAOqS,KAAK7b,QAAS,UAE1E/W,EAAGoX,IAAIg+B,IAEhBpB,EAAoB,SAAS1/B,GAC3B,GAAI8gC,EAIJ,OAHAA,GAAW93C,EAAEC,IAAIu2C,EAAoBp+B,OAAQ,SAAS2+B,GACpD,MAAOT,GAAmB,UAAU,OAAQS,EAAWx9B,MAElD7W,EAAGoX,IAAIg+B,IAEhBsa,KACAnvC,EAAOg0B,OAAS,SAAS94B,EAAK5B,GAC5B,GAAI26B,GAAUC,EAAUC,EAAargC,EAAMrI,CAmB3C,IAlBAA,EAAQwD,EAAKiM,EAAI/J,eACjB2C,EAAOkM,EAAOxJ,QAAQ1C,KACtBqgC,EAAcn0B,EAAOxJ,QAAQ49B,YACjB,MAARtgC,IACFA,MAEiB,MAAfqgC,IACFA,MAEE1wC,EAAQ9C,KAAKmT,EAAMrI,GAAS,GAC9BqI,EAAK7P,KAAKwH,GAEZ0oC,EAAYj5B,GAAO5B,GAAS,KAC5B0G,EAAOxJ,QAAQ1C,KAAOA,EACtBogC,EAAWn3C,EAAEsY,MAAM2K,EAAOqS,KAAKve,MAC/BmgC,EAAWl3C,EAAEoc,KAAK+6B,EAAU,SAASh7B,GACnC,MAAOA,GAAG,KAAOzN,KAEdwoC,EAEH,MADAC,GAASjwC,MAAMiX,EAAK5B,IACb0G,EAAOqS,KAAKve,KAAOogC,GAG9Bl0B,EAAOq0B,UAAY,SAASn5B,GAC1B,GAAIg5B,GAAUpgC,EAAMrI,CAQpB,OAPAA,GAAQwD,EAAKiM,EAAI,GAAG/J,eACpB2C,EAAOkM,EAAOxJ,QAAQ1C,KACtBogC,EAAWn3C,EAAEsY,MAAM2K,EAAOqS,KAAKve,MAC/B/W,EAAEuhB,OAAO41B,EAAU,SAASh5B,GAC1B,MAAOA,GAAI,KAAOzP,IAEpBuU,EAAOqS,KAAKve,KAAOogC,EACZn3C,EAAE2pC,KAAK1mB,EAAOqS,KAAKve,KAAMrI,IAElCuU,EAAO5W,IAAI,eAAgB,SAASmB,EAAK6kD,EAAUr7B,GACjD,GAAI5C,GAAQiC,CAqBZ,OApBApT,GAAOqS,MACL7b,QAASwJ,EAAO/I,UAChB4sC,UAAWuL,EACXC,WAAYt7B,EACZ0gB,aAAa,EACbtxC,OAAQ6c,EAAOxJ,QAAQ+c,oBACvBrZ,YAAa,KACbpG,SAEFkM,EAAO4zB,OAAQ,EACf5zB,EAAOw0B,YAAc72B,UAAU0yB,OAC/BqD,IACAviB,EAASzxB,EAAWuF,QAAQ,iBAC5Bgb,EAAI9G,KAAK,iBAAiBoZ,KAAKpB,GAC/BiC,EAAU1zB,EAAWuF,QAAQ,mCAC7Bgb,EAAI9G,KAAK,UAAUoZ,KAAKa,EAAU,MAClCnT,EAAI9G,KAAK,cAAc7P,IAAI,IAC3BP,EAAgBuoB,KAAKrR,EAAK,WACxB,MAAOD,GAAOsvC,oBAAqB,IAE9BtvC,EAAOsvC,oBAAqB,IAErCtvC,EAAO5W,IAAI,gBAAiB,SAASmB,EAAK8nB,EAAMmiB,GAC9C,GAAIvI,GAAM3gB,CAaV,OAZAtL,GAAOqS,KAAOA,EACdrS,EAAO4zB,OAAQ,EACf5zB,EAAOw0B,YAAc72B,UAAUC,OAAO42B,GACtCd,IACApoB,EAAO5rB,EAAWuF,QAAQ,eAC1BgnC,EAAOvsC,EAAWuF,QAAQ,yCAC1Bgb,EAAI9G,KAAK,iBAAiBoZ,KAAKjH,GAC/BrL,EAAI9G,KAAK,UAAUoZ,KAAK0Z,EAAO,MAC/BhsB,EAAI9G,KAAK,cAAc7P,IAAI,IAC3BP,EAAgBuoB,KAAKrR,EAAK,WACxB,MAAOD,GAAOsvC,oBAAqB,IAE9BtvC,EAAOsvC,oBAAqB,IAErCr+B,EAAehR,EAAI9G,KAAK,kBACxBmH,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAI+pC,GAAgB9jB,EAAgB/Q,EAAM5f,EAAQT,CAGlD,IAFAmL,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,WA4BV,MAzBAvgB,IACE00C,qBAAqB,EACrBC,eAAe,GAEbl1B,EAAO4zB,OACT9zC,EAAU+iB,EAAMsO,OAAO,QAASnR,EAAOqS,MACvC2iB,EAAiB,yBAEjBl1C,EAAU+iB,EAAMyI,KAAKtL,EAAOqS,MAC5B2iB,EAAiB,yBAEnBl1C,EAAQD,KAAK,SAAS4E,GACpB,MAAOgvC,GAAkBhvC,GAAM5E,KAAK,SAAUiF,GAC5C,MAAO,YACL,MAAO0uC,GAAkB/uC,KAE1B/H,OAAOmD,KAAK,SAAUiF,GACvB,MAAO,YACL,MAAO4uB,GAAII,MAAMqhB,SAAS1wC,EAAK+R,QAAS/R,EAAKvE,IAAKK,GAAQV,KAAK,SAASwyB,GACtE,MAAO5pB,GAAW2a,WAAW4xB,EAAgB3iB,OAGhD31B,SAELw0B,EAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QAC1CtL,EAAQD,KAAK,SAAS4E,GAE3B,MADAysB,GAAeG,SACRtoB,EAAgBkmB,MAAMhP,OAGhCvjB,OACHujB,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIVkvC,EAA2B,SAASpsC,EAAO6Q,EAAKjrB,EAAYqoB,EAAU/nB,EAAiB+Z,GACrF,GAAI/C,EAmDJ,OAlDAA,GAAO,SAASC,EAAQC,EAAKgL,GAC3B,GAAI3K,GAAQ2Q,CA6CZ,OA5CAjR,GAAOG,MACL1b,KAAM,GACNsvB,KAAM,MAERzT,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBzsB,EAAM0b,EAAMlJ,EAAWnX,EAASsvD,EAAUr7B,CAG9D,IAFA9oB,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,WAmBV,MAhBAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjD3G,EAAOub,EAAOG,KAAK1b,KACnBwS,EAAY+I,EAAO/I,UACnBm4C,EAAWpvC,EAAOG,KAAKivC,SACvBr7B,EAAO/T,EAAOG,KAAK4T,KACnBj0B,EAAU4zB,EAAII,MAAMyhB,WAAWt+B,EAAWm4C,EAAUr7B,EAAMtvB,GAC1D3E,EAAQD,KAAK,SAAS8R,GAQpB,MAPAA,GAAS5U,EAAEC,IAAI2U,EAAQ,SAAU7M,GAC/B,MAAO,UAAS7H,GACd,MAAO6lB,GAAO1E,WAAW,QAASnhB,KAEnCP,OACHw0B,EAAeG,SACf5oB,EAAW2a,WAAW,wBAAyBzR,GACxC5I,EAAgBkmB,MAAMhP,KAExBngB,EAAQD,KAAK,KAAM,WAExB,MADAqxB,GAAeG,SACRk+B,QAAQ/7C,IAAI,YAGtB9W,OACHsjB,EAAO5W,IAAI,gBAAiB,SAASmB,EAAK6kD,EAAUr7B,GAElD,MADAhrB,GAAgBuoB,KAAKrR,GACdD,EAAOG,MACZ1b,KAAM,GACN2qD,SAAUA,EACVr7B,KAAMA,KAGV9C,EAAehR,EAAI9G,KAAK,kBACxB8G,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAOwjB,UAAU,sBAAuB,UAAW,WAAY,eAAgB,aAAc,aAAc,kBAAmB,aAAc,KAAM,uBAAwBqvC,IAE1K7yD,EAAOwjB,UAAU,uBAAwB,UAAW,eAAgB,aAAc,aAAc,kBAAmB,WAAYovC,KAE9HtuD,KAAKjE,MA2BR,WACE,GAAI8yD,GAAqBC,EAAoBC,EAAgCjiD,EAAaC,EAAUQ,EAASK,EAAOlS,EAAQoS,EAAYhS,EAAOqS,EAASE,EACtJzP,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbuS,EAAatS,KAAKD,MAAMuS,WAExBT,EAAQ7R,KAAKD,MAAM8R,MAEnBL,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBe,EAAa/R,KAAKD,MAAMgS,WAExBK,EAAUpS,KAAKD,MAAMqS,QAErBrB,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,kBAExBmzD,EAAsB,SAAU1iD,GAK9B,QAAS0iD,GAAoBl/C,EAAOyM,EAAW6N,EAAMigB,EAAS8kB,EAAKzR,EAAKH,EAAS6R,EAAI/mD,EAAgByO,EAAUqmB,EAASqgB,EAAQC,EAAWxiC,EAAW3Y,EAAsB+sD,EAAuBr3C,EAAS4B,GAC1M1d,KAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAK64C,EACVjzD,KAAKwhD,IAAMA,EACXxhD,KAAK6D,OAASw9C,EACdrhD,KAAKyQ,EAAIyiD,EACTlzD,KAAKmM,eAAiBA,EACtBnM,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKshD,OAASA,EACdthD,KAAKuhD,UAAYA,EACjBvhD,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAKmzD,sBAAwBA,EAC7BnzD,KAAK8b,QAAUA,EACf9b,KAAK0d,2BAA6BA,EAClC3M,EAAY/Q,MACZA,KAAKmzD,sBAAsBv8B,QAC3B52B,KAAK4T,MAAMqK,eACXje,KAAKozD,YAAa,EACdpzD,KAAKub,mBAAmBvb,KAAK6D,OAAOC,MAAO,mBAG/C9D,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,0BAChDvI,KAAKkiD,0BACLniD,EAAMqR,wBAAwBpR,KAAK4T,MAAO,UAAW,SAAUxL,GAC7D,MAAO,YACL,MAAOA,GAAM+qD,sBAAsBE,UAEpCrzD,QAmfL,MAvhBA6C,GAAOiwD,EAAqB1iD,GAE5B0iD,EAAoB1yC,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,cAAe,eAAgB,KAAM,mBAAoB,cAAe,aAAc,YAAa,eAAgB,aAAc,yBAA0B,mBAAoB,aAAc,gCAqC7R0yC,EAAoBljD,UAAU87C,UAAY,WACxC,GAAItoD,EAOJ,OANAA,GAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,MAAOA,GAAMkrD,aAEdtzD,OACIoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,QAGzD8yD,EAAoBljD,UAAU2jD,QAAU,SAASC,EAAWC,GAC1D,GAAIC,EACJ,OAAI1zD,MAAKwzD,YAAcA,EACd,MAETxzD,KAAK2zD,aAAe3zD,KAAKwzD,UACzBE,EAAoB1zD,KAAKwzD,UACzBxzD,KAAKwzD,UAAYA,EACjBxzD,KAAKyzD,KAAOA,EACRzzD,KAAK2zD,YACP3zD,KAAK0rD,YAAYvoD,KAAK,SAAUiF,GAC9B,MAAO,YAEL,MADAA,GAAMurD,aAAc,EACbvrD,EAAM+qD,sBAAsBS,eAEpC5zD,OACMA,KAAKwzD,UAAY,GAAKE,GAAqB,IACpD1zD,KAAK6zD,aAAc,EACnB7zD,KAAKm3B,YAAYh0B,KAAK,SAAUiF,GAC9B,MAAO,YAEL,MADAA,GAAMyrD,aAAc,EACbzrD,EAAM+qD,sBAAsBS,eAEpC5zD,QAEkB,MAAnBA,KAAKwzD,UACAxzD,KAAKqgB,UAAUqG,WAAW,gBADnC,SAKFosC,EAAoBljD,UAAUiN,QAAU,SAASpM,GAG/C,MAFAzQ,MAAKgb,cAAc,IAAKvK,GACxBzQ,KAAKm3B,YACEn3B,KAAK+c,mBAGd+1C,EAAoBljD,UAAUoN,aAAe,SAAStP,GAGpD,MAFA1N,MAAKmb,eAAezN,EAAOiP,SAAUjP,EAAOkM,IAC5C5Z,KAAKm3B,YACEn3B,KAAK+c,mBAGd+1C,EAAoBljD,UAAUqN,UAAY,SAASC,GAGjD,MAFAld,MAAK0a,aAAawC,EAAUC,SAASR,SAAUO,EAAUxP,OAAOkM,IAChE5Z,KAAKm3B,YACEn3B,KAAK+c,mBAGd+1C,EAAoBljD,UAAUwN,mBAAqB,SAASC,GAG1D,MAFArd,MAAKib,kBAAkBoC,EAAa3P,QACpC1N,KAAKm3B,YACEn3B,KAAK+c,mBAGd+1C,EAAoBljD,UAAUiO,mBAAqB,SAASR,GAC1D,MAAOrd,MAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAW,wBAAwBpX,KAAK,SAAUiF,GAC7G,MAAO,UAASwV,GAEd,aADOA,GAAYP,EAAazD,IACzBxR,EAAMsV,2BAA2BhC,aAAatT,EAAMwL,MAAM2G,UAAWqD,EAAa,wBAAwBza,KAAKiF,EAAM2U,mBAE7H/c,QAGL8yD,EAAoBljD,UAAU0N,iBAAmB,SAAS/I,GACxD,GAAI2G,GAASqC,CAOb,OANArC,MACAqC,EAAavd,KAAK4a,SAASpU,SAC3B0U,EAAQ9D,KAAOmG,EAAWnG,KAC1B8D,EAAQzU,OAAS8W,EAAW9W,OAC5ByU,EAAQsC,YAAcD,EAAWC,YACjCtC,EAAQuC,MAAQF,EAAWE,MACpBzd,KAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAW,wBAAwBpX,KAAK,SAAUiF,GAC7G,MAAO,UAASwV,GAEd,MADAA,GAAYrJ,GAAQ2G,EACb9S,EAAMsV,2BAA2BhC,aAAatT,EAAMwL,MAAM2G,UAAWqD,EAAa,wBAAwBza,KAAKiF,EAAM2U,mBAE7H/c,QAGL8yD,EAAoBljD,UAAUmN,gBAAkB,WAC9C,GAAIe,GAAaP,CAWjB,OAVAvd,MAAK0b,aAAa1b,KAAK6D,OAAOC,MAAO9D,KAAK4a,SAASpU,SAAU,iBAC7D+W,EAAavd,KAAK4a,SAASpU,SAC3BsX,KACAA,EAAYhE,QAAU9Z,KAAK4T,MAAM2G,UACjCuD,EAAYqpC,UAAYnnD,KAAK4T,MAAM8+C,SACnC50C,EAAY1G,KAAOmG,EAAWnG,KAC9B0G,EAAYrX,OAAS8W,EAAW9W,OAChCqX,EAAYN,YAAcD,EAAWC,YACrCM,EAAYL,MAAQF,EAAWE,MAC/BK,EAAYrN,EAAI8M,EAAW9M,EACpBzQ,KAAKyQ,EAAE0J,KAAKna,KAAKoa,GAAGgd,MAAMlZ,YAAYJ,GAAc9d,KAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAW,0BAA0BpX,KAAK,SAAUiF,GACnK,MAAO,UAAS6M,GACd,GAAIkJ,GAAYC,EAAkBrW,EAAM0V,EAAOY,EAAUC,EAAUlH,EAAMmH,CAoEzE,OAnEAxW,GAAOkN,EAAO,GACdmJ,EAAmBnJ,EAAO,GAC1BqJ,EAAWje,EAAEC,IAAIyH,EAAKuW,SAAU,SAAS9B,GAEvC,MADAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACPmK,IAETpF,EAAO/W,EAAEC,IAAIyH,EAAKqP,KAAM,SAASoF,GAE/B,MADAA,GAAG5C,GAAK4C,EAAGjI,KACJiI,IAET+B,EAA4Ble,EAAEqN,OAAO0J,EAAM,SAASoH,GAClD,MAAOA,GAAIC,MAAQ,IAErBN,EAAa9d,EAAEC,IAAIyH,EAAKyV,YAAa,SAAShB,GAO5C,MANIA,GAAG5C,GACL4C,EAAG5C,GAAK4C,EAAG5C,GAAGvH,WAEdmK,EAAG5C,GAAK,OAEV4C,EAAGjI,KAAOiI,EAAGkC,WAAa,aACnBlC,IAETiB,EAAQpd,EAAEC,IAAIyH,EAAK4W,OAAQ,SAASnC,GAGlC,MAFAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACdmK,EAAGjI,KAAOiI,EAAGkC,UACNlC,IAETpU,EAAMiU,mBACFyB,EAAYrX,SACd4X,EAAWjW,EAAM4T,sBAAsB,SAAUsC,EAAUR,EAAYrX,QACvE2B,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAY1G,OACdiH,EAAWjW,EAAM4T,sBAAsB,OAAQ5E,EAAM0G,EAAY1G,MACjEhP,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAYN,cACda,EAAWjW,EAAM4T,sBAAsB,cAAemC,EAAYL,EAAYN,aAC9EpV,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAYL,QACdY,EAAWjW,EAAM4T,sBAAsB,QAASyB,EAAOK,EAAYL,OACnErV,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEvDjW,EAAM0W,QAAUhB,EAAYrN,EAC5BrI,EAAM8S,UAEF5W,MAAO8D,EAAM2W,UAAUxW,QAAQ,oCAC/BoU,SAAU,SACVqC,QAASV,IAETha,MAAO8D,EAAM2W,UAAUxW,QAAQ,kCAC/BoU,SAAU,OACVqC,QAAS5H,EACT6H,WAAW,EACXC,oBAAqBX,EAA0BnR,SAE/C9I,MAAO8D,EAAM2W,UAAUxW,QAAQ,yCAC/BoU,SAAU,cACVqC,QAASb,IAET7Z,MAAO8D,EAAM2W,UAAUxW,QAAQ,wCAC/BoU,SAAU,QACVqC,QAASvB,IAGbrV,EAAM+W,iBACC9e,EAAE+e,OAAOhB,EAAkB,SAASrP,EAAOW,GAChD,MAAOtH,GAAM+W,cAAc5X,MACzBqS,GAAIlK,EACJ6E,KAAM7E,EACNhC,OAAQqB,QAIb/O,QAGL8yD,EAAoBljD,UAAU0jD,SAAW,WACvC,GAAI/uD,GAAa8I,EAAY/I,CAiB7B,OAhBA+I,GAAarN,KAAK+e,UAAUxW,QAAQ,wBACpCjE,EAAQtE,KAAK+e,UAAUxW,QAAQ,wBAC7B+4B,YAAathC,KAAK4T,MAAMkG,QAAQvF,KAChC+5C,WAAYtuD,KAAK4T,MAAMg1B,OAAOr0B,OAEhChQ,EAAcvE,KAAK+e,UAAUxW,QAAQ,8BACnC+4B,YAAathC,KAAK4T,MAAMkG,QAAQvF,KAChC+5C,WAAYtuD,KAAK4T,MAAMg1B,OAAOr0B,KAC9Bu/C,UAAW/pD,OAAO/J,KAAK4T,MAAMg1B,OAAOgX,iBAAiB9zB,OAAOze,GAC5Dm6B,QAASz9B,OAAO/J,KAAK4T,MAAMg1B,OAAOiX,kBAAkB/zB,OAAOze,GAC3Dm2C,oBAAqBxjD,KAAK4T,MAAM0vC,MAAME,qBAAuB,IAC7DuQ,gBAAiB/zD,KAAK4T,MAAM0vC,MAAM0Q,oBAAsB,KACxDlrB,YAAa9oC,KAAK4T,MAAM0vC,MAAM2Q,gBAAkB,KAChDC,UAAWl0D,KAAK4T,MAAM0vC,MAAM4Q,WAAa,KACzCC,WAAYn0D,KAAK4T,MAAM0vC,MAAM8Q,aAAe,OAEvCp0D,KAAKmM,eAAewC,OAAOrK,EAAOC,IAG3CuuD,EAAoBljD,UAAUsyC,wBAA0B,WAyBtD,MAxBAliD,MAAK4T,MAAMlH,IAAI,wBAAyB,SAAUtE,GAChD,MAAO,UAASmG,EAAO6oB,GAIrB,MAHAhvB,GAAMisD,oBAAoBlxD,KAAK,WAC7B,MAAOiF,GAAM+qD,sBAAsBlgD,IAAImkB,KAElChvB,EAAMm5C,UAAU18B,WAAW,OAAQ,SAAU,gCAAiC,KAEtF7kB,OACHA,KAAK4T,MAAMlH,IAAI,uBAAwB,SAAUtE,GAC/C,MAAO,UAASmG,EAAOonB,GAIrB,MAHAvtB,GAAMisD,oBAAoBlxD,KAAK,WAC7B,MAAOiF,GAAM+qD,sBAAsBlgD,IAAI0iB,KAElCvtB,EAAMm5C,UAAU18B,WAAW,OAAQ,SAAU,2BAA4B,KAEjF7kB,OACHA,KAAK4T,MAAMlH,IAAI,wBAAyB,SAAUtE,GAChD,MAAO,UAASmG,EAAOonB,GACrB,MAAOvtB,GAAMisD,oBAAoBlxD,KAAK,WACpC,MAAOiF,GAAM+qD,sBAAsBmB,aAAa3+B,OAGnD31B,OACHA,KAAK4T,MAAMlH,IAAI,sBAAuB1M,KAAKu0D,UACpCv0D,KAAK4T,MAAMlH,IAAI,oBAAqB1M,KAAKw0D,sBAGlD1B,EAAoBljD,UAAU4kD,oBAAsB,SAAS3mD,EAAK4mD,EAAQC,GACxE,GAAItxD,EAIJ,OAHAsxD,GAAUl3C,YAAci3C,EACxBz0D,KAAKmzD,sBAAsBmB,aAAaI,GACxCtxD,EAAUpD,KAAKkuB,KAAKU,KAAK8lC,GAClBtxD,EAAQD,KAAK,KAAM,WACxB,MAAO0vD,SAAQ/7C,IAAI,WAIvBg8C,EAAoBljD,UAAUgzC,uBAAyB,WACrD,GAAIlvB,GAAYmvB,CAQhB,OAPAnvB,GAAa,mBAAqB1zB,KAAK4T,MAAM2G,UAAY,SACzDva,KAAKshD,OAAO7uB,UAAUzyB,KAAK4T,MAAO8f,EAAY,SAAUtrB,GACtD,MAAO,UAAS4c,GACd,MAAO5c,GAAMusD,kBAEd30D,OACH6iD,EAAc,mBAAqB7iD,KAAK4T,MAAM2G,UAAY,eACnDva,KAAKshD,OAAO7uB,UAAUzyB,KAAK4T,MAAOivC,EAAa,SAAUz6C,GAC9D,MAAO,UAAS4c,GAGd,MAFA5c,GAAMisD,oBACNjsD,EAAMwsD,kBACCxsD,EAAMysD,eAEd70D,QAGL8yD,EAAoBljD,UAAUgyB,YAAc,WAC1C,MAAO5hC,MAAKoa,GAAGC,SAASvU,IAAI9F,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GAC/D,MAAO,UAAS0R,GAmBd,MAlBKA,GAAQ2T,sBACXrlB,EAAMhC,qBAAqBoK,mBAE7BpI,EAAMwL,MAAMkG,QAAUA,EACtB1R,EAAMwL,MAAMkhD,WAAaz0D,EAAEqZ,OAAOI,EAAQ8gB,OAAQ,SAClDxyB,EAAMwL,MAAMw9B,WAAa5/B,EAAQsI,EAAQ8gB,OAAQ,SAAShtB,GACxD,MAAOA,GAAEgM,KAEXxR,EAAMwL,MAAMmhD,SAAWvjD,EAAQsI,EAAQR,MAAO,SAAS1L,GACrD,MAAOA,GAAEgM,KAEXxR,EAAMwL,MAAMohD,eAAiB30D,EAAEqZ,OAAOI,EAAQooB,cAAe,SAC7D95B,EAAMwL,MAAMikC,aAAex3C,EAAEqZ,OAAOI,EAAQwoB,YAAa,SACzDl6B,EAAMwL,MAAMyuB,aAAe7wB,EAAQsI,EAAQwoB,YAAa,SAAS10B,GAC/D,MAAOA,GAAEgM,KAEXxR,EAAMwL,MAAM0iB,MAAM,iBAAkBxc,GACpC1R,EAAMgR,kBAAkBU,EAAQC,QAASD,EAAQR,OAC1CQ,IAER9Z,QAGL8yD,EAAoBljD,UAAUglD,gBAAkB,WAC9C,MAAO50D,MAAKoa,GAAG8lC,QAAQoD,MAAMtjD,KAAK4T,MAAM2G,UAAWva,KAAK4T,MAAM8+C,UAAUvvD,KAAK,SAAUiF,GACrF,MAAO,UAASk7C,GACd,GAAI0Q,GAAoBiB,EAAoBC,EAAgBjB,CAoB5D,OAnBAA,GAAiB5zD,EAAEwX,OAAOxX,EAAEixC,OAAOgS,EAAMta,cAAe,SAAUmsB,EAAK5O,GACrE,MAAO4O,GAAM5O,GACX,GACJyN,EAAqB3zD,EAAEwX,OAAOxX,EAAEixC,OAAOgS,EAAM8R,kBAAmB,SAAUD,EAAK5O,GAC7E,MAAO4O,GAAM5O,GACX,GACJ0O,EAAqBhB,EAAiBD,EACtCkB,EAAiB5R,EAAM8Q,YAAc9Q,EAAM+R,gBAC3CjtD,EAAMwL,MAAM0vC,MAAQA,EACpBl7C,EAAMwL,MAAM0vC,MAAM2Q,eAAiBA,EACnC7rD,EAAMwL,MAAM0vC,MAAM0Q,mBAAqBA,EACvC5rD,EAAMwL,MAAM0vC,MAAM2R,mBAAqBA,EACvC7sD,EAAMwL,MAAM0vC,MAAM4R,eAAiBA,EAC/B5R,EAAM2Q,eACR7rD,EAAMwL,MAAM0vC,MAAME,oBAAsBviD,KAAKgoC,MAAM,IAAMqa,EAAM0Q,mBAAqB1Q,EAAM2Q,gBAE1F7rD,EAAMwL,MAAM0vC,MAAME,oBAAsB,EAE1Cp7C,EAAMwL,MAAM0vC,MAAM4Q,UAAY5Q,EAAM8Q,YAAc9Q,EAAM+R,gBACjD/R,IAERtjD,QAGL8yD,EAAoBljD,UAAUykD,kBAAoB,WAChD,MAAOr0D,MAAKoa,GAAGC,SAAS4kC,WAAWj/C,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACtE,MAAO,UAASsvC,GACd,MAAOtvC,GAAMwL,MAAMkG,QAAQ49B,YAAcA,EAAYjpB,SAEtDzuB,QAGL8yD,EAAoBljD,UAAUilD,WAAa,WACzC,MAAO70D,MAAKoa,GAAG8lC,QAAQp6C,IAAI9F,KAAK4T,MAAM2G,UAAWva,KAAK4T,MAAM8+C,UAAUvvD,KAAK,SAAUiF,GACnF,MAAO,UAASwgC,GAId,MAHAxgC,GAAMwL,MAAMg1B,OAASA,EACrBxgC,EAAMwL,MAAMqK,YAAc5d,EAAEqZ,OAAOkvB,EAAOkb,aAAc,gBACxD17C,EAAM+qD,sBAAsBmC,eAAeltD,EAAMwL,MAAMqK,aAChD2qB,IAER5oC,QAGL8yD,EAAoBljD,UAAUunB,UAAY,WACxC,GAAItzB,EAMJ,OALAA,MACI7D,KAAKwzD,UAAY,IACnB3vD,EAAO00C,oBAAsB,GAE/B10C,EAASxD,EAAE2nC,MAAMnkC,EAAQ7D,KAAK4a,SAASpU,UAChCxG,KAAKoa,GAAGgd,MAAMnb,KAAKjc,KAAK4T,MAAM2G,UAAWva,KAAK4T,MAAM8+C,SAAU,KAAM7uD,GAAQV,KAAK,SAAUiF,GAChG,MAAO,UAASgvB,GAEd,MADAhvB,GAAM+qD,sBAAsBzzD,KAAK0I,EAAMwL,MAAMkG,QAAS1R,EAAMwL,MAAMiG,WAC3DzR,EAAM+qD,sBAAsBp3C,IAAIqb,KAExCp3B,QAGL8yD,EAAoBljD,UAAU+kD,cAAgB,WAC5C,MAAO30D,MAAKyQ,EAAE0J,KACZna,KAAKq0D,oBAAqBr0D,KAAK40D,kBAAmB50D,KAAK60D,aAAa1xD,KAAK,SAAUiF,GACjF,MAAO,YACL,MAAOA,GAAM+uB,cAEdn3B,UAIP8yD,EAAoBljD,UAAUyxB,gBAAkB,WAC9C,GAAIx9B,GAAQT,CAaZ,OAZAS,IACEC,MAAO9D,KAAK6D,OAAOC,MACnByxD,MAAOv1D,KAAK6D,OAAO0xD,OAErBnyD,EAAUpD,KAAKkuB,KAAKvrB,QAAQkB,GAAQV,KAAK,SAAUiF,GACjD,MAAO,UAASL,GAId,MAHAK,GAAMwL,MAAM2G,UAAYxS,EAAK+R,QAC7B1R,EAAMwL,MAAM8+C,SAAW3qD,EAAKo/C,UAC5B/+C,EAAMw6C,yBACC76C,IAER/H,OACIoD,EAAQD,KAAK,SAAUiF,GAC5B,MAAO,YACL,MAAOA,GAAMw5B,gBAEd5hC,OAAOmD,KAAK,SAAUiF,GACvB,MAAO,YAEL,MADAA,GAAM2U,kBACC3U,EAAMusD,gBAAgBxxD,KAAK,WAChC,MAAOiF,GAAMotD,oBAGhBx1D,QAGL8yD,EAAoBljD,UAAU6lD,gBAAkB,SAAS9c,EAAUthB,GACjE,QAAKr3B,KAAKmzD,sBAAsBuC,SAAStoD,QACnCpN,KAAK4T,MAAMohD,eAAe,GAAGp7C,KAAO++B,GAAc34C,KAAK4T,MAAMqK,YAAY7Q,QAAUpN,KAAK4T,MAAMqK,YAAY,GAAGrE,KAAOyd,IAO5Hy7B,EAAoBljD,UAAU+lD,SAAW,SAAS/7C,GAChD,GAAI+b,EAIJ,OAHAA,GAAO31B,KAAKmzD,sBAAsByC,QAAQh8C,GAC1C+b,EAAOA,EAAK5Z,IAAI,WAAW,GAC3B/b,KAAKmzD,sBAAsB//C,QAAQuiB,GAC5B31B,KAAKoa,GAAGgd,MAAMqhB,SAAS9iB,EAAKkgC,OAAO,QAAS,YAAalgC,EAAKkgC,OAAO,QAAS,SAAS1yD,KAAK,SAAUiF,GAC3G,MAAO,UAAS0tD,GACd,MAAO1tD,GAAMo5C,IAAI1J,YAAY77B,KAAK,OAAQ0Z,EAAK7vB,IAAI,MAAO6vB,EAAKkgC,OAAO,QAAS,aAAa1yD,KAAK,SAAS20C,GAGxG,MAFA1vC,GAAMiY,UAAUqG,WAAW,gBAAiBovC,EAAahe,EAAYr/B,QACrEkd,EAAOA,EAAK5Z,IAAI,WAAW,GACpB3T,EAAM+qD,sBAAsB//C,QAAQuiB,OAG9C31B,QAGL8yD,EAAoBljD,UAAU2kD,SAAW,SAAS1mD,EAAK8nB,EAAMogC,EAAa1+B,EAAMshB,EAAU+M,GACxF,GAAIsQ,GAAgBvP,EAAS5iD,EAAQT,CAYrC,OAXAuyB,GAAO31B,KAAKmzD,sBAAsB8C,aAAatgC,EAAK7vB,IAAI,OACxDkwD,EAAiBh2D,KAAKmzD,sBAAsB+C,KAAKvgC,EAAK/b,GAAIyd,EAAMshB,EAAU+M,GAC1E7hD,GACEsyD,qBAAqB,EACrB5d,qBAAqB,GAEvBkO,GACE/gD,SACE8hD,aAAchnD,KAAKC,UAAUu1D,EAAeI,cAGzChzD,EAAUpD,KAAKkuB,KAAKU,KAAK+G,GAAM,EAAM9xB,EAAQ4iD,GAAS,GAAMtjD,KAAK,SAAUiF,GAChF,MAAO,UAAS6M,GACd,GAAIvP,EAMJ,OALAA,GAAUuP,EAAO,GACbvP,GAAWA,EAAQ,8BACrBggD,EAAQllD,KAAKwI,MAAMtD,EAAQ,6BAC3B0C,EAAM+qD,sBAAsBkD,aAAa3Q,IAEpCt9C,EAAMwsD,oBAEd50D,QAGL8yD,EAAoBljD,UAAU0mD,WAAa,SAASlsD,EAAM2sB,GACxD,OAAQ3sB,GACN,IAAK,WACH,MAAOpK,MAAKqgB,UAAUqG,WAAW,eAAgB1mB,KAAK4T,MAAM8+C,SAAgB,MAAN37B,EAAaA,EAAGnd,GAAK,OAC7F,KAAK,OACH,MAAO5Z,MAAKqgB,UAAUqG,WAAW,gBAAiB1mB,KAAK4T,MAAM8+C,SAAgB,MAAN37B,EAAaA,EAAGnd,GAAK,UAIlGk5C,EAAoBljD,UAAU2mD,WAAa,SAAS38C,GAClD,MAAO5Z,MAAKmzD,sBAAsBoD,WAAW38C,IAG/Ck5C,EAAoBljD,UAAU4mD,qBAAuB,SAAS58C,GAC5D,GAAI+b,EAEJ,OADAA,GAAO31B,KAAKmzD,sBAAsB8C,aAAar8C,GACxC5Z,KAAKqgB,UAAUqG,WAAW,kBAAmBiP,IAGtDm9B,EAAoBljD,UAAU4lD,cAAgB,WAC5C,GAAIh8C,GAAiBi9C,EAAUC,EAASC,CAkCxC,OAjCAn9C,GAAkBnZ,EAAEqN,OAAO1N,KAAK4T,MAAMkG,QAAQR,MAAO,cACrDo9C,EAAU,SAAUtuD,GAClB,MAAO,UAASkoC,GAEd,MADAA,GAASzkB,SAASykB,EAAQ,IACnBjwC,EAAEoc,KAAKjD,EAAiB,SAASm4B,GACtC,MAAOA,GAAK/3B,KAAO02B,MAGtBtwC,MACHy2D,EAAW,SAAUruD,GACnB,MAAO,UAASmoC,GACd,GAAIqmB,EAEJ,OADAA,GAAU/qC,SAAS0kB,EAAS,IACrBlwC,EAAEoc,KAAKrU,EAAMwL,MAAMkG,QAAQ8gB,OAAQ,SAASuX,GACjD,MAAOA,GAAMv4B,KAAO22B,MAGvBvwC,MACH22D,EAAet2D,EAAEwX,OAAO7X,KAAK4T,MAAMqK,YAAa,SAAU7V,GACxD,MAAO,UAAS6M,EAAQ8hB,EAAIrnB,GAW1B,MAVArP,GAAE+e,OAAO2X,EAAG6D,OAAQ,SAAS2V,EAASD,GACpC,GAAI6B,GAAOR,CAOX,OANAA,GAAO+kB,EAAQpmB,GACf6B,EAAQskB,EAASlmB,GACZt7B,EAAO08B,EAAK/3B,MACf3E,EAAO08B,EAAK/3B,IAAM+3B,EAClB18B,EAAO08B,EAAK/3B,IAAIghB,OAAS,GAEpB3lB,EAAO08B,EAAK/3B,IAAIghB,QAAUuX,EAAMpjC,QAElCkG,IAERjV,UACIA,KAAK4T,MAAM+iD,aAAer/C,OAAO9D,KAAKmjD,GAAcr2D,IAAI,SAASoP,GACtE,MAAOinD,GAAajnD,MAIjBojD,GAENjhD,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,sBAAuB2uD,GAEzCC,EAAqB,SAAShnD,GAC5B,GAAIsX,EAsBJ,OArBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOo/B,CAgBX,OAfAp/B,GAAQlU,EAAIpf,aACZof,EAAIgB,GAAG,QAAS,+BAAgC,SAAShW,GACvD,GAAIyV,EAIJ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BD,EAAOimC,YAAY,UACZl+C,EAAW2a,WAAW,uCAE/BmwC,EAAetzC,EAAI9G,KAAK,yBACxBo6C,EAAatyC,GAAG,SAAU,SAAShW,GACjC,GAAIuoD,GAAgB9yC,CAGpB,OAFAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B6yC,EAAiBvzC,EAAI9G,KAAK,kDACnBq6C,EAAepuB,IAAI,UAAa1kB,EAAO+yC,gBAEzCzzC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,eAAgB,aAAc4vC,IAE/CC,EAAiC,SAAS54C,GACxC,GAAI48C,GAAa3zC,EAAM4zC,CA4GvB,OA3GAD,GAAc,GACdC,EAAiB,IACjB5zC,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI0zC,GAAcC,EAA8BC,EAA2BC,EAA4BC,CA+FvG,OA9FAh0C,GAAO5W,IAAI,eAAgB,SAAUtE,GACnC,MAAO,YACL,MAAOgvD,OAERp3D,OACHsjB,EAAO5W,IAAI,oBAAqB,SAAUtE,GACxC,MAAO,YACL,MAAOgvD,OAERp3D,OACHsjB,EAAOrP,OAAO,UAAW,WACvB,GAAIqP,EAAOxJ,QAGT,MAFAwJ,GAAOi0C,eAAiBn9C,EAAGgd,MAAMogC,qBAAqBl0C,EAAOxJ,QAAQF,IACrE0J,EAAOm0C,SAAWr9C,EAAGgd,MAAMsgC,cAAcp0C,EAAOxJ,QAAQF,GAAI0J,EAAOovC,UAC5D0E,MAGX9zC,EAAOq0C,WAAa,SAASlxD,GAG3B,MAFA6c,GAAOi0C,eAAe9wD,EAAOmT,KAAS0J,EAAOi0C,eAAe9wD,EAAOmT,IACnEQ,EAAGgd,MAAMwgC,uBAAuBt0C,EAAO/I,UAAW+I,EAAOi0C,gBAClDH,KAET9zC,EAAOu0C,OAAS,SAAS9gC,GAOvB,MANKA,GAGHzT,EAAOm0C,SAAS1gC,EAAGnd,KAAS0J,EAAOm0C,SAAS1gC,EAAGnd,IAF/C0J,EAAOm0C,SAAS,OAAWn0C,EAAOm0C,SAAS,MAI7Cr9C,EAAGgd,MAAM0gC,gBAAgBx0C,EAAO/I,UAAW+I,EAAOovC,SAAUpvC,EAAOm0C,UAC5DL,KAETF,EAAe,SAAU9uD,GACvB,MAAO,UAASivB,EAAMshB,GACpB,GAAIvhB,GAAO2gC,EAAiBlrD,CAM5B,OAJEuqB,GADEC,EACM/T,EAAO+vC,QAAQwC,OAAOx+B,EAAKhlB,WAAYsmC,EAAStmC,aAAaoE,KAE7D6M,EAAO+vC,QAAQwC,OAAO,OAAQld,EAAStmC,aAAaoE,KAE1D6M,EAAOi0C,eAAe5e,IACpBvhB,GAAS9T,EAAOm0C,SAASpgC,IAC3B0gC,EAAkB92D,KAAKgoC,MAAMhoC,KAAK+2D,KAAK5gC,IACvCvqB,EAAQmqD,EAAce,GAEtBlrD,EAAQmqD,EAEHnqD,GAEF,IAER7M,MACHs3D,EAAuB,SAAUlvD,GAC/B,MAAO,UAASuwC,EAAU9rC,GACxB,GAAIorD,EAEJ,OADAA,GAAS10C,EAAI9G,KAAK,kBAAoBk8B,GAClC9rC,EACKorD,EAAOvvB,IAAI,YAAa77B,GAED,MAA1ByW,EAAO40C,KAAK1E,UACPyE,EAAOvvB,IAAI,YAAa,KAExBuvB,EAAOvvB,IAAI,YAAauuB,KAIpCj3D,MACHq3D,EAA6B,SAAUjvD,GACrC,MAAO,YACL,GAAI+vD,GAAcC,EAASC,CAS3B,OARAF,MACAC,EAAU70C,EAAI9G,KAAK,oBACnB07C,EAAe93D,EAAEC,IAAI83D,EAAS,SAASH,GACrC,MAAOlrB,GAAEkrB,GAAQK,YAAW,KAE9BD,EAAah4D,EAAEwX,OAAOsgD,EAAc,SAASI,EAAO1rD,GAClD,MAAO0rD,GAAQ1rD,IAEV0W,EAAI9G,KAAK,0BAA0BisB,IAAI,QAAS2vB,KAExDr4D,MACHm3D,EAA+B,SAAU/uD,GACvC,MAAO,UAASuwC,GACd,GAAI6f,EASJ,OARAA,GAAoBtB,EAAa,KAAMve,GACvCt4C,EAAEkY,QAAQ+K,EAAOrF,YAAa,SAAS8Y,GACrC,GAAIlqB,EAEJ,IADAA,EAAQqqD,EAAangC,EAAGnd,GAAI++B,GACxB9rC,EAAQ2rD,EACV,MAAOA,GAAoB3rD,IAGxByqD,EAAqB3e,EAAU6f,KAEvCx4D,MACIo3D,EAA4B,SAAUhvD,GAC3C,MAAO,YACL/H,EAAEkY,QAAQ+K,EAAO0xC,eAAgB,SAASvuD,GACxC,MAAO0wD,GAA6B1wD,EAAOmT,MAE7Cy9C,MAEDr3D,QAGHqjB,KAAMA,IAIV1jB,EAAOwjB,UAAU,2BAA4B,eAAgB6vC,KAE5D/uD,KAAKjE,MA2BR,WACE,GAAIy4D,GAA4BznD,EAAUQ,EAASK,EAAOlS,EAAQoS,EAAYhS,EAAOuS,CAErFvS,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBS,EAAatS,KAAKD,MAAMuS,WAExBP,EAAa/R,KAAKD,MAAMgS,WAExBf,EAAWhR,KAAKD,MAAMiR,SAEtBQ,EAAUxR,KAAKD,MAAMyR,QAErB7R,EAASiD,QAAQjD,OAAO,gBAExB84D,EAA6B,SAAStyC,EAAO6Q,EAAKjrB,EAAY/I,GAC5D,GAAIqgB,EAiFJ,OAhFAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI+I,EACJ,OAAOA,GAAUjJ,EAAOrP,OAAO,UAAW,SAASo/C,GACjD,GAAIqF,GAAYzJ,EAAeC,EAAOyJ,EAAaC,EAAQC,EAAgBC,EAAgB1J,EAAQ2J,CACnG,IAAK1F,GAAYA,EAAQ58C,OAGzB8V,IACMjJ,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,mBAkE5C,MA/DA+xD,GAAiB,KACjBD,EAAiB,KACjBD,EAAS,KACTG,EAAOx1C,EACPo1C,EAAc,WACZ,GAAI9jD,EAEJ,OADAA,GAAO7R,EAAWuF,QAAQ,iCACnBywD,WAAWxwD,OAAO,QAASqM,IAEpCo6C,EAAgB,SAAS2J,GAGvB,MAFAA,GAAOhlD,QAAQgiB,WACfgjC,EAAOn0C,MACAm0C,EAAOh3C,UAEhB82C,EAAar4D,EAAEC,IAAIijB,EAAI9G,KAAK,gBAAiB,SAAS/J,GACpD,MAAOA,KAETw8C,EAAQG,QAAQqJ,GACdpJ,gBAAgB,EAChBvP,MAAM,EACNkZ,QAAS,SAASnmD,EAAIkR,GACpB,OAAQ+oB,EAAE/oB,GAAQykB,SAAS,4BAE7BgnB,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,cAGtBmE,EAAM3qC,GAAG,OAAQ,SAAS7R,GAExB,GADAomD,EAAiB/rB,EAAEr6B,GAAMnD,SAASqE,QAC9B2P,EAAIklB,SAAS,kBAKf,MAJAkwB,KACAxjD,WAAW,WACT,MAAO+5C,GAAMgK,QAAO,IAClB,IACG,IAGXhK,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIymD,GAAWC,EAAUC,EAAaC,EAASvD,EAAawD,EAASC,CAarE,OAZAA,GAAWzsB,EAAEr6B,GAAMnD,SACnBqpD,EAAS7rB,EAAEr6B,GACX0mD,EAAWR,EAAOhlD,QAAQ+hB,KAC1BwjC,EAAYP,EAAO9/C,QACnB+/C,EAAiBW,EAAS5lD,QAC1B2lD,EAAUT,EAAe/hC,GAAK+hC,EAAe/hC,GAAGnd,GAAK,KACrDm8C,EAAc+C,EAAeW,GAAG7/C,GAChC0/C,EAAUT,EAAe9hC,GAAK8hC,EAAe9hC,GAAGnd,GAAK,KACrDy/C,EAAcR,EAAeY,GAAG7/C,GAC5By/C,IAAgBtD,GAAeuD,IAAYC,GAC7CtK,EAAc2J,GAETt1C,EAAO/N,OAAO,WACnB,MAAOxJ,GAAW2a,WAAW,sBAAuB0yC,EAAUA,EAASvD,OAAO,QAAS,WAAYyD,EAASD,EAAaF,OAG7H/J,EAASa,YAAYljB,EAAE,yBAAyB,KAC9CmjB,OAAQ,IACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvBhtC,EAAO5W,IAAI,WAAY,WAE5B,MADA6W,GAAIkB,MACGyqC,EAAM9mB,gBAKjB/kB,KAAMA,IAIV1jB,EAAOwjB,UAAU,uBAAwB,UAAW,eAAgB,aAAc,aAAcs1C,KAE/Fx0D,KAAKjE,MAsBR,WACE,GAAI05D,GAAuBloD,EACzB3O,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf0B,GAAUxR,KAAKD,MAAMyR,QAErBkoD,EAAwB,SAAUtpD,GAKhC,QAASspD,KACP15D,KAAK42B,QAkNP,MAvNA/zB,GAAO62D,EAAuBtpD,GAE9BspD,EAAsBt5C,WAMtBs5C,EAAsB9pD,UAAUgnB,MAAQ,WAGtC,MAFA52B,MAAK01D,YACL11D,KAAK25D,qBACE35D,KAAKqzD,QAAUpyC,UAAU24C,OAGlCF,EAAsB9pD,UAAUlQ,KAAO,SAASoa,EAASD,GAEvD,MADA7Z,MAAK8Z,QAAUA,EACR9Z,KAAK6Z,UAAYA,GAG1B6/C,EAAsB9pD,UAAUgkD,WAAa,WAE3C,MADA5zD,MAAK25D,qBACE35D,KAAK2M,WAGd+sD,EAAsB9pD,UAAU2mD,WAAa,SAASsD,GAEpD,MADA75D,MAAK25D,kBAAkBE,IAAW75D,KAAK25D,kBAAkBE,GAClD75D,KAAK2M,WAGd+sD,EAAsB9pD,UAAUqD,IAAM,SAAS0iB,GAE7C,MADA31B,MAAK01D,SAAW11D,KAAK01D,SAASzmD,OAAO0mB,GAC9B31B,KAAK2M,WAGd+sD,EAAsB9pD,UAAUmM,IAAM,SAASqb,GAG7C,MAFAp3B,MAAK01D,SAAWt+B,EAChBp3B,KAAK85D,kBACE95D,KAAK2M,WAGd+sD,EAAsB9pD,UAAU0lD,eAAiB,SAASr3C,GACxD,MAAOje,MAAKie,YAAcA,GAG5By7C,EAAsB9pD,UAAUkqD,gBAAkB,WAChD,GAAInnD,GAAGqC,EAAKxR,EAAKiX,EAASkb,CAI1B,KAHA31B,KAAK0lD,SACLliD,EAAMxD,KAAK01D,SACXj7C,KACK9H,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrCgjB,EAAOnyB,EAAImP,GACX8H,EAAQlT,KAAKvH,KAAK0lD,MAAM/vB,EAAK/b,IAAM+b,EAAKokC,gBAE1C,OAAOt/C,IAGTi/C,EAAsB9pD,UAAUymD,aAAe,SAAS3Q,GAGtD,MAFAA,GAAQrlD,EAAE25D,OAAOtU,GACjB1lD,KAAK0lD,MAAQrlD,EAAE8uB,OAAOnvB,KAAK0lD,MAAOA,GAC3B1lD,KAAK2M,WAGd+sD,EAAsB9pD,UAAUgmD,QAAU,SAASh8C,GACjD,GAAIqgD,EAeJ,OAdAA,GAAa,KACbj6D,KAAKqzD,QAAQ96C,QAAQ,SAASwe,GAS5B,GARAA,EAAGxe,QAAQ,SAAS9R,GAIlB,GAHAwzD,EAAaxzD,EAAOgW,KAAK,SAASkZ,GAChC,MAAOA,GAAK7vB,IAAI,QAAU8T,IAG1B,OAAO,IAGPqgD,EACF,OAAO,IAGJA,GAGTP,EAAsB9pD,UAAUwD,QAAU,SAASuiB,GACjD,MAAO31B,MAAKqzD,QAAUrzD,KAAKqzD,QAAQ/yD,IAAI,SAASy2B,GAC9C,MAAOA,GAAGz2B,IAAI,SAASmG,GACrB,GAAIyzD,EAOJ,OANAA,GAAczzD,EAAOg8C,UAAU,SAAS0X,GACtC,MAAOA,GAAOr0D,IAAI,QAAUixB,EAAGjxB,IAAI,QAEjCo0D,SACFzzD,EAASA,EAAOsV,IAAIm+C,EAAavkC,IAE5BlvB,OAKbizD,EAAsB9pD,UAAUqmD,aAAe,SAASr8C,GACtD,MAAOvZ,GAAEoc,KAAKzc,KAAK01D,SAAU,SAAS//B,GACpC,MAAOA,GAAK/b,KAAOA,KAIvB8/C,EAAsB9pD,UAAU0kD,aAAe,SAAS3+B,GAQtD,MAPA31B,MAAK01D,SAAWr1D,EAAEC,IAAIN,KAAK01D,SAAU,SAASl5C,GAC5C,MAAImZ,GAAK/b,KAAO4C,EAAG5C,GACV+b,EAEAnZ,IAGJxc,KAAK2M;EAGd+sD,EAAsB9pD,UAAUsmD,KAAO,SAASt8C,EAAIyd,EAAMshB,EAAU7/B,GAClE,GAAIgtC,GAAkBC,EAAmBpzC,EAAG6J,EAAI03B,EAAGxkC,EAAKsF,EAAK4uC,EAAMiD,EAAUC,EAA0BE,EAAWoT,EAAkBzkC,EAAM0kC,CA0B1I,IAzBA1kC,EAAO31B,KAAKi2D,aAAar8C,GACzBygD,EAAiBh6D,EAAEqN,OAAO1N,KAAK01D,SAAU,SAAUttD,GACjD,MAAO,UAASutB,GACd,MAAOA,GAAKlvB,SAAWkyC,GAAYhjB,EAAKg9B,aAAet7B,IAExDr3B,OACHq6D,EAAiBh6D,EAAEqZ,OAAO2gD,EAAgB,SAAUjyD,GAClD,MAAO,UAASoU,GACd,MAAOpU,GAAMs9C,MAAMlpC,EAAG5C,MAEvB5Z,OACHo6D,EAAmB/5D,EAAEqN,OAAO2sD,EAAgB,SAAUjyD,GACpD,MAAO,UAASoU,GACd,MAAOA,GAAG5C,KAAOA,IAElB5Z,OACH+lD,EAAoB1lD,EAAEwS,MAAMunD,EAAkB,EAAGthD,GACjDgtC,EAAmBzlD,EAAEwS,MAAMunD,EAAkBthD,GAC7CkuC,KACAH,EAAWd,EAAkBA,EAAkB34C,OAAS,GACxD05C,EAA2BzmD,EAAEqN,OAAOq4C,EAAmB,SAAU39C,GAC/D,MAAO,UAASoU,GACd,MAAOpU,GAAMs9C,MAAMlpC,EAAG5C,MAAQxR,EAAMs9C,MAAMmB,EAASjtC,MAEpD5Z,OACC8mD,EAAyB15C,OAAS,EACpC,IAAKuF,EAAI,EAAGqC,EAAM8xC,EAAyB15C,OAAQuF,EAAIqC,EAAKrC,IAC1D6J,EAAKsqC,EAAyBn0C,GAC9Bq0C,EAAUxqC,EAAG5C,IAAM5Z,KAAK0lD,MAAMlpC,EAAG5C,GAQrC,KALKitC,EAEMA,IACT7mD,KAAK0lD,MAAM/vB,EAAK/b,IAAM5Z,KAAK0lD,MAAMmB,EAASjtC,IAAM,GAFhD5Z,KAAK0lD,MAAM/vB,EAAK/b,IAAM,EAInBlK,EAAMwkC,EAAI,EAAG0P,EAAOkC,EAAiB14C,OAAQ8mC,EAAI0P,EAAMl0C,IAAQwkC,EAClE13B,EAAKspC,EAAiBp2C,GACtB1P,KAAK0lD,MAAMlpC,EAAG5C,IAAM5Z,KAAK0lD,MAAM/vB,EAAK/b,IAAMlK,EAAM,CAMlD,OAJAimB,GAAKlvB,OAASkyC,EACdhjB,EAAKg9B,WAAat7B,EAClB1B,EAAKokC,gBAAkB/5D,KAAK0lD,MAAM/vB,EAAK/b,IACvC5Z,KAAK2M,WAEH2tD,QAAW3kC,EAAK/b,GAChB8rC,MAAS1lD,KAAK0lD,MAAM/vB,EAAK/b,IACzBw8C,WAAcpP,IAIlB0S,EAAsB9pD,UAAUjD,QAAU,WACxC,GAAIgG,GAAGuhC,EAAG1C,EAAGx8B,EAAK4uC,EAAMqC,EAAM3lC,EAAO9c,EAAKiD,EAAQkvB,EAAM++B,EAAWM,EAAgB59B,EAAOL,EAAIs8B,CAc9F,KAbArzD,KAAK01D,SAAWr1D,EAAEqZ,OAAO1Z,KAAK01D,SAAU,SAAUttD,GAChD,MAAO,UAASoU,GACd,MAAOpU,GAAMs9C,MAAMlpC,EAAG5C,MAEvB5Z,OACHo3B,EAAQp3B,KAAK01D,SACbV,EAAiB30D,EAAEqZ,OAAO1Z,KAAK8Z,QAAQooB,cAAe,SACtDmxB,KACA7vD,EAAMnD,EAAEypD,MAAM9pD,KAAKie,cAEfrE,GAAI,QAGHjH,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IAGrC,IAFAokB,EAAKvzB,EAAImP,GACT0gD,EAAQt8B,EAAGnd,OACNs6B,EAAI,EAAG0P,EAAOoR,EAAe5nD,OAAQ8mC,EAAI0P,EAAM1P,IAClDztC,EAASuuD,EAAe9gB,GACxBmf,EAAQt8B,EAAGnd,IAAInT,EAAOmT,MAG1B,KAAK43B,EAAI,EAAGyU,EAAO7uB,EAAMhqB,OAAQokC,EAAIyU,EAAMzU,IACzCkjB,EAAYt9B,EAAMoa,GACoB,MAAjC6hB,EAAQqB,EAAU/B,aAA4E,MAAnDU,EAAQqB,EAAU/B,YAAY+B,EAAUjuD,UACtFkvB,KACArV,EAAQo0C,EAAUvzC,WAClBwU,EAAKgkC,kBAAoB35D,KAAK25D,kBAAkBjF,EAAU96C,IAC1D+b,EAAKrV,MAAQA,EACbqV,EAAK4kC,OAASl6D,EAAEqN,OAAO4S,EAAMw3B,YAAa,SAASt7B,GACjD,QAASA,EAAGg+C,qBAEd7kC,EAAK/b,GAAK86C,EAAU96C,GACpB+b,EAAKnY,YAAcxd,KAAK6Z,UAAU66C,EAAUl3C,aAC5CmY,EAAK8kC,eAAiBp6D,EAAEC,IAAIq1B,EAAKrV,MAAMlJ,KAAM,SAAUhP,GACrD,MAAO,UAASoW,GACd,OACEjK,KAAMiK,EAAI,GACV5B,MAAO4B,EAAI,MAGdxe,OACHqzD,EAAQqB,EAAU/B,YAAY+B,EAAUjuD,QAAQc,KAAKouB,GAGzD,OAAO31B,MAAKqzD,QAAUpyC,UAAUC,OAAOmyC,IAGlCqG,GAEN35D,MAAM4Q,SAET/N,QAAQjD,OAAO,eAAeijB,QAAQ,mBAAoB82C,IAEzDz1D,KAAKjE,MAsBR,WACE,GAAI06D,GAA0BlpD,EAC5B3O,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf0B,GAAUxR,KAAKD,MAAMyR,QAErBkpD,EAA2B,SAAUtqD,GAKnC,QAASsqD,KACP16D,KAAK42B,QAqOP,MA1OA/zB,GAAO63D,EAA0BtqD,GAEjCsqD,EAAyBt6C,WAMzBs6C,EAAyB9qD,UAAUgnB,MAAQ,WAKzC,MAJA52B,MAAK26D,kBACL36D,KAAK46D,kBACL56D,KAAK66D,cACL76D,KAAK25D,qBACE35D,KAAK86D,WAAa75C,UAAU24C,OAGrCc,EAAyB9qD,UAAUlQ,KAAO,SAASoa,EAASD,GAE1D,MADA7Z,MAAK8Z,QAAUA,EACR9Z,KAAK6Z,UAAYA,GAG1B6gD,EAAyB9qD,UAAUgkD,WAAa,WAE9C,MADA5zD,MAAK25D,qBACE35D,KAAK2M,WAGd+tD,EAAyB9qD,UAAU2mD,WAAa,SAASl/B,GAEvD,MADAr3B,MAAK25D,kBAAkBtiC,IAASr3B,KAAK25D,kBAAkBtiC,GAChDr3B,KAAK2M,WAGd+tD,EAAyB9qD,UAAUmM,IAAM,SAASkC,GAGhD,MAFAje,MAAK26D,eAAiB18C,EACtBje,KAAK85D,kBACE95D,KAAK2M,WAGd+tD,EAAyB9qD,UAAUqD,IAAM,SAAS8jB,GAGhD,MAFA/2B,MAAK26D,eAAiB36D,KAAK26D,eAAe1rD,OAAO8nB,GACjD/2B,KAAK85D,kBACE95D,KAAK2M,WAGd+tD,EAAyB9qD,UAAUmrD,kBAAoB,SAASpiB,GAC9D,MAAO34C,MAAK46D,eAAerzD,KAAKoxC,IAGlC+hB,EAAyB9qD,UAAUorD,2BAA6B,SAAS3jC,GACvE,GAAIN,EAEJ,OADAA,GAAK/2B,KAAKi7D,WAAW5jC,GACdr3B,KAAK46D,eAAe7zD,QAAQgwB,EAAGtwB,cAAkBzG,KAAK66D,WAAW9zD,QAAQgwB,EAAGtwB,cAGrFi0D,EAAyB9qD,UAAUsrD,WAAa,SAASviB,GAEvD,MADA34C,MAAKm7D,aAAaxiB,GACX34C,KAAK66D,WAAWtzD,KAAKoxC,IAG9B+hB,EAAyB9qD,UAAUwrD,WAAa,SAASziB,GACvD,MAAOt4C,GAAEuhB,OAAO5hB,KAAK66D,WAAY,SAASr+C,GACxC,MAAOA,KAAOm8B,KAIlB+hB,EAAyB9qD,UAAUyrD,UAAY,SAAS1iB,GACtD,MAAOt4C,GAAEqN,OAAO1N,KAAK26D,eAAgB,SAAS5jC,GAC5C,MAAOA,GAAGtwB,SAAWkyC,KAIzB+hB,EAAyB9qD,UAAUurD,aAAe,SAASxiB,GACzD,GAAI2iB,EAWJ,OAVAA,GAAWj7D,EAAEqN,OAAO1N,KAAK26D,eAAgB,SAAS5jC,GAChD,MAAOA,GAAGtwB,SAAWkyC,IAEvB2iB,EAAWj7D,EAAEC,IAAI,SAASkc,GACxB,MAAOA,GAAG5C,KAEZ5Z,KAAKu7D,SAAWl7D,EAAEm7D,WAAWx7D,KAAKu7D,SAAUD,GAC5Ct7D,KAAK26D,eAAiBt6D,EAAEqN,OAAO1N,KAAK26D,eAAgB,SAAS5jC,GAC3D,MAAOA,GAAGtwB,SAAWkyC,IAEhB34C,KAAK2M,WAGd+tD,EAAyB9qD,UAAUkqD,gBAAkB,WACnD,GAAInnD,GAAG6J,EAAIxH,EAAKxR,EAAKiX,CAIrB,KAHAza,KAAK0lD,SACLliD,EAAMxD,KAAK26D,eACXlgD,KACK9H,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrC6J,EAAKhZ,EAAImP,GACT8H,EAAQlT,KAAKvH,KAAK0lD,MAAMlpC,EAAG5C,IAAM4C,EAAGi/C,aAEtC,OAAOhhD,IAGTigD,EAAyB9qD,UAAUymD,aAAe,SAAS3Q,GAGzD,MAFAA,GAAQrlD,EAAE25D,OAAOtU,GACjB1lD,KAAK0lD,MAAQrlD,EAAE8uB,OAAOnvB,KAAK0lD,MAAOA,GAC3B1lD,KAAK2M,WAGd+tD,EAAyB9qD,UAAUsmD,KAAO,SAASt8C,EAAI++B,EAAU7/B,GAC/D,GAAIgtC,GAAkBC,EAAmBpzC,EAAG6J,EAAI03B,EAAGxkC,EAAKsF,EAAK4uC,EAAMiD,EAAUC,EAA0BE,EAAWjwB,EAAI+jC,EAAYY,CA0BlI,IAzBA3kC,EAAK/2B,KAAKi7D,WAAWrhD,GACrBkhD,EAAaz6D,EAAEqN,OAAO1N,KAAK26D,eAAgB,SAAUvyD,GACnD,MAAO,UAASoU,GACd,MAAOA,GAAG/V,SAAWkyC,IAEtB34C,OACH86D,EAAaz6D,EAAEqZ,OAAOohD,EAAY,SAAU1yD,GAC1C,MAAO,UAASoU,GACd,MAAOpU,GAAMs9C,MAAMlpC,EAAG5C,MAEvB5Z,OACH07D,EAAyBr7D,EAAEqN,OAAOotD,EAAY,SAAU1yD,GACtD,MAAO,UAASoU,GACd,MAAOA,GAAG5C,KAAOA,IAElB5Z,OACH+lD,EAAoB1lD,EAAEwS,MAAM6oD,EAAwB,EAAG5iD,GACvDgtC,EAAmBzlD,EAAEwS,MAAM6oD,EAAwB5iD,GACnDkuC,KACAH,EAAWd,EAAkBA,EAAkB34C,OAAS,GACxD05C,EAA2BzmD,EAAEqN,OAAOq4C,EAAmB,SAAU39C,GAC/D,MAAO,UAASoU,GACd,MAAOpU,GAAMs9C,MAAMlpC,EAAG5C,MAAQxR,EAAMs9C,MAAMmB,EAASjtC,MAEpD5Z,OACC8mD,EAAyB15C,OAAS,EACpC,IAAKuF,EAAI,EAAGqC,EAAM8xC,EAAyB15C,OAAQuF,EAAIqC,EAAKrC,IAC1D6J,EAAKsqC,EAAyBn0C,GAC9Bq0C,EAAUxqC,EAAG5C,IAAM5Z,KAAK0lD,MAAMlpC,EAAG5C,GAQrC,KALKitC,EAEMA,IACT7mD,KAAK0lD,MAAM3uB,EAAGnd,IAAM5Z,KAAK0lD,MAAMmB,EAASjtC,IAAM,GAF9C5Z,KAAK0lD,MAAM3uB,EAAGnd,IAAM,EAIjBlK,EAAMwkC,EAAI,EAAG0P,EAAOkC,EAAiB14C,OAAQ8mC,EAAI0P,EAAMl0C,IAAQwkC,EAClE13B,EAAKspC,EAAiBp2C,GACtB1P,KAAK0lD,MAAMlpC,EAAG5C,IAAM5Z,KAAK0lD,MAAM3uB,EAAGnd,IAAMlK,EAAM,CAKhD,OAHAqnB,GAAGtwB,OAASkyC,EACZ5hB,EAAG0kC,aAAez7D,KAAK0lD,MAAM3uB,EAAGnd,IAChC5Z,KAAK2M,WAEH84C,MAAS1uB,EAAGnd,GACZ8rC,MAAS1lD,KAAK0lD,MAAM3uB,EAAGnd,IACvBw8C,WAAcpP,IAIlB0T,EAAyB9qD,UAAUwD,QAAU,SAAS2jB,GACpD,MAAO/2B,MAAK86D,WAAa96D,KAAK86D,WAAWx6D,IAAI,SAASmG,GACpD,GAAIyzD,EAOJ,OANAA,GAAczzD,EAAOg8C,UAAU,SAAS0X,GACtC,MAAOA,GAAOr0D,IAAI,QAAUixB,EAAGjxB,IAAI,QAEjCo0D,SACFzzD,EAASA,EAAOsV,IAAIm+C,EAAanjC,IAE5BtwB,KAIXi0D,EAAyB9qD,UAAU0kD,aAAe,SAASv9B,GAQzD,MAPA/2B,MAAK26D,eAAiBt6D,EAAEC,IAAIN,KAAK26D,eAAgB,SAASR,GACxD,MAAIpjC,GAAGnd,KAAOugD,EAAOvgD,GACZmd,EAEAojC,IAGJn6D,KAAK2M,WAGd+tD,EAAyB9qD,UAAU+rD,MAAQ,SAAS/hD,GAClD,GAAIgiD,EAUJ,OATAA,GAAW,KACX57D,KAAK86D,WAAWviD,QAAQ,SAAS9R,GAI/B,GAHAm1D,EAAWn1D,EAAOgW,KAAK,SAASsa,GAC9B,MAAOA,GAAGjxB,IAAI,QAAU8T,IAGxB,OAAO,IAGJgiD,GAGTlB,EAAyB9qD,UAAUqrD,WAAa,SAASrhD,GACvD,MAAOvZ,GAAEoc,KAAKzc,KAAK26D,eAAgB,SAAS5jC,GAC1C,MAAOA,GAAGnd,KAAOA,KAIrB8gD,EAAyB9qD,UAAUjD,QAAU,WAC3C,GAAImuD,GAAY78C,CA+BhB,OA9BAje,MAAK26D,eAAiBt6D,EAAEqZ,OAAO1Z,KAAK26D,eAAgB,SAAUvyD,GAC5D,MAAO,UAASoU,GACd,MAAOpU,GAAMs9C,MAAMlpC,EAAG5C,MAEvB5Z,OACHie,EAAcje,KAAK26D,eACnB18C,EAAc5d,EAAEC,IAAI2d,EAAa,SAAU7V,GACzC,MAAO,UAASyzD,GACd,GAAIv7C,GAAOyW,CAgBX,OAfAA,MACAzW,EAAQu7C,EAAQ16C,WAChB4V,EAAG4iC,kBAAoBvxD,EAAMuxD,kBAAkBkC,EAAQjiD,IACvDmd,EAAGzW,MAAQA,EACXyW,EAAGwjC,OAASl6D,EAAEqN,OAAO4S,EAAMw3B,YAAa,SAASt7B,GAC/C,QAASA,EAAGg+C,qBAEdzjC,EAAGnd,GAAKiiD,EAAQjiD,GAChBmd,EAAGvZ,YAAcpV,EAAMyR,UAAUgiD,EAAQr+C,aACzCuZ,EAAG0jC,eAAiBp6D,EAAEC,IAAIy2B,EAAGzW,MAAMlJ,KAAM,SAASoH,GAChD,OACEjK,KAAMiK,EAAI,GACV5B,MAAO4B,EAAI,MAGRuY,IAER/2B,OACH86D,EAAaz6D,EAAEmR,QAAQyM,EAAa,SAAS8Y,GAC3C,MAAOA,GAAGzW,MAAM7Z,SAEXzG,KAAK86D,WAAa75C,UAAUC,OAAO45C,IAGrCJ,GAEN36D,MAAM4Q,SAET/N,QAAQjD,OAAO,eAAeijB,QAAQ,sBAAuB83C,IAE5Dz2D,KAAKjE,MA2BR,WACE,GAAI87D,GAAqCC,EAAoCC,EAAkBC,EAAiBC,EAA6BC,EAAyBprD,EAAaC,EAAUQ,EAASK,EAAOlS,EAAQoS,EAAYhS,EAAOqS,EAASE,EAC/OzP,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBS,EAAatS,KAAKD,MAAMuS,WAExBP,EAAa/R,KAAKD,MAAMgS,WAExBf,EAAWhR,KAAKD,MAAMiR,SAEtBQ,EAAUxR,KAAKD,MAAMyR,QAErBY,EAAUpS,KAAKD,MAAMqS,QAErBrB,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,eAExBq8D,EAAmB,SAAU5rD,GAS3B,QAAS4rD,GAAiBpoD,EAAOyM,EAAW6N,EAAMigB,EAAS8kB,EAAKzR,EAAKH,EAAS5wC,EAAGmK,EAAUzO,EAAgB80B,EAASqgB,EAAQC,EAAWxiC,EAAW3Y,EAAsBka,EAAO87C,EAA2BtgD,EAAS4B,EAA4BwjB,GAC7OlhC,KAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAK64C,EACVjzD,KAAKwhD,IAAMA,EACXxhD,KAAK6D,OAASw9C,EACdrhD,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKmM,eAAiBA,EACtBnM,KAAKihC,QAAUA,EACfjhC,KAAKshD,OAASA,EACdthD,KAAKuhD,UAAYA,EACjBvhD,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAKsgB,MAAQA,EACbtgB,KAAKq8D,yBAA2BD,EAChCp8D,KAAK8b,QAAUA,EACf9b,KAAK0d,2BAA6BA,EAClC1d,KAAKsD,eAAiB49B,EACtBnwB,EAAY/Q,MACZA,KAAKq8D,yBAAyBzlC,QAC9B52B,KAAKozD,YAAa,EACdpzD,KAAKub,mBAAmBvb,KAAK6D,OAAOC,MAAO,oBAG/C9D,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,uBAChDvI,KAAKkiD,0BACLniD,EAAMqR,wBAAwBpR,KAAK4T,MAAO,aAAc,SAAUxL,GAChE,MAAO,YACL,MAAOA,GAAMi0D,yBAAyBvB,aAEvC96D,QA4SL,MArVA6C,GAAOm5D,EAAkB5rD,GAEzB4rD,EAAiB57C,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,cAAe,eAAgB,KAAM,cAAe,mBAAoB,aAAc,YAAa,eAAgB,aAAc,yBAA0B,WAAY,sBAAuB,aAAc,+BAAgC,oBAEzU47C,EAAiBpsD,UAAU+N,uBAAyB,wBAEpDq+C,EAAiBpsD,UAAUmO,iBAAmB,iBAsC9Ci+C,EAAiBpsD,UAAU87C,UAAY,WACrC,GAAItoD,EAeJ,OAdAA,GAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAQjB,OAPAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,qBAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAM2W,UAAUxW,QAAQ,2BACpC+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,KACjCgtB,mBAAoBn5B,EAAMwL,MAAMkG,QAAQvV,cAEnC6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACIoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,QAGzDg8D,EAAiBpsD,UAAU2jD,QAAU,SAASC,EAAWC,GACvD,GAAIC,EACJ,OAAI1zD,MAAKwzD,YAAcA,EACd,MAETxzD,KAAK2zD,aAAe3zD,KAAKwzD,UACzBE,EAAoB1zD,KAAKwzD,UACzBxzD,KAAKwzD,UAAYA,EACjBxzD,KAAKyzD,KAAOA,EACRzzD,KAAK2zD,YACA3zD,KAAK0rD,YAAYvoD,KAAK,SAAUiF,GACrC,MAAO,YAEL,MADAA,GAAMurD,aAAc,EACbvrD,EAAMi0D,yBAAyBzI,eAEvC5zD,OACMA,KAAKwzD,UAAY,GAAKE,GAAqB,GACpD1zD,KAAK6zD,aAAc,EACZ7zD,KAAKoiD,kBAAkBj/C,KAAK,SAAUiF,GAC3C,MAAO,YAEL,MADAA,GAAMyrD,aAAc,EACbzrD,EAAMi0D,yBAAyBzI,eAEvC5zD,QAPE,SAWTg8D,EAAiBpsD,UAAUkN,qBAAuB,WAChD,MAAO9c,MAAKoiD,kBAAkBj/C,KAAK,SAAUiF,GAC3C,MAAO,YACL,GAAIuK,GAAGqC,EAAKsnD,EAAc7hD,EAASk+B,CAEnC,IADA2jB,EAAej8D,EAAEm7D,WAAWpzD,EAAMi0D,yBAAyBzB,eAAgBxyD,EAAMi0D,yBAAyBxB,YACtGyB,EAAalvD,OAAQ,CAEvB,IADAqN,KACK9H,EAAI,EAAGqC,EAAMsnD,EAAalvD,OAAQuF,EAAIqC,EAAKrC,IAC9CgmC,EAAW2jB,EAAa3pD,GACxB8H,EAAQlT,KAAKa,EAAMm0D,4BAA6B5jB,GAElD,OAAOl+B,MAGVza,QAGLg8D,EAAiBpsD,UAAUsyC,wBAA0B,WA2BnD,MA1BAliD,MAAK4T,MAAMlH,IAAI,qBAAsB,SAAUtE,GAC7C,MAAO,UAASmG,EAAOwoB,GAIrB,MAHA3uB,GAAMisD,oBAAoBlxD,KAAK,WAC7B,MAAOiF,GAAMi0D,yBAAyBppD,IAAI8jB,KAErC3uB,EAAMm5C,UAAU18B,WAAW,YAAa,SAAU,6BAA8B,KAExF7kB,OACHA,KAAK4T,MAAMlH,IAAI,sBAAuB,SAAUtE,GAC9C,MAAO,UAASmG,EAAOiyC,GAIrB,MAHAp4C,GAAMisD,oBAAoBlxD,KAAK,WAC7B,MAAOiF,GAAMi0D,yBAAyBppD,IAAIutC,KAErCp4C,EAAMm5C,UAAU18B,WAAW,YAAa,SAAU,kCAAmC,KAE7F7kB,OACHA,KAAK4T,MAAMlH,IAAI,sBAAuB,SAAUtE,GAC9C,MAAO,UAASmG,EAAOwoB,GACrB,MAAO3uB,GAAMisD,oBAAoBlxD,KAAK,WACpC,MAAOiF,GAAMi0D,yBAAyB/H,aAAav9B,OAGtD/2B,OACHA,KAAK4T,MAAMlH,IAAI,oBAAqB1M,KAAKw0D,qBACzCx0D,KAAK4T,MAAMlH,IAAI,iBAAkB1M,KAAK0iD,QACtC1iD,KAAK4T,MAAMlH,IAAI,qCAAsC1M,KAAKu8D,0BACnDv8D,KAAK4T,MAAMlH,IAAI,qCAAsC1M,KAAKw8D,2BAGnER,EAAiBpsD,UAAUk4C,SAAW,SAAS19C,EAAMuuC,GACnD,OAAQvuC,GACN,IAAK,WACH,MAAOpK,MAAKqgB,UAAUqG,WAAW,aAAc1mB,KAAK4T,MAAM2G,UAAWo+B,EAAU34C,KAAK4T,MAAMikC,aAC5F,KAAK,OACH,MAAO73C,MAAKqgB,UAAUqG,WAAW,cAAe1mB,KAAK4T,MAAM2G,UAAWo+B,KAI5EqjB,EAAiBpsD,UAAU6sD,OAAS,SAAS7iD,GAC3C,GAAImd,EAIJ,OAHAA,GAAK/2B,KAAKq8D,yBAAyBV,MAAM/hD,GACzCmd,EAAKA,EAAGhb,IAAI,WAAW,GACvB/b,KAAKq8D,yBAAyBjpD,QAAQ2jB,GAC/B/2B,KAAKoa,GAAG6D,YAAYw6B,SAAS1hB,EAAG8+B,OAAO,QAAS,YAAa9+B,EAAG8+B,OAAO,QAAS,SAAS1yD,KAAK,SAAUiF,GAC7G,MAAO,UAASs0D,GACd,MAAOt0D,GAAMo5C,IAAI1J,YAAY77B,KAAK,KAAM8a,EAAGjxB,IAAI,MAAOixB,EAAG8+B,OAAO,QAAS,aAAa1yD,KAAK,SAAS20C,GAGlG,MAFA1vC,GAAMiY,UAAUqG,WAAW,cAAeg2C,EAAkB5kB,EAAYr/B,QACxEse,EAAKA,EAAGhb,IAAI,WAAW,GAChB3T,EAAMi0D,yBAAyBjpD,QAAQ2jB,OAGjD/2B,QAGLg8D,EAAiBpsD,UAAU6lD,gBAAkB,SAAS9c,GACpD,MAAI34C,MAAK4T,MAAMikC,aAAa,GAAGj+B,KAAO++B,IAAa34C,KAAKq8D,yBAAyB1B,eAAevtD,QAMlG4uD,EAAiBpsD,UAAU2mD,WAAa,SAAS38C,GAC/C,MAAO5Z,MAAKq8D,yBAAyB9F,WAAW38C,IAGlDoiD,EAAiBpsD,UAAUorD,2BAA6B,SAAS3jC,GAC/D,MAAOr3B,MAAKq8D,yBAAyBrB,2BAA2B3jC,IAGlE2kC,EAAiBpsD,UAAU+sD,mBAAqB,SAAS/iD,GACvD,GAAImd,EAEJ,OADAA,GAAK/2B,KAAKq8D,yBAAyBpB,WAAWrhD,GACvC5Z,KAAKqgB,UAAUqG,WAAW,kBAAmBqQ,IAGtDilC,EAAiBpsD,UAAU4kD,oBAAsB,SAAS3mD,EAAK4mD,EAAQoH,GACrE,GAAIz4D,EAIJ,OAHAy4D,GAAQr+C,YAAci3C,EACtBz0D,KAAKq8D,yBAAyB/H,aAAauH,GAC3Cz4D,EAAUpD,KAAKkuB,KAAKU,KAAKitC,GAClBz4D,EAAQD,KAAK,KAAM,WACxB,MAAO0vD,SAAQ/7C,IAAI,WAIvBklD,EAAiBpsD,UAAUykD,kBAAoB,WAC7C,MAAOr0D,MAAKoa,GAAGC,SAAS4kC,WAAWj/C,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACtE,MAAO,UAASsvC,GACd,MAAOtvC,GAAMwL,MAAMkG,QAAQ49B,YAAcA,EAAYjpB,SAEtDzuB,QAGLg8D,EAAiBpsD,UAAUwyC,gBAAkB,WAC3C,GAAIv+C,GAAQT,CAwBZ,OAvBAS,IACEsyD,qBAAqB,GAEnBn2D,KAAKwzD,UAAY,IACnB3vD,EAAO00C,oBAAsB,EAC7B10C,EAAO20C,cAAgB,GAEzB30C,EAASxD,EAAE2nC,MAAMnkC,EAAQ7D,KAAK4a,SAASpU,UACvCpD,EAAUpD,KAAKoa,GAAG6D,YAAY2+C,QAAQ58D,KAAK4T,MAAM2G,UAAW1W,GAAQV,KAAK,SAAUiF,GACjF,MAAO,UAAS6V,GAMd,MALA7V,GAAMi0D,yBAAyB38D,KAAK0I,EAAMwL,MAAMkG,QAAS1R,EAAMwL,MAAMiG,WACrEzR,EAAMi0D,yBAAyBtgD,IAAIkC,GACnClM,EAAW3J,EAAMwL,MAAO,WACtB,MAAOxL,GAAMwL,MAAM8S,WAAW,qBAAsBzI,KAE/CA,IAERje,OACHoD,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,MAAOA,GAAMwL,MAAM8S,WAAW,gBAE/B1mB,OACIoD,GAGT44D,EAAiBpsD,UAAU2sD,yBAA2B,SAAS1uD,EAAK8qC,GAClE,GAAIkkB,GAAgBh5D,CAEpB,IADAg5D,EAAiB78D,KAAK4a,SAASpU,SAASC,QACpCo2D,IACFA,EAAiBA,EAAe5vD,MAAM,KAAK3M,IAAI,SAASkc,GACtD,MAAOqP,UAASrP,EAAI,MAElBqgD,EAAe91D,QAAQ4xC,SAU7B,MANA90C,IACE4C,OAAQkyC,EACRJ,qBAAqB,EACrBC,eAAe,GAEjB30C,EAASxD,EAAE2nC,MAAMnkC,EAAQ7D,KAAK4a,SAASpU,UAChCxG,KAAKoa,GAAG6D,YAAY2+C,QAAQ58D,KAAK4T,MAAM2G,UAAW1W,GAAQV,KAAK,SAAUiF,GAC9E,MAAO,UAAS6V,GAEd,MADA7V,GAAMwL,MAAM8S,WAAW,sCAAuCiyB,EAAU16B,GACjEA,IAERje,QAGLg8D,EAAiBpsD,UAAU4sD,yBAA2B,SAAS3uD,EAAK8qC,GAClE,MAAO34C,MAAK4T,MAAM8S,WAAW,uCAAwCiyB,IAGvEqjB,EAAiBpsD,UAAUktD,WAAa,WACtC,MAAO98D,MAAKyQ,EAAE0J,KAAKna,KAAKq0D,oBAAqBr0D,KAAKoiD,qBAGpD4Z,EAAiBpsD,UAAUgyB,YAAc,WACvC,GAAI9nB,EAiBJ,OAhBAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQ4T,qBACX1tB,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMgnB,OAASv6B,EAAEqZ,OAAOI,EAAQ8gB,OAAQ,SAC7C56B,KAAK4T,MAAMw9B,WAAa5/B,EAAQsI,EAAQ8gB,OAAQ,SAASr6B,GACvD,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMyuB,aAAe7wB,EAAQsI,EAAQwoB,YAAa,SAAS/hC,GAC9D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMikC,aAAex3C,EAAEqZ,OAAOI,EAAQwoB,YAAa,SACxDtiC,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGTkiD,EAAiBpsD,UAAUgzC,uBAAyB,WAClD,GAAIC,EAEJ,OADAA,GAAc,mBAAqB7iD,KAAK4T,MAAM2G,UAAY,eACnDva,KAAKshD,OAAO7uB,UAAUzyB,KAAK4T,MAAOivC,EAAa,SAAUz6C,GAC9D,MAAO,UAAS4c,GACd,MAAO5c,GAAMg6C,oBAEdpiD,QAGLg8D,EAAiBpsD,UAAUyxB,gBAAkB,WAC3C,GAAIvnB,EAKJ,OAJAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OAChDtZ,KAAK4iD,yBACL5iD,KAAK88D,aACE98D,KAAK+c,mBAGdi/C,EAAiBpsD,UAAU21C,sBAAwB,SAASC,EAAMvd,GAIhE,MAHa,OAATA,IACFA,EAAQ,gBAEH5nC,EAAEC,IAAIklD,EAAM,SAASjlD,GAC1B,OACEklD,MAASllD,EAAEqZ,GACX8rC,MAASnlD,EAAE0nC,OAKjB+zB,EAAiBpsD,UAAU8yC,OAAS,SAAS70C,EAAKkpB,EAAIg/B,EAAasD,EAAavgD,GAC9E,GAAIk9C,GAAgBvP,EAAS5iD,EAAQT,CAuBrC,OAtBA2zB,GAAK/2B,KAAKq8D,yBAAyBpB,WAAWlkC,EAAGjxB,IAAI,OACrDkwD,EAAiBh2D,KAAKq8D,yBAAyBnG,KAAKn/B,EAAGnd,GAAIy/C,EAAavgD,GACxEjV,GACE00C,qBAAqB,EACrBC,eAAe,GAEjBiO,GACE/gD,SACE8hD,aAAchnD,KAAKC,UAAUu1D,EAAeI,cAGhDhzD,EAAUpD,KAAKkuB,KAAKU,KAAKmI,GAAI,EAAMlzB,EAAQ4iD,GAAS,GACpDrjD,EAAUA,EAAQD,KAAK,SAAUiF,GAC/B,MAAO,UAAS6M,GACd,GAAIvP,GAASggD,CAEb,IADAhgD,EAAUuP,EAAO,GACbvP,GAAWA,EAAQ,4BAErB,MADAggD,GAAQllD,KAAKwI,MAAMtD,EAAQ,6BACpB0C,EAAMi0D,yBAAyBhG,aAAa3Q,KAGtD1lD,QAIEg8D,GAENnqD,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,aAAclZ,EAAMoZ,iBAEtExZ,EAAOwE,WAAW,mBAAoB63D,GAEtCC,EAAkB,SAAS91C,EAAOpa,GAChC,GAAIsX,EAcJ,OAbAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIqzC,EAQJ,OAPAA,GAAetzC,EAAI9G,KAAK,sBACxBo6C,EAAatyC,GAAG,SAAU,SAAShW,GACjC,GAAIuoD,GAAgB9yC,CAGpB,OAFAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B6yC,EAAiBvzC,EAAI9G,KAAK,4CACnBq6C,EAAepuB,IAAI,UAAa1kB,EAAO+yC,gBAEzCzzC,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,YAAa,UAAW,aAAc84C,IAEvDH,EAAsC,SAAS/vD,EAAY/I,EAAYq5D,GACrE,GAAIU,GAAkB15C,EAAM25C,CA+B5B,OA9BAA,GAAmBh6D,EAAWuF,QAAQ,+BACtCw0D,EAAmB/5D,EAAWuF,QAAQ,+BACtC8a,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIy5C,GAAQx2D,CAuBZ,OAtBAA,GAAS6c,EAAOtP,MAAMwP,EAAO05C,8BAC7BD,GAAS,EACTZ,EAAyBtB,kBAAkBt0D,EAAOmT,IAClDyiD,EAAyBnB,WAAWz0D,EAAOmT,IAC3C0J,EAAO,SAAW,aAClBA,EAAOhf,MAAQ04D,EACfz5C,EAAIgB,GAAG,QAAS,SAAShW,GAEvB,MADA0uD,IAAUA,EACH35C,EAAO/N,OAAO,WACnB,MAAI0nD,IACF35C,EAAO,SAAW,aAClBA,EAAOhf,MAAQ04D,EACfjxD,EAAW2a,WAAW,qCAAsCjgB,EAAOmT,IAC5DyiD,EAAyBnB,WAAWz0D,EAAOmT,MAElD0J,EAAO,SAAW,eAClBA,EAAOhf,MAAQy4D,EACfhxD,EAAW2a,WAAW,qCAAsCjgB,EAAOmT,IAC5DyiD,EAAyBjB,WAAW30D,EAAOmT,SAIjD0J,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,gCAAiC,aAAc,aAAc,sBAAuB24C,IAErGC,EAAqC,SAAS/4D,EAAYq5D,GACxD,GAAIh5C,GAAM85C,CAqCV,OApCAA,MACA95C,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI45C,GAAuB32D,EAAQ42D,CA8BnC,OA7BAD,GAAwBp6D,EAAWuF,QAAQ,8BAC3C9B,EAAS6c,EAAOtP,MAAMwP,EAAO85C,6BAC7B/5C,EAAI1O,KAAKuoD,GACTC,EAAkB,SAASE,GACzB,MAAIA,GACKh6C,EAAI1O,KAAK,IAET0O,EAAI1O,KAAKuoD,IAGpB95C,EAAO5W,IAAI,iBAAkB,SAASmB,EAAK2vD,EAAQzH,EAAasD,EAAaF,GAC3E,GAAIoE,EAEJ,OADAA,KAAgBlB,EAAyBhB,UAAUhC,GAAajsD,OACzDiwD,EAAgBE,KAEzBj6C,EAAO5W,IAAI,sCAAuC,SAASmB,EAAK8qC,EAAU8kB,GACxE,GAAIF,EACJ,IAAI5kB,IAAalyC,EAAOmT,GAItB,MAHAyiD,GAAyBlB,aAAaxiB,GACtC0jB,EAAyBppD,IAAIwqD,GAC7BF,IAAgBlB,EAAyBhB,UAAU1iB,GAAUvrC,OACtDiwD,EAAgBE,KAG3Bj6C,EAAO5W,IAAI,uCAAwC,SAASmB,EAAK8qC,GAC/D,GAAIA,IAAalyC,EAAOmT,GACtB,MAAOyjD,IAAgB,KAGpB/5C,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,+BAAgC,aAAc,sBAAuB44C,IAEtFG,EAA8B,SAAS9hD,EAAI9W,GACzC,GAAI+f,EA8BJ,OA7BAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI+I,GAASmxC,CAoBb,OAnBAp6C,GAAOq0C,WAAa,SAASlxD,GAC3B6c,EAAOq6C,MAAMl3D,EAAOmT,KAAS0J,EAAOq6C,MAAMl3D,EAAOmT,IACjDQ,EAAGwjD,OAAOhG,uBAAuBt0C,EAAO/I,UAAW+I,EAAOq6C,OAC1DD,KAEFA,EAAmB,WACjB,GAAIvF,GAAcE,CAWlB,OAVAF,GAAe93D,EAAEC,IAAIgjB,EAAOu0B,aAAc,SAASpxC,GACjD,MAAI6c,GAAOq6C,MAAMl3D,EAAOmT,IACf,GAEA,MAGXy+C,EAAah4D,EAAEwX,OAAOsgD,EAAc,SAASI,EAAO1rD,GAClD,MAAO0rD,GAAQ1rD,IAEV0W,EAAI9G,KAAK,uBAAuBisB,IAAI,QAAS2vB,IAE/C9rC,EAAUjJ,EAAOrP,OAAO,aAAc,SAAS6mD,GACpD,GAAIA,EAAWrkD,KAGb,MAFA6M,GAAOq6C,MAAQvjD,EAAGwjD,OAAOpG,qBAAqBl0D,EAAewW,QAAQhU,IAAI,OACzE43D,IACOnxC,QAKXlJ,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyB,eAAgB,mBAAoB+4C,IAE9EC,EAA0B,WACxB,GAAI94C,EA0BJ,OAzBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIq6C,GAAgBp3D,CAoBpB,OAnBAA,GAAS6c,EAAOtP,MAAMwP,EAAOs6C,kBAC7BD,EAAiB,SAAUz1D,GACzB,MAAO,YAEL,MADAmb,GAAI9G,KAAK,qBAAqBmF,SACvBxP,EAAQ,IAAK,WAClB,GAAInK,EAEJ,IADAA,EAAUsb,EAAI9G,KAAK,WAAWhW,EAAOs3D,WAEnC,MAAOn7D,SAAQqF,QAAQA,GAAS8gD,OAAO,4CAI5C/oD,MACCyG,IAAWA,EAAOsxC,cACpBz0B,EAAO5W,IAAI,aAAcmxD,GACzBv6C,EAAO5W,IAAI,iBAAkBmxD,GAC7Bv6C,EAAO5W,IAAI,qBAAsBmxD,GACjCv6C,EAAO5W,IAAI,sBAAuBmxD,IAE7Bv6C,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,mBAAoBg5C,IAEpCl4D,KAAKjE,MA2BR,WACE,GAAIg+D,GAAyBhtD,EAAUQ,EAASK,EAAOlS,EAAQoS,EAAYhS,EAAOqS,EAASE,CAE3FvS,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBS,EAAatS,KAAKD,MAAMuS,WAExBP,EAAa/R,KAAKD,MAAMgS,WAExBf,EAAWhR,KAAKD,MAAMiR,SAEtBQ,EAAUxR,KAAKD,MAAMyR,QAErBY,EAAUpS,KAAKD,MAAMqS,QAErBzS,EAASiD,QAAQjD,OAAO,eAExBq+D,EAA0B,SAAS73C,EAAO6Q,EAAKjrB,GAC7C,GAAIsX,EAgEJ,OA/DAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI+I,EACJ,OAAOA,GAAUjJ,EAAOrP,OAAO,aAAc,SAAS6mD,GACpD,GAAIpC,GAAYzJ,EAAeC,EAAO0J,EAAQC,EAAgBC,EAAgB1J,EAAQ2J,CACtF,IAAK+B,GAAeA,EAAWrkD,OAG/B8V,IACMjJ,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,iBAiD5C,MA9CA+xD,GAAiB,KACjBD,EAAiB,KACjBD,EAAS,KACTG,EAAOx1C,EACP0rC,EAAgB,SAAS2J,GAGvB,MAFAA,GAAOhlD,QAAQgiB,WACfgjC,EAAOn0C,MACAm0C,EAAOh3C,UAEhB82C,EAAar4D,EAAEC,IAAIijB,EAAI9G,KAAK,gBAAiB,SAAS/J,GACpD,MAAOA,KAETw8C,EAAQG,QAAQqJ,GACdpJ,gBAAgB,EAChBvP,MAAM,EACN0P,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,cAGtBmE,EAAM3qC,GAAG,OAAQ,SAAS7R,GACxB,MAAOomD,GAAiB/rB,EAAEr6B,GAAMnD,SAASqE,UAE3Cs7C,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIymD,GAAWqE,EAAQnE,EAAatD,EAAayD,CAWjD,OAVAA,GAAWzsB,EAAEr6B,GAAMnD,SACnBqpD,EAAS7rB,EAAEr6B,GACX8qD,EAAS5E,EAAOhlD,QAAQmjB,GACxBoiC,EAAYP,EAAO9/C,QACnB+/C,EAAiBW,EAAS5lD,QAC1BylD,EAAcR,EAAeh0B,EAAEjrB,GAC/Bm8C,EAAc+C,EAAej0B,EAAEjrB,GAC3By/C,IAAgBtD,GAClB9G,EAAc2J,GAETt1C,EAAO/N,OAAO,WACnB,MAAOxJ,GAAW2a,WAAW,iBAAkB82C,EAAQA,EAAO3H,OAAO,QAAS,WAAYwD,EAAaF,OAG3G/J,EAASa,WAAWyI,GAClBxI,OAAQ,IACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvBhtC,EAAO5W,IAAI,WAAY,WAE5B,MADA6W,GAAIkB,MACGyqC,EAAM9mB,gBAKjB/kB,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqB,UAAW,eAAgB,aAAc66C,KAE9E/5D,KAAKjE,MA2BR,WACE,GAAIi+D,GAAsBC,EAA2BC,EAA4BptD,EAAaC,EAAUQ,EAASI,EAASC,EAAOlS,EAAQI,EAAOsS,EAC9IxP,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBQ,EAAWrS,KAAKD,MAAMsS,SAEtBT,EAAU5R,KAAKD,MAAM6R,QAErBJ,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBD,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,cAExBs+D,EAAuB,SAAU7tD,GAK/B,QAAS6tD,GAAqBrqD,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIonC,EAAK39C,EAAQ4M,EAAGmK,EAAU9D,EAAK3K,EAAgBo1C,EAAWtgB,EAASliB,EAAW0iC,EAAgBr7C,EAAsB9C,GACrL,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAKwhD,IAAMA,EACXxhD,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAK8W,IAAMA,EACX9W,KAAKmM,eAAiBA,EACtBnM,KAAKuhD,UAAYA,EACjBvhD,KAAKihC,QAAUA,EACfjhC,KAAK+e,UAAYA,EACjB/e,KAAKyhD,eAAiBA,EACtBzhD,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMwqD,QAAUp+D,KAAK6D,OAAOw6D,QACjCr+D,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,qBAChDvI,KAAKkiD,0BACL9+C,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YAEL,MADAA,GAAMkrD,WACClrD,EAAMk2D,8BAEdt+D,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAuMlD,MAzOA6C,GAAOo7D,EAAsB7tD,GAE7B6tD,EAAqB79C,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,cAAe,eAAgB,KAAM,cAAe,OAAQ,mBAAoB,eAAgB,aAAc,aAAc,8BAA+B,yBAA0B,oBAmCtR69C,EAAqBruD,UAAU0jD,SAAW,WACxC,GAAI/uD,GAAaf,EAAKc,CAUtB,OATAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,mBAC7B61D,QAAS,IAAMp+D,KAAK4T,MAAMoK,KAAKxa,IAC/B+6D,YAAav+D,KAAK4T,MAAMoK,KAAKa,QAC7ByiB,YAAathC,KAAK4T,MAAMkG,QAAQvF,OAElChQ,EAAcvE,KAAK+e,UAAUxW,QAAQ,yBACnCi2D,YAAsE,OAAxDh7D,EAAMxD,KAAK4T,MAAM6qD,WAAWz+D,KAAK4T,MAAMoK,KAAKvX,SAAmBjD,EAAI+Q,KAAO,SAAW,KACnGmqD,gBAAiB97D,QAAQqF,QAAQjI,KAAK4T,MAAMoK,KAAK2gD,kBAAoB,IAAI9pD,SAEpE7U,KAAKmM,eAAewC,OAAOrK,EAAOC,IAG3C05D,EAAqBruD,UAAUsyC,wBAA0B,WAWvD,MAVAliD,MAAK4T,MAAMlH,IAAI,oBAAqB,SAAUtE,GAC5C,MAAO,YACL,MAAOA,GAAMm5C,UAAU18B,WAAW,aAAc,SAAU,4BAA6B,KAExF7kB,OACHA,KAAK4T,MAAMlH,IAAI,cAAe,SAAUtE,GACtC,MAAO,YACL,MAAOA,GAAMw2D,aAEd5+D,OACIA,KAAK4T,MAAMlH,IAAI,gCAAiC,SAAUtE,GAC/D,MAAO,YACL,MAAOA,GAAMiY,UAAUqG,WAAW,oBAEnC1mB,QAGLi+D,EAAqBruD,UAAU0uD,0BAA4B,WACzD,GAAIzwD,EAIJ,OAHAA,IACEiM,QAAS9Z,KAAK4T,MAAMkG,QAAQ0T,MAEvBxtB,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,gBAAiBkL,IAG5EowD,EAAqBruD,UAAUgyB,YAAc,WAC3C,GAAI9nB,EAUJ,OATAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAMirD,iBAAmB7+D,KAAKsD,eAAewW,QAClD9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAMgkC,WAAa99B,EAAQgoB,cAChC9hC,KAAK4T,MAAM6qD,WAAajtD,EAAQsI,EAAQgoB,cAAe,SAASvhC,GAC9D,MAAOA,GAAEqZ,KAEJE,GAGTmkD,EAAqBruD,UAAUgvD,SAAW,WACxC,MAAO5+D,MAAKoa,GAAGwE,MAAM65B,SAASz4C,KAAK4T,MAAM2G,UAAWva,KAAK6D,OAAOw6D,SAASl7D,KAAK,SAAUiF,GACtF,MAAO,UAAS4V,GACd,GAAInQ,GAAKrK,EAAKimC,CAad,IAZArhC,EAAMwL,MAAMoK,KAAOA,EACnB5V,EAAMwL,MAAMkrD,cAAgB79C,UAAUC,OAAOlD,EAAKyQ,QAClDrmB,EAAMwL,MAAMmrD,OAAS/gD,EAAKpE,GAC1BxR,EAAMwL,MAAMorD,aAAehhD,EAC3B5V,EAAMq5C,eAAerzB,UAAUhmB,EAAMwL,MAAO,QACoC,OAA5B,OAA9CpQ,EAAM4E,EAAMwL,MAAMoK,KAAKihD,UAAUpY,UAAoBrjD,EAAIA,IAAM,UACnEqK,GACEiM,QAAS1R,EAAMwL,MAAMkG,QAAQ0T,KAC7BhqB,IAAK4E,EAAMwL,MAAMoK,KAAKihD,UAAUpY,SAASrjD,KAE3C4E,EAAMwL,MAAMsrD,YAAc92D,EAAM64B,QAAQt+B,QAAQ,uBAAwBkL,IAEI,OAA7B,OAA3C47B,EAAOrhC,EAAMwL,MAAMoK,KAAKihD,UAAU/3D,MAAgBuiC,EAAKjmC,IAAM,QAKjE,MAJAqK,IACEiM,QAAS1R,EAAMwL,MAAMkG,QAAQ0T,KAC7BhqB,IAAK4E,EAAMwL,MAAMoK,KAAKihD,UAAU/3D,KAAK1D,KAEhC4E,EAAMwL,MAAMrN,QAAU6B,EAAM64B,QAAQt+B,QAAQ,uBAAwBkL,KAG9E7N,QAGLi+D,EAAqBruD,UAAUwyC,gBAAkB,WAC/C,MAAOpiD,MAAKwhD,IAAIvjC,YAAYkhD,WAAWn/D,KAAK4T,MAAMmrD,QAAQ57D,KAAK,SAAUiF,GACvE,MAAO,UAASL,GACd,MAAOK,GAAMwL,MAAMqK,YAAclW,IAElC/H,QAGLi+D,EAAqBruD,UAAUyxB,gBAAkB,WAC/C,GAAIvnB,EAGJ,OAFAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OACzCtZ,KAAK4+D,WAAWz7D,KAAK,SAAUiF,GACpC,MAAO,YACL,MAAOA,GAAMg6C,oBAEdpiD,QASLi+D,EAAqBruD,UAAUwvD,SAAW,WACxC,GAAI17C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMw2D,WACCx2D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGwE,MAAMygD,OAAOr/D,KAAK4T,MAAMmrD,QAAQ57D,KAAKwgB,EAAWD,IAGjEu6C,EAAqBruD,UAAU0vD,WAAa,WAC1C,GAAI57C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMw2D,WACCx2D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGwE,MAAM2gD,SAASv/D,KAAK4T,MAAMmrD,QAAQ57D,KAAKwgB,EAAWD,IASnEu6C,EAAqBruD,UAAU4vD,QAAU,WACvC,GAAI97C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMw2D,WACCx2D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGwE,MAAM63B,MAAMz2C,KAAK4T,MAAMmrD,QAAQ57D,KAAKwgB,EAAWD,IAGhEu6C,EAAqBruD,UAAU6vD,UAAY,WACzC,GAAI/7C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMw2D,WACCx2D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGwE,MAAM2N,QAAQvsB,KAAK4T,MAAMmrD,QAAQ57D,KAAKwgB,EAAWD,IAGlEu6C,EAAqBruD,UAAU8vD,cAAgB,SAAS9iD,GACtD,GAAI+iD,GAAoBC,EAAsBh2B,CAgB9C,OAfAg2B,GAAuB,SAAUx3D,GAC/B,MAAO,YAEL,MADAA,GAAMiY,UAAUqG,WAAW,kBACpBte,EAAM+lC,QAAQ3lC,OAAO,aAE7BxI,MACH2/D,EAAqB,SAAUv3D,GAC7B,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACH4pC,EAAY5pC,KAAKyhD,eAAe7yB,KAAK,SAAS5Q,GAE5C,MADAA,GAAKpB,MAAQA,EACNoB,IAEF4rB,EAAUzmC,KAAKy8D,EAAsBD,IAGvC1B,GAENpsD,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,uBAAwB85D,GAE1CE,EAA6B,SAAShpC,EAAWD,GAC/C,GAAI7R,GAAMze,CAuBV,OAtBAA,GAAWuwB,EAAUrvB,IAAI,yCAAyC,GAClEud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EAgBJ,OAfAA,GAAS,SAASnO,GAChB,GAAI6X,GAAMpvB,CAOV,OANAA,GAAS6c,EAAOm7C,WAAWzgD,EAAKvX,QAChCovB,EAAOjxB,GACLi7D,UAAWp5D,EAAOo5D,UAClBp5D,OAAQA,IAEVovB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAElBvS,EAAOrP,OAAOuP,EAAO+S,QAAS,SAASvY,GACrC,GAAY,MAARA,EACF,MAAOmO,GAAOnO,KAGXsF,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,uBAAwB,cAAe,WAAYg7C,IAEpED,EAA4B,SAAShqC,EAAY/N,EAAO9d,EAAU+rB,EAAUiV,EAAiBnU,EAAUlyB,EAAYmyB,GACjH,GAAI9R,GAAMze,CAqEV,OApEAA,GAAWuwB,EAAUrvB,IAAI,wCAAwC,GACjEud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CA8DxB,OA7DA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,qBAE/ColB,EAAS,SAAU/jB,GACjB,MAAO,UAAS4V,GACd,GAAI6X,GAAMpvB,CAOV,OANAA,GAAS6c,EAAOm7C,WAAWzgD,EAAKvX,QAChCovB,EAAOX,EAAStwB,GACd6B,OAAQA,EACR6X,SAAUgF,EAAOs0B,WACjBpI,SAAUjG,OACRjmB,GACGC,EAAIsS,KAAKA,KAEjB71B,MACH4uB,EAAO,SAASnoB,GACd,GAAI+tB,GAAgB9Q,EAASC,EAAWimB,CAcxC,OAbApV,GAAiBJ,IAAWpQ,OAAOT,GAAK7U,QACxCk7B,EAAYP,EAAgBza,KAAK,SAAS5Q,GAExC,MADAA,GAAKvX,OAASA,EACPuX,IAET2F,EAAY,WAEV,MADAuQ,GAAWxN,WAAW,kBACf8N,EAAeG,UAExBjR,EAAU,WAER,MADArb,GAASG,OAAO,SACTgsB,EAAeG,UAEjBiV,EAAUzmC,KAAKwgB,EAAWD,IAEnCH,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAG1C,GAFAA,EAAME,iBACNF,EAAMwhC,kBACDxG,IAGL,MAAOhmB,GAAI9G,KAAK,eAAes1B,UAAUnd,SAE3CrR,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIyV,EAGJ,IAFAzV,EAAME,iBACNF,EAAMwhC,kBACDxG,IAKL,MAFAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B8oB,EAAE/8B,GAAG+hC,UAAUnrC,WACRgoB,EAAK5K,EAAOjc,KAAK,gBAE1Bub,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIiD,OAAS,QACxD,WACD,GAAIuX,EAEJ,IADAA,EAAOoI,EAAO2P,YAEZ,MAAO5J,GAAOnO,KAGXsF,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,sBAAuB,aAAc,UAAW,aAAc,aAAc,8BAA+B,WAAY,aAAc,cAAe+6C,KAEpKj6D,KAAKjE,MA2BR,WACE,GAAI8/D,GAAuBC,EAA8BC,EAA8BC,EAA4BC,EAA6BC,EAA0BC,EAAiCrvD,EAAaC,EAAUQ,EAASI,EAASC,EAAOlS,EAAQI,EAAOsS,EACxQxP,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBQ,EAAWrS,KAAKD,MAAMsS,SAEtBT,EAAU5R,KAAKD,MAAM6R,QAErBJ,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBD,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,eAExBmgE,EAAwB,SAAU1vD,GAKhC,QAAS0vD,GAAsBlsD,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAU9D,EAAK3K,EAAgBo1C,EAAWtgB,EAASliB,EAAW0iC,EAAgBr7C,EAAsB9C,GACjL,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAK8W,IAAMA,EACX9W,KAAKmM,eAAiBA,EACtBnM,KAAKuhD,UAAYA,EACjBvhD,KAAKihC,QAAUA,EACfjhC,KAAK+e,UAAYA,EACjB/e,KAAKyhD,eAAiBA,EACtBzhD,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMysD,SAAWrgE,KAAK6D,OAAOy8D,SAClCtgE,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,uBAChDvI,KAAKkiD,0BACL9+C,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YAEL,MADAA,GAAMkrD,WACClrD,EAAMk2D,8BAEdt+D,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OA+LlD,MAhOA6C,GAAOi9D,EAAuB1vD,GAE9B0vD,EAAsB1/C,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,OAAQ,mBAAoB,eAAgB,aAAc,aAAc,8BAA+B,yBAA0B,oBAkCxQ0/C,EAAsBlwD,UAAU0jD,SAAW,WACzC,GAAI/uD,GAAaf,EAAKimC,EAAMsd,EAAMwZ,EAAMj8D,CAaxC,OAZAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,oBAC7B83D,SAAU,IAAMrgE,KAAK4T,MAAMy3B,MAAM7nC,IACjCg9D,aAAcxgE,KAAK4T,MAAMy3B,MAAMxsB,QAC/ByiB,YAAathC,KAAK4T,MAAMkG,QAAQvF,OAElChQ,EAAcvE,KAAK+e,UAAUxW,QAAQ,0BACnCk4D,aAAwE,OAAzDj9D,EAAMxD,KAAK4T,MAAM6qD,WAAWz+D,KAAK4T,MAAMy3B,MAAM5kC,SAAmBjD,EAAI+Q,KAAO,SAAW,KACrGmsD,WAAmE,OAAtDj3B,EAAOzpC,KAAK4T,MAAM+sD,SAAS3gE,KAAK4T,MAAMy3B,MAAMjhC,OAAiBq/B,EAAKl1B,KAAO,SAAW,KACjGqsD,eAA+E,OAA9D7Z,EAAO/mD,KAAK4T,MAAMuuB,aAAaniC,KAAK4T,MAAMy3B,MAAMO,WAAqBmb,EAAKxyC,KAAO,SAAW,KAC7GssD,eAA+E,OAA9DN,EAAOvgE,KAAK4T,MAAMwuB,aAAapiC,KAAK4T,MAAMy3B,MAAMK,WAAqB60B,EAAKhsD,KAAO,SAAW,KAC7GusD,iBAAkBl+D,QAAQqF,QAAQjI,KAAK4T,MAAMy3B,MAAMszB,kBAAoB,IAAI9pD,SAEtE7U,KAAKmM,eAAewC,OAAOrK,EAAOC,IAG3Cu7D,EAAsBlwD,UAAUsyC,wBAA0B,WAkBxD,MAjBAliD,MAAK4T,MAAMlH,IAAI,oBAAqB,SAAUtE,GAC5C,MAAO,YACL,MAAOA,GAAMm5C,UAAU18B,WAAW,aAAc,SAAU,6BAA8B,KAEzF7kB,OACHA,KAAK4T,MAAMlH,IAAI,8BAA+B,SAAUtE,GACtD,MAAO,YAGL,MAFAA,GAAMm5C,UAAU18B,WAAW,QAAS,qBAAsB,6BAA8B,GACxFzc,EAAMiY,UAAUqG,WAAW,kBACpBte,EAAM24D,cAEd/gE,OACHA,KAAK4T,MAAMlH,IAAI,cAAe,SAAUtE,GACtC,MAAO,YACL,MAAOA,GAAM24D,cAEd/gE,OACIA,KAAK4T,MAAMlH,IAAI,gCAAiC,SAAUtE,GAC/D,MAAO,YACL,MAAOA,GAAMiY,UAAUqG,WAAW,oBAEnC1mB,QAGL8/D,EAAsBlwD,UAAU0uD,0BAA4B,WAC1D,GAAIzwD,EAIJ,OAHAA,IACEiM,QAAS9Z,KAAK4T,MAAMkG,QAAQ0T,MAE1BxtB,KAAK4T,MAAMkG,QAAQ8T,oBACd5tB,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,iBAAkBkL,GAEpE7N,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,UAAWkL,IAIxEiyD,EAAsBlwD,UAAUgyB,YAAc,WAC5C,GAAI9nB,EAqBJ,OApBAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAMgkC,WAAa99B,EAAQkoB,eAChChiC,KAAK4T,MAAM6qD,WAAajtD,EAAQsI,EAAQkoB,eAAgB,SAASzhC,GAC/D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAM+sD,SAAWnvD,EAAQsI,EAAQknD,YAAa,SAASzgE,GAC1D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMqtD,SAAW5gE,EAAEqZ,OAAOI,EAAQknD,YAAa,SACpDhhE,KAAK4T,MAAMstD,aAAepnD,EAAQmhB,WAClCj7B,KAAK4T,MAAMuuB,aAAe3wB,EAAQsI,EAAQmhB,WAAY,SAAS16B,GAC7D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMutD,aAAernD,EAAQkhB,WAClCh7B,KAAK4T,MAAMwuB,aAAe5wB,EAAQsI,EAAQkhB,WAAY,SAASz6B,GAC7D,MAAOA,GAAEqZ,KAEJE,GAGTgmD,EAAsBlwD,UAAUmxD,UAAY,WAC1C,MAAO/gE,MAAKoa,GAAGsiB,OAAO+b,SAASz4C,KAAK4T,MAAM2G,UAAWva,KAAK6D,OAAOy8D,UAAUn9D,KAAK,SAAUiF,GACxF,MAAO,UAASijC,GACd,GAAIx9B,GAAKrK,EAAKimC,CAYd,IAXArhC,EAAMwL,MAAMy3B,MAAQA,EACpBjjC,EAAMwL,MAAMwtD,QAAU/1B,EAAMzxB,GAC5BxR,EAAMwL,MAAMorD,aAAe3zB,EAC3BjjC,EAAMq5C,eAAerzB,UAAUhmB,EAAMwL,MAAO,SACqC,OAA5B,OAA/CpQ,EAAM4E,EAAMwL,MAAMy3B,MAAM4zB,UAAUpY,UAAoBrjD,EAAIA,IAAM,UACpEqK,GACEiM,QAAS1R,EAAMwL,MAAMkG,QAAQ0T,KAC7BhqB,IAAK4E,EAAMwL,MAAMy3B,MAAM4zB,UAAUpY,SAASrjD,KAE5C4E,EAAMwL,MAAMsrD,YAAc92D,EAAM64B,QAAQt+B,QAAQ,wBAAyBkL,IAEI,OAA7B,OAA5C47B,EAAOrhC,EAAMwL,MAAMy3B,MAAM4zB,UAAU/3D,MAAgBuiC,EAAKjmC,IAAM,QAKlE,MAJAqK,IACEiM,QAAS1R,EAAMwL,MAAMkG,QAAQ0T,KAC7BhqB,IAAK4E,EAAMwL,MAAMy3B,MAAM4zB,UAAU/3D,KAAK1D,KAEjC4E,EAAMwL,MAAMrN,QAAU6B,EAAM64B,QAAQt+B,QAAQ,wBAAyBkL,KAG/E7N,QAGL8/D,EAAsBlwD,UAAUyxB,gBAAkB,WAChD,GAAIvnB,EAGJ,OAFAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OACzCtZ,KAAK+gE,aASdjB,EAAsBlwD,UAAUwvD,SAAW,WACzC,GAAI17C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAM24D,YACC34D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGsiB,OAAO2iC,OAAOr/D,KAAK4T,MAAMwtD,SAASj+D,KAAKwgB,EAAWD,IAGnEo8C,EAAsBlwD,UAAU0vD,WAAa,WAC3C,GAAI57C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAM24D,YACC34D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGsiB,OAAO6iC,SAASv/D,KAAK4T,MAAMwtD,SAASj+D,KAAKwgB,EAAWD,IASrEo8C,EAAsBlwD,UAAU4vD,QAAU,WACxC,GAAI97C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAM24D,YACC34D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGsiB,OAAO+Z,MAAMz2C,KAAK4T,MAAMwtD,SAASj+D,KAAKwgB,EAAWD,IAGlEo8C,EAAsBlwD,UAAU6vD,UAAY,WAC1C,GAAI/7C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAM24D,YACC34D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGsiB,OAAOnQ,QAAQvsB,KAAK4T,MAAMwtD,SAASj+D,KAAKwgB,EAAWD,IAG7Do8C,GAENjuD,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,wBAAyB27D,GAE3CI,EAA8B,SAAS/qC,EAAWD,GAChD,GAAI7R,GAAMze,CAuBV,OAtBAA,GAAWuwB,EAAUrvB,IAAI,yCAAyC,GAClEud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EAgBJ,OAfAA,GAAS,SAASkf,GAChB,GAAIxV,GAAMpvB,CAOV,OANAA,GAAS6c,EAAOm7C,WAAWpzB,EAAM5kC,QACjCovB,EAAOjxB,GACLi7D,UAAWp5D,EAAOo5D,UAClBp5D,OAAQA,IAEVovB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAElBvS,EAAOrP,OAAOuP,EAAO+S,QAAS,SAAS8U,GACrC,GAAa,MAATA,EACF,MAAOlf,GAAOkf,KAGX/nB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,wBAAyB,cAAe,WAAY+8C,IAErED,EAA6B,SAAS/rC,EAAY/N,EAAO9d,EAAU+rB,EAAUiV,EAAiBlU,EAAWD,GACvG,GAAI7R,GAAMze,CAsEV,OArEAA,GAAWuwB,EAAUrvB,IAAI,wCAAwC,GACjEud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CA+DxB,OA9DA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,sBAE/ColB,EAAS,SAAU/jB,GACjB,MAAO,UAASijC,GACd,GAAIxV,GAAMpvB,CAQV,OAPAA,GAAS6c,EAAOm7C,WAAWpzB,EAAM5kC,QACjCovB,EAAOjxB,GACL6B,OAAQA,EACR6X,SAAUgF,EAAOs0B,WACjBpI,SAAUjG,MAEZ1T,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,KAEjB71B,MACH4uB,EAAO,SAAS+pB,GACd,GAAInkB,GAAgB9Q,EAASC,EAAWimB,CAexC,OAdAmD,GAAE/8B,GAAG+hC,UAAUnrC,WACf4tB,EAAiBJ,IAAWpQ,OAAOT,GAAK7U,QACxCk7B,EAAYP,EAAgBza,KAAK,SAASyc,GAExC,MADAA,GAAM5kC,OAASkyC,EACRtN,IAET1nB,EAAY,WAEV,MADAuQ,GAAWxN,WAAW,kBACf8N,EAAeG,UAExBjR,EAAU,WAER,MADArb,GAASG,OAAO,SACTgsB,EAAeG,UAEjBiV,EAAUzmC,KAAKwgB,EAAWD,IAEnCH,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAG1C,GAFAA,EAAME,iBACNF,EAAMwhC,kBACDxG,IAGL,MAAOhmB,GAAI9G,KAAK,eAAes1B,UAAUnd,SAE3CrR,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIyV,EAGJ,IAFAzV,EAAME;AACNF,EAAMwhC,kBACDxG,IAIL,MADAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eACxB2K,EAAK5K,EAAOjc,KAAK,gBAE1Bub,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIiD,OAAS,QACxD,WACD,GAAI4kC,EAEJ,IADAA,EAAQjlB,EAAO2P,YAEb,MAAO5J,GAAOkf,KAGX/nB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,uBAAwB,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAe,WAAY88C,IAExJE,EAA2B,SAASjsC,EAAY/N,EAAO9d,EAAU+rB,EAAUiV,EAAiBlU,EAAWD,GACrG,GAAI7R,GAAMze,CAuEV,OAtEAA,GAAWuwB,EAAUrvB,IAAI,gCAAgC,GACzDud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CAgExB,OA/DA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,sBAE/ColB,EAAS,SAAU/jB,GACjB,MAAO,UAASijC,GACd,GAAIxV,GAAMzrB,CAQV,OAPAA,GAAOkZ,EAAOq9C,SAASt1B,EAAMjhC,MAC7ByrB,EAAOjxB,GACLwF,KAAMA,EACNi3D,OAAQ/9C,EAAO29C,SACfzxB,SAAUjG,MAEZ1T,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,KAEjB71B,MACH4uB,EAAO,SAASxkB,GACd,GAAIoqB,GAAgB9Q,EAASC,EAAWimB,CAexC,OAdAmD,GAAE/8B,GAAG+hC,UAAUnrC,WACf4tB,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,gBAAgB/N,QAC5Dk7B,EAAYP,EAAgBza,KAAK,SAASyc,GAExC,MADAA,GAAMjhC,KAAOA,EACNihC,IAET1nB,EAAY,WAEV,MADAuQ,GAAWxN,WAAW,kBACf8N,EAAeG,UAExBjR,EAAU,WAER,MADArb,GAASG,OAAO,SACTgsB,EAAeG,UAEjBiV,EAAUzmC,KAAKwgB,EAAWD,IAEnCH,EAAIgB,GAAG,QAAS,aAAc,SAAShW,GAGrC,GAFAA,EAAME,iBACNF,EAAMwhC,kBACDxG,IAGL,MAAOhmB,GAAI9G,KAAK,aAAas1B,UAAUnd,SAEzCrR,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAChC,GAAIyV,GAAQ5Z,CAGZ,IAFAmE,EAAME,iBACNF,EAAMwhC,kBACDxG,IAKL,MAFAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B7Z,EAAO4Z,EAAOjc,KAAK,WACZ6mB,EAAKxkB,KAEdkZ,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAI4G,KAAO,QACtD,WACD,GAAIihC,EAEJ,IADAA,EAAQjlB,EAAO2P,YAEb,MAAO5J,GAAOkf,KAGX/nB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,qBAAsB,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAe,WAAYg9C,IAEtJH,EAA+B,SAAS9rC,EAAY/N,EAAO9d,EAAU+rB,EAAUiV,EAAiBlU,EAAWD,GACzG,GAAI7R,GAAMze,CAuEV,OAtEAA,GAAWuwB,EAAUrvB,IAAI,oCAAoC,GAC7Dud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CAgExB,OA/DA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,sBAE/ColB,EAAS,SAAU/jB,GACjB,MAAO,UAASijC,GACd,GAAIxV,GAAM+V,CAQV,OAPAA,GAAWtoB,EAAO6e,aAAakJ,EAAMO,UACrC/V,EAAOjxB,GACLgnC,SAAUA,EACV01B,WAAYh+C,EAAO49C,aACnB1xB,SAAUjG,MAEZ1T,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,KAEjB71B,MACH4uB,EAAO,SAASgd,GACd,GAAIpX,GAAgB9Q,EAASC,EAAWimB,CAexC,OAdAmD,GAAE/8B,GAAG+hC,UAAUnrC,WACf4tB,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,gBAAgB/N,QAC5Dk7B,EAAYP,EAAgBza,KAAK,SAASyc,GAExC,MADAA,GAAMO,SAAWA,EACVP,IAET1nB,EAAY,WAEV,MADAuQ,GAAWxN,WAAW,kBACf8N,EAAeG,UAExBjR,EAAU,WAER,MADArb,GAASG,OAAO,SACTgsB,EAAeG,UAEjBiV,EAAUzmC,KAAKwgB,EAAWD,IAEnCH,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GAGzC,GAFAA,EAAME,iBACNF,EAAMwhC,kBACDxG,IAGL,MAAOhmB,GAAI9G,KAAK,iBAAiBs1B,UAAUnd,SAE7CrR,EAAIgB,GAAG,QAAS,YAAa,SAAShW,GACpC,GAAIq9B,GAAU5nB,CAGd,IAFAzV,EAAME,iBACNF,EAAMwhC,kBACDxG,IAKL,MAFAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B2nB,EAAW5nB,EAAOjc,KAAK,eAChB6mB,EAAKgd,KAEdtoB,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIooC,SAAW,QAC1D,WACD,GAAIP,EAEJ,IADAA,EAAQjlB,EAAO2P,YAEb,MAAO5J,GAAOkf,KAGX/nB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,yBAA0B,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAe,WAAY68C,IAE1JD,EAA+B,SAAS7rC,EAAY/N,EAAO9d,EAAU+rB,EAAUiV,EAAiBlU,EAAWD,GACzG,GAAI7R,GAAMze,CAuEV,OAtEAA,GAAWuwB,EAAUrvB,IAAI,oCAAoC,GAC7Dud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CAgExB,OA/DA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,sBAE/ColB,EAAS,SAAU/jB,GACjB,MAAO,UAASijC,GACd,GAAIxV,GAAM6V,CAQV,OAPAA,GAAWpoB,EAAO8e,aAAaiJ,EAAMK,UACrC7V,EAAOjxB,GACL8mC,SAAUA,EACV61B,WAAYj+C,EAAO69C,aACnB3xB,SAAUjG,MAEZ1T,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,KAEjB71B,MACH4uB,EAAO,SAAS8c,GACd,GAAIlX,GAAgB9Q,EAASC,EAAWimB,CAexC,OAdAmD,GAAE/8B,GAAG+hC,UAAUnrC,WACf4tB,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,gBAAgB/N,QAC5Dk7B,EAAYP,EAAgBza,KAAK,SAASyc,GAExC,MADAA,GAAMK,SAAWA,EACVL,IAET1nB,EAAY,WAEV,MADAuQ,GAAWxN,WAAW,kBACf8N,EAAeG,UAExBjR,EAAU,WAER,MADArb,GAASG,OAAO,SACTgsB,EAAeG,UAEjBiV,EAAUzmC,KAAKwgB,EAAWD,IAEnCH,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GAGzC,GAFAA,EAAME,iBACNF,EAAMwhC,kBACDxG,IAGL,MAAOhmB,GAAI9G,KAAK,iBAAiBs1B,UAAUnd,SAE7CrR,EAAIgB,GAAG,QAAS,YAAa,SAAShW,GACpC,GAAIm9B,GAAU1nB,CAGd,IAFAzV,EAAME,iBACNF,EAAMwhC,kBACDxG,IAKL,MAFAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BynB,EAAW1nB,EAAOjc,KAAK,eAChB6mB,EAAK8c,KAEdpoB,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIkoC,SAAW,QAC1D,WACD,GAAIL,EAEJ,IADAA,EAAQjlB,EAAO2P,YAEb,MAAO5J,GAAOkf,KAGX/nB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,yBAA0B,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAe,WAAY48C,IAE1JK,EAAkC,SAASlsC,EAAY/N,EAAO9d,EAAUrF,GACtE,GAAIqgB,EA4CJ,OA3CAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIwI,EAsCJ,OArCAA,GAAO,SAAUxmB,GACf,MAAO,UAASijC,EAAOhV,GACrB,GAAItuB,GAAM2b,EAASC,CAmBnB,OAlBA5b,IACEy5D,qBAAsBn2B,EAAMzxB,GAC5BE,QAASuxB,EAAMvxB,QACf+E,QAASwsB,EAAMxsB,QACfta,YAAa8mC,EAAM9mC,YACnB6S,KAAMi0B,EAAMj0B,KACZwzB,WAAYS,EAAMT,WAClB4L,aAAcnL,EAAMmL,cAEtB7yB,EAAY,WAGV,MAFA0S,GAAY1B,SACZtsB,EAASG,OAAO,WACT0rB,EAAWxN,WAAW,gCAE/BhD,EAAU,WAER,MADA2S,GAAY1B,SACLtsB,EAASG,OAAO,UAElB2d,EAAMsO,OAAO,cAAe1sB,GAAM5E,KAAKwgB,EAAWD,KAE1D1jB,MACHujB,EAAIgB,GAAG,QAAS,IAAK,SAAShW,GAC5B,GAAI88B,GAAOrmB,EAAS+lB,EAAUzmC,CAM9B,OALAiK,GAAME,iBACN48B,EAAQjlB,EAAO2P,YACfzxB,EAAQtB,EAAWuF,QAAQ,gCAC3Byc,EAAUhiB,EAAWuF,QAAQ,kCAC7BwiC,EAAWM,EAAMxsB,QACVxW,EAASqiC,IAAIpmC,EAAOymC,EAAU/lB,GAAS7hB,KAAK,SAAUiF,GAC3D,MAAO,UAAS9B,GACd,MAAOsoB,GAAKyc,EAAO/kC,KAEpBtG,SAEEsjB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbvB,SAAU,KACVsT,QAAS,UACTtyB,YAAa,wCACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,4BAA6B,aAAc,UAAW,aAAc,aAAci9C,KAElGn8D,KAAKjE,MA2BR,WACE,GAAIyhE,GAA2BC,EAAsB1wD,EAAUE,EAAUvR,EAAQI,EAAOwS,EACtFxL,KAAaA,SAAW,SAAS2L,GAAQ,IAAK,GAAIC,GAAI,EAAGC,EAAI5S,KAAKoN,OAAQuF,EAAIC,EAAGD,IAAO,GAAIA,IAAK3S,OAAQA,KAAK2S,KAAOD,EAAM,MAAOC,EAAK,UAEzI5S,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBqB,EAAOvS,KAAKD,MAAMwS,KAElB5S,EAASiD,QAAQjD,OAAO,eAExB+hE,EAAuB,SAASv7C,EAAO9d,EAAU0D,EAAYM,EAAiB+nB,EAAUrxB,EAAI4zC,GAC1F,GAAItzB,EA8GJ,OA7GAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIozB,GAAkBE,EAAmBrzB,EAAMuzB,EAAkBpzB,EAAQ2Q,CA0GzE,OAzGA9Q,GAAOF,EAAI9G,KAAK,QAAQ7Q,YACxB0X,EAAO+nB,SACP/nB,EAAOw0B,YAAc72B,UAAU0yB,OAC/BrwB,EAAO5W,IAAI,gBAAiB,SAASmB,EAAKiM,GAgBxC,MAfA2J,GAAKmT,QACLogB,IACAzzB,EAAI9G,KAAK,cAAc7P,IAAI,IAC3BP,EAAgBuoB,KAAKrR,EAAK,WACxB,MAAOD,GAAOq+C,iBAAkB,IAElCr+C,EAAO+nB,OACLvxB,QAASA,EAAQF,GACjBiF,QAAS,GACTpY,OAAQqT,EAAQ8nD,qBAChBx3D,KAAM0P,EAAQ+nD,mBACdn2B,SAAU5xB,EAAQgoD,iBAClBl2B,SAAU9xB,EAAQioD,iBAClB3qD,SAEKkM,EAAOq+C,iBAAkB,IAElCr+C,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEbqyB,EAAoB,SAASz/B,GAC3B,GAAI8gC,EAIJ,OAHAA,GAAW93C,EAAEC,IAAIs2C,EAAiBn+B,OAAQ,SAAS2+B,GACjD,MAAOT,GAAmByB,OAAOhB,EAAWiB,KAAMhhC,EAAIuC,GAAI0J,EAAO+nB,MAAMvxB,QAAS,WAE3E/W,EAAGoX,IAAIg+B,IAEhBvB,EAAmB31B,UAAU0yB,OAC7BqD,EAAmB,WAEjB,MADAJ,GAAmB31B,UAAU0yB,OACtBrwB,EAAOw0B,YAAc72B,UAAU0yB,QAExCrwB,EAAO6zB,cAAgB,SAASC,GAC9B,MAAOR,GAAmBA,EAAiBrvC,KAAK6vC,IAElD9zB,EAAO+zB,iBAAmB,SAASD,GACjC,MAAOR,GAAmBA,EAAiBlpC,OAAO,SAAS8O,GACzD,MAAOA,GAAG1W,IAAI,UAAYsxC,EAAWtxC,IAAI,WAG7Cwd,EAAOg0B,OAAS,SAAS94B,EAAK5B,GAC5B,GAAI26B,GAAUC,EAAUC,EAAargC,EAAMrI,CAmB3C,IAlBAA,EAAQwD,EAAKiM,EAAI/J,eACjB2C,EAAOkM,EAAOxJ,QAAQ1C,KACtBqgC,EAAcn0B,EAAOxJ,QAAQ49B,YACjB,MAARtgC,IACFA,MAEiB,MAAfqgC,IACFA,MAEE1wC,EAAQ9C,KAAKmT,EAAMrI,GAAS,GAC9BqI,EAAK7P,KAAKwH,GAEZ0oC,EAAYj5B,GAAO5B,GAAS,KAC5B0G,EAAOxJ,QAAQ1C,KAAOA,EACtBogC,EAAWn3C,EAAEsY,MAAM2K,EAAO+nB,MAAMj0B,MAChCmgC,EAAWl3C,EAAEoc,KAAK+6B,EAAU,SAASh7B,GACnC,MAAOA,GAAG,KAAOzN,KAEdwoC,EAEH,MADAC,GAASjwC,MAAMiX,EAAK5B,IACb0G,EAAO+nB,MAAMj0B,KAAOogC,GAG/Bl0B,EAAOq0B,UAAY,SAASn5B,GAC1B,GAAIg5B,GAAUpgC,EAAMrI,CAQpB,OAPAA,GAAQwD,EAAKiM,EAAI,GAAG/J,eACpB2C,EAAOkM,EAAOxJ,QAAQ1C,KACtBogC,EAAWn3C,EAAEsY,MAAM2K,EAAO+nB,MAAMj0B,MAChC/W,EAAEuhB,OAAO41B,EAAU,SAASh5B,GAC1B,MAAOA,GAAI,KAAOzP,IAEpBuU,EAAO+nB,MAAMj0B,KAAOogC,EACbn3C,EAAE2pC,KAAK1mB,EAAO+nB,MAAMj0B,KAAMrI,IAEnC6U,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WAcV,MAXAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMsO,OAAO,SAAUnR,EAAO+nB,OACxCjoC,EAAQD,KAAK,SAAS4E,GACpB,MAAO+uC,GAAkB/uC,KAE3B3E,EAAQD,KAAK,SAAS4E,GAIpB,MAHAysB,GAAeG,SACf5oB,EAAW2a,WAAW,wBAAyB3e,GAC/CsE,EAAgBkmB,MAAMhP,GACflb,EAASG,OAAO,aAElBpF,EAAQD,KAAK,KAAM,WAExB,MADAqxB,GAAeG,SACRtsB,EAASG,OAAO,aAG1BxI,OACHu0B,EAAehR,EAAI9G,KAAK,kBACjB8G,EAAIgB,GAAG,SAAU,OAAQX,KAGhCP,KAAMA,IAIV1jB,EAAOwjB,UAAU,mBAAoB,UAAW,aAAc,aAAc,kBAAmB,aAAc,KAAM,uBAAwBu+C,IAE3ID,EAA4B,SAASt7C,EAAO6Q,EAAK3uB,EAAU0D,EAAYqoB,EAAU/nB,GAC/E,GAAIgX,EA4CJ,OA3CAA,GAAO,SAASC,EAAQC,EAAKgL,GAC3B,GAAI9K,GAAMG,EAAQ2Q,CAsClB,OArCA9Q,GAAO,KACPH,EAAO5W,IAAI,iBAAkB,SAASmB,EAAK0M,EAAW9T,GAKpD,MAJIgd,IACFA,EAAKmT,QAEPvqB,EAAgBuoB,KAAKrR,GACdD,EAAO,QACZ/I,UAAWA,EACXq+B,KAAM,MAGVh1B,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBzsB,EAAMwS,EAAWnX,CAGrC,IAFAmL,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,WAaV,MAVAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjD3G,EAAOub,EAAO,OAAOs1B,KACrBr+B,EAAY+I,EAAO,OAAO/I,UAC1BnX,EAAU4zB,EAAI0F,OAAOmc,WAAWt+B,EAAWxS,GAC3C3E,EAAQD,KAAK,SAAS8R,GAIpB,MAHAuf,GAAeG,SACf5oB,EAAW2a,WAAW,wBAAyBzR,GAC/C5I,EAAgBkmB,MAAMhP,GACflb,EAASG,OAAO,aAElBpF,EAAQD,KAAK,KAAM,WAExB,MADAqxB,GAAeG,SACRtsB,EAASG,OAAO,aAG1BxI,OACHu0B,EAAehR,EAAI9G,KAAK,kBACxB8G,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyB,UAAW,eAAgB,aAAc,aAAc,aAAc,kBAAmBs+C,KAEjIx9D,KAAKjE,MA2BR,WACE,GAAIgiE,GAAuCC,EAAmCC,EAAkBC,EAAiBpxD,EAAaC,EAAUG,EAAiBK,EAASI,EAASC,EAAOlS,EAAQuS,EAAYnS,EAAOsS,EAAUE,EACrNxC,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,aAChEtN,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBU,EAAOvS,KAAKD,MAAMwS,KAElBF,EAAWrS,KAAKD,MAAMsS,SAEtBT,EAAU5R,KAAKD,MAAM6R,QAErBJ,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBG,EAAkBnR,KAAKD,MAAMoR,gBAE7Be,EAAalS,KAAKD,MAAMmS,WAExBnB,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,eAExBuiE,EAAmB,SAAU9xD,GAS3B,QAAS8xD,GAAiBtuD,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIoG,EAAM6gC,EAAS6R,EAAIt4C,EAAUzO,EAAgB80B,EAASqgB,EAAQC,EAAWxiC,EAAW3Y,EAAsB0V,EAAS4B,EAA4Bpa,GAC5M,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAKwgB,KAAOA,EACZxgB,KAAK6D,OAASw9C,EACdrhD,KAAKyQ,EAAIyiD,EACTlzD,KAAK4a,SAAWA,EAChB5a,KAAKmM,eAAiBA,EACtBnM,KAAKihC,QAAUA,EACfjhC,KAAKshD,OAASA,EACdthD,KAAKuhD,UAAYA,EACjBvhD,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAK8b,QAAUA,EACf9b,KAAK0d,2BAA6BA,EAClC1d,KAAKsD,eAAiBA,EACtBtD,KAAKoiE,WAAaryD,EAAK/P,KAAKoiE,WAAYpiE,MACxC+Q,EAAY/Q,MACZA,KAAK4T,MAAMwtB,YAAc,SACzBphC,KAAKqiE,QAAS,EACVriE,KAAKub,mBAAmBvb,KAAK6D,OAAOC,MAAO9D,KAAK2b,qBAGpDvY,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAQjB,OAPAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,qBAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAM2W,UAAUxW,QAAQ,2BACpC+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,KACjCgtB,mBAAoBn5B,EAAMwL,MAAMkG,QAAQvV,cAEnC6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAChDA,KAAK4T,MAAMlH,IAAI,wBAAyB,SAAUtE,GAChD,MAAO,YAEL,MADAA,GAAMm5C,UAAU18B,WAAW,QAAS,SAAU,8BAA+B,GACtEzc,EAAMg6D,eAEdpiE,QA4TL,MAnXA6C,GAAOq/D,EAAkB9xD,GAEzB8xD,EAAiB9hD,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,UAAW,eAAgB,KAAM,cAAe,mBAAoB,aAAc,YAAa,eAAgB,aAAc,yBAA0B,aAAc,+BAAgC,mBAAoB,yBAEtT8hD,EAAiBtyD,UAAU+L,kBAAoB,iBAE/CumD,EAAiBtyD,UAAU0yD,oBAAsB,oBAoDjDJ,EAAiBtyD,UAAUiN,QAAU,SAASpM,GAI5C,MAHAzQ,MAAKmb,eAAe,QACpBnb,KAAKgb,cAAc,IAAKvK,GACxBzQ,KAAKoiE,aACEpiE,KAAK+c,mBAGdmlD,EAAiBtyD,UAAUoN,aAAe,SAAStP,GAIjD,MAHA1N,MAAKmb,eAAe,QACpBnb,KAAKmb,eAAezN,EAAOiP,SAAUjP,EAAOkM,IAC5C5Z,KAAKoiE,aACEpiE,KAAK+c,mBAGdmlD,EAAiBtyD,UAAUqN,UAAY,SAASC,GAI9C,MAHAld,MAAKmb,eAAe,QACpBnb,KAAK0a,aAAawC,EAAUC,SAASR,SAAUO,EAAUxP,OAAOkM,IAChE5Z,KAAKoiE,aACEpiE,KAAK+c,mBAGdmlD,EAAiBtyD,UAAUwN,mBAAqB,SAASC,GACvD,GAAIklD,EAQJ,OAPAA,GAAUviE,KAAK4a,SAASpU,SAASg8D,SAC7BD,IACFllD,EAAa3P,OAAO80D,SAAWD,GAEjCviE,KAAKmb,eAAe,QACpBnb,KAAKib,kBAAkBoC,EAAa3P,QACpC1N,KAAKoiE,aACEpiE,KAAK+c,mBAGdmlD,EAAiBtyD,UAAUiO,mBAAqB,SAASR,GACvD,MAAOrd,MAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAWva,KAAKsiE,qBAAqBn/D,KAAK,SAAUiF,GAC/G,MAAO,UAASwV,GAEd,aADOA,GAAYP,EAAazD,IACzBxR,EAAMsV,2BAA2BhC,aAAatT,EAAMwL,MAAM2G,UAAWqD,EAAaxV,EAAMk6D,qBAAqBn/D,KAAKiF,EAAM2U,mBAEhI/c,QAGLkiE,EAAiBtyD,UAAU0N,iBAAmB,SAAS/I,GACrD,GAAI2G,GAASqC,CAUb,OATArC,MACAqC,EAAavd,KAAK4a,SAASpU,SAC3B0U,EAAQ9D,KAAOmG,EAAWnG,KAC1B8D,EAAQzU,OAAS8W,EAAW9W,OAC5ByU,EAAQ9Q,KAAOmT,EAAWnT,KAC1B8Q,EAAQ0wB,SAAWruB,EAAWquB,SAC9B1wB,EAAQwwB,SAAWnuB,EAAWmuB,SAC9BxwB,EAAQsC,YAAcD,EAAWC,YACjCtC,EAAQuC,MAAQF,EAAWE,MACpBzd,KAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAWva,KAAKsiE,qBAAqBn/D,KAAK,SAAUiF,GAC/G,MAAO,UAASwV,GAEd,MADAA,GAAYrJ,GAAQ2G,EACb9S,EAAMsV,2BAA2BhC,aAAatT,EAAMwL,MAAM2G,UAAWqD,EAAaxV,EAAMk6D,qBAAqBn/D,KAAKiF,EAAM2U,mBAEhI/c,QAGLkiE,EAAiBtyD,UAAUmN,gBAAkB,WAC3C,GAAIe,GAAaP,CAajB,OAZAvd,MAAK0b,aAAa1b,KAAK6D,OAAOC,MAAO9D,KAAK4a,SAASpU,SAAUxG,KAAK2b,mBAClE4B,EAAavd,KAAK4a,SAASpU,SAC3BsX,KACAA,EAAYhE,QAAU9Z,KAAK4T,MAAM2G,UACjCuD,EAAY1G,KAAOmG,EAAWnG,KAC9B0G,EAAYrX,OAAS8W,EAAW9W,OAChCqX,EAAY1T,KAAOmT,EAAWnT,KAC9B0T,EAAY8tB,SAAWruB,EAAWquB,SAClC9tB,EAAY4tB,SAAWnuB,EAAWmuB,SAClC5tB,EAAYN,YAAcD,EAAWC,YACrCM,EAAYL,MAAQF,EAAWE,MAC/BK,EAAYrN,EAAI8M,EAAW9M,EACpBzQ,KAAKyQ,EAAE0J,KAAKna,KAAKoa,GAAGsiB,OAAOxe,YAAYJ,GAAc9d,KAAK0d,2BAA2BjC,WAAWzb,KAAK4T,MAAM2G,UAAWva,KAAKsiE,uBAAuBn/D,KAAK,SAAUiF,GACtK,MAAO,UAAS6M,GACd,GAAIkJ,GAAYC,EAAkBrW,EAAM0V,EAAOiuB,EAAUrtB,EAAUutB,EAAUttB,EAAUlH,EAAMmH,EAA2BnU,CAwGxH,OAvGArC,GAAOkN,EAAO,GACdmJ,EAAmBnJ,EAAO,GAC1BqJ,EAAWje,EAAEC,IAAIyH,EAAKuW,SAAU,SAAS9B,GAEvC,MADAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACPmK,IAETpS,EAAO/J,EAAEC,IAAIyH,EAAK06D,MAAO,SAASjmD,GAEhC,MADAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACPmK,IAETovB,EAAWvrC,EAAEC,IAAIyH,EAAKkzB,WAAY,SAASze,GAEzC,MADAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACPmK,IAETkvB,EAAWrrC,EAAEC,IAAIyH,EAAKizB,WAAY,SAASxe,GAEzC,MADAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACPmK,IAETpF,EAAO/W,EAAEC,IAAIyH,EAAKqP,KAAM,SAASoF,GAE/B,MADAA,GAAG5C,GAAK4C,EAAGjI,KACJiI,IAET+B,EAA4Ble,EAAEqN,OAAO0J,EAAM,SAASoH,GAClD,MAAOA,GAAIC,MAAQ,IAErBN,EAAa9d,EAAEC,IAAIyH,EAAKyV,YAAa,SAAShB,GAO5C,MANIA,GAAG5C,GACL4C,EAAG5C,GAAK4C,EAAG5C,GAAGvH,WAEdmK,EAAG5C,GAAK,OAEV4C,EAAGjI,KAAOiI,EAAGkC,WAAa,aACnBlC,IAETiB,EAAQpd,EAAEC,IAAIyH,EAAK4W,OAAQ,SAASnC,GAGlC,MAFAA,GAAG5C,GAAK4C,EAAG5C,GAAGvH,WACdmK,EAAGjI,KAAOiI,EAAGkC,UACNlC,IAETpU,EAAMiU,mBACFyB,EAAYrX,SACd4X,EAAWjW,EAAM4T,sBAAsB,SAAUsC,EAAUR,EAAYrX,QACvE2B,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAY1G,OACdiH,EAAWjW,EAAM4T,sBAAsB,OAAQ5E,EAAM0G,EAAY1G,MACjEhP,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAYN,cACda,EAAWjW,EAAM4T,sBAAsB,cAAemC,EAAYL,EAAYN,aAC9EpV,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAYL,QACdY,EAAWjW,EAAM4T,sBAAsB,QAASyB,EAAOK,EAAYL,OACnErV,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAY1T,OACdiU,EAAWjW,EAAM4T,sBAAsB,OAAQ5R,EAAM0T,EAAY1T,MACjEhC,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAY8tB,WACdvtB,EAAWjW,EAAM4T,sBAAsB,WAAY4vB,EAAU9tB,EAAY8tB,UACzExjC,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEnDP,EAAY4tB,WACdrtB,EAAWjW,EAAM4T,sBAAsB,WAAY0vB,EAAU5tB,EAAY4tB,UACzEtjC,EAAMiU,gBAAkBjU,EAAMiU,gBAAgBpN,OAAOoP,IAEvDjW,EAAM0W,QAAUhB,EAAYrN,EAC5BrI,EAAM8S,UAEF5W,MAAO8D,EAAM2W,UAAUxW,QAAQ,kCAC/BoU,SAAU,OACVqC,QAAS5U,IAET9F,MAAO8D,EAAM2W,UAAUxW,QAAQ,sCAC/BoU,SAAU,WACVqC,QAAS4sB,IAETtnC,MAAO8D,EAAM2W,UAAUxW,QAAQ,wCAC/BoU,SAAU,WACVqC,QAAS0sB,IAETpnC,MAAO8D,EAAM2W,UAAUxW,QAAQ,oCAC/BoU,SAAU,SACVqC,QAASV,IAETha,MAAO8D,EAAM2W,UAAUxW,QAAQ,kCAC/BoU,SAAU,OACVqC,QAAS5H,EACT6H,WAAW,EACXC,oBAAqBX,EAA0BnR,SAE/C9I,MAAO8D,EAAM2W,UAAUxW,QAAQ,yCAC/BoU,SAAU,cACVqC,QAASb,IAET7Z,MAAO8D,EAAM2W,UAAUxW,QAAQ,wCAC/BoU,SAAU,QACVqC,QAASvB,IAGbrV,EAAM+W,iBACC9e,EAAE+e,OAAOhB,EAAkB,SAASrP,EAAOW,GAChD,MAAOtH,GAAM+W,cAAc5X,MACzBqS,GAAIlK,EACJ6E,KAAM7E,EACNhC,OAAQqB,QAIb/O,QAGLkiE,EAAiBtyD,UAAUgzC,uBAAyB,WAClD,GAAIlvB,EAEJ,OADAA,GAAa,mBAAqB1zB,KAAK4T,MAAM2G,UAAY,UAClDva,KAAKshD,OAAO7uB,UAAUzyB,KAAK4T,MAAO8f,EAAY,SAAUtrB,GAC7D,MAAO,UAAS4c,GACd,MAAO5c,GAAMg6D,eAEdpiE,QAGLkiE,EAAiBtyD,UAAUgyB,YAAc,WACvC,GAAI9nB,EAwBJ,OAvBAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQ8T,qBACX5tB,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAMmuB,gBAAkBvwB,EAAQsI,EAAQkoB,eAAgB,SAASzhC,GACpE,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAM8uD,gBAAkBriE,EAAEqZ,OAAOI,EAAQkoB,eAAgB,SAC9DhiC,KAAK4T,MAAMuuB,aAAe3wB,EAAQsI,EAAQmhB,WAAY,SAAS16B,GAC7D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMstD,aAAe7gE,EAAEqZ,OAAOI,EAAQmhB,WAAY,SACvDj7B,KAAK4T,MAAMwuB,aAAe5wB,EAAQsI,EAAQkhB,WAAY,SAASz6B,GAC7D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMutD,aAAe9gE,EAAEqZ,OAAOI,EAAQkhB,WAAY,SACvDh7B,KAAK4T,MAAM+uD,WAAatiE,EAAEqZ,OAAOI,EAAQknD,YAAa,SACtDhhE,KAAK4T,MAAM23B,cAAgB/5B,EAAQsI,EAAQknD,YAAa,SAASzgE,GAC/D,MAAOA,GAAEqZ,KAEJE,GAGTooD,EAAiBtyD,UAAUgzD,mBAAqB,EAEhDV,EAAiBtyD,UAAUwyD,WAAa,WACtC,GAAIv+D,GAAQT,CAgBZ,OAfAS,GAAS7D,KAAK4a,SAASpU,SACvBpD,EAAUpD,KAAKoa,GAAGsiB,OAAOzgB,KAAKjc,KAAK4T,MAAM2G,UAAW1W,GACpD7D,KAAK4iE,oBAAsB,EAC3Bx/D,EAAQ0V,MAAQ9Y,KAAK4iE,mBACrBx/D,EAAQD,KAAK,SAAUiF,GACrB,MAAO,UAASL,GAOd,MANI3E,GAAQ0V,QAAU1Q,EAAMw6D,qBAC1Bx6D,EAAMwL,MAAM8oB,OAAS30B,EAAK86D,OAC1Bz6D,EAAMwL,MAAM4xB,KAAOz9B,EAAKrE,QACxB0E,EAAMwL,MAAM6K,MAAQ1W,EAAK0W,MACzBrW,EAAMwL,MAAMkvD,YAAc/6D,EAAK+6D,aAE1B/6D,IAER/H,OACIoD,GAGT8+D,EAAiBtyD,UAAUyxB,gBAAkB,WAC3C,GAAIvnB,EAKJ,OAJAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OAChDtZ,KAAK4iD,yBACL5iD,KAAK+c,kBACE/c,KAAKoiE,cAGdF,EAAiBtyD,UAAUmzD,YAAc,WACvC,MAAO/iE,MAAKqgB,UAAUqG,WAAW,gBAAiB1mB,KAAK4T,MAAMkG,UAG/DooD,EAAiBtyD,UAAUozD,gBAAkB,WAC3C,MAAOhjE,MAAKqgB,UAAUqG,WAAW,iBAAkB1mB,KAAK4T,MAAM2G,YAGhE2nD,EAAiBtyD,UAAUqzD,YAAc,SAAS7B,GAChD,GAAI19C,GAASC,CAcb,OAbA3jB,MAAKqiE,OAASjB,EACdz9C,EAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMg6D,aACCh6D,EAAMi6D,OAAS,OAEvBriE,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YAEL,MADAA,GAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAMi6D,OAAS,OAEvBriE,MACIA,KAAKoa,GAAGsiB,OAAO2iC,OAAO+B,GAASj+D,KAAKwgB,EAAWD,IAGxDw+C,EAAiBtyD,UAAUszD,cAAgB,SAAS9B,GAClD,GAAI19C,GAASC,CAcb,OAbA3jB,MAAKqiE,OAASjB,EACdz9C,EAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMg6D,aACCh6D,EAAMi6D,OAAS,OAEvBriE,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YAEL,MADAA,GAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAMi6D,OAAS,OAEvBriE,MACIA,KAAKoa,GAAGsiB,OAAO6iC,SAAS6B,GAASj+D,KAAKwgB,EAAWD,IAG1Dw+C,EAAiBtyD,UAAUuzD,WAAa,WACtC,MAAI9iE,GAAEoV,SAASzV,KAAK4a,SAASpU,SAASg8D,UAC7BxiE,KAAK4a,SAASpU,SAASg8D,SAEvB,gBAIJN,GAENrwD,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,mBAAoB+9D,GAEtCC,EAAkB,SAASr2D,EAAM7F,EAAWkvB,EAAWD,GACrD,GAAI7R,GAAM+/C,EAAcC,EAAgBz+D,CA2IxC,OA1IAA,GAAWuwB,EAAUrvB,IAAI,8BAA8B,GACvDu9D,EAAiB,SAAS//C,EAAQC,EAAKC,EAAQiU,GAC7C,GAAI6rC,GAAQC,EAAcC,EAASC,EAAOC,EAAeC,EAAaC,CAmFtE,OAlFAL,GAAe,EACfG,EAAgB,EAChBF,EAAU,EACVC,EAAQ,EACRH,EAAS//C,EAAI9G,KAAK,qBAClBknD,EAAc,WACZ,GAAIE,EAOJ,OANAA,GAAWvgD,EAAO7E,MAAQ6E,EAAOw/C,YAE/Be,EADEh4C,SAASg4C,EAAU,IAAMA,EAChBh4C,SAASg4C,EAAU,IAAM,EAEzBh4C,SAASg4C,EAAU,KAIlCD,EAAmB,WACjB,GAAIE,GAAOjuC,EAAMljB,EAAGuhC,EAAG2vB,EAAUpd,EAASsd,EAAOvgE,CAEjD,IADAqgE,EAAWF,IACPE,GAAY,EAEd,WADAP,GAAO1yC,MAUT,KAPA0yC,EAAO5yC,OACPqzC,KACAtd,KACAA,EAAQsd,MAAQA,EAChBtd,EAAQud,aAAe1gD,EAAOkiB,KAAO,EACrCihB,EAAQwd,WAAa3gD,EAAOkiB,OAASq+B,GACrCC,EAAQxgD,EAAOkiB,KACV7yB,EAAIuhC,EAAI,EAAG1wC,EAAMqgE,EAAU,GAAKrgE,EAAM0wC,GAAK1wC,EAAM0wC,GAAK1wC,EAAKmP,EAAI,GAAKnP,IAAQ0wC,IAAMA,EACjFvhC,IAAOmxD,EAAQP,GAAiBM,EAAYC,EAAQP,EAAeE,EACrEM,EAAMx8D,MACJwlB,QAAS,OACT3iB,KAAM,SAECuI,IAAOmxD,EAAQJ,GAAkBI,EAASN,EAAUE,EAC7DK,EAAMx8D,MACJwlB,QAAS,OACT3iB,KAAM,SAECuI,EAAKmxD,EAAQP,GAAiB5wD,GAAMkxD,EAAWJ,GAE/C9wD,EAAKmxD,EAAQJ,GAAkB/wD,EAAI6wD,IAEnC7wD,IAAMmxD,EACfC,EAAMx8D,MACJwlB,QAAS,SACT2kB,IAAK/+B,EACLvI,KAAM,gBAGR25D,EAAMx8D,MACJwlB,QAAS,OACT2kB,IAAK/+B,EACLvI,KAAM,SAMZ,OAFAyrB,GAAOjxB,EAAS6hD,GAChB5wB,EAAOX,EAASW,GAAMvS,GACfggD,EAAOztC,KAAKA,IAErBvS,EAAOrP,OAAO,SAAU,SAASlF,GAC/B,GAAKA,EAGL,MAAO60D,OAETrgD,EAAIgB,GAAG,QAAS,2BAA4B,SAAShW,GAEnD,MADAA,GAAME,iBACC6U,EAAO/N,OAAO,WAEnB,MADAkiB,GAAM/c,aAAa,OAAQ4I,EAAOkiB,KAAO,GAClC/N,EAAM2qC,iBAGjB7+C,EAAIgB,GAAG,QAAS,+BAAgC,SAAShW,GAEvD,MADAA,GAAME,iBACC6U,EAAO/N,OAAO,WAEnB,MADAkiB,GAAM/c,aAAa,OAAQ4I,EAAOkiB,KAAO,GAClC/N,EAAM2qC,iBAGV7+C,EAAIgB,GAAG,QAAS,gCAAiC,SAAShW,GAC/D,GAAI21D,GAASlgD,CAIb,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BigD,EAAUlgD,EAAOjc,KAAK,WACfub,EAAO/N,OAAO,WAEnB,MADAkiB,GAAM/c,aAAa,OAAQwpD,GACpBzsC,EAAM2qC,kBAInBgB,EAAe,SAAS9/C,EAAQC,EAAKC,EAAQiU,GAC3C,GAAI0sC,GAAgBC,EAAcz3B,EAAM03B,CASxC,OARAD,GAAe3sC,EAAM0rC,aACjBiB,IACFz3B,EAAOz6B,EAAWkyD,EAAc,KAAO,gBAAkB,kBACzDD,EAAiB5gD,EAAI9G,KAAK,oCAAuClK,EAAK6xD,EAAc,KAAQ,MAC5FC,EAAMt3B,EAAE,YAAYl5B,KAAK,WAAY84B,GACrCw3B,EAAez3B,OAAO23B,GACtBnvC,EAASivC,EAAen+B,YAAY1iB,IAE/BC,EAAIgB,GAAG,QAAS,mBAAoB,SAAShW,GAClD,GAAI+1D,GAAYC,EAAUvgD,CAS1B,OARAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BmgD,EAAe3sC,EAAM0rC,aACrBoB,EAAWvgD,EAAOjc,KAAK,aAErBu8D,EADe,iBAAbC,EACWH,IAAiBG,EAAWA,EAAW,IAAMA,EAE7CH,IAAiBG,EAAW,IAAMA,EAAWA,EAErDjhD,EAAO/N,OAAO,WAGnB,MAFAkiB,GAAMzc,cAAc,WAAYspD,GAChC7sC,EAAM/b,aAAa+b,EAAM5zB,OAAOC,MAAOmC,EAAUO,SAAUixB,EAAM9b,mBAC1D8b,EAAM2qC,aAAaj/D,KAAK,WAK7B,MAJAogB,GAAI9G,KAAK,6BAA6BmF,SACtC+qB,EAAOz6B,EAAWoyD,EAAY,KAAO,gBAAkB,kBACvDD,EAAMt3B,EAAE,YAAYl5B,KAAK,WAAY84B,GACrC3oB,EAAO0oB,OAAO23B,GACPnvC,EAASlR,EAAOgiB,YAAY1iB,UAK3CD,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,EAIJ,OAHAA,GAAQlU,EAAIpf,aACZi/D,EAAa9/C,EAAQC,EAAKC,EAAQiU,GAClC4rC,EAAe//C,EAAQC,EAAKC,EAAQiU,GAC7BnU,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,YAAa,OAAQ,cAAe,cAAe,WAAYg/C,IAEhFF,EAAoC,SAAS97C,EAAOgP,EAAWppB,GAa7D,GAAIsX,GAAMy4B,EAAmB0oB,CAwD7B,OAvDA1oB,GAAoB3mB,EAAUrvB,IAAI,oDAAoD,GACtF0+D,EAAoB,SAASjhD,EAAK8nB,EAAOtJ,GACvC,GAAI0iC,GAAgBC,EAAsBj+D,CAI1C,IAHAi+D,EAAuBnhD,EAAI9G,KAAK,iBAChCgoD,EAAiBlhD,EAAI9G,KAAK,oCAC1BhW,EAASs7B,EAAgBsJ,EAAM5kC,QAI7B,MAFAg+D,GAAe5vD,KAAKpO,EAAO8N,MAC3BkwD,EAAen2C,KAAK,QAAS7nB,EAAO8N,MAC7BmwD,EAAqBh8B,IAAI,QAASjiC,EAAOmW,QAGpDyG,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAO4T,CAsCX,OArCA5T,GAAQlU,EAAIpf,aACZknC,EAAQ/nB,EAAOtP,MAAMwP,EAAOmhD,4BAC5BphD,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAGxC,MAFAA,GAAME,iBACNF,EAAMwhC,kBACCxsB,EAAI9G,KAAK,eAAes1B,UAAUnd,SAE3CrR,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIyV,EAOJ,OANAzV,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BonB,EAAM5kC,OAASud,EAAOjc,KAAK,aAC3Bwb,EAAI9G,KAAK,eAAes1B,UAAUxf,QAClCiyC,EAAkBjhD,EAAK8nB,EAAO/nB,EAAOye,iBAC9Bze,EAAO/N,OAAO,WACnB,MAAO4Q,GAAMyI,KAAKyc,GAAOloC,KAAK,WAE5B,MADAs0B,GAAM2qC,aACC3qC,EAAM1a,wBAInBhd,EAAMiR,SAASsS,EAAQ,UAAW,SAASxJ,GAKzC,GAJAyJ,EAAImpB,OAAOoP,GACTx9B,SAAYxE,EAAQkoB,kBAEtBwiC,EAAkBjhD,EAAK8nB,EAAO/nB,EAAOye,iBACjCjoB,EAAQgT,eAAe/lB,QAAQ,qBAEjC,MADAwc,GAAI6U,OAAO,SACJ7U,EAAI9G,KAAK,KAAK3L,SAAS,mBAGlCwS,EAAOrP,OAAOuP,EAAOmhD,2BAA4B,SAAUv8D,GACzD,MAAO,UAASwE,GACd,MAAO43D,GAAkBjhD,EAAK3W,EAAK0W,EAAOye,mBAE3C/hC,OACIsjB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,8BAA+B,UAAW,cAAe,aAAc8+C,IAExFD,EAAwC,SAAS77C,EAAOpa,EAAY/I,EAAYw0B,GAC9E,GAAInU,GAAMze,CAmDV,OAlDAA,GAAWvE,EAAEuE,SAAS,0HACtBye,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAO4T,EAAOu5B,CA4ClB,OA3CAA,GAAc,SAASv5B,GACrB,GAAIxT,GAAQhqB,EAAKiqB,CAcjB,OAbAjqB,IACE0G,KAAMvR,EAAWuF,QAAQ,mCACzByvB,OAAQ,IAAM93B,OAAOmJ,SAAW,uBAElCyuB,EAASxU,EAAOzJ,UAAUwxB,EAAM7tB,aAChCqa,EAASL,EAAcO,UAAUD,GACjCjqB,EAAImqB,OAASH,EAAO/wB,IACpB+G,EAAIoqB,GAAK,KACLH,IACFjqB,EAAI0G,KAAOujB,EAAOI,kBAClBrqB,EAAIoqB,GAAKJ,EAAOI,IAElB1U,EAAI9G,KAAK,WAAWoZ,KAAKjxB,EAASiJ,IAC3B0V,EAAI9G,KAAK,qBAAqB5I,KAAK,QAAShG,EAAI0G,OAEzDkjB,EAAQlU,EAAIpf,aACZknC,EAAQ/nB,EAAOtP,MAAMwP,EAAOqhD,gCAC5BD,EAAYv5B,GACZ9nB,EAAIgB,GAAG,QAAS,oBAAqB,SAAShW,GAC5C,MAAOxC,GAAW2a,WAAW,kBAAmB2kB,KAElDtrC,EAAMiR,SAASsS,EAAQ,UAAW,SAASxJ,GACzC,GAAIA,EAAQgT,eAAe/lB,QAAQ,qBAEjC,MADAwc,GAAI6U,OAAO,SACJ7U,EAAI9G,KAAK,KAAK3L,SAAS,mBAGlCwS,EAAO5W,IAAI,oBAAqB,SAAUtE,GACxC,MAAO,UAASyF,EAAKwqB,EAAQysC,GAC3B,GAAIA,EAAalrD,KAAOyxB,EAAMzxB,GAG5B,MAFAkrD,GAAatnD,YAAc6a,EAC3BlS,EAAMyI,KAAKk2C,GACJF,EAAYE,KAGtB9kE,OACHsjB,EAAOrP,OAAOuP,EAAOqhD,+BAAgC,SAAUz8D,GAC7D,MAAO,UAASwE,GACd,MAAOg4D,GAAYh4D,KAEpB5M,OACIsjB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,kCAAmC,UAAW,aAAc,aAAc,kBAAmB6+C,KAE7G/9D,KAAKjE,MA2BR,WACE,GAAI+kE,GAAoCC,EAAyBC,EAA0BC,EAAkCC,EAA2Bp0D,EAAaC,EAAUQ,EAASK,EAAOlS,EAAQI,EACrM8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBL,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBD,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,oBAExBwlE,EAA4B,SAAU/0D,GAKpC,QAAS+0D,GAA0BvxD,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAU9D,EAAK3K,EAAgB80B,EAASsgB,EAAWxiC,EAAW0iC,EAAgBr7C,EAAsBg/D,EAAe9hE,EAAgB+wC,GACpN,GAAIjxC,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAK8W,IAAMA,EACX9W,KAAKmM,eAAiBA,EACtBnM,KAAKihC,QAAUA,EACfjhC,KAAKuhD,UAAYA,EACjBvhD,KAAK+e,UAAYA,EACjB/e,KAAKyhD,eAAiBA,EACtBzhD,KAAKoG,qBAAuBA,EAC5BpG,KAAKolE,cAAgBA,EACrBplE,KAAKsD,eAAiBA,EACtBtD,KAAKq0C,eAAiBA,EACtBtjC,EAAY/Q,MACZA,KAAK4T,MAAMyxD,MAAQrlE,KAAK6D,OAAOyhE,MAC/BtlE,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,mBAChDvI,KAAK4T,MAAM2xD,aAAevlE,KAAKolE,cAAc1+D,OAAO8+D,UACpDxlE,KAAKkiD,0BACL9+C,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YAEL,MADAA,GAAMkrD,WACClrD,EAAMk2D,8BAEdt+D,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAqPlD,MAzRA6C,GAAOsiE,EAA2B/0D,GAElC+0D,EAA0B/kD,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,OAAQ,mBAAoB,aAAc,eAAgB,aAAc,8BAA+B,yBAA0B,YAAa,mBAAoB,oBAqC7S+kD,EAA0Bv1D,UAAU0jD,SAAW,WAC7C,GAAImS,GAAalhE,EAAamhE,EAAoBliE,EAAKc,EAAO6vD,CAqB9D,OApBAA,GAAan0D,KAAK4T,MAAMwjB,MAAMhqB,OAC9Bq4D,EAAcplE,EAAEqN,OAAO1N,KAAK4T,MAAMwjB,MAAO,SAAUhvB,GACjD,MAAO,UAASq5B,GACd,MAAOr5B,GAAMwL,MAAMquB,eAAeR,EAAEh7B,QAAQo5D,YAE7C7/D,OAAOoN,OACVs4D,EAAqBvR,EAAa,EAAIlzD,KAAKgoC,MAAM,IAAMw8B,EAActR,GAAc,EACnF7vD,EAAQtE,KAAK+e,UAAUxW,QAAQ,iBAC7Bo9D,aAAc,IAAM3lE,KAAK4T,MAAMmjB,GAAGvzB,IAClCoiE,iBAAkB5lE,KAAK4T,MAAMmjB,GAAGlY,QAChCyiB,YAAathC,KAAK4T,MAAMkG,QAAQvF,OAElChQ,EAAcvE,KAAK+e,UAAUxW,QAAQ,uBACnCs9D,iBAAyE,OAAtDriE,EAAMxD,KAAK4T,MAAM6qD,WAAWz+D,KAAK4T,MAAMmjB,GAAGtwB,SAAmBjD,EAAI+Q,KAAO,SAAW,KACtGuxD,gBAAiB9lE,KAAK4T,MAAMmjB,GAAGiS,aAC/B+8B,qBAAsBnjE,QAAQqF,QAAQjI,KAAKq0C,eAAeC,QAAQt0C,KAAK4T,MAAMmjB,GAAGxyB,cAAgB,IAAIsQ,OACpGmxD,qBAAsBP,EACtBQ,oBAAqB9R,EACrB+R,4BAA6BR,IAExB1lE,KAAKmM,eAAewC,OAAOrK,EAAOC,IAG3C4gE,EAA0Bv1D,UAAUsyC,wBAA0B,WAkB5D,MAjBAliD,MAAK4T,MAAMlH,IAAI,uBAAwB,SAAUtE,GAC/C,MAAO,YACL,GAAI+9D,EAKJ,IAJA/9D,EAAMwL,MAAMwjB,MAAQ/2B,EAAEsY,MAAMvQ,EAAMwL,MAAMwjB,OAAO,GAC/C+uC,EAAY9lE,EAAE6M,MAAM9E,EAAMwL,MAAMwjB,MAAO,SAASzB,GAC9C,MAAOA,GAAKkqC,YAEVz3D,EAAMwL,MAAMmjB,GAAG8oC,YAAcsG,EAC/B,MAAO/9D,GAAMg+D,WAGhBpmE,OACHA,KAAK4T,MAAMlH,IAAI,oBAAqB,SAAUtE,GAC5C,MAAO,YACL,MAAOA,GAAMm5C,UAAU18B,WAAW,aAAc,SAAU,iCAAkC,KAE7F7kB,OACIA,KAAK4T,MAAMlH,IAAI,cAAe,SAAUtE,GAC7C,MAAO,YACL,MAAOA,GAAMg+D,WAEdpmE,QAGLmlE,EAA0Bv1D,UAAU0uD,0BAA4B,WAC9D,GAAIzwD,EAKJ,OAJAA,IACEiM,QAAS9Z,KAAK4T,MAAMkG,QAAQ0T,MAE9BxtB,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,UAAWkL,GACzD7N,KAAK4T,MAAMkG,QAAQ2T,qBACjBztB,KAAK4T,MAAMmjB,GAAGowB,WAChBt5C,EAAI+6B,OAAS5oC,KAAK4T,MAAMg1B,OAAOpb,KACxBxtB,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,oBAAqBkL,IAEvE7N,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,kBAAmBkL,GAErE7N,KAAK4T,MAAMkG,QAAQ4T,oBACrB1tB,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,iBAAkBkL,GADtE,QAKTs3D,EAA0Bv1D,UAAUgyB,YAAc,WAChD,GAAI9nB,EAgBJ,OAfAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAMgkC,WAAa99B,EAAQwoB,YAChCtiC,KAAK4T,MAAM6qD,WAAajtD,EAAQsI,EAAQwoB,YAAa,SAAS/hC,GAC5D,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMquB,eAAiBzwB,EAAQsI,EAAQooB,cAAe,SAAS3hC,GAClE,MAAOA,GAAEqZ,KAEX5Z,KAAK4T,MAAMkhD,WAAaz0D,EAAEqZ,OAAOI,EAAQ8gB,OAAQ,SACjD56B,KAAK4T,MAAMw9B,WAAa5/B,EAAQxR,KAAK4T,MAAMkhD,WAAY,SAASlnD,GAC9D,MAAOA,GAAEgM,KAEJE,GAGTqrD,EAA0Bv1D,UAAUw2D,OAAS,WAC3C,GAAIC,GAAYC,EAAanf,EAAWof,CAuBxC,OAtBAF,GAAahmE,EAAEmmE,KAAKxmE,KAAK4a,SAASpU,SAAU,YAAa,eAAgB,iBACzE2gD,EAAYkf,EAAWlf,UACnBA,GACFnnD,KAAKoa,GAAG6D,YAAY2mC,iBAAiB5kD,KAAK4T,MAAM2G,WAC9C4sC,UAAWA,EACXqb,SAAU,iBAGd+D,EAAcF,EAAW,gBACrBE,GACFvmE,KAAKoa,GAAG6D,YAAY2mC,iBAAiB5kD,KAAK4T,MAAM2G,WAC9C4sC,UAAW,OACXqb,SAAU,kBAGd8D,EAAcD,EAAW,iBACrBC,GACFtmE,KAAKoa,GAAG6D,YAAY2mC,iBAAiB5kD,KAAK4T,MAAM2G,WAC9C9T,OAAQ6/D,EACR9D,SAAU,iBAGPxiE,KAAKoa,GAAG6D,YAAYw6B,SAASz4C,KAAK4T,MAAM2G,UAAWva,KAAK6D,OAAOyhE,OAAOniE,KAAK,SAAUiF,GAC1F,MAAO,UAAS2uB,GAKd,MAJA3uB,GAAMwL,MAAMmjB,GAAKA,EACjB3uB,EAAMwL,MAAMyjB,KAAON,EAAGnd,GACtBxR,EAAMwL,MAAMorD,aAAejoC,EAC3B3uB,EAAMq5C,eAAerzB,UAAUhmB,EAAMwL,MAAO,MACrCmjB,IAER/2B,QAGLmlE,EAA0Bv1D,UAAUilD,WAAa,WAC/C,GAAI70D,KAAK4T,MAAMmjB,GAAGowB,UAChB,MAAOnnD,MAAKoa,GAAG8lC,QAAQp6C,IAAI9F,KAAK4T,MAAMmjB,GAAGjd,QAAS9Z,KAAK4T,MAAMmjB,GAAGowB,WAAWhkD,KAAK,SAAUiF,GACxF,MAAO,UAASwgC,GAEd,MADAxgC,GAAMwL,MAAMg1B,OAASA,EACdA,IAER5oC,QAIPmlE,EAA0Bv1D,UAAUunB,UAAY,WAC9C,MAAOn3B,MAAKoa,GAAGgd,MAAMnb,KAAKjc,KAAK4T,MAAM2G,UAAW,KAAMva,KAAK4T,MAAMyjB,MAAMl0B,KAAK,SAAUiF,GACpF,MAAO,UAASgvB,GAEd,MADAhvB,GAAMwL,MAAMwjB,MAAQA,EACbA,IAERp3B,QAGLmlE,EAA0Bv1D,UAAUyxB,gBAAkB,WACpD,GAAIvnB,EAGJ,OAFAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OACzCtZ,KAAKomE,SAASjjE,KAAK,SAAUiF,GAClC,MAAO,YACL,MAAOA,GAAMqI,EAAE0J,KAAK/R,EAAMysD,aAAczsD,EAAM+uB,gBAE/Cn3B,QASLmlE,EAA0Bv1D,UAAUwvD,SAAW,WAC7C,GAAI17C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMg+D,SACCh+D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAG6D,YAAYohD,OAAOr/D,KAAK4T,MAAMyjB,MAAMl0B,KAAKwgB,EAAWD,IAGrEyhD,EAA0Bv1D,UAAU0vD,WAAa,WAC/C,GAAI57C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMg+D,SACCh+D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAG6D,YAAYshD,SAASv/D,KAAK4T,MAAMyjB,MAAMl0B,KAAKwgB,EAAWD,IASvEyhD,EAA0Bv1D,UAAU4vD,QAAU,WAC5C,GAAI97C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMg+D,SACCh+D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAG6D,YAAYw4B,MAAMz2C,KAAK4T,MAAMyjB,MAAMl0B,KAAKwgB,EAAWD,IAGpEyhD,EAA0Bv1D,UAAU6vD,UAAY,WAC9C,GAAI/7C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMg+D,SACCh+D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAG6D,YAAYsO,QAAQvsB,KAAK4T,MAAMyjB,MAAMl0B,KAAKwgB,EAAWD,IAGtEyhD,EAA0Bv1D,UAAU62D,YAAc,WAChD,GAAIn2C,GAAOo2C,EAAaC,EAAc9xD,CAQtC,OAPA8xD,GAAe3mE,KAAK+e,UAAUxW,QAAQ,oCACtC+nB,EAAQyc,EAAE,WAAWl5B,MACnBuc,IAAO,IAAMlwB,OAAOmJ,SAAW,4BAC/Bu9D,IAAO5mE,KAAK+e,UAAUxW,QAAQ,sCAEhCsM,EAAO7U,KAAK+e,UAAUxW,QAAQ,mCAC9Bm+D,EAAc35B,EAAE,eAAeL,OAAOpc,GAAOoc,OAAO73B,GAC7C7U,KAAKmuC,QAAQlpB,QAAQ0hD,EAAcD,IAGrCvB,GAENtzD,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,4BAA6BghE,GAE/CF,EAA2B,SAAS9vC,EAAWD,GAC7C,GAAI7R,GAAMze,CAuBV,OAtBAA,GAAWuwB,EAAUrvB,IAAI,yCAAyC,GAClEud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EAgBJ,OAfAA,GAAS,SAAS4K,GAChB,GAAIlB,GAAMpvB,CAOV,OANAA,GAAS6c,EAAOm7C,WAAW1nC,EAAGtwB,QAC9BovB,EAAOjxB,GACLi7D,UAAW9oC,EAAG8oC,UACdp5D,OAAQA,IAEVovB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAElBvS,EAAOrP,OAAOuP,EAAO+S,QAAS,SAASQ,GACrC,GAAU,MAANA,EACF,MAAO5K,GAAO4K,KAGXzT,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,qBAAsB,cAAe,WAAY8hD,IAElED,EAA0B,SAAS9wC,EAAY/N,EAAO9d,EAAU+rB,EAAUiV,EAAiBlU,EAAWD,GACpG,GAAI7R,GAAMze,CAyEV,OAxEAA,GAAWuwB,EAAUrvB,IAAI,wCAAwC,GACjEud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CAkExB,OAjEA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,mBAE/ColB,EAAS,SAAU/jB,GACjB,MAAO,UAAS2uB,GACd,GAAIlB,GAAMpvB,CAQV,OAPAA,GAAS6c,EAAOm7C,WAAW1nC,EAAGtwB,QAC9BovB,EAAOjxB,GACL6B,OAAQA,EACR6X,SAAUgF,EAAOs0B,WACjBpI,SAAUjG,MAEZhmB,EAAIsS,KAAKA,GACFX,EAAS3R,EAAIyiB,YAAY1iB,KAEjCtjB,MACH4uB,EAAO,SAAUxmB,GACf,MAAO,UAAS3B,GACd,GAAI+tB,GAAgB9Q,EAASC,EAAWimB,CAexC,OAdArmB,GAAI9G,KAAK,eAAes1B,UAAUxf,QAClCiC,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,oBAAoB/N,QAChEk7B,EAAYP,EAAgBza,KAAK,SAASmI,GAExC,MADAA,GAAGtwB,OAASA,EACLswB,IAETpT,EAAY,WAEV,MADAuQ,GAAWxN,WAAW,kBACf8N,EAAeG,UAExBjR,EAAU,WAER,MADArb,GAASG,OAAO,SACTgsB,EAAeG,UAEjBiV,EAAUzmC,KAAKwgB,EAAWD,KAElC1jB,MACHujB,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAG1C,GAFAA,EAAME,iBACNF,EAAMwhC,kBACDxG,IAGL,MAAOhmB,GAAI9G,KAAK,eAAes1B,UAAUnd,SAE3CrR,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAI9H,GAAQud,CAGZ,IAFAzV,EAAME,iBACNF,EAAMwhC,kBACDxG,IAKL,MAFAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/Bxd,EAASud,EAAOjc,KAAK,aACd6mB,EAAKnoB,KAEd6c,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIiD,OAAS,QACxD,WACD,GAAIswB,EAEJ,IADAA,EAAK3Q,EAAO2P,YAEV,MAAO5J,GAAO4K,KAGXzT,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,oBAAqB,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAe,WAAY6hD,IAErJE,EAAmC,SAASn5D,EAAYsqC,EAAShuC,EAAU+rB,EAAUiV,EAAiBlU,EAAWD,GAC/G,GAAI7R,GAAMze,CAyDV,OAxDAA,GAAWuwB,EAAUrvB,IAAI,sCAAsC,GAC/Dud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIygD,GAAS16C,EAAQyC,CAkDrB,OAjDAi4C,GAAU,WACR,MAAOvjD,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,mBAE/ColB,EAAS,SAAS4K,GAChB,GAAIlpB,GAAKgoB,CAOT,OANAhoB,IACEg5D,QAASA,IACTC,WAAY/vC,EAAGkhB,kBAEjBpiB,EAAOjxB,EAASiJ,GAChBgoB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAElBjH,EAAO,SAASqpB,GACd,GAAIzjB,GAAgBoV,CAYpB,OAXApV,GAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,UAAU/N,QACtDk7B,EAAYP,EAAgBza,KAAK,SAASmI,GAExC,MADAA,GAAGkhB,iBAAmBA,EACflhB,IAET6S,EAAUzmC,KAAK,SAAUiF,GACvB,MAAO,YAEL,MADAosB,GAAeG,SACR5oB,EAAW2a,WAAW,oBAE9B1mB,OACI4pC,EAAUzmC,KAAK,KAAM,WAE1B,MADAqxB,GAAeG,SACRtsB,EAASG,OAAO,YAG3B+a,EAAIgB,GAAG,QAAS,oBAAqB,SAAShW,GAC5C,GAAI0pC,EACJ,IAAK4uB,IAIL,MADA5uB,IAAoB7xB,EAAO2P,YAAYkiB,iBAChCrpB,EAAKqpB,KAEd30B,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIy0C,iBAAmB,QAClE,WACD,GAAIlhB,EAEJ,IADAA,EAAK3Q,EAAO2P,YAEV,MAAO5J,GAAO4K,KAGXzT,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,6BAA8B,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAe,WAAY+hD,IAE9JH,EAAqC,SAASh5D,EAAYsqC,EAAShuC,EAAU+rB,EAAUiV,EAAiBlU,EAAWD,GACjH,GAAI7R,GAAMze,CAuDV,OAtDAA,GAAWuwB,EAAUrvB,IAAI,wCAAwC,GACjEud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIygD,GAAS16C,EAAQyC,CAgDrB,OA/CAi4C,GAAU,WACR,MAAOvjD,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,mBAE/ColB,EAAS,SAAS4K,GAChB,GAAIlpB,GAAKgoB,CAMT,OALAhoB,IACEg5D,QAASA,IACTC,WAAY/vC,EAAGmhB,oBAEjBriB,EAAOX,EAAStwB,EAASiJ,IAAMyV,GACxBC,EAAIsS,KAAKA,IAElBjH,EAAO,SAASspB,GACd,GAAI1jB,GAAgBoV,CAYpB,OAXApV,GAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,UAAU/N,QACtDk7B,EAAYP,EAAgBza,KAAK,SAASmI,GAExC,MADAA,GAAGmhB,mBAAqBA,EACjBnhB,IAET6S,EAAUzmC,KAAK,SAAUiF,GACvB,MAAO,YAEL,MADAosB,GAAeG,SACR5oB,EAAW2a,WAAW,oBAE9B1mB,OACI4pC,EAAUzmC,KAAK,KAAM,WAC1B,MAAOkF,GAASG,OAAO,YAG3B+a,EAAIgB,GAAG,QAAS,sBAAuB,SAAShW,GAC9C,GAAI2pC,EACJ,IAAK2uB,IAIL,MADA3uB,IAAsB9xB,EAAO2P,YAAYmiB,mBAClCtpB,EAAKspB,KAEd50B,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAI00C,mBAAqB,QACpE,WACD,GAAInhB,EAEJ,IADAA,EAAK3Q,EAAO2P,YAEV,MAAO5J,GAAO4K,KAGXzT,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,+BAAgC,aAAc,UAAW,aAAc,aAAc,8BAA+B,cAAe,WAAY4hD;EAE/J9gE,KAAKjE,MA2BR,WACE,GAAI+mE,GAAsBC,EAA8BC,EAA2BC,EAA4Bn2D,EAAaS,EAASK,EAAOlS,EAAQI,EAClJ8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBL,EAAUxR,KAAKD,MAAMyR,QAErBT,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,cAExBonE,EAAuB,SAAU32D,GAK/B,QAAS22D,GAAqBnzD,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAU9D,EAAK3K,EAAgB80B,EAASsgB,EAAWxiC,EAAW0iC,EAAgBr7C,EAAsB9C,GAChL,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAK8W,IAAMA,EACX9W,KAAKmM,eAAiBA,EACtBnM,KAAKihC,QAAUA,EACfjhC,KAAKuhD,UAAYA,EACjBvhD,KAAK+e,UAAYA,EACjB/e,KAAKyhD,eAAiBA,EACtBzhD,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMuzD,QAAUnnE,KAAK6D,OAAOujE,QACjCpnE,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,qBAChDvI,KAAKkiD,0BACL9+C,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YAEL,MADAA,GAAMkrD,WACClrD,EAAMk2D,8BAEdt+D,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OA8MlD,MA/OA6C,GAAOkkE,EAAsB32D,GAE7B22D,EAAqB3mD,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,OAAQ,mBAAoB,aAAc,eAAgB,aAAc,8BAA+B,yBAA0B,oBAkCvQ2mD,EAAqBn3D,UAAU0jD,SAAW,WACxC,GAAI/uD,GAAaf,EAAKc,CAUtB,OATAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,mBAC7B4+D,QAAS,IAAMnnE,KAAK4T,MAAM+hB,KAAKnyB,IAC/B6jE,YAAarnE,KAAK4T,MAAM+hB,KAAK9W,QAC7ByiB,YAAathC,KAAK4T,MAAMkG,QAAQvF,OAElChQ,EAAcvE,KAAK+e,UAAUxW,QAAQ,yBACnC++D,YAAsE,OAAxD9jE,EAAMxD,KAAK4T,MAAM6qD,WAAWz+D,KAAK4T,MAAM+hB,KAAKlvB,SAAmBjD,EAAI+Q,KAAO,SAAW,KACnGgzD,gBAAiB3kE,QAAQqF,QAAQjI,KAAK4T,MAAM+hB,KAAKgpC,kBAAoB,IAAI9pD,SAEpE7U,KAAKmM,eAAewC,OAAOrK,EAAOC,IAG3CwiE,EAAqBn3D,UAAUsyC,wBAA0B,WAWvD,MAVAliD,MAAK4T,MAAMlH,IAAI,oBAAqB,SAAUtE,GAC5C,MAAO,YACL,MAAOA,GAAMm5C,UAAU18B,WAAW,aAAc,SAAU,4BAA6B,KAExF7kB,OACHA,KAAK4T,MAAMlH,IAAI,gCAAiC,SAAUtE,GACxD,MAAO,YACL,MAAOA,GAAMiY,UAAUqG,WAAW,oBAEnC1mB,OACIA,KAAK4T,MAAMlH,IAAI,cAAe,SAAUtE,GAC7C,MAAO,YACL,MAAOA,GAAMo/D,aAEdxnE,QAGL+mE,EAAqBn3D,UAAU0uD,0BAA4B,WACzD,GAAIzwD,EAKJ,IAJAA,GACEiM,QAAS9Z,KAAK4T,MAAMkG,QAAQ0T,MAE9BxtB,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,UAAWkL,GACzD7N,KAAK4T,MAAMkG,QAAQ2T,qBAAsB,CAC3C,GAAIztB,KAAK4T,MAAM+hB,KAAKwxB,UAElB,MADAt5C,GAAI+6B,OAAS5oC,KAAK4T,MAAMg1B,OAAOpb,KACxBxtB,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,oBAAqBkL,EACzE,IAAI7N,KAAK4T,MAAM+hB,KAAKoB,GAEzB,MADAlpB,GAAIrK,IAAMxD,KAAK4T,MAAMmjB,GAAGvzB,IACjBxD,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,6BAA8BkL,OAEpF,IAAI7N,KAAK4T,MAAMkG,QAAQ4T,qBACxB1tB,KAAK4T,MAAMmjB,GAEb,MADAlpB,GAAIrK,IAAMxD,KAAK4T,MAAMmjB,GAAGvzB,IACjBxD,KAAK4T,MAAMi3B,gBAAkB7qC,KAAKihC,QAAQt+B,QAAQ,6BAA8BkL,IAK7Fk5D,EAAqBn3D,UAAUgyB,YAAc,WAC3C,GAAI9nB,EASJ,OARAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAMgkC,WAAa99B,EAAQooB,cAChCliC,KAAK4T,MAAM6qD,WAAajtD,EAAQsI,EAAQooB,cAAe,SAAS3hC,GAC9D,MAAOA,GAAEqZ,KAEJE,GAGTitD,EAAqBn3D,UAAU43D,SAAW,WACxC,MAAOxnE,MAAKoa,GAAGgd,MAAMqhB,SAASz4C,KAAK4T,MAAM2G,UAAWva,KAAK6D,OAAOujE,SAASjkE,KAAK,SAAUiF,GACtF,MAAO,UAASutB,GACd,GAAI9nB,GAAKrK,EAAKimC,CAmBd,OAlBArhC,GAAMwL,MAAM+hB,KAAOA,EACnBvtB,EAAMwL,MAAMimD,OAASlkC,EAAK/b,GAC1BxR,EAAMwL,MAAMorD,aAAerpC,EAC3BvtB,EAAMq5C,eAAerzB,UAAUhmB,EAAMwL,MAAO,QACoC,OAA5B,OAA9CpQ,EAAM4E,EAAMwL,MAAM+hB,KAAKspC,UAAUpY,UAAoBrjD,EAAIA,IAAM,UACnEqK,GACEiM,QAAS1R,EAAMwL,MAAMkG,QAAQ0T,KAC7BhqB,IAAK4E,EAAMwL,MAAM+hB,KAAKspC,UAAUpY,SAASrjD,KAE3C4E,EAAMwL,MAAMsrD,YAAc92D,EAAM64B,QAAQt+B,QAAQ,uBAAwBkL,IAEI,OAA7B,OAA3C47B,EAAOrhC,EAAMwL,MAAM+hB,KAAKspC,UAAU/3D,MAAgBuiC,EAAKjmC,IAAM,UACjEqK,GACEiM,QAAS1R,EAAMwL,MAAMkG,QAAQ0T,KAC7BhqB,IAAK4E,EAAMwL,MAAM+hB,KAAKspC,UAAU/3D,KAAK1D,KAEvC4E,EAAMwL,MAAMrN,QAAU6B,EAAM64B,QAAQt+B,QAAQ,uBAAwBkL,IAE/D8nB,IAER31B,QAGL+mE,EAAqBn3D,UAAUilD,WAAa,WAC1C,GAAI70D,KAAK4T,MAAM+hB,KAAKwxB,UAClB,MAAOnnD,MAAKoa,GAAG8lC,QAAQp6C,IAAI9F,KAAK4T,MAAM+hB,KAAK7b,QAAS9Z,KAAK4T,MAAM+hB,KAAKwxB,WAAWhkD,KAAK,SAAUiF,GAC5F,MAAO,UAASwgC,GAEd,MADAxgC,GAAMwL,MAAMg1B,OAASA,EACdA,IAER5oC,QAIP+mE,EAAqBn3D,UAAU63D,cAAgB,WAC7C,GAAIznE,KAAK4T,MAAM+hB,KAAKg9B,WAClB,MAAO3yD,MAAKoa,GAAG6D,YAAYnY,IAAI9F,KAAK4T,MAAM+hB,KAAK7b,QAAS9Z,KAAK4T,MAAM+hB,KAAKg9B,YAAYxvD,KAAK,SAAUiF,GACjG,MAAO,UAAS2uB,GAEd,MADA3uB,GAAMwL,MAAMmjB,GAAKA,EACVA,IAER/2B,QAIP+mE,EAAqBn3D,UAAUyxB,gBAAkB,WAC/C,GAAIvnB,EAGJ,OAFAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OACzCtZ,KAAKwnE,WAAWrkE,KAAK,SAAUiF,GACpC,MAAO,YACL,MAAOA,GAAMqI,EAAE0J,KAAK/R,EAAMysD,aAAczsD,EAAMq/D,oBAE/CznE,QASL+mE,EAAqBn3D,UAAUwvD,SAAW,WACxC,GAAI17C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMo/D,WACCp/D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGgd,MAAMioC,OAAOr/D,KAAK4T,MAAMimD,QAAQ12D,KAAKwgB,EAAWD,IAGjEqjD,EAAqBn3D,UAAU0vD,WAAa,WAC1C,GAAI57C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMo/D,WACCp/D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGgd,MAAMmoC,SAASv/D,KAAK4T,MAAMimD,QAAQ12D,KAAKwgB,EAAWD,IASnEqjD,EAAqBn3D,UAAU4vD,QAAU,WACvC,GAAI97C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMo/D,WACCp/D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGgd,MAAMqf,MAAMz2C,KAAK4T,MAAMimD,QAAQ12D,KAAKwgB,EAAWD,IAGhEqjD,EAAqBn3D,UAAU6vD,UAAY,WACzC,GAAI/7C,GAASC,CAYb,OAXAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAMo/D,WACCp/D,EAAMiY,UAAUqG,WAAW,oBAEnC1mB,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACIA,KAAKoa,GAAGgd,MAAM7K,QAAQvsB,KAAK4T,MAAMimD,QAAQ12D,KAAKwgB,EAAWD,IAG3DqjD,GAENl1D,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,uBAAwB4iE,GAE1CG,EAA6B,SAAS/xC,EAAWD,GAC/C,GAAI7R,GAAMze,CAuBV,OAtBAA,GAAWuwB,EAAUrvB,IAAI,yCAAyC,GAClEud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EAgBJ,OAfAA,GAAS,SAASwJ,GAChB,GAAIE,GAAMpvB,CAOV,OANAA,GAAS6c,EAAOm7C,WAAW9oC,EAAKlvB,QAChCovB,EAAOjxB,GACLi7D,UAAWp5D,EAAOo5D,UAClBp5D,OAAQA,IAEVovB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAElBvS,EAAOrP,OAAOuP,EAAO+S,QAAS,SAASZ,GACrC,GAAY,MAARA,EACF,MAAOxJ,GAAOwJ,KAGXrS,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,uBAAwB,cAAe,WAAY+jD,IAEpED,EAA4B,SAAS/yC,EAAY/N,EAAO9d,EAAU+rB,EAAUiV,EAAiBnU,EAAUlyB,EAAYmyB,GACjH,GAAI9R,GAAMze,CAqEV,OApEAA,GAAWuwB,EAAUrvB,IAAI,wCAAwC,GACjEud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CA8DxB,OA7DA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,qBAE/ColB,EAAS,SAAU/jB,GACjB,MAAO,UAASutB,GACd,GAAIE,GAAMpvB,CAOV,OANAA,GAAS6c,EAAOm7C,WAAW9oC,EAAKlvB,QAChCovB,EAAOX,EAAStwB,GACd6B,OAAQA,EACR6X,SAAUgF,EAAOs0B,WACjBpI,SAAUjG,OACRjmB,GACGC,EAAIsS,KAAKA,KAEjB71B,MACH4uB,EAAO,SAASnoB,GACd,GAAI+tB,GAAgB9Q,EAASC,EAAWimB,CAcxC,OAbApV,GAAiBJ,IAAWpQ,OAAOT,GAAK7U,QACxCk7B,EAAYP,EAAgBza,KAAK,SAAS+G,GAExC,MADAA,GAAKlvB,OAASA,EACPkvB,IAEThS,EAAY,WAEV,MADAuQ,GAAWxN,WAAW,kBACf8N,EAAeG,UAExBjR,EAAU,WAER,MADArb,GAASG,OAAO,SACTgsB,EAAeG,UAEjBiV,EAAUzmC,KAAKwgB,EAAWD,IAEnCH,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAG1C,GAFAA,EAAME,iBACNF,EAAMwhC,kBACDxG,IAGL,MAAOhmB,GAAI9G,KAAK,eAAes1B,UAAUnd,SAE3CrR,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIyV,EAGJ,IAFAzV,EAAME,iBACNF,EAAMwhC,kBACDxG,IAKL,MAFAvlB,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B8oB,EAAE/8B,GAAG+hC,UAAUnrC,WACRgoB,EAAK5K,EAAOjc,KAAK,gBAE1Bub,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIiD,OAAS,QACxD,WACD,GAAIkvB,EAEJ,IADAA,EAAOvP,EAAO2P,YAEZ,MAAO5J,GAAOwJ,KAGXrS,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,sBAAuB,aAAc,UAAW,aAAc,aAAc,8BAA+B,WAAY,aAAc,cAAe8jD,IAErKD,EAA+B,SAASj7D,EAAYsqC,EAAShuC,EAAU+rB,EAAUiV,EAAiBnU,EAAUC,GAC1G,GAAI9R,GAAMze,CA2DV,OA1DAA,GAAWuwB,EAAUrvB,IAAI,6BAA6B,GACtDud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAImjB,GAAYpd,EAAQyC,CAoDxB,OAnDA2a,GAAa,WACX,MAAOjmB,GAAOxJ,QAAQgT,eAAe/lB,QAAQ,qBAE/ColB,EAAS,SAASwJ,GAChB,GAAI9nB,GAAKgoB,CACT,OAAK0T,MAAiB5T,EAAK6U,YAI3B38B,GACEw8B,UAAW1U,EAAK6U,WAChBjB,WAAYA,KAEd1T,EAAOX,EAAStwB,EAASiJ,IAAMyV,GACxBC,EAAIsS,KAAKA,QARdtS,GAAIsS,KAAK,KAUbjH,EAAO,SAAS4b,GACd,GAAIhW,GAAgBoV,CAYpB,OAXApV,GAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,UAAU/N,QACtDk7B,EAAYP,EAAgBza,KAAK,SAAS+G,GAExC,MADAA,GAAK6U,WAAaA,EACX7U,IAETiU,EAAUzmC,KAAK,WACb,MAAO4I,GAAW2a,WAAW,oBAE/BkjB,EAAUzmC,KAAK,KAAM,WACnB,MAAOkF,GAASG,OAAO,WAElBohC,EAAU,WAAW,WAC1B,MAAOpV,GAAeG,YAG1BpR,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GACtC,GAAIi8B,EACJ,IAAKjB,IAIL,MADAiB,IAAcpkB,EAAO2P,YAAYyU,WAC1B5b,EAAK4b,KAEdlnB,EAAOrP,OAAO,WACZ,GAAIzQ,EACJ,OAAqC,QAA7BA,EAAM4iB,EAAO2P,aAAuBvyB,EAAIgnC,WAAa,QAC5D,WACD,GAAI7U,EAEJ,IADAA,EAAOvP,EAAO2P,YAEZ,MAAO5J,GAAOwJ,KAGXrS,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,yBAA0B,aAAc,UAAW,aAAc,aAAc,8BAA+B,WAAY,cAAe6jD,KAEzJ/iE,KAAKjE,MA2BR,WACE,GAAI0nE,GAAuBC,EAAgBC,EAAsBC,EAAgCC,EAA0BC,EAAsBC,EAAen2D,EAAOlS,EAAQI,EAC7K8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBlS,EAASiD,QAAQjD,OAAO,aAExBgoE,EAAiB,SAAUv3D,GAKzB,QAASu3D,GAAe/zD,EAAOyM,EAAW6N,EAAM9T,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAS90B,EAAgBwV,EAAM5C,EAAWzb,EAAgB8C,GACjI,GAAIhD,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKmM,eAAiBA,EACtBnM,KAAK2hB,KAAOA,EACZ3hB,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiBA,EACtBtD,KAAKoG,qBAAuBA,EAC5BpG,KAAK4T,MAAMwtB,YAAc,oBACzBh+B,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAQjB,OAPAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,mBAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAM2W,UAAUxW,QAAQ,yBACpC+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,KACjCgtB,mBAAoBn5B,EAAMwL,MAAMkG,QAAQvV,cAEnC6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAwGlD,MA1IA6C,GAAO8kE,EAAgBv3D,GAEvBu3D,EAAevnD,SAAW,SAAU,aAAc,UAAW,eAAgB,eAAgB,KAAM,YAAa,aAAc,mBAAoB,UAAW,aAAc,mBAAoB,0BAmC/LunD,EAAe/3D,UAAUq4D,QAAU,SAASt2B,GAC1C,MAAIA,GACK3xC,KAAK4T,MAAMs0D,YAAcv2B,EAEzB3xC,KAAK4T,MAAMs0D,YAAc,MAIpCP,EAAe/3D,UAAUu4D,YAAc,WACrC,GAAIx1D,GAAGqC,EAAK8iB,EAAQt0B,EAAK+I,CAIzB,KAHAA,EAAOvM,KAAK2hB,KAAKtT,UACjBrO,KAAK4T,MAAMw0D,UACX5kE,EAAMxD,KAAK4T,MAAM2F,YACZ5G,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrCmlB,EAASt0B,EAAImP,GACb3S,KAAK4T,MAAMw0D,OAAOtwC,EAAOle,IAAM,CAKjC,OAHA5Z,MAAK4T,MAAMy0D,YAAchoE,EAAEoc,KAAKzc,KAAK4T,MAAM2F,aACzCK,GAAY,MAARrN,EAAeA,EAAKqN,GAAK,SAExB5Z,KAAK4T,MAAM8lB,YAAcr5B,EAAE8G,OAAOnH,KAAK4T,MAAM2F,aAClDK,GAAY,MAARrN,EAAeA,EAAKqN,GAAK,UAIjC+tD,EAAe/3D,UAAUgyB,YAAc,WACrC,GAAI9nB,EASJ,OARAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAM00D,cAAgBxuD,EAAQ8T,oBACnC5tB,KAAK4T,MAAM20D,aAAezuD,EAAQ4T,qBAAuB5T,EAAQ2T,qBACjEztB,KAAK4T,MAAM40D,YAAc1uD,EAAQ6T,kBACjC3tB,KAAK4T,MAAM6J,MAAQ3D,EAAQ2D,MAAM7D,GAC1BE,GAGT6tD,EAAe/3D,UAAU64D,gBAAkB,WACzC,MAAOzoE,MAAKoa,GAAGC,SAASquD,YAAY1oE,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACvE,MAAO,UAASk7C,GACd,GAAI8kB,EAaJ,OAZAA,MACA/nE,EAAEkY,QAAQnQ,EAAMwL,MAAMw0D,OAAQ,SAAS7P,EAAOlgC,GAC5C,GAAIswC,EAOJ,OANAA,GAAOtoE,EAAEC,IAAIgjD,EAAO,SAASolB,EAAaE,GACxC,MAAOF,GAAYrwC,KAErBkgC,EAAQl4D,EAAEwX,OAAO8wD,EAAM,SAASE,EAAK/1D,GACnC,MAAO+1D,GAAM/1D,IAER1K,EAAMwL,MAAMw0D,OAAO/vC,GAAUkgC,IAEtCnwD,EAAMwL,MAAM0vC,MAAQl7C,EAAM0gE,cAAcxlB,GACjCl7C,EAAMwL,MAAM0vC,MAAM8kB,OAAShgE,EAAMwL,MAAMw0D,SAE/CpoE,QAGL2nE,EAAe/3D,UAAUm5D,aAAe,SAASC,GAC/C,GAAIt5D,GAAKzE,EAAKD,EAAKi+D,EAAYl6D,CAC/B9D,GAAM5K,EAAE4K,IAAI5K,EAAEwgC,QAAQmoC,IACtBh+D,EAAM3K,EAAE2K,IAAI3K,EAAEwgC,QAAQmoC,IACtBC,EAAa3xD,QACb,KAAK5H,IAAOs5D,GACLr5D,EAAQ1L,KAAK+kE,EAAMt5D,KACxBX,EAAQi6D,EAAKt5D,GACTX,IAAU/D,EACZi+D,EAAWv5D,GAAO,GACTX,IAAU9D,EACnBg+D,EAAWv5D,GAAO,EAElBu5D,EAAWv5D,GAAgB,GAARX,EAAe9D,EAGtC,OAAOg+D,IAGTtB,EAAe/3D,UAAUk5D,cAAgB,SAASxlB,GAChD,GAAI5zC,GAAKX,CACT,KAAKW,IAAO4zC,GACVv0C,EAAQu0C,EAAM5zC,GACd4zC,EAAM5zC,GAAO1P,KAAK+oE,aAAah6D,EAEjC,OAAOu0C,IAGTqkB,EAAe/3D,UAAUyxB,gBAAkB,WACzC,GAAIvnB,GAASovD,CAUb,OATApvD,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OAChDtZ,KAAKmoE,cACLe,EAAY7oE,EAAEC,IAAIN,KAAK4T,MAAMyF,MAAO,SAAS9M,GAC3C,MAAOA,GAAKolC,OAEd3xC,KAAK4T,MAAM0F,MAAQjZ,EAAEqN,OAAO1N,KAAK4T,MAAM0F,MAAO,SAASq4B,GACrD,MAAOu3B,GAAUniE,QAAQ4qC,EAAK/3B,WAEzB5Z,KAAKyoE,mBAGPd,GAEN91D,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,iBAAkBwjE,GAEpCC,EAAuB,WACrB,OACE1jE,YAAa,0BAIjBvE,EAAOwjB,UAAU,iBAAkBykD,IAEnCE,EAA2B,WACzB,OACE5jE,YAAa,8BACb0P,OACE0vC,MAAO,IACPjrB,OAAQ,QACRiwC,cAAe,iBACfC,aAAc,gBACdC,YAAa,kBAKnB7oE,EAAOwjB,UAAU,oBAAqB2kD,GAEtCD,EAAiC,WAC/B,OACE3jE,YAAa,qCACb0P,OACEkG,QAAS,WACTuuD,YAAa,eACb/kB,MAAO,IACPglB,cAAe,iBACfC,aAAc,gBACdC,YAAa,eACb/qD,MAAO,YAKb9d,EAAOwjB,UAAU,oBAAqB0kD,GAEtCE,EAAuB,WACrB,GAAInjE,EAEJ,OADAA,GAAW,0BAETV,YAAaU,EACbgP,OACE8lB,YAAa,IACbyvC,SAAU,YACVjB,YAAa,eACb5kB,MAAO,IACPglB,cAAe,iBACfC,aAAc,gBACdC,YAAa,eACb/qD,MAAO,YAKb9d,EAAOwjB,UAAU,gBAAiB4kD,GAElCL,EAAwB,SAASvhD,EAAO9d,EAAUpC,EAAW+wB,EAAK3M,EAAUrnB,EAAYomE,EAAiBrpD,GACvG,GAAIsD,EAsCJ,OArCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI6lD,EAuBJ,OAtBAA,GAAe,WACb,GAAIC,GAA4BC,CAGhC,OAFAA,GAAqBvmE,EAAWuF,QAAQ,6BACxC+gE,EAA6BtmE,EAAWuF,QAAQ,8BACzCF,EAASqiC,IAAI6+B,EAAoBD,GAA4BnmE,KAAK,SAAUiF,GACjF,MAAO,UAAS9B,GACd,GAAIlD,EASJ,OARAA,GAAU4zB,EAAI3c,SAASmvD,MAAMlmD,EAAOxJ,QAAQF,IAC5CxW,EAAQD,KAAK,WACX,MAAO4c,GAAmB0pD,eAAetmE,KAAK,WAG5C,MAFAmD,GAASquB,SACTtsB,EAASG,OAAO,WACTvC,EAAUxD,KAAK4nB,EAAS1nB,QAAQ,aAGpCS,EAAQD,KAAK,KAAM,SAASmD,GAEjC,MADAA,GAASquB,SACFtsB,EAASG,OAAO,QAASlC,EAASyB,KAAK+c,oBAGjD9kB,QAEEsjB,EAAOkmD,MAAQ,WACpB,MAAIlmD,GAAOxJ,QAAQ2D,MAAM7D,KAAO0J,EAAO/W,KAAKqN,GACnCwvD,EAAgB30C,OAAO,qCAC5Bi1C,QAAS,4CAETC,eAAe,EACf7vD,QAASwJ,EAAOxJ,UAGXuvD,OAKXz1D,OACErH,KAAM,IACNuN,QAAS,KAEX5V,YAAa,0BACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,kBAAmB,UAAW,aAAc,cAAe,eAAgB,aAAc,aAAc,oBAAqB,uBAAwBukD,IAErKM,EAAgB,WACd,MAAO,UAASjuD,EAASovD,EAAUjB,GACjC,MAAO7nE,GAAEqN,OAAOqM,EAAS,SAASkrB,GAChC,QAASijC,GAAejjC,EAAE0M,OAASu2B,EAAYtuD,OAASuvD,GAAYlkC,EAAEvmB,UAAUlY,OAAO,GAAI2Q,QAAOgyD,EAAU,OAAS,OAK3HxpE,EAAO+N,OAAO,gBAAiBs6D,IAE9B/jE,KAAKjE,MA2BR,WACE,GAAI4pE,GAAsBC,EAAsBC,EAAa94D,EAAUE,EAAUM,EAASK,EAAOlS,EAAQI,EACvGgQ,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,aAChEtN,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBL,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,aAExBiqE,EAAuB,SAAUx5D,GAK/B,QAASw5D,GAAqBh2D,EAAOyM,EAAW6N,EAAM5N,EAAO6tB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUlN,EAAQoJ,EAAK3K,EAAgB80B,EAASsgB,EAAWxiC,EAAW3Y,EAAsB9C,GAC/K,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKsgB,MAAQA,EACbtgB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAK0N,OAASA,EACd1N,KAAK8W,IAAMA,EACX9W,KAAKmM,eAAiBA,EACtBnM,KAAKihC,QAAUA,EACfjhC,KAAKuhD,UAAYA,EACjBvhD,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiBA,EACtBtD,KAAK+pE,SAAWh6D,EAAK/P,KAAK+pE,SAAU/pE,MACpCA,KAAK4T,MAAMlH,IAAI,kBAAmB1M,KAAK+pE,UACvC/pE,KAAK4T,MAAM4H,YAAcxb,KAAK6D,OAAOC,MACrC9D,KAAK4T,MAAMo2D,SAAWhqE,KAAK6D,OAAO2pB,KAClCxtB,KAAK4T,MAAMq2D,UAAYjqE,KAAK4T,MAAMo2D,SAClChqE,KAAK4T,MAAMwtB,YAAc,OACzBphC,KAAK4T,MAAMs2D,cAAe,EAC1B9mE,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,MAAOA,GAAMkrD,aAEdtzD,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAmIlD,MAvKA6C,GAAO+mE,EAAsBx5D,GAE7Bw5D,EAAqBxpD,SAAW,SAAU,aAAc,UAAW,WAAY,aAAc,eAAgB,eAAgB,KAAM,cAAe,UAAW,OAAQ,mBAAoB,aAAc,eAAgB,aAAc,yBAA0B,oBAqC/PwpD,EAAqBh6D,UAAU0jD,SAAW,WACxC,GAAI/uD,GAAaf,EAAKimC,EAAMsd,EAAMziD,CAUlC,OATAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,mBAC7B4hE,aAAcnqE,KAAK4T,MAAMq2D,UACzB3oC,YAAathC,KAAK4T,MAAMkG,QAAQvF,OAElChQ,EAAcvE,KAAK+e,UAAUxW,QAAQ,yBACnC6hE,gBAAiBxnE,QAAQqF,SAAoC,OAA1BzE,EAAMxD,KAAK4T,MAAMqpB,MAAgBz5B,EAAIqyB,KAAO,SAAW,IAAIhhB,OAC9Fw1D,eAA4C,OAA3B5gC,EAAOzpC,KAAK4T,MAAMqpB,MAAgBwM,EAAK6gC,SAAW,SAAW,EAC9EC,iBAAkBxgE,OAAmC,OAA3Bg9C,EAAO/mD,KAAK4T,MAAMqpB,MAAgB8pB,EAAKyjB,cAAgB,QAAQ1+C,OAAO9rB,KAAK+e,UAAUxW,QAAQ,oBAElHvI,KAAKmM,eAAewC,OAAOrK,EAAOC,IAG3CqlE,EAAqBh6D,UAAUgyB,YAAc,WAC3C,GAAI9nB,EAQJ,OAPAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQ6T,mBACX3tB,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGT8vD,EAAqBh6D,UAAU66D,SAAW,WACxC,GAAIrnE,EASJ,OARAA,GAAUpD,KAAKoa,GAAG6iB,KAAKytC,UAAU1qE,KAAK4T,MAAM2G,UAAWva,KAAK6D,OAAO2pB,MACnEpqB,EAAQD,KAAK,SAAUiF,GACrB,MAAO,UAAS60B,GAGd,MAFA70B,GAAMwL,MAAMqpB,KAAOA,EACnB70B,EAAMwL,MAAM+2D,OAAS1tC,EAAKrjB,GACnBxR,EAAMwL,MAAMqpB,OAEpBj9B,OACIoD,EAAQD,KAAK,KAAM,SAAUiF,GAClC,MAAO,UAASkI,GACd,GAAIvI,EAEJ,OADAK,GAAMwL,MAAM+2D,OAAS,KACjBviE,EAAMwL,MAAMkG,QAAQgT,eAAe/lB,QAAQ,sBACtC,MAETgB,GACE+R,QAAS1R,EAAMwL,MAAM2G,UACrBiT,KAAMplB,EAAMwL,MAAMo2D,SAClBhrD,QAAS,IAEX5W,EAAMwL,MAAMqpB,KAAO70B,EAAMkY,MAAMoB,WAAW,OAAQ3Z,GAC3CK,EAAMwL,MAAMqpB,QAEpBj9B,QAGL4pE,EAAqBh6D,UAAUg7D,cAAgB,WAC7C,MAAO5qE,MAAKoa,GAAG6iB,KAAK4tC,UAAU7qE,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACjE,MAAO,UAAS0iE,GACd,GAAIn4D,GAAGqC,EAAKqO,EAAM7f,EAAKunE,CAGvB,KAFA3iE,EAAMwL,MAAMk3D,UAAYA,EACxBtnE,EAAM4E,EAAMwL,MAAMk3D,UACbn4D,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrC0Q,EAAO7f,EAAImP,GACX0Q,EAAKvc,IAAMsB,EAAM64B,QAAQt+B,QAAQ,qBAC/BmX,QAAS1R,EAAMwL,MAAM4H,YACrBgS,KAAMnK,EAAKS,MAMf,IAHAinD,EAAmB1qE,EAAEoc,KAAKquD,GACxBhnD,KAAM1b,EAAMwL,MAAMo2D,WAEI,MAApBe,EACF,MAAO3iE,GAAMwL,MAAMq2D,UAAYc,EAAiBzmE,QAGnDtE,QAGL4pE,EAAqBh6D,UAAUyxB,gBAAkB,WAC/C,GAAIvnB,EAGJ,OAFAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OACzCtZ,KAAKyQ,EAAE0J,KAAKna,KAAK4qE,gBAAiB5qE,KAAKyqE,aAAatnE,KAAKnD,KAAKgrE,gBAAgBj7D,KAAK/P,QAG5F4pE,EAAqBh6D,UAAUo7D,gBAAkB,WAC/C,GAAIhrE,KAAK4T,MAAMkG,QAAQgT,eAAe/lB,QAAQ,uBAA4B/G,KAAK4T,MAAMkG,QAAQgT,eAAe/lB,QAAQ,yBAA6B/G,KAAK4T,MAAMk3D,UAAU19D,OACpK,MAAOpN,MAAK4T,MAAMs2D,cAAe,GAIrCN,EAAqBh6D,UAAU,UAAY,WACzC,GAAIoV,GAAS1gB,CAGb,OAFAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,8BAC/Byc,EAAUhlB,KAAK4T,MAAMq2D,UACdjqE,KAAKmuC,QAAQ/X,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GAC7D,MAAO,UAASiuB,GACd,GAAI3S,GAASC,CAeb,OAdAA,GAAY,WACV,GAAI9V,EAOJ,OANAwoB,GAAY1B,SACZ9mB,GACEiM,QAAS1R,EAAMwL,MAAM4H,aAEvBpT,EAAMwS,SAASnY,KAAK2F,EAAM64B,QAAQt+B,QAAQ,eAAgBkL,IAC1DzF,EAAM+lC,QAAQ3lC,OAAO,WACdJ,EAAMqiE,YAEf/mD,EAAU,WAER,MADA2S,GAAY1B,QAAO,GACZvsB,EAAM+lC,QAAQ3lC,OAAO,UAEvBJ,EAAM8lB,KAAKtM,OAAOxZ,EAAMwL,MAAMqpB,MAAM95B,KAAKwgB,EAAWD,KAE5D1jB,QAGL4pE,EAAqBh6D,UAAUm6D,SAAW,SAASl8D,EAAK6E,EAAMymD,GAC5D,GAAIn0B,GAAGsM,CAQP,OAPAA,GAAStxC,KAAK4T,MAAMk3D,UACpB9lC,EAAIsM,EAAOvqC,QAAQ2L,GACnB4+B,EAAO25B,OAAOjmC,EAAG,GACjBsM,EAAO25B,OAAO9R,EAAW,EAAGzmD,GAC5BrS,EAAEsJ,KAAK2nC,EAAQ,SAASviC,EAAO+J,GAC7B,MAAO/J,GAAM22C,MAAQ5sC,IAEhB9Y,KAAKkuB,KAAKg9C,QAAQ55B,IAGpBs4B,GAEN/3D,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,uBAAwBylE,GAE1CC,EAAuB,SAAS/9D,EAAMqpB,EAAWD,EAAUlyB,EAAYw0B,GACrE,GAAInU,GAAMze,CA0CV,OAzCAA,GAAWuwB,EAAUrvB,IAAI,0BAA0B,GACnDud,EAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAI+F,EAmCJ,OAlCAA,GAAS,SAAS8Q,GAChB,GAAIpF,GAAQhqB,EAAKgoB,EAAMtpB,CAyBvB,OAxBwB,OAApB+W,EAAOzJ,UACT/N,EAAKjF,MAAM,wDAEX0F,EAAO+W,EAAOzJ,UAAUojB,EAAKkuC,eAE/BtzC,EAASL,EAAcO,UAAUxrB,GAE/BA,EADW,SAATA,GAEAgI,KAAM,UACNsjB,OAAQA,IAIRtjB,KAAMhI,EAAK2rB,kBACXL,OAAQA,GAGZhqB,GACEw8D,cAAeptC,EAAKqtC,SACpBC,iBAAkBxgE,OAAOkzB,EAAKutC,eAAe1+C,OAAO9oB,EAAWuF,QAAQ,kBACvEgE,KAAMA,GAERspB,EAAOjxB,EAASiJ,GAChBgoB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAElBvS,EAAOrP,OAAOuP,EAAO+S,QAAS,SAAS60C,GACrC,GAAKA,EAGL,MAAOj/C,GAAOi/C,KAET9nD,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,iBAAkB,OAAQ,cAAe,WAAY,aAAc,kBAAmB0mD,IAEvGC,EAAc,SAASzgC,EAAiBt9B,EAAY1D,EAAUgjE,EAAwBx6B,EAAS1qB,EAAOja,EAAYo/D,GAChH,GAAIjoD,EAqDJ,OApDAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI+nD,EA4CJ,OA3CAjoD,GAAOkoD,qBAAsB,EAC7BloD,EAAOmoD,gBAAkB56B,EAAQ9iB,QAAQ,SAASxpB,EAAa0J,GAC7D,GAAIyV,GAASC,EAAWvgB,CAiBxB,OAhBAugB,GAAY,SAASynD,GAKnB,MAJsB,OAAlB9nD,EAAO5Q,KAAKkH,IACd1N,EAAW2Y,WAAW,WAAY,SAAU,mBAAoB,GAElEymD,EAAmBI,qBACZrjE,EAASG,OAAO,YAEzBkb,EAAU,WACR,MAAOrb,GAASG,OAAO,UAEzB8a,EAAO5Q,KAAKsM,QAAUza,EAEpBnB,EADoB,MAAlBkgB,EAAO5Q,KAAKkH,GACJuM,EAAMyI,KAAKtL,EAAO5Q,MAAMvP,KAAKwgB,EAAWD,GAExCyC,EAAMsO,OAAO,OAAQnR,EAAO5Q,MAAMvP,KAAKwgB,EAAWD,GAEvDtgB,EAAQ,WAAW6K,KAE5Bs9D,EAAa,SAASlzB,EAAMpqC,GAC1B,MAAOo9D,GAAuBl0B,cAAc7zB,EAAOxJ,QAAQF,GAAI0J,EAAO5Q,KAAKkH,GAAI,YAAay+B,GAAMl1C,KAAK,SAAS8R,GAC9G,MAAOhH,GAAGgH,EAAO4gD,OAAO,OAAQ,SAAU5gD,EAAO4gD,OAAO,OAAQ,YAGpEvyC,EAAOqoD,YAAc,SAASC,EAAO39D,GACnC,GAAIoqC,GAAM1lC,EAAGqC,EAAKyF,CAElB,KADAA,KACK9H,EAAI,EAAGqC,EAAM42D,EAAMx+D,OAAQuF,EAAIqC,EAAKrC,IACvC0lC,EAAOuzB,EAAMj5D,GACb8H,EAAQlT,KAAKgkE,EAAWlzB,EAAMpqC,GAEhC,OAAOwM,IAET6I,EAAOrP,OAAOuP,EAAOlD,MAAO,SAASvR,GACnC,GAAKA,EAKL,MAFAuU,GAAO5Q,KAAO3D,EACduU,EAAOtb,QAAU+G,EAAM/G,QAChBsb,EAAOuoD,WAAavoD,EAAOxJ,QAAQF,GAAK,IAAM7K,EAAM6K,GAAK,IAAM4J,EAAOpZ,OAExEkZ,EAAOrP,OAAO,UAAW,SAAS6F,GACvC,GAAKA,EAGL,MAAOwJ,GAAOkoD,oBAAsB1xD,EAAQgT,eAAe/lB,QAAQ,6BAIrE6M,OAAO,EACPyP,KAAMA,EACNze,SAAU,+mBAIdjF,EAAOwjB,UAAU,iBAAkB,8BAA+B,aAAc,aAAc,2BAA4B,YAAa,UAAW,eAAgB,uBAAwB2mD,KAEzL7lE,KAAKjE,MA2BR,WACE,GAAI8rE,GAAkB96D,EAAUQ,EAASK,EAAOlS,EAAQI,CAExDA,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBL,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,aAExBmsE,EAAmB,SAASz1B,EAASvqC,EAAM7F,EAAWoC,EAAU6D,EAAYkoB,EAAUe,EAAWD,EAAUlyB,GACzG,GAAIqgB,GAAM0oD,EAAennE,CAkJzB,OAjJAA,GAAWuwB,EAAUrvB,IAAI,sBAAsB,GAC/CimE,EAAgB,SAASzoD,EAAQC,EAAKC,GACpC,GAAIiU,GAAOu0C,EAAuB9c,EAAO/iC,CAEzC,OADAsL,GAAQlU,EAAIpf,aACU,MAAlBqf,EAAO+S,QACFzqB,EAAKjF,MAAM,kDAEpBmlE,EAAwB1oD,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,oBAC9DmoD,EAAQ,KACR/iC,EAAS,SAAS2+C,GAChB,GAAImB,GAA0Bp2C,EAAM+iC,EAAQxJ,EAAQ2J,CA8EpD,OA7EAiT,GAAwB1oD,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,oBAC9DklE,EAA2B3oD,EAAOxJ,QAAQgT,eAAe/lB,QAAQ,uBACjE8uB,EAAOjxB,GACLkmE,UAAWA,EACXtvD,YAAa8H,EAAO9H,YACpBwwD,sBAAuBA,EACvBC,yBAA0BA,IAE5Bp2C,EAAOX,EAASW,GAAMvS,GACtBC,EAAIkB,MACAunD,GAAyB9c,GAC3BA,EAAM9mB,UAER7kB,EAAIsS,KAAKA,GACLm2C,IACFpT,EAAS,KACTG,EAAOx1C,EAAI9G,KAAK,aAChByyC,EAAQG,SAAS0J,EAAK,KACpBmT,UAAW,WACX5c,gBAAgB,EAChBvP,MAAM,EACNosB,gBAAiBpT,EAAK,GACtBtJ,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,SAGtBmE,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIymD,EAIJ,OAHAP,GAAS7rB,EAAEr6B,GACXA,EAAOkmD,EAAOhlD,QAAQyP,KACtB81C,EAAYP,EAAO9/C,QACZwK,EAAOgT,MAAM,kBAAmB5jB,EAAMymD,KAE/C/J,EAASa,WAAW/vD,QAClBgwD,OAAQ,GACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,aAIhC/sC,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GAItC,MAHAA,GAAME,iBACN8U,EAAI9G,KAAK,QAAQ4P,YAAY,UAC7B9I,EAAI9G,KAAK,cAAcwT,QAChB1M,EAAI9G,KAAK,eAAemU,SAEjCrN,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAC1C,GAAI69D,GAAQpnD,EAAShB,EAAQ1f,CAO7B,OANAiK,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BmoD,EAASpoD,EAAOqoD,QAAQ,cAActkE,KAAK,MAC3CzD,EAAQtB,EAAWuF,QAAQ,0BAC3Byc,EAAU1B,EAAOwnD,UAAUsB,GAAQ9nE,MAC5B+D,EAAS+tB,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GACzD,MAAO,UAASiuB,GACd,GAAIjzB,EAYJ,OAXAA,GAAUizC,EAAQz0B,OAAO0B,EAAOwnD,UAAUsB,IAC1ChpE,EAAQD,KAAK,WAMX,MALAC,GAAUq0B,EAAMmzC,gBAChBxnE,EAAQD,KAAK,WAEX,MADAkzB,GAAY1B,SACLxI,EAAO7I,EAAOwnD,aAEhB1nE,EAAQD,KAAK,KAAM,WACxB,MAAOkzB,GAAY1B,aAGhBvxB,EAAQD,KAAK,KAAM,WAExB,MADAkzB,GAAY1B,QAAO,GACZtsB,EAASG,OAAO,aAG1BxI,SAEEujB,EAAIgB,GAAG,QAAS,aAAc,SAAShW,GAC5C,GAAIimB,GAAgB83C,EAASlpE,EAAS4gB,CAEtC,OADAzV,GAAME,iBACgB,KAAlBF,EAAMunB,SACR9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BqoD,EAAUtoD,EAAOpX,MACjB4nB,EAAiBJ,IAAWpQ,OAAOT,EAAI9G,KAAK,SAAS/N,QACrDtL,EAAUizC,EAAQ5hB,OAAO,cACvB3a,QAASwJ,EAAO/I,UAChBjW,MAAOgoE,IAETlpE,EAAQD,KAAK,WACX,GAAIopE,EAUJ,OATArgE,GAAW2Y,WAAW,WAAY,SAAU,mBAAoB,GAChE0nD,EAAc90C,EAAMmzC,gBACpB2B,EAAYppE,KAAK,WAKf,MAJAqxB,GAAeG,SACfpR,EAAI9G,KAAK,QAAQ3L,SAAS,UAC1ByS,EAAI9G,KAAK,cAAc7P,IAAI,IAC3B2W,EAAI9G,KAAK,eAAeiU,OACjBvE,EAAO7I,EAAOwnD,aAEhByB,EAAYppE,KAAK,KAAM,WAK5B,MAJAqxB,GAAeG,SACfpR,EAAI9G,KAAK,QAAQ3L,SAAS,UAC1ByS,EAAI9G,KAAK,cAAc7P,IAAI,IAC3B2W,EAAI9G,KAAK,eAAeiU,OACjBroB,EAASG,OAAO,QAAS,gCAG7BpF,EAAQD,KAAK,KAAM,SAAS0D,GACjC,GAAIrD,EAIJ,OAHAgxB,GAAeG,SACfpR,EAAI9G,KAAK,cAAc7P,IAAI0/D,GAC3B/oD,EAAI9G,KAAK,cAAcwT,QAAQkG,SACmD,OAApE,MAATtvB,GAAyC,OAAxBrD,EAAMqD,EAAMs5C,SAAmB38C,EAAI,GAAc,QAC9D6E,EAASG,OAAO,QAAS,2BAEzBH,EAASG,OAAO,YAGA,KAAlB+F,EAAMunB,SACf9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BV,EAAI9G,KAAK,QAAQ3L,SAAS,UAC1ByS,EAAI9G,KAAK,cAAc7P,IAAI,IACpB2W,EAAI9G,KAAK,eAAeiU,QAJ1B,UAQJ1f,EAASsS,EAAQE,EAAO+S,QAASpK,KAE1C9I,EAAO,SAASC,EAAQC,EAAKC,GAE3B,MADAuoD,GAAczoD,EAAQC,EAAKC,GACpBF,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,aAAc,UAAW,OAAQ,cAAe,aAAc,eAAgB,aAAc,cAAe,WAAY,aAAc2oD,KAErJ7nE,KAAKjE,MA2BR,WACE,GAAIwsE,GAAyB36D,EAAOlS,EAAQI,EAC1C8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBlS,EAASiD,QAAQjD,OAAO,aAExB6sE,EAA0B,SAAUp8D,GAKlC,QAASo8D,GAAwB54D,EAAOyM,EAAW6N,EAAM5N,EAAO6tB,EAAS/zB,EAAIvW,EAAQ4M,EAAGwwB,EAAS76B,EAAsB9C,GACrH,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKsgB,MAAQA,EACbtgB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAKihC,QAAUA,EACfjhC,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiBA,EACtBtD,KAAK4T,MAAM4H,YAAcxb,KAAK6D,OAAOC,MACrC9D,KAAK4T,MAAMo2D,SAAWhqE,KAAK6D,OAAO2pB,KAClCxtB,KAAK4T,MAAMq2D,UAAYjqE,KAAK4T,MAAMo2D,SAClChqE,KAAK4T,MAAMwtB,YAAc,OACzBphC,KAAK4T,MAAMs2D,cAAe,EAC1B9mE,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OA4DlD,MAnFA6C,GAAO2pE,EAAyBp8D,GAEhCo8D,EAAwBpsD,SAAW,SAAU,aAAc,UAAW,WAAY,aAAc,eAAgB,eAAgB,KAAM,aAAc,yBAA0B,oBAwB9KosD,EAAwB58D,UAAUgyB,YAAc,WAC9C,GAAI9nB,EAQJ,OAPAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQ6T,mBACX3tB,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGT0yD,EAAwB58D,UAAU68D,cAAgB,WAChD,GAAIrpE,EACJ,OAAOA,GAAUpD,KAAKoa,GAAG6iB,KAAKhhB,KAAKjc,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACtE,MAAO,UAASq7B,GACd,MAAOr7B,GAAMwL,MAAM6vB,UAAYA,IAEhCzjC,QAGLwsE,EAAwB58D,UAAUg7D,cAAgB,WAChD,MAAO5qE,MAAKoa,GAAG6iB,KAAK4tC,UAAU7qE,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACjE,MAAO,UAAS0iE,GACd,GAAIn4D,GAAGqC,EAAKqO,EAAM7f,EAAKunE,CAGvB,KAFA3iE,EAAMwL,MAAMk3D,UAAYA,EACxBtnE,EAAM4E,EAAMwL,MAAMk3D,UACbn4D,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrC0Q,EAAO7f,EAAImP,GACX0Q,EAAKvc,IAAMsB,EAAM64B,QAAQt+B,QAAQ,qBAC/BmX,QAAS1R,EAAMwL,MAAM4H,YACrBgS,KAAMnK,EAAKS,MAMf,IAHAinD,EAAmB1qE,EAAEoc,KAAKquD,GACxBhnD,KAAM1b,EAAMwL,MAAMo2D,WAEI,MAApBe,EACF,MAAO3iE,GAAMwL,MAAMq2D,UAAYc,EAAiBzmE,QAGnDtE,QAGLwsE,EAAwB58D,UAAUyxB,gBAAkB,WAClD,GAAIvnB,EAGJ,OAFAA,GAAU9Z,KAAK4hC,cACf5hC,KAAKoZ,kBAAkBU,EAAQC,QAASD,EAAQR,OACzCtZ,KAAKyQ,EAAE0J,KAAKna,KAAK4qE,gBAAiB5qE,KAAKysE,kBAAkBtpE,KAAKnD,KAAKgrE,gBAAgBj7D,KAAK/P,QAGjGwsE,EAAwB58D,UAAUo7D,gBAAkB,WAClD,GAAIhrE,KAAK4T,MAAMkG,QAAQgT,eAAe/lB,QAAQ,uBAA4B/G,KAAK4T,MAAMkG,QAAQgT,eAAe/lB,QAAQ,yBAA6B/G,KAAK4T,MAAMk3D,UAAU19D,OACpK,MAAOpN,MAAK4T,MAAMs2D,cAAe,GAI9BsC,GAEN36D,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,0BAA2BqoE,IAE5CvoE,KAAKjE,MA2BR,WACE,GAAI0sE,GAA+BC,EAA8BC,EAA6BC,EAA2CC,EAAsC57D,EAAUvR,EAAQI,CAEjMA,GAAQC,KAAKD,MAEbmR,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,eAExBktE,EAA4C,WAC1C,OACE3oE,YAAa,yCACb0P,OACEkG,QAAS,OAKfna,EAAOwjB,UAAU,sCAAuC0pD,IAExDD,EAA8B,SAASvgE,EAAiB+N,EAAI2yD,EAAgB/pE,GAC1E,OACEqgB,KAAM,SAASzP,EAAOd,GAEpB,MADAzG,GAAgBuoB,KAAK9hB,GACdc,EAAMnM,QAAU,WAErB,MADAmM,GAAM2uB,SAAU,EACTnoB,EAAGC,SAAS2yD,gBAAgBp5D,EAAM2G,WAAWpX,KAAK,WAGvD,MAFAyQ,GAAM2uB,SAAU,EAChBl2B,EAAgBkmB,MAAMzf,GACfi6D,EAAevkE,OAAO,UAAWxF,EAAWuF,QAAQ,wDAIjErE,YAAa,oDAIjBvE,EAAOwjB,UAAU,wBAAyB,kBAAmB,cAAe,aAAc,aAAcypD,IAExGF,EAAgC,WAC9B,QAASA,GAA8BzZ,EAAKga,EAAkB9+B,EAASpvB,GACrE/e,KAAKoa,GAAK64C,EACVjzD,KAAKqM,gBAAkB4gE,EACvBjtE,KAAKmuC,QAAUA,EACfnuC,KAAK+e,UAAYA,EACjB/e,KAAKqZ,SACLrZ,KAAKyQ,EAAI,GACTzQ,KAAKktE,aAAc,EA2ErB,MAxEAR,GAA8B98D,UAAUu9D,MAAQ,EAEhDT,EAA8B98D,UAAUqpC,gBAAkB,SAASI,GAMjE,MALAA,GAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACrFimC,EAAmBA,EAAiBjmC,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,MAIvFs5D,EAA8B98D,UAAUopC,YAAc,SAASzsC,GAC7D,GAAIsI,GAAMwP,CAKV,OAJAA,GAAW9X,EAAK2rB,kBAAkBohB,cAClCj1B,EAAWrkB,KAAKi5C,gBAAgB50B,GAChCxP,EAAO7U,KAAKyQ,EAAE6oC,cACdzkC,EAAO7U,KAAKi5C,gBAAgBpkC,GACrBxU,EAAE4Z,SAASoK,EAAUxP,IAG9B63D,EAA8B98D,UAAUw9D,SAAW,WACjD,GAAI/zD,EAUJ,OANEA,GAHGrZ,KAAKqZ,MAAMjM,QAAWpN,KAAKyQ,EAAErD,OAGxBpN,KAAKqZ,MAFLrZ,KAAKuZ,YAIfF,EAAQA,EAAMxG,MAAM,EAAG7S,KAAKmtE,OAC5B9zD,EAAQhZ,EAAE8G,OAAOkS,GACfgF,UAAY,IAEPhe,EAAE8G,OAAOkS,GACdO,GAAM5Z,KAAKqtE,kBAIfX,EAA8B98D,UAAU09D,WAAa,WAKnD,GAJAttE,KAAKqZ,MAAQrZ,KAAKuZ,YAClBvZ,KAAKqe,SAAWhe,EAAEoc,KAAKzc,KAAKqZ,OAC1BgF,UAAY,IAEVre,KAAKyQ,EACP,MAAOzQ,MAAKqZ,MAAQhZ,EAAEqN,OAAO1N,KAAKqZ,MAAOrZ,KAAKg5C,YAAYjpC,KAAK/P,QAInE0sE,EAA8B98D,UAAU29D,WAAa,SAAShhE,GAM5D,MALAvM,MAAKuZ,YAAclZ,EAAEC,IAAIN,KAAKuZ,YAAa,SAAShN,GAElD,MADAA,GAAK8R,UAAW,EACT9R,IAETA,EAAK8R,UAAW,EACTre,KAAKstE,cAGdZ,EAA8B98D,UAAUgU,OAAS,WAE/C,MADA5jB,MAAKuiC,SAAU,EACRviC,KAAKoa,GAAGC,SAASmzD,cAAcxtE,KAAKua,UAAWva,KAAKqe,SAASzE,GAAI5Z,KAAK+uB,SAAS5rB,KAAK,SAAUiF,GACnG,MAAO,YACL,GAAIsqB,GAAMpuB,CAKV,OAJA8D,GAAMm6B,SAAU,EAChBn6B,EAAMiE,gBAAgBzF,WACtBtC,EAAQ8D,EAAM2W,UAAUxW,QAAQ,oDAChCmqB,EAAOtqB,EAAM2W,UAAUxW,QAAQ,mDACxBH,EAAM+lC,QAAQlpB,QAAQ3gB,EAAOouB,GAClCtoB,KAAM,MACNmK,KAAM,oBAGTvU,QAGE0sE,KAITA,EAA8BtsD,SAAW,cAAe,kBAAmB,aAAc,cAEzFzgB,EAAOwE,WAAW,sBAAuBuoE,GAEzCC,EAA+B,SAAStgE,EAAiBysC,EAAmC3jB,EAAWD,GACrG,GAAI7R,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,GACrB,MAAOzG,GAAgBuoB,KAAK9hB,KAG5Bc,OAAO,EACPzP,WAAY,sBACZC,aAAc,KACdqpE,kBACEJ,eAAgB,IAChB9yD,UAAW,IACXhB,YAAa,KAEfrV,YAAa,6CACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,mBAAoB,kBAAmB,oCAAqC,cAAe,WAAYwpD,IAExHG,EAAuC,SAASzgE,GAC9C,GAAIgX,EAOJ,OANAA,GAAO,SAASzP,EAAOd,GAIrB,MAHAc,GAAM2e,MAAQ,WACZ,MAAOlmB,GAAgBkmB,MAAMzf,IAExBzG,EAAgBuoB,KAAK9hB,KAG5B5O,YAAa,+DACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,mCAAoC,kBAAmB2pD,KAEvE7oE,KAAKjE,MA2BR,WACE,GAAI0tE,GAAuBC,EAAsBC,EAAgCC,EAAsCC,EAA+BC,EAAqCC,EAAuCj9D,EAAac,EAAOlS,EAAQI,EAC5P8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBd,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,cAExB+tE,EAAwB,SAAUt9D,GAKhC,QAASs9D,GAAsB95D,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAASsgB,EAAWp1C,EAAgB4S,EAAW4C,EAAMssD,EAAkB7nE,EAAsB86B,GACpL,GAAI99B,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKuhD,UAAYA,EACjBvhD,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAK2hB,KAAOA,EACZ3hB,KAAKopE,gBAAkB6E,EACvBjuE,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiB49B,EACtBnwB,EAAY/Q,MACZA,KAAK4T,MAAMkG,WACX9Z,KAAK4T,MAAMsH,WACX9X,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAKjB,OAJAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,gCAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAChDA,KAAK4T,MAAMlH,IAAI,0BAA2B,SAAUtE,GAClD,MAAO,YAEL,MADAA,GAAMi5B,kBACCj5B,EAAMm5C,UAAU18B,WAAW,aAAc,SAAU,8BAA+B,KAE1F7kB,OAoEL,MA9GA6C,GAAO6qE,EAAuBt9D,GAE9Bs9D,EAAsBttD,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,aAAc,eAAgB,mBAAoB,aAAc,UAAW,oBAAqB,yBAA0B,oBA2CjQstD,EAAsB99D,UAAUgyB,YAAc,WAC5C,GAAI9nB,EASJ,OARAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQo0D,YACXluE,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAMu6D,YAA0C,OAA5Br0D,EAAQs0D,iBAA4Bt0D,EAAQs0D,gBAAkBt0D,EAAQu0D,kBAC/FruE,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGT4zD,EAAsB99D,UAAUu4D,YAAc,WAC5C,GAAImG,EAEJ,OADAA,GAActuE,KAAKuuE,gBACZvuE,KAAKoa,GAAGsf,YAAYzd,KAAKjc,KAAK4T,MAAM2G,UAAW+zD,GAAanrE,KAAK,SAAUiF,GAChF,MAAO,UAASL,GAOd,MANAK,GAAMwL,MAAM8lB,YAAcr5B,EAAEqN,OAAO3F,EAAK86D,OAAQ,SAAS2L,GACvD,MAA2B,QAApBA,EAAWjiE,MAAiBiiE,EAAWC,iBAEhDrmE,EAAMwL,MAAM4xB,KAAOz9B,EAAKrE,QACxB0E,EAAMwL,MAAM6K,MAAQ1W,EAAK0W,MACzBrW,EAAMwL,MAAMkvD,YAAc/6D,EAAK+6D,YACxB/6D,IAER/H,QAGL0tE,EAAsB99D,UAAUyxB,gBAAkB,WAEhD,MADArhC,MAAK4hC,cACE5hC,KAAKyQ,EAAE0J,KAAKna,KAAKmoE,cAAenoE,KAAK2hB,KAAKhV,aAGnD+gE,EAAsB99D,UAAU2+D,cAAgB,WAC9C,GAAIrzD,EAKJ,OAJAA,GAAU7a,EAAEmmE,KAAKxmE,KAAK4a,SAASpU,SAAU,QACpC0U,EAAQsqB,OACXtqB,EAAQsqB,KAAO,GAEVtqB,GAGTwyD,EAAsB99D,UAAU8+D,cAAgB,WAC9C,MAAO1uE,MAAKopE,gBAAgB30C,OAAO,qBACjCi1C,QAAS,+BACT5vD,QAAW,YAEXA,QAAW9Z,KAAK4T,MAAMkG,WAI1B4zD,EAAsB99D,UAAU++D,6BAA+B,WAC7D,GAAIhiC,GAAM3nB,EAAS1gB,CAMnB,OALAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,yCAC/Byc,EAAUhlB,KAAK+e,UAAUxW,QAAQ,iDAC/BwR,QAAS/Z,KAAK4T,MAAMkG,QAAQs0D,kBAE9BzhC,EAAO,IAAMzsC,OAAOmJ,SAAW,+BACxBrJ,KAAKmuC,QAAQlpB,QAAQ3gB,EAAO0gB,GACjCzQ,KAAMo4B,EACNviC,KAAM,SAIHsjE,GAEN77D,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,wBAAyBupE,GAE3CC,EAAuB,SAASx4C,EAAWD,GACzC,GAAI7R,GAAMggD,EAAgBz+D,CAyG1B,OAxGAA,GAAWuwB,EAAUrvB,IAAI,yCAAyC,GAClEu9D,EAAiB,SAAS//C,EAAQC,EAAKC,EAAQiU,GAC7C,GAAI6rC,GAAQC,EAAcC,EAASC,EAAOC,EAAeC,EAAaC,CAmFtE,OAlFAL,GAAe,EACfG,EAAgB,EAChBF,EAAU,EACVC,EAAQ,EACRH,EAAS//C,EAAI9G,KAAK,0BAClBknD,EAAc,WACZ,GAAIE,EAOJ,OANAA,GAAWvgD,EAAO7E,MAAQ6E,EAAOw/C,YAE/Be,EADEh4C,SAASg4C,EAAU,IAAMA,EAChBh4C,SAASg4C,EAAU,IAAM,EAEzBh4C,SAASg4C,EAAU,KAIlCD,EAAmB,WACjB,GAAIE,GAAOjuC,EAAMljB,EAAGuhC,EAAG2vB,EAAUpd,EAASsd,EAAOvgE,CAEjD,IADAqgE,EAAWF,IACPE,GAAY,EAEd,WADAP,GAAO1yC,MAST,KANAmzC,KACAtd,KACAA,EAAQsd,MAAQA,EAChBtd,EAAQud,aAAe1gD,EAAOkiB,KAAO,EACrCihB,EAAQwd,WAAa3gD,EAAOkiB,OAASq+B,GACrCC,EAAQxgD,EAAOkiB,KACV7yB,EAAIuhC,EAAI,EAAG1wC,EAAMqgE,EAAU,GAAKrgE,EAAM0wC,GAAK1wC,EAAM0wC,GAAK1wC,EAAKmP,EAAI,GAAKnP,IAAQ0wC,IAAMA,EACjFvhC,IAAOmxD,EAAQP,GAAiBM,EAAYC,EAAQP,EAAeE,EACrEM,EAAMx8D,MACJwlB,QAAS,OACT3iB,KAAM,SAECuI,IAAOmxD,EAAQJ,GAAkBI,EAASN,EAAUE,EAC7DK,EAAMx8D,MACJwlB,QAAS,OACT3iB,KAAM,SAECuI,EAAKmxD,EAAQP,GAAiB5wD,GAAMkxD,EAAWJ,GAE/C9wD,EAAKmxD,EAAQJ,GAAkB/wD,EAAI6wD,IAEnC7wD,IAAMmxD,EACfC,EAAMx8D,MACJwlB,QAAS,SACT2kB,IAAK/+B,EACLvI,KAAM,gBAGR25D,EAAMx8D,MACJwlB,QAAS,OACT2kB,IAAK/+B,EACLvI,KAAM,SAOZ,OAHAyrB,GAAOjxB,EAAS6hD;AAChB5wB,EAAOX,EAASW,GAAMvS,GACtBggD,EAAOztC,KAAKA,GACLytC,EAAO5yC,QAEhBpN,EAAOrP,OAAO,cAAe,SAASlF,GACpC,GAAKA,EAGL,MAAO60D,OAETrgD,EAAIgB,GAAG,QAAS,gCAAiC,SAAShW,GAExD,MADAA,GAAME,iBACC6U,EAAO/N,OAAO,WAEnB,MADAkiB,GAAM/c,aAAa,OAAQ4I,EAAOkiB,KAAO,GAClC/N,EAAM0wC,kBAGjB5kD,EAAIgB,GAAG,QAAS,oCAAqC,SAAShW,GAE5D,MADAA,GAAME,iBACC6U,EAAO/N,OAAO,WAEnB,MADAkiB,GAAM/c,aAAa,OAAQ4I,EAAOkiB,KAAO,GAClC/N,EAAM0wC,kBAGV5kD,EAAIgB,GAAG,QAAS,qCAAsC,SAAShW,GACpE,GAAI21D,GAASlgD,CAIb,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BigD,EAAUlgD,EAAOjc,KAAK,WACfub,EAAO/N,OAAO,WAEnB,MADAkiB,GAAM/c,aAAa,OAAQwpD,GACpBzsC,EAAM0wC,mBAInB9kD,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,EAGJ,OAFAA,GAAQlU,EAAIpf,aACZk/D,EAAe//C,EAAQC,EAAKC,EAAQiU,GAC7BnU,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,cAAe,WAAYwqD,IAE9DG,EAAgC,SAAShiE,EAAMqpB,EAAWnyB,EAAYkyB,EAAUsC,GAC9E,GAAInU,GAAMze,CA6BV,OA5BAA,GAAWuwB,EAAUrvB,IAAI,qCAAqC,GAC9Dud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIsU,GAAQ82C,EAASziD,CAiBrB,OAhBAyiD,GAAU5rE,EAAWuF,QAAQ,mCAC7B4jB,EAAS,SAAS2L,GAChB,GAAID,GAAQhqB,EAAKgoB,CAYjB,OAXAgC,GAASL,EAAcO,UAAUD,GACjCjqB,GACE6Q,UAAWoZ,EAAOpZ,UAAYoZ,EAAOpZ,UAAY,GACjDrU,MAAOytB,EAAO+2C,WAAa/2C,EAAO+2C,WAAa/2C,EAAOztB,MACtD2tB,OAAQH,EAAO/wB,IACfmxB,GAAIJ,EAAOI,GACX22C,QAAU92C,EAAO22C,eAA2B,GAAVG,EAClCE,QAASh3C,EAAOi3C,UAElBl5C,EAAOjxB,EAASiJ,GAChBgoB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAEmB,MAAjCrS,EAAOwrD,uBACFljE,EAAKjF,MAAM,+DAEpBixB,EAASxU,EAAOtP,MAAMwP,EAAOwrD,wBAC7B7iD,EAAO2L,GACAxU,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,WAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,0BAA2B,OAAQ,cAAe,aAAc,WAAY,kBAAmB2qD,IAEhHD,EAAuC,SAAS/hE,EAAMqa,EAAO9d,EAAU8sB,EAAWD,GAChF,GAAI7R,GAAMze,CA6CV,OA5CAA,GAAWuwB,EAAUrvB,IAAI,6CAA6C,GACtEud,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIqS,GAAMiC,EAAQ3L,CAIlB,OAHA7I,GAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAE+B,MAAxCjB,EAAOyrD,8BACFnjE,EAAKjF,MAAM,sEAEpBixB,EAASxU,EAAOtP,MAAMwP,EAAOyrD,+BACzBn3C,EAAOi3C,aACTxrD,GAAI9G,KAAK,aAAamF,UAGxBuK,EAAS,SAAS2L,GAChB,GAAIjqB,GAAKgoB,CAMT,OALAhoB,IACEqhE,QAAS,YAAcp3C,EAAOle,IAEhCic,EAAOjxB,EAASiJ,GAChBgoB,EAAOX,EAASW,GAAMvS,GACfC,EAAIsS,KAAKA,IAElBtS,EAAIgB,GAAG,QAAS,YAAa,SAAUnc,GACrC,MAAO,UAASmG,GACd,GAAImV,GAASC,EAAWK,CAWxB,OAVAL,GAAY,WACV,MAAOtb,GAASG,OAAO,YAEzBkb,EAAU,SAAS3b,GAGjB,MAFA+vB,GAAOiS,SACPxmB,EAAI9G,KAAK,aAAa6R,KAAK,UAAWwJ,EAAOq3C,UACtC9mE,EAASG,OAAO,QAAST,EAAKonE,SAAS,KAEhDnrD,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B6T,EAAOq3C,SAAWnrD,EAAOsK,KAAK,WACvBnI,EAAMyI,KAAKkJ,GAAQ30B,KAAKwgB,EAAWD,KAE3C1jB,OACH61B,EAAO1J,EAAO2L,GACVA,EAAOq3C,SACF5rD,EAAI9G,KAAK,aAAa6R,KAAK,WAAW,GAD/C,WAKAjL,KAAMA,IAIV1jB,EAAOwjB,UAAU,iCAAkC,OAAQ,UAAW,aAAc,cAAe,WAAY0qD,IAE/GE,EAAsC,SAASjiE,EAAMqa,EAAO9d,GAC1D,GAAIgb,GAAMze,CAwCV,OAvCAA,GAAWvE,EAAEuE,SAAS,+NACtBye,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAO5B,EAAMiC,EAAQ3L,CAUzB,OATAA,GAAS,SAAS2L,GAChB,GAAIjqB,GAAKgoB,CAMT,OALAhoB,IACEuhE,SAAU9rD,EAAOxJ,QAAQR,MACzB+1D,aAAcv3C,EAAO6Z,MAEvB9b,EAAOjxB,EAASiJ,GACT0V,EAAIsS,KAAKA,IAEyB,MAAvCrS,EAAO8rD,6BACFxjE,EAAKjF,MAAM,qEAEpB4wB,EAAQlU,EAAIpf,aACZ2zB,EAASxU,EAAOtP,MAAMwP,EAAO8rD,8BAC7Bz5C,EAAO1J,EAAO2L,GACdvU,EAAIgB,GAAG,SAAU,SAAU,SAAUnc,GACnC,MAAO,UAASmG,GACd,GAAIghE,GAAS7rD,EAASC,EAAWK,CASjC,IARAL,EAAY,WACV,MAAOtb,GAASG,OAAO,YAEzBkb,EAAU,WACR,MAAOrb,GAASG,OAAO,UAEzBwb,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BsrD,EAAU1jD,SAAS7H,EAAOpX,MAAO,IAC7BkrB,EAAO6Z,OAAS49B,EAElB,MADAz3C,GAAO6Z,KAAO49B,EACPppD,EAAMyI,KAAKkJ,GAAQ30B,KAAKwgB,EAAWD,KAG7C1jB,OACIsjB,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,WAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,gCAAiC,OAAQ,UAAW,aAAc4qD,IAEnFH,EAAiC,SAAS9hE,EAAMqa,EAAO6Q,EAAK3uB,EAAU6sB,EAAUlyB,EAAYiD,EAAWC,EAAUkjE,EAAiB9lE,GAChI,GAAIksE,GAAiBnsD,EAAMosD,CAkG3B,OAjGAD,GAAkB,gOAClBC,EAAkB,+RAClBpsD,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAO4xC,EAAcvxC,EAAQ3L,CAUjC,OATAA,GAAS,SAAS2L,GAChB,GAAIjC,EAMJ,OAJEA,GADEiC,EAAOvrB,KACF2oB,EAASs6C,GAAiBlsD,GAE1B4R,EAASu6C,GAAiBnsD,GAE5BC,EAAIsS,KAAKA,IAEoB,MAAlCrS,EAAOksD,wBACF5jE,EAAKjF,MAAM,gEAEpB4wB,EAAQlU,EAAIpf,aACZ2zB,EAASxU,EAAOtP,MAAMwP,EAAOksD,yBAC7BvjD,EAAO2L,GACPvU,EAAIgB,GAAG,QAAS,aAAc,SAAShW,GACrC,GAAImV,GAASC,CAcb,OAbApV,GAAME,iBACNkV,EAAY,WACV,GAAI9O,EAIJ,OAHAA,GAAO7R,EAAWuF,QAAQ,4CACxB8B,MAAOiZ,EAAOwU,OAAOztB,QAEhBhC,EAASG,OAAO,UAAWqM,IAEpC6O,EAAU,WACR,GAAI7O,EAEJ,OADAA,GAAO7R,EAAWuF,QAAQ,0CACnBF,EAASG,OAAO,QAASqM,IAE3BmiB,EAAI0C,YAAYi2C,iBAAiBrsD,EAAOwU,OAAOle,IAAIzW,KAAKwgB,EAAWD,KAE5E2lD,EAAe,WACb,GAAIuG,GAAY5qD,EAAS1gB,CAMzB,OALAA,GAAQtB,EAAWuF,QAAQ,kCAC3BqnE,EAAa5sE,EAAWuF,QAAQ,2CAC9B8B,MAAOytB,EAAOztB,QAEhB2a,EAAU8S,EAAOvrB,KAAOurB,EAAOpZ,UAAYkxD,EACpCvnE,EAAS+tB,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAASkzB,GACxD,GAAI3S,GAASC,CA+Bb,OA9BAA,GAAY,SAAUvb,GACpB,MAAO,YACL,GAAIyM,EAeJ,OAdAwhB,GAAY1B,SACRmD,EAAOvrB,OAAS+W,EAAO/W,KAAKqN,IAC1B0J,EAAOkiB,KAAO,GAAMliB,EAAO7E,MAAQ,GAAM6E,EAAOw/C,aAClDrrC,EAAM/c,aAAa,OAAQ4I,EAAOkiB,KAAO,GAE3CliC,EAAeusE,eAAe1sE,KAAK,WACjC,MAAOs0B,GAAM4J,qBAGfp7B,EAAUxD,KAAKyD,EAASvD,QAAQ,SAElCkS,EAAO7R,EAAWuF,QAAQ,mCACxByc,QAASA,IAEJ3c,EAASG,OAAO,UAAWqM,EAAM,KAAM,OAE/C7U,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YACL,GAAIyM,EAKJ,OAJAwhB,GAAY1B,QAAO,GACnB9f,EAAO7R,EAAWuF,QAAQ,iCACxByc,QAASA,IAEJ3c,EAASG,OAAO,QAASqM,KAEjC7U,MACImmB,EAAMvE,OAAOkW,GAAQ30B,KAAKwgB,EAAWD,MAGhDH,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIo7D,EAEJ,OADAp7D,GAAME,iBACF6U,EAAOxJ,QAAQ2D,MAAM7D,KAAOke,EAAOvrB,MACrCo9D,EAAgBrmD,EAAO/W,KAAKqN,KAAOke,EAAOvrB,KACnC68D,EAAgB30C,OAAO,qCAC5Bi1C,QAAS,4CAETC,cAAeA,EACf7vD,QAASwJ,EAAOxJ,WAGXuvD,MAGJ/lD,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,WAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,2BAA4B,OAAQ,UAAW,eAAgB,aAAc,WAAY,aAAc,cAAe,aAAc,oBAAqB,mBAAoByqD,IAE9LI,EAAwC,WACtC,OACE9pE,YAAa,6CACb0P,OACEkG,QAAS,OAKfna,EAAOwjB,UAAU,kCAAmC6qD,KAEnD/pE,KAAKjE,MA2BR,WACE,GAAI8vE,GAA0BnwE,CAE9BmwE,GAA2B,WACzB,GAAIzsD,EAUJ,OATAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI5f,EAIJ,OAHAA,GAAU4f,EAAOusD,kBACjBxsD,EAAI9G,KAAK,WAAW4P,YAAY,UAChC9I,EAAI9G,KAAK,cAAgB7Y,EAAU,MAAMkN,SAAS,UAC3CwS,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAASiD,QAAQjD,OAAO,cAExBA,EAAOwjB,UAAU,oBAAqB2sD,IAErC7rE,KAAKjE,MA2BR,WACE,GAAIgwE,GAAkCC,EAAuCC,EAAmCC,EAAkBC,EAAuBC,EAA4BC,EAA6BC,EAA4BC,EAAkCC,EAAmBC,EAAkBC,EAAgBC,EAA+BC,EAAwBC,EAAsBC,EAA2BC,EAAyBC,EAA0BC,EAAyBlgE,EAAUE,EAAUM,EAASI,EAASC,EAAOlS,EAAQI,EAAOsS,EAAUE,EAC7jB1P,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,eACbC,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,YAElEpQ,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBU,EAAOvS,KAAKD,MAAMwS,KAElBF,EAAWrS,KAAKD,MAAMsS,SAEtBT,EAAU5R,KAAKD,MAAM6R,QAErBJ,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,cAExBsxE,EAA2B,SAAU7gE,GAKnC,QAAS6gE,GAAyB5iD,EAAQhO,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAS90B,EAAgB4S,EAAWoyD,EAAQzwD,EAAqBta,EAAsB86B,EAAiB/S,GACnM,GAAI/qB,EACJpD,MAAK4T,MAAQya,EACbruB,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKmxE,OAASA,EACdnxE,KAAK+f,mBAAqBW,EAC1B1gB,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiB49B,EACtBlhC,KAAKsgB,MAAQ6N,EACbnuB,KAAK4T,MAAMkG,WACX9Z,KAAK4T,MAAM6jC,eACXr0C,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAa68B,EAAa98B,CAQ9B,OAPA88B,GAAch5B,EAAM2W,UAAUxW,QAAQH,EAAMwL,MAAMwtB,aAClD98B,EAAQ8D,EAAM2W,UAAUxW,QAAQ,oCAC9B64B,YAAaA,EACbE,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAClC6D,EAAM+D,eAAewC,OAAOrK,EAAOC,GAC5B6D,EAAMgR,kBAAkBhR,EAAMwL,MAAMkG,QAAQC,QAAS3R,EAAMwL,MAAMkG,QAAQR,SAEjFtZ,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAChDA,KAAK4T,MAAMlH,IAAI,iBAAkB,SAAUtE,GACzC,MAAO,YACL,GAAI7D,GAAa68B,EAAa98B,CAO9B,OANA88B,GAAch5B,EAAM2W,UAAUxW,QAAQH,EAAMwL,MAAMwtB,aAClD98B,EAAQ8D,EAAM2W,UAAUxW,QAAQ,oCAC9B64B,YAAaA,EACbE,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OA0DL,MA5GA6C,GAAOouE,EAA0B7gE,GAEjC6gE,EAAyB7wD,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,aAAc,mBAAoB,aAAc,UAAW,uBAAwB,yBAA0B,mBAAoB,YAmD3Q6wD,EAAyBrhE,UAAUgyB,YAAc,WAC/C,GAAI9nB,EAsBJ,OArBAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCqB,EAAU9Z,KAAKsgB,MAAMoB,WAAW,WAAY5H,GACvCA,EAAQo0D,YACXluE,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAMw9D,eAAiB/wE,EAAEqZ,OAAOI,EAAQgoB,cAAe,SAC5D9hC,KAAK4T,MAAMikC,aAAex3C,EAAEqZ,OAAOI,EAAQwoB,YAAa,SACxDtiC,KAAK4T,MAAMkhD,WAAaz0D,EAAEqZ,OAAOI,EAAQ8gB,OAAQ,SACjD56B,KAAK4T,MAAMohD,eAAiB30D,EAAEqZ,OAAOI,EAAQooB,cAAe,SAC5DliC,KAAK4T,MAAMy9D,eAAiBhxE,EAAEqZ,OAAOI,EAAQknD,YAAa,SAC1DhhE,KAAK4T,MAAM8uD,gBAAkBriE,EAAEqZ,OAAOI,EAAQkoB,eAAgB,SAC9DhiC,KAAK4T,MAAM09D,eAAiBjxE,EAAEqZ,OAAOI,EAAQkhB,WAAY,SACzDh7B,KAAK4T,MAAM29D,eAAiBlxE,EAAEqZ,OAAOI,EAAQmhB,WAAY,SACzDj7B,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAM6jC,YAAcp3C,EAAEC,IAAIN,KAAK4T,MAAMkG,QAAQ1C,KAAM,SAAUhP,GAChE,MAAO,UAASoU,GACd,OAAQA,EAAIpU,EAAMwL,MAAMkG,QAAQ49B,YAAYl7B,MAE7Cxc,OACI8Z,GAGTm3D,EAAyBrhE,UAAUyxB,gBAAkB,WAEnD,MADArhC,MAAK4hC,cACE5hC,KAAKmxE,OAAOxkE,WAGrBskE,EAAyBrhE,UAAU4hE,mBAAqB,WACtD,MAAOxxE,MAAKqgB,UAAUqG,WAAW,qBAAsB1mB,KAAK4T,MAAMkG,UAGpEm3D,EAAyBrhE,UAAU0nC,OAAS,SAAS/iC,EAAMqI,GACzD,GAAIxF,EAIJ,OAHAA,GAAO/W,EAAEsY,MAAM3Y,KAAK4T,MAAMkG,QAAQ1C,MAClCA,EAAK7P,KAAKgN,GACVvU,KAAK4T,MAAM6jC,YAAYlwC,MAAMgN,EAAM,OAC5BvU,KAAK4T,MAAMkG,QAAQ1C,KAAOA,GAGnC65D,EAAyBrhE,UAAU+nC,UAAY,SAASn5B,GACtD,GAAIpH,EAQJ,OAPAA,GAAO/W,EAAEsY,MAAM3Y,KAAK4T,MAAMkG,QAAQ1C,MAClC/W,EAAE2pC,KAAK5yB,EAAMoH,EAAI,IACjBne,EAAEuhB,OAAO5hB,KAAK4T,MAAM6jC,YAAa,SAAUrvC,GACzC,MAAO,UAASoU,GACd,MAAOA,GAAG,KAAOgC,EAAI,KAEtBxe,OACIA,KAAK4T,MAAMkG,QAAQ1C,KAAOA,GAG5B65D,GAENp/D,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,2BAA4B8sE,GAE9CC,EAA0B,SAAS/qD,EAAO9d,EAAU+rB,EAAU/J,EAAUpkB,EAAW3C,EAAgByc,GACjG,GAAIsD,EA2CJ,OA1CAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOhU,EAAMG,EAAQ2Q,CAuCzB,OAtCAkD,GAAQlU,EAAIpf,aACZsf,EAAOF,EAAI9G,KAAK,QAAQ7Q,WACtBgZ,qBAAuB,IAEzBhB,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WAoBV,MAjBAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMyI,KAAKtL,EAAOxJ,SAC5B1W,EAAQD,KAAK,WACX,GAAIsuE,EAYJ,OAXAj9C,GAAeG,SACftsB,EAASG,OAAO,WAChBipE,EAASpnD,EAAS1nB,QAAQ,yCACxBmX,QAASwJ,EAAOxJ,QAAQ0T,OAE1BvnB,EAAUxD,KAAKgvE,GACfnuE,EAAeusE,eAAe1sE,KAAK,SAAUiF,GAC3C,MAAO,YACL,MAAOqvB,GAAM4J,oBAEdrhC,OACI+f,EAAmB0pD,iBAErBrmE,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,GAFAysB,EAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,GAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACjB8G,EAAIgB,GAAG,SAAU,OAAQX,KAGhCP,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqB,UAAW,aAAc,aAAc,aAAc,cAAe,mBAAoB,uBAAwB+tD,IAEtJN,EAAgC,SAASzqD,EAAO9d,EAAU+rB,GACxD,GAAI/Q,EAkCJ,OAjCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMG,EAAQ2Q,CA4BlB,OA3BA9Q,GAAOF,EAAI9G,KAAK,QAAQ7Q,WACtBgZ,qBAAuB,IAEzBhB,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WASV,MANAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMyI,KAAKtL,EAAOxJ,SAC5B1W,EAAQD,KAAK,WAEX,MADAqxB,GAAeG,SACRtsB,EAASG,OAAO,aAElBpF,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,GAFAysB,EAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,GAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACxB8G,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,0BAA2B,UAAW,aAAc,aAAcytD,IAEnFI,EAA0B,SAAS7qD,EAAO9d,EAAU+rB,EAAU9wB,GAC5D,GAAI+f,EA+DJ,OA9DAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAII,EAqDJ,OApDAA,GAAS,SAAUxb,GACjB,MAAO,YACL,GAAIqb,GAAMrgB,CAIV,IAHAqgB,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACxB6X,EAAKiuD,mBACLjuD,EAAKmT,QACAnT,EAAKW,WASV,MANAhhB,GAAU+iB,EAAMyI,KAAKtL,EAAOxJ,SAC5B1W,EAAQD,KAAK,WAGX,MAFAmgB,GAAOgT,MAAM,iBAAkBhT,EAAOxJ,SACtCzR,EAASG,OAAO,WACTlF,EAAeusE,iBAEjBzsE,EAAQD,KAAK,KAAM,SAAS4E,GAEjC,GADA0b,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,GAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,MACHujB,EAAIgB,GAAG,SAAU,gDAAiD,SAAShW,GAEzE,MADAA,GAAME,iBACC6U,EAAOuyB,YAAYjyB,KAE5BL,EAAIgB,GAAG,SAAU,OAAQ,SAAShW,GAEhC,MADAA,GAAME,iBACCmV,MAETL,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAEhC,MADAA,GAAME,iBACCmV,MAETL,EAAIgB,GAAG,UAAW,oCAAqC,SAAS3W,GAC9D,MAAmB,MAAZA,EAAEgoC,QAEXtyB,EAAOrP,OAAO,2BAA4B,SAAS09D,EAAQC,GACzD,GAAe,MAAVD,GAA8B,MAAVC,GAAmBD,IAAWC,EACrD,MAAOtuD,GAAOxJ,QAAQ+3D,4BAA8B,KAGxDvuD,EAAOrP,OAAO,6BAA8B,SAASuE,EAAUutB,GAC7D,GAAIvtB,KAAa,IACf8K,EAAOxJ,QAAQg4D,iBAAmB,KAClCxuD,EAAOxJ,QAAQ+3D,4BAA8B,GACzC9rC,KAAa,GACf,MAAOniB,OAINN,EAAOrP,OAAO,UAAW,SAAS6F,GACvC,MAAgC,OAA5BA,EAAQg4D,iBACHxuD,EAAOyuD,4BAA6B,EAEpCzuD,EAAOyuD,4BAA6B,MAK/C1uD,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqB,UAAW,aAAc,aAAc,mBAAoB6tD,IAEjGH,EAAyB,SAASztD,EAAS4T,EAAK3uB,EAAUrF,GACxD,GAAIqgB,EA+GJ,OA9GAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIwuD,GAAcC,EAAWC,EAAiBC,EAAaC,EAAYC,EAAaC,EAAaC,EAAeC,EAAUC,EAAiBC,EAAeC,EAAiBC,EAAeC,EAAmBC,EAAiBC,EAAgBC,EAAcC,EAAaC,EAAeC,EAA2BC,EAA0BC,EAAiBC,EAAYC,EAAaC,EAAWC,CA6ElY,OA5EAxB,GAAY1uD,EAAI9G,KAAK,iCACrBw2D,EAAc,WACZ,MAAOhB,GAAU5lD,YAAY,WAE/B8lD,EAAc,WACZ,MAAOF,GAAUnhE,SAAS,WAE5B0hE,EAAWjvD,EAAI9G,KAAK,gCACpB62D,EAAa,WACX,MAAOd,GAASnmD,YAAY,WAE9B+lD,EAAa,WACX,MAAOI,GAAS1hE,SAAS,WAE3B0iE,EAAYjwD,EAAI9G,KAAK,SACrB82D,EAAc,WACZ,MAAOC,GAAUnnD,YAAY,WAE/BgmD,EAAc,WACZ,MAAOmB,GAAU1iE,SAAS,WAE5B4hE,EAAgBnvD,EAAI9G,KAAK,iBACzB81D,EAAgBvvE,EAAWuF,QAAQ,sCACnC+pE,EAActvE,EAAWuF,QAAQ,wCACjC2pE,EAAkB,WAChB,MAAOQ,GAAc78C,KAAK7yB,EAAWuF,QAAQ,qCAE/CypE,EAAe,WACb,MAAOU,GAAc78C,KAAK7yB,EAAWuF,QAAQ,wCAE/CkrE,EAAc,SAAS3sE,GACrB,MAAO4rE,GAAc78C,KAAK7yB,EAAWuF,QAAQ,qCAC3CzB,IAAKA,MAGTgsE,EAAkB,WAChB,MAAOJ,GAAc78C,KAAK08C,IAE5BK,EAAgB,WACd,MAAOF,GAAc78C,KAAKy8C,IAE5BU,EAAe,WACb,MAAON,GAAc78C,KAAKq8C,IAE5BO,EAAkBlvD,EAAI9G,KAAK,oBAC3Bo2D,EAAoB,WAClB,MAAOJ,GAAgB58C,KAAKy8C,IAE9BK,EAAkB,WAChB,MAAOF,GAAgB58C,KAAKm8C,IAE9Be,EAAiB,SAASjsE,GACxB,MAAO2rE,GAAgB58C,KAAK49C,EAAY3sE,KAE1CusE,EAAkB,WAKhB,MAJAE,KACAT,IACAD,IACAV,IACOmB,KAETH,EAA4B,WAG1B,MAFAd,KACAO,IACOD,KAETS,EAA2B,SAAStsE,GAGlC,MAFAurE,KACAW,IACOD,EAAejsE,IAExBosE,EAAgB,WAGd,MAFAb,KACAD,IACOa,KAEF1vD,EAAIgB,GAAG,QAAS,kBAAmBrT,EAAS,IAAM,SAAU9I,GACjE,MAAO,UAASmG,GACd,GAAImV,GAASC,CA0Bb,OAzBApV,GAAME,iBACNkV,EAAY,SAAS1O,GACnB,GAAIy+D,EACJ,OAAsB,OAAlBz+D,EAAOxO,OACF0sE,KAEPO,EAAUz+D,EAAOlN,KAAKjB,IACtBssE,EAAyBM,GAClBtwD,EAAQwR,KAAK8+C,EAAS,YAGjChwD,EAAU,SAASzO,GACjB,GAAI0+D,GAAUnwE,CAUd,OATA0vE,KACAS,EAAW3wE,EAAWuF,QAAQ,8BACR,MAAlB0M,EAAOxO,OACTktE,EAAW3wE,EAAWuF,QAAQ,oCACE,OAAtB/E,EAAMyR,EAAOlN,MAAgBvE,EAAIshB,eAAiB,UAC5D6uD,EAAW3wE,EAAWuF,QAAQ,mCAC5Byc,QAAS/P,EAAOlN,KAAK+c,kBAGlBzc,EAASG,OAAO,QAASmrE,IAElCN,IACOr8C,EAAI3c,SAAS,UAAUiJ,EAAO/I,WAAWpX,KAAKwgB,EAAWD,KAEjE1jB,UAGHqjB,KAAMA,IAIV1jB,EAAOwjB,UAAU,mBAAoB,UAAW,eAAgB,aAAc,aAAc0tD,IAE5FT,EAAwB,SAAUhgE,GAKhC,QAASggE,GAAsB/hD,EAAQhO,EAAWG,EAAM2tB,EAAS/zB,EAAI2E,GACnE/e,KAAK4T,MAAQya,EACbruB,KAAKqgB,UAAYA,EACjBrgB,KAAKwgB,KAAOA,EACZxgB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK+e,UAAYA,EACjB/e,KAAK4zE,cAAgB7jE,EAAK/P,KAAK4zE,cAAe5zE,MAC9CA,KAAK6zE,WAAa9jE,EAAK/P,KAAK6zE,WAAY7zE,MACxCA,KAAKqgB,UAAU3T,IAAI,iBAAkB1M,KAAK6zE,YAC1C7zE,KAAK4T,MAAMK,OAAO,UAAW,SAAU7L,GACrC,MAAO,UAAS2G,GACd,MAAIA,GACK3G,EAAMwL,MAAMkgE,OAAS1rE,EAAMoY,KAAKuzD,gBAAgB3rE,EAAMgC,KAAO,OAAQ2E,GAErE3G,EAAMwL,MAAMkgE,OAAS,KAG/B9zE,OA2CL,MAjEA6C,GAAOutE,EAAuBhgE,GAE9BggE,EAAsBhwD,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,cAuBlGgwD,EAAsBxgE,UAAUikE,WAAa,WAC3C,MAAO7zE,MAAK4T,MAAMogE,QAAUh0E,KAAK4T,MAAMkG,QAAQ9Z,KAAKoK,KAAO,cAG7DgmE,EAAsBxgE,UAAUgkE,cAAgB,SAASttE,GACvD,GAAIlD,EAqBJ,OApBgB,OAAZkD,IACFA,EAAW,MAEblD,EAAUpD,KAAKoa,GAAGC,SAAS,cAAgBra,KAAKoK,KAAO,aAAapK,KAAK4T,MAAM2G,WAC/EnX,EAAQD,KAAK,SAAUiF,GACrB,MAAO,UAASL,GACd,GAAIvE,EACJ,OAAO4E,GAAMwL,MAAMogE,QAA+B,OAApBxwE,EAAMuE,EAAKA,MAAgBvE,EAAIywE,KAAO,SAErEj0E,OACHoD,EAAQD,KAAK,KAAM,SAAUiF,GAC3B,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,OACHoD,EAAQ,WAAW,WACjB,GAAIkD,EACF,MAAOA,GAASquB,WAGbvxB,GAGTgtE,EAAsBxgE,UAAUskE,eAAiB,WAC/C,GAAInpC,GAAUzmC,CACd,OAAItE,MAAK4T,MAAMogE,SACb1vE,EAAQtE,KAAK+e,UAAUxW,QAAQ,kCAC/BwiC,EAAW/qC,KAAK+e,UAAUxW,QAAQ,qCAC3BvI,KAAKmuC,QAAQzD,IAAIpmC,EAAOymC,GAAU5nC,KAAKnD,KAAK4zE,gBAE5C5zE,KAAK4zE,iBAITxD,GAENrwE,EAAM6Q,YAETy/D,EAA6B,SAAUjgE,GAGrC,QAASigE,KACP,MAAOA,GAA2BxgE,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAKtE,MARAtN,GAAOwtE,EAA4BjgE,GAMnCigE,EAA2BzgE,UAAUxF,KAAO,QAErCimE,GAEND,GAEHI,EAAmC,SAAUpgE,GAG3C,QAASogE,KACP,MAAOA,GAAiC3gE,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAK5E,MARAtN,GAAO2tE,EAAkCpgE,GAMzCogE,EAAiC5gE,UAAUxF,KAAO,cAE3ComE,GAENJ,GAEHG,EAA6B,SAAUngE,GAGrC,QAASmgE,KACP,MAAOA,GAA2B1gE,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAKtE,MARAtN,GAAO0tE,EAA4BngE,GAMnCmgE,EAA2B3gE,UAAUxF,KAAO,QAErCmmE,GAENH,GAEHE,EAA8B,SAAUlgE,GAGtC,QAASkgE,KACP,MAAOA,GAA4BzgE,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAKvE,MARAtN,GAAOytE,EAA6BlgE,GAMpCkgE,EAA4B1gE,UAAUxF,KAAO,SAEtCkmE,GAENF,GAEHzwE,EAAOwE,WAAW,6BAA8BksE,GAEhD1wE,EAAOwE,WAAW,mCAAoCqsE,GAEtD7wE,EAAOwE,WAAW,6BAA8BosE,GAEhD5wE,EAAOwE,WAAW,8BAA+BmsE,GAEjDH,EAAmB,SAASntE,GAC1B,GAAIqgB,EAIJ,OAHAA,GAAO,SAASC,GACd,MAAOA,GAAO6wD,aAAe,iCAG7BhwE,WAAY,6BACZC,aAAc,OACdF,YAAa,yBACbmf,KAAMA,EACNzP,OAAO,IAIXjU,EAAOwjB,UAAU,aAAc,aAAcgtD,IAE7CQ,EAAiB,SAAS3tE,GACxB,GAAIqgB,EAIJ,OAHAA,GAAO,SAASC,GACd,MAAOA,GAAO6wD,aAAe,+BAG7BhwE,WAAY,mCACZC,aAAc,OACdF,YAAa,yBACbmf,KAAMA,EACNzP,OAAO,IAIXjU,EAAOwjB,UAAU,WAAY,aAAcwtD,IAE3CD,EAAmB,SAAS1tE,GAC1B,GAAIqgB,EAIJ,OAHAA,GAAO,SAASC,GACd,MAAOA,GAAO6wD,aAAe,iCAG7BhwE,WAAY,6BACZC,aAAc,OACdF,YAAa,yBACbmf,KAAMA,EACNzP,OAAO,IAIXjU,EAAOwjB,UAAU,aAAc,aAAcutD,IAE7CD,EAAoB,SAASztE,GAC3B,GAAIqgB,EAIJ,OAHAA,GAAO,SAASC,GACd,MAAOA,GAAO6wD,aAAe,kCAG7BhwE,WAAY,8BACZC,aAAc,OACdF,YAAa,yBACbmf,KAAMA,EACNzP,OAAO,IAIXjU,EAAOwjB,UAAU,cAAe,aAAcstD,IAE9CK,EAAuB,SAAS9kE,EAAOoa,EAAQ4Q,EAAK3uB,GAClD,GAAIgb,EAqCJ,OApCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIE,GAASC,EAAWywD,CA+BxB,OA9BAA,GAAe,WACb,MAAO7wD,GAAI9G,KAAK,cAAc3L,SAAS,WAEzC6S,EAAY,SAASrd,GACnB,GAAIwT,EAIJ,OAHAA,GAAUsM,EAAO1E,WAAW,WAAYpb,EAASyB,MACjDub,EAAOxJ,QAAUA,EACjByJ,EAAI9G,KAAK,oBAAoB4P,YAAY,UAClChkB,EAASG,OAAO,YAEzBkb,EAAU,SAASpd,GAKjB,MAJwB,OAApBA,EAASG,QACX2tE,IAEF7wD,EAAI9G,KAAK,oBAAoB4P,YAAY,UAClChkB,EAASG,OAAO,QAASlC,EAASyB,KAAK+c,iBAEhDvB,EAAIgB,GAAG,QAAS,kBAAmB,WACjC,MAAOhB,GAAI9G,KAAK,eAAeuuB,UAEjCznB,EAAIgB,GAAG,SAAU,cAAe,SAAShW,GACvC,GAAI+U,EAAO+wD,eAET,MADA9wD,GAAI9G,KAAK,oBAAoB3L,SAAS,UAC/BkmB,EAAI3c,SAASi6D,WAAWhxD,EAAOxJ,QAAQF,GAAI0J,EAAO+wD,gBAAgBlxE,KAAKwgB,EAAWD,KAG7FH,EAAIgB,GAAG,QAAS,wBAAyB,SAAShW,GAEhD,MADAgV,GAAI9G,KAAK,oBAAoB3L,SAAS,UAC/BkmB,EAAI3c,SAASk6D,WAAWjxD,EAAOxJ,QAAQF,IAAIzW,KAAKwgB,EAAWD,KAE7DJ,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,UAAW,WAAY,eAAgB,aAAc2tD,IAExFC,EAA4B,SAASjhD,GACnC,GAAIzM,EAWJ,OAVAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIlD,GAAOk0D,CAGX,OAFAl0D,GAAQwP,EAAOtM,EAAOixD,oBACtBD,EAAcl0D,EAAM6O,OACb5L,EAAIxT,KAAK,SAAU,WACxB,MAAOuT,GAAO/N,OAAO,WACnB,MAAOi/D,GAAYlxD,EAAQC,EAAI,GAAGqoD,MAAM,UAK5CvoD,KAAMA,IAIV1jB,EAAOwjB,UAAU,sBAAuB,SAAU4tD,IAElDb,EAAoC,WAClC,OACEt8D,OACEkG,QAAW,KAEb5V,YAAa,0CAIjBvE,EAAOwjB,UAAU,8BAA+B+sD,IAEhDD,EAAwC,SAAS7G,GAC/C,OACE/lD,KAAM,SAASzP,GACb,MAAOA,GAAM8gE,iBAAmB,WAC9B,MAAOtL,GAAgB30C,OAAO,2BAC5Bi1C,QAAS,wCAETnvD,UAAW3G,EAAM2G,cAIvB3G,OACE2G,UAAa,IACbkD,MAAS,KAEXvZ,YAAa,+CAIjBvE,EAAOwjB,UAAU,kCAAmC,oBAAqB8sD,IAEzED,EAAmC,SAAS5G,GAC1C,OACE/lD,KAAM,SAASzP,GACb,MAAOA,GAAM+gE,YAAc,WACzB,MAAOvL,GAAgB30C,OAAO,sBAC5Bi1C,QAAS,gCACTkL,aAAc,YACdC,eAAgB,cAChBC,mBAAoB,mBAEpBv6D,UAAW3G,EAAM2G,UACjBhB,YAAa3F,EAAM2F,YACnB8zD,eAAgBz5D,EAAM6J,MAAM7D,GAC5BG,QAASnG,EAAMmG,YAIrBnG,OACE2F,YAAe,IACfgB,UAAa,IACbkD,MAAS,IACT1D,QAAW,KAEb7V,YAAa,0CAIjBvE,EAAOwjB,UAAU,6BAA8B,oBAAqB6sD,KAEnE/rE,KAAKjE,MA2BR,WACE,GAAI+0E,GAAyBlnC,EAAWC,EAAgBknC,EAAmCC,EAAkCC,EAAuBC,EAAsBC,EAAyBC,EAAwBC,EAAgCvnC,EAAeC,EAAWC,EAAcC,EAAUl9B,EAAUE,EAAUG,EAAoBG,EAASI,EAASC,EAAOlS,EAAQI,EAAOsS,EAAUE,EACrY1P,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,eACbC,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,YAElEpQ,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBU,EAAOvS,KAAKD,MAAMwS,KAElBF,EAAWrS,KAAKD,MAAMsS,SAEtBT,EAAU5R,KAAKD,MAAM6R,QAErBJ,EAAUxR,KAAKD,MAAMyR,QAErBR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBG,EAAqBrR,KAAKD,MAAMsR,mBAEhC1R,EAASiD,QAAQjD,OAAO,cAExB21E,EAAiC,SAAUllE,GAKzC,QAASklE,GAA+B1hE,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAS90B,EAAgB4S,EAAW3Y,EAAsB86B,GAC1J,GAAI38B,GAAa68B,EAAa98B,CAC9BtE,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiB49B,EACtBlhC,KAAK4T,MAAMkG,WACX9Z,KAAKqhC,kBACLD,EAAcphC,KAAK+e,UAAUxW,QAAQvI,KAAK4T,MAAMwtB,aAChD98B,EAAQtE,KAAK+e,UAAUxW,QAAQ,mCAC7B64B,YAAeA,EACfE,YAAethC,KAAK4T,MAAMkG,QAAQvF,OAEpChQ,EAAcvE,KAAK4T,MAAMkG,QAAQvV,YACjCvE,KAAKmM,eAAewC,OAAOrK,EAAOC,GAqBpC,MAhDA1B,GAAOyyE,EAAgCllE,GAEvCklE,EAA+Bl1D,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,aAAc,mBAAoB,aAAc,yBAA0B,oBA4B1Nk1D,EAA+B1lE,UAAUgyB,YAAc,WACrD,GAAI9nB,EAQJ,OAPAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQo0D,YACXluE,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGTw7D,EAA+B1lE,UAAUyxB,gBAAkB,WACzD,GAAIj+B,EAEJ,OADAA,GAAUpD,KAAK4hC,eAIV0zC,GAENzjE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,iCAAkCmxE,GAEpDF,EAA0B,SAAUhlE,GAKlC,QAASglE,GAAwBxhE,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,GAChE,GAAImS,EACJvsB,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAKu1E,UAAYxlE,EAAK/P,KAAKu1E,UAAWv1E,MACtCA,KAAKw1E,WAAazlE,EAAK/P,KAAKw1E,WAAYx1E,MACxCA,KAAK4T,MAAMlH,IAAI,4BAA6B1M,KAAKu1E,WACjDhpD,EAAUvsB,KAAK4T,MAAMK,OAAO,WAAY,SAAU7L,GAChD,MAAO,UAASqtE,GACd,GAAIA,EAEF,MADArtE,GAAMotE,aACCjpD,MAGVvsB,OAyBL,MA9CA6C,GAAOuyE,EAAyBhlE,GAEhCglE,EAAwBh1D,SAAW,SAAU,aAAc,UAAW,aAAc,gBAsBpFg1D,EAAwBxlE,UAAU4lE,WAAa,WAC7C,MAAOx1E,MAAKoa,GAAGpa,KAAK4T,MAAM6hE,UAAUC,WAAW11E,KAAK4T,MAAM2G,UAAWva,KAAK4T,MAAMxJ,MAAMjH,KAAK,SAAUiF,GACnG,MAAO,UAASkpC,GAGd,MAFAlpC,GAAMwL,MAAM09B,OAASA,EACrBlpC,EAAMwL,MAAM+hE,cAAgBt1E,EAAEu1E,MAAMtkC,EAAQ,SAASoU,MAC9CpU,IAERtxC,QAGLo1E,EAAwBxlE,UAAU2lE,UAAY,SAAS1nE,EAAKgoE,EAAW1c,GACrE,GAAIn0B,GAAGsM,CAQP,OAPAA,GAAStxC,KAAK4T,MAAM09B,OACpBtM,EAAIsM,EAAOvqC,QAAQ8uE,GACnBvkC,EAAO25B,OAAOjmC,EAAG,GACjBsM,EAAO25B,OAAO9R,EAAW,EAAG0c,GAC5Bx1E,EAAEsJ,KAAK2nC,EAAQ,SAASviC,EAAO+J,GAC7B,MAAO/J,GAAM22C,MAAQ5sC,IAEhB9Y,KAAKkuB,KAAKg9C,QAAQ55B,IAGpB8jC,GAENr1E,EAAM6Q,YAETjR,EAAOwE,WAAW,0BAA2BixE,GAE7CC,EAAyB,SAASvpE,EAAMqa,EAAO9d,EAAUpC,EAAW+mB,EAAgBhqB,EAAY+I,EAAYzI,GAC1G,GAAI+f,GAAMyyD,EAAiBC,CAqN3B,OApNAD,GAAkB,SAASxyD,EAAQC,EAAKC,GACtC,GAAI0rC,GAAO0J,EAAQC,EAAgBC,EAAgB1J,EAAQ2J,CA6B3D,OA5BAD,GAAiB,KACjBD,EAAiB,KACjBD,EAAS,KACTG,EAAOx1C,EAAI9G,KAAK,aAChByyC,EAAQG,SAAS0J,EAAK,KACpBmT,UAAW,WACX5c,gBAAgB,EAChBvP,MAAM,EACNosB,gBAAiBpT,EAAK,GACtBtJ,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,yBAGtBmE,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIymD,GAAW0c,CAIf,OAHAjd,GAAS7rB,EAAEr6B,GACXmjE,EAAYjd,EAAOhlD,QAAQ7E,MAC3BoqD,EAAYP,EAAO9/C,QACZwK,EAAOoD,WAAW,4BAA6BmvD,EAAW1c,KAEnE/J,EAASa,WAAW/vD,QAClBgwD,OAAQ,GACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvBhtC,EAAO5W,IAAI,WAAY,WAE5B,MADA6W,GAAIkB,MACGyqC,EAAM9mB,aAGjB2tC,EAAY,SAASzyD,EAAQC,EAAKC,GAChC,GAAIiU,GAAOyhC,EAAQ8c,EAAgBC,EAAoBC,EAA4BC,EAASC,EAAcC,EAAWC,CAuIrH,OAtIA7+C,GAAQlU,EAAIpf,aACZmyE,EAAY9yD,EAAOpZ,KACnB+rE,EAAU3yD,EAAO+yD,QACjBN,EAAqB,WACnB,MAAO3yD,GAAO9K,UACZjE,KAAQ,GACRsrD,WAAa,EACb9nB,aAAe,IAGnBm+B,EAA6B,WAC3B,MAAO5yD,GAAOkzD,kBAAoBxzE,EAAWuF,QAAQ,wBAA2B4tE,EAAQ78B,cAAiB,gBAE3G28B,IACAC,IACAnqE,EAAWW,IAAI,sBAAuB,WACpC,MAAO4W,GAAOpV,WAAWgoE,KAE3BF,EAAiB,SAAU5tE,GACzB,MAAO,UAAS6nB,GACd,GAAIwmD,EAMJ,IALa,MAATxmD,IACFA,GAAQ,GAEVwmD,EAAQlzD,EAAI9G,KAAK,eACjBswB,EAAExH,SAAS+H,MAAM2P,UAAUw5B,EAAMlkC,SAASC,IAAMikC,EAAMhkC,UAClDxiB,EACF,MAAO1M,GAAI9G,KAAK,4BAA4B6qB,QAAQrX,UAGvDjwB,MACHq2E,EAAY,SAASryD,GACnB,GAAIP,GAAMizD,EAAQtzE,EAAS2L,CAG3B,IAFA2nE,EAAS1yD,EAAOqoD,QAAQ,QACxB5oD,EAAOizD,EAAO9qE,YACT6X,EAAKW,WAcV,MAXArV,GAAQ2nE,EAAO9iE,QAAQ7E,MACvB3L,EAAU+iB,EAAMyI,KAAK7f,GACrB3L,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAIuuE,EAIJ,OAHAA,GAAM3yD,EAAOqoD,QAAQ,mBACrBsK,EAAI7lE,SAAS,UACb6lE,EAAI7kC,SAAS,kBAAkBzlB,YAAY,UACpC/oB,EAAeusE,iBAEvB7vE,OACIoD,EAAQD,KAAK,KAAM,SAAS4E,GACjC,MAAO0b,GAAKsB,UAAUhd,MAG1BquE,EAAe,SAASpyD,GACtB,GAAIP,GAAMizD,EAAQtzE,CAGlB,IAFAszE,EAAS1yD,EAAOqoD,QAAQ,QACxB5oD,EAAOizD,EAAO9qE,YACT6X,EAAKW,WAcV,MAXAd,GAAO9K,SAASsB,QAAUwJ,EAAOxJ,QAAQF,GACzC0J,EAAO9K,SAASktC,MAAQpiC,EAAOqyD,cAAgBryD,EAAOqyD,cAAgB,EAAI,EAC1EvyE,EAAU+iB,EAAMsO,OAAO6hD,EAAWhzD,EAAO9K,UACzCpV,EAAQD,KAAK,SAAUiF,GACrB,MAAO,UAASL,GAId,MAHAic,GAAOlT,SAAS,UAChBwS,EAAOguB,OAAO/pC,KAAKQ,GACnBub,EAAOqyD,cAAgB5tE,EAAK29C,MACrBuwB,MAERj2E,OACIoD,EAAQD,KAAK,KAAM,SAAS4E,GACjC,MAAO0b,GAAKsB,UAAUhd,MAG1BmxD,EAAS,SAASl1C,GAChB,GAAI0yD,GAAQC,EAAK5nE,CAIjB,OAHA4nE,GAAM3yD,EAAOqoD,QAAQ,mBACrBqK,EAAS1yD,EAAOqoD,QAAQ,QACxBt9D,EAAQ2nE,EAAO9iE,QAAQ7E,MAChBuU,EAAO/N,OAAO,WAGnB,MAFAohE,GAAI7lE,SAAS,UACb/B,EAAMg7B,SACC4sC,EAAI7kC,SAAS,kBAAkBzlB,YAAY,aAGtD9I,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAGxC,MAFAA,GAAME,iBACN8U,EAAI9G,KAAK,cAAc4P,YAAY,UAC5B2pD,GAAe,KAExBzyD,EAAIgB,GAAG,QAAS,WAAYrT,EAAS,IAAM,SAAS3C,GAClD,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAAST,EAAI9G,KAAK,cACX25D,EAAapyD,MAEtBT,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GAGtC,MAFAA,GAAME,iBACN8U,EAAI9G,KAAK,cAAc3L,SAAS,UACzBmlE,MAET1yD,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GACtC,GAAIqoE,GAAYD,EAAK3yD,CAOrB,OANAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B0yD,EAAM3yD,EAAOqoD,QAAQ,mBACrBsK,EAAI7lE,SAAS,UACb8lE,EAAaD,EAAI7kC,SAAS,YAC1B8kC,EAAWvqD,YAAY,UAChBuqD,EAAWn6D,KAAK,iBAAiB6qB,QAAQrX,QAAQkG,WAE1D5S,EAAIgB,GAAG,QAAS,mBAAoB,SAAShW,GAC3C,GAAIyV,EACJ,OAAsB,MAAlBzV,EAAMunB,SACR9R,EAAST,EAAI9G,KAAK,cACX25D,EAAapyD,IACO,KAAlBzV,EAAMunB,SACfvS,EAAI9G,KAAK,cAAc3L,SAAS,UACzBmlE,KAFF,SAKT1yD,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAChC,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBoyD,EAAUryD,KAEnBT,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBi1C,EAAOl1C,KAETT,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAC/C,GAAI+9B,GAASoqC,EAAQ3rC,EAAU/mB,EAAQnP,EAAMvQ,EAAOyK,CAYpD,OAXAR,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOqoD,QAAQ,QACxBt9D,EAAQ2nE,EAAO9iE,QAAQ7E,MACvBu9B,KACAjsC,EAAEsJ,KAAK2Z,EAAOguB,OAAQ,SAASulC,GAC7B,GAAI9nE,EAAM6K,KAAOi9D,EAAOj9D,GACtB,MAAO0yB,GAAQuqC,EAAOj9D,IAAMi9D,EAAOtiE,OAGvCw2B,EAAWh8B,EAAMwF,KACc,IAA3BlU,EAAEmT,KAAK84B,GAASl/B,OACX/E,EAASxB,MAAM7D,EAAWuF,QAAQ,2CAE3CjE,EAAQtB,EAAWuF,QAAQ,0CAC3BsM,EAAO7R,EAAWuF,QAAQ,oCACnBF,EAASgkC,UAAU/nC,EAAOymC,EAAUuB,EAASz3B,GAAM1R,KAAK,SAASmD,GACtE,GAAIod,GAASozD,CASb,OARAA,GAAW,WACT,MAAOr/C,GAAM+9C,aAAa,WAAW,WACnC,MAAOlvE,GAASquB,YAGpBjR,EAAU,WACR,MAAOrb,GAASG,OAAO,UAElB2d,EAAMvE,OAAO7S,GAClBgoE,OAAUzwE,EAAS+X,WAClBlb,KAAK2zE,EAAUpzD,SAIxBL,EAAO,SAASC,EAAQC,EAAKC,GAG3B,MAFAsyD,GAAgBxyD,EAAQC,EAAKC,GAC7BuyD,EAAUzyD,EAAQC,EAAKC,GAChBF,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,mBAAoB,OAAQ,UAAW,aAAc,cAAe,iBAAkB,aAAc,aAAc,mBAAoBkyD,IAEvJN,EAA0B,WACxB,GAAI1xD,EA4DJ,OA3DAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ4C,GACnC,GAAIqR,EAsDJ,OArDAnU,GAAO0zD,UAAY3lE,IACnBiS,EAAO2zD,YAAa,EAChBzzD,EAAO0zD,eACT5zD,EAAO2zD,YAAa,GAEtBx/C,EAAQlU,EAAIpf,aACZmf,EAAOrP,OAAOuP,EAAO+S,QAAS,SAAStuB,GACrC,MAAOqb,GAAO1G,MAAQ3U,EAAQ2U,QAEhC2G,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GACzC,GAAI++B,GAAMtpB,CAOV,OANAzV,GAAME,iBACNF,EAAMwhC,kBACN/rB,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B8oB,EAAE,iBAAiBnc,OACnB5M,EAAO8tB,SAAS,iBAAiBphB,OACjC4c,EAAO1qC,QAAQqF,QAAQ,QAChBqlC,EAAK/oB,GAAG,QAAS,SAAUnc,GAChC,MAAO,UAASmG,GACd,GAAqE,IAAjE3L,QAAQqF,QAAQsG,EAAMyV,QAAQzU,OAAO,iBAAiBnC,OAExD,MADAmW,GAAI9G,KAAK,iBAAiBmU,OACnB0c,EAAKlV,OAAO,WAGtBp4B,SAELujB,EAAIgB,GAAG,QAAS,uBAAwB,SAAShW,GAC/C,GAAIyV,EAMJ,OALAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BX,EAAO/N,OAAO,WACZ,MAAO6Q,GAAO2P,YAAYnZ,MAAQoH,EAAOjc,KAAK,WAEzCwb,EAAI9G,KAAK,iBAAiBmU,SAEnCrN,EAAIgB,GAAG,QAAS,gCAAiC,SAAShW,GAKxD,MAJAA,GAAME,iBACN6U,EAAO/N,OAAO,WACZ,MAAO6Q,GAAO2P,YAAYnZ,MAAQ0G,EAAO1G,QAEpC2G,EAAI9G,KAAK,iBAAiBmU,SAEnCrN,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAEhC,MADAA,GAAMwhC,kBACgB,KAAlBxhC,EAAMunB,SACRxS,EAAO/N,OAAO,WACZ,MAAO6Q,GAAO2P,YAAYnZ,MAAQ0G,EAAO1G,QAEpC2G,EAAI9G,KAAK,iBAAiBmU,QACN,KAAlBriB,EAAMunB,QACRvS,EAAI9G,KAAK,iBAAiBmU,OAD5B,SAIFtN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,EACNmT,QAAS,YAIb72B,EAAOwjB,UAAU,mBAAoB4xD,GAErC/mC,EAAY,OAEZF,EAAiB,YAEjBC,EAAgB,WAEhBF,EAAY,OAEZK,EAAW,MAEXD,IAEIv+B,IAAKs+B,EACLz5B,KAAM,wCAEN7E,IAAKo+B,EACLv5B,KAAM,yCAEN7E,IAAKq+B,EACLx5B,KAAM,4CAEN7E,IAAKm+B,EACLt5B,KAAM,wCAEN7E,IAAKw+B,EACL35B,KAAM,uCAIVygE,EAAoC,SAAU5kE,GAK5C,QAAS4kE,GAAkCphE,EAAOyM,EAAW6N,EAAM9T,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAS90B,EAAgB4S,EAAWmiB,GAC9H,GAAI38B,GAAa68B,EAAa98B,CAC9BtE,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiB49B,EACtBlhC,KAAKm3E,qBAAuBpnE,EAAK/P,KAAKm3E,qBAAsBn3E,MAC5DA,KAAKo3E,sBAAwBrnE,EAAK/P,KAAKo3E,sBAAuBp3E,MAC9DA,KAAKq3E,oBAAsBtnE,EAAK/P,KAAKq3E,oBAAqBr3E,MAC1DA,KAAKs3E,sBAAwBvnE,EAAK/P,KAAKs3E,sBAAuBt3E,MAC9DA,KAAKu3E,qBAAuBxnE,EAAK/P,KAAKu3E,qBAAsBv3E,MAC5DA,KAAK4T,MAAMq6B,aAAeA,EAC1BjuC,KAAK4T,MAAMkG,QAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjDzY,KAAK4T,MAAM2G,UAAYva,KAAK4T,MAAMkG,QAAQF,GAC1CwnB,EAAcphC,KAAK+e,UAAUxW,QAAQvI,KAAK4T,MAAMwtB,aAChD98B,EAAQtE,KAAK+e,UAAUxW,QAAQ,sCAC7B64B,YAAeA,EACfE,YAAethC,KAAK4T,MAAMkG,QAAQvF,OAEpChQ,EAAcvE,KAAK4T,MAAMkG,QAAQvV,YACjCvE,KAAKmM,eAAewC,OAAOrK,EAAOC,GAClCvE,KAAK4T,MAAMlU,KAAO,SAAU0I,GAC1B,MAAO,UAASgC,GAEd,MADAhC,GAAMwL,MAAMxJ,KAAOA,EACZhC,EAAMmvE,yBAEdv3E,MAsCL,MA3EA6C,GAAOmyE,EAAmC5kE,GAE1C4kE,EAAkC50D,SAAW,SAAU,aAAc,UAAW,eAAgB,eAAgB,KAAM,cAAe,aAAc,mBAAoB,aAAc,oBAsCrL40D,EAAkCplE,UAAU2nE,qBAAuB,WACjE,MAAOv3E,MAAKoa,GAAGi0B,iBAAiBruC,KAAK4T,MAAMxJ,MAAM6R,KAAKjc,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GACzF,MAAO,UAASimC,GACd,GAAI7qC,EAGJ,OAFA4E,GAAMwL,MAAMy6B,iBAAmBA,EAC/BjmC,EAAMwL,MAAM4jE,SAAyD,OAA7Ch0E,EAAMnD,EAAEu1E,MAAMvnC,EAAkB,UAAoB7qC,EAAIkiD,MAAQ,OACjFrX,IAERruC,QAGLg1E,EAAkCplE,UAAU0nE,sBAAwB,SAASG,GAC3E,MAAOz3E,MAAKkuB,KAAKuG,OAAO,qBAAuBz0B,KAAK4T,MAAMxJ,KAAMqtE,IAGlEzC,EAAkCplE,UAAUynE,oBAAsB,SAASK,GACzE,MAAO13E,MAAKkuB,KAAKU,KAAK8oD,IAGxB1C,EAAkCplE,UAAUwnE,sBAAwB,SAASM,GAC3E,MAAO13E,MAAKkuB,KAAKtM,OAAO81D,IAG1B1C,EAAkCplE,UAAUunE,qBAAuB,SAASO,EAAWC,GACrF,GAAItpC,GAAkBrJ,CAQtB,OAPAqJ,GAAmBruC,KAAK4T,MAAMy6B,iBAC9BrJ,EAAIqJ,EAAiBtnC,QAAQ2wE,GAC7BrpC,EAAiB48B,OAAOjmC,EAAG,GAC3BqJ,EAAiB48B,OAAO0M,EAAU,EAAGD,GACrCr3E,EAAEsJ,KAAK0kC,EAAkB,SAASzhC,EAAKgrE,GACrC,MAAOhrE,GAAI84C,MAAQkyB,IAEd53E,KAAKkuB,KAAKg9C,QAAQ78B,IAGpB2mC,GAENnjE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,oCAAqC6wE,GAEvDC,EAAmC,SAASnpE,EAAMzD,EAAU2kB,EAAgBhqB,GAC1E,GAAIqgB,EAoNJ,OAnNAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOogD,EAAcC,EAAcrjD,EAAQ2iD,EAAuBloB,EAAO6oB,EAAeC,EAAkBC,EAAgBC,EAAcC,EAAcC,EAAgCC,EAAeC,EAAkBC,EAAgBC,EAAcC,EAAYnuD,CA0MrQ,OAzMAmN,GAAQlU,EAAIpf,aACZmf,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEbg0D,EAAal1D,EAAI9G,KAAK,gBACtByyC,EAAQG,SAASopB,EAAW,KAC1BvM,UAAW,WACX5c,gBAAgB,EAChBvP,MAAM,EACNosB,gBAAiBsM,EAAW,GAC5BhpB,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,yBAGtBmE,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIgmE,GAAU9f,EAAQO,CAItB,OAHAP,GAAS7rB,EAAEr6B,GACXgmE,EAAW9f,EAAOhlD,QAAQC,KAC1BslD,EAAYP,EAAO9/C,QACZ2e,EAAM0/C,qBAAqBuB,EAAUvf,KAE9Cof,EAAiB,WAEf,MADAh1D,GAAI9G,KAAK,wBAAwB4P,YAAY,UACtC9I,EAAI9G,KAAK,sCAAsC6qB,QAAQrX,SAEhEgoD,EAAiB,WACf,MAAO10D,GAAI9G,KAAK,wBAAwB3L,SAAS,WAEnDunE,EAAgB,WACd,MAAO90D,GAAI9G,KAAK,+BAA+B4P,YAAY,WAE7D0rD,EAAgB,WACd,MAAOx0D,GAAI9G,KAAK,+BAA+B3L,SAAS,WAE1DwnE,EAAmB,WACjB,MAAO/0D,GAAI9G,KAAK,sCAAsC4P,YAAY,WAEpE2rD,EAAmB,WACjB,MAAOz0D,GAAI9G,KAAK,sCAAsC3L,SAAS,WAEjEqnE,EAAe,WACb,MAAO70D,GAAOq1D,YAEhBlkD,EAAS,SAASiiD,GAChB,GAAI7iE,GAAM4P,EAAMC,EAASozD,CAEzB,IADArzD,EAAOizD,EAAO9qE,YACT6X,EAAKW,WAmBV,MAhBA0yD,GAAW,SAAU1uE,GACnB,MAAO,YAIL,MAHAqvB,GAAM8/C,uBACNU,IACAE,IACO9vE,EAASG,OAAO,aAExBxI,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,UAASL,GACd,MAAO0b,GAAKsB,UAAUhd,KAEvB/H,MACH6T,EAAOyP,EAAOq1D,QACd9kE,EAAKiG,QAAUwJ,EAAO/I,UACtB1G,EAAK6xC,MAAQpiC,EAAOk0D,SAAWl0D,EAAOk0D,SAAW,EAAI,EAC9C//C,EAAM6/C,sBAAsBzjE,GAAM1Q,KAAK2zE,EAAUpzD,IAE1Dm0D,EAAe,WAEb,MADAI,KACOE,KAET70D,EAAOrP,OAAO,mBAAoB,SAASo6B,GACzC,GAAKA,EAGL,MAAgC,KAA5BA,EAAiBjhC,QACnB4qE,IACAD,IACOQ,MAEPN,IACAI,IACOC,OAGX/0D,EAAIgB,GAAG,QAAS,8BAA+B,SAAShW,GAEtD,MADAA,GAAME,iBACC8pE,MAETh1D,EAAIgB,GAAG,QAAS,iCAAkCrT,EAAS,IAAM,SAAS3C,GACxE,GAAImoE,GAAQ1yD,CAIZ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjB7d,EAAOiiD,MAEhBnzD,EAAIgB,GAAG,QAAS,qCAAsC,SAAShW,GAE7D,MADAA,GAAME,iBACCopE,MAETt0D,EAAIgB,GAAG,QAAS,6BAA8B,SAAShW,GACrD,GAAImoE,GAAQ1yD,CACZ,OAAsB,MAAlBzV,EAAMunB,SACR9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjB7d,EAAOiiD,IACa,KAAlBnoE,EAAMunB,QACR+hD,IADF,SAITW,EAAe,SAAS9B,GAGtB,MAFAA,GAAOj6D,KAAK,yBAAyB3L,SAAS,UAC9C4lE,EAAOj6D,KAAK,yBAAyB4P,YAAY,UAC1CqqD,EAAOj6D,KAAK,uCAAuC6qB,QAAQrX,QAAQkG,UAE5E+hD,EAAe,SAASxB,GAEtB,MADAA,GAAOj6D,KAAK,yBAAyB3L,SAAS,UACvC4lE,EAAOj6D,KAAK,yBAAyB4P,YAAY,WAE1D+rD,EAAiC,SAAS1B,GACxC,MAAOpzD,GAAO/N,OAAO,WACnB,MAAOmhE,GAAO9iE,QAAQC,KAAKk2B,YAG/Bzf,EAAS,SAASosD,GAChB,GAAI7iE,GAAM4P,EAAMC,EAASozD,CAEzB,IADArzD,EAAOizD,EAAO9qE,YACT6X,EAAKW,WAgBV,MAbA0yD,GAAW,SAAU1uE,GACnB,MAAO;AAGL,MAFAqvB,GAAM8/C,uBACNW,EAAaxB,GACNruE,EAASG,OAAO,aAExBxI,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,UAASL,GACd,MAAO0b,GAAKsB,UAAUhd,KAEvB/H,MACH6T,EAAO6iE,EAAO9iE,QAAQC,KACf4jB,EAAM4/C,oBAAoBxjE,GAAM1Q,KAAK2zE,EAAUpzD,IAExDo0D,EAAe,SAASpB,GAEtB,MADAwB,GAAaxB,GACN0B,EAA+B1B,IAExCnzD,EAAIgB,GAAG,QAAS,+BAAgC,SAAShW,GACvD,GAAImoE,GAAQ1yD,CAIZ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjBkmC,EAAa9B,KAEtBnzD,EAAIgB,GAAG,QAAS,iCAAkCrT,EAAS,IAAM,SAAS3C,GACxE,GAAImoE,GAAQ1yD,CAIZ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjBhoB,EAAOosD,MAEhBnzD,EAAIgB,GAAG,QAAS,sCAAuC,SAAShW,GAC9D,GAAImoE,GAAQ1yD,CAIZ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjBwlC,EAAapB,KAEtBnzD,EAAIgB,GAAG,QAAS,8BAA+B,SAAShW,GACtD,GAAImoE,GAAQ1yD,CACZ,OAAsB,MAAlBzV,EAAMunB,SACR9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjBhoB,EAAOosD,IACa,KAAlBnoE,EAAMunB,SACf9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjBwlC,EAAapB,IAHf,SAMTU,EAAwB,SAASV,GAC/B,GAAI7iE,GAAMmR,EAASnQ,EAAMvQ,CAKzB,OAJAuP,GAAO6iE,EAAO9iE,QAAQC,KACtBmR,EAAUnR,EAAKU,KACfjQ,EAAQtB,EAAWuF,QAAQ,mCAC3BsM,EAAO7R,EAAWuF,QAAQ,2CACnBF,EAASqiC,IAAIpmC,EAAOuQ,EAAMmQ,GAAS7hB,KAAK,SAASmD,GACtD,GAAIod,GAASozD,CASb,OARAA,GAAW,WACT,MAAOr/C,GAAM8/C,uBAAuB,WAAW,WAC7C,MAAOjxE,GAASquB,YAGpBjR,EAAU,WACR,MAAOrb,GAASG,OAAO,QAAS,KAAM,oCAAsCwc,EAAU,OAEjFyS,EAAM2/C,sBAAsBvjE,GAAM1Q,KAAK2zE,EAAUpzD,MAGrDH,EAAIgB,GAAG,QAAS,iCAAkCrT,EAAS,IAAM,SAAS3C,GAC/E,GAAImoE,GAAQ1yD,CAIZ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOsuB,QAAQ,QACjB8kC,EAAsBV,QAI/BrzD,KAAMA,IAIV1jB,EAAOwjB,UAAU,6BAA8B,OAAQ,aAAc,iBAAkB,aAAc8xD,IAErGC,EAAwB,SAAU9kE,GAKhC,QAAS8kE,GAAsBthE,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIkG,EAAO4gB,GACzElhC,KAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAKsgB,MAAQA,EACbtgB,KAAKsD,eAAiB49B,EACtBlhC,KAAK44E,YAAc7oE,EAAK/P,KAAK44E,YAAa54E,MAC1CA,KAAK64E,iBAAmB9oE,EAAK/P,KAAK64E,iBAAkB74E,MACpDA,KAAK84E,kBAAoB/oE,EAAK/P,KAAK84E,kBAAmB94E,MACtDA,KAAK+4E,qBAAuBhpE,EAAK/P,KAAK+4E,qBAAsB/4E,MAC5DA,KAAKg5E,gBAAkBjpE,EAAK/P,KAAKg5E,gBAAiBh5E,MAClDA,KAAK23C,UAAY5nC,EAAK/P,KAAK23C,UAAW33C,MACtCA,KAAKi5E,QAAUlpE,EAAK/P,KAAKi5E,QAASj5E,MAClCA,KAAKk5E,UAAYnpE,EAAK/P,KAAKk5E,UAAWl5E,MACtCA,KAAKm5E,kBAAoBppE,EAAK/P,KAAKm5E,kBAAmBn5E,MACtDA,KAAKo5E,SAAWrpE,EAAK/P,KAAKo5E,SAAUp5E,MACpCA,KAAKuiC,SAAU,EACfviC,KAAKo5E,WAmGP,MA1HAv2E,GAAOqyE,EAAuB9kE,GAE9B8kE,EAAsB90D,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,WAAY,oBAwB9G80D,EAAsBtlE,UAAUwpE,SAAW,WACzC,GAAIt/D,EAEJ,OADAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OAC/BzY,KAAKoa,GAAGC,SAAS4kC,WAAWnlC,EAAQF,IAAIzW,KAAK,SAAUiF,GAC5D,MAAO,UAASgP,GAQd,MAPAhP,GAAMwL,MAAMylE,eAAiBh5E,EAAEC,IAAI8W,EAAK+J,WAAY,SAASvE,EAAOrI,GAClE,MAAOnM,GAAMkY,MAAMoB,WAAW,OAC5BnN,KAAMA,EACNqI,MAAOA,MAGXxU,EAAM+wE,oBACC/wE,EAAMm6B,SAAU,IAExBviC,QAGLk1E,EAAsBtlE,UAAUupE,kBAAoB,WAIlD,MAHAn5E,MAAK4T,MAAM6jC,YAAcp3C,EAAEqZ,OAAO1Z,KAAK4T,MAAMylE,eAAgB,SAAS78D,GACpE,MAAOA,GAAGjI,KAAKE,gBAEVzU,KAAK4T,MAAM6jC,YAAcp3C,EAAEqN,OAAO1N,KAAK4T,MAAM6jC,YAAa,SAAUrvC,GACzE,MAAO,UAASoW,GACd,MAAOA,GAAIjK,KAAKxN,QAAQqB,EAAMwL,MAAM0lE,WAAW/kE,aAEhDvU,QAGLk1E,EAAsBtlE,UAAUspE,UAAY,SAAS16D,EAAK5B,GACxD,MAAO5c,MAAKoa,GAAGC,SAAS6+D,UAAUl5E,KAAK4T,MAAM2G,UAAWiE,EAAK5B,IAG/Ds4D,EAAsBtlE,UAAUqpE,QAAU,SAASM,EAAUC,EAAQ58D,GAInE,MAHI28D,KAAaC,IACfA,EAAS,MAEJx5E,KAAKoa,GAAGC,SAAS4+D,QAAQj5E,KAAK4T,MAAM2G,UAAWg/D,EAAUC,EAAQ58D,IAG1Es4D,EAAsBtlE,UAAU+nC,UAAY,SAASn5B,GAEnD,MADAxe,MAAK4T,MAAM6lE,eAAgB,EACpBz5E,KAAKoa,GAAGC,SAASs9B,UAAU33C,KAAK4T,MAAM2G,UAAWiE,GAAK,WAAW,SAAUpW,GAChF,MAAO,YACL,MAAOA,GAAMwL,MAAM6lE,eAAgB,IAEpCz5E,QAGLk1E,EAAsBtlE,UAAUopE,gBAAkB,SAASx6D,GACzD,MAAOxe,MAAK4T,MAAM8lE,WAAWC,MAAQn7D,EAAIjK,MAG3C2gE,EAAsBtlE,UAAUmpE,qBAAuB,SAASv6D,GAC9D,GAAI1F,EACJ,IAAI0F,EAAIjK,OAASvU,KAAK4T,MAAM8lE,WAAWC,MAErC,MADA7gE,GAAQ9Y,KAAK4T,MAAM8lE,WAAWE,SAAS7yE,QAAQyX,EAAIjK,MAC/CuE,OACK9Y,KAAK4T,MAAM8lE,WAAWE,SAASryE,KAAKiX,EAAIjK,MAExCvU,KAAK4T,MAAM8lE,WAAWE,SAAS3O,OAAOnyD,EAAO,IAK1Do8D,EAAsBtlE,UAAUkpE,kBAAoB,WAClD,GAAIc,GAAUD,CAId,OAHAA,GAAQ35E,KAAK4T,MAAM8lE,WAAWC,MAC9BC,EAAW55E,KAAK4T,MAAM8lE,WAAWE,SACjC55E,KAAK4T,MAAMimE,eAAgB,EACpB75E,KAAKoa,GAAGC,SAASy/D,QAAQ95E,KAAK4T,MAAM2G,UAAWo/D,EAAOC,GAAUz2E,KAAK,SAAUiF,GACpF,MAAO,YAEL,MADAA,GAAMywE,mBACCzwE,EAAMgxE,aAEdp5E,OAAO,WAAW,SAAUoI,GAC7B,MAAO,YACL,MAAOA,GAAMwL,MAAMimE,eAAgB,IAEpC75E,QAGLk1E,EAAsBtlE,UAAUipE,iBAAmB,WAEjD,MADA74E,MAAK4T,MAAM8lE,WAAWC,MAAQ,KACvB35E,KAAK4T,MAAM8lE,WAAWE,aAG/B1E,EAAsBtlE,UAAUgpE,YAAc,SAASp6D,GACrD,GAAoC,OAAhCxe,KAAK4T,MAAM8lE,WAAWC,MAAgB,CACxC,GAAIn7D,EAAIjK,OAASvU,KAAK4T,MAAM8lE,WAAWC,MACrC,MAAO,gBACF,IAAI35E,KAAK4T,MAAM8lE,WAAWE,SAAS7yE,QAAQyX,EAAIjK,WACpD,MAAO,qBAKN2gE,GAENn1E,EAAM6Q,YAETjR,EAAOwE,WAAW,wBAAyB+wE,GAE3CC,EAAuB,SAASrpE,EAAMqa,EAAO9d,EAAUpC,EAAW+mB,EAAgBhqB,EAAY+I,GAC5F,GAAIsX,EAuOJ,OAtOAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOrU,EAAS81C,EAAQ8c,EAAgB+D,EAAsB9D,EAAoB+D,EAAsB9D,EAA4BC,EAASC,EAAcC,EAAWC,CAgO1K,OA/NAlzD,GAAU2pB,EAAE7sC,QACZu3B,EAAQlU,EAAIpf,aACZmyE,EAAY9yD,EAAOpZ,KACnB+rE,EAAU3yD,EAAO+yD,QACjBN,EAAqB,WACnB,MAAO3yD,GAAO9K,UACZgG,IAAO,GACP5B,MAAS,KAGbo9D,EAAuB,WACrB,MAAO12D,GAAOg2D,YACZ/kE,KAAQ,KAGZwlE,EAAuB,WACrB,MAAOz2D,GAAOo2D,YACZC,MAAS,KACTC,cAGJ1D,EAA6B,WAC3B,MAAO5yD,GAAOkzD,kBAAoBxzE,EAAWuF,QAAQ,yCAEvD0tE,IACA+D,IACAD,IACA7D,IACAnqE,EAAWW,IAAI,sBAAuB,WACpC,MAAO4W,GAAOpV,WAAWgoE,KAE3BF,EAAiB,SAAU5tE,GACzB,MAAO,UAAS6nB,GACd,GAAIwmD,EAMJ,IALa,MAATxmD,IACFA,GAAQ,GAEVwmD,EAAQlzD,EAAI9G,KAAK,eACjBswB,EAAExH,SAAS+H,MAAM2P,UAAUw5B,EAAMlkC,SAASC,IAAMikC,EAAMhkC,UAClDxiB,EACF,MAAO1M,GAAI9G,KAAK,4BAA4B6qB,QAAQrX,UAGvDjwB,MACHq2E,EAAY,SAAUjuE,GACpB,MAAO,UAAS4b,GACd,GAAIP,GAAMizD,EAAQuD,EAAa72E,EAASob,CAGxC,IAFAk4D,EAAS1yD,EAAOqoD,QAAQ,QACxB5oD,EAAOizD,EAAO9qE,YACT6X,EAAKW,WAiBV,MAdA5F,GAAMk4D,EAAO9iE,QAAQ4K,IACrBy7D,EAAcz7D,EAAI7F,QAClBshE,EAAYlwC,SACZzmB,EAAO42D,aAAc,EACrB92E,EAAUq0B,EAAMwhD,QAAQgB,EAAY1lE,KAAMiK,EAAIjK,KAAMiK,EAAI5B,OACxDxZ,EAAQD,KAAK,WACX,MAAOs0B,GAAM2hD,WAAWj2E,KAAK,WAC3B,GAAIwzE,EAIJ,OAHAA,GAAM3yD,EAAOqoD,QAAQ,mBACrBsK,EAAI7lE,SAAS,UACbwS,EAAO42D,aAAc,EACdvD,EAAI7kC,SAAS,kBAAkBzlB,YAAY,cAG/CjpB,EAAQD,KAAK,KAAM,SAASmD,GAEjC,MADAgd,GAAO42D,aAAc,EACdz2D,EAAKsB,UAAUze,EAASyB,UAGlC/H,MACHo2E,EAAe,SAAUhuE,GACvB,MAAO,UAAS4b,GACd,GAAIP,GAAMizD,EAAQtzE,CAIlB,IAHAszE,EAAS1yD,EAAOqoD,QAAQ,QACxBqK,EAAS1yD,EACTP,EAAOizD,EAAO9qE,YACT6X,EAAKW,WAYV,MATAd,GAAO62D,eAAgB,EACvB/2E,EAAUq0B,EAAMyhD,UAAU51D,EAAO9K,SAASgG,IAAK8E,EAAO9K,SAASoE,OAC/DxZ,EAAQD,KAAK,SAAS4E,GACpB,MAAO0vB,GAAM2hD,WAAWj2E,KAAK,WAG3B,MAFAmgB,GAAO62D,eAAgB,EACvBn2D,EAAOlT,SAAS,UACTmlE,QAGJ7yE,EAAQD,KAAK,KAAM,SAASmD,GAEjC,MADAgd,GAAO62D,eAAgB,EAChB12D,EAAKsB,UAAUze,EAASyB,UAGlC/H,MACHk5D,EAAS,SAASl1C,GAChB,GAAI0yD,GAAQC,EAAKn4D,CAIjB,OAHAm4D,GAAM3yD,EAAOqoD,QAAQ,mBACrBqK,EAAS1yD,EAAOqoD,QAAQ,QACxB7tD,EAAMk4D,EAAO9iE,QAAQ4K,IACd8E,EAAO/N,OAAO,WAGnB,MAFAohE,GAAI7lE,SAAS,UACb0N,EAAIurB,SACG4sC,EAAI7kC,SAAS,kBAAkBzlB,YAAY,aAGtD/I,EAAOrP,OAAO,kBAAmB,SAASqlE,GACxC,MAAO7hD,GAAM0hD,sBAEf/1D,EAAQmB,GAAG,QAAS,SAAShW,GAC3B,GAAsB,KAAlBA,EAAMunB,QACR,MAAOxS,GAAO/N,OAAO,WACnB,MAAOwkE,SAIbx2D,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAExC,MADAA,GAAME,iBACC8U,EAAI9G,KAAK,cAAc4P,YAAY,YAE5C9I,EAAIgB,GAAG,QAAS,WAAYrT,EAAS,IAAM,SAAS3C,GAClD,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAAST,EAAI9G,KAAK,cACX25D,EAAapyD,MAEtBT,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GAGtC,MAFAA,GAAME,iBACN8U,EAAI9G,KAAK,cAAc3L,SAAS,UACzBmlE,MAET1yD,EAAIgB,GAAG,QAAS,YAAa,SAAShW,GACpC,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBX,EAAO/N,OAAO,WACnB,MAAOkiB,GAAMuhD,gBAAgBh1D,EAAOqoD,QAAQ,QAAQz4D,QAAQ4K,SAGhE+E,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GACtC,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBX,EAAO/N,OAAO,WACnB,MAAOkiB,GAAMshD,qBAAqB/0D,EAAOqoD,QAAQ,QAAQz4D,QAAQ4K,SAGrE+E,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAG1C,MAFAA,GAAME,iBACNF,EAAMwhC,kBACCzsB,EAAO/N,OAAO,WACnB,MAAOkiB,GAAMqhD,wBAGjBv1D,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GAGzC,MAFAA,GAAME,iBACNF,EAAMwhC,kBACCzsB,EAAO/N,OAAO,WACnB,MAAOkiB,GAAMohD,uBAGjBt1D,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GACtC,GAAIqoE,GAAYD,EAAK3yD,CAOrB,OANAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/B0yD,EAAM3yD,EAAOqoD,QAAQ,mBACrBsK,EAAI7lE,SAAS,UACb8lE,EAAaD,EAAI7kC,SAAS,YAC1B8kC,EAAWvqD,YAAY,UAChBuqD,EAAWn6D,KAAK,iBAAiB6qB,QAAQrX,QAAQkG,WAE1D5S,EAAIgB,GAAG,QAAS,mBAAoB,SAAShW,GAC3C,GAAIyV,EACJ,OAAsB,MAAlBzV,EAAMunB,SACR9R,EAAST,EAAI9G,KAAK,cACX25D,EAAapyD,IACO,KAAlBzV,EAAMunB,SACfvS,EAAI9G,KAAK,cAAc3L,SAAS,UACzBmlE,KAFF,SAKT1yD,EAAIgB,GAAG,QAAS,qBAAsB,SAAShW,GAC7C,GAAIyV,EAEJ,OADAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eACT,KAAlB1V,EAAMunB,QACDugD,EAAUryD,GACU,KAAlBzV,EAAMunB,QACRojC,EAAOl1C,GADT,SAITT,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAChC,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBoyD,EAAUryD,KAEnBT,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBi1C,EAAOl1C,KAEhBT,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GACtC,GAAImoE,GAAQl4D,EAAKwF,EAAQ1f,CAMzB,OALAiK,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/ByyD,EAAS1yD,EAAOqoD,QAAQ,QACxB7tD,EAAMk4D,EAAO9iE,QAAQ4K,IACrBla,EAAQtB,EAAWuF,QAAQ,wCACpBF,EAAS+tB,YAAY9xB,EAAOka,EAAIjK,MAAMpR,KAAK,SAASmD,GACzD,GAAIod,GAASozD,CASb,OARAA,GAAW,WACT,MAAOr/C,GAAM2hD,WAAW,WAAW,WACjC,MAAO9yE,GAASquB,YAGpBjR,EAAU,WACR,MAAOrb,GAASG,OAAO,UAElBivB,EAAMkgB,UAAUn5B,EAAIjK,MAAMpR,KAAK2zE,EAAUpzD,OAG7CJ,EAAO5W,IAAI,WAAY,WAE5B,MADA6W,GAAIkB,MACGrB,EAAQqB,UAIjBpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,OAAQ,UAAW,aAAc,cAAe,iBAAkB,aAAc,aAAcgyD,KAEhIlxE,KAAKjE,MA2BR,WACE,GAAIo6E,GAAmBC,EAAkBC,EAA0BC,EAAiBC,EAAgBzpE,EAAaC,EAAUE,EAAUW,EAAOlS,EAAQI,EAClJgQ,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,aAChEtN,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,eACb/I,KAAaA,SAAW,SAAS2L,GAAQ,IAAK,GAAIC,GAAI,EAAGC,EAAI5S,KAAKoN,OAAQuF,EAAIC,EAAGD,IAAO,GAAIA,IAAK3S,OAAQA,KAAK2S,KAAOD,EAAM,MAAOC,EAAK,UAEzI5S,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBb,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBH,EAAc/Q,KAAKD,MAAMgR,YAEzBpR,EAASiD,QAAQjD,OAAO,cAExB46E,EAAkB,SAAUnqE,GAK1B,QAASmqE,GAAgB3mE,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAS3gB,EAAOnU,EAAgB4S,EAAW3Y,EAAsB9C,GAClJ,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKsgB,MAAQA,EACbtgB,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiBA,EACtBtD,KAAKy6E,mBAAqB1qE,EAAK/P,KAAKy6E,mBAAoBz6E,MACxDA,KAAK06E,kBAAoB3qE,EAAK/P,KAAK06E,kBAAmB16E,MACtD+Q,EAAY/Q,MACZA,KAAK4T,MAAMwtB,YAAc,yBACzBphC,KAAK4T,MAAMkG,WACX9Z,KAAK4T,MAAM+mE,mBAAoB,EAC/Bv3E,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAKjB,OAJAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,0BAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAqJlD,MA1LA6C,GAAO03E,EAAiBnqE,GAExBmqE,EAAgBn6D,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,aAAc,WAAY,mBAAoB,aAAc,yBAA0B,oBAsCvNm6D,EAAgB3qE,UAAUgyB,YAAc,WACtC,GAAI9nB,EAYJ,OAXAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCqB,EAAU9Z,KAAKsgB,MAAMoB,WAAW,WAAY5H,GACvCA,EAAQo0D,YACXluE,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAM+mE,kBAAoBt6E,EAAE+xC,KAAK/xC,EAAEC,IAAIwZ,EAAQR,MAAO,SAAS64B,GAClE,MAAOA,GAAMyoC,cAER9gE,GAGTygE,EAAgB3qE,UAAUirE,UAAY,WACpC,MAAO76E,MAAKoa,GAAGd,MAAM2C,KAAKjc,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GAC7D,MAAO,UAASkR,GACd,GAAIwhE,EAaJ,OAZAxhE,GAAQA,EAAMhZ,IAAI,SAASqxC,GAEzB,MADAA,GAAKopC,eAAgB,EACdppC,IAETmpC,GACEvmE,KAAQnM,EAAM2W,UAAUxW,QAAQ,6BAChCgxB,YAAenxB,EAAMwL,MAAMkG,QAAQkhE,mBACnCD,eAAiB,GAEnBzhE,EAAM/R,KAAKuzE,GACX1yE,EAAMwL,MAAM0F,MAAQA,EACpBlR,EAAMwL,MAAM+9B,KAAOvpC,EAAMwL,MAAM0F,MAAM,GAC9BA,IAERtZ,QAGLu6E,EAAgB3qE,UAAUyxB,gBAAkB,WAE1C,MADArhC,MAAK4hC,cACE5hC,KAAK66E,aAGdN,EAAgB3qE,UAAUqrE,iBAAmB,WAC3C,MAAOj7E,MAAKsD,eAAeusE,aAAa,SAAUznE,GAChD,MAAO,YACL,MAAOA,GAAMw5B,gBAEd5hC,QAGLu6E,EAAgB3qE,UAAUq4D,QAAU,SAASt2B,GAE3C,MADA3xC,MAAK4T,MAAM+9B,KAAOA,EACX3xC,KAAK4T,MAAM8S,WAAW,eAAgB1mB,KAAK4T,MAAM+9B,OAG1D4oC,EAAgB3qE,UAAU,UAAY,WACpC,GAAI08B,GAAS35B,EAAGqC,EAAKxR,EAAK+oC,EAAaoF,EAAM5G,EAAUzmC,EAAOkoC,CAG9D,KAFAF,KACA9oC,EAAMxD,KAAK4T,MAAM0F,MACZ3G,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrCg/B,EAAOnuC,EAAImP,GACPg/B,EAAK/3B,KAAO5Z,KAAK4T,MAAM+9B,KAAK/3B,KAC9B0yB,EAAQqF,EAAK/3B,IAAM+3B,EAAKp9B,KAG5B,OAA+B,KAA3BlU,EAAEmT,KAAK84B,GAASl/B,OACXpN,KAAKmuC,QAAQtnC,MAAM7G,KAAK+e,UAAUxW,QAAQ,kCAEnDjE,EAAQtE,KAAK+e,UAAUxW,QAAQ,iCAC/BwiC,EAAW/qC,KAAK4T,MAAM+9B,KAAKp9B,KAC3Bg4B,EAAcvsC,KAAK+e,UAAUxW,QAAQ,gCACrCikC,EAAUxsC,KAAK+e,UAAUxW,QAAQ,mCAC1BvI,KAAKmuC,QAAQ9B,UAAU/nC,EAAOymC,EAAUuB,EAASC,EAAaC,GAASrpC,KAAK,SAAUiF,GAC3F,MAAO,UAAS9B,GACd,GAAIod,GAASC,CAUb,OATAA,GAAY,WAEV,MADAvb,GAAM6yE,mBACC7yE,EAAMyyE,YAAY,WAAW,WAClC,MAAOv0E,GAASquB,YAGpBjR,EAAU,WACR,MAAOtb,GAAM+lC,QAAQ3lC,OAAO,UAEvBJ,EAAM8lB,KAAKtM,OAAOxZ,EAAMwL,MAAM+9B,MACnColC,OAAQzwE,EAAS+X,WAChBlb,KAAKwgB,EAAWD,KAEpB1jB,SAGLu6E,EAAgB3qE,UAAU8qE,kBAAoB,WAC5C,GAAIh3D,GAASC,CAab,OAZAA,GAAY,SAAUvb,GACpB,MAAO,YAEL,MADAA,GAAM+lC,QAAQ3lC,OAAO,WACdJ,EAAM6yE,qBAEdj7E,MACH0jB,EAAU,SAAUtb,GAClB,MAAO,YAEL,MADAA,GAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAMwL,MAAM+9B,KAAK5H,WAEzB/pC,MACIA,KAAKkuB,KAAKU,KAAK5uB,KAAK4T,MAAM+9B,MAAMxuC,KAAKwgB,EAAWD,IAGzD62D,EAAgB3qE,UAAU6qE,mBAAqB,WAC7C,GAAIS,GAAYC,EAAcpwC,EAAUzmC,CA0BxC,OAzBA62E,GAAe,SAAU/yE,GACvB,MAAO,UAAS9B,GACd,GAAIod,GAASC,CAWb,OAVAA,GAAY,WAGV,MAFArd,GAASquB,SACTvsB,EAAM+lC,QAAQ3lC,OAAO,WACdJ,EAAM6yE,oBAEfv3D,EAAU,WAGR,MAFApd,GAASquB,SACTvsB,EAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAMwL,MAAM+9B,KAAK5H,UAEnB3hC,EAAM8lB,KAAKU,KAAKxmB,EAAMwL,MAAM+9B,MAAMxuC,KAAKwgB,EAAWD,KAE1D1jB,MACHk7E,EAAa,SAAU9yE,GACrB,MAAO,UAAS9B,GACd,MAAO8B,GAAMwL,MAAM+9B,KAAK5H,WAEzB/pC,MACHsE,EAAQtE,KAAK+e,UAAUxW,QAAQ,8CAC/BwiC,EAAW/qC,KAAK+e,UAAUxW,QAAQ,iDAChCuiD,SAAU9qD,KAAK4T,MAAM+9B,KAAKp9B,OAErBvU,KAAKmuC,QAAQzD,IAAIpmC,EAAOymC,EAAU,IAAI5nC,KAAKg4E,EAAcD,IAGlEX,EAAgB3qE,UAAUwrE,iBAAmBlqE,EAAS,IAAM,WAC1D,MAAKlR,MAAK4T,MAAM+9B,KAAKipC,WAGZ56E,KAAK06E,oBAFL16E,KAAKy6E,uBAMTF,GAEN1oE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,kBAAmBo2E,GAErCH,EAAoB,SAASj0D,EAAO9d,GAClC,GAAIgb,EAyCJ,OAxCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAII,GAAQy3D,CAmCZ,OAlCAA,GAAa,WAEX,MADA93D,GAAI9G,KAAK,UAAU6+D,SACZ/3D,EAAI9G,KAAK,cAAc6+D,UAEhC13D,EAAS,WACP,GAAIxgB,EASJ,OARAkgB,GAAOquB,KAAKp9B,KAAOgP,EAAI9G,KAAK,SAAS7P,MACrCxJ,EAAU+iB,EAAMyI,KAAKtL,EAAOquB,MAC5BvuC,EAAQD,KAAK,WACX,MAAOkF,GAASG,OAAO,aAEzBpF,EAAQD,KAAK,KAAM,SAAS4E,GAC1B,MAAOM,GAASG,OAAO,WAElB6yE,KAET93D,EAAIgB,GAAG,QAAS,cAAe,WAG7B,MAFA82D,KACA93D,EAAI9G,KAAK,SAASwT,QACX1M,EAAI9G,KAAK,SAAS7P,IAAI0W,EAAOquB,KAAKp9B,QAE3CgP,EAAIgB,GAAG,QAAS,SAAUX,GAC1BL,EAAIgB,GAAG,QAAS,QAAS,SAAShW,GAChC,MAAsB,MAAlBA,EAAMunB,QACDlS,IACoB,KAAlBrV,EAAMunB,QACRulD,IADF,SAIT/3D,EAAO5W,IAAI,eAAgB,WACzB,GAAI6W,EAAI9G,KAAK,cAAcsuC,GAAG,YAC5B,MAAOswB,OAGJ/3D,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,cAAe,UAAW,aAAci3D,IAEzDI,EAAiB,WACf,GAAIn3D,EAQJ,OAPAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,EAEJ,OADAA,GAAQlU,EAAIpf,aACLmf,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,UAAWq3D,GAE5BH,EAAmB,SAAShkC,EAAShuC,GACnC,GAAIkzE,GAAqBl4D,CAkDzB,OAjDAk4D,IAAuB,eAAgB,kBAAmB,UAAW,aAAc,eACnFl4D,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,EAWJ,OAVAA,GAAQlU,EAAIpf,aACZmf,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEblB,EAAIgB,GAAG,QAAS,eAAgB,SAAShW,GAIvC,MAHAA,GAAME,iBACN8U,EAAI9G,KAAK,QAAQ4P,YAAY,UAC7B9I,EAAI9G,KAAK,QAAQwT,QACV1M,EAAI9G,KAAK,eAAemU,SAE1BrN,EAAIgB,GAAG,QAAS,OAAQ,SAAShW,GACtC,GAAIghE,GAAS7rD,EAASC,EAAWK,CAEjC,OADAzV,GAAME,iBACgB,KAAlBF,EAAMunB,SACR9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BsrD,GACEz1D,QAASwJ,EAAO/I,UAChBhG,KAAMyP,EAAOpX,MACb2sB,YAAagiD,EACb71B,MAAOrlD,EAAEu1E,MAAMtyD,EAAOhK,MAAO,SAAS0rB,GACpC,MAAOA,GAAE0gB,QACRA,MAAQ,EACXk1B,YAAY,GAEdr3D,EAAI9G,KAAK,QAAQ3L,SAAS,UAC1ByS,EAAI9G,KAAK,QAAQ7P,IAAI,IACrB+W,EAAY,SAASguB,GACnB,GAAI6pC,EAKJ,OAJAA,GAAiBl4D,EAAOhK,MAAMlM,OAAS,EACvCkW,EAAOhK,MAAM2xD,OAAOuQ,EAAgB,EAAG7pC,GACvCla,EAAMwwC,QAAQt2B,GACdpuB,EAAI9G,KAAK,eAAeiU,OACjB+G,EAAMwjD,oBAEfv3D,EAAU,WACR,MAAOrb,GAASG,OAAO,UAElB6tC,EAAQ5hB,OAAO,QAAS86C,GAASpsE,KAAKwgB,EAAWD,IAC7B,KAAlBnV,EAAMunB,SACf9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BV,EAAI9G,KAAK,QAAQ3L,SAAS,UAC1ByS,EAAI9G,KAAK,QAAQ7P,IAAI,IACd2W,EAAI9G,KAAK,eAAeiU,QAJ1B,WASTrN,KAAMA,IAIV1jB,EAAOwjB,UAAU,aAAc,UAAW,aAAck3D,IAExDC,EAA2B,SAASvuE,EAAYoa,EAAO9d,EAAU6sB,GAC/D,GAAIumD,GAAcC,EAAkBr4D,EAAMs4D,CA8P1C,OA7PAA,GAAiBt7E,EAAEuE,SAAS,ueAC5B82E,EAAmBr7E,EAAEuE,SAAS,o6BAC9B62E,EAAep7E,EAAEuE,SAAS,4CAC1Bye,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIiU,GAAOmkD,EAA4BC,EAAgBC,EAAmBC,CAuP1E,OAtPAtkD,GAAQlU,EAAIpf,aACZy3E,EAA6B,SAASjqC,GACpC,GAAIqqC,GAAYC,EAAiBC,EAAsBC,EAAkBC,EAAsBC,EAAsBC,EAAiCC,EAAiBC,EAAsBC,CAmK7L,OAlKAJ,GAAuB,SAAS9iD,GAC9B,MAAOl5B,GAAEC,IAAIi5B,EAAa,SAASh5B,GACjC,GAAIiD,EACJ,OAAOnD,GAAEwC,UAAWtC,GAClBm8E,QAASl5E,EAAMjD,EAAO,IAAGwG,EAAQ9C,KAAK0tC,EAAKpY,YAAa/1B,IAAQ,QAItE04E,EAAuB,SAAS9vD,EAAYulB,EAAM73B,GAChD,QAAI63B,EAAKopC,gBAAkBjhE,EAAQ6iE,YAAkD,IAApCvwD,EAAW1c,IAAI3I,QAAQ,WAM1Eu1E,EAAkC,SAASn/D,GACzC,MAAO9c,GAAEC,IAAI6c,EAAU,SAASy/D,GAK9B,MAJAA,GAAIrjD,YAAcqjD,EAAIrjD,YAAYj5B,IAAI,SAAS8rB,GAE7C,MADAA,GAAWojB,SAAW0sC,EAAqB9vD,EAAYulB,EAAMruB,EAAOxJ,SAC7DsS,IAEF/rB,EAAEwC,UAAW+5E,GAClBC,kBAAmBx8E,EAAEqN,OAAOkvE,EAAiB,YAAG,UAAUxvE,YAIhE4uE,KACAC,IAEIvsE,IAAK,aACL6E,KAAM,kDAEN7E,IAAK,WACL6E,KAAM,iDAEN7E,IAAK,cACL6E,KAAM,oDAEN7E,IAAK,eACL6E,KAAM,qDAEN7E,IAAK,cACL6E,KAAM,oDAGVynE,EAAWz0E,MACTgN,KAAM,0CACNglB,YAAa8iD,EAAqBJ,KAEpCG,IAEI1sE,IAAK,kBACL6E,KAAM,sDAEN7E,IAAK,gBACL6E,KAAM,qDAEN7E,IAAK,mBACL6E,KAAM,wDAEN7E,IAAK,mBACL6E,KAAM,wDAGVynE,EAAWz0E,MACTgN,KAAM,4CACNglB,YAAa8iD,EAAqBD,KAEpCI,IAEI9sE,IAAK,UACL6E,KAAM,gEAEN7E,IAAK,SACL6E,KAAM,+DAEN7E,IAAK,YACL6E,KAAM,kEAEN7E,IAAK,aACL6E,KAAM,mEAEN7E,IAAK,YACL6E,KAAM,kEAGVynE,EAAWz0E,MACTgN,KAAM,iDACNglB,YAAa8iD,EAAqBG,KAEpCD,IAEI7sE,IAAK,aACL6E,KAAM,kDAEN7E,IAAK,WACL6E,KAAM,iDAEN7E,IAAK,cACL6E,KAAM,oDAEN7E,IAAK,eACL6E,KAAM,qDAEN7E,IAAK,cACL6E,KAAM,oDAGVynE,EAAWz0E,MACTgN,KAAM,0CACNglB,YAAa8iD,EAAqBE,KAEpCJ,IAEIzsE,IAAK,cACL6E,KAAM,oDAEN7E,IAAK,YACL6E,KAAM,mDAEN7E,IAAK,eACL6E,KAAM,sDAEN7E,IAAK,gBACL6E,KAAM,uDAEN7E,IAAK,eACL6E,KAAM,sDAGVynE,EAAWz0E,MACTgN,KAAM,2CACNglB,YAAa8iD,EAAqBF,KAEpCM,IAEI/sE,IAAK,kBACL6E,KAAM,sDAEN7E,IAAK,gBACL6E,KAAM,qDAEN7E,IAAK,mBACL6E,KAAM,wDAEN7E,IAAK,mBACL6E,KAAM,wDAEN7E,IAAK,kBACL6E,KAAM,sDAEN7E,IAAK,gBACL6E,KAAM,qDAEN7E,IAAK,mBACL6E,KAAM,wDAGVynE,EAAWz0E,MACTgN,KAAM,yCACNglB,YAAa8iD,EAAqBI,KAE7BH,EAAgCN,IAEzCD,EAAe,SAAS9zE,EAASkV,GAC/B,MAAOlV,GAAQwU,KAAK,WAAWoZ,KAAKX,EAASymD,GAC3Cx+D,SAAUA,KACRmG,KAENu4D,EAAiB,SAAS1+D,EAAUrE,GAClC,GAAI+c,EAOJ,OANAA,GAAO6lD,GACLv+D,SAAUA,EACVrE,MAAOA,IAET+c,EAAOjzB,QAAQqF,QAAQ4tB,GACvBkmD,EAAalmD,EAAM1Y,GACZ+X,EAASW,GAAMvS,IAExBw4D,EAAoB,WAClB,GAAIjmD,EAcJ,OAbAtS,GAAIkB,MACJoR,EAAO4lD,IACPp7E,EAAEsJ,KAAKiyE,EAA2Bt4D,EAAOquB,MAAO,SAASx0B,EAAUrE,GACjE,MAAO+c,GAAOjzB,QAAQqF,QAAQ4tB,GAAM6W,OAAOmvC,EAAe1+D,EAAUrE,MAEtEyK,EAAIsS,KAAKA,GACTtS,EAAIgB,GAAG,QAAS,UAAW,SAAShW,GAClC,GAAIyV,EAIJ,OAHAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BD,EAAOimC,YAAY,eACZjmC,EAAO9c,OAAO+iD,YAAY,UAE5B1mC,EAAIgB,GAAG,SAAU,uBAAwB,SAAShW,GACvD,GAAIuuE,GAAsBp5D,EAASC,EAAWK,CA+B9C,OA9BA84D,GAAuB,WACrB,GAAID,EAWJ,OAVAA,GAAoBx8E,EAAEqN,OAAO6V,EAAI9G,KAAK,wBAAyB,SAASglB,GACtE,MAAO7+B,SAAQqF,QAAQw5B,GAAGspB,GAAG,cAE/B8xB,EAAoBx8E,EAAEqZ,OAAOrZ,EAAEC,IAAIu8E,EAAmB,SAASp7C,GAC7D,GAAIrV,EACJ,OAAOA,GAAaxpB,QAAQqF,QAAQw5B,GAAG4qC,QAAQ,kBAAkBtkE,KAAK,SAEpE80E,EAAkBzvE,QACpByvE,EAAkBt1E,KAAK,gBAElBs1E,GAET74D,EAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BX,EAAOquB,KAAKpY,YAAcujD,IAC1Bn5D,EAAY,WACV,GAAIq4D,GAAYe,CAMhB,OALAf,GAAaJ,EAA2Bt4D,EAAOquB,MAC/CorC,EAAa/4D,EAAOqoD,QAAQ,oBAAoBtkE,KAAK,MACrDg0E,EAAa/3D,EAAOqoD,QAAQ,oBAAqB2P,EAAWe,IAC5DhxE,EAAW2a,WAAW,mBACtBre,EAASG,OAAO,WACTivB,EAAMwjD,oBAEfv3D,EAAU,WAGR,MAFArb,GAASG,OAAO,SAChBwb,EAAOsK,KAAK,WAAYtK,EAAOsK,KAAK,YAC7BhL,EAAOquB,KAAKpY,YAAcujD,KAE/Bx5D,EAAOquB,KAAKopC,eACdz3D,EAAOxJ,QAAQkhE,mBAAqB13D,EAAOquB,KAAKpY,YAChDjW,EAAOxJ,QAAQkjE,iBAAmB15D,EAAOquB,KAAKpY,YAAY7rB,OAAO,SAAS0e,GACxE,MAAuC,KAAhCA,EAAWrlB,QAAQ,WAErBof,EAAMyI,KAAKtL,EAAOxJ,SAAS3W,KAAKwgB,EAAWD,IAE3CyC,EAAMyI,KAAKtL,EAAOquB,MAAMxuC,KAAKwgB,EAAWD,MAIrDJ,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEbnB,EAAO5W,IAAI,eAAgB,WACzB,MAAOovE,OAEF9qE,EAASsS,EAAQE,EAAO+S,QAASulD,KAGxCz4D,KAAMA,IAIV1jB,EAAOwjB,UAAU,qBAAsB,aAAc,UAAW,aAAc,WAAYm3D,KAEzFr2E,KAAKjE,MA2BR,WACE,GAAIi9E,GAAqBC,EAA4BC,EAAkBC,EAAyBC,EAAkBC,EAAyBC,EAAgBC,EAAqBC,EAAiBC,EAAyBC,EAAkBC,EAAoB7sE,EAAaG,EAAUW,EAAOlS,EAAQI,EAAOqS,EAC3SvP,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBd,EAAc/Q,KAAKD,MAAMgR,YAEzBG,EAAWlR,KAAKD,MAAMmR,SAEtBkB,EAAUpS,KAAKD,MAAMqS,QAErBzS,EAASiD,QAAQjD,OAAO,cAExBi+E,EAAqB,SAAUxtE,GAK7B,QAASwtE,GAAmBhqE,EAAOsa,EAAM9T,EAAIvW,EAAQ+W,EAAUqmB,EAAS90B,EAAgB4S,EAAW3Y,EAAsB9C,GACvH,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMwtB,YAAc,8BACzBphC,KAAK4T,MAAMkG,WACX1W,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAKjB,OAJAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,6BAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAChDA,KAAK4T,MAAMlH,IAAI,kBAAmB1M,KAAK69E,cA4BzC,MA3DAh7E,GAAO+6E,EAAoBxtE,GAE3BwtE,EAAmBx9D,SAAW,SAAU,UAAW,eAAgB,eAAgB,cAAe,aAAc,mBAAoB,aAAc,yBAA0B,oBAgC5Kw9D,EAAmBhuE,UAAUiuE,aAAe,WAC1C,MAAO79E,MAAKoa,GAAGkkB,SAASriB,KAAKjc,KAAK4T,MAAM2G,WAAWpX,KAAK,SAAUiF,GAChE,MAAO,UAASk2B,GACd,MAAOl2B,GAAMwL,MAAM0qB,SAAWA,IAE/Bt+B,QAGL49E,EAAmBhuE,UAAUgyB,YAAc,WACzC,GAAI9nB,EAQJ,OAPAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACjCqB,EAAQo0D,YACXluE,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGT8jE,EAAmBhuE,UAAUyxB,gBAAkB,WAE7C,MADArhC,MAAK4hC,cACE5hC,KAAK69E,gBAGPD,GAEN/rE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,qBAAsBy5E,GAExCD,EAAmB,SAAS3mD,EAAK7Q,EAAO9d,EAAU+rB,EAAUpxB,GAC1D,GAAIqgB,EAgKJ,OA/JAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI01C,GAAQ4kB,EAAalvD,EAAMmvD,EAAcC,EAAuBC,EAAYC,EAA2BC,CAmJ3G,OAlJAA,GAAU76D,EAAOtP,MAAMwP,EAAO46D,WAC9BH,EAAa,WACX,GAAI5wE,EAEJ,OADAA,GAAarK,EAAWuF,QAAQ,uBACzByuB,EAAIwH,YAAYviB,KAAKkiE,EAAQvkE,IAAIzW,KAAK,SAAUiF,GACrD,MAAO,UAASo2B,GACd,GAAI7rB,GAAGqC,EAAK8B,EAAKtT,CACjB,KAAKmP,EAAI,EAAGqC,EAAMwpB,EAAYpxB,OAAQuF,EAAIqC,EAAKrC,IAC7CmE,EAAM0nB,EAAY7rB,GAClBmE,EAAIunE,YAAe,MAAQ76E,EAAMsT,EAAIrQ,SAAWjD,EAAM,IACtDsT,EAAIwnE,kBAAoBj+E,EAAEC,IAAID,EAAEk+E,QAAQznE,EAAI0nE,iBAAkB,SAASC,GACrE,GAAI35B,GAAQ/1C,CAEZ,OADA+1C,GAAS25B,EAAI,GAAI1vE,EAAQ0vE,EAAI,GACtB35B,EAAS,KAAO/1C,IACtBpO,KAAK,MACRmW,EAAI4nE,eAAiBl+E,KAAKC,UAAUqW,EAAI6nE,cACxC7nE,EAAIzJ,WAAatD,OAAO+M,EAAI8nE,SAAS9yD,OAAOze,EAI9C,OAFA8wE,GAAQU,aAAergD,EAAYpxB,OACnC+wE,EAAQW,KAAOtgD,EACR0/C,MAERl+E,QAELk+E,EAA4B,WAC1B,GAAIa,GAAgBlqE,EAAMmqE,EAAa16E,CAWvC,OAVA06E,GAAcz7D,EAAI9G,KAAK,mBACvBsiE,EAAiBC,EAAY3S,QAAQ,2BAA2B5vD,KAAK,qBACjEsiE,EAAet2C,SAAS,SAC1B5zB,EAAO7R,EAAWuF,QAAQ,sCAC1BjE,EAAQtB,EAAWuF,QAAQ,8CAE3BsM,EAAO7R,EAAWuF,QAAQ,sCAC1BjE,EAAQtB,EAAWuF,QAAQ,6CAE7By2E,EAAYnqE,KAAKA,GACVmqE,EAAY1wD,KAAK,QAAShqB,IAEnC05E,EAAwB,WAEtB,MADAz6D,GAAI9G,KAAK,iBAAiB3L,SAAS,UAC5ByS,EAAI9G,KAAK,uBAAuB4P,YAAY,WAErD0xD,EAAe,WAEb,MADAx6D,GAAI9G,KAAK,uBAAuB3L,SAAS,UAClCyS,EAAI9G,KAAK,iBAAiB4P,YAAY,WAE/CyxD,EAAc,WACZ,MAAOv6D,GAAI9G,KAAK,qBAAqB3L,SAAS,SAEhDooD,EAAS,WAEP,MADA8kB,KACO16D,EAAO/N,OAAO,WACnB,MAAO4oE,GAAQp0C,YAGnBnb,EAAO1d,EAAS,IAAM,SAAS8S,GAC7B,GAAIP,GAAMrgB,CAEV,IADAqgB,EAAOO,EAAOqoD,QAAQ,QAAQzgE,YACzB6X,EAAKW,WASV,MANAhhB,GAAU+iB,EAAMyI,KAAKuvD,GACrB/6E,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,MAAO41E,OAERh+E,OACIoD,EAAQD,KAAK,KAAM,SAAS4E,GAEjC,MADAM,GAASG,OAAO,SACTib,EAAKsB,UAAUhd,OAG1Bwb,EAAIgB,GAAG,QAAS,gBAAiB,WAE/B,MADAu5D,KACO9mD,EAAIsH,SAAS2gD,KAAKd,EAAQvkE,IAAIzW,KAAK,SAAUiF,GAClD,MAAO,YACL,MAAO61E,OAERj+E,SAELujB,EAAIgB,GAAG,QAAS,gBAAiB,WAC/B,MAAOw5D,OAETx6D,EAAIgB,GAAG,QAAS,mBAAoB,WAClC,MAAO20C,OAET31C,EAAIgB,GAAG,QAAS,iBAAkB,SAAShW,GACzC,GAAIyV,EAGJ,OAFAzV,GAAME,iBACNuV,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxB2K,EAAK5K,KAEdT,EAAIgB,GAAG,QAAS,sBAAuB,SAAShW,GAC9C,GAAIyV,EACJ,OAAsB,MAAlBzV,EAAMunB,SACR9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxB2K,EAAK5K,IACe,KAAlBzV,EAAMunB,SACf9R,EAASphB,QAAQqF,QAAQsG,EAAM0V,eACxBi1C,EAAOl1C,IAFT,SAKTT,EAAIgB,GAAG,QAAS,kBAAmB,WACjC,GAAIS,GAAS1gB,CAKb,OAJAA,GAAQtB,EAAWuF,QAAQ,yBAC3Byc,EAAUhiB,EAAWuF,QAAQ,+BAC3BgM,KAAM4pE,EAAQ5pE,OAETlM,EAAS+tB,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GACzD,MAAO,UAASiuB,GACd,GAAI3S,GAASozD,CASb,OARAA,GAAW,WAET,MADAzgD,GAAY1B,SACLrR,EAAOgT,MAAM,oBAEtB5S,EAAU,WAER,MADA2S,GAAY1B,QAAO,GACZtsB,EAASG,OAAO,UAElB2d,EAAMvE,OAAOu8D,GAASh7E,KAAK2zE,EAAUpzD,KAE7C1jB,SAELujB,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAC1C,GAAIyV,EAEJ,OADAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eACV,MAAhBk6D,EAAQW,MAAyC,IAAxBX,EAAQW,KAAK1xE,OAClC6wE,IAAa96E,KAAK,WACvB,MAAOiP,GAAQ,EAAG,WAEhB,MADAmR,GAAI9G,KAAK,qBAAqBwtC,YAAY,QAAQiH,cAC3CgtB,SAIX36D,EAAI9G,KAAK,qBAAqBwtC,YAAY,QAAQiH,cAC3C5tC,EAAO/N,OAAO,WACnB,MAAO2oE,UAIb36D,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GAC1C,GAAIyV,EAGJ,OAFAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BD,EAAOimC,YAAY,uBACZjmC,EAAO8tB,SAAS,4BAA4BmY,YAAY,UAE1D1mC,EAAIgB,GAAG,QAAS,kBAAmB,SAAShW,GACjD,GAAIuI,GAAKkN,CAGT,OAFAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BnN,EAAMkN,EAAOjc,KAAK,OACXivB,EAAIwH,YAAY0gD,OAAOpoE,GAAK3T,KAAK,SAAUiF,GAChD,MAAO,YACL,MAAO61E,OAERj+E,WAILqjB,KAAMA,IAIV1jB,EAAOwjB,UAAU,aAAc,eAAgB,UAAW,aAAc,aAAc,aAAcw6D,IAEpGH,EAAsB,SAASxmD,EAAK7Q,EAAO9d,EAAU+rB,GACnD,GAAI/Q,EAmEJ,OAlEAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI27D,GAAmBC,EAAanJ,EAAoBrnD,EAAMuvD,CA4D9D,OA3DAA,GAAU76D,EAAOtP,MAAMwP,EAAO46D,WAC9BgB,EAAc77D,EAAI9G,KAAK,qBACvB0iE,EAAoB57D,EAAI9G,KAAK,gBAC7Bw5D,EAAqB,WACnB,MAAO3yD,GAAO9K,UACZjE,KAAQ,GACRzN,IAAO,GACP4I,IAAO,KAGXumE,IACA3yD,EAAOrP,OAAO,WAAY,SAASqqB,GACjC,GAAgB,MAAZA,EACF,MAAwB,KAApBA,EAASlxB,QACXgyE,EAAY/yD,YAAY,UACxB8yD,EAAkBruE,SAAS,UACpBsuE,EAAY3iE,KAAK,SAAS,GAAGwT,UAEpCmvD,EAAYtuE,SAAS,UACdquE,EAAkB9yD,YAAY,aAI3CuC,EAAO1d,EAAS,IAAM,WACpB,GAAIuS,GAAMrgB,CAEV,IADAqgB,EAAO27D,EAAYxzE,YACd6X,EAAKW,WAWV,MARAd,GAAO9K,SAASsB,QAAUwJ,EAAOxJ,QAAQF,GACzCxW,EAAU+iB,EAAMsO,OAAO,WAAYnR,EAAO9K,UAC1CpV,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YAEL,MADAkb,GAAOgT,MAAM,mBACN2/C,MAERj2E,OACIoD,EAAQD,KAAK,KAAM,SAAS4E,GAEjC,MADAM,GAASG,OAAO,SACTib,EAAKsB,UAAUhd,OAG1Bq3E,EAAY76D,GAAG,QAAS,WAAY,SAAShW,GAE3C,MADAA,GAAME,iBACCmgB,MAETwwD,EAAY76D,GAAG,QAAS,QAAS,SAAShW,GACxC,GAAsB,KAAlBA,EAAMunB,QACR,MAAOlH,OAGXwwD,EAAY76D,GAAG,QAAS,cAAe,SAAShW,GAC9C,MAAO+U,GAAO/N,OAAO,WAEnB,GADA0gE,IACI3yD,EAAOgb,SAASlxB,QAAU,EAC5B,MAAOgyE,GAAYtuE,SAAS,cAI3BquE,EAAkB56D,GAAG,QAAS,SAAShW,GAE5C,MADA6wE,GAAY/yD,YAAY,UACjB+yD,EAAY3iE,KAAK,SAAS,GAAGwT,YAItC5M,KAAMA,IAIV1jB,EAAOwjB,UAAU,gBAAiB,eAAgB,UAAW,aAAc,aAAcq6D,IAEzFL,EAAmB,SAAU/sE,GAK3B,QAAS+sE,GAAiBvpE,EAAOsa,EAAM9T,EAAIvW,EAAQsI,EAAgB4S,EAAWzb,GAC5E,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,6BAChDvI,KAAK4T,MAAMkG,WACX1W,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAKjB,OAJAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,2BAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OA0BlD,MArDA6C,GAAOs6E,EAAkB/sE,GAEzB+sE,EAAiB/8D,SAAW,SAAU,UAAW,eAAgB,eAAgB,mBAAoB,aAAc,oBA4BnH+8D,EAAiBvtE,UAAUyvE,YAAc,WACvC,MAAOr/E,MAAKoa,GAAGxa,QAAQqc,KAAKjc,KAAK4T,MAAM2G,UAAW,UAAUpX,KAAK,SAAUiF,GACzE,MAAO,UAASk3E,GACd,MAAOl3E,GAAMwL,MAAM0rE,OAASA,IAE7Bt/E,QAGLm9E,EAAiBvtE,UAAUgyB,YAAc,WACvC,GAAI9nB,EAKJ,OAJAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGTqjE,EAAiBvtE,UAAUyxB,gBAAkB,WAC3C,GAAIj+B,EAEJ,OADAA,GAAUpD,KAAK4hC,cACR5hC,KAAKq/E,eAGPlC,GAENtrE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,mBAAoBg5E,GAEtCE,EAAmB,SAAUjtE,GAK3B,QAASitE,GAAiBzpE,EAAOsa,EAAM9T,EAAIvW,EAAQsI,EAAgB4S,EAAWzb,GAC5E,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,6BAChDvI,KAAK4T,MAAMkG,WACX1W,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAKjB,OAJAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,2BAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAChDA,KAAK4T,MAAMlH,IAAI,yBAA0B,SAAUtE,GACjD,MAAO,YACL,MAAOA,GAAMi3E,gBAEdr/E,OAyBL,MAzDA6C,GAAOw6E,EAAkBjtE,GAEzBitE,EAAiBj9D,SAAW,SAAU,UAAW,eAAgB,eAAgB,mBAAoB,aAAc,oBAiCnHi9D,EAAiBztE,UAAUyvE,YAAc,WACvC,MAAOr/E,MAAKoa,GAAGxa,QAAQqc,KAAKjc,KAAK4T,MAAM2G,UAAW,UAAUpX,KAAK,SAAUiF,GACzE,MAAO,UAASm3E,GACd,MAAOn3E,GAAMwL,MAAM2rE,OAASA,IAE7Bv/E,QAGLq9E,EAAiBztE,UAAUgyB,YAAc,WACvC,GAAI9nB,EAKJ,OAJAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGTujE,EAAiBztE,UAAUyxB,gBAAkB,WAE3C,MADArhC,MAAK4hC,cACE5hC,KAAKq/E,eAGPhC,GAENxrE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,mBAAoBk5E,GAEtCJ,EAAsB,SAAU7sE,GAK9B,QAAS6sE,GAAoBrpE,EAAOsa,EAAM9T,EAAIvW,EAAQsI,EAAgB4S,EAAWzb,GAC/E,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,gCAChDvI,KAAK4T,MAAMkG,WACX1W,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAKjB,OAJAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,8BAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAChDA,KAAK4T,MAAMlH,IAAI,yBAA0B,SAAUtE,GACjD,MAAO,YACL,MAAOA,GAAMi3E,gBAEdr/E,OAyBL,MAzDA6C,GAAOo6E,EAAqB7sE,GAE5B6sE,EAAoB78D,SAAW,SAAU,UAAW,eAAgB,eAAgB,mBAAoB,aAAc,oBAiCtH68D,EAAoBrtE,UAAUyvE,YAAc,WAC1C,MAAOr/E,MAAKoa,GAAGxa,QAAQqc,KAAKjc,KAAK4T,MAAM2G,UAAW,aAAapX,KAAK,SAAUiF,GAC5E,MAAO,UAASo3E,GACd,MAAOp3E,GAAMwL,MAAM4rE,UAAYA,IAEhCx/E,QAGLi9E,EAAoBrtE,UAAUgyB,YAAc,WAC1C,GAAI9nB,EAKJ,OAJAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGTmjE,EAAoBrtE,UAAUyxB,gBAAkB,WAE9C,MADArhC,MAAK4hC,cACE5hC,KAAKq/E,eAGPpC,GAENprE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,sBAAuB84E,GAEzCQ,EAAkB,WAChB,GAAIp6D,EAOJ,OANAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOD,GAAIgB,GAAG,QAAS,wBAAyB,WAE9C,MADAhB,GAAI9G,KAAK,SAAS0Z,SACX5S,EAAI9G,KAAK,cAAc3L,SAAS,eAIzCuS,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqBs6D,GAEtCL,EAA0B,SAASj3D,EAAO9d,EAAU+rB,GAClD,GAAI/Q,EA+BJ,OA9BAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMG,EAAQ2Q,CA2BlB,OA1BA9Q,GAAOF,EAAI9G,KAAK,QAAQ7Q,WACtBgZ,qBAAuB,IAEzBhB,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WASV,MANAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMs5D,cAAcn8D,EAAOg8D,OAAQ;AAC7Cl8E,EAAQD,KAAK,WAEX,MADAqxB,GAAeG,SACRtsB,EAASG,OAAO,aAElBpF,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,GAFAysB,EAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,GAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACjB8G,EAAIgB,GAAG,SAAU,OAAQX,KAGhCP,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqB,UAAW,aAAc,aAAci6D,IAE7EE,EAA0B,SAASn3D,EAAO9d,EAAU+rB,GAClD,GAAI/Q,EAgCJ,OA/BAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMG,EAAQ2Q,CA4BlB,OA3BA9Q,GAAOF,EAAI9G,KAAK,QAAQ7Q,WACtBgZ,qBAAuB,IAEzBhB,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WAUV,MAPAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMs5D,cAAcn8D,EAAOi8D,OAAQ,UAC7Cn8E,EAAQD,KAAK,WAGX,MAFAqxB,GAAeG,SACftsB,EAASG,OAAO,WACT8a,EAAOgT,MAAM,4BAEflzB,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,GAFAysB,EAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,GAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACjB8G,EAAIgB,GAAG,SAAU,OAAQX,KAGhCP,KAAMA,IAIV1jB,EAAOwjB,UAAU,oBAAqB,UAAW,aAAc,aAAcm6D,IAE7EJ,EAA6B,SAAS/2D,EAAO9d,EAAU+rB,GACrD,GAAI/Q,EAgCJ,OA/BAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIC,GAAMG,EAAQ2Q,CA4BlB,OA3BA9Q,GAAOF,EAAI9G,KAAK,QAAQ7Q,WACtBgZ,qBAAuB,IAEzBhB,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WAUV,MAPAoQ,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMs5D,cAAcn8D,EAAOk8D,UAAW,aAChDp8E,EAAQD,KAAK,WAGX,MAFAqxB,GAAeG,SACftsB,EAASG,OAAO,WACT8a,EAAOgT,MAAM,4BAEflzB,EAAQD,KAAK,KAAM,SAAS4E,GAGjC,GAFAysB,EAAeG,SACflR,EAAKsB,UAAUhd,GACXA,EAAK+c,eACP,MAAOzc,GAASG,OAAO,QAAST,EAAK+c,oBAI1C9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACjB8G,EAAIgB,GAAG,SAAU,OAAQX,KAGhCP,KAAMA,IAIV1jB,EAAOwjB,UAAU,uBAAwB,UAAW,aAAc,aAAc+5D,IAEhFQ,EAA0B,WACxB,GAAIr6D,EAUJ,OATAA,GAAO,SAASC,EAAQC,EAAKC,EAAQk8D,GACnC,MAAOA,GAASxhC,SAAS32C,KAAK,SAASwH,GAErC,MADAA,GAAQg+B,EAAEx6B,KAAKxD,GACD,KAAVA,KAGGA,EAAM9B,MAAM,SAIrBoW,KAAMA,EACNH,SAAU,KACVsT,QAAS,YAIb72B,EAAOwjB,UAAU,mBAAoBu6D,GAErCH,EAAiB,SAAUntE,GAKzB,QAASmtE,GAAe3pE,EAAOsa,EAAM9T,EAAIvW,EAAQsI,EAAgB4S,EAAWzb,GAC1E,GAAIF,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiBA,EACtByN,EAAY/Q,MACZA,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,2BAChDvI,KAAK4T,MAAMkG,WACX1W,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAI7D,GAAaD,CAKjB,OAJAA,GAAQ8D,EAAM2W,UAAUxW,QAAQ,yBAC9B+4B,YAAal5B,EAAMwL,MAAMkG,QAAQvF,OAEnChQ,EAAc6D,EAAMwL,MAAMkG,QAAQvV,YAC3B6D,EAAM+D,eAAewC,OAAOrK,EAAOC,KAE3CvE,OACHoD,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAyBlD,MApDA6C,GAAO06E,EAAgBntE,GAEvBmtE,EAAen9D,SAAW,SAAU,UAAW,eAAgB,eAAgB,mBAAoB,aAAc,oBA4BjHm9D,EAAe3tE,UAAUyvE,YAAc,WACrC,MAAOr/E,MAAKoa,GAAGxa,QAAQqc,KAAKjc,KAAK4T,MAAM2G,UAAW,QAAQpX,KAAK,SAAUiF,GACvE,MAAO,UAASu3E,GACd,MAAOv3E,GAAMwL,MAAM+rE,KAAOA,IAE3B3/E,QAGLu9E,EAAe3tE,UAAUgyB,YAAc,WACrC,GAAI9nB,EAKJ,OAJAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GAC5BA,GAGTyjE,EAAe3tE,UAAUyxB,gBAAkB,WAEzC,MADArhC,MAAK4hC,cACE5hC,KAAKq/E,eAGP9B,GAEN1rE,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDtZ,EAAOwE,WAAW,iBAAkBo5E,IAEnCt5E,KAAKjE,MA2BR,WACE,GAAI4/E,GAAwB5uE,EAAUE,EAAUvR,EAAQI,EAAOqS,CAE/DrS,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBoB,EAAUpS,KAAKD,MAAMqS,QAErBlB,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,gBAExBigF,EAAyB,SAASz5D,EAAOpa,EAAYC,EAAO/F,EAAWC,EAAUmC,EAAUgE,EAAiB4tC,EAAUl6B,GACpH,GAAIsD,EAqCJ,OApCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIq8D,GAAiBj8D,CA8BrB,OA7BAi8D,GAAkB,KAClBv8D,EAAO5W,IAAI,qBAAsB,SAASmB,EAAKiM,GAE7C,MADAzN,GAAgBuoB,KAAKrR,GACds8D,EAAkB/lE,IAE3BwJ,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEbb,EAAS,WACP,GAAIxgB,EAWJ,OAVA62C,GAASvrC,QACTrC,EAAgBkmB,MAAMhP,GACtBngB,EAAU+iB,EAAMvE,OAAOi+D,GACvBz8E,EAAQD,KAAK,SAAS4E,GAKpB,MAJAkyC,GAASK,aACTvuC,EAAW2a,WAAW,mBACtBzgB,EAAUxD,KAAKyD,EAASvD,QAAQ,SAChC0F,EAASG,OAAO,WACTuX,EAAmB0pD,iBAErBrmE,EAAQD,KAAK,KAAM,WAExB,MADAkF,GAASG,OAAO,SACT6D,EAAgBkmB,MAAMhP,MAGjCA,EAAIgB,GAAG,QAAS,cAAe,SAAShW,GAEtC,MADAA,GAAME,iBACCpC,EAAgBkmB,MAAMhP,KAExBA,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAE/C,MADAA,GAAME,iBACCmV,QAITP,KAAMA,IAIV1jB,EAAOwjB,UAAU,qBAAsB,UAAW,aAAc,UAAW,cAAe,aAAc,aAAc,kBAAmB,WAAY,uBAAwBy8D,KAE5K37E,KAAKjE,MA2BR,WACE,GAAI8/E,GAAmBC,EAAsBC,EAAuBC,EAAuBC,EAAuBC,EAAsBC,EAAsBC,EAAwBC,EAAoBtvE,EAAUrR,CAEpNqR,GAAWhR,KAAKD,MAAMiR,SAEtBgvE,EAAwB,WACtB,GAAI38D,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQE,EAAO+8D,SAAU,SAAS3zE,GAChD,MAAO2W,GAAI1O,KAAKjI,OAIlByW,KAAMA,IAIV68D,EAAwB,WACtB,GAAI78D,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQE,EAAOg9D,SAAU,SAAS5zE,GAChD,MAAO2W,GAAIsS,KAAKjpB,OAIlByW,KAAMA,IAIV88D,EAAuB,WACrB,GAAI98D,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQE,EAAOi9D,QAAS,SAAS7zE,GAC/C,MAAO2W,GAAIsS,KAAK,IAAMjpB,EAAM,SAI9ByW,KAAMA,IAIV+8D,EAAuB,WACrB,GAAI/8D,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQE,EAAOk9D,QAAS,SAAS9zE,GAC/C,MAAO2W,GAAI1P,KAAK,MAAOjH,OAIzByW,KAAMA,IAIV48D,EAAwB,WACtB,GAAI58D,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQE,EAAOm9D,SAAU,SAAS/zE,GAChD,MAAO2W,GAAI1P,KAAK,OAAQjH,OAI1ByW,KAAMA,IAIV08D,EAAuB,WACrB,GAAI18D,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQE,EAAOo9D,QAAS,SAASh0E,GAC/C,MAAO2W,GAAI1P,KAAK,MAAOjH,OAIzByW,KAAMA,IAIVg9D,EAAyB,WACvB,GAAIh9D,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOxS,GAASsS,EAAQE,EAAOq9D,UAAW,SAASj0E,GACjD,MAAO2W,GAAI1P,KAAK,QAASjH,OAI3ByW,KAAMA,IAIVi9D,EAAqB,WACnB,GAAIj9D,EAQJ,OAPAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOF,GAAOrP,OAAOuP,EAAOs9D,YAAa,SAASl0E,GAChD,GAAW,MAAPA,EACF,MAAO2W,GAAI1P,KAAK,QAASjH,OAK7ByW,KAAMA,IAIVy8D,EAAoB,WAClB,GAAIz8D,EAQJ,OAPAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOF,GAAOrP,OAAOuP,EAAOu9D,WAAY,SAASn0E,GAC/C,GAAW,MAAPA,EACF,MAAO2W,GAAIsS,KAAKjpB,OAKpByW,KAAMA,IAIV1jB,EAASiD,QAAQjD,OAAO,aAExBA,EAAOwjB,UAAU,WAAY68D,GAE7BrgF,EAAOwjB,UAAU,WAAY+8D,GAE7BvgF,EAAOwjB,UAAU,UAAWg9D,GAE5BxgF,EAAOwjB,UAAU,UAAWi9D,GAE5BzgF,EAAOwjB,UAAU,WAAY88D,GAE7BtgF,EAAOwjB,UAAU,UAAW48D,GAE5BpgF,EAAOwjB,UAAU,YAAak9D,GAE9B1gF,EAAOwjB,UAAU,cAAem9D,GAEhC3gF,EAAOwjB,UAAU,aAAc28D,IAE9B77E,KAAKjE,MA2BR,WACE,GAAIghF,GAAsBrhF,CAE1BqhF,GAAuB,WACrB,QAASA,KACPhhF,KAAK0G,OAASxG,OAAOoF,YAavB,MAVA07E,GAAqBpxE,UAAU9J,IAAM,SAAS4J,EAAK0jC,GAIjD,MAHoB,OAAhBA,IACFA,EAAe,MAEb/yC,EAAE2+C,IAAIh/C,KAAK0G,OAAQgJ,GACd1P,KAAK0G,OAAOgJ,GAEd0jC,GAGF4tC,KAITrhF,EAASiD,QAAQjD,OAAO,aAExBA,EAAOijB,QAAQ,YAAao+D,IAE3B/8E,KAAKjE,MA2BR,WACE,GAAIihF,GAAmBC,EAA+BvhF,EACpDkD,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfnQ,GAASiD,QAAQjD,OAAO,aAExBshF,EAAoB,SAAU7wE,GAK5B,QAAS6wE,GAAkBhwD,EAAWrd,EAAO/P,EAAQqqB,EAAM9T,EAAI+zB,EAAS7qC,GACtEtD,KAAKixB,UAAYA,EACjBjxB,KAAK4T,MAAQA,EACb5T,KAAK6D,OAASA,EACd7D,KAAKkuB,KAAOA,EACZluB,KAAKoa,GAAKA,EACVpa,KAAKmuC,QAAUA,EACfnuC,KAAKsD,eAAiBA,EACtBtD,KAAK4T,MAAMutE,cAAgB9gF,EAAE+gF,KAAK/gF,EAAEqN,OAAO1N,KAAKixB,UAAUxjB,cACxD+f,KAAQxtB,KAAK6D,OAAOmL,UAEtBhP,KAAK4T,MAAM4H,YAAcxb,KAAK6D,OAAOC,MACrC9D,KAAKqhC,kBAiBP,MAjCAx+B,GAAOo+E,EAAmB7wE,GAE1B6wE,EAAkB7gE,SAAW,aAAc,SAAU,eAAgB,UAAW,eAAgB,aAAc,oBAiB9G6gE,EAAkBrxE,UAAUgyB,YAAc,WACxC,GAAI9nB,EAMJ,OALAA,GAAU9Z,KAAKsD,eAAewW,QAAQrB,OACtCzY,KAAK4T,MAAM2G,UAAYT,EAAQF,GAC/B5Z,KAAK4T,MAAMkG,QAAUA,EACrB9Z,KAAK4T,MAAM0iB,MAAM,iBAAkBxc,GACnC9Z,KAAK4T,MAAM8S,WAAW,iBAAkB5M,GACjCA,GAGTmnE,EAAkBrxE,UAAUyxB,gBAAkB,WAC5C,MAAOrhC,MAAK4hC,eAGPq/C,GAENlhF,MAAM6Q,YAETjR,EAAOwE,WAAW,oBAAqB88E,GAEvCC,EAAgC,SAAU9wE,GAKxC,QAAS8wE,GAA8BjwD,EAAWrd,EAAO/P,GACvD7D,KAAKixB,UAAYA,EACjBjxB,KAAK4T,MAAQA,EACb5T,KAAK6D,OAASA,EACd7D,KAAK4T,MAAMutE,cAAgB9gF,EAAE+gF,KAAK/gF,EAAEqN,OAAO1N,KAAKixB,UAAUtjB,qBACxD6f,KAAQxtB,KAAK6D,OAAOmL,UAIxB,MAbAnM,GAAOq+E,EAA+B9wE,GAEtC8wE,EAA8B9gE,SAAW,aAAc,SAAU,gBAW1D8gE,GAENnhF,MAAM6Q,YAETjR,EAAOwE,WAAW,gCAAiC+8E,IAElDj9E,KAAKjE,MA2BR,WACE,GAAIqhF,GAAuBthF,EACzB8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbshF,EAAwB,SAAUjxE,GAKhC,QAASixE,GAAsBvlE,EAASjY,GACtC7D,KAAK8b,QAAUA,EACf9b,KAAK6D,OAASA,EAahB,MAnBAhB,GAAOw+E,EAAuBjxE,GAE9BixE,EAAsBjhE,SAAW,aAAc,gBAO/CihE,EAAsBzxE,UAAUzP,aAAe,SAASC,GAOtD,MANkB,OAAdA,IACFA,MAEFA,EAAaC,EAAEC,IAAIF,EAAY,SAASG,GACtC,MAAOC,MAAKC,UAAUF,KAEjBG,SAASN,EAAWO,KAAK,OAG3B0gF,GAENthF,EAAM4Q,UAER1M,KAAKjE,MA2BR,WACE,GAAIshF,GAAa3hF,EAAQI,EACvB8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbuhF,EAAc,SAAUlxE,GAKtB,QAASkxE,GAAY/gE,EAAM9P,EAAGqL,EAASmV,EAAWswD,EAAcxiE,GAC9D/e,KAAKugB,KAAOA,EACZvgB,KAAKyQ,EAAIA,EACTzQ,KAAK8b,QAAUA,EACf9b,KAAKixB,UAAYA,EACjBjxB,KAAKuhF,aAAeA,EACpBvhF,KAAK+e,UAAYA,EACjBuiE,EAAYzxE,UAAUJ,YAAYxL,KAAKjE,MACvCA,KAAKwhF,MAAQxhF,KAAKuhF,aAAa,WA8FjC,MA1GA1+E,GAAOy+E,EAAalxE,GAEpBkxE,EAAYlhE,SAAW,QAAS,KAAM,aAAc,aAAc,gBAAiB,cAanFkhE,EAAY1xE,UAAUlK,QAAU,WAC9B,GAAIA,GAASuD,EAAM6Y,CAUnB,OATApc,MACAoc,EAAQ9hB,KAAK8b,QAAQhW,IAAI,SACrBgc,IACFpc,EAAuB,cAAI,UAAYoc,GAEzC7Y,EAAOjJ,KAAK+e,UAAUvV,oBAClBP,IACFvD,EAAQ,mBAAqBuD,GAExBvD,GAGT47E,EAAY1xE,UAAUnI,QAAU,SAASg/C,GAEvC,MADAA,GAAQ/gD,QAAUrF,EAAE8uB,UAAWs3B,EAAQ/gD,YAAe1F,KAAK0F,WACpD1F,KAAKugB,KAAKkmC,IAGnB66B,EAAY1xE,UAAU9J,IAAM,SAASgB,EAAKjD,EAAQ4iD,GAShD,MARAA,GAAUpmD,EAAE8uB,QACV/a,OAAQ,MACRtN,IAAKA,GACJ2/C,GACC5iD,IACF4iD,EAAQ5iD,OAASA,GAEnB4iD,EAAQ+6B,MAAQxhF,KAAKwhF,MACdxhF,KAAKyH,QAAQg/C,GAAS,WAAW,SAAUr+C,GAChD,MAAO,UAASL,GACd,MAAOK,GAAMo5E,MAAMC,cAEpBzhF,QAGLshF,EAAY1xE,UAAUhK,KAAO,SAASkB,EAAKiB,EAAMlE,EAAQ4iD,GAWvD,MAVAA,GAAUpmD,EAAE8uB,QACV/a,OAAQ,OACRtN,IAAKA,GACJ2/C,GACC1+C,IACF0+C,EAAQ1+C,KAAOA,GAEblE,IACF4iD,EAAQ5iD,OAASA,GAEZ7D,KAAKyH,QAAQg/C,IAGtB66B,EAAY1xE,UAAU/J,IAAM,SAASiB,EAAKiB,EAAMlE,EAAQ4iD,GAWtD,MAVAA,GAAUpmD,EAAE8uB,QACV/a,OAAQ,MACRtN,IAAKA,GACJ2/C,GACC1+C,IACF0+C,EAAQ1+C,KAAOA,GAEblE,IACF4iD,EAAQ5iD,OAASA,GAEZ7D,KAAKyH,QAAQg/C,IAGtB66B,EAAY1xE,UAAUjK,MAAQ,SAASmB,EAAKiB,EAAMlE,EAAQ4iD,GAWxD,MAVAA,GAAUpmD,EAAE8uB,QACV/a,OAAQ,QACRtN,IAAKA,GACJ2/C,GACC1+C,IACF0+C,EAAQ1+C,KAAOA,GAEblE,IACF4iD,EAAQ5iD,OAASA,GAEZ7D,KAAKyH,QAAQg/C,IAGtB66B,EAAY1xE,UAAU,UAAY,SAAS9I,EAAKiB,EAAMlE,EAAQ4iD,GAW5D,MAVAA,GAAUpmD,EAAE8uB,QACV/a,OAAQ,SACRtN,IAAKA,GACJ2/C,GACC1+C,IACF0+C,EAAQ1+C,KAAOA,GAEblE,IACF4iD,EAAQ5iD,OAASA,GAEZ7D,KAAKyH,QAAQg/C,IAGf66B,GAENvhF,EAAM4Q,SAEThR,EAASiD,QAAQjD,OAAO,aAExBA,EAAOijB,QAAQ,UAAW0+D,IAEzBr9E,KAAKjE,MA2BR,WACE,GAAI0hF,GAAiB/hF,CAErB+hF,GAAkB,SAASz7E,EAAW1C,EAAQwI,GAe5C,MAdA9F,GAAU8U,SAAW,SAASnH,GAC5B,GAAI+tE,GAAWr1E,CAMf,OALAq1E,GAAYp+E,EAAOG,QACnB4I,EAAKsH,EAAMlH,IAAI,yBAA0B,WAEvC,MADAnJ,GAAOG,QAAUi+E,EACVr1E,MAEFrG,GAETA,EAAU6U,uBAAyB,SAASvG,EAAMxF,GAChD,GAAIlL,EAEJ,OADAA,GAASoC,EAAUO,aACZ3C,EAAO0Q,KAAUxF,GAEnB9I,GAGTtG,EAASiD,QAAQjD,OAAO,aAExBA,EAAO0H,QAAQ,eAAgB,YAAa,SAAU,aAAcq6E,KAEnEz9E,KAAKjE,MA2BR,WACE,GAAI4hF,GAAOC,EAAcliF,EAAQkK,EAAU9J,EACzCgH,KAAaA,SAAW,SAAS2L,GAAQ,IAAK,GAAIC,GAAI,EAAGC,EAAI5S,KAAKoN,OAAQuF,EAAIC,EAAGD,IAAO,GAAIA,IAAK3S,OAAQA,KAAK2S,KAAOD,EAAM,MAAOC,EAAK,WACvI9P,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf8xE,GAAQ,WACN,QAASA,GAAMrtE,EAAMxM,EAAM+5E,GACzB9hF,KAAKyuB,OAAS1mB,EACd/H,KAAK0uB,MAAQna,EACbvU,KAAK+hF,WAAaD,EAClB9hF,KAAKgiF,SAASj6E,GACd/H,KAAKsO,aA+IP,MA5IAszE,GAAMhyE,UAAUowC,UAAY,WAC1B,GAAIzxB,GAAOoc,CAKX,OAJApc,GAAQluB,EAAEmuB,UAAUxuB,KAAKyuB,QACzBkc,EAAW,GAAIi3C,GAAM5hF,KAAK0uB,MAAOH,EAAOvuB,KAAK+hF,YAC7Cp3C,EAASzb,eAAiB7uB,EAAEmuB,UAAUxuB,KAAKkvB,gBAC3Cyb,EAASs3C,YAAc5hF,EAAEmuB,UAAUxuB,KAAKiiF,aACjCt3C,GAGTi3C,EAAMhyE,UAAU+I,MAAQ,WACtB,GAAIgyB,EAIJ,OAHAA,GAAW,GAAIi3C,GAAM5hF,KAAK0uB,MAAO1uB,KAAKyuB,OAAQzuB,KAAK+hF,YACnDp3C,EAASzb,eAAiBlvB,KAAKkvB,eAC/Byb,EAASs3C,YAAcjiF,KAAKiiF,YACrBt3C,GAGTi3C,EAAMhyE,UAAUsyE,WAAa,WAC3B,GAAIC,GAAUC,EAAYC,EAAU7+E,EAAKiX,CACzCjX,GAAMxD,KAAK+hF,WACXtnE,IACA,KAAK0nE,IAAY3+E,GACf6+E,EAAW7+E,EAAI2+E,GACfC,EAAax/D,QAAQ0/D,MAAMD,GACtBD,GAGL3nE,EAAQlT,KAAKvH,KAAKyuB,OAAO0zD,GAAYC,EAAWpiF,KAAKyuB,OAAO0zD,IAE9D,OAAO1nE,IAGTmnE,EAAMhyE,UAAU2yE,cAAgB,WAC9B,MAAO,MAGTX,EAAMhyE,UAAU4yE,QAAU,WACxB,MAAOxiF,MAAK0uB,OAGdkzD,EAAMhyE,UAAUuR,SAAW,SAASxb,GAOlC,MANa,OAATA,IACFA,GAAQ,GAEiB,MAAvB3F,KAAKyuB,OAAOzmB,UACdhI,KAAKkvB,eAAelnB,QAAUhI,KAAKyuB,OAAOzmB,SAExCrC,EACKtF,EAAEwC,UAAW7C,KAAKkvB,gBAEpB7uB,EAAEwC,UAAW7C,KAAKyuB,OAAQzuB,KAAKkvB,iBAGxC0yD,EAAMhyE,UAAUoyE,SAAW,SAASzzD,GAIlC,MAHAvuB,MAAKyuB,OAASF,EACdvuB,KAAKkvB,kBACLlvB,KAAKkiF,aACEliF,KAAKiiF,aAAc,GAG5BL,EAAMhyE,UAAU6yE,QAAU,SAASluE,EAAMxF,GAEvC,MADA/O,MAAKkvB,eAAe3a,GAAQxF,EACrB/O,KAAKiiF,aAAc,GAG5BL,EAAMhyE,UAAUtB,WAAa,WAC3B,GAAIo0E,GAAQC,EAAMC,CA2BlB,OA1BAD,GAAO3iF,KACP0iF,EAAS,SAASnuE,GAChB,MAAO,YACL,MAAoB,gBAATA,IAA2C,OAAtBA,EAAKu/B,OAAO,EAAG,GACtC6uC,EAAKpuE,GAEVxN,EAAQ9C,KAAK5D,EAAEmT,KAAKmvE,EAAKzzD,gBAAiB3a,GAAQ,EAC7CouE,EAAKl0D,OAAOla,GAEdouE,EAAKzzD,eAAe3a,KAG/BquE,EAAS,SAASruE,GAChB,MAAO,UAASxF,GACd,MAAoB,gBAATwF,IAA2C,OAAtBA,EAAKu/B,OAAO,EAAG,QAC7C6uC,EAAKpuE,GAAQxF,QAGX4zE,EAAKl0D,OAAOla,KAAUxF,GACxB4zE,EAAKzzD,eAAe3a,GAAQxF,EAC5B4zE,EAAKV,aAAc,SAEZU,GAAKzzD,eAAe3a,MAI1BlU,EAAEsJ,KAAK3J,KAAKyuB,OAAQ,SAAS1f,EAAOwF,GACzC,GAAIkyC,EAOJ,OANAA,IACE3gD,IAAK48E,EAAOnuE,GACZwH,IAAK6mE,EAAOruE,GACZsuE,YAAY,EACZC,cAAc,GAETxrE,OAAOC,eAAeorE,EAAMpuE,EAAMkyC,MAI7Cm7B,EAAMhyE,UAAU2jB,UAAY,WAC1B,GAAIxrB,EAKJ,OAJAA,IACEA,KAAQ1H,EAAEsY,MAAM3Y,KAAKyuB,QACrBla,KAAQvU,KAAK0uB,OAERluB,KAAKC,UAAUsH,IAGxB65E,EAAMhyE,UAAUmzE,WAAa,WAC3B,MAAO/iF,MAAKiiF,aAGdL,EAAMhyE,UAAUozE,oBAAsB,SAASv0C,GAC7C,MAAyC,OAAlCzuC,KAAKkvB,eAAeuf,IAG7BmzC,EAAMhyE,UAAUqzE,UAAY,WAG1B,MAFAjjF,MAAKiiF,aAAc,EACnBjiF,KAAKyuB,OAASzuB,KAAKmhB,WACZnhB,KAAKkvB,mBAGd0yD,EAAMhyE,UAAUm6B,OAAS,WAEvB,MADA/pC,MAAKkvB,kBACElvB,KAAKiiF,aAAc,GAG5BL,EAAMsB,aAAe,SAASC,GAC5B,GAAIC,GAAO9iE,CAGX,OAFA8iE,GAAQ5iF,KAAKwI,MAAMm6E,GACnB7iE,EAAQ,GAAIshE,GAAMwB,EAAMt8E,IAAKs8E,EAAMr7E,OAI9B65E,KAIT7hF,EAAQC,KAAKD,MAEb8hF,EAAe,SAAUzxE,GAKvB,QAASyxE,GAAapxE,EAAG+P,EAAM1E,EAASyE,GACtCvgB,KAAKyQ,EAAIA,EACTzQ,KAAKwgB,KAAOA,EACZxgB,KAAK8b,QAAUA,EACf9b,KAAKugB,KAAOA,EACZshE,EAAahyE,UAAUJ,YAAYxL,KAAKjE,MAG1C,MAZA6C,GAAOg/E,EAAczxE,GAErByxE,EAAazhE,SAAW,KAAM,UAAW,aAAc,WAUhDyhE,GAEN9hF,EAAM4Q,SAET9G,EAAW,SAAS9G,EAAIsgF,EAAOC,EAASC,GACtC,GAAI3gE,EAoBJ,OAnBAA,MACAA,EAAQlB,WAAa,SAASnN,EAAMxM,EAAMy7E,EAAK1B,GAO7C,MANW,OAAP0B,IACFA,EAAM5B,GAES,MAAbE,IACFA,MAEK,GAAI0B,GAAIjvE,EAAMxM,EAAM+5E,IAE7Bl/D,EAAQ4gE,IAAM5B,EACdh/D,EAAQ0/D,OACNmB,MAAK,SAAS10E,GACZ,MAAO8c,UAAS9c,EAAO,KAEzB20E,QAAO,SAAS30E,GACd,MAAO6H,YAAW7H,EAAO,MAGtB6T,GAGTjjB,EAASiD,QAAQjD,OAAO,aAExBA,EAAO0H,QAAQ,YAAa,KAAM,QAAS,UAAW,aAAcwC,KAEnE5F,KAAKjE,MA2BR,WACE,GAAI2jF,GAAyBC,EAAuB5yE,EAAUrR,EAAQI,EAAOwS,EAC3E1P,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbwS,EAAOvS,KAAKD,MAAMwS,KAElBvB,EAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,aAExBikF,EAAwB,SAAUxzE,GAGhC,QAASwzE,KACP5jF,KAAKwgB,QA+BP,MAlCA3d,GAAO+gF,EAAuBxzE,GAM9BwzE,EAAsBh0E,UAAU0a,OAAS,SAAS9J,GAChD,MAAOxgB,MAAKwgB,KAAOngB,EAAE2nC,SAAUhoC,KAAKwgB,KAAMA,QAG5CojE,EAAsBh0E,UAAUi0E,UAAY,SAAS/8E,EAAK+G,GACxD,GAAIi2E,EAQJ,OAPW,OAAPj2E,IACFA,MAEFi2E,EAAW,SAAS3rE,GAElB,MADAA,GAAQ5F,EAAK4F,EAAO,KACbtK,EAAIsK,IAAU,aAEhBrR,EAAIsM,QAAQ,UAAW0wE,IAGhCF,EAAsBh0E,UAAUjN,QAAU,SAAS4R,EAAM1G,GACvD,GAAI/G,EAEJ,OADAA,GAAM9G,KAAKwgB,KAAKjM,GACXzN,EAGD+G,EACK7N,KAAK6jF,UAAU/8E,EAAK+G,GAEtB/G,EALE,IAQJ88E,GAEN7jF,EAAM4Q,SAEThR,EAAOijB,QAAQ,aAAcghE,GAE7BD,EAA0B,SAASt5D,EAAUre,EAAOjJ,EAAIkD,EAAWoG,GACjE,GAAI03E,GAAW1gE,EAAM2gE,CAuGrB,OAtGAD,GAAY,SAASzgE,EAAQzP,GAC3B,GAAIib,EAKJ,OAJAA,GAAU/rB,EAAGG,QACb8N,EAASsS,EAAQzP,EAAM,SAAS09B,GAC9B,MAAOziB,GAAQnsB,QAAQ4uC,KAElBziB,EAAQ1rB,SAEjB4gF,EAAW,SAASj8E,EAAMub,GACxB,GAAIxK,GAAOvE,EAAM8C,EAAKxT,EAAQs0C,EAAU30C,EAAKyR,EAAQq8B,CAErD,IADA9tC,EAAMnD,EAAEC,IAAIyH,EAAKkF,MAAM,KAAMsF,GAAOgC,EAAO/Q,EAAI,GAAIK,EAASL,EAAI,GAC5DK,EAUF,IATAoR,EAASpR,EAAOoJ,MAAM,UACtBgI,EAAS5U,EAAEqN,OAAOuH,EAAQ,SAAS/B,GACjC,MAAOA,GAAI9F,SAEb6H,EAAS5U,EAAEC,IAAI2U,EAAQ,SAAS/B,GAC9B,MAAOX,GAAKW,EAAIE,QAAQ,MAAO,OAEjCvP,KACAiV,EAAQ,EACDA,EAAQ7D,EAAO7H,QACpBiK,KACAA,EAAIpC,EAAO6D,IAAU7D,EAAO6D,EAAQ,GACpCjV,EAAO0D,KAAK8P,GACZyB,GAAgB,MAGlBjV,KAQF,OANAytC,GAASjxC,EAAEC,IAAIuD,EAAQ,SAASogF,GAC9B,MAAO5jF,GAAEixC,OAAO2yC,GAAO,KAEzB9rC,EAAW93C,EAAEC,IAAIgxC,EAAQ,SAAS/wC,GAChC,MAAOwjF,GAAUzgE,EAAQ/iB,KAEpBwC,EAAGoX,IAAIg+B,GAAUh1C,KAAK,WAC3B,GAAIwP,GAAGjD,EAAKsF,EAAKyxC,EAASw9B,EAAOl1E,CAEjC,KADA03C,KACK9zC,EAAI,EAAGqC,EAAMnR,EAAOuJ,OAAQuF,EAAIqC,EAAKrC,IACxCsxE,EAAQpgF,EAAO8O,GACfjD,EAAM4H,OAAO9D,KAAKywE,GAAO,GACzBl1E,EAAQk1E,EAAMv0E,GACd+2C,EAAQ/2C,GAAO4T,EAAOtP,MAAMjF,EAE9B,QAAQwF,EAAMkyC,MAGlBpjC,EAAO,SAASC,EAAQC,EAAKC,GAkD3B,MAjDID,GAAIwnC,GAAG,MACTxnC,EAAI1P,KAAK,OAAQ,KAEnB0P,EAAIgB,GAAG,aAAc,SAAShW,GAC5B,GAAIyV,EAEJ,IADAA,EAAS+oB,EAAEx+B,EAAM0V,gBACZD,EAAOjc,KAAK,YAAcyb,EAAO0gE,iBAAmBlgE,EAAOjc,KAAK,UACnE,MAAOi8E,GAASxgE,EAAO2gE,MAAO7gE,GAAQngB,KAAK,SAAS8R,GAClD,GAAImvE,GAASC,EAAcC,EAAiB/vE,EAAMkyC,EAAS3/C,EAAKyF,CAkBhE,OAjBAgI,GAAOU,EAAO,GAAIwxC,EAAUxxC,EAAO,GACnC1I,EAAOP,EAAMqC,UACT9B,IACFk6C,EAAQl6C,KAAOA,EAAK8X,UAEtBvd,EAAMujB,EAAS1nB,QAAQ4R,GACvB6vE,EAAU/5D,EAASw5D,UAAU/8E,EAAK2/C,GAC9BjjC,EAAO0gE,iBACTG,EAAe7jF,KAAKwI,MAAMwa,EAAO0gE,gBACjCI,EAAkBv3C,EAAEk3C,MAAMI,GAC1BD,EAAUA,EAAU,IAAME,EAC1BtgE,EAAOjc,KAAK,SAAUyb,EAAO0gE,iBAE/BlgE,EAAOjc,KAAK,UAAWq8E,GACnBpgE,EAAO+mC,GAAG,MACZ/mC,EAAOnQ,KAAK,OAAQuwE,GAEf7gE,EAAIgB,GAAG,QAAS,SAAShW,GAC9B,IAAIA,EAAMg2E,UAAWh2E,EAAMi2E,UAG3Bj2E,EAAME,iBACNuV,EAAS+oB,EAAEx+B,EAAM0V,gBACbD,EAAOykB,SAAS,YAApB,CAIA,OADA27C,EAAUpgE,EAAOjc,KAAK,WACdwG,EAAMqnC,OACZ,IAAK,GACH3vC,EAAUa,IAAIs9E,GACd9gE,EAAO/N,QACP,MACF,KAAK,GACHrV,OAAO00B,KAAKwvD,GAEhB,MAAO/3E,GAAgBzF,kBAKxB0c,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,SAAU,aAAc,UAAW,KAAM,cAAe,kBAAmBwgE,KAE3F1/E,KAAKjE,MA2BR,WACE,GAAIykF,GAAmB9kF,EAAQI,EAC7B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb0kF,EAAoB,SAAUr0E,GAK5B,QAASq0E,GAAkBh0E,EAAG0d,EAAQrS,EAASyE,EAAMC,GACnDxgB,KAAKyQ,EAAIA,EACTzQ,KAAKsgB,MAAQ6N,EACbnuB,KAAK8b,QAAUA,EACf9b,KAAKugB,KAAOA,EACZvgB,KAAKwgB,KAAOA,EACZikE,EAAkB50E,UAAUJ,YAAYxL,KAAKjE,MA6U/C,MAvVA6C,GAAO4hF,EAAmBr0E,GAE1Bq0E,EAAkBrkE,SAAW,KAAM,WAAY,aAAc,UAAW,WAWxEqkE,EAAkB70E,UAAU80E,mBAAqB,SAASpkE,GACxD,GAAIqkE,EAEJ,OADAA,GAAarkE,EAAMiiE,gBACXviF,KAAKwgB,KAAK7d,QAAQ2d,EAAMkiE,WAAc,IAAMliE,EAAMqkE,IAG5DF,EAAkB70E,UAAUg1E,4BAA8B,SAAStkE,GACjE,MAAOtgB,MAAKwgB,KAAK7d,QAAQ2d,EAAMkiE,UAAWliE,EAAM/Q,SAGlDk1E,EAAkB70E,UAAU6kB,OAAS,SAASlgB,EAAMxM,EAAM+5E,EAAW+C,GACnE,GAAI/1D,GAAS1rB,EAAS0D,CAoBtB,OAnBiB,OAAbg7E,IACFA,MAEiB,MAAf+C,IACFA,MAEF/1D,EAAU9uB,KAAKyQ,EAAEvN,QACjB4D,EAAM9G,KAAKwgB,KAAK7d,QAAQ4R,GACxBnR,EAAUpD,KAAKugB,KAAK3a,KAAKkB,EAAKtG,KAAKC,UAAUsH,GAAO88E,GACpDzhF,EAAQ6hB,QAAQ,SAAU7c,GACxB,MAAO,UAAS08E,EAAOC,GACrB,MAAOj2D,GAAQnsB,QAAQyF,EAAMkY,MAAMoB,WAAWnN,EAAMuwE,EAAO,KAAMhD,MAElE9hF,OACHoD,EAAQyD,MAAM,SAAUuB,GACtB,MAAO,UAASL,EAAMtB,GACpB,MAAOqoB,GAAQ3nB,OAAOY,KAEvB/H,OACI8uB,EAAQ1rB,SAGjBqhF,EAAkB70E,UAAUgS,OAAS,SAAStB,EAAOzc,GACnD,GAAIirB,GAAS1rB,EAAS0D,CAatB,OAZc,OAAVjD,IACFA,MAEFirB,EAAU9uB,KAAKyQ,EAAEvN,QACjB4D,EAAM9G,KAAK0kF,mBAAmBpkE,GAC9Bld,EAAUpD,KAAKugB,KAAK,UAAUzZ,KAASjD,GACvCT,EAAQ6hB,QAAQ,SAASld,EAAMtB,GAC7B,MAAOqoB,GAAQnsB,QAAQ2d,KAEzBld,EAAQyD,MAAM,SAASkB,EAAMtB,GAC3B,MAAOqoB,GAAQ3nB,OAAOmZ,KAEjBwO,EAAQ1rB,SAGjBqhF,EAAkB70E,UAAUs7D,QAAU,SAASrI,EAAQl9D,GACrD,GAAIwyC,EASJ,OARa,OAATxyC,IACFA,GAAQ,GAEVwyC,EAAW93C,EAAEC,IAAIuiE,EAAQ,SAAUz6D,GACjC,MAAO,UAAS7H,GACd,MAAO6H,GAAMwmB,KAAKruB,GAAG,KAEtBP,OACIA,KAAKyQ,EAAE0J,IAAIg+B,IAGpBssC,EAAkB70E,UAAUgf,KAAO,SAAStO,EAAO3a,EAAO9B,EAAQ4iD,EAASu+B,GACzE,GAAIj9E,GAAM+mB,EAAS1rB,EAAS0D,CAW5B,OAVa,OAATnB,IACFA,GAAQ,GAEI,MAAV9B,IACFA,MAEmB,MAAjBmhF,IACFA,GAAgB,GAElBl2D,EAAU9uB,KAAKyQ,EAAEvN,SACZod,EAAMyiE,cAAgBp9E,GACzBmpB,EAAQnsB,QAAQ2d,GACTwO,EAAQ1rB,UAEjB0D,EAAM9G,KAAK0kF,mBAAmBpkE,GAC9BvY,EAAOvH,KAAKC,UAAU6f,EAAMa,SAASxb,IAEnCvC,EADEuC,EACQ3F,KAAKugB,KAAK5a,MAAMmB,EAAKiB,EAAMlE,EAAQ4iD,GAEnCzmD,KAAKugB,KAAK1a,IAAIiB,EAAKiB,EAAMlE,EAAQ4iD,GAE7CrjD,EAAQ6hB,QAAQ,SAAU7c,GACxB,MAAO,UAASL,EAAMtB,EAAQf,EAASY,GAKrC,MAJAga,GAAM2hE,aAAc,EACpB3hE,EAAMmO,OAASpuB,EAAEwC,OAAOyd,EAAMa,WAAYpZ,GAC1CuY,EAAM4O,kBACN5O,EAAM4hE,aACF8C,EACKl2D,EAAQnsB,SAAS2d,EAAO5a,MAExBopB,EAAQnsB,QAAQ2d,KAG1BtgB,OACHoD,EAAQyD,MAAM,SAASkB,EAAMtB,GAC3B,MAAOqoB,GAAQ3nB,OAAOY,KAEjB+mB,EAAQ1rB,UAGjBqhF,EAAkB70E,UAAU6vE,cAAgB,SAASn/D,EAAOmuB,EAAW9oC,GACrE,GAAIoC,GAAM+mB,EAAS1rB,EAAS0D,CAK5B,OAJa,OAATnB,IACFA,GAAQ,GAEVmpB,EAAU9uB,KAAKyQ,EAAEvN,SACZod,EAAMyiE,cAAgBp9E,GACzBmpB,EAAQnsB,QAAQ2d,GACTwO,EAAQ1rB,UAEjB0D,EAAM9G,KAAK4kF,4BAA4BtkE,GACvCvY,KACAA,EAAK0mC,GAAanuB,EAAMa,WAEtB/d,EADEuC,EACQ3F,KAAKugB,KAAK5a,MAAMmB,EAAKiB,GAErB/H,KAAKugB,KAAK1a,IAAIiB,EAAKiB,GAE/B3E,EAAQ6hB,QAAQ,SAAU7c,GACxB,MAAO,UAASL,EAAMtB,GAKpB,MAJA6Z,GAAM2hE,aAAc,EACpB3hE,EAAMmO,OAASpuB,EAAEwC,OAAOyd,EAAMa,WAAYpZ,GAC1CuY,EAAM4O,kBACN5O,EAAM4hE,aACCpzD,EAAQnsB,QAAQ2d,KAExBtgB,OACHoD,EAAQyD,MAAM,SAASkB,EAAMtB,GAC3B,MAAOqoB,GAAQ3nB,OAAOY,KAEjB+mB,EAAQ1rB,UAGjBqhF,EAAkB70E,UAAUjD,QAAU,SAAS2T,GAC7C,GAAIwO,GAAS1rB,EAAS0D,CActB,OAbAgoB,GAAU9uB,KAAKyQ,EAAEvN,QACjB4D,EAAM9G,KAAK0kF,mBAAmBpkE,GAC9Bld,EAAUpD,KAAKugB,KAAKza,IAAIgB,GACxB1D,EAAQ6hB,QAAQ,SAASld,EAAMtB,GAK7B,MAJA6Z,GAAM4O,kBACN5O,EAAMmO,OAAS1mB,EACfuY,EAAM2hE,aAAc,EACpB3hE,EAAM4hE,aACCpzD,EAAQnsB,QAAQ2d,KAEzBld,EAAQyD,MAAM,SAASkB,EAAMtB,GAC3B,MAAOqoB,GAAQ3nB,OAAOY,KAEjB+mB,EAAQ1rB,SAGjBqhF,EAAkB70E,UAAUq1E,UAAY,SAAS1wE,EAAM1Q,EAAQ4iD,EAAS/gD,GACtE,GAAIw/E,GAAap+E,CAcjB,OAbe,OAAX2/C,IACFA,MAEa,MAAX/gD,IACFA,GAAU,GAEZoB,EAAM9G,KAAKwgB,KAAK7d,QAAQ4R,GACxB2wE,GACEx/E,YAEG+gD,EAAQ0+B,mBACXD,EAAYx/E,QAAQ,wBAA0B,KAEzC1F,KAAKugB,KAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAUiF,GAC5D,MAAO,UAASL,GACd,GAAIkN,EAIJ,OAHAA,GAAS5U,EAAEC,IAAIyH,EAAKA,KAAM,SAASxH,GACjC,MAAO6H,GAAMkY,MAAMoB,WAAWnN,EAAMhU,KAElCmF,GACMuP,EAAQlN,EAAKrC,SAEhBuP,IAERjV,QAGLykF,EAAkB70E,UAAUw1E,kBAAoB,SAAS7wE,EAAMqF,EAAI60B,EAAW5qC,EAAQ4iD,GACpF,GAAIy+B,GAAap+E,CAWjB,OAVe,OAAX2/C,IACFA,MAEF3/C,EAAM9G,KAAKwgB,KAAK7d,QAAQ4R,EAAMqF,GAC9BsrE,GACEx/E,YAEG+gD,EAAQ0+B,mBACXD,EAAYx/E,QAAQ,wBAA0B,KAEzC1F,KAAKugB,KAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAUiF,GAC5D,MAAO,UAASL,GACd,GAAIuY,EAGJ,OAFAA,GAAQlY,EAAMkY,MAAMoB,WAAWnN,EAAMxM,EAAKA,KAAK0mC,IAC/CnuB,EAAM/Q,OAASqK,EACR0G,IAERtgB,QAGLykF,EAAkB70E,UAAU0W,SAAW,SAAS/R,EAAMqF,EAAI/V,EAAQ4iD,GAChE,GAAIy+B,GAAap+E,CAcjB,OAbe,OAAX2/C,IACFA,MAEF3/C,EAAM9G,KAAKwgB,KAAK7d,QAAQ4R,GACpBqF,IACF9S,EAAMA,EAAM,IAAM8S,GAEpBsrE,GACEx/E,YAEG+gD,EAAQ0+B,mBACXD,EAAYx/E,QAAQ,wBAA0B,KAEzC1F,KAAKugB,KAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAUiF,GAC5D,MAAO,UAASL,GACd,MAAOK,GAAMkY,MAAMoB,WAAWnN,EAAMxM,EAAKA,QAE1C/H,QAGLykF,EAAkB70E,UAAUy1E,YAAc,SAAS9wE,EAAMqF,EAAI/V,EAAQ4iD,GACnE,GAAIy+B,GAAap+E,CAcjB,OAbe,OAAX2/C,IACFA,MAEF3/C,EAAM9G,KAAKwgB,KAAK7d,QAAQ4R,GACpBqF,IACF9S,EAAMA,EAAM,IAAM8S,GAEpBsrE,EAAc7kF,EAAE2nC,OACdtiC,YACC+gD,GACEA,EAAQ0+B,mBACXD,EAAYx/E,QAAQ,wBAA0B,KAEzC1F,KAAKugB,KAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAUiF,GAC5D,MAAO,UAASL,GACd,MAAOA,GAAKA,OAEb/H,QAGLykF,EAAkB70E,UAAU01E,eAAiB,SAAS/wE,EAAM1Q,EAAQ4iD,GAClE,GAAIy+B,GAAap+E,CAQjB,OAPe,OAAX2/C,IACFA,MAEF3/C,EAAM9G,KAAKwgB,KAAK7d,QAAQ4R,GACxB2wE,EAAc7kF,EAAE2nC,OACdtiC,YACC+gD,GACIzmD,KAAKugB,KAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAUiF,GAC5D,MAAO,UAASL,GACd,GAAIrC,GAASuP,CASb,OARAvP,GAAUqC,EAAKrC,UACfuP,KACAA,EAAO4tD,OAASxiE,EAAEC,IAAIyH,EAAKA,KAAM,SAASxH,GACxC,MAAO6H,GAAMkY,MAAMoB,WAAWnN,EAAMhU,KAEtC0U,EAAOwJ,MAAQoN,SAASnmB,EAAQ,sBAAuB,IACvDuP,EAAOvR,QAAUmoB,SAASnmB,EAAQ,yBAA2B,EAAG,IAChEuP,EAAO6tD,YAAcj3C,SAASnmB,EAAQ,kBAAmB,IAClDuP,IAERjV,QAGLykF,EAAkB70E,UAAU21E,qBAAuB,SAAShxE,EAAMqF,EAAI/V,EAAQ4iD,GAC5E,GAAIy+B,GAAap+E,CAWjB,OAVe,OAAX2/C,IACFA,MAEF3/C,EAAM9G,KAAKwgB,KAAK7d,QAAQ4R,GACpBqF,IACF9S,EAAMA,EAAM,IAAM8S,GAEpBsrE,EAAc7kF,EAAE2nC,OACdtiC,YACC+gD,GACIzmD,KAAKugB,KAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAUiF,GAC5D,MAAO,UAASL,GACd,GAAIrC,GAASuP,CAOb,OANAvP,GAAUqC,EAAKrC,UACfuP,KACAA,EAAOlN,KAAOA,EAAKA,KACnBkN,EAAOwJ,MAAQoN,SAASnmB,EAAQ,sBAAuB,IACvDuP,EAAOvR,QAAUmoB,SAASnmB,EAAQ,yBAA2B,EAAG,IAChEuP,EAAO6tD,YAAcj3C,SAASnmB,EAAQ,kBAAmB,IAClDuP,IAERjV,QAGLykF,EAAkB70E,UAAUjN,QAAU,SAAS8jD,GAC7C,GAAI+6B,GAAO39E,CAqBX,OApBAA,MACqB,MAAjB4iD,EAAQ3iD,QACVD,EAAOiW,QAAU2sC,EAAQ3iD,OAEN,MAAjB2iD,EAAQ6e,QACVzhE,EAAOkzB,GAAK0vB,EAAQ6e,OAEC,MAAnB7e,EAAQ2gB,UACVvjE,EAAO8xB,KAAO8wB,EAAQ2gB,SAEA,MAApB3gB,EAAQ6Z,WACVz8D,EAAOwnC,MAAQob,EAAQ6Z,UAEJ,MAAjB7Z,EAAQ8O,QACV1xD,EAAOsjD,UAAYV,EAAQ8O,OAEL,MAApB9O,EAAQ++B,WACV3hF,EAAO2hF,SAAW/+B,EAAQ++B,UAE5BhE,IAAU/6B,EAAQ++B,UAAY/+B,EAAQ8O,OAC/Bv1D,KAAKqlF,YAAY,WAAY,KAAMxhF,GACxC29E,MAAOA,KAIJiD,GAEN1kF,EAAM4Q,SAEThR,EAASiD,QAAQjD,OAAO,aAExBA,EAAOijB,QAAQ,UAAW6hE,IAEzBxgF,KAAKjE,MA2BR,WACE,GAAIylF,GAAgB9lF,EAAQI,EAC1B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb0lF,EAAiB,SAAUr1E,GAKzB,QAASq1E,GAAevxD,GACtBuxD,EAAe51E,UAAUJ,YAAYxL,KAAKjE,MAsC5C,MA3CA6C,GAAO4iF,EAAgBr1E,GAEvBq1E,EAAerlE,SAAW,cAM1BqlE,EAAe71E,UAAU9J,IAAM,SAAS4J,EAAKg2E,GAC3C,GAAIC,EAEJ,OADAA,GAAkB58E,aAAa68E,QAAQl2E,GACf,OAApBi2E,EACKD,GAAY,KAEdllF,KAAKwI,MAAM28E,IAGpBF,EAAe71E,UAAUmM,IAAM,SAASrM,EAAK9C,GAC3C,MAAIvM,GAAEoX,SAAS/H,GACNrP,EAAEsJ,KAAK+F,EAAK,SAAUtH,GAC3B,MAAO,UAASwE,EAAK8C,GACnB,MAAOtH,GAAM2T,IAAIrM,EAAK9C,KAEvB5M,OAEI+I,aAAa88E,QAAQn2E,EAAKlP,KAAKC,UAAUmM,KAIpD64E,EAAe71E,UAAU4/C,SAAW,SAAS9/C,GAC3C,GAAIX,EAEJ,OADAA,GAAQ/O,KAAK8F,IAAI4J,GACA,OAAVX,GAGT02E,EAAe71E,UAAUgS,OAAS,SAASlS,GACzC,MAAO3G,cAAa+8E,WAAWp2E,IAGjC+1E,EAAe71E,UAAUsQ,MAAQ,WAC/B,MAAOnX,cAAamX,SAGfulE,GAEN1lF,EAAM4Q,SAEThR,EAASiD,QAAQjD,OAAO,aAExBA,EAAOijB,QAAQ,aAAc6iE,IAE5BxhF,KAAKjE,MA2BR,WACE,GAAI+lF,GAAaj6D,EAAQnsB,EAAQI,EAC/B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfgc,GAAS,SAASk6D,EAAK3uE,GAErB,MADAA,GAAMhX,EAAEsY,MAAMtB,GACP2uE,EAAI5yE,QAAQ,MAAO,SAAS+E,GACjC,MAAO/B,QAAOiB,EAAIkW,YAItBxtB,EAAQC,KAAKD,MAEbgmF,EAAc,SAAU31E,GAKtB,QAAS21E,GAAYr/E,GACnB1G,KAAK0G,OAASA,EACd1G,KAAKwgB,QACLxgB,KAAKimF,QAAUjmF,KAAK0G,OAAOZ,IAAI,OA8BjC,MArCAjD,GAAOkjF,EAAa31E,GAEpB21E,EAAY3lE,SAAW,aAQvB2lE,EAAYn2E,UAAU0a,OAAS,SAAS9J,GACtC,MAAOxgB,MAAKwgB,KAAOngB,EAAE2nC,MAAMhoC,KAAKwgB,KAAMA,IAGxCulE,EAAYn2E,UAAUjN,QAAU,WAC9B,GAAIqrB,GAAMzZ,EAAMzN,CAEhB,IADAknB,EAAO3tB,EAAEwgC,QAAQ1wB,WACG,IAAhB6d,EAAK5gB,OACP,KAAM6lB,OAAM,6BAId,OAFA1e,GAAOyZ,EAAKnb,MAAM,EAAG,GAAG,GACxB/L,EAAMglB,EAAO9rB,KAAKwgB,KAAKjM,GAAOyZ,EAAKnb,MAAM,IAClCiZ,EAAO,SAAUzrB,EAAE6lF,QAAQlmF,KAAKimF,QAAS,KAAM5lF,EAAE0xB,UAAUjrB,EAAK,QAGzEi/E,EAAYn2E,UAAUmkE,gBAAkB,WACtC,GAAIjtE,EAEJ,OADAA,GAAM9G,KAAK2C,QAAQuN,MAAMlQ,KAAMmQ,WAC3B,gBAAgB8uE,KAAKn4E,GAChBA,EAEL,MAAMm4E,KAAKn4E,GACN5G,OAAO0a,SAASkX,SAAW,KAAO5xB,OAAO0a,SAASoX,KAAOlrB,EAE3D5G,OAAO0a,SAASkX,SAAW,KAAO5xB,OAAO0a,SAASoX,KAAO,IAAMlrB,GAGjEi/E,GAENhmF,EAAM4Q,SAEThR,EAASiD,QAAQjD,OAAO,aAExBA,EAAOijB,QAAQ,UAAWmjE,IAEzB9hF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,GAC1B,GAAIigE,GAAMxjE,CA0BV,OAzBAwjE,GAAO,SAASh4C,EAAUqnC,GACxB,MAAOtvD,GAAMG,SAASmvD,EAAUrnC,IAElCxrB,GACE5E,MACElY,IAAK,SAASsoC,GACZ,MAAOg4C,GAAKh4C,EAAU,mCAG1Bi4C,WACEvgF,IAAK,SAASsoC,GACZ,MAAOg4C,GAAKh4C,EAAU,wCAG1BzY,MACE7vB,IAAK,SAASsoC,GACZ,MAAOg4C,GAAKh4C,EAAU,mCAG1B/C,OACEvlC,IAAK,SAASsoC,GACZ,MAAOg4C,GAAKh4C,EAAU,qCAIrB,SAASzD,GACd,MAAOA,GAAS2D,uBAAyB1rB,IAI7CjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,8CAA+C,UAAW8+E,KAExEliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBn0E,EAAYjS,CAE1CA,GAAQC,KAAKD,MAEbiS,EAAahS,KAAKD,MAAMiS,WAExBm0E,EAAmB,SAAShgE,GAC1B,GAAImgE,GAAO1jE,CA4BX,OA3BA0jE,GAAQ,SAAS/rE,EAAWk7D,GAC1B,MAAOtvD,GAAM8+D,UAAUxP,GACrB37D,QAASS,KAGbqI,GACE5E,MACE/B,KAAM,SAAS1B,GACb,MAAO+rE,GAAM/rE,EAAW,4BAG5B8rE,WACEpqE,KAAM,SAAS1B,GACb,MAAO+rE,GAAM/rE,EAAW,iCAG5Bob,MACE1Z,KAAM,SAAS1B,GACb,MAAO+rE,GAAM/rE,EAAW,4BAG5B8wB,OACEpvB,KAAM,SAAS1B,GACb,MAAO+rE,GAAM/rE,EAAW,8BAIvB,SAASowB,GACd,MAAOA,GAAS0D,iBAAmBzrB,IAIvCjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,wCAAyC,UAAW8+E,KAElEliF,KAAKjE,MA2BR,WACE,GAAIG,GAAcR,EAAQwmF,EAAkBpmF,CAE5CA,GAAQC,KAAKD,MAEbI,EAAeJ,EAAMI,aAErBgmF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,EAAOoO,GAC/C,GAAIw3C,GAAY3jE,CAkDhB,OAjDAA,MACA2jE,EAAa,oBACb3jE,EAAQ61B,SAAW,SAASl+B,EAAW/W,GACrC,GAAIK,EAIJ,OAHAA,GAAS+e,EAAQ4jE,eAAejsE,GAChC1W,EAAOiW,QAAUS,EACjB1W,EAAOL,IAAMA,EACN2iB,EAAMG,SAAS,QAAS,SAAUziB,IAE3C+e,EAAQ8yD,WAAa,SAASn7D,EAAWnQ,GACvC,GAAIvG,EAKJ,OAJAA,IACEiW,QAAWS,GAEbqI,EAAQgiC,iBAAiBrqC,EAAW1W,GAC7BsiB,EAAM8+D,UAAU76E,EAAMvG,IAE/B+e,EAAQgiC,iBAAmB,SAASrqC,EAAW1W,GAC7C,GAAI+X,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAAShzB,IAAIH,EAAM/X,IAE5B+e,EAAQ4jE,eAAiB,SAASjsE,GAChC,GAAIqB,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAASjpC,IAAI8V,QAEtBgH,EAAQy8C,OAAS,SAASN,GACxB,GAAIj4D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,cAAeo8D,GAC5BskB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ28C,SAAW,SAASR,GAC1B,GAAIj4D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,gBAAiBo8D,GAC9BskB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ6zB,MAAQ,SAASsoB,GACvB,GAAIj4D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,aAAco8D,GAC3BskB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ2J,QAAU,SAASwyC,GACzB,GAAIj4D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,eAAgBo8D,GAC7BskB,EAAMz9E,KAAKkB,IAEb,SAAS6jC,GACd,MAAOA,GAAS/rB,MAAQgE,IAI5BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,6BAA8B,UAAW,UAAW,UAAW,aAAc8+E,KAE3FliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,GACxC,GAAI/d,EA4DJ,OA3DAA,MACAA,EAAQ9c,IAAM,SAASsE,EAAMgkC,GAC3B,MAAOjoB,GAAMk/D,YAAY,WAAaj7E,EAAMgkC,IAE9CxrB,EAAQ6jE,YAAc,SAASr8E,EAAMgkC,EAAUs4C,EAAY33D,GACzD,GAAI43D,GAAa9iF,EAAQiD,CASzB,OARAA,GAAM65B,EAAMh+B,QAAQ,WAAayH,GACjCtD,EAAMA,EAAM,IAAMsnC,EAAW,gBAC7BvqC,GACE+V,GAAI8sE,GAENC,GACE53D,QAASA,GAEJs0D,EAAMz9E,KAAKkB,EAAK6/E,EAAa9iF,GAAQV,KAAK,SAAUiF,GACzD,MAAO,UAASL,GACd,MAAOA,GAAKA,OAEb/H,QAEL4iB,EAAQgkE,kBAAoB,SAASx8E,EAAMgkC,EAAUs4C,GACnD,GAAI7iF,GAAQiD,CAMZ,OALAA,GAAM65B,EAAMh+B,QAAQ,WAAayH,GACjCtD,EAAMA,EAAM,IAAMsnC,EAAW,oBAC7BvqC,GACE+V,GAAI8sE,GAECrD,EAAMv9E,IAAIgB,EAAKjD,GAAQV,KAAK,SAAUiF,GAC3C,MAAO,UAASL,GACd,MAAOA,GAAKA,OAEb/H,QAEL4iB,EAAQikE,cAAgB,SAASz8E,EAAMgkC,EAAUs4C,GAC/C,GAAI7iF,GAAQiD,CAMZ,OALAA,GAAM65B,EAAMh+B,QAAQ,WAAayH,GACjCtD,EAAMA,EAAM,IAAMsnC,EAAW,kBAC7BvqC,GACE+V,GAAI8sE,GAECrD,EAAMz9E,KAAKkB,EAAK,KAAMjD,GAAQV,KAAK,SAAUiF,GAClD,MAAO,UAASL,GACd,MAAOA,GAAKA,OAEb/H,QAEL4iB,EAAQkkE,gBAAkB,SAAS18E,EAAMgkC,EAAUs4C,GACjD,GAAI7iF,GAAQiD,CAMZ,OALAA,GAAM65B,EAAMh+B,QAAQ,WAAayH,GACjCtD,EAAMA,EAAM,IAAMsnC,EAAW,oBAC7BvqC,GACE+V,GAAI8sE,GAECrD,EAAMz9E,KAAKkB,EAAK,KAAMjD,GAAQV,KAAK,SAAUiF,GAClD,MAAO,UAASL,GACd,MAAOA,GAAKA,OAEb/H,QAEE,SAAS2qC,GACd,MAAOA,GAASo8C,QAAUnkE,IAI9BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,+BAAgC,UAAW,UAAW,UAAW8+E,KAE/EliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,GAC1B,GAAIvD,EAKJ,OAJAA,MACAA,EAAQ9c,IAAM,SAASgc,GACrB,MAAOqE,GAAMG,SAAS,cAAexE,IAEhC,SAAS6oB,GACd,MAAOA,GAASroB,YAAcM,IAIlCjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,mCAAoC,UAAW8+E,KAE7DliF,KAAKjE,MA2BR,WACE,GAAIG,GAAcR,EAAQwmF,EAAkBpmF,CAE5CA,GAAQC,KAAKD,MAEbI,EAAeJ,EAAMI,aAErBgmF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,EAAOoO,EAAUhsC,GACzD,GAAIwjF,GAAY3jE,CAmFhB,OAlFAA,MACA2jE,EAAa,qBACb3jE,EAAQ9c,IAAM,SAASyU,EAAW6mD,GAChC,GAAIv9D,EAGJ,OAFAA,GAAS+e,EAAQ4jE,eAAejsE,GAChC1W,EAAOiW,QAAUS,EACV4L,EAAMG,SAAS,SAAU86C,EAASv9D,IAE3C+e,EAAQ61B,SAAW,SAASl+B,EAAW/W,GACrC,GAAIK,EAIJ,OAHAA,GAAS+e,EAAQ4jE,eAAejsE,GAChC1W,EAAOiW,QAAUS,EACjB1W,EAAOL,IAAMA,EACN2iB,EAAMG,SAAS,SAAU,SAAUziB,IAE5C+e,EAAQokE,kBAAoB,SAAS9rE,GACnC,MAAOiL,GAAM8+D,UAAU,SAAU/pE,IAEnC0H,EAAQ3G,KAAO,SAAS1B,EAAWW,EAASurC,GAC1C,GAAI5iD,EAMJ,OALAA,IACEiW,QAASS,GAEX1W,EAASxD,EAAEwC,UAAWgB,EAAQqX,OAC9B0H,EAAQgiC,iBAAiBrqC,EAAW1W,GAC7BsiB,EAAMm/D,eAAe,SAAUzhF,EAAQ4iD,IAEhD7jC,EAAQi2B,WAAa,SAASt+B,EAAWxS,GACvC,GAAIlE,GAAQiD,CAMZ,OALAA,GAAM65B,EAAMh+B,QAAQ,sBACpBkB,GACEojF,WAAY1sE,EACZ2sE,YAAan/E,GAERs7E,EAAMz9E,KAAKkB,EAAKjD,IAEzB+e,EAAQy8C,OAAS,SAAS+B,GACxB,GAAIt6D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,eAAgBy+D,GAC7BiiB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ28C,SAAW,SAAS6B,GAC1B,GAAIt6D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,iBAAkBy+D,GAC/BiiB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ6zB,MAAQ,SAAS2qB,GACvB,GAAIt6D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,cAAey+D,GAC5BiiB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ2J,QAAU,SAAS60C,GACzB,GAAIt6D,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,gBAAiBy+D,GAC9BiiB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ0gC,MAAQ,SAAS/oC,GACvB,MAAO4L,GAAMk/D,YAAY,WAAY9qE,EAAY,kBAEnDqI,EAAQ1E,YAAc,SAASra,GAC7B,MAAOsiB,GAAMk/D,YAAY,iBAAkB,KAAMxhF,IAEnD+e,EAAQ8yD,WAAa,SAASn7D,EAAWnQ,GACvC,GAAIvG,EAKJ,OAJAA,IACEiW,QAAWS,GAEbqI,EAAQgiC,iBAAiBrqC,EAAW1W,GAC7BsiB,EAAM8+D,UAAU76E,EAAMvG,IAE/B+e,EAAQgiC,iBAAmB,SAASrqC,EAAW1W,GAC7C,GAAI+X,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAAShzB,IAAIH,EAAM/X,IAE5B+e,EAAQ4jE,eAAiB,SAASjsE,GAChC,GAAIqB,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAASjpC,IAAI8V,QAEf,SAAS+uB,GACd,MAAOA,GAASjO,OAAS9Z,IAI7BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,8BAA+B,UAAW,UAAW,UAAW,aAAc,KAAM8+E,KAElGliF,KAAKjE,MA2BR,WACE,GAAIG,GAAcR,EAAQwmF,EAAkBpmF,CAE5CA,GAAQC,KAAKD,MAEbI,EAAeJ,EAAMI,aAErBgmF,EAAmB,SAASp3C,GAC1B,GAAIo4C,GAA6BC,EAA2BxkE,CAgB5D,OAfAA,MACAwkE,EAA4B,0BAC5BD,EAA8B,4BAC9BvkE,EAAQg1C,uBAAyB,SAASr9C,EAAW1W,GACnD,GAAI+X,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAM4sE,EACvBvrE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAAShzB,IAAIH,EAAM/X,IAE5B+e,EAAQ40C,qBAAuB,SAASj9C,GACtC,GAAIqB,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAM4sE,EACvBvrE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAASjpC,IAAI8V,QAEf,SAAS+uB,GACd,MAAOA,GAASizB,OAASh7C,IAI7BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,8BAA+B,aAAc8+E,KAE3DliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBn0E,EAAYjS,CAE1CA,GAAQC,KAAKD,MAEbiS,EAAahS,KAAKD,MAAMiS,WAExBm0E,EAAmB,SAAShgE,GAC1B,GAAIvD,EAMJ,OALAA,IACE3G,KAAM,WACJ,MAAOkK,GAAM8+D,UAAU,aAGpB,SAASt6C,GACd,MAAOA,GAASxL,QAAUvc,IAI9BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,+BAAgC,UAAW8+E,KAEzDliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,EAAOwa,EAAO0iD,GACxC,GAAIzgE,EAkBJ,OAjBAA,MACAA,EAAQuJ,OAAS,SAAS5R,EAAWyE,GACnC,GAAInb,GAAQiD,CASZ,OARgB,OAAXkY,GAAgC,KAAZA,IACvBA,EAAU,KAEZnb,GACEojF,WAAY1sE,EACZyE,QAASA,GAEXlY,EAAM65B,EAAMh+B,QAAQ,QACb0gF,EAAMz9E,KAAKkB,EAAM,UAAWjD,GAAQV,KAAK,SAAUiF,GACxD,MAAO,UAASL,GACd,MAAOA,GAAKA,OAEb/H,QAEE,SAAS2qC,GACd,MAAOA,GAAS08C,SAAWzkE,IAI/BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,gCAAiC,UAAW,UAAW,UAAW8+E,KAEhFliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,GACxC,GAAI/d,EA4CJ,OA3CAA,MACAA,EAAQ9c,IAAM,SAAS8T,GACrB,MAAOuM,GAAMG,SAAS,cAAe1M,IAEvCgJ,EAAQ3G,KAAO,SAAS1B,EAAWW,EAASiqE,GAC1C,GAAI1+B,GAAS5iD,CAQb,OAPwB,OAApBshF,IACFA,GAAmB,GAErBthF,GACEiW,QAASS,GAEX1W,EAASxD,EAAEwC,UAAWgB,EAAQqX,OAC1BiqE,EACKh/D,EAAMm/D,eAAe,cAAezhF,GAEtCsiB,EAAM8+D,UAAU,cAAephF,EAAQ4iD,GAC5C0+B,iBAAkBA,KAGtBviE,EAAQ0kE,WAAa,SAASjvD,EAAQnd,GACpC,GAAIrX,EAKJ,OAJAA,IACE0I,KAAM8rB,GAERx0B,EAASxD,EAAEwC,UAAWgB,EAAQqX,OACvBiL,EAAMm/D,eAAe,cAAezhF,IAE7C+e,EAAQ+sD,iBAAmB,SAAS/1D,GAClC,GAAI9S,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,eACb0gF,EAAMz9E,KAAKkB,EAAM,IAAM8S,EAAK,0BAErCgJ,EAAQ2kE,sBAAwB,SAAShtE,EAAWxS,EAAMy/E,GACxD,GAAI3jF,GAAQiD,CAOZ,OANAA,GAAM65B,EAAMh+B,QAAQ,2BACpBkB,GACEojF,WAAY1sE,EACZktE,iBAAkB1/E,EAClBy/E,sBAAuBA,GAElBnE,EAAMz9E,KAAKkB,EAAKjD,IAElB,SAAS8mC,GACd,MAAOA,GAASjR,YAAc9W,IAIlCjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,mCAAoC,UAAW,UAAW,UAAW8+E,KAEnFliF,KAAKjE,MAsBR,WACE,GAAIL,GAAQwmF,CAEZA,GAAmB,SAAShgE,GAC1B,GAAIvD,EAKJ,OAJAA,MACAA,EAAQ3G,KAAO,SAAS1B,EAAW5a,GACjC,MAAOwmB,GAAMi/D,kBAAkB,kBAAmB7qE,EAAW5a,IAExD,SAASgrC,GACd,MAAOA,GAAS/qC,QAAUgjB,IAI9BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,+BAAgC,UAAW8+E,KAEzDliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,GACxC,GAAI/d,EAUJ,OATAA,MACAA,EAAQ9c,IAAM,SAAS8T,GACrB,MAAOuM,GAAMG,SAAS,kBAAmB1M,IAE3CgJ,EAAQ3G,KAAO,SAASf,GACtB,GAAIrX,EAEJ,OADAA,GAASxD,EAAEwC,UAAWgB,EAAQqX,OACvBiL,EAAM8+D,UAAU,kBAAmBphF,IAErC,SAAS8mC,GACd,MAAOA,GAAS+8C,eAAiB9kE,IAIrCjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,sCAAuC,UAAW,UAAW,UAAW8+E,KAEtFliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBn0E,EAAYjS,CAE1CA,GAAQC,KAAKD,MAEbiS,EAAahS,KAAKD,MAAMiS,WAExBm0E,EAAmB,SAAStjE,EAASsD,EAAOk9D,EAAO1iD,EAAO30B,EAAOjJ,EAAIC,GACnE,GAAI4f,EAwOJ,OAvOAA,MACAA,EAAQ9c,IAAM,SAASyU,GACrB,MAAO4L,GAAMG,SAAS,WAAY/L,IAEpCqI,EAAQ8nD,UAAY,SAASlvD,GAC3B,MAAO2K,GAAMG,SAAS,WAAY,gBAAkB9K,IAEtDoH,EAAQ3G,KAAO,WACb,MAAOkK,GAAM8+D,UAAU,aAEzBriE,EAAQ+kE,aAAe,SAASC,GAC9B,GAAI/jF,EAKJ,OAJAA,IACEi0B,OAAU8vD,EACVplB,SAAY,cAEPr8C,EAAM8+D,UAAU,WAAYphF,IAErC+e,EAAQE,UAAY,WAClB,MAAOqD,GAAM8+D,UAAU,sBAEzBriE,EAAQtI,UAAY,SAASC,GAC3B,GAAI1W,EAIJ,OAHAA,IACEiW,QAAWS,GAEN4L,EAAM8+D,UAAU,QAASphF,IAElC+e,EAAQpI,UAAY,SAASD,GAC3B,GAAI1W,EAIJ,OAHAA,IACEiW,QAAWS,GAEN4L,EAAM8+D,UAAU,QAASphF,IAElC+e,EAAQ0gC,MAAQ,SAAS/oC,GACvB,MAAO4L,GAAMk/D,YAAY,WAAY9qE,EAAY,WAEnDqI,EAAQilE,gBAAkB,SAASC,GACjC,GAAIhhF,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,8BACb0gF,EAAMz9E,KAAKkB,EAAKghF,IAEzBllE,EAAQmlE,0BAA4B,SAASxtE,GAC3C,GAAIzT,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,6BAC/C8oE,EAAMz9E,KAAKkB,IAEpB8b,EAAQolE,gCAAkC,SAASztE,GACjD,GAAIzT,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,mCAC/C8oE,EAAMz9E,KAAKkB,IAEpB8b,EAAQqlE,0BAA4B,SAAS1tE,GAC3C,GAAIzT,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,6BAC/C8oE,EAAMz9E,KAAKkB,IAEpB8b,EAAQslE,2BAA6B,SAAS3tE,GAC5C,GAAIzT,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,8BAC/C8oE,EAAMz9E,KAAKkB,IAEpB8b,EAAQ4mD,MAAQ,SAASjvD,GACvB,GAAIzT,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,SAC/C8oE,EAAMz9E,KAAKkB,IAEpB8b,EAAQ8lD,YAAc,SAASnuD,GAC7B,MAAO4L,GAAMk/D,YAAY,WAAY9qE,EAAY,kBAEnDqI,EAAQq8B,WAAa,SAAS1kC,GAC5B,MAAO4L,GAAMG,SAAS,WAAY/L,EAAY,iBAEhDqI,EAAQ+0B,UAAY,SAASp9B,EAAWiE,GACtC,GAAI1X,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,cAC/C8oE,EAAMz9E,KAAKkB,GAChB0X,IAAKA,KAGToE,EAAQs2D,UAAY,SAAS3+D,EAAWiE,EAAK5B,GAC3C,GAAI7U,GAAMjB,CAQV,OAPAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,cACtDxS,KACAA,EAAKyW,IAAMA,EACXzW,EAAK6U,MAAQ,KACTA,IACF7U,EAAK6U,MAAQA,GAERymE,EAAMz9E,KAAKkB,EAAKiB,IAEzB6a,EAAQq2D,QAAU,SAAS1+D,EAAWg/D,EAAUC,EAAQ58D,GACtD,GAAI7U,GAAMjB,CAWV,OAVAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,YACtDxS,KACAA,EAAKwxE,SAAWA,EACZC,IACFzxE,EAAKyxE,OAASA,GAEhBzxE,EAAK6U,MAAQ,KACTA,IACF7U,EAAK6U,MAAQA,GAERymE,EAAMz9E,KAAKkB,EAAKiB,IAEzB6a,EAAQk3D,QAAU,SAASv/D,EAAWi/D,EAAQ2O,GAC5C,GAAIrhF,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,YAC/C8oE,EAAMz9E,KAAKkB,GAChB0yE,OAAQA,EACR2O,UAAWA,KAGfvlE,EAAQ,UAAY,SAASrI,GAC3B,GAAIzT,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EACnC8oE,EAAMv9E,IAAIgB,IAEnB8b,EAAQ,UAAY,SAASy1B,EAAM+vC,GACjC,GAAIC,GAAUtgF,EAAM+mB,EAAS6kD,EAAU2U,EAAQC,EAAajiF,EAAUkiF,EAAgBC,EAAcC,EAAgBp4E,CAGpH,OAFAwe,GAAU/rB,EAAGG,QACbqlF,EAAc1lE,EAAQ/c,IAAI,oBAAqB,MAC3CyiF,GAAelwC,EAAK5hC,KAAO8xE,GAC7B5U,EAAW3wE,EAAWuF,QAAQ,0CAC5BogF,SAAUtwC,EAAK9jC,KACfq0E,SAAU52E,EAAWqmC,EAAK5hC,MAC1B8xE,YAAav2E,EAAWu2E,KAE1BjiF,GACEG,OAAQ,IACRsB,MACE+c,eAAgB6uD,IAGpB7kD,EAAQ3nB,OAAOb,GACRwoB,EAAQ1rB,UAEjBslF,EAAiB,SAAUtgF,GACzB,MAAO,UAASygF,GACd,GAAI7jE,GAASqoB,CAMb,OALAA,GAAUpsC,KAAKgoC,MAAO4/C,EAAIC,OAASD,EAAItwB,MAAS,KAChDvzC,EAAUhiB,EAAWuF,QAAQ,6CAC3BwgF,aAAc/2E,EAAW62E,EAAIC,QAC7BE,UAAWh3E,EAAW62E,EAAItwB,SAErB6vB,EAAc,cAAe,KAAMpjE,EAASqoB,KAEpDrtC,MACHwoF,EAAiB,SAAUpgF,GACzB,MAAO,UAASygF,GACd,MAAOT,GAAc,OAAQplF,EAAWuF,QAAQ,wBAAyBvF,EAAWuF,QAAQ,iCAE7FvI,MACHyoF,EAAe,SAAUrgF,GACvB,MAAO,UAASygF,GACd,MAAOT,GAAc,WAEtBpoF,MACHqoF,EAAW,SAAUjgF,GACnB,MAAO,UAASygF,GACd,GAAIrlF,EACJ8C,KACA,KACEA,EAASyB,KAAOvH,KAAKwI,MAAM6/E,EAAI7kE,OAAOilE,cACtC,MAAOpiF,GACPP,EAASyB,QAYX,MAVAzB,GAASG,OAASoiF,EAAI7kE,OAAOvd;AACzBoiF,EAAI7kE,OAAOklE,kBAAkB,mCAC/B5iF,EAASZ,SACPyjF,UAA6E,SAAlEN,EAAI7kE,OAAOklE,kBAAkB,iCACxCxvD,YAAa7N,SAASg9D,EAAI7kE,OAAOklE,kBAAkB,qCAGvB,OAA3B1lF,EAAM8C,EAASG,SAA2B,MAARjD,GACrCsrB,EAAQnsB,QAAQ2D,GAEXwoB,EAAQ3nB,OAAOb,KAEvBtG,MACHsoF,EAAS,SAAUlgF,GACjB,MAAO,UAASygF,GACd,MAAO/5D,GAAQ3nB,OAAO,UAEvBnH,MACH+H,EAAO,GAAIqhF,UACXrhF,EAAK2kC,OAAO,OAAQ2L,GACpB/nC,EAAM,GAAI+4E,gBACV/4E,EAAI8nC,OAAOlmB,iBAAiB,WAAYw2D,GAAgB,GACxDp4E,EAAI8nC,OAAOlmB,iBAAiB,OAAQs2D,GAAgB,GACpDl4E,EAAI8nC,OAAOlmB,iBAAiB,QAASu2D,GAAc,GACnDn4E,EAAI8nC,OAAOlmB,iBAAiB,QAASu2D,GAAc,GACnDn4E,EAAI4hB,iBAAiB,OAAQm2D,GAAU,GACvC/3E,EAAI4hB,iBAAiB,QAASo2D,GAAQ,GACtCh4E,EAAIskB,KAAK,OAAQ+L,EAAMh+B,QAAQ,aAC/B2N,EAAIg5E,iBAAiB,gBAAiB,UAAat9E,EAAM+V,YACzDzR,EAAIg5E,iBAAiB,SAAU,oBAC/Bh5E,EAAImjB,KAAK1rB,GACF+mB,EAAQ1rB,UAEjBwf,EAAQ0xD,WAAa,SAAS/5D,EAAW89B,GACvC,GAAItwC,GAAM+mB,EAASy5D,EAAa9hC,EAASngD,EAAUQ,CAEnD,OADAyhF,GAAc1lE,EAAQ/c,IAAI,oBAAqB,MAC3CyiF,GAAelwC,EAAK5hC,KAAO8xE,GAC7BjiF,GACEG,OAAQ,IACRsB,MACE+c,eAAgB,IAAMuzB,EAAK9jC,KAAO,MAASvC,EAAWqmC,EAAK5hC,MAAS,qEAAwEzE,EAAWu2E,GAAgB,MAG3Kz5D,EAAU/rB,EAAGG,QACb4rB,EAAQ3nB,OAAOb,GACRwoB,EAAQ1rB,UAEjB2E,EAAO,GAAIqhF,UACXrhF,EAAK2kC,OAAO,OAAQ2L,GACpBoO,GACE8iC,iBAAkB3mF,QAAQ4mF,SAC1B9jF,SACEN,eAAgB,SAGpB0B,EAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,eAC/C8oE,EAAMz9E,KAAKkB,EAAKiB,KAAU0+C,KAEnC7jC,EAAQ2xD,WAAa,SAASh6D,GAC5B,GAAIzT,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,YAAe,IAAM4X,EAAY,eAC/C8oE,EAAMz9E,KAAKkB,IAEb,SAAS6jC,GACd,MAAOA,GAAStwB,SAAWuI,IAI/BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,gCAAiC,YAAa,UAAW,UAAW,UAAW,UAAW,KAAM,aAAc8+E,KAE5HliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,GACxC,GAAI/d,EAUJ,OATAA,MACAA,EAAQ9c,IAAM,SAAS8T,GACrB,MAAOuM,GAAMG,SAAS,QAAS1M,IAEjCgJ,EAAQ3G,KAAO,SAAS1B,GACtB,MAAO4L,GAAM8+D,UAAU,SACrBnrE,QAASS,KAGN,SAASowB,GACd,MAAOA,GAASrxB,MAAQsJ,IAI5BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,6BAA8B,UAAW,UAAW,UAAW8+E,KAE7EliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,EAAOwa,EAAO0iD,EAAOtgF,GAC/C,GAAI6f,EA6BJ,OA5BAA,MACAA,EAAQ,MAAQ,SAASrI,EAAWonB,GAClC,GAAI8nD,GAAe5lF,EAAQ4D,EAASX,CAwBpC,OAvBA2iF,GAAgB1mF,EAAGG,QACnB4D,EAAM65B,EAAMh+B,QAAQ,UACpBkB,GACEiD,IAAKA,EACLsN,OAAQ,MACRhC,QAASq3E,EAAcrmF,QACvBuD,YAAY,EACZ9C,QACEiW,QAASS,EACT1F,KAAM8sB,EACN+nD,SAAS,IAGbjiF,EAAU47E,EAAM57E,QAAQ5D,GAAQV,KAAK,SAAS4E,GAC5C,MAAOA,GAAKA,OAEdN,EAAQi7B,MAAQ,WACd,MAAO+mD,GAAc9mF,WAEvB8E,EAAQ,WAAa,WAEnB,MADAA,GAAQi7B,MAAQ9/B,QAAQ+mF,KACjBF,EAAgBhiF,EAAU,MAE5BA,GAEF,SAASkjC,GACd,MAAOA,GAASnkC,OAASoc,IAI7BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,8BAA+B,UAAW,UAAW,UAAW,KAAM8+E,KAEpFliF,KAAKjE,MA2BR,WACE,GAAIG,GAAcR,EAAQwmF,EAAkBpmF,CAE5CA,GAAQC,KAAKD,MAEbI,EAAeJ,EAAMI,aAErBgmF,EAAmB,SAAShgE,EAAOC,EAAQ2oB,GACzC,GAAInsB,EA2CJ,OA1CAA,MACAA,EAAQ9c,IAAM,SAASyU,EAAWm4C,GAChC,MAAOvsC,GAAMG,SAAS,aAAcosC,GAAUvvD,KAAK,SAASylC,GAC1D,GAAI4c,EAMJ,OALAA,GAAO5c,EAAOkb,aACd0B,EAAOnlD,EAAEC,IAAIklD,EAAM,SAASokC,GAC1B,MAAOxjE,GAAO1E,WAAW,cAAekoE,KAE1ChhD,EAAOna,OAAOq1B,aAAe0B,EACtB5c,KAGXhmB,EAAQ0gC,MAAQ,SAAS/oC,EAAWm4C,GAClC,MAAOvsC,GAAMk/D,YAAY,aAAc3yB,EAAW,WAEpD9vC,EAAQ3G,KAAO,SAAS1B,EAAWW,GACjC,GAAIrX,EAKJ,OAJAA,IACEiW,QAAWS,GAEb1W,EAASxD,EAAEwC,UAAWgB,EAAQqX,OACvBiL,EAAM8+D,UAAU,aAAcphF,MAAY,GAAMV,KAAK,SAAUiF,GACpE,MAAO,UAAS6M,GACd,GAAIvP,GAASiN,EAAGqC,EAAKiwB,EAAG/J,EAAYsqB,CAGpC,KAFAtqB,EAAajmB,EAAO,GACpBvP,EAAUuP,EAAO,GACZtC,EAAI,EAAGqC,EAAMkmB,EAAW9tB,OAAQuF,EAAIqC,EAAKrC,IAC5CsyB,EAAI/J,EAAWvoB,GACf6yC,EAAOvgB,EAAE6e,aACT0B,EAAOnlD,EAAEC,IAAIklD,EAAM,SAASokC,GAC1B,MAAOxjE,GAAO1E,WAAW,cAAekoE,KAE1C3kD,EAAExW,OAAOq1B,aAAe0B,CAE1B,QACEtqB,WAAYA,EACZqlB,OAAQ10B,SAASnmB,EAAQ,sCAAuC,IAChEkvB,KAAM/I,SAASnmB,EAAQ,sCAAuC,OAGjE1F,QAEE,SAAS2qC,GACd,MAAOA,GAASuV,QAAUt9B,IAI9BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,+BAAgC,UAAW,WAAY,aAAc8+E,KAEnFliF,KAAKjE,MA2BR,WACE,GAAIG,GAAcR,EAAQwmF,EAAkBpmF,CAE5CA,GAAQC,KAAKD,MAEbI,EAAeJ,EAAMI,aAErBgmF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,EAAOoO,GAC/C,GAAIw3C,GAAYY,EAA6B0C,EAAsBjnE,CAkInE,OAjIAA,MACA2jE,EAAa,oBACbY,EAA8B,2BAC9B0C,EAAuB,oBACvBjnE,EAAQ9c,IAAM,SAASyU,EAAWs/C,EAAQgrB,GACxC,GAAIhhF,EAIJ,OAHAA,GAAS+e,EAAQ4jE,eAAejsE,GAChC1W,EAAOiW,QAAUS,EACjB1W,EAASxD,EAAEwC,UAAWgB,EAAQghF,GACvB1+D,EAAMG,SAAS,QAASuzC,EAAQh2D,IAEzC+e,EAAQ61B,SAAW,SAASl+B,EAAW/W,EAAKqhF,GAC1C,GAAIhhF,EAKJ,OAJAA,GAAS+e,EAAQ4jE,eAAejsE,GAChC1W,EAAOiW,QAAUS,EACjB1W,EAAOL,IAAMA,EACbK,EAASxD,EAAEwC,UAAWgB,EAAQghF,GACvB1+D,EAAMG,SAAS,QAAS,SAAUziB,IAE3C+e,EAAQokE,kBAAoB,SAAS9rE,GACnC,MAAOiL,GAAM8+D,UAAU,QAAS/pE,IAElC0H,EAAQ1E,YAAc,SAASra,GAC7B,MAAOsiB,GAAMk/D,YAAY,eAAgB,KAAMxhF,IAEjD+e,EAAQ3G,KAAO,SAAS1B,EAAWm4C,EAAUo3B,EAAajmF,GAiBxD,MAhBgB,OAAZ6uD,IACFA,EAAW,MAEM,MAAfo3B,IACFA,EAAc,MAEhBjmF,EAASxD,EAAE2nC,MAAMnkC,GACfiW,QAASS,IAEPm4C,IACF7uD,EAAOsjD,UAAYuL,GAEjBo3B,IACFjmF,EAAO8uD,WAAam3B,GAEtBlnE,EAAQgiC,iBAAiBrqC,EAAW1W,GAC7BsiB,EAAM8+D,UAAU,QAASphF,IAElC+e,EAAQi2B,WAAa,SAASt+B,EAAWm4C,EAAUr7B,EAAMtvB,GACvD,GAAIlE,GAAQiD,CAQZ,OAPAA,GAAM65B,EAAMh+B,QAAQ,qBACpBkB,GACEojF,WAAY1sE,EACZwvE,aAAcr3B,EACdjN,MAAOpuB,EACP2yD,WAAYjiF,GAEPs7E,EAAMz9E,KAAKkB,EAAKjD,GAAQV,KAAK,SAAS8R,GAC3C,MAAOA,GAAOlN,QAGlB6a,EAAQy8C,OAAS,SAASxF,GACxB,GAAI/yD,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,cAAek3D,GAC5BwpB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ28C,SAAW,SAAS1F,GAC1B,GAAI/yD,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,gBAAiBk3D,GAC9BwpB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ6zB,MAAQ,SAASojB,GACvB,GAAI/yD,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,aAAck3D,GAC3BwpB,EAAMz9E,KAAKkB,IAEpB8b,EAAQ2J,QAAU,SAASstC,GACzB,GAAI/yD,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,eAAgBk3D,GAC7BwpB,EAAMz9E,KAAKkB,IAEpB8b,EAAQqnE,6BAA+B,SAAS1vE,EAAWxS,GACzD,GAAIlE,GAAQiD,CAMZ,OALAA,GAAM65B,EAAMh+B,QAAQ,oCACpBkB,GACEojF,WAAY1sE,EACZyvE,WAAYjiF,GAEPs7E,EAAMz9E,KAAKkB,EAAKjD,IAEzB+e,EAAQ8yD,WAAa,SAASn7D,EAAWnQ,GACvC,GAAIvG,EAIJ,OAHAA,IACEiW,QAAWS,GAEN4L,EAAM8+D,UAAU76E,EAAMvG,IAE/B+e,EAAQgiC,iBAAmB,SAASrqC,EAAW1W,GAC7C,GAAI+X,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAAShzB,IAAIH,EAAM/X,IAE5B+e,EAAQ4jE,eAAiB,SAASjsE,GAChC,GAAIqB,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAASjpC,IAAI8V,QAEtBgH,EAAQg1C,uBAAyB,SAASr9C,EAAW1W,GACnD,GAAI+X,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAM4sE,EACvBvrE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAAShzB,IAAIH,EAAM/X,IAE5B+e,EAAQ40C,qBAAuB,SAASj9C,GACtC,GAAIqB,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAM4sE,EACvBvrE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAASjpC,IAAI8V,QAEtBgH,EAAQk1C,gBAAkB,SAASv9C,EAAWm4C,EAAU7uD,GACtD,GAAI+X,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMsvE,EACvBjuE,EAAOzb,GAAcoa,EAAWm4C,EAAU72C,IACnCkzB,EAAShzB,IAAIH,EAAM/X,IAE5B+e,EAAQ80C,cAAgB,SAASn9C,EAAWm4C,GAC1C,GAAI92C,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMsvE,EACvBjuE,EAAOzb,GAAcoa,EAAWm4C,EAAU72C,IACnCkzB,EAASjpC,IAAI8V,QAEf,SAAS+uB,GACd,MAAOA,GAASvT,MAAQxU,IAI5BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,6BAA8B,UAAW,UAAW,UAAW,aAAc8+E,KAE3FliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBn0E,EAAYjS,CAE1CA,GAAQC,KAAKD,MAEbiS,EAAahS,KAAKD,MAAMiS,WAExBm0E,EAAmB,SAAStjE,EAASsD,EAAOk9D,EAAO1iD,EAAO59B,GACxD,GAAI6f,EAyCJ,OAxCAA,MACAA,EAAQsnE,aAAe,SAAS7xC,GAC9B,GAAItwC,GAAM+mB,EAASy5D,EAAa9hC,EAASngD,EAAUQ,CAEnD,OADAyhF,GAAc1lE,EAAQ/c,IAAI,oBAAqB,MAC3CyiF,GAAelwC,EAAK5hC,KAAO8xE,GAC7BjiF,GACEG,OAAQ,IACRsB,MACE+c,eAAgB,IAAMuzB,EAAK9jC,KAAO,MAASvC,EAAWqmC,EAAK5hC,MAAS,qEAAwEzE,EAAWu2E,GAAgB,MAG3Kz5D,EAAU/rB,EAAGG,QACb4rB,EAAQ3nB,OAAOb,GACRwoB,EAAQ1rB,UAEjB2E,EAAO,GAAIqhF,UACXrhF,EAAK2kC,OAAO,SAAU2L,GACtBoO,GACE8iC,iBAAkB3mF,QAAQ4mF,SAC1B9jF,SACEN,eAAgB,SAGpB0B,EAAO65B,EAAMh+B,QAAQ,SAAY,iBAC1B0gF,EAAMz9E,KAAKkB,EAAKiB,KAAU0+C,KAEnC7jC,EAAQunE,aAAe,WACrB,GAAIrjF,EAEJ,OADAA,GAAO65B,EAAMh+B,QAAQ,SAAY,iBAC1B0gF,EAAMz9E,KAAKkB,IAEpB8b,EAAQwnE,eAAiB,SAASC,EAAiBC,GACjD,GAAIviF,GAAMjB,CAMV,OALAA,GAAO65B,EAAMh+B,QAAQ,SAAY,mBACjCoF,GACEwiF,iBAAkBF,EAClB/lE,SAAUgmE,GAELjH,EAAMz9E,KAAKkB,EAAKiB,IAElB,SAAS4iC,GACd,MAAOA,GAAS6/C,aAAe5nE,IAInCjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,oCAAqC,YAAa,UAAW,UAAW,UAAW,KAAM8+E,KAEvGliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBn0E,EAAYjS,CAE1CA,GAAQC,KAAKD,MAEbiS,EAAahS,KAAKD,MAAMiS,WAExBm0E,EAAmB,SAAS9C,EAAO1iD,GACjC,GAAI/d,EAkBJ,OAjBAA,MACAA,EAAQ6nE,SAAW,SAASpyD,EAAQouB,GAClC,GAAIy+B,GAAap+E,CAWjB,OAVe,OAAX2/C,IACFA,MAEF3/C,EAAM65B,EAAMh+B,QAAQ,gBAAiB01B,GACrC6sD,GACEx/E,YAEG+gD,EAAQ0+B,mBACXD,EAAYx/E,QAAQ,wBAA0B,KAEzC29E,EAAMv9E,IAAIgB,KAASo+E,GAAa/hF,KAAK,SAAS8R,GACnD,MAAOA,GAAOlN,QAGX,SAAS4iC,GACd,MAAOA,GAAStxB,MAAQuJ,IAI5BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,6BAA8B,UAAW,UAAW,KAAM8+E,KAExEliF,KAAKjE,MA2BR,WACE,GAAIG,GAAcR,EAAQwmF,EAAkBpmF,CAE5CA,GAAQC,KAAKD,MAEbI,EAAeJ,EAAMI,aAErBgmF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,EAAOoO,EAAUhsC,GACzD,GAAIwjF,GAAY3jE,CA0JhB,OAzJAA,MACA2jE,EAAa,0BACb3jE,EAAQ9c,IAAM,SAASyU,EAAW8c,EAAMwtD,GACtC,GAAIhhF,EAIJ,OAHAA,GAAS+e,EAAQ4jE,eAAejsE,GAChC1W,EAAOiW,QAAUS,EACjB1W,EAASxD,EAAEwC,UAAWgB,EAAQghF,GACvB1+D,EAAMG,SAAS,cAAe+Q,EAAMxzB,IAE7C+e,EAAQ61B,SAAW,SAASl+B,EAAW/W,EAAKqhF,GAC1C,GAAIhhF,EAQJ,OAPmB,OAAfghF,IACFA,MAEFhhF,EAAS+e,EAAQ4jE,eAAejsE,GAChC1W,EAAOiW,QAAUS,EACjB1W,EAAOL,IAAMA,EACbK,EAASxD,EAAEwC,UAAWgB,EAAQghF,GACvB1+D,EAAMG,SAAS,cAAe,SAAUziB,IAEjD+e,EAAQokE,kBAAoB,SAAS9rE,GACnC,MAAOiL,GAAM8+D,UAAU,cAAe/pE,IAExC0H,EAAQ1E,YAAc,SAASra,GAC7B,MAAOsiB,GAAMk/D,YAAY,sBAAuB,KAAMxhF,IAExD+e,EAAQiiC,eAAiB,SAAStqC,EAAWW,EAASwpC,GACpD,GAAI7gD,EAOJ,OANAA,IACEiW,QAAWS,EACX4sC,UAAa,QAEftjD,EAASxD,EAAEwC,UAAWgB,EAAQqX,OAC9B0H,EAAQgiC,iBAAiBrqC,EAAW1W,GAC7BsiB,EAAM8+D,UAAU,cAAe5kF,EAAEwC,OAAOgB,GAC7C6mF,UAAWhmC,KAEXygC,kBAAkB,IACjB,IAELviE,EAAQg6C,QAAU,SAASriD,EAAWW,GACpC,GAAIrX,EAMJ,OALAA,IACEiW,QAAWS,GAEb1W,EAASxD,EAAEwC,UAAWgB,EAAQqX,OAC9B0H,EAAQgiC,iBAAiBrqC,EAAW1W,GAC7BsiB,EAAM8+D,UAAU,cAAephF,IAExC+e,EAAQi2B,WAAa,SAASt+B,EAAW9T,EAAQmyC,GAC/C,GAAI7wC,GAAMjB,CAOV,OANAiB,IACEk/E,WAAY1sE,EACZowE,UAAWlkF,EACXmkF,aAAchyC,GAEhB9xC,EAAM65B,EAAMh+B,QAAQ,kBACb0gF,EAAMz9E,KAAKkB,EAAKiB,IAEzB6a,EAAQy8C,OAAS,SAASyqB,GACxB,GAAIhjF,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,mBAAoBmnF,GACjCzG,EAAMz9E,KAAKkB,IAEpB8b,EAAQ28C,SAAW,SAASuqB,GAC1B,GAAIhjF,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,qBAAsBmnF,GACnCzG,EAAMz9E,KAAKkB,IAEpB8b,EAAQ6zB,MAAQ,SAASqzC,GACvB,GAAIhjF,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,kBAAmBmnF,GAChCzG,EAAMz9E,KAAKkB,IAEpB8b,EAAQ2J,QAAU,SAASu9D,GACzB,GAAIhjF,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,oBAAqBmnF,GAClCzG,EAAMz9E,KAAKkB,IAEpB8b,EAAQ2kC,uBAAyB,SAAShtC,EAAWxS,GACnD,GAAIlE,GAAQiD,CAMZ,OALAA,GAAM65B,EAAMh+B,QAAQ,gCACpBkB,GACEojF,WAAY1sE,EACZqwE,aAAc7iF,GAETs7E,EAAMz9E,KAAKkB,EAAKjD,IAEzB+e,EAAQ0kC,oBAAsB,SAAS/sC,EAAWswE,EAAa9iF,GAC7D,GAAIlE,GAAQiD,CAOZ,OANAA,GAAM65B,EAAMh+B,QAAQ,4BACpBkB,GACEojF,WAAY1sE,EACZwvE,aAAcc,EACdD,aAAc7iF,GAETs7E,EAAMz9E,KAAKkB,EAAKjD,IAEzB+e,EAAQkoE,sBAAwB,SAASvwE,EAAWxS,GAClD,GAAIlE,GAAQiD,CAMZ,OALAA,GAAM65B,EAAMh+B,QAAQ,+BACpBkB,GACEojF,WAAY1sE,EACZqwE,aAAc7iF,GAETs7E,EAAMz9E,KAAKkB,EAAKjD,IAEzB+e,EAAQ0kC,oBAAsB,SAAS/sC,EAAWswE,EAAa9iF,GAC7D,GAAIlE,GAAQiD,CAaZ,OAZAA,GAAM65B,EAAMh+B,QAAQ,4BACpBoF,EAAO1H,EAAEC,IAAIyH,EAAM,SAASgvB,GAC1B,OACE0uB,MAAO1uB,EAAGnd,GACV8rC,MAAO3uB,EAAG2uB,SAGd7hD,GACEojF,WAAY1sE,EACZwvE,aAAcc,EACdD,aAAc7iF,GAETs7E,EAAMz9E,KAAKkB,EAAKjD,IAEzB+e,EAAQ8yD,WAAa,SAASn7D,EAAWnQ,GACvC,GAAIvG,EAKJ,OAJAA,IACEiW,QAAWS,GAEbqI,EAAQgiC,iBAAiBrqC,EAAW1W,GAC7BsiB,EAAM8+D,UAAU76E,EAAMvG,IAE/B+e,EAAQgiC,iBAAmB,SAASrqC,EAAW1W,GAC7C,GAAI+X,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAAShzB,IAAIH,EAAM/X,IAE5B+e,EAAQ4jE,eAAiB,SAASjsE,GAChC,GAAIqB,GAAMC,CAGV,OAFAA,GAAKtB,EAAY,IAAMgsE,EACvB3qE,EAAOzb,GAAcoa,EAAWsB,IACzBkzB,EAASjpC,IAAI8V,QAEtBgH,EAAQqgC,cAAgB,SAAS1oC,EAAWunC,GAC1C,GAAIlmC,EAEJ,OADAA,GAAOzb,GAAcoa,EAAW,aACzBw0B,EAAShzB,IAAIH,EAAMkmC,IAE5Bl/B,EAAQu/B,YAAc,SAAS5nC,GAC7B,GAAIqB,EAEJ,OADAA,GAAOzb,GAAcoa,EAAW,aACzBw0B,EAASjpC,IAAI8V,IAAS,MAExB,SAAS+uB,GACd,MAAOA,GAAS1sB,YAAc2E,IAIlCjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,mCAAoC,UAAW,UAAW,UAAW,aAAc,KAAM8+E,KAEvGliF,KAAKjE,MAsBR,WACE,GAAIL,GAAQwmF,CAEZA,GAAmB,SAAShgE,EAAOwa,EAAO0iD,GACxC,GAAIzgE,EAcJ,OAbAA,MACAA,EAAQ3G,KAAO,SAAS8uE,GACtB,GAAIlnF,EAIJ,OAHAA,IACEs6E,QAAS4M,GAEJ5kE,EAAM8+D,UAAU,cAAephF,IAExC+e,EAAQs8D,OAAS,SAAS8L,GACxB,GAAIlkF,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,qBAAsBqoF,GACnC3H,EAAMz9E,KAAKkB,IAEb,SAAS6jC,GACd,MAAOA,GAASnM,YAAc5b,IAIlCjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,mCAAoC,UAAW,UAAW,UAAW8+E,KAEnFliF,KAAKjE,MAsBR,WACE,GAAIL,GAAQwmF,CAEZA,GAAmB,SAAShgE,EAAOwa,EAAO0iD,GACxC,GAAIzgE,EAcJ,OAbAA,MACAA,EAAQ3G,KAAO,SAAS1B,GACtB,GAAI1W,EAIJ,OAHAA,IACEiW,QAASS,GAEJ4L,EAAM8+D,UAAU,WAAYphF,IAErC+e,EAAQq8D,KAAO,SAAS8L,GACtB,GAAIjkF,EAEJ,OADAA,GAAM65B,EAAMh+B,QAAQ,gBAAiBooF,GAC9B1H,EAAMz9E,KAAKkB,IAEb,SAAS6jC,GACd,MAAOA,GAASrM,SAAW1b,IAI/BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,gCAAiC,UAAW,UAAW,UAAW8+E,KAEhFliF,KAAKjE,MA2BR,WACE,GAAIL,GAAQwmF,EAAkBpmF,CAE9BA,GAAQC,KAAKD,MAEbomF,EAAmB,SAAShgE,EAAOk9D,EAAO1iD,GACxC,GAAI/d,EAkBJ,OAjBAA,MACAA,EAAQ9c,IAAM,SAAS6kE,GACrB,MAAOxkD,GAAMG,SAAS,OAAQqkD,IAEhC/nD,EAAQ8nD,UAAY,SAASnwD,EAAWiT,GACtC,MAAOrH,GAAMG,SAAS,OAAQ,mBAAqB/L,EAAY,SAAWiT,IAE5E5K,EAAQ3G,KAAO,SAAS1B,GACtB,MAAO4L,GAAM8+D,UAAU,QACrBnrE,QAASS,KAGbqI,EAAQioD,UAAY,SAAStwD,GAC3B,MAAO4L,GAAM8+D,UAAU,cACrBnrE,QAASS,KAGN,SAASowB,GACd,MAAOA,GAAS1N,KAAOra,IAI3BjjB,EAASiD,QAAQjD,OAAO,kBAExBA,EAAO0H,QAAQ,4BAA6B,UAAW,UAAW,UAAW8+E,KAE5EliF,KAAKjE,MA2BR,WACE,GAAIirF,GAA8BC,EAA6Bh6E,EAAUW,EAAOlS,EAAQI,EACtF8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBX,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,qBAExBsrF,EAA+B,SAAU76E,GAKvC,QAAS66E,GAA6Br3E,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAStf,EAAM5C,GAC7G/e,KAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAK2hB,KAAOA,EACZ3hB,KAAK+e,UAAYA,EACjB/e,KAAK4T,MAAMwtB,YAAcphC,KAAK+e,UAAUxW,QAAQ,gCAChDvI,KAAK4T,MAAMrH,KAAOvM,KAAK2hB,KAAKtT,UAG9B,MApBAxL,GAAOooF,EAA8B76E,GAErC66E,EAA6B7qE,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,aAAc,UAAW,cAkBhK6qE,GAENp5E,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,+BAAgC8mF,GAElDC,EAA8B,SAASl0D,EAAK3uB,EAAU+rB,EAAUpxB,GAC9D,GAAIqgB,EAiCJ,OAhCAA,GAAO,SAASC,EAAQC,EAAKC,EAAQ00C,GACnC,GAAIz0C,GAAMG,EAAQ2Q,CA2BlB,OA1BA9Q,GAAO,GAAI7X,WAAUiY,KAAKN,EAAI9G,KAAK,SACnCmH,EAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAIimB,GAAgBpxB,CAEpB,IADAmL,EAAME,iBACDgV,EAAKW,WAGV,MAAId,GAAO6nE,eAAiB7nE,EAAO8nE,iBACjC/iF,GAASG,OAAO,QAASxF,EAAWuF,QAAQ,0CAG9CisB,EAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU4zB,EAAIwzD,aAAaJ,eAAe9mE,EAAO+mE,gBAAiB/mE,EAAO6nE,cACzE/nF,EAAQD,KAAK,WAEX,MADAqxB,GAAeG,SACRtsB,EAASG,OAAO,aAElBpF,EAAQD,KAAK,KAAM,SAASmD,GAEjC,MADAkuB,GAAeG,SACRtsB,EAASG,OAAO,QAASlC,EAASyB,KAAK+c,qBAGjD9kB,OACHu0B,EAAehR,EAAI9G,KAAK,kBACxB8G,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,wBAAyB,eAAgB,aAAc,aAAc,aAAc+nE,KAEnGjnF,KAAKjE,MA2BR,WACE,GAAIqrF,GAAqBr6E,EAAUE,EAAUvR,EAAQI,CAErDA,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBE,EAAWlR,KAAKD,MAAMmR,SAEtBvR,EAASiD,QAAQjD,OAAO,qBAExB0rF,EAAsB,SAASllE,EAAOpa,EAAYC,EAAO/F,EAAWC,EAAUmG,EAAiB+nB,GAC7F,GAAI/Q,EAkCJ,OAjCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAII,GAAQ2Q,CA8BZ,OA7BAjR,GAAO5W,IAAI,qBAAsB,SAASmB,EAAKtB,GAC7C,MAAOF,GAAgBuoB,KAAKrR,KAE9BD,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAEbb,EAAS,WACP,GAAI4Q,GAAgBpxB,CASpB,OARAoxB,GAAiBJ,IAAWpQ,OAAOuQ,GAAc7lB,QACjDtL,EAAU+iB,EAAMvE,OAAO0B,EAAO/W,MAC9BnJ,EAAQD,KAAK,SAAS4E,GAIpB,MAHAysB,GAAeG,SACftoB,EAAgBkmB,MAAMhP,GACtBvX,EAAMkW,SACCjc,EAAUxD,KAAKyD,EAASvD,QAAQ,YAElCS,EAAQD,KAAK,KAAM,WAExB,MADAqxB,GAAeG,SACRk+B,QAAQ/7C,IAAI,WAGvByM,EAAIgB,GAAG,QAAS,gBAAiB,SAAShW,GAExC,MADAA,GAAME,iBACCpC,EAAgBkmB,MAAMhP,KAE/BA,EAAIgB,GAAG,QAAS,cAAerT,EAAS,IAAM,SAAS3C,GAErD,MADAA,GAAME,iBACCmV,OAEF2Q,EAAehR,EAAI9G,KAAK,iBAG/B4G,KAAMA,EACNnf,YAAa,+CAIjBvE,EAAOwjB,UAAU,kBAAmB,UAAW,aAAc,UAAW,cAAe,aAAc,kBAAmB,aAAckoE,KAErIpnF,KAAKjE,MA2BR,WACE,GAAIsrF,GAA2BC,EAAqBC,EAAsBC,EAAwBv6E,EAAUW,EAAOlS,EAAQqS,EAAYjS,EACrI8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBG,EAAahS,KAAKD,MAAMiS,WAExBrS,EAASiD,QAAQjD,OAAO,qBAExBuR,EAAWlR,KAAKD,MAAMmR,SAEtBu6E,EAAyB,SAAUr7E,GAKjC,QAASq7E,GAAuB73E,EAAOyM,EAAW3Z,EAAQwnB,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAStf,EAAM5C,EAAW3Y,GAC1H,GAAImiF,GAAanlF,EAASyR,CAC1B7U,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAK0G,OAASA,EACd1G,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAK2hB,KAAOA,EACZ3hB,KAAK+e,UAAYA,EACjB/e,KAAKoG,qBAAuBA,EAC5BpG,KAAK4T,MAAMwtB,YAAc,mCACzBphC,KAAK4T,MAAMkG,WACX9Z,KAAK4T,MAAMrH,KAAOvM,KAAK2hB,KAAKtT,UACvBrO,KAAK4T,MAAMrH,MACdvM,KAAKoG,qBAAqBoK,mBAE5BxQ,KAAK4T,MAAM3K,KAAOjJ,KAAK0rF,SACvB1rF,KAAK4T,MAAMyN,MAAQrhB,KAAK2rF,WACxBpD,EAAcvoF,KAAK0G,OAAOZ,IAAI,oBAAqB,MAC/CyiF,IACF1zE,EAAO7U,KAAK+e,UAAUxW,QAAQ,iCAC5BggF,YAAev2E,EAAWu2E,KAE5BvoF,KAAK4T,MAAMg4E,eAAiB/2E,GAE9BzR,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAyBlD,MA5DA6C,GAAO4oF,EAAwBr7E,GAE/Bq7E,EAAuBrrE,SAAW,SAAU,aAAc,YAAa,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,aAAc,UAAW,aAAc,0BAoC5LqrE,EAAuB77E,UAAUyxB,gBAAkB,WAEjD,MADArhC,MAAK4T,MAAMi4E,gBAAkB7rF,KAAK0G,OAAOZ,IAAI,aACtC9F,KAAKoa,GAAG+kB,QAAQljB,OAAO9Y,KAAK,SAAUiF,GAC3C,MAAO,UAAS+2B,GAEd,MADA/2B,GAAMwL,MAAMurB,QAAUA,EACfA,IAERn/B,QAGLyrF,EAAuB77E,UAAU4hE,mBAAqB,WACpD,MAAOxxE,MAAKqgB,UAAUqG,WAAW,qBAAsB1mB,KAAK4T,MAAMrH,OAGpEk/E,EAAuB77E,UAAU87E,OAAS,WACxC,MAAO1rF,MAAK4T,MAAMrH,KAAKtD,MAAQjJ,KAAK+e,UAAUvV,qBAGhDiiF,EAAuB77E,UAAU+7E,SAAW,WAC1C,MAAO3rF,MAAK4T,MAAMrH,KAAK8U,OAASrhB,KAAK0G,OAAOZ,IAAI,iBAAmB,SAG9D2lF,GAEN55E,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,yBAA0BsnF,GAE5CD,EAAuB,SAASnjF,EAAU2D,EAAOma,EAAOnjB,GACtD,GAAIqgB,EAoCJ,OAnCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAII,EA8BJ,OA7BAA,GAAS1S,EAAS,IAAM,SAAU9I,GAChC,MAAO,UAASmG,GACd,GAAImU,GAAae,EAAMC,EAASC,CAGhC,IAFApV,EAAME,iBACNgV,EAAOF,EAAI9G,KAAK,QAAQ7Q,YACnB6X,EAAKW,WAoBV,MAjBA1B,GAAcY,EAAO/W,KAAKy2E,oBAAoB,SAC9C1/D,EAAO/W,KAAKtD,KAAOqa,EAAOra,KAC1Bqa,EAAO/W,KAAK8U,MAAQiC,EAAOjC,MAC3BsC,EAAY,SAAS5b,GACnB,GAAI8M,EAEJ,OADA7I,GAAMoV,QAAQrZ,GACV2a,GACF7N,EAAO7R,EAAWuF,QAAQ,qCACnBF,EAAS4c,QAAQpQ,IAEjBxM,EAASG,OAAO,YAG3Bkb,EAAU,SAAS3b,GAEjB,MADA0b,GAAKsB,UAAUhd,GACRM,EAASG,OAAO,QAAST,EAAK+c,iBAEhCqB,EAAMyI,KAAKtL,EAAO/W,MAAMpJ,KAAKwgB,EAAWD,KAEhD1jB,OACHujB,EAAIgB,GAAG,SAAU,OAAQX,GAClBN,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,aAAc,UAAW,UAAW,aAAcqoE,IAErFD,EAAsB,SAASv/E,EAAOoa,EAAQ4Q,EAAK3uB,GACjD,GAAIgb,EAsCJ,OArCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIE,GAASC,EAAWywD,CAgCxB,OA/BAA,GAAe,WACb,MAAO7wD,GAAI9G,KAAK,cAAc4P,YAAY,WAE5C1I,EAAY,SAASrd,GACnB,GAAIiG,EAKJ,OAJAA,GAAO6Z,EAAO1E,WAAW,QAASpb,EAASyB,MAC3CiE,EAAMoV,QAAQ7U,GACd+W,EAAO/W,KAAOA,EACdgX,EAAI9G,KAAK,oBAAoB4P,YAAY,UAClChkB,EAASG,OAAO,YAEzBkb,EAAU,SAASpd,GAKjB,MAJwB,OAApBA,EAASG,QACX2tE,IAEF7wD,EAAI9G,KAAK,oBAAoB4P,YAAY,UAClChkB,EAASG,OAAO,QAASlC,EAASyB,KAAK+c,iBAEhDvB,EAAIgB,GAAG,QAAS,oBAAqB,WACnC,MAAOhB,GAAI9G,KAAK,iBAAiBuuB,UAEnCznB,EAAIgB,GAAG,SAAU,gBAAiB,SAAShW,GACzC,GAAI+U,EAAOwoE,iBAET,MADAvoE,GAAI9G,KAAK,oBAAoB3L,SAAS,UAC/BkmB,EAAIwzD,aAAaN,aAAa5mE,EAAOwoE,kBAAkB3oF,KAAKwgB,EAAWD,KAGlFH,EAAIgB,GAAG,QAAS,oBAAqB,SAAShW,GAE5C,MADAgV,GAAI9G,KAAK,oBAAoB3L,SAAS,UAC/BkmB,EAAIwzD,aAAaL,eAAehnF,KAAKwgB,EAAWD,KAElDJ,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,gBAAiB,UAAW,WAAY,eAAgB,aAAcooE,IAEvFD,EAA4B,SAASx7D,GACnC,GAAIzM,EAWJ,OAVAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIlD,GAAOk0D,CAGX,OAFAl0D,GAAQwP,EAAOtM,EAAOuoE,eACtBvX,EAAcl0D,EAAM6O,OACb5L,EAAIxT,KAAK,SAAU,WACxB,MAAOuT,GAAO/N,OAAO,WACnB,MAAOi/D,GAAYlxD,EAAQC,EAAI,GAAGqoD,MAAM,UAK5CvoD,KAAMA,IAIV1jB,EAAOwjB,UAAU,iBAAkB,SAAUmoE,KAE5CrnF,KAAKjE,MA2BR,WACE,GAAIgsF,GAAiCrsF,CAErCqsF,GAAkC,WAChC,GAAI3oE,EAUJ,OATAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI5f,EAIJ,OAHAA,GAAU4f,EAAOyoE,yBACjB1oE,EAAI9G,KAAK,WAAW4P,YAAY,UAChC9I,EAAI9G,KAAK,qBAAuB7Y,EAAU,MAAMkN,SAAS,UAClDwS,EAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAASiD,QAAQjD,OAAO,qBAExBA,EAAOwjB,UAAU,2BAA4B6oE,IAE5C/nF,KAAKjE,MA2BR,WACE,GAAIksF,GAA6BC,EAA4BC,EAAgCp7E,EAAUa,EAAOlS,EAAQI,EACpH8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBb,EAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,qBAExBusF,EAA8B,SAAU97E,GAKtC,QAAS87E,GAA4Bt4E,EAAOyM,EAAW6N,EAAMigB,EAAS/zB,EAAIvW,EAAQ4M,EAAGmK,EAAUqmB,EAAStf,EAAMvb,GAC5G,GAAIhD,EACJpD,MAAK4T,MAAQA,EACb5T,KAAKqgB,UAAYA,EACjBrgB,KAAKkuB,KAAOA,EACZluB,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAK6D,OAASA,EACd7D,KAAKyQ,EAAIA,EACTzQ,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAK2hB,KAAOA,EACZ3hB,KAAKoG,qBAAuBA,EAC5BpG,KAAK4T,MAAMwtB,YAAc,2CACzBphC,KAAK4T,MAAMrH,KAAOvM,KAAK2hB,KAAKtT,UAC5BjL,EAAUpD,KAAKqhC,kBACfj+B,EAAQD,KAAK,KAAMnD,KAAKqQ,mBAAmBN,KAAK/P,OAYlD,MAhCA6C,GAAOqpF,EAA6B97E,GAEpC87E,EAA4B9rE,SAAW,SAAU,aAAc,UAAW,aAAc,eAAgB,eAAgB,KAAM,cAAe,aAAc,UAAW,0BAqBtK8rE,EAA4Bt8E,UAAUyxB,gBAAkB,WACtD,MAAOrhC,MAAKoa,GAAGstE,eAAezrE,OAAO9Y,KAAK,SAAUiF,GAClD,MAAO,UAASs/E,GAEd,MADAt/E,GAAMwL,MAAM8zE,eAAiBA,EACtBA,IAER1nF,QAGEksF,GAENr6E,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,YAEjCvZ,EAAOwE,WAAW,8BAA+B+nF,GAEjDC,EAA6B,WAC3B,GAAI9oE,EAMJ,OALAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,MAAOF,GAAO5W,IAAI,WAAY,WAC5B,MAAO6W,GAAIkB,UAIbpB,KAAMA,IAIV1jB,EAAOwjB,UAAU,sBAAuBgpE,GAExCC,EAAiC,SAASjmE,EAAO9d,EAAU6sB,GACzD,GAAI7R,GAAMze,CAkCV,OAjCAA,GAAWvE,EAAEuE,SAAS,g+CACtBye,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI2I,EA6BJ,OA5BAA,GAAS,WACP,GAAIte,GAAKgoB,CAOT,OANAtS,GAAIkB,MACJ5W,GACE65E,eAAgBpkE,EAAOokE,gBAEzB7xD,EAAOjxB,EAASiJ,GAChB0V,EAAIsS,KAAKX,EAASW,GAAMvS,IACjBC,EAAIgB,GAAG,SAAU,oBAAqB,SAAShW,GACpD,GAAImV,GAASC,EAAW0oE,EAAQC,EAAaC,EAAYvoE,CAazD,OAZAA,GAASphB,QAAQqF,QAAQsG,EAAM0V,eAC/BqoE,EAActoE,EAAOqoD,QAAQ,qBAAqBtkE,KAAK,SACvDskF,EAAS/oE,EAAOokE,eAAe4E,GAC/BC,EAAaF,EAAOG,aACpBH,EAAOG,aAAe3gE,SAAS7H,EAAOpX,MAAO,IAC7C+W,EAAY,WACV,MAAOtb,GAASG,OAAO,YAEzBkb,EAAU,WAER,MADArb,GAASG,OAAO,SACTwb,EAAOqoD,QAAQ,qBAAqB5vD,KAAK,eAAiB8vE,EAAa,KAAKj+D,KAAK,WAAW,IAE9FnI,EAAMyI,KAAKy9D,GAAQlpF,KAAKwgB,EAAWD,MAG9CJ,EAAO5W,IAAI,WAAY,WACrB,MAAO6W,GAAIkB,QAENzT,EAASsS,EAAQE,EAAO+S,QAASpK,KAGxC9I,KAAMA,IAIV1jB,EAAOwjB,UAAU,2BAA4B,UAAW,aAAc,WAAYipE,KAEjFnoF,KAAKjE,MAsBR,WACE4C,QAAQjD,OAAO,uBAEdsE,KAAKjE,MAsBR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,qBAEvBsE,KAAKjE,MAsBR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,yBAEvBsE,KAAKjE,MAsBR,WACE4C,QAAQjD,OAAO,oBAEdsE,KAAKjE,MAsBR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,iBAEvBsE,KAAKjE,MAsBR,WACE4C,QAAQjD,OAAO,0BAEdsE,KAAKjE,MAsBR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,oBAEvBsE,KAAKjE,MAsBR,WACE4C,QAAQjD,OAAO,qBAEdsE,KAAKjE,MAsBR,WACE4C,QAAQjD,OAAO,uBAEdsE,KAAKjE,MAsBR,WACE4C,QAAQjD,OAAO,yBAEdsE,KAAKjE,MAsBR,WACE,GAAIL,EAEJA,GAASiD,QAAQjD,OAAO,kBAEvBsE,KAAKjE,MAsBR,WACE4C,QAAQjD,OAAO,wBAEdsE,KAAKjE,MAsBR,WACE,GAAIysF,EAEJA,GAAwB,WACtB,GAAIppE,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,MAEzBrqB,YAAa,0DACb0P,OACEkkB,OAAQ,KAEVzU,KAAMA,IAIVopE,EAAsBrsE,WAEtBxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,iBAAkBspE,IAE7DxoF,KAAKjE,MAsBR,WACE,GAAI0sF,EAEJA,GAA+B,WAG7B,QAASA,KACH1sF,KAAK2sF,UACP3sF,KAAK4sF,qBAEP5sF,KAAK6sF,wBAuBP,MA7BAH,GAA6BtsE,WAS7BssE,EAA6B98E,UAAUg9E,mBAAqB,WAC1D,MAAO5sF,MAAK8sF,eAAiBzsF,EAAEqN,OAAO1N,KAAK8Z,QAAQC,QAAS,SAAU3R,GACpE,MAAO,UAAS0vB,GACd,MAAOA,GAAOle,KAAOxR,EAAMukF,SAAS7mF,IAAI,QAEzC9F,QAGL0sF,EAA6B98E,UAAUi9E,sBAAwB,WAC7D,MAAI7sF,MAAK2sF,SACA3sF,KAAK+sF,mBAAqB1sF,EAAEqN,OAAO1N,KAAK8Z,QAAQC,QAAS,SAAU3R,GACxE,MAAO,UAAS0vB,GACd,MAAOA,GAAOle,KAAOxR,EAAMukF,SAAS7mF,IAAI,QAEzC9F,OAEIA,KAAK+sF,mBAAqB/sF,KAAK8Z,QAAQC,SAI3C2yE,KAIT9pF,QAAQjD,OAAO,mBAAmBwE,WAAW,yBAA0BuoF,IAEtEzoF,KAAKjE,MAsBR,WACE,GAAIgtF,EAEJA,GAA8B,WAC5B,OACE7oF,WAAY,yBACZC,aAAc,KACdqpE,kBAAkB,EAClBvpE,YAAa,wEACb0P,OACE+4E,SAAU,IACV7yE,QAAS,IACTmzE,iBAAkB,IAClBC,WAAY,OAKlBF,EAA4B5sE,WAE5Bxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,uBAAwB6pE,IAEnE/oF,KAAKjE,MAsBR,WACE,GAAImtF,EAEJA,GAAuB,WAGrB,QAASA,GAAqB/jB,EAAiB/8D,GAC7CrM,KAAKopE,gBAAkBA,EACvBppE,KAAKqM,gBAAkBA,EACvBrM,KAAKotF,gBAAkB/sF,EAAE4Z,SAASja,KAAK8Z,QAAQgT,eAAgB,eA8BjE,MAnCAqgE,GAAqB/sE,SAAW,oBAAqB,mBAQrD+sE,EAAqBv9E,UAAUy9E,wBAA0B,WAEvD,MADArtF,MAAKqM,gBAAgBzF,WACd5G,KAAKitF,oBAGdE,EAAqBv9E,UAAU09E,gBAAkB,SAASx1D,GAExD,MADA93B,MAAKqM,gBAAgBzF,WACd5G,KAAKktF,YACVp1D,OAAUA,KAIdq1D,EAAqBv9E,UAAU29E,mBAAqB,SAASZ,EAAU7yE,GACrE,MAAO9Z,MAAKopE,gBAAgB30C,OAAO,2BACjCi1C,QAAS,8CACTijB,SAAY,WACZ7yE,QAAW,UACX0zE,qBAAsB,qBACtBC,eAAgB,qBAEhBd,SAAY3sF,KAAKme,WACjBrE,QAAW9Z,KAAK8Z,QAChBmzE,iBAAoBjtF,KAAKqtF,wBAAwBt9E,KAAK/P,MACtD0tF,SAAY1tF,KAAKstF,gBAAgBv9E,KAAK/P,SAInCmtF,KAITvqF,QAAQjD,OAAO,mBAAmBwE,WAAW,iBAAkBgpF,IAE9DlpF,KAAKjE,MAsBR,WACE,GAAIimC,EAEJA,GAAsB,WACpB,OACE9hC,WAAY,iBACZC,aAAc,KACdqpE,kBAAkB,EAClBvpE,YAAa,0CACb0P,OACEuK,WAAY,IACZrE,QAAS,IACTmzE,iBAAkB,IAClBC,WAAY,OAKlBjnD,EAAoB7lB,WAEpBxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,wBAAyB8iB,IAEpEhiC,KAAKjE,MAsBR,WACE,GAAI2tF,EAEJA,GAA0B,SAAS79D,EAAQ89D,EAA2BvhF,GACpE,GAAIgX,EAoBJ,OAnBAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,GAAI6oB,EAcJ,OAbAA,GAAatnB,EAAOvB,EAAMs/D,kBAAkBj6E,GAC5Cd,EAAGyR,GAAG,QAAS,SAAShW,GACtB,MAAIxO,OAAM2R,QAAQ0lC,EAAWye,OAAO,OAAQ,WAC1CtnD,EAAME,iBACCmF,EAAM2B,OAAO,WAElB,MADAlJ,GAAgBuoB,KAAKmY,EAAE,2BAChB6gD,EAA0BE,OAAS12C,EAAWye,OAAO,OAAQ,UAE7D91D,MAAM4R,MAAMylC,EAAWye,OAAO,OAAQ,WAC/CtnD,EAAME,iBACCvO,OAAO00B,KAAKwiB,EAAWye,OAAO,OAAQ,UAFxC,SAKFjiD,EAAMlH,IAAI,WAAY,WAC3B,MAAOoG,GAAG2R,UAIZpB,KAAMA,IAIVsqE,EAAwBvtE,SAAW,SAAU,8BAA+B,mBAE5Exd,QAAQjD,OAAO,mBAAmBwjB,UAAU,mBAAoBwqE,IAE/D1pF,KAAKjE,MAsBR,WACE,GAAI+tF,EAEJA,GAA6B,WAC3B,GAAI1qE,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,MAEhCtkD,SACA65D,kBACEr2B,WAAY,IACZ42C,SAAU,IACVnyC,SAAU,IACVzxC,KAAM,KAERjG,WAAY,aACZC,aAAc,KACdF,YAAa,gDACbmf,KAAMA,IAIV0qE,EAA2B3tE,WAE3Bxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,sBAAuB4qE,IAElE9pF,KAAKjE,MAsBR,WACE,GAAIiuF,EAEJA,GAAuB,WAGrB,QAASA,GAAqBt3C,EAAoB53B,GAChD/e,KAAK22C,mBAAqBA,EAC1B32C,KAAK+e,UAAYA,EACjB/e,KAAKyjB,QACLzjB,KAAKyjB,KAAKlf,YAAcvE,KAAKo3C,WAAWye,OAAO,OAAQ,gBACvD71D,KAAKyjB,KAAKyqE,cAAgBluF,KAAKo3C,WAAWtxC,KAAK,OAAQ,kBACvD9F,KAAKsE,MAAQtE,KAAK+e,UAAUxW,QAAQ,oBAClCogF,SAAU3oF,KAAKo3C,WAAWtxC,IAAI,QAC9BjF,KAAMkJ,OAAO/J,KAAKo3C,WAAWtxC,IAAI,iBAAiBgmB,OAAO9rB,KAAK+e,UAAUxW,QAAQ,sBAqCpF,MA/CA0lF,GAAqB7tE,SAAW,uBAAwB,cAcxD6tE,EAAqBr+E,UAAUu+E,SAAW,SAASh8B,GACjD,GAAI/a,EAEJ,OADAA,GAAap3C,KAAKo3C,WAAWr7B,IAAI,WAAYo2C,GACtCnyD,KAAK67C,UACVzE,WAAYA,KAIhB62C,EAAqBr+E,UAAU,UAAY,WACzC,MAAO5P,MAAKguF,UACV52C,WAAYp3C,KAAKo3C,cAIrB62C,EAAqBr+E,UAAUgf,KAAO,WACpC,GAAIwoB,EAaJ,OAZAA,GAAap3C,KAAKo3C,WAAWr7B,IAAI,WAAW,GAC5C/b,KAAK67C,UACHzE,WAAYA,IAEdA,EAAap3C,KAAKo3C,WAAWpP,OAC3BwH,UAAU,EACVjN,SAAS,IAEX6U,EAAaA,EAAWg3C,SAAS,SAC/B7pF,YAAavE,KAAKyjB,KAAKlf,YACvB2pF,gBAAiBluF,KAAKyjB,KAAKyqE,gBAEtBluF,KAAK67C,UACVzE,WAAYA,KAIT62C,KAITrrF,QAAQjD,OAAO,mBAAmBwE,WAAW,aAAc8pF,IAE1DhqF,KAAKjE,MAsBR,WACE,GAAIquF,EAEJA,GAAsB,WACpB,GAAIhrE,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,MAEhCtkD,SACA65D,kBACEr2B,WAAY,IACZ42C,SAAU,IACVnyC,SAAU,IACVzxC,KAAM,KAERjG,WAAY,aACZC,aAAc,KACdF,YAAa,wCACbmf,KAAMA,IAIVgrE,EAAoBjuE,WAEpBxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,eAAgBkrE,IAE3DpqF,KAAKjE,MAsBR,WACE,GAAIsuF,EAEJA,GAA2B,SAASx+D,GAClC,GAAIzM,EAuBJ,OAtBAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,GAAIggE,EAiBJ,OAhBAA,GAAYz+D,EAAOvB,EAAMigE,mBACzB17E,EAAGyR,GAAG,WAAY,SAAS3W,GAEzB,MADAA,GAAEa,kBACK,IAETqE,EAAGyR,GAAG,OAAQ,SAAS3W,GACrB,GAAI6gF,EAIJ,OAHA7gF,GAAEmiC,kBACFniC,EAAEa,iBACFggF,EAAe7gF,EAAE6gF,cAAiB7gF,EAAE8gF,eAAiB9gF,EAAE8gF,cAAcD,aAC9D76E,EAAM2B,OAAO,WAClB,MAAOg5E,GAAU36E,GACfg4D,MAAO6iB,EAAa7iB,YAInBh4D,EAAMlH,IAAI,WAAY,WAC3B,MAAOoG,GAAG2R,UAIZpB,KAAMA,IAIVirE,EAAyBluE,SAAW,UAEpCxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,oBAAqBmrE,IAEhErqF,KAAKjE,MAsBR,WACE,GAAI2uF,GAA2B38E,CAE/BA,GAAahS,KAAKD,MAAMiS,WAExB28E,EAA4B,WAG1B,QAASA,GAA0B5vE,EAAWovB,EAASznC,EAAQoV,EAASuvD,EAAwB/nE,EAAgBsqF,GAC9G5tF,KAAK+e,UAAYA,EACjB/e,KAAKmuC,QAAUA,EACfnuC,KAAK0G,OAASA,EACd1G,KAAK8b,QAAUA,EACf9b,KAAKqrE,uBAAyBA,EAC9BrrE,KAAKsD,eAAiBA,EACtBtD,KAAK4tF,0BAA4BA,EACjC5tF,KAAKmyD,KAAOnyD,KAAK8b,QAAQhW,IAAI,kBAAmB,QAChD9F,KAAKuoF,YAAcvoF,KAAK0G,OAAOZ,IAAI,oBAAqB,MACpD9F,KAAKuoF,cACPvoF,KAAKuoF,YAAcv2E,EAAWhS,KAAKuoF,cAErCvoF,KAAK4rF,eAAiB5rF,KAAKuoF,YAAcvoF,KAAK+e,UAAUxW,QAAQ,8BAC9DggF,YAAavoF,KAAKuoF,cACf,GACLxoF,MAAMqR,wBAAwBpR,KAAM,cAAe,SAAUoI,GAC3D,MAAO,YACL,MAAOA,GAAMijE,uBAAuBvzB,cAErC93C,OACHD,MAAMqR,wBAAwBpR,KAAM,mBAAoB,SAAUoI,GAChE,MAAO,YACL,MAAOA,GAAMijE,uBAAuBujB,mBAErC5uF,OACHD,MAAMqR,wBAAwBpR,KAAM,qBAAsB,SAAUoI,GAClE,MAAO,YACL,MAAOA,GAAMijE,uBAAuBwjB,qBAErC7uF,OACHD,MAAMqR,wBAAwBpR,KAAM,qBAAsB,SAAUoI,GAClE,MAAO,YACL,MAAOA,GAAMijE,uBAAuByjB,qBAErC9uF,OA8EL,MAnHA2uF,GAA0BvuE,SAAW,aAAc,aAAc,YAAa,aAAc,2BAA4B,mBAAoB,+BAwC5IuuE,EAA0B/+E,UAAUm/E,qBAAuB,WACzD,MAAO/uF,MAAKqrE,uBAAuB0jB,sBAGrCJ,EAA0B/+E,UAAUunC,cAAgB,SAASkB,GAC3D,GAAI7I,EAEJ,OADAA,GAAyB,SAAdxvC,KAAKmyD,KACTnyD,KAAKqrE,uBAAuBl0B,cAAcn3C,KAAKua,UAAWva,KAAKgvF,MAAOhvF,KAAKoK,KAAMiuC,EAAM7I,IAGhGm/C,EAA0B/+E,UAAUq/E,QAAU,SAAS98B,GAErD,MADAnyD,MAAKmyD,KAAOA,EACLnyD,KAAK8b,QAAQC,IAAI,kBAAmBo2C,IAG7Cw8B,EAA0B/+E,UAAUs/E,yBAA2B,WAC7D,MAAOlvF,MAAKqrE,uBAAuB6jB,4BAGrCP,EAA0B/+E,UAAUu/E,eAAiB,SAASvjB,GAC5D,MAAOvrE,GAAEkY,QAAQqzD,EAAO,SAAUxjE,GAChC,MAAO,UAASiwC,GACd,MAAOjwC,GAAM+uC,cAAckB,KAE5Br4C,QAGL2uF,EAA0B/+E,UAAUw/E,gBAAkB,WACpD,MAAOpvF,MAAKqrE,uBAAuB+jB,gBAAgBpvF,KAAKoK,KAAMpK,KAAKgvF,MAAOhvF,KAAKua,YAGjFo0E,EAA0B/+E,UAAUynC,iBAAmB,SAASg4C,GAC9D,GAAIrqE,GAAS1gB,CAMb,OALAtE,MAAK4tF,0BAA0BE,OAAS,KACxCxpF,EAAQtE,KAAK+e,UAAUxW,QAAQ,+CAC/Byc,EAAUhlB,KAAK+e,UAAUxW,QAAQ,6CAC/BogF,SAAU0G,EAAmBx5B,OAAO,OAAQ,WAEvC71D,KAAKmuC,QAAQ/X,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GAC7D,MAAO,UAASiuB,GACd,GAAI3S,GAASC,CAWb,OAVAD,GAAU,WAKR,MAJAsB,GAAU5c,EAAM2W,UAAUxW,QAAQ,sCAChC+mF,aAActqE,IAEhB5c,EAAM+lC,QAAQ3lC,OAAO,QAAS,KAAMwc,GAC7BqR,EAAY1B,QAAO,IAE5BhR,EAAY,WACV,MAAO0S,GAAY1B,UAEdvsB,EAAMijE,uBAAuBh0B,iBAAiBg4C,EAAoBjnF,EAAMgC,MAAMjH,KAAKwgB,EAAWD,KAEtG1jB,QAGL2uF,EAA0B/+E,UAAU2/E,kBAAoB,SAASn4C,EAAYugC,GAC3E,MAAO33E,MAAKqrE,uBAAuBkkB,kBAAkBvvF,KAAKoK,KAAMgtC,EAAYugC,IAG9EgX,EAA0B/+E,UAAU4/E,iBAAmB,SAASC,GAC9D,MAAOzvF,MAAKqrE,uBAAuBmkB,iBAAiBC,EAAoBzvF,KAAKoK,OAG/EukF,EAA0B/+E,UAAUqnB,YAAc,WAChD,QAAIj3B,KAAKsD,eAAewW,SACf9Z,KAAKsD,eAAeosF,cAAc1vF,KAAK2vF,iBAKlDhB,EAA0B/+E,UAAUggF,gBAAkB,WACpD,MAAO5vF,MAAKi3B,eAAiBj3B,KAAKqrE,uBAAuBvzB,YAAYrhC,MAGhEk4E,KAIT/rF,QAAQjD,OAAO,mBAAmBwE,WAAW,kBAAmBwqF,IAE/D1qF,KAAKjE,MAsBR,WACE,GAAI6vF,GAA0B7+E,CAE9BA,GAAWhR,KAAKD,MAAMiR,SAEtB6+E,EAA2B,WACzB,GAAIxsE,EAMJ,OALAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOlnD,GAAS4C,EAAO,WAAY,SAAS7E,GAC1C,MAAOmpD,GAAKk3B,sBAIdx7E,SACA65D,kBACErjE,KAAM,IACN4kF,MAAO,IACPz0E,UAAW,IACXo1E,eAAgB,KAElBxrF,WAAY,kBACZC,aAAc,KACdF,YAAa,oDACbmf,KAAMA,IAIVwsE,EAAyBzvE,WAEzBxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,oBAAqB0sE,IAEhE5rF,KAAKjE,MAsBR,WACE,GAAI8vF,GACFjtF,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfggF,GAAyB,SAAU1/E,GAKjC,QAAS0/E,GAAuBn5C,EAAoB1lB,GAClDjxB,KAAK22C,mBAAqBA,EAC1B32C,KAAKixB,UAAYA,EACjBjxB,KAAK+vF,aAAe9uE,UAAU0yB,OAC9B3zC,KAAKgwF,kBAAoB,EACzBhwF,KAAKiwF,oBAAsBhvE,UAAU0yB,OACrC3zC,KAAKkwF,qBAAsB,EAC3BlwF,KAAK+uF,wBACLhvF,MAAMqR,wBAAwBpR,KAAM,cAAe,SAAUoI,GAC3D,MAAO,YACL,MAAOA,GAAM2nF,eAEd/vF,OACHD,MAAMqR,wBAAwBpR,KAAM,mBAAoB,SAAUoI,GAChE,MAAO,YACL,MAAOA,GAAM4nF,oBAEdhwF,OACHD,MAAMqR,wBAAwBpR,KAAM,qBAAsB,SAAUoI,GAClE,MAAO,YACL,MAAOA,GAAM6nF,sBAEdjwF,OACHD,MAAMqR,wBAAwBpR,KAAM,qBAAsB,SAAUoI,GAClE,MAAO,YACL,MAAOA,GAAM8nF,sBAEdlwF,OA2IL,MA1KA6C,GAAOitF,EAAwB1/E,GAE/B0/E,EAAuB1vE,SAAW,uBAAwB,cAgC1D0vE,EAAuBlgF,UAAUs/E,yBAA2B,WAE1D,MADAlvF,MAAKkwF,qBAAuBlwF,KAAKkwF,oBAC1BlwF,KAAKmwF,cAGdL,EAAuBlgF,UAAUugF,WAAa,WAI5C,MAHAnwF,MAAKgwF,kBAAoBhwF,KAAK+vF,aAAatxE,MAAM,SAASjC,GACxD,MAAOA,GAAGq5C,OAAO,OAAQ,oBAEvB71D,KAAKkwF,oBACAlwF,KAAKiwF,oBAAsBjwF,KAAK+vF,aAEhC/vF,KAAKiwF,oBAAsBjwF,KAAK+vF,aAAariF,OAAO,SAAS8O,GAClE,OAAQA,EAAGq5C,OAAO,OAAQ,qBAKhCi6B,EAAuBlgF,UAAUunC,cAAgB,SAAS58B,EAAWy0E,EAAO5kF,EAAMiuC,EAAM7I,EAAUzgB,GAOhG,MANgB,OAAZygB,IACFA,GAAW,GAEE,MAAXzgB,IACFA,GAAU,GAEL,GAAIhhB,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,GAAI/D,EACJ,OAAIgF,GAAMuuC,mBAAmBvyB,SAASi0B,IACpCjwC,EAAM2mF,qBAAqBxnF,KAAK8wC,GAChCj1C,EAAUgF,EAAMuuC,mBAAmByB,OAAOC,EAAM22C,EAAOz0E,EAAWnQ,EAAM2kB,GACjE3rB,EAAQD,KAAK,SAASk1C;AAC3B,GAAIjB,EAcJ,OAbAhvC,GAAM2mF,qBAAuB3mF,EAAM2mF,qBAAqBrhF,OAAO,SAAS0iF,GACtE,MAAOA,GAAU77E,OAAS8jC,EAAKvyC,IAAI,UAErCsxC,EAAan2B,UAAU24C,MACvBxiB,EAAaA,EAAWpP,OACtBqQ,KAAMA,EACN7I,SAAUA,EACVjN,SAAS,EACT8tD,aAActhE,IAEhB3mB,EAAM2nF,aAAe3nF,EAAM2nF,aAAaxoF,KAAK6vC,GAC7ChvC,EAAM+nF,aACN/nF,EAAM6oB,UAAUvK,WAAW,qBACpB/jB,EAAQy0C,MAGVjwC,EAAO,GAAI8rB,OAAMolB,MAG3Br4C,QAGL8vF,EAAuBlgF,UAAUw/E,gBAAkB,SAAShlF,EAAM4kF,EAAOz0E,GACvE,MAAOva,MAAK22C,mBAAmB16B,KAAK7R,EAAM4kF,EAAOz0E,GAAWpX,KAAK,SAAUiF,GACzE,MAAO,UAASwjE,GAUd,MATAxjE,GAAM2nF,aAAenkB,EAAMtrE,IAAI,SAAS+3C,GACtC,GAAIjB,EAEJ,OADAA,GAAan2B,UAAU24C,MAChBxiB,EAAWpP,OAChBzF,SAAS,EACTiN,UAAU,EACV6I,KAAMA,MAGHjwC,EAAM+nF,eAEdnwF,QAGL8vF,EAAuBlgF,UAAUynC,iBAAmB,SAASg4C,EAAoBjlF,GAC/E,GAAIuZ,EASJ,OARAA,GAAY,SAAUvb,GACpB,MAAO,YAIL,MAHAA,GAAM2nF,aAAe3nF,EAAM2nF,aAAariF,OAAO,SAAS0pC,GACtD,MAAOA,KAAei4C,IAEjBjnF,EAAM+nF,eAEdnwF,MACIA,KAAK22C,mBAAmB,UAAUvsC,EAAMilF,EAAmBx5B,OAAO,OAAQ,QAAQ1yD,KAAKwgB,IAGhGmsE,EAAuBlgF,UAAU2/E,kBAAoB,SAASnlF,EAAMgtC,EAAYugC,GAC9E,GAAI7/B,GAAaw4C,EAAUn4C,CAI3B,IAHAm4C,EAAWtwF,KAAK83C,YAAY2K,UAAU,SAASjmC,GAC7C,MAAOA,KAAO46B,IAEZk5C,IAAa3Y,EAkBjB,MAfA7/B,GAAc93C,KAAK83C,YAAYl2B,OAAO0uE,GACtCx4C,EAAcA,EAAYmzB,OAAO0M,EAAU,EAAGvgC,GAC9CU,EAAcA,EAAYx3C,IAAI,SAASC,EAAGoS,GACxC,MAAOpS,GAAEgwF,OAAO,OAAQ,SAAU59E,EAAI,KAExCwlC,KACAL,EAAYv/B,QAAQ,SAAUnQ,GAC5B,MAAO,UAASgvC,GACd,GAAIzxC,EAIJ,OAHAA,IACE+/C,MAAOtO,EAAWye,OAAO,OAAQ,WAE5B1d,EAAS5wC,KAAKa,EAAMuuC,mBAAmBhxC,MAAMyxC,EAAWye,OAAO,OAAQ,OAAQzrD,EAAMzE,MAE7F3F,OACI+N,QAAQoM,IAAIg+B,GAAUh1C,KAAK,SAAUiF,GAC1C,MAAO,YAEL,MADAA,GAAM2nF,aAAej4C,EACd1vC,EAAM+nF,eAEdnwF,QAGL8vF,EAAuBlgF,UAAU4/E,iBAAmB,SAASC,EAAoBrlF,GAC/E,GAAI0O,GAAO03E,EAAe7qF,CAM1B,OALAmT,GAAQ9Y,KAAK+vF,aAAattC,UAAU,SAASrL,GAC3C,MAAOA,GAAWye,OAAO,OAAQ,SAAW45B,EAAmB55B,OAAO,OAAQ,SAEhF26B,EAAgBxwF,KAAK+vF,aAAajqF,IAAIgT,GACtCnT,EAAQ5F,MAAM4F,MAAM6qF,EAAc1qF,IAAI,QAAS2pF,EAAmB3pF,IAAI,SAClE2pF,EAAmB3pF,IAAI,YACzB9F,KAAK+vF,aAAe/vF,KAAK+vF,aAAah0E,IAAIjD,EAAO22E,GAC1CzvF,KAAKmwF,cAELnwF,KAAK22C,mBAAmBhxC,MAAM8pF,EAAmB55B,OAAO,OAAQ,OAAQzrD,EAAMzE,GAAOxC,KAAK,SAAUiF,GACzG,MAAO,YAEL,MADAA,GAAM2nF,aAAe3nF,EAAM2nF,aAAah0E,IAAIjD,EAAO22E,GAC5CrnF,EAAM+nF,eAEdnwF,QAIA8vF,GAEN/vF,MAAM4Q,SAET/N,QAAQjD,OAAO,mBAAmBijB,QAAQ,2BAA4BktE,IAErE7rF,KAAKjE,MAsBR,WACE,GAAIywF,EAEJA,GAA+B,WAG7B,QAASA,GAA6B7C,GACpC5tF,KAAK4tF,0BAA4BA,EACjC7tF,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAKA,GAAMwlF,0BAA0BE,OAG9B1lF,EAAMsoF,aAFJ,OAIV1wF,OA4DL,MAvEAywF,GAA6BrwE,SAAW,+BAcxCqwE,EAA6B7gF,UAAU+gF,cAAgB,WACrD,GAAIp2B,EAMJ,OALAA,GAASv6D,KAAK83C,YAAYpqC,OAAO,SAAUtF,GACzC,MAAO,UAASgvC,GACd,MAAOr3C,OAAM2R,QAAQ0lC,EAAWye,OAAO,OAAQ,YAEhD71D,OACIu6D,EAAO9jD,KAAO,GAGvBg6E,EAA6B7gF,UAAU8gF,WAAa,WAClD,GAAIt5C,GAAYiB,CAOhB,OANAjB,GAAap3C,KAAK83C,YAAYr7B,KAAK,SAAUrU,GAC3C,MAAO,UAASgvC,GACd,MAAOhvC,GAAMwlF,0BAA0BE,SAAW12C,EAAWye,OAAO,OAAQ,SAE7E71D,OACHq4C,EAAOjB,EAAWtxC,IAAI,SAIxB2qF,EAA6B7gF,UAAUghF,SAAW,WAChD,MAAO5wF,MAAK83C,YAAY2K,UAAU,SAAUr6C,GAC1C,MAAO,UAASgvC,GACd,MAAOhvC,GAAMwlF,0BAA0BE,SAAW12C,EAAWye,OAAO,OAAQ,SAE7E71D,QAGLywF,EAA6B7gF,UAAU1I,KAAO,WAC5C,GAAI2pF,GAAiBvgE,CAUrB,OATAugE,GAAkB7wF,KAAK4wF,WACvBtgE,EAAQtwB,KAAK83C,YAAYjlC,MAAMg+E,EAAkB,GAAGp0E,KAAK,SAAS26B,GAChE,MAAOr3C,OAAM2R,QAAQ0lC,EAAWye,OAAO,OAAQ,YAE5CvlC,IACHA,EAAQtwB,KAAK83C,YAAYr7B,KAAK,SAAS26B,GACrC,MAAOr3C,OAAM2R,QAAQ0lC,EAAWye,OAAO,OAAQ,aAG5C71D,KAAK4tF,0BAA0BE,OAASx9D,EAAMulC,OAAO,OAAQ,QAGtE46B,EAA6B7gF,UAAUi3C,SAAW,WAChD,GAAIgqC,GAAiBvgE,CAUrB,OATAugE,GAAkB7wF,KAAK4wF,WACvBtgE,EAAQtwB,KAAK83C,YAAYjlC,MAAM,EAAGg+E,GAAiBC,SAAS,SAAS15C,GACnE,MAAOr3C,OAAM2R,QAAQ0lC,EAAWye,OAAO,OAAQ,YAE5CvlC,IACHA,EAAQtwB,KAAK83C,YAAYg5C,SAAS,SAAS15C,GACzC,MAAOr3C,OAAM2R,QAAQ0lC,EAAWye,OAAO,OAAQ,aAG5C71D,KAAK4tF,0BAA0BE,OAASx9D,EAAMulC,OAAO,OAAQ,QAG/D46B,KAIT7tF,QAAQjD,OAAO,mBAAmBwE,WAAW,qBAAsBssF,IAElExsF,KAAKjE,MAsBR,WACE,GAAI+wF,EAEJA,GAAqC,SAAS1kF,EAAiBuhF,GAC7D,GAAIvqE,EAgBJ,OAfAA,GAAO,SAASC,EAAQxQ,EAAIyb,EAAO2pC,GAWjC,MAVAnrB,GAAExH,SAAS+H,MAAM/oB,GAAG,wBAAyB,SAAS3W,GAQpD,MAPIggF,GAA0BE,SACV,KAAdlgF,EAAEkoB,QACJoiC,EAAKhxD,OACkB,KAAd0G,EAAEkoB,SACXoiC,EAAKrR,YAGFvjC,EAAOqP,YAETrP,EAAO5W,IAAI,WAAY,WAC5B,MAAOqgC,GAAExH,SAAS+H,MAAM7oB,IAAI,sBAI9B7Q,SACAzP,WAAY,qBACZD,YAAa,0DACbmf,KAAMA,EACNjf,aAAc,KACdqpE,kBACE31B,YAAa,OAKnBl1C,QAAQjD,OAAO,mBAAmBwjB,UAAU,wBAAyB,kBAAmB,8BAA+B4tE,KAEtH9sF,KAAKjE,MAsBR,WACE,GAAIgxF,GACFnuF,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfkhF,GAA4B,SAAU5gF,GAKpC,QAAS4gF,MAET,MANAnuF,GAAOmuF,EAA2B5gF,GAElC4gF,EAA0B5wE,WAInB4wE,GAENjxF,MAAM4Q,SAET/N,QAAQjD,OAAO,mBAAmBijB,QAAQ,8BAA+BouE,IAExE/sF,KAAKjE,MAsBR,WACE,GAAIixF,EAEJA,GAA8B,WAG5B,QAASA,GAA4Bt6C,GACnC32C,KAAK22C,mBAAqBA,EAmC5B,MAtCAs6C,GAA4B7wE,SAAW,wBAMvC6wE,EAA4BrhF,UAAUunC,cAAgB,SAASkB,GAC7D,GAAIjB,EAMJ,IALAA,EAAan2B,UAAUC,QACrBm3B,KAAMA,EACN9jC,KAAM8jC,EAAK9jC,KACXkC,KAAM4hC,EAAK5hC,OAETzW,KAAK22C,mBAAmBvyB,SAASi0B,KACnCr4C,KAAK83C,YAAc93C,KAAK83C,YAAYvwC,KAAK6vC,GACrCp3C,KAAKkxF,OACP,MAAOlxF,MAAKkxF,OACV95C,WAAYA,KAMpB65C,EAA4BrhF,UAAUu/E,eAAiB,SAASvjB,GAC9D,MAAOvrE,GAAEkY,QAAQqzD,EAAO5rE,KAAKm3C,cAAcpnC,KAAK/P,QAGlDixF,EAA4BrhF,UAAUynC,iBAAmB,SAASg4C,GAIhE,GAHArvF,KAAK83C,YAAc93C,KAAK83C,YAAYpqC,OAAO,SAAS0pC,GAClD,MAAOA,KAAei4C,IAEpBrvF,KAAKguF,SACP,MAAOhuF,MAAKguF,UACV52C,WAAYi4C,KAKX4B,KAITruF,QAAQjD,OAAO,mBAAmBwE,WAAW,oBAAqB8sF,IAEjEhtF,KAAKjE,MAsBR,WACE,GAAImxF,EAEJA,GAA6B,WAC3B,GAAI9tE,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,MAEhCtkD,SACA65D,kBACE31B,YAAa,IACbo5C,MAAO,IACPlD,SAAU,KAEZ7pF,WAAY,oBACZC,aAAc,KACdF,YAAa,wDACbmf,KAAMA,IAIV8tE,EAA2B/wE,WAE3Bxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,sBAAuBguE,IAElEltF,KAAKjE,MAsBR,WACE,GAAIoxF,EAEJA,GAA8B,SAASthE,GACrC,GAAIzM,EAqCJ,OApCAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,GAAIsF,GAAUq7B,EAAOE,CA8BrB,OA7BAv7B,GAAW/D,EAAOvB,EAAM8iE,uBACxBniC,EAAQG,SAASv8C,EAAG,KAClBw8C,gBAAgB,EAChBvP,MAAM,EACNosB,gBAAiBr5D,EAAG,GACpB28C,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,yBAGtBmE,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAI0kC,GAAYugC,CAIhB,OAHAjlE,GAAOq6B,EAAEr6B,GACT0kC,EAAa1kC,EAAKkB,QAAQwjC,WAC1BugC,EAAWjlE,EAAKoG,QACTlF,EAAM2B,OAAO,WAClB,MAAOse,GAASjgB,GACdwjC,WAAYA,EACZt+B,MAAO6+D,QAIbvoB,EAASa,WAAW/vD,QAClBgwD,OAAQ,GACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvB18C,EAAMlH,IAAI,WAAY,WAE3B,MADAoG,GAAG2R,MACIyqC,EAAM9mB,cAIf/kB,KAAMA,IAIV+tE,EAA4BhxE,SAAW,UAEvCxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,wBAAyBiuE,IAEpEntF,KAAKjE,MAsBR,WACE,GAAIsxF,EAEJA,GAAsB,SAASzhE,GAC7B,OACExM,KAAM,SAASzP,EAAO2b,GACpB,MAAOM,GAAS,WACd,MAAON,GAAI,GAAG4G,cAMtBm7D,EAAoBlxE,SAAW,YAE/Bxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,eAAgBmuE,IAE3DrtF,KAAKjE,MAsBR,WACE,GAAIuxF,EAEJA,GAAkB,SAAS/5D,GACzB,GAAInU,EAeJ,OAdAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,GAAIijE,EAMJ,OAJEA,GADEjjE,EAAMkjE,YACQ,YAEA,SAEX79E,EAAMK,OAAOu9E,EAAe,SAASjlF,GAC1C,GAAIsrB,EAGJ,OAFAA,GAASL,EAAcO,UAAUxrB,EAAMilF,GACvC1+E,EAAGe,KAAK,MAAOgkB,EAAO/wB,KACfgM,EAAG41B,IAAI,aAAc7Q,EAAOI,IAAM,QAI3C5U,KAAMA,EACNzP,OACEikB,OAAQ,YACR65D,UAAW,kBAKjBH,EAAgBnxE,SAAW,mBAE3Bxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,WAAYouE,GAExD3uF,QAAQjD,OAAO,mBAAmBwjB,UAAU,cAAeouE,IAE1DttF,KAAKjE,MAsBR,WACE,GAAI2xF,GAAwBhyF,CAE5BA,GAASiD,QAAQjD,OAAO,cAExBgyF,EAAyB,WACvB,GAAItuE,GAAMnf,CAcV,OAbAmf,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,MAAO3a,GAAMK,OAAO,QAAS,SAAS2K,GACpC,GAAIA,IAAUA,EAAMgzE,WAClB,MAAOh+E,GAAMgL,MAAQqC,UAAUC,OAAOtC,MAI5C1a,EAAc,SAAS4O,EAAIyb,GACzB,MAAIA,GAAMzC,OACD,8CAAgDyC,EAAMzC,OAAS,QAEjE,yDAGPzI,KAAMA,EACNzP,OACEgL,MAAO,KAET1a,YAAaA,IAIjBvE,EAAOwjB,UAAU,kBAAmBwuE,IAEnC1tF,KAAKjE,MA2BR,WACE,GAAI6xF,EAEJA,GAAW,SAASC,EAAMhiE,EAAQoF,EAAU68D,EAAgBC,GAC1D,OACE9uE,SAAU,IACV+uE,QAAS,SAASC,EAAUC,GAC1B,GAAIC,GAAkBC,CAMtB,OALAD,GAAmBtiE,EAAOqiE,EAAOG,YACjCD,EAAkBviE,EAAOqiE,EAAOG,WAAY,SAASvjF,GACnD,OAAQA,GAAS,IAAIsD,aAEvB6iB,EAASq9D,kBAAkBL,GACpB,SAASt+E,EAAO3L,EAAS4L,GAE9B,MADAqhB,GAASs9D,iBAAiBvqF,EAAS4L,EAAKy+E,YACjC1+E,EAAMK,OAAOo+E,EAAiB,WACnC,GAAIx8D,EAGJ,OAFAA,GAAOk8D,EAAez9C,QAAQ89C,EAAiBx+E,IAC/C3L,EAAQ4tB,KAAKi8D,EAAKW,eAAe58D,IAAS,IACnCm8D,EAA+BU,gBAAgBzqF,SAOhErF,QAAQjD,OAAO,mBAAmBwjB,UAAU,cAAe,OAAQ,SAAU,WAAY,mBAAoB,mCAAoC0uE,KAEhJ5tF,KAAKjE,MAsBR,WACE,GAAI2yF,EAEJA,GAAqB,WACnB,OACE/+E,OACEg/E,OAAQ,IACR7jF,MAAO,KAET7K,YAAa,0CAIjBtB,QAAQjD,OAAO,mBAAmBwjB,UAAU,eAAgBwvE,KAE3D1uF,KAAKjE,MAsBR,WACE,GAAI6yF,EAEJA,GAA0B,WAGxB,QAASA,KACP7yF,KAAK8Y,MAAQ,EAiBf,MApBA+5E,GAAwBzyE,WAMxByyE,EAAwBjjF,UAAU1I,KAAO,WAEvC,GADAlH,KAAK8Y,QACD9Y,KAAK8Y,OAAS9Y,KAAKu6D,OAAO9jD,KAC5B,MAAOzW,MAAK8Y,MAAQ,GAIxB+5E,EAAwBjjF,UAAUi3C,SAAW,WAE3C,GADA7mD,KAAK8Y,QACD9Y,KAAK8Y,MAAQ,EACf,MAAO9Y,MAAK8Y,MAAQ9Y,KAAKu6D,OAAO9jD,KAAO,GAIpCo8E,KAITjwF,QAAQjD,OAAO,mBAAmBwE,WAAW,gBAAiB0uF,IAE7D5uF,KAAKjE,MAsBR,WACE,GAAI8yF,GAAwBnzF,CAE5BA,GAASiD,QAAQjD,OAAO,mBAExBmzF,EAAyB,WACvB,OACE3uF,WAAY,gBACZD,YAAa,gDACbupE,kBAAkB,EAClBrpE,aAAc,KACdwP,OACE2mD,OAAQ,OAKd56D,EAAOwjB,UAAU,kBAAmB2vE,IAEnC7uF,KAAKjE,MAsBR,WACE,GAAI+yF,EAEJA,GAAiB,WACf,QAASA,MA+ET,MA7EAA,GAAe3yE,WAEf2yE,EAAenjF,UAAUwmC,QAAU,SAAS7hC,GAC1C,MAAOvU,MAAKyzD,KAAK1sD,QAAQwN,SAG3Bw+E,EAAenjF,UAAU2mD,WAAa,WACpC,MAAOv2D,MAAKgzF,cACVp5E,GAAI5Z,KAAK0S,KAAK5M,IAAI,SAItBitF,EAAenjF,UAAUqjF,eAAiB,WACxC,MAAOjzF,MAAK0S,KAAKmjD,OAAO,QAAS,UAAUnoD,OAAO,SAASioB,GACzD,MAAOA,GAAK7vB,IAAI,gBAIpBitF,EAAenjF,UAAUsjF,mBAAqB,WAC5C,MAAoC,KAA7BlzF,KAAKizF,iBAAiBx8E,KAAazW,KAAK0S,KAAKmjD,OAAO,QAAS,UAAUp/C,MAGhFs8E,EAAenjF,UAAUujF,kBAAoB,WAC3C,MAAkB,SAAdnzF,KAAKoK,KACA,cAEA,aAIX2oF,EAAenjF,UAAUwjF,eAAiB,WACxC,GAAIp2C,EAuBJ,OAtBAA,IACEq2C,QAASrzF,KAAKo2C,QAAQ,iBACtBk9C,OAAQtzF,KAAKo2C,QAAQ,gBAElB/1C,EAAEsV,YAAY3V,KAAK0S,KAAK5M,IAAI,wBAC3B9F,KAAKo2C,QAAQ,kBAAoBp2C,KAAKo2C,QAAQ,gBAChD4G,EAAWq2C,SAAWrzF,KAAK0S,KAAK5M,IAAI,qBACpCk3C,EAAWs2C,QAAUtzF,KAAK0S,KAAK5M,IAAI,sBAC1B9F,KAAKo2C,QAAQ,gBACtB4G,EAAWq2C,QAAUrzF,KAAK0S,KAAK5M,IAAI,qBACnCk3C,EAAWs2C,OAAStzF,KAAK0S,KAAK5M,IAAI,sBACxB9F,KAAKo2C,QAAQ,kBAAqBp2C,KAAKo2C,QAAQ,iBACzD4G,EAAWq2C,QAAUrzF,KAAK0S,KAAK5M,IAAI,qBACnCk3C,EAAWs2C,OAAStzF,KAAK0S,KAAK5M,IAAI,uBAGjC9F,KAAK0S,KAAKmjD,OAAO,QAAS,WAAc71D,KAAK0S,KAAKmjD,OAAO,QAAS,UAAUp/C,OAC/EumC,EAAWq2C,SAAU,GAElBrzF,KAAK0S,KAAK5M,IAAI,WAAc9F,KAAK0S,KAAK5M,IAAI,UAAU2Q,OACvDumC,EAAWs2C,QAAS,GAEft2C,GAGT+1C,EAAenjF,UAAU2jF,sBAAwB,WAC/C,GAAIv2C,EAEJ,OADAA,GAAah9C,KAAKozF,iBACXp2C,EAAWq2C,SAGpBN,EAAenjF,UAAU4jF,mBAAqB,WAC5C,GAAIx2C,EAEJ,OADAA,GAAah9C,KAAKozF,iBACXp2C,EAAWs2C,QAGpBP,EAAenjF,UAAU6jF,UAAY,WACnC,MAAkB,SAAdzzF,KAAKoK,KACA,uBAEA,8BAIJ2oF,KAITnwF,QAAQjD,OAAO,mBAAmBwE,WAAW,OAAQ4uF,IAEpD9uF,KAAKjE,MAsBR,WACE,GAAI0zF,GAAe/zF,CAEnBA,GAASiD,QAAQjD,OAAO,mBAExB+zF,EAAgB,WACd,OACErwE,KAAM,SAASzP,KACfzP,WAAY,OACZC,aAAc,KACdqpE,kBAAkB,EAClBvpE,YAAa,4BACb0P,OACEo/E,aAAc,IACdW,kBAAmB,IACnBC,YAAa,IACb95E,QAAS,IACTpH,KAAM,IACN+gD,KAAM,IACND,UAAW,IACX+H,SAAU,IACVnxD,KAAM,OAKZzK,EAAOwjB,UAAU,SAAUuwE,IAE1BzvF,KAAKjE,MA2BR,WACE,GAAI6zF,EAEJA,GAAiB,WACf,OACExwE,KAAM,SAASzP,EAAOd,GAUpB,MATAA,GAAGyR,GAAG,QAAS,SAAS3W,GACtB,GAAIkmF,EACJ,KAAK/mD,EAAEn/B,EAAEoW,QAAQ+mC,GAAG,SAIlB,MAHAn9C,GAAEa,iBACFqlF,EAAYhhF,EAAG2J,KAAK,sBACpBq3E,EAAUlnF,IAAI,IACPknF,EAAU59C,QAAQ,WAGtBtiC,EAAMlH,IAAI,WAAY,WAC3B,MAAOoG,GAAG2R,WAMlB7hB,QAAQjD,OAAO,mBAAmBwjB,UAAU,oBAAqB0wE,KAEhE5vF,KAAKjE,MAsBR,WACE,GAAI+zF,GAAyB1iF,EAAoBtR,CAEjDA,GAAQC,KAAKD,MAEbsR,EAAqBtR,EAAMsR,mBAE3B0iF,EAA0B,WAGxB,QAASA,GAAwBzwF,GAC/BtD,KAAKsD,eAAiBA,EACtBtD,KAAKg3E,UAAY3lE,IACjBrR,KAAKg0F,uBACLh0F,KAAKi0F,kBAAmB,EAgD1B,MAtDAF,GAAwB3zE,SAAW,oBASnC2zE,EAAwBnkF,UAAUskF,mBAAqB,WACrD,OAAKl0F,KAAK0pC,cAGH1pC,KAAKsD,eAAeosF,cAAc1vF,KAAK0pC,eAGhDqqD,EAAwBnkF,UAAUokF,qBAAuB,WACvD,IAAKh0F,KAAKm0F,gBACR,MAAOn0F,MAAKg3E,UAAY32E,EAAE+zF,UAAUp0F,KAAKg3E,YAI7C+c,EAAwBnkF,UAAUykF,SAAW,SAASz3E,GACpD,MAAO5c,MAAK4c,MAAQ5c,KAAKs0F,WAG3BP,EAAwBnkF,UAAU2kF,WAAa,WAC7C,GAAIv0F,KAAKm0F,kBAAoBn0F,KAAK4c,MAChC,MAAO5c,MAAK4c,MAAQ5c,KAAKs0F,WAI7BP,EAAwBnkF,UAAU4kF,gBAAkB,WAElD,MADAx0F,MAAKi0F,kBAAoBj0F,KAAKi0F,iBACvBj0F,KAAKu0F,cAGdR,EAAwBnkF,UAAU6kF,sBAAwB,SAAS73E,GAKjE,MAJA5c,MAAK4c,MAAQA,EACb5c,KAAK0/D,eACH9iD,MAAOA,IAEF5c,KAAKw0F,mBAGdT,EAAwBnkF,UAAU8kF,UAAY,SAASnmF,GACrD,GAAoB,KAAhBA,EAAMqnC,MAIR,OAHI51C,KAAK4c,OAAU5c,KAAKm0F,iBACtBn0F,KAAKy0F,sBAAsBz0F,KAAK4c,OAE3BrO,EAAME,kBAIVslF,KAITnxF,QAAQjD,OAAO,mBAAmBwE,WAAW,oBAAqB4vF,IAEjE9vF,KAAKjE,MAsBR,WACE,GAAI20F,GAAwB3jF,CAE5BA,GAAWhR,KAAKD,MAAMiR,SAEtB2jF,EAAyB,SAAS9kE,GAChC,GAAIxM,EAuBJ,OAtBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAI08B,GAAU17B,EAAQ3mC,CAiBtB,OAhBAqiE,GAAW,KACX17B,EAAS,WAEP,MADArpC,GAASqpC,OAAO07B,GACTA,EAAW,MAEpBriE,EAAQ,WACN,IAAIqiE,EAGJ,MAAOA,GAAW/kE,EAAS,WAEzB,MADAqoC,GAAK+7B,kBAAmB,EACjB/7B,EAAKq8B,cACV,MAENzhF,EAAG2J,KAAK,mBAAmBo4E,WAAW37B,GAAQ47B,WAAWviE,GACzDzf,EAAG2J,KAAK,4BAA4Bo4E,WAAW37B,GAAQ47B,WAAWviE,GAC3D3e,EAAMK,OAAO,eAAgB,SAAS2I,GAC3C,MAAOs7C,GAAKm8B,SAASz3E,OAIvByG,KAAMA,EACNnf,YAAa,gDACbC,WAAY,oBACZC,aAAc,KACdqpE,kBACE0mB,gBAAiB,IACjBz0B,cAAe,IACf40B,UAAW,IACX5qD,aAAc,KAEhB91B,WAIJ+gF,EAAuBv0E,SAAW,YAElCxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,kBAAmBwxE,IAE9D1wF,KAAKjE,MAsBR,WACE,GAAI+0F,GAAuBp1F,CAE3BA,GAASiD,QAAQjD,OAAO,oBAExBo1F,EAAwB,WAGtB,QAASA,GAAsB9jE,EAAWkd,EAASsT,EAAgBxgB,EAAS/gC,GAC1EF,KAAKixB,UAAYA,EACjBjxB,KAAKmuC,QAAUA,EACfnuC,KAAKyhD,eAAiBA,EACtBzhD,KAAKihC,QAAUA,EACfjhC,KAAKE,OAASA,EACdF,KAAKmuF,UAAW,EAChBnuF,KAAKg1F,gBAAiB,EACtBh1F,KAAKi1F,gBAAkBj1F,KAAK0S,KAAKmM,QA2EnC,MArFAk2E,GAAsB30E,SAAW,aAAc,aAAc,8BAA+B,aAAc,WAa1G20E,EAAsBnlF,UAAUslF,UAAY,WAC1C,GAAIrnF,GAAKrK,EAAKimC,CAQd,IAPyE,OAA5B,OAAvCjmC,EAAMxD,KAAK0S,KAAKusD,UAAUpY,UAAoBrjD,EAAIA,IAAM,UAC5DqK,GACEiM,QAAS9Z,KAAK8Z,QAAQ0T,KACtBhqB,IAAKxD,KAAK0S,KAAKusD,UAAUpY,SAASrjD,KAEpCxD,KAAKk/D,YAAcl/D,KAAKihC,QAAQt+B,QAAQ,WAAa3C,KAAK0S,KAAKgc,MAAQ,UAAW7gB,IAEb,OAA7B,OAApC47B,EAAOzpC,KAAK0S,KAAKusD,UAAU/3D,MAAgBuiC,EAAKjmC,IAAM,QAK1D,MAJAqK,IACEiM,QAAS9Z,KAAK8Z,QAAQ0T,KACtBhqB,IAAKxD,KAAK0S,KAAKusD,UAAU/3D,KAAK1D,KAEzBxD,KAAKuG,QAAUvG,KAAKihC,QAAQt+B,QAAQ,WAAa3C,KAAK0S,KAAKgc,MAAQ,UAAW7gB,IAIzFknF,EAAsBnlF,UAAUulF,kBAAoB,WAClD,MAAOn1F,MAAKu5B,aACVstC,QAASxmE,EAAE4Z,SAASja,KAAK8Z,QAAQgT,eAAgB9sB,KAAK0pC,gBAI1DqrD,EAAsBnlF,UAAUwlF,YAAc,SAASrmF,GACrD,GAAIkd,EAEJ,IADAA,EAAYjsB,KAAKE,OAAO8rB,eACD,UAAnBC,EAAU7hB,OACR2E,IACF/O,KAAKmuF,UAAW,IAEbp/E,GACH,MAAO/O,MAAKmuF,UAAW,GAK7B4G,EAAsBnlF,UAAU8kF,UAAY,SAASnmF,GAInD,GAHoB,KAAhBA,EAAMqnC,OACR51C,KAAKq1F,cAEa,KAAhB9mF,EAAMqnC,MAER,MADA51C,MAAK0S,KAAKmM,QAAU7e,KAAKi1F,gBAClBj1F,KAAKo1F,aAAY,IAI5BL,EAAsBnlF,UAAUylF,YAAc,WAC5C,GAAI3iF,GAAM4iF,EAAoBC,EAAsB3rD,CAqBpD,OApBA2rD,GAAuB,SAAUntF,GAC/B,MAAO,YAIL,MAHAA,GAAM4sF,gBAAiB,EACvB5sF,EAAM6oB,UAAUvK,WAAW,kBAC3Bte,EAAM+lC,QAAQ3lC,OAAO,WACdJ,EAAM6sF,gBAAkB7sF,EAAMsK,KAAKmM,UAE3C7e,MACHs1F,EAAqB,SAAUltF,GAC7B,MAAO,YAEL,MADAA,GAAM4sF,gBAAiB,EAChB5sF,EAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACHA,KAAKmuF,UAAW,EAChBnuF,KAAKg1F,gBAAiB,EACtBtiF,EAAO1S,KAAK0S,KACZk3B,EAAY5pC,KAAKyhD,eAAe7yB,KAAK,SAASlc,GAC5C,MAAOA,KAEFk3B,EAAUzmC,KAAKoyF,EAAsBD,IAGvCP,KAITp1F,EAAOwE,WAAW,kBAAmB4wF,IAEpC9wF,KAAKjE,MAsBR,WACE,GAAIw1F,GAAuB71F,CAE3BA,GAASiD,QAAQjD,OAAO,oBAExB61F,EAAwB,WACtB,GAAInyE,EAMJ,OALArjB,MAAKogB,WACLiD,EAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAEhC,MADAA,GAAKi9B,oBACEj9B,EAAKg9B,cAGZ7xE,KAAMA,EACNlf,WAAY,kBACZspE,kBAAkB,EAClB75D,OACElB,KAAM,IACNoH,QAAS,IACT4vB,aAAc,KAEhBtlC,aAAc,KACdF,YAAa,gDAIjBvE,EAAOwjB,UAAU,iBAAkBqyE,IAElCvxF,KAAKjE,MAsBR,WACE,GAAIy1F,EAEJA,GAAsB,SAAS3lE,GAC7B,GAAIzM,EAeJ,OAdAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIq2B,EASJ,OARAA,GAAYz+D,EAAOvB,EAAMmnE,cACzB5iF,EAAGyR,GAAG,SAAU,SAAShW,GACvB,MAAOqF,GAAM2B,OAAO,WAClB,MAAOg5E,GAAU36E,GACfg4D,MAAOr9D,EAAM0V,cAAc2nD,YAI1Bh4D,EAAMlH,IAAI,WAAY,WAC3B,MAAOoG,GAAG2R,UAIZvB,SAAU,IACVG,KAAMA,IAIVoyE,EAAoBr1E,SAAW,UAE/Bxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,eAAgBsyE,IAE3DxxF,KAAKjE,MAsBR,WACE,GAAI21F,GAA4Bx1F,EAC9B0C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf3P,GAAeJ,MAAMI,aAErBw1F,EAA6B,SAAUvlF,GAKrC,QAASulF,GAA2BllF,EAAG+P,EAAMD,GAC3CvgB,KAAKyQ,EAAIA,EACTzQ,KAAKwgB,KAAOA,EACZxgB,KAAKugB,KAAOA,EA+Dd,MAtEA1d,GAAO8yF,EAA4BvlF,GAEnCulF,EAA2Bv1E,SAAW,KAAM,UAAW,WAQvDu1E,EAA2B/lF,UAAU8L,aAAe,SAASnB,EAAWq7E,EAAWj6E,GACjF,GAAI1Y,GAAU2Y,EAAMC,EAAIzY,EAAS0D,CAwCjC,OAvCA7D,GAAWjD,KAAKyQ,EAAEvN,QAClB4D,EAAM9G,KAAKwgB,KAAK7d,QAAQ,gBACxBkZ,EAAKtB,EAAY,IAAMoB,EACvBC,EAAOzb,GAAcoa,EAAWsB,IAC5Bxb,EAAEib,QAAQs6E,IACZxyF,EAAUpD,KAAKugB,KAAK,UAAUzZ,EAAM,IAAM8U,GACxClM,IAAKkM,EACL7M,MAAO6mF,IAETxyF,EAAQD,KAAK,WACX,MAAOF,GAASN,YAElBS,EAAQD,KAAK,KAAM,WACjB,MAAOF,GAASkE,aAGlB/D,EAAUpD,KAAKugB,KAAK1a,IAAIiB,EAAM,IAAM8U,GAClClM,IAAKkM,EACL7M,MAAO6mF,IAETxyF,EAAQD,KAAK,SAAS4E,GACpB,MAAO9E,GAASN,YAElBS,EAAQD,KAAK,KAAM,SAAUiF,GAC3B,MAAO,UAASL,GACd,GAAI8tF,EAQJ,OAPAA,GAAeztF,EAAMmY,KAAK3a,KAAK,GAAKkB,GAClC4I,IAAKkM,EACL7M,MAAO6mF,IAETC,EAAa1yF,KAAK,WAChB,MAAOF,GAASN,YAEXkzF,EAAa1yF,KAAK,KAAM,WAC7B,MAAOF,GAASkE,aAGnBnH,QAEEiD,EAASG,SAGlBuyF,EAA2B/lF,UAAU6L,WAAa,SAASlB,EAAWoB,GACpE,GAAI1Y,GAAU2Y,EAAMC,EAAIzY,EAAS0D,CAYjC,OAXA7D,GAAWjD,KAAKyQ,EAAEvN,QAClB4D,EAAM9G,KAAKwgB,KAAK7d,QAAQ,gBACxBkZ,EAAKtB,EAAY,IAAMoB,EACvBC,EAAOzb,GAAcoa,EAAWsB,IAChCzY,EAAUpD,KAAKugB,KAAKza,IAAIgB,EAAM,IAAM8U,GACpCxY,EAAQD,KAAK,SAAS4E,GACpB,MAAO9E,GAASN,QAAQoF,EAAKA,KAAKgH,SAEpC3L,EAAQD,KAAK,KAAM,SAAS4E,GAC1B,MAAO9E,GAASN,cAEXM,EAASG,SAGXuyF,GAEN51F,MAAM4Q,SAET/N,QAAQjD,OAAO,mBAAmBijB,QAAQ,+BAAgC+yE,IAEzE1xF,KAAKjE,MAsBR,WACE,GAAI81F,EAEJA,GAA2B,WACzB,GAAIzyE,EAoBJ,OAnBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIxqD,EAEJ,OADAA,GAASq/B,EAAE,aACJn5B,EAAMK,OAAOsa,EAAMwnE,KAAM,SAAShnF,GACvC,GAAIinF,GAAeC,CACnB,IAAIlnF,EAOF,MANArB,GAAO+O,KAAK,gBAAgBmU,OAC5BqlE,EAAgBvoF,EAAO+kC,SACvBujD,EAAgB,EAChBtoF,EAAOk2B,WAAWj6B,KAAK,WACrB,MAAOqsF,IAAiBjpD,EAAE/sC,MAAMk2F,aAAY,KAEvCnpD,EAAEj6B,EAAGqjF,QAAQC,aAAa1tD,KAC/B2tD,aAAcJ,EAAgBD,EAC9Bj5C,QAAW,cAMjBrR,SAAU,IACVroB,KAAMA,IAIVzgB,QAAQjD,OAAO,mBAAmBwjB,UAAU,qBAAsB2yE,KAEjE7xF,KAAKjE,MAsBR,WACE,GAAIs2F,EAEJA,GAAmB,WAGjB,QAASA,KACPt2F,KAAKu2F,OAAS,KACdv2F,KAAKw2F,kBAAmB,EACxBx2F,KAAKy2F,iBAAmB,GAsE1B,MA3EAH,GAAiBl2E,WAQjBk2E,EAAiB1mF,UAAU8mF,qBAAuB,SAASC,GACzD,MAAI32F,MAAKu2F,SAAWI,EACX32F,KAAKu2F,OAAS,KAEdv2F,KAAKu2F,OAASI,GAIzBL,EAAiB1mF,UAAUgnF,OAAS,SAASD,GAC3C,MAAO32F,MAAKu2F,SAAWI,GAGzBL,EAAiB1mF,UAAU0N,iBAAmB,WAM5C,MALAtd,MAAK62F,oBACHtiF,KAAMvU,KAAKy2F,mBAEbz2F,KAAKw2F,kBAAmB,EACxBx2F,KAAKu2F,OAAS,gBACPv2F,KAAKy2F,iBAAmB,IAGjCH,EAAiB1mF,UAAUiN,QAAU,WACnC,MAAO7c,MAAK82F,WACVrmF,EAAGzQ,KAAKyQ,KAIZ6lF,EAAiB1mF,UAAUuL,eAAiB,SAASzN,GACnD,MAAO1N,MAAK+2F,gBACVrpF,OAAQA,KAIZ4oF,EAAiB1mF,UAAUuL,eAAiB,SAASzN,GACnD,MAAO1N,MAAK+2F,gBACVrpF,OAAQA,KAIZ4oF,EAAiB1mF,UAAU8K,aAAe,SAASs8E,EAAgBtpF,GAKjE,MAJAA,IACEyP,SAAU65E,EACVtpF,OAAQA,GAEH1N,KAAKi3F,aACVvpF,OAAQA,KAIZ4oF,EAAiB1mF,UAAUiO,mBAAqB,SAASnQ,GACvD,MAAO1N,MAAKk3F,sBACVxpF,OAAQA,KAIZ4oF,EAAiB1mF,UAAUwN,mBAAqB,SAAS1P,GACvD,MAAO1N,MAAKm3F,sBACVzpF,OAAQA,KAIZ4oF,EAAiB1mF,UAAUwnF,iBAAmB,SAASJ,EAAgBtpF,GACrE,QAASrN,EAAEoc,KAAKzc,KAAKqc,gBAAiB,SAASG,GAC7C,MAAO9O,GAAOkM,KAAO4C,EAAG5C,IAAMo9E,EAAer6E,WAAaH,EAAGG,YAI1D25E,KAIT1zF,QAAQjD,OAAO,mBAAmBwE,WAAW,SAAUmyF,IAEtDryF,KAAKjE,MAsBR,WACE,GAAIq3F,EAEJA,GAAkB,WAChB,GAAIh0E,EAoBJ,OAnBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAI3rC,EASJ,OARAA,GAAU3Y,EAAMK,OAAO,cAAe,SAASxD,GAC7C,MAAIA,KAAMmD,EAAM0jF,GAAGC,YAAYC,QAC7B5jF,EAAM0jF,GAAG7mF,EAAIA,EACN8b,KACE3Y,EAAM0jF,GAAGC,YAAYC,OACvBjrE,IADF,SAIFgC,EAAM9B,SAAS,OAAQ,SAASmI,GAErC,MADAA,GAAOhhB,EAAMI,MAAM4gB,GACfA,EACK9hB,EAAGhC,SAAS,QAEZgC,EAAGuZ,YAAY,YAK1BzY,OACEkjF,UAAW,IACXG,YAAa,IACbE,qBAAsB,IACtBJ,eAAgB,IAChBG,qBAAsB,IACtBL,mBAAoB,IACpB13E,cAAe,IACfs4E,SAAU,KACVv8E,QAAS,IACTiE,cAAe,IACf9C,gBAAiB,KAEnBoxD,kBAAkB,EAClBtpE,WAAY,SACZC,aAAc,KACdF,YAAa,gCACbmf,KAAMA,IAIVzgB,QAAQjD,OAAO,mBAAmBwjB,UAAU,YAAak0E,KAExDpzF,KAAKjE,MAsBR,WACE,GAAI03F,GAAkB33F,CAEtBA,GAAQC,KAAKD,MAEb23F,EAAmB,SAASxjE,EAAYnU,EAAoB43E,EAAgB1xF,EAAWjD,GACrF,GAAIqgB,EAqDJ,OApDAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAI0/B,GAAcC,EAAOC,CA0BzB,OAzBAA,GAAa,KACbD,EAAQE,UACRF,EAAMG,WAAW,WACf,MAAOjrD,GAAE,aAAakQ,UAAU,KAElC46C,EAAMI,OAAO,WACX,MAAOl4E,GAAmBm4E,mBAE5BN,EAAe,SAAS1wF,EAAMR,GAC5B,GAAKA,EAAOQ,EAAK1C,SAcjB,MAXAqzF,GAAMM,YACJC,WAAW,EACXC,oBAAoB,EACpBC,iBAAiB,EACjBC,UAAWv1F,EAAWuF,QAAQ,oBAAsB,UACpDiwF,UAAW,UAAYx1F,EAAWuF,QAAQ,oBAC1CkwF,UAAWz1F,EAAWuF,QAAQ,oBAC9BmwF,UAAW11F,EAAWuF,QAAQ,oBAC9BowF,oBAAoB,IAEtBd,EAAMe,UAAU,QAASjB,EAAe7xF,IAAIoB,EAAK1C,UAC1CqzF,EAAMnpF,SAERwlB,EAAWxnB,IAAI,sBAAuB,SAAS6B,EAAOrH,GAC3D,MAAKA,GAAK1C,SAAYub,EAAmB3R,mBAOzCypF,EAAMG,WAAW,WACf,MAAOj4E,GAAmBm4E,eAAehxF,EAAK1C,WAE5C0C,EAAK7C,OACAyzF,EAAa5jE,EAAWxnB,IAAI,aAAc,WAI/C,MAHAqT,GAAmB84E,oBAAoB11F,KAAK,SAASuD,GACnD,MAAOkxF,GAAa1wF,EAAMR,KAErBoxF,MAGF/3E,EAAmB84E,oBAAoB11F,KAAK,SAASuD,GAC1D,MAAOkxF,GAAa1wF,EAAMR,OAlB5BmxF,EAAMiB,YACFhB,GACFA,UAsBNlkF,SACAyP,KAAMA,IAIVq0E,EAAiBt3E,SAAW,aAAc,uBAAwB,mBAAoB,YAAa,cAEnGxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,YAAau0E,IAExDzzF,KAAKjE,MAsBR,WACE,GAAI+4F,GACFl2F,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfipF,GAAiB,SAAU3oF,GAKzB,QAAS2oF,GAAeh6E,EAAWi6E,GACjCh5F,KAAK+e,UAAYA,EACjB/e,KAAKg5F,wBAA0BA,EA+IjC,MArJAn2F,GAAOk2F,EAAgB3oF,GAEvB2oF,EAAe34E,SAAW,aAAc,6BAOxC24E,EAAenpF,UAAUqpF,UAAY,WACnC,OACEC,UAAW,SAAU9wF,GACnB,MAAO,YACL,GAAI+wF,EAmCJ,OAlCAA,KAEIlxF,QAAS,wCACTmxF,SAAU,OACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,iCAC/BsM,KAAMzM,EAAM2W,UAAUxW,QAAQ,mCAGhCN,QAAS,wBACTmxF,SAAU,QACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,iCAC/BsM,KAAMzM,EAAM2W,UAAUxW,QAAQ,mCAGhCN,QAAS,sBACTmxF,SAAU,QACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,iCAC/BsM,MAAOzM,EAAM2W,UAAUxW,QAAQ,iCAAkCH,EAAM2W,UAAUxW,QAAQ,qCAI1FwkC,EAAE,wCAAwCge,GAAG,YAChDouC,EAAM5xF,MACJU,QAAS,uCACTmxF,SAAU,SACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,iCAC/BsM,MAAOzM,EAAM2W,UAAUxW,QAAQ,iCAAkCH,EAAM2W,UAAUxW,QAAQ,qCAIxF4wF,IAERn5F,MACHq5F,QAAS,SAAUjxF,GACjB,MAAO,YACL,GAAI+wF,EAmCJ,OAlCAA,KAEIlxF,QAAS,WACTmxF,SAAU,SACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,+BAC/BsM,MAAOzM,EAAM2W,UAAUxW,QAAQ,+BAAgCH,EAAM2W,UAAUxW,QAAQ,mCAGzFN,QAAS,uBACTmxF,SAAU,SACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,+BAC/BsM,KAAMzM,EAAM2W,UAAUxW,QAAQ,iCAGhCN,QAAS,WACTmxF,SAAU,OACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,+BAC/BsM,KAAMzM,EAAM2W,UAAUxW,QAAQ,iCAIhCH,EAAM4wF,wBAAwBM,MAAM,WACtCH,EAAM5xF,MACJU,QAAS,UACTmxF,SAAU,QACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,+BAC/BsM,KAAMzM,EAAM2W,UAAUxW,QAAQ,iCAI7B4wF,IAERn5F,MACH49D,OAAQ,SAAUx1D,GAChB,MAAO,YACL,GAAI+wF,EA4BJ,OA3BAA,KAEIlxF,QAAS,sBACTmxF,SAAU,SACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,8BAC/BsM,KAAMzM,EAAM2W,UAAUxW,QAAQ,gCAGhCN,QAAS,oBACTmxF,SAAU,QACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,8BAC/BsM,KAAMzM,EAAM2W,UAAUxW,QAAQ,gCAIhCH,EAAM4wF,wBAAwBM,MAAM,WACtCH,EAAM5xF,MACJU,QAAS,cACTmxF,SAAU,SACV50F,SACEF,MAAO8D,EAAM2W,UAAUxW,QAAQ,8BAC/BsM,MAAOzM,EAAM2W,UAAUxW,QAAQ,8BAA+BH,EAAM2W,UAAUxW,QAAQ,kCAIrF4wF,IAERn5F,QAIP+4F,EAAenpF,UAAU9J,IAAM,SAASyO,GACtC,GAAIglF,GAASC,CAGb,OAFAA,GAAWx5F,KAAKi5F,YAChBM,EAAUC,EAASjlF,GAAMtQ,KAAKjE,MACvBK,EAAEC,IAAIi5F,EAAS,SAAS7mF,GAC7B,GAAImjB,EAaJ,OAZAA,GAAO,GACHnjB,EAAKlO,QAAQF,QACfuxB,GAAQ,OAASnjB,EAAKlO,QAAQF,MAAQ,SAEpCjE,EAAE29C,QAAQtrC,EAAKlO,QAAQqQ,MACzBxU,EAAEkY,QAAQ7F,EAAKlO,QAAQqQ,KAAM,SAASA,GACpC,MAAOghB,IAAQ,MAAQhhB,EAAO,SAGhCghB,GAAQ,MAAQnjB,EAAKlO,QAAQqQ,KAAO,OAEtCnC,EAAKmlF,MAAQhiE,EACNnjB,KAIJqmF,GAENh5F,MAAM4Q,SAET/N,QAAQjD,OAAO,mBAAmBijB,QAAQ,mBAAoBm2E,IAE7D90F,KAAKjE,MAsBR,WACE,GAAIy5F,EAEJA,GAA2B,SAAS39E,EAASxY,GAC3C,GAAI+f,EAuCJ,OAtCAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIwhC,GAAantE,EAASotE,CA0B1B,OAzBA/lF,GAAMgmF,UAAY99E,EAAQhW,IAAI,gBAAkB,EAChD8N,EAAMg/E,OAAS,EACf+G,IAAU,QAAS,YAAa,QAAS,OAAQ,aAAc,WAAY,gBAAiB,gBAAiB,qBAC7GD,EAAc,SAASE,GAOrB,MANiB,OAAbA,IACFA,EAAY,GAEV99E,EAAQhW,IAAI,iBAAmB8zF,GACjC99E,EAAQC,IAAI,cAAe69E,GAEtBv5F,EAAEwX,OAAO8hF,EAAO,SAAS1kF,EAAQlG,EAAOW,GAI7C,MAHIA,IAAOkqF,IACT3kF,EAASA,EAAOhG,OAAOF,IAElBkG,KAGXrB,EAAMK,OAAO,YAAa,SAASu/C,GACjC,GAAIC,EAEJ,OADAA,GAAOimC,EAAYlmC,GACZ5/C,EAAMimF,cACXrmC,UAAWA,EACXC,KAAMA,MAGHlnC,EAAU3Y,EAAMK,OAAO,WAC5B,MAAO3Q,GAAewW,SACrB,SAASA,GACV,GAAIA,EAIF,MAHIA,GAAQhU,IAAI,kBAAkBiB,QAAQ,qBACxC6M,EAAMg/E,OAAS,GAEVrmE,QAKX3Y,OACEimF,aAAc,KAEhBj1F,SAAU,wGACVye,KAAMA,IAIVzgB,QAAQjD,OAAO,mBAAmBwjB,UAAU,qBAAsB,aAAc,mBAAoBs2E,KAEnGx1F,KAAKjE,MA2BR,WACE,GAAI85F,EAEJA,GAA4B,SAAS5oE,GACnC,GAAI7N,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,MAEzBrL,SAAU,KACVtP,SACAxP,aAAc,KACdD,WAAY,WAIV,MAHAnE,MAAKuyB,MAAQ,WACX,MAAOrB,GAAwB0D,MAAO,GAEjCtd,OAAOyiF,iBAAiB/5F,MAC7B40B,MACE9uB,IAAK,WACH,MAAOorB,GAAwB0D,OAGnCtwB,OACEwB,IAAK,WACH,MAAOorB,GAAwB5sB,QAGnCouB,MACE5sB,IAAK,WACH,MAAOorB,GAAwBwB,UAKvCrP,KAAMA,EACNnf,YAAa,wDAIjB41F,EAA0B15E,SAAW,6BAErCxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,qBAAsB22E,IAEjE71F,KAAKjE,MAsBR,WACE,GAAIg6F,GACFn3F,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfkqF,GAA0B,SAAU5pF,GAGlC,QAAS4pF,KACPh6F,KAAK40B,MAAO,EACZ50B,KAAKsE,MAAQ,GACbtE,KAAK0yB,KAAO,GASd,MAdA7vB,GAAOm3F,EAAyB5pF,GAQhC4pF,EAAwBpqF,UAAU8gB,KAAO,SAASpsB,EAAOouB,GAGvD,MAFA1yB,MAAK40B,MAAO,EACZ50B,KAAKsE,MAAQA,EACNtE,KAAK0yB,KAAOA,GAGdsnE,GAENj6F,MAAM4Q,SAET/N,QAAQjD,OAAO,mBAAmBijB,QAAQ,4BAA6Bo3E,IAEtE/1F,KAAKjE,MAsBR,WACE,GAAIi6F,EAEJA,GAA6B,SAASC,GACpC,GAAI72E,EAmBJ,OAlBAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,MAAO3a,GAAMK,OAAO,UAAW,SAAS6F,GACtC,GAAIqgF,GAAMC,CAEV,IADAtgF,EAAUmH,UAAUC,OAAOpH,GAK3B,MADAsgF,GAActgF,EAAQhU,IAAI,gBACtBs0F,GACFtnF,EAAGe,KAAK,MAAOumF,GACRtnF,EAAG41B,IAAI,aAAc,MAE5ByxD,EAAOD,EAAmBG,sBAAsBvgF,EAAQhU,IAAI,QAASgU,EAAQhU,IAAI,OACjFgN,EAAGe,KAAK,MAAOsmF,EAAK/pE,KACbtd,EAAG41B,IAAI,aAAcyxD,EAAKv9E,YAKrCyG,KAAMA,EACNzP,OACEkG,QAAS,0BAKfmgF,EAA2B75E,SAAW,wBAEtCxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,sBAAuB82E,IAElEh2F,KAAKjE,MAsBR,WACE,GAAIs6F,EAEJA,GAA+B,SAASJ,GACtC,GAAI72E,EAmBJ,OAlBAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,MAAO3a,GAAMK,OAAO,UAAW,SAAS6F,GACtC,GAAIqgF,GAAMC,CAEV,IADAtgF,EAAUmH,UAAUC,OAAOpH,GAK3B,MADAsgF,GAActgF,EAAQhU,IAAI,kBACtBs0F,GACFtnF,EAAGe,KAAK,MAAOumF,GACRtnF,EAAG41B,IAAI,aAAc,MAE5ByxD,EAAOD,EAAmBG,sBAAsBvgF,EAAQhU,IAAI,QAASgU,EAAQhU,IAAI,OACjFgN,EAAGe,KAAK,MAAOsmF,EAAK/pE,KACbtd,EAAG41B,IAAI,aAAcyxD,EAAKv9E,YAKrCyG,KAAMA,EACNzP,OACEkG,QAAS,4BAKfwgF,EAA6Bl6E,SAAW,wBAExCxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,wBAAyBm3E,IAEpEr2F,KAAKjE,MAsBR,WACE,GAAIu6F,EAEJA,GAAwB,WAGtB,QAASA,GAAsBj3F,EAAgB8lE,GAC7CppE,KAAKsD,eAAiBA,EACtBtD,KAAKopE,gBAAkBA,EACvBppE,KAAK8Z,QAAU,KACf9Z,KAAKw6F,KAAOv5E,UAAU24C,MAuGxB,MA7GA2gC,GAAsBn6E,SAAW,mBAAoB,qBASrDm6E,EAAsB3qF,UAAU8gB,KAAO,WAIrC,MAHA1wB,MAAK8Z,QAAU9Z,KAAKsD,eAAewW,QACnC9Z,KAAK08E,OAAS18E,KAAKy6F,oBACnBz6F,KAAK06F,sBACE16F,KAAK26F,uBAGdJ,EAAsB3qF,UAAUghB,KAAO,WAErC,MADA5wB,MAAK8Z,QAAU,KACR9Z,KAAKw6F,SAGdD,EAAsB3qF,UAAUpJ,OAAS,WACvC,MAAOxG,MAAKopE,gBAAgB30C,OAAO,iBACjCi1C,QAAS,8BAIb6wB,EAAsB3qF,UAAU8qF,oBAAsB,WACpD,GAAIE,EAEJ,IADAA,EAAqB56F,KAAK66F,sBAExB,MAAO76F,MAAK8Z,QAAU9Z,KAAK8Z,QAAQiC,IAAI,qBAAsB6+E,IAIjEL,EAAsB3qF,UAAU+qF,oBAAsB,WAoBpD,GAnBA36F,KAAKw6F,KAAOv5E,UAAU24C,KACpBh7C,OAAO,EACPy6E,SAAS,EACTz7B,QAAQ,EACRlhC,QAAQ,EACRO,MAAM,IAEJj9B,KAAK8Z,QAAQhU,IAAI,uBAAyB9F,KAAK8Z,QAAQhU,IAAI,kBAAkBiB,QAAQ,qBACvF/G,KAAKw6F,KAAOx6F,KAAKw6F,KAAKz+E,IAAI,SAAS,IAEjC/b,KAAK8Z,QAAQhU,IAAI,yBAA2B9F,KAAK8Z,QAAQhU,IAAI,kBAAkBiB,QAAQ,kBACzF/G,KAAKw6F,KAAOx6F,KAAKw6F,KAAKz+E,IAAI,WAAW,IAEnC/b,KAAK8Z,QAAQhU,IAAI,wBAA0B9F,KAAK8Z,QAAQhU,IAAI,kBAAkBiB,QAAQ,kBACxF/G,KAAKw6F,KAAOx6F,KAAKw6F,KAAKz+E,IAAI,UAAU,IAElC/b,KAAK8Z,QAAQhU,IAAI,wBAA0B9F,KAAK8Z,QAAQhU,IAAI,kBAAkBiB,QAAQ,sBACxF/G,KAAKw6F,KAAOx6F,KAAKw6F,KAAKz+E,IAAI,UAAU,IAElC/b,KAAK8Z,QAAQhU,IAAI,sBAAwB9F,KAAK8Z,QAAQhU,IAAI,kBAAkBiB,QAAQ,wBACtF,MAAO/G,MAAKw6F,KAAOx6F,KAAKw6F,KAAKz+E,IAAI,QAAQ,IAI7Cw+E,EAAsB3qF,UAAU6qF,kBAAoB,WAClD,GAAIK,GAAcC,EAAaC,EAAgB55D,EAAa65D,CAqB5D,OApBA75D,GAAcphC,KAAKsD,eAAeM,QAClCq3F,EAAqBj7F,KAAKsD,eAAe23F,mBACzCH,EAAeG,EAAmB3kF,YAAY,WAC9CykF,EAAcE,EAAmB3kF,YAAY,UACzCwkF,QAAuBC,SAEvBC,EADED,QAAsBD,EAAeC,EACtB,UAEA,UAGD,mBAAhB35D,IACqB,YAAnB45D,GAAmD,WAAnBA,EAClC55D,EAAc45D,EACLh7F,KAAK8Z,QAAQhU,IAAI,0BAA4B9F,KAAK8Z,QAAQhU,IAAI,uBACvEs7B,EAAc,WACJphC,KAAK8Z,QAAQhU,IAAI,yBAA2B9F,KAAK8Z,QAAQhU,IAAI,yBACvEs7B,EAAc,WAGXA,GAGTm5D,EAAsB3qF,UAAUirF,oBAAsB,WACpD,GAAIK,GAASp0F,CACb,IAA6C,cAAzC9G,KAAK8Z,QAAQhU,IAAI,oBACnBo1F,EAAU,yBACL,IAA6C,UAAzCl7F,KAAK8Z,QAAQhU,IAAI,oBAC1Bo1F,EAAU,wBACL,CAAA,GAA6C,UAAzCl7F,KAAK8Z,QAAQhU,IAAI,oBAErB,MAA6C,WAAzC9F,KAAK8Z,QAAQhU,IAAI,oBACnB9F,KAAK8Z,QAAQhU,IAAI,+BAEjB,EAJPo1F,GAAU,uBAcZ,MAPEp0F,GADE9G,KAAK8Z,QAAQhU,IAAI,+BACb9F,KAAK8Z,QAAQhU,IAAI,QAAU,IAAM/F,MAAMkS,QAAQjS,KAAK8Z,QAAQhU,IAAI,gCAEhE9F,KAAK8Z,QAAQhU,IAAI,QAEoB,UAAzC9F,KAAK8Z,QAAQhU,IAAI,sBACnBgB,EAAMA,EAAIsM,QAAQ,KAAM,KAEnB8nF,EAAUp0F,GAGZyzF,KAIT33F,QAAQjD,OAAO,mBAAmBwE,WAAW,cAAeo2F,IAE3Dt2F,KAAKjE,MAsBR,WACE,GAAIm7F,GAAsBp7F,CAE1BA,GAAQC,KAAKD,MAEbo7F,EAAuB,SAAS73F,EAAgB8lE,GAC9C,GAAI/lD,EA0BJ,OAzBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIkjC,EAYJ,OAXAA,GAAgB,WACd,MAAI93F,GAAewW,QACVo+C,EAAKxnC,OAELwnC,EAAKtnC,QAGhBhd,EAAMK,OAAO,WACX,MAAO3Q,GAAewW,SACpBshF,GACJxnF,EAAM0jF,GAAG+D,OAAQ,EACVtuD,EAAE7sC,QAAQqkB,GAAG,SAAU,WAC5B,GAAI60E,EAEJ,OADAA,GAAWrsD,EAAE7sC,QAAQ+8C,YACjBm8C,EAAW,KAAOxlF,EAAM0jF,GAAG+D,SAAU,GACvCznF,EAAM0jF,GAAG+D,OAAQ,EACVznF,EAAM+e,WACJymE,EAAW,KAAOxlF,EAAM0jF,GAAG+D,SAAU,GAC9CznF,EAAM0jF,GAAG+D,OAAQ,EACVznF,EAAM+e,WAFR,WAOT/e,SACAzP,WAAY,cACZC,aAAc,KACdF,YAAa,4CACbmf,KAAMA,IAIV83E,EAAqB/6E,SAAW,mBAAoB,qBAEpDxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,gBAAiBg4E,IAE5Dl3F,KAAKjE,MAsBR,WACE,GAAIs7F,GAAoB37F,CAExBA,GAASiD,QAAQjD,OAAO,eAExB27F,EAAqB,WACnB,GAAItlD,GAAU3yB,EAAM8S,EAAQiX,CAuD5B,OAtDAjX,GAAS,SAAS9X,GAChB,GAAIk9E,GAAiB5gD,EAAM6gD,CAI3B,OAHAn9E,GAASvN,SAAS,YAClB0qF,EAAmBn9E,EAAS+6E,WAAW5mD,IAAMn0B,EAAS63E,cACtDqF,EAAkBl9E,EAAS9O,SAAS2mF,cAChCsF,EAAmBD,GACrB5gD,EAAO6gD,EAAmBD,EACnBl9E,EAAS9O,SAAS0tC,UAAU5+B,EAAS9O,SAAS0tC,YAActC,IAC1Dt8B,EAAS+6E,WAAW5mD,IAAM,EAC5Bn0B,EAAS9O,SAAS0tC,UAAU5+B,EAAS9O,SAAS0tC,YAAc5+B,EAAS+6E,WAAW5mD,KADlF,QAITwD,EAAW,SAASljC,EAAI6iC,EAAM/hC,GAC5B,GAAI6hC,GAAevuC,EAAM+uC,CAEzB,IADAR,EAAgB3iC,EAAG2J,KAAK,aACX,KAATk5B,EAAa,CACf,IAAKF,EAAcroC,OACjB,MAAO+oB,GAAOrjB,EAAG2J,KAAK,YAGtB,IADAvV,EAAOuuC,EAAcvuC,KAAK,MACtBA,EAAKkG,OAEP,MADAqoC,GAAcppB,YAAY,YACnB8J,EAAOjvB,OAGb,IAAa,KAATyuC,EAAa,CACtB,IAAKF,EAAcroC,OACjB,MAAO+oB,GAAOrjB,EAAG2J,KAAK,WAGtB,IADAw5B,EAAOR,EAAcQ,KAAK,MACtBA,EAAK7oC,OAEP,MADAqoC,GAAcppB,YAAY,YACnB8J,EAAO8f,KAKtB7I,EAAO,WACL,MAAOL,GAAExH,UAAU9gB,IAAI,8BAEzBpB,EAAO,SAASzP,EAAOd,GAYrB,MAXAs6B,KACAL,EAAEj6B,GAAIvD,SAASgV,GAAG,mCAAoC,SAAUnc,GAC9D,MAAO,UAASmG,GACd,GAAIonC,EAEJ,IADAA,EAAOpnC,EAAMunB,QAAUvnB,EAAMunB,QAAUvnB,EAAMqnC,MAChC,KAATD,GAAwB,KAATA,EAEjB,MADApnC,GAAME,iBACCunC,EAASljC,EAAI6iC,EAAM/hC,KAG7B5T,OACI4T,EAAMlH,IAAI,WAAY0gC,KAG7B/pB,KAAMA,EACNnf,YAAa,iDACb0P,OACE6nF,YAAa,IACbC,WAAY,IACZl9E,IAAK,OAKX7e,EAAOwjB,UAAU,iBAAkBm4E,IAElCr3F,KAAKjE,MAsBR,WACE,GAAI27F,GAAyBh8F,EAAQ4S,CAErCA,GAAOvS,KAAKD,MAAMwS,KAElB5S,EAASiD,QAAQjD,OAAO,eAExBg8F,EAA0B,WAGxB,QAASA,GAAwBC,GAC/B57F,KAAK47F,eAAiBA,EACtB57F,KAAK67F,uBAAwB,EAC7B77F,KAAK87F,QACHvnF,KAAM,GACNqI,MAAO,MAET5c,KAAK07F,cACL17F,KAAKs3C,QAAS,EA2ChB,MArDAqkD,GAAwBv7E,SAAW,oBAanCu7E,EAAwB/rF,UAAU8c,iBAAmB,WACnD,MAAO1sB,MAAK47F,eAAelvE,iBAAiB1sB,KAAK8Z,QAAQgT,eAAgB9sB,KAAKu5B,cAGhFoiE,EAAwB/rF,UAAUmsF,mBAAqB,SAASC,GAC9D,MAAOh8F,MAAK07F,WAAa17F,KAAK47F,eAAeK,kBAAkBD,IAGjEL,EAAwB/rF,UAAUssF,gBAAkB,WAClD,MAAOl8F,MAAKs3C,QAAS,GAGvBqkD,EAAwB/rF,UAAUusF,UAAY,SAAS5nF,EAAMqI,GAG3D,GAFA5c,KAAK87F,OAAOvnF,KAAO,GACnBvU,KAAK87F,OAAOl/E,MAAQ,KACfrI,EAAKnH,OAGV,MAAIpN,MAAK67F,sBACHtnF,EAAKnH,OACApN,KAAKo8F,UACV7nF,KAAMA,EACNqI,MAAOA,IAHX,QAOI5c,KAAK8Z,QAAQ49B,YAAYnjC,KAC3BqI,EAAQ5c,KAAK8Z,QAAQ49B,YAAYnjC,IAE5BvU,KAAKo8F,UACV7nF,KAAMA,EACNqI,MAAOA,MAKb++E,EAAwB/rF,UAAUysF,YAAc,SAASz/E,GACvD,MAAO5c,MAAK87F,OAAOl/E,MAAQA,GAGtB++E,KAITh8F,EAAOwE,WAAW,oBAAqBw3F,IAEtC13F,KAAKjE,MAsBR,WACE,GAAIs8F,GAAwB38F,CAE5BA,GAASiD,QAAQjD,OAAO,eAExB28F,EAAyB,WACvB,GAAIj5E,EAkCJ,OAjCAA,GAAO,SAASzP,EAAOd,EAAIe,EAAMqkD,GAC/B,GAAI3rC,EAaJ,OAZKlsB,GAAEsV,YAAY9B,EAAKgoF,yBACtB3jC,EAAK2jC,uBAAwB,GAE/BtvE,EAAU3Y,EAAMK,OAAO,aAAc,SAAS6F,GAC5C,GAAKA,GAAYxC,OAAO9D,KAAKsG,GAAS1M,OAItC,MADAmf,KACK2rC,EAAK2jC,sBAAV,OACS3jC,EAAKwjC,WAAaxjC,EAAK6jC,mBAAmB7jC,EAAKp+C,QAAQ49B,eAG3D5kC,EAAGyR,GAAG,UAAW,aAAc,SAAShW,GAC7C,GAAIguF,EAeJ,OAdsB,MAAlBhuF,EAAMunB,SACRoiC,EAAK5gB,QAAS,EACd4gB,EAAK4jC,OAAOvnF,KAAO,GACnB2jD,EAAK4jC,OAAOl/E,MAAQ,GACpBrO,EAAMwhC,mBACqB,KAAlBxhC,EAAMunB,UACfvnB,EAAME,iBACFqE,EAAG2J,KAAK,4BAA4BrP,QACtCmvF,EAAUxvD,EAAE,gDAAgDl4B,OAC5DqjD,EAAKikC,UAAUI,EAAS,OAExBrkC,EAAKikC,UAAUjkC,EAAK4jC,OAAOvnF,KAAM2jD,EAAK4jC,OAAOl/E;AAG1ChJ,EAAM2B,aAIf8N,KAAMA,EACNzP,OACE2lB,YAAa,IACbijE,cAAe,IACfC,iBAAkB,IAClBrlF,KAAM,IACN0C,QAAS,IACTsiF,SAAU,IACVM,YAAa,KAEfx4F,YAAa,uDACbC,WAAY,oBACZC,aAAc,KACdqpE,kBAAkB,IAItB9tE,EAAOwjB,UAAU,kBAAmBm5E,IAEnCr4F,KAAKjE,MAsBR,WACE,GAAI28F,GAAmBh9F,EAAQ4S,CAE/BA,GAAOvS,KAAKD,MAAMwS,KAElB5S,EAASiD,QAAQjD,OAAO,eAExBg9F,EAAoB,WAGlB,QAASA,GAAkB1rE,EAAWkd,EAASsT,GAC7CzhD,KAAKixB,UAAYA,EACjBjxB,KAAKmuC,QAAUA,EACfnuC,KAAKyhD,eAAiBA,EACtBzhD,KAAKw8F,eAAgB,EA8DvB,MApEAG,GAAkBv8E,SAAW,aAAc,aAAc,+BASzDu8E,EAAkB/sF,UAAU8sF,YAAc,SAASl+E,GACjD,GAAIo+E,GAAkBC,EAAoBN,EAAS3yD,CAyBnD,OAxBA5pC,MAAKy8F,iBAAmBj+E,EAAI,GAC5Bq+E,EAAqB,SAAUz0F,GAC7B,MAAO,UAASsK,GAGd,MAFAtK,GAAM6oB,UAAUvK,WAAW,kBAC3Bte,EAAMq0F,kBAAmB,EAClB/pF,IAER1S,MACH48F,EAAmB,SAAUx0F,GAC3B,MAAO,YAEL,MADAA,GAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAMq0F,kBAAmB,IAEjCz8F,MACHu8F,EAAUhqF,EAAKiM,EAAI,GAAG/J,eACtBm1B,EAAY5pC,KAAKyhD,eAAe7yB,KAAK,SAASlc,GAC5C,GAAI8kC,EAMJ,OALAA,GAAWn3C,EAAEsY,MAAMjG,EAAK0E,MACxB/W,EAAEuhB,OAAO41B,EAAU,SAASh5B,GAC1B,MAAOA,GAAI,KAAO+9E,IAEpB7pF,EAAK0E,KAAOogC,EACL9kC,IAEFk3B,EAAUzmC,KAAK05F,EAAoBD,IAG5CD,EAAkB/sF,UAAUwsF,SAAW,SAAS59E,EAAK5B,GACnD,GAAIkgF,GAAeC,EAAiBnzD,CA0BpC,OAzBA5pC,MAAKw8F,eAAgB,EACrBO,EAAkB,SAAU30F,GAC1B,MAAO,UAASsK,GAId,MAHAtK,GAAM6oB,UAAUvK,WAAW,kBAC3Bte,EAAMkvC,QAAS,EACflvC,EAAMo0F,eAAgB,EACf9pF,IAER1S,MACH88F,EAAgB,SAAU10F,GACxB,MAAO,YAEL,MADAA,GAAMo0F,eAAgB,EACfp0F,EAAM+lC,QAAQ3lC,OAAO,WAE7BxI,MACH4pC,EAAY5pC,KAAKyhD,eAAe7yB,KAAK,SAAUxmB,GAC7C,MAAO,UAASsK,GACd,GAAI8kC,GAAUzoC,CAKd,OAJAA,GAAQwD,EAAKiM,EAAI/J,eACjB+iC,EAAWn3C,EAAEsY,MAAMjG,EAAK0E,MACxBogC,EAASjwC,MAAMiX,EAAK5B,IACpBlK,EAAK0E,KAAOogC,EACL9kC,IAER1S,OACI4pC,EAAUzmC,KAAK45F,EAAiBD,IAGlCH,KAITh9F,EAAOwE,WAAW,cAAew4F,IAEhC14F,KAAKjE,MAsBR,WACE,GAAIg9F,GAAkBr9F,CAEtBA,GAASiD,QAAQjD,OAAO,eAExBq9F,EAAmB,WACjB,OACEppF,OACElB,KAAM,IACN6mB,YAAa,IACbzf,QAAS,KAEX5V,YAAa,uDACbC,WAAY,cACZC,aAAc,KACdqpE,kBAAkB,IAItB9tE,EAAOwjB,UAAU,YAAa65E,IAE7B/4F,KAAKjE,MAsBR,WACE,GAAIi9F,GAAgBt9F,EAClBkD,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfnQ,GAASiD,QAAQjD,OAAO,eAExBs9F,EAAiB,SAAU7sF,GAKzB,QAAS6sF,MAYT,MAhBAp6F,GAAOo6F,EAAgB7sF,GAEvB6sF,EAAe78E,WAIf68E,EAAertF,UAAU8c,iBAAmB,SAASwwE,EAAeC,GAClE,MAAO98F,GAAE4Z,SAASijF,EAAeC,IAGnCF,EAAertF,UAAUqsF,kBAAoB,SAASD,GACpD,MAAO37F,GAAEC,IAAI07F,EAAkB,SAASljF,EAAO/J,GAC7C,OAAQA,EAAO+J,MAIZmkF,GAENl9F,MAAM4Q,SAEThR,EAAOijB,QAAQ,mBAAoBq6E,IAElCh5F,KAAKjE,MAsBR,WACE,GAAIo9F,GAAcz9F,CAElBA,GAASiD,QAAQjD,OAAO,eAExBy9F,EAAe,WACb,OACEl5F,YAAa,+BACb0P,OACE4K,IAAK,IACLi+E,iBAAkB,IAClBC,YAAa,IACbW,eAAgB,OAKtB19F,EAAOwjB,UAAU,QAASi6E,IAEzBn5F,KAAKjE,MAsBR,WACE,GAAIs9F,EAEJA,GAAyB,SAASxhF,GAChC,GAAIuH,EA6BJ,OA5BAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIwhC,GAAaC,CAkBjB,OAjBA/lF,GAAMgmF,UAAY99E,EAAQhW,IAAI,mBAAqB,EACnD8N,EAAMg/E,OAAS,EACf+G,IAAU,QAAS,YAAa,QAAS,OAAQ,aAAc,WAAY,cAAe,qBAAsB,kBAChHD,EAAc,SAASE,GAOrB,MANiB,OAAbA,IACFA,EAAY,GAEV99E,EAAQhW,IAAI,oBAAsB8zF,GACpC99E,EAAQC,IAAI,iBAAkB69E,GAEzBv5F,EAAEwX,OAAO8hF,EAAO,SAAS1kF,EAAQlG,EAAOW,GAI7C,MAHIA,IAAOkqF,IACT3kF,EAASA,EAAOhG,OAAOF,IAElBkG,KAGJrB,EAAMK,OAAO,YAAa,SAASu/C,GACxC,GAAIC,EAEJ,OADAA,GAAOimC,EAAYlmC,GACZ5/C,EAAMimF,cACXrmC,UAAWA,EACXC,KAAMA,QAKV7/C,OACEimF,aAAc,KAEhBj1F,SAAU,wGACVye,KAAMA,IAIVzgB,QAAQjD,OAAO,mBAAmBwjB,UAAU,mBAAoB,aAAcm6E,KAE7Er5F,KAAKjE,MA2BR,WACE,GAAIu9F,EAEJA,GAAgD,SAAS16E,GACvD,GAAIQ,EAKJ,OAJAA,GAAO,SAASzP,EAAOd,EAAIyb,GAEzB,MADA3a,GAAM4pF,iBAAmB36E,EAAQ/c,IAAI,oBAC9B8N,EAAM6pF,kBAAoB56E,EAAQ/c,IAAI,uBAG7Cod,SAAU,KACVtP,SACAyP,KAAMA,EACNnf,YAAa,0GAIjBtB,QAAQjD,OAAO,mBAAmBwjB,UAAU,0CAA2C,YAAao6E,KAEnGt5F,KAAKjE,MAsBR,WACE,GAAI09F,EAEJA,GAAuB,SAASt4B,EAAeu4B,GAC7C,GAAIt6E,EAWJ,OAVAA,GAAO,SAASzP,EAAOd,EAAIyb,GAIzB,MAHA3a,GAAM0jF,MACN1jF,EAAM0jF,GAAG9xB,UAAYJ,EAAc1+D,OAAO8+D,UAC1C5xD,EAAM0jF,GAAGxwF,IAAO62F,EAAgB7rE,WAAc,MAAS6rE,EAAgB3rE,OACpC,SAA/B2rE,EAAgB7rE,YAAoD,KAA3B6rE,EAAgBC,OACpDhqF,EAAM0jF,GAAGxwF,IAAM8M,EAAM0jF,GAAGxwF,IAAM,IAAO62F,EAAgBC,OACpB,UAA/BD,EAAgB7rE,YAAqD,MAA3B6rE,EAAgBC,OAC5DhqF,EAAM0jF,GAAGxwF,IAAM8M,EAAM0jF,GAAGxwF,IAAM,IAAO62F,EAAgBC,OADvD,SAKPhqF,OACEyjB,KAAM,IACN7b,YAAa,KAEfpX,aAAc,KACdF,YAAa,4CACbmf,KAAMA,IAIVq6E,EAAqBt9E,SAAW,YAAa,eAE7Cxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,gBAAiBu6E,IAE5Dz5F,KAAKjE,MAsBR,WACE,GAAI69F,EAEJA,GAAuB,SAASz4B,GAC9B,GAAIjiD,GAAWE,CAmBf,OAlBAA,GAAO,SAASzP,EAAOd,EAAIyb,GAMzB,MALA3a,GAAM0jF,MACN1jF,EAAM0jF,GAAG9xB,UAAYJ,EAAc1+D,OAAO8+D,UAC1C5xD,EAAM0jF,GAAG5mE,KAAO,WACd,MAAO9c,GAAM0jF,GAAG1iE,MAAO,GAElBhhB,EAAM0jF,GAAG1mE,KAAO,SAASriB,GAC9B,MAAOqF,GAAM0jF,GAAG1iE,MAAO,IAG3BzR,GACEjf,YAAa,4CACb0P,OACEkqF,SAAU,IACVC,MAAO,KAET16E,KAAMA,IAKVw6E,EAAqBz9E,SAAW,aAEhCxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,gBAAiB06E,IAE5D55F,KAAKjE,MAsBR,WACE,GAAIg+F,EAEJA,GAAuB,WAGrB,QAASA,GAAqBj+E,GAC5B/f,KAAK+f,mBAAqBA,EAC1B/f,KAAKuM,KAAOvM,KAAK+f,mBAAmB1R,UACpCrO,KAAKi+F,aAAc,EACnBj+F,KAAKuiC,SAAU,EAuCjB,MA7CAy7D,GAAqB59E,SAAW,wBAShC49E,EAAqBpuF,UAAUsuF,wBAA0B,WACvD,MAAOl+F,MAAKi+F,aAAc,GAG5BD,EAAqBpuF,UAAUuuF,yBAA2B,WACxD,MAAOn+F,MAAKi+F,aAAc,GAG5BD,EAAqBpuF,UAAUwuF,WAAa,WAC1C,GAAIh7F,EAYJ,OAXApD,MAAKuiC,SAAU,EAIbn/B,EAHGpD,KAAK0S,KAAK2rF,SAGHr+F,KAAKs+F,YAFLt+F,KAAKu+F,UAIjBn7F,EAAQ,WAAW,SAAUgF,GAC3B,MAAO,YACL,MAAOA,GAAMm6B,SAAU,IAExBviC,OACIoD,GAGT46F,EAAqBpuF,UAAU2uF,QAAU,WACvC,MAAOv+F,MAAKo/D,WAAWj8D,KAAK,SAAUiF,GACpC,MAAO,YACL,MAAOA,GAAM+1F,6BAEdn+F,QAGLg+F,EAAqBpuF,UAAU0uF,UAAY,WACzC,MAAOt+F,MAAKs/D,cAGP0+B,KAITp7F,QAAQjD,OAAO,mBAAmBwE,WAAW,aAAc65F,IAE1D/5F,KAAKjE,MAsBR,WACE,GAAIw+F,EAEJA,GAAsB,WACpB,OACE5qF,SACAzP,WAAY,aACZspE,kBACE/6D,KAAM,IACN0sD,SAAU,IACVE,WAAY,KAEdl7D,aAAc,KACdF,YAAa,4CAIjBtB,QAAQjD,OAAO,mBAAmBwjB,UAAU,eAAgBq7E,IAE3Dv6F,KAAKjE,MAsBR,WACE,GAAIy+F,EAEJA,GAAwB,WAGtB,QAASA,GAAsB1+E,EAAoBkR,GACjDjxB,KAAK+f,mBAAqBA,EAC1B/f,KAAKixB,UAAYA,EACjBjxB,KAAKuM,KAAOvM,KAAK+f,mBAAmB1R,UACpCrO,KAAKi+F,aAAc,EACnBj+F,KAAKuiC,SAAU,EA0DjB,MAjEAk8D,GAAsBr+E,SAAW,uBAAwB,cAUzDq+E,EAAsB7uF,UAAUsuF,wBAA0B,WACxD,MAAOl+F,MAAKi+F,aAAc,GAG5BQ,EAAsB7uF,UAAUuuF,yBAA2B,WACzD,MAAOn+F,MAAKi+F,aAAc,GAG5BQ,EAAsB7uF,UAAU8uF,aAAe,WAC7C,MAAO1+F,MAAKixB,UAAUvK,WAAW,cAAe1mB,KAAK0S,OAGvD+rF,EAAsB7uF,UAAU+uF,SAAW,WACzC,GAAIpqF,GAAMyhB,CACV,OAAKh2B,MAAK0S,MAGV6B,EAAOvU,KAAK0S,KAAKgc,MACjBsH,GACE/X,YAAa,YACbye,OAAQ,eACRtF,MAAO,cACPxY,MAAO,eAEFoX,EAAMzhB,IATJ,IAYXkqF,EAAsB7uF,UAAUgvF,YAAc,WAC5C,GAAIx7F,EAYJ,OAXApD,MAAKuiC,SAAU,EAIbn/B,EAHGpD,KAAK0S,KAAKmsF,WAGH7+F,KAAK8+F,WAFL9+F,KAAK++F,SAIjB37F,EAAQ,WAAW,SAAUgF,GAC3B,MAAO,YACL,MAAOA,GAAMm6B,SAAU,IAExBviC,OACIoD,GAGTq7F,EAAsB7uF,UAAUmvF,OAAS,WACvC,MAAO/+F,MAAKw/D,UAAUr8D,KAAK,SAAUiF,GACnC,MAAO,YACL,MAAOA,GAAM+1F,6BAEdn+F,QAGLy+F,EAAsB7uF,UAAUkvF,SAAW,WACzC,MAAO9+F,MAAKy/D,aAGPg/B,KAIT77F,QAAQjD,OAAO,mBAAmBwE,WAAW,cAAes6F,IAE3Dx6F,KAAKjE,MAsBR,WACE,GAAIg/F,EAEJA,GAAuB,WACrB,OACEprF,SACAzP,WAAY,cACZspE,kBACE/6D,KAAM,IACN8sD,QAAS,IACTC,UAAW,KAEbr7D,aAAc,KACdF,YAAa,SAASwO,EAAMusF,GAC1B,MAAO,wCAA0CA,EAAWC,YAAc,WAKhFt8F,QAAQjD,OAAO,mBAAmBwjB,UAAU,gBAAiB67E,IAE5D/6F,KAAKjE,MA2BR,WACE,GAAIm/F,EAEJA,GAAqB,SAAS9zB,GAC5B,GAAIhoD,EAwBJ,OAvBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIi/C,GAAO8I,CAYX,OAXA9I,IACE7jD,MAAO,OACPX,YAAa,KACbye,OAAQ,QACRtF,MAAO,QAETm0C,EAAa,SAASlzB,EAAMpqC,GAC1B,MAAOo9D,GAAuBl0B,cAAc7zB,EAAOg0E,GAAG/8E,UAAW+I,EAAOg0E,GAAGvoE,QAAQA,QAAQnV,GAAI6oD,EAAMn/C,EAAOg0E,GAAGvoE,QAAQA,QAAQL,OAAQ2pB,GAAM,GAAM,GAAMl1C,KAAK,SAAS8R,GACrK,MAAOhH,GAAGgH,EAAO4gD,OAAO,OAAQ,SAAU5gD,EAAO4gD,OAAO,OAAQ,YAG7DvyC,EAAOqoD,YAAc,SAASC,EAAO39D,GAC1C,GAAIoqC,GAAM1lC,EAAGqC,EAAKyF,CAElB,KADAA,KACK9H,EAAI,EAAGqC,EAAM42D,EAAMx+D,OAAQuF,EAAIqC,EAAKrC,IACvC0lC,EAAOuzB,EAAMj5D,GACb8H,EAAQlT,KAAKgkE,EAAWlzB,EAAMpqC,GAEhC,OAAOwM,MAIT7G,OAAO,EACPyP,KAAMA,EACNze,SAAU,iSAIdhC,QAAQjD,OAAO,mBAAmBwjB,UAAU,wBAAyB,2BAA4Bg8E,KAEhGl7F,KAAKjE,MA2BR,WACE,GAAIo/F,EAEJA,GAAiB,SAAS/zB,GACxB,GAAIhoD,EA0CJ,OAzCAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIi/C,GAAO8I,CAiCX,OAhCAjoD,GAAOkoD,qBAAsB,EAC7BloD,EAAO+7E,YAAc,SAAS96F,EAAa0J,GAGzC,MAFAqV,GAAOtE,QAAU,GACjBsE,EAAOg0E,GAAGltF,KAAK2kB,QAAUxqB,EAClB+e,EAAOg0E,GAAGgI,cACfzrE,SAAU5lB,KAGdw0D,GACE7jD,MAAO,OACPX,YAAa,KACbye,OAAQ,QACRtF,MAAO,QAETm0C,EAAa,SAASlzB,EAAMpqC,GAC1B,MAAOo9D,GAAuBl0B,cAAc7zB,EAAOg0E,GAAG/8E,UAAW+I,EAAOg0E,GAAGltF,KAAKwP,GAAI6oD,EAAMn/C,EAAOg0E,GAAGltF,KAAKskB,OAAQ2pB,GAAM,GAAM,GAAMl1C,KAAK,SAAS8R,GAC/I,MAAOhH,GAAGgH,EAAO4gD,OAAO,OAAQ,SAAU5gD,EAAO4gD,OAAO,OAAQ,YAGpEvyC,EAAOi8E,SAAW,SAAS5vD,GACzB,MAAOrsB,GAAOg0E,GAAGltF,KAAK2kB,QAAU4gB,GAElCrsB,EAAOqoD,YAAc,SAASC,EAAO39D,GACnC,GAAIoqC,GAAM1lC,EAAGqC,EAAKyF,CAElB,KADAA,KACK9H,EAAI,EAAGqC,EAAM42D,EAAMx+D,OAAQuF,EAAIqC,EAAKrC,IACvC0lC,EAAOuzB,EAAMj5D,GACb8H,EAAQlT,KAAKgkE,EAAWlzB,EAAMpqC,GAEhC,OAAOwM,IAET6I,EAAOtE,QAAU,GACVsE,EAAOrP,OAAO,UAAW,SAASlF,GACvC,GAAKA,EAGL,MAAOuU,GAAOuoD,WAAa,WAAa98D,EAAM+K,QAAU,IAAM/K,EAAM6K,GAAK,IAAM7K,EAAM2f,UAIvF9a,OAAO,EACPyP,KAAMA,EACNze,SAAU,0TAIdhC,QAAQjD,OAAO,mBAAmBwjB,UAAU,oBAAqB,2BAA4Bi8E,KAE5Fn7F,KAAKjE,MA2BR,WACE,GAAIw/F,EAEJA,GAAyB,SAASn0B,GAChC,GAAIhoD,EAuBJ,OAtBAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIi/C,GAAO8I,CAWX,OAVA9I,IACExkD,YAAa,KACbye,OAAQ,QACRtF,MAAO,QAETm0C,EAAa,SAASlzB,EAAMpqC,GAC1B,MAAOo9D,GAAuBl0B,cAAc7zB,EAAOg0E,GAAG/8E,UAAW+I,EAAOg0E,GAAGvoE,QAAQA,QAAQnV,GAAI6oD,EAAMn/C,EAAOg0E,GAAGvoE,QAAQA,QAAQL,OAAQ2pB,GAAMl1C,KAAK,SAAS8R,GACzJ,MAAOhH,GAAGgH,EAAO4gD,OAAO,OAAQ,SAAU5gD,EAAO4gD,OAAO,OAAQ,YAG7DvyC,EAAOqoD,YAAc,SAASC,EAAO39D,GAC1C,GAAIoqC,GAAM1lC,EAAGqC,EAAKyF,CAElB,KADAA,KACK9H,EAAI,EAAGqC,EAAM42D,EAAMx+D,OAAQuF,EAAIqC,EAAKrC,IACvC0lC,EAAOuzB,EAAMj5D,GACb8H,EAAQlT,KAAKgkE,EAAWlzB,EAAMpqC,GAEhC,OAAOwM,MAIT7G,OAAO,EACPyP,KAAMA,EACNze,SAAU,wQAIdhC,QAAQjD,OAAO,mBAAmBwjB,UAAU,4BAA6B,2BAA4Bq8E,KAEpGv7F,KAAKjE,MA2BR,WACE,GAAIy/F,EAEJA,GAAc,SAASp2D,EAAiBt9B,EAAY1D,EAAUgjE,EAAwBroE,GACpF,GAAIqgB,EAgDJ,OA/CAA,GAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAI+nD,EAuCJ,OAtCAjoD,GAAOkoD,qBAAsB,EAC7BloD,EAAOmoD,gBAAkB,SAASlnE,EAAa0J,GAC7C,GAAI27B,EAYJ,OAXAA,GAAYP,EAAgBza,KAAK,SAASlc,GAExC,MADAA,GAAKnO,YAAcA,EACZmO,IAETk3B,EAAUzmC,KAAK,WAEb,MADAkF,GAASG,OAAO,WACTuD,EAAW2a,WAAW,oBAE/BkjB,EAAUzmC,KAAK,KAAM,WACnB,MAAOkF,GAASG,OAAO,WAElBohC,EAAU,WAAW37B,IAE9Bs9D,EAAa,SAASlzB,EAAMpqC,GAC1B,MAAOo9D,GAAuBl0B,cAAc7zB,EAAOxJ,QAAQF,GAAI0J,EAAO5Q,KAAKkH,GAAI4J,EAAOpZ,KAAMiuC,GAAMl1C,KAAK,SAAS8R,GAC9G,MAAOhH,GAAGgH,EAAO4gD,OAAO,OAAQ,SAAU5gD,EAAO4gD,OAAO,OAAQ,YAGpEvyC,EAAOqoD,YAAc,SAASC,EAAO39D,GACnC,GAAIoqC,GAAM1lC,EAAGqC,EAAKyF,CAElB,KADAA,KACK9H,EAAI,EAAGqC,EAAM42D,EAAMx+D,OAAQuF,EAAIqC,EAAKrC,IACvC0lC,EAAOuzB,EAAMj5D,GACb8H,EAAQlT,KAAKgkE,EAAWlzB,EAAMpqC,GAEhC,OAAOwM,IAET6I,EAAOrP,OAAOuP,EAAOlD,MAAO,SAASvR,GACnC,GAAKA,EAKL,MAFAuU,GAAO5Q,KAAO3D,EACduU,EAAOtb,QAAU+G,EAAM/G,QAChBsb,EAAOuoD,WAAavoD,EAAOxJ,QAAQF,GAAK,IAAM7K,EAAM6K,GAAK,IAAM4J,EAAOpZ,OAExEkZ,EAAOrP,OAAO,UAAW,SAAS6F,GACvC,GAAKA,EAGL,MAAOwJ,GAAOkoD,oBAAsB1xD,EAAQgT,eAAe/lB,QAAQyc,EAAOkmB,uBAI5E91B,OAAO,EACPyP,KAAMA,EACNze,SAAU,msBAIdhC,QAAQjD,OAAO,mBAAmBwjB,UAAU,iBAAkB,8BAA+B,aAAc,aAAc,2BAA4B,aAAcs8E,KAElKx7F,KAAKjE,MA2BR,WACE,GAAI0/F,EAEJA,GAAiC,WAC/B,QAASA,MA0ET,MAxEAA,GAA+B9vF,UAAU+vF,aAAe,WACtD,MAAO,IAAI5xF,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,MAAIiB,GAAMw3F,UACDj9F,EAAQyF,EAAMw3F,WACZx3F,EAAMmkE,YACRnkE,EAAMmkE,YAAYppE,KAAK,WAC5B,MAAOR,GAAQyF,EAAMw3F,aAGhBx3F,EAAMmkE,YAAcx/B,EAAE8yD,QAAQ,IAAM3/F,OAAOmJ,SAAW,+BAA+BlG,KAAK,SAAS28F,GAMxG,MALA13F,GAAMmkE,YAAc,KACpBnkE,EAAMw3F,UAAYv/F,EAAEC,IAAIw/F,EAAa,SAAStjF,GAE5C,MADAA,GAAG1V,IAAO,IAAM5G,OAAOmJ,SAAW,UAAamT,EAAG67B,KAC3C77B,IAEF7Z,EAAQyF,EAAMw3F,eAI1B5/F,QAGL0/F,EAA+B9vF,UAAUmwF,uBAAyB,SAAShzE,GACzE,GAAIizE,EAMJ,OALAA,GAAM3/F,EAAEoc,KAAKzc,KAAK4/F,UAAW,SAASpjF,GACpC,QAASnc,EAAEoc,KAAKsQ,EAAS,SAASha,GAChC,MAAO,YAAcyJ,EAAGjI,OAASxB,MAGjCitF,EACKA,EAAIzrF,KAEJ,MAIXmrF,EAA+B9vF,UAAUqwF,aAAe,SAASD,GAC/D,MAAO,IAAIjyF,SAAQ,SAASpL,GAC1B,MAAKu9F,OAAMN,UAAUI,GAGZr9F,IAFAsH,IAAIC,KAAK,IAAMhK,OAAOmJ,SAAW,gBAAkB22F,EAAM,UAAWr9F,MAOjF+8F,EAA+B9vF,UAAUuwF,kBAAoB,SAASxqD,GACpE,MAAO5I,GAAE4I,GAAMl5B,KAAK,MAAM2jF,YAAY,OAGxCV,EAA+B9vF,UAAUywF,eAAiB,SAAS1qD,GACjE,GAAIqqD,EAGJ,IAFAhgG,KAAKmgG,kBAAkBxqD,GACvBqqD,EAAMhgG,KAAK+/F,uBAAuBpqD,EAAK3iC,WAErC,MAAOhT,MAAKigG,aAAaD,GAAK78F,KAAK,WACjC,MAAO+8F,OAAMI,iBAAiB3qD,MAKpC+pD,EAA+B9vF,UAAU8iF,gBAAkB,SAASzqF,GAClE,GAAIs4F,EAEJ,OADAA,GAAQxzD,EAAE9kC,GAASwU,KAAK,QACjB8jF,EAAM52F,KAAK,SAAUvB,GAC1B,MAAO,UAAS0Q,EAAO68B,GACrB,MAAOvtC,GAAMi4F,eAAe1qD,KAE7B31C,QAGE0/F,KAIT98F,QAAQjD,OAAO,mBAAmBijB,QAAQ,mCAAoC88E,IAE7Ez7F,KAAKjE,MA2BR,WACE,GAAIwgG,EAEJA,GAAsB,SAASn0F,GAC7B,GAAIgX,EAmBJ,OAlBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOtkD,GAAMK,OAAO,UAAW,SAASmiC,GACtC,MAAIA,KAAYtjC,EAAG21B,SAAS,SAC1B70B,EAAMghB,MAAO,EACbvoB,EAAgBuoB,KAAK9hB,EAAI,KAAMc,EAAM4b,SAC9B5b,EAAMiiC,YAAY,WACvB,GAAI4qD,EAEJ,IADAA,EAAW3tF,EAAG,GAAG4tF,cAAc,YAE7B,MAAOD,GAAStqE,aAGVigB,GAAWtjC,EAAG21B,SAAS,SACjC70B,EAAMghB,MAAO,EACNvoB,EAAgBkmB,MAAMzf,IAFxB,WAOTc,OACEgsF,UAAW,IACXe,aAAc,IACdhrD,KAAM,IACNS,QAAS,IACT5mB,QAAS,IACToxE,OAAQ,KAEVv9E,KAAMA,EACNnf,YAAa,wEAIjBtB,QAAQjD,OAAO,mBAAmBwjB,UAAU,yBAA0B,kBAAmBq9E,KAExFv8F,KAAKjE,MA2BR,WACE,GAAI6gG,EAEJA,GAAwB,WAGtB,QAASA,GAAsBv9F,EAAgByuF,EAAgB+O,EAAS1mF,GACtEpa,KAAKsD,eAAiBA,EACtBtD,KAAK+xF,eAAiBA,EACtB/xF,KAAK8gG,QAAUA,EACf9gG,KAAKoa,GAAKA,EACVpa,KAAK+gG,kBAAoB,KAyG3B,MAhHAF,GAAsBzgF,SAAW,mBAAoB,mBAAoB,aAAc,gBAUvFygF,EAAsBjxF,UAAUoxF,YAAc,SAASzsF,EAAMtG,GAC3D,GAAIgzF,EAGJ,OAFAA,GAAiBjhG,KAAK+xF,eAAemP,kBAAkB3sF,GACvD0sF,EAAiBA,EAAepuF,MAAM,EAAG,IAClC5E,EAAGgzF,IAGZJ,EAAsBjxF,UAAUuxF,WAAa,SAASx/D,EAAM1zB,GAC1D,GAAImzF,GAAa/nF,CAuBjB,OAtBA+nF,IAAe,WAAY,YAAa,qBACxC/nF,EAAQrZ,KAAKsD,eAAewW,QAAQrB,OAAOsB,QAAQrM,OAAO,SAAUtF,GAClE,MAAO,UAASmE,GACd,GAAIoG,GAAGqC,EAAKsZ,CACZ,KAAK3b,EAAI,EAAGqC,EAAMosF,EAAYh0F,OAAQuF,EAAIqC,EAAKrC,IAE7C,GADA2b,EAAO8yE,EAAYzuF,GACf5S,MAAMkS,QAAQ1F,EAAK+hB,IAAOvnB,QAAQ46B,IAAS,EAC7C,OAAO,CAGX,QAAO,IAER3hC,OACHqZ,EAAQA,EAAMxG,MAAM,EAAG,IAAIvS,IAAI,SAAU8H,GACvC,MAAO,UAASoU,GAKd,MAJAA,GAAG1V,IAAMsB,EAAM04F,QAAQn+F,QAAQ,gBAC7BmX,QAAS1R,EAAM9E,eAAewW,QAAQhU,IAAI,QAC1Cue,SAAU7H,EAAG6H,WAER7H,IAERxc,OACIiO,EAAGoL,IAGZwnF,EAAsBjxF,UAAUyxF,WAAa,SAAS1/D,GACpD,MAAO,IAAI5zB,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,GAAIuG,GAAQ0zF,EAAaE,EAAa9gF,CAuBtC,OAtBAmhB,GAAO5hC,MAAMkS,QAAQ0vB,GACrB2/D,GAAe,SAAU,QAAS,eAClC9gF,GACEkc,OAAQ,wBACRtF,MAAO,uBACPnZ,YAAa,8BAEfmjF,GAAe,MAAO,WACtB1zF,EAAS,SAASgF,GAChB,GAAIC,GAAGqC,EAAKsZ,CACZ,KAAK3b,EAAI,EAAGqC,EAAMosF,EAAYh0F,OAAQuF,EAAIqC,EAAKrC,IAE7C,GADA2b,EAAO8yE,EAAYzuF,GACf5S,MAAMkS,QAAQS,EAAK4b,IAAOvnB,QAAQ46B,IAAS,EAC7C,OAAO,CAGX,QAAO,GAELv5B,EAAM24F,mBACR34F,EAAM24F,kBAAkBr+D,QAE1Bt6B,EAAM24F,kBAAoB34F,EAAMgS,GAAG5T,OAAO,MAAM4B,EAAM9E,eAAewW,QAAQhU,IAAI,MAAO67B,GACjFv5B,EAAM24F,kBAAkB59F,KAAK,SAASgyD,GAC3C,GAAIxiD,GAAG4uF,EAAOvsF,EAAKC,EAAQ7K,CAC3B,IAAI+qD,EAAI12C,MAAQ,GAAK02C,EAAI12C,QAAU02C,EAAI1xB,UAAUr2B,OAC/C,MAAOzK,MAGP,KADAsS,KACKtC,EAAI,EAAGqC,EAAMssF,EAAYl0F,OAAQuF,EAAIqC,EAAKrC,IAC7CvI,EAAOk3F,EAAY3uF,GACfwiD,EAAI/qD,IAAS+qD,EAAI/qD,GAAMgD,OAAS,IAClCm0F,EAAQpsC,EAAI/qD,GAAMsD,OAAOA,GACzB6zF,EAAQA,EAAMjhG,IAAI,SAASkc,GAKzB,MAJAA,GAAG1V,IAAMsB,EAAM04F,QAAQn+F,QAAQ6d,EAAKpW,IAClC0P,QAAS1R,EAAM9E,eAAewW,QAAQhU,IAAI,QAC1CtC,IAAKgZ,EAAGhZ,MAEHgZ,IAETvH,EAASA,EAAOhG,OAAOsyF,GAI3B,OADAtsF,GAAS5U,EAAEqZ,OAAOzE,GAAS,QACpBtS,EAAQsS,EAAOpC,MAAM,EAAG,SAIpC7S,QAGL6gG,EAAsBjxF,UAAUpJ,OAAS,SAASg7F,GAChD,MAAO,IAAIzzF,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,GACd,MAAI,IAAIoE,QAAQy6F,EAAQ,SACfp5F,EAAMi5F,WAAWG,EAAQpuF,QAAQ,IAAK,KAAKjQ,KAAKR,GAC9C,IAAIoE,QAAQy6F,EAAQ,SACtBp5F,EAAM+4F,WAAWK,EAAQpuF,QAAQ,IAAK,IAAKzQ,GACzC,IAAIoE,QAAQy6F,EAAQ,SACtBp5F,EAAM44F,YAAYQ,EAAQpuF,QAAQ,IAAK,IAAKzQ,GAD9C,SAIR3C,QAGE6gG,KAITj+F,QAAQjD,OAAO,mBAAmBijB,QAAQ,0BAA2Bi+E,IAEpE58F,KAAKjE,MA2BR,WACE,GAAIyhG,GAAQzwF,EAAUjR,CAEtBA,GAAQC,KAAKD,MAEbiR,EAAWhR,KAAKD,MAAMiR,SAEtBywF,EAAS,SAASz+F,EAAYqF,EAAU0mC,EAAUgjD,EAAgB/kE,EAAgBitB,EAAU+3C,EAAgC0P,EAAuBngD,GACjJ,GAAIogD,GAAkBC,EAAYC,EAAoBC,EAA2BC,EAASC,EAAmBC,EAAqB5+E,EAAM6+E,EAAqBC,EAAmBC,EAA8BC,CA8f9M,OA7fAA,GAAmB,WACjB,GAAIniG,OAAO8rB,cACT,GAAI9rB,OAAO8rB,eAAewiC,MACxB,MAAOtuD,QAAO8rB,eAAewiC,YAE1B,CAAA,GAAItuD,OAAO8rB,eAAes2E,gBAC/B,MAAOpiG,QAAO8rB,eAAes2E,iBACxB,IAAI/8D,SAAStZ,UAClB,MAAOsZ,UAAStZ,UAAUuiC,UAG9BwzC,EAAoB,SAAS92F,GAC3B,MAAO6hC,GAAE7hC,EAAMq3F,cAAcC,aAAa,UAAW,SAEvDP,EAAsB,SAAS/2F,GAC7B,QAAS82F,EAAkB92F,GAAOkC,QAEpCg1F,EAA+B,SAASn2E,EAAWw2E,GACjD,GAAI9sD,GAAMiR,EAAG87C,CAUb,OARE/sD,GADE5I,EAAE9gB,GAAW8+B,GAAG,QACX9+B,EAEA8gB,EAAE9gB,GAAWqmB,QAAQ,QAAQ,GAEtCowD,EAAM/sD,EAAKtQ,WACXuhB,EAAIrhB,SAASL,cAAc,KAC3B0hB,EAAE+7C,UAAYhtD,EAAKgtD,UACnBD,EAAIr9D,WAAWu9D,aAAah8C,EAAG87C,GACxBD,EAAeI,oBAAoBJ,EAAet4C,SAAS,KAEpE23C,EAA4B,SAAS52F,EAAOqkB,GAC1C,GAAIomB,GAAMmtD,EAASJ,EAAKh0F,CAWxB,OAVAg0F,GAAMn9D,SAASL,cAAc,OAC7ByQ,EAAOpQ,SAASL,cAAc,QACzBh6B,EAAM63F,eAAe19D,WAAW+wD,aACnCrpD,EAAE,SAASi2D,YAAY93F,EAAM63F,eAAe19D,YAE9C32B,EAAQxD,EAAMq3F,aAAal9D,WAAW+wD,YACtC0M,EAAU53F,EAAM+3F,kBAChBttD,EAAKzI,YAAY41D,GACjBJ,EAAIx1D,YAAYyI,GAChBjnC,EAAM22B,WAAWC,aAAao9D,EAAKh0F,GAC5ByzF,EAAkB5yE,IAE3B4yE,EAAoB,SAASM,GAC3B,GAAI9vF,GAAGuhC,EAAGl/B,EAAK4uC,EAAMs/C,EAAct8C,EAAG87C,EAAKS,EAAS3/F,CAEpD,KADAA,EAAMi/F,EAAet4C,SAAS,GAAGvmB,SAC5BjxB,EAAI,EAAGqC,EAAMxR,EAAI4J,OAAQuF,EAAIqC,EAAKrC,IACrCuwF,EAAe1/F,EAAImP,GACfuwF,GAAuD,MAAvCA,EAAa3G,QAAQ9nF,gBAA0ByuF,EAAaE,UAAU7wF,OAAOnF,QAC/F81F,EAAa79D,WAAWg+D,YAAYH,EAIxC,KADAC,EAAUV,EAAet4C,SAAS,GAAGm5C,iBAAiB,OACjDpvD,EAAI,EAAG0P,EAAOu/C,EAAQ/1F,OAAQ8mC,EAAI0P,EAAM1P,IAC3CwuD,EAAMS,EAAQjvD,GACdwuD,EAAIa,aAAa,mBAAmB,GACpCb,EAAIa,aAAa,QAASvgG,EAAWuF,QAAQ,4BAC7Cm6F,EAAIxwE,iBAAiB,YAAa,SAAStkB,GACzC,MAAOA,GAAEa,mBAEPi0F,EAAIc,oBAAwE,MAAlDd,EAAIc,mBAAmBC,SAAShvF,gBAA0BiuF,EAAIc,mBAAmB5/D,SAASx2B,OACtHs1F,EAAIc,mBAAmBt2D,YAAY3H,SAASL,cAAc,OAChDw9D,EAAIc,oBAAwE,MAAlDd,EAAIc,mBAAmBC,SAAShvF,gBACpEmyC,EAAIrhB,SAASL,cAAc,KAC3B0hB,EAAE1Z,YAAY3H,SAASL,cAAc,OACrCw9D,EAAIr9D,WAAWC,aAAashB,EAAG87C,EAAItM,aAGvC,OAAOqM,GAAeI,oBAAoBJ,EAAet4C,SAAS,KAEpEw3C,EAAmB+B,aAAaC,WAAWC,OAAO/gG,QAChD0R,KAAM,MACN7U,KAAM,WACJ,GAAIm3E,EAQJ,OAPAA,GAASx2E,EAAEoc,KAAKzc,KAAKmU,KAAKsyC,QAAQo9C,QAAQC,QAAS,SAAStnF,GAC1D,MAAmB,QAAZA,EAAGjI,OAEZvU,KAAK4jG,OAAS5jG,KAAKulC,SAASL,cAAc,UAC1CllC,KAAK4jG,OAAO5wF,UAAUC,IAAI,wBAC1BjT,KAAK4jG,OAAOR,UAAYvsB,EAAOktB,gBAAkB,aACjD/jG,KAAK4jG,OAAOt/F,MAAQ,MACbtE,KAAKukB,GAAGvkB,KAAK4jG,OAAQ,QAAS5jG,KAAKgkG,YAAYj0F,KAAK/P,QAE7DikG,UAAW,WACT,MAAOjkG,MAAK4jG,QAEdI,YAAa,SAASz1F,GACpB,GAAIrD,EAEJ,OADAA,GAAQw4F,aAAaz3E,UAAUi4E,kBAAkB3+D,UACgB,UAA7Dr6B,EAAMi5F,wBAAwB9+D,WAAW6Z,MAAMklD,UAC1C7+D,SAAS8+D,YAAY,eAAe,GAEpC9+D,SAAS8+D,YAAY,gBAAgB,MAIlDtC,EAAU,SAASp1D,GACjB,MAAO,yBAA4BA,EAAO,wEAA8EA,EAAO,oBAEjIi1D,EAAa8B,aAAaC,WAAWC,OAAO/gG,QAC1C0R,KAAM,OACN7U,KAAM,WACJ,GAAIm3E,EAQJ,OAPAA,GAASx2E,EAAEoc,KAAKzc,KAAKmU,KAAKsyC,QAAQo9C,QAAQC,QAAS,SAAStnF,GAC1D,MAAmB,SAAZA,EAAGjI,OAEZvU,KAAK4jG,OAAS5jG,KAAKulC,SAASL,cAAc,UAC1CllC,KAAK4jG,OAAO5wF,UAAUC,IAAI,wBAC1BjT,KAAK4jG,OAAOR,UAAYvsB,EAAOktB,gBAAkB,cACjD/jG,KAAK4jG,OAAOt/F,MAAQ,OACbtE,KAAKukB,GAAGvkB,KAAK4jG,OAAQ,QAAS5jG,KAAKgkG,YAAYj0F,KAAK/P,QAE7DikG,UAAW,WACT,MAAOjkG,MAAK4jG,QAEdU,UAAW,QACXN,YAAa,SAASz1F,GACpB,GAAIrD,GAAO24F,CASX,IARA34F,EAAQw4F,aAAaz3E,UAAUi4E,kBAAkBvhB,KAAKp9C,UAClD08D,EAAoB/2F,EAAOlL,KAAKmU,MAClCiuF,EAA6Bl3F,EAAMq3F,aAAcviG,KAAKmU,OAEtD2tF,EAA0B52F,EAAOlL,KAAKmU,MACtCkuF,KAEFwB,EAAU7jG,KAAKmU,KAAKowF,mBAAmB,WAErC,MAAOV,GAAQW,iBAIrB3C,EAAqB6B,aAAaC,WAAWc,MAAM5hG,QACjD6hG,QAAS,SAASC,EAAYC,EAAap1D,GACzC,GAAI3Z,EAEJ,OADAA,GAAO6tE,aAAamB,KAAKC,aAAaF,GAC/BlB,aAAamB,KAAKE,kBAAkB/kG,KAAKulC,SAAU1P,MAG9DqsE,EAAsBwB,aAAamB,KAAKG,iBACxCtB,aAAamB,KAAKG,iBAAmB,SAAS/8F,GAC5C,GAAIs0F,EACJ,OAAKt0F,IAIHs0F,EADEt0F,EAAQs0F,QACAt0F,EAAQs0F,QAERt0F,EAAQo9B,WAAWk3D,QAED,SAA1BA,EAAQ9nF,eAGLytF,EAAoBj6F,IAVlBi6F,EAAoBj6F,IAY/Bob,EAAO,SAASC,EAAQC,EAAKC,GAC3B,GAAIyhF,GAAwBC,EAAQC,EAAOC,EAAmB3wE,EAAQ4wE,EAAqBC,EAAgBC,EAAcC,EAAmBC,EAASC,EAAYC,EAAYC,EAAWnD,EAAgBoD,EAAY1F,EAAmB2F,EAASC,EAAaC,EAAeC,EAAgB15E,EAAS25E,EAA+BC,CA2VpU,OA1VA1D,GAAiB,KACjB8C,EAAehiF,EAAI9G,KAAK,WACxB6oF,EAAiB/hF,EAAI9G,KAAK,aAC1B2oF,EAAoB,KACpBM,IAAeliF,EAAO2yB,MAAMiwD,SAC5BP,IAAeriF,EAAO2yB,MAAM0vD,WAC5BviF,EAAOxY,WAAa0Y,EAAO2yB,MAAMrrC,SACjCwY,EAAO6qE,SAAWuX,IAAc,EAChCpiF,EAAO6uC,KAAOpjB,EAASjpC,IAAI,cAAe,QAC1Cwd,EAAOqsB,SAAW,GAClBrsB,EAAO+iF,mBAAoB,EAC3B/iF,EAAOgjF,YACPvU,EAAewU,aACfvU,EAA+B2N,eAAex8F,KAAK,SAASmjG,GAC1D,MAAOhjF,GAAOgjF,SAAWA,IAE3BP,EAAc,SAAS5X,GACrB,MAAO7qE,GAAO6qE,SAAWA,GAE3B6X,EAAgB,SAASr2D,GACvB,GAAI9Z,EAIJ,OAHAA,GAAOk8D,EAAez9C,QAAQ3E,GAC9B41D,EAAa1vE,KAAKA,GAClBm8D,EAA+BU,gBAAgB+P,EAAet4C,SAAS,IAChEg4C,EAAkBM,IAE3Bn/E,EAAOkjF,YAAc,SAASxG,EAAKrqD,GACjC,GAAI8wD,EAuBJ,OAtBAnjF,GAAO+iF,mBAAoB,EAC3BjB,EAAkBzC,UAAYhtD,EAC9B8wD,EAAUrB,EAAkB//D,WAChB,qBAAR26D,GACFoF,EAAkBryF,UAAY,GAC9B0zF,EAAQ1zF,UAAY,GACpBqvF,EAA6BgD,EAAmB3C,IACvCpiG,EAAEkS,KAAKojC,GAAMvoC,QAClB4yF,GACFoF,EAAkBryF,UAAY,YAAcitF,EAC5CyG,EAAQ1zF,UAAY,YAAcitF,IAElCoF,EAAkBryF,UAAY,GAC9B0zF,EAAQ1zF,UAAY,IAEtBi/E,EAA+BqO,eAAe+E,GAC9C3C,EAAeI,oBAAoBJ,EAAet4C,SAAS,MAE3Di7C,EAAkB//D,WAAWA,WAAWg+D,YAAY+B,EAAkB//D,YACtEo9D,EAAeI,oBAAoBJ,EAAet4C,SAAS,KAE7D87C,IACO,MAET3iF,EAAO2rE,QAAU,SAAS98B,GAQxB,MAPApjB,GAAShzB,IAAI,cAAeo2C,GACf,aAATA,EACF+zC,IAEAF,EAAc1iF,EAAOqsB,UAEvBrsB,EAAO6uC,KAAOA,EACPswC,EAAevsD,QAAQ,kBAAoBqvD,EAAa,KAEjEjiF,EAAOsL,KAAO,SAAShhB,GACjBA,GACFA,EAAEa,iBAEgB,SAAhB6U,EAAO6uC,MACT+zC,IAEE5iF,EAAOxY,WAAawY,EAAOqsB,SAASviC,SAGxCkW,EAAOojF,QAAS,EAChBpjF,EAAOqjF,UAAW,EAClBrjF,EAAOs9E,QACL/rF,KAAMyO,EAAOqsB,SACb1hC,GAAI63F,MAGRxiF,EAAO41C,OAAS,SAAStrD,GACnBA,GACFA,EAAEa,iBAECi3F,GACHK,GAAY,GAEVF,EACFV,IACyB,SAAhB7hF,EAAO6uC,MAChB6zC,EAAc1iF,EAAOtE,SAAW,MAElCsE,EAAOqsB,SAAWrsB,EAAOtE,QACzBqmF,IACA5C,EAAevsD,QAAQ,UAAYqvD,EAAa,IAChDjiF,EAAOqjF,UAAW,EAClBrjF,EAAOsjF,YAETzB,EAAQ,WAEN,MADA7hF,GAAOqsB,SAAW,GACX41D,EAAa1vE,KAAK,KAE3BiwE,EAAU,WAUR,MATAxiF,GAAOojF,QAAS,EACXhB,GACHK,GAAY,GAEVF,GACFV,IAEFE,IACA5C,EAAevsD,QAAQ,UAAYqvD,EAAa,IACzChkD,EAAU18B,WAAW,UAAW,eAAgBvB,EAAO6uC,KAAM,IAEtEg0C,EAAY,SAAS5xF,EAAMzN,GACzB,MAAI/G,GAAM2R,QAAQ6C,GACTkuF,EAAeoE,UAAU,aAAe//F,EAAM,cAErDyN,EAAOw4B,EAAE,UAAUl4B,KAAKN,GAAMshB,OACvB4sE,EAAeoE,UAAU,4BAA8B//F,EAAM,KAAOyN,EAAO,eAGtFoxF,EAAa,WACX,GAAImB,EAEJ,OADAA,GAAQ/3D,EAASjpC,IAAIwd,EAAOuoD,eACxBi7B,IAASA,EAAM9+F,SAAW8+F,EAAM9+F,UAAYsb,EAAOtb,UAKzDy9F,EAAU,WACR,GAAIqB,EAEJ,OADAA,GAAQ/3D,EAASjpC,IAAIwd,EAAOuoD,cACxBi7B,GAKNtB,EAAoB,WAClB,GAAIsB,EAEJ,OADAA,GAAQ/3D,EAASjpC,IAAIwd,EAAOuoD,YACxBi7B,EACKA,EAAMjyF,KAERyO,EAAOtE,SAEhBqmF,EAAsB,WACpB,MAAOt2D,GAASntB,OAAO0B,EAAOuoD,aAEhCo5B,EAAyB,WACvB,GAAIjgF,GAAS1gB,CACb,OAAIgf,GAAOtE,UAAYsE,EAAOqsB,UAC5BrsB,EAAO41C,SACP3zB,SAASkQ,cAAcC,OACvBnQ,SAAS+H,KAAKtC,QACP,OAET1mC,EAAQtB,EAAWuF,QAAQ,wCAC3Byc,EAAUhiB,EAAWuF,QAAQ,0CACtBF,EAASqiC,IAAIpmC,EAAO,KAAM0gB,GAAS7hB,KAAK,SAASkzB,GAEtD,MADA/S,GAAO41C,SACA7iC,EAAY1B,aAGvBwrE,EAAoB,WAClB,GAAItqE,EAGJ,OAFAA,GAAOkX,EAAE,eAAelX,KAAK0vE,EAAa1vE,QAC1CA,EAAKpZ,KAAK,WAAW2jF,YAAY,MAC1BvqE,EAAKA,QAEdqwE,EAAgC,WAC9B,GAAIrwE,EAEJ,OADAA,GAAOsqE,IACA78E,EAAOqsB,SAAWoiD,EAAegV,YAAYlxE,IAEtD+vE,EAAY,SAASj2D,GACnB,GAAIm3D,EACJ,IAAIxjF,EAAOuoD,WAIT,MAHAi7B,MACAA,EAAM9+F,QAAUsb,EAAOtb,SAAW,EAClC8+F,EAAMjyF,KAAO86B,EACNZ,EAAShzB,IAAIuH,EAAOuoD,WAAYi7B,IAG3C5B,EAAS,WAKP,MAJoB,SAAhB5hF,EAAO6uC,MACT+zC,IAEFN,EAAUtiF,EAAOqsB,UACVrsB,EAAOi8E,UACZ5vD,SAAUrsB,EAAOqsB,YAGrBs2D,EAAiB5lG,EAAE2mG,SAAS9B,EAAQ,KACpCzwE,EAAS,SAAS5f,EAAMs5E,GACtB,GAAIt4D,EAiHJ,OAhHgB,OAAZs4D,IACFA,GAAW,GAETt5E,EAAKzH,SACPyoB,EAAOk8D,EAAez9C,QAAQz/B,GAC9B0wF,EAAa1vE,KAAKA,IAEpB4sE,EAAiB,GAAIiB,cAAa6B,EAAa,IAC7C0B,aAAa,EACbC,eAAe,EACfC,aACEtyF,KAAMyO,EAAO6jF,aAEftD,SACEC,UAEIvvF,KAAM,OACNwvF,eAAgBhC,EAAQ,iBAExBxtF,KAAM,SACNwvF,eAAgBhC,EAAQ,mBAExBxtF,KAAM,gBACNwvF,eAAgBhC,EAAQ,sBAExBxtF,KAAM,SACNwvF,eAAgBhC,EAAQ,iBAExBxtF,KAAM,QACNwvF,eAAgBhC,EAAQ,kBAExBxtF,KAAM,cACNwvF,eAAgBhC,EAAQ,mBAExBxtF,KAAM,gBACNwvF,eAAgBhC,EAAQ,mBAExBxtF,KAAM,KACNwvF,eAAgBhC,EAAQ,eAExBxtF,KAAM,KACNwvF,eAAgBhC,EAAQ,eAExBxtF,KAAM,KACNwvF,eAAgBhC,EAAQ,eAExBxtF,KAAM,QACNwvF,eAAgBhC,EAAQ,kBAExBxtF,KAAM,eACNwvF,eAAgBhC,EAAQ,sBAExBxtF,KAAM,MACNwvF,eAAgBhC,EAAQ,gBAExBxtF,KAAM,OACNwvF,eAAgBhC,EAAQ,kBAI9B4B,YACEc,MAAO,GAAI5C,GACXlsD,KAAM,GAAIisD,GACVwF,SAAU,GAAIC,UACdC,WAAY,GAAI3F,GAChB4F,cAAe,GAAIC,mBACjBC,SAAU,SAASjG,EAASkG,GAC1B,MAAOhG,GAAsBl7F,OAAOg7F,GAASr+F,KAAKukG,SAK1DpkF,EAAOqkF,eAAiB1B,EACxBxD,EAAehwE,UAAU,gBAAiB,SAAS7kB,GACjD,MAAO0V,GAAOuyB,YAAYowD,KAE5BxD,EAAehwE,UAAU,gBAAiB,SAAS7kB,GAEjD,GADAA,EAAEmiC,kBACEniC,EAAEoW,OAAOF,KACX,MAAO5jB,QAAO00B,KAAKhnB,EAAEoW,OAAOF,QAGhC2+E,EAAehwE,UAAU,QAAS,SAASlkB,GACzC,MAAO+U,GAAOuyB,YAAY,WACxB,IAAKvyB,EAAO6qE,SACV,MAAO4X,IAAY,OAIzBtD,EAAehwE,UAAU,eAAgB,SAASlkB,GAChD,MAAO+U,GAAOskF,cACZh8B,MAAOr9D,EAAMkgF,aAAa7iB,MAC1B39D,GAAIk4F,MAGR1D,EAAehwE,UAAU,kBAAmB,SAAS7kB,GACnD,GAAI+nC,GAAM6rD,CAGV,OAFA7rD,GAAO/nC,EAAEkoB,QAAUloB,EAAEkoB,QAAUloB,EAAEgoC,MACjC4rD,EAAUz0D,EAAE,mBACE,KAAT4I,GAAwB,KAATA,IAAgB6rD,EAAQp0F,OAKxCkW,EAAO6qE,UAAqB,KAATx4C,GACrB/nC,EAAEmiC,kBACKzsB,EAAOuyB,YAAYovD,IACR,KAATtvD,EACF4vD,EAAa7vD,OADf,QAPL9nC,EAAEmiC,sBACFniC,GAAEa,oBAUNs3F,EAAY5X,GACL7qE,EAAOuyB,YAAY,WAExB,MADAm8C,GAA+BU,gBAAgB+P,EAAet4C,SAAS,IAChEg4C,EAAkBM,MAG7B11D,EAAEw4D,EAAa,IAAIhhF,GAAG,WAAY,MAAO,SAAS3W,GAChD,MAAO0V,GAAOuyB,YAAY,WAIxB,MAHAvyB,GAAO+iF,mBAAoB,EAC3BjB,EAAoBx3F,EAAEqW,cAAcy8E,cAAc,QAClDp9E,EAAOukF,oBAAsB7V,EAA+B+N,uBAAuBqF,EAAkBpyF,WAC9FsQ,EAAOqyB,KAAOyvD,EAAkBzC,cAG3Cp2E,EAAUjJ,EAAOrP,OAAO,UAAW,SAAS+K,GAC1C,GAAI8oF,EACJ,KAAKznG,EAAEsV,YAAYqJ,GAAU,CAK3B,GAJAsE,EAAOqjF,SAAWhB,KACblD,GAAkBgD,KACrBM,GAAY,IAETziF,EAAOqsB,SAASviC,QAAU4R,EAAQ5R,SAAWkW,EAAOqsB,WAAa3wB,EACpE,MAeF,OAbAA,GAAUwmF,IACVliF,EAAOqsB,SAAW3wB,EACdyjF,GACFA,EAAer6D,UAEb6R,EAASrlB,OACXkzE,EAAgB7tD,EAASE,MAAM,WAE7B,MADA1lB,GAAOzV,EAASsE,EAAO6qE,UAChB2Z,MAGTrzE,EAAOzV,EAASsE,EAAO6qE,UAElB5hE,OAGJjJ,EAAO5W,IAAI,WAAY,WAC5B,GAAI+1F,EACF,MAAOA,GAAer6D,cAK1BlkC,YAAa,yCACb0P,OACEuzF,YAAa,IACbn/F,QAAS,IACT6jE,WAAY,IACZ7sD,QAAS,IACT4nF,SAAU,IACVhG,OAAQ,IACRgH,aAAc,IACdrI,SAAU,KAEZl8E,KAAMA,IAIVzgB,QAAQjD,OAAO,mBAAmBwjB,UAAU,aAAc,aAAc,aAAc,aAAc,mBAAoB,iBAAkB,WAAY,mCAAoC,0BAA2B,eAAgBs+E,KAEpOx9F,KAAKjE,MA2BR,WACE,GAAI+nG,EAEJA,GAAiB,WACf,QAASA,GAAe/V,GACtBhyF,KAAKgyF,+BAAiCA,EAiHxC,MA9GA+V,GAAen4F,UAAUsxF,kBAAoB,SAAS3sF,GACpD,MAAOlU,GAAEqN,OAAO1N,KAAKgoG,OAAQ,SAASxrF,GACpC,MAAOA,GAAGjI,KAAKxN,QAAQwN,WAI3BwzF,EAAen4F,UAAUq4F,kBAAoB,SAASD,GACpD,MAAOhoG,MAAKgoG,OAAS3nG,EAAEC,IAAI0nG,EAAQ,SAASxrF,GAE1C,MADAA,GAAG8T,MAAS,IAAMpwB,OAAOmJ,SAAW,WAAcmT,EAAG8T,MAC9C9T,KAIXurF,EAAen4F,UAAU22F,WAAa,WACpC,MAAOx5D,GAAE8yD,QAAQ,IAAM3/F,OAAOmJ,SAAW,4BAA4BlG,KAAKnD,KAAKioG,kBAAkBl4F,KAAK/P,QAGxG+nG,EAAen4F,UAAUs4F,aAAe,SAAStuF,GAC/C,MAAOvZ,GAAEoc,KAAKzc,KAAKgoG,OAAQ,SAASxrF,GAClC,MAAOA,GAAG5C,KAAOA,KAIrBmuF,EAAen4F,UAAUu4F,eAAiB,SAAS5zF,GACjD,MAAOlU,GAAEoc,KAAKzc,KAAKgoG,OAAQ,SAASxrF,GAClC,MAAOA,GAAGjI,OAASA,KAIvBwzF,EAAen4F,UAAUw4F,uBAAyB,SAASvyE,GACzD,GAAIwyE,GAAOC,EAASC,EAAU51F,EAAGqC,EAAKwzF,CAEtC,KADAD,EAAWxoG,MAAMuR,WAAWukB,EAAM,0BAC7BljB,EAAI,EAAGqC,EAAMuzF,EAASn7F,OAAQuF,EAAIqC,EAAKrC,IAC1C21F,EAAUC,EAAS51F,GACnB61F,EAAY,GAAIrxF,QAAO,WAAamxF,EAAU,SAAW,KACzDD,EAAQroG,KAAKkoG,aAAaI,GAC1BzyE,EAAOA,EAAKziB,QAAQo1F,EAAW,IAAMH,EAAM9zF,KAAO,IAEpD,OAAOshB,IAGTkyE,EAAen4F,UAAU64F,uBAAyB,SAAS5zF,GACzD,GAAIwzF,GAAOC,EAASC,EAAU51F,EAAGqC,EAAKwzF,CAEtC,KADAD,EAAWxoG,MAAMuR,WAAWuD,EAAM,eAC7BlC,EAAI,EAAGqC,EAAMuzF,EAASn7F,OAAQuF,EAAIqC,EAAKrC,IAC1C21F,EAAUC,EAAS51F,GACnB61F,EAAY,GAAIrxF,QAAO,IAAMmxF,EAAU,IAAK,KAC5CD,EAAQroG,KAAKmoG,eAAeG,GACxBD,IACFxzF,EAAOA,EAAKzB,QAAQo1F,EAAW,UAAYH,EAAM/3E,MAAQ,KAG7D,OAAOzb,IAGTkzF,EAAen4F,UAAU84F,qBAAuB,SAAS7zF,GACvD,MAAOA,GAAKzB,QAAQ,uBAAwB,gBAG9C20F,EAAen4F,UAAUm3F,YAAc,SAASlxE,GAC9C,GAAI8yE,GAAqBC,EAAuBj5D,CA+BhD,OA9BAg5D,IACEj7F,QAAS,OAAQ,OAAQ,OAAQ,OACjC6+B,YAAa,SAAS62D,GACpB,MAAOA,KAGXwF,GACEl7F,OAAQ,SAAUtF,GAChB,MAAO,UAASygG,GACd,MAAyB,QAAlBA,EAAKpF,UAAsBoF,EAAKC,YAA2C,SAA7BD,EAAKC,WAAWrF,WAEtEzjG,MACHusC,YAAa,SAAUnkC,GACrB,MAAO,UAAS4W,EAAS6pF,GACvB,GAAI7I,EAKJ,OAJAA,GAAM53F,EAAM4pF,+BAA+B+N,uBAAuB8I,EAAKC,WAAW91F,WAC7EgtF,IACHA,EAAM,IAED,UAAYA,EAAM,KAAO3/F,EAAEkS,KAAKs2F,EAAKC,WAAWC,aAAe,cAEvE/oG,OAEL61B,EAAOA,EAAKziB,QAAQ,kBAAmB,MACvCyiB,EAAO71B,KAAKooG,uBAAuBvyE,GACnCA,EAAO71B,KAAK0oG,qBAAqB7yE,GACjC8Z,EAAWq5D,WAAWnzE,GACpBozE,KAAK,EACLC,YAAaP,EAAqBC,MAKtCb,EAAen4F,UAAU0kC,QAAU,SAASz/B,GAC1C,GAAIs0F,GAAI1iD,EAASxxC,CACjB,OAAKJ,IAASA,EAAKzH,QAGnBq5C,GACE2iD,QAAQ,GAEVv0F,EAAO7U,KAAKyoG,uBAAuB5zF,GACnCs0F,EAAKjpG,OAAOmpG,YACVD,QAAQ,IAEVn0F,EAASk0F,EAAGh9E,OAAOtX,IATV,IAaJkzF,KAITnlG,QAAQjD,OAAO,mBAAmBijB,QAAQ,oBAAqB,mCAAoCmlF,KAElG9jG,KAAKjE,MAsBR,WACE,GAAIspG,EAEJA,GAAgC,WAG9B,QAASA,GAA8BvqF,GACrC/e,KAAK+e,UAAYA,EACjB/e,KAAKupG,SAAU,EACfvpG,KAAK2U,OACH60F,KAAMxpG,KAAK+e,UAAUxW,QAAQ,yBAC7BkhG,MAAOzpG,KAAK+e,UAAUxW,QAAQ,0BAC9BmhG,KAAM1pG,KAAK+e,UAAUxW,QAAQ,yBAC7B4R,IAAKna,KAAK+e,UAAUxW,QAAQ,8BAwBhC,MAjCA+gG,GAA8BlpF,SAAW,cAazCkpF,EAA8B15F,UAAU+5F,YAAc,WACpD,MAAO3pG,MAAK2U,MAAM3U,KAAK4pG,iBAGzBN,EAA8B15F,UAAUglB,KAAO,WAC7C,MAAO50B,MAAKupG,SAAU,GAGxBD,EAA8B15F,UAAU2iB,MAAQ,WAC9C,MAAOvyB,MAAKupG,SAAU,GAGxBD,EAA8B15F,UAAU2yD,QAAU,SAASn4D,GAGzD,MAFApK,MAAK4pG,eAAiBx/F,EACtBpK,KAAKupG,SAAU,EACRvpG,KAAKu/F,UACVh9B,QAASviE,KAAK4pG,kBAIXN,KAIT1mG,QAAQjD,OAAO,iBAAiBwE,WAAW,sBAAuBmlG,IAEjErlG,KAAKjE,MAsBR,WACE,GAAI6pG,EAEJA,GAA+B,WAC7B,GAAIxmF,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,MAEzBpqB,WAAY,sBACZC,aAAc,KACdqpE,kBAAkB,EAClBvpE,YAAa,yEACb0P,OACEg2F,eAAgB,WAChBrK,SAAU,KAEZl8E,KAAMA,IAIVwmF,EAA6BzpF,WAE7Bxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,wBAAyB0mF,IAElE5lG,KAAKjE,MAsBR,WACE,GAAI8pG,EAEJA,GAA8B,WAG5B,QAASA,GAA4BC,GACnC/pG,KAAK+pG,wBAA0BA,EAC/BhqG,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM2hG,wBAAwBC,gBAEtChqG,OACHA,KAAK+pG,wBAAwBE,aAiB/B,MA1BAH,GAA4B1pF,SAAW,6BAYvC0pF,EAA4Bl6F,UAAU8K,aAAe,SAAShN,GAC5D,MAAO1N,MAAKu/F,UACV7xF,OAAQA,EACR+C,EAAGzQ,KAAKyQ,KAIZq5F,EAA4Bl6F,UAAUs6F,aAAe,WACnD,MAAOlqG,MAAKu/F,UACV7xF,OAAQ1N,KAAK0N,OACb+C,EAAGzQ,KAAKyQ,KAILq5F,KAITlnG,QAAQjD,OAAO,iBAAiBwE,WAAW,oBAAqB2lG,IAE/D7lG,KAAKjE,MAsBR,WACE,GAAImqG,EAEJA,GAA6B,WAC3B,GAAI9mF,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,MAEhC/zD,WAAY,oBACZC,aAAc,KACdF,YAAa,mEACbupE,kBAAkB,EAClB75D,OACEnD,EAAG,IACH/C,OAAQ,IACR6xF,SAAU,KAEZtN,QAAS,SAAShqF,EAASsmB,GACzB,IAAKA,EAAM9d,EACT,MAAO8d,GAAM9d,EAAI,IAGrB4S,KAAMA,IAIV8mF,EAA2B/pF,WAE3Bxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,sBAAuBgnF,IAEhElmG,KAAKjE,MAsBR,WACE,GAAIoqG,EAEJA,GAAqC,WAGnC,QAASA,KACPpqG,KAAKqqG,aAAuD,IAAxCrqG,KAAKuiE,QAAQx7D,QAAQ,eACzC/G,KAAKsqG,iBAA+D,IAA5CtqG,KAAKuiE,QAAQx7D,QAAQ,mBA4B/C,MAhCAqjG,GAAmChqF,WAOnCgqF,EAAmCx6F,UAAU26F,SAAW,WAGtD,MAFAvqG,MAAKqqG,cAAe,EACpBrqG,KAAKsqG,kBAAmB,EACjBtqG,KAAKwqG,WAAW,0BAGzBJ,EAAmCx6F,UAAU66F,aAAe,WAG1D,MAFAzqG,MAAKsqG,kBAAmB,EACxBtqG,KAAKqqG,cAAe,EACbrqG,KAAKwqG,WAAW,8BAGzBJ,EAAmCx6F,UAAU46F,WAAa,SAASpgG,GAQjE,MAPY,OAARA,IACFA,EAAO,IAEJA,IACHpK,KAAKqqG,cAAe,EACpBrqG,KAAKsqG,kBAAmB,GAEnBtqG,KAAKu/F,UACVh9B,QAASn4D,KAINggG,KAITxnG,QAAQjD,OAAO,iBAAiBwE,WAAW,2BAA4BimG,IAEtEnmG,KAAKjE,MAsBR,WACE,GAAI0qG,EAEJA,GAAoC,WAClC,GAAIrnF,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,MAEzBpqB,WAAY,2BACZC,aAAc,KACdqpE,kBAAkB,EAClBvpE,YAAa,mFACb0P,OACE2rF,SAAU,IACVh9B,QAAS,KAEXl/C,KAAMA,IAIVqnF,EAAkCtqF,WAElCxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,6BAA8BunF,IAEvEzmG,KAAKjE,MAsBR,WACE,GAAI2qG,EAEJA,GAA6B,WAG3B,QAASA,GAA2BZ,GAClC/pG,KAAK+pG,wBAA0BA,EAC/BhqG,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM2hG,wBAAwBa,WAEtC5qG,OACHA,KAAK+pG,wBAAwBc,gBAG/B,MAZAF,GAA2BvqF,SAAW,6BAY/BuqF,KAIT/nG,QAAQjD,OAAO,iBAAiBwE,WAAW,mBAAoBwmG,IAE9D1mG,KAAKjE,MAsBR,WACE,GAAI8qG,EAEJA,GAA4B,WAC1B,GAAIznF,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,MAEzBpqB,WAAY,mBACZC,aAAc,KACdF,YAAa,+DACb0P,SACAyP,KAAMA,IAIVynF,EAA0B1qF,WAE1Bxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,qBAAsB2nF,IAE/D7mG,KAAKjE,MAsBR,WACE,GAAI+qG,EAEJA,GAAuB,WACrB,OACE7mG,YAAa,mDACb0P,OACE2uB,QAAS,IACTyoE,YAAa,IACbzoC,QAAS,OAKfwoC,EAAqB3qF,WAErBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,gBAAiB4nF,IAE1D9mG,KAAKjE,MAsBR,WACE,GAAIirG,EAEJA,GAAuB,WAGrB,QAASA,GAAqBlB,GAC5B/pG,KAAK+pG,wBAA0BA,EAC/BhqG,MAAMqR,wBAAwBpR,KAAM,cAAe,SAAUoI,GAC3D,MAAO,YACL,MAAOA,GAAM2hG,wBAAwBmB,aAEtClrG,OACHA,KAAK4pG,eAAiB,OACtB5pG,KAAKwiE,SAAWxiE,KAAKmjE,aA4BvB,MAtCA8nC,GAAqB7qF,SAAW,6BAahC6qF,EAAqBr7F,UAAUu7F,MAAQ,WAGrC,MAFAnrG,MAAKuiC,SAAU,EACfviC,KAAKwiE,SAAWxiE,KAAKmjE,aACdnjE,KAAK+pG,wBAAwBqB,iBAClC5oC,SAAUxiE,KAAKwiE,WACdr/D,KAAK,SAAUiF,GAChB,MAAO,YACL,MAAOA,GAAMm6B,SAAU,IAExBviC,QAGLirG,EAAqBr7F,UAAU2yD,QAAU,SAASn4D,GAEhD,MADApK,MAAK4pG,eAAiBx/F,EACfpK,KAAKmrG,SAGdF,EAAqBr7F,UAAUuzD,WAAa,SAAS/4D,GACnD,MAA4B,QAAxBpK,KAAK4pG,eACA,kBAEA,wBAA0B5pG,KAAK4pG,gBAInCqB,KAITroG,QAAQjD,OAAO,iBAAiBwE,WAAW,aAAc8mG,IAExDhnG,KAAKjE,MAsBR,WACE,GAAIqrG,EAEJA,GAAsB,WACpB,GAAIhoF,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOA,GAAKizC,UAGZhnG,WAAY,aACZC,aAAc,KACdF,YAAa,mDACb0P,SACAyP,KAAMA,IAIVgoF,EAAoBjrF;AAEpBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,eAAgBkoF,IAEzDpnG,KAAKjE,MAsBR,WACE,GAAIsrG,EAEJA,GAAsB,WAGpB,QAASA,GAAoBvB,GAC3B/pG,KAAK+pG,wBAA0BA,EAC/BhqG,MAAMqR,wBAAwBpR,KAAM,cAAe,SAAUoI,GAC3D,MAAO,YACL,MAAOA,GAAM2hG,wBAAwBwB,YAEtCvrG,OACHA,KAAK4pG,eAAiB,OACtB5pG,KAAKwiE,SAAWxiE,KAAKmjE,aA4BvB,MAtCAmoC,GAAoBlrF,SAAW,6BAa/BkrF,EAAoB17F,UAAUu7F,MAAQ,WAGpC,MAFAnrG,MAAKuiC,SAAU,EACfviC,KAAKwiE,SAAWxiE,KAAKmjE,aACdnjE,KAAK+pG,wBAAwByB,gBAClChpC,SAAUxiE,KAAKwiE,WACdr/D,KAAK,SAAUiF,GAChB,MAAO,YACL,MAAOA,GAAMm6B,SAAU,IAExBviC,QAGLsrG,EAAoB17F,UAAU2yD,QAAU,SAASn4D,GAE/C,MADApK,MAAK4pG,eAAiBx/F,EACfpK,KAAKmrG,SAGdG,EAAoB17F,UAAUuzD,WAAa,WACzC,MAA4B,QAAxBnjE,KAAK4pG,eACA,cAEA,oBAAsB5pG,KAAK4pG,gBAI/B0B,KAIT1oG,QAAQjD,OAAO,iBAAiBwE,WAAW,YAAamnG,IAEvDrnG,KAAKjE,MAsBR,WACE,GAAIyrG,EAEJA,GAAqB,WACnB,GAAIpoF,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOA,GAAKizC,UAGZhnG,WAAY,YACZC,aAAc,KACdF,YAAa,iDACb0P,SACAyP,KAAMA,IAIVooF,EAAmBrrF,WAEnBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,cAAesoF,IAExDxnG,KAAKjE,MAsBR,WACE,GAAI0rG,EAEJA,GAAyB,WAGvB,QAASA,GAAuB9wF,EAAUqmB,EAAS90B,EAAgB4S,GACjE,GAAIxa,GAAaD,CACjBtE,MAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjBza,EAAQtE,KAAK+e,UAAUxW,QAAQ,uBAC/BhE,EAAcvE,KAAK+e,UAAUxW,QAAQ,6BACrCvI,KAAKmM,eAAewC,OAAOrK,EAAOC,GASpC,MAnBAmnG,GAAuBtrF,SAAW,cAAe,aAAc,mBAAoB,cAanFsrF,EAAuB97F,UAAU+7F,SAAW,SAASl7F,GACnD,GAAI3J,EAEJ,OADAA,GAAM9G,KAAKihC,QAAQt+B,QAAQ,mBACpB3C,KAAK4a,SAASpU,OAAO,OAAQiK,GAAGhO,KAAKqE,IAGvC4kG,KAIT9oG,QAAQjD,OAAO,iBAAiBwE,WAAW,eAAgBunG,IAE1DznG,KAAKjE,MAsBR,WACE,GAAI4rG,EAEJA,GAA2B,WAGzB,QAASA,GAAyBC,EAAa9B,EAAyBrnG,EAAOyJ,EAAgB4S,GAC7F,GAAIxa,GAAaD,CACjBtE,MAAK6rG,YAAcA,EACnB7rG,KAAK+pG,wBAA0BA,EAC/B/pG,KAAK0C,MAAQA,EACb1C,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKwlC,KAAO,EACZzlC,MAAMqR,wBAAwBpR,KAAM,eAAgB,SAAUoI,GAC5D,MAAO,YACL,MAAOA,GAAM2hG,wBAAwB+B,eAEtC9rG,OACHD,MAAMqR,wBAAwBpR,KAAM,iBAAkB,SAAUoI,GAC9D,MAAO,YACL,MAAOA,GAAM2hG,wBAAwBgC,iBAEtC/rG,OACHA,KAAKyQ,EAAIzQ,KAAK6rG,YAAYh3F,KAC1B7U,KAAK0N,OAAS1N,KAAK6rG,YAAYn+F,QAAU,MACzC1N,KAAKuiE,QAAUviE,KAAK6rG,YAAsB,UAAK,GAC/C7rG,KAAKgsG,eAAgB,EACrBhsG,KAAKisG,aAAc,EACnBjsG,KAAKksG,mBAAoB,EACzB5nG,EAAQtE,KAAK+e,UAAUxW,QAAQ,8BAC/BhE,EAAcvE,KAAK+e,UAAUxW,QAAQ,oCACrCvI,KAAKmM,eAAewC,OAAOrK,EAAOC,GA6FpC,MAzHAqnG,GAAyBxrF,SAAW,eAAgB,4BAA6B,SAAU,mBAAoB,cA+B/GwrF,EAAyBh8F,UAAUu7F,MAAQ,WAGzC,MAFAnrG,MAAKwlC,KAAO,EACZxlC,KAAK+pG,wBAAwBoC,kBACtBnsG,KAAKwG,UAGdolG,EAAyBh8F,UAAUw8F,oBAAsB,WACvD,IAAIpsG,KAAKgsG,cAIT,MADAhsG,MAAKgsG,eAAgB,EACdhsG,KAAKmrG,QAAQhoG,KAAK,SAAUiF,GACjC,MAAO,YACL,MAAOA,GAAM4jG,eAAgB,IAE9BhsG,QAGL4rG,EAAyBh8F,UAAUy8F,eAAiB,WAClD,IAAIrsG,KAAKisG,YAIT,MADAjsG,MAAKisG,aAAc,EACZjsG,KAAKmrG,QAAQhoG,KAAK,SAAUiF,GACjC,MAAO,YACL,MAAOA,GAAM6jG,aAAc,IAE5BjsG,QAGL4rG,EAAyBh8F,UAAU6pC,SAAW,WAC5C,IAAIz5C,KAAKksG,kBAKT,MAFAlsG,MAAKksG,mBAAoB,EACzBlsG,KAAKwlC,OACExlC,KAAKwG,SAASrD,KAAK,SAAUiF,GAClC,MAAO,YACL,MAAOA,GAAM8jG,mBAAoB,IAElClsG,QAGL4rG,EAAyBh8F,UAAUpJ,OAAS,WAC1C,GAAIkH,GAAQ7J,CAQZ,OAPA6J,GAAS1N,KAAKssG,YACdzoG,GACE2hC,KAAMxlC,KAAKwlC,KACX/0B,EAAGzQ,KAAKyQ,EACR+xD,SAAUxiE,KAAKuiE,SAEjBliE,EAAE8uB,OAAOtrB,EAAQ6J,GACV1N,KAAK+pG,wBAAwBwC,YAAY1oG,IAGlD+nG,EAAyBh8F,UAAU08F,UAAY,WAC7C,MAAoB,WAAhBtsG,KAAK0N,QAEL8+F,uBAAuB,GAEA,UAAhBxsG,KAAK0N,QAEZ+f,sBAAsB,GAEC,WAAhBztB,KAAK0N,QAEZggB,qBAAqB,OAM3Bk+E,EAAyBh8F,UAAU68F,eAAiB,SAAS/+F,EAAQ+C,GAOnE,MANAzQ,MAAK0N,OAASA,EACd1N,KAAKyQ,EAAIA,EACTzQ,KAAK0C,MAAMgqG,cACTh/F,OAAQ1N,KAAK0N,OACbmH,KAAM7U,KAAKyQ,IAENzQ,KAAKosG,uBAGdR,EAAyBh8F,UAAU+8F,cAAgB,SAASpqC,GAK1D,MAJAviE,MAAKuiE,QAAUA,EACfviE,KAAK0C,MAAMgqG,cACTlqC,SAAUD,IAELviE,KAAKqsG,kBAGPT,KAIThpG,QAAQjD,OAAO,iBAAiBwE,WAAW,iBAAkBynG,IAE5D3nG,KAAKjE,MAsBR,WACE,GAAI4sG,EAEJA,GAA0B,WACxB,GAAIvpF,EAIJ,OAHAA,GAAO,SAASzP,EAAO3L,EAASsmB,EAAO2pC,GACrC,MAAOA,GAAKizC,UAGZhnG,WAAY,iBACZC,aAAc,KACdif,KAAMA,IAIVupF,EAAwBxsF,WAExBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,mBAAoBypF,IAE7D3oG,KAAKjE,MAsBR,WACE,GAAI6sG,GAAyB9sG,EAC3B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8sG,EAA0B,SAAUz8F,GAWlC,QAASy8F,GAAwBzyF,EAAI0yF,GACnC9sG,KAAKoa,GAAKA,EACVpa,KAAK8sG,gBAAkBA,EACvB9sG,KAAK+sG,WAAa9rF,UAAU0yB,OAC5B3zC,KAAKgtG,YAAc/rF,UAAU0yB,OAC7B3zC,KAAKitG,UAAYhsF,UAAU0yB,OAC3B3zC,KAAKktG,cAAgBjsF,UAAU0yB,OAC/B3zC,KAAKmtG,eAAiB,EACtBntG,KAAKotG,SAAWptG,KAAK8sG,gBAAgBO,UAAUt9F,KAAK/P,KAAK8sG,iBACzD/sG,EAAMqR,wBAAwBpR,KAAM,YAAa,SAAUoI,GACzD,MAAO,YACL,MAAOA,GAAM2kG,aAEd/sG,OACHD,EAAMqR,wBAAwBpR,KAAM,aAAc,SAAUoI,GAC1D,MAAO,YACL,MAAOA,GAAM4kG,cAEdhtG,OACHD,EAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM6kG,YAEdjtG,OACHD,EAAMqR,wBAAwBpR,KAAM,eAAgB,SAAUoI,GAC5D,MAAO,YACL,MAAOA,GAAM8kG,gBAEdltG,OACHD,EAAMqR,wBAAwBpR,KAAM,iBAAkB,SAAUoI,GAC9D,MAAO,YACL,MAAOA,GAAMklG,kBAEdttG,OACHD,EAAMqR,wBAAwBpR,KAAM,gBAAiB,SAAUoI,GAC7D,MAAO,YACL,MAAOA,GAAM+kG,iBAEdntG,OAhDL,GAAIutG,EAwHJ,OAtHA1qG,GAAOgqG,EAAyBz8F,GAEhCy8F,EAAwBzsF,SAAW,cAAe,qBAElDmtF,GACEC,eAAe,GA4CjBX,EAAwBj9F,UAAU47F,eAAiB,SAAS3nG,GAC1D,GAAI4pG,EAEJ,OADAA,GAAUptG,EAAEwC,UAAW0qG,EAAiB1pG,GACjC7D,KAAKoa,GAAGC,SAASqzF,YAAYD,GAAS,GAAOtqG,KAAK,SAAUiF,GACjE,MAAO,UAAS6M,GACd,GAAIlN,GAAMsS,CAIV,OAHAtS,GAAOkN,EAAOlN,KAAK8K,MAAM,EAAG,GAC5BwH,EAAW4G,UAAUC,OAAOnZ,GAC5BsS,EAAWA,EAAS/Z,IAAI8H,EAAMglG,UACvBhlG,EAAM2kG,WAAa1yF,IAE3Bra,QAGL6sG,EAAwBj9F,UAAUw7F,gBAAkB,SAASvnG,GAC3D,GAAI4pG,EAEJ,OADAA,GAAUptG,EAAEwC,UAAW0qG,EAAiB1pG,GACjC7D,KAAKoa,GAAGC,SAASqzF,YAAYD,GAAS,GAAOtqG,KAAK,SAAUiF,GACjE,MAAO,UAAS6M,GACd,GAAIlN,GAAMsS,CAIV,OAHAtS,GAAOkN,EAAOlN,KAAK8K,MAAM,EAAG,GAC5BwH,EAAW4G,UAAUC,OAAOnZ,GAC5BsS,EAAWA,EAAS/Z,IAAI8H,EAAMglG,UACvBhlG,EAAM4kG,YAAc3yF,IAE5Bra,QAGL6sG,EAAwBj9F,UAAUi7F,cAAgB,WAChD,GAAI4C,EAGJ,OAFAA,GAAUptG,EAAEwC,UAAW0qG,GACvBE,EAAQE,aAAc,EACf3tG,KAAKoa,GAAGC,SAASqzF,YAAYD,GAAS,GAAOtqG,KAAK,SAAUiF,GACjE,MAAO,UAAS6M,GACd,GAAIlN,GAAMsS,CAIV,OAHAtS,GAAOkN,EAAOlN,KAAK8K,MAAM,EAAG,GAC5BwH,EAAW4G,UAAUC,OAAOnZ,GAC5BsS,EAAWA,EAAS/Z,IAAI8H,EAAMglG,UACvBhlG,EAAM6kG,UAAY5yF,IAE1Bra,QAGL6sG,EAAwBj9F,UAAUu8F,gBAAkB,WAClD,MAAOnsG,MAAKktG,cAAgBjsF,UAAU0yB,QAGxCk5D,EAAwBj9F,UAAUq6F,WAAa,WAC7C,MAAOjqG,MAAKoa,GAAGkpC,MAAMx8B,WAAW3jB,KAAK,SAAUiF,GAC7C,MAAO,UAAS0e,GACd,MAAO1e,GAAM+kG,eAAiBrmF,EAAS+uC,OAAO,WAAY,YAE3D71D,QAGL6sG,EAAwBj9F,UAAU28F,YAAc,SAAS1oG,GACvD,GAAI4pG,EAEJ,OADAA,GAAUptG,EAAEwC,UAAW0qG,EAAiB1pG,GACjC7D,KAAKoa,GAAGC,SAASqzF,YAAYD,GAAStqG,KAAK,SAAUiF,GAC1D,MAAO,UAAS6M,GACd,GAAIoF,EAIJ,OAHAjS,GAAMklG,kBAAoBr4F,EAAOvP,QAAQ,qBACzC2U,EAAW4G,UAAUC,OAAOjM,EAAOlN,MACnCsS,EAAWA,EAAS/Z,IAAI8H,EAAMglG,UACvBhlG,EAAM8kG,cAAgB9kG,EAAM8kG,cAAcj+F,OAAOoL,KAEzDra,QAGE6sG,GAEN9sG,EAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,4BAA6BiqF,IAEpE5oG,KAAKjE,MAsBR,WACE,GAAI4tG,GAAsBr8F,EAAuBxR,EAAOwS,CAExDxS,GAAQC,KAAKD,MAEbwS,EAAOxS,EAAMwS,KAEbhB,EAAwBxR,EAAMwR,sBAE9Bq8F,EAAuB,WAGrB,QAASA,GAAqBz/D,EAAS7qC,EAAgBuqG,GACrD7tG,KAAKmuC,QAAUA,EACfnuC,KAAKsD,eAAiBA,EACtBtD,KAAK6tG,aAAeA,EACpB7tG,KAAK8Z,QAAU9Z,KAAKsD,eAAewW,QAAQrB,OAC3CzY,KAAK8tG,SACHlxF,MAAOrL,IACP9K,OAAQzG,KAAK8Z,QAAQi0F,oBACrB32F,SAEFpX,KAAK83C,YAAc72B,UAAU0yB,OAC7B3zC,KAAKuiC,SAAU,EA+CjB,MA5DAqrE,GAAqBxtF,SAAW,aAAc,mBAAoB,kBAgBlEwtF,EAAqBh+F,UAAUo+F,WAAa,WAC1C,GAAKhuG,KAAKiuG,eAIV,MADAjuG,MAAKuiC,SAAU,EACRviC,KAAK6tG,aAAaG,WAAWhuG,KAAK8tG,QAAS9tG,KAAK83C,aAAa30C,KAAK,SAAUiF,GACjF,MAAO,UAAS9B,GAEd,MADA8B,GAAM8lG,eACC9lG,EAAMm6B,SAAU,IAExBviC,OAAO,SAAS,SAAUoI,GAC3B,MAAO,UAAS9B,GAGd,GAFA8B,EAAMm6B,SAAU,EAChBn6B,EAAM+lG,cAAc7nG,EAASyB,MACzBzB,EAASyB,KAAK+c,eAChB,MAAO1c,GAAM+lC,QAAQ3lC,OAAO,QAASlC,EAASyB,KAAK+c,kBAGtD9kB,QAGL4tG,EAAqBh+F,UAAUysF,YAAc,SAASz/E,GACpD,MAAO5c,MAAK8tG,QAAQlxF,MAAQA,GAG9BgxF,EAAqBh+F,UAAU0nC,OAAS,SAAS/iC,EAAMqI,GAErD,GADArI,EAAOhC,EAAKgC,EAAKE,gBACZpU,EAAEoc,KAAKzc,KAAK8tG,QAAQ12F,KAAM,SAASoF,GACtC,MAAOA,GAAG,KAAOjI,IAEjB,MAAOvU,MAAK8tG,QAAQ12F,KAAK7P,MAAMgN,EAAMqI,KAIzCgxF,EAAqBh+F,UAAU+nC,UAAY,SAASn5B,GAClD,MAAOne,GAAEuhB,OAAO5hB,KAAK8tG,QAAQ12F,KAAM,SAASoF,GAC1C,MAAOA,GAAG,KAAOgC,EAAI,MAIzBovF,EAAqBh+F,UAAUunC,cAAgB,SAASC,GACtD,MAAOp3C,MAAK83C,YAAYvwC,KAAK6vC,IAGxBw2D,KAIThrG,QAAQjD,OAAO,cAAcwE,WAAW,iBAAkBypG,IAEzD3pG,KAAKjE,MAsBR,WACE,GAAIouG,EAEJA,GAAsB,WACpB,GAAI/qF,EAeJ,OAdAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIz0C,EAOJ,OANAA,GAAO3Q,EAAG2J,KAAK,QAAQ7Q,YACvBssD,EAAK+1C,aAAe,SAAU7lG,GAC5B,MAAO,YACL,MAAOqb,GAAKW,aAEbpkB,MACIk4D,EAAKi2C,cAAgB,SAAU/lG,GACpC,MAAO,UAASimG,GACd,MAAO5qF,GAAKsB,UAAUspF,KAEvBruG,QAGHqjB,KAAMA,EACNnf,YAAa,qCACbC,WAAY,iBACZC,aAAc,KACdqpE,kBACEygC,aAAc,KAEhBt6F,WAIJhR,QAAQjD,OAAO,cAAcwjB,UAAU,eAAgBirF,IAEtDnqG,KAAKjE,MAsBR,WACE,GAAIsuG,EAEJA,GAAoB,WAGlB,QAASA,GAAkBngE,EAAS7qC,EAAgBuqG,GAClD7tG,KAAKmuC,QAAUA,EACfnuC,KAAKsD,eAAiBA,EACtBtD,KAAK6tG,aAAeA,EACpB7tG,KAAKuuG,oBAAqB,EAC1BvuG,KAAKwuG,mBAAoB,EACzBxuG,KAAKyuG,mBAAoB,EACzBzuG,KAAK0uG,eAAgB,EACrB1uG,KAAK8Z,QAAU9Z,KAAKsD,eAAewW,QAAQrB,OAC3CzY,KAAK2uG,wBAmEP,MA9EAL,GAAkBluF,SAAW,aAAc,mBAAoB,kBAc/DkuF,EAAkB1+F,UAAU++F,sBAAwB,WAClD,GAAIpuD,GAAQg2C,EAAQh+B,CACpB,OAAIv4D,MAAKge,KAAK63C,OAAO,oBAAqB,iBAAkB,EACnD71D,KAAKuoC,WAAa,QAEzBguD,EAASv2F,KAAKge,KAAK63C,OAAO,sBAAuB,WACjDtV,EAASvgD,KAAKge,KAAK63C,OAAO,sBAAuB,WACjD0C,EAAQg+B,EAASh2C,EACH,IAAVgY,EACKv4D,KAAKuoC,WAAa,KAElBvoC,KAAKuoC,WAAuB,IAATgY,EAAegY,EAAS,MAKxD+1C,EAAkB1+F,UAAUg/F,aAAe,WACzC,MAAO5uG,MAAKsD,eAAeosF,cAAc,gBAG3C4e,EAAkB1+F,UAAUi/F,oBAAsB,WAChD,MAAK7uG,MAAKuuG,mBAYDvuG,KAAKuuG,oBAAqB,EAX1BvuG,KAAK6tG,aAAaiB,uBAAuB9uG,KAAKge,MAAM7a,KAAK,SAAUiF,GACxE,MAAO,UAAS+0D,GAEd,MADA/0D,GAAM2mG,YAAc5xC,EACb/0D,EAAMmmG,oBAAqB,IAEnCvuG,OAAO,SAAS,SAAUoI,GAC3B,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,QAMPsuG,EAAkB1+F,UAAUo/F,aAAe,SAASr2D,GAGlD,MAFA34C,MAAKyuG,mBAAoB,EACzBzuG,KAAK0uG,eAAgB,EACd1uG,KAAK6tG,aAAaoB,iBAAiBjvG,KAAKge,KAAM26B,GAAU,SAAS,SAAUvwC,GAChF,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,OAAO,WAAW,SAAUoI,GAC7B,MAAO,YACL,MAAOA,GAAMsmG,eAAgB,IAE9B1uG,QAGLsuG,EAAkB1+F,UAAUs/F,iBAAmB,SAASp3E,GAEtD,MADA93B,MAAKmvG,cAAe,EACbnvG,KAAK6tG,aAAauB,qBAAqBpvG,KAAKge,MAAiB,MAAV8Z,EAAiBA,EAAOle,GAAK,SAAW,MAAM,SAAS,SAAUxR,GACzH,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,OAAOmD,KAAK,SAAUiF,GACvB,MAAO,YACL,MAAOA,GAAM+mG,cAAe,IAE7BnvG,QAGEsuG,KAIT1rG,QAAQjD,OAAO,cAAcwE,WAAW,cAAemqG,IAEtDrqG,KAAKjE,MAsBR,WACE,GAAIqvG,EAEJA,GAAmB,WACjB,OACEnrG,YAAa,yCACbC,WAAY,cACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEoK,KAAM,IACNi6C,OAAQ,OAKdr1D,QAAQjD,OAAO,cAAcwjB,UAAU,YAAaksF,IAEnDprG,KAAKjE,MAsBR,WACE,GAAIsvG,GAA0BvvG,CAE9BA,GAAQC,KAAKD,MAEbuvG,EAA2B,WAGzB,QAASA,GAAyBzrG,EAAQuC,EAAsBgjE,EAAiB/8D,EAAiB8hC,EAAS7qC,EAAgBuqG,EAAc1hG,EAAgB4S,GACvJ/e,KAAK6D,OAASA,EACd7D,KAAKoG,qBAAuBA,EAC5BpG,KAAKopE,gBAAkBA,EACvBppE,KAAKqM,gBAAkBA,EACvBrM,KAAKmuC,QAAUA,EACfnuC,KAAKsD,eAAiBA,EACtBtD,KAAK6tG,aAAeA,EACpB7tG,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKohC,YAAc,qBACnBrhC,EAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM9E,eAAewW,UAE7B9Z,OACHD,EAAMqR,wBAAwBpR,KAAM,QAAS,SAAUoI,GACrD,MAAO,YACL,MAAOA,GAAMylG,aAAajvF,QAE3B5e,OACHA,KAAKmM,eAAeojG,MAAMvvG,KAAKszD,SAASvjD,KAAK/P,OAqD/C,MA5EAsvG,GAAyBlvF,SAAW,eAAgB,yBAA0B,oBAAqB,kBAAmB,aAAc,mBAAoB,iBAAkB,mBAAoB,cA0B9LkvF,EAAyB1/F,UAAU0jD,SAAW,WAC5C,GAAIzlD,EACJ,OAAK7N,MAAK8Z,SAGVjM,GACEyzB,YAAathC,KAAK8Z,QAAQhU,IAAI,QAC9By7B,mBAAoBvhC,KAAK8Z,QAAQhU,IAAI,iBAGrCxB,MAAOtE,KAAK+e,UAAUxW,QAAQ,mBAAoBsF,GAClDtJ,YAAavE,KAAK+e,UAAUxW,QAAQ,yBAA0BsF,KARvD,MAYXyhG,EAAyB1/F,UAAUyxB,gBAAkB,WAEnD,MADArhC,MAAK6tG,aAAa3tF,QACXlgB,KAAKsD,eAAeS,iBAAiB/D,KAAK6D,OAAOC,OAAOX,KAAK,SAAUiF,GAC5E,MAAO,YACL,MAAKA,GAAM9E,eAAeksG,0BAGrBpnG,EAAM9E,eAAeosF,cAAc,cAGjCtnF,EAAMylG,aAAa4B,aAFjBrnG,EAAMhC,qBAAqBoK,mBAH3BpI,EAAMhC,qBAAqBspG,aAOrC1vG,QAGLsvG,EAAyB1/F,UAAU+/F,eAAiB,WAClD,MAAO3vG,MAAKsD,eAAeosF,cAAc,aAG3C4f,EAAyB1/F,UAAUs+F,aAAe,WAChD,GAAIA,EAOJ,OANAA,GAAe,SAAU9lG,GACvB,MAAO,YACLA,EAAMiE,gBAAgBzF,WACtBwB,EAAM+lC,QAAQ3lC,OAAO,aAEtBxI,MACIA,KAAKopE,gBAAgB30C,OAAO,kBACjCi1C,QAAS,qCACTkmC,iBAAkB,mBAElB1B,aAAgBA,EAAan+F,KAAK/P,SAI/BsvG,KAIT1sG,QAAQjD,OAAO,cAAcwE,WAAW,qBAAsBmrG,IAE7DrrG,KAAKjE,MAsBR,WACE,GAAI6vG,EAEJA,GAAyB,SAAS//E,EAAQxsB,GACxC,GAAI+f,EAwCJ,OAvCAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,GAAIsF,GAAUq7B,EAAOE,CACrB,IAAK9rD,EAAeosF,cAAc,eAgClC,MA7BA77D,GAAW/D,EAAOvB,EAAMuhF,iBACxB5gD,EAAQG,SAASv8C,EAAG,KAClBw8C,gBAAgB,EAChBvP,MAAM,EACNosB,gBAAiBr5D,EAAG,GACpB28C,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,+BAGtBmE,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIsL,GAAM46C,EAAQ+e,CAIlB,OAHA/e,GAAS7rB,EAAEr6B,GACXsL,EAAO46C,EAAOhlD,QAAQoK,KACtB25D,EAAW/e,EAAO9/C,QACXlF,EAAM2B,OAAO,WAClB,MAAOse,GAASjgB,GACdoK,KAAMA,EACN25D,SAAUA,QAIhBvoB,EAASa,WAAW/vD,QAClBgwD,OAAQ,GACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvB18C,EAAMlH,IAAI,WAAY,WAE3B,MADAoG,GAAG2R,MACIyqC,EAAM9mB,cAIf/kB,KAAMA,IAIVwsF,EAAuBzvF,SAAW,SAAU,oBAE5Cxd,QAAQjD,OAAO,mBAAmBwjB,UAAU,kBAAmB0sF,IAE9D5rG,KAAKjE,MAsBR,WACE,GAAI+vG,GAAsB5vG,EAAcJ,CAExCA,GAAQC,KAAKD,MAEbI,EAAeH,KAAKD,MAAMI,aAE1B4vG,EAAuB,WAGrB,QAASA,GAAqB5hE,EAAS0/D,EAAcz7F,EAAS0J,EAASxY,GACrEtD,KAAKmuC,QAAUA,EACfnuC,KAAK6tG,aAAeA,EACpB7tG,KAAKoS,QAAUA,EACfpS,KAAK8b,QAAUA,EACf9b,KAAKsD,eAAiBA,EACtBtD,KAAK4b,KAAOzb,GAAcH,KAAKsD,eAAewW,QAAQhU,IAAI,MAAO,UACjE9F,KAAKgwG,gBAAiB,EACtBhwG,KAAKiwG,cAAe,EACpBjwG,KAAKi4D,OAASj4D,KAAK8b,QAAQhW,IAAI9F,KAAK4b,MAClCs0F,OAAO,EACP37F,MAAM,EACNuF,SAAS,EACT8uB,QAAQ,EACR+jD,UAAU,EACVlmF,QAAQ,EACR0pG,UAAU,IAEZpwG,EAAMqR,wBAAwBpR,KAAM,QAAS,SAAUoI,GACrD,MAAO,YACL,MAAOA,GAAMylG,aAAajvF,QAE3B5e,OACHD,EAAMqR,wBAAwBpR,KAAM,0BAA2B,SAAUoI,GACvE,MAAO,YACL,MAAOA,GAAMylG,aAAauC,qBAE3BpwG,OACHD,EAAMqR,wBAAwBpR,KAAM,eAAgB,SAAUoI,GAC5D,MAAO,YACL,MAAOA,GAAMylG,aAAawC,gBAE3BrwG,OAwCL,MA1EA+vG,GAAqB3vF,SAAW,aAAc,iBAAkB,WAAY,aAAc,oBAqC1F2vF,EAAqBngG,UAAU0gG,uBAAyB,WACtD,MAAOtwG,MAAKgwG,gBAAkBhwG,KAAKgwG,gBAGrCD,EAAqBngG,UAAU2gG,YAAc,SAASvyF,EAAM25D,GAC1D,MAAI35D,GAAKlY,IAAI,iBAAmB6xE,EACvB,KAEF33E,KAAK6tG,aAAa0C,YAAYvyF,EAAM25D,GAAUx0E,KAAK,KAAM,SAAUiF,GACxE,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,QAGL+vG,EAAqBngG,UAAU4gG,SAAW,WACxC,MAAOxwG,MAAK6tG,aAAa2C,YAG3BT,EAAqBngG,UAAU6gG,qBAAuB,WACpD,GAAIzwG,KAAK0wG,MACP,MAAO1wG,MAAKoS,QAAQ8mD,OAAOl5D,KAAK0wG,QAIpCX,EAAqBngG,UAAU+gG,oBAAsB,WACnD,MAAO3wG,MAAK0wG,MAAQ1wG,KAAKoS,QAAS,SAAUhK,GAC1C,MAAO,YACL,MAAOA,GAAM4nG,gBAAiB,IAE/BhwG,MAAQ,MAGb+vG,EAAqBngG,UAAUghG,kBAAoB,WACjD,MAAO5wG,MAAK8b,QAAQC,IAAI/b,KAAK4b,KAAM5b,KAAKi4D,SAGnC83C,KAITntG,QAAQjD,OAAO,cAAcwE,WAAW,iBAAkB4rG,IAEzD9rG,KAAKjE,MAsBR,WACE,GAAI6wG,EAEJA,GAAsB,WACpB,OACE3sG,YAAa,+CACbC,WAAY,iBACZC,aAAc,KACdwP,WAIJhR,QAAQjD,OAAO,cAAcwjB,UAAU,eAAgB0tF,IAEtD5sG,KAAKjE,MAsBR,WACE,GAAI8wG,GAAoBnxG,CAExBA,GAASiD,QAAQjD,OAAO,cAExBmxG,EAAqB,WAGnB,QAASA,KACP9wG,KAAK2uG,wBAoBP,MAvBAmC,GAAmB1wF,WAMnB0wF,EAAmBlhG,UAAU++F,sBAAwB,WACnD,GAAIx6C,GAAY48C,CAChB,OAAI/wG,MAAKgxG,MAAMlrG,IAAI,gBAAiB,EAC3B9F,KAAKuoC,WAAa,QAEzB4rB,EAAan0D,KAAKgxG,MAAMlrG,IAAI,SAAS2Q,KACrCs6F,EAAsB/wG,KAAKgxG,MAAMlrG,IAAI,SAAS4H,OAAO,SAAS8O,GAC5D,MAAOA,GAAG1W,IAAI,eACb2Q,KACgB,IAAf09C,EACKn0D,KAAKuoC,WAAa,KAElBvoC,KAAKuoC,WAAoC,IAAtBwoE,EAA4B58C,EAAc,MAKnE28C,KAITnxG,EAAOwE,WAAW,eAAgB2sG,IAEjC7sG,KAAKjE,MAsBR,WACE,GAAIixG,GAAmBtxG,CAEvBA,GAASiD,QAAQjD,OAAO,cAExBsxG,EAAoB,WAClB,OACE/sG,YAAa,2CACbC,WAAY,eACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEo9F,MAAO,IACP/4C,OAAQ,OAKdt4D,EAAOwjB,UAAU,aAAc8tF,IAE9BhtG,KAAKjE,MAsBR,WACE,GAAIkxG,GAAcnxG,CAElBA,GAAQC,KAAKD,MAEbmxG,EAAe,WAGb,QAASA,GAAa5tG,EAAgBqzC,EAAoBw6D,EAAWC,GACnEpxG,KAAKsD,eAAiBA,EACtBtD,KAAK22C,mBAAqBA,EAC1B32C,KAAKmxG,UAAYA,EACjBnxG,KAAKoxG,SAAWA,EAChBpxG,KAAKkgB,QACLngB,EAAMqR,wBAAwBpR,KAAM,QAAS,SAAUoI,GACrD,MAAO,YACL,MAAOA,GAAMipG,SAEdrxG,OAsKL,MAlLAkxG,GAAa9wF,SAAW,mBAAoB,uBAAwB,cAAe,qBAenF8wF,EAAathG,UAAUsQ,MAAQ,WAI7B,MAHAlgB,MAAKqwG,eAAgB,EACrBrwG,KAAKowG,oBAAqB,EAC1BpwG,KAAKsxG,MAAQ,EACNtxG,KAAKqxG,OAASpwF,UAAU0yB,QAGjCu9D,EAAathG,UAAU6/F,WAAa,SAAS74E,GAM3C,MALa,OAATA,IACFA,GAAQ,GAEV52B,KAAKqwG,eAAgB,EACrBrwG,KAAKowG,oBAAqB,EACnBpwG,KAAKmxG,UAAUvyF,MAAM3C,KAAKjc,KAAKsD,eAAewW,QAAQhU,IAAI,MAAO9F,KAAKsxG,OAAOnuG,KAAK,SAAUiF,GACjG,MAAO,UAAS6M,GAQd,MAPI2hB,IACFxuB,EAAM8X,QACN9X,EAAMipG,OAASp8F,EAAOgH,MAEtB7T,EAAMipG,OAASjpG,EAAMipG,OAAOpiG,OAAOgG,EAAOgH,MAE5C7T,EAAMioG,eAAgB,EACfjoG,EAAMgoG,oBAAsBn7F,EAAOvP,QAAQ,uBAEnD1F,OAAO,SAAS,SAAUoI,GAC3B,MAAO,UAASkI,GACd,MAAOlI,GAAMgpG,SAAS9qG,SAASgK,KAEhCtQ,QAGLkxG,EAAathG,UAAU4gG,SAAW,WAEhC,MADAxwG,MAAKsxG,QACEtxG,KAAKyvG,cAGdyB,EAAathG,UAAUk/F,uBAAyB,SAAS9wF,GACvD,MAAOhe,MAAKmxG,UAAUlzF,YAAYkhD,WAAWnhD,EAAKlY,IAAI,QAGxDorG,EAAathG,UAAUo+F,WAAa,SAASuD,EAAUz5D,GAErD,MADAy5D,GAASz3F,QAAU9Z,KAAKsD,eAAewW,QAAQhU,IAAI,MAC5C9F,KAAKmxG,UAAUvyF,MAAMhZ,KAAK2rG,GAAUpuG,KAAK,SAAUiF,GACxD,MAAO,UAAS4V,GACd,GAAIm6B,EAIJ,OAHAA,GAAW93C,EAAEC,IAAIw3C,EAAYr/B,OAAQ,SAAS2+B,GAC5C,MAAOhvC,GAAMuuC,mBAAmByB,OAAOhB,EAAWiB,KAAMr6B,EAAKlY,IAAI,MAAOkY,EAAKlY,IAAI,WAAY,UAExFiI,QAAQoM,IAAIg+B,GAAUh1C,KAAKiF,EAAMqnG,WAAW1/F,KAAK3H,GAAO,MAEhEpI,QAGLkxG,EAAathG,UAAU2gG,YAAc,SAASvyF,EAAM25D,GAClD,GAAI7xB,GAAkBC,EAAmBh+C,EAAMw8D,EAAU5d,EAAWE,EAAUC,EAA0BE,EAAWwqD,CAsCnH,OArCA7qD,MACA3mD,KAAKqxG,OAAO94F,QAAQ,SAASiE,GAC3B,MAAOmqC,GAAUnqC,EAAG1W,IAAI,OAAS0W,EAAG1W,IAAI,iBAE1C0rG,EAAexxG,KAAK4e,MAAMlR,OAAO,SAAUtF,GACzC,MAAO,UAASoU,GACd,MAAOA,GAAG1W,IAAI,QAAUkY,EAAKlY,IAAI,QAElC9F,OACH+lD,EAAoByrD,EAAa3+F,MAAM,EAAG8kE,GAC1C7xB,EAAmB0rD,EAAa3+F,MAAM8kE,GACtC9wB,EAAWd,EAAkBmM,OAC7BqS,EAAY1d,EAAeA,EAAS/gD,IAAI,eAAiB,EAAlC,EACvB6gD,EAAU3oC,EAAKlY,IAAI,OAASy+D,EAC5Bzd,EAA2Bf,EAAkBr4C,OAAO,SAAUtF,GAC5D,MAAO,UAASoU,GACd,MAAOA,GAAG1W,IAAI,iBAAmB+gD,EAAS/gD,IAAI,iBAE/C9F,OACHgnD,EAAY3mD,EAAEoxG,UAAU3qD,EAAyBxmD,IAAI,SAAU8H,GAC7D,MAAO,UAASoU,GACd,OAAQA,EAAG1W,IAAI,MAAO0W,EAAG1W,IAAI,kBAE9B9F,OAAOyY,QACVqtC,EAAiBvtC,QAAQ,SAASiE,GAChC,MAAOmqC,GAAUnqC,EAAG1W,IAAI,OAAS0W,EAAG1W,IAAI,eAAiB,IAE3D9F,KAAKqxG,OAASrxG,KAAKqxG,OAAO/wG,IAAI,SAASkc,GACrC,MAAOA,GAAGT,IAAI,cAAe4qC,EAAUnqC,EAAG1W,IAAI,UAEhD9F,KAAKqxG,OAASrxG,KAAKqxG,OAAO33F,OAAO,SAAS8C,GACxC,MAAOA,GAAG1W,IAAI,iBAEhBiC,GACE2pG,YAAantC,EACbv8D,QAASgW,EAAKlY,IAAI,YAEb9F,KAAKmxG,UAAUvyF,MAAM+yF,QAAQ3zF,EAAKlY,IAAI,MAAOiC,EAAMi/C,GAAW7jD,KAAK,SAAUiF,GAClF,MAAO,UAAS0lG,GACd,MAAO1lG,GAAMipG,OAASjpG,EAAMipG,OAAO/wG,IAAI,SAASkc,GAC9C,MAAIA,GAAG1W,IAAI,QAAUgoG,EAAQhoG,IAAI,MACxBgoG,EAEFtxF,MAGVxc,QAGLkxG,EAAathG,UAAUgiG,wBAA0B,SAAS5zF,EAAM6zF,EAAiBxrB,EAAW1O,GAC1F,GAAI5xB,GAAmBh+C,EAAMg3D,EAAQwF,EAAU1d,EAAUC,EAA0BE,EAAW8qD,EAAaN,CAwB3G,OAvBAA,GAAeK,EAAgBnkG,OAAO,SAAUtF,GAC9C,MAAO,UAASoU,GACd,MAAOA,GAAG1W,IAAI,QAAUugF,EAAUvgF,IAAI,QAEvC9F,OACH+lD,EAAoByrD,EAAa3+F,MAAM,EAAG8kE,GAC1C9wB,EAAWd,EAAkBmM,OAC7BqS,EAAY1d,EAAeA,EAAS/gD,IAAI,cAAgB,EAAjC,EACvBghD,EAA2Bf,EAAkBr4C,OAAO,SAAUtF,GAC5D,MAAO,UAASoU,GACd,MAAOA,GAAG1W,IAAI,gBAAkB+gD,EAAS/gD,IAAI,gBAE9C9F,OACHgnD,EAAY3mD,EAAEoxG,UAAU3qD,EAAyBxmD,IAAI,SAAU8H,GAC7D,MAAO,UAASoU,GACd,OAAQA,EAAG1W,IAAI,MAAO0W,EAAG1W,IAAI,iBAE9B9F,OAAOyY,QACV1Q,GACE29C,MAAO6e,GAETxF,EAAS/gD,EAAKlY,IAAI,MAClBgsG,EAAczrB,EAAUvgF,IAAI,MACrB9F,KAAKmxG,UAAUvyF,MAAMgzF,wBAAwB7yC,EAAQ+yC,EAAa/pG,EAAMi/C,GAAW7jD,KAAK,SAAUiF,GACvG,MAAO,YACL,MAAOA,GAAM0mG,uBAAuB9wF,KAErChe,QAGLkxG,EAAathG,UAAUmiG,YAAc,SAAS/zF,GAC5C,MAAOhe,MAAKqxG,OAASrxG,KAAKqxG,OAAO/wG,IAAI,SAASkc,GAC5C,MAAIA,GAAG1W,IAAI,QAAUkY,EAAKlY,IAAI,MACrBkY,EAEFxB,KAIX00F,EAAathG,UAAUq/F,iBAAmB,SAASjxF,EAAM26B,GACvD,GAAI5wC,EAKJ,OAJAA,IACEtB,OAAQkyC,EACR3wC,QAASgW,EAAKlY,IAAI,YAEb9F,KAAKmxG,UAAUvyF,MAAMjZ,MAAMqY,EAAKlY,IAAI,MAAOiC,GAAM5E,KAAKnD,KAAK+xG,YAAYhiG,KAAK/P,QAGrFkxG,EAAathG,UAAUw/F,qBAAuB,SAASpxF,EAAMqa,GAC3D,GAAItwB,EAKJ,OAJAA,IACEyV,YAAa6a,EACbrwB,QAASgW,EAAKlY,IAAI,YAEb9F,KAAKmxG,UAAUvyF,MAAMjZ,MAAMqY,EAAKlY,IAAI,MAAOiC,GAAM5E,KAAKnD,KAAK+xG,YAAYhiG,KAAK/P,QAG9EkxG,KAITtuG,QAAQjD,OAAO,cAAcijB,QAAQ,iBAAkBsuF,IAEtDjtG,KAAKjE,MAsBR,WACE,GAAIgyG,GAA8BryG,CAElCA,GAASiD,QAAQjD,OAAO,cAExBqyG,EAA+B,WAG7B,QAASA,GAA6B1uG,EAAgBuqG,GACpD7tG,KAAKsD,eAAiBA,EACtBtD,KAAK6tG,aAAeA,EACpB7tG,KAAKohC,YAAc,QACnBphC,KAAKiyG,sCAAuC,EA4B9C,MAlCAD,GAA6B5xF,SAAW,mBAAoB,kBAS5D4xF,EAA6BpiG,UAAUsiG,8BAAgC,WACrE,GAAI1uG,EACJ,OAAOxD,MAAKsD,eAAeosF,cAAc,iBAA+C,OAA3BlsF,EAAMxD,KAAKie,aAAuBza,EAAI2uG,MAAQ,QAAU,GAGvHH,EAA6BpiG,UAAUwiG,YAAc,WACnD,MAAOpyG,MAAKsD,eAAeosF,cAAc,gBAG3CsiB,EAA6BpiG,UAAUyiG,uBAAyB,WAC9D,MAAOryG,MAAK6tG,aAAaiB,uBAAuB9uG,KAAKge,MAAM7a,KAAK,SAAUiF,GACxE,MAAO,UAAS6V,GACd,MAAO7V,GAAM6V,YAAcA,IAE5Bje,QAGLgyG,EAA6BpiG,UAAUgiG,wBAA0B,SAAS76E,EAAI4gD,GAC5E,MAAO33E,MAAK6tG,aAAa+D,wBAAwB5xG,KAAKge,KAAMhe,KAAKie,YAAa8Y,EAAI4gD,GAAUx0E,KAAK,SAAUiF,GACzG,MAAO,UAAS6V,GACd,MAAO7V,GAAM6V,YAAcA,IAE5Bje,QAGEgyG,KAITryG,EAAOwE,WAAW,yBAA0B6tG,IAE3C/tG,KAAKjE,MAsBR,WACE,GAAIsyG,GAAoC3yG,CAExCA,GAASiD,QAAQjD,OAAO,cAExB2yG,EAAqC,WAGnC,QAASA,GAAmCvyF,EAAoB3F,EAAI+zB,EAASoT,GAC3EvhD,KAAK+f,mBAAqBA,EAC1B/f,KAAKoa,GAAKA,EACVpa,KAAKmuC,QAAUA,EACfnuC,KAAKuhD,UAAYA,EACjBvhD,KAAKqa,SAAWra,KAAK+f,mBAAmB1F,SAASvU,IAAI,OACrD9F,KAAKuyG,mBAAqBtxF,UAAU0yB,OACpC3zC,KAAKuiC,SAAU,EA2EjB,MApFA+vE,GAAmClyF,SAAW,uBAAwB,cAAe,aAAc,gBAYnGkyF,EAAmC1iG,UAAU4iG,cAAgB,SAASC,EAAmBC,GACvF,MAAO1yG,MAAKoa,GAAG6D,YAAY00F,iBAAiBF,GAAmBtvG,KAAK,SAAUiF,GAC5E,MAAO,UAASL,GACd,GAAI6qG,GAAYC,CAQhB,IAPAD,EAAaxqG,EAAMypG,gBAAgBvxG,IAAI,SAASy2B,GAC9C,MAAOA,GAAGjxB,IAAI,QAEhB+sG,EAAe9qG,EAAK2F,OAAO,SAASqpB,GAClC,MAAO67E,GAAW7rG,QAAQgwB,EAAGjxB,IAAI,cAEnCsC,EAAMmqG,mBAAqBM,EACvBH,EACF,MAAOA,OAGV1yG,QAGLsyG,EAAmC1iG,UAAUkjG,qBAAuB,SAASC,EAAqBC,GAChG,GAAIj0C,GAAQr7C,EAASC,CACrB,IAAK3jB,KAAKizG,gCAsBV,MAnBAjzG,MAAKuiC,SAAU,EACf7e,EAAU,SAAUtb,GAClB,MAAO,UAASL,GAGd,MAFAK,GAAMm6B,SAAU,EAChBn6B,EAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAM8qG,+BAA+BnrG,KAE7C/H,MACH2jB,EAAY,SAAUvb,GACpB,MAAO,YAML,MALAA,GAAMm5C,UAAU18B,WAAW,0BAA2B,SAAU,oCAAqC,GACrGzc,EAAMm6B,SAAU,EACZywE,GACFA,IAEK5qG,EAAMiqG,2BAEdryG,MACH++D,EAAS/+D,KAAKge,KAAKlY,IAAI,MAChB9F,KAAKoa,GAAGwE,MAAMu0F,oBAAoBp0C,EAAQg0C,GAAqB5vG,KAAKwgB,EAAWD,IAGxF4uF,EAAmC1iG,UAAUwjG,6BAA+B,SAASX,EAAmBY,EAAiBC,GACvH,GAAIv0C,GAAQr7C,EAASC,CACrB,IAAK3jB,KAAKuzG,2BAsBV,MAnBAvzG,MAAKuiC,SAAU,EACf7e,EAAU,SAAUtb,GAClB,MAAO,UAASL,GAGd,MAFAK,GAAMm6B,SAAU,EAChBn6B,EAAM+lC,QAAQ3lC,OAAO,SACdJ,EAAMorG,0BAA0BzrG,KAExC/H,MACH2jB,EAAY,SAAUvb,GACpB,MAAO,YAML,MALAA,GAAMm5C,UAAU18B,WAAW,0BAA2B,SAAU,oCAAqC,GACrGzc,EAAMm6B,SAAU,EACZ+wE,GACFA,IAEKlrG,EAAMiqG,2BAEdryG,MACH++D,EAAS/+D,KAAKge,KAAKlY,IAAI,MAChB9F,KAAKoa,GAAGwE,MAAMw0F,6BAA6Br0C,EAAQ0zC,EAAmBY,GAAiBlwG,KAAKwgB,EAAWD,IAGzG4uF,KAIT3yG,EAAOwE,WAAW,+BAAgCmuG,IAEjDruG,KAAKjE,MAsBR,WACE,GAAIyzG,GAAmC9zG,CAEvCA,GAASiD,QAAQjD,OAAO,cAExB8zG,EAAoC,SAASxmC,GAC3C,GAAI5pD,EAqDJ,OApDArjB,MAAKqM,gBAAkB4gE,EACvB5pD,EAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIw7C,GAAuBC,CA8C3B,OA7CAA,GAAmB7gG,EAAG2J,KAAK,wBAAwB7Q,YACnD8nG,EAAwB5gG,EAAG2J,KAAK,6BAA6B7Q,YAC7DssD,EAAKq7C,yBAA2B,SAAUnrG,GACxC,MAAO,YACL,MAAOurG,GAAiBvvF,aAEzBpkB,MACHk4D,EAAKs7C,0BAA4B,SAAUprG,GACzC,MAAO,UAASimG,GACd,MAAOsF,GAAiB5uF,UAAUspF,KAEnCruG,MACHk4D,EAAK+6C,8BAAgC,SAAU7qG,GAC7C,MAAO,YACL,MAAOsrG,GAAsBtvF,aAE9BpkB,MACHk4D,EAAKg7C,+BAAiC,SAAU9qG,GAC9C,MAAO,UAASimG,GACd,MAAOqF,GAAsB3uF,UAAUspF,KAExCruG,MACH4T,EAAMggG,aAAe,SAASnB,GAC5B,MAAO7+F,GAAM4+F,cAAcC,GAAmBtvG,KAAK,SAAUiF,GAC3D,MAAO,YACL,MAAOiE,iBAAgBuoB,KAAK9hB,EAAG2J,KAAK,4CAErCzc,QAEL4T,EAAMmlC,cAAgB,WAIpB,MAHAnlC,GAAMigG,kBAAoB,KAC1BjgG,EAAMkgG,gBAAkB,GACxBlgG,EAAMmgG,uBAAyB,GACxB1nG,gBAAgBkmB,MAAMzf,EAAG2J,KAAK,2CAEvC7I,EAAMK,OAAO,aAAc,SAAS6F,GAClC,GAAe,MAAXA,EACF,MAAOlG,GAAMogG,gBAAkBl6F,EAAQhU,IAAI,QAG/C8N,EAAM4+F,cAAgB,SAASC,GAG7B,MAFA7+F,GAAMigG,kBAAoB,KAC1BjgG,EAAMkgG,gBAAkB,GACjB57C,EAAKs6C,cAAcC,IAErB7+F,EAAMqgG,wBAA0B,WACrC,MAAOrgG,GAAMigG,kBAAoB,QAInCxwF,KAAMA,EACNnf,YAAa,uFACbC,WAAY,+BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEq+F,qCAAsC,IACtCn4F,QAAS,IACTkE,KAAM,IACN6zF,gBAAiB,IACjBQ,uBAAwB,OAK9BoB,EAAkCrzF,SAAW,mBAE7CzgB,EAAOwjB,UAAU,6BAA8BswF,IAE9CxvG,KAAKjE,MAsBR,WACE,GAAIk0G,GAAqCv0G,CAEzCA,GAASiD,QAAQjD,OAAO,cAExBu0G,EAAsC,SAASpkF,EAAQxsB,GACrD,GAAI+f,EAwCJ,OAvCAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,GAAIsF,GAAUq7B,EAAOE,CACrB,IAAK9rD,EAAeosF,cAAc,eAgClC,MA7BA77D,GAAW/D,EAAOvB,EAAM4lF,8BACxBjlD,EAAQG,SAASv8C,EAAG,KAClBw8C,gBAAgB,EAChBvP,MAAM,EACNosB,gBAAiBr5D,EAAG,GACpB28C,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAMq4C,GAAG,+BAGtBmE,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIkmD,GAAQ+e,EAAU5gD,CAItB,OAHA6hC,GAAS7rB,EAAEr6B,GACXqkB,EAAK6hC,EAAOhlD,QAAQmjB,GACpB4gD,EAAW/e,EAAO9/C,QACXlF,EAAM2B,OAAO,WAClB,MAAOse,GAASjgB,GACdmjB,GAAIA,EACJ4gD,SAAUA,QAIhBvoB,EAASa,WAAW/vD,QAClBgwD,OAAQ,GACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvB18C,EAAMlH,IAAI,WAAY,WAE3B,MADAoG,GAAG2R,MACIyqC,EAAM9mB,cAIf/kB,KAAMA,IAIV6wF,EAAoC9zF,SAAW,SAAU,oBAEzDzgB,EAAOwjB,UAAU,+BAAgC+wF,IAEhDjwG,KAAKjE,MAsBR,WACE,GAAIo0G,GAA6Bz0G,CAEjCA,GAASiD,QAAQjD,OAAO,cAExBy0G,EAA8B,WAC5B,OACElwG,YAAa,qDACbC,WAAY,yBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEqK,YAAa,IACbnE,QAAS,IACTkE,KAAM,OAKZo2F,EAA4Bh0F,WAE5BzgB,EAAOwjB,UAAU,uBAAwBixF,IAExCnwG,KAAKjE,MAsBR,WACE,GAAIq0G,GAA+B10G,CAEnCA,GAASiD,QAAQjD,OAAO,cAExB00G,EAAgC,WAG9B,QAASA,GAA8B78E,EAAezY,EAAWovB,EAAS/zB,GACxEpa,KAAKw3B,cAAgBA,EACrBx3B,KAAK+e,UAAYA,EACjB/e,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EA2CZ,MAjDAi6F,GAA8Bj0F,SAAW,kBAAmB,aAAc,aAAc,eASxFi0F,EAA8BzkG,UAAU0kG,cAAgB,WACtD,GAAIx8E,EAEJ,OADAA,GAAS93B,KAAKqmF,UAAUvgF,IAAI,0BACrB9F,KAAK63B,OAAS73B,KAAKw3B,cAAcO,UAAUD,IAGpDu8E,EAA8BzkG,UAAU2kG,6BAA+B,WACrE,MAAIv0G,MAAKqmF,UAAUvgF,IAAI,eACd9F,KAAKqmF,UAAUxwB,OAAO,yBAA0B,sBAElD71D,KAAK+e,UAAUxW,QAAQ,oCAGhC8rG,EAA8BzkG,UAAU4kG,yBAA2B,WACjE,GAAIxvF,GAAS1gB,CAKb,OAJAA,GAAQtE,KAAK+e,UAAUxW,QAAQ,gDAC/Byc,EAAUhlB,KAAK+e,UAAUxW,QAAQ,8CAC/BsW,QAAS7e,KAAKqmF,UAAUvgF,IAAI,aAEvB9F,KAAKmuC,QAAQ/X,YAAY9xB,EAAO0gB,GAAS7hB,KAAK,SAAUiF,GAC7D,MAAO,UAASiuB,GACd,GAAI0oC,GAAQr7C,EAASC,EAAWmuF,CAchC,OAbApuF,GAAU,WAKR,MAJAsB,GAAU5c,EAAM2W,UAAUxW,QAAQ,uCAChC+mF,aAActqE,IAEhB5c,EAAM+lC,QAAQ3lC,OAAO,QAAS,KAAMwc,GAC7BqR,EAAY1B,QAAO,IAE5BhR,EAAY,WAEV,MADAvb,GAAMiqG,yBACCh8E,EAAY1B,UAErBoqC,EAAS32D,EAAM4V,KAAKlY,IAAI,MACxBgsG,EAAc1pG,EAAMi+E,UAAUvgF,IAAI,MAC3BsC,EAAMgS,GAAGwE,MAAM61F,uBAAuB11C,EAAQ+yC,GAAa3uG,KAAKwgB,EAAWD,KAEnF1jB,QAGEq0G,KAIT10G,EAAOwE,WAAW,0BAA2BkwG,IAE5CpwG,KAAKjE,MAsBR,WACE,GAAI00G,GAA8B/0G,CAElCA,GAASiD,QAAQjD,OAAO,cAExB+0G,EAA+B,WAC7B,GAAIrxF,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOA,GAAKo8C,kBAGZjxF,KAAMA,EACNnf,YAAa,6EACbC,WAAY,0BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEyyE,UAAW,IACXroE,KAAM,IACNlE,QAAS,IACTu4F,uBAAwB,OAK9BqC,EAA6Bt0F,WAE7BzgB,EAAOwjB,UAAU,wBAAyBuxF,IAEzCzwG,KAAKjE,MAsBR,WACE,GAAI20G,GAAuB50G,EACzBgQ,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,aAChEtN,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb40G,EAAwB,SAAUvkG,GAKhC,QAASukG,GAAsB9I,EAAa+I,EAAqB10G,EAAQ6f,EAAoBnF,EAAUqmB,EAASmwE,EAAU/sG,GACxH,GAAIwwG,GAAUtuG,CACdvG,MAAK6rG,YAAcA,EACnB7rG,KAAK40G,oBAAsBA,EAC3B50G,KAAKE,OAASA,EACdF,KAAK+f,mBAAqBA,EAC1B/f,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKoxG,SAAWA,EAChBpxG,KAAKqE,OAASA,EACdrE,KAAK80G,uBAAyB/kG,EAAK/P,KAAK80G,uBAAwB90G,MAChEA,KAAK+0G,qBAAuBhlG,EAAK/P,KAAK+0G,qBAAsB/0G,MAC5DA,KAAKg1G,UAAYjlG,EAAK/P,KAAKg1G,UAAWh1G,MACtCA,KAAKqE,OAAOqK,OAAM,GAClB1O,KAAKi1G,eAAiBj1G,KAAK6rG,YAAYqJ,YACvCl1G,KAAKm1G,OAASn1G,KAAK6rG,YAAYuJ,MAC/Bp1G,KAAK+0G,uBACL/0G,KAAKq1G,MAAQr1G,KAAK+f,mBAAmB1R,UACrCrO,KAAKs1G,aAAe,KACpB/uG,EAAU0c,mBAAmBjjB,KAAK4a,SAAS9T,OAC3C+tG,EAAW70G,KAAKihC,QAAQt+B,QAAQ,SAChC3C,KAAKu1G,wBAA0BV,EAAW,SAAWtuG,EACrDxG,EAAMqR,wBAAwBpR,KAAM,OAAQ,SAAUoI,GACpD,MAAO,YACL,MAAOA,GAAMitG,QAEdr1G,OACHD,EAAMqR,wBAAwBpR,KAAM,cAAe,SAAUoI,GAC3D,MAAO,YACL,MAAOA,GAAMktG,eAEdt1G,OA2CL,MA9EA6C,GAAO8xG,EAAuBvkG,GAE9BukG,EAAsBv0F,SAAW,eAAgB,wBAAyB,UAAW,uBAAwB,YAAa,aAAc,oBAAqB,YAoC7Ju0F,EAAsB/kG,UAAUolG,UAAY,SAASQ,GACnD,GAAIjvG,EAEJ,OADAA,GAAUivG,EAAiB1vG,IAAI,YACxB9F,KAAKE,OAAO00B,KAAKruB,EAAS,UAGnCouG,EAAsB/kG,UAAUmlG,qBAAuB,WACrD,MAAO/0G,MAAK40G,oBAAoBa,oBAAoBz1G,KAAKi1G,eAAgBj1G,KAAKm1G,QAAQhyG,KAAK,SAAUiF,GACnG,MAAO,UAASL,GAEd,MADAK,GAAMktG,aAAevtG,EAAKjC,IAAI,eAC1BiC,EAAKjC,IAAI,aACJsC,EAAM4sG,UAAUjtG,GAEhBK,EAAM/D,OAAOi2C,eAGvBt6C,OAAO,SAAS,SAAUoI,GAC3B,MAAO,UAASkI,GAEd,MADAlI,GAAM/D,OAAOi2C,aACNlyC,EAAMgpG,SAAS9qG,SAASgK,KAEhCtQ,QAGL20G,EAAsB/kG,UAAUspD,OAAS,WACvC,MAAOl5D,MAAKE,OAAO6mF,QAAQ2uB,QAG7Bf,EAAsB/kG,UAAUklG,uBAAyB,WACvD,MAAO90G,MAAK40G,oBAAoBe,0BAA0B31G,KAAKi1G,eAAgBj1G,KAAKm1G,QAAQhyG,KAAK,SAAUiF,GACzG,MAAO,UAASL,GACd,MAAOK,GAAM4sG,UAAUjtG,KAExB/H,OAAO,SAAS,SAAUoI,GAC3B,MAAO,UAASkI,GACd,MAAOlI,GAAMgpG,SAAS9qG,SAASgK,KAEhCtQ,QAGE20G,GAEN50G,EAAM6Q,YAEThO,QAAQjD,OAAO,qBAAqBwE,WAAW,cAAewwG,IAE7D1wG,KAAKjE,MAsBR,WACE,GAAI41G,GACF/yG,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf8lG,GAAsB,SAAUxlG,GAK9B,QAASwlG,GAAoBx7F,GAC3Bpa,KAAKoa,GAAKA,EAWZ,MAhBAvX,GAAO+yG,EAAqBxlG,GAE5BwlG,EAAoBx1F,SAAW,eAM/Bw1F,EAAoBhmG,UAAU6lG,oBAAsB,SAASI,EAAeT,GAC1E,MAAOp1G,MAAKoa,GAAG07F,aAAaL,oBAAoBI,EAAeT,IAGjEQ,EAAoBhmG,UAAU+lG,0BAA4B,SAASE,EAAeT,GAChF,MAAOp1G,MAAKoa,GAAG07F,aAAaH,0BAA0BE,EAAeT,IAGhEQ,GAEN71G,MAAM4Q,SAET/N,QAAQjD,OAAO,qBAAqBijB,QAAQ,wBAAyBgzF,IAEpE3xG,KAAKjE,MAsBR,WACE,GAAI+1G,GACFlzG,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfimG,GAAkB,SAAU3lG,GAK1B,QAAS2lG,GAAgB3sC,GACvBppE,KAAKopE,gBAAkBA,EASzB,MAdAvmE,GAAOkzG,EAAiB3lG,GAExB2lG,EAAgB31F,SAAW,qBAM3B21F,EAAgBnmG,UAAUomG,aAAe,WACvC,MAAOh2G,MAAKopE,gBAAgB30C,OAAO,kBACjCi1C,QAAS,sDAINqsC,GAENh2G,MAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,oBAAqBmzF,IAE5D9xG,KAAKjE,MAsBR,WACE,GAAIi2G,GAAmBt2G,CAEvBA,GAASiD,QAAQjD,OAAO,gBAExBs2G,EAAoB,WAGlB,QAASA,GAAkBl2F,EAAoBm2F,EAAmB9sC,GAChEppE,KAAK+f,mBAAqBA,EAC1B/f,KAAKk2G,kBAAoBA,EACzBl2G,KAAKopE,gBAAkBA,EACvBppE,KAAKm2G,sBAAuB,EA+C9B,MArDAF,GAAkB71F,SAAW,uBAAwB,4BAA6B,qBASlF61F,EAAkBrmG,UAAUwmG,mBAAqB,WAC/C,MAAOp2G,MAAKm2G,sBAAuB,GAGrCF,EAAkBrmG,UAAUymG,mBAAqB,WAC/C,MAAOr2G,MAAKm2G,sBAAuB,GAGrCF,EAAkBrmG,UAAU0mG,mBAAqB,SAAS/nG,GACxD,GAAsB,KAAlBA,EAAMunB,QACR,MAAO91B,MAAKu2G,YACVC,UAAWx2G,KAAK+uB,QAAQnV,MAK9Bq8F,EAAkBrmG,UAAU6mG,qBAAuB,WACjD,GAAIz2G,KAAK+f,mBAAmB1R,UAE1B,MADArO,MAAKuM,KAAOvM,KAAK+f,mBAAmB1R,UAC7BrO,KAAKuM,KAAKzG,IAAI,QAAU9F,KAAK+uB,QAAQxiB,KAAKmqG,IAAM12G,KAAKk2G,kBAAkB5c,MAAM,mBAIxF2c,EAAkBrmG,UAAUyvF,YAAc,SAASxqF,EAAM5G,GACvD,MAAOjO,MAAK22G,eACVH,UAAWx2G,KAAK+uB,QAAQnV,GACxB+sE,YAAa9xE,EACbgf,SAAU5lB,KAIdgoG,EAAkBrmG,UAAUgnG,sBAAwB,WAClD,MAAO52G,MAAKopE,gBAAgB30C,OAAO,0BACjCi1C,QAAS,qCACT36C,QAAW,UACXxa,KAAQ,OACRlB,OAAU,WAEV0b,QAAW/uB,KAAK+uB,QAChBxa,KAAQvU,KAAKuU,KACblB,OAAUrT,KAAKqT,UAIZ4iG,KAITt2G,EAAOwE,WAAW,cAAe8xG,IAEhChyG,KAAKjE,MAsBR,WACE,GAAI62G,GAAkBl3G,CAEtBA,GAASiD,QAAQjD,OAAO,gBAExBk3G,EAAmB,WACjB,OACEjjG,OACEW,KAAM,IACNlB,OAAQ,IACR0b,QAAS,IACT3kB,KAAM,IACNm4B,QAAS,IACTu0E,QAAS,IACTC,SAAU,IACV3oE,SAAU,IACV+/C,SAAU,IACVooB,WAAY,IACZS,gBAAiB,IACjBC,wBAAyB,IACzBN,cAAe,KAEjBzyG,YAAa,gCACbupE,kBAAkB,EAClBtpE,WAAY,cACZC,aAAc,OAIlBzE,EAAOwjB,UAAU,YAAa0zF,IAE7B5yG,KAAKjE,MAoBR,WACE,GAAIk3G,GAAoBv3G,CAExBA,GAASiD,QAAQjD,OAAO,gBAExBu3G,EAAqB,WAGnB,QAASA,MAMT,MARAA,GAAmB92F,WAInB82F,EAAmBtnG,UAAUunG,sBAAwB,WACnD,MAAOn3G,MAAKo3G,wBAA0B,WAAap3G,KAAKuU,MAGnD2iG,KAITv3G,EAAOwE,WAAW,eAAgB+yG,IAEjCjzG,KAAKjE,MAsBR,WACE,GAAIq3G,GAAmB13G,CAEvBA,GAASiD,QAAQjD,OAAO,gBAExB03G,EAAoB,WAClB,GAAIh0F,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOA,GAAKi/C,0BAGZvjG,OACExJ,KAAM,IACNmK,KAAM,IACNlB,OAAQ,IACRikG,SAAU,IACVf,WAAY,IACZS,gBAAiB,IACjBC,wBAAyB,IACzB3X,aAAc,IACdqX,cAAe,IACfxoB,SAAU,IACV5rD,QAAS,IACTw0E,SAAU,IACVD,QAAS,IACTv8F,UAAW,KAEbrW,YAAa,iCACbupE,kBAAkB,EAClBtpE,WAAY,eACZC,aAAc,KACdif,KAAMA,IAIV1jB,EAAOwjB,UAAU,aAAck0F,IAE9BpzG,KAAKjE,MAsBR,WACE,GAAIu3G,GAAmC53G,CAEvCA,GAASiD,QAAQjD,OAAO;AAExB43G,EAAoC,WAGlC,QAASA,GAAkCn9F,GACzCpa,KAAKoa,GAAKA,EAeZ,MAlBAm9F,GAAkCn3F,SAAW,gBAM7Cm3F,EAAkC3nG,UAAU4nG,cAAgB,WAC1D,GAAI9wB,GAAYt4C,EAAUhkC,CAI1B,OAHAA,GAAOpK,KAAKuU,KACZ65B,EAAWpuC,KAAKqT,OAChBqzE,EAAa1mF,KAAK+uB,QAAQnV,GACnB5Z,KAAKoa,GAAG2sE,QAAQH,kBAAkBx8E,EAAMgkC,EAAUs4C,GAAYvjF,KAAK,SAAUiF,GAClF,MAAO,UAASL,GACd,MAAOK,GAAMqvG,sBAAwB1vG,IAEtC/H,QAGEu3G,KAIT53G,EAAOwE,WAAW,8BAA+BozG,IAEhDtzG,KAAKjE,MAsBR,WACE,GAAI03G,EAEJA,GAAmC,SAASrrG,GAC1C,GAAIgX,EAKJ,OAJAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAEhC,MADAA,GAAKs/C,gBACEnrG,EAAgBuoB,KAAK9hB,KAG5Bc,SACA65D,kBACEl5D,KAAM,IACNlB,OAAQ,IACR0b,QAAS,KAEX7qB,YAAa,yDACbC,WAAY,8BACZC,aAAc,KACdif,KAAMA,IAIVq0F,EAAiCt3F,SAAW,mBAE5Cxd,QAAQjD,OAAO,gBAAgBwjB,UAAU,sBAAuBu0F,IAE/DzzG,KAAKjE,MAsBR,WACE,GAAI23G,EAEJA,GAAwB,WACtB,OACE/jG,OACEgkG,MAAO,KAET1zG,YAAa,gDAIjBtB,QAAQjD,OAAO,gBAAgBwjB,UAAU,iBAAkBw0F,IAE1D1zG,KAAKjE,MAsBR,WACE,GAAI63G,GAAsBl4G,CAE1BA,GAASiD,QAAQjD,OAAO,gBAExBk4G,EAAuB,WACrB,OACE3zG,YAAa,yCACb0P,OACEkkG,eAAgB,IAChBC,gBAAiB,IACjBC,iBAAkB,IAClBC,mBAAoB,IACpBC,gBAAiB,IACjBC,UAAW,IACXC,YAAa,IACbC,cAAe,IACfC,UAAW,OAKjB34G,EAAOwjB,UAAU,gBAAiB00F,IAEjC5zG,KAAKjE,MAsBR,WACE,GAAIu4G,GAA0B54G,CAE9BA,GAASiD,QAAQjD,OAAO,gBAExB44G,EAA2B,WAGzB,QAASA,GAAyBn+F,EAAI8T,EAAMpS,EAASxY,GACnDtD,KAAKoa,GAAKA,EACVpa,KAAKkuB,KAAOA,EACZluB,KAAK8b,QAAUA,EACf9b,KAAKsD,eAAiBA,EACtBtD,KAAK82G,QAAU,KACf92G,KAAK+2G,SAAW,KAChB/2G,KAAKmuF,YACLnuF,KAAKw4G,cAAe,EACpBx4G,KAAKwkD,QAAUxkD,KAAK8b,QAAQhW,IAAI,iBAChC9F,KAAKy4G,eA2GP,MAvHAF,GAAyBn4F,SAAW,eAAgB,UAAW,aAAc,oBAe7Em4F,EAAyB3oG,UAAU6oG,aAAe,WAChD,MAAOz4G,MAAKoa,GAAG2sE,QAAQjhF,IAAI9F,KAAKuU,KAAMvU,KAAK4Z,IAAIzW,KAAK,SAAUiF,GAC5D,MAAO,UAAS2+E,GAEd,MADA3+E,GAAMswG,aAAa3xB,GACZ3+E,EAAMuwG,eAAe5xB,KAE7B/mF,QAGLu4G,EAAyB3oG,UAAU8oG,aAAe,SAASpB,GAOzD,MANAt3G,MAAKs3G,SAAWj3G,EAAEqN,OAAO4pG,EAAU,SAAS5kG,GAC1C,MAAwB,KAAjBA,EAAKqc,UAEV/uB,KAAKwkD,SACPxkD,KAAKs3G,SAAWj3G,EAAEmkD,QAAQxkD,KAAKs3G,UAE1Bt3G,KAAKo4G,YAAcp4G,KAAKs3G,SAASlqG,QAG1CmrG,EAAyB3oG,UAAU+oG,eAAiB,SAASC,GAI3D,MAHA54G,MAAK44G,WAAav4G,EAAEqN,OAAOkrG,EAAY,SAASlmG,GAC9C,MAAO4E,QAAO9D,KAAKd,EAAKmmG,aAAazrG,OAAS,IAEzCpN,KAAKq4G,cAAgBr4G,KAAK44G,WAAWxrG,QAG9CmrG,EAAyB3oG,UAAUkpG,mBAAqB,WACtD,MAAO94G,MAAK83G,kBAAoB93G,KAAK+3G,mBAGvCQ,EAAyB3oG,UAAUkoG,eAAiB,WAClD,MAAO93G,MAAKo4G,YAAc,GAAKp4G,KAAKsD,eAAeosF,cAAc,WAAa1vF,KAAKuU,OAGrFgkG,EAAyB3oG,UAAUmoG,gBAAkB,WACnD,MAAO/3G,MAAKq4G,cAAgB,GAG9BE,EAAyB3oG,UAAUmpG,eAAiB,SAASvC,GAC3D,MAAOx2G,MAAKmuF,SAASqoB,IAAcx2G,KAAKmuF,SAASqoB,IAGnD+B,EAAyB3oG,UAAUopG,mBAAqB,SAASt8B,GAC/D,MAAO18E,MAAKw4G,aAAe97B,GAG7B67B,EAAyB3oG,UAAUi3E,cAAgB,SAAS2vB,GAC1D,GAAI9vB,GAAYt4C,EAAUhkC,CAK1B,OAJAA,GAAOpK,KAAKuU,KACZ65B,EAAWpuC,KAAK4Z,GAChB8sE,EAAa8vB,EACbx2G,KAAK+2G,SAAWP,EACTx2G,KAAKoa,GAAG2sE,QAAQF,cAAcz8E,EAAMgkC,EAAUs4C,GAAYvjF,KAAK,SAAUiF,GAC9E,MAAO,YAEL,MADAA,GAAMqwG,eACCrwG,EAAM2uG,SAAW,OAEzB/2G,QAGLu4G,EAAyB3oG,UAAU62E,YAAc,SAAS+vB,EAAWznF,GACnE,GAAI23D,GAAYt4C,EAAUhkC,CAK1B,OAJAA,GAAOpK,KAAKuU,KACZ65B,EAAWpuC,KAAK4Z,GAChB8sE,EAAa8vB,EACbx2G,KAAK82G,QAAUN,EACRx2G,KAAKoa,GAAG2sE,QAAQN,YAAYr8E,EAAMgkC,EAAUs4C,EAAY33D,GAAS5rB,KAAK,SAAUiF,GACrF,MAAO,YAGL,MAFAA,GAAMqwG,eACNrwG,EAAM2wG,eAAevC,GACdpuG,EAAM0uG,QAAU,OAExB92G,QAGLu4G,EAAyB3oG,UAAUqpG,sBAAwB,SAASzC,GAClE,GAAI9vB,GAAYt4C,EAAUhkC,CAK1B,OAJAA,GAAOpK,KAAKuU,KACZ65B,EAAWpuC,KAAK4Z,GAChB8sE,EAAa8vB,EACbx2G,KAAK82G,QAAUN,EACRx2G,KAAKoa,GAAG2sE,QAAQD,gBAAgB18E,EAAMgkC,EAAUs4C,GAAYvjF,KAAK,SAAUiF,GAChF,MAAO,YAEL,MADAA,GAAMqwG,eACCrwG,EAAM0uG,QAAU,OAExB92G,QAGLu4G,EAAyB3oG,UAAUspG,WAAa,SAASjrG,GACvD,MAAOjO,MAAKkuB,KAAKU,KAAK5uB,KAAKoK,MAAMjH,KAAK,SAAUiF,GAC9C,MAAO,YAEL,MADAA,GAAMqwG,eACCxqG,MAERjO,QAGLu4G,EAAyB3oG,UAAUsoG,gBAAkB,WAGnD,MAFAl4G,MAAKwkD,SAAWxkD,KAAKwkD,QACrBxkD,KAAK8b,QAAQC,IAAI,gBAAiB/b,KAAKwkD,SAChCxkD,KAAKy4G,gBAGPF,KAIT54G,EAAOwE,WAAW,iBAAkBo0G,IAEnCt0G,KAAKjE,MAsBR,WACE,GAAIm5G,GAAyBx5G,CAE7BA,GAASiD,QAAQjD,OAAO,gBAExBw5G,EAA0B,WACxB,GAAI91F,EAMJ,OALAA,GAAO,SAASzP,EAAOd,EAAIe,EAAMqkD,GAC/B,MAAOtkD,GAAMlH,IAAI,iBAAkB,WACjC,MAAOwrD,GAAKugD,aAAa7kG,EAAMxJ,KAAMwJ,EAAMgG,QAI7CyJ,KAAMA,EACNnf,YAAa,uBACbC,WAAY,iBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACExJ,KAAM,IACNmK,KAAM,IACNqF,GAAI,IACJW,UAAW,OAKjB4+F,EAAwB/4F,WAExBzgB,EAAOwjB,UAAU,mBAAoBg2F,IAEpCl1G,KAAKjE,MAsBR,WACE,GAAIo5G,GAA0Bz5G,CAE9BA,GAASiD,QAAQjD,OAAO,gBAExBy5G,EAA2B,WAGzB,QAASA,MAST,MAXAA,GAAyBh5F,WAIzBg5F,EAAyBxpG,UAAUypG,SAAW,WAC5C,GAAkB,SAAdr5G,KAAKoK,KAEP,MADApK,MAAKs5G,eAAiBj5G,EAAEm7D,WAAWx7D,KAAK26C,KAAK,GAAI36C,KAAK26C,KAAK,IAAItoC,WACxDrS,KAAKu5G,YAAcl5G,EAAEm7D,WAAWx7D,KAAK26C,KAAK,GAAI36C,KAAK26C,KAAK,IAAItoC,YAIhE+mG,KAITz5G,EAAOwE,WAAW,qBAAsBi1G,IAEvCn1G,KAAKjE,MAsBR,WACE,GAAIw5G,GAAsB75G,CAE1BA,GAASiD,QAAQjD,OAAO,gBAExB65G,EAAuB,WACrB,GAAIn2F,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOA,GAAKmhD,aAGZzlG,OACExJ,KAAM,IACNuwC,KAAM,KAERz2C,YAAa,oCACbC,WAAY,qBACZC,aAAc,KACdqpE,kBAAkB,EAClBpqD,KAAMA,IAIV1jB,EAAOwjB,UAAU,gBAAiBq2F,IAEjCv1G,KAAKjE,MAsBR,WACE,GAAIy5G,GAAkB95G,CAEtBA,GAASiD,QAAQjD,OAAO,gBAExB85G,EAAmB,WACjB,GAAIp2F,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIyb,MAEzB3a,OACEglG,WAAY,KAEd10G,YAAa,+BACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,YAAas2F,IAE7Bx1G,KAAKjE,MAsBR,WACE,GAAI05G,EAEJA,GAAgB,SAAS5Y,EAAS99F,GAChC,GAAIqgB,EAsBJ,OArBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAIhC,MAHAtkD,GAAM0jF,MACN1jF,EAAM0jF,GAAGqiB,KAAO/lG,EAAM+lG,KACtB/lG,EAAM0jF,GAAGltF,KAAOwJ,EAAMxJ,KACfwJ,EAAM0jF,GAAGsiB,YAAc,WAC5B,GAAIhmG,EAAM0jF,GAAGqiB,KAAM,CACjB,GAAmC,UAA/B/lG,EAAM0jF,GAAGqiB,KAAK7zG,IAAI,SACpB,MAAO9C,GAAWuF,QAAQ,cAE5B,IAAmC,gBAA/BqL,EAAM0jF,GAAGqiB,KAAK7zG,IAAI,SACpB,MAAO9C,GAAWuF,QAAQ,oBAE5B,IAAmC,UAA/BqL,EAAM0jF,GAAGqiB,KAAK7zG,IAAI,SACpB,MAAO9C,GAAWuF,QAAQ,cAE5B,IAAmC,WAA/BqL,EAAM0jF,GAAGqiB,KAAK7zG,IAAI,SACpB,MAAO9C,GAAWuF,QAAQ,oBAMhCrE,YAAa,wBACb0P,OACE+lG,KAAQ,UACRvvG,KAAQ,KAEViZ,KAAMA,IAIVq2F,EAAct5F,SAAW,aAAc,cAEvCxd,QAAQjD,OAAO,aAAawjB,UAAU,SAAUu2F,IAE/Cz1G,KAAKjE,MAsBR,WACE,GAAI65G,EAEJA,GAAiB,WAGf,QAASA,GAAe95F,EAAoBnF,EAAUqmB,GACpDjhC,KAAK+f,mBAAqBA,EAC1B/f,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACVjhC,KAAK+f,mBAAmB1R,WAC3BrO,KAAK4a,SAASnY,KAAKzC,KAAKihC,QAAQt+B,QAAQ,aAI5C,MAXAk3G,GAAez5F,SAAW,uBAAwB,YAAa,cAWxDy5F,KAITj3G,QAAQjD,OAAO,aAAawE,WAAW,OAAQ01G,IAE9C51G,KAAKjE,MAsBR,WACE,GAAI85G,GAAatoG,EACf3O,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf0B,GAAUxR,KAAKD,MAAMyR,QAErBsoG,EAAc,SAAU1pG,GAKtB,QAAS0pG,GAAYhZ,EAAS1mF,EAAI0yF,GAChC9sG,KAAK8gG,QAAUA,EACf9gG,KAAKoa,GAAKA,EACVpa,KAAK8sG,gBAAkBA,EAgJzB,MAvJAjqG,GAAOi3G,EAAa1pG,GAEpB0pG,EAAY15F,SAAW,aAAc,cAAe,qBAQpD05F,EAAYlqG,UAAUmqG,mCAAqC,SAASC,EAAgBC,GAClF,GAAIC,GAA0BC,EAASC,EAAqCj8F,EAAYk8F,CA4DxF,OA3DAH,GAA2B,SAAU9xG,GACnC,MAAO,UAASuxG,EAAMW,GACpB,GAAIzsG,GAAKiM,EAAShT,CAUlB,OATAgT,GAAUmgG,EAAan0G,IAAIsQ,OAAOujG,EAAK7zG,IAAI,aAC3C+H,GACEiM,QAASA,EAAQhU,IAAI,QACrBtC,IAAKm2G,EAAK7zG,IAAI,QAEhBgB,EAAMsB,EAAM04F,QAAQn+F,QAAQ,WAAa23G,EAAU,UAAWzsG,GAC9D8rG,EAAOA,EAAK59F,IAAI,MAAOjV,GACvB6yG,EAAOA,EAAK59F,IAAI,UAAWjC,GAC3B6/F,EAAOA,EAAK59F,IAAI,QAASu+F,KAG1Bt6G,MACHo6G,EAAsC,SAASG,EAAQC,GAOrD,MANAD,GAASA,EAAO7sG,OAAO,SAASisG,GAC9B,MAAOM,GAAan0G,IAAIsQ,OAAOujG,EAAK7zG,IAAI,eAE1Cy0G,EAASA,EAAOj6G,IAAI,SAASq5G,GAC3B,MAAOO,GAAyBP,EAAMa,MAI1Cr8F,EAAa67F,EAAel0G,IAAI,cAC5BqY,EAAWrY,IAAI,WACjBq0G,EAAUC,EAAoCj8F,EAAWrY,IAAI,SAAU,SACvEqY,EAAaA,EAAWpC,IAAI,QAASo+F,IAEnCh8F,EAAWrY,IAAI,iBACjBq0G,EAAUC,EAAoCj8F,EAAWrY,IAAI,eAAgB,eAC7EqY,EAAaA,EAAWpC,IAAI,cAAeo+F,IAEzCh8F,EAAWrY,IAAI,WACjBq0G,EAAUC,EAAoCj8F,EAAWrY,IAAI,SAAU,SACvEqY,EAAaA,EAAWpC,IAAI,QAASo+F,IAEnCh8F,EAAWrY,IAAI,YACjBq0G,EAAUC,EAAoCj8F,EAAWrY,IAAI,UAAW,UACxEqY,EAAaA,EAAWpC,IAAI,SAAUo+F,IAExCE,EAAWL,EAAel0G,IAAI,YAC1Bu0G,EAASv0G,IAAI,WACfq0G,EAAUC,EAAoCC,EAASv0G,IAAI,SAAU,SACrEu0G,EAAWA,EAASt+F,IAAI,QAASo+F,IAE/BE,EAASv0G,IAAI,iBACfq0G,EAAUC,EAAoCC,EAASv0G,IAAI,eAAgB,eAC3Eu0G,EAAWA,EAASt+F,IAAI,cAAeo+F,IAErCE,EAASv0G,IAAI,WACfq0G,EAAUC,EAAoCC,EAASv0G,IAAI,SAAU,SACrEu0G,EAAWA,EAASt+F,IAAI,QAASo+F,IAE/BE,EAASv0G,IAAI,YACfq0G,EAAUC,EAAoCC,EAASv0G,IAAI,UAAW,UACtEu0G,EAAWA,EAASt+F,IAAI,SAAUo+F,IAEpCH,EAAiBA,EAAej+F,IAAI,aAAcoC,GAC3C67F,EAAiBA,EAAej+F,IAAI,WAAYs+F,IAGzDP,EAAYlqG,UAAU6qG,kBAAoB,SAASpiF,GACjD,GAAIqiF,GAAsBC,EAAuBC,EAAsBz8F,EAAY08F,EAA4BC,EAAcC,EAAeC,EAAcC,EAAYhB,EAAciB,EAAiBb,EAAUc,EAAsBC,EAAuBC,EAAsBC,EAA4BtB,CAkE9S,OAjEAC,GAAeh5F,UAAU24C,MACzBshD,EAAkBl7G,KAAK8sG,gBAAgByO,oBAAoBljF,GAAQl1B,KAAK,SAASkX,GAC/E,MAAO4/F,GAAeh5F,UAAUC,OAAO1P,EAAQ6I,EAAS5B,OAAQ,SAASmuC,GACvE,MAAOA,GAAEhtC,QAGbuE,EAAa8C,UAAU24C,MACvBkhD,GACEU,mBAAmB,EACnBh+F,YAAa6a,GAEf4iF,GACEp7C,WAAW,EACXriD,YAAa6a,GAEf2iF,GACEQ,mBAAmB,EACnBh+F,YAAa6a,GAEf0iF,GACES,mBAAmB,EACnBh+F,YAAa6a,GAEfqiF,EAAuB16G,KAAKoa,GAAGwE,MAAMooE,kBAAkB8zB,GAAc33G,KAAK,SAASyb,GACjF,MAAOT,GAAaA,EAAWpC,IAAI,QAAS6C,KAE9Ci8F,EAA6B76G,KAAKoa,GAAG6D,YAAY+oE,kBAAkBi0B,GAAY93G,KAAK,SAAS8a,GAC3F,MAAOE,GAAaA,EAAWpC,IAAI,cAAekC,KAEpD28F,EAAuB56G,KAAKoa,GAAGgd,MAAM4vD,kBAAkBg0B,GAAc73G,KAAK,SAASi0B,GACjF,MAAOjZ,GAAaA,EAAWpC,IAAI,QAASqb,KAE9CujF,EAAwB36G,KAAKoa,GAAGsiB,OAAOsqD,kBAAkB+zB,GAAe53G,KAAK,SAASu5B,GACpF,MAAOve,GAAaA,EAAWpC,IAAI,SAAU2gB,KAE/Co+E,GACEU,mBAAmB,EACnB7xE,SAAUtR,GAEZ4iF,GACEp7C,WAAW,EACXl2B,SAAUtR,GAEZ2iF,GACEQ,mBAAmB,EACnB7xE,SAAUtR,GAEZ0iF,GACES,mBAAmB,EACnB7xE,SAAUtR,GAEZgiF,EAAWp5F,UAAU24C,MACrBuhD,EAAuBn7G,KAAKoa,GAAGwE,MAAMooE,kBAAkB8zB,GAAc33G,KAAK,SAASyb,GACjF,MAAOy7F,GAAWA,EAASt+F,IAAI,QAAS6C,KAE1C08F,EAA6Bt7G,KAAKoa,GAAG6D,YAAY+oE,kBAAkBi0B,GAAY93G,KAAK,SAAS8a,GAC3F,MAAOo8F,GAAWA,EAASt+F,IAAI,cAAekC,KAEhDo9F,EAAuBr7G,KAAKoa,GAAGgd,MAAM4vD,kBAAkBg0B,GAAc73G,KAAK,SAASi0B,GACjF,MAAOijF,GAAWA,EAASt+F,IAAI,QAASqb,KAE1CgkF,EAAwBp7G,KAAKoa,GAAGsiB,OAAOsqD,kBAAkB+zB,GAAe53G,KAAK,SAASu5B,GACpF,MAAO29E,GAAWA,EAASt+F,IAAI,SAAU2gB,KAE3Cs9E,EAAiB/4F,UAAU24C,MACpB7rD,QAAQoM,KAAK+gG,EAAiBR,EAAsBS,EAAsBN,EAA4BS,EAA4BV,EAAsBS,EAAsBV,EAAuBS,IAAwBj4G,KAAK,SAAUiF,GACjP,MAAO,YAIL,MAHA4xG,GAAiBA,EAAej+F,IAAI,aAAcoC,GAClD67F,EAAiBA,EAAej+F,IAAI,WAAYs+F,GAChDL,EAAiB5xG,EAAM2xG,mCAAmCC,EAAgBC,KAG3Ej6G,QAGE85G,GAEN/5G,MAAM4Q,SAET/N,QAAQjD,OAAO,aAAaijB,QAAQ,gBAAiBk3F,IAEpD71G,KAAKjE,MAsBR,WACE,GAAIy7G,EAEJA,GAA2B,SAAS17F,GAClC,GAAIoD,GAAWE,CAYf,OAXAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAEhC,MADAtkD,GAAM0jF,MACCv3F,MAAMqR,wBAAwBwC,EAAM0jF,GAAI,WAAY,WACzD,MAAOv3E,GAAmB1F,SAASvU,IAAI,cAG3Cqd,GACEjf,YAAa,uCACb0P,SACAyP,KAAMA,IAKVo4F,EAAyBr7F,SAAW,wBAEpCxd,QAAQjD,OAAO,aAAawjB,UAAU,oBAAqBs4F,IAE1Dx3G,KAAKjE,MAsBR,WACE,GAAI07G,EAEJA,GAAsB,WAGpB,QAASA,GAAoBC,GAC3B37G,KAAK27G,YAAcA,EACnB37G,KAAKme,WAAa8C,UAAU24C,MAC5B55D,KAAKq6G,SAAWp5F,UAAU24C,MAwC5B,MA7CA8hD,GAAoBt7F,SAAW,iBAQ/Bs7F,EAAoB9rG,UAAUgsG,eAAiB,SAAS5B,GACtD,GAAIp7F,GAAO8d,EAAQtF,EAAO+lC,CAM1B,IALAv+C,EAAQo7F,EAAel0G,IAAI,cAAcA,IAAI,SAC7Cq3D,EAAc68C,EAAel0G,IAAI,cAAcA,IAAI,eACnDsxB,EAAQ4iF,EAAel0G,IAAI,cAAcA,IAAI,SAC7C42B,EAASs9E,EAAel0G,IAAI,cAAcA,IAAI,UAC9C9F,KAAKme,WAAag/C,EAAYluD,OAAOmoB,GAAOnoB,OAAOytB,GAAQztB,OAAO2P,GAC9D5e,KAAKme,WAAW1H,KAAO,EACzB,MAAOzW,MAAKme,WAAane,KAAKme,WAAWzE,OAAO,SAASmiG,GACvD,MAAOA,GAAK/1G,IAAI,mBACf0+C,WAIPk3D,EAAoB9rG,UAAUksG,aAAe,SAAS9B,GACpD,GAAIp7F,GAAO8d,EAAQtF,EAAO+lC,CAM1B,IALAv+C,EAAQo7F,EAAel0G,IAAI,YAAYA,IAAI,SAC3Cq3D,EAAc68C,EAAel0G,IAAI,YAAYA,IAAI,eACjDsxB,EAAQ4iF,EAAel0G,IAAI,YAAYA,IAAI,SAC3C42B,EAASs9E,EAAel0G,IAAI,YAAYA,IAAI,UAC5C9F,KAAKq6G,SAAWl9C,EAAYluD,OAAOmoB,GAAOnoB,OAAOytB,GAAQztB,OAAO2P,GAC5D5e,KAAKq6G,SAAS5jG,KAAO,EACvB,MAAOzW,MAAKq6G,SAAWr6G,KAAKq6G,SAAS3gG,OAAO,SAASmiG,GACnD,MAAOA,GAAK/1G,IAAI,mBACf0+C,WAIPk3D,EAAoB9rG,UAAU6qG,kBAAoB,SAASpiF,GACzD,MAAOr4B,MAAK27G,YAAYlB,kBAAkBpiF,GAAQl1B,KAAK,SAAUiF,GAC/D,MAAO,UAAS4xG,GAEd,MADA5xG,GAAMwzG,eAAe5B,GACd5xG,EAAM0zG,aAAa9B,KAE3Bh6G,QAGE07G,KAIT94G,QAAQjD,OAAO,aAAawE,WAAW,YAAau3G,IAEnDz3G,KAAKjE,MAsBR,WACE,GAAI+7G,EAEJA,GAAqB,SAASJ,EAAa57F,GACzC,GAAIsD,EASJ,OARAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAI3rD,GAAM8rB,CAEV,IADA9rB,EAAOwT,EAAmB1R,UAGxB,MADAgqB,GAAS9rB,EAAKzG,IAAI,MACXoyD,EAAKuiD,kBAAkBpiF,KAIhCl0B,WAAY,YACZC,aAAc,KACdF,YAAa,kCACb0P,SACAyP,KAAMA,IAIV04F,EAAmB37F,SAAW,gBAAiB,wBAE/Cxd,QAAQjD,OAAO,aAAawjB,UAAU,cAAe44F,IAEpD93G,KAAKjE,MAsBR,WACE,GAAIg8G,GAA6Bj8G,CAEjCA,GAAQC,KAAKD,MAEbi8G,EAA8B,WAG5B,QAASA,GAA4B14G,EAAgB8W,EAAI/N,EAAiB8hC,EAASld,GACjFjxB,KAAKsD,eAAiBA,EACtBtD,KAAKoa,GAAKA,EACVpa,KAAKqM,gBAAkBA,EACvBrM,KAAKmuC,QAAUA,EACfnuC,KAAKixB,UAAYA,EACjBjxB,KAAK8Z,QAAU9Z,KAAKsD,eAAewW,QACnC9Z,KAAKsZ,MAAQtZ,KAAKsD,eAAewW,QAAQhU,IAAI,SAC7C9F,KAAKi8G,eACLj8G,KAAKuiC,SAAU,EACfviC,KAAKk8G,kBAAoB,EA0D3B,MAtEAF,GAA4B57F,SAAW,mBAAoB,eAAgB,kBAAmB,aAAc,cAe5G47F,EAA4BpsG,UAAUusG,mBAAqB,WACzD,MAAO7kG,QAAOC,eAAevX,KAAM,qBACjC8F,IAAK,SAAUsC,GACb,MAAO,YACL,GAAIg0G,EAIJ,OAHAA,GAAU/7G,EAAEqN,OAAO4J,OAAOg6B,OAAOlpC,EAAM6zG,aAAc,SAASz/F,GAC5D,MAAOA,KAEF4/F,EAAQhvG,SAAWhF,EAAMi0G,iBAAiB5lG,KAAOrO,EAAMk0G,eAAe7lG,OAE9EzW,SAIPg8G,EAA4BpsG,UAAU2sG,uBAAyB,WAC7D,GAAIC,EAOJ,OAN4C,QAAxCx8G,KAAK8Z,QAAQhU,IAAI,mBACnB9F,KAAKy8G,aAAez8G,KAAKk8G,mBAEzBM,EAAsBv7G,KAAKgK,IAAIjL,KAAK8Z,QAAQhU,IAAI,mBAAqB9F,KAAK8Z,QAAQhU,IAAI,qBAAsB,GAC5G9F,KAAKy8G,aAAex7G,KAAK+J,IAAIwxG,EAAqBx8G,KAAKk8G,oBAElDl8G,KAAK08G,mBAAqB18G,KAAKy8G,aAAez8G,KAAKk8G,mBAG5DF,EAA4BpsG,UAAU+sG,YAAc,WAWlD,MAVA38G,MAAK48G,sBACLv8G,EAAEkY,QAAQvY,KAAKi8G,YAAa,SAAU7zG,GACpC,MAAO,UAASsH,EAAKX,GACnB,MAAO3G,GAAMw0G,mBAAmBr1G,MAC9Bs1G,QAAWntG,EACX2U,SAAYtV,MAGf/O,OACHA,KAAKuiC,SAAU,EACRviC,KAAKoa,GAAGsf,YAAY6tD,sBAAsBvnF,KAAK8Z,QAAQhU,IAAI,MAAO9F,KAAK48G,mBAAoB58G,KAAK88G,uBAAuB35G,KAAK,SAAUiF,GAC3I,MAAO,UAAS9B,GACd,MAAO8B,GAAM9E,eAAeusE,eAAe1sE,KAAK,WAI9C,MAHAiF,GAAMm6B,SAAU,EAChBn6B,EAAMiE,gBAAgBzF,WACtBwB,EAAM6oB,UAAUvK,WAAW,2BACpBte,EAAM+lC,QAAQ3lC,OAAO,eAG/BxI,OAAO,SAAS,SAAUoI,GAC3B,MAAO,UAAS9B,GAEd,GADA8B,EAAMm6B,SAAU,EACZj8B,EAASyB,KAAK+c,eAChB,MAAO1c,GAAM+lC,QAAQ3lC,OAAO,QAASlC,EAASyB,KAAK+c,kBAGtD9kB,QAGEg8G,KAITp5G,QAAQjD,OAAO,cAAcwE,WAAW,wBAAyB63G,IAEhE/3G,KAAKjE,MAsBR,WACE,GAAI+8G,EAEJA,GAA6B,WAC3B,GAAI15F,EAKJ,OAJAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAEhC,MADAA,GAAKikD,qBACEjkD,EAAKqkD,2BAGZ3oG,SACA1P,YAAa,8DACbC,WAAY,wBACZC,aAAc,KACdqpE,kBACE4uC,iBAAkB,IAClBC,eAAgB,IAChBU,qBAAsB,IACtBC,uBAAwB,IACxBC,qBAAsB,IACtBC,cAAe,KAEjB95F,KAAMA,IAIVzgB,QAAQjD,OAAO,cAAcwjB,UAAU,sBAAuB45F,IAE7D94G,KAAKjE,MAsBR,WACE,GAAIo9G,GAAsBr9G,CAE1BA,GAAQC,KAAKD,MAEbq9G,EAAuB,WAGrB,QAASA,GAAqBC,EAAat9F,EAAoBzc,GAC7DtD,KAAKq9G,YAAcA,EACnBr9G,KAAK+f,mBAAqBA,EAC1B/f,KAAKsD,eAAiBA,EACtBtD,KAAKq8G,iBAAmBp7F,UAAU0yB,OAClC3zC,KAAKs8G,eAAiBr7F,UAAU0yB,OAChC3zC,KAAKs9G,oBAAqB,EA+D5B,MAvEAF,GAAqBh9F,SAAW,gBAAiB,uBAAwB,oBAWzEg9F,EAAqBxtG,UAAU2tG,aAAe,WAC5C,GAAIC,GAAkBnlF,CAGtB,OAFAA,GAASr4B,KAAK+f,mBAAmB1R,UAAUvI,IAAI,MAC/C03G,EAAmBx9G,KAAKsD,eAAewW,QAAQhU,IAAI,MAC5C9F,KAAKq9G,YAAYI,YAAYplF,EAAQmlF,GAAkBr6G,KAAK,SAAUiF,GAC3E,MAAO,UAASqiF,GACd,MAAOriF,GAAMqiF,SAAWA,IAEzBzqF,QAGLo9G,EAAqBxtG,UAAU8tG,gBAAkB,SAASC,GACxD,MAAO39G,MAAKyqF,SAAWzqF,KAAKyqF,SAAS/8E,OAAO,SAAUtF,GACpD,MAAO,UAASw1G,GACd,MAAOA,GAAQ93G,IAAI,QAAU63G,EAAQ73G,IAAI,QAE1C9F,QAGLo9G,EAAqBxtG,UAAUiuG,gBAAkB,SAASD,GAGxD,MAFA59G,MAAKq8G,iBAAmBr8G,KAAKq8G,iBAAiB90G,KAAKq2G,GACnD59G,KAAK09G,gBAAgBE,GACd59G,KAAKs9G,oBAAqB,GAGnCF,EAAqBxtG,UAAUkuG,cAAgB,SAASH,GAQtD,MAPA39G,MAAKq8G,iBAAmBr8G,KAAKq8G,iBAAiB3uG,OAAO,SAAUtF,GAC7D,MAAO,UAASw1G,GACd,MAAOA,GAAQ93G,IAAI,QAAU63G,EAAQ/jG,KAEtC5Z,OACH29G,EAAU18F,UAAUC,OAAOy8F,GAC3B39G,KAAKyqF,SAAWzqF,KAAKyqF,SAASljF,KAAKo2G,GAC5B39G,KAAK+9G,qBAGdX,EAAqBxtG,UAAUouG,YAAc,SAAS3zG,GACpD,GAAI4zG,EAKJ,OAJAA,GAAYh9F,UAAU24C,KACpBvvD,MAASA,IAEXrK,KAAKs8G,eAAiBt8G,KAAKs8G,eAAe/0G,KAAK02G,GACxCj+G,KAAKs9G,oBAAqB,GAGnCF,EAAqBxtG,UAAUsuG,YAAc,SAASP,GAMpD,MALA39G,MAAKs8G,eAAiBt8G,KAAKs8G,eAAe5uG,OAAO,SAAUtF,GACzD,MAAO,UAASiC,GACd,MAAOA,GAAMvE,IAAI,WAAa63G,EAAQtzG,QAEvCrK,OACIA,KAAK+9G,qBAGdX,EAAqBxtG,UAAUmuG,kBAAoB,WACjD,GAAI/9G,KAAKs8G,eAAe7lG,KAAOzW,KAAKq8G,iBAAiB5lG,OAAS,EAC5D,MAAOzW,MAAKs9G,oBAAqB,GAI9BF,KAITx6G,QAAQjD,OAAO,cAAcwE,WAAW,iBAAkBi5G,IAEzDn5G,KAAKjE,MAsBR,WACE,GAAIm+G,EAEJA,GAA8B,SAAS9xG,GACrC,GAAIgX,EAKJ,OAJAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAEhC,MADA7rD,GAAgBuoB,KAAK9hB,GACdolD,EAAKqlD,iBAGZ3pG,SACA1P,YAAa,2CACbC,WAAY,iBACZC,aAAc,KACdif,KAAMA,IAIVzgB,QAAQjD,OAAO,cAAcwjB,UAAU,kBAAmB,kBAAmBg7F,KAE5El6G,KAAKjE,MAsBR,WACE,GAAIo+G,GAA6Br+G,CAEjCA,GAAQC,KAAKD,MAEbq+G,EAA8B,WAG5B,QAASA,KACPp+G,KAAKq+G,aAAe,GAqBtB,MAxBAD,GAA4Bh+F,WAM5Bg+F,EAA4BxuG,UAAU6B,QAAU,WAC9C,MAAO1R,GAAM0R,QAAQzR,KAAKq+G,eAG5BD,EAA4BxuG,UAAU0uG,eAAiB,WACrD,MAAOt+G,MAAKu+G,iBAAmBv+G,KAAKyqF,SAAS/8E,OAAO,SAAUtF,GAC5D,MAAO,UAASw1G,GACd,MAAOA,GAAQ93G,IAAI,qBAAqB2O,cAAcwF,SAAS7R,EAAMi2G,aAAa5pG,gBAAkBmpG,EAAQ93G,IAAI,YAAY2O,cAAcwF,SAAS7R,EAAMi2G,aAAa5pG,iBAEvKzU,QAGLo+G,EAA4BxuG,UAAU4uG,WAAa,SAASZ,GAC1D,MAAO59G,MAAKy+G,mBACVb,QAAWA,KAIRQ,KAITx7G,QAAQjD,OAAO,cAAcwE,WAAW,wBAAyBi6G,IAEhEn6G,KAAKjE,MAsBR,WACE,GAAI0+G,EAEJA,GAA6B,SAASryG,GACpC,OACEuH,SACA1P,YAAa,8DACbC,WAAY,wBACZC,aAAc,KACdqpE,kBACEgd,SAAU,IACV8zB,iBAAkB,YAClBE,kBAAmB,IACnBE,cAAe,OAKrB/7G,QAAQjD,OAAO,cAAcwjB,UAAU,uBAAwB,kBAAmBu7F,KAEjFz6G,KAAKjE,MAsBR,WACE,GAAI4+G,EAEJA,GAA+B,SAAS7+F,EAAoB+sF,GAC1D,GAAI3pF,GAAWE,CAef,OAdAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAKhC,MAJAtkD,GAAM0jF,MACNv3F,MAAMqR,wBAAwBwC,EAAM0jF,GAAI,WAAY,WAClD,MAAOv3E,GAAmB1F,SAASvU,IAAI,aAElC8N,EAAM0jF,GAAGunB,WAAa,WAC3B,MAAO/R,GAAgB+R,eAG3B17F,GACEjf,YAAa,kEACb0P,SACAyP,KAAMA,IAKVu7F,EAA6Bx+F,SAAW,uBAAwB,qBAEhExd,QAAQjD,OAAO,sBAAsBwjB,UAAU,wBAAyBy7F,IAEvE36G,KAAKjE,MAsBR,WACE,GAAI8+G,EAEJA,GAAwB,SAASC,EAAa35C,EAAeu4B,EAAiBqhB,EAAgB3qF,EAAiBH,GAC7G,GAAI/Q,GAAWE,CAwBf,OAvBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAchC,MAbAtkD,GAAM0jF,MACN1jF,EAAM0jF,GAAG2nB,kBAAoB75C,EAAct/D,IAAI,mBAC/C/F,MAAMqR,wBAAwBwC,EAAM0jF,GAAI,OAAQ,WAC9C,MAAOynB,GAAY/9F,WAErBpN,EAAM0jF,GAAGp1E,OAAS,WAGhB,MAFA68F,GAAY78F,SACZy7E,EAAgB72F,IAAIk4G,EAAer8G,QAAQ,aACpCg7F,EAAgBn3F,YAEzBoN,EAAM0jF,GAAG0e,aAAe,WACtB,MAAO3hF,GAAgB2hF,gBAElBpiG,EAAM0jF,GAAG3pF,oBAAsBtN,EAAEqN,OAAOwmB,EAAWvmB,qBACxDuxG,UAAU,KAGd/7F,GACEjf,YAAa,kDACb0P,SACAyP,KAAMA,IAKVy7F,EAAsB1+F,SAAW,UAAW,YAAa,cAAe,aAAc,oBAAqB,cAE3Gxd,QAAQjD,OAAO,sBAAsBwjB,UAAU,iBAAkB27F,IAEhE76G,KAAKjE,MAsBR,WACE,GAAIm/G,EAEJA,GAAyB,SAASp/F,EAAoB3T,EAAsBuxF,EAAiBqhB,EAAgBt4G,GAC3G,GAAIyc,GAAWE,CAkCf,OAjCAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAoBhC,MAnBAtkD,GAAM0jF,MACNv3F,MAAMqR,wBAAwBwC,EAAM0jF,GAAI,WAAY,WAClD,MAAOv3E,GAAmB1F,SAASvU,IAAI,aAEzC/F,MAAMqR,wBAAwBwC,EAAM0jF,GAAI,kBAAmB,WACzD,MAAOv3E,GAAmB3R,oBAE5BrO,MAAMqR,wBAAwBwC,EAAM0jF,GAAI,kBAAmB,WACzD,MAAOlrF,GAAqBgzG,oBAE9BxrG,EAAM0jF,GAAGt0E,sBAAwBtc,EAAOZ,IAAI,yBAC5C8N,EAAM0jF,GAAGr1E,MAAQ,WACf,GAAI1b,EAGJ,OAFAA,GAAU0c,mBAAmB06E,EAAgB72F,OAC7C62F,EAAgB72F,IAAIk4G,EAAer8G,QAAQ,UACpCg7F,EAAgBn3F,QACrBU,KAAMX,KAGHqN,EAAMlH,IAAI,sBAAuB,WACtC,MAA+B,MAA3BixF,EAAgBl7F,OACXmR,EAAM0jF,GAAG5a,QAAS,EAElB9oE,EAAM0jF,GAAG5a,QAAS,KAI/Bv5D,GACEjf,YAAa,qCACb0P,SACAyP,KAAMA,IAKV87F,EAAuB/+F,SAAW,uBAAwB,yBAA0B,cAAe,aAAc,aAEjHxd,QAAQjD,OAAO,sBAAsBwjB,UAAU,kBAAmBg8F,IAEjEl7G,KAAKjE,MAsBR,WACE,GAAIq/G,GACFx8G,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfuvG,GAAuB,SAAUjvG,GAG/B,QAASivG,KACPr/G,KAAK8E,gBAeP,MAlBAjC,GAAOw8G,EAAsBjvG,GAM7BivG,EAAqBzvG,UAAUd,aAAe,WAC5C,MAAO9O,MAAKs/G,eAAgB,GAG9BD,EAAqBzvG,UAAU9K,cAAgB,WAC7C,MAAO9E,MAAKs/G,eAAgB,GAG9BD,EAAqBzvG,UAAUwvG,gBAAkB,WAC/C,MAAOp/G,MAAKs/G,eAGPD,GAENt/G,MAAM4Q,SAET/N,QAAQjD,OAAO,sBAAsBijB,QAAQ,yBAA0By8F,IAEtEp7G,KAAKjE,MAsBR,WACE,GAAIu/G,EAEJA,GAAuB,WAGrB,QAASA,GAAqBlC,GAC5Br9G,KAAKq9G,YAAcA,EACnBr9G,KAAKw/G,YAWP,MAfAD,GAAqBn/F,SAAW,iBAOhCm/F,EAAqB3vG,UAAU4vG,UAAY,WACzC,MAAOx/G,MAAKq9G,YAAYoC,SAASz/G,KAAKuM,KAAKzG,IAAI,OAAO3C,KAAK,SAAUiF,GACnE,MAAO,UAASk7C,GACd,MAAOl7C,GAAMk7C,MAAQA,IAEtBtjD,QAGEu/G,KAIT38G,QAAQjD,OAAO,gBAAgBwE,WAAW,aAAco7G,IAEvDt7G,KAAKjE,MAsBR,WACE,GAAI0/G,EAEJA,GAAsB,WACpB,OACEx7G,YAAa,uCACbC,WAAY,aACZC,aAAc,KACdwP,OACErH,KAAM,QACNo9D,cAAe,kBAEjB8D,kBAAkB,IAItB7qE,QAAQjD,OAAO,gBAAgBwjB,UAAU,eAAgBu8F,IAExDz7G,KAAKjE,MAsBR,WACE,GAAI2/G,EAEJA,GAA4B,WAG1B,QAASA,GAA0BtC,EAAat9F,GAC9C/f,KAAKq9G,YAAcA,EACnBr9G,KAAK+f,mBAAqBA,EAC1B/f,KAAKqoE,YAAcroE,KAAK+f,mBAAmB1R,UAC3CrO,KAAK2pE,eAAgB,EACjB3pE,KAAKqoE,aAAeroE,KAAKqoE,YAAYviE,IAAI,QAAU9F,KAAKuM,KAAKzG,IAAI,QACnE9F,KAAK2pE,eAAgB,GAYzB,MApBAg2C,GAA0Bv/F,SAAW,gBAAiB,wBAYtDu/F,EAA0B/vG,UAAUgwG,aAAe,WACjD,MAAO5/G,MAAKq9G,YAAYI,YAAYz9G,KAAKuM,KAAKzG,IAAI,OAAO3C,KAAK,SAAUiF,GACtE,MAAO,UAASqiF,GACd,MAAOriF,GAAMqiF,SAAWA,IAEzBzqF,QAGE2/G,KAIT/8G,QAAQjD,OAAO,gBAAgBwE,WAAW,kBAAmBw7G,IAE5D17G,KAAKjE,MAsBR,WACE,GAAI6/G,EAEJA,GAA2B,WACzB,GAAIx8F,EAIJ,OAHAA,GAAO,SAASzP,EAAO2b,EAAKhB,EAAO2pC,GACjC,MAAOA,GAAK0nD,iBAGZ17G,YAAa,iDACb0P,OACErH,KAAM,KAERnI,aAAc,KACdD,WAAY,kBACZkf,KAAMA,EACNoqD,kBAAkB,IAItB7qE,QAAQjD,OAAO,gBAAgBwjB,UAAU,oBAAqB08F,IAE7D57G,KAAKjE,MAsBR,WACE,GAAI8/G,EAEJA,GAAmB,WACjB,GAAIz8F,GAAMnf,CAaV,OAZAmf,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOtkD,GAAM0jF,IACX5kF,KAAMkB,EAAMlB,OAGhBxO,EAAc,SAAS4O,EAAIyb,GACzB,MAAuB,YAAnBA,EAAMwxF,SACD,0CAEA,2CAITnsG,OACElB,KAAQ,cAEV2Q,KAAMA,EACNnf,YAAaA,IAIjBtB,QAAQjD,OAAO,gBAAgBwjB,UAAU,YAAa28F,IAErD77G,KAAKjE,MAsBR,WACE,GAAIggH,GAAoBC,EAAwBC,EAAwBC,EAA0BhvG,EAChGtO,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfqB,GAAkBnR,KAAKD,MAAMoR,gBAE7B6uG,EAAqB,WACnB,QAASA,KACPhgH,KAAKogH,QA2HP,MAxHAJ,GAAmBpwG,UAAUwwG,MAAQ,WAUnC,MATApgH,MAAKqgH,mBAAoB,EACzBrgH,KAAKsgH,wBAAyB,EAC9BtgH,KAAKugH,qBAAsB,EAC3BvgH,KAAKwgH,2BAA4B,EACjCxgH,KAAKygH,qBAAsB,EAC3BzgH,KAAK0gH,sBAAuB,EAC5B1gH,KAAK2gH,yBAA0B,EAC/B3gH,KAAK4gH,aACL5gH,KAAKyQ,EAAI,KACFzQ,KAAKoK,KAAO,MAGrB41G,EAAmBpwG,UAAUgxG,WAAa,WAGxC,MAFA5gH,MAAKuhG,MAAQtgF,UAAU0yB,OACvB3zC,KAAK6gH,gBAAiB,EACf7gH,KAAKsxG,MAAQ,GAGtB0O,EAAmBpwG,UAAUkxG,sBAAwB,WACnD,MAAO9gH,MAAK+gH,WAAY,GAG1Bf,EAAmBpwG,UAAUoxG,uBAAyB,WACpD,MAAOhhH,MAAK+gH,WAAY,GAG1Bf,EAAmBpwG,UAAUqxG,cAAgB,WAC3C,MAAOjhH,MAAK6gH,gBAAiB,GAG/Bb,EAAmBpwG,UAAUsxG,eAAiB,WAC5C,MAAOlhH,MAAK6gH,gBAAiB,GAG/Bb,EAAmBpwG,UAAUuxG,qBAAuB,SAASC,GAC3D,MAAIA,IACFphH,KAAKsxG,OAAS,EACPtxG,KAAKihH,iBAELjhH,KAAKkhH,kBAIhBlB,EAAmBpwG,UAAUyxG,qBAAuB,WAClD,MAAOrhH,MAAKshH,aAAmC,IAApBthH,KAAKuhG,MAAM9qF,MAGxCupG,EAAmBpwG,UAAU2xG,UAAY,WAGvC,MAFAvhH,MAAK8gH,wBACL9gH,KAAKkhH,iBACElhH,KAAKwhH,UAAUxhH,KAAKuM,KAAKzG,IAAI,MAAO9F,KAAKsxG,MAAOtxG,KAAKoK,KAAMpK,KAAKyQ,GAAGtN,KAAK,SAAUiF,GACvF,MAAO,UAAS9B,GAKd,MAJA8B,GAAMm5F,MAAQn5F,EAAMm5F,MAAMtyF,OAAO3I,EAASR,IAAI,SAC9CsC,EAAM+4G,qBAAqB76G,EAASR,IAAI,SACxCsC,EAAMi5G,uBACNj5G,EAAM44G,yBACC54G,EAAMm5F,QAEdvhG,OAAO,SAAS,SAAUoI,GAC3B,MAAO,YAEL,MADAA,GAAM44G,yBACC54G,EAAMm5F,QAEdvhG,QAGLggH,EAAmBpwG,UAAU6xG,kBAAoBtwG,EAAgB,IAAK,WAEpE,MADAnR,MAAK4gH,aACE5gH,KAAKuhH,cAGdvB,EAAmBpwG,UAAU8xG,QAAU,WACrC,GAAkB,OAAd1hH,KAAKoK,KAGP,MAFApK,MAAKoK,KAAO,KACZpK,KAAK4gH,aACE5gH,KAAKuhH,aAIhBvB,EAAmBpwG,UAAU+xG,iBAAmB,WAC9C,GAAkB,YAAd3hH,KAAKoK,KAGP,MAFApK,MAAKoK,KAAO,UACZpK,KAAK4gH,aACE5gH,KAAKuhH,aAIhBvB,EAAmBpwG,UAAUgyG,cAAgB,WAC3C,GAAkB,SAAd5hH,KAAKoK,KAGP,MAFApK,MAAKoK,KAAO,OACZpK,KAAK4gH,aACE5gH,KAAKuhH,aAIhBvB,EAAmBpwG,UAAUiyG,oBAAsB,WACjD,GAAkB,cAAd7hH,KAAKoK,KAGP,MAFApK,MAAKoK,KAAO,YACZpK,KAAK4gH,aACE5gH,KAAKuhH,aAIhBvB,EAAmBpwG,UAAUkyG,cAAgB,WAC3C,GAAkB,SAAd9hH,KAAKoK,KAGP,MAFApK,MAAKoK,KAAO,OACZpK,KAAK4gH,aACE5gH,KAAKuhH,aAIhBvB,EAAmBpwG,UAAUmyG,eAAiB,WAC5C,GAAkB,UAAd/hH,KAAKoK,KAGP,MAFApK,MAAKoK,KAAO,QACZpK,KAAK4gH,aACE5gH,KAAKuhH,aAITvB,KAITC,EAAyB,SAAU7vG,GAKjC,QAAS6vG,GAAuB5C,GAC9Br9G,KAAKq9G,YAAcA,EACnB4C,EAAuBpwG,UAAUJ,YAAYxL,KAAKjE,MAClDA,KAAKgiH,QAAU,QACfhiH,KAAKqgH,mBAAoB,EACzBrgH,KAAKsgH,wBAAyB,EAC9BtgH,KAAKugH,qBAAsB,EAC3BvgH,KAAKwgH,2BAA4B,EACjCxgH,KAAKygH,qBAAsB,EAC3BzgH,KAAK0gH,sBAAuB,EAC5B1gH,KAAK2gH,yBAA0B,EAC/B3gH,KAAKwhH,UAAYxhH,KAAKq9G,YAAY4E,SAGpC,MAlBAp/G,GAAOo9G,EAAwB7vG,GAE/B6vG,EAAuB7/F,SAAW,iBAgB3B6/F,GAEND,GAEHp9G,QAAQjD,OAAO,gBAAgBwE,WAAW,eAAgB87G,GAE1DC,EAAyB,SAAU9vG,GAKjC,QAAS8vG,GAAuB7C,GAC9Br9G,KAAKq9G,YAAcA,EACnB6C,EAAuBrwG,UAAUJ,YAAYxL,KAAKjE,MAClDA,KAAKgiH,QAAU,UACfhiH,KAAKqgH,mBAAoB,EACzBrgH,KAAKsgH,wBAAyB,EAC9BtgH,KAAKugH,qBAAsB,EAC3BvgH,KAAKwgH,2BAA4B,EACjCxgH,KAAKygH,qBAAsB,EAC3BzgH,KAAK0gH,sBAAuB,EAC5B1gH,KAAK2gH,yBAA0B,EAC/B3gH,KAAKwhH,UAAYxhH,KAAKq9G,YAAY6E,SAGpC,MAlBAr/G,GAAOq9G,EAAwB9vG,GAE/B8vG,EAAuB9/F,SAAW,iBAgB3B8/F,GAENF,GAEHp9G,QAAQjD,OAAO,gBAAgBwE,WAAW,eAAgB+7G,GAE1DC,EAA2B,SAAU/vG,GAKnC,QAAS+vG,GAAyB9C,GAChCr9G,KAAKq9G,YAAcA,EACnB8C,EAAyBtwG,UAAUJ,YAAYxL,KAAKjE,MACpDA,KAAKgiH,QAAU,WACfhiH,KAAKwhH,UAAYxhH,KAAKq9G,YAAY8E,WAGpC,MAXAt/G,GAAOs9G,EAA0B/vG,GAEjC+vG,EAAyB//F,SAAW,iBAS7B+/F,GAENH,GAEHp9G,QAAQjD,OAAO,gBAAgBwE,WAAW,iBAAkBg8G,IAE3Dl8G,KAAKjE,MAsBR,WACE,GAAIoiH,GAAuBC,EAAuBC,EAAyBnuG,CAE3EA,IACEP,SACA65D,kBACElhE,KAAM,IACNnC,KAAM,IACNqG,EAAG,IACHowG,eAAgB,IAChBE,UAAW,IACXO,aAAc,KAEhBn9G,WAAY,KACZC,aAAc,KACdF,YAAa,0CAGfk+G,EAAwB,WACtB,MAAO/hH,GAAEwC,UAAWsR,GAClBhQ,WAAY,kBAIhBvB,QAAQjD,OAAO,gBAAgBwjB,UAAU,iBAAkBi/F,GAE3DC,EAAwB,WACtB,MAAOhiH,GAAEwC,UAAWsR,GAClBhQ,WAAY,kBAIhBvB,QAAQjD,OAAO,gBAAgBwjB,UAAU,iBAAkBk/F,GAE3DC,EAA0B,WACxB,MAAOjiH,GAAEwC,UAAWsR,GAClBhQ,WAAY,oBAIhBvB,QAAQjD,OAAO,gBAAgBwjB,UAAU,mBAAoBm/F,IAE5Dr+G,KAAKjE,MAsBR,WACE,GAAIuiH,EAEJA,GAAe,WASb,QAASA,GAAaxjG,GACpB,GAAIyjG,EACJxiH,MAAK+e,UAAYA,EACjByjG,EAAUvhH,KAAKC,MAAMD,KAAKE,SAAWnB,KAAKyiH,MAAMr1G,QAAU,EAC1DpN,KAAK0iH,KAAO1iH,KAAKyiH,MAAMD,EAAU,GACjCxiH,KAAK0iH,KAAKC,SAAW3iH,KAAK0iH,KAAKC,UAAY,aAC3C3iH,KAAK0iH,KAAKp+G,MAAQtE,KAAK+e,UAAUxW,QAAQ,aAAei6G,EAAU,UAClExiH,KAAK0iH,KAAK7tG,KAAO7U,KAAK+e,UAAUxW,QAAQ,aAAei6G,EAAU,SAGnE,MAlBAD,GAAa3yG,UAAU6yG,QAEnB37G,IAAK,gEAELA,IAAK,6DAcFy7G,KAITA,EAAaniG,SAAW,cAExBxd,QAAQjD,OAAO,gBAAgBwE,WAAW,eAAgBo+G,IAEzDt+G,KAAKjE,MAsBR,WACE,GAAIuiH,EAEJA,GAAe,SAASv/G,GACtB,OACE4Q,SACAzP,WAAY,eACZC,aAAc,KACdF,YAAa,6CAIjBq+G,EAAaniG,SAAW,cAExBxd,QAAQjD,OAAO,gBAAgBwjB,UAAU,iBAAkBo/F,IAE1Dt+G,KAAKjE,MAsBR,WACE,GAAI4iH,EAEJA,GAA4B,WAG1B,QAASA,GAA0B9V,EAAiBuQ,GAClDr9G,KAAK8sG,gBAAkBA,EACvB9sG,KAAKq9G,YAAcA,EAerB,MAnBAuF,GAA0BxiG,SAAW,oBAAqB,iBAO1DwiG,EAA0BhzG,UAAU65D,aAAe,WACjD,MAAOzpE,MAAK8sG,gBAAgByO,oBAAoBv7G,KAAKuM,KAAKzG,IAAI,OAAO3C,KAAK,SAAUiF,GAClF,MAAO,UAASiS,GACd,MAAOjS,GAAMi1G,YAAYwF,6BAA6Bz6G,EAAMmE,KAAKzG,IAAI,MAAOuU,KAE7Era,OAAOmD,KAAK,SAAUiF,GACvB,MAAO,UAASiS,GACd,MAAOjS,GAAMiS,SAAWA,IAEzBra,QAGE4iH,KAIThgH,QAAQjD,OAAO,gBAAgBwE,WAAW,kBAAmBy+G,IAE5D3+G,KAAKjE,MAsBR,WACE,GAAI8iH,EAEJA,GAA2B,WACzB,GAAIz/F,EAIJ,OAHAA,GAAO,SAASzP,EAAO2b,EAAK1b,EAAMqkD,GAChC,MAAOA,GAAKuR,iBAGZvlE,YAAa,iDACb0P,OACErH,KAAM,KAER8W,KAAMA,EACNoqD,kBAAkB,EAClBrpE,aAAc,KACdD,WAAY,oBAIhBvB,QAAQjD,OAAO,gBAAgBwjB,UAAU,oBAAqB2/F,IAE7D7+G,KAAKjE,MAsBR,WACE,GAAI+iH,EAEJA,GAAsB,WACpB,GAAI1/F,EAeJ,OAdAA,GAAO,SAASzP,EAAO3L,EAASsmB,EAAO2pC,EAAMznC,GAU3C,GATA7c,EAAMovG,OACNz0F,EAAM9B,SAAS,eAAgB,SAASlY,GACtC,MAAOX,GAAMovG,IAAIzuG,KAAOA,IAE1Bga,EAAM9B,SAAS,WAAY,SAASnoB,GAClC,MAAOsP,GAAMovG,IAAI1+G,MAAQA,IAE3BsP,EAAMovG,IAAIr2E,KAAOpe,EAAM00F,QACvBrvG,EAAMovG,IAAItmC,SAAWnuD,EAAM20F,UACvBtvG,EAAMI,MAAMua,EAAM40F,gBAAiB,EACrC,MAAOjrD,GAAKkrD,OAAOxvG,EAAMovG,OAI3B9+G,YAAa,uCACb0P,SACA4iB,QAAS,iBACTnT,KAAMA,EACNoN,YAAY,IAIhB7tB,QAAQjD,OAAO,gBAAgBwjB,UAAU,eAAgB4/F,IAExD9+G,KAAKjE,MAsBR,WACE,GAAIqjH,EAEJA,GAAwB,WACtB,QAASA,KACPrjH,KAAKsjH,QAcP,MAXAD,GAAsBzzG,UAAUwzG,OAAS,SAASJ,GAChD,MAAOhjH,MAAKsjH,KAAK/7G,KAAKy7G,IAGxBK,EAAsBzzG,UAAU2zG,UAAY,SAASP,GAInD,MAHA3iH,GAAEC,IAAIN,KAAKsjH,KAAM,SAASN,GACxB,MAAOA,GAAItmC,QAAS,IAEfsmC,EAAItmC,QAAS,GAGf2mC,KAITzgH,QAAQjD,OAAO,gBAAgBwE,WAAW,cAAek/G,IAExDp/G,KAAKjE,MAsBR,WACE,GAAIwjH,EAEJA,GAAuB,WACrB,OACE5vG,SACAzP,WAAY,cACZC,aAAc,KACdF,YAAa,yCACbusB,YAAY,IAIhB7tB,QAAQjD,OAAO,gBAAgBwjB,UAAU,gBAAiBqgG,IAEzDv/G,KAAKjE,MAsBR,WACE,GAAIyjH,EAEJA,GAAoB,WAGlB,QAASA,GAAkBt3G,EAAgB4T,EAAoB8rF,EAAawR,EAAajM,EAAUryF,GACjG/e,KAAKmM,eAAiBA,EACtBnM,KAAK+f,mBAAqBA,EAC1B/f,KAAK6rG,YAAcA,EACnB7rG,KAAKq9G,YAAcA,EACnBr9G,KAAKoxG,SAAWA,EAChBpxG,KAAK+e,UAAYA,EACjB/e,KAAK2pE,eAAgB,EACjB3pE,KAAK6rG,YAAYr+E,KACnBxtB,KAAKq9G,YAAYqG,kBAAkB1jH,KAAK6rG,YAAYr+E,MAAMrqB,KAAK,SAAUiF,GACvE,MAAO,UAASmE,GACd,MAAKA,GAAKzG,IAAI,cAGZsC,EAAMmE,KAAOA,EACbnE,EAAMuhE,eAAgB,EACtBvhE,EAAMkrD,SAASlrD,EAAMmE,MACdA,GALAnE,EAAMgpG,SAAS1B,aAQzB1vG,OAAO,SAAS,SAAUoI,GAC3B,MAAO,UAASkI,GACd,MAAOlI,GAAMgpG,SAAS9qG,SAASgK,KAEhCtQ,QAEHA,KAAKuM,KAAOvM,KAAK+f,mBAAmB1R,UACpCrO,KAAK2pE,eAAgB,EACrB3pE,KAAKszD,SAAStzD,KAAKuM,OAevB,MA7CAk3G,GAAkBrjG,SAAW,mBAAoB,uBAAwB,eAAgB,gBAAiB,oBAAqB,cAkC/HqjG,EAAkB7zG,UAAU0jD,SAAW,SAAS/mD,GAC9C,GAAIsB,GAAKtJ,EAAaD,CAOtB,OANAuJ,IACE81G,aAAcp3G,EAAKzG,IAAI,qBACvB89G,aAAcr3G,EAAKzG,IAAI,aAEzBxB,EAAQtE,KAAK+e,UAAUxW,QAAQ,0BAA2BsF,GAC1DtJ,EAAcgI,EAAKzG,IAAI,OAChB9F,KAAKmM,eAAewC,OAAOrK,EAAOC,IAGpCk/G,KAIT7gH,QAAQjD,OAAO,gBAAgBwE,WAAW,UAAWs/G,IAEpDx/G,KAAKjE,MAsBR,WACE,GAAI6jH,EAEJA,GAAqC,WACnC,OACE3/G,YAAa,sDAIjBtB,QAAQjD,OAAO,iBAAiBwjB,UAAU,8BAA+B0gG,IAExE5/G,KAAKjE,MAsBR,WACE,GAAI8jH,EAEJA,GAAiC,WAG/B,QAASA,GAA+B16C,GACtCppE,KAAKopE,gBAAkBA,EAYzB,MAfA06C,GAA+B1jG,SAAW,qBAM1C0jG,EAA+Bl0G,UAAUm0G,kBAAoB,WAC3D,MAAO/jH,MAAKopE,gBAAgB30C,OAAO,yBACjCi1C,QAAS,iEACT5vD,QAAW,YAEXA,QAAW9Z,KAAK8Z,WAIbgqG,KAITlhH,QAAQjD,OAAO,iBAAiBwE,WAAW,2BAA4B2/G,IAEtE7/G,KAAKjE,MAsBR,WACE,GAAIgkH,EAEJA,GAAgC,WAC9B,OACEpwG,SACAzP,WAAY,2BACZspE,kBACE3zD,QAAS,IACTmqG,OAAQ,KAEV7/G,aAAc,KACdF,YAAa,2EAIjBtB,QAAQjD,OAAO,iBAAiBwjB,UAAU,yBAA0B6gG,IAEnE//G,KAAKjE,MAsBR,WACE,GAAIkkH,EAEJA,GAA6B,WAG3B,QAASA,GAA2B73G,EAAiB+N,EAAI+zB,GACvDnuC,KAAKqM,gBAAkBA,EACvBrM,KAAKoa,GAAKA,EACVpa,KAAKmuC,QAAUA,EACfnuC,KAAK49G,WAkBP,MAxBAsG,GAA2B9jG,SAAW,kBAAmB,cAAe,cASxE8jG,EAA2Bt0G,UAAUu0G,eAAiB,WACpD,GAAIn/F,GAASlL,EAAS1W,CAKtB,OAJA0W,GAAU9Z,KAAK8Z,QAAQhU,IAAI,MAC3Bkf,EAAUhlB,KAAK49G,QAAQ54F,QACvB5hB,EAAUpD,KAAKoa,GAAGC,SAAS8pG,eAAerqG,EAASkL,GACnDhlB,KAAKokH,iBAAkB,EAChBhhH,EAAQD,KAAK,SAAUiF,GAC5B,MAAO,YAGL,MAFAA,GAAMiE,gBAAgBzF,WACtBwB,EAAMg8G,iBAAkB,EACjBh8G,EAAM+lC,QAAQ3lC,OAAO,aAE7BxI,QAGEkkH,KAITthH,QAAQjD,OAAO,iBAAiBwE,WAAW,uBAAwB+/G,IAElEjgH,KAAKjE,MAsBR,WACE,GAAIqkH,EAEJA,GAA4B,SAASh4G,GACnC,GAAIgX,EAKJ,OAJArjB,MAAKskH,QAAU,mBACfjhG,EAAO,SAASzP,EAAOd,GACrB,MAAOzG,GAAgBuoB,KAAK9hB,KAG5B3O,WAAY,uBACZspE,kBACE3zD,QAAS,KAEX1V,aAAc,KACdF,YAAa,iEACbmf,KAAMA,IAIVzgB,QAAQjD,OAAO,iBAAiBwjB,UAAU,sBAAuB,kBAAmBkhG,KAEnFpgH,KAAKjE,MAsBR,WACE,GAAIukH,EAEJA,GAA8B,WAG5B,QAASA,GAA4Bp2E,EAASq2E,GAC5CxkH,KAAKmuC,QAAUA,EACfnuC,KAAKwkH,kBAAoBA,EACzBxkH,KAAKi+F,aAAc,EACnBj+F,KAAKuiC,SAAU,EA+CjB,MArDAgiF,GAA4BnkG,SAAW,aAAc,8BASrDmkG,EAA4B30G,UAAUsuF,wBAA0B,WAC9D,MAAOl+F,MAAKi+F,aAAc,GAG5BsmB,EAA4B30G,UAAUuuF,yBAA2B,WAC/D,MAAOn+F,MAAKi+F,aAAc,GAG5BsmB,EAA4B30G,UAAU60G,WAAa,WACjD,GAAIrhH,EAYJ,OAXApD,MAAKuiC,SAAU,EAIbn/B,EAHGpD,KAAK8Z,QAAQhU,IAAI,UAGV9F,KAAK0kH,UAFL1kH,KAAK2kH,QAIjBvhH,EAAQ,WAAW,SAAUgF,GAC3B,MAAO,YACL,MAAOA,GAAMm6B,SAAU,IAExBviC,OACIoD,GAGTmhH,EAA4B30G,UAAU+0G,MAAQ,WAC5C,MAAO3kH,MAAKwkH,kBAAkBI,KAAK5kH,KAAK8Z,QAAQhU,IAAI,OAAO3C,KAAK,SAAUiF,GACxE,MAAO,YACL,MAAOA,GAAM+1F,6BAEdn+F,OAAO,SAAS,SAAUoI,GAC3B,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,QAGLukH,EAA4B30G,UAAU80G,QAAU,WAC9C,MAAO1kH,MAAKwkH,kBAAkBK,OAAO7kH,KAAK8Z,QAAQhU,IAAI,OAAO,SAAS,SAAUsC,GAC9E,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,QAGEukH,KAIT3hH,QAAQjD,OAAO,iBAAiBwE,WAAW,oBAAqBogH,IAE/DtgH,KAAKjE,MAsBR,WACE,GAAI8kH,EAEJA,GAA6B,WAC3B,OACElxG,SACAzP,WAAY,oBACZspE,kBACE3zD,QAAS,KAEX1V,aAAc,KACdF,YAAa,qEAIjBtB,QAAQjD,OAAO,iBAAiBwjB,UAAU,sBAAuB2hG,IAEhE7gH,KAAKjE,MAsBR,WACE,GAAI+kH,GAA0BhlH,EAC5B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbglH,EAA2B,SAAU30G,GAKnC,QAAS20G,GAAyB3qG,EAAI2F,EAAoBzc,GACxDtD,KAAKoa,GAAKA,EACVpa,KAAK+f,mBAAqBA,EAC1B/f,KAAKsD,eAAiBA,EAgExB,MAvEAT,GAAOkiH,EAA0B30G,GAEjC20G,EAAyB3kG,SAAW,cAAe,uBAAwB,oBAQ3E2kG,EAAyBn1G,UAAUo1G,iBAAmB,SAASzqG,GAC7D,MAAOva,MAAK+f,mBAAmB1F,SAASvU,IAAI,OAAO28C,UAAU,SAAS3oC,GACpE,MAAOA,GAAQhU,IAAI,QAAUyU;IAIjCwqG,EAAyBn1G,UAAUq1G,gBAAkB,SAAS1qG,EAAW2qG,GACvE,GAAIC,GAAc9qG,CAElB,IADA8qG,EAAenlH,KAAKglH,iBAAiBzqG,GACjC4qG,OAgBJ,MAbA9qG,GAAWra,KAAK+f,mBAAmB1F,SAASvU,IAAI,OAAOwkB,OAAO66F,EAAc,SAASrrG,GACnF,GAAIsrG,EAOJ,OANAA,GAAYtrG,EAAQhU,IAAI,cACpBo/G,EACFE,IAEAA,IAEKtrG,EAAQkuB,OACbq9E,OAAQH,EACRI,WAAYF,MAGTplH,KAAK+f,mBAAmBwlG,YAAYlrG,IAG7C0qG,EAAyBn1G,UAAU41G,sBAAwB,SAASN,GAClE,GAAIprG,GAASsrG,CAWb,OAVAA,GAAYplH,KAAKsD,eAAewW,QAAQhU,IAAI,cACxCo/G,EACFE,IAEAA,IAEFtrG,EAAU9Z,KAAKsD,eAAewW,QAAQkuB,OACpCq9E,OAAQH,EACRI,WAAYF,IAEPplH,KAAKsD,eAAemiH,WAAW3rG,IAGxCirG,EAAyBn1G,UAAUg1G,KAAO,SAASrqG,GACjD,MAAOva,MAAKoa,GAAGC,SAASqrG,YAAYnrG,GAAWpX,KAAK,SAAUiF,GAC5D,MAAO,YAEL,MADAA,GAAM68G,gBAAgB1qG,GAAW,GAC1BnS,EAAMo9G,uBAAsB,KAEpCxlH,QAGL+kH,EAAyBn1G,UAAUi1G,OAAS,SAAStqG,GACnD,MAAOva,MAAKoa,GAAGC,SAASsrG,cAAcprG,GAAWpX,KAAK,SAAUiF,GAC9D,MAAO,YAEL,MADAA,GAAM68G,gBAAgB1qG,GAAW,GAC1BnS,EAAMo9G,uBAAsB,KAEpCxlH,QAGE+kH,GAENhlH,EAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,6BAA8BmiG,IAErE9gH,KAAKjE,MAsBR,WACE,GAAI4lH,EAEJA,GAAwB,SAAS7lG,GAC/B,GAAIoD,GAAWE,CAmDf,OAlDAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,GAAIhJ,GAAO0J,EAAQxJ,CAsCnB,OArCAwJ,GAAS,KACT1J,EAAQG,SAASv8C,EAAG,KAClBw8C,gBAAgB,EAChBvP,MAAM,EACNosB,gBAAiBr5D,EAAG,GACpB28C,MAAO,SAAS/8C,GACd,MAAOq6B,GAAEr6B,GAAM+1B,SAAS,4BAG5BymB,EAAM3qC,GAAG,UAAW,SAAS7R,GAC3B,GAAIC,GAAGmG,EAAO9D,EAAK8E,EAAS+rG,EAAUC,EAAoB/2G,CAU1D,KATA6pD,EAAS7rB,EAAEr6B,GACXoH,EAAU8+C,EAAOhlD,QAAQkG,QACzBhB,EAAQ8/C,EAAO9/C,QACfgtG,EAAqBzlH,EAAEC,IAAIsT,EAAMyG,SAAS5B,OAAQ,SAASmuC,GACzD,MAAOA,GAAEhtC,KAEXksG,EAAqBzlH,EAAEwnD,QAAQi+D,EAAoBhsG,EAAQhU,IAAI,OAC/DggH,EAAmB76C,OAAOnyD,EAAO,EAAGgB,EAAQhU,IAAI,OAChD+/G,KACK/sG,EAAQnG,EAAI,EAAGqC,EAAM8wG,EAAmB14G,OAAQuF,EAAIqC,EAAK8D,IAAUnG,EACtE5D,EAAQ+2G,EAAmBhtG,GAC3B+sG,EAASt+G,MACP0/E,WAAcl4E,EACd22C,MAAS5sC,GAGb,OAAOiH,GAAmBgmG,wBAAwBF,KAEpDz2D,EAASa,WAAW/vD,QAClBgwD,OAAQ,GACRC,OAAQ,GACRC,mBAAmB,EACnBH,WAAY,WACV,MAAOjwD,MAAKqwD,MAAQnB,EAAMoB,YAGvB18C,EAAMlH,IAAI,WAAY,WAE3B,MADAoG,GAAG2R,MACIyqC,EAAM9mB,aAGjBjlB,GACEvP,OACEyG,SAAU,mBAEZgJ,KAAMA,IAKVzgB,QAAQjD,OAAO,iBAAiBwjB,UAAU,kBAAmB,uBAAwByiG,KAEpF3hH,KAAKjE,MAsBR,WACE,GAAIgmH,EAEJA,GAA+B,WAG7B,QAASA,GAA6B73E,EAAS83E,GAC7CjmH,KAAKmuC,QAAUA,EACfnuC,KAAKimH,mBAAqBA,EAC1BjmH,KAAKkmH,kBAAmB,EACxBlmH,KAAKuiC,SAAU,EA0CjB,MAhDAyjF,GAA6B5lG,SAAW,aAAc,+BAStD4lG,EAA6Bp2G,UAAUu2G,qBAAuB,WAC5D,MAAOnmH,MAAKkmH,kBAAoBlmH,KAAKkmH,kBAGvCF,EAA6Bp2G,UAAUw2G,oBAAsB,WAC3D,MAAOpmH,MAAKkmH,kBAAmB,GAGjCF,EAA6Bp2G,UAAU6mC,MAAQ,SAAS4vE,GACtD,GAAIA,IAAgBrmH,KAAK8Z,QAAQhU,IAAI,gBAKrC,MAFA9F,MAAKuiC,SAAU,EACfviC,KAAKomH,sBACEpmH,KAAKimH,mBAAmBxvE,MAAMz2C,KAAK8Z,QAAQhU,IAAI,MAAOugH,GAAa,SAAS,SAAUj+G,GAC3F,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,OAAO,WAAW,SAAUoI,GAC7B,MAAO,YACL,MAAOA,GAAMm6B,SAAU,IAExBviC,QAGLgmH,EAA6Bp2G,UAAU2c,QAAU,WAG/C,MAFAvsB,MAAKuiC,SAAU,EACfviC,KAAKomH,sBACEpmH,KAAKimH,mBAAmB15F,QAAQvsB,KAAK8Z,QAAQhU,IAAI,OAAO,SAAS,SAAUsC,GAChF,MAAO,YACL,MAAOA,GAAM+lC,QAAQ3lC,OAAO,WAE7BxI,OAAO,WAAW,SAAUoI,GAC7B,MAAO,YACL,MAAOA,GAAMm6B,SAAU,IAExBviC,QAGEgmH,KAITpjH,QAAQjD,OAAO,iBAAiBwE,WAAW,qBAAsB6hH,IAEhE/hH,KAAKjE,MAsBR,WACE,GAAIsmH,EAEJA,GAA8B,WAC5B,OACE1yG,SACAzP,WAAY,qBACZspE,kBACE3zD,QAAS,KAEX1V,aAAc,KACdF,YAAa,uEAIjBtB,QAAQjD,OAAO,iBAAiBwjB,UAAU,uBAAwBmjG,IAEjEriH,KAAKjE,MAsBR,WACE,GAAIumH,GAA2BxmH,EAC7B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbwmH,EAA4B,SAAUn2G,GAKpC,QAASm2G,GAA0BnsG,EAAI2F,EAAoBzc,GACzDtD,KAAKoa,GAAKA,EACVpa,KAAK+f,mBAAqBA,EAC1B/f,KAAKsD,eAAiBA,EAoExB,MA3EAT,GAAO0jH,EAA2Bn2G,GAElCm2G,EAA0BnmG,SAAW,cAAe,uBAAwB,oBAQ5EmmG,EAA0B32G,UAAUo1G,iBAAmB,SAASzqG,GAC9D,MAAOva,MAAK+f,mBAAmB1F,SAASvU,IAAI,OAAO28C,UAAU,SAAS3oC,GACpE,MAAOA,GAAQhU,IAAI,QAAUyU,KAIjCgsG,EAA0B32G,UAAUq1G,gBAAkB,SAAS1qG,EAAW8rG,EAAaG,GACrF,GAAIrB,GAAc9qG,CAElB,IADA8qG,EAAenlH,KAAKglH,iBAAiBzqG,GACjC4qG,OAmBJ,MAhBA9qG,GAAWra,KAAK+f,mBAAmB1F,SAASvU,IAAI,OAAOwkB,OAAO66F,EAAc,SAAU/8G,GACpF,MAAO,UAAS0R,GACd,GAAI2sG,EAOJ,OANAA,GAAgB3sG,EAAQhU,IAAI,mBACvBsC,EAAM9E,eAAewW,QAAQhU,IAAI,eAAiB0gH,EACrDC,IACSr+G,EAAM9E,eAAewW,QAAQhU,IAAI,gBAAkB0gH,GAC5DC,IAEK3sG,EAAQkuB,OACb62D,WAAY2nB,EACZE,eAAgBD,EAChBj6B,aAAc65B,MAGjBrmH,OACIA,KAAK+f,mBAAmBwlG,YAAYlrG,IAG7CksG,EAA0B32G,UAAU41G,sBAAwB,SAASa,EAAaG,GAChF,GAAI1sG,GAAS2sG,CAYb,OAXAA,GAAgBzmH,KAAKsD,eAAewW,QAAQhU,IAAI,mBAC3C9F,KAAKsD,eAAewW,QAAQhU,IAAI,eAAiB0gH,EACpDC,IACSzmH,KAAKsD,eAAewW,QAAQhU,IAAI,gBAAkB0gH,GAC3DC,IAEF3sG,EAAU9Z,KAAKsD,eAAewW,QAAQkuB,OACpC62D,WAAY2nB,EACZh6B,aAAc65B,EACdK,eAAgBD,IAEXzmH,KAAKsD,eAAemiH,WAAW3rG,IAGxCysG,EAA0B32G,UAAU6mC,MAAQ,SAASl8B,EAAW8rG,GAC9D,MAAOrmH,MAAKoa,GAAGC,SAASssG,aAAapsG,EAAW8rG,GAAaljH,KAAK,SAAUiF,GAC1E,MAAO,YAEL,MADAA,GAAM68G,gBAAgB1qG,EAAW8rG,GAAa,GACvCj+G,EAAMo9G,sBAAsBa,GAAa,KAEjDrmH,QAGLumH,EAA0B32G,UAAU2c,QAAU,SAAShS,GACrD,MAAOva,MAAKoa,GAAGC,SAASusG,eAAersG,GAAWpX,KAAK,SAAUiF,GAC/D,MAAO,YAEL,MADAA,GAAM68G,gBAAgB1qG,EAAW,MAAM,GAChCnS,EAAMo9G,sBAAsB,MAAM,KAE1CxlH,QAGEumH,GAENxmH,EAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,8BAA+B2jG,IAEtEtiH,KAAKjE,MAsBR,WACE,GAAI6mH,EAEJA,GAAmC,WAGjC,QAASA,GAAiC9mG,GACxC/f,KAAK+f,mBAAqBA,EAC1B/f,KAAK8mH,wBAA0B9mH,KAAK+f,mBAAmB+mG,0BACvD9mH,KAAK+mH,yBAA2B/mH,KAAK+f,mBAAmBgnG,2BACxD/mH,KAAKgnH,YAAchnH,KAAK8Z,QAAQrB,OAChCzY,KAAKinH,aAAe,QACpBjnH,KAAKgnH,YAAYrqC,YAAa,EAC9B38E,KAAKgnH,YAAYE,uBAAwB,EACzClnH,KAAKgnH,YAAYG,aAAe,SAC3BnnH,KAAK8mH,wBAAwB/5G,OAAS/M,KAAK+mH,yBAAyBh6G,QACvE/M,KAAKgnH,YAAYrqC,YAAa,GA2BlC,MAvCAkqC,GAAiCzmG,SAAW,wBAgB5CymG,EAAiCj3G,UAAUw3G,gBAAkB,WAE3D,MADApnH,MAAKqnH,2BAA6BrnH,KAAK+f,mBAAmBunG,4BAA4BtnH,KAAK+Z,QAAQtD,MAC5FzW,KAAKunH,0BAA4BvnH,KAAK+f,mBAAmBynG,2BAA2BxnH,KAAK+Z,QAAQtD,OAG1GowG,EAAiCj3G,UAAU63G,SAAW,WACpD,MAAOznH,MAAK0nH,sBACV5tG,QAASmH,UAAUC,OAAOlhB,KAAKgnH,gBAInCH,EAAiCj3G,UAAU+3G,iBAAmB,WAC5D,MAAI3nH,MAAKgnH,YAAYrqC,WACZ38E,KAAK+mH,yBAAyBh6G,MAE9B/M,KAAK8mH,wBAAwB/5G,OAIxC85G,EAAiCj3G,UAAUg4G,WAAa,WACtD,OAAQ5nH,KAAK2nH,oBAGRd,KAITjkH,QAAQjD,OAAO,iBAAiBwE,WAAW,6BAA8B0iH,IAExE5iH,KAAKjE,MAsBR,WACE,GAAI6nH,EAEJA,GAAkC,WAChC,OACExkG,KAAM,SAASzP,EAAO2b,EAAK1b,EAAMqkD,GAC/B,MAAOtkD,GAAMK,OAAO,aAAcikD,EAAKkvD,gBAAgBr3G,KAAKmoD,KAE9Dh0D,YAAa,wFACbC,WAAY,6BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEmG,QAAS,IACTD,QAAS,IACT4tG,qBAAsB,IACtBI,aAAc,IACdC,cAAe,OAKrBF,EAAgCznG,WAEhCxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,2BAA4B0kG,IAErE5jH,KAAKjE,MAsBR,WACE,GAAIgoH,EAEJA,GAAwB,WAGtB,QAASA,GAAsBC,EAAoB95E,EAASpvB,EAAWmpG,GACrEloH,KAAKioH,mBAAqBA,EAC1BjoH,KAAKmuC,QAAUA,EACfnuC,KAAK+e,UAAYA,EACjB/e,KAAKkoH,qBAAuBA,EAC5BloH,KAAKmoH,KAAO,qBACZnoH,KAAK8Z,QAAU,KACf/Z,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM6/G,mBAAmB5tG,WAEjCra,OACHD,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM6/G,mBAAmBG,eAEjCpoH,OA6CL,MA/DAgoH,GAAsB5nG,SAAW,uBAAwB,aAAc,aAAc,0BAqBrF4nG,EAAsBp4G,UAAUy4G,qBAAuB,WAErD,MADAroH,MAAKmoH,KAAO,uBACLnoH,KAAKioH,mBAAmBK,iBAGjCN,EAAsBp4G,UAAU24G,gBAAkB,SAASzuG,GAIzD,MAHA9Z,MAAKmoH,KAAO,qBACZnoH,KAAK8Z,QAAUA,EACf9Z,KAAK+nH,eAAgB,EACd/nH,KAAKioH,mBAAmBO,WAAWxoH,KAAK8Z,QAAQhU,IAAI,OAAO3C,KAAK,SAAUiF,GAC/E,MAAO,YACL,MAAOA,GAAM2/G,eAAgB,IAE9B/nH,QAGLgoH,EAAsBp4G,UAAU83G,qBAAuB,SAAS5tG,GAE9D,MADA9Z,MAAK8Z,QAAUA,EACR9Z,KAAKmoH,KAAO,yBAGrBH,EAAsBp4G,UAAU64G,wBAA0B,WACxD,MAAOzoH,MAAKmoH,KAAO,sBAGrBH,EAAsBp4G,UAAU84G,YAAc,SAASrvG,GACrD,GAAIhV,GAAQjB,CAIZ,OAHAiB,GAASrE,KAAKmuC,QAAQ9pC,OAAOrE,KAAK+e,UAAUxW,QAAQ,oCAAqCvI,KAAK+e,UAAUxW,QAAQ,2CAA2C,GAC3JlE,EAAOqK,QACPtL,EAAUpD,KAAKioH,mBAAmBU,cAAc3oH,KAAK8Z,QAAQhU,IAAI,QAAS9F,KAAK8Z,QAAQhU,IAAI,eAAgB9F,KAAK8Z,QAAQhU,IAAI,MAAOuT,EAAOrZ,KAAK8Z,QAAQhU,IAAI,yBAA0B9F,KAAK8Z,QAAQhU,IAAI,cAAe9F,KAAK8Z,QAAQhU,IAAI,iBAC/N9F,KAAKkoH,qBAAqBU,cAAcxlH,GAASD,KAAK,SAAUiF,GACrE,MAAO,YACL,MAAO/D,GAAO+oC,SAEfptC,QAGLgoH,EAAsBp4G,UAAUi5G,oBAAsB,SAASxvG,GAE7D,MADArZ,MAAK0oH,YAAYrvG,GACV,MAGF2uG,KAITplH,QAAQjD,OAAO,iBAAiBwE,WAAW,kBAAmB6jH,IAE7D/jH,KAAKjE,MAsBR,WACE,GAAI8oH,EAEJA,GAAuB,WACrB,OACEzlG,KAAM,SAASzP,EAAO2b,EAAKhB,EAAO2pC,GAChC,MAAOA,GAAKmwD,wBAEdnkH,YAAa,iDACbC,WAAY,kBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEgzF,SAAU,OAKhBkiB,EAAqB1oG,WAErBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,gBAAiB2lG,IAE1D7kH,KAAKjE,MAsBR,WACE,GAAI+oH,GACFlmH,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfi5G,GAAqB,SAAU34G,GAK7B,QAAS24G,GAAmB5X,EAAWv2F,GACrC5a,KAAKmxG,UAAYA,EACjBnxG,KAAK4a,SAAWA,EAChB5a,KAAKqa,SAAW4G,UAAU0yB,OAC1B3zC,KAAKooH,aAAennG,UAAU0yB,OAC9B3zC,KAAK8hB,MAAQ,KAmDf,MA5DAjf,GAAOkmH,EAAoB34G,GAE3B24G,EAAmB3oG,SAAW,cAAe,aAU7C2oG,EAAmBn5G,UAAUiS,SAAW,SAASC,GAC/C,MAAO9hB,MAAK8hB,MAAQA,GAGtBinG,EAAmBn5G,UAAU04G,cAAgB,WAC3C,MAAOtoH,MAAKmxG,UAAU6X,cAAcC,aAAajpH,KAAK8hB,OAAO3e,KAAK,SAAUiF,GAC1E,MAAO,UAASiS,GACd,MAAOjS,GAAMiS,SAAWA,IAEzBra,QAGL+oH,EAAmBn5G,UAAU44G,WAAa,SAASjuG,GACjD,MAAOva,MAAKmxG,UAAU6X,cAAcE,UAAUlpH,KAAK8hB,MAAOvH,GAAWpX,KAAK,SAAUiF,GAClF,MAAO,UAASiR,GACd,MAAOjR,GAAMggH,aAAe/uG,IAE7BrZ,QAGL+oH,EAAmBn5G,UAAU+4G,cAAgB,SAASp0G,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,GAClI,MAAOppH,MAAKmxG,UAAU6X,cAAcL,cAAc3oH,KAAK8hB,MAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,IAG9IL,EAAmBn5G,UAAUy5G,WAAa,WACxC,MAAO,IAAIt7G,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,GACd,MAAOyF,GAAM+oG,UAAU6X,cAAcK,aAAalmH,KAAK,SAASmD,GAE9D,MADA8B,GAAMkhH,QAAUhjH,EAASyB,KAAKjB,IACvBnE,EAAQyF,EAAMkhH,aAGxBtpH,QAGL+oH,EAAmBn5G,UAAU25G,UAAY,SAAS5zE,GAChD,MAAO,IAAI5nC,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,MAAOiB,GAAM+oG,UAAU6X,cAAcO,UAAU5zE,GAAMxyC,KAAK,SAAUmD,GAElE,MADA8B,GAAM0Z,MAAQxb,EAASyB,KAAK+Z,MACrBnf,EAAQyF,EAAM0Z,QACnB,SAASjb,GACX,MAAOM,GAAO,GAAI8rB,OAAMpsB,EAAMJ,aAGjCzG,QAGE+oH,GAENhpH,MAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,uBAAwBmmG,IAE/D9kH,KAAKjE,MAsBR,WACE,GAAIwpH,EAEJA,GAA+B,WAG7B,QAASA,GAA6BzpG,EAAoB+sF,EAAiB2c,EAAY7uG,EAAUqmB,GAC/FjhC,KAAK+f,mBAAqBA,EAC1B/f,KAAK8sG,gBAAkBA,EACvB9sG,KAAKypH,WAAaA,EAClBzpH,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKgnH,aACHrqC,YAAY,GAEd38E,KAAK8mH,wBAA0B9mH,KAAK+f,mBAAmB+mG,0BACvD9mH,KAAK+mH,yBAA2B/mH,KAAK+f,mBAAmBgnG,4BACnD/mH,KAAK8mH,wBAAwB/5G,OAAS/M,KAAK+mH,yBAAyBh6G,QACvE/M,KAAKgnH,YAAYrqC,YAAa,GAEd,UAAd38E,KAAKoK,KACPpK,KAAKgnH,YAAY0C,kBAAoB,EAErC1pH,KAAKgnH,YAAY0C,kBAAoB,EA6BzC,MAhDAF,GAA6BppG,SAAW,uBAAwB,oBAAqB,cAAe,YAAa,cAuBjHopG,EAA6B55G,UAAUgU,OAAS,WAE9C,MADA5jB,MAAK2pH,mBAAoB,EAClB3pH,KAAK8sG,gBAAgBr4E,OAAOz0B,KAAKgnH,aAAa7jH,KAAK,SAAUiF,GAClE,MAAO,UAAS0R,GACd,MAAO1R,GAAMwS,SAAS9T,IAAIsB,EAAMqhH,WAAW3jH,IAAIgU,MAEhD9Z,QAGLwpH,EAA6B55G,UAAUk4G,aAAe,WACpD,MAAO9nH,MAAK4a,SAASnY,KAAKzC,KAAKihC,QAAQt+B,QAAQ,oBAGjD6mH,EAA6B55G,UAAU+3G,iBAAmB,WACxD,MAAI3nH,MAAKgnH,YAAYrqC,WACZ38E,KAAK+mH,yBAAyBh6G,MAE9B/M,KAAK8mH,wBAAwB/5G,OAIxCy8G,EAA6B55G,UAAUg4G,WAAa,WAClD,MAAO5nH,MAAK2pH,oBAAsB3pH,KAAK2nH,oBAGlC6B,KAIT5mH,QAAQjD,OAAO,iBAAiBwE,WAAW,wBAAyBqlH,IAEnEvlH,KAAKjE,MAsBR,WACE,GAAI4pH,EAEJA,GAA6B,WAC3B,OACE1lH,YAAa,+DACbC,WAAY,wBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACExJ,KAAM,OAKZxH,QAAQjD,OAAO,iBAAiBwjB,UAAU,sBAAuBymG,IAEhE3lH,KAAKjE,MAER,WACE,GAAI6pH,GAA2ClqH,CAE/CA,GAASiD,QAAQjD,OAAO,gBAExBkqH,EAA4C,WAC1C,OACEj2G,OACEu1E,UAAW,IACXk+B,2BAA4B,IAC5BE,0BAA2B,KAE7BrjH,YAAa,iGAIjBvE,EAAOwjB,UAAU,sCAAuC0mG,KAEvD5lH,KAAKjE,MAER,WACE,GAAI8pH,GAAoCnqH,CAExCA,GAASiD,QAAQjD,OAAO,gBAExBmqH,EAAqC,WACnC,OACEl2G,OACEu1E,UAAW,IACX49B,yBAA0B,IAC1BD,wBAAyB,KAE3B5iH,YAAa,iFAIjBvE,EAAOwjB,UAAU,+BAAgC2mG,KAEhD7lH,KAAKjE,MAsBR,WACE,GAAI+pH,EAEJA,GAA0B,WAGxB,QAASA,GAAwB59G,EAAgB4S,EAAWzb,EAAgBsX,GAC1E5a,KAAKmM,eAAiBA,EACtBnM,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiBA,EACtBtD,KAAK4a,SAAWA,EAChB7a,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM9E,eAAewW,UAE7B9Z,OACHA,KAAKmM,eAAeojG,MAAMvvG,KAAKszD,SAASvjD,KAAK/P,OAC7CA,KAAKgqH,kBAAmB,EACxBhqH,KAAKiqH,mBAAoB,EA4B3B,MA1CAF,GAAwB3pG,SAAW,mBAAoB,aAAc,mBAAoB,aAiBzF2pG,EAAwBn6G,UAAU0jD,SAAW,WAC3C,GAAIzlD,EACJ,OAAK7N,MAAK8Z,SAGVjM,GACEyzB,YAAathC,KAAK8Z,QAAQhU,IAAI,UAG9BxB,MAAOtE,KAAK+e,UAAUxW,QAAQ,qBAAsBsF,GACpDtJ,YAAavE,KAAK8Z,QAAQhU,IAAI,iBAPvB,MAWXikH,EAAwBn6G,UAAUs6G,YAAc,SAAS9/G,EAAMu9C,GAM7D,GALAA,EAAO5X,kBACP4X,EAAOl5C,iBACM,UAATrE,IACFpK,KAAKgqH,kBAAoBhqH,KAAKgqH,kBAEnB,WAAT5/G,EACF,MAAOpK,MAAKiqH,mBAAqBjqH,KAAKiqH,mBAInCF,KAITnnH,QAAQjD,OAAO,iBAAiBwE,WAAW,oBAAqB4lH,IAE/D9lH,KAAKjE,MAsBR,WACE,GAAImqH,EAEJA,GAA6B,WAG3B,QAASA,GAA2BpqG,EAAoB+sF,EAAiBlyF,EAAUqmB,GACjFjhC,KAAK+f,mBAAqBA,EAC1B/f,KAAK8sG,gBAAkBA,EACvB9sG,KAAK4a,SAAWA,EAChB5a,KAAKihC,QAAUA,EACfjhC,KAAKuM,KAAOvM,KAAK+f,mBAAmB1R,UACpCrO,KAAK+Z,QAAUkH,UAAU0yB,OACzB3zC,KAAK8mH,wBAA0B9mH,KAAK+f,mBAAmB+mG,0BACvD9mH,KAAK+mH,yBAA2B/mH,KAAK+f,mBAAmBgnG,2BACxDhnH,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM2X,mBAAmB1F,SAASvU,IAAI,SAE9C9F,OACHA,KAAKgnH,aACHrqC,YAAY,IAET38E,KAAK8mH,wBAAwB/5G,OAAS/M,KAAK+mH,yBAAyBh6G,QACvE/M,KAAKgnH,YAAYrqC,YAAa,GAoElC,MAxFAwtC,GAA2B/pG,SAAW,uBAAwB,oBAAqB,cAAe,cAwBlG+pG,EAA2Bv6G,UAAUw6G,wBAA0B,SAAS58F,GACtE,MAAOxtB,MAAK8sG,gBAAgBud,iBAAiB78F,GAAMrqB,KAAK,SAAUiF,GAChE,MAAO,UAAS0R,GAQd,MAPA1R,GAAMkiH,iBAAmBxwG,EACzB1R,EAAM2R,QAAUD,EAAQhU,IAAI,WAAW4H,OAAO,SAAS8O,GACrD,MAAOA,GAAG1W,IAAI,QAAUsC,EAAMmE,KAAKzG,IAAI,QAEzCsC,EAAMmiH,eAAiBniH,EAAM2R,QAAQzZ,IAAI,SAASkc,GAChD,MAAOA,GAAG1W,IAAI,QAETsC,EAAMg/G,oBAEdpnH,QAGLmqH,EAA2Bv6G,UAAU46G,oBAAsB,SAAS1yF,GAQlE,MAPI93B,MAAKuqH,eAAetwG,SAAS6d,GAC/B93B,KAAKuqH,eAAiBvqH,KAAKuqH,eAAe78G,OAAO,SAAS8O,GACxD,MAAOA,KAAOsb,IAGhB93B,KAAKuqH,eAAiBvqH,KAAKuqH,eAAehjH,KAAKuwB,GAE1C93B,KAAKonH,mBAGd+C,EAA2Bv6G,UAAUw3G,gBAAkB,WAErD,MADApnH,MAAKqnH,2BAA6BrnH,KAAK+f,mBAAmBunG,4BAA4BtnH,KAAKuqH,eAAe9zG,KAAO,GAC1GzW,KAAKunH,0BAA4BvnH,KAAK+f,mBAAmBynG,2BAA2BxnH,KAAKuqH,eAAe9zG,KAAO,IAGxH0zG,EAA2Bv6G,UAAUgU,OAAS,WAC5C,GAAI7b,GAAMwS,CAKV,OAJAA,GAAYva,KAAKsqH,iBAAiBxkH,IAAI,MACtCiC,EAAO/H,KAAKgnH,YACZj/G,EAAKsR,MAAQrZ,KAAKuqH,eAClBvqH,KAAK2pH,mBAAoB,EAClB3pH,KAAK8sG,gBAAgB2d,UAAUlwG,EAAWxS,GAAM5E,KAAK,SAAUiF,GACpE,MAAO,UAASy2G,GAKd,MAJAz2G,GAAMuhH,mBAAoB,EAC1BvhH,EAAMwS,SAASnY,KAAK2F,EAAM64B,QAAQt+B,QAAQ,WACxCmX,QAAS+kG,EAAW92G,KAAKylB,QAEpBplB,EAAM2X,mBAAmB0pD,iBAEjCzpE,QAGLmqH,EAA2Bv6G,UAAU+3G,iBAAmB,WACtD,MAAI3nH,MAAKgnH,YAAYrqC,WACZ38E,KAAK+mH,yBAAyBh6G,OAAS/M,KAAKqnH,2BAA2Bt6G,MAEvE/M,KAAK8mH,wBAAwB/5G,OAAS/M,KAAKunH,0BAA0Bx6G,OAIhFo9G,EAA2Bv6G,UAAUg4G,WAAa,WAChD,MAAO5nH,MAAK2pH,oBAAsB3pH,KAAK2nH,oBAGzCwC,EAA2Bv6G,UAAUk4G,aAAe,WAClD,MAAO9nH,MAAK4a,SAASnY,KAAKzC,KAAKihC,QAAQt+B,QAAQ,oBAG1CwnH,KAITvnH,QAAQjD,OAAO,iBAAiBwE,WAAW,uBAAwBgmH,IAElElmH,KAAKjE,MAsBR,WACE,GAAI0qH,EAEJA,GAA4B,WAC1B,GAAIrnG,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIe,EAAMqkD,MAE/B70C,KAAMA,EACNnf,YAAa,mDACbC,WAAY,uBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,WAIJ82G,EAA0BtqG,WAE1Bxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,qBAAsBunG,IAE/DzmH,KAAKjE,MAsBR,WACE,GAAI2qH,EAEJA,GAAoC,WAGlC,QAASA,GAAkC5qG,GACzC/f,KAAK+f,mBAAqBA,EAC1B/f,KAAK8mH,wBAA0B9mH,KAAK+f,mBAAmB+mG,0BACvD9mH,KAAK+mH,yBAA2B/mH,KAAK+f,mBAAmBgnG,2BACxD/mH,KAAKgnH,YAAchnH,KAAK8Z,QAAQrB,OAChCzY,KAAKinH,aAAe,SACpBjnH,KAAKgnH,YAAYrqC,YAAa,EAC9B38E,KAAKgnH,YAAYE,uBAAwB,EACzClnH,KAAKgnH,YAAYG,aAAe,UAC3BnnH,KAAK8mH,wBAAwB/5G,OAAS/M,KAAK+mH,yBAAyBh6G,QACvE/M,KAAKgnH,YAAYrqC,YAAa,GA2BlC,MAvCAguC,GAAkCvqG,SAAW,wBAgB7CuqG,EAAkC/6G,UAAUw3G,gBAAkB,WAE5D,MADApnH,MAAKqnH,2BAA6BrnH,KAAK+f,mBAAmBunG,4BAA4BtnH,KAAK+Z,QAAQtD,MAC5FzW,KAAKunH,0BAA4BvnH,KAAK+f,mBAAmBynG,2BAA2BxnH,KAAK+Z,QAAQtD,OAG1Gk0G,EAAkC/6G,UAAU63G,SAAW,WACrD,MAAOznH,MAAK0nH,sBACV5tG,QAASmH,UAAUC,OAAOlhB,KAAKgnH,gBAInC2D,EAAkC/6G,UAAU+3G,iBAAmB,WAC7D,MAAI3nH,MAAKgnH,YAAYrqC,WACZ38E,KAAK+mH,yBAAyBh6G,MAE9B/M,KAAK8mH,wBAAwB/5G,OAIxC49G,EAAkC/6G,UAAUg4G,WAAa,WACvD,OAAQ5nH,KAAK2nH,oBAGRgD,KAIT/nH,QAAQjD,OAAO,iBAAiBwE,WAAW,8BAA+BwmH,IAEzE1mH,KAAKjE,MAsBR,WACE,GAAI4qH,EAEJA,GAAmC,WACjC,OACEvnG,KAAM,SAASzP,EAAO2b,EAAK1b,EAAMqkD,GAC/B,MAAOtkD,GAAMK,OAAO,aAAcikD,EAAKkvD,gBAAgBr3G,KAAKmoD,KAE9Dh0D,YAAa,2FACbC,WAAY,8BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEmG,QAAS,IACTD,QAAS,IACT4tG,qBAAsB,IACtBI,aAAc,IACdC,cAAe,OAKrB6C,EAAiCxqG,WAEjCxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,4BAA6BynG,IAEtE3mH,KAAKjE,MAsBR,WACE,GAAI6qH,EAEJA,GAAyB,WAGvB,QAASA,GAAuBC,EAAqB38E,EAASpvB,EAAWmpG,GACvEloH,KAAK8qH,oBAAsBA,EAC3B9qH,KAAKmuC,QAAUA,EACfnuC,KAAK+e,UAAYA,EACjB/e,KAAKkoH,qBAAuBA,EAC5BloH,KAAKmoH,KAAO,sBACZnoH,KAAK8Z,QAAU,KACf/Z,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM0iH,oBAAoBzwG,WAElCra,OACHD,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM0iH,oBAAoB1C,eAElCpoH,OA6CL,MA/DA6qH,GAAuBzqG,SAAW,wBAAyB,aAAc,aAAc,0BAqBvFyqG,EAAuBj7G,UAAUy4G,qBAAuB,WAEtD,MADAroH,MAAKmoH,KAAO,wBACLnoH,KAAK8qH,oBAAoBxC,iBAGlCuC,EAAuBj7G,UAAU24G,gBAAkB,SAASzuG,GAI1D,MAHA9Z,MAAKmoH,KAAO,sBACZnoH,KAAK8Z,QAAUA,EACf9Z,KAAK+nH,eAAgB,EACd/nH,KAAK8qH,oBAAoBtC,WAAWxoH,KAAK8Z,QAAQhU,IAAI,OAAO3C,KAAK,SAAUiF,GAChF,MAAO,YACL,MAAOA,GAAM2/G,eAAgB,IAE9B/nH,QAGL6qH,EAAuBj7G,UAAU83G,qBAAuB,SAAS5tG,GAE/D,MADA9Z,MAAK8Z,QAAUA,EACR9Z,KAAKmoH,KAAO,0BAGrB0C,EAAuBj7G,UAAU64G,wBAA0B,WACzD,MAAOzoH,MAAKmoH,KAAO,uBAGrB0C,EAAuBj7G,UAAU84G,YAAc,SAASrvG,GACtD,GAAIhV,GAAQjB,CAIZ,OAHAiB,GAASrE,KAAKmuC,QAAQ9pC,OAAOrE,KAAK+e,UAAUxW,QAAQ,oCAAqCvI,KAAK+e,UAAUxW,QAAQ,2CAA2C,GAC3JlE,EAAOqK,QACPtL,EAAUpD,KAAK8qH,oBAAoBnC,cAAc3oH,KAAK8Z,QAAQhU,IAAI,QAAS9F,KAAK8Z,QAAQhU,IAAI,eAAgB9F,KAAK8Z,QAAQhU,IAAI,MAAOuT,EAAOrZ,KAAK8Z,QAAQhU,IAAI,yBAA0B9F,KAAK8Z,QAAQhU,IAAI,cAAe9F,KAAK8Z,QAAQhU,IAAI,iBAChO9F,KAAKkoH,qBAAqBU,cAAcxlH,GAASD,KAAK,SAAUiF,GACrE,MAAO,YACL,MAAO/D,GAAO+oC,SAEfptC,QAGL6qH,EAAuBj7G,UAAUi5G,oBAAsB,SAASxvG,GAE9D,MADArZ,MAAK0oH,YAAYrvG,GACV,MAGFwxG,KAITjoH,QAAQjD,OAAO,iBAAiBwE,WAAW,mBAAoB0mH,IAE9D5mH,KAAKjE,MAsBR,WACE,GAAI+qH,EAEJA,GAAwB,WACtB,OACE1nG,KAAM,SAASzP,EAAO2b,EAAKhB,EAAO2pC,GAChC,MAAOA,GAAKmwD,wBAEdnkH,YAAa,mDACbC,WAAY,mBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEgzF,SAAU,OAKhBmkB,EAAsB3qG,WAEtBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,iBAAkB4nG,IAE3D9mH,KAAKjE,MAsBR,WACE,GAAIgrH,GACFnoH,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfk7G,GAAsB,SAAU56G,GAK9B,QAAS46G,GAAoB7Z,EAAWv2F,GACtC5a,KAAKmxG,UAAYA,EACjBnxG,KAAK4a,SAAWA,EAChB5a,KAAKqa,SAAW4G,UAAU0yB,OAC1B3zC,KAAKooH,aAAennG,UAAU0yB,OAmDhC,MA3DA9wC,GAAOmoH,EAAqB56G,GAE5B46G,EAAoB5qG,SAAW,eAS/B4qG,EAAoBp7G,UAAUiS,SAAW,SAASC,GAChD,MAAO9hB,MAAK8hB,MAAQA,GAGtBkpG,EAAoBp7G,UAAU04G,cAAgB,WAC5C,MAAOtoH,MAAKmxG,UAAU8Z,eAAehC,aAAajpH,KAAK8hB,OAAO3e,KAAK,SAAUiF,GAC3E,MAAO,UAASiS,GACd,MAAOjS,GAAMiS,SAAWA,IAEzBra,QAGLgrH,EAAoBp7G,UAAU44G,WAAa,SAASjuG,GAClD,MAAOva,MAAKmxG,UAAU8Z,eAAe/B,UAAUlpH,KAAK8hB,MAAOvH,GAAWpX,KAAK,SAAUiF,GACnF,MAAO,UAASiR,GACd,MAAOjR,GAAMggH,aAAe/uG,IAE7BrZ,QAGLgrH,EAAoBp7G,UAAU+4G,cAAgB,SAASp0G,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,GACnI,MAAOppH,MAAKmxG,UAAU8Z,eAAetC,cAAc3oH,KAAK8hB,MAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,IAG/I4B,EAAoBp7G,UAAUy5G,WAAa,SAAS6B,GAClD,MAAO,IAAIn9G,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,GACd,MAAOyF,GAAM+oG,UAAU8Z,eAAe5B,WAAW6B,GAAa/nH,KAAK,SAASmD,GAE1E,MADA8B,GAAMkhH,QAAUhjH,EAASyB,KAAKjB,IACvBnE,EAAQyF,EAAMkhH,aAGxBtpH,QAGLgrH,EAAoBp7G,UAAU25G,UAAY,SAAS5zE,GACjD,MAAO,IAAI5nC,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,MAAOiB,GAAM+oG,UAAU8Z,eAAe1B,UAAU5zE,GAAMxyC,KAAK,SAAUmD,GAEnE,MADA8B,GAAM0Z,MAAQxb,EAASyB,KAAK+Z,MACrBnf,EAAQyF,EAAM0Z,QACnB,SAASjb,GACX,MAAOM,GAAO,GAAI8rB,OAAMpsB,EAAMJ,aAGjCzG,QAGEgrH,GAENjrH,MAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,wBAAyBooG,IAEhE/mH,KAAKjE,MAsBR,WACE,GAAImrH,EAEJA,GAAiC,WAG/B,QAASA,GAA+BprG,EAAoBs9F,GAC1Dr9G,KAAK+f,mBAAqBA,EAC1B/f,KAAKq9G,YAAcA,EACnBr9G,KAAKorH,0BAA2B,EAChCprH,KAAKqrH,oBAAqB,EAC1BrrH,KAAKsrH,sBAAuB,EAC5BtrH,KAAKurH,eAAiBtqG,UAAU0yB,OAChC3zC,KAAKwrH,cAAgBvqG,UAAU0yB,OAC/B3zC,KAAKyrH,gBAAkBxqG,UAAU0yB,OACjC3zC,KAAK0rH,aAAezqG,UAAU0yB,OAgJhC,MA3JAw3E,GAA+B/qG,SAAW,uBAAwB,iBAclE+qG,EAA+Bv7G,UAAU+7G,UAAY,WAEnD,MADA3rH,MAAKqoE,YAAcroE,KAAK+f,mBAAmB1R,UACpCrO,KAAKq9G,YAAYI,YAAYz9G,KAAKqoE,YAAYviE,IAAI,OAAO3C,KAAK,SAAUiF,GAC7E,MAAO,UAASsjH,GAEd,MADAtjH,GAAMsjH,aAAeA,EACdtjH,EAAMwjH,2BAEd5rH,QAGLmrH,EAA+Bv7G,UAAUuxF,WAAa,SAAS50F,GAE7D,MADAvM,MAAKorH,0BAA2B,EACzBprH,KAAK6rH,cAAgBt/G,GAG9B4+G,EAA+Bv7G,UAAUk8G,kBAAoB,WAC3D,MAAI9rH,MAAKwrH,cAAc/0G,OAASzW,KAAK+Z,QAAQtD,KACpCzW,KAAKqrH,oBAAqB,EAE1BrrH,KAAK4jB,UAIhBunG,EAA+Bv7G,UAAUm8G,YAAc,SAASC,EAAcC,GAC5E,GAAI1/G,EAOJ,OANAvM,MAAKorH,0BAA2B,EAChC7+G,EAAO0U,UAAU24C,MACjBrtD,EAAOA,EAAKwP,IAAI,OAAQiwG,GACxBz/G,EAAOA,EAAKwP,IAAI,YAAakwG,GAC7BjsH,KAAKwrH,cAAgBxrH,KAAKwrH,cAAcjkH,KAAKgF,GAC7CvM,KAAKksH,qBAAqBF,GACnBhsH,KAAK4rH,0BAGdT,EAA+Bv7G,UAAUu8G,aAAe,SAAS5/G,GAC/D,GAAIuM,EAKJ,OAJAA,GAAQ9Y,KAAKwrH,cAAc/oE,UAAU,SAASjmC,GAC5C,MAAOA,GAAGq5C,OAAO,OAAQ,SAAWtpD,EAAKzG,IAAI,QAE/C9F,KAAKwrH,cAAgBxrH,KAAKwrH,cAAc,UAAU1yG,GAC3C9Y,KAAK4rH,0BAGdT,EAA+Bv7G,UAAUs8G,qBAAuB,SAASp0F,GACvE,MAAO93B,MAAKurH,eAAiBvrH,KAAKurH,eAAehkH,KAAKuwB,EAAOhyB,IAAI,QAGnEqlH,EAA+Bv7G,UAAUw8G,kBAAoB,SAASt0F,GACpE,MAAO93B,MAAKwrH,cAAc/uG,KAAK,SAASD,GACtC,MAAOA,GAAGq5C,OAAO,OAAQ,SAAW/9B,EAAOhyB,IAAI,SAInDqlH,EAA+Bv7G,UAAUy8G,iBAAmB,SAASv0F,GACnE,QAAS93B,KAAKosH,kBAAkBt0F,IAGlCqzF,EAA+Bv7G,UAAUvB,QAAU,SAAS9B,GAC1D,GAAI+/G,EAEJ,OADAA,GAAetsH,KAAKosH,kBAAkB7/G,GAClC+/G,EACKA,EAAaxmH,IAAI,aAEjB,MAIXqlH,EAA+Bv7G,UAAUgU,OAAS,WAChD,GAAIvK,EAaJ,OAZArZ,MAAKqrH,oBAAqB,EAC1BhyG,EAAQ4H,UAAU24C,MAClB55D,KAAKwrH,cAAclrH,IAAI,SAASkc,GAC9B,GAAI5C,EAOJ,OANAA,GAAK,GAEHA,EADEvZ,EAAEoV,SAAS+G,EAAG1W,IAAI,cACf0W,EAAG1W,IAAI,aAEP0W,EAAGq5C,OAAO,YAAa,OAEvBx8C,EAAQA,EAAM0C,IAAIS,EAAGq5C,OAAO,OAAQ,OAAQj8C,KAE9C5Z,KAAK2rG,UACVtyF,MAAOA,KAIX8xG,EAA+Bv7G,UAAUw3G,gBAAkB,WAEzD,MADApnH,MAAKqnH,2BAA6BrnH,KAAK+f,mBAAmBunG,4BAA4BtnH,KAAK+Z,QAAQtD,KAAO,GACnGzW,KAAKunH,0BAA4BvnH,KAAK+f,mBAAmBynG,2BAA2BxnH,KAAK+Z,QAAQtD,KAAO,IAGjH00G,EAA+Bv7G,UAAU28G,mBAAqB,SAASz0F,GACrE,MAAOA,GAAOhyB,IAAI,SAAW9F,KAAKurH,eAAexkH,QAAQ+wB,EAAOhyB,IAAI,cAAkB9F,KAAKqsH,iBAAiBv0F,IAG9GqzF,EAA+Bv7G,UAAU48G,8BAAgC,WACvE,GAAIC,GAAKpzG,CAWT,OAVAozG,MACApzG,EAAQrZ,KAAKwrH,cAAc99G,OAAO,SAAS8O,GACzC,GAAI5C,EAEJ,OADAA,GAAK4C,EAAGq5C,OAAO,YAAa,OACxB42D,EAAI1lH,QAAQ6S,UACd6yG,EAAIllH,KAAKqS,IACF,KAIJP,EAAM3L,OAAO,SAAUtF,GAC5B,MAAO,UAASoU,GACd,MAAOA,GAAGq5C,OAAO,YAAa,SAAWztD,EAAMigE,YAAYviE,IAAI,QAEhE9F,QAGLmrH,EAA+Bv7G,UAAUg8G,uBAAyB,WAChE,GAAIvyG,EAYJ,OAXArZ,MAAK0sH,wBAA0B1sH,KAAK2sH,4BAChC3sH,KAAK0sH,yBACPrzG,EAAQrZ,KAAKwsH,gCACbxsH,KAAKyrH,gBAAkBpyG,EAAM/Y,IAAI,SAASkc,GACxC,MAAOA,GAAG1W,IAAI,eAEhB9F,KAAKsrH,sBAAuB,IAE5BtrH,KAAKyrH,gBAAkBzrH,KAAK0rH,aAC5B1rH,KAAKsrH,sBAAuB,GAEvBtrH,KAAKyrH,gBAAkBzrH,KAAKyrH,gBAAgBlkH,KAAKvH,KAAKqoE,cAG/D8iD,EAA+Bv7G,UAAU+8G,0BAA4B,WACnE,GAAIp0D,GAAOl/C,CAGX,OAFAA,GAAQrZ,KAAKwsH,gCACbj0D,EAAQl/C,EAAM5C,KAAO,EACjBzW,KAAK8Z,QAAQhU,IAAI,eACX9F,KAAK+f,mBAAmBunG,4BAA4B/uD,GAAOxrD,OAE3D/M,KAAK+f,mBAAmBynG,2BAA2BjvD,GAAOxrD,OAI/Do+G,KAITvoH,QAAQjD,OAAO,iBAAiBwE,WAAW,2BAA4BgnH,IAEtElnH,KAAKjE,MAsBR,WACE,GAAI4sH,EAEJA,GAAgC,WAC9B,OACEvpG,KAAM,SAASzP,EAAO2b,EAAK1b,EAAMqkD,GAE/B,MADAA,GAAKyzD,YACE/3G,EAAMK,OAAO,aAAcikD,EAAKkvD,gBAAgBr3G,KAAKmoD,KAE9Dh0D,YAAa,qEACbC,WAAY,2BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEmG,QAAS,IACTD,QAAS,IACT6xF,SAAU,IACVkhB,SAAU,IACV1yB,KAAM,IACNyM,SAAU,OAKhBgmB,EAA8BxsG,WAE9Bxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,yBAA0BypG,IAEnE3oH,KAAKjE,MAsBR,WACE,GAAI8sH,EAEJA,GAAkC,WAChC,QAASA,MAQT,MANAA,GAAgCl9G,UAAU4iG,cAAgB,SAAS14F,GACjE,MAAO9Z,MAAKuoH,iBACVzuG,QAASmH,UAAUC,OAAOpH,MAIvBgzG,KAITlqH,QAAQjD,OAAO,iBAAiBwE,WAAW,4BAA6B2oH,IAEvE7oH,KAAKjE,MAsBR,WACE,GAAI+sH,EAEJA,GAAiC,WAC/B,OACE7oH,YAAa,uEACbC,WAAY,4BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEyG,SAAU,IACVusF,SAAU,IACV2hB,gBAAiB,IACjBpuB,KAAM,IACN6yB,cAAe,IACfxmH,OAAQ,OAKd5D,QAAQjD,OAAO,iBAAiBwjB,UAAU,0BAA2B4pG,IAEpE9oH,KAAKjE,MAsBR,WACE,GAAIitH,EAEJA,GAAwB,WAGtB,QAASA,GAAsB9+E,EAAS/zB,EAAI8tG,EAAsBnpG,GAChE/e,KAAKmuC,QAAUA,EACfnuC,KAAKoa,GAAKA,EACVpa,KAAKkoH,qBAAuBA,EAC5BloH,KAAK+e,UAAYA,EAgBnB,MAtBAkuG,GAAsB7sG,SAAW,aAAc,eAAgB,yBAA0B,cASzF6sG,EAAsBr9G,UAAUs9G,YAAc,SAASthD,GACrD,GAAIvzB,GAAMh0C,EAAQjB,CAClBi1C,GAAOuzB,EAAM,GACbvnE,EAASrE,KAAKmuC,QAAQ9pC,OAAOrE,KAAK+e,UAAUxW,QAAQ,oCAAqCvI,KAAK+e,UAAUxW,QAAQ,2CAA2C,GAC3JlE,EAAOqK,QACPtL,EAAUpD,KAAKoa,GAAGC,SAAS,UAAUg+B,EAAMh0C,EAAOimB,QAClDtqB,KAAKkoH,qBAAqBU,cAAcxlH,GAAS,WAAW,SAAUgF,GACpE,MAAO,YACL,MAAO/D,GAAO+oC,SAEfptC,QAGEitH,KAITrqH,QAAQjD,OAAO,iBAAiBwE,WAAW,kBAAmB8oH,IAE7DhpH,KAAKjE,MAsBR,WACE,GAAImtH,EAEJA,GAAuB,WACrB,OACEjpH,YAAa,iDACbC,WAAY,kBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,WAIJhR,QAAQjD,OAAO,iBAAiBwjB,UAAU,gBAAiBgqG,IAE1DlpH,KAAKjE,MAER,WACE,GAAIotH,EAEJA,GAAyB,SAAS/gH,GAChC,GAAIgX,EAOJ,OANAA,GAAO,SAASzP,EAAOd,EAAIyb,GAEzB,MADAliB,GAAgBuoB,KAAK9hB,GACdc,EAAM2e,MAAQ,WACnBlmB,EAAgBkmB,MAAMzf,MAIxB5O,YAAa,sDACbmf,KAAMA,IAIV+pG,EAAuBhtG,SAAW,mBAElCxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,kBAAmBiqG,IAE5DnpH,KAAKjE,MAsBR,WACE,GAAIqtH,EAEJA,GAA0B,WAGxB,QAASA,GAAwBC,EAAeC,EAAaC,EAAeC,EAAc7yG,EAAU1a,EAAQ2rG,EAAa6hB,EAAWhnH,GAClI1G,KAAKstH,cAAgBA,EACrBttH,KAAKutH,YAAcA,EACnBvtH,KAAKwtH,cAAgBA,EACrBxtH,KAAKytH,aAAeA,EACpBztH,KAAK4a,SAAWA,EAChB5a,KAAKE,OAASA,EACdF,KAAK6rG,YAAcA,EACnB7rG,KAAK0tH,UAAYA,EACjB1tH,KAAK0G,OAASA,EA2HhB,MAtIA2mH,GAAwBjtG,SAAW,wBAAyB,sBAAuB,wBAAyB,uBAAwB,YAAa,UAAW,eAAgB,aAAc,aAc1LitG,EAAwBz9G,UAAUlB,MAAQ,WACxC,GAAIi/G,GAAiBC,EAAkBC,EAAgBC,EAAgBC,CAIvE,IAHA/tH,KAAK8hB,MAAQ,KACb9hB,KAAKguH,KAAOhuH,KAAK6rG,YAAYghB,SAC7BiB,EAAiB9tH,KAAK4a,SAASpU,SACb,UAAdxG,KAAKguH,KAAkB,CAEzB,GADAL,EAAkBG,EAAen4E,KAC7Bm4E,EAAen4E,KAEjB,MADAg4E,GAAkBG,EAAen4E,KAC1B31C,KAAKytH,aAAalE,UAAUoE,GAAiBxqH,KAAM,SAAUiF,GAClE,MAAO,UAAS0Z,GACd,MAAO1Z,GAAMwS,SAASpU,QACpBsb,MAAOmB,mBAAmBziB,KAAKC,UAAUqhB,QAG5C9hB,MAAQA,KAAKiuH,oBAAoBl+G,KAAK/P,MAEzCA,MAAK8hB,MAAQthB,KAAKwI,MAAMiX,mBAAmB6tG,EAAehsG,QAC1D9hB,KAAKytH,aAAa5rG,SAAS7hB,KAAK8hB,OAGpC,GAAkB,WAAd9hB,KAAKguH,KAAmB,CAC1B,GAAIF,EAAeI,eAEjB,MADAH,GAAmBD,EAAeI,eAC3BluH,KAAKstH,cAAc/D,UAAUwE,GAAkB5qH,KAAM,SAAUiF,GACpE,MAAO,UAAS0Z,GACd,MAAO1Z,GAAMwS,SAASpU,QACpBsb,MAAOA,MAGV9hB,MAAQA,KAAKiuH,oBAAoBl+G,KAAK/P,MAChC8tH,GAAehsG,QACxB9hB,KAAK8hB,MAAQgsG,EAAehsG,MAC5B9hB,KAAKstH,cAAczrG,SAASisG,EAAehsG,QAG/C,GAAkB,WAAd9hB,KAAKguH,KAAmB,CAC1B,GAAIF,EAAen4E,KAEjB,MADAi4E,GAAmBE,EAAen4E,KAC3B31C,KAAKwtH,cAAcjE,UAAUqE,GAAkBzqH,KAAM,SAAUiF,GACpE,MAAO,UAAS0Z,GACd,MAAO1Z,GAAMwS,SAASpU,QACpBsb,MAAOA,MAGV9hB,MAAQA,KAAKiuH,oBAAoBl+G,KAAK/P,MAChC8tH,GAAehsG,QACxB9hB,KAAK8hB,MAAQgsG,EAAehsG,MAC5B9hB,KAAKwtH,cAAc3rG,SAASisG,EAAehsG,QAG/C,GAAkB,SAAd9hB,KAAKguH,KAEP,MADAH,GAAiBC,EAAeK,YAC5BN,EACK7tH,KAAKutH,YAAYhE,YAAYpmH,KAAM,SAAUiF,GAClD,MAAO,UAASL,GACd,MAAOK,GAAMwS,SAASpU,QACpBsb,MAAO/Z,EAAK+Z,MACZhb,IAAKiB,EAAKjB,QAGb9G,MAAQA,KAAKiuH,oBAAoBl+G,KAAK/P,QAEzCA,KAAK8hB,MAAQgsG,EAAehsG,MACrB9hB,KAAKutH,YAAY1rG,SAASisG,EAAehsG,MAAOgsG,EAAehnH,OAK5EumH,EAAwBz9G,UAAUumB,OAAS,SAAS63F,GAClD,GAAI9C,EACJ,OAAa,WAAT8C,EACKhuH,KAAKstH,cAAcjE,aAAalmH,KAAK,SAAUiF,GACpD,MAAO,UAAStB,GACd,MAAOsB,GAAMlI,OAAO00B,KAAK9tB,EAAK,WAE/B9G,OACe,SAATguH,EACFhuH,KAAKutH,YAAYlE,WAAWrpH,KAAKouH,SAASjrH,KAAK,SAAUiF,GAC9D,MAAO,UAAStB,GACd,MAAOsB,GAAMlI,OAAO00B,KAAK9tB,EAAK,WAE/B9G,OACe,WAATguH,GACT9C,EAAclrH,KAAK4a,SAASyzG,SAAW,UAChCruH,KAAKwtH,cAAcnE,WAAW6B,GAAa/nH,KAAK,SAAUiF,GAC/D,MAAO,UAAStB,GACd,MAAOsB,GAAMlI,OAAO00B,KAAK9tB,EAAK,WAE/B9G,QACe,UAATguH,EACFhuH,KAAKytH,aAAapE,aAAalmH,KAAK,SAAUiF,GACnD,MAAO,UAAStB,GACd,MAAOsB,GAAMlI,OAAO00B,KAAK9tB,EAAK,WAE/B9G,OAEIA,KAAKguH,KAAOA,GAIvBX,EAAwBz9G,UAAU0+G,cAAgB,SAAS7nE,GACzD,MAAOzmD,MAAKuuH,gBAAkB9nE,GAGhC4mE,EAAwBz9G,UAAU4+G,iBAAmB,SAAStvF,GAC5D,MAAIl/B,MAAK0G,OAAOZ,IAAI,aAAaiB,QAAQm4B,SAM3CmuF,EAAwBz9G,UAAUq+G,oBAAsB,WACtD,MAAOjuH,MAAK4a,SAAS9T,IAAI9G,KAAK0tH,UAAU/qH,QAAQ,2BAGlD0qH,EAAwBz9G,UAAU6+G,aAAe,WAC/C,MAAOzuH,MAAK4a,SAAS9T,IAAI9G,KAAK0tH,UAAU/qH,QAAQ,oBAG3C0qH,KAITzqH,QAAQjD,OAAO,iBAAiBwE,WAAW,oBAAqBkpH,IAE/DppH,KAAKjE,MAsBR,WACE,GAAI0uH,EAEJA,GAAyB,WACvB,GAAIrrG,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIe,EAAMqkD,GAC/B,MAAOA,GAAKxpD,UAGZ2U,KAAMA,EACNnf,YAAa,6CACbC,WAAY,oBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACE+6G,eAAgB,OAKtBD,EAAuBtuG,WAEvBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,kBAAmBurG,IAE5DzqH,KAAKjE,MAsBR,WACE,GAAI4uH,GACF/rH,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf8+G,GAAuB,SAAUx+G,GAK/B,QAASw+G,GAAqB7uG,EAAoBoxD,EAAQ/H,EAAiBrqD,EAAWovB,EAASvzB,EAAU8yG,GACvG1tH,KAAK+f,mBAAqBA,EAC1B/f,KAAKmxE,OAASA,EACdnxE,KAAKopE,gBAAkBA,EACvBppE,KAAK+e,UAAYA,EACjB/e,KAAKmuC,QAAUA,EACfnuC,KAAK4a,SAAWA,EAChB5a,KAAK0tH,UAAYA,EAgHnB,MA3HA7qH,GAAO+rH,EAAsBx+G,GAE7Bw+G,EAAqBxuG,SAAW,uBAAwB,UAAW,oBAAqB,aAAc,aAAc,YAAa,cAYjIwuG,EAAqBh/G,UAAUg5G,cAAgB,SAASxlH,GACtD,MAAOA,GAAQD,KAAKnD,KAAK6uH,cAAc9+G,KAAK/P,MAAOA,KAAK8uH,YAAY/+G,KAAK/P,QAG3E4uH,EAAqBh/G,UAAUi/G,cAAgB,SAAS55G,GACtD,GAAI7R,EAoBJ,OAnBAA,GAAUpD,KAAK+f,mBAAmB0pD,eAClCrmE,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAIyF,GAAKmX,EAASwO,EAAKlvB,CACvB,OAAsB,OAAlB2Q,EAAOxO,QACTnC,EAAQ8D,EAAM2W,UAAUxW,QAAQ,0CAChCyc,EAAU5c,EAAM2W,UAAUxW,QAAQ,4CAClCH,EAAMwS,SAASnY,KAAK2F,EAAMslH,UAAU/qH,QAAQ,SACrCyF,EAAM+lC,QAAQlpB,QAAQ3gB,EAAO0gB,KAEpCnX,GACEiM,QAAS7E,EAAOlN,KAAKylB,MAEvBplB,EAAMwS,SAASnY,KAAK2F,EAAMslH,UAAU/qH,QAAQ,wCAAyCkL,IACrF2lB,EAAMprB,EAAM2W,UAAUxW,QAAQ,+BACvBH,EAAM+lC,QAAQ3lC,OAAO,UAAWgrB,MAG1CxzB,OACIoD,GAGTwrH,EAAqBh/G,UAAUk/G,YAAc,SAAS75G,GACpD,GAAI7R,EAuBJ,OAtBAA,GAAUpD,KAAKmxE,OAAOxkE,UACtBvJ,EAAQD,KAAK,SAAUiF,GACrB,MAAO,YACL,GAAIurE,GAAUnwE,EAAKurH,CAEnB,OADAA,GAAmB3mH,EAAM4mH,oBAAoB/5G,GACzC85G,EACK3mH,EAAMghE,gBAAgB30C,OAAO,sBAClCi1C,QAAS,kCACRqlD,IAEHp7C,EAAWvrE,EAAM2W,UAAUxW,QAAQ,wBACb,MAAlB0M,EAAOxO,OACTktE,EAAWvrE,EAAM2W,UAAUxW,QAAQ,0CACH,OAAtB/E,EAAMyR,EAAOlN,MAAgBvE,EAAIshB,eAAiB,UAC5D6uD,EAAWvrE,EAAM2W,UAAUxW,QAAQ,gCACjC0mH,cAAeh6G,EAAOlN,KAAK+c,kBAGxB1c,EAAM+lC,QAAQ3lC,OAAO,QAASmrE,MAGxC3zE,OACIoD,GAGTwrH,EAAqBh/G,UAAUo/G,oBAAsB,SAAS/5G,GAC5D,GAAIi6G,GAAUC,EAAgBC,EAAcC,EAAcC,EAAa/iH,CACvE,SAAI0I,EAAOvP,UACTwpH,EAAW,GACX3iH,EAAOvM,KAAK+f,mBAAmB1R;AAC/B8gH,EAAiB,KACbl6G,EAAOvP,QAAQyjF,WACjBkmC,GAAgBrvH,KAAK+f,mBAAmBgnG,2BAA2Bh6G,MAEjEqiH,EADmD,OAAjD7iH,EAAKzG,IAAI,qCAAgDmP,EAAOvP,QAAQg0B,aAAentB,EAAKzG,IAAI,oCAKhGupH,GAAgBD,GAClBF,EAAW,wBACXC,EAAiB5iH,EAAKzG,IAAI,qCACjBupH,EACTH,EAAW,gBACFE,IACTF,EAAW,kBACXC,EAAiB5iH,EAAKzG,IAAI,uCAG5BwpH,GAAetvH,KAAK+f,mBAAmB+mG,0BAA0B/5G,MAE/DqiH,EADkD,OAAhD7iH,EAAKzG,IAAI,oCAA+CmP,EAAOvP,QAAQg0B,aAAentB,EAAKzG,IAAI,mCAK/FwpH,GAAeF,GACjBF,EAAW,uBACXC,EAAiB5iH,EAAKzG,IAAI,oCACjBwpH,EACTJ,EAAW,eACFE,IACTF,EAAW,iBACXC,EAAiB5iH,EAAKzG,IAAI,uCAGzBopH,IAIHx/G,IAAKw/G,EACL59E,QACE88B,gBAAiB+gD,EACjBp1G,QAAS9E,EAAOvP,QAAQg0B,gBAQzBk1F,GAEN7uH,MAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,yBAA0BgsG,IAEjE3qH,KAAKjE,MAsBR,WACE,GAAIuvH,EAEJA,GAA0B,WACxB,QAASA,MAQT,MANAA,GAAwBnvG,WAExBmvG,EAAwB3/G,UAAUg4G,WAAa,SAAShuG,GACtD,MAAO5Z,MAAKuqH,eAAexjH,QAAQ6S,SAG9B21G,KAIT3sH,QAAQjD,OAAO,iBAAiBwE,WAAW,oBAAqBorH,IAE/DtrH,KAAKjE,MAsBR,WACE,GAAIwvH,EAEJA,GAAyB,WACvB,GAAInsG,EAEJ,OADAA,GAAO,SAASzP,EAAOd,EAAIe,EAAMqkD,MAE/B70C,KAAMA,EACNnf,YAAa,qDACbC,WAAY,oBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACE22G,eAAgB,IAChBxwG,QAAS,IACT01G,sBAAuB,OAK7BD,EAAuBpvG,WAEvBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,kBAAmBqsG,IAE5DvrH,KAAKjE,MAsBR,WACE,GAAI0vH,EAEJA,GAAwB,WACtB,OACExrH,YAAa,kEACb0P,OACE+7G,SAAU,IACV93F,OAAQ,OAKd63F,EAAsBtvG,WAEtBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,iBAAkBusG,IAE3DzrH,KAAKjE,MAsBR,WACE,GAAI4vH,EAEJA,GAAkC,WAGhC,QAASA,GAAgC7vG,GACvC/f,KAAK+f,mBAAqBA,EAC1B/f,KAAK8mH,wBAA0B9mH,KAAK+f,mBAAmB+mG,0BACvD9mH,KAAK+mH,yBAA2B/mH,KAAK+f,mBAAmBgnG,2BACxD/mH,KAAKgnH,YAAchnH,KAAK8Z,QAAQrB,OAChCzY,KAAKgnH,YAAYrqC,YAAa,EAC9B38E,KAAKgnH,YAAYE,uBAAwB,EACF,UAAnClnH,KAAKgnH,YAAY6I,cACnB7vH,KAAKgnH,YAAYG,aAAe,KAEhCnnH,KAAKgnH,YAAYG,aAAe,QAElCnnH,KAAKgnH,YAAY8I,kBAAmB,GAC/B9vH,KAAK8mH,wBAAwB/5G,OAAS/M,KAAK+mH,yBAAyBh6G,QACvE/M,KAAKgnH,YAAYrqC,YAAa,GA2BlC,MA3CAizC,GAAgCxvG,SAAW,wBAoB3CwvG,EAAgChgH,UAAUw3G,gBAAkB,WAE1D,MADApnH,MAAKqnH,2BAA6BrnH,KAAK+f,mBAAmBunG,4BAA4BtnH,KAAK+Z,QAAQtD,MAC5FzW,KAAKunH,0BAA4BvnH,KAAK+f,mBAAmBynG,2BAA2BxnH,KAAK+Z,QAAQtD,OAG1Gm5G,EAAgChgH,UAAU63G,SAAW,WACnD,MAAOznH,MAAK0nH,sBACV5tG,QAASmH,UAAUC,OAAOlhB,KAAKgnH,gBAInC4I,EAAgChgH,UAAU+3G,iBAAmB,WAC3D,MAAI3nH,MAAKgnH,YAAYrqC,WACZ38E,KAAK+mH,yBAAyBh6G,MAE9B/M,KAAK8mH,wBAAwB/5G,OAIxC6iH,EAAgChgH,UAAUg4G,WAAa,WACrD,OAAQ5nH,KAAK2nH,oBAGRiI,KAIThtH,QAAQjD,OAAO,iBAAiBwE,WAAW,4BAA6ByrH,IAEvE3rH,KAAKjE,MAsBR,WACE,GAAI+vH,EAEJA,GAAiC,WAC/B,OACE1sG,KAAM,SAASzP,EAAO2b,EAAK1b,EAAMqkD,GAC/B,MAAOtkD,GAAMK,OAAO,aAAcikD,EAAKkvD,gBAAgBr3G,KAAKmoD,KAE9Dh0D,YAAa,qFACbC,WAAY,4BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEmG,QAAS,IACTD,QAAS,IACT4tG,qBAAsB,IACtBI,aAAc,IACdC,cAAe,OAKrBgI,EAA+B3vG,WAE/Bxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,0BAA2B4sG,IAEpE9rH,KAAKjE,MAsBR,WACE,GAAIgwH,EAEJA,GAAuB,WAGrB,QAASA,GAAqBC,EAAmB9hF,EAASpvB,EAAWmpG,GACnEloH,KAAKiwH,kBAAoBA,EACzBjwH,KAAKmuC,QAAUA,EACfnuC,KAAK+e,UAAYA,EACjB/e,KAAKkoH,qBAAuBA,EAC5BloH,KAAKmoH,KAAO,oBACZnoH,KAAK8Z,QAAU,KACf/Z,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM6nH,kBAAkB51G,WAEhCra,OACHD,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM6nH,kBAAkB7H,eAEhCpoH,OAiDL,MAnEAgwH,GAAqB5vG,SAAW,sBAAuB,aAAc,aAAc,0BAqBnF4vG,EAAqBpgH,UAAUy4G,qBAAuB,WAEpD,MADAroH,MAAKmoH,KAAO,sBACLnoH,KAAKiwH,kBAAkB3H,iBAGhC0H,EAAqBpgH,UAAU24G,gBAAkB,SAASzuG,GAIxD,MAHA9Z,MAAKmoH,KAAO,oBACZnoH,KAAK8Z,QAAUA,EACf9Z,KAAK+nH,eAAgB,EACd/nH,KAAKiwH,kBAAkBzH,WAAWxoH,KAAK8Z,QAAQhU,IAAI,OAAO3C,KAAK,SAAUiF,GAC9E,MAAO,YACL,MAAOA,GAAM2/G,eAAgB,IAE9B/nH,QAGLgwH,EAAqBpgH,UAAU83G,qBAAuB,SAAS5tG,GAE7D,MADA9Z,MAAK8Z,QAAUA,EACR9Z,KAAKmoH,KAAO,wBAGrB6H,EAAqBpgH,UAAU64G,wBAA0B,WACvD,MAAOzoH,MAAKmoH,KAAO,qBAGrB6H,EAAqBpgH,UAAU84G,YAAc,SAASrvG,GACpD,GAAIhV,GAAQ+kH,EAAahmH,CAQzB,OAPAiB,GAASrE,KAAKmuC,QAAQ9pC,OAAOrE,KAAK+e,UAAUxW,QAAQ,oCAAqCvI,KAAK+e,UAAUxW,QAAQ,2CAA2C,GAC3JlE,EAAOqK,QACP06G,EAAcppH,KAAK8Z,QAAQhU,IAAI,gBACX,WAAhBsjH,GAA4BppH,KAAK8Z,QAAQhU,IAAI,sBAC/CsjH,EAAc,yBAEhBhmH,EAAUpD,KAAKiwH,kBAAkBtH,cAAc3oH,KAAK8Z,QAAQhU,IAAI,QAAS9F,KAAK8Z,QAAQhU,IAAI,eAAgB9F,KAAK8Z,QAAQhU,IAAI,MAAOuT,EAAOrZ,KAAK8Z,QAAQhU,IAAI,yBAA0B9F,KAAK8Z,QAAQhU,IAAI,cAAesjH,EAAappH,KAAK8Z,QAAQhU,IAAI,kBAC3O9F,KAAKkoH,qBAAqBU,cAAcxlH,GAASD,KAAK,SAAUiF,GACrE,MAAO,YACL,MAAO/D,GAAO+oC,SAEfptC,QAGLgwH,EAAqBpgH,UAAUi5G,oBAAsB,SAASxvG,GAE5D,MADArZ,MAAK0oH,YAAYrvG,GACV,MAGF22G,KAITptH,QAAQjD,OAAO,iBAAiBwE,WAAW,iBAAkB6rH,IAE5D/rH,KAAKjE,MAsBR,WACE,GAAIkwH,EAEJA,GAAsB,WACpB,OACE7sG,KAAM,SAASzP,EAAO2b,EAAKhB,EAAO2pC,GAChC,MAAOA,GAAKmwD,wBAEdnkH,YAAa,+CACbC,WAAY,iBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEgzF,SAAU,OAKhBspB,EAAoB9vG,WAEpBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,eAAgB+sG,IAEzDjsH,KAAKjE,MAsBR,WACE,GAAImwH,GACFttH,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfqgH,GAAoB,SAAU//G,GAK5B,QAAS+/G,GAAkBhf,EAAWv2F,GACpC5a,KAAKmxG,UAAYA,EACjBnxG,KAAK4a,SAAWA,EAChB5a,KAAKqa,SAAW4G,UAAU0yB,OAC1B3zC,KAAKooH,aAAennG,UAAU0yB,OAqDhC,MA7DA9wC,GAAOstH,EAAmB//G,GAE1B+/G,EAAkB/vG,SAAW,cAAe,aAS5C+vG,EAAkBvgH,UAAUiS,SAAW,SAASC,EAAOhb,GAErD,MADA9G,MAAK8hB,MAAQA,EACN9hB,KAAK8G,IAAMA,GAGpBqpH,EAAkBvgH,UAAU04G,cAAgB,WAC1C,MAAOtoH,MAAKmxG,UAAUif,aAAanH,aAAajpH,KAAK8G,IAAK9G,KAAK8hB,OAAO3e,KAAK,SAAUiF,GACnF,MAAO,UAASiS,GACd,MAAOjS,GAAMiS,SAAWA,IAEzBra,QAGLmwH,EAAkBvgH,UAAU44G,WAAa,SAASjuG,GAChD,MAAOva,MAAKmxG,UAAUif,aAAalH,UAAUlpH,KAAK8G,IAAK9G,KAAK8hB,MAAOvH,GAAWpX,KAAK,SAAUiF,GAC3F,MAAO,UAASiR,GACd,MAAOjR,GAAMggH,aAAe/uG,IAE7BrZ,QAGLmwH,EAAkBvgH,UAAU+4G,cAAgB,SAASp0G,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,EAAaiH,GAC9I,MAAOrwH,MAAKmxG,UAAUif,aAAazH,cAAc3oH,KAAK8G,IAAK9G,KAAK8hB,MAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,EAAaiH,IAGpKF,EAAkBvgH,UAAUy5G,WAAa,SAASviH,GAChD,MAAO,IAAIiH,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,GACd,MAAOyF,GAAM+oG,UAAUif,aAAa/G,WAAWviH,GAAK3D,KAAK,SAASmD,GAEhE,MADA8B,GAAMkhH,QAAUhjH,EAASyB,KAAKjB,IACvBnE,EAAQyF,EAAMkhH,aAGxBtpH,QAGLmwH,EAAkBvgH,UAAU25G,UAAY,WACtC,MAAO,IAAIx7G,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,MAAOiB,GAAM+oG,UAAUif,aAAa7G,YAAYpmH,KAAK,SAAUmD,GAG7D,MAFA8B,GAAM0Z,MAAQxb,EAASyB,KAAK+Z,MAC5B1Z,EAAMtB,IAAMR,EAASyB,KAAKjB,IACnBnE,EAAQ2D,EAASyB,OACtB,SAASlB,GACX,MAAOM,GAAO,GAAI8rB,OAAMpsB,EAAMJ,aAGjCzG,QAGEmwH,GAENpwH,MAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,sBAAuButG,IAE9DlsH,KAAKjE,MAsBR,WACE,GAAIswH,EAEJA,GAA+B,WAG7B,QAASA,MAqBT,MAvBAA,GAA6BlwG,WAI7BkwG,EAA6B1gH,UAAUlB,MAAQ,WAE7C,MADA1O,MAAKmyD,KAAO,SACLnyD,KAAKuwH,SAAU,GAGxBD,EAA6B1gH,UAAU4gH,WAAa,WAClD,MAAOxwH,MAAKywH,cACVlkH,KAAMvM,KAAKuM,KACX0/G,UAAWjsH,KAAK0wH,aAIpBJ,EAA6B1gH,UAAU29D,WAAa,SAAS0+C,GAC3D,MAAOjsH,MAAKywH,cACVlkH,KAAMvM,KAAKuM,KACX0/G,UAAWhrG,UAAUC,OAAO+qG,MAIzBqE,KAIT1tH,QAAQjD,OAAO,iBAAiBwE,WAAW,+BAAgCmsH,IAE1ErsH,KAAKjE,MAsBR,WACE,GAAI2wH,EAEJA,GAAoC,SAAStkH,EAAiBysC,GAC5D,GAAIz1B,EAiBJ,OAhBAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOtkD,GAAMK,OAAO,aAAc,SAASmiC,GACzC,MAAIA,KAAYtjC,EAAG21B,SAAS,SAC1ByvB,EAAKxpD,QACErC,EAAgBuoB,KAAK9hB,EAAI,KAAMc,EAAM0jF,GAAG9nE,SAASrsB,KAAK,WAE3D,MADA2P,GAAG2J,KAAK,SAASwT,QACV6oB,EAAkCp5C,KAAKoT,OAEtCsjC,GAAWtjC,EAAG21B,SAAS,QAC1Bp8B,EAAgBkmB,MAAMzf,GAAI3P,KAAK,WAEpC,MADA+0D,GAAKw4D,UAAY,GACVx4D,EAAKte,YAAc,KAHvB,WASTz1C,WAAY,+BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACErH,KAAM,IACN6pC,QAAS,IACT5mB,QAAS,IACTihG,aAAc,IACdhF,gBAAiB,IACjBtiC,UAAW,IACXk+B,2BAA4B,IAC5BE,0BAA2B,IAC3B+D,qBAAsB,KAExBpnH,YAAa,+EACbmf,KAAMA,IAIVstG,EAAkCvwG,SAAW,kBAAmB,qCAEhExd,QAAQjD,OAAO,iBAAiBwjB,UAAU,6BAA8BwtG,IAEvE1sH,KAAKjE,MAsBR,WACE,GAAI4wH,EAEJA,GAAoC,WAGlC,QAASA,GAAkC7wG,GACzC/f,KAAK+f,mBAAqBA,EAC1B/f,KAAK8mH,wBAA0B9mH,KAAK+f,mBAAmB+mG,0BACvD9mH,KAAK+mH,yBAA2B/mH,KAAK+f,mBAAmBgnG,2BACxD/mH,KAAKgnH,YAAchnH,KAAK8Z,QAAQrB,OAChCzY,KAAKinH,aAAe,SACpBjnH,KAAKgnH,YAAYrqC,YAAa,EAC9B38E,KAAKgnH,YAAYE,uBAAwB,GACpClnH,KAAK8mH,wBAAwB/5G,OAAS/M,KAAK+mH,yBAAyBh6G,QACvE/M,KAAKgnH,YAAYrqC,YAAa,GA2BlC,MAtCAi0C,GAAkCxwG,SAAW,wBAe7CwwG,EAAkChhH,UAAUw3G,gBAAkB,WAE5D,MADApnH,MAAKqnH,2BAA6BrnH,KAAK+f,mBAAmBunG,4BAA4BtnH,KAAK+Z,QAAQtD,MAC5FzW,KAAKunH,0BAA4BvnH,KAAK+f,mBAAmBynG,2BAA2BxnH,KAAK+Z,QAAQtD,OAG1Gm6G,EAAkChhH,UAAU63G,SAAW,WACrD,MAAOznH,MAAK0nH,sBACV5tG,QAASmH,UAAUC,OAAOlhB,KAAKgnH,gBAInC4J,EAAkChhH,UAAU+3G,iBAAmB,WAC7D,MAAI3nH,MAAKgnH,YAAYrqC,WACZ38E,KAAK+mH,yBAAyBh6G,MAE9B/M,KAAK8mH,wBAAwB/5G,OAIxC6jH,EAAkChhH,UAAUg4G,WAAa,WACvD,OAAQ5nH,KAAK2nH,oBAGRiJ,KAIThuH,QAAQjD,OAAO,iBAAiBwE,WAAW,8BAA+BysH,IAEzE3sH,KAAKjE,MAsBR,WACE,GAAI6wH,EAEJA,GAAmC,WACjC,OACExtG,KAAM,SAASzP,EAAO2b,EAAK1b,EAAMqkD,GAC/B,MAAOtkD,GAAMK,OAAO,aAAcikD,EAAKkvD,gBAAgBr3G,KAAKmoD,KAE9Dh0D,YAAa,2FACbC,WAAY,8BACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEmG,QAAS,IACTD,QAAS,IACT4tG,qBAAsB,IACtBI,aAAc,IACdC,cAAe,OAKrB8I,EAAiCzwG,WAEjCxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,4BAA6B0tG,IAEtE5sH,KAAKjE,MAsBR,WACE,GAAI8wH,EAEJA,GAAyB,WAGvB,QAASA,GAAuBC,EAAqB5iF,EAASpvB,EAAWmpG,GACvEloH,KAAK+wH,oBAAsBA,EAC3B/wH,KAAKmuC,QAAUA,EACfnuC,KAAK+e,UAAYA,EACjB/e,KAAKkoH,qBAAuBA,EAC5BloH,KAAK8Z,QAAU,KACf/Z,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM2oH,oBAAoB12G,WAElCra,OACHD,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM2oH,oBAAoB3I,eAElCpoH,OAgDL,MAjEA8wH,GAAuB1wG,SAAW,wBAAyB,aAAc,aAAc,0BAoBvF0wG,EAAuBlhH,UAAUy4G,qBAAuB,WACtD,MAAOroH,MAAK+wH,oBAAoBzI,gBAAgBnlH,KAAK,SAAUiF,GAC7D,MAAO,YACL,MAAOA,GAAM+/G,KAAO,0BAErBnoH,QAGL8wH,EAAuBlhH,UAAU24G,gBAAkB,SAASzuG,GAI1D,MAHA9Z,MAAKmoH,KAAO,sBACZnoH,KAAK8Z,QAAUA,EACf9Z,KAAK+nH,eAAgB,EACd/nH,KAAK+wH,oBAAoBvI,WAAWxoH,KAAK8Z,QAAQhU,IAAI,OAAO3C,KAAK,SAAUiF,GAChF,MAAO,YACL,MAAOA,GAAM2/G,eAAgB,IAE9B/nH,QAGL8wH,EAAuBlhH,UAAU83G,qBAAuB,SAAS5tG,GAE/D,MADA9Z,MAAK8Z,QAAUA,EACR9Z,KAAKmoH,KAAO,0BAGrB2I,EAAuBlhH,UAAU64G,wBAA0B,WACzD,MAAOzoH,MAAKmoH,KAAO,uBAGrB2I,EAAuBlhH,UAAU84G,YAAc,SAASrvG,GACtD,GAAIhV,GAAQjB,CAIZ,OAHAiB,GAASrE,KAAKmuC,QAAQ9pC,OAAOrE,KAAK+e,UAAUxW,QAAQ,oCAAqCvI,KAAK+e,UAAUxW,QAAQ,2CAA2C,GAC3JlE,EAAOqK,QACPtL,EAAUpD,KAAK+wH,oBAAoBpI,cAAc3oH,KAAK8Z,QAAQhU,IAAI,QAAS9F,KAAK8Z,QAAQhU,IAAI,eAAgB9F,KAAK8Z,QAAQhU,IAAI,MAAOuT,EAAOrZ,KAAK8Z,QAAQhU,IAAI,yBAA0B9F,KAAK8Z,QAAQhU,IAAI,eAChM9F,KAAKkoH,qBAAqBU,cAAcxlH,GAASD,KAAK,SAAUiF,GACrE,MAAO,YACL,MAAO/D,GAAO+oC,SAEfptC,QAGL8wH,EAAuBlhH,UAAUi5G,oBAAsB,SAASxvG,GAE9D,MADArZ,MAAK0oH,YAAYrvG,GACV,MAGFy3G,KAITluH,QAAQjD,OAAO,iBAAiBwE,WAAW,mBAAoB2sH,IAE9D7sH,KAAKjE,MAsBR,WACE,GAAIgxH,EAEJA,GAAwB,WACtB,OACE3tG,KAAM,SAASzP,EAAO2b,EAAKhB,EAAO2pC,GAChC,MAAOA,GAAKmwD,wBAEdnkH,YAAa,mDACbC,WAAY,mBACZC,aAAc,KACdqpE,kBAAkB,EAClB75D,OACEgzF,SAAU,OAKhBoqB,EAAsB5wG,WAEtBxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,iBAAkB6tG,IAE3D/sH,KAAKjE,MAsBR,WACE,GAAIixH,GACFpuH,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfmhH,GAAsB,SAAU7gH,GAK9B,QAAS6gH,GAAoB9f,GAC3BnxG,KAAKmxG,UAAYA,EACjBnxG,KAAKqa,SAAW4G,UAAU0yB,OAC1B3zC,KAAKooH,aAAennG,UAAU0yB,OAC9B3zC,KAAK8hB,MAAQ,KAmDf,MA3DAjf,GAAOouH,EAAqB7gH,GAE5B6gH,EAAoB7wG,SAAW,eAS/B6wG,EAAoBrhH,UAAUiS,SAAW,SAASC,GAChD,MAAO9hB,MAAK8hB,MAAQA,GAGtBmvG,EAAoBrhH,UAAU04G,cAAgB,WAC5C,MAAOtoH,MAAKmxG,UAAU+f,eAAejI,aAAajpH,KAAK8hB,OAAO3e,KAAK,SAAUiF,GAC3E,MAAO,UAASiS,GACd,MAAOjS,GAAMiS,SAAWA,IAEzBra,QAGLixH,EAAoBrhH,UAAU44G,WAAa,SAASjuG,GAClD,MAAOva,MAAKmxG,UAAU+f,eAAehI,UAAUlpH,KAAK8hB,MAAOvH,GAAWpX,KAAK,SAAUiF,GACnF,MAAO,UAASiR,GACd,MAAOjR,GAAMggH,aAAe/uG,IAE7BrZ,QAGLixH,EAAoBrhH,UAAU+4G,cAAgB,SAASp0G,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,GACxH,MAAOnpF,MAAKmxG,UAAU+f,eAAevI,cAAc3oH,KAAK8hB,MAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,IAGpI8nC,EAAoBrhH,UAAUy5G,WAAa,WACzC,MAAO,IAAIt7G,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,GACd,MAAOyF,GAAM+oG,UAAU+f,eAAe7H,aAAalmH,KAAK,SAASmD,GAE/D,MADA8B,GAAMkhH,QAAUhjH,EAASyB,KAAKjB,IACvBnE,EAAQyF,EAAMkhH,aAGxBtpH,QAGLixH,EAAoBrhH,UAAU25G,UAAY,SAAS4H,GACjD,MAAO,IAAIpjH,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,MAAOiB,GAAM+oG,UAAU+f,eAAe3H,UAAU4H,GAAYhuH,KAAK,SAAUmD,GAEzE,MADA8B,GAAM0Z,MAAQxb,EAASyB,KAAK+Z,MACrBnf,EAAQyF,EAAM0Z,QACnB,SAASjb,GACX,MAAOM,GAAO,GAAI8rB,OAAMpsB,EAAMJ,aAGjCzG,QAGEixH,GAENlxH,MAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,wBAAyBquG,IAEhEhtH,KAAKjE,MAsBR,WACE,GAAIoxH,EAEJA,GAA6B,SAAS/kH,EAAiBysC,GACrD,OACEz1B,KAAM,SAASzP,EAAOd,EAAIe,GACxB,MAAOD,GAAMK,OAAO,UAAW,SAASmiC,GACtC,MAAIA,KAAYtjC,EAAG21B,SAAS,QACnBp8B,EAAgBuoB,KAAK9hB,EAAIc,EAAM4b,SAASrsB,KAAK,WAElD,MADA2P,GAAG2J,KAAK,SAASwT,QACV6oB,EAAkCp5C,KAAKoT,MAEtCsjC,GAAWtjC,EAAG21B,SAAS,QAC1Bp8B,EAAgBkmB,MAAMzf,GADxB,UAKX5O,YAAa,iFACb0P,OACEwiC,QAAS,IACT5mB,QAAS,IACT6hG,UAAW,OAKjBD,EAA2BhxG,SAAW,kBAAmB,qCAEzDxd,QAAQjD,OAAO,iBAAiBwjB,UAAU,8BAA+BiuG,IAExEntH,KAAKjE,MAsBR,WACE,GAAIsxH,EAEJA,GAA4B,WAG1B,QAASA,GAA0BvxG,GACjC/f,KAAK+f,mBAAqBA,EAC1BhgB,MAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAM2X,mBAAmB1F,SAASvU,IAAI,SAE9C9F,OAGL,MAXAsxH,GAA0BlxG,SAAW,wBAW9BkxG,KAIT1uH,QAAQjD,OAAO,iBAAiBwE,WAAW,kBAAmBmtH,IAE7DrtH,KAAKjE,MAsBR,WACE,GAAIuxH,EAEJA,GAAoB,WAGlB,QAASA,GAAkB1lB,EAAa1/F,EAAgBwV,EAAM5C,EAAWzb,GACvEtD,KAAK6rG,YAAcA,EACnB7rG,KAAKmM,eAAiBA,EACtBnM,KAAK2hB,KAAOA,EACZ3hB,KAAK+e,UAAYA,EACjB/e,KAAKsD,eAAiBA,EACtBtD,KAAKuM,KAAOvM,KAAK2hB,KAAKX,SACtBjhB,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM9E,eAAewW,UAE7B9Z,OACHD,MAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAM9E,eAAekuH,gBAE7BxxH,OACHA,KAAKmM,eAAeojG,MAAMvvG,KAAKszD,SAASvjD,KAAK/P,OAiB/C,MApCAuxH,GAAkBnxG,SAAW,eAAgB,mBAAoB,UAAW,aAAc,oBAsB1FmxG,EAAkB3hH,UAAU0jD,SAAW,WACrC,GAAIzlD,EACJ,OAAK7N,MAAK8Z,SAGVjM,GACEyzB,YAAathC,KAAK8Z,QAAQhU,IAAI,UAG9BxB,MAAOtE,KAAK+e,UAAUxW,QAAQ,qBAAsBsF,GACpDtJ,YAAavE,KAAK8Z,QAAQhU,IAAI,iBAPvB,MAWJyrH,KAIT3uH,QAAQjD,OAAO,iBAAiBwE,WAAW,UAAWotH,IAErDttH,KAAKjE,MAsBR,WACE,GAAIyxH,GAAiBjgH,EAASzR,EAC5B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErBigH,EAAkB,SAAUrhH,GAK1B,QAASqhH,GAAgBr3G,EAAIqvG,GAC3BzpH,KAAKoa,GAAKA,EACVpa,KAAKypH,WAAaA,EAsDpB,MA5DA5mH,GAAO4uH,EAAiBrhH,GAExBqhH,EAAgBrxG,SAAW,cAAe,eAO1CqxG,EAAgB7hH,UAAU6kB,OAAS,SAAS1sB,GAC1C,MAAO/H,MAAKoa,GAAGC,SAASoa,OAAO1sB,IAGjC0pH,EAAgB7hH,UAAU66G,UAAY,SAASlwG,EAAWxS,GACxD,MAAO/H,MAAKoa,GAAGC,SAASowG,UAAUlwG,EAAWxS,IAG/C0pH,EAAgB7hH,UAAUy6G,iBAAmB,SAAS7uG,GACpD,MAAOxb,MAAKoa,GAAGC,SAASgwG,iBAAiB7uG,GAAarY,KAAK,SAAUiF,GACnE,MAAO,UAAS0R,GACd,MAAO1R,GAAMilG,UAAUvzF,KAExB9Z,QAGLyxH,EAAgB7hH,UAAU8hH,gBAAkB,SAASn3G,GACnD,MAAOva,MAAKoa,GAAGC,SAASq3G,gBAAgBn3G,IAG1Ck3G,EAAgB7hH,UAAU2rG,oBAAsB,SAASljF,EAAQs5F,GAC/D,MAAO3xH,MAAKoa,GAAGC,SAASkhG,oBAAoBljF,EAAQs5F,GAAUxuH,KAAK,SAAUiF,GAC3E,MAAO,UAASiS,GACd,MAAOA,GAAS/Z,IAAI8H,EAAMilG,UAAUt9F,KAAK3H,MAE1CpI,QAGLyxH,EAAgB7hH,UAAUy9F,UAAY,SAASvzF,GAC7C,GAAIhT,EAGJ,OAFAA,GAAM9G,KAAKypH,WAAW3jH,IAAIgU,EAAQrB,QAClCqB,EAAUA,EAAQiC,IAAI,MAAOjV,IAI/B2qH,EAAgB7hH,UAAUm2G,wBAA0B,SAASF,GAC3D,MAAO7lH,MAAKoa,GAAGC,SAASwtE,gBAAgBg+B,IAG1C4L,EAAgB7hH,UAAUgiH,sBAAwB,SAASr3G,EAAWuH,GACpE,MAAO9hB,MAAKoa,GAAGC,SAASu3G,sBAAsBr3G,EAAWuH,IAG3D2vG,EAAgB7hH,UAAUiiH,eAAiB,SAASt3G,EAAWuH,EAAOgwG,GACpE,MAAO9xH,MAAKoa,GAAGC,SAASw3G,eAAet3G,EAAWuH,EAAOgwG,IAG3DL,EAAgB7hH,UAAUmiH,eAAiB,SAASx3G,EAAWuH,EAAOgwG,GACpE,MAAO9xH,MAAKoa,GAAGC,SAAS03G,eAAex3G,EAAWuH,EAAOgwG,IAGpDL,GAEN1xH,EAAM4Q,SAET/N,QAAQjD,OAAO,iBAAiBijB,QAAQ,oBAAqB6uG,IAE5DxtH,KAAKjE,MAsBR,WACE,GAAIgyH,EAEJA,GAAqC,WACnC,OACE9tH,YAAa,wDAIjBtB,QAAQjD,OAAO,iBAAiBwjB,UAAU,8BAA+B6uG,IAExE/tH,KAAKjE,MAsBR,WACE,GAAIiyH,GAAiBtyH,CAErBA,GAASiD,QAAQjD,OAAO,iBAExBsyH,EAAkB,WAGhB,QAASA,GAAgBpmB,EAAavoG,EAAgBsX,EAAUmkG,EAAah/F,EAAoBkhB,EAASliB,EAAWguD,EAAgB3mE,GACnIpG,KAAK6rG,YAAcA,EACnB7rG,KAAKsD,eAAiBA,EACtBtD,KAAK4a,SAAWA,EAChB5a,KAAK++G,YAAcA,EACnB/+G,KAAK+f,mBAAqBA,EAC1B/f,KAAKihC,QAAUA,EACfjhC,KAAK+e,UAAYA,EACjB/e,KAAK+sE,eAAiBA,EACtB/sE,KAAKoG,qBAAuBA,EA8F9B,MAzGA6rH,GAAgB7xG,SAAW,eAAgB,oBAAqB,YAAa,UAAW,uBAAwB,aAAc,aAAc,aAAc,0BAc1J6xG,EAAgBriH,UAAUtB,WAAa,WAIrC,MAHAtO,MAAKua,UAAYva,KAAK8Z,QAAQhU,IAAI,MAClC9F,KAAK8hB,MAAQ9hB,KAAK6rG,YAAY/pF,MAC9B9hB,KAAKkyH,gBAAiB,EACflyH,KAAKmyH,oBAGdF,EAAgBriH,UAAUwiH,eAAiB,WACzC,MAAOpyH,MAAKsD,eAAesuH,sBAAsB5xH,KAAKua,UAAWva,KAAK8hB,OAAO3e,KAAK,KAAM,SAAUiF,GAChG,MAAO,UAASL,EAAMtB,GACpB,MAAO2B,GAAMhC,qBAAqBmK,aAEnCvQ,QAGLiyH,EAAgBriH,UAAUuiH,iBAAmB,WAC3C,MAAOnyH,MAAK++G,YAAYpyG,UAAUxJ,KAAK,SAAUiF,GAC/C,MAAO,YAGL,MAFAA,GAAMgqH,iBACNhqH,EAAMiqH,kBACCjqH,EAAMkqH,oBAEdtyH,QAGLiyH,EAAgBriH,UAAUyiH,gBAAkB,WAC1C,MAAOryH,MAAKuyH,iBAAmBvyH,KAAK+f,mBAAmByyG,cAAcxyH,KAAK8Z,UAG5Em4G,EAAgBriH,UAAU0iH,gBAAkB,WAC1C,GAAIjqD,GAAa8mD,CAmBjB,OAlBA9mD,GAAcroE,KAAK+f,mBAAmB1R,UAClCrO,KAAK8Z,QAAQhU,IAAI,eACnB9F,KAAKyyH,aAAe,+CACpBzyH,KAAK0yH,YAAcrqD,EAAYviE,IAAI,wBACV,OAArB9F,KAAK0yH,cACP1yH,KAAK0yH,YAAc1yH,KAAK+e,UAAUxW,QAAQ,8CAE5CvI,KAAK2yH,gBAAkBtqD,EAAYviE,IAAI,0BACvCqpH,EAAiB9mD,EAAYviE,IAAI,sCAEjC9F,KAAKyyH,aAAe,8CACpBzyH,KAAK0yH,YAAcrqD,EAAYviE,IAAI,uBACV,OAArB9F,KAAK0yH,cACP1yH,KAAK0yH,YAAc1yH,KAAK+e,UAAUxW,QAAQ,8CAE5CvI,KAAK2yH,gBAAkBtqD,EAAYviE,IAAI,yBACvCqpH,EAAiB9mD,EAAYviE,IAAI,oCAE5B9F,KAAK4yH,yBAA8C,OAAnBzD,GAA2BnvH,KAAK8Z,QAAQhU,IAAI,sBAAwBqpH,GAG7G8C,EAAgBriH,UAAUiiH,eAAiB,SAAS/vG,EAAOgwG,GAEzD,MADA9xH,MAAK6yH,eAAgB,EACd7yH,KAAKsD,eAAeuuH,eAAe7xH,KAAK8Z,QAAQhU,IAAI,MAAOgc,EAAOgwG,GAAQ3uH,KAAK,SAAUiF,GAC9F,MAAO,YACL,GAAIqpE,EACJA,GAASrpE,EAAM64B,QAAQt+B,QAAQ,yCAC7BmX,QAAS1R,EAAM0R,QAAQhU,IAAI,UAE7BsC,EAAMyqH,eAAgB,EACtBzqH,EAAMwS,SAASnY,KAAKgvE,GACpBrpE,EAAM2kE,eAAevkE,OAAO,UAAWJ,EAAM2W,UAAUxW,QAAQ,sDAAuD,GAAI,OAE3HvI,QAGLiyH,EAAgBriH,UAAUmiH,eAAiB,SAASjwG,EAAOgwG,GAEzD,MADA9xH,MAAK8yH,eAAgB,EACd9yH,KAAKsD,eAAeyuH,eAAe/xH,KAAK8Z,QAAQhU,IAAI,MAAOgc,EAAOgwG,GAAQ3uH,KAAK,SAAUiF,GAC9F,MAAO,YACL,GAAIqpE,EACJA,GAASrpE,EAAM64B,QAAQt+B,QAAQ,QAC7BmX,QAAS1R,EAAM0R,QAAQhU,IAAI,UAE7BsC,EAAM0qH,eAAgB,EACtB1qH,EAAMwS,SAASnY,KAAKgvE,GACpBrpE,EAAM2kE,eAAevkE,OAAO,UAAWJ,EAAM2W,UAAUxW,QAAQ,sDAAuD,GAAI,OAE3HvI,QAGLiyH,EAAgBriH,UAAUspG,WAAa,WACrC,MAAOl5G,MAAKkyH,gBAAiB,GAG/BD,EAAgBriH,UAAUmjH,YAAc,WAEtC,MADA/yH,MAAKkyH,gBAAiB,EACflyH,KAAK8xH,OAAS,IAGhBG,KAITtyH,EAAOwE,WAAW,4BAA6B8tH,IAE9ChuH,KAAKjE,MAsBR,WACE,GAAIgzH,GAA0BrzH,CAE9BA,GAASiD,QAAQjD,OAAO,iBAExBqzH,EAA2B,WACzB,GAAI3vG,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOA,GAAK5pD,eAGZ+U,KAAMA,EACNzP,SACA65D,kBACE3zD,QAAS,KAEX5V,YAAa,0CACbC,WAAY,4BACZC,aAAc,OAIlBzE,EAAOwjB,UAAU,oBAAqB6vG,IAErC/uH,KAAKjE,MA4BR,WACE,GAAIizH,GAAUtzH,EAAQqS,EAAYjS,CAElCA,GAAQC,KAAKD,MAEbiS,EAAahS,KAAKD,MAAMiS,WAExBihH,EAAW,SAASC,EAAa3yG,EAAM7Z,EAAQwtB,EAAYnxB,EAAI+Y,GAC7D,GAAI8G,EA+GJ,OA9GAA,MACAA,EAAQ3G,KAAO,SAAS7R,EAAMgkC,EAAU7zB,GACtC,GAAI2qE,GAAarhF,EAAQiD,EAAKqsH,CAY9B,OAXAA,GAAU,eAAiB/oH,EAC3BvG,GACEuvH,UAAWhlF,EACXt0B,QAASS,GAEX2qE,GACEx/E,SACE2tH,uBAAwB,MAG5BvsH,EAAMosH,EAAYvwH,QAAQwwH,GACnB5yG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ,UAAY,SAASxY,EAAMwP,GACjC,GAAI9S,GAAKqsH,CAGT,OAFAA,GAAU,eAAiB/oH,EAC3BtD,EAAMosH,EAAYvwH,QAAQwwH,IAAY,IAAMv5G,GACrC2G,EAAK,UAAUzZ,IAExB8b,EAAQjd,MAAQ,SAASyE,EAAMwP,EAAIjU,GACjC,GAAImB,GAAKqsH,CAGT,OAFAA,GAAU,eAAiB/oH,EAC3BtD,EAAMosH,EAAYvwH,QAAQwwH,IAAY,IAAMv5G,GACrC2G,EAAK5a,MAAMmB,EAAKnB,IAEzBid,EAAQ6R,OAAS,SAASrqB,EAAMmQ,EAAW6zB,EAAUiK,EAAMg4C,GACzD,GAAItoF,GAAM+mB,EAASy5D,EAAajiF,EAAUwb,EAAO0mE,EAAgBC,EAAcC,EAAgB5hF,EAAKqsH,EAAS7iH,CAI7G,OAHA6iH,GAAU,eAAiB/oH,EAC3BtD,EAAMosH,EAAYvwH,QAAQwwH,GAC1BrkG,EAAU/rB,EAAGG,QACA,SAATm1C,GACFvpB,EAAQ3nB,OAAO,MACR2nB,EAAQ1rB,UAEjBmlF,EAAc7hF,EAAOZ,IAAI,oBAAqB,MAC1CyiF,GAAelwC,EAAK5hC,KAAO8xE,GAC7BjiF,GACEG,OAAQ,IACRsB,MACE+c,eAAgB,IAAMuzB,EAAK9jC,KAAO,MAASvC,EAAWqmC,EAAK5hC,MAAS,qEAAwEzE,EAAWu2E,GAAgB,MAG3Kz5D,EAAQ3nB,OAAOb,GACRwoB,EAAQ1rB,UAEjBslF,EAAiB,SAAUtgF,GACzB,MAAO,UAASygF,GACd,MAAO30D,GAAW3e,OAAO,WAIvB,MAHA8iC,GAAK5xC,OAAS,cACd4xC,EAAK5hC,KAAOzE,EAAW62E,EAAItwB,OAC3BlgB,EAAKi7E,gBAAkB,UAAathH,EAAW62E,EAAIC,QAAW,OAAU92E,EAAW62E,EAAItwB,OAChFlgB,EAAKk7E,gBAAmBtyH,KAAKgoC,MAAO4/C,EAAIC,OAASD,EAAItwB,MAAS,KAAQ,QAGhFv4D,MACHwoF,EAAiB,SAAUpgF,GACzB,MAAO,UAASygF,GACd,MAAO30D,GAAW3e,OAAO,WACvB,GAAI6hC,GAAY5zC,EAAKiD,CACrB4xC,GAAK5xC,OAAS,OACdA,EAASoiF,EAAI7kE,OAAOvd,MACpB,KACE2wC,EAAa52C,KAAKwI,MAAM6/E,EAAI7kE,OAAOilE,cACnC,MAAOpiF,GACPuwC,KAEF,MAAI3wC,IAAU,KAAOA,EAAS,KAC5B2wC,EAAan2B,UAAUC,OAAOk2B,GACvBtoB,EAAQnsB,QAAQy0C,KAEvB9wC,GACEG,OAAQA,EACRsB,MACE+c,eAAiD,OAAhCthB,EAAMuE,EAAoB,eAAavE,EAAI,GAAK,SAG9DsrB,EAAQ3nB,OAAOb,QAI3BtG,MACHyoF,EAAe,SAAUrgF,GACvB,MAAO,UAASygF,GACd,MAAO30D,GAAW3e,OAAO,WAEvB,MADA8iC,GAAK5xC,OAAS,QACPqoB,EAAQ3nB,OAAO,YAGzBnH,MACH+H,EAAO,GAAIqhF,UACXrhF,EAAK2kC,OAAO,UAAWnyB,GACvBxS,EAAK2kC,OAAO,YAAa0B,GACzBrmC,EAAK2kC,OAAO,gBAAiB2L,GAC7BtwC,EAAK2kC,OAAO,eAAgB2jD,GAC5B//E,EAAM,GAAI+4E,gBACV/4E,EAAI8nC,OAAOlmB,iBAAiB,WAAYw2D,GAAgB,GACxDp4E,EAAI4hB,iBAAiB,OAAQs2D,GAAgB,GAC7Cl4E,EAAI4hB,iBAAiB,QAASu2D,GAAc,GAC5C3mE,EAAQhG,EAAQhW,IAAI,SACpBwK,EAAIskB,KAAK,OAAQ9tB,GACjBwJ,EAAIg5E,iBAAiB,gBAAiB,UAAYxnE,GAClDxR,EAAIg5E,iBAAiB,SAAU,oBAC/Bh5E,EAAImjB,KAAK1rB,GACF+mB,EAAQ1rB,WAEV,WACL,OACE00C,YAAel1B,KAKrBqwG,EAAS7yG,SAAW,UAAW,UAAW,YAAa,aAAc,KAAM,cAE3EzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,wBAAyB4rH,IAEvChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,GAC/B,GAAIqC,EA0FJ,OAzFAA,MACAA,EAAQokE,kBAAoB,SAASnjF,GACnC,GAAIqhF,GAAap+E,CAOjB,OANAA,GAAMosH,EAAYvwH,QAAQ,SAC1BuiF,GACEx/E,SACE2tH,uBAAwB,MAGrB9yG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ3G,KAAO,SAAS1B,EAAWirB,GACjC,GAAI3hC,GAAQiD,CASZ,OARY,OAAR0+B,IACFA,EAAO,GAET1+B,EAAMosH,EAAYvwH,QAAQ,SAC1BkB,GACEiW,QAASS,EACTirB,KAAMA,GAEDjlB,EAAKza,IAAIgB,EAAKjD,GAAQV,KAAK,SAAS8R,GACzC,OACEgH,KAAMgF,UAAUC,OAAOjM,EAAOlN,MAC9BrC,QAASuP,EAAOvP,YAItBkd,EAAQjd,MAAQ,SAASiU,EAAIjU,GAC3B,GAAImB,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,UAAY,IAAMiX,GACrC2G,EAAK5a,MAAMmB,EAAKnB,GAAOxC,KAAK,SAAS8R,GAC1C,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQhd,KAAO,SAAS/B,GACtB,GAAIiD,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,SACnB4d,EAAK3a,KAAKkB,EAAKjD,GAAQV,KAAK,SAAS8R,GAC1C,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ+uF,QAAU,SAAS/3F,EAAI7R,EAAMi/C,GACnC,GAAIP,GAAS3/C,CAOb,OANAA,GAAMosH,EAAYvwH,QAAQ,UAAY,IAAMiX,GAC5C6sC,GACE/gD,SACE8hD,aAAchnD,KAAKC,UAAUumD,KAG1BzmC,EAAK5a,MAAMmB,EAAKiB,EAAM,KAAM0+C,GAAStjD,KAAK,SAAS8R,GACxD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQuwF,oBAAsB,SAASp0C,EAAQ+yC,GAC7C,GAAIjuG,GAAQiD,CAMZ,OALAA,GAAMosH,EAAYvwH,QAAQ,2BAA4Bo8D,GACtDl7D,GACE8uD,WAAYm/C,EACZ9zF,KAAM+gD,GAEDx+C,EAAK3a,KAAKkB,EAAKjD,IAExB+e,EAAQgvF,wBAA0B,SAAS7yC,EAAQ+yC,EAAa/pG,EAAMi/C,GACpE,GAAIP,GAAS3/C,CAOb,OANAA,GAAMosH,EAAYvwH,QAAQ,2BAA4Bo8D,IAAW,IAAM+yC,GACvErrD,GACE/gD,SACE8hD,aAAchnD,KAAKC,UAAUumD,KAG1BzmC,EAAK5a,MAAMmB,EAAKiB,EAAM,KAAM0+C,IAErC7jC,EAAQwwF,6BAA+B,SAASr0C,EAAQxkD,EAAWi5G,GACjE,GAAI3vH,GAAQiD,CAMZ,OALAA,GAAMosH,EAAYvwH,QAAQ,uCAAwCo8D,GAClEl7D,GACE2vH,iBAAkBA,EAClBvsC,WAAY1sE,GAEPgG,EAAK3a,KAAKkB,EAAKjD,IAExB+e,EAAQ6xF,uBAAyB,SAAS11C,EAAQ+yC,GAChD,GAAIhrG,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,2BAA4Bo8D,IAAW,IAAM+yC,GAChEvxF,EAAK,UAAUzZ,IAEjB,WACL,OACE8X,MAASgE,KAKfqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,kBAAmB4rH,IAEjChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,GAC/B,GAAIqC,EAsBJ,OArBAA,MACAA,EAAQ6yF,oBAAsB,SAASI,EAAeT,GACpD,GAAItuG,EAGJ,OAFAA,GAAMosH,EAAYvwH,QAAQ,gBAC1BmE,EAAMA,EAAM,IAAM+uG,EAAgB,gBAAkBT,EAC7C70F,EAAKza,IAAIgB,GAAK3D,KAAK,SAAS8R,GACjC,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ+yF,0BAA4B,SAASE,EAAeT,GAC1D,GAAIrtG,GAAMjB,CAOV,OANAA,GAAMosH,EAAYvwH,QAAQ,sBAC1BmE,GAAY,aACZiB,GACEqtG,MAASA,EACTF,YAAeW,GAEVt1F,EAAK3a,KAAKkB,EAAKiB,GAAM5E,KAAK,SAAS8R,GACxC,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAG5B,WACL,OACE+tG,aAAgBlzF,KAKtBqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,yBAA0B4rH,IAExChvH,KAAKjE,MA2BR,WACE,GAAIyzH,GAAeC,EAAgBC,EAAcC,EAAgBj0H,EAAQI,CAEzEA,GAAQC,KAAKD,MAEb6zH,EAAiB,SAASV,EAAa3yG,GACrC,GAAIqC,EA+CJ,OA9CAA,MACAA,EAAQymG,WAAa,SAASviH,GAE5B,MADAA,GAAMosH,EAAYvwH,QAAQ,6BACnB4d,EAAKza,IAAIgB,IAElB8b,EAAQ2mG,UAAY,SAAS4H,GAC3B,GAAIrqH,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,8BACnB4d,EAAK3a,KAAKkB,GACf6uC,KAAMw7E,KAGVvuG,EAAQqmG,aAAe,SAASnnG,GAC9B,GAAIhb,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,kCACnB4d,EAAK3a,KAAKkB,GACfgb,MAAOA,IACN3e,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQsmG,UAAY,SAASpnG,EAAOvH,GAClC,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,+BACnB4d,EAAK3a,KAAKkB,GACfgb,MAAOA,EACPhI,QAASS,IACRpX,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQ+lG,cAAgB,SAAS7mG,EAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,GACzG,GAAIphF,GAAMjB,CAYV,OAXAA,GAAMosH,EAAYvwH,QAAQ,mCAC1BoF,GACE+Z,MAAOA,EACPvN,KAAMA,EACNhQ,YAAaA,EACbuV,QAASS,EACTs5G,eAAgB1K,EAAa1wG,OAC7Bq7G,wBAAyB5M,EACzBvqC,WAAYwM,EACZvkF,SAAU,UAEL2b,EAAK3a,KAAKkB,EAAKiB,IAEjB,WACL,OACEmpH,eAAkBtuG,KAKxBgxG,EAAexzG,SAAW,UAAW,WAErCuzG,EAAe,SAAST,EAAa3yG,GACnC,GAAIqC,EAuDJ,OAtDAA,MACAA,EAAQymG,WAAa,SAAS0K,GAC5B,GAAIjtH,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,2BAA6B,QAAUoxH,EAC1DxzG,EAAKza,IAAIgB,IAElB8b,EAAQ2mG,UAAY,WAClB,GAAIziH,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,4BACnB4d,EAAK3a,KAAKkB,IAEnB8b,EAAQqmG,aAAe,SAAS8K,EAAUjyG,GACxC,GAAIhb,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,gCACnB4d,EAAK3a,KAAKkB,GACfA,IAAKitH,EACLjyG,MAAOA,IACN3e,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQsmG,UAAY,SAAS6K,EAAUjyG,EAAOvH,GAC5C,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,6BACnB4d,EAAK3a,KAAKkB,GACfA,IAAKitH,EACLjyG,MAAOA,EACPhI,QAASS,IACRpX,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQ+lG,cAAgB,SAASoL,EAAUjyG,EAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,EAAaiH,GAC3I,GAAItoH,GAAMisH,EAAiBltH,CAmB3B,OAlBAA,GAAMosH,EAAYvwH,QAAQ,iCAC1BqxH,EAAkB,SACE,WAAhB5K,IACF4K,EAAkB,SAEpBjsH,GACEjB,IAAKitH,EACLjyG,MAAOA,EACPvN,KAAMA,EACNhQ,YAAaA,EACbuV,QAASS,EACTs5G,eAAgB1K,EAAa1wG,OAC7Bq7G,wBAAyB5M,EACzBvqC,WAAYwM,EACZg+B,aAAciC,EACdyG,cAAeQ,EACfzrH,SAAUovH,GAELzzG,EAAK3a,KAAKkB,EAAKiB,IAEjB,WACL,OACEqoH,aAAgBxtG,KAKtB+wG,EAAavzG,SAAW,UAAW,WAEnCszG,EAAiB,SAASR,EAAa3yG,GACrC,GAAIqC,EAgDJ,OA/CAA,MACAA,EAAQymG,WAAa,SAAS6B,GAC5B,GAAIpkH,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,6BAA+B,QAAUuoH,EAC5D3qG,EAAKza,IAAIgB,IAElB8b,EAAQ2mG,UAAY,SAAS5zE,GAC3B,GAAI7uC,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,8BACnB4d,EAAK3a,KAAKkB,GACf6uC,KAAMA,KAGV/yB,EAAQqmG,aAAe,SAASnnG,GAC9B,GAAIhb,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,kCACnB4d,EAAK3a,KAAKkB,GACfgb,MAAOA,IACN3e,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQsmG,UAAY,SAASpnG,EAAOvH,GAClC,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,+BACnB4d,EAAK3a,KAAKkB,GACfgb,MAAOA,EACPhI,QAASS,IACRpX,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQ+lG,cAAgB,SAAS7mG,EAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,GACpH,GAAIrhH,GAAMjB,CAYV,OAXAA,GAAMosH,EAAYvwH,QAAQ,mCAC1BoF,GACE+Z,MAAOA,EACPvN,KAAMA,EACNhQ,YAAaA,EACbuV,QAASS,EACTs5G,eAAgB1K,EAAa1wG,OAC7Bq7G,wBAAyB5M,EACzBvqC,WAAYwM,EACZvkF,SAAUwkH,GAEL7oG,EAAK3a,KAAKkB,EAAKiB,IAEjB,WACL,OACEkjH,eAAkBroG,KAKxB8wG,EAAetzG,SAAW,UAAW,WAErCqzG,EAAgB,SAASP,EAAa3yG,GACpC,GAAIqC,EAgDJ,OA/CAA,MACAA,EAAQymG,WAAa,WACnB,GAAIviH,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,4BACnB4d,EAAKza,IAAIgB,IAElB8b,EAAQ2mG,UAAY,SAAS5zE,GAC3B,GAAI7uC,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,6BACnB4d,EAAK3a,KAAKkB,GACf6uC,KAAMA,KAGV/yB,EAAQqmG,aAAe,SAASnnG,GAC9B,GAAIhb,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,iCACnB4d,EAAK3a,KAAKkB,GACfgb,MAAOA,IACN3e,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQsmG,UAAY,SAASpnG,EAAOvH,GAClC,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,8BACnB4d,EAAK3a,KAAKkB,GACfgb,MAAOA,EACPhI,QAASS,IACRpX,KAAK,SAASmD,GACf,MAAO2a,WAAUC,OAAO5a,EAASyB,SAGrC6a,EAAQ+lG,cAAgB,SAAS7mG,EAAOvN,EAAMhQ,EAAagW,EAAW4uG,EAAcjC,EAAuB/9B,EAAWigC,GACpH,GAAIrhH,GAAMjB,CAYV,OAXAA,GAAMosH,EAAYvwH,QAAQ,kCAC1BoF,GACE+Z,MAAOA,EACPvN,KAAMA,EACNhQ,YAAaA,EACbuV,QAASS,EACTs5G,eAAgB1K,EAAa1wG,OAC7Bq7G,wBAAyB5M,EACzBvqC,WAAYwM,EACZvkF,SAAUwkH,GAEL7oG,EAAK3a,KAAKkB,EAAKiB,IAEjB,WACL,OACEihH,cAAiBpmG,KAKvB6wG,EAAcrzG,SAAW,UAAW,WAEpCzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,yBAA0BusH,GAEzCj0H,EAAO0H,QAAQ,uBAAwBssH,GAEvCh0H,EAAO0H,QAAQ,yBAA0BqsH,GAEzC/zH,EAAO0H,QAAQ,wBAAyBosH,IAEvCxvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,GAC/B,GAAIqC,EAcJ,OAbAA,MACAA,EAAQokE,kBAAoB,SAASnjF,GACnC,GAAIqhF,GAAap+E,CAOjB,OANAA,GAAMosH,EAAYvwH,QAAQ,UAC1BuiF,GACEx/E,SACE2tH,uBAAwB,MAGrB9yG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAG5B,WACL,OACE20B,OAAU9Z,KAKhBqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,mBAAoB4rH,IAElChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,EAAQs0H,CAEtBA,GAAa,aAEbhB,EAAW,SAASC,EAAa3yG,EAAM2zG,GACrC,GAAItxG,EAmLJ,OAlLAA,MACAA,EAAQ6R,OAAS,SAAS1sB,GACxB,GAAIjB,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,YACnB4d,EAAK3a,KAAKkB,EAAKtG,KAAKC,UAAUsH,IAAO5E,KAAK,SAAUiF,GACzD,MAAO,UAAS6M,GACd,MAAOgM,WAAUC,OAAOjM,EAAOlN,QAEhC/H,QAEL4iB,EAAQ6nG,UAAY,SAASlwG,EAAWxS,GACtC,GAAIgS,GAASlW,EAAQiD,CAgBrB,OAfAA,GAAMosH,EAAYvwH,QAAQ,YAC1BmE,EAAMA,EAAM,IAAMyT,EAAY,aAC9BR,EAAUhS,EAAKsR,MAAM/Y,IAAI,SAAU8H,GACjC,MAAO,UAAS0vB,GACd,OACEle,GAAMke,KAGT93B,OACH6D,GACE0Q,KAAQxM,EAAKwM,KACbhQ,YAAewD,EAAKxD,YACpBo4E,WAAc50E,EAAK40E,WACnBtjE,MAASU,GAEJwG,EAAK3a,KAAKkB,EAAKjD,IAExB+e,EAAQ8qF,YAAc,SAAS7pG,EAAQowH,GACrC,GAAI/uC,GAAap+E,CAgBjB,OAfc,OAAVjD,IACFA,MAEgB,MAAdowH,IACFA,GAAa,GAEfntH,EAAMosH,EAAYvwH,QAAQ,YAC1BuiF,KACK+uC,IACH/uC,GACEx/E,SACEyuH,qBAAqB,KAIpB5zG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,IAE/BtiE,EAAQynG,iBAAmB,SAAS7uG,GAClC,GAAI1U,EAGJ,OAFAA,GAAMosH,EAAYvwH,QAAQ,YAC1BmE,EAAMA,EAAM,iBAAmB0U,EACxB+E,EAAKza,IAAIgB,GAAK3D,KAAK,SAAS8R,GACjC,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ24F,oBAAsB,SAASljF,EAAQs5F,GAC7C,GAAIzsC,GAAarhF,EAAQiD,CAezB,OAdgB,OAAZ6qH,IACFA,GAAW,GAEb7qH,EAAMosH,EAAYvwH,QAAQ,YAC1BuiF,KACKysC,IACHzsC,EAAYx/E,SACV2tH,uBAAwB,MAG5BxvH,GACEi0B,OAAUO,EACVmqC,SAAY,cAEPjiD,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ8uG,gBAAkB,SAASn3G,GACjC,GAAIzT,EAGJ,OAFAA,GAAMosH,EAAYvwH,QAAQ,YAC1BmE,EAAMA,EAAM,IAAMyT,EACXgG,EAAKza,IAAIgB,GAAK3D,KAAK,SAAS8R,GACjC,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQilE,gBAAkB,SAASC,GACjC,GAAIhhF,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,8BACnB4d,EAAK3a,KAAKkB,EAAKghF,IAExBllE,EAAQwxG,YAAc,SAAS75G,EAAWirB,GACxC,GAAI3hC,GAAQiD,CAOZ,OANAjD,IACE2hC,KAAMA,EACN6uF,eAAe,GAEjBvtH,EAAMosH,EAAYvwH,QAAQ,oBAC1BmE,EAAMA,EAAM,IAAMyT,EACXgG,EAAKza,IAAIgB,EAAKjD,GACnB6B,SACEyuH,qBAAqB,KAEtBhxH,KAAK,SAAS8R,GAEf,MADAA,GAASgM,UAAUC,OAAOjM,GACnBi/G,EAAwBj/G,MAGnC2N,EAAQ8iG,YAAc,SAASnrG,GAC7B,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,eAAgB4X,GACnCgG,EAAK3a,KAAKkB,IAEnB8b,EAAQ+iG,cAAgB,SAASprG,GAC/B,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,iBAAkB4X,GACrCgG,EAAK3a,KAAKkB,IAEnB8b,EAAQ+jG,aAAe,SAASpsG,EAAW8rG,GACzC,GAAIt+G,GAAMjB,CAKV,OAJAiB,IACEykF,aAAc65B,GAEhBv/G,EAAMosH,EAAYvwH,QAAQ,gBAAiB4X,GACpCgG,EAAK3a,KAAKkB,EAAKiB,IAExB6a,EAAQgkG,eAAiB,SAASrsG,GAChC,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,kBAAmB4X,GACtCgG,EAAK3a,KAAKkB,IAEnB8b,EAAQuhG,eAAiB,SAAS5pG,EAAWyK,GAC3C,GAAInhB,GAAQiD,CAMZ,OALAjD,IACEiW,QAASS,EACTwU,QAAS/J,GAEXle,EAAMosH,EAAYvwH,QAAQ,mBACnB4d,EAAK3a,KAAKkB,EAAKjD,IAExB+e,EAAQgvG,sBAAwB,SAASr3G,EAAWuH,GAClD,GAAI/Z,GAAMjB,CAKV,OAJAiB,IACE+Z,MAAOA,GAEThb,EAAMosH,EAAYvwH,QAAQ,kCAAmC4X,GACtDgG,EAAK3a,KAAKkB,EAAKiB,IAExB6a,EAAQivG,eAAiB,SAASt3G,EAAWuH,EAAOgwG,GAClD,GAAI/pH,GAAMjB,CAMV,OALAiB,IACE+Z,MAAOA,EACPgwG,OAAQA,GAEVhrH,EAAMosH,EAAYvwH,QAAQ,0BAA2B4X,GAC9CgG,EAAK3a,KAAKkB,EAAKiB,IAExB6a,EAAQmvG,eAAiB,SAASx3G,EAAWuH,EAAOgwG,GAClD,GAAI/pH,GAAMjB,CAMV,OALAiB,IACE+Z,MAAOA,EACPgwG,OAAQA,GAEVhrH,EAAMosH,EAAYvwH,QAAQ,0BAA2B4X,GAC9CgG,EAAK3a,KAAKkB,EAAKiB,IAExB6a,EAAQoqD,gBAAkB,SAASzyD,GACjC,GAAIzT,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,2BAA4B4X,GAC/CgG,EAAK3a,KAAKkB,IAEnB8b,EAAQ4qD,cAAgB,SAASjzD,EAAW8d,EAAQy5F,GAClD,GAAI/pH,GAAMjB,CAMV,OALAiB,IACEwE,KAAM8rB,EACNy5F,OAAQA,GAEVhrH,EAAMosH,EAAYvwH,QAAQ,yBAA0B4X,GAC7CgG,EAAK3a,KAAKkB,EAAKiB,IAEjB,WACL,OACEsS,SAAYuI,KAKlBqwG,EAAS7yG,SAAW,UAAW,UAAW,6BAE1CzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,sBAAuB4rH,IAErChvH,KAAKjE,MAsBR,WACE,GAAIs0H,GAAWC,CAEfA,IAAY,sBAAuB,kBAAmB,mBAAoB,wBAAyB,kBAAmB,mBAAoB,yBAA0B,wBAAyB,kBAAmB,gBAAiB,kBAAmB,yBAA0B,uBAAwB,yBAA0B,yBAEhUD,EAAY,SAASxsH,GACnB,GAAI6K,GAAGuhC,EAAGl/B,EAAK4uC,EAAMpgD,EAAKof,EAAS4xG,EAAWC,EAAaC,CAC3D,KAAK/hH,EAAI,EAAGqC,EAAMu/G,EAASnnH,OAAQuF,EAAIqC,EAAKrC,IAK1C,IAJA8hH,EAAcF,EAAS5hH,GACvB6hH,EAAY1sH,EAAUhC,IAAI2uH,GAC1B7xG,EAAU9a,EAAUK,OAAOqsH,GAC3BhxH,EAAM8T,OAAO9D,KAAKoP,GACbsxB,EAAI,EAAG0P,EAAOpgD,EAAI4J,OAAQ8mC,EAAI0P,EAAM1P,IACvCwgF,EAAkBlxH,EAAI0wC,GAClBl0C,KAAK00H,IACP7hE,QAAQ8hE,KAAK,qBAAuBD,GAEtC10H,KAAK00H,GAAmB9xG,EAAQ8xG,EAGpC,OAAO10H,OAGTs0H,EAAUl0G,SAAW;AAErBxd,QAAQjD,OAAO,mBAAmBijB,QAAQ,cAAe0xG,IAExDrwH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,GAC/B,GAAIqC,EASJ,OARAA,MACAA,EAAQkE,SAAW,SAAS+uF,EAAeT,GACzC,GAAItuG,EAEJ,OADAA,GAAMosH,EAAYvwH,QAAQ,kBACnB4d,EAAKza,IAAIgB,GAAK3D,KAAK,SAAS8R,GACjC,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAG5B,WACL,OACEu7C,MAAS1gC,KAKfqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,kBAAmB4rH,IAEjChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,GAC/B,GAAIqC,EAcJ,OAbAA,MACAA,EAAQokE,kBAAoB,SAASnjF,GACnC,GAAIqhF,GAAap+E,CAOjB,OANAA,GAAMosH,EAAYvwH,QAAQ,SAC1BuiF,GACEx/E,SACE2tH,uBAAwB,MAGrB9yG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAG5B,WACL,OACEqvB,MAASxU,KAKfqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,kBAAmB4rH,IAEjChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,EAAM2zG,GACrC,GAAItxG,EA+BJ,OA9BAA,MACAA,EAAQgyG,eAAiB,SAASllH,GAChC,GAAIw1E,GAAap+E,CAMjB,OALAA,GAAMosH,EAAYvwH,QAAQ,gBACtB+M,IACF5I,GAAO,IAAM4I,GAEfw1E,KACO3kE,EAAKza,IAAIgB,MAAS3D,KAAK,SAASmD,GACrC,MAAOA,GAASyB,KAAKgH,SAGzB6T,EAAQiyG,eAAiB,SAASnlH,EAAKX,GACrC,GAAIlL,GAAQiD,CAMZ,OALAA,GAAMosH,EAAYvwH,QAAQ,gBAAkB,IAAM+M,EAClD7L,GACE6L,IAAKA,EACLX,MAAOA,GAEFwR,EAAK1a,IAAIiB,EAAKjD,IAEvB+e,EAAQkyG,kBAAoB,SAASplH,EAAKX,GACxC,GAAIlL,GAAQiD,CAMZ,OALAA,GAAMosH,EAAYvwH,QAAQ,gBAC1BkB,GACE6L,IAAKA,EACLX,MAAOA,GAEFwR,EAAK3a,KAAKkB,EAAKjD,IAEjB,WACL,OACE0I,KAAQqW,KAKdqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,kBAAmB4rH,IAEjChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,EAAM2zG,GACrC,GAAItxG,EAiJJ,OAhJAA,MACAA,EAAQmyG,kBAAoB,SAAS1wG,GACnC,GAAI6gE,GAAarhF,EAAQiD,CAUzB,OATAA,GAAMosH,EAAYvwH,QAAQ,eAC1BuiF,GACEx/E,SACE2tH,uBAAwB,MAG5BxvH,GACEwgB,SAAUA,GAEL9D,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ68F,SAAW,SAASpnF,GAC1B,GAAI6sD,GAAap+E,CAOjB,OANAA,GAAMosH,EAAYvwH,QAAQ,aAAc01B,GACxC6sD,GACEx/E,SACE2tH,uBAAwB,MAGrB9yG,EAAKza,IAAIgB,KAASo+E,GAAa/hF,KAAK,SAAS8R,GAClD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ66F,YAAc,SAASplF,EAAQmlF,GACrC,GAAIt4B,GAAarhF,EAAQiD,CAWzB,OAVAA,GAAMosH,EAAYvwH,QAAQ,gBAAiB01B,GAC3Cx0B,KACwB,MAApB25G,IACF35G,EAAOmxH,gBAAkBxX,GAE3Bt4B,GACEx/E,SACE2tH,uBAAwB,MAGrB9yG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQq/F,SAAW,SAAS5pF,EAAQmN,EAAMp7B,EAAMqG,GAC9C,GAAI5M,GAAQiD,CAaZ,OAZAA,GAAMosH,EAAYvwH,QAAQ,aAAc01B,GACxCx0B,KACY,MAAR2hC,IACF3hC,EAAO2hC,KAAOA,GAEJ,MAARp7B,IACFvG,EAAOuG,KAAOA,GAEP,MAALqG,IACF5M,EAAO4M,EAAIA,GAEb5M,EAAOwwH,eAAgB,EAChB9zG,EAAKza,IAAIgB,EAAKjD,GACnB6B,SACEyuH,qBAAqB,KAEtBhxH,KAAK,SAAS8R,GAEf,MADAA,GAASgM,UAAUC,OAAOjM,GACnBi/G,EAAwBj/G,MAGnC2N,EAAQs/F,SAAW,SAAS7pF,EAAQmN,EAAMp7B,EAAMqG,GAC9C,GAAI5M,GAAQiD,CAYZ,OAXAA,GAAMosH,EAAYvwH,QAAQ,aAAc01B,GACxCx0B,KACY,MAAR2hC,IACF3hC,EAAO2hC,KAAOA,GAEJ,MAARp7B,IACFvG,EAAOuG,KAAOA,GAEP,MAALqG,IACF5M,EAAO4M,EAAIA,GAEN8P,EAAKza,IAAIgB,EAAKjD,GACnB6B,SACEyuH,qBAAqB,KAEtBhxH,KAAK,SAAS8R,GAEf,MADAA,GAASgM,UAAUC,OAAOjM,GACnBi/G,EAAwBj/G,MAGnC2N,EAAQu/F,WAAa,SAAS9pF,EAAQmN,EAAMp7B,EAAMqG,GAChD,GAAI5M,GAAQiD,CAYZ,OAXAA,GAAMosH,EAAYvwH,QAAQ,eAAgB01B,GAC1Cx0B,KACY,MAAR2hC,IACF3hC,EAAO2hC,KAAOA,GAEJ,MAARp7B,IACFvG,EAAOuG,KAAOA,GAEP,MAALqG,IACF5M,EAAO4M,EAAIA,GAEN8P,EAAKza,IAAIgB,EAAKjD,GACnB6B,SACEyuH,qBAAqB,KAEtBhxH,KAAK,SAAS8R,GAEf,MADAA,GAASgM,UAAUC,OAAOjM,GACnBi/G,EAAwBj/G,MAGnC2N,EAAQqyG,mBAAqB,SAAS58F,EAAQmN,GAC5C,GAAI3hC,GAAQiD,CAMZ,OALAjD,IACE2hC,KAAMA,GAER1+B,EAAMosH,EAAYvwH,QAAQ,oBAC1BmE,EAAMA,EAAM,IAAMuxB,EACX9X,EAAKza,IAAIgB,EAAKjD,GACnB6B,SACEyuH,qBAAqB,KAEtBhxH,KAAK,SAAS8R,GAEf,MADAA,GAASgM,UAAUC,OAAOjM,GACnBi/G,EAAwBj/G,MAGnC2N,EAAQsyG,gBAAkB,SAAS78F,EAAQmN,GACzC,GAAI3hC,GAAQiD,CAOZ,OANAjD,IACE2hC,KAAMA,EACN6uF,eAAe,GAEjBvtH,EAAMosH,EAAYvwH,QAAQ,iBAC1BmE,EAAMA,EAAM,IAAMuxB,EACX9X,EAAKza,IAAIgB,EAAKjD,GACnB6B,SACEyuH,qBAAqB,KAEtBhxH,KAAK,SAAS8R,GAEf,MADAA,GAASgM,UAAUC,OAAOjM,GACnBi/G,EAAwBj/G,MAG5B,WACL,OACEoE,MAASuJ,KAKfqwG,EAAS7yG,SAAW,UAAW,UAAW,6BAE1CzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,mBAAoB4rH,IAElChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,GAC/B,GAAIqC,EA8CJ,OA7CAA,MACAA,EAAQokE,kBAAoB,SAASnjF,GACnC,GAAIqhF,GAAap+E,CAOjB,OANAA,GAAMosH,EAAYvwH,QAAQ,eAC1BuiF,GACEx/E,SACE2tH,uBAAwB,MAGrB9yG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQ+vF,iBAAmB,SAASp4F,GAClC,GAAI2qE,GAAarhF,EAAQiD,CAUzB,OATAA,GAAMosH,EAAYvwH,QAAQ,eAC1BuiF,GACEx/E,SACE2tH,uBAAwB,MAG5BxvH,GACEiW,QAASS,GAEJgG,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAGnC6a,EAAQu8C,WAAa,SAASg2D,GAC5B,GAAIjwC,GAAarhF,EAAQiD,CAYzB,OAXAA,GAAMosH,EAAYvwH,QAAQ,eAC1BuiF,GACEx/E,SACE2tH,uBAAwB,MAG5BxvH,GACEma,KAAMm3G,EACN3yD,SAAU,aACVhqB,eAAe,GAEVj4B,EAAKza,IAAIgB,EAAKjD,EAAQqhF,GAAa/hF,KAAK,SAAS8R,GACtD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAG5B,WACL,OACEkW,YAAe2E,KAKrBqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,wBAAyB4rH,IAEvChvH,KAAKjE,MAsBR,WACE,GAAIizH,GAAUtzH,CAEdszH,GAAW,SAASC,EAAa3yG,GAC/B,GAAIqC,EAcJ,OAbAA,MACAA,EAAQwyG,eAAiB,SAASzqD,GAChC,GAAIua,GAAap+E,CAOjB,OANAA,GAAMosH,EAAYvwH,QAAQ,eAAgBgoE,GAC1Cua,GACEx/E,SACE2tH,uBAAwB,MAGrB9yG,EAAKza,IAAIgB,EAAK,KAAMo+E,GAAa/hF,KAAK,SAAS8R,GACpD,MAAOgM,WAAUC,OAAOjM,EAAOlN,SAG5B,WACL,OACEstH,YAAezyG,KAKrBqwG,EAAS7yG,SAAW,UAAW,WAE/BzgB,EAASiD,QAAQjD,OAAO,mBAExBA,EAAO0H,QAAQ,gBAAiB4rH,IAE/BhvH,KAAKjE,MAsBR,WACE,GAAIs1H,GAAgBv1H,EAAOyS,CAE3BzS,GAAQC,KAAKD,MAEbyS,EAAWzS,EAAMyS,SAEjB8iH,EAAiB,WAGf,QAASA,GAAerkG,GACtBjxB,KAAKixB,UAAYA,EAsFnB,MAzFAqkG,GAAel1G,SAAW,cAM1Bk1G,EAAe1lH,UAAU2lH,KAAO,SAAS7lH,EAAKX,GAC5C,GAAIymH,EACJ,IAAK9lH,EAGL,MAAY,UAARA,GACF8lH,EAAOzoF,EAAE,cACW,IAAhByoF,EAAKpoH,SACPooH,EAAOzoF,EAAE,mBACTA,EAAE,QAAQL,OAAO8oF,IAEZA,EAAK3gH,KAAK9F,GAAS,KACM,IAAvBW,EAAI3I,QAAQ,QACrByuH,EAAOzoF,EAAE,uBAAyBr9B,EAAM,MACpB,IAAhB8lH,EAAKpoH,SACPooH,EAAOzoF,EAAE,mBAAqBr9B,EAAM,OACpCq9B,EAAE,QAAQL,OAAO8oF,IAEZA,EAAK3hH,KAAK,UAAW9E,GAAS,MAErCymH,EAAOzoF,EAAE,mBAAqBr9B,EAAM,MAChB,IAAhB8lH,EAAKpoH,SACPooH,EAAOzoF,EAAE,eAAiBr9B,EAAM,OAChCq9B,EAAE,QAAQL,OAAO8oF,IAEZA,EAAK3hH,KAAK,UAAW9E,GAAS,MAIzCumH,EAAe1lH,UAAU6lH,SAAW,SAASnxH,GAC3C,MAAOtE,MAAKu1H,KAAK,QAASjxH,IAG5BgxH,EAAe1lH,UAAU8lH,eAAiB,SAASnxH,GACjD,MAAOvE,MAAKu1H,KAAK,cAAe/iH,EAASjO,EAAa,OAGxD+wH,EAAe1lH,UAAU+lH,gBAAkB,SAASrxH,EAAOC,GAKzD,MAJAvE,MAAKu1H,KAAK,eAAgB,WAC1Bv1H,KAAKu1H,KAAK,eAAgB,YAC1Bv1H,KAAKu1H,KAAK,gBAAiBjxH,GAC3BtE,KAAKu1H,KAAK,sBAAuB/iH,EAASjO,EAAa,MAChDvE,KAAKu1H,KAAK,gBAAiBr1H,OAAO0a,SAASg7G,OAAS,IAAM11H,OAAOmJ,SAAW,2BAGrFisH,EAAe1lH,UAAUimH,kBAAoB,SAASvxH,EAAOC,GAM3D,MALAvE,MAAKu1H,KAAK,UAAW,UACrBv1H,KAAKu1H,KAAK,eAAgB,8BAC1Bv1H,KAAKu1H,KAAK,WAAYjxH,GACtBtE,KAAKu1H,KAAK,iBAAkB/iH,EAASjO,EAAa,MAClDvE,KAAKu1H,KAAK,WAAYr1H,OAAO0a,SAASg7G,OAAS,IAAM11H,OAAOmJ,SAAW,0BAChErJ,KAAKu1H,KAAK,SAAUr1H,OAAO0a,SAASkJ,OAG7CwxG,EAAe1lH,UAAUjB,OAAS,SAASrK,EAAOC,GAIhD,MAHAvE,MAAKy1H,SAASnxH,GACdtE,KAAK01H,eAAenxH,GACpBvE,KAAK21H,gBAAgBrxH,EAAOC,GACrBvE,KAAK61H,kBAAkBvxH,EAAOC,IAGvC+wH,EAAe1lH,UAAUhB,kBAAoB,WAC3C,MAAOm+B,GAAE,QAAQL,OAAO,+GAG1B4oF,EAAe1lH,UAAUf,qBAAuB,WAC9C,MAAOk+B,GAAE,8BAAgCnrB,UAG3C0zG,EAAe1lH,UAAU2/F,MAAQ,SAASv/F,GAIxC,MAHIhQ,MAAK81H,UACP91H,KAAK+1H,YAEA/1H,KAAK+1H,UAAY/1H,KAAKixB,UAAU2f,iBAAiB5gC,EAAI,SAAU5H,GACpE,MAAO,UAAS4tH,GACd,GAAIA,EAEF,MADA5tH,GAAMuG,OAAOqnH,EAAM1xH,MAAO0xH,EAAMzxH,aACzB6D,EAAM2tH,cAGhB/1H,QAGEs1H,KAIT1yH,QAAQjD,OAAO,eAAeijB,QAAQ,mBAAoB0yG,IAEzDrxH,KAAKjE,MAsBR,WACE,GAAIi2H,GAAoBjkH,CAExBA,GAAahS,KAAKD,MAAMiS,WAExBikH,EAAqB,WAGnB,QAASA,GAAmB9nF,EAASznC,EAAQqY,EAAW3E,GACtDpa,KAAKmuC,QAAUA,EACfnuC,KAAK0G,OAASA,EACd1G,KAAK+e,UAAYA,EACjB/e,KAAKoa,GAAKA,EACVpa,KAAKuoF,YAAcvoF,KAAKk2H,iBACpBl2H,KAAKuoF,cACPvoF,KAAKm2H,oBAAsBnkH,EAAWhS,KAAKuoF,cAqE/C,MA9EA0tC,GAAmB71G,SAAW,aAAc,YAAa,aAAc,eAavE61G,EAAmBrmH,UAAUwmH,UAAY,SAAS/9E,GAChD,GAAIrzB,EAMJ,OALAA,GAAUhlB,KAAK+e,UAAUxW,QAAQ,sCAC/BogF,SAAUtwC,EAAK9jC,KACfq0E,SAAU52E,EAAWqmC,EAAK5hC,MAC1B8xE,YAAavoF,KAAKm2H,sBAEbn2H,KAAKmuC,QAAQ3lC,OAAO,QAASwc,IAGtCixG,EAAmBrmH,UAAUwU,SAAW,SAASi0B,GAC/C,QAAIr4C,KAAKuoF,aAAelwC,EAAK5hC,KAAOzW,KAAKuoF,eACvCvoF,KAAKo2H,UAAU/9E,IACR,IAKX49E,EAAmBrmH,UAAUsmH,eAAiB,WAC5C,MAAOl2H,MAAK0G,OAAOZ,IAAI,oBAAqB,OAG9CmwH,EAAmBrmH,UAAUqM,KAAO,SAAS7R,EAAM4kF,EAAOz0E,GACxD,MAAOva,MAAKoa,GAAG09B,YAAY77B,KAAK7R,EAAM4kF,EAAOz0E,GAAWpX,KAAK,SAAUiF,GACrE,MAAO,UAAS0vC,GACd,MAAOA,GAAYp+B,OAAO,SAAS09B,GACjC,MAAOA,GAAWtxC,IAAI,aAGzB9F,QAGLi2H,EAAmBrmH,UAAU,UAAY,SAASxF,EAAMwP,GACtD,MAAO5Z,MAAKoa,GAAG09B,YAAY,UAAU1tC,EAAMwP,IAG7Cq8G,EAAmBrmH,UAAUymH,UAAY,SAASh+E,EAAMtwC,GACtD,GAAIid,EAQJ,OAPAA,GAAU,GACNqzB,IACFrzB,EAAUhlB,KAAK+e,UAAUxW,QAAQ,sCAC/BogF,SAAUtwC,EAAK9jC,KACf+6E,aAAcvnF,EAAKA,KAAK+c,kBAGrB9kB,KAAKmuC,QAAQ3lC,OAAO,QAASwc,IAGtCixG,EAAmBrmH,UAAUwoC,OAAS,SAASC,EAAM22C,EAAOz0E,EAAWnQ,EAAMimF,GAC3E,GAAIjtF,EAMJ,OALoB,OAAhBitF,IACFA,GAAe,GAEjBjtF,EAAUpD,KAAKoa,GAAG09B,YAAYrjB,OAAOrqB,EAAMmQ,EAAWy0E,EAAO32C,EAAMg4C,GACnEjtF,EAAQD,KAAK,KAAMnD,KAAKq2H,UAAUtmH,KAAK/P,KAAMq4C,IACtCj1C,GAGT6yH,EAAmBrmH,UAAUjK,MAAQ,SAASiU,EAAIxP,EAAMzE,GACtD,GAAIvC,EAGJ,OAFAA,GAAUpD,KAAKoa,GAAG09B,YAAYnyC,MAAMyE,EAAMwP,EAAIjU,GAC9CvC,EAAQD,KAAK,KAAMnD,KAAKq2H,UAAUtmH,KAAK/P,KAAM,OACtCoD,GAGF6yH,KAITrzH,QAAQjD,OAAO,eAAeijB,QAAQ,uBAAwBqzG,IAE7DhyH,KAAKjE,MAsBR,WACE,GAAIs2H,GACFC,EAAS,SAASv+G,EAAGC,GAAK,QAASD,GAAKC,GAAKA,GAAKA,GAAKA,EAEzDq+G,GAAgB,WACd,QAASA,GAAc5vH,GACrB,GAAI8vH,GAAQC,CACZz2H,MAAK0G,OAASA,EACd+vH,GAAU,IAAMv2H,OAAOmJ,SAAW,0CAA2C,IAAMnJ,OAAOmJ,SAAW,0CAA2C,IAAMnJ,OAAOmJ,SAAW,0CAA2C,IAAMnJ,OAAOmJ,SAAW,0CAA2C,IAAMnJ,OAAOmJ,SAAW,2CAC9SmtH,GAAU,2BAA4B,2BAA4B,2BAA4B,2BAA4B,4BAC1Hx2H,KAAK02H,MAAQr2H,EAAEyX,iBAAiB2+G,EAAQD,GA6D1C,MA1DAF,GAAc1mH,UAAU+mH,WAAa,SAASjnH,GAC5C,GAAIkoE,GAAKuiB,CAGT,OAFAviB,GAAM2+C,EAAOK,kBAAkBlnH,EAAK,IAAK1P,KAAK02H,MAAMtpH,QACpD+sF,EAAOn6F,KAAK02H,MAAM9+C,IAEhBxnD,IAAK+pE,EAAK,GACVv9E,MAAOu9E,EAAK,KAIhBm8B,EAAc1mH,UAAUinH,WAAa,WACnC,OACE/vH,IAAK,IAAM5G,OAAOmJ,SAAW,wBAIjCitH,EAAc1mH,UAAUmoB,UAAY,SAASxrB,EAAMnC,GACjD,GAAI0sH,GAAiBC,EAAU58B,EAAM68B,EAASC,EAAOC,CACrD,OAAK3qH,IAGLuqH,EAAkB,QACL,cAAT1sH,IACF0sH,EAAkB,aAEpBG,EAAQ,KACJ1qH,YAAgB0U,WAAU24C,KAC5Bm9D,EAAWxqH,EAAKzG,IAAI,eACpBmxH,EAAQ1qH,EAAKzG,IAAIgxH,KAEjBC,EAAWxqH,EAAK4qH,YAChBF,EAAQ1qH,EAAKuqH,IAEVC,EAGDE,GAEAnwH,IAAKmwH,GAEEr8G,SAASoX,KAAKjrB,QAAQ,mBAAwB/G,KAAK0G,OAAOZ,IAAI,YAAY,IAQnFoxH,EAAOt8G,SAASkX,SAAW,KAAOlX,SAASoX,KAC3CmoE,EAAOn6F,KAAK22H,WAAWI,GACvBC,EAAU/zG,mBAAmBi0G,EAAO/8B,EAAK/pE,MAEvCtpB,IAAK,mCAAqCiwH,EAAW,MAAQC,EAC7D/+F,GAAIkiE,EAAKv9E,SAZXs6G,EAAOt8G,SAASkX,SAAW,KAAOlX,SAASoX,KAC3CmoE,EAAOn6F,KAAK22H,WAAWI,IAErBjwH,IAAKowH,EAAO/8B,EAAK/pE,IACjB6H,GAAIkiE,EAAKv9E,QAXJ5c,KAAK62H,cAfL72H,KAAK62H,cAuCTP,KAIT1zH,QAAQjD,OAAO,eAAeijB,QAAQ,mBAAoB,YAAa0zG,KAEtEryH,KAAKjE,MAsBR,WACE,GAAIo3H,GAAyBr3H,CAE7BA,GAAQC,KAAKD,MAEbq3H,EAA0B,WAGxB,QAASA,GAAwB9zH,GAC/BtD,KAAKsD,eAAiBA,EAUxB,MAbA8zH,GAAwBh3G,SAAW,oBAMnCg3G,EAAwBxnH,UAAU0pF,MAAQ,SAASltE,GACjD,QAAKpsB,KAAKsD,eAAewW,SAGlB9Z,KAAKsD,eAAewW,QAAQhU,IAAI,kBAAkBiB,QAAQqlB,SAG5DgrG,KAITx0H,QAAQjD,OAAO,eAAeijB,QAAQ,4BAA6Bw0G,IAElEnzH,KAAKjE,MAsBR,WACE,GAAIq3H,GAAoB7lH,EAASzR,CAEjCA,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErB6lH,EAAqB,WAGnB,QAASA,GAAmBvqB,EAAiBwqB,EAAgBl9G,GAC3Dpa,KAAK8sG,gBAAkBA,EACvB9sG,KAAKs3H,eAAiBA,EACtBt3H,KAAKoa,GAAKA,EACVpa,KAAKq1G,MAAQ,KACbr1G,KAAKu3H,UAAYt2G,UAAU24C,MAC3B55D,KAAKw3H,cAAgBv2G,UAAU24C,MAC/B55D,KAAKy3H,SAAW,KAChB13H,EAAMqR,wBAAwBpR,KAAM,WAAY,SAAUoI,GACxD,MAAO,YACL,MAAOA,GAAMmvH,YAEdv3H,OACHD,EAAMqR,wBAAwBpR,KAAM,eAAgB,SAAUoI,GAC5D,MAAO,YACL,MAAOA,GAAMovH,gBAEdx3H,OAkML,MArNAq3H,GAAmBj3G,SAAW,oBAAqB,aAAc,eAsBjEi3G,EAAmBznH,UAAUxB,gBAAkB,WAC7C,MAAuB,QAAnBpO,KAAKqO,WAMXgpH,EAAmBznH,UAAUvB,QAAU,WACrC,GAAI2S,EAQJ,OAPKhhB,MAAKq1G,QACRr0F,EAAWhhB,KAAKs3H,eAAexxH,IAAI,YAC/Bkb,IACFA,EAAWC,UAAUC,OAAOF,GAC5BhhB,KAAKohB,QAAQJ,KAGVhhB,KAAKq1G,OAGdgiB,EAAmBznH,UAAUuS,WAAa,WAIxC,MAHAniB,MAAKq1G,MAAQ,KACbr1G,KAAKu3H,UAAYt2G,UAAU24C,MAC3B55D,KAAKw3H,cAAgBv2G,UAAU24C,MACxB55D,KAAKy3H,SAAW,MAGzBJ,EAAmBznH,UAAUwR,QAAU,SAAS7U,GAE9C,MADAvM,MAAKq1G,MAAQ9oG,EACNvM,KAAK03H,iBAGdL,EAAmBznH,UAAUm2G,wBAA0B,SAASF,GAC9D,MAAO7lH,MAAK8sG,gBAAgBiZ,wBAAwBF,GAAU1iH,KAAK,SAAUiF,GAC3E,MAAO,YACL,MAAOA,GAAMqhE,iBAEdzpE,QAGLq3H,EAAmBznH,UAAU65D,aAAe,WAC1C,MAAOzpE,MAAK8sG,gBAAgByO,oBAAoBv7G,KAAKq1G,MAAMvvG,IAAI,OAAO3C,KAAK,SAAUiF,GACnF,MAAO,UAASiS,GACd,MAAOjS,GAAMm9G,YAAYlrG,KAE1Bra,QAGLq3H,EAAmBznH,UAAUsoF,eAAiB,SAASt0F,GAUrD,MATIA,GACF5D,KAAKy3H,SAAS7zH,IAAW,EAEzB5D,KAAKy3H,UACHp+B,SAAS,EACTz7B,QAAQ,EACRs7B,WAAW,GAGRl5F,KAAKoa,GAAG7N,KAAKsoH,eAAe,UAAW70H,KAAKy3H,WAGrDJ,EAAmBznH,UAAUipF,kBAAoB,WAC/C,MAAO,IAAI9qF,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,GACd,MAAuB,QAAnByF,EAAMqvH,aACR90H,GAAQyF,EAAMqvH,UAGTrvH,EAAMgS,GAAG7N,KAAKqoH,eAAe,WAAWzxH,KAAK,SAASuD,GAE3D,MADA0B,GAAMqvH,SAAW/wH,EACV/D,EAAQyF,EAAMqvH,YACpB,SAAS,WAOV,MANArvH,GAAMqvH,UACJp+B,SAAS,EACTz7B,QAAQ,EACRs7B,WAAW,GAEb9wF,EAAMgS,GAAG7N,KAAKuoH,kBAAkB,UAAW1sH,EAAMqvH,UAC1C90H,EAAQyF,EAAMqvH,cAGxBz3H,QAGLq3H,EAAmBznH,UAAU8nH,cAAgB,WAC3C,MAAO3pH,SAAQoM,KAAKna,KAAKypE,kBAG3B4tD,EAAmBznH,UAAU21G,YAAc,SAASlrG,GAMlD,MALAra,MAAKu3H,UAAYv3H,KAAKu3H,UAAUx7G,IAAI,MAAO1B,GAC3Cra,KAAKu3H,UAAYv3H,KAAKu3H,UAAUx7G,IAAI,UAAW1B,EAASxH,MAAM,EAAG,KACjE7S,KAAKw3H,cAAgBv2G,UAAUC,OAAO1P,EAAQ6I,EAAS5B,OAAQ,SAASmuC,GACtE,MAAOA,GAAEhtC,MAEJ5Z,KAAKqa,UAGdg9G,EAAmBznH,UAAUm3G,yBAA2B,WACtD,GAAIx6G,EAEJ,OADAA,GAAOvM,KAAKqO,UAC6B,OAArC9B,EAAKzG,IAAI,yBAAoCyG,EAAKzG,IAAI,2BAA6ByG,EAAKzG,IAAI,yBAE5FiH,OAAO,EACP+kH,OAAQ,uBACR1nH,KAAM,kBACN1G,QAAS6I,EAAKzG,IAAI,0BAClBmF,IAAKsB,EAAKzG,IAAI,0BAIhBiH,OAAO,IAIXsqH,EAAmBznH,UAAUk3G,wBAA0B,WACrD,GAAIv6G,EAEJ,OADAA,GAAOvM,KAAKqO,UAC4B,OAApC9B,EAAKzG,IAAI,wBAAmCyG,EAAKzG,IAAI,0BAA4ByG,EAAKzG,IAAI,wBAE1FiH,OAAO,EACP+kH,OAAQ,sBACR1nH,KAAM,iBACN1G,QAAS6I,EAAKzG,IAAI,yBAClBmF,IAAKsB,EAAKzG,IAAI,yBAIhBiH,OAAO,IAIXsqH,EAAmBznH,UAAU43G,2BAA6B,SAASmQ,GACjE,GAAIprH,EAEJ,OADAA,GAAOvM,KAAKqO,UACwC,OAAhD9B,EAAKzG,IAAI,oCAA+C6xH,EAAeprH,EAAKzG,IAAI,oCAEhFiH,OAAO,EACP+kH,OAAQ,8BACR1nH,KAAM,iBACN1G,QAASi0H,EACT1sH,IAAKsB,EAAKzG,IAAI,qCAIhBiH,OAAO,IAIXsqH,EAAmBznH,UAAU03G,4BAA8B,SAASqQ,GAClE,GAAIprH,EAEJ,OADAA,GAAOvM,KAAKqO,UACyC,OAAjD9B,EAAKzG,IAAI,qCAAgD6xH,EAAeprH,EAAKzG,IAAI,qCAEjFiH,OAAO,EACP+kH,OAAQ,+BACR1nH,KAAM,kBACN1G,QAASi0H,EACT1sH,IAAKsB,EAAKzG,IAAI,sCAIhBiH,OAAO,IAIXsqH,EAAmBznH,UAAU4iH,cAAgB,SAAS14G,GACpD,GAAI89G,GAAe3iH,EAAQ1I,CAE3B,IADAA,EAAOvM,KAAKqO,UACRyL,EAAQhU,IAAI,cAAe,CAE7B,GADAmP,EAASjV,KAAK+mH,4BACT9xG,EAAOlI,MACV,MAAOkI,EAGT,IADA2iH,EAAgB53H,KAAKsnH,4BAA4BxtG,EAAQhU,IAAI,uBACxD8xH,EAAc7qH,MACjB,MAAO6qH,OAEJ,CAEL,GADA3iH,EAASjV,KAAK8mH,2BACT7xG,EAAOlI,MACV,MAAOkI,EAGT,IADA2iH,EAAgB53H,KAAKwnH,2BAA2B1tG,EAAQhU,IAAI,uBACvD8xH,EAAc7qH,MACjB,MAAO6qH,GAGX,OACE7qH,OAAO,IAIJsqH,KAITz0H,QAAQjD,OAAO,eAAeijB,QAAQ,uBAAwBy0G,IAE7DpzH,KAAKjE,MAsBR,WACE,GAAI63H,GAAsB93H,CAE1BA,GAAQC,KAAKD,MAEb83H,EAAuB,WAGrB,QAASA,GAAqB5mG,GAC5BjxB,KAAKixB,UAAYA,EA2BnB,MA9BA4mG,GAAqBz3G,SAAW,cAMhCy3G,EAAqBjoH,UAAUlQ,KAAO,WACpC,MAAOM,MAAKixB,UAAU6mG,kBAGxBD,EAAqBjoH,UAAUW,SAAW,WAExC,MADAvQ,MAAKixB,UAAU6mG,cAAcC,cAAe,EACrC/3H,KAAKixB,UAAU6mG,cAAcvnH,UAAW,GAGjDsnH,EAAqBjoH,UAAU/I,MAAQ,WAErC,MADA7G,MAAKixB,UAAU6mG,cAAcC,cAAe,EACrC/3H,KAAKixB,UAAU6mG,cAAcjxH,OAAQ,GAG9CgxH,EAAqBjoH,UAAUY,iBAAmB,WAEhD,MADAxQ,MAAKixB,UAAU6mG,cAAcC,cAAe,EACrC/3H,KAAKixB,UAAU6mG,cAActnH,kBAAmB,GAGzDqnH,EAAqBjoH,UAAUjH,MAAQ,WAErC,MADA3I,MAAKixB,UAAU6mG,cAAcC,cAAe,EACrC/3H,KAAKixB,UAAU6mG,cAAcE,SAAU,GAGzCH,KAITj1H,QAAQjD,OAAO,eAAeijB,QAAQ,yBAA0Bi1G,IAE/D5zH,KAAKjE,MAsBR,WACE,GAAIi4H,EAEJA,GAAkB,WAGhB,QAASA,GAAgBhnG,EAAWghE,GAClCjyF,KAAKixB,UAAYA,EACjBjxB,KAAKiyF,QAAUA,EAgBjB,MApBAgmC,GAAgB73G,SAAW,aAAc,YAOzC63G,EAAgBroH,UAAU6kB,OAAS,SAASlgB,EAAMga,EAAO2pG,GACvD,GAAI3oG,GAAKsG,EAAMjiB,CACfA,GAAQ5T,KAAKixB,UAAUyE,OACvB9hB,EAAQvT,EAAE2nC,MAAMp0B,EAAOskH,GACvB3oG,EAAMwd,EAAE,SAASl5B,KAAKU,GAAM,GAAMV,KAAK,iBAAiB,GACpD0a,GACFgB,EAAI1b,KAAK0a,GAEXgB,EAAIze,SAAS,mBACb+kB,EAAO71B,KAAKiyF,QAAQ1iE,GAAK3b,GACzBm5B,EAAExH,SAAS+H,MAAMZ,OAAO7W,IAGnBoiG,KAITr1H,QAAQjD,OAAO,eAAeijB,QAAQ,oBAAqBq1G,IAE1Dh0H,KAAKjE,MAsBR,WACE,GAAIm4H,EAEJA,GAAmB,WACjB,MAAO,UAASljH,GACd,GAAImjH,EAQJ,OAPAA,GAAmBn3G,UAAU24C,KAC3B7xD,KAAQkN,EAAOnP,IAAI,QACnBoB,OAAU+N,EAAOnP,IAAI,WAAW,qBAChCmwC,OAAUhhC,EAAOnP,IAAI,WAAW,qBAChCpC,QAAWuR,EAAOnP,IAAI,WAAW,wBACjC2Y,MAASxJ,EAAOnP,IAAI,WAAW,0BAMrClD,QAAQjD,OAAO,eAAe0H,QAAQ,4BAA6B8wH,IAElEl0H,KAAKjE,MAsBR,WACE,GAAIq4H,GACF9B,EAAS,SAASv+G,EAAGC,GAAK,QAASD,GAAKC,GAAKA,GAAKA,GAAKA,EAEzDogH,GAAqB,WACnB,QAASA,KACP,GAAI7B,GAAQC,CACZA,IAAU,IAAMv2H,OAAOmJ,SAAW,4CAA6C,IAAMnJ,OAAOmJ,SAAW,4CAA6C,IAAMnJ,OAAOmJ,SAAW,4CAA6C,IAAMnJ,OAAOmJ,SAAW,4CAA6C,IAAMnJ,OAAOmJ,SAAW,6CACtTmtH,GAAU,4BAA6B,6BAA8B,4BAA6B,2BAA4B,6BAC9Hx2H,KAAK02H,MAAQr2H,EAAEyX,iBAAiB2+G,EAAQD,GAc1C,MAXA6B,GAAmBzoH,UAAUyqF,sBAAwB,SAAS7sE,EAAM5T,GAClE,GAAIg+D,GAAKloE,EAAKyqF,CAId,OAHAzqF,GAAM8d,EAAO,IAAM5T,EACnBg+D,EAAM2+C,EAAOK,kBAAkBlnH,EAAK,IAAK1P,KAAK02H,MAAMtpH,QACpD+sF,EAAOn6F,KAAK02H,MAAM9+C,IAEhBxnD,IAAK+pE,EAAK,GACVv9E,MAAOu9E,EAAK,KAITk+B,KAITz1H,QAAQjD,OAAO,eAAeijB,QAAQ,uBAAwBy1G,IAE7Dp0H,KAAKjE,MAsBR,WACE,GAAIs4H,GAAgBv4H,CAEpBA,GAAQC,KAAKD,MAEbu4H,EAAiB,WAGf,QAASA,GAAexrB,EAAiBsE,EAAUmnB,EAAqBC,GACtEx4H,KAAK8sG,gBAAkBA,EACvB9sG,KAAKoxG,SAAWA,EAChBpxG,KAAKu4H,oBAAsBA,EAC3Bv4H,KAAKw4H,SAAWA,EAChBx4H,KAAKy4H,SAAW,KAChBz4H,KAAK04H,SAAW,KAChB14H,KAAK24H,oBAAsB13G,UAAU0yB,OACrC3zC,KAAK44H,eAAiB33G,UAAU0yB,OAChC5zC,EAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAMqwH,WAEdz4H,OACHD,EAAMqR,wBAAwBpR,KAAM,UAAW,SAAUoI,GACvD,MAAO,YACL,MAAOA,GAAMswH,WAEd14H,OACHD,EAAMqR,wBAAwBpR,KAAM,qBAAsB,SAAUoI,GAClE,MAAO,YACL,MAAOA,GAAMuwH,sBAEd34H,OACHD,EAAMqR,wBAAwBpR,KAAM,gBAAiB,SAAUoI,GAC7D,MAAO,YACL,MAAOA,GAAMwwH,iBAEd54H,OACEE,OAAO6I,aAAa8vH,KACvB74H,KAAK84H,cAqFT,MArHAR,GAAel4G,SAAW,oBAAqB,oBAAqB,wBAAyB,aAoC7Fk4G,EAAe1oH,UAAU5L,aAAe,WAItC,MAHAhE,MAAKy4H,SAAW,KAChBz4H,KAAK44H,eAAiB33G,UAAU0yB,OAChC3zC,KAAK04H,SAAW,KACT14H,KAAK24H,oBAAsB13G,UAAU0yB,QAG9C2kF,EAAe1oH,UAAUkpH,YAAc,WACrC,GAAIC,EAWJ,OAVAA,GAAa/4H,KAAKw4H,SAAS,SAAUpwH,GACnC,MAAO,YACL,MAAOA,GAAMynE,iBAEd7vE,MAAO,KACVA,KAAKu4H,oBAAoBS,WAAW,SAAU5wH,GAC5C,MAAO,YACL,MAAOA,GAAMowH,SAASt/D,OAAO6/D,KAE9B/4H,OACIA,KAAKu4H,oBAAoBU,SAAS,SAAU7wH,GACjD,MAAO,YAEL,MADAA,GAAMynE,eACCznE,EAAM0wH,gBAEd94H,QAGLs4H,EAAe1oH,UAAUnM,WAAa,SAASG,GAE7C,MADA5D,MAAK04H,SAAW90H,EACZA,EACK5D,KAAK24H,oBAAsB34H,KAAK24H,oBAAoBpxH,KAAKvH,KAAK04H,UAE9D14H,KAAK24H,oBAAsB13G,UAAU0yB,QAIhD2kF,EAAe1oH,UAAU61G,WAAa,SAAS3rG,GAE7C,MADA9Z,MAAKy4H,SAAW3+G,EACT9Z,KAAK44H,eAAiB54H,KAAKy4H,SAAS3yH,IAAI,WAAW4H,OAAO,SAASoqB,GACxE,MAAOA,GAAOhyB,IAAI,gBAItBwyH,EAAe1oH,UAAU7L,iBAAmB,SAASD,GACnD,MAAO,IAAIiK,SAAQ,SAAU3F,GAC3B,MAAO,UAASzF,EAASwE,GACvB,MAAKiB,GAAM0R,SAAW1R,EAAM0R,QAAQhU,IAAI,UAAYhC,EAQ3CnB,IAPAyF,EAAM0kG,gBAAgBud,iBAAiBvmH,GAAOX,KAAK,SAAS2W,GAEjE,MADA1R,GAAMq9G,WAAW3rG,GACVnX,MACN,SAAS,SAAS2N,GACnB,MAAOlI,GAAMgpG,SAAS9qG,SAASgK,OAMpCtQ,QAGLs4H,EAAe1oH,UAAUigE,aAAe,WACtC,GAAI/rE,EACJ,IAAK9D,KAAK8Z,QAIV,MADAhW,GAAQ9D,KAAK8Z,QAAQhU,IAAI,QAClB9F,KAAK8sG,gBAAgBud,iBAAiBvmH,GAAOX,KAAK,SAAUiF,GACjE,MAAO,UAAS0R,GACd,MAAO1R,GAAMq9G,WAAW3rG,KAEzB9Z,QAGLs4H,EAAe1oH,UAAU8/E,cAAgB,SAAStjE,GAChD,MAAOpsB,MAAKy4H,SAAS3yH,IAAI,kBAAkBiB,QAAQqlB,SAGrDksG,EAAe1oH,UAAU4/F,wBAA0B,WACjD,MAAOxvG,MAAKy4H,SAAS3yH,IAAI,uBAGpBwyH,KAIT11H,QAAQjD,OAAO,eAAeijB,QAAQ,mBAAoB01G,IAEzDr0H,KAAKjE,MAsBR,WACE,GAAIk5H,GAAcn5H,EAChB8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbm5H,EAAe,SAAU9oH,GAGvB,QAAS8oH,KACP,MAAOA,GAAarpH,UAAUJ,YAAYS,MAAMlQ,KAAMmQ,WAGxD,MANAtN,GAAOq2H,EAAc9oH,GAMd8oH,GAENn5H,EAAM4Q,QAAU,WACjB,OACE6Q,IAAK,SAAS23G,GACZ,GAAIC,EAMJ,OALAA,GAAersF,EAAE,gCACW,IAAxBqsF,EAAahsH,SACfgsH,EAAersF,EAAE,mDACjBA,EAAE,QAAQL,OAAO0sF,IAEZA,EAAavlH,KAAK,OAAQ,IAAM3T,OAAOmJ,SAAW,iBAAmB8vH,EAAY,YAK9Fv2H,QAAQjD,OAAO,eAAeijB,QAAQ,iBAAkBs2G,IAEvDj1H,KAAKjE,MAsBR,WACE,GAAIq5H,GAAqB7nH,EAASzR,CAElCA,GAAQC,KAAKD,MAEbyR,EAAUxR,KAAKD,MAAMyR,QAErB6nH,EAAsB,WAKpB,QAASA,GAAoBjnH,GAE3B,MADApS,MAAKoS,QAAUA,EACXlS,OAAO6I,aAAa8vH,IACf,MAET34H,OAAOgyB,iBAAiB,YAAalyB,KAAKs5H,WAAWvpH,KAAK/P,OAAO,GACjEE,OAAOgyB,iBAAiB,YAAalyB,KAAKs5H,WAAWvpH,KAAK/P,OAAO,GACjEE,OAAOgyB,iBAAiB,WAAYlyB,KAAKs5H,WAAWvpH,KAAK/P,OAAO,GAChEE,OAAOgyB,iBAAiB,aAAclyB,KAAKs5H,WAAWvpH,KAAK/P,OAAO,GAClEE,OAAOgyB,iBAAiB,YAAalyB,KAAKs5H,WAAWvpH,KAAK/P,OAAO,GACjEA,KAAKu5H,uBACLv5H,KAAKw5H,yBACLx5H,KAAKy5H,UAAW,MAChBz5H,MAAK05H,cAmDP,MApEAL,GAAoBj5G,SAAW,YAE/Bi5G,EAAoBzpH,UAAU+pH,YAAc,IAkB5CN,EAAoBzpH,UAAU8pH,WAAa,WACzC,MAAO15H,MAAK45H,QAAU55H,KAAKoS,QAAQpS,KAAK65H,cAAc9pH,KAAK/P,MAAOA,KAAK25H,cAGzEN,EAAoBzpH,UAAU0pH,WAAa,WAMzC,MALKt5H,MAAKy5H,UACRz5H,KAAK85H,cAEP95H,KAAKoS,QAAQ8mD,OAAOl5D,KAAK45H,SACzB55H,KAAK05H,aACE15H,KAAKy5H,UAAW,GAGzBJ,EAAoBzpH,UAAUqpH,SAAW,SAAShrH,GAEhD,MADAjO,MAAKu5H,oBAAoBhyH,KAAK0G,GACvBjO,KAAK+5H,uBAAuBhqH,KAAK/P,KAAMiO,IAGhDorH,EAAoBzpH,UAAUopH,WAAa,SAAS/qH,GAElD,MADAjO,MAAKw5H,sBAAsBjyH,KAAK0G,GACzBjO,KAAKg6H,yBAAyBjqH,KAAK/P,KAAMiO,IAGlDorH,EAAoBzpH,UAAUkqH,YAAc,WAC1C,MAAO95H,MAAKu5H,oBAAoBhhH,QAAQ,SAASiE,GAC/C,MAAOA,QAIX68G,EAAoBzpH,UAAUiqH,cAAgB,WAE5C,MADA75H,MAAKy5H,UAAW,EACTz5H,KAAKw5H,sBAAsBjhH,QAAQ,SAASiE,GACjD,MAAOA,QAIX68G,EAAoBzpH,UAAUmqH,uBAAyB,SAAS9rH,GAC9D,MAAOjO,MAAKu5H,oBAAsBv5H,KAAKu5H,oBAAoB7rH,OAAO,SAASsC,GACzE,MAAOA,KAAO/B,KAIlBorH,EAAoBzpH,UAAUoqH,yBAA2B,SAAS/rH,GAChE,MAAOjO,MAAKw5H,sBAAwBx5H,KAAKw5H,sBAAsB9rH,OAAO,SAASsC,GAC7E,MAAOA,KAAO/B,KAIXorH,KAITz2H,QAAQjD,OAAO,eAAeijB,QAAQ,wBAAyBy2G,IAE9Dp1H,KAAKjE,MAsBR,WACE,GAAIi6H,GAAalpH,EAAahR,EAC5B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbgR,EAAchR,EAAMgR,YAEpBkpH,EAAc,SAAU7pH,GAKtB,QAAS6pH,GAAY7/G,GACnBpa,KAAKoa,GAAKA,EACVrJ,EAAY/Q,MA2Cd,MAjDA6C,GAAOo3H,EAAa7pH,GAEpB6pH,EAAY75G,SAAW,eAOvB65G,EAAYrqH,UAAU8zG,kBAAoB,SAASr/F,GACjD,MAAOrkB,MAAKoa,GAAGf,MAAM07G,kBAAkB1wG,IAGzC41G,EAAYrqH,UAAU6tG,YAAc,SAASplF,EAAQmlF,GACnD,MAAOx9G,MAAKoa,GAAGf,MAAMokG,YAAYplF,EAAQmlF,IAG3Cyc,EAAYrqH,UAAUqyG,SAAW,SAAS5pF,EAAQ6hG,EAAYC,EAAYC,GACxE,MAAOp6H,MAAKoa,GAAGf,MAAM4oG,SAAS5pF,EAAQ6hG,EAAYC,EAAYC,IAGhEH,EAAYrqH,UAAUsyG,SAAW,SAAS7pF,EAAQ6hG,EAAYC,EAAYC,GACxE,MAAOp6H,MAAKoa,GAAGf,MAAM6oG,SAAS7pF,EAAQ6hG,EAAYC,EAAYC,IAGhEH,EAAYrqH,UAAUuyG,WAAa,SAAS9pF,EAAQ6hG,EAAYC,EAAYC,GAC1E,MAAOp6H,MAAKoa,GAAGf,MAAM8oG,WAAW9pF,EAAQ6hG,EAAYC,EAAYC,IAGlEH,EAAYrqH,UAAU6vG,SAAW,SAASpnF,GACxC,MAAOr4B,MAAKoa,GAAGf,MAAMomG,SAASpnF,IAGhC4hG,EAAYrqH,UAAUizG,6BAA+B,SAASxqF,EAAQhe,GACpE,MAAOra,MAAKy9G,YAAYplF,GAAQl1B,KAAK,SAASsnF,GAW5C,MAVApwE,GAAWA,EAAS/Z,IAAI,SAASwZ,GAC/B,GAAIugH,EAOJ,OANAA,GAAmB5vC,EAAS/8E,OAAO,SAASkwG,GAC1C,GAAI0c,EAEJ,OADAA,GAAY1c,EAAQ93G,IAAI,MACjBgU,EAAQhU,IAAI,WAAWiB,QAAQuzH,UAExCxgH,EAAUA,EAAQiC,IAAI,WAAYs+G,QAOjCJ,GAENl6H,EAAM4Q,SAET/N,QAAQjD,OAAO,eAAeijB,QAAQ,gBAAiBq3G,IAEtDh2H,KAAKjE,MAsBR,WACE,GAAIoxG,GACFvuG,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEfshG,GAAW,SAAUhhG,GAKnB,QAASghG,GAAS3gG,EAAGrK,GACnBpG,KAAKyQ,EAAIA,EACTzQ,KAAKoG,qBAAuBA,EAsB9B,MA5BAvD,GAAOuuG,EAAUhhG,GAEjBghG,EAAShxF,SAAW,KAAM,0BAO1BgxF,EAASxhG,UAAU8/F,SAAW,WAC5B,MAAO1vG,MAAKoG,qBAAqBmK,YAGnC6gG,EAASxhG,UAAUY,iBAAmB,WACpC,MAAOxQ,MAAKoG,qBAAqBoK,oBAGnC4gG,EAASxhG,UAAUtJ,SAAW,SAASgK,GAQrC,MAPIA,KACiB,MAAfA,EAAI7J,OACNzG,KAAK0vG,WACmB,MAAfp/F,EAAI7J,QACbzG,KAAKwQ,oBAGFxQ,KAAKyQ,EAAEtJ,OAAOmJ,IAGhB8gG,GAENrxG,MAAM4Q,SAET/N,QAAQjD,OAAO,eAAeijB,QAAQ,oBAAqBwuF,IAE1DntG,KAAKjE,MAsBR,WACE,GAAIu6H,EAEJA,GAAkC,SAAS31H,EAAUswB,GACnD,GAAIxjB,GAAS2R,EAAMm3G,CAsBnB,OArBAA,IAAuB,OAAQ,QAAS,OAAQ,OAAQ,QACxD9oH,EAAU,SAAS5K,GAEjB,MADAA,GAAMA,EAAI2N,cACHpU,EAAE+xC,KAAKooF,EAAqB,SAASC,GAC1C,MAAO3zH,GAAIC,QAAQ0zH,EAAW3zH,EAAM2zH,EAAUrtH,gBAGlDiW,EAAO,SAASzP,EAAOd,GACrB,GAAI4nH,GAAUC,CASd,OARAD,GAAWhpH,EAAQkC,EAAMwjC,WAAWtxC,IAAI,QAEtC60H,EADED,EACa91H,EAASkB,IAAI,8EAEblB,EAASkB,IAAI,wEAE9BgN,EAAG+iB,KAAK8kG,GACRzlG,EAASpiB,EAAGkzB,YAAYpyB,GACjBd,EAAG2J,KAAK,OAAO5V,MAAM,WAC1B,MAAO7G,MAAK4hB,aAIdyB,KAAMA,EACNzP,OACEwjC,WAAY,+BAKlBmjF,EAAgCn6G,SAAW,cAAe,YAE1Dxd,QAAQjD,OAAO,qBAAqBwjB,UAAU,2BAA4Bo3G,IAEzEt2H,KAAKjE,MAsBR,WACE,GAAI46H,GAAuBnoH,CAE3BA,GAAYzS,KAAKD,MAAM0S,UAEvBmoH,EAAwB,WAqGtB,QAASA,GAAsB77G,EAAW87G,GACxC76H,KAAK+e,UAAYA,EACjB/e,KAAK66H,IAAMA,EAiEb,MAvKAD,GAAsBx6G,SAAW,aAAc,QAE/Cw6G,EAAsBhrH,UAAUkrH,sBAC9Br0H,OAAU,uBACVoY,QAAW,wBACXk8G,iBAAoB,4BACpBngG,OAAU,uBACVpd,YAAe,4BACfouB,SAAY,yBACZF,SAAY,yBACZthC,KAAQ,qBACRogC,WAAc,yBACdI,WAAc,2BACdhuB,MAAS,uBAGXg+G,EAAsBhrH,UAAU69F,SAC9BppF,SAAU,SAAS22G,EAAUzsH,GAC3B,GAAI0sH,GAAYn0H,EAAKyF,CAErB,OADAA,GAAOyuH,EAASnlE,OAAO,OAAQ,SAC3BtpD,EAAKzG,IAAI,uBACXm1H,EAAaj7H,KAAK+e,UAAUxW,QAAQ,2BAClC8b,SAAU9X,EAAKzG,IAAI,cAErBgB,EAAM,qEACC9G,KAAKk7H,SAASp0H,EAAKyF,EAAKzG,IAAI,QAASm1H,IAErCj7H,KAAKm7H,iBAAiB5uH,EAAKzG,IAAI,UAG1Cs1H,WAAY,SAASJ,EAAUzsH,GAC7B,GAAI6sH,EAEJ,OADAA,GAAaJ,EAASnlE,OAAO,OAAQ,aAAc,QAC5C71D,KAAK+e,UAAUxW,QAAQvI,KAAK86H,qBAAqBM,KAE1Dr1G,aAAc,SAASi1G,EAAUzsH,GAC/B,GAAIzH,EAEJ,OADAA,GAAM,8DACC9G,KAAKk7H,SAASp0H,EAAKk0H,EAASnlE,OAAO,OAAQ,UAAW,WAE/DwlE,UAAW,SAASL,EAAUzsH,GAC5B,GAAI8sH,GAAWtsH,CAUf,OATI1O,GAAE29C,QAAQg9E,EAASnlE,OAAO,OAAQ,aAAc,UAAUp9C,SAC5D1J,EAAQisH,EAASnlE,OAAO,OAAQ,aAAc,UAAU/vD,IAAI,GAC9C,OAAViJ,GAAoE,gBAAlDisH,EAASnlE,OAAO,OAAQ,aAAc,UAC1D9mD,EAAQ/O,KAAK+e,UAAUxW,QAAQ,+BAEjC8yH,EAAYtsH,GAEZssH,EAAYL,EAASnlE,OAAO,OAAQ,aAAc,UAAUvuB,QAAQxhC,IAAI,GAEnEzF,EAAE6lB,OAAOm1G,IAElBC,YAAa,SAASN,EAAUzsH,GAC9B,GAAIzH,EAEJ,OADAA,GAAM,6HACC9G,KAAKk7H,SAASp0H,EAAKk0H,EAASnlE,OAAO,OAAQ,YAAa,WAEjE0lE,QAAS,SAASP,EAAUzsH,GAC1B,GAAIitH,GAAUnkH,EAAKxC,EAAM/N,CAOzB,OANAuQ,GAAMrX,KAAKy7H,gBAAgBT,EAAUzsH,GAAOzI,IAAI,aAChD01H,GACEnkH,IAAK,oBAEPvQ,EAAM9G,KAAK07H,iBAAiBF,GAC5B3mH,EAAO,IAAMwC,EAAIvR,IAAI,OAAS,IAAMuR,EAAIvR,IAAI,WACrC9F,KAAKk7H,SAASp0H,EAAK+N,IAE5B8mH,gBAAiB,SAASX,EAAUzsH,GAClC,GAAI8I,GAAKxC,EAAM/N,CAIf,OAHAuQ,GAAM2jH,EAASnlE,OAAO,OAAQ,cAC9B/uD,EAAM,+IACN+N,EAAO,IAAMwC,EAAIvR,IAAI,OAAS,IAAMuR,EAAIvR,IAAI,WACrC9F,KAAKk7H,SAASp0H,EAAK+N,IAE5B+mH,UAAW,SAASZ,EAAUzsH,GAC5B,GAAI8I,GAAKxC,EAAM/N,CAIf,OAHAuQ,GAAM2jH,EAASnlE,OAAO,OAAQ,SAC9B/uD,EAAM,uHACN+N,EAAO,IAAMwC,EAAIvR,IAAI,OAAS,IAAMuR,EAAIvR,IAAI,WACrC9F,KAAKk7H,SAASp0H,EAAK+N,IAE5BgnH,SAAU,SAASb,EAAUzsH,GAC3B,GAAI8I,GAAKxC,EAAM/N,CAUf,OATAuQ,GAAMrX,KAAKy7H,gBAAgBT,EAAUzsH,GACrCzH,EAAM9G,KAAK07H,iBAAiBntH,GAE1BsG,EADgB,aAAdtG,EAAM8I,IACD5E,EAAU4E,EAAIvR,IAAI,SACF,cAAdyI,EAAM8I,IACRA,EAAIvR,IAAI,QAER,IAAMuR,EAAIvR,IAAI,OAAS,IAAMuR,EAAIvR,IAAI,WAEvC9F,KAAKk7H,SAASp0H,EAAK+N,IAE5BinH,UAAW,SAASd,EAAUzsH,GAC5B,MAAOlO,GAAE6lB,OAAO80G,EAASnlE,OAAO,OAAQ,aAAc,UAAUkmE,SAASz0F,WAS7EszF,EAAsBhrH,UAAUosH,sBAAwB,SAAS/3C,EAAO+2C,EAAUzsH,GAChF,MAAOvO,MAAKytG,QAAQxpB,GAAOhgF,KAAKjE,KAAMg7H,EAAUzsH,IAGlDqsH,EAAsBhrH,UAAU6rH,gBAAkB,SAAST,EAAUzsH,GACnE,MAAOysH,GAASnlE,OAAO,OAAQtnD,EAAM8I,OAGvCujH,EAAsBhrH,UAAU8rH,iBAAmB,SAASntH,GAC1D,GAAIzH,EAUJ,OATAA,IACEukC,OAAU,wBAAyB,2FACnCm6C,UAAa,oBAAqB,6FAClC7vD,MAAS,uBAAwB,2FACjC0wD,WAAc,6BAA8B,2FAC5C41C,kBAAqB,6BAA8B,wGACnD90E,WAAc,oBAAqB,+FACnCnpC,MAAS,uBAAwB,4FAE5BlX,EAAIyH,EAAM8I,KAAK,GAAKvQ,EAAIyH,EAAM8I,KAAK,IAG5CujH,EAAsBhrH,UAAUsrH,SAAW,SAASp0H,EAAK+N,EAAMvQ,GAC7D,GAAI43H,EAGJ,OAFA53H,GAAQA,GAASuQ,EACjBqnH,EAAOnvF,EAAE,UAAUl5B,KAAK,mBAAmB,GAAMgB,KAAKA,GAC/Ck4B,EAAE,OAAOl5B,KAAK,SAAU/M,GAAK+M,KAAK,QAASvP,GAAOooC,OAAOwvF,GAAM5tG,KAAK,cAG7EssG,EAAsBhrH,UAAUurH,iBAAmB,SAAStmH,GAC1D,GAAIvQ,EAEJ,OADAA,GAAQA,GAASuQ,EACVk4B,EAAE,UAAUj8B,SAAS,YAAY+D,KAAKA,GAAMyZ,KAAK,cAG1DssG,EAAsBhrH,UAAUusH,WAAa,SAASnB,EAAUzsH,EAAO6tH,GACrE,GAAIv4H,EAOJ,OANAA,MACAu4H,EAAcC,iBAAiB9jH,QAAQ,SAAUnQ,GAC/C,MAAO,UAAS67E,GACd,MAAOpgF,GAAOogF,GAAS77E,EAAM4zH,sBAAsB/3C,EAAO+2C,EAAUzsH,KAErEvO,OACI6D,GAGT+2H,EAAsBhrH,UAAU0sH,SAAW,SAAStB,EAAUzsH,EAAOnE,GACnE,GAAIvG,GAAQ04H,EAAYC,CAYxB,OAXA34H,GAAS7D,KAAKm8H,WAAWnB,EAAUzsH,EAAOnE,GAC1CmyH,KACAjlH,OAAO9D,KAAK3P,GAAQ0U,QAAQ,SAAS7I,GACnC,MAAO6sH,GAAW7sH,GAAO,KAAOA,EAAM,OAExC8sH,EAAcx8H,KAAK+e,UAAUxW,QAAQ6B,EAAKsF,IAAK6sH,GAC/CjlH,OAAO9D,KAAK3P,GAAQ0U,QAAQ,SAAS7I,GACnC,GAAI+M,EAEJ,OADAA,GAAO,KAAO/M,EAAM,KACb8sH,EAAcA,EAAYppH,QAAQ,GAAI+D,QAAOsF,EAAM,KAAM5Y,EAAO6L,MAElE8sH,GAGF5B,KAITh4H,QAAQjD,OAAO,qBAAqBijB,QAAQ,0BAA2Bg4G,IAEtE32H,KAAKjE,MAsBR,WACE,GAAIy8H,GAAkBC,CAEtBA,GAAe,SAAS1B,EAAUzsH,GAChC,GAAIk0D,EAqQJ,OApQAA,KAEI62B,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,eAAdA,EAAM8I,KAEf3H,IAAK,sBACL2sH,kBAAmB,gBACnBvkG,OAAQ,SAASkjG,GACf,MAAO/5G,WAAU24C,KACfrtD,KAAMyuH,EAASnlE,OAAO,OAAQ,SAC9BlkB,KAAMqpF,EAASnlE,OAAO,OAAQ,cAIlCyjC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,YAAdA,EAAM8I,KAAoC,WAAf9I,EAAMnE,MAE1CsF,IAAK,uBACL2sH,kBAAmB,WAAY,gBAC/B93H,YAAa,SAASy2H,GACpB,MAAOA,GAASnlE,OAAO,OAAQ,UAAW,mBAG5CyjC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAsB,WAAfA,EAAMnE,MAAqB4wH,EAAS2B,OAAO,OAAQ,gBAAoE,gBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAEpHnmD,IAAK,6BACL2sH,kBAAmB,WAAY,cAE/B/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,cAAdA,EAAM8I,KAAsC,WAAf9I,EAAMnE,MAE5CsF,IAAK,sBACL2sH,kBAAmB,WAAY,eAAgB,cAE/C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,UAAdA,EAAM8I,KAAkC,WAAf9I,EAAMnE,MAExCsF,IAAK,yBACL2sH,kBAAmB,WAAY,eAAgB,cAE/C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,aAAdA,EAAM8I,KAAqC,WAAf9I,EAAMnE,MAE3CsF,IAAK,wBACL2sH,kBAAmB,WAAY,eAAgB,cAE/C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,OAAsB4wH,EAASnlE,OAAO,OAAQ,OAAQ,eAE7FnmD,IAAK,wBACL2sH,kBAAmB,WAAY,eAAgB,cAE/C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAAqB4wH,EAASnlE,OAAO,OAAQ,OAAQ,eAE5FnmD,IAAK,gCACL2sH,kBAAmB,WAAY,eAAgB,WAAY,aAE3D/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,cAAdA,EAAM8I,KAAsC,WAAf9I,EAAMnE,MAE5CsF,IAAK,6BACL2sH,kBAAmB,WAAY,eAAgB,cAE/C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAEvCsF,IAAK,wBACL2sH,kBAAmB,WAAY,eAAgB,cAE/C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,qBAAdA,EAAM8I,KAA6C,WAAf9I,EAAMnE,MAEnDsF,IAAK,0CACL2sH,kBAAmB,WAAY,eAAgB,kBAAmB,eAElE/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAOysH,GAASnlE,OAAO,OAAQ,aAA6B,cAAdtnD,EAAM8I,KAEtD3H,IAAK,0BACL2sH,kBAAmB,WAAY,YAC/B93H,YAAa,SAASy2H,GACpB,GAAInmH,EAEJ,OADAA,GAAOmmH,EAASnlE,OAAO,OAAQ,iBACxB9oB,EAAEA,EAAElJ,UAAUhvB,IAAOA,UAG9BykF,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAOysH,GAASnlE,OAAO,OAAQ,aAA6B,UAAdtnD,EAAM8I,KAEtD3H,IAAK,6BACL2sH,kBAAmB,WAAY,YAC/B93H,YAAa,SAASy2H,GACpB,GAAInmH,EAEJ,OADAA,GAAOmmH,EAASnlE,OAAO,OAAQ,iBACxB9oB,EAAEA,EAAElJ,UAAUhvB,IAAOA,UAG9BykF,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAOysH,GAASnlE,OAAO,OAAQ,aAA6B,SAAdtnD,EAAM8I,KAEtD3H,IAAK,4BACL2sH,kBAAmB,WAAY,YAC/B93H,YAAa,SAASy2H,GACpB,GAAInmH,EAEJ,OADAA,GAAOmmH,EAASnlE,OAAO,OAAQ,iBACxB9oB,EAAEA,EAAElJ,UAAUhvB,IAAOA,UAG9BykF,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAOysH,GAASnlE,OAAO,OAAQ,aAA6B,SAAdtnD,EAAM8I,KAEtD3H,IAAK,4BACL2sH,kBAAmB,WAAY,YAC/B93H,YAAa,SAASy2H,GACpB,GAAInmH,EAEJ,OADAA,GAAOmmH,EAASnlE,OAAO,OAAQ,iBACxB9oB,EAAEA,EAAElJ,UAAUhvB,IAAOA,UAG9BykF,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAOysH,GAAS2B,OAAO,OAAQ,gBAAoE,kBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAA+BmlE,EAAS2B,OAAO,OAAQ,aAAc,QAAS,mBAAoC,WAAfpuH,EAAMnE,MAElMsF,IAAK,oBACL2sH,kBAAmB,WAAY,cAE/B/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,SAAIysH,EAAS2B,OAAO,OAAQ,gBAAoE,kBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAA8C,WAAftnD,EAAMnE,MAAmC,cAAdmE,EAAM8I,MACnE,OAAxE2jH,EAASnlE,OAAO,OAAQ,aAAc,QAAS,cAAc/vD,IAAI,IAI5E4J,IAAK,qCACL2sH,kBAAmB,WAAY,cAE/B/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAOysH,GAAS2B,OAAO,OAAQ,gBAAoE,kBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAA8C,WAAftnD,EAAMnE,MAAmC,cAAdmE,EAAM8I,KAEzJ3H,IAAK,8BACL2sH,kBAAmB,WAAY,WAAY;GAE3C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,SAAIysH,EAAS2B,OAAO,OAAQ,gBAAoE,YAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAAwC,WAAftnD,EAAMnE,OAC1G4wH,EAASnlE,OAAO,OAAQ,aAAc,QAAS,eAAe/vD,IAAI,MAAO,GAIpF4J,IAAK,mBACL2sH,kBAAmB,WAAY,YAC/B93H,YAAa,SAASy2H,GACpB,GAAInmH,EACJ,SAAImmH,EAAS2B,OAAO,OAAQ,aAAc,QAAS,wBACjD9nH,EAAOmmH,EAASnlE,OAAO,OAAQ,aAAc,QAAS,sBAAsB/vD,IAAI,GACzEinC,EAAEA,EAAElJ,UAAUhvB,IAAOA,WAMhCykF,MAAO,SAAS0hC,EAAUzsH,GACxB,SAAIysH,EAAS2B,OAAO,OAAQ,gBAAoE,YAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAAwC,WAAftnD,EAAMnE,OAC1G4wH,EAASnlE,OAAO,OAAQ,aAAc,QAAS,eAAe/vD,IAAI,MAAO,GAIpF4J,IAAK,qBACL2sH,kBAAmB,WAAY,cAE/B/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,cAAdA,EAAM8I,KAAsC,WAAf9I,EAAMnE,MAE5CsF,IAAK,6BACL2sH,kBAAmB,WAAY,cAE/B/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,aAAdA,EAAM8I,KAAqC,WAAf9I,EAAMnE,MAE3CsF,IAAK,wBACL2sH,kBAAmB,WAAY,cAE/B/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,cAAdA,EAAM8I,KAAsC,WAAf9I,EAAMnE,MAAqB4wH,EAAS2B,OAAO,OAAQ,gBAAoE,WAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAEjJnmD,IAAK,6BACL2sH,kBAAmB,WAAY,aAAc,WAAY,YAAa,eAEtE/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,cAAdA,EAAM8I,KAAsC,WAAf9I,EAAMnE,MAAqB4wH,EAAS2B,OAAO,OAAQ,gBAAoE,qBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAEjJnmD,IAAK,sBACL2sH,kBAAmB,WAAY,aAAc,cAE7C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,cAAdA,EAAM8I,KAAsC,WAAf9I,EAAMnE,MAE5CsF,IAAK,qCACL2sH,kBAAmB,WAAY,aAAc,WAAY,eAEzD/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,UAAdA,EAAM8I,KAAkC,WAAf9I,EAAMnE,MAAqB4wH,EAAS2B,OAAO,OAAQ,gBAAoE,qBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAE7InmD,IAAK,yBACL2sH,kBAAmB,WAAY,aAAc,cAE7C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,UAAdA,EAAM8I,KAAkC,WAAf9I,EAAMnE,MAExCsF,IAAK,wCACL2sH,kBAAmB,WAAY,aAAc,WAAY,eAEzD/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,OAAsB4wH,EAASnlE,OAAO,OAAQ,OAAQ,eAAiBmlE,EAAS2B,OAAO,OAAQ,gBAAoE,qBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAE9LnmD,IAAK,wBACL2sH,kBAAmB,WAAY,aAAc,cAE7C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAAqB4wH,EAASnlE,OAAO,OAAQ,OAAQ,eAAiBmlE,EAAS2B,OAAO,OAAQ,gBAAoE,qBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAE7LnmD,IAAK,gCACL2sH,kBAAmB,WAAY,aAAc,WAAY,aAEzD/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,OAAsB4wH,EAASnlE,OAAO,OAAQ,OAAQ,eAE7FnmD,IAAK,uCACL2sH,kBAAmB,WAAY,aAAc,WAAY,eAEzD/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAAqB4wH,EAASnlE,OAAO,OAAQ,OAAQ,eAE5FnmD,IAAK,0CACL2sH,kBAAmB,WAAY,aAAc,WAAY,UAAW,eAEpE/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAAqB4wH,EAAS2B,OAAO,OAAQ,gBAAoE,qBAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAE5InmD,IAAK,wBACL2sH,kBAAmB,WAAY,aAAc,cAE7C/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAAqB4wH,EAAS2B,OAAO,OAAQ,gBAAoE,UAAlD3B,EAASnlE,OAAO,OAAQ,aAAc,SAE5InmD,IAAK,uCACL2sH,kBAAmB,WAAY,aAAc,WAAY,eAEzD/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAEvCsF,IAAK,uCACL2sH,kBAAmB,WAAY,aAAc,WAAY,eAEzD/iC,MAAO,SAAS0hC,EAAUzsH,GACxB,MAAqB,SAAdA,EAAM8I,KAAiC,WAAf9I,EAAMnE,MAEvCsF,IAAK,oBACL2sH,kBAAmB,cAGhBh8H,EAAEoc,KAAKgmD,EAAO,SAASprD,GAC5B,MAAOA,GAAIiiF,MAAM0hC,EAAUzsH,MAI/BkuH,EAAmB,WACjB,QAASA,MAMT,MAJAA,GAAiB7sH,UAAUgtH,QAAU,SAAS5B,EAAUzsH,GACtD,MAAOmuH,GAAa1B,EAAUzsH,IAGzBkuH,KAIT75H,QAAQjD,OAAO,qBAAqBijB,QAAQ,yBAA0B65G,IAErEx4H,KAAKjE,MAsBR,WACE,GAAI68H,EAEJA,GAA4B,WAC1B,OACE34H,YAAa,2DACb0P,OACEonH,SAAU,yBAKhBp4H,QAAQjD,OAAO,qBAAqBwjB,UAAU,qBAAsB05G,IAEnE54H,KAAKjE,MAsBR,WACE,GAAI88H,EAEJA,GAAiC,WAC/B,GAAIzlH,EAsCJ,OArCAA,MACAA,EAAI0lH,SAAW,SAASr2H,GACtB,GAAIs2H,GAAYz7B,EAAOr6F,EAAMs+B,CA6B7B,OA5BAA,GAAO,EACP+7D,EAAQtgF,UAAU0yB,OAClBjtC,EAAOu2H,SAAWv2H,EAAOu2H,UAAY,GACrC/1H,EAAO,WAEL,MADAq6F,GAAQtgF,UAAU0yB,OACXqpF,KAETA,EAAa,WACX,MAAOt2H,GAAOykG,MAAM3lE,GAAMriC,KAAK,SAASmD,GACtC,GAAIyB,EAUJ,OATAy9B,KACAz9B,EAAOzB,EAASR,IAAI,QAChBY,EAAOgH,SACT3F,EAAOrB,EAAOgH,OAAO3F,IAEnBrB,EAAOpG,MACTyH,EAAOA,EAAKzH,IAAIoG,EAAOpG,MAEzBihG,EAAQA,EAAMtyF,OAAOlH,GACjBw5F,EAAM9qF,KAAO/P,EAAOu2H,UAAY32H,EAASR,IAAI,QACxCk3H,IAEF/7G,UAAU24C,KACf2nC,MAAOA,EACPr6F,KAAMZ,EAASR,IAAI,cAKvBoB,KAAM,WACJ,MAAOA,QAINmQ,GAGTzU,QAAQjD,OAAO,qBAAqB0H,QAAQ,0CAA2Cy1H,IAEtF74H,KAAKjE,MA2BR,WACE,GAAIk9H,GAAwBrrH,EAAO9R,EACjC8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEb8R,EAAQ7R,KAAKD,MAAM8R,MAEnBqrH,EAAyB,SAAU9sH,GAKjC,QAAS8sH,GAAuBC,GAC9Bn9H,KAAKm9H,oBAAsBA,EAC3Bn9H,KAAKo9H,aAAen8G,UAAU0yB,OAC9B3zC,KAAK6gH,gBAAiB,EACtB7gH,KAAKg7H,SAAW,KACZh7H,KAAKua,UACPva,KAAKg7H,SAAWh7H,KAAKm9H,oBAAoBE,mBAAmBr9H,KAAKua,WACxDva,KAAKqoE,YACdroE,KAAKg7H,SAAWh7H,KAAKm9H,oBAAoBlI,mBAAmBj1H,KAAKuM,KAAKzG,IAAI,OAE1E9F,KAAKg7H,SAAWh7H,KAAKm9H,oBAAoBjI,gBAAgBl1H,KAAKuM,KAAKzG,IAAI,OAiB3E,MA/BAjD,GAAOq6H,EAAwB9sH,GAE/B8sH,EAAuB98G,SAAW,yBAgBlC88G,EAAuBttH,UAAU0tH,aAAe,WAE9C,MADAt9H,MAAK6gH,gBAAiB,EACf7gH,KAAKg7H,SAAS9zH,OAAO/D,KAAK,SAAUiF,GACzC,MAAO,UAAS9B,GAKd,MAJA8B,GAAMg1H,aAAeh1H,EAAMg1H,aAAanuH,OAAO3I,EAASR,IAAI,UACxDQ,EAASR,IAAI,UACfsC,EAAMy4G,gBAAiB,GAElBz4G,EAAMg1H,eAEdp9H,QAGEk9H,GAENrrH,EAAM9R,EAAM6Q,WAAY7Q,EAAMmZ,UAAWnZ,EAAMkZ,eAElDrW,QAAQjD,OAAO,qBAAqBwE,WAAW,eAAgB+4H,IAE9Dj5H,KAAKjE,MAsBR,WACE,GAAIu9H,EAEJA,GAAwB,WACtB,OACEr5H,YAAa,iDACbC,WAAY,eACZC,aAAc,KACdwP,OACE2G,UAAW,aACXhO,KAAM,IACN87D,YAAa,KAEfoF,kBAAkB,IAItB7qE,QAAQjD,OAAO,gBAAgBwjB,UAAU,iBAAkBo6G,IAE1Dt5H,KAAKjE,MAsBR,WACE,GAAIw9H,GAAqBz9H,EACvB8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEby9H,EAAsB,SAAUptH,GAK9B,QAASotH,GAAoBpjH,EAAIqjH,EAAuCC,EAAsBC,GAC5F39H,KAAKoa,GAAKA,EACVpa,KAAKy9H,sCAAwCA,EAC7Cz9H,KAAK09H,qBAAuBA,EAC5B19H,KAAK29H,sBAAwBA,EAiO/B,MAzOA96H,GAAO26H,EAAqBptH,GAE5BotH,EAAoBp9G,SAAW,cAAe,0CAA2C,yBAA0B,2BASnHo9G,EAAoB5tH,UAAUguH,eAAiB,SAAU,UAAW,mBAAoB,cAAe,SAAU,WAAY,WAAY,OAAQ,cAAe,aAAc,eAAgB,OAAQ,mBAAoB,kBAAmB,UAAW,gBAAiB,YAAa,SAEtRJ,EAAoB5tH,UAAUiuH,WAE1BvkC,MAAO,SAAS0hC,GACd,GAAI8C,GAAUC,CAEd,IADAA,EAAa/C,EAASl1H,IAAI,QAAQA,IAAI,cACtB,CAEd,GADAg4H,EAAWC,EAAWj4H,IAAI,OACtB9F,KAAK49H,cAAc72H,QAAQ+2H,QAC7B,OAAO,CACF,IAAiB,gBAAbA,GAA0E,IAA5CC,EAAWj4H,IAAI,SAASA,IAAI,OAAO2Q,KAC1E,OAAO,EAGX,OAAO,KAGT6iF,MAAO,SAAS0hC,GACd,GAAIzsH,GAAOwvH,CAGX,OAFAxvH,GAAQysH,EAASl1H,IAAI,cAAcmH,MAAM,KACzC8wH,EAAa/C,EAASl1H,IAAI,QAAQA,IAAI,cAClB,WAAbyI,EAAM,IAAkC,SAAfwvH,KAGlCzkC,MAAO,SAAS0hC,GACd,GAAIzsH,EAEJ,OADAA,GAAQysH,EAASl1H,IAAI,cAAcmH,MAAM,KACrB,WAAbsB,EAAM,MAGf+qF,MAAO,SAAS0hC,GACd,GAAIzsH,EAEJ,OADAA,GAAQysH,EAASl1H,IAAI,cAAcmH,MAAM,KACrB,YAAbsB,EAAM,IAAiC,WAAbA,EAAM,MAGzC+qF,MAAO,SAAS0hC,GACd,QAASA,EAASl1H,IAAI,QAAQA,IAAI,sBAGpCwzF,MAAO,SAAS0hC,GACd,GAAIzsH,GAAOwvH,CAGX,OAFAxvH,GAAQysH,EAASl1H,IAAI,cAAcmH,MAAM,KACzC8wH,EAAa/C,EAASl1H,IAAI,QAAQA,IAAI,iBAClCi4H,GAA2B,SAAbxvH,EAAM,IAA8B,WAAbA,EAAM,IAA6C,cAA1BwvH,EAAWj4H,IAAI,SACxEk1H,EAASl1H,IAAI,QAAQA,IAAI,cAAcA,IAAI,YAO1D03H,EAAoB5tH,UAAUouH,mBAAqB,SAAShD,GAC1D,MAAO36H,GAAE+xC,KAAKpyC,KAAK69H,SAAU,SAAUz1H,GACrC,MAAO,UAASmoH,GACd,MAAOA,GAAQj3B,MAAMr1F,KAAKmE,EAAO4yH,KAElCh7H,QAGLw9H,EAAoB5tH,UAAUquH,gBAAkB,SAASC,GAEvD,MADAA,GAAaA,EAAWjxH,MAAM,MAE5BrJ,QAASs6H,EAAW,GACpB7mH,IAAK6mH,EAAW,GAChB9zH,KAAM8zH,EAAW,KAIrBV,EAAoB5tH,UAAUuuH,mBAAqB,SAASnD,EAAUzsH,GACpE,GAAIysH,EAASl1H,IAAI,QAAQA,IAAIyI,EAAM8I,KACjC,MAAO2jH,GAASl1H,IAAI,QAAQA,IAAIyI,EAAM8I,MAI1CmmH,EAAoB5tH,UAAUwuH,gCAAkC,SAASpD,EAAUzsH,EAAOnE,GACxF,GAAI9F,EAaJ,OAZAA,GAAQtE,KAAK29H,sBAAsBrB,SAAStB,EAAUzsH,EAAOnE,GAC7D4wH,EAAWA,EAASj/G,IAAI,aAAczX,GACtC02H,EAAWA,EAASj/G,IAAI,MAAO/b,KAAKm+H,mBAAmBnD,EAAUzsH,IAC7DnE,EAAK7F,cACPy2H,EAAWA,EAASj/G,IAAI,cAAe3R,EAAK7F,YAAYy2H,KAEtD5wH,EAAK0tB,SACPkjG,EAAWA,EAASj/G,IAAI,SAAU3R,EAAK0tB,OAAOkjG,KAEM,gBAAlDA,EAASnlE,OAAO,OAAQ,aAAc,SAA6BmlE,EAAS2B,OAAO,OAAQ,aAAc,QAAS,UACpH3B,EAAWA,EAASj/G,IAAI,cAAei/G,EAASnlE,OAAO,OAAQ,aAAc,QAAS,UAEjFmlE,GAGTwC,EAAoB5tH,UAAUyuH,eAAiB,SAAS/3H,GACtD,GAAIg4H,EA2CJ,OA1CAA,GAAUr9G,UAAU0yB,OACpBrtC,EAASR,IAAI,QAAQyS,QAAQ,SAAUnQ,GACrC,MAAO,UAASsK,GACd,GAAI3K,GAAMwG,EAAOgwH,EAAS1lB,CAI1B,OAHAtqG,GAAQnG,EAAM61H,gBAAgBvrH,EAAK5M,IAAI,eACvCiC,EAAO2K,EAAK5M,IAAI,QAChB+yG,EAAc9wG,EAAKjC,IAAI,eACnB+yG,GAAeA,EAAYp6F,SACzBo6F,EAAY75D,IAAI,gBAClB65D,EAAc53F,UAAU24C,KACtBo+D,QAAWnf,KAGXA,EAAY75D,IAAI,aAEhB65D,EADgB,cAAdtqG,EAAM8I,IACM4J,UAAU24C,KACtB4kE,cAAiB3lB,IAGLA,EAAY4lB,UAAU,cAAe,cAE9B,cAAdlwH,EAAM8I,MACfwhG,EAAc53F,UAAU24C,KACtBzS,UAAa0xD,KAGVA,EAAYtgG,QAAQ,SAASxJ,EAAOW,GACzC,GAAI6uH,GAASlnH,CAOb,OANAA,GAAM4J,UAAU24C,KACdlqD,IAAKA,EACLX,MAAOA,IAETwvH,EAAU7rH,EAAK69E,OAAO,OAAQ,cAAel5E,GAC7CknH,EAAUA,EAAQE,UAAU,OAAQ,gBAC7BH,EAAUA,EAAQ/2H,KAAKg3H,OAGhCA,EAAU7rH,EAAK+rH,UAAU,OAAQ,gBAC1BH,EAAUA,EAAQ/2H,KAAKg3H,MAGjCv+H,OACIsG,EAASyV,IAAI,OAAQuiH,IAG9Bd,EAAoB5tH,UAAU8uH,mBAAqB,SAAShsH,GAC1D,GAAInE,GAAOnE,CAGX,OAFAmE,GAAQvO,KAAKi+H,gBAAgBvrH,EAAK5M,IAAI,eACtCsE,EAAOpK,KAAK09H,qBAAqBd,QAAQlqH,EAAMnE,GACxCvO,KAAKo+H,gCAAgC1rH,EAAMnE,EAAOnE,IAG3DozH,EAAoB5tH,UAAUqlH,mBAAqB,SAAS58F,GAC1D,GAAI3xB,EAqBJ,OApBAA,MACAA,EAAOykG,MAAQ,SAAU/iG,GACvB,MAAO,UAASo9B,GACd,MAAOp9B,GAAMgS,GAAGf,MAAM47G,mBAAmB58F,EAAQmN,GAAMriC,KAAK,SAASmD,GACnE,MAAO8B,GAAMi2H,eAAe/3H,OAG/BtG,MACH0G,EAAOpG,IAAM,SAAU8H,GACrB,MAAO,UAASiP,GACd,MAAOjP,GAAMs2H,mBAAmBrnH,KAEjCrX,MACH0G,EAAOgH,OAAS,SAAUtF,GACxB,MAAO,UAASm5F,GACd,MAAOA,GAAMo9B,UAAU,SAASjsH,GAC9B,MAAOtK,GAAM41H,mBAAmBtrH,OAGnC1S,MACIA,KAAKy9H,sCAAsCV,SAASr2H,IAG7D82H,EAAoB5tH,UAAUslH,gBAAkB,SAAS78F,GACvD,GAAI3xB,EAqBJ,OApBAA,MACAA,EAAOykG,MAAQ,SAAU/iG,GACvB,MAAO,UAASo9B,GACd,MAAOp9B,GAAMgS,GAAGf,MAAM67G,gBAAgB78F,EAAQmN,GAAMriC,KAAK,SAASmD,GAChE,MAAO8B,GAAMi2H,eAAe/3H,OAG/BtG,MACH0G,EAAOpG,IAAM,SAAU8H,GACrB,MAAO,UAASiP,GACd,MAAOjP,GAAMs2H,mBAAmBrnH,KAEjCrX,MACH0G,EAAOgH,OAAS,SAAUtF,GACxB,MAAO,UAASm5F,GACd,MAAOA,GAAMo9B,UAAU,SAASjsH,GAC9B,MAAOtK,GAAM41H,mBAAmBtrH,OAGnC1S,MACIA,KAAKy9H,sCAAsCV,SAASr2H,IAG7D82H,EAAoB5tH,UAAUytH,mBAAqB,SAAS9iH,GAC1D,GAAI7T,EAqBJ,OApBAA,MACAA,EAAOykG,MAAQ,SAAU/iG,GACvB,MAAO,UAASo9B,GACd,MAAOp9B,GAAMgS,GAAGC,SAAS+5G,YAAY75G,EAAWirB,GAAMriC,KAAK,SAASmD,GAClE,MAAO8B,GAAMi2H,eAAe/3H,OAG/BtG,MACH0G,EAAOpG,IAAM,SAAU8H,GACrB,MAAO,UAASiP,GACd,MAAOjP,GAAMs2H,mBAAmBrnH,KAEjCrX,MACH0G,EAAOgH,OAAS,SAAUtF,GACxB,MAAO,UAASm5F,GACd,MAAOA,GAAMo9B,UAAU,SAASjsH,GAC9B,MAAOtK,GAAM41H,mBAAmBtrH,OAGnC1S,MACIA,KAAKy9H,sCAAsCV,SAASr2H,IAGtD82H,GAENz9H,EAAM4Q,SAET/N,QAAQjD,OAAO,qBAAqBijB,QAAQ,wBAAyB46G,IAEpEv5H,KAAKjE,MAsBR,WACE,GAAI4+H,EAEJA,GAAwB,WACtB,GAAIv7G,EAQJ,OAPAA,GAAO,SAASzP,EAAOd,EAAIyb,GACzB,MAAOzb,GAAGyR,GAAG,QAAS,SAAUnc,GAC9B,MAAO,UAASwF,GACd,MAAOA,GAAEmiC,oBAEV/vC,SAGHqjB,KAAMA,IAIVzgB,QAAQjD,OAAO,cAAcwjB,UAAU,iBAAkBy7G,IAExD36H,KAAKjE,MAsBR,WACE,GAAI6+H,GAA0Bl/H,CAE9BA,GAASiD,QAAQjD,OAAO,oBAExBk/H,EAA2B,WACzB,OACE36H,YAAa,sCACb0P,OACElE,IAAK,IACLirC,KAAM,OAKZh7C,EAAOwjB,UAAU,oBAAqB07G,IAErC56H,KAAKjE,MAsBR,WACE,GAAI8+H,GAA2Bn/H,CAE/BA,GAASiD,QAAQjD,OAAO,oBAExBm/H,EAA4B,WAC1B,GAAIz7G,EAIJ,OAHAA,GAAO,SAASzP,EAAOd,EAAIe,GACzB,MAAOD,GAAMmrH,mBAAqBnrH,EAAMorH,aAAavmH,SAGrD4K,KAAMA,EACNnf,YAAa,uCACb0P,OACEorH,aAAc,OAKpBr/H,EAAOwjB,UAAU,qBAAsB27G,IAEtC76H,KAAKjE,MAsBR,WACE,GAAIi/H,GAAuBt/H,EAAQI,CAEnCA,GAAQC,KAAKD,MAEbJ,EAASiD,QAAQjD,OAAO,oBAExBs/H,EAAwB,WAGtB,QAASA,GAAsB3zD,GAC7BtrE,KAAKsrE,mBAAqBA,EAC1BvrE,EAAMqR,wBAAwBpR,KAAM,iBAAkB,SAAUoI,GAC9D,MAAO,YACL,MAAOA,GAAMkjE,mBAAmB4zD,iBAEjCl/H,OAUL,MAlBAi/H,GAAsB7+G,SAAW,wBAWjC6+G,EAAsBrvH,UAAUuvH,yBAA2B,SAASx0D,GAIlE,MAHIA,IACF3qE,KAAKsrE,mBAAmB8zD,UAAUz0D,GAE7B3qE,KAAKsrE,mBAAmBI,sBAG1BuzD,KAITt/H,EAAOwE,WAAW,kBAAmB86H,IAEpCh7H,KAAKjE,MAsBR,WACE,GAAIq/H,GAAsBruH,EAAUrR,CAEpCqR,GAAWhR,KAAKD,MAAMiR,SAEtBrR,EAASiD,QAAQjD,OAAO,oBAExB0/H,EAAuB,WACrB,GAAIh8G,EAMJ,OALAA,GAAO,SAASzP,EAAOd,EAAIyb,EAAO2pC,GAChC,MAAOlnD,GAAS4C,EAAO,YAAa,SAAS7E,GAC3C,MAAOmpD,GAAKinE,yBAAyBpwH,OAIvC6E,SACA65D,kBACE9C,OAAQ,KAEVxmE,WAAY,kBACZC,aAAc,KACdF,YAAa,iCACbmf,KAAMA,IAIV1jB,EAAOwjB,UAAU,gBAAiBk8G,IAEjCp7H,KAAKjE,MAsBR,WACE,GAAIs/H,GAAoB3/H,EAAQI,EAC9B8C,EAAS,SAASyM,EAAOC,GAA+F,QAASC,KAASxP,KAAKyP,YAAcH,EAA1H,IAAK,GAAII,KAAOH,GAAcI,EAAQ1L,KAAKsL,EAAQG,KAAMJ,EAAMI,GAAOH,EAAOG,GAA2J,OAArGF,GAAKI,UAAYL,EAAOK,UAAWN,EAAMM,UAAY,GAAIJ,GAAQF,EAAMO,UAAYN,EAAOK,UAAkBN,GAClRK,KAAaG,cAEf/P,GAAQC,KAAKD,MAEbJ,EAASiD,QAAQjD,OAAO,oBAExB2/H,EAAqB,SAAUlvH,GAK7B,QAASkvH,GAAmBllH,EAAIg3F,GAC9BpxG,KAAKoa,GAAKA,EACVpa,KAAKoxG,SAAWA,EAChBpxG,KAAKu/H,QAAU,KACfv/H,KAAKw/H,gBAAkBv+G,UAAU0yB,OACjC5zC,EAAMqR,wBAAwBpR,KAAM,SAAU,SAAUoI,GACtD,MAAO,YACL,MAAOA,GAAMm3H,UAEdv/H,OACHD,EAAMqR,wBAAwBpR,KAAM,iBAAkB,SAAUoI,GAC9D,MAAO,YACL,MAAOA,GAAMo3H,kBAEdx/H,OA2BL,MA7CA6C,GAAOy8H,EAAoBlvH,GAE3BkvH,EAAmBl/G,SAAW,cAAe,qBAmB7Ck/G,EAAmB1vH,UAAUwvH,UAAY,SAASz0D,GAEhD,MADA3qE,MAAKu/H,QAAU50D,EACR3qE,KAAKw/H,gBAAkBv+G,UAAU0yB,QAG1C2rF,EAAmB1vH,UAAU87D,mBAAqB,WAChD,GAAK1rE,KAAKu/H,QAGV,MAAOv/H,MAAKoa,GAAGi7G,YAAYD,eAAep1H,KAAKu/H,SAASp8H,KAAK,SAAUiF,GACrE,MAAO,UAAS82H,GACd,GAAIA,EAAezoH,KACjB,MAAOrO,GAAMo3H,gBAAkBN,EAAe16E,YAGjDxkD,OAAO,SAAS,SAAUoI,GAC3B,MAAO,UAASkI,GACd,MAAOlI,GAAMgpG,SAAS9qG,SAASgK,KAEhCtQ,QAGLK,EAEOi/H,GAENv/H,EAAM4Q,SAEThR,EAAOijB,QAAQ,uBAAwB08G,IAEtCr7H,KAAKjE","file":"../app.js","sourcesContent":["\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: app.coffee\n */\n\n(function() {\n var configure, i18nInit, init, module, modules, pluginsModules, pluginsWithModule, taiga;\n\n this.taiga = taiga = {};\n\n this.taigaContribPlugins = this.taigaContribPlugins || window.taigaContribPlugins || [];\n\n taiga.generateHash = function(components) {\n if (components == null) {\n components = [];\n }\n components = _.map(components, function(x) {\n return JSON.stringify(x);\n });\n return hex_sha1(components.join(\":\"));\n };\n\n taiga.generateUniqueSessionIdentifier = function() {\n var date, randomNumber;\n date = (new Date()).getTime();\n randomNumber = Math.floor(Math.random() * 0x9000000);\n return taiga.generateHash([date, randomNumber]);\n };\n\n taiga.sessionId = taiga.generateUniqueSessionIdentifier();\n\n configure = function($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, $compileProvider, $translateProvider, $translatePartialLoaderProvider, $animateProvider) {\n var authHttpIntercept, blockingIntercept, decorators, defaultHeaders, loaderIntercept, originalWhen, preferedLangCode, userInfo, versionCheckHttpIntercept;\n $animateProvider.classNameFilter(/^(?:(?!ng-animate-disabled).)*$/);\n originalWhen = $routeProvider.when;\n $routeProvider.when = function(path, route) {\n route.resolve || (route.resolve = {});\n angular.extend(route.resolve, {\n languageLoad: [\n \"$q\", \"$translate\", function($q, $translate) {\n var deferred;\n deferred = $q.defer();\n $translate().then(function() {\n return deferred.resolve();\n });\n return deferred.promise;\n }\n ],\n projectLoaded: [\n \"$q\", \"tgProjectService\", \"$route\", function($q, projectService, $route) {\n var deferred, ref;\n deferred = $q.defer();\n projectService.setSection((ref = $route.current.$$route) != null ? ref.section : void 0);\n if ($route.current.params.pslug) {\n projectService.setProjectBySlug($route.current.params.pslug).then(deferred.resolve);\n } else {\n projectService.cleanProject();\n deferred.resolve();\n }\n return deferred.promise;\n }\n ]\n });\n return originalWhen.call($routeProvider, path, route);\n };\n $routeProvider.when(\"/\", {\n templateUrl: \"home/home.html\",\n controller: \"Home\",\n controllerAs: \"vm\",\n loader: true,\n title: \"HOME.PAGE_TITLE\",\n loader: true,\n description: \"HOME.PAGE_DESCRIPTION\",\n joyride: \"dashboard\"\n });\n $routeProvider.when(\"/discover\", {\n templateUrl: \"discover/discover-home/discover-home.html\",\n controller: \"DiscoverHome\",\n controllerAs: \"vm\",\n title: \"PROJECT.NAVIGATION.DISCOVER\",\n loader: true\n });\n $routeProvider.when(\"/discover/search\", {\n templateUrl: \"discover/discover-search/discover-search.html\",\n title: \"PROJECT.NAVIGATION.DISCOVER\",\n loader: true,\n controller: \"DiscoverSearch\",\n controllerAs: \"vm\",\n reloadOnSearch: false\n });\n $routeProvider.when(\"/projects/\", {\n templateUrl: \"projects/listing/projects-listing.html\",\n access: {\n requiresLogin: true\n },\n title: \"PROJECTS.PAGE_TITLE\",\n description: \"PROJECTS.PAGE_DESCRIPTION\",\n loader: true,\n controller: \"ProjectsListing\",\n controllerAs: \"vm\"\n });\n $routeProvider.when(\"/project/new\", {\n title: \"PROJECT.CREATE.TITLE\",\n templateUrl: \"projects/create/create-project.html\",\n loader: true,\n controller: \"CreateProjectCtrl\",\n controllerAs: \"vm\"\n });\n $routeProvider.when(\"/project/new/scrum\", {\n title: \"PROJECT.CREATE.TITLE\",\n template: \"\",\n loader: true\n });\n $routeProvider.when(\"/project/new/kanban\", {\n title: \"PROJECT.CREATE.TITLE\",\n template: \"\",\n loader: true\n });\n $routeProvider.when(\"/project/new/duplicate\", {\n title: \"PROJECT.CREATE.TITLE\",\n template: \"\",\n loader: true\n });\n $routeProvider.when(\"/project/new/import/:platform?\", {\n title: \"PROJECT.CREATE.TITLE\",\n template: \"\",\n loader: true\n });\n $routeProvider.when(\"/project/:pslug/\", {\n templateUrl: \"projects/project/project.html\",\n loader: true,\n controller: \"Project\",\n controllerAs: \"vm\",\n section: \"project-timeline\"\n });\n $routeProvider.when(\"/project/:pslug/search\", {\n templateUrl: \"search/search.html\",\n reloadOnSearch: false,\n section: \"search\",\n loader: true\n });\n $routeProvider.when(\"/project/:pslug/epics\", {\n section: \"epics\",\n templateUrl: \"epics/dashboard/epics-dashboard.html\",\n loader: true,\n controller: \"EpicsDashboardCtrl\",\n controllerAs: \"vm\"\n });\n $routeProvider.when(\"/project/:pslug/epic/:epicref\", {\n templateUrl: \"epic/epic-detail.html\",\n loader: true,\n section: \"epics\"\n });\n $routeProvider.when(\"/project/:pslug/backlog\", {\n templateUrl: \"backlog/backlog.html\",\n loader: true,\n section: \"backlog\",\n joyride: \"backlog\"\n });\n $routeProvider.when(\"/project/:pslug/kanban\", {\n templateUrl: \"kanban/kanban.html\",\n loader: true,\n section: \"kanban\",\n joyride: \"kanban\"\n });\n $routeProvider.when(\"/project/:pslug/taskboard/:sslug\", {\n templateUrl: \"taskboard/taskboard.html\",\n loader: true,\n section: \"backlog\"\n });\n $routeProvider.when(\"/project/:pslug/us/:usref\", {\n templateUrl: \"us/us-detail.html\",\n loader: true,\n section: \"backlog-kanban\"\n });\n $routeProvider.when(\"/project/:pslug/task/:taskref\", {\n templateUrl: \"task/task-detail.html\",\n loader: true,\n section: \"backlog-kanban\"\n });\n $routeProvider.when(\"/project/:pslug/wiki\", {\n redirectTo: function(params) {\n return \"/project/\" + params.pslug + \"/wiki/home\";\n }\n });\n $routeProvider.when(\"/project/:pslug/wiki-list\", {\n templateUrl: \"wiki/wiki-list.html\",\n loader: true,\n section: \"wiki\"\n });\n $routeProvider.when(\"/project/:pslug/wiki/:slug\", {\n templateUrl: \"wiki/wiki.html\",\n loader: true,\n section: \"wiki\"\n });\n $routeProvider.when(\"/project/:pslug/team\", {\n templateUrl: \"team/team.html\",\n loader: true,\n section: \"team\"\n });\n $routeProvider.when(\"/project/:pslug/issues\", {\n templateUrl: \"issue/issues.html\",\n loader: true,\n section: \"issues\"\n });\n $routeProvider.when(\"/project/:pslug/issue/:issueref\", {\n templateUrl: \"issue/issues-detail.html\",\n loader: true,\n section: \"issues\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/details\", {\n templateUrl: \"admin/admin-project-profile.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/default-values\", {\n templateUrl: \"admin/admin-project-default-values.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/modules\", {\n templateUrl: \"admin/admin-project-modules.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/export\", {\n templateUrl: \"admin/admin-project-export.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-profile/reports\", {\n templateUrl: \"admin/admin-project-reports.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/status\", {\n templateUrl: \"admin/admin-project-values-status.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/points\", {\n templateUrl: \"admin/admin-project-values-points.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/priorities\", {\n templateUrl: \"admin/admin-project-values-priorities.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/severities\", {\n templateUrl: \"admin/admin-project-values-severities.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/types\", {\n templateUrl: \"admin/admin-project-values-types.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/custom-fields\", {\n templateUrl: \"admin/admin-project-values-custom-fields.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/project-values/tags\", {\n templateUrl: \"admin/admin-project-values-tags.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/memberships\", {\n templateUrl: \"admin/admin-memberships.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/roles\", {\n templateUrl: \"admin/admin-roles.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/webhooks\", {\n templateUrl: \"admin/admin-third-parties-webhooks.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/github\", {\n templateUrl: \"admin/admin-third-parties-github.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/gitlab\", {\n templateUrl: \"admin/admin-third-parties-gitlab.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/bitbucket\", {\n templateUrl: \"admin/admin-third-parties-bitbucket.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/third-parties/gogs\", {\n templateUrl: \"admin/admin-third-parties-gogs.html\",\n section: \"admin\"\n });\n $routeProvider.when(\"/project/:pslug/admin/contrib/:plugin\", {\n templateUrl: \"contrib/main.html\"\n });\n $routeProvider.when(\"/project/:pslug/transfer/:token\", {\n templateUrl: \"projects/transfer/transfer-page.html\",\n loader: true,\n controller: \"Project\",\n controllerAs: \"vm\"\n });\n $routeProvider.when(\"/user-settings/user-profile\", {\n templateUrl: \"user/user-profile.html\"\n });\n $routeProvider.when(\"/user-settings/user-change-password\", {\n templateUrl: \"user/user-change-password.html\"\n });\n $routeProvider.when(\"/user-settings/mail-notifications\", {\n templateUrl: \"user/mail-notifications.html\"\n });\n $routeProvider.when(\"/change-email/:email_token\", {\n templateUrl: \"user/change-email.html\"\n });\n $routeProvider.when(\"/cancel-account/:cancel_token\", {\n templateUrl: \"user/cancel-account.html\"\n });\n $routeProvider.when(\"/user-settings/contrib/:plugin\", {\n templateUrl: \"contrib/user-settings.html\"\n });\n $routeProvider.when(\"/profile\", {\n templateUrl: \"profile/profile.html\",\n loader: true,\n access: {\n requiresLogin: true\n },\n controller: \"Profile\",\n controllerAs: \"vm\"\n });\n $routeProvider.when(\"/profile/:slug\", {\n templateUrl: \"profile/profile.html\",\n loader: true,\n controller: \"Profile\",\n controllerAs: \"vm\"\n });\n $routeProvider.when(\"/login\", {\n templateUrl: \"auth/login.html\",\n title: \"LOGIN.PAGE_TITLE\",\n description: \"LOGIN.PAGE_DESCRIPTION\",\n disableHeader: true,\n controller: \"LoginPage\"\n });\n $routeProvider.when(\"/register\", {\n templateUrl: \"auth/register.html\",\n title: \"REGISTER.PAGE_TITLE\",\n description: \"REGISTER.PAGE_DESCRIPTION\",\n disableHeader: true\n });\n $routeProvider.when(\"/forgot-password\", {\n templateUrl: \"auth/forgot-password.html\",\n title: \"FORGOT_PASSWORD.PAGE_TITLE\",\n description: \"FORGOT_PASSWORD.PAGE_DESCRIPTION\",\n disableHeader: true\n });\n $routeProvider.when(\"/change-password/:token\", {\n templateUrl: \"auth/change-password-from-recovery.html\",\n title: \"CHANGE_PASSWORD.PAGE_TITLE\",\n description: \"CHANGE_PASSWORD.PAGE_TITLE\",\n disableHeader: true\n });\n $routeProvider.when(\"/invitation/:token\", {\n templateUrl: \"auth/invitation.html\",\n title: \"INVITATION.PAGE_TITLE\",\n description: \"INVITATION.PAGE_DESCRIPTION\",\n disableHeader: true\n });\n $routeProvider.when(\"/external-apps\", {\n templateUrl: \"external-apps/external-app.html\",\n title: \"EXTERNAL_APP.PAGE_TITLE\",\n description: \"EXTERNAL_APP.PAGE_DESCRIPTION\",\n controller: \"ExternalApp\",\n controllerAs: \"vm\",\n disableHeader: true,\n mobileViewport: true\n });\n $routeProvider.when(\"/blocked-project/:pslug/\", {\n templateUrl: \"projects/project/blocked-project.html\",\n loader: true\n });\n $routeProvider.when(\"/error\", {\n templateUrl: \"error/error.html\"\n });\n $routeProvider.when(\"/not-found\", {\n templateUrl: \"error/not-found.html\"\n });\n $routeProvider.when(\"/permission-denied\", {\n templateUrl: \"error/permission-denied.html\"\n });\n $routeProvider.otherwise({\n templateUrl: \"error/not-found.html\"\n });\n $locationProvider.html5Mode({\n enabled: true,\n requireBase: false\n });\n defaultHeaders = {\n \"Content-Type\": \"application/json\",\n \"Accept-Language\": window.taigaConfig.defaultLanguage || \"en\",\n \"X-Session-Id\": taiga.sessionId\n };\n $httpProvider.defaults.headers[\"delete\"] = defaultHeaders;\n $httpProvider.defaults.headers.patch = defaultHeaders;\n $httpProvider.defaults.headers.post = defaultHeaders;\n $httpProvider.defaults.headers.put = defaultHeaders;\n $httpProvider.defaults.headers.get = {\n \"X-Session-Id\": taiga.sessionId\n };\n $httpProvider.useApplyAsync(true);\n $tgEventsProvider.setSessionId(taiga.sessionId);\n authHttpIntercept = function($q, $location, $navUrls, $lightboxService, errorHandlingService) {\n var httpResponseError;\n httpResponseError = function(response) {\n var nextUrl, search;\n if (response.status === 0 || (response.status === -1 && !response.config.cancelable)) {\n $lightboxService.closeAll();\n errorHandlingService.error();\n } else if (response.status === 401 && $location.url().indexOf('/login') === -1) {\n nextUrl = $location.url();\n search = $location.search();\n if (search.force_next) {\n $location.url($navUrls.resolve(\"login\")).search(\"force_next\", search.force_next);\n } else {\n $location.url($navUrls.resolve(\"login\")).search({\n \"unauthorized\": true,\n \"next\": nextUrl\n });\n }\n }\n return $q.reject(response);\n };\n return {\n responseError: httpResponseError\n };\n };\n $provide.factory(\"authHttpIntercept\", [\"$q\", \"$location\", \"$tgNavUrls\", \"lightboxService\", \"tgErrorHandlingService\", authHttpIntercept]);\n $httpProvider.interceptors.push(\"authHttpIntercept\");\n loaderIntercept = function($q, loaderService) {\n return {\n request: function(config) {\n loaderService.logRequest();\n return config;\n },\n requestError: function(rejection) {\n loaderService.logResponse();\n return $q.reject(rejection);\n },\n responseError: function(rejection) {\n loaderService.logResponse();\n return $q.reject(rejection);\n },\n response: function(response) {\n loaderService.logResponse();\n return response;\n }\n };\n };\n $provide.factory(\"loaderIntercept\", [\"$q\", \"tgLoader\", loaderIntercept]);\n $httpProvider.interceptors.push(\"loaderIntercept\");\n versionCheckHttpIntercept = function($q) {\n var httpResponseError;\n httpResponseError = function(response) {\n var $injector;\n if (response.status === 400 && response.data.version) {\n $injector = angular.element(\"body\").injector();\n $injector.invoke([\n \"$tgConfirm\", \"$translate\", (function(_this) {\n return function($confirm, $translate) {\n var versionErrorMsg;\n versionErrorMsg = $translate.instant(\"ERROR.VERSION_ERROR\");\n return $confirm.notify(\"error\", versionErrorMsg, null, 10000);\n };\n })(this)\n ]);\n }\n return $q.reject(response);\n };\n return {\n responseError: httpResponseError\n };\n };\n $provide.factory(\"versionCheckHttpIntercept\", [\"$q\", versionCheckHttpIntercept]);\n $httpProvider.interceptors.push(\"versionCheckHttpIntercept\");\n blockingIntercept = function($q, errorHandlingService) {\n var redirectToBlockedPage, responseError, responseOk;\n redirectToBlockedPage = function() {\n return errorHandlingService.block();\n };\n responseOk = function(response) {\n if (response.data.blocked_code) {\n redirectToBlockedPage();\n }\n return response;\n };\n responseError = function(response) {\n if (response.status === 451) {\n redirectToBlockedPage();\n }\n return $q.reject(response);\n };\n return {\n response: responseOk,\n responseError: responseError\n };\n };\n $provide.factory(\"blockingIntercept\", [\"$q\", \"tgErrorHandlingService\", blockingIntercept]);\n $httpProvider.interceptors.push(\"blockingIntercept\");\n $compileProvider.debugInfoEnabled(window.taigaConfig.debugInfo || false);\n if (localStorage.userInfo) {\n userInfo = JSON.parse(localStorage.userInfo);\n }\n preferedLangCode = (userInfo != null ? userInfo.lang : void 0) || window.taigaConfig.defaultLanguage || \"en\";\n $translatePartialLoaderProvider.addPart('taiga');\n $translateProvider.useLoader('$translatePartialLoader', {\n urlTemplate: '/' + window._version + '/locales/{part}/locale-{lang}.json'\n }).useSanitizeValueStrategy('escapeParameters').addInterpolation('$translateMessageFormatInterpolation').preferredLanguage(preferedLangCode);\n $translateProvider.fallbackLanguage(preferedLangCode);\n decorators = window.getDecorators();\n return _.each(decorators, function(decorator) {\n return $provide.decorator(decorator.provider, decorator.decorator);\n });\n };\n\n i18nInit = function(lang, $translate) {\n var messages;\n moment.locale(lang);\n if (lang !== 'en') {\n ljs.load((\"/\" + window._version + \"/locales/moment-locales/\") + lang + \".js\");\n }\n messages = {\n defaultMessage: $translate.instant(\"COMMON.FORM_ERRORS.DEFAULT_MESSAGE\"),\n type: {\n email: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_EMAIL\"),\n url: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_URL\"),\n urlstrict: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_URLSTRICT\"),\n number: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_NUMBER\"),\n digits: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_DIGITS\"),\n dateIso: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_DATEISO\"),\n alphanum: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_ALPHANUM\"),\n phone: $translate.instant(\"COMMON.FORM_ERRORS.TYPE_PHONE\")\n },\n notnull: $translate.instant(\"COMMON.FORM_ERRORS.NOTNULL\"),\n notblank: $translate.instant(\"COMMON.FORM_ERRORS.NOT_BLANK\"),\n required: $translate.instant(\"COMMON.FORM_ERRORS.REQUIRED\"),\n regexp: $translate.instant(\"COMMON.FORM_ERRORS.REGEXP\"),\n min: $translate.instant(\"COMMON.FORM_ERRORS.MIN\"),\n max: $translate.instant(\"COMMON.FORM_ERRORS.MAX\"),\n range: $translate.instant(\"COMMON.FORM_ERRORS.RANGE\"),\n minlength: $translate.instant(\"COMMON.FORM_ERRORS.MIN_LENGTH\"),\n maxlength: $translate.instant(\"COMMON.FORM_ERRORS.MAX_LENGTH\"),\n rangelength: $translate.instant(\"COMMON.FORM_ERRORS.RANGE_LENGTH\"),\n mincheck: $translate.instant(\"COMMON.FORM_ERRORS.MIN_CHECK\"),\n maxcheck: $translate.instant(\"COMMON.FORM_ERRORS.MAX_CHECK\"),\n rangecheck: $translate.instant(\"COMMON.FORM_ERRORS.RANGE_CHECK\"),\n equalto: $translate.instant(\"COMMON.FORM_ERRORS.EQUAL_TO\"),\n linewidth: $translate.instant(\"COMMON.FORM_ERRORS.LINEWIDTH\"),\n pikaday: $translate.instant(\"COMMON.FORM_ERRORS.PIKADAY\")\n };\n return checksley.updateMessages('default', messages);\n };\n\n init = function($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls, appMetaService, loaderService, navigationBarService, errorHandlingService, lightboxService) {\n var un, user, validators;\n $log.debug(\"Initialize application\");\n $rootscope.$on('$translatePartialLoaderStructureChanged', function() {\n return $translate.refresh();\n });\n validators = {\n linewidth: function(val, width) {\n var lines, valid;\n lines = taiga.nl2br(val).split(\"\");\n valid = _.every(lines, function(line) {\n return line.length < width;\n });\n return valid;\n },\n pikaday: function(val) {\n var prettyDate;\n prettyDate = $translate.instant(\"COMMON.PICKERDATE.FORMAT\");\n return moment(val, prettyDate).isValid();\n }\n };\n checksley.updateValidators(validators);\n $rootscope.contribPlugins = this.taigaContribPlugins;\n $rootscope.adminPlugins = _.filter(this.taigaContribPlugins, {\n \"type\": \"admin\"\n });\n $rootscope.userSettingsPlugins = _.filter(this.taigaContribPlugins, {\n \"type\": \"userSettings\"\n });\n $rootscope.$on(\"$translateChangeEnd\", function(e, ctx) {\n var lang;\n lang = ctx.language;\n return i18nInit(lang, $translate);\n });\n Promise.setScheduler(function(cb) {\n return $rootscope.$evalAsync(cb);\n });\n $events.setupConnection();\n if ($auth.isAuthenticated()) {\n user = $auth.getUser();\n }\n $analytics.initialize();\n $rootscope.$on('$locationChangeStart', function(event) {\n errorHandlingService.init();\n if (lightboxService.getLightboxOpen().length) {\n event.preventDefault();\n return lightboxService.closeAll();\n }\n });\n un = $rootscope.$on('$routeChangeStart', function(event, next) {\n if (next.loader) {\n loaderService.start(true);\n }\n return un();\n });\n return $rootscope.$on('$routeChangeSuccess', function(event, next) {\n var description, title;\n if (next.loader) {\n loaderService.start(true);\n }\n if (next.access && next.access.requiresLogin) {\n if (!$auth.isAuthenticated()) {\n $location.path($navUrls.resolve(\"login\"));\n }\n }\n if (next.title || next.description) {\n title = $translate.instant(next.title || \"\");\n description = $translate.instant(next.description || \"\");\n appMetaService.setAll(title, description);\n }\n if (next.mobileViewport) {\n appMetaService.addMobileViewport();\n } else {\n appMetaService.removeMobileViewport();\n }\n if (next.disableHeader) {\n return navigationBarService.disableHeader();\n } else {\n return navigationBarService.enableHeader();\n }\n });\n };\n\n angular.module('infinite-scroll').value('THROTTLE_MILLISECONDS', 500);\n\n pluginsWithModule = _.filter(this.taigaContribPlugins, function(plugin) {\n return plugin.module;\n });\n\n pluginsModules = _.map(pluginsWithModule, function(plugin) {\n return plugin.module;\n });\n\n modules = [\"taigaBase\", \"taigaCommon\", \"taigaResources\", \"taigaResources2\", \"taigaAuth\", \"taigaEvents\", \"taigaHome\", \"taigaNavigationBar\", \"taigaProjects\", \"taigaRelatedTasks\", \"taigaBacklog\", \"taigaTaskboard\", \"taigaKanban\", \"taigaIssues\", \"taigaUserStories\", \"taigaTasks\", \"taigaTeam\", \"taigaWiki\", \"taigaSearch\", \"taigaAdmin\", \"taigaProject\", \"taigaUserSettings\", \"taigaFeedback\", \"taigaPlugins\", \"taigaIntegrations\", \"taigaComponents\", \"taigaProfile\", \"taigaHome\", \"taigaUserTimeline\", \"taigaExternalApps\", \"taigaDiscover\", \"taigaHistory\", \"taigaWikiHistory\", \"taigaEpics\", \"taigaUtils\", \"templates\", \"ngSanitize\", \"ngRoute\", \"ngAnimate\", \"ngAria\", \"pascalprecht.translate\", \"infinite-scroll\", \"tgRepeat\"].concat(pluginsModules);\n\n module = angular.module(\"taiga\", modules);\n\n module.config([\"$routeProvider\", \"$locationProvider\", \"$httpProvider\", \"$provide\", \"$tgEventsProvider\", \"$compileProvider\", \"$translateProvider\", \"$translatePartialLoaderProvider\", \"$animateProvider\", configure]);\n\n module.run([\"$log\", \"$rootScope\", \"$tgAuth\", \"$tgEvents\", \"$tgAnalytics\", \"$translate\", \"$tgLocation\", \"$tgNavUrls\", \"tgAppMetaService\", \"tgLoader\", \"tgNavigationBarService\", \"tgErrorHandlingService\", \"lightboxService\", init]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: classes.coffee\n */\n\n(function() {\n var TaigaBase, TaigaController, TaigaService,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n TaigaBase = (function() {\n function TaigaBase() {}\n\n return TaigaBase;\n\n })();\n\n TaigaService = (function(superClass) {\n extend(TaigaService, superClass);\n\n function TaigaService() {\n return TaigaService.__super__.constructor.apply(this, arguments);\n }\n\n return TaigaService;\n\n })(TaigaBase);\n\n TaigaController = (function(superClass) {\n extend(TaigaController, superClass);\n\n function TaigaController() {\n this.onInitialDataError = bind(this.onInitialDataError, this);\n return TaigaController.__super__.constructor.apply(this, arguments);\n }\n\n TaigaController.prototype.onInitialDataError = function(xhr) {\n if (xhr) {\n if (xhr.status === 404) {\n this.errorHandlingService.notfound();\n } else if (xhr.status === 403) {\n this.errorHandlingService.permissionDenied();\n }\n }\n return this.q.reject(xhr);\n };\n\n return TaigaController;\n\n })(TaigaBase);\n\n this.taiga.Base = TaigaBase;\n\n this.taiga.Service = TaigaService;\n\n this.taiga.Controller = TaigaController;\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: utils.coffee\n */\n\n(function() {\n var DEFAULT_COLOR_LIST, addClass, bindMethods, bindOnce, cancelTimeout, debounce, debounceLeading, defineImmutableProperty, getDefaulColorList, getMatches, getRandomDefaultColor, groupBy, isEmail, isImage, isPdf, joinStr, mixOf, nl2br, patch, replaceTags, scopeDefer, sizeFormat, slugify, startswith, stripTags, taiga, timeout, toString, toggleText, trim, truncate, unslugify,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n slice = [].slice,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n addClass = function(el, className) {\n if (el.classList) {\n return el.classList.add(className);\n } else {\n return el.className += ' ' + className;\n }\n };\n\n nl2br = (function(_this) {\n return function(str) {\n var breakTag;\n breakTag = '';\n return (str + '').replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1' + breakTag + '$2');\n };\n })(this);\n\n bindMethods = (function(_this) {\n return function(object) {\n var dependencies, methods;\n dependencies = _.keys(object);\n methods = [];\n _.forIn(object, function(value, key) {\n if (indexOf.call(dependencies, key) < 0 && _.isFunction(value)) {\n return methods.push(key);\n }\n });\n return _.bindAll(object, methods);\n };\n })(this);\n\n bindOnce = (function(_this) {\n return function(scope, attr, continuation) {\n var delBind, val;\n val = scope.$eval(attr);\n if (val !== void 0) {\n return continuation(val);\n }\n delBind = null;\n return delBind = scope.$watch(attr, function(val) {\n if (val === void 0) {\n return;\n }\n continuation(val);\n if (delBind) {\n return delBind();\n }\n });\n };\n })(this);\n\n mixOf = function() {\n var Mixed, base, i, method, mixin, mixins, name, ref;\n base = arguments[0], mixins = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n Mixed = (function(superClass) {\n extend(Mixed, superClass);\n\n function Mixed() {\n return Mixed.__super__.constructor.apply(this, arguments);\n }\n\n return Mixed;\n\n })(base);\n for (i = mixins.length - 1; i >= 0; i += -1) {\n mixin = mixins[i];\n ref = mixin.prototype;\n for (name in ref) {\n method = ref[name];\n Mixed.prototype[name] = method;\n }\n }\n return Mixed;\n };\n\n trim = function(data, char) {\n return _.trim(data, char);\n };\n\n slugify = function(data) {\n return data.toString().toLowerCase().trim().replace(/\\s+/g, '-').replace(/&/g, '-and-').replace(/[^\\w\\-]+/g, '').replace(/\\-\\-+/g, '-');\n };\n\n unslugify = function(data) {\n if (data) {\n return _.capitalize(data.replace(/-/g, ' '));\n }\n return data;\n };\n\n toggleText = function(element, texts) {\n var nextTextPosition, text;\n nextTextPosition = element.data('nextTextPosition');\n if ((nextTextPosition == null) || nextTextPosition >= texts.length) {\n nextTextPosition = 0;\n }\n text = texts[nextTextPosition];\n element.data('nextTextPosition', nextTextPosition + 1);\n return element.text(text);\n };\n\n groupBy = function(coll, pred) {\n var i, item, len, result;\n result = {};\n for (i = 0, len = coll.length; i < len; i++) {\n item = coll[i];\n result[pred(item)] = item;\n }\n return result;\n };\n\n timeout = function(wait, continuation) {\n return window.setTimeout(continuation, wait);\n };\n\n cancelTimeout = function(timeoutVar) {\n return window.clearTimeout(timeoutVar);\n };\n\n scopeDefer = function(scope, func) {\n return _.defer((function(_this) {\n return function() {\n return scope.$apply(func);\n };\n })(this));\n };\n\n toString = function(value) {\n if (_.isNumber(value)) {\n return value + \"\";\n } else if (_.isString(value)) {\n return value;\n } else if (_.isPlainObject(value)) {\n return JSON.stringify(value);\n } else if (_.isUndefined(value)) {\n return \"\";\n }\n return value.toString();\n };\n\n joinStr = function(str, coll) {\n return coll.join(str);\n };\n\n debounce = function(wait, func) {\n return _.debounce(func, wait, {\n leading: true,\n trailing: false\n });\n };\n\n debounceLeading = function(wait, func) {\n return _.debounce(func, wait, {\n leading: false,\n trailing: true\n });\n };\n\n startswith = function(str1, str2) {\n return _.startsWith(str1, str2);\n };\n\n truncate = function(str, maxLength, suffix) {\n var out;\n if (suffix == null) {\n suffix = \"...\";\n }\n if ((typeof str !== \"string\") && !(str instanceof String)) {\n return str;\n }\n out = str.slice(0);\n if (out.length > maxLength) {\n out = out.substring(0, maxLength + 1);\n out = out.substring(0, Math.min(out.length, out.lastIndexOf(\" \")));\n out = out + suffix;\n }\n return out;\n };\n\n sizeFormat = function(input, precision) {\n var number, size, units;\n if (precision == null) {\n precision = 1;\n }\n if (isNaN(parseFloat(input)) || !isFinite(input)) {\n return \"-\";\n }\n if (input === 0) {\n return \"0 bytes\";\n }\n units = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\n number = Math.floor(Math.log(input) / Math.log(1024));\n if (number > 5) {\n number = 5;\n }\n size = (input / Math.pow(1024, number)).toFixed(precision);\n return size + \" \" + units[number];\n };\n\n stripTags = function(str, exception) {\n var pattern;\n if (exception) {\n pattern = new RegExp('<(?!' + exception + '\\s*\\/?)[^>]+>', 'gi');\n return String(str).replace(pattern, '');\n } else {\n return String(str).replace(/<\\/?[^>]+>/g, '');\n }\n };\n\n replaceTags = function(str, tags, replace) {\n var pattern;\n pattern = new RegExp('<(' + tags + ')>', 'gi');\n str = str.replace(pattern, '<' + replace + '>');\n pattern = new RegExp('<\\/(' + tags + ')>', 'gi');\n str = str.replace(pattern, '' + replace + '>');\n return str;\n };\n\n defineImmutableProperty = (function(_this) {\n return function(obj, name, fn) {\n return Object.defineProperty(obj, name, {\n get: function() {\n var fn_result;\n if (!_.isFunction(fn)) {\n throw \"defineImmutableProperty third param must be a function\";\n }\n fn_result = fn();\n if (fn_result && _.isObject(fn_result)) {\n if (fn_result.size === void 0) {\n throw \"defineImmutableProperty must return immutable data\";\n }\n }\n return fn_result;\n }\n });\n };\n })(this);\n\n _.mixin({\n removeKeys: function(obj, keys) {\n return _.chain([keys]).flatten().reduce(function(obj, key) {\n delete obj[key];\n return obj;\n }, obj).value();\n },\n cartesianProduct: function() {\n return _.reduceRight(arguments, function(a, b) {\n return _.flatten(_.map(a, function(x) {\n return _.map(b, function(y) {\n return [y].concat(x);\n });\n }), true);\n }, [[]]);\n }\n });\n\n isImage = function(name) {\n return name.match(/\\.(jpe?g|png|gif|gifv|webm|svg|psd)/i) !== null;\n };\n\n isEmail = function(name) {\n return (name != null) && name.match(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/) !== null;\n };\n\n isPdf = function(name) {\n return name.match(/\\.(pdf)/i) !== null;\n };\n\n patch = function(oldImmutable, newImmutable) {\n var pathObj;\n pathObj = {};\n newImmutable.forEach(function(newValue, key) {\n if (newValue !== oldImmutable.get(key)) {\n if (newValue.toJS) {\n return pathObj[key] = newValue.toJS();\n } else {\n return pathObj[key] = newValue;\n }\n }\n });\n return pathObj;\n };\n\n DEFAULT_COLOR_LIST = ['#fce94f', '#edd400', '#c4a000', '#8ae234', '#73d216', '#4e9a06', '#d3d7cf', '#fcaf3e', '#f57900', '#ce5c00', '#729fcf', '#3465a4', '#204a87', '#888a85', '#ad7fa8', '#75507b', '#5c3566', '#ef2929', '#cc0000', '#a40000', '#222222'];\n\n getRandomDefaultColor = function() {\n return _.sample(DEFAULT_COLOR_LIST);\n };\n\n getDefaulColorList = function() {\n return _.clone(DEFAULT_COLOR_LIST);\n };\n\n getMatches = function(string, regex, index) {\n var match, matches;\n index || (index = 1);\n matches = [];\n match = null;\n while (match = regex.exec(string)) {\n matches.push(match[index]);\n }\n return matches;\n };\n\n taiga = this.taiga;\n\n taiga.addClass = addClass;\n\n taiga.nl2br = nl2br;\n\n taiga.bindMethods = bindMethods;\n\n taiga.bindOnce = bindOnce;\n\n taiga.mixOf = mixOf;\n\n taiga.trim = trim;\n\n taiga.slugify = slugify;\n\n taiga.unslugify = unslugify;\n\n taiga.toggleText = toggleText;\n\n taiga.groupBy = groupBy;\n\n taiga.timeout = timeout;\n\n taiga.cancelTimeout = cancelTimeout;\n\n taiga.scopeDefer = scopeDefer;\n\n taiga.toString = toString;\n\n taiga.joinStr = joinStr;\n\n taiga.truncate = truncate;\n\n taiga.debounce = debounce;\n\n taiga.debounceLeading = debounceLeading;\n\n taiga.startswith = startswith;\n\n taiga.sizeFormat = sizeFormat;\n\n taiga.stripTags = stripTags;\n\n taiga.replaceTags = replaceTags;\n\n taiga.defineImmutableProperty = defineImmutableProperty;\n\n taiga.isImage = isImage;\n\n taiga.isEmail = isEmail;\n\n taiga.isPdf = isPdf;\n\n taiga.patch = patch;\n\n taiga.getRandomDefaultColor = getRandomDefaultColor;\n\n taiga.getDefaulColorList = getDefaulColorList;\n\n taiga.getMatches = getMatches;\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/controllerMixins.coffee\n */\n\n(function() {\n var FiltersMixin, PageMixin, UsFiltersMixin, groupBy, joinStr, taiga, toString, trim;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n joinStr = this.taiga.joinStr;\n\n trim = this.taiga.trim;\n\n toString = this.taiga.toString;\n\n PageMixin = (function() {\n function PageMixin() {}\n\n PageMixin.prototype.fillUsersAndRoles = function(users, roles) {\n var activeUsers, computableRoles;\n activeUsers = _.filter(users, (function(_this) {\n return function(user) {\n return user.is_active;\n };\n })(this));\n this.scope.activeUsers = _.sortBy(activeUsers, \"full_name_display\");\n this.scope.activeUsersById = groupBy(this.scope.activeUsers, function(e) {\n return e.id;\n });\n this.scope.users = _.sortBy(users, \"full_name_display\");\n this.scope.usersById = groupBy(this.scope.users, function(e) {\n return e.id;\n });\n this.scope.roles = _.sortBy(roles, \"order\");\n computableRoles = _(this.scope.project.members).map(\"role\").uniq().value();\n return this.scope.computableRoles = _(roles).filter(\"computable\").filter(function(x) {\n return _.includes(computableRoles, x.id);\n }).value();\n };\n\n PageMixin.prototype.loadUsersAndRoles = function() {\n var promise;\n promise = this.q.all([this.rs.projects.usersList(this.scope.projectId), this.rs.projects.rolesList(this.scope.projectId)]);\n return promise.then((function(_this) {\n return function(results) {\n var roles, users;\n users = results[0], roles = results[1];\n _this.fillUsersAndRoles(users, roles);\n return results;\n };\n })(this));\n };\n\n return PageMixin;\n\n })();\n\n taiga.PageMixin = PageMixin;\n\n FiltersMixin = (function() {\n function FiltersMixin() {}\n\n FiltersMixin.prototype.selectFilter = function(name, value, load) {\n var existing, location, params;\n if (load == null) {\n load = false;\n }\n params = this.location.search();\n if (params[name] !== void 0 && name !== \"page\") {\n existing = _.map(taiga.toString(params[name]).split(\",\"), function(x) {\n return trim(x);\n });\n existing.push(taiga.toString(value));\n existing = _.compact(existing);\n value = joinStr(\",\", _.uniq(existing));\n }\n if (!this.location.isInCurrentRouteParams(name, value)) {\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n }\n };\n\n FiltersMixin.prototype.replaceFilter = function(name, value, load) {\n var location;\n if (load == null) {\n load = false;\n }\n if (!this.location.isInCurrentRouteParams(name, value)) {\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n }\n };\n\n FiltersMixin.prototype.replaceAllFilters = function(filters, load) {\n var location;\n if (load == null) {\n load = false;\n }\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(filters);\n };\n\n FiltersMixin.prototype.unselectFilter = function(name, value, load) {\n var location, newValues, params, parsedValues;\n if (load == null) {\n load = false;\n }\n params = this.location.search();\n if (params[name] === void 0) {\n return;\n }\n if (value === void 0 || value === null) {\n delete params[name];\n }\n parsedValues = _.map(taiga.toString(params[name]).split(\",\"), function(x) {\n return trim(x);\n });\n newValues = _.reject(parsedValues, function(x) {\n return x === taiga.toString(value);\n });\n newValues = _.compact(newValues);\n if (_.isEmpty(newValues)) {\n value = null;\n } else {\n value = joinStr(\",\", _.uniq(newValues));\n }\n location = load ? this.location : this.location.noreload(this.scope);\n return location.search(name, value);\n };\n\n FiltersMixin.prototype.applyStoredFilters = function(projectSlug, key) {\n var filters;\n if (_.isEmpty(this.location.search())) {\n filters = this.getFilters(projectSlug, key);\n if (Object.keys(filters).length) {\n this.location.search(filters);\n this.location.replace();\n return true;\n }\n }\n return false;\n };\n\n FiltersMixin.prototype.storeFilters = function(projectSlug, params, filtersHashSuffix) {\n var hash, ns;\n ns = projectSlug + \":\" + filtersHashSuffix;\n hash = taiga.generateHash([projectSlug, ns]);\n return this.storage.set(hash, params);\n };\n\n FiltersMixin.prototype.getFilters = function(projectSlug, filtersHashSuffix) {\n var hash, ns;\n ns = projectSlug + \":\" + filtersHashSuffix;\n hash = taiga.generateHash([projectSlug, ns]);\n return this.storage.get(hash) || {};\n };\n\n FiltersMixin.prototype.formatSelectedFilters = function(type, list, urlIds) {\n var invalidAppliedTags, invalidTags, selectedFilters, selectedIds, validAppliedTags;\n selectedIds = urlIds.split(',');\n selectedFilters = _.filter(list, function(it) {\n return selectedIds.indexOf(_.toString(it.id)) !== -1;\n });\n invalidTags = _.filter(selectedIds, function(it) {\n return !_.find(selectedFilters, function(sit) {\n return _.toString(sit.id) === it;\n });\n });\n invalidAppliedTags = _.map(invalidTags, function(it) {\n return {\n id: it,\n key: type + \":\" + it,\n dataType: type,\n name: it\n };\n });\n validAppliedTags = _.map(selectedFilters, function(it) {\n return {\n id: it.id,\n key: type + \":\" + it.id,\n dataType: type,\n name: it.name,\n color: it.color\n };\n });\n return invalidAppliedTags.concat(validAppliedTags);\n };\n\n return FiltersMixin;\n\n })();\n\n taiga.FiltersMixin = FiltersMixin;\n\n UsFiltersMixin = (function() {\n function UsFiltersMixin() {}\n\n UsFiltersMixin.prototype.changeQ = function(q) {\n this.replaceFilter(\"q\", q);\n this.filtersReloadContent();\n return this.generateFilters();\n };\n\n UsFiltersMixin.prototype.removeFilter = function(filter) {\n this.unselectFilter(filter.dataType, filter.id);\n this.filtersReloadContent();\n return this.generateFilters();\n };\n\n UsFiltersMixin.prototype.addFilter = function(newFilter) {\n this.selectFilter(newFilter.category.dataType, newFilter.filter.id);\n this.filtersReloadContent();\n return this.generateFilters();\n };\n\n UsFiltersMixin.prototype.selectCustomFilter = function(customFilter) {\n this.replaceAllFilters(customFilter.filter);\n this.filtersReloadContent();\n return this.generateFilters();\n };\n\n UsFiltersMixin.prototype.saveCustomFilter = function(name) {\n var filters, urlfilters;\n filters = {};\n urlfilters = this.location.search();\n filters.tags = urlfilters.tags;\n filters.status = urlfilters.status;\n filters.assigned_to = urlfilters.assigned_to;\n filters.owner = urlfilters.owner;\n return this.filterRemoteStorageService.getFilters(this.scope.projectId, this.storeCustomFiltersName).then((function(_this) {\n return function(userFilters) {\n userFilters[name] = filters;\n return _this.filterRemoteStorageService.storeFilters(_this.scope.projectId, userFilters, _this.storeCustomFiltersName).then(_this.generateFilters);\n };\n })(this));\n };\n\n UsFiltersMixin.prototype.removeCustomFilter = function(customFilter) {\n return this.filterRemoteStorageService.getFilters(this.scope.projectId, this.storeCustomFiltersName).then((function(_this) {\n return function(userFilters) {\n delete userFilters[customFilter.id];\n _this.filterRemoteStorageService.storeFilters(_this.scope.projectId, userFilters, _this.storeCustomFiltersName).then(_this.generateFilters);\n return _this.generateFilters();\n };\n })(this));\n };\n\n UsFiltersMixin.prototype.generateFilters = function() {\n var loadFilters, urlfilters;\n this.storeFilters(this.params.pslug, this.location.search(), this.storeFiltersName);\n urlfilters = this.location.search();\n loadFilters = {};\n loadFilters.project = this.scope.projectId;\n loadFilters.tags = urlfilters.tags;\n loadFilters.status = urlfilters.status;\n loadFilters.assigned_to = urlfilters.assigned_to;\n loadFilters.owner = urlfilters.owner;\n loadFilters.epic = urlfilters.epic;\n loadFilters.q = urlfilters.q;\n return this.q.all([this.rs.userstories.filtersData(loadFilters), this.filterRemoteStorageService.getFilters(this.scope.projectId, this.storeCustomFiltersName)]).then((function(_this) {\n return function(result) {\n var assignedTo, customFiltersRaw, data, epic, owner, selected, statuses, tags, tagsWithAtLeastOneElement;\n data = result[0];\n customFiltersRaw = result[1];\n statuses = _.map(data.statuses, function(it) {\n it.id = it.id.toString();\n return it;\n });\n tags = _.map(data.tags, function(it) {\n it.id = it.name;\n return it;\n });\n tagsWithAtLeastOneElement = _.filter(tags, function(tag) {\n return tag.count > 0;\n });\n assignedTo = _.map(data.assigned_to, function(it) {\n if (it.id) {\n it.id = it.id.toString();\n } else {\n it.id = \"null\";\n }\n it.name = it.full_name || \"Unassigned\";\n return it;\n });\n owner = _.map(data.owners, function(it) {\n it.id = it.id.toString();\n it.name = it.full_name;\n return it;\n });\n epic = _.map(data.epics, function(it) {\n if (it.id) {\n it.id = it.id.toString();\n it.name = \"#\" + it.ref + \" \" + it.subject;\n } else {\n it.id = \"null\";\n it.name = \"Not in an epic\";\n }\n return it;\n });\n _this.selectedFilters = [];\n if (loadFilters.status) {\n selected = _this.formatSelectedFilters(\"status\", statuses, loadFilters.status);\n _this.selectedFilters = _this.selectedFilters.concat(selected);\n }\n if (loadFilters.tags) {\n selected = _this.formatSelectedFilters(\"tags\", tags, loadFilters.tags);\n _this.selectedFilters = _this.selectedFilters.concat(selected);\n }\n if (loadFilters.assigned_to) {\n selected = _this.formatSelectedFilters(\"assigned_to\", assignedTo, loadFilters.assigned_to);\n _this.selectedFilters = _this.selectedFilters.concat(selected);\n }\n if (loadFilters.owner) {\n selected = _this.formatSelectedFilters(\"owner\", owner, loadFilters.owner);\n _this.selectedFilters = _this.selectedFilters.concat(selected);\n }\n if (loadFilters.epic) {\n selected = _this.formatSelectedFilters(\"epic\", epic, loadFilters.epic);\n _this.selectedFilters = _this.selectedFilters.concat(selected);\n }\n _this.filterQ = loadFilters.q;\n _this.filters = [\n {\n title: _this.translate.instant(\"COMMON.FILTERS.CATEGORIES.STATUS\"),\n dataType: \"status\",\n content: statuses\n }, {\n title: _this.translate.instant(\"COMMON.FILTERS.CATEGORIES.TAGS\"),\n dataType: \"tags\",\n content: tags,\n hideEmpty: true,\n totalTaggedElements: tagsWithAtLeastOneElement.length\n }, {\n title: _this.translate.instant(\"COMMON.FILTERS.CATEGORIES.ASSIGNED_TO\"),\n dataType: \"assigned_to\",\n content: assignedTo\n }, {\n title: _this.translate.instant(\"COMMON.FILTERS.CATEGORIES.CREATED_BY\"),\n dataType: \"owner\",\n content: owner\n }, {\n title: _this.translate.instant(\"COMMON.FILTERS.CATEGORIES.EPIC\"),\n dataType: \"epic\",\n content: epic\n }\n ];\n _this.customFilters = [];\n return _.forOwn(customFiltersRaw, function(value, key) {\n return _this.customFilters.push({\n id: key,\n name: key,\n filter: value\n });\n });\n };\n })(this));\n };\n\n return UsFiltersMixin;\n\n })();\n\n taiga.UsFiltersMixin = UsFiltersMixin;\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/admin.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaAdmin\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/auth.coffee\n */\n\n(function() {\n var AuthService, CancelAccountDirective, ChangeEmailDirective, ChangePasswordFromRecoveryDirective, ForgotPasswordDirective, InvitationDirective, LoginDirective, LoginPage, PublicRegisterMessageDirective, RegisterDirective, debounce, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaAuth\", [\"taigaResources\"]);\n\n LoginPage = (function() {\n LoginPage.$inject = ['tgCurrentUserService', '$location', '$tgNavUrls', '$routeParams', '$tgAuth'];\n\n function LoginPage(currentUserService, $location, $navUrls, $routeParams, $auth) {\n var url;\n if (currentUserService.isAuthenticated()) {\n if (!$routeParams['force_login']) {\n url = $navUrls.resolve(\"home\");\n if ($routeParams['next']) {\n url = decodeURIComponent($routeParams['next']);\n $location.search('next', null);\n }\n if ($routeParams['unauthorized']) {\n $auth.clear();\n $auth.removeToken();\n } else {\n $location.url(url);\n }\n }\n }\n }\n\n return LoginPage;\n\n })();\n\n module.controller('LoginPage', LoginPage);\n\n AuthService = (function(superClass) {\n extend(AuthService, superClass);\n\n AuthService.$inject = [\"$rootScope\", \"$tgStorage\", \"$tgModel\", \"$tgResources\", \"$tgHttp\", \"$tgUrls\", \"$tgConfig\", \"$translate\", \"tgCurrentUserService\", \"tgThemeService\"];\n\n function AuthService(rootscope, storage, model, rs, http, urls, config1, translate, currentUserService1, themeService) {\n var userModel;\n this.rootscope = rootscope;\n this.storage = storage;\n this.model = model;\n this.rs = rs;\n this.http = http;\n this.urls = urls;\n this.config = config1;\n this.translate = translate;\n this.currentUserService = currentUserService1;\n this.themeService = themeService;\n AuthService.__super__.constructor.call(this);\n userModel = this.getUser();\n this._currentTheme = this._getUserTheme();\n this.setUserdata(userModel);\n }\n\n AuthService.prototype.setUserdata = function(userModel) {\n if (userModel) {\n this.userData = Immutable.fromJS(userModel.getAttrs());\n return this.currentUserService.setUser(this.userData);\n } else {\n return this.userData = null;\n }\n };\n\n AuthService.prototype._getUserTheme = function() {\n var ref;\n return ((ref = this.rootscope.user) != null ? ref.theme : void 0) || this.config.get(\"defaultTheme\") || \"taiga\";\n };\n\n AuthService.prototype._setTheme = function() {\n var newTheme;\n newTheme = this._getUserTheme();\n if (this._currentTheme !== newTheme) {\n this._currentTheme = newTheme;\n return this.themeService.use(this._currentTheme);\n }\n };\n\n AuthService.prototype._setLocales = function() {\n var lang, ref;\n lang = ((ref = this.rootscope.user) != null ? ref.lang : void 0) || this.config.get(\"defaultLanguage\") || \"en\";\n this.translate.preferredLanguage(lang);\n return this.translate.use(lang);\n };\n\n AuthService.prototype.getUser = function() {\n var user, userData;\n if (this.rootscope.user) {\n return this.rootscope.user;\n }\n userData = this.storage.get(\"userInfo\");\n if (userData) {\n user = this.model.make_model(\"users\", userData);\n this.rootscope.user = user;\n this._setLocales();\n this._setTheme();\n return user;\n } else {\n this._setTheme();\n }\n return null;\n };\n\n AuthService.prototype.setUser = function(user) {\n this.rootscope.auth = user;\n this.storage.set(\"userInfo\", user.getAttrs());\n this.rootscope.user = user;\n this.setUserdata(user);\n this._setLocales();\n return this._setTheme();\n };\n\n AuthService.prototype.clear = function() {\n this.rootscope.auth = null;\n this.rootscope.user = null;\n return this.storage.remove(\"userInfo\");\n };\n\n AuthService.prototype.setToken = function(token) {\n return this.storage.set(\"token\", token);\n };\n\n AuthService.prototype.getToken = function() {\n return this.storage.get(\"token\");\n };\n\n AuthService.prototype.removeToken = function() {\n return this.storage.remove(\"token\");\n };\n\n AuthService.prototype.isAuthenticated = function() {\n if (this.getUser() !== null) {\n return true;\n }\n return false;\n };\n\n AuthService.prototype.refresh = function() {\n var url;\n url = this.urls.resolve(\"user-me\");\n return this.http.get(url).then((function(_this) {\n return function(data, status) {\n var user;\n user = data.data;\n user.token = _this.getUser().auth_token;\n user = _this.model.make_model(\"users\", user);\n _this.setUser(user);\n return user;\n };\n })(this));\n };\n\n AuthService.prototype.login = function(data, type) {\n var url;\n url = this.urls.resolve(\"auth\");\n data = _.clone(data, false);\n data.type = type ? type : \"normal\";\n this.removeToken();\n return this.http.post(url, data).then((function(_this) {\n return function(data, status) {\n var user;\n user = _this.model.make_model(\"users\", data.data);\n _this.setToken(user.auth_token);\n _this.setUser(user);\n return user;\n };\n })(this));\n };\n\n AuthService.prototype.logout = function() {\n this.removeToken();\n this.clear();\n this.currentUserService.removeUser();\n this._setTheme();\n return this._setLocales();\n };\n\n AuthService.prototype.register = function(data, type, existing) {\n var url;\n url = this.urls.resolve(\"auth-register\");\n data = _.clone(data, false);\n data.type = type ? type : \"public\";\n if (type === \"private\") {\n data.existing = existing ? existing : false;\n }\n this.removeToken();\n return this.http.post(url, data).then((function(_this) {\n return function(response) {\n var user;\n user = _this.model.make_model(\"users\", response.data);\n _this.setToken(user.auth_token);\n _this.setUser(user);\n return user;\n };\n })(this));\n };\n\n AuthService.prototype.getInvitation = function(token) {\n return this.rs.invitations.get(token);\n };\n\n AuthService.prototype.acceptInvitiationWithNewUser = function(data) {\n return this.register(data, \"private\", false);\n };\n\n AuthService.prototype.forgotPassword = function(data) {\n var url;\n url = this.urls.resolve(\"users-password-recovery\");\n data = _.clone(data, false);\n this.removeToken();\n return this.http.post(url, data);\n };\n\n AuthService.prototype.changePasswordFromRecovery = function(data) {\n var url;\n url = this.urls.resolve(\"users-change-password-from-recovery\");\n data = _.clone(data, false);\n this.removeToken();\n return this.http.post(url, data);\n };\n\n AuthService.prototype.changeEmail = function(data) {\n var url;\n url = this.urls.resolve(\"users-change-email\");\n data = _.clone(data, false);\n return this.http.post(url, data);\n };\n\n AuthService.prototype.cancelAccount = function(data) {\n var url;\n url = this.urls.resolve(\"users-cancel-account\");\n data = _.clone(data, false);\n return this.http.post(url, data);\n };\n\n return AuthService;\n\n })(taiga.Service);\n\n module.service(\"$tgAuth\", AuthService);\n\n PublicRegisterMessageDirective = function($config, $navUrls, $routeParams, templates) {\n var template, templateFn;\n template = templates.get(\"auth/login-text.html\", true);\n templateFn = function() {\n var nextUrl, publicRegisterEnabled, url;\n publicRegisterEnabled = $config.get(\"publicRegisterEnabled\");\n if (!publicRegisterEnabled) {\n return \"\";\n }\n url = $navUrls.resolve(\"register\");\n if ($routeParams['force_next']) {\n nextUrl = encodeURIComponent($routeParams['force_next']);\n url += \"?next=\" + nextUrl;\n }\n return template({\n url: url\n });\n };\n return {\n restrict: \"AE\",\n scope: {},\n template: templateFn\n };\n };\n\n module.directive(\"tgPublicRegisterMessage\", [\"$tgConfig\", \"$tgNavUrls\", \"$routeParams\", \"$tgTemplate\", PublicRegisterMessageDirective]);\n\n LoginDirective = function($auth, $confirm, $location, $config, $routeParams, $navUrls, $events, $translate, $window) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onError, onSuccess, submit;\n form = new checksley.Form($el.find(\"form.login-form\"));\n if ($routeParams['next'] && $routeParams['next'] !== $navUrls.resolve(\"login\")) {\n $scope.nextUrl = decodeURIComponent($routeParams['next']);\n } else {\n $scope.nextUrl = $navUrls.resolve(\"home\");\n }\n if ($routeParams['force_next']) {\n $scope.nextUrl = decodeURIComponent($routeParams['force_next']);\n }\n onSuccess = function(response) {\n $events.setupConnection();\n if ($scope.nextUrl.indexOf('http') === 0) {\n return $window.location.href = $scope.nextUrl;\n } else {\n return $location.url($scope.nextUrl);\n }\n };\n onError = function(response) {\n return $confirm.notify(\"light-error\", $translate.instant(\"LOGIN_FORM.ERROR_AUTH_INCORRECT\"));\n };\n $scope.onKeyUp = function(event) {\n var target, value;\n target = angular.element(event.currentTarget);\n value = target.val();\n $scope.iscapsLockActivated = false;\n if (value !== value.toLowerCase()) {\n return $scope.iscapsLockActivated = true;\n }\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var data, loginFormType, promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n data = {\n \"username\": $el.find(\"form.login-form input[name=username]\").val(),\n \"password\": $el.find(\"form.login-form input[name=password]\").val()\n };\n loginFormType = $config.get(\"loginFormType\", \"normal\");\n promise = $auth.login(data, loginFormType);\n return promise.then(onSuccess, onError);\n };\n })(this));\n $el.on(\"submit\", \"form\", submit);\n window.prerenderReady = true;\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLogin\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgConfig\", \"$routeParams\", \"$tgNavUrls\", \"$tgEvents\", \"$translate\", \"$window\", LoginDirective]);\n\n RegisterDirective = function($auth, $confirm, $location, $navUrls, $config, $routeParams, $analytics, $translate, $window) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n if (!$config.get(\"publicRegisterEnabled\")) {\n $location.path($navUrls.resolve(\"not-found\"));\n $location.replace();\n }\n $scope.data = {};\n form = $el.find(\"form\").checksley({\n onlyOneErrorElement: true\n });\n if ($routeParams['next'] && $routeParams['next'] !== $navUrls.resolve(\"login\")) {\n $scope.nextUrl = decodeURIComponent($routeParams['next']);\n } else {\n $scope.nextUrl = $navUrls.resolve(\"home\");\n }\n onSuccessSubmit = function(response) {\n $analytics.trackEvent(\"auth\", \"register\", \"user registration\", 1);\n if ($scope.nextUrl.indexOf('http') === 0) {\n return $window.location.href = $scope.nextUrl;\n } else {\n return $location.url($scope.nextUrl);\n }\n };\n onErrorSubmit = function(response) {\n var text;\n if (response.data._error_message) {\n text = $translate.instant(\"COMMON.GENERIC_ERROR\", {\n error: response.data._error_message\n });\n $confirm.notify(\"light-error\", text);\n }\n return form.setErrors(response.data);\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.register($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n $el.on(\"submit\", \"form\", submit);\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n return window.prerenderReady = true;\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRegister\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgNavUrls\", \"$tgConfig\", \"$routeParams\", \"$tgAnalytics\", \"$translate\", \"$window\", RegisterDirective]);\n\n ForgotPasswordDirective = function($auth, $confirm, $location, $navUrls, $translate) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n var message, title;\n $location.path($navUrls.resolve(\"login\"));\n title = $translate.instant(\"FORGOT_PASSWORD_FORM.SUCCESS_TITLE\");\n message = $translate.instant(\"FORGOT_PASSWORD_FORM.SUCCESS_TEXT\");\n return $confirm.success(title, message);\n };\n onErrorSubmit = function(response) {\n var text;\n text = $translate.instant(\"FORGOT_PASSWORD_FORM.ERROR\");\n return $confirm.notify(\"light-error\", text);\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.forgotPassword($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n $el.on(\"submit\", \"form\", submit);\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n return window.prerenderReady = true;\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgForgotPassword\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgNavUrls\", \"$translate\", ForgotPasswordDirective]);\n\n ChangePasswordFromRecoveryDirective = function($auth, $confirm, $location, $params, $navUrls, $translate) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit, text;\n $scope.data = {};\n if ($params.token != null) {\n $scope.tokenInParams = true;\n $scope.data.token = $params.token;\n } else {\n $location.path($navUrls.resolve(\"login\"));\n text = $translate.instant(\"CHANGE_PASSWORD_RECOVERY_FORM.ERROR\");\n $confirm.notify(\"light-error\", text);\n }\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n $location.path($navUrls.resolve(\"login\"));\n text = $translate.instant(\"CHANGE_PASSWORD_RECOVERY_FORM.SUCCESS\");\n return $confirm.success(text);\n };\n onErrorSubmit = function(response) {\n text = $translate.instant(\"CHANGE_PASSWORD_RECOVERY_FORM.ERROR\");\n return $confirm.notify(\"light-error\", text);\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.changePasswordFromRecovery($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n $el.on(\"submit\", \"form\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgChangePasswordFromRecovery\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", \"$translate\", ChangePasswordFromRecoveryDirective]);\n\n InvitationDirective = function($auth, $confirm, $location, $config, $params, $navUrls, $analytics, $translate, config) {\n var link;\n link = function($scope, $el, $attrs) {\n var loginForm, onErrorSubmitLogin, onErrorSubmitRegister, onSuccessSubmitLogin, onSuccessSubmitRegister, promise, registerForm, submitLogin, submitRegister, token;\n token = $params.token;\n promise = $auth.getInvitation(token);\n promise.then(function(invitation) {\n $scope.invitation = invitation;\n return $scope.publicRegisterEnabled = config.get(\"publicRegisterEnabled\");\n });\n promise.then(null, function(response) {\n var text;\n $location.path($navUrls.resolve(\"login\"));\n text = $translate.instant(\"INVITATION_LOGIN_FORM.NOT_FOUND\");\n return $confirm.notify(\"light-error\", text);\n });\n $scope.dataLogin = {\n token: token\n };\n loginForm = $el.find(\"form.login-form\").checksley({\n onlyOneErrorElement: true\n });\n onSuccessSubmitLogin = function(response) {\n var text;\n $analytics.trackEvent(\"auth\", \"invitationAccept\", \"invitation accept with existing user\", 1);\n $location.path($navUrls.resolve(\"project\", {\n project: $scope.invitation.project_slug\n }));\n text = $translate.instant(\"INVITATION_LOGIN_FORM.SUCCESS\", {\n \"project_name\": $scope.invitation.project_name\n });\n return $confirm.notify(\"success\", text);\n };\n onErrorSubmitLogin = function(response) {\n return $confirm.notify(\"light-error\", response.data._error_message);\n };\n submitLogin = debounce(2000, (function(_this) {\n return function(event) {\n var data, loginFormType;\n event.preventDefault();\n if (!loginForm.validate()) {\n return;\n }\n loginFormType = $config.get(\"loginFormType\", \"normal\");\n data = $scope.dataLogin;\n promise = $auth.login({\n username: data.username,\n password: data.password,\n invitation_token: data.token\n }, loginFormType);\n return promise.then(onSuccessSubmitLogin, onErrorSubmitLogin);\n };\n })(this));\n $el.on(\"submit\", \"form.login-form\", submitLogin);\n $el.on(\"click\", \".button-login\", submitLogin);\n $scope.dataRegister = {\n token: token\n };\n registerForm = $el.find(\"form.register-form\").checksley({\n onlyOneErrorElement: true\n });\n onSuccessSubmitRegister = function(response) {\n $analytics.trackEvent(\"auth\", \"invitationAccept\", \"invitation accept with new user\", 1);\n $location.path($navUrls.resolve(\"project\", {\n project: $scope.invitation.project_slug\n }));\n return $confirm.notify(\"success\", \"You've successfully joined this project\", \"Welcome to \" + (_.escape($scope.invitation.project_name)));\n };\n onErrorSubmitRegister = function(response) {\n var text;\n if (response.data._error_message) {\n text = $translate.instant(\"COMMON.GENERIC_ERROR\", {\n error: response.data._error_message\n });\n $confirm.notify(\"light-error\", text);\n }\n return registerForm.setErrors(response.data);\n };\n submitRegister = debounce(2000, (function(_this) {\n return function(event) {\n event.preventDefault();\n if (!registerForm.validate()) {\n return;\n }\n promise = $auth.acceptInvitiationWithNewUser($scope.dataRegister);\n return promise.then(onSuccessSubmitRegister, onErrorSubmitRegister);\n };\n })(this));\n $el.on(\"submit\", \"form.register-form\", submitRegister);\n $el.on(\"click\", \".button-register\", submitRegister);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgInvitation\", [\"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$tgConfig\", \"$routeParams\", \"$tgNavUrls\", \"$tgAnalytics\", \"$translate\", \"$tgConfig\", InvitationDirective]);\n\n ChangeEmailDirective = function($repo, $model, $auth, $confirm, $location, $params, $navUrls, $translate) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n $scope.data.email_token = $params.email_token;\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n var text;\n if ($auth.isAuthenticated()) {\n $repo.queryOne(\"users\", $auth.getUser().id).then((function(_this) {\n return function(data) {\n $auth.setUser(data);\n $location.path($navUrls.resolve(\"home\"));\n return $location.replace();\n };\n })(this));\n } else {\n $location.path($navUrls.resolve(\"login\"));\n $location.replace();\n }\n text = $translate.instant(\"CHANGE_EMAIL_FORM.SUCCESS\");\n return $confirm.success(text);\n };\n onErrorSubmit = function(response) {\n var text;\n text = $translate.instant(\"COMMON.GENERIC_ERROR\", {\n error: response.data._error_message\n });\n return $confirm.notify(\"light-error\", text);\n };\n submit = function() {\n var promise;\n if (!form.validate()) {\n return;\n }\n promise = $auth.changeEmail($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n $el.on(\"submit\", function(event) {\n event.preventDefault();\n return submit();\n });\n $el.on(\"click\", \"a.button-change-email\", function(event) {\n event.preventDefault();\n return submit();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgChangeEmail\", [\"$tgRepo\", \"$tgModel\", \"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", \"$translate\", ChangeEmailDirective]);\n\n CancelAccountDirective = function($repo, $model, $auth, $confirm, $location, $params, $navUrls) {\n var link;\n link = function($scope, $el, $attrs) {\n var form, onErrorSubmit, onSuccessSubmit, submit;\n $scope.data = {};\n $scope.data.cancel_token = $params.cancel_token;\n form = $el.find(\"form\").checksley();\n onSuccessSubmit = function(response) {\n var text;\n $auth.logout();\n $location.path($navUrls.resolve(\"home\"));\n text = $translate.instant(\"CANCEL_ACCOUNT.SUCCESS\");\n return $confirm.success(text);\n };\n onErrorSubmit = function(response) {\n var text;\n text = $translate.instant(\"COMMON.GENERIC_ERROR\", {\n error: response.data._error_message\n });\n return $confirm.notify(\"error\", text);\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n promise = $auth.cancelAccount($scope.data);\n return promise.then(onSuccessSubmit, onErrorSubmit);\n };\n })(this));\n $el.on(\"submit\", \"form\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgCancelAccount\", [\"$tgRepo\", \"$tgModel\", \"$tgAuth\", \"$tgConfirm\", \"$tgLocation\", \"$routeParams\", \"$tgNavUrls\", CancelAccountDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/backlog.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaBacklog\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/base.coffee\n */\n\n(function() {\n var TaigaMainDirective, bindOnce, groupBy, init, module, taiga, urls;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaBase\", []);\n\n TaigaMainDirective = function($rootscope, $window) {\n var link;\n link = function($scope, $el, $attrs) {\n return $window.onresize = function() {\n return $rootscope.$broadcast(\"resize\");\n };\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgMain\", [\"$rootScope\", \"$window\", TaigaMainDirective]);\n\n urls = {\n \"home\": \"/\",\n \"projects\": \"/projects\",\n \"error\": \"/error\",\n \"not-found\": \"/not-found\",\n \"permission-denied\": \"/permission-denied\",\n \"discover\": \"/discover\",\n \"discover-search\": \"/discover/search\",\n \"login\": \"/login\",\n \"forgot-password\": \"/forgot-password\",\n \"change-password\": \"/change-password/:token\",\n \"change-email\": \"/change-email/:token\",\n \"cancel-account\": \"/cancel-account/:token\",\n \"register\": \"/register\",\n \"invitation\": \"/invitation/:token\",\n \"create-project\": \"/project/new\",\n \"create-project-scrum\": \"/project/new/scrum\",\n \"create-project-kanban\": \"/project/new/kanban\",\n \"create-project-duplicate\": \"/project/new/duplicate\",\n \"create-project-import\": \"/project/new/import\",\n \"create-project-import-platform\": \"/project/new/import/:platform\",\n \"profile\": \"/profile\",\n \"user-profile\": \"/profile/:username\",\n \"blocked-project\": \"/blocked-project/:project\",\n \"project\": \"/project/:project\",\n \"project-backlog\": \"/project/:project/backlog\",\n \"project-taskboard\": \"/project/:project/taskboard/:sprint\",\n \"project-kanban\": \"/project/:project/kanban\",\n \"project-issues\": \"/project/:project/issues\",\n \"project-epics\": \"/project/:project/epics\",\n \"project-search\": \"/project/:project/search\",\n \"project-epics-detail\": \"/project/:project/epic/:ref\",\n \"project-userstories-detail\": \"/project/:project/us/:ref\",\n \"project-tasks-detail\": \"/project/:project/task/:ref\",\n \"project-issues-detail\": \"/project/:project/issue/:ref\",\n \"project-wiki\": \"/project/:project/wiki\",\n \"project-wiki-list\": \"/project/:project/wiki-list\",\n \"project-wiki-page\": \"/project/:project/wiki/:slug\",\n \"project-team\": \"/project/:project/team\",\n \"project-admin-home\": \"/project/:project/admin/project-profile/details\",\n \"project-admin-project-profile-details\": \"/project/:project/admin/project-profile/details\",\n \"project-admin-project-profile-default-values\": \"/project/:project/admin/project-profile/default-values\",\n \"project-admin-project-profile-modules\": \"/project/:project/admin/project-profile/modules\",\n \"project-admin-project-profile-export\": \"/project/:project/admin/project-profile/export\",\n \"project-admin-project-profile-reports\": \"/project/:project/admin/project-profile/reports\",\n \"project-admin-project-values-status\": \"/project/:project/admin/project-values/status\",\n \"project-admin-project-values-points\": \"/project/:project/admin/project-values/points\",\n \"project-admin-project-values-priorities\": \"/project/:project/admin/project-values/priorities\",\n \"project-admin-project-values-severities\": \"/project/:project/admin/project-values/severities\",\n \"project-admin-project-values-types\": \"/project/:project/admin/project-values/types\",\n \"project-admin-project-values-custom-fields\": \"/project/:project/admin/project-values/custom-fields\",\n \"project-admin-project-values-tags\": \"/project/:project/admin/project-values/tags\",\n \"project-admin-memberships\": \"/project/:project/admin/memberships\",\n \"project-admin-roles\": \"/project/:project/admin/roles\",\n \"project-admin-third-parties-webhooks\": \"/project/:project/admin/third-parties/webhooks\",\n \"project-admin-third-parties-github\": \"/project/:project/admin/third-parties/github\",\n \"project-admin-third-parties-gitlab\": \"/project/:project/admin/third-parties/gitlab\",\n \"project-admin-third-parties-bitbucket\": \"/project/:project/admin/third-parties/bitbucket\",\n \"project-admin-third-parties-gogs\": \"/project/:project/admin/third-parties/gogs\",\n \"project-admin-contrib\": \"/project/:project/admin/contrib/:plugin\",\n \"user-settings-user-profile\": \"/user-settings/user-profile\",\n \"user-settings-user-change-password\": \"/user-settings/user-change-password\",\n \"user-settings-user-avatar\": \"/user-settings/user-avatar\",\n \"user-settings-mail-notifications\": \"/user-settings/mail-notifications\",\n \"user-settings-contrib\": \"/user-settings/contrib/:plugin\"\n };\n\n init = function($log, $navurls) {\n $log.debug(\"Initialize navigation urls\");\n return $navurls.update(urls);\n };\n\n module.run([\"$log\", \"$tgNavUrls\", init]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common.coffee\n */\n\n(function() {\n var AnimationFrame, Autofocus, Capslock, CheckPermissionDirective, ClassPermissionDirective, DataPickerConfig, LightboxClose, ProjectUrl, Qqueue, QueueModelTransformation, SelectedText, Svg, Template, ToggleCommentDirective, module, taiga,\n slice = [].slice,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\", []);\n\n DataPickerConfig = function($translate) {\n return {\n get: function() {\n return {\n i18n: {\n previousMonth: $translate.instant(\"COMMON.PICKERDATE.PREV_MONTH\"),\n nextMonth: $translate.instant(\"COMMON.PICKERDATE.NEXT_MONTH\"),\n months: [$translate.instant(\"COMMON.PICKERDATE.MONTHS.JAN\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.FEB\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.MAR\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.APR\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.MAY\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.JUN\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.JUL\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.AUG\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.SEP\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.OCT\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.NOV\"), $translate.instant(\"COMMON.PICKERDATE.MONTHS.DEC\")],\n weekdays: [$translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS.SUN\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS.MON\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS.TUE\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS.WED\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS.THU\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS.FRI\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS.SAT\")],\n weekdaysShort: [$translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS_SHORT.SUN\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS_SHORT.MON\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS_SHORT.TUE\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS_SHORT.WED\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS_SHORT.THU\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS_SHORT.FRI\"), $translate.instant(\"COMMON.PICKERDATE.WEEK_DAYS_SHORT.SAT\")]\n },\n isRTL: $translate.instant(\"COMMON.PICKERDATE.IS_RTL\") === \"true\",\n firstDay: parseInt($translate.instant(\"COMMON.PICKERDATE.FIRST_DAY_OF_WEEK\"), 10),\n format: $translate.instant(\"COMMON.PICKERDATE.FORMAT\")\n };\n }\n };\n };\n\n module.factory(\"tgDatePickerConfigService\", [\"$translate\", DataPickerConfig]);\n\n SelectedText = function($window, $document) {\n var get;\n get = function() {\n if ($window.getSelection) {\n return $window.getSelection().toString();\n } else if ($document.selection) {\n return $document.selection.createRange().text;\n }\n return \"\";\n };\n return {\n get: get\n };\n };\n\n module.factory(\"$selectedText\", [\"$window\", \"$document\", SelectedText]);\n\n CheckPermissionDirective = function(projectService) {\n var link, render;\n render = function($el, project, permission) {\n if (project && permission) {\n if (project.get('my_permissions').indexOf(permission) > -1) {\n return $el.removeClass('hidden');\n }\n }\n };\n link = function($scope, $el, $attrs) {\n var permission, unObserve, unwatch;\n $el.addClass('hidden');\n permission = $attrs.tgCheckPermission;\n unwatch = $scope.$watch(function() {\n return projectService.project;\n }, function() {\n if (!projectService.project) {\n return;\n }\n render($el, projectService.project, permission);\n return unwatch();\n });\n unObserve = $attrs.$observe(\"tgCheckPermission\", function(permission) {\n if (!permission) {\n return;\n }\n render($el, projectService.project, permission);\n return unObserve();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n CheckPermissionDirective.$inject = [\"tgProjectService\"];\n\n module.directive(\"tgCheckPermission\", CheckPermissionDirective);\n\n ClassPermissionDirective = function() {\n var link, name;\n name = \"tgClassPermission\";\n link = function($scope, $el, $attrs) {\n var checkPermissions, tgClassPermissionWatchAction, unbindWatcher;\n checkPermissions = function(project, className, permission) {\n var negation;\n negation = permission[0] === \"!\";\n if (negation) {\n permission = permission.slice(1);\n }\n if (negation && project.my_permissions.indexOf(permission) === -1) {\n return $el.addClass(className);\n } else if (!negation && project.my_permissions.indexOf(permission) !== -1) {\n return $el.addClass(className);\n } else {\n return $el.removeClass(className);\n }\n };\n tgClassPermissionWatchAction = function(project) {\n var className, classes, permission, results;\n if (project) {\n unbindWatcher();\n classes = $scope.$eval($attrs[name]);\n results = [];\n for (className in classes) {\n permission = classes[className];\n results.push(checkPermissions(project, className, permission));\n }\n return results;\n }\n };\n return unbindWatcher = $scope.$watch(\"project\", tgClassPermissionWatchAction);\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgClassPermission\", ClassPermissionDirective);\n\n AnimationFrame = function() {\n var add, animationFrame, performAnimation, tail;\n animationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n performAnimation = (function(_this) {\n return function(time) {\n var fn;\n fn = tail.shift();\n fn();\n if (tail.length) {\n return animationFrame(performAnimation);\n }\n };\n })(this);\n tail = [];\n add = function() {\n var fn, i, len, results;\n results = [];\n for (i = 0, len = arguments.length; i < len; i++) {\n fn = arguments[i];\n tail.push(fn);\n if (tail.length === 1) {\n results.push(animationFrame(performAnimation));\n } else {\n results.push(void 0);\n }\n }\n return results;\n };\n return {\n add: add\n };\n };\n\n module.factory(\"animationFrame\", AnimationFrame);\n\n ToggleCommentDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return $el.find(\"textarea\").on(\"focus\", function() {\n return $el.addClass(\"active\");\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgToggleComment\", ToggleCommentDirective);\n\n ProjectUrl = function($navurls) {\n var get;\n get = function(project) {\n var ctx;\n if (project.toJS) {\n project = project.toJS();\n }\n ctx = {\n project: project.slug\n };\n if (project.is_backlog_activated && project.my_permissions.indexOf(\"view_us\") > -1) {\n return $navurls.resolve(\"project-backlog\", ctx);\n }\n if (project.is_kanban_activated && project.my_permissions.indexOf(\"view_us\") > -1) {\n return $navurls.resolve(\"project-kanban\", ctx);\n }\n if (project.is_wiki_activated && project.my_permissions.indexOf(\"view_wiki_pages\") > -1) {\n return $navurls.resolve(\"project-wiki\", ctx);\n }\n if (project.is_issues_activated && project.my_permissions.indexOf(\"view_issues\") > -1) {\n return $navurls.resolve(\"project-issues\", ctx);\n }\n return $navurls.resolve(\"project\", ctx);\n };\n return {\n get: get\n };\n };\n\n module.factory(\"$projectUrl\", [\"$tgNavUrls\", ProjectUrl]);\n\n Qqueue = function($q) {\n var deferred, lastPromise, qqueue;\n deferred = $q.defer();\n deferred.resolve();\n lastPromise = deferred.promise;\n qqueue = {\n bindAdd: (function(_this) {\n return function(fn) {\n return function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return lastPromise = lastPromise.then(function() {\n return fn.apply(_this, args);\n });\n };\n return qqueue;\n };\n })(this),\n add: (function(_this) {\n return function(fn) {\n if (!lastPromise) {\n lastPromise = fn();\n } else {\n lastPromise = lastPromise.then(fn);\n }\n return qqueue;\n };\n })(this)\n };\n return qqueue;\n };\n\n module.factory(\"$tgQqueue\", [\"$q\", Qqueue]);\n\n QueueModelTransformation = (function(superClass) {\n extend(QueueModelTransformation, superClass);\n\n QueueModelTransformation.$inject = [\"$tgQqueue\", \"$tgRepo\", \"$q\", \"$tgModel\"];\n\n function QueueModelTransformation(qqueue1, repo, q, model1) {\n this.qqueue = qqueue1;\n this.repo = repo;\n this.q = q;\n this.model = model1;\n }\n\n QueueModelTransformation.prototype.setObject = function(scope1, prop) {\n this.scope = scope1;\n this.prop = prop;\n };\n\n QueueModelTransformation.prototype.clone = function() {\n var attrs, model;\n attrs = _.cloneDeep(this.scope[this.prop]._attrs);\n model = this.model.make_model(this.scope[this.prop]._name, attrs);\n return model;\n };\n\n QueueModelTransformation.prototype.getObj = function() {\n return this.scope[this.prop];\n };\n\n QueueModelTransformation.prototype.save = function(transformation) {\n var defered;\n defered = this.q.defer();\n this.qqueue.add((function(_this) {\n return function() {\n var clone, comment, modified, obj, success;\n obj = _this.getObj();\n comment = obj.comment;\n obj.comment = '';\n clone = _this.clone();\n modified = _.omit(obj._modifiedAttrs, ['version']);\n clone = _.assign(clone, modified);\n transformation(clone);\n if (comment.length) {\n clone.comment = comment;\n }\n success = function() {\n _this.scope[_this.prop] = clone;\n return defered.resolve.apply(null, arguments);\n };\n return _this.repo.save(clone).then(success, defered.reject);\n };\n })(this));\n return defered.promise;\n };\n\n return QueueModelTransformation;\n\n })(taiga.Service);\n\n module.service(\"$tgQueueModelTransformation\", QueueModelTransformation);\n\n Template = function($templateCache) {\n return {\n get: (function(_this) {\n return function(name, lodash) {\n var tmp;\n if (lodash == null) {\n lodash = false;\n }\n tmp = $templateCache.get(name);\n if (lodash) {\n tmp = _.template(tmp);\n }\n return tmp;\n };\n })(this)\n };\n };\n\n module.factory(\"$tgTemplate\", [\"$templateCache\", Template]);\n\n Capslock = function() {\n var template;\n template = \"\";\n return {\n template: template\n };\n };\n\n module.directive(\"tgCapslock\", [Capslock]);\n\n LightboxClose = function() {\n var link, template;\n template = \"\\n \\n\";\n link = function(scope, elm, attrs) {};\n return {\n scope: {\n onClose: '&'\n },\n link: link,\n template: template\n };\n };\n\n module.directive(\"tgLightboxClose\", [LightboxClose]);\n\n Svg = function() {\n var template;\n template = \"\\n \\n {{svgTitle}}\\n {{svgTitleTranslate | translate: svgTitleTranslateValues}}\\n \\n\";\n return {\n scope: {\n svgIcon: \"@\",\n svgTitle: \"@\",\n svgTitleTranslate: \"@\",\n svgTitleTranslateValues: \"=\"\n },\n template: template\n };\n };\n\n module.directive(\"tgSvg\", [Svg]);\n\n Autofocus = function($timeout, $parse, animationFrame) {\n return {\n restrict: 'A',\n link: function($scope, $element, attrs) {\n var model;\n if (attrs.ngShow) {\n model = $parse(attrs.ngShow);\n return $scope.$watch(model, function(value) {\n if (value === true) {\n return $timeout(function() {\n return $element[0].focus();\n });\n }\n });\n } else {\n return $timeout(function() {\n return $element[0].focus();\n });\n }\n }\n };\n };\n\n module.directive('tgAutofocus', ['$timeout', '$parse', \"animationFrame\", Autofocus]);\n\n module.directive('tgPreloadImage', function() {\n var preload, spinner, template;\n spinner = \"\";\n template = \"\\n \\n\";\n preload = function(src, onLoad) {\n var image;\n image = new Image();\n image.onload = onLoad;\n image.src = src;\n return image;\n };\n return {\n template: template,\n transclude: true,\n replace: true,\n link: function(scope, el, attrs) {\n var image, onLoad, timeout;\n image = el.find('img:last');\n timeout = null;\n onLoad = function() {\n el.find('.loading-spinner').remove();\n image.show();\n if (timeout) {\n clearTimeout(timeout);\n return timeout = null;\n }\n };\n return attrs.$observe('preloadSrc', function(src) {\n if (timeout) {\n clearTimeout(timeout);\n }\n el.find('.loading-spinner').remove();\n timeout = setTimeout(function() {\n return el.prepend(spinner);\n }, 200);\n image.hide();\n return preload(src, onLoad);\n });\n }\n };\n });\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/epics.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaEpics\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/events.coffee\n */\n\n(function() {\n var EventsProvider, EventsService, bindMethods, module, startswith, taiga,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n startswith = this.taiga.startswith;\n\n bindMethods = this.taiga.bindMethods;\n\n module = angular.module(\"taigaEvents\", []);\n\n EventsService = (function() {\n function EventsService(win, log, config, auth, liveAnnouncementService1, rootScope) {\n this.win = win;\n this.log = log;\n this.config = config;\n this.auth = auth;\n this.liveAnnouncementService = liveAnnouncementService1;\n this.rootScope = rootScope;\n this.processMessage = bind(this.processMessage, this);\n bindMethods(this);\n }\n\n EventsService.prototype.initialize = function(sessionId) {\n this.sessionId = sessionId;\n this.subscriptions = {};\n this.connected = false;\n this.error = false;\n this.pendingMessages = [];\n this.missedHeartbeats = 0;\n this.heartbeatInterval = null;\n if (this.win.WebSocket === void 0) {\n return this.log.info(\"WebSockets not supported on your browser\");\n }\n };\n\n EventsService.prototype.setupConnection = function() {\n var loc, path, scheme, url;\n this.stopExistingConnection();\n url = this.config.get(\"eventsUrl\");\n if (!url) {\n return;\n }\n if (!startswith(url, \"ws:\") && !startswith(url, \"wss:\")) {\n loc = this.win.location;\n scheme = loc.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n path = _.trimStart(url, \"/\");\n url = scheme + \"//\" + loc.host + \"/\" + path;\n }\n this.ws = new this.win.WebSocket(url);\n this.ws.addEventListener(\"open\", this.onOpen);\n this.ws.addEventListener(\"message\", this.onMessage);\n this.ws.addEventListener(\"error\", this.onError);\n return this.ws.addEventListener(\"close\", this.onClose);\n };\n\n EventsService.prototype.stopExistingConnection = function() {\n if (this.ws === void 0) {\n return;\n }\n this.ws.removeEventListener(\"open\", this.onOpen);\n this.ws.removeEventListener(\"close\", this.onClose);\n this.ws.removeEventListener(\"error\", this.onError);\n this.ws.removeEventListener(\"message\", this.onMessage);\n this.stopHeartBeatMessages();\n this.ws.close();\n return delete this.ws;\n };\n\n EventsService.prototype.notifications = function() {\n return this.subscribe(null, 'notifications', (function(_this) {\n return function(data) {\n _this.liveAnnouncementService.show(data.title, data.desc);\n return _this.rootScope.$digest();\n };\n })(this));\n };\n\n EventsService.prototype.startHeartBeatMessages = function() {\n var heartbeatIntervalTime, maxMissedHeartbeats, reconnectTryInterval;\n if (this.heartbeatInterval) {\n return;\n }\n maxMissedHeartbeats = this.config.get(\"eventsMaxMissedHeartbeats\", 5);\n heartbeatIntervalTime = this.config.get(\"eventsHeartbeatIntervalTime\", 60000);\n reconnectTryInterval = this.config.get(\"eventsReconnectTryInterval\", 10000);\n this.missedHeartbeats = 0;\n this.heartbeatInterval = setInterval((function(_this) {\n return function() {\n var e;\n try {\n if (_this.missedHeartbeats >= maxMissedHeartbeats) {\n throw new Error(\"Too many missed heartbeats PINGs.\");\n }\n _this.missedHeartbeats++;\n _this.sendMessage({\n cmd: \"ping\"\n });\n return _this.log.debug(\"HeartBeat send PING\");\n } catch (error1) {\n e = error1;\n _this.log.error(\"HeartBeat error: \" + e.message);\n return _this.setupConnection();\n }\n };\n })(this), heartbeatIntervalTime);\n return this.log.debug(\"HeartBeat enabled\");\n };\n\n EventsService.prototype.stopHeartBeatMessages = function() {\n if (!this.heartbeatInterval) {\n return;\n }\n clearInterval(this.heartbeatInterval);\n this.heartbeatInterval = null;\n return this.log.debug(\"HeartBeat disabled\");\n };\n\n EventsService.prototype.processHeartBeatPongMessage = function(data) {\n this.missedHeartbeats = 0;\n return this.log.debug(\"HeartBeat recived PONG\");\n };\n\n EventsService.prototype.serialize = function(message) {\n if (_.isObject(message)) {\n return JSON.stringify(message);\n }\n return message;\n };\n\n EventsService.prototype.sendMessage = function(message) {\n var i, len, messages, msg, results;\n this.pendingMessages.push(message);\n if (!this.connected) {\n return;\n }\n messages = _.map(this.pendingMessages, this.serialize);\n this.pendingMessages = [];\n results = [];\n for (i = 0, len = messages.length; i < len; i++) {\n msg = messages[i];\n results.push(this.ws.send(msg));\n }\n return results;\n };\n\n EventsService.prototype.processMessage = function(data) {\n var routingKey, subscription;\n routingKey = data.routing_key;\n if (this.subscriptions[routingKey] == null) {\n return;\n }\n subscription = this.subscriptions[routingKey];\n if (subscription.scope) {\n return subscription.scope.$apply(function() {\n return subscription.callback(data.data);\n });\n } else {\n return subscription.callback(data.data);\n }\n };\n\n EventsService.prototype.subscribe = function(scope, routingKey, callback) {\n var message, subscription;\n if (this.error) {\n return;\n }\n this.log.debug(\"Subscribe to: \" + routingKey);\n subscription = {\n scope: scope,\n routingKey: routingKey,\n callback: _.debounce(callback, 500, {\n \"leading\": true,\n \"trailing\": false\n })\n };\n message = {\n \"cmd\": \"subscribe\",\n \"routing_key\": routingKey\n };\n this.subscriptions[routingKey] = subscription;\n this.sendMessage(message);\n if (scope) {\n return scope.$on(\"$destroy\", (function(_this) {\n return function() {\n return _this.unsubscribe(routingKey);\n };\n })(this));\n }\n };\n\n EventsService.prototype.unsubscribe = function(routingKey) {\n var message;\n if (this.error) {\n return;\n }\n this.log.debug(\"Unsubscribe from: \" + routingKey);\n message = {\n \"cmd\": \"unsubscribe\",\n \"routing_key\": routingKey\n };\n return this.sendMessage(message);\n };\n\n EventsService.prototype.onOpen = function() {\n var message, token;\n this.connected = true;\n this.startHeartBeatMessages();\n this.log.debug(\"WebSocket connection opened\");\n token = this.auth.getToken();\n message = {\n cmd: \"auth\",\n data: {\n token: token,\n sessionId: this.sessionId\n }\n };\n this.sendMessage(message);\n return this.notifications();\n };\n\n EventsService.prototype.onMessage = function(event) {\n var data;\n this.log.debug(\"WebSocket message received: \" + event.data);\n data = JSON.parse(event.data);\n if (data.cmd === \"pong\") {\n return this.processHeartBeatPongMessage(data);\n } else {\n return this.processMessage(data);\n }\n };\n\n EventsService.prototype.onError = function(error) {\n this.log.error(\"WebSocket error: \" + error);\n this.error = true;\n return setTimeout(this.setupConnection, this.reconnectTryInterval);\n };\n\n EventsService.prototype.onClose = function() {\n this.log.debug(\"WebSocket closed.\");\n this.connected = false;\n this.stopHeartBeatMessages();\n return setTimeout(this.setupConnection, this.reconnectTryInterval);\n };\n\n return EventsService;\n\n })();\n\n EventsProvider = (function() {\n function EventsProvider() {}\n\n EventsProvider.prototype.setSessionId = function(sessionId) {\n return this.sessionId = sessionId;\n };\n\n EventsProvider.prototype.$get = function($win, $log, $conf, $auth, liveAnnouncementService, $rootScope) {\n var service;\n service = new EventsService($win, $log, $conf, $auth, liveAnnouncementService, $rootScope);\n service.initialize(this.sessionId);\n return service;\n };\n\n EventsProvider.prototype.$get.$inject = [\"$window\", \"$log\", \"$tgConfig\", \"$tgAuth\", \"tgLiveAnnouncementService\", \"$rootScope\"];\n\n return EventsProvider;\n\n })();\n\n module.provider(\"$tgEvents\", EventsProvider);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/feedback.coffee\n */\n\n(function() {\n var FeedbackDirective, bindOnce, debounce, groupBy, mixOf, module, taiga, trim;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n mixOf = this.taiga.mixOf;\n\n debounce = this.taiga.debounce;\n\n trim = this.taiga.trim;\n\n module = angular.module(\"taigaFeedback\", []);\n\n FeedbackDirective = function($lightboxService, $repo, $confirm, $loading, feedbackService) {\n var directive, link;\n link = function($scope, $el, $attrs) {\n var form, openLightbox, submit, submitButton;\n form = $el.find(\"form\").checksley();\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var currentLoading, promise;\n event.preventDefault();\n if (!form.validate()) {\n return;\n }\n currentLoading = $loading().target(submitButton).start();\n promise = $repo.create(\"feedback\", $scope.feedback);\n promise.then(function(data) {\n currentLoading.finish();\n $lightboxService.close($el);\n return $confirm.notify(\"success\", \"\\\\o/ we'll be happy to read your\");\n });\n return promise.then(null, function() {\n currentLoading.finish();\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n openLightbox = function() {\n $scope.feedback = {};\n $lightboxService.open($el);\n return $el.find(\"textarea\").focus();\n };\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n return openLightbox();\n };\n directive = {\n link: link,\n templateUrl: \"common/lightbox-feedback.html\",\n scope: {}\n };\n return directive;\n };\n\n module.directive(\"tgLbFeedback\", [\"lightboxService\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"tgFeedbackService\", FeedbackDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/integrations.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaIntegrations\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/issues.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaIssues\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/kanban.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaKanban\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/backlog.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaPlugins\", [\"ngRoute\"]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/projects.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaProject\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/related-tasks.coffee\n */\n\n(function() {\n var RelatedTaskAssignedToInlineEditionDirective, RelatedTaskCreateButtonDirective, RelatedTaskCreateFormDirective, RelatedTaskRowDirective, RelatedTasksDirective, debounce, module, taiga, trim;\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaRelatedTasks\", []);\n\n RelatedTaskRowDirective = function($repo, $compile, $confirm, $rootscope, $loading, $template, $translate) {\n var link, templateEdit, templateView;\n templateView = $template.get(\"task/related-task-row.html\", true);\n templateEdit = $template.get(\"task/related-task-row-edit.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var renderEdit, renderView, saveTask;\n this.childScope = $scope.$new();\n saveTask = debounce(2000, function(task) {\n var currentLoading, promise;\n task.subject = $el.find('input').val();\n currentLoading = $loading().target($el.find('.task-name')).start();\n promise = $repo.save(task);\n promise.then((function(_this) {\n return function() {\n currentLoading.finish();\n return $rootscope.$broadcast(\"related-tasks:update\");\n };\n })(this));\n promise.then(null, (function(_this) {\n return function() {\n currentLoading.finish();\n $el.find('input').val(task.subject);\n return $confirm.notify(\"error\");\n };\n })(this));\n return promise;\n });\n renderEdit = function(task) {\n this.childScope.$destroy();\n this.childScope = $scope.$new();\n $el.off();\n $el.html($compile(templateEdit({\n task: task\n }))(childScope));\n $el.find(\".task-name input\").val(task.subject);\n $el.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return saveTask($model.$modelValue).then(function() {\n return renderView($model.$modelValue);\n });\n } else if (event.keyCode === 27) {\n return renderView($model.$modelValue);\n }\n });\n $el.on(\"click\", \".save-task\", function(event) {\n return saveTask($model.$modelValue).then(function() {\n return renderView($model.$modelValue);\n });\n });\n return $el.on(\"click\", \".cancel-edit\", function(event) {\n return renderView($model.$modelValue);\n });\n };\n renderView = function(task) {\n var perms;\n perms = {\n modify_task: $scope.project.my_permissions.indexOf(\"modify_task\") !== -1,\n delete_task: $scope.project.my_permissions.indexOf(\"delete_task\") !== -1\n };\n $el.html($compile(templateView({\n task: task,\n perms: perms\n }))($scope));\n $el.on(\"click\", \".edit-task\", function() {\n renderEdit($model.$modelValue);\n return $el.find('input').focus().select();\n });\n return $el.on(\"click\", \".delete-task\", function(event) {\n var message, title;\n title = $translate.instant(\"TASK.TITLE_DELETE_ACTION\");\n task = $model.$modelValue;\n message = task.subject;\n return $confirm.askOnDelete(title, message).then(function(askResponse) {\n var promise;\n promise = $repo.remove(task);\n promise.then(function() {\n askResponse.finish();\n return $scope.$emit(\"related-tasks:delete\");\n });\n return promise.then(null, function() {\n askResponse.finish(false);\n return $confirm.notify(\"error\");\n });\n });\n });\n };\n $scope.$watch($attrs.ngModel, function(val) {\n if (!val) {\n return;\n }\n return renderView(val);\n });\n $scope.$on(\"related-tasks:assigned-to-changed\", function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n $scope.$on(\"related-tasks:status-changed\", function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgRelatedTaskRow\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$rootScope\", \"$tgLoading\", \"$tgTemplate\", \"$translate\", RelatedTaskRowDirective]);\n\n RelatedTaskCreateFormDirective = function($repo, $compile, $confirm, $tgmodel, $loading, $analytics) {\n var link, newTask;\n newTask = {\n subject: \"\",\n assigned_to: null\n };\n link = function($scope, $el, $attrs) {\n var close, createTask, render, reset;\n createTask = function(task) {\n var currentLoading, promise;\n task.subject = $el.find('input').val();\n task.assigned_to = $scope.newTask.assigned_to;\n task.status = $scope.newTask.status;\n $scope.newTask.status = $scope.project.default_task_status;\n $scope.newTask.assigned_to = null;\n currentLoading = $loading().target($el.find('.task-name')).start();\n promise = $repo.create(\"tasks\", task);\n promise.then(function() {\n $analytics.trackEvent(\"task\", \"create\", \"create task on userstory\", 1);\n currentLoading.finish();\n return $scope.$emit(\"related-tasks:add\");\n });\n promise.then(null, function() {\n $el.find('input').val(task.subject);\n currentLoading.finish();\n return $confirm.notify(\"error\");\n });\n return promise;\n };\n close = function() {\n $el.off();\n return $scope.openNewRelatedTask = false;\n };\n reset = function() {\n newTask = {\n subject: \"\",\n assigned_to: null\n };\n newTask[\"status\"] = $scope.project.default_task_status;\n newTask[\"project\"] = $scope.project.id;\n newTask[\"user_story\"] = $scope.us.id;\n return $scope.newTask = $tgmodel.make_model(\"tasks\", newTask);\n };\n render = function() {\n if ($scope.openNewRelatedTask) {\n return;\n }\n $scope.openNewRelatedTask = true;\n return $el.on(\"keyup\", \"input\", function(event) {\n if (event.keyCode === 13) {\n return createTask(newTask).then(function() {\n reset();\n return $el.find('input').focus();\n });\n } else if (event.keyCode === 27) {\n return $scope.$apply(function() {\n return close();\n });\n }\n });\n };\n $scope.save = function() {\n return createTask(newTask).then(function() {\n return close();\n });\n };\n taiga.bindOnce($scope, \"us\", reset);\n $scope.$on(\"related-tasks:show-form\", function() {\n return $scope.$apply(render);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n scope: true,\n link: link,\n templateUrl: 'task/related-task-create-form.html'\n };\n };\n\n module.directive(\"tgRelatedTaskCreateForm\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$tgModel\", \"$tgLoading\", \"$tgAnalytics\", RelatedTaskCreateFormDirective]);\n\n RelatedTaskCreateButtonDirective = function($repo, $compile, $confirm, $tgmodel, $template) {\n var link, template;\n template = $template.get(\"common/components/add-button.html\", true);\n link = function($scope, $el, $attrs) {\n $scope.$watch(\"project\", function(val) {\n if (!val) {\n return;\n }\n $el.off();\n if ($scope.project.my_permissions.indexOf(\"add_task\") !== -1) {\n $el.html($compile(template())($scope));\n } else {\n $el.html(\"\");\n }\n return $el.on(\"click\", \".add-button\", function(event) {\n return $scope.$emit(\"related-tasks:add-new-clicked\");\n });\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskCreateButton\", [\"$tgRepo\", \"$compile\", \"$tgConfirm\", \"$tgModel\", \"$tgTemplate\", RelatedTaskCreateButtonDirective]);\n\n RelatedTasksDirective = function($repo, $rs, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n var _isEditable, _isVisible, loadTasks;\n loadTasks = function() {\n return $rs.tasks.list($scope.projectId, null, $scope.usId).then((function(_this) {\n return function(tasks) {\n $scope.tasks = _.sortBy(tasks, function(x) {\n return [x.us_order, x.ref];\n });\n return tasks;\n };\n })(this));\n };\n _isVisible = function() {\n if ($scope.project) {\n return $scope.project.my_permissions.indexOf(\"view_tasks\") !== -1;\n }\n return false;\n };\n _isEditable = function() {\n if ($scope.project) {\n return $scope.project.my_permissions.indexOf(\"modify_task\") !== -1;\n }\n return false;\n };\n $scope.showRelatedTasks = function() {\n var ref;\n return _isVisible() && (_isEditable() || ((ref = $scope.tasks) != null ? ref.length : void 0));\n };\n $scope.$on(\"related-tasks:add\", function() {\n return loadTasks().then(function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n });\n $scope.$on(\"related-tasks:delete\", function() {\n return loadTasks().then(function() {\n return $rootscope.$broadcast(\"related-tasks:update\");\n });\n });\n $scope.$on(\"related-tasks:add-new-clicked\", function() {\n return $scope.$broadcast(\"related-tasks:show-form\");\n });\n taiga.bindOnce($scope, \"us\", function(val) {\n return loadTasks();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTasks\", [\"$tgRepo\", \"$tgResources\", \"$rootScope\", RelatedTasksDirective]);\n\n RelatedTaskAssignedToInlineEditionDirective = function($repo, $rootscope, $translate, avatarService) {\n var link, template;\n template = _.template(\"\\\" src=\\\"<%- imgurl %>\\\" alt=\\\"<%- name %>\\\"/>\\n<%- name %>\");\n link = function($scope, $el, $attrs) {\n var $ctrl, autoSave, notAutoSave, task, updateRelatedTask;\n updateRelatedTask = function(task) {\n var avatar, ctx, member;\n ctx = {\n name: $translate.instant(\"COMMON.ASSIGNED_TO.NOT_ASSIGNED\")\n };\n member = $scope.usersById[task.assigned_to];\n avatar = avatarService.getAvatar(member);\n ctx.imgurl = avatar.url;\n ctx.bg = avatar.bg;\n if (member) {\n ctx.name = member.full_name_display;\n }\n $el.find(\".avatar\").html(template(ctx));\n return $el.find(\".task-assignedto\").attr('title', ctx.name);\n };\n $ctrl = $el.controller();\n task = $scope.$eval($attrs.tgRelatedTaskAssignedToInlineEdition);\n notAutoSave = $scope.$eval($attrs.notAutoSave);\n autoSave = !notAutoSave;\n $scope.$watch($attrs.tgRelatedTaskAssignedToInlineEdition, function() {\n task = $scope.$eval($attrs.tgRelatedTaskAssignedToInlineEdition);\n return updateRelatedTask(task);\n });\n updateRelatedTask(task);\n $el.on(\"click\", \".task-assignedto\", function(event) {\n return $rootscope.$broadcast(\"assigned-to:add\", task);\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n if (project.my_permissions.indexOf(\"modify_task\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n $scope.$on(\"assigned-to:added\", debounce(2000, (function(_this) {\n return function(ctx, userId, updatedRelatedTask) {\n if (updatedRelatedTask.id === task.id) {\n updatedRelatedTask.assigned_to = userId;\n if (autoSave) {\n $repo.save(updatedRelatedTask).then(function() {\n return $scope.$emit(\"related-tasks:assigned-to-changed\");\n });\n }\n return updateRelatedTask(updatedRelatedTask);\n }\n };\n })(this)));\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskAssignedToInlineEdition\", [\"$tgRepo\", \"$rootScope\", \"$translate\", \"tgAvatarService\", RelatedTaskAssignedToInlineEditionDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/resources.coffee\n */\n\n(function() {\n var ResourcesService, initResources, initUrls, module, taiga, urls,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n ResourcesService = (function(superClass) {\n extend(ResourcesService, superClass);\n\n function ResourcesService() {\n return ResourcesService.__super__.constructor.apply(this, arguments);\n }\n\n return ResourcesService;\n\n })(taiga.Service);\n\n urls = {\n \"auth\": \"/auth\",\n \"auth-register\": \"/auth/register\",\n \"invitations\": \"/invitations\",\n \"users\": \"/users\",\n \"by_username\": \"/users/by_username\",\n \"users-password-recovery\": \"/users/password_recovery\",\n \"users-change-password-from-recovery\": \"/users/change_password_from_recovery\",\n \"users-change-password\": \"/users/change_password\",\n \"users-change-email\": \"/users/change_email\",\n \"users-cancel-account\": \"/users/cancel\",\n \"user-stats\": \"/users/%s/stats\",\n \"user-liked\": \"/users/%s/liked\",\n \"user-voted\": \"/users/%s/voted\",\n \"user-watched\": \"/users/%s/watched\",\n \"user-contacts\": \"/users/%s/contacts\",\n \"user-me\": \"/users/me\",\n \"permissions\": \"/permissions\",\n \"notify-policies\": \"/notify-policies\",\n \"user-storage\": \"/user-storage\",\n \"memberships\": \"/memberships\",\n \"bulk-create-memberships\": \"/memberships/bulk_create\",\n \"roles\": \"/roles\",\n \"permissions\": \"/permissions\",\n \"resolver\": \"/resolver\",\n \"projects\": \"/projects\",\n \"project-templates\": \"/project-templates\",\n \"project-modules\": \"/projects/%s/modules\",\n \"bulk-update-projects-order\": \"/projects/bulk_update_order\",\n \"project-like\": \"/projects/%s/like\",\n \"project-unlike\": \"/projects/%s/unlike\",\n \"project-watch\": \"/projects/%s/watch\",\n \"project-unwatch\": \"/projects/%s/unwatch\",\n \"project-contact\": \"contact\",\n \"project-transfer-validate-token\": \"/projects/%s/transfer_validate_token\",\n \"project-transfer-accept\": \"/projects/%s/transfer_accept\",\n \"project-transfer-reject\": \"/projects/%s/transfer_reject\",\n \"project-transfer-request\": \"/projects/%s/transfer_request\",\n \"project-transfer-start\": \"/projects/%s/transfer_start\",\n \"epic-statuses\": \"/epic-statuses\",\n \"userstory-statuses\": \"/userstory-statuses\",\n \"points\": \"/points\",\n \"task-statuses\": \"/task-statuses\",\n \"issue-statuses\": \"/issue-statuses\",\n \"issue-types\": \"/issue-types\",\n \"priorities\": \"/priorities\",\n \"severities\": \"/severities\",\n \"milestones\": \"/milestones\",\n \"epics\": \"/epics\",\n \"epic-upvote\": \"/epics/%s/upvote\",\n \"epic-downvote\": \"/epics/%s/downvote\",\n \"epic-watch\": \"/epics/%s/watch\",\n \"epic-unwatch\": \"/epics/%s/unwatch\",\n \"epic-related-userstories\": \"/epics/%s/related_userstories\",\n \"epic-related-userstories-bulk-create\": \"/epics/%s/related_userstories/bulk_create\",\n \"userstories\": \"/userstories\",\n \"bulk-create-us\": \"/userstories/bulk_create\",\n \"bulk-update-us-backlog-order\": \"/userstories/bulk_update_backlog_order\",\n \"bulk-update-us-milestone\": \"/userstories/bulk_update_milestone\",\n \"bulk-update-us-miles-order\": \"/userstories/bulk_update_sprint_order\",\n \"bulk-update-us-kanban-order\": \"/userstories/bulk_update_kanban_order\",\n \"bulk-update-us-milestone\": \"/userstories/bulk_update_milestone\",\n \"userstories-filters\": \"/userstories/filters_data\",\n \"userstory-upvote\": \"/userstories/%s/upvote\",\n \"userstory-downvote\": \"/userstories/%s/downvote\",\n \"userstory-watch\": \"/userstories/%s/watch\",\n \"userstory-unwatch\": \"/userstories/%s/unwatch\",\n \"tasks\": \"/tasks\",\n \"bulk-create-tasks\": \"/tasks/bulk_create\",\n \"bulk-update-task-taskboard-order\": \"/tasks/bulk_update_taskboard_order\",\n \"task-upvote\": \"/tasks/%s/upvote\",\n \"task-downvote\": \"/tasks/%s/downvote\",\n \"task-watch\": \"/tasks/%s/watch\",\n \"task-unwatch\": \"/tasks/%s/unwatch\",\n \"task-filters\": \"/tasks/filters_data\",\n \"issues\": \"/issues\",\n \"bulk-create-issues\": \"/issues/bulk_create\",\n \"issues-filters\": \"/issues/filters_data\",\n \"issue-upvote\": \"/issues/%s/upvote\",\n \"issue-downvote\": \"/issues/%s/downvote\",\n \"issue-watch\": \"/issues/%s/watch\",\n \"issue-unwatch\": \"/issues/%s/unwatch\",\n \"wiki\": \"/wiki\",\n \"wiki-restore\": \"/wiki/%s/restore\",\n \"wiki-links\": \"/wiki-links\",\n \"history/epic\": \"/history/epic\",\n \"history/us\": \"/history/userstory\",\n \"history/issue\": \"/history/issue\",\n \"history/task\": \"/history/task\",\n \"history/wiki\": \"/history/wiki/%s\",\n \"attachments/epic\": \"/epics/attachments\",\n \"attachments/us\": \"/userstories/attachments\",\n \"attachments/issue\": \"/issues/attachments\",\n \"attachments/task\": \"/tasks/attachments\",\n \"attachments/wiki_page\": \"/wiki/attachments\",\n \"custom-attributes/epic\": \"/epic-custom-attributes\",\n \"custom-attributes/userstory\": \"/userstory-custom-attributes\",\n \"custom-attributes/task\": \"/task-custom-attributes\",\n \"custom-attributes/issue\": \"/issue-custom-attributes\",\n \"custom-attributes-values/epic\": \"/epics/custom-attributes-values\",\n \"custom-attributes-values/userstory\": \"/userstories/custom-attributes-values\",\n \"custom-attributes-values/task\": \"/tasks/custom-attributes-values\",\n \"custom-attributes-values/issue\": \"/issues/custom-attributes-values\",\n \"webhooks\": \"/webhooks\",\n \"webhooks-test\": \"/webhooks/%s/test\",\n \"webhooklogs\": \"/webhooklogs\",\n \"webhooklogs-resend\": \"/webhooklogs/%s/resend\",\n \"epics-csv\": \"/epics/csv?uuid=%s\",\n \"userstories-csv\": \"/userstories/csv?uuid=%s\",\n \"tasks-csv\": \"/tasks/csv?uuid=%s\",\n \"issues-csv\": \"/issues/csv?uuid=%s\",\n \"timeline-profile\": \"/timeline/profile\",\n \"timeline-user\": \"/timeline/user\",\n \"timeline-project\": \"/timeline/project\",\n \"search\": \"/search\",\n \"exporter\": \"/exporter\",\n \"importer\": \"/importer/load_dump\",\n \"feedback\": \"/feedback\",\n \"locales\": \"/locales\",\n \"applications\": \"/applications\",\n \"application-tokens\": \"/application-tokens\",\n \"stats-discover\": \"/stats/discover\",\n \"importers-trello-auth-url\": \"/importers/trello/auth_url\",\n \"importers-trello-authorize\": \"/importers/trello/authorize\",\n \"importers-trello-list-projects\": \"/importers/trello/list_projects\",\n \"importers-trello-list-users\": \"/importers/trello/list_users\",\n \"importers-trello-import-project\": \"/importers/trello/import_project\",\n \"importers-jira-auth-url\": \"/importers/jira/auth_url\",\n \"importers-jira-authorize\": \"/importers/jira/authorize\",\n \"importers-jira-list-projects\": \"/importers/jira/list_projects\",\n \"importers-jira-list-users\": \"/importers/jira/list_users\",\n \"importers-jira-import-project\": \"/importers/jira/import_project\",\n \"importers-github-auth-url\": \"/importers/github/auth_url\",\n \"importers-github-authorize\": \"/importers/github/authorize\",\n \"importers-github-list-projects\": \"/importers/github/list_projects\",\n \"importers-github-list-users\": \"/importers/github/list_users\",\n \"importers-github-import-project\": \"/importers/github/import_project\",\n \"importers-asana-auth-url\": \"/importers/asana/auth_url\",\n \"importers-asana-authorize\": \"/importers/asana/authorize\",\n \"importers-asana-list-projects\": \"/importers/asana/list_projects\",\n \"importers-asana-list-users\": \"/importers/asana/list_users\",\n \"importers-asana-import-project\": \"/importers/asana/import_project\"\n };\n\n initUrls = function($log, $urls) {\n $log.debug(\"Initialize api urls\");\n return $urls.update(urls);\n };\n\n initResources = function($log, $rs) {\n var i, len, provider, providers, results;\n $log.debug(\"Initialize resources\");\n providers = _.toArray(arguments).slice(2);\n results = [];\n for (i = 0, len = providers.length; i < len; i++) {\n provider = providers[i];\n results.push(provider($rs));\n }\n return results;\n };\n\n module = angular.module(\"taigaResources\", [\"taigaBase\"]);\n\n module.service(\"$tgResources\", ResourcesService);\n\n module.run([\"$log\", \"$tgUrls\", initUrls]);\n\n module.run([\"$log\", \"$tgResources\", \"$tgProjectsResourcesProvider\", \"$tgCustomAttributesResourcesProvider\", \"$tgCustomAttributesValuesResourcesProvider\", \"$tgMembershipsResourcesProvider\", \"$tgNotifyPoliciesResourcesProvider\", \"$tgInvitationsResourcesProvider\", \"$tgRolesResourcesProvider\", \"$tgUserSettingsResourcesProvider\", \"$tgSprintsResourcesProvider\", \"$tgEpicsResourcesProvider\", \"$tgUserstoriesResourcesProvider\", \"$tgTasksResourcesProvider\", \"$tgIssuesResourcesProvider\", \"$tgWikiResourcesProvider\", \"$tgSearchResourcesProvider\", \"$tgMdRenderResourcesProvider\", \"$tgHistoryResourcesProvider\", \"$tgKanbanResourcesProvider\", \"$tgModulesResourcesProvider\", \"$tgWebhooksResourcesProvider\", \"$tgWebhookLogsResourcesProvider\", \"$tgLocalesResourcesProvider\", \"$tgUsersResourcesProvider\", initResources]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/search.coffee\n */\n\n(function() {\n var SearchBoxDirective, SearchController, SearchDirective, bindOnce, debounce, debounceLeading, groupBy, mixOf, module, taiga, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n bindOnce = this.taiga.bindOnce;\n\n mixOf = this.taiga.mixOf;\n\n debounceLeading = this.taiga.debounceLeading;\n\n trim = this.taiga.trim;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaSearch\", []);\n\n SearchController = (function(superClass) {\n extend(SearchController, superClass);\n\n SearchController.$inject = [\"$scope\", \"$tgRepo\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"tgAppMetaService\", \"$tgNavUrls\", \"$translate\", \"tgErrorHandlingService\", \"tgProjectService\"];\n\n function SearchController(scope1, repo, rs, params, q, location, appMetaService, navUrls, translate, errorHandlingService, projectService1) {\n var description, loadSearchData, title;\n this.scope = scope1;\n this.repo = repo;\n this.rs = rs;\n this.params = params;\n this.q = q;\n this.location = location;\n this.appMetaService = appMetaService;\n this.navUrls = navUrls;\n this.translate = translate;\n this.errorHandlingService = errorHandlingService;\n this.projectService = projectService1;\n this.scope.sectionName = \"Search\";\n this.loadInitialData();\n title = this.translate.instant(\"SEARCH.PAGE_TITLE\", {\n projectName: this.scope.project.name\n });\n description = this.translate.instant(\"SEARCH.PAGE_DESCRIPTION\", {\n projectName: this.scope.project.name,\n projectDescription: this.scope.project.description\n });\n this.appMetaService.setAll(title, description);\n this.scope.searchTerm = null;\n loadSearchData = debounceLeading(100, (function(_this) {\n return function(t) {\n return _this.loadSearchData(t);\n };\n })(this));\n bindOnce(this.scope, \"projectId\", (function(_this) {\n return function(projectId) {\n if (!_this.scope.searchResults && _this.scope.searchTerm) {\n return _this.loadSearchData();\n }\n };\n })(this));\n this.scope.$watch(\"searchTerm\", (function(_this) {\n return function(term) {\n if (term !== void 0 && _this.scope.projectId) {\n return _this.loadSearchData(term);\n }\n };\n })(this));\n }\n\n SearchController.prototype.loadFilters = function() {\n var defered;\n defered = this.q.defer();\n defered.resolve();\n return defered.promise;\n };\n\n SearchController.prototype.loadProject = function() {\n var project;\n project = this.projectService.project.toJS();\n this.scope.project = project;\n this.scope.$emit('project:loaded', project);\n this.scope.epicStatusById = groupBy(project.epic_statuses, function(x) {\n return x.id;\n });\n this.scope.issueStatusById = groupBy(project.issue_statuses, function(x) {\n return x.id;\n });\n this.scope.taskStatusById = groupBy(project.task_statuses, function(x) {\n return x.id;\n });\n this.scope.severityById = groupBy(project.severities, function(x) {\n return x.id;\n });\n this.scope.priorityById = groupBy(project.priorities, function(x) {\n return x.id;\n });\n this.scope.usStatusById = groupBy(project.us_statuses, function(x) {\n return x.id;\n });\n return project;\n };\n\n SearchController.prototype.loadSearchData = function(term) {\n if (term == null) {\n term = \"\";\n }\n this.scope.loading = true;\n return this._loadSearchData(term).then((function(_this) {\n return function(data) {\n _this.scope.searchResults = data;\n return _this.scope.loading = false;\n };\n })(this));\n };\n\n SearchController.prototype._loadSearchData = function(term) {\n if (term == null) {\n term = \"\";\n }\n if (this._promise) {\n this._promise.abort();\n }\n this._promise = this.rs.search[\"do\"](this.scope.projectId, term);\n return this._promise;\n };\n\n SearchController.prototype.loadInitialData = function() {\n var project;\n project = this.loadProject();\n this.scope.projectId = project.id;\n return this.fillUsersAndRoles(project.members, project.roles);\n };\n\n return SearchController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin));\n\n module.controller(\"SearchController\", SearchController);\n\n SearchBoxDirective = function(projectService, $lightboxService, $navurls, $location, $route) {\n var link;\n link = function($scope, $el, $attrs) {\n var openLightbox, project, submit;\n project = null;\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var form, text, url;\n event.preventDefault();\n form = $el.find(\"form\").checksley();\n if (!form.validate()) {\n return;\n }\n text = $el.find(\"#search-text\").val();\n url = $navurls.resolve(\"project-search\", {\n project: project.get(\"slug\")\n });\n return $scope.$apply(function() {\n $lightboxService.close($el);\n $location.path(url);\n $location.search(\"text\", text).path(url);\n return $route.reload();\n });\n };\n })(this));\n openLightbox = function() {\n project = projectService.project;\n return $lightboxService.open($el).then(function() {\n return $el.find(\"#search-text\").focus();\n });\n };\n $el.on(\"submit\", \"form\", submit);\n return openLightbox();\n };\n return {\n templateUrl: \"search/lightbox-search.html\",\n link: link\n };\n };\n\n SearchBoxDirective.$inject = [\"tgProjectService\", \"lightboxService\", \"$tgNavUrls\", \"$tgLocation\", \"$route\"];\n\n module.directive(\"tgSearchBox\", SearchBoxDirective);\n\n SearchDirective = function($log, $compile, $templatecache, $routeparams, $location) {\n var link, linkTable;\n linkTable = function($scope, $el, $attrs, $ctrl) {\n var activeSectionName, applyAutoTab, getActiveSection, lastSearchResults, markSectionTabActive, renderFilterTabs, renderTableContent, tabsDom, templates;\n applyAutoTab = true;\n activeSectionName = \"userstories\";\n tabsDom = $el.find(\".search-filter\");\n lastSearchResults = null;\n getActiveSection = function(data) {\n var i, len, maxVal, name, ref, selectedSection, value;\n maxVal = 0;\n selectedSection = {};\n selectedSection.name = \"userstories\";\n selectedSection.value = [];\n if (!applyAutoTab) {\n selectedSection.name = activeSectionName;\n selectedSection.value = data[activeSectionName];\n return selectedSection;\n }\n if (data) {\n ref = [\"userstories\", \"epics\", \"issues\", \"tasks\", \"wikipages\"];\n for (i = 0, len = ref.length; i < len; i++) {\n name = ref[i];\n value = data[name];\n if (value.length > maxVal) {\n maxVal = value.length;\n selectedSection.name = name;\n selectedSection.value = value;\n break;\n }\n }\n }\n if (maxVal === 0) {\n return selectedSection;\n }\n return selectedSection;\n };\n renderFilterTabs = function(data) {\n var name, results, value;\n results = [];\n for (name in data) {\n value = data[name];\n tabsDom.find(\"li.\" + name).show();\n results.push(tabsDom.find(\"li.\" + name + \" .num\").html(value.length));\n }\n return results;\n };\n markSectionTabActive = function(section) {\n tabsDom.find(\"a.active\").removeClass(\"active\");\n tabsDom.find(\"li.\" + section.name + \" a\").addClass(\"active\");\n applyAutoTab = false;\n return activeSectionName = section.name;\n };\n templates = {\n epics: $templatecache.get(\"search-epics\"),\n issues: $templatecache.get(\"search-issues\"),\n tasks: $templatecache.get(\"search-tasks\"),\n userstories: $templatecache.get(\"search-userstories\"),\n wikipages: $templatecache.get(\"search-wikipages\")\n };\n renderTableContent = function(section) {\n var element, oldElements, oldScope, scope, template;\n oldElements = $el.find(\".search-result-table\").children();\n oldScope = oldElements.scope();\n if (oldScope) {\n oldScope.$destroy();\n oldElements.remove();\n }\n scope = $scope.$new();\n scope[section.name] = section.value;\n template = angular.element.parseHTML(trim(templates[section.name]));\n element = $compile(template)(scope);\n return $el.find(\".search-result-table\").html(element);\n };\n $scope.$watch(\"searchResults\", function(data) {\n var activeSection;\n lastSearchResults = data;\n if (!lastSearchResults) {\n return;\n }\n activeSection = getActiveSection(data);\n renderFilterTabs(data);\n renderTableContent(activeSection);\n return markSectionTabActive(activeSection);\n });\n $scope.$watch(\"searchTerm\", function(searchTerm) {\n if (searchTerm !== void 0) {\n return $location.search(\"text\", searchTerm);\n }\n });\n return $el.on(\"click\", \".search-filter li > a\", function(event) {\n var section, sectionData, sectionName, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n sectionName = target.parent().data(\"name\");\n sectionData = !lastSearchResults ? [] : lastSearchResults[sectionName];\n section = {\n name: sectionName,\n value: sectionData\n };\n return $scope.$apply(function() {\n renderTableContent(section);\n return markSectionTabActive(section);\n });\n });\n };\n link = function($scope, $el, $attrs) {\n var $ctrl, searchText;\n $ctrl = $el.controller();\n linkTable($scope, $el, $attrs, $ctrl);\n searchText = $routeparams.text;\n return $scope.$watch(\"projectId\", function(projectId) {\n if (projectId != null) {\n return $scope.searchTerm = searchText;\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSearch\", [\"$log\", \"$compile\", \"$templateCache\", \"$routeParams\", \"$tgLocation\", SearchDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/taskboard.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaTaskboard\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/tasks.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaTasks\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/team.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaTeam\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/user-settings.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaUserSettings\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/userstories.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaUserStories\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/wiki.coffee\n */\n\n(function() {\n var module;\n\n module = angular.module(\"taigaWiki\", []);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/analytics.coffee\n */\n\n(function() {\n var AnalyticsService, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\");\n\n AnalyticsService = (function(superClass) {\n extend(AnalyticsService, superClass);\n\n AnalyticsService.$inject = [\"$rootScope\", \"$log\", \"$tgConfig\", \"$window\", \"$document\", \"$location\"];\n\n function AnalyticsService(rootscope, log, config, win, doc, location) {\n var conf;\n this.rootscope = rootscope;\n this.log = log;\n this.config = config;\n this.win = win;\n this.doc = doc;\n this.location = location;\n this.initialized = false;\n conf = this.config.get(\"analytics\", {});\n this.accountId = conf.accountId;\n this.pageEvent = conf.pageEvent || \"$routeChangeSuccess\";\n this.trackRoutes = conf.trackRoutes || true;\n this.ignoreFirstPageLoad = conf.ignoreFirstPageLoad || false;\n }\n\n AnalyticsService.prototype.initialize = function() {\n if (!this.accountId) {\n this.log.debug(\"Analytics: no acount id provided. Disabling.\");\n return;\n }\n this.injectAnalytics();\n this.win.ga(\"create\", this.accountId, \"auto\");\n this.win.ga(\"require\", \"displayfeatures\");\n if (this.trackRoutes && (!this.ignoreFirstPageLoad)) {\n this.win.ga(\"send\", \"pageview\", this.getUrl());\n }\n if (this.trackRoutes) {\n this.rootscope.$on(this.pageEvent, (function(_this) {\n return function() {\n return _this.trackPage(_this.getUrl(), \"Taiga\");\n };\n })(this));\n }\n return this.initialized = true;\n };\n\n AnalyticsService.prototype.getUrl = function() {\n return this.location.path();\n };\n\n AnalyticsService.prototype.injectAnalytics = function() {\n var fn;\n fn = (function(i,s,o,g,r,a,m){i[\"GoogleAnalyticsObject\"]=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments);},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m);});\n return fn(window, document, \"script\", \"//www.google-analytics.com/analytics.js\", \"ga\");\n };\n\n AnalyticsService.prototype.trackPage = function(url, title) {\n if (!this.initialized) {\n return;\n }\n if (!this.win.ga) {\n return;\n }\n title = title || this.doc[0].title;\n return this.win.ga(\"send\", \"pageview\", {\n \"page\": url,\n \"title\": title\n });\n };\n\n AnalyticsService.prototype.trackEvent = function(category, action, label, value) {\n if (!this.initialized) {\n return;\n }\n if (!this.win.ga) {\n return;\n }\n return this.win.ga(\"send\", \"event\", category, action, label, value);\n };\n\n return AnalyticsService;\n\n })(taiga.Service);\n\n module.service(\"$tgAnalytics\", AnalyticsService);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Taiga Agile LLC \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: bind-scope.coffee\n */\n\n(function() {\n var BindScope, module;\n\n module = angular.module(\"taigaCommon\");\n\n BindScope = function(config) {\n var link;\n if (!config.debugInfo) {\n jQuery.fn.scope = function() {\n return this.data('scope');\n };\n }\n link = function($scope, $el) {\n if (!config.debugInfo) {\n return $el.data('scope', $scope).addClass('tg-scope');\n }\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBindScope\", [\"$tgConfig\", BindScope]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Taiga Agile LLC \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: compile-html.directive.coffee\n */\n\n(function() {\n var CompileHtmlDirective;\n\n CompileHtmlDirective = function($compile) {\n var link;\n link = function(scope, element, attrs) {\n return scope.$watch(attrs.tgCompileHtml, function(newValue, oldValue) {\n element.html(newValue);\n return $compile(element.contents())(scope);\n });\n };\n return {\n link: link\n };\n };\n\n CompileHtmlDirective.$inject = [\"$compile\"];\n\n angular.module(\"taigaCommon\").directive(\"tgCompileHtml\", CompileHtmlDirective);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/components.coffee\n */\n\n(function() {\n var AssignedToDirective, BlockButtonDirective, CreatedByDisplayDirective, DateRangeDirective, DateSelectorDirective, DeleteButtonDirective, EditableSubjectDirective, ListItemAssignedtoDirective, ListItemEpicStatusDirective, ListItemIssueStatusDirective, ListItemPriorityDirective, ListItemSeverityDirective, ListItemTaskStatusDirective, ListItemTypeDirective, ListItemUsStatusDirective, SprintProgressBarDirective, TgMainTitleDirective, TgProgressBarDirective, UserDisplayDirective, WatchersDirective, bindOnce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n DateRangeDirective = function($translate) {\n var link, renderRange;\n renderRange = function($el, first, second) {\n var endDate, initDate, prettyDate;\n prettyDate = $translate.instant(\"BACKLOG.SPRINTS.DATE\");\n initDate = moment(first).format(prettyDate);\n endDate = moment(second).format(prettyDate);\n return $el.html(initDate + \"-\" + endDate);\n };\n link = function($scope, $el, $attrs) {\n var first, ref, second;\n ref = $attrs.tgDateRange.split(\",\"), first = ref[0], second = ref[1];\n return bindOnce($scope, first, function(valFirst) {\n return bindOnce($scope, second, function(valSecond) {\n return renderRange($el, valFirst, valSecond);\n });\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgDateRange\", [\"$translate\", DateRangeDirective]);\n\n DateSelectorDirective = function($rootscope, datePickerConfigService) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var initialize, selectedDate, unbind;\n selectedDate = null;\n initialize = function() {\n var datePickerConfig;\n datePickerConfig = datePickerConfigService.get();\n _.merge(datePickerConfig, {\n field: $el[0]\n });\n return $el.picker = new Pikaday(datePickerConfig);\n };\n unbind = $rootscope.$on(\"$translateChangeEnd\", (function(_this) {\n return function(ctx) {\n if ($el.picker) {\n $el.picker.destroy();\n }\n return initialize();\n };\n })(this));\n $attrs.$observe(\"pickerValue\", function(val) {\n $el.val(val);\n if (val != null) {\n if ($el.picker) {\n $el.picker.destroy();\n }\n initialize();\n }\n return $el.picker.setDate(val);\n });\n return $scope.$on(\"$destroy\", function() {\n $el.off();\n unbind();\n return $el.picker.destroy();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgDateSelector\", [\"$rootScope\", \"tgDatePickerConfigService\", DateSelectorDirective]);\n\n SprintProgressBarDirective = function() {\n var link, renderProgress;\n renderProgress = function($el, percentage, visual_percentage) {\n if ($el.hasClass(\".current-progress\")) {\n return $el.css(\"width\", percentage + \"%\");\n } else {\n $el.find(\".current-progress\").css(\"width\", visual_percentage + \"%\");\n return $el.find(\".number\").html(percentage + \" %\");\n }\n };\n link = function($scope, $el, $attrs) {\n bindOnce($scope, $attrs.tgSprintProgressbar, function(sprint) {\n var closedPoints, percentage, totalPoints, visual_percentage;\n closedPoints = sprint.closed_points;\n totalPoints = sprint.total_points;\n percentage = 0;\n if (totalPoints !== 0) {\n percentage = Math.round(100 * (closedPoints / totalPoints));\n }\n visual_percentage = 0;\n if (totalPoints !== 0) {\n visual_percentage = Math.round(98 * (closedPoints / totalPoints));\n }\n return renderProgress($el, percentage, visual_percentage);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgSprintProgressbar\", SprintProgressBarDirective);\n\n CreatedByDisplayDirective = function($template, $compile, $translate, $navUrls, avatarService) {\n var link;\n link = function($scope, $el, $attrs) {\n bindOnce($scope, $attrs.ngModel, function(model) {\n var avatar, ref;\n if (model != null) {\n avatar = avatarService.getAvatar(model.owner_extra_info);\n $scope.owner = model.owner_extra_info || {\n full_name_display: $translate.instant(\"COMMON.EXTERNAL_USER\")\n };\n $scope.owner.avatar = avatar.url;\n $scope.owner.bg = avatar.bg;\n $scope.url = ((ref = $scope.owner) != null ? ref.is_active : void 0) ? $navUrls.resolve(\"user-profile\", {\n username: $scope.owner.username\n }) : \"\";\n return $scope.date = moment(model.created_date).format($translate.instant(\"COMMON.DATETIME\"));\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n scope: true,\n templateUrl: \"common/components/created-by.html\"\n };\n };\n\n module.directive(\"tgCreatedByDisplay\", [\"$tgTemplate\", \"$compile\", \"$translate\", \"$tgNavUrls\", \"tgAvatarService\", CreatedByDisplayDirective]);\n\n UserDisplayDirective = function($template, $compile, $translate, $navUrls, avatarService) {\n var link;\n link = function($scope, $el, $attrs) {\n var avatar, id;\n id = $attrs.tgUserId;\n $scope.user = $scope.usersById[id] || {\n full_name_display: $translate.instant(\"COMMON.EXTERNAL_USER\")\n };\n avatar = avatarService.getAvatar($scope.usersById[id] || null);\n $scope.user.avatar = avatar.url;\n $scope.user.bg = avatar.bg;\n $scope.url = $scope.user.is_active ? $navUrls.resolve(\"user-profile\", {\n username: $scope.user.username\n }) : \"\";\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n scope: true,\n templateUrl: \"common/components/user-display.html\"\n };\n };\n\n module.directive(\"tgUserDisplay\", [\"$tgTemplate\", \"$compile\", \"$translate\", \"$tgNavUrls\", \"tgAvatarService\", UserDisplayDirective]);\n\n WatchersDirective = function($rootscope, $confirm, $repo, $modelTransform, $template, $compile, $translate) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var deleteWatcher, isEditable, renderWatchers, save;\n isEditable = function() {\n var ref, ref1;\n return ((ref = $scope.project) != null ? (ref1 = ref.my_permissions) != null ? ref1.indexOf($attrs.requiredPerm) : void 0 : void 0) !== -1;\n };\n save = function(watchers) {\n var transform;\n transform = $modelTransform.save(function(item) {\n item.watchers = watchers;\n return item;\n });\n transform.then(function() {\n watchers = _.map(watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n renderWatchers(watchers);\n return $rootscope.$broadcast(\"object:updated\");\n });\n return transform.then(null, function() {\n return $confirm.notify(\"error\");\n });\n };\n deleteWatcher = function(watcherIds) {\n var transform;\n transform = $modelTransform.save(function(item) {\n item.watchers = watcherIds;\n return item;\n });\n transform.then(function() {\n var item, watchers;\n item = $modelTransform.getObj();\n watchers = _.map(item.watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n renderWatchers(watchers);\n return $rootscope.$broadcast(\"object:updated\");\n });\n return transform.then(null, function() {\n item.revert();\n return $confirm.notify(\"error\");\n });\n };\n renderWatchers = function(watchers) {\n $scope.watchers = watchers;\n return $scope.isEditable = isEditable();\n };\n $el.on(\"click\", \".js-delete-watcher\", function(event) {\n var message, target, title, watcherId;\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n target = angular.element(event.currentTarget);\n watcherId = target.data(\"watcher-id\");\n title = $translate.instant(\"COMMON.WATCHERS.TITLE_LIGHTBOX_DELETE_WARTCHER\");\n message = $scope.usersById[watcherId].full_name_display;\n return $confirm.askOnDelete(title, message).then((function(_this) {\n return function(askResponse) {\n var watcherIds;\n askResponse.finish();\n watcherIds = _.clone($model.$modelValue.watchers, false);\n watcherIds = _.pull(watcherIds, watcherId);\n return deleteWatcher(watcherIds);\n };\n })(this));\n });\n $scope.$on(\"watcher:added\", function(ctx, watcherId) {\n var watchers;\n watchers = _.clone($model.$modelValue.watchers, false);\n watchers.push(watcherId);\n watchers = _.uniq(watchers);\n return save(watchers);\n });\n $scope.$watch($attrs.ngModel, function(item) {\n var watchers;\n if (item == null) {\n return;\n }\n watchers = _.map(item.watchers, function(watcherId) {\n return $scope.usersById[watcherId];\n });\n watchers = _.filter(watchers, function(it) {\n return !!it;\n });\n return renderWatchers(watchers);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n scope: true,\n templateUrl: \"common/components/watchers.html\",\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgWatchers\", [\"$rootScope\", \"$tgConfirm\", \"$tgRepo\", \"$tgQueueModelTransformation\", \"$tgTemplate\", \"$compile\", \"$translate\", WatchersDirective]);\n\n AssignedToDirective = function($rootscope, $confirm, $repo, $loading, $modelTransform, $template, $translate, $compile, $currentUserService, avatarService) {\n var link, template;\n template = $template.get(\"common/components/assigned-to.html\", true);\n link = function($scope, $el, $attrs, $model) {\n var isEditable, renderAssignedTo, save;\n isEditable = function() {\n var ref, ref1;\n return ((ref = $scope.project) != null ? (ref1 = ref.my_permissions) != null ? ref1.indexOf($attrs.requiredPerm) : void 0 : void 0) !== -1;\n };\n save = function(userId) {\n var currentLoading, item, transform;\n item = $model.$modelValue.clone();\n item.assigned_to = userId;\n currentLoading = $loading().target($el).start();\n transform = $modelTransform.save(function(item) {\n item.assigned_to = userId;\n return item;\n });\n transform.then(function() {\n currentLoading.finish();\n renderAssignedTo($modelTransform.getObj());\n return $rootscope.$broadcast(\"object:updated\");\n });\n transform.then(null, function() {\n $confirm.notify(\"error\");\n return currentLoading.finish();\n });\n return transform;\n };\n renderAssignedTo = function(assignedObject) {\n var avatar, bg, ctx, fullName, html, isIocaine, isUnassigned;\n avatar = avatarService.getAvatar(assignedObject != null ? assignedObject.assigned_to_extra_info : void 0);\n bg = null;\n if ((assignedObject != null ? assignedObject.assigned_to : void 0) != null) {\n fullName = assignedObject.assigned_to_extra_info.full_name_display;\n isUnassigned = false;\n bg = avatar.bg;\n } else {\n fullName = $translate.instant(\"COMMON.ASSIGNED_TO.ASSIGN\");\n isUnassigned = true;\n }\n isIocaine = assignedObject != null ? assignedObject.is_iocaine : void 0;\n ctx = {\n fullName: fullName,\n avatar: avatar.url,\n bg: bg,\n isUnassigned: isUnassigned,\n isEditable: isEditable(),\n isIocaine: isIocaine,\n fullNameVisible: !(isUnassigned && !$currentUserService.isAuthenticated())\n };\n html = $compile(template(ctx))($scope);\n return $el.html(html);\n };\n $el.on(\"click\", \".user-assigned\", function(event) {\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n return $scope.$apply(function() {\n return $rootscope.$broadcast(\"assigned-to:add\", $model.$modelValue);\n });\n });\n $el.on(\"click\", \".assign-to-me\", function(event) {\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n $model.$modelValue.assigned_to = $currentUserService.getUser().get('id');\n return save($currentUserService.getUser().get('id'));\n });\n $el.on(\"click\", \".remove-user\", function(event) {\n var title;\n event.preventDefault();\n if (!isEditable()) {\n return;\n }\n title = $translate.instant(\"COMMON.ASSIGNED_TO.CONFIRM_UNASSIGNED\");\n return $confirm.ask(title).then((function(_this) {\n return function(response) {\n response.finish();\n $model.$modelValue.assigned_to = null;\n return save(null);\n };\n })(this));\n });\n $scope.$on(\"assigned-to:added\", function(ctx, userId, item) {\n if (item.id !== $model.$modelValue.id) {\n return;\n }\n return save(userId);\n });\n $scope.$watch($attrs.ngModel, function(instance) {\n return renderAssignedTo(instance);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgAssignedTo\", [\"$rootScope\", \"$tgConfirm\", \"$tgRepo\", \"$tgLoading\", \"$tgQueueModelTransformation\", \"$tgTemplate\", \"$translate\", \"$compile\", \"tgCurrentUserService\", \"tgAvatarService\", AssignedToDirective]);\n\n BlockButtonDirective = function($rootscope, $loading, $template) {\n var link, template;\n template = $template.get(\"common/components/block-button.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable;\n isEditable = function() {\n return $scope.project.my_permissions.indexOf(\"modify_us\") !== -1;\n };\n $scope.$watch($attrs.ngModel, function(item) {\n if (!item) {\n return;\n }\n if (isEditable()) {\n $el.find('.item-block').addClass('editable');\n }\n if (item.is_blocked) {\n $el.find('.item-block').removeClass('is-active');\n return $el.find('.item-unblock').addClass('is-active');\n } else {\n $el.find('.item-block').addClass('is-active');\n return $el.find('.item-unblock').removeClass('is-active');\n }\n });\n $el.on(\"click\", \".item-block\", function(event) {\n event.preventDefault();\n return $rootscope.$broadcast(\"block\", $model.$modelValue);\n });\n $el.on(\"click\", \".item-unblock\", function(event) {\n var currentLoading, finish;\n event.preventDefault();\n currentLoading = $loading().target($el.find(\".item-unblock\")).start();\n finish = function() {\n return currentLoading.finish();\n };\n return $rootscope.$broadcast(\"unblock\", $model.$modelValue, finish);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgBlockButton\", [\"$rootScope\", \"$tgLoading\", \"$tgTemplate\", BlockButtonDirective]);\n\n DeleteButtonDirective = function($log, $repo, $confirm, $location, $template) {\n var link, template;\n template = $template.get(\"common/components/delete-button.html\");\n link = function($scope, $el, $attrs, $model) {\n if (!$attrs.onDeleteGoToUrl) {\n return $log.error(\"DeleteButtonDirective requires on-delete-go-to-url set in scope.\");\n }\n if (!$attrs.onDeleteTitle) {\n return $log.error(\"DeleteButtonDirective requires on-delete-title set in scope.\");\n }\n $el.on(\"click\", \".button-delete\", function(event) {\n var subtitle, title;\n title = $attrs.onDeleteTitle;\n subtitle = $model.$modelValue.subject;\n return $confirm.askOnDelete(title, subtitle).then((function(_this) {\n return function(askResponse) {\n var promise;\n promise = $repo.remove($model.$modelValue);\n promise.then(function() {\n var url;\n askResponse.finish();\n url = $scope.$eval($attrs.onDeleteGoToUrl);\n return $location.path(url);\n });\n return promise.then(null, function() {\n askResponse.finish(false);\n return $confirm.notify(\"error\");\n });\n };\n })(this));\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgDeleteButton\", [\"$log\", \"$tgRepo\", \"$tgConfirm\", \"$tgLocation\", \"$tgTemplate\", DeleteButtonDirective]);\n\n EditableSubjectDirective = function($rootscope, $repo, $confirm, $loading, $modelTransform, $template) {\n var link, template;\n template = $template.get(\"common/components/editable-subject.html\");\n link = function($scope, $el, $attrs, $model) {\n var isEditable, save;\n $scope.$on(\"object:updated\", function() {\n $el.find('.edit-subject').hide();\n return $el.find('.view-subject').show();\n });\n isEditable = function() {\n return $scope.project.my_permissions.indexOf($attrs.requiredPerm) !== -1;\n };\n save = function(subject) {\n var currentLoading, transform;\n currentLoading = $loading().target($el.find('.save-container')).start();\n transform = $modelTransform.save(function(item) {\n item.subject = subject;\n return item;\n });\n transform.then((function(_this) {\n return function() {\n $confirm.notify(\"success\");\n $rootscope.$broadcast(\"object:updated\");\n $el.find('.edit-subject').hide();\n return $el.find('.view-subject').show();\n };\n })(this));\n transform.then(null, function() {\n return $confirm.notify(\"error\");\n });\n transform[\"finally\"](function() {\n return currentLoading.finish();\n });\n return transform;\n };\n $el.click(function() {\n if (!isEditable()) {\n return;\n }\n $el.find('.edit-subject').show();\n $el.find('.view-subject').hide();\n return $el.find('input').focus();\n });\n $el.on(\"click\", \".save\", function(e) {\n var subject;\n e.preventDefault();\n subject = $scope.item.subject;\n return save(subject);\n });\n $el.on(\"keyup\", \"input\", function(event) {\n var subject;\n if (event.keyCode === 13) {\n subject = $scope.item.subject;\n return save(subject);\n } else if (event.keyCode === 27) {\n $scope.$apply((function(_this) {\n return function() {\n return $model.$modelValue.revert();\n };\n })(this));\n $el.find('.edit-subject').hide();\n return $el.find('.view-subject').show();\n }\n });\n $el.find('.edit-subject').hide();\n $scope.$watch($attrs.ngModel, function(value) {\n if (!value) {\n return;\n }\n $scope.item = value;\n if (!isEditable()) {\n return $el.find('.view-subject .edit').remove();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\",\n template: template\n };\n };\n\n module.directive(\"tgEditableSubject\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgLoading\", \"$tgQueueModelTransformation\", \"$tgTemplate\", EditableSubjectDirective]);\n\n ListItemEpicStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var epic;\n epic = $scope.$eval($attrs.tgListitemEpicStatus);\n return bindOnce($scope, \"epicStatusById\", function(epicStatusById) {\n return $el.html(epicStatusById[epic.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgListitemEpicStatus\", ListItemEpicStatusDirective);\n\n ListItemUsStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var us;\n us = $scope.$eval($attrs.tgListitemUsStatus);\n return bindOnce($scope, \"usStatusById\", function(usStatusById) {\n return $el.html(usStatusById[us.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgListitemUsStatus\", ListItemUsStatusDirective);\n\n ListItemTaskStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var task;\n task = $scope.$eval($attrs.tgListitemTaskStatus);\n return bindOnce($scope, \"taskStatusById\", function(taskStatusById) {\n return $el.html(taskStatusById[task.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgListitemTaskStatus\", ListItemTaskStatusDirective);\n\n ListItemAssignedtoDirective = function($template, $translate, avatarService) {\n var link, template;\n template = $template.get(\"common/components/list-item-assigned-to-avatar.html\", true);\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, \"usersById\", function(usersById) {\n var avatar, ctx, item, member;\n item = $scope.$eval($attrs.tgListitemAssignedto);\n ctx = {\n name: $translate.instant(\"COMMON.ASSIGNED_TO.NOT_ASSIGNED\")\n };\n member = usersById[item.assigned_to];\n avatar = avatarService.getAvatar(member);\n ctx.imgurl = avatar.url;\n ctx.bg = avatar.bg;\n if (member) {\n ctx.name = member.full_name_display;\n }\n return $el.html(template(ctx));\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgListitemAssignedto\", [\"$tgTemplate\", \"$translate\", \"tgAvatarService\", ListItemAssignedtoDirective]);\n\n ListItemIssueStatusDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemIssueStatus);\n return bindOnce($scope, \"issueStatusById\", function(issueStatusById) {\n return $el.html(issueStatusById[issue.status].name);\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgListitemIssueStatus\", ListItemIssueStatusDirective);\n\n ListItemTypeDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(issueTypeById, issue) {\n var domNode, type;\n type = issueTypeById[issue.type];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", type.color);\n return domNode.attr(\"title\", type.name);\n };\n bindOnce($scope, \"issueTypeById\", function(issueTypeById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemType);\n return render(issueTypeById, issue);\n });\n return $scope.$watch($attrs.tgListitemType, function(issue) {\n return render($scope.issueTypeById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n module.directive(\"tgListitemType\", ListItemTypeDirective);\n\n ListItemPriorityDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(priorityById, issue) {\n var domNode, priority;\n priority = priorityById[issue.priority];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", priority.color);\n return domNode.attr(\"title\", priority.name);\n };\n bindOnce($scope, \"priorityById\", function(priorityById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemPriority);\n return render(priorityById, issue);\n });\n return $scope.$watch($attrs.tgListitemPriority, function(issue) {\n return render($scope.priorityById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n module.directive(\"tgListitemPriority\", ListItemPriorityDirective);\n\n ListItemSeverityDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n var render;\n render = function(severityById, issue) {\n var domNode, severity;\n severity = severityById[issue.severity];\n domNode = $el.find(\".level\");\n domNode.css(\"background-color\", severity.color);\n return domNode.attr(\"title\", severity.name);\n };\n bindOnce($scope, \"severityById\", function(severityById) {\n var issue;\n issue = $scope.$eval($attrs.tgListitemSeverity);\n return render(severityById, issue);\n });\n return $scope.$watch($attrs.tgListitemSeverity, function(issue) {\n return render($scope.severityById, issue);\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/level.html\"\n };\n };\n\n module.directive(\"tgListitemSeverity\", ListItemSeverityDirective);\n\n TgProgressBarDirective = function($template) {\n var link, render, template;\n template = $template.get(\"common/components/progress-bar.html\", true);\n render = function(el, percentage) {\n return el.html(template({\n percentage: percentage\n }));\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$watch($attrs.tgProgressBar, function(percentage) {\n percentage = _.max([0, percentage]);\n percentage = _.min([100, percentage]);\n return render($el, percentage);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgProgressBar\", [\"$tgTemplate\", TgProgressBarDirective]);\n\n TgMainTitleDirective = function($translate) {\n var link;\n link = function($scope, $el, $attrs) {\n $attrs.$observe(\"i18nSectionName\", function(i18nSectionName) {\n return $scope.sectionName = i18nSectionName;\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n templateUrl: \"common/components/main-title.html\",\n scope: {\n projectName: \"=projectName\"\n }\n };\n };\n\n module.directive(\"tgMainTitle\", [\"$translate\", TgMainTitleDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/base/confirm.coffee\n */\n\n(function() {\n var ConfirmService, NOTIFICATION_MSG, bindMethods, cancelTimeout, debounce, module, taiga, timeout,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n timeout = this.taiga.timeout;\n\n cancelTimeout = this.taiga.cancelTimeout;\n\n debounce = this.taiga.debounce;\n\n bindMethods = this.taiga.bindMethods;\n\n NOTIFICATION_MSG = {\n \"success\": {\n title: \"NOTIFICATION.OK\",\n message: \"NOTIFICATION.SAVED\"\n },\n \"error\": {\n title: \"NOTIFICATION.WARNING\",\n message: \"NOTIFICATION.WARNING_TEXT\"\n },\n \"light-error\": {\n title: \"NOTIFICATION.WARNING\",\n message: \"NOTIFICATION.WARNING_TEXT\"\n }\n };\n\n ConfirmService = (function(superClass) {\n extend(ConfirmService, superClass);\n\n ConfirmService.$inject = [\"$q\", \"lightboxService\", \"$tgLoading\", \"$translate\"];\n\n function ConfirmService(q, lightboxService, loading, translate) {\n this.q = q;\n this.lightboxService = lightboxService;\n this.loading = loading;\n this.translate = translate;\n bindMethods(this);\n }\n\n ConfirmService.prototype.hide = function(el) {\n if (el) {\n this.lightboxService.close(el);\n return el.off(\".confirm-dialog\");\n }\n };\n\n ConfirmService.prototype.ask = function(title, subtitle, message, lightboxSelector) {\n var defered, el;\n if (lightboxSelector == null) {\n lightboxSelector = \".lightbox-generic-ask\";\n }\n defered = this.q.defer();\n el = angular.element(lightboxSelector);\n if (title) {\n el.find(\".title\").text(title);\n }\n if (subtitle) {\n el.find(\".subtitle\").text(subtitle);\n }\n if (message) {\n el.find(\".message\").text(message);\n }\n el.on(\"click.confirm-dialog\", \".button-green\", debounce(2000, (function(_this) {\n return function(event) {\n var currentLoading, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n currentLoading = _this.loading().target(target).start();\n return defered.resolve({\n finish: function(ok) {\n if (ok == null) {\n ok = true;\n }\n currentLoading.finish();\n if (ok) {\n return _this.hide(el);\n }\n }\n });\n };\n })(this)));\n el.on(\"click.confirm-dialog\", \".button-red\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.reject();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.askOnDelete = function(title, message) {\n return this.ask(title, this.translate.instant(\"NOTIFICATION.ASK_DELETE\"), message);\n };\n\n ConfirmService.prototype.askChoice = function(title, subtitle, choices, replacement, warning, lightboxSelector) {\n var choicesField, defered, el;\n if (lightboxSelector == null) {\n lightboxSelector = \".lightbox-ask-choice\";\n }\n defered = this.q.defer();\n el = angular.element(lightboxSelector);\n el.find(\".title\").text(title);\n el.find(\".subtitle\").text(subtitle);\n if (replacement) {\n el.find(\".replacement\").text(replacement);\n } else {\n el.find(\".replacement\").remove();\n }\n if (warning) {\n el.find(\".warning\").text(warning);\n } else {\n el.find(\".warning\").remove();\n }\n choicesField = el.find(\".choices\");\n choicesField.html('');\n _.each(choices, function(value, key) {\n value = _.escape(value);\n return choicesField.append(angular.element(\"\" + value + \"\"));\n });\n el.on(\"click.confirm-dialog\", \"a.button-green\", debounce(2000, (function(_this) {\n return function(event) {\n var currentLoading, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n currentLoading = _this.loading().target(target).start();\n return defered.resolve({\n selected: choicesField.val(),\n finish: function(ok) {\n if (ok == null) {\n ok = true;\n }\n currentLoading.finish();\n if (ok) {\n return _this.hide(el);\n }\n }\n });\n };\n })(this)));\n el.on(\"click.confirm-dialog\", \".button-red\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.reject();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.error = function(message) {\n var defered, el;\n defered = this.q.defer();\n el = angular.element(\".lightbox-generic-error\");\n el.find(\".title\").html(message);\n el.on(\"click.confirm-dialog\", \".button-green\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n el.on(\"click.confirm-dialog\", \".close\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.success = function(title, message, icon) {\n var defered, detailImage, el, svgContainer, useSVG;\n defered = this.q.defer();\n el = angular.element(\".lightbox-generic-success\");\n el.find(\"img\").remove();\n el.find(\"svg\").remove();\n if (icon) {\n if (icon.type === \"img\") {\n detailImage = $('').addClass('lb-icon').attr('src', icon.name);\n } else if (icon.type === \"svg\") {\n detailImage = document.createElement(\"div\");\n taiga.addClass(detailImage, \"icon\");\n taiga.addClass(detailImage, icon.name);\n taiga.addClass(detailImage, \"lb-icon\");\n svgContainer = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n useSVG = document.createElementNS('http://www.w3.org/2000/svg', 'use');\n useSVG.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + icon.name);\n detailImage.appendChild(svgContainer).appendChild(useSVG);\n }\n if (detailImage) {\n el.find('section').prepend(detailImage);\n }\n }\n if (title) {\n el.find(\".title\").html(title);\n }\n if (message) {\n el.find(\".message\").html(message);\n }\n el.on(\"click.confirm-dialog\", \".button-green\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n el.on(\"click.confirm-dialog\", \".close\", (function(_this) {\n return function(event) {\n event.preventDefault();\n defered.resolve();\n return _this.hide(el);\n };\n })(this));\n this.lightboxService.open(el);\n return defered.promise;\n };\n\n ConfirmService.prototype.loader = function(title, message, spin) {\n var el;\n if (spin == null) {\n spin = false;\n }\n el = angular.element(\".lightbox-generic-loading\");\n if (title) {\n el.find(\".title\").html(title);\n }\n if (message) {\n el.find(\".message\").html(message);\n }\n if (spin) {\n el.find(\".spin\").removeClass(\"hidden\");\n }\n return {\n start: (function(_this) {\n return function() {\n return _this.lightboxService.open(el);\n };\n })(this),\n stop: (function(_this) {\n return function() {\n return _this.lightboxService.close(el);\n };\n })(this),\n update: (function(_this) {\n return function(status, title, message, percent) {\n if (title) {\n el.find(\".title\").html(title);\n }\n if (message) {\n el.find(\".message\").html(message);\n }\n if (percent) {\n el.find(\".spin\").addClass(\"hidden\");\n el.find(\".progress-bar-wrapper\").removeClass(\"hidden\");\n el.find(\".progress-bar-wrapper > .bar\").width(percent + '%');\n return el.find(\".progress-bar-wrapper > span\").html(percent + '%').css('left', (percent - 9) + '%');\n } else {\n el.find(\".spin\").removeClass(\"hidden\");\n return el.find(\".progress-bar-wrapper\").addClass(\"hidden\");\n }\n };\n })(this)\n };\n };\n\n ConfirmService.prototype.notify = function(type, message, title, time) {\n var body, el, selector;\n selector = \".notification-message-\" + type;\n el = angular.element(selector);\n if (el.hasClass(\"active\")) {\n return;\n }\n if (title) {\n el.find(\"h4\").html(title);\n } else {\n el.find(\"h4\").html(this.translate.instant(NOTIFICATION_MSG[type].title));\n }\n if (message) {\n el.find(\"p\").html(message);\n } else {\n el.find(\"p\").html(this.translate.instant(NOTIFICATION_MSG[type].message));\n }\n body = angular.element(\"body\");\n body.find(\".notification-message .notification-light\").removeClass('active').addClass('inactive');\n body.find(selector).removeClass('inactive').addClass('active');\n if (this.tsem) {\n cancelTimeout(this.tsem);\n }\n if (!time) {\n time = type === 'error' || type === 'light-error' ? 3500 : 1500;\n }\n this.tsem = timeout(time, (function(_this) {\n return function() {\n body.find(selector).removeClass('active').addClass('inactive').one('animationend', function() {\n return $(this).removeClass('inactive');\n });\n return delete _this.tsem;\n };\n })(this));\n return el.on(\"click\", \".icon-close, .close\", (function(_this) {\n return function(event) {\n return body.find(selector).removeClass('active').addClass('inactive');\n };\n })(this));\n };\n\n return ConfirmService;\n\n })(taiga.Service);\n\n module = angular.module(\"taigaCommon\");\n\n module.service(\"$tgConfirm\", ConfirmService);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/custom-field-values.coffee\n */\n\n(function() {\n var CustomAttributeValueDirective, CustomAttributesValuesController, CustomAttributesValuesDirective, DATE_TYPE, MULTILINE_TYPE, RICHTEXT_TYPE, TEXT_TYPE, TYPE_CHOICES, URL_TYPE, bindMethods, bindOnce, debounce, generateHash, module, taiga,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n bindMethods = this.taiga.bindMethods;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n generateHash = taiga.generateHash;\n\n module = angular.module(\"taigaCommon\");\n\n TEXT_TYPE = \"text\";\n\n RICHTEXT_TYPE = \"url\";\n\n MULTILINE_TYPE = \"multiline\";\n\n DATE_TYPE = \"date\";\n\n URL_TYPE = \"url\";\n\n TYPE_CHOICES = [\n {\n key: TEXT_TYPE,\n name: \"ADMIN.CUSTOM_FIELDS.FIELD_TYPE_TEXT\"\n }, {\n key: MULTILINE_TYPE,\n name: \"ADMIN.CUSTOM_FIELDS.FIELD_TYPE_MULTI\"\n }, {\n key: DATE_TYPE,\n name: \"ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE\"\n }, {\n key: URL_TYPE,\n name: \"ADMIN.CUSTOM_FIELDS.FIELD_TYPE_URL\"\n }, {\n key: RICHTEXT_TYPE,\n name: \"ADMIN.CUSTOM_FIELDS.FIELD_TYPE_RICHTEXT\"\n }\n ];\n\n CustomAttributesValuesController = (function(superClass) {\n extend(CustomAttributesValuesController, superClass);\n\n CustomAttributesValuesController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgResources\", \"$tgConfirm\", \"$q\"];\n\n function CustomAttributesValuesController(scope, rootscope, repo, rs, confirm, q) {\n this.scope = scope;\n this.rootscope = rootscope;\n this.repo = repo;\n this.rs = rs;\n this.confirm = confirm;\n this.q = q;\n bindMethods(this);\n this.type = null;\n this.objectId = null;\n this.projectId = null;\n this.customAttributes = [];\n this.customAttributesValues = null;\n }\n\n CustomAttributesValuesController.prototype.initialize = function(type, objectId) {\n this.project = this.scope.project;\n this.type = type;\n this.objectId = objectId;\n return this.projectId = this.scope.projectId;\n };\n\n CustomAttributesValuesController.prototype.loadCustomAttributesValues = function() {\n if (!this.objectId) {\n return this.customAttributesValues;\n }\n return this.rs.customAttributesValues[this.type].get(this.objectId).then((function(_this) {\n return function(customAttributesValues) {\n _this.customAttributes = _this.project[_this.type + \"_custom_attributes\"];\n _this.customAttributesValues = customAttributesValues;\n return customAttributesValues;\n };\n })(this));\n };\n\n CustomAttributesValuesController.prototype.getAttributeValue = function(attribute) {\n var attributeValue;\n attributeValue = _.clone(attribute, false);\n attributeValue.value = this.customAttributesValues.attributes_values[attribute.id];\n return attributeValue;\n };\n\n CustomAttributesValuesController.prototype.updateAttributeValue = function(attributeValue) {\n var attributesValues, onError, onSuccess;\n onSuccess = (function(_this) {\n return function() {\n return _this.rootscope.$broadcast(\"custom-attributes-values:edit\");\n };\n })(this);\n onError = (function(_this) {\n return function(response) {\n _this.confirm.notify(\"error\");\n return _this.q.reject();\n };\n })(this);\n attributesValues = _.clone(this.customAttributesValues.attributes_values, true);\n attributesValues[attributeValue.id] = attributeValue.value;\n this.customAttributesValues.attributes_values = attributesValues;\n this.customAttributesValues.id = this.objectId;\n return this.repo.save(this.customAttributesValues).then(onSuccess, onError);\n };\n\n return CustomAttributesValuesController;\n\n })(taiga.Controller);\n\n CustomAttributesValuesDirective = function($templates, $storage) {\n var collapsedHash, link, template, templateFn;\n template = $templates.get(\"custom-attributes/custom-attributes-values.html\", true);\n collapsedHash = function(type) {\n return generateHash([\"custom-attributes-collapsed\", type]);\n };\n link = function($scope, $el, $attrs, $ctrls) {\n var $ctrl, $model, hash;\n $ctrl = $ctrls[0];\n $model = $ctrls[1];\n hash = collapsedHash($attrs.type);\n $scope.collapsed = $storage.get(hash) || false;\n bindOnce($scope, $attrs.ngModel, function(value) {\n $ctrl.initialize($attrs.type, value.id);\n return $ctrl.loadCustomAttributesValues();\n });\n $scope.toggleCollapse = function() {\n $scope.collapsed = !$scope.collapsed;\n return $storage.set(hash, $scope.collapsed);\n };\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n templateFn = function($el, $attrs) {\n return template({\n requiredEditionPerm: $attrs.requiredEditionPerm\n });\n };\n return {\n require: [\"tgCustomAttributesValues\", \"ngModel\"],\n controller: CustomAttributesValuesController,\n controllerAs: \"ctrl\",\n restrict: \"AE\",\n scope: true,\n link: link,\n template: templateFn\n };\n };\n\n module.directive(\"tgCustomAttributesValues\", [\"$tgTemplate\", \"$tgStorage\", \"$translate\", CustomAttributesValuesDirective]);\n\n CustomAttributeValueDirective = function($template, $selectedText, $compile, $translate, datePickerConfigService) {\n var link, template, templateEdit;\n template = $template.get(\"custom-attributes/custom-attribute-value.html\", true);\n templateEdit = $template.get(\"custom-attributes/custom-attribute-value-edit.html\", true);\n link = function($scope, $el, $attrs, $ctrl) {\n var attributeValue, isEditable, prettyDate, render, setFocusAndSelectOnInputField, submit;\n prettyDate = $translate.instant(\"COMMON.PICKERDATE.FORMAT\");\n render = function(attributeValue, edit) {\n var ctx, datePickerConfig, editable, html, value;\n if (edit == null) {\n edit = false;\n }\n if (attributeValue.type === DATE_TYPE && attributeValue.value) {\n value = moment(attributeValue.value, \"YYYY-MM-DD\").format(prettyDate);\n } else {\n value = attributeValue.value;\n }\n editable = isEditable();\n ctx = {\n id: attributeValue.id,\n name: attributeValue.name,\n description: attributeValue.description,\n value: value,\n isEditable: editable,\n type: attributeValue.type\n };\n if (editable && (edit || !value)) {\n html = templateEdit(ctx);\n html = $compile(html)($scope);\n $el.html(html);\n if (attributeValue.type === DATE_TYPE) {\n datePickerConfig = datePickerConfigService.get();\n _.merge(datePickerConfig, {\n field: $el.find(\"input[name=value]\")[0],\n onSelect: (function(_this) {\n return function(date) {\n var selectedDate;\n return selectedDate = date;\n };\n })(this),\n onOpen: (function(_this) {\n return function() {\n if (typeof selectedDate !== \"undefined\" && selectedDate !== null) {\n return $el.picker.setDate(selectedDate);\n }\n };\n })(this)\n });\n return $el.picker = new Pikaday(datePickerConfig);\n }\n } else {\n html = template(ctx);\n html = $compile(html)($scope);\n return $el.html(html);\n }\n };\n isEditable = function() {\n var permissions, requiredEditionPerm;\n permissions = $scope.project.my_permissions;\n requiredEditionPerm = $attrs.requiredEditionPerm;\n return permissions.indexOf(requiredEditionPerm) > -1;\n };\n $scope.saveCustomRichText = (function(_this) {\n return function(markdown, callback) {\n attributeValue.value = markdown;\n return $ctrl.updateAttributeValue(attributeValue).then(function() {\n callback();\n return render(attributeValue, false);\n });\n };\n })(this);\n $scope.cancelCustomRichText = (function(_this) {\n return function() {\n return render(attributeValue, false);\n };\n })(this);\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var form, input;\n event.preventDefault();\n form = $el.find(\"form\").checksley();\n if (!form.validate()) {\n return;\n }\n input = $el.find(\"input[name=value], textarea[name='value']\");\n attributeValue.value = input.val();\n if (attributeValue.type === DATE_TYPE) {\n if (moment(attributeValue.value, prettyDate).isValid()) {\n attributeValue.value = moment(attributeValue.value, prettyDate).format(\"YYYY-MM-DD\");\n }\n }\n return $scope.$apply(function() {\n return $ctrl.updateAttributeValue(attributeValue).then(function() {\n return render(attributeValue, false);\n });\n });\n };\n })(this));\n setFocusAndSelectOnInputField = function() {\n return $el.find(\"input[name='value'], textarea[name='value']\").focus().select();\n };\n attributeValue = $scope.$eval($attrs.tgCustomAttributeValue);\n if (attributeValue.value === null || attributeValue.value === void 0) {\n attributeValue.value = \"\";\n }\n $scope.customAttributeValue = attributeValue;\n render(attributeValue);\n $el.on(\"click\", \".js-value-view-mode span a\", function(event) {\n return event.stopPropagation();\n });\n $el.on(\"click\", \".js-value-view-mode\", function() {\n if (!isEditable()) {\n return;\n }\n if ($selectedText.get().length) {\n return;\n }\n render(attributeValue, true);\n return setFocusAndSelectOnInputField();\n });\n $el.on(\"click\", \".js-edit-description\", function(event) {\n event.preventDefault();\n render(attributeValue, true);\n return setFocusAndSelectOnInputField();\n });\n $el.on(\"keyup\", \"input[name=value], textarea[name='value']\", function(event) {\n if (event.keyCode === 13 && event.currentTarget.type !== \"textarea\") {\n return submit(event);\n } else if (event.keyCode === 27) {\n return render(attributeValue, false);\n }\n });\n $el.on(\"submit\", \"form\", submit);\n $el.on(\"click\", \".js-save-description\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"^tgCustomAttributesValues\",\n restrict: \"AE\"\n };\n };\n\n module.directive(\"tgCustomAttributeValue\", [\"$tgTemplate\", \"$selectedText\", \"$compile\", \"$translate\", \"tgDatePickerConfigService\", CustomAttributeValueDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/estimation.coffee\n */\n\n(function() {\n var EstimationsService, LbUsEstimationDirective, UsEstimationDirective, groupBy, module, taiga,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n taiga = this.taiga;\n\n groupBy = this.taiga.groupBy;\n\n module = angular.module(\"taigaCommon\");\n\n LbUsEstimationDirective = function($tgEstimationsService, $rootScope, $repo, $template, $compile) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n $scope.$watch($attrs.ngModel, function(us) {\n var estimationProcess;\n if (us) {\n estimationProcess = $tgEstimationsService.create($el, us, $scope.project);\n estimationProcess.onSelectedPointForRole = function(roleId, pointId, points) {\n us.points = points;\n estimationProcess.render();\n return $scope.$apply(function() {\n return $model.$setViewValue(us);\n });\n };\n estimationProcess.render = function() {\n var ctx, html, mainTemplate, template;\n ctx = {\n totalPoints: this.calculateTotalPoints(),\n roles: this.calculateRoles(),\n editable: this.isEditable,\n loading: false\n };\n mainTemplate = \"common/estimation/us-estimation-points-per-role.html\";\n template = $template.get(mainTemplate, true);\n html = template(ctx);\n html = $compile(html)($scope);\n return this.$el.html(html);\n };\n return estimationProcess.render();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgLbUsEstimation\", [\"$tgEstimationsService\", \"$rootScope\", \"$tgRepo\", \"$tgTemplate\", \"$compile\", LbUsEstimationDirective]);\n\n UsEstimationDirective = function($tgEstimationsService, $rootScope, $repo, $template, $compile, $modelTransform, $confirm) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var save;\n save = function(points) {\n var onError, transform;\n transform = $modelTransform.save((function(_this) {\n return function(us) {\n us.points = points;\n return us;\n };\n })(this));\n onError = (function(_this) {\n return function() {\n return $confirm.notify(\"error\");\n };\n })(this);\n return transform.then(null, onError);\n };\n $scope.$watchCollection(function() {\n return $model.$modelValue && $model.$modelValue.points;\n }, function() {\n var estimationProcess, us;\n us = $model.$modelValue;\n if (us) {\n estimationProcess = $tgEstimationsService.create($el, us, $scope.project);\n estimationProcess.onSelectedPointForRole = function(roleId, pointId, points) {\n estimationProcess.loading = roleId;\n estimationProcess.render();\n return save(points).then(function() {\n estimationProcess.loading = false;\n $rootScope.$broadcast(\"object:updated\");\n return estimationProcess.render();\n });\n };\n estimationProcess.render = function() {\n var ctx, html, mainTemplate, template;\n ctx = {\n totalPoints: this.calculateTotalPoints(),\n roles: this.calculateRoles(),\n editable: this.isEditable,\n loading: estimationProcess.loading\n };\n mainTemplate = \"common/estimation/us-estimation-points-per-role.html\";\n template = $template.get(mainTemplate, true);\n html = template(ctx);\n html = $compile(html)($scope);\n return this.$el.html(html);\n };\n return estimationProcess.render();\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n restrict: \"EA\",\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgUsEstimation\", [\"$tgEstimationsService\", \"$rootScope\", \"$tgRepo\", \"$tgTemplate\", \"$compile\", \"$tgQueueModelTransformation\", \"$tgConfirm\", UsEstimationDirective]);\n\n EstimationsService = function($template, $repo, $confirm, $q, $qqueue) {\n var EstimationProcess, create, pointsTemplate;\n pointsTemplate = $template.get(\"common/estimation/us-estimation-points.html\", true);\n EstimationProcess = (function() {\n function EstimationProcess($el1, us1, project1) {\n this.$el = $el1;\n this.us = us1;\n this.project = project1;\n this.bindClickEvents = bind(this.bindClickEvents, this);\n this.isEditable = this.project.my_permissions.indexOf(\"modify_us\") !== -1;\n this.roles = this.project.roles;\n this.points = this.project.points;\n this.loading = false;\n this.pointsById = groupBy(this.points, function(x) {\n return x.id;\n });\n this.onSelectedPointForRole = function(roleId, pointId) {};\n this.render = function() {};\n }\n\n EstimationProcess.prototype.save = function(roleId, pointId) {\n var deferred;\n deferred = $q.defer();\n $qqueue.add((function(_this) {\n return function() {\n var onError, onSuccess;\n onSuccess = function() {\n deferred.resolve();\n return _this.render();\n };\n onError = function() {\n $confirm.notify(\"error\");\n _this.us.revert();\n _this.render();\n return deferred.reject();\n };\n return $repo.save(_this.us).then(onSuccess, onError);\n };\n })(this));\n return deferred.promise;\n };\n\n EstimationProcess.prototype.calculateTotalPoints = function() {\n var notNullValues, values;\n values = _.map(this.us.points, (function(_this) {\n return function(v, k) {\n var ref;\n return (ref = _this.pointsById[v]) != null ? ref.value : void 0;\n };\n })(this));\n if (values.length === 0) {\n return \"?\";\n }\n notNullValues = _.filter(values, function(v) {\n return v != null;\n });\n if (notNullValues.length === 0) {\n return \"?\";\n }\n return _.reduce(notNullValues, function(acc, num) {\n return acc + num;\n });\n };\n\n EstimationProcess.prototype.calculateRoles = function() {\n var computableRoles, roles;\n computableRoles = _.filter(this.project.roles, \"computable\");\n roles = _.map(computableRoles, (function(_this) {\n return function(role) {\n var pointId, pointObj;\n pointId = _this.us.points[role.id];\n pointObj = _this.pointsById[pointId];\n role = _.clone(role, true);\n role.points = (pointObj != null) && (pointObj.name != null) ? pointObj.name : \"?\";\n return role;\n };\n })(this));\n return roles;\n };\n\n EstimationProcess.prototype.bindClickEvents = function() {\n this.$el.on(\"click\", \".total.clickable\", (function(_this) {\n return function(event) {\n var roleId, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n roleId = target.data(\"role-id\");\n _this.renderPointsSelector(roleId, target);\n target.siblings().removeClass('active');\n return target.addClass('active');\n };\n })(this));\n return this.$el.on(\"click\", \".point\", (function(_this) {\n return function(event) {\n var pointId, points, roleId, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n roleId = target.data(\"role-id\");\n pointId = target.data(\"point-id\");\n _this.$el.find(\".popover\").popover().close();\n points = _.clone(_this.us.points, true);\n points[roleId] = pointId;\n return _this.onSelectedPointForRole(roleId, pointId, points);\n };\n })(this));\n };\n\n EstimationProcess.prototype.renderPointsSelector = function(roleId, target) {\n var horizontalList, html, maxPointLength, points, pop;\n points = _.map(this.points, (function(_this) {\n return function(point) {\n point = _.clone(point, true);\n point.selected = _this.us.points[roleId] === point.id ? false : true;\n return point;\n };\n })(this));\n maxPointLength = 5;\n horizontalList = _.some(points, (function(_this) {\n return function(point) {\n return point.name.length > maxPointLength;\n };\n })(this));\n html = pointsTemplate({\n \"points\": points,\n roleId: roleId,\n horizontal: horizontalList\n });\n this.$el.find(\".popover\").popover().close();\n this.$el.find(\".pop-points-open\").remove();\n if (target != null) {\n this.$el.find(target).append(html);\n } else {\n this.$el.append(html);\n }\n this.$el.find(\".pop-points-open\").popover().open(function() {\n return $(this).removeClass(\"active\").closest(\"li\").removeClass(\"active\");\n });\n this.$el.find(\".pop-points-open\").show();\n pop = this.$el.find(\".pop-points-open\");\n if (pop.offset().top + pop.height() > document.body.clientHeight) {\n return pop.addClass('pop-bottom');\n }\n };\n\n return EstimationProcess;\n\n })();\n create = function($el, us, project) {\n var estimationProcess;\n $el.unbind(\"click\");\n estimationProcess = new EstimationProcess($el, us, project);\n if (estimationProcess.isEditable) {\n estimationProcess.bindClickEvents();\n }\n return estimationProcess;\n };\n return {\n create: create\n };\n };\n\n module.factory(\"$tgEstimationsService\", [\"$tgTemplate\", \"$tgRepo\", \"$tgConfirm\", \"$q\", \"$tgQqueue\", EstimationsService]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/filters.coffee\n */\n\n(function() {\n var byRefFilter, darkerFilter, defaultFilter, inArray, markdownToHTML, module, momentFormat, momentFromNow, sizeFormat, taiga, toMutableFilter, unslugify, yesNoFilter;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\");\n\n defaultFilter = function() {\n return function(value, defaultValue) {\n if (value === [null, void 0]) {\n return defaultValue;\n }\n return value;\n };\n };\n\n module.filter(\"default\", defaultFilter);\n\n yesNoFilter = function($translate) {\n return function(value) {\n if (value) {\n return $translate.instant(\"COMMON.YES\");\n }\n return $translate.instant(\"COMMON.NO\");\n };\n };\n\n module.filter(\"yesNo\", [\"$translate\", yesNoFilter]);\n\n unslugify = function() {\n return taiga.unslugify;\n };\n\n module.filter(\"unslugify\", unslugify);\n\n momentFormat = function() {\n return function(input, format) {\n if (input) {\n return moment(input).format(format);\n }\n return \"\";\n };\n };\n\n module.filter(\"momentFormat\", momentFormat);\n\n momentFromNow = function() {\n return function(input, without_suffix) {\n if (input) {\n return moment(input).fromNow(without_suffix || false);\n }\n return \"\";\n };\n };\n\n module.filter(\"momentFromNow\", momentFromNow);\n\n sizeFormat = (function(_this) {\n return function() {\n return _this.taiga.sizeFormat;\n };\n })(this);\n\n module.filter(\"sizeFormat\", sizeFormat);\n\n toMutableFilter = function() {\n var memoizedMutable, toMutable;\n toMutable = function(js) {\n return js.toJS();\n };\n memoizedMutable = _.memoize(toMutable);\n return function(input) {\n if (input instanceof Immutable.List) {\n return memoizedMutable(input);\n }\n return input;\n };\n };\n\n module.filter(\"toMutable\", toMutableFilter);\n\n byRefFilter = function($filterFilter) {\n return function(userstories, filter) {\n var cleanRef;\n if (filter != null ? filter.startsWith(\"#\") : void 0) {\n cleanRef = filter.substr(1);\n return _.filter(userstories, (function(_this) {\n return function(us) {\n return String(us.ref).startsWith(cleanRef);\n };\n })(this));\n }\n return $filterFilter(userstories, filter);\n };\n };\n\n module.filter(\"byRef\", [\"filterFilter\", byRefFilter]);\n\n darkerFilter = function() {\n return function(color, luminosity) {\n var black, c, i, j, len, newColor, ref, white;\n color = new String(color).replace(/[^0-9a-f]/gi, '');\n if (color.length < 6) {\n color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];\n }\n luminosity = luminosity || 0;\n newColor = \"#\";\n c = 0;\n i = 0;\n black = 0;\n white = 255;\n ref = [0, 1, 2];\n for (j = 0, len = ref.length; j < len; j++) {\n i = ref[j];\n c = parseInt(color.substr(i * 2, 2), 16);\n c = Math.round(Math.min(Math.max(black, c + (luminosity * white)), white)).toString(16);\n newColor += (\"00\" + c).substr(c.length);\n }\n return newColor;\n };\n };\n\n module.filter(\"darker\", darkerFilter);\n\n markdownToHTML = function(wysiwigService) {\n return function(input) {\n if (input) {\n return wysiwigService.getHTML(input);\n }\n return \"\";\n };\n };\n\n module.filter(\"markdownToHTML\", [\"tgWysiwygService\", markdownToHTML]);\n\n inArray = function($filter) {\n return function(list, arrayFilter, element) {\n var filter;\n if (arrayFilter) {\n filter = $filter(\"filter\");\n return filter(list, function(listItem) {\n return arrayFilter.indexOf(listItem[element]) !== -1;\n });\n }\n };\n };\n\n module.filter(\"inArray\", [\"$filter\", inArray]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/lightboxes.coffee\n */\n\n(function() {\n var AssignedToLightboxDirective, BlockLightboxDirective, BlockingMessageInputDirective, CreateBulkUserstoriesDirective, CreateEditUserstoryDirective, LightboxDirective, LightboxKeyboardNavigationService, LightboxLeaveProjectWarningDirective, LightboxService, WatchersLightboxDirective, bindOnce, debounce, module, sizeFormat, timeout, trim,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n module = angular.module(\"taigaCommon\");\n\n bindOnce = this.taiga.bindOnce;\n\n timeout = this.taiga.timeout;\n\n debounce = this.taiga.debounce;\n\n sizeFormat = this.taiga.sizeFormat;\n\n trim = this.taiga.trim;\n\n LightboxService = (function(superClass) {\n extend(LightboxService, superClass);\n\n function LightboxService(animationFrame, q, rootScope) {\n this.animationFrame = animationFrame;\n this.q = q;\n this.rootScope = rootScope;\n }\n\n LightboxService.prototype.open = function($el, onClose, onEsc) {\n var defered, docEl, lightboxContent;\n this.onClose = onClose;\n if (_.isString($el)) {\n $el = $($el);\n }\n defered = this.q.defer();\n lightboxContent = $el.children().not(\".close\");\n lightboxContent.hide();\n this.animationFrame.add(function() {\n return $el.css('display', 'flex');\n });\n this.animationFrame.add(function() {\n $el.addClass(\"open\");\n return $el.one(\"transitionend\", (function(_this) {\n return function() {\n var firstField;\n firstField = $el.find('input,textarea').first();\n if (firstField.length) {\n return $el.find('input,textarea').first().focus();\n } else if (document.activeElement) {\n return $(document.activeElement).blur();\n }\n };\n })(this));\n });\n this.animationFrame.add((function(_this) {\n return function() {\n lightboxContent.show();\n return defered.resolve();\n };\n })(this));\n docEl = angular.element(document);\n docEl.on(\"keydown.lightbox\", (function(_this) {\n return function(e) {\n var code;\n code = e.keyCode ? e.keyCode : e.which;\n if (code === 27) {\n if (onEsc) {\n return _this.rootScope.$applyAsync(onEsc);\n } else {\n return _this.close($el);\n }\n }\n };\n })(this));\n return defered.promise;\n };\n\n LightboxService.prototype.close = function($el) {\n return new Promise((function(_this) {\n return function(resolve) {\n var docEl, scope;\n if (_.isString($el)) {\n $el = $($el);\n }\n docEl = angular.element(document);\n docEl.off(\".lightbox\");\n docEl.off(\".keyboard-navigation\");\n $el.addClass('close-started');\n _this.animationFrame.add(function() {\n $el.addClass('close');\n return $el.one(\"transitionend\", function() {\n $el.removeAttr('style');\n $el.removeClass(\"open\").removeClass('close').removeClass('close-started');\n if (_this.onClose) {\n _this.rootScope.$apply(_this.onClose);\n }\n return resolve();\n });\n });\n if ($el.hasClass(\"remove-on-close\")) {\n scope = $el.data(\"scope\");\n if (scope) {\n scope.$destroy();\n }\n return $el.remove();\n }\n };\n })(this));\n };\n\n LightboxService.prototype.getLightboxOpen = function() {\n return $(\".lightbox.open:not(.close-started)\");\n };\n\n LightboxService.prototype.closeAll = function() {\n var docEl, i, len, lightboxEl, ref, results;\n docEl = angular.element(document);\n ref = docEl.find(\".lightbox.open\");\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n lightboxEl = ref[i];\n results.push(this.close($(lightboxEl)));\n }\n return results;\n };\n\n return LightboxService;\n\n })(taiga.Service);\n\n module.service(\"lightboxService\", [\"animationFrame\", \"$q\", \"$rootScope\", LightboxService]);\n\n LightboxKeyboardNavigationService = (function(superClass) {\n extend(LightboxKeyboardNavigationService, superClass);\n\n function LightboxKeyboardNavigationService() {\n return LightboxKeyboardNavigationService.__super__.constructor.apply(this, arguments);\n }\n\n LightboxKeyboardNavigationService.prototype.stop = function() {\n var docEl;\n docEl = angular.element(document);\n return docEl.off(\".keyboard-navigation\");\n };\n\n LightboxKeyboardNavigationService.prototype.dispatch = function($el, code) {\n var activeElement, next, prev;\n activeElement = $el.find(\".selected\");\n if (code === 13) {\n if ($el.find(\".user-list-single\").length === 1) {\n return $el.find('.user-list-single:first').trigger(\"click\");\n } else {\n return activeElement.trigger(\"click\");\n }\n } else if (code === 40) {\n if (!activeElement.length) {\n return $el.find('.user-list-single:not(\".is-active\"):first').addClass('selected');\n } else {\n next = activeElement.next('.user-list-single');\n if (next.length) {\n activeElement.removeClass('selected');\n return next.addClass('selected');\n }\n }\n } else if (code === 38) {\n if (!activeElement.length) {\n return $el.find('.user-list-single:last').addClass('selected');\n } else {\n prev = activeElement.prev('.user-list-single:not(\".is-active\")');\n if (prev.length) {\n activeElement.removeClass('selected');\n return prev.addClass('selected');\n }\n }\n }\n };\n\n LightboxKeyboardNavigationService.prototype.init = function($el) {\n var docEl;\n this.stop();\n docEl = angular.element(document);\n return docEl.on(\"keydown.keyboard-navigation\", (function(_this) {\n return function(event) {\n var code;\n code = event.keyCode ? event.keyCode : event.which;\n if (code === 40 || code === 38 || code === 13) {\n event.preventDefault();\n return _this.dispatch($el, code);\n }\n };\n })(this));\n };\n\n return LightboxKeyboardNavigationService;\n\n })(taiga.Service);\n\n module.service(\"lightboxKeyboardNavigationService\", LightboxKeyboardNavigationService);\n\n LightboxDirective = function(lightboxService) {\n var link;\n link = function($scope, $el, $attrs) {\n if (!$attrs.$attr.visible) {\n return $el.on(\"click\", \".close\", function(event) {\n event.preventDefault();\n return lightboxService.close($el);\n });\n }\n };\n return {\n restrict: \"C\",\n link: link\n };\n };\n\n module.directive(\"lightbox\", [\"lightboxService\", LightboxDirective]);\n\n BlockLightboxDirective = function($rootscope, $tgrepo, $confirm, lightboxService, $loading, $modelTransform, $translate) {\n var link;\n link = function($scope, $el, $attrs, $model) {\n var block, title, unblock;\n title = $translate.instant($attrs.title);\n $el.find(\"h2.title\").text(title);\n unblock = (function(_this) {\n return function(finishCallback) {\n var transform;\n transform = $modelTransform.save(function(item) {\n item.is_blocked = false;\n item.blocked_note = \"\";\n return item;\n });\n transform.then(function() {\n $confirm.notify(\"success\");\n $rootscope.$broadcast(\"object:updated\");\n return finishCallback();\n });\n transform.then(null, function() {\n $confirm.notify(\"error\");\n return item.revert();\n });\n transform[\"finally\"](function() {\n return finishCallback();\n });\n return transform;\n };\n })(this);\n block = function() {\n var currentLoading, transform;\n currentLoading = $loading().target($el.find(\".button-green\")).start();\n transform = $modelTransform.save(function(item) {\n item.is_blocked = true;\n item.blocked_note = $el.find(\".reason\").val();\n return item;\n });\n transform.then(function() {\n $confirm.notify(\"success\");\n return $rootscope.$broadcast(\"object:updated\");\n });\n transform.then(null, function() {\n return $confirm.notify(\"error\");\n });\n return transform[\"finally\"](function() {\n currentLoading.finish();\n return lightboxService.close($el);\n });\n };\n $scope.$on(\"block\", function() {\n $el.find(\".reason\").val($model.$modelValue.blocked_note);\n return lightboxService.open($el);\n });\n $scope.$on(\"unblock\", (function(_this) {\n return function(event, model, finishCallback) {\n return unblock(finishCallback);\n };\n })(this));\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n return $el.on(\"click\", \".button-green\", function(event) {\n event.preventDefault();\n return block();\n });\n };\n return {\n templateUrl: \"common/lightbox/lightbox-block.html\",\n link: link,\n require: \"ngModel\"\n };\n };\n\n module.directive(\"tgLbBlock\", [\"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"lightboxService\", \"$tgLoading\", \"$tgQueueModelTransformation\", \"$translate\", BlockLightboxDirective]);\n\n BlockingMessageInputDirective = function($log, $template, $compile) {\n var link, template, templateFn;\n template = $template.get(\"common/lightbox/lightbox-blocking-message-input.html\", true);\n link = function($scope, $el, $attrs, $model) {\n if (!$attrs.watch) {\n return $log.error(\"No watch attribute on tg-blocking-message-input directive\");\n }\n return $scope.$watch($attrs.watch, function(value) {\n if (value === !void 0 && value === true) {\n return $el.find(\".blocked-note\").removeClass(\"hidden\");\n } else {\n return $el.find(\".blocked-note\").addClass(\"hidden\");\n }\n });\n };\n templateFn = function($el, $attrs) {\n return template({\n ngmodel: $attrs.ngModel\n });\n };\n return {\n template: templateFn,\n link: link,\n require: \"ngModel\",\n restrict: \"EA\"\n };\n };\n\n module.directive(\"tgBlockingMessageInput\", [\"$log\", \"$tgTemplate\", \"$compile\", BlockingMessageInputDirective]);\n\n CreateEditUserstoryDirective = function($repo, $model, $rs, $rootScope, lightboxService, $loading, $translate, $confirm, $q, attachmentsService) {\n var link;\n link = function($scope, $el, attrs) {\n var attachmentsToAdd, attachmentsToDelete, createAttachments, deleteAttachments, form, resetAttachments, submit, submitButton;\n form = null;\n $scope.createEditUs = {};\n $scope.isNew = true;\n attachmentsToAdd = Immutable.List();\n attachmentsToDelete = Immutable.List();\n resetAttachments = function() {\n attachmentsToAdd = Immutable.List();\n return attachmentsToDelete = Immutable.List();\n };\n $scope.addAttachment = function(attachment) {\n return attachmentsToAdd = attachmentsToAdd.push(attachment);\n };\n $scope.deleteAttachment = function(attachment) {\n attachmentsToAdd = attachmentsToAdd.filter(function(it) {\n return it.get('name') !== attachment.get('name');\n });\n if (attachment.get(\"id\")) {\n return attachmentsToDelete = attachmentsToDelete.push(attachment);\n }\n };\n $scope.addTag = function(tag, color) {\n var inserted, itemtags, projectTags, tags, value;\n value = trim(tag.toLowerCase());\n tags = $scope.project.tags;\n projectTags = $scope.project.tags_colors;\n if (tags == null) {\n tags = [];\n }\n if (projectTags == null) {\n projectTags = {};\n }\n if (indexOf.call(tags, value) < 0) {\n tags.push(value);\n }\n projectTags[tag] = color || null;\n $scope.project.tags = tags;\n itemtags = _.clone($scope.us.tags);\n inserted = _.find(itemtags, function(it) {\n return it[0] === value;\n });\n if (!inserted) {\n itemtags.push([value, color]);\n return $scope.us.tags = itemtags;\n }\n };\n $scope.deleteTag = function(tag) {\n var itemtags, tags, value;\n value = trim(tag[0].toLowerCase());\n tags = $scope.project.tags;\n itemtags = _.clone($scope.us.tags);\n _.remove(itemtags, function(tag) {\n return tag[0] === value;\n });\n $scope.us.tags = itemtags;\n return _.pull($scope.us.tags, value);\n };\n $scope.$on(\"usform:new\", function(ctx, projectId, status, statusList) {\n if (form) {\n form.reset();\n }\n $scope.isNew = true;\n $scope.usStatusList = statusList;\n $scope.attachments = Immutable.List();\n resetAttachments();\n $scope.us = $model.make_model(\"userstories\", {\n project: projectId,\n points: {},\n status: status,\n is_archived: false,\n tags: []\n });\n $el.find(\".button-green\").html($translate.instant(\"COMMON.CREATE\"));\n $el.find(\".title\").html($translate.instant(\"LIGHTBOX.CREATE_EDIT_US.NEW_US\"));\n $el.find(\".tag-input\").val(\"\");\n $el.find(\".blocked-note\").addClass(\"hidden\");\n $el.find(\"label.blocked\").removeClass(\"selected\");\n $el.find(\"label.team-requirement\").removeClass(\"selected\");\n $el.find(\"label.client-requirement\").removeClass(\"selected\");\n $scope.createEditUsOpen = true;\n return lightboxService.open($el, function() {\n return $scope.createEditUsOpen = false;\n });\n });\n $scope.$on(\"usform:edit\", function(ctx, us, attachments) {\n if (form) {\n form.reset();\n }\n $scope.us = us;\n $scope.attachments = Immutable.fromJS(attachments);\n $scope.isNew = false;\n resetAttachments();\n $el.find(\".button-green\").html($translate.instant(\"COMMON.SAVE\"));\n $el.find(\".title\").html($translate.instant(\"LIGHTBOX.CREATE_EDIT_US.EDIT_US\"));\n $el.find(\".tag-input\").val(\"\");\n if (us.is_blocked) {\n $el.find(\".blocked-note\").removeClass(\"hidden\");\n $el.find(\"label.blocked\").addClass(\"selected\");\n } else {\n $el.find(\".blocked-note\").addClass(\"hidden\");\n $el.find(\"label.blocked\").removeClass(\"selected\");\n }\n if (us.team_requirement) {\n $el.find(\"label.team-requirement\").addClass(\"selected\");\n } else {\n $el.find(\"label.team-requirement\").removeClass(\"selected\");\n }\n if (us.client_requirement) {\n $el.find(\"label.client-requirement\").addClass(\"selected\");\n } else {\n $el.find(\"label.client-requirement\").removeClass(\"selected\");\n }\n $scope.createEditUsOpen = true;\n return lightboxService.open($el, function() {\n return $scope.createEditUsOpen = false;\n });\n });\n createAttachments = function(obj) {\n var promises;\n promises = _.map(attachmentsToAdd.toJS(), function(attachment) {\n return attachmentsService.upload(attachment.file, obj.id, $scope.us.project, 'us');\n });\n return $q.all(promises);\n };\n deleteAttachments = function(obj) {\n var promises;\n promises = _.map(attachmentsToDelete.toJS(), function(attachment) {\n return attachmentsService[\"delete\"](\"us\", attachment.id);\n });\n return $q.all(promises);\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var broadcastEvent, currentLoading, params, promise;\n event.preventDefault();\n form = $el.find(\"form\").checksley();\n if (!form.validate()) {\n return;\n }\n currentLoading = $loading().target(submitButton).start();\n params = {\n include_attachments: true,\n include_tasks: true\n };\n if ($scope.isNew) {\n promise = $repo.create(\"userstories\", $scope.us);\n broadcastEvent = \"usform:new:success\";\n } else {\n promise = $repo.save($scope.us, true);\n broadcastEvent = \"usform:edit:success\";\n }\n promise.then(function(data) {\n return deleteAttachments(data).then((function(_this) {\n return function() {\n return createAttachments(data);\n };\n })(this)).then((function(_this) {\n return function() {\n currentLoading.finish();\n lightboxService.close($el);\n return $rs.userstories.getByRef(data.project, data.ref, params).then(function(us) {\n return $rootScope.$broadcast(broadcastEvent, us);\n });\n };\n })(this));\n });\n return promise.then(null, function(data) {\n currentLoading.finish();\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n $el.on(\"click\", \".close\", function(event) {\n event.preventDefault();\n $scope.$apply(function() {\n return $scope.us.revert();\n });\n return lightboxService.close($el);\n });\n $el.keydown(function(event) {\n var code;\n code = event.keyCode ? event.keyCode : event.which;\n if (code === 27) {\n lightboxService.close($el);\n return $scope.$apply(function() {\n return $scope.us.revert();\n });\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLbCreateEditUserstory\", [\"$tgRepo\", \"$tgModel\", \"$tgResources\", \"$rootScope\", \"lightboxService\", \"$tgLoading\", \"$translate\", \"$tgConfirm\", \"$q\", \"tgAttachmentsService\", CreateEditUserstoryDirective]);\n\n CreateBulkUserstoriesDirective = function($repo, $rs, $rootscope, lightboxService, $loading, $model) {\n var link;\n link = function($scope, $el, attrs) {\n var form, submit, submitButton;\n form = null;\n $scope.$on(\"usform:bulk\", function(ctx, projectId, status) {\n if (form) {\n form.reset();\n }\n $scope[\"new\"] = {\n projectId: projectId,\n statusId: status,\n bulk: \"\"\n };\n return lightboxService.open($el);\n });\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var currentLoading, promise;\n event.preventDefault();\n form = $el.find(\"form\").checksley({\n onlyOneErrorElement: true\n });\n if (!form.validate()) {\n return;\n }\n currentLoading = $loading().target(submitButton).start();\n promise = $rs.userstories.bulkCreate($scope[\"new\"].projectId, $scope[\"new\"].statusId, $scope[\"new\"].bulk);\n promise.then(function(result) {\n result = _.map(result.data, (function(_this) {\n return function(x) {\n return $model.make_model('userstories', x);\n };\n })(this));\n currentLoading.finish();\n $rootscope.$broadcast(\"usform:bulk:success\", result);\n return lightboxService.close($el);\n });\n return promise.then(null, function(data) {\n currentLoading.finish();\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"error\", data._error_message);\n }\n });\n };\n })(this));\n submitButton = $el.find(\".submit-button\");\n $el.on(\"submit\", \"form\", submit);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLbCreateBulkUserstories\", [\"$tgRepo\", \"$tgResources\", \"$rootScope\", \"lightboxService\", \"$tgLoading\", \"$tgModel\", CreateBulkUserstoriesDirective]);\n\n AssignedToLightboxDirective = function(lightboxService, lightboxKeyboardNavigationService, $template, $compile, avatarService) {\n var link;\n link = function($scope, $el, $attrs) {\n var closeLightbox, filterUsers, normalizeString, render, selectedItem, selectedUser, usersTemplate;\n selectedUser = null;\n selectedItem = null;\n usersTemplate = $template.get(\"common/lightbox/lightbox-assigned-to-users.html\", true);\n normalizeString = function(string) {\n var normalizedString;\n normalizedString = string;\n normalizedString = normalizedString.replace(\"Á\", \"A\").replace(\"Ä\", \"A\").replace(\"À\", \"A\");\n normalizedString = normalizedString.replace(\"É\", \"E\").replace(\"Ë\", \"E\").replace(\"È\", \"E\");\n normalizedString = normalizedString.replace(\"Í\", \"I\").replace(\"Ï\", \"I\").replace(\"Ì\", \"I\");\n normalizedString = normalizedString.replace(\"Ó\", \"O\").replace(\"Ö\", \"O\").replace(\"Ò\", \"O\");\n normalizedString = normalizedString.replace(\"Ú\", \"U\").replace(\"Ü\", \"U\").replace(\"Ù\", \"U\");\n return normalizedString;\n };\n filterUsers = function(text, user) {\n var username;\n username = user.full_name_display.toUpperCase();\n username = normalizeString(username);\n text = text.toUpperCase();\n text = normalizeString(text);\n return _.includes(username, text);\n };\n render = function(selected, text) {\n var ctx, html, users, visibleUsers;\n users = _.clone($scope.activeUsers, true);\n if (selected != null) {\n users = _.reject(users, {\n \"id\": selected.id\n });\n }\n users = _.sortBy(users, function(o) {\n if (o.id === $scope.user.id) {\n return 0;\n } else {\n return o.id;\n }\n });\n if (text != null) {\n users = _.filter(users, _.partial(filterUsers, text));\n }\n visibleUsers = _.slice(users, 0, 5);\n visibleUsers = _.map(visibleUsers, function(user) {\n return user.avatar = avatarService.getAvatar(user);\n });\n if (selected) {\n if (selected) {\n selected.avatar = avatarService.getAvatar(selected);\n }\n }\n ctx = {\n selected: selected,\n users: _.slice(users, 0, 5),\n showMore: users.length > 5\n };\n html = usersTemplate(ctx);\n html = $compile(html)($scope);\n return $el.find(\".assigned-to-list\").html(html);\n };\n closeLightbox = function() {\n lightboxKeyboardNavigationService.stop();\n return lightboxService.close($el);\n };\n $scope.$on(\"assigned-to:add\", function(ctx, item) {\n var assignedToId;\n selectedItem = item;\n assignedToId = item.assigned_to;\n selectedUser = $scope.usersById[assignedToId];\n render(selectedUser);\n return lightboxService.open($el).then(function() {\n $el.find('input').focus();\n return lightboxKeyboardNavigationService.init($el);\n });\n });\n $scope.$watch(\"usersSearch\", function(searchingText) {\n if (searchingText != null) {\n render(selectedUser, searchingText);\n return $el.find('input').focus();\n }\n });\n $el.on(\"click\", \".user-list-single\", function(event) {\n var target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n closeLightbox();\n return $scope.$apply(function() {\n $scope.$broadcast(\"assigned-to:added\", target.data(\"user-id\"), selectedItem);\n return $scope.usersSearch = null;\n });\n });\n $el.on(\"click\", \".remove-assigned-to\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n closeLightbox();\n return $scope.$apply(function() {\n $scope.usersSearch = null;\n return $scope.$broadcast(\"assigned-to:added\", null, selectedItem);\n });\n });\n $el.on(\"click\", \".close\", function(event) {\n event.preventDefault();\n closeLightbox();\n return $scope.$apply(function() {\n return $scope.usersSearch = null;\n });\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n templateUrl: \"common/lightbox/lightbox-assigned-to.html\",\n link: link\n };\n };\n\n module.directive(\"tgLbAssignedto\", [\"lightboxService\", \"lightboxKeyboardNavigationService\", \"$tgTemplate\", \"$compile\", \"tgAvatarService\", AssignedToLightboxDirective]);\n\n WatchersLightboxDirective = function($repo, lightboxService, lightboxKeyboardNavigationService, $template, $compile, avatarService) {\n var link;\n link = function($scope, $el, $attrs) {\n var closeLightbox, getFilteredUsers, render, selectedItem, usersTemplate;\n selectedItem = null;\n usersTemplate = $template.get(\"common/lightbox/lightbox-assigned-to-users.html\", true);\n getFilteredUsers = function(text) {\n var _filterUsers, users;\n if (text == null) {\n text = \"\";\n }\n _filterUsers = function(text, user) {\n var username;\n if (selectedItem && _.find(selectedItem.watchers, function(x) {\n return x === user.id;\n })) {\n return false;\n }\n username = user.full_name_display.toUpperCase();\n text = text.toUpperCase();\n return _.includes(username, text);\n };\n users = _.clone($scope.activeUsers, true);\n users = _.filter(users, _.partial(_filterUsers, text));\n return users;\n };\n render = function(users) {\n var ctx, html, visibleUsers;\n visibleUsers = _.slice(users, 0, 5);\n visibleUsers = _.map(visibleUsers, function(user) {\n user.avatar = avatarService.getAvatar(user);\n return user;\n });\n ctx = {\n selected: false,\n users: visibleUsers,\n showMore: users.length > 5\n };\n html = usersTemplate(ctx);\n html = $compile(html)($scope);\n return $el.find(\".ticket-watchers\").html(html);\n };\n closeLightbox = function() {\n lightboxKeyboardNavigationService.stop();\n return lightboxService.close($el);\n };\n $scope.$on(\"watcher:add\", function(ctx, item) {\n var users;\n selectedItem = item;\n users = getFilteredUsers();\n render(users);\n return lightboxService.open($el).then(function() {\n $el.find(\"input\").focus();\n return lightboxKeyboardNavigationService.init($el);\n });\n });\n $scope.$watch(\"usersSearch\", function(searchingText) {\n var users;\n if (searchingText == null) {\n return;\n }\n users = getFilteredUsers(searchingText);\n render(users);\n return $el.find(\"input\").focus();\n });\n $el.on(\"click\", \".user-list-single\", debounce(200, function(event) {\n var target;\n closeLightbox();\n event.preventDefault();\n target = angular.element(event.currentTarget);\n return $scope.$apply(function() {\n $scope.usersSearch = null;\n return $scope.$broadcast(\"watcher:added\", target.data(\"user-id\"));\n });\n }));\n $el.on(\"click\", \".close\", function(event) {\n event.preventDefault();\n closeLightbox();\n return $scope.$apply(function() {\n return $scope.usersSearch = null;\n });\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n templateUrl: \"common/lightbox/lightbox-users.html\",\n link: link\n };\n };\n\n module.directive(\"tgLbWatchers\", [\"$tgRepo\", \"lightboxService\", \"lightboxKeyboardNavigationService\", \"$tgTemplate\", \"$compile\", \"tgAvatarService\", WatchersLightboxDirective]);\n\n LightboxLeaveProjectWarningDirective = function(lightboxService, $template, $compile) {\n var link;\n link = function($scope, $el, attrs) {\n return lightboxService.open($el);\n };\n return {\n templateUrl: 'common/lightbox/lightbox-leave-project-warning.html',\n link: link,\n scope: true\n };\n };\n\n module.directive(\"tgLightboxLeaveProjectWarning\", [\"lightboxService\", LightboxLeaveProjectWarningDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/loader.coffee\n */\n\n(function() {\n var Loader, LoaderDirective, module, sizeFormat, taiga, timeout;\n\n taiga = this.taiga;\n\n sizeFormat = this.taiga.sizeFormat;\n\n timeout = this.taiga.timeout;\n\n module = angular.module(\"taigaCommon\");\n\n LoaderDirective = function(tgLoader, $rootscope) {\n var link;\n link = function($scope, $el, $attrs) {\n tgLoader.onStart(function() {\n $(document.body).addClass(\"loader-active\");\n return $el.addClass(\"active\");\n });\n return tgLoader.onEnd(function() {\n $(document.body).removeClass(\"loader-active\");\n return $el.removeClass(\"active\");\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLoader\", [\"tgLoader\", \"$rootScope\", LoaderDirective]);\n\n Loader = function($rootscope) {\n var autoClose, config, lastResponseDate, open, pageLoaded, requestCount, start, startLoadTime;\n config = {\n minTime: 300\n };\n open = false;\n startLoadTime = 0;\n requestCount = 0;\n lastResponseDate = 0;\n pageLoaded = function(force) {\n var diff, endTime, timeoutValue;\n if (force == null) {\n force = false;\n }\n if (startLoadTime) {\n timeoutValue = 0;\n if (!force) {\n endTime = new Date().getTime();\n diff = endTime - startLoadTime;\n if (diff < config.minTime) {\n timeoutValue = config.minTime - diff;\n }\n }\n timeout(timeoutValue, function() {\n $rootscope.$broadcast(\"loader:end\");\n open = false;\n return window.prerenderReady = true;\n });\n }\n startLoadTime = 0;\n requestCount = 0;\n return lastResponseDate = 0;\n };\n autoClose = function() {\n var intervalAuto;\n return intervalAuto = setInterval((function() {\n if (lastResponseDate && requestCount === 0) {\n pageLoaded();\n return clearInterval(intervalAuto);\n }\n }), 50);\n };\n start = function() {\n startLoadTime = new Date().getTime();\n $rootscope.$broadcast(\"loader:start\");\n return open = true;\n };\n return {\n pageLoaded: pageLoaded,\n open: function() {\n return open;\n },\n start: function(auto) {\n if (auto == null) {\n auto = false;\n }\n if (!open) {\n start();\n if (auto) {\n return autoClose();\n }\n }\n },\n onStart: function(fn) {\n return $rootscope.$on(\"loader:start\", fn);\n },\n onEnd: function(fn) {\n return $rootscope.$on(\"loader:end\", fn);\n },\n logRequest: function() {\n return requestCount++;\n },\n logResponse: function() {\n requestCount--;\n return lastResponseDate = new Date().getTime();\n }\n };\n };\n\n Loader.$inject = [\"$rootScope\"];\n\n module.factory(\"tgLoader\", Loader);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/lightboxes.coffee\n */\n\n(function() {\n var LoadingDirective, TgLoadingService, module,\n slice = [].slice;\n\n module = angular.module(\"taigaCommon\");\n\n TgLoadingService = function($compile) {\n var spinner;\n spinner = \"\";\n return function() {\n var service;\n service = {\n settings: {\n target: null,\n scope: null,\n classes: [],\n timeout: 0,\n template: null\n },\n target: function(target) {\n service.settings.target = target;\n return service;\n },\n scope: function(scope) {\n service.settings.scope = scope;\n return service;\n },\n template: function(template) {\n service.settings.template = template;\n return service;\n },\n removeClasses: function() {\n var classess;\n classess = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n service.settings.classes = classess;\n return service;\n },\n timeout: function(timeout) {\n service.settings.timeout = timeout;\n return service;\n },\n start: function() {\n var target, timeoutId;\n target = service.settings.target;\n service.settings.classes.map(function(className) {\n return target.removeClass(className);\n });\n if (!target.hasClass('loading') && !service.settings.template) {\n service.settings.template = target.html();\n }\n timeoutId = setTimeout((function() {\n if (!target.hasClass('loading')) {\n target.addClass('loading');\n return target.html(spinner);\n }\n }), service.settings.timeout);\n service.settings.timeoutId = timeoutId;\n return service;\n },\n finish: function() {\n var removeClasses, target, timeoutId;\n target = service.settings.target;\n timeoutId = service.settings.timeoutId;\n if (timeoutId) {\n clearTimeout(timeoutId);\n removeClasses = service.settings.classes;\n removeClasses.map(function(className) {\n return service.settings.target.addClass(className);\n });\n target.html(service.settings.template);\n target.removeClass('loading');\n if (service.settings.scope) {\n $compile(target.contents())(service.settings.scope);\n }\n }\n return service;\n }\n };\n return service;\n };\n };\n\n TgLoadingService.$inject = [\"$compile\"];\n\n module.factory(\"$tgLoading\", TgLoadingService);\n\n LoadingDirective = function($loading) {\n var link;\n link = function($scope, $el, attr) {\n var currentLoading, template;\n currentLoading = null;\n template = $el.html();\n return $scope.$watch(attr.tgLoading, (function(_this) {\n return function(showLoading) {\n if (showLoading) {\n return currentLoading = $loading().target($el).timeout(100).template(template).scope($scope).start();\n } else if (currentLoading) {\n return currentLoading.finish();\n }\n };\n })(this));\n };\n return {\n priority: 99999,\n link: link\n };\n };\n\n module.directive(\"tgLoading\", [\"$tgLoading\", LoadingDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/popovers.coffee\n */\n\n(function() {\n var RelatedTaskStatusDirective, UsStatusDirective, bindOnce, debounce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaCommon\");\n\n UsStatusDirective = function($repo, $template) {\n\n /*\n Print the status of a US and a popover to change it.\n - tg-us-status: The user story\n - on-update: Method call after US is updated\n \n Example:\n \n div.status(tg-us-status=\"us\" on-update=\"ctrl.loadSprintState()\")\n a.us-status(href=\"\", title=\"Status Name\")\n \n NOTE: This directive need 'usStatusById' and 'project'.\n */\n var link, template;\n template = $template.get(\"common/popover/popover-us-status.html\", true);\n link = function($scope, $el, $attrs) {\n var $ctrl, render, us;\n $ctrl = $el.controller();\n render = function(us) {\n var usStatusById, usStatusDom, usStatusDomParent;\n usStatusDomParent = $el.find(\".us-status\");\n usStatusDom = $el.find(\".us-status .us-status-bind\");\n usStatusById = $scope.usStatusById;\n if (usStatusById[us.status]) {\n usStatusDom.text(usStatusById[us.status].name);\n return usStatusDomParent.css(\"color\", usStatusById[us.status].color);\n }\n };\n $el.on(\"click\", \".us-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", debounce(2000, function(event) {\n var target, us;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n us = $scope.$eval($attrs.tgUsStatus);\n us.status = target.data(\"status-id\");\n render(us);\n $el.find(\".pop-status\").popover().close();\n return $scope.$apply(function() {\n return $repo.save(us).then(function() {\n return $scope.$eval($attrs.onUpdate);\n });\n });\n }));\n $scope.$on(\"userstories:loaded\", function() {\n return render($scope.$eval($attrs.tgUsStatus));\n });\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n us = $scope.$eval($attrs.tgUsStatus);\n render(us);\n return bindOnce($scope, \"project\", function(project) {\n var html;\n html = template({\n \"statuses\": project.us_statuses\n });\n $el.append(html);\n if ($scope.project.my_permissions.indexOf(\"modify_us\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUsStatus\", [\"$tgRepo\", \"$tgTemplate\", UsStatusDirective]);\n\n RelatedTaskStatusDirective = function($repo, $template) {\n\n /*\n Print the status of a related task and a popover to change it.\n - tg-related-task-status: The related task\n - on-update: Method call after US is updated\n \n Example:\n \n div.status(tg-related-task-status=\"task\" on-update=\"ctrl.loadSprintState()\")\n a.task-status(href=\"\", title=\"Status Name\")\n \n NOTE: This directive need 'taskStatusById' and 'project'.\n */\n var link, selectionTemplate, updateTaskStatus;\n selectionTemplate = $template.get(\"common/popover/popover-related-task-status.html\", true);\n updateTaskStatus = function($el, task, taskStatusById) {\n var taskStatusDom, taskStatusDomParent;\n taskStatusDomParent = $el.find(\".us-status\");\n taskStatusDom = $el.find(\".task-status .task-status-bind\");\n if (taskStatusById[task.status]) {\n taskStatusDom.text(taskStatusById[task.status].name);\n return taskStatusDomParent.css('color', taskStatusById[task.status].color);\n }\n };\n link = function($scope, $el, $attrs) {\n var $ctrl, autoSave, notAutoSave, task;\n $ctrl = $el.controller();\n task = $scope.$eval($attrs.tgRelatedTaskStatus);\n notAutoSave = $scope.$eval($attrs.notAutoSave);\n autoSave = !notAutoSave;\n $el.on(\"click\", \".task-status\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $el.find(\".pop-status\").popover().open();\n });\n $el.on(\"click\", \".status\", debounce(2000, function(event) {\n var target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n task.status = target.data(\"status-id\");\n $el.find(\".pop-status\").popover().close();\n updateTaskStatus($el, task, $scope.taskStatusById);\n if (autoSave) {\n return $scope.$apply(function() {\n return $repo.save(task).then(function() {\n $scope.$eval($attrs.onUpdate);\n return $scope.$emit(\"related-tasks:status-changed\");\n });\n });\n }\n }));\n $scope.$watch($attrs.tgRelatedTaskStatus, function() {\n task = $scope.$eval($attrs.tgRelatedTaskStatus);\n return updateTaskStatus($el, task, $scope.taskStatusById);\n });\n taiga.bindOnce($scope, \"project\", function(project) {\n $el.append(selectionTemplate({\n 'statuses': project.task_statuses\n }));\n updateTaskStatus($el, task, $scope.taskStatusById);\n if (project.my_permissions.indexOf(\"modify_task\") === -1) {\n $el.unbind(\"click\");\n return $el.find(\"a\").addClass(\"not-clickable\");\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgRelatedTaskStatus\", [\"$tgRepo\", \"$tgTemplate\", RelatedTaskStatusDirective]);\n\n $.fn.popover = function() {\n var $el, close, closeAll, closePopover, isVisible, open;\n $el = this;\n isVisible = (function(_this) {\n return function() {\n var docViewBottom, docViewLeft, docViewRight, docViewTop, docViewWidth, elemBottom, elemLeft, elemRight, elemTop, elemWidth;\n $el.css({\n \"display\": \"block\",\n \"visibility\": \"hidden\"\n });\n docViewTop = $(window).scrollTop();\n docViewBottom = docViewTop + $(window).height();\n docViewWidth = $(window).width();\n docViewRight = docViewWidth;\n docViewLeft = 0;\n elemTop = $el.offset().top;\n elemBottom = elemTop + $el.height();\n elemWidth = $el.width();\n elemLeft = $el.offset().left;\n elemRight = $el.offset().left + elemWidth;\n $el.css({\n \"display\": \"none\",\n \"visibility\": \"visible\"\n });\n return (elemBottom <= docViewBottom) && (elemTop >= docViewTop) && (elemLeft >= docViewLeft) && (elemRight <= docViewRight);\n };\n })(this);\n closePopover = (function(_this) {\n return function(onClose) {\n if (onClose) {\n onClose.call($el);\n }\n $el.fadeOut(function() {\n return $el.removeClass(\"active\").removeClass(\"fix\");\n });\n return $el.off(\"popup:close\");\n };\n })(this);\n closeAll = (function(_this) {\n return function() {\n return $(\".popover.active\").each(function() {\n return $(this).trigger(\"popup:close\");\n });\n };\n })(this);\n open = (function(_this) {\n return function(onClose) {\n if ($el.hasClass(\"active\")) {\n return close();\n } else {\n closeAll();\n if (!isVisible()) {\n $el.addClass(\"fix\");\n }\n $el.fadeIn(function() {\n $el.addClass(\"active\");\n $(document.body).off(\"popover\");\n return $(document.body).one(\"click.popover\", function() {\n return closeAll();\n });\n });\n return $el.on(\"popup:close\", function(e) {\n return closePopover(onClose);\n });\n }\n };\n })(this);\n close = (function(_this) {\n return function() {\n return $el.trigger(\"popup:close\");\n };\n })(this);\n return {\n open: open,\n close: close,\n closeAll: closeAll\n };\n };\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/raven-logger.coffee\n */\n\n(function() {\n var ExceptionHandlerFactory, module, taiga;\n\n taiga = this.taiga;\n\n module = angular.module(\"taigaCommon\");\n\n ExceptionHandlerFactory = function($log, config) {\n var ravenConfig;\n this.config = config;\n ravenConfig = this.config.get(\"ravenConfig\", null);\n if (ravenConfig) {\n $log.debug(\"Using the RavenJS exception handler.\");\n Raven.config(ravenConfig).install();\n return function(exception, cause) {\n $log.error.apply($log, arguments);\n return Raven.captureException(exception);\n };\n } else {\n $log.debug(\"Using the default logging exception handler.\");\n return function(exception, cause) {\n return $log.error.apply($log, arguments);\n };\n }\n };\n\n module.factory(\"$exceptionHandler\", [\"$log\", \"$tgConfig\", ExceptionHandlerFactory]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/common/tags.coffee\n */\n\n(function() {\n var ColorizeTagsBacklogDirective, LbTagLineDirective, TagsDirective, bindOnce, module, taiga, trim,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n taiga = this.taiga;\n\n trim = this.taiga.trim;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaCommon\");\n\n TagsDirective = function() {\n var formatter, link, parser;\n formatter = function(v) {\n if (_.isArray(v)) {\n return v.join(\", \");\n }\n return \"\";\n };\n parser = function(v) {\n var result;\n if (!v) {\n return [];\n }\n result = _(v.split(\",\")).map(function(x) {\n return _.trim(x);\n });\n return result.value();\n };\n link = function($scope, $el, $attrs, $ctrl) {\n $ctrl.$formatters.push(formatter);\n $ctrl.$parsers.push(parser);\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n require: \"ngModel\",\n link: link\n };\n };\n\n module.directive(\"tgTags\", TagsDirective);\n\n ColorizeTagsBacklogDirective = function() {\n var link, template;\n template = _.template(\"<% _.each(tags, function(tag) { %>\\n <% if (tag[1] !== null) { %>\\n \\\"\\n title=\\\"<%- tag[0] %>\\\">\\n <%- tag[0] %>\\n \\n <% } %>\\n<% }) %>\\n<% _.each(tags, function(tag) { %>\\n <% if (tag[1] === null) { %>\\n \\\">\\n <%- tag[0] %>\\n \\n <% } %>\\n<% }) %>\");\n link = function($scope, $el, $attrs, $ctrl) {\n var render;\n render = function(tags) {\n var html;\n html = template({\n tags: tags\n });\n return $el.html(html);\n };\n $scope.$watch($attrs.tgColorizeBacklogTags, function(tags) {\n if (tags != null) {\n return render(tags);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgColorizeBacklogTags\", ColorizeTagsBacklogDirective);\n\n LbTagLineDirective = function($rs, $template, $compile) {\n var COMMA_KEY, ENTER_KEY, autocomplete, link, templateTags;\n ENTER_KEY = 13;\n COMMA_KEY = 188;\n templateTags = $template.get(\"common/tag/lb-tag-line-tags.html\", true);\n autocomplete = null;\n link = function($scope, $el, $attrs, $model) {\n var addValue, deleteValue, hideSaveButton, renderTags, resetInput, saveInputTag, showSaveButton, withoutColors;\n withoutColors = _.has($attrs, \"withoutColors\");\n renderTags = function(tags, tagsColors) {\n var color, ctx, html;\n if (tagsColors == null) {\n tagsColors = [];\n }\n color = !withoutColors ? tagsColors[t] : null;\n ctx = {\n tags: _.map(tags, function(t) {\n return {\n name: t,\n style: color ? \"border-left: 5px solid \" + color : \"\"\n };\n })\n };\n html = $compile(templateTags(ctx))($scope);\n return $el.find(\".tags-container\").html(html);\n };\n showSaveButton = function() {\n return $el.find(\".save\").removeClass(\"hidden\");\n };\n hideSaveButton = function() {\n return $el.find(\".save\").addClass(\"hidden\");\n };\n resetInput = function() {\n $el.find(\"input\").val(\"\");\n return autocomplete.close();\n };\n addValue = function(value) {\n var tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue, false);\n if (tags == null) {\n tags = [];\n }\n if (indexOf.call(tags, value) < 0) {\n tags.push(value);\n }\n $scope.$apply(function() {\n return $model.$setViewValue(tags);\n });\n return hideSaveButton();\n };\n deleteValue = function(value) {\n var tags;\n value = trim(value.toLowerCase());\n if (value.length === 0) {\n return;\n }\n tags = _.clone($model.$modelValue, false);\n tags = _.pull(tags, value);\n return $scope.$apply(function() {\n return $model.$setViewValue(tags);\n });\n };\n saveInputTag = function() {\n var value;\n value = $el.find(\"input\").val();\n addValue(value);\n return resetInput();\n };\n $el.on(\"keypress\", \"input\", function(event) {\n var target;\n target = angular.element(event.currentTarget);\n if (event.keyCode === ENTER_KEY) {\n event.preventDefault();\n return saveInputTag();\n } else if (String.fromCharCode(event.keyCode) === ',') {\n event.preventDefault();\n return saveInputTag();\n } else {\n if (target.val().length) {\n return showSaveButton();\n } else {\n return hideSaveButton();\n }\n }\n });\n $el.on(\"click\", \".save\", function(event) {\n event.preventDefault();\n return saveInputTag();\n });\n $el.on(\"click\", \".remove-tag\", function(event) {\n var target, value;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n value = target.siblings(\".tag-name\").text();\n return deleteValue(value);\n });\n bindOnce($scope, \"project\", function(project) {\n var input;\n input = $el.find(\"input\");\n autocomplete = new Awesomplete(input[0], {\n list: _.keys(project.tags_colors)\n });\n return input.on(\"awesomplete-selectcomplete\", function() {\n addValue(input.val());\n return input.val(\"\");\n });\n });\n $scope.$watch($attrs.ngModel, function(tags) {\n var ref, tagsColors;\n tagsColors = ((ref = $scope.project) != null ? ref.tags_colors : void 0) || [];\n return renderTags(tags, tagsColors);\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link,\n require: \"ngModel\",\n templateUrl: \"common/tag/lb-tag-line.html\"\n };\n };\n\n module.directive(\"tgLbTagLine\", [\"$tgResources\", \"$tgTemplate\", \"$compile\", LbTagLineDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/backlog/lightboxes.coffee\n */\n\n(function() {\n var CreateEditSprint, bindOnce, debounce, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n debounce = this.taiga.debounce;\n\n module = angular.module(\"taigaBacklog\");\n\n CreateEditSprint = function($repo, $confirm, $rs, $rootscope, lightboxService, $loading, $translate) {\n var link;\n link = function($scope, $el, attrs) {\n var createSprint, form, getLastSprint, hasErrors, remove, resetSprint, submit, ussToAdd;\n hasErrors = false;\n createSprint = true;\n form = null;\n $scope.newSprint = {};\n ussToAdd = null;\n resetSprint = function() {\n if (form) {\n form.reset();\n }\n return $scope.newSprint = {\n project: null,\n name: null,\n estimated_start: null,\n estimated_finish: null\n };\n };\n submit = debounce(2000, (function(_this) {\n return function(event) {\n var broadcastEvent, currentLoading, estimated_end, estimated_start, newSprint, prettyDate, promise, submitButton, target;\n event.preventDefault();\n target = angular.element(event.currentTarget);\n prettyDate = $translate.instant(\"COMMON.PICKERDATE.FORMAT\");\n submitButton = $el.find(\".submit-button\");\n form = $el.find(\"form\").checksley();\n if (!form.validate()) {\n hasErrors = true;\n $el.find(\".last-sprint-name\").addClass(\"disappear\");\n return;\n }\n hasErrors = false;\n broadcastEvent = null;\n estimated_start = $('.date-start').val();\n estimated_end = $('.date-end').val();\n if (createSprint) {\n newSprint = angular.copy($scope.newSprint);\n newSprint.estimated_start = moment(estimated_start, prettyDate).format(\"YYYY-MM-DD\");\n newSprint.estimated_finish = moment(estimated_end, prettyDate).format(\"YYYY-MM-DD\");\n promise = $repo.create(\"milestones\", newSprint);\n broadcastEvent = \"sprintform:create:success\";\n } else {\n newSprint = $scope.newSprint.realClone();\n newSprint.estimated_start = moment(estimated_start, prettyDate).format(\"YYYY-MM-DD\");\n newSprint.estimated_finish = moment(estimated_end, prettyDate).format(\"YYYY-MM-DD\");\n promise = $repo.save(newSprint);\n broadcastEvent = \"sprintform:edit:success\";\n }\n currentLoading = $loading().target(submitButton).start();\n promise.then(function(data) {\n currentLoading.finish();\n if (createSprint) {\n $scope.sprintsCounter += 1;\n }\n $scope.sprints = _.map($scope.sprints, function(it) {\n if (it.id === data.id) {\n return data;\n } else {\n return it;\n }\n });\n if (broadcastEvent === \"sprintform:create:success\" && ussToAdd) {\n $rootscope.$broadcast(broadcastEvent, data, ussToAdd);\n } else {\n $rootscope.$broadcast(broadcastEvent, data);\n }\n return lightboxService.close($el);\n });\n return promise.then(null, function(data) {\n currentLoading.finish();\n form.setErrors(data);\n if (data._error_message) {\n return $confirm.notify(\"light-error\", data._error_message);\n } else if (data.__all__) {\n return $confirm.notify(\"light-error\", data.__all__[0]);\n }\n });\n };\n })(this));\n remove = function() {\n var message, title;\n title = $translate.instant(\"LIGHTBOX.DELETE_SPRINT.TITLE\");\n message = $scope.newSprint.name;\n return $confirm.askOnDelete(title, message).then((function(_this) {\n return function(askResponse) {\n var onError, onSuccess;\n onSuccess = function() {\n askResponse.finish();\n $scope.milestonesCounter -= 1;\n lightboxService.close($el);\n return $rootscope.$broadcast(\"sprintform:remove:success\", $scope.newSprint);\n };\n onError = function() {\n askResponse.finish(false);\n return $confirm.notify(\"error\");\n };\n return $repo.remove($scope.newSprint).then(onSuccess, onError);\n };\n })(this));\n };\n getLastSprint = function() {\n var openSprints, sortedSprints;\n openSprints = _.filter($scope.sprints, function(sprint) {\n return !sprint.closed;\n });\n sortedSprints = _.sortBy(openSprints, function(sprint) {\n return moment(sprint.estimated_finish, 'YYYY-MM-DD').format('X');\n });\n return sortedSprints[sortedSprints.length - 1];\n };\n $scope.$on(\"sprintform:create\", function(event, projectId, uss) {\n var estimatedFinish, estimatedStart, lastSprint, lastSprintNameDom, prettyDate, text;\n ussToAdd = uss;\n resetSprint();\n form = $el.find(\"form\").checksley();\n form.reset();\n createSprint = true;\n prettyDate = $translate.instant(\"COMMON.PICKERDATE.FORMAT\");\n $scope.newSprint.project = projectId;\n $scope.newSprint.name = null;\n $scope.newSprint.slug = null;\n lastSprint = getLastSprint();\n estimatedStart = moment();\n if (lastSprint) {\n estimatedStart = moment(lastSprint.estimated_finish);\n } else if ($scope.newSprint.estimated_start) {\n estimatedStart = moment($scope.newSprint.estimated_start);\n }\n $scope.newSprint.estimated_start = estimatedStart.format(prettyDate);\n estimatedFinish = moment().add(2, \"weeks\");\n if (lastSprint) {\n estimatedFinish = moment(lastSprint.estimated_finish).add(2, \"weeks\");\n } else if ($scope.newSprint.estimated_finish) {\n estimatedFinish = moment($scope.newSprint.estimated_finish);\n }\n $scope.newSprint.estimated_finish = estimatedFinish.format(prettyDate);\n lastSprintNameDom = $el.find(\".last-sprint-name\");\n if ((lastSprint != null ? lastSprint.name : void 0) != null) {\n text = $translate.instant(\"LIGHTBOX.ADD_EDIT_SPRINT.LAST_SPRINT_NAME\", {\n lastSprint: lastSprint.name\n });\n lastSprintNameDom.html(text);\n }\n $el.find(\".delete-sprint\").addClass(\"hidden\");\n text = $translate.instant(\"LIGHTBOX.ADD_EDIT_SPRINT.TITLE\");\n $el.find(\".title\").text(text);\n text = $translate.instant(\"COMMON.CREATE\");\n $el.find(\".button-green\").text(text);\n lightboxService.open($el);\n $el.find(\".sprint-name\").focus();\n return $el.find(\".last-sprint-name\").removeClass(\"disappear\");\n });\n $scope.$on(\"sprintform:edit\", function(ctx, sprint) {\n var editSprint, prettyDate, save;\n resetSprint();\n createSprint = false;\n prettyDate = $translate.instant(\"COMMON.PICKERDATE.FORMAT\");\n $scope.$apply(function() {\n $scope.newSprint = sprint.realClone();\n $scope.newSprint.estimated_start = moment($scope.newSprint.estimated_start).format(prettyDate);\n return $scope.newSprint.estimated_finish = moment($scope.newSprint.estimated_finish).format(prettyDate);\n });\n $el.find(\".delete-sprint\").removeClass(\"hidden\");\n editSprint = $translate.instant(\"BACKLOG.EDIT_SPRINT\");\n $el.find(\".title\").text(editSprint);\n save = $translate.instant(\"COMMON.SAVE\");\n $el.find(\".button-green\").text(save);\n lightboxService.open($el);\n $el.find(\".sprint-name\").focus().select();\n return $el.find(\".last-sprint-name\").addClass(\"disappear\");\n });\n $el.on(\"keyup\", \".sprint-name\", function(event) {\n if ($el.find(\".sprint-name\").val().length > 0 || hasErrors) {\n return $el.find(\".last-sprint-name\").addClass(\"disappear\");\n } else {\n return $el.find(\".last-sprint-name\").removeClass(\"disappear\");\n }\n });\n $el.on(\"submit\", \"form\", submit);\n $el.on(\"click\", \".delete-sprint\", function(event) {\n event.preventDefault();\n return remove();\n });\n $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n return resetSprint();\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgLbCreateEditSprint\", [\"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$rootScope\", \"lightboxService\", \"$tgLoading\", \"$translate\", CreateEditSprint]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/backlog/main.coffee\n */\n\n(function() {\n var BacklogController, BacklogDirective, BurndownBacklogGraphDirective, TgBacklogProgressBarDirective, ToggleBurndownVisibility, UsPointsDirective, UsRolePointsSelectorDirective, bindMethods, bindOnce, generateHash, groupBy, mixOf, module, scopeDefer, taiga, timeout, toggleText,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\n taiga = this.taiga;\n\n mixOf = this.taiga.mixOf;\n\n toggleText = this.taiga.toggleText;\n\n scopeDefer = this.taiga.scopeDefer;\n\n bindOnce = this.taiga.bindOnce;\n\n groupBy = this.taiga.groupBy;\n\n timeout = this.taiga.timeout;\n\n bindMethods = this.taiga.bindMethods;\n\n generateHash = this.taiga.generateHash;\n\n module = angular.module(\"taigaBacklog\");\n\n BacklogController = (function(superClass) {\n extend(BacklogController, superClass);\n\n BacklogController.$inject = [\"$scope\", \"$rootScope\", \"$tgRepo\", \"$tgConfirm\", \"$tgResources\", \"$routeParams\", \"$q\", \"$tgLocation\", \"tgAppMetaService\", \"$tgNavUrls\", \"$tgEvents\", \"$tgAnalytics\", \"$translate\", \"$tgLoading\", \"tgResources\", \"$tgQueueModelTransformation\", \"tgErrorHandlingService\", \"$tgStorage\", \"tgFilterRemoteStorageService\", \"tgProjectService\"];\n\n BacklogController.prototype.storeCustomFiltersName = 'backlog-custom-filters';\n\n BacklogController.prototype.storeFiltersName = 'backlog-filters';\n\n BacklogController.prototype.backlogOrder = {};\n\n BacklogController.prototype.milestonesOrder = {};\n\n function BacklogController(scope1, rootscope, repo, confirm, rs, params1, q, location, appMetaService, navUrls, events, analytics, translate, loading, rs2, modelTransform, errorHandlingService, storage, filterRemoteStorageService, projectService) {\n var promise;\n this.scope = scope1;\n this.rootscope = rootscope;\n this.repo = repo;\n this.confirm = confirm;\n this.rs = rs;\n this.params = params1;\n this.q = q;\n this.location = location;\n this.appMetaService = appMetaService;\n this.navUrls = navUrls;\n this.events = events;\n this.analytics = analytics;\n this.translate = translate;\n this.loading = loading;\n this.rs2 = rs2;\n this.modelTransform = modelTransform;\n this.errorHandlingService = errorHandlingService;\n this.storage = storage;\n this.filterRemoteStorageService = filterRemoteStorageService;\n this.projectService = projectService;\n bindMethods(this);\n this.backlogOrder = {};\n this.milestonesOrder = {};\n this.page = 1;\n this.disablePagination = false;\n this.firstLoadComplete = false;\n this.scope.userstories = [];\n if (this.applyStoredFilters(this.params.pslug, \"backlog-filters\")) {\n return;\n }\n this.scope.sectionName = this.translate.instant(\"BACKLOG.SECTION_NAME\");\n this.showTags = false;\n this.activeFilters = false;\n this.scope.showGraphPlaceholder = null;\n this.displayVelocity = false;\n this.initializeEventHandlers();\n promise = this.loadInitialData();\n promise.then((function(_this) {\n return function() {\n var description, title;\n _this.firstLoadComplete = true;\n title = _this.translate.instant(\"BACKLOG.PAGE_TITLE\", {\n projectName: _this.scope.project.name\n });\n description = _this.translate.instant(\"BACKLOG.PAGE_DESCRIPTION\", {\n projectName: _this.scope.project.name,\n projectDescription: _this.scope.project.description\n });\n _this.appMetaService.setAll(title, description);\n if (_this.rs.userstories.getShowTags(_this.scope.projectId)) {\n _this.showTags = true;\n return _this.scope.$broadcast(\"showTags\", _this.showTags);\n }\n };\n })(this));\n promise.then(null, this.onInitialDataError.bind(this));\n }\n\n BacklogController.prototype.filtersReloadContent = function() {\n return this.loadUserstories(true);\n };\n\n BacklogController.prototype.initializeEventHandlers = function() {\n this.scope.$on(\"usform:bulk:success\", (function(_this) {\n return function() {\n _this.loadUserstories(true);\n _this.loadProjectStats();\n _this.confirm.notify(\"success\");\n return _this.analytics.trackEvent(\"userstory\", \"create\", \"bulk create userstory on backlog\", 1);\n };\n })(this));\n this.scope.$on(\"sprintform:create:success\", (function(_this) {\n return function(e, data, ussToMove) {\n _this.loadSprints().then(function() {\n return _this.scope.$broadcast(\"sprintform:create:success:callback\", ussToMove);\n });\n _this.loadProjectStats();\n _this.confirm.notify(\"success\");\n return _this.analytics.trackEvent(\"sprint\", \"create\", \"create sprint on backlog\", 1);\n };\n })(this));\n this.scope.$on(\"usform:new:success\", (function(_this) {\n return function() {\n _this.loadUserstories(true);\n _this.loadProjectStats();\n _this.rootscope.$broadcast(\"filters:update\");\n _this.confirm.notify(\"success\");\n return _this.analytics.trackEvent(\"userstory\", \"create\", \"create userstory on backlog\", 1);\n };\n })(this));\n this.scope.$on(\"sprintform:edit:success\", (function(_this) {\n return function() {\n return _this.loadProjectStats();\n };\n })(this));\n this.scope.$on(\"sprintform:remove:success\", (function(_this) {\n return function(event, sprint) {\n _this.loadSprints();\n _this.loadProjectStats();\n _this.loadUserstories(true);\n if (sprint.closed) {\n _this.loadClosedSprints();\n }\n return _this.rootscope.$broadcast(\"filters:update\");\n };\n })(this));\n this.scope.$on(\"usform:edit:success\", (function(_this) {\n return function(event, data) {\n var index;\n index = _.findIndex(_this.scope.userstories, function(us) {\n return us.id === data.id;\n });\n _this.scope.userstories[index] = data;\n return _this.rootscope.$broadcast(\"filters:update\");\n };\n })(this));\n this.scope.$on(\"sprint:us:move\", this.moveUs);\n this.scope.$on(\"sprint:us:moved\", (function(_this) {\n return function() {\n _this.loadSprints();\n return _this.loadProjectStats();\n };\n })(this));\n this.scope.$on(\"backlog:load-closed-sprints\", this.loadClosedSprints);\n return this.scope.$on(\"backlog:unload-closed-sprints\", this.unloadClosedSprints);\n };\n\n BacklogController.prototype.initializeSubscription = function() {\n var routingKey1, routingKey2;\n routingKey1 = \"changes.project.\" + this.scope.projectId + \".userstories\";\n this.events.subscribe(this.scope, routingKey1, (function(_this) {\n return function(message) {\n _this.loadAllPaginatedUserstories();\n return _this.loadSprints();\n };\n })(this));\n routingKey2 = \"changes.project.\" + this.scope.projectId + \".milestones\";\n return this.events.subscribe(this.scope, routingKey2, (function(_this) {\n return function(message) {\n return _this.loadSprints();\n };\n })(this));\n };\n\n BacklogController.prototype.toggleShowTags = function() {\n return this.scope.$apply((function(_this) {\n return function() {\n _this.showTags = !_this.showTags;\n return _this.rs.userstories.storeShowTags(_this.scope.projectId, _this.showTags);\n };\n })(this));\n };\n\n BacklogController.prototype.toggleActiveFilters = function() {\n return this.activeFilters = !this.activeFilters;\n };\n\n BacklogController.prototype.toggleVelocityForecasting = function() {\n this.displayVelocity = !this.displayVelocity;\n if (!this.displayVelocity) {\n this.scope.visibleUserStories = _.map(this.scope.userstories, function(it) {\n return it.ref;\n });\n } else {\n this.scope.visibleUserStories = _.map(this.forecastedStories, function(it) {\n return it.ref;\n });\n }\n return scopeDefer(this.scope, (function(_this) {\n return function() {\n return _this.scope.$broadcast(\"userstories:loaded\");\n };\n })(this));\n };\n\n BacklogController.prototype.loadProjectStats = function() {\n return this.rs.projects.stats(this.scope.projectId).then((function(_this) {\n return function(stats) {\n var totalPoints;\n _this.scope.stats = stats;\n totalPoints = stats.total_points ? stats.total_points : stats.defined_points;\n if (totalPoints) {\n _this.scope.stats.completedPercentage = Math.round(100 * stats.closed_points / totalPoints);\n } else {\n _this.scope.stats.completedPercentage = 0;\n }\n _this.scope.showGraphPlaceholder = !((stats.total_points != null) && (stats.total_milestones != null));\n _this.calculateForecasting();\n return stats;\n };\n })(this));\n };\n\n BacklogController.prototype.setMilestonesOrder = function(sprints) {\n var it, j, len, results, sprint;\n results = [];\n for (j = 0, len = sprints.length; j < len; j++) {\n sprint = sprints[j];\n this.milestonesOrder[sprint.id] = {};\n results.push((function() {\n var l, len1, ref1, results1;\n ref1 = sprint.user_stories;\n results1 = [];\n for (l = 0, len1 = ref1.length; l < len1; l++) {\n it = ref1[l];\n results1.push(this.milestonesOrder[sprint.id][it.id] = it.sprint_order);\n }\n return results1;\n }).call(this));\n }\n return results;\n };\n\n BacklogController.prototype.unloadClosedSprints = function() {\n return this.scope.$apply((function(_this) {\n return function() {\n _this.scope.closedSprints = [];\n return _this.rootscope.$broadcast(\"closed-sprints:reloaded\", []);\n };\n })(this));\n };\n\n BacklogController.prototype.loadClosedSprints = function() {\n var params;\n params = {\n closed: true\n };\n return this.rs.sprints.list(this.scope.projectId, params).then((function(_this) {\n return function(result) {\n var j, len, sprint, sprints;\n sprints = result.milestones;\n _this.setMilestonesOrder(sprints);\n _this.scope.totalClosedMilestones = result.closed;\n for (j = 0, len = sprints.length; j < len; j++) {\n sprint = sprints[j];\n sprint.user_stories = _.sortBy(sprint.user_stories, \"sprint_order\");\n }\n _this.scope.closedSprints = sprints;\n _this.scope.closedSprintsById = groupBy(sprints, function(x) {\n return x.id;\n });\n _this.rootscope.$broadcast(\"closed-sprints:reloaded\", sprints);\n return sprints;\n };\n })(this));\n };\n\n BacklogController.prototype.loadSprints = function() {\n var params;\n params = {\n closed: false\n };\n return this.rs.sprints.list(this.scope.projectId, params).then((function(_this) {\n return function(result) {\n var j, len, sprint, sprints;\n sprints = result.milestones;\n _this.setMilestonesOrder(sprints);\n _this.scope.totalMilestones = sprints;\n _this.scope.totalClosedMilestones = result.closed;\n _this.scope.totalOpenMilestones = result.open;\n _this.scope.totalMilestones = _this.scope.totalOpenMilestones + _this.scope.totalClosedMilestones;\n for (j = 0, len = sprints.length; j < len; j++) {\n sprint = sprints[j];\n sprint.user_stories = _.sortBy(sprint.user_stories, \"sprint_order\");\n }\n _this.scope.sprints = sprints;\n if (!_this.scope.closedSprints) {\n _this.scope.closedSprints = [];\n }\n _this.scope.sprintsCounter = sprints.length;\n _this.scope.sprintsById = groupBy(sprints, function(x) {\n return x.id;\n });\n _this.rootscope.$broadcast(\"sprints:loaded\", sprints);\n _this.scope.currentSprint = _this.findCurrentSprint();\n return sprints;\n };\n })(this));\n };\n\n BacklogController.prototype.openSprints = function() {\n return _.filter(this.scope.sprints, (function(_this) {\n return function(sprint) {\n return !sprint.closed;\n };\n })(this)).reverse();\n };\n\n BacklogController.prototype.loadAllPaginatedUserstories = function() {\n var page;\n page = this.page;\n return this.loadUserstories(true, this.scope.userstories.length).then((function(_this) {\n return function() {\n return _this.page = page;\n };\n })(this));\n };\n\n BacklogController.prototype.loadUserstories = function(resetPagination, pageSize) {\n var params, promise;\n if (resetPagination == null) {\n resetPagination = false;\n }\n if (!this.scope.projectId) {\n return null;\n }\n this.loadingUserstories = true;\n this.disablePagination = true;\n params = _.clone(this.location.search());\n this.rs.userstories.storeQueryParams(this.scope.projectId, params);\n if (resetPagination) {\n this.page = 1;\n }\n params.page = this.page;\n promise = this.rs.userstories.listUnassigned(this.scope.projectId, params, pageSize);\n return promise.then((function(_this) {\n return function(result) {\n var header, it, j, len, ref1, userstories;\n userstories = result[0];\n header = result[1];\n if (resetPagination) {\n _this.scope.userstories = [];\n }\n _this.scope.userstories = _this.scope.userstories.concat(_.sortBy(userstories, \"backlog_order\"));\n _this.scope.visibleUserStories = _.map(_this.scope.userstories, function(it) {\n return it.ref;\n });\n ref1 = _this.scope.userstories;\n for (j = 0, len = ref1.length; j < len; j++) {\n it = ref1[j];\n _this.backlogOrder[it.id] = it.backlog_order;\n }\n _this.loadingUserstories = false;\n if (header('x-pagination-next')) {\n _this.disablePagination = false;\n _this.page++;\n }\n scopeDefer(_this.scope, function() {\n return _this.scope.$broadcast(\"userstories:loaded\");\n });\n return userstories;\n };\n })(this));\n };\n\n BacklogController.prototype.loadBacklog = function() {\n return this.q.all([this.loadProjectStats(), this.loadSprints(), this.loadUserstories()]).then(this.calculateForecasting);\n };\n\n BacklogController.prototype.calculateForecasting = function() {\n var backlog_points_sum, current_sum, j, len, ref1, results, stats, total_points, us;\n stats = this.scope.stats;\n total_points = stats.total_points;\n current_sum = stats.assigned_points;\n backlog_points_sum = 0;\n this.forecastedStories = [];\n ref1 = this.scope.userstories;\n results = [];\n for (j = 0, len = ref1.length; j < len; j++) {\n us = ref1[j];\n current_sum += us.total_points;\n backlog_points_sum += us.total_points;\n this.forecastedStories.push(us);\n if (stats.speed > 0 && backlog_points_sum > stats.speed) {\n break;\n } else {\n results.push(void 0);\n }\n }\n return results;\n };\n\n BacklogController.prototype.loadProject = function() {\n var project;\n project = this.projectService.project.toJS();\n if (!project.is_backlog_activated) {\n this.errorHandlingService.permissionDenied();\n }\n this.scope.projectId = project.id;\n this.scope.project = project;\n this.scope.closedMilestones = !!project.total_closed_milestones;\n this.scope.$emit('project:loaded', project);\n this.scope.points = _.sortBy(project.points, \"order\");\n this.scope.pointsById = groupBy(project.points, function(x) {\n return x.id;\n });\n this.scope.usStatusById = groupBy(project.us_statuses, function(x) {\n return x.id;\n });\n this.scope.usStatusList = _.sortBy(project.us_statuses, \"id\");\n return project;\n };\n\n BacklogController.prototype.loadInitialData = function() {\n var project;\n project = this.loadProject();\n this.fillUsersAndRoles(project.members, project.roles);\n this.initializeSubscription();\n return this.loadBacklog().then((function(_this) {\n return function() {\n return _this.generateFilters();\n };\n })(this)).then((function(_this) {\n return function() {\n return _this.scope.$emit(\"backlog:loaded\");\n };\n })(this));\n };\n\n BacklogController.prototype.prepareBulkUpdateData = function(uses, field) {\n if (field == null) {\n field = \"backlog_order\";\n }\n return _.map(uses, function(x) {\n return {\n \"us_id\": x.id,\n \"order\": x[field]\n };\n });\n };\n\n BacklogController.prototype.moveUs = function(ctx, usList, newUsIndex, newSprintId) {\n var afterDestination, beforeDestination, currentSprintId, data, it, j, key, l, len, len1, len2, len3, len4, len5, len6, list, m, modifiedUs, n, newSprint, o, oldSprintId, options, orderField, orderList, p, previous, previousWithTheSameOrder, project, promise, q, ref1, ref2, setOrders, setPreviousOrders, sprint, startIndex, us;\n oldSprintId = usList[0].milestone;\n project = usList[0].project;\n if (oldSprintId) {\n sprint = this.scope.sprintsById[oldSprintId] || this.scope.closedSprintsById[oldSprintId];\n }\n if (newSprintId) {\n newSprint = this.scope.sprintsById[newSprintId] || this.scope.closedSprintsById[newSprintId];\n }\n currentSprintId = newSprintId !== oldSprintId ? newSprintId : oldSprintId;\n orderList = null;\n orderField = \"\";\n if (newSprintId !== oldSprintId) {\n if (newSprintId === null) {\n for (key = j = 0, len = usList.length; j < len; key = ++j) {\n us = usList[key];\n _.remove(sprint.user_stories, function(it) {\n return it.id === us.id;\n });\n }\n orderField = \"backlog_order\";\n orderList = this.backlogOrder;\n beforeDestination = _.slice(this.scope.userstories, 0, newUsIndex);\n afterDestination = _.slice(this.scope.userstories, newUsIndex);\n this.scope.userstories = this.scope.userstories.concat(usList);\n } else {\n for (l = 0, len1 = usList.length; l < len1; l++) {\n us = usList[l];\n _.remove(this.scope.userstories, function(it) {\n return it.id === us.id;\n });\n }\n orderField = \"sprint_order\";\n orderList = this.milestonesOrder[newSprint.id];\n beforeDestination = _.slice(newSprint.user_stories, 0, newUsIndex);\n afterDestination = _.slice(newSprint.user_stories, newUsIndex);\n newSprint.user_stories = newSprint.user_stories.concat(usList);\n }\n } else {\n if (oldSprintId === null) {\n orderField = \"backlog_order\";\n orderList = this.backlogOrder;\n list = _.filter(this.scope.userstories, function(listIt) {\n return !_.find(usList, function(moveIt) {\n return listIt.id === moveIt.id;\n });\n });\n beforeDestination = _.slice(list, 0, newUsIndex);\n afterDestination = _.slice(list, newUsIndex);\n } else {\n orderField = \"sprint_order\";\n orderList = this.milestonesOrder[sprint.id];\n list = _.filter(newSprint.user_stories, function(listIt) {\n return !_.find(usList, function(moveIt) {\n return listIt.id === moveIt.id;\n });\n });\n beforeDestination = _.slice(list, 0, newUsIndex);\n afterDestination = _.slice(list, newUsIndex);\n }\n }\n previous = beforeDestination[beforeDestination.length - 1];\n setPreviousOrders = [];\n if (!previous) {\n startIndex = 0;\n } else if (previous) {\n startIndex = orderList[previous.id] + 1;\n previousWithTheSameOrder = _.filter(beforeDestination, function(it) {\n return it[orderField] === orderList[previous.id];\n });\n if (previousWithTheSameOrder.length > 1) {\n setPreviousOrders = _.map(previousWithTheSameOrder, function(it) {\n return {\n us_id: it.id,\n order: orderList[it.id]\n };\n });\n }\n }\n modifiedUs = [];\n for (key = m = 0, len2 = usList.length; m < len2; key = ++m) {\n us = usList[key];\n us.milestone = currentSprintId;\n us[orderField] = startIndex + key;\n orderList[us.id] = us[orderField];\n modifiedUs.push({\n us_id: us.id,\n order: us[orderField]\n });\n }\n startIndex = orderList[usList[usList.length - 1].id];\n for (key = n = 0, len3 = afterDestination.length; n < len3; key = ++n) {\n it = afterDestination[key];\n orderList[it.id] = startIndex + key + 1;\n }\n this.scope.userstories = _.sortBy(this.scope.userstories, (function(_this) {\n return function(it) {\n return _this.backlogOrder[it.id];\n };\n })(this));\n ref1 = this.scope.sprints;\n for (o = 0, len4 = ref1.length; o < len4; o++) {\n sprint = ref1[o];\n sprint.user_stories = _.sortBy(sprint.user_stories, (function(_this) {\n return function(it) {\n return _this.milestonesOrder[sprint.id][it.id];\n };\n })(this));\n }\n ref2 = this.scope.closedSprints;\n for (p = 0, len5 = ref2.length; p < len5; p++) {\n sprint = ref2[p];\n sprint.user_stories = _.sortBy(sprint.user_stories, (function(_this) {\n return function(it) {\n return _this.milestonesOrder[sprint.id][it.id];\n };\n })(this));\n }\n if (usList.length > 1 && (newSprintId !== oldSprintId)) {\n data = modifiedUs.concat(setPreviousOrders);\n promise = this.rs.userstories.bulkUpdateMilestone(project, newSprintId, data);\n } else if (usList.length > 1) {\n data = modifiedUs.concat(setPreviousOrders);\n promise = this.rs.userstories.bulkUpdateBacklogOrder(project, data);\n } else {\n setOrders = {};\n for (q = 0, len6 = setPreviousOrders.length; q < len6; q++) {\n it = setPreviousOrders[q];\n setOrders[it.us_id] = it.order;\n }\n options = {\n headers: {\n \"set-orders\": JSON.stringify(setOrders)\n }\n };\n promise = this.repo.save(usList[0], true, {}, options, true);\n }\n promise.then((function(_this) {\n return function() {\n _this.rootscope.$broadcast(\"sprint:us:moved\");\n if (_this.scope.closedSprintsById && _this.scope.closedSprintsById[oldSprintId]) {\n return _this.rootscope.$broadcast(\"backlog:load-closed-sprints\");\n }\n };\n })(this));\n return promise;\n };\n\n BacklogController.prototype.updateUserStoryStatus = function() {\n return this.generateFilters().then((function(_this) {\n return function() {\n _this.rootscope.$broadcast(\"filters:update\");\n return _this.loadProjectStats();\n };\n })(this));\n };\n\n BacklogController.prototype.editUserStory = function(projectId, ref, $event) {\n var currentLoading, target;\n target = $($event.target);\n currentLoading = this.loading().target(target).removeClasses(\"edit-story\").timeout(200).start();\n return this.rs.userstories.getByRef(projectId, ref).then((function(_this) {\n return function(us) {\n return _this.rs2.attachments.list(\"us\", us.id, projectId).then(function(attachments) {\n _this.rootscope.$broadcast(\"usform:edit\", us, attachments.toJS());\n return currentLoading.finish();\n });\n };\n })(this));\n };\n\n BacklogController.prototype.deleteUserStory = function(us) {\n var message, title;\n title = this.translate.instant(\"US.TITLE_DELETE_ACTION\");\n message = us.subject;\n return this.confirm.askOnDelete(title, message).then((function(_this) {\n return function(askResponse) {\n var promise;\n _this.scope.userstories = _.without(_this.scope.userstories, us);\n promise = _this.repo.remove(us);\n promise.then(function() {\n askResponse.finish();\n return _this.q.all([_this.loadProjectStats(), _this.loadSprints()]);\n });\n return promise.then(null, function() {\n askResponse.finish(false);\n return _this.confirm.notify(\"error\");\n });\n };\n })(this));\n };\n\n BacklogController.prototype.addNewUs = function(type) {\n switch (type) {\n case \"standard\":\n return this.rootscope.$broadcast(\"usform:new\", this.scope.projectId, this.scope.project.default_us_status, this.scope.usStatusList);\n case \"bulk\":\n return this.rootscope.$broadcast(\"usform:bulk\", this.scope.projectId, this.scope.project.default_us_status);\n }\n };\n\n BacklogController.prototype.addNewSprint = function() {\n return this.rootscope.$broadcast(\"sprintform:create\", this.scope.projectId);\n };\n\n BacklogController.prototype.findCurrentSprint = function() {\n var currentDate;\n currentDate = new Date().getTime();\n return _.find(this.scope.sprints, function(sprint) {\n var end, start;\n start = moment(sprint.estimated_start, 'YYYY-MM-DD').format('x');\n end = moment(sprint.estimated_finish, 'YYYY-MM-DD').format('x');\n return currentDate >= start && currentDate <= end;\n });\n };\n\n return BacklogController;\n\n })(mixOf(taiga.Controller, taiga.PageMixin, taiga.FiltersMixin, taiga.UsFiltersMixin));\n\n module.controller(\"BacklogController\", BacklogController);\n\n BacklogDirective = function($repo, $rootscope, $translate, $rs) {\n var doomLineTemplate, link, linkDoomLine, linkFilters, linkToolbar, openFilterInit, showHideFilter, showHideTags;\n doomLineTemplate = _.template(\"<%- text %>\");\n linkDoomLine = function($scope, $el, $attrs, $ctrl) {\n var addDoomLineDom, getUsItems, reloadDoomLine, removeDoomlineDom;\n reloadDoomLine = function() {\n var current_sum, domElement, i, j, len, ref1, results, stats, total_points, us;\n if ($scope.displayVelocity) {\n removeDoomlineDom();\n }\n if (($scope.stats != null) && ($scope.stats.total_points != null) && $scope.stats.total_points !== 0 && ($scope.displayVelocity == null)) {\n removeDoomlineDom();\n stats = $scope.stats;\n total_points = stats.total_points;\n current_sum = stats.assigned_points;\n if (!$scope.userstories) {\n return;\n }\n ref1 = $scope.userstories;\n results = [];\n for (i = j = 0, len = ref1.length; j < len; i = ++j) {\n us = ref1[i];\n current_sum += us.total_points;\n if (current_sum > total_points) {\n domElement = $el.find('.backlog-table-body .us-item-row')[i];\n addDoomLineDom(domElement);\n break;\n } else {\n results.push(void 0);\n }\n }\n return results;\n }\n };\n removeDoomlineDom = function() {\n return $el.find(\".doom-line\").remove();\n };\n addDoomLineDom = function(element) {\n var text;\n text = $translate.instant(\"BACKLOG.DOOMLINE\");\n return $(element).before(doomLineTemplate({\n \"text\": text\n }));\n };\n getUsItems = function() {\n var rowElements;\n rowElements = $el.find('.backlog-table-body .us-item-row');\n return _.map(rowElements, function(x) {\n return angular.element(x);\n });\n };\n $scope.$on(\"userstories:loaded\", reloadDoomLine);\n $scope.$on(\"userstories:forecast\", removeDoomlineDom);\n return $scope.$watch(\"stats\", reloadDoomLine);\n };\n linkToolbar = function($scope, $el, $attrs, $ctrl) {\n var checkSelected, getUsToMove, lastChecked, moveToCurrentSprint, moveToLatestSprint, moveUssToSprint, shiftPressed;\n getUsToMove = function() {\n var ussDom;\n ussDom = $el.find(\".backlog-table-body input:checkbox:checked\");\n return _.map(ussDom, function(item) {\n var itemScope;\n item = $(item).closest('.tg-scope');\n itemScope = item.scope();\n itemScope.us.milestone = $scope.sprints[0].id;\n return itemScope.us;\n });\n };\n moveUssToSprint = function(selectedUss, sprint) {\n var extraPoints, totalExtraPoints, ussCurrent;\n ussCurrent = _($scope.userstories);\n $scope.userstories = ussCurrent.without.apply(ussCurrent, selectedUss).value();\n extraPoints = _.map(selectedUss, function(v, k) {\n return v.total_points;\n });\n totalExtraPoints = _.reduce(extraPoints, function(acc, num) {\n return acc + num;\n });\n sprint.user_stories = _.union(sprint.user_stories, selectedUss);\n sprint.total_points += totalExtraPoints;\n $rs.userstories.bulkUpdateMilestone($scope.project.id, $scope.sprints[0].id, selectedUss).then((function(_this) {\n return function() {\n $ctrl.loadSprints();\n $ctrl.loadProjectStats();\n $ctrl.toggleVelocityForecasting();\n return $ctrl.calculateForecasting();\n };\n })(this));\n return $el.find(\".move-to-sprint\").hide();\n };\n moveToCurrentSprint = function(selectedUss) {\n return moveUssToSprint(selectedUss, $scope.currentSprint);\n };\n moveToLatestSprint = function(selectedUss) {\n return moveUssToSprint(selectedUss, $scope.sprints[0]);\n };\n $scope.$on(\"sprintform:create:success:callback\", function(e, ussToMove) {\n return _.partial(moveToCurrentSprint, ussToMove)();\n });\n shiftPressed = false;\n lastChecked = null;\n checkSelected = function(target) {\n var moveToSprintDom, selectedUsDom;\n lastChecked = target.closest(\".us-item-row\");\n target.closest('.us-item-row').toggleClass('ui-multisortable-multiple');\n moveToSprintDom = $el.find(\".move-to-sprint\");\n selectedUsDom = $el.find(\".backlog-table-body input:checkbox:checked\");\n if (selectedUsDom.length > 0 && $scope.sprints.length > 0) {\n return moveToSprintDom.show();\n } else {\n return moveToSprintDom.hide();\n }\n };\n $(window).on(\"keydown.shift-pressed keyup.shift-pressed\", function(event) {\n shiftPressed = !!event.shiftKey;\n return true;\n });\n $el.on(\"change\", \".backlog-table-body input:checkbox\", function(event) {\n var current, elements, nextAll, prevAll, target;\n if (lastChecked && shiftPressed) {\n elements = [];\n current = $(event.currentTarget).closest(\".us-item-row\");\n nextAll = lastChecked.nextAll();\n prevAll = lastChecked.prevAll();\n if (_.some(nextAll, function(next) {\n return next === current[0];\n })) {\n elements = lastChecked.nextUntil(current);\n } else if (_.some(prevAll, function(prev) {\n return prev === current[0];\n })) {\n elements = lastChecked.prevUntil(current);\n }\n _.map(elements, function(elm) {\n var input;\n input = $(elm).find(\"input:checkbox\");\n input.prop('checked', true);\n return checkSelected(input);\n });\n }\n target = angular.element(event.currentTarget);\n target.closest(\".us-item-row\").toggleClass('is-checked');\n return checkSelected(target);\n });\n $el.on(\"click\", \"#move-to-latest-sprint\", (function(_this) {\n return function(event) {\n var ussToMove;\n ussToMove = getUsToMove();\n return $scope.$apply(_.partial(moveToLatestSprint, ussToMove));\n };\n })(this));\n $el.on(\"click\", \"#move-to-current-sprint\", (function(_this) {\n return function(event) {\n var ussToMove;\n ussToMove = getUsToMove();\n return $scope.$apply(_.partial(moveToCurrentSprint, ussToMove));\n };\n })(this));\n $el.on(\"click\", \"#show-tags\", function(event) {\n event.preventDefault();\n $ctrl.toggleShowTags();\n return showHideTags($ctrl);\n });\n return $el.on(\"click\", \".forecasting-add-sprint\", function(event) {\n var ussToMove, ussToMoveList;\n ussToMoveList = $ctrl.forecastedStories;\n if ($scope.currentSprint) {\n ussToMove = _.map(ussToMoveList, function(us, index) {\n us.milestone = $scope.currentSprint.id;\n us.order = index;\n return us;\n });\n return $scope.$apply(_.partial(moveToCurrentSprint, ussToMove));\n } else {\n ussToMove = _.map(ussToMoveList, function(us, index) {\n us.order = index;\n return us;\n });\n return $rootscope.$broadcast(\"sprintform:create\", $scope.projectId, ussToMove);\n }\n });\n };\n showHideTags = function($ctrl) {\n var elm, text;\n elm = angular.element(\"#show-tags\");\n if ($ctrl.showTags) {\n elm.addClass(\"active\");\n text = $translate.instant(\"BACKLOG.TAGS.HIDE\");\n return elm.text(text);\n } else {\n elm.removeClass(\"active\");\n text = $translate.instant(\"BACKLOG.TAGS.SHOW\");\n return elm.text(text);\n }\n };\n openFilterInit = function($scope, $el, $ctrl) {\n var sidebar;\n sidebar = $el.find(\"sidebar.backlog-filter\");\n sidebar.addClass(\"active\");\n return $ctrl.activeFilters = true;\n };\n showHideFilter = function($scope, $el, $ctrl) {\n var hideText, showText, sidebar, target;\n sidebar = $el.find(\"sidebar.backlog-filter\");\n sidebar.one(\"transitionend\", function() {\n return timeout(150, function() {\n $rootscope.$broadcast(\"resize\");\n return $('.burndown').css(\"visibility\", \"visible\");\n });\n });\n target = angular.element(\"#show-filters-button\");\n $('.burndown').css(\"visibility\", \"hidden\");\n sidebar.toggleClass(\"active\");\n target.toggleClass(\"active\");\n hideText = $translate.instant(\"BACKLOG.FILTERS.HIDE\");\n showText = $translate.instant(\"BACKLOG.FILTERS.SHOW\");\n toggleText(target, [hideText, showText]);\n return $ctrl.toggleActiveFilters();\n };\n linkFilters = function($scope, $el, $attrs, $ctrl) {\n $scope.filtersSearch = {};\n return $el.on(\"click\", \"#show-filters-button\", function(event) {\n event.preventDefault();\n return $scope.$apply(function() {\n return showHideFilter($scope, $el, $ctrl);\n });\n });\n };\n link = function($scope, $el, $attrs, $rootscope) {\n var $ctrl, filters;\n $ctrl = $el.controller();\n linkToolbar($scope, $el, $attrs, $ctrl);\n linkFilters($scope, $el, $attrs, $ctrl);\n linkDoomLine($scope, $el, $attrs, $ctrl);\n filters = $ctrl.location.search();\n if (filters.status || filters.tags || filters.q || filters.assigned_to || filters.owner) {\n openFilterInit($scope, $el, $ctrl);\n }\n $scope.$on(\"showTags\", function() {\n return showHideTags($ctrl);\n });\n return $scope.$on(\"$destroy\", function() {\n $el.off();\n return $(window).off(\".shift-pressed\");\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBacklog\", [\"$tgRepo\", \"$rootScope\", \"$translate\", \"$tgResources\", BacklogDirective]);\n\n UsRolePointsSelectorDirective = function($rootscope, $template, $compile, $translate) {\n var link, selectionTemplate;\n selectionTemplate = $template.get(\"backlog/us-role-points-popover.html\", true);\n link = function($scope, $el, $attrs) {\n bindOnce($scope, \"project\", function(project) {\n var numberOfRoles, roles;\n roles = _.filter(project.roles, \"computable\");\n numberOfRoles = _.size(roles);\n if (numberOfRoles > 1) {\n return $el.append($compile(selectionTemplate({\n \"roles\": roles\n }))($scope));\n } else {\n $el.find(\".icon-arrow-down\").remove();\n return $el.find(\".header-points\").addClass(\"not-clickable\");\n }\n });\n $scope.$on(\"uspoints:select\", function(ctx, roleId, roleName) {\n $el.find(\".popover\").popover().close();\n return $el.find(\".header-points\").html(roleName + \"/Total\");\n });\n $scope.$on(\"uspoints:clear-selection\", function(ctx, roleId) {\n var text;\n $el.find(\".popover\").popover().close();\n text = $translate.instant(\"COMMON.FIELDS.POINTS\");\n return $el.find(\".header-points\").text(text);\n });\n $el.on(\"click\", function(event) {\n var target;\n target = angular.element(event.target);\n if (target.is(\"span\") || target.is(\"div\")) {\n event.stopPropagation();\n }\n return $el.find(\".popover\").popover().open();\n });\n $el.on(\"click\", \".clear-selection\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n return $rootscope.$broadcast(\"uspoints:clear-selection\");\n });\n $el.on(\"click\", \".role\", function(event) {\n var rolScope, target;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n rolScope = target.scope();\n return $rootscope.$broadcast(\"uspoints:select\", target.data(\"role-id\"), target.text());\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgUsRolePointsSelector\", [\"$rootScope\", \"$tgTemplate\", \"$compile\", \"$translate\", UsRolePointsSelectorDirective]);\n\n UsPointsDirective = function($tgEstimationsService, $repo, $tgTemplate) {\n var link, rolesTemplate;\n rolesTemplate = $tgTemplate.get(\"common/estimation/us-points-roles-popover.html\", true);\n link = function($scope, $el, $attrs) {\n var $ctrl, bindClickElements, estimationProcess, filteringRoleId, renderRolesSelector, selectedRoleId, updatingSelectedRoleId;\n $ctrl = $el.controller();\n updatingSelectedRoleId = null;\n selectedRoleId = null;\n filteringRoleId = null;\n estimationProcess = null;\n $scope.$on(\"uspoints:select\", function(ctx, roleId, roleName) {\n var us;\n us = $scope.$eval($attrs.tgBacklogUsPoints);\n selectedRoleId = roleId;\n return estimationProcess.render();\n });\n $scope.$on(\"uspoints:clear-selection\", function(ctx) {\n var us;\n us = $scope.$eval($attrs.tgBacklogUsPoints);\n selectedRoleId = null;\n return estimationProcess.render();\n });\n $scope.$watch($attrs.tgBacklogUsPoints, function(us) {\n var roles;\n if (us) {\n estimationProcess = $tgEstimationsService.create($el, us, $scope.project);\n roles = estimationProcess.calculateRoles();\n if (roles.length === 0) {\n $el.find(\".icon-arrow-bottom\").remove();\n $el.find(\"a.us-points\").addClass(\"not-clickable\");\n } else if (roles.length === 1) {\n selectedRoleId = _.keys(us.points)[0];\n }\n if (estimationProcess.isEditable) {\n bindClickElements();\n }\n estimationProcess.onSelectedPointForRole = function(roleId, pointId, points) {\n us.points = points;\n estimationProcess.render();\n return this.save(roleId, pointId).then(function() {\n return $ctrl.loadProjectStats();\n });\n };\n estimationProcess.render = function() {\n var ctx, html, mainTemplate, pointId, pointObj, template, text, title, totalPoints;\n totalPoints = this.calculateTotalPoints();\n if ((selectedRoleId == null) || roles.length === 1) {\n text = totalPoints;\n title = totalPoints;\n } else {\n pointId = this.us.points[selectedRoleId];\n pointObj = this.pointsById[pointId];\n text = pointObj.name + \" / \" + totalPoints + \"\";\n title = pointObj.name + \" / \" + totalPoints;\n }\n ctx = {\n totalPoints: totalPoints,\n roles: this.calculateRoles(),\n editable: this.isEditable,\n text: text,\n title: title\n };\n mainTemplate = \"common/estimation/us-estimation-total.html\";\n template = $tgTemplate.get(mainTemplate, true);\n html = template(ctx);\n return this.$el.html(html);\n };\n return estimationProcess.render();\n }\n });\n renderRolesSelector = function() {\n var html, roles;\n roles = estimationProcess.calculateRoles();\n html = rolesTemplate({\n \"roles\": roles\n });\n $el.append(html);\n return $el.find(\".pop-role\").popover().open(function() {\n return $(this).remove();\n });\n };\n bindClickElements = function() {\n $el.on(\"click\", \"a.us-points\", function(event) {\n var us;\n event.preventDefault();\n event.stopPropagation();\n us = $scope.$eval($attrs.tgBacklogUsPoints);\n updatingSelectedRoleId = selectedRoleId;\n if (selectedRoleId != null) {\n return estimationProcess.renderPointsSelector(selectedRoleId);\n } else {\n return renderRolesSelector();\n }\n });\n return $el.on(\"click\", \".role\", function(event) {\n var popRolesDom, target, us;\n event.preventDefault();\n event.stopPropagation();\n target = angular.element(event.currentTarget);\n us = $scope.$eval($attrs.tgBacklogUsPoints);\n updatingSelectedRoleId = target.data(\"role-id\");\n popRolesDom = $el.find(\".pop-role\");\n popRolesDom.find(\"a\").removeClass(\"active\");\n popRolesDom.find(\"a[data-role-id='\" + updatingSelectedRoleId + \"']\").addClass(\"active\");\n return estimationProcess.renderPointsSelector(updatingSelectedRoleId);\n });\n };\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBacklogUsPoints\", [\"$tgEstimationsService\", \"$tgRepo\", \"$tgTemplate\", UsPointsDirective]);\n\n ToggleBurndownVisibility = function($storage) {\n var hide, link, show;\n hide = function() {\n $(\".js-burndown-graph\").removeClass(\"shown\");\n $(\".js-toggle-burndown-visibility-button\").removeClass(\"active\");\n return $(\".js-burndown-graph\").removeClass(\"open\");\n };\n show = function(firstLoad) {\n $(\".js-toggle-burndown-visibility-button\").addClass(\"active\");\n if (firstLoad) {\n return $(\".js-burndown-graph\").addClass(\"shown\");\n } else {\n return $(\".js-burndown-graph\").addClass(\"open\");\n }\n };\n link = function($scope, $el, $attrs) {\n var firstLoad, hash, toggleGraph;\n firstLoad = true;\n hash = generateHash([\"is-burndown-grpahs-collapsed\"]);\n $scope.isBurndownGraphCollapsed = $storage.get(hash) || false;\n toggleGraph = function() {\n if ($scope.isBurndownGraphCollapsed) {\n hide(firstLoad);\n } else {\n show(firstLoad);\n }\n return firstLoad = false;\n };\n $scope.$watch(\"showGraphPlaceholder\", function() {\n if ($scope.showGraphPlaceholder != null) {\n $scope.isBurndownGraphCollapsed = $scope.isBurndownGraphCollapsed || $scope.showGraphPlaceholder;\n return toggleGraph();\n }\n });\n $el.on(\"click\", \".js-toggle-burndown-visibility-button\", function() {\n $scope.isBurndownGraphCollapsed = !$scope.isBurndownGraphCollapsed;\n $storage.set(hash, $scope.isBurndownGraphCollapsed);\n return toggleGraph();\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgToggleBurndownVisibility\", [\"$tgStorage\", ToggleBurndownVisibility]);\n\n BurndownBacklogGraphDirective = function($translate) {\n var link, redrawChart;\n redrawChart = function(element, dataToDraw) {\n var client_increment_line, colors, data, evolution_line, j, milestonesRange, optimal_line, options, ref1, results, team_increment_line, width, zero_line;\n width = element.width();\n element.height(width / 6);\n milestonesRange = (function() {\n results = [];\n for (var j = 0, ref1 = dataToDraw.milestones.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; 0 <= ref1 ? j++ : j--){ results.push(j); }\n return results;\n }).apply(this);\n data = [];\n zero_line = _.map(dataToDraw.milestones, function(ml) {\n return 0;\n });\n data.push({\n data: _.zip(milestonesRange, zero_line),\n lines: {\n fillColor: \"rgba(0,0,0,0)\"\n },\n points: {\n show: false\n }\n });\n optimal_line = _.map(dataToDraw.milestones, function(ml) {\n return ml.optimal;\n });\n data.push({\n data: _.zip(milestonesRange, optimal_line),\n lines: {\n fillColor: \"rgba(120,120,120,0.2)\"\n }\n });\n evolution_line = _.filter(_.map(dataToDraw.milestones, function(ml) {\n return ml.evolution;\n }), function(evolution) {\n return evolution != null;\n });\n data.push({\n data: _.zip(milestonesRange, evolution_line),\n lines: {\n fillColor: \"rgba(102,153,51,0.3)\"\n }\n });\n client_increment_line = _.map(dataToDraw.milestones, function(ml) {\n return -ml[\"team-increment\"] - ml[\"client-increment\"];\n });\n data.push({\n data: _.zip(milestonesRange, client_increment_line),\n lines: {\n fillColor: \"rgba(255,51,51,0.3)\"\n }\n });\n team_increment_line = _.map(dataToDraw.milestones, function(ml) {\n return -ml[\"team-increment\"];\n });\n data.push({\n data: _.zip(milestonesRange, team_increment_line),\n lines: {\n fillColor: \"rgba(153,51,51,0.3)\"\n }\n });\n colors = [\"rgba(0,0,0,1)\", \"rgba(120,120,120,0.2)\", \"rgba(102,153,51,1)\", \"rgba(153,51,51,1)\", \"rgba(255,51,51,1)\"];\n options = {\n grid: {\n borderWidth: {\n top: 0,\n right: 1,\n left: 0,\n bottom: 0\n },\n borderColor: \"#ccc\",\n hoverable: true\n },\n xaxis: {\n ticks: dataToDraw.milestones.length,\n axisLabel: $translate.instant(\"BACKLOG.CHART.XAXIS_LABEL\"),\n axisLabelUseCanvas: true,\n axisLabelFontSizePixels: 12,\n axisLabelFontFamily: \"Verdana, Arial, Helvetica, Tahoma, sans-serif\",\n axisLabelPadding: 5,\n tickFormatter: function(val, axis) {\n return \"\";\n }\n },\n yaxis: {\n axisLabel: $translate.instant(\"BACKLOG.CHART.YAXIS_LABEL\"),\n axisLabelUseCanvas: true,\n axisLabelFontSizePixels: 12,\n axisLabelFontFamily: \"Verdana, Arial, Helvetica, Tahoma, sans-serif\",\n axisLabelPadding: 5\n },\n series: {\n shadowSize: 0,\n lines: {\n show: true,\n fill: true\n },\n points: {\n show: true,\n fill: true,\n radius: 4,\n lineWidth: 2\n }\n },\n colors: colors,\n tooltip: true,\n tooltipOpts: {\n content: function(label, xval, yval, flotItem) {\n var ctx;\n if (flotItem.seriesIndex === 1) {\n ctx = {\n sprintName: dataToDraw.milestones[xval].name,\n value: Math.abs(yval)\n };\n return $translate.instant(\"BACKLOG.CHART.OPTIMAL\", ctx);\n } else if (flotItem.seriesIndex === 2) {\n ctx = {\n sprintName: dataToDraw.milestones[xval].name,\n value: Math.abs(yval)\n };\n return $translate.instant(\"BACKLOG.CHART.REAL\", ctx);\n } else if (flotItem.seriesIndex === 3) {\n ctx = {\n sprintName: dataToDraw.milestones[xval].name,\n value: Math.abs(yval)\n };\n return $translate.instant(\"BACKLOG.CHART.INCREMENT_CLIENT\", ctx);\n } else {\n ctx = {\n sprintName: dataToDraw.milestones[xval].name,\n value: Math.abs(yval)\n };\n return $translate.instant(\"BACKLOG.CHART.INCREMENT_TEAM\", ctx);\n }\n }\n }\n };\n element.empty();\n return element.plot(data, options).data(\"plot\");\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$watch(\"stats\", function(value) {\n if ($scope.stats != null) {\n redrawChart(element, $scope.stats);\n return $scope.$on(\"resize\", function() {\n return redrawChart(element, $scope.stats);\n });\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBurndownBacklogGraph\", [\"$translate\", BurndownBacklogGraphDirective]);\n\n TgBacklogProgressBarDirective = function($template, $compile) {\n var adjustPercentaje, link, render, template;\n template = $template.get(\"backlog/progress-bar.html\", true);\n render = function(scope, el, projectPointsPercentaje, closedPointsPercentaje) {\n var html;\n html = template({\n projectPointsPercentaje: projectPointsPercentaje,\n closedPointsPercentaje: closedPointsPercentaje\n });\n html = $compile(html)(scope);\n return el.html(html);\n };\n adjustPercentaje = function(percentage) {\n var adjusted;\n adjusted = _.max([0, percentage]);\n adjusted = _.min([100, adjusted]);\n return Math.round(adjusted);\n };\n link = function($scope, $el, $attrs) {\n var element;\n element = angular.element($el);\n $scope.$watch($attrs.tgBacklogProgressBar, function(stats) {\n var closedPoints, closedPointsPercentaje, definedPoints, projectPointsPercentaje, totalPoints;\n if (stats != null) {\n totalPoints = stats.total_points ? stats.total_points : stats.defined_points;\n definedPoints = stats.defined_points;\n closedPoints = stats.closed_points;\n if (definedPoints > totalPoints) {\n projectPointsPercentaje = totalPoints * 100 / definedPoints;\n closedPointsPercentaje = closedPoints * 100 / definedPoints;\n } else {\n projectPointsPercentaje = 100;\n closedPointsPercentaje = closedPoints * 100 / totalPoints;\n }\n projectPointsPercentaje = adjustPercentaje(projectPointsPercentaje - 3);\n closedPointsPercentaje = adjustPercentaje(closedPointsPercentaje - 3);\n return render($scope, $el, projectPointsPercentaje, closedPointsPercentaje);\n }\n });\n return $scope.$on(\"$destroy\", function() {\n return $el.off();\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBacklogProgressBar\", [\"$tgTemplate\", \"$compile\", TgBacklogProgressBarDirective]);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino \n * Copyright (C) 2014-2017 Alejandro Alonso \n * Copyright (C) 2014-2017 Juan Francisco Alcántara \n * Copyright (C) 2014-2017 Xavi Julian \n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n * File: modules/backlog/sortable.coffee\n */\n\n(function() {\n var BacklogSortableDirective, bindOnce, deleteElement, module, taiga;\n\n taiga = this.taiga;\n\n bindOnce = this.taiga.bindOnce;\n\n module = angular.module(\"taigaBacklog\");\n\n deleteElement = function(el) {\n $(el).scope().$destroy();\n $(el).off();\n return $(el).remove();\n };\n\n BacklogSortableDirective = function() {\n var link;\n link = function($scope, $el, $attrs) {\n return bindOnce($scope, \"project\", function(project) {\n var drake, initIsBacklog, scroll;\n if (!(project.my_permissions.indexOf(\"modify_us\") > -1)) {\n return;\n }\n initIsBacklog = false;\n drake = dragula([$el[0], $('.js-empty-backlog')[0]], {\n copySortSource: false,\n copy: false,\n isContainer: function(el) {\n return el.classList.contains('sprint-table');\n },\n moves: function(item) {\n if (!$(item).hasClass('row')) {\n return false;\n }\n return true;\n }\n });\n drake.on('drag', function(item, container) {\n var isChecked, parent;\n parent = $(item).parent();\n initIsBacklog = parent.hasClass('backlog-table-body');\n $(document.body).addClass(\"drag-active\");\n isChecked = $(item).find(\"input[type='checkbox']\").is(\":checked\");\n return window.dragMultiple.start(item, container);\n });\n drake.on('cloned', function(item) {\n return $(item).addClass('backlog-us-mirror');\n });\n drake.on('dragend', function(item) {\n var dragMultipleItems, firstElement, index, isBacklog, parent, sameContainer, sprint, usList;\n parent = $(item).parent();\n $('.doom-line').remove();\n parent = $(item).parent();\n isBacklog = parent.hasClass('backlog-table-body') || parent.hasClass('js-empty-backlog');\n if (initIsBacklog || isBacklog) {\n sameContainer = initIsBacklog === isBacklog;\n } else {\n sameContainer = $(item).scope().sprint.id === parent.scope().sprint.id;\n }\n dragMultipleItems = window.dragMultiple.stop();\n $(document.body).removeClass(\"drag-active\");\n sprint = null;\n firstElement = dragMultipleItems.length ? dragMultipleItems[0] : item;\n if (isBacklog) {\n index = $(firstElement).index(\".backlog-table-body .row\");\n } else {\n index = $(firstElement).index();\n sprint = parent.scope().sprint.id;\n }\n if (!sameContainer) {\n if (dragMultipleItems.length) {\n usList = _.map(dragMultipleItems, function(item) {\n return item = $(item).scope().us;\n });\n } else {\n usList = [$(item).scope().us];\n }\n if (dragMultipleItems.length) {\n _.each(dragMultipleItems, function(item) {\n return deleteElement(item);\n });\n } else {\n deleteElement(item);\n }\n } else {\n if (dragMultipleItems.length) {\n usList = _.map(dragMultipleItems, function(item) {\n return item = $(item).scope().us;\n });\n } else {\n usList = [$(item).scope().us];\n }\n }\n return $scope.$emit(\"sprint:us:move\", usList, index, sprint);\n });\n scroll = autoScroll([window], {\n margin: 20,\n pixels: 30,\n scrollWhenOutside: true,\n autoScroll: function() {\n return this.down && drake.dragging;\n }\n });\n return $scope.$on(\"$destroy\", function() {\n $el.off();\n return drake.destroy();\n });\n });\n };\n return {\n link: link\n };\n };\n\n module.directive(\"tgBacklogSortable\", BacklogSortableDirective);\n\n}).call(this);\n\n\n/*\n * Copyright (C) 2014-2017 Andrey Antukh \n * Copyright (C) 2014-2017 Jesús Espino Garcia \n * Copyright (C) 2014-2017 David Barragán Merino