{"version":3,"sources":["contexts/App/appReducers.ts","contexts/App/appContext.tsx","enums/EIntentType.ts","enums/EListType.ts","models/DataFormModel.ts","components/Flow/utils/NodeContainer.ts","utils/String.ts","controllers/intent/IntentController.ts","controllers/intent/CreateIntentController.ts","controllers/intent/RemoveIntentController.ts","components/BlocklyConstructor/compiler.js","controllers/intent/UpdateIntentController.ts","models/DrawflowModel.ts","services/AuthService/index.ts","services/RequestService/index.ts","services/BotService/index.ts","services/CompaniesService/Company/index.ts","services/FlowService/index.ts","contexts/Flow/flowReducers.ts","components/Flow/styles.ts","components/ModalBlockOptions/BlockAccessCount/styles.ts","components/ModalBlockOptions/BlockAccessCount/types.ts","components/Icons/HeatmapIcon.tsx","components/Material/MttButton/MttButton.tsx","components/ModalBlockOptions/styles.ts","components/Material/MttGrid/MttGrid.tsx","components/ModalBlockOptions/ModalHeatmap/styles.ts","components/ModalBlockOptions/ModalHeatmap/index.tsx","utils/hooks/googleCharts.js","components/ModalBlockOptions/index.tsx","components/Icons/RulesIcon.tsx","components/Icons/LogicIcon.tsx","components/Icons/NluIcon.tsx","components/Icons/MultipleChoiceIcon.tsx","components/Icons/ABTestIcon.tsx","components/Icons/FalaGPTIcon.tsx","services/FlagsService/index.ts","components/ModalBlockOptions/BlockAccessCount/FlagsContainer/styles.ts","components/ModalBlockOptions/BlockAccessCount/FlagsContainer/types.ts","components/ModalBlockOptions/BlockAccessCount/FlagsContainer/index.tsx","components/Icons/AppIcon.tsx","components/ModalBlockOptions/BlockAccessCount/index.tsx","controllers/library/AddBlockToFlowController.ts","controllers/library/GetBlockOnFlowController.ts","controllers/library/GetOffsetPositionFlowController.ts","controllers/node/UpdateNodesPositionController.ts","utils/ImportBot/BackupBot.ts","utils/Helpers.ts","components/BlocklyConstructor/logic.js","utils/hooks/Translator.ts","contexts/Permissions/permissionsReducer.ts","contexts/Permissions/permissionsContext.tsx","services/FlexBlocksService/index.ts","contexts/Flow/flowContext.tsx","themes/DefaultTheme.tsx","themes/ThemeCustom.tsx","components/Icons/LLego.tsx","contexts/Entity/entityReducers.ts","contexts/Entity/entityContext.tsx","components/Material/MttTextField/MttTextFIeld.tsx","views/Canvas/Main/styles.ts","components/Material/MttBox/MttBox.tsx","pages/Entities/NewVariable/styles.ts","components/CircularDeleteButton/styles.ts","components/CircularDeleteButton/index.tsx","pages/Entities/NewVariable/DefineWords/styles.ts","pages/Entities/NewVariable/DefineWords/InputField/styles.ts","pages/Entities/NewVariable/DefineWords/InputField/index.tsx","pages/Entities/NewVariable/AdvancedExpressions/styles.ts","pages/Entities/NewVariable/DefineWords/index.tsx","pages/Entities/NewVariable/AdvancedExpressions/index.tsx","services/EntityService/index.ts","models/Entity.ts","pages/Entities/NewVariable/index.tsx","components/Material/MttTypography/MttTypography.tsx","pages/Entities/VariableEntities/styles.ts","components/EntitiesItem/styles.ts","utils/Entity.ts","components/EntitiesItem/index.tsx","pages/Entities/ModalVariableAlreadyExists/styles.ts","pages/Entities/ModalVariableAlreadyExists/index.tsx","pages/Entities/VariableEntities/index.tsx","pages/Entities/Main/index.tsx","pages/Entities/index.tsx","components/LoadWrapper/styles.ts","components/LoadWrapper/index.tsx","controllers/intent/GetIntentsByName.ts","components/Flow/FilterField/index.tsx","components/Typography/index.tsx","components/ModalOptions/styles.ts","components/ModalOptions/index.tsx","components/Flow/utils/NodeSelection.ts","components/Flow/index.tsx","contexts/Form/formReducers.ts","contexts/Form/formContext.tsx","components/inputs/Material/FooterButtons/styles.ts","components/BlocklyConstructor/Header/styles.ts","components/Icons/CleaningIcon.tsx","components/BlocklyConstructor/Header/HeaderBlockly.tsx","components/BlocklyConstructor/logic_custom_category.js","components/BlocklyConstructor/logic_custom_generator.js","components/BlocklyConstructor/CustomBlocklys/AggregateFunctions/Aggregates.js","components/BlocklyConstructor/CustomBlocklys/Aliases/As.js","components/BlocklyConstructor/CustomBlocklys/Operators/And.js","components/BlocklyConstructor/CustomBlocklys/Operators/Between.js","components/BlocklyConstructor/CustomBlocklys/Operators/Compare.js","components/BlocklyConstructor/CustomBlocklys/Operators/Innifier.js","components/BlocklyConstructor/CustomBlocklys/Operators/Math.js","components/BlocklyConstructor/CustomBlocklys/Operators/Not.js","components/BlocklyConstructor/CustomBlocklys/Operators/Or.js","components/BlocklyConstructor/CustomBlocklys/Limit.js","components/BlocklyConstructor/CustomBlocklys/ListFrom.js","components/BlocklyConstructor/CustomBlocklys/ListSelect.js","components/BlocklyConstructor/CustomBlocklys/StatementsAndClauses/Join.js","components/BlocklyConstructor/CustomBlocklys/StatementsAndClauses/OrderBy.js","components/BlocklyConstructor/CustomBlocklys/StatementsAndClauses/Select.js","components/BlocklyConstructor/CustomBlocklys/StatementsAndClauses/SelectFrom.js","components/BlocklyConstructor/CustomBlocklys/StatementsAndClauses/SelectGroupBy.js","components/BlocklyConstructor/CustomBlocklys/StatementsAndClauses/SelectHaving.js","components/BlocklyConstructor/CustomBlocklys/StatementsAndClauses/Where.js","components/BlocklyConstructor/CustomBlocklys/TablesAndAttributes/Table.js","components/BlocklyConstructor/CustomBlocklys/TablesAndAttributes/AllChooser.js","components/BlocklyConstructor/CustomBlocklys/TablesAndAttributes/ConditionChooser.js","components/BlocklyConstructor/CustomBlocklys/ValueInputs/Boolean.js","components/BlocklyConstructor/CustomBlocklys/ValueInputs/Datepicker.js","components/BlocklyConstructor/CustomBlocklys/ValueInputs/FreeInput.js","components/BlocklyConstructor/CustomBlocklys/ValueInputs/Number.js","components/CodeEditor/index.tsx","components/TextEditor/styles.ts","components/TextEditor/index.tsx","components/BlocklyConstructor/BlocklyConstructor.jsx","components/BlocklyConstructor/index.js","components/ModalLogic/index.tsx","models/InfoForm.ts","models/ToNewIntention.ts","validations/validations.tsx","contexts/Flow/staticData.js","models/NewGroup.ts","components/inputs/Material/FooterButtons/index.tsx","utils/AppBlockManagement/UpdateAppGroup.ts","utils/AppBlockManagement/CreateAppGroup.ts","components/inputs/Material/Info/style.ts","components/inputs/Material/Info/index.tsx","components/inputs/Material/MessageForUser/styles.ts","components/inputs/Material/MessageForUser/index.tsx","components/inputs/Material/VariavelIdentificacaoTextoUsuario/styles.ts","components/inputs/Material/VariavelIdentificacaoTextoUsuario/index.tsx","components/inputs/Material/VariableIndentificationTextUser/styles.ts","components/inputs/Material/MultiVariables/styles.ts","components/inputs/Material/MultiVariables/index.tsx","views/dataEntries/Shared/styles.ts","components/inputs/Material/MultipleTags/style.ts","components/inputs/Material/MultipleTags/SimilarityComponent/styles.ts","components/inputs/Material/MultipleTags/SimilarityComponent/index.tsx","components/inputs/Material/MultipleTags/index.tsx","views/dataEntries/Advanced/index.tsx","utils/ArrayFunctions.ts","utils/Sentences/regExps.ts","utils/Sentences/index.ts","components/OutsideClick/index.tsx","components/inputs/Material/Sentences/styles.ts","components/inputs/Material/Sentences/SentenceParameters/index.tsx","components/inputs/Material/Sentences/ModalSearchVariables/index.tsx","components/inputs/Material/Sentences/index.tsx","components/Icons/index.tsx","components/SpeedDialWithMenuList/index.tsx","components/inputs/Material/VariableIndentificationTextUser/ModalVariableAdvanced/styles.ts","components/inputs/Material/VariableIndentificationTextUser/ModalVariableAdvanced/index.tsx","components/inputs/Material/VariableIndentificationTextUser/index.tsx","views/dataEntries/CarouselChild/index.tsx","components/inputs/Material/CarouselContent/styles.ts","components/inputs/Material/CarouselContent/index.tsx","views/dataEntries/CarouselParent/index.tsx","views/dataEntries/InitialFlow/index.tsx","views/dataEntries/MultipleChoiceChild/index.tsx","components/inputs/Material/MultipleChoiceItems/styles.ts","components/inputs/Material/MultipleChoiceItems/index.tsx","views/dataEntries/MultipleChoiceParent/index.tsx","components/Material/MttSelectField/MttSelectField.tsx","components/inputs/Material/ToNewIntention/styles.ts","components/inputs/Material/ToNewIntention/index.tsx","views/dataEntries/NewGroup/index.tsx","components/inputs/Material/UserQuestions/styles.ts","components/inputs/Material/MultiVariablesQuestions/styles.ts","components/inputs/Material/UserQuestions/ModalVariableAdvanced/styles.ts","components/inputs/Material/UserQuestions/ModalVariableAdvanced/index.tsx","components/inputs/Material/UserQuestions/index.tsx","components/inputs/Material/MultiVariablesQuestions/index.tsx","components/inputs/Material/MessageAfterUserReply/styles.ts","components/inputs/Material/MessageAfterUserReply/index.tsx","views/dataEntries/QuestionsAndAnswers/index.tsx","components/ModalForms/style.ts","views/dataEntries/Welcome/index.tsx","views/dataEntries/Fallback/index.tsx","views/dataEntries/Cancel/index.tsx","views/dataEntries/Outhers/index.tsx","components/inputs/Material/ExportDataSpreadSheet/styles.ts","components/inputs/Material/ExportDataSpreadSheet/index.tsx","components/inputs/Material/ExcelOrCSV/styles.ts","components/inputs/Material/ExcelOrCSV/index.tsx","components/inputs/Material/GoogleSheet/styles.ts","components/inputs/Material/GoogleSheet/index.tsx","services/VerificationCodeService/index.ts","views/dataEntries/SaveTable/index.tsx","components/inputs/Material/OptionsBlockContent/styles.ts","components/inputs/Material/OptionsBlockContent/OptionsBlockOutputsSentences/styles.ts","components/inputs/Material/OptionsBlockContent/OptionsBlockOutputsSentences/index.tsx","components/inputs/Material/OptionsBlockContent/index.tsx","views/dataEntries/OptionsBlock/index.tsx","components/inputs/Material/TypeOfMessage/styles.ts","components/inputs/Material/TypeOfMessage/index.tsx","views/dataEntries/SendMessage/index.tsx","components/inputs/Info/styles.ts","components/inputs/Info/index.tsx","components/inputs/LogicEditor/styles.ts","components/inputs/LogicEditor/index.tsx","components/inputs/SimpleQuestionFields/styles.ts","components/inputs/GlobalVariablesSelection/styles.ts","components/inputs/GlobalVariablesSelection/index.tsx","components/inputs/SimpleQuestionFields/index.tsx","components/Constructors/Select/index.tsx","components/Constructors/Checkbox/index.tsx","components/inputs/Variables/styles.ts","components/inputs/Variables/index.tsx","components/inputs/MultiVariables/styles.ts","components/inputs/MultiVariables/index.tsx","components/inputs/ToNewIntention/styles.ts","components/inputs/ToNewIntention/index.tsx","views/dataEntries/SimpleQuestion/index.tsx","components/inputs/SendDocumentFields/styles.ts","components/inputs/SendDocumentFields/index.tsx","views/dataEntries/SendDocument/index.tsx","views/dataEntries/Logic/index.tsx","views/dataEntries/NLU/index.tsx","components/inputs/Material/ToHtmlFields/styles.ts","components/inputs/Material/ToHtmlFields/index.tsx","views/dataEntries/OpenHTML/index.tsx","components/inputs/Material/NewCarouselContent/styles.ts","components/inputs/Material/NewCarouselContent/NewCarouselOutputsSentences/styles.ts","components/inputs/Material/NewCarouselContent/NewCarouselOutputsSentences/index.tsx","components/inputs/Material/NewCarouselContent/index.tsx","views/dataEntries/NewCarousel/index.tsx","components/inputs/Material/RulesBlockContent/styles.ts","components/inputs/Material/RulesBlockContent/RulesBlockOutputsSentences/styles.ts","components/inputs/Material/RulesBlockContent/RulesBlockOutputsSentences/index.tsx","components/inputs/Material/RulesBlockContent/index.tsx","views/dataEntries/Rules/index.tsx","components/inputs/Material/ABTestContent/styles.ts","components/inputs/Material/ABTestContent/ABTestOutputsSentences/styles.ts","components/inputs/Material/ABTestContent/ABTestOutputsSentences/index.tsx","components/inputs/Material/ABTestContent/index.tsx","views/dataEntries/ABTest/index.tsx","views/dataEntries/FalaGPT/index.tsx","components/inputs/Material/FlexBlockContent/styles.ts","components/inputs/Material/FlexBlockContent/FlexBlockContentOutputs/styles.ts","components/inputs/Material/FlexBlockContent/FlexBlockContentOutputs/index.tsx","components/inputs/Material/FlexBlockContent/index.tsx","views/dataEntries/FlexBlock/index.tsx","views/dataEntries/FlexBlockExit/index.tsx","views/dataEntries/FlexBlockEntry/index.tsx","components/ModalForms/index.tsx","components/ModalNewGroup/styles.ts","components/ModalNewGroup/index.tsx","components/ModalSavedBlocks/styles.ts","contexts/Library/libraryReducer.ts","contexts/Library/libraryContext.tsx","services/LibraryService/index.ts","components/ModalStandardTemplates/styles.ts","utils/Date.ts","components/ModalSavedBlocks/index.tsx","components/ModalSaveSelectedBlocks/styles.ts","models/NewBlockSet.ts","components/ModalSaveSelectedBlocks/index.tsx","services/TemplateService/index.ts","components/ModalStandardTemplates/index.tsx","components/ModalTemplateUpload/styles.ts","models/NewTemplate.ts","components/ModalTemplateUpload/index.tsx","components/ModalInactiveWarning/styles.ts","components/Icons/zzz.png","components/ModalInactiveWarning/index.tsx","components/ModalUsedGroup/styles.ts","components/Icons/edit.png","components/ModalUsedGroup/index.tsx","services/AccessKeysService/index.ts","models/NewAccessKey.ts","components/ModalAccessKeys/styles.ts","components/ModalAccessKeys/index.tsx","components/ModalManageAccount/styles.ts","models/AdminValidation.ts","components/ModalManageAccount/index.tsx","services/AdminServices/index.ts","components/ModalManageCompanies/styles.ts","components/ModalManageCompanies/ModalCompanyEdit/styles.tsx","models/OrganizationValidadion.ts","contexts/Permissions/types.ts","contexts/Company/types.ts","contexts/Company/companyReducer.ts","contexts/Company/index.tsx","components/ModalManageCompanies/ModalCompanyEdit/ManageUsers/index.tsx","components/ModalManageCompanies/ModalCompanyEdit/ManageAgents/index.tsx","services/CompaniesService/Projects/index.ts","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/styles.ts","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/ManageProject/styles.ts","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/ManageProject/ProjectGroups/ManageGroup/styles.ts","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/ManageProject/ProjectGroups/ManageGroup/ManageActions/index.tsx","services/CompaniesService/Groups/index.ts","utils/arraysAreEqual.ts","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/ManageProject/ProjectGroups/ManageGroup/index.tsx","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/ManageProject/ProjectGroups/styles.ts","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/ManageProject/ProjectGroups/index.tsx","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/ManageProject/index.tsx","components/ModalManageCompanies/ModalCompanyEdit/ManageProjects/index.tsx","components/ModalManageCompanies/ModalCompanyEdit/index.tsx","components/ModalManageCompanies/index.tsx","services/OrganizationServices/index.ts","components/ModalManagePermission/styles.ts","components/Forms/InputCheckbox/InputCheckboxWithLabel.tsx","components/ModalManagePermission/ModalPermissionEdit/PermissionTableRow/index.tsx","components/ModalManagePermission/ModalPermissionEdit/styles.ts","components/ModalManagePermission/ModalPermissionEdit/index.tsx","components/ModalManagePermission/index.tsx","components/ModalPhrasesOfIntentManager/styles.ts","components/ModalPhrasesOfIntentManager/PhraseOfIntent/styles.ts","components/ModalPhrasesOfIntentManager/PhraseOfIntent/index.tsx","components/ModalPhrasesOfIntentManager/index.tsx","components/ModalCorrectSentences/styles.ts","components/ModalCorrectSentences/Phrase/styles.ts","services/ConversationService/index.ts","views/Canvas/Main/ModalMisunderstoodPhrases/style.ts","utils/i18n/index.ts","utils/i18n/locales/index.ts","views/Canvas/Main/ModalCustomer/Filter/styles.ts","views/Canvas/Main/ModalCustomer/Filter/index.tsx","views/Canvas/Main/ModalMisunderstoodPhrases/index.tsx","components/ModalCorrectSentences/Phrase/index.tsx","components/ModalCorrectSentences/index.tsx","utils/WithHasAccess/index.tsx","utils/permission.ts","utils/Stores.ts","utils/hooks/useAccessControlLayer.tsx","components/ModalBlockedGroup/styles.ts","components/ModalBlockedGroup/index.tsx","components/ModalFlexBlocks/styles.ts","components/ModalFlexBlocks/index.tsx","pages/Flow/index.tsx","pages/Login/styles.ts","models/LoginModel.ts","pages/Login/ModalResetPassword/styles.ts","pages/Login/ModalResetPassword/types.ts","utils/classEmpty.ts","utils/validationGenerics.ts","components/Icons/PersonSearchIcon.tsx","pages/Login/ModalResetPassword/index.tsx","pages/Login/ModalResetPassword/validations.ts","components/Icons/BrazilFlagIcon.tsx","components/Icons/USFlagIcon.tsx","components/Icons/SpainFlagIcon.tsx","components/ChooseLanguage/styles.ts","components/ChooseLanguage/index.tsx","components/Icons/MicrosoftIcon.tsx","pages/Login/index.tsx","routes/PrivateRoute/index.tsx","routes/index.tsx","components/Icons/LogoutIcon.tsx","components/Icons/fintalk.png","components/Menus/FlowsUrls/styles.ts","components/Menus/FlowsUrls/index.tsx","components/Menus/FlowsUrls/FalazapIframe/styles.ts","components/Menus/FlowsUrls/FalazapIframe/index.tsx","components/ModalPublishBot/llego-animated.gif","components/ModalPublishBot/style.ts","components/PublishProgressBar/styles.ts","utils/CreateBotObject.ts","components/Flow/utils/CompileFlow.ts","utils/hooks/useAgents.tsx","utils/tagCompiler.ts","utils/insertInPayloadStart.ts","components/PublishProgressBar/index.tsx","utils/hooks/publishBotHook.tsx","components/ModalPublishBot/index.tsx","views/Canvas/Main/ModalCustomer/style.ts","views/Canvas/Main/ModalCustomer/index.tsx","views/Canvas/Main/ModalConversations/style.ts","views/Canvas/Main/ModalConversations/index.tsx","views/Canvas/Main/ToastNotification/index.tsx","views/Canvas/Main/ModalDeleteGroup/styles.ts","views/Canvas/Main/ModalDeleteGroup/index.tsx","views/Canvas/Main/ModalBotImportError/styles.ts","utils/ImportBot/ImportBotService.ts","components/Flow/utils/FlexGroupsTreatment.ts","views/Canvas/Main/ModalBotImportError/index.tsx","views/Canvas/Main/ModalImportExportBot/ModalRestoreBot/styles.ts","views/Canvas/Main/ModalImportExportBot/ModalRestoreBot/ModalConfirmRestore/styles.ts","views/Canvas/Main/ModalImportExportBot/ModalRestoreBot/ModalConfirmRestore/index.tsx","views/Canvas/Main/ModalImportExportBot/ModalRestoreBot/index.tsx","views/Canvas/Main/ModalImportExportBot/styles.ts","views/Canvas/Main/ModalImportExportBot/index.tsx","utils/ExportBot.ts","components/ModalUsedTab/styles.ts","components/ModalUsedTab/index.tsx","components/Debug/styles.ts","components/Debug/index.tsx","views/Canvas/Main/Campaigns/ModalTemplates/styles.ts","views/Canvas/Main/Campaigns/styles.ts","services/CampaignService/TemplatesService/types.ts","services/CampaignService/TemplatesService/index.ts","views/Canvas/Main/Campaigns/ModalTemplates/CreateOrEditTemplate/styles.ts","components/Icons/whats-bg.png","views/Canvas/Main/Campaigns/ModalTemplates/CreateOrEditTemplate/Preview/styles.ts","views/Canvas/Main/Campaigns/ModalTemplates/CreateOrEditTemplate/Preview/index.tsx","utils/uploadFile.ts","views/Canvas/Main/Campaigns/ModalTemplates/CreateOrEditTemplate/FormFalazap/index.tsx","views/Canvas/Main/Campaigns/ModalTemplates/CreateOrEditTemplate/index.tsx","services/CampaignService/CampaignsService/index.ts","components/Icons/ActioningIcon.tsx","components/Icons/CampaignIcon.tsx","views/Canvas/Main/Campaigns/ModalTemplates/index.tsx","views/Canvas/Main/Campaigns/ModalCampaigns/styles.ts","services/CampaignService/CampaignsService/types.ts","views/Canvas/Main/Campaigns/ModalCampaigns/CreateOrEditCampaign/index.tsx","services/CampaignService/ActioningsService/index.ts","components/Icons/TemplateIcon.tsx","views/Canvas/Main/Campaigns/ModalCampaigns/index.tsx","views/Canvas/Main/Campaigns/ModalActioning/styles.ts","views/Canvas/Main/Campaigns/ModalActioning/CreateOrEditActioning/styled.ts","views/Canvas/Main/Campaigns/ModalActioning/CreateOrEditActioning/index.tsx","services/CampaignService/ActioningsService/types.ts","views/Canvas/Main/Campaigns/ModalActioning/index.tsx","components/Icons/SchemaIcon.tsx","components/Icons/VariablesIcon.tsx","components/Icons/AdminIcon.tsx","components/Icons/TrainingIcon.tsx","components/Icons/FintalkIcon.tsx","utils/hooks/useSidebarItems.tsx","views/Canvas/Main/PublishButton/index.tsx","components/FalazapConfiguration/ModalFalazapToken/styles.ts","services/FalazapTokenService/index.ts","components/FalazapConfiguration/ModalFalazapToken/index.tsx","views/Canvas/Main/RenderBots.tsx","utils/ImportExportGroup.ts","views/Canvas/Main/index.tsx","styles.ts","App.tsx","reportWebVitals.ts","index.jsx","components/BlocklyConstructor/locales/pt-br.js"],"names":["initialState","signed","load","renderModalPasswordReset","passwordResetRequired","renderModalUsedTab","renderModalForgotPassword","reducerApp","state","action","type","functionsReducer","data","updateApp","openModalPasswordReset","openModalPasswordResetUnauthenticated","closeModalPasswordReset","openModalUsedTab","AppContext","createContext","AppProvider","props","children","dispatch","useReducer","useEffect","async","token","localStorage","getItem","channel","BroadcastChannel","window","onbeforeunload","postMessage","addEventListener","msg","_jsx","Provider","value","useApp","useContext","validateBlockedIntents","intentType","includes","EIntentType","EListType","RightClickEventBlockedIntentTypes","Others","Welcome","FlexBlockEntry","Fallback","Cancel","CloneEventBlockedIntentTypes","FlexBlock","DataFormModel","constructor","idOutput","parentId","name","description","InitialFlow","groupId","sendUser","attempts","inputs","outputs","linked","dataBlockly","listType","Horizontal","flag","rocketChat","rocketID","msgSuccess","msgFailure","messageType","undefined","varValue","saveVarValue","tags","entryName","Object","assign","this","hasVariables","SimpleQuestion","SendDocument","SendMessage","isOptionBlock","OptionsBlock","isParent","MultipleChoiceParent","CarouselParent","isChild","MultipleChoiceChild","CarouselChild","isOthers","isMain","isNewGroup","NewGroup","isHtml","OpenHTML","shouldBlockRightClickEvent","shouldBlockClone","isFlexBlockExit","FlexBlockExit","isFlexBlockEntry","isFlexBlock","hasMultipleOutputs","Carousel","getNameIntentType","getOutputAmount","_this$outputs","length","getChildType","getOutputs","getAttempts","getParentId","isOutputEqual","anoutherOutputs","JSON","stringify","getNodeIdsOutputRemoved","prevOutputs","_this$outputs2","prevIds","map","output","Number","outputid","currentIds","filter","id","getOutputToUpdate","_this$outputs3","getOutputToAdd","_this$outputs4","getMessage","_this$inputs","_this$sendUser","_this$sendUser2","_this$sendUser3","_this$sendUser4","QuestionsAndAnswers","variables","variable","questions","url","concat","message","getMessageType","result","toDataForm","blockRightClickEvent","element","e","preventDefault","stopPropagation","getSelectedNodeId","idsExclude","arguments","selecteds","document","getElementsByClassName","amount","ids","index","replace","push","getAllNodes","removeDeleteButton","remove","isSelectedNode","nodeId","nodeContainer","getElementById","classList","contains","uncheckSelectNodes","getNodePosition","y","style","top","x","left","umarkSearch","elements","markHighlighted","key","unmarkHighlighted","add","markCreated","setTimeout","unmarkCreated","markSelected","unmarkSelected","fixInputs","block","allBlocks","outputKeys","keys","connections","forEach","connection","destinationBlockId","node","destinationBlock","input_1","find","con","String","input","console","log","fixOutputs","inputsKeys","originBlockId","originBlock","brokenConnectionIndex","findIndex","originBlockOutputsConnections","some","fixInputsAndOutputs","drawflow","drawflowNodes","Home","allNodesKeys","inputConnections","indexOf","outputsKeys","connectionsKeys","splice","slugify","str","withUnderscore","removeEmoji","a","i","o","u","c","n","pattern","RegExp","prohibitedCharsWithoutUnderscore","prohibitedChars","toLocaleLowerCase","prohibitedCharsWithoutUnderscoreAndNumbers","prohibitedCharsToTemplateName","validateTemplateName","validatedValue","charsToReplace","validateVarNames","target","REGEXP_NOT_ALPHANUMERIC_UNDERSCORE_DASGH","replaceAlphaNumericAndUndescoreDash","word","IntentController","editorFlow","AMOUNT_INPUT","getLastIntentCreated","getPositionByNodeId","pos_x","pos_y","createIntentChild","dataFormModel","parentPosition","title","amountOutput","dataForm","lastIntentCreated","offSetX","offSetY","position","childId","addNode","addConnection","Advanced","NLU","updateVersion","currentVersion","version","getEditorFlow","CreateIntentController","handleZoomAll","zoom","zoom_in","zoom_out","defineNodePosition","precanvas","Math","random","clientWidth","getBoundingClientRect","clientHeight","createIntent","createIntentParent","createIntentConventional","outputsUpdated","createIntentChildren","outputResult","toLowerCase","trim","dataFormChild","userSentences","lastVersion","payload","xml","compiledPayload","nameIntent","toString","_dataFormModel$output","goToNode","posX","posY","offsetX","offsetY","newX","newY","canvas_x","canvas_y","transform","RemoveIntentController","removeNodeChild","_dataForm$outputs","getNodeFromId","removeNodeId","nodeConnection","removeNodeOutput","removeNodeParent","_dataForm$outputs2","_block$id","grupo_corrente","agente_atual","Array","array_connectors","create_array_connectors","texto","lines","split","line_array","line","search","substring","set_payload_connectors","outputs_array","newline","newtext","preline","compileBot","drawflows","bot","item","compiled_payload","conectorpadrao","b","bloco","fix_vars_declarations","precompile","startsWith","input_line","erase_line_with_var","UpdateIntentController","updateIntent","updateIntentParent","updateIntentChild","updateIntentConventional","nodes","updateNodesChildren","idsToRemove","removeNodesChildren","outputsToUpdate","outputsToAdd","outputsAdded","addNodesChildren","updateConnections","conn","removeSingleConnection","outputsData","outData","_","updateOutputParent","_nodes$Home$data$pare","outputChild","child","_dataFormModel$dataBl","amountOutputsFlow","regExp","sentence","_dataFormModel$dataBl2","auxArray","differenceAmount","removeNodeOutputs","addNodeOutputs","addNodeOutput","nodeIds","removeCrashedEmoticons","removeLastTrace","parentName","formData","tile","offset","DrawflowModel","dataFlow","treatment","removeInputsOutputs","removeDeletedNodesConnection","rewriteNameIntent","updateOutputData","updateInputsData","keysIn","keyIn","out","keysOut","keyOut","inp","outputsClean","clearOutputsData","outputData","outputIndex","getNameIntentById","connectionKeys","connKey","inputsData","required","getDrawflow","apiUrl","process","RefreshUserToken","refreshToken","resp","fetch","method","headers","Refresh","Authorization","json","CognitoLogin","body","request","CognitoLogOut","removeItem","Headers","appendHeader","prop","has","set","append","getExpirationDateFromToken","exp","jwt_decode","dateToExpiration","fromUnixTime","zonedTimeToUtc","getRefreshToken","responseRefreshToken","setItem","refresh_token","removeSignedToken","LogOut","authorizedToken","now","addSeconds","Date","differenceInSeconds","_refreshTokenResponse","refreshTokenResponse","isFuture","_refreshTokenResponse2","getToken","test","access_key","secret_key","requestInit","getRequestInit","cache","sendRequest","ok","errors","Error","resultError","detail","handleError","Data","StatusCode","status","Success","Message","error","baseUrl","GetBotsGroups","bot_name","GetFlows","GetPublishBackup","skip","limit","SavePublishBackup","botName","GetCompany","companyName","GetCompanys","SaveGroup","group_name","UpdateGroup","GetGroup","groupName","GetGroupIsLiberated","GetGroupsInUse","ReleaseGroupAccess","UpdateLastAccess","BlockGroupAccess","DeleteGroup","group_name_confirmation","drawFlowRef","openModalIntentType","openModalForms","openModalCreateGroup","openModalSavedBlocks","openModalSaveSelectedBlocks","openModalStandardTemplates","openModalTemplateUpload","toastNotification","show","idGroup","intents","nodesList","handleNode","listNodeRemove","loading","openModalWarning","openModalUsedGroup","openModalBlockedGroup","openModalAccessKeys","openModalManageAccount","openModalManageCompany","openModalManagePermission","openModalPhrasesOfIntentManager","openModalManageCorrectSentences","openModalCampaignTemplates","openModalCampaignCampaign","openModalCampaignActioning","openModalPublishBot","openModalFalazapTheme","openModalFalazapToken","openModalFlexBlocks","isEditing","groupUser","botsUrls","urlWhatsApp","urlTelegram","urlFalazap","urlFacebook","urlTwitter","botsNames","groupsNames","_id","groups","userOrganizations","userPermissions","showBlockAccessCount","setAccessCountData","drawflowToPublish","reducerFlow","addFlow","setIdGroup","isNotEditing","closeModalUsedGroup","closeModalBlockedGroup","closeModalIntentType","updateForm","closeModalForms","closeModalSavedBlocks","closeModalSaveSelectedBlocks","closeModalStandardTemplates","closeModalTemplateUpload","closeModalAccessKeys","closeModalManageCompany","closeModalManagePermission","closeModalManageAccount","closeModalPhrasesOfIntentManager","closeModalManageCorrectSentences","openModalCorrectSentences","closeModalCorrectSentences","closeModalCampaignTemplates","closeModalCampaignCampaign","closeModalCampaignActioning","closeModalWarning","closeModalCreateGroup","closeModalFalazapToken","closeModalFalazapTheme","clearNodeList","closeModalPublishBot","closeModalFlexBlocks","updateNodeToList","BlockFlow","styled","div","_templateObject","_taggedTemplateLiteral","Content","color","CountContainer","_templateObject2","NameContainer","_templateObject3","ConfigContainer","_templateObject4","HeatMapColorsAndBorders","hot","border","background","warm","medium","cold","colder","HeatmapIcon","_jsxs","xmlns","viewBox","width","height","fillRule","d","MttButton","Button","PopoverContainer","Popover","SelectOpt","attrs","DeselectOpt","FlowHeatMap","DuplicateOpt","_templateObject5","CopyToLibOpt","_templateObject6","DeleteOpt","_templateObject7","MttGrid","Grid","ContainerDialog","Transition","_templateObject8","_templateObject9","Typography","variant","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","React","forwardRef","ref","Slide","direction","l","nome","node_name","node_id","level","temp","map_array","sankey_array","loop_blocker","temp_array","ModalHeatmap","_ref","google","open","handleClose","drawChart","useCallback","visualization","DataTable","addColumn","className","addRows","colors","options","sankey","link","colorMode","Sankey","draw","create_array","array","is_loop","id_output","ok_to_save","name_ini","name_output","count","aa","bb","k","get_node_name","get_node_outputs","charts","setOnLoadCallback","id_ini","Dialog","TransitionComponent","fullWidth","maxWidth","onClose","AppBar","Toolbar","IconButton","edge","onClick","CloseIcon","marginTop","useGoogleCharts","setGoogle","useState","head","script","createElement","src","onload","packages","appendChild","ModalBlockOptions","addNodeToList","deleteNode","duplicateNode","form","anchorEl","setAnchorEl","openHeatMap","setOpenHeatMap","DisableOptions","_state$editorFlow2","_state$editorFlow2$dr","allowChild","blockedIntents","Boolean","getButtons","S","startIcon","Check","disabled","Clear","alert","FileCopy","FlipToFront","Delete","handleLockMouseEvent","event","_Fragment","_state$editorFlow","editor_mode","currentTarget","onMouseDown","onMouseUp","SettingsIcon","fontSize","anchorOrigin","vertical","horizontal","transformOrigin","arr","RulesIcon","size","xmlnsXlink","xmlSpace","fill","LogicIcon","NluIcon","MultipleChoiceIcon","FalaGPTIcon","role","UpdateFlags","FlagContainer","FlagIcon","button","Flag","defaultFlags","FlagsContainer","toast","dispatchApp","currFlag","setCurrFlag","flagOptions","setFlagOptions","flags","Tooltip","arrow","placement","PaperProps","padding","display","alignItems","flexDirection","handleChangeFlag","TextField","onChange","handleChangeFlagTitle","newTitle","response","AppIcon","points","BlockAccessCount","blocksData","setColor","setData","backgroundColor","setBackgroundColor","icon","setIcon","loadColor","RecentActorsIcon","DeviceHubIcon","SmsIcon","Dashboard","SpeakerNotesIcon","ReplyAllIcon","PlayCircleFilledWhiteIcon","WarningIcon","CancelIcon","parent","Livechat","SaveTable","InputIcon","DescriptionIcon","Logic","OpenInNewIcon","Rules","ABTest","ABTestIcon","FalaGPT","FalaGPTICon","AddBlockToFlowController","addBlock","home","dataUpdated","blockUpdated","updateBlock","blockUpdatedPositions","updatePosition","blockUpdatedInputsOutputs","removeInputsAndOutputsNotUsed","blockUpdatedId","updateIdsBlock","updateData","insertCopyName","newBlock","removeFieldsNotUsed","fields","newFields","field","currentFlowId","getNextNodeId","currentBlockId","getNextNodeIdBlock","currentId","updateInputsAndOutputs","flowid","prevNodeId","newNodeId","updateFields","sort","numberCopy","getNextCopyNumber","hasCopy","newData","nodeChild","numbers","matches","match","namesIntentFlow","GetBlockOnFlowController","getBlock","dataResult","GetOffsetPositionFlowController","getLastPosition","getBiggestPositions","min","max","getRelativePosition","positionsX","positionsY","UpdateNodesPositionController","nodesIds","resetPosition","flow","round","saveBackupBotGroup","dataflow","group","lastSave","isEmptyFlow","_state$editorFlow$dra","getPrototypeOf","prototype","isValidPrincipalGroup","WorkSpaceCodeJS","Workspace","array_vars","array_vars_blockly","getArrayVarsBlockly","array_variables","array_variables_blockly","insertline","xmlToString","xmlData","ActiveXObject","XMLSerializer","serializeToString","ClearWorkSpace","Blockly","clear","exit_logic","WorkSpaceText","workspaceToCode","workspaceToDom","add_vars_to_array_variables","newItem","localeCompare","parse_line","a_vars","pos","varbegin","varend","letterNumber","parsestring","charAt","find_vars_in_string","add_vars_to_array_vars","parse_drawflow_dataBlockly","populate_variables_with_formdata","form_data","dados","vname","get_intention_variables_with_form","useTranslator","t","useTranslation","getTranslation","params","isRoot","companies","permissionsReducer","isNotRoot","updatePermissions","PermissionsContext","PermissionsProvider","getPermissions","permissions","company","perm","agents","agent","actions","getCompaniesNames","hasPermissionToAction","_ref2","currentCompany","hasPermissionToCompany","isAdmin","currentAgent","hasPermissionToAgent","isCompanyAdmin","getCompanies","usePermissions","botsUrl","GetFlexBlocks","SaveFlexBlock","DeleteFlexBlockRegister","DeleteFlexBlockGroup","UpdateFlexBlockName","block_name","FlowContext","FlowProvider","dispatchPermissions","isMacOS","navigator","appVersion","timeInactiveUser","useRef","setInterval","timeToRefreshAccess","startEditing","resetTimer","onmousemove","onmousedown","refreshAccessTime","stopEditing","modalType","clearInterval","current","sBotAndGroup","parse","blocks","loadFlow","_state$idGroup","verifyEdit","groupNewVersion","flexGroupTreatment","_state$editorFlow$dra2","resultCount","GetGroupBlocksCounts","interation_counts","drawflowModel","fixOutputsAndPayload","welcome","fallback","cancel","updatePositionController","import","mountNodeContent","goToFlowStart","newPayload","xmlCloseTagPosition","xPosition","lastYPosition","lastIndexOf","numberPosY","_state$editorFlow3","smallestPosX","minBlock","intentController","_node$data$outputs","blockChildren","controller","idsToGet","blocksJson","offsetPosition","selectKeyContent","altKey","ctrlKey","isCountShowing","values","currentNode","container","setAttribute","titleBox","box","groupAndBlock","_dataForm$linked","_dataForm$linked2","innerHTML","intentId","intentName","_dataForm$inputs","validQuestions","q","validQuestionText","floor","_dataForm$sendUser","mountNode","renderContainer","renderCountContainer","countElement","isShowing","ReactDOM","render","mountOutputsName","outpustCollection","outputElement","addNodeColor","_state$editorFlow4","handleEditNode","updateNode","_state$editorFlow5","shiftKey","zIndex","putNodeUp","_state$editorFlow6","_state$editorFlow7","_state$editorFlow8","_state$editorFlow9","nodeHeader","markSelectNodes","putNodeDown","_container$parentElem","drawflowDelete","parentElement","content","_input$connections$0$","idParent","outputParent","_container$parentElem2","disableRemoveConnection","_input$connections$0$2","nodeOutId","nodeInId","path","getElementsByTagName","modifiedBlock","generateFlexBlockRelatedToGroup","_state$editorFlow10","_state$idGroup2","_state$idGroup3","groupBlocks","groupBlocksKeys","entryBlock","exitBlocks","currentBlock","dataOutputs","exitBlock","UpdateFlexBlockGroups","removeFlexBlocksReferences","_state$editorFlow11","groupLastVersion","groupLastVersionObj","lastVersionFlexBlocks","currentFlexBlocks","lastVersionBlocksKeys","block_id","currentVersionBlocksKeys","_state$editorFlow12","removedFlexBlocks","_state$idGroup4","DeleteFlexBlock","saveFlow","_state$editorFlow13","g","currentDrawFlow","currentGroupData","resultFlows","_state$editorFlow$dra3","_state$editorFlow14","_error$message","duration","generatePermissions","decodedToken","bots","getBots","jwtDecode","loadStoragedData","comapny","projects","project","GetBotsNames","dispatchNodeToList","nodeToSelection","headerNodeToSelection","selectedClassName","selectedHeaderClassName","querySelector","nodeHeaderToSelection","elem","addIntent","editorFlowUpdated","nodeIdBeforeImport","err","lastSaveGroup","lastSaveBot","hasInitialBlocks","isPrincipalGroup","_data$dataBlockly","onlyValidForPrincipal","sPayload","_data$dataBlockly2","replaceAll","invalidFileForPrincipal","blocksKeys","biggestPos_x","invalidFileForGroup","restoreBackupBotGroup","exportFlow","dataStr","encodeURIComponent","dlAnchorElem","click","verifyEditGroup","isGroupLiberate","user","group_is_liberated","current_user","useFlow","themeDefault","createTheme","palette","primary","main","modal","ThemeCustom","ThemeProvider","theme","IconLLego","entities","screen","selectedIEntity","entitytype","synonyms","valuesWord","valuesExpression","openModalEntityExists","uploadedEntity","reducerForm","updateEntities","closeModalEntityExists","EntityContext","EntityProvider","useEntity","MttTextField","maxRows","label","inputProps","rows","onBlur","helperText","multiline","placeholder","rest","minRows","Container","GridHeader","GridInputsHeader","StyledMttButtonPurple","GridMenu","GridListMenuChild","GridListMenu","selected","GridChildren","LabelTitle","_templateObject15","_templateObject16","_templateObject17","_templateObject18","AutoCompleteWrap","_templateObject19","_templateObject20","_templateObject21","AutoCompleteOption","span","_templateObject22","LogoContainer","_templateObject23","BotAndGroupInfo","_templateObject24","ImportExportIcons","_templateObject25","TooltipContainer","_templateObject26","_templateObject27","MttBox","Box","ContainerHeader","StyledBackButtom","Fab","ContainerButtom","StyledSaveButtom","GridBackButton","BoxWords","BoxHeader","BoxAddLine","DisplayLines","StyledAddButtom","TesteContainer","StyledDeleteGrid","CircularDeleteButton","handleDeleteItem","DeleteIcon","ContainerOptions","ContentOptions","GridDefinition","ContentSynonyms","GridSynonym","GridCloseIcon","GridInputDefinition","InputField","indexRow","inputValue","setInputValue","handleShowSynonyms","handleDeleteSynonym","onKeyDown","keyCode","handleInsertValue","GridDeleteIcon","DefineWords","handleShowLines","handleDeleteLine","AddIcon","handleAddNewLine","Divider","AdvancedExpressions","handleChangeExpression","href","rel","GetEntities","SaveEntities","EntityFormMask","substr","NewVariable","indexEdit","showAdvanced","setShowAdvanced","numberOfLines","setLoading","handleBackToList","ArrowBackIcon","v","CircularProgress","RadioGroup","row","handleSelectType","FormControlLabel","control","Radio","getLines","MttTypography","StyledCriarEntityButton","StyledMttTypographyEntities","GridSearch","GridResultEntity","ContentLineEntity","GridNameEntity","GridTypeEntity","TrashIcon","exportEntity","entity","csvData","csvMaker","documentHtml","csv","Blob","entitiesReadyToExport","URL","createObjectURL","_dlAnchorElem$parentN","parentNode","removeChild","concatenatedEntity","valueName","synonym","importEntity","messages","overwriting","_uploadInput$parentNo","uploadInput","accept","entityIndex","currEntity","entitiesCopy","overwriteSuccess","addError","onchange","_e$target$files","file","files","fileName","entityName","regexExp","reader","FileReader","readAsText","parsedData","res","parseData","updatedItems","isWord","addSuccess","invalidFormat","entityUtils","EntitiesItem","handleClick","handleRemove","showTrash","setShowTrash","onMouseEnter","onMouseLeave","handleExportEntity","CloudDownload","FooterButtons","ModalVariableAlreadyExists","flowState","toastMessages","VariableEntities","setSearch","setLoad","entitiesJson","Add","handleNewVariable","Publish","Autocomplete","option","renderInput","InputProps","startAdornment","InputAdornment","Search","handleEdit","entitiesRemoved","Main","renderScreen","Entities","ContainerLoading","LoadWrapper","GetIntentsByName","getIntents","useStyles","makeStyles","createStyles","root","marginLeft","spacing","flex","results","margin","iconButton","divider","FilterField","totalResults","setTotalResults","currentResult","setCurrentResult","classes","curr","Paper","component","onSubmit","InputBase","markSearch","autoFocus","orientation","handlePreviousItemOnSearch","ArrowLeftOutlinedIcon","handleNextItemOnSearch","ArrowRightOutlinedIcon","handleCloseAndCleanSearch","TypographyCustom","listItem","marginRight","listSvg","ModalOptions","flexBlockPopover","setFlexBlockPopover","popoverAnchorEl","setPopoverAnchorEl","handleCreateIntent","handleCancel","List","ListItem","ListItemIcon","environment","NodeSelection","clickedElement","stopImmediatePropagation","nodesPositions","nodeWidth","nodeLeft","nodeHeight","nodeTop","nodeLeftPlusWidth","nodeTopPlusHeigth","leftPlusWidth","topPlusHeight","selectionBox","initialMouseX","clientX","initialMouseY","clientY","lastMove","abs","parseInt","pageY","pageX","selectionBoxWidth","selectionBoxLeft","selectionBoxHeight","selectionBoxTop","selectionLeft","onmouseup","Flow","isDeleteNode","setIsDeleteNode","showFilter","setShowFilter","importFile","setImportFile","exportFile","setExportFile","selectNodes","isFlowWrite","Drawflow","__proto__","dragEnd","e_pos_x","e_pos_y","ele_last","_ele_last","_ele_last2","_ele_last3","mouse_x","mouse_y","elementFromPoint","drag","pos_x_start","pos_y_start","ele_selected","slice","drag_point","editor_selected","force_first_input","closest","_ele_last4","_ele_last5","input_id","input_class","_ele_last9","_ele_last9$parentElem","_ele_last9$parentElem2","_ele_last10","_ele_last6","_ele_last7","_ele_last8","output_id","output_class","querySelectorAll","connection_ele","id_input","module","updateConnectionNodes","overrideDrag","start","on","conKey","conNode","output_1","amountConnections","currGroup","parentIds","metaKey","keyboardEventDefault","exportFileDefault","handleOpenFilter","handleSelectNodes","importFileDefault","dateGenerated","dataFormated","getDate","getMonth","getFullYear","getHours","getMinutes","_uploadInput$parentNo2","text","tryToImportFlow","fixedDrawflow","selectAllNodes","SearchIcon","changeModule","MyLocationIcon","handleZoomOut","RemoveCircleOutlineIcon","handleZoomIn","AddCircleOutlineIcon","onDoubleClick","handleEditGroup","handleCloseFilter","openModalLogicEditor","openLogicEditorCampaign","openModalLogicEditorNoSql","handlesValidators","formErrors","FormContext","FormProvider","useForm","StyledGridButtons","StyledRightButtons","ContentNameFlux","ContentButtons","GridLeftButtons","GridRightButtons","GridAlertButtons","SaveAndCloseGrid","DiscardAndCloseGrid","StyledMttButtonPublic","ContentDialog","ButtonsDialog","CleaningIcon","HeaderBlockly","clean","close","saveAndClose","save","recover","showJS","editBlock","fluxName","blockEditable","showDialogDiscartAndClose","setShowDialogDiscartAndClose","SaveIcon","UndoIcon","toUpperCase","CustomCategory","categoryDef","toolbox","opt_parent","super","register","Type","TOOLBOX_ITEM","registrationName","init","appendValueInput","setCheck","appendField","setOutput","setColour","setTooltip","setHelpUrl","appendDummyInput","setInputsInline","setPreviousStatement","setNextStatement","setAlign","jsonInit","message0","args0","previousStatement","nextStatement","tooltip","helpUrl","setStyle","itemCount_","updateShape_","setMutator","mutationToDom","domToMutation","xmlElement","getAttribute","decompose","workspace","containerBlock","initSvg","getInput","itemBlock","connect","previousConnection","nextConnection","compose","getInputTargetBlock","isInsertionMarker","valueConnection_","targetBlock","targetConnection","disconnect","reconnect","saveConnections","removeInput","appendStatementInput","contextMenu","GOOGLE_SPREADSHEET_URL","APIKEY","send_sms_URI","API_SERVER","DB_API_SERVER","tira_aspas","tira_colchetes","endsWith","code","multiline_quote_","getFieldValue","order","ORDER_ADDITION","ORDER_ATOMIC","valueToCode","ORDER_FUNCTION_CALL","ORDER_MEMBER","value_code","comment","quote_","Function","jstext","ORDER_NONE","value_grupo","value_bloco","value_connector","value_msg","dropdown_tipo","value_voice","value_text","number_seconds","value_source","value_target","value_name","value_value","join","dropdown_field","value_userid","value_companyid","value_input_value","value_prompt","value_apikey","value_temperature","value_maxtokens","dropdown_modelo","value_top_p","value_presence_penalty","value_frequency_penalty","stop_caracter","value_document","value_json","value_text_search","value_user_id","value_payload","value_var1","value_var2","value_var3","value_var4","value_inputnum","value_inputmsg","param","text_texto","value_1","value_inputpwa1","value_inputpwa2","value_inputpwa3","dropdown_provider","value_dept","value_return_group","value_return_block","value_ticket_block","value_json_attrs","ret","variable_to_convert","dropdown_campo","dropdown_operator","value_valor","crm_obj","dropdown_inputreq1","value_req2","value_req3","value_req4","value_req5","value_req6","dropdown_debug","value_message","agent_name","value_botname","value_tablename","value_username","value_googlesheetid","value_tabindex","value_lista","value_row","value_col","value_a1","value_rowini","value_rowend","value_colini","value_colend","value_range","check","inputsInline","colour","extensions","setOnChange","changeEvent","getSurroundParent","getField","argument","statementToCode","chosenOrderA","variableDB_","getName","toDevString","message1","args1","additionalCode","setValidator","compareInput","isThisIn","sourceBlock_","inputExists","registerMutator","operator","EQ","NEQ","LT","LTE","GT","GTE","IN","INN","I","NI","L","argument0","argument1","plus","minus","mul","Lists","HUE","select","statement","nostatement","countAdditionalOBs","tables","letters","_localStorage$getItem","letter","googleSheetId","then","correctColumn","isArray","removeField","setFieldValue","catch","chosenColumnC","chosenOrderC","year","parseFloat","month","day","time","countEscape1","countEscape2","chosenOrderfI","DialogTitle","withStyles","closeButton","right","grey","other","MuiDialogTitle","disableTypography","CodeEditor","showEditor","AceEditor","mode","readOnly","footerCloseButton","borderRadius","footerSaveButton","footerFormatCodeButton","styles","footer","justifyContent","borderTop","DialogFooter","TextEditor","newValue","setNewValue","js_beautify","indent_size","primaryWorkspace","BlocklyConstructor","showCode","setShowCode","showTextEditor","setShowTextEditor","setCode","setCurrentBlock","currentBlockValue","setCurrenBlockValue","setBlockEditable","blocklyDiv","currLocale","setLocale","localePT","localeES","localeEN","_document$getElements","_document$getElements2","initialXml","flows","populate_vars","inject","media","toolboxPosition","sounds","controls","wheel","startScale","maxScale","minScale","scaleSpeed","pinch","maxBlocks","Infinity","grid","snap","mainWorkspace","addChangeListener","onBlockSelected","Xml","domToWorkspace","textToDom","blocklyWidgetDiv","blocklyTooltipDiv","currentGroup","setGroupOnCompiler","setAgentOnCompiler","updateOutputs","resetDivInputslockly","_document$getElements3","_document$getElements4","Events","Create","CLICK","SELECTED","getBlockById","newElementId","blockId","handleClear","handleShowCode","codeJs","handleSaveAndExit","handleSave","handleRecover","is","Category","Block","Field","Value","Shadow","Mutation","divisor_input","op","items","at","at1","at2","Sep","custom","Msg","updateBlockValue","p","ModalLogic","_dataForm$dataBlockly","setFlows","flowsResult","f","loadFlows","fullScreen","trashcan","move","scrollbars","varTypeValidation","varType","schema","yup","shape","vartype","promiseResult","Promise","resolve","validate","abortEarly","isValid","nameValidator","errorMsg","infoFormMask","tag","groupIdValidator","intentIdValidator","formValidators","Info","resultValidation","newGroup","_newGroup$inputs","nameResult","varResult","_newGroup$inputs2","infoValidation","intentNameRequired","mainDataModel","currentdataModel","intentNameDuplicated","ToNewIntention","groupIdResult","toNewIntention","groupIsValid","intentIdResult","intentIsValid","toNewIntentionValidation","OutputIntentName","outputTitleDuplicated","outputTitleRequired","RocketChatId","_form$rocketChat","rocketChatId","ABTestValidation","_outputs$index$value","sum","totalSum","RulesValidation","rules","jIndex","_rules$jIndex$operato","RequiredMsg","_form$sendUser","formMessage","RequireEntryName","getValidatorsIntentType","emptyFlow","newGroupValidation","newGroupMask","unidBus","showLogicButton","dispatchForm","currentName","translatedErrors","hasLogic","isChip","blockPreviousName","groupToUpdateResponse","groupToUpdateBlocks","groupToUpdateBlocksKeys","entryAppBlock","all","new_group_name","new_block_name","groupsResponse","principalIndex","principal","UpdateAgentGroup","handleAppGroupUpdate","flexBlocksResponse","flex_blocks","flexBlock","lastBlockId","currentIdPlusOne","class","html","typenode","currIndexPlusOne","groups_used","CreateAppGroup","principalGroupResponse","principalGroup","principalGroupBlocks","currentBlockOutputs","existingOutputIndex","EditIcon","CodeIcon","handleOpenModalLogicEditor","CheckIcon","CloseRoundedIcon","HeaderContent","HeaderOptions","GridDescriptionText","_state$dataForm2","fieldsLock","selectedGroup","useMemo","_state$dataForm","handleChangeInput","valueWithMask","isLocked","FormControl","InputLabel","htmlFor","OutlinedInput","LockIcon","maxLength","labelWidth","FormHelperText","MessageInputContainer","StyledMttTextField","TitleTypography","MessageForUser","_dataForm$sendUser2","hideUrl","StyledMttTypographyIdentificacao","StyledFooterGrid","StyledSwitchGrid","StyledMttTypographyPerguntas","StyledGridPerguntas","showgrid","StyledTextFieldPergunta","StyledInputsGrid","StyledTitleGrid","GridIconDelete","StyledComponent","VariavelIdentificacaoTextoUsuario","_dataForm$inputs2","showDelete","showTitle","showQuestions","types","setTypes","allTypes","filteredValue","defaultValue","isList","isValueEdited","handleShowPerguntas","Select","labelId","MenuItem","handleRemoveVariable","Switch","checked","perg","handleQuestion","ForumIcon","StyledMttGridMain","xs","ErrorWarning","VariablesBtn","VariablesLine","MultiVariablesContainer","MultiVars","setVariables","fontWeight","prev","renderVars","FormFieldsContainer","TagHeaderContainer","SimilarityContainer","GridSynonymRegular","SimilarityComponent","_dataForm$tags","returnRegulars","phraseIndex","Close","blur","focus","userSentenceIndex","MultipleTags","indexsRequired","arrayClone","REG_EXP_NOTATION","REG_EXP_SPAN","mapperParameterFromSentencePiece","piece","_parsedPiece$shift","_parsedPiece$shift2","_entityPieces$shift","_entityPieces$shift2","parsedPiece","resolvedValuePiece","shift","entityPieces","resolvedValue","addVariableFromParameter","parameter","mapperDataFormInputsVariables","dataUserSentences","dataVariables","userSentence","pieces","createUserSentenceFromSentence","parameters","replacedPhrase","colorIndex","toReplaced","phrase","replaceSpanToNotation","editedPhrase","colorPieces","_colorPieces$0$replac","_variables$parseInt","pieceReplaced","OutsideClick","outsideAlerterRef","createRef","handleClickOutside","_outsideAlerterRef$cu","callback","removeEventListener","PaletteColorPhrases","css","StyledFrasesUsuario","StyledMttTypographyFrase","StyleSentenceRow","StyledContainerFrases","StyledItemFrases","SentenceInput","SentenceParameters","sentenceIndex","removeParameterFromIndex","getVariableIndex","TableContainer","Table","TableHead","TableRow","TableCell","regexpPhrase","ModalSearchVariables","showModalVariables","setShowModalVariables","definedPosition","setDefinedPosition","remoteVariables","contentRef","onGetMousePosition","modalVariables","domRect","setModalVariablesPosition","setType","disablePortal","noOptionsText","getOptionLabel","renderOption","textContent","variableType","handleSetType","allEntities","Sentences","_dataForm$inputs11","_dataForm$inputs11$us","numberOfUserSentences","stateFlow","regExpEspaceBeforeSpan","handleChangeSentence","_dataForm$inputs$vari2","updateDataFormUserSentence","changeSentenceWithBlanckSpace","_dataForm$inputs$vari","changeSentence","updatedSentence","_dataForm$inputs3","_dataForm$inputs4","phrases","caretPositionTimeout","setCaretPositionTimeout","showActionsParameters","setShowActionsParameters","removeParameterFromSentenceIndex","_dataForm$inputs$user2","_dataForm$inputs6","clone","selectedSentenceIndex","setSelectedSentenceIndex","selectedText","setSelectedText","setRemoteVariables","onGetSelection","_window","_selection$anchorNode","_selection$anchorNode2","_selection$focusNode","_selection$focusNode$","_selection$toString$t","_selection$focusNode2","_selection$anchorNode3","_selection$anchorNode4","_selection$focusNode3","selection","getSelection","tagName","anchorNode","focusTagName","focusNode","isValidOpen","isEqualsSpan","isEqualNode","wrapperRef","getCaretPositionAndChildNodeIndex","editableDiv","range","childNodeIndex","rangeCount","getRangeAt","from","childNodes","childNode","nodeValue","commonAncestorContainer","call","findIndexFromElement","endOffset","wrapperCurrent","currBot","cloneEntities","remoteGetEntities","contentEditableRef","setCaretPosition","createRange","isValidChildNodeIndex","isFirstContent","currentContent","innerText","setStart","collapse","removeAllRanges","addRange","handleAddSentences","_dataForm$inputs5","_dataForm$inputs$vari6","_dataForm$inputs12","onFocus","FormatQuoteIcon","dangerouslySetInnerHTML","__html","contentEditable","el","onPaste","originalEvent","clipboardData","getData","onInput","clearTimeout","caretPosition","timeout","_dataForm$inputs$user","inputPhrases","handleDeleteFrase","disabledVariables","_dataForm$inputs$user3","_dataForm$inputs7","_dataForm$inputs$vari3","_dataForm$inputs8","_dataForm$inputs$vari4","_dataForm$inputs9","cleanSentence","oldParameters","newParameters","extractedVariableIndex","_dataForm$inputs$vari5","_dataForm$inputs10","extractedVariables","isExtractedVariableIncludesVariable","remoteVariable","extractedVariable","_remoteVariable$id","convertRemoteVariable","currentVartype","getExtractedVariableIndex","DefaultIcon","Icons","getIcon","iconName","SelectedIcon","list","paddingLeft","paddingRight","SpeedDialWithMenuList","handleMenuListOpen","handleMenuListClose","renderOptions","referenceIndex","actionToReference","Popper","transition","TransitionProps","Grow","ClickAwayListener","onClickAway","MenuList","ModalTitle","FieldContainer","MoreVariable","ButtonContainer","dialog","ModalVariableAdvanced","handleChangeFields","handleCloseModal","handleChangeMoreThanOneVariable","letterSpacing","errorMessages","notExistsVariable","equalsName","emptyName","defaultVariableValue","VariableIndentificationTextUser","setExtractVariables","openAdvancedModal","setOpenAdvancedModal","currentVariables","_String","selectedVariable","_dataForm$inputs$user4","_dataForm$inputs6$use","_dataForm$inputs$user5","indexVariableModal","setSelectedIndexVariable","selectedIndexVariable","renderQuestions","varIndex","_variables$varIndex","_variables$varIndex2","extractedVar","variableIndex","isEmptyName","isEqualsName","getErrorsInVariable","hasError","_dataForm$inputs$user6","oldName","replacedSentences","handleChangeVariableName","curVar","ChildMultipleChoice","ContentBody","StyledMttTypography","GridTextField","RadioGrid","GridContainerInfos","GridInfos","GridInfosFirstLine","CarouselContent","handleChange","Vertical","handleChangeOrientation","handleAddChoise","newOutputs","renderCarouselItem","choise","handleRemoveChoise","GridContainer","ContainerButton","ContentGrid","ContentTitlesGrid","StyledDeleteIconGrid","ItensMultiplaEscolha","checkBox","setCheckBox","Checkbox","handleChangeButtons","renderChoise","handleChangeTitle","MultipleChoiceItems","MttSelectField","errorMessage","_dataForm$linked3","getIntentsByGroupId","dataModel","handleChangeSelect","UserQuestions","MultiVarsQuestions","handleAddVariable","canRemove","MultiVariablesQuestions","MessageAfterUserReply","colorheader","maxHeight","ExportDataSpreadSheet","stateSwitch","setStateSwitch","checkedA","page","setPage","rowsPerPage","setRowsPerPage","columns","minWidth","gravar","tipo","nomeVariavel","nomeColuna","stickyHeader","column","align","TableBody","hover","tabIndex","format","TablePagination","rowsPerPageOptions","labelRowsPerPage","onChangePage","handleChangePage","newPage","onChangeRowsPerPage","ExcelOrCSV","StyledTitleFooterClick","ContainerTitleFooter","StyledTitleFooter","GoogleSheet","showId","setShowId","endAdornment","green","SyncIcon","VerifyGoogleSheetID","googleSheetID","ExportDataSpread","StyledMttTypographyMsgForUser","MessageContainer","SwitchDiv","ContentMsgForUserGrid","ContainerOptionHeader","ContainerOptionContent","OptionIndexAndTip","HeaderSpan","GridSynonymVariable","OptionsBlockOutputsSentences","_choice$userSentences","choice","showRemoveButton","isFalaGptBlock","showInfo","setShowInfo","isChatGptOutput","returnVariables","_entities$find","s","VisibilityIcon","InfoIcon","htmlColor","handleChangeChip","alignSelf","falaGPTContext","handleChangeGPTContext","newContext","marginBottom","popupIcon","addSynonymByVariable","varName","OptionsBlockContent","_dataForm$varValue","_dataForm$varValue2","isFalaGPT","setVarValue","isFirstRender","setEntities","messageDidNotUnderstood","loadEntities","entitiesResult","handleChangeQuestion","handleAddChoice","userMsg","renderChoice","FormGroup","validatedVarValue","TypeOfMessage","selectedOption","setSelectedOption","handleChangeOption","FirstLine","DescriptionInput","Btn","MsgForUserTypography","VariableTypography","ContentQuestions","VariableContainer","Input","InputLine","ChoicesContent","ChoicesLine","ButtonsContent","ContentOutputVariable","GlobalVariablesSelection","prefixVar","setPrefixVar","handleChangeField","handleChangePrefix","updatedPrefix","SimpleQuestionFields","_dataForm$inputs3$var","renderSentences","CheckboxCustom","Line","LineInput","LineSelect","Questions","QuestionsAside","QuestionsContent","SendDocumentFields","handleChangeDidNotUnderstood","TextContainer","ToHtmlFields","_dataForm$sendUser3","_dataForm$sendUser4","_templateObject28","NewCarouselOutputsSentences","NewCarouselContent","NewCarousel","RulesRow","RulesContainer","ConditionalContainer","RulesBlockOutputsSentences","_choice$rules","_choice$rules2","_choice$rules3","prefixVars","setPrefixVars","rule","varValues","setVarValues","rulesConditionals","ruleIndex","handleChangeConditional","conditionalIndex","handleChangeVarsPrefix","prefix","newVarValue","currVars","currValues","showRemoveRuleButton","_choice$rulesConditio","handleDeleteRule","justifySelf","HighlightOffIcon","RulesBlockContent","renderRule","SumContainer","ABTestOutputsSentences","updateSum","ABTestContent","_dataForm$outputs3","sumResults","setSumResults","operation","currSum","reduce","handleChangeValue","OutputContent","shade","FlexBlockContentOutputs","FlexBlockContent","newName","_dataForm$dataBlockly2","_dataForm$dataBlockly3","handleChangeEntryName","appBar","ModalForms","setTitle","language","i18n","handleCloseAlert","reason","Alert","MuiAlert","elevation","Snackbar","autoHideDuration","severity","InputName","ButtonSave","ButtonsContainer","ModalNewGroup","setNewGroup","setErrors","old","DialogContent","overflowY","sNewGroup","sBot","ImportExportContainer","ImportExportButtons","SavedBlocksContainer","Section","SavedBlocks","ContainerRight","Description","ContainerDivider","ContainerDetails","buttonUpload","templateList","blockToSaveList","reducerLibrary","saveBlockSet","LibraryContext","LibraryProvider","GetLibrary","SaveLibrary","TemplatesContainer","Templates","DescriptionInfo","formatDate","date","dateBr","hour","diffTimeZoneInHours","getTimezoneOffset","formatDateHour","dateFormatted","hourFormatted","ModalSavedBlocks","selectedIndex","setSelectedIndex","libraryState","libraryDispatch","loadLibrary","handleRemoveBlock","library","library_name","RemoveLibrary","handleUpdateBlock","updateLibraryResult","UpdateLibrary","handleAddBlocks","savedBlocks","erroredBlocks","isSelected","freeSolo","renderCardList","sensitivity","handleSelectBlock","PublishIcon","author","created_at","last_updated","blockToSave","savedBlocksData","handleExportOneBlock","renderDetails","_uploadInput$parentNo4","_e$target$files2","_uploadInput$parentNo3","_drawflow$savedBlocks","_drawflow$savedBlocks2","sErroredBlocks","handleImportBlocks","_uploadInput$parentNo5","_e$target$files3","blocksSaved","handleExportAllBlocks","_dlAnchorElem$parentN2","drawflowCurrent","SelectedBlocks","removedBlocks","ModalSaveSelectedBlocks","newBlockSet","setNewBlockSet","getSelectedBlocks","resultLib","errorDuplicatedLibrary","newBlockSetValidation","GetTemplates","ModalStandardTemplates","templates","setTemplates","loadTemplates","resultTemp","handleUpdateTemplate","templatesChanged","UpdateTemplate","template_id","RemoveTemplate","handleModalTemplateUpload","SelectFileContainer","buttonSelectFile","ModalTemplateUpload","newTemplate","setNewTemplate","setFileName","openEditTemplate","setOpenEditTemplate","handleRemoveFile","handleSelectFile","disableElevation","blocksResult","newTemplateValidation","SaveTemplate","ContentContainer","ImageContainer","ButtonOk","modalTitle","lineHeight","ModalInactiveWarning","timer","setTimer","timerDisplayer","setTimerDisplayer","zzz","alt","h6","ModalUsedGroup","currentUser","setCurrentUser","local","edit","GetKeys","UpdateKeys","keyValidator","valueValidator","LineContainer","NewKeyContainer","toolbar","buttonTableCell","ModalAccessKeys","appDispatch","accessKeys","setAccessKeys","newAccessKey","setNewAccessKey","editingKey","setEditingKey","editingKeyNewValues","existingKeys","isAccessKeyWrite","updateStateKeys","resKey","getKeys","handleAddKey","keyResult","requiredKey","duplicatedKey","valueResult","requiredValue","newAccessKeyValidation","handleChangeKey","keyChanged","valueChanged","objectKeys","accKeys","indexKey","indexValue","scope","keyToRemove","handleRemoveKey","validatedStringForKey","emailValidator","username","email","passwordValidator","password","confirmPasswordValidator","passwordConfirmation","ModalManageAccount","setUsername","setPassword","setPasswordConfirmation","getAdmin","GetAdminData","admin","validateFields","emailResult","passwordResult","confirmPasswordResult","adminValidation","UpdateAdminData","HoverableRow","white","CustomPaper","addminheight","FormsContainer","loginWithAdInfo","infoIcon","cursor","OrganizationEditForm","ContentLimit","ContentItemAdd","comanyEdit","LoginWithAdContainer","LoginWithAdInfoContainer","emailValidation","usedEmails","emptyUser","emptyCompany","admins","users","agentsLimit","usersLimit","loginWithAd","emptyGroup","emptyProject","companyCopy","projectCopy","companyReducer","setCompany","setCompanyCopy","setGroup","setProject","setProjectCopy","updateActions","CompanyContext","CompanyProvider","updateCopy","useCompanies","ManageUsers","currentUsers","objectToEdit","sourceUsers","errorLimit","setErrorLimit","selectedCurrentUsers","setSelectedCurrentUsers","editingUser","setEditingUser","dispatchType","getDispatchType","isCompany","setError","handleChangeUser","handleFinishEditingUser","cloneUsers","acc","differentUsers","sorceUser","handleErrorLimitUseres","multiple","disableCloseOnSelect","Fragment","CheckBoxOutlineBlankIcon","checkedIcon","CheckBoxIcon","_e","selectedOptions","handleAdduserMultiple","handleEditUser","removeUser","ManageAgents","sourceAgents","currentAgents","selectedCurrentAgents","setSelectedCurrentAgents","disabledAddAgent","differentAgents","sourceAgent","handleErrorLimitAgents","agentToAdd","cloneAgents","addAgent","textAlign","agentName","indexToRemove","removeAgent","companyUrl","GetProject","projectName","ProjectHeader","ChildrenContainer","ManageActions","setActions","read","write","publish","communication_guideline","getPrettyTitle","getPrettyItemLabel","category","convertedCategory","categoryItem","convertedCategoryItem","currValue","updatedActions","act","convertedItem","handleChangePermissionToAction","arraysAreEqual","arr1","arr2","arr1Sort","arr2Sort","every","ManageGroup","editGroup","groupCopy","setGroupCopy","isEdit","setAgents","setUsers","hasChanges","handleGetProject","handleValidate","CreateGroup","getResponse","companyGroups","currentGroupId","handleFetchAndSetGrups","GrupHeader","FloatingIconButton","ProjectGroups","setEditGroup","Edit","fixedGroups","handleRemoveGroup","ManageProject","editProject","nameProject","setNameProject","hasUserChanges","hasAgentChanges","hasGroupChanges","handleFetchAndSetProjects","GetAllProjects","namesProjects","handleCreateOrUpdateProject","UpdateProject","CreateProject","getResponseToCreateOrEditProject","savedProject","companyResponse","handleGetCompany","ManageProjects","_company$projects","setEditProject","handleEditProject","handleRemoveProject","ModalCompanyEdit","handleEditCompany","dispatchCompany","nameCompany","setNameCompany","showLoginWithAdInfo","setShowLoginWithAdInfo","hasProjecysChanges","hasUserslimitChanges","hasAgentsLimitChanges","loginWithAdChanges","currentProjects","currentGroups","_company$groups","disabledErrorLimits","hanldeChangeNameCompany","onMouseOver","UpdateCompany","agents_limit","users_limit","login_with_ad","CreateCompany","ModalManageCompanies","setCompanies","showEdit","setShowEdit","handleSetCompanyIsRoot","companysFetch","companysNames","obj","UpdateOrganization","organization","AccordionContainer","dialog80vw","InputCheckboxWithLabel","setValue","defaultProps","PermissionTableRow","permission","handleChangePermission","handleRemoveBot","RemoveCircleIcon","functions","secrets","libraries","conversations","campaign","defaultFunctions","ModalPermissionEdit","setShow","userEmail","setUserEmail","setPermissions","userBots","setUserBots","organizationBots","setOrganizationsBots","_userPermissions$perm","currentUserBots","_organization$bots","selectedBot","setSelectedBot","addBotInUser","clonePermissions","hasBotInPermissions","updateUserPermissions","permissionIndex","removeBot","botIndex","cloneUserBots","userBotIndex","userBot","fetching","setFetching","cloneOrganization","userPermissionIndex","getRequestOrganization","success","remoteSaveOrganization","finally","onError","minHeight","_differentBots$sort","organizationBotsStr","organizationBot","getDifferentBots","ModalManagePermission","organizations","setOrganizations","currentOrganizations","setCurrentOrganizations","currentOrganization","setCurrentOrganization","showModalEditOrganization","setShowModalEditOrganization","currentUserEmail","setCurrentUserEmail","getOrganizations","GetOrganizations","orgs","visualOrgs","_organization$users","Accordion","unmountOnExit","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","openEditOrganization","GridInfo","NewPhraseContainer","PhraseOfIntent","IInfo","intent","ModalPhrasesOfIntentManage","permissionsState","info","setInfo","setGroups","intentions","setIntentions","setDrawflow","viewPhrase","setViewPhrase","handleChangeBot","botNameSelected","updatedGroups","newIntentions","handleChangeGroup","InfoOutlinedIcon","PhrasesContainer","GridItem","GetConversations","GetOneConversation","customer","GetOneCustomer","GetConversationHistory","target_date","next_logs","previous_logs","MessagesContainer","DateChip","borderTopRightRadius","botMsg","borderTopLeftRadius","msgContainer","selectedMsg","wordWrap","msgHour","intentGrid","intentMsg","regularGrid","loadMessagesButton","i18nConfig","resources","es","fallbackLng","defaultNS","use","LanguageDetector","initReactI18next","foundMsg","Filter","conversation","searchIndex","setSearchIndex","highlightedElements","setHighlightedElements","handleSearchMessage","foundMessages","_c$message","timestamp","isHighlighted","highlightFoundMessages","removeHighlightMessages","removeClassIndex","goToElement","scrollIntoView","behavior","Draggable","defaultPosition","ModalMisunderstoodPhrases","messageSelected","setConversation","openFilter","setOpenFilter","paginationToken","setPaginationToken","loadLast","setLoadLast","loadOlder","setLoadOlder","dateConfigString","enUS","ptBR","resultConversation","newConversation","m","selectedGrid","getMessageClass","currClass","getMessages","msgs","contentType","getMoreConversations","previous","timeStampToSearchFrom","requestObj","newMessages","renderMessagesByDate","messagesByEveryDay","currDate","isToday","isYesterday","formattedDate","locale","groupMessagesByDay","reverse","messagesGroup","Card","bottom","Phrase","destinationIntents","confirmMessage","deleteMessage","openModal","setOpenModal","selectedDestinationIntent","setSelectedDestinationIntent","Visibility","formatText","CheckCircleOutlineIcon","initialDate","subDays","finalDate","ModalCorrectSentences","setSentence","previousTokens","setPreviousTokens","blocksListName","setBlocksListName","usLocale","esLocale","ptbrLocale","getPhrasesNotUnderstood","back","startDate","endDate","nextToken","GetPhrasesNotUnderstood","setHours","newGroups","newBlocksListName","handleConfirmMessage","intentDestination","intention","groupFind","_block$inputs","_block$inputs$userSen","_block$inputs3","_block$inputs3$userSe","_groupFind$blocks$dra","_groupFind$blocks$dra2","_block$inputs2","handleRemoveMessage","conversationsFilter","sm","MuiPickersUtilsProvider","utils","DateFnsUtils","DatePicker","inputVariant","autoOk","minDate","paddingBottom","phrasesOfIntent","_sentence$conversatio","getBackPhrase","tokenRender","newPreviousToken","ArrowBackIosIcon","ArrowForwardIosIcon","WithHasAccess","permissionFunctionToArray","listPermissions","functionName","config","expire","namespace","keyName","localStore","expireMinutes","expireDate","addMinutes","toISOString","get","expiration","MIN_VALUE","getExpirationDate","isPast","ADMIN_ORGANIZATION","buttonOk","ModalBlockedGroup","hasPermissionToResource","isFintalkStaff","currentPermissions","setCurrentPermissions","saveStorageUserPermission","_localStore$get","loadStorageUserPermission","botPermission","userPermission","clearStorageUserPermissions","getPermissionsByBot","organizationName","isAdminInOrganization","resource","currentPermission","useAccessControlLayer","ModalFlexBlocks","flexBlocks","setFlexBlocks","loadFlexBlocks","resultFlexBlocks","blocksNames","object","flexBlockBeingDeleted","verifyBlockWithSameNameInGroup","groupData","blockAlreadyInGroup","blockKey","groupResponse","nextId","AddFlexBlockToGroup","FlowComponent","ModalPhrasesOfIntentManager","LoginContainer","ForgotEmailButton","FormContainer","InputEmail","InputPassword","ButtonLoginMicrosoft","ButtonEnter","FieldContainerMicrosoft","userValidator","Form","ContainerContent","MttDialogActions","MuiDialogActions","ContainerGrid","enabledButton","enabledConfirmButton","dialogTitle","RegistrationError","recoveryCode","temporaryPassword","RegistrationInfo","verifyClassEmpty","loopObject","mixed","default","number","moreThan","genericValidation","ErrorClass","inner","VariablesIcon","cx","cy","r","ModalResetPassword","firstAccess","dispatchUser","newPasswordMode","setNewPasswordMode","showPassword","setShowPassword","registration","setRegistration","passwordErrors","differentPasswords","min6digitVerificationCode","min8digitPassword","min1digitSpecial","min1upperCase","handleReturn","handleSendVerifyCode","authService","details","Errors","Property","handleConfirmResetPassword","countError","validation","schemaRegister","oneOf","mountError","resetPasswordValidation","req","new_password","temporary_password_or_code","responseLogin","_responseLogin$detail","passwordInputProps","VisibilityOffIcon","onEnterDown","modalProps","noButtons","PersonSearchIcon","onKeyPress","md","autoComplete","BrazilFlagIcon","clipPathUnits","fillOpacity","ry","stopColor","stopOpacity","y2","xlinkHref","gradientUnits","x2","gradientTransform","y1","x1","stdDeviation","stroke","strokeWidth","clipPath","strokeOpacity","USFlagIcon","SpainFlagIcon","ChooseLanguage","setLanguage","i18next","languages","handleChangeLanguage","changeLanguage","MicrosoftIcon","appId","redirectUri","scopes","authority","Login","history","useHistory","publicClientApplication","PublicClientApplication","auth","clientId","cacheLocation","storeAuthStateInCookie","setUser","openResetPassword","setOpenResetPassword","VisibilityOff","oldState","handleSubmit","resultUserValidate","_user$error","_user$error2","userValidation","_response$detail$mess","loginPopup","prompt","accessToken","responseCognitoLogin","_responseCognitoLogin","handleForgotPassword","PrivateRoute","Component","exact","goToOrRedirect","pathRequest","pathResult","Route","renderProps","Routes","LogoutIcon","ListContainer","FlowsUrls","falazapIframeElement","setFalazapIframeElement","anchorElFlow","openFlowTest","handleCloseUrlsTests","openFalazap","handleOpenLink","validUrl","Menu","MenuListProps","iframe","FintalkIcon","TelegramIcon","WhatsAppIcon","TwitterIcon","FacebookIcon","PhoneIcon","header","AudioOutputs","IFrame","FalazapIframe","closeFalazap","nodeRef","setPosition","onStop","lastX","lastY","handleStopDrag","bounds","allow","ContainerImage","img","firstBox","secondBox","progressBar","progressValue","createBotObject","botFlowsResponse","entitiesResponse","accessKeysResponse","organizedGroups","similarityAPI","preCompile","flexGroups","blockCopy","blockObj","blockData","outputBlock","block_output","blockChanger","to_block","lastBlock","_block$data$sendUser","_block$data$outputs3","_block$data$dataBlock","_block$data$dataBlock2","simpleQuestionFallbackBlock","_block$data","_block$data2","inputBlock","logicBlock","_block$data$varValue","fixedVarValue","outputBlockId","getCompiledPayload","fallbackBlock","destinationBlockName","fallBackMessage","_block$data3","_block$data4","blockVarValue","getCountCondition","optionsBlockInput","_block$data$outputs","_block$data$outputs2","othersOutput","switchString","synonymArray","_output$userSentences","sArr","foundEntity","_block$data$sendUser2","evt","saveVarValueString","ifOptionSelectedStatement","chipsTitles","chipsString","chip","chipsEvent","carouselBlock1","carouselBlock2","price","image","_block$data$sendUser3","_block$data$outputs4","_carouselBlock1$data","_carouselBlock1$data$","carouselOrList","stringifiedItems","fallBackMessageCarousel","_output$userSentences2","_output$userSentences3","_output$userSentences4","_block$data$sendUser4","_block$data$sendUser5","_block$data$sendUser6","_block$data$sendUser7","allValues","previousValue","outputName","_block$data$inputs","_block$data$inputs$us","flexBlockRelatedGroup","flexBlockRelatedGroupBlocks","flexGroupBlocksKeys","entryBlockInFlexGroup","flexBlockCompiledPayload","_exitBlock$data$dataB","flexBlockGroup","flexBlockRelatedlocks","flexGroupKeys","exits","exit","_block$data$dataBlock3","_block$data$dataBlock4","falaGptInputBlock","falaGptLogicBlock","falaGptOutputIndex","_block$data$outputs5","_block$data$outputs6","_output$userSentences5","logicCompiledPayload","fallBackBlock","getIfCondition","blockName","msgType","_block$data$sendUser8","condition","regex","getRegex","validationFuncion","fallBackEvent","errorEvent","compileFlow","principalFlow","useAgents","botDrawflow","setBotDrawflow","getAgentDrawflow","isAgentFreeToUse","regexEmailResult","exec","regexEmailMatch","groupsInUse","usersOtherThanCurrent","regexUserResult","publishAgent","botToStringify","flowsCompiled","_blockObj$data$tags","validTags","tagFunction","tagsCompiler","finishPublish","publishSuccess","PublishProgressBar","publishBotHook","publishing","setPublishing","progress","setProgress","publishingFinished","setPublishingFinished","wsError","setWsError","wsErrorMessage","setWsErrorMessage","semaphoreId","setSemaphoreId","setConnection","handlePublish","getConnectionStatus","readyState","isPublishing","getProgress","publishBot","bot_drawflow","wsConnection","WebSocket","onopen","send","onerror","onmessage","percentageResponse","publishing_percentage","semaphore","onclose","hasPublishingFinished","getSemaphoreId","usePublishBot","LinearProgressWithLabel","LinearProgress","trunc","ModalPublishBot","boxShadow","logo","ClientInfo","MsgFieldContainer","table","borderBottomRightRadius","ModalCustomer","currentCustomer","setCurrentCustomer","resultCustomer","scrollTop","scrollHeight","location","subHours","nickname","phoneNumber","address","createdAt","updatedAt","TagsContainer","SearchTagContainer","ModalConversations","setConversations","setCustomer","customerId","setCustomerId","filteredConversations","TableFooter","onPageChange","onRowsPerPageChange","ToastNotification","localDuration","ContainerBody","ContainerFooter","ModalDeleteGroup","handleDeleteGroup","textConfirmation","setTextConfirmation","errorTextConfirmation","setErrorTextConfirmation","hiddenLabel","changeTextConfirmation","handleVerifyGroupName","updatePrincipalGroup","updatePrincipalResponse","createAndUpdateGroups","groupsToCreate","groupsToUpdate","createGroupResult","updateGroupResult","removeNonExistingGroups","deleteGroupResponse","updateKeys","importKeys","getKeysResponse","keysAndValues","currentKeys","currentBotValues","jsonKeys","jsonValues","resultUpdateKeys","saveEntitiesResponse","flexGroupsTreatment","flexBlocksFound","flexBlocksNamesToFind","foundBlocks","flexName","groupKeys","findFlexBlocksByGroupName","extractBlocksAndGroups","ModalBotImportError","handleOpen","botToRestore","getTranslator","promisesResults","updatedGroupsNames","ModalConfirmRestore","handleRestore","ModalRestoreBot","openModalConfirmRestore","setOpenModalConfirmRestore","currentBot","setCurrentBot","saved_at","publishHistory","setPublishHistory","publishHistoryTotal","setPublishHistoryTotal","selectedCollapseBot","setSelectedCollapseBot","selectedCollapseGroup","setSelectedCollapseGroup","selectedCollapseEntity","setSelectedCollapseEntity","selectedCollapseAccessKey","setSelectedCollapseAccessKey","backupResponse","pagination","total","convertDate","toDate","convertedDate","KeyboardArrowUpIcon","KeyboardArrowDownIcon","RestoreIcon","paddingTop","colSpan","Collapse","in","groupIndex","entries","accessKey","accessKeyIndex","requestErrors","resultUpdatePrincipal","resultRemoveGroups","resultCreateAndUpdateGroups","resultUpdateEntities","handleImportBot","ModalImportExportBot","openModalRestore","setOpenModalRestore","handleExportBot","GetAppIcon","exportBot","botReadyToExport","ModalUsedTab","windowWidth","windowHeight","ConsoleHeaderContainer","IConsole","API_KEY","API_CLUSTER","Themes","lightTheme","darkTheme","Debug","handleCloseDebug","currTheme","setCurrTheme","containerRef","containerDimensions","setContainerDimensions","zeroPad","num","places","padStart","timeStamp","getSeconds","widthAndHeight","consoleMsgContainer","pusher","Pusher","cluster","subscribe","bind","consoleMsg","parsedMsg","handle","innerWidth","innerHeight","currDimensions","parsedDimensions","consoleWidthAndHeight","setTheme","Brightness2Icon","WbSunnyIcon","Status","bgColor","StatusDiv","NewCampaignContainer","NewCampaignFields","HeaderButtonsContainer","SearchAndTableContainer","autoWidth","autoheight","BoxContainer","ContainerList","tableContainer","tableFooter","loadingContainer","emptyTemplate","payload_message","template","components","example","creation_date","templateAction","botsAction","GetTemplateStatus","CreateTemplate","already_in_meta","DeleteTemplate","GetTemplateOnMeta","newWidth","NewCampaignFieldsContainer","MessageButtonsContainer","selectFileButton","NewTemplatePreview","backgroundImg","PreviewContainer","MessagePreviewContainer","MessagePreview","MessageContent","MessageHeader","MessageBody","hasContent","MessageFooter","StyledCall","UrlAndNumber","StyledQuickReply","QuickAnswerButtonContainer","Preview","templateButtons","imgUrl","isImage","previewHeader","buttons","CallIcon","btn","payloadURL","payloadApiKey","payloadBucket","handleFileUpload","FormData","getFormData","payloadResponse","FormFalazap","setTemplateComponents","templateComponents","isNotEditable","falazapTitle","SaveOrEditTemplate","_template$payload_mes","_template$payload_mes2","_template$payload_mes3","_template$payload_mes4","_template$payload_mes5","_currentHeader$text","_template$payload_mes6","_templateComponents$h","_templateComponents$b","_templateComponents$f","currentTemplate","setTemplate","setBlocks","setFile","currentHeader","currentButtons","setTemplateButtons","getButtonType","currentBody","currentIMAGE","currentFooter","imageUrl","setImageUrl","isTemplateOnMeta","setIsTemplateOnMeta","isWhatsApp","isFalazap","isSms","buttonsLimit","verifyTemplateOnMeta","_responseTemplate$com","_responseTemplate$com2","responseTemplate","responseBody","responseHeader","responseFooter","header_handle","defaultType","blob","File","getFileFromUrl","fileUpload","responseButtons","_prev$payload_message","_prev$payload_message2","_prev$payload_message3","_prev$payload_message4","_prev$payload_message5","validateTemplate","_currentTemplate$payl","_currentTemplate$payl2","_currentTemplate$payl3","_currentTemplate$payl4","_currentTemplate$payl5","templateValidated","phone_number","payloadTemplate","handleCreateTemplate","handleChangeCallToAction","updatedButton","handleRemoveButton","newButtons","handleChangeHeaderType","getGroups","objectUrl","revokeObjectURL","formattedName","_prev$payload_message10","_prev$payload_message11","handleChangeChannel","_prev$payload_message6","_prev$payload_message7","_prev$payload_message8","_prev$payload_message9","handleChangeTemplateCategory","handleChangeBlock","hidden","handleChangeButtonType","_button$text","_button$text2","_button$url","_button$text3","_button$phone_number","handleChangeQuickReply","campaignAction","GetCampaigns","CreateCampaign","UpdateCampaign","DeleteCampaign","ActioningIcon","maskType","maskUnits","mask","patternContentUnits","CampaignIcon","ModalTemplates","SS","openModalCreateOrEditTemplate","setOpenModalCreateOrEditTemplate","setCurrentTemplate","isCommunicationGuidelineWrite","filteredTemplates","handleCloseNewTemplate","handleChangeRowsPerPage","handleRemoveTemplate","templateUsed","templateIsUsed","getColor","getPrettyChannel","getPrettyStatus","allTemplates","isBefore","getTime","handleEditTemplate","templateIndex","statusResponse","updatedTemplate","listTemplates","handleRefreshStatus","BoxVariableAndColumnContainer","BoxVariableAndColumn","emptyCampaign","sender","CreateOrEditCampaign","_campaign$variables2","_campaign$variables3","currentCampaign","setCampaign","setListTemplates","templateBody","templateMessage","handleCreateCampaign","handleUpdateCampaign","_campaign$variables","campaignVariables","regexp","foundVariables","currCampaignVariables","externalVariables","_currCampaignVariable","handleChangeTemplate","parsedValue","isNaN","newColumn","newVariables","handleChangeColumn","validateCampaign","actioningAction","GetActionings","CreateActioning","UpdateActioning","DeleteActioning","TemplateIcon","ModalCampaigns","openModalCreateOrEditCampaign","setOpenModalCreateOrEditCampaign","setCurrentCampaign","campaigns","setCampaigns","tooltipTitle","setTooltipTitle","filteredCampaigns","handleCloseNewCampaign","handleRemoveCampaign","campaignUsed","actioning","campaign_name","campaignIsUsed","camp","allCampaigns","loadCampaigns","clipboard","writeText","handleCopyId","handleEditCampaign","actioningStyles","bgcolor","disabledColor","ResultDownloadButton","CreateOrEditActioning","currentActioning","scheduledDate","sheetValues","setSheetValues","sheet_values","setActioning","currentLanguage","allActionings","getFormattedContent","_currentTemplate$payl6","templateHeader","templateFooter","variablesAndValues","_currentVariables$ind","columnIndex","parsedMessage","varAndValue","handleCreateActioning","handleUpdateActioning","jsonArray","delimiter","fromString","KeyboardDateTimePicker","ampm","scheduled_date","handleChangeCampaign","whiteSpace","log_file","ArrowDownward","download","handleDownload","validateActioning","emptyActioning","ModalActioning","openModalCreateOrEditActioning","setOpenModalCreateOrEditActioning","actionings","setActionings","setCurrentActioning","filteredActionings","loadActionings","refresh","handleCloseNewActioning","actioningEditable","viewOrEditTooltip","toLocaleDateString","toLocaleTimeString","handleEditActioning","handleRemoveActioning","SchemaIcon","AdminIcon","TrainingIcon","slugsListOptions","EDIT_ACCESS_KEYS","IMPORT_EXPORT_BOT","MANAGE_ACCOUNT","MANAGE_COMPANY","MANAGE_PERMISSIONS","OPEN_CAMPAIGN","MANAGE_CORRECT_SENTENCES","MODAL_PHRASES_OF_INTENT","BOT_HISTORY","OPEN_CAMPAIGN_TEMPLATES","OPEN_CAMPAIGN_CAMPAIGN","OPEN_CAMPAIGN_ACTIONING","OPEN_FALAZAP_THEME","OPEN_FALAZAP_TOKEN","PublishButton","loadPublish","setLoadPublish","TokenExistsContainer","GeneratingTokenContainer","service","identityUrl","GetCredentials","GetIdentityToken","CreateIdentityToken","UpdateIdentityToken","_ref3","ModalFalazapToken","setToken","loadingMessage","setLoadingMessage","credentials","setCredentials","rCredentials","rToken","handleCreateToken","handleUpdateToken","handleCopyToken","FileCopyIcon","RefreshIcon","RenderBots","setDeleteGroupSelected","isClearFields","useLocation","lastFields","setLastFields","groupsNamesLocal","setGroupsNamesLocal","botValue","setBotValue","setCurrentCompany","currentProject","setCurrentProject","defaultFilterOptions","createFilterOptions","closeTranslated","openTranslated","noResultsTranslated","companiesNames","projectsNames","agentkey","handleChangeCompany","changeLastFields","fixGroupsNamesOrder","curGroups","getAgentData","updateFlow","releaseGroup","flagsResponse","GetFlags","isFlowRead","pathname","handleClearState","selectedCompany","_selectedCompany$proj","projectA","projectB","handleChangeProject","selectedProject","changeGroupFlow","group_id","deleteGroup","handleAddNewGroup","importGroup","exportGroup","openText","closeText","Set","onOpen","addGroup","handleOpenModalDeleteGroup","filterOptions","CloudUpload","appState","openModalConversations","setModalConversations","deleteGroupSelected","openLibrary","setOpenLibrary","openAdmin","setOpenAdmin","openModalImportError","setModalImportError","openModalImportExportBot","setOpenModalImportExportBot","isClearingFieldsRenderBots","setIsClearingFieldsRenderBots","setBotToRestore","setOpenFlowTest","setAnchorElFlow","openTraining","setOpenTraining","openCampaign","setOpenCampaign","openFalazapConfig","setOpenFalazapConfig","openImportExportBot","setImportExportBot","openModalRestoreBot","setOpenModalRestoreBot","setOpenFalazap","openDebug","setOpenDebug","importBot","currentBotStringified","fileText","principalGroupData","handleModalLibrary","handlePopoverClose","handleModalImportExportBot","sidebarListItem","handleHistoryConversation","listMenuOptionsAdmin","canBeUsed","BusinessIcon","slug","listLibrary","WidgetsIcon","BeenhereIcon","listImporExportBot","GetApp","listTraining","SmsFailedIcon","listMenuOptions","StarsIcon","ImportExportIcon","VpnKeyIcon","listCampaignOptions","falazapOptions","ColorLensIcon","FingerprintIcon","listAdminStuff","SendIcon","useSidebarItems","saveDataBeforeRedirect","handleLogout","isSelectedPage","handlePopoverOpen","handleOpenUrlsTests","getOpenMenuOptions","BugReportIcon","PlayCircleFilledIcon","handleClickSelect","opt","ListItemText","handleClickSelectAdminStuff","_opt$slug","newGroupList","groupSelected","flexBlockName","GlobalStyles","createGlobalStyle","App","Router","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","createBrowserHistory","StrictMode","require"],"mappings":";mfAEO,MAAMA,EAAe,CAC1BC,QAAQ,EACRC,MAAM,EACNC,0BAA0B,EAC1BC,uBAAuB,EACxBC,oBAAoB,EACpBC,2BAA2B,GAGrB,SAASC,EACdC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,YAEL,IAAK,yBAEL,IAAK,0BAEL,IAAK,wCAEL,IAAK,mBACH,OAAOC,EAAiBF,EAAOC,MAAMF,EAAOC,EAAOG,MACrD,QACE,OAAOJ,EAGb,CAEA,MAAMG,EAAmB,CACvBE,UAAWA,CAACL,EAAyBI,KAC5B,IAAKJ,KAAUI,IAExBE,uBAAwBA,CAACN,EAAyBI,KACzC,IAAKJ,KAAUI,IAExBG,sCAAuCA,CAACP,EAAyBI,KACxD,IAAKJ,KAAUI,IAExBI,wBAAyBA,CAACR,EAAyBI,KAC1C,IAAKJ,KAAUI,IAExBK,iBAAkBA,CAACT,EAAyBI,KACnC,IAAKJ,KAAUI,K,WC1CnB,MAAMM,EAAaC,wBAA2B,CAAC,GAEzCC,EACXC,IAEA,MAAM,SAAEC,GAAaD,GAEdb,EAAOe,GAAYC,qBAAWjB,EAAYP,GAsCjD,OApCAyB,qBAAU,MACRC,iBACE,MAAMC,EAAQC,aAAaC,QAAQ,SAC7BC,EAAU,IAAIC,iBAAiB,OAErCC,OAAOC,eAAiB,KACtBH,EAAQI,YAAY,aAAa,EAGnCJ,EAAQI,YAAY,eAEpBJ,EAAQK,iBAAiB,WAAYC,IAClB,gBAAbA,EAAIxB,KACNkB,EAAQI,YAAY,oBACE,qBAAbE,EAAIxB,KACbW,EAAS,CACPb,KAAM,mBACNE,KAAM,CAAEP,oBAAoB,KAER,eAAb+B,EAAIxB,MAAyBJ,EAAMH,oBAC5CkB,EAAS,CACPb,KAAM,mBACNE,KAAM,CAAEP,oBAAoB,IAEhC,IAGF,IAAIO,EAAO,CAAEX,QAAQ,EAAOC,MAAM,GAC5ByB,IAAOf,EAAO,CAAEX,QAAQ,EAAMC,MAAM,IAE1CqB,EAAS,CAAEb,KAAM,YAAaE,QAChC,CACAV,EAAM,GAEL,IAGDmC,cAACnB,EAAWoB,SAAQ,CAClBC,MAAO,CACL/B,MAAOA,GAASR,EAChBuB,YACAD,SAEDA,GACmB,EAInB,SAASkB,IAGd,OAFgBC,qBAAWvB,EAG7B,CCjEO,MAAMwB,EAA0BC,GACrB,CAAC,EAAG,EAAG,IACRC,SAASD,GACxB,IAEGE,EAAW,SAAXA,GAAW,OAAXA,IAAW,6BAAXA,IAAW,+CAAXA,IAAW,6CAAXA,IAAW,6CAAXA,IAAW,uBAAXA,IAAW,mCAAXA,IAAW,iCAAXA,IAAW,uBAAXA,IAAW,qBAAXA,IAAW,uBAAXA,IAAW,oBAAXA,IAAW,oBAAXA,IAAW,0BAAXA,IAAW,wBAAXA,IAAW,iCAAXA,IAAW,yBAAXA,IAAW,+BAAXA,IAAW,qCAAXA,IAAW,iCAAXA,IAAW,mBAAXA,IAAW,yBAAXA,IAAW,mBAAXA,IAAW,qBAAXA,IAAW,eAAXA,IAAW,uBAAXA,IAAW,2CAAXA,IAAW,2BAAXA,IAAW,mCAAXA,IAAW,qCAAXA,IAAW,yCAAXA,CAAW,EAAXA,GAAW,IAiCDA,ICtCVC,EAAS,SAATA,GAAS,OAATA,IAAS,2BAATA,IAAS,uBAATA,CAAS,EAATA,GAAS,IAKCA,ICUf,MAAMC,EAAoC,CACxCF,EAAYG,OACZH,EAAYI,QACZJ,EAAYK,eACZL,EAAYM,SACZN,EAAYO,QAGRC,EAA+B,CACnCR,EAAYS,UACZT,EAAYK,gBAmSCK,MAhSf,MA0BEC,YAAY5C,GAAiB,KAzB7B6C,cAAQ,OACRC,cAAQ,OACRC,KAAe,GAAG,KAClBC,YAAsB,GAAG,KACzBjB,WAA0BE,EAAYgB,YAAY,KAClDC,QAAkB,GAAG,KACrBC,cAAQ,OACRC,cAAQ,OACRC,YAAM,OACNC,aAAO,OACPC,YAAM,OACNC,iBAAW,OACXC,SAAuBvB,EAAUwB,WAAW,KAC5CC,UAAI,OACJC,WAA0B,CACxBC,SAAU,GACVC,WAAY,GACZC,WAAY,IACZ,KACFC,iBAA4BC,EAAU,KACtCC,cAAQ,OACRC,kBAAY,OACZC,UAAI,OACJC,eAAS,EAGPC,OAAOC,OAAOC,KAAMxE,EACtB,CAEAyE,eACE,MAAO,CACLxC,EAAYyC,eACZzC,EAAY0C,aACZ1C,EAAY2C,aACZ5C,SAASwC,KAAKzC,WAClB,CAEA8C,gBACE,MAAO,CAAC5C,EAAY6C,cAAc9C,SAASwC,KAAKzC,WAClD,CAEAgD,WACE,MAAO,CACL9C,EAAY+C,qBACZ/C,EAAYgD,gBACZjD,SAASwC,KAAKzC,WAClB,CAEAmD,UACE,MAAO,CACLjD,EAAYkD,oBACZlD,EAAYmD,eACZpD,SAASwC,KAAKzC,WAClB,CAEAsD,WACE,MAAO,CAACpD,EAAYG,QAAQJ,SAASwC,KAAKzC,WAC5C,CAEAuD,SACE,MAAO,CAACrD,EAAYM,SAAUN,EAAYO,QAAQR,SAASwC,KAAKzC,WAClE,CAEAwD,aACE,OAAOf,KAAKzC,aAAeE,EAAYuD,QACzC,CAEAC,SACE,OAAOjB,KAAKzC,aAAeE,EAAYyD,QACzC,CAEAC,6BACE,OAAOxD,EAAkCH,SAASwC,KAAKzC,WACzD,CAEA6D,mBACE,OAAOnD,EAA6BT,SAASwC,KAAKzC,WACpD,CAEA8D,kBACE,OAAOrB,KAAKzC,aAAeE,EAAY6D,aACzC,CAEAC,mBACE,OAAOvB,KAAKzC,aAAeE,EAAYK,cACzC,CAEA0D,cACE,OAAOxB,KAAKzC,aAAeE,EAAYS,SACzC,CAEAuD,qBACE,MAAO,CACLhE,EAAY+C,qBACZ/C,EAAYgD,eACZhD,EAAY6C,aACZ7C,EAAYiE,SACZjE,EAAYuD,UACZxD,SAASwC,KAAKzC,WAClB,CAEAoE,oBACE,OAAQ3B,KAAKzC,YACX,KAAKE,EAAY+C,qBACf,MAAO,mBACT,KAAK/C,EAAYkD,oBACf,MAAO,cACT,KAAKlD,EAAYgD,eACf,MAAO,YACT,QACE,MAAO,GAEb,CAEAmB,kBAA2B,IAADC,EACxB,OAAmB,QAAZA,EAAA7B,KAAKlB,eAAO,IAAA+C,OAAA,EAAZA,EAAcC,SAAU,CACjC,CAEAC,eACE,OAAO/B,KAAKzC,aAAeE,EAAY+C,qBACnC/C,EAAYkD,oBACZlD,EAAYmD,aAClB,CAEAoB,aACE,OAAOhC,KAAKlB,SAAW,EACzB,CAEAmD,cACE,OAAOjC,KAAKpB,UAAY,EAC1B,CAEAsD,cACE,OAAOlC,KAAK1B,UAAY,CAC1B,CAEA6D,cAAcC,GACZ,OAAOC,KAAKC,UAAUtC,KAAKlB,WAAauD,KAAKC,UAAUF,EACzD,CAEAG,wBAAwBC,GAAyB,IAADC,EAC9C,MAAMC,EAAqB,OAAXF,QAAW,IAAXA,OAAW,EAAXA,EAAaG,KAAKC,GAAWC,OAAOD,EAAOE,YACrDC,GACQ,QAAZN,EAAAzC,KAAKlB,eAAO,IAAA2D,OAAA,EAAZA,EAAcE,KAAKC,GAAWC,OAAOD,EAAOE,cAAc,GAC5D,OAAc,OAAPJ,QAAO,IAAPA,OAAO,EAAPA,EAASM,QAAQC,KAAkB,OAAVF,QAAU,IAAVA,KAAYvF,SAASyF,QAAQ,EAC/D,CAEAC,oBAAqB,IAADC,EAClB,OAAmB,QAAZA,EAAAnD,KAAKlB,eAAO,IAAAqE,OAAA,EAAZA,EAAcH,QAAQJ,GAAWA,EAAOE,aAAa,EAC9D,CAEAM,iBAAkB,IAADC,EACf,OAAmB,QAAZA,EAAArD,KAAKlB,eAAO,IAAAuE,OAAA,EAAZA,EAAcL,QAAQJ,IAAYA,EAAOE,aAAa,EAC/D,CAEAQ,aAAc,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EACX,OAAQ3D,KAAKzC,YACX,KAAKE,EAAYmG,oBACf,MAAMC,GAAuB,QAAXN,EAAAvD,KAAKnB,cAAM,IAAA0E,OAAA,EAAXA,EAAaM,YAAa,GACtCC,EAAaD,EAAU/B,OAAS+B,EAAU,QAAKpE,EACrD,OAAIqE,GACOA,EAASC,UAAUjC,OAASgC,EAASC,UAAU,GAC5C,GAEhB,KAAKtG,EAAYyD,SAMf,OALwC,QAAdsC,EAACxD,KAAKrB,gBAAQ,IAAA6E,GAAbA,EAAeQ,IAAG,SAAAC,OACnB,QADmBR,EAChCzD,KAAKrB,gBAAQ,IAAA8E,OAAA,EAAbA,EAAeO,KACT,QAAdN,EAAC1D,KAAKrB,gBAAQ,IAAA+E,GAAbA,EAAeQ,QAAO,0BAExB,GAGN,QACE,OAAW,OAAJlE,WAAI,IAAJA,MAAc,QAAV2D,EAAJ3D,KAAMrB,gBAAQ,IAAAgF,OAAV,EAAJA,EAAgBO,UAAW,GAExC,CAEAC,iBACE,IAAIC,EAAS,GACb,OAAQpE,KAAKR,aACX,IAAK,OACH4E,EAAS,QACT,MACF,IAAK,QACHA,EAAS,SACT,MACF,IAAK,QACHA,EAAS,WACT,MACF,IAAK,MACHA,EAAS,WACT,MACF,IAAK,WACHA,EAAS,YACT,MACF,IAAK,QACHA,EAAS,SACT,MACF,IAAK,YACHA,EAAS,qBACT,MACF,IAAK,MACHA,EAAS,MACT,MACF,IAAK,QACHA,EAAS,WACT,MACF,IAAK,MACHA,EAAS,MACT,MACF,IAAK,OACHA,EAAS,OACT,MACF,IAAK,MACHA,EAAS,MACT,MACF,IAAK,OACHA,EAAS,OACT,MACF,IAAK,OACHA,EAAS,OACT,MACF,IAAK,QACHA,EAAS,eACT,MACF,IAAK,WACHA,EAAS,QACT,MACF,IAAK,cACHA,EAAS,iBACT,MACF,IAAK,WACHA,EAAS,oBAIb,OAAOA,CACT,CAEAC,aACE,MAAM,SACJhG,EAAQ,SACRC,EAAQ,KACRC,EAAI,YACJC,EAAW,WACXjB,EAAU,QACVmB,EAAO,SACPC,EAAQ,SACRC,EAAQ,OACRC,EAAM,QACNC,EAAO,OACPC,EAAM,YACNC,EAAW,SACXC,EAAQ,WACRG,EAAU,YACVI,EAAW,SACXE,EAAQ,KACRP,EAAI,aACJQ,EAAY,KACZC,EAAI,UACJC,GACEG,KACJ,MAAO,CACL3B,WACAC,WACAC,OACAC,cACAjB,aACAmB,UACAC,WACAC,WACAC,SACAC,UACAC,SACAC,cACAC,WACAG,aACAI,cACAE,WACAP,OACAQ,eACAC,OACAC,YAEJ,GCnTK,MAwDMyE,EAAwBC,IAC7BA,GACJA,EAAQxH,iBACN,eACA,SAAUyH,GACRA,EAAEC,iBACFD,EAAEE,iBACJ,IACA,EAEJ,EAmHWC,EAAoB,WAAgC,IAA/BC,EAAoBC,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAG,GACvD,MAAMC,EAAYC,SAASC,uBAAuB,iBAC5CC,EAASH,EAAUhD,OACnBoD,EAAgB,GACtB,IAAK,IAAIC,EAAQ,EAAGA,EAAQF,EAAQE,IAAS,CAC3C,MAAMZ,EAAUO,EAAUK,GACpBlC,EAAKJ,OAAO0B,EAAQtB,GAAGmC,QAAQ,UAAW,KAC3CR,EAAWpH,SAASyF,IACvBiC,EAAIG,KAAKpC,EAEb,CACA,OAAOiC,CACT,EAEaI,EAAcA,KACzB,MAAMR,EAAYC,SAASC,uBAAuB,iBAC5CC,EAASH,EAAUhD,OACnBoD,EAAgB,GACtB,IAAK,IAAIC,EAAQ,EAAGA,EAAQF,EAAQE,IAAS,CAC3C,MAAMZ,EAAUO,EAAUK,GACpBlC,EAAKJ,OAAO0B,EAAQtB,GAAGmC,QAAQ,UAAW,KAChDF,EAAIG,KAAKpC,EACX,CACA,OAAOiC,CAAG,EAaCK,EAAqBA,KAC5BR,SAASC,uBAAuB,0BAA0BlD,QAC5DiD,SAASC,uBAAuB,0BAA0B,GAAGQ,QAC/D,EAGWC,EAAkBC,IAC7B,MAAMC,EAAgBZ,SAASa,eAAe,QAAD3B,OAASyB,IACtD,QAAsB,OAAbC,QAAa,IAAbA,MAAeE,UAAUC,SAAS,iBAAgB,EAchDC,EAAqBA,KAChC,MAAMb,EAAMP,IACZ,IAAK,MAAM1B,KAAMiC,EAAK,CACpB,MAAMS,EAAgBZ,SAASa,eAAe,QAAD3B,OAAShB,IACzC,OAAb0C,QAAa,IAAbA,KAAeE,UAAUL,OAAO,gBAClC,GAGWQ,EAAmBN,IAC9B,MAAMC,EAAgBZ,SAASa,eAAe,QAAD3B,OAASyB,IAChDO,EAAIpD,OAAoB,OAAb8C,QAAa,IAAbA,OAAa,EAAbA,EAAeO,MAAMC,IAAIf,QAAQ,KAAM,KAExD,MAAO,CAAEgB,EADCvD,OAAoB,OAAb8C,QAAa,IAAbA,OAAa,EAAbA,EAAeO,MAAMG,KAAKjB,QAAQ,KAAM,KAC7Ca,IAAG,EAyBJK,EAAcA,KAGzB,IAFA,IAAIC,EAAWxB,SAASC,uBAAuB,eAExCuB,EAAS,IACdA,EAAS,GAAGV,UAAUL,OAAO,cAC/B,EAGWgB,EAAmBC,IAC9BC,IACA,MAAMf,EAAgBZ,SAASa,eAAe,QAAD3B,OAASwC,IACzC,OAAbd,QAAa,IAAbA,KAAeE,UAAUc,IAAI,mBAAmB,EAGrCD,EAAoBA,KAG/B,IAFA,IAAIH,EAAWxB,SAASC,uBAAuB,oBAExCuB,EAAS,IACdA,EAAS,GAAGV,UAAUL,OAAO,mBAC/B,EAGWoB,EAAeH,IAC1B,MAAMd,EAAgBZ,SAASa,eAAe,QAAD3B,OAASwC,IACzC,OAAbd,QAAa,IAAbA,KAAeE,UAAUc,IAAI,gBAE7BE,YAAW,KACTC,EAAcL,EAAI,GACjB,IAAK,EAGGK,EAAiBL,IAC5B,MAAMd,EAAgBZ,SAASa,eAAe,QAAD3B,OAASwC,IACzC,OAAbd,QAAa,IAAbA,KAAeE,UAAUL,OAAO,eAAe,EAGpCuB,EAAgBN,IAC3B,MAAMd,EAAgBZ,SAASa,eAAe,QAAD3B,OAASwC,IACzC,OAAbd,QAAa,IAAbA,KAAeE,UAAUc,IAAI,gBAAgB,EAGlCK,EAAkBP,IAC7B,MAAMd,EAAgBZ,SAASa,eAAe,QAAD3B,OAASwC,MACtB,OAAbd,QAAa,IAAbA,MAAeE,UAAUC,SAAS,mBACzB,OAAbH,QAAa,IAAbA,KAAeE,UAAUL,OAAO,gBAAgB,EA+I1D,MAAMyB,EAAYA,CAACC,EAAqBC,KAC7C,MAAMC,EAAatH,OAAOuH,KAAKH,EAAMpI,SACrC,IAAK,MAAM2H,KAAOW,EAAY,CAC5B,MAAMxE,EAASsE,EAAMpI,QAAQsI,EAAWX,IAEpC7D,GAAUA,EAAO0E,aACnB1E,EAAO0E,YAAYC,SAASC,IAC1B,MAAMC,EAAqBD,EAAWE,KAEtC,GAAIP,EAAUM,GAAqB,CACjC,MAAME,EAAmBR,EAAUM,GASnC,GAPEE,EAAiB9I,OAAO+I,QAAQN,YACmBO,MAClDC,GACCC,OAAOD,EAAIJ,QAAUK,OAAOb,EAAMjE,KAClCmE,EAAWX,KAASqB,EAAIE,QAGZ,OAChBC,QAAQC,IAAI,8BAAyBhB,GAErCS,EAAiB9I,OAAO+I,QAAQN,YAAYjC,KAAK,CAC/CqC,KAAMR,EAAMjE,GACZ+E,MAAOZ,EAAWX,IAEtB,IAGN,GAGW0B,EAAaA,CAACjB,EAAqBC,KAC9C,MAAMiB,EAAatI,OAAOuH,KAAKH,EAAMrI,QAErC,IAAK,MAAM4H,KAAO2B,EAAY,CAC5B,MAAMJ,EAAQd,EAAMrI,OAAOuJ,EAAW3B,IAElCuB,GAASA,EAAMV,aACjBU,EAAMV,YAAYC,SAASC,IACzB,MAAMa,EAAgBb,EAAWE,KAEjC,GAAIP,EAAUkB,GAAgB,CAC5B,MAAMC,EAAcnB,EAAUkB,GAC9B,GAA+C,IAA3CvI,OAAOuH,KAAKiB,EAAYzJ,QAAQiD,OAAc,OAClD,GAC8C,IAA5ChC,OAAOuH,KAAKiB,EAAYxJ,SAASgD,SAChCwG,EAAYxJ,QAAQiJ,OAAOP,EAAWQ,QACvC,CACA,MAAMO,EAAwBrB,EAAMrI,OACzB,QACTyI,YAAYkB,WACXV,GAAQA,EAAIE,QAAUD,OAAOP,EAAWQ,SAK3C,mBAFOd,EAAMrI,OAAgB,QAAEyI,YAAYiB,EAG7C,CAEA,MAAME,EACJH,EAAYxJ,QAAQiJ,OAAOP,EAAWQ,QAAQV,YAOhD,GALEmB,EAA8B3G,OAAS,GACvC2G,EAA8BC,MAC3BZ,GAAQC,OAAOD,EAAIJ,QAAUK,OAAOb,EAAMjE,MAG9B,OAEjBqF,EAAYxJ,QAAQiJ,OAAOP,EAAWQ,QAAQV,YAAYjC,KAAK,CAC7DqC,KAAMR,EAAMjE,GACZL,OAAQwF,EAAW3B,KAGrBwB,QAAQC,IAAI,+BAA0BI,EACxC,IAGN,GAMWK,EAAuBC,IAClC,MAAMC,EAAgBD,EAASE,KAAKtN,KAC9BuN,EAAejJ,OAAOuH,KAAKwB,GAEjC,IAAK,MAAMpC,KAAOsC,EAChB,GAAIF,EAAchG,OAAO4D,IAAO,CAC9B,MAAM5H,EAASgK,EAAchG,OAAO4D,IAAM5H,OACpCC,EAAU+J,EAAchG,OAAO4D,IAAM3H,QAE3C,GAAID,GAAUA,EAAO+I,QAAS,CAC5B,MAAMoB,EAAmBnK,EAAO+I,QAAQN,YAEpC0B,IACFnK,EAAO+I,QAAQN,YAAc0B,EAAiBhG,QAC3CwE,IAAkE,IAAnDuB,EAAaE,QAAQlB,OAAOP,EAAWE,SAG7D,CAKA,GAHAT,EAAU4B,EAAchG,OAAO4D,IAAOoC,GACtCV,EAAWU,EAAchG,OAAO4D,IAAOoC,GAEnC/J,GAA8B,kBAAZA,EAAsB,CAC1C,MAAMoK,EAAcpJ,OAAOuH,KAAKvI,GAEhC,IAAK,MAAM8D,KAAUsG,EAAa,CAChC,MAAMC,EAAkBrJ,OAAOuH,KAC7BvI,EAAQoK,EAAYrG,OAAOD,KAAU0E,aAEvC,IAAK,MAAMb,KAAO0C,GAOP,IALPJ,EAAaE,QACXlB,OACEjJ,EAAQoK,EAAYrG,OAAOD,KAAU0E,YAAYzE,OAAO4D,IACrDiB,QAIP5I,EAAQoK,EAAYrG,OAAOD,KAAU0E,YAAY8B,OAC/CvG,OAAO4D,GACP,EAIR,CACF,CACF,CAEF,OAAOmC,CAAQ,EC1lBJS,EAAU,SAACC,GAAkD,IAArCC,EAAuB1E,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GAC1DyE,EAAME,EAAYF,GAElB,MAAM3G,EAAiC,CACrC8G,EAAG,oDACHjF,EAAG,0CACHkF,EAAG,0CACHC,EAAG,oDACHC,EAAG,0CACHC,EAAG,YACHC,EAAG,aAEL,IAAK,MAAMC,KAAWpH,EACpB2G,EAAMA,EAAIlE,QAAQ,IAAI4E,OAAOrH,EAAIoH,GAAU,KAAMA,GAInD,OAFAT,EAAMA,EAAIlE,QAAQ,KAAM,KAGrBA,QACCmE,EAAiBU,EAAmCC,EACpD,IAEDC,mBACL,EAEaD,EACX,+EACWD,EACX,iFACWG,EACX,sGAGWC,EACX,iFAEWb,EAAeF,GACnBA,EAAIlE,QACT,wmBACA,IAISkF,EAAwBnN,IACnC,IAAIoN,EACJ,MAAMC,EAAiBH,EAEvB,OADAE,EAAiBpN,EAAMiI,QAAQoF,EAAgB,IACxCD,CAAc,EAGVE,EAAmB,SAC9BjG,GAGI,IACArH,EAHJsJ,EAAwC5B,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAG,KAI3C,MAAM2F,EAHI3F,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GAI4B,IAAlCkD,OAAOvD,EAAEkG,OAAOvN,OAAO2E,OACrBsI,EACAH,EACFC,EAMJ,OAJE/M,EADU,SAARsJ,GAA0B,UAARA,EACZsB,OAAOvD,EAAEkG,OAAOvN,OAAOiI,QAAQoF,EAAgB,IAE/CzC,OAAOvD,EAAEkG,OAAOvN,OAEnBA,CACT,EAeawN,EACX,+EAEWC,EAAuCC,GAC3CA,EAAKzF,QAAQuF,EAA0C,IChFjD,MAAMG,EAKnB1M,YAAY2M,GAAuB,KAJzBC,aAAe,EAAE,KAEjBD,gBAAU,EAGlB/K,KAAK+K,WAAaA,CACpB,CAEAE,uBACE,MAAM5D,EAAOvH,OAAOuH,KAAKrH,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,MAChE,GAAM6L,EAAKvF,OAAQ,CACjB,MAAMtG,EACJwE,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,KAAK6L,EAAKA,EAAKvF,OAAS,IACjE,OAAItG,EAAKA,KAAK+B,aAAeE,EAAYG,OAChCoC,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,KAC5C6L,EAAKA,EAAKvF,OAAS,IAGhBtG,CACT,CACA,OAAO,IACT,CAEA0P,oBAAoBxF,GAClB,MAAMlK,EAAOwE,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,KAAKkK,GACzD,MAAO,CAAEU,EAAG5K,EAAK2P,MAAOlF,EAAGzK,EAAK4P,MAClC,CAEAC,kBACEC,EACAhN,EACA6G,EACAoG,GAEAD,EAAcxM,QACW,WAAvBwM,EAAc/M,KAAoB,GAAK,CAAC,CAAEiN,MAAO,aACnD,MAAMC,EAAeH,EAAc1J,kBAC7B8J,EAAWJ,EAAcjH,aACzBsH,EAAoB3L,KAAKiL,uBAC/B,IAAIW,EAAU,EACZC,EAAU,EACRF,IACFC,EAAUL,EAAenF,EACzByF,EAAUF,EAAkBP,OAE9B,MAAMU,EAAW,CACf1F,EAAGwF,EAAU,IACb3F,EAAKd,EAAQ0G,EAAU,IAAMA,EAAU,KAErCP,EAAczK,aAChBiL,EAAS1F,EAAImF,EAAenF,EAC5B0F,EAAS7F,EAAIsF,EAAetF,EAAI,KAElC,MAAM8F,EAAU/L,KAAKgM,QAAQP,EAAcC,EAAUI,GAGrD,OAFAJ,EAASrN,SAAW0J,OAAOgE,GAC3B/L,KAAKiM,cAAc3N,EAAUyN,EAAS5G,GAC/B4G,CACT,CAEAC,QAAQP,EAAsBC,EAAoBI,GAChD,MAAM7G,EAASwG,IAEX,CACEhO,EAAYgB,YACZhB,EAAYyO,SACZzO,EAAYmG,oBACZnG,EAAYG,QACZJ,SAAiB,OAARkO,QAAQ,IAARA,OAAQ,EAARA,EAAUnO,YACrB,EACAkO,GAEJ,OAAOzL,KAAK+K,WAAWiB,QACrB,UACAN,EAASnO,aAAeE,EAAY0O,KAClCT,EAASnO,aAAeE,EAAYK,eAClC,EACAkC,KAAKgL,aACT/F,EACA6G,EAAS1F,EACT0F,EAAS7F,EACT,UACAyF,EACA,IACA,EAEJ,CAEAO,cAAc3N,EAAkByN,EAAiB5G,GAC/CnF,KAAK+K,WAAWkB,cACd3N,EACAyN,EACA,WAAa5G,EAAQ,GACrB,UAEJ,CAEAiH,cAAcC,GACZ,MAAM,SAAEzD,GAAa5I,KAAK+K,WAAWnC,SAChCA,EAASE,KAAKwD,QAGjB1D,EAASE,KAAKwD,SAAW,EAFzB1D,EAASE,KAAKwD,QAAUD,CAI5B,CAEAE,gBACE,OAAOvM,KAAK+K,UACd,EC7Ga,MAAMyB,UAA+B1B,EAAiB1M,cAAA,SAAAyG,WAAA,KA6HnE4H,cAAgB,KACVzM,KAAK+K,aACH/K,KAAK+K,WAAW2B,KAAO,IACzB1M,KAAK+K,WAAW4B,UAChB3M,KAAKyM,iBACIzM,KAAK+K,WAAW2B,KAAO,KAChC1M,KAAK+K,WAAW6B,WAChB5M,KAAKyM,iBAET,EACA,KAEFI,mBAAqB,KACnB,GACE7M,KAAK+K,YACL/K,KAAK+K,WAAW+B,WAChB9M,KAAK+K,WAAWI,OAChBnL,KAAK+K,WAAWK,MAChB,CAmBA,MAlBiB,CACfhF,EACEpG,KAAK+K,WAAWI,MAChBnL,KAAK+K,WAAWI,MAAQ4B,KAAKC,SAC7BhN,KAAK+K,WAAW+B,UAAUG,aACvBjN,KAAK+K,WAAW+B,UAAUG,YAAcjN,KAAK+K,WAAW2B,MAC3D1M,KAAK+K,WAAW+B,UAAUI,wBAAwB9G,GAC/CpG,KAAK+K,WAAW+B,UAAUG,aACxBjN,KAAK+K,WAAW+B,UAAUG,YAAcjN,KAAK+K,WAAW2B,OAC/DzG,EACEjG,KAAK+K,WAAWK,MAChBpL,KAAK+K,WAAWK,MAAQ2B,KAAKC,SAC7BhN,KAAK+K,WAAW+B,UAAUK,cACvBnN,KAAK+K,WAAW+B,UAAUK,aAAenN,KAAK+K,WAAW2B,MAC5D1M,KAAK+K,WAAW+B,UAAUI,wBAAwBjH,GAC/CjG,KAAK+K,WAAW+B,UAAUK,cACxBnN,KAAK+K,WAAW+B,UAAUK,aAAenN,KAAK+K,WAAW2B,OAGpE,EACA,CAnKFU,aAAa1B,GACX,MAAMJ,EAAgB,IAAInN,EAAcuN,GAEpCJ,EAAc/K,WAChBP,KAAKqN,mBAAmB/B,GAExBtL,KAAKsN,yBAAyBhC,EAElC,CAEA+B,mBAAmB/B,GACjBA,EAAcxM,QAAU,IACnBwM,EAActJ,aACb,CAAEwJ,MAAO,WAEf,MAAMC,EAAeH,EAAc1J,kBAC7B8J,EAAWJ,EAAcjH,aAE/B,IAAIyH,EAAW9L,KAAK6M,qBACff,IAAUA,EAAW,CAAE1F,EAAG,EAAGH,EAAG,IAErC,MAAM3H,EAAW0B,KAAKgM,QAAQP,EAAcC,EAAUI,GAEhDhN,EAAUwM,EAAcxM,QACxByO,EAAiBvN,KAAKwN,qBAC1B1O,EACAwM,EACAhN,EACAwN,IAEI,SAAElD,GAAa5I,KAAK+K,WAAWnC,SACrCA,EAASE,KAAKtN,KAAK8C,GAAU9C,KAAKsD,QAAUyO,EAC5CvN,KAAK+K,WAAWrF,OAASpH,CAC3B,CAEAkP,qBACE1O,EACA4M,EACApN,EACAiN,GAEA,MAAMkC,EAAe,IAAI3O,GAEzB,IAAK,IAAIqG,EAAQ,EAAGA,EAAQsI,EAAa3L,OAAQqD,IAAS,CACxD,MAAMvC,EAAS6K,EAAatI,GACtBqG,EAAQ5I,EAAO4I,MACfhN,EAAcoE,EAAOpE,aAAe,GACpCjB,EACM,WAAViO,EAAqB/N,EAAYG,OAAS8N,EAAS3J,eAC/CrD,EAAUgN,EAAShN,QACnBH,EAAOmN,EAASnN,KAAO,IAAM8K,EAAQmC,EAAMkC,cAAcC,QACzDC,EAAgB,IAAIzP,EAAc,CACtCG,WACAC,OACAC,cACAjB,aACAmB,UACAG,OAAQ,CAAEgP,cAAe,CAAC,GAAI,GAAI,IAAKhK,UAAW,IAClD7E,YAAa,CACX8O,YAAa,EACbC,QAAS,mCACTC,IAAK,6KACLC,gBAAiB,MAGrBrL,EAAOsL,WAAa3P,EACpBqE,EAAOE,SAAW9C,KAAKqL,kBACrBuC,EACAtP,EACA6G,EACAoG,GACA4C,UACJ,CACA,OAAOV,CACT,CAEAH,yBAAyBhC,GACvB,IAAIG,EAAeH,EAAc1J,kBAiB9B,IAADwM,GAfiB,IAAjB3C,GACCH,EAAc7J,sBACd6J,EAAcjK,mBACdiK,EAAc9J,gBAEf8J,EAAcxM,QAAU,CAAC,CAAE0M,MAAO,aAClCC,EAAe,EAEXH,EAActM,cAChBsM,EAActM,YAAY+O,QAAU,qCAItCzC,EAAc/N,aAAeE,EAAY0C,cACzCmL,EAAc/N,aAAeE,EAAYyC,kBAEpB,QAArBkO,EAAA9C,EAAcxM,eAAO,IAAAsP,GAArBA,EAAuB/I,KAAK,CAAEmG,MAAO,WACrCC,KAGF,MAAMC,EAAWJ,EAAcjH,aAE/B,IAAIyH,EAAW9L,KAAK6M,qBACff,IAAUA,EAAW,CAAE1F,EAAG,EAAGH,EAAG,IACrC,MAAMP,EAAS1F,KAAKgM,QAAQP,EAAcC,EAAUI,GAEpD9L,KAAK+K,WAAWrF,OAASA,CAC3B,CAEA2I,SAASC,EAAcC,EAAcC,EAAiBC,GACpD,MAAMC,EAAOF,EAAU,EAAW,GAAPF,EACrBK,EAAOF,EAAU,EAAW,GAAPF,EAC3BvO,KAAKyM,gBAEDzM,KAAK+K,aACP/K,KAAK+K,WAAW6D,UAAYF,EAC5B1O,KAAK+K,WAAW8D,UAAYF,EACxB3O,KAAK+K,WAAW+B,YAClB9M,KAAK+K,WAAW+B,UAAU5G,MAAM4I,UAAS,aAAA7K,OAAgBjE,KAAK+K,WAAW6D,SAAQ,oBAAA3K,OAC7EjE,KAAK+K,WAAW8D,SAAQ,0BAAA5K,OAClBjE,KAAK+K,WAAW2B,KAAI,OAGpC,EC7Ha,MAAMqC,UAA+BjE,EAE3CkE,gBAAgBtJ,GAAiB,IAADuJ,EACrC,MAAMvH,EAAO1H,KAAK+K,WAAWmE,cAAcxJ,GAE3C1F,KAAK+K,WAAWoE,aAAa,QAAUzJ,GACvC,MAAM0J,EAAiB1H,EAAK7I,OAAgB,QAAEyI,YAAYO,MACvDL,GAAeO,OAAOP,EAAWE,QAAUK,OAAOL,EAAKlM,KAAK8C,YAEzD8Q,GACJpP,KAAK+K,WAAWsE,iBACdxM,OAAOuM,EAAe1H,MACtB0H,EAAepH,OAGnB,MAAM0D,EAAqB1L,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,KAAKkM,EAAKlM,KAAK8C,UAAU9C,KAC3FkQ,EAAS5M,QAA0B,QAAnBmQ,EAAGvD,EAAS5M,eAAO,IAAAmQ,OAAA,EAAhBA,EAAkBjM,QAAOJ,GAAUA,EAAOE,WAAaiF,OAAOL,EAAKzE,KACxF,CAEOqM,iBAAiBhR,GAAmB,IAADiR,EACxC,MAAMrI,EAAQlH,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,OAGjB,QAAhB+T,EAFOrI,EAAM5I,GAAU9C,KAEdsD,eAAO,IAAAyQ,OAAA,EAAhBA,EAChB5M,KAAIC,GAAUC,OAAOD,EAAOE,cAAc,IAG3CE,QAAQC,IAAE,IAAAuM,EAAA,OAAc,QAATA,EAAAtI,EAAMjE,UAAG,IAAAuM,OAAA,EAATA,EAAWhU,KAAK8C,YAAaA,CAAQ,IACpDiJ,SAAStE,GAAOjD,KAAKgP,gBAAgB/L,KAExCjD,KAAK+K,WAAWoE,aAAa,QAAU7Q,EACzC,E,uBC9BK,IAWImR,GAAiB,gBAKrB,IAAIC,GAAe,cAWF,IAAIC,MAII,IAAIA,MAGP,IAAIA,MAII,IAAIA,MAXlC,IAaIC,GAAmB,IAAID,MAE3B,SAASE,GAAwBC,GAGtC,MAAMC,EAAQD,EAAME,MAAM,SAC1B,IAAIlG,EAAYmG,EAChBL,GAAmB,IAAID,MAEvBI,EAAMxI,SAAS2I,KACbpG,EAAIoG,EAAKC,OAAO,mBACP,IACGD,EAAKE,UAAU,EAAGtG,GAAK,IACjCoG,EAAOA,EAAKE,UAAUtG,EAAGoG,EAAKpO,QAET,cADrBmO,EAAaC,EAAKF,MAAM,MACT,IACbJ,GAAiBvK,KAAK4K,EAAW,IAGrC,GAEJ,CAEO,SAASI,GAAuBtC,EAASuC,GAG9C,MAAMP,EAAQhC,EAAQiC,MAAM,SAC5B,IAAgBC,EAAYvG,EAE1B6G,EADEC,EAAU,GAgDd,OA9CAZ,GAAmB,IAAID,MAGvBI,EAAMxI,SAAS2I,IAMb,GAJAK,EAAUL,EAENA,EAAKC,OAAO,aAEP,IAEPD,EAAOA,EAAKF,MAAM,MAAM,GAKH,cAFrBC,EAAaC,EAAKF,MAAM,MAET,IAETM,EAAcxO,OAAS,GAGzB,IAAK4H,EAAI,EAAGA,EAAI4G,EAAcxO,OAAQ4H,IACpCwG,EAzBHO,UA2BOH,EAAc5G,GAAe,YAE3B4G,EAAc5G,GAAU,OAAKuG,EAAW,KAG1CM,EACE,UACAd,GACA,IACAa,EAAc5G,GAAe,WAC7B,SAQd8G,EAAUA,EAAUD,EAAU,IAAI,IAI7BC,CACT,CAiEO,SAASE,GAAWC,GAErBA,EAAU,KAAIjB,GAAeiB,EAAU,GAAGC,KAM9C,OAJwBD,EAAUhO,KAAKkO,GAnElC,SAAoBjI,GAIzB,IAEImF,EAAS+C,EAAkBC,EAF3B1J,EAAOvH,OAAOuH,KAAKuB,EAAmB,SAAY,SAAQ,KAAQ,MAClE0H,EAAgB,IAAIX,MAGxB1H,QAAQC,IAAI,2BAGZ,IAAK,IAAI8I,EAAI,EAAGA,EAAI3J,EAAKvF,OAAQkP,IAAK,CAEpC,IAAIC,EAAQrI,EAAmB,SAAY,SAAQ,KAAQ,KAAEvB,EAAK2J,IAElEvB,GACE7G,EAAmB,SAAY,SAAQ,KAAQ,KAAEvB,EAAK2J,IAAU,KACrD,QAGbV,EAAgB,GAChBS,EAAiB,GAEbE,EAAY,KAAe,aAEzBA,EAAY,KAAe,YAAW,UAExClD,EAAUkD,EAAY,KAAe,YAAW,QAE5CA,EAAY,KAAW,UACzBX,EAAgBW,EAAY,KAAW,QAEvCH,EAAmBT,GAAuBtC,EAASuC,GAInD1H,EAAmB,SAAY,SAAQ,KAAQ,KAAEvB,EAAK2J,IAAU,KACjD,YACI,gBAAIF,IAQ7BA,EACElI,EAAmB,SAAY,SAAQ,KAAQ,KAAEvB,EAAK2J,IAAU,KACjD,YACI,gBAErBF,EAAmBI,GAAsBJ,GAEzClI,EAAmB,SAAY,SAAQ,KAAQ,KAAEvB,EAAK2J,IAAU,KACjD,YACI,gBAAIF,CACzB,CAIA,OAAOlI,CACT,CAMkDuI,CAAWN,IAK7D,CAiCO,SAASK,GAAsBJ,GACpC,IAAI1K,EAwBJ,OAtBA0K,GADAA,EAAmBA,EAAiB1L,QAAQ,SAAU,UAClBA,QAAQ,SAAU,UAInCgM,WAAW,QAC5BN,EAAiBd,MAAM,MAAM,GAAGxS,SAAS,OAC1CsT,EAAiBd,MAAM,MAAM,GAAGxS,SAAS,OAIxC4I,EAAI0K,EAAiBX,OAAO,MAC5BW,EACEA,EAAiBd,MAAM,MAAM,GAAG5K,QAAQ,KAAM,WAC9C,KACA0L,EAAiBV,UAAUhK,EAAI,EAAG0K,EAAiBhP,OAAS,GAAG6L,OAC/D,MAKJmD,GADAA,GADAA,EApDK,SAA6BO,GAClC,IAEInB,EAFAM,EAAU,GACNa,EAAWlD,WAEnBkD,EAAaA,EAAWrB,MAAM,SAM9B,IAAK,IAAItG,EAAI,EAAGA,EAAI2H,EAAWvP,OAAQ4H,KACrCwG,EAAOmB,EAAW3H,IAET0H,WAAW,QAGhBlB,EAAKkB,WAAW,cAChBlB,EAAKkB,WAAW,cAChBlB,EAAKkB,WAAW,eAChBlB,EAAKkB,WAAW,gBAIhBZ,EAAUA,EAAUN,EAAO,MAEZ,IAARA,IACTM,EAAUA,EAAUN,EAAO,MAG/B,OAAOM,CACT,CAsBqBc,CAAoBR,IACH1L,QAAQ,SAAU,UAClBA,QAAQ,SAAU,QAGxD,CCnPe,MAAMmM,WAA+BzG,EAClD0G,aAAa9F,EAAoBhG,GAC/B,MAAM4F,EAAgB,IAAInN,EAAcuN,GAEpCJ,EAAc/K,WAChBP,KAAKyR,mBAAmBnG,EAAe5F,GAC9B4F,EAAc5K,UACvBV,KAAK0R,kBAAkBpG,EAAe5F,GAEtC1F,KAAK2R,yBAAyBrG,EAAe5F,EAEjD,CAEQ+L,mBAAmBnG,EAA8B5F,GACvD,MAAMkM,EAAwB5R,KAAK+K,WAAWnC,SAASA,UACjD,QAAE9J,GAAY8S,EAAM9I,KAAKtN,KAAKkK,GAAQlK,KAC5C,GAAIsD,EACF,IAAK,IAAIqG,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IAAS,CACnD,MAAMvC,EAAS9D,EAAQqG,GACvBvC,EAAOsL,WAAa5C,EAAc/M,KAAO,IAAM8K,EAAQzG,EAAO4I,MAChE,CAGF,GAAKF,EAAcnJ,cAAcrD,GAoB/BkB,KAAK6R,oBAAoBvG,EAActJ,aAAcsJ,EAAc/M,UApB1B,CACzC,MAAMuT,EAAcxG,EAAc/I,wBAAwBzD,GAC1DkB,KAAK+R,oBAAoBD,GACzB,MAAME,EAAkB1G,EAAcpI,oBACtClD,KAAK6R,oBAAoBG,EAAiB1G,EAAc/M,MACxD,MAAM0T,EAAe3G,EAAclI,iBAC7B0I,EAAW9L,KAAKkL,oBAAoBxF,GAEpCwM,EAAelS,KAAKmS,iBACxBF,EACA3G,EACA5F,EACAsM,EAAgBlQ,OAChBgK,GAEF8F,EAAM9I,KAAKtN,KAAKkK,GAAQlK,KAAKsD,QAAU,IAClCkT,KACAE,EAEP,CAGAlS,KAAK2R,yBAAyBrG,EAAe5F,GAC7C1F,KAAKoS,kBAAkB1M,EACzB,CAEA0M,kBAAkB1M,GAChB,MAAMgC,EACJ1H,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,KAAKkK,GAExC5G,EAAU,IAAK4I,EAAK5I,SAC1B,IAAK,MAAM2H,KAAO3H,EAAS,CACzB,MAAMwI,EAAc,IAAIxI,EAAQ2H,GAAKa,aACrC,IAAK,MAAM+K,KAAQ/K,EACjBtH,KAAK+K,WAAWuH,uBACd5M,EACA7C,OAAOwP,EAAK3K,MACZjB,EACA4L,EAAKzP,QAAU,GAGrB,CAEA,IAAK,MAAM6D,KAAO3H,EAAS,CACzB,MAAMyT,EAAc7K,EAAKlM,KAAKsD,SAAW,GACnCqG,EAAQtC,OAAO4D,EAAIrB,QAAQ,UAAW,KAAO,EAC7CoN,EAAUD,EAAY1K,MAAK,CAAC4K,EAAG/I,IAAMA,IAAMvE,IAC7CqN,GAAWA,EAAQ1P,UACrB9C,KAAK+K,WAAWkB,cAAcvG,EAAQ8M,EAAQ1P,SAAU2D,EAAK,UAEjE,CACF,CAEQiL,kBAAkBpG,EAA8B5F,GACtD1F,KAAK2R,yBAAyBrG,EAAe5F,GAC7C1F,KAAK0S,mBAAmBpH,EAC1B,CAEQoH,mBAAmBpH,GAA+B,IAADqH,EACvD,MAAMrU,EAAWgN,EAAcpJ,cAEzB0Q,EAAoD,QAAzCD,EADa3S,KAAK+K,WAAWnC,SAASA,SAC7BE,KAAKtN,KAAK8C,GAAU9C,KAAKsD,eAAO,IAAA6T,OAAA,EAAtCA,EAAwC9K,MACzDgL,GAAUA,EAAM/P,WAAawI,EAAcjN,WAExCuU,IACJA,EAAY1E,WAAa5C,EAAc/M,KACvCqU,EAAYpU,YAAc8M,EAAc9M,YAE5C,CAEQmT,yBACNrG,EACA5F,GACC,IAADoN,EACA,MAAMlB,EAAwB5R,KAAK+K,WAAWnC,SAASA,SACjDmK,EAAoBjT,OAAOuH,KAC/BuK,EAAM9I,KAAKtN,KAAKkK,GAAQ5G,SACxBgD,OAEF,GAAiC,IAA7BwJ,EAAc/N,WAAkB,CAClC,MAAMyV,EAAS,IAAIhJ,OAAO,SAAU,MAEhCsB,EAAczM,QAAUyM,EAAczM,OAAOgP,gBAC/CvC,EAAczM,OAAOgP,cACnBvC,EAAczM,OAAOgP,cAAclL,KAAKsQ,GACtCA,EAAWA,EAAS7N,QAAQ4N,EAAQ,OAI5C,CAEyC,IAADE,EAAxC,GAA6B,QAA7BJ,EAAIxH,EAActM,mBAAW,IAAA8T,GAAzBA,EAA2B/E,UAC7B8B,GAAiD,QAA1BqD,EAAC5H,EAActM,mBAAW,IAAAkU,OAAA,EAAzBA,EAA2BnF,SAGjD6B,IACAA,GAAiB9N,SAAWwJ,EAAc1J,oBACzC,CACCnE,EAAYgD,eACZhD,EAAY+C,qBACZ/C,EAAY6C,aACZ7C,EAAY6D,eACZ9D,SAAS8N,EAAc/N,aACzB,CACA,IAAI4V,EAAW,GACV,CAAC1V,EAAYuD,UAAUxD,SAAS8N,EAAc/N,cACjD4V,EAAavD,GAAiB9N,OAAS8N,GAAmB,IAG5D,MAAM9Q,EAAU,GAChB,IAAK,IAAIqG,EAAQ,EAAGA,EAAQgO,EAASrR,OAAQqD,IAC3CrG,EAAQuG,KAAK,CACXmG,MAAO2H,EAAShO,KAGpBmG,EAAcxM,QAAUA,CAC1B,CAGF,MACMsU,EAAmBL,EADCzH,EAAc1J,kBAGpCwR,EAAmB,EACrBpT,KAAKqT,kBAAkB3N,EAAQ0N,EAAkBL,GACxCK,EAAmB,GAC5BpT,KAAKsT,eAAe5N,EAAQ0N,GAG9BxB,EAAM9I,KAAKtN,KAAKkK,GAAQlK,KAAO8P,EAAcjH,YAC/C,CAEQiP,eAAe5N,EAAgB0N,GACrC,IAAI3H,EAAe2H,EACnB,KAAO3H,EAAe,GACpBzL,KAAK+K,WAAWwI,cAAc7N,GAC9B+F,GAEJ,CAEQ4H,kBACN3N,EACA0N,EACAL,GAEA,IAAK,IAAI5N,EAAQ,EAAGA,EAAQiO,EAAkBjO,IAC5CnF,KAAK+K,WAAWsE,iBACd3J,EAAO,UAADzB,OACI8O,EAAoB5N,GAGpC,CAEQ4M,oBAAoByB,GAC1B,IAAK,IAAIrO,EAAQ,EAAGA,EAAQqO,EAAQ1R,OAAQqD,IAAS,CACnD,MAAMO,EAAS8N,EAAQrO,GACjBuC,EAAO1H,KAAK+K,WAAWmE,cAAcxJ,GAC3C1F,KAAK+K,WAAWoE,aAAa,QAAUzJ,GACvC,MAAM0J,EAAiB1H,EAAK7I,OAAgB,QAAEyI,YAAYO,MACvDL,GAAeO,OAAOP,EAAWE,QAAUK,OAAOL,EAAKlM,KAAK8C,YAEzD8Q,GACJpP,KAAK+K,WAAWsE,iBACdxM,OAAOuM,EAAe1H,MACtB0H,EAAepH,MAGrB,CACF,CAEQyL,uBAAuBnK,GAC7B,OAAOA,EAAIlE,QAAQ,gBAAO,GAC5B,CAEQsO,gBAAgBpK,GACtB,OAAOA,EAAIlE,QAAQ,SAAU,GAC/B,CAEQyM,oBAAoB/S,EAAmB6U,GAC7C,IAAK,IAAIxO,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IAAS,CACnD,MAAMvC,EAAS9D,EAAQqG,GAEjByO,EADwB5T,KAAK+K,WAAWnC,SAASA,SAChCE,KAAKtN,KAAKqH,OAAOD,EAAOE,WAAWtH,KACpDqY,EAAO7T,KAAKyT,uBAChB7Q,EAAO4I,MAAMkC,cAAcC,QAE7BiG,EAASrV,KAAOoV,EAAa,IAAMtK,EAAQwK,GAC3CD,EAASrV,KAAOyB,KAAK0T,gBAAgBE,EAASrV,MAC9CqV,EAASpV,YAAcoE,EAAOpE,aAAe,EAC/C,CACF,CAEQ2T,iBACNrT,EACA4M,EACApN,EACAwV,EACAvI,GAEA,MAAMkC,EAAe,IAAI3O,GAEzB,IAAK,IAAIqG,EAAQ,EAAGA,EAAQsI,EAAa3L,OAAQqD,IAAS,CACxDnF,KAAK+K,WAAWwI,cAAcjV,GAE9B,MAAMsE,EAAS6K,EAAatI,GACtB0O,EAAO7T,KAAKyT,uBAAuBhG,EAAatI,GAAOqG,OAC7D,IAAIjN,EAAOmN,EAASnN,KAAO,IAAM8K,EAAQwK,GACzCtV,EAAOyB,KAAK0T,gBAAgBnV,GAE5B,MAAMC,EAAcoE,EAAOpE,aAAe,GACpCjB,EAAamO,EAAS3J,eACtBrD,EAAUgN,EAAShN,QAEnBkP,EAAgB,IAAIzP,EAAc,CACtCG,WACAC,OACAC,cACAjB,aACAmB,YAGFkE,EAAOE,SAAW9C,KAAKqL,kBACrBuC,EACAtP,EACA6G,EAAQ2O,EACRvI,GACA4C,UACJ,CACA,OAAOV,CACT,EClQK,MAAMsG,GAIX3V,YAAY4V,EAAoBtV,GAAkB,KAH1CsV,cAAQ,OACRtV,aAAO,EAGbsB,KAAKgU,SAAWA,EAChBhU,KAAKtB,QAAUA,EACfsB,KAAKiU,WACP,CAEAA,YACEjU,KAAKkU,sBACL,MAAM7M,EAAOvH,OAAOuH,KAAKrH,KAAKgU,UAC9B,IAAK,MAAMvN,KAAOY,EAAM,CACtB,MAAM,QAAEvI,EAAO,KAAEtD,EAAI,OAAEqD,GAAWmB,KAAKgU,SAASnR,OAAO4D,IACvDzG,KAAKgU,SAASnR,OAAO4D,IAAMxD,GAAKJ,OAAO4D,GACvCzG,KAAKmU,6BAA6BtV,EAAQwI,GAC1C7L,EAAK+C,KAAOyB,KAAKoU,kBAAkB5Y,EAAK+C,MACxC/C,EAAKsD,QAAUkB,KAAKqU,iBAAiB7Y,EAAKsD,SAAW,GAAIA,GACzDtD,EAAKqD,OAASmB,KAAKsU,iBAAiB9Y,EAAK+B,WAAY/B,EAAKqD,QACpDmB,KAAKtB,UACTlD,EAAKkD,QAAUsB,KAAKtB,SAEjBlD,EAAKwD,YAQHxD,EAAKwD,YAAYiP,kBACpBzS,EAAKwD,YAAYiP,gBAAkB,IARrCzS,EAAKwD,YAAc,CACjB8O,YAAa,EACbC,QAAS,GACTC,IAAK,GACLC,gBAAiB,GAOvB,CACF,CAEAiG,sBACE,MAAM7M,EAAOvH,OAAOuH,KAAKrH,KAAKgU,UAC9B,IAAK,MAAMvN,KAAOY,EAAM,CACtB,MAAM,OAAExI,EAAM,QAAEC,EAAO,KAAEtD,GAASwE,KAAKgU,SAASnR,OAAO4D,IAEvD,GADAzG,KAAKgU,SAASnR,OAAO4D,IAAMxD,GAAKJ,OAAO4D,GACnCjL,EAAK+B,aAAeE,EAAYgB,YAAa,CAC/C,MAAM8V,EAASzU,OAAOuH,KAAKxI,GAC3B,IAAK,MAAM2V,KAASD,EAAQ,CAC1B,MACMjN,EAAc,IADNzI,EAAO2V,GACSlN,aAC9B,IAAK,MAAM+K,KAAQ/K,EAAa,CAC9B,MACMmN,EADOzU,KAAKgU,SAASnR,OAAOwP,EAAK3K,OACtB5I,QAAQuT,EAAKrK,OAAS,IACnCyM,IACFA,EAAInN,YAAcmN,EAAInN,YAAYtE,QAC/B2G,GAAM9G,OAAO8G,EAAEjC,QAAU7E,OAAO4D,KAGvC,QAEO5H,EAAO2V,EAChB,CACF,MAAO,GAGLhZ,EAAK+B,aAAeE,EAAYuD,SAChC,CACA,MAAM0T,EAAU5U,OAAOuH,KAAKvI,GAC5B,IAAK,MAAM6V,KAAUD,EAAS,CAC5B,MACMpN,EAAc,IADLxI,EAAQ6V,GACQrN,aAC/B,IAAK,MAAM+K,KAAQ/K,EAAa,CAC9B,MACMsN,EADO5U,KAAKgU,SAASnR,OAAOwP,EAAK3K,OACtB5I,QAAQuT,EAAKzP,QAAU,IACpCgS,IACFA,EAAItN,YAAcsN,EAAItN,YAAYtE,QAC/B0G,GAAM7G,OAAO6G,EAAEhC,QAAU7E,OAAO4D,KAGvC,QAEO3H,EAAQ6V,EACjB,CACF,CACF,CACF,CAEAN,iBAAiB9B,EAAuBzT,GACtC,MAAMuI,EAAOvH,OAAOuH,KAAKvI,GACnB+V,EAAe7U,KAAK8U,iBAAiBvC,GACvB,IAAhBlL,EAAKvF,QAAwC,IAAxB+S,EAAa/S,QACpC+S,EAAaxP,KAAK,CAChBmG,MAAO,aAGX,IAAK,IAAIrG,EAAQ,EAAGA,EAAQkC,EAAKvF,OAAQqD,IAAS,CAChD,MAAMvC,EAAS9D,EAAQuI,EAAKlC,IAC5B,GAAIvC,EAAO0E,aAAiB1E,EAAO0E,YAAYxF,OAAQ,CACrD,MAAM4D,EAAS9C,EAAO0E,YAAY,GAAGI,KAC/BqN,EAAaF,EAAahN,MAC9B,CAAC4K,EAAGuC,IAAgBA,IAAgB7P,IAElC4P,IACFA,EAAWjS,SAAWiF,OAAOrC,GAC7BqP,EAAW7G,WAAalO,KAAKiV,kBAAkBvP,GAEnD,CACF,CACA,MAAO,IAAImP,EACb,CAEAV,6BACEtV,EACAkK,GAEA,MAAM1B,EAAOvH,OAAOuH,KAAKxI,GAEzB,IAAK,MAAM4H,KAAOY,EAAM,CACtB,MAAM,YAAEC,GAAgBzI,EAAO4H,GACzByO,EAAiBpV,OAAOuH,KAAKC,GACnC,IAAK,MAAM6N,KAAWD,EACpB,GAAI5N,EAAYzE,OAAOsS,IAAW,CAChC,MAAM,KAAEzN,GAASJ,EAAYzE,OAAOsS,IAC/BpM,EAAavL,SAASuK,OAAOL,KAChCJ,EAAY8B,OAAOvG,OAAOsS,GAAU,EAExC,CAEJ,CACF,CAEAb,iBAAiB/W,EAAyB6X,GAOxC,OANI7X,IAAeE,EAAYmG,qBAAuBwR,IACpDA,EAAWvR,UAAYuR,EAAWvR,UAAUlB,KAAKmB,IAC/CA,EAASuR,UAAW,EACbvR,MAGJsR,CACT,CAEAN,iBAAiBvC,GACf,OAAOA,EAAY5P,KAAKC,IACtBA,EAAOE,cAAWrD,EAClBmD,EAAOsL,WAAa,GACbtL,IAEX,CAEAqS,kBAAkBvP,GAChB,GAAI1F,KAAKgU,SAAStO,GAAS,OAAO1F,KAAKgU,SAAStO,GAAQlK,KAAK+C,IAC/D,CAEA+W,cACE,OAAOtV,KAAKgU,QACd,CAEAI,kBAAkB7V,GAChB,OAAO8K,EAAQ9K,EAAKmP,cAAcC,QAAQvI,QAAQ,KAAM,GAC1D,E,oEC9JF,MAAMmQ,GAASC,+BAqDFC,GAAmBnZ,UAI9B,MACMoZ,EAAelZ,aAAaC,QAAQ,iBACpCF,EAAQC,aAAaC,QAAQ,SAEnC,GAAMiZ,EAAc,CAClB,MAAMC,QAAaC,MAAML,GALZ,eAK6B,CACxCM,OAAQ,OACRC,QAAS,CACP,eAAgB,mBAChBC,QAASL,EACTM,cAAoB,OAALzZ,QAAK,IAALA,IAAS,MAI5B,aAAaoZ,EAAKM,MACpB,GAuBWC,GAAe5Z,UAC1B,MAEMqZ,QAAaC,MAAML,GAFV,aAE2B,CACxCM,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3BK,KAAM9T,KAAKC,UAAU8T,KAGvB,aAAaT,EAAKM,MAAM,EAIbI,GAAgB/Z,UAC3B,MAEMoZ,EAAelZ,aAAaC,QAAQ,iBACpCF,EAAQC,aAAaC,QAAQ,SAE7BiZ,GAAkBnZ,SAChBqZ,MAAML,GANC,cAMgB,CAC3BM,OAAQ,OACRC,QAAS,CACP,eAAgB,mBAChBC,QAASL,EACTM,cAAezZ,KAKrBC,aAAa8Z,WAAW,SACxB9Z,aAAa8Z,WAAW,gBAAgB,EClHpCR,GAAU,IAAIS,QAgBPC,GAAeA,CAACC,EAActZ,KACrC2Y,GAAQY,IAAID,GACdX,GAAQa,IAAIF,EAAMtZ,GAElB2Y,GAAQc,OAAOH,EAAMtZ,EACvB,EA0CF,SAAS0Z,GAA2Bta,GAClC,MAAM,IAAEua,GAAaC,aAAWxa,GAC1Bya,EAAmBC,aAAaH,GAEtC,OAAOI,aAAeF,EAAkB,oBAC1C,CAEA1a,eAAe6a,KACb,MAAMC,QAA6B3B,KACnC,GAAM2B,EAIJ,OAHA5a,aAAa6a,QAAQ,QAASD,EAAqB7a,OACnDC,aAAa6a,QAAQ,gBAAiBD,EAAqBE,eAEpDF,CAEX,CAEA9a,eAAeib,GAAkBpb,QDjBXG,WACpB,MACMoZ,EAAelZ,aAAaC,QAAQ,iBACpCF,EAAQC,aAAaC,QAAQ,SAE7BiZ,GAAkBnZ,SAChBqZ,MAAML,GALC,SAKgB,CAC3BM,OAAQ,OACRC,QAAS,CACP,eAAgB,mBAChBC,QAASL,EACTM,cAAezZ,KAKrBC,aAAa8Z,WAAW,SACxB9Z,aAAa8Z,WAAW,gBAAgB,ECClCkB,GAENrb,EAAS,CACPb,KAAM,YACNE,KAAM,CAAEX,QAAQ,IAEpB,CAOO,MAAMob,GAAO3Z,MAClBuZ,EACA7R,EACA7H,EACAga,EACAL,KAEA,IACE,MAAMvZ,QApEVD,iBACE,MAAMC,EAAQC,aAAaC,QAAQ,SAC7BiZ,EAAelZ,aAAaC,QAAQ,iBAC1C,IAAIgb,GAAoC,EAExC,GAAM/B,EAAc,CAClB,MAAMsB,EAAmBH,GAA2BnB,GAC9CgC,EAAMC,aAAW,IAAIC,KATE,KAW7B,GAAIC,aAAoBb,EAAkBU,GAXb,IAW8C,CAAC,IAADI,EACzE,MAAMC,QAA6BZ,KACnCM,EAA6C,QAA9BK,EAAuB,OAApBC,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBxb,aAAK,IAAAub,IAC/C,CACF,CAEA,GAAMvb,EAAO,CACX,MAAMya,EAAmBH,GAA2Bta,GAEpD,GAAKyb,aAAShB,GAIZS,EAAkBlb,MAJa,CAAC,IAAD0b,EAC/B,MAAMF,QAA6BZ,KACnCM,EAA6C,QAA9BQ,EAAuB,OAApBF,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBxb,aAAK,IAAA0b,IAC/C,CAGF,CAEA,OAAOR,CACT,CAyCwBS,GAEf3b,SACGgb,GAAkBpb,GAGpBI,IACJia,GAAa,eAAgB,oBAC7BA,GAAa,gBAAiBja,IAG5B,YAAY4b,KAAKnU,IACnBwS,GAAa,YAnHIhB,wCAsHf,0BAA0B2C,KAAKnU,IAAQ8R,IACzCU,GAAa,eAAgBV,EAAQsC,YACrC5B,GAAa,eAAgBV,EAAQuC,aAGvC,MAAMC,EAxHaC,EAAQ1C,EAAiBM,KACvC,CACLN,SACAC,QAASA,GACT0C,MAAO,WACPrC,KAAM9T,KAAKC,UAAU6T,KAmHDoC,CAAyB1C,EAAQM,GAC/C/R,OAhHUqU,EAClBzU,EACAsU,IACsB1C,MAhBTJ,+BAgBwBxR,EAAKsU,GA6GnBG,CAAYzU,EAAKsU,GAEtC,IAAKlU,EAAOsU,GAAI,CACd,MAAMC,QAA6BvU,EAAO6R,OAC1C,MAAM,IAAI2C,MAvGKC,KACnB,GAAIA,GAAeA,EAAYC,QAAUD,EAAYC,OAAOH,OAAQ,CAClE,MAAM,OAAEA,GAAWE,EAAYC,OAC/B,OAASH,EAAO7W,OAAS6W,EAAO,GAAGG,OAAS,EAC9C,CACA,MAAO,EAAE,EAkGWC,CAAYJ,GAC9B,CAGA,MAAO,CACLK,WAF4B5U,EAAO6R,OAGnCgD,WAAY7U,EAAO8U,OACnBC,SAAS,EACTC,QAAS,GAEb,CAAE,MAAOC,GACP,MAAO,CACLL,KAAM,CAAC,EACPC,WAAY,IACZE,SAAS,EACTC,QAASC,EAAMnV,QAEnB,GC1IIoV,GAAU,OAQHC,GAAgBjd,MAC3B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMqV,GAAO,KAAArV,OAAImS,EAAQoD,SAAQ,iBAC7C,aAAavD,GAA6B,MAAO5a,EAAQc,EAAS,EAiBvDsd,GAAWnd,MACtB8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMqV,GAAO,KAAArV,OAAImS,EAAQoD,UACrC,aAAavD,GAAuB,MAAO5a,EAAQc,EAAS,EAGjDud,GAAmBpd,eAC9Bkd,EACArd,GAGuD,IAFvDwd,EAAI9U,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAG,IACP+U,EAAK/U,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAG,IAER,MAAMxJ,EAAM,GAAA4I,OAAMqV,GAAO,KAAArV,OAAIuV,EAAQ,iBAAAvV,OAAgB0V,EAAI,WAAA1V,OAAU2V,GACnE,aAAa3D,GAAgC,MAAO5a,EAAQc,EAC9D,EAEa0d,GAAoBvd,MAC/B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMqV,GAAO,KAAArV,OAAImS,EAAQ0D,QAAO,WAC5C,aAAa7D,GAAU,OAAQ5a,EAAQc,EAAUia,EAAQ,EChErDkD,GAAU,YAiBThd,eAAeyd,GACpBC,EACA7d,GAEA,MAAMd,EAAM,GAAA4I,OAAMqV,GAAO,KAAArV,OAAI+V,GAC7B,aAAa/D,GAAK,MAAO5a,EAAQc,EACnC,CAEOG,eAAe2d,GACpB9d,GAEA,MAAMd,EAAM,GAAA4I,OAAMqV,IAClB,aAAarD,GAAK,MAAO5a,EAAQc,EACnC,CCxBO,MAAM+d,GAAY5d,MACvB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQ+D,YAC1D,aAAalE,GACX,OACA5a,EACAc,EACAia,EAAQA,QACT,EAGUgE,GAAc9d,MACzB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQ+D,YAC1D,aAAalE,GAA2B,QAAS5a,EAAQc,EAAUia,EAAQ,EAGhEiE,GAAW/d,MACtB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQkE,WAC1D,aAAarE,GAAwB,MAAO5a,EAAQc,EAAS,EAGlDoe,GAAsBje,MACjC8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQkE,WAC1D,aAAarE,GAAsB,MAAO5a,EAAQc,EAAS,EAGhDqe,GAAiBle,MAC5Bwd,EACA3d,KAEA,MAAMd,EAAM,QAAA4I,OAAW6V,EAAO,WAC9B,aAAa7D,GAAsB,MAAO5a,EAAQc,EAAS,EAGhDse,GAAqBne,MAChC8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQkE,WAC1D,aAAarE,GAAwB,SAAU5a,EAAQc,EAAS,EAGrDue,GAAmBpe,MAC9B8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQkE,WAE1D,aAAarE,GAAwB,QAAS5a,EAAQc,EAAS,EAGpDwe,GAAmBre,MAC9B8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQkE,WAC1D,aAAarE,GAAsB,OAAQ5a,EAAQc,EAAS,EAGjDye,GAActe,MACzB8Z,EACAja,KAEA,MAAM,SAAEqd,EAAQ,WAAEW,EAAU,wBAAEU,GAA4BzE,EACpD/a,EAAM,QAAA4I,OAAWuV,EAAQ,YAAAvV,OAAWkW,GAC1C,aAAalE,GAAW,SAAU5a,EAAQc,EAAU0e,EAAwB,EC1FjEjgB,GAAe,CAC1BmQ,WAAY,KACZ+P,YAAa,KACbC,qBAAqB,EACrBC,gBAAgB,EAChBC,sBAAsB,EACtBC,sBAAsB,EACtBC,6BAA6B,EAC7BC,4BAA4B,EAC5BC,yBAAyB,EACzB3f,wBAAwB,EACxBgQ,SAAU,KACV4P,kBAAmB,CACjBhgB,KAAM,UACN4I,QAAS,GACTqX,MAAM,GAERC,QAAS,GAGTC,QAAS,GACTC,UAAW,CAAC,EACZC,WAAY,KACZC,eAAgB,GAChBC,SAAS,EAETC,kBAAkB,EAClBC,oBAAoB,EACpBC,uBAAuB,EACvBC,qBAAqB,EACrBC,wBAAwB,EACxBC,wBAAwB,EACxBC,2BAA2B,EAE3BC,iCAAiC,EACjCC,iCAAiC,EAEjCC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,4BAA4B,EAE5BC,qBAAqB,EACtBC,uBAAuB,EACvBC,uBAAuB,EACvBC,qBAAqB,EAEpBC,WAAW,EACXC,UAAW,GACXC,SAAU,CACRC,YAAa,GACbC,YAAa,GACbC,WAAY,GACZC,YAAa,GACbC,WAAY,IAEdC,UAAW,GACXC,YAAa,GACb3M,IAAK,CACH4M,IAAK,GACLhE,SAAU,GACViE,OAAQ,GACRnR,QAAS,GAEXoR,kBAAmB,GACnBC,gBAAiB,GACjBC,sBAAsB,EACtBC,mBAAoB,CAAC,EACrBC,kBAAmB,CAAC,GAGf,SAASC,GACd3iB,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,UAML,IAAK,aAEL,IAAK,iBAoBL,IAAK,uBAEL,IAAK,mBAEL,IAAK,oBAEL,IAAK,qBAEL,IAAK,yBAEL,IAAK,wBAQL,IAAK,sBAwBL,IAAK,mBAEL,IAAK,YAEL,IAAK,eAEL,IAAK,uBAEL,IAAK,qBAEL,IAAK,aAEL,IAAK,oBACH,OAAOC,GAAiBF,EAAOC,MAAMF,EAAOC,EAAOG,MAjFrD,IAAK,sBAEL,IAAK,uBAML,IAAK,kBAEL,IAAK,uBAEL,IAAK,wBAEL,IAAK,8BAEL,IAAK,+BAEL,IAAK,6BAEL,IAAK,8BAEL,IAAK,0BAEL,IAAK,2BAcL,IAAK,sBAEL,IAAK,uBAEL,IAAK,wBAIL,IAAK,yBAEL,IAAK,0BAEL,IAAK,yBAEL,IAAK,0BAEL,IAAK,4BAEL,IAAK,6BAEL,IAAK,kCAEL,IAAK,mCAEL,IAAK,kCAEL,IAAK,mCAEL,IAAK,gBAgBL,IAAK,6BAEL,IAAK,4BAEL,IAAK,6BAEL,IAAK,8BAEL,IAAK,6BAEL,IAAK,8BAEL,IAAK,sBAEL,IAAK,uBAEP,IAAK,wBAEL,IAAK,wBAEL,IAAK,yBAEL,IAAK,yBAEL,IAAK,sBAEL,IAAK,uBACJ,OAAOD,GAAiBF,EAAOC,MAAMF,GACpC,QACE,OAAOA,EAEb,CAEA,MAAMG,GAAmB,CACvByiB,QAASA,CAAC5iB,EAA0BI,KAC3B,IAAKJ,EAAO2P,YAAgB,OAAJvP,QAAI,IAAJA,OAAI,EAAJA,EAAMuP,aAAc3P,EAAM2P,aAG3D8S,mBAAoBA,CAClBziB,EACAI,KAEO,IAAKJ,EAAOyiB,mBAAwB,OAAJriB,QAAI,IAAJA,OAAI,EAAJA,EAAMqiB,qBAG/CD,qBAAsBA,CACpBxiB,EACAI,KAEO,IAAKJ,EAAOwiB,qBAA0B,OAAJpiB,QAAI,IAAJA,OAAI,EAAJA,EAAMoiB,uBAGjDK,WAAYA,CAAC7iB,EAA0BI,KAC9B,IAAKJ,EAAOogB,QAAa,OAAJhgB,QAAI,IAAJA,OAAI,EAAJA,EAAMggB,UAGpCsB,UAAWA,CAAC1hB,EAA0BI,KAC7B,IAAKJ,EAAO0hB,WAAW,IAGhCoB,aAAcA,CACZ9iB,EACAI,KAEO,IAAKJ,EAAO0hB,WAAW,IAGhCd,sBAAuBA,CACrB5gB,EACAI,KAEO,IAAKJ,EAAO4gB,uBAAuB,IAG5CmC,oBAAqBA,CACnB/iB,EACAI,KAEO,IAAKJ,EAAO2gB,oBAAoB,IAGzCA,mBAAoBA,CAClB3gB,EACAI,KAEO,IAAKJ,EAAO2gB,oBAAoB,IAGzCqC,uBAAwBA,CACtBhjB,EACAI,KAEO,IAAKJ,EAAO4gB,uBAAuB,IAG5CjB,oBAAqBA,CACnB3f,EACAI,KAEO,IAAKJ,EAAO2f,qBAAqB,IAG1CsD,qBAAuBjjB,IACd,IAAKA,EAAO2f,qBAAqB,IAG1CuD,WAAYA,CAACljB,EAA0BI,KAC9B,IAAKJ,KAAUI,IAGxBwf,eAAgBA,CACd5f,EACAI,KAEO,IACFJ,EACH4f,gBAAgB,EAChBtP,UAAc,OAAJlQ,QAAI,IAAJA,OAAI,EAAJA,EAAMkQ,WAAY,KAC5BhG,OAAY,OAAJlK,QAAI,IAAJA,OAAI,EAAJA,EAAMkK,SAIlB6Y,gBAAkBnjB,IACT,IAAKA,EAAO4f,gBAAgB,IAGrCE,qBAAuB9f,IACd,IAAKA,EAAO8f,sBAAsB,IAG3CsD,sBAAwBpjB,IACf,IAAKA,EAAO8f,sBAAsB,IAG3CC,4BAA8B/f,IACrB,IAAKA,EAAO+f,6BAA6B,IAGlDsD,6BAA+BrjB,IACtB,IAAKA,EAAO+f,6BAA6B,IAGlDC,2BAA6BhgB,IACpB,IAAKA,EAAOggB,4BAA4B,IAGjDsD,4BAA8BtjB,IACrB,IAAKA,EAAOggB,4BAA4B,IAGjDC,wBAA0BjgB,IACjB,IAAKA,EAAOigB,yBAAyB,IAG9CsD,yBAA2BvjB,IAClB,IAAKA,EAAOigB,yBAAyB,IAG9CY,oBAAsB7gB,IACb,IAAKA,EAAO6gB,qBAAqB,IAG1C2C,qBAAuBxjB,IACd,IAAKA,EAAO6gB,qBAAqB,IAG1CE,uBAAyB/gB,IAChB,IAAKA,EAAO+gB,wBAAwB,IAG7C0C,wBAA0BzjB,IACjB,IAAKA,EAAO+gB,wBAAwB,IAG7CC,0BAA4BhhB,IACnB,IAAKA,EAAOghB,2BAA2B,IAGhD0C,2BAA6B1jB,IACpB,IAAKA,EAAOghB,2BAA2B,IAGhDF,uBAAyB9gB,IAChB,IAAKA,EAAO8gB,wBAAwB,IAG7C6C,wBAA0B3jB,IACjB,IAAKA,EAAO8gB,wBAAwB,IAG7CG,gCAAkCjhB,IACzB,IAAKA,EAAOihB,iCAAiC,IAGtD2C,iCAAmC5jB,IAC1B,IAAKA,EAAOihB,iCAAiC,IAGtDC,gCAAkClhB,IACzB,IAAKA,EAAOkhB,iCAAiC,IAGtD2C,iCAAmC7jB,IAC1B,IAAKA,EAAOkhB,iCAAiC,IAGtD4C,0BAA4B9jB,IACnB,IAAKA,EAAO8jB,2BAA2B,IAGhDC,2BAA6B/jB,IACpB,IAAKA,EAAO8jB,2BAA2B,IAGhD3C,2BAA6BnhB,IACpB,IAAKA,EAAOmhB,4BAA4B,IAGjDC,0BAA4BphB,IACnB,IAAKA,EAAOohB,2BAA2B,IAGhDC,2BAA6BrhB,IACpB,IAAKA,EAAOqhB,4BAA4B,IAEjD2C,4BAA8BhkB,IACrB,IAAKA,EAAOmhB,4BAA4B,IAGjD8C,2BAA6BjkB,IACpB,IAAKA,EAAOohB,2BAA2B,IAGhD8C,4BAA8BlkB,IACrB,IAAKA,EAAOqhB,4BAA4B,IAGjDX,iBAAkBA,CAChB1gB,EACAI,KAEO,IAAKJ,EAAO0gB,kBAAkB,IAGvCyD,kBAAmBA,CACjBnkB,EACAI,KAEO,IAAKJ,EAAO0gB,kBAAkB,IAGvCb,qBAAsBA,CACpB7f,EACAI,KAEO,IAAKJ,EAAO6f,sBAAsB,IAG3CuE,sBAAwBpkB,IACf,IAAKA,EAAO6f,sBAAsB,IAG3C2B,sBAAwBxhB,IACf,IAAKA,EAAOwhB,uBAAuB,IAG5CD,sBAAwBvhB,IACf,IAAKA,EAAOuhB,uBAAwB,IAE7C8C,uBAAyBrkB,IAChB,IAAKA,EAAOwhB,uBAAuB,IAG5C8C,uBAAyBtkB,IAChB,IAAKA,EAAOuhB,uBAAwB,IAG7CgD,cAAgBvkB,IACP,IAAKA,EAAOsgB,UAAW,CAAC,IAGjCgB,oBAAsBthB,IACb,IAAKA,EAAOshB,qBAAqB,IAG1CkD,qBAAuBxkB,IACd,IAAKA,EAAOshB,qBAAqB,IAG1CG,oBAAsBzhB,IACb,IAAKA,EAAOyhB,qBAAqB,IAG1CgD,qBAAuBzkB,IACd,IAAKA,EAAOyhB,qBAAqB,IAG1CiB,kBAAmBA,CACjB1iB,EACAI,KAEO,IAAKJ,EAAO0iB,kBAAmBtiB,IAGxCskB,iBAAkBA,CAChB1kB,EACAI,KAEA,GAAQ,OAAJA,QAAI,IAAJA,KAAMkgB,UAAW,CACnB,MAAMA,EAAY,IAAKtgB,EAAMsgB,WAC7B,IAAK,MAAMjV,KAAOjL,EAAKkgB,UACfA,EAAUjV,UACPiV,EAAUjV,GAEjBiV,EAAUjV,GAAOjL,EAAKkgB,UAAUjV,GAGpC,MAAO,IACFrL,EACHsgB,YAEJ,CACA,OAAOtgB,CAAK,G,uBCjeT,MAAM2kB,GAAYC,KAAOC,IAAGC,QAAAC,aAAA,0P,gBCA5B,MAAMC,GAAUJ,KAAOC,IAAGC,QAAAC,aAAA,oZAuBhBlkB,GAAWA,EAAMokB,MAAQpkB,EAAMokB,MAAQ,SAQ3CC,GAAiBN,KAAOC,IAAGM,QAAAJ,aAAA,yNAiB3BK,GAAgBR,KAAOC,IAAGQ,QAAAN,aAAA,wSAsB1BO,GAAkBV,KAAOC,IAAGU,QAAAR,aAAA,yM,gQC/ClC,MAAMS,GAA4C,CACvDC,IAAK,CACHC,OAAQ,UACRC,WAAY,WAEdC,KAAM,CACJF,OAAQ,UACRC,WAAY,WAEdE,OAAQ,CACNH,OAAQ,UACRC,WAAY,WAEdG,KAAM,CACJJ,OAAQ,UACRC,WAAY,WAEdI,OAAQ,CACNL,OAAQ,UACRC,WAAY,Y,sDCDDK,OApC2BnlB,GAEtColB,eAAA,OACEC,MAAM,6BACNhV,QAAQ,MACRiV,QAAQ,cACRC,MAAM,KACNC,OAAO,KAAIvlB,SAAA,CAEXe,cAAA,SAAAf,SAAO,qBACPmlB,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,QACEgG,GAAG,QACHye,SAAS,UACTC,EAAE,srIAEJ1kB,cAAA,QACEgG,GAAG,QACHye,SAAS,UACTC,EAAE,6hkBAEJ1kB,cAAA,QACEgG,GAAG,QACHye,SAAS,UACTC,EAAE,2FAEJ1kB,cAAA,QACEgG,GAAG,QACHye,SAAS,UACTC,EAAE,iyiB,qBCxBGC,I,qBAAAA,GAN8B3lB,IAC3C,MAAM,SAAEC,GAAaD,EAErB,OAAOolB,eAACQ,KAAM,IAAK5lB,EAAKC,SAAA,CAAE,IAAEA,EAAS,MAAU,E,UCL1C,MAAM4lB,GAAmB9B,aAAO+B,KAAP/B,CAAeE,QAAAC,aAAA,ikBAkClC6B,GAAYhC,aAAO4B,IAAWK,MAAM,CAC/C/lB,SAAU,cADa8jB,CAEvBO,QAAAJ,aAAA,QAEW+B,GAAclC,aAAO4B,IAAWK,MAAM,CACjD/lB,SAAU,uBADe8jB,CAEzBS,QAAAN,aAAA,QAEWgC,GAAcnC,aAAO4B,IAAWK,MAAM,CACjD/lB,SAAU,0BADe8jB,CAEzBW,QAAAR,aAAA,QAEWiC,GAAepC,aAAO4B,IAAWK,MAAM,CAClD/lB,SAAU,YADgB8jB,CAE1BqC,QAAAlC,aAAA,QAEWmC,GAAetC,aAAO4B,IAAWK,MAAM,CAClD/lB,SAAU,0BADgB8jB,CAE1BuC,QAAApC,aAAA,QAEWqC,GAAYxC,aAAO4B,IAAWK,MAAM,CAC/C/lB,SAAU,WADa8jB,CAEvByC,QAAAtC,aAAA,Q,4IChDauC,I,0CAAAA,GANwBzmB,IACrC,MAAM,SAAEC,GAAaD,EAErB,OAAOgB,cAAC0lB,KAAI,IAAK1mB,EAAKC,SAAGA,GAAgB,ECLpC,MAAM0mB,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,kUCOxC0C,IDcyB7C,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,oDAKhBH,aAAO2C,KAAP3C,CAAYS,QAAAN,aAAA,4GAOVH,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,4DAMfH,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,iDAKPH,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,4HAWjBH,KAAOC,IAAGwC,QAAAtC,aAAA,oEAOVH,KAAOC,IAAG6C,QAAA3C,aAAA,iEAQfH,aAAO2C,KAAP3C,CAAY+C,QAAA5C,aAAA,iHAQVH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBkD,QAAA/C,aAAA,QAEyBH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BmD,QAAAhD,aAAA,mDAKxBH,KAAOC,IAAGmD,QAAAjD,aAAA,iJAUTH,KAAOC,IAAGoD,QAAAlD,aAAA,kKAWdH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BsD,QAAAnD,aAAA,uGCrGrCoD,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,KAEA,IAAI2nB,GAAGla,GAAGzG,GAAS4gB,GAAM/kB,GAASglB,GAAWC,GAIzCC,GAAOC,GAHPC,GAAmB,GACnBC,GAAsB,GACtBC,GAAsB,GAEtBC,GAAa,GAEbzb,GAAgB,CAAC,EAoNN0b,OA5MVC,IAAmD,IAAlD,OAAEC,EAAM,KAAEC,EAAI,YAAEC,EAAW,OAAEhf,EAAM,MAAEtK,GAAOmpB,EAChDthB,GAAKyC,EACLkD,GAAWxN,EAAM2P,WAAWnC,SAASA,SACrCsb,GAAY,GACZC,GAAe,GACfC,GAAe,GACfC,GAAa,GAEb,MAAMM,EAAYC,uBAAY,KAC5B,GAAIJ,EAAQ,CACV,IAAIhpB,EAAO,IAAIgpB,EAAOK,cAAcC,UACpCtpB,EAAKupB,UAAU,SAAU,MACzBvpB,EAAKupB,UAAU,SAAU,QACzBvpB,EAAKupB,UAAU,SAAU,WAAY,CACnCC,UAAW,aAEbxpB,EAAKypB,QAAQd,IAGb,IAAIe,EAAS,CACX,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEEC,EAAU,CACZ3D,MAAO,IACPC,OAAQ,IACR2D,OAAQ,CACN1d,KAAM,CACJwd,OAAQA,GAEVG,KAAM,CACJC,UAAW,WACXJ,OAAQA,KAMF,IAAIV,EAAOK,cAAcU,OACnCxgB,SAASa,eAAe,oBAEpB4f,KAAKhqB,EAAM2pB,EACnB,IACC,CAACX,IAGEiB,EAAeb,uBAAac,IAChC,GAAIA,EACF,IAAK,IAAItf,EAAI,EAAGA,EAAIsf,EAAM5jB,OAAQsE,IAEG,GAA/Buf,EAAQD,EAAMtf,GAAGwf,YACfC,EAAWH,EAAMtf,GAAG0f,SAAUJ,EAAMtf,GAAG2f,cACzC5B,GAAa9e,KAAK,CAACqgB,EAAMtf,GAAG0f,SAAUJ,EAAMtf,GAAG2f,YAAa,KAIpE,GACC,IA8DH,SAASJ,EAAQ1iB,GAEf,IADA,IAAI0iB,GAAU,EACLK,EAAQ,EAAGA,EAAQ5B,GAAatiB,OAAQkkB,IAC3C5B,GAAa4B,IACX5B,GAAa4B,IAAU/iB,IACzB0iB,GAAU,GAKhB,OADAvB,GAAa/e,KAAKpC,GACX0iB,CACT,CAEA,SAASE,EAAWpc,EAAQuH,GAG1B,IAFA,IACIiV,EAAIC,EADJL,GAAa,EAERM,EAAI,EAAGA,EAAIhC,GAAariB,OAAQqkB,IACvCF,EAAK9B,GAAagC,GAAG,GACrBD,EAAK/B,GAAagC,GAAG,GACjB1c,GAAKwc,GACHjV,GAAKkV,IACPL,GAAa,GAInB,OAAOA,CACT,CAGA,SAASO,EAAcnjB,GACrB,OAAI2F,GAASE,KAAKtN,KAAKyH,GACjB2F,GAASE,KAAKtN,KAAKyH,GAAU,MAC3B2F,GAASE,KAAKtN,KAAKyH,GAAU,KAAQ,KAChC2F,GAASE,KAAKtN,KAAKyH,GAAU,KAAQ,UAFhD,EAKY,EAChB,CAGA,SAASojB,EAAiBpjB,GACxB,GAAI2F,GAASE,KAAKtN,KAAKyH,IACjB2F,GAASE,KAAKtN,KAAKyH,GAAU,MAC3B2F,GAASE,KAAKtN,KAAKyH,GAAU,KAAW,QAC1C,OAAO2F,GAASE,KAAKtN,KAAKyH,GAAU,KAAW,OAKvD,CAEA,OA/GA5G,qBAAU,KACR,GAAImoB,GAAUC,EAGZ,IAFAD,EAAO8B,OAAOC,kBAAkB5B,GAE3BX,GAAQ,EAAGA,GA9EN,EA8EyBA,KAGjC,GAFAK,GAAa,GAEA,GAATL,IAKF,GAJAH,GAAOuC,EAAcnjB,IACrBnE,GAAUunB,EAAiBpjB,IAE3BmhB,GAAa/e,KAAKpC,IACdnE,GAAS,CACX,IAAK4K,GAAI,EAAGA,GAAI5K,GAAQgD,OAAQ4H,KAC9Bqa,GAAUjlB,GAAQ4K,IAAa,SAC/Boa,GAAYsC,EAAcrC,IAC1BE,GAAO,CACL6B,SAAUjC,GACV2C,OAAQvjB,GACR8iB,YAAajC,GACb8B,UAAW7B,IAGbM,GAAWhf,KAAK4e,IAElBC,GAAU7e,KAAKgf,IACfoB,EAAapB,GACf,OAGA,GAAIH,GAAUF,GAAQ,GACpB,IAAKJ,GAAI,EAAGA,GAAIM,GAAUF,GAAQ,GAAGliB,OAAQ8hB,KAI3C,GAHA3gB,GAAKihB,GAAUF,GAAQ,GAAGJ,IAAGgC,UAC7B/B,GAAOuC,EAAcnjB,IACrBnE,GAAUunB,EAAiBpjB,IACvBnE,GAAS,CACX,IAAK4K,GAAI,EAAGA,GAAI5K,GAAQgD,OAAQ4H,KAC9Bqa,GAAUjlB,GAAQ4K,IAAa,SAC/Boa,GAAYsC,EAAcrC,IACtBD,KACFG,GAAO,CACL6B,SAAUjC,GACV2C,OAAQvjB,GACR8iB,YAAajC,GACb8B,UAAW7B,IAGbM,GAAWhf,KAAK4e,KAGpBC,GAAU7e,KAAKgf,IACfoB,EAAapB,GACf,CAKV,GACC,CAACoB,EAAcd,EAAWH,EAAQC,IAsDnCxnB,cAACwpB,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB8D,WAAS,EACTC,SAAS,KACTC,QAASnC,EAAYxoB,SAErBmlB,eAACuB,GAAe,CAAA1mB,SAAA,CACde,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SAAC,2BACzBe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAIhBlqB,cAAA,OAAKgG,GAAG,kBAAkBiD,MAAO,CAAEkhB,UAAW,cAEzC,EC7LEC,OA1Cf,WACE,MAAO7C,EAAQ8C,GAAaC,mBAAS,MAsCrC,OApCAlrB,qBAAU,KACR,IAAKmoB,EAAQ,CACX,MAAMgD,EAAOziB,SAASyiB,KACtB,IAAIC,EAAS1iB,SAASa,eAAe,sBAChC6hB,EAiBH7qB,OAAO4nB,QACP5nB,OAAO4nB,OAAO8B,QACd1pB,OAAO4nB,OAAOK,eAEdyC,EAAU1qB,OAAO4nB,SApBjBiD,EAAS1iB,SAAS2iB,cAAc,UAChCD,EAAOE,IAAM,2CACbF,EAAOxkB,GAAK,qBACZwkB,EAAOG,OAAS,KACVhrB,OAAO4nB,QAAU5nB,OAAO4nB,OAAO8B,SACjC1pB,OAAO4nB,OAAO8B,OAAOxrB,KAAK,UAAW,CACnC+sB,SAAU,CAAC,YAAa,YAG1BjrB,OAAO4nB,OAAO8B,OAAOC,mBAAkB,IACrCe,EAAU1qB,OAAO4nB,UAErB,EAEFgD,EAAKM,YAAYL,GAQrB,CACA,MAAO,KACL,IAAIA,EAAS1iB,SAASa,eAAe,sBACjC6hB,GACFA,EAAOjiB,QACT,CACD,GACA,CAACgf,IAEGA,CACT,ECgLeuD,OAtMf,SAA2B9rB,GACzB,MAAMuoB,EAAS6C,MACT,OACJ3hB,EAAM,KACNgC,EAAI,MACJtM,EAAK,SACLe,EAAQ,cACR6rB,EAAa,cACbrI,EAAa,WACbsI,EAAU,cACVC,EAAa,KACfC,GACIlsB,GACE,WAAEsB,GAAemK,EAAKlM,MAErB4sB,EAAUC,GAAed,mBAAmC,OAC5De,EAAaC,GAAkBhB,oBAAS,GAWzC7C,EAAcA,KAClB2D,EAAY,KAAK,EAObG,EAAiB,WAAwB,IAADC,EAAAC,EAAA,IAAtBC,IAAU9jB,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,KAAAA,UAAA,GAChC,MAAM6G,EACY,QADM+c,EACtBrtB,EAAM2P,kBAAU,IAAA0d,GAAqC,QAArCC,EAAhBD,EAAkB7f,SAASA,SAASE,KAAKtN,KAAKkK,UAAO,IAAAgjB,OAArC,EAAhBA,EAAuDltB,KACzD,GAAIkQ,EAAU,CACZ,MAAMyc,EAAO,IAAIhqB,EAAcuN,GACzBkd,GAAkBtrB,EAAuBC,GAE/C,IAAKorB,EAAY,CAEf,OADgBR,EAAKznB,WAAaynB,EAAKtnB,aACpB+nB,CACrB,CAEA,OAAQA,CACV,CACF,EAEMnE,EAAOoE,QAAQT,GAEfnlB,EAAKwhB,EAAO,sBAAmBhlB,EAC/ByH,EAAQ,CACZxB,SACAgC,QAGIohB,EAAcxtB,IAClB,OAAQA,GACN,IAAK,YACH,OACE2B,cAAC8rB,GAAW,CAEVC,UAAW/rB,cAACgsB,KAAK,IACjB/B,QAASA,KACPxC,IACAsD,EAAc9gB,EAAO9L,EAAMsgB,UAAU,EAEvCwN,SAAUV,GAAe,IAAO,GAAAvkB,OANxB3I,EAAI,YASlB,IAAK,cACH,OACE2B,cAAC8rB,GAAa,CAEZC,UAAW/rB,cAACksB,KAAK,IACjBjC,QAASA,KACPvH,IACAyJ,MAAM,4BACN1E,GAAa,GACb,GAAAzgB,OANM3I,EAAI,YASlB,IAAK,cACH,OACE2B,cAAC8rB,GAAa,CAEZC,UAAW/rB,cAACmkB,GAAW,IACvB8F,QAASA,KAIPqB,GAAe,GACf5I,IACA+E,GAAa,GACb,GAAAzgB,OATM3I,EAAI,YAYlB,IAAK,eACH,OACE2B,cAAC8rB,GAAc,CAEbC,UAAW/rB,cAACosB,KAAQ,IACpBnC,QAASA,KACPgB,EAAchhB,GACdwd,GAAa,EAEfwE,SAAUV,GAAe,IAAUL,EAAK3mB,eAAc,GAAAyC,OAN9C3I,EAAI,YASlB,IAAK,eACH,OACE2B,cAAC8rB,GAAc,CAEbC,UAAW/rB,cAACqsB,KAAW,IACvBpC,QAASA,KArFjB/qB,EAAS,CAAEb,KAAM,gCAuFPopB,GAAa,EAEfwE,SAAUV,GAAe,IAAUL,EAAK3mB,eAAc,GAAAyC,OAN9C3I,EAAI,YASlB,IAAK,YACH,OACE2B,cAAC8rB,GAAW,CAEVC,UAAW/rB,cAACssB,KAAM,IAClBrC,QAASA,KACPe,EAAWviB,GACXgf,GAAa,EAEfwE,SAAUV,KAAiB,GAAAvkB,OANnB3I,EAAI,YASlB,QACE,OAAO,KACX,EAcIkuB,EACJC,IAEAA,EAAMhlB,iBACNglB,EAAM/kB,iBAAiB,EAGzB,OACE2c,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC+pB,KAAU,CACT,mBAAkB/jB,EAClBikB,QAjJeuC,IAAgD,IAADE,EACnB,WAAlB,QAAhBA,EAAAvuB,EAAM2P,kBAAU,IAAA4e,OAAA,EAAhBA,EAAkBC,cAEzBxuB,GACFitB,EAAYoB,EAAMI,cAEtB,EA4IIC,YAAaN,EACbO,UAAWP,EAAqBttB,SAEhCe,cAAC+sB,KAAY,CAACC,SAAS,aAEzBhtB,cAAC8rB,GAAkB,CACjB9lB,GAAIA,EACJwhB,KAAMA,EACN2D,SAAUA,EACVvB,QAASnC,EACTwF,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdC,gBAAiB,CACfF,SAAU,MACVC,WAAY,QACZluB,UAxCSouB,EAED,CACd,YACA,cACA,cACA,eACA,eACA,aARiCA,EAAI3nB,KAAKrH,GAASwtB,EAAWxtB,QA4C3DgtB,GACCrrB,cAACqnB,GAAY,CACXE,OAAQA,EACRC,KAAM6D,EACN5D,YAAaA,IAAM6D,GAAe,GAClC7iB,OAAQA,EACRtK,MAAOA,OAlDEkvB,KAuDnB,EC7LeC,OApByBtuB,IACtC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEgB,cAAA,OACEqP,QAAQ,MACRrJ,GAAG,UACHqe,MAAM,6BACNmJ,WAAW,+BACXjJ,MAAOgJ,GAAQ,OACf/I,OAAQ+I,GAAQ,OAChBjJ,QAAQ,YACRmJ,SAAS,WACTC,KAAMtK,GAAS,UAAUnkB,SAEzBe,cAAA,QAAM0kB,EAAE,qdACJ,EC+BKiJ,OA/CyB3uB,IACtC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACE/U,QAAQ,MACRrJ,GAAG,UACHqe,MAAM,6BACNmJ,WAAW,+BACXjJ,MAAOgJ,GAAQ,OACf/I,OAAQ+I,GAAQ,OAChBjJ,QAAQ,YACRmJ,SAAS,WACTC,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,KAAAf,SACEe,cAAA,KAAGgG,GAAG,cAAa/G,SACjBe,cAAA,QACE0kB,EAAE,+uBAUR1kB,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,UACI,ECrBK4tB,OAtBuB5uB,IACpC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEgB,cAAA,OACEqP,QAAQ,MACRrJ,GAAG,UACHqe,MAAM,6BACNmJ,WAAW,+BACXjJ,MAAOgJ,GAAQ,OACf/I,OAAQ+I,GAAQ,OAChBjJ,QAAQ,YACRmJ,SAAS,WACTC,KAAMtK,GAAS,UAAUnkB,SAEzBe,cAAA,QACE0kB,EAAE,kkFAEA,EC+BKmJ,OAjDkC7uB,IAC/C,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACE/U,QAAQ,MACRrJ,GAAG,UACHqe,MAAM,6BACNmJ,WAAW,+BACXjJ,MAAOgJ,GAAQ,OACf/I,OAAQ+I,GAAQ,OAChBjJ,QAAQ,cACRmJ,SAAS,WACTC,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,KAAAf,SACEe,cAAA,KAAAf,SACEe,cAAA,QACE0kB,EAAE,6+BAYR1kB,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,QACAA,cAAA,UACI,ECzBKstB,OApByBtuB,IACtC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACE/U,QAAQ,MACRrJ,GAAG,UACHqe,MAAM,6BACNmJ,WAAW,+BACXjJ,MAAOgJ,GAAQ,OACf/I,OAAQ+I,GAAQ,OAChBjJ,QAAQ,YACRmJ,SAAS,WACTC,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,QAAM0kB,EAAE,wPAAyP,MAC7P,ECCKoJ,OAjB2B9uB,IACxC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEgB,cAAA,OACEqkB,MAAM,6BACNqJ,KAAMtK,GAAS,UACfmB,MAAOgJ,GAAQ,OACf/I,OAAQ+I,GAAQ,OAChBjJ,QAAQ,YACRyJ,KAAK,MAAK9uB,SAEVe,cAAA,QAAM0kB,EAAE,07CACJ,E,+BCXH,MAQMsJ,GAAc3uB,MACzB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQ0D,QAAO,UACtC,OAAO7D,GAA2B,QAAS5a,EAAQc,EAAUia,EAAQ,E,gBCnBhE,MAAM0L,GAAmB9B,aAAO+B,KAAP/B,CAAeE,QAAAC,aAAA,+KAclC+K,GAAgBlL,KAAOC,IAAGM,QAAAJ,aAAA,8PAoB1BgL,GAAWnL,KAAOoL,OAAM3K,QAAAN,aAAA,qOACpBlkB,GAAWA,EAAMokB,MAAQpkB,EAAMokB,MAAQ,YAc3CgL,GAAOrL,KAAOC,IAAGU,QAAAR,aAAA,8IACblkB,GAAWA,EAAMokB,MAAQpkB,EAAMokB,MAAQ,YC3C3CiL,GAAuB,CAClC,CACEjL,MAAO,cACP7U,MAAO,IAET,CACE6U,MAAO,UACP7U,MAAO,SAET,CACE6U,MAAO,UACP7U,MAAO,WAET,CACE6U,MAAO,UACP7U,MAAO,WAET,CACE6U,MAAO,UACP7U,MAAO,SCrBI,SAAS+f,GAAetvB,GACrC,MAAM,MAAEb,EAAK,KAAE+sB,EAAI,KAAEzgB,EAAI,MAAE8jB,GAAUvvB,GAC7BE,SAAUsvB,GAAgBruB,KAC3BgrB,EAAUC,GAAed,mBAAmC,OAC5DmE,EAAUC,GAAepE,mBAC9BY,EAAKhpB,MAAQ,CACXkhB,MAAO,cACP7U,MAAO,MAIJogB,EAAaC,GAAkBtE,mBAASnsB,EAAM0wB,OAASR,IAExD7G,EAAOoE,QAAQT,GACfnlB,EAAKwhB,EAAO,sBAAmBhlB,EAE/BilB,EAAcA,KAClB2D,EAAY,KAAK,EAgDnB,OACEhH,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC8uB,KAAO,CAACvgB,MAAOkgB,EAASlgB,MAAOwgB,OAAK,EAACC,UAAU,MAAK/vB,SACnDe,cAAC8rB,GAAU,CAAC7B,QAhDWuC,IAAgD,IAADE,EAC3B,WAAlB,QAAhBA,EAAAvuB,EAAM2P,kBAAU,IAAA4e,OAAA,EAAhBA,EAAkBC,cAEzBxuB,GACFitB,EAAYoB,EAAMI,cAEtB,EA0C8CxJ,MAAOqL,EAASrL,UAE5DgB,eAAC0H,GAAkB,CACjB9lB,GAAIA,EACJwhB,KAAMA,EACN2D,SAAUA,EACVvB,QAASnC,EACTwF,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdC,gBAAiB,CACfF,SAAU,MACVC,WAAY,QAEd8B,WAAY,CACVhmB,MAAO,CACLsb,MAAO,QACP2K,QAAS,OACTpL,WAAY,OACZqL,QAAS,OACTC,WAAY,SACZC,cAAe,WAEjBpwB,SAAA,CAED0vB,EAAYjpB,KAAI,CAACxD,EAAMgG,IACtBkc,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAM,CAAC1I,MAAOlhB,EAAKkhB,MAAO6G,QAASA,IA9DpB/nB,KACxBwsB,EAAYxsB,GAER/D,EAAM2P,aACR3P,EAAM2P,WAAWnC,SAASA,SAASE,KAAKtN,KAAKkM,GAAMlM,KAAK2D,KAAOA,EACjE,EAyDkDotB,CAAiBptB,KAChD,IAAVgG,GACClI,cAACuvB,KAAS,CACRvJ,QAAQ,WACR9lB,MAAOgC,EAAKqM,OAAS,GACrBihB,SAAWjoB,GAxEKkoB,EAACC,EAAkBxnB,KAC/CymB,EAAYzmB,GAAOqG,MAAQmhB,EAC3Bd,EAAe,IAAID,GAAa,EAsEHc,CAAsBloB,EAAEkG,OAAOvN,MAAOgI,OANvCA,KAWxBlI,cAAC4kB,KAAM,CAACqF,QAhEU5qB,UACtB,MAAMswB,QAAiB3B,GACrB,CACEnR,QAAS1e,EAAM0e,SAAW,GAC1BgS,MAAOF,GAETH,GAGEmB,EAASzT,QACXqS,EAAM,UAAW,gCAAiC,KAElDA,EACE,QACAoB,EAASxT,SACP,2DACF,KAINsL,GAAa,EA4C0BxoB,SAAC,gBAI1C,CCvFe2wB,OAxBuB5wB,IACpC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEC,MAAM,6BACTqJ,KAAMtK,EACHmB,MAAOgJ,GAAQ,OACf/I,OAAQ+I,GAAQ,OAChBjJ,QAAQ,cACRte,GAAG,OAAM/G,SAAA,CAETe,cAAA,QACE0tB,KAAMtK,EACNsB,EAAE,gKAEJ1kB,cAAA,WACE0tB,KAAMtK,EACNyM,OAAO,2JAEL,ECuNKC,OAjNf,SAA0B9wB,GACxB,MAAM,WACJ+wB,EAAU,KACVzuB,EAAI,WACJhB,EAAU,OACVmI,EAAM,KACNgC,EAAI,MACJtM,EAAK,SACLe,EAAQ,cACR6rB,EAAa,cACbrI,EAAa,WACbsI,EAAU,cACVC,EAAa,KACbC,EAAI,kBACJ7M,GACErf,GACGokB,EAAO4M,GAAY1F,sBACnB/rB,EAAM0xB,GAAW3F,mBAAS,IAC1B4F,EAAiBC,GAAsB7F,mBAAS,SAChD8F,EAAMC,GAAW/F,mBAAc,MAEhCzsB,EAAO8pB,uBAAY,KACvB,MACMxgB,EADOtE,OAAOuH,KAAK2lB,GACSnlB,MAAMX,GAAUA,IAAU3I,IAE5D,GAAI6F,EAAQ,CACV,MAAMjH,EAAQ6vB,EAAW5oB,GACzB8oB,EAAQ/vB,GAaR8vB,EAVE9vB,GAAS,GACLyjB,GAAwBO,OACxBhkB,GAAS,GACTyjB,GAAwBM,KACxB/jB,GAAS,GACTyjB,GAAwBK,OACxB9jB,GAAS,GACTyjB,GAAwBI,KACxBJ,GAAwBC,IAGhC,MAAOoM,EAASrM,GAAwBO,OAAO,GAC9C,CAAC6L,EAAYzuB,IAEVgvB,EAAY3I,uBAAY,KAC5B,OAAQrnB,GACN,KAAKE,EAAYgD,eAIjB,KAAKhD,EAAYmD,cACfwsB,EAAmB,WACnBE,EAAQrwB,cAACuwB,KAAgB,KACzB,MACF,KAAK/vB,EAAY+C,qBAIjB,KAAK/C,EAAYkD,oBACfysB,EAAmB,WACnBE,EAAQrwB,cAACwwB,KAAa,KACtB,MACF,KAAKhwB,EAAY6C,aACf8sB,EAAmB,WACnBE,EAAQrwB,cAAC6tB,GAAkB,KAC3B,MACF,KAAKrtB,EAAYgB,YACf6uB,EAAQrwB,cAACywB,KAAO,KAChBN,EAAmB,WACnB,MACF,KAAK3vB,EAAYyO,SACfohB,EAAQrwB,cAAC0wB,KAAS,KAClBP,EAAmB,WACnB,MACF,KAAK3vB,EAAYmG,oBACfwpB,EAAmB,WACnBE,EAAQrwB,cAAC2wB,KAAgB,KACzB,MACF,KAAKnwB,EAAYuD,SACfosB,EAAmB,WACnBE,EAAQrwB,cAAC4wB,KAAY,KACrB,MACF,KAAKpwB,EAAYI,QACfuvB,EAAmB,WACnBE,EAAQrwB,cAAC6wB,KAAyB,KAClC,MACF,KAAKrwB,EAAYM,SACfqvB,EAAmB,WACnBE,EAAQrwB,cAAC8wB,KAAW,KACpB,MACF,KAAKtwB,EAAYO,OACfovB,EAAmB,WACnBE,EAAQrwB,cAAC+wB,KAAU,KACnB,MACF,KAAKvwB,EAAYG,OAEf,GADAwvB,EAAmB,WACf1lB,EAAKlM,KAAK8C,SAAU,CACtB,MAAM2vB,EAAS7yB,EAAM2P,WAAWmE,cAAcxH,EAAKlM,KAAK8C,UACpD2vB,IACEA,EAAOzyB,KAAK+B,aAAeE,EAAY+C,qBACzC8sB,EAAQrwB,cAACwwB,KAAa,KAEtBH,EAAQrwB,cAACuwB,KAAgB,KAG/B,CACA,MACF,KAAK/vB,EAAYywB,SACfd,EAAmB,WACnBE,EAAQrwB,cAAC0wB,KAAS,KAClB,MACF,KAAKlwB,EAAY0wB,UACff,EAAmB,WACnB,MACF,KAAK3vB,EAAY2C,YACfgtB,EAAmB,WACnBE,EAAQrwB,cAACywB,KAAO,KAChB,MACF,KAAKjwB,EAAYyC,eACfktB,EAAmB,WACnBE,EAAQrwB,cAACmxB,KAAS,KAClB,MACF,KAAK3wB,EAAY0C,aACfitB,EAAmB,WACnBE,EAAQrwB,cAACoxB,KAAe,KACxB,MACF,KAAK5wB,EAAY6wB,MACflB,EAAmB,WACnBE,EAAQrwB,cAAC2tB,GAAS,KAClB,MACF,KAAKntB,EAAY0O,IACfihB,EAAmB,WACnBE,EAAQrwB,cAAC4tB,GAAO,KAChB,MACF,KAAKptB,EAAYyD,SACfksB,EAAmB,WACnBE,EAAQrwB,cAACsxB,KAAa,KACtB,MACF,KAAK9wB,EAAYiE,SACf0rB,EAAmB,WACnBE,EAAQrwB,cAACuwB,KAAgB,KACzB,MACF,KAAK/vB,EAAY+wB,MACfpB,EAAmB,WACnBE,EAAQrwB,cAACstB,GAAS,KAClB,MACF,KAAK9sB,EAAYgxB,OACfrB,EAAmB,QACnBE,EAAQrwB,cAACyxB,GAAU,KACnB,MACF,KAAKjxB,EAAYkxB,QACfvB,EAAmB,WACnBE,EAAQrwB,cAAC2xB,GAAW,KACpB,MACF,KAAKnxB,EAAYS,UAIjB,KAAKT,EAAY6D,cAIjB,KAAK7D,EAAYK,eACfsvB,EAAmB,WACnBE,EAAQrwB,cAAC4vB,GAAO,KAIpB,GAEC,CAACtvB,IAOJ,OALAlB,qBAAU,KACRvB,IACAyyB,GAAW,GACV,CAACzyB,EAAMyyB,IAGRlM,eAAC0H,GAAS,CAAC9lB,GAAE,UAAAgB,OAAYyB,GAAUwf,OAAQ7E,EAAOA,MAAO8M,EAAgBjxB,SAAA,CACvEe,cAAC8rB,GAAgB,CAAA7sB,SAAEV,IACnB6lB,eAAC0H,GAAe,CAAA7sB,SAAA,CACbmxB,EACDpwB,cAAA,OAAKuO,MAAOjN,EAAKrC,SACfe,cAAA,QAAAf,SAAOqC,SAGXtB,cAACsuB,GAAc,CACbnwB,MAAOA,EACP+sB,KAAMA,EACNzgB,KAAMhC,EACN8lB,MAAOlQ,IAETre,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC8qB,GAAiB,CAChBrgB,KAAMA,EACNhC,OAAQA,EACRtK,MAAOA,EACPe,SAAUA,EACV6rB,cAAeA,EACfrI,cAAeA,EACfsI,WAAYA,EACZC,cAAeA,EACfC,KAAMA,QAKhB,ECxOe,MAAM0G,GAKnBzwB,YAAYwK,EAAelK,EAAiBoN,GAAsB,KAJxDlD,cAAQ,OACRlK,aAAO,OACPoN,cAAQ,EAGhB9L,KAAK4I,SAAWA,EAChB5I,KAAKtB,QAAUA,EACfsB,KAAK8L,SAAWA,CAClB,CAEA,cAAMgjB,CAAS5nB,GACb,MAAM6nB,EAAO/uB,KAAK4I,SAASA,SAASE,KAC9BkmB,EAAc,IAAKD,EAAKvzB,MACxByzB,EAAejvB,KAAKkvB,YAAYhoB,GACtC6nB,EAAKvzB,KAAO,IAAKwzB,KAAgBC,EACnC,CAEAC,YAAYhoB,GACV,MAAMioB,EAAwBnvB,KAAKovB,eAAeloB,GAC5CmoB,EAA4BrvB,KAAKsvB,8BACrCH,GAEII,EAAiBvvB,KAAKwvB,eAAeH,GAC3CrvB,KAAKyvB,WAAWF,GAEhB,OADwBvvB,KAAK0vB,eAAeH,EAE9C,CAEAH,eAAeloB,GACb,MAAMG,EAAOvH,OAAOuH,KAAKH,GACnByoB,EAAqB,CAAC,EAC5B,GAAItoB,EAAKvF,OAAQ,CACf,MAAM2E,EAAMY,EAAK,GACXK,EAAOR,EAAMrE,OAAO4D,IACpB+H,EAAU9G,EAAKyD,MACfsD,EAAU/G,EAAK0D,MACrB,IAAK,IAAIjG,EAAQ,EAAGA,EAAQkC,EAAKvF,OAAQqD,IAAS,CAChD,MAAMuC,EAAO,IAAKR,EAAMrE,OAAOwE,EAAKlC,MACpCuC,EAAKyD,MAAQzD,EAAKyD,MAAQqD,EAAU,IAAMxO,KAAK8L,SAASX,MACxDzD,EAAK0D,MAAQ1D,EAAK0D,MAAQqD,EAAUzO,KAAK8L,SAASV,MAClDukB,EAAS9sB,OAAOwE,EAAKlC,KAAWuC,CAClC,CACF,CACA,OAAOioB,CACT,CAEAL,8BAA8BpoB,GAC5B,MAAMyoB,EAAqB,IAAKzoB,GAChC,IAAK,MAAMT,KAAOS,EAAO,CACvB,MAAMQ,EAAO,IAAKioB,EAASlpB,IAC3BiB,EAAK7I,OAASmB,KAAK4vB,oBAAoBD,EAAU,IAAKjoB,EAAK7I,SAC3D6I,EAAK5I,QAAUkB,KAAK4vB,oBAAoBD,EAAU,IAAKjoB,EAAK5I,UAC5D6wB,EAAS9sB,OAAO4D,IAAQ,IAAKiB,EAC/B,CACA,OAAOioB,CACT,CAEAC,oBAAoB1oB,EAAiB2oB,GACnC,MAAMC,EAA+B,IAAKD,GAC1C,IAAK,MAAMppB,KAAOopB,EAAQ,CACxB,MAAME,EAAQ,IAAKD,EAAUrpB,IAC7BspB,EAAMzoB,YAAcyoB,EAAMzoB,YAAYtE,QACnCqP,KAAWnL,EAAMrE,OAAOwP,EAAK3K,SAEhCooB,EAAUrpB,GAAO,IAAKspB,EACxB,CACA,OAAOD,CACT,CAEAN,eAAetoB,GACb,IAAIyoB,EAAqB,IAAKzoB,GAC1B8oB,EAAgBhwB,KAAKiwB,gBACrBC,EAAiBlwB,KAAKmwB,mBAAmBjpB,GACzCkpB,EACFJ,EAAgBE,EAAiBF,EAAgBE,EACnD,MAAM7oB,EAAOvH,OAAOuH,KAAKsoB,GACzB,IAAK,MAAMlpB,KAAOY,EAAM,CACtB,MAAM3B,EAAS7C,OAAO4D,GACtBkpB,EAAW3vB,KAAKqwB,uBAAuBV,EAAUjqB,EAAQ0qB,GACzD,MAAM1oB,EAAO,IAAKioB,EAASjqB,IAC3BgC,EAAKzE,GAAKmtB,EACV1oB,EAAKlM,KAAKkD,QAAUsB,KAAKtB,eAClBgJ,EAAK4oB,cACLX,EAASjqB,GAChBiqB,EAASS,GAAa,IAAK1oB,GAC3B0oB,GACF,CACA,OAAOT,CACT,CAEAU,uBACEnpB,EACAqpB,EACAC,GAEA,MAAMb,EAAqB,IAAKzoB,GAChC,IAAK,MAAMT,KAAOkpB,EAAU,CAC1B,MAAMjoB,EAAO,IAAKioB,EAASlpB,IACvBiB,EAAKlM,KAAK8C,WAAaiyB,IACzB7oB,EAAKlM,KAAK8C,SAAWkyB,GAEvB9oB,EAAK7I,OAASmB,KAAKywB,aAAa/oB,EAAK7I,OAAQ0xB,EAAYC,GACzD9oB,EAAK5I,QAAUkB,KAAKywB,aAAa/oB,EAAK5I,QAASyxB,EAAYC,GAC3Db,EAAS9sB,OAAO4D,IAAQ,IAAKiB,EAC/B,CACA,OAAOioB,CACT,CAEAc,aACEZ,EACAU,EACAC,GAEA,MAAMV,EAA+B,IAAKD,GAC1C,IAAK,MAAMppB,KAAOqpB,EAAW,CAC3B,MAAMC,EAAQ,IAAKF,EAAOppB,IAC1BspB,EAAMzoB,YAAcyoB,EAAMzoB,YAAY3E,KAAK0P,IACrCxP,OAAOwP,EAAK3K,QAAU6oB,IACxBle,EAAK3K,KAAO8oB,GAEPne,KAETyd,EAAUrpB,GAAO,IAAKspB,EACxB,CACA,OAAOD,CACT,CAEAK,mBAAmBjpB,GACjB,MAAM1L,EAAO0L,EACPG,EAAOvH,OAAOuH,KAAK7L,GACtBmH,KAAKwjB,GAAMtjB,OAAOsjB,KAClBuK,MAAK,CAACjnB,EAAGuH,IAAOvH,EAAIuH,EAAI,EAAIvH,EAAIuH,GAAK,EAAI,IAE5C,OADY3J,EAAKvF,OAAS,EAAIe,OAAOwE,EAAK,IAAM,EAAI,CAEtD,CAEA4oB,gBACE,MAAMz0B,EAAOwE,KAAK4I,SAASA,SAASE,KAAKtN,KACnC6L,EAAOvH,OAAOuH,KAAK7L,GACtBmH,KAAKwjB,GAAMtjB,OAAOsjB,KAClBuK,MAAK,CAACjnB,EAAGuH,IAAOvH,EAAIuH,EAAI,EAAIvH,EAAIuH,GAAK,EAAI,IAE5C,OADY3J,EAAKvF,OAAS,EAAIe,OAAOwE,EAAK,IAAM,EAAI,CAEtD,CAEAooB,WAAWvoB,GACT,IAAK,MAAMT,KAAOS,EAAO,CACvB,MAAM,KAAE1L,EAAI,QAAEsD,GAAYoI,EAAMT,GAChCjL,EAAKsD,QAAUkB,KAAKqU,iBAAiB7Y,EAAKsD,SAAW,GAAIA,EAC3D,CACF,CAEAuV,iBAAiB9B,EAAuBzT,GACtC,MAAMuI,EAAOvH,OAAOuH,KAAKvI,GACzB,IAAK,IAAIqG,EAAQ,EAAGA,EAAQkC,EAAKvF,OAAQqD,IAAS,CAChD,MAAMvC,EAAS9D,EAAQuI,EAAKlC,IAC5B,GAAIvC,EAAO0E,aAAiB1E,EAAO0E,YAAYxF,OAAQ,CACrD,MAAM4D,EAAS9C,EAAO0E,YAAY,GAAGI,KAC/BqN,EAAaxC,EAAY1K,MAC7B,CAAC4K,EAAGuC,IAAgBA,IAAgB7P,IAElC4P,IACFA,EAAWjS,SAAWiF,OAAOrC,GAEjC,CACF,CACA,MAAO,IAAI6M,EACb,CAEAmd,eAAexoB,GACb,MAAMypB,EAAa3wB,KAAK4wB,oBAClBjB,EAAqB,IAAKzoB,GAChC,IAAKlH,KAAK6wB,QAAQlB,GAAW,OAAOA,EACpC,IAAK,MAAMlpB,KAAOS,EAAO,CACvB,MAAMQ,EAAO,IAAKioB,EAASlpB,IACrBqqB,EAAU,IAAI3yB,EAAcuJ,EAAKlM,MACvC,GAAIs1B,EAAQvwB,WAAY,CACtB,MAAMzB,EAAUgyB,EAAQ9uB,aACxB,IAAK,IAAImD,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IAAS,CACnD,MACM4G,EADSjN,EAAQqG,GACArC,SACjBiuB,EAAY,IAAKpB,EAAS9sB,OAAOkJ,KACnCglB,GAAaA,EAAUv1B,OACzBu1B,EAAUv1B,KAAK+C,KAAOwyB,EAAUv1B,KAAK+C,KAAK6G,QACxC0rB,EAAQvyB,KAAK,GAAD0F,OACTyD,EAAKlM,KAAK+C,KAAK6G,QAAQ,iBAAiB,IAAG,UAAAnB,OAAS0sB,IAEzDhB,EAAS9sB,OAAOkJ,IAAYglB,EAEhC,CACArpB,EAAKlM,KAAK+C,KAAI,GAAA0F,OAAMyD,EAAKlM,KAAK+C,KAAK6G,QAAQ,iBAAiB,IAAG,UAAAnB,OAAS0sB,EAC1E,MAAYG,EAAQpwB,WAAcowB,EAAQjwB,aACxC6G,EAAKlM,KAAK+C,KAAI,GAAA0F,OAAMyD,EAAKlM,KAAK+C,KAAK6G,QAAQ,iBAAiB,IAAG,UAAAnB,OAAS0sB,IAE1EhB,EAAS9sB,OAAO4D,IAAQ,IAAKiB,EAC/B,CACA,OAAOioB,CACT,CAEAiB,oBACE,MAAMp1B,EAAiB,IAAKwE,KAAK4I,SAASA,SAASE,KAAKtN,MAClDw1B,EAAUlxB,OAAOuH,KAAK7L,GACzBmH,KAAK8D,GAAQjL,EAAKqH,OAAO4D,IAAMjL,KAAK+C,OACpCyE,QAAQzE,IACP,MACM0yB,EAAU1yB,EAAK2yB,MADC,mBAGtB,SADiBD,EAAUA,EAAQ,GAAK,GACzB,IAEhBtuB,KAAKpE,IACJ,MACM0yB,EAAU1yB,EAAK2yB,MADC,mBAEhB9sB,EAAW6sB,EAAUA,EAAQ,GAAK,GACxC,OAAOpuB,OAAOuB,EAAOgB,QAAQ,UAAU,IAAI,IAI5CsrB,MAAK,CAACjnB,EAAGuH,IAAOvH,EAAIuH,EAAI,EAAIvH,EAAIuH,GAAK,EAAI,IAE5C,OAASggB,EAAQlvB,OAASkvB,EAAQ,GAAK,EAAI,CAC7C,CAEAH,QAAQ3pB,GACN,MAAM1L,EAAiB,IAAKwE,KAAK4I,SAASA,SAASE,KAAKtN,MAClD21B,EAAkBrxB,OAAOuH,KAAK7L,GAAMmH,KACvC8D,GAAQjL,EAAKqH,OAAO4D,IAAMjL,KAAK+C,OAKlC,OAHyBuB,OAAOuH,KAAKH,GAAOvE,KACzC8D,GAAQS,EAAMrE,OAAO4D,IAAMjL,KAAK+C,OAEXmK,MAAMnK,GAAS4yB,EAAgB3zB,SAASe,IAClE,CAEA+W,cACE,OAAOtV,KAAK4I,QACd,ECjPa,MAAMwoB,GAGnBhzB,YAAY2M,GAAuB,KAFzBA,gBAAU,EAGlB/K,KAAK+K,WAAaA,CACpB,CAEAsmB,SAASnsB,GACP,MAAM1J,EAAOwE,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,KAC9C81B,EAAuB,CAAC,EAC9B,IAAK,MAAMruB,KAAMiC,EAAK,CACpB,MAAMwC,EAAOlM,EAAKyH,GACdyE,IACF4pB,EAAWruB,GAAM,IAAKyE,GAE1B,CACA,OAAO4pB,CACT,ECjBa,MAAMC,GAGnBnzB,YAAY2M,GAAuB,KAFzBA,gBAAU,EAGlB/K,KAAK+K,WAAaA,CACpB,CAEAymB,kBACE,MAAMh2B,EAAiBwE,KAAK+K,WAAWnC,SAASA,SAASE,KAAKtN,KACxD6L,EAAOvH,OAAOuH,KAAK7L,GACzB,IAAK6L,EAAKvF,OAAQ,MAAO,CAAEqJ,MAAO,EAAGC,MAAO,GAC5C,MAAM3E,EAAMY,EAAKA,EAAKvF,OAAS,GACzB4F,EAAOlM,EAAKqH,OAAO4D,KACnB,MAAE0E,EAAK,MAAEC,GAAU1D,EACzB,MAAO,CAAEyD,QAAOC,QAClB,CAEAqmB,oBAAoBtmB,EAAiBC,GACnC,IAAKD,EAAMrJ,SAAWsJ,EAAMtJ,OAAQ,OAAO9B,KAAKwxB,kBAGhD,MAAO,CAAErmB,MAFY4B,KAAK2kB,OAAOvmB,GAEF,IAAKC,MADf2B,KAAK4kB,OAAOvmB,GACyB,IAC5D,CAEAwmB,oBAAoB1qB,GAClB,MAAMG,EAAOvH,OAAOuH,KAAKH,GACnB2qB,EAAaxqB,EAAK1E,KAAK8D,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAClD2mB,EAAazqB,EAAK1E,KAAK8D,GAAQS,EAAMrE,OAAO4D,IAAM2E,QACxD,OAAOpL,KAAKyxB,oBAAoBI,EAAYC,EAC9C,EC9Ba,MAAMC,GAGnB3zB,YAAYwK,GAA2B,KAF7BA,cAAQ,EAGhB5I,KAAK4I,SAAWA,CAClB,CAEAwmB,eAAe4C,EAAoBxjB,EAAiBC,GAClD,MAAMjT,EAAOwE,KAAK4I,SAASE,KAAKtN,KAChC,IAAK,MAAMkK,KAAUssB,EAAU,CAC7B,MAAM,MAAE7mB,EAAK,MAAEC,GAAU5P,EAAKkK,GAC9BlK,EAAKkK,GAAQyF,MAAQA,EAAQqD,EAC7BhT,EAAKkK,GAAQ0F,MAAQA,EAAQqD,CAC/B,CACF,CAEAwjB,gBACE,MAAMz2B,EAAOwE,KAAK4I,SAASE,KAAKtN,KAC1B6L,EAAOvH,OAAOuH,KAAK7L,GAAMmH,KAAK8D,GAAQ5D,OAAO4D,MAC7C,MAAE0E,EAAK,MAAEC,GAAUpL,KAAK4xB,sBACxBM,EAAOntB,SAASa,eAAe,YAErC5F,KAAKovB,eACH/nB,EACA8D,KACQ,OAAJ+mB,QAAI,IAAJA,KAAMjlB,YAAcF,KAAKolB,MAAMD,EAAKjlB,YAAc,GAAK,IAAM,IACjE7B,EAEJ,CAEAwmB,sBACE,MAAM1qB,EAAQlH,KAAK4I,SAASE,KAAKtN,KAC3B6L,EAAOvH,OAAOuH,KAAKH,GACnB2qB,EAAaxqB,EAAK1E,KAAK8D,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAClD2mB,EAAazqB,EAAK1E,KAAK8D,GAAQS,EAAMrE,OAAO4D,IAAM2E,QACxD,OAAOpL,KAAKyxB,oBAAoBI,EAAYC,EAC9C,CAEAL,oBAAoBtmB,EAAiBC,GACnC,IAAKD,EAAMrJ,SAAWsJ,EAAMtJ,OAAQ,MAAO,CAAEqJ,MAAO,EAAGC,MAAO,GAG9D,MAAO,CAAED,MAFY4B,KAAK2kB,OAAOvmB,GAEHC,MADT2B,KAAK2kB,OAAOtmB,GAEnC,CAEAkK,cACE,OAAOtV,KAAK4I,QACd,EC5CK,SAASwpB,GAAkB7N,GAQ9B,IAR+B,SACjC8N,EAAQ,MACRC,EAAK,QACLxY,GAKDyK,EACC,MAAMgO,EAAWlwB,KAAKC,UAAU+vB,GAEhC71B,aAAa6a,QAAQ,WAAYkb,GACjC/1B,aAAa6a,QAAQ,iBAAkBib,GACvC91B,aAAa6a,QAAQ,eAAgByC,EACvC,CCjBO,MAAM0Y,GAAep3B,IAA8B,IAADq3B,EAAA9I,EACvD,MAAM,KAAE7gB,GAA6C,QAAvC2pB,EAAQ,OAALr3B,QAAK,IAALA,GAAiB,QAAZuuB,EAALvuB,EAAO2P,kBAAU,IAAA4e,OAAZ,EAALA,EAAmB/gB,SAASA,gBAAQ,IAAA6pB,IAAI,CACvD3pB,KAAM,CAAEtN,KAAM,CAAC,IAEjB,OACEsN,EAAKtN,MAC6B,IAAlCsE,OAAOuH,KAAKyB,EAAKtN,MAAMsG,QACvBhC,OAAO4yB,eAAe5pB,EAAKtN,QAAUsE,OAAO6yB,SAAS,EAI5CC,GAAyBp3B,GASH,IARVA,EAAKwH,QAAQ6N,GAEP,IAAzBA,EAAKrV,KAAK+B,YACe,IAAzBsT,EAAKrV,KAAK+B,YACe,KAAzBsT,EAAKrV,KAAK+B,aAIQuE,OClBjB,IACI+wB,GACAC,GAYArjB,GAAiB,gBAKrB,IAAIC,GAAe,cAenB,IAAIqjB,GAAa,IAAIpjB,MAIjBqjB,GAAqB,IAAIrjB,MAE7B,SAASsjB,KACZ,OAASD,GAAmBlxB,OACxBkxB,GAAqB,CACjB,CAAC,eAAgB,gBAE7B,CAGO,IAAIE,GAAkB,IAAIvjB,MAQtBwjB,IALe,IAAIxjB,MAKO,IAAIA,OASG,IAAIA,MAazC,IAEIyjB,GAFmB,IAAIzjB,MAiC3B,SAAS0jB,GAAYC,GAUxB,OAPI12B,OAAO22B,cACKD,EAAQtlB,KAIR,IAAIwlB,eAAgBC,kBAAkBH,EAG1D,CAuBO,SAASI,KACIC,sBACNC,OACd,CAiBO,SAASC,KACZ,IAAIC,EACAjB,EAAkBc,cAAmBI,gBAAgBjB,IAMzD,OAFAgB,EAAgBT,GAHQM,OAAYK,eAChCL,wBAIG,CAAE5lB,QAAS8kB,EAAiB7kB,IAAK8lB,EAC5C,CA0BO,SAASG,GAA4BC,GAGxC,IAAIxO,EAAQ,IAAI/V,OAC0B,IAAtCujB,GAAgBjqB,QAAQirB,KAExBhB,GAAgB7tB,KAAK6uB,GACrBxO,EAAQwN,GAAgBxC,MAAK,CAACjnB,EAAGuH,IAAMvH,EAAE0qB,cAAcnjB,KACvDkiB,GAAkBxN,EAE1B,CA8CO,SAAS0O,GAAWtkB,GAITA,EAAME,MAAM,SAGpBzI,SAAS2I,IAGX,IAAIzG,EArDL,SAA6ByG,GAChC,MAAMmkB,EAAS,IAAI1kB,MAGnB,IAAa2kB,EAAWC,EAAUC,EACvB,IAAIxqB,OAAO,qBAItB,IAHA,IAAIyqB,EAAe,iBACfC,EAAcxkB,GAIF,IADZokB,EAAMI,EAAYvkB,OAAO,WADhB,CAWT,IALAokB,EAAWD,EACXA,GAAO,EAISA,EAAMI,EAAY5yB,OAAQwyB,IAEtC,IADOI,EAAYC,OAAOL,GACjBpD,MAAMuD,GAGR,CAEHD,EAASF,EAETD,EAAOhvB,KAAKqvB,EAAYtkB,UAAUmkB,EAAUC,IAE5C,KACJ,CAIJE,EAAcA,EAAYtkB,UAAUkkB,EAAKI,EAAY5yB,OACzD,CACA,OAAOuyB,CACX,CAcgBO,CAAoB1kB,GACxBzG,EAAE3H,OAAS,GACX2H,EAAElC,SAAQ,SAASsJ,EAAM1L,IAhF9B,SAAgC+uB,GAGnC,IAAIxO,EAAQ,IAAI/V,OACqB,IAAjCojB,GAAW9pB,QAAQirB,KAEnBnB,GAAW1tB,KAAK6uB,GAChBxO,EAAQqN,GAAWrC,MAAK,CAACjnB,EAAGuH,IAAMvH,EAAE0qB,cAAcnjB,KAClD+hB,GAAarN,EAErB,CAyEgBmP,CAAuBhkB,EAC3B,GACJ,GAIR,CAEO,SAASikB,GAA2BlsB,GAIvC,MAAMvB,EAAOvH,OAAOuH,KAAKuB,EAAmB,SAAY,SAAQ,KAAQ,MACxE,IAAIkB,EAAIzC,EAAKvF,OACb,IAA0BtG,EAE1B,GAAS,GAALsO,EAGJ,IAAK,IAAIJ,EAAI,EAAGA,EAAII,EAAGJ,KACnBlO,EAAOoN,EAAmB,SAAY,SAAQ,KAAQ,KAAEvB,EAAKqC,IAAU,MAGjD,aAEdlO,EAAkB,YAAW,SAI7B44B,GAFU54B,EAAkB,YAAW,QAQvD,CAuIO,SAASu5B,GAAiCC,IA8B1C,SAA2CA,GAI9C,IAAIC,EAAOC,EAEX,GALA/B,GAA0B,GAC1BD,GAAkB,GAClBE,GAAa,KAEb6B,EAAQD,GACEn2B,OAIN,OAGJ,GAAI,cADJo2B,EAAQA,EAAc,QACI,CAGtB,KADAA,EAAQA,EAAiB,WACb,OACZ,IAAK,IAAIvrB,EAAI,EAAGA,EAAIurB,EAAMnzB,OAAQ4H,IAE1BurB,EAAMvrB,GAAS,KAAE5H,SAGjBozB,EAAQD,EAAMvrB,GAAS,KACfurB,EAAMvrB,GAAY,QACjBurB,EAAMvrB,GAAU,MACzBuqB,GAA4B,IAAMiB,GAM9C,CAGJ,CA/DIC,CAAkCH,GAGJ,GAA1B9B,GAAgBpxB,SAChBoxB,GAAkB,CAAC,aAEvB,IAAIxN,EAAQwN,GAAgBxC,MAAK,CAACjnB,EAAGuH,IAAMvH,EAAE0qB,cAAcnjB,KAE3D0U,EAAMne,SAAShD,IACX4uB,GAAwB9tB,KAAK,CAACd,EAASA,IAC/B,CAAC,GAEjB,C,eCvce,SAAS6wB,KACtB,MAAM,EAAEC,GAAMC,eAMd,MAAO,CACLC,eALF,SAAwB9uB,EAAyB+uB,GACjD,OAAOH,EAAE5uB,EAAK+uB,EACd,EAKF,CCXO,MAAM56B,GAAe,CAC1B66B,QAAQ,EACRC,UAAW,IAGN,SAASC,GACdv6B,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,SAGL,IAAK,YACH,OAAOC,GAAiBF,EAAOC,MAAMF,GAEvC,IAAK,oBACH,OAAOG,GAAiBF,EAAOC,MAAMF,EAAOC,EAAOG,MAErD,QACE,OAAOJ,EAEb,CAEA,MAAMG,GAAmB,CACvBk6B,OAASr6B,IACA,IAAKA,EAAOq6B,QAAQ,IAG7BG,UAAYx6B,IACH,IAAKA,EAAOq6B,QAAQ,IAG7BI,kBAAmBA,CACjBz6B,EACAI,IAEIA,GAAQA,EAAKk6B,UACR,IAAKt6B,EAAOs6B,UAAWl6B,EAAKk6B,WAE9B,IAAKt6B,IC7BV06B,GAAqB/5B,wBACzB,CAAC,GAGI,SAASg6B,GAAmBxR,GAAuB,IAAtB,SAAEroB,GAAiBqoB,EACrD,MAAOnpB,EAAOe,GAAYC,qBAAWu5B,GAAoB/6B,IAsEzD,OACEqC,cAAC64B,GAAmB54B,SAAQ,CAC1BC,MAAO,CACL/B,MAAOA,GAASR,GAChBuB,WACA65B,eArEN,WACE,MAAMN,EAAYt6B,EAAMs6B,UAClBO,EAAmB,GAQzB,OANAP,EAAUnuB,SAAS2uB,IACjB,MAAMC,EAAOD,EAAQE,OAAOzzB,KAAK0zB,GAAUA,EAAMC,UAEjDL,EAAY5wB,KAAK,CAAE6wB,QAASA,EAAQ33B,KAAM63B,OAAQD,GAAO,IAGpDT,CACT,EA2DMa,kBAzDN,WAGE,OAFkBn7B,EAAMs6B,UAEP/yB,KAAKuzB,GAAYA,EAAQ33B,MAC5C,EAsDMi4B,sBAhCN,SAA8BC,GAIG,IAJF,QAC7BP,EAAO,MACPG,EAAK,OACLh7B,GAC4Bo7B,EAC5B,MAAMC,EArBR,SAAgCR,GAE9B,OADkB96B,EAAMs6B,UACP7tB,MAAMgC,GAAMA,EAAEtL,OAAS23B,GAC1C,CAkByBS,CAAuBT,GAE9C,IAAKQ,EAAgB,OAAO,EAC5B,GAAIA,EAAeE,QAAS,OAAO,EAEnC,MAAMC,EArBR,SAA8BX,EAA6BG,GACzD,OAAOH,EAAQE,OAAOvuB,MAAM4B,GAAMA,EAAElL,OAAS83B,GAC/C,CAmBuBS,CAAqBJ,EAAgBL,GAC1D,QAAKQ,MAEDx7B,EAAOmC,SAAS,MAIFnC,EAAOqN,MAAMe,GAEtBotB,EAAaP,QAAQ94B,SAASiM,KAIzC,EAUMstB,eAxCN,SAAwB/c,GACtB,MAEMkc,EAFY96B,EAAMs6B,UAEE7tB,MAAMgC,GAAMA,EAAEtL,OAASyb,IACjD,OAAc,OAAPkc,QAAO,IAAPA,OAAO,EAAPA,EAASU,WAAW,CAC7B,EAoCMnB,OA7EN,WACE,OAAOr6B,EAAMq6B,MACf,EA4EMuB,aAvDN,WACE,OAAO57B,EAAMs6B,SACf,GAsDMx5B,SAEDA,GAGP,CAEO,SAAS+6B,KAEd,OADgB55B,qBAAWy4B,GAE7B,CC7FA,MAAMxc,GAAU,aACV4d,GAAU,OAEHC,GAAgB76B,MAC3Bwd,EACA3d,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAI6V,EAAO,KAAA7V,OAAIqV,IACxC,OAAOrD,GAA4B,MAAO5a,EAAQc,EAAS,EAGhDi7B,GAAgB96B,MAC3B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIqV,IACjD,OAAOrD,GAA6B,OAAQ5a,EAAQc,EAAUia,EAAQ,EAgC3DihB,GAA0B/6B,MACrCwd,EACA3d,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAI6V,EAAO,KAAA7V,OAAIqV,IACxC,OAAOrD,GAA+B,SAAU5a,EAAQc,EAAS,EAGtDm7B,GAAuBh7B,MAClC8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIqV,GAAO,iBACxD,OAAOrD,GAA+B,MAAO5a,EAAQc,EAAUia,EAAQ,EAG5DmhB,GAAsBj7B,MACjC8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIqV,GAAO,KAAArV,OAAImS,EAAQohB,WAAU,SAC9E,OAAOvhB,GAA+B,MAAO5a,EAAQc,EAAUia,EAAQ,ECHnEqhB,GAAc17B,wBAA4B,CAAC,GAEpC27B,GACXz7B,IAEA,MAAM,SAAEC,GAAaD,GAEdb,EAAOe,GAAYC,qBAAW2hB,GAAanjB,KAC1CuB,SAAUw7B,GAAwBV,MAElC96B,SAAUsvB,GAAgBruB,IAC5Bw6B,GAA0D,IAAhDh7B,OAAOi7B,UAAUC,WAAW7uB,QAAQ,OAC9C8uB,EAAmBC,iBAAuBC,aAAY,QAAU,MAChEC,EAAsBF,iBAC1BC,aAAY,QAAU,OAElB,eAAE1C,GAAmBH,KAE3B/4B,qBAAU,KACRO,OAAOG,iBAAiB,gBAAgBT,UAClClB,EAAMogB,SAAWpgB,EAAM0e,SAAW1e,EAAM0hB,iBACpCrC,GACJ,CACEjB,SAAUpe,EAAM0e,QAChBQ,UAAWlf,EAAMogB,SAEnBiQ,GAGJjnB,EAAEC,gBAAgB,GAClB,GAED,CAACrJ,EAAM0e,QAAS1e,EAAMogB,QAASpgB,EAAM0hB,YAExC,MAAMqb,EAAeA,KACf/8B,EAAM2P,aACR3P,EAAM0hB,WAAY,EAClB1hB,EAAM2P,WAAW6e,YAAc,OAC/BwO,IACAx7B,OAAOy7B,YAAc,IAAMD,IAC3Bx7B,OAAO07B,YAAc,IAAMF,IAC3Bj8B,EAAS,CAAEb,KAAM,cACjBa,EAAS,CAAEb,KAAM,2BACjBi9B,IACF,EAGIC,EAAeC,IACfr9B,EAAM2P,aACR3P,EAAM0hB,WAAY,EAClB1hB,EAAM2P,WAAW6e,YAAc,QAC/BhtB,OAAOy7B,YAAc,KACrBz7B,OAAO07B,YAAc,KACrBI,cAAcX,EAAiBY,SAC/BD,cAAcR,EAAoBS,SAClCx8B,EAAS,CAAEb,KAAM,iBACbm9B,GAAWt8B,EAAS,CAAEb,KAAMm9B,IAClC,EAGIF,EAAoBA,KACpBn9B,EAAM0hB,YACR4b,cAAcR,EAAoBS,SAElCT,EAAoBS,QAAUV,aAAY37B,UACxC,MAAMs8B,EAAep8B,aAAaC,QAAQ,qBAE1C,GAAIm8B,EAAc,CAChB,MAAM,QAAE9e,EAAO,UAAEQ,GAAcjY,KAAKw2B,MAAMD,SACpCle,GACJ,CACElB,SAAUM,EACVQ,aAEFmR,EAEJ,CACA8M,GAAmB,GA/EA,OAiFvB,EAGIH,EAAaA,KACjBM,cAAcX,EAAiBY,SAC/BZ,EAAiBY,QAAUV,aAAY37B,UACrC,MAAMs8B,EAAep8B,aAAaC,QAAQ,qBAE1C,GAAIm8B,EAAc,CAChB,MAAM,QAAE9e,EAAO,UAAEQ,GAAcjY,KAAKw2B,MAAMD,GAC1C,IAAI55B,EACJ,IACEA,EAAc60B,IAChB,CAAE,MAAOrvB,GAAI,CAiBb,GAfArI,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEse,UAAS0B,QAASlB,KAG5Bke,EAAY,0BAEN/d,GACJ,CACEjB,SAAUM,EACVQ,aAEFmR,GAGErwB,EAAM2P,WAAY,CAAC,IAAD0nB,EACpBL,GAAmB,CACjBC,SAAmC,QAA3BI,EAAEr3B,EAAM2P,WAAWnC,gBAAQ,IAAA6pB,IAAI,CAAC,EACxCH,MAAOhY,EACPR,QAASA,IAGX,MAAMpU,EAAS7C,OAAOrG,aAAaC,QAAQ,gBACrCiL,EAAOtM,EAAM2P,WAAWnC,SAASA,SAASE,KAAKtN,KAAKkK,GAE1D,GAAIgC,EAAM,CACR,MAAMgE,EAAqBhE,EAAKlM,KAC5BkQ,EAAS1M,cACX0M,EAAS1M,YAAc,IACjBA,GAAe,CACjB+O,QAASrC,EAAS1M,YAAY+O,QAC9BC,IAAKtC,EAAS1M,YAAYgP,KAE5BF,YAAapC,EAAS1M,YAAY8O,YAAc,GAAK,EACrDG,gBAAiBvC,EAAS1M,YAAYiP,iBAG5C,OACMmM,GACJ,CACEZ,SAAUM,EACVK,WAAYG,EACZwe,OAAQ,CACNlwB,SAAUxN,EAAM2P,WAAWnC,SAASA,WAGxC6iB,EAEJ,CAEAtvB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEwf,gBAAgB,IAE5B,CAEA0d,cAAcX,EAAiBY,QAAQ,GAzJnB,KA0JD,EAqCjBI,EAAWz8B,eACfge,EACAR,GAEI,IAAD6P,EAAAqP,EAAA,IADHC,EAAUp0B,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GAEZ,MAAMq0B,EAAkB72B,KAAKC,UAA0B,QAAjBqnB,EAACvuB,EAAM2P,kBAAU,IAAA4e,OAAA,EAAhBA,EAAkB/gB,UAMvD,GALFpM,aAAa6a,QAAQ,mBAAoB6hB,GAEtB,QAAbF,EAAA59B,EAAMogB,eAAO,IAAAwd,GAAbA,EAAe5nB,WAAW,UAAYhW,EAAM0hB,iBACxCqc,KAEH/9B,EAAM2P,WAAY,OACvB5O,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAE5CzgB,EAAM0gB,kBACR3f,EAAS,CAAEb,KAAM,sBAGfF,EAAM2gB,oBACR5f,EAAS,CAAEb,KAAM,wBAGnB,MAAM8I,QAAeiW,GACnB,CACEb,SAAUM,EACVQ,aAEFmR,GAGF,GAAIrnB,EAAO+U,QAAS,CAGV,IAADigB,EAAA3Q,EAFP,GAAKwQ,EAGHd,IACA/F,GAAmB,CACjBC,SAAoC,QAA5B+G,EAAkB,QAAlB3Q,EAAErtB,EAAM2P,kBAAU,IAAA0d,OAAA,EAAhBA,EAAkB7f,gBAAQ,IAAAwwB,IAAI,CAAC,EACzC9G,MAAgB,OAAThY,QAAS,IAATA,IAAa,GACpBR,QAASA,SANX0e,EAAY,yBAUd,IAAIxS,EAEJ,GAAI5qB,EAAMwiB,qBAAsB,CAC9B,MAAMyb,OpC5NsB/8B,OAClCwd,EACAQ,EACAne,KAEA,MAAMd,EAAM,QAAA4I,OAAW6V,EAAO,YAAA7V,OAAWqW,EAAS,WAClD,aAAarE,GAAmC,MAAO5a,EAAQc,EAAS,EoCsNxCm9B,CACxBxf,EACAQ,EACAmR,GAGE4N,EAAYlgB,UACd6M,EAAQqT,EAAYrgB,KAAKugB,kBACrBvT,IAAU5qB,EAAMyiB,oBAClB1hB,EAAS,CACPb,KAAM,qBACNE,KAAM,CAAEqiB,mBAAoBmI,KAIpC,CAOA,GALAxpB,aAAa6a,QACX,oBACAhV,KAAKC,UAAU,CAAEwX,UAASQ,eAGvBlW,EAAO4U,KAAKxd,KAAKs9B,OAAOlwB,SAEtB,CACL,MAAMkwB,EAAS10B,EAAO4U,KAAKxd,KAAKs9B,OAAOlwB,SACjCmmB,EAAO+J,EAAOhwB,KACd0wB,EAAgB,IAAIzlB,GAAcgb,EAAKvzB,KAAM8e,GACnDyU,EAAKvzB,KAAOg+B,EAAclkB,cAE1B,MAAMjO,EAAOvH,OAAOuH,KAAK0nB,EAAKvzB,MAC9B,IAAK,MAAMiL,KAAOY,EAAM,CACtB,MAAMH,EAAQ6nB,EAAKvzB,KAAKqH,OAAO4D,IAC/BgzB,EAAqBvyB,GACrBiB,EAAWjB,EAAO6nB,EAAKvzB,MACvByL,EAAUC,EAAO6nB,EAAKvzB,KACxB,CAEA,GAAkB,cAAd8e,EAA2B,CAC7B,MAAMof,EAAU3K,EAAKvzB,KAAK,GACpBm+B,EAAW5K,EAAKvzB,KAAK,GACrBo+B,EAAS7K,EAAKvzB,KAAK,GAErBk+B,GAAWC,GAAYC,GACrBF,GAAkD,IAAvC55B,OAAOuH,KAAKqyB,EAAQ76B,QAAQiD,SACzC43B,EAAQ76B,OAAS,CAAC,GAGhB+6B,GAAgD,IAAtC95B,OAAOuH,KAAKuyB,EAAO/6B,QAAQiD,SACvC83B,EAAO/6B,OAAS,CAAE+I,QAAS,CAAEN,YAAa,MAGC,IAAzCxH,OAAOuH,KAAKsyB,EAAS76B,SAASgD,SAChC63B,EAASn+B,KAAKsD,QAAU,CACtB,CACE0M,MAAO,WACP0C,WAAY,MAKyB,IAAvCpO,OAAOuH,KAAKuyB,EAAO96B,SAASgD,SAC9B83B,EAAOp+B,KAAKsD,QAAU,CACpB,CACE0M,MAAO,WACP0C,WAAY,OAKlBoN,EACE,QACA,yKAGN,CAEA,MAAMue,EAA2B,IAAI9H,GACnC+G,GAEFe,EAAyB5H,gBACzB,IAAIrpB,EAAWixB,EAAyBvkB,cAExC,IACEla,EAAM2P,WAAW+uB,OAAO,CAAElxB,YAC5B,CAAE,MAAOpE,GACPyD,QAAQC,IAAI1D,GACZoE,EAAWD,EAAoBC,GAC/BxN,EAAM2P,WAAW+uB,OAAO,CAAElxB,YAC5B,CACA,MAAMkS,EAAc,IAAKlS,GACnBoL,EAAW+a,EAAKvzB,KAEtBiR,IACAtQ,EAAS,CACPb,KAAM,aACNE,KAAM,CACJsf,iBAGA9G,GACF+lB,EACE/lB,EACAgS,GAAS5qB,EAAMyiB,mBACfziB,EAAMwiB,sBAGLqb,GAAYe,GACnB,MArFE5+B,EAAM2P,WAAW6oB,OAsFrB,MACEx4B,EAAM2P,WAAW6oB,QACjBtY,EACE,QACAlX,EAAOgV,SAAW,sCAItBjd,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,IAClD,EAEM4d,EAAwBvyB,IAC5B,GACEA,GACAA,EAAM1L,MACN0L,EAAM1L,KAAKsD,SACXoI,EAAM1L,KAAKwD,aACmB,IAA9BkI,EAAM1L,KAAKsD,QAAQgD,SAGhBoF,EAAM1L,KAAKsD,QAAQ,IAAsC,cAAhCoI,EAAM1L,KAAKsD,QAAQ,GAAG0M,OACtB,IAA1BtE,EAAM1L,KAAK+B,YACe,IAA1B2J,EAAM1L,KAAK+B,YACX,CACA2J,EAAM1L,KAAKsD,QAAQ,GAAG0M,MAAQ,WAK9B,GAJ4BtE,EAAM1L,KAAKwD,YAAYgP,IAAIxQ,SACrD,uCAGuB,OAEzB,GAAI0J,EAAM1L,KAAKwD,YAAYgP,IAAIxQ,SAAS,UAAW,CACjD,MAAMy8B,EACJ/yB,EAAM1L,KAAKwD,YAAY+O,QAAU,mCAEnC7G,EAAM1L,KAAKwD,YAAY+O,QAAUksB,EAEjC,MAAMC,EACJhzB,EAAM1L,KAAKwD,YAAYgP,IAAI/E,QAAQ,UAErC/B,EAAM1L,KAAKwD,YAAYgP,IAAM9G,EAAM1L,KAAKwD,YAAYgP,IAAIoC,UACtD,EACA8pB,GAGF,MAAMC,EAAYjzB,EAAM1L,KAAKwD,YAAYgP,IAAI/E,QAAQ,OAC/CmxB,EAAgBlzB,EAAM1L,KAAKwD,YAAYgP,IAAIqsB,YAAY,OAEvD/rB,EAAOpH,EAAM1L,KAAKwD,YAAYgP,IAAIoC,UACtC+pB,EAAY,EACZjzB,EAAM1L,KAAKwD,YAAYgP,IAAI/E,QAAQ,IAAKkxB,EAAY,IAGhD5rB,EAAOrH,EAAM1L,KAAKwD,YAAYgP,IAAIoC,UACtCgqB,EAAgB,EAChBlzB,EAAM1L,KAAKwD,YAAYgP,IAAI/E,QAAQ,IAAKmxB,EAAgB,IAGpDE,EAAaz3B,OAAO0L,GAAQ,GAElCrH,EAAM1L,KAAKwD,YAAYgP,KAAG,wDAAA/J,OAA4DqK,EAAI,SAAArK,OAAQq2B,EAAU,sDAC9G,MACEpzB,EAAM1L,KAAKwD,YAAYgP,IACrB,2KACF9G,EAAM1L,KAAKwD,YAAY+O,SAAW,kCAEtC,CACF,EAGIisB,EAAgBA,KAAO,IAADO,EAC1B,MAAMrzB,EAAwB,QAAnBqzB,EAAGn/B,EAAM2P,kBAAU,IAAAwvB,OAAA,EAAhBA,EAAkB3xB,SAASA,SAASE,KAAKtN,KACjD6L,EAAOvH,OAAOuH,KAAKH,GACnB2qB,EAAaxqB,EAAK1E,KAAK8D,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAElDqvB,EAAeztB,KAAK2kB,OAAOG,GAE3B4I,EAAWpzB,EAAKQ,MACnBpB,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAAUqvB,KAGlC,EAAEp0B,EAAC,EAAEH,GAAMD,EAAgBy0B,GAE3B/rB,EAAOtI,EAAI,EAAQ,GAAJA,EACfuI,EAAO1I,EAAI,EAAQ,IAAJA,EAEjB7K,EAAM2P,aACR3P,EAAM2P,WAAW6D,UAAYF,EAC7BtT,EAAM2P,WAAW8D,UAAYF,EACzBvT,EAAM2P,WAAW+B,YACnB1R,EAAM2P,WAAW+B,UAAU5G,MAAM4I,UAAS,aAAA7K,OAAgB7I,EAAM2P,WAAW6D,SAAQ,oBAAA3K,OAC/E7I,EAAM2P,WAAW8D,SAAQ,0BAAA5K,OACnB7I,EAAM2P,WAAW2B,KAAI,OAEnC,EAGID,EAAgBA,KAChBrR,EAAM2P,aACJ3P,EAAM2P,WAAW2B,KAAO,IAC1BtR,EAAM2P,WAAW4B,UACjBF,KACSrR,EAAM2P,WAAW2B,KAAO,KACjCtR,EAAM2P,WAAW6B,WACjBH,KAEJ,EA8DIwb,EAAarD,uBAChBlf,IACC,GAAItK,EAAM2P,WAAY,CACpB,MAAMW,EACJtQ,EAAM2P,WAAWnC,SAASA,SAASE,KAAKtN,KAAKkK,GAAQlK,KACjD2sB,EAAO,IAAIhqB,EAAcuN,GACzBgvB,EAAmB,IAAI3rB,EAAuB3T,EAAM2P,YAC1Cod,EAAKznB,UAGnBg6B,EAAiB1rB,gBAAgBtJ,GAEjCg1B,EAAiBprB,iBAAiB5J,EAEtC,IAEF,CAACtK,EAAM2P,aAGHmd,EAAiBhhB,IAAsB,IAADyzB,EAC1C,MAAM,OAAEj1B,EAAM,KAAEgC,GAASR,GACnB,WAAE6D,GAAe3P,EAEjBc,EADY,IAAIiC,EAAcuJ,EAAKlM,MACd+E,WACN,QADgBo6B,EACjCjzB,EAAKlM,KAAKsD,eAAO,IAAA67B,OAAA,EAAjBA,EAAmBh4B,KAAI4hB,IAAA,IAAC,SAAEzhB,GAAUyhB,EAAA,OAAK1hB,OAAOC,EAAS,IACzD,GAEE83B,EAAgB1+B,EAAW,CAACwJ,KAAWxJ,GAAY,CAACwJ,GAE1D,GAAIqF,EAAY,CACd,MAAMyI,EAAU7O,IACVk2B,EAAa,IAAIzJ,GAAyBrmB,GAE1C+vB,EAAWtnB,EAAQ1R,OAAS0R,EAAUonB,EACtCG,EAAa14B,KAAKC,UAAU,IAAKu4B,EAAWxJ,SAASyJ,KAE3D,GAAI/vB,EAAWnC,SAAU,CACvB,MAAMoyB,EAAiB,IAAIzJ,GACzBxmB,GACA6mB,oBAAoB,IAAKvvB,KAAKw2B,MAAMkC,KAEhCF,EAAa,IAAIhM,GACrB9jB,EAAWnC,SACXxN,EAAMogB,SAAW,GACjBwf,GAEFH,EAAW/L,SAAS,IAAKzsB,KAAKw2B,MAAMkC,KACpC,MAAMnyB,EAAWiyB,EAAWvlB,cAE5BvK,EAAW6oB,QACX7oB,EAAW+uB,OAAOlxB,GAClB,MAAMoL,EAAqBpL,EAASA,SAASE,KAAKtN,KAClDu+B,EAAiB/lB,EACnB,CACF,GAGIinB,EAAoBz2B,GACjBozB,EAAUpzB,EAAE02B,OAAS12B,EAAE22B,QAG1BpB,EAAmBz9B,MACvBd,EACAwxB,EACAoO,KAEA,MAAMC,EAAS,CAAE31B,OAAQ,EAAGU,EAAG,EAAGH,EAAG,GAEhC+mB,IACHA,EAAa5xB,EAAMyiB,oBAGrB/d,OAAOuH,KAAK7L,GAAM+L,SAAQ,SAAUd,GAClC,MAAMf,EAAS7C,OAAO4D,GAChBoK,EAAO9L,SAASa,eAAe,QAAUF,GACzCyiB,EAAO,IAAIhqB,EAAc3C,EAAKkK,GAAQlK,MACtC8/B,EAAc9/B,EAAKkK,GACnB61B,EhDvpBc7vB,KACxB,MAAM6vB,EAAYx2B,SAAS2iB,cAAc,OACzC6T,EAAUC,aAAa,YAAa,kBAEpC,MAAMC,EAAW12B,SAAS2iB,cAAc,OAClCgU,EAAM32B,SAAS2iB,cAAc,OAC7BiU,EAAgB52B,SAAS2iB,cAAc,OAE7C,GAAIhc,EAAS3K,aAAc,CAAC,IAAD66B,EAAAC,EACzBF,EAAcG,UAAS,UAAA73B,OAAqB,OAARyH,QAAQ,IAARA,GAAgB,QAARkwB,EAARlwB,EAAU3M,cAAM,IAAA68B,OAAR,EAARA,EAAkBG,UACtD,MAAMC,EAAaj3B,SAAS2iB,cAAc,OAC1CsU,EAAWF,WAAS,UAAA73B,OAAsB,OAARyH,QAAQ,IAARA,GAAgB,QAARmwB,EAARnwB,EAAU3M,cAAM,IAAA88B,OAAR,EAARA,EAAkBn9B,SACpDi9B,EAAc7T,YAAYkU,EAC5B,MAAO,GAAItwB,EAASnO,aAAeE,EAAYyC,eAAgB,CAAC,IAAD+7B,EAC7D,MAAMC,EAAyB,OAARxwB,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,UAAU,GAAGE,UAAUf,QAC7Dm5B,GAAY,KAANA,IAGT,GAAID,EAAgB,CAClB,MAAME,EACJF,EAAenvB,KAAKsvB,MAAMtvB,KAAKC,SAAWkvB,EAAep6B,SAC3D25B,EAASK,UAAYM,GAAqB,EAC5C,CACF,MACEX,EAASK,WAAoB,OAARpwB,QAAQ,IAARA,OAAQ,EAARA,EAAUlN,cAAe,GAGM,IAAD89B,EAQrD,GARI5wB,EAASnO,aAAeE,EAAY2C,cACtCq7B,EAASK,UAAS,GAAA73B,QAAc,OAARyH,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBp4B,UAAW,KAGzDw3B,EAAIF,aAAa,QAAS,uBAE1BE,EAAII,UAAYpwB,EAASpI,aAErBoI,EAASzL,eAAgB,CAI3B,GAHIyL,EAASlM,cACXk8B,EAAII,UAAS,SAAA73B,OAAYyH,EAASvH,mBAEhCuH,EAAShM,SAAU,CACrB,MAAMA,EAAWqF,SAAS2iB,cAAc,OACxChoB,EAASo8B,UAAS,gBAAA73B,OAAgByH,EAAShM,UAC3Cg8B,EAAI5T,YAAYpoB,EAClB,CAEAg8B,EAAIF,aAAa,QAAS,iBAC5B,CAOA,OALAC,EAASD,aAAa,QAAS,uBAC/BE,EAAI5T,YAAY6T,GAChBJ,EAAUzT,YAAY2T,GACtBF,EAAUzT,YAAY4T,GAEfH,CAAS,EgDkmBMgB,CAAUpU,GACtBqU,EAAkBz3B,SAAS2iB,cAAc,OACzC+U,EAAuB13B,SAAS2iB,cAAc,OAE9CgV,EAAenZ,IAAMmE,eAAc,IACvCzqB,cAAC8vB,GAAgB,CACfC,WAAYA,GAAc,CAAC,EAC3BzuB,KAAM4pB,EAAK5pB,KACXo+B,WAAW,EACXvhC,MAAOA,EACPsK,OAAQA,EACRnI,WAAY+9B,EAAY9/B,KAAK+B,WAC7BmK,KAAM4zB,EACNn/B,SAAUA,EACV6rB,cAAeA,EACfrI,cAAeA,EACfsI,WAAYA,EACZC,cAAeA,EACfC,KAAMA,EACN7M,kBAAmBA,MAIvBshB,IAASC,OAAOH,EAAcD,GhDthBJK,EAC9Bp3B,EACA5G,EACAiM,KAEA,MAAMpF,EAAgBZ,SAASa,eAAe,QAAD3B,OAASyB,IACtD,GAAIC,EAAe,CACjB,MAAMo3B,EAAoBp3B,EAAcX,uBAAuB,UAC/D,IAAK,IAAIG,EAAQ,EAAGA,EAAQ43B,EAAkBj7B,OAAQqD,IAAS,CAC7D,MAAM63B,EAAgBD,EAAkB53B,GAClCvC,EAAS9D,EAAQqG,GACvB,GAAI63B,GAAiBp6B,IACnBo6B,EAAcxB,aAAa,QAAQ,QAADv3B,OAAUrB,EAAO4I,MAAK,MAEpDT,GAAY,CACd,MAAMW,EACJX,EAAWnC,SAASA,SAASE,KAAKtN,KAAKkK,GAAQlK,KAG3C+E,EAFO,IAAIpC,EAAcuN,GAETnL,WAEE,OAApBqC,EAAOE,UAAsBvC,GAC/By8B,EAAcxB,aAAa,KAAK,cAADv3B,OAAgBrB,EAAOE,UAC1D,CAEJ,CACF,GgD8fIg6B,CAAiBp3B,EAAQyiB,EAAKnmB,aAAc5G,EAAM2P,YhD5lB5BkyB,EAACv3B,EAAgBnI,KAC3C,MAAMoI,EAAgBZ,SAASa,eAAe,UAAD3B,OAAWyB,IAExD,GAAIC,EACF,OAAQpI,GACN,KAAKE,EAAYgD,eAGjB,KAAKhD,EAAYmD,cAGjB,KAAKnD,EAAY+C,qBAGjB,KAAK/C,EAAYkD,oBACfgF,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYgB,YACfkH,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYyO,SACfvG,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYmG,oBACf+B,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYuD,SACf2E,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYI,QACf8H,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYM,SACf4H,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYO,OACf2H,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYG,OAGjB,KAAKH,EAAYywB,SAGjB,KAAKzwB,EAAY0wB,UACfxoB,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAY2C,YACfuF,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYyC,eACfyF,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAY0C,aACfwF,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAY6wB,MACf3oB,EAAcO,MAAMinB,gBAAkB,UACtC,MACF,KAAK1vB,EAAYS,UACfyH,EAAcO,MAAMinB,gBAAkB,UAK5C,EgD4hBI8P,CAAav3B,EAAQyiB,EAAK5qB,YACtB,OAAJsT,QAAI,IAAJA,KAAM9T,iBAAiB,YAAY,KAAO,IAADmgC,EACD,UAAlB,QAAhBA,EAAA9hC,EAAM2P,kBAAU,IAAAmyB,OAAA,EAAhBA,EAAkBtT,eACpBuT,EAAez3B,GACf03B,EAAW13B,GACXlJ,aAAa6a,QAAQ,cAAe3R,EAAOyI,YAC7C,IAGE,OAAJ0C,QAAI,IAAJA,KAAM9T,iBAAiB,SAAUyH,IAC/B,GAAIpJ,EAAM0hB,UAAW,CAAC,IAADugB,EACnB,MAAM3xB,EACY,QADM2xB,EACtBjiC,EAAM2P,kBAAU,IAAAsyB,OAAA,EAAhBA,EAAkBz0B,SAASA,SAASE,KAAKtN,KAAKkK,GAAQlK,KAClD2sB,EAAO,IAAIhqB,EAAcuN,GACzBxE,EAAQ,CAAExB,SAAQgC,KAAM4zB,IACxB,WAAE/9B,GAAe+9B,EAAY9/B,KAGhC8B,EAAuBC,IACvB4qB,EAAKznB,WACLynB,EAAKtnB,YACLsnB,EAAKhnB,gCAEFqD,EAAE22B,SAAWF,EAAiBz2B,MAChCA,EAAEC,iBACFD,EAAEE,kBACFsjB,EAAc9gB,IAEZ1C,EAAE84B,WAAanV,EAAK/mB,oBACtB8mB,EAAchhB,GAGpB,MAIAihB,EAAK5nB,aACH4nB,EAAKznB,YACJynB,EAAKrnB,UACNqnB,EAAK5qB,aAAeE,EAAYG,QAChCuqB,EAAK5qB,aAAeE,EAAYI,UAElC09B,EAAUzT,YAAY0U,GAGpB,OAAJ3rB,QAAI,IAAJA,KAAM9T,iBAAiB,aAAcyH,IACnC,GAAIiB,EAAeC,KAAYu1B,EAAiBz2B,GAAI,CAClD62B,EAAO31B,OAASA,EAChB,MAAM,EAAEU,EAAC,EAAEH,GAAMD,EAAgBN,GACjC21B,EAAOp1B,EAAIA,EACXo1B,EAAOj1B,EAAIA,EhDreKV,KACxB,MAAMC,EAAgBZ,SAASa,eAAe,QAAD3B,OAASyB,IAClDC,IACFA,EAAcO,MAAMq3B,OAAS,QAC/B,EgDkeQC,CAAU93B,EACZ,KAGE,OAAJmL,QAAI,IAAJA,KAAM9T,iBAAiB,WAAYyH,IACjC,GAAIiB,EAAe41B,EAAO31B,UAAYu1B,EAAiBz2B,GAAI,CAAC,IAADi5B,EAAAC,EAAAC,EAAAC,EACzD,MAAMx5B,EAAS4B,EAAgBN,GACzB8I,EAAU6sB,EAAOj1B,EAAIhC,EAAOgC,EAC5BqI,EAAU4sB,EAAOp1B,EAAI7B,EAAO6B,EAC5Bf,EAAMP,EAAkB,CAAC02B,EAAO31B,SAChCm0B,EAA2B,IAAI9H,GACnB,QADgD0L,EAChEriC,EAAM2P,kBAAU,IAAA0yB,OAAA,EAAhBA,EAAkB70B,SAASA,UAE7BixB,EAAyBzK,eAAelqB,EAAKsJ,EAASC,GACtD,MAAM7F,EAAWixB,EAAyBvkB,cAC1B,QAAhBooB,EAAAtiC,EAAM2P,kBAAU,IAAA2yB,GAAhBA,EAAkB9J,QACF,QAAhB+J,EAAAviC,EAAM2P,kBAAU,IAAA4yB,GAAhBA,EAAkB7D,OAAO,CAAElxB,aAC3BmxB,EAAiC,QAAjB6D,EAACxiC,EAAM2P,kBAAU,IAAA6yB,OAAA,EAAhBA,EAAkBh1B,SAASA,SAASE,KAAKtN,MhDjhBpC0J,KAC9B,IAAK,MAAMjC,KAAMiC,EAAK,CACpB,MAAMS,EAAgBZ,SAASa,eAAe,QAAD3B,OAAShB,IAChD46B,EAAa94B,SAASa,eAAe,UAAD3B,OAAWhB,IACxC,OAAb0C,QAAa,IAAbA,KAAeE,UAAUL,OAAO,iBACnB,OAAbG,QAAa,IAAbA,KAAeE,UAAUc,IAAI,iBACnB,OAAVk3B,QAAU,IAAVA,KAAYh4B,UAAUL,OAAO,yBACnB,OAAVq4B,QAAU,IAAVA,KAAYh4B,UAAUc,IAAI,wBAC5B,GgD0gBQm3B,CAAgB,IAAI54B,EAAKm2B,EAAO31B,ShDjfdA,KAC1B,MAAMC,EAAgBZ,SAASa,eAAe,QAAD3B,OAASyB,IAClDC,IACFA,EAAcO,MAAMq3B,OAAS,GAC/B,EgD8eQQ,CAAYr4B,EACd,KAGEyiB,EAAK5nB,aACH,OAAJsQ,QAAI,IAAJA,KAAM9T,iBAAiB,eAAgByH,IAAO,IAADw5B,EAC3Cx5B,EAAEC,iBACFD,EAAEE,kBACF9H,OAAOG,iBAAiB,SAAS,KAC/BwI,GAAoB,IAEtB3I,OAAOG,iBAAiB,eAAe,KACrCwI,GAAoB,IAGtBA,IACA,MAAM04B,EAAiBl5B,SAAS2iB,cAAc,OAC9CuW,EAAezC,aAAa,QAAS,0BACrCyC,EAAenC,UAAY,IACJ,QAAvBkC,EAAAzC,EAAU2C,qBAAa,IAAAF,GAAvBA,EAAyBlW,YAAYmW,GAErCA,EAAelhC,iBAAiB,SAAUyH,IACxCA,EAAEC,iBACFD,EAAEE,kBACFujB,EAAWviB,EAAO,GAClB,KAIN,MAAMy4B,EAAc,OAAJttB,QAAI,IAAJA,OAAI,EAAJA,EAAM7L,uBAAuB,yBAM7C,GAJImjB,EAAKhnB,8BACPmD,EAAqBuM,GAGnBsX,EAAKznB,UAAW,CAClB,MAAMsH,EAAQxM,EAAKkK,GAAQ7G,OAAgB,QAC3C,GAAImJ,EAAMV,YAAY,GAAI,CAAC,IAAD82B,EACxB,MAAMC,EAAWr2B,EAAMV,YAAY,GAAGI,KAChC42B,GACsB,QAA1BF,EAAAp2B,EAAMV,YAAY,GAAGU,aAAK,IAAAo2B,OAAA,EAA1BA,EAA4Bh5B,QAAQ,MAAO,MAAO,GAEhD,OAAJyL,QAAI,IAAJA,KAAM9T,iBAAiB,eAAgByH,IAAO,IAAD+5B,EAC3C/5B,EAAEC,iBACFD,EAAEE,kBACF9H,OAAOG,iBAAiB,SAAS,KAC/BwI,GAAoB,IAEtB3I,OAAOG,iBAAiB,eAAe,KACrCwI,GAAoB,IAEtBA,IACA,MAAM04B,EAAiBl5B,SAAS2iB,cAAc,OAC9CuW,EAAezC,aAAa,QAAS,0BACrCyC,EAAenC,UAAY,IACJ,QAAvByC,EAAAhD,EAAU2C,qBAAa,IAAAK,GAAvBA,EAAyBzW,YAAYmW,GAErCA,EAAelhC,iBAAiB,SAAUyH,IACxCA,EAAEC,iBACFD,EAAEE,kBACFujB,EAAWviB,EAAO,GAClB,IAGJ84B,EAAwBH,EAAU34B,EAAQ7C,OAAOy7B,GAAe,EAClE,CACF,CACA,GAAInW,EAAKtnB,WAAY,CACnB,MAAMmH,EAAQxM,EAAKkK,GAAQ7G,OAAgB,QAC3C,GAAImJ,EAAMV,YAAY,GAAI,CAAC,IAADm3B,EACxB,MAAMJ,EAAWr2B,EAAMV,YAAY,GAAGI,KAChC42B,GACsB,QAA1BG,EAAAz2B,EAAMV,YAAY,GAAGU,aAAK,IAAAy2B,OAAA,EAA1BA,EAA4Br5B,QAAQ,MAAO,MAAO,GACpDo5B,EAAwBH,EAAU34B,EAAQ7C,OAAOy7B,GAAe,EAClE,CACF,CAEIH,GAAWA,EAAQ,KACrBA,EAAQ,GAAGrW,YAAYyT,GACvB4C,EAAQ,GAAGrW,YAAY2U,GAE3B,GAAE,EAGEW,EAAcn6B,IAClB,GAAI7H,EAAM2P,WAAY,CACpB,MAAMrD,EAAOtM,EAAM2P,WAAWmE,cAAcjM,GAC5C9G,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAEkQ,SAAUhE,EAAKlM,KAAMkK,OAAQzC,IAEzC,GAGIu7B,EAA0BA,CAC9BE,EACAC,EACA/7B,EACAoF,KAEA,MAAMgd,EAAS,2BAAA/gB,OAA8B06B,EAAQ,mBAAA16B,OAAkBy6B,EAAS,YAAAz6B,OAAWrB,EAAM,WAAAqB,OAAU+D,GACrGR,EAAazC,SAASC,uBAAuBggB,GAAWnU,KAAK,GAEnE,GAAMrJ,EAAY,CAChB,MAAMo3B,EAAOp3B,EAAWq3B,qBAAqB,QAAQhuB,KAAK,GAC1DvM,EAAqBs6B,EACvB,GAGIzB,EAAkBl6B,IACtB,MAAM,WAAE8H,GAAe3P,EACvB,GAAI2P,EAAY,CACd,MACMW,EADOX,EAAWmE,cAAcjM,GAChBzH,KACtBW,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,WAAUhG,OAAQzC,IAC3D,GA4CIk2B,EAAqB78B,UACzB,MAAMwiC,EA1CgCC,MAAO,IAADC,EAAAC,EAAAC,EAC5C,MAAMC,EAA8B,QAAnBH,EAAG5jC,EAAM2P,kBAAU,IAAAi0B,OAAA,EAAhBA,EAAkBp2B,SAASA,SAASE,KAAKtN,KACvD4jC,EAAkBt/B,OAAOuH,KAAK83B,GAEpC,IAAIE,EAA2B,CAAC,EAC5BC,EAA6B,GAEjC,IAAK,MAAM74B,KAAO24B,EAAiB,CACjC,MAAMG,EAAeJ,EAAYt8B,OAAOu8B,EAAgB34B,KACpD84B,EAAa/jC,KAAK+B,aAAeE,EAAYK,iBAC/CuhC,EAAaE,GAEXA,EAAa/jC,KAAK+B,aAAeE,EAAY6D,eAC/Cg+B,EAAWj6B,KAAKk6B,EACpB,CAEA,MAAMC,EAAwB,GACxB1gC,EAAU,CAAC,EACjBwgC,EAAW/3B,SAAQ,CAACk4B,EAAWt6B,KAC7BrF,OAAOC,OAAOjB,EAAS,IAClBA,EACH,CAAC,UAADmF,OAAWkB,EAAQ,IAAM,CAAEmC,YAAa,MAE1Ck4B,EAAYn6B,KAAK,CAAEmG,MAAOi0B,EAAUjkC,KAAK+C,MAAO,IAGlD,MAAM,WAAEwM,GAAe3P,EACvB,IAAK2P,EAAY,OAWjB,MAPgC,CAC9BvP,KAAM,CACJ+C,MAJ2B,QAAb0gC,EAAA7jC,EAAMogB,eAAO,IAAAyjB,OAAA,EAAbA,EAAe7uB,UAAU,EAAgB,QAAf8uB,EAAE9jC,EAAMogB,eAAO,IAAA0jB,OAAA,EAAbA,EAAep9B,UAAW,GAKpEtD,YAAa6gC,EAAW7jC,KAAKgD,YAC7BM,QAAS0gC,GAGG,EAIMT,GACjBD,QDn3B4BxiC,OACnC8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIqV,GAAO,KAAArV,OAAImS,EAAQohB,WAAU,eAC9E,OAAOvhB,GAA+B,MAAO5a,EAAQc,EAAUia,EAAQlP,MAAM,ECg3BrEw4B,CACJ,CACElmB,SAAUpe,EAAM0e,SAAW,GAC3B0d,WAAYsH,EAActjC,KAAK+C,KAC/B2I,MAAO43B,GAETrT,EACD,EAGGkU,EAA6BrjC,UAAa,IAADsjC,EAC7C,MAAMC,EAAmBrjC,aAAaC,QAAQ,qBAAuB,GAC/DqjC,EAAsBz9B,KAAKw2B,MAAMgH,GACjCE,EAA2C,GAC3CC,EAAuC,GAEvCC,EAAwBngC,OAAOuH,KACnCy4B,EAAoBl3B,SAASE,KAAKtN,MAGpC,IAAK,MAAMiL,KAAOw5B,EAAuB,CACvC,MAAMV,EACJO,EAAoBl3B,SAASE,KAAKtN,KAAKiL,GACrC84B,EAAa/jC,KAAK+B,aAAeE,EAAYS,WAC/C6hC,EAAsB16B,KAAK,CACzB66B,SAAUX,EAAat8B,GACvBu0B,WAAY+H,EAAa/jC,KAAK+C,MAGpC,CAEA,MAAM4hC,EAA2BrgC,OAAOuH,KACtB,QAD0Bu4B,EAC1CxkC,EAAM2P,kBAAU,IAAA60B,OAAA,EAAhBA,EAAkBh3B,SAASA,SAASE,KAAKtN,MAG3C,IAAK,MAAMiL,KAAO05B,EAA0B,CAAC,IAADC,EAC1C,MAAMb,EACY,QADca,EAC9BhlC,EAAM2P,kBAAU,IAAAq1B,OAAA,EAAhBA,EAAkBx3B,SAASA,SAASE,KAAKtN,KAAKiL,GAC5C84B,EAAa/jC,KAAK+B,aAAeE,EAAYS,WAC/C8hC,EAAkB36B,KAAK,CACrB66B,SAAUX,EAAat8B,GACvBu0B,WAAY+H,EAAa/jC,KAAK+C,MAGpC,CAEA,MAAM8hC,EAAoBN,EAAsB/8B,QAAQkE,IAC9C84B,EAAkBt3B,MAAMsI,GAAMA,EAAEkvB,WAAah5B,EAAMg5B,aAG1B,IAADI,EAA9BD,EAAkBv+B,OAAS,QD/5BJxF,OAC7B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAImS,EAAQoD,SAAQ,YAAAvV,OAAWmS,EAAQ+D,WAAU,KAAAlW,OAAIqV,IAC9E,OAAOrD,GACL,SACA5a,EACAc,EACAia,EAAQ5a,KACT,ECs5BS+kC,CACJ,CACE/mB,SAAUpe,EAAM0e,QAChBK,WAAyB,QAAfmmB,EAAEllC,EAAMogB,eAAO,IAAA8kB,IAAI,GAC7B9kC,KAAM6kC,GAER5U,EAEJ,EAGI+U,EAAWlkC,UACf,IAAK,IAADmkC,EACF,GACkB,QAAhBA,EAAArlC,EAAM2P,kBAAU,IAAA01B,GAAhBA,EAAkB73B,UAClBxN,EAAM0e,SACN1e,EAAMmiB,aACNniB,EAAMogB,SACNpgB,EAAM0hB,YACL0V,GAAYp3B,GACb,CACA,MAAMkiB,EAAY,IAAIliB,EAAMkiB,WACtBgV,EAAQl3B,EAAMmiB,YAAY1V,MAAM64B,GAAMA,IAAMtlC,EAAMogB,UAClD1B,EAAU1e,EAAM0e,QAEtB,GAAIA,EAAS,OACL6lB,IACN,MAAM/uB,EAAMxV,EAAMwV,IAEZ+vB,EAAkBvlC,EAAM2P,WAAWnC,SAASA,SAC5Cg4B,EAAmB9gC,OAAOu7B,OAAOsF,EAAgB73B,KAAKtN,MAC5D,GACY,cAAV82B,IACCM,GAAsBgO,GAEvB,MAAM,IAAIhoB,MACR,kEAIJ,MAAMioB,QAAoBzmB,GACxB,CACEZ,SAAUM,EACVK,WAAYmY,GAAS,GACrBwG,OAAQ,CACNlwB,SAAUxN,EAAM2P,WAAWnC,SAASA,WAGxC6iB,GAGF,GAAIoV,EAAY1nB,QAAS,CAAC,IAAD2nB,EAAAC,EACnBnwB,IACFA,EAAI4M,IAAMqjB,EAAY7nB,KAAKxd,KAAKgiB,IAChC5M,EAAItE,QAAUu0B,EAAY7nB,KAAKxd,KAAK8Q,SAEtC,MAAM4sB,EAAkB72B,KAAKC,UAAUlH,EAAM2P,WAAWnC,UACxDpM,aAAa6a,QAAQ,mBAAoB6hB,GAEzC/8B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8hB,YACAxC,YAAa,IAAK1f,EAAM2P,WAAWnC,aAIvCwpB,GAAmB,CACjBC,SAAoC,QAA5ByO,EAAkB,QAAlBC,EAAE3lC,EAAM2P,kBAAU,IAAAg2B,OAAA,EAAhBA,EAAkBn4B,gBAAQ,IAAAk4B,IAAI,CAAC,EACzCxO,MAAY,OAALA,QAAK,IAALA,IAAS,GAChBxY,QAASlJ,EAAI4I,UAEjB,MACE8B,EACE,QACAulB,EAAYznB,SACV,mDAGR,CACF,CACF,CAAE,MAAOC,GAAa,IAAD2nB,EACnB1lB,EACE,QACa,QADN0lB,EACP3nB,EAAMnV,eAAO,IAAA88B,IAAI,mDAErB,GAgBI1lB,EAAoBsJ,uBACxB,CAACtpB,EAAiB4I,EAAiB+8B,KACjC9kC,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8f,kBAAmB,CACjBhgB,OACA4I,UACA+8B,WACA1lB,MAAM,KAGV,GAEJ,IAEI2lB,EAAsB5kC,UAI1B,MAAMm5B,EAAS0L,EAAa1L,OACtBC,QAAkBsB,IAExB,GAAIvB,EAAQ,CACV,MAAM2L,QAAaC,IACnBllC,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8hB,UAAW8jB,KAGfzJ,EAAoB,CAClBr8B,KAAM,WAGRq8B,EAAoB,CAClBr8B,KAAM,oBACNE,KAAM,CACJi6B,SACAC,cAGN,MACEv5B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8hB,UAAW,MAGfqa,EAAoB,CAClBr8B,KAAM,cAGRq8B,EAAoB,CAClBr8B,KAAM,oBACNE,KAAM,CACJi6B,SACAC,UAAWyL,EAAazL,YAG9B,EAGFr5B,qBAAU,MACRC,iBACE,MAAMC,EAAQC,aAAaC,QAAQ,SACnC,IAAKF,EAAO,OAEZ,MAAM4kC,EACJG,aAAU/kC,GACZ2kC,EAAoBC,EACtB,CAEAI,EAAkB,GAEjB,IACH,MAAMvK,EAAe16B,UACnB,MAAMswB,QAAiB3S,GAAYwR,GACnC,IAAKmB,EAASzT,QAAS,MAAO,GAgB9B,OAfkByT,EAAS5T,KAC2BrW,KACnD6+B,IAAO,CACNjjC,KAAMijC,EAAQjjC,KACdq4B,SAAS,EACTR,OAAQoL,EAAQpL,OAAOzzB,KAAK0zB,IAAK,CAC/BC,QAAS,CAAC,KACV/3B,KAAM83B,MAERoL,SAAUD,EAAQC,SAAU9+B,KAAK++B,IAAO,CACtCnjC,KAAMmjC,EACNtL,OAAQoL,EAAQpL,cAIF,EAGhBiL,EAAU/kC,UACd,MAAMswB,OtCtnCkBtwB,WAG1B,MAAMjB,EAAM,GAAA4I,OAAMqV,GAAO,UACzB,aAAarD,GAA4B,MAAO5a,EAAQc,EAAS,EsCknCxCwlC,CAAalW,GACpC,OAAKmB,EAASzT,QACPyT,EAAS5T,KAAKxd,KADS,EACL,EAGrBomC,EAAqBA,CACzBC,EACAC,KAEA,MAAMC,EAAoB,gBACpBC,EAA0B,yBAEE,OAAfH,QAAe,IAAfA,MAAiBh8B,UAAUC,SAASi8B,KAKtC,OAAfF,QAAe,IAAfA,KAAiBh8B,UAAUL,OAAOu8B,GACb,OAArBD,QAAqB,IAArBA,KAAuBj8B,UAAUL,OAAOw8B,KAJzB,OAAfH,QAAe,IAAfA,KAAiBh8B,UAAUc,IAAIo7B,GACV,OAArBD,QAAqB,IAArBA,KAAuBj8B,UAAUc,IAAIq7B,GAIvC,EAGIha,EAAiB9gB,IACrB,MAAM26B,EAAkB98B,SAASk9B,cAAc,SAADh+B,OAAUiD,EAAMxB,SACxDw8B,EAAwBn9B,SAASk9B,cAAc,WAADh+B,OACvCiD,EAAMxB,UAGb,WAAEqF,GAAe3P,EAEjBc,EAAWgL,EAAMQ,KAAKlM,KAAKsD,QACzB,OAAR5C,QAAQ,IAARA,KAAUqL,SAAS3E,IACjB,GAAImI,EAAY,CACd,MAAM,SAAEjI,GAAaF,EACrB,QAAiBnD,IAAbqD,EAAwB,CAC1B,MAAMoE,EAAQ6D,EAAWnC,SAASA,SAASE,KAAKtN,KAAKsH,GACrD,GAAIoE,EAAO,CACT,MAAMwE,EAAqBxE,EAAM1L,KAC3B2sB,EAAO,IAAIhqB,EAAcuN,GAC/B,GAAIyc,EAAKznB,WAAiC,KAApBynB,EAAK5qB,WAAmB,CAC5C,MAAMskC,EAAkB98B,SAASk9B,cAAc,SAADh+B,OACnCrB,EAAOE,WAEZo/B,EAAwBn9B,SAASk9B,cAAc,WAADh+B,OACvCrB,EAAOE,WAEpB8+B,EAAmBC,EAAiBK,EACtC,CACF,CACF,CACF,KAGFN,EAAmBC,EAAiBK,EAAsB,EAGtDviB,EAAgBA,KACpB,IAAIpZ,EAAWxB,SAASC,uBAAuB,iBAC/C,KAASuB,EAASzE,QAAQ,CACxB,MAAMqgC,EAAO57B,EAASsK,KAAK,GACvB,OAAJsxB,QAAI,IAAJA,KAAMt8B,UAAUL,OAAO,gBACzB,CACArJ,EAAS,CACPb,KAAM,iBACN,EAGJ,OACE2B,cAACw6B,GAAYv6B,SAAQ,CACnBC,MAAO,CACL+jC,sBACA9lC,MAAOA,GAASR,GAChBuB,WACAimC,UA/sBY9lC,UAChB,MAAM,WAAEyO,GAAe3P,EACvB,IAAK2P,EAAY,OACjB,MAAM2vB,EAAmB,IAAIluB,EAAuBzB,GACpD2vB,EAAiBttB,aAAa1B,GAC9B,MAAM22B,EAAoB3H,EAAiBnuB,gBACrC+1B,EAAqBv3B,EAAWrF,OAEtCqF,EAAW+uB,OAAO,IAAKuI,EAAkBz5B,WACzC,MAAMoL,EAAqBjJ,EAAWnC,SAASA,SAASE,KAAKtN,KAI7D,GAFAu+B,EAAiB/lB,GAEbsuB,GAAsBv3B,EAAWrF,OACnC,IAAK,IAAIP,EAAQm9B,EAAoBn9B,EAAQ4F,EAAWrF,OAAQP,IAC9DyB,EAAYzB,EAAMgJ,kBAIhBqyB,IAENrkC,EAAS,CAAEb,KAAM,wBAAyB,EA2rBtCkW,aAxrBelV,MAAOoP,EAAoBzI,KAC9C,IACE,MAAM,WAAE8H,GAAe3P,EACvB,IAAK2P,EAAY,OAEjB,MAAM2vB,EAAmB,IAAInpB,GAAuBxG,GACpD2vB,EAAiBlpB,aAAa9F,EAAUzI,GACxC,MAAMo/B,EAAoB3H,EAAiBnuB,gBAE3CxB,EAAW+uB,OAAO,IAAKuI,EAAkBz5B,WACzC,MAAMoL,EAAqBjJ,EAAWnC,SAASA,SAASE,KAAKtN,KAC7Du+B,EAAiB/lB,SAEXwsB,IACNrkC,EAAS,CAAEb,KAAM,wBACnB,CAAE,MAAOinC,IPviBN,SAA8B9L,GAcjC,IAdkC,kBACpCnb,EAAiB,MACjBlgB,EAAK,iBACL2+B,EAAgB,OAChBphB,GAUD8d,EACC,MAAM3c,EAAU1e,EAAM0e,QAChBwY,EAAQl3B,EAAMogB,QACdgnB,EAAgBhmC,aAAaC,QAAQ,kBACrC81B,EAAW/1B,aAAaC,QAAQ,YAChCgmC,EAAcjmC,aAAaC,QAAQ,gBAEzC,GAAI61B,IAAUkQ,GAAiB1oB,IAAY2oB,GAAiBlQ,EAAU,CACpEjX,EACE,UACA,4GAGF,MAAM1S,EAAWvG,KAAKw2B,MAAMtG,GAE5B,GAAI3pB,EAASA,SACX,GAAIA,EAASA,SAASE,KAAM,CAAC,IAAD6gB,EAAAlB,EAC1B,MAAMzU,EAAqBpL,EAASA,SAASE,KAAKtN,KAE5C6L,EAAOvH,OAAOuH,KAAK2M,GACzB,IAAI0uB,GAAmB,EACvB,MAAMC,EAA6B,cAAVrQ,EAEzB,IACE,IAAK,MAAM7rB,KAAOY,EAAM,CAAC,IAADu7B,EACtB,MAAM,KAAEpnC,GAASwY,EAASnR,OAAO4D,IAEjC,GAAIk8B,GACF,GAAIrlC,EAAuB9B,EAAK+B,YAAa,CAC3CmlC,GAAmB,EACnB,KACF,OACK,GAAIplC,EAAuB9B,EAAK+B,YACrC,MAAM,IAAIqb,MAAMD,EAAOkqB,uBAGzB7uB,EAASnR,OAAO4D,IAAMxD,GAAKJ,OAAO4D,GAElC,MAAMq8B,EAA2B,QAAnBF,EAAGpnC,EAAKwD,mBAAW,IAAA4jC,OAAA,EAAhBA,EAAkB70B,QACnC,GAAI+0B,EAAU,CAAC,IAADC,EACZ,MAAM9I,EAAa6I,EAASE,WAAW,GAAD/+B,OACjCzI,EAAKkD,QAAO,KAAK,GAAAuF,OACjBquB,EAAK,MAGU,QAApByQ,EAAIvnC,EAAKwD,mBAAW,IAAA+jC,GAAhBA,EAAkBh1B,UACpBvS,EAAKwD,YAAY+O,QAAUksB,EAC/B,CACF,CAEA,GAAI0I,IAAqBD,EACvB,MAAM,IAAI9pB,MAAMD,EAAOsqB,wBAE3B,CAAE,MAAO5pB,GAEP,YADAiC,EAAkB,QAASjC,EAAMnV,QAEnC,CAEA,MAAMs1B,EAAgB,IAAIzlB,GAAcC,EAAUse,GAAS,IAE3D1pB,EAASA,SAASE,KAAKtN,KAAOg+B,EAAclkB,cAC5B,QAAhBqU,EAAAvuB,EAAM2P,kBAAU,IAAA4e,GAAhBA,EAAkBmQ,OAAOlxB,GAEzBmxB,EAAiB/lB,GAEjB,MAAM9M,EAAwB,QAAnBuhB,EAAGrtB,EAAM2P,kBAAU,IAAA0d,OAAA,EAAhBA,EAAkB7f,SAASA,SAASE,KAAKtN,KACjD0nC,EAAapjC,OAAOuH,KAAKH,GACzB2qB,EAAaqR,EAAWvgC,KAAK8D,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAExDg4B,EAAep2B,KAAK2kB,OAAOG,GAE3B4I,EAAWyI,EAAWr7B,MACzBpB,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAAUg4B,KAGlC,EAAE/8B,EAAC,EAAEH,GAAMD,EAAgBy0B,GAE3B/rB,EAAOtI,EAAI,EAAQ,GAAJA,EACfuI,EAAO1I,EAAI,EAAQ,GAAJA,EAEjB7K,EAAM2P,aACR3P,EAAM2P,WAAW6D,UAAYF,EAC7BtT,EAAM2P,WAAW8D,UAAYF,EACzBvT,EAAM2P,WAAW+B,YACnB1R,EAAM2P,WAAW+B,UAAU5G,MAAM4I,UAAS,aAAA7K,OAAgB7I,EAAM2P,WAAW6D,SAAQ,4BAAA3K,OAC3E7I,EAAM2P,WAAW8D,SAAQ,kCAAA5K,OACnB7I,EAAM2P,WAAW2B,KAAI,OAGzC,MACE4O,EAAkB,QAAS3C,EAAOyqB,0BAGpC9nB,EAAkB,QAAS3C,EAAOyqB,oBAEtC,CACF,CO0bMC,CAAsB,CACpB/nB,oBACAlgB,QACA2+B,mBACAphB,OAAQ,CACNyqB,oBAAqB7N,EACnB,mCAEF0N,wBAAyB1N,EACvB,uCAEFsN,sBAAuBtN,EACrB,uCAIR,GAypBIwE,mBACAyG,WAEA8C,WA7LahnC,UACjB,IAAIinC,EACF,gCACAC,mBAAmBnhC,KAAKC,UAAUlH,EAAM2P,aAEtC04B,EAAe1+B,SAASa,eAAe,sBACvC69B,IACFA,EAAajI,aAAa,OAAQ+H,GAClCE,EAAajI,aAAa,WAAY,cACtCiI,EAAaC,QACf,EAoLIpoB,oBACA0M,gBACArI,gBACAsI,aACA8Q,WACA4K,gBAngCkBrnC,MAAOge,EAAmBR,KAChD,MAAM8pB,QAAwBjpB,GAC5B,CACEnB,SAAUM,EACVQ,aAEFmR,GAGF,IAAIoY,EAAO,GAEND,EAAgB5qB,KAAK8qB,oBAkBxBD,EAAOD,EAAgB5qB,KAAK+qB,mBACtBhL,EAASze,EAAWR,GAAS,KAlBnCld,OAAOy7B,YAAc,KACrBz7B,OAAO07B,YAAc,KAErBn8B,EAAS,CAAEb,KAAM,iBACjBa,EAAS,CAAEb,KAAM,2BAEbF,EAAM2P,aACR3P,EAAM0hB,WAAY,EAClB1hB,EAAM2P,WAAW6e,YAAc,SAEjCia,EAAOD,EAAgB5qB,KAAK+qB,aAC5BvnC,aAAa6a,QAAQ,aAAcwsB,GAEnC1nC,EAAS,CACPb,KAAM,uBAKV,EAq+BI68B,eACAK,eACAt8B,SAEDA,GACoB,EAIpB,SAAS8nC,KAEd,OADgB3mC,qBAAWo6B,GAE7B,C,yBC1vCO,MAAMwM,GAAeC,aAAY,CACtCC,QAAS,CACPC,QAAS,CACPC,KAAM,YAGV9G,OAAQ,CACN+G,MAAO,OCGIC,OAJiChgB,IAAmB,IAAlB,SAAEroB,GAAUqoB,EAC3D,OAAOtnB,cAACunC,KAAa,CAACC,MAAOR,GAAa/nC,SAAEA,GAAyB,E,+FCQxDwoC,OAXyBzoC,IACtC,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEgB,cAAA,OAAKukB,MAAOgJ,GAAQ,MAAO/I,OAAS5e,OAAO2nB,GAAQ,EAAI,GAAM,KAAMjJ,QAAQ,aAAYrlB,SACrFe,cAAA,QAAMgG,GAAG,cAAc,YAAU,cAAc0e,EAAE,mhGAAmhGgJ,KAAK,UACrkG,ECVH,MAAM/vB,GAAe,CAC1B+pC,SAAU,GACVr4B,QAAS,EACTs4B,OAAQ,OACRC,gBAAiB,CACftmC,KAAM,GACNumC,WAAY,QACZzJ,OAAQ,CACN,CACEl+B,MAAO,GACP4nC,SAAU,MAIhBC,WAAY,CACV,CACE7nC,MAAO,GACP4nC,SAAU,KAGdE,iBAAkB,CAChB,CACE9nC,MAAO,GACP4nC,SAAU,KAGdpsB,OAAQ,CAAC,EACTusB,uBAAuB,EACvBC,eAAgB,CACd5mC,KAAM,GACNumC,WAAY,QACZzJ,OAAQ,CACN,CACEl+B,MAAO,GACP4nC,SAAU,CAAC,QAMZ,SAASK,GACdhqC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,iBACH,OAAOC,GAAiBF,EAAOC,MAAMF,EAAOC,EAAOG,MACrD,IAAK,wBAEL,IAAK,yBACH,OAAOD,GAAiBF,EAAOC,MAAMF,GAE3C,CAEA,MAAMG,GAAmB,CACvB8pC,eAAgBA,CACdjqC,EACAI,KAEO,IAAKJ,KAAUI,IAGxB0pC,sBAAuBA,CACrB9pC,EACAI,KAEO,IAAKJ,EAAO8pC,uBAAuB,IAG5CI,uBAAwBA,CACtBlqC,EACAI,KAEO,IAAKJ,EAAO8pC,uBAAuB,KCtEjCK,GAAgBxpC,wBAC3B,CAAC,GAGUypC,GACXvpC,IAEA,MAAM,SAAEC,GAAaD,GACdb,EAAOe,GAAYC,qBAAWgpC,GAAaxqC,IAElD,OACEqC,cAACsoC,GAAcroC,SAAQ,CACrBC,MAAO,CACL/B,MAAOA,GAASR,GAChBuB,YACAD,SAEDA,GACsB,EAItB,SAASupC,KAGd,OAFgBpoC,qBAAWkoC,GAG7B,CCiBeG,I,iFAAAA,GA1CkCzpC,IAC/C,MAAM,QACJ0pC,EAAO,MACPC,EAAK,MACLzoC,EAAK,QACL8lB,EAAO,UACP0D,EAAS,WACTkf,EAAU,SACV3c,EAAQ,MACR7P,EAAK,KACLysB,EAAI,SACJzwB,EAAQ,OACR0wB,EAAM,SACNtZ,EAAQ,KACRnxB,EAAI,WACJ0qC,EAAU,UACVC,EAAS,YACTC,KACGC,GACDlqC,EACJ,OACEgB,cAACuvB,KAAS,CACRmZ,QAASA,EACT1iB,QAASA,EACT2iB,MAAOA,EACPQ,QAASN,EACTnf,UAAWA,EACXkf,WAAYA,EACZxsB,MAAOA,EACPlc,MAAOA,EACP4oC,OAAQA,EACRtZ,SAAUA,EACVvD,SAAUA,EACV7T,SAAUA,EACV/Z,KAAMA,EACN0qC,WAAYA,EACZC,UAAWA,KACPE,GACJ,ECrCC,MAAME,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,4VAsB3BmmB,GAAatmB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,0JAY5BomB,GAAmBvmB,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,yRA2BlCqmB,IANkBxmB,aAAO0C,IAAST,MAAM,CACnD+C,UAAW,uBADkBhF,CAE7BW,QAAAR,aAAA,QAEkCH,aAAO4B,GAAP5B,CAAiBqC,QAAAlC,aAAA,QAEhBH,aAAO4B,GAAP5B,CAAiBuC,QAAApC,aAAA,SAWzCsmB,IATwBzmB,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,8HAS9BH,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,qgBA8B1BumB,GAAoB1mB,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,kPAsBnCwmB,GAAe3mB,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,qbAOjBlkB,GACtBA,EAAM2qC,WAAa3qC,EAAM4W,MAAQ,UAAY,SAClC5W,GACXA,EAAM2qC,WAAa3qC,EAAM4W,MAAQ,OAAS,YAI7B5W,GACXA,EAAM2qC,WAAa3qC,EAAM4W,MAAQ,OAAS,YAI/B5W,IACXA,EAAMitB,UAAYjtB,EAAM2qC,UAAY3qC,EAAM4W,MAAQ,UAE5B5W,GACtBA,EAAMitB,UAAYjtB,EAAM2qC,UAAY3qC,EAAM4W,MACtC,UACA5W,EAAM2qC,UAAY3qC,EAAM4W,MACxB,YACA5W,EAAM2qC,SACN,UACA,YAGM3qC,GACVA,EAAMitB,UAAYjtB,EAAM2qC,UAAY3qC,EAAM4W,MAAQ,UAAY,SAmBvDg0B,GAAe7mB,aAAO0C,GAAP1C,CAAemD,QAAAhD,aAAA,wLAyD9B2mB,IA7CqB9mB,aAAO0lB,GAAP1lB,CAAoBoD,QAAAjD,aAAA,QAEvBH,KAAOC,IAAGoD,QAAAlD,aAAA,8EAMrBH,KAAOC,IAAGqD,QAAAnD,aAAA,kDAKDH,KAAOC,IAAG8mB,QAAA5mB,aAAA,wGAOhBH,KAAOC,IAAG+mB,QAAA7mB,aAAA,oVAqBKH,aAAO4B,IAAWK,MAAM,CAC5D/lB,SAAU,kBAD0B8jB,CAEpCinB,QAAA9mB,aAAA,QAEwBH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BknB,QAAA/mB,aAAA,gCAsBzCgnB,IAlBmBnnB,aAAO0C,GAAP1C,CAAeonB,QAAAjnB,aAAA,uLAcrBH,aAAO0C,GAAP1C,CAAeqnB,QAAAlnB,aAAA,+BAITH,KAAOC,IAAGqnB,QAAAnnB,aAAA,+iBAkC7BonB,GAAqBvnB,KAAOwnB,KAAIC,QAAAtnB,aAAA,yDAMhCunB,GAAgB1nB,KAAOC,IAAG0nB,QAAAxnB,aAAA,uFAM1BynB,GAAkB5nB,KAAOC,IAAG4nB,QAAA1nB,aAAA,gMAc5B2nB,GAAoB9nB,KAAOC,IAAG8nB,QAAA5nB,aAAA,qNAgB9B6nB,GAAmBhoB,KAAOC,IAAGgoB,QAAA9nB,aAAA,yKAaTH,KAAOC,IAAGioB,QAAA/nB,aAAA,4Q,yBCnV5BgoB,I,oCAAAA,GANsBlsC,IACnC,MAAM,SAAEC,GAAaD,EAErB,OAAOgB,cAACmrC,KAAG,IAAKnsC,EAAKC,SAAGA,GAAe,E,WCHlC,MAAMmsC,GAAkBroB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,+HAUjCmoB,GAAmBtoB,aAAOuoB,KAAPvoB,CAAWO,QAAAJ,aAAA,4FAO9BqoB,GAAkBxoB,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,iCAIjCsoB,GAAmBzoB,aAAO4B,GAAP5B,CAAiBW,QAAAR,aAAA,uDAMpCuoB,GAAiB1oB,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,+BAQhCwoB,IAJmB3oB,aAAO4B,IAAWK,MAAM,CACtD/lB,SAAU,UADoB8jB,CAE9BuC,QAAApC,aAAA,QAEsBH,aAAOmoB,GAAPnoB,CAAcyC,QAAAtC,aAAA,6FAQzByoB,GAAY5oB,aAAOmoB,GAAPnoB,CAAc8C,QAAA3C,aAAA,iCAI1B0oB,GAAa7oB,aAAOmoB,GAAPnoB,CAAc+C,QAAA5C,aAAA,iOAc3B2oB,GAAe9oB,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,4BAI9B4oB,GAAkB/oB,aAAO4B,GAAP5B,CAAiBmD,QAAAhD,aAAA,QAEnC6oB,GAAiBhpB,aAAO0C,GAAP1C,CAAeoD,QAAAjD,aAAA,qE,4FCtEtC,MAAM8oB,GAAmBjpB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mQACnClkB,GAAUA,EAAMuuB,KAAI,GAAAvmB,OAAMhI,EAAMuuB,KAAI,MAAO,SAC1CvuB,GAAUA,EAAMuuB,KAAI,GAAAvmB,OAAMhI,EAAMuuB,KAAI,MAAO,SCAzC,SAAS0e,GAAqBjtC,GAC3C,MAAM,KAAEuuB,EAAI,iBAAE2e,GAAqBltC,EAEnC,OACEgB,cAACgsC,GAAgB,CAACze,KAAMA,EAAMtD,QAASiiB,EAAiBjtC,SACtDe,cAACmsC,KAAU,KAGjB,C,aCVO,MAAM/C,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,QAE3BkpB,GAAmBrpB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,mDACjClkB,GACVA,EAAMuuB,MAAQvuB,EAAMuuB,KAAO,EAAI,sBAAwB,mBAK9C8e,GAAiBtpB,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,6K,0CCTtC,MAAMkmB,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,yNAc3BopB,GAAiBvpB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,kGAOhCqpB,GAAkBxpB,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,mEAMjCspB,GAAczpB,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,+MAgB7BupB,GAAgB1pB,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,kJAY/BwpB,GAAsB3pB,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,yJ,wDC3CnC,SAASypB,GAAW3tC,GACjC,MAAM4tC,EAAW5tC,EAAMkJ,OACjB,MAAE/J,EAAK,SAAEe,GAAaspC,MACtB,gBAAEZ,GAAoBzpC,GACtB,OAAEigC,GAAWjgC,EAAMypC,iBAElBiF,EAAYC,GAAiBxiB,mBAAiB,KAChD,eAAEgO,GAAmBH,KAO1B,SAAS4U,EAAmBn5B,EAAc1L,GACxC,OACEkc,eAACooB,GAAW,CAAAvtC,SAAA,CACT2U,EACD5T,cAACysC,GAAa,CAACxiB,QAASA,IAT9B,SAA6B/hB,GAC3Bk2B,EAAOwO,GAAU9E,SAAS37B,OAAOjE,EAAO,GACxChJ,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,oBAC7C,CAMoCoF,CAAoB9kC,GAAOjJ,SACvDe,cAACkqB,KAAS,QAHIhiB,EAOtB,CAeA,OACEkc,eAACglB,GAAS,CAAAnqC,SAAA,CACRe,cAAC0sC,GAAmB,CAAAztC,SAClBe,cAACuvB,KAAS,CACRC,SAAWjoB,GAAMulC,EAAcvlC,EAAEkG,OAAOvN,OACxC8lB,QAAQ,WACR0D,WAAS,EACTxpB,MAAO2sC,EACP5D,YACG7K,EAAOwO,GAAU1sC,MACsB,GAAA8G,OACjCsxB,EAAe,yBAAwB,MAAAtxB,OAAKo3B,EAAOwO,GAAU1sC,OAAS,GAAE,KAD3Eo4B,EAAe,sBAGrB2U,UAAYzgB,GA1BpB,SAA2BA,GACH,KAAlBA,EAAM0gB,SAAoC,IAAlB1gB,EAAM0gB,UACb,KAAfL,IACGzO,EAAOwO,GAAU1sC,QACpBk+B,EAAOwO,GAAU1sC,MAAQ2sC,GAE3BzO,EAAOwO,GAAU9E,SAAS1/B,KAAKykC,GAC/B3tC,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,sBAE7CkF,EAAc,IAElB,CAe8BK,CAAkB3gB,OAG5CxsB,cAACssC,GAAc,CAAArtC,SAAEm/B,EAAOwO,GAAU1sC,OAAS,KAC3CF,cAACusC,GAAe,CAAAttC,SACbm/B,EAAOwO,GAAU9E,SAASpiC,KAAI,CAACkO,EAAM1L,IACpC6kC,EAAmBn5B,EAAM1L,SAKnC,CC1EO,MAAMkhC,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,0BAI3BkpB,GAAmBrpB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,wEACjClkB,GACVA,EAAMuuB,MAAQvuB,EAAMuuB,KAAO,EAAI,sBAAwB,cAM9C8e,GAAiBtpB,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,6IAWhCkqB,GAAiBrqB,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,qGCd9B,SAASmqB,KACtB,MAAM,kBAAEhvB,GAAsB0oB,MACxB,MAAE5oC,EAAK,SAAEe,GAAaspC,MACtB,gBAAEZ,GAAoBzpC,GACtB,OAAEigC,GAAWjgC,EAAMypC,iBACnB,eAAEtP,GAAmBH,KAWrBmV,EAAmBplC,GAErBkc,eAACioB,GAAc,CAAAptC,SAAA,CACbe,cAAC2sC,GAAU,CAACzkC,MAAOA,IAClBk2B,EAAOv5B,OAAS,EACf7E,cAACotC,GAAc,CAAAnuC,SACbe,cAACisC,GAAoB,CACnBC,iBAAkBA,IAhBJhkC,KACpBk2B,EAAOv5B,OAAS,GAClBu5B,EAAOjyB,OAAOjE,EAAO,GACrBhJ,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,sBAE3CvpB,EAAkB,QAAS,kCAC7B,EAUkCkvB,CAAiBrlC,OAI7ClI,cAACotC,GAAc,CAAAnuC,SAAC,QACjB,MAAA+H,OAVwBkB,IAoB/B,OACEkc,eAACglB,GAAS,CAAAnqC,SAAA,CACRmlB,eAACwnB,GAAU,CAAA3sC,SAAA,CACTmlB,eAAA,QAAAnlB,SAAA,CACGq5B,EAAe,uBAAuB,IAACt4B,cAAA,UAAAf,SAAQ,QAAY,MAAI,IAChEe,cAAA,UAAAf,SAAQ,UAAc,OAExBe,cAAC8rC,GAAe,CACd9lB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAhBiBwjB,KACvBrP,EAAOh2B,KAAK,CAAElI,MAAO,GAAI4nC,SAAU,KACnC5oC,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,oBAAoB,EAc/B3oC,SAE9Bq5B,EAAe,0BAGft4B,cAAC0tC,KAAO,IACR1tC,cAACosC,GAAgB,CAAC7e,KAAM6Q,EAAOv5B,OAAO5F,SACnCm/B,EAAO14B,KAAI,CAAC8P,EAAGtN,IAAUolC,EAAgBplC,SAIlD,CCvDe,SAASylC,KACtB,MAAM,kBAAEtvB,GAAsB0oB,MACxB,MAAE5oC,EAAK,SAAEe,GAAaspC,MACtB,gBAAEZ,GAAoBzpC,GACtB,OAAEigC,GAAWjgC,EAAMypC,iBACnB,eAAEtP,GAAmBH,KAoBrBmV,EAAkBA,CAAC15B,EAA+B1L,IAEpDkc,eAACioB,GAAc,CAAAptC,SAAA,CACbe,cAACyoC,GAAY,CACX/e,WAAS,EACTif,MAAOrQ,EAAe,yBACtBtS,QAAQ,WACR9lB,MAAO0T,EAAK1T,MACZsvB,SAAWjoB,GAjBYqmC,EAC7BrmC,EACAW,KAEA,MAAMhI,EAAQqH,EAAEkG,OAAOvN,MACvBk+B,EAAOl2B,GAAS,CAAEhI,QAAO4nC,SAAU,CAAC5nC,IACpChB,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,oBAAoB,EAWxCgG,CAAuBrmC,EAAGW,KAE5Ck2B,EAAOv5B,OAAS,EACf7E,cAACotC,GAAc,CAAAnuC,SACbe,cAACisC,GAAoB,CACnBC,iBAAkBA,IA/BJhkC,KACpBk2B,EAAOv5B,OAAS,GAClBu5B,EAAOjyB,OAAOjE,EAAO,GACrBhJ,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,sBAE3CvpB,EAAkB,QAAS,kCAC7B,EAyBkCkvB,CAAiBrlC,OAI7ClI,cAAAysB,WAAA,CAAAxtB,SAAE,QAfeiJ,GA0BzB,OACEkc,eAACglB,GAAS,CAAAnqC,SAAA,CACRmlB,eAACwnB,GAAU,CAAA3sC,SAAA,CACTmlB,eAAA,QAAAnlB,SAAA,CACGq5B,EAAe,uBAAwB,IACxCt4B,cAAA,KAAAf,SACEe,cAAA,KACE6tC,KAAK,oFACLpgC,OAAO,SACPqgC,IAAI,aAAY7uC,SAEfq5B,EAAe,+BAEhB,OAGNt4B,cAAC8rC,GAAe,CACd9lB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAzBiBwjB,KACvBrP,EAAOh2B,KAAK,CAAElI,MAAO,GAAI4nC,SAAU,KACnC5oC,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,oBAAoB,EAuB/B3oC,SAEzBq5B,EAAe,0BAGpBt4B,cAAC0tC,KAAO,IACR1tC,cAACosC,GAAgB,CAAC7e,KAAM6Q,EAAOv5B,OAAO5F,SACnCm/B,EAAO14B,KAAI,CAACuN,EAAM/K,IAAUolC,EAAgBr6B,EAAM/K,SAI3D,CC3FO,MAAM6lC,GAAc1uC,MACzB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,aACvC,aAAavD,GAA2B,MAAO5a,EAAQc,EAAS,EAGrD8uC,GAAe3uC,MAC1B8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,aACvC,aAAavD,GAA4B,OAAQ5a,EAAQc,EAAUia,EAAQ,ECVhE80B,GACJ/tC,GACEkM,EAAQlM,EAAMiI,QAAQ,KAAM,KAAK,GAAM+lC,OAAO,EAAG,ICe7C,SAASC,KACtB,MAAMtxB,EAAUkqB,KAAU5oC,MAAM0e,SAAW,IACrC,kBAAEwB,GAAsB0oB,MACxB,SAAE7nC,EAAQ,MAAEf,GAAUqqC,MACtB,gBAAEZ,EAAe,OAAElsB,EAAM,UAAE0yB,GAAcjwC,GACvCe,SAAUsvB,GAAgBruB,KAC3BkuC,EAAcC,GAAmBhkB,oBAAS,IAC1CikB,GAAiBjkB,mBAAS,IAC1B1L,EAAS4vB,GAAclkB,oBAAS,IACjC,eAAEgO,GAAmBH,KAE3B/4B,qBAAU,KAC2B,UAA/BwoC,EAAgBC,WAClByG,GAAgB,GAEhBA,GAAgB,EAClB,GACC,CAAC1G,EAAgBC,aA8GpB,OACEzjB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACurC,GAAe,CAAAtsC,SACde,cAACqrC,GAAgB,CAACrlB,QAAQ,WAAWiE,QAXpBwkB,KACvBvvC,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAEopC,OAAQ,OAAQyG,eAAW5rC,IACnC,EAOmEvD,SAC7De,cAAC0uC,KAAa,QAGlB1uC,cAACuvB,KAAS,CACRoZ,MAAOrQ,EAAe,kBACtBtS,QAAQ,WACR0D,WAAW,EACXxpB,MAAO0nC,EAAgBtmC,KACvBkuB,SA7BkBjoB,IACxB,MAAM,MAAErH,GAAUqH,EAAEkG,OACpBm6B,EAAgBtmC,KAAO2sC,GAAoB/tC,GAC3ChB,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAEqpC,kBAAiBlsB,OAAQ,CAAEpa,KAAM,MACzC,EAwBI8a,QAASV,EAAa,KACtBqtB,WAAYrtB,EAAa,OAE3B0I,eAAConB,GAAgB,CACfpoB,MAAM,UACN4C,QAAQ,YACRiE,QAhHsB5qB,UAC5B,GAAIuf,EAAS,OAEb4vB,GAAW,GAEX,MAAM,KAAEltC,GAASnD,EAAMypC,gBACjBxJ,EAASwJ,EAAgBxJ,OAAOr4B,QAAQ4oC,KAAQA,EAAEzuC,MAAMwQ,SAC9D,GAAMpP,GAAU88B,EAAOv5B,OAAQ,CAC7B1G,EAAMypC,gBAAgBtmC,KAAOA,EAC7BnD,EAAMypC,gBAAgBxJ,OAASA,EAC/B,MAAMsJ,EAAW,IAAIvpC,EAAMupC,UAG3B,GADsBA,EAAS3hC,QAAQwB,GAAMA,EAAEjG,OAASA,IACtCuD,OAAS,EAGzB,OAFAwZ,EAAkB,QAAS,oDAC3BmwB,GAAW,QAIKhsC,IAAd4rC,EACF1G,EAASt/B,KAAK,IAAKjK,EAAMypC,kBAEzBF,EAAS0G,GAAa,IAAKjwC,EAAMypC,iBAGnC,IAAIzgC,QAAe6mC,GACjB,CACEzxB,SAAUM,EACV6qB,YAEFlZ,GAGErnB,EAAO+U,QACThd,EAAS,CACPb,KAAM,iBACNE,KAAM,IAAKJ,EAAOwpC,OAAQ,OAAQyG,eAAW5rC,KAG/C6b,EACE,QACAlX,EAAOgV,SAAWmc,EAAe,4BAGvC,KAAO,CACL,IAAI5c,EAAoC,CAAC,EACpCpa,IACHoa,EAAa,KAAC,IAAA1U,OAAOsxB,EAAe,8BAEjC8F,EAAOv5B,SACV6W,EAAe,OAAC,IAAA1U,OAAQsxB,EAAe,+BAEzCja,EAAkB,QAASia,EAAe,uCAC1Cp5B,EAAS,CACPb,KAAM,iBACNE,KAAM,CACJmd,WAGN,CAEA8yB,GAAW,EAAM,EAmDoBvvC,SAAA,CAE9Bq5B,EAAe,QACf1Z,GAAW5e,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,WAGxDnJ,eAACsnB,GAAQ,CAAAzsC,SAAA,CACPe,cAAC2rC,GAAS,CAAA1sC,SACRmlB,eAACyqB,KAAU,CAACC,KAAG,EAAC5uC,MAAOmuC,EAAc7e,SAxDpBuf,KACvBnH,EAAgBC,WAAawG,EAAe,QAAU,cACnB,UAA/BzG,EAAgBC,YAClB1pC,EAAM6pC,iBAAmB,IAAIJ,EAAgBxJ,QAC7CwJ,EAAgBxJ,OAAS,IAAIjgC,EAAM4pC,cAEnC5pC,EAAM4pC,WAAa,IAAIH,EAAgBxJ,QACvCwJ,EAAgBxJ,OAAS,IAAIjgC,EAAM6pC,mBAErC9oC,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEqpC,oBAAoB,EA+CO3oC,SAAA,CAC9De,cAACgvC,KAAgB,CACf9uC,OAAO,EACP+uC,QAASjvC,cAACkvC,KAAK,CAAC9rB,MAAM,YACtBulB,MAAOrQ,EAAe,2BAExBt4B,cAACgvC,KAAgB,CACf9uC,OAAO,EACP+uC,QAASjvC,cAACkvC,KAAK,CAAC9rB,MAAM,YACtBulB,MAAOrQ,EAAe,gCAK5BlU,eAACynB,GAAY,CAAA5sC,SAAA,GACRyc,EAAe,QAChB1b,cAAC+lB,KAAU,CAAC3C,MAAM,QAAQna,MAAO,CAAEimB,QAAS,YAAajwB,SACtDyc,EAAe,SAGpB1b,cAAC+rC,GAAc,CAAA9sC,SA5JNkwC,MACf,IAAIr8B,EAAQ,GACZ,IAAK,IAAIG,EAAO,EAAGA,EAAOs7B,EAAet7B,GAAQ,EAC/CH,EAAM1K,KACJpI,cAAAysB,WAAA,CAAAxtB,SACGovC,EACCruC,cAAC2tC,GAAmB,QAAA3mC,OAAWiM,IAE/BjT,cAACqtC,GAAW,QAAArmC,OAAWiM,OAK/B,OAAOH,CAAK,EA+IWq8B,WAGrBnvC,cAACyrC,GAAc,MAGrB,C,yBCpMe2D,I,kBAAAA,GATuCpwC,IACpD,MAAM,SAAEC,GAAaD,EACrB,OACEgB,cAAC+lB,KAAU,IAAK/mB,EAAKC,SAClBA,GACU,ECNV,MAAMmsC,GAAkBroB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,+RAuBjCmsB,IAJ+BtsB,aAAO4B,IAAWK,MAAM,CAAC,EAAzBjC,CAA2BO,QAAAJ,aAAA,gCAIhCH,aAAO4B,GAAP5B,CAAiBS,QAAAN,aAAA,SAE3CosB,GAA8BvsB,aAAOqsB,GAAPrsB,CAAqBW,QAAAR,aAAA,QAEnDqsB,GAAaxsB,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,+BAI5BssB,GAAmBzsB,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,kI,uFCjCxC,MAAMusB,GAAoB1sB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,sPAmBnCwsB,GAAiB3sB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,gDAKhCysB,GAAiB5sB,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,6BAIhC0sB,GAAY7sB,KAAOC,IAAGU,QAAAR,aAAA,oH,cCf5B7jB,eAAewwC,GAAaC,GACjC,MAAMC,EAAUC,GAASF,GAEnBG,EAAenoC,SAASa,eAAe,YAGvCunC,EAAM,IAAIC,KAAK,CADT,SACgBJ,GAAU,CACpC1xC,KAAM,2BAGF+xC,EAAwBzwC,OAAO0wC,IAAIC,gBAAgBJ,GAEzD,GAAIE,EAAuB,CACzB,MAAM5J,EAAe1+B,SAAS2iB,cAAc,KAEzB,IAAD8lB,EAAlB,GADY,OAAZN,QAAY,IAAZA,KAAcplB,YAAY2b,GACtBA,EACFA,EAAajI,aAAa,OAAQ6R,GAElC5J,EAAajI,aAAa,WAAW,GAADv3B,OAAK8oC,EAAOxuC,KAAI,SACpDklC,EAAaC,QACU,QAAvB8J,EAAA/J,EAAagK,kBAAU,IAAAD,GAAvBA,EAAyBE,YAAYjK,EAEzC,CACF,CAEA,MAAMwJ,GAAW,SAAUF,GACzB,IAAIY,EAAqB,GAiBzB,OAfeZ,EAAO1R,OAEf9zB,SAASpK,IACd,MAAMywC,EAAYzwC,EAAMA,MACxBwwC,GAAsBC,EAAY,IACjBzwC,EAAM4nC,SAEdx9B,SAASsmC,IAChBF,GAAkB,IAAA1pC,OAAQ4pC,EAAO,KAAI,IAGvCF,EAAqBA,EAAmBvoC,QAAQ,cAAe,IAC/DuoC,GAAsB,IAAI,IAGrBA,CACT,EAEOrxC,eAAewxC,GACpB1yC,EACAe,EACAqvB,EACAuiB,EACAj0B,EACA2R,EACAtmB,EACA6oC,GACC,IAADC,EACA,MAAMtJ,EAAWvpC,EAAMupC,SAEjBuI,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,kBAErB,IAAIC,GAAe,EAEnB,GAAIJ,GAKF,GAJAI,EACEjpC,GACAw/B,EAASn8B,WAAWukC,GAAWA,EAAOxuC,OAASnD,EAAM+pC,eAAe5mC,OAElE6vC,GAAe,EAAG,CACpB,MAAMC,EAAajzC,EAAM+pC,eACnBmJ,EAAe,IAAI3J,GACzB2J,EAAaF,GAAeC,SAETpD,GACjB,CACEzxB,SAAUM,EACV6qB,SAAU2J,GAEZ7iB,IAGOtS,SACPhd,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAEmpC,SAAU2J,KAEpB9iB,EAAM,UAAWuiB,EAASQ,mBACrB/iB,EAAM,QAASuiB,EAASS,SACjC,OAIFN,EAAYO,SAAWnyC,UAAmB,IAADoyC,EACvC,MAAMC,EAAqB,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAC5Bg+B,EAAWF,EAAKpwC,KACtB,IAAIuwC,EAAaD,EAEjB,GAAkB,aAAdF,EAAKrzC,KAAqB,CAC5B,MAAMyzC,EAAW,SACjBD,EAAaD,EAAS3d,MAAM6d,GAAU,GAEtC,MAAMC,EAAS,IAAIC,WACnBD,EAAOE,WAAWP,EAAM,SACxBK,EAAOpnB,OAAStrB,eAAgBkI,GAC9B,GAAIA,EAAEkG,QAAUlG,EAAEkG,OAAOtG,QACQ,kBAApBI,EAAEkG,OAAOtG,OAAqB,CACvC,MAAM+qC,EA8ElB,SAAmB3zC,GACjB,IAAIwxC,EAAe,GAKnB,OAJgBxxC,EAAKwU,MAAM,MACjBzI,SAAS6nC,IACjBpC,EAAQ3nC,KAAK+pC,EAAIp/B,MAAM,KAAK,IAEvBg9B,CACT,CArF+BqC,CAAU7qC,EAAEkG,OAAOtG,QAEtC,GAAI+qC,EAAY,CACd,MAAM9T,EAAS8T,EAAWxsC,KAAKkO,IAC7B,MAAMy+B,EAAez+B,EAAKlO,KAAK+G,GAAWA,EAAEtE,QAAQ,KAAM,MAE1D,OADAkqC,EAAalmC,OAAO,EAAG,GAChB,CAAEjM,MAAO0T,EAAK,GAAIk0B,SAAUuK,EAAc,IAI7CC,EADQ,WACOp3B,KAAKkjB,EAAO,GAAGl+B,OAE9B0nC,EAA2B,CAC/BtmC,KAAMuwC,EACNzT,SACAyJ,WAAYyK,EAAS,QAAU,eAGjC,GAAIvB,QAAyBvuC,IAAV0F,EAAqB,CACtC,IAAIkpC,EAAa1J,EAASx/B,GAE1B,GAAIkpC,EAAY,CACdA,EAAaxJ,EACb,MAAMyJ,EAAe,IAAI3J,GACzB2J,EAAanpC,GAASkpC,EAEtBlyC,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAEmpC,SAAU2J,IAEtB,CACA,MACF,CAEA,IAAKN,EAAa,CAKhB,GAJAI,EAAczJ,EAASn8B,WACpBukC,GAAWA,EAAOxuC,OAASuwC,IAG1BV,GAAe,EAMjB,OALAjyC,EAAS,CAAEb,KAAM,+BACjBa,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAE2pC,eAAgBN,YAIPoG,GACjB,CACEzxB,SAAUM,EACV6qB,SAAU,IAAIA,EAAUE,IAE1BpZ,IAGOtS,SACPhd,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAEmpC,SAAU,IAAIA,EAAUE,MAElCrZ,EAAM,UAAWuiB,EAASyB,aACrBhkB,EAAM,QAASuiB,EAASS,SAEnC,CACF,CACF,CAEJ,CACF,MACEhjB,EAAM,QAASuiB,EAAS0B,cAC1B,EAGU,OAAZvC,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBuK,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,EACtC,CAaewB,I,YCtMA,SAASC,GAAa1zC,GACnC,MAAM,KAAE4U,EAAI,YAAE++B,EAAW,aAAEC,GAAiB5zC,GACrC6zC,EAAWC,GAAgBxoB,oBAAS,IACrC,eAAEgO,GAAmBH,KAQ3B,OACE/T,eAAC0H,GAAmB,CAClBinB,aAAcA,IAAMD,GAAa,GACjCE,aAAcA,IAAMF,GAAa,GACjC7oB,QAAS0oB,EAAY1zC,SAAA,CAErBmlB,eAAA,OAAAnlB,SAAA,CACEe,cAAC8rB,GAAgB,CAAA7sB,SAAE2U,EAAKtS,OACxBtB,cAAC8rB,GAAgB,CAAA7sB,SACM,UAApB2U,EAAKi0B,WACFvP,EAAe,mBACfA,EAAe,wBAGtBua,GACC7yC,cAAAysB,WAAA,CAAAxtB,SACEmlB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC+pB,KAAU,CAACE,QAAU1iB,GAvBJA,KAC1BA,EAAEC,iBACFD,EAAEE,kBACFooC,GAAaj8B,EAAK,EAoBkBq/B,CAAmB1rC,GAAGtI,SAChDe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,sBAAsBr5B,SACnDe,cAACkzC,KAAa,QAGlBlzC,cAAC+pB,KAAU,CACTE,QAAU1iB,IACRA,EAAEC,iBACFD,EAAEE,kBACFmrC,GAAc,EACd3zC,SAEFe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,oBAAoBr5B,SACjDe,cAACssB,KAAM,eAQvB,CC7DO,MAAM3G,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,6YAwBjCC,GAAUJ,KAAOC,IAAGM,QAAAJ,aAAA,4BAIpB/G,GAAU4G,KAAOC,IAAGQ,QAAAN,aAAA,gCAIpBiwB,GAAgBpwB,KAAOC,IAAGU,QAAAR,aAAA,kFCoDxBkwB,OArE8BA,KAC3C,MAAM,MAAEj1C,EAAK,SAAEe,GAAaspC,MACtB,kBAAEnqB,EAAmBlgB,MAAOk1C,GAActM,MAC1C,QAAElqB,GAAYw2B,GACZn0C,SAAUsvB,GAAgBruB,KAE5B,eAAEm4B,GAAmBH,KAErBmb,EAA2C,CAC/Cf,WAAYja,EAAe,0BAC3BgZ,iBAAkBhZ,EAAe,gCACjCka,cAAela,EAAe,sCAC9BiZ,SAAUjZ,EAAe,yBAG3B,IAAKn6B,EAAM8pC,sBAAuB,OAAOjoC,cAAAysB,WAAA,IAEzC,SAAShF,IACPvoB,EAAS,CAAEb,KAAM,0BACnB,CAgBA,OACE+lB,eAACoF,KAAM,CAAChC,KAAMrpB,EAAM8pC,sBAAuBte,SAAS,KAAKD,WAAS,EAAAzqB,SAAA,CAChEe,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SAAEq5B,EAAe,aACzCt4B,cAAC+pB,KAAU,CACTC,KAAK,MACL5G,MAAM,UACN6G,QAASA,IAAMxC,IACf,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,aAKlB9F,eAAC0H,GAAS,CAAA7sB,SAAA,CACRe,cAAC8rB,GAAS,CAAA7sB,SACRe,cAAC+lB,KAAU,CAACC,QAAQ,QAAO/mB,SACxBq5B,EAAe,uCAGpBlU,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC4kB,KAAM,CAACqF,QAASxC,EAAYxoB,SAAEq5B,EAAe,YAC9Ct4B,cAAC4kB,KAAM,CAACqF,QAvChB,WACE4mB,GACE1yC,EACAe,EACAmf,EACAi1B,EACAz2B,GAAW,GACX2R,OACAhsB,GACA,GAEFilB,GACF,EA2ByCxoB,SAC9Bq5B,EAAe,uBAIf,EC5DE,SAASib,KACtB,MAAM12B,EAAUkqB,KAAU5oC,MAAM0e,SAAW,IACnC3d,SAAUsvB,GAAgBruB,IAC5BouB,EAAQwY,KAAU1oB,mBAClB,SAAEnf,EAAQ,MAAEf,GAAUqqC,MACrBt1B,EAAQsgC,GAAalpB,mBAAS,KAC/B,SAAEod,EAAQ,OAAEC,GAAWxpC,GACtBN,EAAM41C,GAAWnpB,oBAAS,IAC3B,eAAEgO,GAAmBH,KAErBmb,EAA2C,CAC/Cf,WAAYja,EAAe,0BAC3BgZ,iBAAkBhZ,EAAe,gCACjCka,cAAela,EAAe,sCAC9BiZ,SAAUjZ,EAAe,yBAK3Bl5B,qBAAU,MACRC,iBACE,GAAe,SAAXsoC,EAAmB,CACrB8L,GAAQ,GACR,MAAMC,EAAen0C,aAAaC,QAAQ,aAADwH,OAAc6V,IACvD,IAAI6qB,EAAsBtiC,KAAKw2B,MAAM8X,GAAgB,MACjDvsC,QAAe4mC,GAAY,CAAExxB,SAAUM,GAAW2R,GAElDrnB,EAAO+U,SACH/U,EAAO4U,OACX2rB,EAAWvgC,EAAO4U,KAClB7c,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAE8Q,QAAS,KACpD9P,aAAa8Z,WAAW,aAADrS,OAAc6V,KAIzC3d,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEmpC,cAC3C+L,GAAQ,EACV,CACF,CACA51C,EAAM,GAEL,CAACqB,EAAUyoC,EAAQ9qB,IAqFtB,OACEuH,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACsvC,GAA2B,CAACtpB,QAAQ,KAAK5C,MAAM,UAASnkB,SACtDq5B,EAAe,qBAElBlU,eAAA,OAAAnlB,SAAA,CACEe,cAACqvC,GAAuB,CACtBrpB,QAAQ,YACR+F,UAAW/rB,cAAC2zC,KAAG,IACf1pB,QA7FgB2pB,KACxB,GAAM/2B,EAAS,CAQb3d,EAAS,CACPb,KAAM,iBACNE,KAAM,CACJopC,OAAQ,MACRC,gBAT6B,CAC/BtmC,KAAM,GACNumC,WAAY,QACZzJ,OAAQ,CAAC,CAAEl+B,MAAO,GAAI4nC,SAAU,MAO9BC,WAZ6B,CAAC,CAAE7nC,MAAO,GAAI4nC,SAAU,KAarDE,iBAZmC,CAAC,CAAE9nC,MAAO,GAAI4nC,SAAU,KAa3DpsB,OAAQ,CAAC,IAGf,MACE6S,EAAM,UAAW+J,EAAe,6BAClC,EAwEmCr5B,SAE1Bq5B,EAAe,oCAElBt4B,cAAC+pB,KAAU,CAACE,QAnBO5qB,UACzBwxC,GAAa1yC,EAAOe,EAAUqvB,EAAO+kB,EAAez2B,EAAS2R,OAAahsB,GAAW,EAAM,EAkB7CvD,SACtCe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,4BAA4Br5B,SACzDe,cAAC6zC,KAAO,cAKhB7zC,cAACuvC,GAAU,CAAAtwC,SACTe,cAAC8zC,KAAY,CACX5rB,QApIQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAoItBxiB,KAAKquC,GAAWA,IACjCC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJoQ,MAAOrQ,EAAe,4BACtBtS,QAAQ,WACRwJ,SAAWjoB,GAAMisC,EAAUjsC,EAAEkG,OAAOvN,OACpC+zC,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo0C,KAAM,CAAChxB,MAAM,qBAQ5BpjB,cAACwvC,GAAgB,CAAAvwC,SACdpB,EACCmC,cAAC4uC,KAAgB,CAACxrB,MAAM,YAExBskB,EACGhiC,KAAI,CAACoqC,EAAQ5nC,KAAK,CAAQ4nC,SAAQ5nC,YAClCnC,QACE6N,GACCA,EAAKk8B,OAAOxuC,KAAKmP,cAAczE,QAAQkH,EAAOzC,gBAC3C,IAAMyC,IAEZxN,KAAKkO,GACJ5T,cAAC0yC,GAAY,CAEXxqC,MAAO0L,EAAK1L,MACZ0L,KAAMA,EAAKk8B,OACX6C,YAAaA,IApHPzqC,KAClBhJ,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAE6vC,UAAWlmC,KACtD,MAAM0/B,EAA2BF,EAASx/B,GAE1C,IAAI6/B,EAA6B,CAAC,CAAE7nC,MAAO,GAAI4nC,SAAU,KACrDE,EAAmC,CAAC,CAAE9nC,MAAO,GAAI4nC,SAAU,KAC5B,UAA/BF,EAAgBC,WAClBE,EAAa,IAAIH,EAAgBxJ,QAEjC4J,EAAmB,IAAIJ,EAAgBxJ,QAEzCl/B,EAAS,CACPb,KAAM,iBACNE,KAAM,CACJopC,OAAQ,MACRC,kBACAG,aACAC,mBACAoG,UAAWlmC,EACXwT,OAAQ,CAAC,IAEX,EA+F6B24B,CAAWzgC,EAAK1L,OACnC0qC,aAAcA,IA7FPvzC,WACnBo0C,GAAQ,GACR,MAAMa,EAAkB,IAAI5M,GAC5B4M,EAAgBnoC,OAAOjE,EAAO,GAC9B,IAAIf,QAAe6mC,GACjB,CACEzxB,SAAUM,EACV6qB,SAAU4M,GAEZ9lB,GAGErnB,EAAO+U,SACThd,EAAS,CACPb,KAAM,iBACNE,KAAM,CACJmpC,SAAU4M,EACVlG,eAAW5rC,KAGf+rB,EAAM,UAAW+J,EAAe,kCAEhC/J,EACE,QACApnB,EAAOgV,SAAWmc,EAAe,+BAGrCmb,GAAQ,EAAM,EAkEkBb,CAAah/B,EAAK1L,QAAO,iBAAAlB,OAJvB4M,EAAK1L,YASrClI,cAACozC,GAA0B,MAGjC,CC3LemB,OAtBQA,KAErB,MAAM,MAACp2C,GAAUqqC,KAajB,OACExoC,cAAC4pC,GAAY,CAAA3qC,SAZMu1C,MACnB,OAAQr2C,EAAMwpC,QACZ,IAAK,OAIL,QACE,OAAO3nC,cAACuzC,GAAgB,IAHxB,IAAK,MACH,OAAQvzC,cAACmuC,GAAW,IAG1B,EAKEqG,IACa,ECpBJ,SAASC,KACtB,OACEz0C,cAACuoC,GAAc,CAAAtpC,SACbe,cAACu0C,GAAI,KAGX,C,sHCRO,MAAMG,GAAmB3xB,KAAOC,IAAGC,QAAAC,aAAA,4NCc3ByxB,OAXM31C,IACnB,MAAM,QAAE4f,GAAY5f,EACpB,OAAK4f,EAGH5e,cAAC00C,GAAgB,CAAAz1C,SACfe,cAAC4uC,KAAgB,MAJA5uC,cAAAysB,WAAA,GAKA,E,uCCVR,MAAMmoB,GACnBC,WAAWhZ,EAAkB3oB,GAC3B,OAAQrQ,OAAOuH,KAAKyxB,GAAQ91B,QACzByD,GAAQqyB,EAAOj2B,OAAO4D,IAAMjL,KAAK+C,KAAK0K,QAAQkH,IAAW,GAE9D,E,8CCcF,MAAM4hC,GAAYC,cAAYvN,GAC5BwN,aAAa,CACXC,KAAM,CACJ/lB,QAAS,UACTC,QAAS,OACTC,WAAY,SACZ7K,MAAO,IACP1V,SAAU,WACV3F,IAAK,GACLE,KAAM,MACNyI,UAAW,oBAEb9G,MAAO,CACLmqC,WAAY1N,EAAM2N,QAAQ,GAC1BC,KAAM,GAERC,QAAS,CACPC,OAAQ,EACRlyB,MAAO,sBACP4J,SAAU,UAEZuoB,WAAY,CACVrmB,QAAS,IAEXsmB,QAAS,CACPhxB,OAAQ,GACR8wB,OAAQ,OAKC,SAASG,GAAYz2C,GAClC,MAAM,MAAEb,GAAU4oC,MAEZ,YAAEtf,GAAgBzoB,GAEjBkU,EAAQsgC,GAAalpB,mBAAS,KAC9BorB,EAAcC,GAAmBrrB,mBAAmB,KACpDsrB,EAAeC,GAAoBvrB,mBAAS,GAE7CwrB,EAAUhB,KA6CV1jC,EAAY2kC,IAChB,MAAM,EAAE5sC,EAAC,EAAEH,GAAMD,EAAgB2sC,EAAaK,IAE9C,GAAI53C,EAAM2P,WAAY,CACpB0B,IACA,MAAMiC,EAAOtI,EAAI,EAAQ,GAAJA,EACfuI,EAAO1I,EAAI,EAAQ,GAAJA,EACrB7K,EAAM2P,WAAW6D,UAAYF,EAC7BtT,EAAM2P,WAAW8D,UAAYF,EAEzBvT,EAAM2P,WAAW+B,YACnB1R,EAAM2P,WAAW+B,UAAU5G,MAAM4I,UAAS,aAAA7K,OAAgB7I,EAAM2P,WAAW6D,SAAQ,oBAAA3K,OAC/E7I,EAAM2P,WAAW8D,SAAQ,+BAGjC,GAGIpC,EAAgBA,KAChBrR,EAAM2P,aACJ3P,EAAM2P,WAAW2B,KAAO,IAC1BtR,EAAM2P,WAAW4B,UACjBF,KACSrR,EAAM2P,WAAW2B,KAAO,KACjCtR,EAAM2P,WAAW6B,WACjBH,KAEJ,EASF,OACE4U,eAAC4xB,KAAK,CACJC,UAAU,OACVluB,UAAW+tB,EAAQb,KACnBiB,SAAW3uC,GAAuCA,EAAEC,iBAAiBvI,SAAA,CAErEe,cAACm2C,KAAS,CACRpuB,UAAW+tB,EAAQ/qC,MACnBk+B,YAAY,0BACZL,WAAY,CAAE,aAAc,2BAC5B1oC,MAAOgT,EACPsc,SAzFJjoB,IAGA,GADAisC,EAAUjsC,EAAEkG,OAAOvN,OACf/B,EAAM2P,YAAcvG,EAAEkG,OAAOvN,MAAO,CACtC,MAAM+J,EAAQ9L,EAAM2P,WAAWnC,SAASA,SAASE,KAAKtN,KAChD6L,GAAO,IAAIwqC,IAAmBC,WAAW5qC,EAAO1C,EAAEkG,OAAOvN,OAC/Dy1C,EAAgBvrC,GlF4MKA,KACzBf,IACA,IAAK,MAAMG,KAAOY,EAAM,CACtB,MAAM1B,EAAgBZ,SAASa,eAAe,QAAD3B,OAASwC,IACzC,OAAbd,QAAa,IAAbA,KAAeE,UAAUc,IAAI,cAC/B,GkFhNI0sC,CAAWhsC,GACXyrC,EAAiB,EACnB,MACExsC,IACAI,GACF,EA8EI4sC,WAAS,IAEXr2C,cAACovC,GAAa,CAACppB,QAAQ,YAAY+B,UAAW+tB,EAAQT,QAAQp2C,SAC3DiU,GAAM,GAAAlM,OAAO4uC,EAAa,KAAA5uC,OAAI0uC,EAAa7wC,UAE9C7E,cAAC0tC,KAAO,CAAC3lB,UAAW+tB,EAAQN,QAASc,YAAY,aAEjDt2C,cAAC+pB,KAAU,CACTwD,KAAK,QACLtD,QAvE6BssB,KACjC,IAAIR,EACAH,EAAgB,GAClBC,EAAiBD,EAAgB,GACjCG,EAAOH,EAAgB,IAEvBC,EAAiBH,EAAa7wC,QAC9BkxC,EAAOL,EAAa7wC,OAAS,GAG/B0E,EAAgBmsC,EAAaK,IAC7B3kC,EAAS2kC,EAAK,EA6DV9pB,WAAoC,IAAxBypB,EAAa7wC,UAAoBqO,EAAOjU,SAEpDe,cAACw2C,KAAqB,MAGxBx2C,cAAC+pB,KAAU,CACTwD,KAAK,QACLtD,QA5FyBwsB,KAC7B,IAAIV,EACAH,EAAgBF,EAAa7wC,QAC/BgxC,EAAiBD,EAAgB,GACjCG,EAAOH,IAEPC,EAAiB,GACjBE,EAAO,GAETxsC,EAAgBmsC,EAAaK,IAC7B3kC,EAAS2kC,EAAK,EAmFV9pB,WAAoC,IAAxBypB,EAAa7wC,UAAoBqO,EAAOjU,SAEpDe,cAAC02C,KAAsB,MAGzB12C,cAAC0tC,KAAO,CAAC3lB,UAAW+tB,EAAQN,QAASc,YAAY,aACjDt2C,cAAC+pB,KAAU,CACT3G,MAAM,UACN2E,UAAW+tB,EAAQP,WACnB,aAAW,aACXtrB,QA9C4B0sB,KAChCttC,IACAoe,IACAhe,GAAmB,EA2CoBxK,SAEnCe,cAACkqB,KAAS,QAIlB,C,cCvLenE,I,0CAAAA,GAFIhD,aAAO6zB,KAAP7zB,CAAwBE,QAAAC,aAAA,QCIhBH,aAAO4B,GAAP5B,CAAiBE,QAAAC,aAAA,0GAQhBH,KAAOC,IAAGM,QAAAJ,aAAA,kLAaNH,KAAOC,IAAGQ,QAAAN,aAAA,yLAabH,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,oaAsBZH,KAAOC,IAAGoC,QAAAlC,aAAA,0BAIXH,aAAOqsB,IAAepqB,MAAM,CACzD/lB,SAAU,kCACV+mB,QAAS,KACT5C,MAAO,WAHsBL,CAI7BuC,QAAApC,aAAA,QAE6BH,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,qIAQpBH,aAAOgD,IAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExB8C,QAAA3C,aAAA,6BAI6BH,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,4JAWdH,aAAO0C,IAAST,MAAM,CACpD+C,UAAW,uBADmBhF,CAE9BkD,QAAA/C,aAAA,QAEiCH,aAAO0C,IAAST,MAAM,CACvD+C,UAAW,2BADsBhF,CAEjCmD,QAAAhD,aAAA,QAEkCH,aAAO0C,IAAST,MAAM,CACxD+C,UAAW,0BADuBhF,CAElCoD,QAAAjD,aAAA,QAE+BH,aAAO0C,IAAST,MAAM,CACrD+C,UAAW,wBADoBhF,CAE/BqD,QAAAlD,aAAA,QAE6BH,aAAO4B,IAAWK,MAAM,CACrD+C,UAAW,sBADkBhF,CAE7BsD,QAAAnD,aAAA,QA7GK,MA+GM4xB,GAAYC,cAAW,IAClCC,aAAa,CACX6B,SAAU,CACRzzB,MAAO,qBACP,QAAS,CACP0zB,YAAa,SAIjBC,QAAS,CACPD,YAAa,Y,mDC5FJ,SAASE,GAAah4C,GACnC,MAAM,MAAEb,EAAK,SAAEe,GAAa6nC,KACtB+O,EAAUhB,MACV,eAAExc,GAAmBH,MACpB8e,EAAkBC,GAAuB5sB,oBAAS,IAClD6sB,EAAiBC,GACtB9sB,qBAEF,SAAS+sB,EAAmB/2C,GAC1B,MAAMwQ,EACJxQ,IAAeE,EAAY+C,qBACvB,GACA,mCACAwN,EACJzQ,IAAeE,EAAY+C,qBACvB,GACA,6KAEAkL,EAAqB,CACzBhN,QAAStD,EAAMogB,SAAW,GAC1Bjd,KAAM,GACNC,YAAa,GACbjB,aACAuB,QAAS,GACTE,YAAa,CACX8O,YAAa,EACbC,UACAC,MACAC,gBAAiB,IAEnBhP,SAAU,GAGZ9C,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAEkQ,cAC3CvP,EAAS,CAAEb,KAAM,wBACnB,CAEA,SAASi5C,IACPJ,GAAoB,GACpBE,EAAmB,MACnBl4C,EAAS,CAAEb,KAAM,wBACnB,CAOA,OAAKF,EAAM2f,oBAGT9d,cAAC8kB,KAAO,CACN0C,MAAM,EACN2D,SAAUnsB,EAAMmsB,SAChB8B,aAAc,CAAEC,SAAU,MAAOC,WAAY,SAC7CvD,QAAS0tB,EACTroB,WAAY,CACVhmB,MAAO,CACLisC,WAAY,MACZpxB,WAAY,uBAEd7kB,SAEFmlB,eAACmzB,KAAI,CAAAt4C,SAAA,CACHe,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAY2C,aAAalE,SAE3DmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAACywB,KAAO,CAAC1I,UAAW+tB,EAAQiB,UAC3Bze,EAAe,4BAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAYyC,gBAAgBhE,SAE9DmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAACmxB,KAAS,CAACpJ,UAAW+tB,EAAQiB,UAC7Bze,EAAe,+BAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAY6C,cAAcpE,SAE5DmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAAC6tB,GAAkB,IAClByK,EAAe,6BAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAYiE,UAAUxF,SAExDmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAACuwB,KAAgB,CAACxI,UAAW+tB,EAAQiB,UACpCze,EAAe,yBAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAY0C,cAAcjE,SAE5DmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAACoxB,KAAe,CAACrJ,UAAW+tB,EAAQiB,UACnCze,EAAe,6BAIpBt4B,cAACw3C,KAAQ,CAACrpB,QAAM,EAAClE,QAASA,IAAMotB,EAAmB72C,EAAY0O,KAAKjQ,SAClEmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAAC4tB,GAAO,IACP0K,EAAe,oBAIpBt4B,cAACw3C,KAAQ,CAACrpB,QAAM,EAAClE,QAASA,IAAMotB,EAAmB72C,EAAY6wB,OAAOpyB,SACpEmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAAC2tB,GAAS,CAACJ,KAAK,OACf+K,EAAe,sBAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAYuD,UAAU9E,SAExDmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAAC4wB,KAAY,CAAC7I,UAAW+tB,EAAQiB,UAChCze,EAAe,yBAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAY+C,sBAAsBtE,SAEpEmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAACwwB,KAAa,CAACzI,UAAW+tB,EAAQiB,UACjCze,EAAe,+BAIpBt4B,cAACw3C,KAAQ,CAACrpB,QAAM,EAAClE,QAASA,IAAMotB,EAAmB72C,EAAYgxB,QAAQvyB,SACrEmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAACyxB,GAAU,CAAClE,KAAK,OAChB+K,EAAe,uBAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAYyD,UAAUhF,SAExDmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAACsxB,KAAa,CAACvJ,UAAW+tB,EAAQiB,UACjCze,EAAe,uBAIpBt4B,cAACw3C,KAAQ,CACPrpB,QAAM,EACNlE,QAASA,IAAMotB,EAAmB72C,EAAYyO,UAAUhQ,SAExDmlB,eAACqzB,KAAY,CAAC1vB,UAAW+tB,EAAQe,SAAS53C,SAAA,CACxCe,cAAC0wB,KAAS,CAAC3I,UAAW+tB,EAAQiB,UAC7Bze,EAAe,0BAGnBof,EAYD13C,cAACw3C,KAAQ,CAACvuC,MAAO,CAAEsb,MAAO,QAAStlB,SACjCe,cAACy3C,KAAY,CAACxuC,MAAO,CAAEsb,MAAO,QAAStlB,SACrCe,cAAC0tC,KAAO,CAACzkC,MAAO,CAAEsb,MAAO,eAI5BmzB,OAhJgC,IAmNzC,CC7IeC,OAxIQ1H,IACjBA,IACFA,EAAanwC,iBAAiB,aAAcyH,IAC7C,MAAMqwC,EAAiBrwC,EAAEkG,OACtB,GAAIlG,EAAE22B,UAAkC,aAAtB0Z,EAAe5xC,IAAqB4xC,EAAehvC,UAAUC,SAAS,aAAc,CACpGtB,EAAEswC,2BACF,MAAM9iB,EAAW1sB,IACXyvC,EAAsC,GAE5C,IAAK,IAAI5vC,EAAQ,EAAGA,EAAQ6sB,EAASlwB,OAAQqD,IAAS,CACpD,MAAMuC,EAAO3C,SAASa,eAAe,QAAD3B,OAAS+tB,EAAS7sB,KAEtD,GAAIuC,EAAM,CACR,MAAMstC,EAAYttC,EAAKwF,wBAAwBsU,MACzCyzB,EAAWvtC,EAAKwF,wBAAwB7G,KACxC6uC,EAAaxtC,EAAKwF,wBAAwBuU,OAC1C0zB,EAAUztC,EAAKwF,wBAAwB/G,IAEvCivC,EAAoBJ,EAAYC,EAChCI,EAAoBH,EAAaC,EAEvCJ,EAAe1vC,KAAK,CAClBpC,GAAIkC,EACJ2G,SAAU,CACRzF,KAAM4uC,EACN9uC,IAAKgvC,EACL3zB,MAAOwzB,EACPvzB,OAAQyzB,EACRI,cAAeF,EACfG,cAAeF,IAGrB,CACF,CAEA,IAAIG,EAAezwC,SAASa,eAAe,gBAW3C,GAVK4vC,IACHA,EAAezwC,SAAS2iB,cAAc,OACtCwlB,EAAat2B,OAAO4+B,IAEtBA,EAAaha,aACX,QACA,sHAEFga,EAAaha,aAAa,KAAM,gBAE5Bga,EAAc,CAChB,MAAMC,EAAgBjxC,EAAEkxC,QAClBC,EAAgBnxC,EAAEoxC,QACxBJ,EAAatvC,MAAMG,KAAI,GAAApC,OAAMwxC,EAAa,MAC1CD,EAAatvC,MAAMC,IAAG,GAAAlC,OAAM0xC,EAAa,MAEzC,IAAIE,EAAW,EAEf3I,EAAa7U,YAAc,SAAU7zB,GAKnC,GAJIA,EAAE22B,UACJ32B,EAAEC,iBACFD,EAAEswC,4BAEAl9B,KAAKF,MAAQm+B,EAAW,GAAI,CAC9B,GAAIL,GACF,GAAIhxC,EAAE22B,QAAS,CACbqa,EAAatvC,MAAMub,OAAM,GAAAxd,OAAM8I,KAAK+oC,IAClCtxC,EAAEoxC,QAAUG,SAASP,EAAatvC,MAAMC,MACzC,MAEDqvC,EAAatvC,MAAMsb,MAAK,GAAAvd,OAAM8I,KAAK+oC,IACjCtxC,EAAEkxC,QAAUK,SAASP,EAAatvC,MAAMG,OACzC,MAEG7B,EAAEwxC,MAAQL,IACZH,EAAatvC,MAAMC,IAAG,GAAAlC,OAAMO,EAAEwxC,MAAK,MACnCR,EAAatvC,MAAMub,OAAM,GAAAxd,OAAM8I,KAAK+oC,IAClCC,SAASvxC,EAAEwxC,MAAM7nC,YAAcwnC,GAChC,OAGCnxC,EAAEyxC,MAAQR,IACZD,EAAatvC,MAAMG,KAAI,GAAApC,OAAMO,EAAEyxC,MAAK,MACpCT,EAAatvC,MAAMsb,MAAK,GAAAvd,OAAM8I,KAAK+oC,IACjCtxC,EAAEyxC,MAAQR,GACX,OAGH,IAAK,IAAItwC,EAAQ,EAAGA,EAAQ4vC,EAAejzC,OAAQqD,IAAS,CAC1D,MAAM+wC,EACJV,EAAatoC,wBAAwBsU,MACjC20B,EACJX,EAAatoC,wBAAwB7G,KACjC+vC,EACJZ,EAAatoC,wBAAwBuU,OACjC40B,EACJb,EAAatoC,wBAAwB/G,IAEjCmwC,EAAgBJ,EAAoBC,EACrBC,EAAqBC,EAIvBtB,EAAe5vC,GAAO2G,SAAS3F,KAC9CkwC,EACEtB,EAAe5vC,GAAO2G,SAASypC,eACjCe,EAAgBvB,EAAe5vC,GAAO2G,SAASzF,MAC/C8vC,EACEpB,EAAe5vC,GAAO2G,SAASwpC,cAKnCtuC,EAAegrB,EAAS7sB,GAAOgJ,YAF/BpH,EAAairB,EAAS7sB,GAAOgJ,WAIjC,CACF,OAEA++B,EAAaqJ,UAAY,KAE3BV,EAAWj+B,KAAKF,KAClB,CACF,EACAw1B,EAAaqJ,UAAY,SAAU/xC,GACjC0oC,EAAa7U,YAAc,KACvBmd,IACFA,EAAatvC,MAAMkmB,QAAU,OAEjC,CACF,CACF,KAEF8gB,EAAanwC,iBAAiB,SAAUyH,IACjCA,EAAE22B,SACLp1B,GACF,IAEJ,EC2ZaywC,OA9gBQA,KAAO,IAADjc,EAC3B,MAAM,SACJp+B,EAAQ,iBACR49B,EAAgB,MAChB3+B,EAAK,kBACLkgB,EAAiB,gBACjBqoB,GACEK,MACGyS,EAAcC,GAAmBnvB,oBAAS,IAC1CovB,EAAYC,GAAiBrvB,oBAAS,IACvC,sBAAEiP,GAA0BS,MAE3B7O,EAAUC,GAAed,mBAAS,OAClCsvB,EAAYC,GAAiBvvB,oBAAS,IACtCwvB,EAAYC,GAAiBzvB,oBAAS,IACvC,eAAEgO,GAAmBH,KAE3B,IAAI6hB,GAAc,EAElB,MAAMC,EAAc1gB,EAAsB,CACxCN,QAAS96B,EAAM4e,YACfqc,MAAOj7B,EAAM0e,QACbze,OAAQ,CAAC,gBAEXgB,qBAAU,KACR,GAAIjB,EAAO,CACT,MAAM8xC,EAAenoC,SAASa,eAAe,YAC7CgvC,GAAc1H,EAChB,IACC,CAAC9xC,IAEJiB,qBAAU,KACR,IAAI6wC,EAAenoC,SAASa,eAAe,YAC3C,GAAIsnC,EAAc,CAChB,MAAMniC,EAAa,IAAIosC,KAASjK,IvFmQ/B,SAAsBniC,GAC3BA,EAAWqsC,UAAUC,QAAU,SAAU7yC,GACvC,IAAI8yC,EACAC,EACJ,IAAIC,EAmC0BC,EAAAC,EAAAC,EAA9B,GAjCe,aAAXnzC,EAAElJ,MACJg8C,EAAUt3C,KAAK43C,QACfL,EAAUv3C,KAAK63C,QACfL,EAAWzyC,SAAS+yC,iBAAiBR,EAASC,KAE9CD,EAAU9yC,EAAEkxC,QACZ6B,EAAU/yC,EAAEoxC,QACZ4B,EAAWhzC,EAAEkG,QAGX1K,KAAK+3C,OAEH/3C,KAAKg4C,aAAeV,GAAWt3C,KAAKi4C,aAAeV,GACrDv3C,KAAK7D,SAAS,YAAa6D,KAAKk4C,aAAaj1C,GAAGk1C,MAAM,KAItDn4C,KAAKo4C,aACPp4C,KAAKk4C,aAAaryC,UAAUL,OAAO,YAE/BxF,KAAKg4C,aAAeV,GAAWt3C,KAAKi4C,aAAeV,GACrDv3C,KAAK7D,SACH,eACA6D,KAAKk4C,aAAaha,cAAcr4B,UAAU,GAAGsyC,MAAM,MAKrDn4C,KAAKq4C,kBACPr4C,KAAK4O,SAAW5O,KAAK4O,WAAa5O,KAAKmL,MAAQmsC,GAC/Ct3C,KAAK6O,SAAW7O,KAAK6O,WAAa7O,KAAKoL,MAAQmsC,GAC/Cv3C,KAAKq4C,iBAAkB,IAED,IAApBr4C,KAAKwH,WACP,GAC6B,WAAnB,QAARiwC,EAAAD,SAAQ,IAAAC,OAAA,EAARA,EAAU5xC,UAAU,KACnB7F,KAAKs4C,oBAC4C,OAAvC,QAARZ,EAAAF,SAAQ,IAAAE,OAAA,EAARA,EAAUa,QAAQ,4BACU,mBAAnB,QAARZ,EAAAH,SAAQ,IAAAG,OAAA,EAARA,EAAU9xC,UAAU,KACxB,CAAC,IAAD2yC,EAAAC,EACA,IAAIC,EACAC,EAqBI,IAADC,EAAAC,EAAAC,EAAAC,EAfLC,EACyDC,EAGlDC,EART,IACEl5C,KAAKs4C,mBAC2C,OAAvC,QAARE,EAAAhB,SAAQ,IAAAgB,OAAA,EAARA,EAAUD,QAAQ,4BACU,mBAAnB,QAARE,EAAAjB,SAAQ,IAAAiB,OAAA,EAARA,EAAU5yC,UAAU,IAkBtB6yC,EAAmB,QAAXE,EAAGpB,SAAQ,IAAAoB,GAAe,QAAfC,EAARD,EAAU1a,qBAAa,IAAA2a,GAAe,QAAfC,EAAvBD,EAAyB3a,qBAAa,IAAA4a,OAA9B,EAARA,EAAwC71C,GACnD01C,EAAsB,QAAXI,EAAGvB,SAAQ,IAAAuB,OAAA,EAARA,EAAUlzC,UAAU,QAhBhC6yC,EADiD,OAAvC,QAARM,EAAAxB,SAAQ,IAAAwB,OAAA,EAARA,EAAUT,QAAQ,2BACD,QAAXU,EAAGzB,SAAQ,IAAAyB,OAAA,EAARA,EAAUV,QAAQ,0BAA0Bra,cACpDj7B,GAEgB,QAAXi2C,EAAG1B,SAAQ,IAAA0B,OAAA,EAARA,EAAUj2C,GAMrB01C,EAFA,IADA74C,OAAOuH,KAAKrH,KAAKkP,cAAcwpC,EAASP,MAAM,IAAIt5C,QAAQiD,QAK5C,UAOlB,IAAIq3C,EAAYn5C,KAAKk4C,aAAaha,cAAcA,cAAcj7B,GAC1Dm2C,EAAep5C,KAAKk4C,aAAaryC,UAAU,GAE/C,IAAoB,IAAhB8yC,EAAuB,CACzB,GAUe,IATb34C,KAAKu7B,UAAU8d,iBACb,uBACEX,EACA,aACAS,EACA,IACAC,EACA,IACAT,GACF72C,OACF,CAGA9B,KAAKs5C,eAAezzC,UAAUc,IAAI,WAAa+xC,GAC/C14C,KAAKs5C,eAAezzC,UAAUc,IAAI,YAAcwyC,GAChDn5C,KAAKs5C,eAAezzC,UAAUc,IAAIyyC,GAClCp5C,KAAKs5C,eAAezzC,UAAUc,IAAIgyC,GAClC,IAAIY,EAAWb,EAASP,MAAM,GAC1BvyB,EAAYuzB,EAAUhB,MAAM,GAEhCn4C,KAAK4I,SAASA,SAAS5I,KAAKw5C,QAAQh+C,KAAKoqB,GAAW9mB,QAClDs6C,GACA9xC,YAAYjC,KAAK,CAAEqC,KAAM6xC,EAAU32C,OAAQ+1C,IAC7C34C,KAAK4I,SAASA,SAAS5I,KAAKw5C,QAAQh+C,KAAK+9C,GAAU16C,OACjD85C,GACArxC,YAAYjC,KAAK,CAAEqC,KAAMke,EAAW5d,MAAOoxC,IAC7Cp5C,KAAKy5C,sBAAsB,QAAU7zB,GACrC5lB,KAAKy5C,sBAAsB,QAAUF,GACrCv5C,KAAK7D,SAAS,oBAAqB,CACjCg9C,UAAWvzB,EACX8yB,SAAUa,EACVH,aAAcA,EACdT,YAAaA,GAEjB,MACE34C,KAAK7D,SAAS,oBAAoB,GAClC6D,KAAKs5C,eAAe9zC,SAGtBxF,KAAKs5C,eAAiB,IACxB,MAEEt5C,KAAK7D,SAAS,oBAAoB,GAClC6D,KAAKs5C,eAAe9zC,SACpBxF,KAAKs5C,eAAiB,IAE1B,MAEEt5C,KAAK7D,SAAS,oBAAoB,GAClC6D,KAAKs5C,eAAe9zC,SACpBxF,KAAKs5C,eAAiB,KAI1Bt5C,KAAK+3C,MAAO,EACZ/3C,KAAKo4C,YAAa,EAClBp4C,KAAKwH,YAAa,EAClBxH,KAAKk4C,aAAe,KACpBl4C,KAAKq4C,iBAAkB,CACzB,CACF,CuF5YMqB,CAAa3uC,GACbA,EAAW4uC,QAEX5uC,EAAW6uC,GAAG,eAAe,SAAUlyC,GACrC,MAAMkB,EAAWmC,EAAWnC,SAASA,SAASE,KAAKtN,KAC7CuN,EAAejJ,OAAOuH,KAAKuB,GAEjC,IAAK,MAAMnC,KAAOsC,EAChB,GAAIH,EAAS/F,OAAO4D,IAAO,CACzB,MAAM5H,EAAS+J,EAAS/F,OAAO4D,IAAM5H,OAC/BC,EAAU8J,EAAS/F,OAAO4D,IAAM3H,QAEtC,GAAID,GAAUA,EAAO+I,QAAS,CAC5B,MAAMoB,EAAmBnK,EAAO+I,QAAQN,YAExC,GAAI0B,EAAkB,CACpB,MAAMkM,EAAiBpV,OAAOuH,KAAK2B,GAEnC,IAAK,MAAM6wC,KAAU3kC,EACnB,GAAIlM,EAAiBnG,OAAOg3C,IAAU,CACpC,MAAMC,EAAU/xC,OACdiB,EAAiBnG,OAAOg3C,IAASnyC,MAE/BoyC,GACEA,IAAY/xC,OAAOL,IACrBsB,EAAiBI,OAAOvG,OAAOg3C,GAAS,EAG9C,CAEJ,CACF,CAEA,GAAI/6C,GAA8B,kBAAZA,EAAsB,CAC1C,MAAMoK,EAAcpJ,OAAOuH,KAAKvI,GAEhC,IAAK,MAAM8D,KAAUsG,EAAa,CAChC,MAAMC,EAAkBrJ,OAAOuH,KAC7BvI,EAAQoK,EAAYrG,OAAOD,KAAU0E,aAEvC,IAAK,MAAMb,KAAO0C,EAEdrK,EAAQoK,EAAYrG,OAAOD,KAAU0E,YACnCzE,OAAO4D,IACPiB,OAASA,GAEX5I,EAAQoK,EAAYrG,OAAOD,KAAU0E,YAAY8B,OAC/CvG,OAAO4D,GACP,EAGR,CACF,CACF,CAEJ,IAEAsE,EAAW6uC,GAAG,qBAAqB,SAAUpyC,GAC3C,MAAM,YAAEmxC,EAAW,SAAED,EAAQ,aAAEU,EAAY,UAAED,GAAc3xC,EACrDN,EAAQ6D,EAAWnC,SAASA,SAASE,KAAKtN,KAAK29C,GAE/CxxC,EACJoD,EAAWnC,SAASA,SAASE,KAAKtN,KAAKk9C,GAEzC,GAC4B,IAA1BxxC,EAAM1L,KAAK+B,YACe,IAA1B2J,EAAM1L,KAAK+B,YACX2J,EAAMpI,QAAQi7C,SAASzyC,YAAYxF,OAAS,EAe5C,YAZEe,OAAOqE,EAAMpI,QAAQi7C,SAASzyC,YAAY,GAAGI,QAC7C7E,OAAOqE,EAAMpI,QAAQi7C,SAASzyC,YAAY,GAAGI,MAE7CR,EAAMpI,QAAQs6C,GAAc9xC,YAAY8B,OAAO,EAAG,GAElD2B,EAAWuH,uBACT6mC,EACAT,EACAU,EACAT,IAMN,MAAMqB,EACJ9yC,EAAMpI,QAAQs6C,GAAc9xC,YAAYxF,OAGxC6F,EAAiBnM,KAAK8C,WAAa4I,EAAMjE,KACxC+2C,EAAoB,GACkB,IAArCryC,EAAiBnM,KAAK+B,YACe,IAArCoK,EAAiBnM,KAAK+B,YACe,KAArCoK,EAAiBnM,KAAK+B,aAExBwN,EAAWuH,uBACT6mC,EACAT,EACAU,EACAT,EAGN,IACAx8C,EAAS,CAAEb,KAAM,UAAWE,KAAM,CAAEuP,eACtC,IACC,CAAC5O,IAEJE,qBAAU,KACR,GAAIo6C,EAAc,CAChB,GAAIr7C,EAAM2P,YAA+C,SAAjC3P,EAAM2P,WAAW6e,YAAwB,CAAC,IAADD,EAC/D,MAAMzkB,EAAMP,IACNs1C,EAAY53C,KAAKC,UAA0B,QAAjBqnB,EAACvuB,EAAM2P,kBAAU,IAAA4e,OAAA,EAAhBA,EAAkB/gB,UACnDpM,aAAa6a,QAAQ,eAAgB4iC,GACrC,MAAMvf,EAAmB,IAAI3rB,EAAuB3T,EAAM2P,YACpDmvC,EAAY,GAElB,IAAK,MAAMj3C,KAAMiC,EAAK,CACpB,MAAMwG,EACJtQ,EAAM2P,WAAWnC,SAASA,SAASE,KAAKtN,KAAKyH,GAAIzH,KAC7C2sB,EAAO,IAAIhqB,EAAcuN,GAE5Byc,EAAKznB,WACLynB,EAAKtnB,YACLsnB,EAAKrnB,UACNqnB,EAAK5qB,aAAeE,EAAYI,SAEhCq8C,EAAU70C,KAAKpC,EAEnB,CAEA,IAAK,MAAM3E,KAAY47C,EACrBxf,EAAiBprB,iBAAiBhR,EAEtC,CACAo4C,GAAgB,EAClB,IACC,CAACD,EAAcr7C,EAAM2P,aAExB1O,qBAAU,KACR,MAAM6wC,EAAenoC,SAASa,eAAe,YACzCsnC,GACFA,EAAanwC,iBACX,WACCyH,IACe,WAAVA,EAAEiC,KAA+B,cAAVjC,EAAEiC,KAAuBjC,EAAE21C,SACpDC,EAAqB51C,GACrBkyC,GAAgB,IACG,MAAVlyC,EAAEiC,MAA6B,IAAdjC,EAAE22B,QAC5Bkf,EAAkB71C,GACC,MAAVA,EAAEiC,MAA6B,IAAdjC,EAAE22B,SAC5Bif,EAAqB51C,GACrB81C,KACmB,MAAV91C,EAAEiC,MAA6B,IAAdjC,EAAE22B,QAC5Bof,IACmB,MAAV/1C,EAAEiC,MAA6B,IAAdjC,EAAE22B,SAGd,MAAV32B,EAAEiC,MAA6B,IAAdjC,EAAE22B,SACrBqf,EAAkBh2C,EAEtB,IAEF,EAEJ,GACC,IAEHnI,qBAAU,KACR,GAAI06C,EAAY,CAAC,IAADtuB,EACd,MAAMykB,EAAenoC,SAASa,eAAe,YACvC29B,EACJ,gCACAC,mBAAmBnhC,KAAKC,UAA0B,QAAjBmmB,EAACrtB,EAAM2P,kBAAU,IAAA0d,OAAA,EAAhBA,EAAkB7f,WAChD66B,EAAe1+B,SAAS2iB,cAAc,KAE5C,GADY,OAAZwlB,QAAY,IAAZA,KAAcplB,YAAY2b,GACtBA,EAAc,CAAC,IAAD+J,EAChB/J,EAAajI,aAAa,OAAQ+H,GAClC,MAAMkX,EAAgB,IAAI7iC,KACpB8iC,EACJD,EAAcE,UACd,IACAF,EAAcG,WACd,IACAH,EAAcI,cACd,IACAJ,EAAcK,WACd,IACAL,EAAcM,aAChBtX,EAAajI,aACX,WAAW,YAADv3B,OACE7I,EAAMogB,QAAO,KAAAvX,OAAIy2C,EAAY,UAE3CjX,EAAaC,QACU,QAAvB8J,EAAA/J,EAAagK,kBAAU,IAAAD,GAAvBA,EAAyBE,YAAYjK,EACvC,CACAuT,GAAc,EAChB,IACC,CAACD,EAA4B,QAAlBxc,EAAEn/B,EAAM2P,kBAAU,IAAAwvB,OAAA,EAAhBA,EAAkB3xB,SAAUxN,EAAMogB,UAElDnf,qBAAU,KACR,GAAIw6C,EAAY,CAAC,IAADmE,EACd,MAAM9N,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBACrBD,EAAYO,SAAWnyC,UAAmB,IAADoyC,EACvC,MAAMC,EAAqB,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAC5BjI,EAAWvG,KAAKw2B,YAAY8V,EAAKsM,QAEvC,GAAIryC,EAASA,SACX,GAAIA,EAASA,SAASE,KAAM,CAAC,IAADmlC,EAAA/Q,EAC1B,MAAMlpB,EAAqBpL,EAASA,SAASE,KAAKtN,KAE5C6L,EAAOvH,OAAOuH,KAAK2M,GACzB,IAAI0uB,GAAmB,EACvB,MAAMC,EAAqC,cAAlBvnC,EAAMogB,QAE/B,IACE,IAAK,MAAM/U,KAAOY,EAAM,CAAC,IAADu7B,EACtB,MAAM,KAAEpnC,GAASwY,EAASnR,OAAO4D,IAEjC,GAAIk8B,GACF,GAAIrlC,EAAuB9B,EAAK+B,YAAa,CAC3CmlC,GAAmB,EACnB,KACF,OACK,GAAIplC,EAAuB9B,EAAK+B,YACrC,MAAM,IAAIqb,MACR2c,EAAe,sCAInBvhB,EAASnR,OAAO4D,IAAMxD,GAAKJ,OAAO4D,GAClCQ,EAAU+M,EAASnR,OAAO4D,IAAOuN,GACjC7L,EAAW6L,EAASnR,OAAO4D,IAAOuN,GAElC,MAAM8uB,EAA2B,QAAnBF,EAAGpnC,EAAKwD,mBAAW,IAAA4jC,OAAA,EAAhBA,EAAkB70B,QACnC,GAAI+0B,EAAU,CAAC,IAADC,EACZ,MAAM9I,EAAa6I,EAASE,WAAW,GAAD/+B,OACjCzI,EAAKkD,QAAO,KAAK,GAAAuF,OACjB7I,EAAMogB,QAAO,MAGE,QAApBunB,EAAIvnC,EAAKwD,mBAAW,IAAA+jC,GAAhBA,EAAkBh1B,UACpBvS,EAAKwD,YAAY+O,QAAUksB,EAC/B,CACF,CAEA,GAAI0I,IAAqBD,EACvB,MAAM,IAAI9pB,MACR2c,EAAe,uCAGrB,CAAE,MAAOlc,GAEP,YADAiC,EAAkB,QAASjC,EAAMnV,QAEnC,CAEA,MAAMs1B,EAAgB,IAAIzlB,GACxBC,EACA5Y,EAAMogB,SAAW,IAGnB5S,EAASA,SAASE,KAAKtN,KAAOg+B,EAAclkB,cAE5C4lC,EAAgBtyC,GAEhBmxB,EAAiB/lB,GACK,QAAtBi6B,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,GAEpC,MAAMhnC,EAAwB,QAAnBg2B,EAAG9hC,EAAM2P,kBAAU,IAAAmyB,OAAA,EAAhBA,EAAkBt0B,SAASA,SAASE,KAAKtN,KACjD0nC,EAAapjC,OAAOuH,KAAKH,GACzB2qB,EAAaqR,EAAWvgC,KAC3B8D,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAGxBg4B,EAAep2B,KAAK2kB,OAAOG,GAE3B4I,EAAWyI,EAAWr7B,MACzBpB,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAAUg4B,KAGlC,EAAE/8B,EAAC,EAAEH,GAAMD,EAAgBy0B,GAE3B/rB,EAAOtI,EAAI,EAAQ,GAAJA,EACfuI,EAAO1I,EAAI,EAAQ,GAAJA,EAEjB7K,EAAM2P,aACR3P,EAAM2P,WAAW6D,UAAYF,EAC7BtT,EAAM2P,WAAW8D,UAAYF,EACzBvT,EAAM2P,WAAW+B,YACnB1R,EAAM2P,WAAW+B,UAAU5G,MAAM4I,UAAS,aAAA7K,OAAgB7I,EAAM2P,WAAW6D,SAAQ,0BAAA3K,OACjF7I,EAAM2P,WAAW8D,SAAQ,gCAAA5K,OACnB7I,EAAM2P,WAAW2B,KAAI,OAGnC,MACE4O,EACE,QACAia,EAAe,yCAInBja,EACE,QACAia,EAAe,mCAEnB,EAEU,OAAZ2X,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBsX,EAAA9M,EAAYT,kBAAU,IAAAuN,GAAtBA,EAAwBtN,YAAYQ,GACpC4I,GAAc,EAChB,IACC,CAACD,EAAY9c,EAAkB3+B,EAAM2P,WAAY3P,EAAMogB,UAQ1D,MAAM0/B,EAAmBtyC,IACvB,IAAK,IAADy0B,EACc,QAAhBA,EAAAjiC,EAAM2P,kBAAU,IAAAsyB,GAAhBA,EAAkBvD,OAAOlxB,EAC3B,CAAE,MAAOpE,GACP,MAAM22C,EAAgBxyC,EAAoBC,GAC1CsyC,EAAgBC,EAClB,GAGIZ,EAAoBA,KACxBtD,GAAeA,EACXA,EvF/LsBmE,MAC5B,MAAMxpC,EAAQtM,IAEd,IAAK,MAAMrC,KAAM2O,EAAO,CACtB,MAAMjM,EAAgBZ,SAASa,eAAe,QAAD3B,OAAShB,IACzC,OAAb0C,QAAa,IAAbA,KAAeE,UAAUL,OAAO,iBACnB,OAAbG,QAAa,IAAbA,KAAeE,UAAUc,IAAI,gBAC/B,GuFyLIy0C,GAEAr1C,GACF,EAGIy0C,EAAqBh2C,IACzB,MAAM4mB,EAASrmB,SAASa,eACtB,iBAEF,GAAIwlB,EAAQ,CACOA,EAAOlC,WAGtBkxB,EAAqB51C,GACrBsyC,GAAc,GAElB,GAGIuD,EAAqB71C,IACzB41C,EAAqB51C,GACrBwyC,GAAc,EAAK,EAGfoD,EAAwB51C,IACvBA,IACLA,EAAEC,iBACFD,EAAEE,kBAAiB,EAGf+H,EAAgBA,KAChBrR,EAAM2P,aACJ3P,EAAM2P,WAAW2B,KAAO,IAC1BtR,EAAM2P,WAAW4B,UACjBF,KACSrR,EAAM2P,WAAW2B,KAAO,KACjCtR,EAAM2P,WAAW6B,WACjBH,KAEJ,EAeI6tC,EAAmBA,KACvB1D,GAAc,EAAK,EAyCrB,OACEv1B,eAAAqI,WAAA,CAAAxtB,SAAA,CACGd,EAAMogB,SACL6F,eAAA,OAAK2D,UAAU,iBAAgB9oB,SAAA,CAC7Be,cAAC8uB,KAAO,CACNvgB,MAAO+pB,EAAe,wBACtBtJ,UAAU,QAAO/vB,SAEjBe,cAAC+pB,KAAU,CAAC,aAAW,cAAcE,QAASozB,EAAiBp+C,SAC7De,cAACo+C,KAAU,QAGfp+C,cAAC8uB,KAAO,CACNvgB,MAAO+pB,EAAe,qBACtBtJ,UAAU,QAAO/vB,SAEjBe,cAAC+pB,KAAU,CACT,aAAW,WACXE,QAASA,KAAO,IAADuW,EAAAC,EACG,QAAhBD,EAAAriC,EAAM2P,kBAAU,IAAA0yB,GAAhBA,EAAkB6d,aAAa,QACX,QAApB5d,EAAItiC,EAAM2P,kBAAU,IAAA2yB,GAAhBA,EAAkB90B,SAASA,SAASE,KAAKtN,MAC3Cu+B,EACE3+B,EAAM2P,WAAWnC,SAASA,SAASE,KAAKtN,MAG5CiR,GAAe,EACfvQ,SAEFe,cAACs+C,KAAc,QAInBt+C,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,oBAAqBtJ,UAAU,QAAO/vB,SACnEe,cAAC+pB,KAAU,CAAC,aAAW,WAAWE,QAjFtBs0B,KAChBpgD,EAAM2P,YACR3P,EAAM2P,WAAW6B,UACnB,EA8EiE1Q,SACvDe,cAACw+C,KAAuB,QAI5Bx+C,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,oBAAqBtJ,UAAU,QAAO/vB,SACnEe,cAAC+pB,KAAU,CAAC,aAAW,UAAUE,QA7FtBw0B,KACftgD,EAAM2P,YACR3P,EAAM2P,WAAW4B,SACnB,EA0F+DzQ,SACrDe,cAAC0+C,KAAoB,WAM5BvgD,EAAM0hB,WAnEP7f,cAAA,OAAK+nB,UAAU,aAAY9oB,SACzBe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,aAActJ,UAAU,QAAO/vB,SAC5De,cAAC+pB,KAAU,CACT,aAAW,OACX/jB,GAAG,cACH,gBAAc,YACd,gBAAc,OACdikB,QAAU1iB,IACRrI,EAAS,CAAEb,KAAM,wBACjB+sB,EAAY7jB,EAAEqlB,cAAc,EAE9BW,KAAM,QACNtkB,MAAO,CAAEsb,MAAO,OAAQC,OAAQ,QAASvlB,SAEzCe,cAACwtC,KAAO,CAACvkC,MAAO,CAAEma,MAAO,gBAuD9BjlB,EAAM0gB,kBAAoB7e,cAAC8iB,GAAS,IAErC9iB,cAAA,OAAKgG,GAAG,WAAW24C,cApFCC,MAEnBzgD,EAAM0hB,WACL1hB,EAAM0e,SACN1e,EAAMogB,SACN07B,GAEFvT,EAAgBvoC,EAAMogB,SAAW,IAAS,OAALpgB,QAAK,IAALA,OAAK,EAALA,EAAO0e,UAAW,GACzD,IA6EG68B,GAAc15C,cAACy1C,GAAW,CAAChuB,YAzFNo3B,KACxBlF,GAAc,EAAM,IAyFlB35C,cAAC20C,GAAW,CAAC/1B,QAASzgB,EAAMygB,UAC3BzgB,EAAM2f,qBACL9d,cAACg3C,GAAY,CAAC7rB,SAAUA,MAEzB,E,sBC5iBA,MAAMxtB,GAAe,CAC1B8Q,SAAU,KACVqwC,sBAAsB,EACtBC,yBAAyB,EAC1BC,2BAA2B,EAC1BxgC,QAAS,GACTygC,kBAAmB,CAAC,EACpBC,WAAY,CAAC,GAGR,SAAS/W,GACdhqC,EACAC,GAEA,OAAOE,GAAiBF,EAAOC,MAAMF,EAAOC,EAAOG,KACrD,CAEA,MAAMD,GAAmB,CACvB+iB,WAAYA,CAACljB,EAA0BI,KAC9B,IAAKJ,KAAUI,KCfb4gD,GAAcrgD,wBAA4B,CAAC,GAE3CsgD,GACXpgD,IAEA,MAAM,SAAEC,GAAaD,EAEfq0C,EAAYtM,KAAU5oC,OACrBA,EAAOe,GAAYC,qBAAWgpC,GAAaxqC,IAsBlD,OApBAyB,qBAAU,KACRF,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,SAAU4kC,EAAU5kC,UAAY,OACxC,GACD,CAAC4kC,EAAU5kC,SAAUvP,IAExBE,qBAAU,KACHi0C,EAAUxzB,WACb3gB,EAAS,CACPb,KAAM,aACNE,KAAM,IACDJ,EACH2gD,sBAAsB,IAG5B,GAEC,CAACzL,EAAUxzB,YAGZ7f,cAACm/C,GAAYl/C,SAAQ,CACnBC,MAAO,CACL/B,MAAOA,GAASR,GAChBuB,YACAD,SAEDA,GACoB,EAIpB,SAASogD,KAGd,OAFgBj/C,qBAAW++C,GAG7B,C,uECjDO,MAAMG,GAAoBv8B,aAAO0C,IAAST,MAAM,CACrD+C,UAAW,sBADoBhF,CAE/BE,QAAAC,aAAA,mKAWWq8B,GAAqBx8B,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,kF,wDCZ1C,MAAMkmB,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,uJAY3Bs8B,GAAkBz8B,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,0SAmBjCu8B,GAAiB18B,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,yLAahCw8B,GAAkB38B,aAAO0C,IAAST,MAAM,CAAC,EAAvBjC,CAAyBW,QAAAR,aAAA,wSAmB3Cy8B,GAAmB58B,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,iIASlC08B,GAAmB78B,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,0GAQlC28B,GAAmB98B,aAAO0C,IAAST,MAAM,CACpD+C,UAAW,uBADmBhF,CAE9ByC,QAAAtC,aAAA,iCAIW48B,GAAsB/8B,aAAO0C,IAAST,MAAM,CACvD+C,UAAW,qBADsBhF,CAEjC8C,QAAA3C,aAAA,QAaW68B,IAXkBh9B,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,wGAOfH,aAAO4B,IAAWK,MAAM,CACrD+C,UAAW,uBADkBhF,CAE7BkD,QAAA/C,aAAA,QAEmCH,aAAO4B,GAAP5B,CAAiBmD,QAAAhD,aAAA,SAEzC88B,GAAgBj9B,aAAO0C,GAAP1C,CAAeoD,QAAAjD,aAAA,gLAa/B+8B,GAAgBl9B,aAAO0C,GAAP1C,CAAeqD,QAAAlD,aAAA,oGAQjBH,aAAO0C,GAAP1C,CAAesD,QAAAnD,aAAA,uGAORH,aAAO0C,GAAP1C,CAAe+mB,QAAA5mB,aAAA,8G,mEC3GlCg9B,OArB4BlhD,IACzC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,KAAAf,SACEe,cAAA,QAAM0tB,KAAK,OAAOlJ,OAAO,KAAKD,MAAM,SAEtCvkB,cAAA,KAAAf,SACEe,cAAA,QAAM0kB,EAAE,wRAEN,ECAK,SAASy7B,GAAcnhD,GACpC,MAAM,MACJohD,EAAK,MACLC,EAAK,aACLC,EAAY,KACZC,EAAI,QACJC,EAAO,OACPC,EAAM,UACNC,EAAS,SACTC,EAAQ,MACRpyC,EAAK,cACLqyC,GACE5hD,GACE,MAAEb,GAAU4oC,MACZ,eAAEzO,GAAmBH,MAEpB0oB,EAA2BC,GAChCx2B,oBAAkB,GA6CpB,OACElG,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACglB,GAAS,CAAAnqC,SAAA,CACRmlB,eAACo7B,GAAe,CAAAvgD,SAAA,CACde,cAACovC,GAAa,CAACppB,QAAQ,YAAW/mB,SAC/B0hD,GAAY,cAEfv8B,eAAA,OAAAnlB,SAAA,CACEe,cAACovC,GAAa,CAACppB,QAAQ,YAAW/mB,SAAEd,EAAM0e,UAC1C7c,cAACovC,GAAa,CAACppB,QAAQ,YAAW/mB,SAAEd,EAAMogB,gBAG9C6F,eAACq7B,GAAc,CAAAxgD,SAAA,CACbmlB,eAACs7B,GAAe,CAAAzgD,SAAA,CACde,cAAC+/C,GAAqB,CACpB/5B,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAAC+gD,KAAQ,IACpB92B,QAASs2B,EAAKthD,SAEbq5B,EAAe,uBAElBt4B,cAAC+/C,GAAqB,CACpB/5B,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACghD,KAAQ,IACpB/2B,QAASu2B,EAAQvhD,SAEhBq5B,EAAe,wBAElBt4B,cAAC+/C,GAAqB,CACpB/5B,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACkgD,GAAY,CAAC98B,MAAM,OAAOmK,KAAK,OAC3CtD,QAASm2B,EAAMnhD,SAEdq5B,EAAe,WAGlBt4B,cAAC+/C,GAAqB,CACpB/5B,QAAQ,YACR5C,MAAM,UACN6G,QAASw2B,EAAOxhD,SAEV,OAALsP,QAAK,IAALA,IAAS+pB,EAAe,oBAE3Bt4B,cAAC+/C,GAAqB,CACpB/5B,QAAQ,YACR5C,MAAM,UACN6G,QAASy2B,EACTz0B,UAAW20B,EAAc3hD,SAExBq5B,EAAe,0BAGpBlU,eAACu7B,GAAgB,CAAA1gD,SAAA,CACfe,cAAC6/C,GAAgB,CAAA5gD,SACfe,cAAC+/C,GAAqB,CACpB/5B,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAAC+gD,KAAQ,IACpB92B,QAASq2B,EAAarhD,SAErBq5B,EAAe,iCAGpBt4B,cAAC8/C,GAAmB,CAAA7gD,SAClBe,cAAC+/C,GAAqB,CACpB/5B,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACghD,KAAQ,IACpB/2B,QAASA,IAAM62B,GAA6B,GAAM7hD,SAEjDq5B,EAAe,6CAMzBuoB,GAxHD7gD,cAACwpB,KAAM,CACLhC,KAAMq5B,EACNj3B,QAASA,IAAMk3B,GAA6B,GAAO7hD,SAEnDmlB,eAAC47B,GAAa,CAAA/gD,SAAA,CACZe,cAACovC,GAAa,CAACppB,QAAQ,KAAI/mB,SACxBq5B,EAAe,kCAElBt4B,cAACovC,GAAa,CAACppB,QAAQ,YAAW/mB,SACtCq5B,EAAe,qCAEXt4B,cAACigD,GAAa,CAAAhhD,SACZmlB,eAACw7B,GAAgB,CAAA3gD,SAAA,CACfe,cAAC6/C,GAAgB,CAAA5gD,SACfe,cAAC+/C,GAAqB,CACpB38B,MAAM,UACN4C,QAAQ,YACRiE,QAASA,IAAM62B,GAA6B,GAAO7hD,SAElDq5B,EAAe,UAAU2oB,kBAG9BjhD,cAAC8/C,GAAmB,CAAA7gD,SAClBe,cAAC+/C,GAAqB,CACpB38B,MAAM,UACN4C,QAAQ,YACRiE,QAASA,KACP62B,GAA6B,GACzBT,GAAOA,GAAO,EAClBphD,SAEDq5B,EAAe,WAAW2oB,8BA4F7C,C,oDCpKA,MAAMC,WAAuBxqB,mBAKzBv1B,YAAYggD,EAAaC,EAASC,GAC9BC,MAAMH,EAAaC,EAASC,EAChC,EAwBJ3qB,YAAiB6qB,SACb7qB,YAAiB8qB,KAAKC,aACtB/qB,mBAAwBgrB,iBACxBR,IACA,GAGJxqB,UAA6B,aAAI,CAC7BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SAASC,SAAS,UAAUC,YAAY,cAC9D/+C,KAAKg/C,WAAU,EAAM,UACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,mDAChBl/C,KAAKm/C,WAAW,yDACpB,GAGJxrB,UAAuB,OAAI,CACvBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAqB,SACjCorB,YACG,IAAIprB,uBAA4B,+BAChC,QAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAW,sDACpB,GAGJvrB,UAAwB,QAAI,CACxBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAqB,SACjCorB,YACG,IAAIprB,uBAA4BA,OAA2B,eAC3D,QAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA6B,gBACjD,GAGJA,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTC,YAAYprB,OAAuB,WACxC3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA+B,mBAC/C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTC,YAAYprB,OAAuB,WACnCorB,YACG,IAAIprB,iBAAsB,CACtB,CAAC,QAAS,SACV,CAAC,WAAY,UAEjB,UAER3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA+B,mBAC/C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAqB,KAAI,CACrBirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAsB,UAC1D3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA8B,kBAC9C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAwB,QAAI,CACxBirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAgC,oBACpE3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAA8B,kBAC/C3zB,KAAKo/C,mBACAI,SAAS7rB,gBACTorB,YAAYprB,OAAmB,OAC/BorB,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,aAC/CorB,YAAY,KACZA,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,eAC/CorB,YAAY,KACZA,YAAY,IAAIprB,eAAoB,KAAM,EAAG,MAAO,cACzD3zB,KAAKo/C,mBACAI,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAC7BorB,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,WAC/CorB,YAAY,KACZA,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,aAC/CorB,YAAY,KACZA,YAAY,IAAIprB,eAAoB,KAAM,EAAG,MAAO,YACzD3zB,KAAKo/C,mBACAI,SAAS7rB,gBACTorB,YAAYprB,OAA0B,cACtCorB,YAAY,IAAIprB,eAAoB,EAAG,EAAG,KAAM,YAChDorB,YACG,IAAIprB,iBAAsB,CACtB,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAkB,KAAG,UAE1B,aAER3zB,KAAKo/C,mBACAI,SAAS7rB,gBACTorB,YAAYprB,OAA8B,kBAC/C3zB,KAAKo/C,mBACAI,SAAS7rB,gBACTorB,YAAYprB,OAAoB,QAChCorB,YAAY,IAAIprB,iBAAsB,QAAS,MAC/CorB,YAAYprB,OAAqB,SACjCorB,YAAY,IAAIprB,iBAAsB,QAAS,MAC/CorB,YAAYprB,OAAuB,WACnCorB,YAAY,IAAIprB,iBAAsB,QAAS,MAC/CorB,YAAYprB,OAAsB,UAClCorB,YAAY,IAAIprB,iBAAsB,QAAS,MAC/CorB,YAAYprB,OAAoB,QAChCorB,YAAY,IAAIprB,iBAAsB,QAAS,MAC/CorB,YAAYprB,OAAsB,UAClCorB,YAAY,IAAIprB,iBAAsB,QAAS,MAC/CorB,YAAYprB,OAAoB,QAChCorB,YAAY,IAAIprB,iBAAsB,QAAS,MACpD3zB,KAAKo/C,mBACAI,SAAS7rB,iBACTorB,YAAYprB,OAA0B,cAC3C3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAwB,YACzC3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAsB,UACvC3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAwC,4BACxD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA8B,cAAI,CAC9BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAqB,SACjCorB,YACG,IAAIprB,kBAAuBA,OAAgC,oBAC3D,QAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAoC,uBACxD,GAGJA,UAAgC,gBAAI,CAChCirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAqB,SACjCorB,YACG,IAAIprB,uBAA4BA,OAAgC,oBAChE,QAER3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAuC,0BAC3D,GAGJA,UAA8B,cAAI,CAC9BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAA2B,eAC5C3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAsB,UAEvC3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA4C,gCAC5D3zB,KAAKm/C,WAAW,6CACpB,GAGJxrB,UAAwB,QAAI,CACxBirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAA2B,eAC5C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,qCACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WAKF5+C,KAAKo/C,mBACAL,YAAYprB,OAA+B,mBAC3CorB,YAAY,IAAIprB,kBAAuB,IAAK,QAEjD3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAuC,0BAC3D,GAGJA,UAA8B,cAAI,CAK9BirB,KAAM,WACF5+C,KAAKy/C,SAAS,CACVC,SAAU/rB,OAAiC,oBAC3CgsB,MAAO,CAAC,CACJrkD,KAAM,cACNiD,KAAM,SAEVqhD,kBAAmB,KACnBC,cAAe,KACf35C,MAAO,cACP45C,QAASnsB,OAAmC,sBAC5CosB,QAASpsB,OAAmC,uBAEpD,GAGJA,UAAyB,SAAI,CACzBirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAY,wBACpC/+C,KAAKg/C,WAAU,EAAM,UACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WACD,kFAEJl/C,KAAKm/C,WAAW,yBACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAwB,YAC5D3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAgC,oBAChD3zB,KAAKm/C,WAAW,yBACpB,GAGJxrB,UAAoB,IAAI,CACpBirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,OAEjBE,YACG,IAAIprB,0BAA+BA,OAAiB,KACpD,OAER3zB,KAAKo/C,mBAAmBL,YACpB,IAAIprB,iBAAsB,CACtB,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAsB,SAAG,YAC1B,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAqB,QAAG,SACzB,CAACA,OAAsB,SAAG,YAC1B,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAqB,QAAG,aAE7B,QAEJ3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAyB,aACzC3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,OACjBC,SAAS,UACTC,YACG,IAAIprB,0BAA+BA,OAAuB,WAC1D,OAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA+B,mBAC/C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAmC,uBACpD3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAkC,sBACnD3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA6B,iBAC9C3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAqC,yBACrD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAqB,KAAI,CACrBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAkB,MAC9BorB,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,WAC/CorB,YAAYprB,OAA0B,cAC3C3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA0B,cAC1C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA8B,cAAI,CAC9BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAA4B,gBAC7C3zB,KAAKo/C,mBACAL,YAAYprB,OAA+B,mBAC3CorB,YAAY,IAAIprB,iBAAsB,CAC3C,CAAC,cAAe,WAChB,CAAC,SAAU,UACX,CAAC,aAAc,cACf,CAAC,aAAc,cACf,CAAC,SAAU,YACH,QACR3zB,KAAK6+C,iBAAiB,MACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiC,qBAClD3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,SACTU,SAAS7rB,gBACTorB,YAAYprB,OAA2B,eAC5C3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA8B,kBAC9C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAY,aACjB/+C,KAAKo/C,iBAAiB,IACjBL,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,UAAW,WACZ,CAAC,OAAQ,QACT,CAAC,eAAgB,eACjB,CAAC,UAAW,aACZ,YACR3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,YACjB/+C,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,cACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,UACjB/+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,qBAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA6B,aAAI,CAC7BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAY,qCACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,UACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,UACjB/+C,KAAK6+C,iBAAiB,eACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,eACjB/+C,KAAK6+C,iBAAiB,aACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,uBACrB/+C,KAAK6+C,iBAAiB,iBACbC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,aACjB/+C,KAAKo/C,mBACAI,SAAS7rB,gBACTorB,YAAY,SACZA,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,mBAAoB,oBACrB,CAAC,QAAS,SACV,CAAC,UAAW,WACZ,CAAC,MAAO,OACR,CAAC,UAAW,aACZ,UACR3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,SACjB/+C,KAAK6+C,iBAAiB,oBACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,oBACjB/+C,KAAK6+C,iBAAiB,qBACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,qBACjB/+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,wBAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAY,yBACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,qBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,YACjB/+C,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,aACjB/+C,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,QACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,UACjB/+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,uBAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAA6B,iBAC9C3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA8B,kBAC/C3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA8B,kBAC/C3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA4B,gBAC7C3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA+B,mBAC/C3zB,KAAKm/C,WAAW,GACpB,GAIJxrB,UAA2B,WAAI,CAC3BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,QACjBC,SAAS,UACTC,YACG,IAAIprB,0BAA+B,oBACnC,QAER3zB,KAAK6+C,iBAAiB,SAEjBE,YAAY,IAAIprB,0BAA+B,SAAU,SAC9D3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAW,gCAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAiC,iBAAI,CAKjCirB,KAAM,WACF5+C,KAAKm/C,WAAW,IAChBn/C,KAAKggD,SAAS,eACdhgD,KAAKigD,WAAa,EAClBjgD,KAAKkgD,eACLlgD,KAAKg/C,WAAU,EAAM,SACrBh/C,KAAKmgD,WAAW,IAAIxsB,WAAgB,CAAC,2BACrC3zB,KAAKk/C,WAAW,kCACpB,EAMAkB,cAAe,WACX,IAAI7kB,EAAY5H,SAAc3lB,IAAI0Z,cAAc,YAEhD,OADA6T,EAAUC,aAAa,QAASx7B,KAAKigD,YAC9B1kB,CACX,EAMA8kB,cAAe,SAASC,GACpBtgD,KAAKigD,WAAalK,SAASuK,EAAWC,aAAa,SAAU,IAC7DvgD,KAAKkgD,cACT,EAOAM,UAAW,SAASC,GAChB,IAAIC,EAAiBD,EAAU9wB,SAAS,8BACxC+wB,EAAeC,UAEf,IADA,IAAIn5C,EAAak5C,EAAeE,SAAS,SAASp5C,WACzCkC,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACtC,IAAIm3C,EAAYJ,EAAU9wB,SAAS,yBACnCkxB,EAAUF,UACVn5C,EAAWs5C,QAAQD,EAAUE,oBAC7Bv5C,EAAaq5C,EAAUG,cAC3B,CACA,OAAON,CACX,EAMAO,QAAS,SAASP,GAId,IAHA,IAAIG,EAAYH,EAAeQ,oBAAoB,SAE/C55C,EAAc,GACXu5C,IAAcA,EAAUM,qBAC3B75C,EAAYjC,KAAKw7C,EAAUO,kBAC3BP,EACIA,EAAUG,gBAAkBH,EAAUG,eAAeK,cAG7D,IAAK,IAAI33C,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACtC,IAAIlC,EAAaxH,KAAK4gD,SAAS,MAAQl3C,GAAGlC,WAAW85C,iBACjD95C,IAAkD,GAApCF,EAAY2B,QAAQzB,IAClCA,EAAW+5C,YAEnB,CACAvhD,KAAKigD,WAAa34C,EAAYxF,OAC9B9B,KAAKkgD,eAEL,IAASx2C,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IACjCiqB,WAAgB6tB,UAAUl6C,EAAYoC,GAAI1J,KAAM,MAAQ0J,EAEhE,EAMA+3C,gBAAiB,SAASf,GAGtB,IAFA,IAAIG,EAAYH,EAAeQ,oBAAoB,SAC/Cx3C,EAAI,EACDm3C,GAAW,CACd,IAAI74C,EAAQhI,KAAK4gD,SAAS,MAAQl3C,GAClCm3C,EAAUO,iBAAmBp5C,GAASA,EAAMR,WAAW85C,iBACvD53C,IACAm3C,EACIA,EAAUG,gBAAkBH,EAAUG,eAAeK,aAC7D,CACJ,EAMAnB,aAAc,WACNlgD,KAAKigD,YAAcjgD,KAAK4gD,SAAS,SACjC5gD,KAAK0hD,YAAY,SACT1hD,KAAKigD,YAAejgD,KAAK4gD,SAAS,UAC1C5gD,KAAKo/C,iBAAiB,SAASL,YAAY,2BAG/C,IAAK,IAAIr1C,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IACjC,IAAK1J,KAAK4gD,SAAS,MAAQl3C,GAAI,CAC3B,IAAI1B,EAAQhI,KAAK6+C,iBAAiB,MAAQn1C,GAAG81C,SACzC7rB,gBAEK,GAALjqB,GACA1B,EAAM+2C,YAAY,0BAE1B,CAGJ,KAAO/+C,KAAK4gD,SAAS,MAAQl3C,IACzB1J,KAAK0hD,YAAY,MAAQh4C,GACzBA,GAER,GAGJiqB,UAA2C,2BAAI,CAK3CirB,KAAM,WACF5+C,KAAKggD,SAAS,eACdhgD,KAAKo/C,mBAAmBL,YAAY,cACpC/+C,KAAK2hD,qBAAqB,SAC1B3hD,KAAKk/C,WAAW,cAChBl/C,KAAK4hD,aAAc,CACvB,GAGJjuB,UAAsC,sBAAI,CAKtCirB,KAAM,WACF5+C,KAAKggD,SAAS,eACdhgD,KAAKo/C,mBAAmBL,YAAY,oBACpC/+C,KAAKs/C,sBAAqB,GAC1Bt/C,KAAKu/C,kBAAiB,GACtBv/C,KAAKk/C,WAAW,kCAChBl/C,KAAK4hD,aAAc,CACvB,GAGJjuB,UAAqB,KAAI,CAKrBirB,KAAM,WACF5+C,KAAKggD,SAAS,eACdhgD,KAAKo/C,mBAAmBL,YAAY,kCACpC/+C,KAAK2hD,qBAAqB,SAC1B3hD,KAAKk/C,WAAW,kCAChBl/C,KAAK4hD,aAAc,CACvB,GAGJjuB,UAAyB,SAAI,CACzBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAA+B,mBAC3CorB,YACG,IAAIprB,iBAAsB,CACtB,CAAC,KAAM,MACP,CAAC,OAAQ,QACT,CAAC,WAAY,YACb,CAAC,QAAS,SACV,CAAC,cAAe,eAChB,CAAC,MAAO,OACR,CAAC,YAAa,aACd,CAAC,UAAW,WACZ,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,uBAAwB,wBACzB,CAAC,eAAgB,gBACjB,CAAC,gBAAiB,iBAClB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,uBAAwB,wBACzB,CAAC,wBAAyB,yBAC1B,CAAC,SAAU,UACX,CAAC,YAAa,aACd,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,WAAY,YACb,CAAC,uBAAwB,0BAE7B,QAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAuC,2BACvD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA6B,aAAI,CAC7BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBE,YACG,IAAIprB,0BAA+BA,OAA+B,mBAClE,QAEHorB,YACG,IAAIprB,iBAAsB,CACtB,CAAC,OAAQ,QACT,CAAC,WAAY,YACb,CAAC,QAAS,SACV,CAAC,cAAe,eAChB,CAAC,MAAO,OACR,CAAC,YAAa,aACd,CAAC,UAAW,WACZ,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,uBAAwB,wBACzB,CAAC,eAAgB,gBACjB,CAAC,gBAAiB,iBAClB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,uBAAwB,wBACzB,CAAC,wBAAyB,yBAC1B,CAAC,SAAU,UACX,CAAC,YAAa,aACd,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,WAAY,YACb,CAAC,uBAAwB,0BAE7B,QAEHmrB,SAAS,MAGd9+C,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA6C,iCAC7D3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAAyB,SAAI,CACzBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAwB,YACpCorB,YAAY,IAAIprB,iBAAsBV,MAAwB,QACnEjzB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA6B,iBAC7C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAyB,SAAI,CACzBirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBE,YACG,IAAIprB,0BAA+BA,OAAwB,YAC3D,QAEHorB,YAAY,IAAIprB,iBAAsBV,MAAwB,QAEnEjzB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA6B,iBAC7C3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAA8B,cAAI,CAC9BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAsB,UAClCorB,YACG,IAAIprB,iBnDjzBPR,GAAwBrxB,OAC7BqxB,GAA0B,CACtB,CAAC,WAAY,cmDgzBT,QAERnzB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA8B,kBAC9C3zB,KAAKm/C,WAAW,GACpB,GAaJxrB,UAA8B,cAAI,CAE9BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAA2B,eAC/D3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,aACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTC,YAAYprB,OAAmB,OAC/BorB,YACG,IAAIprB,iBAAsB,CACtB,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAsB,SAAG,YAC1B,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAiB,IAAG,WACrB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAqB,QAAG,WACzB,CAACA,OAA0B,aAAG,UAC9B,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAqB,QAAG,WACzB,CAACA,OAAkB,KAAG,UAE1B,SAOHorB,YAAYprB,OAAuB,WACxC3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA8B,cAAI,CAC9BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAA2B,eAC/D3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,aACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTC,YAAYprB,OAAmB,OAC/BorB,YACG,IAAIprB,iBAAsB,CACtB,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAsB,SAAG,YAC1B,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAiB,IAAG,WACrB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAqB,QAAG,WACzB,CAACA,OAA0B,aAAG,UAC9B,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAqB,QAAG,WACzB,CAACA,OAAkB,KAAG,UAE1B,SAOHorB,YAAYprB,OAAuB,WACxC3zB,KAAK6+C,iBAAiB,eACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA4B,gBAC7C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA8B,cAAI,CAC9BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAiC,qBACrE3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,aACjB/+C,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTC,YAAYprB,OAA2B,eAC5C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAyC,6BACzD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAA6B,iBACjE3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,aACjB/+C,KAAK6+C,iBAAiB,eACjBC,SAAS,MACTC,YAAYprB,OAA4B,gBACxCorB,YACG,IAAIprB,iBAAsB,CACtB,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAsB,SAAG,YAC1B,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAiB,IAAG,WACrB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAqB,QAAG,WACzB,CAACA,OAA0B,aAAG,UAC9B,CAACA,OAAkB,KAAG,QACtB,CAACA,OAAmB,MAAG,SACvB,CAACA,OAAiB,IAAG,OACrB,CAACA,OAAqB,QAAG,WACzB,CAACA,OAAkB,KAAG,UAE1B,SAOHorB,YAAYprB,OAAsB,UACvC3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAqC,yBACrD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAmC,mBAAI,CACnCirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAA2B,eAC/D3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,aACjB/+C,KAAK6+C,iBAAiB,WACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiC,qBAClD3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAsB,UAClCorB,YACG,IAAIprB,iBAAsB,CACtB,CAACA,OAAsB,SAAG,eAE9B,QAER3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,GAAD96C,OAAI0vB,OAAsB,SAAC,QAC3C3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,GAAD96C,OAAI0vB,OAAuB,UAAC,QAC5C3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,GAAD96C,OAAI0vB,OAAsB,SAAC,QAC3C3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,GAAD96C,OAAI0vB,OAAuB,UAAC,QAC5C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAW,gCAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAwB,QAAI,CACxBirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAY,4BACpC/+C,KAAK6+C,iBAAiB,OACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,UACjB/+C,KAAKo/C,mBAAmBL,YACpB,IAAIprB,iBAAsB,CACtB,CAAC,sBAAuB,WACxB,CAAC,yBAA0B,WAC3B,CAAC,cAAe,UAEpB,UAgBJ3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,+CAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA6B,aAAI,CAC7BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAA0B,cAC9D3zB,KAAK6+C,iBAAiB,WACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,QACjB/+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,GACfj/C,KAAKk/C,WAAWvrB,OAAkC,sBAClD3zB,KAAKm/C,WAAW,iCACpB,GAGJxrB,UAA6B,aAAI,CAC7BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAA0B,cAC9D3zB,KAAK6+C,iBAAiB,WACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,QACjB/+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,GACfj/C,KAAKk/C,WAAWvrB,OAAkC,sBAClD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,eACjBC,SAAS,MACTC,YACG,IAAIprB,0BAA+B,kBACnC,SAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,eACjBC,SAAS,MACTC,YACG,IAAIprB,0BAA+B,kBACnC,SAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAA2B,WAAI,CAC3BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,cACjBC,SAAS,MACTC,YACG,IAAIprB,0BAA+B,iBACnC,SAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAkC,sBAClD3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,eACjBC,SAAS,MACTC,YACG,IAAIprB,0BAA+B,kBACnC,SAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAA2B,WAAI,CAC3BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,cACjBC,SAAS,MACTC,YACG,IAAIprB,0BAA+B,iBACnC,SAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAkC,sBAClD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAsB,MAAI,CACtBirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAAoB,QACvD,OAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA4B,gBAC5C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAsB,MAAI,CACtBirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAAoB,QACvD,OAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA4B,gBAC5C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTC,YAAY,IAAIprB,0BAA+B,gBAAiB,SACrE3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WACD,4GAEJl/C,KAAKm/C,WAAW,GACpB,GAEJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAY,8BACpC/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,IAAIprB,0BAA+B,cAAe,SACnE3zB,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,IAAIprB,0BAA+B,YAAa,OACjE3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,GACfj/C,KAAKk/C,WACD,yJAEJl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAwB,QAAI,CACxBirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAsB,UAC1D3zB,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAAmB,MAAG,UAEjE3zB,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAAqB,SACxD,OAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,GACfj/C,KAAKk/C,WAAWvrB,OAA8B,kBAC9C3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,OACjBC,SAAS,MACTC,YAAY,IAAIprB,kBAAuB,SAAU,SACtD3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,eAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAoB,IAAI,CACpBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAY,eACZA,YACG,IAAIprB,iBAAsB,CACtB,CAAC,QAAS,QACV,CAAC,SAAU,UACX,CAAC,kBAAmB,WACpB,CAAC,UAAW,YAEhB,YAER3zB,KAAK6+C,iBAAiB,OACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,OACjB/+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAW,gCAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAyB,SAAI,CACzBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAsB,UAClCorB,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,eAAgB,SACjB,CAAC,aAAc,cACf,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,aAAc,cACf,CAAC,aAAc,UACf,CAAC,YAAa,eACd,iBACR3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAoB,QACrC3zB,KAAK6+C,iBAAiB,eACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAA0B,cAC3C3zB,KAAK6+C,iBAAiB,eACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAA0B,cAC3C3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,WACTU,SAAS7rB,gBACTorB,YAAY,kBACjB/+C,KAAK6+C,iBAAiB,mBACjBW,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAAyC,6BAC5E,aAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA8B,kBAC9C3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAAoB,IAAI,CACpBirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAyB,aAC7D3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAAuB,WAC1D,QAER3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAAwB,YAC3D,QAER3zB,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+BA,OAA0B,cAC7D,QAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAiC,qBACjD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA8B,cAAI,CAC9BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTC,YACG,IAAIprB,0BAA+B,qBACnC,SAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAoC,wBACpD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0B,UAAI,CAC1BirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTC,YACG,IAAIprB,0BAA+B,iBACnC,SAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAgC,oBAChD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAsC,sBAAI,CACtCirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAyB,aACrCorB,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,SAAU,UACX,CAAC,UAAW,WACZ,CAAC,aAAc,cACf,CAAC,eAAgB,gBACjB,CAAC,uBAAwB,wBACzB,CAAC,aAAc,cACf,CAAC,eAAgB,gBACjB,CAAC,mBAAoB,oBACrB,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,MAAO,OACR,CAAC,aAAc,cACf,CAAC,iBAAkB,kBACnB,CAAC,MAAO,OACR,CAAC,eAAgB,gBACjB,CAAC,iCAAkC,kCACnC,CAAC,kBAAmB,mBACpB,CAAC,aAAc,cACf,CAAC,mBAAoB,oBACrB,CAAC,sBAAuB,uBACxB,CAAC,uBAAwB,wBACzB,CAAC,qCAAsC,sCACvC,CAAC,kCAAmC,mCACpC,CAAC,kCAAmC,mCACpC,CAAC,gCAAiC,iCAClC,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,qBAAsB,sBACvB,CAAC,uBAAwB,wBACzB,CAAC,eAAgB,gBACjB,CAAC,gBAAiB,iBAClB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,uBAAwB,wBACzB,CAAC,wBAAyB,yBAC1B,CAAC,SAAU,UACX,CAAC,yBAA0B,0BAC3B,CAAC,yBAA0B,0BAC3B,CAAC,wBAAyB,yBAC1B,CAAC,yBAA0B,0BAC3B,CAAC,0BAA2B,2BAC5B,CAAC,0BAA2B,2BAC5B,CAAC,wBAAyB,yBAC1B,CAAC,WAAY,YACb,CAAC,aAAc,cACf,CAAC,gBAAiB,iBAClB,CAAC,aAAc,cACf,CAAC,iBAAkB,kBACnB,CAAC,2BAA4B,4BAC7B,CAAC,iBAAkB,kBACnB,CAAC,gBAAiB,iBAClB,CAAC,cAAe,eAChB,CAAC,gBAAiB,iBAClB,CAAC,mBAAoB,oBACrB,CAAC,uBAAwB,wBACzB,CAAC,YAAa,aACd,CAAC,oBAAqB,qBACtB,CAAC,qBAAsB,sBACvB,CAAC,wBAAyB,yBAC1B,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,cACb,SACR3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GACpB,GAEJxrB,UAAuC,uBAAI,CACvCirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTC,YAAYprB,OAAyB,aACrCorB,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,eAAgB,gBACjB,CAAC,uBAAwB,wBACzB,CAAC,aAAc,cACf,CAAC,eAAgB,gBACjB,CAAC,mBAAoB,oBACrB,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,MAAO,OACR,CAAC,aAAc,cACf,CAAC,iBAAkB,kBACnB,CAAC,MAAO,OACR,CAAC,eAAgB,gBACjB,CAAC,iCAAkC,kCACnC,CAAC,kBAAmB,mBACpB,CAAC,aAAc,cACf,CAAC,sBAAuB,uBACxB,CAAC,uBAAwB,wBACzB,CAAC,qCAAsC,sCACvC,CAAC,kCAAmC,mCACpC,CAAC,kCAAmC,mCACpC,CAAC,gCAAiC,iCAClC,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,qBAAsB,sBACvB,CAAC,uBAAwB,wBACzB,CAAC,eAAgB,gBACjB,CAAC,gBAAiB,iBAClB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,uBAAwB,wBACzB,CAAC,wBAAyB,yBAC1B,CAAC,SAAU,UACX,CAAC,yBAA0B,0BAC3B,CAAC,yBAA0B,0BAC3B,CAAC,wBAAyB,yBAC1B,CAAC,yBAA0B,0BAC3B,CAAC,0BAA2B,2BAC5B,CAAC,0BAA2B,2BAC5B,CAAC,wBAAyB,yBAC1B,CAAC,WAAY,YACb,CAAC,aAAc,cACf,CAAC,gBAAiB,iBAClB,CAAC,aAAc,cACf,CAAC,iBAAkB,kBACnB,CAAC,2BAA4B,4BAC7B,CAAC,iBAAkB,kBACnB,CAAC,gBAAiB,iBAClB,CAAC,cAAe,eAChB,CAAC,gBAAiB,iBAClB,CAAC,mBAAoB,oBACrB,CAAC,uBAAwB,wBACzB,CAAC,YAAa,aACd,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,UAAW,WACZ,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,YACb,CAAC,WAAY,cACb,SACHorB,YAAY,KACjB/+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAqC,yBACtD3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,UAAW,WACZ,CAAC,OAAQ,QACT,CAAC,MAAO,OACR,CAAC,aAAc,cACf,CAAC,SAAU,YACX,SACHorB,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,KAAM,OACP,CAAC,IAAK,MACN,CAAC,KAAM,OACP,CAACA,OAA6C,gCAAG,QACjD,YACR3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAA6C,iCAC7D3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAA+B,eAAI,CAC/BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAmC,uBACpD3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,UAAW,WACZ,CAAC,OAAQ,QACT,CAAC,MAAO,OACR,CAAC,aAAc,cACf,CAAC,SAAU,YACX,SACR3zB,KAAK6+C,iBAAiB,eACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAmC,uBACpD3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAmC,uBACnD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAkC,sBACnD3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAkC,sBAClD3zB,KAAKm/C,WAAWxrB,OAAkC,qBACtD,GAGJA,UAA+B,eAAI,CAC/BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAoC,wBACrD3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,IAAIprB,iBAAsB,CACnC,CAAC,UAAW,WACZ,CAAC,OAAQ,QACT,CAAC,MAAO,OACR,CAAC,aAAc,cACf,CAAC,SAAU,YACX,SACR3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,GACfj/C,KAAKk/C,WAAWvrB,OAAoC,wBACpD3zB,KAAKm/C,WAAWxrB,OAAoC,uBACxD,GAKJA,UAAwB,QAAI,CACxBirB,KAAM,WACF5+C,KAAKo/C,mBACAI,SAAS7rB,gBACTorB,YAAYprB,OAA0B,cACtCorB,YACG,IAAIprB,iBAAsB,CACtB,CAAC,MAAO,OACR,CAAC,OAAQ,QACT,CAAC,MAAO,OACR,CAAC,UAAW,WACZ,CAAC,SAAU,UACX,CAAC,QAAS,WAEd,aAER3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAY,IAAIprB,0BAA+B,OAAQ,aAC5D3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+B,wBACnC,aAER3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BAA+B,0BACnC,aAER3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,WACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BACAA,OAA0C,8BAE9C,aAER3zB,KAAK6+C,iBAAiB,QACjBC,SAAS,WACTU,SAAS7rB,gBACTorB,YACG,IAAIprB,0BACAA,OAA8C,kCAElD,aAER3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,GACfj/C,KAAKi/C,UAAU,GACfj/C,KAAKk/C,WAAWvrB,OAAkC,sBAClD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA2B,WAAI,CAC3BirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAwB,YACpCorB,YACG,IAAIprB,iBAAsB,CACtB,CAACA,OAA4B,eAAG,SAChC,CAACA,OAA2B,cAAG,UAEnC,SAER3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,KACfj/C,KAAKk/C,WAAWvrB,OAAgC,oBAChD3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAkC,kBAAI,CAClCirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTC,YAAYprB,OAA+B,mBAChD3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAuC,2BACvD3zB,KAAKm/C,WAAWxrB,OAAoC,uBACxD,GAGJA,UAAsC,sBAAI,CACtCirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAAmC,uBACpD3zB,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA2C,+BAC3D3zB,KAAKm/C,WAAWxrB,OAAwC,2BAC5D,GAGJA,UAAsB,MAAI,CACtBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAY,iBACZA,YACG,IAAIprB,uBAA4BA,OAAwB,YACxD,QAER3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA2B,cAC/C,GAGJA,UAAqB,KAAI,CACrBirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAY,gBACZA,YACG,IAAIprB,uBAA4BA,OAAuB,WACvD,QAER3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA0B,aAC9C,GAGJA,UAAkC,kBAAI,CAClCirB,KAAM,WACF5+C,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTC,YAAYprB,OAAmC,uBACpD3zB,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKq/C,iBAAgB,GACrBr/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA2C,+BAC3D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA0C,0BAAI,CAC1CirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAoC,wBACxE3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,OACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAkB,MACnC3zB,KAAKo/C,mBAAmBL,YAAYprB,OAAkC,sBACtE3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA4C,gCAC5D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA2C,2BAAI,CAC3CirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAmC,uBACvE3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,OACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAkB,MACnC3zB,KAAK6+C,iBAAiB,OACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAoB,QACrC3zB,KAAKo/C,mBAAmBL,YACpBprB,OAAyC,6BAE7C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA2C,+BAC3D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAuC,uBAAI,CACvCirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YACpBprB,OAAsC,0BAE1C3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,MACjBW,SAAS7rB,gBACTorB,YAAYprB,OAAkC,sBACnD3zB,KAAKo/C,mBAAmBL,YAAYprB,OAA6B,iBACjE3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA8C,kCAC9D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAoC,oBAAI,CACpCirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YACpBprB,OAAsC,0BAE1C3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAwB,YACzC3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAsB,UACvC3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA0B,cAC3C3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAwB,YACzC3zB,KAAKo/C,mBAAmBL,YACpBprB,OAAyC,6BAE7C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA8C,kCAC9D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAoC,oBAAI,CACpCirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YACpBprB,OAA+C,mCAEnD3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAwB,YACzC3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAsB,UACvC3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA0B,cAC3C3zB,KAAK6+C,iBAAiB,UACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAwB,YACzC3zB,KAAKo/C,mBAAmBL,YACpBprB,OAAyC,6BAE7C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,UACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAAuD,2CACvE3zB,KAAKm/C,WAAW,GACpB,GAEJxrB,UAAsC,sBAAI,CACtCirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YACpBprB,OAAkD,sCAEtD3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,SACjBW,SAAS7rB,gBACTorB,YAAYprB,OAAY,0BAC7B3zB,KAAKo/C,mBAAmBL,YAAYprB,OAAoC,wBACxE3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MACrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WACDvrB,OAA0D,8CAE9D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA2C,2BAAI,CAC3CirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAmC,uBACvE3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,OACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAkB,MACnC3zB,KAAK6+C,iBAAiB,OACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAAoB,QACrC3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAYprB,OAA4B,gBAC7C3zB,KAAKo/C,mBAAmBL,YACpBprB,OAAyC,6BAE7C3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,MAGrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA2C,+BAC3D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAwC,wBAAI,CACxCirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAqC,yBACzE3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,SACTU,SAAS7rB,gBACTorB,YAAYprB,OAAyC,6BAC1D3zB,KAAKg/C,WAAU,EAAM,MAGrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA6C,iCAC7D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAAkC,kBAAI,CAClCirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAYprB,OAAmC,uBACvE3zB,KAAK6+C,iBAAiB,iBACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,iBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,UACTU,SAAS7rB,gBACTorB,YAAYprB,OAAiB,KAClC3zB,KAAK6+C,iBAAiB,SACjBC,SAAS,SACTU,SAAS7rB,gBACTorB,YAAYprB,OAA6B,iBAC9C3zB,KAAKg/C,WAAU,EAAM,MAGrBh/C,KAAKi/C,UAAU,IACfj/C,KAAKk/C,WAAWvrB,OAA2C,+BAC3D3zB,KAAKm/C,WAAW,GACpB,GAGJxrB,UAA4B,YAAI,CAC5BirB,KAAM,WACF5+C,KAAKo/C,mBAAmBL,YAAY,6BACpC/+C,KAAK6+C,iBAAiB,WACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,eACjB/+C,KAAK6+C,iBAAiB,aACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,kBACjB/+C,KAAK6+C,iBAAiB,YACjBC,SAAS,MACTU,SAAS7rB,gBACTorB,YAAY,sBACjB/+C,KAAK6+C,iBAAiB,YAEjBW,SAAS7rB,gBACTorB,YAAY,QACjB/+C,KAAKg/C,WAAU,EAAM,MAGrBh/C,KAAKi/C,UAAU,GACfj/C,KAAKk/C,WAAW,2CAChBl/C,KAAKm/C,WAAW,GACpB,G,OCzoEJ,MAAM0C,GAAyB,sBACxB,IAAIC,GAAS,oBAETC,GACP,0DAA4DD,GAIrDE,GAEP,qBAIOC,GAEP,mBAgBJ,SAASC,GAAWr+B,GAKhB,OAJIA,EAAKzS,WAAW,MAAQyS,EAAKzS,WAAW,QACxCyS,EAAOA,EAAKs0B,MAAM,EAAGt0B,EAAK/hB,OAAS,IAGhC+hB,CACX,CAEA,SAASs+B,GAAet+B,GACpB,OAAKA,GAAgB,aAARA,GAA+B,QAARA,GAEhCA,EAAKzS,WAAW,MAAQyS,EAAKu+B,SAAS,OACtCv+B,EAAOA,EAAKs0B,MAAM,EAAGt0B,EAAK/hB,OAAS,IAEhC+hB,GALoD,IAM/D,CAiBA8P,UAAqC,qBAAI,CACrCirB,KAAM,WACF5+C,KAAKo/C,mBACAL,YAAYprB,OAA4B,gBACxCorB,YAAY,IAAIprB,uBAA4B,IAAK,QACtD3zB,KAAKg/C,WAAU,EAAM,QACrBh/C,KAAKi/C,UAAU,IAAK,GAAI,GAC5B,GAGJtrB,cAAyC,qBAAI,SAASzsB,GAElD,IAAIm7C,EAAO1uB,cAAmB2uB,iBAAiBp7C,EAAMq7C,cAAc,SAC/DC,GACsB,GAAtBH,EAAKp5C,QAAQ,KACb0qB,cAAmB8uB,eACnB9uB,cAAmB+uB,aACvB,MAAO,CAACL,EAAMG,EAClB,EAQA7uB,cAAgC,YAAI,SAASzsB,GAQzC,MAAO,EALHysB,cAAmBgvB,YACfz7C,EACA,QACAysB,cAAmBivB,sBAClB,MACW,UAAWjvB,cAAmBkvB,aACtD,EAEAlvB,cAA2B,OAAI,SAASzsB,GACpC,IAAI47C,EAAanvB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAIvB,OADWI,EAAW3K,MAAM,EAAG2K,EAAWhhD,OAAS,GAAK,KAE5D,EAEA6xB,cAA4B,QAAI,SAASzsB,GACrC,IAAI67C,EAAUpvB,cAAmBqvB,OAAO97C,EAAMq7C,cAAc,SAI5D,MADW,MADXQ,EAAUb,GAAWa,IACO,MAEhC,EAEApvB,cAAoC,gBAAI,SAASzsB,GAE7C,IAAIm7C,EAAO1uB,cAAmB2uB,iBAAiBp7C,EAAMq7C,cAAc,UAEzC,GAAtBF,EAAKp5C,QAAQ,KACb0qB,cAAmB8uB,eACnB9uB,cAAmB+uB,aAGvB,OADa,IAAIO,SADJ,UAAYZ,EAAO,IAEzBa,GAAW,IACtB,EACAvvB,cAAkC,cAAI,SAASzsB,GAE3C,IAAIm7C,EAAOn7C,EAAMq7C,cAAc,QAE/B,MAAO,CADPF,EAAOF,GAAeE,GACR1uB,cAAmBwvB,WACrC,EAEAxvB,cAAkC,cAAI,SAASzsB,GAC3C,IAAIk8C,EAAczvB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAEnBW,EAAc1vB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAMvB,OAHAW,EAAcnB,GAAWC,GAAekB,IAE7B,WADXD,EAAclB,GAAWC,GAAeiB,KACH,IAAMC,EAAc,OAE7D,EAEA1vB,cAA4B,QAAI,SAASzsB,GACrC,IAAIm8C,EAAc1vB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAKvB,OAFAW,EAAcnB,GAAWC,GAAekB,IAC7B,UAAY5zC,GAAiB,IAAM4zC,EAAc,OAEhE,EACA1vB,cAA8B,UAAI,SAASzsB,GACvC,IAAIo8C,EAAkB3vB,cAAmBqvB,OAAO97C,EAAMq7C,cAAc,SAKpE,MADW,yBAFXe,EAAkBpB,GAAWC,GAAemB,KAEW,KAE3D,EAEA3vB,cAAkC,cAAI,SAASzsB,GAY3C,MAAO,CAHH,iDANAysB,cAAmBgvB,YACfz7C,EACA,OACAysB,cAAmBwvB,aAClB,MAIL,8BACUxvB,cAAmBwvB,WACrC,EAEAxvB,cAAwB,IAAI,SAASzsB,GACjC,IAAIq8C,EAAY5vB,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,cAEnBc,EAAgBt8C,EAAMq7C,cAAc,QAKxC,MAFI,OAASJ,GAAeoB,GAAa,KAAOC,EAAgB,OAGpE,EAEA7vB,cAA8B,UAAI,SAASzsB,GASvC,MAFW,OAASi7C,GANJxuB,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,eAGyB,YAGpD,EAEA/uB,cAA8B,UAAI,SAASzsB,GACvC,IAAIu8C,EAAc9vB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAEnBgB,EAAa/vB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAqBvB,MAVQ,0IAAAz+C,OACCw/C,EAAW,mBAAAx/C,OACZy/C,EAAU,0IAStB,EAIA/vB,cAAyB,KAAI,SAASzsB,GAClC,IAAIy8C,EAAkD,IAAjCz8C,EAAMq7C,cAAc,WAEzC,MADQ,eAAAt+C,OAAkB0/C,EAAc,OAE5C,EAEAhwB,cAAkC,cAAI,SAASzsB,GAChCA,EAAMq7C,cAAc,QAChB5uB,cAAmBgvB,YAC9Bz7C,EACA,KACAysB,cAAmB+uB,cAEN/uB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAOvB,MAAO,CAHH,8LAGU/uB,cAAmBwvB,WACrC,EAEAxvB,cAA8B,UAAI,SAASzsB,GACvC,IAAI08C,EAAejwB,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnBmB,EAAelwB,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAiBvB,MAAO,CARH,0GAPa/uB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAMnB,aACAkB,EACA,cACAC,EACA,8CAEUlwB,cAAmBwvB,WACrC,EAEAxvB,cAA+B,WAAI,SAASzsB,GACxC,IAAI48C,EAAanwB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnBqB,EAAcpwB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cASvB,OANIqB,EAAY3yC,WAAW,MAAQ2yC,EAAY3yC,WAAW,QACtD2yC,EAAc,IAAMA,EAAY5L,MAAM,EAAG4L,EAAYjiD,OAAS,GAAK,KAKhE,CAFI,IAAMogD,GAAWC,GAAe2B,IAAe,KAAOC,EAEnDpwB,cAAmBwvB,WACrC,EAEAxvB,cAAqC,iBAAI,SAASzsB,GAG9C,IADA,IAAIX,EAAW,IAAIoJ,MAAMzI,EAAM+4C,YACtBv2C,EAAI,EAAGA,EAAIxC,EAAM+4C,WAAYv2C,IAClCnD,EAASmD,GACLiqB,cAAmBgvB,YACfz7C,EACA,MAAQwC,EACRiqB,cAAmBwvB,aAClB,OAGb,MAAO,CADI,IAAM58C,EAASy9C,KAAK,MAAQ,IACzBrwB,cAAmB+uB,aACrC,EAEA/uB,cAA0B,MAAI,SAASzsB,GACnC,IAAI/J,EAAQw2B,cAAmBgvB,YAC3Bz7C,EACA,QACAysB,cAAmB+uB,cAMvB,MAAO,CAFPvlD,EAAQ,cADRA,EAAQ+kD,GAAWC,GAAehlD,KACH,KAEjBw2B,cAAmBwvB,WACrC,EACAxvB,cAA0B,MAAI,SAASzsB,GACnC,IAAI/J,EAAQw2B,cAAmBgvB,YAC3Bz7C,EACA,QACAysB,cAAmB+uB,cAMvB,MAAO,CAFPvlD,EAAQ,gBADRA,EAAQ+kD,GAAWC,GAAehlD,KACD,KAEnBw2B,cAAmBwvB,WACrC,EAEAxvB,cAA6B,SAAI,SAASzsB,GAGtC,MAAO,CAFI,aAEGysB,cAAmBwvB,WAErC,EAEAxvB,cAA8B,UAAI,SAASzsB,GAIvC,MAHW,gBAIf,EAEAysB,cAA6B,SAAI,SAASzsB,GAItC,MAAO,CADI,QAFSA,EAAMq7C,cAAc,QAG1B5uB,cAAmBwvB,WACrC,EAEAxvB,cAAiC,aAAI,SAASzsB,GAC1C,IAAIq8C,EAAY5vB,cAAmBgvB,YAC/Bz7C,EACA,QACAysB,cAAmB+uB,cAEnBc,EAAgBt8C,EAAMq7C,cAAc,QAOxC,MAJiB,KADjBgB,EAAYpB,GAAeoB,MAEvBA,EAAY,MAEL,QAAUpB,GAAeqB,GAAiB,IAAMD,EAAY,KAE3E,EAEA5vB,cAA6B,SAAI,SAASzsB,GACtC,IAEIm7C,EAFgBn7C,EAAMq7C,cAAc,QAMxC,MAAO,CAFPF,GADAA,EAAOA,EAAKj9C,QAAQ,MAAO,MACfA,QAAQ,SAAU,SAEhBuuB,cAAmBwvB,WACrC,EAEAxvB,cAA6B,SAAI,SAASzsB,GACtC,IAAIq8C,EAAY5vB,cAAmBgvB,YAC/Bz7C,EACA,QACAysB,cAAmB+uB,cAEnBc,EAAgBt8C,EAAMq7C,cAAc,QAGvB,KADjBgB,EAAYpB,GAAeoB,MAEvBA,EAAY,MAEhB,IAAIlB,EAAOF,GAAeqB,GAAiB,IAAMD,EAAY,MAG7D,OAFAlB,EAAOA,EAAKj9C,QAAQ,MAAO,IAG/B,EAEAuuB,cAAkC,cAAI,SAASzsB,GAC3C,IAEIm7C,EAAO,IAFSn7C,EAAMq7C,cAAc,QAEP,IAGjC,MAAO,CAFPF,EAAOA,EAAKj9C,QAAQ,MAAO,KAEbuuB,cAAmBwvB,WACrC,EAUAxvB,cAAkC,cAAI,SAASzsB,GAE3C,IAAI+8C,EAAiB/8C,EAAMq7C,cAAc,SACrC2B,EAAevwB,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnByB,EAAkBxwB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAkBvB,MAAO,CAdH,gCACAT,GACA,oBACAE,GAAe+B,GACf,IAGA,YACApC,GACA,cACAK,GAAegC,GACf,cACAhC,GAAe8B,GACf,IACUtwB,cAAmBwvB,WACrC,EAEAxvB,cAAkC,cAAI,SAASzsB,GAE3C,IAAI+8C,EAAiB/8C,EAAMq7C,cAAc,SACrC2B,EAAevwB,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnB0B,EAAoBzwB,cAAmBgvB,YACvCz7C,EACA,cACAysB,cAAmB+uB,cAEnByB,EAAkBxwB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAmBvB,MAAO,CAhBH,gCACAT,GACA,oBACAE,GAAe+B,GACf,IAGA,YACApC,GACA,cACAK,GAAegC,GACf,cACAhC,GAAe8B,GACf,cACA9B,GAAeiC,GACf,IACUzwB,cAAmBwvB,WACrC,EAEAxvB,cAAiC,aAAI,SAASzsB,GAC1C,IAAIm9C,EAAe1wB,cAAmBgvB,YAAYz7C,EAAO,SAAUysB,cAAmB+uB,cAClF4B,EAAe3wB,cAAmBgvB,YAAYz7C,EAAO,SAAUysB,cAAmB+uB,cAClF6B,EAAoB5wB,cAAmBgvB,YAAYz7C,EAAO,cAAeysB,cAAmB+uB,cAC5F8B,EAAkB7wB,cAAmBgvB,YAAYz7C,EAAO,YAAaysB,cAAmB+uB,cACxF+B,EAAkBv9C,EAAMq7C,cAAc,UAEtCmC,GADc/wB,cAAmBgvB,YAAYz7C,EAAO,QAASysB,cAAmB+uB,cAClE/uB,cAAmBgvB,YAAYz7C,EAAO,QAASysB,cAAmB+uB,eAChFiC,EAAyBhxB,cAAmBgvB,YAAYz7C,EAAO,mBAAoBysB,cAAmB+uB,cACtGkC,EAA0BjxB,cAAmBgvB,YAAYz7C,EAAO,oBAAqBysB,cAAmB+uB,cACxGmC,EAAgBlxB,cAAmBgvB,YAAYz7C,EAAO,gBAAiBysB,cAAmB+uB,cAEpE,KAAzBmC,EAAcl3C,SAAek3C,EAAgB,MAE9CP,EAAepC,GAAWoC,GAC1B,IAAIjC,EAAI,2DAAAp+C,OAA8DwgD,EAAe,kBAIvF,OAHEpC,GAAW,cAAAp+C,OAAiBogD,EAAY,oBAAApgD,OAAmBsgD,EAAiB,oBAAAtgD,OAAmBugD,EAAe,cAAAvgD,OAAa4gD,GAAiB,GAAE,eAAA5gD,OAAcygD,EAAW,2BAAAzgD,OAA0B2gD,EAAuB,0BAAA3gD,OAAyB0gD,EAAsB,MAGlQ,CAFLtC,GAAW,yCAAAp+C,OAA4CqgD,EAAY,wBAEvD3wB,cAAmBwvB,WACnC,EAEAxvB,cAA8B,UAAI,SAASzsB,GACfA,EAAMq7C,cAAc,YACvB5uB,cAAmBgvB,YAAYz7C,EAAO,WAAYysB,cAAmB+uB,cAD1F,IAEI2B,EAAe1wB,cAAmBgvB,YAAYz7C,EAAO,SAAUysB,cAAmB+uB,cAClF8B,EAAkB7wB,cAAmBgvB,YAAYz7C,EAAO,YAAaysB,cAAmB+uB,cACxF4B,EAAe3wB,cAAmBgvB,YAAYz7C,EAAO,SAAUysB,cAAmB+uB,cACtF4B,EAAepC,GAAWoC,GAE5B,IAAIjC,EAAO,yFAIX,MAAO,CAFLA,GADAA,GAAW,eAAAp+C,OAAkBogD,EAAY,sCAAApgD,OAAqCugD,EAAe,2EAC/E,yCAA2CF,EAAe,sBAE5D3wB,cAAmBwvB,WACnC,EAEAxvB,cAAgC,YAAI,SAASzsB,GACzC,IAAIm9C,EAAe1wB,cAAmBgvB,YAAYz7C,EAAO,SAAUysB,cAAmB+uB,cAClFoC,EAAiBnxB,cAAmBgvB,YAAYz7C,EAAO,WAAYysB,cAAmB+uB,cACtFqC,EAAapxB,cAAmBgvB,YAAYz7C,EAAO,OAAQysB,cAAmB+uB,cAC9EmC,EAAgBlxB,cAAmBgvB,YAAYz7C,EAAO,gBAAiBysB,cAAmB+uB,cAC1F4B,EAAe3wB,cAAmBgvB,YAAYz7C,EAAO,SAAUysB,cAAmB+uB,cAGtF4B,EAAepC,GAFfoC,EAAe,oEAGfQ,EAAiB5C,GAAW4C,GAC5BD,EAAgB3C,GAAW2C,GAI3B,IAAIxC,EAAI,yBAAAp+C,OADI,kCAC2B,MAIzC,OAHEo+C,GAAW,gBAAAp+C,OAAmBogD,EAAY,sBAAApgD,OAAqB6gD,EAAc,wBAAA7gD,OAAuB4gD,EAAa,cAAA5gD,OAAak+C,GAAe4C,GAAW,MAGnJ,CAFL1C,GAAW,kCAAAp+C,OAAqCqgD,EAAY,uBAEhD3wB,cAAmBwvB,WACnC,EAEAxvB,cAAkC,cAAI,SAASzsB,GAC3C,IAAIg9C,EAAevwB,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnByB,EAAkBxwB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAiBvB,MAAO,CAdH,iCACAT,GACA,oBACAE,GAAe+B,GACf,IAGA,YACApC,GAFAO,iBAMAF,GAAegC,GACf,IACUxwB,cAAmBwvB,WACrC,EAEAxvB,cAAgC,YAAI,SAASzsB,GACzC,IAAI+8C,EAAiB/8C,EAAMq7C,cAAc,SACrCyC,EAAoBrxB,cAAmBgvB,YACvCz7C,EACA,cACAysB,cAAmB+uB,cAEnByB,EAAkBxwB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAcvB,MAAO,CAZI,gCAAkCT,GAAgB,gBAGzD,WACAH,GACA,cACAK,GAAegC,GACf,cACAhC,GAAe8B,GACf,eACA9B,GAAe6C,GACf,IACUrxB,cAAmBwvB,WACrC,EAEAxvB,cAAuC,mBAAI,SAASzsB,GAChD,IAAI+9C,EAAgBtxB,cAAmBgvB,YACnCz7C,EACA,UACAysB,cAAmB+uB,cAEnByB,EAAkBxwB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAcvB,MAAO,CAXH,gCACAT,GACA,yBACAE,GAAe8C,GACf,aACAnD,GALA,iBAQAK,GAAegC,GACf,IAEUxwB,cAAmBwvB,WACrC,EAEAxvB,cAAiC,aAAI,SAASzsB,GAC1C,IAAIg+C,EAAgBvxB,cAAmBgvB,YACnCz7C,EACA,UACAysB,cAAmB+uB,cAQvB,MAAO,CALH,qEACAZ,GACA,KACAK,GAAe+C,GACf,IACUvxB,cAAmBwvB,WACrC,EAEAxvB,cAAiC,aAAI,SAASzsB,GAC1C,IAAIg+C,EAAgBvxB,cAAmBgvB,YACnCz7C,EACA,UACAysB,cAAmB+uB,cAQvB,MAAO,CALH,qEACAZ,GACA,aACAK,GAAe+C,GACf,IACUvxB,cAAmBwvB,WACrC,EAEAxvB,cAA8B,UAAI,SAASzsB,GACvC,IAAIi+C,EAAaxxB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnB0C,EAAazxB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnB2C,EAAa1xB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnB4C,EAAa3xB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAoBvB,OAjBIyC,IAAYA,EAAaA,EAAW//C,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAClEggD,IAAYA,EAAaA,EAAWhgD,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAClEigD,IAAYA,EAAaA,EAAWjgD,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAClEkgD,IAAYA,EAAaA,EAAWlgD,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAc/D,CAXH,8FACA08C,GACA,SACAqD,EACA,SACAC,EACA,SACAC,EACA,SACAC,EACA,KACU3xB,cAAmBwvB,WACrC,EAEAxvB,cAAgC,YAAI,SAASzsB,GAUzC,MAAO,CAHI,eAAiBi7C,GANRxuB,cAAmBgvB,YACnCz7C,EACA,cACAysB,cAAmB+uB,eAGqC,IAG9C/uB,cAAmBwvB,WACrC,EACAxvB,cAAgC,YAAI,SAASzsB,GAUzC,MAAO,CAHI,eAAiBi7C,GANRxuB,cAAmBgvB,YACnCz7C,EACA,cACAysB,cAAmB+uB,eAGqC,IAG9C/uB,cAAmBwvB,WACrC,EACAxvB,cAA+B,WAAI,SAASzsB,GAUxC,MAAO,CAHI,cAAgBi7C,GANPxuB,cAAmBgvB,YACnCz7C,EACA,aACAysB,cAAmB+uB,eAGoC,IAG7C/uB,cAAmBwvB,WACrC,EACAxvB,cAAgC,YAAI,SAASzsB,GAUzC,MAAO,CAHI,eAAiBi7C,GANRxuB,cAAmBgvB,YACnCz7C,EACA,cACAysB,cAAmB+uB,eAGqC,IAG9C/uB,cAAmBwvB,WACrC,EAEAxvB,cAA+B,WAAI,SAASzsB,GAUxC,MAAO,CAHI,oBAAsBi7C,GANbxuB,cAAmBgvB,YACnCz7C,EACA,aACAysB,cAAmB+uB,eAG0C,IAGnD/uB,cAAmBwvB,WACrC,EACAxvB,cAA8B,UAAI,SAASzsB,GAUvC,MAAO,CAHI,mBAAqBi7C,GANVxuB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,eAG2C,IAGpD/uB,cAAmBwvB,WACrC,EAEAxvB,cAAyB,KAAI,SAASzsB,GACjBysB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAIvB,MAAO,CADH,wEACU/uB,cAAmBwvB,WACrC,EAEAxvB,cAA8B,UAAI,SAASzsB,GAUvC,MAAO,CAHH,YANaysB,cAAmBgvB,YAChCz7C,EACA,QACAysB,cAAmB+uB,cAKnB,+DACU/uB,cAAmBwvB,WACrC,EAEAxvB,cAA8B,UAAI,SAASzsB,GAWvC,MAAO,CAJH,YANaysB,cAAmBgvB,YAChCz7C,EACA,QACAysB,cAAmB+uB,cAKnB,+DAEU/uB,cAAmBwvB,WACrC,EAEAxvB,cAAgC,YAAI,SAASzsB,GACzC,IAAIq+C,EAAiB5xB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnB8C,EAAiB7xB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAWvB,MAAO,CAPH,qBACAP,GAAeoD,GACf,IACApD,GAAeqD,GACf,IAGU7xB,cAAmBwvB,WACrC,EAEAxvB,cAA4B,QAAI,SAASzsB,GACrC,IAAIq+C,EAAiB5xB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnB8C,EAAiB7xB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAGnB+C,EACA,eACAtD,GAAeoD,GACf,gBACApD,GAAeqD,GAHf,yDAWJ,MAAO,CAHI,wBAA0BzD,GAAe,IAAM0D,EAAQ,IAGpD9xB,cAAmBwvB,WACrC,EAEAxvB,cAA4B,QAAI,SAASzsB,GACpBysB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEAx7C,EAAMq7C,cAAc,aAClBr7C,EAAMq7C,cAAc,eACrBr7C,EAAMq7C,cAAc,cACvBr7C,EAAMq7C,cAAc,WAClBr7C,EAAMq7C,cAAc,aACrBr7C,EAAMq7C,cAAc,YAClBr7C,EAAMq7C,cAAc,cAClBr7C,EAAMq7C,cAAc,gBACxBr7C,EAAMq7C,cAAc,YACjBr7C,EAAMq7C,cAAc,aAC3Br7C,EAAMq7C,cAAc,MACpBr7C,EAAMq7C,cAAc,MACpBr7C,EAAMq7C,cAAc,MACpBr7C,EAAMq7C,cAAc,MACpBr7C,EAAMq7C,cAAc,MACpBr7C,EAAMq7C,cAAc,MACpBr7C,EAAMq7C,cAAc,MACpB5uB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAEL/uB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAmCvB,MADW,EAEf,EAEA/uB,cAA8B,UAAI,SAASzsB,GACvC,IAAIw+C,EAAax+C,EAAMq7C,cAAc,SACrB5uB,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,cAKvB,OAFWP,GAAeD,GAAWwD,GAGzC,EAEA/xB,cAAwB,IAAI,SAASzsB,GACjC,IAAIs8C,EAAgBt8C,EAAMq7C,cAAc,YACpCoD,EAAUhyB,cAAmBgvB,YAC7Bz7C,EACA,MACAysB,cAAmB+uB,cAEnBL,EAAO,GAIX,OAFAsD,EAAUzD,GADVyD,EAAUxD,GAAewD,IAGjBnC,GACJ,IAAK,OACDnB,EAAO,gBAAiBsD,EAAU,KAClC,MACJ,IAAK,SAUL,IAAK,UAUL,IAAK,SACDtD,EACI,wEACAP,GACA,QACA6D,EACA,SACAnC,EACA,KAEJ,MACJ,QACInB,EAAO,GAcf,MAZqB,QAAjBmB,IACAnB,EAAO,gBAAiBsD,EAAU,MAEjB,UAAjBnC,IACAnB,EACI,wEACAP,GACA,QACA6D,EACA,MAGD,CAACtD,EAAM1uB,cAAmBwvB,WACrC,EAEAxvB,cAAwB,IAAI,SAASzsB,GACjC,IAAI0+C,EAAkBjyB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAEnBmD,EAAkBlyB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAEnBoD,EAAkBnyB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAGnBL,EACA,aACAF,GAAeyD,GACf,IACAzD,GAAe0D,GAOnB,OANIC,IAEAzD,EAAOA,EAAO,IAAMF,GAAe2D,IAIhC,CAFPzD,GAAc,IAEA1uB,cAAmBwvB,WACrC,EAEAxvB,cAAkC,cAAI,SAASzsB,GAU3C,MAAO,CAHI,kBAAoBi7C,GANTxuB,cAAmBgvB,YACrCz7C,EACA,gBACAysB,cAAmB+uB,eAG0C,IAGnD/uB,cAAmBwvB,WACrC,EAEAxvB,cAA8B,UAAI,SAASzsB,GAUvC,MAAO,CAHI,cAAgBi7C,GANTxuB,cAAmBgvB,YACjCz7C,EACA,YACAysB,cAAmB+uB,eAGkC,IAG3C/uB,cAAmBwvB,WACrC,EAEAxvB,cAA6B,SAAI,SAASzsB,GACtC,IAAI6+C,EAAoB7+C,EAAMq7C,cAAc,iBACxCyD,EAAaryB,cAAmBgvB,YAChCz7C,EACA,SACAysB,cAAmB+uB,cAEnBuD,EAAqBtyB,cAAmBgvB,YACxCz7C,EACA,cACAysB,cAAmB+uB,cAEnBwD,EAAqBvyB,cAAmBgvB,YACxCz7C,EACA,cACAysB,cAAmB+uB,cAEnByD,EAAqBxyB,cAAmBgvB,YACxCz7C,EACA,SACAysB,cAAmB+uB,cAGnB0D,EAAmBzyB,cAAmBgvB,YACtCz7C,EACA,kBACAysB,cAAmB+uB,cAGnB2D,EAAG,IAAApiD,OAAOi+C,GAAW+D,GAAmB,KAAAhiD,OAAIi+C,GAChDgE,GACD,KACK7D,EAAO,GAeX,MAZ0B,aAF1B0D,EAAoB5D,GAAe4D,KAG/B1D,EAAI,kBAAAp+C,OAAqB+hD,EAAU,MAAA/hD,OAAKoiD,GACpBhE,GAApB+D,EAAwB,KAAAniD,OAASmiD,EAAgB,KAAgB,KACpC,UAAtBL,GACP1D,EAAI,kBAAAp+C,OAAqB+hD,EAAU,MAAA/hD,OAAKoiD,GACxCF,IAAsB9D,GAAI,KAAAp+C,OAASkiD,IACf9D,GAApB+D,EAAwB,KAAAniD,OAASmiD,EAAgB,KAAgB,MAEjE/D,EAAI,kBAAAp+C,OAAqB+hD,EAAU,MAAA/hD,OAAKoiD,GAClBhE,GAAtB8D,EAA0B,KAAAliD,OAASkiD,EAAkB,KAAgB,KAGlE,CAAC9D,EAAM1uB,cAAmBwvB,WACrC,EAEAxvB,cAA4B,QAAI,SAASzsB,GACrC,IAAI6+C,EAAoB7+C,EAAMq7C,cAAc,UACxC+D,EAAsB3yB,cAAmBgvB,YACzCz7C,EACA,MACAysB,cAAmB+uB,cAEnBL,EAAO,GAEX,OAAQ0D,GACJ,IAAK,UACD1D,EACIiE,EACA,gEACJ,MACJ,IAAK,UACDjE,EACIiE,EACA,uDACJ,MACJ,IAAK,OACDjE,EAAOiE,EAAsB,2BAC7B,MAIJ,QACIjE,EAAO,GAEf,MAAO,CAACA,EAAM1uB,cAAmBwvB,WACrC,EAEAxvB,cAA0C,sBAAI,SAASzsB,GAMnD,MAAO,CAFI,kBAHUA,EAAMq7C,cAAc,SAK3B5uB,cAAmBwvB,WACrC,EAEAxvB,cAA2C,uBAAI,SAASzsB,GAUpD,MADW,kBARUA,EAAMq7C,cAAc,SAQO,MAP9B5uB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAI+C,KAE1E,EAEA/uB,cAAgC,YAAI,SAASzsB,GACzC,IAAIq/C,EAAiBr/C,EAAMq7C,cAAc,SACrCiE,EAAoBt/C,EAAMq7C,cAAc,YACxCkE,EAAc9yB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAuBvB,MAAO,CATH,iBACA6D,EACA,wFACAzE,GACA,OAdA,cACAyE,EACA,OACAC,EACA,IACAC,EACA,OAUA,WAGU9yB,cAAmBwvB,WACrC,EAEAxvB,cAAmC,eAAI,SAASzsB,GAC5C,IAAIq/C,EAAiBr/C,EAAMq7C,cAAc,SACrCkE,EAAc9yB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAEnB0B,EAAoBzwB,cAAmBgvB,YACvCz7C,EACA,cACAysB,cAAmB+uB,cA2BvB,MANI,yFACAZ,GACA,MAhBA,yDAKAyE,EACA,QACAE,EACA,IACArC,EACA,eACAA,EACA,MAMA,OAGR,EAEAzwB,cAAgC,YAAI,SAASzsB,GAgBzC,MALI,sFACA46C,GADA,6EAMR,EAEAnuB,cAAmC,eAAI,SAASzsB,GAU5C,IAAIw/C,EACA,yDAViBx/C,EAAMq7C,cAAc,SAgBrC,QAfc5uB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAcnB,IACA0B,kBACA,eACAA,kBACA,KAQJ,MANI,wFACAtC,GACA,KACA4E,EACA,OAGR,EAEA/yB,cAA4B,QAAI,SAASzsB,GACrC,IAAIy/C,EAAqBz/C,EAAMq7C,cAAc,aACzCqE,EAAajzB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnBmE,EAAalzB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnBoE,EAAanzB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnBqE,EAAapzB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAEnBsE,EAAarzB,cAAmBgvB,YAChCz7C,EACA,OACAysB,cAAmB+uB,cAGnBL,EACA,kBACAF,GAAewE,GACf,KACAxE,GAAeyE,GAAc,MAajC,OAVAvE,GADAA,EAAOA,EAAO,IAAMF,GAAe0E,GAAc,OACnC,IAAM1E,GAAe2E,GAAc,MAEjCzE,EAAZ0E,EAAmB1E,EAAO,IAAM0E,GAAc,KACtC1E,EAAO,MAAQ0E,EAEX1E,EAAZ2E,EAAmB3E,EAAO,IAAM2E,GAAc,KACtC3E,EAAO,MAAQ2E,EAIpB,CAFP3E,GAAc,IAEA1uB,cAAmBwvB,WACrC,EAEAxvB,cAA+B,WAAI,SAASzsB,GACxC,IAAI+/C,EAAiB//C,EAAMq7C,cAAc,SACzCt6C,QAAQC,IAAI,iBAAmB++C,GAE/B,IAAI5E,EAAO,gBAAkBF,GAAe8E,GAAkB,MAE9D,OADAh/C,QAAQC,IAAIU,UACLy5C,CACX,EAEA1uB,cAAsC,kBAAI,SAASzsB,GAC/C,IAAIggD,EAAgBvzB,cAAmBgvB,YACnCz7C,EACA,QACAysB,cAAmB+uB,cAEnByE,EAAaz3C,GAYjB,GAXAzH,QAAQC,IAAI,iBAAmBg/C,GAEM,KAAjCA,EAAc92C,UAAU,EAAG,IAE3B,KADA82C,EAAc92C,UAAU82C,EAAcplD,OAAS,EAAGolD,EAAcplD,UAGhEolD,EACI,IAAMA,EAAc92C,UAAU,EAAG82C,EAAcplD,OAAS,GAAK,IACjEmG,QAAQC,IAAI,yBAA2Bg/C,IAE3Cj/C,QAAQC,IAAI,iBAAmBg/C,IACG,GAA9BC,EAAWl+C,QAAQ,OAUnBo5C,GAFIA,EACA,2EAGA,qGACAP,GACA,MAXA,mBACAqF,EACA,gBACAD,EACA,uCASA,aAEJ,IAAI7E,EAAO,KAEf,OAAOA,CACX,EAEA1uB,cAA0C,sBAAI,SAASzsB,GAEnD,IAAIigD,EAAaz3C,GAEjB,IAAkC,GAA9By3C,EAAWl+C,QAAQ,OAQnBo5C,GAFIA,EACA,2EAGA,0GACAP,GACA,OATA,mBACAqF,EACA,yDASA,aAEJ,IAAI9E,EAAO,KAEf,OAAOA,CACX,EAEA1uB,cAA0B,MAAI,SAASzsB,GAEnC,IAAIm7C,EAAO1uB,cAAmB2uB,iBAAiBp7C,EAAMq7C,cAAc,UAEzC,GAAtBF,EAAKp5C,QAAQ,KACb0qB,cAAmB8uB,eACnB9uB,cAAmB+uB,aAKvB,MAAO,CADPL,EAAO,MADM,IAAIY,SADJ,UAAYZ,EAAO,IAEjBa,GAAW,QACZvvB,cAAmBwvB,WACrC,EAEAxvB,cAAyB,KAAI,SAASzsB,GAElC,IAAIm7C,EAAO1uB,cAAmB2uB,iBAAiBp7C,EAAMq7C,cAAc,UAEzC,GAAtBF,EAAKp5C,QAAQ,KACb0qB,cAAmB8uB,eACnB9uB,cAAmB+uB,aAKvB,MAAO,CADPL,EAAO,MADM,IAAIY,SADJ,UAAYZ,EAAO,IAEjBa,GAAW,QACZvvB,cAAmBwvB,WACrC,EAEAxvB,cAAgC,YAAI,SAASzsB,GACzC,IAAIkgD,EAAgBzzB,cAAmBgvB,YACnCz7C,EACA,UACAysB,cAAmB+uB,cAEnB2E,EAAkB1zB,cAAmBgvB,YACrCz7C,EACA,YACAysB,cAAmB+uB,cAEnB4E,EAAiB3zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBqC,EAAapxB,cAAmBgvB,YAChCz7C,EACA,WACAysB,cAAmB+uB,cAGnBL,EACA,iCACAL,GACA,wBACAF,GAMJ,MAAO,CADPO,GADAA,GADAA,GADAA,EAAOA,EAAO,cAAgBF,GAAeiF,IAC/B,kBAAoBjF,GAAekF,IACnC,iBAAmBlF,GAAemF,IAClC,IAAMvC,EAAa,IACnBpxB,cAAmBwvB,WACrC,EAMAxvB,cAAsC,kBAAI,SAASzsB,GAC/C,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnB+E,EAAc9zB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAavB,MAAO,CAVH,iCACAV,GACAH,GACA,cACAM,GAAeoF,GACf,mBACApF,GAAeqF,GACf,aACAC,EACA,KACU9zB,cAAmBwvB,WACrC,EAEAxvB,cAA4C,wBAAI,SAASzsB,GACrD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnB+E,EAAc9zB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAcvB,MAAO,CAVH,iCACAV,GACAH,GACA,iBACAM,GAAeoF,GACf,mBACApF,GAAeqF,GACf,gBACAC,EACA,KACU9zB,cAAmBwvB,WACrC,EAEAxvB,cAA+C,2BAAI,SAASzsB,GACxD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBgF,EAAY/zB,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,cAEnBiF,EAAYh0B,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,cAEnB+D,EAAc9yB,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAsBvB,MAAO,CAlBH,iCACAV,GACAH,GACA,eACAM,GAAeoF,GACf,IAGA,iBACApF,GAAeqF,GACf,YACArF,GAAeuF,GACf,eACAvF,GAAewF,GACf,cACAxF,GAAesE,GACf,MAEU9yB,cAAmBwvB,WACrC,EAEAxvB,cAA2C,uBAAI,SAASzsB,GACpD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBkF,EAAWj0B,cAAmBgvB,YAC9Bz7C,EACA,KACAysB,cAAmB+uB,cAGnB6E,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAkBvB,MAAO,CAdH,gCACAV,GACAH,GACA,kBACAM,GAAeoF,GACf,IAGA,iBACApF,GAAeqF,GACf,cACArF,GAAeyF,GACf,MAEUj0B,cAAmBwvB,WACrC,EAEAxvB,cAA+C,2BAAI,SAASzsB,GACxD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBgF,EAAY/zB,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,cAEnBiF,EAAYh0B,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,cAoBvB,MAAO,CAhBH,gCACAV,GACAH,GACA,eACAM,GAAeoF,GACf,IAGA,iBACApF,GAAeqF,GACf,YACArF,GAAeuF,GACf,eACAvF,GAAewF,GACf,MAEUh0B,cAAmBwvB,WACrC,EAEAxvB,cAAwC,oBAAI,SAASzsB,GACjD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBmF,EAAel0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnBoF,EAAen0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnBqF,EAAep0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnBsF,EAAer0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAwBvB,MAAO,CApBH,gCACAV,GACAH,GACA,gBACAM,GAAeoF,GACf,IAGA,iBACApF,GAAeqF,GACf,kBACArF,GAAe0F,GACf,gBACA1F,GAAe2F,GACf,kBACA3F,GAAe4F,GACf,gBACA5F,GAAe6F,GACf,MAEUr0B,cAAmBwvB,WACrC,EAEAxvB,cAA0C,sBAAI,SAASzsB,GACnD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBuF,EAAct0B,cAAmBgvB,YACjCz7C,EACA,QACAysB,cAAmB+uB,cAkBvB,MAAO,CAdH,gCACAV,GACAH,GACA,mBACAM,GAAeoF,GACf,IAGA,iBACApF,GAAeqF,GACf,cACArF,GAAe8F,GACf,MAEUt0B,cAAmBwvB,WACrC,EAEAxvB,cAAwC,oBAAI,SAASzsB,GACjD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBmF,EAAel0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnBoF,EAAen0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnBqF,EAAep0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAEnBsF,EAAer0B,cAAmBgvB,YAClCz7C,EACA,SACAysB,cAAmB+uB,cAuBvB,MAAO,CApBH,gCACAV,GACAH,GACA,qBACAM,GAAeoF,GACf,IAGA,iBACApF,GAAeqF,GACf,kBACArF,GAAe0F,GACf,gBACA1F,GAAe2F,GACf,kBACA3F,GAAe4F,GACf,gBACA5F,GAAe6F,GACf,MAEUr0B,cAAmBwvB,WACrC,EAEAxvB,cAA8C,0BAAI,SAASzsB,GACvD,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAEnB8E,EAAiB7zB,cAAmBgvB,YACpCz7C,EACA,WACAysB,cAAmB+uB,cAEnBgF,EAAY/zB,cAAmBgvB,YAC/Bz7C,EACA,MACAysB,cAAmB+uB,cAiBvB,MAAO,CAdH,gCACAV,GACAH,GACA,cACAM,GAAeoF,GACf,KAGA,iBACApF,GAAeqF,GACf,QACArF,GAAeuF,GACf,OAEU/zB,cAAmBwvB,WACrC,EAEAxvB,cAAsC,kBAAI,SAASzsB,GAC/C,IAAIqgD,EAAsB5zB,cAAmBgvB,YACzCz7C,EACA,gBACAysB,cAAmB+uB,cAUvB,MAAO,CAPH,iCACAV,GACAH,GACA,cACAM,GAAeoF,GACf,IAEU5zB,cAAmBwvB,WACrC,ECv3DAxvB,6BAAkC,CAChC,CACEr4B,KAAM,gBACNokD,SAAU,SACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,MACN2pD,MAAO,CAAC,mBAAoB,eAGhCC,cAAc,EACdvlD,OAAQ,gBACRwlD,OAAQ,UACRtI,QAAS,GACTC,QAAS,GACTsI,WAAY,wBAEd,CACE/sD,KAAM,gBACNokD,SAAU,SACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,MACN2pD,MAAO,CAAC,mBAAoB,eAGhCC,cAAc,EACdvlD,OAAQ,gBACRwlD,OAAQ,UACRtI,QAAS,GACTC,QAAS,GACTsI,WAAY,wBAEd,CACE/sD,KAAM,gBACNokD,SAAU,SACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,MACN2pD,MAAO,CAAC,mBAAoB,eAGhCC,cAAc,EACdvlD,OAAQ,gBACRwlD,OAAQ,UACRtI,QAAS,GACTC,QAAS,GACTsI,WAAY,wBAEd,CACE/sD,KAAM,gBACNokD,SAAU,SACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,MACN2pD,MAAO,CAAC,mBAAoB,YAAa,UAG7CC,cAAc,EACdvlD,OAAQ,gBACRwlD,OAAQ,UACRtI,QAAS,GACTC,QAAS,GACTsI,WAAY,wBAEd,CACE/sD,KAAM,kBACNokD,SAAU,WACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,QACN2pD,MAAO,CAAC,mBAAoB,eAGhCC,cAAc,EACdvlD,OAAQ,kBACRwlD,OAAQ,UACRtI,QAAS,GACTC,QAAS,GACTsI,WAAY,0BAIhB10B,cAAmB6qB,SAAS,wBAAwB,WAClDx+C,KAAKsoD,aAAY,SAAUC,GACzB,IAAIt6B,EAASjuB,KAAKwoD,oBAEN,MAAVv6B,GACAA,EAAO9f,WAAW3Q,SAAS,aACA,MAA3BwC,KAAKyoD,SAAS,UAEdzoD,KAAKo/C,iBAAiB,aACnBL,YAAY,KACZA,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,SACX,CAAC,MAAO,OACR,CAAC,OAAQ,UAEX,UAGO,MAAV1F,GAAmBA,EAAO9f,WAAW3Q,SAAS,aACpB,MAA3BwC,KAAKyoD,SAAS,WAEdzoD,KAAK0hD,YAAY,YAErB,GACF,IACA/tB,cAAkC,cAAI,SAAUzsB,GAC9C,IAAIwhD,EAAW/0B,cAAmBg1B,gBAAgBzhD,EAAO,OAGrDm7C,EAAO,QADXqG,GADAA,EAAWA,EAASt4C,UAAU,EAAGs4C,EAAS5mD,SACtB6L,QAEPnQ,SAAS,MACpBkrD,EAAWA,EAAStjD,QAAQ,IAAK,MACjCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,YAC3BkrD,EAAWA,EAAStjD,QAAQ,UAAW,WACvCi9C,EAAOA,EAAKp+C,OAAOykD,IAEnBrG,EAAO,OAASqG,EAAW,KAI7B,IAAIE,EAAe,GAUnB,OATI5oD,KAAK4gD,SAAS,eAII,UAHpBgI,EAAej1B,cAAmBk1B,YAAYC,QAC5C5hD,EAAMq7C,cAAc,cAGpBqG,EAAe,IAEjBvG,EAAOA,EAAKp+C,OAAO,IAAM2kD,IAEpBvG,CACT,EAEA1uB,cAAkC,cAAI,SAAUzsB,GAC9C,IAAIwhD,EAAW/0B,cAAmBg1B,gBAAgBzhD,EAAO,OAGrDm7C,EAAO,QADXqG,GADAA,EAAWA,EAASt4C,UAAU,EAAGs4C,EAAS5mD,SACtB6L,QAEPnQ,SAAS,MACpBkrD,EAAWA,EAAStjD,QAAQ,IAAK,MACjCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,YAC3BkrD,EAAWA,EAAStjD,QAAQ,UAAW,WACvCi9C,EAAOA,EAAKp+C,OAAOykD,IAEnBrG,EAAO,OAASqG,EAAW,KAG7B,IAAIE,EAAe,GAUnB,OATI5oD,KAAK4gD,SAAS,eAII,UAHpBgI,EAAej1B,cAAmBk1B,YAAYC,QAC5C5hD,EAAMq7C,cAAc,cAGpBqG,EAAe,IAEjBvG,EAAOA,EAAKp+C,OAAO,IAAM2kD,IAEpBvG,CACT,EAEA1uB,cAAkC,cAAI,SAAUzsB,GAC9C,IAAIwhD,EAAW/0B,cAAmBg1B,gBAAgBzhD,EAAO,OAGrDm7C,EAAO,QADXqG,GADAA,EAAWA,EAASt4C,UAAU,EAAGs4C,EAAS5mD,SACtB6L,QAEPnQ,SAAS,MACpBkrD,EAAWA,EAAStjD,QAAQ,IAAK,MACjCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,YAC3BkrD,EAAWA,EAAStjD,QAAQ,UAAW,WACvCi9C,EAAOA,EAAKp+C,OAAOykD,IAEnBrG,EAAO,OAASqG,EAAW,KAG7B,IAAIE,EAAe,GAUnB,OATI5oD,KAAK4gD,SAAS,eAII,UAHpBgI,EAAej1B,cAAmBk1B,YAAYC,QAC5C5hD,EAAMq7C,cAAc,cAGpBqG,EAAe,IAEjBvG,EAAOA,EAAKp+C,OAAO,IAAM2kD,IAEpBvG,CACT,EAEA1uB,cAAkC,cAAI,SAAUzsB,GAC9C,IAAIwhD,EAAW/0B,cAAmBg1B,gBAAgBzhD,EAAO,OAGrDm7C,EAAO,QADXqG,GADAA,EAAWA,EAASt4C,UAAU,EAAGs4C,EAAS5mD,SACtB6L,QAEPnQ,SAAS,MACpBkrD,EAAWA,EAAStjD,QAAQ,IAAK,MACjCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,YAC3BkrD,EAAWA,EAAStjD,QAAQ,UAAW,WACvCi9C,EAAOA,EAAKp+C,OAAOykD,IAEnBrG,EAAO,OAASqG,EAAW,KAG7B,IAAIE,EAAe,GAUnB,OATI5oD,KAAK4gD,SAAS,eAII,UAHpBgI,EAAej1B,cAAmBk1B,YAAYC,QAC5C5hD,EAAMq7C,cAAc,cAGpBqG,EAAe,IAEjBvG,EAAOA,EAAKp+C,OAAO,IAAM2kD,IAEpBvG,CACT,EAEA1uB,cAAoC,gBAAI,SAAUzsB,GAChD,IAAIwhD,EAAW/0B,cAAmBg1B,gBAAgBzhD,EAAO,SAGrDm7C,EAAO,UADXqG,GADAA,EAAWA,EAASt4C,UAAU,EAAGs4C,EAAS5mD,SACtB6L,QAEPnQ,SAAS,MACpBkrD,EAAWA,EAAStjD,QAAQ,IAAK,MACjCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IACVA,EAASlrD,SAAS,UAC3BkrD,EAAWA,EAAStjD,QAAQ,QAAS,SACrCi9C,EAAOA,EAAKp+C,OAAOykD,IAEnBrG,EAAO,SAAWqG,EAAW,KAG/B,IAAIE,EAAe,GAUnB,OATI5oD,KAAK4gD,SAAS,eAII,UAHpBgI,EAAej1B,cAAmBk1B,YAAYC,QAC5C5hD,EAAMq7C,cAAc,cAGpBqG,EAAe,IAEjBvG,EAAOA,EAAKp+C,OAAO,IAAM2kD,IAEpBvG,CACT,EC1TA1uB,6BAAkC,CAChC,CACEr4B,KAAM,eACNokD,SAAU,WACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,aACN2pD,MAAO,CACL,gBACA,gBACA,gBACA,kBACA,gBACA,mBACA,cAGJ,CACE5sD,KAAM,cACNiD,KAAM,aACN2pD,MAAO,CAAC,eAGZC,cAAc,EACdvlD,OAAQ,eACRwlD,OAAQ,UACRtI,QAAS,GACTC,QAAS,GACTsI,WAAY,mBAGhB10B,cAAmB6qB,SAAS,iBAAiB,WAC3Cx+C,KAAKsoD,aAAY,SAAUC,GACzB,IAAIt6B,EAASjuB,KAAKwoD,oBACJ,MAAVv6B,IAEAA,EAAO86B,cAAcvrD,SAAS,gBAC9BywB,EAAO86B,cAAcvrD,SAAS,YAE9BwC,KAAK4gD,SAAS,cAAc9B,SAAS,SAErC9+C,KAAK4gD,SAAS,cAAc9B,SAAS,CACnC,YACA,gBACA,gBACA,gBACA,kBACA,gBACA,qBAIR,GACF,IACAnrB,cAAiC,aAAI,SAAUzsB,GAI7C,OAHkBysB,cAAmBg1B,gBAAgBzhD,EAAO,cAEnC,OADPysB,cAAmBg1B,gBAAgBzhD,EAAO,aAG9D,EC5DAysB,6BAAkC,CAChC,CACEr4B,KAAM,MACNokD,SAAU,SACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,OACN2pD,MAAO,CACL,SACA,UACA,YACA,WACA,KACA,MACA,MACA,aAINc,SAAU,SACVC,MAAO,CACL,CACE3tD,KAAM,cACNiD,KAAM,QACN2pD,MAAO,CACL,SACA,UACA,YACA,WACA,KACA,MACA,MACA,aAINtlD,OAAQ,MACRwlD,OAAQ,UACRrI,QAAS,MAIbpsB,cAAwB,IAAI,SAAUzsB,GAKpC,IAJA,IAEI4C,EAAI,EACJu4C,EAHY1uB,cAAmBg1B,gBAAgBzhD,EAAO,QAGnC,QAFPysB,cAAmBg1B,gBAAgBzhD,EAAO,SAEb,IACtCA,EAAM05C,SAAS,MAAQ92C,IAAI,CAChC,IAAIo/C,EAAiBv1B,cAAmBg1B,gBAAgBzhD,EAAO,MAAQ4C,GACvEu4C,EAAOA,EAAKp+C,OAAO,OAASilD,KAC1Bp/C,CACJ,CAEA,OADAu4C,EAAO,IAAWA,EAAO,GAE3B,ECvDA1uB,6BAAkC,CAChC,CACEr4B,KAAM,UACNokD,SAAU,SACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,OACN2pD,MAAO,CAAC,mBAAoB,eAGhCc,SAAU,aACVC,MAAO,CACL,CACE3tD,KAAM,cACNiD,KAAM,OACN2pD,MAAO,CAAC,SAGZtlD,OAAQ,UACRwlD,OAAQ,UACRrI,QAAS,MAGbpsB,cAA4B,QAAI,SAAUzsB,GACxC,IAEIm7C,EAFY1uB,cAAmBg1B,gBAAgBzhD,EAAO,QAEnC,YADPysB,cAAmBg1B,gBAAgBzhD,EAAO,QAI1D,OADAm7C,GADAA,EAAOA,EAAKj9C,QAAQ,IAAK,KACbA,QAAQ,IAAK,GAE3B,EC7BAuuB,6BAAkC,CAChC,CACEr4B,KAAM,UACNokD,SAAU,WACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,cACN2pD,MAAO,CACL,aACA,OACA,mBACA,SACA,UACA,SACA,YACA,gBACA,gBACA,gBACA,gBACA,kBACA,eAGJ,CACE5sD,KAAM,iBACNiD,KAAM,KACN4mB,QAAS,CACP,CAAC,IAAK,MACN,CAAC,SAAU,OACX,CAAC,IAAK,MACN,CAAC,SAAU,OACX,CAAC,IAAK,MACN,CAAC,SAAU,OACX,CAAC,OAAQ,OAGb,CACE7pB,KAAM,cACNiD,KAAM,cACN2pD,MAAO,CACL,aACA,OACA,mBACA,UACA,SACA,YACA,gBACA,gBACA,gBACA,gBACA,kBACA,gBAINC,cAAc,EACdvlD,OAAQ,UACRwlD,OAAQ,UACRrI,QAAS,IAGX,CACEzkD,KAAM,iBACNokD,SAAU,cACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,eACN2pD,MAAO,CACL,gBACA,kBACA,gBACA,gBACA,gBACA,qBAGJ,CACE5sD,KAAM,iBACNiD,KAAM,KACN4mB,QAAS,CACP,CAAC,IAAK,MACN,CAAC,SAAU,OACX,CAAC,IAAK,MACN,CAAC,SAAU,OACX,CAAC,IAAK,MACN,CAAC,SAAU,SAGf,CACE7pB,KAAM,cACNiD,KAAM,eACN2pD,MAAO,CAAC,OAAQ,mBAAoB,UAAW,SAAU,eAG7DtlD,OAAQ,UACRwlD,OAAQ,IACRrI,QAAS,+BACTsI,WAAY,CAAC,gBAAiB,uBAGlC10B,cAAqB,WACnB3zB,KAAKyoD,SAAS,MAAMU,cAAa,SAAUnY,GACzC,IAAIoY,EAAyB,MAAVpY,GAA4B,OAAVA,EACjCqY,EAAW,GACf,GAAc,KAAVrY,GAA2B,MAAVA,EACfqY,EAAW,WAEjBrpD,KAAKspD,aAAapJ,aAAakJ,EAAcC,EAC/C,GACF,EACA11B,qBAA4B,CAE1BysB,cAAe,WACb,IAAI7kB,EAAYx2B,SAAS2iB,cAAc,YACnC0hC,EAC0B,MAA5BppD,KAAKuiD,cAAc,OAA6C,OAA5BviD,KAAKuiD,cAAc,MAEzD,OADAhnB,EAAUC,aAAa,gBAAiB4tB,GACjC7tB,CACT,EAEA8kB,cAAe,SAAUC,GACvB,IAAI8I,EAA2D,QAA5C9I,EAAWC,aAAa,iBAC3CvgD,KAAKkgD,aAAakJ,EACpB,EAEAlJ,aAAc,SAAUkJ,EAAcC,GAEpC,GAAgB,YAAZA,EAAwB,EACtBE,EAAcvpD,KAAK4gD,SAAS,gBAGrB2I,IACTvpD,KAAK0hD,YAAY,eACjB1hD,KAAK2hD,qBAAqB,eAAe7C,SAAS,CAAC,YAHnD9+C,KAAK2hD,qBAAqB,eAAe7C,SAAS,CAAC,UAKvD,KAAO,CAEL9+C,KAAK0hD,YAAY,eACjB,IAAI6H,EAAcvpD,KAAK4gD,SAAS,eAC5BwI,EACGG,GACHvpD,KAAK6+C,iBAAiB,eAAeC,SAAS,CAC5C,OACA,mBACA,UACA,SACA,cAGKyK,GACTvpD,KAAK0hD,YAAY,cAErB,CACF,GAEF/tB,cAAmB61B,gBACjB,cACA71B,qBACAA,eAEFA,cAA4B,QAAI,SAAUzsB,GACxC,IAaIuiD,EAbY,CACdC,GAAI,IACJC,IAAK,KACLC,GAAI,IACJC,IAAK,KACLC,GAAI,IACJC,IAAK,KACLC,GAAI,UACJC,IAAK,cACLC,EAAG,KACHC,GAAI,SACJC,EAAG,QAEoBljD,EAAMq7C,cAAc,OACzC8H,EAAY12B,cAAmBg1B,gBAAgBzhD,EAAO,eACtDojD,EAAY,GAchB,MAbgB,WAAZb,GAAqC,eAAZA,IAC3Ba,EAAY32B,cAAmBg1B,gBAAgBzhD,EAAO,eACtC,MAAZuiD,GAAgC,UAAZA,IAClBa,EAAU9sD,SAAS,OACjB8sD,EAAU9sD,SAAS,aACrB8sD,EAAYA,EAAUllD,QAAQ,WAAY,0BAE5CklD,EAAYA,EAAUllD,QAAQ,IAAK,MAErCklD,EAAY,IAAMA,EAAY,MAGvBD,EAAY,IAAMZ,EAAW,IAAMa,CAEhD,ECjMA32B,6BAAkC,CAChC,CACEr4B,KAAM,WACNokD,SAAU,WACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,cACN2pD,MAAO,CAAC,OAAQ,mBAAoB,cAEtC,CACE5sD,KAAM,iBACNiD,KAAM,KACN4mB,QAAS,CACP,CAAC,KAAM,KACP,CAAC,SAAU,QAGf,CACE7pB,KAAM,kBACNiD,KAAM,cACN2pD,MAAO,CAAC,YAGZC,cAAc,EACdvlD,OAAQ,WACRwlD,OAAQ,UACRrI,QAAS,MAGbpsB,cAA6B,SAAI,SAAUzsB,GACzC,IAIIuiD,EAJY,CACdS,EAAG,KACHC,GAAI,UAEmBjjD,EAAMq7C,cAAc,OACzC8H,EAAY12B,cAAmBg1B,gBAAgBzhD,EAAO,eACtDojD,EAAY32B,cAAmBg1B,gBAAgBzhD,EAAO,eAa1D,MAXgB,MAAZuiD,GAAgC,UAAZA,IAClBa,EAAU9sD,SAAS,OACjB8sD,EAAU9sD,SAAS,aACrB8sD,EAAYA,EAAUllD,QAAQ,WAAY,0BAE5CklD,EAAYA,EAAUllD,QAAQ,KAAM,MAEtCklD,EAAY,IAAMA,EAAY,KAErBD,EAAY,IAAMZ,EAAW,IAAMa,CAGhD,ECrDA32B,UAAqB,KAAI,CACvBirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,eACnBC,SAAS,CAAC,YAAa,mBAAoB,SAAU,SACrDU,SAAS7rB,iBACZ3zB,KAAK6+C,iBAAiB,eACnBC,SAAS,CAAC,YAAa,mBAAoB,SAAU,SACrDU,SAAS7rB,iBACTorB,YACC,IAAIprB,iBAAsB,CACxB,CAAC,IAAU,QACX,CAAC,IAAU,SACX,CAAC,OAAU,OACX,CAAC,OAAU,SAEb,cAEJ3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,CAAC,SACtBh/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GAClB,GAEFxrB,cAAyB,KAAI,SAAUzsB,GACrC,IAMIuiD,EANY,CACdc,KAAM,IACNC,MAAO,IACPC,IAAK,IACLxqC,IAAK,KAEkB/Y,EAAMq7C,cAAc,eACzC8H,EAAY12B,cAAmBg1B,gBAAgBzhD,EAAO,eAI1D,MADW,KAFXmjD,EAAYA,EAAU18C,QAEO,IAAM87C,EAAW,IAD9B91B,cAAmBg1B,gBAAgBzhD,EAAO,eACM,GAElE,ECrCAysB,6BAAkC,CAChC,CACEr4B,KAAM,MACNokD,SAAU,SACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,OACN2pD,MAAO,CAAC,KAAM,MAAO,UAAW,aAGpCtlD,OAAQ,MACRwlD,OAAQ,UACRrI,QAAS,MAGbpsB,cAAwB,IAAI,SAAUzsB,GAEpC,MADW,OAASysB,cAAmBg1B,gBAAgBzhD,EAAO,OAEhE,ECnBAysB,6BAAkC,CAChC,CACEr4B,KAAM,KACNokD,SAAU,QACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,OACN2pD,MAAO,CACL,UACA,YACA,WACA,MACA,MACA,KACA,aAINc,SAAU,SACVC,MAAO,CACL,CACE3tD,KAAM,cACNiD,KAAM,QACN2pD,MAAO,CACL,UACA,YACA,WACA,MACA,MACA,KACA,aAINtlD,OAAQ,KACRwlD,OAAQ,UACRrI,QAAS,MAIbpsB,cAAuB,GAAI,SAAUzsB,GAKnC,IAJA,IAEI4C,EAAI,EACJu4C,EAHY1uB,cAAmBg1B,gBAAgBzhD,EAAO,QAGnC,OAFPysB,cAAmBg1B,gBAAgBzhD,EAAO,SAEd,IACrCA,EAAM05C,SAAS,MAAQ92C,IAAI,CAChC,IAAIo/C,EAAiBv1B,cAAmBg1B,gBAAgBzhD,EAAO,MAAQ4C,GACvEu4C,EAAOA,EAAKp+C,OAAO,MAAQilD,KACzBp/C,CACJ,CAEA,OADAu4C,EAAO,IAAWA,EAAO,GAE3B,ECrDA1uB,UAA6B,aAAI,CAC/BirB,KAAM,WACJ5+C,KAAKo/C,iBAAiB,cACnBI,SAAS7rB,eACTorB,YAAY,oBACZA,YAAY,IAAIprB,eAAoB,EAAG,GAAI,eAC9C3zB,KAAKs/C,sBAAqB,EAAM,CAAC,QAAS,OAAQ,WAAY,WAC9Dt/C,KAAKu/C,kBAAiB,EAAO,CAAC,WAAY,UAC1Cv/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GAClB,GAEFxrB,cAAiC,aAAI,SAAUzsB,GAC7C,IAAIm7C,EAAO1uB,cAAmBk1B,YAAYC,QACxC5hD,EAAMq7C,cAAc,gBAGtB,MAAO,UADPF,EAAOA,EAAKj9C,QAAQ,OAAQ,KACH,GAC3B,ECbAuuB,aAAkB+2B,MAAMC,IAAM,IAE9Bh3B,6BAAkC,CAOhC,CACEr4B,KAAM,qBACNokD,SAAU,kCACV98C,OAAQ,QACRsD,MAAO,cACP45C,QAAS,oCACTC,QAAS,qCAGX,CACEzkD,KAAM,eACNokD,SAAU,4BACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,QAER,CACEjD,KAAM,cACNiD,KAAM,MACN2pD,MAAO,WAGXtlD,OAAQ,QACRsD,MAAO,cACP45C,QAAS,8BACTC,QAAS,+BAGX,CACEzkD,KAAM,gBACNokD,SAAU,gCACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,OACN2pD,MAAO,UAGXtlD,OAAQ,QACRulD,cAAc,EACdjiD,MAAO,cACP45C,QAAS,+BACTC,QAAS,gCAGX,CACEzkD,KAAM,gBACNokD,SAAU,6BACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,QACN2pD,MAAO,CAAC,SAAU,WAGtBtlD,OAAQ,UACRsD,MAAO,cACP45C,QAAS,+BACTC,QAAS,gCAGX,CACEzkD,KAAM,eACNokD,SAAU,4BACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,QACN2pD,MAAO,CAAC,SAAU,WAGtBtlD,OAAQ,SACRsD,MAAO,cACP45C,QAAS,8BACTC,QAAS,iCAIbpsB,UAA0B,UAAI,CAK5BirB,KAAM,WACJ5+C,KAAKm/C,WAAWxrB,OAAuC,2BACvD3zB,KAAKggD,SAAS,eACdhgD,KAAKigD,WAAa,EAClBjgD,KAAKkgD,eACLlgD,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,WACfj/C,KAAKmgD,WAAW,IAAIxsB,WAAgB,CAAC,4BACrC3zB,KAAKk/C,WAAWvrB,OAAuC,0BACzD,EAMAysB,cAAe,WACb,IAAI7kB,EAAY5H,SAAc3lB,IAAI0Z,cAAc,YAEhD,OADA6T,EAAUC,aAAa,QAASx7B,KAAKigD,YAC9B1kB,CACT,EAMA8kB,cAAe,SAAUC,GACvBtgD,KAAKigD,WAAalK,SAASuK,EAAWC,aAAa,SAAU,IAC7DvgD,KAAKkgD,cACP,EAOAM,UAAW,SAAUC,GACnB,IAAIC,EAAiBD,EAAU9wB,SAAS,+BACxC+wB,EAAeC,UAEf,IADA,IAAIn5C,EAAak5C,EAAeE,SAAS,SAASp5C,WACzCkC,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACxC,IAAIm3C,EAAYJ,EAAU9wB,SAAS,0BACnCkxB,EAAUF,UACVn5C,EAAWs5C,QAAQD,EAAUE,oBAC7Bv5C,EAAaq5C,EAAUG,cACzB,CACA,OAAON,CACT,EAMAO,QAAS,SAAUP,GAIjB,IAHA,IAAIG,EAAYH,EAAeQ,oBAAoB,SAE/C55C,EAAc,GACXu5C,GACLv5C,EAAYjC,KAAKw7C,EAAUO,kBAC3BP,EACEA,EAAUG,gBAAkBH,EAAUG,eAAeK,cAGzD,IAAK,IAAI33C,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACxC,IAAIlC,EAAaxH,KAAK4gD,SAAS,MAAQl3C,GAAGlC,WAAW85C,iBACjD95C,IAAkD,GAApCF,EAAY2B,QAAQzB,IACpCA,EAAW+5C,YAEf,CACAvhD,KAAKigD,WAAa34C,EAAYxF,OAC9B9B,KAAKkgD,eAEL,IAASx2C,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IACnCiqB,WAAgB6tB,UAAUl6C,EAAYoC,GAAI1J,KAAM,MAAQ0J,EAE5D,EAMA+3C,gBAAiB,SAAUf,GAGzB,IAFA,IAAIG,EAAYH,EAAeQ,oBAAoB,SAC/Cx3C,EAAI,EACDm3C,GAAW,CAChB,IAAI74C,EAAQhI,KAAK4gD,SAAS,MAAQl3C,GAClCm3C,EAAUO,iBAAmBp5C,GAASA,EAAMR,WAAW85C,iBACvD53C,IACAm3C,EACEA,EAAUG,gBAAkBH,EAAUG,eAAeK,aACzD,CACF,EAMAnB,aAAc,WACRlgD,KAAKigD,YAAcjgD,KAAK4gD,SAAS,SACnC5gD,KAAK0hD,YAAY,SACP1hD,KAAKigD,YAAejgD,KAAK4gD,SAAS,UAC5C5gD,KAAKo/C,iBAAiB,SAASL,YAC7BprB,OAAsC,0BAI1C,IAAK,IAAIjqB,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IACnC,IAAK1J,KAAK4gD,SAAS,MAAQl3C,GAAI,CAC7B,IAAI1B,EAAQhI,KAAK6+C,iBAAiB,MAAQn1C,GACjC,GAALA,IACF1B,EAAM+2C,YAAY,QAClB/2C,EAAM82C,SAAS,CAAC,qBAEpB,CAGF,KAAO9+C,KAAK4gD,SAAS,MAAQl3C,IAC3B1J,KAAK0hD,YAAY,MAAQh4C,GACzBA,GAEJ,GAGFiqB,UAA4C,4BAAI,CAK9CirB,KAAM,WACJ5+C,KAAKggD,SAAS,eACdhgD,KAAKo/C,mBAAmBL,YAAY,cACpC/+C,KAAK2hD,qBAAqB,SAC1B3hD,KAAKk/C,aACLl/C,KAAK4hD,aAAc,CACrB,GAGFjuB,UAAuC,uBAAI,CAKzCirB,KAAM,WACJ5+C,KAAKggD,SAAS,eACdhgD,KAAKo/C,mBAAmBL,YAAY,aACpC/+C,KAAKs/C,sBAAqB,GAC1Bt/C,KAAKu/C,kBAAiB,GACtBv/C,KAAKk/C,WAAW,IAChBl/C,KAAK4hD,aAAc,CACrB,GAGFjuB,cAA8B,UAAI,SAAUzsB,GAE1C,IADA,IAAI0jD,EAAS,GACJlhD,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACxC,IAAIivB,EAAU,MAAQjvB,EACtBkhD,GAAUj3B,cAAmBg1B,gBAAgBzhD,EAAOyxB,GAEhDjvB,GAAK1J,KAAKigD,WAAa,EACzB2K,GAAU,KAEVA,GAAU,GAEd,CAEKA,EAAOptD,SAAS,MAEVotD,EAAOptD,SAAS,SACzBotD,EAASA,EAAOx6C,UAAU,EAAGw6C,EAAO9oD,OAAS,IAF7C8oD,EAASA,EAAOx6C,UAAU,EAAGw6C,EAAO9oD,OAAS,GAK/C,IAAIkvC,EAASrd,cAAmBk1B,YAAYC,QAC1C5hD,EAAMq7C,cAAc,WAUtB,OAPEvR,EADY,SAAVA,GAA+B,OAAVA,EACd,WAEA,oBAGS4Z,CAGtB,EChPAj3B,aAAkB+2B,MAAMC,IAAM,IAE9Bh3B,6BAAkC,CAOhC,CACEr4B,KAAM,qBACNokD,SAAU,kCACV98C,OAAQ,QACRsD,MAAO,cACP45C,QAAS,oCACTC,QAAS,qCAGX,CACEzkD,KAAM,eACNokD,SAAU,4BACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,QAER,CACEjD,KAAM,cACNiD,KAAM,MACN2pD,MAAO,WAGXtlD,OAAQ,QACRsD,MAAO,cACP45C,QAAS,8BACTC,QAAS,+BAGX,CACEzkD,KAAM,gBACNokD,SAAU,gCACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,OACN2pD,MAAO,UAGXtlD,OAAQ,QACRulD,cAAc,EACdjiD,MAAO,cACP45C,QAAS,+BACTC,QAAS,gCAGX,CACEzkD,KAAM,gBACNokD,SAAU,6BACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,QACN2pD,MAAO,CAAC,SAAU,WAGtBtlD,OAAQ,UACRsD,MAAO,cACP45C,QAAS,+BACTC,QAAS,gCAGX,CACEzkD,KAAM,eACNokD,SAAU,4BACVC,MAAO,CACL,CACErkD,KAAM,cACNiD,KAAM,QACN2pD,MAAO,CAAC,SAAU,WAGtBtlD,OAAQ,SACRsD,MAAO,cACP45C,QAAS,8BACTC,QAAS,iCAIbpsB,UAA6B,aAAI,CAK/BirB,KAAM,WACJ5+C,KAAKm/C,WAAWxrB,OAAuC,2BACvD3zB,KAAKggD,SAAS,eACdhgD,KAAKigD,WAAa,EAClBjgD,KAAKkgD,eACLlgD,KAAKs/C,sBAAqB,EAAM,MAChCt/C,KAAKu/C,kBAAiB,EAAM,MAC5Bv/C,KAAKi/C,UAAU,WACfj/C,KAAKmgD,WAAW,IAAIxsB,WAAgB,CAAC,4BACrC3zB,KAAKk/C,WAAWvrB,OAAuC,0BACzD,EAMAysB,cAAe,WACb,IAAI7kB,EAAY5H,SAAc3lB,IAAI0Z,cAAc,YAEhD,OADA6T,EAAUC,aAAa,QAASx7B,KAAKigD,YAC9B1kB,CACT,EAMA8kB,cAAe,SAAUC,GACvBtgD,KAAKigD,WAAalK,SAASuK,EAAWC,aAAa,SAAU,IAC7DvgD,KAAKkgD,cACP,EAOAM,UAAW,SAAUC,GACnB,IAAIC,EAAiBD,EAAU9wB,SAAS,+BACxC+wB,EAAeC,UAEf,IADA,IAAIn5C,EAAak5C,EAAeE,SAAS,SAASp5C,WACzCkC,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACxC,IAAIm3C,EAAYJ,EAAU9wB,SAAS,0BACnCkxB,EAAUF,UACVn5C,EAAWs5C,QAAQD,EAAUE,oBAC7Bv5C,EAAaq5C,EAAUG,cACzB,CACA,OAAON,CACT,EAMAO,QAAS,SAAUP,GAIjB,IAHA,IAAIG,EAAYH,EAAeQ,oBAAoB,SAE/C55C,EAAc,GACXu5C,GACLv5C,EAAYjC,KAAKw7C,EAAUO,kBAC3BP,EACEA,EAAUG,gBAAkBH,EAAUG,eAAeK,cAGzD,IAAK,IAAI33C,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACxC,IAAIlC,EAAaxH,KAAK4gD,SAAS,MAAQl3C,GAAGlC,WAAW85C,iBACjD95C,IAAkD,GAApCF,EAAY2B,QAAQzB,IACpCA,EAAW+5C,YAEf,CACAvhD,KAAKigD,WAAa34C,EAAYxF,OAC9B9B,KAAKkgD,eAEL,IAASx2C,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IACnCiqB,WAAgB6tB,UAAUl6C,EAAYoC,GAAI1J,KAAM,MAAQ0J,EAE5D,EAMA+3C,gBAAiB,SAAUf,GAGzB,IAFA,IAAIG,EAAYH,EAAeQ,oBAAoB,SAC/Cx3C,EAAI,EACDm3C,GAAW,CAChB,IAAI74C,EAAQhI,KAAK4gD,SAAS,MAAQl3C,GAClCm3C,EAAUO,iBAAmBp5C,GAASA,EAAMR,WAAW85C,iBACvD53C,IACAm3C,EACEA,EAAUG,gBAAkBH,EAAUG,eAAeK,aACzD,CACF,EAMAnB,aAAc,WACRlgD,KAAKigD,YAAcjgD,KAAK4gD,SAAS,SACnC5gD,KAAK0hD,YAAY,SACP1hD,KAAKigD,YAAejgD,KAAK4gD,SAAS,UAC5C5gD,KAAKo/C,iBAAiB,SAASL,YAC7BprB,OAAsC,0BAI1C,IAAK,IAAIjqB,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IACnC,IAAK1J,KAAK4gD,SAAS,MAAQl3C,GAAI,CAC7B,IAAI1B,EAAQhI,KAAK6+C,iBAAiB,MAAQn1C,GACjC,GAALA,IACF1B,EAAM+2C,YAAY,UAClB/2C,EAAM82C,SAAS,CACb,YACA,eACA,MACA,mBACA,gBACA,gBACA,gBACA,gBACA,oBAEF92C,EAAM+2C,YACJ,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,SACX,CAAC,WAAY,cAEf,UAGN,CAGF,KAAO3zB,KAAK4gD,SAAS,MAAQl3C,IAC3B1J,KAAK0hD,YAAY,MAAQh4C,GACzBA,GAEJ,GAGFiqB,UAA4C,4BAAI,CAK9CirB,KAAM,WACJ5+C,KAAKggD,SAAS,eACdhgD,KAAKo/C,mBAAmBL,YAAY,cACpC/+C,KAAK2hD,qBAAqB,SAC1B3hD,KAAKk/C,aACLl/C,KAAK4hD,aAAc,CACrB,GAGFjuB,UAAuC,uBAAI,CAKzCirB,KAAM,WACJ5+C,KAAKggD,SAAS,eACdhgD,KAAKo/C,mBAAmBL,YAAY,aACpC/+C,KAAKs/C,sBAAqB,GAC1Bt/C,KAAKu/C,kBAAiB,GACtBv/C,KAAKk/C,WAAW,IAChBl/C,KAAK4hD,aAAc,CACrB,GAGFjuB,cAAiC,aAAI,SAAUzsB,GAE7C,IADA,IAAI0jD,EAAS,GACJlhD,EAAI,EAAGA,EAAI1J,KAAKigD,WAAYv2C,IAAK,CACxC,IAAIivB,EAAU,MAAQjvB,EACtBkhD,GAAUj3B,cAAmBg1B,gBAAgBzhD,EAAOyxB,GAEhDjvB,GAAK1J,KAAKigD,WAAa,EACzB2K,GAAU,KAEVA,GAAU,GAEd,CAEKA,EAAOptD,SAAS,MAEVotD,EAAOptD,SAAS,SACzBotD,EAASA,EAAOx6C,UAAU,EAAGw6C,EAAO9oD,OAAS,IAF7C8oD,EAASA,EAAOx6C,UAAU,EAAGw6C,EAAO9oD,OAAS,GAK/C,IAAIkvC,EAASrd,cAAmBk1B,YAAYC,QAC1C5hD,EAAMq7C,cAAc,WAUtB,OAPEvR,EADY,SAAVA,GAA+B,OAAVA,EACd,WAEA,oBAGS4Z,CAGtB,EC7UAj3B,UAAyB,SAAI,CAC3BirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,aACnBE,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,UACX,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,QAAS,WAEZ,mBAEDorB,YAAY,QAOZD,SAAS,WACTC,YACC,IAAIprB,iBAAsB,CACxB,CAAC,KAAM,cACP,CAAC,SAAU,WAEb,kBAEJ3zB,KAAKg/C,WAAU,EAAM,CAAC,eACtBh/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,IAChBn/C,KAAKsoD,aAAY,SAAUC,GACS,MAA9BvoD,KAAK4gD,SAAS,aAC4B,SAAxC5gD,KAAKuiD,cAAc,oBACrBviD,KAAK0hD,YAAY,eACjB1hD,KAAK6+C,iBAAiB,aAEnBE,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,UACX,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,QAAS,WAEZ,mBAEDorB,YAAY,QACZA,YACC,IAAIprB,iBAGJ,oBAEDmrB,SAAS,WACTC,YACC,IAAIprB,iBAAsB,CACxB,CAAC,KAAM,cACP,CAAC,SAAU,WAEb,mBAIsC,SAAxC3zB,KAAKuiD,cAAc,oBACrBviD,KAAK0hD,YAAY,aACjB1hD,KAAK6+C,iBAAiB,eACnBE,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,UACX,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,QAAS,WAEZ,mBAEDorB,YAAY,QACZD,SAAS,gBACTC,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,SACX,CAAC,KAAM,gBAET,kBAIV,GACF,GAGFA,cAA6B,SAAI,SAAUzsB,GACzC,IAAI5L,EAAOq4B,cAAmBk1B,YAAYC,QACxC5hD,EAAMq7C,cAAc,oBAEV,UAARjnD,IACFA,EAAO,IAET,IAAI0oD,EAAO,GACP6G,EAAY,GACZC,EAAc,GACgB,MAA9B9qD,KAAK4gD,SAAS,cAChBoD,EAAOrwB,cAAmBk1B,YAAYC,QACpC5hD,EAAMq7C,cAAc,qBAEtBsI,EAAYl3B,cAAmBg1B,gBAAgBzhD,EAAO,cAEtD4jD,EAAcn3B,cAAmBg1B,gBAAgBzhD,EAAO,eAE1D,IAAIm7C,EAA0B/mD,WAc9B,OAXI+mD,EAFwC,cAAxCriD,KAAKuiD,cAAc,kBACJ,IAAbsI,EACKxI,EAAKp+C,OAAY+/C,EAAL,QAEZ3B,EAAKp+C,OAAY+/C,EAAL,MAAyB6G,EAAY,KAGvC,IAAfC,EACKzI,EAAKp+C,OAAY+/C,EAAO,KAExB3B,EAAKp+C,OAAY+/C,EAAO,IAAM8G,EAAc,IAIzD,EC7HAn3B,UAA+B,eAAI,CACjCirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,cACnBC,SAAS,CACR,mBACA,gBACA,gBACA,gBACA,gBACA,kBACA,cAEDU,SAAS7rB,eACTorB,YAAY,oBACf/+C,KAAKs/C,sBAAqB,EAAM,CAAC,WAAY,SAC7Ct/C,KAAKu/C,kBAAiB,EAAM,CAAC,aAC7Bv/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GAClB,GAEFxrB,cAAmC,eAAI,SAAUzsB,GAI/C,IAHA,IAAIm7C,EAAO1uB,cAAmBg1B,gBAAgBzhD,EAAO,cACjDwC,EAAI,EACJqhD,EAAqB,EAClB/qD,KAAK4gD,SAAS,KAAOmK,IAC1BA,IAEF,KAAOrhD,GAAKqhD,GACV1I,EAAOA,EAAKp+C,OAAO0vB,cAAmBg1B,gBAAgBzhD,EAAO,KAAOwC,IACpEA,IAMF,OADA24C,GADAA,EAAO,aADPA,GADAA,EAAOA,EAAKj9C,QAAQ,SAAU,MAClBA,QAAQ,MAAO,QACC,KAChBA,QAAQ,KAAM,IAE5B,ECrCAuuB,UAAuB,OAAI,CACzBirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,UACnBE,YAAY,aACZD,SAAS,CACR,YACA,eACA,MACA,mBACA,gBACA,gBACA,gBACA,gBACA,oBAEDC,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,SACX,CAAC,MAAO,OACR,CAAC,WAAY,cAEf,UAEJ3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,CAC9B,SACA,QACA,WACA,SACA,WACA,SAEFt/C,KAAKu/C,kBAAiB,EAAM,CAAC,WAC7Bv/C,KAAKi/C,UAAU,UACjB,GAGFtrB,cAA2B,OAAI,SAAUzsB,GACvC,IAAI0jD,EAASj3B,cAAmBg1B,gBAAgBzhD,EAAO,UAElD0jD,EAAOptD,SAAS,MAEVotD,EAAOptD,SAAS,SACzBotD,EAASA,EAAOx6C,UAAU,EAAGw6C,EAAO9oD,OAAS,IAF7C8oD,EAASA,EAAOx6C,UAAU,EAAGw6C,EAAO9oD,OAAS,IAI3C8oD,EAAOptD,SAAS,OAGTotD,EAAOptD,SAAS,MAAeotD,EAAOptD,SAAS,SADxDotD,GADAA,GAAkB,KACFxlD,QAAQ,KAAM,MAMhC,IAAI4rC,EAASrd,cAAmBk1B,YAAYC,QAC1C5hD,EAAMq7C,cAAc,WAQlBF,GALFrR,EADa,UAAXA,GAAiC,QAAXA,EACf,WAEA,oBAGS4Z,EAGpB,OADAvI,EAAOA,EAAKp+C,OAAO,IAErB,EClEA0vB,UAA4B,YAAI,CAC9BirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,QACnBE,YAAY,wBACZD,SAAS,CAAC,QAAS,iBACtB9+C,KAAKq/C,iBAAgB,GACrBr/C,KAAKs/C,sBAAqB,EAAM,CAAC,WACjCt/C,KAAKu/C,kBAAiB,EAAM,CAAC,QAAS,WAAY,SAClDv/C,KAAKi/C,UAAU,UACjB,GAGFtrB,cAAgC,YAAI,SAAUzsB,GAC5C,IAAI8jD,EAASr3B,cAAmBg1B,gBAAgBzhD,EAAO,QAEvD,MAAO,SADP8jD,EAASA,EAAO56C,UAAU,EAAG46C,EAAOlpD,SACV,GAC5B,EChBA6xB,UAA+B,eAAI,CACjCirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,cACnBC,SAAS,CAAC,YAAa,qBACvBU,SAAS7rB,eACTorB,YAAY,aACf/+C,KAAKs/C,sBAAqB,EAAM,CAAC,QAAS,SAC1Ct/C,KAAKu/C,kBAAiB,EAAM,CAAC,WAAY,WACzCv/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GAClB,GAEFxrB,cAAmC,eAAI,SAAUzsB,GAE/C,MAAO,YADIysB,cAAmBg1B,gBAAgBzhD,EAAO,cACzB,GAC9B,EChBAysB,UAA8B,cAAI,CAChCirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,aACnBC,SAAS,CAAC,YACVU,SAAS7rB,eACTorB,YAAY,qBACf/+C,KAAKs/C,sBAAqB,EAAM,CAAC,WACjCt/C,KAAKu/C,kBAAiB,EAAM,CAAC,SAAU,aACvCv/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,IAChBn/C,KAAKq/C,iBAAgB,EACvB,GAEF1rB,cAAkC,cAAI,SAAUzsB,GAE9C,MAAO,UADIysB,cAAmBg1B,gBAAgBzhD,EAAO,aAC3B,GAC5B,ECjBAysB,UAA6B,aAAI,CAC/BirB,KAAM,WACJ5+C,KAAK6+C,iBAAiB,cACnBC,SAAS,CACR,UACA,MACA,KACA,UACA,YACA,WACA,MACA,cAEDU,SAAS7rB,eACTorB,YAAY,0BACf/+C,KAAKs/C,sBAAqB,EAAM,CAAC,SACjCt/C,KAAKu/C,kBAAiB,EAAM,CAAC,QAAS,aACtCv/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GAClB,GAEFxrB,cAAiC,aAAI,SAAUzsB,GAE7C,MAAO,SADIysB,cAAmBg1B,gBAAgBzhD,EAAO,cAC5B,GAC3B,ECzBAysB,UAAsB,MAAI,CACxBirB,KAAM,WACJ5+C,KAAKo/C,iBAAiB,kBACnBL,YAAY,SACZA,YACC,IAAIprB,iBAAsB,CAAC,CAAC,QAAS,WACrC,gBAEJ3zB,KAAKg/C,WAAU,EAAM,SACrBh/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,gDAChBl/C,KAAKm/C,WAAW,GAClB,GAEFxrB,cAA0B,MAAI,SAAUzsB,GAKtC,OAJmBysB,cAAmBk1B,YAAYC,QAChD5hD,EAAMq7C,cAAc,gBAIxB,ECpBA5uB,UAA2B,WAAI,CAC7BirB,KAAM,WACJ5+C,KAAKo/C,iBAAiB,YACnBI,SAAS7rB,iBACTorB,YAAY,KACf/+C,KAAKg/C,WAAU,EAAM,OACrBh/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GAClB,GAGFxrB,cAA+B,WAAI,SAAUzsB,GAC3C,MAAO,GACT,ECdA,MAAM+jD,GAAU,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGFt3B,UAAiC,iBAAI,CACnCirB,KAAM,WAAa,IAADsM,EAChB,IAAIr7B,EAAS,GACb,MAAMuvB,EAAmBp/C,KAAKo/C,iBAAiB,aAE/C6L,GAAQ1jD,SAAS4jD,IACft7B,EAAOxqB,KAAK,CAAC8lD,EAAQ,QAAUA,GAAQ,IAGzC/L,EAAiBL,YACf,IAAIprB,iBAAsB9D,GAC1B,iBAGF7vB,KAAKo/C,iBAAiB,aACnBL,YAAY,KACZA,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,SACX,CAAC,MAAO,OACR,CAAC,OAAQ,UAEX,UAGJ3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,oBACrBh/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,uCAChBl/C,KAAKm/C,WAAW,IAEhBn/C,KAAKsoD,aAAY,SAAUC,GACzB,IAAIt6B,EAASjuB,KAAKwoD,oBAGN,MAAVv6B,GACAA,EAAO9f,WAAW3Q,SAAS,aACA,MAA3BwC,KAAKyoD,SAAS,UAEdzoD,KAAKo/C,iBAAiB,aACnBL,YAAY,KACZA,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,SACX,CAAC,MAAO,OACR,CAAC,OAAQ,UAEX,UAGO,MAAV1F,GAAmBA,EAAO9f,WAAW3Q,SAAS,aACpB,MAA3BwC,KAAKyoD,SAAS,WAEdzoD,KAAK0hD,YAAY,YAErB,IAEA,MAAM0J,EAAqD,QAAxCF,EAAG1uD,aAAaC,QAAQ,wBAAgB,IAAAyuD,IAAI,GAE9Ct1C,MAAM,GAAD3R,OACjBuR,+BAAyB,4BAAAvR,OAA2BmnD,GACvD,CACEv1C,OAAQ,MACRC,QAAS,CAAE,eAAgB,sBAK5Bu1C,MAAM7vD,GAASA,EAAKya,SACpBo1C,MAAMp1C,IACL,MAAMq1C,EAAgBtrD,KAAKuiD,cAAc,iBACnC1yB,EAAS,GAET5Z,EAAK7R,QAAUuL,MAAM47C,QAAQt1C,EAAK7R,SACtC6R,EAAK7R,OAAOmD,SAASsJ,IACnBgf,EAAOxqB,KAAK,CAACwL,EAAK1T,MAAO,QAAU0T,EAAKs6C,QAAQ,IAI9CG,IACJlM,EAAiBoM,YAAY,iBAC7BpM,EAAiBL,YACf,IAAIprB,iBAAsB9D,GAC1B,iBAGF7vB,KAAKyrD,cAAcH,EAAe,iBACpC,IAEDI,OAAOnpB,IACNt6B,QAAQC,IAAI,MAAOq6B,EAAIr+B,QAAQ,GAErC,GAGFyvB,cAAqC,iBAAI,SAAUzsB,GACjD,IAAIykD,EAAgBh4B,cAAmBk1B,YAAYC,QACjD5hD,EAAMq7C,cAAc,kBAGlBqJ,EAAe,GAcnB,OAZI5rD,KAAK4gD,SAAS,eAChBgL,EAAej4B,cAAmBk1B,YAAYC,QAC5C5hD,EAAMq7C,cAAc,WAED,UAAjBqJ,IACFA,EAAe,KAIG,QAAlBD,IACFA,EAAgB,KAEXA,EAAgB,IAAMC,CAC/B,EC9IAj4B,6BAAkC,CAChC,CACEr4B,KAAM,UACNokD,SAAU,KACVC,MAAO,CACL,CACErkD,KAAM,iBACNiD,KAAM,OACN4mB,QAAS,CACP,CAAC,OAAQ,QACT,CAAC,QAAS,YAIhBviB,OAAQ,UACRwlD,OAAQ,UACRtI,QAAS,GACTC,QAAS,MAIbpsB,cAA4B,QAAI,SAAUzsB,GACxC,IAAIm7C,EAAsC,QAA/Bn7C,EAAMq7C,cAAc,QAAoB,OAAS,QAE5D,OADAF,EAAO,GAAKA,CAEd,EC1BA1uB,UAA2B,WAAI,CAC7BirB,KAAM,WACJ5+C,KAAKo/C,mBACFL,YAAY,SACZA,YAAY,IAAIprB,eAAoB,MAAO,aAC9C3zB,KAAKo/C,mBACFL,YAAY,UACZA,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,cAClD3zB,KAAKo/C,mBACFL,YAAY,QACZA,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,YAClD3zB,KAAKo/C,mBACFL,YAAY,SACZA,YAAY,IAAIprB,eAAoB,EAAG,EAAG,IAAK,aAClD3zB,KAAKq/C,iBAAgB,GACrBr/C,KAAKg/C,WAAU,EAAM,cACrBh/C,KAAKi/C,UAAU,WACfj/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,GAClB,GAEFxrB,cAA+B,WAAI,SAAUzsB,GAG3Ce,QAAQC,IAAIhB,EAAMq7C,cAAc,eAChC,IAAIsJ,EAAOC,WAAW5kD,EAAMq7C,cAAc,cACtCwJ,EAAQD,WAAW5kD,EAAMq7C,cAAc,eACvCyJ,EAAMF,WAAW5kD,EAAMq7C,cAAc,aACrC0J,EAAOH,WAAW5kD,EAAMq7C,cAAc,cAY1C,OAXIwJ,EAAQ,KACVA,EAAQ,IAAMA,GAEZC,EAAM,KACRA,EAAM,IAAMA,GAEVC,EAAO,KACTA,EAAO,IAAMA,GAGJ,IAAWJ,EAAOE,EAAQC,GADrCC,GAAc,MACoC,GAEpD,ECxCAt4B,UAA0B,UAAI,CAC5BirB,KAAM,WACJ5+C,KAAKo/C,mBACFL,YAAY,UACZA,YAAY,IAAIprB,kBAAuB,UAAW,aAClDorB,YAAY,UACf/+C,KAAKg/C,WAAU,EAAM,aACrBh/C,KAAKi/C,UAAU,WACfj/C,KAAKq/C,iBAAgB,GACrBr/C,KAAKk/C,WAAW,IAChBl/C,KAAKm/C,WAAW,IAChBn/C,KAAKsoD,aAAY,SAAUC,GACzB,IAAIt6B,EAASjuB,KAAKwoD,oBAGN,MAAVv6B,GACAA,EAAO9f,WAAW3Q,SAAS,aACC,MAA5BwC,KAAKyoD,SAAS,WAEdzoD,KAAKo/C,iBAAiB,aACnBL,YAAY,KACZA,YACC,IAAIprB,iBAAsB,CACxB,CAAC,SAAU,SACX,CAAC,MAAO,OACR,CAAC,OAAQ,UAEX,WAGO,MAAV1F,GAAmBA,EAAO9f,WAAW3Q,SAAS,aACnB,MAA5BwC,KAAKyoD,SAAS,YAEdzoD,KAAK0hD,YAAY,YAErB,GACF,GAEF/tB,cAA8B,UAAI,SAAUzsB,GAE1C,IAAIm7C,EAAO,IAAMn7C,EAAMq7C,cAAc,aAAe,KAElDF,EAAKnxB,MAAM,YACXmxB,EAAKnxB,MAAM,WACXmxB,EAAKnxB,MAAM,WACXmxB,EAAKnxB,MAAM,UACXmxB,EAAKnxB,MAAM,UACXmxB,EAAKnxB,MAAM,aACXmxB,EAAKnxB,MAAM,YACXmxB,EAAKnxB,MAAM,YACXmxB,EAAKnxB,MAAM,YACXmxB,EAAKnxB,MAAM,UACXmxB,EAAKnxB,MAAM,WACXmxB,EAAKnxB,MAAM,aACXmxB,EAAKnxB,MAAM,cACXmxB,EAAKnxB,MAAM,YACXmxB,EAAKnxB,MAAM,UACXmxB,EAAKnxB,MAAM,mBAEXmxB,EAAO,IAELA,EAAKnxB,MAAM,iBACbmxB,EAAOA,EAAKj9C,QAAQ,cAAO,OAEzBi9C,EAAKnxB,MAAM,eACbmxB,EAAOA,EAAKj9C,QAAQ,YAAO,OAEzBi9C,EAAKnxB,MAAM,iBACbmxB,EAAOA,EAAKj9C,QAAQ,cAAO,OAEzBi9C,EAAKnxB,MAAM,eACbmxB,EAAOA,EAAKj9C,QAAQ,YAAO,OAEzBi9C,EAAKnxB,MAAM,iBACbmxB,EAAOA,EAAKj9C,QAAQ,cAAO,OAEzBi9C,EAAKnxB,MAAM,eACbmxB,EAAOA,EAAKj9C,QAAQ,YAAO,OAE7B,IAAI8mD,GAAgB7J,EAAKnxB,MAAM,OAAS,IAAIpvB,OACxCqqD,GAAgB9J,EAAKnxB,MAAM,OAAS,IAAIpvB,QAE1CoqD,EAAe,GAAK,GACpBC,EAAe,GAAK,GACpB9J,EAAK7kD,SAAS,OACd6kD,EAAK7kD,SAAS,QAEd6kD,EAAO,IAGT,IAAI+J,EAAgB,GAYpB,OAXIpsD,KAAK4gD,SAAS,eAIK,UAHrBwL,EAAgBz4B,cAAmBk1B,YAAYC,QAC7C5hD,EAAMq7C,cAAc,aAGpB6J,EAAgB,GAEhB/J,EAAOA,EAAO,IAAM+J,GAIjB/J,CACT,ECxGA1uB,6BAAkC,CAChC,CACEr4B,KAAM,SACNokD,SAAU,KACVC,MAAO,CACL,CACErkD,KAAM,eACNiD,KAAM,MACNpB,MAAO,IAGXyF,OAAQ,SACRwlD,OAAQ,UACRrI,QAAS,6BACTD,QAAS,6BACTuI,WAAY,CAAC,iCAGjB10B,cAA2B,OAAI,SAAUzsB,GAEvC,IAAIm7C,EAAOyJ,WAAW5kD,EAAMq7C,cAAc,QAE1C,OADAF,EAAO,GAAKA,CAEd,E,2ECXA,MAAMx/B,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAsBMowD,GAAcC,cApBJ7nB,GACdwN,aAAa,CACXC,KAAM,CACJK,OAAQ,EACRpmB,QAASsY,EAAM2N,QAAQ,IAEzBma,YAAa,CACXzgD,SAAU,WACV0gD,MAAO/nB,EAAM2N,QAAQ,GACrBjsC,IAAKs+B,EAAM2N,QAAQ,GACnB/xB,MAAOokB,EAAMN,QAAQsoB,KAAK,SAUZH,EAAoBrwD,IACtC,MAAM,SAAEC,EAAQ,QAAE62C,EAAO,QAAElsB,KAAY6lC,GAAUzwD,EACjD,OACEolB,eAACsrC,KAAc,CAACC,mBAAiB,EAAC5nC,UAAW+tB,EAAQb,QAAUwa,EAAKxwD,SAAA,CAClEe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SAAEA,IACzB2qB,EACC5pB,cAAC+pB,KAAU,CAAC,aAAW,QAAQhC,UAAW+tB,EAAQwZ,YAAarlC,QAASL,EAAQ3qB,SAC9Ee,cAACkqB,KAAS,MAEV,OACW,IAkCN0lC,OA9BK5wD,IAClB,MAAM,WAAC6wD,EAAU,KAAEzK,EAAI,YAAE39B,GAAezoB,EACxC,OACEolB,eAACoF,KAAM,CACLhC,KAAMqoC,EACNpmC,oBAAqB7D,GACrB8D,WAAS,EACTC,SAAS,KACT,mBAAiB,iCACjB,kBAAgB,0BAChB1gB,MAAO,CAACq3B,OAAO,OAAOrhC,SAAA,CAEtBe,cAACovD,GAAW,CAACppD,GAAG,0BACf4jB,QAASnC,EAAYxoB,SACrB,yBAGDe,cAAC8vD,KAAS,CACRC,KAAK,aACLvoB,MAAM,UACNlmC,KAAK,SACLkjB,OAAQ,OACRD,MAAO,OACPrkB,MAAOklD,EACP4K,UAAU,MAEL,EC/EN,MAAMlb,GAAYC,cAAYvN,GACnCwN,aAAa,CACXC,KAAM,CACJK,OAAQ,EACRpmB,QAASsY,EAAM2N,QAAQ,IAEzBma,YAAa,CACXzgD,SAAU,WACV0gD,MAAO/nB,EAAM2N,QAAQ,GACrBjsC,IAAKs+B,EAAM2N,QAAQ,GACnB/xB,MAAOokB,EAAMN,QAAQsoB,KAAK,MAE5BS,kBAAmB,CACjBnsC,WAAY,UACZkJ,SAAU,SACV5J,MAAO,OACPmB,MAAO,QACP2rC,aAAc,MACd,UAAW,CACTpsC,WAAY,YACZV,MAAO,SAGX+sC,iBAAkB,CAChBrsC,WAAY,UACZkJ,SAAU,SACV5J,MAAO,OACPmB,MAAO,QACP2rC,aAAc,MACd,UAAW,CACTpsC,WAAY,YACZV,MAAO,QAET0zB,YAAa,QAEfsZ,uBAAwB,CACtBtsC,WAAY,UACZkJ,SAAU,SACV5J,MAAO,OACP8sC,aAAc,MACd,UAAW,CACTpsC,WAAY,YACZV,MAAO,QAET0zB,YAAa,Y,cCpBnB,MAAMlxB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAQMqxD,GAAU7oB,GACdwN,aAAa,CACXC,KAAM,CACJK,OAAQ,EACRpmB,QAASsY,EAAM2N,QAAQ,IAEzBma,YAAa,CACXzgD,SAAU,WACV0gD,MAAO/nB,EAAM2N,QAAQ,GACrBjsC,IAAKs+B,EAAM2N,QAAQ,GACnB/xB,MAAOokB,EAAMN,QAAQsoB,KAAK,MAE5Bc,OAAQ,CACNhb,OAAQ,EACRpmB,QAASsY,EAAM2N,QAAQ,GACvBhmB,QAAS,OACTC,WAAY,SACZmhC,eAAgB,WAChBzsC,WAAY,UACZ0sC,UAAW,uBAIXpB,GAAcC,aAAWgB,GAAXhB,EAAoBrwD,IACtC,MAAM,SAAEC,EAAQ,QAAE62C,EAAO,QAAElsB,KAAY6lC,GAAUzwD,EACjD,OACEolB,eAACsrC,KAAc,CAACC,mBAAiB,EAAC5nC,UAAW+tB,EAAQb,QAAUwa,EAAKxwD,SAAA,CAClEe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SAAEA,IACzB2qB,EACC5pB,cAAC+pB,KAAU,CACT,aAAW,QACXhC,UAAW+tB,EAAQwZ,YACnBrlC,QAASL,EAAQ3qB,SAEjBe,cAACkqB,KAAS,MAEV,OACW,IAIfumC,GAAepB,aAAWgB,GAAXhB,EAAoBrwD,IACvC,MAAM,QAAE82C,KAAY2Z,GAAUzwD,EAC9B,OACEgB,cAAC0vD,KAAc,CACbC,mBAAiB,EACjB5nC,UAAW+tB,EAAQwa,UACfb,GACY,IAkEPiB,OA9DK1xD,IAClB,MAAM,WAAE6wD,EAAU,KAAEzK,EAAI,YAAE39B,GAAgBzoB,GACnC2xD,EAAUC,GAAetmC,mBAAS86B,GACnCtP,EAAUhB,KAOhB,OALA11C,qBAAU,KACRwxD,EAAYxL,EAAK,GAEhB,CAACyK,IAGFzrC,eAACoF,KAAM,CACLhC,KAAMqoC,EACNpmC,oBAAqB7D,GACrB8D,WAAS,EACTC,SAAS,KACT,mBAAiB,iCACjB,kBAAgB,0BAChB1gB,MAAO,CAAEq3B,OAAQ,OAAQrhC,SAAA,CAEzBe,cAACovD,GAAW,CACVppD,GAAG,0BACH4jB,QAASA,IAAMnC,EAAY29B,GAAMnmD,SAClC,oBAGDe,cAAC8vD,KAAS,CACRC,KAAK,aACLvoB,MAAM,UACNlmC,KAAK,SACLkjB,OAAQ,OACRD,MAAO,OACPrkB,MAAOywD,EACPX,UAAU,EACVxgC,SAAWtvB,GAAU0wD,EAAY1wD,KAEnCkkB,eAACqsC,GAAY,CAACzqD,GAAG,0BAAyB/G,SAAA,CACxCe,cAAC+pB,KAAU,CACTE,QAASA,KACP2mC,EAAYC,uBAAYF,EAAU,CAAEG,YAAa,IAAK,EAExD/oC,UAAW+tB,EAAQsa,uBAAuBnxD,SAC3C,uBAGDe,cAAC+pB,KAAU,CACTE,QAASA,IAAMxC,EAAYkpC,GAC3B5oC,UAAW+tB,EAAQqa,iBAAiBlxD,SACrC,WAGDe,cAAC+pB,KAAU,CACTE,QAASA,IAAMxC,EAAY29B,GAC3Br9B,UAAW+tB,EAAQma,kBAAkBhxD,SACtC,cAII,EC1Gb,IAAI8xD,GCjBWC,ODmBA,SAA4BhyD,GACzC,MAAM,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,QAAE9gC,EAAO,QAAE1B,GAAYkqB,KAAU5oC,OAChC8yD,EAAUC,GAAe5mC,oBAAS,IAClC6mC,EAAgBC,GAAqB9mC,oBAAS,IAC9C86B,EAAMiM,GAAW/mC,mBAAS,KAC1BgY,EAAcgvB,GAAmBhnC,sBACjCinC,EAAmBC,GAAuBlnC,mBAAS,KACnDs2B,EAAe6Q,GAAoBnnC,oBAAS,GAE7ConC,EAAaprC,IAAMyU,SACnBqmB,EAAUrmB,oBACV,eAAEzC,GAAmBH,KACrBw5B,EAAapyD,aAAaC,QAAQ,cAExCJ,qBAAU,KACW,UAAfuyD,EAAwBj7B,KAAQk7B,UAAUC,MACtB,OAAfF,EAAqBj7B,KAAQk7B,UAAUE,IAC3Cp7B,KAAQk7B,UAAUG,GAAS,GAC/B,CAACJ,IAEJvyD,qBAAU,KAAO,IAAD4yD,EAAAC,EACd,MAAM,WAAEC,EAAU,SAAEjzD,EAAQ,MAAEkzD,EAAK,SAAE1jD,KAAay6B,GAASlqC,GlFkVxD,SAAuB0U,GAC1BoiB,GAAa,GACbC,GAAqB,GACrB,IAAK,IAAI7tB,EAAQ,EAAGA,EAAQwL,EAAU7O,OAAQqD,IAE1C2vB,GAA2B,CAAElsB,SADZ+H,EAAUxL,KAKN,GAArB4tB,GAAWjxB,SACXixB,GAAa,CAAC,iBAERhuB,SAASa,eAAe,cACtBmtB,GAAWrC,MAAK,CAACjnB,EAAGuH,IAAMvH,EAAE0qB,cAAcnjB,KAEhDzJ,SAAShD,IAIXyuB,GAAmB3tB,KAAK,CAACd,EAASA,GACzB,GAEjB,CkFtWI8qD,CAAcD,GACdr6B,GAAiCrpB,GACjCsiD,GAAmBr6B,KAAQ27B,OAAOX,EAAWh2B,QAAS,CACpD0lB,QAASA,EAAQ1lB,QACjB42B,MAAO,eACPC,gBAAiB,QACjBC,QAAQ,EACR/iD,KAAM,CACJgjD,UAAU,EACVC,OAAO,EACPC,WAAY,EACZC,SAAU,EACVC,SAAU,GACVC,WAAY,IACZC,OAAO,GAETC,UAAWC,IACXC,KAAM,CACJ/d,QAAS,GACTtwC,OAAQ,EACRsmD,OAAQ,OACRgI,MAAM,MAELjqB,IAGLxS,KAAQ08B,cAAcC,kBAAkBC,GAEpCpB,GACFx7B,KAAQ68B,IAAIC,eACV98B,KAAQ68B,IAAIE,UAAUvB,GACtBnB,IAIJ,MAAM1pB,EAAQv/B,SAASa,eAAe,cAChC+qD,EACuC,QADvB1B,EAAGlqD,SACtBC,uBAAuB,2BAAmB,IAAAiqD,OAAA,EADpBA,EAErBp+C,KAAK,GAEH+/C,EACwC,QADvB1B,EAAGnqD,SACvBC,uBAAuB,4BAAoB,IAAAkqD,OAAA,EADpBA,EAEtBr+C,KAAK,GAELyzB,IACEqsB,GAAkBrsB,EAAM1tB,OAAO+5C,GAC/BC,GAAmBtsB,EAAM1tB,OAAOg6C,GACtC,GACC,CAACjC,EAAY1yD,EAAOoiD,IAEvBhiD,qBAAU,KACJmf,IlFpGJ/L,GkFqGkB+L,ExHzGf,SAAyBq1C,GAC9BphD,GAAiBohD,CACnB,CwHwGMC,CAAmBt1C,GACrB,GACC,CAACA,IAEJnf,qBAAU,KACJyd,IlFtGPpK,GkFuGqBoK,ExH3Gf,SAAyB+c,GAC9BnnB,GAAemnB,CACjB,CwH0GMk6B,CAAmBj3C,GACrB,GACC,CAACA,IAEJ,MA8CMk3C,EAAgBA,KACpB,GACEphD,KACC,CACCnS,EAAYgD,eACZhD,EAAY+C,qBACZ/C,EAAY6C,cACZ9C,SAASpC,EAAMsQ,SAASnO,YAC1B,CACA,IAAI4V,EAAW,GACV,CAAC1V,EAAYuD,UAAUxD,SAASpC,EAAMsQ,SAASnO,cAClD4V,EAAavD,GAAiB9N,OAAS8N,GAAmB,IAG5D,MAAM9Q,EAAU,GAChB,IAAK,IAAIqG,EAAQ,EAAGA,EAAQgO,EAASrR,OAAQqD,IAC3CrG,EAAQuG,KAAK,CACXmG,MAAO2H,EAAShO,KAGpB/J,EAAMsQ,SAAS5M,QAAUA,EAEzB3C,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLtQ,EAAMsQ,YAIjB,GAGIulD,EAAuBA,KAAO,IAADC,EAAAC,EACjC,MAAMh7C,EAAOpR,SAASoR,KAChBw6C,EACuC,QADvBO,EAAGnsD,SACtBC,uBAAuB,2BAAmB,IAAAksD,OAAA,EADpBA,EAErBrgD,KAAK,GACH+/C,EACwC,QADvBO,EAAGpsD,SACvBC,uBAAuB,4BAAoB,IAAAmsD,OAAA,EADpBA,EAEtBtgD,KAAK,GACLsF,IACEw6C,IACFA,EAAiBzqD,MAAMkmB,QAAU,OACjCjW,EAAKS,OAAO+5C,IAEVC,GAAmBz6C,EAAKS,OAAOg6C,GACrC,EAWF,SAASL,EAAgB9mC,GACvB,GAAIA,EAAMnuB,OAASq4B,KAAQy9B,OAAOC,OAIlC,GAAI5nC,EAAMnuB,OAASq4B,KAAQy9B,OAAOE,OAOlC,GAAI7nC,EAAMnuB,OAASq4B,KAAQy9B,OAAOG,SAAU,CAC1C,MAAMrqD,EAAQysB,KAAQ08B,cAAcmB,aAAa/nC,EAAMgoC,cACvDlD,EAAgBrnD,GAEZA,IAEe,oBAAfA,EAAM5L,MACS,kBAAf4L,EAAM5L,MAENmzD,EAAoBvnD,EAAMq7C,cAAc,SACxCmM,GAAiB,IAEjBA,GAAiB,GAGvB,OArBwB,OAAlBjlC,EAAMioC,SACRhD,GAAiB,EAqBvB,CAyBA,OACErtC,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAAA,OAAKnb,MAAO,CAAEub,OAAQ,SAAUvlB,SAAA,CAC9Be,cAACmgD,GAAa,CACZQ,SAAUroB,EAAe,iBACzB8nB,MAlKYsU,KAClBj+B,IAAgB,EAkKVgqB,OA/JekU,KACrB,MAAMC,GlFsBNh/B,GAAkBc,cAAmBI,gBAAgBjB,IACrDD,GAAkB3hB,GAAsB2hB,IAKjCA,IkF3BPy7B,EAAQuD,GACR1D,GAAY,EAAK,EA6JX5Q,aA1JkBuU,KACxBb,IACA,MAAMjyD,EAAc60B,KACpBhkB,GAAwB7Q,EAAY+O,SACpCijD,IAEA51D,EAAMsQ,SAAS1M,YAAc,CAC3B8O,YAAa1S,EAAMsQ,SAAS1M,YAAY8O,YAAc,GAAK,KACxD9O,GAGL7C,EAAS,CACPb,KAAM,aACNE,KAAM,IACDJ,EACH2gD,sBAAsB,IAExB,EA0IIyB,KAvIWuU,KACjB,MAAM/yD,EAAc60B,KACpBr3B,aAAa6a,QAAQ,gBAAiBrY,EAAYgP,IAAI,EAsIhDyvC,QAtEcuU,KACpBt+B,KACA,MAAM1lB,EAAMxR,aAAaC,QAAQ,iBAC7BuR,GACF2lB,KAAQ68B,IAAIC,eAAe98B,KAAQ68B,IAAIE,UAAU1iD,GAAMggD,GACzD,EAkEM1Q,MApIY54B,KAClBusC,IACA90D,EAAS,CACPb,KAAM,aACNE,KAAM,IACDJ,EACH2gD,sBAAsB,IAExB,EA6HI4B,UAfR,WACE0Q,GAAkB,EACpB,EAcQxQ,cAAeA,IAEjB5gD,cAAA,OAAKwmB,IAAKkrC,EAAY1rD,GAAG,eACzBoe,eAAA,OACEC,MAAM,4CACN2wC,GAAG,UACH/rD,MAAO,CAAEkmB,QAAS,QAClB3I,IAAK46B,EAAQniD,SAAA,CAEbmlB,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,sBACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,gBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,KAAIrC,SAAC,SAEnBe,cAACk1D,GAAK,CAAC72D,KAAK,kBAAiBY,SAC3Be,cAACm1D,GAAK,CAAC7zD,KAAK,KAAIrC,SAAC,UAEnBe,cAACk1D,GAAK,CAAC72D,KAAK,iBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,WAErBe,cAACk1D,GAAK,CAAC72D,KAAK,eACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,qBAEd+lB,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,4BACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,sBAAqBY,SAC/Be,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,aAIxBe,cAACk1D,GAAK,CAAC72D,KAAK,sBAAqBY,SAC/Be,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,YAErBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,eAAcY,SAAA,CACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,MAG5Ce,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,UAGtBe,cAACo1D,GAAK,CAAC9zD,KAAK,KAAIrC,SACde,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,WAGtBe,cAACo1D,GAAK,CAAC9zD,KAAK,KAAIrC,SACde,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,aAIxBe,cAACk1D,GAAK,CAAC72D,KAAK,mBAAkBY,SAC5Be,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,QAI9Ce,cAACk1D,GAAK,CAAC72D,KAAK,2BAA0BY,SACpCe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,eAGvBmlB,eAAC6wC,GAAQ,CAAC3zD,KAAMg3B,EAAe,qBAAsB6yB,OAAO,UAASlsD,SAAA,CACnEe,cAACk1D,GAAK,CAAC72D,KAAK,cAAaY,SACvBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,QAEpBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,kBAAiBY,SAAA,CAC3Be,cAACm1D,GAAK,CAAC7zD,KAAK,KAAIrC,SAAC,QACjBe,cAACo1D,GAAK,CAAC9zD,KAAK,IAAGrC,SACbe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,UAGtBe,cAACo1D,GAAK,CAAC9zD,KAAK,IAAGrC,SACbe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,aAIxBe,cAACk1D,GAAK,CAAC72D,KAAK,UACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,UACZ+lB,eAAC8wC,GAAK,CAAC72D,KAAK,cAAaY,SAAA,CACvBe,cAACm1D,GAAK,CAAC7zD,KAAK,KAAIrC,SAAC,SACjBe,cAACo1D,GAAK,CAAC9zD,KAAK,MAAKrC,SACfe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,aAIxBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,YAAWY,SAAA,CACrBe,cAACm1D,GAAK,CAAC7zD,KAAK,KAAIrC,SAAC,QACjBe,cAACo1D,GAAK,CAAC9zD,KAAK,MAAKrC,SACfe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,cAIxBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,WAAUrC,SAAC,SAEzBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,uBAAsBY,SAAA,CAChCe,cAACs1D,GAAQ,CAACC,cAAc,UACxBv1D,cAACm1D,GAAK,CAAC7zD,KAAK,WAAUrC,SAAC,SACvBe,cAACo1D,GAAK,CAAC9zD,KAAK,kBAAiBrC,SAC3Be,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,aAIxBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,aAAYY,SAAA,CACtBe,cAACm1D,GAAK,CAAC7zD,KAAK,KAAIrC,SAAC,UACjBe,cAACo1D,GAAK,CAAC9zD,KAAK,MAAKrC,SACfe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,eAIxBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,eAAcY,SAAA,CACxBe,cAACs1D,GAAQ,CAACE,GAAG,QACbx1D,cAACm1D,GAAK,CAAC7zD,KAAK,KAAIrC,SAAC,WAEnBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,cAAaY,SAAA,CACvBe,cAACo1D,GAAK,CAAC9zD,KAAK,WAAUrC,SACpBe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,WAGtBe,cAACo1D,GAAK,CAAC9zD,KAAK,UAASrC,SACnBe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,cAIxBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,iBAAgBY,SAAA,CAC1Be,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,WAGtBe,cAACo1D,GAAK,CAAC9zD,KAAK,MAAKrC,SACfe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,UAGtBe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,eAIxBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,kBAAiBY,SAAA,CAC3Be,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,UAGtBe,cAACo1D,GAAK,CAAC9zD,KAAK,KAAIrC,SACde,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,eAIxBe,cAACk1D,GAAK,CAAC72D,KAAK,yBAEd+lB,eAAC6wC,GAAQ,CAAC3zD,KAAMg3B,EAAe,qBAAsB6yB,OAAO,UAASlsD,SAAA,CACnEe,cAACk1D,GAAK,CAAC72D,KAAK,OAAMY,SAChBe,cAACm1D,GAAK,CAAC7zD,KAAK,WAEdtB,cAACk1D,GAAK,CAAC72D,KAAK,uBAAsBY,SAChCe,cAACm1D,GAAK,CAAC7zD,KAAK,WAEdtB,cAACk1D,GAAK,CAAC72D,KAAK,YAAWY,SACrBe,cAACs1D,GAAQ,CAACG,MAAM,QAElBrxC,eAAC8wC,GAAK,CAAC72D,KAAK,cAAaY,SAAA,CACvBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,SAG5Ce,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,gBAKlBtB,cAACk1D,GAAK,CAAC72D,KAAK,cAAaY,SACvBe,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,cAIzBe,cAACk1D,GAAK,CAAC72D,KAAK,YACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,eAAcY,SACxBe,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,eAIlB8iB,eAAC8wC,GAAK,CAAC72D,KAAK,eAAcY,SAAA,CACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,UAClBe,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,aAKhDe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,eAIzBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,cAAaY,SAAA,CACvBe,cAACs1D,GAAQ,CAACI,GAAG,SACb11D,cAACm1D,GAAK,CAAC7zD,KAAK,QAAOrC,SAAC,eACpBe,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,gBAMlDmlB,eAAC8wC,GAAK,CAAC72D,KAAK,oBAAmBY,SAAA,CAC7Be,cAACs1D,GAAQ,CAACK,IAAI,OAAOC,IAAI,SACzB51D,cAACm1D,GAAK,CAAC7zD,KAAK,SAAQrC,SAAC,eACrBe,cAACm1D,GAAK,CAAC7zD,KAAK,SAAQrC,SAAC,eACrBe,cAACo1D,GAAK,CAAC9zD,KAAK,SAAQrC,SAClBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,gBAMlDmlB,eAAC8wC,GAAK,CAAC72D,KAAK,kBAAiBY,SAAA,CAC3Be,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,cACnBe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,eAIzBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,YAAWY,SAAA,CACrBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,SACnBe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,eAIzBe,cAACk1D,GAAK,CAAC72D,KAAK,cACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,cACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,aAAYY,SACtBe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,cAKzBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,kBAAiBY,SAAA,CAC3Be,cAACs1D,GAAQ,CAACj3D,KAAK,SACf2B,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,SACnBe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,kBAM3BmlB,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,sBACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,oBAAmBY,SAC7Be,cAACs1D,GAAQ,CAACG,MAAM,QAElBz1D,cAACk1D,GAAK,CAAC72D,KAAK,oBAAmBY,SAC7Be,cAACs1D,GAAQ,CAACG,MAAM,QAElBz1D,cAACk1D,GAAK,CAAC72D,KAAK,eAAcY,SACxBe,cAACo1D,GAAK,CAAC9zD,KAAK,MAAKrC,SACfe,cAACq1D,GAAM,CAACh3D,KAAK,cAAaY,SACxBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,YAIxBe,cAACk1D,GAAK,CAAC72D,KAAK,iBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,kBACZ+lB,eAAC8wC,GAAK,CAAC72D,KAAK,gBAAeY,SAAA,CACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAKrC,SAAC,UAClBe,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,iBAMlDmlB,eAAC8wC,GAAK,CAAC72D,KAAK,iBAAgBY,SAAA,CAC1Be,cAACs1D,GAAQ,CAAC1H,UAAU,QAAQ8H,GAAG,SAC/B11D,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,QACnBe,cAACm1D,GAAK,CAAC7zD,KAAK,QAAOrC,SAAC,eACpBe,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,gBAMlDmlB,eAAC8wC,GAAK,CAAC72D,KAAK,iBAAgBY,SAAA,CAC1Be,cAACs1D,GAAQ,CAACI,GAAG,SACb11D,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,QACnBe,cAACm1D,GAAK,CAAC7zD,KAAK,QAAOrC,SAAC,eACpBe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,gBAMlDmlB,eAAC8wC,GAAK,CAAC72D,KAAK,mBAAkBY,SAAA,CAC5Be,cAACs1D,GAAQ,CAACK,IAAI,OAAOC,IAAI,SACzB51D,cAACm1D,GAAK,CAAC7zD,KAAK,SAAQrC,SAAC,eACrBe,cAACm1D,GAAK,CAAC7zD,KAAK,SAAQrC,SAAC,eACrBe,cAACo1D,GAAK,CAAC9zD,KAAK,OAAMrC,SAChBe,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,MAAM0E,GAAG,uBAAsB/G,SAAC,gBAMlDmlB,eAAC8wC,GAAK,CAAC72D,KAAK,cAAaY,SAAA,CACvBe,cAACs1D,GAAQ,CAACvF,KAAK,UACf/vD,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,UACnBe,cAACo1D,GAAK,CAAC9zD,KAAK,QAAOrC,SACjBe,cAACq1D,GAAM,CAACh3D,KAAK,OAAMY,SACjBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,aAIzBmlB,eAAC8wC,GAAK,CAAC72D,KAAK,aAAYY,SAAA,CACtBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAC,YACnBe,cAACm1D,GAAK,CAAC7zD,KAAK,YAAWrC,SAAC,YAG5Be,cAAC61D,GAAG,IAEJ71D,cAACi1D,GAAQ,CACP3zD,KAAMg3B,EAAe,+BACrB6yB,OAAO,UACP2K,OAAO,aAKT1xC,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,gCACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,aACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,iBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,aACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,aACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,cACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,YAEd2B,cAACi1D,GAAQ,CACP3zD,KAAMg3B,EAAe,+BACrB6yB,OAAO,UAASlsD,SAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,oBAEd2B,cAAC61D,GAAG,IACJ71D,cAACi1D,GAAQ,CACP3zD,KAAMg3B,EAAe,gCACrB6yB,OAAO,UACP2K,OAAO,cAGT1xC,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,6BACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,gBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,gBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,eACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,gBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,eACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,cACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,SACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,kBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,cACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,aACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,mBAEd+lB,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,iCACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,cACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,YACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,qBAEd+lB,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,kCACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,QACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,cACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,YACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,eAEd2B,cAAC61D,GAAG,IACJzxC,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,yBACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,kBAAiBY,SAC3Be,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAEy3B,KAAQq/B,IAAwB,uBAEtD/1D,cAACk1D,GAAK,CAAC72D,KAAK,gBAAeY,SACzBe,cAACm1D,GAAK,CAAC7zD,KAAK,OAAMrC,SAAEy3B,KAAQq/B,IAAwB,uBAEtD/1D,cAACk1D,GAAK,CAAC72D,KAAK,qBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,eACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,SACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,UACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,YACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,QACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,eACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,sBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,0BACZ2B,cAAC61D,GAAG,OAEN71D,cAAC61D,GAAG,IACJzxC,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,yBACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,kBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,aACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,eACXq5C,EAOD13C,cAACk1D,GAAK,CAAC72D,KAAK,iBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,kBACXq5C,EACD13C,cAACk1D,GAAK,CAAC72D,KAAK,QAEZ2B,cAAC61D,GAAG,OAEN71D,cAAC61D,GAAG,IACJzxC,eAAC6wC,GAAQ,CACP3zD,KAAMg3B,EAAe,6BACrB6yB,OAAO,UAASlsD,SAAA,CAEhBe,cAACk1D,GAAK,CAAC72D,KAAK,sBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,4BACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,8BACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,+BACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,+BACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,2BACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,wBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,wBACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,0BACZ2B,cAACk1D,GAAK,CAAC72D,KAAK,yBAEd2B,cAAC61D,GAAG,KACHne,QAyBJuZ,GACCjxD,cAAC4vD,GAAU,CACTC,WAAYoB,EACZ7L,KAAMA,EACN39B,YAAaA,IAAMypC,GAAY,KAGlCC,GACCnxD,cAAC0wD,GAAU,CACTb,WAAYsB,EACZ/L,KAhiBCmM,EAiiBD9pC,YAAcvnB,GAjjBtB,SAA0BA,GAGxB,GAFAkxD,GAAkB,GAEd9uB,EAAc,CAChB,MAAMr4B,EAAQysB,KAAQ08B,cAAcmB,aAAajyB,EAAat8B,IAE7C,oBAAfiE,EAAM5L,MACS,kBAAf4L,EAAM5L,MACS,YAAf4L,EAAM5L,KAEN4L,EAAMukD,cAActuD,EAAO,QACtB+J,EAAMukD,cAActuD,EAAO,OACpC,CACF,CAoiBgC81D,CAAiB91D,OAKnD,ECryBA,MAAMg1D,GAASe,IACX,MAAM,SAAEh3D,KAAaD,GAAUi3D,EAE/B,OADAj3D,EAAMg2D,GAAK,UACJ1uC,IAAMmE,cAAc,QAASzrB,EAAOC,EAAS,EAGlDg2D,GAAYgB,IACd,MAAM,SAAEh3D,KAAaD,GAAUi3D,EAE/B,OADAj3D,EAAMg2D,GAAK,UACJ1uC,IAAMmE,cAAc,WAAYzrB,EAAOC,EAAS,EAGrDm2D,GAASa,IACX,MAAM,SAAEh3D,KAAaD,GAAUi3D,EAE/B,OADAj3D,EAAMg2D,GAAK,UACJ1uC,IAAMmE,cAAc,QAASzrB,EAAOC,EAAS,EAGlDk2D,GAASc,IACX,MAAM,SAAEh3D,KAAaD,GAAUi3D,EAE/B,OADAj3D,EAAMg2D,GAAK,UACJ1uC,IAAMmE,cAAc,QAASzrB,EAAOC,EAAS,EAGlDo2D,GAAUY,IACZ,MAAM,SAAEh3D,KAAaD,GAAUi3D,EAE/B,OADAj3D,EAAMg2D,GAAK,UACJ1uC,IAAMmE,cAAc,SAAUzrB,EAAOC,EAAS,EAGnDq2D,GAAYW,IACd,MAAM,SAAEh3D,KAAaD,GAAUi3D,EAE/B,OADAj3D,EAAMg2D,GAAK,UACJ1uC,IAAMmE,cAAc,WAAYzrB,EAAOC,EAAS,EAGrD42D,GAAOI,IACT,MAAM,SAAEh3D,KAAaD,GAAUi3D,EAE/B,OADAj3D,EAAMg2D,GAAK,UACJ1uC,IAAMmE,cAAc,MAAOzrB,EAAOC,EAAS,ECzDhD2mB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAsFek3D,OApFcA,KAAO,IAADC,EACjC,MAAM,QAAEt5C,GAAYkqB,KAAU5oC,OACxBe,SAAUsvB,GAAeruB,KACzB,MAAEhC,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GAEdg0D,EAAOiE,GAAY9rC,mBAAgB,IAEpCzsB,EAAO8pB,uBAAY,MACjBlZ,GAAqB,OAARA,QAAQ,IAARA,KAAU1M,cAC3B0M,EAAS1M,YAAc,CACrB8O,YAAa,EACbC,QAAS,GACTC,IAAI,mDACJC,gBAAiB,IAEnB9R,EAAS,CACPb,KAAM,aACNE,KAAM,IACDJ,KAGT,GACC,CAACsQ,EAAUvP,EAAUf,IA6BxB,OA3BAiB,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJuB,qBAAU,MACRC,iBACE,MAAM8H,QAAeqV,GAAS,CAC5BD,SAAUM,GAAW,IACpB2R,GACH,GAAIrnB,EAAO+U,QAAS,CAClB,MAAMm6C,EAAclvD,EAAO4U,KAAKxd,KAAKiiB,OAClC9a,KAAKuvB,IACJ,IAAKA,EAAK4G,OAAOlwB,SAAU,OAAO,KAClC,MAAMmmB,EAAOmD,EAAK4G,OAAOlwB,SAASE,KAC5B0wB,EAAgB,IAAIzlB,GAAcgb,EAAKvzB,KAAM02B,EAAK/X,YAExD,OADA4U,EAAKvzB,KAAOg+B,EAAclkB,cACnB4c,EAAK4G,MAAM,IAEnB91B,QAAQuwD,KAAQA,IACnBF,EAASC,EACX,CACF,CAEAE,EAAW,GAEV,CAAC15C,IAEC1e,EAAM2gD,qBAGT9+C,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAM2gD,qBACZr1B,oBAAqB7D,GACrB4wC,YAAU,EACV,kBAAgB,2BAChB,mBAAiB,iCAAgCv3D,SAEjDe,cAAA,OAAKiJ,MAAO,CAAEq3B,OAAQ,MAAQt6B,GAAG,0BAAyB/G,SACxDe,cAACgxD,GAAkB,CACjBmB,MAAOA,EACP1jD,SAAUA,EACVuhD,UAAU,EACVyG,UAAU,EACVnE,MAAO,SACPoE,KAAM,CACJC,YAAY,EACZ7b,MAAM,EACN4X,OAAO,GAETR,YACU,OAARzjD,QAAQ,IAARA,GAAqB,QAAb0nD,EAAR1nD,EAAU1M,mBAAW,IAAAo0D,OAAb,EAARA,EAAuBplD,MAAG,yDAvBI/Q,cAAAysB,WAAA,GA4B7B,E,SCjFN,MAsBMmqC,GAAoBv3D,UAC/B,IAAIw3D,EAAU,GACd,MAAMpuC,EAAkB,GAElBquC,EAASC,OAAaC,MAAM,CAChCH,QAASE,OAAa3+C,SAAS,0CAGxB,OAATxR,QAAS,IAATA,KAAW0D,SAAQjL,UACI,KAAjBiI,EAAQhG,MAIVu1D,EAAUvvD,EAAQ2vD,QAClBxuC,EAAM,GAAKouC,GAJXA,EAAU,oBAKZ,IAGmB,IAAjBpuC,EAAM5jB,OACS,KAAb4jB,EAAM,KACRouC,EAAU,IAEPA,EAAU,qBAEjB,MAAMK,EAAgB,IAAIC,SAAgCC,IACxDN,EACGO,SAAS,CAAER,WAAW,CAAES,YAAY,IACpClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEm7C,QAAS,KAAO,IAEpDpI,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAEm7C,QAASvxB,EAAI5pB,OAAO,KAAO,GAC/D,IAEN,aAAaw7C,CAAa,EAGtBM,GAAgBn4D,MAAOiC,EAAcm2D,KACzC,MAAMX,EAASC,OAAaC,MAAM,CAChC11D,KAAMy1D,OAAa3+C,SAASq/C,KAGxBP,EAAgB,IAAIC,SAAiCC,IACzDN,EACGO,SAAS,CAAE/1D,QAAQ,CAAEg2D,YAAY,IACjClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEpa,KAAM,KAAO,IAEjDmtD,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAEpa,KAAMgkC,EAAI5pB,OAAO,KAAO,GAC5D,IAEN,aAAaw7C,CAAa,EAGfQ,GAAe,CAC1Bp2D,KAAOpB,GACEkM,EAAQlM,EAAMiI,QAAQ,KAAM,KAAK+lC,OAAO,EAAG,IAEpDypB,IAAMz3D,GACGkM,EAAQlM,GAAO,GAAMguC,OAAO,EAAG,IAExC3sC,YAAcrB,GAAkBA,GCjF5B03D,GAAmBv4D,UACvB,MAAMy3D,EAASC,OAAaC,MAAM,CAChCv1D,QAASs1D,OAAa3+C,SAAS,4BAG3B8+C,EAAgB,IAAIC,SAAoCC,IAC5DN,EACGO,SAAS,CAAE51D,WAAW,CAAE61D,YAAY,IACpClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAE,iBAAkB,KAAO,IAE7D+yC,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAE,iBAAkB4pB,EAAI5pB,OAAO,KAAO,GACxE,IAEN,aAAaw7C,CAAa,EAGtBW,GAAoBx4D,UACxB,MAAMy3D,EAASC,OAAaC,MAAM,CAChCl4B,SAAUi4B,OAAa3+C,SAAS,4BAG5B8+C,EAAgB,IAAIC,SAAoCC,IAC5DN,EACGO,SAAS,CAAEv4B,YAAY,CAAEw4B,YAAY,IACrClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAE,kBAAmB,KAAO,IAE9D+yC,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAE,kBAAmB4pB,EAAI5pB,OAAO,KAAO,GACzE,IAEN,aAAaw7C,CAAa,EC/BfY,IAHSf,OAAaC,MAAM,CACvC11D,KAAMy1D,OAAa3+C,WAAWsc,IAAI,MAShC,CACFqjC,KAAM14D,MACJ6rB,EACAusC,EACA9rD,EACAlD,KAEA,IAAItB,EAAsB,CAAC,EAC3B,GAAI+jB,EAAM,CACR,MAAM8sC,OFrBkB34D,OAAO44D,EAAoBR,KAAsB,IAADS,EAC5E,MAAMC,QAAmBX,GAAcS,EAAS32D,KAAMm2D,GACtD,IAAIW,EAE6B,IAADC,EAC9BD,EADiB,QAAnBF,EAAID,EAASr2D,cAAM,IAAAs2D,GAAfA,EAAiBtxD,gBACDgwD,GAAiC,QAAhByB,EAACJ,EAASr2D,cAAM,IAAAy2D,OAAA,EAAfA,EAAiBzxD,WAEzCuxD,EAGd,MAAMZ,EAAUY,EAAWZ,SAAWa,EAAUb,QAChD,IAAI77C,EAQJ,OALEA,EAD6B,KAA3By8C,EAAWz8C,OAAOpa,KACX,IAAK62D,EAAWz8C,QAEhB,IAAK08C,EAAU18C,QAGnB,CAAE67C,UAAS77C,SAAQ,EEES48C,CAC7B,IAAKptC,IACG,OAARusC,QAAQ,IAARA,OAAQ,EAARA,EAAUc,qBAAsB,IAElC,GAAKP,EAAiBT,SAGpB,GAAI5rD,EAAU,CACZ,MAAM6sD,EAAgB,IAAIt3D,EAAc,IAAKgqB,IAC7C,IAAKstC,EAAc/0D,YAAc+0D,EAAc50D,WAAY,CAC5Cf,OAAOuH,KAAKuB,GAAU5F,QAAQyD,IACzC,GAAI5D,OAAO4D,KAASf,EAAQ,OAAO,EACnC,MAAM,KAAElK,GAASoN,EAAS/F,OAAO4D,IAC3BivD,EAAmB,IAAIv3D,EAAc3C,GAC3C,OAAKk6D,EAAiBh1D,YAAcg1D,EAAiB70D,YAEjD60D,EAAiBn3D,KAAK4L,sBACtBsrD,EAAcl3D,KAAK4L,mBAGX,IAGHrI,SACTsC,EAAS,CAAE7F,MAAc,OAARm2D,QAAQ,IAARA,OAAQ,EAARA,EAAUiB,uBAAwB,IAEvD,CACF,OAtBAvxD,EAAS,IAAK6wD,EAAiBt8C,OAwBnC,CACA,OAAOvU,CAAM,EAGfwxD,eAAgBt5D,MACd6rB,EACAusC,KAEA,IAAItwD,EAAsB,CAAC,EAC3B,GAAI+jB,EAAKppB,OAAQ,CACf,MAAMk2D,ODnE4B34D,WACtC,MAAMu5D,QAAsBhB,GAAiBiB,EAAep3D,SACtDq3D,EAAeF,EAAcrB,QAC7BwB,QAAuBlB,GAAkBgB,EAAe/5B,UACxDk6B,EAAgBD,EAAexB,QAGrC,MAAO,CAAEA,QAFOuB,GAAgBE,EAEdt9C,OADH,IAAKk9C,EAAcl9C,UAAWq9C,EAAer9C,QAClC,EC4DSu9C,CAAyB/tC,EAAKppB,QACxDk2D,EAAiBT,UACpBpwD,EAAS,IAAK6wD,EAAiBt8C,QAEnC,CACA,OAAOvU,CAAM,EAGf+xD,iBAAkB75D,MAChB6rB,EACAusC,KAEA,IAAItwD,EAAsB,CAAC,EAC3B,GAAI+jB,EAAKrpB,QAAS,CAChB,MAAM,QAAEA,GAAYqpB,EACpB,IAAK,IAAIhjB,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IAAS,CACnD,MAAMvC,EAAS9D,EAAQqG,GACRrG,EAAQkE,QACpB2G,GACCA,EAAE6B,MAAMmC,OAAOxD,sBACfvH,EAAO4I,MAAMmC,OAAOxD,sBACtBrI,OAEW,IACXsC,EAAS,IACJA,EACH,CAAC,WAADH,OAAYkB,EAAK,aAAoB,OAARuvD,QAAQ,IAARA,OAAQ,EAARA,EAAU0B,wBAAyB,IAGtE,CACA,IAAK,IAAIjxD,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IACN,KAAhCrG,EAAQqG,GAAOqG,MAAMmC,SACvBvJ,EAAS,IACJA,EACH,CAAC,WAADH,OAAYkB,EAAK,aAAoB,OAARuvD,QAAQ,IAARA,OAAQ,EAARA,EAAU2B,sBAAuB,IAItE,CACA,OAAOjyD,CAAM,EAGfkyD,aAAch6D,MACZ6rB,EACAusC,KAC0B,IAAD6B,EACzB,IAAInyD,EAAsB,CAAC,EAK3B,MAHkC,MAAf,QAAfmyD,EAAApuC,EAAK/oB,kBAAU,IAAAm3D,OAAA,EAAfA,EAAiBl3D,YACnB+E,EAAS,CAAEoyD,aAAc,mCAEpBpyD,CAAM,EAGfqyD,iBAAkBn6D,MAChB6rB,EACAusC,KAEA,IAAItwD,EAAsB,CAAC,EAC3B,MAAM,QAAEtF,GAAYqpB,EAEpB,GAAIrpB,EAAS,CACX,IAAK,IAAIqG,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IAAS,CAAC,IAADuxD,EACd,MAAb,QAApBA,EAAA53D,EAAQqG,GAAOhI,aAAK,IAAAu5D,OAAA,EAApBA,EAAsB/oD,UACxBvJ,EAAS,IACJA,EACH,CAAC,WAADH,OAAYkB,EAAK,YAAY,8CAGnC,CAEA,IAAIwxD,EAAM,EACV,IAAK,IAAIxxD,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IACtCtC,OAAO/D,EAAQqG,GAAOhI,SACxBw5D,GAAO9zD,OAAO/D,EAAQqG,GAAOhI,QAI7Bw5D,EAAM,MACRvyD,EAAS,IACJA,EACHuyD,IAAa,OAARjC,QAAQ,IAARA,OAAQ,EAARA,EAAUkC,UAGrB,CACA,OAAOxyD,CAAM,EAGfyyD,gBAAiBv6D,MACf6rB,EACAusC,KAEA,IAAItwD,EAAsB,CAAC,EAC3B,MAAM,QAAEtF,GAAYqpB,EAEpB,GAAIrpB,EACF,IAAK,IAAIqG,EAAQ,EAAGA,EAAQrG,EAAQgD,OAAQqD,IAAS,CACnD,MAAM,MAAE2xD,GAAUh4D,EAAQqG,GAE1B,GAAI2xD,EACF,IAAK,IAAIC,EAAS,EAAGA,EAASD,EAAMh1D,OAAQi1D,IAAU,CAAC,IAADC,EACb,MAAb,QAAtBA,EAAAF,EAAMC,GAAQtN,gBAAQ,IAAAuN,OAAA,EAAtBA,EAAwBrpD,UAC1BvJ,EAAS,IACJA,EACH,CAAC,WAADH,OAAYkB,EAAK,YAAAlB,OAAW8yD,EAAM,eAChC,yCAGR,CAEJ,CAEF,OAAO3yD,CAAM,EAGf6yD,YAAa36D,MACX6rB,EACAusC,KAC0B,IAADwC,EACzB,IAAI9yD,EAAsB,CAAC,EAQ3B,OAPyB,QAAhB8yD,EAAG/uC,EAAKxpB,gBAAQ,IAAAu4D,OAAA,EAAbA,EAAehzD,WAEzBE,EAAS,IACJA,EACH,QAAqB,OAARswD,QAAQ,IAARA,OAAQ,EAARA,EAAUyC,cAGpB/yD,CAAM,EAEfgzD,iBAAkB96D,MAChB6rB,EACAusC,KAEA,IAAItwD,EAAsB,CAAC,EAQ3B,OAPY+jB,EAAKtoB,YAEfuE,EAAS,IACJA,EACH,UAAuB,OAARswD,QAAQ,IAARA,OAAQ,EAARA,EAAU70D,YAGtBuE,CAAM,IAIJizD,GAA2B95D,IACtC,OAAQA,GACN,KAAKE,EAAYgB,YACf,MAAO,CAAC,QACV,KAAKhB,EAAYuD,SACf,MAAO,CAAC,OAAQ,kBAClB,KAAKvD,EAAYgD,eAEjB,KAAKhD,EAAY+C,qBACf,MAAO,CAAC,OAAQ,oBAClB,KAAK/C,EAAY6C,aACf,MAAO,CAAC,OAAQ,mBAAoB,eACtC,KAAK7C,EAAYiE,SAEjB,KAAKjE,EAAY+wB,MACf,MAAO,CAAC,OAAQ,oBAClB,KAAK/wB,EAAYgxB,OACf,MAAO,CAAC,OAAQ,mBAAoB,oBACtC,KAAKhxB,EAAYywB,SACf,MAAO,CAAC,OAAQ,gBAClB,KAAKzwB,EAAYS,UACf,MAAO,CAAC,OAAQ,oBAClB,QACE,MAAO,CAAC,QACZ,ECxJWo5D,GAAY,CACvB1uD,SAAU,CACRE,KAAM,CACJtN,KAAM,CAAC,EACP8Q,QAAS,KCvFFirD,GAAqBj7D,UAChC,MAAM84D,QAAmBX,GAAcS,EAAS32D,KAAM22D,EAAS77C,OAAS,IAGxE,MAAO,CAAEm7C,QAFOY,EAAWZ,QAET77C,OADH,IAAKy8C,EAAWz8C,QACL,EAGtB87C,GAAgBn4D,MAAOiC,EAAc8a,KACzC,MAAM06C,EAASC,OAAaC,MAAM,CAChC11D,KAAMy1D,OAAa3+C,SAASgE,KAGxB86C,EAAgB,IAAIC,SAAkCC,IAC1DN,EACGO,SAAS,CAAE/1D,QAAQ,CAAEg2D,YAAY,IACjClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEpa,KAAM,KAAO,IAEjDmtD,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAEpa,KAAMgkC,EAAI5pB,OAAO,KAAO,GAC5D,IAEN,aAAaw7C,CAAa,EAGfqD,GAAe,CAC1Bj5D,KAAOpB,GACEkM,EAAQlM,EAAMiI,QAAQ,KAAM,KAAK+lC,OAAO,EAAG,IAEpD3sC,YAAcrB,GAAkBA,EAChCs6D,QAAUt6D,GAAkBA,EAC7Bkc,MAAQlc,GAAkBA,GCfZ,SAASizC,GAAcn0C,GACpC,MAAM,gBAAEy7D,GAAkB,EAAI,YAAEl2D,GAAgBvF,GAC1C,SAAEE,EAAQ,UAAEimC,EAAS,aAAE5wB,EAAY,MAAEpW,EAAK,kBAAEkgB,GAChD0oB,MACM7nC,SAAUsvB,GAAgBruB,KAC5B,SAAEsO,GAAa4wC,KAAUlhD,MACzBu8D,EAAerb,KAAUngD,UACzB,eAAEo5B,GAAmBH,MACpBvZ,EAAS4vB,GAAclkB,oBAAS,GACjCqwC,EAAc5/B,iBAAe,OAARtsB,QAAQ,IAARA,OAAQ,EAARA,EAAUnN,MAE/Bs5D,EAAmB,CACvBrC,mBAAoBjgC,EAAe,uBAAwB,CACzDxF,MAAOwF,EAAe,UAExBogC,qBAAsBpgC,EAAe,oCACrC8gC,oBAAqB9gC,EAAe,mCACpC6gC,sBAAuB7gC,EAAe,qCACtCqhC,SAAUrhC,EAAe,wBACzB4hC,YAAa5hC,EAAe,uBAAwB,CAClDxF,MAAOwF,EAAe,aAExB11B,UAAW,kDAoCPy0C,EAAqBh4C,UACzB,GAAIoP,EAAU,CACZ,GAAItQ,EAAMsK,OAAQ,CAAC,IAAD60B,EAAAvB,EAcV/pB,EAbN,IAAKyoD,GAAmBI,IACtB,GACEpsD,GACAA,EAAS1M,aACT0M,EAAS1M,YAAY+O,SACrBrC,EAAS1M,YAAYgP,IAKrB,GAHAtC,EAAS1M,YAAY+O,QAAU,GAC/BrC,EAAS1M,YAAYgP,IAAM,GAGzBtC,EAASnO,aAAeE,EAAYM,UACpC2N,EAASnO,aAAeE,EAAYO,OAEpB,QAAhBiR,EAAAvD,EAAS5M,eAAO,IAAAmQ,GAAhBA,EAAkB5J,KAAK,CAAEmG,MAAO,SAAUusD,QAAQ,IAIxD,MAAMC,EACY,QADKz9B,EACrBn/B,EAAM2P,kBAAU,IAAAwvB,OAAA,EAAhBA,EAAkB3xB,SAASA,SAASE,KAAKtN,KAAKJ,EAAMsK,QAAQlK,KAAK+C,WAE7DiT,EAAa9F,EAAUtQ,EAAMsK,QAE/BlE,SCvGGlF,eAA+BioB,GAQnC,IARoC,SAC7C7Y,EAAQ,MACRtQ,EAAK,kBACLkgB,EAAiB,YACjBmQ,EAAW,SACXtvB,EAAQ,eACRo5B,EAAc,kBACdyiC,GACMzzC,EACF2wC,EAAsB,CACxB32D,KAAM,GACNC,YAAa,GACbi5D,QAAS,IAEX,MAAMn9C,EAAS,QAAArW,OAAmB,OAARyH,QAAQ,IAARA,OAAQ,EAARA,EAAUnN,MACpC22D,EAAW,CACT32D,KAAM+b,EACN9b,aAAqB,OAARkN,QAAQ,IAARA,OAAQ,EAARA,EAAUlN,cAAe,GACtCi5D,QAAS,IAEX,MAAM,QAAEjD,SAAkB+C,GAAmBrC,GAE7C,IAAKV,EAAS,OAEd,IAAI/2C,EAASriB,EAAMmiB,YACEE,EAAO5V,MACzB64B,GAAMA,EAAEhzB,gBAAkBwnD,EAAS32D,KAAKmP,iBAIzCzF,QAAQC,IAAI,qBAGd,MAAMk5B,EAAO,IAAIhmC,EAAMkiB,WACjB1M,EAAMwwB,EAAKv5B,MAAMmJ,GAAMA,IAAM5V,EAAM0e,UACnCm+C,QAA8B59C,GAClC,CAAEb,SAAU5I,GAAO,GAAI0J,UAAW,QAAArW,OAAQ+zD,KAAuB,GACjEvsC,GAGF,GAAIwsC,EAAsB9+C,QAAS,CACjC,MAAM3d,EAAiB,CAAC,EAClB08D,EACJD,EAAsBj/C,KAAKxd,KAAKs9B,OAAOlwB,SAASE,KAAKtN,KACjD28D,EAA0Br4D,OAAOuH,KAAK6wD,GAEtCE,EACJF,EAAoBr1D,OAAOs1D,EAAwB,KAErDr4D,OAAOC,OAAOvE,EAAM08D,GACpB18D,EAAK48D,EAAcn1D,IAAM,IACpBm1D,EACH58D,KAAM,IACD48D,EAAc58D,KACjBgD,YAAakN,EAASlN,YACtBqB,UAAW6L,EAAS7L,UACpBtB,KAAMmN,EAAS7L,WAAarE,EAAK48D,EAAcn1D,IAAI1E,OAIvD61D,QAAQiE,IAAI,OACJj+C,GACJ,CACEZ,SAAU5I,GAAO,GACjBuJ,WAAW,QAADlW,OAAU+zD,GACpBl/B,OAAQ,CAAElwB,SAAU,CAAEE,KAAM,CAAEtN,UAC9B88D,eAAgBh+C,GAElBmR,SAEI8L,GACJ,CACE/d,SAAU5I,GAAO,GACjB4mB,WAAYwgC,GAAqB,GACjCO,eAAwB,OAAR7sD,QAAQ,IAARA,OAAQ,EAARA,EAAUnN,MAE5BktB,KAIJ,MAAM+sC,QAAuBj/C,GAC3B,CAAEC,SAAU5I,GAAO,IACnB6a,GAEF,GAAI+sC,EAAex/C,KAAM,CACvByE,EAAS+6C,EAAex/C,KAAKxd,KAC7B,MAAMi9D,EAAiBh7C,EAAOjV,WAAW8pB,GAAoB,cAAVA,IAE7ComC,EAAYj7C,EAAOg7C,GAErBA,GAAkB,IACpBh7C,EAAOrU,OAAOqvD,EAAgB,GAC9Bh7C,EAAS,CAACi7C,KAAcj7C,IAG1BthB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8hB,UAAW,IAAI8jB,GACf7jB,YAAaE,IAGnB,CACF,CACF,CDAgBk7C,CAAiB,CACrBjtD,WACAtQ,QACAkgB,oBACAmQ,cACAtvB,WACAo5B,iBACAyiC,uBAG6B,QAAhBh/B,EAAG59B,EAAMogB,eAAO,IAAAwd,OAAA,EAAbA,EAAe5nB,WAAW,WAC7BwnD,EAAqBltD,EACxC,MACE,GAAIlK,EAAa,CACf,MAAMq3D,QAA2B1hC,GAC/B/7B,EAAM0e,QACN2R,GAEF,GAAIotC,EAAmB1/C,QAAS,CAM9B,GALa0/C,EAAmB7/C,KAAKxd,KACHs9D,YAAY91D,QAC3C+1D,GAAcA,EAAUvhC,aAAe9rB,EAASnN,OAG1BuD,OAAS,EAMhC,YALAwZ,EACE,QACA,gEEnIDhf,eAA6BioB,GAOjC,IAPkC,SAC3C7Y,EAAQ,MACRtQ,EAAK,kBACLkgB,EAAiB,YACjBmQ,EAAW,SACXtvB,EAAQ,eACRo5B,GACMhR,EACF2wC,EAAsB,CACxB32D,KAAM,GACNC,YAAa,GACbi5D,QAAS,IAGX,MAAMn9C,EAAS,QAAArW,OAAmB,OAARyH,QAAQ,IAARA,OAAQ,EAARA,EAAUnN,MACpC22D,EAAW,CACT32D,KAAM+b,EACN9b,aAAqB,OAARkN,QAAQ,IAARA,OAAQ,EAARA,EAAUlN,cAAe,GACtCi5D,QAAS,IAEX,MAAM,QAAEjD,SAAkB+C,GAAmBrC,GAE7C,IAAKV,EAAS,OAEd,IAAI/2C,EAASriB,EAAMmiB,YAKnB,GAJqBE,EAAO5V,MACzB64B,GAAMA,EAAEhzB,gBAAkBwnD,EAAS32D,KAAKmP,gBAKzC,YADAwnD,EAAS77C,MAAQkc,EAAe,mCAIlC,MAAM6L,EAAO,IAAIhmC,EAAMkiB,WACjB1M,EAAMxV,EAAM0e,QACZlR,EAAW0uD,GAEXz2B,QAAoB3mB,GACxB,CACEV,SAAU5I,GAAO,GACjBuJ,WAAY+6C,EAAS32D,KACrB6X,QAAS,CACPqH,OAAQ,CACN,CACE7U,WACAlK,QAASw2D,EAAS32D,KAClB+b,UAAW46C,EAAS32D,KACpBqS,IAAKA,GAAO,OAKpB6a,GAGF,GAAIoV,EAAY1nB,QAAS,CAAC,IAADwQ,EAAA1a,EACvB,MAAMzT,EAAiB,CAAC,EAClBs9B,EAAyB,QAAnBnP,EAAGvuB,EAAM2P,kBAAU,IAAA4e,OAAA,EAAhBA,EAAkB/gB,SAASA,SAASE,KAAKtN,KAClD0nC,EAAapjC,OAAOuH,KAAKyxB,GACzBkgC,EAAcn2D,OAAOqgC,EAAWA,EAAWphC,OAAS,IACpDm3D,EAAmBD,EAAc,EAERlgC,EAAOkgC,GAE7Bx9D,KAAKwD,YAAc,CAC1BiP,gBAAgB,UAADhK,OAAYqW,EAAS,KAAArW,OAAIyH,EAAS7L,UAAS,MAC1DiO,YAAa,EACbC,QAAS,GACTC,IAAK,IAGPxS,EAAKy9D,GAAoB,CACvBh2D,GAAIg2D,EACJ16D,KAAM,UACN/C,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,mCACTC,IAAK,IAEPzP,KAAK,GAAD0F,OAAKyH,EAAS7L,WAClBrB,YAAakN,EAASlN,YACtBjB,WAAY,IACZ0B,SAAU,EACVP,QAASw2D,EAAS32D,MAEpB26D,MAAO,UACPC,KAAM,GACNC,UAAU,EACVv6D,OAAQ,CAGN,EAEFC,QAAS,CACPi7C,SAAU,CACRzyC,YAAa,KAGjB6D,MAAO,EACPC,MAAO,GAGO,QAAhB6D,EAAAvD,EAAS5M,eAAO,IAAAmQ,GAAhBA,EAAkB1H,SAAQ,CAAC3E,EAAQuC,KACjC,MAAMk0D,EAAmBl0D,EAAQ,EAEjC3J,EAAKy9D,EAAmBI,GAAoB,CAC1Cp2D,GAAIg2D,EAAmBI,EACvB96D,KAAM,UACN/C,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,iCACTC,IAAK,IAEPzP,KAAMqE,EAAO4I,MACbhN,YAAY,gBAADyF,OAAkBixD,EAAS32D,KAAI,gBAAA0F,OAAYo1D,GACtD97D,WAAY,IACZ0B,SAAU,EACVP,QAASw2D,EAAS32D,KAClB2hC,SAAUt9B,EAAOs9B,UAEnBg5B,MAAO,UACPC,KAAM,GACNC,UAAU,EACVv6D,OAAQ,CACN+I,QAAS,CACPN,YAAa,KAGjBxI,QAAS,CAAC,EACVqM,MAAO,EACPC,MAA0B,IAAnBiuD,EACQ,IAGnBjF,QAAQiE,IAAI,OACJj+C,GACJ,CACEZ,SAAU5I,GAAO,GACjBuJ,WAAY+6C,EAAS32D,KACrBu6B,OAAQ,CAAElwB,SAAU,CAAEE,KAAM,CAAEtN,WAEhCiwB,SAEI2L,GACJ,CACE5d,SAAU5I,GAAO,GACjB4mB,WAAY9rB,EAASnN,KACrB+6D,YAAa,CACX,CACEn/C,WAAYzO,EAAShN,QACrBwhC,SAAU84B,KAIhBvtC,KAIJhO,EAAOpY,KAAK6vD,EAAS32D,MAErB,MAAMk6D,EAAiBh7C,EAAOjV,WAAW8pB,GAAoB,cAAVA,IAE7ComC,EAAYj7C,EAAOg7C,GAErBA,GAAkB,IACpBh7C,EAAOrU,OAAOqvD,EAAgB,GAC9Bh7C,EAAS,CAACi7C,KAAcj7C,IAG1BthB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8hB,UAAW,IAAI8jB,GACf7jB,YAAaE,IAGnB,MACEnC,EACE,QACAulB,EAAYznB,SAAWmc,EAAe,yBAG5C,CFnDkBgkC,CAAe,CACnB7tD,WACAtQ,QACAkgB,oBACAmQ,cACAtvB,WACAo5B,yBAGI6M,EAAU12B,EAClB,CACF,YACQ02B,EAAU12B,GAGpBgZ,GACF,GAGIk0C,EAAuBt8D,UAC3B,MAAMk9D,QAA+Bn/C,GACnC,CACEb,SAAUpe,EAAM0e,QAChBQ,UAAW,aAEbmR,GAGF,GAAI+tC,EAAuBrgD,QAAS,CAClC,MAAMsgD,EAAiBD,EAAuBxgD,KAAKxd,KAC7Ck+D,EAAuBD,EAAe3gC,OAAOlwB,SAASE,KAAKtN,KAC3D0nC,EAAapjC,OAAOuH,KAAKqyD,GAE/B,IAAK,MAAMjzD,KAAOy8B,EAAY,CAC5B,MAAM3D,EAAem6B,EAAqB72D,OAAOqgC,EAAWz8B,KACtDkzD,EAAsBp6B,EAAa/jC,KAAKsD,QAC9C,GACE,QAAAmF,OAAQs7B,EAAa/jC,KAAK+C,QAAWnD,EAAMogB,SAC3Cm+C,EACA,CACA,MAAMC,EAAsBD,EAAoBnxD,WAC7C5F,GAAWA,EAAO4I,QAAUosD,EAAYj/B,WAGK,IAAzBihC,EAGrBD,EAAoBC,GAAuB,CACzCpuD,MAAOE,EAASnN,KAChBC,YAAakN,EAASlN,YACtB0hC,SAAUx0B,EAASw0B,WAGrBy5B,EAAoBt0D,KAAK,CACvBmG,MAAOE,EAASnN,KAChBC,YAAakN,EAASlN,YACtB0hC,SAAUx0B,EAASw0B,WAGrBX,EAAazgC,QAAQ,UAADmF,OAAW01D,EAAoB73D,OAAS,IAAO,CACjEwF,YAAa,WAIX8S,GACJ,CACEZ,SAAUpe,EAAM0e,QAChBK,WAAYs/C,EAAet/C,WAC3B2e,OAAQ,CACNlwB,SAAU,CAAEE,KAAM,CAAEtN,KAAMk+D,MAG9BjuC,EAEJ,CACF,CACF,GAGI/G,EAAcA,KACd7I,IACJ87C,EAAa,CAAEr8D,KAAM,aAAcE,KAAM,CAAE2gD,WAAY,CAAC,KACxDhgD,EAAS,CAAEb,KAAM,kBAAmBE,KAAM,CAAEkQ,SAAU,QAAS,EAY3DosD,EAAWA,KAAO,IAAD1E,EACrB,QAAiB,OAAR1nD,QAAQ,IAARA,GAAqB,QAAb0nD,EAAR1nD,EAAU1M,mBAAW,IAAAo0D,IAArBA,EAAuBrlD,QAAO,EAGzC,OACEsT,eAAC0H,GAAmB,CAAA7sB,SAAA,CACjBw7D,EACCz6D,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW8uC,IAAa76D,cAAC48D,KAAQ,IAAM58D,cAAC68D,KAAQ,IAChD5yC,QApB2B6yC,KAC7Bl+C,GAEJ87C,EAAa,CACXr8D,KAAM,aACNE,KAAM,CAAEugD,sBAAsB,IAC9B,EAcwC7/C,SAEnCq5B,EAAe,kCAGlBt4B,cAAA,OAAKiJ,MAAO,CAAEsb,MAAO,OAEvBH,eAAC0H,GAAoB,CAAA7sB,SAAA,CACnBmlB,eAACO,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAAC+8D,KAAS,IACrB9yC,QAjNO5qB,UAGb,GAFAmtB,EAAMhlB,kBAEDiH,GAAYmQ,EAAS,OAE1B4vB,GAAW,GACX,MAAMpkC,EAAOgwD,GAAwB3rD,EAASnO,YAC9C,IAAI4+C,EAAa,CAAC,EAClB,IAAK,MAAM11C,KAAOY,EAChB,GAAMZ,EAAK,CAAC,IAADkjB,EACT,MAAMnuB,EAAuB,QAAnBmuB,EAAGvuB,EAAM2P,kBAAU,IAAA4e,OAAA,EAAhBA,EAAkB/gB,SAASA,SAASE,KAAKtN,KAChD6d,QAAc07C,GAAetuD,GACjCiF,EACAmsD,EACAr8D,EACAJ,EAAMsK,QAERy2C,EAAa,IAAKA,KAAe9iC,EACnC,CAEFs+C,EAAa,CAAEr8D,KAAM,aAAcE,KAAM,CAAE2gD,gBAG3C,IAFiBr8C,OAAOuH,KAAK80C,GAAYr6C,OAE5B,CAAC,IAAD2mB,QACL6rB,IACN,MAAM2F,EAAY53C,KAAKC,UAA0B,QAAjBmmB,EAACrtB,EAAM2P,kBAAU,IAAA0d,OAAA,EAAhBA,EAAkB7f,UACnDpM,aAAa6a,QAAQ,eAAgB4iC,EACvC,MACE3+B,EAAkB,QAASia,EAAe,+BAE5CkW,GAAW,EAAM,EAmLKvvC,SAAA,CAEfq5B,EAAe,6BACf1Z,GAAW5e,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,QAEtDvtB,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACg9D,KAAgB,IAC5B/yC,QAASxC,EAAYxoB,SAEpBq5B,EAAe,qCAGpBt4B,cAACk2D,GAAU,MAGjB,C,6EGjRO,MAAM+G,GAAgBl6C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mPAgB/Bg6C,GAAgBn6C,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8HAU/Bi6C,GAAsBp6C,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,qJAMzBlkB,GAAWA,EAAMitB,SAAW,UAAY,SAI/BlJ,aAAO0lB,GAAP1lB,CAAoBW,QAAAR,aAAA,sCCzBvC,SAAS60C,GAAK/4D,GAAoB,IAADo+D,EAC9C,MAAM,WAAEC,EAAa,IAAOr+D,GAEtB,YAAEshB,GAAgBymB,KAAU5oC,OAC5B,MAAEA,EAAK,SAAEe,GAAamgD,MAEtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAC3B,eAAEm6B,GAAmBH,KAErBmlC,EAAgBC,mBACpB,IACEj9C,EAAY1V,MAAMyqB,IAAK,IAAAmoC,EAAA,OAAKnoC,MAAyB,QAAdmoC,EAAAr/D,EAAMsQ,gBAAQ,IAAA+uD,OAAA,EAAdA,EAAgB/7D,UAAW,GAAG,KACvE,CAAC6e,EAA2B,QAAhB88C,EAAEj/D,EAAMsQ,gBAAQ,IAAA2uD,OAAA,EAAdA,EAAgB37D,UAG1Bg8D,EACHj0D,GAAyBjC,IACxB,GAAIkH,EAAU,CACZ,MAAM,MAAEvO,GAAUqH,EAAEkG,OACdiwD,EAAgBhG,GAAaluD,GAAKtJ,UACjCg/C,EAAW11C,GAClBtK,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IAAKA,EAAU,CAACjF,GAAMk0D,GAChCxe,eAGN,GAGEye,EAAY7qC,GACTuqC,EAAW98D,SAASuyB,GAG7B,OACE1O,eAAC0H,GAAe,CAAA7sB,SAAA,CACdmlB,eAAC0H,GAAe,CAAA7sB,SAAA,CACdmlB,eAACw5C,KAAW,CAACl0C,WAAS,EAAC1D,QAAQ,WAAU/mB,SAAA,CACvCe,cAAC69D,KAAU,CAACC,QAAQ,0BAAyB7+D,SAC1Cq5B,EAAe,eAElBt4B,cAAC+9D,KAAa,CACZ/3D,GAAG,0BACH9F,OAAe,OAARuO,QAAQ,IAARA,OAAQ,EAARA,EAAUnN,OAAQ,GACzB4yC,eAAgBypB,EAAS,SAAW39D,cAACg+D,KAAQ,IAC7C/xC,SAAU0xC,EAAS,QACnB/0B,WAAY,CACV3/B,MAAO,CAAE6a,WAAY65C,EAAS,QAAU,eAAYn7D,GACpDy7D,UAAW,IAEbC,WAAY,IACZ9hD,QAAS8iC,EAAiB,KAC1B1vB,SAAUiuC,EAAkB,UAE9Bz9D,cAACm+D,KAAc,CAAC/hD,OAAK,EAAAnd,SAAEigD,EAAiB,UAG1C96B,eAACw5C,KAAW,CAACl0C,WAAS,EAAC1D,QAAQ,WAAU/mB,SAAA,CACvCmlB,eAACy5C,KAAU,CAACC,QAAQ,2BAA0B7+D,SAAA,CAC3C,IACAq5B,EAAe,iBAElBt4B,cAAC+9D,KAAa,CACZ/3D,GAAG,2BACH9F,MAAOo9D,GAAiB,GACxBppB,eAAgBl0C,cAACg+D,KAAQ,IACzB/xC,UAAQ,EACRiyC,WAAY,GACZt1B,WAAY,CAAE3/B,MAAO,CAAE6a,WAAY,oBAIzC9jB,cAAC8rB,GAAqB,CAACG,SAAU0xC,EAAS,eAAe1+D,SACvDmlB,eAACw5C,KAAW,CAACl0C,WAAS,EAAC1D,QAAQ,WAAU/mB,SAAA,CACvCe,cAAC69D,KAAU,CAACC,QAAQ,iCAAgC7+D,SACjDq5B,EAAe,sBAElBt4B,cAAC+9D,KAAa,CACZ/3D,GAAG,iCACH9F,OAAe,OAARuO,QAAQ,IAARA,OAAQ,EAARA,EAAUlN,cAAe,GAChC2yC,eAAgBypB,EAAS,gBAAkB39D,cAACg+D,KAAQ,IACpD/xC,SAAU0xC,EAAS,eACnB/0B,WAAY,CACVq1B,UAAW,IACXh1D,MAAO,CACL6a,WAAY65C,EAAS,eAAiB,eAAYn7D,IAGtD07D,WAAY,GACZ1uC,SAAUiuC,EAAkB,eAC5Bz0B,WAAS,WAkBrB,C,sBCvHO,MAAMI,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI3B+5C,GAAgBl6C,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8OAgB/Bg6C,GAAgBn6C,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,0GAO/Bk7C,GAAwBr7C,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,sKAUvCm7C,GAAqBt7C,aAAO0lB,GAAP1lB,CAAoBqC,QAAAlC,aAAA,QAEzCo7C,GAAkBv7C,aAAOqsB,GAAPrsB,CAAqBuC,QAAApC,aAAA,QCrCrC,SAASq7C,GAAev/D,GAA8B,IAADqgC,EAAAm/B,EAClE,MAAM,QAAEC,GAAYz/D,GACd,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACf,eAAEm6B,GAAmBH,KAErBslC,EAAoBA,CACxBj0D,EACAjC,KAEA,GAAIkH,EAAU,CACZ,MAAMvO,EAAQqH,EAAEkG,OAAOvN,MAEvBuO,EAAS/M,SAAW+M,EAAS/M,SACzB+M,EAAS/M,SACT,CAAEuF,QAAS,GAAIF,IAAK,IAExB0H,EAAS/M,SAAS8H,GAAOtJ,EACzBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,SAAU,IAAKA,KAE3B,GAGF,OACE2V,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAiB,CAAC9F,QAAQ,KAAK5C,MAAM,UAASnkB,SAC5Cq5B,EAAe,yBAElBt4B,cAAC8rB,GAAe,CAAA7sB,SACdmlB,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAuB,CAAA7sB,SACtBe,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAOrQ,EAAe,WACtB5O,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBp4B,UAAW,GACtCuoB,SAAWjoB,GAAMk2D,EAAkB,UAAWl2D,GAC9CshC,KAAM,EACNH,QAAS,EACTM,WAAS,OAGXy1B,GACAz+D,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAOrQ,EAAe,YACtBoQ,QAAS,EACThf,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV+vD,EAAR/vD,EAAU/M,gBAAQ,IAAA88D,OAAV,EAARA,EAAoBz3D,MAAO,GAClCyoB,SAAWjoB,GAAMk2D,EAAkB,MAAOl2D,YAOxD,C,kFC3DO,MAAM82D,GAAqBt7C,aAAO0lB,GAAP1lB,CAAoBE,QAAAC,aAAA,UAGzCw7C,GAAmC37C,aAAOqsB,IAAepqB,MAAM,CAC3E/lB,SAAU,8DACV+mB,QAAS,KACT5C,MAAO,WAHwCL,CAI9CO,QAAAJ,aAAA,QAEWy7C,GAAmB57C,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,sIAUlC07C,GAAmB77C,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,0GAQlC27C,GAA+B97C,aAAOqsB,IAAepqB,MAAM,CACvE/lB,SAAU,4BACV+mB,QAAS,YACT5C,MAAO,WAHoCL,CAI1CqC,QAAAlC,aAAA,QAEW47C,GAAsB/7C,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,oVAEpClkB,GAAWA,EAAM+/D,SAAW,OAAS,SAsBtCC,GAA0Bj8C,aAAOwM,MAAWvK,MAAM,CAC9D2jB,MAAO,uBACP3iB,QAAS,YAF6BjD,CAGrCyC,QAAAtC,aAAA,sDAKW+7C,GAAmBl8C,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,gOAiBlCg8C,GAAkBn8C,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,8FAMjCi8C,GAAiBp8C,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,2HAShCk8C,GAAkBr8C,aAAO0C,GAAP1C,CAAemD,QAAAhD,aAAA,4BAITH,aAAO0C,GAAP1C,CAAeoD,QAAAjD,aAAA,iC,mECzErC,SAASm8C,GAAkCrgE,GAAmB,IAADggC,EAAAsgC,EAC1E,MAAM,QAAEziD,GAAYkqB,KAAU5oC,OACxB,MAAEA,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GACzBe,SAAUsvB,GAAgBruB,KAE5B,MAAE+H,EAAK,WAAEq3D,EAAU,UAAEC,EAAS,cAAEC,GAAkBzgE,EAClD4H,GAAoB,OAAR6H,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,YAAa,GAC3CC,EAAmB,OAAR4H,QAAQ,IAARA,GAAgB,QAAR6wD,EAAR7wD,EAAU7M,cAAM,IAAA09D,OAAR,EAARA,EAAkB14D,UAAUsB,IAEtCw3D,EAAOC,GAAYr1C,mBAAyC,KAC9D,eAAEgO,GAAmBH,KAE1B/4B,qBAAU,MACRC,iBACE,IAAIugE,EAAW,CACb,CAAE55D,GAAI,WAAY1E,KAAM,kBACxB,CAAE0E,GAAI,aAAc1E,KAAM,kBAC1B,CAAE0E,GAAI,cAAe1E,KAAM,mBAC3B,CAAE0E,GAAI,iBAAkB1E,KAAM,iBAC9B,CAAE0E,GAAI,WAAY1E,KAAM,iBAG1B,GAAIub,EAAS,CACX,IAAI1V,QAAe4mC,GAAY,CAAExxB,SAAUM,GAAW2R,GAEtD,GAAIrnB,EAAO+U,SACH/U,EAAO4U,KAAM,CACjB,MAAM2rB,EAAWvgC,EAAO4U,KAExB6jD,EAAW,IACNA,KACAl4B,EAAShiC,KAAKoqC,IAAM,CACrB9pC,GAAI8pC,EAAOxuC,KACXA,KAAMwuC,EAAOxuC,UAEfmyB,MAAK,SAAUjnB,EAAGuH,GAClB,OAAOvH,EAAElL,KAAOyS,EAAEzS,KAAO,EAAIyS,EAAEzS,KAAOkL,EAAElL,MAAQ,EAAI,CACtD,IAEAs+D,EAASl6D,KAAKrH,IACZ,GAAgC,MAA5BA,EAAK2H,GAAGmN,UAAU,EAAG,GAAY,CAInC,IAAI0sD,EAHU,GAAA74D,OAAM3I,EAAK2H,GAAGk1C,MAAM,EAAG,GAAK,KAAGl0C,OAAG3I,EAAK2H,GAAGk1C,MACtD,IAGF78C,EAAK2H,GAAK65D,CACZ,CACA,OAAOD,CAAQ,GAEnB,CAEJ,CAEAD,EAASC,EACX,CACA/hE,EAAM,GAEL,CAACgf,IAEJ,MAAMhf,EAAO8pB,uBAAY,KACnBlZ,GAAYA,EAAS7M,SAAW6M,EAAS7M,OAAOgF,UAAU/B,SAC5D4J,EAAS7M,OAAS,CAChBgF,UAAW,CACT,CACEtF,KAAM,GACN21D,QAAS,GACTnwD,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACVlY,MAAO,GACP4/D,aAAc,GACdC,QAAQ,KAId7gE,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAM4/D,EACHj0D,GACAjC,IACC,GAAIkH,GAAY5H,EAAU,CACxB,MAAM3G,EAAQ4K,OAAOvD,EAAEkG,OAAOvN,OAEH,IAADi2D,EAA1B,GAAI1nD,EAAS1M,YACX0M,EAAS1M,YAAY+O,QACC,QADMqlD,EAC1B1nD,EAAS1M,mBAAW,IAAAo0D,OAAA,EAApBA,EAAsBrlD,QAAQi1B,WAAW,IAAD/+B,OAClCH,EAAe,MAAC,IAAAG,OAChB9G,IAIE,SAARsJ,GAAmB3C,EAASm5D,gBAC9Bn5D,EAAgB,MAAI,IAAM3G,GAE5B2G,EAAS2C,GAAOtJ,EAChBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,aAEZ,GAaEwxD,EAAsBA,KACtBp5D,GAAY4H,IACd5H,EAASuR,UAAYvR,EAASuR,SAC9BlZ,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,cAEZ,EA8CF,OACE2V,eAAAqI,WAAA,CAAAxtB,SAAA,GACKugE,GACDx/D,cAACk/D,GAAe,CAAAjgE,SACde,cAAC0+D,GAAgC,MAGrCt6C,eAACu6C,GAAgB,CAAA1/D,SAAA,CACfmlB,eAACg7C,GAAe,CAAAngE,SAAA,CACdmlB,eAAC66C,GAAgB,CAAAhgE,SAAA,CACfe,cAACq+D,GAAkB,CACjBr4C,QAAQ,WACR2iB,MAAOrQ,EAAe,QACtBp4B,MAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,KACd6G,QAAQ,sBAAuB,IAC/BA,QAAQ,MAAO,IAClBqnB,SAAUiuC,EAAkB,UAE9Br5C,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW/c,MAAO,CAAEub,OAAQ,QAASvlB,SAAA,CACxDe,cAAC69D,KAAU,CAAC73D,GAAG,sCAAqC/G,SAC1Dq5B,EAAe,WAETlU,eAAC87C,KAAM,CACLC,QAAQ,sCACRn6D,GAAG,gCACH9F,MAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAUowD,QACjBznC,SAAUiuC,EAAkB,WAC5B90B,MAAOrQ,EAAe,SACtB5O,WAAS,EACTtN,MACqB,MAAX,OAARvV,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,OACY,MAAd,OAARuF,QAAQ,IAARA,OAAQ,EAARA,EAAUowD,YACR/X,EAAoB,QACvBjgD,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAM,GAAEjB,SAChBe,cAAA,MAAAf,SAAKq5B,EAAe,kBAErBonC,EAAMh6D,KAAI,CAACrH,EAAM6J,IAChBlI,cAACogE,KAAQ,CAAalgE,MAAO7B,EAAK2H,GAAG/G,SAClCZ,EAAKiD,MADO4G,SAKV,OAARrB,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,OAA8B,MAAd,OAARuF,QAAQ,IAARA,OAAQ,EAARA,EAAUowD,UAC3Bj3D,cAACm+D,KAAc,CAAC/hD,OAAK,EAAAnd,SAAEigD,EAAoB,kBAW9CqgB,GACDv/D,cAACm/D,GAAc,CAAAlgE,SACbe,cAACisC,GAAoB,CACnBC,iBAAkBA,IAtGFhkC,KACxBuG,GAAYA,EAAS7M,SACvBgF,EAAUuF,OAAOjE,EAAO,GAExBhJ,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,cACzC,EAiGoC4xD,CAAqBn4D,MAC7C,YAAAlB,OAH6BkB,OA3FpCu3D,EAEHr7C,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACw6C,GAAgB,CAAA3/D,SAAA,CACfe,cAACsgE,KAAM,CACLC,UAAmB,OAAR15D,QAAQ,IAARA,MAAUuR,UACrBoX,SAAUywC,EACV78C,MAAM,YAERpjB,cAAC6+D,GAA4B,OAE/B7+D,cAAC8+D,GAAmB,CAACC,WAAoB,OAARl4D,QAAQ,IAARA,MAAUuR,UAASnZ,SACzC,OAAR4H,QAAQ,IAARA,OAAQ,EAARA,EAAUC,UAAUpB,KAAI,CAAC86D,EAAMt4D,IAE5BlI,cAACg/D,GAAuB,CAEtBxvC,SAAWjoB,GA7CFk5D,EAACvgE,EAAegI,KACjCrB,GAAY4H,IACd5H,EAASC,UAAUoB,GAAShI,EAC5BhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,cAEZ,EAsC6BgyD,CAAel5D,EAAEkG,OAAOvN,MAAOgI,GAChDhI,MAAOsgE,EACP92C,WAAS,EACTuqB,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAAC0gE,KAAS,CAACt9C,MAAM,gBAPlBlb,UAfUlI,cAAAysB,WAAA,SAsG/B,CClRO,MAAMk0C,GAAoB59C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,+CAKnCm7C,GAAqBt7C,aAAO0lB,GAAP1lB,CAAoBO,QAAAJ,aAAA,QAEzCw7C,GAAmC37C,aAAOqsB,GAAPrsB,CAAqBS,QAAAN,aAAA,QAExDy7C,GAAmB57C,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,sIAqBlC27C,IAXmB97C,aAAO0C,IAAST,MAAM,CACpDsZ,WAAW,EACX1qB,MAAM,EACNgtD,GAAI,GAH0B79C,CAI9BqC,QAAAlC,aAAA,yFAO0CH,aAAOqsB,IAAepqB,MAAM,CACtE/lB,SAAU,4BACV+mB,QAAS,YACT5C,MAAO,WAHmCL,CAI1CuC,QAAApC,aAAA,SAEW47C,GAAsB/7C,KAAOC,IAAGwC,QAAAtC,aAAA,4SAG/BlkB,GAAWA,EAAM+/D,SAAW,OAAS,SAqBtCC,GAA0Bj8C,aAAOwM,MAAWvK,MAAM,CAC7D2jB,MAAO,uBACP3iB,QAAS,YAF4BjD,CAGrC8C,QAAA3C,aAAA,uDAKWg8C,GAAkBn8C,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,kGAMjCi8C,GAAiBp8C,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,2HAqBhC+7C,IAZkBl8C,aAAO0C,IAAST,MAAM,CACnDsZ,WAAW,EACX1qB,MAAM,EACNgtD,GAAI,IAHyB79C,CAI7BmD,QAAAhD,aAAA,4BAImCH,aAAO0C,GAAP1C,CAAeoD,QAAAjD,aAAA,iCAIpBH,aAAO0C,GAAP1C,CAAeqD,QAAAlD,aAAA,+NAkBlC29C,GAAe99C,KAAOC,IAAGqD,QAAAnD,aAAA,uF,mBCpH/B,MAAMmtC,GAAS,CACpBjnB,UAAWrmB,KAAOC,IAAGC,QAAAC,aAAA,QACrB49C,aAAc/9C,KAAOoL,OAAM7K,QAAAJ,aAAA,6IAQ3B69C,cAAeh+C,KAAOC,IAAGQ,QAAAN,aAAA,0DAIzB89C,wBAAyBj+C,KAAOC,IAAGU,QAAAR,aAAA,4EAOxBg8C,GAAkBn8C,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,gGCbxC,cAAE69C,GAAa,wBAAEC,IAA4Bl1C,GAEpC,SAASm1C,GAAUjiE,GAAwB,IAADggC,EACvD,MAAM,cAAEygC,EAAa,WAAEF,GAAevgE,GAChC,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACdyI,EAAWs6D,GAAgB52C,oBAAiB,OAAR7b,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,YAAa,KAEpE,eAAE0xB,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KAAO,IAAD23C,GACzB7wD,GAA4B,QAAhB6wD,EAAC7wD,EAAS7M,cAAM,IAAA09D,GAAfA,EAAiB1uD,eAC5BnC,EAAS7M,SACX6M,EAAS7M,OAAOgP,cAAgB,CAAC,GAAI,GAAI,MAIzCnC,GAAqB,OAARA,QAAQ,IAARA,KAAU7M,SACzB6M,EAAS7M,OAAS,CAChBgF,UAAW,CACT,CACEtF,KAAM,GACNwF,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACV6+C,QAAS,GACT6I,aAAc,GACdC,QAAQ,EACR7/D,MAAO,MAIbhB,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,cACzC,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAiCJ,OALAuB,qBAAU,KACFqP,GAAcA,EAAS7M,SAAQ6M,EAAS7M,OAAOgF,UAAYA,GACjE1H,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,aAAa,GACnD,CAACA,EAAUvP,EAAU0H,IAEjBA,EAAU/B,OAAS,GAA8B,KAAjB,OAAR4J,QAAQ,IAARA,OAAQ,EAARA,EAAUnO,YACvC8jB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC0+D,GAAgC,CAC/Bz1D,MAAO,CAAEk4D,WAAY,KACrBn7C,QAAQ,KACR5C,MAAM,UAASnkB,SAEdq5B,EAAe,wBAEQ,KAAjB,OAAR7pB,QAAQ,IAARA,OAAQ,EAARA,EAAUnO,aACTN,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAlCiB1iB,IACzB,MAAMV,EAAW,CACfvF,KAAM,GACN21D,QAAS,GACT/2D,MAAO,GACPkY,UAAU,EACVtR,UAAW,CAAC,GAAI,GAAI,IACpBg5D,aAAc,GACdC,QAAQ,GAGVmB,GAAcE,GAAS,IAAIA,EAAMv6D,IAAU,EAuBR5H,SAE1Bq5B,EAAe,qBAItBt4B,cAACghE,GAAuB,CAAA/hE,SACrB2H,EAAUlB,KArDE27D,CAACx6D,EAAoBqB,IAEpClI,cAAC+gE,GAAa,CAAA9hE,SACZe,cAACq/D,GAAiC,CAChCn3D,MAAOA,EACPq3D,WAAYA,EACZE,cAAeA,KACf,GAAAz4D,OALmBH,EAAQ,KAAAG,OAAIkB,WAuDrClI,cAAAysB,WAAA,GAEJ,C,UC1GO,MAAM60C,GAAsBv+C,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,yDAIfH,aAAO2C,KAAP3C,CAAYO,QAAAJ,aAAA,kC,gBCHrC,MAAM+5C,GAAgBl6C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,uNAiBfH,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8HAUTH,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,qEAEzBlkB,GAAWA,EAAMitB,SAAW,UAAY,SAI/BlJ,aAAO0lB,GAAP1lB,CAAoBW,QAAAR,aAAA,sC,6BClC/C,MAAMq+C,GAAqBx+C,KAAOC,IAAGC,QAAAC,aAAA,6LAa/Bs+C,GAAsBz+C,KAAOC,IAAGM,QAAAJ,aAAA,wHAYhCqpB,GAAkBxpB,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,wEAMjCspB,GAAczpB,aAAO0C,IAAST,OAAOhmB,IAAK,CACrD+oB,UAAW/oB,EAAM+oB,aADQhF,CAExBW,QAAAR,aAAA,qNAkBUu+C,GAAqB1+C,aAAOypB,GAAPzpB,CAAmBqC,QAAAlC,aAAA,qCC1C9C,SAASw+C,KAAuB,IAADC,EACpC,MAAM,MAAExjE,EAAK,SAAEe,GAAamgD,MACtB,eAAE/mB,GAAmBH,MACrB,SAAE1pB,GAAatQ,GAEd0uC,EAAYC,GAAiBxiB,mBAAiB,IAW/Cs3C,EAAiBA,CAAChuD,EAAc1L,IACvB,KAAT0L,EAAoB5T,cAAAysB,WAAA,IAEtBrI,eAACq9C,GAAkB,CAAAxiE,SAAA,CAChB2U,EACD5T,cAAC+pB,KAAU,CAACE,QAASA,IAdE43C,KAC3B,GAAMpzD,GAAYA,EAAS5M,QAAS,CAClC,MAAMu8B,GAAiB,OAAR3vB,QAAQ,IAARA,OAAQ,EAARA,EAAU9L,OAAQ,GACjCy7B,EAAOjyB,OAAO01D,EAAa,GAC3BpzD,EAAS9L,KAAOy7B,EAChBl/B,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,aACzC,GAQ+Bu+B,CAAoB9kC,GAAQqlB,KAAK,QAAOtuB,SACjEe,cAAC8hE,KAAK,QAHe55D,GA4B7B,OACEkc,eAACo9C,GAAmB,CAAAviE,SAAA,CAClBmlB,eAACm9C,GAAkB,CAAAtiE,SAAA,CACjBmlB,eAAA,OAAAnlB,SAAA,CAAK,2BACqBe,cAAA,UAAAf,SAAQ,QAAY,IAAEq5B,EAAe,MAAO,IACpEt4B,cAAA,UAAAf,SAAQ,UAAc,OAExBe,cAACuvB,KAAS,CACRrvB,MAAO2sC,EACPrd,SAAWjoB,GAAMulC,EAAcvlC,EAAEkG,OAAOvN,OACxC8lB,QAAQ,WACRijB,YAAY,8BACZvf,WAAS,EACTujB,UAAY1lC,GAhCOilB,KACzB,IAAK/d,EAAU,OAEf,MAAM2vB,GAAiB,OAAR3vB,QAAQ,IAARA,OAAQ,EAARA,EAAU9L,OAAQ,GAEjC,GAAsB,KAAlB6pB,EAAM0gB,SAAoC,IAAlB1gB,EAAM0gB,QAAe,CAC5B,KAAfL,GACFzO,EAAOh2B,KAAKykC,GAEdC,EAAc,IACd,MAAM/hC,EAAQyhB,EAAMI,cAAc3tB,SAAS,GACxCA,SAAS,GACZ8L,EAAMg3D,OACNh3D,EAAMi3D,QACNvzD,EAAS9L,KAAOy7B,EAChBl/B,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,aACzC,GAgBwB0+B,CAAkB5lC,QAGxCvH,cAACusC,GAAe,CAAAttC,SACL,OAARwP,QAAQ,IAARA,GAAc,QAANkzD,EAARlzD,EAAU9L,YAAI,IAAAg/D,OAAN,EAARA,EAAgBj8D,KAAI,CAACkO,EAAMquD,IAC1BL,EAAehuD,EAAMquD,SAK/B,CC3Ee,SAASC,GAAaljE,GACnC,OACEolB,eAACglB,GAAS,CAAAnqC,SAAA,CACRe,cAACs+D,GAAe,CAACt4C,QAAQ,KAAK5C,MAAM,UAASnkB,SAAC,SAG9Ce,cAAC8rB,GAAe,CAAA7sB,SACde,cAAC0hE,GAAmB,QAI5B,CCVe,SAASzyD,KACtB,OACEmV,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACu+D,GAAc,IACfv+D,cAACihE,GAAS,CACR1B,YAAY,EACZE,eAAe,EACf0C,eAAgB,CAAC,QAGrBniE,cAACmzC,GAAa,MAGpB,C,yBCJO,SAASivB,GAAc35C,GAC5B,MAAO,IAAIA,EACb,CCtBO,MAAM45C,GACX,uFAEWC,GACX,8ECUK,SAASC,GACdC,GACyB,IAADC,EAAAC,EAAAC,EAAAC,EACxB,MAAMC,EAAcL,EAAMzvD,MAAM,MAC1B+vD,EAAwC,QAAtBL,EAAGI,EAAYE,eAAO,IAAAN,IAAI,GAE5CO,GADkC,QAAtBN,EAAGG,EAAYE,eAAO,IAAAL,IAAI,IACV3vD,MAAM,KAIxC,MAAO,CACLzR,KAJwC,QAAvBqhE,EAAGK,EAAaD,eAAO,IAAAJ,IAAI,GAK5C7yB,QAJqC,QAAvB8yB,EAAGI,EAAaD,eAAO,IAAAH,IAAI,IAItBz6D,QAAQ,IAAK,IAChC86D,cAAeH,EAAmB36D,QAAQ,IAAK,IAEnD,CAEO,SAAS+6D,GACdC,EACAv8D,GAEKA,EAAU6E,MAAMmI,GAASA,EAAKqjD,UAAYkM,EAAUrzB,UACvDlpC,EAAUwB,KAAK,CACb9G,KAAM6hE,EAAU7hE,KAChB21D,QAASkM,EAAUrzB,OACnB5vC,MAAOijE,EAAUrzB,OACjBhpC,UAAW,CAAC,GAAI,GAAI,IACpBi5D,QAAQ,EACR3nD,UAAU,EACV0nD,aAAc,IAGpB,CAEO,SAASsD,GACdC,EACAC,GAEA,MAAM1yD,EAAgBwxD,GAAmBiB,GACnCz8D,EAAYw7D,GAAqBkB,GAYvC,OAVA1yD,EAActG,SAASi5D,IACrB,MAAMC,EAAqB,OAAZD,QAAY,IAAZA,OAAY,EAAZA,EAActvC,MAAMouC,IACnC,GAAI3vD,MAAM47C,QAAQkV,GAAS,CAC6BA,EA/CpC99D,KAAK88D,GAAUD,GAAiCC,KAgDvDl4D,SAAS64D,IAClBD,GAAyBC,EAAWv8D,EAAU,GAElD,KAGKA,CACT,CAEO,SAAS68D,GACdF,EACA38D,GAEA,MAAM48D,EAAqB,OAAZD,QAAY,IAAZA,OAAY,EAAZA,EAActvC,MAAMouC,IACnC,IAAIqB,EAAuC,GACvCC,EAAiBJ,EAiBrB,OAfI7wD,MAAM47C,QAAQkV,KAChBE,EAAaF,EAAO99D,KAAK88D,IACvB,MAAMW,EAAYZ,GAAiCC,GACnDU,GAAyBC,EAAWv8D,GACpC,MAAMg9D,EAAah9D,EAAU2E,WAC1B1E,GAAaA,EAASowD,UAAYkM,EAAUrzB,SAGzC+zB,EAAU,qBAAA78D,OAAwB48D,EAAU,MAAA58D,OAAKm8D,EAAUF,cAAa,WAG9E,OAFAU,EAAiBA,EAAex7D,QAAQq6D,EAAOqB,GAExCV,CAAS,KAIb,CACLW,OAAQP,EACRI,eAAgBA,EAChBD,WAAYA,EAEhB,CAEO,SAASK,GACdC,EACAp9D,GAEA,IAAIk9D,EAASE,EAEb,MAAMR,EAASQ,EAAa/vC,MAAMquC,IAmBlC,OAjBI5vD,MAAM47C,QAAQkV,IAChBA,EAAOl5D,SAASk4D,IACd,IAAIS,EAAgBT,EAAMr6D,QAAQ,8BAA+B,IAEjE86D,EAAgBA,EAAc96D,QAAQ,aAAc,IAEpD,IAAI87D,EAAczB,EAAMvuC,MAAM,eAE9B,GAAIvhB,MAAM47C,QAAQ2V,GAAc,CAAC,IAADC,EAAAC,EAC9B,MAAMP,EAAgD,QAAtCM,EAAGD,EAAY,GAAG97D,QAAQ,QAAS,WAAG,IAAA+7D,SAAI1hE,EACpDqE,EAA0C,QAAlCs9D,EAAGv9D,EAAUkyC,SAAS8qB,WAAY,IAAAO,SAAI3hE,EAC9C4hE,EAAa,IAAAp9D,OAAOi8D,EAAa,MAAAj8D,OAAa,OAARH,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,KAAI,KAAA0F,OAAY,OAARH,QAAQ,IAARA,OAAQ,EAARA,EAAUowD,QAAO,KAC/E6M,EAASA,EAAO37D,QAAQq6D,EAAO4B,EACjC,KAIGN,CACT,CC1HO,SAASO,GAAarlE,GAC3B,MAAMslE,EAAoBC,sBAE1B,SAASC,EAAmBh4C,GAAa,IAADi4C,EACtCj4C,EAAM/e,OAAO7E,UAAUC,SAAS,2BAE9By7D,GAC0B,QAA1BG,EAACH,EAAkB5oC,eAAO,IAAA+oC,GAAzBA,EAA2B57D,SAAS2jB,EAAM/e,SAC1C+e,EAAM/e,OAAO7E,UAAUC,SAAS,2BAEjC7J,EAAM0lE,UAEV,CAUA,OARAtlE,qBAAU,KACR0I,SAAShI,iBAAiB,YAAa0kE,GAEhC,KACL18D,SAAS68D,oBAAoB,YAAaH,EAAmB,KAI1DxkE,cAAA,OAAKwmB,IAAK89C,EAAkBrlE,SAAED,EAAMC,UAC7C,C,kCCrBO,MAAM2lE,GAAsBC,aAAG5hD,QAAAC,aAAA,wXAkCzBkmB,GAAYrmB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,0BAI3B4hD,GAAsB/hD,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,qJAUrC6hD,GAA2BhiD,aAAOqsB,IAAepqB,MAAM,CAClEgB,QAAS,KACT5C,MAAO,WAF+BL,CAGtCW,QAAAR,aAAA,QAEW8hD,GAAmBjiD,KAAOC,IAAGoC,QAAAlC,aAAA,QAE7B+hD,GAAwBliD,KAAOC,IAAGsC,QAAApC,aAAA,qWAY3C8hD,GAYAJ,IAGSM,GAAmBniD,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,gRAoClCiiD,IAlBgBpiD,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,uGASdH,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,mHAShBH,KAAOC,IAAGiD,QAAA/C,aAAA,0H,2DCtGhC,SAASkiD,GAAkB99C,GAIvB,IAJwB,SACjCtR,EAAQ,cACRqvD,EAAa,yBACbC,GACMh+C,EACN,MAAM,MAAEnpB,GAAUkhD,MACZ,SAAE5wC,GAAatQ,GAChB,eAACm6B,GAAkBH,KAWxB,SAASotC,EAAiBtO,GACxB,IAAI/uD,GAAS,EAQb,OANMuG,GAAoB,OAARA,QAAQ,IAARA,KAAU7M,SAC1BsG,EAAQuG,EAAS7M,OAAOgF,UAAU2E,WAC/B1E,GAAaA,EAASowD,UAAYA,KAIhC/uD,CACT,CAEA,OACElI,cAACwlE,KAAc,CAACvvB,UAAWD,KAAM/2C,SAC/BmlB,eAACqhD,KAAK,CAACl4C,KAAK,QAAOtuB,SAAA,CACjBe,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,mBAC3Bt4B,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,oBAC3Bt4B,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,wBAG9BtiB,EAAS0tD,WAAWh+D,KAAKy9D,GACxB/+C,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAA3mE,SAAEkkE,EAAU7hE,OACtBtB,cAAC4lE,KAAS,CAAC79C,UAAS,QAAA/gB,OAAUu+D,EAAiBpC,EAAUrzB,SAAU7wC,SAChEkkE,EAAUrzB,OAAO3nC,QAAQ,IAAK,MAEjCnI,cAAC4lE,KAAS,CAAA3mE,SAAEkkE,EAAUF,gBACtBjjE,cAAC4lE,KAAS,CAAC12C,QAAQ,OAAMjwB,SACvBe,cAAC+pB,KAAU,CACT,aAAW,SACXE,QAASA,MAzCvB,SAAsBk5C,GACpB,MAAM,OAAErzB,EAAM,KAAExuC,EAAI,cAAE2hE,GAAkBE,EAClC0C,EAAY,IAAA7+D,OAAOi8D,EAAa,MAAAj8D,OAAK1F,EAAI,KAAA0F,OAAI8oC,EAAM,KACzDw1B,EACEtvD,EAAS8tD,OAAO37D,QAAQ09D,EAAc5C,GACtCoC,EAEJ,CAmCgBzyB,CAAauwB,EAAU,EACvBlkE,SAEFe,cAACmsC,KAAU,iBAQ3B,C,kCCnEO,SAAS25B,GAAoBx+C,GAOzB,IAP0B,mBACnCy+C,EAAkB,sBAClBC,EAAqB,gBACrBC,EAAe,mBACfC,EAAkB,QAClBt8C,EAAO,gBACPu8C,GACM7+C,EACN,MAAM8+C,EAAa7B,sBAEnB,SAAS8B,EAAmB75C,GAC1B,MAAM,OAAE/e,GAAW+e,EACfu5C,IAAuBE,GAI7B,SACEK,EACA74D,EACA+e,GAEA,MAAM+5C,EAAU94D,EAAOwC,wBAET,OAAdq2D,QAAc,IAAdA,KAAgB/nC,aACd,QAAQ,QAADv3B,OACCu/D,EAAQv9D,EAAC,6BAAAhC,OACDwlB,EAAMwsB,MAAK,qFAM7BktB,GAAmB,EACrB,CApBIM,CAA0BJ,EAAW1qC,QAASjuB,EAAQ+e,EAC1D,CAqBAptB,qBAAU,KACR0I,SAAShI,iBAAiB,UAAWumE,GAE9B,KACLv+D,SAAS68D,oBAAoB,UAAW0B,EAAmB,KAI/D,MAAOhoE,EAAMooE,GAAWn8C,mBAAS,IAgBjC,OAAKy7C,EAGH/lE,cAAA,OAAKwmB,IAAK4/C,EAAYr+C,UAAU,kBAAiB9oB,SAC/Ce,cAAC8zC,KAAY,CACX4yB,eAAa,EACb1gE,GAAG,iBACH9F,MAAO7B,EACPurB,QAASA,IAAM68C,EAAQpoE,GAAQ,IAC/B6pB,SAAwB,OAAfi+C,QAAe,IAAfA,OAAe,EAAfA,EAAiBzgE,KAAKoqC,GAAWA,EAAOxuC,SAAS,GAC1DqlE,cAAa,iBACbC,eAAiB7yB,GAAWA,EAC5B8yB,aAAcA,CAAC9yB,EAAMva,KAAA,IAAE,SAAEmQ,GAAUnQ,EAAA,OACjCx5B,cAAA,QAAM+nB,UAAU,yBAAwB9oB,SAAE80C,GAAc,EAE1DvkB,SAAUA,CAAChD,EAAYmkC,KACrBnkC,EAAM/kB,kBACN+kB,EAAMhlB,iBA/Bd,SACEglB,GAOA,GAFAw5C,GAAsB,GAEhBx5C,EAAM/e,OAAOq5D,YAAa,CAC9B,MAAMC,EAAev6C,EAAM/e,OAAOq5D,YAClCl9C,EAAQm9C,EACV,CACF,CAoBQC,CAAcx6C,EAAM,EAEtBvjB,MAAO,CAAEsb,MAAO,QAAS6wB,KAAM,GAC/BpB,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACR2iB,MAAM,eACNM,YAAW,4BACXgL,WAAY,IACP1b,EAAO0b,WACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo+C,KAAU,aA/BKp+C,cAAAysB,WAAA,GAwClC,CC9EA,IAAIw6C,GAAc,CAChB,CAAEjhE,GAAI,WAAY1E,KAAM,kBACxB,CAAE0E,GAAI,aAAc1E,KAAM,kBAC1B,CAAE0E,GAAI,cAAe1E,KAAM,mBAC3B,CAAE0E,GAAI,iBAAkB1E,KAAM,iBAC9B,CAAE0E,GAAI,WAAY1E,KAAM,iBAGX,SAAS4lE,GAAUloE,GAAyB,IAADmoE,EAAAC,EACxD,MAAM,MAAE74D,EAAK,SAAEgO,EAAQ,sBAAE8qD,GAA0BroE,GAC7C,MAAEb,EAAK,SAAEe,GAAamgD,MACpBlhD,MAAOmpE,GAAcvgC,MACvB,sBAAExN,GAA0BS,MAE5B,SAAEvrB,GAAatQ,GACf,eAAEm6B,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACvB,GAAIlZ,IAAaA,EAAS7M,OAAQ,CAChC,MAAMgP,EAAkBy2D,EACpB,IAAI30D,MAAM20D,GAAuB35C,KAAK,KACtC,CAAC,GAAI,GAAI,IAEbjf,EAAS7M,OAAS,CAChBgP,gBACAhK,UAAW,IAGb1H,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,IAEC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAM0pE,EAAyB,sBAE/B,SAASC,EAAqBxD,EAAsBqB,GAC9CkC,EAAuBrsD,KAAK8oD,GAkBlC,SACEA,EACAqB,GACC,IAADoC,EAAAnI,EACA0E,EAAeA,EAAa77D,QAC1Bo/D,EACA,iBAEF,MAAMzD,EAASC,GACbC,EAC2B,QADfyD,EACJ,OAARh5D,QAAQ,IAARA,GAAgB,QAAR6wD,EAAR7wD,EAAU7M,cAAM,IAAA09D,OAAR,EAARA,EAAkB14D,iBAAS,IAAA6gE,IAAI,IAGjCC,EAA2B5D,EAAQuB,EACrC,CA/BIsC,CAA8B3D,EAAcqB,GAMhD,SAAwBrB,EAAsBqB,GAAwB,IAADuC,EAAA5oC,EACnEglC,EAAeA,EAAa77D,QAAQo/D,EAAwB,YAE5D,MAAMzD,EAASC,GACbC,EAC2B,QADf4D,EACJ,OAARn5D,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,iBAAS,IAAAghE,IAAI,IAGjCF,EAA2B5D,EAAQuB,EACrC,CAbIwC,CAAe7D,EAAcqB,EAEjC,CA6BA,SAASqC,EACPI,EACAzC,GACC,IAAD0C,EACA,GAAMt5D,GAA2B,QAAnBs5D,EAAIt5D,EAAS7M,cAAM,IAAAmmE,GAAfA,EAAiBn3D,cAAe,CAAC,IAADo3D,EAChD,MAAMC,GACW,QAAfD,EAAAv5D,EAAS7M,cAAM,IAAAomE,OAAA,EAAfA,EAAiBp3D,cAAclL,KAAI,CAACsQ,EAAUvJ,IAC5CA,IAAM44D,EAAgByC,EAAkB9xD,MACrC,GAEPvH,EAAS7M,OAAOgP,cAAgBq3D,EAEhC/oE,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,CACF,CAEA,MAiCOy5D,EAAsBC,GAC3B79C,sBACK89C,EAAuBC,GAA4B/9C,mBACxD,IAGF,SAASg+C,EAAiCtyD,EAAkB9N,GAAgB,IAADqgE,EAAAC,EACzE,MAEMC,EAAQ,IAFuC,QAAlCF,EAAW,OAAR95D,QAAQ,IAARA,GAAgB,QAAR+5D,EAAR/5D,EAAU7M,cAAM,IAAA4mE,OAAR,EAARA,EAAkB53D,qBAAa,IAAA23D,IAAI,IAGzDE,EAAMvgE,GAAS8N,EAED,OAARvH,QAAQ,IAARA,KAAU7M,SACd6M,EAAS7M,OAAOgP,cAAgB63D,EAChCh6D,EAAS7M,OAAOgF,UAAY6H,EAAS7M,OAAOgF,UAAUuF,OAAOjE,EAAO,GAEpEhJ,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,CAEA,MAAQvP,SAAUsvB,GAAgBruB,KAC5B,QAAE0c,GAAYyqD,GACboB,EAAuBC,GAA4Br+C,sBACnDy7C,EAAoBC,GAAyB17C,oBAAS,IACtD27C,EAAiBC,GAAsB57C,oBAAS,IAChDs+C,EAAcC,GAAmBv+C,sBACjC67C,EAAiB2C,GAAsBx+C,mBAE5C,IAEF,SAASy+C,EAAev8C,GAAa,IAADw8C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClCj9C,EAAMhlB,iBACN,IAAIw2C,EAAO,GAEX,MAAM0rB,EAAkB,QAATV,EAAGrpE,cAAM,IAAAqpE,OAAA,EAANA,EAAQW,eAEpBC,EAAmB,OAATF,QAAS,IAATA,GAAqB,QAAZT,EAATS,EAAWG,kBAAU,IAAAZ,GAAe,QAAfC,EAArBD,EAAuBhoC,qBAAa,IAAAioC,OAA3B,EAATA,EAAsCU,QAChDE,EAAwB,OAATJ,QAAS,IAATA,GAAoB,QAAXP,EAATO,EAAWK,iBAAS,IAAAZ,GAAe,QAAfC,EAApBD,EAAsBloC,qBAAa,IAAAmoC,OAA1B,EAATA,EAAqCQ,QAE1D5rB,EAAmC,QAA/BqrB,EAAY,OAATK,QAAS,IAATA,OAAS,EAATA,EAAWx4D,WAAWR,cAAM,IAAA24D,IAAI,GACvC,MAAMW,IAAgBhsB,IAAS+nB,EACzBkE,IACO,OAATP,QAAS,IAATA,GAAoB,QAAXJ,EAATI,EAAWK,iBAAS,IAAAT,IAApBA,EAAsB94B,cACf,OAATk5B,QAAS,IAATA,GAAqB,QAAZH,EAATG,EAAWG,kBAAU,IAAAN,GAAY,QAAZC,EAArBD,EAAuB/4B,kBAAU,IAAAg5B,OAAxB,EAATA,EAAmCU,YACxB,OAATR,QAAS,IAATA,GAAoB,QAAXD,EAATC,EAAWK,iBAAS,IAAAN,OAAX,EAATA,EAAsBj5B,aAMtBw5B,IAHU,SAAZJ,GACa,SAAZA,GAAuC,SAAjBE,IAA4BG,KAGnDjE,GAAsB,GACtBE,GAAmB,GACnB2C,EAAgB7qB,GAEpB,CAEA,MAAMmsB,EAAa5F,sBA0KnB,SAAS6F,EACPC,GAEA,IAAIX,EACAY,EAGAC,EACAjjE,EAFAuH,EAAW,EA0Bf,OAtBIlP,OAAOgqE,eACTD,EAAY/pE,OAAOgqE,eACfD,GAAaA,EAAUc,aACzBF,EAAQZ,EAAUe,WAAW,GAE7BF,EAAiB73D,MAAMg4D,KAAKL,EAAYM,YAAYp/D,WACjDq/D,GACCA,EAAUC,YAAcP,EAAMQ,wBAAwBD,aAGlC,IAApBN,IACFA,EAkBR,SACE9hD,EACAnhB,GAEA,OAAOoL,MAAMgjB,UAAUnqB,UAAUw/D,KAAKtiD,GAAQ7U,GACrCA,IAAStM,GAEpB,CAzByB0jE,CACfX,EAAYM,WACZL,EAAMQ,wBAAwBt6B,YAGhClpC,EAAUgjE,EAAMQ,wBAAwBt6B,YAE1C3hC,EAAWy7D,EAAMW,YAId,CACLp8D,WACA07D,iBACAjjE,UAEJ,CA7MAlI,qBAAU,KACR,MAAM8rE,EAAiBf,EAAWzuC,QAGlC,OAFc,OAAdwvC,QAAc,IAAdA,KAAgBprE,iBAAiB,UAAWipE,GAErC,KACS,OAAdmC,QAAc,IAAdA,KAAgBvG,oBAAoB,UAAWoE,EAAe,CAC/D,IAuJH3pE,qBAAU,MAzBVC,iBACE,IAAI8rE,EAAUtuD,GAAWN,EAEzB,GAAI4uD,EAAS,CACX,IAAIhkE,QAAe4mC,GAAY,CAAExxB,SAAU4uD,GAAW,IAAM38C,GAC5D,GAAIrnB,EAAO+U,SACH/U,EAAO4U,KAAM,CACjB,MAAM2rB,EAAWvgC,EAAO4U,KAClBqvD,EAAgB,IACjBnE,MACAv/B,EAAShiC,KAAKoqC,IAAM,CACrB9pC,GAAI8pC,EAAOxuC,KACXA,KAAMwuC,EAAOxuC,UAEfmyB,MAAK,SAAUjnB,EAAGuH,GAClB,OAAOvH,EAAElL,KAAOyS,EAAEzS,KAAO,EAAIyS,EAAEzS,KAAOkL,EAAElL,MAAQ,EAAI,CACtD,IACAwnE,EAAmBsC,EACrB,CAEJ,MACEtC,EAAmB7B,GAEvB,CAGEoE,EAAmB,GAElB,CAACxuD,IAwDJ,MAAMyuD,EAAqBvwC,iBACzB,IAGF,SAASwwC,EAAgB/xC,EAEvB0H,GACC,IAFD,SAAEryB,EAAQ,eAAE07D,EAAc,QAAEjjE,GAAkCkyB,EAG9D,IACE,MAAM8wC,EAAQxiE,SAAS0jE,cACjB9B,EAAY/pE,OAAOgqE,eAGnB8B,EACsB,kBAAnBlB,GAA+BA,GAAkB,EACpDmB,GAAqC,IAApBnB,IAA0BkB,EAEjD,GAL+B/B,GAAaxoC,EAKhB,CAC1B,IAAIyqC,EAAiBzqC,EAErB,GAAIuqC,EACF,GAAMnkE,EAAS,CACb,MAAMqN,EAAQusB,EAAQkb,iBAAiB,QACjCl0C,EAAQwK,MAAMg4D,KAAK/1D,GAAOpJ,WAAWd,GAClCA,EAAKmhE,YAActkE,EAAQw/D,cAG9BnyD,EAAMzM,IAAUyM,EAAMzM,GAAOyiE,aACjCL,EAAMuB,SAASl3D,EAAMzM,GAAOyiE,WAAW,GAAI97D,GAC3C88D,EAAiBh3D,EAAMzM,GAE3B,KAAO,CACL,MAAM0iE,EAAY1pC,EAAQypC,WAAWJ,GAErCD,EAAMuB,SAASjB,EAAW/7D,EAC5B,MACS68D,GACTpB,EAAMuB,SAAS3qC,EAAQypC,WAAW,GAAI97D,GAGxCy7D,EAAMwB,UAAS,GACfpC,EAAUqC,kBACVrC,EAAUsC,SAAS1B,GACnBt/D,QAAQC,IAAIy+D,GACZiC,EAAe3J,OACjB,CACF,CAAE,MAAO5lD,GACPpR,QAAQC,IAAI,WAAYmR,EAAMnV,QAChC,CACF,CAEA,OACEmd,eAACglB,GAAS,CAAAnqC,SAAA,CACRmlB,eAAC0gD,GAAmB,CAAA7lE,SAAA,CAClBe,cAAC+kE,GAAwB,CAAA9lE,SACtBsP,GAAS+pB,EAAe,sBAE1BiB,EAAsB,CACrBN,QAASquC,EAAUvqD,aAAe,GAClCqc,MAAOkuC,EAAUzqD,SAAW,GAC5Bze,OAAQ,CAAC,iBAET4B,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QA7WiBgiD,KACV,IAADC,EAAVz9D,IACiB,QAAnBy9D,EAAIz9D,EAAS7M,cAAM,IAAAsqE,GAAfA,EAAiBt7D,eACnBnC,EAAS7M,OAAOgP,cAAcxI,KAAK,IAGrClJ,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,EA+VoCxP,SAE3Bq5B,EAAe,qBAItBt4B,cAACilE,GAAqB,CAACj/D,GAAG,oBAAoBwgB,IAAK2jD,EAAWlrE,SACnD,OAARwP,QAAQ,IAARA,GAAgB,QAAR04D,EAAR14D,EAAU7M,cAAM,IAAAulE,GAAe,QAAfC,EAAhBD,EAAkBv2D,qBAAa,IAAAw2D,OAAvB,EAARA,EAAiC1hE,KAAI,CAACsQ,EAAUqvD,KAAmB,IAAD8G,EAAAC,EACjE,MAAM7I,EAAeE,GACnBztD,EAC2B,QADnBm2D,EACA,OAAR19D,QAAQ,IAARA,GAAgB,QAAR29D,EAAR39D,EAAU7M,cAAM,IAAAwqE,OAAR,EAARA,EAAkBxlE,iBAAS,IAAAulE,IAAI,IAGjC,OACE/nD,eAAC4gD,GAAgB,CAAA/lE,SAAA,CACfmlB,eAAC8gD,GAAgB,CAEfmH,QAASA,KACPhE,EAAyB,IACzB,MAAMI,EAAQ,GACdA,EAAMpD,IAAiB,EACvBgD,EAAyBI,EAAM,EAC/BxpE,SAAA,CAEFe,cAACssE,KAAe,CAACvkD,UAAU,oBAC3B/nB,cAACmlE,GAAa,CACZ,YAAU,WACV,iBAAgBiD,EAAsB/C,GACtCkH,wBAAyB,CACvBC,OAAQjJ,EAAaI,gBAEvB8I,gBAAiBlzC,EAAsB,CACrCN,QAASquC,EAAUvqD,aAAe,GAClCqc,MAAOkuC,EAAUzqD,SAAW,GAC5Bze,OAAQ,CAAC,gBAEX6rB,QAASA,IAAM0+C,EAAyBtD,GACxC7+C,IAAMkmD,IACEA,IACJpB,EAAmB5vC,QAAQ2pC,GAAiBqH,EAC9C,EAEFC,QAAUplE,IACRA,EAAEC,iBACF,IAAIs8D,GAAUv8D,EAAEqlE,eAAiBrlE,GAAGslE,cAAcC,QAChD,QAEFhJ,EAASA,EAAO37D,QAAQ,gBAAiB,IACzCu/D,EAA2B5D,EAAQuB,EAAc,EAEnD0H,QAAUvgD,IACJ07C,GACF8E,aAAa9E,GAGf,MAAMt7C,EAAgBJ,EAAMI,cAC5B,IAAMiS,UAAWmlC,GAAiBp3C,EAE9BqgD,EACF7C,EAAkCx9C,GAEpC,MAAMsU,EAAUoqC,EAAmB5vC,QAAQ2pC,GAE3C,GAAIkC,EAAuBrsD,KAAK8oD,GAC9BwD,EAAqBxD,EAAcqB,GACnCkG,EAAiB0B,EAAe/rC,OAC3B,CACL,MAAMgsC,EAAUtjE,YAAW,KACzB49D,EAAqBxD,EAAcqB,GACnCkG,EAAiB0B,EAAe/rC,EAAQ,GACvC,KACHinC,EAAwB+E,EAC1B,KAGH3zC,EAAsB,CACrBN,QAASquC,EAAUvqD,aAAe,GAClCqc,MAAOkuC,EAAUzqD,SAAW,GAC5Bze,OAAQ,CAAC,iBAET4B,cAAC+pB,KAAU,CACT,aAAW,SACXE,QAASA,IA/cA/hB,KACzB,GAAMuG,GAAYA,EAAS7M,OAAQ,CAAC,IAADurE,EACjC,MAAMC,GACyB,QAA7BD,EAAA1+D,EAAS7M,OAAOgP,qBAAa,IAAAu8D,OAAA,EAA7BA,EAA+BpnE,QAAO,CAACyP,EAAG/I,IAAMA,IAAMvE,MAAU,GAClEuG,EAAS7M,OAAOgP,cAAgBw8D,EAChCluE,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAkc+B4+D,CAAkBhI,GAAepmE,SAEhDe,cAACmsC,KAAU,QApEVk5B,GAyEN+C,EAAsB/C,IACrBrlE,cAAColE,GAAkB,CACjBpvD,SAAUutD,EACV8B,cAAeA,EACfC,yBAA0BgD,MAGb,OAKvBtpE,EAAMsuE,mBACNttE,cAACqkE,GAAY,CACXK,SAAUA,KACJqB,GACFC,GAAsB,EACxB,EACA/mE,SAEFe,cAAC8lE,GAAoB,CACnBC,mBAAoBA,EACpBC,sBAAuBA,EACvBC,gBAAiBA,EACjBC,mBAAoBA,EACpBt8C,QAnYV,SAA8Bm9C,GAI5B,GAFmC,qBAA1B2B,KAA2CE,EAEvB,CAAC,IAAD2E,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3B,MACM53D,GAD+C,QAAlCu3D,EAAW,OAAR9+D,QAAQ,IAARA,GAAgB,QAAR++D,EAAR/+D,EAAU7M,cAAM,IAAA4rE,OAAR,EAARA,EAAkB58D,qBAAa,IAAA28D,IAAI,IAC1B7E,GACzBnF,EAAeE,GACnBztD,EAC2B,QADnBy3D,EACA,OAARh/D,QAAQ,IAARA,GAAgB,QAARi/D,EAARj/D,EAAU7M,cAAM,IAAA8rE,OAAR,EAARA,EAAkB9mE,iBAAS,IAAA6mE,IAAI,IAGjC,IAAII,EAAgB73D,EAEpB,MAAM83D,EAAuB,GAE7BvK,EAAaG,WAAWp5D,SAAS64D,IAC/B2K,EAAc1lE,KAAK+6D,GAEnB,MAAM,OAAErzB,EAAM,KAAExuC,EAAI,cAAE2hE,GAAkBE,EAClC0C,EAAY,IAAA7+D,OAAOi8D,EAAa,MAAAj8D,OAAK1F,EAAI,KAAA0F,OAAI8oC,EAAM,KACzD+9B,EAAgBA,EAAc1lE,QAAQ09D,EAAc5C,EAAc,IAGpE,MAAM8K,EAAgBD,EAAc/nE,QACjCo9D,KAA2B,OAAZyF,QAAY,IAAZA,KAAcroE,SAAS4iE,EAAUF,kBAG7C+K,EAoCV,SAAmCjH,GAAuB,IAADkH,EAAAC,EACvD,IAAIF,GAA0B,EAE9B,MAAMG,EAAgD,QAA9BF,EAAW,OAARx/D,QAAQ,IAARA,GAAgB,QAARy/D,EAARz/D,EAAU7M,cAAM,IAAAssE,OAAR,EAARA,EAAkBtnE,iBAAS,IAAAqnE,IAAI,GACpDG,EAAsCD,EAAmB1iE,MAC5D5E,GAAaA,EAASowD,QAAQ12D,SAASwmE,KAG1C,GAAIqH,EACFJ,EAAyBG,EAAmB5iE,WAAW1E,GACrDA,EAASowD,QAAQ12D,SAASwmE,SAEvB,CACL,MAAMsH,EAAiBlI,EAAgBv7D,MACpC/D,GAAaA,EAASvF,OAASylE,IAG5BuH,EAAoBH,EAAmBvjE,MAAM/D,IAAQ,IAAA0nE,EAAA,OACzD1nE,EAASowD,QAAQ12D,SAA2B,QAAnBguE,EAAe,OAAdF,QAAc,IAAdA,OAAc,EAAdA,EAAgBroE,UAAE,IAAAuoE,IAAI,GAAG,IAGrD,GAAMD,EACJN,EAAyBG,EAAmB5iE,WACzC1E,GAAaA,EAASowD,WAA0B,OAAdoX,QAAc,IAAdA,OAAc,EAAdA,EAAgBroE,WAEhD,GAAMqoE,EAAgB,CAC3B,MAAMxnE,ELpNP,SAA+BxI,GACpC,GAAgC,MAA5BA,EAAK2H,GAAGmN,UAAU,EAAG,GAAY,CAEnC,IAAI0sD,EADU,GAAA74D,OAAM3I,EAAK2H,GAAGk1C,MAAM,EAAG,GAAK,KAAGl0C,OAAG3I,EAAK2H,GAAGk1C,MAAM,IAE9D78C,EAAK2H,GAAK65D,CACZ,CACA,OAAOxhE,CACT,CK6MyBmwE,CAAsBH,GACjCI,EAAiB5nE,EAASb,GAEhCmoE,EAAmB/lE,KAAK,CACtB9G,KAAMuF,EAASvF,KACf21D,QAASwX,EACTvuE,MAAO,IAAM2G,EAASvF,KACtBwF,UAAW,CAAC,GAAI,GAAI,IACpBi5D,QAAQ,EACR3nD,UAAU,EACV0nD,aAAc,KAGhBkO,EAAyBG,EAAmBtpE,OAAS,CACvD,CACF,CAEM4J,GAAsB,OAARA,QAAQ,IAARA,KAAU7M,SAC5B6M,EAAS7M,OAAOgF,UAAYunE,EAE5BjvE,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAMX,OAAOu/D,CACT,CA7FmCU,CAA0B3H,GAEnDlgE,GADuC,QAA9B8mE,EAAW,OAARl/D,QAAQ,IAARA,GAAgB,QAARm/D,EAARn/D,EAAU7M,cAAM,IAAAgsE,OAAR,EAARA,EAAkBhnE,iBAAS,IAAA+mE,IAAI,IACtBK,GAErBnnE,GACJknE,EAAc3lE,KAAK,CACjB9G,KAAMuF,EAASvF,KACfwuC,OAAQjpC,EAASowD,QACjBgM,cAAe2F,IAGnBmF,EAAczjE,SAAQgd,IAAsC,IAArC,OAAEwoB,EAAM,KAAExuC,EAAI,cAAE2hE,GAAe37C,EACpDumD,EAAgBA,EAAc1lE,QAC5B86D,EAAc,IAADj8D,OACTi8D,EAAa,MAAAj8D,OAAK1F,EAAI,KAAA0F,OAAI8oC,EAAM,KACrC,IAEGrhC,GAAsB,OAARA,QAAQ,IAARA,KAAU7M,SACvB8Q,MAAM47C,QAAQ7/C,EAAS7M,OAAOgP,eAGjCnC,EAAS7M,OAAOgP,cAAc83D,GAAyBmF,EAFvDp/D,EAAS7M,OAAOgP,cAAgB,CAACi9D,GAKnC3uE,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,CACF,EAsUU03D,gBAAiBA,QAM7B,C,4EC5nBA,MAAMwI,GAAcC,KAiBb,SAASC,GAAQC,GACtB,MACMC,EADqBH,GACKE,GAChC,OAAOC,EACL/uE,cAAC+uE,EAAY,CAAC/hD,SAAS,UAAU5J,MAAM,YAEvCpjB,cAAC2uE,GAAW,CAAC3hD,SAAS,UAAU5J,MAAM,WAE1C,CCXA,MAAM0xB,GAAYC,cAAW,IAC3BC,aAAa,CACXC,KAAM,CACJ/kB,gBAAiB,eAEnB8+C,KAAM,CACJ9+C,gBAAiB,cACjB++C,YAAa,EACbC,aAAc,SAwFLC,I,qBAAAA,GAlFbnwE,IAEA,MAAM,SAAE8vE,EAAQ,QAAE5mD,GAAYlpB,GAEvBmsB,EAAUC,GAAe9E,IAAMgE,SAA6B,MAE7DwrB,EAAUhB,KAEhB,SAASs6B,EAAmB5iD,GAC1BpB,EAAYD,EAAW,KAAOqB,EAAMI,cACtC,CAEA,SAASyiD,IACPjkD,EAAY,KACd,CAEA,SAASkkD,EAAcv7B,EAAyB7rC,GAC9C,OACElI,cAACogE,KAAQ,CAEPn2C,QAASA,KAE4B,kBAArB,OAALjrB,QAAK,IAALA,OAAK,EAALA,EAAOuwE,iBAC0B,oBAAxB,OAANx7B,QAAM,IAANA,OAAM,EAANA,EAAQy7B,mBAEZ,OAANz7B,QAAM,IAANA,KAAQy7B,kBAAuB,OAALxwE,QAAK,IAALA,OAAK,EAALA,EAAOuwE,gBAElB,OAANx7B,QAAM,IAANA,KAAQ31C,SAAc,OAAN21C,QAAM,IAANA,KAAQ31C,SAAQ,EAE7C2pB,UAAW+tB,EAAQk5B,KAAK/vE,SAExBe,cAAC8uB,KAAO,CAACvgB,MAAOwlC,EAAOpL,MAAO3Z,UAAU,OAAM/vB,SAC5CmlB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC+pB,KAAU,CACT3G,MAAM,UACN,YAAW+H,EAAW,sBAAmB3oB,EACzC,gBAAc,OACdynB,QAASmlD,EAAmBnwE,SAE3B80C,EAAO+6B,UAAYD,GAAQ96B,EAAO+6B,YAEpC/6B,EAAOpL,YAtBPzgC,EA2BX,CAEA,OACEkc,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC+pB,KAAU,CACT3G,MAAM,UACN,YAAW+H,EAAW,sBAAmB3oB,EACzC,gBAAc,OACdynB,QAASmlD,EAAmBnwE,SAE3B4vE,GAAQC,KAEX9uE,cAACyvE,KAAM,CACLjoD,OAAQ2D,EACRA,SAAUA,EACVukD,YAAU,EACVhJ,eAAa,EACb13C,UAAU,SACV/lB,MAAO,CAAEq3B,OAAQ,KAAMrhC,SAEtBqoB,IAAA,IAAC,gBAAEqoD,EAAe,UAAE3gD,GAAW1H,EAAA,OAC9BtnB,cAAC4vE,KAAI,IAAKD,EAAiB1mE,MAAO,CAAEmkB,gBAAiB,eAAgBnuB,SACnEe,cAACg2C,KAAK,CAAChwC,GAAG,iBAAiB+hB,UAAW+tB,EAAQb,KAAKh2C,SACjDe,cAAC6vE,KAAiB,CAACC,YAAaT,EAAoBpwE,SAClDe,cAAC+vE,KAAQ,CAAC9mE,MAAO,CAAEinB,gBAAiB,QAAShB,QAAS,GAAIjwB,SACvDipB,EAAQxiB,IAAI4pE,UAId,MAGV,E,QC1GA,MAAM3pD,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mDAMjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8GAOjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAQ,MADgBjD,CAExBS,QAAAN,aAAA,4BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,mSAiB7BgtD,GAAentD,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,uKAW3BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,8FAO9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,2BC3BjC4xB,GAAYC,cAAYvN,GAC5BwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAGd/Y,MAAO,CACL+Y,WAAY,eAKZ8B,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAASqxE,GACtBrxE,GACC,IAADggC,EACA,MAAM8W,EAAUhB,MACV,MAAE32C,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,EACf0I,EAAmB,OAAR4H,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,UAAU5H,EAAMkJ,OAMnD,MAAMooE,EACH9mE,GAAmCjC,IAClC,GAAIkH,GAAY5H,EAAU,CACxB,MAAM3G,EAAQ4K,OAAOvD,EAAEkG,OAAOvN,OAC9B,GAAY,UAARsJ,EAAiB,CACnB,MAAMq2D,EAAgBryD,EAAiBjG,EAAGiC,GAAK,GAC/C3C,EAASm5D,eAAgB,EACzBn5D,EAAS2C,GAAO,IAAMq2D,EAAc13D,QAAQ,IAAK,GACnD,MACEtB,EAAS2C,GAAOtJ,EAElBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,aAEZ,GAaJ,OAAKzP,EAAMwoB,KAGTxnB,cAACwpB,KAAM,CACLhC,MAAM,EACNiC,oBAAqB7D,GACrB+D,SAAS,KACTD,WAAW,EACX,kBAAgB,2BAChB,mBAAiB,iCAAgCzqB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SAAC,8BACxCe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAjDV,WACEjrB,EAAMuxE,kBACR,EAgDU,aAAW,QAAOtxE,SAElBe,cAACkqB,KAAS,SAGdlqB,cAACiwE,GAAc,CAAAhxE,SACbmlB,eAACw5C,KAAW,CAACl0C,WAAS,EAAC1D,QAAQ,WAAU/mB,SAAA,CACvCe,cAAC69D,KAAU,CAACC,QAAQ,2BAA0B7+D,SAAC,mBAG/Ce,cAAC+9D,KAAa,CACZ/3D,GAAG,2BACH9F,OAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAU3G,QAAS,GAC1BsvB,SAAU8gD,EAAmB,SAC7BpS,WAAY,IACZt1B,WAAY,CACV3/B,MAAO,CAAE6a,WAAY,gBAK7B9jB,cAACiwE,GAAc,CAAAhxE,SACbmlB,eAACw5C,KAAW,CAACl0C,WAAS,EAAC1D,QAAQ,WAAU/mB,SAAA,CACvCe,cAAC69D,KAAU,CAACC,QAAQ,kCAAiC7+D,SAAC,oBAGtDe,cAAC+9D,KAAa,CACZ/3D,GAAG,kCACH9F,OAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAUi5D,eAAgB,GACjCtwC,SAAU8gD,EAAmB,gBAC7BpS,WAAY,IACZt1B,WAAY,CACV3/B,MAAO,CAAE6a,WAAY,gBAK7B9jB,cAACkwE,GAAY,CAAAjxE,SACXe,cAACgvC,KAAgB,CACfC,QACEjvC,cAACsgE,KAAM,CACLC,UAAmB,OAAR15D,QAAQ,IAARA,MAAUk5D,QACrBvwC,SAtE0BghD,KAClC/hE,GAAY5H,IACdA,EAAiB,QAAKA,EAAiB,OACvC3H,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,cAEZ,EAgEYnN,KAAK,UACL8hB,MAAM,YAGVulB,MAAM,+BAGV3oC,cAACmwE,GAAe,CAAAlxE,SACde,cAAC4kB,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAASA,IAAMjrB,EAAMuxE,mBAAmBtxE,SACzC,mCA1Eee,cAAAysB,WAAA,GAiF1B,CC/HA,MAAMikD,GAAgB,CACpBC,kBAAoB9pE,GAAgB,cAAAG,OACpBH,EAAQ,6BACxB+pE,WAAY,iEACZC,UAAW,iDAGPC,GAAuB,CAC3BxvE,KAAM,GACN21D,QAAS,GACT/2D,MAAO,GACP8/D,eAAe,EACfl5D,UAAW,CAAC,IACZg5D,aAAc,GACdC,QAAQ,EACR3nD,UAAU,GAGG,SAAS24D,GAAgC/xE,GAAmB,IAADggC,EAAAsgC,EACxE,MAAM,QAAEziD,GAAYkqB,KAAU5oC,OACxB,MAAEA,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACbe,SAAUsvB,GAAgBruB,KAE5B,MAAE+H,EAAK,UAAEs3D,EAAS,cAAEC,GAAkBzgE,EACtC4H,GAAoB,OAAR6H,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,YAAa,CAC/C,IACKkqE,KAGDjqE,EAAmB,OAAR4H,QAAQ,IAARA,GAAgB,QAAR6wD,EAAR7wD,EAAU7M,cAAM,IAAA09D,OAAR,EAARA,EAAkB14D,UAAUsB,IAEtCimE,EAAoB6C,GAAuB1mD,mBAAS1jB,IACpD84D,EAAOC,GAAYr1C,mBAAyC,KAC5D2mD,EAAmBC,GAAwB5mD,oBAAkB,GAEpElrB,qBAAU,MACRC,iBACE,IAAIugE,EAAW,CACb,CAAE55D,GAAI,WAAY1E,KAAM,kBACxB,CAAE0E,GAAI,aAAc1E,KAAM,kBAC1B,CAAE0E,GAAI,cAAe1E,KAAM,mBAC3B,CAAE0E,GAAI,iBAAkB1E,KAAM,iBAC9B,CAAE0E,GAAI,WAAY1E,KAAM,iBAG1B,GAAIub,EAAS,CACX,IAAI1V,QAAe4mC,GAAY,CAAExxB,SAAUM,GAAW2R,GACtD,GAAIrnB,EAAO+U,SACH/U,EAAO4U,KAAM,CACjB,MAAM2rB,EAAWvgC,EAAO4U,KACxB6jD,EAAW,IACNA,KACAl4B,EAAShiC,KAAKoqC,IAAM,CACrB9pC,GAAI8pC,EAAOxuC,KACXA,KAAMwuC,EAAOxuC,UAEfmyB,MAAK,SAAUjnB,EAAGuH,GAClB,OAAOvH,EAAElL,KAAOyS,EAAEzS,KAAO,EAAIyS,EAAEzS,KAAOkL,EAAElL,MAAQ,EAAI,CACtD,IAEAs+D,EAASl6D,KAAKrH,IACZ,GAAgC,MAA5BA,EAAK2H,GAAGmN,UAAU,EAAG,GAAY,CAInC,IAAI0sD,EAHU,GAAA74D,OAAM3I,EAAK2H,GAAGk1C,MAAM,EAAG,GAAK,KAAGl0C,OAAG3I,EAAK2H,GAAGk1C,MACtD,IAGF78C,EAAK2H,GAAK65D,CACZ,CACA,OAAOD,CAAQ,GAEnB,CAEJ,CACAD,EAASC,EACX,CACA/hE,EAAM,GAEL,CAACgf,IAEJ,MAAMhf,EAAO8pB,uBAAY,KACvB,GAAIlZ,GAAYA,EAAS7M,OAAQ,CAAC,IAADgmE,EAAAG,EAAAoF,EAAAnF,EAC/B,MAAMmJ,EAA6C,QAA7BvJ,EAAkB,QAAlBG,EAAGt5D,EAAS7M,cAAM,IAAAmmE,OAAA,EAAfA,EAAiBnhE,iBAAS,IAAAghE,IAAI,GAEjDhhE,EAAYw8D,GACc,QADe+J,EAC9B,QAD8BnF,EAC7Cv5D,EAAS7M,cAAM,IAAAomE,OAAA,EAAfA,EAAiBp3D,qBAAa,IAAAu8D,IAAI,GAClCgE,GAGFH,EAAoBpqE,EACtB,IACC,CAAC6H,IAEJrP,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAM4/D,EACJA,CAACj0D,EAAmCtB,IACnCX,IACC,GAAIkH,GAAY5H,EAAU,CAAC,IAADuqE,EAAAlF,EACxB,MAAMhsE,EAA8B,QAAzBkxE,EAAGtmE,OAAOvD,EAAEkG,OAAOvN,cAAM,IAAAkxE,IAAI,iBAExC,IAAIvR,EAAgBryD,EAAiBjG,EAAGiC,GAAK,GAC7C,MAAM6nE,EAA2B,OAAR5iE,QAAQ,IAARA,GAAgB,QAARy9D,EAARz9D,EAAU7M,cAAM,IAAAsqE,OAAR,EAARA,EAAkBtlE,UAAUsB,GAErD,GAAY,YAARsB,GAAuB6nE,EAAkB,CAC3C,MAAMt7D,EAAS,IAAIhJ,OAAOskE,EAAiBpa,QAAS,MAEb,IAADsR,EAAAgF,EAAtC,GAAM9+D,GAAsB,OAARA,QAAQ,IAARA,KAAU7M,OAC5B6M,EAAS7M,OAAOgP,cAGb,QAH0B23D,EACE,QADFgF,EAC3B9+D,EAAS7M,OAAOgP,qBAAa,IAAA28D,OAAA,EAA7BA,EAA+B7nE,KAAKsQ,GAClCA,EAAS7N,QAAQ4N,EAAQ8pD,YAC1B,IAAA0I,IAAI,EAEX,KAAmB,SAAR/+D,GAAmB2kE,EAAmBjmE,GAAO83D,gBACtDmO,EAAmBjmE,GAAc,MAAI,IAAMhI,GAE7CiuE,EAAmBjmE,GAAOsB,GAAOq2D,EAEjC3gE,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,aAEZ,GA2BE4xD,EAAwBn4D,IAAmB,IAADopE,EAAA9I,EAAA+I,EAC9C,MAAMF,EAAmBzqE,EAAUsB,IAIhC,QAHYopE,EACL,OAAR7iE,QAAQ,IAARA,GAAgB,QAAR+5D,EAAR/5D,EAAU7M,cAAM,IAAA4mE,GAAe,QAAf+I,EAAhB/I,EAAkB53D,qBAAa,IAAA2gE,OAAvB,EAARA,EAAiC7rE,KAAKsQ,GACpCytD,GAA+BztD,EAAUpP,YAC1C,IAAA0qE,IAAI,IAEGhnE,SAAQ,CAAC0L,EAAUqvD,KACRrvD,EAAS0tD,WAAW39D,QACpCo9D,GAAcA,EAAUrzB,SAAWuhC,EAAiBpa,UAG5C3sD,SAAS64D,IAClB,MAAM,OAAErzB,EAAM,KAAExuC,EAAI,cAAE2hE,GAAkBE,EAClC0C,EAAY,IAAA7+D,OAAOi8D,EAAa,MAAAj8D,OAAK1F,EAAI,KAAA0F,OAAI8oC,EAAM,MAe/D,SAA0C95B,EAAkB9N,GAAgB,IAADspE,EAAAhE,EACzE,MAEM/E,EAAQ,IAFuC,QAAlC+I,EAAW,OAAR/iE,QAAQ,IAARA,GAAgB,QAAR++D,EAAR/+D,EAAU7M,cAAM,IAAA4rE,OAAR,EAARA,EAAkB58D,qBAAa,IAAA4gE,IAAI,IAGzD/I,EAAMvgE,GAAS8N,EAED,OAARvH,QAAQ,IAARA,MAAU7M,SACd6M,EAAS7M,OAAOgP,cAAgB63D,EAEhCvpE,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,CA/BM65D,CACEtyD,EAAS8tD,OAAO37D,QAAQ09D,EAAc5C,GACtCoC,EACD,GACD,IAGJz+D,EAAUuF,OAAOjE,EAAO,GACxB8oE,EAAoBpqE,GAEpB1H,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,aAAa,EAuBtD,MAAMyZ,EAA6B,CACjC,CACEygB,MAAO,cACPmmC,SAAU,WACVU,kBAaJ,SAAmBiC,GACjBC,EAAyBD,GACzBP,GAAqB,EACvB,GAdE,CACEvoC,MAAO,WACPmmC,SAAU,SACV1wE,OAAQA,KACN8yE,GAAqB,EAAM,KAK1BS,EAAuBD,GAA4BpnD,qBAO1D,MAAMsnD,EAAmBC,IAAsB,IAADC,EAAAC,EAC5C,OAAKtS,EAEDz/D,cAAC8+D,GAAmB,CAACC,WAA+B,QAApB+S,EAAClrE,EAAUirE,UAAS,IAAAC,IAAnBA,EAAqB15D,UAASnZ,SACzC,QADyC8yE,EAC5DnrE,EAAUirE,UAAS,IAAAE,OAAA,EAAnBA,EAAqBjrE,UAAUpB,KAAI,CAAC86D,EAAMt4D,IAEvClI,cAACg/D,GAAuB,CAEtBxvC,SAAWjoB,GAvGFk5D,EAACvgE,EAAe2xE,EAAkB3pE,KACnDrB,GAAY4H,IACd7H,EAAUirE,GAAU/qE,UAAUoB,GAAShI,EACvChB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,cAEZ,EAgG6BgyD,CAAel5D,EAAEkG,OAAOvN,MAAO2xE,EAAU3pE,GAC1DhI,MAAOsgE,EACP92C,WAAS,EACTuqB,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAAC0gE,KAAS,CAACt9C,MAAM,gBAPlBlb,OANUlI,cAAAysB,WAAA,GAoBD,EAkE5B,OACErI,eAAAqI,WAAA,CAAAxtB,SAAA,GACKugE,GAAa54D,EAAU/B,OAAS,GACjC7E,cAACk/D,GAAe,CAAAjgE,SACde,cAAC0+D,GAAgC,MAGrC1+D,cAAC2gE,GAAiB,CAAA1hE,SACfkvE,EAAmBzoE,KAAI,CAACssE,EAAc9pE,KACrC,MAAMwT,EAjCd,SAA6Bu2D,GAC3B,MAAMv2D,EAAmB,GACnB7U,EAAWsnE,EAAmB8D,GAE9BtB,GAAqBjR,EAAMj0D,MAC9B6iE,GAAsBA,EAAkBtoE,KAAOa,EAASowD,UAErDib,EAAgC,KAAlBrrE,EAASvF,KACvB6wE,EAAehE,EAAmB1iE,MACtC,CAAC6iE,EAAmBN,IAClBM,EAAkBhtE,OAASuF,EAASvF,MACpC0sE,IAA2BiE,IAU/B,OAPIC,GAAax2D,EAAOtT,KAAKsoE,GAAcG,WAEvCF,GACFj1D,EAAOtT,KAAKsoE,GAAcC,kBAAkB9pE,EAASowD,UAEnDkb,GAAcz2D,EAAOtT,KAAKsoE,GAAcE,YAErCl1D,CACT,CAWuB02D,CAAoBlqE,GAC7BmqE,EAAW32D,EAAO7W,OAAS,EACjC,OACE7E,cAAAysB,WAAA,CAAAxtB,SACEmlB,eAACu6C,GAAgB,CAAA1/D,SAAA,CACfmlB,eAAC66C,GAAgB,CAAAhgE,SAAA,CACfe,cAACq+D,GAAkB,CACjBr4C,QAAQ,WACR2iB,MAAM,OACNzoC,OAAmB,OAAZ8xE,QAAY,IAAZA,OAAY,EAAZA,EAAc1wE,OAAQ,GAC7BkuB,SAAWjoB,GAjF7B,SAAkCjG,EAAc2wE,GAAwB,IAADK,EAAA5E,EACrEpsE,EAAOqM,EAAoCrM,GAE3C,MAAMixE,EAAU3rE,EAAUqrE,GAAe3wE,KACnCyU,EAAS,IAAIhJ,OAAO,MAAD/F,OAAOurE,EAAO,OAAO,MACxC3hE,EAA+C,QAAlC0hE,EAAW,OAAR7jE,QAAQ,IAARA,GAAgB,QAARi/D,EAARj/D,EAAU7M,cAAM,IAAA8rE,OAAR,EAARA,EAAkB98D,qBAAa,IAAA0hE,IAAI,GAKzD,GAJqB1hE,EAAcnF,MAAMuK,GACvCD,EAAOmF,KAAKlF,KAGI,CAChB,MAAMw8D,EAAoB5hE,EAAclL,KAAKsQ,GAC3CA,EAAS7N,QAAQ4N,EAAO,IAAD/O,OAAM1F,EAAI,QAGrB,OAARmN,QAAQ,IAARA,KAAU7M,SACd6M,EAAS7M,OAAOgP,cAAgB4hE,EAEpC,CAEK5rE,EAAUqrE,GAAejS,gBAC5Bp5D,EAAUqrE,GAAsB,MAAI,IAAM3wE,GAG5CsF,EAAUqrE,GAAe3wE,KAAOA,EAE1BmN,GACJvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAKb,CA8CoBgkE,CAAyBlrE,EAAEkG,OAAOvN,MAAOgI,GAE3CwhB,WAAS,IAGXtF,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAACtN,MAAOi2D,EAASpzE,SAAA,CACxDe,cAAC69D,KAAU,CAAC73D,GAAG,sCAAqC/G,SAAC,UAGrDmlB,eAACy8C,GAAY,CAAA5hE,SAAA,CACXe,cAACkgE,KAAM,CACLC,QAAQ,sCACRn6D,GAAG,gCACH9F,OAAmB,OAAZ8xE,QAAY,IAAZA,OAAY,EAAZA,EAAc/a,UAAW,GAChCznC,SAAUiuC,EAAkB,UAAWv1D,GACvCygC,MAAM,QACNjf,WAAS,EACTtN,MAAOi2D,EAASpzE,SAEfygE,EAAMh6D,KAAI,CAACrH,EAAM6J,IAChBlI,cAACogE,KAAQ,CAEPlgE,MAAO7B,EAAK2H,GACZimB,WAAuB,OAAZ+lD,QAAY,IAAZA,KAAc1wE,MAAKrC,SAE7BZ,EAAKiD,MAJD4G,OASVmqE,GACCryE,cAACm+D,KAAc,CAAAl/D,SACbe,cAAA,MACEiJ,MAAO,CACL4F,SAAU,WACViV,WAAY,OACZwc,OAAQ,KACRrhC,SAEDyc,EAAOhW,KAAK0W,GACXpc,cAAA,MAAAf,SAAiBmd,GAARA,YAOnBpc,cAACmvE,GAAqB,CACpBL,SAAS,WACT5mD,QAASA,EACTqnD,eAAgBrnE,IAIlBlI,cAACm/D,GAAc,CAAAlgE,SACbe,cAACisC,GAAoB,CACnBC,iBAAkBA,IAAMm0B,EAAqBn4D,MAC7C,YAAAlB,OAH6BkB,UASpCu3D,GACCr7C,eAACsB,KAAI,CAAC4Y,WAAS,EAACsiC,GAAI,GAAIl6C,UAAU,MAAM0I,WAAW,SAAQnwB,SAAA,CACzDe,cAACsgE,KAAM,CACLC,UAAuB,OAAZyR,QAAY,IAAZA,MAAc55D,UACzBoX,SAAUA,IAnQDtnB,KAC3B,GAAIrB,GAAY4H,EAAU,CACxB,MAAMikE,EAAS9rE,EAAUsB,GACrBwqE,IACFA,EAAOt6D,UAAYs6D,EAAOt6D,SAE1BlZ,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,cAGd,GAwPkCwxD,CAAoB/3D,GACpCkb,MAAM,YAERpjB,cAAC6+D,GAA4B,OAGhC+S,EAAgB1pE,KAhFIA,IAkFtB,MAKyB,kBAA1BypE,GACN3xE,cAACqwE,GAAqB,CACpBnoE,MAAOypE,EACPnqD,KAAMypD,EACNV,iBAAkBA,IAAMW,GAAqB,OAKvD,CCvce,SAASyB,KACtB,OACEvuD,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,CAACsF,WAAY,CAAC,UACnBr9D,cAACknE,GAAS,IACVlnE,cAACu+D,GAAc,IACfv+D,cAAC0lB,KAAI,CAACzc,MAAO,CAAEimB,QAAS,UAAWjwB,SACjCe,cAAC+wE,GAA+B,CAAC7oE,MAAO,EAAGs3D,WAAW,SAQ1Dx/D,cAACmzC,GAAa,MAGpB,C,wCCvBO,MAAM/J,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI3B0vD,GAAc7vD,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,oJAU7B2vD,GAAsB9vD,aAAOqsB,IAAepqB,MAAM,CAC7D/lB,SAAU,2BACV+mB,QAAS,KACT5C,MAAO,WAH0BL,CAIjCS,QAAAN,aAAA,QAEW4vD,GAAgB/vD,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,0BAI/ByoB,GAAY5oB,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,6BAI3B6vD,GAAYhwD,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,8HAU3B8vD,GAAqBjwD,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,wGAOpC+vD,GAAYlwD,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,qNAa3BgwD,GAAqBnwD,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,mGAQpCm7C,GAAqBt7C,aAAO0lB,GAAP1lB,CAAoBkD,QAAA/C,aAAA,QAgBzC8oB,IAdiBjpB,aAAO0C,GAAP1C,CAAemD,QAAAhD,aAAA,6LAcbH,aAAO0C,GAAP1C,CAAeoD,QAAAjD,aAAA,yOC1EhC,SAASiwD,KAAmB,IAAD9zC,EAAArtB,EACxC,MAAM,MAAE7T,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,EAE3BN,EAAO8pB,uBAAY,KACnBlZ,IACGA,EAAS7M,SACZ6M,EAAS7M,OAAS,CAChBgP,cAAe,CAAC,IAChBhK,UAAW,CACT,CACEtF,KAAM,GACN21D,QAAS,GACTnwD,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACV0nD,aAAc,GACdC,QAAQ,EACR7/D,MAAO,MAIbhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKNA,EAAS5M,SAAY4M,EAAS5M,QAAQgD,SACzC4J,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,KAC7BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKNA,EAAS/M,WACZ+M,EAAS/M,SAAW,CAClBuF,QAAS,IAEX/H,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKb,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAMu1E,EAAeA,CACnB5pE,EACAtB,EACAX,KAEA,GAAMkH,GAAYA,EAAS5M,QAAS,CACnB4M,EAAS5M,QAAQqG,GACzBsB,GAAOjC,EAAEkG,OAAOvN,MACvBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAkIF,OACE2V,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAqB,IACtB1H,eAAC0H,GAAa,CAAA7sB,SAAA,CACZe,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACR7F,WAAS,EACTif,MAAM,oBACN3iB,QAAQ,WACR1kB,KAAK,eACLpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBp4B,UAAW,GACtCuoB,SA3HiBjoB,IACzB,GAAMkH,GAAcA,EAAS/M,SAAU,CACrC,MAAM,MAAExB,GAAUqH,EAAEkG,OAEpBgB,EAAS/M,SAASuF,QAAU/G,EAE5BhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GA8GQwlC,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACssE,KAAe,CAAClpD,MAAM,mBAMjCgB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAW,CAAA7sB,SACVmlB,eAACyqB,KAAU,CACTC,KAAG,EACH5uC,OAAe,OAARuO,QAAQ,IAARA,OAAQ,EAARA,EAAUzM,YAAavB,EAAU4yE,SACxC7jD,SA5CoB8jD,KAC1B7kE,IACFA,EAASzM,SACPyM,EAASzM,WAAavB,EAAUwB,WAC5BxB,EAAU4yE,SACV5yE,EAAUwB,WAEhB/C,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,EA6B4CxP,SAAA,CAElCe,cAACgvC,KAAgB,CACf9uC,OAAO,EACP+uC,QAASjvC,cAACkvC,KAAK,CAAC9rB,MAAM,YACtBulB,MAAM,yBAER3oC,cAACgvC,KAAgB,CACf9uC,OAAO,EACP+uC,QAASjvC,cAACkvC,KAAK,CAAC9rB,MAAM,YACtBulB,MAAM,4BAIZ3oC,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QA5FcspD,KACtB,GAAI9kE,EAAU,CACZ,GAAIA,EAAS5M,QAAS,CACpB,MAAM4tD,EAAQhhD,EAAS5M,QAAQ+I,MAC5B8B,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEX+iE,EAAa/kE,EAAS5M,QAAQkE,QACjC2G,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEjB+iE,EAAWprE,KAAK,CACdmG,MAAO,KAELkhD,GACF+jB,EAAWprE,KAAKqnD,GAElBhhD,EAAS5M,QAAU2xE,CACrB,MACE/kE,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,KAE/BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAiEiCxP,SAC1B,0BAKM,OAARwP,QAAQ,IAARA,GAAiB,QAATuD,EAARvD,EAAU5M,eAAO,IAAAmQ,OAAT,EAARA,EAAmBtM,KAjJC+tE,CAACC,EAAgBxrE,IAExCkc,eAAC0H,GAAoB,CAAA7sB,SAAA,CACnBmlB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVmlB,eAAC0H,GAAoB,CAAA7sB,SAAA,CACnBe,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAM,SACNC,WAAY,CAAEq1B,UAAW,IACzB/9D,MAAOwzE,EAAOnlE,MACd0d,SAAyC,WAA/BynD,EAAOnlE,MAAMkC,cACvB+e,SAAWjoB,GACT6rE,EAAa,QAASlrE,EAAOX,GAE/B6U,QAAS8iC,EAAW,WAADl4C,OAAYkB,EAAK,YACpC6gC,WAAYmW,EAAW,WAADl4C,OAAYkB,EAAK,cAEzClI,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACRiG,SAAyC,WAA/BynD,EAAOnlE,MAAMkC,cACvBk4B,MAAM,gBACNzoC,MAAOwzE,EAAO3sE,IACdyoB,SAAWjoB,GACT6rE,EAAa,MAAOlrE,EAAOX,QAIjCvH,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACRiG,SAAyC,WAA/BynD,EAAOnlE,MAAMkC,cACvBk4B,MAAM,kBACNC,WAAY,CAAEq1B,UAAW,IACzB/9D,MAAOwzE,EAAOnyE,YACdiuB,SAAWjoB,GACT6rE,EAAa,cAAelrE,EAAOX,QAIT,WAA/BmsE,EAAOnlE,MAAMkC,eACZzQ,cAAC8rB,GAAkB,CAAC7B,QAASA,IAvET/hB,KAC1B,GAAMuG,GAAYA,EAAS5M,QAAS,CAClC,MAAMA,EAAU4M,EAAS5M,QAAQkE,QAAO,CAACyP,EAAG/I,IAAMA,IAAMvE,IACxDhJ,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,EACH5M,aAIR,GA2DyC8xE,CAAmBzrE,GAAOjJ,SAC3De,cAACmsC,KAAU,QAEd,KAAAnlC,OAxC6BkB,WAmJtC,CC5Qe,SAASzD,KACtB,OACE2f,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACmzE,GAAe,OAElBnzE,cAACmzC,GAAa,MAGpB,CCPe,SAAS3xC,KACtB,OACE4iB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACknE,GAAS,IACVlnE,cAACu+D,GAAc,IAEfv+D,cAAC0lB,KAAI,CAACzc,MAAO,CAAEimB,QAAS,iBAAkBjwB,SACxCe,cAAC+wE,GAA+B,CAC9B7oE,MAAO,EACPu3D,eAAe,EACfD,WAAW,SASjBx/D,cAACmzC,GAAa,MAGpB,CCxBe,SAASw/B,KACtB,OACEvuD,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,CAACsF,WAAY,CAAC,UACnBr9D,cAACkiE,GAAY,IAEbliE,cAACknE,GAAS,IACVlnE,cAACu+D,GAAc,IACfv+D,cAAC0lB,KAAI,CAACzc,MAAO,CAAEimB,QAAS,WAAY/E,UAAW,QAASlrB,SACtDe,cAAC+wE,GAA+B,CAC9B7oE,MAAO,EACPs3D,WAAW,EACXD,YAAU,EACVE,eAAa,SASnBz/D,cAACmzC,GAAa,MAGpB,C,mEC9BO,MAAMygC,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI/B6hD,GAA2BhiD,aAAOqsB,GAAPrsB,CAAqBO,QAAAJ,aAAA,QAEhD2wD,GAAkB9wD,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,0DAKjC4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,kTAqB7B6wD,GAAoBhxD,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,kJAYnCm7C,GAAqBt7C,aAAOwM,KAAPxM,CAAiBuC,QAAApC,aAAA,QAEtC8wD,GAAuBjxD,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,4HCvCpC,SAAS+wD,GAAqBj1E,GAA2B,IAADgT,EACrE,MAAOkiE,EAAUC,GAAe7pD,oBAAkB,IAC5C,MAAEnsB,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAC3B,eAAEm6B,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,IAAaA,EAAS5M,SACxB4M,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,KAC7BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAIAA,GAAcA,EAAS5M,SAChCsyE,EAAY1lE,EAAS5M,QAAQ4J,MAAM9F,GAAWA,EAAOm1D,SACvD,GACC,CAACrsD,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAoHJ,OACEumB,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAA0B,CAAC9F,QAAQ,KAAK5C,MAAM,UAASnkB,SACrDq5B,EAAe,yBAElBlU,eAAC0H,GAAa,CAAA7sB,SAAA,CACZe,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QA/DcspD,KACtB,GAAI9kE,EAAU,CACZ,GAAIA,EAAS5M,QAAS,CACpB,MAAM4tD,EAAQhhD,EAAS5M,QAAQ+I,MAC5B8B,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEX+iE,EAAa/kE,EAAS5M,QAAQkE,QACjC2G,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEjB+iE,EAAWprE,KAAK,CACdmG,MAAO,KAELkhD,GACF+jB,EAAWprE,KAAKqnD,GAElBhhD,EAAS5M,QAAU2xE,CACrB,MACE/kE,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,KAE/BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAoCiCxP,SAExBq5B,EAAe,oBAGpBt4B,cAACgvC,KAAgB,CACfC,QACEjvC,cAACo0E,KAAQ,CACP7T,QAAS2T,EACT1kD,SA1CgB6kD,KAE1B,GADAF,GAAaD,GACPzlE,GAAYA,EAAS5M,QAAS,CAClC,MAAMA,EAAU4M,EAAS5M,QAEzBA,EAAQyI,SAAS3E,IACXA,EAAOm1D,cAAen1D,EAAOm1D,OAC5Bn1D,EAAOm1D,QAAS,CAAI,IAG3B57D,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,EACH5M,aAIR,GAwBUuhB,MAAM,YAGVulB,MAAOrQ,EAAe,gCAEf,OAAR7pB,QAAQ,IAARA,GAAiB,QAATuD,EAARvD,EAAU5M,eAAO,IAAAmQ,OAAT,EAARA,EAAmBtM,KA3GL4uE,CAACZ,EAAgBxrE,IAElCkc,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR0D,WAAS,EACTif,MAAOrQ,EAAe,eACtBsQ,WAAY,CAAEq1B,UAAW,IACzB38D,KAAK,eACLjD,KAAK,OACL6B,MAAOwzE,EAAOnlE,MACd0d,SAAyC,WAA/BynD,EAAOnlE,MAAMkC,cACvB+e,SAAWjoB,IA7COgtE,EACxBrsE,EACAX,KAEMkH,GAAYA,EAAS5M,UACV4M,EAAS5M,QAAQqG,GACzBqG,MAAQhH,EAAEkG,OAAOvN,MACxBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,EA+BQ8lE,CAAkBrsE,EAAOX,EAAE,EAE7B6U,QAAS8iC,EAAW,WAADl4C,OAAYkB,EAAK,YACpC6gC,WAAYmW,EAAW,WAADl4C,OAAYkB,EAAK,cAEzClI,cAAC8rB,GAAsB,CAAA7sB,SACW,WAA/By0E,EAAOnlE,MAAMkC,eACZzQ,cAACisC,GAAoB,CACnBC,iBAAkBA,IApCFhkC,KAC1B,GAAMuG,GAAYA,EAAS5M,QAAS,CAClC,MAAMA,EAAU4M,EAAS5M,QAAQkE,QAAO,CAACyP,EAAG/I,IAAMA,IAAMvE,IACxDhJ,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,EACH5M,aAIR,GAwBkC8xE,CAAmBzrE,SAGxB,KAAAlB,OAtBIkB,WA6GrC,CC9Ke,SAAS3E,KACtB,OACE6gB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACu+D,GAAc,IACfv+D,cAACw0E,GAAmB,OAEtBx0E,cAACmzC,GAAa,MAGpB,CCoCeshC,I,SAAAA,GAhDbz1E,IAEA,MAAM,KACJsC,EAAI,MACJqnC,EAAK,MACLzoC,EAAK,QACLgoB,EAAO,SACP9P,EAAQ,MACRgE,EAAK,aACLs4D,EAAY,SACZzoD,EAAQ,UACRvC,EAAS,SACTzqB,EAAQ,YACVgqC,EAAW,SACTzZ,GACExwB,EACJ,OACEolB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAE,GAAAgB,OAAK1F,EAAI,iCAAgCrC,SACpD0pC,IAEHvkB,eAAC87C,KAAM,CACLC,QAAO,GAAAn5D,OAAK1F,EAAI,iCAChB0E,GAAE,GAAAgB,OAAK1F,EAAI,2BACXA,KAAMA,EACNqnC,MAAOA,EACPzoC,MAAOA,EACPkY,SAAUA,EACVgE,MAAOA,EACP6P,SAAUA,EACVvC,UAAWA,EACX8F,SAAUA,EAASvwB,SAAA,CAEnBe,cAACogE,KAAQ,CAACn0C,UAAQ,EAAC/rB,MAAM,GAAEjB,SAAA,GAAA+H,OACrBiiC,EAAW,KAAAjiC,OAAI2hC,GAAgB,UAE7B,OAAPzgB,QAAO,IAAPA,OAAO,EAAPA,EAASxiB,KAAI,CAACquC,EAAQ7rC,IACrBlI,cAACogE,KAAQ,CAAalgE,MAAO6zC,EAAO/tC,GAAG/G,SACpC80C,EAAOzyC,MADK4G,KAIhBjJ,GAAYe,cAACogE,KAAQ,CAAAnhE,SAAEA,OAE1Be,cAACm+D,KAAc,CAAC/hD,OAAK,EAAAnd,SAAEy1E,MACX,EChDX,MAAMtrC,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,kEAK3B2vD,GAAsB9vD,aAAOqsB,GAAPrsB,CAAqBO,QAAAJ,aAAA,QAE3CC,GAAUJ,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,wUCEvB,SAASy1C,KAAkB,IAAD/5B,EAAA+1C,EACvC,MAAM,YAAEr0D,EAAW,QAAEzD,GAAYkqB,KAAU5oC,OACrC,MAAEA,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,EAAU,QAAE1gC,GAAYrgB,GAClCe,SAAUsvB,GAAgBruB,KAC5B,eAAEm4B,GAAmBH,KAErBy8C,EAAsBjtD,uBAC1BtoB,UACE,GAAIoC,EAAS,CACX,MAAM0F,QAAeiW,GACnB,CACEb,SAAUM,GAAW,GACrBQ,UAAW5b,GAEb+sB,GAGF,GAAIrnB,EAAO+U,SAAa/U,EAAO4U,KAAKxd,KAAKs9B,OAAOlwB,SAAU,CACxD,MAAMpN,EAAO4I,EAAO4U,KAAKxd,KAAKs9B,OAAOlwB,SAASE,KAAKtN,KAEnD,OADasE,OAAOuH,KAAK7L,GAEtBwH,QAAQyD,IACP,MAAMqrE,EAAY,IAAI3zE,EAAc3C,EAAKqH,OAAO4D,IAAMjL,MACtD,OAAQs2E,EAAUpxE,YAAcoxE,EAAUjxE,UAAU,IAErD8B,KAAK8D,IACJ,MAAM,KAAElI,GAAS/C,EAAKqH,OAAO4D,IAAMjL,KACnC,MAAO,CACLyH,GAAI1E,EACJA,OACD,GAEP,CACF,CAEA,MAAO,EAAE,GAGX,CAACub,IAGGhf,EAAO8pB,uBAAYtoB,WACjBoP,GAAqB,OAARA,QAAQ,IAARA,KAAU3M,SAC3B2M,EAAS3M,OAAS,CAChBL,QAAS,GACTq9B,SAAU,IAEZ5/B,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,cACzC,GACC,CAACA,EAAUvP,IAOdE,qBAAU,KALSC,WAAa,IAADs/B,EAC7B,MAAMngB,QAAgBo2D,GAA4B,OAARnmE,QAAQ,IAARA,GAAgB,QAARkwB,EAARlwB,EAAU3M,cAAM,IAAA68B,OAAR,EAARA,EAAkBl9B,UAAW,IACvEvC,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEigB,YAAY,EAInDq2B,EAAY,GAEX,IAEHz1C,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAMi3E,EACHtrE,GAAsBnK,UACT,OAARoP,QAAQ,IAARA,KAAU3M,SACZ2M,EAAS3M,OAAO0H,GAAOsB,OAAOvD,EAAEkG,OAAOvN,cAChC/B,EAAM+gD,WAAW,UAADl4C,OAAWwC,IACtB,YAARA,IACFrL,EAAMqgB,cAAgBo2D,EAAoBnmE,EAAS3M,OAAO0H,KAE5DtK,EAAS,CAAEb,KAAM,aAAcE,KAAMJ,IACvC,EAGJ,OACEimB,eAACglB,GAAS,CAAAnqC,SAAA,CACRe,cAAC6yE,GAAmB,CAAC7sD,QAAQ,KAAK5C,MAAM,UAASnkB,SAC/Cq5B,EAAe,wBAEjBlU,eAACjB,GAAO,CAAAlkB,SAAA,CACNe,cAACy0E,GAAc,CACbnzE,KAAK,UACLqnC,MAAOrQ,EAAe,SACtBp4B,MAAe,OAARuO,QAAQ,IAARA,GAAgB,QAARmwB,EAARnwB,EAAU3M,cAAM,IAAA88B,OAAR,EAARA,EAAkBn9B,QACzBymB,QAAS5H,EAAY5a,KAAK2vB,IACjB,CAAErvB,GAAIqvB,EAAO/zB,KAAM+zB,MAE5BjZ,QAAS8iC,EAAW,kBACpBw1B,aAAcx1B,EAAW,kBACzB1vB,SAAUslD,EAAmB,WAC7B7rC,YAAa3Q,EAAe,eAE9Bt4B,cAACy0E,GAAc,CACbnzE,KAAK,WACLqnC,MAAOrQ,EAAe,SACtBp4B,MAAe,OAARuO,QAAQ,IAARA,GAAgB,QAARkmE,EAARlmE,EAAU3M,cAAM,IAAA6yE,OAAR,EAARA,EAAkB71C,SACzB5W,QAAS1J,EACTpC,QAAS8iC,EAAW,mBACpBw1B,aAAcx1B,EAAW,mBACzB1vB,SAAUslD,EAAmB,YAC7B7rC,YAAa3Q,EAAe,oBAKtC,CCnHe,SAASv0B,KACtB,OACEqgB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAAC24D,GAAc,OAEjB34D,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,C,8CCZO,MAAMkG,GAAoB59C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,0BAInCm7C,GAAqBt7C,aAAO0lB,GAAP1lB,CAAoBO,QAAAJ,aAAA,+BAIzCw7C,GAAmC37C,aAAOqsB,IAAepqB,MAAM,CAC1E/lB,SAAU,0BACV+mB,QAAS,KACT5C,MAAO,WAHuCL,CAI9CS,QAAAN,aAAA,QAEWy7C,GAAmB57C,aAAO0C,IAAST,MAAM,CACpDsZ,WAAW,EACXsiC,GAAI,GACJzrB,QAAS,GAHqBpyB,CAI9BW,QAAAR,aAAA,sGAwBW47C,IAhBmB/7C,aAAO0C,IAAST,MAAM,CACpDsZ,WAAW,EACX1qB,MAAM,EACNgtD,GAAI,GAH0B79C,CAI9BqC,QAAAlC,aAAA,sDAM0CH,aAAOqsB,IAAepqB,MAAM,CACtE/lB,SAAU,4BACV+mB,QAAS,YACT5C,MAAO,WAHmCL,CAI1CuC,QAAApC,aAAA,QAEiCH,aAAO0C,IAAST,MAAM,CACvDpR,MAAM,EACNgtD,GAAI,IAF6B79C,CAGjCyC,QAAAtC,aAAA,kSAGYlkB,GAAWA,EAAM+/D,SAAW,OAAS,UAiBtCC,GAA0Bj8C,aAAOwM,MAAWvK,MAAM,CAC7D2jB,MAAO,uBACP3iB,QAAS,YAF4BjD,CAGrC8C,QAAA3C,aAAA,uDAKW+7C,GAAmBl8C,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,sPAyBlCi8C,IANkBp8C,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,kGAMhBH,aAAO0C,GAAP1C,CAAemD,QAAAhD,aAAA,4HAqBhC29C,IAZkB99C,aAAO0C,IAAST,MAAM,CACnDsZ,WAAW,EACX1qB,MAAM,EACNgtD,GAAI,IAHyB79C,CAI7BoD,QAAAjD,aAAA,4BAImCH,aAAO0C,GAAP1C,CAAeqD,QAAAlD,aAAA,iCAIxBH,KAAOC,IAAGqD,QAAAnD,aAAA,gH,mBC1H/B,MAAMmtC,GAAS,CACpBjnB,UAAWrmB,KAAOC,IAAGC,QAAAC,aAAA,QACrB49C,aAAc/9C,KAAOoL,OAAM7K,QAAAJ,aAAA,6IAQ3B69C,cAAeh+C,KAAOC,IAAGQ,QAAAN,aAAA,0DAIzB89C,wBAAyBj+C,KAAOC,IAAGU,QAAAR,aAAA,8EAOxBg8C,GAAkBn8C,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,+F,iCClBvC,MAAMyC,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mDAMjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8GAOjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAQ,MADgBjD,CAExBS,QAAAN,aAAA,4BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,mSAiB7BgtD,GAAentD,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,uKAW3BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,8FAO9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,2BC3BjC4xB,GAAYC,cAAYvN,GAC5BwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAGd/Y,MAAO,CACL+Y,WAAY,eAKZ8B,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAASqxE,GACtBrxE,GACC,IAADggC,EACA,MAAM8W,EAAUhB,MACV,MAAE32C,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,EACf0I,EAAmB,OAAR4H,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,UAAU5H,EAAMkJ,OAMnD,MAAMooE,EACH9mE,GAAmCjC,IAClC,GAAIkH,GAAY5H,EAAU,CACxB,MAAM3G,EAAQ4K,OAAOvD,EAAEkG,OAAOvN,OAC9B,GAAY,UAARsJ,EAAiB,CACnB,MAAMq2D,EAAgBryD,EAAiBjG,EAAGiC,GAAK,GAC/C3C,EAASm5D,eAAgB,EACzBn5D,EAAS2C,GAAO,IAAMq2D,EAAc13D,QAAQ,IAAK,GACnD,MACEtB,EAAS2C,GAAOtJ,EAElBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,aAEZ,GAaJ,OAAKzP,EAAMwoB,KAGTxnB,cAACwpB,KAAM,CACLhC,MAAM,EACNiC,oBAAqB7D,GACrB+D,SAAS,KACTD,WAAW,EACX,kBAAgB,2BAChB,mBAAiB,iCAAgCzqB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SAAC,8BACxCe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAjDV,WACEjrB,EAAMuxE,kBACR,EAgDU,aAAW,QAAOtxE,SAElBe,cAACkqB,KAAS,SAGdlqB,cAACiwE,GAAc,CAAAhxE,SACbmlB,eAACw5C,KAAW,CAACl0C,WAAS,EAAC1D,QAAQ,WAAU/mB,SAAA,CACvCe,cAAC69D,KAAU,CAACC,QAAQ,2BAA0B7+D,SAAC,mBAG/Ce,cAAC+9D,KAAa,CACZ/3D,GAAG,2BACH9F,OAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAU3G,QAAS,GAC1BsvB,SAAU8gD,EAAmB,SAC7BpS,WAAY,IACZt1B,WAAY,CACV3/B,MAAO,CAAE6a,WAAY,gBAK7B9jB,cAACiwE,GAAc,CAAAhxE,SACbmlB,eAACw5C,KAAW,CAACl0C,WAAS,EAAC1D,QAAQ,WAAU/mB,SAAA,CACvCe,cAAC69D,KAAU,CAACC,QAAQ,kCAAiC7+D,SAAC,oBAGtDe,cAAC+9D,KAAa,CACZ/3D,GAAG,kCACH9F,OAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAUi5D,eAAgB,GACjCtwC,SAAU8gD,EAAmB,gBAC7BpS,WAAY,IACZt1B,WAAY,CACV3/B,MAAO,CAAE6a,WAAY,gBAK7B9jB,cAACkwE,GAAY,CAAAjxE,SACXe,cAACgvC,KAAgB,CACfC,QACEjvC,cAACsgE,KAAM,CACLC,UAAmB,OAAR15D,QAAQ,IAARA,MAAUk5D,QACrBvwC,SAtE0BghD,KAClC/hE,GAAY5H,IACdA,EAAiB,QAAKA,EAAiB,OACvC3H,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,cAEZ,EAgEYnN,KAAK,UACL8hB,MAAM,YAGVulB,MAAM,+BAGV3oC,cAACmwE,GAAe,CAAAlxE,SACde,cAAC4kB,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAASA,IAAMjrB,EAAMuxE,mBAAmBtxE,SACzC,mCA1Eee,cAAAysB,WAAA,GAiF1B,CC5Ie,SAASsoD,GAAc/1E,GAAmB,IAADggC,EAAAsgC,EACtD,MAAM,QAAEziD,GAAYkqB,KAAU5oC,OACxB,MAAEA,EAAK,SAAEe,GAAamgD,MACpBngD,SAAUsvB,GAAgBruB,KAC5B,SAAEsO,EAAQ,WAAEywC,GAAe/gD,GAE3B,MAAE+J,EAAK,WAAEq3D,EAAU,UAAEC,GAAcxgE,EACnC4H,GAAoB,OAAR6H,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,YAAa,GAC3CC,EAAmB,OAAR4H,QAAQ,IAARA,GAAgB,QAAR6wD,EAAR7wD,EAAU7M,cAAM,IAAA09D,OAAR,EAARA,EAAkB14D,UAAUsB,IAEtCw3D,EAAOC,GAAYr1C,mBAAyC,KAC5D2mD,EAAmBC,GAAwB5mD,oBAAkB,GAEpElrB,qBAAU,MACRC,iBACE,IAAIugE,EAAW,CACb,CAAE55D,GAAI,WAAY1E,KAAM,kBACxB,CAAE0E,GAAI,aAAc1E,KAAM,kBAC1B,CAAE0E,GAAI,cAAe1E,KAAM,mBAC3B,CAAE0E,GAAI,iBAAkB1E,KAAM,iBAC9B,CAAE0E,GAAI,WAAY1E,KAAM,iBAG1B,GAAIub,EAAS,CACX,IAAI1V,QAAe4mC,GACjB,CAAExxB,SAAUM,GAAW,IACvB2R,GAEF,GAAIrnB,EAAO+U,SACH/U,EAAO4U,KAAM,CACjB,MAAM2rB,EAAWvgC,EAAO4U,KACxB6jD,EAAW,IACNA,KACAl4B,EAAShiC,KAAKoqC,IAAM,CACrB9pC,GAAI8pC,EAAOxuC,KACXA,KAAMwuC,EAAOxuC,UAEfmyB,MAAK,SAAUjnB,EAAGuH,GAClB,OAAOvH,EAAElL,KAAOyS,EAAEzS,KAAO,EAAIyS,EAAEzS,KAAOkL,EAAElL,MAAQ,EAAI,CACtD,IAEAs+D,EAASl6D,KAAKrH,IACZ,GAAgC,MAA5BA,EAAK2H,GAAGmN,UAAU,EAAG,GAAY,CAInC,IAAI0sD,EAHU,GAAA74D,OAAM3I,EAAK2H,GAAGk1C,MAAM,EAAG,GAAK,KAAGl0C,OAAG3I,EAAK2H,GAAGk1C,MACtD,IAGF78C,EAAK2H,GAAK65D,CACZ,CACA,OAAOD,CAAQ,GAEnB,CAEJ,CACAD,EAASC,EACX,CACA/hE,EAAM,GAEL,CAACgf,IAEJ,MAAMhf,EAAO8pB,uBAAY,KACnBlZ,GAAYA,EAAS7M,SAAW6M,EAAS7M,OAAOgF,UAAU/B,SAC5D4J,EAAS7M,OAAS,CAChBgF,UAAW,CACT,CACEtF,KAAM,GACN21D,QAAS,GACTnwD,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACV0nD,aAAc,GACdC,QAAQ,EACR7/D,MAAO,MAIbhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAM4/D,EACHj0D,GACAjC,IACC,GAAIkH,GAAY5H,EAAU,CACxB,MAAM3G,EAAQsN,EAAiBjG,EAAGiC,GAAK,GAEZ,IAAD2sD,EAA1B,GAAI1nD,EAAS1M,YACX0M,EAAS1M,YAAY+O,QAA8B,QAAvBqlD,EAAG1nD,EAAS1M,mBAAW,IAAAo0D,OAAA,EAApBA,EAAsBrlD,QAAQi1B,WAAW,IAAD/+B,OACjEH,EAAe,MAAC,IAAAG,OAChB9G,IAII,SAARsJ,GAAmB3C,EAASm5D,gBAC9Bn5D,EAAgB,MAAI,IAAM3G,GAE5B2G,EAAS2C,GAAOtJ,EAEhBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,aAEZ,GAkBEyZ,EAA6B,CACjC,CACEygB,MAAO,cACPmmC,SAAU,WACV1wE,OAAQA,KACN8yE,GAAqB,EAAK,GAG9B,CACEvoC,MAAO,WACPmmC,SAAU,SACV1wE,OAAQA,KACN8yE,GAAqB,EAAM,IA+BjC,OACE9sD,eAACu8C,GAAiB,CAAA1hE,SAAA,GACbugE,GAAax/D,cAAC0+D,GAAgC,IACjDt6C,eAACu6C,GAAgB,CAAA1/D,SAAA,CACfmlB,eAAC66C,GAAgB,CAAAhgE,SAAA,CACfe,cAACq+D,GAAkB,CACjBr4C,QAAQ,WACR2iB,MAAM,OACNzoC,OAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,OAAQ,GACzBkuB,SAAUiuC,EAAkB,QAC5B/zC,WAAS,IAGXtF,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,sCAAqC/G,SAAC,UAGrDmlB,eAACy8C,GAAY,CAAA5hE,SAAA,CACXmlB,eAAC87C,KAAM,CACLC,QAAQ,sCACRn6D,GAAG,gCACH9F,OAAe,OAAR2G,QAAQ,IAARA,OAAQ,EAARA,EAAUowD,UAAW,GAC5BznC,SAAUiuC,EAAkB,WAC5B90B,MAAM,QACNjf,WAAS,EACTtR,UAAQ,EACRgE,MACqB,MAAX,OAARvV,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,OACY,MAAd,OAARuF,QAAQ,IAARA,OAAQ,EAARA,EAAUowD,YACR/X,EAAoB,QACvBjgD,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAM,GAAEjB,SAChBe,cAAA,MAAAf,SAAI,wBAELygE,EAAMh6D,KAAI,CAACrH,EAAM6J,IAChBlI,cAACogE,KAAQ,CAEPlgE,MAAO7B,EAAK2H,GACZimB,WAAmB,OAARplB,QAAQ,IAARA,KAAUvF,MAAKrC,SAEzBZ,EAAKiD,MAJD4G,SAQF,OAARrB,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,OAA8B,MAAd,OAARuF,QAAQ,IAARA,OAAQ,EAARA,EAAUowD,UAC3Bj3D,cAACm+D,KAAc,CAAC/hD,OAAK,EAAAnd,SAAEigD,EAAoB,gBAIjDl/C,cAACmvE,GAAqB,CAACL,SAAS,WAAW5mD,QAASA,MACjDq3C,GACDv/D,cAACm/D,GAAc,CAAAlgE,SACbe,cAACisC,GAAoB,CACnBC,iBAAkBA,IAtGFhkC,KAC5BtB,EAAUuF,OAAOjE,EAAO,GACxBhJ,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,aAAa,EAoGhB4xD,CAAqBn4D,MAC7C,YAAAlB,OAH6BkB,OA5EvClI,cAAAysB,WAAA,CAAAxtB,SACEe,cAAC8+D,GAAmB,CAACC,UAAU,EAAK9/D,SACzB,OAAR4H,QAAQ,IAARA,OAAQ,EAARA,EAAUC,UAAUpB,KAAI,CAAC86D,EAAMt4D,IAE5BlI,cAACg/D,GAAuB,CAEtBxvC,SAAWjoB,GAxCFk5D,EAACvgE,EAAegI,KACjCrB,GAAY4H,IACd5H,EAASC,UAAUoB,GAAShI,EAC5BhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,cAEZ,EAiC6BgyD,CAAel5D,EAAEkG,OAAOvN,MAAOgI,GAChDhI,MAAOsgE,EACP92C,WAAS,EACTuqB,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAAC0gE,KAAS,CAACt9C,MAAM,gBAPlBlb,YAgFflI,cAACqwE,GAAqB,CACpBnoE,MAAOA,EACPsf,KAAMypD,EACNV,iBAAkBA,IAAMW,GAAqB,OAIrD,CCxQA,MAAQnQ,cAAa,GAAEC,wBAAwB,IAAIl1C,GAEpC,SAASkpD,GAAmBh2E,GAAwB,IAADggC,EAChE,MAAM,cAAEygC,EAAa,WAAEF,EAAU,eAAE4C,GAAmBnjE,GAChD,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,EACfyI,GAAoB,OAAR6H,QAAQ,IAARA,GAAgB,QAARuwB,EAARvwB,EAAU7M,cAAM,IAAAo9B,OAAR,EAARA,EAAkBp4B,YAAa,GAE3C/I,EAAO8pB,uBAAY,MACnBlZ,GAAqB,OAARA,QAAQ,IAARA,KAAU7M,SACzB6M,EAAS7M,OAAS,CAChBgF,UAAW,CACT,CACEtF,KAAM,GACNwF,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACV6+C,QAAS,GACT6I,aAAc,GACdC,QAAQ,EACR7/D,MAAO,MAIbhB,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,cACzC,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IA6BJ,OACEumB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC0+D,GAAgC,CAACz1D,MAAO,CAAEk4D,WAAY,OACvDnhE,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAtBkBgrD,KACxBruE,EAAUwB,KAAK,CACb9G,KAAM,GACN21D,QAAS,GACT/2D,MAAO,GACPkY,UAAU,EACVtR,UAAW,CAAC,GAAI,GAAI,IACpBg5D,aAAc,GACdC,QAAQ,IAGV7gE,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,aAAa,EAWnBxP,SAC5B,8BAIHe,cAACghE,GAAuB,CAAA/hE,SACrB2H,EAAUlB,KAzCE27D,CAACx6D,EAAoBqB,KACtC,MAAMgtE,IAA2B,OAAd/S,QAAc,IAAdA,KAAgB5hE,SAAS2H,IAC5C,OACElI,cAAC+gE,GAAa,CAAA9hE,SACZe,cAAC+0E,GAAa,CACZ7sE,MAAOA,EACPq3D,WAAYA,GAAc2V,EAC1BzV,cAAeA,KACf,YAAAz4D,OAL4BkB,GAMhB,QAoCtB,C,sBCjFO,MAAMkhC,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI3B+5C,GAAgBl6C,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8OAgB/Bg6C,GAAgBn6C,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,0GAO/Bk7C,GAAwBr7C,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,yIASvCm7C,GAAqBt7C,aAAO0lB,GAAP1lB,CAAoBqC,QAAAlC,aAAA,QAEzCo7C,GAAkBv7C,aAAOqsB,IAAepqB,MAAM,CACzD/lB,SAAU,0CACV+mB,QAAS,KACT5C,MAAO,WAHsBL,CAI7BuC,QAAApC,aAAA,QC1Ca,SAASq7C,KAAkB,IAADl/B,EAAAm/B,EACvC,MAAM,MAAErgE,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,EAEfs/D,EAAoBA,CACxBj0D,EACAjC,KAEA,GAAIkH,EAAU,CACZ,MAAMvO,EAAQqH,EAAEkG,OAAOvN,MAEvBuO,EAAS/M,SAAW+M,EAAS/M,SACzB+M,EAAS/M,SACT,CAAEuF,QAAS,GAAIF,IAAK,IAExB0H,EAAS/M,SAAS8H,GAAOtJ,EACzBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,SAAU,IAAKA,KAE3B,GAGF,OACE2V,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAiB,IAClB9rB,cAAC8rB,GAAe,CAAA7sB,SACdmlB,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAuB,CAAA7sB,SACtBe,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAM,WACNjf,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBp4B,UAAW,GACtCuoB,SAAWjoB,GAAMk2D,EAAkB,UAAWl2D,GAC9CmhC,QAAS,EACTM,WAAS,MAGbhpC,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAM,gBACNjf,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV+vD,EAAR/vD,EAAU/M,gBAAQ,IAAA88D,OAAV,EAARA,EAAoBz3D,MAAO,GAClCyoB,SAAWjoB,GAAMk2D,EAAkB,MAAOl2D,YAMtD,CC/Ce,SAASZ,KACtB,OACEyd,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACm1E,GAAuB,CACtB5V,YAAY,EACZE,eAAe,EACf0C,eAAgB,CAAC,KAEnBniE,cAACo1E,GAAqB,OAExBp1E,cAACmzC,GAAa,MAGpB,C,eCrBO,MAAMxtB,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mLAQrBlkB,GACnBA,EAAMq2E,YAAW,IAAAruE,OAAOhI,EAAMq2E,aAAgB,YCNrC,SAASz0E,KACtB,OACEwjB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,CAACsF,WAAY,CAAC,OAAQ,iBAE3Br9D,cAACu+D,GAAc,OAGjBv+D,cAACmzC,GAAa,CAACsnB,iBAAe,MAGpC,CCXe,SAAS35D,KACtB,OACEsjB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACshE,GAAmB,CAAAriE,SAClBe,cAAC+3D,GAAI,CAACsF,WAAY,CAAC,OAAQ,mBAI7Br9D,cAACmzC,GAAc,MAGrB,CCXe,SAASpyC,KACtB,OACEqjB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACshE,GAAmB,CAAAriE,SAClBe,cAAC+3D,GAAI,CAACsF,WAAY,CAAC,OAAQ,mBAI7Br9D,cAACmzC,GAAa,MAGpB,CCVe,SAASxyC,KACtB,MAAM,MAAExC,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,EAEfN,EAAO8pB,uBAAY,KACnBlZ,IACGA,EAAS7M,SACZ6M,EAAS7M,OAAS,CAChBgP,cAAe,CAAC,IAChBhK,UAAW,CACT,CACEtF,KAAM,GACN21D,QAAS,GACTnwD,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACV0nD,aAAc,GACdC,QAAQ,EACR7/D,MAAO,MAIbhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKNA,EAAS9M,UAAa8M,EAAS9M,SAASkD,SAC3C4J,EAAS9M,SAAW,CAClB,CAAE5B,IAAK,GAAI3B,OAAQ,IACnB,CAAE2B,IAAK,GAAI3B,OAAQ,IACnB,CAAE2B,IAAK,GAAI3B,OAAQ,KAErBc,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKNA,EAAS9M,WACZ8M,EAAS9M,SAAW,CAClB,CACE5B,IAAK,GACL3B,OAAQ,IAEV,CACE2B,IAAK,GACL3B,OAAQ,IAEV,CACE2B,IAAK,GACL3B,OAAQ,KAGZc,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKb,GACC,CAACA,EAAUvP,IAMd,OAJAE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAGFumB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAACshE,GAAmB,CAAAriE,SAClBe,cAAC+3D,GAAI,CAACsF,WAAY,CAAC,OAAQ,mBAE7Br9D,cAACu+D,GAAc,OAEjBv+D,cAACmzC,GAAa,MAGpB,C,4CC1FO,MAAM/J,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,iCAI3B+5C,GAAgBl6C,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8BAM/Bg6C,IAFkBn6C,KAAOC,IAAGQ,QAAAN,aAAA,QAEZH,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,6GAU/Bo7C,IAFqBv7C,aAAO0lB,GAAP1lB,CAAoBqC,QAAAlC,aAAA,QAEvBH,aAAOqsB,IAAepqB,MAAM,CACzD/lB,SAAU,+BACV+mB,QAAS,KACT5C,MAAO,WAHsBL,CAI7BuC,QAAApC,aAAA,SCTI4xB,GAAYC,aAAW,CAC3BE,KAAM,CACJ1wB,MAAO,QAET+Z,UAAW,CACTg3C,UAAW,IACXplD,gBAAiB,aAiKNqlD,I,2BAAAA,GArJyBA,KAEtC,MAAOC,EAAaC,GAAkBnvD,IAAMgE,SAAS,CACnDorD,UAAU,IAEN5/B,EAAUhB,MACT6gC,EAAMC,GAAWtvD,IAAMgE,SAAS,IAChCurD,EAAaC,GAAkBxvD,IAAMgE,SAAS,IAE/CyrD,EAAoB,CACxB,CAAE/vE,GAAI,SAAU2iC,MAAO,SAAUqtC,SAAU,IAC3C,CAAEhwE,GAAI,OAAQ2iC,MAAO,OAAQqtC,SAAU,IACvC,CACEhwE,GAAI,eACJ2iC,MAAO,sBACPqtC,SAAU,KAEZ,CACEhwE,GAAI,aACJ2iC,MAAO,iBACPqtC,SAAU,MAoBd,MAOMntC,EAAO,EAfXotC,EAiBEj2E,cAACsgE,KAAM,CACLC,QAASiV,EAAYE,SACrBlmD,SAXgBhD,IACpBipD,EAAe,IACVD,EACH,CAAChpD,EAAM/e,OAAOnM,MAAOkrB,EAAM/e,OAAO8yD,SAClC,EAQEn9C,MAAM,UACN9hB,KAAK,WACLsnC,WAAY,CAAE,aAAc,wBArBhCstC,EAuBE,QAtBFC,EAuBE,MAtBFC,EAuBE,UArBK,CAAEH,SAAQC,OAAME,aAAYD,kBANrC,IACEF,EACAC,EACAC,EACAC,EA8CF,OACEhyD,eAACglB,GAAS,CAAAnqC,SAAA,CACRe,cAACs+D,GAAe,IAChBt+D,cAACi9D,GAAa,CAAAh+D,SACZe,cAACk9D,GAAa,CAAAj+D,SACZmlB,eAAC4xB,KAAK,CAACjuB,UAAW+tB,EAAQb,KAAKh2C,SAAA,CAC7Be,cAACwlE,KAAc,CAACz9C,UAAW+tB,EAAQxX,UAAUr/B,SAC3CmlB,eAACqhD,KAAK,CAAC4Q,cAAY,EAAC,aAAW,eAAcp3E,SAAA,CAC3Ce,cAAC0lE,KAAS,CAAAzmE,SACRe,cAAC2lE,KAAQ,CAAA1mE,SACN82E,EAAQrwE,KAAK4wE,GACZt2E,cAAC4lE,KAAS,CAER2Q,MAAOD,EAAOC,MACdttE,MAAO,CACL+sE,SAAUM,EAAON,SACjB9lD,gBAAiB,WACjBjxB,SAEDq3E,EAAO3tC,OAPH2tC,EAAOtwE,UAYpBhG,cAACw2E,KAAS,CAAAv3E,SACP4pC,EACEqS,MAAMy6B,EAAOE,EAAaF,EAAOE,EAAcA,GAC/CnwE,KAAKopC,GAEF9uC,cAAC2lE,KAAQ,CACP8Q,OAAK,EACL1oD,KAAK,WACL2oD,UAAW,EAAEz3E,SAGZ82E,EAAQrwE,KAAK4wE,IACZ,MAAMp2E,EAAQ4uC,EAAIwnC,EAAOtwE,IACzB,OACEhG,cAAC4lE,KAAS,CAAiB2Q,MAAOD,EAAOC,MAAMt3E,SAC5Cq3E,EAAOK,QAA2B,kBAAVz2E,EACrBo2E,EAAOK,OAAOz2E,GACdA,GAHUo2E,EAAOtwE,GAIX,KATX8oC,EAAIonC,eAkBvBl2E,cAAC42E,KAAe,CACdC,mBAAoB,CAAC,EAAG,GAAI,IAC5BC,iBAAiB,uBACjB7gC,UAAU,MACVltB,MAAO8f,EAAKhkC,OACZgxE,YAAaA,EACbF,KAAMA,EACNoB,aA7EaC,CAACxqD,EAAgByqD,KACxCrB,EAAQqB,EAAQ,EA6ENC,oBAzEV1qD,IAEAspD,GAAgBtpD,EAAM/e,OAAOvN,OAC7B01E,EAAQ,EAAE,aA2EE,EClLT,MAAMhC,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,kCAI/B6hD,GAA2BhiD,aAAOqsB,IAAepqB,MAAM,CAClE/lB,SAAU,eACV+mB,QAAS,KACT5C,MAAO,WAH+BL,CAItCO,QAAAJ,aAAA,QAEW4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,kTAqB7B6wD,GAAoBhxD,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,kJAYnCm7C,GAAqBt7C,aAAOwM,KAAPxM,CAAiBqC,QAAAlC,aAAA,QAGtCH,KAAOC,IAAGsC,QAAApC,aAAA,6GAMLH,KAAOC,IAAGwC,QAAAtC,aAAA,6JAQbH,KAAOC,IAAG6C,QAAA3C,aAAA,sDAKPH,KAAOC,IAAG8C,QAAA5C,aAAA,sIC5Bbi0D,I,6CAAAA,GAhCcA,IAEzB/yD,eAACwvD,GAAa,CAAA30E,SAAA,CACZe,cAAC+kE,GAAwB,IACzB3gD,eAAC0vD,GAAW,CAAA70E,SAAA,CACVe,cAACgvC,KAAgB,CACfC,QACEjvC,cAACsgE,KAAM,CACL9wC,SAAUA,OACVpM,MAAM,UACN9hB,KAAK,QACLsnC,WAAY,CAAE,aAAc,wBAGhCD,MAAM,yCAER3oC,cAAC+zE,GAAiB,CAAA90E,SAChBe,cAACq+D,GAAkB,CACjBr4C,QAAQ,WACR0D,WAAS,EACTif,MAAM,iBACNC,WAAY,CAAC,EACbtnC,KAAK,eACLjD,KAAK,OACLmxB,SAAUA,iB,0CC7Bf,MAAMokD,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,kCAI/B6hD,GAA2BhiD,aAAOqsB,IAAepqB,MAAM,CAClE/lB,SAAU,eACV+mB,QAAS,KACT5C,MAAO,WAH+BL,CAItCO,QAAAJ,aAAA,QAQWk0D,IAN4Br0D,aAAOqsB,IAAepqB,MAAM,CACnE/lB,SAAU,yDACV+mB,QAAS,KACT5C,MAAO,WAHgCL,CAIvCS,QAAAN,aAAA,QAEoCH,KAAOC,IAAGU,QAAAR,aAAA,8FAOnCm0D,GAAuBt0D,KAAOC,IAAGoC,QAAAlC,aAAA,gGAOjCo0D,GAAoBv0D,KAAOC,IAAGsC,QAAApC,aAAA,iDAK9B4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,kTAqB7B6wD,GAAoBhxD,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,gNA8BnC2wD,IAdgB9wD,KAAOC,IAAG8C,QAAA5C,aAAA,0LAcRH,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,oEAMjCm7C,GAAqBt7C,aAAOwM,KAAPxM,CAAiBmD,QAAAhD,aAAA,QAGtCH,KAAOC,IAAGmD,QAAAjD,aAAA,6GAMLH,KAAOC,IAAGoD,QAAAlD,aAAA,6JAQbH,KAAOC,IAAGqD,QAAAnD,aAAA,sDAKPH,KAAOC,IAAG8mB,QAAA5mB,aAAA,sIChBbq0D,I,2BAAAA,GA/EeA,KAC5B,MAAM,kBAAEl5D,GAAsB0oB,MACtB7nC,SAAUsvB,GAAgBruB,KAC3BtC,EAAM41C,GAAWnpB,oBAAS,IAC1BktD,EAAQC,GAAantD,oBAAS,GAyBrC,OACElG,eAACwvD,GAAa,CAAA30E,SAAA,CACZe,cAAC+kE,GAAwB,IACzB3gD,eAAC0vD,GAAW,CAAA70E,SAAA,CACVmlB,eAAC2vD,GAAiB,CAAA90E,SAAA,CAChBe,cAACq+D,GAAkB,CACjBr4C,QAAQ,WACRijB,YAAY,gBACZvf,WAAS,EACTkf,WAAY,CAAC,EACbtnC,KAAK,eACLjD,KAAK,OACLmxB,SAAUA,OACVykB,WAAY,CACVyjC,aACE13E,cAACm0C,KAAc,CAACtlC,SAAS,MAAK5P,SAC3Bu4E,EACCx3E,cAAC+8D,KAAS,CAAC9zD,MAAO,CAAEma,MAAOu0D,KAAM,QAEjC33E,cAACkqB,KAAS,CAAC9G,MAAM,mBAM3BpjB,cAAC6zE,GAAe,CAAA50E,SACde,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UACEluB,EAAOmC,cAAC43E,KAAQ,CAAC7vD,UAAU,cAAiB/nB,cAAC43E,KAAQ,IAEvD3tD,QAvDW5qB,UACrBo0C,GAAQ,GACR,MAAMtsC,OCTyB9H,OACjC8Z,EACAja,UAGa8Z,GACX,OAFU,cAIV9Z,EACAia,GDAqB0+D,CACnB,CACEC,cAAe,IAEjBtpD,GAEErnB,EAAO+U,QACL/U,EAAO4U,KAAKxd,MACd8f,EAAkB,UAAW,6BAC7Bo5D,GAAU,KAEVp5D,EAAkB,QAAS,kBAC3Bo5D,GAAU,KAGZp5D,EAAkB,QAAS,gCAC3Bo5D,GAAU,IAEZhkC,GAAQ,EAAM,EAoCJ/pB,WAAS,EAAAzqB,SACV,mBAKLmlB,eAACizD,GAAoB,CAAAp4E,SAAA,CACnBe,cAACo3E,GAAsB,CAAAn4E,SAAC,gBACxBe,cAACs3E,GAAiB,CAAAr4E,SAAC,wDAKT,EE3FL,SAASiyB,KACtB,OACE9M,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAAC+3E,GAAgB,IACjB/3E,cAACm3E,GAAU,IACXn3E,cAACu3E,GAAW,OAEdv3E,cAACmzC,GAAa,MAGpB,CCfO,MAAMygC,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI/B80D,GAAgCj1D,aAAOqsB,GAAPrsB,CAAqBO,QAAAJ,aAAA,6CAIrD2wD,GAAkB9wD,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,+EAOjCkmB,GAAYrmB,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,0GAO3B+0D,GAAmBl1D,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,wJASlCg1D,GAAYn1D,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,kSAoB3B4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,mQAkB7Bi1D,GAAwBp1D,KAAOC,IAAG6C,QAAA3C,aAAA,4HAUlCm7C,GAAqBt7C,aAAOwM,KAAPxM,CAAiB+C,QAAA5C,aAAA,uE,gFCjF5C,MAAMk1D,GAAwBr1D,KAAOC,IAAGC,QAAAC,aAAA,4HAQlCm1D,GAAyBt1D,KAAOC,IAAGM,QAAAJ,aAAA,wEAMnCo1D,GAAoBv1D,KAAOC,IAAGQ,QAAAN,aAAA,yFAO9Bq1D,GAAax1D,KAAOwnB,KAAI7mB,QAAAR,aAAA,mDAKxBkmB,GAAYrmB,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,gPAgB3BwpB,GAAsB3pB,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,gLAarCopB,GAAiBvpB,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,mGAQhCqpB,GAAkBxpB,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,wFAOjCspB,GAAczpB,aAAO0C,IAAST,OAAOhmB,IAAK,CACrD+oB,UAAW/oB,EAAM+oB,aADQhF,CAExB+C,QAAA5C,aAAA,qNAkBUu+C,GAAqB1+C,aAAOypB,GAAPzpB,CAAmBkD,QAAA/C,aAAA,wCAIxCs1D,GAAsBz1D,aAAOypB,GAAPzpB,CAAmBmD,QAAAhD,aAAA,0E,+BCxEvC,SAASu1D,GAA6Bz5E,GAAyB,IAAD05E,EAC3E,MAAM,MACJxwE,EAAK,OACLywE,EAAM,iBACNC,EAAgB,eAChBC,EAAc,SAEdnxC,GACE1oC,GACE,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAC1B0uC,EAAYC,GAAiBxiB,mBAAiB,IAC/C8T,EAASu6C,EAAO/nE,eAAiB,CAAC,KACjCkoE,EAAUC,GAAezuD,oBAAS,IAClCo1C,EAAOC,GAAYr1C,mBAA0B,KAC9C,eAAEgO,GAAmBH,KACrB6gD,EAAmC,YAAjBL,EAAOpqE,MAEzB1Q,EAAO8pB,uBAAYtoB,UACnBoP,GAAYkqE,GAA2B,WAAjBA,EAAOpqE,QAC1BoqE,EAAO/nE,gBACV+nE,EAAO/nE,cAAgB,CAAC,KAG1B1R,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKX,IAAImxD,EAA4B,GAE5Bl4B,IACFk4B,EAAW,IACNA,KACAl4B,EAAShiC,KAAKoqC,IAAM,CACrB9pC,GAAI8pC,EAAOxuC,KACXA,KAAMwuC,EAAOxuC,UAEfmyB,MAAK,SAAUjnB,EAAGuH,GAClB,OAAOvH,EAAElL,KAAOyS,EAAEzS,KAAO,EAAIyS,EAAEzS,KAAOkL,EAAElL,MAAQ,EAAI,CACtD,IAEAs+D,EAASl6D,KAAKrH,IACZ,GAAgC,MAA5BA,EAAK2H,GAAGmN,UAAU,EAAG,GAAY,CAEnC,IAAI0sD,EADU,GAAA74D,OAAM3I,EAAK2H,GAAGk1C,MAAM,EAAG,GAAK,KAAGl0C,OAAG3I,EAAK2H,GAAGk1C,MAAM,IAE9D78C,EAAK2H,GAAK65D,CACZ,CACA,OAAOD,CAAQ,KAInBD,EAASC,EAAS,GAEjB,CAACl4B,EAAUixC,EAAQzwE,IAEtB9I,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MA8EMmvC,EAAuB60B,IACrBpzD,GAAYA,EAAS5M,UACzBu8B,EAAOjyB,OAAO01D,EAAa,GAC3BpzD,EAAS5M,QAAQqG,GAAO0I,cAAgBwtB,EAExCl/B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,EAuCIwqE,EAAkBA,CAACrlE,EAAc1L,KAAmB,IAADgxE,EACvD,OACE90D,eAAC0H,GAAqB,CAAA7sB,SAAA,CACpBe,cAAC8uB,KAAO,CACNvgB,OAEuC,QADrC2qE,EAAAxxC,EACG98B,MAAMwtB,GAAM,IAAApxB,OAAIoxB,EAAE92B,QAAWsS,WAAK,IAAAslE,OAAA,EADrCA,EAEI96C,OAAO14B,KAAKipC,GAAMA,EAAE7G,WACrBpiC,KAAKyzE,GAAMA,IACXpyB,KAAK,OAAQ,GACjB9nD,SAEDe,cAACo5E,KAAc,CAACpsD,SAAU,YAE3BpZ,EACU,IAAV1L,GACClI,cAAC+pB,KAAU,CAACE,QAASA,IAAM+iB,EAAoB9kC,GAAQqlB,KAAK,QAAOtuB,SACjEe,cAACkqB,KAAS,QAfYhiB,EAkBJ,EAItB05D,EAAiBA,CAAChuD,EAAc1L,IAElCkc,eAAC0H,GAAoB,CAAA7sB,SAAA,CAClB2U,EACU,IAAV1L,GACClI,cAAC+pB,KAAU,CAACE,QAASA,IAAM+iB,EAAoB9kC,GAAQqlB,KAAK,QAAOtuB,SACjEe,cAACkqB,KAAS,QAJWhiB,GA6B/B,OACEkc,eAAC0H,GAAW,CAAA7sB,SAAA,CACVmlB,eAAC0H,GAAuB,CAAA7sB,SAAA,CACtBmlB,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrC+5E,EACCh5E,cAAAysB,WAAA,CAAAxtB,SAAE,aAEFmlB,eAAAqI,WAAA,CAAAxtB,SAAA,CACGq5B,EAAe,UAAU,KAAG,IAC5BugD,EAAiB3wE,EAAQA,EAAQ,QAItC8wE,GACA50D,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC+pB,KAAU,CAACE,QAASA,IAAM8uD,GAAaD,GAAU75E,SAChDe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,QAAStJ,UAAU,QAAO/vB,SACvDe,cAACq5E,KAAQ,CAACC,UAAU,gBAIxBt5E,cAACgvC,KAAgB,CACf/lC,MAAO,CAAEisC,WAAY,OACrBjG,QACEjvC,cAACo0E,KAAQ,CACP7T,QAASoY,EAAO7d,OAChBtrC,SAAWjoB,IAAMgyE,OA1KThZ,EA0K0Bh5D,EAAEkG,OAAO8yD,aAzKvD9xD,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,KACnDywE,EAAO7d,OAASyF,EAChB9xD,EAAS5M,QAAQqG,GAAO4yD,OAASyF,EAE7B9xD,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAVW8xD,KA0K4C,EACpDn9C,MAAM,YAGVulB,MAAOrQ,EAAe,wBAKZ,WAAjBqgD,EAAOpqE,QAAuByqE,GAAmBJ,GAChD54E,cAAC+pB,KAAU,CAACE,QAASA,KAjKrBxb,GAAYA,EAAS5M,UACzB4M,EAAS5M,QAAQsK,OACfsC,EAAS5M,QAAQ0J,WAAWqB,GAAMA,EAAE2B,QAAUoqE,EAAOpqE,QACrD,GAGFrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAuJ2C,EAAAxP,SAC9Ce,cAACmsC,KAAU,CAACljC,MAAO,CAAEuwE,UAAW,UAAYF,UAAU,iBAI3DN,EACCh5E,cAAAysB,WAAA,IACY,IAAVvkB,EACFlI,cAAC8rB,GAAuB,CAAA7sB,SACtBmlB,eAAC0H,GAAY,CAAA7sB,SAAA,CACVq5B,EAAe,uBAAuB,IAACt4B,cAAA,UAAAf,SAAQ,QAAa,IAC5Dq5B,EAAe,MAAM,IAACt4B,cAAA,UAAAf,SAAQ,UAAc,SAIjDe,cAAC8rB,GAAuB,CAAA7sB,SACrB65E,GACC10D,eAAC0H,GAAY,CAAA7sB,SAAA,CACVq5B,EAAe,uBAAuB,IAACt4B,cAAA,UAAAf,SAAQ,QAAa,IAC5Dq5B,EAAe,MAAM,IAACt4B,cAAA,UAAAf,SAAQ,UAAc,SAMrDmlB,eAAC0H,GAAwB,CAAA7sB,SAAA,CACvBe,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAACuvB,KAAS,CACRrvB,MAAOy4E,EAAOpqE,MACdihB,SAAWjoB,IAAMgtE,OA3PA7kD,EA2PkBnoB,EAAEkG,OAAOvN,WA1PhDuO,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,IAC9B,WAAjBywE,EAAOpqE,QACT6vB,EAAO,GAAK1O,EACRipD,EAAO/nE,gBAAe+nE,EAAO/nE,cAAc,GAAK8e,GACpDipD,EAAOpqE,MAAQmhB,EACfjhB,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAbUihB,KA2PkC,EACnDiZ,MAAOrQ,EAAe,eACtByQ,WAAYmW,EAAW,WAADl4C,OAAYkB,EAAK,YACvCkU,QAAS8iC,EAAW,WAADl4C,OAAYkB,EAAK,YACpC+jB,SAAU+sD,MAGbA,EACCh5E,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAACuvB,KAAS,CACRrvB,MAAOy4E,EAAOc,eACdjqD,SAAWjoB,IAAMmyE,OAhPGC,EAgPoBpyE,EAAEkG,OAAOvN,WA/OvDuO,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,IAC9B,WAAjBywE,EAAOpqE,QACToqE,EAAOc,eAAiBE,EACxBlrE,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAXekrE,KAgPoC,EACxDhxC,MAAM,qBACNjf,WAAS,EACTzgB,MAAO,CAAE2wE,aAAc,YAwB3Bx1D,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC8rB,GAAqB,CAAA7sB,SACpBe,cAAC8zC,KAAY,CACX5rB,QAASw3C,EAAMh6D,KAAK0yB,GAAMA,EAAEpyB,KAC5BwhB,OAAQqlB,GAAcA,EAAWhoC,OAAS,EAC1CikC,OAAQA,IAAMgE,EAAc,IAC5B+sC,UAAW,KACXjT,eAAiB7yB,GAAWA,EAC5BC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJ/I,SAAWjoB,GAAMulC,EAAcvlC,EAAEkG,OAAOvN,OACxC8lB,QAAQ,WACRiG,SAA2B,KAAjB0sD,EAAOpqE,MACjBmb,WAAS,EACTxpB,MACmB,WAAjBy4E,EAAOpqE,MAAqBoqE,EAAOpqE,MAAQs+B,EAE7C5D,YAAW,GAAAjiC,OAAKsxB,EAAe,yBAAwB,MAAAtxB,OACrD2xE,EAAOpqE,OAAS,GAAE,KAEpB0+B,UAAYzgB,GAxNHA,KACzB,GAAqB,WAAjBmsD,EAAOpqE,QACa,KAAlBie,EAAM0gB,SAAoC,IAAlB1gB,EAAM0gB,SAAe,CAC5B,KAAfL,IACFzO,EAAOh2B,KAAKykC,GAENp+B,GAAYA,EAAS5M,UACzB4M,EAAS5M,QAAQqG,GAAO0I,cAAgBwtB,EACxCl/B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAMbq+B,EAAc,IACd,MAAM/hC,EAAQyhB,EAAMI,cAAc3tB,SAAS,GACxCA,SAAS,GACZ8L,EAAMg3D,OACNh3D,EAAMi3D,OACR,CACF,EAgMsC70B,CAAkB3gB,KAG5Cm6C,cAAeruC,EAAe,aAC9B9I,SAAUA,CAACjoB,EAAGrH,KAnJC45E,IAAyBC,KAmJQ75E,GAAS,MAjJnEk+B,EAAOh2B,KAAK2xE,GAENtrE,GAAYA,EAAS5M,UACzB4M,EAAS5M,QAAQqG,GAAO0I,cAAgBwtB,EACxCl/B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAyI4D,MAGjEzO,cAAC8rB,GAAiB,CAAA7sB,SACK,QADLy5E,EACfC,EAAO/nE,qBAAa,IAAA8nE,OAAA,EAApBA,EAAsBhzE,KAAI,CAACkO,EAAM1L,IArMnB6kC,EAACn5B,EAAc1L,KACxC,GAAa,KAAT0L,EAEF,MAD4C,MAAzBA,EAAKT,UAAU,EAAG,GAEjC8lE,EAAgBrlE,EAAM1L,GACtB05D,EAAehuD,EAAM1L,GACpB,OAAOlI,cAAAysB,WAAA,GAAK,EAgMPsgB,CAAmBn5B,EAAM1L,eAQzC,CCnYe,SAAS8xE,GAAmB1yD,GAAgC,IAAD2yD,EAAAC,EAAA76C,EAAAm/B,EAAA,IAA9B,UAAE2b,GAAY,GAAc7yD,EACtE,MAAM,MAAEnpB,EAAK,SAAEe,GAAamgD,MACpBngD,SAAUsvB,GAAgBruB,KAC5B,SAAEsO,EAAQ,WAAEywC,GAAe/gD,GAC1BsE,EAAU23E,GAAe9vD,oBACtB,OAAR7b,QAAQ,IAARA,GAAkB,QAAVwrE,EAARxrE,EAAUhM,gBAAQ,IAAAw3E,OAAV,EAARA,EAAoB9mE,UAAU,EAAW,OAAR1E,QAAQ,IAARA,GAAkB,QAAVyrE,EAARzrE,EAAUhM,gBAAQ,IAAAy3E,OAAV,EAARA,EAAoBr1E,UAAW,YAG5Dw1E,EAAgBt/C,kBAAO,IACvB,QAAEle,GAAYkqB,KAAU5oC,OACvBupC,EAAU4yC,GAAehwD,mBAAoB,KAE9C,eAAEgO,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACvB,GAAIlZ,EAAU,CAAC,IAADuD,EACZ,GAAIvD,EAAS5M,SAAwC,KAAb,QAAhBmQ,EAAAvD,EAAS5M,eAAO,IAAAmQ,OAAA,EAAhBA,EAAkBnN,QAAc,CACtD,MAAMhD,EAAU,CACd,CAAE0M,MAAO4rE,EAAY,UAAY,GAAIrf,QAAQ,GAC7C,CAAEvsD,MAAO,SAAUusD,QAAQ,IAG7BrsD,EAAS5M,QAAUA,EACnB3C,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,CACKA,EAAS/M,WACZ+M,EAAS/M,SAAW,CAClBuF,QAAS,GACTszE,wBAAyB,GACzBxzE,IAAK,IAEP7H,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAMNA,EAAShM,WACZgM,EAAShM,SAAW,gBACpBvD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,IACC,CAACA,EAAU0rE,EAAWj7E,IAYnBs7E,EAAe7yD,uBAAYtoB,UAC/B,GAAIwd,EAAS,CACX,MAAM1V,QAAe4mC,GAAY,CAAExxB,SAAUM,GAAW2R,GAExD,GAAIrnB,EAAO+U,SACH/U,EAAO4U,KAAM,CACjB,MAAM0+D,EAAiBtzE,EAAO4U,KAAKhW,QAChCwB,GAAuB,UAAjBA,EAAEsgC,aAEXyyC,EAAY,IAAIG,GAClB,CAEJ,IACC,CAAC59D,EAAS2R,IAEbpvB,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJuB,qBAAU,KACRo7E,IACIL,GAAaE,EAAc3+C,UAC7B2+C,EAAc3+C,SAAU,EAC1B,GACC,CAAC8+C,EAAcL,IAElB,MAsHMvB,KACFnqE,IAAcA,EAAS5M,WACrB4M,EAAS5M,QAAQgD,OAAS,GAAKs1E,GAGrC,OACE/1D,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAiB,CAAA7sB,SAChBmlB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrCq5B,EAAe,yBAElBt4B,cAAC8rB,GAAkB,CAAA7sB,SACjBe,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAOrQ,EAAe,WACtB5O,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBp4B,UAAW,GACtCuoB,SAAWjoB,IAAMmzE,OA9CCx6E,EA8CoBqH,EAAEkG,OAAOvN,WA7CnDuO,GAAYA,EAAS/M,WACzB+M,EAAS/M,SAASuF,QAAU/G,EAC5BhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAPiBvO,KA8CoC,EACtDipC,QAAS,EACTT,QAAS,EACTM,WAAS,EACT5sB,QAAS8iC,EAAoB,QAC7BnW,WAAYmW,EAAoB,iBAKxCl/C,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAvHgB0wD,KACtB,GAAIlsE,EAAU,CACZ,GAAIA,EAAS5M,QAAS,CACpB,MAAM4tD,EAAQhhD,EAAS5M,QAAQ+I,MAC5B8B,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEX+iE,EAAa/kE,EAAS5M,QAAQkE,QACjC2G,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEjB+iE,EAAWprE,KAAK,CACdmG,MAAO,GACPqsE,QAAS,GACThqE,cAAe,CAAC,IAChBkqD,QAAQ,IAENrL,GACF+jB,EAAWprE,KAAKqnD,GAElBhhD,EAAS5M,QAAU2xE,CACrB,MACE/kE,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,WAG/BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAwF+BxP,SAExBq5B,EAAe,iBAIpBt4B,cAAC8rB,GAAa,CAAA7sB,SACXwP,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQ6D,KA/InCm1E,CAAClC,EAAgBzwE,IAElClI,cAAA,OAAAf,SACoB,WAAjB05E,EAAOpqE,OACNvO,cAACy4E,GAA4B,CAC3BvwE,MAAOA,EACPywE,OAAQA,EACRC,iBAAkBA,EAClBC,eAAgBsB,EAEhBzyC,SAAUA,KARNx/B,OAgJVkc,eAAAqI,WAAA,CAAAxtB,SAAA,EACIk7E,GACA/1D,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC86E,KAAS,CAAA77E,SACRe,cAACgvC,KAAgB,CACfC,QACEjvC,cAACsgE,KAAM,CACLC,QAAiB,OAAR9xD,QAAQ,IAARA,OAAQ,EAARA,EAAU/L,aACnB0gB,MAAM,UACNoM,SAAWjoB,IAlEKrH,QAmEWqH,EAAEkG,OAAO8yD,QAlE9C9xD,IACJA,EAAS/L,aAAexC,EACxBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MA4DiD,IAIhDk6B,MAAOrQ,EAAe,sBACtBlV,MAAM,eAGD,OAAR3U,QAAQ,IAARA,OAAQ,EAARA,EAAU/L,eACT0hB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC+lB,KAAU,CAACC,QAAQ,YAAW/mB,SAC5Bq5B,EAAe,oBAElBt4B,cAACuvB,KAAS,CAACrvB,MAAO,QAAS+I,MAAO,CAAE0gB,SAAU,UAC9C3pB,cAACuvB,KAAS,CAACrvB,MAAOuC,EAAU+sB,SAtHxCjoB,IAMA,GAAMkH,GAAYA,EAAShM,SAAU,CACnC,MAAMs4E,EAAoBvtE,EAAiBjG,EAAG,QAAQ,GACtDkH,EAAShM,SAAQ,QAAAuE,OAAW+zE,GAE5BX,EAAYW,GAEZ77E,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,WAwGI2V,eAAC0H,GAAuB,CAAA7sB,SAAA,CACtBe,cAAC8rB,GAA+B,CAAC9F,QAAQ,QAAQ5C,MAAM,UAASnkB,SAC7Dk7E,EACG,gFACA7hD,EAAe,6BAErBt4B,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR0D,WAAS,EACTif,MAAOrQ,EAAe,WACtB0Q,WAAS,EACTH,KAAM,EACNvnC,KAAK,eACLjD,KAAK,OACL6B,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV+vD,EAAR/vD,EAAU/M,gBAAQ,IAAA88D,OAAV,EAARA,EAAoB+b,0BAA2B,GACtD/qD,SAAWjoB,IA9MwBopD,QA+MGppD,EAAEkG,OAAOvN,MA9MjDuO,GAAYA,EAAS/M,WACzB+M,EAAS/M,SAAS64E,wBAA0B5pB,EAE5CzxD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAuMkD,YAOjE,CC9Ue,SAASpL,KACtB,OACE+gB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACg6E,GAAmB,OAEtBh6E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,CCdO,MAAMrxB,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,gIAU3Bo7C,GAAkBv7C,aAAOqsB,GAAPrsB,CAAqBO,QAAAJ,aAAA,QCPrC,SAAS83D,KACtB,MAAM,MAAE78E,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACd88E,EAAgBC,GAAqB5wD,oBACjC,OAAR7b,QAAQ,IAARA,OAAQ,EAARA,EAAUlM,cAA+B,SAGtC,eAAE+1B,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,IAAaA,EAASlM,cACxBkM,EAASlM,YAAc,OAEvBrD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAgBJ,OACEumB,eAACglB,GAAS,CAAAnqC,SAAA,CACRe,cAACs+D,GAAe,CAACt4C,QAAQ,KAAK5C,MAAM,UAASnkB,SAC1Cq5B,EAAe,mBAElBlU,eAAC87C,KAAM,CACLhgE,MAAO+6E,EACPj1D,QAAQ,WACRwJ,SAAWjoB,GAtBWopD,KAC1B,GAAIliD,EAAU,CACZ,MAAMvO,EAAQywD,EACduqB,EAAkBh7E,GAElBuO,EAASlM,YAAcrC,EAEvBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,SAAU,IAAKA,KAE3B,GAWqB0sE,CAAmBrwE,OAAOvD,EAAEkG,OAAOvN,QAAQjB,SAAA,CAE5De,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SAAEq5B,EAAe,yBACzCt4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAEq5B,EAAe,0BAC1Ct4B,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SAAEq5B,EAAe,0BACxCt4B,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SAAEq5B,EAAe,6BAC7Ct4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAEq5B,EAAe,+BAIlD,CC5De,SAASn1B,KACtB,OACEihB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACu+D,GAAc,CAACE,SAAO,IACvBz+D,cAACg7E,GAAa,OAEhBh7E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,C,aCHepK,OAdA,CACbjnB,UAAWrmB,KAAOC,IAAGC,QAAAC,aAAA,YAErBk4D,UAAWr4D,KAAOC,IAAGM,QAAAJ,aAAA,gCAGrBm4D,iBAAkBt4D,KAAOhY,MAAKyY,QAAAN,aAAA,2DCDhC,MAAQkmB,UAAS,aAAEgyC,GAAS,iBAAEC,IAAqBhrB,G,UCiBpCA,OAtBA,CACbjnB,UAAWrmB,KAAOC,IAAGC,QAAAC,aAAA,kLASrBo4D,IAAKv4D,KAAOoL,OAAM7K,QAAAJ,aAAA,+LCNpB,MAAQkmB,UAAS,OAAEkyC,IAAQjrB,G,wCCHpB,MAAMkrB,GAAuBx4D,aAAOqsB,GAAPrsB,CAAqBE,QAAAC,aAAA,QAE5Cs4D,GAAqBz4D,aAAOqsB,GAAPrsB,CAAqBO,QAAAJ,aAAA,QAE1CkmB,GAAYrmB,KAAOC,IAAGQ,QAAAN,aAAA,wEAMtBu4D,GAAmB14D,KAAOC,IAAGU,QAAAR,aAAA,iMAa7BC,GAAUJ,KAAOC,IAAGoC,QAAAlC,aAAA,6KA4BpBw4D,IAjBwB34D,KAAOC,IAAGsC,QAAApC,aAAA,4PAiBdH,KAAOC,IAAGwC,QAAAtC,aAAA,qJA8C5BmtC,I,oCAAAA,GAnCA,CACbsrB,MAAO54D,KAAOhY,MAAK8a,QAAA3C,aAAA,8BAGnB04D,UAAW74D,KAAOC,IAAG8C,QAAA5C,aAAA,kHAMrB24D,eAAgB94D,KAAOC,IAAGiD,QAAA/C,aAAA,6JAQ1B44D,YAAa/4D,KAAOC,IAAGkD,QAAAhD,aAAA,sDAKvB64D,eAAgBh5D,KAAOC,IAAGmD,QAAAjD,aAAA,uICrFQH,aAAOqsB,IAAepqB,MAAM,CAC9D/lB,SAAU,6BACV+mB,QAAS,KACT5C,MAAO,WAH2BL,CAIlCE,QAAAC,aAAA,QAEgCH,aAAOqsB,IAAepqB,MAAM,CAC5D/lB,SAAU,0BACV+mB,QAAS,KACT5C,MAAO,WAHyBL,CAIhCO,QAAAJ,aAAA,QAEuBH,KAAOC,IAAGQ,QAAAN,aAAA,wEAMHH,KAAOC,IAAGU,QAAAR,aAAA,iMAanBH,KAAOC,IAAGoC,QAAAlC,aAAA,6KA/B1B,MA0CM84D,GAAwBj5D,KAAOC,IAAGsC,QAAApC,aAAA,4PAiBdH,KAAOC,IAAGwC,QAAAtC,aAAA,oJAYlCH,KAAOhY,MAAK8a,QAAA3C,aAAA,8BAGRH,KAAOC,IAAG8C,QAAA5C,aAAA,kHAMLH,KAAOC,IAAGiD,QAAA/C,aAAA,6JAQbH,KAAOC,IAAGkD,QAAAhD,aAAA,sDAKPH,KAAOC,IAAGmD,QAAAjD,aAAA,sICxFb,SAAS+4D,GACtBj9E,GACC,IAADi7E,EAAAC,EACA,MAAM,UAAE1a,EAAS,QAAEx5C,GAAYhnB,GACzB,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACd+9E,EAAWC,GAAgB7xD,oBACxB,OAAR7b,QAAQ,IAARA,GAAkB,QAAVwrE,EAARxrE,EAAUhM,gBAAQ,IAAAw3E,OAAV,EAARA,EAAoB9mE,UAAU,EAAG,KAAM,UAElC1Q,EAAU23E,GAAe9vD,oBACtB,OAAR7b,QAAQ,IAARA,GAAkB,QAAVyrE,EAARzrE,EAAUhM,gBAAQ,IAAAy3E,OAAV,EAARA,EAAoB/mE,UAAU,EAAW,OAAR1E,QAAQ,IAARA,OAAQ,EAARA,EAAUhM,SAASoC,UAAW,aAE3D,eAAEyzB,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,IAAaA,EAAS7M,SACnB6M,EAAShM,WACZgM,EAAShM,SAAW,gBAEpBvD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAMNA,EAASlM,cACZkM,EAASlM,YAAc,OAEvBrD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKb,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAMu+E,EAAoBA,CACxB70E,EAKAurB,KAEA,GAAMrkB,EAAU,CACd,IAAInB,EAAiBxC,OAAOvD,EAAEkG,OAAOvN,OAEvB,aAAV4yB,GAA0BrkB,EAAS/M,SACrC+M,EAAS/M,SAAS64E,wBAA0BjtE,EAC3B,aAAVwlB,GACPxlB,EACgB,UAAd4uE,EAAwB1uE,EAAiBjG,EAAG,QAAQ,GAAQ+F,EAC9DmB,EAASqkB,GAASopD,EAAY5uE,EAE9B8sE,EAAY9sE,IACPmB,EAASqkB,GAASxlB,EAEzBpO,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAqBF,OACE2V,eAAC0H,GAAuB,CAAA7sB,SAAA,CACrBugE,GACCx/D,cAAC+lB,KAAU,CAACC,QAAQ,QAAO/mB,SAAEq5B,EAAe,oBAE9ClU,eAAA,OAAAnlB,SAAA,CACEmlB,eAAC87C,KAAM,CACLhgE,MAAOg8E,EACPl2D,QAASA,EACTwJ,SAAUA,IA3BS6sD,MACzB,GAAM5tE,EAAU,CACd,MAAM6tE,EAA8B,UAAdJ,EAAwB,QAAU,QACxDC,EAAaG,GAEb7tE,EAAmB,SAAI6tE,EAAgB75E,EAEvCvD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAYsB4tE,GAAqBp9E,SAAA,CAErCe,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,UAC1Be,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,aAEb,UAAdi9E,EACCl8E,cAACuvB,KAAS,CACRrvB,MAAOuC,EACPujB,QAASA,EACTwJ,SAAWjoB,GAAM60E,EAAkB70E,EAAG,cAGxC6c,eAAC87C,KAAM,CACLhgE,MAAOuC,EACPujB,QAASA,EACTwJ,SAAWjoB,GAAM60E,EAAkB70E,EAAG,YAAYtI,SAAA,CAElDe,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SAAC,SACzBe,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SAAC,aAC7Be,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,UAC1Be,cAACogE,KAAQ,CAAClgE,MAAO,cAAcjB,SAAC,gBAChCe,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SAAC,QACxBe,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,sBAM1C,CCvIA,MAAM,UAAE28E,IAAcvrB,GAEP,SAASksB,KAAwB,IAADxU,EAAAyU,EAAAn9C,EAC7C,MAAM,MAAElhC,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACf,eAAEm6B,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,IAAaA,EAAS7M,SACxB6M,EAAS7M,OAAS,CAChBgP,cAAe,CAAC,GAAI,GAAI,IACxBhK,UAAW,CACT,CACEtF,KAAM,GACN21D,QAAS,GACTnwD,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACVlY,MAAO,GACP4/D,aAAc,GACdC,QAAQ,KAKdtxD,EAAS/M,SAAW,CAClBuF,QAAS,GACTszE,wBAAyB,IAGtB9rE,EAAShM,WACZgM,EAAShM,SAAW,iBAGjBgM,EAASlM,cACZkM,EAASlM,YAAc,QAGzBrD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAwBMu+E,EAAoBA,CACxB70E,EAKAurB,KAEA,GAAMrkB,EAAU,CACd,IAAInB,EAAiBxC,OAAOvD,EAAEkG,OAAOvN,OAEvB,aAAV4yB,GAA0BrkB,EAAS/M,SACrC+M,EAAS/M,SAAS64E,wBAA0BjtE,EAC3B,aAAVwlB,IACFrkB,EAASqkB,GAASxlB,GAEzBpO,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAsBF,OACE2V,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAsB,CAAC9F,QAAQ,KAAK5C,MAAM,UAASnkB,SACjDq5B,EAAe,yBAElBt4B,cAAC8rB,GAAkB,CAAA7sB,SACjBe,cAAA,OAAAf,SACW,OAARwP,QAAQ,IAARA,GAAgB,QAARs5D,EAARt5D,EAAU7M,cAAM,IAAAmmE,GAAwB,QAAxByU,EAAhBzU,EAAkBnhE,UAAU,GAAGE,iBAAS,IAAA01E,OAAhC,EAARA,EAA0C92E,KA1B3B+2E,CAACzmE,EAAkBvJ,IAEvC2X,eAACw3D,GAAS,CAAA38E,SAAA,CACRe,cAAA,UAAAf,SAASq5B,EAAe,cAExBt4B,cAACuvB,KAAS,CACRvJ,QAAQ,WACRwJ,SAAWjoB,IA1DOgtE,EACxBrsE,EACAX,KACI,IAADy3B,EAAA4oC,EACH,GAAMn5D,GAA6B,QAAhBuwB,EAACvwB,EAAS7M,cAAM,IAAAo9B,GAAc,QAAd4oC,EAAf5oC,EAAiBp4B,UAAU,UAAE,IAAAghE,GAA7BA,EAA+B9gE,UAAW,CAAC,IAADw4D,EAC5D,MAAM,MAAEp/D,GAAUqH,EAAEkG,OACdw6D,GACW,QAAf3I,EAAA7wD,EAAS7M,cAAM,IAAA09D,OAAA,EAAfA,EAAiB14D,UAAU,GAAGE,UAAUpB,KAAI,CAACsQ,EAAUvJ,IACrDA,IAAMvE,EAAQhI,EAAQ8V,MACnB,GAEPvH,EAAS7M,OAAOgF,UAAU,GAAGE,UAAYmhE,EAEzC/oE,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAsCQ8lE,CAAkB9nE,EAAGlF,EAAE,EAEzBrH,MAAO8V,EACP0T,WAAS,EACTsf,WAAS,EACTG,QAAS,MACT,YAAAniC,OAZwByF,UA4B5B2X,eAAC0H,GAAS,CAAA7sB,SAAA,CACRe,cAAC8rB,GAAoB,CAAC9F,QAAQ,KAAK5C,MAAM,UAASnkB,SAC/Cq5B,EAAe,sBAElBlU,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAAC+lB,KAAU,CAACC,QAAQ,QAAO/mB,SACxBq5B,EAAe,oBAElBlU,eAAC87C,KAAM,CACLhgE,OAAe,OAARuO,QAAQ,IAARA,OAAQ,EAARA,EAAUlM,cAAe,OAChCyjB,QAAQ,WACRwJ,SAAWjoB,GAAM60E,EAAkB70E,EAAG,eAAetI,SAAA,CAErDe,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SACrBq5B,EAAe,0BAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAC1Bq5B,EAAe,4BAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SACtBq5B,EAAe,2BAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SACrBq5B,EAAe,0BAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SACtBq5B,EAAe,2BAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SACtBq5B,EAAe,2BAElBlU,eAACg8C,KAAQ,CAAClgE,MAAO,cAAcjB,SAAA,CAC5Bq5B,EAAe,+BAA+B,aAEjDt4B,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SACpBq5B,EAAe,yBAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SACrBq5B,EAAe,0BAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SACpBq5B,EAAe,yBAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SACzBq5B,EAAe,8BAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SAAC,QACxBe,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SAAC,SACzBe,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SACzBq5B,EAAe,iCAIpBt4B,cAACi8E,GAAwB,CAACzc,WAAS,OASrCp7C,eAAC0H,GAAS,CAAA7sB,SAAA,CACRe,cAAC+lB,KAAU,CAACC,QAAQ,QAAO/mB,SACxBq5B,EAAe,6BAElBt4B,cAACuvB,KAAS,CACRvJ,QAAQ,WACR0D,WAAS,EACTxpB,MAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBk7C,wBAC3B/qD,SAAWjoB,GAAM60E,EAAkB70E,EAAG,YACtCyhC,WAAS,EACTG,QAAS,YAMrB,C,QCxMe+2B,I,GCbAkU,I,wBAFErxD,aAAO25D,KAAP35D,CAAsBE,QAAAC,aAAA,QCmCxBmtC,OArCA,CACbjnB,UAAWrmB,KAAOC,IAAGC,QAAAC,aAAA,YAErBC,QAASJ,KAAOC,IAAGM,QAAAJ,aAAA,kHAMnBy5D,KAAM55D,KAAOC,IAAGQ,QAAAN,aAAA,gCAGhB05D,UAAW75D,KAAOhY,MAAK2Y,QAAAR,aAAA,8BAGvB25D,WAAY95D,KAAO4qC,OAAMvoC,QAAAlC,aAAA,8BAGzB45D,UAAW/5D,KAAOC,IAAGsC,QAAApC,aAAA,gCAGrB65D,eAAgBh6D,KAAOC,IAAGwC,QAAAtC,aAAA,sGAM1B85D,iBAAkBj6D,KAAOC,IAAG6C,QAAA3C,aAAA,wGCnB9B,MACEkmB,UAAS,GACTjmB,QAAO,QACPw5D,GAAI,UACJG,GAAS,eACTC,GAAc,iBACdC,IACE3sB,G,gBCMWA,OArBA,CACbjnB,UAAWrmB,KAAOC,IAAGC,QAAAC,aAAA,YAErB49C,aAAc/9C,KAAOoL,OAAM7K,QAAAJ,aAAA,6IAQ3B69C,cAAeh+C,KAAOC,IAAGQ,QAAAN,aAAA,0DAIzB89C,wBAAyBj+C,KAAOC,IAAGU,QAAAR,aAAA,yDCXrC,MAAQ69C,cAAa,GAAEC,wBAAuB,gBAAEF,IAAiBzQ,G,OCIlDA,OARA,CACbjnB,UAAWrmB,KAAOC,IAAGC,QAAAC,aAAA,qFCIvB,MAAQkmB,UAAU,IAAIinB,GCDP,SAASptD,KACtB,OACEmhB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACu8E,GAAoB,OAEvBv8E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,C,wCCdoC13C,aAAOqsB,IAAepqB,MAAM,CAC9D/lB,SAAU,6BACV+mB,QAAS,KACT5C,MAAO,WAH2BL,CAIlCE,QAAAC,aAAA,QAEgCH,aAAOqsB,IAAepqB,MAAM,CAC5D/lB,SAAU,0BACV+mB,QAAS,KACT5C,MAAO,WAHyBL,CAIhCO,QAAAJ,aAAA,QAVK,MAYMkmB,GAAYrmB,KAAOC,IAAGQ,QAAAN,aAAA,0EA8BtB84D,IAxBmBj5D,KAAOC,IAAGU,QAAAR,aAAA,iMAanBH,KAAOC,IAAGoC,QAAAlC,aAAA,6KAWIH,KAAOC,IAAGsC,QAAApC,aAAA,qHASlCw4D,GAAoB34D,KAAOC,IAAGwC,QAAAtC,aAAA,0LAkD5BmtC,I,qBAlCNttC,KAAOhY,MAAK8a,QAAA3C,aAAA,8BAGRH,KAAOC,IAAG8C,QAAA5C,aAAA,kHAMLH,KAAOC,IAAGiD,QAAA/C,aAAA,6JAQbH,KAAOC,IAAGkD,QAAAhD,aAAA,sDAKPH,KAAOC,IAAGmD,QAAAjD,aAAA,sICrFb,SAAS+5D,KAAsB,IAADhD,EAAA56C,EAC3C,MAAM,MAAElhC,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACdsE,EAAU23E,GAAe9vD,oBACtB,OAAR7b,QAAQ,IAARA,GAAkB,QAAVwrE,EAARxrE,EAAUhM,gBAAQ,IAAAw3E,OAAV,EAARA,EAAoB9mE,UAAU,EAAW,OAAR1E,QAAQ,IAARA,OAAQ,EAARA,EAAUhM,SAASoC,UAAW,YAE3D,eAAEyzB,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,IAAaA,EAAS7M,SACxB6M,EAAS7M,OAAS,CAChBgP,cAAe,CAAC,GAAI,GAAI,IACxBhK,UAAW,CACT,CACEtF,KAAM,GACN21D,QAAS,GACTnwD,UAAW,CAAC,GAAI,GAAI,IACpBsR,UAAU,EACVlY,MAAO,GACP4/D,aAAc,GACdC,QAAQ,KAIdtxD,EAAS/M,SAAW,CAClBuF,QAAS,IAEXwH,EAAShM,SAAW,gBACpBvD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAwCJ,OACEmC,cAAC8rB,GAAW,CAAA7sB,SACVmlB,eAAC0H,GAAuB,CAAA7sB,SAAA,CACtBe,cAAC+lB,KAAU,CAACC,QAAQ,QAAO/mB,SACxBq5B,EAAe,oBAElBlU,eAAA,OAAAnlB,SAAA,CACEe,cAACuvB,KAAS,CAACrvB,MAAO,QAAS+I,MAAO,CAAE0gB,SAAU,UAC9C3pB,cAACuvB,KAAS,CACRrvB,MAAOuC,EACP+sB,SA/CRjoB,IAMA,GAAMkH,EAAU,CACd,MAAMnB,EAAiBE,EAAiBjG,EAAG,QAAQ,GACnDkH,EAAmB,SAAC,QAAAzH,OAAWsG,GAC/B8sE,EAAY9sE,GAEZpO,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,KA8BM2V,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAAC+lB,KAAU,CAACC,QAAQ,QAAO/mB,SACxBq5B,EAAe,6BAElBt4B,cAACuvB,KAAS,CACRvJ,QAAQ,WACR0D,WAAS,EACTxpB,MAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBk7C,wBAC3B/qD,SAAWjoB,IAAM21E,OAnCSvsB,EAmCoBppD,EAAEkG,OAAOvN,WAlC3DuO,GAAYA,EAAS/M,WACzB+M,EAAS/M,SAAS64E,wBAA0B5pB,EAE5CzxD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QARyBkiD,KAmCoC,EAC9D3nB,WAAS,EACTG,QAAS,cAOvB,CC9Ge,SAASjmC,KACtB,OACEkhB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACu+D,GAAc,CAACE,SAAO,IACvBz+D,cAACi9E,GAAkB,OAErBj9E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,CCde,SAASppC,KACtB,OACEjN,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,OAEfliE,cAACmzC,GAAa,MAGpB,CCTe,SAASjkC,KACtB,OACEkV,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACknE,GAAS,OAEZlnE,cAACmzC,GAAa,MAGpB,CCZO,MAAM/J,GAAYrmB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI3B+5C,GAAgBl6C,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8OAgB/Bg6C,GAAgBn6C,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,0GAO/Bi6D,GAAgBp6D,KAAOC,IAAGU,QAAAR,aAAA,+BAI1Bk7C,GAAwBr7C,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,2LAWvCm7C,GAAqBt7C,aAAO0lB,GAAP1lB,CAAoBuC,QAAApC,aAAA,QAEzCo7C,GAAkBv7C,aAAOqsB,IAAepqB,MAAM,CACzDgB,QAAS,KACT5C,MAAO,WAFsBL,CAG7ByC,QAAAtC,aAAA,QC7Ca,SAASk6D,KAAgB,IAAD/9C,EAAAm/B,EAAA6e,EAAAC,EACrC,MAAM,MAAEn/E,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACf,eAAEm6B,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,IAAaA,EAAS/M,WACxB+M,EAAS/M,SAAW,CAClBuF,QAAS,GACTF,IAAK,IAET,GACC,CAAC0H,IAEJrP,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAAM4/D,EAAoBA,CACxBj0D,EACAjC,KAEA,GAAIkH,EAAU,CACZ,MAAMvO,EAAQqH,EAAEkG,OAAOvN,MAEvBuO,EAAS/M,SAAW+M,EAAS/M,SACzB+M,EAAS/M,SACT,CAAEuF,QAAS,GAAIF,IAAK,IAExB0H,EAAS/M,SAAS8H,GAAOtJ,EACzBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,SAAU,IAAKA,KAE3B,GAGF,OACEzO,cAAC8rB,GAAW,CAAA7sB,SACVe,cAAC8rB,GAAe,CAAA7sB,SACdmlB,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAiB,CAAA7sB,SAAC,QACnBe,cAAC8rB,GAAe,CAAA7sB,SACde,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAM,MACND,QAAS,EACThf,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBt4B,MAAO,GAClCyoB,SAAWjoB,GAAMk2D,EAAkB,MAAOl2D,GAC1C0kB,WAAoB,OAARxd,QAAQ,IAARA,GAAkB,QAAV+vD,EAAR/vD,EAAU/M,gBAAQ,IAAA88D,IAAlBA,EAAoBv3D,aAIpCmd,eAAC0H,GAAuB,CAAA7sB,SAAA,CACtBe,cAAC8rB,GAAiB,CAAA7sB,SAAEq5B,EAAe,cACnCt4B,cAAC8rB,GAAe,CAAA7sB,SACde,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAOrQ,EAAe,cACtB5O,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4uE,EAAR5uE,EAAU/M,gBAAQ,IAAA27E,OAAV,EAARA,EAAoBp2E,UAAW,GACtCuoB,SAAWjoB,GAAMk2D,EAAkB,UAAWl2D,GAC9CshC,KAAM,EACNH,QAAS,EACTM,WAAS,EACT/c,WAAoB,OAARxd,QAAQ,IAARA,GAAkB,QAAV6uE,EAAR7uE,EAAU/M,gBAAQ,IAAA47E,IAAlBA,EAAoBv2E,kBAQhD,CC5Ee,SAAS9C,KACtB,OACEmgB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACo9E,GAAY,OAEfp9E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,C,+BCVO,MAAMmZ,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI/B80D,GAAgCj1D,aAAOqsB,GAAPrsB,CAAqBO,QAAAJ,aAAA,6CAIrDg1D,GAAYn1D,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,kSAoB3B2wD,GAAkB9wD,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,oFAOjCkmB,GAAYrmB,aAAO0C,GAAP1C,CAAeqC,QAAAlC,aAAA,0GAO3B+0D,GAAmBl1D,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,wJASlC4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeyC,QAAAtC,aAAA,mQAkB7Bi1D,GAAwBp1D,KAAOC,IAAG6C,QAAA3C,aAAA,4HAUlCm7C,GAAqBt7C,aAAOwM,KAAPxM,CAAiB+C,QAAA5C,aAAA,+B,wFC/EtBH,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAIXH,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,mIAJzC,MAaMi6D,GAAgBp6D,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,4DA2H/Bk1D,IArHyBr1D,KAAOC,IAAGU,QAAAR,aAAA,8RAoBnBH,KAAOC,IAAGoC,QAAAlC,aAAA,qMAaEH,aAAOqsB,IAAepqB,MAAM,CACnE/lB,SAAU,oBACV+mB,QAAS,KACT5C,MAAO,WAHgCL,CAIvCuC,QAAApC,aAAA,QAE2CH,aAAOqsB,IAAepqB,MAAM,CACvE/lB,SAAU,2BACV+mB,QAAS,KACT5C,MAAO,WAHoCL,CAI3CyC,QAAAtC,aAAA,6CAI6BH,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,oFAOnBH,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,kTAqBTH,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,4IAUXH,KAAOC,IAAGkD,QAAAhD,aAAA,4HAUbH,aAAOwM,KAAPxM,CAAiBoD,QAAAjD,aAAA,+BAIfH,aAAO0C,GAAP1C,CAAeqD,QAAAlD,aAAA,0LAarBH,KAAOC,IAAGqD,QAAAnD,aAAA,oDAKHH,KAAOC,IAAG8mB,QAAA5mB,aAAA,wGAOlCm1D,GAAyBt1D,KAAOC,IAAG+mB,QAAA7mB,aAAA,qEAMnCo1D,GAAoBv1D,KAAOC,IAAGgnB,QAAA9mB,aAAA,oEAU9BkmB,IAJarmB,KAAOwnB,KAAIN,QAAA/mB,aAAA,gCAIZH,aAAO0C,GAAP1C,CAAeonB,QAAAjnB,aAAA,4OAgB3BwpB,GAAsB3pB,aAAO0C,GAAP1C,CAAeqnB,QAAAlnB,aAAA,gLAoBrCqpB,IAPiBxpB,aAAO0C,GAAP1C,CAAesnB,QAAAnnB,aAAA,kGAOdH,aAAO0C,GAAP1C,CAAeynB,QAAAtnB,aAAA,yFAOjCspB,GAAczpB,aAAO0C,GAAP1C,CAAe2nB,QAAAxnB,aAAA,+MAgBbH,aAAO0C,GAAP1C,CAAe6nB,QAAA1nB,aAAA,kJA4C7BmtC,I,kBA/BFttC,KAAOC,IAAG8nB,QAAA5nB,aAAA,6GAMLH,KAAOC,IAAGgoB,QAAA9nB,aAAA,6JAQbH,KAAOC,IAAGioB,QAAA/nB,aAAA,sDAKPH,KAAOC,IAAGu6D,QAAAr6D,aAAA,sICnPb,SAASs6D,GAA4Bx+E,GAClD,MAAM,MAAEkJ,EAAK,OAAEywE,EAAM,iBAAEC,GAAqB55E,GACtC,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAC1B0uC,EAAYC,GAAiBxiB,mBAAiB,KAC9C8T,GAAyB9T,mBAASquD,EAAO/nE,eAAiB,CAAC,MAC5D,eAAE0nB,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,GAAYkqE,IACTA,EAAO/nE,gBACV+nE,EAAO/nE,cAAgB,CAAC,KAG1B1R,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GAEC,CAACkqE,EAAQzwE,IAEZ9I,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAuBMu+E,EAAoBA,CACxBtpD,EACA69B,KAEIliD,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,IAC9B,WAAjBywE,EAAOpqE,QACToqE,EAAO7lD,GAAS69B,EAChBliD,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAMf,EAqBIu+B,EAAuB60B,IACrBpzD,GAAYA,EAAS5M,UACzBu8B,EAAOjyB,OAAO01D,EAAa,GAC3BpzD,EAAS5M,QAAQqG,GAAO0I,cAAgBwtB,EAExCl/B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,EAyCF,OACE2V,eAAC0H,GAAW,CAAA7sB,SAAA,CACQ,WAAjB05E,EAAOpqE,OAAsBqqE,EAC5B54E,cAAC+pB,KAAU,CACTE,QAASA,KA3ETxb,GAAYA,EAAS5M,UACzB4M,EAAS5M,QAAQsK,OACfsC,EAAS5M,QAAQ0J,WAAWqB,GAAMA,EAAE2B,QAAUoqE,EAAOpqE,QACrD,GAGFrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAiE+B,EACpCxF,MAAO,CAAEuwE,UAAW,YAAav6E,SAEjCe,cAACmsC,KAAU,CAACljC,MAAO,CAAEuwE,UAAW,UAAYF,UAAU,cAGxDt5E,cAAAysB,WAAA,IAEFzsB,cAAC8rB,GAAuB,CAAA7sB,SACtBmlB,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACR7F,WAAS,EACT1D,QAAQ,WACR9lB,MAAOy4E,EAAOpqE,MACdihB,SAAWjoB,IAAMgtE,OAzIF7kD,EAyIoBnoB,EAAEkG,OAAOvN,WAxIlDuO,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,IAC9B,WAAjBywE,EAAOpqE,QACT6vB,EAAO,GAAK1O,EACZipD,EAAOpqE,MAAQmhB,EACfjhB,EAAS5M,QAAQqG,GAASywE,EAEtBA,EAAO/nE,gBAAe+nE,EAAO/nE,cAAc,GAAK8e,GAEhDjhB,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAdUihB,KAyIoC,EACnDiZ,MAAOrQ,EAAe,eACtByQ,WAAYmW,EAAW,WAADl4C,OAAYkB,EAAK,YACvCkU,QAAS8iC,EAAW,WAADl4C,OAAYkB,EAAK,YACpC0gC,WAAY,CAAEq1B,UAAW,QAG7Bj+D,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACRrvB,MAAOy4E,EAAO5xE,IACdif,QAAQ,WACR2iB,MAAOrQ,EAAe,YACtB5O,WAAS,EACT8F,SAAWjoB,GAAM60E,EAAkB,MAAO70E,EAAEkG,OAAOvN,WAGvDF,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACRrvB,MAAOy4E,EAAOz4E,MACd7B,KAAK,SACL2nB,QAAQ,WACR2iB,MAAOrQ,EAAe,iBACtB5O,WAAS,EACT8F,SAAWjoB,GAAM60E,EAAkB,QAAS70E,EAAEkG,OAAOvN,gBAK7DF,cAAC8rB,GAAwB,CAAA7sB,SACvBe,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACRrvB,MAAOy4E,EAAOp3E,YACdykB,QAAQ,WACR2iB,MAAOrQ,EAAe,eACtB5O,WAAS,EACTkf,WAAY,CAAEq1B,UAAW,KACzBzuC,SAAWjoB,GAAM60E,EAAkB,cAAe70E,EAAEkG,OAAOvN,aAIjEkkB,eAAC0H,GAAwB,CAAA7sB,SAAA,CACvBe,cAAC8rB,GAAqB,CAAA7sB,SACpBe,cAACuvB,KAAS,CACRC,SAAWjoB,GAAMulC,EAAcvlC,EAAEkG,OAAOvN,OACxC8lB,QAAQ,WACRiG,SAA2B,KAAjB0sD,EAAOpqE,MACjBmb,WAAS,EACTxpB,MAAwB,WAAjBy4E,EAAOpqE,MAAqBoqE,EAAOpqE,MAAQs+B,EAClD5D,YAAW,GAAAjiC,OAAKsxB,EAAe,yBAAwB,MAAAtxB,OACrD2xE,EAAOpqE,OAAS,GAAE,KAEpB0+B,UAAYzgB,GA5GKA,KACJ,WAAjBmsD,EAAOpqE,QACa,KAAlBie,EAAM0gB,SAAoC,IAAlB1gB,EAAM0gB,UACb,KAAfL,IACFzO,EAAOh2B,KAAKykC,GAENp+B,GAAYA,EAAS5M,UACzB4M,EAAS5M,QAAQqG,GAAO0I,cAAgBwtB,EACxCl/B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAMbq+B,EAAc,KAElB,EAwF8BK,CAAkB3gB,OAG5CxsB,cAAC8rB,GAAiB,CAAA7sB,SACfm/B,EAAO14B,KAAI,CAACkO,EAAM1L,IAzFA6kC,EAACn5B,EAAc1L,IAC3B,KAAT0L,EAEAwQ,eAAC0H,GAAa,CAAA7sB,SAAA,CACX2U,EACU,IAAV1L,GACClI,cAAC+pB,KAAU,CAACE,QAASA,IAAM+iB,EAAoB9kC,GAAOjJ,SACpDe,cAACkqB,KAAS,QAJIhiB,GASV,KA6EqB6kC,CAAmBn5B,EAAM1L,YAKhE,CCxNe,SAASu1E,GAAmBz+E,GAA2B,IAADi7E,EAAAC,EAAA76C,EAAA/sB,EAAAksD,EACnE,MAAM,MAAErgE,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,GACdsE,EAAU23E,GAAe9vD,oBACtB,OAAR7b,QAAQ,IAARA,GAAkB,QAAVwrE,EAARxrE,EAAUhM,gBAAQ,IAAAw3E,OAAV,EAARA,EAAoB9mE,UAAU,EAAW,OAAR1E,QAAQ,IAARA,GAAkB,QAAVyrE,EAARzrE,EAAUhM,gBAAQ,IAAAy3E,OAAV,EAARA,EAAoBr1E,UAAW,aAE5D,eAAEyzB,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACR,IAAD3V,EAAVvD,IACEA,EAAS5M,SAAwC,KAAb,QAAhBmQ,EAAAvD,EAAS5M,eAAO,IAAAmQ,OAAA,EAAhBA,EAAkBnN,UACxC4J,EAAS5M,QAAU,CACjB,CAAE0M,MAAO,GAAIusD,QAAQ,GACrB,CAAEvsD,MAAO,SAAUusD,QAAQ,IAG7B57D,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAMPA,IAAaA,EAAS/M,WACxB+M,EAAS/M,SAAW,CAClBuF,QAAS,GACTszE,wBAAyB,GACzBxzE,IAAK,IAGP7H,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAMNA,EAAShM,WACZgM,EAAShM,SAAW,gBACpBvD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,OAKb,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MA2IM+6E,KACFnqE,IAAcA,EAAS5M,UAAU4M,EAAS5M,QAAQgD,OAAS,EAE/D,OACEuf,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAiB,CAAA7sB,SAChBmlB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrCq5B,EAAe,yBAElBt4B,cAAC8rB,GAAkB,CAAA7sB,SACjBe,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR2iB,MAAOrQ,EAAe,WACtB5O,WAAS,EACTxpB,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBp4B,UAAW,GACtCuoB,SAAWjoB,GA5FOrH,KAC5B,GAAMuO,GAAcA,EAAS/M,SAAU,CACrC,MAAMA,EAAW+M,EAAS/M,SAEtBA,IACFA,EAASuF,QAAU/G,EACnBuO,EAAS/M,SAAWA,EAEpBxC,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,GA2E2BisE,CAAqBnzE,EAAEkG,OAAOvN,OAC/CipC,QAAS,EACTT,QAAS,EACTM,WAAS,WAKjB5kB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBmlB,eAACyqB,KAAU,CACTC,KAAG,EACH5uC,OAAe,OAARuO,QAAQ,IAARA,OAAQ,EAARA,EAAUzM,YAAavB,EAAU4yE,SACxC7jD,SApFwB8jD,KAC1B7kE,IACFA,EAASzM,SACPyM,EAASzM,WAAavB,EAAUwB,WAC5BxB,EAAU4yE,SACV5yE,EAAUwB,WAEhB/C,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,EAqEwCxP,SAAA,CAElCe,cAACgvC,KAAgB,CACf9uC,OAAO,EACP+uC,QAASjvC,cAACkvC,KAAK,CAAC9rB,MAAM,YACtBulB,MAAOrQ,EAAe,wBAExBt4B,cAACgvC,KAAgB,CACf9uC,OAAO,EACP+uC,QAASjvC,cAACkvC,KAAK,CAAC9rB,MAAM,YACtBulB,MAAOrQ,EAAe,yBAG1Bt4B,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QA3JgB0wD,KACtB,GAAIlsE,EAAU,CACZ,GAAIA,EAAS5M,QAAS,CACpB,MAAM4tD,EAAQhhD,EAAS5M,QAAQ+I,MAC5B8B,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEX+iE,EAAa/kE,EAAS5M,QAAQkE,QACjC2G,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEjB+iE,EAAWprE,KAAK,CACdmG,MAAO,GACPqsE,QAAS,GACThqE,cAAe,CAAC,IAChBkqD,QAAQ,IAENrL,GACF+jB,EAAWprE,KAAKqnD,GAElBhhD,EAAS5M,QAAU2xE,CACrB,MACE/kE,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,WAG/BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GA4H+BxP,SAExBq5B,EAAe,kBAGpBt4B,cAAC8rB,GAAa,CAAA7sB,SAAU,OAARwP,QAAQ,IAARA,GAAiB,QAAT6D,EAAR7D,EAAU5M,eAAO,IAAAyQ,OAAT,EAARA,EAAmB5M,KA9KlBm1E,CAAClC,EAAgBzwE,IAElClI,cAAA,OAAAf,SACoB,WAAjB05E,EAAOpqE,OACNvO,cAACw9E,GAA2B,CAC1Bt1E,MAAOA,EACPywE,OAAQA,EACRC,iBAAkBA,KALd1wE,OA8KVkc,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC86E,KAAS,CAAA77E,SACRe,cAACgvC,KAAgB,CACfC,QACEjvC,cAACsgE,KAAM,CACLC,QAAiB,OAAR9xD,QAAQ,IAARA,OAAQ,EAARA,EAAU/L,aACnB0gB,MAAM,UACNoM,SAAWjoB,IAjGSrH,QAkGOqH,EAAEkG,OAAO8yD,QAjG1C9xD,IACJA,EAAS/L,aAAexC,EACxBhB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MA2F6C,IAIhDk6B,MAAOrQ,EAAe,sBACtBlV,MAAM,eAGD,OAAR3U,QAAQ,IAARA,OAAQ,EAARA,EAAU/L,eACT0hB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC+lB,KAAU,CAACC,QAAQ,YAAW/mB,SAC5Bq5B,EAAe,oBAElBt4B,cAACuvB,KAAS,CAACrvB,MAAO,QAAS+I,MAAO,CAAE0gB,SAAU,UAC9C3pB,cAACuvB,KAAS,CACRrvB,MAAOuC,EACP+sB,SAnGVjoB,IAMA,GAAMkH,GAAYA,EAAShM,SAAU,CACnC,MAAMs4E,EAAoBvtE,EAAiBjG,EAAG,QAAQ,GACtDkH,EAAShM,SAAQ,QAAAuE,OAAW+zE,GAE/BX,EAAYW,GAET77E,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,WAqFE2V,eAAC0H,GAAuB,CAAA7sB,SAAA,CACtBe,cAAC8rB,GAA+B,CAAC9F,QAAQ,QAAQ5C,MAAM,UAASnkB,SAC7Dq5B,EAAe,6BAElBt4B,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR0D,WAAS,EACTif,MAAOrQ,EAAe,WACtB0Q,WAAS,EACTH,KAAM,EACNvnC,KAAK,eACLjD,KAAK,OACL6B,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV+vD,EAAR/vD,EAAU/M,gBAAQ,IAAA88D,OAAV,EAARA,EAAoB+b,0BAA2B,GACtD/qD,SAAWjoB,IA1O0BopD,QA2OCppD,EAAEkG,OAAOvN,MA1O/CuO,GAAYA,EAAS/M,WACzB+M,EAAS/M,SAAS64E,wBAA0B5pB,EAE5CzxD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAmOgD,SAM/D,CC9Te,SAASivE,KACtB,OACEt5D,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAACy9E,GAAkB,OAErBz9E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,CCbO,MAAMmZ,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI/B80D,GAAgCj1D,aAAOqsB,IAAepqB,MAAM,CACvE/lB,SAAU,0EACV+mB,QAAS,QACT5C,MAAO,WAHoCL,CAI3CO,QAAAJ,aAAA,6CAIW2wD,GAAkB9wD,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,+EAOjC4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,qQAmB7Bi1D,GAAwBp1D,KAAOC,IAAGoC,QAAAlC,aAAA,4HAUlCm7C,GAAqBt7C,aAAOwM,KAAPxM,CAAiBuC,QAAApC,aAAA,+B,0DClD5C,MAAMi6D,GAAgBp6D,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,sIAY/B2wD,GAAkB9wD,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,6GAOjCk1D,GAAwBr1D,KAAOC,IAAGQ,QAAAN,aAAA,uGAOlCm1D,GAAyBt1D,KAAOC,IAAGU,QAAAR,aAAA,0GAQnCo1D,GAAoBv1D,KAAOC,IAAGoC,QAAAlC,aAAA,oEAM9By6D,GAAW56D,KAAOC,IAAGsC,QAAApC,aAAA,uGAOrBqO,GAAQxO,KAAOC,IAAGwC,QAAAtC,aAAA,oEAMlB06D,GAAiB76D,KAAOC,IAAG6C,QAAA3C,aAAA,+FAY3B26D,IAJa96D,KAAOwnB,KAAIzkB,QAAA5C,aAAA,gCAIDH,KAAOC,IAAGiD,QAAA/C,aAAA,wGASjCkmB,GAAYrmB,aAAO0C,GAAP1C,CAAemD,QAAAhD,aAAA,2OCvDzB,SAAS46D,GAA2B9+E,GAAyB,IAAD++E,EAAAC,EAAAC,EACzE,MAAM,MAAE/1E,EAAK,OAAEywE,EAAM,iBAAEC,GAAqB55E,GACtC,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAC1B0uC,EAAYC,GAAiBxiB,mBAAiB,KAC9C8T,GAAyB9T,mBAASquD,EAAO/nE,eAAiB,CAAC,MAE3DstE,EAAYC,GAAiB7zD,oBAC5B,OAANquD,QAAM,IAANA,GAAa,QAAPoF,EAANpF,EAAQ9e,aAAK,IAAAkkB,OAAP,EAANA,EAAer4E,KAAK04E,GAASA,EAAKv3E,SAASsM,UAAU,EAAG,OAAO,CAAC,WAE3DkrE,EAAWC,GAAgBh0D,oBAC1B,OAANquD,QAAM,IAANA,GAAa,QAAPqF,EAANrF,EAAQ9e,aAAK,IAAAmkB,OAAP,EAANA,EAAet4E,KAAK04E,GAClBA,EAAKv3E,SAASsM,UAAU,EAAGirE,EAAKv3E,SAAShC,YACtC,CAAC,aAGFhH,EAAO8pB,uBAAY,KACnBlZ,GAAYkqE,IACTA,EAAO/nE,gBACV+nE,EAAO/nE,cAAgB,CAAC,KAGrB+nE,EAAO9e,QACV8e,EAAO9e,MAAQ,CAAC,CAAErN,SAAU,GAAItsD,MAAO,GAAI2G,SAAU,MAGjD8xE,EAAO4F,oBACX5F,EAAO4F,kBAAoB,IAG7Br/E,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GAEC,CAACkqE,EAAQzwE,IAEZ9I,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MAqBMu+E,EAAoBA,CACxBtpD,EACA0rD,EACA7tB,KAGEliD,GACAA,EAAS5M,SACT82E,EAAO9e,OACP8e,EAAO9e,MAAM2kB,KAEb7F,EAAO9e,MAAM2kB,GAAW1rD,GAAS69B,EACjCliD,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,EAGIgwE,EAA0BA,CAC9BC,EACA/tB,KAGEliD,GACAA,EAAS5M,SACT82E,EAAO4F,mBACP5F,EAAO4F,kBAAkBG,KAEzB/F,EAAO4F,kBAAkBG,GAAkBx+E,MAAQywD,EACnDliD,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,EAoCI0+B,EAAqB3gB,IACJ,WAAjBmsD,EAAOpqE,QACa,KAAlBie,EAAM0gB,SAAoC,IAAlB1gB,EAAM0gB,UACb,KAAfL,IACFzO,EAAOh2B,KAAKykC,GAENp+B,GAAYA,EAAS5M,UACzB4M,EAAS5M,QAAQqG,GAAO0I,cAAgBwtB,EACxCl/B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAMbq+B,EAAc,KAElB,EA2BI6xC,EAAyBA,CAC7BC,EACA/M,EACAlhB,KAEA,IAAIkuB,EAAc,GAElB,GAAID,EAAQ,CAEVC,EAAcluB,EADa0tB,EAAUxM,GAGrC,MAAMiN,EAAWZ,EACjBY,EAASjN,GAAYlhB,EAErBwtB,EAAcW,EAChB,KAAO,CAELD,EADsBX,EAAWrM,GACHlhB,EAC9B0tB,EAAUxM,GAAYlhB,EAEtB,MAAMouB,EAAaV,EACnBU,EAAWlN,GAAYlhB,EAEvB2tB,EAAaS,EACf,CAGEtwE,GACAA,EAAS5M,SACT4M,EAAS5M,QAAQqG,IACjBywE,EAAO9e,QAEP8e,EAAO9e,MAAMgY,GAAUhrE,SAAWg4E,EAClCpwE,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,EAGIuwE,KACFrG,IAAYA,EAAO9e,QAAQ8e,EAAO9e,MAAMh1D,OAAS,EAErD,OACEuf,eAAC0H,GAAW,CAAA7sB,SAAA,CACQ,WAAjB05E,EAAOpqE,OAAsBqqE,EAC5B54E,cAAC+pB,KAAU,CACTE,QAASA,KAtITxb,GAAYA,EAAS5M,UACzB4M,EAAS5M,QAAQsK,OACfsC,EAAS5M,QAAQ0J,WAAWqB,GAAMA,EAAE2B,QAAUoqE,EAAOpqE,QACrD,GAGFrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MA4H+B,EACpCxF,MAAO,CAAEuwE,UAAW,YAAav6E,SAEjCe,cAACmsC,KAAU,CAACljC,MAAO,CAAEuwE,UAAW,UAAYF,UAAU,cAGxDt5E,cAAAysB,WAAA,IAEFzsB,cAAC8rB,GAAuB,CAAA7sB,SACtBe,cAAC8rB,GAAmB,CAAA7sB,SAClBmlB,eAAC0H,GAAU,CAAA7sB,SAAA,CACTe,cAAC8rB,GAAO,CAAA7sB,SACNe,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACR7F,WAAS,EACT1D,QAAQ,WACR9lB,MAAOy4E,EAAOpqE,MACdihB,SAAWjoB,IAAMgtE,OAlON7kD,EAkOwBnoB,EAAEkG,OAAOvN,WAjOtDuO,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,IAC9B,WAAjBywE,EAAOpqE,QACT6vB,EAAO,GAAK1O,EACZipD,EAAOpqE,MAAQmhB,EACfjhB,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAZUihB,KAkOwC,EACnDiZ,MAAM,wBACNI,WAAYmW,EAAW,WAADl4C,OAAYkB,EAAK,YACvCkU,QAAS8iC,EAAW,WAADl4C,OAAYkB,EAAK,kBAI1ClI,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QA5GU0wD,KAI2B,IAADsE,GAH5CtG,GAAUA,EAAO9e,OACnB8e,EAAO9e,MAAMzxD,KAAK,CAAEokD,SAAU,GAAItsD,MAAO,GAAI2G,SAAU,KAEnD8xE,EAAO9e,QAAe,OAAN8e,QAAM,IAANA,OAAM,EAANA,EAAQ9e,MAAMh1D,QAAS,KACrC,OAAN8zE,QAAM,IAANA,GAAyB,QAAnBsG,EAANtG,EAAQ4F,yBAAiB,IAAAU,GAAzBA,EAA2B72E,KAAK,CAAElI,MAAO,SAGvCuO,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,KACnDuG,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,EAuFqCxP,SAC1B,6BAOTe,cAAC8rB,GAAwB,CAAA7sB,SACvBe,cAAC8rB,GAAgB,CAAA7sB,SACR,OAAN05E,QAAM,IAANA,GAAa,QAAPsF,EAANtF,EAAQ9e,aAAK,IAAAokB,OAAP,EAANA,EAAev4E,KAAI,CAAC04E,EAAMl2E,IACzBkc,eAAA,OAAAnlB,SAAA,CACEmlB,eAAC0H,GAAU,CAAA7sB,SAAA,CACTmlB,eAAC0H,GAAO,CAAA7sB,SAAA,CACNe,cAAC8rB,GAAe,CAAA7sB,SACdmlB,eAAC87C,KAAM,CACLhgE,MAAOg+E,EAAWh2E,IAAU,QAE5BwhB,WAAS,EACT1D,QAAQ,WACRwJ,SAAWjoB,GACTo3E,GACE,EACAz2E,EACA4C,OAAOvD,EAAEkG,OAAOvN,QAEnBjB,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,UAC1Be,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,eAG9Be,cAAC8rB,GAAe,CAAA7sB,SACS,UAAtBi/E,EAAWh2E,GACVlI,cAACuvB,KAAS,CACRrvB,MAAOm+E,EAAUn2E,GACjB8d,QAAQ,WACRwJ,SAAWjoB,GACTo3E,GAAuB,EAAOz2E,EAAOX,EAAEkG,OAAOvN,SAIlDkkB,eAAC87C,KAAM,CACLhgE,MAAOm+E,EAAUn2E,GACjB8d,QAAQ,WACR0D,WAAS,EACT8F,SAAWjoB,GACTo3E,GACE,EACAz2E,EACA4C,OAAOvD,EAAEkG,OAAOvN,QAEnBjB,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SAAC,SACzBe,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SAAC,aAC7Be,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,UAC1Be,cAACogE,KAAQ,CAAClgE,MAAO,cAAcjB,SAAC,gBAChCe,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SAAC,QACxBe,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,cAC9Be,cAACogE,KAAQ,CAAClgE,MAAO,iBAAiBjB,SAAC,mBAGnCe,cAACogE,KAAQ,CAAClgE,MAAO,iBAAiBjB,SAAC,mBAGnCe,cAACogE,KAAQ,CAAClgE,MAAO,uBAAuBjB,SAAC,yBAGzCe,cAACogE,KAAQ,CAAClgE,MAAO,eAAejB,SAAC,iBACjCe,cAACogE,KAAQ,CAAClgE,MAAO,gBAAgBjB,SAAC,kBAGlCe,cAACogE,KAAQ,CAAClgE,MAAO,kBAAkBjB,SAAC,oBAGpCe,cAACogE,KAAQ,CAAClgE,MAAO,kBAAkBjB,SAAC,oBAGpCe,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,cAC9Be,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,cAC9Be,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,cAC9Be,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,cAC9Be,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,mBAIpCe,cAAC8rB,GAAe,CAAA7sB,SACdmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAU/mB,SAAA,CAC7Be,cAAC69D,KAAU,CAAA5+D,SAAC,6BACZmlB,eAAC87C,KAAM,CACLhgE,MAAOk+E,EAAK5xB,SACZxmC,QAAQ,WACR2iB,MAAM,2BACNjf,WAAS,EACT8F,SAAWjoB,GACT60E,EACE,WACAl0E,EACA4C,OAAOvD,EAAEkG,OAAOvN,QAEnBjB,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAO,SAASjB,SAAC,6BAG3Be,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SAAC,cAC7Be,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAAC,qBAC9Be,cAACogE,KAAQ,CAAClgE,MAAO,SAASjB,SAAC,sBAIjCe,cAAC8rB,GAAe,CAAC7iB,MAAO,CAAE0gB,SAAU,OAAQ1qB,SAC1Ce,cAACuvB,KAAS,CACRrvB,MAAOk+E,EAAKl+E,MACZsvB,SAAWjoB,GACT60E,EAAkB,QAASl0E,EAAOX,EAAEkG,OAAOvN,OAE7C8lB,QAAQ,WACR0D,WAAS,EACTuf,YAAW,mBACXgE,UAAYzgB,GAAU2gB,EAAkB3gB,GACxCP,SAA4B,WAAlBmyD,EAAK5xB,gBAIpBwyB,GACCh/E,cAAC8uB,KAAO,CAACvgB,MAAM,gBAAetP,SAC5Be,cAAC+pB,KAAU,CACTE,QAASA,KAAMi1D,OAnRTV,EAmR0Bt2E,OAlR5CuG,GAAckqE,GAAUA,EAAO9e,QACnC8e,EAAO9e,MAAM1tD,OAAOqyE,EAAW,GAE/Bt/E,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QARa+vE,KAmRiC,EACvCv1E,MAAO,CAAEk2E,YAAa,YAAalgF,SAEnCe,cAACo/E,KAAgB,CACfn2E,MAAO,CAAEuwE,UAAW,UACpBF,UAAU,qBAMjBX,EAAO9e,SACA,OAAN8e,QAAM,IAANA,MAAQ9e,MAAM3xD,EAAQ,OACtBywE,EAAO4F,qBACP5F,EAAO4F,kBAAkBr2E,IACzBlI,cAAC8rB,GAAsB,CAAA7sB,SACrBmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAU/mB,SAAA,CAC7Be,cAAC69D,KAAU,CAAA5+D,SAAC,mBACZmlB,eAAC87C,KAAM,CACLhgE,MAAOy4E,EAAO4F,kBAAkBr2E,GAAOhI,OAAS,MAChD8lB,QAAQ,WACR0D,WAAS,EACTif,MAAM,iBACNnZ,SAAWjoB,GACTk3E,EACEv2E,EACAX,EAAEkG,OAAOvN,OAEZjB,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SAAC,MACxBe,cAACogE,KAAQ,CAAClgE,MAAO,KAAKjB,SAAC,iBArJzBiJ,WAgKtB,CCpde,SAASm3E,KAAqB,IAAD/sE,EAAA+sB,EAC1C,MAAM,MAAElhC,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,GAAatQ,EAEfN,EAAO8pB,uBAAY,KAAO,IAAD3V,EACzBvD,GAAYA,EAAS5M,SAAwC,KAAb,QAAhBmQ,EAAAvD,EAAS5M,eAAO,IAAAmQ,OAAA,EAAhBA,EAAkBnN,UACpD4J,EAAS5M,QAAU,CACjB,CAAE0M,MAAO,GAAIusD,QAAQ,GACrB,CAAEvsD,MAAO,SAAUusD,QAAQ,IAG7B57D,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,EACH7M,OAAQ,CACNgF,UAAW,CACT,CACEtF,KAAM,WACN21D,QAAS,WACT/2D,MAAO,YACPkY,UAAU,EACV0nD,aAAc,GACdC,QAAQ,EACRj5D,UAAW,CAAC,IACZk5D,eAAe,UASzBvxD,IAAaA,EAAS/M,WACxB+M,EAAS/M,SAAW,CAClBuF,QAAS,GACTszE,wBAAyB,GACzBxzE,IAAK,IAGP7H,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJ,MA+DM+6E,KACFnqE,IAAcA,EAAS5M,UAAU4M,EAAS5M,QAAQgD,OAAS,EAE/D,OACEuf,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QA5CgB0wD,KACtB,GAAIlsE,EAAU,CACZ,GAAIA,EAAS5M,QAAS,CACpB,MAAM4tD,EAAQhhD,EAAS5M,QAAQ+I,MAC5B8B,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEX+iE,EAAa/kE,EAAS5M,QAAQkE,QACjC2G,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEjB+iE,EAAWprE,KAAK,CACdmG,MAAO,GACPqsE,QAAS,GACThqE,cAAe,CAAC,IAChBkqD,QAAQ,IAENrL,GACF+jB,EAAWprE,KAAKqnD,GAElBhhD,EAAS5M,QAAU2xE,CACrB,MACE/kE,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,WAG/BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAa+BxP,SAC1B,yBAIHe,cAAC8rB,GAAa,CAAA7sB,SAAU,OAARwP,QAAQ,IAARA,GAAiB,QAAT6D,EAAR7D,EAAU5M,eAAO,IAAAyQ,OAAT,EAARA,EAAmB5M,KA/DpB45E,CAAC3G,EAAgBzwE,IAEhClI,cAAA,OAAAf,SACoB,WAAjB05E,EAAOpqE,OACNvO,cAAC89E,GAA0B,CACzB51E,MAAOA,EACPywE,OAAQA,EACRC,iBAAkBA,KALd1wE,OA8DVkc,eAAC0H,GAAuB,CAAA7sB,SAAA,CACtBe,cAAC8rB,GAA+B,IAChC9rB,cAAC8rB,GAAoB,CACnB9F,QAAQ,WACR0D,WAAS,EACTif,MAAM,WACNK,WAAS,EACTH,KAAM,EACNvnC,KAAK,eACLjD,KAAK,OACL6B,OAAe,OAARuO,QAAQ,IAARA,GAAkB,QAAV4wB,EAAR5wB,EAAU/M,gBAAQ,IAAA29B,OAAV,EAARA,EAAoBk7C,0BAA2B,GACtD/qD,SAAWjoB,IA1F0BopD,QA2FCppD,EAAEkG,OAAOvN,MA1F/CuO,GAAYA,EAAS/M,WACzB+M,EAAS/M,SAAS64E,wBAA0B5pB,EAE5CzxD,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAmFgD,SAM/D,CC9Je,SAAS8iB,KACtB,OACEnN,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACq/E,GAAiB,OAEpBr/E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,C,gBCZO,MAAMmZ,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI/B2wD,GAAkB9wD,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,kFAOjC4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,wLAc7Bq8D,GAAex8D,KAAOC,IAAGU,QAAAR,aAAA,yJ,gBCzB/B,MAAMi6D,GAAgBp6D,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,sIAY/Bk1D,GAAwBr1D,KAAOC,IAAGM,QAAAJ,aAAA,2EAOlCo1D,GAAoBv1D,KAAOC,IAAGQ,QAAAN,aAAA,oEAM9BkmB,GAAYrmB,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,2OCjBzB,SAASs8D,GAAuBxgF,GAC7C,MAAM,MAAEkJ,EAAK,OAAEywE,EAAM,iBAAEC,EAAgB,UAAE6G,GAAczgF,GACjD,MAAEb,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAC3B,eAAEm6B,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KACnBlZ,GAAYkqE,IACRA,EAAO/nE,gBACX+nE,EAAO/nE,cAAgB,CAAC,KAE1B1R,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GAEC,CAACkqE,EAAQzwE,IAEZ9I,qBAAU,KACRvB,GAAM,GACL,CAACA,IAsCJ,OACEmC,cAAC8rB,GAAW,CAAA7sB,SACVmlB,eAAC0H,GAAuB,CAAA7sB,SAAA,CACtBmlB,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACR7F,WAAS,EACTxpB,MAAOy4E,EAAOpqE,MACdihB,SAAWjoB,IAAMgtE,OA5CF5jB,EA4CoBppD,EAAEkG,OAAOvN,WA3ClDuO,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,IACb,WAAlCuG,EAAS5M,QAAQqG,GAAOqG,QAC1BoqE,EAAOpqE,MAAQoiD,EACfliD,EAAS5M,QAAQqG,GAASywE,EAEtBlqE,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,QAXUkiD,KA4CoC,EACnDhoB,MAAOrQ,EAAe,eACtByQ,WAAYmW,EAAW,WAADl4C,OAAYkB,EAAK,YACvCkU,QAAS8iC,EAAW,WAADl4C,OAAYkB,EAAK,gBAGxCkc,eAAC0H,GAAe,CAAC7iB,MAAO,CAAEkmB,QAAS,QAASlwB,SAAA,CAC1Ce,cAACuvB,KAAS,CACRtmB,MAAO,CAAE0gB,SAAU,QACnBzpB,MAAOy4E,EAAOz4E,MACd7B,KAAK,SACLsqC,MAAOrQ,EAAe,eACtB9I,SAAWjoB,GAAMk4E,EAAUv3E,EAAOX,EAAEkG,OAAOvN,MAAO,OAClD6oC,WAAYmW,EAAW,WAADl4C,OAAYkB,EAAK,YACvCkU,QAAS8iC,EAAW,WAADl4C,OAAYkB,EAAK,cAEtClI,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAS,IACTgK,MAAO,CAAEuwE,UAAW,kBAIR,WAAjBb,EAAOpqE,OAAsBqqE,EAC5B54E,cAAC+pB,KAAU,CAACE,QAASA,KA/CrBxb,GAAYA,EAAS5M,UACzB49E,EAAUv3E,EAAOuG,EAAS5M,QAAQqG,GAAOhI,OAAS,IAAK,YACvDuO,EAAS5M,QAAQsK,OAAOjE,EAAO,GAE/BhJ,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAuC2C,EAAAxP,SAC9Ce,cAACmsC,KAAU,CAACljC,MAAO,CAAEuwE,UAAW,UAAYF,UAAU,cAGxDt5E,cAAAysB,WAAA,QAKV,CCxGe,SAASizD,KAAiB,IAAD1tE,EAAA2tE,EACtC,MAAM,MAAExhF,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAC1ByhF,EAAYC,GAAiBv1D,oBACkB,KAA5C,OAAR7b,QAAQ,IAARA,GAAiB,QAATuD,EAARvD,EAAU5M,eAAO,IAAAmQ,OAAT,EAARA,EAAmBzG,WAAWmB,KAAQA,EAAExM,SAAgB,IAAM,IAG1D,eAAEo4B,GAAmBH,KAErBt6B,EAAO8pB,uBAAY,KAAO,IAADrV,EACzB7D,GAAYA,EAAS5M,SAAwC,KAAb,QAAhByQ,EAAA7D,EAAS5M,eAAO,IAAAyQ,OAAA,EAAhBA,EAAkBzN,UACpD4J,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,GAAIrO,MAAO,MAExChB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAIX,GACC,CAACA,EAAUvP,IAEdE,qBAAU,KACRvB,GAAM,GACL,CAACA,IAEJuB,qBAAU,KACRygF,EAAcD,EAAW,GACxB,CAACA,IAEJ,MA8DMH,EAAYA,CAChBv3E,EACAyoD,EACAmvB,KAEA,KAAIl6E,OAAO+qD,GAAY,IACjBliD,GAAcA,EAAS5M,QAAS,CACpC,MAAM3B,EAAsB,QAAd4/E,EAAsBl6E,OAAO+qD,IAAa/qD,OAAO+qD,GAC/D,IAAIovB,EAAU,EAEd,GAAkB,QAAdD,EAAqB,CAOvBC,EAN2BtxE,EAAS5M,QAAQkE,QAAQ2G,GAC9C+B,EAAS5M,SACJ6K,IAAM+B,EAAS5M,QAAQqG,GAASwE,EAElC,OAEoBszE,QAAO,CAACxzE,EAAGuH,IAAMvH,EAAI5G,OAAOmO,EAAE7T,QAAQ,EACrE,MACE6/E,EAAUtxE,EAAS5M,QAAQm+E,QAAO,CAACxzE,EAAGuH,IAAMvH,EAAI5G,OAAOmO,EAAE7T,QAAQ,GAG/D6/E,EAAU7/E,GA9GD,MA+GX2/E,EAAcE,EAAU7/E,GAxCJ+/E,EAAC/3E,EAAeyoD,KACpCliD,GAAYA,EAAS5M,SAAW4M,EAAS5M,QAAQqG,KACnDuG,EAAS5M,QAAQqG,GAAOhI,MAAQywD,EAE5BliD,GACFvP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,MAKb,EA2BIwxE,CAAkB/3E,EAAOyoD,GAE7B,GAGIioB,KACFnqE,IAAcA,EAAS5M,UACrB4M,EAAS5M,QAAQkE,QAAQ2G,GAAkB,WAAZA,EAAE6B,QAAoB1J,QAAU,EAGrE,OACEuf,eAAC0H,GAAe,CAAA7sB,SAAA,CACdmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,WACzBlV,MAAM,YAERpjB,cAAC2kB,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QA/FgB0wD,KACtB,GAAIlsE,EAAU,CACZ,GAAIA,EAAS5M,QAAS,CACpB,MAAM4tD,EAAQhhD,EAAS5M,QAAQ+I,MAC5B8B,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEX+iE,EAAa/kE,EAAS5M,QAAQkE,QACjC2G,GAAgC,WAA1BA,EAAE6B,MAAMkC,gBAEjB+iE,EAAWprE,KAAK,CACdmG,MAAO,GACPrO,MAAO,MAELuvD,GACF+jB,EAAWprE,KAAKqnD,GAElBhhD,EAAS5M,QAAU2xE,CACrB,MACE/kE,EAAS5M,QAAU,CAAC,CAAE0M,MAAO,WAG/BrP,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,KAIX,GAkE+BxP,SAExBq5B,EAAe,kBAGpBlU,eAAC0H,GAAa,CAAA7sB,SAAA,CACH,OAARwP,QAAQ,IAARA,GAAiB,QAATkxE,EAARlxE,EAAU5M,eAAO,IAAA89E,OAAT,EAARA,EAAmBj6E,KAlHLm1E,CAAClC,EAAgBzwE,IAElClI,cAAA,OAAAf,SACEe,cAACw/E,GAAsB,CACrBt3E,MAAOA,EACPywE,OAAQA,EACRC,iBAAkBA,EAClB6G,UAAWA,KALLv3E,KAiHRkc,eAAC0H,GAAc,CAAA7sB,SAAA,CACbmlB,eAAA,OAAKnb,MAAO,CAAEkmB,QAAS,QAASlwB,SAAA,CAC9Be,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,cACzBlV,MAAM,gBAERpjB,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAQ,GAAA+H,OAAK44E,EAAU,KACvB32E,MAAO,CACLma,MAAM,GAADpc,OAAK44E,EAAa,IAAM,MAAQ,SACrC1qC,WAAY,cAIfgK,EAAU,KACXl/C,cAAC+lB,KAAU,CACT9mB,SAAUigD,EAAgB,IAC1Bl5B,QAAQ,QACR5C,MAAM,QACNna,MAAO,CAAEisC,WAAY,iBAOnC,CCnLe,SAAS1jB,KACtB,OACEpN,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACkiE,GAAY,IACbliE,cAAC0/E,GAAa,OAEhB1/E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,CCZe,SAAS/oC,KACtB,OACEtN,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACg6E,GAAmB,CAACG,WAAS,OAEhCn6E,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,C,aCbO,MAAMmZ,GAAgB7wD,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2BAI/B2wD,GAAkB9wD,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,kFAOjC4wD,GAAc/wD,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,mP,iBCXnC,MAAMg9D,GAAgBn9D,KAAOC,IAAGC,QAAAC,aAAA,2RAiBnBi9D,aAAM,GAAK,YCfxB,SAASC,GAAuB94D,GAMnC,IANoC,MACtCpf,EAAK,OACLvC,GAID2hB,EACC,MAAM,eAAEgR,GAAmBH,KAE3B,OACEn4B,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACRtD,UAAQ,EACRjG,QAAQ,WACR0D,WAAS,EACTxpB,MAAOyF,EAAO4I,MACdo6B,MAAOrQ,EAAe,kBANJpwB,EAU1B,CChBe,SAASm4E,KAAoB,IAADruE,EACzC,MAAM,MAAE7T,EAAK,SAAEe,GAAamgD,MACtB,SAAE5wC,EAAQ,WAAEywC,GAAe/gD,GAE3B,eAAEm6B,GAAmBH,KAuB3B,OACE/T,eAAC0H,GAAe,CAAA7sB,SAAA,CACdmlB,eAAC0H,GAAa,CAAA7sB,SAAA,CACZe,cAAC+lB,KAAU,CAAC3C,MAAM,UAAU4C,QAAQ,KAAK/mB,SAAS,YAClDe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR0D,WAAS,EACTxpB,MAAe,OAARuO,QAAQ,IAARA,OAAQ,EAARA,EAAU7L,UACjB4sB,SAAWjoB,GA7BY+4E,KAC7B,GAAI7xE,EAAU,CAAC,IAAD0nD,EAAAoqB,EAAAC,EACZ,MAAM9iB,EAAgBhG,GAAmB,KAAE4oB,GAC3CphF,EAAS,CACPb,KAAM,aACNE,KAAM,CACJkQ,SAAU,IACLA,EACH7L,UAAW86D,EACX37D,YAAa,CACXiP,gBAAgB,eAADhK,OAAiByH,EAASnN,KAAI,KAAA0F,OAAIs5E,EAAO,MACxDzvE,aAAiC,QAApBslD,EAAA1nD,EAAS1M,mBAAW,IAAAo0D,OAAA,EAApBA,EAAsBtlD,cAAe,EAClDC,SAA6B,QAApByvE,EAAA9xE,EAAS1M,mBAAW,IAAAw+E,OAAA,EAApBA,EAAsBzvE,UAAW,GAC1CC,KAAyB,QAApByvE,EAAA/xE,EAAS1M,mBAAW,IAAAy+E,OAAA,EAApBA,EAAsBzvE,MAAO,OAK5C,GAWuB0vE,CAAsBl5E,EAAEkG,OAAOvN,OAChDyoC,MAAO,kBACP1/B,MAAO,CAAEkhB,UAAW,QACzB/N,QAAS8iC,EAAsB,YAE5Bl/C,cAACm+D,KAAc,CAAC/hD,OAAK,EAAAnd,SAAEigD,EAAsB,eAG/C96B,eAAC0H,GAAa,CAAA7sB,SAAA,EACH,OAARwP,QAAQ,IAARA,OAAQ,EAARA,EAAU5M,WAAmB,OAAR4M,QAAQ,IAARA,OAAQ,EAARA,EAAU5M,QAAQgD,QAAS,GAC/C7E,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,WACzBlV,MAAM,cAIH,OAAR3U,QAAQ,IAARA,GAAiB,QAATuD,EAARvD,EAAU5M,eAAO,IAAAmQ,OAAT,EAARA,EAAmBtM,KAAI,CAACC,EAAQuC,IAC/BlI,cAACogF,GAAuB,CAAal4E,MAAOA,EAAOvC,OAAQA,GAA7BuC,UAKxC,CC9De,SAASjH,KACtB,OACEmjB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACk9C,GAAmB,CAAAriE,SAAA,CAClBe,cAAC+3D,GAAI,IACL/3D,cAACqgF,GAAgB,OAEnBrgF,cAACmzC,GAAa,CAACsnB,iBAAiB,EAAOl2D,aAAW,MAGxD,CCXe,SAASF,KACtB,OACE+f,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACshE,GAAmB,CAAAriE,SAClBe,cAAC+3D,GAAI,MAEP/3D,cAACmzC,GAAa,CAACsnB,iBAAiB,EAAOr2D,iBAAe,MAG5D,CCTe,SAASvD,KACtB,OACEujB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACshE,GAAmB,CAAAriE,SAClBe,cAAC+3D,GAAI,MAEP/3D,cAACmzC,GAAa,CAACsnB,iBAAiB,MAGtC,CCiCA,MAAM3lB,GAAYC,cAAYvN,GAC5BwN,aAAa,CACX0rC,OAAQ,CACN7xE,SAAU,WACViV,WAAY0jB,EAAMN,QAAQC,QAAQC,MAEpC74B,MAAO,CACL2mC,WAAY1N,EAAM2N,QAAQ,GAC1BC,KAAM,OAKNxvB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS2hF,KAAc,IAADvjB,EACnC,MAAMtnB,EAAUhB,MAEV,MAAE32C,EAAK,SAAEe,GAAa6nC,MACtB,kBAAE1oB,GAAsBlgB,GAEvBoQ,EAAOqyE,GAAYt2D,mBAAiB,KACrC,eAAEgO,GAAmBH,MACrB,SAAE0oD,GAAaxoD,eAAiByoD,KAQhC51D,EAAOqyC,mBAAQ,KAAO,IAADC,EACzB,OAAsB,QAAtBA,EAAQr/D,EAAMsQ,gBAAQ,IAAA+uD,OAAA,EAAdA,EAAgBl9D,YACtB,KAAKE,EAAYgB,YAEf,OADAo/E,EAAStoD,EAAe,wBACjBt4B,cAACwB,GAAW,IAErB,KAAKhB,EAAY+C,qBAEf,OADAq9E,EAAStoD,EAAe,6BACjBt4B,cAACuD,GAAoB,IAE9B,KAAK/C,EAAYkD,oBAEf,OADAk9E,EAAStoD,EAAe,kCACjBt4B,cAAC0D,GAAmB,IAE7B,KAAKlD,EAAYgD,eAEf,OADAo9E,EAAStoD,EAAe,wBACjBt4B,cAACwD,GAAc,IAExB,KAAKhD,EAAYmD,cAEf,OADAi9E,EAAStoD,EAAe,6BACjBt4B,cAAC2D,GAAa,IAEvB,KAAKnD,EAAYmG,oBAEf,OADAi6E,EAAStoD,EAAe,6BACjBt4B,cAAC2G,GAAmB,IAE7B,KAAKnG,EAAYyO,SAEf,OADA2xE,EAAStoD,EAAe,qBACjBt4B,cAACiP,GAAQ,IAElB,KAAKzO,EAAYuD,SAEf,OADA68E,EAAStoD,EAAe,qBACjBt4B,cAAC+D,GAAQ,IAElB,KAAKvD,EAAYI,QAEf,OADAggF,EAAStoD,EAAe,oBACjBt4B,cAACY,GAAO,IAEjB,KAAKJ,EAAYM,SAEf,OADA8/E,EAAStoD,EAAe,qBACjBt4B,cAACc,GAAQ,IAElB,KAAKN,EAAYO,OAEf,OADA6/E,EAAStoD,EAAe,mBACjBt4B,cAACe,GAAM,IAEhB,KAAKP,EAAYG,OAEf,OADAigF,EAAStoD,EAAe,mBACjBt4B,cAACW,GAAM,IAEhB,KAAKH,EAAY0wB,UAEf,OADA0vD,EAAS,iBACF5gF,cAACkxB,GAAS,IAEnB,KAAK1wB,EAAY6C,aAEf,OADAu9E,EAAStoD,EAAe,yBACjBt4B,cAACqD,GAAY,IAEtB,KAAK7C,EAAY2C,YAEf,OADAy9E,EAAStoD,EAAe,wBACjBt4B,cAACu+D,GAAc,IAExB,KAAK/9D,EAAYyC,eAEf,OADA29E,EAAStoD,EAAe,2BACjBt4B,cAACiD,GAAc,IAExB,KAAKzC,EAAY0C,aAEf,OADA09E,EAAStoD,EAAe,yBACjBt4B,cAACkD,GAAY,IAEtB,KAAK1C,EAAY6wB,MAEf,OADAuvD,EAAStoD,EAAe,kBACjBt4B,cAACqxB,GAAK,IAEf,KAAK7wB,EAAY0O,IAEf,OADA0xE,EAAStoD,EAAe,gBACjBt4B,cAACkP,GAAG,IAEb,KAAK1O,EAAYyD,SAEf,OADA28E,EAAStoD,EAAe,mBACjBt4B,cAACiE,GAAQ,IAElB,KAAKzD,EAAYiE,SAEf,OADAm8E,EAAStoD,EAAe,qBACjBt4B,cAAC09E,GAAW,IAErB,KAAKl9E,EAAY+wB,MAEf,OADAqvD,EAAStoD,EAAe,uBACjBt4B,cAACuxB,GAAK,IAEf,KAAK/wB,EAAYgxB,OAEf,OADAovD,EAAStoD,EAAe,mBACjBt4B,cAACwxB,GAAM,IAEhB,KAAKhxB,EAAYkxB,QAEf,OADAkvD,EAAS,WACF5gF,cAAC0xB,GAAO,IAEjB,KAAKlxB,EAAYS,UAEf,OADA2/E,EAAS,aACF5gF,cAACiB,GAAS,IAEnB,KAAKT,EAAY6D,cAEf,OADAu8E,EAAS,yBACF5gF,cAACqE,GAAa,IAEvB,KAAK7D,EAAYK,eAEf,OADA+/E,EAAS,wBACF5gF,cAACa,GAAc,IAExB,QAEE,OADA+/E,EAAStoD,EAAe,wBACjBt4B,cAACwB,GAAW,IAEvB,GAEC,CAAe,QAAf47D,EAACj/D,EAAMsQ,gBAAQ,IAAA2uD,OAAA,EAAdA,EAAgB98D,WAAYugF,IAEhC,SAASE,EAAiBv0D,EAA8Bw0D,GACvC,cAAXA,GAIJ9hF,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8f,kBAAmB,CACjBpX,QAAS,GACTqX,MAAM,EACNjgB,KAAM,aAId,CAEA,SAAS4iF,EAAMjiF,GACb,OAAOgB,cAACkhF,KAAQ,CAACC,UAAW,EAAGn7D,QAAQ,YAAahnB,GACtD,CAEA,OACEgB,cAACo/C,GAAY,CAAAngD,SACXe,cAACwpB,KAAM,CACLG,SAAS,KACT6sC,YAAU,EACVhvC,KAAMrpB,EAAM4f,eACZ0L,oBAAqB7D,GACrBqJ,WAAY,CAAEhmB,MAAO,CAAEub,OAAQ,SAAWvlB,SAE1CmlB,eAACuB,GAAe,CAAC0vD,YA1JH,UA0J4Bp2E,SAAA,CACxCe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK+B,UAAW+tB,EAAQvnC,MAAMtP,SAC/CsP,IAEHvO,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAjKMxC,KAClBvoB,EAAS,CAAEb,KAAM,mBAAoB,EAiKzB,aAAW,QAAOY,SAElBe,cAACkqB,KAAS,WAIfgB,EACDlrB,cAACohF,KAAQ,CACPn0D,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChD3F,KAAMnJ,EAAkBC,KACxB+iE,iBACEhjE,EAAkB2lB,SAAW3lB,EAAkB2lB,SAAW,IAE5Dpa,QAASm3D,EAAiB9hF,SAE1Be,cAACihF,EAAK,CAACr3D,QAASm3D,EAAkBO,SAAUjjE,EAAkBhgB,KAAKY,SAChEof,EAAkBpX,kBAOjC,C,sCCnQO,MAAMs6E,GAAYx+D,aAAO0lB,GAAP1lB,CAAoBE,QAAAC,aAAA,QAEhCs+D,GAAaz+D,aAAO4B,GAAP5B,CAAiBO,QAAAJ,aAAA,2BAI9B+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYS,QAAAN,aAAA,4CAK7Bu+D,GAAmB1+D,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,2FAO/B8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAQ,MADgBjD,CAExBqC,QAAAlC,aAAA,oDCFI0C,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS0iF,KACtB,MAAM,MAAEvjF,EAAK,SAAEe,EAAQ,kBAAEmf,EAAiB,aAAE6c,GAAiB6L,MACrD7nC,SAAUsvB,GAAgBruB,KAC5B,eAAEm4B,GAAmBH,MAEpBt6B,EAAM41C,GAAWnpB,oBAAS,IAC1B2tC,EAAU0pB,GAAer3D,mBAAoB,CAClDhpB,KAAM,GACNC,YAAa,GACbi5D,QAAS,MAEJ9+C,EAAQkmE,GAAat3D,mBAA6B,CACvDhpB,KAAM,KA4JR,MAAMm8D,EACHj0D,GAA0BjC,IACzB,MAAMm2D,EAAgBnD,GAAa/wD,GAAKjC,EAAEkG,OAAOvN,OACjDyhF,GAAaE,IAAG,IAAWA,EAAK,CAACr4E,GAAMk0D,MACvCkkB,GAAWC,IAAG,IAAWA,EAAK,CAACr4E,GAAM,MAAM,EAS/C,OAAKrL,EAAM6f,qBAGThe,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAM6f,qBACZyL,oBAAqB7D,GACrB8D,WAAW,EACXC,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAAC09D,KAAa,CAAC74E,MAAO,CAAE84E,UAAW,WAAY9iF,SAAA,CAC7Ce,cAAC8rB,GAAY,CAAA7sB,SAAEq5B,EAAe,oBAC9Bt4B,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAAC8rB,GAAW,CACV9F,QAAQ,WACR2iB,MAAOrQ,EAAe,QACtBsQ,WAAY,CAAEq1B,UAAW,IACzB/9D,MAAO+3D,EAAS32D,KAChBkuB,SAAUiuC,EAAkB,QAC5BrhD,QAASV,EAAOpa,KAChBynC,WAAYrtB,EAAOpa,KACnBooB,WAAS,EACTtR,UAAQ,MAGZpY,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAAC8rB,GAAW,CACV9F,QAAQ,WACR2iB,MAAOrQ,EAAe,eACtBsQ,WAAY,CAAEq1B,UAAW,IACzB/9D,MAAO+3D,EAAS12D,YAChBiuB,SAAUiuC,EAAkB,eAC5B/zC,WAAS,MAGbtF,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBmlB,eAAC0H,GAAY,CACX9F,QAAQ,YACR5C,MAAM,UACN6G,QA9MV5qB,iBACE,MAAMs8B,EAAep8B,aAAaC,QAAQ,qBAE1C,GAAIrB,EAAM2P,YAAc6tB,GAAgBx9B,EAAM0hB,UAAW,CACvD,MAAM,UAAExC,GAAcjY,KAAKw2B,MAAMD,GAEjC,IAAKx9B,EAAM0e,QAAS,aAEdW,GACJ,CACEjB,SAAUpe,EAAM0e,QAChBQ,aAEFmR,GAGG+G,GAAYp3B,UACTgf,GACJ,CACEZ,SAAUpe,EAAM0e,QAChBK,WAAYG,EACZwe,OAAQ,CACNlwB,SAAUxN,EAAM2P,WAAWnC,SAASA,WAGxC6iB,EAEN,CAEAypC,EAAS77C,MAAQkc,EAAe,uBAAwB,CACtDxF,MAAOwF,EAAe,UAGxB,MAAM,QAAEi/B,EAAO,OAAE77C,SAAiB4+C,GAAmBrC,GAGrD,GAFA2pB,EAAUlmE,IAEL67C,EAAS,OAEd,IAAI/2C,EAASriB,EAAMmiB,YAEnB,GAAI23C,EAAS32D,KAAK6S,WAAW,SAE3B,YADAytE,EAAU,CAAEtgF,KAAM,qDAQpB,KAJqBkf,EAAO5V,MACzB64B,GAAMA,EAAEhzB,gBAAkBwnD,EAAS32D,KAAKmP,gBAKzC,YADAmxE,EAAU,CAAEtgF,KAAMg3B,EAAe,oCAI/Bn6B,EAAM2P,aAAY3P,EAAM2P,WAAW6e,YAAc,QACrDztB,EAAS,CAAEb,KAAM,cACjBa,EAAS,CAAEb,KAAM,2BACjBa,EAAS,CAAEb,KAAM,wBACjBa,EAAS,CAAEb,KAAM,sBAEjBo1C,GAAQ,GACR,MAAMtP,EAAO,IAAIhmC,EAAMkiB,WACjB1M,EAAMxV,EAAM0e,QACZlR,EAAW0uD,GAEXz2B,QAAoB3mB,GACxB,CACEV,SAAU5I,GAAO,GACjBuJ,WAAY+6C,EAAS32D,KACrB6X,QAAS,CACPqH,OAAQ,CACN,CACE7U,WACAlK,QAASw2D,EAAS32D,KAClB+b,UAAW46C,EAAS32D,KACpBqS,IAAKA,GAAO,OAKpB6a,GAGF,GAAIoV,EAAY1nB,QAAS,OACjBiB,GACJ,CACEZ,SAAU5I,GAAO,GACjBuJ,WAAY+6C,EAAS32D,KACrBu6B,OAAQ,CAAElwB,SAAU,CAAEE,KAAM,CAAEtN,KAAM,CAAC,MAEvCiwB,GAGF,IAAIwzD,EAAY/pB,EAAS32D,KACrB2gF,EAAO,GAEPtuE,IACFxV,EAAMwV,IAAI4M,IAAMqjB,EAAY7nB,KAAKxd,KAAKgiB,IACtCpiB,EAAMwV,IAAItE,QAAUlR,EAAMwV,IAAItE,QAAU,EACxC4yE,EAAOtuE,GAGT6M,EAAOpY,KAAK6vD,EAAS32D,MAEfnD,EAAM2P,YACV3P,EAAM2P,WAAW6oB,QAGnB,MAAM6kC,EAAiBh7C,EAAOjV,WAAW8pB,GAAoB,cAAVA,IAE7ComC,EAAYj7C,EAAOg7C,GAErBA,GAAkB,IACpBh7C,EAAOrU,OAAOqvD,EAAgB,GAC9Bh7C,EAAS,CAACi7C,KAAcj7C,IAG1BthB,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8hB,UAAW,IAAI8jB,GACf7jB,YAAaE,EACbjC,QAAS05C,EAAS32D,KAClBuc,YAAalS,EAASA,YAI1BzM,EAAS,CAAEb,KAAM,0BACjBsjF,EAAY,CAAErgF,KAAM,GAAIC,YAAa,GAAIi5D,QAAS,KAElDj7D,aAAa6a,QACX,oBACAhV,KAAKC,UAAU,CAAEwX,QAASolE,EAAM5kE,UAAW2kE,WAGvCtkE,GACJ,CACEL,UAAW46C,EAAS32D,KACpBib,SAAU5I,GAAO,IAEnB6a,GAGF0M,GACF,MACE7c,EACE,QACAulB,EAAYznB,SAAWmc,EAAe,0BAG1Cmb,GAAQ,EACV,EAuDqCx0C,SAAA,CAE1Bq5B,EAAe,aACfz6B,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,QAEnDvtB,cAAC8rB,GAAY,CACX7iB,MAAO,CAAEisC,WAAY,IACrBlvB,QAAQ,YACR5C,MAAM,UACN6G,QAvDV,WACE/qB,EAAS,CAAEb,KAAM,0BACjBsjF,EAAY,CAAErgF,KAAM,GAAIC,YAAa,GAAIi5D,QAAS,KAClDonB,EAAU,CAAEtgF,KAAM,GAAIC,YAAa,GAAIi5D,QAAS,IAClD,EAmDgCv7D,SAErBq5B,EAAe,oBAnDct4B,cAAAysB,WAAA,GAyD1C,C,0ECtQO,MAAM9G,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,+GAOjCg/D,GAAwBn/D,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,iIAQvCi/D,GAAsBp/D,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,qJAWrC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBqC,QAAAlC,aAAA,6BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,gYAwB7Bk/D,GAAuBr/D,aAAO2C,KAAP3C,CAAYyC,QAAAtC,aAAA,iDAMnCm/D,GAAUt/D,aAAO0C,GAAP1C,CAAe8C,QAAA3C,aAAA,wUAOflkB,GAAWA,EAAM2qC,SAAW,YAAc,YAaxC3qC,GAAWA,EAAM2qC,SAAW,OAAS,YAIjD24C,GAAcv/D,aAAO2C,KAAP3C,CAAY+C,QAAA5C,aAAA,+GAO1Bq/D,GAAiBx/D,aAAO2C,KAAP3C,CAAYkD,QAAA/C,aAAA,kIAS7Bs/D,GAAcz/D,aAAO2C,KAAP3C,CAAYmD,QAAAhD,aAAA,iNAc1B0B,GAAS7B,aAAO4B,GAAP5B,CAAiBoD,QAAAjD,aAAA,0CAK1Bu/D,GAAmB1/D,KAAOC,IAAGoD,QAAAlD,aAAA,4EAO7Bw/D,GAAmB3/D,KAAOC,IAAGqD,QAAAnD,aAAA,4BAI7B4xB,GAAYC,cAAYvN,GACnCwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAGd6+D,aAAc,CACZ7+D,WAAY,UACZV,MAAO,UACPqtD,cAAe,EACfvgB,aAAc,OCzJPvyD,GAAe,CAC1BilF,aAAc,GACdC,gBAAiB,IAGZ,SAASC,GACd3kF,EACAC,GAEA,MACO,iBADCA,EAAOC,KAEJC,GAAiBF,EAAOC,MAAMF,EAAOC,EAAOG,MAE5CJ,CAEb,CAEA,MAAMG,GAAmB,CACvBykF,aAAcA,CAAC5kF,EAA6BI,KACnC,IAAKJ,KAAUI,KCjBpBykF,GAAiBlkF,wBAA+B,CAAC,GAE1CmkF,GACXjkF,IAEA,MAAM,SAAEC,GAAaD,GACdb,EAAOe,GAAYC,qBAAW2jF,GAAgBnlF,IAErD,OACEqC,cAACgjF,GAAe/iF,SAAQ,CACtBC,MAAO,CACL/B,MAAOA,GAASR,GAChBuB,YACAD,SAEDA,GACuB,ECPvB,MAAMikF,GAAa7jF,MACxB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,cACvC,OAAOvD,GAA0B,MAAO5a,EAAQc,EAAS,EAG9CikF,GAAc9jF,MACzB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,cACvC,OAAOvD,GAA2B,OAAQ5a,EAAQc,EAAUia,EAAQ,E,wCCpB/D,MAAMwM,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,+GAOjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,6BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,gYAwB7BkgE,GAAqBrgE,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,iDAMjCm/D,GAAUt/D,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,wUAOflkB,GAAWA,EAAM2qC,SAAW,YAAc,YAaxC3qC,GAAWA,EAAM2qC,SAAW,OAAS,YAIjD05C,GAAYtgE,aAAO2C,KAAP3C,CAAYyC,QAAAtC,aAAA,+GAQxBs/D,GAAcz/D,aAAO2C,KAAP3C,CAAY8C,QAAA3C,aAAA,8IAU1BogE,GAAkBvgE,aAAO2C,KAAP3C,CAAY+C,QAAA5C,aAAA,0IAY9Bu+D,GAAmB1+D,aAAO2C,KAAP3C,CAAYkD,QAAA/C,aAAA,8FAO/B0B,GAAS7B,aAAO4B,GAAP5B,CAAiBmD,QAAAhD,aAAA,2BAI1Bu/D,GAAmB1/D,KAAOC,IAAGmD,QAAAjD,aAAA,4ECzH7BqgE,GAAcC,IACzB,GAAKA,EACL,OAAOA,aAAgB7oE,KAAO8oE,GAAOD,GAAQC,GAAO,IAAI9oE,KAAK6oE,GAAM,EAGxDC,GAAUD,GACf,GAANx8E,OAAUw8E,EAAK9lC,UAAS,KAAA12C,OAAIw8E,EAAK7lC,WAAa,EAAC,KAAA32C,OAAIw8E,EAAK5lC,eAG7C8lC,GAAQF,IACpB,MAAMG,EAAsBH,EAAKI,oBAAsB,GACvD,MAAM,GAAN58E,OAAUw8E,EAAK3lC,WAAa8lC,EAAmB,KAAA38E,OAC5Cw8E,EAAK1lC,aAAe,GAAE,IAAA92C,OAAOw8E,EAAK1lC,cAAiB0lC,EAAK1lC,aAAY,EAI3D+lC,GAAkBL,IAC7B,IAAKA,EAAM,OACX,MAAMM,EACJN,aAAgB7oE,KAAO8oE,GAAOD,GAAQC,GAAO,IAAI9oE,KAAK6oE,IAClDO,EAAgBP,aAAgB7oE,KAAO+oE,GAAKF,GAAQE,GAAK,IAAI/oE,KAAK6oE,IACxE,MAAM,GAANx8E,OAAU88E,EAAa,KAAA98E,OAAI+8E,EAAa,ECoCpCn+D,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAASglF,KACtB,MAAQ9kF,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,SAAEe,EAAQ,kBAAEmf,EAAiB,iBAAEye,GAAqBiK,MAC3D,QAAElqB,GAAY1e,EACd23C,EAAUhB,MAIT5hC,EAAQsgC,GAAalpB,mBAAS,KAC9BzsB,EAAM41C,GAAWnpB,oBAAS,IAC1B25D,EAAeC,GAAoB55D,mBAAwB,OAC5D,eAAEgO,GAAmBH,MAEnBh6B,MAAOgmF,EAAcjlF,SAAUklF,GJpDvBhkF,qBAAW4iF,IIsDrBqB,EAAc18D,uBAAYtoB,UAC9B,GAAIlB,EAAM8f,qBAAsB,CAC9B,MAAM9W,QAAe+7E,GAAW,CAAE3mE,SAAUM,GAAW,IAAM2R,GACzDrnB,EAAO+U,QACTkoE,EAAgB,CACd/lF,KAAM,eACNE,KAAM,CAAEskF,gBAAiB17E,EAAO4U,KAAKxd,QAGvC8f,EACE,QACAlX,EAAOgV,SAAWmc,EAAe,yBAGvC,IAEC,CAACn6B,EAAM8f,qBAAsBpB,EAASunE,EAAiB/lE,IAS1D,SAASoJ,IACPy8D,EAAiB,MACjBhlF,EAAS,CAAEb,KAAM,yBACnB,CAEA,GAZAe,qBAAU,KACRq0C,GAAQ,GACRD,EAAU,IACV6wC,IACA5wC,GAAQ,EAAM,GACb,CAAC4wC,KAOClmF,EAAM8f,qBAAsB,OAAOje,cAAAysB,WAAA,IAExC,MAIM63D,EAAoBjlF,UACxB,GAAIxB,EAAM,OACV41C,GAAQ,GACR,MAAM8wC,EAAU,IAAIJ,EAAatB,iBAC3B17E,OHjFmB9H,OAC3B8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,eAAAvV,OAAcmS,EAAQqrE,cAC7D,OAAOxrE,GAA6B,SAAU5a,EAAQc,EAAS,EG4ExCulF,CACnB,CACEloE,SAAUM,GAAW,GACrB2nE,aAAcD,EAAQr8E,GAAO5G,MAE/BktB,GAEErnB,EAAO+U,SACTmC,EAAkB,UAAWia,EAAe,8BAC5C4rD,EAAiB,YACXG,KAENhmE,EACE,QACAia,EAAe,4BAA8BnxB,EAAOgV,SAGxDs3B,GAAQ,EAAM,EAqDVixC,EAAoBrlF,UAA0B,IAAD0+C,EACjD,MAAM9N,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBACrBD,EAAYO,SAAWnyC,UAAmB,IAADoyC,EAAAT,EACvC,MAAMU,EAA2B,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAClCjI,EAAWvG,KAAKw2B,YAAY8V,EAAKsM,QAEvC,GAAIryC,EAASA,SACX,GAAIA,EAASA,SAASE,MACpB,GAAIF,EAASA,SAASE,KAAKtN,KAAM,CAC/B,MAAMgmF,EAAUJ,EAChBI,EAAQ1B,gBAAgB36E,GAAO2zB,OAASlwB,EAASA,SAASE,KAAKtN,KAE/D,MAAMomF,OH/KWtlF,OAC3Bwd,EACA1D,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAW6V,EAAO,eAAA7V,OAAcmS,EAAQ7X,MACpD,OAAO0X,GAA6B,QAAS5a,EAAQc,EAAUia,EAAQ,EGyK3ByrE,CAChC/nE,GAAW,GACX0nE,EAAQ1B,gBAAgB36E,GACxBsmB,GAEEm2D,EAAoBzoE,QACtBmC,EACE,UACAia,EAAe,gCAGjBja,EACE,QACAia,EAAe,8BAGnB+rD,GACF,OAEAhmE,EACE,QACAia,EAAe,kCAGnBja,EAAkB,QAASia,EAAe,6BAEtB,QAAtB0Y,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,EAAY,EAGtC,OAAZhB,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBsX,EAAA9M,EAAYT,kBAAU,IAAAuN,GAAtBA,EAAwBtN,YAAYQ,EAAY,EAkC5C4zC,EAAkBxlF,MACtBylF,EACAC,KAEAD,EAAYx6E,SAAQjL,UACb8kF,EAAatB,gBAAgBp3E,MAAMsI,GAAMA,EAAEzS,OAAS2I,EAAM3I,OAa7DyjF,EAAc38E,KAAK6B,EAAM3I,OAZzB6iF,EAAatB,gBAAgBz6E,KAAK6B,SAE5Bk5E,GACJ,IACKl5E,EACHsS,SAAUM,GAAW,IAEvB2R,GAGF61D,IAGF,IAEKU,GA0HHC,EAAc98E,GACX+7E,IAAkB/7E,EAoD3B,OACElI,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAM8f,qBACZwL,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SACpCq5B,EAAe,wBAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,SAGdlqB,cAACiwE,GAAc,CAAAhxE,SACbe,cAAC8zC,KAAY,CACXmxC,UAAQ,EACR/8D,QApaM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAoapBxiB,KAAKquC,GAAWA,IACjCC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJ0Q,YAAa3Q,EAAe,0BAC5BtS,QAAQ,WACR9lB,MAAOgT,EACPsc,SAAWjoB,GACTisC,EAAUjsC,EAAEkG,OAAOvN,OAErB+zC,WAAY,CACV51C,KAAM,SACN61C,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo+C,KAAU,CAACh7B,MAAM,eAIxBsG,WAAS,QAKjBtF,eAACg+D,GAAoB,CAAAnjF,SAAA,CACnBe,cAACsiF,GAAW,CAAArjF,SACTpB,EACCmC,cAAC4uC,KAAgB,IAEjBu1C,EAAatB,gBACVn9E,KAAI,CAACw/E,EAAgBh9E,KAAK,CACzBg9E,iBACAh9E,YAEDnC,QACE6N,GACCA,EAAKsxE,eAAe5jF,KACjBmP,cACAzE,QAAQkH,EAAOzC,gBAAkB,IAAMyC,IAE7CugB,MAAK,CAACjnB,EAAGuH,IACRvH,EAAE04E,eAAe5jF,KAAK41B,cACpBnjB,EAAEmxE,eAAe5jF,UACjBkB,EACA,CAAE2iF,YAAa,WAGlBz/E,KAAI,CAACkO,EAAM1L,IACVkc,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACi+D,GAAO,CAENp4D,QAASA,IA7aF/hB,KACzBg8E,EAAiBh8E,EAAM,EA4aUk9E,CAAkBxxE,EAAK1L,OACtCyhC,SAAUq7C,EAAWpxE,EAAK1L,OAAOjJ,SAAA,CAEjCe,cAAA,QAAAf,SAAO2U,EAAKsxE,eAAe5jF,OAC3B8iB,eAAA,OAAK2D,UAAU,QAAO9oB,SAAA,CACpBe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,UAAUr5B,SACvCe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN,aAAW,OACX6G,QAASA,IAAMy6D,EAAkB9wE,EAAK1L,OAAOjJ,SAE7Ce,cAACqlF,KAAW,QAGhBrlF,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,UAAUr5B,SACvCe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN,aAAW,OACX6G,QAASA,IAraN5qB,WAC3B,MAAMklF,EAAU,IAAIJ,EAAatB,kBAC3B,KAAEvhF,EAAI,IAAEif,EAAG,YAAEhf,EAAW,OAAE+jF,EAAM,WAAEC,EAAU,aAAEC,EAAY,OAAE3pD,GAChE0oD,EAAQr8E,GAUJu9E,EAAc,CAClBC,gBATsB,CACtBpkF,OACAif,MACAhf,cACA+jF,SACAC,aACAC,gBAIA75E,SAAU,CACRE,KAAM,CACJtN,KAAMs9B,KAKNoU,EAAenoC,SAASa,eAAe,YACvC29B,EACJ,gCACAC,mBAAmBnhC,KAAKC,UAAUogF,IAC9Bj/C,EAAe1+B,SAAS2iB,cAAc,KAE5C,GADY,OAAZwlB,QAAY,IAAZA,KAAcplB,YAAY2b,GACtBA,EAAc,CAAC,IAAD+J,EAChB/J,EAAajI,aAAa,OAAQ+H,GAClC,MAAMkX,EAAgB,IAAI7iC,KACpB8iC,EACJD,EAAcE,UACd,IACAF,EAAcG,WACd,IACAH,EAAcI,cACd,IACAJ,EAAcK,WACd,IACAL,EAAcM,aAChBtX,EAAajI,aACX,WAAW,YAADv3B,OACEy+E,EAAYC,gBAAgBpkF,KAAI,KAAA0F,OAAIy2C,EAAY,UAE9DjX,EAAaC,QACU,QAAvB8J,EAAA/J,EAAagK,kBAAU,IAAAD,GAAvBA,EAAyBE,YAAYjK,EACvC,GAsXuCm/C,CAAqB/xE,EAAK1L,OAAOjJ,SAEhDe,cAACqlF,KAAW,CACVp8E,MAAO,CAAE4I,UAAW,sBAI1B7R,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,UAAUr5B,SACvCe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN,aAAW,QACX6G,QAASA,IAAMq6D,EAAkB1wE,EAAK1L,OAAOjJ,SAE7Ce,cAACmsC,KAAU,aAGX,KAAAnlC,OAtCIkB,IAwCZlI,cAACyiF,GAAgB,CAAAxjF,SACfe,cAAC0tC,KAAO,CAAC1nB,QAAQ,uBAM7BhmB,cAACuiF,GAAc,CAAAtjF,SACbe,cAACwiF,GAAW,CAAAvjF,SA3KA2mF,MACpB,GAAsB,OAAlB3B,EAAwB,OAAOjkF,cAAAysB,WAAA,IACnC,MAAMxiB,EAAQk6E,EAAatB,gBAAgBoB,GAC3C,OACE7/D,eAACs+D,GAAgB,CAAAzjF,SAAA,CACfmlB,eAAA,UAAAnlB,SAAA,CAAQ,IAAEgL,EAAM3I,KAAK,OACrB8iB,eAACk/D,GAAe,CAAArkF,SAAA,CACde,cAAA,QAAAf,SAAOq5B,EAAe,iCACtBt4B,cAAA,UAAAf,SAASgL,EAAM1I,cACfvB,cAAA,QAAAf,SAAOq5B,EAAe,+BACtBt4B,cAAA,UAAAf,UAAc,OAALgL,QAAK,IAALA,OAAK,EAALA,EAAOq7E,SAAU,KAC1BtlF,cAAA,QAAAf,SAAOq5B,EAAe,+BACtBt4B,cAAA,UAAAf,SAASskF,IAAgB,OAALt5E,QAAK,IAALA,OAAK,EAALA,EAAOs7E,aAAc,WAE1B,EA6JCK,UAGlBxhE,eAAC89D,GAAqB,CAAAjjF,SAAA,CACpBmlB,eAAC+9D,GAAmB,CAAAljF,SAAA,CAClBe,cAAC4kB,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QA/SoB5qB,UAAa,IAADwmF,EAC1C,MAAM51C,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAE3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBAErBD,EAAYO,SAAWnyC,UAAmB,IAADymF,EAAAC,EACvC,MAAMr0C,EAA2B,QAAjBo0C,EAAGv+E,EAAEkG,OAAOkkC,aAAK,IAAAm0C,OAAA,EAAdA,EAAgBlyE,KAAK,GAClCjI,EAAWvG,KAAKw2B,YAAY8V,EAAKsM,QAEvC,GAAIryC,EAASA,SACX,GAAIA,EAASA,SAASE,MACpB,GAAIF,EAASA,SAASE,KAAKtN,KAAM,CAAC,IAADynF,EAAAC,EAC/B,MAAMh8E,EAAQ0B,EAASA,SAASE,KAAKtN,KAC/BumF,EAAuB,GAC7BA,EAAY18E,KAAK,CACf9G,MAA8B,QAAxB0kF,EAAAr6E,EAAS+5E,uBAAe,IAAAM,OAAA,EAAxBA,EAA0B1kF,OAAQowC,EAAKpwC,KAC7CC,aAAqC,QAAxB0kF,EAAAt6E,EAAS+5E,uBAAe,IAAAO,OAAA,EAAxBA,EAA0B1kF,cAAe,GACtDs6B,OAAQ5xB,IAGV,MAAM86E,QAAsBF,EAAgBC,EAAa,IAEzD,GAAIC,EAAclgF,OAAS,EAAG,CAC5B,IAAIqhF,EAAiB,IAErBnB,EAAcr/E,KAAKuE,GACTi8E,GAAc,GAAAl/E,OAAOiD,EAAK,QAGpCi8E,EAAiBA,EAAe/yE,UAC9B,EACA+yE,EAAerhF,OAAS,GAE1BqhF,GAAkB,IAElB7nE,EACE,QACAia,EAAe,oCAAqC,CAClDuD,OAAQqqD,IAGd,MACE7nE,EACE,UACAia,EAAe,gCAInB+rD,GACF,OAEAhmE,EACE,QACAia,EAAe,kCAGnBja,EAAkB,QAASia,EAAe,6BAEtB,QAAtBytD,EAAA90C,EAAYT,kBAAU,IAAAu1C,GAAtBA,EAAwBt1C,YAAYQ,EAAY,EAEtC,OAAZhB,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBo/C,EAAA50C,EAAYT,kBAAU,IAAAq1C,GAAtBA,EAAwBp1C,YAAYQ,EAAY,EA+OLhyC,SAEhCq5B,EAAe,8BAElBt4B,cAAC4kB,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QApPek8D,KAAO,IAADC,EAC/B,MAAMn2C,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAE3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBAErBD,EAAYO,SAAWnyC,UAAmB,IAADgnF,EACvC,MAAM30C,EAAqB,QAAjB20C,EAAG9+E,EAAEkG,OAAOkkC,aAAK,IAAA00C,OAAA,EAAdA,EAAgBzyE,KAAK,GAC5B0yE,EAAclhF,KAAKw2B,YAAY8V,EAAKsM,QAEpC+mC,EAA0B,GAEhC,GAAIuB,EAAYxB,aACd,GAAIwB,EAAYxB,YAAYjgF,QAAU,EAAG,CACvC,MAAMigF,EAAuBwB,EAAYxB,YAIzC,UAFqBD,EAAgBC,EAAaC,IAEvClgF,OAAS,EAAG,CACrB,IAAIqhF,EAAiB,IAErBnB,EAAcr/E,KAAKuE,GACTi8E,GAAc,GAAAl/E,OAAOiD,EAAK,QAGpCi8E,EAAiBA,EAAe/yE,UAC9B,EACA+yE,EAAerhF,OAAS,GAE1BqhF,GAAkB,IAElB7nE,EACE,QACAia,EAAe,oCAAqC,CAClDuD,OAAQqqD,IAGd,CACF,OAEA7nE,EACE,QACAia,EAAe,sCAEnB,EAEU,OAAZ2X,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtB2/C,EAAAn1C,EAAYT,kBAAU,IAAA41C,GAAtBA,EAAwB31C,YAAYQ,EAAY,EAmMVhyC,SAE3Bq5B,EAAe,mCAElBt4B,cAAC4kB,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAtXkBs8D,KAC5B,MAAMhC,EAAU,CAAEO,YAAa,IAAIX,EAAatB,kBAE1C5yC,EAAenoC,SAASa,eAAe,YACvC29B,EACJ,gCACAC,mBAAmBnhC,KAAKC,UAAUk/E,IAC9B/9C,EAAe1+B,SAAS2iB,cAAc,KAE5C,GADY,OAAZwlB,QAAY,IAAZA,KAAcplB,YAAY2b,GACtBA,EAAc,CAAC,IAADggD,EAChBhgD,EAAajI,aAAa,OAAQ+H,GAClC,MAAMkX,EAAgB,IAAI7iC,KACpB8iC,EACJD,EAAcE,UACd,IACAF,EAAcG,WACd,IACAH,EAAcI,cACd,IACAJ,EAAcK,WACd,IACAL,EAAcM,aAChBtX,EAAajI,aACX,WAAW,GAADv3B,OACP7I,EAAM0e,QAAO,mBAAA7V,OAAkBy2C,EAAY,UAEhDjX,EAAaC,QACU,QAAvB+/C,EAAAhgD,EAAagK,kBAAU,IAAAg2C,GAAvBA,EAAyB/1C,YAAYjK,EACvC,GA2VUva,SAAkD,IAAxCk4D,EAAatB,gBAAgBh+E,OAAa5F,SAEnDq5B,EAAe,sCAGpBt4B,cAACuiF,GAAc,CAAAtjF,SACbe,cAAC4kB,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzCjkC,SA1Le,OAAlBg4D,EA2LGj+D,QAAQ,YACR5C,MAAM,UACN6G,QA1La5qB,UAAa,IAADqtB,EACnC,GAAoB,QAAhBA,EAAAvuB,EAAM2P,kBAAU,IAAA4e,GAAhBA,EAAkB/gB,UAA6B,MAAjBs4E,EAAuB,CACvD,MAAM,WAAEn2E,GAAe3P,EAEjB4/B,EAAiB,IAAIzJ,GACzBxmB,GACAymB,kBAEIkyD,EAAkB,IAAK34E,EAAWnC,UAClCiyB,EAAa,IAAIhM,GACrB60D,EACAtoF,EAAMogB,SAAW,GACjBwf,SAEIH,EAAW/L,SACfsyD,EAAatB,gBAAgBoB,GAAepoD,QAE9C,MAAMlwB,EAAWiyB,EAAWvlB,cAE5BvK,EAAW6oB,QACX7oB,EAAW+uB,OAAOlxB,GAClB,MAAMoL,EAAqBpL,EAASA,SAASE,KAAKtN,KAClDu+B,EAAiB/lB,GACjB0Q,GACF,GAkKoCxoB,SAEzBq5B,EAAe,+CAO9B,C,iCCnnBO,MAAM3S,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,+GAOjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,6BAIWwjE,GAAiB3jE,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,2IAW7B+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,6SAmB7BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,8FAO9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,2BC7BjCs0C,GAAgBn4D,MAAOiC,EAAc8a,KACzC,MAAM06C,EAASC,OAAaC,MAAM,CAChC11D,KAAMy1D,OAAa3+C,SAASgE,KAGxB86C,EAAgB,IAAIC,SAAkCC,IAC1DN,EACGO,SAAS,CAAE/1D,QAAQ,CAAEg2D,YAAY,IACjClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEpa,KAAM,KAAO,IAEjDmtD,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAEpa,KAAMgkC,EAAI5pB,OAAO,KAAO,GAC5D,IAEN,aAAaw7C,CAAa,ECnBtByvB,GAAgB,CACpBnmF,EAAYS,UACZT,EAAYK,eACZL,EAAY6D,eAGRuhB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEM81C,GAAYC,cAAYvN,GAC5BwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAGd/Y,MAAO,CACL+Y,WAAY,eAKH,SAAS8iE,KACtB,MAAM,MAAEzoF,EAAK,SAAEe,EAAQ,kBAAEmf,EAAiB,cAAEqE,GAAkBqkB,MACtD7nC,SAAUsvB,GAAgBruB,KAC5B,QAAE0c,GAAY1e,EACd23C,EAAUhB,MACV,eAAExc,GAAmBH,MAEpB0uD,EAAaC,GAAkBx8D,mBAAgB,CACpDhpB,KAAM,GACNC,YAAa,GACbs6B,OAAQ,CAAC,KAEJngB,EAAQkmE,GAAat3D,mBAAyB,CACnDhpB,KAAM,KAGRlC,qBAAU,KACR,GAAIjB,EAAM+f,6BAA+B/f,EAAM2P,WAAY,CACzD,MAAMyI,EAAU7O,IAEVm0B,EAAS,IADI,IAAI1H,GAAyBh2B,EAAM2P,YACvBsmB,SAAS7d,IACxC,IAAK,MAAMtM,KAASsM,EAAS,CAC3B,MAAM+rB,EAAezG,EAAO5xB,GACxB08E,GAAcpmF,SAAS+hC,EAAa/jC,KAAK+B,oBAAoBu7B,EAAO5xB,EAC1E,CACA68E,GAAgBjF,IAAG,IAAWA,EAAKhmD,YACrC,IACC,CAAC19B,EAAM+f,4BAA6B/f,EAAM2P,aAE7C,MAAOjQ,EAAM41C,GAAWnpB,oBAAS,GAEjC,SAAS7C,IACPvoB,EAAS,CAAEb,KAAM,gCACnB,CAEA,MAAMo/D,EACHj0D,GAAsBjC,IACrBq6E,GAAWC,IAAG,IAAWA,EAAK,CAACr4E,GAAM,OACrCs9E,GAAgBjF,IAAG,IAAWA,EAAK,CAACr4E,GAAMjC,EAAEkG,OAAOvN,SAAS,EAmEhE,IAAK/B,EAAM+f,4BAA6B,OAAOle,cAAAysB,WAAA,IAE/C,MAAMs6D,EAAoBA,IACXlkF,OAAOuH,KAAKy8E,EAAYhrD,QAElCn2B,KAAK8D,GAAQq9E,EAAYhrD,OAAOj2B,OAAO4D,IAAMjL,KAAK+C,OAClDylD,KAAK,MAGV,OACE/mD,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAM+f,4BACZuL,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SACpCq5B,EAAe,oCAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,SAGd9F,eAACsiE,GAAc,CAAAznF,SAAA,CACbmlB,eAAA,QAAAnlB,SAAA,CAAM,IAAEq5B,EAAe,wCACvBt4B,cAAA,UAAAf,SAAS8nF,SAEX/mF,cAACiwE,GAAc,CAAAhxE,SACbe,cAACuvB,KAAS,CACRvJ,QAAQ,WACRijB,YAAa3Q,EAAe,mCAC5B9I,SAAUiuC,EAAkB,QAC5Bv9D,MAAO2mF,EAAYvlF,KACnBsnC,WAAY,CAAEq1B,UAAW,IACzBl2C,UAAW+tB,EAAQ/qC,MACnB2e,WAAS,EACTtN,QAASV,EAAOpa,KAChBynC,WAAYrtB,EAAOpa,MAAQ,OAG/BtB,cAACiwE,GAAc,CAAAhxE,SACbe,cAACuvB,KAAS,CACRvJ,QAAQ,WACRijB,YAAa3Q,EAAe,eAC5Bp4B,MAAO2mF,EAAYtlF,YACnBiuB,SAAUiuC,EAAkB,eAC5B70B,WAAY,CAAEq1B,UAAW,IACzBl2C,UAAW+tB,EAAQ/qC,MACnB2e,WAAS,EACTtN,QAASV,EAAOna,YAChBwnC,WAAYrtB,EAAOna,aAAe,OAGtCvB,cAACmwE,GAAe,CAAAlxE,SACdmlB,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAlImB5qB,UAC3B,GAAIxB,IAASM,EAAM2P,WAAY,OAC/B,GAA4B,KAAxBi5E,IAEF,YADA1oE,EAAkB,QAAS,6BAI7B,IAAIwkE,EAA2B,GAC/B,MAAMmE,QAAkB9D,GACtB,CAAE3mE,SAAUM,GAAW,IACvB2R,GAEF,GAAIw4D,EAAU9qE,QAAS,CACrB2mE,EAAkBmE,EAAUjrE,KAAKxd,KAEjC,MAAM,QAAEg5D,EAAO,OAAE77C,QDrGcrc,OACnCwnF,EACA7X,EACA5yD,EACA6qE,KAEA,MAAM9uB,QAAmBX,GAAcqvB,EAAYvlF,KAAM8a,GACzD,IAAIm7C,EAAUY,EAAWZ,QACrB77C,EAAS,IAAKy8C,EAAWz8C,QAc7B,OAbI67C,IACFA,GAAWyX,EAAKvjE,MACbmI,GACCA,EAAKtS,KAAKoP,OAAOD,gBAAkBo2E,EAAYvlF,KAAKoP,OAAOD,gBAE1D8mD,IACH77C,EAAS,IACJA,EACHpa,KACE2lF,GAA0B,gDAI3B,CAAE1vB,UAAS77C,SAAQ,EC+EYwrE,CAChCL,EACAhE,EACAvqD,EAAe,uBAAwB,CACrCxF,MAAOwF,EAAe,UAExBA,EAAe,kCAGjB,GADAspD,EAAUlmE,IACL67C,EAAS,OACd9jB,GAAQ,GAER,MAAMtsC,QAAeg8E,GACnB,IACK0D,EACHtqE,SAAUM,GAAW,IAEvB2R,GAGErnB,EAAO+U,SACTmC,EACE,UACAia,EAAe,6BAEjB5V,IACA+E,IACAq/D,EAAe,CACbxlF,KAAM,GACNC,YAAa,GACbs6B,OAAQ,CAAC,IAEX+lD,EAAU,CAAC,IAEXvjE,EACE,QACAlX,EAAOgV,SAAWmc,EAAe,0BAGvC,MACEja,EACE,QACA2oE,EAAU7qE,SAAWmc,EAAe,0BAIxCmb,GAAQ,EAAM,EAqEwBx0C,SAAA,CAE7Bq5B,EAAe,QACfz6B,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,cAM7D,C,sBC9NO,MAAM45D,GAAe9nF,SAInB2Z,GAA2B,MADtB,YACqC9Z,GCkC7C0mB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEM81C,GAAYC,cAAYvN,GAC5BwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY0rC,KAAK,MAGnBmzB,aAAc,CACZ7+D,WAAY0rC,KAAK,KACjBpsC,MAAO,UACPqtD,cAAe,EACfvgB,aAAc,EACd,UAAW,CACTpsC,WAAY0rC,KAAK,WAMV,SAAS43B,KACtB,MAAQloF,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,SAAEe,EAAQ,iBAAE49B,EAAgB,kBAAEze,GAAsB0oB,MAC3D,2BAAE5oB,GAA+BhgB,EACjC23C,EAAUhB,MAIT5hC,EAAQsgC,GAAalpB,mBAAS,KAE9B+8D,EAAWC,GAAgBh9D,mBAAkB,KAC7CzsB,EAAM41C,GAAWnpB,oBAAS,IAC1B25D,EAAeC,GAAoB55D,mBAAwB,OAC5D,eAAEgO,GAAmBH,KAErBovD,EAAgB5/D,uBAAYtoB,UAChCo0C,GAAQ,GACR,MAAM+zC,QAAmBL,GAAa34D,GAClCg5D,EAAWtrE,SACborE,EAAaE,EAAWzrE,KAAKxd,MAE/Bk1C,GAAQ,EAAM,GAEb,IAEHr0C,qBAAU,KACJ+e,IACFq1B,EAAU,IACV+zC,IACF,GACC,CAACA,EAAeppE,IAOnB,SAASsJ,IACPy8D,EAAiB,MACjBhlF,EAAS,CAAEb,KAAM,+BACnB,CAEA,IAAKF,EAAMggB,2BACT,OAAOne,cAAAysB,WAAA,IAGT,MAAMg7D,EAAwBv/E,IAAmB,IAAD61C,EAC9C,MAAM9N,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBACrBD,EAAYO,SAAWnyC,UAAmB,IAADoyC,EAAAT,EACvC,MAAMU,EAA2B,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAClCjI,EAAWvG,KAAKw2B,YAAY8V,EAAKsM,QAEvC,GAAIryC,EAASA,SACX,GAAIA,EAASA,SAASE,MACpB,GAAIF,EAASA,SAASE,KAAKtN,KAAM,CAC/B,MAAMmpF,EAAmB,IAAIL,GAC7BK,EAAiBx/E,GAAO2zB,OAASlwB,EAASA,SAASE,KAAKtN,KACxD,MAAM4I,OD5GY9H,OAC5B8Z,EACAja,KAEA,MAAMd,EAAM,aAAA4I,OAAgBmS,EAAQoH,KACpC,OAAOvH,GAA8B,QAAS5a,EAAQc,EAAUia,EAAQ,ECuGzCwuE,CACnBD,EAAiBx/E,GACjBsmB,GAEErnB,EAAO+U,SACTmC,EACE,UACAia,EAAe,iCAEjBovD,EAAiBx/E,GAASf,EAAO4U,KAAKxd,KACtC+oF,EAAaI,IAEbrpE,EACE,QACAlX,EAAOgV,SAAWmc,EAAe,8BAGvC,OAEAja,EACE,QACAia,EAAe,qCAGnBja,EACE,QACAia,EAAe,gCAGG,QAAtB0Y,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,EAAY,EAGtC,OAAZhB,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBsX,EAAA9M,EAAYT,kBAAU,IAAAuN,GAAtBA,EAAwBtN,YAAYQ,EAAY,EAyB5CqzC,EAAoBjlF,UACxB,GAAIxB,EAAM,OACV41C,GAAQ,GACR,MAAMi0C,EAAmB,IAAIL,GACvBO,EAAcF,EAAiBx/E,GAAOqY,KAAO,KACnDmnE,EAAiBv7E,OAAOjE,EAAO,GAC/B,MAAMf,ODrKoB9H,OAC5B8Z,EACAja,KAEA,MAAMd,EAAM,aAAA4I,OAAgBmS,EAAQyuE,aACpC,OAAO5uE,GAA8B,SAAU5a,EAAQc,EAAS,ECgKzC2oF,CACnB,CACED,eAEFp5D,GAEErnB,EAAO+U,SACTmC,EAAkB,UAAWia,EAAe,kCAC5CivD,KAEAlpE,EACE,QACAlX,EAAOgV,SAAWmc,EAAe,gCAGrC4rD,EAAiB,MACjBzwC,GAAQ,EAAM,EA+BVuxC,EAAc98E,GACX+7E,IAAkB/7E,EAG3B,OACElI,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAMggB,2BACZsL,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SACpCq5B,EAAe,2BAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,SAGdlqB,cAACiwE,GAAc,CAAAhxE,SACbe,cAAC8zC,KAAY,CACXmxC,UAAQ,EACR/8D,QAnMM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAmMpBxiB,KAAKquC,GAAWA,IACjCC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJ0Q,YAAa3Q,EAAe,0BAC5BtS,QAAQ,WACR9lB,MAAOgT,EACPsc,SAAWjoB,GACTisC,EAAUjsC,EAAEkG,OAAOvN,OAErB+zC,WAAY,CACV51C,KAAM,SACN61C,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo+C,KAAU,CAACh7B,MAAM,eAIxBsG,WAAS,QAKjBtF,eAACg/D,GAAkB,CAAAnkF,SAAA,CACjBe,cAACqjF,GAAS,CAAApkF,SACPpB,EACCmC,cAAC4uC,KAAgB,IAEjBy4C,EACG3hF,KAAI,CAACw/E,EAAgBh9E,KAAK,CACzBg9E,iBACAh9E,YAEDurB,MAAK,CAACjnB,EAAGuH,IACRvH,EAAE04E,eAAe5jF,KAAK41B,cAAcnjB,EAAEmxE,eAAe5jF,QAEtDyE,QACE6N,GACCA,EAAKsxE,eAAe5jF,KACjBmP,cACAzE,QAAQkH,EAAOzC,gBAAkB,IAAMyC,IAE7CxN,KAAI,CAACkO,EAAM1L,IACVkc,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACi+D,GAAO,CAENp4D,QAASA,IAtJF/hB,KACzBg8E,EAAiBh8E,EAAM,EAqJUk9E,CAAkBxxE,EAAK1L,OACtCyhC,SAAUq7C,EAAWpxE,EAAK1L,OAAOjJ,SAAA,CAEjCe,cAAA,QAAAf,SAAO2U,EAAKsxE,eAAe5jF,OAC3B8iB,eAAA,OAAAnlB,SAAA,CACEe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN,aAAW,UACX6G,QAASA,IAAMw9D,EAAqB7zE,EAAK1L,OAAOjJ,SAEhDe,cAACqlF,KAAW,MAEdrlF,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN,aAAW,SACX6G,QAASA,IAAMq6D,EAAkB1wE,EAAK1L,OAAOjJ,SAE7Ce,cAACmsC,KAAU,WAET,KAAAnlC,OAtBIkB,IAwBZlI,cAACyiF,GAAgB,CAAAxjF,SACfe,cAAC0tC,KAAO,CAAC1nB,QAAQ,uBAM7BhmB,cAACwiF,GAAW,CAAAvjF,SAhLE2mF,MACpB,GAAsB,OAAlB3B,EAAwB,OAAOjkF,cAAAysB,WAAA,IACnC,MAAMxiB,EAAQo9E,EAAUpD,GACxB,OACE7/D,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAAA,UAAAnlB,SAAA,CAAQ,IAAEgL,EAAM3I,KAAK,OACrB8iB,eAACk/D,GAAe,CAAArkF,SAAA,CACdmlB,eAAA,QAAAnlB,SAAA,CAAOq5B,EAAe,+BAA+B,OACrDt4B,cAAA,UAAAf,SAASgL,EAAM1I,cACfvB,cAAA,QAAAf,SAAOq5B,EAAe,+BACtBt4B,cAAA,UAAAf,UAAc,OAALgL,QAAK,IAALA,OAAK,EAALA,EAAOq7E,SAAU,KAC1BtlF,cAAA,QAAAf,SAAOq5B,EAAe,+BACtBt4B,cAAA,UAAAf,SAASskF,IAAgB,OAALt5E,QAAK,IAALA,OAAK,EAALA,EAAOs7E,aAAc,WAE1C,EAkKeK,QAEhBxhE,eAACq9D,GAAgB,CAAAxiF,SAAA,CACfmlB,eAACQ,GAAM,CACLoB,QAAQ,YACR+B,UAAW+tB,EAAQ6sC,aACnB14D,QA3PwB69D,KAChCrgE,IACAvoB,EAAS,CAAEb,KAAM,2BAA4B,EAyPFY,SAAA,CAElCq5B,EAAe,iCACf,KAEHt4B,cAAC4kB,GAAM,CACL3b,MAAO,CAAEisC,WAAY,GAAIu7B,cAAe,EAAGvgB,aAAc,GACzDlqC,QAAQ,YACR5C,MAAM,UACN6I,SAnJiB,OAAlBg4D,EAoJCh6D,QAjJe5qB,UAAa,IAADqtB,EACnC,GAAoB,QAAhBA,EAAAvuB,EAAM2P,kBAAU,IAAA4e,GAAhBA,EAAkB/gB,UAA6B,MAAjBs4E,EAAuB,CACvD,MAAM,WAAEn2E,GAAe3P,EAEjB4/B,EAAiB,IAAIzJ,GACzBxmB,GACAymB,kBACIkyD,EAAkB,IAAK34E,EAAWnC,UAClCiyB,EAAa,IAAIhM,GACrB60D,EACAtoF,EAAMogB,SAAW,GACjBwf,SAEIH,EAAW/L,SAASw1D,EAAUpD,GAAepoD,QACnD,MAAMlwB,EAAWiyB,EAAWvlB,cAE5BvK,EAAW6oB,QACX7oB,EAAW+uB,OAAOlxB,GAClB,MAAMoL,EAAqBpL,EAASA,SAASE,KAAKtN,KAClDu+B,EAAiB/lB,GACjB0Q,GACF,GA4HkCxoB,SAEzBq5B,EAAe,6CAM5B,C,yBCnXO,MAAM3S,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,8GAOjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAQ,MADgBjD,CAExBS,QAAAN,aAAA,4BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,kVAuB7B6kE,GAAsBhlE,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,0RAmBlCitD,GAAkBptD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,8FAO9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,2BCtCjCs0C,GAAgBn4D,UACpB,MAAMy3D,EAASC,OAAaC,MAAM,CAChC11D,KAAMy1D,OAAa3+C,SAAS,2BAGxB8+C,EAAgB,IAAIC,SAAkCC,IAC1DN,EACGO,SAAS,CAAE/1D,QAAQ,CAAEg2D,YAAY,IACjClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEpa,KAAM,KAAO,IAEjDmtD,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAEpa,KAAMgkC,EAAI5pB,OAAO,KAAO,GAC5D,IAEN,aAAaw7C,CAAa,ECzBtBtxC,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEM81C,GAAYC,cAAYvN,GAC5BwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY0rC,KAAK,MAGnBzkD,MAAO,CACL+Y,WAAY,WAGdkkE,iBAAkB,CAChBlkE,WAAY0rC,KAAK,KACjBpsC,MAAO,UACPqtD,cAAe,EACfvgB,aAAc,EACd,UAAW,CACTpsC,WAAY0rC,KAAK,WAMV,SAASy4B,KACtB,MAAQ/oF,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,SAAEe,EAAQ,kBAAEmf,GAAsB0oB,KACzC+O,EAAUhB,MACV,eAAExc,GAAmBH,MAEpBt6B,EAAM41C,GAAWnpB,oBAAS,IAC1B49D,EAAaC,GAAkB79D,mBAAgB,CACpDhpB,KAAM,GACNC,YAAa,GACbs6B,OAAQ,CAAC,KAEJngB,EAAQkmE,GAAat3D,mBAA6B,CACvDhpB,KAAM,GACNu6B,OAAQ,MAEH+V,EAAUw2C,GAAe99D,mBAAS,KAClC+9D,EAAkBC,GAAuBh+D,oBAAS,GAEzD,SAAS7C,IACP6gE,GAAoB,GACpBH,EAAe,CACb7mF,KAAM,GACNC,YAAa,GACbs6B,OAAQ,CAAC,IAEX38B,EAAS,CAAEb,KAAM,6BACjBa,EAAS,CAAEb,KAAM,8BACnB,CAEA,MAmCMo/D,EACHj0D,GAAsBjC,IACrBq6E,GAAWC,IAAG,IAAWA,EAAK,CAACr4E,GAAM,OACrC2+E,GAAgBtG,IAAG,IAAWA,EAAK,CAACr4E,GAAMjC,EAAEkG,OAAOvN,SAAS,EAwChE,OACEF,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAMigB,wBACZqL,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACgwE,GAAU,CAAA/wE,SACRopF,EACCroF,cAAA,UAAAf,SAASq5B,EAAe,0BAExBt4B,cAAA,UAAAf,SAASq5B,EAAe,8BAG5Bt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,SAGdlqB,cAACiwE,GAAc,CAAAhxE,SACbe,cAACuvB,KAAS,CACR0Z,YAAa3Q,EAAe,wBAC5B9I,SAAUiuC,EAAkB,QAC5Bv9D,MAAOgoF,EAAY5mF,KACnBymB,UAAW+tB,EAAQ/qC,MACnB2e,WAAS,EACTtN,QAASV,EAAOpa,KAChBynC,WAAYrtB,EAAOpa,MAAQ,OAG/BtB,cAACiwE,GAAc,CAAAhxE,SACbe,cAACuvB,KAAS,CACR0Z,YAAa3Q,EAAe,eAC5B9I,SAAUiuC,EAAkB,eAC5Bv9D,MAAOgoF,EAAY3mF,YACnBwmB,UAAW+tB,EAAQ/qC,MACnBi+B,WAAS,EACTG,QAAS,EACTT,QAAS,EACThf,WAAS,MAGb1pB,cAAC+nF,GAAmB,CAAA9oF,SACjBopF,EACCjkE,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAA,UAAAf,SAAS2yC,IACT5xC,cAAC+pB,KAAU,CACTC,KAAK,QACLC,QA5FWs+D,KACvBJ,GAAgBtG,IAAG,IAAWA,EAAKhmD,OAAQ,CAAC,MAC5CysD,GAAoB,EAAM,EA2Fd,aAAW,QACXr/E,MAAO,CAAEma,MAAO,OAAQnkB,SAExBe,cAACkqB,KAAS,SAIdlqB,cAAC4kB,GAAM,CACLmD,UAAW+tB,EAAQkyC,iBACnB/9D,QA/Iau+D,KAAO,IAADzqC,EAC7B,MAAM9N,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBACrBD,EAAYO,SAAWnyC,UAAmB,IAADoyC,EACvC,MAAMC,EAA2B,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAClCjI,EAAWvG,KAAKw2B,YAAY8V,EAAKsM,QAER,IAADhN,EAD1BrlC,EAASA,SACPA,EAASA,SAASE,MAChBF,EAASA,SAASE,KAAKtN,MACzB4pF,GAAgBtG,IAAG,IACdA,EACHhmD,OAAQlwB,EAASA,SAASE,KAAKtN,SAGb,QAAtByyC,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,GACpCq3C,GAAoB,GACpBF,EAAY12C,EAAKpwC,OAEjB+c,EACE,QACAia,EAAe,gCAGnBja,EACE,QACAia,EAAe,+BAChB,EAEO,OAAZ2X,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBsX,EAAA9M,EAAYT,kBAAU,IAAAuN,GAAtBA,EAAwBtN,YAAYQ,EAAY,EAgHtCjrB,QAAQ,YACRyiE,kBAAgB,EAAAxpF,SAEfq5B,EAAe,kCAItBt4B,cAACmwE,GAAe,CAAAlxE,SACdmlB,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QA9GmB5qB,UAC3B,GAAIxB,EAAM,OAEV,IAAIglF,EAA2B,GAC/B,MAAM2E,QAAmBL,GAAa34D,GAClCg5D,EAAWtrE,UACb2mE,EAAkB2E,EAAWzrE,KAAKxd,MAGpC,MAAM,QAAEg5D,EAAO,OAAE77C,QDnIgBrc,OACnC6oF,EACAlZ,KAEA,MAAM7W,QAAmBX,GAAc0wB,EAAY5mF,MAC/C62D,EAAWZ,UACbY,EAAWZ,SAAWyX,EAAKvjE,MACxBmI,GACCA,EAAKtS,KAAKoP,OAAOD,gBAAkBy3E,EAAY5mF,KAAKoP,OAAOD,gBAE1D0nD,EAAWZ,UACdY,EAAWz8C,OAAS,IACfy8C,EAAWz8C,OACdpa,KAAM,6CAKZ,MAAMonF,EAA0C7lF,OAAOuH,KACrD89E,EAAYrsD,QACZh3B,OACE,CAAE0yD,SAAS,EAAM77C,OAAQ,CAAEmgB,OAAQ,KACnC,CAAE07B,SAAS,EAAO77C,OAAQ,CAAEmgB,OAAQ,6BAGxC,MAAO,CAAE07B,QAFOY,EAAWZ,SAAWmxB,EAAanxB,QAEjC77C,OADH,IAAKy8C,EAAWz8C,UAAWgtE,EAAahtE,QAC7B,EC0GUitE,CAChCT,EACArF,GAGF,GADAjB,EAAUlmE,IACL67C,EAAS,OACd9jB,GAAQ,GAER,MAAMtsC,OJjIkB9H,OAC1B8Z,EACAja,IAGO8Z,GAA4B,OADvB,YACuC9Z,EAAUia,GI4HtCyvE,CAAaV,EAAa15D,GAE3CrnB,EAAO+U,SACTmC,EAAkB,UAAWia,EAAe,iCAC5C7Q,KAEApJ,EACE,QACAlX,EAAOgV,SAAWmc,EAAe,+BAIrCmb,GAAQ,EAAM,EAiFwBx0C,SAAA,CAE7Bq5B,EAAe,QACfz6B,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,cAM7D,C,yBCvPO,MAAM6b,GAAYrmB,KAAOC,IAAGC,QAAAC,aAAA,qSAkBtB2lE,GAAmB9lE,KAAOC,IAAGM,QAAAJ,aAAA,oEAM7B4lE,GAAiB/lE,KAAOC,IAAGQ,QAAAN,aAAA,kLAY3Bi6D,GAAgBp6D,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BW,QAAAR,aAAA,6CAK5C8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBqC,QAAAlC,aAAA,6BAIWitD,GAAkBptD,KAAOC,IAAGsC,QAAApC,aAAA,iCAI5B6lE,GAAWhmE,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,4CAK5B4xB,GAAYC,aAAW,CAClCq7B,OAAQ,CACNvhE,SAAU,WACVzF,KAAM,SACNF,IAAK,GACLgnD,aAAc,QAGhB84B,WAAY,CACVh8D,SAAU,OACVm0C,WAAY,OACZ8nB,WAAY,OCvED,WAA0B,gCCOzC,IAAI/b,GAEW,SAASgc,KACtB,MAAMpzC,EAAUhqB,MACV,MAAE3tB,EAAK,SAAEe,EAAQ,gBAAEwnC,GAAoBK,MAEtCoiD,EAAOC,GAAY9+D,oBAAS,IAC5B++D,EAAgBC,GAAqBh/D,mBAR7B,KAST,eAAEgO,GAAmBH,KA2B3B,OAzBA/4B,qBAAU,KACJ+pF,IACEE,EAAiB,EACnBnc,GAAUtjE,YAAW,KAEnB0/E,EADqBD,EACY,EAAE,GAClC,MAEHC,EAnBS,IAoBTF,GAAS,KAIN,IAAMpc,aAAaE,MACzB,CAACic,EAAOE,IAWNlrF,EAAM0gB,iBAGTuF,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAAA,OAAK0qB,IAAK6+D,GAAKC,IAAI,eAErBplE,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAC8rB,GAAY,CACXgqB,QAAS,CACP2zC,GAAI3zC,EAAQkzC,YACZ/pF,SAEDq5B,EAAe,0BAElBt4B,cAAC8rB,GAAe,CAAC9F,QAAQ,QAAO/mB,SAC7Bq5B,EAAe,gCAGpBt4B,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC8rB,GAAU,CAAC1I,MAAM,UAAU4C,QAAS,YAAaiE,QA7BxD5qB,iBACMlB,EAAMogB,SAAWpgB,EAAM0e,UACzB3d,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,WAC1C8nB,EAAgBvoC,EAAMogB,QAASpgB,EAAM0e,SAC3C3d,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,MAElD1f,EAAS,CAAEb,KAAM,qBACnB,EAsB0EY,SACjEq5B,EAAe,gCArBYt4B,cAAAysB,WAAA,GA0BtC,C,yBChEO,MAAM2c,GAAYrmB,KAAOC,IAAGC,QAAAC,aAAA,8UAoBtB2lE,GAAmB9lE,KAAOC,IAAGM,QAAAJ,aAAA,oEAM7B4lE,GAAiB/lE,KAAOC,IAAGQ,QAAAN,aAAA,oGAQ3Bi6D,GAAgBp6D,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BW,QAAAR,aAAA,iDAK5C8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBqC,QAAAlC,aAAA,6BAIWitD,GAAkBptD,KAAOC,IAAGsC,QAAApC,aAAA,iCAI5B6lE,GAAWhmE,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,4CCrD1B,WAA0B,iCCgB1B,SAASwmE,KACtB,MAcM5zC,EAdYf,aAAW,CAC3Bq7B,OAAQ,CACNvhE,SAAU,WACVzF,KAAM,SACNF,IAAK,GACLgnD,aAAc,QAGhB84B,WAAY,CACVh8D,SAAU,OACVm0C,WAAY,OACZ8nB,WAAY,MAGAn0C,IAEV,eAAExc,GAAmBH,MAErB,MAAEh6B,EAAK,SAAEe,EAAQ,gBAAEwnC,GAAoBK,MACtC4iD,EAAaC,GAAkBt/D,mBACpC/qB,aAAaC,QAAQ,eAoBvB,OAjBAJ,qBAAU,KACR,MAAMyqF,EAAQtqF,aAAaC,QAAQ,cACnCoqF,EAAeC,EAAM,GAEpB,CAACtqF,aAAaC,QAAQ,gBAapBrB,EAAM2gB,mBAGTsF,eAACglB,GAAS,CAAAnqC,SAAA,CACRe,cAAC8oF,GAAc,CAAA7pF,SACbe,cAAA,OAAK0qB,IAAKo/D,GAAMN,IAAI,cAEtBplE,eAACykE,GAAgB,CAAA5pF,SAAA,CACfe,cAACgwE,GAAU,CACTl6B,QAAS,CACP2zC,GAAI3zC,EAAQkzC,YACZ/pF,SAEDq5B,EAAe,sBAElBt4B,cAACm9E,GAAa,CAAAl+E,SACK,cAAhB0qF,EACGrxD,EAAe,sBAAuB,CAAEsO,KAAM+iD,IAC9CrxD,EAAe,2CAGvBt4B,cAACmwE,GAAe,CAAAlxE,SACde,cAAC+oF,GAAQ,CAAC3lE,MAAM,UAAU4C,QAAS,YAAaiE,QAjCtD5qB,iBACEH,EAAS,CAAEb,KAAM,wBAEbF,EAAMogB,SAAWpgB,EAAM0e,gBACnB6pB,EAAgBvoC,EAAMogB,QAASpgB,EAAM0e,SAC3C+sE,EAAerqF,aAAaC,QAAQ,eACpCN,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAChD1f,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAEpD,EAwB4E3f,SACnEq5B,EAAe,4BAvBct4B,cAAAysB,WAAA,GA4BxC,CC5EO,MAAMs9D,GAAU1qF,MACrBkd,EACArd,KAEA,MAAMd,EAAM,QAAA4I,OAAWuV,EAAQ,YAC/B,OAAOvD,GAAuB,MAAO5a,EAAQc,EAAS,EAG3C8qF,GAAa3qF,MACxB8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQ0D,QAAO,YACtC,OAAO7D,GAA0B,QAAS5a,EAAQc,EAAUia,EAAQ,ECoBhE8wE,GAAe5qF,MAAOmK,EAAa4S,KACvC,MAAM06C,EAASC,OAAaC,MAAM,CAChCxtD,IAAKutD,OAAa3+C,SAASgE,KAGvB86C,EAAgB,IAAIC,SAAmCC,IAC3DN,EACGO,SAAS,CAAE7tD,OAAO,CAAE8tD,YAAY,IAChClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAElS,IAAK,KAAO,IAEhDilD,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAElS,IAAK87B,EAAI5pB,OAAO,KAAO,GAC3D,IAEN,aAAaw7C,CAAa,EAGtBgzB,GAAiB7qF,MAAOa,EAAekc,KAC3C,MAAM06C,EAASC,OAAaC,MAAM,CAChC92D,MAAO62D,OAAa3+C,SAASgE,KAGzB86C,EAAgB,IAAIC,SAAmCC,IAC3DN,EACGO,SAAS,CAAEn3D,SAAS,CAAEo3D,YAAY,IAClClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAExb,MAAO,KAAO,IAElDuuD,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAExb,MAAOolC,EAAI5pB,OAAO,KAAO,GAC7D,IAEN,aAAaw7C,CAAa,E,kCCrErB,MAAMvxC,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,gQAiBjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,oIASjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,6BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,mcAgC7BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,0EAM9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiBuC,QAAApC,aAAA,QAE1BinE,GAAgBpnE,KAAOC,IAAGwC,QAAAtC,aAAA,yFAQ1BknE,GAAkBrnE,KAAOC,IAAG6C,QAAA3C,aAAA,mLAa5Bi6D,GAAgBp6D,KAAOC,IAAG8C,QAAA5C,aAAA,oEAO1BkmB,GAAYrmB,KAAOC,IAAGiD,QAAA/C,aAAA,mJAUtB4xB,GAAYC,cAAW,IAClCC,aAAa,CACXq1C,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,iBAElB6f,OAAQ,CACNtsD,WAAY,UACZi+D,UAAW,UAEbh3E,MAAO,CACL+Y,WAAY,WAEhBwmE,gBAAiB,CAChBp7D,QAAS,OC/FNtJ,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAASurF,KACtB,MAAM,MAAEpsF,EAAK,SAAEe,EAAQ,kBAAEmf,GAAsB0oB,MACvC7nC,SAAUsrF,GAAgBrqF,KAC5B,QAAE0c,GAAY1e,GACd,sBAAEo7B,GAA0BS,KAC5B8b,EAAUhqB,MAET2+D,EAAYC,GAAiBpgE,mBAAgB,KAC7CqgE,EAAcC,GAAmBtgE,mBAAc,CAAC,CAAE,GAAI,OACtDugE,EAAYC,GAAiBxgE,mBAA0B,KACvDygE,GAAkDzgE,mBAAS,CAChE9gB,IAAK,GACLtJ,MAAO,MAGFwb,EAAQkmE,GAAat3D,mBAAc,CACxC9gB,IAAK,GACLtJ,MAAO,GACP8qF,aAAcP,IAGVQ,EAAmB1xD,EAAsB,CAC7CN,QAAS96B,EAAM4e,YACfqc,MAAOj7B,EAAM0e,QACbze,OAAQ,CAAC,uBAGJP,GAAoBysB,oBAAS,IAE9B,eAAEgO,GAAmBH,KAErB+yD,EAAkBvjE,uBACrBvd,IACC,MAAM8V,EAAa9V,EAAKQ,MAAMugF,IAC5B,GAAmB,gBAAfA,EAAO3hF,IAAuB,OAAO2hF,EAAOjrF,KAAK,IAEjDigB,EAAc/V,EAAKQ,MAAMugF,IAC7B,GAAmB,iBAAfA,EAAO3hF,IAAwB,OAAO2hF,EAAOjrF,KAAK,IAElD+f,EAAc7V,EAAKQ,MAAMugF,IAC7B,GAAmB,iBAAfA,EAAO3hF,IAAwB,OAAO2hF,EAAOjrF,KAAK,IAElD8f,EAAc5V,EAAKQ,MAAMugF,IAC7B,GAAmB,iBAAfA,EAAO3hF,IAAwB,OAAO2hF,EAAOjrF,KAAK,IAElDkgB,EAAahW,EAAKQ,MAAMugF,IAC5B,GAAmB,gBAAfA,EAAO3hF,IAAuB,OAAO2hF,EAAOjrF,KAAK,IAGjD6f,EAAW,CACfG,YAAsB,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYhgB,QAAS,GACjCigB,aAAwB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAajgB,QAAS,GACnC+f,aAAwB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAa/f,QAAS,GACnCkgB,YAAsB,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYlgB,QAAS,GACjC8f,aAAwB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAa9f,QAAS,IAGrChB,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEwhB,aAAa,GAEtD,CAAC7gB,IAGHE,qBAAU,KACQC,WACd,GAAIwd,EAAS,CACX,MAAM1V,QAAe4iF,GAAQltE,EAAS2tE,GACtC,GAAIrjF,EAAO+U,QACT,GAAI/U,EAAO4U,KAAKxd,KAAM,CACpB,MAAM6L,EAAOvH,OAAOuH,KAAKjD,EAAO4U,KAAKxd,KAAK6L,MAAMqpB,MAAK,CAACjnB,EAAGuH,IACvDvH,EAAE0qB,cAAcnjB,OAAGvR,EAAW,CAAE2iF,YAAa,WAE/C,GAAI/6E,EAAM,CACR,IAAIg0B,EAAsC,GAC1C,IAAK,MAAM50B,KAAOY,EAAM,CACtB,MAAM9C,EAAUH,EAAO4U,KAAKxd,KAAK6L,KAAKZ,GACtC40B,EAAOh2B,KAAK,CAAEoB,MAAKtJ,MAAOoH,GAC5B,CACAojF,EAActsD,GACd8sD,EAAgB9sD,EAClB,CACF,MACEssD,EAAc,GAGpB,GAEFU,EAAS,GAER,CAACvuE,EAAS1e,EAAM6gB,oBAAqBksE,IASxC,MAAMG,EAAehsF,UACnB,MAAM,QAAEk4D,EAAO,OAAE77C,QF5HiBrc,OACpCmK,EACAtJ,EACA8qF,EACA5uE,KAEA,MAAMkvE,QAAkBrB,GAAazgF,EAAK4S,EAAMmvE,aAE5CD,EAAU/zB,UACZ+zB,EAAU/zB,SAAWyzB,EAAav/E,MAC/BmI,GAASA,EAAKpK,IAAIkH,OAAOD,gBAAkBjH,EAAIkH,OAAOD,gBAEpD66E,EAAU/zB,UACb+zB,EAAU5vE,OAAS,IACd4vE,EAAU5vE,OACblS,IAAK4S,EAAMovE,iBAKjB,MAAMC,QAAoBvB,GAAehqF,EAAOkc,EAAMsvE,eAGtD,MAAO,CAAEn0B,QAFO+zB,EAAU/zB,SAAWk0B,EAAYl0B,QAE/B77C,OADH,IAAK4vE,EAAU5vE,UAAW+vE,EAAY/vE,QAC3B,EEqGUiwE,CAChChB,EAAanhF,IACbmhF,EAAazqF,MACbuqF,EACA,CACEe,cAAelzD,EAAe,6BAC9BizD,YAAajzD,EAAe,2BAC5BozD,cAAepzD,EAAe,+BAIlC,OADAspD,EAAUlmE,GACL67C,GAELmzB,EAAc,IAAID,EAAYE,IAE9BC,EAAgB,CAAE,GAAI,KAEtBE,EAAc,IAEP,CAAEvzB,UAASozB,iBARG,CAAEpzB,UAAS77C,SAQA,EAG5BkwE,EAAkBA,CACtBrkF,EACAskF,EACAC,EACA5jF,KAEoB,QAAhBX,EAAEkG,OAAOzH,GACXykF,EAAWviF,GAAS,CAAEsB,IAAKjC,EAAEkG,OAAOvN,MAAOA,MAAO4rF,GAElDrB,EAAWviF,GAAS,CAAEsB,IAAKqiF,EAAY3rF,MAAOqH,EAAEkG,OAAOvN,OAGzDwqF,EAAc,IAAID,GAAY,EA2C1BsB,EAAcC,IAClB,MAAM5hF,EAAY,CAAC,EAEnB,IAAK,IAAIlC,EAAQ,EAAGA,EAAQ8jF,EAAQnnF,OAAQqD,IAAS,CACnD,MAAM+jF,EAAWD,EAAQ9jF,GAAOsB,IAC1B0iF,EAAaF,EAAQ9jF,GAAOhI,MAClCkK,EAAK6hF,GAAYC,CACnB,CAEA,OAAO9hF,CAAI,EAGb,OAAKjM,EAAM6gB,oBAGThf,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAM6gB,oBACZyK,oBAAqB7D,GACrB+D,SAAS,KACTD,WAAS,EACT,kBAAgB,2BAChB,mBAAiB,iCAAgCzqB,SAEjDmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SAAEq5B,EAAe,gBACzCt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAnHZ,WACE6gE,EAAc,IACdF,EAAgB,CAAE,GAAI,KACtBhJ,EAAU,CAAEp4E,IAAK,GAAItJ,MAAO,KAC5BhB,EAAS,CAAEb,KAAM,wBACnB,EA+GY,aAAW,QAAOY,SAElBe,cAACkqB,KAAS,WAIhBlqB,cAAC8rB,GAAW,CAAA7sB,SACVe,cAAC8rB,GAAgB,CAAA7sB,SACfmlB,eAACqhD,KAAK,CAACl4C,KAAK,QAAQtkB,MAAO,CAAEsb,MAAO,QAAStlB,SAAA,CAC3Ce,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,SAC3Bt4B,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,gBAG/Bt4B,cAACw2E,KAAS,CAAAv3E,SACPwrF,EAAW/kF,KAAI,CAAC8D,EAAKtB,IACpBkc,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAC3vB,UAAU,KAAKk2C,MAAM,MAAKltF,SACnCe,cAACuvB,KAAS,CACRrvB,MACE2qF,IAAerhF,EAAIA,KACS,KAA5BuhF,EAAoBvhF,IAChBuhF,EAAoBvhF,IACpBA,EAAIA,IAEVxD,GAAIwD,EAAIA,IACRgmB,SAAWjoB,GACTqkF,EAAgBrkF,EAAGiC,EAAIA,IAAKA,EAAItJ,MAAOgI,GAEzC+jB,WAAY4+D,IAAe3iF,GAC3BwhB,WAAS,MAGb1pB,cAAC4lE,KAAS,CAAA3mE,SACRe,cAACuvB,KAAS,CACRrvB,MACE2qF,IAAerhF,EAAIA,KACW,KAA9BuhF,EAAoB7qF,MAChB6qF,EAAoB7qF,MACpBsJ,EAAItJ,MAEV8F,GAAIwD,EAAItJ,MACRsvB,SAAWjoB,GACTqkF,EAAgBrkF,EAAGiC,EAAIA,IAAKA,EAAItJ,MAAOgI,GAEzC+jB,WAAY4+D,IAAe3iF,GAC3BwhB,WAAS,MAGZuhE,GACC7mE,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC4lE,KAAS,CAAC79C,UAAW+tB,EAAQw0C,gBAAgBrrF,SAC5Ce,cAAC+pB,KAAU,CACTC,KAAK,MACL5G,MAAM,UACN6G,QAASA,IAAM6gE,EAAc5iF,GAAOjJ,SAEpCe,cAAC48D,KAAQ,QAGb58D,cAAC4lE,KAAS,CAAC79C,UAAW+tB,EAAQw0C,gBAAgBrrF,SAC5Ce,cAAC+pB,KAAU,CACTC,KAAK,MACL5G,MAAM,UACN6G,QAASA,IAxIVmiE,KACvB,MAAM5iF,EAAMihF,EAAWl/E,WAAW/B,GACzBA,EAAIA,MAAQ4iF,IAGjB5iF,GAAO,GAAGihF,EAAWt+E,OAAO3C,EAAK,GAErCkhF,EAAc,IAAID,GAAY,EAiIS4B,CAAgB7iF,EAAIA,KAAKvK,SAExCe,cAACmsC,KAAU,aAlDNjkC,cA6DxB+iF,GACC7mE,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC8rB,GAAY,CAAC7iB,MAAO,CAAEk4D,WAAY,KAAMliE,SACtCq5B,EAAe,cAGpBlU,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACRnX,UAAQ,EACRpS,GAAG,MACH2iC,MAAOrQ,EAAe,OACtB5O,WAAS,EACTxpB,OAAmB,OAAZyqF,QAAY,IAAZA,OAAY,EAAZA,EAAcnhF,MAAO,GAC5B4S,QAASV,EAAOlS,IAChBu/B,WAAYrtB,EAAOlS,KAAO,GAC1Bs/B,OAAQA,IAAM84C,EAAU,CAAEp4E,IAAK,GAAItJ,MAAO,KAC1CsvB,SAAWjoB,IACT,MAAM+kF,EAAwB9+E,EAAiBjG,EAAG,QAElDqjF,EAAgB,CACdphF,IAAK8iF,EACLpsF,MAAmB,OAAZyqF,QAAY,IAAZA,OAAY,EAAZA,EAAczqF,OACrB,MAIRF,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACRnX,UAAQ,EACRpS,GAAG,QACH2iC,MAAOrQ,EAAe,SACtB5O,WAAS,EACTxpB,OAAmB,OAAZyqF,QAAY,IAAZA,OAAY,EAAZA,EAAczqF,QAAS,GAC9Bkc,QAASV,EAAOxb,MAChB6oC,WAAYrtB,EAAOxb,OAAS,GAC5B4oC,OAAQA,IAAM84C,EAAU,CAAEp4E,IAAK,GAAItJ,MAAO,KAC1CsvB,SAAWjoB,IACTqjF,EAAgB,CACdphF,IAAiB,OAAZmhF,QAAY,IAAZA,OAAY,EAAZA,EAAcnhF,IACnBtJ,MAAOqH,EAAEkG,OAAOvN,OAChB,MAIRF,cAAC+pB,KAAU,CAACC,KAAK,QAAQ5G,MAAM,UAAU6G,QAASohE,EAAapsF,SAC7De,cAACwtC,KAAO,SAGZxtC,cAAC8rB,GAAiB,CAAA7sB,SAChBmlB,eAAC0H,GAAQ,CACP7iB,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAlMS5qB,UACrB,GAAIwd,EAAS,CACX,IAAIzS,EAAkC,CAAC,EACnCgS,GAAQ,EACZ,QACyB5Z,IAArBmoF,EAAanhF,UAA4ChH,IAAvBmoF,EAAazqF,MACjD,CACA,MAAMwY,QAAa2yE,IACX,OAAJ3yE,QAAI,IAAJA,KAAM6+C,QACRntD,EAAO2hF,EAAW,IAAItB,EAAY/xE,EAAKiyE,eAClCvuE,GAAQ,CACjB,CAEA,IAAKA,EAAO,CACVhS,EAAoC,IAA7BvH,OAAOuH,KAAKA,GAAMvF,OAAeknF,EAAWtB,GAAcrgF,SAC5C4/E,GAAW,CAAEntE,UAASzS,QAAQogF,IAExCtuE,QACTmC,EACE,UACAia,EAAe,6BAGjBja,EAAkB,QAASia,EAAe,2BAC5CwyD,EAAc,IACdF,EAAgB,CAAE,GAAI,IACxB,CACF,GAuKoC3rF,SAAA,CAEvBq5B,EAAe,QACfz6B,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,kBA3JxBvtB,cAAAysB,WAAA,GAmKzC,C,sBClYO,MAAM9G,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,+GAOjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,6BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,2bA6B7BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,8FAO9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiBuC,QAAApC,aAAA,2BCpC1BqpE,GAAiBltF,UAC5B,MAAMy3D,EAASC,OAAaC,MAAM,CAChCw1B,SAAUz1B,OAEP3+C,SAAS,2BACTq0E,MAAM,0BAGLv1B,EAAgB,IAAIC,SAA+BC,IACvDN,EACGO,SAAS,CAAEm1B,YAAY,CAAEl1B,YAAY,IACrClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAE8wE,SAAU,KAAO,IAErD/9B,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAE8wE,SAAUlnD,EAAI5pB,OAAO,KAAO,GAChE,IAEN,aAAaw7C,CAAa,EAGtBw1B,GAAoBrtF,UACxB,MAAMy3D,EAASC,OAAaC,MAAM,CAChC21B,SAAU51B,OAEP3+C,SAAS,0BACTqc,IAAI,EAAG,gDAGNyiC,EAAgB,IAAIC,SAA+BC,IACvDN,EACGO,SAAS,CAAEs1B,YAAY,CAAEr1B,YAAY,IACrClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEixE,SAAU,KAAO,IAErDl+B,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAEixE,SAAUrnD,EAAI5pB,OAAO,KAAO,GAChE,IAEN,aAAaw7C,CAAa,EAGtB01B,GAA2BvtF,MAC/BstF,EACAE,KAEA,MAAM/1B,EAASC,OAAaC,MAAM,CAChC61B,qBAAsB91B,OAAY77C,KAChC,QACA,yDACA,WACE,OAAOyxE,IAAa5pF,KAAKiuB,OAAO67D,oBAClC,MAIE31B,EAAgB,IAAIC,SAA+BC,IACvDN,EACGO,SAAS,CAAEw1B,wBAAwB,CAAEv1B,YAAY,IACjDlJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEmxE,qBAAsB,KAAO,IAEjEp+B,OAAOnpB,IACN8xB,EAAQ,CACNG,SAAS,EACT77C,OAAQ,CAAEmxE,qBAAsBvnD,EAAI5pB,OAAO,KAC3C,GACF,IAEN,aAAaw7C,CAAa,EC5EtBpiB,GAAYC,cAAYvN,GAC5BwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAGd/Y,MAAO,CACL+Y,WAAY,eAKZ8B,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS8tF,KACtB,MAAM,MAAE3uF,EAAK,SAAEe,EAAQ,kBAAEmf,GAAsB0oB,KACzC+O,EAAUhB,MACR51C,SAAUsvB,GAAgBruB,KAC3BtC,GAAoBysB,oBAAS,IAC7BkiE,EAAUO,GAAeziE,mBAAS,KAClCqiE,EAAUK,GAAe1iE,mBAAS,KAClCuiE,EAAsBI,GAA2B3iE,mBAAS,KAC1D5O,EAAQkmE,GAAat3D,mBAA0B,CACpDkiE,SAAU,GACVG,SAAU,GACVE,qBAAsB,MAElB,eAAEv0D,GAAmBH,KAE3B/4B,qBAAU,KACR,GAAIjB,EAAM8gB,uBAAwB,CAChC,MAAMiuE,EAAW7tF,UACf,MAAM8H,OC/Cc9H,gBAIb2Z,GAA4B,MAD1B,QACyC9Z,GD2C7BiuF,CAAa3+D,GAClC,GAAIrnB,EAAO+U,QAAS,CAClB,MAAMkxE,EAAQjmF,EAAO4U,KAAKxd,KAC1BwuF,EAAYK,EAAMZ,SACpB,GAGFU,GACF,IAEC,CAAC/uF,EAAM8gB,yBAEV,MAKMouE,EAAiBhuF,UACrB,MAAM,QAAEk4D,EAAO,OAAE77C,QDjEUrc,WAC7B,MAAMiuF,QAAoBf,GAAe3lD,EAAK4lD,UACxCe,QAAuBb,GAAkB9lD,EAAK+lD,UAC9Ca,QAA8BZ,GAClChmD,EAAK+lD,SACL/lD,EAAKimD,sBASP,MAAO,CAAEt1B,QANP+1B,EAAY/1B,SAAW+1B,EAAY/1B,SAAWi2B,EAAsBj2B,QAMpD77C,OALH,IACV4xE,EAAY5xE,UACZ6xE,EAAe7xE,UACf8xE,EAAsB9xE,QAED,ECmDU+xE,CAAgB,CAChDjB,WACAG,WACAE,yBAGF,OADAjL,EAAUlmE,GACH67C,CAAO,EAmBhB,OAAKp5D,EAAM8gB,uBAGTjf,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAM8gB,uBACZwK,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAAC0H,GAAiB,CAAC/D,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CAC3CmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC8rB,GAAY,CAAC7iB,MAAO,CAAEk4D,WAAY,KAAMliE,SACtCq5B,EAAe,+BAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAjDUxC,KAClBm6D,EAAU,CAAE4K,SAAU,GAAIG,SAAU,GAAIE,qBAAsB,KAC9D3tF,EAAS,CAAEb,KAAM,2BAA4B,EAgDrC,aAAW,QAAOY,SAElBe,cAACkqB,KAAS,SAGdlqB,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAACuvB,KAAS,CACRnX,UAAQ,EACRlY,MAAOssF,GAAY,GACnBxmE,QAAQ,WACRijB,YAAa3Q,EAAe,gCAC5BsQ,WAAY,CAAEq1B,UAAW,IACzBl2C,UAAW+tB,EAAQ/qC,MACnBykB,SAAWjoB,GAAMwlF,EAAYxlF,EAAEkG,OAAOvN,OACtCwpB,WAAS,EACTtN,QAASV,EAAO8wE,SAChBzjD,WAAYrtB,EAAO8wE,UAAY,GAC/Bn2C,WAAW,MAGfr2C,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAACuvB,KAAS,CACRnX,UAAQ,EACRi+B,WAAW,EACXrwB,QAAQ,WACR9lB,MAAOysF,GAAY,GACnB1jD,YAAa3Q,EAAe,iBAC5BsQ,WAAY,CAAEq1B,UAAW,IACzBl2C,UAAW+tB,EAAQ/qC,MACnB2e,WAAS,EACT8F,SAAWjoB,GAAMylF,EAAYzlF,EAAEkG,OAAOvN,OACtC7B,KAAK,WACL+d,QAASV,EAAOixE,SAChB5jD,WAAYrtB,EAAOixE,UAAY,OAGnC3sF,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAACuvB,KAAS,CACRnX,UAAQ,EACR4N,QAAQ,WACR9lB,MAAO2sF,GAAwB,GAC/B5jD,YAAa3Q,EAAe,uCAC5BsQ,WAAY,CAAEq1B,UAAW,IACzBl2C,UAAW+tB,EAAQ/qC,MACnBykB,SAAWjoB,GAAM0lF,EAAwB1lF,EAAEkG,OAAOvN,OAClDwpB,WAAS,EACTrrB,KAAK,WACL+d,QAASV,EAAOmxE,qBAChB9jD,WAAYrtB,EAAOmxE,sBAAwB,OAG/C7sF,cAAC8rB,GAAiB,CAAA7sB,SAChBmlB,eAAC0H,GAAQ,CACP7iB,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QA3FS5qB,UAEjB,SADsBguF,IACT,CACX,MAAM19D,OCtEmBtwB,OAC7B8Z,EACAja,UAGa8Z,GACX,QAFa,QAIb9Z,EACAia,GD6DyBu0E,CACrB,CAAElB,WAAUG,YACZn+D,GAGEmB,EAASzT,QACXmC,EAAkB,UAAWia,EAAe,yBAE5Cja,EAAkB,QAASia,EAAe,sBAE9C,GA8E4Br5B,SAAA,CAEnBq5B,EAAe,QACfz6B,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,eA9EjBvtB,cAAAysB,WAAA,GAoF5C,C,kCE/KO,MAAMkhE,GAAe5qE,aAAO4iD,KAAP5iD,CAAgBE,QAAAC,aAAA,4TAInBlkB,GACnBA,EAAM4uF,MACF,QACA,YAKGjoE,GAAkB5C,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,oOAgBjCkmB,GAAYrmB,KAAOC,IAAGQ,QAAAN,aAAA,iDAYtB8sD,IAPkBjtD,aAAO0C,GAAP1C,CAAeW,QAAAR,aAAA,+GAOpBH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBqC,QAAAlC,aAAA,2BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,mcAgC7BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYyC,QAAAtC,aAAA,wKAW9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiB8C,QAAA3C,aAAA,2BAI1B2qE,GAAc9qE,aAAOizB,KAAPjzB,CAAa+C,QAAA5C,aAAA,mFAKvBlkB,GAAWA,EAAM8uF,aAAe,OAAS,SAG7CC,GAAiBhrE,KAAOmI,KAAIjF,QAAA/C,aAAA,iIAS5B4xB,GAAYC,cAAW,IAClCC,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,UACZi+D,UAAW,SACX5yD,QAAS,OACTohC,eAAgB,gBAChBlhC,cAAe,UAGjBtkB,MAAO,CACL+Y,WAAY,WAEdumE,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,iBAElBy9B,gBAAiB,CACf7+D,QAAS,OACTC,WAAY,SACZmhC,eAAgB,UAElB09B,SAAU,CACR7qE,MAAO,UACP8qE,OAAQ,e,kCC3IP,MAAMvoE,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,6MAejCkmB,GAAYrmB,KAAOC,IAAGM,QAAAJ,aAAA,oFAMtBirE,GAAuBprE,KAAOmI,KAAI1H,QAAAN,aAAA,4GASlCkrE,GAAerrE,KAAOC,IAAGU,QAAAR,aAAA,kGAOzBmrE,GAAiBtrE,KAAOC,IAAGoC,QAAAlC,aAAA,qEAG1BlkB,GAAWA,EAAMsvF,WAAa,OAAS,YAGxCnR,GAAgBp6D,KAAOC,IAAGsC,QAAApC,aAAA,oEAO1BgnB,GAAmBnnB,KAAOC,IAAGwC,QAAAtC,aAAA,6MAgB7BsiD,GAAiBziD,KAAOC,IAAG6C,QAAA3C,aAAA,kEAM3BqrE,GAAuBxrE,KAAOC,IAAG8C,QAAA5C,aAAA,uFAMjCsrE,GAA2BzrE,KAAOC,IAAGiD,QAAA/C,aAAA,wH,8CCpE3C,MAAMurE,GAAkBpvF,MAAOotF,EAAeiC,KACnD,MAAMpB,QAAoBf,GAAeE,GAErCa,EAAY/1B,UACd+1B,EAAY/1B,SAAWm3B,EAAWjjF,MAC/BmI,GAASA,EAAKlD,OAAOD,gBAAkBg8E,EAAM/7E,OAAOD,gBAElD68E,EAAY/1B,UACf+1B,EAAY5xE,OAAS,IAChB4xE,EAAY5xE,OACfgzE,WAAY,2CASlB,MAAO,CAAEn3B,QAJO+1B,EAAY/1B,QAIV77C,OAHH,IACV4xE,EAAY5xE,QAES,EAyBf6wE,GAAiBltF,UAC5B,MAAMy3D,EAASC,OAAaC,MAAM,CAChCy1B,MAAO11B,OAEJ3+C,SAAS,2BACTq0E,MAAM,0BAGLv1B,EAAgB,IAAIC,SAAsCC,IAC9DN,EACGO,SAAS,CAAEo1B,SAAS,CAAEn1B,YAAY,IAClClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAE+wE,MAAO,KAAO,IAElDh+B,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAE+wE,MAAOnnD,EAAI5pB,OAAO,KAAO,GAC7D,IAEN,aAAaw7C,CAAa,ECwBfy3B,GAAY,CACvB3oF,GAAI,GACJymF,MAAO,GACP9yD,SAAS,GCnGEi1D,GAAwB,CACnCruE,IAAK,GACLjf,KAAM,GACNutF,OAAQ,GACRC,MAAO,GACPtqD,SAAU,GACVrL,OAAQ,GACR3Y,OAAQ,GACRuuE,YAAa,EACbC,WAAY,EACZC,aAAa,GAGFC,GAA2B,CACtC3uE,IAAK,GACLjf,KAAM,GACN+3B,QAAS,GACTF,OAAQ,GACRF,QAAS,GACTwL,QAAS,GACTqqD,MAAO,GACPtqD,SAAU,IAGC2qD,GAA+B,CAC1C5uE,IAAK,GACLjf,KAAM,GACN63B,OAAQ,GACRF,QAAS,GACT61D,MAAO,GACPtuE,OAAQ,IAGG7iB,GAAe,CAC1Bs7B,QAAS21D,GACTQ,YAAaR,GACbv5D,MAAO65D,GACP71D,QAAS,GACToL,QAAS0qD,GACTE,YAAaF,ICxCR,SAASG,GACdnxF,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,aAEL,IAAK,iBAEL,IAAK,WAEL,IAAK,gBAEL,IAAK,aAEL,IAAK,iBACH,OAAOC,GAAiBF,EAAOC,MAAMF,EAAa,OAANC,QAAM,IAANA,OAAM,EAANA,EAAQG,MAEtD,QACE,OAAOJ,EAEb,CAEA,MAAMG,GAAmB,CACvBixF,WAAYA,CACVpxF,EACAI,KAEO,IAAKJ,EAAO86B,QAAS,IAAK96B,EAAM86B,WAAgB,OAAJ16B,QAAI,IAAJA,OAAI,EAAJA,EAAM06B,WAE3Du2D,eAAgBA,CACdrxF,EACAI,KAEO,IACFJ,EACHixF,YAAa,IAAKjxF,EAAMixF,eAAoB,OAAJ7wF,QAAI,IAAJA,OAAI,EAAJA,EAAM6wF,eAIlDK,SAAUA,CACRtxF,EACAI,KAEO,IAAKJ,EAAOk3B,MAAO,IAAKl3B,EAAMk3B,SAAc,OAAJ92B,QAAI,IAAJA,OAAI,EAAJA,EAAM82B,SAGvDq6D,WAAYA,CACVvxF,EACAI,KAEO,IAAKJ,EAAOsmC,QAAS,IAAKtmC,EAAMsmC,WAAgB,OAAJlmC,QAAI,IAAJA,OAAI,EAAJA,EAAMkmC,WAE3DkrD,eAAgBA,CACdxxF,EACAI,KAEO,IAAKJ,EAAOkxF,YAAa,IAAKlxF,EAAMkxF,eAAoB,OAAJ9wF,QAAI,IAAJA,OAAI,EAAJA,EAAM8wF,eAGnEO,cAAeA,CACbzxF,EACAI,KAEA,MAAM86B,GAAc,OAAJ96B,QAAI,IAAJA,OAAI,EAAJA,EAAM86B,UAAW,GACjC,MAAO,IAAKl7B,EAAOk3B,MAAO,IAAKl3B,EAAMk3B,MAAOgE,WAAW,GCzDrDw2D,GAAiB/wF,wBAA+B,CAAC,GAEhD,SAASgxF,GAAexoE,GAAuB,IAAtB,SAAEroB,GAAiBqoB,EACjD,MAAOnpB,EAAOe,GAAYC,qBAAWmwF,GAAgB3xF,IAarD,OACEqC,cAAC6vF,GAAe5vF,SAAQ,CACtBC,MAAO,CACL/B,QACAe,WACAqwF,WAhBN,SAAoBt2D,GAAuC,IAArB82D,EAAUnoF,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GAC9C1I,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAE06B,aACnC82D,GACF7wF,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAE6wF,YAAan2D,IAC5D,EAaMy2D,WAZN,SAAoBjrD,GAA8C,IAArBsrD,EAAUnoF,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GACrD1I,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkmC,aACnCsrD,GACF7wF,EAAS,CAAEb,KAAM,iBAAkBE,KAAM,CAAE8wF,YAAa5qD,IAC5D,GASMxlC,SAEDA,GAGP,CAEO,SAAS+wF,KAEd,OADgB5vF,qBAA4ByvF,GAE9C,CCOO,SAASI,GAAW3oE,GAIhB,IAJiB,aAC1B4oE,EAAY,aACZC,EAAY,YACZC,EAAc,IACR9oE,EACN,MAAM,MAAEnpB,EAAK,SAAEe,GAAa8wF,MACrBK,EAAYC,GAAiBhmE,mBAAiB,KAC/C,OAAEkO,GAAWwB,MACb,QAAEf,GAAY96B,GACboyF,EAAsBC,GAA2BlmE,mBACtD,KAEKq/D,EAAaC,GAClBt/D,mBAAiCqkE,KAC7B,eAAEr2D,GAAmBH,MACpBs4D,EAAaC,GAAkBpmE,mBAAsB,IACvDqkE,GACHzmF,OAAQ,IAEJyoF,EAiBN,WACE,OAAQR,GACN,IAAK,UACH,MAAO,aACT,IAAK,UACH,MAAO,aACT,IAAK,QACH,MAAO,WAEb,CA1BqBS,GACfC,EAA6B,YAAjBV,GACX/zE,EAAO00E,GAAYxmE,mBAGvB,CACDmiE,MAAO,GACPiC,WAAY,KAGRI,EAAQvxB,mBAAQ,IACb2yB,EAAaz8D,OAAO/tB,KAAKkhC,IAAI,CAClC6lD,MAAO7lD,EACPjN,QAASV,EAAQ41D,OAAOtuF,SAASqmC,QAElC,CAAC3N,EAAQ41D,OAAQqB,IAyDpB,SAASa,EAAiBxpF,EAA4BW,GAChC,UAAhBX,EAAEkG,OAAOzH,IACX8oF,EAAM5mF,GAAS,IAAK4mF,EAAM5mF,GAAQukF,MAAOllF,EAAEkG,OAAOvN,OAClDwwF,GAAgBtvB,IAAI,IAAWA,EAAMqrB,MAAOllF,EAAEkG,OAAOvN,MAAOgI,cAE5D4mF,EAAM5mF,GAAS,IACV4mF,EAAM5mF,GACTyxB,QAASpyB,EAAEkG,OAAOvN,QAAUo4B,EAAe,QAG7Co4D,GAAgBtvB,IAAI,IACfA,EACHznC,QAASpyB,EAAEkG,OAAOvN,QAAUo4B,EAAe,WAGjD,CAEA,SAAS04D,IAA6C,IAArBC,EAAUrpF,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAGknF,EAC5C,GAAI+B,EAAW,CACb,MAAM,MAAE/B,EAAK,OAAED,GAAWoC,EAAWjR,QACnC,CAACkR,EAA4CtqD,KACvCA,EAAKjN,QAASu3D,EAAIrC,OAAOzmF,KAAKw+B,EAAK6lD,OAClCyE,EAAIpC,MAAM1mF,KAAKw+B,EAAK6lD,OAElByE,IAET,CACEpC,MAAO,GACPD,OAAQ,KAGR1wF,EAAM86B,QAAQ+1D,YAAcF,EAAMjqF,QAAQyrF,EAAc,IAC5DpxF,EAAS,CACPb,KAAMsyF,EACNpyF,KAAM,CACJ06B,QAAS,IACJA,EACH61D,QACAD,YAIR,MACE3vF,EAAS,CACPb,KAAMsyF,EACNpyF,KAAM,CACJ,CAAC4xF,GAAe,IACX,CAACA,GACJrB,MAAO,IAAImC,EAAWvrF,KAAKkhC,GAASA,EAAK6lD,aAMjDiE,EAAe,IAAK/B,GAAWzmF,OAAQ,GACzC,CAEA,MAAMipF,EAAiB5zB,mBAAQ,IAChB6yB,EAAYrqF,QACtBqrF,IAAelB,EAAa3vF,SAAS6wF,KAE5B39D,QACX,CAACy8D,EAAcE,IAgBlB,OACEhsE,eAACypE,GAAW,CAACC,aAA+B,YAAjBqC,EAA2BlxF,SAAA,CACpDmlB,eAAA,MAAAnlB,SAAA,CACoB,YAAjBkxF,GACC73D,EAAe,+CACC,YAAjB63D,GACC73D,EAAe,+CACC,UAAjB63D,GACC73D,EAAe,gDAED,YAAjB63D,GACCnwF,cAACouF,GAAY,CAAAnvF,SACXe,cAACuvB,KAAS,CACRtmB,MAAO,CAAEsb,MAAO,SAChBrkB,MAAO/B,EAAM86B,QAAQ+1D,WACrBrmD,MAAOrQ,EAAe,sCACtBj6B,KAAK,SACL4tB,UAAWuM,IACXhJ,SAAWjoB,IAhCMynF,QAiCGl2C,SAASvxC,EAAEkG,OAAOvN,MAAO,IAhCjD4uF,EAAMjqF,QAAUmqF,GAAYsB,EAAc,IAC9CpxF,EAAS,CACPb,KAAMsyF,EACNpyF,KAAM,CAAE,CAAC4xF,GAAe,IAAK,CAACA,GAAenB,gBA6BU,EAEjDpmD,WAAY,CACVnU,IAAK,GAEPqU,OA/BqBuoD,KAC7B,MAAMj1E,EACJje,EAAM86B,QAAQ+1D,WAAaF,EAAMjqF,OAC7ByzB,EAAe,qDACf,GACNg4D,EAAcl0E,EAAM,EA2BZ2sB,WAAYsnD,EACZj0E,QAASi0E,MAKfjsE,eAACiqE,GAAc,CAACC,WAAYuC,EAAU5xF,SAAA,CACpCe,cAACm9E,GAAa,CAAAl+E,SACX4xF,EACC7wF,cAACuvB,KAAS,CACR7F,WAAS,EACTif,MAAM,QACNzoC,MAAOypF,EAAY8C,MACnBj9D,SAAWjoB,IACT,MAAMklF,EAAQllF,EAAEkG,OAAOvN,MACvB0pF,GAAgBxoB,IAAI,IAAWA,EAAMqrB,WAAS,EAEhD1jD,WAAY3sB,EAAMqwE,OAASrwE,EAAMsyE,YAAc,GAC/CtyE,QAASA,EAAMqwE,SAAWrwE,EAAMsyE,WAChC5lD,OAAQA,IAAMgoD,EAAS,CAAErE,MAAO,GAAIiC,WAAY,OAGlD1uF,cAACkqC,GAAgB,CAAAjrC,SACfe,cAAC8zC,KAAY,CACXw9C,UAAQ,EACRpxF,MAAOqwF,EACProE,QAASipE,EACTI,sBAAoB,EACpB1qB,aAAcA,CAAC9yB,EAAMva,KAAA,IAAE,SAAEmQ,GAAUnQ,EAAA,OACjCpV,eAACkC,IAAMkrE,SAAQ,CAAAvyF,SAAA,CACbe,cAACo0E,KAAQ,CACPhkD,KAAMpwB,cAACyxF,KAAwB,CAACzkE,SAAS,UACzC0kE,YAAa1xF,cAAC2xF,KAAY,CAAC3kE,SAAS,UACpC/jB,MAAO,CACL6tC,YAAa,EACb1zB,MAAOumB,EAAW,UAAY,IAEhC42B,QAAS52B,IAEVoK,IACc,EAEnB4yB,cAAeruC,EAAe,aAC9BsuC,eAAiB7yB,GAAWA,EAC5BvkB,SAAUA,CAACoiE,EAASC,KAClBrB,EAAwBqB,EAAgB,EAE1CnoE,WAAS,EACTsqB,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJoQ,MAAOrQ,EAAe,SACtBtS,QAAQ,WACR0D,WAAS,EACTzgB,MAAO,CACLinB,gBAAiB,QACjBoQ,OAAQ,cASrBuwD,GACC7wF,cAACgvC,KAAgB,CACfC,QACEjvC,cAACo0E,KAAQ,CACP7T,QAASopB,EAAYhwD,QACrBnK,SAAWjoB,GACTqiF,GAAgBxoB,IAAI,IACfA,EACHznC,QAASpyB,EAAEqlB,cAAc2zC,YAG7Bj/D,KAAK,QACL8hB,MAAM,YAGVulB,MAAM,UAIV3oC,cAAC+pB,KAAU,CACT,aAAW,sBACXE,QAzOR5qB,iBACE,IAAKwxF,EAEH,YAeJ,WACE,MAAM/B,EAAQ,IAAIyB,KAAyBL,GAC3ChxF,EAAS,CACPb,KAAMsyF,EACNpyF,KAAM,CACJ,CAAC4xF,GAAe,IACX,CAACA,GACJrB,MAAOA,MAIb0B,EAAwB,GAC1B,CA5BIsB,GAGF,MAAM,QAAEv6B,EAAO,OAAE77C,SAAiB+yE,GAChC9E,EAAY8C,MACZqC,EAAMppF,KAAKkhC,GAASA,EAAK6lD,UAGtBl1B,GAAWu3B,EAAMrjF,MAAMm7B,GAASA,EAAK6lD,QAAU9C,EAAY8C,QAC9DqE,EAASp1E,IAETs1E,EAAwB,IAAIlC,EAAOnF,IACnCC,EAAe+E,IAEnB,EA0NQ1iE,SAAU6iE,EAAMjqF,QAAU1G,EAAM86B,QAAQ+1D,WAAW/vF,SAEnDe,cAACwtC,KAAO,SAGZxtC,cAACwlE,GAAc,CAAAvmE,SACbmlB,eAACqhD,KAAK,CAACl4C,KAAK,QAAQ,aAAW,uBAAmBtuB,SAAA,CAChDe,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAC38D,MAAO,CAAE4a,OAAQ,QAAS5kB,SAAC,UACrC4xF,GAAa7wF,cAAC4lE,KAAS,CAAA3mE,SAAC,eAG7Be,cAACw2E,KAAS,CAAAv3E,SACF,OAAL6vF,QAAK,IAALA,OAAK,EAALA,EAAOr7D,OAAO/tB,KAAI,CAACkhC,EAAM1+B,IACxBkc,eAACupE,GAAY,CAAA1uF,SAAA,CACXe,cAAC4lE,KAAS,CAAC38D,MAAO,CAAEsb,MAAO,QAAStlB,SAClCe,cAACuvB,KAAS,CACRvpB,GAAG,QACH9F,MACEuwF,EAAYhE,QAAU7lD,EAAK6lD,MACvBgE,EAAYhE,MACZ7lD,EAAK6lD,MAEXxgE,WAAYwkE,EAAYvoF,QAAUA,GAClCwhB,WAAS,EACT8F,SAAWjoB,GAAMwpF,EAAiBxpF,EAAGW,OAGxC2oF,GACC7wF,cAAC4lE,KAAS,CAAA3mE,SACRmlB,eAAC87C,KAAM,CACLhgE,MACE0mC,EAAKjN,QACDrB,EAAe,OACfA,EAAe,MAErB9I,SAAWjoB,GAAMwpF,EAAiBxpF,EAAGW,GACrC+jB,WAAYwkE,EAAYvoF,QAAUA,GAAOjJ,SAAA,CAEzCe,cAACogE,KAAQ,CAAClgE,MAAOo4B,EAAe,OAAOr5B,SACpCq5B,EAAe,SAElBt4B,cAACogE,KAAQ,CAAClgE,MAAOo4B,EAAe,MAAMr5B,SACnCq5B,EAAe,aAKxBt4B,cAAC4lE,KAAS,CAAC38D,MAAO,CAAEkmB,QAAS,QAASlwB,SACpCmlB,eAAAqI,WAAA,CAAAxtB,SAAA,CACG4xF,GACC7wF,cAAAysB,WAAA,CAAAxtB,SACKwxF,EAAYvoF,QAAUA,EACvBlI,cAAC+pB,KAAU,CACT,aAAW,sBACXE,QAASA,IA5PnC,SAAwB/hB,GACtB,MAAM+oF,EAAa,IAAInC,GAEvB4B,EAAe,IADFO,EAAW/oF,GACEA,SAC5B,CAwPyC6pF,CAAe7pF,GAAOjJ,SAErCe,cAAC48D,KAAQ,CAAC0c,UAAU,cAGtBt5E,cAAC+pB,KAAU,CACT,aAAW,sCACXE,QAASA,IAAM+mE,IAA0B/xF,SAEzCe,cAAC+8D,KAAS,CAACuc,UAAU,gBAM7Bt5E,cAAC+pB,KAAU,CACT,aAAW,oBACXE,QAASA,IAnR7B,SAAoB2c,GAGlBoqD,EAFmB,IAAIlC,GAAO/oF,QAAQ4G,GAAMA,EAAE8/E,QAAU7lD,IAG1D,CA+QmCorD,CAAWprD,EAAK6lD,OAAOxtF,SAEtCe,cAACkqB,KAAS,CAACovD,UAAU,qBA5DVpxE,cAuEjC,CCzXO,SAAS+pF,GAAY3qE,GAIjB,IAJkB,aAC3B6oE,EAAY,aACZ+B,EAAY,cACZC,GACM7qE,EACN,MAAM,SAAEpoB,EAAQ,MAAEf,GAAU6xF,MACrBK,EAAYC,GAAiBhmE,mBAAiB,KAC/C,OAAEkO,GAAWwB,MACZo4D,EAAuBC,GAA4B/nE,mBACxD,KAEI,eAAEgO,GAAmBH,KACrBw4D,EAQN,WACE,OAAQR,GACN,IAAK,UACH,MAAO,aACT,IAAK,UACH,MAAO,aACT,IAAK,QACH,MAAO,WAEb,CAjBqBS,GAEf0B,EAC6B,IAAjCF,EAAsBvtF,QACrButF,EAAsBprF,OAAOmrF,GAAettF,OAC3C1G,EAAM86B,QAAQ81D,aACG,YAAjBoB,EA4CJ,MAAMoC,EAAkBh1B,mBAAQ,KAE5B20B,EAAansF,QACVysF,KAA8B,OAAbL,QAAa,IAAbA,KAAe5xF,SAASiyF,OACvC,IAEc/+D,QACpB,CAAC0+D,EAAeD,IAmBnB,OACE9tE,eAACypE,GAAW,CAACC,aAA+B,YAAjBqC,EAA2BlxF,SAAA,CACpDmlB,eAAA,MAAAnlB,SAAA,CACoB,YAAjBkxF,GACC73D,EAAe,iDACC,YAAjB63D,GACC73D,EAAe,iDACC,UAAjB63D,GACC73D,EAAe,kDAED,YAAjB63D,GACCnwF,cAACouF,GAAY,CAAAnvF,SACXe,cAACuvB,KAAS,CACRrvB,MAAO/B,EAAM86B,QAAQ81D,YACrBpmD,MAAOrQ,EAAe,wCACtBrvB,MAAO,CAAEsb,MAAO,SAChBlmB,KAAK,SACL4tB,UAAWuM,IACXoQ,WAAY,CACVnU,IAAK,GAEPjF,SAAWjoB,IAtCMwnF,SAuCGj2C,SAASvxC,EAAEkG,OAAOvN,MAAO,MAtClCiyF,EAActtF,QAAQyrF,EAAc,IAEvDpxF,EAAS,CACPb,KAAMsyF,EACNpyF,KAAM,CAAE,CAAC4xF,GAAe,IAAK,CAACA,GAAepB,iBAkCU,EAEjDjmD,OAhCqB2pD,KAC7B,MAAMr2E,EACJje,EAAM86B,QAAQ81D,YAAcoD,EAActtF,OACtCyzB,EAAe,uDACf,GACNg4D,EAAcl0E,EAAM,EA4BZ2sB,WAAYsnD,EACZj0E,QAASi0E,MAKfjsE,eAACiqE,GAAc,CAAApvF,SAAA,CACbe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACkqC,GAAgB,CAAAjrC,SACfe,cAAC8zC,KAAY,CACXw9C,UAAQ,EACRpxF,MAAOkyF,EACPlqE,QAASqqE,EACThB,sBAAoB,EACpB1qB,aAAcA,CAAC9yB,EAAMva,KAAA,IAAE,SAAEmQ,GAAUnQ,EAAA,OACjCpV,eAACkC,IAAMkrE,SAAQ,CAAAvyF,SAAA,CACbe,cAACo0E,KAAQ,CACPhkD,KAAMpwB,cAACyxF,KAAwB,CAACzkE,SAAS,UACzC0kE,YAAa1xF,cAAC2xF,KAAY,CAAC3kE,SAAS,UACpC/jB,MAAO,CAAE6tC,YAAa,EAAG1zB,MAAOumB,EAAW,UAAY,IACvD42B,QAAS52B,IAEVoK,IACc,EAEnB4yB,cAAeruC,EAAe,aAC9BsuC,eAAiB7yB,GAAWA,EAC5BvkB,SAAUA,CAACoiE,EAASC,KAClBQ,EAAyBR,EAAgB,EAE3CnoE,WAAS,EACTsqB,YAAczb,GACZv4B,cAACuvB,KAAS,CACRvJ,QAAQ,cACJuS,EACJoQ,MAAOrQ,EAAe,UACtBrvB,MAAO,CAAEinB,gBAAiB,iBAOpClwB,cAAC+pB,KAAU,CACT,aAAW,qBACXE,QAASA,IA/HjB,SAAkByoE,GAChB,MAAMC,EAAc,IAAIR,GACxBO,EAAWpoF,SAAS8uB,IACbu5D,EAAYpyF,SAAS64B,IACxBu5D,EAAYvqF,KAAKgxB,EACnB,IAGFl6B,EAAS,CACPb,KAAMsyF,EACNpyF,KAAM,CAAE,CAAC4xF,GAAe,CAAEh3D,OAAQw5D,MAGpCN,EAAyB,GAC3B,CAiHuBO,CAASR,GACxBnmE,SAAUqmE,EAAiBrzF,SAE3Be,cAACwtC,KAAO,SAGZxtC,cAACwlE,GAAc,CAAAvmE,SACbmlB,eAACqhD,KAAK,CACJl4C,KAAK,QACL,aAAW,kBACXtkB,MAAO,CAAEub,OAAQ,QAASvlB,SAAA,CAE1Be,cAAC0lE,KAAS,CAAAzmE,SACRe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC4lE,KAAS,CAAC38D,MAAO,CAAE4a,OAAQ,QAAS5kB,SAClCq5B,EAAe,cAItBt4B,cAACw2E,KAAS,CAAAv3E,SACM,OAAbkzF,QAAa,IAAbA,OAAa,EAAbA,EAAe1+D,OAAO/tB,KAAK0zB,GAC1BhV,eAACupE,GAAY,CAAA1uF,SAAA,CACXe,cAAC4lE,KAAS,CAAA3mE,SAAEm6B,IACZp5B,cAAC4lE,KAAS,CAAC38D,MAAO,CAAE4pF,UAAW,QAAS3jE,QAAS,WAAYjwB,SAC3De,cAAC+pB,KAAU,CACT,aAAW,mBACXE,QAASA,IAzI3B,SAAqB6oE,GACnB,MAAMH,EAAc,IAAIR,GAElBY,EAAgBJ,EAAYpnF,WAAW6tB,GAAUA,IAAU05D,KAE1C,IAAnBC,IACFJ,EAAYxmF,OAAO4mF,EAAe,GAC9B50F,EAAM86B,QAAQ81D,aAAe4D,EAAY9tF,QAAQyrF,EAAc,IACnEpxF,EAAS,CACPb,KAAMsyF,EACNpyF,KAAM,CAAE,CAAC4xF,GAAe,IAAK,CAACA,GAAeh3D,OAAQw5D,MAG3D,CA4HiCK,CAAY55D,GAAS,IAAIn6B,SAExCe,cAACkqB,KAAS,CAACovD,UAAU,kBAPRlgD,cAiBjC,C,eChOA,MAAM65D,GAAa,UACb52E,GAAU,WAkBThd,eAAe6zF,GAAU5rE,EAE9BpoB,GAC2C,IAF3C,YAAE6d,EAAW,YAAEo2E,GAAiC7rE,EAGhD,MAAMlpB,EAAM,GAAA4I,OAAMisF,GAAU,KAAAjsF,OAAI+V,EAAW,KAAA/V,OAAIqV,GAAO,KAAArV,OAAImsF,GAC1D,aAAan6E,GAAuB,MAAO5a,EAAQc,EACrD,C,UClCO,MAAMixE,GAAkBptD,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,0DAK9BkwE,GAAgBrwE,KAAOC,IAAGM,QAAAJ,aAAA,uF,yBCJhC,MAAMyC,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,0OA+BjCmwE,IAfuBtwE,KAAOmI,KAAI5H,QAAAJ,aAAA,8HAUjBH,KAAOC,IAAGQ,QAAAN,aAAA,8CAKPH,KAAOC,IAAGU,QAAAR,aAAA,sEA8B9B8sD,IAxBgBjtD,KAAOC,IAAGoC,QAAAlC,aAAA,oEAOPH,KAAOC,IAAGsC,QAAApC,aAAA,6MAiBhBH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExByC,QAAAtC,aAAA,2BAIW4xB,GAAYC,cAAW,IAClCC,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,UACZi+D,UAAW,UAGbh3E,MAAO,CACL+Y,WAAY,WAEdumE,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,iBAGlBjyB,UAAW,CACTnP,QAAS,OACT3K,OAAQ,OACR+rC,eAAgB,gBAChBlhC,cAAe,SACfH,QAAS,OACTvF,SAAU,OACVpF,MAAO,Y,mCCzFkBxB,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,oOAgBhBH,KAAOC,IAAGM,QAAAJ,aAAA,8CAhBjC,MAqBMmwE,GAAoBtwE,KAAOC,IAAGQ,QAAAN,aAAA,wGA+B9BitD,IAxBgBptD,KAAOC,IAAGU,QAAAR,aAAA,oEAOPH,KAAOC,IAAGoC,QAAAlC,aAAA,6MAiBXH,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,2EAM9B8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExByC,QAAAtC,aAAA,0BAIW4xB,GAAYC,cAAW,IAClCC,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,UACZi+D,UAAW,UAGbh3E,MAAO,CACL+Y,WAAY,WAEdumE,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,iBAGlBjyB,UAAW,CACTnP,QAAS,OACT3K,OAAQ,OACR+rC,eAAgB,gBAChBlhC,cAAe,SACfH,QAAS,OACTvF,SAAU,OACVpF,MAAO,YC7EN,SAAS+uE,KACd,MAAM,MAAEn1F,EAAK,SAAEe,GAAa8wF,MACtB,MAAE36D,GAAUl3B,GACZ,eAAEm6B,GAAmBH,MAEpBkB,EAASk6D,GAAcjpE,mBAGvB+K,EAAMgE,QAgBPhE,EAAMgE,QAAQ94B,SAAS,KAClB,CACL00B,KAAM,CACJu+D,MAAM,EACNC,OAAO,EACPC,SAAS,GAEXC,wBAAyB,CACvBH,MAAM,EACNC,OAAO,GAETt4E,WAAY,CACVq4E,MAAM,EACNC,OAAO,IAGN,CACLx+D,KAAM,CACJu+D,KAAMn+D,EAAMgE,QAAQ94B,SAAS,aAC7BkzF,MAAOp+D,EAAMgE,QAAQ94B,SAAS,cAC9BmzF,QAASr+D,EAAMgE,QAAQ94B,SAAS,iBAElCozF,wBAAyB,CACvBH,KAAMn+D,EAAMgE,QAAQ94B,SAAS,gCAC7BkzF,MAAOp+D,EAAMgE,QAAQ94B,SAAS,kCAEhC4a,WAAY,CACVq4E,KAAMn+D,EAAMgE,QAAQ94B,SAAS,mBAC7BkzF,MAAOp+D,EAAMgE,QAAQ94B,SAAS,sBA3CzB,CACL00B,KAAM,CACJu+D,MAAM,EACNC,OAAO,EACPC,SAAS,GAEXC,wBAAyB,CACvBH,MAAM,EACNC,OAAO,GAETt4E,WAAY,CACVq4E,MAAM,EACNC,OAAO,KAoCf,MAAMG,EAAiB,CACrB3+D,KAAMqD,EAAe,QACrBq7D,wBAAyBr7D,EAAe,4BACxCnd,WAAYmd,EAAe,eAGvBu7D,EAAqB,CACzBL,KAAM,MACNC,MAAO,SACPC,QAAS,YAqCX,OACEtvE,eAACypE,GAAW,CAACC,cAAY,EAAA7uF,SAAA,CACvBe,cAAA,MAAAf,SACGq5B,EACC,8DAGJt4B,cAAA,SAEC6C,OAAOuH,KAAKivB,GAAS3zB,KAAI,CAACouF,EAAU5rF,KACnC,MAAM6rF,EAAoBD,EAC1B,OACE1vE,eAAA,OAAAnlB,SAAA,CACEe,cAAA,MAAAf,SAAK20F,EAAeG,KACnBlxF,OAAOuH,KAAKivB,EAAQ06D,IAAoBruF,KAAKsuF,IAC5C,MAAMC,EAAwBD,EAC9B,OACEh0F,cAACgvC,KAAgB,CAEfC,QACEjvC,cAACo0E,KAAQ,CACP7T,QACElnC,EAAQ06D,GAAmBE,GAE7BzkE,SAAUA,IA1D9B,SACEskE,EACAE,GAEA,MAAME,EAAY76D,EAAQy6D,GAAUE,GAE9Bh7D,EAAyB,GAE/Bu6D,GAAYnyB,IACV,MAAM+yB,EAAiB,IAClB/yB,EACH,CAAC0yB,GAAW,IAAK1yB,EAAK0yB,GAAW,CAACE,IAAgBE,IAiBpD,OAdmBrxF,OAAOuH,KAAK+pF,GACpB7pF,SAAS8pF,IAClB,MAAML,EAAoBK,EAELvxF,OAAOuH,KAAK+pF,EAAeJ,IACnCzpF,SAASsJ,IACpB,MAAMygF,EAAgBzgF,EAElBugF,EAAeJ,GAAmBM,IACpCr7D,EAAY5wB,KAAK,GAADpB,OACX+sF,EAAiB,KAAA/sF,OAAIqtF,GACzB,GACH,IAEGF,CAAc,IAGvBj1F,EAAS,CAAEb,KAAM,gBAAiBE,KAAM,CAAE86B,QAASL,IACrD,CA2BsBs7D,CACEP,EACAE,GAGJ7wE,MAAM,YAGVulB,MAAOkrD,EAAmBI,IAAuB,GAAAjtF,OAfzCkB,EAAK,KAAAlB,OAAIitF,GAgBjB,MAtBE/rF,EAyBJ,MAKhB,CCpJA,MAAMmU,GAAU,SACV42E,GAAa,UCXZ,MAAMsB,GAAiBA,CAACC,EAAiBC,KAC9C,MAAMC,EAAWF,EAAOA,EAAK/gE,OAAS,GAChCkhE,EAAWF,EAAOA,EAAKhhE,OAAS,GACtC,OACEihE,EAAS7vF,SAAW8vF,EAAS9vF,QAC7B6vF,EAASE,OAAM,CAAChhF,EAAM1L,IAAU0L,IAAS+gF,EAASzsF,IAAO,ECkCtD,SAAS2sF,GAAWvtE,GAAqC,IAApC,YAAEG,EAAW,UAAEqtE,GAAkBxtE,EAC3D,MAAMwuB,EAAUhqB,MACV,kBAAEzN,GAAsB0oB,MACtB7nC,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,SAAEe,EAAQ,WAAEqwF,GAAeS,MAClC,MAAE36D,EAAK,QAAE4D,EAAO,QAAEwL,EAAO,YAAE4qD,GAAgBlxF,GAC1Cie,EAAO00E,GAAYxmE,mBAAiB,CAAEhpB,KAAM,MAC5Csd,EAAS4vB,GAAclkB,oBAAS,IAEhCyqE,EAAWC,GAAgB1qE,mBAAS+K,GACrC4/D,IAAW5/D,EAAM9U,KACjB,eAAE+X,GAAmBH,MAEpBgB,EAAQ+7D,GAAa5qE,mBAAS,CAAC,MAC/BwkE,EAAOqG,GAAY7qE,mBAAS,CAAC,KAE9B8qE,EAAa73B,mBAAQ,IAEvBloC,EAAM/zB,OAASyzF,EAAUzzF,OACxBizF,GAAeQ,EAAUjG,MAAOz5D,EAAMy5D,SACtCyF,GAAeQ,EAAU57D,OAAQ9D,EAAM8D,UACvCo7D,GAAeQ,EAAU17D,QAAShE,EAAMgE,UAE1C,CAAChE,EAAO0/D,IAmJX,OAtHA31F,qBACE,MA5BFC,iBACE,MAAMswB,QAAiBujE,GACrB,CAAEn2E,YAAakc,EAAQ33B,KAAM6xF,YAAa1uD,EAAQnjC,MAClDktB,GAEEmB,EAASzT,SACXi5E,EAASxlE,EAAS5T,KAAK+yE,OACvBoG,EAAUvlE,EAAS5T,KAAKod,SAExB9a,EACE,QACA,mEAEN,CAgBIg3E,EAAkB,GAGpB,CAACP,IAGH11F,qBAAU,KACH61F,GACH/1F,EAAS,CACPb,KAAM,WACNE,KAAM,CACJ82B,MAAO,IACFA,EACHoP,QAASA,EAAQnjC,MAAQ,GACzB23B,QAASA,EAAQ33B,MAAQ,MAIjC,GAEC,IAiGDtB,cAACwpB,KAAM,CACLhC,MAAI,EACJgvC,YAAU,EACV,kBAAgB,2BAChB,mBAAiB,iCAAgCv3D,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCmlB,eAAC0H,GAAY,CAAC7iB,MAAO,CAAEk4D,WAAY,KAAMliE,SAAA,CAC7Bq5B,EAAT28D,EAAwB,OAAyB,UAAW,IAC5D38D,EAAe,YAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAIhB9F,eAACglB,KAAS,CAACrhB,UAAW+tB,EAAQxX,UAAUr/B,SAAA,CACtCmlB,eAAC2pE,GAAc,CAAC73C,SAAW3uC,GAAMA,EAAEC,iBAAiBvI,SAAA,CAClDe,cAAC6tF,GAAW,CAAA5uF,SACVe,cAACuvB,KAAS,CACRnT,QAASA,EAAM9a,KACfqnC,MAAOrQ,EAAe,QACtBp4B,MAAO60F,EAAUzzF,KACjBkuB,SAAWjoB,IArCzB,IAA0BjG,KAqCsBiG,EAAEkG,OAAOvN,OApC7CK,SAAS,OACjBuwF,GAAU1vB,IAAI,IAAWA,EAAM9/D,KAAM,OACrC0zF,GAAc5zB,IAAI,IAAWA,EAAM9/D,WAkCyB,EAClDynC,WAAY3sB,EAAM9a,SAItB8iB,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAACiwF,GAAW,CACVC,aAAc76D,EAAMy5D,OAAS,GAC7BsB,YAAatB,GAAS,GACtBqB,aAAa,UAEfnwF,cAACiyF,GAAY,CACX9B,aAAa,QACb+B,aAAc/4D,EACdg5D,cAAe98D,EAAM8D,SAEvBn5B,cAACszF,GAAa,UAGlBtzF,cAAC8rB,GAAiB,CAAA7sB,SAChBmlB,eAACQ,KAAM,CACLqH,UAAWmpE,EACXnsF,MAAO,CAAEwnE,cAAe,GACxBzqD,QAAQ,YACR5C,MAAM,UACN6G,QAlIZ5qB,iBACE,IA1DF,WACE,MAAM,KAAEiC,GAASyzF,EACjB,OAAKzzF,IACHwvF,GAAU1vB,IAAI,IACTA,EACH9/D,KAAMg3B,EAAe,uBAAwB,CAC3CxF,MAAOwF,EAAe,eAGnB,EAGX,CA8CMg9D,GACJ,GAAMP,EAAUzzF,MAAU+zB,EAAMoP,QAAS,CACvCuwD,GAAc5zB,IAAI,IAAWA,EAAM9/D,KAAM8/D,EAAK9/D,KAAKoP,WACnD89B,GAAW,GACX,MAAM7e,QA0CVtwB,iBACE,OAAK41F,QFjJF51F,eACL8Z,EACAja,GAEA,MAAMd,EAAM,GAAA4I,OAAMisF,GAAU,KAAAjsF,OAAImS,EAAQ8f,QAAO,KAAAjyB,OAAIqV,GAAO,KAAArV,OAAImS,EAAQoH,KACtE,aAAavH,GAA0B,QAAS5a,EAAQc,EAAUia,EACpE,CEsJmBgE,CACX,IACKkY,EACH/zB,KAAMyzF,EAAUzzF,KAAKoP,OACrBuoB,QAAS5D,EAAM4D,SAEjBzK,SF1KDnvB,eACL8Z,EACAja,GAEA,MAAMd,EAAM,GAAA4I,OAAMisF,GAAU,KAAAjsF,OAAImS,EAAQ8f,QAAO,aAAAjyB,OAAYmS,EAAQsrB,QAAO,KAAAz9B,OAAIqV,IAC9E,aAAarD,GAA0B,OAAQ5a,EAAQc,EAAUia,EACnE,CEoJmBo8E,CACX,IACKlgE,EACH/zB,KAAMyzF,EAAUzzF,KAAKoP,OACrB8zB,SAAU,CAACnP,EAAMoP,SACjBxL,QAAS5D,EAAM4D,SAEjBzK,EAWN,CA9D2BgnE,GACvB,GAAI7lE,EAASzT,QAAS,CACpB,MAAMu5E,EAAgBx8D,EAAQzY,OAC9B,IAAKi1E,EAAe,OAEpB,MAAMC,EAAiBD,EAAclqF,WAClCk4B,GAAMA,EAAEljB,MAAQ8U,EAAM9U,OAGD,IAApBm1E,GACFD,EAAcC,GAAkB,IAAKrgE,EAAO/zB,KAAMyzF,EAAUzzF,MAC5DiuF,EAAW,IAAKt2D,EAASzY,OAAQi1E,IACjClG,EAAW,IAAKt2D,EAASzY,OAAQi1E,KAEjClG,EAAW,IAAKt2D,EAASzY,OAAQ,IAAIi1E,EAAepgE,WAxC5Dh2B,iBACE,MAAMswB,QAAiBujE,GACrB,CAAEn2E,YAAakc,EAAQ33B,KAAM6xF,YAAa1uD,EAAQnjC,MAClDktB,GAEEmB,EAASzT,SACXhd,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkmC,QAAS,IAAKA,EAASjkB,OAAQmP,EAAS5T,KAAKyE,WAEvDthB,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAE8wF,YAAa,IAAKA,EAAa7uE,OAAQmP,EAAS5T,KAAKyE,YAG/DnC,EACE,QACA,mEAEN,CAuBYs3E,GACNt3E,EACE,UAAU,SAADrX,OACAiuF,EAAS,aAAe,SAAQ,kBAG3CxtE,GACF,MACEpJ,EACE,QAAQ,sBAADrX,OAELiuF,EAAS,YAAc,QAAO,2CAIpCzmD,GAAW,EACb,MACEnwB,EACE,QAAQ,sBAADrX,OAELiuF,EAAS,YAAc,QAAO,0CAItC,EAqF+Ch2F,SAAA,CAElCq5B,EAAe,QACf1Z,GAAW5e,cAAC4uC,KAAgB,CAACrhB,KAAM,iBAOlD,C,mBC/QO,MAAMqoE,GAAa7yE,KAAOC,IAAGC,QAAAC,aAAA,sIAQvB2yE,GAAqB9yE,aAAOgH,KAAPhH,CAAkBO,QAAAJ,aAAA,qFA8BvCsiD,IAtBgBziD,KAAOC,IAAGQ,QAAAN,aAAA,kEAMPH,KAAOC,IAAGU,QAAAR,aAAA,6MAgBZH,KAAOC,IAAGoC,QAAAlC,aAAA,6DCZjC,SAAS4yE,KACd,MAAM,kBAAEz3E,GAAsB0oB,MACtB7nC,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,SAAEe,GAAa8wF,MACtB,QAAE/2D,EAAO,QAAEwL,GAAYtmC,EACvB4e,EAAckc,EAAQ33B,MACtB,eAAEg3B,GAAmBH,MACpB28D,EAAWiB,GAAgBzrE,oBAAS,GACrC9J,EAASikB,EAAQjkB,OAEvBnhB,eAAeu/C,EAAgBvhC,GAC7B,MAAMlW,QJ5BH9H,eAAuBioB,EAE5BpoB,GAC4C,IAF5C,UAAEme,EAAS,YAAEN,EAAW,YAAEo2E,GAA+B7rE,EAGzD,MAAMlpB,EAAM,GAAA4I,OAAMisF,GAAU,KAAAjsF,OAAI+V,EAAW,aAAA/V,OAAYmsF,EAAW,KAAAnsF,OAAIqV,GAAO,KAAArV,OAAIqW,GACjF,aAAarE,GAAK,MAAO5a,EAAQc,EACnC,CIsByBke,CACnB,CAAEC,YAAWN,cAAao2E,YAAa1uD,EAAQnjC,MAC/CktB,GAEErnB,EAAO+U,SACThd,EAAS,CACPb,KAAM,WACNE,KAAM,CAAE82B,MAAOluB,EAAO4U,QAGxBg6E,GAAa,IAEb13E,EACE,QACAia,EAAe,gDAGrB,CAiBA,OACElU,eAACypE,GAAW,CAACC,cAAY,EAAA7uF,SAAA,CACvBmlB,eAACwxE,GAAU,CAAA32F,SAAA,CACTe,cAAA,MAAAf,SACGq5B,EACC,2DAGJt4B,cAAC61F,GAAkB,CACjB5pE,UAAWwY,EAAQlkB,IACnB0J,QAASA,IAAM8rE,GAAa,GAAM92F,SAElCe,cAACwtC,KAAO,SAGXvU,EAAQuL,UAAYvL,EAAQuL,SAAS3/B,OAAS,EAC7C7E,cAACwlE,GAAc,CAAAvmE,SACbmlB,eAACqhD,KAAK,CAACl4C,KAAK,QAAQ,aAAW,kBAAiBtuB,SAAA,CAC9Ce,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,UAC3Bt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,QAAOt3E,SAAEq5B,EAAe,UACzCt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,QAAOt3E,SAAEq5B,EAAe,iBAG7Ct4B,cAACw2E,KAAS,CAAAv3E,SACD,OAANuhB,QAAM,IAANA,OAAM,EAANA,EAAQiT,OAAO/tB,KAAK2vB,GACnBjR,eAACupE,GAAY,CAAC1kF,MAAO,CAAEsb,MAAO,QAAStlB,SAAA,CACrCe,cAAC4lE,KAAS,CAAA3mE,SAAEo2B,IACZr1B,cAAC4lE,KAAS,CAAC2Q,MAAM,QAAOt3E,SACtBe,cAAC+pB,KAAU,CACT,aAAW,oBACXE,QAASA,IAAM20B,EAAgBvpB,GAAOp2B,SAEtCe,cAACg2F,KAAI,CAAC1c,UAAU,gBAGpBt5E,cAAC4lE,KAAS,CAAC2Q,MAAM,QAAOt3E,SACtBe,cAAC+pB,KAAU,CACT,aAAW,iBACXE,QAASA,IAvD7B5qB,eAAiCge,GAE/B,IADoBmD,EACF,OAElB,MAAMy1E,EAHcz1E,EAGYza,QAAQsvB,GAAUA,IAAUhY,IAC5Dne,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkmC,QAAS,IAAKA,EAASjkB,OAAQy1E,KAE3C,CA8CmCC,CAAkB7gE,GAAOp2B,SAExCe,cAACkqB,KAAS,CAACovD,UAAU,kBAfkBjkD,YAwBrDr1B,cAAA,MAAAf,SAAKq5B,EAAe,gDAErBw8D,GACC90F,cAAC60F,GAAW,CACVC,UAAWA,EACXrtE,YA7DR,WACEsuE,GAAa,GACb72F,EAAS,CAAEb,KAAM,WAAYE,KAAM,CAAE82B,MAAO65D,KAC9C,MA+DF,CC5FO,SAASiH,GAAa7uE,GAAuC,IAAtC,YAAEG,EAAW,YAAE2uE,GAAoB9uE,EAC/D,MAAM,kBAAEjJ,GAAsB0oB,MACxB,MAAE5oC,EAAK,SAAEe,EAAQ,WAAEqwF,GAAeS,MAChC9wF,SAAUsvB,GAAgBruB,KAC5B,QAAE84B,EAAO,QAAEwL,EAAO,YAAE4qD,GAAgBlxF,GACnCygB,EAAS4vB,GAAclkB,oBAAS,IAChClO,EAAO00E,GAAYxmE,mBAAiB,CAAEhpB,KAAM,MAC7C,eAAEg3B,GAAmBH,MACpBk+D,EAAaC,GAAkBhsE,mBAASma,EAAQnjC,OAChD63B,EAAQ+7D,GAAa5qE,mBAAS,CAAC,MAC/BwkE,EAAOqG,GAAY7qE,mBAAS,CAAC,KAC9BwrB,EAAUhqB,KACVyqE,GAAkBhC,GAAelF,EAAYP,MAAOrqD,EAAQqqD,OAC5D0H,GAAmBjC,GAAelF,EAAYl2D,OAAQsL,EAAQtL,QAC9Ds9D,GAAmBlC,GAAelF,EAAY7uE,OAAQikB,EAAQjkB,QAE9D40E,EAAa73B,mBACjB,IACE94B,EAAQnjC,OAAS+0F,GACjBE,GACAC,GACAC,GACF,CAAChyD,EAAS4xD,EAAaE,EAAgBC,EAAiBC,IAwB1Dp3F,eAAeq3F,IACb,MAAM/mE,QVpEHtwB,eACL0d,EACA7d,GAEA,MAAMd,EAAM,GAAA4I,OAAMisF,GAAU,KAAAjsF,OAAI+V,EAAW,KAAA/V,OAAIqV,IAC/C,aAAarD,GAA8B,MAAO5a,EAAQc,EAC5D,CU8D2By3F,CAAe19D,EAAQ33B,KAAMktB,GACpD,GAAImB,EAASzT,QAAS,CACpB,MAAM06E,EAAgBjnE,EAAS5T,KAAKxd,KAAKmH,KAAK++B,GAAYA,EAAQnjC,OAClEiuF,EACE,IACKt2D,EACHuL,SAAUoyD,IAEZ,EAEJ,MACEv4E,EACE,QACAia,EAAe,0CAGrB,CAEAj5B,eAAew3F,IACb,IA/BKR,IACHvF,GAAU1vB,IAAI,IACTA,EACH9/D,KAAMg3B,EAAe,uBAAwB,CAC3CxF,MAAOwF,EAAe,cAGnB,GAwBa,OACtBg+D,EAAeD,EAAY3lF,QAC3B89B,GAAW,GACX,MAAM7e,QA4CRtwB,iBACE,OAAKolC,EAAQlkB,UVvHVlhB,eACL8Z,EACAja,GAEA,MAAMd,EAAM,GAAA4I,OAAMisF,GAAU,KAAAjsF,OAAImS,EAAQ8f,QAAO,KAAAjyB,OAAIqV,GAAO,KAAArV,OAAImS,EAAQoH,KACtE,aAAavH,GAAuB,QAAS5a,EAAQc,EAAUia,EACjE,CUuHmB29E,CACX,IAAKryD,EAASnjC,KAAM+0F,EAAY3lF,QAChC8d,SVvJDnvB,eACL8Z,EACAja,GAEA,MAAMd,EAAM,GAAA4I,OAAMisF,GAAU,KAAAjsF,OAAImS,EAAQ8f,QAAO,KAAAjyB,OAAIqV,IACnD,aAAarD,GAAuB,OAAQ5a,EAAQc,EAAUia,EAChE,CU0ImB49E,CACX,IAAKtyD,EAASnjC,KAAM+0F,EAAY3lF,QAChC8d,EAON,CAvDyBwoE,GAEvB,GAAIrnE,EAASzT,QAAS,CAEpB,IADwB+c,EAAQuL,SACV,aAEhBkyD,IACNx3F,EAAS,CACPb,KAAM,iBACNE,KAAM,CAAE8wF,YAAa5qD,KAEnBA,EAAQlkB,IACVlC,EACE,UACAia,EAAe,8CAGjBja,EACE,UACAia,EAAe,gDAInB,MAAM2+D,EAAetnE,EAAS5T,KAC9B7c,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkmC,QAAS,IAAKwyD,KAE1B,MACMxyD,EAAQlkB,IACVlC,EACE,QACAia,EAAe,4CAGjBja,EACE,QACAia,EAAe,8CAIrBkW,GAAW,EACb,CAoCA,OA1HApvC,qBAAU,KACHqlC,EAAQlkB,KACXrhB,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkmC,QAAS,IAAKA,EAASxL,QAASA,EAAQ33B,MAAQ,MAE5D,GAEC,IA6GHlC,qBAAU,MAhBVC,iBACE,MAAMswB,QAAiB7S,GAAWmc,EAAQ33B,KAAMktB,GAChD,GAAImB,EAASzT,QAAS,CACpB,MAAMg7E,EAAkBvnE,EAAS5T,KACjCm5E,EAAUgC,EAAgB/9D,QAC1Bg8D,EAAS+B,EAAgBpI,MAAM9nF,OAAOkwF,EAAgBrI,QACxD,CACF,CAUEsI,EAAkB,GAEjB,CAACf,IAGFp2F,cAACwpB,KAAM,CACLhC,MAAI,EACJgvC,YAAU,EACV,kBAAgB,2BAChB,mBAAiB,iCAAgCv3D,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCmlB,eAAC0H,GAAY,CAAC7iB,MAAO,CAAEk4D,WAAY,KAAMliE,SAAA,CACtCwlC,EAAQlkB,IAAM+X,EAAe,QAAUA,EAAe,UAAW,IACjEA,EAAe,cAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAKhB9F,eAACglB,KAAS,CAACrhB,UAAW+tB,EAAQxX,UAAUr/B,SAAA,CACtCmlB,eAAC2pE,GAAc,CAAC73C,SAAW3uC,GAAMA,EAAEC,iBAAiBvI,SAAA,CAClDe,cAAC6tF,GAAW,CAAA5uF,SACVe,cAACuvB,KAAS,CACRnT,QAASA,EAAM9a,KACfynC,WAAY3sB,EAAM9a,KAClBqnC,MAAOrQ,EAAe,QACtBp4B,MAAOm2F,EACP7mE,SAAWjoB,IA9CzB,IAAiCjG,KA+COiG,EAAEkG,OAAOvN,OA9CrCK,SAAS,OACjBuwF,EAAS,CACPxvF,KAAM,KAERg1F,EAAeh1F,GA0CoC,MAK7C8iB,eAAC0H,GAAmB,CAAA7sB,SAAA,CAClBe,cAACiwF,GAAW,CACVC,aAAczrD,EAAQqqD,OAAS,GAC/BsB,YAAatB,EACbqB,aAAa,YAEfnwF,cAACiyF,GAAY,CACX9B,aAAa,UACb+B,aAAc/4D,EACdg5D,cAAe1tD,EAAQtL,SAEzBn5B,cAAC81F,GAAa,UAGlB91F,cAACmwE,GAAe,CAAAlxE,SACdmlB,eAACQ,KAAM,CACLqH,UAAWmpE,EACXnsF,MAAO,CAAEwnE,cAAe,GACxBzqD,QAAQ,YACR5C,MAAM,UACN6G,QAASA,IAAM4sE,IAA8B53F,SAAA,CAE5Cq5B,EAAe,QACf1Z,GACC5e,cAAC4uC,KAAgB,CAACrhB,KAAM,GAAItkB,MAAO,CAAEisC,WAAY,sBAQjE,CC3OO,SAASkiD,KAAkB,IAADC,EAC/B,MAAQn4F,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,WAAEoxF,EAAU,WAAEG,GAAeM,MACpC,QAAE/2D,GAAY96B,EACdqmC,EAAWvL,EAAQuL,UACnB,eAAElM,GAAmBH,MACpBi+D,EAAakB,GAAkBhtE,oBAAS,GAiC/C,OACElG,eAACypE,GAAW,CAAA5uF,SAAA,CACVmlB,eAACgvE,GAAa,CAAAn0F,SAAA,CACZe,cAAA,MAAAf,SACGq5B,EAAe,uDAElBt4B,cAAC+pB,KAAU,CACTkC,UAAWgN,EAAQ1Y,IACnB0J,QAASA,IAAMqtE,GAAe,GAAMr4F,SAEpCe,cAACwtC,KAAO,SAGXvU,EAAQuL,UAAYvL,EAAQuL,SAAS3/B,OAAS,EAC7C7E,cAACwlE,GAAc,CAAAvmE,SACbmlB,eAACqhD,KAAK,CACJl4C,KAAK,QACL,aAAW,oBACXtkB,MAAO,CAAEub,OAAQ,QAASvlB,SAAA,CAE1Be,cAAC0lE,KAAS,CAAAzmE,SACRe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC4lE,KAAS,CAAC38D,MAAO,CAAE4a,OAAQ,QAAS5kB,SAClCq5B,EAAe,cAItBt4B,cAACw2E,KAAS,CAAAv3E,SACS,QADTo4F,EACPp+D,EAAQuL,gBAAQ,IAAA6yD,OAAA,EAAhBA,EAAkB3xF,KAAK++B,GACtBrgB,eAACupE,GAAY,CAAC1kF,MAAO,CAAEsb,MAAO,QAAStlB,SAAA,CACrCe,cAAC4lE,KAAS,CAAA3mE,SAAEwlC,IACZrgB,eAACwhD,KAAS,CAAC38D,MAAO,CAAE4pF,UAAW,QAAS3jE,QAAS,WAAYjwB,SAAA,CAC3De,cAAC+pB,KAAU,CACT,aAAW,mBACXE,QAASA,IA7C7B5qB,eAAiC8zF,GAC/B,MAAMxjE,QAAiBujE,GACrB,CAAEC,cAAap2E,YAAakc,EAAQ33B,MACpCktB,GAEEmB,EAASzT,UACXwzE,EAAW//D,EAAS5T,MAAM,GAC1Bu7E,GAAe,GAEnB,CAoCmCC,CAAkB9yD,GAASxlC,SAE1Ce,cAAC48D,KAAQ,CAAC0c,UAAU,cAGtBt5E,cAAC+pB,KAAU,CACT,aAAW,oBACXE,QAASA,IAxE7B5qB,eAAmC8zF,GAIjC,KAHgC,OAAR3uD,QAAQ,IAARA,OAAQ,EAARA,EAAU55B,MAC/B65B,GAAYA,IAAY0uD,KAEL,OAGtB,IADoB3uD,EACF,OAElB,MAAMyxD,EAHczxD,EAGYz+B,QAC7B0+B,GAAYA,IAAY0uD,IAE3B5D,EAAW,IAAKt2D,EAASuL,SAAUyxD,GACrC,CA2DmCuB,CAAoB/yD,GAAW,IAAIxlC,SAElDe,cAACkqB,KAAS,CAACovD,UAAU,mBAdkB70C,YAuBrDzkC,cAAA,MAAAf,SAAKq5B,EAAe,0CAGrB89D,GACCp2F,cAACm2F,GAAa,CAACC,YAAaA,EAAa3uE,YAxE/C,WACEioE,EAAWP,IAAc,GACzBmI,GAAe,EACjB,MAyEF,CCjFO,SAASG,GAAgBnwE,GAA6C,IAA5C,YAAEG,EAAW,kBAAEiwE,GAA0BpwE,EACxE,MAAM,kBAAEjJ,EAAmBlgB,MAAOk1C,GAActM,MAC1C,UAAE1mB,GAAcgzB,GAChB,SAAEn0C,GAAaiB,KACf,MAAEhC,EAAOe,SAAUy4F,EAAe,WAAEpI,GAAeS,MACnD,QAAE/2D,EAAO,YAAEm2D,GAAgBjxF,EAC3B82F,IAAWh8D,EAAQ1Y,IACnBu1B,EAAUhB,MACTl2B,EAAS4vB,GAAclkB,oBAAS,IAChCstE,EAAaC,GAAkBvtE,mBAAS2O,EAAQ33B,OACjD,eAAEg3B,GAAmBH,MACpB2/D,EAAqBC,GAA0BztE,oBAAS,GAEzDisE,EAAiBh5B,mBACrB,KAAOg3B,GAAenF,EAAYN,MAAO71D,EAAQ61D,QACjD,CAAC71D,EAAQ61D,MAAOM,EAAYN,QAExB0H,EAAkBj5B,mBACtB,KAAOg3B,GAAenF,EAAYj2D,OAAQF,EAAQE,SAClD,CAACF,EAAQE,OAAQi2D,EAAYj2D,SAEzB6+D,EAAqBz6B,mBACzB,KAAOg3B,GAAenF,EAAY5qD,SAAUvL,EAAQuL,WACpD,CAACvL,EAAQuL,SAAU4qD,EAAY5qD,WAG3ByzD,EAAuB7I,EAAYJ,aAAe/1D,EAAQ+1D,WAC1DkJ,EAAwB9I,EAAYL,cAAgB91D,EAAQ81D,YAC5DoJ,EAAqBl/D,EAAQg2D,cAAgBG,EAAYH,YACzDmG,EAAa73B,mBACjB,IACEtkC,EAAQ33B,OAASs2F,GACjBrB,GACAC,GACAwB,GACAC,GACAC,GACAC,GACF,CACEl/D,EAAQ33B,KACRs2F,EACArB,EACAC,EACAwB,EACAC,EACAC,EACAC,IAIEC,EAAkB76B,mBAAQ,KAAO,IAAD85B,EACpC,OAAuB,QAAhBA,EAAAp+D,EAAQuL,gBAAQ,IAAA6yD,OAAA,EAAhBA,EAAkB3xF,KAAK++B,GAAYA,MAAY,EAAE,GACvD,CAACxL,EAAQuL,WAEN6zD,EAAgB96B,mBAAQ,KAAO,IAAD+6B,EAClC,OAAqB,QAAdA,EAAAr/D,EAAQzY,cAAM,IAAA83E,OAAA,EAAdA,EAAgB5yF,KAAK2vB,GAAUA,EAAM/zB,SAAS,EAAE,GACtD,CAAC23B,EAAQzY,SAEN+3E,EACJt/D,EAAQ+1D,WAAa/1D,EAAQ61D,MAAMjqF,QACnCo0B,EAAQ81D,YAAc91D,EAAQE,OAAOt0B,OA+DvC,OACE7E,cAACwpB,KAAM,CACLzB,UAAU,mBACVP,MAAM,EACNgvC,YAAU,EACV,kBAAgB,2BAChB,mBAAiB,iCAAgCv3D,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCmlB,eAAC4rD,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SAAA,CAC3Bq5B,EAAT28D,EAAwB,OAAyB,UAAW,IAC5D38D,EAAe,cAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAKhBlqB,cAACopC,GAAS,CAAAnqC,SACRmlB,eAAC+pE,GAAoB,CAACj4C,SAAW3uC,GAAMA,EAAEC,iBAAiBvI,SAAA,CACxDe,cAAC6tF,GAAW,CAAA5uF,SACVmlB,eAACmqE,GAAoB,CAAAtvF,SAAA,CACnBe,cAACuvB,KAAS,CACRoZ,MAAOrQ,EAAe,QACtBp4B,MAAO03F,EACPpoE,SAAWjoB,KAvC3B,SAAiCjG,GAC1BA,EAAKf,SAAS,MACjBs3F,EAAev2F,EAEnB,CAqCkBk3F,CADajxF,EAAEkG,OAAOvN,MACO,IAIjCkkB,eAAA,OAAKnb,MAAO,CAAE4F,SAAU,YAAa5P,SAAA,CACnCe,cAACgvC,KAAgB,CACfC,QACEjvC,cAAAysB,WAAA,CAAAxtB,SACEe,cAACo0E,KAAQ,CACP7T,QAAStnC,EAAQg2D,YACjBz/D,SAAUA,IACR+/D,EAAW,IACNt2D,EACHg2D,aAAch2D,EAAQg2D,cAG1B3tF,KAAK,cACL8hB,MAAM,cAIZulB,MAAOrQ,EAAe,yBAExBt4B,cAACq5E,KAAQ,CACPrsD,SAAS,QACTjF,UAAW+tB,EAAQm4C,SACnBwK,YAAaA,IAAMV,GAAuB,GAC1C/kD,aAAcA,IAAM+kD,GAAuB,KAG5CD,GACC93F,cAACwuF,GAAwB,CAAAvvF,SACvBe,cAACihF,KAAK,CACJK,SAAS,OACTv5D,UAAW+tB,EAAQk4C,gBAAgB/uF,SAElCq5B,EAAe,+BAQ5Bt4B,cAACo3F,GAAc,IACfp3F,cAACiwF,GAAW,CACVC,aAAcj3D,EAAQ61D,MAAM9nF,OAAOiyB,EAAQ41D,SAAW,GACtDsB,aAAa,YAGfnwF,cAACiyF,GAAY,CACX9B,aAAa,UACb+B,aAAc7xE,EACd8xE,cAAel5D,EAAQE,cAK7Bn5B,cAACmwE,GAAe,CAAAlxE,SACdmlB,eAACQ,KAAM,CACL3b,MAAO,CAAEwnE,cAAe,GACxBzqD,QAAQ,YACR5C,MAAM,UACN6I,UAAW2rE,GAAeW,IAAwBnD,EAClDnrE,QAhKV5qB,iBACEmvC,GAAW,GACXqpD,EAAeD,EAAYlnF,QAE3B,MAAMif,QAsBRtwB,iBACE,OAAK41F,QzSnHF51F,eACL8Z,EACAja,GAEA,MAAMd,EAAM,GAAA4I,OAAMqV,GAAO,KAAArV,OAAImS,EAAQoH,KACrC,aAAavH,GAA6B,QAAS5a,EAAQc,EAAUia,EACvE,CyS2HmBu/E,CACX,IACKz/D,EACH1Y,IAAK0Y,EAAQ1Y,KAAO,GACpBjf,KAAMs2F,EAAYlnF,OAClB8zB,SAAU4zD,EACV53E,OAAQ63E,EACRM,aAAc1/D,EAAQ81D,YACtB6J,YAAa3/D,EAAQ+1D,WACrB6J,cAAe5/D,EAAQg2D,aAEzB/vF,SzSnJDG,eACL8Z,EACAja,GAEA,MAAMd,EAAM,GAAA4I,OAAMqV,IAClB,aAAarD,GAA6B,OAAQ5a,EAAQc,EAAUia,EACtE,CySqHmB2/E,CACX,IACK7/D,EACH33B,KAAMs2F,EAAYlnF,OAClB8zB,SAAU4zD,EACV53E,OAAQ63E,EACRM,aAAc1/D,EAAQ81D,YACtB6J,YAAa3/D,EAAQ+1D,WACrB6J,cAAe5/D,EAAQg2D,aAEzB/vF,EAgBN,CAlDyBs2F,GACnB7lE,EAASzT,eACLw7E,EAAkBE,EAAYlnF,QACpC2N,EACE,UAAU,WAADrX,OACEiuF,EAAS,aAAe,SAAQ,kBAE7C0C,EAAgB,CACdt5F,KAAM,iBACNE,KAAM,CAAE6wF,YAAan2D,MAGvB5a,EACE,QAAQ,sBAADrX,OAELiuF,EAAS,YAAc,QAAO,6CAIpCzmD,GAAW,EACb,EAwI+CvvC,SAAA,CAEpCq5B,EAAe,QACf1Z,GACC5e,cAAC4uC,KAAgB,CAACrhB,KAAM,GAAItkB,MAAO,CAAEisC,WAAY,mBAO/D,CCtPA,MAAMtvB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS+5F,KACtB,MAAM,MAAE56F,EAAK,SAAEe,EAAQ,kBAAEmf,GAAsB0oB,MACzC,OAAEvO,EAAM,aAAEuB,GAAiBC,MACzB96B,SAAUsvB,GAAgBruB,KAE3Bs4B,EAAWugE,GAAgB1uE,mBAAmB,KAC/C,WAAEilE,GAAeS,KACjBl6C,EAAUhqB,MAEV,eAAEwM,GAAmBH,MAEpB8gE,EAAUC,GAAe5uE,oBAAS,GAazCjrB,eAAe85F,IACb,MAAMC,QAAsBp8E,GAAYwR,GACxC,GAAI4qE,EAAcl9E,QAAS,CACzB,MAAMm9E,EAAiBD,EAAcr9E,KAAmBrW,KACrDuzB,GAAYA,EAAQ33B,OAEvB03F,EAAaK,EACf,MACEh7E,EAAkB,QAAS,kCAE/B,CAQAhf,eAAeq4F,EAAkB36E,GAC/B,MAAM5V,QAAe2V,GAAWC,EAAayR,GAC7C,GAAIrnB,EAAO+U,QAAS,CAClB,MACEy8E,aAAc5J,EACd6J,YAAa5J,KACV9lD,GACD/hC,EAAO4U,KACXwzE,EACE,IACKrmD,EACH6lD,cACAC,eAEF,GAEFkK,GAAY,EACd,MACE76E,EAAkB,QAAS,kCAE/B,CAWA,OATAjf,qBAAU,KACJo5B,KAAYr6B,EAAM+gB,uBACpBi6E,IAEAH,EA/BKj/D,IACJh0B,QAAQuzF,GAAQA,EAAI3/D,UACpBj0B,KAAK4zF,GAAQA,EAAIh4F,OA8BpB,GAEC,CAACnD,EAAM+gB,yBAEL/gB,EAAM+gB,uBAGTkF,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAM+gB,uBACZuK,oBAAqB7D,GACrB4wC,YAAU,EACV,kBAAgB,2BAChB,mBAAiB,iCAAgCv3D,SAEjDmlB,eAAC0H,GAAiB,CAAC/D,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CAC3Ce,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCe,cAAC8rB,GAAY,CAAC7iB,MAAO,CAAEk4D,WAAY,KAAMliE,SACtCq5B,EAAe,+BAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAhFd,WACEslE,EAAWX,IAAc,GACzB1vF,EAAS,CAAEb,KAAM,2BACnB,EA8Ec,aAAW,QAAOY,SAElBe,cAACkqB,KAAS,WAIhBlqB,cAAC8rB,GAAW,CAAA7sB,SACVe,cAAC8rB,GAAgB,CAAA7sB,SACfmlB,eAACqhD,KAAK,CAACl4C,KAAK,QAAQtkB,MAAO,CAAEsb,MAAO,QAAStlB,SAAA,CAC3Ce,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,aAC3Bt4B,cAAC4lE,KAAS,CAAC79C,UAAU,8BAGzB/nB,cAACw2E,KAAS,CAAAv3E,SACE,OAATw5B,QAAS,IAATA,OAAS,EAATA,EAAWhF,OAAO/tB,KAAKuzB,GACtB7U,eAACupE,GAAY,CAACC,OAAK,EAAA3uF,SAAA,CACjBe,cAAC4lE,KAAS,CAAC3vB,UAAU,KAAIh3C,SAAEg6B,IAC3Bj5B,cAAC4lE,KAAS,CAAC79C,UAAU,mBAAkB9oB,SACrCe,cAAC+pB,KAAU,CACTC,KAAK,MACL5G,MAAM,UACN6G,QAASA,IAAMytE,EAAkBz+D,GAASh6B,SAE1Ce,cAAC48D,KAAQ,UARU3jC,cAkBnCj5B,cAAC8rB,GAAiB,CAAA7sB,SACfu5B,KACCx4B,cAAC8rB,GAAQ,CACP7iB,MAAO,CAAEwnE,cAAe,GACxBzqD,QAAQ,YACR5C,MAAM,UACN6G,QAASA,IAAMivE,GAAY,GAAMj6F,SAEhCq5B,EAAe,gBAOzB2gE,GACCj5F,cAACy3F,GAAgB,CACfC,kBAAmBA,EACnBjwE,YAjIR,WACE8nE,EAAWX,IAAc,GACzBsK,GAAY,GACR1gE,KAAU2gE,GAChB,OAmD0Cn5F,cAAAysB,WAAA,GA+E5C,C,0DClLO,MAmCM8sE,GAAqBl6F,MAChC8Z,EACAja,KAEA,MAAMd,EAAM,iBAAA4I,OAAoBmS,EAAQoH,KACxC,aAAavH,GACX,QACA5a,EACAc,EACAia,EAAQqgF,aACT,E,qCClDI,MAAM7zE,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,oOAuBjC8sD,IAPkBjtD,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,+GAOpBH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,2BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,4aA8B7BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,8FAsC9BgnB,IA/BSnnB,aAAO4B,GAAP5B,CAAiBuC,QAAApC,aAAA,2BAIVH,KAAOC,IAAGwC,QAAAtC,aAAA,oEAMRH,KAAOC,IAAG6C,QAAA3C,aAAA,sMAcZH,KAAOC,IAAG8C,QAAA5C,aAAA,oEAOPH,KAAOC,IAAGiD,QAAA/C,aAAA,oRAsB7Bu2E,GAAqB12E,KAAOC,IAAGkD,QAAAhD,aAAA,sEAM/B4xB,GAAYC,cAAYvN,GACnCwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAEd41E,WAAY,CACVn1E,MAAO,OACPT,WAAY,WAEd/Y,MAAO,CACL+Y,WAAY,WAEdumE,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,qBCzIf,SAASopC,GAAsBryE,GAM3B,IAN4B,MACrClE,EAAK,MACLulB,EAAK,KACLrnC,EAAI,MACJpB,EAAK,SACL05F,GACMtyE,EACN,OACEtnB,cAACgvC,KAAgB,CACfC,QACEjvC,cAACo0E,KAAQ,CACP7T,QAASrgE,EACTsvB,SAAWhD,GAAUotE,EAASptE,EAAM/e,OAAO8yD,QAASj/D,GACpDA,KAAMA,EACN8hB,MAAOA,IAGXulB,MAAOA,GAGb,CAEAgxD,GAAuBE,aAAe,CACpCz2E,MAAO,UACP9hB,KAAM,6B,+BCTD,SAASw4F,GAAkBxyE,GAKvB,IALwB,WACjCyyE,EAAU,MACV7xF,EAAK,uBACL8xF,EAAsB,gBACtBC,GACM3yE,EACN,MAAM,eAAEgR,GAAmBH,KAE3B,OACE/T,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC+pB,KAAU,CAACE,QAASA,IAAMgwE,EAAgBF,EAAWpmF,KAAK1U,SACzDe,cAACk6F,KAAgB,CAAC92E,MAAO,cAG7BpjB,cAAC4lE,KAAS,CAAA3mE,SAAE86F,EAAWpmF,MACvB3T,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC25F,GAAsB,CACrBhxD,MAAOrQ,EAAe,oBACtBh3B,KAAK,UACLpB,MAAO65F,EAAWI,UAAUzG,QAC5BkG,SAAUA,CAAC15F,EAAOoB,KAChB04F,EAAuB,UAAW9xF,EAAOhI,EAAM,MAIrDF,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC25F,GAAsB,CACrBhxD,MAAOrQ,EAAe,iBACtBp4B,MAAO65F,EAAWI,UAAUrQ,KAC5B8P,SAAW15F,GAAU85F,EAAuB,OAAQ9xF,EAAOhI,OAG/DF,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC25F,GAAsB,CACrBhxD,MAAOrQ,EAAe,iBACtBp4B,MAAO65F,EAAWI,UAAUC,QAC5BR,SAAW15F,GAAU85F,EAAuB,UAAW9xF,EAAOhI,OAGlEF,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC25F,GAAsB,CACrBhxD,MAAOrQ,EAAe,sBACtBp4B,MAAO65F,EAAWI,UAAUE,UAC5BT,SAAW15F,GACT85F,EAAuB,YAAa9xF,EAAOhI,OAIjDF,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC25F,GAAsB,CACrBhxD,MAAOrQ,EAAe,sBACtBp4B,MAAO65F,EAAWI,UAAUzyD,SAC5BkyD,SAAW15F,GAAU85F,EAAuB,WAAY9xF,EAAOhI,OAGnEF,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC25F,GAAsB,CACrBhxD,MAAOrQ,EAAe,0BACtBp4B,MAAO65F,EAAWI,UAAUG,cAC5BV,SAAW15F,GACT85F,EAAuB,gBAAiB9xF,EAAOhI,OAIrDF,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC25F,GAAsB,CACrBhxD,MAAOrQ,EAAe,mBACtBp4B,MAAO65F,EAAWI,UAAUI,SAC5BX,SAAW15F,GAAU85F,EAAuB,WAAY9xF,EAAOhI,SAKzE,CChGO,MAAMylB,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,8MAejCkmB,GAAYrmB,KAAOC,IAAGM,QAAAJ,aAAA,4HCiC7Bs3E,GAAwC,CAC5CJ,SAAS,EACT1G,SAAS,EACT5J,MAAM,EACNuQ,WAAW,EACX3yD,UAAU,EACV4yD,eAAe,GAGV,SAASG,GAAmBnzE,GAMxB,IANyB,KAClChJ,EAAI,QACJo8E,EAAO,aACPlB,EAAY,UACZmB,EAAS,aACTC,GACMtzE,EACN,MAAM,kBAAEjJ,GAAsB0oB,MACtB7nC,SAAUsvB,GAAgBruB,KAC3B64B,EAAa6hE,GAAkBvwE,mBAAwB,KACvDwwE,EAAUC,GAAezwE,mBAAmB,KAC5C0wE,EAAkBC,GAAwB3wE,mBAAiB,KAC5D,eAAEgO,GAAmBH,KAE3B/4B,qBAAU,KAAO,IAAD87F,EACd,MAAMx6E,EAA8B,OAAZ84E,QAAY,IAAZA,OAAY,EAAZA,EAAc1K,MAAMlkF,MACzCg8B,GAASA,EAAK6lD,QAAUkO,IAErB3hE,EAA0C,QAA/BkiE,EAAkB,OAAfx6E,QAAe,IAAfA,OAAe,EAAfA,EAAiBsY,mBAAW,IAAAkiE,IAAI,GAC9CC,EAAkBniE,EAAYtzB,KAAKq0F,GAAeA,EAAWpmF,MAEnEknF,EAAe7hE,GACf+hE,EAAYI,EAAgB,GAC3B,CAAa,OAAZ3B,QAAY,IAAZA,OAAY,EAAZA,EAAc1K,MAAO6L,IAEzBv7F,qBAAU,KAAO,IAADg8F,EACdH,EAAuC,QAAnBG,EAAa,OAAZ5B,QAAY,IAAZA,OAAY,EAAZA,EAAcr1D,YAAI,IAAAi3D,IAAI,GAAG,GAC7C,CAAa,OAAZ5B,QAAY,IAAZA,OAAY,EAAZA,EAAcr1D,OAkBlB,MAAOk3D,EAAaC,GAAkBhxE,qBAEtC,SAASixE,IACHF,IACFN,GAAa35B,GAAS,IAAIA,EAAMi6B,KAWpC,SAA+BA,GAC7B,MAAMG,EAAmB,IAAIxiE,GAExByiE,EAAoBJ,IACvBG,EAAiBpzF,KAAK,CACpBuL,IAAK0nF,EACLlB,UAAWt3F,OAAOC,OAAO,CAAC,EAAG03F,MAIjCK,EAAeW,EACjB,CArBIE,CAAsBL,IAGxBC,OAAe94F,EACjB,CAEA,SAASi5F,EAAoB5+E,GAC3B,OAAOmc,EAAYvtB,MAAMsuF,GAAeA,EAAWpmF,MAAQkJ,GAC7D,CAeA,SAASm9E,EACPD,EACA4B,EACAp7B,GAEA,MAAMi7B,EAAmB,IAAIxiE,GACuB,OAAhDwiE,EAAiBG,GAAiBxB,YACpCqB,EAAiBG,GAAiBxB,UAAYt3F,OAAOC,OACnD,CAAC,EACD03F,KAIJgB,EAAiBG,GAAiBxB,UAAUJ,GAAcx5B,EAC1Ds6B,EAAeW,EACjB,CAEA,SAASI,EAAU/+E,GACjB,GAAI4+E,EAAoB5+E,GAAU,CAChC,MAAM2+E,EAAmB,IAAIxiE,GACvB6iE,EAAWL,EAAiBjwF,WAC/BwuF,GAA4BA,EAAWpmF,MAAQkJ,IAGlD2+E,EAAiBrvF,OAAO0vF,EAAU,GAClChB,EAAeW,GAEf,MAAMM,EAAgB,IAAIhB,GACpBiB,EAAeD,EAAcvwF,WAChCywF,GAAYA,IAAYn/E,IAE3Bi/E,EAAc3vF,OAAO4vF,EAAc,GACnChB,EAAYe,EACd,CACF,CAEA,MAAOG,EAAUC,GAAe5xE,oBAAS,GAEzCjrB,eAAey1D,IACbonC,GAAY,GAEZ,MAAM/iF,EAWR,WACE,MAAMgjF,EAAoBt5F,OAAOC,OAAO,CAAC,EAAG02F,GACtC4C,EAAsBD,EAAkBrN,MAAMvjF,WACjDq7B,GAASA,EAAK6lD,QAAUkO,IAGvByB,GAAuB,IACzBD,EAAkBrN,MAAMsN,GAAqBpjE,YAAcA,GAG7D,MAAO,CACLwgE,aAAc2C,EAElB,CAxBkBE,IACV,QAAEC,EAAO,QAAEr1F,SAyBnB5H,eAAsC8Z,GACpCA,EAAQoH,IAAkB,OAAZi5E,QAAY,IAAZA,OAAY,EAAZA,EAAcj5E,IAE5B,MAAMoP,QAAiB4pE,GAAmBpgF,EAASqV,GACnD,MAAO,CACL8tE,QAAS3sE,EAASzT,QAClBjV,QAAS0oB,EAASxT,QAEtB,CAjCqCogF,CACjCpjF,GACAqjF,UAEEF,GAgCJj+E,EAAkB,UAAWia,EAAe,yBAC5CsiE,EAAa,IACbF,GAAQ,IAGV,SAAiBzzF,GACfoX,EAAkB,QAAgB,OAAPpX,QAAO,IAAPA,IAAWqxB,EAAe,sBACvD,CAtCOmkE,CAAQx1F,GAEbi1F,GAAY,EACd,CAqCA,MAAMpmD,EAAUhB,KAEhB,OAAKx2B,EAGHte,cAACwpB,KAAM,CACLzB,UAAU,mBACVP,MAAM,EACNmC,SAAS,KACTD,WAAS,EACT,kBAAgB,2BAChB,mBAAiB,iCAAgCzqB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAQnnE,MAAO,CAAEyzF,UAAW,QAASz9F,SAAA,CACvEe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCmlB,eAAC4rD,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SAAA,CACpCq5B,EAAe,2CAA4C,IAC3DqiE,KAEH36F,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QA9IZ,WACEywE,GAAQ,EACV,EA6IY,aAAW,QAAOz7F,SAElBe,cAACkqB,KAAS,WAKhB9F,eAACglB,GAAS,CAAAnqC,SAAA,CACRmlB,eAAC8lB,GAAgB,CAAAjrC,SAAA,CACfe,cAAC8zC,KAAY,CACX5zC,MAAkB,OAAXm7F,QAAW,IAAXA,IAAe,GACtBnzE,QAtKZ,WAA6B,IAADy0E,EAC1B,MAAMC,EAAsB5B,EAAiBt1F,KAC1Cm3F,GAAoBA,EAAgBv7F,OAOvC,OAA2B,QAA3Bq7F,EAJsBC,EACnB72F,QAAQoD,IAAO2xF,EAASv6F,SAAS4I,KACjCnC,OAAO8zF,EAAS/0F,QAAQoD,IAAOyzF,EAAoBr8F,SAAS4I,MAE1CsqB,cAAM,IAAAkpE,IAAI,EACjC,CA4JqBG,GACT7zF,MAAO,CAAE0gB,SAAU,SACnBg9C,cAAeruC,EAAe,aAC9BuuC,aAAe9yB,GAAW/zC,cAAA,OAAAf,SAAM80C,IAChCvkB,SAAUgK,IAAsB,IAArB,OAAE/rB,GAAa+rB,EACxB8hE,EAAe7tF,EAAOq5D,YAAY,EAEpCp9C,WAAS,EACTsqB,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACR2iB,MAAOrQ,EAAe,SACtB2Q,YAAa3Q,EAAe,iBAIlCt4B,cAAC4kB,KAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6I,UAAWovE,EACXpxE,QAASA,KACPsxE,GAAc,EACdt8F,SAEDq5B,EAAe,wCAGpBt4B,cAAA,OACEiJ,MAAO,CACLqsE,UAAW,OACXyM,UAAW,QACX9iF,SAEFe,cAACiwE,GAAc,CAAAhxE,SACbe,cAACwlE,KAAc,CAACvvB,UAAWD,KAAM/2C,SAC/BmlB,eAACqhD,KAAK,CAACl4C,KAAK,QAAQtkB,MAAO,CAAEsb,MAAO,QAAStlB,SAAA,CAC3Ce,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,YAC3Bt4B,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,WAC3Bt4B,cAAC4lE,KAAS,CAAA3mE,SAAEq5B,EAAe,oBAG/Bt4B,cAACw2E,KAAS,CAAAv3E,SACI,OAAX+5B,QAAW,IAAXA,OAAW,EAAXA,EAAatzB,KAAI,CAACq0F,EAAY4B,IAC7B37F,cAAC85F,GAAkB,CAEjBC,WAAY,IACPA,EACHI,UAAaJ,EAAWI,UACpBJ,EAAWI,UACXK,IAENtyF,MAAOyzF,EACP3B,uBAAwBA,EACxBC,gBAAiB2B,GAAU,GAAA50F,OATnB20F,EAAe,KAAA30F,OAAI+yF,EAAWpmF,mBAiBpD3T,cAACmwE,GAAe,CAAAlxE,SACdmlB,eAACQ,KAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAASA,IAAM6qC,IAAa0nC,UAAUv9F,SAAA,CAErCq5B,EAAe,QACf2jE,GAAYj8F,cAAC4uC,KAAgB,CAACrhB,KAAM,GAAInK,MAAM,yBA1GzCpjB,cAAAysB,WAAA,GAiHpB,CCrSA,MAAM7G,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS+9F,KACtB,MAAM,MAAE5+F,EAAK,SAAEe,GAAa6nC,MACpB7nC,SAAUsvB,GAAgBruB,IAC5B21C,EAAUhqB,MACV,eAAEwM,GAAmBH,MACpB6kE,EAAeC,GAAoB3yE,sBACnC4yE,EAAsBC,GAA2B7yE,mBAEtD,KAEK8yE,EAAqBC,GAC1B/yE,sBAEKgzE,EAA2BC,GAChCjzE,oBAAS,IACJkzE,EAAkBC,GAAuBnzE,qBAE1CozE,EAAmBr+F,UACvB,MAAMswB,ONtDsBtwB,gBAIjB2Z,GAAgC,MAD9B,gBAC6C9Z,GMkDnCy+F,CAAiBnvE,GACxC,GAAImB,EAASzT,QAAS,CACpB,MAAM0hF,EAAOjuE,EAAS5T,KAAKxd,KAC3B,IAAIs/F,EAAiC,GACrCh7F,OAAOC,OAAO+6F,EAAYD,GAC1BX,EAAiBW,EACnB,GA6BF,OA1BAx+F,qBAAU,KACJjB,EAAMghB,2BACRu+E,GACF,GAEC,CAACv/F,EAAMghB,4BAEV/f,qBAAU,KACR+9F,EAAqC,OAAbH,QAAa,IAAbA,IAAiB,GAAG,GAC3C,CAACA,IAiBC7+F,EAAMghB,0BAGTiF,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACwpB,KAAM,CACLhC,MAAM,EACNiC,oBAAqB7D,GACrB+D,SAAS,KACTD,WAAS,EACT,kBAAgB,2BAChB,mBAAiB,iCAAgCzqB,SAEjDmlB,eAAC0H,GAAiB,CAAC/D,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CAC3Ce,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCe,cAAC8rB,GAAY,CAAC7iB,MAAO,CAAEk4D,WAAY,KAAMliE,SACtCq5B,EAAe,mCAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QApCd,WACEozE,OAAuB76F,GACvBtD,EAAS,CAAEb,KAAM,8BACnB,EAkCc,aAAW,QAAOY,SAElBe,cAACkqB,KAAS,WAIhBlqB,cAAC8rB,GAAoB,CAAA7sB,SACE,OAApBi+F,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBx3F,KAAI,CAAC8zF,EAActxF,KAAK,IAAA41F,EAAA,OAC7C15E,eAAC25E,KAAS,CAACpuB,gBAAiB,CAAEquB,eAAe,GAAO/+F,SAAA,CAClDe,cAACi+F,KAAgB,CACfC,WAAYl+F,cAACm+F,KAAc,IAC3B,gBAAc,kBACdn4F,GAAG,iBAAgB/G,SAEnBe,cAAC+lB,KAAU,CAAA9mB,SAAEu6F,EAAal4F,SAE5BtB,cAACo+F,KAAgB,CAAAn/F,SACfe,cAACylE,KAAK,CAACl4C,KAAK,QAAQtkB,MAAO,CAAEsb,MAAO,QAAStlB,SAC3Ce,cAACw2E,KAAS,CAAAv3E,SACW,QADX6+F,EACPtE,EAAa1K,aAAK,IAAAgP,OAAA,EAAlBA,EAAoBp4F,KAAI,CAACkhC,EAAM1+B,IAC9Bkc,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CACR3vB,UAAU,KACVk2C,MAAM,MACNljF,MAAO,CAAEsb,MAAO,QAAStlB,SAExB2nC,EAAK6lD,QAERzsF,cAAC4lE,KAAS,CAAC79C,UAAU,mBAAkB9oB,SACrCe,cAAC+pB,KAAU,CACTC,KAAK,MACL5G,MAAM,UACN6G,QAASA,MAhErC,SACE2c,EACA4yD,GAEMA,GAAc6D,EAAuB7D,GAE3CiE,EAAoB72D,EAAK6lD,OACzB8Q,GAA6B,EAC/B,CAyD8Bc,CAAqBz3D,EAAM4yD,EAAa,EACxCv6F,SAEFe,cAAC48D,KAAQ,UAhBA10D,aAZiCA,EAoC9C,aAMjBs1F,GAAyC,KAArBA,GACrBx9F,cAACy6F,GAAmB,CAClBjB,aAAc4D,EACd9+E,KAAMg/E,EACN5C,QAAS6C,EACT5C,UAAW6C,EACX5C,aAAc6C,OA9EuBz9F,cAAAysB,WAAA,GAmF/C,C,sBCtLO,MAAM9G,GAAkB5C,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,+YA0B9BkmB,GAAYrmB,KAAOC,IAAGM,QAAAJ,aAAA,2GAOtB2lE,GAAmB9lE,aAAO2C,KAAP3C,CAAYS,QAAAN,aAAA,0JAW/BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,uGAU9BonB,GAAqBvnB,KAAOwnB,KAAInlB,QAAAlC,aAAA,wCAKhCo7E,GAAWv7E,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,mJ,yBC3D7B,MAAMkmB,GAAYrmB,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,yDAkCxBq7E,IA7BqBx7E,KAAOwnB,KAAIjnB,QAAAJ,aAAA,wCAKbH,aAAO2C,KAAP3C,CAAYS,QAAAN,aAAA,2FAQlBH,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,yGAOdH,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,+CAKVH,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,sBAIJH,aAAO2C,KAAP3C,CAAYyC,QAAAtC,aAAA,iECrB/Bs7E,OAZwCl3E,IAAmB,IAAlB,SAAE/K,GAAU+K,EASlE,OAAOtnB,cAAC8rB,GAAW,CAAA7sB,SANfe,cAAC8rB,GAAoB,CAAA7sB,SACnBe,cAACknE,GAAS,CAAC3qD,SAAUA,OAKoB,E,qBCmBjD,MAAMqJ,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IACA,MAAMy/F,GAAMt9F,cAAA,KACVob,SAAW,GAAG,KACd8Y,MAAQ,GAAG,KACXqpE,OAAS,EAAG,EAsUCC,I,eAAAA,GAnU8BA,KAC3C,MAAM,MAAExgG,EAAK,SAAEe,EAAQ,kBAAEmf,EAAiB,YAAEkd,GAAgBwL,MACpD7nC,SAAUsvB,GAAgBruB,KAC1BhC,MAAOygG,EAAgB,sBAAErlE,GAA0BS,MACrD,UAAEvB,GAAcmmE,GACfC,EAAMC,GAAWx0E,mBAAS,IAAIm0E,KAC9Bj+E,EAAQu+E,GAAaz0E,mBAAS,CAAC,MAC/B00E,EAAYC,GAAiB30E,mBAAyB,KACtD3e,EAAUuzF,GAAe50E,qBAC1B2vB,EAAc1gB,EAAsB,CACxCH,MAAOylE,EAAKtiF,SACZ0c,QAAS96B,EAAM4e,aAAe,GAC9B3e,OAAQ,CAAC,iBAGJ+gG,EAAYC,GAAiB90E,mBAAS,KACvC,eAAEgO,GAAmBH,KACrBgB,EAASokC,mBAAQ,KACrB,MAAMtkC,EAAUR,EAAU7tB,MACvBquB,GAAYA,EAAQ33B,OAASnD,EAAM4e,cAGtC,OAAOkc,EACHA,EAAQE,OACLpzB,QAAQqzB,GACPG,EAAsB,CACpBH,MAAOA,EAAM93B,KACb23B,QAAS96B,EAAM4e,aAAe,GAC9B3e,OAAQ,CAAC,aAAc,iBAG1BsH,KAAK0zB,GAAUA,EAAM93B,OACrBmyB,OACH,EAAE,GACL,CAACgF,EAAWt6B,EAAM4e,cAErB3d,qBAAU,KACRF,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,SAAU,QAGpB8sB,EAAY,yBAGRpC,GAAUh7B,EAAMihB,iCAClBigF,EAAgBlmE,EAAO,GAAG,GAC3B,CAACh7B,EAAMihB,kCAEVhgB,qBAAU,KACJy/F,EAAKtiF,UAAYsiF,EAAKxpE,OAASwpE,EAAKH,OAEtCU,EAAc,IAEdA,EAAc9mE,EAAe,0CAC/B,GACC,CAACumE,IAEJ,MAAMQ,EAAkBhgG,UACtB,MAAMigG,EAAkB3uC,GAAY,GAIpC,GAFAmuC,EAAQ,IAAKD,EAAMtiF,SAAU+iF,EAAiBjqE,MAAO,GAAIqpE,OAAQ,KAE7DY,EAAiB,CACnB,MAIMntC,SAJiB71C,GACrB,CAAEC,SAAU+iF,GACZ9wE,IAEqBzS,KAAKxd,KAEtBk9D,EAAYtJ,EAAMvnD,MAAMyqB,GAAoB,cAAVA,IAExC,GAAIomC,EAAW,CACbsjC,EAAU,IACV,MAAMQ,EAAgB,CACpB9jC,KACGtJ,EAAMpsD,QAAQsvB,GAAoB,cAAVA,IAAuB5B,QAEpDsrE,EAAUQ,EACZ,CACF,GA8FF,OACEv/F,cAACo/C,GAAY,CAAAngD,SACXe,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAMihB,gCACZqK,oBAAqB7D,GACrB4wC,YAAU,EACV9sC,WAAS,EAAAzqB,SAETmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SACrBq5B,EAAe,uCAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,MACL5G,MAAM,UACN6G,QAASA,KAzErB/qB,EAAS,CAAEb,KAAM,qCACjBa,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEkQ,SAAU,aACjDqwF,EAAQ,CAAEviF,SAAU,GAAI8Y,MAAO,GAAIqpE,OAAQ,MAwE/B,aAAW,QAAOz/F,SAElBe,cAACkqB,KAAS,WAIhB9F,eAAC0H,GAAW,CAAA7sB,SAAA,CACVmlB,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBmlB,eAACsB,KAAI,CAAC4Y,WAAS,EAAC6W,QAAS,EAAEl2C,SAAA,CACzBe,cAAC0lB,KAAI,CAAC9R,MAAI,EAAC3K,MAAO,CAAEmsC,KAAM,GAAIn2C,SAC5Be,cAAC8zC,KAAY,CACX5zC,MAAO2+F,EAAKtiF,SACZ2L,QAASiR,EACTwtC,cAAe,iBACfE,aAAe9yB,GACb/zC,cAAC8rB,GAAoB,CAAA7sB,SAAE80C,IAEzBvkB,SAAUA,CAAChD,EAAYmkC,KACrB0uC,EAAgB1uC,EAAS,EAE3BjnC,WAAS,EACTsqB,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACR2iB,MAAOrQ,EAAe,SACtB2Q,YAAY,4BAKpBjpC,cAAC0lB,KAAI,CAAC9R,MAAI,EAAC3K,MAAO,CAAEmsC,KAAM,GAAIn2C,SAC5Be,cAAC8zC,KAAY,CACX7nB,UAAW4yE,EAAKtiF,SAChBrc,MAAO2+F,EAAKxpE,MACZnN,QAAS1H,EACTmmD,cAAe,iBACfE,aAAe9yB,GACb/zC,cAAC8rB,GAAoB,CAAA7sB,SAAE80C,IAEzBvkB,SAAUA,CAAChD,EAAYmkC,KArJftxD,OAAOwd,EAAiBQ,KAGhD,GAFAyhF,EAAQ,IAAKD,EAAMxpE,MAAOhY,EAAWqhF,OAAQ,KAE3B,KAAdrhF,EAAkB,CACpB,MAAMsS,QAAiBvS,GACrB,CAAEb,SAAUM,GAAW,GAAIQ,aAC3BmR,GAGF,GAAImB,EAASzT,QAAS,CACpB,MAAMmZ,EAAQ1F,EAAS5T,KAAKxd,KAEtB6L,EAAOvH,OAAOuH,KAAKirB,EAAMwG,OAAOlwB,SAASE,KAAKtN,MAC9CihG,EAAgB,GAEtBN,EAAY7pE,EAAMwG,OAAOlwB,UAEzB,IAAK,MAAMnC,KAAOY,EAAM,CACtB,MAAMH,EAAQorB,EAAMwG,OAAOlwB,SAASE,KAAKtN,KAAKqH,OAAOwE,EAAKZ,KAExDS,EAAM1L,KAAK+B,aAAeE,EAAYgB,aACtCyI,EAAM1L,KAAK+B,aAAeE,EAAYkD,qBACtCuG,EAAM1L,KAAK+B,aAAeE,EAAYmD,eAEtC67F,EAAcp3F,KAAK6B,EACvB,CACAg1F,EAAcO,EAChB,CACF,MAEEP,EAD8B,GAEhC,EAuHkBQ,CAAkBZ,EAAKtiF,SAAUo0C,GAAY,GAAG,EAElDjnC,WAAS,EACTsqB,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACR2iB,MAAOrQ,EAAe,SACtB2Q,YAAa3Q,EAAe,mBAKpCt4B,cAAC0lB,KAAI,CAAC9R,MAAI,EAAC3K,MAAO,CAAEmsC,KAAM,GAAIn2C,SAC5Be,cAAC8zC,KAAY,CACX7nB,UAAW4yE,EAAKxpE,MAChBn1B,MAAO2+F,EAAKH,OACZx2E,QAAS82E,EAAWt5F,KAAKquC,GAAWA,EAAOx1C,KAAK+C,OAChDqlE,cAAe,iBACfE,aAAe9yB,GACb/zC,cAAC8rB,GAAoB,CAAA7sB,SAAE80C,IAEzBvkB,SAAUA,CAAChD,EAAYmkC,KACrB,MAAM,WAAE7iD,GAAe3P,EAEvB,GAAI2P,EAAY,CACd,MAAMrD,EAAOu0F,EAAWp0F,MACrB6B,GAAMA,EAAElO,KAAK+C,OAASqvD,IAGnBliD,EAAe,OAAJhE,QAAI,IAAJA,OAAI,EAAJA,EAAMlM,KAEvBW,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEkQ,aAEZ,CACAqwF,EAAQ,IAAKD,EAAMH,OAAQ/tC,GAAY,IAAK,EAE9CjnC,WAAS,EACTsqB,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACR2iB,MAAOrQ,EAAe,SACtB2Q,YAAa3Q,EAAe,sBAMtCt4B,cAAC0lB,KAAI,CACH4Y,WAAS,EACT6W,QAAS,EACTlsC,MAAO,CAAEimB,QAAS,GAAIG,cAAe,UAAWpwB,SAE/CkgG,EAlIb/6E,eAAC0H,GAAU,CAAClY,MAAI,EAAA3U,SAAA,CACde,cAAC0/F,KAAgB,IACjB1/F,cAAC+lB,KAAU,CACTC,QAAQ,QACR/c,MAAO,CAAEkhB,UAAW,GAAI0oE,UAAW,UAAW5zF,SAE7CkgG,OAMLn/F,cAACw+F,GAAc,CAACjiF,SAAUsiF,EAAKtiF,gBAyHvBvc,cAAA,OAAAf,SACEe,cAAC0lB,KAAI,CACH4Y,WAAS,EACT6W,QAAS,EACTlsC,MAAO,CACLsnD,eAAgB,WAChBrhC,QAAS,WACT3K,MAAO,QACPtlB,SAEFe,cAAC8rB,GAAiB,CAAClY,MAAI,EAAA3U,SACpBg7C,GACCj6C,cAAC4kB,KAAM,CACLmH,UAAW/rB,cAAC+8D,KAAS,IACrB9yC,QAASA,IAvLV5qB,WACjB,MAAM,WAAEyO,GAAe3P,EACvB,GAAK2P,EAEL,GAAI+wF,EAAKH,QACP,GAAI/yF,EAAU,CACZ,MAAMgkB,QAAiBxS,GACrB,CACEZ,SAAUsiF,EAAKtiF,SACfW,WAAY2hF,EAAKxpE,MACjBwG,OAAQ,CACNlwB,SAAUA,IAGd6iB,GAGEmB,EAASzT,QACXmC,EACE,UACAia,EAAe,wBACf,KAGFja,EACE,QACAsR,EAASxT,SAAWmc,EAAe,sBAGzC,OAEAja,EAAkB,QAASia,EAAe,4BAC5C,EAuJiCw8B,GACf9uC,QAAQ,YACR5C,MAAM,UAASnkB,SAEdq5B,EAAe,yBASnB,E,8BCxWZ,MAAM3S,GAAkB5C,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,+YA0B9B2lE,GAAmB9lE,aAAO2C,KAAP3C,CAAYO,QAAAJ,aAAA,sEAM/By8E,GAAmB58E,aAAO2C,MAAMV,MAAM,CACjD+C,UAAW,gBADmBhF,CAE9BS,QAAAN,aAAA,sHASWonB,GAAqBvnB,KAAOwnB,KAAI7mB,QAAAR,aAAA,wCAKhCo7E,GAAWv7E,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,4H,aChD7B,MAAMkmB,GAAYrmB,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,iCAIxB08E,GAAW78E,aAAO2C,KAAP3C,CAAYO,QAAAJ,aAAA,oGAQvBonB,GAAqBvnB,KAAOwnB,KAAI/mB,QAAAN,aAAA,wC,yBCGtC,MAAM28E,GAAmBxgG,MAC9B8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,kBACvC,aAAavD,GAAgC,MAAO5a,EAAQc,EAAS,EAG1D4gG,GAAqBzgG,MAChC8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,mBAAAvV,OAAkBmS,EAAQ4mF,UACjE,aAAa/mF,GAAkC,MAAO5a,EAAQc,EAAS,EAG5D8gG,GAAiB3gG,MAC5B8Z,EACAja,KAEA,MAAMd,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,cAAAvV,OAAamS,EAAQ4mF,UAC5D,aAAa/mF,GAA8B,MAAO5a,EAAQc,EAAS,EAoBxD+gG,GAAyB5gG,MACpC8Z,EACAja,KAEA,IAAId,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,oDAAAvV,OAAmDmS,EAAQ+mF,YAAW,cAAAl5F,OAAamS,EAAQ4mF,UAMhI,OAJI5mF,EAAQgnF,YAAW/hG,GAAM,cAAA4I,OAAkBmS,EAAQgnF,YACnDhnF,EAAQinF,gBACVhiG,GAAM,kBAAA4I,OAAsBmS,EAAQinF,sBAEzBpnF,GAAsC,MAAO5a,EAAQc,EAAS,E,0CCjEtE,MAAMymB,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,oNAejC2lE,GAAmB9lE,aAAO2C,KAAP3C,CAAYO,QAAAJ,aAAA,wIAStC5J,GAAUyJ,KAAOC,IAAGQ,QAAAN,aAAA,4LA+Bbm9E,IAnBat9E,aAAOzJ,GAAPyJ,CAAeW,QAAAR,aAAA,mCAIfH,aAAOzJ,GAAPyJ,CAAeqC,QAAAlC,aAAA,mCAIRH,KAAOC,IAAGsC,QAAApC,aAAA,mIAWVH,KAAOC,IAAGwC,QAAAtC,aAAA,sKAa9Bo7E,GAAWv7E,aAAO2C,KAAP3C,CAAY8C,QAAA3C,aAAA,4HAQvBo9E,GAAWv9E,KAAOC,IAAG8C,QAAA5C,aAAA,qRAgBrB4xB,GAAYC,cAAYvN,IAAY,CAC/Cj5B,MAAO,CACL2mC,WAAY1N,EAAM2N,QAAQ,GAC1BC,KAAM,GAERwlC,QAAS,CACPjxD,SAAU,MACVuF,QAAS,EACTomB,OAAQ,MACRxxB,WAAY,UACZosC,aAAc,EACdqwC,qBAAsB,GAExBC,OAAQ,CACN72E,SAAU,MACV2rB,OAAQ,EACRxxB,WAAY,UACZoL,QAAS,EACTghC,aAAc,EACduwC,oBAAqB,GAEvBp5D,MAAO,CACL7iB,OAAQ,WAEVk8E,aAAc,CACZl8E,OAAQ,cACRX,OAAQ,QAEV88E,YAAa,CACX98E,OAAQ,sBACRC,WAAY,YACZwxB,OAAQ,GAEVv1C,IAAK,CACH6gG,SAAU,aACVz/B,WAAY,IACZ7rB,OAAQ,EACRpmB,QAAS,YAEX2xE,QAAS,CACPD,SAAU,aACV5zE,SAAU,GACV6lE,UAAW,MACX1xB,WAAY,IACZ7rB,OAAQ,UACRpmB,QAAS,gBAEX4xE,WAAY,CACVv8E,MAAO,QAETw8E,UAAW,CACTx8E,MAAO,QACP2rC,aAAc,EACd2iC,UAAW,UAEbmO,YAAa,CACX,EAEFC,mBAAoB,CAClBn9E,WAAY,YACZqL,QAAS,OACTC,WAAY,SAEZ,UAAW,CACTtL,WAAY,gB,kEC1JlB,MAAMo9E,GAAa,CACjBC,UCHmB,CACnB,Q,OACA,Q,OACAC,G,QDCAC,YAAa,QACbC,UAAW,gBAGbxgB,KAAKygB,IAAIC,MAAkBD,IAAIE,MAAkB9/C,KAAKu/C,IAEvCpgB,UAAI,EEZZ,MAAMhsC,GAAYC,cAAYvN,GACnCwN,aAAa,CACXC,KAAM,CACJ/lB,QAAS,UACTC,QAAS,OACTC,WAAY,SACZ7K,MAAO,IACP1V,SAAU,WACV3F,IAAK,IAEP6B,MAAO,CACLmqC,WAAY1N,EAAM2N,QAAQ,GAC1BC,KAAM,GAERC,QAAS,CACPC,OAAQ,EACRlyB,MAAO,sBACP4J,SAAU,UAEZuoB,WAAY,CACVrmB,QAAS,IAEXsmB,QAAS,CACPhxB,OAAQ,GACR8wB,OAAQ,GAEZqrD,YAAa,CACZ98E,OAAQ,iCACRC,WAAY,wBAEb49E,SAAU,CACT79E,OAAQ,+BACRC,WAAY,4B,yBCfR,SAAS69E,GAAMr6E,GAA8C,IAA7C,YAAEG,EAAW,aAAEm6E,GAA2Bt6E,EAC/D,MAAMwuB,EAAUhqB,MACT5Y,EAAQsgC,GAAalpB,mBAAS,KAC9Bu3E,EAAaC,GAAkBx3E,mBAAS,IACxCorB,EAAcC,GAAmBrrB,mBAAS,IAC1Cy3E,EAAqBC,GAA0B13E,mBACpD,KAEI,eAAEgO,GAAmBH,KAErB8pE,EACJ16F,IAIA,GAFAisC,EAAUjsC,EAAEkG,OAAOvN,OAEfqH,EAAEkG,OAAOvN,MAAO,CAClB,MAAMgiG,EAAgBN,EAAa77F,QAAQ6G,IAAC,IAAAu1F,EAAA,OACjC,QADiCA,EAC1Cv1F,EAAE3F,eAAO,IAAAk7F,OAAA,EAATA,EAAWluE,MAAM1sB,EAAEkG,OAAOvN,MAAM,IAElCy1C,EAAgBusD,EAAcr9F,QAC9Bi9F,GAAgB,GAWpB,SAAgChxD,GAC9B,MAAMxnC,EAA0B,GAEhCwnC,EAASxmC,SAASrD,IAChB,MAAMK,EAAUQ,SAASa,eAAe,GAAD3B,OAClCC,EAAQA,QAAO,KAAAD,OAAIC,EAAQm7F,YAGhC,GAAI96F,GAAWA,EAAQrI,SAAS,GAAI,CAClC,MAAMmL,EAAOvH,OAAOuH,KAAK9C,EAAQrI,SAAS,GAAG2J,WAC7C,IAAIy5F,GAAgB,EAEpB,IAAK,MAAM74F,KAAOY,EAGd,OADA9C,EAAQrI,SAAS,GAAG2J,UAAUhD,OAAO4D,IAAMyqB,MAAM,cAGjDouE,GAAgB,GAIfA,IACH/6F,EAAQrI,SAAS,GAAG8oB,WAAS,IAAA/gB,OAAQ8uC,EAAQ4rD,WAE/Cp4F,EAASlB,KAAKd,EAChB,KAEF06F,EAAuB14F,EACzB,CArCIg5F,CAAuBJ,GACvBK,EACEX,EAAa77F,QAAQ6G,IAAOs1F,EAAc3hG,SAASqM,KAEvD,MACE21F,EAAwBX,EAC1B,EAiCF,SAASW,EAAwBzxD,GAC/BA,EAASxmC,SAASrD,IAChB,MAAMjB,EAAE,GAAAgB,OAAMC,EAAQA,QAAO,KAAAD,OAAIC,EAAQm7F,WAEnC96F,EAAUQ,SAASa,eAAe3C,GACxC,GAAIsB,GAAWA,EAAQrI,SAAS,GAAI,CAClC,MAAMmL,EAAOvH,OAAOuH,KAAK9C,EAAQrI,SAAS,GAAG2J,WAE7C,IAAI45F,GAAoB,EACxB,IAAK,MAAMh5F,KAAOY,EACZ9C,EAAQrI,SAAS,GAAG2J,UAAUhD,OAAO4D,IAAMyqB,MAAM,cACnDuuE,EAAmB58F,OAAO4D,IAE9BlC,EAAQrI,SAAS,GAAG2J,UAAUL,OAC5BjB,EAAQrI,SAAS,GAAG2J,UAAU45F,GAElC,IAEJ,CAEA,SAASC,EAAYv6F,GACf65F,GAAuBA,EAAoB75F,IAC7C65F,EAAoB75F,GAAOw6F,eAAe,CACxCC,SAAU,SACV14F,MAAO,UAGb,CAEA,OACEjK,cAAC4iG,KAAS,CAACC,gBAAiB,CAAE15F,EAAG,IAAKH,GAAI,IAAK/J,SAC7CmlB,eAAC4xB,KAAK,CACJC,UAAU,OACVluB,UAAW+tB,EAAQb,KACnBiB,SAAW3uC,GAAuCA,EAAEC,iBAAiBvI,SAAA,CAErEe,cAACm2C,KAAS,CACRpuB,UAAW+tB,EAAQ/qC,MACnBk+B,YAAa3Q,EAAe,UAC5Bp4B,MAAOgT,EACPsc,SAAWjoB,GAAM06F,EAAoB16F,GACrC8uC,WAAS,IAEXr2C,cAACovC,GAAa,CAACppB,QAAQ,YAAY+B,UAAW+tB,EAAQT,QAAQp2C,SAC3DiU,GAAM,GAAAlM,OAAO66F,EAAc,EAAC,KAAA76F,OAAI0uC,KAEnC11C,cAAC0tC,KAAO,CAAC3lB,UAAW+tB,EAAQN,QAASc,YAAY,aAEjDt2C,cAAC+pB,KAAU,CACTwD,KAAK,QACLtD,QAASA,KACH43E,EAAc,IAChBY,EAAYZ,EAAc,GAC1BC,EAAeD,EAAc,GAC/B,EAEF51E,WAA6B,IAAjBypB,KAA0BxiC,EAAOjU,SAE7Ce,cAACw2C,KAAqB,MAGxBx2C,cAAC+pB,KAAU,CACTwD,KAAK,QACLtD,QAASA,KACH43E,EAAcnsD,EAAe,IAC/B+sD,EAAYZ,EAAc,GAC1BC,EAAeD,EAAc,GAC/B,EAEF51E,WAA6B,IAAjBypB,KAA0BxiC,EAAOjU,SAE7Ce,cAAC02C,KAAsB,MAGzB12C,cAAC0tC,KAAO,CAAC3lB,UAAW+tB,EAAQN,QAASc,YAAY,aACjDt2C,cAAC+pB,KAAU,CACT3G,MAAM,UACN2E,UAAW+tB,EAAQP,WACnB,aAAW,aACXtrB,QAASA,KACPs4E,EAAwBX,GACxBI,EAAuB,IACvBv6E,GAAa,EACbxoB,SAEFe,cAACkqB,KAAS,UAKpB,CC1IA,MAAMtE,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS8jG,GAA0B9jG,GAChD,MAAM82C,EAAUhqB,MACV,kBAAEzN,GAAsB0oB,MACtB7nC,SAAUsvB,GAAgBruB,KAC5B,KAAEqnB,EAAI,SAAEjL,EAAQ,SAAEwjF,EAAQ,YAAEt4E,EAAW,gBAAEs7E,GAAoB/jG,GAC5D4iG,EAAcoB,GAAmB14E,mBAAgC,KACjE1L,EAAS4vB,GAAclkB,oBAAS,IAChC24E,EAAYC,GAAiB54E,oBAAS,IACtC64E,EAAiBC,GAAsB94E,mBAAS,KAChD+4E,EAAUC,GAAeh5E,oBAAS,IAClCi5E,EAAWC,GAAgBl5E,oBAAS,GAErCm5E,EACc,UAAlB3iB,GAAKD,SAAuB,aAAe,yBAEvClvB,EACc,UAAlBmvB,GAAKD,SAAuB6iB,KAAyB,UAAlB5iB,GAAKD,SAAuB8iB,KAAOvC,MAElE,eAAE9oE,GAAmBH,KAE3B/4B,qBAAU,KACRO,OAAOG,iBAAiB,WAAYyH,IACpB,MAAVA,EAAEiC,MAA6B,IAAdjC,EAAE22B,UACrB32B,EAAEC,iBACF07F,GAAc,GAChB,GACA,GACD,IAEH9jG,qBAAU,KAiCJooB,GAhCJnoB,iBACEmvC,GAAW,GAEX,MAAMo1D,QAA2B3D,GAC/B,CACE1jF,WACAwjF,WACAG,YAAY,GAADl5F,OAAoB,OAAf+7F,QAAe,IAAfA,OAAe,EAAfA,EAAiBxd,aAEnC/2D,GAEF,GAAIo1E,EAAmB1nF,QAAS,CAC9B,MAAM2nF,EAAyC,GAC/CD,EAAmB7nF,KAAK+0B,SAASA,SAASxmC,SAASw5F,IACjDD,EAAgBz7F,KAAK07F,EAAE,IAEzBd,EAAgBa,GAChBT,EAAmBQ,EAAmB7nF,KAAK+0B,SAASo9C,OACtD,MACE8U,EAAgB,IAIlB,GAFAx0D,GAAW,GAEPu0D,EAAiB,CACnB,MAAMgB,EAAej8F,SAASa,eAAe,GAAD3B,OACvC+7F,EAAgB97F,QAAQlH,IAAG,KAAAiH,OAAI+7F,EAAgB97F,QAAQm7F,YAGxD2B,GACFA,EAAarB,eAAe,CAAEC,SAAU,SAAU14F,MAAO,UAC7D,CACF,CACUpM,EAAM,GAEf,CAAC2pB,EAAMjL,EAAUwjF,IAMpB,SAASiE,EAAgBl1D,GACvB,IAAIm1D,EAAS,GAAAj9F,OAAM8uC,EAAQ4qD,cAW3B,MAViB,aAAb5xD,EAAIzwC,KAAqB4lG,GAAS,IAAAj9F,OAAQ8uC,EAAQ0qD,QACjDyD,GAAS,IAAAj9F,OAAQ8uC,EAAQ8kC,SAG5BmoB,GACAj0D,EAAI/uC,MAAQgjG,EAAgB97F,QAAQlH,KACpC+uC,EAAIszD,YAAcW,EAAgBX,YAElC6B,GAAS,IAAAj9F,OAAQ8uC,EAAQ6qD,cAEpBsD,CACT,CAwCA,MAAMC,EAAcv8E,uBAAY,KAC9B,MAAMmpB,EAAsB,GAY5B,OAXY,OAAZ8wD,QAAY,IAAZA,KAAct3F,SAASw5F,GACrBA,EAAEK,KAAK75F,SAASvK,IACd+wC,EAAS1oC,KAAK,CACZnB,QAASlH,EAAIA,IACbwC,YAAaxC,EAAI1B,KACjB+jG,UAAWriG,EAAIqiG,UACfgC,YAAa,QACb,MAICtzD,CAAQ,GACd,CAAC8wD,IAEJviG,eAAeglG,EAAqBC,GAClC,MAAMC,EAAyBD,EAE3B1C,EAAaA,EAAa/8F,OAAS,GAAG0gF,WADtCqc,EAAa,GAAGrc,WAGdif,EAAa,CACjBjoF,WACAwjF,WACAG,YAAaqE,GAAyB,GACtCrW,OAAQiV,EACR/C,cAAekE,QAAY9hG,EAC3B29F,WAAYmE,QAAY9hG,GAGpBmtB,QAAiBswE,GAAuBuE,EAAYh2E,GAE1D,GAAImB,EAASzT,QACX,GAAIyT,EAAS5T,MAAQ4T,EAAS5T,KAAK+0B,SAASA,SAASjsC,OAAS,EAAG,CAC/D,MAAM4/F,EAAc90E,EAAS5T,KAAK+0B,SAASA,SAE7BkyD,EAAVsB,EAA0B,IAAI1C,KAAiB6C,GAC9B,IAAIA,KAAgB7C,GAC3C,MACEvjF,EACE,UACAia,EAAe,wCAInBja,EAAkB,QAASia,EAAe,2BAG1CgsE,EAAWd,GAAa,GAASF,GAAY,EACjD,CAEA,MAuDMoB,EAAuBnnC,mBAAQ,KACnC,MAAMonC,EAAsD,GAS5D,OAPY,OAAZ/C,QAAY,IAAZA,KAAct3F,SAASvK,IACrBA,EAAIokG,KAAK75F,SAASwkC,KApJtB,SACE81D,EACAD,EACA71D,GAEA,GAAI+1D,aAAQD,GAAW,CACrB,MAAM18F,EAAQy8F,EAAmBp5F,WAC9Bu4F,GAAuBA,EAAE/0C,MAAQz2B,EAAe,YAGpC,IAAXpwB,EAAcy8F,EAAmBz8F,GAAO2gC,KAAKzgC,KAAK0mC,GAEpD61D,EAAmBv8F,KAAK,CAAE2mD,IAAKz2B,EAAe,SAAUuQ,KAAM,CAACiG,IACnE,MAAO,GAAIg2D,aAAYF,GAAW,CAChC,MAAM18F,EAAQy8F,EAAmBp5F,WAC9Bu4F,GAAuBA,EAAE/0C,MAAQz2B,EAAe,gBAGpC,IAAXpwB,EAAcy8F,EAAmBz8F,GAAO2gC,KAAKzgC,KAAK0mC,GAEpD61D,EAAmBv8F,KAAK,CACtB2mD,IAAKz2B,EAAe,aACpBuQ,KAAM,CAACiG,IAEb,KAAO,CACL,MAAMi2D,EAAgBpuB,aAAOiuB,EAAUnB,EAAkB,CACvDuB,OAAQrzC,IAGJzpD,EAAQy8F,EAAmBp5F,WAC9Bu4F,GAAuBA,EAAE/0C,MAAQg2C,KAGrB,IAAX78F,EAAcy8F,EAAmBz8F,GAAO2gC,KAAKzgC,KAAK0mC,GACjD61D,EAAmBv8F,KAAK,CAAE2mD,IAAKg2C,EAAel8D,KAAM,CAACiG,IAC5D,CACF,CAkHMm2D,CADiB,IAAItqF,KAAKm0B,EAAIszD,WACDuC,EAAoB71D,EAAI,GACrD,IAGA61D,GAAsBA,EAAmB9/F,OAAS,EAC7C8/F,EAAmBO,UAAUx/F,KAAI,CAACy/F,EAAej9F,IACtDlI,cAAA,OAAAf,SACEmlB,eAAA,OAAAnlB,SAAA,CACEe,cAAC8rB,GAAU,CACT/D,UAAW+tB,EAAQkrD,YACnB/3F,MAAO,CAAEggF,WAAY,QAAShqF,SAE9Be,cAAA,QAAAf,SAAOkmG,EAAcp2C,QAGtBo2C,EAAct8D,KACZnjC,KAAI,CAACopC,EAAK5mC,IACTkc,eAACsB,KAAI,CACH4Y,WAAS,EACTiyB,eACe,aAAbzhB,EAAIzwC,KAAsB,aAAe,WAE3C0pB,UACe,aAAb+mB,EAAIzwC,OACW,OAAf0kG,QAAe,IAAfA,OAAe,EAAfA,EAAiB97F,QAAQlH,OAAQ+uC,EAAI/uC,IACjC+1C,EAAQgrD,WACRhrD,EAAQkrD,YAGdh7F,GAAE,GAAAgB,OAAK8nC,EAAI/uC,IAAG,KAAAiH,OAAI8nC,EAAIszD,WAAYnjG,SAAA,CAElCmlB,eAACghF,KAAI,CAACr9E,UAAWi8E,EAAgBl1D,GAAM9oB,QAAQ,WAAU/mB,SAAA,CACvDe,cAAC+lB,KAAU,CAACgC,UAAW+tB,EAAQ/1C,IAAId,SAAE6vC,EAAI/uC,MACzCC,cAAC+lB,KAAU,CAACgC,UAAW+tB,EAAQ+qD,QAAQ5hG,SACpC03E,aAAO,IAAIh8D,KAAK,GAAD3T,OAAI8nC,EAAIszD,UAAS,SAAS,cAIhC,aAAbtzD,EAAIzwC,MACH2B,cAAColG,KAAI,CACHr9E,UAAS,GAAA/gB,OAAKg9F,EAAgBl1D,GAAI,KAAA9nC,OAAI8uC,EAAQirD,WAC9C/6E,QAAQ,WAAU/mB,SAElBe,cAAC+lB,KAAU,CAACgC,UAAW+tB,EAAQ/1C,IAAId,SAC7B,OAAH6vC,QAAG,IAAHA,OAAG,EAAHA,EAAK/P,iBAGX,GAAA/3B,OAnBO8nC,EAAI/uC,IAAG,KAAAiH,OAAI8nC,EAAIszD,UAAS,KAAAp7F,OAAIkB,MAsBvCg9F,cA5CGh9F,KAkDVkc,eAAC0H,GAAU,CAAClY,MAAI,EAAC3K,MAAO,CAAEkhB,UAAW,IAAKlrB,SAAA,CACxCe,cAAC0/F,KAAgB,IACjB1/F,cAAC+lB,KAAU,CACTC,QAAQ,QACR/c,MAAO,CAAEkhB,UAAW,GAAI0oE,UAAW,UAAW5zF,SAE7Cq5B,EAAe,kCAEP,GAGhB,CAACspE,EAAcyC,IAElB,OACEjgF,eAACoF,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB8D,WAAS,EACTC,SAAS,KACTsF,WAAY,CAAElH,UAAW+tB,EAAQzO,OAAQpoC,SAAA,CAEzCmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK+B,UAAW+tB,EAAQvnC,MAAMtP,SAC/Cq5B,EAAe,gCAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QA/PEo2B,KACZ54B,GAAa,EA+PH,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAIftL,EACC5e,cAAC0lB,KAAI,CACHzc,MAAO,CACLimB,QAAS,GACT/E,UAAW,IACXlrB,SAEFe,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,OAG1CnJ,eAAAqI,WAAA,CAAAxtB,SAAA,CACGgkG,GACCjjG,cAAC2hG,GAAM,CACLl6E,YAAaA,IAAMy7E,GAAc,GACjCtB,aAAcsC,MAGlB9/E,eAAC0H,GAAkB,CAAA7sB,SAAA,CA1K3B2iG,EAAa/8F,OAAS,GACpB7E,cAAC0lB,KAAI,CACH4Y,WAAS,EACTiyB,eAAgB,SAChBtnD,MAAO,CACLimB,QAAS,GACTiwD,YAAa,cACblgF,SAEAskG,EAWAvjG,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,KAVxCvtB,cAAC4kB,KAAM,CACLmD,UAAW+tB,EAAQmrD,mBACnBh3E,QAASA,KACPu5E,GAAa,GACba,GAAqB,EAAK,EAC1BplG,SAEDq5B,EAAe,8BA2Jdt4B,cAAC8rB,GAAmB,CAAC9lB,GAAG,YAAW/G,SAChCylG,aAnJb9C,EAAa/8F,OAAS,GACpB7E,cAAC0lB,KAAI,CACH4Y,WAAS,EACTiyB,eAAgB,SAChBxoC,UAAW+tB,EAAQkrD,YACnB/3F,MAAO,CACLimB,QAAS,GACTrgB,SAAU,WACVw2F,OAAQ,EACRvhF,WAAY,eACZ7kB,SAEAokG,EAWArjG,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,KAVxCvtB,cAAC4kB,KAAM,CACLmD,UAAW+tB,EAAQmrD,mBACnBh3E,QAASA,KACPq5E,GAAY,GACZe,GAAqB,EAAM,EAC3BplG,SAEDq5B,EAAe,+BAwI5B,CCxPegtE,OAtHyBtmG,IACtC,MAAM,SACJ+gG,EAAQ,QACR94F,EAAO,QACP4V,EAAO,mBACP0oF,EAAkB,eAClBC,EAAc,cACdC,EAAa,MACbv9F,GACElJ,GAEG0mG,EAAWC,GAAgBr7E,oBAAS,IACrC,MAAEnsB,GAAU4oC,MACZ,sBAAExN,GAA0BS,MAC3B4rE,EAA2BC,GAChCv7E,mBAAS,KACJlO,EAAO00E,GAAYxmE,mBAAS,KAC7B,eAAEgO,GAAmBH,KACrB8hB,EAAc1gB,EAAsB,CACxCH,MAAOvc,EACPoc,QAAS96B,EAAM4e,aAAe,GAC9B3e,OAAQ,CAAC,gBAaX,OACEgmB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC0lB,KAAI,CAAAzmB,SACHmlB,eAAC0H,GAAU,CAAA7sB,SAAA,CACTmlB,eAACsB,KAAI,CAAC9R,MAAI,EAAC3K,MAAO,CAAEkmB,QAAS,OAAQC,WAAY,UAAWnwB,SAAA,CAC1De,cAAC+pB,KAAU,CAACE,QAASA,IAAM07E,GAAa,GAAM1mG,SAC5Ce,cAAC8lG,KAAU,CAAC1iF,MAAM,cAEpBpjB,cAAC+pB,KAAU,CAACE,QAASA,OAAShrB,SAC5Be,cAACssE,KAAe,CAAClpD,MAAM,cAEzBpjB,cAAC+lB,KAAU,CAAC3C,MAAM,UAAU4C,QAAQ,YAAW/mB,SAtBrCgI,IAClBA,EAAQpC,OAAS,GAAE,GAAAmC,OAAMC,EAAQi0C,MAAM,EAAG,IAAG,OAAQj0C,EAsB1C8+F,CAAW9+F,EAAQA,QAAQlH,UAGhCqkB,eAACsB,KAAI,CACH9R,MAAI,EACJ3K,MAAO,CACLkmB,QAAS,OACTC,WAAY,SACZkmB,OAAQ,YACRr2C,SAAA,CAEFe,cAAC8zC,KAAY,CACX5zC,MAAO0lG,EACP35E,UAAWguB,EACX/xB,QAASq9E,EACT5+B,cAAeruC,EAAe,aAC9BuuC,aAAe9yB,GACb/zC,cAAC8rB,GAAoB,CAAA7sB,SAAE80C,IAEzBvkB,SAAUA,CAACha,EAAQm7C,KACbA,IACFmgC,EAAS,IACT+U,EAA6Bl1C,GAC/B,EAEFjnC,WAAS,EACTsqB,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACR2iB,MAAOrQ,EAAe,sCACtB2Q,YAAa3Q,EAAe,aAC5Blc,QAASA,EACT2sB,WAAY3sB,MAIjB69B,GACC71B,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC+pB,KAAU,CACTE,QAASA,KACPw7E,EAAcx+F,GACd4+F,EAA6B,IAC7B/U,EAAS,GAAG,EACZ7xF,SAEFe,cAACo/E,KAAgB,MAGnBp/E,cAAC+pB,KAAU,CAACE,QAASA,KApE7B27E,GACF9U,EAAS,IACT0U,EAAeI,EAA2B3+F,IAE1C6pF,EAASx4D,EAAe,gDAgE2B,EAAAr5B,SACvCe,cAACgmG,KAAsB,iBAQnChmG,cAAC8iG,GAAyB,CACxBt7E,KAAMk+E,EACNnpF,SAAUM,GAAW,GACrBkjF,SAAUA,EACVt4E,YAAaA,KACXk+E,GAAa,EAAM,EAErB5C,gBAAiB97F,EACjBiB,MAAOA,MAEG,E,kFCpGlB,MAAM0d,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEA,MAAMy/F,GAAMt9F,cAAA,KACVob,SAAW,GAAG,KACd0pF,YAA2BC,aAAQ,IAAIvrF,KAAQ,GAAG,KAClDwrF,UAAyB,IAAIxrF,IAAO,EA4cvByrF,OAzcyBA,KACtC,MAAM,MAAEjoG,EAAK,SAAEe,EAAQ,kBAAEmf,EAAiB,SAAEyd,GAAaiL,MACjD7nC,SAAUsvB,GAAgBruB,KAC1BhC,MAAOygG,EAAgB,sBAAErlE,GAA0BS,MACrD,UAAEvB,GAAcmmE,GACfC,EAAMC,GAAWx0E,mBAAS,IAAIm0E,KAC9BU,EAAYC,GAAiB90E,mBAAS,KACtC1L,EAAS4vB,GAAclkB,oBAAS,IAEhCtU,EAAUqwF,GAAe/7E,sBACzB9J,EAAQu+E,GAAaz0E,mBAAuB,KAC5Cg8E,EAAgBC,GAAqBj8E,mBAC1C,KAEKk8E,EAAgBC,GAAqBn8E,mBAAmB,KACzD,eAAEgO,GAAmBH,KAU3B,MAAMw5B,EAPkB,UAAlBmvB,GAAKD,SACA6lB,KACoB,OAAlB5lB,GAAKD,SACP8lB,KACKC,KAIVztE,EAASokC,mBAAQ,KACrB,MAAMtkC,EAAUR,EAAU7tB,MACvBquB,GAAYA,EAAQ33B,OAASnD,EAAM4e,cAGtC,OAAOkc,EACHA,EAAQE,OACLpzB,QAAQqzB,GACPG,EAAsB,CACpBH,MAAOA,EAAM93B,KACb23B,QAAS96B,EAAM4e,aAAe,GAC9B3e,OAAQ,CAAC,YAAY,kBAGxBsH,KAAK0zB,GAAUA,EAAM93B,OACrBmyB,OACH,EAAE,GACL,CAACgF,EAAWt6B,EAAM4e,cAErB3d,qBAAU,KACJ+5B,GAAUh7B,EAAMkhB,iCAClBggF,EAAgBlmE,EAAO,GAAG,GAC3B,CAACh7B,EAAMkhB,kCAEVjgB,qBAAU,KACJy/F,EAAKtiF,UAAYsiF,EAAKoH,aAAepH,EAAKsH,WAC5CU,IACAzH,EAAc,MAEd5wD,GAAW,GACX4wD,EAAc9mE,EAAe,gCAC/B,GACC,CAACumE,IAEJ,MAOMgI,EAA0BxnG,MAAOC,EAAgBwnG,KACrDt4D,GAAW,GACX,IACE,GAAIqwD,EAAKtiF,UAAYsiF,EAAKoH,aAAepH,EAAKsH,UAAW,CACvD,MAAMx2E,OR9EyBtwB,OACrC8Z,EACAja,KAEA,IAAId,EAAM,QAAA4I,OAAWmS,EAAQoD,SAAQ,gDAAAvV,OAA+CmS,EAAQ4tF,UAAS,aAAA//F,OAAYmS,EAAQ6tF,SAEzH,OADI7tF,EAAQ8tF,YAAW7oG,GAAM,cAAA4I,OAAkBmS,EAAQ8tF,kBAC1CjuF,GAAuC,MAAO5a,EAAQc,EAAS,EQwE/CgoG,CACrB,CACE3qF,SAAUsiF,EAAKtiF,SACfwqF,UAAWlI,EAAKoH,YAAYkB,SAAS,EAAG,EAAG,GAC3CH,QAASnI,EAAKsH,UAAUgB,SAAS,GAAI,GAAI,IACzCF,UAAW3nG,GAEbkvB,GAGEmB,EAASzT,QACPyT,EAAS5T,KAAKu+E,cAAcz1F,OAAS,GACvCwhG,EAAY12E,EAAS5T,MAChB+qF,GAAMP,EAAkB,IAAID,EAAgBhnG,IACjD8/F,EAAc,KAEVzvE,EAAS5T,KAAKkrF,gBACVJ,EAAwBl3E,EAAS5T,KAAKkrF,WACzC7H,EAAc9mE,EAAe,+BAGpC8mE,EAAc9mE,EAAe,0BAEjC,CACF,CAAE,MAAO/wB,GACP63F,EAAc9mE,EAAe,0BAC/B,CACAkW,GAAW,EAAM,EAanBnvC,eAAeggG,EAAgB1uC,GAC7BniB,GAAW,GACX,MAAM8wD,EAAkB3uC,GAAY,GAIpC,GAFA41C,EAAkB,IAEdjH,EAAiB,CACnB,MAAM3vE,QAAiBrT,GACrB,CAAEC,SAAU+iF,GACZ9wE,GAGF,GAAImB,EAASzT,SAAWyT,EAAS5T,KAAM,CACrC,MAAMo2C,EAAQxiC,EAAS5T,KAAKxd,KAEtBk9D,EAAYtJ,EAAMvnD,MAAMyqB,GAAoB,cAAVA,IAExC,GAAIomC,EAAW,CACb,MAAM8jC,EAAgB,CACpB9jC,KACGtJ,EACApsD,QAAQsvB,GAAoB,cAAVA,IAClB3vB,KAAK2vB,GAAUA,IACf5B,cAUbp0B,eAAiCwd,EAAiB2D,GAChD,MAAM4mF,EAA0B,GAC1BC,EAA8B,GACpC7mF,EAAOlW,SAAQjL,UACb,MAAMswB,QAAiBvS,GACrB,CAAEb,SAAUM,EAASQ,aACrBmR,GAGF,GAAImB,EAASzT,QAAS,CACpB,MAAMmZ,EAAQ1F,EAAS5T,KAAKxd,KAEtB6L,EAAOvH,OAAOuH,KAAKirB,EAAMwG,OAAOlwB,SAASE,KAAKtN,MAEpD,IAAK,MAAMiL,KAAOY,EAAM,CACtB,MAAMH,EAAQorB,EAAMwG,OAAOlwB,SAASE,KAAKtN,KAAKqH,OAAOwE,EAAKZ,KAExDS,EAAM1L,KAAK+B,aAAeE,EAAYgB,aACtCyI,EAAM1L,KAAK+B,aAAeE,EAAYkD,qBACtCuG,EAAM1L,KAAK+B,aAAeE,EAAYmD,eACtCsG,EAAM1L,KAAK+B,aAAeE,EAAY0O,KAEtCm4F,EAAkBj/F,KAAK,GAADpB,OAAIqW,EAAS,KAAArW,OAAIiD,EAAM1L,KAAK+C,MACtD,CAEA8lG,EAAUh/F,KAAKitB,EACjB,KAEF0pE,EAAUqI,GACVX,EAAkBY,EACpB,CArCc5H,CAAkBH,EAAiBC,EAC3C,CACF,CACF,CACAT,EAAQ,IAAKD,EAAMtiF,SAAU+iF,GAC/B,CAkCA,MAAMgI,EAAuBjoG,MAC3BkoG,EACAtgG,KAEAunC,GAAW,GACX,MAAOnZ,EAAOmyE,GAAaD,EAAkBx0F,MAAM,KAC7C00F,EAAYjnF,EAAO5V,MAAM64B,GAAMA,EAAEvmB,aAAemY,IAEtD,GAAIoyE,EAAW,CACb,MAAMr9F,EAAOvH,OAAOuH,KAAKq9F,EAAU5rE,OAAOlwB,SAASE,KAAKtN,MAExD,IAAK,MAAMiL,KAAOY,EAAM,CACtB,MAAMH,EACJw9F,EAAU5rE,OAAOlwB,SAASE,KAAKtN,KAAKqH,OAAOwE,EAAKZ,KAAOjL,KACzD,GAAI0L,EAAM3I,OAASkmG,EAAW,CAAC,IAADE,EAOrBC,EAAAC,EAAAC,EAYHC,EAAAC,EAlBJ,GAAiB,QAAbL,EAACz9F,EAAMrI,cAAM,IAAA8lG,GAAZA,EAAc92F,eAcjB,GAP0B,QAA1B+2F,EAAA19F,EAAMrI,OAAOgP,qBAAa,IAAA+2F,GAA1BA,EAA4Br9F,SAAQ,CAAC0L,EAAU9N,KACvB,IAAD8/F,EAAJ,KAAbhyF,IACc,QAAhBgyF,EAAI/9F,EAAMrI,cAAM,IAAAomG,GAAZA,EAAcp3F,gBAChB3G,EAAMrI,OAAOgP,cAAc1I,GAASjB,EAAQA,QAAQlH,KAExD,IAGa,QAAb6nG,EAAC39F,EAAMrI,cAAM,IAAAgmG,GAAe,QAAfC,EAAZD,EAAch3F,qBAAa,IAAAi3F,IAA3BA,EAA6Bj9F,MAC3BoL,GAAaA,IAAa/O,EAAQA,QAAQlH,MAKhC,QAFb+nG,EAAAL,EAAU5rE,OAAOlwB,SAASE,KAAKtN,KAC7BqH,OAAOwE,EAAKZ,KACZjL,KAAKqD,cAAM,IAAAkmG,GAAe,QAAfC,EAFbD,EAEel3F,qBAAa,IAAAm3F,GAF5BA,EAE8B3/F,KAAKnB,EAAQA,QAAQlH,UApBrD0nG,EAAU5rE,OAAOlwB,SAASE,KAAKtN,KAAKqH,OAAOwE,EAAKZ,KAAOjL,KAAKqD,OAC1D,CACEgP,cAAe,CAAC3J,EAAQA,QAAQlH,KAChC6G,UAAW,IAoBjB,KACF,CACF,CAEA,MAAM+oB,QAAiBxS,GACrB,CACEZ,SAAUsiF,EAAKtiF,SACfW,WAAYmY,EACZwG,OAAQ,CACNlwB,SAAU87F,EAAU5rE,OAAOlwB,WAG/B6iB,GAGEmB,EAASzT,SAAWlG,GAClB7X,EAAM0e,SAAW1e,EAAMogB,SAASud,EAASzG,EAAOwpE,EAAKtiF,UACzD8B,EACE,UACAia,EAAe,wBACf,KAEF2vE,EAAoBhhG,IAEpBoX,EACE,QACAsR,EAASxT,SAAWmc,EAAe,sBAGzC,CACAkW,GAAW,EAAM,EAGby5D,EAAsB5oG,UAE1B,GADAmvC,GAAW,GACPx4B,EAAU,CACZ,MAYMkyF,EAXJlyF,EAASskF,cAAc50F,KAAKk8F,IAC1B,MAAM9wD,EAAW8wD,EAAa9wD,SAAS/qC,QACpC+9F,GACCA,EAAE78F,UAAYA,EAAQA,SAAW68F,EAAE1B,YAAcn7F,EAAQm7F,YAE7D,MAAO,CACLrC,SAAU6B,EAAa7B,SACvBjvD,WACD,IAGqC/qC,QACvC67F,GAAiBA,EAAa9wD,SAASjsC,OAAS,IAG/CqjG,EAAoBrjG,OACtBwhG,EAAY,IAAKrwF,EAAUskF,cAAe4N,IACnClyF,EAASixF,gBACVJ,EAAwB7wF,EAASixF,WAClC7H,EAAc9mE,EAAe,8BACtC,CACAkW,GAAW,EAAM,EA8CnB,OAAKrwC,EAAMkhB,gCAGTrf,cAAAysB,WAAA,CAAAxtB,SACEe,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAMkhB,gCACZoK,oBAAqB7D,GACrB+D,SAAS,KACTD,WAAS,EACT8sC,YAAU,EAAAv3D,SAEVmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SACrBq5B,EAAe,4BAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASA,KA7OrBo8E,OAAY7jG,GACZs8F,EAAQ,CACNviF,SAAU,GACV0pF,YAAaC,aAAQ,IAAIvrF,KAAQ,GACjCwrF,UAAW,IAAIxrF,YAEjBzb,EAAS,CAAEb,KAAM,sCAwOL,aAAW,QAAOY,SAElBe,cAACkqB,KAAS,WAIhB9F,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBmlB,eAACsB,KAAI,CAAC4Y,WAAS,EAAC6W,QAAS,EAAEl2C,SAAA,CACzBe,cAAC0lB,KAAI,CAAC9R,MAAI,EAACgtD,GAAI,GAAIunC,GAAI,EAAElpG,SACvBe,cAAC8zC,KAAY,CACX5zC,MAAO2+F,EAAKtiF,SACZ2L,QAASiR,EACTwtC,cAAeruC,EAAe,aAC9BuuC,aAAe9yB,GACb/zC,cAAC8rB,GAAoB,CAAA7sB,SAAE80C,IAEzBvkB,SAAUA,CAAChD,EAAYmkC,KACrB0uC,EAAgB1uC,EAAS,EAE3BjnC,WAAS,EACTuC,SAAUrN,EACVo1B,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACR2iB,MAAOrQ,EAAe,SACtB2Q,YAAa3Q,EAAe,qBAKpCt4B,cAAC0lB,KAAI,CAAC9R,MAAI,EAACgtD,GAAI,GAAIunC,GAAI,EAAElpG,SACvBe,cAACooG,KAAuB,CACtBC,MAAOC,KACPtD,OAAQrzC,EAAW1yD,SAEnBe,cAACuoG,KAAU,CACT5/D,MAAOrQ,EAAe,gCACtBp4B,MAAO2+F,EAAKoH,YACZjgF,QAAQ,SACR2wD,OAAO,aACP6xB,aAAa,WACbh5E,SAAWg0D,IACT+iB,EAAkB,IAClBzH,EAAQ,IAAKD,EAAMoH,YAAaziB,GAAO,EAEzCilB,QAAM,EACNx8E,SAAUrN,EACV8K,WAAS,EACTg/E,QAASxC,aAAQ,IAAIvrF,KAAQ,UAInC3a,cAAC0lB,KAAI,CAAC9R,MAAI,EAACgtD,GAAI,GAAIunC,GAAI,EAAElpG,SACvBe,cAACooG,KAAuB,CACtBC,MAAOC,KACPtD,OAAQrzC,EAAW1yD,SAEnBe,cAACuoG,KAAU,CACT5/D,MAAOrQ,EAAe,8BACtBtS,QAAQ,SACR2wD,OAAO,aACPz2E,MAAO2+F,EAAKsH,UACZqC,aAAa,WACbv8E,SAAUrN,EACV4Q,SAAWg0D,IACT+iB,EAAkB,IAClBzH,EAAQ,IAAKD,EAAMsH,UAAW3iB,GAAO,EAEvCilB,QAAM,EACNC,QAASxC,aAAQ,IAAIvrF,KAAQ,KAAOkkF,EAAKoH,YACzCv8E,WAAS,WAKjBtF,eAACsB,KAAI,CAACzc,MAAO,CAAEimB,QAAS,GAAIG,cAAe,UAAWpwB,SAAA,CACpDe,cAAC0lB,KAAI,CAAC9R,MAAI,EAAC3K,MAAO,CAAEmsC,KAAM,EAAGuzD,cAAe,IAAK1pG,SAC/Ce,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrCq5B,EAAe,qCAGpBt4B,cAAC8rB,GAAkB,CAAClY,MAAI,EAAA3U,SACrB2f,EAnHbwF,eAAC0H,GAAU,CAAClY,MAAI,EAAA3U,SAAA,CACde,cAAC+lB,KAAU,CACTC,QAAQ,QACR/c,MAAO,CAAEkhB,UAAW,GAAI0oE,UAAW,SAAUjZ,aAAc,IAAK36E,SAE/Dq5B,EAAe,8BAElBt4B,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUna,MAAO,CAAE2wE,aAAc,SA8G3CulB,EAjIhB/6E,eAAC0H,GAAU,CAAClY,MAAI,EAAA3U,SAAA,CACde,cAAC0/F,KAAgB,IACjB1/F,cAAC+lB,KAAU,CACTC,QAAQ,QACR/c,MAAO,CAAEkhB,UAAW,GAAI0oE,UAAW,UAAW5zF,SAE7CkgG,OA1BiByJ,MAAA,IAAAC,EAAA,OACtB7yF,IACsB,QADd6yF,EACR7yF,EAASskF,qBAAa,IAAAuO,OAAA,EAAtBA,EAAwBnjG,KAAKk8F,GAC3BA,EAAa9wD,SAASprC,KAAI,CAACuB,EAASiB,IAEhClI,cAACslG,GAAM,CAELvF,SAAU6B,EAAa7B,SACvB94F,QAASA,EACT4V,QAASgiF,EAAKtiF,SACdgpF,mBAAoBiB,EACpBhB,eAAgB8B,EAChB7B,cAAewC,EACf//F,MAAOA,GAPFA,OAWZ,EAsIe0gG,KAEL5yF,GACCoO,eAACsB,KAAI,CAAC9R,MAAI,EAAC3K,MAAO,CAAEkmB,QAAS,OAAQohC,eAAgB,OAAQtxD,SAAA,CAC3De,cAAC+pB,KAAU,CACTwD,KAAK,QACLtB,SAAUrN,KAAa0nF,EAAezhG,OAAS,GAC/ColB,QAASA,IAtXL6+E,MACpB,MAAMC,EAAczC,EAAeA,EAAezhG,OAAS,GACrDmkG,EAAmB1C,EAAeprD,MAAM,EAAGorD,EAAezhG,OAAS,GACzE0hG,EAAkByC,GAClBnC,EAAwBkC,GAAa,EAAK,EAkXXD,GAAgB7pG,SAE/Be,cAACipG,KAAgB,MAEnBjpG,cAAC+pB,KAAU,CACTwD,KAAK,QACLtB,UACGjW,EAASixF,WAAaroF,GAA0B,KAAfugF,EAEpCl1E,QAASA,IAAM48E,EAAwB7wF,EAASixF,WAAWhoG,SAE3De,cAACkpG,KAAmB,sBA9HalpG,cAAAysB,WAAA,GAsI9C,ECteQ08E,OAdO7hF,IAA2C,IAA1C,SAAEroB,EAAQ,OAAEb,GAAwBkpB,EACzD,MAAM,sBAAEiS,EAAqB,eAAEO,EAAc,OAAEtB,GAAWwB,MAClDnd,QAASuc,EAAOrc,YAAakc,GAAY8N,KAAU5oC,MAS3D,OAPqBo/D,mBAAQ,MACvB/kC,SACAS,IAAWa,EAAeb,MAC1BA,GAAWG,EACNG,EAAsB,CAAEN,UAASG,QAAOh7B,gBADjD,KAEC,CAACA,EAAQg7B,EAAOH,EAASM,EAAuBO,EAAgBtB,IAE3Cx4B,cAAAysB,WAAA,CAAAxtB,SAAGA,IAAe,IAAI,ECmDzC,SAASmqG,GAA0BrP,GACxC,MAAM,UAAEI,GAAcJ,EAEhBsP,EAA4B,GAWlC,OATkB,OAAdlP,GACDt3F,OAAOuH,KAAK+vF,GAA6C7vF,SACvDg/F,KACiC,IAA5BnP,EAAUmP,IACZD,EAAgBjhG,KAAKkhG,EACvB,IAICD,CACT,C,0BCrFA,MAAME,GACO,QAGPC,GAAS,UACTC,GAAYF,GAAgB,GAAAviG,OAAMuiG,GAAgB,KAAM,GACxDG,GAAU,SAAClgG,GAAwB,SAAAxC,OAALY,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAG,IAAgBZ,OAAGyiG,IAASziG,OAAGwC,EAAG,EAOnEjB,GAAUiB,IACdjK,aAAa8Z,WAAWqwF,GAAQlgG,EAAKggG,KACrCjqG,aAAa8Z,WAAWqwF,GAAQlgG,GAAK,EAqBhC,MAAMmgG,GAAa,CAAEjwF,IAlB5B,SAAalQ,EAAajL,GAAqC,IAAvBqrG,EAAahiG,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAG,KACtD,MAAMiiG,EAAaC,aAAW,IAAInvF,KAAQivF,GAC1CrqG,aAAa6a,QAAQsvF,GAAQlgG,EAAKggG,IAASK,EAAWE,eACtDxqG,aAAa6a,QAAQsvF,GAAQlgG,GAAMpE,KAAKC,UAAU9G,GACpD,EAciCyrG,IAZjC,SAAaxgG,GACX,MAAMygG,EAjBmBzgG,KACzB,MAAMqQ,EAAMta,aAAaC,QAAQkqG,GAAQlgG,EAAKggG,KAC9C,OAAO,IAAI7uF,KAAKd,GAAOjU,OAAOskG,UAAU,EAerBC,CAAkB3gG,GAC/BtJ,EAAQX,aAAaC,QAAQkqG,GAAQlgG,IAE3C,GAAKtJ,IAASkqG,aAAOH,GAKrB,OAAO7kG,KAAKw2B,MAAM17B,GAJhBqI,GAAOiB,EAKX,EAEsCjB,WCrBhC8hG,GAAqB,gBAE3B,IAAIhwB,IAAgB,E,sBCdb,MAAMjxC,GAAYrmB,KAAOC,IAAGC,QAAAC,aAAA,yTAkBtB2lE,GAAmB9lE,KAAOC,IAAGM,QAAAJ,aAAA,oEAM7Bi6D,GAAgBp6D,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BS,QAAAN,aAAA,kFAM5C8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBW,QAAAR,aAAA,QAEWitD,GAAkBptD,KAAOC,IAAGoC,QAAAlC,aAAA,QAE5B6lE,GAAWhmE,aAAO4B,GAAP5B,CAAiBuC,QAAApC,aAAA,4CAK5B4xB,GAAYC,aAAW,CAClCi0C,WAAY,CACVh8D,SAAU,OACVm0C,WAAY,OACZ8nB,WAAY,IACZ7lE,MAAO4jB,GAAaE,QAAQC,QAAQC,MAEtCkjE,SAAU,CACRt9E,SAAU,YC/CC,SAASu9E,KACtB,MAAMz0D,EAAUhqB,MACV,MAAE3tB,EAAK,gBAAEuoC,GAAoBK,MAC7B,wBAAEyjE,EAAuB,eAAEC,GFWpB,WACb,MAAM,MAAEtsG,GAAU4oC,MACZ,kBAAEtmB,EAAiB,gBAAEC,EAAe,QAAE7D,GAAY1e,GACjDusG,EAAoBC,GAAyBrgF,mBAAmB,IA6BvE,SAASsgF,EAA0B5xE,GACjC2wE,GAAWjwF,IAAI,kBAAmBsf,EACpC,CAUA,SAASW,IACP,OAAOlZ,EAAkBhV,MAAM+tF,GAAiBA,EAAa7/D,SAC/D,CAEA,SAAS8wE,IACP,OAAOhqF,EAAkBhV,MACtB+tF,GAAiBA,EAAal4F,OAAS+oG,IAE5C,CAoCA,OAnFIhwB,KACFswB,EA8BF,WAAgD,IAADE,EAC7C,OAAwC,QAAxCA,EAAOlB,GAAWK,IAAI,0BAAkB,IAAAa,IAAI,EAC9C,CAhCwBC,IACtBzwB,IAAgB,GAGlBj7E,qBAAU,KACR,IAAI45B,EAAwB,GAE5B,GAAMnc,EAAS,CACb,MAAMkuF,EAAgBrqF,EAAgB9V,MACnCogG,GAAmBA,EAAer3F,MAAQkJ,IAGvCkuF,IACJ/xE,EAAcowE,GAA0B2B,GAE5C,CAEIpxE,MAAWX,EAAc,IAAIA,EAAa,UAE1CyxE,MAAkBzxE,EAAc,IAAIA,EAAa,eAErD4xE,EAA0B5xE,GAC1B2xE,EAAsB3xE,EAAY,GAEjC,CAACtY,EAAiB7D,IA0Dd,CACLouF,4BAjDF,WACEtB,GAAWphG,OAAO,kBACpB,EAgDE67B,QA5BF,WACE,OAAO1jB,EAAgBhb,KAAKq0F,GAAeA,EAAWpmF,KACxD,EA2BEolB,eAzBF,WACE,OAAO2xE,CACT,EAwBEQ,oBAtBF,SAA6BC,GAC3B,MAAMpR,EAAar5E,EAAgB9V,MAChCmvF,GAAeA,EAAWpmF,MAAQw3F,IAGrC,OAAKpR,EAEEqP,GAA0BrP,GAFT,EAG1B,EAeEpgE,UACA8wE,iBACAW,sBAzCF,SAA+BD,GAC7B,MAAM3R,EAAe/4E,EAAkB7V,MACpC4uF,GAAiBA,EAAal4F,OAAS6pG,IAG1C,QAAS3R,GAAgBA,EAAa7/D,OACxC,EAoCE6wE,wBAhBF,SAAiCrJ,GAC/B,OAAOA,EAAU11F,MAAM4/F,GACrBX,EAAmBj/F,MAChB6/F,GAAsBA,IAAsBD,KAGnD,EAWET,4BACAF,qBAEJ,CE/GsDa,IAC9C,eAAEjzE,GAAmBH,KAQ3B,OAAKh6B,EAAM4gB,uBAA0B5gB,EAAM0e,QAGzCuH,eAAC0H,GAAW,CAAA7sB,SAAA,CACVmlB,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAC8rB,GAAY,CACXgqB,QAAS,CACP2zC,GAAI3zC,EAAQkzC,YACZ/pF,SAEDq5B,EAAe,8BAEhBkyE,EAAwB,CAAC,UAAYC,MACrCzqG,cAAC8rB,GAAe,CAAA7sB,SACbq5B,EAAe,mCAItBt4B,cAAC8rB,GAAiB,CAAA7sB,SAEhBe,cAACmpG,GAAa,CAAC/qG,OAAQ,CAAC,cAAca,SACpCe,cAAC8rB,GAAU,CACT1I,MAAM,UACN4C,QAAS,YACTiE,QA9BS5qB,UACblB,EAAMogB,SAAWpgB,EAAM0e,eACnB6pB,EAAgBvoC,EAAMogB,QAASpgB,EAAM0e,QAC7C,EA4BQoP,SAA4B,KAAlB9tB,EAAMogB,QAChBwJ,UAAW+tB,EAAQw0D,SAASrrG,SAE3Bq5B,EAAe,qCA5BiCt4B,cAAAysB,WAAA,GAmC7D,C,gDChDO,MAAM9G,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,+GAOjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,6BAIW+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,gYAwB7BkgE,GAAqBrgE,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,iDAMjCm/D,GAAUt/D,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,wUAOflkB,GAAWA,EAAM2qC,SAAW,YAAc,YAaxC3qC,GAAWA,EAAM2qC,SAAW,OAAS,YAIjD05C,GAAYtgE,aAAO2C,KAAP3C,CAAYyC,QAAAtC,aAAA,+GAQxBs/D,GAAcz/D,aAAO2C,KAAP3C,CAAY8C,QAAA3C,aAAA,8IAsB1Bu+D,IAZkB1+D,aAAO2C,KAAP3C,CAAY+C,QAAA5C,aAAA,0IAYXH,aAAO2C,KAAP3C,CAAYkD,QAAA/C,aAAA,+FAO/B0B,GAAS7B,aAAO4B,GAAP5B,CAAiBmD,QAAAhD,aAAA,2BAI1Bu/D,GAAmB1/D,KAAOC,IAAGmD,QAAAjD,aAAA,4ECxEpC0C,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEM81C,GAAYC,cAAW,IAC3BC,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY0rC,KAAK,MAGnBmzB,aAAc,CACZ7+D,WAAY0rC,KAAK,KACjBpsC,MAAO,UACPqtD,cAAe,EACfvgB,aAAc,EACd,UAAW,CACTpsC,WAAY0rC,KAAK,WAMV,SAASg8C,KACtB,MAAQtsG,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,SAAEe,EAAQ,iBAAE49B,EAAgB,kBAAEze,GAAsB0oB,MAC3D,oBAAEnnB,GAAwBzhB,EAC1B23C,EAAUhB,MAIT5hC,EAAQsgC,GAAalpB,mBAAS,KAE9BmhF,EAAYC,GAAiBphF,mBAAmB,KAChDzsB,EAAM41C,GAAWnpB,oBAAS,IAC1B25D,EAAeC,GAAoB55D,mBAAwB,OAC5D,eAAEgO,GAAmBH,KAErBwzE,EAAiBhkF,uBAAYtoB,UACjCo0C,GAAQ,GACR,MAAMm4D,QAAyB1xE,GAC7B/7B,EAAM0e,SAAW,GACjB2R,GAEF,GACEo9E,EAAiB1vF,SACjB0vF,EAAiB7vF,MACjB6vF,EAAiB7vF,KAAKxd,KACtB,CACA,MAAM4I,EAASykG,EAAiB7vF,KAAKxd,KAC/BstG,EAAwB,GAC9B1kG,EAAO00D,YAAYvxD,SAASL,IACtB,QAAAjD,OAAQiD,EAAMswB,cAAiBp8B,EAAMogB,SACvCstF,EAAYzjG,KAAK6B,EAAMswB,WAAW,IAGtCmxE,EAAcG,EAChB,CACAp4D,GAAQ,EAAM,GACb,CAACjlB,EAAarwB,EAAM0e,QAAS1e,EAAMogB,UAStC,SAASkJ,IACPy8D,EAAiB,MACjBhlF,EAAS,CAAEb,KAAM,wBACnB,CAEA,GAZAe,qBAAU,KACJwgB,IACF4zB,EAAU,IACVm4D,IACF,GACC,CAACA,EAAgB/rF,KAOfzhB,EAAMyhB,oBAAqB,OAAO,KAEvC,MA0NMolE,EAAc98E,GACX+7E,IAAkB/7E,EAG3B,OACElI,cAACwpB,KAAM,CACLhC,KAAMrpB,EAAMyhB,oBACZ6J,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,KAAMliE,SAAC,gBACxCe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,SAGdlqB,cAACiwE,GAAc,CAAAhxE,SACbe,cAAC8zC,KAAY,CACXmxC,UAAQ,EACR/8D,QAnSM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAmSpBxiB,KAAKquC,GAAWA,IACjCC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJ0Q,YAAY,qBACZjjB,QAAQ,WACR9lB,MAAOgT,EACPsc,SAAWjoB,GACTisC,EAAUjsC,EAAEkG,OAAOvN,OAErB+zC,WAAY,CACV51C,KAAM,SACN61C,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo+C,KAAU,CAACh7B,MAAM,eAIxBsG,WAAS,QAKjBtF,eAACg/D,GAAkB,CAAAnkF,SAAA,CACjBe,cAACqjF,GAAS,CAAApkF,SACPpB,EACCmC,cAAC4uC,KAAgB,IAEjB68D,EACGh4E,MAAK,CAACjnB,EAAGuH,IAAMvH,EAAE0qB,cAAcnjB,KAC/BhO,QACE6N,GACCA,EAAKnD,cAAczE,QAAQkH,EAAOzC,gBAAkB,IACnDyC,IAEJxN,KAAI,CAACkO,EAAM1L,IACVkc,eAACkC,IAAMkrE,SAAQ,CAAAvyF,SAAA,CACbmlB,eAACi+D,GAAO,CAENp4D,QAASA,IA5RF/hB,KACzBg8E,EAAiBh8E,EAAM,EA2RUk9E,CAAkBl9E,GACjCyhC,SAAUq7C,EAAW98E,GAAOjJ,SAAA,CAE5Be,cAAA,QAAAf,SAAO2U,IACP5T,cAAA,OAAAf,SAQEe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN,aAAW,SACX6G,QAASA,IAtRP5qB,WACxB,GAAIxB,EAAM,OACV41C,GAAQ,GACR,MAAMi0C,EAAmB,IAAI+jB,GACvB7jB,EAAcF,EAAiBx/E,IAAU,KAC/Cw/E,EAAiBv7E,OAAOjE,EAAO,GAE/B,MAAMynB,QAAiBrS,GACrB,CACEf,SAAUpe,EAAM0e,QAChBQ,UAAU,QAADrW,OAAU4gF,IAErBp5D,GAGF,IAAKmB,EAAS5T,KAAK8qB,mBAUjB,OATAxoB,EACE,QACAia,EAAe,gCAAiC,CAC9CwzE,OAAQxzE,EAAe,SACvBsO,KAAMjX,EAAS5T,KAAK+qB,aACpB7qB,OAAQqc,EAAe,sCAG3Bmb,GAAQ,GAIV,MAAMmoB,QAA2B1hC,GAAc/7B,EAAM0e,QAAU2R,GAE/D,GAAIotC,EAAmB7/C,KAAKxd,KAAM,CAChC,MACMwtG,EADanwC,EAAmB7/C,KAAKxd,KACFs9D,YAAYjxD,MAClDX,GAAUA,EAAMswB,aAAeqtD,IAElC,GACEmkB,GACAA,EAAsB1vC,YAAYx3D,OAAS,EAC3C,CACA,MAAM2b,EAASurF,EAAsB1vC,YAAY32D,KAC9C2vB,GAAUA,EAAMnY,aASnB,OANAmB,EACE,QAAQ,oFAADrX,OACoEwZ,EAAM,YAEnFizB,GAAQ,EAGV,CACF,QAEqBpZ,GACnB,CACE9d,SAAUpe,EAAM0e,SAAW,GAC3B0d,WAAYqtD,EACZvrB,YAAa,IAEf7tC,IAGStS,SACTmC,EAAkB,UAAW,oCAC7BstF,KAEAttF,EACE,QACA,4DAGJ6lE,EAAiB,MACjBzwC,GAAQ,EAAM,EA8MuB6wC,CAAkBp8E,GAAOjJ,SAExCe,cAACmsC,KAAU,UAET,KAAAnlC,OArBIkB,IAuBZlI,cAACyiF,GAAgB,CAAAxjF,SACfe,cAAC0tC,KAAO,CAAC1nB,QAAQ,kBA1BApS,OAgC7B5T,cAACwiF,GAAW,CAAAvjF,SApTiBe,cAAAysB,WAAA,SAsT/BzsB,cAACyhF,GAAgB,CAAAxiF,SACfe,cAAC4kB,GAAM,CACL3b,MAAO,CAAEisC,WAAY,GAAIu7B,cAAe,EAAGvgB,aAAc,GACzDlqC,QAAQ,YACR5C,MAAM,UACN6I,SA9NiB,OAAlBg4D,EA+NCh6D,QA5Me5qB,UAAa,IAADi+B,EAEnC,IAlBqC0uE,MAAO,IAADt/E,EAAAlB,EAC3C,GAAsB,OAAlBy4D,EAAwB,OAC5B,MAAMh+C,EAAapjC,OAAOuH,KACR,QADYsiB,EAC5BvuB,EAAM2P,kBAAU,IAAA4e,OAAA,EAAhBA,EAAkB/gB,SAASA,SAASE,KAAKtN,MAErC0tG,EAA4B,QAAnBzgF,EAAGrtB,EAAM2P,kBAAU,IAAA0d,OAAA,EAAhBA,EAAkB7f,SAASA,SAASE,KAAKtN,KAC3D,IAAI2tG,GAAsB,EAC1B,IAAK,MAAMC,KAAYlmE,EAErB,GADqBgmE,EAAUrmG,OAAOumG,IACrB5tG,KAAK+C,OAASmqG,EAAWxnB,GAExC,OADAioB,GAAsB,EACfA,CAEX,EAIqBF,IACgB,QAApB1uE,EAAIn/B,EAAM2P,kBAAU,IAAAwvB,GAAhBA,EAAkB3xB,UAA8B,OAAlBs4E,EAAwB,CACzE,MAAMmoB,QAAsBhvF,GAC1B,CACEb,SAAUpe,EAAM0e,SAAW,GAC3BQ,UAAU,QAADrW,OAAUykG,EAAWxnB,KAEhCz1D,GAEF,GAAI49E,EAAclwF,QAAS,CACzB,MACMgmB,EADYkqE,EAAcrwF,KAAKxd,KACPs9B,OAAOlwB,SAASE,KAAKtN,KAC7C4jC,EAAkBt/B,OAAOuH,KAAK83B,GAEpC,IAAIE,EAA2B,CAAC,EAC5BC,EAA6B,GAEjC,IAAK,MAAM74B,KAAO24B,EAAiB,CACjC,MAAMG,EAAeJ,EAAYt8B,OAAOu8B,EAAgB34B,KACpD84B,EAAa/jC,KAAK+B,aAAeE,EAAYK,iBAC/CuhC,EAAaE,GAEXA,EAAa/jC,KAAK+B,aAAeE,EAAY6D,eAC/Cg+B,EAAWj6B,KAAKk6B,EACpB,CAEA,MAAMC,EAAwB,GACxB1gC,EAAU,CAAC,EACjBwgC,EAAW/3B,SAAQ,CAACk4B,EAAWt6B,KAC7BrF,OAAOC,OAAOjB,EAAS,IAClBA,EACH,CAAC,UAADmF,OAAWkB,EAAQ,IAAM,CAAEmC,YAAa,MAE1Ck4B,EAAYn6B,KAAK,CAAEmG,MAAOi0B,EAAUjkC,KAAK+C,MAAO,IAGlD,MAAM,WAAEwM,GAAe3P,EAEjB4/B,EAAiB,IAAIzJ,GACzBxmB,GACAymB,kBACIkyD,EAAkB,IAAK34E,EAAWnC,UAClCiyB,EAAa,IAAIhM,GACrB60D,EACAtoF,EAAMogB,SAAW,GACjBwf,GAEIsuE,EAASzuE,EAAW5K,gBACpB8oC,EAAsB,CAC1B,CAACuwC,GAAS,CACRpwC,MAAO,UACPC,KAAM,GACNl2D,GAAIqmG,EACJ/qG,KAAM,UACN4M,MAAO6vB,EAAe7vB,MACtBC,MAAO4vB,EAAe5vB,MACtBguD,UAAU,EACV59D,KAAM,CACJ+C,KAAMmqG,EAAWxnB,GACjB1iF,YAAa6gC,EAAW7jC,KAAKgD,YAC7BE,QAAStD,EAAMogB,SAAW,YAC1Bje,WAAYE,EAAYS,UACxBY,QAAS0gC,EACT3/B,UAAWw/B,EAAW7jC,KAAK+C,KAC3BS,YAAa,CACXiP,gBAAgB,eAADhK,OAAiBykG,EAAWxnB,GAAc,KAAAj9E,OAAIo7B,EAAW7jC,KAAK+C,KAAI,MACjFuP,YAAa,EACbC,QAAS,GACTC,IAAK,KAGTlP,UACAD,OAAQ,CAAE+I,QAAS,CAAEN,YAAa,aAIhCuzB,EAAW/L,SAASiqC,GAC1B,MAAMnwD,EAAWiyB,EAAWvlB,cAE5BvK,EAAW6oB,QACX7oB,EAAW+uB,OAAOlxB,GAClB,MAAMoL,EAAqBpL,EAASA,SAASE,KAAKtN,KAClDu+B,EAAiB/lB,GACjB0Q,SpSpS2BpoB,OACjC8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMizB,GAAO,KAAAjzB,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIqV,GAAO,KAAArV,OAAImS,EAAQohB,WAAU,WAC9E,OAAOvhB,GAA6B,OAAQ5a,EAAQc,EAAUia,EAAQ,EoSiS1DmzF,CACJ,CACE/xE,WAAYkxE,EAAWxnB,GACvB1nE,SAAUpe,EAAM0e,SAAW,GAC3BomB,SAAUopE,EACVnvF,WAAY/e,EAAMogB,SAAW,IAE/BiQ,EAEJ,CACF,MACEnQ,EAAkB,QAAS,4CAC7B,EA0GkCpf,SAEzBq5B,EAAe,4CAM5B,CCvZeihB,I,8BAAAA,GA1BQA,IAEnBn1B,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACusG,GAAa,IACdvsG,cAAC2gF,GAAU,IACX3gF,cAAC0hF,GAAa,IACd1hF,cAAConF,GAAsB,IACvBpnF,cAACwrG,GAAe,IAChBxrG,cAACgkF,GAAgB,IACjBhkF,cAAC4mF,GAAuB,IACxB5mF,cAACioF,GAAmB,IACpBjoF,cAACkpF,GAAoB,IACrBlpF,cAAC0pF,GAAc,IACf1pF,cAACuqF,GAAe,IAChBvqF,cAAC8sF,GAAkB,IACnB9sF,cAAC8vF,GAAe,CAAA7wF,SACde,cAAC+4F,GAAoB,MAEvB/4F,cAAC+8F,GAAqB,IACtB/8F,cAACwsG,GAA2B,IAC5BxsG,cAAComG,GAAqB,IACtBpmG,cAACuqG,GAAiB,OCtCjB,MAAMkC,GAAiB1pF,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,gLAuB7BwpF,IAbuB3pF,aAAOgD,MAAYf,MAAM,CAC3D/lB,SAAU,qBADwB8jB,CAElCO,QAAAJ,aAAA,gIAW+BH,KAAOoL,OAAM3K,QAAAN,aAAA,qKAajCypF,GAAgB5pF,aAAOizB,KAAPjzB,CAAaW,QAAAR,aAAA,6CAK7B0pF,GAAa7pF,aAAO0lB,GAAP1lB,CAAoBqC,QAAAlC,aAAA,QAEjC2pF,GAAgB9pF,aAAOwM,KAAPxM,CAAiBuC,QAAApC,aAAA,QAEjC4pF,GAAuB/pF,KAAOoL,OAAM3I,QAAAtC,aAAA,yNAiBpC6pF,GAAchqF,aAAO4B,GAAP5B,CAAiB8C,QAAA3C,aAAA,kDAK/B8pF,GAA0BjqF,KAAOC,IAAG8C,QAAA5C,aAAA,wDAKpC+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYkD,QAAA/C,aAAA,sQCpC7B+pF,GAAgB5tG,MAAOotF,EAAerwE,KACjD,MAAM06C,EAASC,OAAaC,MAAM,CAChCy1B,MAAO11B,OAEJ3+C,SAASgE,KAGR86C,EAAgB,IAAIC,SAA8BC,IACtDN,EACGO,SAAS,CAAEo1B,SAAS,CAAEn1B,YAAY,IAClClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAE+wE,MAAO,KAAO,IAElDh+B,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAE+wE,MAAOnnD,EAAI5pB,OAAO,KAAO,GAC7D,IAEN,aAAaw7C,CAAa,EAGtBw1B,GAAoBrtF,MAAOstF,EAAkBvwE,KACjD,MAAM06C,EAASC,OAAaC,MAAM,CAChC21B,SAAU51B,OAAa3+C,SAASgE,KAG5B86C,EAAgB,IAAIC,SAA8BC,IACtDN,EACGO,SAAS,CAAEs1B,YAAY,CAAEr1B,YAAY,IACrClJ,MAAK,KACJgJ,EAAQ,CAAEG,SAAS,EAAM77C,OAAQ,CAAEixE,SAAU,KAAO,IAErDl+B,OAAOnpB,IACN8xB,EAAQ,CAAEG,SAAS,EAAO77C,OAAQ,CAAEixE,SAAUrnD,EAAI5pB,OAAO,KAAO,GAChE,IAEN,aAAaw7C,CAAa,E,6DCxErB,MAAMg2C,GAAOnqF,aAAO66C,MAAa54C,MAAM,CAC5C+C,UAAW,gBADOhF,CAElBE,QAAAC,aAAA,QAEWiqF,GAAmBpqF,aAAO2C,MAAMV,MAAM,CAAC,EAApBjC,CAAsBO,QAAAJ,aAAA,yUAqBzCkqF,GAAmBrqF,aAAOsqF,KAAPtqF,CAAwBS,QAAAN,aAAA,oQAiB3CoqF,GAAgBvqF,aAAO2C,MAAMV,MAAM,CAC9CpR,MAAM,EACNgtD,GAAI,IAFuB79C,CAG3BW,QAAAR,aAAA,2KAiBW4xB,IANe/xB,KAAOC,IAAGoC,QAAAlC,aAAA,uFAMb6xB,cAAYvN,IAAK,CACxC8nB,YAAa,CACXzgD,SAAU,WACV0gD,MAAO/nB,EAAM2N,QAAQ,GACrBjsC,IAAKs+B,EAAM2N,QAAQ,IAErBo4D,cAAe,CACbr+E,QAAS,WACTgB,gBAAiB,UACjB9M,MAAO,UACP,UAAW,CACT8M,gBAAiB,YAGrBs9E,qBAAsB,CACpBt9E,gBAAiB,UACjB9M,MAAO,UACP8L,QAAS,WACT,UAAW,CACTgB,gBAAiB,YAGrB/B,OAAQ,CACN+B,gBAAiB,YACjB9M,MAAO,YACP8L,QAAS,YAEXu+E,YAAa,CACXt+E,QAAS,OACTohC,eAAgB,gBAChBrhC,QAAS,EACTy5E,cAAe,QC1EZ,MAAM+E,GAAkBvsG,cAAA,KAC7BsrF,MAAQ,GAAE,KACVkhB,aAAe,GAAE,KACjBhhB,SAAW,GAAE,KACbE,qBAAuB,GAAE,KAC1B+gB,kBAAoB,EAAE,EAGhB,MAAMC,GAQZ1sG,YAAYsrF,EAAemhB,GAA4B,KAPvDnhB,MAAQ,GAAE,KACVkhB,aAAe,GAAE,KACjBhhB,SAAW,GAAE,KACbE,qBAAuB,GAAE,KACzBzwE,MAAQ,IAAIsxF,GAAmB,KAC/BE,kBAAoB,GAGnB7qG,KAAK0pF,MAAQA,EACb1pF,KAAK6qG,kBAAoBA,GAAqB,EAC/C,EC1CM,MAAME,GAAuBh+D,IAClC,IAAKA,EAAQ,OAAO,EAEpB,OADei+D,GAAWj+D,GACV,CAAC,EAGbi+D,GAAiBj+D,IACrB,IAAI1zB,EAAQ,EAQZ,OAPAvZ,OAAOu7B,OAAO0R,GAAQxlC,SAAQsJ,IACR,kBAATA,GAA8B,KAATA,EAC9BwI,IACyB,kBAATxI,IAChBwI,GAAS2xF,GAAWn6F,GACtB,IAEKwI,CAAK,ECGdw1C,aAdmB,CACjBo8C,MAAO,CACL51F,SAAU,uBACV61F,QAAS,+BAMXC,OAAQ,CACNC,SAAU,yCAWP,MAAMC,GAAoB/uG,MAAay3D,EAAgDg1C,EAAUuC,KACtG,MAAMh3C,QAA6CP,EAAOO,SAASy0C,EAAQ,CAAEx0C,YAAY,IACtFlJ,MAAM7mD,IAAM,IACZknD,OAAOnpB,GAAQA,EAAIgpE,QAItB,MAFwB,mBAAbj3C,GAAwBA,EAAS/sD,SAASsJ,IAAWy6F,EAAWz6F,EAAK+tB,MAAQ/tB,EAAK3M,OAAO,IAE7FonG,CAAU,E,yBCNJE,OAnB6BvvG,IAC1C,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEgB,cAAA,OACEukB,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAMtK,GAAS,UAAUnkB,SAEzBmlB,eAAA,KAAAnlB,SAAA,CACEe,cAAA,UAAQwuG,GAAG,KAAKC,GAAG,IAAIC,EAAE,MACzB1uG,cAAA,QAAM0kB,EAAE,oFACR1kB,cAAA,QAAM0kB,EAAE,oOAEN,EC0cKiqF,OAvbb3vG,IAEA,MAAM,eAAEs5B,GAAmBH,MACrB,KAAE3Q,EAAI,YAAEonF,EAAW,kBAAEhB,EAAiB,MAAEnhB,EAAK,QAAE7iE,EAAO,aAAEilF,GAC5D7vG,GACI,kBAAEqf,GAAsB0oB,MACvBnoB,EAAS4vB,GAAclkB,oBAAS,IAChCwkF,EAAiBC,GAAsBzkF,oBAAS,IAChD0kF,EAAcC,GAAmB3kF,oBAAS,GAC3CwrB,EAAUhqB,MACTojF,EAAcC,GAAmB7kF,mBACtC,IAAIujF,GAAiBphB,EAAOmhB,IAGxBwB,EAAiC,CACrCC,mBAAoB/2E,EAClB,gDAEFg3E,0BAA2Bh3E,EACzB,uDAEFi3E,kBAAmBj3E,EACjB,+CAEFk3E,iBAAkBl3E,EAChB,8CAEFm3E,cAAen3E,EAAe,4CAG1B7Q,EAAcA,KAClBsnF,GAAmB,GACnBI,EAAgB,IAAItB,GAAiBphB,IACrC7iE,GAAS,EAGL8lF,EAAeA,KACnBP,EAAgB,CACd1iB,MAAOyiB,EAAaziB,MACpBE,SAAU,GACVE,qBAAsB,GACtB8gB,aAAc,GACdvxF,MAAO,IAAIsxF,GACXE,kBAAmB,KAErBnmF,GAAa,EAGTkoF,EAAuBtwG,UAC3BmvC,GAAW,GACX,IASE,GARiB,EAQA,EAMf,OALAA,GAAW,QACX2gE,EAAgB,IACXD,IAKLC,EAAgB,IAAKD,EAAc9yF,MAAO,IAAIsxF,KAEhD,MAAM/9E,OpVjFkBtwB,WAC5B,MAAM6Z,EAAO,CAAEuzE,SACT1lF,EAAG,GAAAC,OAAMsR,GAAM,wBACfI,QAAaC,MAAM5R,EAAK,CAC5B6R,OAAQ,OACRM,KAAM9T,KAAKC,UAAU6T,GACrBL,QAAS,CACP,eAAgB,oCAIpB,aAAaH,EAAKM,MAAM,EoVsEG42F,CAA2BV,EAAaziB,OAC/D,GAEE,4EADA98D,EAASkgF,QAGTxxF,EACE,UACAsR,EAASxT,SACPmc,EAAe,uCAGnBy2E,GAAmB,OACd,CACL,MAAMrzF,EAAS,IAAKwzF,EAAa9yF,OAC7BuT,EAASmgF,QACXngF,EAASmgF,OAAOxlG,SAAS8R,IACA,UAAnBA,EAAM2zF,WACRr0F,EAAO+wE,MAAQrwE,EAAMD,QAAQ,GAC/B,IAGJgzF,EAAgB,IAAKD,EAAc9yF,MAAOV,IAC1C2C,EACE,QACAsR,EAAS9T,OAAO5U,SACdqxB,EAAe,qCAErB,CACF,CAAE,MAAO/wB,GACP8W,EACE,QACA9W,EAAEsU,OAAO5U,SAAWqxB,EAAe,qCAEvC,CACAkW,GAAW,EAAM,EAGbwhE,EAA6B3wG,UACjCmvC,GAAW,GACX,IACE,IAAIyhE,EAAa,EAEjB,MAAMC,OCjJ2B7wG,OAAOysG,EAA0BpwF,EAAwBkzF,KAC9F,MAAMuB,EAAiBvB,EAAc73C,OAAaC,MAAM,CACtD42C,kBAAmB72C,OAAa3+C,WAChCu0E,SAAU51B,OAAatiC,IAAI,EAAG/Y,EAAO6zF,mBAAmBn3F,WAAW8C,KAAK,cAAeQ,EAAO+zF,eAC9FvvG,GACqB,QAAQgb,KAAKhb,KAIlC2sF,qBAAsB91B,OAAaq5C,MAAM,CAACr5C,KAAQ,YAAa,MAAOr7C,EAAO2zF,oBAAoBj3F,aAC9F2+C,OAAaC,MAAM,CACtB22C,aAAc52C,OAAatiC,IAAI,EAAG/Y,EAAO4zF,2BAA2Bl3F,WACpEu0E,SAAU51B,OAAatiC,IAAI,EAAG/Y,EAAO6zF,mBAAmBn3F,WACxDy0E,qBAAsB91B,OAAaq5C,MAAM,CAACr5C,KAAQ,YAAa,MAAOr7C,EAAO2zF,oBAAoBj3F,aAG7Fi4F,QAAmBjC,GAAuD+B,EAAgBrE,EAAQ,IAAI4B,IAO5G,MANe,gBAEHxyF,KAAK4wF,EAAOnf,WAAqC,KAAxB0jB,EAAW1jB,WAC9C0jB,EAAW1jB,SAAWjxE,EAAO8zF,mBAG1B1B,GAAiBuC,IACfA,CAAU,EDyHYC,CACvBpB,EACAE,EACAR,GAOF,GAJ0B,mBAAfsB,GACTD,IAGEA,EAAa,EAMf,OALAzhE,GAAW,QACX2gE,EAAgB,IACXD,EACH9yF,MAAO8zF,IAITf,EAAgB,IAAKD,EAAc9yF,MAAO,IAAIsxF,KAEhD,MAAM6C,EAAuB,CAC3B3pE,KAAMsoE,EAAaziB,MACnB+jB,aAActB,EAAaviB,SAC3B8jB,2BAA4B7B,EACxBhB,EACAsB,EAAavB,cAGbh+E,OpVzIkBtwB,WAC5B,MAAM0H,EAAG,GAAAC,OAAMsR,GAAM,wBACfI,QAAaC,MAAM5R,EAAK,CAC5B6R,OAAQ,MACRM,KAAM9T,KAAKC,UAAU6T,GACrBL,QAAS,CACP,eAAgB,oCAIpB,aAAaH,EAAKM,MAAM,EoV+HG42F,CAA2BW,GAClD,GAAI5gF,GAAiC,+BAArBA,EAASkgF,QAA0C,CACjExxF,EACE,UACAsR,EAASxT,SAAWmc,EAAe,gCACnC,KAGF7Q,IAEA,MAAMipF,QAAsBd,GAAyB,CACnDhpE,KAAMsoE,EAAaziB,MACnBE,SAAUuiB,EAAaviB,WAMjB,IAADgkB,EAJP,IAAMD,EAAcpxG,QAAWoxG,EAAcr2F,cAK3C,MAAM,IAAIsB,MAAkC,QAA7Bg1F,EAACD,EAAc70F,OAAO5U,eAAO,IAAA0pG,IAAI,IAJhDpxG,aAAa6a,QAAQ,QAASs2F,EAAcpxG,OAC5CC,aAAa6a,QAAQ,gBAAiBs2F,EAAcr2F,eACpDw0F,EAAa6B,EAAcpxG,OAAOk9F,SAItC,KAAO,CACL,MAAM9gF,EAAS,IAAKwzF,EAAa9yF,OAC7BuT,EAASmgF,OAAOjrG,OAAS,GAC3B8qB,EAASmgF,OAAOxlG,SAAS8R,IACA,UAAnBA,EAAM2zF,WACRr0F,EAAO+wE,MAAQrwE,EAAMD,QAAQ,IAER,sBAAnBC,EAAM2zF,WACRr0F,EAAOiyF,aAAevxF,EAAMD,QAAQ,IAEf,aAAnBC,EAAM2zF,WACRr0F,EAAOixE,SAAWvwE,EAAMD,QAAQ,IAEX,yBAAnBC,EAAM2zF,WACRr0F,EAAOixE,SAAWvwE,EAAMD,QAAQ,GAClC,IAEFgzF,EAAgB,IAAKD,EAAc9yF,MAAOV,KAE1C2C,EACE,QACAsR,EAASxT,SAAWmc,EAAe,kCAGzC,CACF,CAAE,MAAO/wB,GACP8W,EACE,QACA9W,EAAE4U,SAAWmc,EAAe,kCAEhC,CACAkW,GAAW,EAAM,EAkBboiE,EAAqB,CACzBl5B,aACE13E,cAACm0C,KAAc,CAACtlC,SAAS,MAAK5P,SAC5Be,cAAC+pB,KAAU,CACT,aAAW,6BACXE,QAASA,IAAMglF,GAAiBD,GAChCniF,YAActlB,GACZA,EAAEC,iBAEJwiB,KAAK,MAAK/qB,SAET+vG,EACChvG,cAACo5E,KAAc,CAAC93E,KAAK,eAErBtB,cAAC6wG,KAAiB,CAACvvG,KAAK,uBAO5BwvG,EAAetkF,IACD,UAAdA,EAAMhjB,MACJslG,EAAiBkB,IAChBL,IACP,EAwLIoB,EAAa,CACjBnnF,QAASnC,EACTD,KAAMA,EACNwpF,WAAW,GAGb,OACE5sF,eAACoF,KAAM,IAAKunF,EAAY9hF,WAAY,CAAEhmB,MAAO,CAAEimB,QAAS,SAAWjwB,SAAA,CACjEmlB,eAACgrC,KAAW,CAAChsC,MAAM,UAAU2E,UAAW+tB,EAAQ23D,YAAYxuG,SAAA,CAC1De,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrCq5B,EAAe,2BAElBt4B,cAAC+pB,KAAU,CAAChC,UAAW+tB,EAAQwZ,YAAYrwD,SACzCe,cAACkqB,KAAS,CAACD,QAASxC,SAGvB7I,EA9ODwF,eAAC0H,GAAe,CAAA7sB,SAAA,CACde,cAACixG,GAAgB,CAAC1jF,KAAK,OACvBvtB,cAAC+lB,KAAU,CACTC,QAAQ,KACR/c,MAAO,CAAE2wE,aAAc,GAAIzvD,UAAW,GAAI0oE,UAAW,UAAW5zF,SAE/Dq5B,EAAe,6BAElBt4B,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUna,MAAO,CAAE2wE,aAAc,SAkNzDk1B,GAAmBF,EA/KrBxqF,eAAC0H,GAAM,CAAColF,WAAYJ,EAAY7xG,SAAA,CAC9BmlB,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAC+lB,KAAU,CAACC,QAAQ,UAAU/c,MAAO,CAAEimB,QAAS,YAAajwB,SAC1D2vG,EACC5uG,cAAAysB,WAAA,CAAAxtB,SAAGq5B,EAAe,yCAElBt4B,cAAAysB,WAAA,CAAAxtB,SAAGq5B,EAAe,gCAGtBt4B,cAAC0lB,KAAI,CACH9R,MAAI,EACJgtD,GAAI,GACJunC,GAAI,EACJgJ,GAAI,EACJloG,MAAO,CAAEsb,MAAO,OAAQ4F,UAAW,IAAKlrB,UAEtC2vG,GACAxqF,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACuvB,KAAS,CACRoZ,MAAOrQ,EAAe,oCACtBtS,QAAQ,WACRorF,aAAa,gBACb1nF,WAAS,EACTxpB,MAAOgvG,EAAavB,aACpBn+E,SAAWjoB,GACT4nG,EAAgB,IACXD,EACHvB,aAAcpmG,EAAEkG,OAAOvN,QAG3Bkc,QAAS8yF,EAAa9yF,MAAMuxF,aAC5B5kE,WAAYmmE,EAAa9yF,MAAMuxF,eAEjC3tG,cAAC8uB,KAAO,CACNvgB,MAAO+pB,EACL,0CAEFtJ,UAAU,QAAO/vB,SAEjBe,cAACsrC,KAAG,CACFloB,MAAM,UACNmK,KAAK,QACLtD,QAAS0lF,EAAqB1wG,SAE9Be,cAAC43E,KAAQ,CAACt2E,KAAK,OAAOosB,KAAK,kBAMrC1tB,cAAC0lB,KAAI,CACH9R,MAAI,EACJgtD,GAAI,GACJunC,GAAI,EACJgJ,GAAI,EACJloG,MAAO,CAAEsb,MAAO,OAAQ4F,UAAW,GAAIlrB,SAEvCe,cAACuvB,KAAS,CACRoZ,MAAOrQ,EAAe,+BACtBtS,QAAQ,WACR9lB,MAAOgvG,EAAaviB,SACpBykB,aAAa,eACb5hF,SAAWjoB,GACT4nG,EAAgB,IAAKD,EAAcviB,SAAUplF,EAAEkG,OAAOvN,QAExD7B,KAAM2wG,EAAe,OAAS,WAC9B5yF,QAAS8yF,EAAa9yF,MAAMuwE,SAC5B5jD,WAAYmmE,EAAa9yF,MAAMuwE,SAC/B14C,WAAY,IAAK28D,GACjBlnF,WAAS,MAGb1pB,cAAC0lB,KAAI,CACH9R,MAAI,EACJgtD,GAAI,GACJunC,GAAI,EACJgJ,GAAI,EACJloG,MAAO,CAAEsb,MAAO,OAAQ4F,UAAW,EAAGyvD,aAAc,IAAK36E,SAEzDe,cAACuvB,KAAS,CACRoZ,MAAOrQ,EAAe,mCACtBtS,QAAQ,WACRorF,aAAa,wBACblxG,MAAOgvG,EAAariB,qBACpBr9D,SAAWjoB,GACT4nG,EAAgB,IACXD,EACHriB,qBAAsBtlF,EAAEkG,OAAOvN,QAGnCkc,QAAS8yF,EAAa9yF,MAAMywE,qBAC5B9jD,WAAYmmE,EAAa9yF,MAAMywE,qBAC/BxuF,KAAM2wG,EAAe,OAAS,WAC9B/6D,WAAY,IAAK28D,GACjBlnF,WAAS,SAIftF,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAC2kB,GAAS,CACRsF,QAASylF,EACTtsF,MAAM,UACN2E,UAAW+tB,EAAQy3D,cAActuG,SAEhCq5B,EAAe,UAElBt4B,cAAC2kB,GAAS,CACR0xB,WAAS,EACTpsB,QAAS+lF,EACT5sF,MAAM,UACN2E,UAAW+tB,EAAQ03D,qBAAqBvuG,SAEvCq5B,EAAe,gBAStBlU,eAAC0H,GAAM,CAAA7sB,SAAA,CACLmlB,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAC+lB,KAAU,CAACC,QAAQ,UAAU/c,MAAO,CAAEimB,QAAS,YAAajwB,SAC1Dq5B,EAAe,8BAElBt4B,cAAC0lB,KAAI,CACH9R,MAAI,EACJgtD,GAAI,GACJunC,GAAI,EACJgJ,GAAI,EACJloG,MAAO,CAAEsb,MAAO,OAAQ4F,UAAW,GAAIyvD,aAAc,IAAK36E,SAE1De,cAACuvB,KAAS,CACRoZ,MAAOrQ,EAAe,cACtBtS,QAAQ,WACRorF,aAAa,QACb1nF,WAAS,EACTxpB,MAAOgvG,EAAaziB,MACpBpuF,KAAK,QACLmxB,SAAWjoB,GACT4nG,EAAgB,IAAKD,EAAcziB,MAAOllF,EAAEkG,OAAOvN,QAErDkc,QAAS8yF,EAAa9yF,MAAMqwE,MAC5B1jD,WAAYmmE,EAAa9yF,MAAMqwE,aAIrCroE,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAC2kB,GAAS,CACRsF,QAASxC,EACTrE,MAAM,UACN2E,UAAW+tB,EAAQy3D,cAActuG,SAEhCq5B,EAAe,YAElBt4B,cAAC2kB,GAAS,CACR0xB,WAAS,EACTpsB,QAAS0lF,EACT1jF,SAAiC,KAAvBijF,EAAaziB,MACvB1kE,UACyB,KAAvBmnF,EAAaziB,MACT32C,EAAQ3nB,OACR2nB,EAAQ03D,qBAEdpqF,MAAM,UAASnkB,SAEdq5B,EAAe,qBA6Bf,EEsKE+4E,OA3nB8BryG,IAC3C,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEolB,eAAA,OACEC,MAAM,6BACNre,GAAG,OACHse,QAAQ,cACRjV,QAAQ,MACRkV,MAAOgJ,GAAQ,GACf/I,OAAQ+I,GAAQ,GAAGtuB,SAAA,CAEnBmlB,eAAA,QAAMpe,GAAG,QAAO/G,SAAA,CACde,cAAA,YAAUgG,GAAG,eAAesrG,cAAc,iBAAgBryG,SACxDe,cAAA,QACEgG,GAAG,WACHurG,YAAY,OACZC,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,SAGNib,eAAA,kBAAgBpe,GAAG,uBAAsB/G,SAAA,CACvCe,cAAA,QAAMgG,GAAG,aAAayrG,UAAU,UAAU56F,OAAO,MACjD7W,cAAA,QACEgG,GAAG,aACHyrG,UAAU,UACVC,YAAY,IACZ76F,OAAO,SAGX7W,cAAA,kBACEgG,GAAG,qBACH2rG,GAAG,SACHC,UAAU,wBACVC,cAAc,iBACdC,GAAG,SACHC,kBAAkB,4CAClBC,GAAG,SACHC,GAAG,WAELjyG,cAAA,kBACEgG,GAAG,qBACH2rG,GAAG,SACHC,UAAU,wBACVC,cAAc,iBACdC,GAAG,SACHC,kBAAkB,2CAClBC,GAAG,SACHC,GAAG,WAELjyG,cAAA,UAAQgG,GAAG,aAAY/G,SACrBe,cAAA,kBAAgBgG,GAAG,qBAAqBksG,aAAa,WAEvDlyG,cAAA,YAAUgG,GAAG,eAAesrG,cAAc,iBAAgBryG,SACxDe,cAAA,QACEgG,GAAG,WACHwrG,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACN4tF,OAAO,UACPnpG,EAAE,IACFG,EAAE,IACFipG,YAAY,KACZ1kF,KAAK,WAGT1tB,cAAA,UAAQgG,GAAG,aAAY/G,SACrBe,cAAA,kBAAgBgG,GAAG,qBAAqBksG,aAAa,eAGzD9tF,eAAA,KAAGpe,GAAG,kBAAiB/G,SAAA,CAAC,IAEtBe,cAAA,KAAGgG,GAAG,KAAK6L,UAAU,mBAAkB5S,SACrCe,cAAA,QACEgG,GAAG,SACHwrG,GAAG,KACHhtF,OAAO,MACPze,OAAO,mBACPwe,MAAM,MACN4tF,OAAO,UACPnpG,EAAE,KACFG,EAAE,KACFipG,YAAY,QAGhBhuF,eAAA,KACEpe,GAAG,KACHqsG,SAAS,qBACTxgG,UAAU,qBAAoB5S,SAAA,CAE9Be,cAAA,QACEgG,GAAG,OACHwrG,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,IACFG,EAAE,IACFukB,KAAK,SAEPtJ,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,QACEgG,GAAG,UACHye,SAAS,UACTD,OAAO,MACPD,MAAM,MACNvb,EAAE,IACFG,EAAE,IACFipG,YAAY,MACZ1kF,KAAK,YAEPtJ,eAAA,KAAGpe,GAAG,QAAQ6L,UAAU,0CAAyC5S,SAAA,CAC/De,cAAA,QACEgG,GAAG,UACH0e,EAAE,yEACFD,SAAS,UACT2tF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,6JACFD,SAAS,UACT5S,UAAU,2CACVugG,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,yCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,yCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,yCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,yCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,yCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,wCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,wCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,wCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,wCACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,0CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,WACEgG,GAAG,aACH0e,EAAE,oLACFD,SAAS,UACT5S,UAAU,2CACVge,OAAO,4IACPuiF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,wLACF4tF,cAAc,SACd7tF,SAAS,UACT2tF,YAAY,MACZ1kF,KAAK,SAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,uwCACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,8wCACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,qLACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,o3BACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,0MACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,kMACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEPtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,oDAAmD5S,SAAA,CAE7De,cAAA,QACEgG,GAAG,UACH0e,EAAE,iXACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,+SACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,eAGTtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,qDAAoD5S,SAAA,CAE9De,cAAA,QACEgG,GAAG,UACH0e,EAAE,wcACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,8PACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAGTtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,sDAAqD5S,SAAA,CAE/De,cAAA,QACEgG,GAAG,UACH0e,EAAE,qVACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,mUACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAGTtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,sDAAqD5S,SAAA,CAE/De,cAAA,QACEgG,GAAG,UACH0e,EAAE,uUACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,2QACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAGTtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,sDAAqD5S,SAAA,CAE/De,cAAA,QACEgG,GAAG,UACH0e,EAAE,2cACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,4QACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAGTtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,sDAAqD5S,SAAA,CAE/De,cAAA,QACEgG,GAAG,UACH0e,EAAE,sXACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,+SACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAGTtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,uDAAsD5S,SAAA,CAEhEe,cAAA,QACEgG,GAAG,UACH0e,EAAE,ucACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,yQACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAGTtJ,eAAA,KACEpe,GAAG,OACH6L,UAAU,4CAA2C5S,SAAA,CAErDe,cAAA,QACEgG,GAAG,UACH0e,EAAE,iXACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,sSACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,YAGT1tB,cAAA,QACEgG,GAAG,UACH0e,EAAE,8LACF4tF,cAAc,SACdF,YAAY,MACZ1kF,KAAK,qBAKbtJ,eAAA,KAAGpe,GAAG,KAAK6L,UAAU,kBAAiB5S,SAAA,CACpCe,cAAA,QACEgG,GAAG,aACHiD,MAAO,CAAEma,MAAO,WAChBsB,EAAE,6RACFgJ,KAAK,6BAEP1tB,cAAA,QACEgG,GAAG,aACHiD,MAAO,CAAEma,MAAO,WAChBsB,EAAE,sUACFgJ,KAAK,6BAEP1tB,cAAA,QACEgG,GAAG,WACH6L,UAAU,oBACVwgG,SAAS,qBACTb,GAAG,KACHhtF,OAAO,MACPze,OAAO,mBACPwe,MAAM,MACN4tF,OAAO,OACPnpG,EAAE,IACFG,EAAE,IACFipG,YAAY,KACZ1kF,KAAK,iBAIP,EC+DK6kF,OAtrB0BvzG,IACvC,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEolB,eAAA,OACEC,MAAM,6BACNre,GAAG,OACHse,QAAQ,cACRjV,QAAQ,MACXkV,MAAOgJ,GAAQ,GACf/I,OAAQ+I,GAAQ,GAAGtuB,SAAA,CAEhBmlB,eAAA,QAAMpe,GAAG,QAAO/G,SAAA,CACde,cAAA,YAAUgG,GAAG,eAAesrG,cAAc,iBAAgBryG,SACxDe,cAAA,QACEgG,GAAG,WACHiD,MAAO,CAAEsoG,YAAa,IAAM7jF,KAAM,WAClC8jF,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,SAGNib,eAAA,kBAAgBpe,GAAG,uBAAsB/G,SAAA,CACvCe,cAAA,QAAMgG,GAAG,aAAaiD,MAAO,CAAEwoG,UAAW,UAAW56F,OAAQ,OAC7D7W,cAAA,QACEgG,GAAG,aACHiD,MAAO,CAAEwoG,UAAW,UAAWC,YAAa,GAC5C76F,OAAO,SAGX7W,cAAA,kBACEgG,GAAG,qBACH2rG,GAAG,SACHC,UAAU,wBACVC,cAAc,iBACdC,GAAG,SACHC,kBAAkB,4CAClBC,GAAG,SACHC,GAAG,WAELjyG,cAAA,kBACEgG,GAAG,qBACH2rG,GAAG,SACHC,UAAU,wBACVC,cAAc,iBACdC,GAAG,SACHC,kBAAkB,2CAClBC,GAAG,SACHC,GAAG,WAELjyG,cAAA,UAAQgG,GAAG,aAAY/G,SACrBe,cAAA,kBAAgBgG,GAAG,qBAAqBksG,aAAa,WAEvDlyG,cAAA,YAAUgG,GAAG,eAAesrG,cAAc,iBAAgBryG,SACxDe,cAAA,QACEgG,GAAG,WACHiD,MAAO,CAAEkpG,OAAQ,UAAWC,YAAa,GAAI1kF,KAAM,QACnD8jF,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,IACFG,EAAE,QAGNnJ,cAAA,UAAQgG,GAAG,aAAY/G,SACrBe,cAAA,kBAAgBgG,GAAG,qBAAqBksG,aAAa,eAGzD9tF,eAAA,KAAGpe,GAAG,kBAAiB/G,SAAA,CAAC,IAEtBe,cAAA,KAAGgG,GAAG,KAAK6L,UAAU,mBAAkB5S,SACrCe,cAAA,QACEgG,GAAG,SACHiD,MAAO,CACLlD,OAAQ,mBACRosG,OAAQ,UACRC,YAAa,EACb1kF,KAAM,WAER8jF,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,SAGNib,eAAA,KACEpe,GAAG,KACHqsG,SAAS,qBACTxgG,UAAU,qBAAoB5S,SAAA,CAE9Be,cAAA,QACEgG,GAAG,OACHiD,MAAO,CAAEykB,KAAM,WACf8jF,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,IACFG,EAAE,MAEJib,eAAA,KACEpe,GAAG,OACHqsG,SAAS,qBACTxgG,UAAU,sCAAqC5S,SAAA,CAE/CmlB,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVmlB,eAAA,KAAGpe,GAAG,OAAOiD,MAAO,CAAEykB,KAAM,WAAYzuB,SAAA,CACtCe,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,IACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,MACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,MACFG,EAAE,SAGNib,eAAA,KAAGpe,GAAG,OAAOiD,MAAO,CAAEykB,KAAM,WAAYzuB,SAAA,CACtCe,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,MAEJnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,MACNvb,EAAE,MACFG,EAAE,YAIRnJ,cAAA,QACEgG,GAAG,UACHiD,MAAO,CACLwb,SAAU,UACV2tF,YAAa,MACb1kF,KAAM,WAERlJ,OAAO,KACPD,MAAM,OACNvb,EAAE,IACFG,EAAE,MAEJib,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVmlB,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVmlB,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,sBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,oBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,sBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,sBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,oBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,sBACVge,OAAO,mJAGXzL,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,uBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,uBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,qBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,uBACVge,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpChJ,EAAE,gNACF7S,UAAU,uBACVge,OAAO,sJAIbzL,eAAA,KAAGpe,GAAG,OAAO6L,UAAU,kBAAiB5S,SAAA,CACtCmlB,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,mJAGXzL,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,qBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,sJAIbzL,eAAA,KAAGpe,GAAG,OAAO6L,UAAU,kBAAiB5S,SAAA,CACtCmlB,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,mJAGXzL,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,qBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,sJAIbzL,eAAA,KAAGpe,GAAG,OAAO6L,UAAU,kBAAiB5S,SAAA,CACtCmlB,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,mJAGXzL,eAAA,KAAGpe,GAAG,OAAM/G,SAAA,CACVe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,qBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,uBACV6S,EAAE,gNACFmL,OAAO,sJAIbzL,eAAA,KAAGpe,GAAG,OAAO6L,UAAU,kBAAiB5S,SAAA,CACtCe,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,oBACV6S,EAAE,gNACFmL,OAAO,gJAET7vB,cAAA,WACEgG,GAAG,aACHiD,MAAO,CAAEwb,SAAU,UAAWiJ,KAAM,WACpC7b,UAAU,sBACV6S,EAAE,gNACFmL,OAAO,4JAMjBzL,eAAA,KAAGpe,GAAG,KAAK6L,UAAU,kBAAiB5S,SAAA,CACpCe,cAAA,QACEgG,GAAG,aACH0e,EAAE,6RACFzb,MAAO,CAAEma,MAAO,UAAWsK,KAAM,8BAEnC1tB,cAAA,QACEgG,GAAG,aACH0e,EAAE,sUACFzb,MAAO,CAAEma,MAAO,UAAWsK,KAAM,8BAEnC1tB,cAAA,QACEgG,GAAG,WACHiD,MAAO,CACLlD,OAAQ,mBACRosG,OAAQ,UACRC,YAAa,GACb1kF,KAAM,QAER7b,UAAU,oBACVwgG,SAAS,qBACTb,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,IACFG,EAAE,cAIJ,EClhBKqpG,I,GAAAA,GAhK6BxzG,IAC1C,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEolB,eAAA,OACEC,MAAM,6BACNre,GAAG,OACHse,QAAQ,cACRjV,QAAQ,MACRkV,MAAOgJ,GAAQ,GACf/I,OAAQ+I,GAAQ,GAAGtuB,SAAA,CAEnBmlB,eAAA,QAAMpe,GAAG,QAAO/G,SAAA,CACde,cAAA,YAAUgG,GAAG,eAAesrG,cAAc,iBAAgBryG,SACxDe,cAAA,QACEgG,GAAG,WACHurG,YAAY,MACZC,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,KACFG,EAAE,SAGNib,eAAA,kBAAgBpe,GAAG,uBAAsB/G,SAAA,CACvCe,cAAA,QAAMgG,GAAG,aAAayrG,UAAU,UAAU56F,OAAO,MACjD7W,cAAA,QACEgG,GAAG,aACHyrG,UAAU,UACVC,YAAY,IACZ76F,OAAO,SAGX7W,cAAA,kBACEgG,GAAG,qBACHisG,GAAG,SACHL,UAAU,wBACVC,cAAc,iBACdG,GAAG,SACHD,kBAAkB,4CAClBD,GAAG,SACHH,GAAG,WAEL3xG,cAAA,kBACEgG,GAAG,qBACHisG,GAAG,SACHL,UAAU,wBACVC,cAAc,iBACdG,GAAG,SACHD,kBAAkB,2CAClBD,GAAG,SACHH,GAAG,WAEL3xG,cAAA,UAAQgG,GAAG,aAAY/G,SACrBe,cAAA,kBAAgBgG,GAAG,qBAAqBksG,aAAa,WAEvDlyG,cAAA,YAAUgG,GAAG,eAAesrG,cAAc,iBAAgBryG,SACxDe,cAAA,QACEgG,GAAG,WACHwrG,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACN4tF,OAAO,UACPnpG,EAAE,IACFG,EAAE,IACFipG,YAAY,KACZ1kF,KAAK,WAGT1tB,cAAA,UAAQgG,GAAG,aAAY/G,SACrBe,cAAA,kBAAgBgG,GAAG,qBAAqBksG,aAAa,eAGzD9tF,eAAA,KAAGpe,GAAG,kBAAiB/G,SAAA,CAAC,IAEtBe,cAAA,KAAGgG,GAAG,KAAK6L,UAAU,mBAAkB5S,SACrCe,cAAA,QACEgG,GAAG,SACHwrG,GAAG,KACHhtF,OAAO,MACPze,OAAO,mBACPwe,MAAM,MACN4tF,OAAO,UACPnpG,EAAE,KACFG,EAAE,KACFipG,YAAY,QAGhBhuF,eAAA,KACEpe,GAAG,KACH6L,UAAU,qBACVwgG,SAAS,qBAAoBpzG,SAAA,CAE7Be,cAAA,QACEgG,GAAG,OACHwrG,GAAG,KACHhtF,OAAO,MACPD,MAAM,MACNvb,EAAE,IACFG,EAAE,IACFukB,KAAK,SAEPtJ,eAAA,KAAGpe,GAAG,OAAO6L,UAAU,4CAA2C5S,SAAA,CAChEe,cAAA,QACEgG,GAAG,UACHye,SAAS,UACT5S,UAAU,4CACV2S,OAAO,SACPD,MAAM,MACNvb,EAAE,WACFG,EAAE,IACFipG,YAAY,MACZ1kF,KAAK,SAEP1tB,cAAA,QACEgG,GAAG,UACHye,SAAS,UACT5S,UAAU,0CACV2S,OAAO,SACPD,MAAM,SACNvb,EAAE,SACFG,EAAE,SACFipG,YAAY,MACZ1kF,KAAK,eAIXtJ,eAAA,KAAGpe,GAAG,KAAK6L,UAAU,kBAAiB5S,SAAA,CACpCe,cAAA,QACEgG,GAAG,aACHiD,MAAO,CAAEma,MAAO,WAChBsK,KAAK,2BACLhJ,EAAE,+RAEJ1kB,cAAA,QACEgG,GAAG,aACHiD,MAAO,CAAEma,MAAO,WAChBsK,KAAK,2BACLhJ,EAAE,wUAEJ1kB,cAAA,QACEgG,GAAG,WACH6L,UAAU,oBACVwgG,SAAS,qBACTb,GAAG,KACHhtF,OAAO,MACPze,OAAO,mBACPwe,MAAM,MACN4tF,OAAO,OACPnpG,EAAE,IACFG,EAAE,IACFipG,YAAY,KACZ1kF,KAAK,iBAIP,ECjKH,MAAM0b,GAAYrmB,KAAOC,IAAGC,QAAAC,aAAA,uNCQpB,SAASuvF,KACtB,MAAO5xB,EAAU6xB,GAAepoF,mBAA8B,UAArBqoF,KAAQ9xB,SAAuB,QAAU8xB,KAAQ9xB,WACpF,eAAEvoD,GAAmBH,KAErBy6E,EAAY,CAChB,CACE5sG,GAAI,QACJ1E,KAAMg3B,EAAe,WACrBlI,KAAMpwB,cAACuyG,GAAU,KAEnB,CACEvsG,GAAI,KACJ1E,KAAMg3B,EAAe,WACrBlI,KAAMpwB,cAACwyG,GAAa,KAEtB,CACExsG,GAAI,QACJ1E,KAAMg3B,EAAe,cACrBlI,KAAMpwB,cAACqxG,GAAc,MAWzB,OACErxG,cAAC8rB,GAAW,CAAA7sB,SACVe,cAAC49D,KAAW,CAAA3+D,SACVe,cAACkgE,KAAM,CACLC,QAAQ,2BACRn6D,GAAG,qBACH9F,MAAO2gF,EACPrxD,SAAWjoB,IAAMsrG,OAXvBH,GAFAlmF,EAa4CjlB,GAX1BkG,OAAOvN,YACzByyG,KAAQG,eAAetmF,EAAM/e,OAAOvN,OAHpCssB,KAa+C,EACzCxG,QAAQ,WAAU/mB,SAEjB2zG,EAAUltG,KAAI,CAACm7E,EAAU34E,IACxBkc,eAACg8C,KAAQ,CAAalgE,MAAO2gF,EAAS76E,GAAG/G,SAAA,CACtC4hF,EAASzwD,KACVpwB,cAAC+lB,KAAU,CAACC,QAAQ,QAAQ/c,MAAO,CAAEisC,WAAY,GAAIj2C,SAClD4hF,EAASv/E,SAHC4G,UAW3B,CCnCe6qG,OAnB6B/zG,IAC1C,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEolB,eAAA,OACEG,MAAOgJ,EACP/I,OAAQ+I,EACRjJ,QAAQ,YACRoJ,KAAK,OACLrJ,MAAM,6BAA4BplB,SAAA,CAElCe,cAAA,QAAMmJ,EAAE,KAAKH,EAAE,KAAKub,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,YAChD1tB,cAAA,QAAMmJ,EAAE,IAAIH,EAAE,KAAKub,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,YAC/C1tB,cAAA,QAAMmJ,EAAE,KAAKH,EAAE,IAAIub,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,YAC/C1tB,cAAA,QAAMmJ,EAAE,IAAIH,EAAE,IAAIub,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,cAC1C,ECGV,MAGM67E,GAAS,CACbyJ,MAJaz6F,uCAKb06F,YAAa,GACbC,OAAQ,CAAC,aACTC,UAAU,qCAADnsG,OANOuR,yCA+PH66F,OAtPSA,KACtB,MAAM,SAAEl0G,GAAaiB,KACf,kBAAEke,EAAiB,oBAAE4lB,GAAwB8C,KAC7CssE,EAAUC,eACV,eAAEh7E,GAAmBH,KAErBo7E,EAA0B,IAAIC,KAAwB,CAC1DC,KAAM,CACJC,SAAUnK,GAAOyJ,MACjBC,YAAa1J,GAAO0J,YACpBE,UAAW5J,GAAO4J,WAEpB53F,MAAO,CACLo4F,cAAe,iBACfC,wBAAwB,MAIrBhtE,EAAMitE,GAAWvpF,mBAAgB,CACtCmiE,MAAO,GACPE,SAAU,GACVvwE,MAAO,CACLqwE,MAAOn0D,EAAe,uBAAwB,CAC5CxF,MAAOwF,EAAe,gBAExBq0D,SAAUr0D,EAAe,uBAAwB,CAC/CxF,MAAOwF,EAAe,uBAIrB5c,EAAQkmE,GAAat3D,mBAAyB,CACnDmiE,MAAO,GACPE,SAAU,MAEL9uF,EAAM41C,GAAWnpB,oBAAS,IAC1B0kF,EAAcC,GAAmB3kF,oBAAS,IAC1CwpF,EAAmBC,GACxBzpF,mBAAmC,CACjC9C,MAAM,EACNonF,aAAa,EACbniB,MAAO,KAGLmkB,EAAqB,CACzBl5B,aACE13E,cAACm0C,KAAc,CAACtlC,SAAS,MAAK5P,SAC5Be,cAAC+pB,KAAU,CACT,aAAW,6BACXE,QAASA,IAAMglF,GAAiBD,GAChCniF,YAActlB,GACZA,EAAEC,iBAEJwiB,KAAK,MAAK/qB,SAET+vG,EAAehvG,cAAC8lG,KAAU,IAAM9lG,cAACg0G,KAAa,SAoCjDv2C,EACHj0D,GAAsBjC,IACrBssG,GAASI,IAAQ,IAAWA,EAAU,CAACzqG,GAAMjC,EAAEkG,OAAOvN,UACtD0hF,GAAWqyB,IAAQ,IAAWA,EAAU,CAACzqG,GAAM,MAAM,EAOnD0qG,EAAe70G,UAQnB,GAHAkI,EAAEC,iBACFD,EAAEE,kBAEE5J,EAAM,OAEV,MAAMs2G,OdrIoB90G,WAAwB,IAAD+0G,EAAAC,EACnD,MAAM/mB,QAAoB2f,GAAcrmE,EAAK6lD,OAAiB,QAAV2nB,EAAAxtE,EAAKxqB,aAAK,IAAAg4F,OAAA,EAAVA,EAAY3nB,QAAS,yBACnEc,QAAuBb,GAAkB9lD,EAAK+lD,UAAoB,QAAV0nB,EAAAztE,EAAKxqB,aAAK,IAAAi4F,OAAA,EAAVA,EAAY1nB,WAAY,yBAGtF,MAAO,CAAEp1B,QAFO+1B,EAAY/1B,SAAWg2B,EAAeh2B,QAEpC77C,OADH,IAAK4xE,EAAY5xE,UAAW6xE,EAAe7xE,QAChC,EcgIS44F,CAAe1tE,GAGhD,GAFAg7C,EAAUuyB,EAAmBz4F,QAExBy4F,EAAmB58C,QAQxB,IACE9jB,GAAQ,GACR,MAAM,MAAEg5C,EAAK,SAAEE,GAAa/lD,EAEtBjX,QAAiB1W,GAAa,CAAE2tB,KAAM6lD,EAAOE,aACnD,GAAMh9D,EAASrwB,OAAWqwB,EAAStV,cACjC9a,aAAa6a,QAAQ,QAASuV,EAASrwB,OACvCC,aAAa6a,QAAQ,gBAAiBuV,EAAStV,eAC/Cw0F,EAAal/E,EAASrwB,WACjB,CASC,IAADi1G,EATA,GACqB,0CAA1B5kF,EAAS9T,OAAOO,MAShB,MAAM,IAAIT,MAA6B,QAAxB44F,EAAC5kF,EAAS9T,OAAO5U,eAAO,IAAAstG,IAAI,IAP3CR,EAAqB,CACnBvsF,MAAM,EACNonF,aAAa,EACbhB,kBAAmBhnE,EAAK+lD,SACxBF,MAAO7lD,EAAK6lD,OAIhB,CAEAonB,EAAQ,CAAEpnB,MAAO,GAAIE,SAAU,IACjC,CAAE,MAAOvwE,GACPiC,EACE,QACAjC,EAAMnV,SAAWqxB,EAAe,qCAEpC,CAAC,QACCmb,GAAQ,EACV,MArCEp1B,EACE,QACAia,EAAe,uCAmCnB,EAGFj5B,eAAewvG,EAAavvG,GAC1B,MAAM4kC,EACJG,aAAU/kC,SACN2kC,EAAoBC,GAC1BhlC,EAAS,CAAEb,KAAM,YAAaE,KAAM,CAAEX,QAAQ,KAC9Cy1G,EAAQjrG,KAAK,IACf,CAEA,OACEgc,eAAC0H,GAAgB,CAAA7sB,SAAA,CACfe,cAAA,OAAKiJ,MAAO,CAAE2wE,aAAc,IAAK36E,SAC/Be,cAACynC,GAAS,MAEZznC,cAAC8rB,GAAe,CAAA7sB,SACdmlB,eAAA,QAAM8xB,SAAW3uC,GAAM2sG,EAAa3sG,GAAGtI,SAAA,CACrCe,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAAC8rB,GAAY,CACX9F,QAAQ,WACR2iB,MAAOrQ,EAAe,cACtBp4B,MAAO0mC,EAAK6lD,MACZrwE,QAASV,EAAO+wE,MAChB1jD,WAAYrtB,EAAO+wE,MACnB/iE,WAAS,EACT8F,SAAUiuC,EAAkB,aAGhCz9D,cAAC8rB,GAAgB,CAAA7sB,SACfe,cAAC8rB,GAAe,CACd9F,QAAQ,WACR2iB,MAAOrQ,EAAe,iBACtBp4B,MAAO0mC,EAAK+lD,SACZvwE,QAASV,EAAOixE,SAChB5jD,WAAYrtB,EAAOixE,SACnBtuF,KAAM2wG,EAAe,OAAS,WAC9BtlF,WAAS,EACT8F,SAAUiuC,EAAkB,YAC5BxpB,WAAY28D,MAGhB5wG,cAAC8rB,GAAgB,CAAA7sB,SACfmlB,eAAC0H,GAAa,CACZ9F,QAAQ,YACR5C,MAAM,UACNsG,WAAS,EACTO,QAAU1iB,GAAM2sG,EAAa3sG,GAC7BlJ,KAAK,SAAQY,SAAA,CAEZq5B,EAAe,SACfz6B,GACCmC,cAAC4uC,KAAgB,CACfxrB,MAAM,UACNmK,KAAM,GACNtkB,MAAO,CAAEisC,WAAY,eAK7Bl1C,cAAC8rB,GAAyB,CAAA7sB,SACxBmlB,eAAC0H,GAAsB,CAACztB,KAAK,SAAS4rB,QAxJ1B5qB,UACpB,IACE,MAKMC,SALiBi0G,EAAwBiB,WAAW,CACxDtB,OAAQ3J,GAAO2J,OACfuB,OAAQ,oBAGaC,YAEvB,GAAMp1G,EAAO,CACX,MAAMq1G,QAA6B17F,GAAa,CAAE3Z,UAW1C,IAADs1G,EAVP,IACID,EAAqBr1G,QACrBq1G,EAAqBt6F,cASvB,MAAM,IAAIsB,MAAyC,QAApCi5F,EAACD,EAAqB94F,OAAO5U,eAAO,IAAA2tG,IAAI,IAPvDr1G,aAAa6a,QAAQ,QAASu6F,EAAqBr1G,OACnDC,aAAa6a,QACX,gBACAu6F,EAAqBt6F,eAEvBw0F,EAAa8F,EAAqBr1G,OAAOk9F,SAI7C,CACF,CAAE,MAAOj1F,GACPyD,QAAQC,IAAI,OAAQ1D,EACtB,GA6HqEtI,SAAA,CAC3De,cAAC+yG,GAAa,CAACxlF,KAAK,OACpBnJ,eAAA,QAAAnlB,SAAA,CAAOq5B,EAAe,cAAc,qBAGxCt4B,cAAC8rB,GAAgB,CAAA7sB,SACfmlB,eAAC2B,KAAU,CAAA9mB,SAAA,CACRq5B,EAAe,gBAChBt4B,cAAA,QACAA,cAAC8rB,GAAmB,CAACztB,KAAK,SAAS4rB,QA7HlB4qF,KAC3Bd,EAAqB,CAAEvsF,MAAM,EAAMonF,aAAa,EAAOniB,MAAO7lD,EAAK6lD,OAAQ,EA4HAxtF,SAC9Dq5B,EAAe,mCAOzBw7E,EAAkBtsF,MACjBxnB,cAAC2uG,GAAkB,CACjBnnF,KAAMssF,EAAkBtsF,KACxBonF,YAAakF,EAAkBlF,YAC/BhB,kBAAmBkG,EAAkBlG,mBAAqB,GAC1DnhB,MAAOqnB,EAAkBrnB,MACzB7iE,QAASA,IACPmqF,EAAqB,CAAEvsF,MAAM,EAAOonF,aAAa,EAAOniB,MAAO,KAEjEoiB,aAAevvG,GAAUuvG,EAAavvG,KAG1CU,cAACyyG,GAAc,MACE,ECtORqC,OArCqC91G,IAClD,MAAM,UAAE+1G,EAAS,KAAEpzE,EAAI,MAAEqzE,GAAUh2G,GAC7B,MAAEb,GAAUgC,KACZ,QAAEgI,GAAYmrG,cAEd2B,EAAiBttF,uBACpButF,IACC,IAAIC,EAAaxzE,EASjB,OANyBwzE,EADrBh3G,EAAMP,OACK,WAAT+jC,EAAgC,IAClBA,EAEL,SAGRwzE,CAAU,GAEnB,CAACxzE,EAAMxjC,EAAMP,SAUf,OAPAwB,qBAAU,KACR,IAAI+1G,EAAaF,EAAetzE,GAEhCx5B,EAAQgtG,EAAW,GAClB,CAACxzE,EAAMx5B,EACR8sG,IAGAj1G,cAACo1G,IAAK,CACJzzE,KAAMszE,EAAetzE,GACrBqzE,MAAOA,EACPp1E,OAASy1E,GAAqCr1G,cAAC+0G,EAAS,IAAKM,KAC7D,EC5BSC,OARUA,IACvBlxF,eAACk8C,IAAM,CAAArhE,SAAA,CACLe,cAAC80G,GAAY,CAACnzE,KAAK,IAAIozE,UAAWx7D,GAAMy7D,OAAK,IAC7Ch1G,cAAC80G,GAAY,CAACnzE,KAAK,SAASozE,UAAW3B,GAAO4B,OAAK,IACnDh1G,cAAC80G,GAAY,CAACnzE,KAAK,YAAYozE,UAAWtgE,GAAUugE,OAAK,OCkC9CO,I,GAAAA,GAtC0Bv2G,IACvC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,KACEqkB,MAAM,6BACNre,GAAG,aACH,YAAU,aAAY/G,SAEtBe,cAAA,QACEgG,GAAG,eACH,YAAU,eACV0e,EAAE,gBACFgJ,KAAK,WAGT1tB,cAAA,KACEqkB,MAAM,6BACNre,GAAG,aACH,YAAU,aAAY/G,SAEtBe,cAAA,QACEgG,GAAG,eACH,YAAU,eACV0e,EAAE,4HACFgJ,KAAK,gBAGL,E,mHCzCK,g2OCER,MAAM8nF,GAAgBzyF,KAAOC,IAAGC,QAAAC,aAAA,6RCmBxB,SAASuyF,GAAUz2G,GAChC,MAAM,MAAEb,EAAK,kBAAEkgB,GAAsB0oB,MAC9B2uE,EAAsBC,GAC3BrvF,IAAMgE,SAA6B,OAC/B,aAAEsrF,EAAY,aAAEC,EAAY,qBAAEC,EAAoB,YAAEC,GACxD/2G,GACI,eAAEs5B,GAAmBH,KAErB69E,EAAkBjvG,IACtB,GAAIA,EACF,IACE,MAAMkvG,EAAW,IAAI5lE,IAAItpC,GACzBpH,OAAO6nB,KAAKyuF,EAAU,SACxB,CAAE,MAAOzgG,GAEP,OADA6I,EAAkB,QAASia,EAAe,4BACnC,CACT,CACF,EAUF,OANEn6B,EAAM4hB,SAASG,YACf/hB,EAAM4hB,SAASI,aACfhiB,EAAM4hB,SAASK,YACfjiB,EAAM4hB,SAASE,aACf9hB,EAAM4hB,SAASC,YAKfhgB,cAACk2G,KAAI,CACHlwG,GAAG,YACHmwG,cAAe,CACb,kBAAmB,eAErBhrF,SAAUyqF,EACVpuF,KAAMquF,EACNjsF,QAASksF,EACT7mF,WAAY,CACVhmB,MAAO,CACLkhB,UAAW,OACX+qB,WAAY,OACZpxB,WAAY,qBACZS,MAAO,UAETtlB,SAEFmlB,eAACoxF,GAAa,CAAAv2G,SAAA,CACZmlB,eAAC2F,KAAU,CACTkC,UAAW9tB,EAAM4hB,SAASG,WAC1B,aAAW,cACX+J,QAASA,KACP,GAAKyrF,EAOHA,EAAqBn3E,aACnB,MACApgC,EAAM4hB,SAASG,WAAa,QATL,CACzB,MAAMk2F,EAAStuG,SAASa,eAAe,kBACnCytG,IACFA,EAAO73E,aAAa,MAAOpgC,EAAM4hB,SAASG,WAAa,IACvDy1F,EAAwBS,GAE5B,CAMAN,IACAC,GAAa,EACb92G,SAAA,CAEFe,cAAA,OAAK0qB,IAAK2rF,GAAaptG,MAAO,CAAEsb,MAAO,QAAUilE,IAAI,gBACrDxpF,cAAC+lB,KAAU,CAAA9mB,SAAC,eAGdmlB,eAAC2F,KAAU,CACTkC,UAAW9tB,EAAM4hB,SAASE,YAC1B,aAAW,cACXgK,QAASA,IAAM+rF,EAAe73G,EAAM4hB,SAASE,aAAahhB,SAAA,CAE1De,cAACs2G,KAAY,IACbt2G,cAAC+lB,KAAU,CAACC,QAAQ,YAAW/mB,SAAC,gBAGlCmlB,eAAC2F,KAAU,CACTkC,UAAW9tB,EAAM4hB,SAASC,YAC1B,aAAW,cACXiK,QAASA,IAAM+rF,EAAe73G,EAAM4hB,SAASC,aAAa/gB,SAAA,CAE1De,cAACu2G,KAAY,IACbv2G,cAAC+lB,KAAU,CAACC,QAAQ,YAAW/mB,SAAC,gBAElCmlB,eAAC2F,KAAU,CACTkC,UAAU,EACV,aAAW,cACXhC,QAASA,IAAM+rF,EAAe73G,EAAM4hB,SAASK,YAAYnhB,SAAA,CAEzDe,cAACw2G,KAAW,IACZx2G,cAAC+lB,KAAU,CAACC,QAAQ,YAAW/mB,SAAC,eAElCmlB,eAAC2F,KAAU,CACTkC,UAAU,EACV,aAAW,cACXhC,QAASA,IAAM+rF,EAAe73G,EAAM4hB,SAASI,aAAalhB,SAAA,CAE1De,cAACy2G,KAAY,IACbz2G,cAAC+lB,KAAU,CAACC,QAAQ,YAAW/mB,SAAC,iBAElCmlB,eAAC2F,KAAU,CACTkC,UAAU,EACV,aAAW,cACXhC,QAASA,IAAM+rF,EAAe73G,EAAM4hB,SAASI,aAAalhB,SAAA,CAE1De,cAAC02G,KAAS,IACV12G,cAAC+lB,KAAU,CAACC,QAAQ,YAAW/mB,SAAC,gBApFlBe,cAAAysB,WAAA,GAyFxB,C,gBCvIO,MAAM2c,GAAYrmB,KAAOC,IAAGC,QAAAC,aAAA,qdA8BtBkoB,GAAkBroB,KAAO4zF,OAAMrzF,QAAAJ,aAAA,sIAW/B0zF,GAAe7zF,KAAOC,IAAGQ,QAAAN,aAAA,0FAOzB2zF,GAAS9zF,KAAOqzF,OAAM1yF,QAAAR,aAAA,kFCWpB4zF,I,wBAAAA,GAjDwBxvF,IAA4B,IAA3B,IAAEvgB,EAAG,aAAEgwG,GAAczvF,EAC3D,MAAM0vF,EAAUj8E,iBAAO,OAChBlsB,EAAUooG,GAAe3sF,mBAC9BllB,KAAKw2B,MACHr8B,aAAaC,QAAQ,oBACnB4F,KAAKC,UAAU,CACb8D,EAAGxJ,OAAOgoC,OAAOpjB,MAAQ,IAAM,IAC/Bvb,EAAGrJ,OAAOgoC,OAAOnjB,OAAS,EAAI,QAmBtC,OACExkB,cAAC4iG,KAAS,CACRsU,OAAQA,CAAC1hG,EAAGjX,IAhBhB,SAAwBA,GACtBgB,aAAa6a,QACX,kBACAhV,KAAKC,UAAU,CACb8D,EAAG5K,EAAK44G,MACRnuG,EAAGzK,EAAK64G,SAGZH,EAAY,CACV9tG,EAAG5K,EAAK44G,MACRnuG,EAAGzK,EAAK64G,OAEZ,CAIyBC,CAAe94G,GACpCskG,gBAAiBh0F,EACjBmoG,QAASA,EACZM,OAAQ,OAAOr4G,SAEZmlB,eAAC0H,GAAW,CAACtF,IAAKwwF,EAAQ/3G,SAAA,CACxBe,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC8rB,GAAc,MAEjB9rB,cAAC+pB,KAAU,CAACE,QAASA,IAAM8sF,IAAe93G,SACxCe,cAACkqB,KAAS,CAACovD,UAAU,WAEvBt5E,cAAC8rB,GAAQ,CAACvd,MAAM,UAAUvI,GAAG,iBAAiB0kB,IAAK3jB,EAAKwwG,MAAM,sBAC9Dv3G,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC8rB,GAAc,UAGT,ECzDD,I,QAAA,IAA0B,4CCKV/I,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mLAQrBlkB,GACnBA,EAAMq2E,YAAW,IAAAruE,OAAOhI,EAAMq2E,aAAgB,YAT7C,MAcMmiC,GAAiBz0F,aAAO2C,KAAP3C,CAAYO,QAAAJ,aAAA,8GAO7B8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,6BAqCWkmB,IAjCcrmB,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BW,QAAAR,aAAA,mDAKxBH,KAAOC,IAAGoC,QAAAlC,aAAA,iJAUTH,KAAOC,IAAGsC,QAAApC,aAAA,kKAWdH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4ByC,QAAAtC,aAAA,uGAO/BH,KAAOC,IAAG6C,QAAA3C,aAAA,iHAQtB4xB,GAAYC,cAAW,IAClCC,aAAa,CACXke,KAAM,CACJ9jC,WAAY,SACZc,gBAAiB,UACjBhB,QAAS,qBACT8mD,SAAU,SAEZyhC,IAAK,CACH9tF,SAAU,IACV2rD,UAAW,IACXplB,aAAc,MACd1rC,OAAQ,IACRD,MAAO,S,6BCnFN,MAAM6kB,GAAYrmB,KAAOC,IAAGC,QAAAC,aAAA,iFAMtB4xB,GAAYC,cAAW,IAClCC,aAAa,CACX0iE,SAAU,CACRvoF,QAAS,OACTC,WAAY,SACZC,cAAe,SACfs5E,cAAe,OACfz4E,gBAAiB,WAEnBynF,UAAW,CACTpzF,MAAO,MACP2K,QAAS,QAEX0oF,YAAa,CACXx0F,MAAO,UACP8M,gBAAiB,UACjB1L,OAAQ,OACR0rC,aAAc,OAEhB2nD,cAAe,CACbz0F,MAAO,UACP4J,SAAU,cClBD3tB,eAAey4G,GAAgBj7F,EAAiB3d,GAC7D,IAAK2d,EAAS,OACd,MAAMk7F,QAAyBv7F,GAAS,CAAED,SAAUM,GAAW3d,GACzD84G,QAAyBjqE,GAAY,CAAExxB,SAAUM,GAAW3d,GAC5D+4G,QAA2BluB,GAAQltE,EAAS3d,GAClD,GACE64G,EAAiB77F,SACjB87F,EAAiB97F,SACjB+7F,EAAmB/7F,QACnB,CACA,IAAIsE,EAAwB,GACxBiqE,EAAoB,GACxBjqE,EAASu3F,EAAiBh8F,KAAKxd,KAAKiiB,OAEpC,MAAM03F,EAAkC,GAExC13F,EAAO9a,KAAK2vB,IACV6iF,EAAgB9vG,KAAK,CACnBiV,UAAWgY,EAAMnY,WACjB2e,OAAQxG,EAAMwG,SAETq8E,KAGLD,EAAmBl8F,KAAKxd,OAC1BksF,EAAawtB,EAAmBl8F,KAAKxd,KAAK6L,MAW5C,MAPqB,CACnByS,UACA6qB,SAJeswE,EAAiBj8F,KAKhC0uE,aACAjqE,OAAQ03F,EAIZ,CACF,CC7CA,IAAIn8C,GAAc,EAElB,MAIMo8C,GACJ,wFAaIC,GAAaA,CAAC75G,EAAampC,EAAqB2wE,KACpD,MAAMx8E,EAASt9B,EAAKoN,SAASA,SAASE,KAAKtN,KACrC+5G,EAAYz8E,EACZhf,EAAUte,EAAKoV,IACfsyB,EAAapjC,OAAOuH,KAAKyxB,GAC/BkgC,GAAcn2D,OAAOqgC,EAAWA,EAAWphC,OAAS,IAEpDhC,OAAOuH,KAAKkuG,GAAWhuG,SAAQ,SAAUL,GACvC,MAAMsuG,EAAW18E,EAAOj2B,OAAOqE,IACzBuuG,EAAYD,EAASh6G,KAC3B,IAAIk6G,EAAc,EAClB,GAAID,GAEA,CACEh4G,EAAY0C,aACZ1C,EAAYiE,SACZjE,EAAY2C,YACZ3C,EAAY6C,aACZ7C,EAAYyC,eACZzC,EAAYyD,SACZzD,EAAYgxB,OACZhxB,EAAY0O,IACZ1O,EAAYkxB,QACZlxB,EAAY6D,cACZ7D,EAAYS,WACZV,SAASi4G,EAAUl4G,YACrB,CACA,GAAIi4G,EAAS12G,QAAS,CACpB,MAAM62G,EAAeH,EAAS12G,QAC1B62G,EAAa57D,UAEb47D,EAAa57D,SAASzyC,aACtBquG,EAAa57D,SAASzyC,YAAY,IAClCquG,EAAa57D,SAASzyC,YAAY,GAAGI,OAErCguG,EAAcC,EAAa57D,SAASzyC,YAAY,GAAGI,KAGzD,CACAkuG,GACE97F,EACAgf,EACA08E,EACAE,EACA18C,GACAr0B,EACA2wE,EAEJ,CAEJ,GAAE,EAGEM,GAAeA,CACnB97F,EACAgf,EACA5xB,EACA2uG,EACAC,EACAnxE,EACA2wE,KACI,IAADS,EAAAC,EAAAC,EAAAC,EACH,OAAQrzG,OAAOqE,EAAM1L,KAAK+B,aACxB,KAAKE,EAAYyC,eACf,MAAMi2G,EAA8B,CAAC,EAEE,IAADC,EAAAC,EAAtC,GAAInvG,EAAM1L,MAAQ0L,EAAM1L,KAAKsD,QAC3Bq3G,EAA4B53G,KAC1B2I,EAAM1L,KAAKsD,SAAkB,QAAVs3G,EAAAlvG,EAAM1L,YAAI,IAAA46G,OAAA,EAAVA,EAAYt3G,QAAQgD,QAAS,GAAGoM,YACnDhH,EAAM1L,KAAK+C,KAEb43G,EAA4BlzG,GAC1BJ,OAAOqE,EAAM1L,KAAKsD,SAAkB,QAAVu3G,EAAAnvG,EAAM1L,YAAI,IAAA66G,OAAA,EAAVA,EAAYv3G,QAAQgD,QAAS,GAAGgB,WAC1D,EAGJ,MAAMwzG,EAAa,CACjBrzG,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPnP,OAAQ,CAAEgF,UAAW,CAAC,CAAEE,UAAW,CAAC,OACpCxG,WAAY,EACZmB,QAASwI,EAAM1L,KAAKkD,QACpBH,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,YAG5By6D,GAAc88C,EAAY,EAC1Bh9E,EAAOkgC,IAAes9C,EAEtB,MAAMC,EAAa,CACjBtzG,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPzQ,WAAY,IACZmB,QAASwI,EAAM1L,KAAKkD,QACpBH,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,aAM5B,GAHAy6D,GAAc88C,EAAY,EAC1Bh9E,EAAOkgC,IAAeu9C,EAGpBrvG,EAAM1L,KAAKwD,aACXkI,EAAM1L,KAAKqD,QACXqI,EAAM1L,KAAKqD,OAAOgF,UAAU,GAC5B,CAAC,IAAD2yG,EACAtvG,EAAM1L,KAAKwD,YAAY+O,QAAO,GAC9B7G,EAAM1L,KAAKwD,YAAYiP,gBAAe,UAAAhK,OAAaiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIqyG,EAAW96G,KAAK+C,KAAI,SAE7F,MAAMwF,EAAYmD,EAAM1L,KAAKqD,OAAOgF,UAAU,GAAGE,UAC9Cf,QAAQm5B,GAAY,KAANA,IACdx5B,KAAKw5B,GAAMA,EAAE6G,WAAW,KAAM,OAAOA,WAAW,KAAM,QAEnDyzE,GACe,QAAnBD,EAAAtvG,EAAM1L,KAAKkE,gBAAQ,IAAA82G,OAAA,EAAnBA,EACIxzE,WAAW,QAAS,IACrBA,WAAW,QAAS,MAAO,GAE5BszE,EAAW96G,KAAKqD,SAClBy3G,EAAW96G,KAAKqD,OAAOgF,UAAU,GAAK,CACpCtF,KAAK,GAAD0F,OAAKwyG,GACT1yG,YACAsR,UAAU,EACV6+C,QAAS,WACT6I,aAAc,GACdC,QAAQ,EACR7/D,MAAM,IAAD8G,OAAMwyG,IAGjB,CAEA,GAAIF,EAAW/6G,KAAKwD,YAAa,CAC/B,MAAM03G,EAA6B,IAAbb,EAAiBA,EAAW3uG,EAAMjE,GAExDszG,EAAW/6G,KAAKwD,YAAYiP,gBAAe,+GAM3CsoG,EAAW/6G,KAAKwD,YAAYiP,iBAAmB0oG,GAC7C79E,EACA5xB,EACAovG,EACAI,EACAP,EAA4B53G,MAG9Bg4G,EAAW/6G,KAAKwD,YAAYiP,gBAC1BsoG,EAAW/6G,KAAKwD,YAAYiP,gBAAgB+0B,WAAW,KAAM,GACjE,CAEAszE,EAAW96G,KAAKwD,YAAc,CAC5B8O,YAAa,EACbC,QAAS,GACTC,IAAK,GACLC,gBAAgB,UAADhK,OAAYiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIsyG,EAAW/6G,KAAK+C,KAAI,OAGvEu6B,EAAOkgC,IAAeu9C,EACtB,MAEF,KAAK94G,EAAY0C,aACf,MAAMy2G,EAAgB,CAAC,EACjBjvG,EAAmBmxB,EAAO+8E,GAC1BgB,EAAuBlvG,EACzBA,EAAiBnM,KAAK+C,KACtB,GAEEu4G,GACe,QAAnBf,EAAA7uG,EAAM1L,KAAKmD,gBAAQ,IAAAo3G,OAAA,EAAnBA,EAAqBv+B,0BAA2B,GAEX,IAADu/B,EAAAC,EAAtC,GAAI9vG,EAAM1L,MAAQ0L,EAAM1L,KAAKsD,QAC3B83G,EAAcr4G,KACZ2I,EAAM1L,KAAKsD,SAAkB,QAAVi4G,EAAA7vG,EAAM1L,YAAI,IAAAu7G,OAAA,EAAVA,EAAYj4G,QAAQgD,QAAS,GAAGoM,YACnDhH,EAAM1L,KAAK+C,KAEbq4G,EAAc3zG,GACZJ,OAAOqE,EAAM1L,KAAKsD,SAAkB,QAAVk4G,EAAA9vG,EAAM1L,YAAI,IAAAw7G,OAAA,EAAVA,EAAYl4G,QAAQgD,QAAS,GAAGgB,WAC1D,EAGJ,GAAIoE,EAAM1L,KAAKwD,YAAa,CAC1B,MAAMs3G,EAAa,CACjBrzG,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPnP,OAAQ,CAAEgF,UAAW,CAAC,CAAEE,UAAW,CAAC,QACpCxG,WAAY,EACZmB,QAASwI,EAAM1L,KAAKkD,QACpBH,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,YAc5B,GAVAu6B,EAAOg9E,EAAY,GAAKQ,EACxBt9C,GAAc88C,EAAY,EAE1B5uG,EAAM1L,KAAKwD,YAAc,CACvB8O,YAAa,EACbC,QAAS,GACTC,IAAK,GACLC,gBAAgB,UAADhK,OAAYqyG,EAAW96G,KAAKkD,QAAO,KAAAuF,OAAIqyG,EAAW96G,KAAK+C,KAAI,QAGxE+3G,EAAW96G,KAAKqD,QACdqI,EAAM1L,KAAKkE,SAAU,CACvB,MAAMu3G,EAAgB/vG,EAAM1L,KAAKkE,UAAY,WACvC+2G,GACS,OAAbQ,QAAa,IAAbA,OAAa,EAAbA,EAAej0E,WAAW,QAAS,IAAIA,WAAW,QAAS,MAC3D,GAEFszE,EAAW96G,KAAKqD,OAAS,CACvBgF,UAAW,CACT,CACEtF,KAAK,GAAD0F,OAAKwyG,GACT1yG,UAAW,CAAC,KACZsR,UAAU,EACV6+C,QAAS,WACT6I,aAAc,GACdC,QAAQ,EACR7/D,MAAM,IAAD8G,OAAMwyG,MAKbH,EAAW96G,KAAKwD,cAClBs3G,EAAW96G,KAAKwD,YAAYiP,gBAAe,+OAAAhK,OAnQtCuR,iCAyQgC,wCAAAvR,OAC/B6V,EAAO,oLAAA7V,OAzQLuR,uCA8QkB,oKAAAvR,OAM5BgzG,EAAa,iDAAAhzG,OACNiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAI4yG,EAAoB,iHAAA5yG,OAGjDizG,GACUJ,EACA5vG,EAAM1L,KAAKkD,QACXk4G,EAAcr4G,MAAQ,IACvB,6HAAA0F,OAIVizG,GACSJ,EACA5vG,EAAM1L,KAAKkD,QACXk4G,EAAcr4G,MAAQ,IACvB,uCAIL+3G,EAAW96G,KAAKwD,YAAYiP,gBAC1BqoG,EAAW96G,KAAKwD,YAAYiP,gBAAgB+0B,WAC1C,KACA,IAGR,CAEJ,CACA,MAEF,KAAKvlC,EAAY6C,aACf,MAAM62G,EAAoB,CACxBl0G,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPzQ,WAAY,EACZuB,QAAS,CAAC,CAAE0M,MAAO,GAAI0C,WAAY,KACnCxP,QAASwI,EAAM1L,KAAKkD,QACpBH,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,YAO5B,GAHAy6D,GAAc88C,EAAY,EAC1Bh9E,EAAOg9E,EAAY,GAAKqB,EAEpBjwG,EAAM1L,KAAKsD,QAAS,CAAC,IAADs4G,EAAAC,EACtB,MAAMC,EAAepwG,EAAM1L,KAAKsD,QAAQoI,EAAM1L,KAAKsD,QAAQgD,OAAS,GAEpE,IAAIy1G,EAAe,GACnB,MAAMC,EAAsB,GACV,QAAlBJ,EAAAlwG,EAAM1L,KAAKsD,eAAO,IAAAs4G,GAAlBA,EAAoB7vG,SAAS3E,IAAY,IAAD60G,EACtC,OAAOD,EAAanyG,KACE,QADEoyG,EACtB70G,EAAOiL,qBAAa,IAAA4pG,OAAA,EAApBA,EAAsBz0G,QAAQozE,GAAY,KAANA,IACrC,IAGHohC,EAAajwG,SAASmwG,IAChBA,GACFA,EAAKnwG,SAAQ,CAAC6uE,EAAWjxE,KACvB,GAA0B,MAAtBixE,EAAEhmE,UAAU,EAAG,GAAY,CAC7B,MAAMunG,EAAchzE,EAAS98B,MAAMrD,GAAM,IAAAP,OAAIO,EAAEjG,QAAW63E,IACtDuhC,GACFA,EAAYt8E,OAAO,GAAG0J,SAASx9B,SAASqkC,IACtC8rE,EAAKryG,KAAKumC,EAAE,IAGhB8rE,EAAKtuG,OAAOjE,EAAO,EACrB,IAEJ,IAGF,MAAMmlB,EAAMktF,EAAax0G,QAAQsnB,KACzBA,GAAYA,EAAIxoB,OAAS,IAIjC,IAAImM,EAAe,2PAAAhK,OAQfmxG,GAAa,6FAAAnxG,OAEJ5B,KAAKC,UAAUgoB,GAAI,+CAAArmB,OA/WR,GAgXsB,+DAK9C,GAAIiD,EAAM1L,KAAKsD,QAAS,CAAC,IAAD84G,EACtB,IAAIC,EAAM,GAEV,MAAM/4G,EAAUoI,EAAM1L,KAAKsD,QACrBg5G,EAAqB5wG,EAAM1L,KAAKmE,aAAY,GAAAsE,OAC3CiD,EAAM1L,KAAKkE,SAAQ,4BACtB,GAEEq4G,EAA4BD,EAAkB,+BAAA7zG,OACjB6zG,EAAkB,MACjD,GAEJP,EAAY,8BAAAtzG,OACb8zG,EAAyB,8DAIxBj5G,EAAQyI,SAAS3E,IACM,KAAjBA,EAAO4I,OAAiC,WAAjB5I,EAAO4I,QACN,KAAtB5I,EAAOsL,aACT2pG,EAAG,UAAA5zG,OAAaiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIrB,EAAOsL,WAAU,QAEzDqpG,GAAY,yBAAAtzG,OACXrB,EAAO4I,MAAK,wBAAAvH,OACjB4zG,EAAG,+CAIDA,EAAM,EAAE,IAEVN,GAAY,mCAAAtzG,OAEfizG,IACwB,QAAnBU,EAAA1wG,EAAM1L,KAAKmD,gBAAQ,IAAAi5G,OAAA,EAAnBA,EAAqBpgC,0BAA2B,GAChDtwE,EAAM1L,KAAKkD,QACX44G,EAAappG,YAAc,IAC5B,kKAAAjK,OAIGiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIiD,EAAM1L,KAAK+C,KAAI,6BAG3C,CAEA0P,GAAmBspG,EAEnB,MAAMS,EAAgC,QAArBX,EAAGnwG,EAAM1L,KAAKsD,eAAO,IAAAu4G,OAAA,EAAlBA,EAChB10G,KAAKC,GAAYA,EAAOm1D,OAASn1D,EAAO4I,MAAQ,KACjDxI,QAAQ6N,GAAkB,WAATA,GAA8B,KAATA,IAEzC,IAAIonG,EAAc,IAEP,OAAXD,QAAW,IAAXA,KAAazwG,SAAQ,CAAC2wG,EAAM/yG,KAC1B8yG,GAAW,IAAAh0G,OAAQi0G,EAAI,KACnB/yG,EAAQ6yG,EAAYl2G,OAAS,IAC/Bm2G,GAAe,IACjB,IAGFA,GAAe,IAEf,MAAME,EACY,OAAhBF,EAAoB,OAAAh0G,OAAUg0G,EAAW,iBAAkB,GAE7D/wG,EAAM1L,KAAKwD,YAAc,CACvB8O,YAAa,EACbG,gBAAgB,wCAADhK,OACOiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIkzG,EAAkB37G,KAAK+C,KAAI,oBAAA0F,OACzEk0G,EAAU,gBAERpqG,QAAS,GACTC,IAAK,IAGPmpG,EAAkB37G,KAAKwD,YAAc,CACnC8O,YAAa,EACbG,gBAAiBA,EAAgB+0B,WAAW,KAAM,IAClDj1B,QAAS,GACTC,IAAK,GAET,CACA,MAEF,KAAKvQ,EAAYiE,SACf,MAAM02G,EAAiB,CACrBn1G,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPzQ,WAAY,IACZmB,QAASwI,EAAM1L,KAAKkD,QACpBH,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,aAI5By6D,GAAc88C,EAAY,EAC1Bh9E,EAAOg9E,EAAY,GAAKsC,EAExB,MAAMC,EAAiB,CACrBp1G,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPzQ,WAAY,IACZmB,QAASwI,EAAM1L,KAAKkD,QACpBH,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,YAI5By6D,GAAc88C,EAAY,EAC1Bh9E,EAAOg9E,EAAY,GAAKuC,EAExB,MAAM3lD,EAA0B,QAArBsjD,EAAG9uG,EAAM1L,KAAKsD,eAAO,IAAAk3G,OAAA,EAAlBA,EACVrzG,KAAKC,IACE,CACL4I,MAAO5I,EAAO4I,MACdhN,YAAaoE,EAAOpE,aAAe,IACnC85G,MAAOz1G,OAAOD,EAAOzF,OACrBo7G,MAAO31G,EAAOoB,QAGjBhB,QAAQ6N,GAAwB,WAAfA,EAAKrF,QAEzB,GAAItE,EAAM1L,KAAKsD,QAAS,CAAC,IAAD05G,EAAAC,EAAAC,EAAAC,EACtB,MAAMrB,EAAepwG,EAAM1L,KAAKsD,QAAQoI,EAAM1L,KAAKsD,QAAQgD,OAAS,GAC9D82G,EAAyC,IAAxB1xG,EAAM1L,KAAKyD,SAAiB,WAAa,OAC1D45G,EAAmBx2G,KAAKC,UAAUowD,GAEpC0lD,EAAe58G,KAAKwD,cACtBo5G,EAAe58G,KAAKwD,YAAYiP,gBAAe,qBAAAhK,OAC3C40G,EAAgB,sGAAA50G,OAEX20G,EAAc,yxBAAA30G,OAgBJiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIo0G,EAAe78G,KAAK+C,KAAI,eAGnE,MAAMu6G,GACe,QAAnBN,EAAAtxG,EAAM1L,KAAKmD,gBAAQ,IAAA65G,OAAA,EAAnBA,EAAqBhhC,0BAA2B,GAElD,IAAI+/B,EAAe,GACnB,MAAMC,EAAsB,GACV,QAAlBiB,EAAAvxG,EAAM1L,KAAKsD,eAAO,IAAA25G,GAAlBA,EAAoBlxG,SAAQ,CAAC3E,EAAQuC,KAAW,IAAD4zG,EAAAC,EAAAC,EAO7C,OANuC,QAAvBF,EAAGn2G,EAAOiL,qBAAa,IAAAkrG,OAAA,EAApBA,EAAsBlxG,MACtCuuE,GAAMA,KAAOjxE,EAAQ,GAAGgJ,eAGU,QAApB6qG,EAAAp2G,EAAOiL,qBAAa,IAAAmrG,GAApBA,EAAsB3zG,KAAK,GAADpB,OAAIkB,EAAQ,IAEhDqyG,EAAanyG,KACE,QADE4zG,EACtBr2G,EAAOiL,qBAAa,IAAAorG,OAAA,EAApBA,EAAsBj2G,QAAQozE,GAAY,KAANA,IACrC,IAGH,MAAM9rD,EAAMktF,EAAax0G,QAAQsnB,KACzBA,GAAYA,EAAIxoB,OAAS,IAIjC,IAAImM,EAAe,0PAAAhK,OAQfmxG,GAAa,6FAAAnxG,OAEJ5B,KAAKC,UAAUgoB,GAAI,+CAAArmB,OArjBR,GAsjBsB,iEAK9C,GAAIiD,EAAM1L,KAAKsD,QAAS,CACtB,IAAI+4G,EAAM,GAEV,MAAM/4G,EAAUoI,EAAM1L,KAAKsD,QACrBg5G,EAAqB5wG,EAAM1L,KAAKmE,aAAY,GAAAsE,OAC3CiD,EAAM1L,KAAKkE,SAAQ,4BACtB,GAEEq4G,EAA4BD,EAAkB,+BAAA7zG,OACjB6zG,EAAkB,MACjD,GAEJP,EAAY,8BAAAtzG,OACb8zG,EAAyB,8DAIxBj5G,EAAQyI,SAAS3E,IACM,KAAjBA,EAAO4I,OAAiC,WAAjB5I,EAAO4I,QACN,KAAtB5I,EAAOsL,aACT2pG,EAAG,UAAA5zG,OAAaiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIrB,EAAOsL,WAAU,QAEzDqpG,GAAY,yBAAAtzG,OACXrB,EAAO4I,MAAK,wBAAAvH,OACjB4zG,EAAG,+CAIDA,EAAM,EAAE,IAEVN,GAAY,mCAAAtzG,OAEfizG,GACK4B,EACA5xG,EAAM1L,KAAKkD,QACX44G,EAAappG,YAAc,IAC5B,kKAAAjK,OAIGiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIiD,EAAM1L,KAAK+C,KAAI,6BAG3C,CAEA0P,GAAmBspG,EAEnBrwG,EAAM1L,KAAKwD,YAAc,CACvB8O,YAAa,EACbG,gBAAgB,wBAADhK,OACViD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIm0G,EAAe58G,KAAK+C,KAAI,mBAEnDwP,QAAS,GACTC,IAAK,IAGPoqG,EAAe58G,KAAKwD,YAAc,CAChC8O,YAAa,EACbG,iBACqB,QAAnByqG,EAAAN,EAAe58G,YAAI,IAAAk9G,GAAa,QAAbC,EAAnBD,EAAqB15G,mBAAW,IAAA25G,OAAb,EAAnBA,EAAkC1qG,gBAAgB+0B,WAChD,KACA,MACG,GACPj1B,QAAS,GACTC,IAAK,IAGPqqG,EAAe78G,KAAKwD,YAAc,CAChC8O,YAAa,EACbG,gBAAiBA,EAAgB+0B,WAAW,KAAM,IAClDj1B,QAAS,GACTC,IAAK,GAET,CACA,MAEF,KAAKvQ,EAAY2C,YACX8G,EAAM1L,KAAKwD,cACbkI,EAAM1L,KAAKwD,YAAY+O,SAAO,kCAEhC,MAEF,KAAKtQ,EAAYyD,SACf,GAAIgG,EAAM1L,KAAKwD,YAAa,CAAC,IAADk6G,EAAAC,EAAAC,EAAAC,EAC1B,MAAM1xG,EAAmBmxB,EAAO+8E,GAC1BgB,EAAuBlvG,EACzBA,EAAiBnM,KAAK+C,KACtB,GACJ2I,EAAM1L,KAAKwD,YAAY+O,QAAU,GACjC7G,EAAM1L,KAAKwD,YAAYiP,gBAAkB,6IAAAhK,QAIX,QAAnBi1G,EAAAhyG,EAAM1L,KAAKmD,gBAAQ,IAAAu6G,OAAA,EAAnBA,EAAqBl1G,OAA0B,QAAvBm1G,EAAIjyG,EAAM1L,KAAKmD,gBAAQ,IAAAw6G,OAAA,EAAnBA,EAAqBj1G,SAAO,kCAAAD,OACvDiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAI4yG,EAAoB,wGAAA5yG,QAI7B,QAAnBm1G,EAAAlyG,EAAM1L,KAAKmD,gBAAQ,IAAAy6G,OAAA,EAAnBA,EAAqBp1G,OAA0B,QAAvBq1G,EAAInyG,EAAM1L,KAAKmD,gBAAQ,IAAA06G,OAAA,EAAnBA,EAAqBn1G,SAAO,4BAAAD,OACvDiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAI4yG,EAAoB,8BAEnD7zE,WAAW,KAAM,GACjB,CACA,MAEF,KAAKvlC,EAAYgxB,OACf,GAAIvnB,EAAM1L,KAAKwD,aAAiBkI,EAAM1L,KAAKsD,QAAS,CAClD,MAAMA,EAAUoI,EAAM1L,KAAKsD,QACrBw6G,EAAYpyG,EAAM1L,KAAKsD,QAAQ6D,KAAKgH,GAAMA,EAAExM,OAAS,MAE3D+J,EAAM1L,KAAKwD,YAAY+O,QAAU,GAEjC7G,EAAM1L,KAAKwD,YAAYiP,gBAAe,wDAItC,IAAIspG,EAAY,GACZgC,EAAgB,EAEX,OAATD,QAAS,IAATA,KAAW/xG,SAAQ,CAACpK,EAAOgI,KACzB,GAAIrG,EAAQqG,GAAQ,CAClB,MAAMq0G,EAAa16G,EAAQqG,GAAO+I,WAClCqrG,GAAgC12G,OAAO1F,GAEvCo6G,GAAY,gCAAAtzG,OACFs1G,EAAa,+BAAAt1G,OAClBiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIu1G,EAAU,yCAIhC16G,EAAQqG,EAAQ,KACnBoyG,GAAY,6CAAAtzG,OAETiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIiD,EAAM1L,KAAK+C,KAAI,wBAE5C,KAGF2I,EAAM1L,KAAKwD,YAAYiP,iBAAmBspG,EAAav0E,WACrD,KACA,GAEJ,CACA,MAEF,KAAKvlC,EAAY0O,IACS,IAADstG,EAAAC,EAAvB,GAAIxyG,EAAM1L,KAAKqD,OACbqI,EAAM1L,KAAKqD,OAAOgP,cAAiC,QAApB4rG,EAAGvyG,EAAM1L,KAAKqD,cAAM,IAAA46G,GAAe,QAAfC,EAAjBD,EAAmB5rG,qBAAa,IAAA6rG,OAAf,EAAjBA,EAAkC/2G,KACjEsQ,GAAaA,EAAS+vB,WAAW,YAAa,MAGnD,MAEF,KAAKvlC,EAAYS,UACf,MAAMy7G,EAAwBrE,EAAWztG,MACtCyqB,GAAUA,EAAMhY,YAAS,QAAArW,OAAaiD,EAAM1L,KAAK+C,QAEpD,IAAKo7G,EAAuB,MAC5B,MAAMC,EACJD,EAAsB/wG,SAASA,SAASE,KAAKtN,KACzCq+G,EAAsB/5G,OAAOuH,KAAKuyG,GAExC,IAAIE,EAAsC,CAAC,EAC3C,MAAMx6E,EAA6B,GAEnC05B,GAAc88C,EAEd,IAAK,MAAMrvG,KAAOozG,EAAqB,CACrC,MAAMt6E,EACJq6E,EAA4BC,EAAoBpzG,IAE9C84B,EAAa/jC,KAAK+B,aAAeE,EAAYK,iBAC/Cg8G,EAAwBv6E,GAGtBA,EAAa/jC,KAAK+B,aAAeE,EAAY6D,eAC/Cg+B,EAAWj6B,KAAKk6B,EAEpB,CAEA,IAAIw6E,EAA2B,GAE/Bz6E,EAAW/3B,SAAQ,CAACk4B,EAAWt6B,KACyB,IAAD60G,EAAjD9yG,EAAM1L,KAAKsD,SAAWoI,EAAM1L,KAAKsD,QAAQqG,KAC3Cs6B,EAAUjkC,KAAKwD,YAAc,IACxBygC,EAAUjkC,KAAKwD,YAClB8O,aAAuC,QAA1BksG,EAAAv6E,EAAUjkC,KAAKwD,mBAAW,IAAAg7G,OAAA,EAA1BA,EAA4BlsG,cAAe,EACxDC,QAAS,GACTC,IAAK,GACLC,gBAAgB,UAADhK,OAAYiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIiD,EAAM1L,KAAKsD,QAAQqG,GAAO+I,WAAU,OAGvF6rG,GAAwB,4BAAA91G,OACdkB,EAAK,cAAAlB,OAAaiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIiD,EAAM1L,KAAKsD,QAAQqG,GAAO+I,WAAU,iBAExF,IAEF6rG,GAAwB,UAAA91G,OAAc01G,EAAsBr/F,UAAS,KAAArW,OAAI61G,EAAsBt+G,KAAK+C,KAAI,MAExG2I,EAAM1L,KAAKwD,YAAc,CACvBgP,KAA2B,QAAtBioG,EAAA/uG,EAAM1L,KAAKwD,mBAAW,IAAAi3G,OAAA,EAAtBA,EAAwBjoG,MAAO,GACpCD,QAAS,GACTD,aAAmC,QAAtBooG,EAAAhvG,EAAM1L,KAAKwD,mBAAW,IAAAk3G,OAAA,EAAtBA,EAAwBpoG,cAAe,EACpDG,gBAAiB8rG,GAEnB,MAEF,KAAKt8G,EAAY6D,cACf,MAAM24G,EAAiB3E,EAAWztG,MAC/ByqB,GAAUA,EAAMhY,YAAcpT,EAAM1L,KAAKkD,UAE5C,IAAKu7G,EAAgB,MACrB,MAAMC,EAAwBD,EAAerxG,SAASA,SAASE,KAAKtN,KAC9D2+G,EAAgBr6G,OAAOuH,KAAK6yG,GAE5BE,EAAwB,GAE9B,IAAK,MAAM3zG,KAAO0zG,EAAe,CAC/B,MAAM56E,EAA6B26E,EAAsBC,EAAc1zG,IAEnE84B,EAAa/jC,KAAK+B,aAAeE,EAAY6D,eAC/C84G,EAAM/0G,KAAKk6B,EAEf,CAEA66E,EAAM7yG,SAAQ,CAAC8yG,EAAMl1G,KACsB,IAADm1G,EAAAC,EAApCF,EAAK7+G,KAAK+C,OAAS2I,EAAM1L,KAAK+C,OAChC2I,EAAM1L,KAAKwD,YAAc,CACvBgP,KAA2B,QAAtBssG,EAAApzG,EAAM1L,KAAKwD,mBAAW,IAAAs7G,OAAA,EAAtBA,EAAwBtsG,MAAO,GACpCD,QAAS,GACTD,aAAmC,QAAtBysG,EAAArzG,EAAM1L,KAAKwD,mBAAW,IAAAu7G,OAAA,EAAtBA,EAAwBzsG,cAAe,EACpDG,gBAAgB,sBAADhK,OAAwBkB,EAAK,YAGhD,IAGF,MAEF,KAAK1H,EAAYkxB,QACf,MAAMrU,EAAYpT,EAAM1L,KAAKkD,QAEvB87G,GAAoB,CACxBv3G,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPlP,QAASoI,EAAM1L,KAAKsD,QACpBvB,WAAY,IACZmB,QAAS4b,EACT/b,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,kBAItBk8G,GAAoB,CACxBx3G,GAAI6yG,EAAY,EAChBt6G,KAAM,CACJwD,YAAa,CACXiP,gBAAiB,GACjBH,YAAa,EACbC,QAAS,GACTC,IAAK,IAEPzQ,WAAY,IACZmB,QAAS4b,EACT/b,KAAK,GAAD0F,OAAKiD,EAAM1L,KAAK+C,KAAI,YAItBm8G,GAAqBxzG,EAAM1L,KAAKsD,QAAS0J,WAC5C5F,GAA4B,YAAjBA,EAAO4I,QAarB,IAV4B,IAAxBkvG,KACFF,GAAkBh/G,KAAKsD,QAAS47G,IAAoBxsG,WAClDusG,GAAkBj/G,KAAK+C,KAEzBi8G,GAAkBh/G,KAAKsD,QAAS47G,IAAoBlvG,MAAQ,UAG9DstB,EAAOg9E,EAAY,GAAK0E,GACxB1hF,EAAOg9E,EAAY,GAAK2E,GAEpBvzG,EAAM1L,KAAKsD,QAAS,CAAC,IAAD67G,EAAAC,EACtB,MAAMpD,EAAsB,GACV,QAAlBmD,EAAAzzG,EAAM1L,KAAKsD,eAAO,IAAA67G,GAAlBA,EAAoBpzG,SAAS3E,IAAY,IAADi4G,EACtC,OAAOrD,EAAanyG,KACE,QADEw1G,EACtBj4G,EAAOiL,qBAAa,IAAAgtG,OAAA,EAApBA,EAAsB73G,QAAQozE,GAAY,KAANA,IACrC,IAGHohC,EAAajwG,SAASmwG,IAChBA,GACFA,EAAKnwG,SAAQ,CAAC6uE,EAAWjxE,KACvB,GAA0B,MAAtBixE,EAAEhmE,UAAU,EAAG,GAAY,CAC7B,MAAMunG,EAAchzE,EAAS98B,MAAMrD,GAAM,IAAAP,OAAIO,EAAEjG,QAAW63E,IACtDuhC,GACFA,EAAYt8E,OAAO,GAAG0J,SAASx9B,SAASqkC,IACtC8rE,EAAKryG,KAAKumC,EAAE,IAGhB8rE,EAAKtuG,OAAOjE,EAAO,EACrB,IAEJ,IAGF,MAAM6yG,EAAgC,QAArB4C,EAAG1zG,EAAM1L,KAAKsD,eAAO,IAAA87G,OAAA,EAAlBA,EAChBj4G,KAAKC,GAAYA,EAAOm1D,OAASn1D,EAAO4I,MAAQ,KACjDxI,QAAQ6N,GAAkB,WAATA,GAA8B,KAATA,IAEzC,IAAIonG,EAAc,IAEP,OAAXD,QAAW,IAAXA,KAAazwG,SAAQ,CAAC2wG,EAAM/yG,KAC1B8yG,GAAW,IAAAh0G,OAAQi0G,EAAI,KACnB/yG,EAAQ6yG,EAAYl2G,OAAS,IAC/Bm2G,GAAe,IACjB,IAGFA,GAAe,IAEf,MAAME,EACY,OAAhBF,EAAoB,OAAAh0G,OAAUg0G,EAAW,iBAAkB,GAE7D/wG,EAAM1L,KAAKwD,YAAc,CACvB8O,YAAa,EACbG,gBAAgB,mBAADhK,OAChBk0G,EAAU,4CAAAl0G,OACaiD,EAAM1L,KAAKkD,QAAO,KAAAuF,OAAIu2G,GAAkBh/G,KAAK+C,KAAI,qBAEvEwP,QAAS,GACTC,IAAK,IAGP9G,EAAM1L,KAAK+B,WAAa,IAExBi9G,GAAkBh/G,KAAKwD,YAAc,CACnC8O,YAAa,EACbG,gBAAgB,mDAGhBF,QAAS,GACTC,IAAK,IAGP,MAAM8sG,EAAoB,+EAAA72G,OAEsBiD,EAAM1L,KAAKsD,QAAQ,GAAG43E,eAAc,8RAAAzyE,OAQ9EqW,EAAS,KAAArW,OAAIu2G,GAAkBh/G,KAAK+C,KAAI,mJAAA0F,OAIxCqW,EAAS,KAAArW,OAAIu2G,GAAkBh/G,KAAK+C,KAAI,2BAI9Ck8G,GAAkBj/G,KAAKwD,YAAc,CACnC8O,YAAa,EACbG,gBAAiB6sG,EAAqB93E,WAAW,KAAM,IACvDj1B,QAAS,GACTC,IAAK,GAET,EAEJ,EA6DI2oG,GAAqBA,CACzB79E,EACA5xB,EACAovG,EACAI,EACAqE,KAEA,IAAI9sG,EAAkB,GAGtB,OAFgB/G,EAAM1L,KAAKgE,aAGzB,IAAK,MACHyO,GAAe,GAAAhK,OAAO+2G,GACpB9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,QAEF,MAEF,IAAK,MACH9sG,GAAe,GAAAhK,OAAO+2G,GACpB9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,QAEF,MAEF,IAAK,OACH9sG,GAAe,GAAAhK,OAAO+2G,GACpB9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,SAEF,MAEF,IAAK,WACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,aAEF,MAEF,IAAK,QACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,UAEF,MAEF,IAAK,OACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,SAEF,MAEF,IAAK,YACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,cAEF,MAEF,IAAK,OACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,SAEF,MAEF,IAAK,QACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,UAEF,MAEF,IAAK,WACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,aAEF,MAEF,IAAK,QACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,UAEF,MAEF,IAAK,MACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,QAEF,MAEF,IAAK,OACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,SAEF,MAEF,IAAK,cACH9sG,GAAe,WAAAhK,OAChB+2G,GACG9zG,EACAovG,EAAW96G,KAAK+C,KAChBu6B,EAAO49E,GAAel7G,KAAK+C,KAC3Bw8G,EACA,gBAKN,OAAO9sG,CAAe,EAGlB+sG,GAAiBA,CACrB9zG,EACA+zG,EACApE,EACAkE,EACAG,KACI,IAADC,EACH,MAAM7gG,EAAYpT,EAAM1L,KAAKkD,QACvBgB,EAAWwH,EAAM1L,KAAKkE,UAAY,gBAClCiyE,GAAkC,QAAnBwpC,EAAAj0G,EAAM1L,KAAKmD,gBAAQ,IAAAw8G,OAAA,EAAnBA,EAAqB3jC,0BAA2B,GACrE,IAAI4jC,EAAY,GAChB,MAAMC,EA3OU//G,KAChB,IAAI+/G,EAAgB,OAEpB,OAAQ//G,GACN,IAAK,OACH+/G,EAAQ,OACR,MACF,IAAK,YACHA,EAAQ,QACR,MACF,IAAK,QACHA,EAAQ,mDACR,MACF,IAAK,MACHA,EAEE,wGACF,MACF,IAAK,QACHA,EAAQ,8BACR,MACF,IAAK,cACHA,EAAQ,2DACR,MACF,IAAK,MACHA,EAAQ,iCACR,MACF,IAAK,OACHA,EAEE,gEACF,MACF,IAAK,MACHA,EAAQ,iBACR,MACF,IAAK,OACHA,EAAQ,0BACR,MACF,IAAK,QACHA,EAAQ,iCACR,MACF,IAAK,WACHA,EACE,uEACF,MACF,IAAK,WACHA,EACE,6FACF,MACF,IAAK,OACHA,EACE,wFAIN,OAAOA,CAAK,EAoLEC,CAASJ,GAEjBK,EACQ,QAAZL,EACI,aACY,SAAZA,EACA,cACY,QAAZA,EACA,aACA,GA2DN,MAzD0B,KAAtBK,EACFH,EAAS,gDAAAn3G,OAC6Bo3G,EAAK,0CAAAp3G,OAE1CvE,EAAQ,4DAAAuE,OAGPi3G,EAAO,cAAAj3G,OAAas3G,EAAiB,wCAAAt3G,OACjCi3G,EAAO,mBAAAj3G,OACVvE,EAAQ,OAAAuE,OAAMi3G,EAAO,0DAAAj3G,OAEdqW,EAAS,KAAArW,OAAI4yG,EAAoB,qCAAA5yG,OAExCizG,GAAkBvlC,EAAcr3D,EAAW2gG,EAAWF,GAAc,6CAAA92G,OAGrEizG,GAAkBvlC,EAAcr3D,EAAW2gG,EAAWF,GAAc,mBAItEK,GADqB,aAAZF,EACA,uBAAAj3G,OACKo3G,EAAK,uQAAAp3G,OAMjBvE,EAAQ,4DAAAuE,OAEDqW,EAAS,KAAArW,OAAI4yG,EAAoB,wCAAA5yG,OAGxCizG,GAAkB,6CAADjzG,OAC0B0tE,GACvCr3D,EACA2gG,EACAF,GACD,4CAAA92G,OAIJizG,GAAkBvlC,EAAcr3D,EAAW2gG,EAAWF,GAAc,qBAI5D,0BAAA92G,OACMo3G,EAAK,0DAAAp3G,OAElBvE,EAAQ,kFAAAuE,OAEDqW,EAAS,KAAArW,OAAI4yG,EAAoB,iCAAA5yG,OAExCizG,GAAkBvlC,EAAcr3D,EAAW2gG,EAAWF,GAAc,uBAKjEK,CAAS,EAGZlE,GAAoBA,CACxBvlC,EACAr3D,EACA2gG,EACAF,KAEA,MAAMS,EAAgBT,EAAa,UAAA92G,OACrBqW,EAAS,KAAArW,OAAI82G,EAAa,OACtB,KAAdE,EAAgB,UAAAh3G,OACNqW,EAAS,KAAArW,OAAIg3G,EAAS,OAChC,GAEEQ,EACa,KAAjB9pC,EAAmB,QAAA1tE,OAAY0tE,EAAY,eAAiB,GAE9D,MAAM,iEAAN1tE,OAGEw3G,EAAU,oGAAAx3G,OAIVw3G,EAAU,UAAAx3G,OACVu3G,EAAa,cAKFE,OAhwCKA,CAClBtsD,EACAsoB,EACAikC,KAEA,MAAMrG,EAAoBlmD,EAAMpsD,QAAQkvB,GACtCA,EAAK5X,UAAUlJ,WAAW,UAE5Bg+C,EAAMzsD,KAAKkO,GAASwkG,GAAWxkG,EAAM6mE,EAAgB49B,IAAY,ECPpD,SAASsG,KACtB,MAAM,MAAExgH,EAAK,kBAAEkgB,EAAiB,SAAEklB,EAAQ,SAAErkC,GAAa6nC,MACjD7nC,SAAUsvB,GAAgBruB,KAC5B,QAAE0c,GAAY1e,GACd,eAAEm6B,GAAmBH,MACpBymF,EAAaC,GAAkBv0F,qBAuLtC,MAAO,CACLw0F,iBAxBF,WACE,OAAOF,CACT,EAuBEG,iBAvLF1/G,iBACE,MAAM4c,EACFqc,EAFiC1wB,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GAElB,+BACA,8BAEbtI,EAAQC,aAAaC,QAAQ,SAEnC,GAAIF,EAAO,CACT,MAAM,MAAEmtF,GAAe3yE,aAAWxa,GAC5ByW,EAAS,SACTipG,EAAmBjpG,EAAOkpG,KAAKxyB,EAAM,IAC3C,GAAIuyB,EAAkB,CACpB,MAAME,EAAkBF,EAAiB,GAEzC,GAAIniG,EAAS,CACX,MACMsiG,SADiB5hG,GAAeV,EAAS2R,IAClBzS,KAAKxd,KAElC,GAAM4gH,EAAYt6G,OAAQ,CACxB,MAAMu6G,EAGA,GAgBN,GAdAD,EAAY70G,SAAS+qB,IACnB,MAAMgqF,EAAkBtpG,EAAOkpG,KAAK5pF,EAAMyR,cAC1C,GAAIu4E,EAAiB,CACIA,EAAgB,KAEhBH,GACrBE,EAAsBh3G,KAAK,CACzBw+B,KAAMvR,EAAMyR,aACZzR,MAAOA,EAAMnY,YAGnB,KAGIkiG,EAAsBv6G,OAa1B,OAZAwZ,EACE,QACAia,EAAe,gCAAiC,CAC9CwzE,OAAQxzE,EAAe,SACvBsO,KAAMw4E,EAAsBp/B,QAAO,CAACkR,EAAKhxF,IAC/BgxF,EAAG,SAAAlqF,OAAa9G,EAAM0mC,KAAI,MAAA5/B,OAAKsxB,EACrC,SACA7nB,cAAa,MAAAzJ,OAAK9G,EAAMm1B,MAAK,OAC9B,IACHpZ,aAGG,CAEX,CAEA,OAAO,CACT,CACF,CACF,CACF,EA6HEqjG,aA3HFjgH,iBAA+B,IAADqtB,EAC5B,MAAM6yF,QAAuBzH,GAAgBj7F,GAAW,GAAI2R,GAC5D,GAAI+wF,GAAkB1iG,EAAS,CAC7B,MAAM,WAAE4tE,EAAU,SAAE/iD,EAAQ,OAAElnB,GAAW++F,SACZ3iG,GAC3B,CAAEC,UAAS4tE,aAAY/iD,WAAUlnB,UACjCgO,IAGiBtS,QACjBmC,EACE,UACAia,EAAe,6BACf,KAGFja,EACE,UACAia,EAAe,6BACf,IAGN,CACA,GAAoB,QAAhB5L,EAAAvuB,EAAM2P,kBAAU,IAAA4e,GAAhBA,EAAkB/gB,UAAYkR,EAAS,OACnC0mB,IACN,MAAMp8B,QAAeqV,GACnB,CACED,SAAUM,GAAW,IAEvB2R,GAGF,GAAIrnB,EAAO+U,QAAS,CAClB,MAAMwiG,EAAgBv3G,EAAO4U,KAAKxd,KAAKiiB,OAAO5V,MAC3CyqB,GAA+B,cAArBA,EAAMnY,aAEbi1C,EAAQhrD,EAAO4U,KAAKxd,KAAKiiB,OAC5B9a,KAAKuvB,IACJ,IAAKA,EAAK4G,OAAOlwB,SAAU,OAAO,KAClC,MAAMmmB,EAAOmD,EAAK4G,OAAOlwB,SAASE,KAC5B0wB,EAAgB,IAAIzlB,GAAcgb,EAAKvzB,KAAM02B,EAAK/X,YAExD,OADA4U,EAAKvzB,KAAOg+B,EAAclkB,cACnB,CACL1E,IAAKshB,EAAK1Y,SACVc,UAAW4X,EAAK/X,WAChBzb,QAASwzB,EAAK1U,IACd5U,SAAU,CAAEA,SAAU,CAAEE,KAAMimB,IAC/B,IAEF/rB,QAAQuwD,KAAQA,IAEbmkB,EAA4B,GAElC,IAAK,MAAM3qC,KAAU3oC,EAAO4U,KAAKxd,KAAKmpC,SAAU,CAC9C,MAAM,OAAEtJ,GAAW0R,EACb3oC,EAASi3B,EAAOr4B,QAAQ4oC,KAAQA,EAAEzuC,QAClCiH,EAAOtC,QACX41E,EAAeryE,KAAK,IACf0nC,EACH1R,OAAQj3B,GAGd,CAEAs3G,GAAYtsD,EAAOsoB,EAAgBikC,GACnC,MAAMc,EAAyB/rG,GAAW0+C,IC7InC,SAAsBA,GACnCA,EAAM7nD,SAAS2qB,IACb,MAAM4G,EAAyB5G,EAAKtpB,SAASA,SAASE,KAAKtN,KAE3DsE,OAAOuH,KAAKyxB,GAAQvxB,SAASL,IAC3B,MAAMsuG,EAAW18E,EAAOj2B,OAAOqE,IAC/B,GAAIsuG,EAASh6G,KAAKoE,MAAQ41G,EAASh6G,KAAKoE,KAAKkC,OAAS,EAAG,CAAC,IAAD46G,EACvD,MAAMC,EAA8B,QAArBD,EAAGlH,EAASh6G,KAAKoE,YAAI,IAAA88G,OAAA,EAAlBA,EAAoB15G,QAAQ4xD,KAAUA,IACxD,IAAK4gD,EAASh6G,KAAKwD,YAAa,OAEhC29G,EAAUp1G,SAASqtD,IACjB,MAAMgoD,EAAW,gBAAA34G,OAAmB2wD,EAAG,SAEvC4gD,EAASh6G,KAAKwD,YAAaiP,gBAEzB2uG,EClBO,MDiBPpH,EAASh6G,KAAKwD,YAAaiP,eAE5B,GAEL,IACA,GAEN,CDyHQ4uG,CAAaJ,GAEbx0G,QAAQC,IAAIu0G,GAEZX,EAAe,CACbtiG,SAAUM,GAAW,GACrB2D,OAAQg/F,EAAcz5G,QAAQuwD,KAAQA,IACtC5uB,SAAU,CACRnrB,SAAUM,GAAW,GACrB6qB,SAAU+yC,KAIdv7E,EAAS,CACPb,KAAM,oBACNE,KAAM,CACJsiB,kBAAmB,CACjBtE,SAAUM,GAAW,GACrB2D,OAAQg/F,EAAcz5G,QAAQuwD,KAAQA,IACtC5uB,SAAU,CACRnrB,SAAUM,GAAW,GACrB6qB,SAAU+yC,OAKlBv7E,EAAS,CAAEb,KAAM,uBACnB,CACF,CACF,EA6BEwhH,cAvBF,SAAuBC,EAAyB74G,GAC1C64G,GAA8B,+BAAZ74G,EACpBoX,EACE,UACAia,EAAe,8BACf,KAGFja,EACE,QAAQ,iBAADrX,OAEPsxB,EAAe,4BAA2B,kBAAAtxB,OAC1CC,EAAO,iBAIX/H,EAAS,CAAEb,KAAM,wBACnB,EAQF,CGrMe,SAAS0hH,KACtB,MAAM,kBAAEl/F,GAAsBkmB,KAAU5oC,MAClC6hH,ECZO,WACb,MACOC,EAAYC,GAAiB51F,oBAAS,IACtC61F,EAAUC,GAAe91F,mBAAS,IAClC+1F,EAAoBC,GAAyBh2F,oBAAS,IACtDi2F,EAASC,GAAcl2F,oBAAS,IAChCm2F,EAAgBC,GAAqBp2F,mBAAS,KAC9Cq2F,EAAaC,GAAkBt2F,mBAAS,KACxC/f,EAAYs2G,GAAiBv2F,qBA+DpC,SAASw2F,EAAc7kG,GACrBikG,EAAcjkG,EAChB,CAsBA,MAAO,CACL8kG,oBA7BF,WACE,OAAiB,OAAVx2G,QAAU,IAAVA,OAAU,EAAVA,EAAYy2G,UACrB,EA4BEC,aAlBF,WACE,OAAOhB,CACT,EAiBEiB,YAvBF,WACE,OAAOf,CACT,EAsBEgB,WAzFF,SAAoBvC,EAAkB/hG,GACpC,GAAI+hG,GAAe/hG,EAAS,CAC1B,MAAMze,EAAM,eAENqa,EAAelZ,aAAaC,QAAQ,iBACpCF,EAAQC,aAAaC,QAAQ,SAEnC,GAAMF,GAAWmZ,EAAc,CAC7B,MAAMla,EAAO,CAAEe,MAAOA,EAAO8hH,aAAcxC,GACrCyC,EAAe,IAAIC,UAlBd/oG,6BAkBmCna,GAE9CijH,EAAaE,OAAS,KACpBF,EAAaG,KAAKp8G,KAAKC,UAAU9G,IACjCsiH,EAAcQ,EAAa,EAG7BA,EAAaI,QAAU,KACrBjB,GAAW,GACXa,EAAahhE,OAAO,EAGtBghE,EAAaK,UAAan6G,IACxB,MAAMooB,EAAWvqB,KAAKw2B,MAAMr0B,EAAEhJ,MACxBojH,EAAqBhyF,EAASiyF,sBAEd,UAAlBjyF,EAAStxB,MACXqiH,EAAkB/wF,EAAS1oB,SAGP,iBAAlB0oB,EAAStxB,MACXuiH,EAAejxF,EAASkyF,WAGtBF,GACFvB,EAAYuB,GAGVA,GAAsB,MACxBjB,EAAkB,8BAClBW,EAAahhE,QACf,EAGFghE,EAAaS,QAAU,KACrBhB,GAAc,GAGZR,GADEC,EAE8B,CAEtC,MACEO,GAAc,GACdR,GAAsB,EAE1B,CACF,EAmCEQ,gBACAiB,sBAVF,WACE,OAAO1B,CACT,EASEh6G,WAnBF,WACE,OAAOo6G,CACT,EAkBEuB,eAhBF,WACE,OAAOrB,CACT,EAgBF,CD7FyBsB,IACjB,cAAEpC,GAAkBlB,KACpB7oE,EAAUhB,KAEV4+C,EAAU/rE,uBAAY,KAC1B,GAAI9G,EAAmB,CACxB,MAAMlV,EAAWkV,EAAkBA,kBAChCm/F,EAAemB,WAAWx1G,EAAUA,EAAS4Q,SAC/C,IAEC,CAACsE,IAoBJ,OAlBAzhB,qBAAU,KACRs0F,GAAS,GACR,CAACA,IAEJt0F,qBAAU,KACR,GAA6C,IAAzC4gH,EAAee,sBAA6B,CAC9C,MAAMhhH,EAAMigH,EAAe35G,aACrB85G,EAAWH,EAAekB,cAG9BrB,EADEM,GAAY,IACMpgH,EAIxB,IAEC,CAACigH,IAGFhgH,cAACmrC,KAAG,CAAAlsC,SACFe,cAACkiH,GAAuB,CACtBhiH,MAAO8/G,EAAekB,cACtBn5F,UAAW+tB,EAAQ8hE,eAI3B,CAEA,SAASsK,GACPljH,GAEA,MAAM82C,EAAUhB,KAEhB,OACE1wB,eAAC+mB,KAAG,CAACpjB,UAAW+tB,EAAQ4hE,SAASz4G,SAAA,CAC/Be,cAACmrC,KAAG,CAACpjB,UAAW+tB,EAAQ6hE,UAAU14G,SAChCe,cAACopC,GAAS,CAAAnqC,SACRe,cAACmiH,KAAc,CACbp6F,UAAW+tB,EAAQ8hE,YACnB5xF,QAAQ,iBACJhnB,EACJkB,MAAOlB,EAAMkB,YAInBF,cAACmrC,KAAG,CAAAlsC,SACFe,cAAC+lB,KAAU,CAACgC,UAAW+tB,EAAQ+hE,cAAc54G,SAAA,GAAA+H,OAAK8I,KAAKsyG,MACrDpjH,EAAMkB,OAAS,GAChB,YAIT,CElEA,MAAM0lB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAASqjH,KACtB,MAAMvsE,EAAUhB,MACV,eAAExc,GAAmBH,KAE3B,OACEn4B,cAACo/C,GAAY,CAAAngD,SACXe,cAACopC,GAAS,CAACpjC,GAAG,SAAQ/G,SACpBmlB,eAACoF,KAAM,CACLhC,MAAM,EACNiC,oBAAqB7D,GACrBqJ,WAAY,CACVhmB,MAAO,CACLq5G,UAAW,sBACXpyD,aAAc,SAEhBjxD,SAAA,CAEFe,cAAC0lB,KAAI,CAACqC,UAAW+tB,EAAQod,KAAKj0D,SAC5Be,cAACgwE,GAAU,CAAA/wE,SAAEq5B,EAAe,kBAG9Bt4B,cAACw3G,GAAc,CAAAv4G,SACbe,cAAA,OAAK0qB,IAAK63F,GAAM/4B,IAAI,aAAazhE,UAAW+tB,EAAQ2hE,QAEtDz3G,cAAC+/G,GAAkB,UAK7B,C,qFC5CO,MAAMp6F,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,8MAyDjC2lE,IA1CkB9lE,aAAO2C,KAAP3C,CAAYO,QAAAJ,aAAA,uKAadH,KAAOC,IAAGQ,QAAAN,aAAA,kGAOVH,KAAOC,IAAGU,QAAAR,aAAA,8GAQfH,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,kHAQPH,KAAOC,IAAGsC,QAAApC,aAAA,0CAMPH,aAAO2C,KAAP3C,CAAYyC,QAAAtC,aAAA,iDAiD/Bs/F,IA5CiBz/F,aAAO2C,KAAP3C,CAAY8C,QAAA3C,aAAA,4GAOhBH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExB+C,QAAA5C,aAAA,QAEyBH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BkD,QAAA/C,aAAA,mDAKxBH,KAAOC,IAAGkD,QAAAhD,aAAA,iJAUTH,KAAOC,IAAGmD,QAAAjD,aAAA,kKAWdH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BqD,QAAAlD,aAAA,uGAO9BH,KAAOC,IAAGqD,QAAAnD,aAAA,8QAkBvBu/F,GAAoB1/F,KAAOC,IAAG8mB,QAAA5mB,aAAA,mHAS9B2B,GAAmB9B,KAAOC,IAAG+mB,QAAA7mB,aAAA,4BAI7Bm9E,GAAoBt9E,KAAOC,IAAGgnB,QAAA9mB,aAAA,yLAa9Bo9E,GAAWv9E,KAAOC,IAAGinB,QAAA/mB,aAAA,qRAgBrB4xB,GAAYC,cAAYvN,IAAY,CAC/Ck7E,MAAO,CACL1sC,SAAU,KAEZ0K,OAAQ,CACN7xE,SAAU,WACViV,WAAY0jB,EAAMN,QAAQC,QAAQC,MAEpC74B,MAAO,CACL2mC,WAAY1N,EAAM2N,QAAQ,GAC1BC,KAAM,GAERH,KAAM,CACJtrB,SAAU,MACV2rB,OAAQ,GACRpmB,QAAS,IAEX0rD,QAAS,CACPjxD,SAAU,MACV2rB,OAAQ,EACRpmB,QAAS,EACTpL,WAAY,UACZosC,aAAc,EACdyyD,wBAAyB,GAE3BniB,OAAQ,CACN72E,SAAU,MACV2rB,OAAQ,EACRxxB,WAAY,UACZoL,QAAS,EACTghC,aAAc,EACduwC,oBAAqB,GAEvBp5D,MAAO,CACL7iB,OAAQ,WAEVk8E,aAAc,CACZprD,OAAQ,cACRzxB,OAAQ,QAEV88E,YAAa,CACX98E,OAAQ,sBACRC,WAAY,aAEd/jB,IAAK,CACH6gG,SAAU,aACVz/B,WAAY,IACZ7rB,OAAQ,EACRpmB,QAAS,YAEX2xE,QAAS,CACPD,SAAU,aACV5zE,SAAU,GACV6lE,UAAW,MACX1xB,WAAY,IACZ7rB,OAAQ,UACRpmB,QAAS,oB,eChLb,MAAMtJ,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS4jH,GAAc5jH,GACpC,MAAM82C,EAAUhB,MACR51C,SAAUsvB,GAAgBruB,KAC5B,KAAEqnB,EAAI,SAAEjL,EAAQ,SAAEwjF,EAAQ,YAAEt4E,EAAW,gBAAEs7E,GAAoB/jG,GAE5D6jH,EAAiBC,GAAsBx4F,mBAA0B,OACjEs3E,EAAcoB,GAAmB14E,mBAAoB,KACrD1L,EAAS4vB,GAAclkB,oBAAS,IAChCa,EAAUC,GAAed,mBAAS,OAClC24E,EAAYC,GAAiB54E,oBAAS,GAEvCm5E,EACc,UAAlB3iB,GAAKD,SAAuB,aAAe,yBAEvClvB,EACc,UAAlBmvB,GAAKD,SAAuB6iB,KAAyB,UAAlB5iB,GAAKD,SAAuB8iB,KAAOvC,MAElE,eAAE9oE,GAAmBH,KAqE3B,SAAS6rE,EAAgBl1D,GACvB,IAAIm1D,EAAS,GAAAj9F,OAAM8uC,EAAQ4qD,cAO3B,MANwB,aAApB5xD,EAAIvsC,YAA4B0hG,GAAS,IAAAj9F,OAAQ8uC,EAAQ0qD,QACxDyD,GAAS,IAAAj9F,OAAQ8uC,EAAQ8kC,SAE1BmoB,GAAmBj0D,EAAI7nC,UAAY87F,EAAgB97F,QAAQlH,MAC7DkkG,GAAS,IAAAj9F,OAAQ8uC,EAAQ6qD,cAEpBsD,CACT,CAvEA7kG,qBAAU,KAkDJooB,GAjDJnoB,iBACEmvC,GAAW,GACX,MAAMu0E,QAAuB/iB,GAC3B,CAAEzjF,WAAUwjF,YACZvxE,GAGEu0F,EAAe7mG,QACjB4mG,EAAmBC,EAAehnG,KAAKxd,MAEvCukH,EAAmB,MAErB,MAAMlf,QAA2B9D,GAC/B,CACEvjF,WACAwjF,YAEFvxE,GAEEo1E,EAAmB1nF,QACrB8mF,EAAgBY,EAAmB7nF,KAAKxd,MAExCykG,EAAgB,IAElBx0D,GAAW,GAEX,MAAMxrB,EAAMlb,SAASa,eAAe,aAEpC,GAAIo6F,EAAiB,CACnB,MAAMgB,EAAej8F,SAASa,eAAe,GAAD3B,OACvC+7F,EAAgB97F,QAAQlH,IAAG,KAAAiH,OAAI2vE,aAChC,IAAIh8D,KAAKooF,EAAgBX,WACzB,yBAIA2B,GACFA,EAAarB,eAAe,CAAEC,SAAU,UAE5C,EAEKI,GAAmB//E,EACtBA,EAAIggG,UAAYhgG,EAAIigG,aAAejgG,EAAI9S,aAEvCvQ,OAAOujH,SAASr1E,KAAI,MAAA7mC,OAAwB,OAAf+7F,QAAe,IAAfA,OAAe,EAAfA,EAAiB97F,QAAQlH,IAAG,KAAAiH,OAAIm8G,aAC3D,IAAIxoG,MAAoB,OAAfooF,QAAe,IAAfA,OAAe,EAAfA,EAAiBX,YAAa,IACvC,GAEN,CACUvkG,EAAM,GAEf,CAAC2pB,EAAMjL,EAAUwjF,IA2DpB,MAAM2E,EAAuBnnC,mBAAQ,KACnC,MAAMonC,EAAyD,GAO/D,OALA/C,EAAat3F,SAASwkC,KAzCxB,SACE81D,EACAD,EACA71D,GAEA,GAAI+1D,aAAQD,GAAW,CACrB,MAAM18F,EAAQy8F,EAAmBp5F,WAC9Bu4F,GAAuBA,EAAE/0C,MAAQz2B,EAAe,YAGpC,IAAXpwB,EAAcy8F,EAAmBz8F,GAAO2gC,KAAKzgC,KAAK0mC,GAEpD61D,EAAmBv8F,KAAK,CAAE2mD,IAAKz2B,EAAe,SAAUuQ,KAAM,CAACiG,IACnE,MAAO,GAAIg2D,aAAYF,GAAW,CAChC,MAAM18F,EAAQy8F,EAAmBp5F,WAC9Bu4F,GAAuBA,EAAE/0C,MAAQz2B,EAAe,gBAGpC,IAAXpwB,EAAcy8F,EAAmBz8F,GAAO2gC,KAAKzgC,KAAK0mC,GAEpD61D,EAAmBv8F,KAAK,CACtB2mD,IAAKz2B,EAAe,aACpBuQ,KAAM,CAACiG,IAEb,KAAO,CACL,MAAMi2D,EAAgBpuB,aAAOiuB,EAAUnB,EAAkB,CACvDuB,OAAQrzC,IAGJzpD,EAAQy8F,EAAmBp5F,WAC9Bu4F,GAAuBA,EAAE/0C,MAAQg2C,KAGrB,IAAX78F,EAAcy8F,EAAmBz8F,GAAO2gC,KAAKzgC,KAAK0mC,GACjD61D,EAAmBv8F,KAAK,CAAE2mD,IAAKg2C,EAAel8D,KAAM,CAACiG,IAC5D,CACF,CAOIm2D,CADiB,IAAItqF,KAAKm0B,EAAIszD,WACDuC,EAAoB71D,EAAI,IAGnD61D,EACKA,EACJj/F,KAAKy/F,GACJ/gF,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACsgG,GAAQ,CAAArhG,SACPe,cAAA,QAAAf,SAAOkmG,EAAcp2C,QAGtBo2C,EAAct8D,KAAKnjC,KAAI,CAACopC,EAAK5mC,IAC5BlI,cAAC0lB,KAAI,CACH4Y,WAAS,EACTiyB,eACsB,aAApBzhB,EAAIvsC,YAA6B,aAAe,WAMlDyD,GAAE,GAAAgB,OAAK8nC,EAAI7nC,QAAO,KAAAD,OAAI8nC,EAAIszD,WAAYnjG,SAEtCmlB,eAACghF,KAAI,CAACr9E,UAAWi8E,EAAgBl1D,GAAM9oB,QAAQ,WAAU/mB,SAAA,CACvDe,cAAC+lB,KAAU,CAACgC,UAAW+tB,EAAQ/1C,IAAId,SAAE6vC,EAAI7nC,UACzCjH,cAAC+lB,KAAU,CAACgC,UAAW+tB,EAAQ+qD,QAAQ5hG,SACpCykF,GAAK,IAAI/oE,KAAKm0B,EAAIszD,kBAEhB,GAAAp7F,OAXC8nC,EAAI7nC,QAAO,KAAAD,OAAI2vE,aACrB,IAAIh8D,KAAKm0B,EAAIszD,WACb,uBACD,KAAAp7F,OAAIkB,WAcHlI,cAAAysB,WAAA,GAAK,GAElB,CAACm1E,IAEJ,OACE5hG,cAACwpB,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB8D,WAAS,EACTC,SAAS,KACTsF,WAAY,CAAElH,UAAW+tB,EAAQzO,OAAQpoC,SAEzCmlB,eAACuB,GAAe,CAAA1mB,SAAA,CACde,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK+B,UAAW+tB,EAAQvnC,MAAMtP,SAC/Cq5B,EAAe,gCAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAhLEo2B,KACZ1gD,OAAOujH,SAASr1E,KAAO,IACvBpmB,GAAa,EA+KH,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAIftL,EACC5e,cAAC0lB,KAAI,CACHzc,MAAO,CACLimB,QAAS,IACTjwB,SAEFe,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,OAG1CnJ,eAACykE,GAAgB,CAAA5pF,SAAA,CACfmlB,eAACo+F,GAAU,CAAAvjH,SAAA,CACTe,cAACyiH,GAAiB,CAAAxjH,SAChBe,cAAC+lB,KAAU,CAAA9mB,SACRq5B,EAAe,qCAGpBlU,eAACq+F,GAAiB,CAAAxjH,SAAA,CAChBe,cAAC+pB,KAAU,CAACE,QAASA,IAAMi5E,GAAc,GAAMjkG,SAC7Ce,cAAC8uB,KAAO,CACNvgB,MAAO+pB,EAAe,mCACtBtJ,UAAU,aAAY/vB,SAEtBe,cAACo0C,KAAM,CAACpnB,SAAS,cAGrBhtB,cAAC+pB,KAAU,CAACE,QArJ1B,SAAyBuC,GACvBpB,EAAYoB,EAAMI,cACpB,EAmJmD3tB,SACnCe,cAAC8uB,KAAO,CACNvgB,MAAO+pB,EAAe,mCACtBtJ,UAAU,aAAY/vB,SAEtBe,cAACq5E,KAAQ,CAACrsD,SAAS,QAAQssD,UAAU,mBAI3Ct5E,cAAC8kB,KAAO,CACN0C,OAAQ2D,EACRA,SAAUA,GAAY,KACtBvB,QA7Jd,WACEwB,EAAY,KACd,EA4Jc6D,WAAY,CACVhmB,MAAO,CACLkhB,UAAW,OACX+qB,WAAY,QAGhB9nB,gBAAiB,CACfF,SAAU,MACVC,WAAY,SACZluB,SAEFmlB,eAACS,GAAgB,CAAA5lB,SAAA,CACfmlB,eAAC2B,KAAU,CAAA9mB,SAAA,CACTe,cAAA,UAAAf,SACGq5B,EAAe,+BACR,KACM,OAAfuqF,QAAe,IAAfA,OAAe,EAAfA,EAAiBvhH,OAChBg3B,EAAe,kCAEnBlU,eAAC2B,KAAU,CAAA9mB,SAAA,CACTmlB,eAAA,UAAAnlB,SAAA,CACGq5B,EAAe,iCAAkC,OAC1C,KACM,OAAfuqF,QAAe,IAAfA,OAAe,EAAfA,EAAiBO,WAChB9qF,EAAe,kCAEnBlU,eAAC2B,KAAU,CAAA9mB,SAAA,CACTmlB,eAAA,UAAAnlB,SAAA,CACG,IACAq5B,EAAe,iCACR,KACM,OAAfuqF,QAAe,IAAfA,OAAe,EAAfA,EAAiBQ,cAChB/qF,EAAe,kCAEnBlU,eAAC2B,KAAU,CAAA9mB,SAAA,CACTe,cAAA,UAAAf,SACGq5B,EAAe,kCAEjBlzB,KAAKC,UAAyB,OAAfw9G,QAAe,IAAfA,OAAe,EAAfA,EAAiBS,UAC/BhrF,EAAe,kCAEnBlU,eAAC2B,KAAU,CAAA9mB,SAAA,CACTe,cAAA,UAAAf,SACGq5B,EAAe,uCAEjBurD,GAA8B,OAAfg/B,QAAe,IAAfA,OAAe,EAAfA,EAAiBU,cAEnCn/F,eAAC2B,KAAU,CAAA9mB,SAAA,CACTe,cAAA,UAAAf,SACGq5B,EAAe,sCAEjBurD,GAA8B,OAAfg/B,QAAe,IAAfA,OAAe,EAAfA,EAAiBW,sBAMxCvgB,GACCjjG,cAAC2hG,GAAM,CACLl6E,YAAaA,IAAMy7E,GAAc,GACjCtB,aAAcA,IAIlB5hG,cAACqgG,GAAiB,CAACr6F,GAAG,YAAW/G,SAC9BylG,WAOf,C,8CC7WO,MAAM/+E,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,uLAyBjC2lE,IAZkB9lE,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,oDAKhBH,aAAO2C,KAAP3C,CAAYS,QAAAN,aAAA,4GAOVH,aAAO2C,KAAP3C,CAAYW,QAAAR,aAAA,wdA+B/BugG,GAAgB1gG,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,iDAK5BwgG,GAAqB3gG,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,4HAWjCi6D,GAAgBp6D,KAAOC,IAAGwC,QAAAtC,aAAA,oEA4D1B4xB,IArDgB/xB,KAAOC,IAAG6C,QAAA3C,aAAA,iEAQfH,aAAO2C,KAAP3C,CAAY+C,QAAA5C,aAAA,iHAQVH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBkD,QAAA/C,aAAA,QAEyBH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BmD,QAAAhD,aAAA,mDAKxBH,KAAOC,IAAGmD,QAAAjD,aAAA,iJAUTH,KAAOC,IAAGoD,QAAAlD,aAAA,kKAWdH,aAAOgD,MAAYf,MAAM,CAAC,EAA1BjC,CAA4BsD,QAAAnD,aAAA,uGAO/B6xB,cAAYvN,IAAY,CAC/Ck7E,MAAO,CACL1sC,SAAU,KAEZ0K,OAAQ,CACN7xE,SAAU,WACViV,WAAY0jB,EAAMN,QAAQC,QAAQC,MAEpC74B,MAAO,CACL2mC,WAAY1N,EAAM2N,QAAQ,GAC1BC,KAAM,QC9GJxvB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS2kH,GAAmB3kH,GACzC,MAAM82C,EAAUhqB,MACV,QAAEjP,GAAYkqB,KAAU5oC,OACxB,KAAEqpB,EAAI,YAAEC,GAAgBzoB,GACtBE,SAAUsvB,GAAgBruB,KAC3Bm6F,EAAespB,GAAoBt5F,mBAAyB,KAC5Do7E,EAAWC,GAAgBr7E,oBAAS,IACpCy1E,EAAU8jB,GAAev5F,mBAAS,KAClC1L,EAAS4vB,GAAclkB,oBAAS,IAChCw5F,EAAYC,GAAiBz5F,mBAAS,KACtClO,EAAO00E,GAAYxmE,mBAAS,KAC5BqrD,EAAMC,GAAWtrD,mBAAS,IAC1BurD,EAAaC,GAAkBxrD,mBAAS,IACzC,eAAEgO,GAAmBH,KAErB6rF,EACW,KAAfF,EACIxpB,EAAcv0F,QACX67F,GAAiBA,EAAa7B,WAAa+jB,IAE9CxpB,EAENl7F,qBAAU,KAaJooB,GAZJnoB,iBACEmvC,GAAW,GACX,MAAMjyB,EAAWM,GAAW,GACtB1V,QAAe04F,GAAiB,CAAEtjF,YAAYiS,GAEhDrnB,EAAO+U,QACT0nG,EAAiBz8G,EAAO4U,KAAKxd,MAE7BqlH,EAAiB,IAEnBp1E,GAAW,EACb,CACU3wC,EAAM,GAEf,CAAC2pB,EAAM3K,IAqBV,OACEuH,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACwpB,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB8D,WAAW,EACXC,SAAS,KAAI1qB,SAEbmlB,eAAC0H,GAAiB,CAAA7sB,SAAA,CAChBe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK+B,UAAW+tB,EAAQvnC,MAAMtP,SAC/Cq5B,EAAe,qCAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASA,KACP2rD,EAAQ,GACRnuD,GAAa,EAEf,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAKftL,EACC5e,cAAC0lB,KAAI,CACHzc,MAAO,CACLimB,QAAS,IACTjwB,SAEFe,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,OAG1CnJ,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAC8rB,GAAe,CAAA7sB,SACde,cAAC8rB,GAAoB,CAAA7sB,SACnBe,cAAC8rB,GAAe,CAAA7sB,SACde,cAACuvB,KAAS,CACRoZ,MAAOrQ,EAAe,oCACtBp4B,MAAO4jH,GAAc,GACrBp6F,WAAS,EACT8F,SAAWjoB,GAAMw8G,EAAcx8G,EAAEkG,OAAOvN,OACxC6oC,WAAY3sB,GAAS,GACrBA,QAASA,EACT0sB,OAAQA,IAAMgoD,EAAS,YAY/B9wF,cAACwlE,KAAc,CAACvvB,UAAWD,KAAM/2C,SAC/BmlB,eAACqhD,KAAK,CACJ19C,UAAW+tB,EAAQ4sE,MACnB,aAAW,eACXn1F,KAAK,SAAQtuB,SAAA,CAEbe,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAC2Q,MAAM,WACjBv2E,cAAC4lE,KAAS,CAAA3mE,SACPq5B,EAAe,sCAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,qCAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,yCAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,8CAItBt4B,cAACw2E,KAAS,CAAAv3E,UACN42E,EAAc,EACZmuC,EAAsB9oE,MACpBy6B,EAAOE,EACPF,EAAOE,EAAcA,GAEvBmuC,GACFt+G,KAAKopC,IACL1qB,sBAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACvBe,cAAC+pB,KAAU,CAACE,SAhHb44F,EAgHoC/zE,EAAIixD,SAhHZ,KACjD8jB,EAAYhB,GACZld,GAAa,EAAK,GA8GqD1mG,SAC/Ce,cAACo5E,KAAc,QAGnBp5E,cAAC4lE,KAAS,CAACumB,MAAM,MAAKltF,SAAE6vC,EAAIixD,WAC5B//F,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAE6vC,EAAIn7B,MAC/B3T,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtB4kF,GAAe/0C,EAAIy0E,aAEtBvjH,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtB4kF,GAAe/0C,EAAI00E,eAZT10E,EAAIixD,UA9GhB8iB,KA6HJ,MAEH7iH,cAACikH,KAAW,CAAAhlH,SACVe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC42E,KAAe,CACdC,mBAAoB,CAAC,EAAG,GAAI,GAAI,GAAI,KACpC9tD,MAAOi7F,EAAsBn/G,OAC7BgxE,YAAaA,EACbF,KAAMA,EACNuuC,aAjIGltC,CACvBxqD,EACAyqD,KAEArB,EAAQqB,EAAQ,EA8HIktC,oBA3HW58G,IAG/BuuE,GAAgBvuE,EAAEkG,OAAOvN,OACzB01E,EAAQ,EAAE,EAwHUkB,iBAAkBx+C,EAChB,6DAWnBotE,GACC1lG,cAAC4iH,GAAa,CACZp7F,KAAMk+E,EACNnpF,SAAUM,GAAW,GACrBkjF,SAAUA,EACVt4E,YAAaA,KACXk+E,GAAa,EAAM,MAM/B,CChMeye,I,YAAAA,GA5CWA,KACxB,MAAM,MAAEjmH,EAAK,SAAEe,GAAa6nC,MACtB,KAAE1oC,EAAI,QAAE4I,EAAO,KAAEqX,EAAI,SAAE0lB,GAAa7lC,EAAMkgB,kBAE1CgmG,EAAgBrgF,IAET,UAAT3lC,EACA,KACA2lC,GAAY,KAEhB,SAAS+8C,EAAiBv0D,EAA8Bw0D,GACvC,cAAXA,GAIJ9hF,EAAS,CACPb,KAAM,aACNE,KAAM,CACJ8f,kBAAmB,IACdlgB,EAAMkgB,kBACTpX,QAAS,GACTqX,MAAM,KAId,CAEA,SAAS2iE,EAAMjiF,GACb,OAAOgB,cAACkhF,KAAQ,CAACC,UAAW,EAAGn7D,QAAQ,YAAahnB,GACtD,CACA,OACEgB,cAACohF,KAAQ,CACPn0D,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChD3F,KAAMlJ,EACN+iE,iBAAkBgjC,EAClBz6F,QAASm3D,EAAiB9hF,SAE1Be,cAACihF,EAAK,CAACr3D,QAASm3D,EAAkBO,SAAUjjF,EAAKY,SAC9CgI,KAEM,EC3CR,MAAM0e,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2CAKjCkoB,GAAkBroB,KAAOC,IAAGM,QAAAJ,aAAA,yGAO5BohG,GAAgBvhG,KAAOC,IAAGQ,QAAAN,aAAA,uEAQ1BqhG,GAAkBxhG,KAAOC,IAAGU,QAAAR,aAAA,oGCH1B,SAASshG,GAAiBxlH,GACvC,MAAM,YAAEyoB,EAAW,UAAEpK,EAAS,kBAAEonG,GAAsBzlH,GAE/C4f,EAAS4vB,GAAclkB,oBAAS,IAChCo6F,EAAkBC,GAAuBr6F,mBAAS,KAClDs6F,EAAuBC,GAA4Bv6F,mBAAS,KAC7D,eAAEgO,GAAmBH,KAgB3B,OACEn4B,cAACwpB,KAAM,CAAChC,MAAI,EAACkC,WAAW,EAAMC,SAAS,KAAI1qB,SACzCmlB,eAACuB,GAAe,CAAA1mB,SAAA,CACdmlB,eAACgnB,GAAe,CAAAnsC,SAAA,CACde,cAAC+lB,KAAU,CACTC,QAAQ,KACR5C,MAAM,UACNna,MAAO,CAAEk4D,WAAY,QAASliE,SAE7Bq5B,EAAe,6BAElBt4B,cAAC+pB,KAAU,CACTkC,SAAUrN,EACV3V,MAAO,CAAEma,MAAO,WAChB6G,QAASxC,EACT,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,SAGd9F,eAACkgG,GAAa,CAAArlH,SAAA,CACZmlB,eAAA,KAAAnlB,SAAA,CACGq5B,EAAe,+BAChBt4B,cAAA,UAAAf,SAASoe,IACRib,EAAe,kCAElBt4B,cAACuvB,KAAS,CACR7F,WAAS,EACTo7F,aAAW,EACX9+F,QAAQ,SACRijB,YAAa3Q,EAAe,iCAC5Bp4B,MAAOwkH,EACPtoG,QAASwoG,EACT77E,WAAY67E,EACZ34F,SAAUrN,EACV4Q,SAAWjoB,GAxCWA,KACxBq9G,GAAuBC,EAAyB,IACtDF,EAAoBp9G,EAAE,EAsCGw9G,CAAuBx9G,EAAEkG,OAAOvN,OACjDm2C,WAAS,OAGbr2C,cAACukH,GAAe,CAAAtlH,SACde,cAAC4kB,KAAM,CACLqH,UAAWy4F,GAAoB9lG,EAC/BoH,QAAQ,YACRuH,KAAK,QACLnK,MAAM,UACNna,MAAO,CAAEinB,gBAAiB,UAAW8lD,SAAU,KAC/C/rD,QA5DoB+6F,KACxB3nG,IAAcqnG,EAChBG,EAAyBvsF,EAAe,6BAExCkW,GAAW,GACXi2E,IACF,EAsDuCxlH,SAE9B2f,EACC5e,cAAC4uC,KAAgB,CACf3lC,MAAO,CAAEma,MAAO,OAAQkyB,OAAQ,GAChClyB,MAAM,UACNmK,KAAM,KACN,GAAAvmB,OAECsxB,EAAe,qCAOhC,C,kCCjGO,MAAM3S,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,gFAMjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,+CAIWvH,GAAQoH,KAAOkzC,EAACvyC,QAAAR,aAAA,yEAMhB+sD,GAAiBltD,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,uMAgB7BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,uHAQ9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,2CAgC1B4xB,IA3BgB/xB,KAAOC,IAAG6C,QAAA3C,aAAA,oEAMRH,KAAOC,IAAG8C,QAAA5C,aAAA,sMAcZH,KAAOC,IAAGiD,QAAA/C,aAAA,oEAOd6xB,cAAYvN,GACnCwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAGd/Y,MAAO,CACL+Y,WAAY,gBC9ElBzkB,eAAe4lH,GACbpoG,EACA2D,EACAthB,GAEA,MAAMwc,EAAmB,GACnB+/C,EAAYj7C,EAAO5V,MAAMyqB,GAA8B,cAApBA,EAAMhY,YAE/C,GAAIo+C,EAAW,CACb,MAAM5/B,EAAS4/B,EAAU5/B,OACnBqpF,QAAgC/nG,GACpC,CACEZ,SAAUM,GAAW,GACrBK,WAAYu+C,EAAUp+C,UACtBwe,UAEF38B,GAEGgmH,EAAwBhpG,SAC3BR,EAAOtT,KACL88G,EAAwB/oG,SAAW,sCAEzC,MAAOT,EAAOtT,KAAK,sCAEnB,OAAOsT,CACT,CAEArc,eAAe8lH,GACbtoG,EACA2D,EACAF,EACAphB,GAEA,MAAMwc,EAAmB,GAEnB0pG,EAAiB5kG,EAAOza,QAC3BsvB,IAAW/U,EAAY5a,KAAK+9B,GAAMA,IAAGljC,SAAS80B,EAAMhY,aAGjDgoG,EAAiB7kG,EAAOza,QAC3BsvB,GAAU/U,EAAY5a,KAAK+9B,GAAMA,IAAGljC,SAAS80B,EAAMhY,aAsEtD,OAnEA+nG,EAAe1/G,KAAIrG,UACjB,GAAwB,cAApBg2B,EAAMhY,UAA2B,CACnC,MAAM1R,EAAW0uD,GAEXirD,QAA0BroG,GAC9B,CACEV,SAAUM,EACVK,WAAYmY,EAAMhY,UAClBlE,QAAS,CACPqH,OAAQ,CACN,CACE7U,WACAlK,QAAS4zB,EAAMhY,UACfA,UAAWgY,EAAMhY,UACjB1J,IAAKkJ,MAKb3d,GAEF,GAAKomH,EAAkBppG,QAKhB,CACT,MAAM9R,EAAOvH,OAAOuH,KAAKirB,EAAMwG,QACrB0pF,QAA0BpoG,GAC9B,CACEZ,SAAUM,EACVK,WAAYmY,EAAMhY,UAClBwe,OAAwB,IAAhBzxB,EAAKvF,OAAe8G,EAAW0pB,EAAMwG,QAE/C38B,GAGGqmH,EAAkBrpG,SACrBR,EAAOtT,KACLm9G,EAAkBppG,SAAO,8BAAAnV,OACOquB,EAAMhY,UAAS,MAGrD,MArBE3B,EAAOtT,KACLk9G,EAAkBnpG,SAAO,0BAAAnV,OACGquB,EAAMhY,UAAS,MAoBjD,KAGFgoG,EAAe3/G,KAAIrG,UACjB,GAAwB,cAApBg2B,EAAMhY,UAA2B,CACnC,MAAMkoG,QAA0BpoG,GAC9B,CACEZ,SAAUM,EACVK,WAAYmY,EAAMhY,UAClBwe,OAAQxG,EAAMwG,QAEhB38B,GAGGqmH,EAAkBrpG,SACrBR,EAAOtT,KACLm9G,EAAkBppG,SAAO,8BAAAnV,OACOquB,EAAMhY,UAAS,MAGrD,KAGK3B,CACT,CAEArc,eAAemmH,GACb3oG,EACA2D,EACAF,EACAphB,GAEA,MAAMwc,EAAmB,GAuBzB,OAtBuB4E,EAAYva,QAChCsvB,IAAW7U,EAAO9a,KAAK+9B,GAAMA,EAAEpmB,YAAW9c,SAAS80B,KAGvC3vB,KAAIrG,UACjB,GAAc,cAAVg2B,EAAuB,CACzB,MAAMowF,QAA4B9nG,GAChC,CACEpB,SAAUM,EACVK,WAAYmY,EACZzX,wBAAyByX,GAE3Bn2B,GAGGumH,EAAoBvpG,SACvBR,EAAOtT,KACLq9G,EAAoBtpG,SAAW,oCAErC,KAGKT,CACT,CAEArc,eAAeqmH,GACb7oG,EACA8oG,EACAzmH,GAEA,MAAMwc,EAAS,GACTkqG,QAAwB77B,GAAQltE,EAAS3d,GAE/C,GAAI0mH,EAAgB1pG,QAAS,CAC3B,MAAM9R,EAAY,CAAC,EACnB,IAAIy7G,EAAqB,CAAC,EACtBD,EAAgB7pG,KAAKxd,OACvBsnH,EAAgBD,EAAgB7pG,KAAKxd,KAAK6L,MAE5C,MAAM07G,EAAcjjH,OAAOuH,KAAKy7G,GAChC,GAAIC,EAAa,CACf,IAAIC,EAA0B,GAC9B,IAAK,MAAMv8G,KAAOs8G,EAAa,CAC7B,MAAMx+G,EAAUu+G,EAAcr8G,GAC9Bu8G,EAAiB39G,KAAK,CAAEoB,MAAKtJ,MAAOoH,GACtC,CAEA,MAAM0+G,EAAWnjH,OAAOuH,KAAKu7G,GAC7B,IAAIM,EAAoB,GACxB,IAAK,MAAMz8G,KAAOw8G,EAAU,CAC1B,MAAM1+G,EAAUq+G,EAAWn8G,GAC3By8G,EAAW79G,KAAK,CAAEoB,MAAKtJ,MAAOoH,GAChC,CAEA2+G,EAAWvgH,KAAKxF,IACY6lH,EAAiBn7G,MACxCmrC,GAASA,EAAKvsC,MAAQtJ,EAAMsJ,OAG7Bu8G,EAAiB39G,KAAK,CAAEoB,IAAKtJ,EAAMsJ,IAAKtJ,MAAO,KAE1C+lH,KAGT,IAAK,IAAI/9G,EAAQ,EAAGA,EAAQ69G,EAAiBlhH,OAAQqD,IAAS,CAC5D,MAAM+jF,EAAW85B,EAAiB79G,GAAOsB,IACnC0iF,EAAa65B,EAAiB79G,GAAOhI,MAC3CkK,EAAK6hF,GAAYC,CACnB,CACA,MAAMg6B,QAAyBl8B,GAAW,CAAEntE,UAASzS,QAAQlL,GACxDgnH,EAAiBhqG,SACpBR,EAAOtT,KACL89G,EAAiB/pG,SAAW,yCAElC,CACF,MACET,EAAOtT,KACLw9G,EAAgBzpG,SAAW,0CAG/B,OAAOT,CACT,CAEArc,eAAe+oC,GACbvrB,EACA6qB,EACAxoC,GAEA,MAAMwc,EAAS,GACTyqG,QAA6Bn4E,GACjC,CACEzxB,SAAUM,EACV6qB,YAEFxoC,GAOF,OAJKinH,EAAqBjqG,SACxBR,EAAOtT,KACL+9G,EAAqBhqG,SAAW,sCAE7BT,CACT,CCrNerc,eAAe+mH,GAC5BvpG,EACAs1C,EACAjzD,SAEMk7B,GAAwBvd,EAAS3d,GAGvC,MAGMmnH,EAmDR,SACE7lG,EACA8lG,GAEA,MAAMC,EAA8B,GAapC,OAZAD,EAAsBh8G,SAASk8G,IAC7BhmG,EAAOlW,SAAS+qB,IACd,MAAMoxF,EAAY5jH,OAAOuH,KAAKirB,EAAMwG,OAAOlwB,SAASE,KAAKtN,MACzD,IAAK,MAAMiL,KAAOi9G,EAAW,CAC3B,MAAMnkF,EAAejN,EAAMwG,OAAOlwB,SAASE,KAAKtN,KAAKkoH,EAAUj9G,IAC3D84B,GAAgBA,EAAa/jC,KAAK+C,OAASklH,GAC7CD,EAAYn+G,KAAKk6B,EAErB,IACA,IAGGikF,CACT,CArE0BG,CACtBv0D,EALkCA,EAoDtBpsD,QAAQsvB,GAAUA,EAAMhY,UAAUlJ,WAAW,WAnDlBzO,KAAK2vB,GAC5CA,EAAMhY,UAAUlV,QAAQ,QAAS,QAsBrC,SAAgC0zB,GAC9B,MAAM10B,EAAoC,CAAC,EAuB3C,OArBA00B,EAAOvxB,SAASL,IACd,MAAMswB,EAAqBtwB,EAAM1L,KAAK+C,KAElC6F,EAAOozB,GACTpzB,EAAOozB,GAAY8hC,YAAYj0D,KAAK,CAClC66B,SAAUh5B,EAAMjE,GAChBkX,WAAYjT,EAAM1L,KAAKkD,UAGzB0F,EAAOozB,GAAc,CACnBA,aACA8hC,YAAa,CACX,CACEn/C,WAAYjT,EAAM1L,KAAKkD,QACvBwhC,SAAUh5B,EAAMjE,KAIxB,IAGKnD,OAAOu7B,OAAOj3B,EACvB,EAxCuBw/G,CAAuBN,GAE/B/7G,SAAQjL,UACnB,MAAM,WAAEk7B,EAAU,YAAE8hC,GAAgBopB,QAC9BtrD,GACJ,CACEI,aACA8hC,cACA9/C,SAAUM,GAEZ3d,EACD,GAEL,CCxBA,MAAM0mB,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS4nH,GAAoB5nH,GAC1C,MAAM82C,EAAUhB,MACR51C,SAAUsvB,GAAgBruB,KAC5B,MAAEhC,EAAK,kBAAEkgB,EAAiB,SAAEyd,EAAQ,SAAE58B,GAAa6nC,MACnD,YAAEzmB,GAAgBniB,GAClB,YAAEspB,EAAW,OAAE/L,EAAM,KAAE8L,EAAI,WAAEq/F,EAAU,aAAEC,GAAiB9nH,GACzDnB,GAAoBysB,oBAAS,IAC9B,eAAEgO,GAAmByuF,KAkE3B,OACE/mH,cAACwpB,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCAAgC1qB,SAEjDmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCe,cAACorC,GAAe,CAAAnsC,SACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,IAAKn0C,SAAU,UAAW/tB,SAAC,4BAI9De,cAACiwE,GAAc,CAAAhxE,SACbmlB,eAAA,KAAAnlB,SAAA,CACGyc,GACC0I,eAAA,KAAAnlB,SAAA,CAAG,kDAEDe,cAAA,MAAAf,SACEe,cAAC2b,GAAK,CAAA1c,SACHyc,EAAOhW,KAAK0W,GACPA,EACKgI,eAAA,MAAAnlB,SAAA,CAAI,KAAGmd,KACFpc,cAAAysB,WAAA,aAKtB,8EAKNrI,eAAC+rD,GAAe,CAAAlxE,SAAA,CACdmlB,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAvGe5qB,UACvB,GAAIynH,EAAc,CAChB,MAAMn7G,EAAWvG,KAAKw2B,MAAMkrF,GACtBjqG,EAAUlR,EAASkR,QACnB2D,EAAyB7U,EAAS6U,OAClCknB,EAAsB/7B,EAAS+7B,SAC/Bi+E,EAAoBh6G,EAAS8+E,WACnChjE,IAEA/L,EAAOvP,OAAO,EAAGuP,EAAO7W,QACxB3F,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAEhD,MAAMooG,QAAwB7vD,QAAQiE,IAAI,OAClC6pD,GAAqBpoG,GAAW,GAAI2D,EAAQgO,SAC5Cg3F,GACJ3oG,GAAW,GACX2D,EACAF,EACAkO,SAEI22F,GACJtoG,GAAW,GACX2D,EACAF,EACAkO,SAEI4Z,GAAevrB,GAAW,GAAI6qB,EAAUlZ,SACxCk3F,GAAW7oG,GAAW,GAAI8oG,EAAYn3F,KAG9C9S,EAAOtT,KACL4+G,EAAgB,GAAG,GACnBA,EAAgB,GAAG,GACnBA,EAAgB,GAAG,GACnBA,EAAgB,GAAG,GACnBA,EAAgB,GAAG,IAErB,MAAMC,EAAqBzmG,EAAO9a,KAAK2vB,GAAUA,EAAMhY,YAEvDne,EAAS,CACPb,KAAM,aACNE,KAAM,CAAE+hB,YAAa2mG,KAGvB/nH,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAE1BlD,EACnB3V,QAAQqW,QAA4B5Z,WAAV4Z,EAAsBA,EAAQ,KACxDrW,QAAQqW,GAAoB,KAAVA,IAEHvX,QAAU,GAC1BwZ,EACE,UACAia,EAAe,qCAEX8tF,GAAoBvpG,GAAW,GAAI2D,EAAQgO,SAE3CsN,EAAS39B,EAAMmiB,YAAY,GAAIzD,GAAW,KAEhDgqG,GAEJ,GA0CkC5nH,SAAA,CAC3B,gCAEEpB,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,QAGnDnJ,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAASxC,EAAYxoB,SAAA,CACtB,SAEEpB,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,eAM7D,C,iIC7JO,MAAM5H,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,oNAmCjC+sD,IApBkBltD,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,2GAOzBH,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,+EAMVH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBW,QAAAR,aAAA,+CAK4BH,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,qOA2D7B4xB,IAxCkB/xB,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,uHAQrBH,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,iDAKVH,KAAOC,IAAG6C,QAAA3C,aAAA,oEAMRH,KAAOC,IAAG8C,QAAA5C,aAAA,sMAcZH,KAAOC,IAAGiD,QAAA/C,aAAA,oEAOd6xB,cAAYvN,GACnCwN,aAAa,CACXq1C,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,iBAElB6f,OAAQ,CACNtsD,WAAY,UACZi+D,UAAW,UAGbh3E,MAAO,CACL+Y,WAAY,gB,kCChHX,MAAM6B,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,mEAOjCkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,gFAMjC8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBS,QAAAN,aAAA,+CAUW+sD,IANQltD,KAAOkzC,EAACvyC,QAAAR,aAAA,yEAMCH,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,wMAgB7BitD,GAAkBptD,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,sJAY9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,2BA+B1B4xB,IA3BgB/xB,KAAOC,IAAG6C,QAAA3C,aAAA,oEAMRH,KAAOC,IAAG8C,QAAA5C,aAAA,sMAcZH,KAAOC,IAAGiD,QAAA/C,aAAA,oEAOd6xB,cAAYvN,GACnCwN,aAAa,CACXo7B,OAAQ,CACNtsD,WAAY,WAGd/Y,MAAO,CACL+Y,WAAY,gBChFZ8B,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAASkoH,GAAoBloH,GAC1C,MAAM82C,EAAUhB,MACV,YAAErtB,EAAW,KAAED,EAAI,cAAE2/F,GAAkBnoH,GACtCnB,GAAoBysB,oBAAS,GAEpC,OACEtqB,cAACwpB,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCACjBC,QAASnC,EAAYxoB,SAErBmlB,eAACuB,GAAe,CAACoC,UAAW+tB,EAAQs6B,OAAOnxE,SAAA,CACzCe,cAACorC,GAAe,CAAAnsC,SACde,cAACgwE,GAAU,CAAC/mE,MAAO,CAAEk4D,WAAY,IAAKn0C,SAAU,UAAW/tB,SAAC,qBAI9De,cAACiwE,GAAc,CAAAhxE,SACbe,cAAA,KAAAf,SAAG,mHAKLmlB,eAAC+rD,GAAe,CAAAlxE,SAAA,CACdmlB,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,EAAGhgC,gBAAiB,UAAW9M,MAAO,QAC/E4C,QAAQ,YACRiE,QAASxC,EAAYxoB,SAAA,CACtB,SAEEpB,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,QAGnDnJ,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,EAAGhgC,gBAAiB,UAAW9M,MAAO,QAC/E4C,QAAQ,YACRiE,QAASk9F,EAAcloH,SAAA,CACxB,YAEEpB,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,eAM7D,CCrBA,MAAM3H,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAASooH,GAAgBpoH,GACtC,MAAM82C,EAAUhB,MACV,MAAE32C,EAAK,SAAEe,EAAQ,kBAAEmf,EAAiB,SAAEyd,GAAaiL,MACnD,YAAEzmB,EAAW,QAAEzD,GAAY1e,GACzBe,SAAUsvB,GAAgBruB,KAE5B,KAAEqnB,EAAI,YAAEC,GAAgBzoB,GACvBqoH,EAAyBC,GAA8Bh9F,oBAAS,IAChEi9F,EAAYC,GAAiBl9F,mBAAiC,CACnE3W,IAAK,CAAE+zB,SAAU,GAAI+iD,WAAY,GAAIjqE,OAAQ,IAC7CjE,SAAU,GACVkrG,SAAU,MAEL9xC,EAAMC,GAAWtrD,mBAAS,IAC1BurD,EAAaC,GAAkBxrD,mBAAS,IACxCo9F,EAAgBC,GAAqBr9F,mBAE1C,KACKs9F,EAAqBC,GAA0Bv9F,mBAAS,IACxDw9F,EAAqBC,GAA0Bz9F,oBAAU,IACzD09F,EAAuBC,GAA4B39F,oBAAU,IAC7D49F,EAAwBC,GAA6B79F,oBAAU,IAC/D89F,EAA2BC,GAChC/9F,oBAAU,IAEL1L,EAAS4vB,GAAclkB,oBAAS,IACjC,eAAEgO,GAAmByuF,KAErBlpH,EAAO8pB,uBAAYtoB,UACvB,GAAIwd,GAAW2K,EAAM,CACnBgnB,GAAW,GAEX,MAAM85E,QAAuB7rG,GAC3BI,EACA2R,EACA1jB,OAAO6qE,EAAOE,GACd/qE,OAAO+qE,IAELyyC,EAAepsG,UACjByrG,EAAkBW,EAAevsG,KAAKxd,MACtCspH,EAAuBS,EAAevsG,KAAKwsG,WAAWC,QAGxDh6E,GAAW,EACb,IACC,CAAC3xB,EAAS2R,EAAamnD,EAAME,EAAaruD,IAE7CpoB,qBAAU,KACRvB,GAAM,GACL,CAACgf,EAAS2R,EAAa3wB,IAE1B,MA8FM4qH,EAAejlC,IACnB,MAAMklC,EAAS,IAAI/tG,KAAK6oE,GAClBmlC,EAAgBxF,aAASuF,EAAQ,GACvC,OAAO7kC,GAAe8kC,EAAc,EAGtC,OACEvkG,eAACoF,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB+D,SAAS,KACTD,WAAS,EACT,kBAAgB,2BAChB,mBAAiB,iCACjBE,QAASnC,EAAYxoB,SAAA,CAErBmlB,eAACuB,GAAe,CAAA1mB,SAAA,CACde,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCmlB,eAAC2B,KAAU,CAACC,QAAQ,KAAI/mB,SAAA,CAAC,0BAAqB4d,KAC9C7c,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAASA,KACPxC,GAAa,EAEf,aAAW,QAAOxoB,SAElBe,cAACkqB,KAAS,WAIftL,EACC5e,cAAC0lB,KAAI,CACHzc,MAAO,CACLimB,QAAS,IACTjwB,SAEFe,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,OAG1CvtB,cAACiwE,GAAc,CAAAhxE,SACbmlB,eAACqhD,KAAK,CAACx8D,MAAO,CAAEsb,MAAO,QAAStlB,SAAA,CAC9Be,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,IACV5lE,cAAC4lE,KAAS,CAAA3mE,SAAC,QACXe,cAAC4lE,KAAS,CAAC2Q,MAAM,QAAOt3E,SAAC,6BACzBe,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAC,mBAG9Be,cAACw2E,KAAS,CAAAv3E,SACO,OAAdyoH,QAAc,IAAdA,OAAc,EAAdA,EAAgBhiH,KAAI,CAACiO,EAAKzL,IACzBkc,eAACkC,IAAMkrE,SAAQ,CAAAvyF,SAAA,CACbmlB,eAACuhD,KAAQ,CAAC8Q,OAAK,EAAAx3E,SAAA,CACbe,cAAC4lE,KAAS,CAAA3mE,SACRe,cAAC+pB,KAAU,CACT,aAAW,aACXwD,KAAK,QACLtD,QAASA,KAEH89F,EADJD,IAAwB5/G,EACGA,GACC,EAAE,EAC9BjJ,SAEDiJ,IAAU4/G,EACT9nH,cAAC4oH,KAAmB,IAEpB5oH,cAAC6oH,KAAqB,QAI5B7oH,cAAC4lE,KAAS,CAAC3vB,UAAU,KAAKk2C,MAAM,MAAKltF,SAClC0U,EAAI4I,WAEPvc,cAAC4lE,KAAS,CAAC3vB,UAAU,KAAKk2C,MAAM,MAAM5V,MAAM,QAAOt3E,SAChDwpH,EAAY90G,EAAI8zG,YAEnBznH,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACvBe,cAAC8uB,KAAO,CAACvgB,MAAM,2BAAuBtP,SACpCe,cAAC+pB,KAAU,CACTC,KAAK,MACL5G,MAAM,UACN6G,QAASA,KACPu9F,EAAc7zG,GACd2zG,GAA2B,EAAK,EAChCroH,SAEFe,cAAC8oH,KAAW,aAKpB9oH,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC4lE,KAAS,CACR38D,MAAO,CAAE0/F,cAAe,EAAGogB,WAAY,GACvCC,QAAS,EAAE/pH,SAEXe,cAACipH,KAAQ,CACPC,GAAIhhH,IAAU4/G,EAEd56C,QAAQ,OACR8wB,eAAa,EAAA/+F,SAEbe,cAACmrC,KAAG,CAAAlsC,SACFe,cAACylE,KAAK,CAACl4C,KAAK,QAAQ,aAAW,YAAWtuB,SACxCmlB,eAACshD,KAAS,CAAAzmE,SAAA,CACRe,cAAC2lE,KAAQ,CAAC8Q,OAAK,EAAAx3E,SACbmlB,eAACwhD,KAAS,CACR37C,QAASA,KAEHg+F,EADJD,IAA0B9/G,EACGA,GACC,EAAE,EAChCjJ,SAAA,CACH,SAECmlB,eAAC6kG,KAAQ,CACPC,GAAIhhH,IAAU8/G,EAAsB/oH,SAAA,CAEpCe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC4lE,KAAS,CAAC3vB,UAAU,KAAKk2C,MAAM,MAAKltF,SAClC0U,EAAIA,IAAI6M,OAAO,GAAGnD,aAFR,GAKd1J,EAAIA,IAAI6M,OACNza,QACE09B,GAAsB,cAAhBA,EAAEpmB,YAEV3X,KAAK+9B,GAAMA,EAAEpmB,YACboW,OACA/tB,KAAI,CAAC2vB,EAAO8zF,IACXnpH,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC4lE,KAAS,CACR3vB,UAAU,KACVk2C,MAAM,MAAKltF,SAEVo2B,KALU8zF,aAYzBnpH,cAAC2lE,KAAQ,CAAC8Q,OAAK,EAAAx3E,SACbmlB,eAACwhD,KAAS,CACR37C,QAASA,KAEHk+F,EADJD,IAA2BhgH,EACGA,GACC,EAAE,EACjCjJ,SAAA,CACH,eAECe,cAACipH,KAAQ,CACPC,GAAIhhH,IAAUggH,EAAuBjpH,SAEpC0U,EAAIA,IAAI+zB,SAAShiC,KAChB,CAACoqC,EAAQqB,IACPnxC,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC4lE,KAAS,CACR3vB,UAAU,KACVk2C,MAAM,MACN5nE,MAAM,OAAMtlB,SAEX6wC,EAAOxuC,QANG6vC,YAczBnxC,cAAC2lE,KAAQ,CAAC8Q,OAAK,EAAAx3E,SACbmlB,eAACwhD,KAAS,CACR37C,QAASA,KAEHo+F,EADJD,IAA8BlgH,EACGA,GACC,EAAE,EACpCjJ,SAAA,CACH,mBAECe,cAACipH,KAAQ,CACPC,GAAIhhH,IAAUkgH,EAA0BnpH,SAEvC4D,OAAOumH,QAAQz1G,EAAIA,IAAI82E,YAAY/kF,KAClC,CAAC2jH,EAAWC,IACVtpH,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC4lE,KAAS,CACR3vB,UAAU,KACVk2C,MAAM,MAAKltF,SAEVoqH,KALUC,oBArF1BphH,SA/CQA,OA0JzBlI,cAACikH,KAAW,CAAAhlH,SACVe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC42E,KAAe,CACdC,mBAAoB,CAAC,EAAG,GAAI,GAAI,GAAI,KACpC9tD,MAAO6+F,EACP/xC,YAAaA,EACbF,KAAMA,EACNuuC,aA7SOltC,CACvBxqD,EACAyqD,KAEArB,EAAQqB,EAAQ,EA0SAktC,oBArTe58G,IAG/BuuE,GAAgBvuE,EAAEkG,OAAOvN,OACzB01E,EAAQ,EAAE,EAkTMkB,iBAAkB,qCAQhC92E,cAACknH,GAAmB,CAClB1/F,KAAM6/F,EACNF,cAAeA,IAlTG9nH,WACtB,MAAMmhB,EAAyB7M,EAAIA,IAAI6M,OACjCknB,EAAsB/zB,EAAIA,IAAI+zB,SAC9Bi+E,EAAoBhyG,EAAIA,IAAI82E,WAElC,IAAI8+B,EAAgB,GAEpBrqH,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAEhD,MAAM4qG,QAA8BvE,GAClCpoG,GAAW,GACX2D,EACAgO,GAGIi7F,QAA2BjE,GAC/B3oG,GAAW,GACX2D,EACAF,EACAkO,GAGIk7F,QAAoCvE,GACxCtoG,GAAW,GACX2D,EACAF,EACAkO,GAGIm7F,QAA6BvhF,GACjCvrB,GAAW,GACX6qB,EACAlZ,GAGI03F,QAAyBR,GAC7B7oG,GAAW,GACX8oG,EACAn3F,GAGF+6F,EAAcnhH,KACZohH,EAAsB,GACtBC,EAAmB,GACnBC,EAA4B,GAC5BC,EAAqB,GACrBzD,EAAiB,IAGnB,MAAMe,EAAqBzmG,EAAO9a,KAAK2vB,GAAUA,EAAMhY,YAEvDne,EAAS,CACPb,KAAM,aACNE,KAAM,CAAE+hB,YAAa2mG,KAGvB/nH,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAEhD2qG,EAAgBA,EACbxjH,QAAQqW,QAA4B5Z,WAAV4Z,EAAsBA,EAAQ,KACxDrW,QAAQqW,GAAoB,KAAVA,IAEjBmtG,EAAc1kH,OAAS,EACzBwZ,EACE,QACAia,EAAe,8BAGjBja,EACE,UACAia,EAAe,+BAGjBgvF,GAA2B,SAErBxrF,EAAS39B,EAAMmiB,YAAY,GAAIzD,GAAW,IAChD3d,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEggB,QAASpgB,EAAMmiB,YAAY,MACpE,EAqOyBspG,CAAgBrC,GACrC9/F,YAAaA,IAAM6/F,GAA2B,OAItD,C,kCCtaO,MAAM3hG,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,wEA0CjCitD,IAnCkBptD,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,gFAMzBH,aAAO0C,GAAP1C,CAAeS,QAAAN,aAAA,+EAMVH,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBW,QAAAR,aAAA,+CAK4BH,aAAO2C,KAAP3C,CAAYqC,QAAAlC,aAAA,qMAgBXH,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,qOAe9B0B,GAAS7B,aAAO4B,GAAP5B,CAAiByC,QAAAtC,aAAA,4DAgC1B4xB,IA3BgB/xB,KAAOC,IAAG6C,QAAA3C,aAAA,oEAMRH,KAAOC,IAAG8C,QAAA5C,aAAA,sMAcZH,KAAOC,IAAGiD,QAAA/C,aAAA,oEAOd6xB,cAAYvN,GACnCwN,aAAa,CACX0rC,OAAQ,CACN7xE,SAAU,WACViV,WAAY0jB,EAAMN,QAAQC,QAAQC,MAEpCijD,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,SAChBnhC,WAAY,UAEdghD,OAAQ,CACNtsD,WAAY,WAGd/Y,MAAO,CACL+Y,WAAY,gBChGZ8B,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAEe,SAAS6qH,GAAqB7qH,GAC3C,MAAM82C,EAAUhB,MACTg1E,EAAkBC,GAAuBz/F,oBAAS,IACnD,KAAE9C,EAAI,gBAAEoiG,EAAe,gBAAEI,EAAe,YAAEviG,GAC9CzoB,GACKnB,GAAoBysB,oBAAS,GAEpC,OACElG,eAACoF,KAAM,CACLhC,KAAMA,EACNiC,oBAAqB7D,GACrB+D,SAAS,KACT,kBAAgB,2BAChB,mBAAiB,iCACjBC,QAASnC,EAAYxoB,SAAA,CAGrBmlB,eAACuB,GAAe,CAAA1mB,SAAA,CACde,cAAC6pB,KAAM,CAAC9B,UAAW+tB,EAAQ4qC,OAAOzhF,SAChCe,cAAC8pB,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAClCe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK/c,MAAO,CAAE+jB,SAAU,UAAW/tB,SAAC,sBAK5DmlB,eAAC+rD,GAAe,CAAAlxE,SAAA,CACdmlB,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAAS2/F,EACT79F,UAAW/rB,cAACqlF,KAAW,IAAIpmF,SAAA,CAC5B,WAEEpB,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,QAGnDnJ,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAAS+/F,EACTj+F,UAAW/rB,cAACiqH,KAAU,IAAIhrH,SAAA,CAC3B,WAEEpB,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,QAGnDnJ,eAACQ,GAAM,CACL3b,MAAO,CAAEwnE,cAAe,EAAGvgB,aAAc,GACzClqC,QAAQ,YACR5C,MAAM,UACN6G,QAASA,IAAM8/F,GAAoB,GACnCh+F,UAAW/rB,cAAC8oH,KAAW,IAAI7pH,SAAA,CAC5B,YAEEpB,GAAQmC,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,cAIvDvtB,cAAConH,GAAe,CAAC5/F,KAAMsiG,EAAkBriG,YAAaA,IAAMsiG,GAAoB,OAGtF,CCxFe1qH,eAAe6qH,GAC5BrtG,EACA3d,GAEA,MAAMqgH,QAAuBzH,GAAgBj7F,GAAW,GAAI3d,GACtD+wC,EAAenoC,SAASa,eAAe,YAEvCwhH,EACJ,gCACA5jF,mBAAmBnhC,KAAKC,UAAUk6G,IAEpC,GAAI4K,EAAkB,CACpB,MAAM3jF,EAAe1+B,SAAS2iB,cAAc,KAE5C,GADY,OAAZwlB,QAAY,IAAZA,KAAcplB,YAAY2b,GACtBA,EAAc,CAAC,IAAD+J,EAChB/J,EAAajI,aAAa,OAAQ4rF,GAClC,MAAM3sE,EAAgB,IAAI7iC,KACpB8iC,EACJD,EAAcE,UACd,IACAF,EAAcG,WACd,IACAH,EAAcI,cACd,IACAJ,EAAcK,WACd,IACAL,EAAcM,aAChBtX,EAAajI,aACX,WAAW,YAADv3B,OACE6V,EAAO,KAAA7V,OAAIy2C,EAAY,UAErCjX,EAAaC,QACU,QAAvB8J,EAAA/J,EAAagK,kBAAU,IAAAD,GAAvBA,EAAyBE,YAAYjK,EACvC,CACF,CACF,C,UCnCO,MAAM4C,GAAYrmB,aAAO2C,KAAP3C,CAAYE,QAAAC,aAAA,oUAaxB8sD,GAAajtD,aAAOgD,MAAYf,MAAM,CACjDgB,QAAS,MADejD,CAExBO,QAAAJ,aAAA,qDCVa,SAASknG,KACtB,MAAM,MAAEjsH,EAAK,SAAEe,GAAaiB,KACtB,mBAAEnC,GAAuBG,GACzB,eAAEm6B,GAAmBH,KAW3B,OATA/4B,qBAAU,KACJpB,GACFkB,EAAS,CACPb,KAAM,mBACNE,KAAM,CAAEP,oBAAoB,IAEhC,GACC,CAACkB,EAAUlB,IAGZgC,cAACwpB,KAAM,CAAChC,MAAM,EAAKvoB,SACjBmlB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAY,CAAA7sB,SAAEq5B,EAAe,yBAC9Bt4B,cAAC+lB,KAAU,CAAA9mB,SAAEq5B,EAAe,gCAIpC,C,0DC5BO,MAAM8Q,GAAYrmB,KAAOC,IAAGC,QAAAC,aAAA,8gBAcvBlkB,GAAUA,EAAMulB,QACfvlB,GAAUA,EAAMwlB,SAEbxlB,GAAK,GAAAgI,OAAQhI,EAAMqrH,YAAkC,GAApBrrH,EAAMqrH,YAAiB,QACvDrrH,GAAK,GAAAgI,OACfhI,EAAMsrH,aAAoC,GAArBtrH,EAAMsrH,aAAkB,QAqBvCl/E,GAAkBroB,KAAO4zF,OAAMrzF,QAAAJ,aAAA,4JAY/BqnG,GAAyBxnG,KAAOC,IAAGQ,QAAAN,aAAA,+KAUlClkB,GACc,YAAtBA,EAAMwoC,MAAMpkB,MAAsB,sBAAwB,YAInDonG,GAAWznG,KAAOC,IAAGU,QAAAR,aAAA,scAOXlkB,GAAUA,EAAMwoC,MAAM1jB,aAQjC9kB,GAAUA,EAAMwoC,MAAMpkB,Q,8CC1ElC,MAAMqnG,GAAU,uBACVC,GAAc,MAEdC,GAAS,CACbC,WAAY,CACVtpH,KAAM,QACN8hB,MAAO,UACPU,WAAY,QAGd+mG,UAAW,CACTvpH,KAAM,OACN8hB,MAAO,UACPU,WAAY,SAIT,SAASgnG,GAAM9rH,GACpB,MAAM,KAAEwoB,EAAI,iBAAEujG,GAAqB/rH,GAC7B,QAAE6d,GAAYkqB,KAAU5oC,OACvB6sH,EAAWC,GAAgB3gG,mBA2Gd,UAFA/qB,aAAaC,QAAQ,kBAAoB,QAE1BmrH,GAAOE,UAC5BF,GAAOC,YA3Gf5T,EAAUj8E,iBAAO,MACjBmwF,EAAepjH,SAASa,eAAe,cACtCwiH,EAAqBC,GAA0B9gG,mBAGnD,CAAE/F,MAAO,IAAKC,OAAQ,OAElB3V,EAAUooG,GAAe3sF,mBAC9BllB,KAAKw2B,MACHr8B,aAAaC,QAAQ,kBACnB4F,KAAKC,UAAU,CACb8D,EAAG,EACHH,EAAG,MAKLqiH,EAAUA,CAACC,EAAaC,IAC5BzgH,OAAOwgH,GAAKE,SAASD,EAAQ,KAoE/B,SAASE,IACP,IAAIrpB,EAAY,IAAIznF,KACpB,OACE0wG,EAAQjpB,EAAU1kD,UAAW,GAC7B,IACA2tE,EAAQjpB,EAAUzkD,WAAa,EAAG,GAClC,IACAykD,EAAUxkD,cACV,IACAytE,EAAQjpB,EAAUvkD,WAAY,GAC9B,IACAwtE,EAAQjpB,EAAUtkD,aAAc,GAChC,IACAutE,EAAQjpB,EAAUspB,aAAc,EAEpC,CA0CA,OA3HAtsH,qBAAU,KACR,MAAMusH,EAAiBpsH,aAAaC,QAAQ,yBACxCmsH,EACFP,EAAuBhmH,KAAKw2B,MAAM+vF,IAElCpsH,aAAa6a,QACX,wBACAhV,KAAKC,UAAU,CACbkf,MAAO,IACPC,OAAQ,MAGd,GACC,IAEHplB,qBAAU,KACR,MAAMwsH,EAAsB9jH,SAASa,eAAe,gBACpD,GAAIkU,EAAS,CACX,IAAIgvG,EAAS,IAAIC,KAAOrB,GAAS,CAC/BsB,QAASrB,KAGX,GAAImB,EAAQ,CACV,IAAIpsH,EAAUosH,EAAOG,UAAUnvG,GAC/B,GAAI+uG,EAAqB,CACvB,IAAI7rH,EAEJN,EAAQwsH,KAAK,eAAe,SAAU1tH,GAEpCwB,EAAMqF,KAAKC,UAAU9G,EAAK0I,SAC1BlH,EAAMA,EAAIoI,QAAQ,cAAe,QACjC,MAAM+jH,EACJN,EAAoB/sF,UAAY,OAAS4sF,IAAc,KAAO1rH,EAChE6rH,EAAoB/sF,UAAYqtF,CAClC,IAEAzsH,EAAQwsH,KAAK,mBAAmB,SAAU1tH,GACxCwB,EAAMqF,KAAKC,UAAU9G,EAAK0I,SAC1B,MAAMklH,EAAY/mH,KAAKw2B,MAAMr9B,EAAK0I,SAClClH,EAAMA,EAAIoI,QAAQ,SAAU,QAE5ByjH,EAAoB/sF,WAClB,OAAS4sF,IAAc,kBACzB,MAAMrhH,EAAOvH,OAAOuH,KAAK+hH,GAEzB,IAAK,MAAM3iH,KAAOY,EAChBwhH,EAAoB/sF,WAAS,GAAA73B,OAAOwC,EAAG,MAAAxC,OAAK5B,KAAKC,UAC/C8mH,EAAU3iH,IACX,OAEL,GACF,CACF,CACF,IAEC,CAACqT,IAoEG2K,EACLxnB,cAAC4iG,KAAS,CACRC,gBAAiBh0F,EACjBqoG,OAAQA,CAAC1hG,EAAGjX,IAjBhB,SAAwBA,GACtBgB,aAAa6a,QACX,gBACAhV,KAAKC,UAAU,CACb8D,EAAG5K,EAAK44G,MACRnuG,EAAGzK,EAAK64G,SAGZH,EAAY,CACV9tG,EAAG5K,EAAK44G,MACRnuG,EAAGzK,EAAK64G,OAEZ,CAKyBC,CAAe94G,GACpCy4G,QAASA,EACTM,OAAQ,OACR8U,OAAQ,SAASntH,SAEjBmlB,eAAC0H,GAAW,CACV9lB,GAAG,YACHwgB,IAAKwwF,EACLzyF,MAAO4mG,EAAoB5mG,MAC3BC,OAAQ2mG,EAAoB3mG,OAC5B6lG,YAAa1qH,OAAO0sH,WACpB/B,aAAc3qH,OAAO2sH,YAAYrtH,SAAA,CAEjCmlB,eAAC0H,GAAiB,CAAC9lB,GAAG,SAAQ/G,SAAA,CAAC,wBAE7Be,cAAC+pB,KAAU,CAACE,QAASA,IAnD7B,WACE,MAAMsiG,EAAiBhtH,aAAaC,QAAQ,yBAE5C,GAAI+sH,EAAgB,CAClB,MAAMC,EAAmBpnH,KAAKw2B,MAAM2wF,GAE9BE,EAAwB,CAC5BloG,OAAmB,OAAZ2mG,QAAY,IAAZA,OAAY,EAAZA,EAAcjiH,MAAMsb,QAASioG,EAAiBjoG,MACrDC,QAAoB,OAAZ0mG,QAAY,IAAZA,OAAY,EAAZA,EAAcjiH,MAAMub,SAAUgoG,EAAiBhoG,QAGzDjlB,aAAa6a,QACX,wBACAhV,KAAKC,UAAUonH,GAEnB,CACA1B,GACF,CAkCmCtjG,GAAcxoB,SACvCe,cAACkqB,KAAS,CAAC8C,SAAS,gBAGxB5I,eAAC0H,GAAU,CAAC9lB,GAAG,UAAUwhC,MAAOwjF,EAAU/rH,SAAA,CACxCmlB,eAAC0H,GAAwB,CAAC0b,MAAOwjF,EAAU/rH,SAAA,CAAC,gBAE1Ce,cAAC+pB,KAAU,CACTE,QAASA,KACPyiG,OA7FIllF,EA8FFwjF,IAAcL,GAAOC,WACjBD,GAAOE,UACPF,GAAOC,WA3FzBK,EAAazjF,QACbjoC,aAAa6a,QAAQ,gBAAiBotB,EAAMlmC,MAN9C,IAAkBkmC,CAkGL,EAAAvoC,SAEA+rH,IAAcL,GAAOC,WACpB5qH,cAAC2sH,KAAe,CAAC3/F,SAAS,WAE1BhtB,cAAC4sH,KAAW,CAAC5/F,SAAS,gBAI5BhtB,cAAA,KAAGgG,GAAG,yBAKZhG,cAAAysB,WAAA,GAEJ,C,kCC5NO,MAAMogG,GAAS9pG,KAAOC,IAAGC,QAAAC,aAAA,0IACflkB,GAAUA,EAAM8tH,UASpBC,GAAYhqG,KAAOC,IAAGM,QAAAJ,aAAA,gFAMTH,KAAOC,IAAGQ,QAAAN,aAAA,wG,2CCb7B,MAAMyC,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,4aAQtB8jB,GAAaE,QAAQC,QAAQC,MAqBxCmI,GAAaxsB,aAAO0C,GAAP1C,CAAeO,QAAAJ,aAAA,+BAI5B8pG,GAAuBjqG,KAAOC,IAAGQ,QAAAN,aAAA,2GAOjC+pG,GAAoBlqG,KAAOC,IAAGU,QAAAR,aAAA,yEAM9Bo8B,GAAoBv8B,aAAO0C,IAAST,MAAM,CACrD+C,UAAW,sBADoBhF,CAE/BqC,QAAAlC,aAAA,oKAkBWgqG,IANmBnqG,aAAO2C,KAAP3C,CAAYuC,QAAApC,aAAA,sEAMNH,KAAOC,IAAGwC,QAAAtC,aAAA,4IAWnCiqG,GAA0BpqG,KAAOC,IAAG6C,QAAA3C,aAAA,0FAMpCq8B,GAAqBx8B,aAAO0C,GAAP1C,CAAe+C,QAAA5C,aAAA,6EAOpCi6D,GAAgBp6D,aAAO0C,GAAP1C,CAAekD,QAAA/C,aAAA,+EAChClkB,GAAYA,EAAMouH,UAAqB,OAAT,SAC7BpuH,GAAYA,EAAMquH,WAAsB,OAAT,SAK/BC,GAAevqG,KAAOC,IAAGkD,QAAAhD,aAAA,qEAMzBqqG,GAAgBxqG,KAAOC,IAAGmD,QAAAjD,aAAA,2GAO1BkoB,GAAkBroB,aAAO0C,GAAP1C,CAAeqD,QAAAlD,aAAA,oVAuBjC4xB,GAAYC,cAAYvN,IAAY,CAC/Ck5C,OAAQ,CACN7xE,SAAU,WACViV,WAAY0jB,EAAMN,QAAQC,QAAQC,MAEpC74B,MAAO,CACL6mC,KAAM,GAERstE,MAAO,CACL1sC,SAAU,IACV1gC,OAAQ,OACRgtE,UAAW,OACX99F,OAAQ,QAEVgpG,eAAgB,CACdhpG,OAAQ,OACR2F,UAAW,IAEbsjG,YAAa,CACXt+F,QAAS,OACTC,WAAY,SACZmhC,eAAgB,iBAElBm9D,iBAAkB,CAChBv+F,QAAS,OACTC,WAAY,SACZmhC,eAAgB,SAChBrhC,QAAS,Q,cCvBN,MAAMy+F,GAA2B,CACtCpxG,SAAU,GACVqxG,gBAAiB,CACfj6G,IAAK,CACH4I,SAAU,GACV8Y,MAAO,GACPprB,MAAO,IAET4jH,SAAU,CACRvsH,KAAM,GACNwyF,SAAU,YACVg6B,WAAY,GACZC,QAAS,GACTltC,SAAU,UAGdv/E,KAAM,GACN7B,QAAS,WACTwc,OAAQ,UACR+xG,cAAe,IAAIrzG,KACnBpZ,YAAa,GACbs/E,SAAU,SCjJNotC,GAAiB,YACjBC,GAAa,OAEN/mC,GAAe9nF,MAC1B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIinH,IACpD,aAAaj1G,GAA4B,MAAO5a,EAAQc,EAAS,EAetDivH,GAAoB9uH,MAC/B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIinH,GAAc,KAAAjnH,OAAImS,EAAQoH,IAAG,WACjF,aAAavH,GAA8B,MAAO5a,EAAQc,EAAS,EAGxDkvH,GAAiB/uH,MAC5B8Z,EACAja,KAEA,MAAMd,EAAS+a,EAAQk1G,gBAAe,GAAArnH,OAC/BknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIinH,GAAc,4BAAAjnH,OAChDknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIinH,IACzC,aAAaj1G,GACX,OACA5a,EACAc,EACAia,EACD,EAGUwuE,GAAiBtoF,MAC5B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIinH,GAAc,KAAAjnH,OAAImS,EAAQoH,KAC9E,aAAavH,GACX,QACA5a,EACAc,EACAia,EACD,EAGUm1G,GAAiBjvH,MAC5B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIinH,GAAc,KAAAjnH,OAAImS,EAAQoH,KAC9E,aAAavH,GAA0B,SAAU5a,EAAQc,EAAS,EAGvDqvH,GAAoBlvH,MAC/B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIinH,GAAc,UAAAjnH,OAASmS,EAAQ7X,KAAI,KACvF,aAAa0X,GAAiC,MAAO5a,EAAQc,EAAS,E,gBCtFjE,MAAM+tH,GAAoBlqG,KAAOC,IAAGC,QAAAC,aAAA,gDAE/BlkB,GAAUA,EAAMwvH,WAEfC,GAA6B1rG,KAAOC,IAAGM,QAAAJ,aAAA,wCAKvC8pG,GAAuBjqG,KAAOC,IAAGQ,QAAAN,aAAA,6IASjCwrG,GAA0B3rG,KAAOC,IAAGU,QAAAR,aAAA,+GASpC4xB,GAAYC,cAAYvN,IAAY,CAC/CmnF,iBAAkB,CAChBhlG,SAAU,IACVnF,OAAQ,OACRV,WAAW,GAAD9c,OAAKggC,GAAaE,QAAQC,QAAQC,MAC5ChkB,MAAO,OAEP,UAAW,CACTU,WAAY,UACZV,MAAO,aCxCE,I,oCAAA,OAA0B,qCCIlC,MAAMwrG,GAAqB7rG,aAAOkqG,GAAPlqG,CAAyBE,QAAAC,aAAA,4KAIvC2rG,IAQPC,GAAmB/rG,KAAOC,IAAGM,QAAAJ,aAAA,iCAI7B6rG,GAA0BhsG,KAAOC,IAAGQ,QAAAN,aAAA,sDAKpC8rG,GAAiBjsG,KAAOC,IAAGU,QAAAR,aAAA,ogBA+B3B+rG,GAAiBlsG,KAAOC,IAAGoC,QAAAlC,aAAA,0FAM3BgsG,GAAgBnsG,KAAOwnB,KAAIjlB,QAAApC,aAAA,oIAU3BisG,GAAcpsG,KAAOwnB,KAAI/kB,QAAAtC,aAAA,kFACxBlkB,GAAWA,EAAMowH,WAAa,QAAU,UAMzCC,GAAgBtsG,KAAOwnB,KAAI1kB,QAAA3C,aAAA,uDAEnBlkB,GAAWA,EAAMowH,WAAa,MAAQ,QAG9CE,GAAavsG,KAAOC,IAAG8C,QAAA5C,aAAA,6LAUvBqsG,GAAexsG,KAAOC,IAAGiD,QAAA/C,aAAA,wHAUzBssG,GAAmBzsG,KAAOC,IAAGkD,QAAAhD,aAAA,sCAK7BusG,GAA6B1sG,KAAOC,IAAGmD,QAAAjD,aAAA,sX,yBC5F7C,SAASwsG,GAAOpoG,GAML,IANM,gBACtBqoG,EAAe,OACfhZ,EAAM,KACNz9F,EAAI,OACJo3C,EAAM,OACPs/D,GACctoG,EACb,MAAM,eAAEgR,GAAmBH,KAErB03F,EAA4B,UAAlBlZ,EAAOhgC,OACjBm5C,EAAgBD,EAAUD,EAASjZ,EAAO34D,MAAQ,GAEzD,OACGh+C,cAAC8rB,GAAoB,CAAA7sB,SACnBmlB,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBe,cAAA,UAAAf,SAASq5B,EAAe,aACxBlU,eAAC0H,GAAyB,CAAA7sB,SAAA,CACxBmlB,eAAC0H,GAAgB,CAAA7sB,SAAA,CACfmlB,eAAC0H,GAAgB,CAAA7sB,SAAA,CACfe,cAAC8rB,GAAe,CAAA7sB,SACb4wH,EACC7vH,cAAA,OAAK0qB,IAAKolG,EAAetmC,IAAI,KAE7BxpF,cAAAysB,WAAA,CAAAxtB,SAAG6wH,GAAiB,OAGxB9vH,cAAC8rB,GAAa,CAACsjG,aAAcl2G,EAAKja,SAAEia,IACpClZ,cAAC8rB,GAAe,CACdsjG,WAAqC,iBAAzBO,EAAgBtxH,KAAwBY,SAEnDqxD,OAGqB,iBAAzBq/D,EAAgBtxH,MACf2B,cAAC8rB,GAAY,CAAA7sB,SACV0wH,EAAgBI,QAAQrqH,KAAKyoB,GAC5B/J,eAAC0H,GAAc,CAAA7sB,SAAA,CACI,QAAhBkvB,EAAO9vB,KACN2B,cAACsxB,KAAa,CAACtE,SAAS,UAExBhtB,cAACgwH,KAAQ,CAAChjG,SAAS,UAErBhtB,cAAA,QAAAf,SAAOkvB,EAAO6vB,iBAME,gBAAzB2xE,EAAgBtxH,MACf2B,cAAC0uH,GAAuB,CAAAzvH,SACrB0wH,EAAgBI,QAAQrqH,KACtBuqH,GACCN,EAAgBI,QAAQlrH,QAAU,GAChC7E,cAAC8rB,GAAkB,CAAA7sB,SACjBe,cAAC8rB,GAA4B,CAAA7sB,SAC1BgxH,EAAIjyE,QAFgBiyE,EAAIjyE,iBAajD,CCnFA,MAAMkyE,GAAa33G,wCACb43G,GAAgB53G,uCAChB63G,GAAgB73G,qBAmBflZ,eAAegxH,GAAiB3+E,GACrC,MAAM/6B,EATD,SAAqB+6B,GAC1B,MAAM/6B,EAAW,IAAI25G,SAIrB,OAFA35G,EAASgD,OAAO,OAAQ+3B,GACxB/6B,EAASgD,OAAO,SAAUy2G,IACnBz5G,CACT,CAGmB45G,CAAY7+E,GAEvB8+E,QAAwB73G,MAAMu3G,GAAY,CAC9Ct3G,OAAQ,OAERC,QAAS,CACP,YAAas3G,IAGfj3G,KAAMvC,IAGR,aAAa65G,EAAgBx3G,MAC/B,CCdO,MAAMy3G,GAAcnpG,IAON,IAPO,sBAC1BopG,EAAqB,mBACrBC,EAAkB,cAClB92E,EAAa,KACbnI,EAAI,cACJk/E,EAAa,MACbx0G,GACakL,EACb,MAAM,eAAEgR,GAAmBH,KACrB2d,EAAUhB,KAChB,OACE1wB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACstH,GAAY,CAAAruH,SACXe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,SACzBlV,MAAM,cAGVpjB,cAACstH,GAAY,CAAAruH,SACXmlB,eAAC+4D,GAAa,CAAAl+E,SAAA,CACZe,cAAC+9D,KAAa,CACZ9xC,SAAU2kG,EACVlnG,WAAS,EACTxpB,MAAOywH,EAAmBha,OAAO34D,KACjC5hC,QAASA,EAAMy0G,aACfrhG,SAAWjoB,GACTmpH,GAAuBtvD,IAAI,IACtBA,EACHu1C,OAAQ,IACHv1C,EAAKu1C,OACR34D,KAAMz2C,EAAEkG,OAAOvN,WAIrB0oC,WAAY,CAAEq1B,UAAW,MAE1B7hD,EAAMy0G,cACL7wH,cAACm+D,KAAc,CAACl1D,MAAO,CAAEisC,WAAY,QAAU94B,OAAK,EAAAnd,SACjDq5B,EAAe,uBAAwB,CACtCxF,MAAOwF,EAAe,kBAMhCt4B,cAAA,OAAAf,SACEe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,SACzBlV,MAAM,cAGVgB,eAACkpG,GAAY,CAAAruH,SAAA,CACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRtD,SAAU2kG,EACVlnG,WAAS,EACTxpB,MAAOywH,EAAmBrV,QAAa,OAAJ5pE,QAAI,IAAJA,OAAI,EAAJA,EAAMpwC,MACzC0kB,QAAQ,WACRwJ,SAAWjoB,GACTmpH,GAAuBtvD,IAAI,IACtBA,EACHk6C,MAAO/zG,EAAEkG,OAAOvN,cAKxBF,cAAC2kB,GAAS,CACRsH,SAAU2kG,EACV7oG,UAAW+tB,EAAQ64E,iBACnBjlG,WAAS,EACTO,QAASA,IAAM4vB,GAAc,GAAM56C,SAElCq5B,EAAe,oCAGpBt4B,cAAA,OAAAf,SACEe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,eACzBlV,MAAM,cAGVpjB,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAACl0E,MAAO,CAAEub,OAAQ,QAASvlB,SACvCe,cAAC+9D,KAAa,CACZ9xC,SAAU2kG,EACV3nF,YAAa3Q,EACX,oCAEF5O,WAAS,EACTsf,WAAS,EACTH,KAAM,EACND,WAAY,CAAEq1B,UAAW,MACzB/9D,MAAOywH,EAAmBz3G,KAC1BsW,SAAWjoB,GACTmpH,GAAuBtvD,IAAI,IACtBA,EACHloD,KAAM3R,EAAEkG,OAAOvN,gBAMzBF,cAAAysB,WAAA,MACC,EC7CA,SAASqkG,GAAkBxpG,GAGL,IAADypG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAHO,YACjC/pG,EAAW,gBACXgqG,GACwBnqG,EACxB,MAAM,sBAAEiS,GAA0BS,MAC5B,eAAE1B,GAAmBH,MACnBj5B,SAAUsvB,GAAgBruB,KAC5B,kBAAEke,EAAiB,MAAElgB,GAAU4oC,MAC/B,QAAElqB,GAAY1e,GACbie,EAAO00E,GAAYxmE,mBAAyB,CACjDhpB,KAAM,GACNk4F,aAAc,KAEVj9E,EAAWM,GAAW,GACtBi5B,EAAUhB,MACT8E,EAAYC,GAAiBvvB,oBAAS,IAEtCujG,EAAU6D,GAAepnG,mBAC9B,IACKmnG,EACH7D,gBAAiB,IACZ6D,EAAgB7D,gBACnBj6G,IAAK,IACA89G,EAAgB7D,gBAAgBj6G,IACnC4I,eAGDoxG,KAGA/uG,EAAS4vB,GAAclkB,oBAAS,IAEhC9J,EAAQu+E,GAAaz0E,mBAAmB,KACxCuR,EAAQ81F,GAAarnG,mBAAmB,KACxConB,EAAMkgF,GAAWtnG,qBAElBunG,EAAiD,QAApCd,EAAGlD,EAASD,gBAAgBC,gBAAQ,IAAAkD,OAAA,EAAjCA,EAAmCjD,WAAWljH,MACjEgC,GAAiB,WAAXA,EAAEvO,OAGLyzH,EAAkD,QAApCd,EAAGnD,EAASD,gBAAgBC,gBAAQ,IAAAmD,OAAA,EAAjCA,EAAmClD,WAAWljH,MAClEgC,GAAiB,YAAXA,EAAEvO,QAGJsxH,EAAiBoC,GAAsBznG,mBAA2B,CACvEjsB,KAAM2zH,GAAcF,GACpB/B,SAAuB,OAAd+B,QAAc,IAAdA,OAAc,EAAdA,EAAgB/B,UAAW,KAGhCkC,EAA+C,QAApChB,EAAGpD,EAASD,gBAAgBC,gBAAQ,IAAAoD,OAAA,EAAjCA,EAAmCnD,WAAWljH,MAC/DgC,GAAiB,SAAXA,EAAEvO,OAEL6zH,EAAgD,QAApChB,EAAGrD,EAASD,gBAAgBC,gBAAQ,IAAAqD,OAAA,EAAjCA,EAAmCpD,WAAWljH,MAChEgC,GAAiB,UAAXA,EAAEvO,OAGL8zH,EAAiD,QAApChB,EAAGtD,EAASD,gBAAgBC,gBAAQ,IAAAsD,OAAA,EAAjCA,EAAmCrD,WAAWljH,MACjEgC,GAAiB,WAAXA,EAAEvO,OAGLs4G,EAASkb,EACX,IACKA,EACH7zE,KAA0B,QAAnBozE,EAACS,EAAc7zE,YAAI,IAAAozE,GAAlBA,EAAoB1gH,OAASmhH,EAAc7zE,KAAO,IAE3D,CACCA,KAAM,GACN3/C,KAAM,SACNs4E,OAAQ,SAGPg6C,EAAoBD,GAAyBpmG,mBAAsB,CACxEpR,MAAiB,OAAX+4G,QAAW,IAAXA,OAAW,EAAXA,EAAaj0E,OAAQ,GAC3BsS,QAAqB,OAAb6hE,QAAa,IAAbA,OAAa,EAAbA,EAAen0E,OAAQ,GAC/B24D,SACAoZ,QAASJ,EACTrU,OAAmB,OAAZ4W,QAAY,IAAZA,OAAY,EAAZA,EAAcl0E,OAAQ,MAGxBo0E,EAAUC,GAAe/nG,mBAC9BqmG,EAAmBha,OAAO34D,MAAQ,KAE7Bs0E,EAAkBC,GAAuBjoG,oBAAS,GAEnDsmG,GAAiBr3F,EAAsB,CAC3CN,QAAS96B,EAAM4e,YACfqc,MAAOj7B,EAAM0e,QACbze,OAAQ,CAAC,mCAGLo0H,GAAkC,aAArB3E,EAASpuH,QACtBgzH,GAAiC,YAArB5E,EAASpuH,QACrBizH,GAA6B,QAArB7E,EAASpuH,QAEjBkzH,GACqB,gBAAzBhD,EAAgBtxH,KACZ,EACyB,iBAAzBsxH,EAAgBtxH,KAChB,EACA,EAsEN,SAASgiD,KACPqxE,EAAY/D,IACZlmG,GACF,CAEApoB,eAAeuzH,KAEb,MAAMjjG,QAAiB4+F,GAAkB,IAAKV,GAAYr/F,GAE1D,GAAImB,EAASzT,SAAWyT,EAAS5T,MAAQ4T,EAAS5T,KAAKxd,KAAM,CAAC,IAADs0H,EAAAC,EAC3D,MAAMC,EAAmBpjG,EAAS5T,KAAKxd,KAEjCy0H,GACsD,QAA1DH,EAAAE,EAAiBjF,WAAWljH,MAAMgC,GAAiB,SAAXA,EAAEvO,cAAgB,IAAAw0H,OAAA,EAA1DA,EAA4D70E,OAC5D2yE,EAAmBz3G,KAEf+5G,EACJF,EAAiBjF,WAAWljH,MAAMgC,GAAiB,WAAXA,EAAEvO,QAC1CsyH,EAAmBha,OAEfuc,GACwD,QAA5DJ,EAAAC,EAAiBjF,WAAWljH,MAAMgC,GAAiB,WAAXA,EAAEvO,cAAkB,IAAAy0H,OAAA,EAA5DA,EAA8D90E,OAC9D2yE,EAAmBrgE,OAErB,GAA8B,UAA1B2iE,EAAet8C,OAAoB,CACrC,MAAM5vE,EAAMksH,EAAelF,QAAQoF,cAAc,GAE3CzhF,QFlRPryC,eAA8B0H,GAA0C,IAA7BqsH,EAAWxrH,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,GAAAA,UAAA,GAAG,aAC9D,MACM+nB,QAAiBhX,MAAM5R,GACvBxI,QAAaoxB,EAAS0jG,OAC5B,OAAO,IAAIC,KAAK,CAAC/0H,GAHJ,cAGiB,CAC5BF,KAAME,EAAKF,MAAQ+0H,GAEvB,CE2Q2BG,CAAexsH,GAC5BysH,QAAmBnD,GAAiB3+E,GAE1C,IAAK8hF,EAKH,YAJAn1G,EACE,QACA,kJAKJ40G,EAAej1E,KAAOw1E,EAAWzsH,IACjCsrH,EAAYmB,EAAWzsH,IACzB,CAEA2pH,GAAuBtvD,IAAI,IACtBA,EACHloD,KAAM85G,EACN1iE,OAAQ4iE,EACRvc,OAAQsc,MAGV,MAAMQ,EAAkBV,EAAiBjF,WAAWljH,MACjDgC,GAAiB,YAAXA,EAAEvO,OAGX0zH,EAAmB,CACjB1zH,KAAM2zH,GAAcyB,GACpB1D,SAAwB,OAAf0D,QAAe,IAAfA,OAAe,EAAfA,EAAiB1D,UAAW,KAGvC2B,GAAatwD,IAAI,IAAAsyD,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,MAAM,IAClB1yD,EACHwsD,gBAAiB,IACZxsD,EAAKwsD,gBACRC,SAAU,IACLzsD,EAAKwsD,gBAAgBC,SACxB/5B,SACEi/B,EAAiBj/B,WACY,QADJ4/B,EACzBtyD,EAAKwsD,gBAAgBC,gBAAQ,IAAA6F,OAAA,EAA7BA,EAA+B5/B,UACjCxyF,MAA0B,QAApBqyH,EAAAvyD,EAAKwsD,uBAAe,IAAA+F,GAAU,QAAVC,EAApBD,EAAsB9F,gBAAQ,IAAA+F,OAAV,EAApBA,EAAgCtyH,OAAQ,GAC9CwsH,YAAgC,QAApB+F,EAAAzyD,EAAKwsD,uBAAe,IAAAiG,GAAU,QAAVC,EAApBD,EAAsBhG,gBAAQ,IAAAiG,OAAV,EAApBA,EAAgChG,aAAc,KAG/D,IAEDzvG,EACE,UACAia,EAAe,iCAEjBi6F,GAAoB,EACtB,MAAOA,GAAoB,EAE7B,CA2CAlzH,eAAe00H,GAAiBtC,GAA6B,IAADuC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1D,MAAM14G,EAAyB,CAAEpa,KAAM,GAAIk4F,aAAc,GAAIvyF,QAAS,IAqCtE,GAnC6B,KAAzBwqH,EAAgBnwH,OAClBoa,EAAOpa,KAAOg3B,EAAe,uBAAwB,CACnDxF,MAAOwF,EAAe,WAWI,QAA5Bm5F,EAAgBhyH,SAChBgyH,EAAgB7D,gBAAgB5vE,MAChCyzE,EAAgB7D,gBAAgB5vE,KAAKn5C,OAAS,MAE9C6W,EAAOzU,QAAUqxB,EAAe,yBAIJ,YAA5Bm5F,EAAgBhyH,SACmB,KAAnCkxH,EAAmBha,OAAO34D,OAE1BtiC,EAAOm1G,aAAe,wCAIM,aAA5BY,EAAgBhyH,SACY,KAA5BkxH,EAAmBz3G,OAEnBwC,EAAOxC,KAAOof,EAAe,uBAAwB,CACnDxF,MAAO,UAGqB,YAA5B2+F,EAAgBhyH,SAAyBiyC,EAAM,CACjD,MAAM8hF,QAAmBnD,GAAiB3+E,GACtC8hF,EACF7C,EAAmBrV,MAAQkY,EAAWzsH,IACjC2U,EAAOzU,QAAUqxB,EAAe,yBACzC,CAEA,GAA0C,WAApB,OAAlBq4F,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBha,OAAOhgC,SAAsBjlC,EAAM,CACzD,MAAM8hF,QAAmBnD,GAAiB3+E,GACtC8hF,EACF7C,EAAmBha,OAAO34D,KAAOw1E,EAAWzsH,IACvC2U,EAAOzU,QAAUqxB,EAAe,yBACzC,CAEAw4D,EAASp1E,GAET,MAAM24G,EACY,KAAhB34G,EAAOpa,MACiB,KAAxBoa,EAAO89E,cACY,KAAnB99E,EAAOzU,SACgB,KAAvBmV,EAAMy0G,aAEF/C,EAAoC,GAqB1C,GAnByC,SAArC6C,EAAmBha,OAAOhgC,QAC5Bm3C,EAAW1lH,KAAK,CACd/J,KAAMsyH,EAAmBha,OAAOt4G,KAChC2/C,KAAM2yE,EAAmBha,OAAO34D,KAChC24B,OAAQg6C,EAAmBha,OAAOhgC,SAIA,kBAA7Bg6C,EAAmBrV,OACE,YAA5BmW,EAAgBhyH,SAEhBquH,EAAW1lH,KAAK,CAAE/J,KAAM,QAAS2/C,KAAM2yE,EAAmBrV,QAExDqV,EAAmBz3G,MACrB40G,EAAW1lH,KAAK,CAAE/J,KAAM,OAAQ2/C,KAAM2yE,EAAmBz3G,OAEvDy3G,EAAmBrgE,QACrBw9D,EAAW1lH,KAAK,CAAE/J,KAAM,SAAU2/C,KAAM2yE,EAAmBrgE,SAEzDq/D,EAAgBI,QAAQlrH,OAAS,EAAG,CACtC,MAAMkrH,EAA6B,GAEnCJ,EAAgBI,QAAQzlH,SAAS6jB,IAC/B4hG,EAAQ3nH,KAAK,CACX/J,KAAM8vB,EAAO9vB,KACb2/C,KAAM7vB,EAAO6vB,MAAQ,KACrBs2E,aAAcnmG,EAAOmmG,aAAY,MAAAttH,OACvBmnB,EAAOmmG,cACb,KACJvtH,IAAKonB,EAAOpnB,KAAO,MACnB,IAGAgpH,EAAQlrH,OAAS,GAAGipH,EAAW1lH,KAAK,CAAE/J,KAAM,UAAW0xH,WAC7D,CACgC,YAA5B0B,EAAgBhyH,UAClBgyH,EAAgBx1G,OAAS,YAE3B,MAAMs4G,EACwB,aAA5B9C,EAAgBhyH,QACZ,CACE6B,MAA8C,QAAxC0yH,EAAAvC,EAAgB7D,gBAAgBC,gBAAQ,IAAAmG,OAAA,EAAxCA,EAA0C1yH,OAAQ,GACxDwyF,UAC0C,QAAxCmgC,EAAAxC,EAAgB7D,gBAAgBC,gBAAQ,IAAAoG,OAAA,EAAxCA,EAA0CngC,WAAY,YACxDjT,UAC0C,QAAxCqzC,EAAAzC,EAAgB7D,gBAAgBC,gBAAQ,IAAAqG,OAAA,EAAxCA,EAA0CrzC,WAAY,QACxDitC,cAE0B,YAA5B2D,EAAgBhyH,QAChB,CACE6B,MAA8C,QAAxC6yH,EAAA1C,EAAgB7D,gBAAgBC,gBAAQ,IAAAsG,OAAA,EAAxCA,EAA0C7yH,OAAQ,GACxDu/E,UAC0C,QAAxCuzC,EAAA3C,EAAgB7D,gBAAgBC,gBAAQ,IAAAuG,OAAA,EAAxCA,EAA0CvzC,WAAY,QACxDitC,cAEF,KAEN4D,GAAatwD,IAAI,IACZA,EACHwsD,gBAAiB,IACZxsD,EAAKwsD,gBACRC,SAAU0G,OAId9C,EAAgB7D,gBAAkB,IAC7B6D,EAAgB7D,gBACnBC,SAAU0G,GAGPF,IACH5C,EAAgBlxG,IA1JpBlhB,eAAoCwuH,GAClCr/E,GAAW,UACYm5C,GACrB,IAAKkmC,EAAUtxG,YACfiS,IAGWtS,SACXmC,EACE,UACAia,EAAe,iCACf,KAEFkW,GAAW,GACX6R,OAEAhiC,EAAkB,QAASia,EAAe,gCAC1CkW,GAAW,GAEf,CAwIQi5C,CAAqBgqC,GA/K7BpyH,eAAoCwuH,GAClCr/E,GAAW,UACY4/E,GACrB,IAAKP,EAAUQ,gBAAiBiE,GAChC9jG,IAGWtS,SACXmC,EACE,UACAia,EAAe,iCACf,KAEF+nB,MAEAhiC,EAAkB,QAASia,EAAe,gCAE5CkW,GAAW,EACb,CA8JQgmF,CAAqB/C,GAC7B,CAEApyH,eAAeogG,GAAkBpiF,GAC/B,MAAMwe,EAAmB,GAEnBlM,QAAiBvS,GAAS,CAAEb,WAAUc,aAAamR,GAEzD,GAAImB,EAASzT,QAAS,CACpB,MAAMmZ,EAAQ1F,EAAS5T,KAAKxd,KAEtB6L,EAAOvH,OAAOuH,KAAKirB,EAAMwG,OAAOlwB,SAASE,KAAKtN,MAEpD,IAAK,MAAMiL,KAAOY,EAAM,CACtB,MAAMH,EAAQorB,EAAMwG,OAAOlwB,SAASE,KAAKtN,KAAKqH,OAAOwE,EAAKZ,KAC1DqyB,EAAOzzB,KAAK6B,EAAM1L,KAAK+C,KACzB,CACF,CACAqwH,EAAU91F,EAAOpI,QAEjBi+F,GAAatwD,IAAI,IACZA,EACHwsD,gBAAiB,IACZxsD,EAAKwsD,gBACRj6G,IAAK,IACAytD,EAAKwsD,gBAAgBj6G,IACxB0hB,MAAOhY,OAIf,CAoBA,SAASo3G,GACPltH,EACA4mB,EACA2E,EACA5qB,GAEA,MAAMwsH,EAAiC,IAClCvmG,EACH,CAAC2E,GAAQvrB,EAAEkG,OAAOvN,OAGd6vH,EAAUJ,EAAgBI,QAChCA,EAAQ7nH,GAASwsH,EAEjB3C,GAAoB3wD,IAAI,IACnBA,EACH2uD,aAEJ,CAEA,SAAS4E,GAAmBxmG,GAC1B,MAAMymG,EAAajF,EAAgBI,QAAQhqH,QAAQgO,GAAMA,IAAMoa,IAC/D4jG,GAAoB3wD,IAAI,IACnBA,EACH2uD,QAAS6E,KAEb,CAeA,SAASC,GAAuBl+C,GAC9B+5C,GAAuBtvD,IAAI,IACtBA,EACHu1C,OAAQ,IACHv1C,EAAKu1C,OACRhgC,SACA34B,KAAiB,SAAX24B,EAAoBvV,EAAKu1C,OAAO34D,KAAO,OAGnD,CA6BA,SAASg0E,GAAcjC,GACrB,GAAIA,GAAWA,EAAQA,QAAS,CAS9B,MAP+B,kBAAtB,OAAPA,QAAO,IAAPA,OAAO,EAAPA,EAASA,QAAQ,GAAG1xH,OACS,SAAtB,OAAP0xH,QAAO,IAAPA,OAAO,EAAPA,EAASA,QAAQ,GAAG1xH,MAChB,eAC6B,iBAAtB,OAAP0xH,QAAO,IAAPA,OAAO,EAAPA,EAASA,QAAQ,GAAG1xH,MACpB,cACA,MAGR,CAAO,MAAO,MAChB,CAqCA,OAxfAe,qBAAU,MA+CVC,iBACE,MAAMswB,QAAiBrT,GAAc,CAAEC,YAAYiS,GAEnD,GAAImB,EAASzT,SAAWyT,EAAS5T,KAAM,CACrC,MAAMo2C,EAAQxiC,EAAS5T,KAAKxd,KAEtBk9D,EAAYtJ,EAAMvnD,MAAMyqB,GAAoB,cAAVA,IAExC,GAAIomC,EAAW,CACb,MAAM8jC,EAAgB,CACpB9jC,KACGtJ,EACApsD,QAAQsvB,GAAoB,cAAVA,IAClB3vB,KAAK2vB,GAAUA,IACf5B,QAELsrE,EAAUQ,EACZ,CACF,CACF,CAjEEu1B,EAAW,GAEV,IAEH11H,qBAAU,KACJyuH,EAASD,gBAAgBj6G,IAAI0hB,OAC/BoqE,GAAkBouB,EAASD,gBAAgBj6G,IAAI0hB,MAAM,GAEtD,IAEHj2B,qBAAU,KACR,GAAIw6C,EAAY,CAAC,IAAD5I,EACd,MAAMf,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,kBACrBD,EAAYO,SAAWnyC,UAAmB,IAADoyC,EACvC,MAAMC,EAAqB,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAClC,GAAkB,eAAd89B,EAAKrzC,MAAuC,cAAdqzC,EAAKrzC,KAAsB,EAC5C,IAAI2zC,YACZC,WAAWP,EAAM,SACxBkgF,EAAQlgF,EACV,MACErzB,EACE,QACAia,EAAe,iCAEnB,EAGU,OAAZ2X,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBuK,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,GACpC4I,GAAc,EAChB,IAEC,CAACD,IAEJx6C,qBAAU,KACR,IAAKsyC,EAAM,OACX,MAAMqjF,EAAY1kF,IAAIC,gBAAgBoB,GAGtC,OAFA2gF,EAAY0C,GAEL,IAAM1kF,IAAI2kF,gBAAgBD,EAAU,GAC1C,CAACrjF,IA4cFttB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACgtH,GAAoB,CAAA/tH,SACnBmlB,eAACqqG,GAA0B,CAAAxvH,SAAA,CACzBmlB,eAAC6oG,GAAiB,CAACuB,SAAUgE,GAAa,MAAQ,OAAOvzH,SAAA,CACvDe,cAACstH,GAAY,IAqCbttH,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,QACtB5O,WAAS,EACTuC,SAAU2kG,EACV1wH,MAAO2tH,EAASvsH,KAChBwnC,OAAQA,IAAM8pF,KACdpjG,SArEhB,SAAkCjoB,GAChC,MAAMjG,EAAOiG,EAAEkG,OAAOvN,MAAMuQ,cACtBwkH,EAAgB5nH,EAAqB/L,GAE3CowH,GAAatwD,IAAI,IAAA8zD,EAAAC,EAAA,MAAM,IAClB/zD,EACHwsD,gBAAiB,IACZxsD,EAAKwsD,gBACRC,SAAU,IACLzsD,EAAKwsD,gBAAgBC,SACxBC,YAAgC,QAApBoH,EAAA9zD,EAAKwsD,uBAAe,IAAAsH,GAAU,QAAVC,EAApBD,EAAsBrH,gBAAQ,IAAAsH,OAAV,EAApBA,EAAgCrH,aAAc,GAC1DxsH,KAAM2zH,IAGV3zH,KAAM2zH,EACP,GACH,EAsDgBlsF,WAAY3sB,EAAM9a,KAClB8a,QAASA,EAAM9a,WAKrBtB,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,eACtB5O,WAAS,EACTuC,SAAU2kG,EACV1wH,MAAO2tH,EAAStsH,YAChBiuB,SAAWjoB,GACTmqH,GAAatwD,IAAI,IACZA,EACH7/D,YAAagG,EAAEkG,OAAOvN,gBAOhCkkB,eAACkpG,GAAY,CAAAruH,SAAA,CACXe,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAC/Cq5B,EAAe,cAElBlU,eAAC87C,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACH9F,MAAO2tH,EAAShtC,SAChB50D,SAAU2kG,EACVphG,SAAWjoB,GACTmqH,GAAatwD,IAAI,IACZA,EACHyf,SAAUt5E,EAAEkG,OAAOvN,UAGvByoC,MAAOrQ,EAAe,YAAYr5B,SAAA,CAElCe,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SACtBq5B,EAAe,gBAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,KAAKjB,SACnBq5B,EAAe,aAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SACtBq5B,EAAe,qBAMxBt4B,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAC/Cq5B,EAAe,aAElBlU,eAAC87C,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACHimB,SAAU2kG,EACV1wH,MAAO2tH,EAASpuH,QAChB+vB,SAAWjoB,GAtL7B,SAA6B9H,GAC3B,MAAM80H,EACQ,aAAZ90H,EAAyBouH,EAASD,gBAAgBC,SAAW,KAC/C,YAAZpuH,GAAuBo1H,GAAuB,QAElDnD,GAAatwD,IAAI,IACZA,EACH3hE,UACAmuH,gBAAiB,IACZxsD,EAAKwsD,gBACRC,SAAU0G,MAGhB,CA0KoBa,CAAoB7tH,EAAEkG,OAAOvN,OAE/ByoC,MAAOrQ,EAAe,WAAWr5B,SAAA,CAEjCe,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SAAC,aAC7Be,cAACogE,KAAQ,CAAClgE,MAAO,UAAUjB,SAAC,YAC5Be,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SAAC,QACxBe,cAACogE,KAAQ,CAACn0C,UAAQ,EAAC/rB,MAAO,QAAQjB,SAAC,WAGnCe,cAACogE,KAAQ,CAACn0C,UAAQ,EAAC/rB,MAAO,MAAMjB,SAAC,mBAQzCe,cAACstH,GAAY,CAAAruH,SACVuzH,IACCxyH,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAC/Cq5B,EAAe,cAElBlU,eAAC87C,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACHimB,SAAU2kG,EACV1wH,MAAwC,QAAnCmxH,EAAExD,EAASD,gBAAgBC,gBAAQ,IAAAwD,OAAA,EAAjCA,EAAmCv9B,SAC1CtkE,SAAWjoB,GAxL/B,SACEA,GAEAmqH,GAAatwD,IAAI,IAAAi0D,EAAAC,EAAAC,EAAAC,EAAA,MAAM,IAClBp0D,EACHwsD,gBAAiB,IACZxsD,EAAKwsD,gBACRC,SAAU,IACLzsD,EAAKwsD,gBAAgBC,SACxB/5B,SAAUvsF,EAAEkG,OAAOvN,MACnBoB,MAA0B,QAApB+zH,EAAAj0D,EAAKwsD,uBAAe,IAAAyH,GAAU,QAAVC,EAApBD,EAAsBxH,gBAAQ,IAAAyH,OAAV,EAApBA,EAAgCh0H,OAAQ,GAC9CwsH,YAAgC,QAApByH,EAAAn0D,EAAKwsD,uBAAe,IAAA2H,GAAU,QAAVC,EAApBD,EAAsB1H,gBAAQ,IAAA2H,OAAV,EAApBA,EAAgC1H,aAAc,KAG/D,GACH,CAyKqC2H,CAA6BluH,GAC9CohC,MAAOrQ,EAAe,YAAYr5B,SAAA,CAElCe,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAC1Bq5B,EAAe,wCAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SACpBq5B,EAAe,kCAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,UAAUjB,SACxBq5B,EAAe,gDAQ3Bk6F,IACCpuG,eAACkpG,GAAY,CAAAruH,SAAA,CACXe,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAC/Cq5B,EAAe,WAElBt4B,cAACkgE,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACH9F,MAAO2tH,EAASD,gBAAgBj6G,IAAI0hB,MACpC7F,SAAWjoB,IACTk4F,GAAkBl4F,EAAEkG,OAAOvN,MAAgB,EAE7CyoC,MAAOrQ,EAAe,SAASr5B,SAE9BuhB,EAAO9a,KAAK2vB,GACXr1B,cAACogE,KAAQ,CAAalgE,MAAOm1B,EAAMp2B,SAChCo2B,GADYA,YAQvBr1B,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAC/Cq5B,EAAe,WAElBt4B,cAACkgE,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACH9F,MAAO2tH,EAASD,gBAAgBj6G,IAAI1J,MACpCulB,SAAWjoB,IACTmuH,OA9SKzrH,EA8Sa1C,EAAEkG,OAAOvN,WA7S/CwxH,GAAatwD,IAAI,IACZA,EACHwsD,gBAAiB,IACZxsD,EAAKwsD,gBACRj6G,IAAK,IACAytD,EAAKwsD,gBAAgBj6G,IACxB1J,cAPR,IAA2BA,CA+SN,EACD0+B,MAAOrQ,EAAe,SAASr5B,SAE9B48B,EAAOn2B,KAAKuE,GACXjK,cAACogE,KAAQ,CAAalgE,MAAO+J,EAAMhL,SAChCgL,GADYA,eAU1BuoH,IACCpuG,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACstH,GAAY,CAAAruH,SACXe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,UACzBlV,MAAM,cAGVgB,eAACkpG,GAAY,CAAAruH,SAAA,CACXe,cAACm9E,GAAa,CAACl0E,MAAO,CAAEsb,MAAO,eAAgBtlB,SAC7Ce,cAAC49D,KAAW,CAAC53C,QAAQ,WAAU/mB,SAC7BmlB,eAAC87C,KAAM,CACLj0C,SAAU2kG,EACV1wH,MAAOywH,EAAmBha,OAAOhgC,OACjCnnD,SAAWjoB,GACTstH,GACEttH,EAAEkG,OAAOvN,OAEZjB,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SACrBq5B,EAAe,UAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SACrBq5B,EAAe,UAElBt4B,cAACogE,KAAQ,CAACn0C,UAAQ,EAAC/rB,MAAO,QAASy1H,QAAM,EAAA12H,SACtCq5B,EAAe,kBAKc,SAArCq4F,EAAmBha,OAAOhgC,QACzB32E,cAACm9E,GAAa,CAAAl+E,SACZe,cAAC+9D,KAAa,CACZr0C,WAAS,EACTuC,SAAU2kG,EACV1wH,MAAOywH,EAAmBha,OAAO34D,KACjCxuB,SAAWjoB,GACTmpH,GAAuBtvD,IAAI,IACtBA,EACHu1C,OAAQ,IACHv1C,EAAKu1C,OACR34D,KAAMz2C,EAAEkG,OAAOvN,WAIrBw3E,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EACG,QAA9BqyH,EAAAX,EAAmBha,OAAO34D,YAAI,IAAAszE,OAAA,EAA9BA,EAAgCzsH,SAAU,IAAI,aAOnB,UAArC8rH,EAAmBha,OAAOhgC,QACzBvyD,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACm9E,GAAa,CAAAl+E,SACZe,cAAC+9D,KAAa,CACZr0C,WAAS,EACTuC,SAAU2kG,EACV1wH,MAAOywH,EAAmBha,OAAO34D,OAAY,OAAJtM,QAAI,IAAJA,OAAI,EAAJA,EAAMpwC,MAC/CkuB,SAAWjoB,GACTmpH,GAAuBtvD,IAAI,IACtBA,EACHu1C,OAAQ,IACHv1C,EAAKu1C,OACR34D,KAAMz2C,EAAEkG,OAAOvN,eAMzBF,cAACm9E,GAAa,CAAAl+E,SACZe,cAAC2kB,GAAS,CACRoD,UAAW+tB,EAAQ64E,iBACnBjlG,WAAS,EACTO,QAASA,IAAM4vB,GAAc,GAAM56C,SAElCq5B,EAAe,sBAM1Bt4B,cAAA,OAAAf,SACEe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,QACzBlV,MAAM,cAGVpjB,cAACstH,GAAY,CAAAruH,SACXmlB,eAAC+4D,GAAa,CAACl0E,MAAO,CAAEub,OAAQ,QAASvlB,SAAA,CACvCe,cAAC+9D,KAAa,CACZr0C,WAAS,EACTuC,SAAU2kG,EACV5nF,WAAS,EACTH,KAAM,EACN3oC,MAAOywH,EAAmBz3G,KAC1B0vB,WAAY,CAAEq1B,UAAW,MACzBzuC,SAAWjoB,GACTmpH,GAAuBtvD,IAAI,IACtBA,EACHloD,KAAM3R,EAAEkG,OAAOvN,UAGnBkc,QAASA,EAAMlD,KACfw+D,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EACJ,QAAvBsyH,EAAAZ,EAAmBz3G,YAAI,IAAAq4G,OAAA,EAAvBA,EAAyB1sH,SAAU,IAAI,eAI3CuX,EAAMlD,MACPlZ,cAACm+D,KAAc,CAAC/hD,OAAK,EAAAnd,SAAEmd,EAAMlD,YAInClZ,cAACstH,GAAY,CAAAruH,SACXe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,UACzBlV,MAAM,cAGVpjB,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAAC+9D,KAAa,CACZ9xC,SAAU2kG,EACVlnG,WAAS,EACTxpB,MAAOywH,EAAmBrgE,OAC1B9gC,SAAWjoB,GAETmpH,GAAuBtvD,IAAI,IACtBA,EACH9Q,OAAQ/oD,EAAEkG,OAAOvN,UAGrB0oC,WAAY,CAAEq1B,UAAW,IACzByZ,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EACF,QAAzBuyH,EAAAb,EAAmBrgE,cAAM,IAAAkhE,OAAA,EAAzBA,EAA2B3sH,SAAU,IAAI,eAMpD7E,cAACstH,GAAY,CAAAruH,SACXe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,WACzBlV,MAAM,cAGVpjB,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAAC49D,KAAW,CAAC53C,QAAQ,WAAU/mB,SAC7BmlB,eAAC87C,KAAM,CACLj0C,SAAU2kG,EACV9wD,aAAc,OACd5/D,MAAOyvH,EAAgBtxH,KACvBmxB,SAAWjoB,GAzcjC,SAAgClJ,GAC9B,MAAM0xH,EACK,iBAAT1xH,GAAoC,gBAATA,EACtB,CAAC,CAAE2/C,KAAM,GAAI3/C,SACd,GAEN0zH,GAAmB,MACjB1zH,OACA0xH,aAEJ,CAgcwB6F,CACEruH,EAAEkG,OAAOvN,OAEZjB,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAO,OAAOjB,SACrBq5B,EAAe,UAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,eAAejB,SAC7Bq5B,EAAe,kBAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,cAAcjB,SAC5Bq5B,EAAe,yBAMzBq3F,EAAgBI,QAAQrqH,KAAI,CAACyoB,EAAQjmB,KAAK,IAAA2tH,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,MAChB,gBAAzBtG,EAAgBtxH,KACd2B,cAACstH,GAAY,CAAAruH,SACXmlB,eAAC+4D,GAAa,CAACkwC,YAAU,EAAApuH,SAAA,CACvBe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,cACzBtS,QAAQ,cAEV5B,eAAC+4D,GAAa,CAAAl+E,SAAA,CACZe,cAAC+9D,KAAa,CACZ9xC,SAAU2kG,EACV1wH,MAAOiuB,EAAO6vB,KACdpV,WAAY,CAAEq1B,UAAW,IACzBzuC,SAAWjoB,GA/iBrC,SACEA,EACA4mB,EACAjmB,GAEA,MAAMwsH,EAAiC,IAClCvmG,EACH6vB,KAAMz2C,EAAEkG,OAAOvN,OAEX6vH,EAAUJ,EAAgBI,QAChCA,EAAQ7nH,GAASwsH,EAEjB3C,GAAoB3wD,IAAI,IACnBA,EACH2uD,aAEJ,CAgiB4BmG,CAAuB3uH,EAAG4mB,EAAQjmB,GAEpCwvE,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EAChB,QAAX42H,EAAA1nG,EAAO6vB,YAAI,IAAA63E,OAAA,EAAXA,EAAahxH,SAAU,IAAI,WAIjC8qH,EAAgBI,QAAQlrH,OAAS,GAChC7E,cAAC+pB,KAAU,CACTkC,SAAU2kG,EACV3mG,QAASA,IAAM0qG,GAAmBxmG,GAAQlvB,SAE1Ce,cAAC8hE,KAAK,aAzBG55D,GAgCnBlI,cAACstH,GAAY,CAAAruH,SACXmlB,eAACkpG,GAAY,CAAAruH,SAAA,CACXmlB,eAAC+4D,GAAa,CAACiwC,WAAS,EAACC,YAAU,EAAApuH,SAAA,CACjCe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,cACzBtS,QAAQ,cAEVhmB,cAAC49D,KAAW,CAAC53C,QAAQ,WAAU/mB,SAC7BmlB,eAAC87C,KAAM,CACLJ,aAAc,MACd7zC,SAAU2kG,EACV1wH,MAAOiuB,EAAO9vB,KACdmxB,SAAWjoB,GACTktH,GACEltH,EACA4mB,EACA,OACAjmB,GAEHjJ,SAAA,CAEDe,cAACogE,KAAQ,CAAClgE,MAAO,MAAMjB,SACpBq5B,EAAe,gBAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,eAAejB,SAC7Bq5B,EAAe,kBAMP,QAAhBnK,EAAO9vB,KACN+lB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAAC+4D,GAAa,CAACiwC,WAAS,EAACC,YAAU,EAAApuH,SAAA,CACjCe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,cACzBtS,QAAQ,cAEVhmB,cAAC+9D,KAAa,CACZ79D,MAAOiuB,EAAO6vB,KACd/xB,SAAU2kG,EACVhoF,WAAY,CAAEq1B,UAAW,IACzBzuC,SAAWjoB,GACTktH,GACEltH,EACA4mB,EACA,OACAjmB,GAGJwvE,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EAChB,QAAX62H,EAAA3nG,EAAO6vB,YAAI,IAAA83E,OAAA,EAAXA,EAAajxH,SAAU,IAAI,cAMpCuf,eAAC+4D,GAAa,CAACiwC,WAAS,EAACC,YAAU,EAAApuH,SAAA,CACjCe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,WACzBtS,QAAQ,cAEVhmB,cAAC49D,KAAW,CAAC53C,QAAQ,WAAU/mB,SAC7BmlB,eAAC87C,KAAM,CACLJ,aAAc,SACd5/D,MAAO,SAASjB,SAAA,CAEhBe,cAACogE,KAAQ,CAAClgE,MAAO,SAASjB,SAAC,gBAC3Be,cAACogE,KAAQ,CAAClgE,MAAO,UAAUjB,SAAC,wBAOlCmlB,eAAC+4D,GAAa,CAACiwC,WAAS,EAACC,YAAU,EAAApuH,SAAA,CACjCe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,WACzBtS,QAAQ,cAEVhmB,cAAC+9D,KAAa,CACZ79D,MAAOiuB,EAAOpnB,IACdklB,SAAU2kG,EACVhoF,WAAY,CAAEq1B,UAAW,KACzBzuC,SAAWjoB,GACTktH,GACEltH,EACA4mB,EACA,MACAjmB,GAGJwvE,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EACjB,QAAV82H,EAAA5nG,EAAOpnB,WAAG,IAAAgvH,OAAA,EAAVA,EAAYlxH,SAAU,IAAI,aAKhC8qH,EAAgBI,QAAQlrH,OAAS,GAChC7E,cAAC+pB,KAAU,CACTE,QAASA,IAAM0qG,GAAmBxmG,GAClClC,SAAU2kG,EAAc3xH,SAExBe,cAAC8hE,KAAK,YAMd19C,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAAC+4D,GAAa,CAACiwC,WAAS,EAACC,YAAU,EAAApuH,SAAA,CACjCe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,cACzBtS,QAAQ,cAEVhmB,cAAC+9D,KAAa,CACZ9xC,SAAU2kG,EACV1wH,MAAOiuB,EAAO6vB,KACdpV,WAAY,CAAEq1B,UAAW,IACzBzuC,SAAWjoB,GACTktH,GACEltH,EACA4mB,EACA,OACAjmB,GAGJwvE,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EAChB,QAAX+2H,EAAA7nG,EAAO6vB,YAAI,IAAAg4E,OAAA,EAAXA,EAAanxH,SAAU,IAAI,cAMpCuf,eAAC+4D,GAAa,CAACiwC,WAAS,EAACC,YAAU,EAAApuH,SAAA,CACjCe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,WACzBtS,QAAQ,cAEVhmB,cAAC49D,KAAW,CAAC53C,QAAQ,WAAU/mB,SAC7Be,cAACkgE,KAAM,CACLj0C,SAAU2kG,EACV9wD,aAAc,SACd5/D,MAAO,SAASjB,SAEhBe,cAACogE,KAAQ,CAAClgE,MAAO,SAASjB,SAAC,kBAKjCmlB,eAAC+4D,GAAa,CAACiwC,WAAS,EAACC,YAAU,EAAApuH,SAAA,CACjCe,cAAC+lB,KAAU,CACT9mB,SAAUq5B,EAAe,SACzBtS,QAAQ,cAEVhmB,cAAC+9D,KAAa,CACZ9xC,SAAU2kG,EACV1wH,MAAOiuB,EAAOmmG,aACd1rF,WAAY,CAAEq1B,UAAW,IACzBh1B,YAAY,iBACZzZ,SAAWjoB,GACTktH,GACEltH,EACA4mB,EACA,eACAjmB,GAGJwvE,aACEtzD,eAAC+vB,KAAc,CAACtlC,SAAS,MAAK5P,SAAA,EACR,QAAnBg3H,EAAA9nG,EAAOmmG,oBAAY,IAAA2B,OAAA,EAAnBA,EAAqBpxH,SAAU,IAAI,WAKzC8qH,EAAgBI,QAAQlrH,OAAS,GAChC7E,cAAC+pB,KAAU,CACTE,QAASA,IAAM0qG,GAAmBxmG,GAClClC,SAAU2kG,EAAc3xH,SAExBe,cAAC8hE,KAAK,gBAQrB,IAGuB,SAAzB6tD,EAAgBtxH,MACf2B,cAAA,OAAKiJ,MAAO,CAAEimB,QAAS,EAAG1K,OAAQ,QAASvlB,SACzCmlB,eAACO,GAAS,CACRqB,QAAQ,YACR+F,UAAW/rB,cAACwtC,KAAO,IACnBvhB,SACE0jG,EAAgBI,QAAQlrH,QAAU8tH,IAClC/B,EAEF3mG,QAASA,KACP8nG,GAAoB3wD,IAAI,IACnBA,EACH2uD,QAAS,IACJ3uD,EAAK2uD,QACR,CACE/xE,KAAM,GACN3/C,KAAMsxH,EAAgBtxH,UAGzB,EACHY,SAAA,CAEDq5B,EAAe,OAAO,IAAEA,EAAe,kBAOjDo6F,IACCtuG,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAACkwC,YAAU,EAAApuH,SACvBe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,QACzBlV,MAAM,gBAIZpjB,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAACkwC,YAAU,EAAApuH,SACvBe,cAACuvB,KAAS,CACRyZ,WAAS,EACT/c,SAAU2kG,EACVznF,QAAS,EACTnjB,QAAQ,WACR0D,WAAS,EACTxpB,MAAO2tH,EAASD,gBAAgB5vE,KAChC5hC,QAASA,EAAMnV,QACf8hC,WAAY3sB,EAAMnV,QAClBuoB,SAAWjoB,GACTmqH,GAAatwD,IAAI,IACZA,EACHwsD,gBAAiB,IACZxsD,EAAKwsD,gBACR5vE,KAAMz2C,EAAEkG,OAAOvN,oBAS9BuyH,IACCzyH,cAACywH,GAAW,CACVr0G,MAAOA,EACPy9B,cAAeA,EACfnI,KAAMA,EACNg/E,sBAAuBA,EACvBC,mBAAoBA,EACpBC,cAAeA,OAKpB4B,IACCxyH,cAAC0vH,GAAO,CACNx2G,KAAMy3G,EAAmBz3G,KACzBo3C,OAAQqgE,EAAmBrgE,OAC3BqmD,OAAQga,EAAmBha,OAC3BgZ,gBAAiBA,EACjBC,OAAQwC,SAKhBpyH,cAACs/C,GAAiB,CAAArgD,SAChBe,cAACu/C,GAAkB,CAAAtgD,SACjBmlB,eAACO,GAAS,CACRsH,SAAU2kG,EACV5qG,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAAC+8D,KAAS,IACrB9yC,QAASA,IAAM8pG,GAAiBlG,GAAU5uH,SAAA,CAEzCq5B,EAAe,6BACf1Z,GAAW5e,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,cAMhE,CC53CA,MAAM4oG,GAAiB,YACjBjI,GAAa,OAENkI,GAAe/2H,MAC1B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAImvH,IACpD,aAAan9G,GAA4B,MAAO5a,EAAQc,EAAS,EAetDm3H,GAAiBh3H,MAC5B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAImvH,IACpD,aAAan9G,GACX,OACA5a,EACAc,EACAia,EACD,EAGUm9G,GAAiBj3H,MAC5B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAImvH,GAAc,KAAAnvH,OAAImS,EAAQoH,KAC9E,aAAavH,GACX,QACA5a,EACAc,EACAia,EACD,EAGUo9G,GAAiBl3H,MAC5B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAImvH,GAAc,KAAAnvH,OAAImS,EAAQoH,KAC9E,aAAavH,GAA0B,SAAU5a,EAAQc,EAAS,EChBrDs3H,OA9C6Bx3H,IAC1C,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAK,OACLrJ,MAAM,6BACNmJ,WAAW,+BAA8BvuB,SAAA,CAEzCe,cAAA,QACEgG,GAAG,iBACHiD,MAAO,CAAEwtH,SAAU,SACnBC,UAAU,iBACVvtH,EAAE,IACFH,EAAE,IACFub,MAAM,KACNC,OAAO,KAAIvlB,SAEXe,cAAA,QAAMukB,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,qBAEpC1tB,cAAA,KAAG22H,KAAK,uBAAsB13H,SAC5Be,cAAA,QAAMukB,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,cAEpCtJ,eAAA,QAAAnlB,SAAA,CACEe,cAAA,WACEgG,GAAG,WACH4wH,oBAAoB,oBACpBryG,MAAM,IACNC,OAAO,IAAGvlB,SAEVe,cAAA,OAAK4xG,UAAU,mBAAmB//F,UAAU,wBAE9C7R,cAAA,SACEgG,GAAG,kBACHue,MAAM,MACNC,OAAO,MACPotF,UAAU,4+VAGV,ECIKilB,OA9C4B73H,IACzC,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAK,OACLrJ,MAAM,6BACNmJ,WAAW,+BAA8BvuB,SAAA,CAEzCe,cAAA,QACEgG,GAAG,iBACHiD,MAAO,CAAEwtH,SAAU,SACnBC,UAAU,iBACVvtH,EAAE,IACFH,EAAE,IACFub,MAAM,KACNC,OAAO,KAAIvlB,SAEXe,cAAA,QAAMukB,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,qBAEpC1tB,cAAA,KAAG22H,KAAK,uBAAsB13H,SAC5Be,cAAA,QAAMukB,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,cAEpCtJ,eAAA,QAAAnlB,SAAA,CACEe,cAAA,WACEgG,GAAG,WACH4wH,oBAAoB,oBACpBryG,MAAM,IACNC,OAAO,IAAGvlB,SAEVe,cAAA,OAAK4xG,UAAU,mBAAmB//F,UAAU,wBAE9C7R,cAAA,SACEgG,GAAG,kBACHue,MAAM,MACNC,OAAO,MACPotF,UAAU,w2cAGV,E,UCcV,MAAMhsF,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAOO,SAAS83H,GAAcxvG,GAAwC,IAAvC,KAAEE,EAAI,MAAE64B,GAA4B/4B,EACjE,MAAM,sBAAEiS,GAA0BS,KAC5B8b,EAAUihF,MACR73H,SAAUsvB,GAAgBruB,KAC5B,kBAAEke,EAAiB,SAAEnf,EAAQ,MAAEf,GAAU4oC,MAEzC,QAAElqB,GAAY1e,EAEdoe,EAAWM,GAAW,IAEtB,eAAEyb,GAAmBH,MACpBw9C,EAAMC,GAAWtrD,mBAAS,IAC1BurD,EAAaC,GAAkBxrD,mBAAS,IACxC0sG,EAA+BC,GACpC3sG,oBAAS,IAEJ1L,EAAS4vB,GAAclkB,oBAAS,IAChCpX,EAAQsgC,GAAalpB,mBAAS,KAC9BmnG,EAAiByF,GAAsB5sG,mBAASqjG,KAChDtmC,EAAWC,GAAgBh9D,mBAAsB,IAElD6sG,EAAgC59F,EAAsB,CAC1DN,QAAS96B,EAAM4e,YACfqc,MAAOj7B,EAAM0e,QACbze,OAAQ,CAAC,mCAGLg5H,EACJlkH,EAAOrO,OAAS,EACZwiF,EAAUthF,QAAQ8nH,GAAaA,EAASvsH,KAAKf,SAAS2S,KACtDm0E,EA4FN,SAASgwC,IACP/vC,EAAa,IACb2vC,GAAiC,EACnC,CAEA,SAASK,EAAwB/vH,GAC/BuuE,GAAgBvuE,EAAEkG,OAAOvN,OACzB01E,EAAQ,EACV,CAEA,SAASoB,EAAiBxqD,EAAYyqD,GACpCrB,EAAQqB,EACV,CAoBA53E,eAAek4H,EAAqB1J,GAClC,MAAM2J,QAnBRn4H,eAA8BwuH,GAC5B,MAAMl+F,QAAiBymG,GAAa,CAAE75G,YAAYiS,GAClD,IAAIgpG,GAAe,EAEf7nG,EAASzT,UAOQs7G,IAND7nG,EAAS5T,KAAKxd,KAEAqM,MAC7B2vF,GAAaA,EAASszB,WAAaA,EAASvsH,QAOjD,OAAOk2H,CACT,CAG6BC,CAAe5J,GAE1C,GAAK2J,EAgBHn5G,EAAkB,QAASia,EAAe,iCAhBzB,QACMg2F,GAAe,IAAKT,GAAYr/F,IAE1CtS,SACXmC,EACE,UACAia,EAAe,kCAEjBgvD,EAAaD,EAAUthF,QAAQihB,GAASA,EAAKzG,MAAQstG,EAASttG,QAE9DlC,EACE,QACAia,EAAe,+BAGrB,CAEF,CAOA,SAASo/F,EAASz7G,GAChB,OAAQA,GACN,IAAK,WACH,MAAO,UACT,IAAK,UAIL,IAAK,mBACH,MAAO,UAHT,IAAK,YACH,MAAO,UAGT,IAAK,UACH,MAAO,UACT,IAAK,WACH,MAAO,UACT,IAAK,SACH,MAAO,UACT,IAAK,iBACH,MAAO,UAET,QACE,MAAO,UAEb,CAEA,SAAS07G,EAAiBl4H,GACxB,OAAQA,GACN,IAAK,MACH,MAAO,MACT,IAAK,QACH,MAAO,SACT,IAAK,MACH,MAAO,MACT,IAAK,WACH,MAAO,WAET,QACE,MAAO,UAEb,CAEA,SAASm4H,EAAgB37G,GACvB,OAAQA,GACN,IAAK,WACH,OAAOqc,EAAe,YACxB,IAAK,WACH,OAAOA,EAAe,YACxB,IAAK,YACH,OAAOA,EAAe,aACxB,IAAK,mBACH,OAAOA,EAAe,oBACxB,IAAK,UACH,OAAOA,EAAe,WACxB,IAAK,WACH,OAAOA,EAAe,YACxB,IAAK,SACH,OAAOA,EAAe,UACxB,IAAK,iBACH,OAAOA,EAAe,kBAExB,QACE,OAAOA,EAAe,WAE5B,CAnNAl5B,qBAAU,KACH43H,GAIP33H,iBACEmvC,GAAW,GAEX,IAGE,MAAM7e,QAAiBw3D,GAAa,CAAE5qE,YAAYiS,GAClD,IAAImB,EAASzT,QAeN,MAAM,IAAIP,MAAM,QAfD,CACpB,MAAMk8G,EAAeloG,EAAS5T,KAAKxd,KAEnC+oF,EACEuwC,EAAapkG,MAAK,CAACjnB,EAAGuH,IAElB+jH,aACE,IAAIn9G,KAAKnO,EAAEwhH,eAAe+J,UAC1B,IAAIp9G,KAAK5G,EAAEi6G,eAAe+J,WAGrB,GACI,IAGnB,CA8BF,CAAE,MAAO37G,GACPiC,EAAkB,QAASia,EAAe,+BAC5C,CAEAgvD,GAAclmB,GACZA,EAAK3tC,MAAK,CAACjnB,EAAGuH,IAEV+jH,aACE,IAAIn9G,KAAKnO,EAAEwhH,eAAe+J,UAC1B,IAAIp9G,KAAK5G,EAAEi6G,eAAe+J,WAGrB,GACI,MAIjBvpF,GAAW,EACb,CA1EsC+4C,EAAe,GAElD,CAAC//D,EAAMwvG,IAgbV,OACEh3H,cAAAysB,WAAA,CAAAxtB,SACEmlB,eAACoF,KAAM,CAAChC,KAAMA,EAAMiC,oBAAqB7D,GAAY4wC,YAAU,EAAAv3D,SAAA,CAC7De,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK+B,UAAW+tB,EAAQvnC,MAAMtP,SAAC,cAGnDe,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QACE+sG,EACI,IAAMK,IACN,KAnXhBzhD,EAAQ,QACRv1B,KAoXU,aAAW,QAAOphD,SAElBe,cAACkqB,KAAS,WAIhBlqB,cAAC+2H,GAAkB,CAAA93H,SAChB+3H,EACCh3H,cAAC8wH,GAAkB,CACjBrpG,YAAa4vG,EACb5F,gBAAiBA,IAjN3BrtG,eAAC2yG,GAAgB,CAAA93H,SAAA,CACfmlB,eAAC2yG,GAA0B,CAAA93H,SAAA,CACzBmlB,eAAC2yG,GAAkB,CAAA93H,SAAA,CACjBe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrCq5B,EAAe,mBAElBt4B,cAAC+2H,GAAyB,CAAA93H,SACvBk4H,GACCn3H,cAAAysB,WAAA,CAAAxtB,SACEe,cAAC2kB,GAAS,CACRqB,QAAQ,YACR+F,UAAW/rB,cAAC2zC,KAAG,IACf1pB,QAASA,KArLvBitG,EAAmB,IACdvJ,GACHpxG,kBAEF06G,GAAiC,IAiLgBh4H,SAElCq5B,EAAe,+CAM1Bt4B,cAAC+2H,GAAa,CAAA93H,SACZe,cAAC8zC,KAAY,CACX5rB,QAASm/D,EAAU3hF,KAAKmoH,GAAaA,EAASvsH,OAC9C0yC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJr4B,MAAOgT,EACPy1B,MAAOrQ,EAAe,UACtBtS,QAAQ,WACRwJ,SAAWjoB,GAAMisC,EAAUjsC,EAAEkG,OAAOvN,OACpC+zC,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo0C,KAAM,CAAChxB,MAAM,qBAQ3BxE,EACC5e,cAAA,OAAK+nB,UAAW+tB,EAAQ43E,iBAAiBzuH,SACvCe,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,OAExC85D,EAAUxiF,OAAS,EACrB7E,cAAAysB,WAAA,CAAAxtB,SACEe,cAACwlE,KAAc,CACbvvB,UAAWD,KACXjuB,UAAW+tB,EAAQ03E,eAAevuH,SAElCmlB,eAACqhD,KAAK,CACJ19C,UAAW+tB,EAAQ4sE,MACnB,aAAW,eACXn1F,KAAK,SACL8oD,cAAY,EAAAp3E,SAAA,CAEZe,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,UAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,aAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAC,WAC1Be,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,kBAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,cAGrBv2E,cAACw2E,KAAS,CAAAv3E,UACN42E,EAAc,EACZuhD,EAAkBl8E,MAChBy6B,EAAOE,EACPF,EAAOE,EAAcA,GAEvBuhD,GACF1xH,KAAI,CAACmoH,EAAU3lH,IACfkc,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAACumB,MAAM,WAAW5V,MAAM,SAAQt3E,SACvC4uH,EAASvsH,OAEZtB,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtB04H,EAAiB9J,EAASpuH,WAE7BO,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACvBmlB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAQ,CAACghG,QAAS4K,EAAS7J,EAAS5xG,UACpC27G,EAAgB/J,EAAS5xG,aAG9Bjc,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtB4kF,GAAegqC,EAASG,iBAE3B5pG,eAACwhD,KAAS,CAAA3mE,SAAA,CACRe,cAAC8uB,KAAO,CACNvgB,MAAO+pB,EACJu1F,EAASttG,IAAe,OAAT,QAChBthB,SAEFe,cAAC+pB,KAAU,CACTE,QAASA,IAnNnC,SAA4B4jG,GAC1BqJ,EAAmBrJ,GACnBoJ,GAAiC,EACnC,CAgNyCe,CAAmBnK,GAAU5uH,SAE1C4uH,EAASttG,IAAiBvgB,cAAC8lG,KAAU,IAAtB9lG,cAACg2F,KAAI,QAGzBmhC,GACCn3H,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,UAAUr5B,SACvCe,cAAC+pB,KAAU,CACTE,QAASA,IAAMstG,EAAqB1J,GAAU5uH,SAE9Ce,cAACssB,KAAM,QAK2B,aAAvCqrG,EAAiB9J,EAASpuH,UACzBO,cAAC8uB,KAAO,CAACvgB,MAAO,iBAAiBtP,SAC/Be,cAAC+pB,KAAU,CACTE,QAASA,IAhKrC5qB,eAAmCwuH,GACjC,MAAMl+F,QAAiBw+F,GAAkB,IAAKN,GAAYr/F,GAE1D,GAAImB,EAASzT,QAAS,CACpB,MAAM+7G,EAAgB5wC,EAAU97E,WAC7Byb,GAASA,EAAKzG,MAAQstG,EAASttG,MAE5B23G,EAAiBvoG,EAAS5T,KAAKxd,KAAK0d,OAG1C,GAFsB4xG,EAAS5xG,SAETi8G,EAAgB,CACpC,MAAMC,EAAkB,IACnBtK,EACH5xG,OAAQ0T,EAAS5T,KAAKxd,KAAK0d,QAGvBm8G,EAAgB/wC,GAEC,IAAnB4wC,IACFG,EAAcH,GAAiBE,EAC/B7wC,EAAa8wC,IAGf/5G,EACE,UACAia,EAAe,8BAEnB,MACEja,EACE,UACAia,EAAe,8BAGrB,MACEja,EAAkB,QAASia,EAAe,4BAE9C,CA4H2C+/F,CAAoBxK,GAAU5uH,SAE7Ce,cAAC8Y,KAAO,aA3CH5Q,cAuDzBlI,cAAA,KAAGiJ,MAAO,CAAEkhB,UAAW,IAAKlrB,SAAEq5B,EAAe,0BAIjDlU,eAAA,OAAK2D,UAAW+tB,EAAQ23E,YAAYxuH,SAAA,CAClCmlB,eAAA,OAAAnlB,SAAA,CACEe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,YAAYr5B,SACzCe,cAAC+pB,KAAU,CACTE,QAASA,KACP/qB,EAAS,CAAEb,KAAM,gCACjBa,EAAS,CAAEb,KAAM,6BAA8B,EAC/CY,SAEFe,cAAC62H,GAAY,QAGjB72H,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,cAAcr5B,SAC3Ce,cAAC+pB,KAAU,CACTE,QAASA,KACP/qB,EAAS,CAAEb,KAAM,gCACjBa,EAAS,CAAEb,KAAM,8BAA+B,EAChDY,SAEFe,cAACw2H,GAAa,WAInBnvC,EAAUxiF,OAAS,GAClB7E,cAACikH,KAAW,CAAAhlH,SACVe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC42E,KAAe,CACdC,mBAAoB,CAAC,EAAG,GAAI,GAAI,GAAI,KACpC9tD,MAAOquG,EAAkBvyH,OACzBgxE,YAAaA,EACbF,KAAMA,EACNuuC,aAAcltC,EACdmtC,oBAAqBmT,EACrBxgD,iBAAkBx+C,EAChB,4DA6ClB,C,UC9jBO,MAAMggG,GAAgCv1G,KAAOC,IAAGC,QAAAC,aAAA,gEAM1Cq1G,GAAuBx1G,aAAOuqG,GAAPvqG,CAAoBO,QAAAJ,aAAA,mHC8C3Cs1G,GAA2B,CACtCl3H,KAAM,GACNC,YAAa,GACbssH,SAAU,GACV5xG,OAAQ,WACRrV,UAAW,GACXonH,cAAe,IAAIrzG,KACnB4B,SAAU,GACVk8G,OAAQ,CAAEh5H,QAAS,QAAS62E,OAAQ,ICR/B,SAASoiD,GAAoBpxG,GAA2C,IAAD0sG,EAAAC,EAAA0E,EAAAC,EAAA,IAAzC,YAAEnxG,EAAW,gBAAEoxG,GAAwBvxG,EAC1E,MAAM,eAAEgR,GAAmBH,MACnBj5B,SAAUsvB,GAAgBruB,KAC5B,kBAAEke,EAAiB,MAAElgB,GAAU4oC,MAC/B,QAAGlqB,GAAY1e,EACfoe,EAAWM,GAAW,IACrBT,EAAO00E,GAAYxmE,mBAAyB,CACjDhpB,KAAM,GACNusH,SAAU,MAELjvG,EAAS4vB,GAAclkB,oBAAS,IAChCiwE,EAAUu+B,GAAexuG,mBAASuuG,GAAmBL,KACrDJ,EAAeW,GAAoBzuG,mBAAsB,IAE1DmnG,EACJ2G,EAAcxtH,MAAMijH,GAAaA,EAASvsH,OAASi5F,EAASszB,YAC5DF,GAEIqL,EACoC,QADxBhF,EAChBvC,EAAgB7D,gBAAgBC,gBAAQ,IAAAmG,GAEvC,QAFuCC,EAAxCD,EAA0ClG,WAAWljH,MAClDqrC,GAAiC,SAAnBA,EAAU53C,cAC1B,IAAA41H,OAFuC,EAAxCA,EAEGj2E,KAECi7E,GACJxH,EAAgBhyH,QACZu5H,GA2FN35H,eAAe65H,IACb1qF,GAAW,UACY6nF,GAAe97B,EAAU/rE,IAEnCtS,SACXmC,EACE,UACAia,EAAe,iCACf,KAEF7Q,KAEApJ,EAAkB,QAASia,EAAe,gCAE5CkW,GAAW,EACb,CAEAnvC,eAAe85H,IACb3qF,GAAW,UACY8nF,GAAe/7B,EAAU/rE,IAEnCtS,SACXmC,EACE,UACAia,EAAe,iCACf,KAEFkW,GAAW,GACX/mB,MAEApJ,EAAkB,QAASia,EAAe,gCAC1CkW,GAAW,GAEf,CAyCA,OAlJApvC,qBAAU,MAKVC,iBACEmvC,GAAW,GAEX,IACE,MAAM7e,QAAiBw3D,GAAa,CAAE5qE,YAAYiS,GAElD,IAAImB,EAASzT,QAIN,MAAM,IAAIP,MAAM,QAJD,CACpB,MAAMk8G,EAAeloG,EAAS5T,KAAKxd,KAEnCw6H,EAAiBlB,EACnB,CAiBF,CAAE,MAAOz7G,GACPiC,EAAkB,QAASia,EAAe,+BAC5C,CAEAkW,GAAW,EACb,CApCE+4C,EAAe,GAEd,IAoCHnoF,qBAAU,KACR,GAAI65H,EAAiB,CAAC,IAADG,EACnB,MAAMC,EAAyC,GACzCC,EAAS,WACTC,EAAiBN,EAAgBhlG,MAAMqlG,GACvCE,EAAwBj/B,EAAS3zF,WAAa,GAE9C6yH,EAAsC,QAArBL,EAAG7+B,EAAS3zF,iBAAS,IAAAwyH,OAAA,EAAlBA,EAAoBrzH,QAC3Cc,KAA4B,OAAd0yH,QAAc,IAAdA,KAAgBh5H,SAASsG,EAASA,aAG/C0yH,IACY,OAAdA,QAAc,IAAdA,KAAgBjvH,SAAQ,CAACzD,EAAUqB,KAAW,IAADwxH,EAC3CL,EAAkBjxH,KAAK,CACrBvB,WACAyvE,QAAoC,QAA5BojD,EAAAF,EAAsBtxH,UAAM,IAAAwxH,OAAA,EAA5BA,EAA8BpjD,SAAU,IAChD,IAGa,OAAjBmjD,QAAiB,IAAjBA,KAAmBnvH,SAASzD,GAC1BwyH,EAAkBjxH,KAAKvB,KAGzBiyH,GAAa13D,IAAI,IACZA,EACHx6D,UAAWyyH,MAGjB,IAGC,CAAC5H,IA6EFrtG,eAAC4oG,GAAoB,CAAA/tH,SAAA,CACnBmlB,eAAC6oG,GAAiB,CAAAhuH,SAAA,CAChBe,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAACl0E,MAAO,CAAE0gB,SAAU,eAAgB1qB,SAChDmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAAC,WAGnDmlB,eAAC87C,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACH9F,MAAOq6F,EAASt+E,OAChBuT,SAAWjoB,GACTuxH,GAAa13D,IAAI,IACZA,EACHnlD,OAAQ1U,EAAEkG,OAAOvN,UAGrByoC,MAAM,SAAQ1pC,SAAA,CAEde,cAACogE,KAAQ,CAAClgE,MAAO,SAASjB,SAAEq5B,EAAe,YAC3Ct4B,cAACogE,KAAQ,CAAClgE,MAAO,WAAWjB,SACzBq5B,EAAe,wBAM1Bt4B,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,QACtB5O,WAAS,EACTxpB,MAAOq6F,EAASj5F,KAChBkuB,SAAWjoB,GACTuxH,GAAa13D,IAAI,IACZA,EACH9/D,KAAMiG,EAAEkG,OAAOvN,UAGnB6oC,WAAY3sB,EAAM9a,KAClB8a,QAASA,EAAM9a,WAKrBtB,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,eACtB5O,WAAS,EACTxpB,MAAOq6F,EAASh5F,YAChBiuB,SAAWjoB,GACTuxH,GAAa13D,IAAI,IACZA,EACH7/D,YAAagG,EAAEkG,OAAOvN,gBAOhCF,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,cAAa/G,SAAC,aAC7Be,cAACkgE,KAAM,CACLC,QAAQ,cACRn6D,GAAG,8BACH9F,MAAOq6F,EAASszB,SAChBr+F,SAAWjoB,IAAMoyH,OApGDzxC,EAoGsB3gF,EAAEkG,OAAOvN,WAnG3D44H,GAAa13D,IAAI,IACZA,EACHysD,SAAU3lC,MAHd,IAA8BA,CAoGgD,EAChEv/C,MAAM,WACNvsB,QAASA,EAAMyxG,SAAS5uH,SAEvBm5H,EAAc1yH,KAAKmoH,GAClB7tH,cAACogE,KAAQ,CAAoBlgE,MAAO2tH,EAASvsH,KAAKrC,SAC/C4uH,EAASvsH,MADGusH,EAASttG,SAK5BvgB,cAACm+D,KAAc,CAACn4D,GAAG,cAAcoW,QAASA,EAAMyxG,SAAS5uH,SACtDmd,EAAMyxG,kBAMf7tH,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR0D,WAAS,EACTxpB,MAAO+4H,EACPhtG,UAAQ,QAKdjsB,cAACstH,GAAY,CAAAruH,SACXe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,wCACzBlV,MAAM,cAGVgB,eAACkpG,GAAY,CAAAruH,SAAA,CACXe,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,YAAW/G,SACvBq5B,EAAe,0CAElBlU,eAAC87C,KAAM,CACLC,QAAQ,YACRn6D,GAAG,8BACH9F,MAAOq6F,EAASk+B,OAAOh5H,QACvB+vB,SAAWjoB,GACTuxH,GAAa13D,IAAI,IACZA,EACHq3D,OAAQ,CACNh5H,QAAS8H,EAAEkG,OAAOvN,MAClBo2E,OAAQikB,EAASk+B,OAAOniD,QAAU,OAIxC3tC,MAAOrQ,EAAe,wCAAwCr5B,SAAA,CAE9De,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAEq5B,EAAe,WAC1Ct4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,UAC1Be,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAC1Bq5B,EAAe,sBAKxBt4B,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,UACtB5O,WAAS,EACTrrB,KAAK,SACL6B,MAAOq6F,EAASk+B,OAAOniD,OACvB9mD,SAjTwBjoB,IAClC,MAAMwD,EAAQxD,EAAEkG,OAAOvN,MACjB05H,EAAch0H,OAAOmF,IAEtB8uH,MAAMD,IAAgBA,GAAe,GACxCd,GAAa13D,IAAI,IACZA,EACHq3D,OAAQ,CACNniD,OAAQsjD,GAAe,EAAIA,EAAc,EACzCn6H,QAAS2hE,EAAKq3D,OAAOh5H,SAAW,YAGtC,SA0SK86F,EAAS3zF,WAAa2zF,EAAS3zF,UAAU/B,OAAS,GACjDuf,eAAC0H,GAA+B,CAAA7sB,SAAA,CAC9BmlB,eAAC0H,GAAsB,CAAA7sB,SAAA,CACrBe,cAACstH,GAAY,CAAAruH,SACXe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EACR,8CAEFlV,MAAM,cAGS,QADJu1G,EACdp+B,EAAS3zF,iBAAS,IAAA+xH,OAAA,EAAlBA,EAAoBjzH,KAAKmB,GACxB7G,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR0D,WAAS,EACTxpB,MAAO2G,EAASA,YAChB,GAAAG,OALmBH,EAASA,SAAQ,KAAAG,OAAIH,EAASyvE,cAUzDlyD,eAAC0H,GAAsB,CAAA7sB,SAAA,CACrBe,cAACstH,GAAY,CAAAruH,SACXe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,UACzBlV,MAAM,cAGS,QADJw1G,EACdr+B,EAAS3zF,iBAAS,IAAAgyH,OAAA,EAAlBA,EAAoBlzH,KAAI,CAACmB,EAAUqB,IAClClI,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR0D,WAAS,EACTxpB,MAAO2G,EAASyvE,OAChBj4E,KAAK,SACLmxB,SAAWjoB,GAlO7B,SAA4BW,EAAe4xH,GACzC,MAAMC,EAAex/B,EAAS3zF,UAC1BmzH,IACFA,EAAa7xH,GAAOouE,OAASwjD,EAE7BhB,GAAa13D,IAAI,IACZA,EACHx6D,UAAWmzH,MAGjB,CAwNmCC,CAAmB9xH,EAAOX,EAAEkG,OAAOvN,UANpCgI,cAe9BlI,cAACs/C,GAAiB,CAAArgD,SAChBe,cAACu/C,GAAkB,CAAAtgD,SACjBmlB,eAACO,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAAC+8D,KAAS,IACrB9yC,QAASA,IA9NnB,SAA0BswE,GACxB,MAAM7+E,EAAyB,CAAEpa,KAAM,GAAIusH,SAAU,IAE/B,KAAlBtzB,EAASj5F,OACXoa,EAAOpa,KAAOg3B,EAAe,uBAAwB,CACnDxF,MAAOwF,EAAe,WAIA,KAAtBiiE,EAASszB,WACXnyG,EAAOmyG,SAAWv1F,EAAe,uBAAwB,CACvDxF,MAAO,cAIXg+D,EAASp1E,GACW,KAAhBA,EAAOpa,MAAmC,KAApBoa,EAAOmyG,WAC/BtzB,EAASh6E,IAAM44G,IAAyBD,IAC5C,CA4MyBe,CAAiB1/B,GAAUt7F,SAAA,CAEzCq5B,EAAe,6BACf1Z,GAAW5e,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,cAMhE,CCvbA,MAAM2sG,GAAkB,aAClBhM,GAAa,OAENiM,GAAgB96H,MAC3B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIkzH,IACpD,aAAalhH,GAA6B,MAAO5a,EAAQc,EAAS,EAevDk7H,GAAkB/6H,MAC7B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIkzH,IACpD,aAAalhH,GACX,OACA5a,EACAc,EACAia,EACD,EAGUkhH,GAAkBh7H,MAC7B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIkzH,GAAe,KAAAlzH,OAAImS,EAAQoH,KAC/E,aAAavH,GACX,QACA5a,EACAc,EACAia,EACD,EAGUmhH,GAAkBj7H,MAC7B8Z,EACAja,KAEA,MAAMd,EAAM,GAAA4I,OAAMknH,GAAU,KAAAlnH,OAAImS,EAAQoD,SAAQ,KAAAvV,OAAIkzH,GAAe,KAAAlzH,OAAImS,EAAQoH,KAC/E,aAAavH,GAA0B,SAAU5a,EAAQc,EAAS,ECnBrDq7H,OA7C4Bv7H,IACzC,MAAM,KAAEuuB,GAASvuB,EAEjB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,SACf/I,OAAQ+I,GAAQ,SAChBjJ,QAAQ,YACRD,MAAM,6BACNmJ,WAAW,+BAA8BvuB,SAAA,CAEzCe,cAAA,QACEgG,GAAG,iBACHiD,MAAO,CAAEwtH,SAAU,SACnBC,UAAU,iBACVvtH,EAAE,IACFH,EAAE,IACFub,MAAM,KACNC,OAAO,KAAIvlB,SAEXe,cAAA,QAAMukB,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,qBAEpC1tB,cAAA,KAAG22H,KAAK,uBAAsB13H,SAC5Be,cAAA,QAAMukB,MAAM,KAAKC,OAAO,KAAKkJ,KAAK,cAEpCtJ,eAAA,QAAAnlB,SAAA,CACEe,cAAA,WACEgG,GAAG,WACH4wH,oBAAoB,oBACpBryG,MAAM,IACNC,OAAO,IAAGvlB,SAEVe,cAAA,OAAK4xG,UAAU,mBAAmB//F,UAAU,wBAE9C7R,cAAA,SACEgG,GAAG,kBACHue,MAAM,MACNC,OAAO,MACPotF,UAAU,ogLAGV,ECOV,MAAMhsF,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAOO,SAASw7H,GAAclzG,GAAwC,IAAvC,KAAEE,EAAI,MAAE64B,GAA4B/4B,EACjE,MAAMwuB,EAAUihF,MACV,sBAAEx9F,GAA0BS,MAC5B,eAAE1B,GAAmBH,MACnBj5B,SAAUsvB,GAAgBruB,KAC5B,kBAAEke,EAAiB,SAAEnf,EAAQ,MAAEf,GAAU4oC,MACzC,QAAElqB,GAAY1e,EACdoe,EAAWM,GAAW,IAErB84D,EAAMC,GAAWtrD,mBAAS,IAC1BurD,EAAaC,GAAkBxrD,mBAAS,IACxCmwG,EAA+BC,GACpCpwG,oBAAS,IACJ1L,EAAS4vB,GAAclkB,oBAAS,IAChCpX,EAAQsgC,GAAalpB,mBAAS,KAC9BuuG,EAAiB8B,GACtBrwG,mBAAoBkuG,KACfoC,EAAWC,GAAgBvwG,mBAAsB,KACjDwwG,EAAcC,GAAmBzwG,mBAASgO,EAAe,SAC1D6+F,EAAgC59F,EAAsB,CAC1DN,QAAS96B,EAAM4e,YACfqc,MAAOj7B,EAAM0e,QACbze,OAAQ,CAAC,mCAGL48H,EACJ9nH,EAAOrO,OAAS,EACZ+1H,EAAU70H,QAAQqyB,GAAMA,EAAE92B,KAAKf,SAAS2S,KACxC0nH,EAoFN,SAASK,IACPJ,EAAa,IACbH,GAAiC,GACjClnF,EAAU,GACZ,CAEA,SAAS8jF,EAAwB/vH,GAC/BuuE,GAAgBvuE,EAAEkG,OAAOvN,OACzB01E,EAAQ,EACV,CAEA,SAASoB,EAAiBxqD,EAAYyqD,GACpCrB,EAAQqB,EACV,CAuBA53E,eAAe67H,EAAqB3gC,GAClC,MAAM4gC,QAtBR97H,eAA8Bk7F,GAC5B,MAAM5qE,QAAiBwqG,GAAc,CACnC59G,WACAi9E,aAAc,IACbhrE,GACH,IAAI2sG,GAAe,EAEfxrG,EAASzT,UAOQi/G,IANAxrG,EAAS5T,KAAKxd,KAEAqM,MAC9BwwH,GAAcA,EAAUC,gBAAkB9gC,EAASj5F,QAOxD,OAAO65H,CACT,CAG6BG,CAAe/gC,GAE1C,GAAK4gC,EAsBH98G,EAAkB,QAASia,EAAe,iCAtBzB,QACMi+F,GACrB,IACKh8B,EACHh+E,YAEFiS,IAGWtS,SACXmC,EACE,UACAia,EAAe,kCAEjBuiG,EAAaD,EAAU70H,QAAQw1H,GAASA,EAAKh7G,MAAQg6E,EAASh6E,QAE9DlC,EACE,QACAia,EAAe,+BAGrB,CAEF,CAhJAl5B,qBAAU,KACHq7H,GAIPp7H,iBACEmvC,GAAW,GAEX,IAIE,MAAM7e,QAAiBymG,GACrB,CACE75G,YAEFiS,GAGF,IAAImB,EAASzT,QAeN,MAAM,IAAIP,MAAM,QAfD,CACpB,MAAM6/G,EAAe7rG,EAAS5T,KAAKxd,KAEnCs8H,EACEW,EAAa/nG,MAAK,CAACjnB,EAAGuH,IAElB+jH,aACE,IAAIn9G,KAAKnO,EAAEwhH,eAAe+J,UAC1B,IAAIp9G,KAAK5G,EAAEi6G,eAAe+J,WAGrB,GACI,IAGnB,CA+BF,CAAE,MAAO37G,GACPiC,EAAkB,QAASia,EAAe,+BAC5C,CAEAkW,GAAW,EACb,CArEsCitF,EAAe,GAElD,CAACj0G,EAAMizG,IAmVV,OACEz6H,cAAAysB,WAAA,CAAAxtB,SACEmlB,eAACoF,KAAM,CAAChC,KAAMA,EAAMiC,oBAAqB7D,GAAY4wC,YAAU,EAAAv3D,SAAA,CAC7De,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK+B,UAAW+tB,EAAQvnC,MAAMtP,SAC/Cq5B,EAAe,cAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QACEwwG,EACI,IAAMQ,IACN,KA3RhBrlD,EAAQ,QACRv1B,KA4RU,aAAW,QAAOphD,SAElBe,cAACkqB,KAAS,WAIhBlqB,cAAC+2H,GAAkB,CAAA93H,SAChBw7H,EACCz6H,cAAC04H,GAAoB,CACnBjxG,YAAawzG,EACbpC,gBAAiB,IACZA,EACHt8G,cA3MZ6H,eAAC2yG,GAAgB,CAAA93H,SAAA,CACfmlB,eAAC2yG,GAA0B,CAAA93H,SAAA,CACzBmlB,eAAC2yG,GAAkB,CAAA93H,SAAA,CACjBe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrCq5B,EAAe,mBAElBt4B,cAAC+2H,GAAyB,CAAA93H,SACvBk4H,GACCn3H,cAAC2kB,GAAS,CACRqB,QAAQ,YACR+F,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAASA,KApGrB0wG,EAAmBnC,SACnBkC,GAAiC,IAmGcz7H,SAElCq5B,EAAe,6CAKxBt4B,cAAC+2H,GAAa,CAAA93H,SACZe,cAAC8zC,KAAY,CACX5rB,QAAS0yG,EAAUl1H,KAAKquC,GAAWA,EAAOzyC,OAC1C0yC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJr4B,MAAOgT,EACPy1B,MAAOrQ,EAAe,UACtBtS,QAAQ,WACRwJ,SAAWjoB,GAAMisC,EAAUjsC,EAAEkG,OAAOvN,OACpC+zC,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo+C,KAAU,CAACh7B,MAAM,qBAQ/BxE,EACC5e,cAAA,OAAK+nB,UAAW+tB,EAAQ43E,iBAAiBzuH,SACvCe,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,OAExCqtG,EAAU/1H,OAAS,EACrB7E,cAAA,OAAAf,SACEe,cAACwlE,KAAc,CACbvvB,UAAWD,KACXjuB,UAAW+tB,EAAQ03E,eAAevuH,SAElCmlB,eAACqhD,KAAK,CACJ19C,UAAW+tB,EAAQ4sE,MACnB,aAAW,eACXn1F,KAAK,SACL8oD,cAAY,EAAAp3E,SAAA,CAEZe,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAC,OAC1Be,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,UAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAC,aAC1Be,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAC,WAC1Be,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,kBAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,gBAGrBv2E,cAACw2E,KAAS,CAAAv3E,UACN42E,EAAc,EACZmlD,EAAkB9/E,MAChBy6B,EAAOE,EACPF,EAAOE,EAAcA,GAEvBmlD,GACFt1H,KAAK60F,IACLn2E,sBAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CACRumB,MAAM,WACN5V,MAAM,SACNtsD,QAASA,IAvF/B5qB,eAA4B2G,SACpB40B,UAAU8gG,UAAUC,UAAU31H,GACpC+0H,EAAgBziG,EAAe,UACjC,CAoFqCsjG,CAAarhC,EAASh6E,KAAO,IAAIthB,SAEhDe,cAAC8uB,KAAO,CAACvgB,MAAOusH,EAAc9rG,UAAU,QAAO/vB,SAC7Ce,cAAA,QACEgzC,aAAcA,IACZ+nF,EAAgBziG,EAAe,SAChCr5B,SAEAs7F,EAASh6E,UAIhBvgB,cAAC4lE,KAAS,CAACumB,MAAM,WAAW5V,MAAM,SAAQt3E,SACvCs7F,EAASj5F,OAEZtB,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAEs7F,EAASszB,WACpC7tH,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,UAjHpBgd,EAkHcs+E,EAASt+E,OA/GnCqc,EADJ,WADCrc,EAEkB,SAGA,eA8GRjc,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtB4kF,GAAe0W,EAASyzB,iBAE3BhuH,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBk4H,GACC/yG,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,QAAQr5B,SACrCe,cAAC+pB,KAAU,CACTE,QAASA,IAjIvC,SAA4BswE,GAC1BogC,EAAmBpgC,GACnBmgC,GAAiC,EACnC,CA8H6CmB,CAAmBthC,GAAUt7F,SAE5Ce,cAAC48D,KAAQ,QAGb58D,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,UAAUr5B,SACvCe,cAAC+pB,KAAU,CACTE,QAASA,IAAMixG,EAAqB3gC,GAAUt7F,SAE9Ce,cAACmsC,KAAU,eAxCRouD,EAASh6E,KA7F1C,IAAyBtE,CA4IR,aAMTjc,cAAA,KAAGiJ,MAAO,CAAEkhB,UAAW,IAAKlrB,SAAEq5B,EAAe,0BAGjDlU,eAAA,OAAK2D,UAAW+tB,EAAQ23E,YAAYxuH,SAAA,CAClCmlB,eAAA,OAAAnlB,SAAA,CACEe,cAAC8uB,KAAO,CAACvgB,MAAO,YAAYtP,SAC1Be,cAAC+pB,KAAU,CACTE,QAASA,KACP/qB,EAAS,CAAEb,KAAM,+BACjBa,EAAS,CAAEb,KAAM,8BAA+B,EAChDY,SAEFe,cAACu6H,GAAY,QAGjBv6H,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,cAAcr5B,SAC3Ce,cAAC+pB,KAAU,CACTE,QAASA,KACP/qB,EAAS,CAAEb,KAAM,+BACjBa,EAAS,CAAEb,KAAM,8BAA+B,EAChDY,SAEFe,cAACw2H,GAAa,WAIpBx2H,cAACikH,KAAW,CAAAhlH,SACVe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC42E,KAAe,CACdC,mBAAoB,CAAC,EAAG,GAAI,GAAI,GAAI,KACpC9tD,MAAOiyG,EAAkBn2H,OACzBgxE,YAAaA,EACbF,KAAMA,EACNuuC,aAAcltC,EACdmtC,oBAAqBmT,EACrBxgD,iBAAkBx+C,EAChB,4DA+ChB,C,sBCvdO,MAAMinB,GAAqBx8B,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2HAkBpCq1G,IANgCx1G,KAAOC,IAAGM,QAAAJ,aAAA,gEAMnBH,aAAOuqG,GAAPvqG,CAAoBS,QAAAN,aAAA,wGAQ3C2pG,GAAS9pG,KAAOC,IAAGU,QAAAR,aAAA,0IACflkB,GAAUA,EAAM8tH,UASpBC,GAAYhqG,KAAOC,IAAGoC,QAAAlC,aAAA,gFA8BtB44G,IAxBkB/4G,aAAO0C,GAAP1C,CAAeuC,QAAApC,aAAA,gSASvBlkB,GAAUA,EAAM+8H,SAAW,YAOpC/8H,GAAUA,EAAMokB,OAAS,SAIzBpkB,GAAUA,EAAMg9H,eAAiB,qBAIhBjnF,cAAYvN,IAAY,CACrDmnF,iBAAkB,CAChBhlG,SAAU,IACVnF,OAAQ,OACRV,WAAW,GAAD9c,OAAKggC,GAAaE,QAAQC,QAAQC,MAC5ChkB,MAAO,OAEP,UAAW,CACTU,WAAY,UACZV,MAAO,c,mEC9EN,MAAM64G,GAAuBl5G,aAAO6B,KAAP7B,EAAeuE,IAAA,IAAC,MAAEkgB,GAAOlgB,EAAA,MAAM,CAC/D9C,OAAQ,OACR8wB,OAAQ,OACT,ICqDI,SAAS4mF,GAAqB50G,GAG1B,IAH2B,YACpCG,EAAW,iBACX00G,GACM70G,EACN,MAAM,sBAAEiS,GAA0BS,KAC5B8hG,EAAkBhwG,MAClB,SAAE+0D,GAAaC,IACf,eAAExoD,GAAmBH,MACrB,kBAAE9Z,EAAiB,MAAElgB,GAAU4oC,MAC/B,QAAElqB,GAAY1e,EACdoe,EAAWM,GAAW,IACrBT,EAAO00E,GAAYxmE,mBAA2B,CACnDiwE,SAAU,GACV7oD,KAAM,GACN0qF,cAAe,MAETl9H,SAAUsvB,GAAgBruB,KAC3By6H,EAAWC,GAAgBvwG,mBAAsB,KACjD+8D,EAAWC,GAAgBh9D,mBAAsB,KAEjD1L,EAAS4vB,GAAclkB,oBAAS,IAChCsvB,EAAYC,GAAiBvvB,oBAAS,IACtC+xG,EAAaC,GAAkBhyG,mBACpC6xG,EAAiBI,cAAgB,KAG5B7qF,EAAMkgF,GAAWtnG,sBAEjB8wG,EAAWoB,GAAgBlyG,mBAAS6xG,GAErCnsE,EACiB,gBAArBorE,EAAUn/G,QACVsd,EAAsB,CACpBN,QAAS96B,EAAM4e,YACfqc,MAAOj7B,EAAM0e,QACbze,OAAQ,CAAC,mCAEPq+H,EACS,UAAb57C,EAAuB8iB,KAAoB,UAAb9iB,EAAuB6iB,KAAOtC,KAExDy3B,EACJ+B,EAAUhwH,MAAM2vF,GAAaA,EAASj5F,OAAS85H,EAAUC,iBACzD7C,GAEI/G,EACJpqC,EAAUz8E,MACPy8E,GAAcA,EAAU/lF,OAASu3H,EAAgBhL,YAC/CF,GAEPvuH,qBAAU,KACiB,gBAArBg8H,EAAUn/G,QA8IhB5c,iBACEmvC,GAAW,GAEX,IAGE,MAAM7e,QAAiBymG,GAAa,CAAE75G,YAAYiS,GAElD,IAAImB,EAASzT,QAIN,MAAM,IAAIP,MAAM,QAJD,CACpB,MAAM+gH,EAAgB/sG,EAAS5T,KAAKxd,KAEpCs8H,EAAa6B,EACf,CAiBF,CAAE,MAAOtgH,GACPiC,EAAkB,QAASia,EAAe,+BAC5C,CAEAkW,GAAW,EACb,CAhL0CitF,EAAe,GAEtD,IAEHr8H,qBAAU,KACwB,KAA5Bg8H,EAAUC,eAAiD,KAAzBxC,EAAgBv3H,MAKxDjC,iBACE,MAAMswB,QAAiBw3D,GACrB,CACE5qE,YAEFiS,GAEEmB,EAASzT,QACXorE,EAAa33D,EAAS5T,KAAKxd,MAE3B8f,EAAkB,QAASia,EAAe,+BAE9C,CAhBIivD,EAAe,GAEhB,CAAC6zC,EAAUC,cAAexC,IAgB7B,MAAM8D,EAAsBh1G,uBAAY,KAAO,IAADqsG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAwI,EAC5C,MAAMC,GACoC,QAAxC7I,EAAAvC,EAAgB7D,gBAAgBC,gBAAQ,IAAAmG,GAGvC,QAHuCC,EAAxCD,EAA0ClG,WAAWljH,MAClDqrC,GACoB,WAAnBA,EAAU53C,MAA0C,SAArB43C,EAAU0gC,gBAC5C,IAAAs9C,OAHuC,EAAxCA,EAGGj2E,OAAQ,GAEPg7E,GACoC,QAAxC9E,EAAAzC,EAAgB7D,gBAAgBC,gBAAQ,IAAAqG,GAEvC,QAFuCC,EAAxCD,EAA0CpG,WAAWljH,MAClDqrC,GAAiC,SAAnBA,EAAU53C,cAC1B,IAAA81H,OAFuC,EAAxCA,EAEGn2E,OAAQ,GAEP8+E,GACoC,QAAxC1I,EAAA3C,EAAgB7D,gBAAgBC,gBAAQ,IAAAuG,GAEvC,QAFuCwI,EAAxCxI,EAA0CtG,WAAWljH,MAClDqrC,GAAiC,WAAnBA,EAAU53C,cAC1B,IAAAu+H,OAFuC,EAAxCA,EAEG5+E,OAAQ,GAEPi7E,EACwB,aAA5BxH,EAAgBhyH,SACY,YAA5BgyH,EAAgBhyH,QAAqB,GAAAuH,OAC9B61H,EAAc,KAAA71H,OACf61H,EAAiB,KAAO7D,EAAeA,EAAY,KAAAhyH,OACjDgyH,EAAe,OAAS8D,EAAiBA,GAC7CrL,EAAgB7D,gBAAgB5vE,MAAQ,GAExCp3C,EAAYqyH,EAAgBhlG,MAAM,YAElC8oG,EAA8B,OAATn2H,QAAS,IAATA,OAAS,EAATA,EAAWlB,KAAI,CAACmB,EAAUqB,KAAW,IAAD80H,EAC7D,MAAM7rD,EAAmB0nD,EAAgBjyH,WAAa,GAChDq2H,EAAcr3H,OAA8B,QAAxBo3H,EAAC7rD,EAAiBjpE,UAAM,IAAA80H,OAAA,EAAvBA,EAAyB1mD,QAAU,EAE9D,MAAO,CACLzvE,WACA3G,MAAOm8H,EAAYY,GAA4B/0H,IAAUrB,EAC1D,IAGH,IAAIq2H,EAAgBjE,EAEF,OAAlB8D,QAAkB,IAAlBA,KAAoBzyH,SAAS6yH,IAC3BD,EAAgBA,EAAc/0H,QAC5Bg1H,EAAYt2H,SACZs2H,EAAYj9H,MACb,IAGCg9H,GAAiBb,EAAYx3H,OAAS,GACxC23H,GAAcp7D,IAAI,IACbA,EACHlgC,QAASg8F,KAEb,GAEC,CAACzL,EAAiB4K,IAqGrBh9H,eAAe+9H,IACb5uF,GAAW,GACX,IAAIrnC,GAAS,EACb,GAAIuqC,EAAM,CACR,MAAM8hF,QAAmBnD,GAAiB3+E,GAE1C,GAAI8hF,EAAY,QACS4G,GACrB,IACKgB,EACH1pF,KAAM8hF,EAAWzsH,KAEnBynB,IAGWtS,SACXmC,EACE,UACAia,EAAe,kCACf,KAEFnxB,GAAS,EACTsgB,MAEApJ,EACE,QACAia,EAAe,iCAEjBnxB,GAAS,EAEb,MACEkX,EAAkB,QAASia,EAAe,2BAC1CnxB,GAAS,EAGX,OADAqnC,GAAW,GACJrnC,CACT,CACF,CAEA9H,eAAeg+H,IACb,IAAI7J,EAAa,CAAEp3G,OAAO,EAAOrV,IAAKq0H,EAAU1pF,MAGhD,GAFIA,IAAM8hF,QAAmBnD,GAAiB3+E,IAEzC8hF,EAAWp3G,MAwBdiC,EAAkB,QAASia,EAAe,+BAxBrB,QACE+hG,GACrB,IACKe,EAEH1pF,KAAM8hF,EAAWzsH,KAEnBynB,IAGWtS,SACXmC,EACE,UACAia,EAAe,kCACf,KAEF7Q,KAEApJ,EACE,QACAia,EAAe,gCAGrB,CAGF,CAxKAl5B,qBAAU,KACR,GAAIw6C,EAAY,CAAC,IAAD5I,EACd,MAAMf,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,kBACrBD,EAAYO,SAAWnyC,UAAmB,IAADoyC,EACvC,MAAMC,EAAqB,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAElC,GACgB,aAAd89B,EAAKrzC,MACS,6BAAdqzC,EAAKrzC,KACL,CACAm+H,GAAcp7D,IAAI,IAAWA,EAAM1vB,KAAMA,EAAKpwC,SAE9C,MAAMywC,EAAS,IAAIC,WACnBD,EAAOE,WAAWP,EAAM,SACxBkgF,EAAQlgF,GACRK,EAAOpnB,OAAStrB,eAAgBkI,GAC9B,GAAIwqC,GAAUA,EAAO5qC,QACU,kBAAlB4qC,EAAO5qC,OAAqB,CACrC,MAAMm2H,QAAkBptF,KAAI,CAC1BqtF,UAAW,CAAC,IAAK,OAChBC,WAAWzrF,EAAO5qC,QAEf0R,EAAUhW,OAAOuH,KAAKkzH,EAAU,IAAI53H,KACvCixG,GAAWA,IAGRv4E,EAAmB,GACzB,IAAK,IAAI3xB,EAAI,EAAGA,EAAIoM,EAAQhU,OAAQ4H,IAClC2xB,EAAOh2B,KAAKk1H,EAAU,GAAGzkH,EAAQpM,KAGnC6vH,EAAel+F,GACfo+F,GAAcp7D,IAAI,IACbA,EACHm7D,aAAcn+F,KAElB,CAEJ,CACF,MACE/f,EACE,QACAia,EAAe,iCAEnB,EAGU,OAAZ2X,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBuK,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,GACpC4I,GAAc,EAChB,IAEC,CAACD,IAEJx6C,qBAAU,KACRu9H,GAAqB,GAEpB,CAAClL,EAAiB4K,IAmKrB,OACEr8H,cAAAysB,WAAA,CAAAxtB,SACEmlB,eAAC4oG,GAAoB,CAAA/tH,SAAA,CACnBmlB,eAAC6oG,GAAiB,CAAAhuH,SAAA,CAChBe,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,QACtB5O,WAAS,EACTuC,SAAU+jC,EACV9vD,MAAOk7H,EAAU95H,KACjBkuB,SAAWjoB,GACTi1H,GAAcp7D,IAAI,IACbA,EACH9/D,KAAMiG,EAAEkG,OAAOvN,gBAMzBF,cAACstH,GAAY,CAAAruH,SACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,eACtB5O,WAAS,EACTuC,SAAU+jC,EACV9vD,MAAOk7H,EAAU75H,YACjBiuB,SAAWjoB,GACTi1H,GAAcp7D,IAAI,IACbA,EACH7/D,YAAagG,EAAEkG,OAAOvN,gBAOhCkkB,eAACkpG,GAAY,CAAAruH,SAAA,CACXe,cAACm9E,GAAa,CAACl0E,MAAO,CAAEub,OAAQ,QAASvlB,SACvCe,cAACooG,KAAuB,CACtBC,MAAOC,KACPtD,OAAQy3B,EAAgBx9H,SAExBe,cAACy9H,KAAsB,CACrB/zG,WAAS,EACT1D,QAAQ,SACRiG,SAAU+jC,EACV0tE,MAAM,EACN/0F,MAAOrQ,EAAe,eACtBlc,QAASA,EAAMggH,cACfrzF,WAAY3sB,EAAMggH,cAClBl8H,MAAO,IAAIya,KAAKygH,EAAUuC,gBAC1Bj1B,QAAS,IAAI/tF,KACb6U,SAAWg0D,IACTg5C,GAAcp7D,IAAI,IACbA,EACHu8D,eAAgB,IAAIhjH,KAAK,GAAD3T,OAAIw8E,OAC3B,QAKXxjF,cAACm9E,GAAa,CAAAl+E,SACX+wD,EACChwD,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,YACtB5O,WAAS,EACTuC,SAAU+jC,EACV9vD,MAAOk7H,EAAUC,gBAGnBj3G,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAC/Cq5B,EAAe,cAElBt4B,cAACkgE,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACH9F,MAAOk7H,EAAUC,cACjBv7D,aAAcs7D,EAAUC,cACxBpvG,SAAU+jC,EACVxgC,SAAWjoB,GAvG7B,SACEA,GAEiBqzH,EAAUhwH,MACxB2vF,GAAaA,EAASj5F,OAASiG,EAAEkG,OAAOvN,SAGzCs8H,GAAcp7D,IAAI,IACbA,EACHi6D,cAAevwH,OAAOvD,EAAEkG,OAAOvN,UAGrC,CA2FmC09H,CAAqBr2H,GACtC6U,QAASA,EAAMm+E,SACf5xD,MAAOrQ,EAAe,YAAYr5B,SAEjC27H,EAAUl1H,KAAK60F,GACdv6F,cAACogE,KAAQ,CAAoBlgE,MAAOq6F,EAASj5F,KAAKrC,SAC/Cs7F,EAASj5F,MADGi5F,EAASh6E,SAK5BvgB,cAACm+D,KAAc,CAACn4D,GAAG,cAAcoW,QAASA,EAAMm+E,SAASt7F,SACtDmd,EAAMm+E,gBAKfv6F,cAACm9E,GAAa,CAAAl+E,SACZmlB,eAACw5C,KAAW,CAAC53C,QAAQ,WAAW0D,WAAS,EAAAzqB,SAAA,CACvCe,cAAC69D,KAAU,CAAC73D,GAAG,oCAAmC/G,SAAC,WAGnDmlB,eAAC87C,KAAM,CACLC,QAAQ,oCACRn6D,GAAG,8BACHimB,UAAQ,EACR/rB,MAAOk7H,EAAUn/G,OACjB0sB,MAAM,SAAQ1pC,SAAA,CAEde,cAACogE,KAAQ,CAAClgE,MAAO,cAAcjB,SAC5Bq5B,EAAe,gBAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,cAAcjB,SAC5Bq5B,EAAe,gBAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,YAAYjB,SAC1Bq5B,EAAe,eAElBt4B,cAACogE,KAAQ,CAAClgE,MAAO,QAAQjB,SAAC,qBAMlCmlB,eAACkpG,GAAY,CAAAruH,SAAA,CACXe,cAACm9E,GAAa,CAAAl+E,SACZe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR2iB,MAAOrQ,EAAe,YACtB5O,WAAS,EACTxpB,MAAOk7H,EAAU1pF,KACjBt1B,QAASA,EAAMs1B,KACf3I,WAAY3sB,EAAMs1B,KAClBzlB,SAAU+jC,MAGdhwD,cAAC2kB,GAAS,CACRoD,UAAW+zG,EAAgBnN,iBAC3BjlG,WAAS,EACTO,QAASA,IAAM4vB,GAAc,GAC7B5tB,SAAU+jC,EAAS/wD,SAElBq5B,EAAe,iBAInB8iG,EAAU1pF,MACTttB,eAAC0H,GAAsB,CAAA7sB,SAAA,CACrBe,cAAC+lB,KAAU,CACTC,QAAQ,KACR/mB,SAAUq5B,EAAe,WACzBlV,MAAM,YAERpjB,cAACm9E,GAAa,CAACkwC,YAAU,EAAApuH,SACvBe,cAACuvB,KAAS,CACRvJ,QAAQ,WACR0D,WAAS,EACTsf,WAAS,EACTG,QAAS,EACTjpC,MAAOk7H,EAAUl6F,QACjBjV,SAAU+jC,EACV/mD,MAAO,CACL40H,WAAY,mBAOrBzC,EAAU0C,UACT15G,eAAC63G,GAAoB,CACnBj2G,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAAC+9H,KAAa,IACzB9zG,QAASA,IAvLGljB,KACtB,MAAMqhB,EAAOtgB,SAAS2iB,cAAc,KACpCrC,EAAKylB,KAAO9mC,EACZqhB,EAAK41G,SAAW,gBAChB51G,EAAKqe,OAAO,EAmLaw3F,CAAe7C,EAAU0C,UAAY,IAAI7+H,SAAA,CAEvD,mBACA2f,GAAW5e,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,WAK1DvtB,cAACs/C,GAAiB,CAAArgD,SAChBe,cAAC8rB,GAAoB,CAAA7sB,SACnBmlB,eAACO,GAAS,CACRqB,QAAQ,YACR5C,MAAM,UACN2I,UAAW/rB,cAAC+8D,KAAS,IACrB9yC,QAASA,IArPrB,SAA2BmxG,GACzB,MAAM1/G,EAA2B,CAC/B6+E,SAAU,GACV7oD,KAAM,GACN0qF,cAAe,IAGe,KAA5BhB,EAAUC,gBACZ3/G,EAAO6+E,SAAWjiE,EAAe,uBAAwB,CACvDxF,MAAOwF,EAAe,eAIH,KAAnB8iG,EAAU1pF,OACZh2B,EAAOg2B,KAAOpZ,EAAe,uBAAwB,CACnDxF,MAAO,UAIPglG,aAAS,IAAIn9G,KAAKygH,EAAUuC,gBAAiB,IAAIhjH,QACnDe,EAAO0gH,cAAgB9jG,EACrB,8CAIJw4D,EAASp1E,GAGa,KAApBA,EAAO6+E,UACS,KAAhB7+E,EAAOg2B,MACkB,KAAzBh2B,EAAO0gH,gBAEPhB,EAAU76G,IAAM88G,IAA0BD,IAC9C,CAoN2Bc,CAAkB9C,GACjCnvG,SAAU+jC,EAAS/wD,SAAA,CAElBq5B,EAAe,6BACf1Z,GAAW5e,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,gBAOlE,CCnjBO,MAAM4wG,GAA6B,CACxCR,eAAgB,IAAIhjH,KACrBrZ,KAAM,GACL+5H,cAAe,GACfp/G,OAAQ,cACRM,SAAU,GACVyxG,cAAe,IAAIrzG,KACnBpZ,YAAa,GACbmwC,KAAM,GACN8nD,aAAc,GACdt4D,QAAS,ICELtb,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAOO,SAASo/H,GAAc92G,GAAwC,IAAvC,KAAEE,EAAI,MAAE64B,GAA4B/4B,EACjE,MAAMwuB,EAAUihF,MAER73H,SAAUsvB,GAAgBruB,KAC5B,kBAAEke,EAAiB,SAAEnf,EAAQ,MAAEf,GAAU4oC,MACzC,sBAAExN,GAA0BS,MAC5B,QAAEnd,GAAY1e,EAEdoe,EAAWM,GAAW,GACtBs6G,EAAgC59F,EAAsB,CAC1DN,QAAS96B,EAAM4e,YACfqc,MAAOj7B,EAAM0e,QACbze,OAAQ,CAAC,oCAEL,eAAEk6B,GAAmBH,MACpBw9C,EAAMC,GAAWtrD,mBAAS,IAC1BurD,EAAaC,GAAkBxrD,mBAAS,IACxC+zG,EAAgCC,GACrCh0G,oBAAS,IACJ1L,EAAS4vB,GAAclkB,oBAAS,IAChCpX,EAAQsgC,GAAalpB,mBAAS,KAE9Bi0G,EAAYC,GAAiBl0G,mBAAuB,KACpD6xG,EAAkBsC,GACvBn0G,mBAAqB6zG,IAEjBO,EACJxrH,EAAOrO,OAAS,EACZ05H,EAAWx4H,QAAQqyB,GAAMA,EAAE7b,SAAShc,SAAS2S,KAC7CqrH,EAONl/H,eAAes/H,EAAeC,GAC5BpwF,GAAW,GAGX,IACE,MAAM7e,QAAiBwqG,GACrB,CAAE59G,WAAUi9E,aAAc,IAC1BhrE,GAGF,IAAImB,EAASzT,QAeN,MAAM,IAAIP,MAAM,QAfD,CACpB,MAAM+gH,EAAgB/sG,EAAS5T,KAAKxd,KAEpCigI,EACE9B,EAAcjpG,MAAK,CAACjnB,EAAGuH,IAEnB+jH,aACE,IAAIn9G,KAAKnO,EAAEwhH,eAAe+J,UAC1B,IAAIp9G,KAAK5G,EAAEi6G,eAAe+J,WAGrB,GACI,IAGnB,CAiCF,CAAE,MAAO37G,GACPiC,EACE,QACAia,EAAe,gCAEnB,CAEAkW,GAAW,EACb,CAOA,SAASqwF,IACPL,EAAc,IACdF,GAAkC,EACpC,CAOA,SAAShH,EAAwB/vH,GAC/BuuE,GAAgBvuE,EAAEkG,OAAOvN,OACzB01E,EAAQ,EACV,CAEA,SAASoB,EAAiBxqD,EAAYyqD,GACpCrB,EAAQqB,EACV,CAEA,SAASygD,EAASz7G,GAChB,OAAQA,GACN,IAAK,YACH,MAAO,UACT,IAAK,cACH,MAAO,UACT,IAAK,cACH,MAAO,UAET,QACE,MAAO,UAEb,CA8BA,SAAS27G,EAAgB37G,GACvB,OAAQA,GACN,IAAK,YACH,OAAOqc,EAAe,aACxB,IAAK,cACH,OAAOA,EAAe,cACxB,IAAK,QACH,OAAOA,EAAe,SAExB,QACE,OAAOA,EAAe,cAE5B,CAvJAl5B,qBAAU,KACHi/H,GAAgCM,GAAgB,GAEpD,CAACn3G,EAAM62G,IA2XV,OACEr+H,cAAAysB,WAAA,CAAAxtB,SACEmlB,eAACoF,KAAM,CAAChC,KAAMA,EAAMiC,oBAAqB7D,GAAY4wC,YAAU,EAAAv3D,SAAA,CAC7De,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAA7qB,SAAA,CACNe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK+B,UAAW+tB,EAAQvnC,MAAMtP,SAC/Cq5B,EAAe,gBAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QACEo0G,EACI,IAAMQ,IACN,KAlUhBjpD,EAAQ,QACRv1B,KAmUU,aAAW,QAAOphD,SAElBe,cAACkqB,KAAS,WAIhBlqB,cAAC+2H,GAAkB,CAAA93H,SAChBo/H,EACCr+H,cAACk8H,GAAqB,CACpBz0G,YAAao3G,EACb1C,iBAAkB,IACbA,EACH5/G,WACAohH,eAAgBxB,EAAiB57G,IAC7B47G,EAAiBwB,eACjB,IAAIhjH,QA1PpByJ,eAAC2yG,GAAgB,CAAA93H,SAAA,CACfmlB,eAAC2yG,GAA0B,CAAA93H,SAAA,CACzBmlB,eAAC2yG,GAAkB,CAAA93H,SAAA,CACjBe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SACrCq5B,EAAe,oBAElBlU,eAAC2yG,GAAyB,CAAA93H,SAAA,CACxBe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,WAAWr5B,SACxCe,cAAC+pB,KAAU,CAACE,QAASA,IAAM00G,IAAqB1/H,SAC9Ce,cAAC8Y,KAAO,QAGXq+G,GACCn3H,cAAC2kB,GAAS,CACRqB,QAAQ,YACR+F,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAASA,KA/FrBw0G,EAAoBN,SACpBG,GAAkC,IA8Fcr/H,SAEnCq5B,EAAe,+CAKxBt4B,cAAC+2H,GAAa,CAAA93H,SACZe,cAAC8zC,KAAY,CACX5rB,QAASw2G,EAAmBh5H,KAAKquC,GAAWA,EAAOzyC,OACnD0yC,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJr4B,MAAOgT,EACPy1B,MAAOrQ,EAAe,UACtBtS,QAAQ,WACRwJ,SAAWjoB,GAAMisC,EAAUjsC,EAAEkG,OAAOvN,OACpC+zC,WAAY,CACVC,eACEl0C,cAACm0C,KAAc,CAACtlC,SAAS,QAAO5P,SAC9Be,cAACo+C,KAAU,CAACh7B,MAAM,qBAQ/BxE,EACC5e,cAAA,OAAK+nB,UAAW+tB,EAAQ43E,iBAAiBzuH,SACvCe,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,OAExCgxG,EAAW15H,OAAS,EACtB7E,cAAA,OAAAf,SACEe,cAACwlE,KAAc,CACbvvB,UAAWD,KACXjuB,UAAW+tB,EAAQ03E,eAAevuH,SAElCmlB,eAACqhD,KAAK,CACJ19C,UAAW+tB,EAAQ4sE,MACnB,aAAW,eACXn1F,KAAK,SACL8oD,cAAY,EAAAp3E,SAAA,CAEZe,cAAC0lE,KAAS,CAAAzmE,SACRmlB,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,mBAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,UAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,cAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAC,WAC1Be,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBq5B,EAAe,kBAElBt4B,cAAC4lE,KAAS,CAAC2Q,MAAM,gBAGrBv2E,cAACw2E,KAAS,CAAAv3E,UACN42E,EAAc,EACZ6oD,EAAmBxjF,MACjBy6B,EAAOE,EACPF,EAAOE,EAAcA,GAEvB6oD,GACFh5H,KAAI,CAAC01H,EAAWlzH,KAChB,MAAM42H,EACiB,gBAArB1D,EAAUn/G,OAEN8iH,EACiB,gBAArB3D,EAAUn/G,OACNqc,EAAe,QACfA,EAAe,QAMrB,OACElU,eAACuhD,KAAQ,CAAA1mE,SAAA,CACPe,cAAC4lE,KAAS,CAACumB,MAAM,YAAY5V,MAAM,SAAQt3E,SAAA,GAAA+H,OACrC,IAAI2T,KAAK,GAAD3T,OACPo0H,EAAUuC,iBACbqB,qBAAoB,iCAAAh4H,OACjC,IAAI2T,KAAKygH,EAAUuC,gBAAgBsB,wBAE1Bj/H,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAEm8H,EAAU95H,OACrCtB,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACtBm8H,EAAUC,gBAEbr7H,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SACvBmlB,eAAC0H,GAAW,CAAA7sB,SAAA,CACVe,cAAC8rB,GAAQ,CAACghG,QAAS4K,EAAS0D,EAAUn/G,UACrC27G,EAAgBwD,EAAUn/G,aAG/Bjc,cAAC4lE,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAA,GAAA+H,OACnB,IAAI2T,KAAK,GAAD3T,OACPo0H,EAAUpN,gBACbgR,qBAAoB,iCAAAh4H,OACjC08E,GAAK,IAAI/oE,KAAKygH,EAAUpN,mBAEf5pG,eAACwhD,KAAS,CAAC2Q,MAAM,SAAQt3E,SAAA,CAoBvBe,cAAC8uB,KAAO,CAACvgB,MAAOwwH,EAAkB9/H,SAChCe,cAAC+pB,KAAU,CACTE,QAASA,IA7KrC,SAA6BmxG,GAC3BqD,EAAoBrD,GACpBkD,GAAkC,EACpC,CA0K2CY,CAAoB9D,GAAWn8H,SAE7C6/H,EACC9+H,cAAC48D,KAAQ,IAET58D,cAAC8lG,KAAU,QAKK,gBAArBs1B,EAAUn/G,QACTjc,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,UAAUr5B,SACvCe,cAAC+pB,KAAU,CACTE,QAASA,IAjNvC5qB,eAAqC+7H,UACZd,GACrB,IACKc,EACH7+G,YAEFiS,IAGWtS,SACXmC,EACE,UACAia,EAAe,mCAEjBkmG,EAAcD,EAAWx4H,QAAQquF,GAAQgnC,EAAU76G,MAAQ6zE,EAAI7zE,QAE/DlC,EACE,QACAia,EAAe,gCAGrB,CA4L6C6mG,CAAsB/D,GAAWn8H,SAEhDe,cAACmsC,KAAU,aA5DNjkC,EAiEJ,aAQvBlI,cAAA,KAAGiJ,MAAO,CAAEkhB,UAAW,IAAKlrB,SACzBq5B,EAAe,2BAItBlU,eAAA,OAAK2D,UAAW+tB,EAAQ23E,YAAYxuH,SAAA,CAClCmlB,eAAA,OAAAnlB,SAAA,CACEe,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,YAAYr5B,SACzCe,cAAC+pB,KAAU,CACTE,QAASA,KACP/qB,EAAS,CAAEb,KAAM,gCACjBa,EAAS,CAAEb,KAAM,6BAA8B,EAC/CY,SAEFe,cAAC62H,GAAY,QAGjB72H,cAAC8uB,KAAO,CAACvgB,MAAO,YAAYtP,SAC1Be,cAAC+pB,KAAU,CACTE,QAASA,KACP/qB,EAAS,CAAEb,KAAM,gCACjBa,EAAS,CAAEb,KAAM,8BAA+B,EAChDY,SAEFe,cAACu6H,GAAY,WAInBv6H,cAACikH,KAAW,CAAAhlH,SACVe,cAAC2lE,KAAQ,CAAA1mE,SACPe,cAAC42E,KAAe,CACdC,mBAAoB,CAAC,EAAG,GAAI,GAAI,GAAI,KACpC9tD,MAAO21G,EAAmB75H,OAC1BgxE,YAAaA,EACbF,KAAMA,EACNuuC,aAAcltC,EACdmtC,oBAAqBmT,EACrBxgD,iBAAkBx+C,EAChB,4DAkDhB,CCzee8mG,OAjC0BpgI,IACvC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,KAAAf,SACEe,cAAA,QACEqkB,MAAM,6BACNre,GAAG,mBACH,YAAU,mBACVue,MAAM,KACNC,OAAO,KACPkJ,KAAK,WAGT1tB,cAAA,KAAAf,SACEe,cAAA,QACEqkB,MAAM,6BACNre,GAAG,eACH,YAAU,eACV0e,EAAE,6EACFgJ,KAAK,gBAGL,ECKK6gF,OAlC6BvvG,IAC1C,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,KAAAf,SACEe,cAAA,QACEqkB,MAAM,6BACNre,GAAG,oBACH,YAAU,oBACVue,MAAM,KACNC,OAAO,KACPkJ,KAAK,WAGT1tB,cAAA,KAAAf,SACEe,cAAA,QACEqkB,MAAM,6BACNre,GAAG,eACH,YAAU,eACV0e,EAAE,mwBACF7S,UAAU,kBACV6b,KAAK,gBAGL,ECiBK2xG,OA/CyBrgI,IACtC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAMtK,GAAS,YAAYnkB,SAAA,CAE3Be,cAAA,KAAGgG,GAAG,aAAa,YAAU,aAAY/G,SACvCe,cAAA,QACEgG,GAAG,eACH,YAAU,eACV0e,EAAE,gBACFgJ,KAAK,WAGT1tB,cAAA,KAAGgG,GAAG,aAAa,YAAU,aAAY/G,SACvCmlB,eAAA,KAAGpe,GAAG,aAAa,YAAU,aAAY/G,SAAA,CACvCe,cAAA,UACEgG,GAAG,YACH,YAAU,YACVwoG,GAAG,IACHC,GAAG,IACHC,EAAE,IACF78F,UAAU,iBACV6b,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,eACH,YAAU,eACV0e,EAAE,+JACFgJ,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,eACH,YAAU,eACV0e,EAAE,qZACFgJ,KAAK,mBAIP,ECCK4xG,OA5C4BtgI,IACzC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEG,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBjJ,QAAQ,YACRoJ,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,KAAAf,SACEe,cAAA,QACEqkB,MAAM,6BACNre,GAAG,oBACH,YAAU,oBACVue,MAAM,KACNC,OAAO,KACPkJ,KAAK,WAGT1tB,cAAA,KACEqkB,MAAM,6BACNre,GAAG,aACH,YAAU,aAAY/G,SAEtBmlB,eAAA,KAAGpe,GAAG,aAAa,YAAU,aAAY/G,SAAA,CACvCe,cAAA,QACEgG,GAAG,eACH,YAAU,eACV0e,EAAE,6DACFgJ,KAAK,YAEP1tB,cAAA,QACEgG,GAAG,eACH,YAAU,eACV0e,EAAE,2pBACFgJ,KAAK,mBAIP,E,iPCbK2oF,OA3B2Br3G,IACxC,MAAM,KAAEuuB,EAAI,MAAEnK,GAAUpkB,EAExB,OACEolB,eAAA,OACEC,MAAM,6BACNhV,QAAQ,MACRiV,QAAQ,YACRC,MAAOgJ,GAAQ,KACf/I,OAAQ+I,GAAQ,KAChBG,KAAMtK,GAAS,UAAUnkB,SAAA,CAEzBe,cAAA,SAAAf,SAAO,YACPe,cAAA,QAAAf,SACEe,cAAA,SACEukB,MAAM,KACNC,OAAO,KACPxe,GAAG,OACH6nC,KAAK,qiHAGT7tC,cAAA,YACAA,cAAA,OAAKgG,GAAG,aAAa6nC,KAAK,QAAQ1kC,EAAE,IAAIH,EAAE,QACtC,ECIH,MAAMu2H,GAAmB,CAC9BC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,eAAgB,iBAChBC,eAAgB,iBAChBC,mBAAoB,qBACpBC,cAAe,gBACfC,yBAA0B,2BAC1BC,wBAAyB,0BACzBC,YAAa,cACbC,wBAAyB,0BACzBC,uBAAwB,yBACxBC,wBAAyB,0BACzBC,mBAAoB,qBACpBC,mBAAoB,sBC1Cf,SAASC,KACd,MAAM,eAAEhoG,GAAmBH,MACrB,iBAAE4mF,EAAgB,aAAEO,GAAiBX,MACpC4hB,EAAaC,GAAkBl2G,oBAAS,GAY/C,OACEtqB,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,gBAAiBtJ,UAAU,QAAO/vB,SAC/De,cAAC+pB,KAAU,CAACE,QAZM5qB,UAEpB,SADuB0/G,GAAiB,GAC1B,CACZ,GAAIwhB,EAAa,OACjBC,GAAe,SACTlhB,IACNkhB,GAAe,EACjB,GAKqCvhI,SAChCshI,EACCvgI,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,KAExCvtB,cAACqlF,KAAW,CAACr4D,SAAS,cAKhC,C,gEC5BO,MAAMrH,GAAkB5C,aAAO0C,GAAP1C,CAAeE,QAAAC,aAAA,2NAkBjCkmB,GAAYrmB,KAAOC,IAAGM,QAAAJ,aAAA,gMAatBo7E,GAAWv7E,aAAO2C,KAAP3C,CAAYS,QAAAN,aAAA,2PAmBvBu9G,GAAuB19G,KAAOC,IAAGU,QAAAR,aAAA,sRAsBjCu+D,GAAmB1+D,KAAOC,IAAGoC,QAAAlC,aAAA,mHAU7Bw9G,GAA2B39G,KAAOC,IAAGsC,QAAApC,aAAA,4HAUrC4xB,GAAYC,cAAW,IAClCC,aAAa,CACXq1C,QAAS,CACPl7D,QAAS,OACTohC,eAAgB,iBAElB6f,OAAQ,CACNtsD,WAAY,UACZi+D,UAAW,UAEbh3E,MAAO,CACL+Y,WAAY,eClGZ68G,GAAU,UACVC,GAAc,iBAGPC,GAAiBxhI,MAC5Bwd,EACA3d,KAEA,MAAMd,EAAM,GAAA4I,OAAM25H,GAAO,KAAA35H,OANJ,cAMsB,KAAAA,OAAI6V,GAC/C,OAAO7D,GAA8B,MAAO5a,EAAQc,EAAS,EAGlD4hI,GAAmBzhI,MAAAioB,EAE9BpoB,KACuD,IAFvD,QAAE2d,EAAO,WAAE1B,EAAU,WAAEC,GAAkCkM,EAGzD,MAAMlpB,EAAM,GAAA4I,OAAM25H,GAAO,KAAA35H,OAAI45H,GAAW,KAAA55H,OAAI6V,GAC5C,OAAO7D,GAAgC,MAAO5a,EAAQc,OAAUsD,EAAW,CACzE2Y,aACAC,cACA,EAGS2lH,GAAsB1hI,MAAAm6B,EAEjCt6B,KACuD,IAFvD,QAAE2d,EAAO,WAAE1B,EAAU,WAAEC,GAAkCoe,EAGzD,MAAMp7B,EAAM,GAAA4I,OAAM25H,GAAO,KAAA35H,OAAI45H,GAAW,KAAA55H,OAAI6V,GAC5C,OAAO7D,GAAgC,OAAQ5a,EAAQc,OAAUsD,EAAW,CAC1E2Y,aACAC,cACA,EAGS4lH,GAAsB3hI,MAAA4hI,EAEjC/hI,KACuD,IAFvD,QAAE2d,EAAO,WAAE1B,EAAU,WAAEC,GAAkC6lH,EAGzD,MAAM7iI,EAAM,GAAA4I,OAAM25H,GAAO,KAAA35H,OAAI45H,GAAW,KAAA55H,OAAI6V,GAC5C,OAAO7D,GAAgC,QAAS5a,EAAQc,OAAUsD,EAAW,CAC3E2Y,aACAC,cACA,ECrBEwK,GAAaU,IAAMC,YAAW,SAClCvnB,EACAwnB,GAEA,OAAOxmB,cAACymB,KAAK,CAACC,UAAU,KAAKF,IAAKA,KAASxnB,GAC7C,IAIO,SAASkiI,KACd,MAAQhiI,SAAUsvB,GAAgBruB,KAC5B,SAAEjB,EAAQ,MAAEf,EAAK,kBAAEkgB,GAAsB0oB,MACzC,eAAEzO,GAAmBH,MACpB74B,EAAO6hI,GAAY72G,mBAAS,KAC5B1L,EAAS4vB,GAAclkB,oBAAS,IAChC82G,EAAgBC,GAAqB/2G,mBAAS,KAC9Cg3G,EAAaC,GAAkBj3G,qBAChCzN,EAAU1e,EAAM0e,QAChBi5B,EAAUhqB,KAQhB,MAAM7Q,EAAW0M,uBACftoB,UACE,GAAKwd,GAAY2kH,EAAjB,CACAH,EAAkB/oG,EAAe,sCAEjCkW,GAAW,GACX,IACE,MAAM7e,QAAiBmxG,GACrB,CAAEjkH,aAAY2kH,GACdhzG,GAGF,GAAImB,EAASzT,QAAS,CACpB,MAAMulH,EAAS9xG,EAAS5T,KAAKxd,KAAKe,MAClC6hI,EAASM,EACX,MACEpjH,EACE,QACAia,EAAe,yCAGrB,CAAE,MAAO/wB,GACP,MAAM6U,EAAQ7U,EACd8W,EACE,QAAQ,GAADrX,OACJsxB,EACD,yCACD,MAAAtxB,OAAKoV,EAAMnV,QAAQiK,YAExB,CAEAs9B,GAAW,EA7B0B,CA6BpB,GAEnB,CAAC3xB,EAAS2R,EAAa8J,EAAgBja,IAGnCsjC,EAAOh6B,uBAAYtoB,UACvB,GAAKwd,EACL,IACE,MAAM8S,QAAiBkxG,GAAehkH,EAAS2R,GAC/C,GAAImB,EAASzT,QAAS,CACpB,MAAM,WAAEf,EAAU,WAAEC,GAAeuU,EAAS5T,KAAKxd,KACjDgjI,EAAe,CAAEpmH,aAAYC,qBACvBH,EAAS,CAAEE,aAAYC,cAC/B,MACEiD,EACE,QACAia,EAAe,sCAGrB,CAAE,MAAO/wB,GACP,MAAM6U,EAAQ7U,EACd8W,EACE,QAAQ,GAADrX,OACJsxB,EACD,sCACD,MAAAtxB,OAAKoV,EAAMnV,QAAQiK,YAExB,IAEC,IAMH7R,eAAeqiI,IACb,GAAK7kH,GAAYykH,EAAjB,CACA,IACED,EAAkB/oG,EAAe,uCAEjCkW,GAAW,GACX,MAAM7e,QAAiBoxG,GACrB,CAAElkH,aAAYykH,GACd9yG,GAEF,GAAImB,EAASzT,QAAS,CACpB,MAAMulH,EAAS9xG,EAAS5T,KAAKxd,KAAKe,MAClC6hI,EAASM,GACTpjH,EACE,UACAia,EAAe,4CAEnB,MACEja,EACE,QACAia,EAAe,0CAGrB,CAAE,MAAO/wB,GACP,MAAM6U,EAAQ7U,EACd8W,EACE,QAAQ,GAADrX,OACJsxB,EACD,0CACD,MAAAtxB,OAAKoV,EAAMnV,QAAQiK,YAExB,CAEAs9B,GAAW,EAhCyB,CAiCtC,CAEAnvC,eAAesiI,IACb,GAAK9kH,GAAYykH,EAEjB,IACED,EAAkB/oG,EAAe,qCACjCkW,GAAW,GACX,MAAM7e,QAAiBqxG,GACrB,CAAEnkH,aAAYykH,GACd9yG,GAEF,GAAImB,EAASzT,QAAS,CACpB,MAAMulH,EAAS9xG,EAAS5T,KAAKxd,KAAKe,MAClC6hI,EAASM,GACTpjH,EACE,UACAia,EAAe,4CAEnB,MACEja,EACE,QACAia,EAAe,0CAGrB,CAAE,MAAO/wB,GACP,MAAM6U,EAAQ7U,EACd8W,EACE,QAAQ,GAADrX,OACJsxB,EACD,0CACD,MAAAtxB,OAAKoV,EAAMnV,QAAQiK,YAExB,CACF,CAEA7R,eAAeuiI,UACPhnG,UAAU8gG,UAAUC,UAAUr8H,GACpC+e,EACE,UACAia,EAAe,kCAEnB,CAEA,GAlFAl5B,qBAAU,KACRuiD,GAAM,GACL,CAACA,KAgFCxjD,EAAMwhB,sBAAuB,OAAO,KA2CzC,OACEyE,eAACoF,KAAM,CACLhC,KAAMrpB,EAAMwhB,sBACZ8J,oBAAqB7D,GACrB+D,SAAS,KACTD,WAAS,EAAAzqB,SAAA,CAETe,cAAC8rB,GAAiB,CAAA7sB,SAChBe,cAAC6pB,KAAM,CAAA5qB,SACLmlB,eAAC0F,KAAO,CAAC/B,UAAW+tB,EAAQu0C,QAAQprF,SAAA,CAClCe,cAAC+lB,KAAU,CAACC,QAAQ,KAAI/mB,SACrBq5B,EAAe,8BAElBt4B,cAAC+pB,KAAU,CACTC,KAAK,QACL5G,MAAM,UACN6G,QAjNZ,WACE/qB,EAAS,CACPb,KAAM,0BAEV,EA8MY,aAAW,QAAOY,SAElBe,cAACkqB,KAAS,aAKlBlqB,cAAC8rB,GAAW,CAAA7sB,SACRK,EA3CN8kB,eAAC0H,GAAsB,CAAA7sB,SAAA,CACrBe,cAAC+lB,KAAU,CAACC,QAAQ,KAAK5C,MAAM,UAASnkB,SAAC,UAGzCe,cAAC+lB,KAAU,CAAA9mB,SAAEK,IACb8kB,eAAC0H,GAAkB,CAAA7sB,SAAA,CACjBmlB,eAACQ,KAAM,CAACoB,QAAQ,YAAYiE,QAAS23G,EAAgB3iI,SAAA,CAClDq5B,EAAe,QAChBt4B,cAAC6hI,KAAY,CAAC70G,SAAS,aAEzB5I,eAACQ,KAAM,CAACoB,QAAQ,YAAY5C,MAAM,UAAU6G,QAAS03G,EAAkB1iI,SAAA,CACpEq5B,EAAe,WAChBt4B,cAAC8hI,KAAW,CAAC90G,SAAS,mBAlC5BpO,EACEwF,eAAC0H,GAA0B,CAAA7sB,SAAA,CACzBe,cAAC+lB,KAAU,CAACC,QAAQ,QAAQ/c,MAAO,CAAEqsC,OAAQ,GAAIu9C,UAAW,UAAW5zF,SACpEmiI,IAEHphI,cAAC4uC,KAAgB,CAACxrB,MAAM,UAAUmK,KAAM,QAG1CnJ,eAAC0H,GAAU,CAAA7sB,SAAA,CACTe,cAAC0/F,KAAgB,IACjBt7E,eAAC2B,KAAU,CAACC,QAAQ,QAAO/mB,SAAA,CACxBq5B,EAAe,6CAChBt4B,cAAA,SACCs4B,EAAe,8CAElBt4B,cAAC4kB,KAAM,CAACoB,QAAQ,YAAY5C,MAAM,UAAU6G,QAASy3G,EAAkBziI,SACpEq5B,EAAe,mBAqD1B,C,wBCgdeypG,I,GAAAA,GA7qBIz6G,IAAwD,IAADyU,EAAA,IAAtD,uBAAEimG,EAAsB,cAAEC,GAAuB36G,EACnE,MAAM47F,EAAWgf,eACX,SACJhjI,EAAQ,SACRqkC,EAAQ,kBACRllB,EAAiB,MACjBlgB,EAAK,SACL29B,EAAQ,iBACRgB,GACEiK,MAEI5oC,MAAOygG,EAAgB,sBAAErlE,GAA0BS,MAErD,UAAEvB,GAAcmmE,EAEhBpwE,EAAcruB,IAASjB,UAEtBijI,EAAYC,GAAiB93G,mBAAS,CAC3CvN,YAAa,GACbo2E,YAAa,GACb/5D,MAAO,GACP/D,MAAO,MAGH,QAAExY,EAAO,YAAEyD,EAAW,IAAE3M,GAAQxV,GAC/BkkI,EAAkBC,GAAuBh4G,mBAAmB,KAC5Di4G,EAAUC,GAAel4G,mBAAS,KAClCmP,EAAgBgpG,GAAqBn4G,mBAAS,KAC9Cma,EAASirD,GAAcplE,sBACvBo4G,EAAgBC,GAAqBr4G,mBAAS,IAC/Cs4G,EAAuBC,gBAEvB,eAAEvqG,GAAmBH,KACrB2qG,EAAkBxqG,EAAe,SACjCyqG,EAAiBzqG,EAAe,QAChC0qG,EAAsB1qG,EAAe,aAErC2hB,EAAc1gB,EAAsB,CACxCN,QAAS96B,EAAM4e,aAAe,GAC9Bqc,MAAOj7B,EAAM0e,SAAW,GACxBze,OAAQ,CAAC,gBAGL6kI,EAAiB1lE,mBAAQ,IACtB9kC,EAAU/yB,KAAKuzB,GAAYA,EAAQ33B,OAAMmyB,QAC/C,CAACgF,IAEEyqG,EAAgB3lE,mBAAQ,KAC5B,MAAMtkC,EAAUR,EAAU7tB,MACvBquB,GAAYA,EAAQ33B,OAASm4B,IAEhC,OAAIR,EAAgBA,EAAQuL,SAAS9+B,KAAK++B,GAAYA,EAAQnjC,OAAMmyB,OACxD,EAAE,GACb,CAACgG,EAAgBhB,IAEdU,EAASokC,mBAAQ,KACrB,MAAMtkC,EAAUR,EAAU7tB,MACvBquB,GAAYA,EAAQ33B,OAASm4B,IAEhC,OAAIR,GAAWwL,EACNA,EAAQtL,OACZpzB,QAAQqzB,GACPH,EAAQE,OAAO1tB,MAAM03H,GAAaA,EAAS7hI,OAAS83B,MAErD3F,OACE,EAAE,GACR,CAACgF,EAAWgB,EAAgBgL,IAE/BrlC,qBAAU,KACR,MAAM+iI,EAAax4B,GAAWK,IAAI,cAC9Bm4B,GACFC,EAAch9H,KAAKw2B,MAAMumG,GAC3B,GACC,CAAC7hH,IAEJlhB,qBAAU,KACRkjI,EAAoBhiH,EAAY5a,KAAK2vB,GAAUA,IAAO,GACrD,CAAC/U,IAEJlhB,qBAAU,KACRojI,EAAYrkI,EAAM0e,SAAW,GAAG,GAC/B,CAAC1e,EAAM0e,UAEVzd,qBAAU,KACsB,IAA1B6jI,EAAep+H,QAAiB1G,EAAM2P,WAKxCs1H,EAAoBjB,EAAWplH,aAAekmH,EAAe,KAJ7DR,EAAkB,IAClBE,EAAkB,IAClBH,EAAY,IAGd,GAEC,CAACS,EAAgB9kI,EAAM2P,aAE1B1O,qBAAU,KACJ6iI,IACFQ,EAAkB,IAClBD,EAAY,IACZG,EAAkB,IACpB,GACC,CAACV,IAEJ,MAAMoB,EAAmB7pG,IAKF,IALG,YACxBzc,EAAW,YACXo2E,EAAW,MACX/5D,EAAK,MACL/D,GACemE,EACfj6B,aAAa6a,QACX,aACAhV,KAAKC,UAAU,CACb0X,cACAo2E,cACA/5D,QACA/D,UAEH,EAGGiuG,EAAsB37G,uBAAY,KACtC,MAAM47G,EAAYlB,EAEZ7mE,EAAiB+nE,EAAUh4H,WAC9B8pB,GAAoB,cAAVA,IAEPomC,EAAY8nE,EAAU/nE,GAExBA,GAAkB,GACpB+nE,EAAUp3H,OAAOqvD,EAAgB,GACjC8mE,EAAoB,CAClB7mE,KACG8nE,EAAU79H,KAAK2vB,GAAUA,IAAO5B,UAGrC6uG,EAAoBiB,EAAU79H,KAAK2vB,GAAUA,IAAO5B,OACtD,GACC,CAAC4uG,IAoBEmB,EAAenkI,MAAO+5B,EAAeH,WACnCwqG,UAnBapkI,WACflB,EAAMogB,SAAWpgB,EAAM0e,SAAW1e,EAAM0hB,iBACpCrC,GACJ,CACEjB,SAAUpe,EAAM0e,QAChBQ,UAAWlf,EAAMogB,SAEnBiQ,GAIJrwB,EAAM4hB,SAASI,YAAc,GAC7BhiB,EAAM4hB,SAASG,WAAa,GAC5B/hB,EAAM4hB,SAASE,YAAc,GAC7B9hB,EAAM4hB,SAASK,WAAa,GAC5BjiB,EAAM4hB,SAASC,YAAc,EAAE,EAMzB0jH,GACN,MAAMC,OnZ1MctkI,OACtBkd,EACArd,KAEA,MAAMd,EAAM,QAAA4I,OAAWuV,EAAQ,UAC/B,OAAOvD,GAAwB,MAAO5a,EAAQc,EAAS,EmZqMzB0kI,CAASxqG,EAAO5K,GAC5C,IAAIK,EAEA80G,EAAcznH,UAChB2S,EAAQ80G,EAAc5nH,KAAKxd,KAAKswB,OAKlC,IAAIrO,SAFmBlE,GAAc,CAAEC,SAAU6c,GAAS5K,IAEpCzS,KAAKxd,KAI3B,GAHAoV,EAAI6M,OAASA,EACb7M,EAAI4I,SAAW6c,EAEX1mB,MAAM47C,QAAQ9tC,GAAS,CACzB,MAAMjC,EACJiC,EAAO5V,MAAMyqB,GAAUA,IAAU8sG,EAAW9sG,SAAU,YAElDwuG,EAAatqG,EAAsB,CACvCN,QAASA,GAAW96B,EAAM4e,aAAe,GACzCqc,QACAh7B,OAAQ,CAAC,YAAa,aAAc,kBAW9B,IAADsuB,EARP,GACEnO,GACApgB,EAAM2P,YACgB,MAAtBo1G,EAAS4gB,UACTD,EAEA3kI,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,WAC1Ckd,EAASvd,EAAS6a,QAER,QAAhB1M,EAAAvuB,EAAM2P,kBAAU,IAAA4e,GAAhBA,EAAkBiK,QAGpB,MAAM5Z,EAAckc,GAAWQ,EAE/B4pG,EAAiB,CACftmH,cACAqc,QACA/D,MAAO9W,EACP40E,YAAauvC,IAGfxjI,EAAS,CACPb,KAAM,aACNE,KAAM,CACJwe,cACAF,QAASuc,EACT7a,UACA+B,YAAaE,EACb5B,SAAS,EACTjL,MACAkb,UAGN,GAGIk1G,EAAmBA,KAAO,IAADv4G,EACb,QAAhBA,EAAArtB,EAAM2P,kBAAU,IAAA0d,GAAhBA,EAAkBmL,QAClBz3B,EAAS,CACPb,KAAM,aACNE,KAAM,CACJse,QAAS,GACT0B,QAAS,GACTsQ,MAAO,GACPlb,IAAK,CACH4M,IAAK,GACLhE,SAAU,GACViE,OAAQ,GACRnR,QAAS,KAGb,EAGE+zH,EAAsB/jI,UAC1B,MAAM2kI,EAAkBvrG,EAAU7tB,MAC/BquB,GAAYA,EAAQ33B,OAASyb,IAGhC,GAAKinH,EAUL,GARA9kI,EAAS,CACPb,KAAM,aACNE,KAAM,CACJwe,YAAainH,EAAgB1iI,QAIjCmhI,EAAkBuB,EAAgB1iI,MAC9B0iI,EAAgBx/F,SAAS,GAAI,CAAC,IAADy/F,EAC/B,MAAM9wC,GAGH,QAFD8wC,EAAAD,EAAgBx/F,SAAS55B,MACtB65B,GAAYA,EAAQnjC,OAAS6gI,EAAWhvC,qBAC1C,IAAA8wC,OAAA,EAFDA,EAEG3iI,OACH0iI,EAAgBx/F,SAAS/Q,MAAK,CAACywG,EAAUC,IACvCD,EAAS5iI,KAAK41B,cAAcitG,EAAS7iI,QACrC,GAAGA,KAED6xF,SACEixC,EAAoB,CACxB3/F,QAAS0uD,EACTl6D,QAAS+qG,EAAgB1iI,OAG7B+hI,EAAiB,CACftmH,YAAainH,EAAgB1iI,KAC7B83B,MAAOvc,GAAW,GAClBwY,MAAOl3B,EAAMogB,SAAW,GACxB40E,YAAaA,GAEjB,MACEwvC,EAAkB,IAClBoB,GACF,EAGIK,EAAsB/kI,UAID,IAJQ,QACjColC,EAAO,EACPl9B,EAAC,QACD0xB,GACmBgoG,EACnB,MAAM9tC,EAAc1uD,GAAW35B,OAAQ,OAADvD,QAAC,IAADA,OAAC,EAADA,EAAGkG,OAAOq5D,cAAgB,GAC1D/pD,EAAckc,GAAWQ,GAAkB,GAC3C9J,QAAiBujE,GACrB,CAAEC,cAAap2E,eACfyR,GAKF,GAFAm0G,EAAkBxvC,GAEdxjE,EAASzT,QAAS,CACpB,MAAM8nH,EAAkBvrG,EAAU7tB,MAC/BquB,GAAYA,EAAQ33B,OAASyb,IAGhC,IAAKinH,EAAiB,OAEtB,MAAMK,EAAkB10G,EAAS5T,KACjC2zE,EAAW//D,EAAS5T,MACpB,MAAMujF,EACJ+kC,EAAgBlrG,OAAOvuB,MAAMwuB,GAAUA,IAAU+oG,EAAW/oG,UAC7C,OAAfirG,QAAe,IAAfA,OAAe,EAAfA,EAAiBlrG,OACdpzB,QAAQqzB,GACP4qG,EAAgB7qG,OAAO1tB,MAAM03H,GAAaA,EAAS7hI,OAAS83B,MAE7D3F,OAAO,KACV,GACE6rE,QAAuBkkC,EAAalkC,EAAiBviF,GACpDgnH,GACP,GAwBIO,GAAkBjlI,eAAOklI,GAA2C,IAAzBC,EAAW58H,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GAC1D1I,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,MAE/C4lH,SAAsBf,KAEnBtlI,EAAM0hB,iBACFrC,GACJ,CACEjB,SAAUM,GAAW,GACrBQ,UAAWlf,EAAMogB,SAAW,IAE9BiQ,GAIJ4zG,EAAc,CACZrlH,YAAa0c,EACb05D,YAAauvC,EACbtpG,MAAOvc,GAAW,GAClBwY,MAAOkvG,IAGTlB,EAAiB,CACftmH,YAAa0c,EACbL,MAAOvc,GAAW,GAClBwY,MAAOkvG,EACPpxC,YAAauvC,UAGT5mG,EAASyoG,EAAU1nH,GAAW,IAAI,EAAO2nH,GAC/CtlI,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEggB,QAASgmH,EAAU3lH,SAAS,IAExC,EAEM6kH,GAAapkI,UACjB,MAAMujC,EAAmB+mE,GAAWK,IAAI,qBAAuB,GAE/D,GACI7rG,EAAM0f,aACN1f,EAAM2P,YACR3P,EAAM0hB,WACNza,KAAKC,UAAUlH,EAAM2P,WAAWnC,YAAci3B,EAC9C,CACA,MAAMjH,EAAeguE,GAAWK,IAAI,qBAEpC,GAAIruE,EAAc,CAChB,MAAM,QAAE9e,EAAO,UAAEQ,GAAcjY,KAAKw2B,MAAMD,GAEtC9e,GAAWQ,SACPI,GACJ,CACElB,SAAUM,EACVQ,aAEFmR,EAGN,OACM+U,GACR,GAGF,SAASkhG,KACH5nH,EACF3d,EAAS,CAAEb,KAAM,yBAEjBggB,EAAkB,UAAW,0CAEjC,CAEA,MA8DMk/B,GAAoBA,KACxB,MAAMpvB,EAASrmB,SAASa,eACtB,iBAEF,GAAIwlB,EAAQ,CACOA,EAAOlC,UCpgBvB5sB,eACLlB,EACAkgB,EACAye,EACAphB,GAKC,IAADqiC,EACA,MAAM9N,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBACrBD,EAAYO,SAAWnyC,UAAmB,IAADoyC,EACvC,MAAMC,EAAqB,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAC5BjI,EAAWvG,KAAKw2B,YAAY8V,EAAKsM,QAEvC,GAAIryC,EAASA,SACX,GAAIA,EAASA,SAASE,KAAM,CAAC,IAAD6gB,EAAAskB,EAAAxlB,EAC1B,MAAMzU,EAAqBpL,EAASA,SAASE,KAAKtN,KAE5C6L,EAAOvH,OAAOuH,KAAK2M,GACzB,IAAI0uB,GAAmB,EACvB,MAAMC,EAAqC,cAAlBvnC,EAAMogB,QAE/B,IACE,IAAK,MAAM/U,KAAOY,EAAM,CAAC,IAADu7B,EACtB,MAAM,KAAEpnC,GAASwY,EAASnR,OAAO4D,IAEjC,GAAIk8B,GACF,GAAIrlC,EAAuB9B,EAAK+B,YAAa,CAC3CmlC,GAAmB,EACnB,KACF,OACK,GAAIplC,EAAuB9B,EAAK+B,YACrC,MAAM,IAAIqb,MAAMD,EAAOkqB,uBAGzB7uB,EAASnR,OAAO4D,IAAMxD,GAAKJ,OAAO4D,GAElCQ,EAAU+M,EAASnR,OAAO4D,IAAOuN,GACjC7L,EAAW6L,EAASnR,OAAO4D,IAAOuN,GAElC,MAAM8uB,EAA2B,QAAnBF,EAAGpnC,EAAKwD,mBAAW,IAAA4jC,OAAA,EAAhBA,EAAkB70B,QACnC,GAAI+0B,EAAU,CAAC,IAADC,EACZ,MAAM9I,EAAa6I,EAASE,WAAW,GAAD/+B,OACjCzI,EAAKkD,QAAO,KAAK,GAAAuF,OACjB7I,EAAMogB,QAAO,MAGE,QAApBunB,EAAIvnC,EAAKwD,mBAAW,IAAA+jC,GAAhBA,EAAkBh1B,UACpBvS,EAAKwD,YAAY+O,QAAUksB,EAC/B,CACF,CAEA,GAAI0I,IAAqBD,EACvB,MAAM,IAAI9pB,MAAMD,EAAOsqB,wBAE3B,CAAE,MAAO5pB,GAEP,YADAiC,EAAkB,QAASjC,EAAMnV,QAEnC,CAEA,MAAMs1B,EAAgB,IAAIzlB,GAAcC,EAAU5Y,EAAMogB,SAAW,IAEnE5S,EAASA,SAASE,KAAKtN,KAAOg+B,EAAclkB,cAC5B,QAAhBqU,EAAAvuB,EAAM2P,kBAAU,IAAA4e,GAAhBA,EAAkBmQ,OAAOlxB,GAEzBmxB,EAAiB/lB,GACK,QAAtBi6B,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,GAEpC,MAAMhnC,EAAwB,QAAnBuhB,EAAGrtB,EAAM2P,kBAAU,IAAA0d,OAAA,EAAhBA,EAAkB7f,SAASA,SAASE,KAAKtN,KACjD0nC,EAAapjC,OAAOuH,KAAKH,GACzB2qB,EAAaqR,EAAWvgC,KAAK8D,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAExDg4B,EAAep2B,KAAK2kB,OAAOG,GAE3B4I,EAAWyI,EAAWr7B,MACzBpB,GAAQS,EAAMrE,OAAO4D,IAAM0E,QAAUg4B,KAGlC,EAAE/8B,EAAC,EAAEH,GAAMD,EAAgBy0B,GAE3B/rB,EAAOtI,EAAI,EAAQ,GAAJA,EACfuI,EAAO1I,EAAI,EAAQ,GAAJA,EAEjB7K,EAAM2P,aACR3P,EAAM2P,WAAW6D,UAAYF,EAC7BtT,EAAM2P,WAAW8D,UAAYF,EACzBvT,EAAM2P,WAAW+B,YACnB1R,EAAM2P,WAAW+B,UAAU5G,MAAM4I,UAAS,aAAA7K,OAAgB7I,EAAM2P,WAAW6D,SAAQ,sBAAA3K,OACvF7I,EAAM2P,WAAW8D,SAAQ,4BAAA5K,OACnB7I,EAAM2P,WAAW2B,KAAI,OAG7B,MACE4O,EAAkB,QAAS3C,EAAOyqB,0BAGpC9nB,EAAkB,QAAS3C,EAAOyqB,oBACpC,EAEU,OAAZ8J,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBsX,EAAA9M,EAAYT,kBAAU,IAAAuN,GAAtBA,EAAwBtN,YAAYQ,EACtC,CD6ZQyzF,CAAYvmI,EAAOkgB,EAAmBye,EAAkB,CACtDqJ,oBAAqB7N,EACnB,mCAEF0N,wBAAyB1N,EACvB,uCAEFsN,sBAAuBtN,EACrB,sCAIR,GAGI8kB,GAAoBA,MC1arB/9C,eAA2BlB,GAA2B,IAADm/B,EAC1D,MAAM2S,EAAenoC,SAASa,eAAe,YACvC29B,EACJ,gCACAC,mBAAmBnhC,KAAKC,UAA0B,QAAjBi4B,EAACn/B,EAAM2P,kBAAU,IAAAwvB,OAAA,EAAhBA,EAAkB3xB,WAChD66B,EAAe1+B,SAAS2iB,cAAc,KAE5C,GADY,OAAZwlB,QAAY,IAAZA,KAAcplB,YAAY2b,GACtBA,EAAc,CAAC,IAAD+J,EAChB/J,EAAajI,aAAa,OAAQ+H,GAClC,MAAMkX,EAAgB,IAAI7iC,KACpB8iC,EACJD,EAAcE,UACd,IACAF,EAAcG,WACd,IACAH,EAAcI,cACd,IACAJ,EAAcK,WACd,IACAL,EAAcM,aAChBtX,EAAajI,aACX,WAAW,YAADv3B,OACE7I,EAAMogB,QAAO,KAAAvX,OAAIy2C,EAAY,UAE3CjX,EAAaC,QACU,QAAvB8J,EAAA/J,EAAagK,kBAAU,IAAAD,GAAvBA,EAAyBE,YAAYjK,EACvC,CACF,CDgZIm+F,CAAYxmI,EAAM,EAGpB,OACEimB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACumB,GAAe,CAAA1rC,SAAA,CACdmlB,eAAC8lB,GAAgB,CAAAjrC,SAAA,CACfe,cAAC6pC,GAAU,CAAA5qC,SAAEq5B,EAAe,aAE5Bt4B,cAAC8zC,KAAY,CACX5zC,MAAOu5B,EACP7P,QAASA,IAAM44G,EAAYrkI,EAAM0e,SAAW,IAC5CqL,QAAS+6G,EACTt8D,cAAeq8D,EACfn8D,aAAe9yB,GACb/zC,cAACsqC,GAAkB,CAAArrC,SAAE80C,IAEvBvkB,SAAWhD,IACT42G,EAAoBt4H,OAAO0hB,EAAM/e,OAAOq5D,aAAa,EAEvD79D,MAAO,CAAEsb,MAAO,QAChBqgH,SAAU7B,EACV8B,UAAW/B,EACX9uF,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACRijB,YAAa3Q,EAAe,wBAKpClU,eAAC8lB,GAAgB,CAAAjrC,SAAA,CACfe,cAAC6pC,GAAU,CAAA5qC,SAAEq5B,EAAe,aAE5Bt4B,cAAC8zC,KAAY,CACX5zC,MAAOwiI,EACP94G,QAASA,IAAM+4G,EAAkBD,GAAkB,IACnDz2G,UAAWwN,EACXvR,QAASg7G,EACTv8D,cAAeq8D,EACfn8D,aAAe9yB,GACb/zC,cAACsqC,GAAkB,CAAArrC,SAAE80C,IAEvBvkB,SAAUA,CAAChD,EAAYmkC,KACrBgyE,EAAkBhyE,GAAY,IAC9ByzE,EAAoB,CAAE3/F,QAAS,GAAIl9B,EAAGilB,GAAQ,EAEhDvjB,MAAO,CAAEsb,MAAO,QAChBqgH,SAAU7B,EACV8B,UAAW/B,EACX9uF,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACRijB,YAAa3Q,EAAe,wBAKpClU,eAAC8lB,GAAgB,CAAAjrC,SAAA,CACfe,cAAC6pC,GAAU,CAAA5qC,SAAEq5B,EAAe,WAE5Bt4B,cAAC8zC,KAAY,CACX5zC,MAAOqiI,EACP34G,QAASA,IAAM44G,EAAYrkI,EAAM0e,SAAW,IAC5CqL,QAASxV,MAAMg4D,KAAK,IAAIo6D,IAAI3rG,IAAS1F,OACrCxH,UAAWwN,EACXktC,cAAeq8D,EACfn8D,aAAe9yB,GACb/zC,cAACsqC,GAAkB,CAAArrC,SAAE80C,IAEvBvkB,SAAWhD,IA3PGntB,WAMtB,MAAMigG,EAAkBx0F,OAAOvD,EAAEkG,OAAOq5D,mBAClC08D,EAAalkC,EAAgB,EAqPzBD,CAAgB7yE,EAAM,EAExBvjB,MAAO,CAAEsb,MAAO,QAChBqgH,SAAU7B,EACV8B,UAAW/B,EACX9uF,YAAczb,GACZv4B,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACRijB,YAAa3Q,EAAe,sBAKpClU,eAAC8lB,GAAgB,CAAAjrC,SAAA,CACfe,cAAC+lB,KAAU,CAACC,QAAQ,QAAO/mB,SAAEq5B,EAAe,WAC5Ct4B,cAAC8zC,KAAY,CACX9tC,GAAG,qBACHiD,MAAO,CAAEsb,MAAO,QAChB0H,UAAW9tB,EAAM0e,QACjBkoH,OAAQzB,EACRp7G,QAASm6G,EACTniI,MAAO/B,EAAMogB,SAAW,GACxBooD,cAAeq8D,EACfxzG,SAAWhD,IACT,MAAMw4G,EAAW1sG,EAAe,YAC5B9L,EAAM/e,OAAOq5D,YAAYp2D,SAAWs0H,GA5Q1B3lI,WAMxB,IAAKkI,IAAMA,EAAEkG,OAAOq5D,cAAgB3oE,EAAM2P,WAAY,OACtD,MAAMyQ,EAAUzT,OAAOvD,EAAEkG,OAAOq5D,mBAC1Bw9D,GAAgB/lH,EAAQ,EAqQlBkhF,CAAkBjzE,EACpB,EAEFq6C,aAAe9yB,GACZA,GAA4B,kBAAXA,EAGhB3vB,eAACkC,IAAMkrE,SAAQ,CAAAvyF,SAAA,CACbe,cAACsqC,GAAkB,CAAArrC,SAAE80C,IACT,cAAXA,GACC/zC,cAAAysB,WAAA,CAAAxtB,SACGg7C,GACCj6C,cAAA,UACEiJ,MAAO,CACLqsC,OAAQ,EACRzxB,OAAQ,OACRqM,gBAAiB,eAEnBjG,QAAU1iB,GA5MClI,OACjCkI,EACA8tB,KAIA,GAFA9tB,EAAEE,kBAEEoV,EAAS,CAEX,GADoBwY,EAAMlhB,WAAW,SACpB,CACf,MAAMynD,QAA2B1hC,GAC/B/7B,EAAM0e,QACN2R,GAGF,GAAIotC,EAAmB7/C,KAAKxd,KAAM,CAChC,MACMwtG,EADanwC,EAAmB7/C,KAAKxd,KACFs9D,YAAYjxD,MAClDX,GAAU,QAAAjD,OAAQiD,EAAMswB,cAAiBlF,IAE5C,GACE02E,GACAA,EAAsB1vC,YAAYx3D,OAAS,EAC3C,CACA,MAAM2b,EAASurF,EAAsB1vC,YAAY32D,KAC9C2vB,GAAUA,EAAMnY,aAOnB,YAJAmB,EACE,QAAQ,0GAADrX,OAC0FwZ,EAAM,MAG3G,CACF,CACF,CAEA,MAAMmP,QAAiBrS,GACrB,CACEf,SAAUM,EACVQ,UAAWgY,GAEb7G,GAEF,GAAKmB,EAAS5T,KAAK8qB,mBASZ,CACL,MAAMy2B,EAAgBh9C,EAAY1V,MAC/BqtD,GAAaA,IAAa5iC,IAEzBioC,GACF0kE,EAAuB,CAAEh8H,GAAIs3D,EAAeh8D,KAAMg8D,GACtD,MAdEj/C,EACE,QACAia,EAAe,gCAAiC,CAC9CwzE,OAAQxzE,EAAe,SACvBsO,KAAMjX,EAAS5T,KAAK+qB,aACpB7qB,OAAQqc,EAAe,gCAU/B,GAiJsC2sG,CAA2B19H,EAAGwsC,GAAQ90C,SAEtDe,cAACmsC,KAAU,CAACljC,MAAO,CAAEma,MAAO,oBAftC2wB,EAuBJ6wF,SAAU7B,EACV8B,UAAW/B,EACXoC,cAAeA,CAACh9G,EAAS/pB,IAEhB,IADSykI,EAAqB16G,EAAS/pB,GAG5C6B,cAAAysB,WAAA,CAAAxtB,SACGg7C,GACC71B,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACupC,GAAqB,CACpBvjB,QAAQ,YACR5C,MAAM,YACN2I,UAAW/rB,cAACwtC,KAAO,IACnBvjB,QAASw6G,GACT/6G,WAAS,EACTuC,UAAWpP,EAAQ5d,SAElBq5B,EAAe,YAAY5nB,SACN,UAOlCsjC,YAAczb,GACZv4B,cAAAysB,WAAA,CAAAxtB,SACEe,cAACuvB,KAAS,IACJgJ,EACJvS,QAAQ,WACRijB,YAAa3Q,EAAe,6BAOrCn6B,EAAM0e,WAAyB,QAAdkf,EAAC59B,EAAMogB,eAAO,IAAAwd,GAAbA,EAAe5nB,WAAW,UAC7CiQ,eAACymB,GAAiB,CAAA5rC,SAAA,CACfd,EAAM0hB,WACL7f,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,uBAAuBr5B,SACpDe,cAAC+pB,KAAU,CACT/jB,GAAG,gBACH,aAAW,cACXikB,QAASA,IAAMszB,KAAoBt+C,SAEnCe,cAACmlI,KAAW,QAIlBnlI,cAAC8uB,KAAO,CAACvgB,MAAO+pB,EAAe,yBAAyBr5B,SACtDe,cAAC+pB,KAAU,CACT,aAAW,gBACXE,QAASA,IAAMmzB,KAAoBn+C,SAEnCe,cAACkzC,KAAa,aAKrB,EEzoBQ,SAASqB,KACtB,MAAM,KAAEnsC,GAASkrG,cACX4P,EAAWgf,eACX,SACJhjI,EAAQ,SACRqkC,EAAQ,kBACRllB,EAAiB,MACjBlgB,EAAK,SACL29B,EAAQ,YACRP,GACEwL,MACI5oC,MAAOinI,GAAajlI,KACtB,OAAEvC,EAAM,KAAEC,GAASunI,GAEnB,iBAAErmB,GAAqBJ,MACtB0mB,EAAwBC,GAAyBh7G,oBAAS,IAC1Di7G,EAAqBvD,GAA0B13G,mBACpD,MAEIkE,EAAcruB,IAASjB,UACtBisB,EAAUC,GAAed,mBAA6B,OACvD,QAAEzN,EAAO,YAAEyD,EAAW,UAAET,GAAc1hB,GAErCqnI,EAAaC,GAAkBn7G,oBAAS,IACxCo7G,EAAWC,GAAgBr7G,oBAAS,IACpCs7G,EAAsBC,GAAuBv7G,oBAAS,IACtDw7G,EAA0BC,GAC/Bz7G,oBAAS,IACJ5O,EAAQkmE,GAAat3D,mBAAmB,KACxC07G,EAA4BC,GACjC37G,oBAAkB,IACbw8F,EAAcof,GAAmB57G,sBACjCurF,EAAcswB,GAAmB77G,oBAAS,IAC1CsrF,EAAcwwB,GAAmB97G,mBAAS,OAC1C+7G,EAAcC,GAAmBh8G,oBAAS,IAC1Ci8G,EAAcC,GAAmBl8G,oBAAS,IAC1Cm8G,EAAmBC,GAAwBp8G,oBAAS,IACpDq8G,EAAqBC,GAAsBt8G,oBAAS,IACpDu8G,EAAqBC,IAA0Bx8G,oBAAS,IACxDyrF,GAAagxB,IAAkBz8G,oBAAS,IACxC08G,GAAWC,IAAgB38G,oBAAS,IAErC,eAAEgO,IAAmBH,KAErB+uG,GAAY7nI,UAAa,IAAD2xC,EAG5B,UAF2B+tE,IAER,OAEnB,MAAM9uE,EAAenoC,SAASa,eAAe,YACvCsoC,EAAcnpC,SAAS2iB,cAAc,SAC3CwmB,EAAY5yC,KAAO,OACnB4yC,EAAYC,OAAS,mBACrB60F,GAA4B,GAE5B,MAAMxe,QAAmBzP,GAAgBj7F,GAAW,GAAI2R,GAClD24G,EAAwB/hI,KAAKC,UAAUkiH,GAE7C2e,EAAgBiB,GAEhBl2F,EAAYO,SAAWnyC,UAAmB,IAADoyC,EACvC,MAAMC,EAAqB,QAAjBD,EAAGlqC,EAAEkG,OAAOkkC,aAAK,IAAAF,OAAA,EAAdA,EAAgB79B,KAAK,GAC5BwzH,QAAiB11F,EAAKsM,OACtBryC,EAAWvG,KAAKw2B,MAAMwrG,GAEtB5mH,EAAyB7U,EAAS6U,OAClCknB,EAAsB/7B,EAAS+7B,SAC/Bi+E,EAAoBh6G,EAAS8+E,WAEnC,IAAI8+B,EAAgB,GASpB,GARA3nC,EAAU,IAELphE,GAAWknB,GACd6hF,EAAcnhH,KACZkwB,GAAe,6CAIfixF,EAAc1kH,QAAU,EAAG,CAC7B,MAAM23D,EAAiBh8C,EAAO5V,MAAM64B,GAAsB,cAAhBA,EAAEpmB,YACtCgqH,EAAqBxkI,OAAOu7B,OAClB,OAAdo+B,QAAc,IAAdA,OAAc,EAAdA,EAAgB3gC,OAAOlwB,SAASE,KAAKtN,MAGvC,IAAKo3B,GAAsB0xG,GAGzB,OAFAzlD,EAAU,CAACtpD,GAAe,iDAC1ButG,GAAoB,GAGtB3mI,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,KAGpD,MAAMooG,QAAwB7vD,QAAQiE,IAAI,OAClC6pD,GACNpoG,GAAW,GACX2D,EACAgO,SAEMg3F,GACN3oG,GAAW,GACX2D,EACAF,EACAkO,SAEM22F,GACNtoG,GAAW,GACX2D,EACAF,EACAkO,SAEM4Z,GACNvrB,GAAW,GACX6qB,EACAlZ,SAEMk3F,GACN7oG,GAAW,GACX8oG,EACAn3F,KAKE+6F,EAAcnhH,KACZ4+G,EAAgB,GAAG,GACnBA,EAAgB,GAAG,GACnBA,EAAgB,GAAG,GACnBA,EAAgB,GAAG,GACnBA,EAAgB,GAAG,IAGrB,MAAMC,EAAqBzmG,EAAO9a,KAAK2vB,GAAUA,EAAMhY,YAEvDne,EAAS,CACPb,KAAM,aACNE,KAAM,CAAE+hB,YAAa2mG,KAGvB/nH,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,IAClD,CAEA2qG,EAAgBA,EACbxjH,QAAQqW,QAA4B5Z,WAAV4Z,EAAsBA,EAAQ,KACxDrW,QAAQqW,GAAoB,KAAVA,IACrBwlE,EAAU2nC,GAENA,EAAc1kH,OAAS,EACzBghI,GAAoB,IAEpBxnH,EACE,UACAia,GAAe,oCAEf8tF,GAAoBvpG,GAAU,GAAK2D,EAAQgO,SAEvCsN,EAAS39B,EAAMmiB,YAAY,GAAIzD,GAAW,IAChD3d,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEggB,QAASpgB,EAAMmiB,YAAY,MAEvC,EAGU,OAAZ2vB,QAAY,IAAZA,KAAcplB,YAAYomB,GAC1BA,EAAYxK,QACU,QAAtBuK,EAAAC,EAAYT,kBAAU,IAAAQ,GAAtBA,EAAwBP,YAAYQ,EAAY,EAG5Cq2F,GACHp/H,GAAmBX,IACJ,IAAVW,EACFhJ,EAAS,CAAEb,KAAM,+BACE,IAAV6J,EACThJ,EAAS,CAAEb,KAAM,yBACE,IAAV6J,IAC0B,IAA/BR,IAAoB7C,OACtB3F,EAAS,CAAEb,KAAM,gCAEjBggB,EACE,QACAia,GAAe,kCAGrBivG,GAAmBhgI,EAAE,EAGnBigI,GACHt/H,GAAmBX,IACJ,IAAVW,EACFg/H,KACmB,IAAVh/H,GACL2U,GAASqtG,GAAUrtG,EAAS2R,GAElC+4G,GAAmBhgI,EAAE,EAkEnBkgI,GPpSO,SAAwBngH,GAAwC,IAAvC,0BAAEogH,GAAkCpgH,EAC1E,MAAM,eAAEgR,GAAmBH,KAErBwvG,EAAmC,CACvC,CACEC,UAAW,CAAC,OACZx3G,KAAMpwB,cAAC6nI,KAAY,IACnBvmI,KAAMg3B,EAAe,yCACrBqJ,KAAM,SACNmmG,KAAMvI,GAAiBI,iBAWrBoI,EAA+B,CACnC,CACEH,UAAW,CAAC,cACZtmI,KAAMg3B,EAAe,yCACrBqJ,KAAM,SACNvR,KAAMpwB,cAACkuB,KAAQ,KAEjB,CACE05G,UAAW,CAAC,cACZtmI,KAAMg3B,EAAe,oCACrBqJ,KAAM,IACNvR,KAAMpwB,cAACgoI,KAAW,KAEpB,CACEJ,UAAW,CAAC,cACZtmI,KAAMg3B,EAAe,2CACrBqJ,KAAM,GACNvR,KAAMpwB,cAACioI,KAAY,MAIjBC,EAAsC,CAC1C,CACEN,UAAW,CAAC,gBACZtmI,KAAMg3B,EAAe,2CACrBqJ,KAAM,IACNvR,KAAMpwB,cAAC6zC,KAAO,KAEhB,CACE+zF,UAAW,CAAC,gBACZtmI,KAAMg3B,EAAe,6CACrBqJ,KAAM,IACNvR,KAAMpwB,cAACmoI,KAAM,MAIXC,EAAgC,CACpC,CACER,UAAW,CAAC,cACZtmI,KAAMg3B,EAAe,6CACrBqJ,KAAM,IACNvR,KAAMpwB,cAACywB,KAAO,IACdq3G,KAAMvI,GAAiBQ,yBAEzB,CACE6H,UAAW,CAAC,cACZtmI,KAAMg3B,EAAe,oCACrBqJ,KAAM,IACNvR,KAAMpwB,cAACqoI,KAAa,IACpBP,KAAMvI,GAAiBO,2BAIrBwI,EAA8B,CAClC,CACEV,UAAW,CAAC,YAAa,cACzBx3G,KAAMpwB,cAACo/H,GAAU,IACjB99H,KAAMg3B,EAAe,cACrBqJ,KAAM,KAER,CACEimG,UAAW,CAAC,cACZx3G,KAAMpwB,cAACuuG,GAAa,IACpBjtG,KAAMg3B,EAAe,kBACrBqJ,KAAM,aAER,CACEimG,UAAW,CAAC,cACZx3G,KAAMpwB,cAACuoI,KAAS,IAChBjnI,KAAMg3B,EAAe,gBACrBqJ,KAAM,IACN1iC,SAAU8oI,GAEZ,CACE3pI,OAAQA,IAAMspI,IACdE,UAAW,CAAC,YAAa,eAAgB,cACzCx3G,KAAMpwB,cAAC0gE,KAAS,IAChBp/D,KAAMg3B,EAAe,6BAEvB,CACEsvG,UAAW,CAAC,gBACZx3G,KAAMpwB,cAACwoI,KAAgB,IACvBlnI,KAAMg3B,EAAe,4BACrBqJ,KAAM,IACNmmG,KAAMvI,GAAiBE,kBACvBxgI,SAAUipI,GAEZ,CACEN,UAAW,CAAC,gBACZx3G,KAAMpwB,cAAC8oH,KAAW,IAClBxnH,KAAMg3B,EAAe,uBACrBwvG,KAAMvI,GAAiBS,aAEzB,CACE4H,UAAW,CAAC,kBAAmB,oBAC/Bx3G,KAAMpwB,cAACyoI,KAAU,IACjBnnI,KAAMg3B,EAAe,uBACrBqJ,KAAM,SACNmmG,KAAMvI,GAAiBC,mBAIrBkJ,EAAkC,CACtC,CACEd,UAAW,CACT,+BACA,iCAEFx3G,KAAMpwB,cAACu6H,GAAY,IACnBj5H,KAAM,YACNqgC,KAAM,IACNmmG,KAAMvI,GAAiBU,yBAEzB,CACE2H,UAAW,CACT,+BACA,iCAEFx3G,KAAMpwB,cAAC62H,GAAY,IACnBv1H,KAAMg3B,EAAe,YACrBqJ,KAAM,IACNmmG,KAAMvI,GAAiBW,wBAEzB,CACE0H,UAAW,CACT,+BACA,iCAEFx3G,KAAMpwB,cAACw2H,GAAa,IACpBl1H,KAAMg3B,EAAe,cACrBqJ,KAAM,IACNmmG,KAAMvI,GAAiBY,0BAIrBwI,EAA6B,CACjC,CACEf,UAAW,CAAC,OACZx3G,KAAMpwB,cAAC4oI,KAAa,IACpBtnI,KAAMg3B,EAAe,gCACrBqJ,KAAM,IACNmmG,KAAMvI,GAAiBa,mBACvBn0G,UAAU,GAEZ,CACE27G,UAAW,CAAC,OACZx3G,KAAMpwB,cAAC6oI,KAAe,IACtBvnI,KAAMg3B,EAAe,0CACrBqJ,KAAM,IACNmmG,KAAMvI,GAAiBc,qBAuC3B,MAAO,CACLiI,kBACAX,uBACAI,cACAW,sBACAI,eAxCiC,CACjC,CACElB,UAAW,CAAC,OACZx3G,KAAMpwB,cAACq2G,GAAW,IAClB/0G,KAAMg3B,EAAe,4BACrBqJ,KAAM,IACN1iC,SAAU0pI,GAEZ,CACEf,UAAW,CACT,+BACA,iCAEFx3G,KAAMpwB,cAAC+oI,KAAQ,IACfznI,KAAMg3B,EAAe,2BACrBqJ,KAAM,IACNmmG,KAAMvI,GAAiBM,cACvB5gI,SAAUypI,GAEZ,CACEd,UAAW,CAAC,KACZx3G,KAAMpwB,cAACs/H,GAAY,IACnBh+H,KAAMg3B,EAAe,iBACrBqJ,KAAM,IACN1iC,SAAUmpI,GAEZ,CACER,UAAW,CAAC,OACZx3G,KAAMpwB,cAACq/H,GAAS,IAChB/9H,KAAMg3B,EAAe,cACrBqJ,KAAM,IACN1iC,SAAU0oI,IAWhB,CO6E0BqB,CAAgB,CACtCtB,0BALgCA,KAChCpC,GAAsB,EAAK,IAgF7BjmI,eAAe4pI,GAAuBpsH,EAAiBQ,GACjDlf,EAAM0hB,YACR0b,UAEM/d,GACJ,CACEjB,SAAUM,EACVQ,UAAWA,GAEbmR,GAEErwB,EAAM2P,kBACFqP,GACJ,CACEZ,SAAUM,EACVK,WAAYG,EACZwe,OAAQ,CACNlwB,SAAUxN,EAAM2P,WAAWnC,SAASA,WAGxC6iB,GAIR,CAEA,MAsBMi1G,GAAapkI,UACjB,MAAMujC,EAAmB+mE,GAAWK,IAAI,qBAAuB,GAE/D,GACI7rG,EAAM0f,aACN1f,EAAM2P,YACR3P,EAAM0hB,WACNza,KAAKC,UAAUlH,EAAM2P,WAAWnC,YAAci3B,EAC9C,CACA,MAAMjH,EAAeguE,GAAWK,IAAI,qBAEpC,GAAIruE,EAAc,CAChB,MAAM,QAAE9e,EAAO,UAAEQ,GAAcjY,KAAKw2B,MAAMD,GAEtC9e,GAAWQ,SACPI,GACJ,CACElB,SAAUM,EACVQ,aAEFmR,EAGN,OACM+U,GACR,GAGFlkC,eAAe6pI,KACb,IACM/qI,EAAMogB,SAAWpgB,EAAM0e,SAAW1e,EAAM0hB,iBACpCrC,GACJ,CACEjB,SAAUpe,EAAM0e,QAChBQ,UAAWlf,EAAMogB,SAEnBiQ,GAGJy3G,GAA8B,GAC9Bt8B,GAAWphG,OAAO,mBAClBohG,GAAWphG,OAAO,cAClBrJ,EAAS,CAAEb,KAAM,sBACjBa,EAAS,CAAEb,KAAM,wBACjBa,EAAS,CACPb,KAAM,aACNE,KAAM,CACJmiB,gBAAiB,GACjB7D,QAAS,GACTE,YAAa,GACb0D,kBAAmB,GACnBlC,QAAS,YAIPnF,KAENoV,EAAY,CAAEnwB,KAAM,YAAaE,KAAM,CAAEX,QAAQ,IACnD,CAAE,MAAOwe,GAAQ,CACnB,CAEA,MAgDM+sH,GAAkBv1H,GAClBA,EAAKtS,OAASg3B,GAAe,gBAAwBktG,EACrD5xH,EAAKtS,OAASg3B,GAAe,cAAsBotG,EACnD9xH,EAAKtS,OAASg3B,GAAe,4BACxBquG,IACA/yH,EAAK+tB,MAAQuhF,EAAS4gB,WAAalwH,EAAK+tB,QAAU9kB,EAG7D,GAAIhf,EAAM,OAAOmC,cAAAysB,WAAA,IAEjB,MAAM28G,GAAoBA,CACxB58G,EACA5Y,KAIA,OAFAwX,EAAYoB,EAAMI,eAEVhZ,EAAKtS,MACX,KAAKg3B,GAAe,gBAClBmtG,GAAe,GACf,MAEF,KAAKntG,GAAe,cAClBqtG,GAAa,GACb,MAEF,KAAKrtG,GAAe,iBAClBguG,GAAgB,GAChB,MAEF,KAAKhuG,GAAe,2BAClBkuG,GAAgB,GAChB,MAEF,KAAKluG,GAAe,4BAClBsuG,GAAmB,GACnB,MAEF,KAAKtuG,GAAe,4BAClBouG,GAAqB,GAKzB,EAGIa,GAAsB/6G,IACtBA,IACFA,EAAMhlB,iBACNglB,EAAM/kB,mBAEJ0jB,GAAUC,EAAY,MACtBo6G,GAAaC,GAAe,GAC5BC,GAAWC,GAAa,GACxBU,GAAcC,GAAgB,GAC9BC,GAAcC,GAAgB,GAC9BC,GAAmBC,GAAqB,GACxCC,GAAqBC,GAAmB,EAAM,EAGpD,SAASyC,GAAoB78G,GAC3B45G,EAAgB55G,EAAMI,eACtBu5G,GAAgB,EAClB,CAEA,SAASrwB,KACPswB,EAAgB,MAChBD,GAAgB,EAClB,CAMA,SAASmD,GAAmB11H,GAC1B,OAAQA,EAAKtS,MACX,KAAKg3B,GAAe,cAClB,OAAOotG,EACT,KAAKptG,GAAe,iBAClB,OAAO+tG,EACT,KAAK/tG,GAAe,2BAClB,OAAOiuG,EACT,KAAKjuG,GAAe,4BAClB,OAAOmuG,EACT,QACE,OAAO,EAEb,CA6OA,OACEriH,eAACglB,GAAS,CAAAnqC,SAAA,CACPrB,GA3ODwmB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEmlB,eAACilB,GAAU,CAAApqC,SAAA,CACTe,cAACyqC,GAAa,CAAAxrC,SACZe,cAACynC,GAAS,MAEZznC,cAACspC,GAAgB,CAAArqC,SACfe,cAAC+hI,GAAU,CACTE,cAAe+D,EACfhE,uBAAwBA,MAG5B59G,eAAC2mB,GAAgB,CAAA9rC,SAAA,CACd4d,GACC7c,cAAC8uB,KAAO,CAACvgB,MAAO,QAASygB,UAAU,OAAM/vB,SACvCe,cAAC+pB,KAAU,CAACE,QAASA,IAAMg9G,IAAa,GAAMhoI,SAC5Ce,cAACupI,KAAa,CAACv8G,SAAS,eAK7B6oF,GACC71G,cAACy1G,GAAS,CACRK,qBAAsBA,GACtBF,aAAcA,EACdC,aAAcA,EACdE,YAAaA,IAAMgxB,IAAe,KAIrClqH,GACC7c,cAAC8uB,KAAO,CACNvgB,MAAO+pB,GAAe,uBACtBtJ,UAAU,SAAQ/vB,SAElBe,cAAC+pB,KAAU,CACT,aAAW,eACX/jB,GAAG,cACH,gBAAc,YACd,gBAAe6vG,EAAe,YAASrzG,EACvC,gBAAc,OACdynB,QAASo/G,GACT97G,KAAM,SAAStuB,SAEfe,cAACwpI,KAAoB,CAACx8G,SAAS,sBAMzC5I,eAAColB,GAAQ,CAAAvqC,SAAA,CACPmlB,eAACmzB,KAAI,CAAAt4C,SAAA,CACFwoI,GAAgBa,gBAAgB5iI,KAAI,CAACkO,EAAM1L,IAC1ClI,cAAC0pC,GAAY,CAEXC,SAAUw/F,GAAev1H,GACzBqW,QAASA,IAxXvB5qB,eAAiC2+C,GAC/B,OAAQA,EAAK8pF,MACX,KAAKvI,GAAiBC,iBAEpB,YADM3iH,GAAS3d,EAAS,CAAEb,KAAM,yBAElC,KAAKkhI,GAAiBS,YAEpB,YADMnjH,GAASiqH,IAAuB,IAExC,KAAKvH,GAAiBM,cAGpB,aAFMoJ,GAAuB9qI,EAAM0e,SAAW,GAAI1e,EAAMogB,SAAW,SAC/Dy/B,EAAKrc,MAAMv5B,EAAK41C,EAAKrc,QAKxB9kB,GAAYA,GAAWmhC,EAAK18C,OAASg3B,GAAe,iBAErD0lB,EAAKrc,OAASuhF,EAAS4gB,WAEvB9lF,EAAK5/C,OACP4/C,EAAK5/C,UAIW,MAAd4/C,EAAKrc,MACDxjC,EAAM2P,YACV3P,EAAM2P,WAAW6oB,QAEnBz3B,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,EAAOL,QAAS,OAElD,MAAdy/B,EAAKrc,MACiB,MAAtBuhF,EAAS4gB,UACK,cAAd9lF,EAAKrc,WAEC8hG,KACiB,cAAdzlF,EAAKrc,MAAsC,eAAdqc,EAAKrc,MACvCxjC,EAAM0e,SAAW1e,EAAMogB,eACnB0qH,GAAuB9qI,EAAM0e,QAAS1e,EAAMogB,SAGlDy/B,EAAKrc,MAAMv5B,EAAK41C,EAAKrc,KAAM,CAAE+oC,KAAMw4C,EAAS4gB,YAClD,CA+U6B2F,CAAkB71H,GAAM3U,SAEvCe,cAACmpG,GAAa,CAAC/qG,OAAQwV,EAAKg0H,WAAa,GAAG3oI,SAC1CmlB,eAACozB,KAAQ,CACPxxC,GAAI4N,EAAKtS,KACT,mBAAkBsS,EAAKtS,KACvB6sB,QAAM,EAEN,gBAAc,OACdlE,QAAU1iB,GAAM6hI,GAAkB7hI,EAAGqM,GACrCqY,SACErY,EAAKtS,OAASg3B,GAAe,kBACxBzY,IACAhD,EACN5d,SAAA,CAEDe,cAAC8uB,KAAO,CAACvgB,MAAOqF,EAAKtS,KAAM0tB,UAAU,QAAO/vB,SAC1Ce,cAACy3C,KAAY,CAAAx4C,SAAE2U,EAAKwc,SAGrBxc,EAAK3U,UACJe,cAAC8kB,KAAO,CACN9e,GAAI4N,EAAKtS,KACTkmB,KACE5T,EAAKtS,OAASg3B,GAAe,gBACzBktG,EACAmB,EAENx7G,SAAUA,EACV8B,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdC,gBAAiB,CACfF,SAAU,MACVC,WAAY,QAEdvD,QAAS29G,GACTt+H,MAAO,CAAEq3B,OAAQ,MAAOrhC,SAExBe,cAAA,OAAAf,SACG2U,EAAK3U,SAASyG,KACb,CACEgkI,EAKAxhI,IAEAkc,eAACqlB,GAAiB,CAEhBE,SAAUw/F,GAAev1H,GACzBqW,QACErW,EAAKtS,OAASg3B,GAAe,gBACzBgvG,GAAmBp/H,GACnBs/H,GAA2Bt/H,GAChCjJ,SAAA,CAEDmlB,eAACozB,KAAQ,CACPrpB,QAAM,EAENlC,SACEy9G,EAAIpoI,OACFg3B,GACE,4CACkC,IAA/B5wB,IAAoB7C,OAC5B5F,SAAA,CAEDe,cAACy3C,KAAY,CAAAx4C,SAAEyqI,EAAIt5G,OACnBpwB,cAAC2pI,KAAY,CAACxiG,QAASuiG,EAAIpoI,SATtB4G,GAWPlI,cAAC0tC,KAAO,CAAC1nB,QAAQ,aArBZ9d,WA5CZA,MATJA,KAqFTlI,cAAC0tC,KAAO,IACP+5F,GAAgBqB,eAAepjI,KAAI,CAACkO,EAAM1L,IACzClI,cAAC0pC,GAAY,CAEXC,SAAUw/F,GAAev1H,GACzBqW,QAASA,IAravB5qB,eAA2C2+C,GACzC,GAAQA,EAAK8pF,OACNvI,GAAiBM,cAGpB,aAFMoJ,GAAuB9qI,EAAM0e,SAAW,GAAI1e,EAAMogB,SAAW,SAC/Dy/B,EAAKrc,MAAMv5B,EAAK41C,EAAKrc,OAKzBqc,EAAKrc,OAASuhF,EAAS4gB,WAET,MAAd9lF,EAAKrc,MACDxjC,EAAM2P,YACV3P,EAAM2P,WAAW6oB,QAEnBz3B,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,EAAOL,QAAS,OAElD,MAAdy/B,EAAKrc,MACiB,MAAtBuhF,EAAS4gB,UACK,cAAd9lF,EAAKrc,WAEC8hG,KACiB,eAAdzlF,EAAKrc,MACVxjC,EAAM0e,SAAW1e,EAAMogB,eACnB0qH,GAAuB9qI,EAAM0e,QAAS1e,EAAMogB,SAGlDy/B,EAAKrc,MAAMv5B,EAAK41C,EAAKrc,MAC3B,CAyY6BioG,CAA4Bh2H,GAAM3U,SAEjDe,cAACmpG,GAAa,CAAC/qG,OAAQwV,EAAKg0H,WAAa,GAAG3oI,SAC1CmlB,eAACozB,KAAQ,CACP,mBAAkB5jC,EAAKtS,KACvB0E,GAAI4N,EAAKtS,KACT6sB,QAAM,EAEN,gBAAc,OACdlE,QAAU1iB,GACR6hI,GAAkB7hI,EAAGqM,GAEvBqY,UACErY,EAAKtS,OAASg3B,GAAe,4BAC7B1kB,EAAKtS,OAASg3B,GAAe,+BACxBzb,EAEN5d,SAAA,CAEDe,cAAC8uB,KAAO,CAACvgB,MAAOqF,EAAKtS,KAAM0tB,UAAU,QAAO/vB,SAC1Ce,cAACy3C,KAAY,CAAAx4C,SAAE2U,EAAKwc,SAErBxc,EAAK3U,UACJe,cAAC8kB,KAAO,CACN9e,GAAI4N,EAAKtS,KACTkmB,KAAM8hH,GAAmB11H,GACzBuX,SAAUA,EACV8B,aAAc,CACZC,SAAU,MACVC,WAAY,SAEdvD,QAAS29G,GACTt+H,MAAO,CAAEq3B,OAAQ,MAAOrhC,SAExBe,cAAA,OAAAf,SACG2U,EAAK3U,SAASyG,KACb,CACEgkI,EAMAxhI,KAAa,IAAA2hI,EA7jBtC/B,EA6jBsC,OAEb1jH,eAACqlB,GAAiB,CAEhBE,SAAUw/F,GAAev1H,GACzBqW,SAlkB3B69G,EAkkBkE,QAAT+B,EAACH,EAAI5B,YAAI,IAAA+B,IAAI,GAlkBpDtiI,IACjB,OAAQugI,GACN,KAAKvI,GAAiBG,eACpBxgI,EAAS,CAAEb,KAAM,2BACjB,MAEF,KAAKkhI,GAAiBI,eAEpBzgI,EAAS,CAAEb,KAAM,2BACjB,MAEF,KAAKkhI,GAAiBK,mBACpB1gI,EAAS,CAAEb,KAAM,8BACjB,MAEF,KAAKkhI,GAAiBQ,wBACpB7gI,EAAS,CAAEb,KAAM,oCACjB,MAEF,KAAKkhI,GAAiBO,yBACpB5gI,EAAS,CAAEb,KAAM,oCACjB,MAEF,KAAKkhI,GAAiBU,wBACpB/gI,EAAS,CACPb,KAAM,+BAER,MAEF,KAAKkhI,GAAiBW,uBACpBhhI,EAAS,CACPb,KAAM,8BAER,MAEF,KAAKkhI,GAAiBY,wBACpBjhI,EAAS,CACPb,KAAM,+BAER,MAEF,KAAKkhI,GAAiBa,mBACpBlhI,EAAS,CACPb,KAAM,0BAER,MAEF,KAAKkhI,GAAiBc,mBACpBnhI,EAAS,CACPb,KAAM,0BAMZkpI,GAAmBhgI,EAAE,GA2gBoDtI,SAAA,CAE/CmlB,eAACozB,KAAQ,CACPrpB,QAAM,EAENlC,SAAUy9G,EAAIz9G,SAAShtB,SAAA,CAEvBe,cAACy3C,KAAY,CAAAx4C,SAAEyqI,EAAIt5G,OACnBpwB,cAAC2pI,KAAY,CAACxiG,QAASuiG,EAAIpoI,SAJtB4G,GAMPlI,cAAC0tC,KAAO,MAZHxlC,EAaa,UApDzBA,MATJA,KAuETlI,cAAC0pC,GAAY,CAAAzqC,SACXe,cAAC8uB,KAAO,CAACvgB,MAAM,SAASygB,UAAU,QAAO/vB,SACvCe,cAACw3C,KAAQ,CAACrpB,QAAM,EAAC,gBAAc,OAAOlE,QAASi/G,GAAajqI,SAC1De,cAACy3C,KAAY,CAAAx4C,SACXe,cAACu1G,GAAU,eAOpB14F,GACC7c,cAACmpG,GAAa,CAAC/qG,OAAQ,CAAC,gBAAgBa,SACtCe,cAACsgI,GAAa,YAYtBtgI,cAACs1G,GAAM,IACPt1G,cAACokH,GAAiB,IAEjBjmH,EAAMshB,qBAAuBzf,cAACqiH,GAAe,MAE3CkjB,GACDvlI,cAACwkH,GAAgB,CACf/8F,YAAaA,IAAMu6G,EAAuB,MAC1C3kH,UAAWkoH,EAAoBjkI,MAAQ,GACvCmjH,kBAjYkBplH,UACxB,IAAKkmI,EAEH,OADAlnH,EAAkB,QAAS,6BACpB,EAGT,IAAKxB,EAEH,OADAwB,EAAkB,QAAS,2BACpB,EAGT,MAAMlF,EAA+B,CACnCoD,SAAUM,EACVK,WAAYqoH,EAAoBv/H,GAChC4X,wBAAyB2nH,EAAoBv/H,IAI/C,UAFqB2X,GAAYxE,EAASqV,IAE/BtS,QAAS,CAClB,MAAM4tH,EAAexpH,EAAYva,QAC9B6N,GAASA,IAAS2xH,EAAoBv/H,KAGzC,GAAIu/H,EAAoBv/H,KAAO7H,EAAMogB,QAAS,CAC5C,MAAMi+C,EAAiBl8C,EAAY1V,MAAMgJ,GAAkB,cAATA,IAC5Cm2H,EAAgBvtE,GAAkCstE,EAAa,SA5GnDzqI,eAAOklI,GAA2C,IAAzBC,EAAW58H,UAAA/C,OAAA,QAAArC,IAAAoF,UAAA,IAAAA,UAAA,GAC1D1I,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAEqgB,SAAS,MAE/C4lH,SAAsBf,KAEnBtlI,EAAM0hB,iBACFrC,GACJ,CACEjB,SAAUM,GAAW,GACrBQ,UAAWlf,EAAMogB,SAAW,IAE9BiQ,SAIEsN,EAASyoG,EAAU1nH,GAAW,IAAI,EAAO2nH,GAC/CtlI,EAAS,CACPb,KAAM,aACNE,KAAM,CAAEggB,QAASgmH,EAAU3lH,SAAS,IAExC,CAyFY0lH,CAAgByF,GAAe,EACvC,CAEA7qI,EAAS,CAAEb,KAAM,aAAcE,KAAM,CAAE+hB,YAAawpH,KAEpDzrH,EAAkB,UAAWia,GAAe,8BAE5C,MAAM0xG,EAAgBzE,EAAoBjkI,KAAK6R,UAC7C,EACAoyH,EAAoBjkI,KAAKuD,cAGrBw1B,GACJ,CAAE9d,SAAUM,EAAS0d,WAAYyvG,EAAe3tE,YAAa,IAC7D7tC,EAEJ,MACEnQ,EAAkB,QAASia,GAAe,4BAE5C0pG,EAAuB,KAAK,IAwVzBqD,GACCrlI,cAAC2jH,GAAkB,CACjBn8F,KAAM69G,EACN59G,YAAaA,IAAM69G,GAAsB,KAI5CF,EAASpnI,oBAAsBgC,cAACoqH,GAAY,IAE5C0b,GACC9lI,cAAC6pH,GAAoB,CACnBriG,KAAMs+G,EACN9b,gBAAiB3qH,UACf6qH,GAAUrtG,GAAW,GAAI2R,EAAY,EAEvCo7F,gBAAiBsd,GACjBz/G,YAAaA,IAAMs+G,GAA4B,KAIlDH,GACC5lI,cAAC4mH,GAAmB,CAClBp/F,KAAMo+G,EACNlqH,OAAQA,EACRorG,aAAcA,EACdr/F,YAAaA,IAAMo+G,GAAoB,GACvChf,WAAYA,IAAMgf,GAAoB,KAWzCgB,GACC7mI,cAAConH,GAAe,CACd5/F,KAAMq/G,EACNp/G,YAAaA,IAAMq/G,IAAuB,KAI7C/wB,IACC/1G,cAAC82G,GAAa,CACZ/vG,IAAK5I,EAAM4hB,SAASG,YAAc,GAClC62F,aAAcA,IAAMgwB,IAAe,KAItCC,IACChnI,cAAC8qH,GAAK,CAACtjG,KAAMw/G,GAAWjc,iBAnU9B,WACEkc,IAAa,EACf,IAoUK9oI,EAAMmhB,4BACLtf,cAAC82H,GAAc,CACbtvG,KAAMrpB,EAAMmhB,2BACZ+gC,MAAOA,IACLnhD,EAAS,CACPb,KAAM,kCAMbF,EAAMohB,2BACLvf,cAACw6H,GAAc,CACbhzG,KAAMrpB,EAAMohB,0BACZ8gC,MAAOA,IACLnhD,EAAS,CACPb,KAAM,iCAKbF,EAAMqhB,4BACLxf,cAACo+H,GAAc,CACb52G,KAAMrpB,EAAMqhB,2BACZ6gC,MAAOA,IACLnhD,EAAS,CACPb,KAAM,kCAKbF,EAAMwhB,uBAAyB3f,cAACkhI,GAAiB,MAGxD,CCt4Be+I,OAvGMC,aAAiBjnH,QAAAC,aAAA,kuDCoCvBinH,OArBf,SAAanrI,GACX,OACEolB,eAAAqI,WAAA,CAAAxtB,SAAA,CACEe,cAACiqI,GAAY,IACbjqI,cAACjB,EAAW,CAAAE,SACVe,cAAC84B,GAAmB,CAAA75B,SAClBe,cAACsnC,GAAW,CAAAroC,SACVe,cAACy6B,GAAY,CAAAx7B,SACXe,cAACijF,GAAe,CAAAhkF,SACde,cAACoqI,IAAM,CAAC/2B,QAASr0G,EAAMq0G,QAAQp0G,SAC7Be,cAACu0C,GAAI,kBASvB,ECtBe81F,OAZUC,IACnBA,GAAeA,aAAuBtkF,UACxC,+BAAqBoI,MAAK9mC,IAAkD,IAAjD,OAAEijH,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASrjH,EACpEijH,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAY,GAExB,ECJF,MAAMj3B,GAAUu3B,cAEhBjrG,IAASC,OACP5/B,cAACsmB,IAAMukH,WAAU,CAAA5rI,SACfe,cAACmqI,GAAG,CAAC92B,QAASA,OAEhBvrG,SAASa,eAAe,SAM1B0hI,I,y0lECjBA,MAAM3zG,EAAUo0G,EAAQ,KAExBp0G,EAAQq/B,IAAiB,YAAI,0BAC7Br/B,EAAQq/B,IAAsC,iCAC1C,sGACJr/B,EAAQq/B,IAAwB,mBAAI,eACpCr/B,EAAQq/B,IAAc,SAAI,gBAC1Br/B,EAAQq/B,IAAgC,2BACpC,yCACJr/B,EAAQq/B,IAAkB,aAAI,kBAC9Br/B,EAAQq/B,IAAoB,eAAI,iBAChCr/B,EAAQq/B,IAA0B,qBAAI,QACtCr/B,EAAQq/B,IAA0B,qBAAI,QACtCr/B,EAAQq/B,IAA0B,qBAC9B,uDACJr/B,EAAQq/B,IAAwB,mBAAI,kBACpCr/B,EAAQq/B,IAAwB,mBAAI,WACpCr/B,EAAQq/B,IAA0B,qBAC9B,8DACJr/B,EAAQq/B,IAA2B,sBAAI,oCACvCr/B,EAAQq/B,IAA2B,sBAAI,wCACvCr/B,EAAQq/B,IAA2B,sBAAI,0BACvCr/B,EAAQq/B,IAAyB,oBAAI,mBACrCr/B,EAAQq/B,IAA2B,sBAAI,sCACvCr/B,EAAQq/B,IAAqB,gBAAI,OACjCr/B,EAAQq/B,IAAsB,iBAAI,QAClCr/B,EAAQq/B,IAAwB,mBAC5B,0DACJr/B,EAAQq/B,IAAoB,eAAI,WAChCr/B,EAAQq/B,IAAsB,iBAAI,cAClCr/B,EAAQq/B,IAAwB,mBAC5B,qHACJr/B,EAAQq/B,IAAsC,iCAC1C,uEACJr/B,EAAQq/B,IAA6C,wCAAI,oBACzDr/B,EAAQq/B,IAAgD,2CACpD,sDACJr/B,EAAQq/B,IAA4C,uCAAI,qBACxDr/B,EAAQq/B,IAA+C,0CACnD,4EACJr/B,EAAQq/B,IAAsC,iCAC1C,uEACJr/B,EAAQq/B,IAA8B,yBAClC,wDACJr/B,EAAQq/B,IAA4B,uBAAI,gCACxCr/B,EAAQq/B,IAA8B,yBAClC,iHACJr/B,EAAQq/B,IAA0B,qBAC9B,0DACJr/B,EAAQq/B,IAAwB,mBAAI,uCACpCr/B,EAAQq/B,IAA0B,qBAC9B,mLACJr/B,EAAQq/B,IAAgC,2BACpC,iDACJr/B,EAAQq/B,IAA8B,yBAClC,uDACJr/B,EAAQq/B,IAAyB,oBAC7B,gDACJr/B,EAAQq/B,IAA4B,uBAChC,4EACJr/B,EAAQq/B,IAA0B,qBAAI,WACtCr/B,EAAQq/B,IAA4B,uBAAI,cACxCr/B,EAAQq/B,IAAwB,mBAAI,KACpCr/B,EAAQq/B,IAA2B,sBAC/B,yEACJr/B,EAAQq/B,IAA2B,sBAC/B,4IACJr/B,EAAQq/B,IAA2B,sBAC/B,0LACJr/B,EAAQq/B,IAA2B,sBAC/B,4QACJr/B,EAAQq/B,IAA6B,wBACjC,mHACJr/B,EAAQq/B,IAA8B,yBAAI,UAC1Cr/B,EAAQq/B,IAA2B,sBAAI,kBACvCr/B,EAAQq/B,IAA6B,wBACjC,oDACJr/B,EAAQq/B,IAAiC,4BACrC,sDACJr/B,EAAQq/B,IAAwC,mCAAI,gBACpDr/B,EAAQq/B,IAAwC,mCAAI,kBACpDr/B,EAAQq/B,IAAuC,kCAC3C,0EACJr/B,EAAQq/B,IAAuC,kCAC3C,+EACJr/B,EAAQq/B,IAAgB,WAAI,eAC5Br/B,EAAQq/B,IAAoB,eAAI,YAChCr/B,EAAQq/B,IAAmB,cAAI,SAC/Br/B,EAAQq/B,IAAwB,mBAAI,6CACpCr/B,EAAQq/B,IAAuB,kBAAI,sCACnCr/B,EAAQq/B,IAA4B,uBAChC,8CACJr/B,EAAQq/B,IAA+B,0BACnC,gDACJr/B,EAAQq/B,IAA2B,sBAC/B,wDACJr/B,EAAQq/B,IAAgC,2BACpC,yDACJr/B,EAAQq/B,IAAmC,8BACvC,mEACJr/B,EAAQq/B,IAAuB,kBAAI,8BACnCr/B,EAAQq/B,IAAkB,aAAI,gBAC9Br/B,EAAQq/B,IAAqB,gBAAI,6BACjCr/B,EAAQq/B,IAAkC,6BACtC,uCACJr/B,EAAQq/B,IAAqB,gBAAI,oBACjCr/B,EAAQq/B,IAAmB,cAAI,oBAC/Br/B,EAAQq/B,IAAqB,gBAAI,WACjCr/B,EAAQq/B,IAAuB,kBAAI,yBACnCr/B,EAAQq/B,IAAkB,aAAI,kBAC9Br/B,EAAQq/B,IAAgB,WAAI,kBAC5Br/B,EAAQq/B,IAAkB,aAAI,iBAC9Br/B,EAAQq/B,IAAqB,gBAAI,oBACjCr/B,EAAQq/B,IAAU,KAAI,QACtBr/B,EAAQq/B,IAAmB,cAAI,wBAC/Br/B,EAAQq/B,IAAgB,WAAI,WAC5Br/B,EAAQq/B,IAAe,UAAI,OAC3Br/B,EAAQq/B,IAAY,OAAI,KACxBr/B,EAAQq/B,IAA8B,yBAAI,sBAC1Cr/B,EAAQq/B,IAAqC,gCAAI,6BACjDr/B,EAAQq/B,IAA2C,sCAC/C,6CACJr/B,EAAQq/B,IAA2B,sBAAI,WACvCr/B,EAAQq/B,IAA8B,yBAAI,YAC1Cr/B,EAAQq/B,IAAgC,2BAAI,0BAC5Cr/B,EAAQq/B,IAAiC,4BAAI,UAC7Cr/B,EAAQq/B,IAAoC,+BACxC,yDACJr/B,EAAQq/B,IAAiC,4BAAI,WAC7Cr/B,EAAQq/B,IAAiC,4BAAI,gBAC7Cr/B,EAAQq/B,IAAgC,2BACpC,iEACJr/B,EAAQq/B,IAA8B,yBAAI,oBAC1Cr/B,EAAQq/B,IAAgC,2BACpC,4DACJr/B,EAAQq/B,IAA2C,sCAAI,QACvDr/B,EAAQq/B,IAAyC,oCAC7C,qFACJr/B,EAAQq/B,IAA+B,0BACnC,gEACJr/B,EAAQq/B,IAAkC,6BAAI,kBAC9Cr/B,EAAQq/B,IAAoC,+BAAI,iCAChDr/B,EAAQq/B,IAA+B,0BACnC,sDACJr/B,EAAQq/B,IAA2B,sBAAI,WACvCr/B,EAAQq/B,IAA8B,yBAAI,0BAC1Cr/B,EAAQq/B,IAAgC,2BAAI,QAC5Cr/B,EAAQq/B,IAAyB,oBAAI,QACrCr/B,EAAQq/B,IAAgC,2BAAI,kBAC5Cr/B,EAAQq/B,IAA0B,qBAAI,YACtCr/B,EAAQq/B,IAA4B,uBAAI,eACxCr/B,EAAQq/B,IAA4B,uBAAI,UACxCr/B,EAAQq/B,IAA0B,qBAAI,GACtCr/B,EAAQq/B,IAAuC,kCAC3C,wCACJr/B,EAAQq/B,IAAsC,iCAC1C,yDACJr/B,EAAQq/B,IAAsC,iCAC1C,yCACJr/B,EAAQq/B,IAAwC,mCAC5C,6CACJr/B,EAAQq/B,IAA8C,yCAClD,iDACJr/B,EAAQq/B,IAA6C,wCACjD,sEACJr/B,EAAQq/B,IAA6C,wCACjD,kDACJr/B,EAAQq/B,IAA+C,0CACnD,sDACJr/B,EAAQq/B,IAA0C,qCAC9C,uCACJr/B,EAAQq/B,IAAyC,oCAC7C,4DACJr/B,EAAQq/B,IAAyC,oCAC7C,wCACJr/B,EAAQq/B,IAA2C,sCAC/C,4CACJr/B,EAAQq/B,IAAoC,+BAAI,iCAChDr/B,EAAQq/B,IAAsC,iCAAI,eAClDr/B,EAAQq/B,IAAgC,2BAAI,mBAC5Cr/B,EAAQq/B,IAA+B,0BACnC,iEACJr/B,EAAQq/B,IAAmC,8BACvC,yCACJr/B,EAAQq/B,IAAsC,iCAC1C,+CACJr/B,EAAQq/B,IAAwC,mCAAI,6BACpDr/B,EAAQq/B,IAA4B,uBAAI,GACxCr/B,EAAQq/B,IAA+B,0BACnC,+DACJr/B,EAAQq/B,IAAkC,6BAAI,4BAC9Cr/B,EAAQq/B,IAAoC,+BAAI,2BAChDr/B,EAAQq/B,IAA0B,qBAAI,4CACtCr/B,EAAQq/B,IAA4B,uBAChC,yEACJr/B,EAAQq/B,IAAyB,oBAAI,6CACrCr/B,EAAQq/B,IAA4B,uBAChC,yHACJr/B,EAAQq/B,IAAkB,aAAI,WAC9Br/B,EAAQq/B,IAA2B,sBAC/B,wDACJr/B,EAAQq/B,IAAyB,oBAAI,gBACrCr/B,EAAQq/B,IAA2B,sBAC/B,kDACJr/B,EAAQq/B,IAA0B,qBAC9B,yDACJr/B,EAAQq/B,IAAwB,mBAAI,gBACpCr/B,EAAQq/B,IAA0B,qBAAI,kCACtCr/B,EAAQq/B,IAA0B,qBAC9B,gEACJr/B,EAAQq/B,IAAwB,mBAAI,4CACpCr/B,EAAQq/B,IAA0B,qBAC9B,4FACJr/B,EAAQq/B,IAA2B,sBAC/B,qEACJr/B,EAAQq/B,IAA4B,uBAAI,cACxCr/B,EAAQq/B,IAA2B,sBAAI,kCACvCr/B,EAAQq/B,IAA6B,wBACjC,4DACJr/B,EAAQq/B,IAA8B,yBAAI,OAC1Cr/B,EAAQq/B,IAA4B,uBAAI,aACxCr/B,EAAQq/B,IAAyB,oBAAI,UACrCr/B,EAAQq/B,IAA0C,qCAC9C,2CACJr/B,EAAQq/B,IAAyC,oCAC7C,4DACJr/B,EAAQq/B,IAAyC,oCAC7C,uCACJr/B,EAAQq/B,IAA2C,sCAC/C,4DACJr/B,EAAQq/B,IAAuC,kCAC3C,uCACJr/B,EAAQq/B,IAAsC,iCAC1C,4DACJr/B,EAAQq/B,IAAsC,iCAC1C,wCACJr/B,EAAQq/B,IAAwC,mCAC5C,4CACJr/B,EAAQq/B,IAAwB,mBAC5B,8DACJr/B,EAAQq/B,IAAgC,2BAAI,aAC5Cr/B,EAAQq/B,IAAiC,4BAAI,cAC7Cr/B,EAAQq/B,IAAsB,iBAAI,mBAClCr/B,EAAQq/B,IAAwB,mBAAI,qCACpCr/B,EAAQq/B,IAAgC,2BACpC,mDACJr/B,EAAQq/B,IAA6B,wBAAI,cACzCr/B,EAAQq/B,IAA0B,qBAAI,gBACtCr/B,EAAQq/B,IAAyB,oBAC7B,mFACJr/B,EAAQq/B,IAAgC,2BAAI,oCAC5Cr/B,EAAQq/B,IAAgC,2BAAI,mCAC5Cr/B,EAAQq/B,IAA8B,yBAClC,gFACJr/B,EAAQq/B,IAA+B,0BACnC,2EACJr/B,EAAQq/B,IAAgC,2BAAI,kBAC5Cr/B,EAAQq/B,IAAyB,oBAAI,QACrCr/B,EAAQq/B,IAA2B,sBAC/B,sDACJr/B,EAAQq/B,IAA2B,sBAAI,+BACvCr/B,EAAQq/B,IAAwB,mBAAI,aACpCr/B,EAAQq/B,IAA2B,sBAC/B,oDACJr/B,EAAQq/B,IAA8B,yBAClC,wDACJr/B,EAAQq/B,IAA8B,yBAClC,4EACJr/B,EAAQq/B,IAA+B,0BACnC,oFACJr/B,EAAQq/B,IAA8B,yBAClC,4EACJr/B,EAAQq/B,IAA+B,0BACnC,oFACJr/B,EAAQq/B,IAA+B,0BACnC,4DACJr/B,EAAQq/B,IAA0B,qBAC9B,mDACJr/B,EAAQq/B,IAAwB,mBAAI,YACpCr/B,EAAQq/B,IAA0B,qBAC9B,yFACJr/B,EAAQq/B,IAAgB,WAAI,OAC5Br/B,EAAQq/B,IAAwB,mBAC5B,8CACJr/B,EAAQq/B,IAAwB,mBAAI,gBACpCr/B,EAAQq/B,IAAyB,oBAAI,IACrCr/B,EAAQq/B,IAA6B,wBACjC,kEACJr/B,EAAQq/B,IAAwB,mBAAI,KACpCr/B,EAAQq/B,IAAiC,4BACrC,6DACJr/B,EAAQq/B,IAAgC,2BACpC,yDACJr/B,EAAQq/B,IAA6B,wBAAI,QACzCr/B,EAAQq/B,IAA2B,sBAAI,qCACvCr/B,EAAQq/B,IAA4B,uBAAI,WACxCr/B,EAAQq/B,IAA2B,sBAAI,gBACvCr/B,EAAQq/B,IAA2B,sBAC/B,+IACJr/B,EAAQq/B,IAAsB,iBAAI,uEAClCr/B,EAAQq/B,IAAyB,oBAAI,uEACrCr/B,EAAQq/B,IAAwB,mBAAI,sFACpCr/B,EAAQq/B,IAA0B,qBAAI,IACtCr/B,EAAQq/B,IAA6B,wBACjC,gDACJr/B,EAAQq/B,IAAiC,4BAAI,sCAC7Cr/B,EAAQq/B,IAAoC,+BACxC,yDACJr/B,EAAQq/B,IAAmC,8BACvC,mDACJr/B,EAAQq/B,IAAsC,iCAC1C,yCACJr/B,EAAQq/B,IAAmC,8BACvC,8EACJr/B,EAAQq/B,IAAwB,mBAAI,sCACpCr/B,EAAQq/B,IAAsB,iBAAI,qBAClCr/B,EAAQq/B,IAAwB,mBAC5B,kEACJr/B,EAAQq/B,IAAyB,oBAC7B,iDACJr/B,EAAQq/B,IAAuB,kBAAI,oBACnCr/B,EAAQq/B,IAAyB,oBAAI,2CACrCr/B,EAAQq/B,IAA2B,sBAC/B,2EACJr/B,EAAQq/B,IAA2B,sBAC/B,yKACJr/B,EAAQq/B,IAA4B,uBAChC,oDACJr/B,EAAQq/B,IAA0B,qBAAI,uCACtCr/B,EAAQq/B,IAA4B,uBAChC,qEACJr/B,EAAQq/B,IAA0B,qBAAI,OACtCr/B,EAAQq/B,IAA0B,qBAAI,wBACtCr/B,EAAQq/B,IAAkB,aAAI,WAC9Br/B,EAAQq/B,IAAsB,iBAAI,gBAClCr/B,EAAQq/B,IAAiB,YAAI,gBAC7Br/B,EAAQq/B,IAAsB,iBAAI,gBAClCr/B,EAAQq/B,IAAmB,cAAI,aAC/Br/B,EAAQq/B,IAAqB,gBACzB,uJACJr/B,EAAQq/B,IAAmB,cAAI,eAC/Br/B,EAAQq/B,IAAyB,oBAC7B,+DACJr/B,EAAQq/B,IAAuB,kBAAI,oCACnCr/B,EAAQq/B,IAAyB,oBAC7B,oDACJr/B,EAAQq/B,IAAgC,2BAAI,OAC5Cr/B,EAAQq/B,IAAyB,oBAC7B,4CACJr/B,EAAQq/B,IAAyB,oBAAI,gBACrCr/B,EAAQq/B,IAAyB,oBAAI,GACrCr/B,EAAQq/B,IAAkC,6BAAI,oBAC9Cr/B,EAAQq/B,IAA8B,yBAAI,iBAC1Cr/B,EAAQq/B,IAAiC,4BAAI,mBAC7Cr/B,EAAQq/B,IAA8B,yBAAI,iBAC1Cr/B,EAAQq/B,IAA+B,0BAAI,gBAC3Cr/B,EAAQq/B,IAAiC,4BAAI,6BAC7Cr/B,EAAQq/B,IAAkC,6BAAI,4BAC9Cr/B,EAAQq/B,IAA8B,yBAAI,oBAC1Cr/B,EAAQq/B,IAAiC,4BACrC,4DACJr/B,EAAQq/B,IAA6B,wBAAI,sCACzCr/B,EAAQq/B,IAAgC,2BACpC,6CACJr/B,EAAQq/B,IAA6B,wBAAI,sCACzCr/B,EAAQq/B,IAA8B,yBAClC,4DACJr/B,EAAQq/B,IAAgC,2BACpC,6CACJr/B,EAAQq/B,IAAiC,4BACrC,sDACJr/B,EAAQq/B,IAA6B,wBACjC,kDACJr/B,EAAQq/B,IAAuB,kBAAI,IACnCr/B,EAAQq/B,IAA+B,0BACnC,8EACJr/B,EAAQq/B,IAAoC,+BAAI,4BAChDr/B,EAAQq/B,IAA+B,0BACnC,iFACJr/B,EAAQq/B,IAA6B,wBACjC,8EACJr/B,EAAQq/B,IAA2B,sBAAI,qCACvCr/B,EAAQq/B,IAA6B,wBACjC,4EACJr/B,EAAQq/B,IAAwB,mBAC5B,+CACJr/B,EAAQq/B,IAA+B,0BAAI,YAC3Cr/B,EAAQq/B,IAAmC,8BAAI,uBAC/Cr/B,EAAQq/B,IAAiC,4BAAI,sBAC7Cr/B,EAAQq/B,IAAwB,mBAC5B,kDACJr/B,EAAQq/B,IAAyB,oBAC7B,8CACJr/B,EAAQq/B,IAA6B,wBAAI,WACzCr/B,EAAQq/B,IAAyB,oBAAI,gBACrCr/B,EAAQq/B,IAA6B,wBACjC,4CACJr/B,EAAQq/B,IAA6B,wBACjC,kEACJr/B,EAAQq/B,IAA4B,uBAChC,+CACJr/B,EAAQq/B,IAA+B,0BACnC,kDACJr/B,EAAQq/B,IAA6B,wBAAI,oCACzCr/B,EAAQq/B,IAA+B,0BACnC,uDACJr/B,EAAQq/B,IAA8B,yBAClC,2CACJr/B,EAAQq/B,IAA6B,wBAAI,IACzCr/B,EAAQq/B,IAAoB,eAAI,OAChCr/B,EAAQq/B,IAAoB,eAAI,OAChCr/B,EAAQq/B,IAAoB,eAAI,OAChCr/B,EAAQq/B,IAAmB,cAAI,MAC/Br/B,EAAQq/B,IAAuB,kBAC3B,qEACJr/B,EAAQq/B,IAAmB,cAAI,MAC/Br/B,EAAQq/B,IAAmB,cAAI,MAC/Br/B,EAAQq/B,IAA4B,uBAAI,0CACxCr/B,EAAQq/B,IAA4B,uBAAI,uCACxCr/B,EAAQq/B,IAA4B,uBAAI,2CACxCr/B,EAAQq/B,IAA2B,sBAC/B,iDACJr/B,EAAQq/B,IAA2B,sBAC/B,8CACJr/B,EAAQq/B,IAA2B,sBAC/B,kDACJr/B,EAAQq/B,IAAyB,oBAAI,gCACrCr/B,EAAQq/B,IAAyB,oBAAI,mCACrCr/B,EAAQq/B,IAAyB,oBAAI,6CACrCr/B,EAAQq/B,IAAkB,aAAI,uBAC9Br/B,EAAQq/B,IAAwB,mBAAI,4BACpCr/B,EAAQq/B,IAA6B,wBAAI,4BACzCr/B,EAAQq/B,IAA2B,sBAAI,GACvCr/B,EAAQq/B,IAAiC,4BAAI,6BAC7Cr/B,EAAQq/B,IAA8B,yBAAI,OAC1Cr/B,EAAQq/B,IAAqC,gCACzC,oEACJr/B,EAAQq/B,IAAqC,gCACzC,wDACJr/B,EAAQq/B,IAAmC,8BACvC,2CACJr/B,EAAQq/B,IAAmC,8BACvC,0EACJr/B,EAAQq/B,IAAmC,8BAAI,OAC/Cr/B,EAAQq/B,IAA0B,qBAAI,aACtCr/B,EAAQq/B,IAAoC,+BAAI,gCAChDr/B,EAAQq/B,IAA+B,0BAAI,GAC3Cr/B,EAAQq/B,IAAoC,+BACxC,oEACJr/B,EAAQq/B,IAAsC,iCAAI,eAClDr/B,EAAQq/B,IAAkC,6BAAI,OAC9Cr/B,EAAQq/B,IAAoC,+BACxC,gDACJr/B,EAAQq/B,IAAkC,6BACtC,oEACJr/B,EAAQq/B,IAAiC,4BAAI,UAC7Cr/B,EAAQq/B,IAAkC,6BACtC,wDACJr/B,EAAQq/B,IAAsC,iCAC1C,iEACJr/B,EAAQq/B,IAA8B,yBAAI,2CAC1Cr/B,EAAQq/B,IAAiC,4BACrC,qCACJr/B,EAAQq/B,IAAiC,4BACrC,0DACJr/B,EAAQq/B,IAAiC,4BACrC,oGACJr/B,EAAQq/B,IAAiC,4BAAI,mBAC7Cr/B,EAAQq/B,IAAmC,8BACvC,8CACJr/B,EAAQq/B,IAAuC,kCAAI,WACnDr/B,EAAQq/B,IAAyC,oCAC7C,oEACJr/B,EAAQq/B,IAAU,KAAI,UACtBr/B,EAAQq/B,IAAoB,eAAI,wBAChCr/B,EAAQq/B,IAAqB,gBAAI,0BACjCr/B,EAAQq/B,IAA2B,sBAAI,4CACvCr/B,EAAQq/B,IAA2B,sBAC/B,gEACJr/B,EAAQq/B,IAAgC,2BAAI,qBAC5Cr/B,EAAQq/B,IAAkC,6BACtC,qEACJr/B,EAAQq/B,IAAyB,oBAC7B,gEACJr/B,EAAQq/B,IAAuB,kBAAI,0BACnCr/B,EAAQq/B,IAAyB,oBAC7B,2DACJr/B,EAAQq/B,IAA6B,wBACjC,kEACJr/B,EAAQq/B,IAAwC,mCAAI,qBACpDr/B,EAAQq/B,IAAwC,mCAAI,yBACpDr/B,EAAQq/B,IAAwC,mCAAI,qBACpDr/B,EAAQq/B,IAA6B,wBACjC,yDACJr/B,EAAQq/B,IAAuB,kBAAI,uBACnCr/B,EAAQq/B,IAA0B,qBAAI,kCACtCr/B,EAAQq/B,IAA4B,uBAAI,oBACxCr/B,EAAQq/B,IAAyB,oBAC7B,8DACJr/B,EAAQq/B,IAAsB,iBAAI,wBAClCr/B,EAAQq/B,IAAwB,mBAAI,2BACpCr/B,EAAQq/B,IAAsB,iBAAI,GAClCr/B,EAAQq/B,IAAuB,kBAAI,iBACnCr/B,EAAQq/B,IAAyB,oBAAI,iDACrCr/B,EAAQq/B,IAAwB,mBAC5B,kEACJr/B,EAAQq/B,IAAyB,oBAAI,kBACrCr/B,EAAQq/B,IAAwB,mBAC5B,yEACJr/B,EAAQq/B,IAAmC,8BAAI,gCAC/Cr/B,EAAQq/B,IAAiC,4BAAI,OAC7Cr/B,EAAQq/B,IAA8B,yBAClC,qFACJr/B,EAAQq/B,IAAqC,gCACzC,uCACJr/B,EAAQq/B,IAAuC,kCAAI,qBACnDr/B,EAAQq/B,IAAiC,4BAAI,yBAC7Cr/B,EAAQq/B,IAAgC,2BACpC,0EACJr/B,EAAQq/B,IAAsC,iCAAI,WAClDr/B,EAAQq/B,IAAoC,+BACxC,iCACJr/B,EAAQq/B,IAAuC,kCAC3C,gDACJr/B,EAAQq/B,IAAyC,oCAAI,8BACrDr/B,EAAQq/B,IAA6B,wBAAI,GACzCr/B,EAAQq/B,IAAgC,2BACpC,0CACJr/B,EAAQq/B,IAA0B,qBAC9B,2DACJr/B,EAAQq/B,IAAiC,4BACrC,4CACJr/B,EAAQq/B,IAAgC,2BACpC,8CACJr/B,EAAQq/B,IAAwB,mBAAI,oBACpCr/B,EAAQq/B,IAA0B,qBAC9B,gJACJr/B,EAAQq/B,IAA0B,qBAC9B,sEACJr/B,EAAQq/B,IAAwB,mBAAI,gBACpCr/B,EAAQq/B,IAA0B,qBAC9B,qDACJr/B,EAAQq/B,IAAuB,kBAC3B,4DACJr/B,EAAQq/B,IAAgC,2BAAI,kBAC5Cr/B,EAAQq/B,IAAuB,kBAC3B,oEACJr/B,EAAQq/B,IAAyB,oBAC7B,gEACJr/B,EAAQq/B,IAAuB,kBAAI,gBACnCr/B,EAAQq/B,IAAyB,oBAC7B,2EACJr/B,EAAQq/B,IAAwB,mBAC5B,4DACJr/B,EAAQq/B,IAAsB,iBAAI,aAClCr/B,EAAQq/B,IAAwB,mBAC5B,oDACJr/B,EAAQq/B,IAA2B,sBAC/B,4DACJr/B,EAAQq/B,IAAyB,oBAAI,kCACrCr/B,EAAQq/B,IAA2B,sBAC/B,uEACJr/B,EAAQq/B,IAAyB,oBAC7B,0EACJr/B,EAAQq/B,IAAgC,2BAAI,mCAC5Cr/B,EAAQq/B,IAA8B,yBAAI,+BAC1Cr/B,EAAQq/B,IAA6B,wBAAI,qCACzCr/B,EAAQq/B,IAA2B,sBAAI,iCACvCr/B,EAAQq/B,IAA0B,qBAC9B,uEACJr/B,EAAQq/B,IAA2B,sBAAI,6BACvCr/B,EAAQq/B,IAA0B,qBAC9B,gFACJr/B,EAAQq/B,IAA0B,qBAC9B,gEACJr/B,EAAQq/B,IAA2B,sBAAI,cACvCr/B,EAAQq/B,IAA0B,qBAC9B,4CACJr/B,EAAQq/B,IAAuB,kBAC3B,qDACJr/B,EAAQq/B,IAAuB,kBAAI,wCACnCr/B,EAAQq/B,IAAuB,kBAC3B,uEACJr/B,EAAQq/B,IAA6B,wBAAI,0CACzCr/B,EAAQq/B,IAA6B,wBAAI,sCACzCr/B,EAAQq/B,IAA8B,yBAAI,qCAC1Cr/B,EAAQq/B,IAAuB,kBAC3B,0FACJr/B,EAAQq/B,IAAuB,kBAC3B,4DACJr/B,EAAQq/B,IAAqB,gBAAI,gBACjCr/B,EAAQq/B,IAAuB,kBAC3B,2EACJr/B,EAAQq/B,IAAW,MAAI,OACvBr/B,EAAQq/B,IAAU,KAAI,WACtBr/B,EAAQq/B,IAAiB,YAAI,gBAC7Br/B,EAAQq/B,IAA4B,uBAAI,OACxCr/B,EAAQq/B,IAA8B,yBAAI,qBAC1Cr/B,EAAQq/B,IAA2B,sBAC/B,uDACJr/B,EAAQq/B,IAA2B,sBAAI,qCACvCr/B,EAAQq/B,IAAmB,cAAI,qBAC/Br/B,EAAQq/B,IAA8B,yBAAI,mBAC1Cr/B,EAAQq/B,IAA2B,sBAC/B,uDACJr/B,EAAQq/B,IAA2B,sBAC/B,mDACJr/B,EAAQq/B,IAA6B,wBAAI,2CACzCr/B,EAAQq/B,IAA8C,yCAClD,sEACJr/B,EAAQq/B,IAA0B,qBAAI,mCACtCr/B,EAAQq/B,IAAoC,+BAAI,cAChDr/B,EAAQq/B,IAA+B,0BACnCr/B,EAAQq/B,IAA8B,yBAC1Cr/B,EAAQq/B,IAA2B,sBAAIr/B,EAAQq/B,IAA8B,yBAC7Er/B,EAAQq/B,IAAqC,gCACzCr/B,EAAQq/B,IAA4B,uBACxCr/B,EAAQq/B,IAAiC,4BACrCr/B,EAAQq/B,IAA0B,qBACtCr/B,EAAQq/B,IAA6B,wBAAIr/B,EAAQq/B,IAAwB,mBACzEr/B,EAAQq/B,IAA0B,qBAAIr/B,EAAQq/B,IAA8B,yBAC5Er/B,EAAQq/B,IAAkC,6BACtCr/B,EAAQq/B,IAA8B,yBAC1Cr/B,EAAQq/B,IAAkC,6BACtCr/B,EAAQq/B,IAA4B,uBACxCr/B,EAAQq/B,IAA6B,wBAAIr/B,EAAQq/B,IAA4B,uBAC7Er/B,EAAQq/B,IAAmC,8BAAIr/B,EAAQq/B,IAAkB,aACzEr/B,EAAQq/B,IAAqC,gCAAIr/B,EAAQq/B,IAAkB,aAC3Er/B,EAAQq/B,IAAkC,6BAAIr/B,EAAQq/B,IAAkB,aACxEr/B,EAAQq/B,IAAmC,8BAAIr/B,EAAQq/B,IAAkB,aACzEr/B,EAAQq/B,IAA4B,uBAAIr/B,EAAQq/B,IAA4B,uBAC5Er/B,EAAQq/B,IAAkC,6BACtCr/B,EAAQq/B,IAAoC,+BAChDr/B,EAAQq/B,IAA6B,wBACjCr/B,EAAQq/B,IAA+B,0BAC3Cr/B,EAAQq/B,IAAoC,+BACxCr/B,EAAQq/B,IAAsC,iCAClDr/B,EAAQq/B,IAAgC,2BACpCr/B,EAAQq/B,IAAkC,6BAC9Cr/B,EAAQq/B,IAA0B,qBAAIr/B,EAAQq/B,IAA4B,uBAC1Er/B,EAAQq/B,IAAsC,iCAC1Cr/B,EAAQq/B,IAA4B,uBAExCr/B,EAAQq/B,IAAc,SAAI,MAC1Br/B,EAAQq/B,IAAe,UAAI,MAC3Br/B,EAAQq/B,IAAe,UAAI,MAC3Br/B,EAAQq/B,IAAe,UAAI,MAC3Br/B,EAAQq/B,IAAmB,cAAI,MAC/Br/B,EAAQq/B,IAAe,UAAI,MAC3Br/B,EAAQq/B,IAAoB,eAAI,MAChCr/B,EAAQq/B,IAAgB,WAAI,KAC5Br/B,EAAQq/B,IAA2B,sBAAI,MAEvCr/B,EAAQq/B,IAAa,QAAI,uBACzBr/B,EAAQq/B,IAAwB,mBAAI,qCACpCr/B,EAAQq/B,IAA4B,uBAChC,sDACJr/B,EAAQq/B,IAA+B,0BACnC,gEACJr/B,EAAQq/B,IAAmB,cAAI,qBAC/Br/B,EAAQq/B,IAAc,SAAI,WAC1Br/B,EAAQq/B,IAAoC,+BACxC,uGACJr/B,EAAQq/B,IAA2B,sBAC/B,iGACJr/B,EAAQq/B,IAAuB,kBAAI,yBACnCr/B,EAAQq/B,IAA+B,0BACnC,yCACJr/B,EAAQq/B,IAAa,QAAI,gBACzBr/B,EAAQq/B,IAAmB,cAAI,iCAC/Br/B,EAAQq/B,IAAqB,gBAAI,sCACjCr/B,EAAQq/B,IAAU,KAAI,QACtBr/B,EAAQq/B,IAAW,MAAI,SACvBr/B,EAAQq/B,IAAS,IAAI,QACrBr/B,EAAQq/B,IAAc,SAAI,YAC1Br/B,EAAQq/B,IAAW,MAAI,WACvBr/B,EAAQq/B,IAAa,QAAI,YACzBr/B,EAAQq/B,IAAc,SAAI,YAC1Br/B,EAAQq/B,IAAU,KAAI,QACtBr/B,EAAQq/B,IAAa,QAAI,UAEzBr/B,EAAQq/B,IAAU,KAAI,OACtBr/B,EAAQq/B,IAAc,SAAI,UAC1Br/B,EAAQq/B,IAAS,IAAI,MACrBr/B,EAAQq/B,IAAS,IAAI,UACrBr/B,EAAQq/B,IAAW,MAAI,QACvBr/B,EAAQq/B,IAAa,QAAI,cACzBr/B,EAAQq/B,IAAkB,aAAI,SAC9Br/B,EAAQq/B,IAAU,KAAI,SACtBr/B,EAAQq/B,IAAW,MAAI,SACvBr/B,EAAQq/B,IAAS,IAAI,MACrBr/B,EAAQq/B,IAAa,QAAI,UACzBr/B,EAAQq/B,IAAU,KAAI,OAEtBr/B,EAAQq/B,IAAS,IAAI,WACrBr/B,EAAQq/B,IAAiB,YAAI,mCAC7Br/B,EAAQq/B,IAAe,UAAI,+BAC3Br/B,EAAQq/B,IAAuB,kBAAI,gCACnCr/B,EAAQq/B,IAA2B,sBAAI,wBACvCr/B,EAAQq/B,IAAqB,gBAAI,cACjCr/B,EAAQq/B,IAA6B,wBAAI,0CACzCr/B,EAAQq/B,IAA0B,qBAAI,WACtCr/B,EAAQq/B,IAAgB,WAAI,gDAC5Br/B,EAAQq/B,IAAwB,mBAC5B,gGACJr/B,EAAQq/B,IAAuB,kBAAI,gCACnCr/B,EAAQq/B,IAA+B,0BACnC,mDACJr/B,EAAQq/B,IAAqC,gCACzC,qEACJr/B,EAAQq/B,IAAgB,WAAI,qBAC5Br/B,EAAQq/B,IAAqB,gBAAI,8CACjCr/B,EAAQq/B,IAAqB,gBAAI,8CACjCr/B,EAAQq/B,IAAc,SAAI,cAC1Br/B,EAAQq/B,IAAsB,iBAC1B,sDACJr/B,EAAQq/B,IAAkB,aAAI,oBAC9Br/B,EAAQq/B,IAA0B,qBAC9B,qDACJr/B,EAAQq/B,IAAkB,aAAI,wBAC9Br/B,EAAQq/B,IAA0B,qBAC9B,8FACJr/B,EAAQq/B,IAA2B,sBAC/B,iFACJr/B,EAAQq/B,IAA2B,sBAC/B,iFACJr/B,EAAQq/B,IAA0B,qBAC9B,+GACJr/B,EAAQq/B,IAA2B,sBAC/B,kHACJr/B,EAAQq/B,IAA0B,qBAC9B,8HACJr/B,EAAQq/B,IAA4B,uBAChC,kDACJr/B,EAAQq/B,IAAwB,mBAC5B,kDACJr/B,EAAQq/B,IAAkB,aAAI,2CAC9Br/B,EAAQq/B,IAA0B,qBAC9B,2KACJr/B,EAAQq/B,IAAkC,6BACtC,8CACJr/B,EAAQq/B,IAAsC,iCAC1C,yCACJr/B,EAAQq/B,IAAgB,WAAI,sBAC5Br/B,EAAQq/B,IAAmB,cAAI,8CAC/Br/B,EAAQq/B,IAAe,UAAI,qBAC3Br/B,EAAQq/B,IAAkB,aACtB,oDACJr/B,EAAQq/B,IAAY,OAAI,uBACxBr/B,EAAQq/B,IAAY,OAAI,uBACxBr/B,EAAQq/B,IAAoB,eACxB,6DACJr/B,EAAQq/B,IAAoB,eAAI,4CAChCr/B,EAAQq/B,IAAqB,gBAAI,eACjCr/B,EAAQq/B,IAAsB,iBAAI,8BAClCr/B,EAAQq/B,IAAsB,iBAAI,4BAClCr/B,EAAQq/B,IAAoB,eAAI,wBAChCr/B,EAAQq/B,IAAuB,kBAC3B,iDACJr/B,EAAQq/B,IAAoB,eAAI,6BAChCr/B,EAAQq/B,IAAe,UAAI,wBAC3Br/B,EAAQq/B,IAAuB,kBAAI,sCACnCr/B,EAAQq/B,IAAe,UAAI,qBAC3Br/B,EAAQq/B,IAAuB,kBAAI,sCACnCr/B,EAAQq/B,IAAc,SAAI,oBAC1Br/B,EAAQq/B,IAAsB,iBAAI,qBAClCr/B,EAAQq/B,IAAc,SAAI,YAC1Br/B,EAAQq/B,IAAW,MAAI,aACvBr/B,EAAQq/B,IAAa,QAAI,WACzBr/B,EAAQq/B,IAAsB,iBAC1B,sFACJr/B,EAAQq/B,IAA2B,sBAAI,2BACvCr/B,EAAQq/B,IAAmC,8BACvC,iIACJr/B,EAAQq/B,IAA6B,wBAAI,+BACzCr/B,EAAQq/B,IAAqC,gCACzC,0IACJr/B,EAAQq/B,IAA4B,uBAAI,wBACxCr/B,EAAQq/B,IAAoC,+BACxC,uGACJr/B,EAAQq/B,IAA2B,sBAAI,2CACvCr/B,EAAQq/B,IAAmC,8BACvC,uGACJr/B,EAAQq/B,IAA2B,sBAAI,2CACvCr/B,EAAQq/B,IAAmC,8BACvC,oEACJr/B,EAAQq/B,IAA8B,yBAAI,oCAC1Cr/B,EAAQq/B,IAAsC,iCAC1C,uGACJr/B,EAAQq/B,IAA8B,yBAAI,4BAC1Cr/B,EAAQq/B,IAAsC,iCAC1C,kGACJr/B,EAAQq/B,IAAuC,kCAC3C,4CACJr/B,EAAQq/B,IAA+C,0CACnD,sJACJr/B,EAAQq/B,IAA0C,qCAC9C,+CACJr/B,EAAQq/B,IAAkD,6CACtD,sJAEJr/B,EAAQq/B,IAAS,IAAI,QACrBr/B,EAAQq/B,IAAU,KAAI,UACtBr/B,EAAQq/B,IAAY,OAAI,WACxBr/B,EAAQq/B,IAAgB,WAAI,kBAC5Br/B,EAAQq/B,IAAc,SAAI,gBAC1Br/B,EAAQq/B,IAAkB,aAAI,mBAC9Br/B,EAAQq/B,IAAgB,WAAI,iBAC5Br/B,EAAQq/B,IAAiC,4BAAI,sCAC7Cr/B,EAAQq/B,IAAqB,gBAAI,qBACjCr/B,EAAQq/B,IAAqB,gBAAI,uBACjCr/B,EAAQq/B,IAAiC,4BAAI,gCAC7Cr/B,EAAQq/B,IAA0B,qBAAI,8BACtCr/B,EAAQq/B,IAA4B,uBAAI,gCACxCr/B,EAAQq/B,IAA0B,qBAAI,4BACtCr/B,EAAQq/B,IAAoB,eAAI,gCAChCr/B,EAAQq/B,IAAI,yBAA2B,yBAEvCr/B,EAAQq/B,IAAW,MAAI,QACvBr/B,EAAQq/B,IAAe,UAAI,YAC3Br/B,EAAQq/B,IAAoB,eAAI,2BAChCr/B,EAAQq/B,IAAoB,eAAI,0BAChCr/B,EAAQq/B,IAAc,SAAI,mBAC1Br/B,EAAQq/B,IAAyB,oBAAI,yBACrCr/B,EAAQq/B,IAAmB,cAAI,2BAE/Br/B,EAAQq/B,IAAmB,cAAI,+BAC/Br/B,EAAQq/B,IAA2B,sBAC/B,4EACJr/B,EAAQq/B,IAAmB,cAAI,+BAC/Br/B,EAAQq/B,IAA2B,sBAAI,sCACvCr/B,EAAQq/B,IAAqB,gBAAI,8CACjCr/B,EAAQq/B,IAA6B,wBACjC,gEACJr/B,EAAQq/B,IAAmB,cAAI,mCAC/Br/B,EAAQq/B,IAA2B,sBAC/B,uEACJr/B,EAAQq/B,IAAyB,oBAAI,6BACrCr/B,EAAQq/B,IAAiC,4BACrC,4GAEJr/B,EAAQq/B,IAAiB,YAAI,gBAC7Br/B,EAAQq/B,IAAyB,oBAC7B,8EACJr/B,EAAQq/B,IAAe,UAAI,YAC3Br/B,EAAQq/B,IAAgB,WAAI,2BAC5Br/B,EAAQq/B,IAAkB,aAAI,qCAE9Br/B,EAAQq/B,IAAgB,WAAI,aAC5Br/B,EAAQq/B,IAAiB,YAAI,aAC7Br/B,EAAQq/B,IAAW,MAAI,QAEvBr/B,EAAQq/B,IAAiB,YAAI,qBAC7Br/B,EAAQq/B,IAA6B,wBAAI,+BACzCr/B,EAAQq/B,IAAqC,gCAAI,YACjDr/B,EAAQq/B,IAAqC,gCAAI,4BACjDr/B,EAAQq/B,IAA2B,sBAAI,kCACvCr/B,EAAQq/B,IAA0B,qBAAI,mCACtCr/B,EAAQq/B,IAA4B,uBAAI,+BAExCr/B,EAAQq/B,IAAwB,mBAAI,8BACpCr/B,EAAQq/B,IAAgC,2BACpC,qDACJr/B,EAAQq/B,IAAsB,iBAAI,gBAClCr/B,EAAQq/B,IAAW,MAAI,YACvBr/B,EAAQq/B,IAAS,IAAI,MACrBr/B,EAAQq/B,IAAkB,aAAI,iBAC9Br/B,EAAQq/B,IAAS,IAAI,MACrBr/B,EAAQq/B,IAAU,KAAI,SACtBr/B,EAAQq/B,IAAW,MAAI,SACvBr/B,EAAQq/B,IAAU,KAAI,MACtBr/B,EAAQq/B,IAAU,KAAI,OACtBr/B,EAAQq/B,IAAkB,aAAI,iBAC9Br/B,EAAQq/B,IAAY,OAAI,UACxBr/B,EAAQq/B,IAAY,OAAI,UACxBr/B,EAAQq/B,IAAa,QAAI,WACzBr/B,EAAQq/B,IAAe,UAAI,SAC3Br/B,EAAQq/B,IAAc,SAAI,SAC1Br/B,EAAQq/B,IAAY,OAAI,QACxBr/B,EAAQq/B,IAAc,SAAI,YAC1Br/B,EAAQq/B,IAAkB,aAAI,0CAC9Br/B,EAAQq/B,IAAgB,WAAI,iBAE5Br/B,EAAQq/B,IAAc,SAAI,eAC1Br/B,EAAQq/B,IAAc,SAAI,sCAC1Br/B,EAAQq/B,IAAc,SAAI,cAE1Br/B,EAAQq/B,IAAc,SAAI,WAC1Br/B,EAAQq/B,IAAsB,iBAC1B,yFACJr/B,EAAQq/B,IAAY,OAAI,QACxBr/B,EAAQq/B,IAAkB,aAAI,mBAC9Br/B,EAAQq/B,IAAkB,aAAI,mBAC9Br/B,EAAQq/B,IAAc,SAAI,WAC1Br/B,EAAQq/B,IAAe,UAAI,YAC3Br/B,EAAQq/B,IAAiC,4BACrC,sBACJr/B,EAAQq/B,IAAU,KAAI,UACtBr/B,EAAQq/B,IAAkB,aAAI,kBAC9Br/B,EAAQq/B,IAAkB,aAAI,gCAC9Br/B,EAAQq/B,IAAoB,eAAI,oBAChCr/B,EAAQq/B,IAAuB,kBAAI,uBACnCr/B,EAAQq/B,IAAyB,oBAAI,wBACrCr/B,EAAQq/B,IAAmB,cAAI,eAC/Br/B,EAAQq/B,IAAsB,iBAAI,8D","file":"static/js/main.974f9963.chunk.js","sourcesContent":["import { IAppContextState, IAppContextActions } from \"./types\";\n\nexport const initialState = {\n signed: false,\n load: true,\n renderModalPasswordReset: false,\n passwordResetRequired: false,\n\trenderModalUsedTab: false,\n\trenderModalForgotPassword: false,\n} as IAppContextState;\n\nexport function reducerApp(\n state: IAppContextState,\n action: IAppContextActions\n): IAppContextState {\n switch (action.type) {\n case \"updateApp\":\n return functionsReducer[action.type](state, action.data);\n case \"openModalPasswordReset\":\n return functionsReducer[action.type](state, action.data);\n case \"closeModalPasswordReset\":\n return functionsReducer[action.type](state, action.data);\n case \"openModalPasswordResetUnauthenticated\":\n return functionsReducer[action.type](state, action.data);\n case \"openModalUsedTab\":\n return functionsReducer[action.type](state, action.data);\n default:\n return state;\n // throw new Error();\n }\n}\n\nconst functionsReducer = {\n updateApp: (state: IAppContextState, data?: Partial) => {\n return { ...state, ...data };\n },\n openModalPasswordReset: (state: IAppContextState, data?: Partial) => {\n return { ...state, ...data };\n },\n openModalPasswordResetUnauthenticated: (state: IAppContextState, data?: Partial) => {\n return { ...state, ...data };\n },\n closeModalPasswordReset: (state: IAppContextState, data?: Partial) => {\n return { ...state, ...data };\n },\n openModalUsedTab: (state: IAppContextState, data?: Partial) => {\n return { ...state, ...data };\n },\n};\n","import React, { createContext, useContext, useEffect, useReducer } from 'react';\nimport { reducerApp, initialState } from './appReducers';\nimport { IAppContext, IAppProviderProps } from './types';\n\nexport const AppContext = createContext({} as IAppContext);\n\nexport const AppProvider: React.FC = (\n props: IAppProviderProps\n) => {\n const { children } = props;\n\n const [state, dispatch] = useReducer(reducerApp, initialState);\n\n useEffect(() => {\n async function load() {\n const token = localStorage.getItem('token');\n const channel = new BroadcastChannel('tab');\n\n window.onbeforeunload = () => {\n channel.postMessage('reload-tab');\n };\n\n channel.postMessage('another-tab');\n\n channel.addEventListener('message', (msg) => {\n if (msg.data === 'another-tab') {\n channel.postMessage('tab already open');\n } else if (msg.data === 'tab already open') {\n dispatch({\n type: 'openModalUsedTab',\n data: { renderModalUsedTab: true },\n });\n } else if (msg.data === 'reload-tab' && state.renderModalUsedTab) {\n dispatch({\n type: 'openModalUsedTab',\n data: { renderModalUsedTab: false },\n });\n }\n });\n\n let data = { signed: false, load: false };\n if (!!token) data = { signed: true, load: false };\n\n dispatch({ type: 'updateApp', data });\n }\n load();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport function useApp(): IAppContext {\n const context = useContext(AppContext);\n\n return context;\n}\n","export const validateBlockedIntents = (intentType: EIntentType) => {\n const blocked = [8, 9, 10];\n return blocked.includes(intentType);\n};\n\nenum EIntentType {\n InitialFlow,\n MultipleChoiceParent,\n MultipleChoiceChild,\n QuestionsAndAnswers,\n Advanced,\n CarouselParent,\n CarouselChild,\n NewGroup,\n Welcome,\n Fallback,\n Cancel,\n Others,\n SaveTable,\n Livechat,\n OptionsBlock = 130,\n Carousel = 131,\n SendMessage = 100,\n SimpleQuestion = 110,\n SendDocument = 111,\n Logic = 120,\n OpenHTML = 150,\n Rules = 160,\n ABTest = 170,\n NLU = 200,\n FalaGPT = 210,\n IntentRecognition = 211,\n FlexBlock = 300,\n FlexBlockExit = 301,\n FlexBlockEntry = 302,\n VirtualFlexBlock = 303,\n}\n\nexport default EIntentType;\n","enum EListType {\n Horizontal=1,\n Vertical=2\n}\n\nexport default EListType;\n","import EIntentType from '../enums/EIntentType';\nimport EListType from '../enums/EListType';\nimport {\n DataBlockly,\n DataForm,\n Input,\n IRocketChat,\n IAttempts,\n Linked,\n Output,\n SendUser,\n MessageType,\n IFlag,\n} from './DataFlow';\n\nconst RightClickEventBlockedIntentTypes = [\n EIntentType.Others,\n EIntentType.Welcome,\n EIntentType.FlexBlockEntry,\n EIntentType.Fallback,\n EIntentType.Cancel,\n];\n\nconst CloneEventBlockedIntentTypes = [\n EIntentType.FlexBlock,\n EIntentType.FlexBlockEntry,\n];\n\nclass DataFormModel implements DataForm {\n idOutput?: string | undefined;\n parentId?: number;\n name: string = '';\n description: string = '';\n intentType: EIntentType = EIntentType.InitialFlow;\n groupId: string = '';\n sendUser?: SendUser | undefined;\n attempts?: IAttempts[] | undefined;\n inputs?: Input | undefined;\n outputs?: Output[] | undefined;\n linked?: Linked | undefined;\n dataBlockly?: DataBlockly | undefined;\n listType?: EListType = EListType.Horizontal;\n flag?: IFlag | undefined;\n rocketChat: IRocketChat = {\n rocketID: '',\n msgSuccess: '',\n msgFailure: '',\n };\n messageType?: MessageType = undefined;\n varValue?: string | undefined;\n saveVarValue?: boolean;\n tags: string[] | undefined;\n entryName?: string;\n\n constructor(data: DataForm) {\n Object.assign(this, data);\n }\n\n hasVariables() {\n return [\n EIntentType.SimpleQuestion,\n EIntentType.SendDocument,\n EIntentType.SendMessage,\n ].includes(this.intentType);\n }\n\n isOptionBlock() {\n return [EIntentType.OptionsBlock].includes(this.intentType);\n }\n\n isParent() {\n return [\n EIntentType.MultipleChoiceParent,\n EIntentType.CarouselParent,\n ].includes(this.intentType);\n }\n\n isChild() {\n return [\n EIntentType.MultipleChoiceChild,\n EIntentType.CarouselChild,\n ].includes(this.intentType);\n }\n\n isOthers() {\n return [EIntentType.Others].includes(this.intentType);\n }\n\n isMain() {\n return [EIntentType.Fallback, EIntentType.Cancel].includes(this.intentType);\n }\n\n isNewGroup() {\n return this.intentType === EIntentType.NewGroup;\n }\n\n isHtml() {\n return this.intentType === EIntentType.OpenHTML;\n }\n\n shouldBlockRightClickEvent() {\n return RightClickEventBlockedIntentTypes.includes(this.intentType);\n }\n\n shouldBlockClone() {\n return CloneEventBlockedIntentTypes.includes(this.intentType);\n }\n\n isFlexBlockExit() {\n return this.intentType === EIntentType.FlexBlockExit;\n }\n\n isFlexBlockEntry() {\n return this.intentType === EIntentType.FlexBlockEntry;\n }\n\n isFlexBlock() {\n return this.intentType === EIntentType.FlexBlock;\n }\n\n hasMultipleOutputs() {\n return [\n EIntentType.MultipleChoiceParent,\n EIntentType.CarouselParent,\n EIntentType.OptionsBlock,\n EIntentType.Carousel,\n EIntentType.NewGroup,\n ].includes(this.intentType);\n }\n\n getNameIntentType() {\n switch (this.intentType) {\n case EIntentType.MultipleChoiceParent:\n return 'Multipla ESCOLHA';\n case EIntentType.MultipleChoiceChild:\n return 'OPÇÃO';\n case EIntentType.CarouselParent:\n return 'CARROSSEL';\n default:\n return '';\n }\n }\n\n getOutputAmount(): number {\n return this.outputs?.length || 0;\n }\n\n getChildType() {\n return this.intentType === EIntentType.MultipleChoiceParent\n ? EIntentType.MultipleChoiceChild\n : EIntentType.CarouselChild;\n }\n\n getOutputs() {\n return this.outputs || [];\n }\n\n getAttempts() {\n return this.attempts || [];\n }\n\n getParentId() {\n return this.parentId || 0;\n }\n\n isOutputEqual(anoutherOutputs?: Output[]) {\n return JSON.stringify(this.outputs) === JSON.stringify(anoutherOutputs);\n }\n\n getNodeIdsOutputRemoved(prevOutputs?: Output[]) {\n const prevIds = prevOutputs?.map((output) => Number(output.outputid));\n const currentIds =\n this.outputs?.map((output) => Number(output.outputid)) || [];\n return prevIds?.filter((id) => !currentIds?.includes(id)) || [];\n }\n\n getOutputToUpdate() {\n return this.outputs?.filter((output) => output.outputid) || [];\n }\n\n getOutputToAdd() {\n return this.outputs?.filter((output) => !output.outputid) || [];\n }\n\n getMessage() {\n switch (this.intentType) {\n case EIntentType.QuestionsAndAnswers:\n const variables = this.inputs?.variables || [];\n const variable = !!variables.length ? variables[0] : undefined;\n if (variable) {\n return !!variable.questions.length ? variable.questions[0] : '';\n } else return '';\n\n case EIntentType.OpenHTML:\n const exhibitionString = !!this.sendUser?.url\n ? `Link: ${this.sendUser?.url}`\n : !!this.sendUser?.message\n ? `Inserido código HTML`\n : '';\n return exhibitionString;\n\n default:\n return this?.sendUser?.message || '';\n }\n }\n\n getMessageType() {\n let result = '';\n switch (this.messageType) {\n case 'text':\n result = 'Texto';\n break;\n case 'image':\n result = 'Imagem';\n break;\n case 'video':\n result = 'Vídeo';\n break;\n case 'tts':\n result = 'Áudio';\n break;\n case 'document':\n result = 'Documento';\n break;\n case 'email':\n result = 'E-mail';\n break;\n case 'anyNumber':\n result = 'Qualquer número';\n break;\n case 'url':\n result = 'Url';\n break;\n case 'phone':\n result = 'Telefone';\n break;\n case 'cpf':\n result = 'CPF';\n break;\n case 'cnpj':\n result = 'CNPJ';\n break;\n case 'cep':\n result = 'CEP';\n break;\n case 'uuid':\n result = 'UUID';\n break;\n case 'data':\n result = 'Data';\n break;\n case 'money':\n result = 'Monetário';\n break;\n case 'password':\n result = 'Senha';\n break;\n case 'lettersOnly':\n result = 'Somente Letras';\n break;\n case 'location':\n result = 'Localização';\n break;\n }\n\n return result;\n }\n\n toDataForm() {\n const {\n idOutput,\n parentId,\n name,\n description,\n intentType,\n groupId,\n sendUser,\n attempts,\n inputs,\n outputs,\n linked,\n dataBlockly,\n listType,\n rocketChat,\n messageType,\n varValue,\n flag,\n saveVarValue,\n tags,\n entryName,\n } = this;\n return {\n idOutput,\n parentId,\n name,\n description,\n intentType,\n groupId,\n sendUser,\n attempts,\n inputs,\n outputs,\n linked,\n dataBlockly,\n listType,\n rocketChat,\n messageType,\n varValue,\n flag,\n saveVarValue,\n tags,\n entryName,\n };\n }\n}\n\nexport default DataFormModel;\n","import { DataFlowObject } from 'contexts/Flow/types';\nimport drawflow from 'drawflow';\nimport EIntentType from 'enums/EIntentType';\nimport { DataFlow, DataForm, ItemDataFlow, Output } from 'models/DataFlow';\nimport DataFormModel from 'models/DataFormModel';\n\nexport const mountNode = (dataForm: DataFormModel) => {\n const container = document.createElement('div');\n container.setAttribute('className', 'card-container');\n\n const titleBox = document.createElement('div');\n const box = document.createElement('div');\n const groupAndBlock = document.createElement('div');\n\n if (dataForm.isNewGroup()) {\n groupAndBlock.innerHTML = `Bloco: ${dataForm?.linked?.intentId}`;\n const intentName = document.createElement('div');\n intentName.innerHTML += `Grupo: ${dataForm?.linked?.groupId}`;\n groupAndBlock.appendChild(intentName);\n } else if (dataForm.intentType === EIntentType.SimpleQuestion) {\n const validQuestions = dataForm?.inputs?.variables[0].questions.filter(\n (q) => q !== ''\n );\n\n if (validQuestions) {\n const validQuestionText =\n validQuestions[Math.floor(Math.random() * validQuestions.length)];\n titleBox.innerHTML = validQuestionText || '';\n }\n } else {\n titleBox.innerHTML = dataForm?.description || '';\n }\n\n if (dataForm.intentType === EIntentType.SendMessage) {\n titleBox.innerHTML = `${dataForm?.sendUser?.message || ''}`;\n }\n\n box.setAttribute('class', 'box dbclickbox text');\n\n box.innerHTML = dataForm.getMessage();\n\n if (dataForm.hasVariables()) {\n if (dataForm.messageType)\n box.innerHTML = `Tipo: ${dataForm.getMessageType()}`;\n\n if (dataForm.varValue) {\n const varValue = document.createElement('div');\n varValue.innerHTML = `Variável: ${dataForm.varValue}`;\n box.appendChild(varValue);\n }\n\n box.setAttribute('style', 'padding: 8px 0');\n }\n\n titleBox.setAttribute('class', 'box dbclickbox text');\n box.appendChild(groupAndBlock);\n container.appendChild(titleBox);\n container.appendChild(box);\n\n return container;\n};\n\nexport const blockRightClickEvent = (element: Element | null) => {\n if (!!element) {\n element.addEventListener(\n 'contextmenu',\n function (e) {\n e.preventDefault();\n e.stopPropagation();\n },\n false\n );\n }\n};\n\nexport const blockDragEvent = (element: Element | null) => {\n if (!!element) {\n const blockFuncion = function (e: Event) {\n e.preventDefault();\n e.stopPropagation();\n };\n element.addEventListener('mouseup', blockFuncion, false);\n element.addEventListener('mousemove', blockFuncion, false);\n element.addEventListener('mousedown', blockFuncion, false);\n element.addEventListener('touchend', blockFuncion, false);\n element.addEventListener('touchmove', blockFuncion, false);\n element.addEventListener('touchstart', blockFuncion, false);\n }\n};\n\nexport const addNodeColor = (nodeId: Number, intentType: EIntentType) => {\n const nodeContainer = document.getElementById(`header-${nodeId}`);\n\n if (nodeContainer) {\n switch (intentType) {\n case EIntentType.CarouselParent:\n nodeContainer.style.backgroundColor = '#D3E8E8';\n break;\n case EIntentType.CarouselChild:\n nodeContainer.style.backgroundColor = '#D3E8E8';\n break;\n case EIntentType.MultipleChoiceParent:\n nodeContainer.style.backgroundColor = '#D3E8E8';\n break;\n case EIntentType.MultipleChoiceChild:\n nodeContainer.style.backgroundColor = '#D3E8E8';\n break;\n case EIntentType.InitialFlow:\n nodeContainer.style.backgroundColor = '#D3E8D3';\n break;\n case EIntentType.Advanced:\n nodeContainer.style.backgroundColor = '#F8DABF';\n break;\n case EIntentType.QuestionsAndAnswers:\n nodeContainer.style.backgroundColor = '#BFD5F8';\n break;\n case EIntentType.NewGroup:\n nodeContainer.style.backgroundColor = '#DAD3E8';\n break;\n case EIntentType.Welcome:\n nodeContainer.style.backgroundColor = '#9AD37A';\n break;\n case EIntentType.Fallback:\n nodeContainer.style.backgroundColor = '#FFDC5E';\n break;\n case EIntentType.Cancel:\n nodeContainer.style.backgroundColor = '#F77464';\n break;\n case EIntentType.Others:\n nodeContainer.style.backgroundColor = '#FFE78B';\n break;\n case EIntentType.Livechat:\n nodeContainer.style.backgroundColor = '#FFE78B';\n break;\n case EIntentType.SaveTable:\n nodeContainer.style.backgroundColor = '#FFE78B';\n break;\n case EIntentType.SendMessage:\n nodeContainer.style.backgroundColor = '#7A81FF';\n break;\n case EIntentType.SimpleQuestion:\n nodeContainer.style.backgroundColor = '#4F8F00';\n break;\n case EIntentType.SendDocument:\n nodeContainer.style.backgroundColor = '#016D00';\n break;\n case EIntentType.Logic:\n nodeContainer.style.backgroundColor = '#FEAE01';\n break;\n case EIntentType.FlexBlock:\n nodeContainer.style.backgroundColor = '#ff40ff';\n break;\n default:\n break;\n }\n }\n};\n\nexport const mountOutputsName = (\n nodeId: number,\n outputs: Output[],\n editorFlow: drawflow | null\n) => {\n const nodeContainer = document.getElementById(`node-${nodeId}`);\n if (nodeContainer) {\n const outpustCollection = nodeContainer.getElementsByClassName('output');\n for (let index = 0; index < outpustCollection.length; index++) {\n const outputElement = outpustCollection[index];\n const output = outputs[index];\n if (outputElement && output) {\n outputElement.setAttribute('style', `--o:\"${output.title}\"`);\n\n if (editorFlow) {\n const dataForm: DataForm =\n editorFlow.drawflow.drawflow.Home.data[nodeId].data;\n const form = new DataFormModel(dataForm);\n\n const isParent = form.isParent();\n\n if (output.outputid !== null && !isParent)\n outputElement.setAttribute('id', `node-child-${output.outputid}`);\n }\n }\n }\n }\n};\n\nexport const getSelectedNodeId = (idsExclude: number[] = []) => {\n const selecteds = document.getElementsByClassName('node-selected');\n const amount = selecteds.length;\n const ids: number[] = [];\n for (let index = 0; index < amount; index++) {\n const element = selecteds[index];\n const id = Number(element.id.replace(/[^0-9]*/, ''));\n if (!idsExclude.includes(id)) {\n ids.push(id);\n }\n }\n return ids;\n};\n\nexport const getAllNodes = () => {\n const selecteds = document.getElementsByClassName('drawflow-node');\n const amount = selecteds.length;\n const ids: number[] = [];\n for (let index = 0; index < amount; index++) {\n const element = selecteds[index];\n const id = Number(element.id.replace(/[^0-9]*/, ''));\n ids.push(id);\n }\n return ids;\n};\n\nexport const selectAllNodes = () => {\n const nodes = getAllNodes();\n\n for (const id of nodes) {\n const nodeContainer = document.getElementById(`node-${id}`);\n nodeContainer?.classList.remove('node-selected');\n nodeContainer?.classList.add('node-selected');\n }\n};\n\nexport const removeDeleteButton = () => {\n if (document.getElementsByClassName('drawflow-delete-parent').length) {\n document.getElementsByClassName('drawflow-delete-parent')[0].remove();\n }\n};\n\nexport const isSelectedNode = (nodeId: number) => {\n const nodeContainer = document.getElementById(`node-${nodeId}`);\n return !!nodeContainer?.classList.contains('node-selected');\n};\n\nexport const markSelectNodes = (ids: number[]) => {\n for (const id of ids) {\n const nodeContainer = document.getElementById(`node-${id}`);\n const nodeHeader = document.getElementById(`header-${id}`);\n nodeContainer?.classList.remove('node-selected');\n nodeContainer?.classList.add('node-selected');\n nodeHeader?.classList.remove('.header-node-selected');\n nodeHeader?.classList.add('.header-node-selected');\n }\n};\n\nexport const uncheckSelectNodes = () => {\n const ids = getSelectedNodeId();\n for (const id of ids) {\n const nodeContainer = document.getElementById(`node-${id}`);\n nodeContainer?.classList.remove('node-selected');\n }\n};\n\nexport const getNodePosition = (nodeId: number) => {\n const nodeContainer = document.getElementById(`node-${nodeId}`);\n const y = Number(nodeContainer?.style.top.replace('px', ''));\n const x = Number(nodeContainer?.style.left.replace('px', ''));\n return { x, y };\n};\n\nexport const putNodeUp = (nodeId: number) => {\n const nodeContainer = document.getElementById(`node-${nodeId}`);\n if (nodeContainer) {\n nodeContainer.style.zIndex = '99999';\n }\n};\n\nexport const putNodeDown = (nodeId: number) => {\n const nodeContainer = document.getElementById(`node-${nodeId}`);\n if (nodeContainer) {\n nodeContainer.style.zIndex = '';\n }\n};\n\nexport const markSearch = (keys: string[]) => {\n umarkSearch();\n for (const key of keys) {\n const nodeContainer = document.getElementById(`node-${key}`);\n nodeContainer?.classList.add('node-search');\n }\n};\n\nexport const umarkSearch = () => {\n var elements = document.getElementsByClassName('node-search');\n\n while (elements[0]) {\n elements[0].classList.remove('node-search');\n }\n};\n\nexport const markHighlighted = (key: string) => {\n unmarkHighlighted();\n const nodeContainer = document.getElementById(`node-${key}`);\n nodeContainer?.classList.add('node-highlighted');\n};\n\nexport const unmarkHighlighted = () => {\n var elements = document.getElementsByClassName('node-highlighted');\n\n while (elements[0]) {\n elements[0].classList.remove('node-highlighted');\n }\n};\n\nexport const markCreated = (key: string) => {\n const nodeContainer = document.getElementById(`node-${key}`);\n nodeContainer?.classList.add('node-created');\n\n setTimeout(() => {\n unmarkCreated(key);\n }, 5000);\n};\n\nexport const unmarkCreated = (key: string) => {\n const nodeContainer = document.getElementById(`node-${key}`);\n nodeContainer?.classList.remove('node-created');\n};\n\nexport const markSelected = (key: string) => {\n const nodeContainer = document.getElementById(`node-${key}`);\n nodeContainer?.classList.add('node-selected');\n};\n\nexport const unmarkSelected = (key: string) => {\n const nodeContainer = document.getElementById(`node-${key}`);\n const included = !!nodeContainer?.classList.contains('node-selected');\n if (!included) nodeContainer?.classList.remove('node-selected');\n};\n\nexport function overrideDrag(editorFlow: any) {\n editorFlow.__proto__.dragEnd = function (e: any) {\n let e_pos_x: any;\n let e_pos_y: any;\n var ele_last: any;\n\n if (e.type === 'touchend') {\n e_pos_x = this.mouse_x;\n e_pos_y = this.mouse_y;\n ele_last = document.elementFromPoint(e_pos_x, e_pos_y);\n } else {\n e_pos_x = e.clientX;\n e_pos_y = e.clientY;\n ele_last = e.target;\n }\n\n if (this.drag) {\n // eslint-disable-next-line eqeqeq\n if (this.pos_x_start != e_pos_x || this.pos_y_start != e_pos_y) {\n this.dispatch('nodeMoved', this.ele_selected.id.slice(5));\n }\n }\n\n if (this.drag_point) {\n this.ele_selected.classList.remove('selected');\n // eslint-disable-next-line eqeqeq\n if (this.pos_x_start != e_pos_x || this.pos_y_start != e_pos_y) {\n this.dispatch(\n 'rerouteMoved',\n this.ele_selected.parentElement.classList[2].slice(14)\n );\n }\n }\n\n if (this.editor_selected) {\n this.canvas_x = this.canvas_x + -(this.pos_x - e_pos_x);\n this.canvas_y = this.canvas_y + -(this.pos_y - e_pos_y);\n this.editor_selected = false;\n }\n if (this.connection === true) {\n if (\n ele_last?.classList[0] === 'input' ||\n (this.force_first_input &&\n (ele_last?.closest('.drawflow_content_node') != null ||\n ele_last?.classList[0] === 'drawflow-node'))\n ) {\n let input_id: any;\n let input_class: any;\n\n if (\n this.force_first_input &&\n (ele_last?.closest('.drawflow_content_node') != null ||\n ele_last?.classList[0] === 'drawflow-node')\n ) {\n if (ele_last?.closest('.drawflow_content_node') != null) {\n input_id = ele_last?.closest('.drawflow_content_node').parentElement\n .id;\n } else {\n input_id = ele_last?.id;\n }\n if (\n Object.keys(this.getNodeFromId(input_id.slice(5)).inputs).length ===\n 0\n ) {\n input_class = false;\n } else {\n input_class = 'input_1';\n }\n } else {\n // Fix connection;\n input_id = ele_last?.parentElement?.parentElement?.id;\n input_class = ele_last?.classList[1];\n }\n var output_id = this.ele_selected.parentElement.parentElement.id;\n var output_class = this.ele_selected.classList[1];\n\n if (input_class !== false) {\n if (\n this.container.querySelectorAll(\n '.connection.node_in_' +\n input_id +\n '.node_out_' +\n output_id +\n '.' +\n output_class +\n '.' +\n input_class\n ).length === 0\n ) {\n // Conection no exist save connection\n\n this.connection_ele.classList.add('node_in_' + input_id);\n this.connection_ele.classList.add('node_out_' + output_id);\n this.connection_ele.classList.add(output_class);\n this.connection_ele.classList.add(input_class);\n var id_input = input_id.slice(5);\n var id_output = output_id.slice(5);\n\n this.drawflow.drawflow[this.module].data[id_output].outputs[\n output_class\n ].connections.push({ node: id_input, output: input_class });\n this.drawflow.drawflow[this.module].data[id_input].inputs[\n input_class\n ].connections.push({ node: id_output, input: output_class });\n this.updateConnectionNodes('node-' + id_output);\n this.updateConnectionNodes('node-' + id_input);\n this.dispatch('connectionCreated', {\n output_id: id_output,\n input_id: id_input,\n output_class: output_class,\n input_class: input_class,\n });\n } else {\n this.dispatch('connectionCancel', true);\n this.connection_ele.remove();\n }\n\n this.connection_ele = null;\n } else {\n // Connection exists Remove Connection;\n this.dispatch('connectionCancel', true);\n this.connection_ele.remove();\n this.connection_ele = null;\n }\n } else {\n // Remove Connection;\n this.dispatch('connectionCancel', true);\n this.connection_ele.remove();\n this.connection_ele = null;\n }\n }\n\n this.drag = false;\n this.drag_point = false;\n this.connection = false;\n this.ele_selected = null;\n this.editor_selected = false;\n };\n}\n\nexport const fixInputs = (block: ItemDataFlow, allBlocks: DataFlow) => {\n const outputKeys = Object.keys(block.outputs);\n for (const key in outputKeys) {\n const output = block.outputs[outputKeys[key]];\n\n if (output && output.connections) {\n output.connections.forEach((connection) => {\n const destinationBlockId = connection.node;\n\n if (allBlocks[destinationBlockId]) {\n const destinationBlock = allBlocks[destinationBlockId];\n const destinationBlockInputsConnections =\n destinationBlock.inputs.input_1.connections;\n const isInputsOk = destinationBlockInputsConnections.find(\n (con) =>\n String(con.node) === String(block.id) &&\n outputKeys[key] === con.input\n );\n\n if (isInputsOk) return;\n console.log('fez correção de input', block);\n\n destinationBlock.inputs.input_1.connections.push({\n node: block.id,\n input: outputKeys[key],\n });\n }\n });\n }\n }\n};\n\nexport const fixOutputs = (block: ItemDataFlow, allBlocks: DataFlow) => {\n const inputsKeys = Object.keys(block.inputs);\n // try {\n for (const key in inputsKeys) {\n const input = block.inputs[inputsKeys[key]];\n\n if (input && input.connections) {\n input.connections.forEach((connection) => {\n const originBlockId = connection.node;\n\n if (allBlocks[originBlockId]) {\n const originBlock = allBlocks[originBlockId];\n if (Object.keys(originBlock.inputs).length === 0) return;\n if (\n Object.keys(originBlock.outputs).length === 0 ||\n !originBlock.outputs[String(connection.input)]\n ) {\n const brokenConnectionIndex = block.inputs[\n 'input_1'\n ].connections.findIndex(\n (con) => con.input === String(connection.input)\n );\n\n delete block.inputs['input_1'].connections[brokenConnectionIndex];\n\n return;\n }\n\n const originBlockOutputsConnections =\n originBlock.outputs[String(connection.input)].connections;\n const isOutputsOk =\n originBlockOutputsConnections.length > 0 ||\n originBlockOutputsConnections.some(\n (con) => String(con.node) === String(block.id)\n );\n\n if (isOutputsOk) return;\n\n originBlock.outputs[String(connection.input)].connections.push({\n node: block.id,\n output: inputsKeys[key],\n });\n\n console.log('fez correção de output', originBlock);\n }\n });\n }\n }\n // } catch {\n // console.log(block);\n // }\n};\n\nexport const fixInputsAndOutputs = (drawflow: DataFlowObject) => {\n const drawflowNodes = drawflow.Home.data;\n const allNodesKeys = Object.keys(drawflowNodes);\n\n for (const key of allNodesKeys) {\n if (drawflowNodes[Number(key)]) {\n const inputs = drawflowNodes[Number(key)].inputs;\n const outputs = drawflowNodes[Number(key)].outputs;\n\n if (inputs && inputs.input_1) {\n const inputConnections = inputs.input_1.connections;\n\n if (inputConnections) {\n inputs.input_1.connections = inputConnections.filter(\n (connection) => allNodesKeys.indexOf(String(connection.node)) !== -1\n );\n }\n }\n\n fixInputs(drawflowNodes[Number(key)], drawflowNodes);\n fixOutputs(drawflowNodes[Number(key)], drawflowNodes);\n\n if (outputs && typeof outputs === 'object') {\n const outputsKeys = Object.keys(outputs);\n\n for (const output in outputsKeys) {\n const connectionsKeys = Object.keys(\n outputs[outputsKeys[Number(output)]].connections\n );\n for (const key of connectionsKeys) {\n if (\n allNodesKeys.indexOf(\n String(\n outputs[outputsKeys[Number(output)]].connections[Number(key)]\n .node\n )\n ) === -1\n ) {\n outputs[outputsKeys[Number(output)]].connections.splice(\n Number(key),\n 1\n );\n }\n }\n }\n }\n }\n }\n return drawflow;\n};\n","export const slugify = (str: string, withUnderscore: boolean = false) => {\n str = removeEmoji(str);\n\n const map: { [key: string]: string } = {\n a: 'á|à|ã|â|ä|À|Á|Ã|Â|Ä',\n e: 'é|è|ê|ë|É|È|Ê|Ë',\n i: 'í|ì|î|ï|Í|Ì|Î|Ï',\n o: 'ó|ò|ô|õ|ö|Ó|Ò|Ô|Õ|Ö',\n u: 'ú|ù|û|ü|Ú|Ù|Û|Ü',\n c: 'ç|Ç',\n n: 'ñ|Ñ',\n };\n for (const pattern in map) {\n str = str.replace(new RegExp(map[pattern], 'g'), pattern);\n }\n str = str.replace(/\\s/, '');\n\n return str\n .replace(\n withUnderscore ? prohibitedCharsWithoutUnderscore : prohibitedChars,\n ''\n )\n .toLocaleLowerCase();\n};\n\nexport const prohibitedChars =\n /[~`!@ªº§#$%^&*()+=_{}[\\];:'\"<>.,/\\\\?´|ç é è À-ú]/g;\nexport const prohibitedCharsWithoutUnderscore =\n /[~/\\-`!@ªº§#$%^&*()+={}[\\];:'\"<>.,/\\\\?´|ç é è À-ú]/g;\nexport const prohibitedCharsWithoutUnderscoreAndNumbers =\n /[~/\\-`!@ªº§#$%^&*()+=_{}[\\];:'\"<>.,/\\\\?´|ç é è À-ú 0 1 2 3 4 5 6 7 8 9]/g;\nexport const prohibitedCharsAndAllowSpace =\n /[~`!@ªº§#$%^&*()+=_{}[\\];:'\"<>.,/\\\\?´|çéèÀ-ú]/g;\nexport const prohibitedCharsToTemplateName =\n /[~/\\-`!@ªº§#$%^&*()+={}[\\];:'\"<>.,/\\\\?´|ç é è À-ú]/g;\n\nexport const removeEmoji = (str: string) => {\n return str.replace(\n /(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\u0023-\\u0039]\\ufe0f?\\u20e3|\\u3299|\\u3297|\\u303d|\\u3030|\\u24c2|\\ud83c[\\udd70-\\udd71]|\\ud83c[\\udd7e-\\udd7f]|\\ud83c\\udd8e|\\ud83c[\\udd91-\\udd9a]|\\ud83c[\\udde6-\\uddff]|\\ud83c[\\ude01-\\ude02]|\\ud83c\\ude1a|\\ud83c\\ude2f|\\ud83c[\\ude32-\\ude3a]|\\ud83c[\\ude50-\\ude51]|\\u203c|\\u2049|[\\u25aa-\\u25ab]|\\u25b6|\\u25c0|[\\u25fb-\\u25fe]|\\u00a9|\\u00ae|\\u2122|\\u2139|\\ud83c\\udc04|[\\u2600-\\u26FF]|\\u2b05|\\u2b06|\\u2b07|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u231a|\\u231b|\\u2328|\\u23cf|[\\u23e9-\\u23f3]|[\\u23f8-\\u23fa]|\\ud83c\\udccf|\\u2934|\\u2935|[\\u2190-\\u21ff]|\\uFE0F)/g,\n ''\n );\n};\n\nexport const validateTemplateName = (value: string) => {\n let validatedValue;\n const charsToReplace = prohibitedCharsToTemplateName;\n validatedValue = value.replace(charsToReplace, '');\n return validatedValue;\n};\n\nexport const validateVarNames = (\n e: React.ChangeEvent<{ name?: string | undefined; value: unknown }>,\n key: 'value' | 'name' | 'vartype' | null = null,\n isVariable = false\n) => {\n let value;\n const charsToReplace = isVariable\n ? String(e.target.value).length === 1\n ? prohibitedCharsWithoutUnderscoreAndNumbers\n : prohibitedCharsWithoutUnderscore\n : prohibitedChars;\n if (key === 'name' || key === 'value') {\n value = String(e.target.value).replace(charsToReplace, '');\n } else {\n value = String(e.target.value);\n }\n return value;\n};\n\nexport const validateVarNamesAndAllowSpace = (\n e: React.ChangeEvent<{ name?: string | undefined; value: unknown }>,\n key: 'value' | 'name' | 'vartype' | null = null\n) => {\n let value;\n if (key === 'name' || key === 'value') {\n value = String(e.target.value).replace(prohibitedCharsAndAllowSpace, '');\n } else {\n value = String(e.target.value);\n }\n return value;\n};\n\nexport const REGEXP_NOT_ALPHANUMERIC_UNDERSCORE_DASGH =\n /[~/`!@ªº§#$%^&*()+={}[\\];:'\"<>.,/\\\\?´|ç é è À-ú]/g;\n\nexport const replaceAlphaNumericAndUndescoreDash = (word: string) => {\n return word.replace(REGEXP_NOT_ALPHANUMERIC_UNDERSCORE_DASGH, '');\n};\n","import Drawflow from 'drawflow';\nimport { NewDrawFlow } from 'contexts/Flow/types';\nimport EIntentType from 'enums/EIntentType';\nimport { ItemDataFlow, DataForm, INodePosition } from 'models/DataFlow';\nimport DataFormModel from 'models/DataFormModel';\n\nexport default class IntentController {\n protected AMOUNT_INPUT = 1;\n\n protected editorFlow: NewDrawFlow;\n\n constructor(editorFlow: Drawflow) {\n this.editorFlow = editorFlow;\n }\n\n getLastIntentCreated(): ItemDataFlow | null {\n const keys = Object.keys(this.editorFlow.drawflow.drawflow.Home.data);\n if (!!keys.length) {\n const data =\n this.editorFlow.drawflow.drawflow.Home.data[keys[keys.length - 1]];\n if (data.data.intentType === EIntentType.Others) {\n return this.editorFlow.drawflow.drawflow.Home.data[\n keys[keys.length - 2]\n ];\n }\n return data;\n }\n return null;\n }\n\n getPositionByNodeId(nodeId: number) {\n const data = this.editorFlow.drawflow.drawflow.Home.data[nodeId];\n return { x: data.pos_x, y: data.pos_y };\n }\n\n createIntentChild(\n dataFormModel: DataFormModel,\n parentId: number,\n index: number,\n parentPosition: { x: number; y: number }\n ) {\n dataFormModel.outputs =\n dataFormModel.name === 'Outros' ? [] : [{ title: 'Saída' }];\n const amountOutput = dataFormModel.getOutputAmount();\n const dataForm = dataFormModel.toDataForm();\n const lastIntentCreated = this.getLastIntentCreated();\n let offSetX = 0,\n offSetY = 0;\n if (lastIntentCreated) {\n offSetX = parentPosition.x;\n offSetY = lastIntentCreated.pos_y;\n }\n const position = {\n x: offSetX + 400,\n y: !!index ? offSetY + 150 : offSetY - 150,\n };\n if (dataFormModel.isOthers()) {\n position.x = parentPosition.x;\n position.y = parentPosition.y + 200;\n }\n const childId = this.addNode(amountOutput, dataForm, position);\n dataForm.idOutput = String(childId);\n this.addConnection(parentId, childId, index);\n return childId;\n }\n\n addNode(amountOutput: number, dataForm: DataForm, position: INodePosition) {\n const amount = amountOutput\n ? amountOutput\n : [\n EIntentType.InitialFlow,\n EIntentType.Advanced,\n EIntentType.QuestionsAndAnswers,\n EIntentType.Others,\n ].includes(dataForm?.intentType)\n ? 1\n : amountOutput;\n\n return this.editorFlow.addNode(\n 'dbclick',\n dataForm.intentType === EIntentType.NLU ||\n dataForm.intentType === EIntentType.FlexBlockEntry\n ? 0\n : this.AMOUNT_INPUT,\n amount,\n position.x,\n position.y,\n 'dbclick',\n dataForm,\n '',\n false\n );\n }\n\n addConnection(parentId: number, childId: number, index: number) {\n this.editorFlow.addConnection(\n parentId,\n childId,\n 'output_' + (index + 1),\n 'input_1'\n );\n }\n\n updateVersion(currentVersion: number) {\n const { drawflow } = this.editorFlow.drawflow;\n if (!drawflow.Home.version) {\n drawflow.Home.version = currentVersion;\n } else {\n drawflow.Home.version += 1;\n }\n }\n\n getEditorFlow() {\n return this.editorFlow;\n }\n}\n","import EIntentType from 'enums/EIntentType';\nimport { DataForm, Output } from 'models/DataFlow';\nimport DataFormModel from 'models/DataFormModel';\nimport { slugify } from 'utils/String';\nimport IntentController from './IntentController';\nexport default class CreateIntentController extends IntentController {\n createIntent(dataForm: DataForm) {\n const dataFormModel = new DataFormModel(dataForm);\n\n if (dataFormModel.isParent()) {\n this.createIntentParent(dataFormModel);\n } else {\n this.createIntentConventional(dataFormModel);\n }\n }\n\n createIntentParent(dataFormModel: DataFormModel) {\n dataFormModel.outputs = [\n ...dataFormModel.getOutputs(),\n ...[{ title: 'Outros' }],\n ];\n const amountOutput = dataFormModel.getOutputAmount();\n const dataForm = dataFormModel.toDataForm();\n\n let position = this.defineNodePosition();\n if (!position) position = { x: 0, y: 0 };\n\n const parentId = this.addNode(amountOutput, dataForm, position);\n\n const outputs = dataFormModel.outputs;\n const outputsUpdated = this.createIntentChildren(\n outputs,\n dataFormModel,\n parentId,\n position\n );\n const { drawflow } = this.editorFlow.drawflow;\n drawflow.Home.data[parentId].data.outputs = outputsUpdated;\n this.editorFlow.nodeId = parentId;\n }\n\n createIntentChildren(\n outputs: Output[],\n dataForm: DataFormModel,\n parentId: number,\n parentPosition: { x: number; y: number }\n ) {\n const outputResult = [...outputs];\n\n for (let index = 0; index < outputResult.length; index++) {\n const output = outputResult[index];\n const title = output.title;\n const description = output.description || '';\n const intentType =\n title === 'Outros' ? EIntentType.Others : dataForm.getChildType();\n const groupId = dataForm.groupId;\n const name = dataForm.name + '-' + slugify(title.toLowerCase().trim());\n const dataFormChild = new DataFormModel({\n parentId,\n name,\n description,\n intentType,\n groupId,\n inputs: { userSentences: ['', '', ''], variables: [] },\n dataBlockly: {\n lastVersion: 1,\n payload: '// #PARSER#CONNECTOR#Saída#\\n',\n xml: 'Saída',\n compiledPayload: '',\n },\n });\n output.nameIntent = name;\n output.outputid = this.createIntentChild(\n dataFormChild,\n parentId,\n index,\n parentPosition\n ).toString();\n }\n return outputResult;\n }\n\n createIntentConventional(dataFormModel: DataFormModel) {\n let amountOutput = dataFormModel.getOutputAmount();\n if (\n amountOutput === 0 &&\n !dataFormModel.hasMultipleOutputs() &&\n !dataFormModel.isFlexBlockExit() &&\n !dataFormModel.isFlexBlock()\n ) {\n dataFormModel.outputs = [{ title: 'Saída' }];\n amountOutput = 1;\n\n if (dataFormModel.dataBlockly)\n dataFormModel.dataBlockly.payload = '// #PARSER#CONNECTOR#Saída#\\n';\n }\n\n if (\n dataFormModel.intentType === EIntentType.SendDocument ||\n dataFormModel.intentType === EIntentType.SimpleQuestion\n ) {\n dataFormModel.outputs?.push({ title: 'Outros' });\n amountOutput++;\n }\n\n const dataForm = dataFormModel.toDataForm();\n\n let position = this.defineNodePosition();\n if (!position) position = { x: 0, y: 0 };\n const nodeId = this.addNode(amountOutput, dataForm, position);\n\n this.editorFlow.nodeId = nodeId;\n }\n\n goToNode(posX: number, posY: number, offsetX: number, offsetY: number) {\n const newX = offsetX / 2 + posX * 0.1;\n const newY = offsetY / 2 + posY * 0.1;\n this.handleZoomAll();\n\n if (this.editorFlow) {\n this.editorFlow.canvas_x = -newX;\n this.editorFlow.canvas_y = -newY;\n if (this.editorFlow.precanvas) {\n this.editorFlow.precanvas.style.transform = `translate(${this.editorFlow.canvas_x}px, \n ${this.editorFlow.canvas_y}px) \n scale(${this.editorFlow.zoom}) `;\n }\n }\n }\n\n handleZoomAll = () => {\n if (this.editorFlow) {\n if (this.editorFlow.zoom < 0.6) {\n this.editorFlow.zoom_in();\n this.handleZoomAll();\n } else if (this.editorFlow.zoom > 0.7) {\n this.editorFlow.zoom_out();\n this.handleZoomAll();\n }\n }\n };\n\n defineNodePosition = () => {\n if (\n this.editorFlow &&\n this.editorFlow.precanvas &&\n this.editorFlow.pos_x &&\n this.editorFlow.pos_y\n ) {\n const position = {\n x:\n this.editorFlow.pos_x +\n this.editorFlow.pos_x * Math.random() +\n this.editorFlow.precanvas.clientWidth /\n (this.editorFlow.precanvas.clientWidth * this.editorFlow.zoom) -\n this.editorFlow.precanvas.getBoundingClientRect().x *\n (this.editorFlow.precanvas.clientWidth /\n (this.editorFlow.precanvas.clientWidth * this.editorFlow.zoom)),\n y:\n this.editorFlow.pos_y +\n this.editorFlow.pos_y * Math.random() +\n this.editorFlow.precanvas.clientHeight /\n (this.editorFlow.precanvas.clientHeight * this.editorFlow.zoom) -\n this.editorFlow.precanvas.getBoundingClientRect().y *\n (this.editorFlow.precanvas.clientHeight /\n (this.editorFlow.precanvas.clientHeight * this.editorFlow.zoom)),\n };\n return position;\n }\n };\n}\n","import { DataForm } from \"models/DataFlow\";\nimport IntentController from \"./IntentController\";\n\nexport default class RemoveIntentController extends IntentController {\n\n public removeNodeChild(nodeId: number) {\n const node = this.editorFlow.getNodeFromId(nodeId);\n\n this.editorFlow.removeNodeId(\"node-\" + nodeId);\n const nodeConnection = node.inputs[\"input_1\"].connections.find(\n (connection) => String(connection.node) === String(node.data.parentId)\n );\n if (!!nodeConnection) {\n this.editorFlow.removeNodeOutput(\n Number(nodeConnection.node),\n nodeConnection.input\n );\n }\n const dataForm: DataForm = this.editorFlow.drawflow.drawflow.Home.data[node.data.parentId].data;\n dataForm.outputs = dataForm.outputs?.filter(output => output.outputid !== String(node.id))\n }\n\n public removeNodeParent(parentId: number) {\n const block = this.editorFlow.drawflow.drawflow.Home.data;\n const dataForm: DataForm = block[parentId].data\n\n const childrenIds = dataForm.outputs\n ?.map(output => Number(output.outputid)) || [];\n\n childrenIds\n .filter((id) => block[id]?.data.parentId === parentId)\n .forEach((id) => this.removeNodeChild(id));\n\n this.editorFlow.removeNodeId(\"node-\" + parentId);\n }\n\n\n\n}\n","/* eslint-disable */\nimport { MobileScreenShareOutlined } from '@material-ui/icons';\nimport * as Blockly from 'blockly/core';\n\nexport let WorkSpaceSavedXml;\nexport let WorkSpaceCodeJS;\nexport let Workspace;\n//******************************************************************** */\n\n// ESTES DADOS PRECISAM SER CONECTADOS AO CANVAS\n// Precisa colocar o nome do Grupo Corrente - em que o bloco (intencao) esta\n// Precisa disponiibilizar o drawflow para o sistema buscar variaveis VARS e criadas pelo usuario $\n// Precisa colocar o numero do bloco atual - numero do array do drawflow\n\n//let grupo_corrente = groupid; recebe do React JS\nexport let grupo_corrente = 'GRUPOCORRENTE'; // linha com nome do grupo corrente\nexport function setCurrentGroup(currentGroup) {\n grupo_corrente = currentGroup;\n}\n\nexport let agente_atual = 'AGENTEATUAL'; // linha com nome do grupo corrente\nexport function setCurrentAgent(currentAgent) {\n agente_atual = currentAgent;\n}\n/************************************************************** */\n\n//////// WAGNER DISPONIBILIZAR essas variabeis ARRAYS\n//array_variables\n//array_connectors\n\n// o array_vars contem a lista de todas as variaveis VARS. encontradas no bot\nexport let array_vars = new Array();\n\n// array_vars_blockly contém a lista de VARS. que o bloco vai usar para listar\n// esse array será carregado com o conteudo do array_vars\nexport let array_vars_blockly = new Array();\n\n// variaveis criadas pelo usuario na tela de propriedade do bloco\nexport let array_variables = new Array();\n\n// array_variables_blockly contém a lista de $variables que o bloco vai usar para listar\n// esse array será carregado com o conteudo do array_variables\nexport let array_variables_blockly = new Array();\n\nexport let array_connectors = new Array();\n\nexport function create_array_connectors(texto) {\n // varre linha a linha de um texto\n // split the contents by new line\\\n const lines = texto.split(/\\r?\\n/);\n var n, preline, line_array;\n array_connectors = new Array(); // conectores de saida globais - destino\n //console.log(\"Cria array_connectors\\n\\n------------------\\n\" + texto)\n lines.forEach((line) => {\n n = line.search('[// #PARSER#]'); // procura se tem connector\n if (n > -1) {\n preline = line.substring(0, n) + ' ';\n line = line.substring(n, line.length);\n line_array = line.split('#'); // no line_array tem o array do separador #\n if (line_array[2] == 'CONNECTOR') {\n array_connectors.push(line_array[3]);\n //console.log(\"tem conector \" + line_array[3])\n }\n }\n });\n}\n\nexport function set_payload_connectors(payload, outputs_array) {\n // varre linha a linha de um texto\n // split the contents by new line\\\n const lines = payload.split(/\\r?\\n/);\n var n, preline, line_array, i;\n var newtext = '',\n newline;\n array_connectors = new Array(); // conectores de saida globais - destino\n //console.log(\"set_payload_connectors\\n\\n\" + payload)\n\n lines.forEach((line) => {\n // aqui usa a linha line\n newline = line;\n // Troca CONECTOR - se tiver o #PARSER#\n n = line.search('#PARSER#');\n //console.log(\"N=\" + n + \"\\n\" + line);\n if (n > -1) {\n //console.log(\"Encontrou PARSER\\n\" + line);\n line = line.split('\\n')[0];\n //line = line.substring(n, line.length + 1);\n //console.log(\"Line = >>\\n\" + line + \"<<\");\n line_array = line.split('#');\n //console.log(\"line_array = \" + line_array);\n if (line_array[2] == 'CONNECTOR') {\n // se tem conector\n if (outputs_array.length > 0) {\n // e se o conector esta conectado a algum blooc (intencao)\n //console.log(\"Encontrou conector. Varrendo o links (\" + outputs_array.length + \") no Outputs para ver se da match\")\n for (i = 0; i < outputs_array.length; i++) {\n line = preline;\n //console.log(\"array\", outputs_array);\n if (outputs_array[i]['nameIntent']) {\n //console.log(\"#\" + i + \") >>\" + outputs_array[i][\"nameIntent\"] + \"<<\\n>>\" + outputs_array[i][\"title\"] + \"<<\\n\" >> +line_array[3] + \"<<\");\n if (outputs_array[i]['title'] == line_array[3]) {\n // se o nome do conector bate com o link\n // substitui para o nome da Intent trocando CONNECTOR por event(grupo_nomedaintent)\n newline =\n \"event('\" +\n grupo_corrente +\n '_' +\n outputs_array[i]['nameIntent'] +\n \"');\\n\";\n //console.log(\"Nova linha conector :\\n\" + newline)\n }\n }\n }\n }\n }\n }\n newtext = newtext + newline + '\\n';\n });\n // retorna o PAYLOAD com o connector apontando para o bloco (intencao) correto.\n //console.log(\"Retorna NEWTEXT:\" + newtext);\n return newtext;\n}\n\nexport function precompile(drawflow) {\n //parse nested json\n //\n //console.log('array_variables=' + array_variables.toString());\n let keys = Object.keys(drawflow['drawflow']['drawflow']['Home']['data']);\n let outputs_array = new Array(); // conectores de saida - destino\n let payload, compiled_payload, conectorpadrao;\n let p;\n console.log('Entrou no precompile...');\n //return drawflow\n\n for (let b = 0; b < keys.length; b++) {\n // varrendo cada bloco do grupo\n var bloco = drawflow['drawflow']['drawflow']['Home']['data'][keys[b]]; // coloca na var \"bloco\" os dados de todo o bloco\n //console.log(\"bloco #\" + b);\n grupo_corrente =\n drawflow['drawflow']['drawflow']['Home']['data'][keys[b]]['data'][\n 'groupId'\n ];\n // vamos pegar os nomes dos conectores DESTINO de saida para colocar nos EVENT(DESTINO)\n outputs_array = [];\n conectorpadrao = '';\n\n if (bloco['data']['dataBlockly']) {\n //console.log(JSON.stringify(bloco[\"data\"]));\n if (bloco['data']['dataBlockly']['payload']) {\n // se tem payload\n payload = bloco['data']['dataBlockly']['payload'];\n\n if (bloco['data']['outputs']) {\n outputs_array = bloco['data']['outputs'];\n //console.log(\"Tem Output....vai para set_payload_connectors...\")\n compiled_payload = set_payload_connectors(payload, outputs_array);\n //console.log(\"salvando compile_payload no drawflow...\");\n\n //console.log(\"Bloco #\" + b + \" NÃO TEM compiledPayload\");\n drawflow['drawflow']['drawflow']['Home']['data'][keys[b]]['data'][\n 'dataBlockly'\n ]['compiledPayload'] = compiled_payload;\n } else {\n //console.log(\"Não tem outputs\");\n }\n }\n }\n\n // troca vars_ por vars.\n compiled_payload =\n drawflow['drawflow']['drawflow']['Home']['data'][keys[b]]['data'][\n 'dataBlockly'\n ]['compiledPayload'];\n\n compiled_payload = fix_vars_declarations(compiled_payload);\n\n drawflow['drawflow']['drawflow']['Home']['data'][keys[b]]['data'][\n 'dataBlockly'\n ]['compiledPayload'] = compiled_payload;\n }\n\n // startCompile(drawflow['drawflow']['drawflow']['Home']['data']);\n\n return drawflow;\n}\n\nexport function compileBot(drawflows) {\n // console.log('Entrou no compilador: ...compileBot...');\n if (drawflows[0]) agente_atual = drawflows[0].bot;\n\n const drawflowsUpdate = drawflows.map((item) => precompile(item));\n\n // drawflowsUpdate = precompile(drawflowtest)\n // console.log('saindo do compilador !');\n return drawflowsUpdate;\n}\n\nexport function erase_line_with_var(input_line) {\n var newtext = '';\n var l = input_line.toString();\n var line;\n input_line = input_line.split(/\\r?\\n/);\n //console.log(\"input_line:: erase_line_with_var\\n>>>\" + l + \"<<<\");\n\n //console.log(typeof input_line + \"\\nLenght=\" + input_line.length);\n //console.log(typeof l + \"\\nLenght=\" + l.length);\n //console.log(\"lines\\n\" + lines);\n for (let i = 0; i < input_line.length; i++) {\n line = input_line[i];\n //console.log(\">> \" + i + \"]\" + line)\n if (line.startsWith('var ')) {\n //console.log(\"Erase line with vars\" + line)\n if (\n line.startsWith('var vars.') ||\n line.startsWith('var vars_') ||\n line.startsWith('var vars.') ||\n line.startsWith('var vars_')\n ) {\n //console.log(\"line=null\");\n } else {\n newtext = newtext + line + '\\n';\n }\n } else if (line != '') {\n newtext = newtext + line + '\\n';\n }\n }\n return newtext;\n}\nexport function fix_vars_declarations(compiled_payload) {\n var x;\n compiled_payload = compiled_payload.replace(/vars_/g, 'vars.');\n compiled_payload = compiled_payload.replace(/resp_/g, 'resp.');\n //compiled_payload = compiled_payload.split(/\\r?\\n/);\n //console.log(\"fix_vars_declarations \\n\" + compiled_payload);\n if (\n compiled_payload.startsWith('var') &&\n compiled_payload.split('\\n')[0].includes(',') &&\n\t\t!compiled_payload.split('\\n')[0].includes('[') \n ) {\n //vai desmontar a primeira linha com multiplos var contem \"var XX,\"\n //console.log(\"desmonta\");\n x = compiled_payload.search('\\n');\n compiled_payload =\n compiled_payload.split('\\n')[0].replace(/,/g, ';\\nvar ') +\n '\\n' +\n compiled_payload.substring(x + 2, compiled_payload.length + 1).trim() +\n '\\n';\n //console.log(\"Ve se deu certo\\n\" + compiled_payload + \"\\n\\n>>\\n\" + compiled_payload.split('\\n')[0] + \"\\n\\n\" + compiled_payload.split('\\n')[1]);\n }\n compiled_payload = erase_line_with_var(compiled_payload);\n compiled_payload = compiled_payload.replace(/vars_/g, 'vars.');\n compiled_payload = compiled_payload.replace(/resp_/g, 'resp.');\n\n return compiled_payload;\n}\n","import { DataFlowObject } from 'contexts/Flow/types';\nimport { DataForm, ItemDataFlow, Output } from 'models/DataFlow';\nimport DataFormModel from 'models/DataFormModel';\nimport IntentController from './IntentController';\nimport { slugify } from 'utils/String';\nimport {\n array_connectors,\n create_array_connectors,\n} from 'components/BlocklyConstructor/compiler';\nimport EIntentType from 'enums/EIntentType';\n\nexport default class UpdateIntentController extends IntentController {\n updateIntent(dataForm: DataForm, nodeId: number) {\n const dataFormModel = new DataFormModel(dataForm);\n\n if (dataFormModel.isParent()) {\n this.updateIntentParent(dataFormModel, nodeId);\n } else if (dataFormModel.isChild()) {\n this.updateIntentChild(dataFormModel, nodeId);\n } else {\n this.updateIntentConventional(dataFormModel, nodeId);\n }\n }\n\n private updateIntentParent(dataFormModel: DataFormModel, nodeId: number) {\n const nodes: DataFlowObject = this.editorFlow.drawflow.drawflow;\n const { outputs } = nodes.Home.data[nodeId].data;\n if (outputs) {\n for (let index = 0; index < outputs.length; index++) {\n const output = outputs[index];\n output.nameIntent = dataFormModel.name + '-' + slugify(output.title);\n }\n }\n\n if (!dataFormModel.isOutputEqual(outputs)) {\n const idsToRemove = dataFormModel.getNodeIdsOutputRemoved(outputs);\n this.removeNodesChildren(idsToRemove);\n const outputsToUpdate = dataFormModel.getOutputToUpdate();\n this.updateNodesChildren(outputsToUpdate, dataFormModel.name);\n const outputsToAdd = dataFormModel.getOutputToAdd();\n const position = this.getPositionByNodeId(nodeId);\n\n const outputsAdded = this.addNodesChildren(\n outputsToAdd,\n dataFormModel,\n nodeId,\n outputsToUpdate.length,\n position\n );\n nodes.Home.data[nodeId].data.outputs = [\n ...outputsToUpdate,\n ...outputsAdded,\n ];\n } else {\n this.updateNodesChildren(dataFormModel.getOutputs(), dataFormModel.name);\n }\n this.updateIntentConventional(dataFormModel, nodeId);\n this.updateConnections(nodeId);\n }\n\n updateConnections(nodeId: number) {\n const node: ItemDataFlow =\n this.editorFlow.drawflow.drawflow.Home.data[nodeId];\n\n const outputs = { ...node.outputs };\n for (const key in outputs) {\n const connections = [...outputs[key].connections];\n for (const conn of connections) {\n this.editorFlow.removeSingleConnection(\n nodeId,\n Number(conn.node),\n key,\n conn.output || ''\n );\n }\n }\n\n for (const key in outputs) {\n const outputsData = node.data.outputs || [];\n const index = Number(key.replace(/[^0-9]/g, '')) - 1;\n const outData = outputsData.find((_, i) => i === index);\n if (outData && outData.outputid) {\n this.editorFlow.addConnection(nodeId, outData.outputid, key, 'input_1');\n }\n }\n }\n\n private updateIntentChild(dataFormModel: DataFormModel, nodeId: number) {\n this.updateIntentConventional(dataFormModel, nodeId);\n this.updateOutputParent(dataFormModel);\n }\n\n private updateOutputParent(dataFormModel: DataFormModel) {\n const parentId = dataFormModel.getParentId();\n const nodes: DataFlowObject = this.editorFlow.drawflow.drawflow;\n const outputChild = nodes.Home.data[parentId].data.outputs?.find(\n (child) => child.outputid === dataFormModel.idOutput\n );\n if (!!outputChild) {\n outputChild.nameIntent = dataFormModel.name;\n outputChild.description = dataFormModel.description;\n }\n }\n\n private updateIntentConventional(\n dataFormModel: DataFormModel,\n nodeId: number\n ) {\n const nodes: DataFlowObject = this.editorFlow.drawflow.drawflow;\n const amountOutputsFlow = Object.keys(\n nodes.Home.data[nodeId].outputs\n ).length;\n\n if (dataFormModel.intentType === 0) {\n const regExp = new RegExp(' ', 'gi');\n\n if (dataFormModel.inputs && dataFormModel.inputs.userSentences) {\n dataFormModel.inputs.userSentences =\n dataFormModel.inputs.userSentences.map((sentence) => {\n sentence = sentence.replace(regExp, ' ');\n return sentence;\n });\n }\n }\n\n if (dataFormModel.dataBlockly?.payload) {\n create_array_connectors(dataFormModel.dataBlockly?.payload);\n\n if (\n array_connectors &&\n array_connectors.length !== dataFormModel.getOutputAmount() &&\n ![\n EIntentType.CarouselParent,\n EIntentType.MultipleChoiceParent,\n EIntentType.OptionsBlock,\n EIntentType.FlexBlockExit,\n ].includes(dataFormModel.intentType)\n ) {\n let auxArray = [];\n if (![EIntentType.NewGroup].includes(dataFormModel.intentType)) {\n auxArray = !!array_connectors.length ? array_connectors : [];\n }\n\n const outputs = [];\n for (let index = 0; index < auxArray.length; index++) {\n outputs.push({\n title: auxArray[index],\n });\n }\n dataFormModel.outputs = outputs;\n }\n }\n\n const amountOutputsData = dataFormModel.getOutputAmount();\n const differenceAmount = amountOutputsFlow - amountOutputsData;\n\n if (differenceAmount > 0) {\n this.removeNodeOutputs(nodeId, differenceAmount, amountOutputsFlow);\n } else if (differenceAmount < 0) {\n this.addNodeOutputs(nodeId, differenceAmount);\n }\n\n nodes.Home.data[nodeId].data = dataFormModel.toDataForm();\n }\n\n private addNodeOutputs(nodeId: number, differenceAmount: number) {\n let amountOutput = differenceAmount;\n while (amountOutput < 0) {\n this.editorFlow.addNodeOutput(nodeId);\n amountOutput++;\n }\n }\n\n private removeNodeOutputs(\n nodeId: number,\n differenceAmount: number,\n amountOutputsFlow: number\n ): void {\n for (let index = 0; index < differenceAmount; index++) {\n this.editorFlow.removeNodeOutput(\n nodeId,\n `output_${amountOutputsFlow - index}`\n );\n }\n }\n\n private removeNodesChildren(nodeIds: number[]) {\n for (let index = 0; index < nodeIds.length; index++) {\n const nodeId = nodeIds[index];\n const node = this.editorFlow.getNodeFromId(nodeId);\n this.editorFlow.removeNodeId('node-' + nodeId);\n const nodeConnection = node.inputs['input_1'].connections.find(\n (connection) => String(connection.node) === String(node.data.parentId)\n );\n if (!!nodeConnection) {\n this.editorFlow.removeNodeOutput(\n Number(nodeConnection.node),\n nodeConnection.input\n );\n }\n }\n }\n\n private removeCrashedEmoticons(str: string) {\n return str.replace(/✔️/g, '');\n }\n\n private removeLastTrace(str: string) {\n return str.replace(/-{0,}$/, '');\n }\n\n private updateNodesChildren(outputs: Output[], parentName: string) {\n for (let index = 0; index < outputs.length; index++) {\n const output = outputs[index];\n const nodes: DataFlowObject = this.editorFlow.drawflow.drawflow;\n const formData = nodes.Home.data[Number(output.outputid)].data;\n const tile = this.removeCrashedEmoticons(\n output.title.toLowerCase().trim()\n );\n formData.name = parentName + '-' + slugify(tile);\n formData.name = this.removeLastTrace(formData.name);\n formData.description = output.description || '';\n }\n }\n\n private addNodesChildren(\n outputs: Output[],\n dataForm: DataFormModel,\n parentId: number,\n offset: number,\n parentPosition: { x: number; y: number }\n ) {\n const outputResult = [...outputs];\n\n for (let index = 0; index < outputResult.length; index++) {\n this.editorFlow.addNodeOutput(parentId);\n\n const output = outputResult[index];\n const tile = this.removeCrashedEmoticons(outputResult[index].title);\n let name = dataForm.name + '-' + slugify(tile);\n name = this.removeLastTrace(name);\n\n const description = output.description || '';\n const intentType = dataForm.getChildType();\n const groupId = dataForm.groupId;\n\n const dataFormChild = new DataFormModel({\n parentId,\n name,\n description,\n intentType,\n groupId,\n });\n\n output.outputid = this.createIntentChild(\n dataFormChild,\n parentId,\n index + offset,\n parentPosition\n ).toString();\n }\n return outputResult;\n }\n}\n","import EIntentType from '../enums/EIntentType';\nimport { slugify } from '../utils/String';\nimport { DataFlow, Input, InputOutputObject, Output } from './DataFlow';\n\nexport class DrawflowModel {\n private dataFlow: DataFlow;\n private groupId: string;\n\n constructor(dataFlow: DataFlow, groupId: string) {\n this.dataFlow = dataFlow;\n this.groupId = groupId;\n this.treatment();\n }\n\n treatment() {\n this.removeInputsOutputs();\n const keys = Object.keys(this.dataFlow);\n for (const key of keys) {\n const { outputs, data, inputs } = this.dataFlow[Number(key)];\n this.dataFlow[Number(key)].id = Number(key);\n this.removeDeletedNodesConnection(inputs, keys);\n data.name = this.rewriteNameIntent(data.name);\n data.outputs = this.updateOutputData(data.outputs || [], outputs);\n data.inputs = this.updateInputsData(data.intentType, data.inputs);\n if (!!this.groupId) {\n data.groupId = this.groupId;\n }\n if (!data.dataBlockly) {\n data.dataBlockly = {\n lastVersion: 1,\n payload: '',\n xml: '',\n compiledPayload: '',\n };\n } else {\n if (!data.dataBlockly.compiledPayload) {\n data.dataBlockly.compiledPayload = '';\n }\n }\n }\n }\n\n removeInputsOutputs() {\n const keys = Object.keys(this.dataFlow);\n for (const key of keys) {\n const { inputs, outputs, data } = this.dataFlow[Number(key)];\n this.dataFlow[Number(key)].id = Number(key);\n if (data.intentType === EIntentType.InitialFlow) {\n const keysIn = Object.keys(inputs);\n for (const keyIn of keysIn) {\n const input = inputs[keyIn];\n const connections = [...input.connections];\n for (const conn of connections) {\n const data = this.dataFlow[Number(conn.node)];\n const out = data.outputs[conn.input || ''];\n if (out) {\n out.connections = out.connections.filter(\n (o) => Number(o.node) !== Number(key)\n );\n }\n }\n\n delete inputs[keyIn];\n }\n } else if (\n // data.intentType === EIntentType.Cancel ||\n // data.intentType === EIntentType.Fallback ||\n data.intentType === EIntentType.NewGroup\n ) {\n const keysOut = Object.keys(outputs);\n for (const keyOut of keysOut) {\n const output = outputs[keyOut];\n const connections = [...output.connections];\n for (const conn of connections) {\n const data = this.dataFlow[Number(conn.node)];\n const inp = data.outputs[conn.output || ''];\n if (inp) {\n inp.connections = inp.connections.filter(\n (i) => Number(i.node) !== Number(key)\n );\n }\n }\n\n delete outputs[keyOut];\n }\n }\n }\n }\n\n updateOutputData(outputsData: Output[], outputs: InputOutputObject) {\n const keys = Object.keys(outputs);\n const outputsClean = this.clearOutputsData(outputsData);\n if (keys.length === 1 && outputsClean.length === 0) {\n outputsClean.push({\n title: 'Saída',\n });\n }\n for (let index = 0; index < keys.length; index++) {\n const output = outputs[keys[index]];\n if (output.connections && !!output.connections.length) {\n const nodeId = output.connections[0].node;\n const outputData = outputsClean.find(\n (_, outputIndex) => outputIndex === index\n );\n if (outputData) {\n outputData.outputid = String(nodeId);\n outputData.nameIntent = this.getNameIntentById(nodeId);\n }\n }\n }\n return [...outputsClean];\n }\n\n removeDeletedNodesConnection(\n inputs: InputOutputObject,\n allNodesKeys: string[]\n ) {\n const keys = Object.keys(inputs);\n\n for (const key of keys) {\n const { connections } = inputs[key];\n const connectionKeys = Object.keys(connections);\n for (const connKey of connectionKeys) {\n if (connections[Number(connKey)]) {\n const { node } = connections[Number(connKey)];\n if (!allNodesKeys.includes(String(node))) {\n connections.splice(Number(connKey), 1);\n }\n }\n }\n }\n }\n\n updateInputsData(intentType: EIntentType, inputsData?: Input) {\n if (intentType === EIntentType.QuestionsAndAnswers && inputsData) {\n inputsData.variables = inputsData.variables.map((variable) => {\n variable.required = true;\n return variable;\n });\n }\n return inputsData;\n }\n\n clearOutputsData(outputsData: Output[]) {\n return outputsData.map((output) => {\n output.outputid = undefined;\n output.nameIntent = '';\n return output;\n });\n }\n\n getNameIntentById(nodeId: number) {\n if (this.dataFlow[nodeId]) return this.dataFlow[nodeId].data.name;\n }\n\n getDrawflow() {\n return this.dataFlow;\n }\n\n rewriteNameIntent(name: string) {\n return slugify(name.toLowerCase().trim()).replace(/\\s/, '');\n }\n}\n","import { IGetLoginRequest } from './types';\nimport { IModifyPassword } from './types';\n\nconst apiUrl = process.env.REACT_APP_URL;\n\nexport const AuthorizeUser = async (request: IGetLoginRequest) => {\n const action = 'login';\n\n const resp = await fetch(apiUrl + action, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(request),\n });\n\n return await resp.json();\n};\n\nexport const RecoverEmail = async (cpf: string) => {\n const url = `${apiUrl}Auth/RecoveryEmail/${cpf}`;\n const resp = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n });\n\n return await resp.json();\n};\n\nexport const SendVerifyCode = async (email: string) => {\n const body = { email };\n const url = `${apiUrl}user/forget_password`;\n const resp = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n });\n\n return await resp.json();\n};\n\nexport const ModifyPassword = async (body: IModifyPassword) => {\n const url = `${apiUrl}user/change_password`;\n const resp = await fetch(url, {\n method: 'PUT',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n });\n\n return await resp.json();\n};\n\nexport const RefreshUserToken = async (): Promise<{\n token: string;\n refresh_token: string;\n} | void> => {\n const action = 'user/refresh';\n const refreshToken = localStorage.getItem('refresh_token');\n const token = localStorage.getItem('token');\n\n if (!!refreshToken) {\n const resp = await fetch(apiUrl + action, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Refresh: refreshToken,\n Authorization: token ?? '',\n },\n });\n\n return await resp.json();\n }\n};\n\nexport const LogOut = async (): Promise => {\n const action = 'logout';\n const refreshToken = localStorage.getItem('refresh_token');\n const token = localStorage.getItem('token');\n\n if (!!refreshToken && !!token) {\n await fetch(apiUrl + action, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Refresh: refreshToken,\n Authorization: token,\n },\n });\n }\n\n localStorage.removeItem('token');\n localStorage.removeItem('refresh_token');\n};\n\nexport const CognitoLogin = async (request: IGetLoginRequest) => {\n const action = 'user/login';\n\n const resp = await fetch(apiUrl + action, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(request),\n });\n\n return await resp.json();\n};\n\n\nexport const CognitoLogOut = async (): Promise => {\n const action = 'user/logout';\n\n const refreshToken = localStorage.getItem('refresh_token');\n const token = localStorage.getItem('token');\n\n if (!!refreshToken && !!token) {\n await fetch(apiUrl + action, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Refresh: refreshToken,\n Authorization: token,\n },\n });\n }\n\n localStorage.removeItem('token');\n localStorage.removeItem('refresh_token');\n};","import {\n addSeconds,\n fromUnixTime,\n differenceInSeconds,\n isFuture,\n} from 'date-fns';\nimport { zonedTimeToUtc } from 'date-fns-tz';\nimport jwt_decode from 'jwt-decode';\nimport { IAppContextActions } from 'contexts/App/types';\nimport { LogOut, RefreshUserToken } from '../AuthService';\nimport { IMethod } from './Headers';\nimport { IBaseResponse, MessageError } from './Response';\n\nconst apiUrl = process.env.REACT_APP_URL;\nconst campaignApiKey = process.env.REACT_APP_CAMPAIGN_EXECUTE_API_KEY || '';\nconst headers = new Headers();\n\nconst getRequestInit = (method: IMethod, body?: TBody): RequestInit => {\n return {\n method,\n headers: headers,\n cache: 'no-cache',\n body: JSON.stringify(body),\n };\n};\n\nconst sendRequest = (\n url: string,\n requestInit: RequestInit\n): Promise => fetch(apiUrl + url, requestInit);\n\nexport const appendHeader = (prop: string, value: string) => {\n if (headers.has(prop)) {\n headers.set(prop, value);\n } else {\n headers.append(prop, value);\n }\n};\n\nconst handleError = (resultError: MessageError) => {\n if (resultError && resultError.detail && resultError.detail.errors) {\n const { errors } = resultError.detail;\n return !!errors.length ? errors[0].detail : '';\n }\n return '';\n};\n\nconst SECONDS_TO_REFRESH_TOKEN = 600;\n\nasync function getToken() {\n const token = localStorage.getItem('token');\n const refreshToken = localStorage.getItem('refresh_token');\n let authorizedToken: string | boolean = false;\n\n if (!!refreshToken) {\n const dateToExpiration = getExpirationDateFromToken(refreshToken);\n const now = addSeconds(new Date(), SECONDS_TO_REFRESH_TOKEN);\n\n if (differenceInSeconds(dateToExpiration, now) < SECONDS_TO_REFRESH_TOKEN) {\n const refreshTokenResponse = await getRefreshToken();\n authorizedToken = refreshTokenResponse?.token ?? false;\n }\n }\n\n if (!!token) {\n const dateToExpiration = getExpirationDateFromToken(token);\n\n if (!isFuture(dateToExpiration)) {\n const refreshTokenResponse = await getRefreshToken();\n authorizedToken = refreshTokenResponse?.token ?? false;\n } else {\n authorizedToken = token;\n }\n }\n\n return authorizedToken;\n}\n\nfunction getExpirationDateFromToken(token: string) {\n const { exp }: any = jwt_decode(token);\n const dateToExpiration = fromUnixTime(exp);\n\n return zonedTimeToUtc(dateToExpiration, 'America/Sao_Paulo');\n}\n\nasync function getRefreshToken() {\n const responseRefreshToken = await RefreshUserToken();\n if (!!responseRefreshToken) {\n localStorage.setItem('token', responseRefreshToken.token);\n localStorage.setItem('refresh_token', responseRefreshToken.refresh_token);\n\n return responseRefreshToken;\n }\n}\n\nasync function removeSignedToken(dispatch: React.Dispatch) {\n await LogOut();\n\n dispatch({\n type: 'updateApp',\n data: { signed: false },\n });\n}\n\ninterface THeaders {\n access_key: string;\n secret_key: string;\n}\n\nexport const json = async (\n method: IMethod,\n url: string,\n dispatch: React.Dispatch,\n body?: TRequest,\n headers?: THeaders\n): Promise> => {\n try {\n const token = await getToken();\n\n if (!token) {\n await removeSignedToken(dispatch);\n }\n\n if (!!token) {\n appendHeader('Content-Type', 'application/json');\n appendHeader('Authorization', token);\n }\n\n if (/\\/execute/.test(url)) {\n appendHeader('x-api-key', campaignApiKey);\n }\n\n if (/falazap\\/identity-token/.test(url) && headers) {\n appendHeader(`x-access-key`, headers.access_key);\n appendHeader(`x-secret-key`, headers.secret_key);\n }\n\n const requestInit = getRequestInit(method, body);\n const result = await sendRequest(url, requestInit);\n\n if (!result.ok) {\n const errors: MessageError = await result.json();\n throw new Error(handleError(errors));\n }\n\n const Data: TResponse = await result.json();\n return {\n Data,\n StatusCode: result.status,\n Success: true,\n Message: '',\n };\n } catch (error: any) {\n return {\n Data: {} as TResponse,\n StatusCode: 400,\n Success: false,\n Message: error.message,\n };\n }\n};\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetBotsResponse,\n IGetBotsNamesResponse,\n IGetFlowRequest,\n IGetFlowResponse,\n IPublishBotHistoryRequest,\n IPublishBotHistoryResponse,\n IPublishBotRequest,\n ISaveBotRequest,\n ISaveBotResponse,\n ISemaphoreResponse,\n PublishBotResponse,\n IGetBotsGroupsRequest,\n IGetBotsGroupsResponse,\n IPublishBotBackupRequest,\n IGetPublishBackupResponse,\n} from './types';\n\nconst baseUrl = 'bots';\n\nexport const GetBots = async (\n dispatch: React.Dispatch\n): Promise> => {\n return await json('GET', baseUrl, dispatch);\n};\n\nexport const GetBotsGroups = async (\n request: IGetBotsGroupsRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${baseUrl}/${request.bot_name}/groups/names`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetBotsNames = async (\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${baseUrl}/names`;\n return await json('GET', action, dispatch);\n};\n\nexport const SaveBot = async (\n request: ISaveBotRequest,\n dispatch: React.Dispatch\n): Promise> => {\n return await json('POST', baseUrl, dispatch, request);\n};\n\nexport const GetFlows = async (\n request: IGetFlowRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${baseUrl}/${request.bot_name}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetPublishBackup = async (\n bot_name: string,\n dispatch: React.Dispatch,\n skip = '0',\n limit = '5'\n): Promise> => {\n const action = `${baseUrl}/${bot_name}/backup?skip=${skip}&limit=${limit}`;\n return await json('GET', action, dispatch);\n};\n\nexport const SavePublishBackup = async (\n request: IPublishBotBackupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${baseUrl}/${request.botName}/backup`;\n return await json('POST', action, dispatch, request);\n};\n\nexport const PublishBot = async (\n request: IPublishBotRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${baseUrl}/${request.bot_name}/publish`;\n //console.log(\"**** JSON para salvar na API Cris\\n\\n\");\n //console.log(JSON.stringify(request,null,2));\n //console.log(\"****fim\");\n return await json('POST', action, dispatch, request);\n};\n\nexport const PublishHistory = async (\n request: IPublishBotHistoryRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${baseUrl}/${request.bot_name}/publish_history`;\n return await json('GET', action, dispatch);\n};\n\nexport const Semaphore = async (\n semaphore_id: string,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `semaphore/${semaphore_id}`;\n return await json('GET', action, dispatch);\n};\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from 'services/RequestService';\nimport {\n ICreateCompanyRequest,\n ICreateCompanyResponse,\n IGetCompanyResponse,\n IUpdateCompanyRequest,\n} from './types';\nimport { IBaseResponse } from 'services/RequestService/Response';\n\nconst baseUrl = 'companies';\n\nexport async function CreateCompany(\n request: ICreateCompanyRequest,\n dispatch: React.Dispatch\n) {\n const action = `${baseUrl}`;\n return await json('POST', action, dispatch, request);\n}\nexport async function UpdateCompany(\n request: IUpdateCompanyRequest,\n dispatch: React.Dispatch\n) {\n const action = `${baseUrl}/${request._id}`;\n return await json('PATCH', action, dispatch, request);\n}\n\nexport async function GetCompany(\n companyName: string,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${baseUrl}/${companyName}`;\n return await json('GET', action, dispatch);\n}\n\nexport async function GetCompanys(\n dispatch: React.Dispatch\n) {\n const action = `${baseUrl}`;\n return await json('GET', action, dispatch);\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IDeleteGroupRequest,\n IGetGroupRequest,\n IGetGroupResponse,\n IPostBlockGroup,\n ISaveGroupRequest,\n ISaveGroupResponse,\n IUpdateGroupRequest,\n IUpdateGroupResponse,\n IGetGroupBlocsCountsResponse,\n\tIGetGroupsInUse\n} from './types';\n\nexport const SaveGroup = async (\n request: ISaveGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/groups/${request.group_name}`;\n return await json(\n 'POST',\n action,\n dispatch,\n request.request\n );\n};\n\nexport const UpdateGroup = async (\n request: IUpdateGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/groups/${request.group_name}`;\n return await json('PATCH', action, dispatch, request);\n};\n\nexport const GetGroup = async (\n request: IGetGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/groups/${request.groupName}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetGroupIsLiberated = async (\n request: IGetGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `lock/${request.bot_name}/groups/${request.groupName}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetGroupsInUse = async (\n botName: string,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `lock/${botName}/groups`;\n return await json('GET', action, dispatch);\n};\n\nexport const ReleaseGroupAccess = async (\n request: IGetGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `lock/${request.bot_name}/groups/${request.groupName}`;\n return await json('DELETE', action, dispatch);\n};\n\nexport const UpdateLastAccess = async (\n request: IGetGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `lock/${request.bot_name}/groups/${request.groupName}`;\n\n return await json('PATCH', action, dispatch);\n};\n\nexport const BlockGroupAccess = async (\n request: IGetGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `lock/${request.bot_name}/groups/${request.groupName}`;\n return await json('POST', action, dispatch);\n};\n\nexport const DeleteGroup = async (\n request: IDeleteGroupRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const { bot_name, group_name, group_name_confirmation } = request;\n const action = `bots/${bot_name}/groups/${group_name}`;\n return await json('DELETE', action, dispatch, group_name_confirmation);\n};\n\nexport const GetGroupBlocksCounts = async (\n botName: string,\n groupName: string,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${botName}/groups/${groupName}/counts`;\n return await json('GET', action, dispatch);\n};\n","import { IFlowContextState, IFlowContextActions } from './types';\n\nexport const initialState = {\n editorFlow: null,\n drawFlowRef: null,\n openModalIntentType: false,\n openModalForms: false,\n openModalCreateGroup: false,\n openModalSavedBlocks: false,\n openModalSaveSelectedBlocks: false,\n openModalStandardTemplates: false,\n openModalTemplateUpload: false,\n openModalPasswordReset: false,\n dataForm: null,\n toastNotification: {\n type: 'success',\n message: '',\n show: false,\n },\n idGroup: '',\n // bots: [],\n // groups: [],\n intents: [],\n nodesList: {},\n handleNode: null,\n listNodeRemove: [],\n loading: false,\n\n openModalWarning: false,\n openModalUsedGroup: false,\n openModalBlockedGroup: false,\n openModalAccessKeys: false,\n openModalManageAccount: false,\n openModalManageCompany: false,\n openModalManagePermission: false,\n\n openModalPhrasesOfIntentManager: false,\n openModalManageCorrectSentences: false,\n\n openModalCampaignTemplates: false,\n openModalCampaignCampaign: false,\n openModalCampaignActioning: false,\n\n openModalPublishBot: false,\n\topenModalFalazapTheme: false,\n\topenModalFalazapToken: false,\n\topenModalFlexBlocks: false,\n\n isEditing: false,\n groupUser: '',\n botsUrls: {\n urlWhatsApp: '',\n urlTelegram: '',\n urlFalazap: '',\n urlFacebook: '',\n urlTwitter: '',\n },\n botsNames: [],\n groupsNames: [],\n bot: {\n _id: '',\n bot_name: '',\n groups: [],\n version: 0,\n },\n userOrganizations: [],\n userPermissions: [],\n showBlockAccessCount: false,\n setAccessCountData: {},\n drawflowToPublish: {},\n} as IFlowContextState;\n\nexport function reducerFlow(\n state: IFlowContextState,\n action: IFlowContextActions\n): IFlowContextState {\n switch (action.type) {\n case 'addFlow':\n return functionsReducer[action.type](state, action.data);\n case 'openModalIntentType':\n return functionsReducer[action.type](state);\n case 'closeModalIntentType':\n return functionsReducer[action.type](state);\n case 'updateForm':\n return functionsReducer[action.type](state, action.data);\n case 'openModalForms':\n return functionsReducer[action.type](state, action.data);\n case 'closeModalForms':\n return functionsReducer[action.type](state);\n case 'openModalSavedBlocks':\n return functionsReducer[action.type](state);\n case 'closeModalSavedBlocks':\n return functionsReducer[action.type](state);\n case 'openModalSaveSelectedBlocks':\n return functionsReducer[action.type](state);\n case 'closeModalSaveSelectedBlocks':\n return functionsReducer[action.type](state);\n case 'openModalStandardTemplates':\n return functionsReducer[action.type](state);\n case 'closeModalStandardTemplates':\n return functionsReducer[action.type](state);\n case 'openModalTemplateUpload':\n return functionsReducer[action.type](state);\n case 'closeModalTemplateUpload':\n return functionsReducer[action.type](state);\n case 'openModalCreateGroup':\n return functionsReducer[action.type](state, action.data);\n case 'openModalWarning':\n return functionsReducer[action.type](state, action.data);\n case 'closeModalWarning':\n return functionsReducer[action.type](state, action.data);\n case 'openModalUsedGroup':\n return functionsReducer[action.type](state, action.data);\n case 'closeModalBlockedGroup':\n return functionsReducer[action.type](state, action.data);\n case 'openModalBlockedGroup':\n return functionsReducer[action.type](state, action.data);\n case 'openModalAccessKeys':\n return functionsReducer[action.type](state);\n case 'closeModalAccessKeys':\n return functionsReducer[action.type](state);\n case 'closeModalCreateGroup':\n return functionsReducer[action.type](state);\n case 'closeModalUsedGroup':\n return functionsReducer[action.type](state, action.data);\n case 'openModalManageAccount':\n return functionsReducer[action.type](state);\n case 'closeModalManageAccount':\n return functionsReducer[action.type](state);\n case 'openModalManageCompany':\n return functionsReducer[action.type](state);\n case 'closeModalManageCompany':\n return functionsReducer[action.type](state);\n case 'openModalManagePermission':\n return functionsReducer[action.type](state);\n case 'closeModalManagePermission':\n return functionsReducer[action.type](state);\n case 'openModalPhrasesOfIntentManager':\n return functionsReducer[action.type](state);\n case 'closeModalPhrasesOfIntentManager':\n return functionsReducer[action.type](state);\n case 'openModalManageCorrectSentences':\n return functionsReducer[action.type](state);\n case 'closeModalManageCorrectSentences':\n return functionsReducer[action.type](state);\n case 'clearNodeList':\n return functionsReducer[action.type](state);\n case 'updateNodeToList':\n return functionsReducer[action.type](state, action.data);\n case 'isEditing':\n return functionsReducer[action.type](state, action.data);\n case 'isNotEditing':\n return functionsReducer[action.type](state, action.data);\n case 'showBlockAccessCount':\n return functionsReducer[action.type](state, action.data);\n case 'setAccessCountData':\n return functionsReducer[action.type](state, action.data);\n case 'setIdGroup':\n return functionsReducer[action.type](state, action.data);\n case 'drawflowToPublish':\n return functionsReducer[action.type](state, action.data);\n case 'openModalCampaignTemplates':\n return functionsReducer[action.type](state);\n case 'openModalCampaignCampaign':\n return functionsReducer[action.type](state);\n case 'openModalCampaignActioning':\n return functionsReducer[action.type](state);\n case 'closeModalCampaignTemplates':\n return functionsReducer[action.type](state);\n case 'closeModalCampaignCampaign':\n return functionsReducer[action.type](state);\n case 'closeModalCampaignActioning':\n return functionsReducer[action.type](state);\n case 'openModalPublishBot':\n return functionsReducer[action.type](state);\n case 'closeModalPublishBot':\n return functionsReducer[action.type](state);\n\t\tcase 'openModalFalazapToken':\n\t\t\treturn functionsReducer[action.type](state);\n\t\tcase 'openModalFalazapTheme':\n\t\t\treturn functionsReducer[action.type](state);\n\t\tcase 'closeModalFalazapToken':\n\t\t\treturn functionsReducer[action.type](state);\n\t\tcase 'closeModalFalazapTheme':\n\t\t\treturn functionsReducer[action.type](state);\n\t\tcase 'openModalFlexBlocks':\n\t\t\treturn functionsReducer[action.type](state);\n\t\tcase 'closeModalFlexBlocks':\n\t\t\treturn functionsReducer[action.type](state);\n default:\n return state;\n }\n}\n\nconst functionsReducer = {\n addFlow: (state: IFlowContextState, data?: Partial) => {\n return { ...state, editorFlow: data?.editorFlow || state.editorFlow };\n },\n\n setAccessCountData: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, setAccessCountData: data?.setAccessCountData };\n },\n\n showBlockAccessCount: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, showBlockAccessCount: data?.showBlockAccessCount };\n },\n\n setIdGroup: (state: IFlowContextState, data?: Partial) => {\n return { ...state, idGroup: data?.idGroup };\n },\n\n isEditing: (state: IFlowContextState, data?: Partial) => {\n return { ...state, isEditing: true };\n },\n\n isNotEditing: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, isEditing: false };\n },\n\n openModalBlockedGroup: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalBlockedGroup: true };\n },\n\n closeModalUsedGroup: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalUsedGroup: false };\n },\n\n openModalUsedGroup: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalUsedGroup: true };\n },\n\n closeModalBlockedGroup: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalBlockedGroup: false };\n },\n\n openModalIntentType: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalIntentType: true };\n },\n\n closeModalIntentType: (state: IFlowContextState) => {\n return { ...state, openModalIntentType: false };\n },\n\n updateForm: (state: IFlowContextState, data?: Partial) => {\n return { ...state, ...data };\n },\n\n openModalForms: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return {\n ...state,\n openModalForms: true,\n dataForm: data?.dataForm || null,\n nodeId: data?.nodeId,\n };\n },\n\n closeModalForms: (state: IFlowContextState) => {\n return { ...state, openModalForms: false };\n },\n\n openModalSavedBlocks: (state: IFlowContextState) => {\n return { ...state, openModalSavedBlocks: true };\n },\n\n closeModalSavedBlocks: (state: IFlowContextState) => {\n return { ...state, openModalSavedBlocks: false };\n },\n\n openModalSaveSelectedBlocks: (state: IFlowContextState) => {\n return { ...state, openModalSaveSelectedBlocks: true };\n },\n\n closeModalSaveSelectedBlocks: (state: IFlowContextState) => {\n return { ...state, openModalSaveSelectedBlocks: false };\n },\n\n openModalStandardTemplates: (state: IFlowContextState) => {\n return { ...state, openModalStandardTemplates: true };\n },\n\n closeModalStandardTemplates: (state: IFlowContextState) => {\n return { ...state, openModalStandardTemplates: false };\n },\n\n openModalTemplateUpload: (state: IFlowContextState) => {\n return { ...state, openModalTemplateUpload: true };\n },\n\n closeModalTemplateUpload: (state: IFlowContextState) => {\n return { ...state, openModalTemplateUpload: false };\n },\n\n openModalAccessKeys: (state: IFlowContextState) => {\n return { ...state, openModalAccessKeys: true };\n },\n\n closeModalAccessKeys: (state: IFlowContextState) => {\n return { ...state, openModalAccessKeys: false };\n },\n\n openModalManageCompany: (state: IFlowContextState) => {\n return { ...state, openModalManageCompany: true };\n },\n\n closeModalManageCompany: (state: IFlowContextState) => {\n return { ...state, openModalManageCompany: false };\n },\n\n openModalManagePermission: (state: IFlowContextState) => {\n return { ...state, openModalManagePermission: true };\n },\n\n closeModalManagePermission: (state: IFlowContextState) => {\n return { ...state, openModalManagePermission: false };\n },\n\n openModalManageAccount: (state: IFlowContextState) => {\n return { ...state, openModalManageAccount: true };\n },\n\n closeModalManageAccount: (state: IFlowContextState) => {\n return { ...state, openModalManageAccount: false };\n },\n\n openModalPhrasesOfIntentManager: (state: IFlowContextState) => {\n return { ...state, openModalPhrasesOfIntentManager: true };\n },\n\n closeModalPhrasesOfIntentManager: (state: IFlowContextState) => {\n return { ...state, openModalPhrasesOfIntentManager: false };\n },\n\n openModalManageCorrectSentences: (state: IFlowContextState) => {\n return { ...state, openModalManageCorrectSentences: true };\n },\n\n closeModalManageCorrectSentences: (state: IFlowContextState) => {\n return { ...state, openModalManageCorrectSentences: false };\n },\n\n openModalCorrectSentences: (state: IFlowContextState) => {\n return { ...state, openModalCorrectSentences: true };\n },\n\n closeModalCorrectSentences: (state: IFlowContextState) => {\n return { ...state, openModalCorrectSentences: false };\n },\n\n openModalCampaignTemplates: (state: IFlowContextState) => {\n return { ...state, openModalCampaignTemplates: true };\n },\n\n openModalCampaignCampaign: (state: IFlowContextState) => {\n return { ...state, openModalCampaignCampaign: true };\n },\n\n openModalCampaignActioning: (state: IFlowContextState) => {\n return { ...state, openModalCampaignActioning: true };\n },\n closeModalCampaignTemplates: (state: IFlowContextState) => {\n return { ...state, openModalCampaignTemplates: false };\n },\n\n closeModalCampaignCampaign: (state: IFlowContextState) => {\n return { ...state, openModalCampaignCampaign: false };\n },\n\n closeModalCampaignActioning: (state: IFlowContextState) => {\n return { ...state, openModalCampaignActioning: false };\n },\n\n openModalWarning: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalWarning: true };\n },\n\n closeModalWarning: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalWarning: false };\n },\n\n openModalCreateGroup: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, openModalCreateGroup: true };\n },\n\n closeModalCreateGroup: (state: IFlowContextState) => {\n return { ...state, openModalCreateGroup: false };\n },\n\n openModalFalazapToken: (state: IFlowContextState) => {\n return { ...state, openModalFalazapToken: true };\n },\n\n openModalFalazapTheme: (state: IFlowContextState) => {\n return { ...state, openModalFalazapTheme: true };\n },\n closeModalFalazapToken: (state: IFlowContextState) => {\n return { ...state, openModalFalazapToken: false };\n },\n\n closeModalFalazapTheme: (state: IFlowContextState) => {\n return { ...state, openModalFalazapTheme: false };\n },\n\n clearNodeList: (state: IFlowContextState) => {\n return { ...state, nodesList: {} };\n },\n\n openModalPublishBot: (state: IFlowContextState) => {\n return { ...state, openModalPublishBot: true };\n },\n\n closeModalPublishBot: (state: IFlowContextState) => {\n return { ...state, openModalPublishBot: false };\n },\n\t\n openModalFlexBlocks: (state: IFlowContextState) => {\n return { ...state, openModalFlexBlocks: true };\n },\n\n closeModalFlexBlocks: (state: IFlowContextState) => {\n return { ...state, openModalFlexBlocks: false };\n },\n\n drawflowToPublish: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n return { ...state, drawflowToPublish: data };\n },\n\n updateNodeToList: (\n state: IFlowContextState,\n data?: Partial\n ) => {\n if (data?.nodesList) {\n const nodesList = { ...state.nodesList };\n for (const key in data.nodesList) {\n if (!!nodesList[key]) {\n delete nodesList[key];\n } else {\n nodesList[key] = data.nodesList[key];\n }\n }\n return {\n ...state,\n nodesList,\n };\n }\n return state;\n },\n};\n","import styled from 'styled-components';\n\nexport const BlockFlow = styled.div`\n /* position: absolute; */\n z-index: 9;\n min-width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(161, 160, 160, 0.589);\n :hover{\n cursor: default;\n }\n`;\n","import styled from 'styled-components';\n\nexport const Content = styled.div<{\n colors?: { border: string; background: string };\n color: string;\n}>`\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n padding: 4px;\n\n top: -1px;\n left: -1px;\n\n width: 323.5px;\n height: 30px;\n\n color: #fff;\n font-size: 1.2rem;\n font-family: 'Roboto', sans-serif;\n font-weight: 400;\n text-align: center;\n\n background: ${(props) => (props.color ? props.color : '#fff')};\n z-index: 4;\n\n border-radius: 5px;\n\n cursor: pointer;\n`;\n\nexport const CountContainer = styled.div`\n width: 36px;\n height: 22px;\n\n margin-left: 2px;\n\n border: 1.5px solid #fff;\n\n border-radius: 12px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n font-size: 14px;\n`;\n\nexport const NameContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n div {\n width: 100%;\n max-width: 20ch;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span {\n margin-left: 28px;\n }\n\n\tsvg {\n\t\tfill: #fff;\n\t}\n`;\n\nexport const ConfigContainer = styled.div`\n\tmargin-right: 4px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\t\n\t.MuiIconButton-root {\n\t\tcolor #fff;\n\n\t\t:hover {\n\t\t\tcolor: #ebebeb;\n\t\t}\n\t}\n`;","import { ToastType } from 'contexts/Flow/types';\nimport { IModalBlockOptionsProps } from '../types';\nexport interface IBlockAccessCountProps extends IModalBlockOptionsProps {\n blocksData: { [key: string]: number };\n name: string;\n isShowing?: boolean;\n state: any;\n nodeId: number;\n intentType: number;\n toastNotification: (\n type: ToastType,\n message: string,\n duration?: number\n ) => void;\n}\n\nexport interface ColorsAndBorders {\n [key: string]: { border: string; background: string };\n}\n\nexport interface ColorAndBorder {\n border: string;\n background: string;\n}\n\nexport const HeatMapColorsAndBorders: ColorsAndBorders = {\n hot: {\n border: '#D27C5D',\n background: '#FE926C',\n },\n warm: {\n border: '#D2AE7A',\n background: '#FDD294',\n },\n medium: {\n border: '#CBCB98',\n background: '#FDFDBE',\n },\n cold: {\n border: '#8BCB94',\n background: '#AFFFBA',\n },\n colder: {\n border: '#81B7AC',\n background: '#DAFAF4',\n },\n};\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst HeatmapIcon: React.FC = (props) => {\n return (\n \n image2vector-svg\n \n \n \n \n \n \n \n );\n};\n\nexport default HeatmapIcon;\n","import React from 'react';\n\nimport Button from '@material-ui/core/Button/Button';\n\nimport { IButtomPropsV4 } from './types';\n\nconst MttButton: React.FC = (props: IButtomPropsV4) => {\n const { children } = props;\n\n return ;\n};\n\nexport default MttButton;\n","import styled from 'styled-components';\nimport MttButton from '../Material/MttButton/MttButton';\nimport Popover from '@material-ui/core/Popover';\n\nexport const PopoverContainer = styled(Popover)`\n margin-top: 10px;\n margin-left: 5px;\n z-index: 3;\n\n .MuiButton-iconSizeMedium > *:first-child {\n font-size: 1.3em;\n }\n\n .MuiButton-text {\n border-bottom: 2px solid #f2f2f2;\n border-radius: 0;\n display: flex;\n justify-content: left;\n padding: 11.4px;\n height: 56px;\n width: 100%;\n\n &:first-child {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n border-bottom: none;\n border-radius: 0 0 4px 4px;\n }\n }\n\n .MuiButton-label {\n text-transform: none;\n font-size: 1.2em;\n }\n`;\n\nexport const SelectOpt = styled(MttButton).attrs({\n children: 'Selecionar',\n})``;\n\nexport const DeselectOpt = styled(MttButton).attrs({\n children: 'Desselecionar todos',\n})``;\n\nexport const FlowHeatMap = styled(MttButton).attrs({\n children: 'Mapa de Calor de Fluxo',\n})``;\n\nexport const DuplicateOpt = styled(MttButton).attrs({\n children: 'Duplicar',\n})``;\n\nexport const CopyToLibOpt = styled(MttButton).attrs({\n children: 'Copiar para Biblioteca',\n})``;\n\nexport const DeleteOpt = styled(MttButton).attrs({\n children: 'Excluir',\n})``;\n","import React from 'react';\n\nimport Grid from '@material-ui/core/Grid/Grid';\n\nimport { IGridProps } from './types';\n\nconst MttGrid: React.FC = (props: IGridProps) => {\n const { children } = props;\n\n return {children};\n};\n\nexport default MttGrid;","import { Grid, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const ContainerDialog = styled(MttGrid)`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n overflow: hidden;\n \n\t.MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n\n .MuiToolbar-regular {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n overflow-y: auto;\n max-height: 65vh;\n`;\n\nexport const ContainerImage = styled(Grid)`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #ffff;\n`;\n\nexport const ContentContainer = styled(Grid)`\n overflow-y: auto;\n\n /* max-height: 65vh; */\n`;\n\nexport const TagsContainer = styled(Grid)`\n margin-top: 20px;\n padding: 10px;\n`;\n\nexport const SearchTagContainer = styled(Grid)`\n width: 100%;\n display: flex;\n align-items: center;\n\n button {\n margin: 5px;\n width: 200px;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const ChipContainer = styled.div`\n max-width: 100px;\n\n div {\n margin: 3px;\n }\n`;\n\nexport const TagsList = styled(Grid)`\n display: flex;\n margin: 10px 8px;\n align-items: center;\n max-width: 100%;\n flex-wrap: wrap;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})``;\n\nexport const ModalFooter = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n`;\n\nexport const ContainerFooter = styled.div`\n align-items: center;\n justify-content: center;\n margin: 0 24px 16px 24px;\n\n .MuiTypography-body1 {\n color: #808080;\n }\n`;\n\nexport const ContainerMessage = styled.div`\n align-items: center;\n justify-content: center;\n margin-bottom: 4px;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ModalMessage = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n align-items: center;\n justify-content: center;\n`;\n","/* eslint-disable eqeqeq */\nimport React, { useCallback, useEffect } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\nimport { TransitionProps } from '@material-ui/core/transitions';\n\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { AppBar, IconButton, Toolbar, Typography } from '@material-ui/core';\nimport { ContainerDialog } from './styles';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nlet l, i, id: any, nome, outputs, node_name, node_id;\nlet map_array: any[] = [];\nlet sankey_array: any[] = [];\nlet loop_blocker: any[] = [];\nlet level, temp;\nlet temp_array = [];\nlet level_max = 7;\nlet drawflow: any = {};\n\nconst ModalHeatmap: React.FC<{\n google: any;\n open: boolean;\n handleClose: () => void;\n nodeId: any;\n state: any;\n}> = ({ google, open, handleClose, nodeId, state }) => {\n id = nodeId;\n drawflow = state.editorFlow.drawflow.drawflow;\n map_array = [];\n sankey_array = [];\n loop_blocker = [];\n temp_array = [];\n\n const drawChart = useCallback(() => {\n if (google) {\n var data = new google.visualization.DataTable();\n data.addColumn('string', 'de');\n data.addColumn('string', 'para');\n data.addColumn('number', '% volume', {\n className: 'box-font',\n });\n data.addRows(sankey_array);\n\n // Set chart options\n var colors = [\n '#a6cee3',\n '#b2df8a',\n '#fb9a99',\n '#fdbf6f',\n '#cab2d6',\n '#ffff99',\n '#1f78b4',\n '#33a02c',\n ];\n var options = {\n width: 600,\n height: 400,\n sankey: {\n node: {\n colors: colors,\n },\n link: {\n colorMode: 'gradient',\n colors: colors,\n },\n },\n };\n\n // Instantiate and draw our chart, passing in some options.\n var chart = new google.visualization.Sankey(\n document.getElementById('sankey_multiple')\n );\n chart.draw(data, options);\n }\n }, [google]);\n\n //adiciona no array de saida os dados no sankey_array\n const create_array = useCallback((array: string | any[]) => {\n if (array) {\n for (var x = 0; x < array.length; x++) {\n // verifica se não é loop, ou seja, se esta apontando para algum id pai\n if (is_loop(array[x].id_output) == false) {\n if (ok_to_save(array[x].name_ini, array[x].name_output)) {\n sankey_array.push([array[x].name_ini, array[x].name_output, 100]);\n }\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (google && open) {\n google.charts.setOnLoadCallback(drawChart);\n\n for (level = 0; level < level_max; level++) {\n temp_array = [];\n //O primeiro é diferente porque recebe o \"id\"\n if (level == 0) {\n nome = get_node_name(id);\n outputs = get_node_outputs(id);\n\n loop_blocker.push(id);\n if (outputs) {\n for (i = 0; i < outputs.length; i++) {\n node_id = outputs[i]['outputid'];\n node_name = get_node_name(node_id);\n temp = {\n name_ini: nome,\n id_ini: id,\n name_output: node_name,\n id_output: node_id,\n };\n\n temp_array.push(temp);\n }\n map_array.push(temp_array);\n create_array(temp_array);\n }\n } else {\n //os demais usam o level 0\n if (map_array[level - 1]) {\n for (l = 0; l < map_array[level - 1].length; l++) {\n id = map_array[level - 1][l].id_output;\n nome = get_node_name(id);\n outputs = get_node_outputs(id);\n if (outputs) {\n for (i = 0; i < outputs.length; i++) {\n node_id = outputs[i]['outputid'];\n node_name = get_node_name(node_id);\n if (node_name) {\n temp = {\n name_ini: nome,\n id_ini: id,\n name_output: node_name,\n id_output: node_id,\n };\n\n temp_array.push(temp);\n }\n }\n map_array.push(temp_array);\n create_array(temp_array);\n }\n }\n }\n }\n }\n }\n }, [create_array, drawChart, google, open]);\n\n function is_loop(id: any) {\n var is_loop = false;\n for (var count = 0; count < loop_blocker.length; count++) {\n if (loop_blocker[count]) {\n if (loop_blocker[count] == id) {\n is_loop = true;\n }\n }\n }\n loop_blocker.push(id);\n return is_loop;\n }\n\n function ok_to_save(a: any, b: any) {\n var ok_to_save = true;\n var aa, bb;\n for (var k = 0; k < sankey_array.length; k++) {\n aa = sankey_array[k][0];\n bb = sankey_array[k][1];\n if (a == aa) {\n if (b == bb) {\n ok_to_save = false;\n }\n }\n }\n return ok_to_save;\n }\n\n //pega o nome a partir do id\n function get_node_name(id: any) {\n if (drawflow.Home.data[id]) {\n if (drawflow.Home.data[id]['data']) {\n if (drawflow.Home.data[id]['data']['name']) {\n return drawflow.Home.data[id]['data']['name'];\n }\n }\n } else return '';\n }\n\n //pega os outputs (array) a partir do id\n function get_node_outputs(id: any) {\n if (drawflow.Home.data[id]) {\n if (drawflow.Home.data[id]['data']) {\n if (drawflow.Home.data[id]['data']['outputs']) {\n return drawflow.Home.data[id]['data']['outputs'];\n }\n }\n }\n return;\n }\n\n return (\n \n \n \n \n Mapa de Calor de Fluxo\n \n \n \n \n \n
\n
\n \n );\n};\n\nexport default ModalHeatmap;\n","import { useEffect, useState } from 'react';\n\nfunction useGoogleCharts() {\n const [google, setGoogle] = useState(null);\n\n useEffect(() => {\n if (!google) {\n const head = document.head;\n let script = document.getElementById('googleChartsScript');\n if (!script) {\n script = document.createElement('script');\n script.src = 'https://www.gstatic.com/charts/loader.js';\n script.id = 'googleChartsScript';\n script.onload = () => {\n if (window.google && window.google.charts) {\n window.google.charts.load('current', {\n packages: ['corechart', 'sankey'],\n });\n\n window.google.charts.setOnLoadCallback(() =>\n setGoogle(window.google)\n );\n }\n };\n head.appendChild(script);\n } else if (\n window.google &&\n window.google.charts &&\n window.google.visualization\n ) {\n setGoogle(window.google);\n }\n }\n return () => {\n let script = document.getElementById('googleChartsScript');\n if (script) {\n script.remove();\n }\n };\n }, [google]);\n\n return google;\n}\n\nexport default useGoogleCharts;\n","import {\n Check,\n Clear,\n FileCopy,\n FlipToFront,\n Delete,\n} from '@material-ui/icons';\nimport { useState } from 'react';\nimport { validateBlockedIntents } from 'enums/EIntentType';\nimport { DataForm } from 'models/DataFlow';\nimport DataFormModel from 'models/DataFormModel';\nimport HeatmapIcon from 'components/Icons/HeatmapIcon';\nimport * as S from './styles';\nimport { IModalBlockOptionsProps } from './types';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { IconButton } from '@material-ui/core';\n\nimport ModalHeatmap from './ModalHeatmap';\nimport useGoogleCharts from 'utils/hooks/googleCharts';\n\nfunction ModalBlockOptions(props: IModalBlockOptionsProps) {\n const google = useGoogleCharts();\n const {\n nodeId,\n node,\n state,\n dispatch,\n addNodeToList,\n clearNodeList,\n deleteNode,\n duplicateNode,\n\t\tform\n } = props;\n const { intentType } = node.data;\n\n const [anchorEl, setAnchorEl] = useState(null);\n const [openHeatMap, setOpenHeatMap] = useState(false);\n\n const handleClick = (event: React.MouseEvent) => {\n const bool = state.editorFlow?.editor_mode === 'fixed';\n if (!bool) {\n if (state) {\n setAnchorEl(event.currentTarget);\n }\n }\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleOpenModalCopyToLib = () => {\n dispatch({ type: 'openModalSaveSelectedBlocks' });\n };\n\n const DisableOptions = (allowChild = true) => {\n const dataForm: DataForm =\n state.editorFlow?.drawflow.drawflow.Home.data[nodeId]?.data;\n if (dataForm) {\n const form = new DataFormModel(dataForm);\n const blockedIntents = !validateBlockedIntents(intentType);\n\n if (!allowChild) {\n const isChild = form.isChild() || form.isOthers();\n return isChild || !blockedIntents;\n }\n\n return !blockedIntents;\n }\n };\n\n const open = Boolean(anchorEl);\n\n const id = open ? 'simple-popover' : undefined;\n const block = {\n nodeId,\n node,\n };\n\n const getButtons = (type: string) => {\n switch (type) {\n case 'SelectOpt':\n return (\n }\n onClick={() => {\n handleClose();\n addNodeToList(block, state.nodesList);\n }}\n disabled={DisableOptions(false)}\n />\n );\n case 'DeselectOpt':\n return (\n }\n onClick={() => {\n clearNodeList();\n alert('Blocos desselecionados !');\n handleClose();\n }}\n />\n );\n case 'FlowHeatMap':\n return (\n }\n onClick={() => {\n //TODO LOBO: LOBO SANKEY CHART\n // window.open(\"../../lego_sankey_chart.html\");\n //************************* */\n setOpenHeatMap(true);\n clearNodeList();\n handleClose();\n }}\n />\n );\n case 'DuplicateOpt':\n return (\n }\n onClick={() => {\n duplicateNode(block);\n handleClose();\n }}\n disabled={DisableOptions(false) || form.isFlexBlock()}\n />\n );\n case 'CopyToLibOpt':\n return (\n }\n onClick={() => {\n handleOpenModalCopyToLib();\n handleClose();\n }}\n disabled={DisableOptions(false) || form.isFlexBlock()}\n />\n );\n case 'DeleteOpt':\n return (\n }\n onClick={() => {\n deleteNode(nodeId);\n handleClose();\n }}\n disabled={DisableOptions()}\n />\n );\n default:\n return null;\n }\n };\n\n const getMenu = (arr: string[]) => arr.map((type) => getButtons(type));\n\n const buttons = [\n 'SelectOpt',\n 'DeselectOpt',\n 'FlowHeatMap',\n 'DuplicateOpt',\n 'CopyToLibOpt',\n 'DeleteOpt',\n ];\n\n const handleLockMouseEvent = (\n event: React.MouseEvent\n ) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n return (\n <>\n \n \n \n \n {getMenu(buttons)}\n \n {openHeatMap && (\n setOpenHeatMap(false)}\n nodeId={nodeId}\n state={state}\n />\n )}\n \n );\n}\n\nexport default ModalBlockOptions;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst RulesIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n );\n};\n\nexport default RulesIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst LogicIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default LogicIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst NluIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n );\n};\n\nexport default NluIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst MultipleChoiceIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default MultipleChoiceIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst RulesIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n {' '}\n \n );\n};\n\nexport default RulesIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst FalaGPTIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n );\n};\n\nexport default FalaGPTIcon;\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetFlagsResponse,\n IUpdateFlagsRequest,\n IUpdateFlagsResponse,\n} from './types';\n\nexport const GetFlags = async (\n bot_name: string,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${bot_name}/flags`;\n return json('GET', action, dispatch);\n};\n\nexport const UpdateFlags = async (\n request: IUpdateFlagsRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.botName}/flags`;\n return json('PATCH', action, dispatch, request);\n};\n","import { Popover } from '@material-ui/core';\nimport styled from 'styled-components';\n\nexport const PopoverContainer = styled(Popover)`\n margin-top: 10px;\n margin-left: 5px;\n z-index: 3;\n max-width: 150px;\n\n padding: 4px;\n\n\t.MuiButton-root {\n\t\tmargin-top: 8px;\n\t\tcolor: #000;\n\t}\n`;\n\nexport const FlagContainer = styled.div`\n display: flex;\n align-items: center;\n border-radius: 4px;\n\n width: 100%;\n height: 26px;\n\n margin-top: 4px;\n\n :hover {\n cursor: pointer;\n }\n\n .MuiOutlinedInput-root {\n\t\tmargin-left: 8px;\n max-height: 26px;\n }\n`;\n\nexport const FlagIcon = styled.button<{ color: string }>`\n background: ${(props) => (props.color ? props.color : '#06fb00')};\n border: 1px solid #fff;\n border-radius: 50%;\n position: absolute;\n right: 40px;\n top: 10px;\n width: 17px !important;\n height: 17px !important;\n\n :hover {\n cursor: pointer;\n }\n`;\n\nexport const Flag = styled.div<{ color: string }>`\n background: ${(props) => (props.color ? props.color : '#06fb00')};\n border: 1px solid #c0c0c0;\n border-radius: 50%;\n min-width: 14px !important;\n height: 14px !important;\n`;\n","import { Flag, IFlowContextState, ToastType } from 'contexts/Flow/types';\nimport DataFormModel from 'models/DataFormModel';\n\nexport interface IFlagsContainerProps {\n state: IFlowContextState;\n form: DataFormModel;\n node: number;\n toast: (type: ToastType, message: string, duration?: number) => void;\n}\n\nexport const defaultFlags: Flag[] = [\n {\n color: 'transparent',\n title: '',\n },\n {\n color: '#00fa9e',\n title: 'verde',\n },\n {\n color: '#fff60e',\n title: 'amarelo',\n },\n {\n color: '#fc970a',\n title: 'laranja',\n },\n {\n color: '#f62e97',\n title: 'rosa',\n },\n];\n","import { Button, TextField, Tooltip } from '@material-ui/core';\nimport { useState } from 'react';\nimport { useApp } from 'contexts/App/appContext';\nimport { UpdateFlags } from 'services/FlagsService';\nimport * as S from './styles';\nimport { IFlagsContainerProps, defaultFlags } from './types';\nimport { IFlag } from 'models/DataFlow';\n\nexport default function FlagsContainer(props: IFlagsContainerProps) {\n const { state, form, node, toast } = props;\n const { dispatch: dispatchApp } = useApp();\n const [anchorEl, setAnchorEl] = useState(null);\n const [currFlag, setCurrFlag] = useState(\n form.flag || {\n color: 'transparent',\n title: '',\n }\n );\n\n const [flagOptions, setFlagOptions] = useState(state.flags || defaultFlags);\n\n const open = Boolean(anchorEl);\n const id = open ? 'simple-popover' : undefined;\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleClickFlagIcon = (event: React.MouseEvent) => {\n const bool = state.editorFlow?.editor_mode === 'fixed';\n if (!bool) {\n if (state) {\n setAnchorEl(event.currentTarget);\n }\n }\n };\n\n const handleChangeFlagTitle = (newTitle: string, index: number) => {\n flagOptions[index].title = newTitle;\n setFlagOptions([...flagOptions]);\n };\n\n const handleChangeFlag = (flag: IFlag) => {\n setCurrFlag(flag);\n\n if (state.editorFlow) {\n state.editorFlow.drawflow.drawflow.Home.data[node].data.flag = flag;\n }\n };\n\n const handleSaveFlags = async () => {\n const response = await UpdateFlags(\n {\n botName: state.botName || '',\n flags: flagOptions,\n },\n dispatchApp\n );\n\n if (response.Success) {\n toast('success', 'Flags atualizados com sucesso', 3000);\n } else {\n toast(\n 'error',\n response.Message ||\n 'Ocorreu algum erro ao atualizar a flag, tente novamente.',\n 3000\n );\n }\n\n\t\thandleClose();\n };\n\n return (\n <>\n \n \n \n \n {flagOptions.map((flag, index) => (\n \n handleChangeFlag(flag)} />\n {index !== 0 && (\n handleChangeFlagTitle(e.target.value, index)}\n />\n )}\n \n ))}\n \n \n \n );\n}\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst AppIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n );\n};\n\nexport default AppIcon;\n","import { useCallback, useEffect, useState } from 'react';\nimport EIntentType from 'enums/EIntentType';\n\nimport * as S from './styles';\nimport DeviceHubIcon from '@material-ui/icons/DeviceHub';\nimport SmsIcon from '@material-ui/icons/Sms';\nimport ReplyAllIcon from '@material-ui/icons/ReplyAll';\nimport SpeakerNotesIcon from '@material-ui/icons/SpeakerNotes';\nimport Dashboard from '@material-ui/icons/Dashboard';\nimport RecentActorsIcon from '@material-ui/icons/RecentActors';\nimport WarningIcon from '@material-ui/icons/Warning';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport PlayCircleFilledWhiteIcon from '@material-ui/icons/PlayCircleFilledWhite';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport InputIcon from '@material-ui/icons/Input';\nimport OpenInNewIcon from '@material-ui/icons/OpenInNew';\n\nimport {\n ColorAndBorder,\n HeatMapColorsAndBorders,\n IBlockAccessCountProps,\n} from './types';\n\nimport ModalBlockOptions from '..';\nimport RulesIcon from 'components/Icons/RulesIcon';\nimport LogicIcon from 'components/Icons/LogicIcon';\nimport NluIcon from 'components/Icons/NluIcon';\nimport MultipleChoiceIcon from 'components/Icons/MultipleChoiceIcon';\nimport ABTestIcon from 'components/Icons/ABTestIcon';\nimport FalaGPTICon from 'components/Icons/FalaGPTIcon';\nimport FlagsContainer from './FlagsContainer';\nimport AppIcon from 'components/Icons/AppIcon';\n\nfunction BlockAccessCount(props: IBlockAccessCountProps) {\n const {\n blocksData,\n name,\n intentType,\n nodeId,\n node,\n state,\n dispatch,\n addNodeToList,\n clearNodeList,\n deleteNode,\n duplicateNode,\n form,\n toastNotification,\n } = props;\n const [color, setColor] = useState();\n const [data, setData] = useState(0);\n const [backgroundColor, setBackgroundColor] = useState('#fff');\n const [icon, setIcon] = useState(null);\n\n const load = useCallback(() => {\n const keys = Object.keys(blocksData);\n const result: string | any = keys.find((block) => block === name);\n\n if (result) {\n const value = blocksData[result];\n setData(value);\n\n const chosenColor: ColorAndBorder =\n value <= 10\n ? HeatMapColorsAndBorders.colder\n : value <= 20\n ? HeatMapColorsAndBorders.cold\n : value <= 30\n ? HeatMapColorsAndBorders.medium\n : value <= 40\n ? HeatMapColorsAndBorders.warm\n : HeatMapColorsAndBorders.hot;\n\n setColor(chosenColor);\n } else setColor(HeatMapColorsAndBorders.colder);\n }, [blocksData, name]);\n\n const loadColor = useCallback(() => {\n switch (intentType) {\n case EIntentType.CarouselParent:\n setBackgroundColor('#016B60');\n setIcon();\n break;\n case EIntentType.CarouselChild:\n setBackgroundColor('#016B60');\n setIcon();\n break;\n case EIntentType.MultipleChoiceParent:\n setBackgroundColor('#016B60');\n setIcon();\n break;\n case EIntentType.MultipleChoiceChild:\n setBackgroundColor('#016B60');\n setIcon();\n break;\n case EIntentType.OptionsBlock:\n setBackgroundColor('#016B60');\n setIcon();\n break;\n case EIntentType.InitialFlow:\n setIcon();\n setBackgroundColor('#50A450');\n break;\n case EIntentType.Advanced:\n setIcon();\n setBackgroundColor('#AC005F');\n break;\n case EIntentType.QuestionsAndAnswers:\n setBackgroundColor('#2F4073');\n setIcon();\n break;\n case EIntentType.NewGroup:\n setBackgroundColor('#FEAE01');\n setIcon();\n break;\n case EIntentType.Welcome:\n setBackgroundColor('#59A96A');\n setIcon();\n break;\n case EIntentType.Fallback:\n setBackgroundColor('#D69F28');\n setIcon();\n break;\n case EIntentType.Cancel:\n setBackgroundColor('#CD5334');\n setIcon();\n break;\n case EIntentType.Others:\n setBackgroundColor('#008E7F');\n if (node.data.parentId) {\n const parent = state.editorFlow.getNodeFromId(node.data.parentId);\n if (parent) {\n if (parent.data.intentType === EIntentType.MultipleChoiceParent) {\n setIcon();\n } else {\n setIcon();\n }\n }\n }\n break;\n case EIntentType.Livechat:\n setBackgroundColor('#E46B01');\n setIcon();\n break;\n case EIntentType.SaveTable:\n setBackgroundColor('#FFE78B');\n break;\n case EIntentType.SendMessage:\n setBackgroundColor('#7A81FF');\n setIcon();\n break;\n case EIntentType.SimpleQuestion:\n setBackgroundColor('#4F8F00');\n setIcon();\n break;\n case EIntentType.SendDocument:\n setBackgroundColor('#016D00');\n setIcon();\n break;\n case EIntentType.Logic:\n setBackgroundColor('#ab7845');\n setIcon();\n break;\n case EIntentType.NLU:\n setBackgroundColor('#FF0000');\n setIcon();\n break;\n case EIntentType.OpenHTML:\n setBackgroundColor('#ffd479');\n setIcon();\n break;\n case EIntentType.Carousel:\n setBackgroundColor('#9966CC');\n setIcon();\n break;\n case EIntentType.Rules:\n setBackgroundColor('#FFAB40');\n setIcon();\n break;\n case EIntentType.ABTest:\n setBackgroundColor('#90f');\n setIcon();\n break;\n case EIntentType.FalaGPT:\n setBackgroundColor('#ff914d');\n setIcon();\n break;\n case EIntentType.FlexBlock:\n setBackgroundColor('#ff40ff');\n setIcon();\n break;\n case EIntentType.FlexBlockExit:\n setBackgroundColor('#ff40ff');\n setIcon();\n break;\n case EIntentType.FlexBlockEntry:\n setBackgroundColor('#ff40ff');\n setIcon();\n break;\n default:\n break;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [intentType]);\n\n useEffect(() => {\n load();\n loadColor();\n }, [load, loadColor]);\n\n return (\n \n {data}\n \n {icon}\n
\n {name}\n
\n
\n \n \n \n \n
\n );\n}\n\nexport default BlockAccessCount;\n","import {\n DataFlow,\n InputOutputObject,\n IPosition,\n Output,\n} from 'models/DataFlow';\nimport DataFormModel from 'models/DataFormModel';\n\nexport default class AddBlockToFlowController {\n protected drawflow: any;\n protected groupId: string;\n protected position: IPosition;\n\n constructor(drawflow: any, groupId: string, position: IPosition) {\n this.drawflow = drawflow;\n this.groupId = groupId;\n this.position = position;\n }\n\n async addBlock(block: DataFlow) {\n const home = this.drawflow.drawflow.Home;\n const dataUpdated = { ...home.data };\n const blockUpdated = this.updateBlock(block);\n home.data = { ...dataUpdated, ...blockUpdated };\n }\n\n updateBlock(block: DataFlow) {\n const blockUpdatedPositions = this.updatePosition(block);\n const blockUpdatedInputsOutputs = this.removeInputsAndOutputsNotUsed(\n blockUpdatedPositions\n );\n const blockUpdatedId = this.updateIdsBlock(blockUpdatedInputsOutputs);\n this.updateData(blockUpdatedId);\n const blockUpdateName = this.insertCopyName(blockUpdatedId);\n return blockUpdateName;\n }\n\n updatePosition(block: DataFlow) {\n const keys = Object.keys(block);\n const newBlock: DataFlow = {};\n if (keys.length) {\n const key = keys[0];\n const node = block[Number(key)];\n const offsetX = node.pos_x;\n const offsetY = node.pos_y;\n for (let index = 0; index < keys.length; index++) {\n const node = { ...block[Number(keys[index])] };\n node.pos_x = node.pos_x - offsetX + 400 + this.position.pos_x;\n node.pos_y = node.pos_y - offsetY + this.position.pos_y;\n newBlock[Number(keys[index])] = node;\n }\n }\n return newBlock;\n }\n\n removeInputsAndOutputsNotUsed(block: DataFlow) {\n const newBlock: DataFlow = { ...block };\n for (const key in block) {\n const node = { ...newBlock[key] };\n node.inputs = this.removeFieldsNotUsed(newBlock, { ...node.inputs });\n node.outputs = this.removeFieldsNotUsed(newBlock, { ...node.outputs });\n newBlock[Number(key)] = { ...node };\n }\n return newBlock;\n }\n\n removeFieldsNotUsed(block: DataFlow, fields: InputOutputObject) {\n const newFields: InputOutputObject = { ...fields };\n for (const key in fields) {\n const field = { ...newFields[key] };\n field.connections = field.connections.filter(\n (conn) => !!block[Number(conn.node)]\n );\n newFields[key] = { ...field };\n }\n return newFields;\n }\n\n updateIdsBlock(block: DataFlow) {\n let newBlock: DataFlow = { ...block };\n let currentFlowId = this.getNextNodeId();\n let currentBlockId = this.getNextNodeIdBlock(block);\n let currentId =\n currentFlowId > currentBlockId ? currentFlowId : currentBlockId;\n const keys = Object.keys(newBlock);\n for (const key of keys) {\n const nodeId = Number(key);\n newBlock = this.updateInputsAndOutputs(newBlock, nodeId, currentId);\n const node = { ...newBlock[nodeId] };\n node.id = currentId;\n node.data.groupId = this.groupId;\n delete node.flowid;\n delete newBlock[nodeId];\n newBlock[currentId] = { ...node };\n currentId++;\n }\n return newBlock;\n }\n\n updateInputsAndOutputs(\n block: DataFlow,\n prevNodeId: number,\n newNodeId: number\n ) {\n const newBlock: DataFlow = { ...block };\n for (const key in newBlock) {\n const node = { ...newBlock[key] };\n if (node.data.parentId === prevNodeId) {\n node.data.parentId = newNodeId;\n }\n node.inputs = this.updateFields(node.inputs, prevNodeId, newNodeId);\n node.outputs = this.updateFields(node.outputs, prevNodeId, newNodeId);\n newBlock[Number(key)] = { ...node };\n }\n return newBlock;\n }\n\n updateFields(\n fields: InputOutputObject,\n prevNodeId: number,\n newNodeId: number\n ) {\n const newFields: InputOutputObject = { ...fields };\n for (const key in newFields) {\n const field = { ...fields[key] };\n field.connections = field.connections.map((conn) => {\n if (Number(conn.node) === prevNodeId) {\n conn.node = newNodeId;\n }\n return conn;\n });\n newFields[key] = { ...field };\n }\n return newFields;\n }\n\n getNextNodeIdBlock(block: DataFlow) {\n const data = block;\n const keys = Object.keys(data)\n .map((k) => Number(k))\n .sort((a, b) => (a < b ? 1 : a > b ? -1 : 0));\n const key = keys.length > 0 ? Number(keys[0]) + 1 : 1;\n return key;\n }\n\n getNextNodeId() {\n const data = this.drawflow.drawflow.Home.data;\n const keys = Object.keys(data)\n .map((k) => Number(k))\n .sort((a, b) => (a < b ? 1 : a > b ? -1 : 0));\n const key = keys.length > 0 ? Number(keys[0]) + 1 : 1;\n return key;\n }\n\n updateData(block: DataFlow) {\n for (const key in block) {\n const { data, outputs } = block[key];\n data.outputs = this.updateOutputData(data.outputs || [], outputs);\n }\n }\n\n updateOutputData(outputsData: Output[], outputs: InputOutputObject) {\n const keys = Object.keys(outputs);\n for (let index = 0; index < keys.length; index++) {\n const output = outputs[keys[index]];\n if (output.connections && !!output.connections.length) {\n const nodeId = output.connections[0].node;\n const outputData = outputsData.find(\n (_, outputIndex) => outputIndex === index\n );\n if (outputData) {\n outputData.outputid = String(nodeId);\n }\n }\n }\n return [...outputsData];\n }\n\n insertCopyName(block: DataFlow) {\n const numberCopy = this.getNextCopyNumber();\n const newBlock: DataFlow = { ...block };\n if (!this.hasCopy(newBlock)) return newBlock;\n for (const key in block) {\n const node = { ...newBlock[key] };\n const newData = new DataFormModel(node.data);\n if (newData.isParent()) {\n const outputs = newData.getOutputs();\n for (let index = 0; index < outputs.length; index++) {\n const output = outputs[index];\n const childId = output.outputid;\n const nodeChild = { ...newBlock[Number(childId)] };\n if (nodeChild && nodeChild.data) {\n nodeChild.data.name = nodeChild.data.name.replace(\n newData.name,\n `${node.data.name.replace(/-copy-([0-9]*)/,\"\")}-copy-${numberCopy}`\n );\n newBlock[Number(childId)] = nodeChild;\n }\n }\n node.data.name = `${node.data.name.replace(/-copy-([0-9]*)/,\"\")}-copy-${numberCopy}`;\n } else if (!newData.isChild() && !newData.isOthers()) {\n node.data.name = `${node.data.name.replace(/-copy-([0-9]*)/,\"\")}-copy-${numberCopy}`;\n }\n newBlock[Number(key)] = { ...node };\n }\n return newBlock;\n }\n\n getNextCopyNumber() {\n const data: DataFlow = { ...this.drawflow.drawflow.Home.data };\n const numbers = Object.keys(data)\n .map((key) => data[Number(key)].data.name)\n .filter((name) => {\n const nameCopyRegex = /-copy-([0-9]*)/g;\n const matches = name.match(nameCopyRegex);\n const result = !!matches ? matches[0] : '';\n return !!result;\n })\n .map((name) =>{\n const nameCopyRegex = /-copy-([0-9]*)/g;\n const matches = name.match(nameCopyRegex);\n const result = !!matches ? matches[0] : '';\n return Number(result.replace(/[^0-9]/g,''))\n }\n \n )\n .sort((a, b) => (a < b ? 1 : a > b ? -1 : 0));\n\n return !!numbers.length ? numbers[0] + 1 : 1;\n }\n\n hasCopy(block: DataFlow) {\n const data: DataFlow = { ...this.drawflow.drawflow.Home.data };\n const namesIntentFlow = Object.keys(data).map(\n (key) => data[Number(key)].data.name\n );\n const namesIntentBlock = Object.keys(block).map(\n (key) => block[Number(key)].data.name\n );\n return namesIntentBlock.some((name) => namesIntentFlow.includes(name));\n }\n\n getDrawflow() {\n return this.drawflow;\n }\n}\n","import Drawflow from 'drawflow';\nimport { DataFlow } from 'models/DataFlow';\n\nexport default class GetBlockOnFlowController {\n protected editorFlow: Drawflow;\n\n constructor(editorFlow: Drawflow) {\n this.editorFlow = editorFlow;\n }\n\n getBlock(ids: number[]) {\n const data = this.editorFlow.drawflow.drawflow.Home.data;\n const dataResult: DataFlow = {};\n for (const id of ids) {\n const node = data[id];\n if (node) {\n dataResult[id] = { ...node };\n }\n }\n return dataResult;\n }\n}\n","import Drawflow from 'drawflow';\nimport { DataFlow } from 'models/DataFlow';\n\nexport default class GetOffsetPositionFlowController {\n protected editorFlow: Drawflow;\n\n constructor(editorFlow: Drawflow) {\n this.editorFlow = editorFlow;\n }\n\n getLastPosition() {\n const data: DataFlow = this.editorFlow.drawflow.drawflow.Home.data;\n const keys = Object.keys(data);\n if (!keys.length) return { pos_x: 0, pos_y: 0 };\n const key = keys[keys.length - 1];\n const node = data[Number(key)];\n const { pos_x, pos_y } = node;\n return { pos_x, pos_y };\n }\n\n getBiggestPositions(pos_x: number[], pos_y: number[]) {\n if (!pos_x.length || !pos_y.length) return this.getLastPosition();\n const biggestPos_x = Math.min(...pos_x);\n const biggestPos_y = Math.max(...pos_y);\n return { pos_x: biggestPos_x - 400, pos_y: biggestPos_y + 260 };\n }\n\n getRelativePosition(block: DataFlow) {\n const keys = Object.keys(block);\n const positionsX = keys.map((key) => block[Number(key)].pos_x);\n const positionsY = keys.map((key) => block[Number(key)].pos_y);\n return this.getBiggestPositions(positionsX, positionsY);\n }\n}\n","import { DataFlowObject } from 'contexts/Flow/types';\n\nexport default class UpdateNodesPositionController {\n protected drawflow: DataFlowObject;\n\n constructor(drawflow: DataFlowObject) {\n this.drawflow = drawflow;\n }\n\n updatePosition(nodesIds: number[], offsetX: number, offsetY: number) {\n const data = this.drawflow.Home.data;\n for (const nodeId of nodesIds) {\n const { pos_x, pos_y } = data[nodeId];\n data[nodeId].pos_x = pos_x - offsetX;\n data[nodeId].pos_y = pos_y - offsetY;\n }\n }\n\n resetPosition() {\n const data = this.drawflow.Home.data;\n const keys = Object.keys(data).map((key) => Number(key));\n const { pos_x, pos_y } = this.getRelativePosition();\n const flow = document.getElementById('drawflow');\n\n this.updatePosition(\n keys,\n pos_x -\n -(flow?.clientWidth ? Math.round(flow.clientWidth / 2) - 300 : 32),\n pos_y\n );\n }\n\n getRelativePosition() {\n const block = this.drawflow.Home.data;\n const keys = Object.keys(block);\n const positionsX = keys.map((key) => block[Number(key)].pos_x);\n const positionsY = keys.map((key) => block[Number(key)].pos_y);\n return this.getBiggestPositions(positionsX, positionsY);\n }\n\n getBiggestPositions(pos_x: number[], pos_y: number[]) {\n if (!pos_x.length || !pos_y.length) return { pos_x: 0, pos_y: 0 };\n const biggestPos_x = Math.min(...pos_x);\n const biggestPos_y = Math.min(...pos_y);\n return { pos_x: biggestPos_x, pos_y: biggestPos_y };\n }\n\n getDrawflow() {\n return this.drawflow;\n }\n}\n","import { getNodePosition } from 'components/Flow/utils/NodeContainer';\nimport { validateBlockedIntents } from 'enums/EIntentType';\nimport { DataFlow } from 'models/DataFlow';\nimport { DrawflowModel } from 'models/DrawflowModel';\n\nexport function saveBackupBotGroup({\n dataflow,\n group,\n botName,\n}: {\n dataflow: any;\n group: string;\n botName: string;\n}) {\n const lastSave = JSON.stringify(dataflow);\n\n localStorage.setItem('lastSave', lastSave);\n localStorage.setItem('lastSave_group', group);\n localStorage.setItem('lastSave_bot', botName);\n}\n\nexport function restoreBackupBotGroup({\n toastNotification,\n state,\n mountNodeContent,\n errors,\n}: {\n toastNotification: any;\n state: any;\n mountNodeContent: any;\n errors: {\n onlyValidForPrincipal: string;\n invalidFileForPrincipal: string;\n invalidFileForGroup: string;\n };\n}) {\n const botName = state.botName;\n const group = state.idGroup;\n const lastSaveGroup = localStorage.getItem('lastSave_group');\n const lastSave = localStorage.getItem('lastSave');\n const lastSaveBot = localStorage.getItem('lastSave_bot');\n\n if (group === lastSaveGroup && botName === lastSaveBot && !!lastSave) {\n toastNotification(\n 'warning',\n 'Falha ao excluir o bloco, tente recriar as conexões, remover o bloco pai ou algum elemento duplicado.'\n );\n\n const drawflow = JSON.parse(lastSave);\n\n if (drawflow.drawflow) {\n if (drawflow.drawflow.Home) {\n const dataFlow: DataFlow = drawflow.drawflow.Home.data;\n\n const keys = Object.keys(dataFlow);\n let hasInitialBlocks = false;\n const isPrincipalGroup = group === 'principal';\n\n try {\n for (const key of keys) {\n const { data } = dataFlow[Number(key)];\n\n if (isPrincipalGroup) {\n if (validateBlockedIntents(data.intentType)) {\n hasInitialBlocks = true;\n break;\n }\n } else if (validateBlockedIntents(data.intentType)) {\n throw new Error(errors.onlyValidForPrincipal);\n }\n\n dataFlow[Number(key)].id = Number(key);\n\n const sPayload = data.dataBlockly?.payload as string;\n if (sPayload) {\n const newPayload = sPayload.replaceAll(\n `${data.groupId}_`, //nome atual do grupo\n `${group}_` //novo nome do Grupo\n );\n\n if (data.dataBlockly?.payload)\n data.dataBlockly.payload = newPayload;\n }\n }\n\n if (isPrincipalGroup && !hasInitialBlocks) {\n throw new Error(errors.invalidFileForPrincipal);\n }\n } catch (error: any) {\n toastNotification('error', error.message);\n return;\n }\n\n const drawflowModel = new DrawflowModel(dataFlow, group || '');\n\n drawflow.drawflow.Home.data = drawflowModel.getDrawflow();\n state.editorFlow?.import(drawflow);\n\n mountNodeContent(dataFlow);\n\n const block = state.editorFlow?.drawflow.drawflow.Home.data;\n const blocksKeys = Object.keys(block);\n const positionsX = blocksKeys.map((key) => block[Number(key)].pos_x);\n\n const biggestPos_x = Math.min(...positionsX);\n\n const minBlock = blocksKeys.find(\n (key) => block[Number(key)].pos_x === biggestPos_x\n );\n\n const { x, y } = getNodePosition(minBlock as unknown as number);\n\n const newX = x / 2 + x * 0.1;\n const newY = y / 2 + y * 0.1;\n\n if (state.editorFlow) {\n state.editorFlow.canvas_x = -newX;\n state.editorFlow.canvas_y = -newY;\n if (state.editorFlow.precanvas) {\n state.editorFlow.precanvas.style.transform = `translate(${state.editorFlow.canvas_x}px, \n ${state.editorFlow.canvas_y}px) \n scale(${state.editorFlow.zoom}) `;\n }\n }\n } else {\n toastNotification('error', errors.invalidFileForGroup);\n }\n } else {\n toastNotification('error', errors.invalidFileForGroup);\n }\n }\n}\n","import { IFlowContextState } from '../contexts/Flow/types';\n\nexport const isEmptyFlow = (state: IFlowContextState) => {\n const { Home } = state?.editorFlow?.drawflow.drawflow ?? {\n Home: { data: {} },\n };\n return (\n Home.data &&\n Object.keys(Home.data).length === 0 &&\n Object.getPrototypeOf(Home.data) === Object.prototype\n );\n};\n\nexport const isValidPrincipalGroup = (data: any[]) => {\n const principalGroup = data.filter((item: any) => {\n return (\n item.data.intentType === 8 ||\n item.data.intentType === 9 ||\n item.data.intentType === 10\n );\n });\n\n return principalGroup.length === 3;\n};\n","/* eslint-disable */\nimport * as Blockly from 'blockly/core';\nimport { fix_vars_declarations } from 'components/BlocklyConstructor/compiler';\n\nexport let WorkSpaceSavedXml;\nexport let WorkSpaceCodeJS;\nexport let Workspace;\nexport let APIKEY = \"b1fcea2c-d3a6-11eb-b8bc-0242ac130003\";\n\n//******************************************************************** */\n\n// ESTES DADOS PRECISAM SER CONECTADOS AO CANVAS\n// Precisa colocar o nome do Grupo Corrente - em que o bloco (intencao) esta\n// Precisa disponiibilizar o drawflow para o sistema buscar variaveis VARS e criadas pelo usuario $\n// Precisa colocar o numero do bloco atual - numero do array do drawflow\n\n//let grupo_corrente = groupid; recebe do React JS\n\nexport let grupo_corrente = 'GRUPOCORRENTE'; // linha com nome do grupo corrente\nexport function setCurrentGroup(currentGroup) {\n grupo_corrente = currentGroup;\n}\n\nexport let agente_atual = 'AGENTEATUAL'; // linha com nome do grupo corrente\nexport function setCurrentAgent(currentAgent) {\n\tagente_atual = currentAgent;\n}\n// Abaixo o drawflow mocado\n\n/************************************************************** */\n\n//////// WAGNER DISPONIBILIZAR essas variabeis ARRAYS\n//array_variables\n//array_connectors\n\n// o array_vars contem a lista de todas as variaveis VARS. encontradas no bot\n// estou mockando para começar com state\n//let array_vars = ['vars.nomefantasia', 'vars.nomeestabelecimento', 'vars.cnpj', 'vars.cpf', 'vars.nomedecisor', 'vars.nomeproprietario', 'vars.uuidcliente', 'vars.datadecadastro'];\nexport let array_vars = new Array();\n\n// array_vars_blockly contém a lista de VARS. que o bloco vai usar para listar\n// esse array será carregado com o conteudo do array_vars\nexport let array_vars_blockly = new Array();\n\nexport function getArrayVarsBlockly() {\n return !!array_vars_blockly.length ?\n array_vars_blockly : [\n ['vars.exemplo', 'vars.exemplo']\n ];\n}\n\n// variaveis criadas pelo usuario na tela de propriedade do bloco\nexport let array_variables = new Array();\n\n// variaveis dos campos de banco de dados\nexport let array_fields = new Array();\n\n\n// array_variables_blockly contém a lista de $variables que o bloco vai usar para listar\n// esse array será carregado com o conteudo do array_variables\nexport let array_variables_blockly = new Array();\n\nexport function getArrayVariablesBlockly() {\n return !!array_variables_blockly.length ?\n array_variables_blockly : [\n ['$exemplo', '$exemplo']\n ];\n}\n\nexport let array_customer_database_fields = new Array();\n\nexport function getArrayCustomerDataBase() {\n return !!array_customer_database_fields.length ?\n array_customer_database_fields : [\n ['nome', 'nome'],\n ['cpf', 'cpf'],\n ['cnpj', 'cnpj'],\n ['email', 'email'],\n ['celular', 'celular'],\n ];\n}\n\nexport let array_connectors = new Array();\n\nexport let insertline;\n\n// dado para testar o codigo - lixo - APAGAR !!!\n\n//exemplod texto de codigo\nlet payload = 'linha 1\\n2\\n3\\n4\\n5\\n6\\nultima linha';\n// linha exemplo para busca de variaveis vars.\nlet line = '0vars.Anome123=alskdj + vars.Aidade-1kjhask';\n\n//*********************************************************** */\n\n//*********************************************************** */\nexport function Mostra() {\n alert('Essa é uma função de teste\\n\\nBora lá !');\n //console.log(message); // Outputs a message to the Web Console\n console.log('imprime a mensagem debug/n'); // Outputs a message to the Web Console\n console.log(\n '%c My message here',\n 'background: blue; color: white; padding-left:10px;'\n );\n var toolbox = Blockly.getMainWorkspace().getToolbox();\n console.log(toolbox.getToolboxItems()[0]);\n}\nexport function myUpdateFunction(event) {\n var code = Blockly.JavaScript.workspaceToCode(Workspace);\n document.getElementById('textarea').value = code;\n if (code) {\n Workspace.addChangeListener(myUpdateFunction);\n }\n}\n\nexport function xmlToString(xmlData) {\n var xmlString;\n //IE\n if (window.ActiveXObject) {\n xmlString = xmlData.xml;\n }\n // code for Mozilla, Firefox, Opera, etc.\n else {\n xmlString = new XMLSerializer().serializeToString(xmlData);\n }\n return xmlString;\n}\n\nexport function SaveWorkSpace() {\n let WorkSpaceText;\n\n WorkSpaceSavedXml = Blockly.Xml.workspaceToDom(Blockly.getMainWorkspace());\n WorkSpaceText = xmlToString(WorkSpaceSavedXml);\n //document.getElementById('textarea').value = WorkSpaceText;\n\n if (WorkSpaceText != null) {\n document.getElementById('output').innerHTML = WorkSpaceText;\n }\n alert(WorkSpaceText);\n}\n\nexport function LoadWorkSpace() {\n let workspace = Blockly.getMainWorkspace();\n workspace.clear();\n if (WorkSpaceSavedXml) {\n Blockly.Xml.domToWorkspace(WorkSpaceSavedXml, workspace);\n }\n}\n\nexport function ClearWorkSpace() {\n let workspace = Blockly.getMainWorkspace();\n workspace.clear();\n}\n\nexport function ShowJS() { // mostra o codigo\n //Blockly.JavaScript.addReservedWords('code');\n //var code;\n //code = Blockly.JavaScript.workspaceToCode(Workspace);\n //var CodeText = xmlToString(code);\n //alert(\"Código Javascript\\n\\n\" + Code);\n WorkSpaceCodeJS = Blockly.JavaScript.workspaceToCode(Workspace);\n WorkSpaceCodeJS = fix_vars_declarations(WorkSpaceCodeJS);\n //console.log(WorkSpaceCodeJS);\n // editor.setValue(WorkSpaceCodeJS);\n\n // alert(\"LEGO >> Código Javascript gerado:\\n\\n\" + WorkSpaceCodeJS);\n return WorkSpaceCodeJS;\n}\n\nexport function exit_logic() {\n let WorkSpaceText;\n let WorkSpaceCodeJS = Blockly.JavaScript.workspaceToCode(Workspace);\n let WorkSpaceSavedXml = Blockly.Xml.workspaceToDom(\n Blockly.getMainWorkspace()\n );\n WorkSpaceText = xmlToString(WorkSpaceSavedXml);\n // alert(\"Código JS:\\n\\n\" + WorkSpaceCodeJS + \"\\nWorkSpace XML:\\n\\n\" + WorkSpaceText);\n return { payload: WorkSpaceCodeJS, xml: WorkSpaceText };\n}\n\nexport function show(ele) {\n // GET THE SELECTED VALUE FROM \n {variable?.name && variable?.vartype === '' && (\n {formErrors['varType']}\n )}\n \n\n {/* */}\n \n {!!showDelete && (\n \n handleRemoveVariable(index)}\n />\n \n )}\n \n {renderQuestions()}\n \n \n );\n}\n","import styled from 'styled-components';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const StyledMttGridMain = styled(MttGrid)`\n width: 100%;\n margin-top: 16px;\n`;\n\nexport const StyledMttTextField = styled(MttTextField)``;\n\nexport const StyledMttTypographyIdentificacao = styled(MttTypography)``;\n\nexport const StyledFooterGrid = styled(MttGrid)`\n width: calc(100% - 116px);\n\n margin: 0 42px;\n padding: 16px;\n border-radius: 4px;\n\n background-color: #f2f2f2;\n`;\n\nexport const StyledSwitchGrid = styled(MttGrid).attrs({\n container: true,\n item: true,\n xs: 6,\n})`\n display: flex;\n\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const StyledMttTypographyPerguntas = styled(MttTypography).attrs({\n children: 'Perguntas obrigatórias',\n variant: 'subtitle2',\n color: 'primary',\n})``;\n\nexport const StyledGridPerguntas = styled.div<{ showgrid: boolean }>`\n margin-top: 16px;\n\n display: ${(props) => (props.showgrid ? 'flex' : 'none')};\n flex-direction: column;\n justify-content: space-between;\n\n\n min-height: 128px;\n\n max-height: 192px;\n\n\tmargin-bottom: 16px;\n\n div {\n margin-bottom: 8px;\n height: 56px;\n }\n\n div:last-child {\n margin-bottom: 0px;\n }\n`;\n\nexport const StyledTextFieldPergunta = styled(TextField).attrs({\n label: 'Escreva uma pergunta',\n variant: 'outlined',\n})`\n background-color: #ffffff;\n width: 50%;\n`;\n\nexport const StyledTitleGrid = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n padding: 4px ​0px 8px 0px;\n`;\n\nexport const GridIconDelete = styled(MttGrid)`\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-left: 8px;\n cursor: pointer;\n`;\n\nexport const StyledComponent = styled(MttGrid).attrs({\n container: true,\n item: true,\n xs: 12,\n})`\n display: flex;\n`;\n\nexport const GridStyledManyOptions = styled(MttGrid)`\n margin-bottom: 8px;\n`;\n\nexport const StyledInputsGrid = styled(MttGrid)`\n width: 100%;\n display: flex;\n gap: 18px;\n\n div {\n flex-direction: row;\n }\n\n .MuiInputBase-input {\n background-color: #ffffff;\n\n &:focus {\n background-color: #ffffff;\n }\n }\n`;\n\nexport const ErrorWarning = styled.div`\n width: 100%;\n height: 50px;\n\n p {\n margin: 3px 0px 0px 5px;\n }\n`;\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const styles = {\n Container: styled.div``,\n VariablesBtn: styled.button`\n background: #6c50a4;\n border: none;\n border-radius: 3rem;\n color: white;\n height: 1rem;\n padding: 1rem;\n `,\n VariablesLine: styled.div`\n align-items: center;\n display: flex;\n `,\n MultiVariablesContainer: styled.div`\n height: 25vh;\n overflow-y: scroll;\n margin: 16px;\n `,\n};\n\nexport const StyledTitleGrid = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n padding: 16px 42px 8px 42px;\n`;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport { Variable } from 'models/DataFlow';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport VariavelIdentificacaoTextoUsuario from '../VariavelIdentificacaoTextoUsuario';\nimport { StyledMttTypographyIdentificacao } from '../VariableIndentificationTextUser/styles';\nimport AddIcon from '@material-ui/icons/Add';\nimport * as S from './styles';\nimport { MultiVarsProps } from './types';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst { VariablesLine, MultiVariablesContainer } = S.styles;\n\nexport default function MultiVars(props: MultiVarsProps) {\n const { showQuestions, showDelete } = props;\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const [variables, setVariables] = useState(dataForm?.inputs?.variables || []);\n\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.inputs?.userSentences) {\n if (dataForm.inputs) {\n dataForm.inputs.userSentences = ['', '', ''];\n }\n }\n\n if (dataForm && !dataForm?.inputs) {\n dataForm.inputs = {\n variables: [\n {\n name: '',\n questions: ['', '', ''],\n required: false,\n vartype: '',\n defaultValue: '',\n isList: false,\n value: '',\n },\n ],\n };\n dispatch({ type: 'updateForm', data: { dataForm } });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const renderVars = (variable: Variable, index: number) => {\n return (\n \n \n \n );\n };\n\n const handleAddVariable = (e: any) => {\n const variable = {\n name: '',\n vartype: '',\n value: '',\n required: false,\n questions: ['', '', ''],\n defaultValue: '',\n isList: false,\n };\n\n setVariables((prev) => [...prev, variable]);\n };\n\n useEffect(() => {\n if (!!dataForm && !!dataForm.inputs) dataForm.inputs.variables = variables;\n dispatch({ type: 'updateForm', data: { dataForm } });\n }, [dataForm, dispatch, variables]);\n\n return variables.length > 0 || dataForm?.intentType === 4 ? (\n <>\n \n \n {getTranslation('extractedVariables')}\n \n {dataForm?.intentType === 4 && (\n }\n onClick={handleAddVariable}\n >\n {getTranslation('addVariables')}\n \n )}\n \n \n {variables.map(renderVars)}\n \n \n ) : (\n <>\n );\n}\n","import { Grid } from \"@material-ui/core\";\nimport styled from \"styled-components\";\n\nexport const FormFieldsContainer = styled(Grid)`\n overflow-y: auto; \n max-height: 76vh;\n`\nexport const AnswersContainer = styled(Grid)`\n overflow-y: auto; \n`","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\n\nexport const HeaderContent = styled(MttGrid)`\n height: auto;\n display: flex;\n flex-direction: column;\n background-color: #f2f2f2;\n\n margin-top: 4px;\n\n padding: 16px;\n\n border-radius: 4px;\n\n .MuiInput-root {\n width: 256px;\n }\n`;\n\nexport const HeaderOptions = styled(MttGrid)`\n width: 100%;\n\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 16px;\n\n margin-bottom: 16px;\n`;\n\nexport const GridDescriptionText = styled(MttGrid)<{ disabled: boolean }>`\n .MuiFormControl-root {\n background-color: ${(props) => (props.disabled ? '#F2F2F2' : '#fff')};\n }\n`;\n\nexport const StyledMttTextField = styled(MttTextField)`\n background-color: white;\n`;\n","import MttGrid from 'components/Material/MttGrid/MttGrid';\nimport styled from 'styled-components';\n\nexport const TagHeaderContainer = styled.div`\n display: flex;\n align-items: start;\n flex-direction: column;\n min-width: 276px;\n gap: 8px;\n\n\t.MuiOutlinedInput-root {\n\t\tpadding: 16px;\n background: #fff\n\t}\n`;\n\nexport const SimilarityContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n\n gap: 8px;\n\n input {\n padding: 4px;\n }\n`;\n\nexport const ContentSynonyms = styled(MttGrid)`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nexport const GridSynonym = styled(MttGrid).attrs((props) => ({\n className: props.className,\n}))`\n height: 32px;\n\n margin-left: 8px;\n\n padding: 0 8px;\n margin: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n\n font-weight: 500;\n\n svg {\n margin: inherit;\n }\n`;\n\nexport const GridSynonymRegular = styled(GridSynonym)`\n background-color: #fff;\n`;\n","import { useState } from 'react';\nimport { IconButton, TextField } from '@material-ui/core';\nimport { Close } from '@material-ui/icons';\nimport {\n ContentSynonyms,\n GridSynonymRegular,\n SimilarityContainer,\n TagHeaderContainer,\n} from './styles';\nimport { useForm } from 'contexts/Form/formContext';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport function SimilarityComponent() {\n const { state, dispatch } = useForm();\n const { getTranslation } = useTranslator();\n const { dataForm } = state;\n\n const [inputValue, setInputValue] = useState('');\n\n const handleDeleteSynonym = (phraseIndex: number) => {\n if (!!dataForm && dataForm.outputs) {\n const values = dataForm?.tags || [];\n values.splice(phraseIndex, 1);\n dataForm.tags = values;\n dispatch({ type: 'updateForm', data: { dataForm } });\n }\n };\n\n const returnRegulars = (item: string, index: number) => {\n if (item === '') return <>;\n return (\n \n {item}\n handleDeleteSynonym(index)} size=\"small\">\n \n \n \n );\n };\n\n const handleInsertValue = (event: React.KeyboardEvent) => {\n if (!dataForm) return;\n\n const values = dataForm?.tags || [];\n\n if (event.keyCode === 13 || event.keyCode === 9) {\n if (inputValue !== '') {\n values.push(inputValue);\n }\n setInputValue('');\n const input = event.currentTarget.children[0]\n .children[0] as HTMLDivElement;\n input.blur();\n input.focus();\n dataForm.tags = values;\n dispatch({ type: 'updateForm', data: { dataForm } });\n }\n };\n\n return (\n \n \n
\n Adicione tags apertando TAB {getTranslation('or')}{' '}\n ENTER.\n
\n setInputValue(e.target.value)}\n variant=\"outlined\"\n placeholder=\"Digite uma tag para o bloco\"\n fullWidth\n onKeyDown={(e) => handleInsertValue(e)}\n />\n
\n \n {dataForm?.tags?.map((item, userSentenceIndex) =>\n returnRegulars(item, userSentenceIndex)\n )}\n \n
\n );\n}\n","import React from 'react';\n\nimport * as S from './style';\nimport { IInfoProps } from './types';\nimport { SimilarityComponent } from './SimilarityComponent';\nimport { Container, TitleTypography } from '../MessageForUser/styles';\n\nexport default function MultipleTags(props: IInfoProps) {\n return (\n \n \n Tags\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport MessageForUser from 'components/inputs/Material/MessageForUser/';\nimport MultiVars from 'components/inputs/Material/MultiVariables';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function Advanced() {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n}\n","export function arrayUnique(array: T[]) {\n var a = array.concat();\n for (var i = 0; i < a.length; ++i) {\n for (var j = i + 1; j < a.length; ++j) {\n if (a[i] === a[j]) a.splice(j--, 1);\n }\n }\n\n return a;\n}\n\nexport function arrayEquals(a: any[], b: any[]) {\n return (\n Array.isArray(a) &&\n Array.isArray(b) &&\n a.length === b.length &&\n a.every((val, index) => val === b[index])\n );\n}\n\nexport function arrayClone(array: T[]) {\n return [...array];\n}\n","export const REG_EXP_NOTATION =\n /\\[(\\s|[a-zà-úA-ZÀ-Ú0-9]|\\/|:)*\\]\\([a-zA-Z0-9_\\- ]*:@[a-zA-Z0-9_\\-.]*\\)/gi;\n\nexport const REG_EXP_SPAN =\n /(\\s|[a-zà-úA-ZÀ-Ú0-9]|\\/|:)*<\\/span>/gi;\n","import {\n IUserSentence,\n IUserSentenceParameter,\n} from 'components/inputs/Material/Sentences/types';\nimport { Variable } from 'models/DataFlow';\nimport { arrayClone } from '../ArrayFunctions';\nimport { REG_EXP_NOTATION, REG_EXP_SPAN } from './regExps';\n\nexport function mapperParametersFromSentencePieces(\n sentencePieces: RegExpMatchArray\n) {\n return sentencePieces.map((piece) => mapperParameterFromSentencePiece(piece));\n}\n\nexport function mapperParameterFromSentencePiece(\n piece: string\n): IUserSentenceParameter {\n const parsedPiece = piece.split('](');\n const resolvedValuePiece = parsedPiece.shift() ?? '';\n const entityValues = parsedPiece.shift() ?? '';\n const entityPieces = entityValues.split(':');\n const parameterName = entityPieces.shift() ?? '';\n const entityName = entityPieces.shift() ?? '';\n\n return {\n name: parameterName,\n entity: entityName.replace(')', ''),\n resolvedValue: resolvedValuePiece.replace('[', ''),\n };\n}\n\nexport function addVariableFromParameter(\n parameter: IUserSentenceParameter,\n variables: Variable[]\n) {\n if (!variables.some((item) => item.vartype === parameter.entity)) {\n variables.push({\n name: parameter.name,\n vartype: parameter.entity,\n value: parameter.entity,\n questions: ['', '', ''],\n isList: false,\n required: false,\n defaultValue: '',\n });\n }\n}\n\nexport function mapperDataFormInputsVariables(\n dataUserSentences: string[],\n dataVariables: Variable[]\n) {\n const userSentences = arrayClone(dataUserSentences);\n const variables = arrayClone(dataVariables);\n\n userSentences.forEach((userSentence) => {\n const pieces = userSentence?.match(REG_EXP_NOTATION);\n if (Array.isArray(pieces)) {\n const parameters = mapperParametersFromSentencePieces(pieces);\n parameters.forEach((parameter) => {\n addVariableFromParameter(parameter, variables);\n });\n }\n });\n\n return variables;\n}\n\nexport function createUserSentenceFromSentence(\n userSentence: string,\n variables: Variable[]\n): IUserSentence {\n const pieces = userSentence?.match(REG_EXP_NOTATION);\n let parameters: IUserSentenceParameter[] = [];\n let replacedPhrase = userSentence;\n\n if (Array.isArray(pieces)) {\n parameters = pieces.map((piece) => {\n const parameter = mapperParameterFromSentencePiece(piece);\n addVariableFromParameter(parameter, variables);\n const colorIndex = variables.findIndex(\n (variable) => variable.vartype === parameter.entity\n );\n\n const toReplaced = `${parameter.resolvedValue}`;\n replacedPhrase = replacedPhrase.replace(piece, toReplaced);\n\n return parameter;\n });\n }\n\n return {\n phrase: userSentence,\n replacedPhrase: replacedPhrase,\n parameters: parameters,\n };\n}\n\nexport function replaceSpanToNotation(\n editedPhrase: string,\n variables: Variable[]\n) {\n let phrase = editedPhrase;\n\n const pieces = editedPhrase.match(REG_EXP_SPAN);\n\n if (Array.isArray(pieces)) {\n pieces.forEach((piece) => {\n let resolvedValue = piece.replace(//gi, '');\n\n resolvedValue = resolvedValue.replace(/<\\/span>/gi, '');\n\n let colorPieces = piece.match(/color[0-9]/i);\n\n if (Array.isArray(colorPieces)) {\n const colorIndex = colorPieces[0].replace('color', '') ?? undefined;\n const variable = variables[parseInt(colorIndex)] ?? undefined;\n const pieceReplaced = `[${resolvedValue}](${variable?.name}:${variable?.vartype})`;\n phrase = phrase.replace(piece, pieceReplaced);\n }\n });\n }\n\n return phrase;\n}\n\nexport function convertRemoteVariable(type: { id: string; name: string }) {\n if (type.id.substring(0, 1) !== '@') {\n const insertAt = `${type.id.slice(0, 0)}${'@'}${type.id.slice(0)}`;\n let filteredValue = insertAt;\n type.id = filteredValue;\n }\n return type;\n}\n","import { createRef, useEffect } from 'react';\n\nexport function OutsideClick(props: { children: any; callback: () => void }) {\n const outsideAlerterRef = createRef();\n\n function handleClickOutside(event: any) {\n event.target.classList.contains('OptionsDropdown-option');\n if (\n outsideAlerterRef &&\n !outsideAlerterRef.current?.contains(event.target) &&\n !event.target.classList.contains('OptionsDropdown-option')\n ) {\n props.callback();\n }\n }\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n });\n\n return
{props.children}
;\n}\n","import styled, { css } from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\n\nexport const PaletteColorPhrases = css`\n .color0 {\n background: #ffd1af;\n }\n\n .color1 {\n background: #fffda6;\n }\n\n .color2 {\n background: #ffcdf6;\n }\n\n .color3 {\n background: #d2c1e1;\n }\n\n .color4 {\n background: #9fecfe;\n }\n\n .color5 {\n background: #afffc8;\n }\n\n .color6 {\n background: #d7ccc8;\n }\n\n .color7 {\n background: #dadfe3;\n }\n`;\n\nexport const Container = styled(MttGrid)`\n width: 100%;\n`;\n\nexport const StyledFrasesUsuario = styled(MttGrid)`\n height: 40px;\n margin:0 16px;\n margin-bottom: 8px;\n\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n`;\n\nexport const StyledMttTypographyFrase = styled(MttTypography).attrs({\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const StyleSentenceRow = styled.div``;\n\nexport const StyledContainerFrases = styled.div`\n margin: 0 16px;\n min-height: 126px;\n max-height: 175px;\n overflow-x: hidden;\n overflow-y: auto;\n\n padding: 16px;\n border-radius: 4px;\n\n background-color: #f2f2f2;\n\n ${StyleSentenceRow} {\n margin-bottom: 16px;\n }\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n\n div:last-child {\n margin-bottom: 0;\n }\n\n ${PaletteColorPhrases};\n`;\n\nexport const StyledItemFrases = styled(MttGrid)`\n display: grid;\n grid-template: 'Frase Icon';\n grid-template-columns: 1fr 56px;\n grid-gap: 8px;\n\n margin-bottom: 12px;\n\n position: relative;\n\n .FormatQuoteIcon {\n position: absolute;\n left: 10px;\n top: 5px;\n color: #3f51b5;\n }\n`;\n\nexport const GridTextField = styled(MttGrid)`\n width: 100%;\n height: 100%;\n\n div:first-child {\n background-color: #ffffff;\n }\n`;\n\nexport const GridDeleteIcon = styled(MttGrid)`\n width: 100%;\n height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const SentenceInput = styled.div`\n background-color: #fff;\n white-space: nowrap;\n display: block;\n padding: 10px;\n padding-left: 35px;\n`;\n","import {\n IconButton,\n Paper,\n Table,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { useForm } from 'contexts/Form/formContext';\nimport useTranslator from 'utils/hooks/Translator';\nimport { IUserSentence, IUserSentenceParameter } from '../types';\n\ntype Props = {\n sentence: IUserSentence;\n sentenceIndex: number;\n removeParameterFromIndex: (sentence: string, index: number) => void;\n};\n\nexport function SentenceParameters({\n sentence,\n sentenceIndex,\n removeParameterFromIndex,\n}: Props) {\n const { state } = useForm();\n const { dataForm } = state;\n\tconst {getTranslation} = useTranslator();\n\n function handleRemove(parameter: IUserSentenceParameter) {\n const { entity, name, resolvedValue } = parameter;\n const regexpPhrase = `[${resolvedValue}](${name}:${entity})`;\n removeParameterFromIndex(\n sentence.phrase.replace(regexpPhrase, resolvedValue),\n sentenceIndex\n );\n }\n\n function getVariableIndex(vartype: string) {\n let index = -1;\n\n if (!!dataForm && dataForm?.inputs) {\n index = dataForm.inputs.variables.findIndex(\n (variable) => variable.vartype === vartype\n );\n }\n\n return index;\n }\n\n return (\n \n \n \n \n {getTranslation('parameterName')}\n {getTranslation('menu.variables')}\n {getTranslation('resolvedValue')}\n \n \n {sentence.parameters.map((parameter: any) => (\n \n {parameter.name}\n \n {parameter.entity.replace('@', '')}\n \n {parameter.resolvedValue}\n \n {\n handleRemove(parameter);\n }}\n >\n \n \n \n \n ))}\n
\n
\n );\n}\n","import { InputAdornment, TextField } from '@material-ui/core';\nimport { Search as SearchIcon } from '@material-ui/icons';\nimport { Autocomplete } from '@material-ui/lab';\nimport { createRef, useEffect, useState } from 'react';\nimport './style.css';\n\ntype Props = {\n showModalVariables: boolean;\n setShowModalVariables: React.Dispatch>;\n definedPosition: boolean;\n setDefinedPosition: React.Dispatch>;\n onClose: any;\n remoteVariables: { id: string; name: string }[];\n};\n\nexport function ModalSearchVariables({\n showModalVariables,\n setShowModalVariables,\n definedPosition,\n setDefinedPosition,\n onClose,\n remoteVariables,\n}: Props) {\n const contentRef = createRef();\n\n function onGetMousePosition(event: any) {\n const { target } = event;\n if (showModalVariables && !definedPosition)\n setModalVariablesPosition(contentRef.current, target, event);\n }\n\n function setModalVariablesPosition(\n modalVariables: HTMLDivElement | null,\n target: HTMLElement,\n event: any\n ) {\n const domRect = target.getBoundingClientRect();\n\n modalVariables?.setAttribute(\n 'style',\n `top: ${domRect.y}px;\n left: ${event.pageX}px;\n position: fixed;\n z-index: 999;\n `\n );\n\n setDefinedPosition(true);\n }\n\n useEffect(() => {\n document.addEventListener('mouseup', onGetMousePosition);\n\n return () => {\n document.removeEventListener('mouseup', onGetMousePosition);\n };\n });\n\n const [type, setType] = useState('');\n\n function handleSetType(\n event: React.ChangeEvent<{\n name?: string | undefined;\n textContent: string;\n }>\n ) {\n setShowModalVariables(false);\n\n if (!!event.target.textContent) {\n const variableType = event.target.textContent;\n onClose(variableType);\n }\n }\n\n if (!showModalVariables) return <>;\n\n return (\n
\n setType(type || '')}\n options={remoteVariables?.map((entity) => entity.name) || []}\n noOptionsText={`Sem resultados`}\n getOptionLabel={(option) => option}\n renderOption={(option, { selected }) => (\n {option}\n )}\n onChange={(event: any, newValue: string | null) => {\n event.stopPropagation();\n event.preventDefault();\n handleSetType(event);\n }}\n style={{ width: '300px', flex: 1 }}\n renderInput={(params) => (\n \n \n \n ),\n }}\n />\n )}\n />\n
\n );\n}\n","import { createRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport FormatQuoteIcon from '@material-ui/icons/FormatQuote';\n\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { useForm } from 'contexts/Form/formContext';\nimport { GetEntities } from 'services/EntityService';\nimport {\n convertRemoteVariable,\n createUserSentenceFromSentence,\n replaceSpanToNotation,\n} from 'utils/Sentences';\n\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { OutsideClick } from 'components/OutsideClick';\n\nimport {\n Container,\n SentenceInput,\n StyledContainerFrases,\n StyledFrasesUsuario,\n StyledItemFrases,\n StyledMttTypographyFrase,\n StyleSentenceRow,\n} from './styles';\nimport { ISentencesProps } from './types';\nimport { SentenceParameters } from './SentenceParameters';\nimport { ModalSearchVariables } from './ModalSearchVariables';\nimport { IconButton } from '@material-ui/core';\nimport useTranslator from 'utils/hooks/Translator';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\nlet allEntities = [\n { id: '@sys.any', name: 'qualquer-input' },\n { id: '@sys.email', name: 'input-de-email' },\n { id: '@sys.number', name: 'input-de-numero' },\n { id: '@sys.date-time', name: 'input-de-data' },\n { id: '@sys.url', name: 'input-de-url' },\n];\n\nexport default function Sentences(props: ISentencesProps) {\n const { title, bot_name, numberOfUserSentences } = props;\n const { state, dispatch } = useForm();\n const { state: stateFlow } = useFlow();\n const { hasPermissionToAction } = usePermissions();\n\n const { dataForm } = state;\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.inputs) {\n const userSentences = !!numberOfUserSentences\n ? [...Array(numberOfUserSentences).fill('')]\n : ['', '', ''];\n\n dataForm.inputs = {\n userSentences,\n variables: [],\n };\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const regExpEspaceBeforeSpan = /(\\s| )<\\/span>/;\n\n function handleChangeSentence(editedPhrase: string, sentenceIndex: number) {\n if (regExpEspaceBeforeSpan.test(editedPhrase)) {\n changeSentenceWithBlanckSpace(editedPhrase, sentenceIndex);\n } else {\n changeSentence(editedPhrase, sentenceIndex);\n }\n }\n\n function changeSentence(editedPhrase: string, sentenceIndex: number) {\n editedPhrase = editedPhrase.replace(regExpEspaceBeforeSpan, '
');\n\n const phrase = replaceSpanToNotation(\n editedPhrase,\n dataForm?.inputs?.variables ?? []\n );\n\n updateDataFormUserSentence(phrase, sentenceIndex);\n }\n\n function changeSentenceWithBlanckSpace(\n editedPhrase: string,\n sentenceIndex: number\n ) {\n editedPhrase = editedPhrase.replace(\n regExpEspaceBeforeSpan,\n '
 '\n );\n const phrase = replaceSpanToNotation(\n editedPhrase,\n dataForm?.inputs?.variables ?? []\n );\n\n updateDataFormUserSentence(phrase, sentenceIndex);\n }\n\n function updateDataFormUserSentence(\n updatedSentence: string,\n sentenceIndex: number\n ) {\n if (!!dataForm && dataForm.inputs?.userSentences) {\n const phrases =\n dataForm.inputs?.userSentences.map((sentence, i) =>\n i === sentenceIndex ? updatedSentence : sentence\n ) || [];\n\n dataForm.inputs.userSentences = phrases;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n\n const handleDeleteFrase = (index: number) => {\n if (!!dataForm && dataForm.inputs) {\n const inputPhrases =\n dataForm.inputs.userSentences?.filter((_, i) => i !== index) || [];\n dataForm.inputs.userSentences = inputPhrases;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleAddSentences = () => {\n if (dataForm) {\n if (dataForm.inputs?.userSentences) {\n dataForm.inputs.userSentences.push('');\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const [caretPositionTimeout, setCaretPositionTimeout] =\n useState();\n const [showActionsParameters, setShowActionsParameters] = useState(\n []\n );\n\n function removeParameterFromSentenceIndex(sentence: string, index: number) {\n const userSentences = dataForm?.inputs?.userSentences ?? [];\n\n const clone = [...userSentences];\n clone[index] = sentence;\n\n if (!!dataForm?.inputs) {\n dataForm.inputs.userSentences = clone;\n dataForm.inputs.variables = dataForm.inputs.variables.splice(index, 1);\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n\n const { dispatch: dispatchApp } = useApp();\n const { botName } = stateFlow;\n const [selectedSentenceIndex, setSelectedSentenceIndex] = useState();\n const [showModalVariables, setShowModalVariables] = useState(false);\n const [definedPosition, setDefinedPosition] = useState(false);\n const [selectedText, setSelectedText] = useState();\n const [remoteVariables, setRemoteVariables] = useState<\n { id: string; name: string }[]\n >([]);\n\n function onGetSelection(event: any) {\n event.preventDefault();\n let text = '';\n\n const selection = window?.getSelection();\n\n const tagName = selection?.anchorNode?.parentElement?.tagName;\n const focusTagName = selection?.focusNode?.parentElement?.tagName;\n\n text = selection?.toString().trim() ?? '';\n const isValidOpen = !!text && !showModalVariables;\n const isEqualsSpan =\n !!selection?.focusNode?.parentNode &&\n selection?.anchorNode?.parentNode?.isEqualNode(\n selection?.focusNode?.parentNode\n );\n const isValidSelection =\n tagName !== 'SPAN' ||\n (tagName === 'SPAN' && focusTagName === 'SPAN' && !isEqualsSpan);\n\n if (isValidOpen && isValidSelection) {\n setShowModalVariables(true);\n setDefinedPosition(false);\n setSelectedText(text);\n }\n }\n\n const wrapperRef = createRef();\n\n useEffect(() => {\n const wrapperCurrent = wrapperRef.current;\n wrapperCurrent?.addEventListener('mouseup', onGetSelection);\n\n return () => {\n wrapperCurrent?.removeEventListener('mouseup', onGetSelection);\n };\n });\n\n function onSelectVariableType(variableType: string) {\n const isValidSelectedSentence =\n typeof selectedSentenceIndex !== 'undefined' && !!selectedText;\n\n if (isValidSelectedSentence) {\n const userSentences = dataForm?.inputs?.userSentences ?? [];\n const sentence = userSentences[selectedSentenceIndex];\n const userSentence = createUserSentenceFromSentence(\n sentence,\n dataForm?.inputs?.variables ?? []\n );\n\n let cleanSentence = sentence;\n\n const oldParameters: any[] = [];\n\n userSentence.parameters.forEach((parameter) => {\n oldParameters.push(parameter);\n\n const { entity, name, resolvedValue } = parameter;\n const regexpPhrase = `[${resolvedValue}](${name}:${entity})`;\n cleanSentence = cleanSentence.replace(regexpPhrase, resolvedValue);\n });\n\n const newParameters = oldParameters.filter(\n (parameter) => !selectedText?.includes(parameter.resolvedValue)\n );\n\n const extractedVariableIndex = getExtractedVariableIndex(variableType);\n const variables = dataForm?.inputs?.variables ?? [];\n const variable = variables[extractedVariableIndex];\n\n if (!!variable)\n newParameters.push({\n name: variable.name,\n entity: variable.vartype,\n resolvedValue: selectedText,\n });\n\n newParameters.forEach(({ entity, name, resolvedValue }) => {\n cleanSentence = cleanSentence.replace(\n resolvedValue,\n `[${resolvedValue}](${name}:${entity})`\n );\n });\n if (!!dataForm && !!dataForm?.inputs) {\n if (!Array.isArray(dataForm.inputs.userSentences)) {\n dataForm.inputs.userSentences = [cleanSentence];\n } else {\n dataForm.inputs.userSentences[selectedSentenceIndex] = cleanSentence;\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }\n\n function getExtractedVariableIndex(variableType: string) {\n let extractedVariableIndex = -1;\n\n const extractedVariables = dataForm?.inputs?.variables ?? [];\n const isExtractedVariableIncludesVariable = extractedVariables.some(\n (variable) => variable.vartype.includes(variableType)\n );\n\n if (isExtractedVariableIncludesVariable) {\n extractedVariableIndex = extractedVariables.findIndex((variable) =>\n variable.vartype.includes(variableType)\n );\n } else {\n const remoteVariable = remoteVariables.find(\n (variable) => variable.name === variableType\n );\n\n const extractedVariable = extractedVariables.find((variable) =>\n variable.vartype.includes(remoteVariable?.id ?? '')\n );\n\n if (!!extractedVariable) {\n extractedVariableIndex = extractedVariables.findIndex(\n (variable) => variable.vartype === remoteVariable?.id\n );\n } else if (!!remoteVariable) {\n const variable = convertRemoteVariable(remoteVariable);\n const currentVartype = variable.id;\n\n extractedVariables.push({\n name: variable.name,\n vartype: currentVartype,\n value: '$' + variable.name,\n questions: ['', '', ''],\n isList: false,\n required: false,\n defaultValue: '',\n });\n\n extractedVariableIndex = extractedVariables.length - 1;\n }\n }\n\n if (!!dataForm && !!dataForm?.inputs) {\n dataForm.inputs.variables = extractedVariables;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n\n return extractedVariableIndex;\n }\n\n async function remoteGetEntities() {\n let currBot = botName || bot_name;\n\n if (currBot) {\n let result = await GetEntities({ bot_name: currBot || '' }, dispatchApp);\n if (result.Success) {\n if (!!result.Data) {\n const entities = result.Data;\n const cloneEntities = [\n ...allEntities,\n ...entities.map((entity) => ({\n id: entity.name,\n name: entity.name,\n })),\n ].sort(function (a, b) {\n return a.name > b.name ? 1 : b.name > a.name ? -1 : 0;\n });\n setRemoteVariables(cloneEntities);\n }\n }\n } else {\n setRemoteVariables(allEntities);\n }\n }\n\n useEffect(() => {\n remoteGetEntities();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [botName]);\n\n type CaretPositionChildIndex = {\n position: number;\n childNodeIndex: number | undefined;\n element: ParentNode | null | undefined;\n };\n\n function getCaretPositionAndChildNodeIndex(\n editableDiv: Node\n ): CaretPositionChildIndex {\n let selection: Selection | null;\n let range: Range;\n\n let position = 0;\n let childNodeIndex: number | undefined;\n let element: ParentNode | null | undefined;\n\n if (window.getSelection) {\n selection = window.getSelection();\n if (selection && selection.rangeCount) {\n range = selection.getRangeAt(0);\n\n childNodeIndex = Array.from(editableDiv.childNodes).findIndex(\n (childNode) =>\n childNode.nodeValue === range.commonAncestorContainer.nodeValue\n );\n\n if (childNodeIndex === -1) {\n childNodeIndex = findIndexFromElement(\n editableDiv.childNodes,\n range.commonAncestorContainer.parentNode\n );\n\n element = range.commonAncestorContainer.parentNode;\n }\n position = range.endOffset;\n }\n }\n\n return {\n position,\n childNodeIndex,\n element,\n };\n }\n\n function findIndexFromElement(\n array: NodeListOf,\n element: ParentNode | null\n ) {\n return Array.prototype.findIndex.call(array, (item) => {\n return item === element;\n });\n }\n\n const contentEditableRef = useRef(\n []\n ) as React.MutableRefObject;\n\n function setCaretPosition(\n { position, childNodeIndex, element }: CaretPositionChildIndex,\n content: HTMLElement | null\n ) {\n try {\n const range = document.createRange();\n const selection = window.getSelection();\n\n const hasSelectionAndContent = selection && content;\n const isValidChildNodeIndex =\n typeof childNodeIndex === 'number' && childNodeIndex >= 0;\n const isFirstContent = childNodeIndex === -1 || !isValidChildNodeIndex;\n\n if (hasSelectionAndContent) {\n let currentContent = content;\n\n if (isValidChildNodeIndex) {\n if (!!element) {\n const nodes = content.querySelectorAll('span');\n const index = Array.from(nodes).findIndex((node) => {\n return node.innerText === element.textContent;\n });\n\n if (!!nodes[index] && nodes[index].childNodes) {\n range.setStart(nodes[index].childNodes[0], position);\n currentContent = nodes[index];\n }\n } else {\n const childNode = content.childNodes[childNodeIndex];\n\n range.setStart(childNode, position);\n }\n } else if (isFirstContent) {\n range.setStart(content.childNodes[0], position);\n }\n\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n console.log(selection);\n currentContent.focus();\n }\n } catch (error: any) {\n console.log('setCaret', error.message);\n }\n }\n\n return (\n \n \n \n {title || getTranslation('userEntryPhrases')}\n \n {hasPermissionToAction({\n company: stateFlow.companyName || '',\n agent: stateFlow.botName || '',\n action: ['flow:write'],\n }) && (\n }\n onClick={handleAddSentences}\n >\n {getTranslation('addNewPhrase')}\n \n )}\n \n \n {dataForm?.inputs?.userSentences?.map((sentence, sentenceIndex) => {\n const userSentence = createUserSentenceFromSentence(\n sentence,\n dataForm?.inputs?.variables ?? []\n );\n\n return (\n \n {\n setShowActionsParameters([]);\n const clone = [];\n clone[sentenceIndex] = true;\n setShowActionsParameters(clone);\n }}\n >\n \n setSelectedSentenceIndex(sentenceIndex)}\n ref={(el) => {\n if (!!el) {\n contentEditableRef.current[sentenceIndex] = el;\n }\n }}\n onPaste={(e: any) => {\n e.preventDefault();\n let phrase = (e.originalEvent || e).clipboardData.getData(\n 'text'\n );\n phrase = phrase.replace(/(<.+?(?=>)>)/g, '');\n updateDataFormUserSentence(phrase, sentenceIndex);\n }}\n onInput={(event) => {\n if (caretPositionTimeout) {\n clearTimeout(caretPositionTimeout);\n }\n\n const currentTarget = event.currentTarget;\n let { innerHTML: editedPhrase } = currentTarget;\n\n let caretPosition =\n getCaretPositionAndChildNodeIndex(currentTarget);\n\n const content = contentEditableRef.current[sentenceIndex];\n\n if (regExpEspaceBeforeSpan.test(editedPhrase)) {\n handleChangeSentence(editedPhrase, sentenceIndex);\n setCaretPosition(caretPosition, content);\n } else {\n const timeout = setTimeout(() => {\n handleChangeSentence(editedPhrase, sentenceIndex);\n setCaretPosition(caretPosition, content);\n }, 500);\n setCaretPositionTimeout(timeout);\n }\n }}\n />\n {hasPermissionToAction({\n company: stateFlow.companyName || '',\n agent: stateFlow.botName || '',\n action: ['flow:write'],\n }) && (\n handleDeleteFrase(sentenceIndex)}\n >\n \n \n )}\n \n\n {showActionsParameters[sentenceIndex] && (\n \n )}\n \n );\n })}\n \n\n {!props.disabledVariables && (\n {\n if (showModalVariables) {\n setShowModalVariables(false);\n }\n }}\n >\n \n \n )}\n \n );\n}\n","import React from 'react';\n\nimport { SvgIconTypeMap } from '@material-ui/core';\nimport { OverridableComponent } from '@material-ui/core/OverridableComponent';\nimport * as Icons from '@material-ui/icons';\n\nconst DefaultIcon = Icons.HelpOutline;\n\nexport type TKeyIcon = keyof typeof Icons;\ninterface IIcons {\n [key: string]: OverridableComponent<\n SvgIconTypeMap, 'svg'>\n >;\n}\n\nexport function Icon(\n iconName: TKeyIcon\n): OverridableComponent, 'svg'>> {\n const TypedIcons: IIcons = Icons;\n const SelectedIcon = TypedIcons[iconName];\n return SelectedIcon || DefaultIcon;\n}\n\nexport function getIcon(iconName: TKeyIcon): JSX.Element {\n const TypedIcons: IIcons = Icons;\n const SelectedIcon = TypedIcons[iconName];\n return SelectedIcon ? (\n \n ) : (\n \n );\n}\n","import React from 'react';\n\nimport {\n ClickAwayListener,\n createStyles,\n Grow,\n IconButton,\n makeStyles,\n MenuItem,\n MenuList,\n Paper,\n Popper,\n Tooltip,\n} from '@material-ui/core';\n\nimport IIconButtonWithMenuListProps, {\n IOptionMenuList,\n} from '../IconButtonWithMenuList/types';\nimport { getIcon } from '../Icons';\n\nconst useStyles = makeStyles(() =>\n createStyles({\n root: {\n backgroundColor: 'transparent',\n },\n list: {\n backgroundColor: 'transparent',\n paddingLeft: 0,\n paddingRight: 100,\n },\n })\n);\n\nconst SpeedDialWithMenuList: React.FC = (\n props: IIconButtonWithMenuListProps\n) => {\n const { iconName, options } = props;\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const classes = useStyles();\n\n function handleMenuListOpen(event: React.MouseEvent) {\n setAnchorEl(anchorEl ? null : event.currentTarget);\n }\n\n function handleMenuListClose() {\n setAnchorEl(null);\n }\n\n function renderOptions(option: IOptionMenuList, index: number) {\n return (\n {\n if (\n typeof props?.referenceIndex === 'number'\n && typeof option?.actionToReference === 'function'\n )\n option?.actionToReference(props?.referenceIndex);\n\n else if (!!option?.action) option?.action();\n }}\n className={classes.list}\n >\n \n <>\n \n {option.iconName && getIcon(option.iconName)}\n \n {option.label}\n \n \n \n );\n }\n\n return (\n <>\n \n {getIcon(iconName)}\n \n \n {({ TransitionProps, placement }) => (\n \n \n \n \n {options.map(renderOptions)}\n \n \n \n \n )}\n \n \n );\n};\n\nexport default SpeedDialWithMenuList;\n","import { Grid, Typography } from \"@material-ui/core\";\nimport styled from \"styled-components\";\nimport MttButton from \"components/Material/MttButton/MttButton\";\nimport MttGrid from \"components/Material/MttGrid/MttGrid\";\n\n\nexport const ContainerDialog = styled(MttGrid)<{colorHeader?: string}>`\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display:flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const ModalTitle = styled(Typography).attrs({\n variant:'h6'\n})`\n color:#6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 5px 0;\n width:100%;\n \n .MuiInputBase-input {\n padding: 16px;\n border: solid 1px rgba(0, 0, 0, 0.1);\n }\n .MuiInputBase-input::-webkit-input-placeholder {\n color: #000;\n opacity: 0.9;\n }\n .MuiInput-underline:before{\n display: none;\n }\n`;\n\nexport const MoreVariable = styled(Grid)`\n display:flex;\n align-items: center;\n padding: 6px 0;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: bold; \n }\n`\n\nexport const ButtonContainer = styled(Grid)`\n padding: 16px 0;\n width:100%; \n display:flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\n","import React, { ChangeEvent } from 'react';\n\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport {\n Dialog,\n Slide,\n Switch,\n FormControlLabel,\n FormControl,\n InputLabel,\n OutlinedInput,\n} from '@material-ui/core';\n\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport './styles.css';\nimport {\n ContainerDialog,\n ContainerHeader,\n Button,\n ButtonContainer,\n ModalTitle,\n FieldContainer,\n MoreVariable,\n} from './styles';\n\nimport { IModalVariableAdvancedProps } from './types';\nimport { useForm } from 'contexts/Form/formContext';\nimport { validateVarNames } from 'utils/String';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalVariableAdvanced(\n props: IModalVariableAdvancedProps\n) {\n const classes = useStyles();\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const variable = dataForm?.inputs?.variables[props.index];\n\n function handleClose() {\n props.handleCloseModal();\n }\n\n const handleChangeFields =\n (key: 'value' | 'defaultValue') => (e: ChangeEvent) => {\n if (dataForm && variable) {\n const value = String(e.target.value);\n if (key === 'value') {\n const filteredValue = validateVarNames(e, key, true);\n variable.isValueEdited = true;\n variable[key] = '$' + filteredValue.replace('$', '');\n } else {\n variable[key] = value;\n }\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n const handleChangeMoreThanOneVariable = () => {\n if (dataForm && variable) {\n variable['isList'] = !variable['isList'];\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n if (!props.open) return <>;\n\n return (\n \n \n \n Opções avançadas\n \n \n \n \n \n \n \n $ValorVariavel\n \n \n \n \n \n \n \n Valor padrão\n \n \n \n \n \n \n }\n label=\"Mais de uma variável?\"\n />\n \n \n props.handleCloseModal()}\n >\n Salvar Definições\n \n \n \n \n );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport {\n FormControl,\n FormHelperText,\n Grid,\n InputLabel,\n MenuItem,\n Select,\n Switch,\n} from '@material-ui/core';\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\nimport ForumIcon from '@material-ui/icons/Forum';\n\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { useForm } from 'contexts/Form/formContext';\nimport { GetEntities } from 'services/EntityService';\nimport {\n createUserSentenceFromSentence,\n mapperDataFormInputsVariables,\n} from 'utils/Sentences';\nimport {\n replaceAlphaNumericAndUndescoreDash,\n validateVarNames,\n} from 'utils/String';\nimport CircularDeleteButton from 'components/CircularDeleteButton/index';\nimport { IOptionMenuList } from 'components/IconButtonWithMenuList/types';\nimport SpeedDialWithMenuList from 'components/SpeedDialWithMenuList';\n\nimport ModalVariableAdvanced from './ModalVariableAdvanced';\nimport {\n ErrorWarning,\n GridIconDelete,\n StyledFooterGrid,\n StyledGridPerguntas,\n StyledInputsGrid,\n StyledMttGridMain,\n StyledMttTextField,\n StyledMttTypographyIdentificacao,\n StyledMttTypographyPerguntas,\n StyledTextFieldPergunta,\n StyledTitleGrid,\n} from './styles';\nimport { propsData } from './types';\n\nconst errorMessages = {\n notExistsVariable: (variable: string) =>\n `A variavel ${variable} ainda não foi criada.`,\n equalsName: 'O nome do parâmetro deve ser único dentro da ação.',\n emptyName: 'O nome do parâmetro não pode ser vazio.',\n};\n\nconst defaultVariableValue = {\n name: '',\n vartype: '',\n value: '',\n isValueEdited: false,\n questions: [''],\n defaultValue: '',\n isList: false,\n required: false,\n};\n\nexport default function VariableIndentificationTextUser(props: propsData) {\n const { botName } = useFlow().state;\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const { dispatch: dispatchApp } = useApp();\n\n const { index, showTitle, showQuestions } = props;\n const variables = dataForm?.inputs?.variables || [\n {\n ...defaultVariableValue,\n },\n ];\n const variable = dataForm?.inputs?.variables[index];\n\n const [extractedVariables, setExtractVariables] = useState(variables);\n const [types, setTypes] = useState<{ id: string; name: string }[]>([]);\n const [openAdvancedModal, setOpenAdvancedModal] = useState(false);\n\n useEffect(() => {\n async function load() {\n let allTypes = [\n { id: '@sys.any', name: 'qualquer-input' },\n { id: '@sys.email', name: 'input-de-email' },\n { id: '@sys.number', name: 'input-de-numero' },\n { id: '@sys.date-time', name: 'input-de-data' },\n { id: '@sys.url', name: 'input-de-url' },\n ];\n\n if (botName) {\n let result = await GetEntities({ bot_name: botName }, dispatchApp);\n if (result.Success) {\n if (!!result.Data) {\n const entities = result.Data;\n allTypes = [\n ...allTypes,\n ...entities.map((entity) => ({\n id: entity.name,\n name: entity.name,\n })),\n ].sort(function (a, b) {\n return a.name > b.name ? 1 : b.name > a.name ? -1 : 0;\n });\n\n allTypes.map((type) => {\n if (type.id.substring(0, 1) !== '@') {\n const insertAt = `${type.id.slice(0, 0)}${'@'}${type.id.slice(\n 0\n )}`;\n let filteredValue = insertAt;\n type.id = filteredValue;\n }\n return allTypes;\n });\n }\n }\n }\n setTypes(allTypes);\n }\n load();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [botName]);\n\n const load = useCallback(() => {\n if (dataForm && dataForm.inputs) {\n const currentVariables = dataForm.inputs?.variables ?? [];\n\n const variables = mapperDataFormInputsVariables(\n dataForm.inputs?.userSentences ?? [],\n currentVariables\n );\n\n setExtractVariables(variables);\n }\n }, [dataForm]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeInput =\n (key: 'value' | 'name' | 'vartype', index: number) =>\n (e: React.ChangeEvent<{ name?: string | undefined; value: unknown }>) => {\n if (dataForm && variable) {\n const value = String(e.target.value) ?? 'selecione-tipo';\n\n let filteredValue = validateVarNames(e, key, true);\n const selectedVariable = dataForm?.inputs?.variables[index];\n\n if (key === 'vartype' && !!selectedVariable) {\n const regExp = new RegExp(selectedVariable.vartype, 'ig');\n\n if (!!dataForm && !!dataForm?.inputs) {\n dataForm.inputs.userSentences =\n dataForm.inputs.userSentences?.map((sentence) =>\n sentence.replace(regExp, filteredValue)\n ) ?? [];\n }\n } else if (key === 'name' && !extractedVariables[index].isValueEdited) {\n extractedVariables[index]['value'] = '$' + value;\n }\n extractedVariables[index][key] = filteredValue;\n\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n const handleQuestion = (value: string, varIndex: number, index: number) => {\n if (variable && dataForm) {\n variables[varIndex].questions[index] = value;\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n const handleShowPerguntas = (index: number) => {\n if (variable && dataForm) {\n const curVar = variables[index];\n if (curVar) {\n curVar.required = !curVar.required;\n\t\t\t\t\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n }\n };\n\n const handleRemoveVariable = (index: number) => {\n const selectedVariable = variables[index];\n const sentences =\n dataForm?.inputs?.userSentences?.map((sentence) =>\n createUserSentenceFromSentence(sentence, variables)\n ) ?? [];\n\n sentences.forEach((sentence, sentenceIndex) => {\n const parameters = sentence.parameters.filter(\n (parameter) => parameter.entity === selectedVariable.vartype\n );\n\n parameters.forEach((parameter) => {\n const { entity, name, resolvedValue } = parameter;\n const regexpPhrase = `[${resolvedValue}](${name}:${entity})`;\n\n removeParameterFromSentenceIndex(\n sentence.phrase.replace(regexpPhrase, resolvedValue),\n sentenceIndex\n );\n });\n });\n\n variables.splice(index, 1);\n setExtractVariables(variables);\n\n dispatch({ type: 'updateForm', data: { dataForm } });\n };\n\n function removeParameterFromSentenceIndex(sentence: string, index: number) {\n const userSentences = dataForm?.inputs?.userSentences ?? [];\n\n const clone = [...userSentences];\n clone[index] = sentence;\n\n if (!!dataForm?.inputs) {\n dataForm.inputs.userSentences = clone;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n\n const options: IOptionMenuList[] = [\n {\n label: 'Avançado',\n iconName: 'Settings',\n actionToReference: openModal,\n },\n {\n label: 'Cancelar',\n iconName: 'Cancel',\n action: () => {\n setOpenAdvancedModal(false);\n },\n },\n ];\n\n const [selectedIndexVariable, setSelectedIndexVariable] = useState();\n\n function openModal(indexVariableModal: number) {\n setSelectedIndexVariable(indexVariableModal);\n setOpenAdvancedModal(true);\n }\n\n const renderQuestions = (varIndex: number) => {\n if (!showQuestions) return <>;\n return (\n \n {variables[varIndex]?.questions.map((perg, index) => {\n return (\n handleQuestion(e.target.value, varIndex, index)}\n value={perg}\n fullWidth\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n );\n })}\n \n );\n };\n\n function handleChangeVariableName(name: string, variableIndex: number) {\n name = replaceAlphaNumericAndUndescoreDash(name);\n\n const oldName = variables[variableIndex].name;\n const regExp = new RegExp(`\\\\(${oldName}\\\\:`, 'gi');\n const userSentences = dataForm?.inputs?.userSentences ?? [];\n const hasSentences = userSentences.some((sentence) =>\n regExp.test(sentence)\n );\n\n if (hasSentences) {\n const replacedSentences = userSentences.map((sentence) =>\n sentence.replace(regExp, `(${name}:`)\n );\n\n if (!!dataForm?.inputs) {\n dataForm.inputs.userSentences = replacedSentences;\n }\n }\n\n if (!variables[variableIndex].isValueEdited) {\n variables[variableIndex]['value'] = '$' + name;\n }\n\n variables[variableIndex].name = name;\n\n if (!!dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n\n function getErrorsInVariable(variableIndex: number) {\n const errors: string[] = [];\n const variable = extractedVariables[variableIndex];\n\n const notExistsVariable = !types.some(\n (extractedVariable) => extractedVariable.id === variable.vartype\n );\n const isEmptyName = variable.name === '';\n const isEqualsName = extractedVariables.some(\n (extractedVariable, extractedVariableIndex) =>\n extractedVariable.name === variable.name &&\n extractedVariableIndex !== variableIndex\n );\n\n if (isEmptyName) errors.push(errorMessages.emptyName);\n\n if (notExistsVariable)\n errors.push(errorMessages.notExistsVariable(variable.vartype));\n\n if (isEqualsName) errors.push(errorMessages.equalsName);\n\n return errors;\n }\n\n return (\n <>\n {!!showTitle && variables.length > 0 && (\n \n \n \n )}\n \n {extractedVariables.map((extractedVar, index) => {\n const errors = getErrorsInVariable(index);\n const hasError = errors.length > 0;\n return (\n <>\n \n \n \n handleChangeVariableName(e.target.value, index)\n }\n fullWidth\n />\n\n \n \n Tipos\n \n \n \n {types.map((type, index) => (\n \n {type.name}\n \n ))}\n \n\n {hasError && (\n \n \n {errors.map((error) => (\n
  • {error}
  • \n ))}\n \n
    \n )}\n
    \n\n \n\n {/* {!!showDelete && ( */}\n \n handleRemoveVariable(index)}\n />\n \n {/* )} */}\n
    \n
    \n\n {showQuestions && (\n \n handleShowPerguntas(index)}\n color=\"primary\"\n />\n \n \n )}\n {renderQuestions(index)}\n
    \n \n );\n })}\n
    \n\n {typeof selectedIndexVariable === 'number' && (\n setOpenAdvancedModal(false)}\n />\n )}\n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Sentences from 'components/inputs/Material/Sentences';\nimport Info from 'components/inputs/Material/Info/index';\nimport VariableIndentificationTextUser from 'components/inputs/Material/VariableIndentificationTextUser/index';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MessageForUser from 'components/inputs/Material/MessageForUser/index';\nimport { Grid } from '@material-ui/core';\n\nexport default function ChildMultipleChoice() {\n return (\n <>\n \n \n \n \n \n \n \n {/* */}\n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\n\nexport const Container = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const ContentBody = styled(MttGrid)`\n background-color: #f2f2f2;\n padding: 16px;\n\n border-radius: 4px;\n .MuiFormControl-fullWidth {\n background-color: #fff;\n }\n`;\n\nexport const StyledMttTypography = styled(MttTypography).attrs({\n children: 'Conteúdo do Carrossel',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const GridTextField = styled(MttGrid)`\n width: 100%;\n`;\n\nexport const BoxHeader = styled(MttGrid)`\n display: block;\n`;\n\nexport const RadioGrid = styled(MttGrid)`\n width: 100%;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n padding: 8px 0;\n`;\n\nexport const GridContainerInfos = styled(MttGrid)`\n width: 100%;\n display: flex;\n grid-template-columns: 1fr 200px 70px;\n grid-gap: 8px;\n`;\n\nexport const GridInfos = styled(MttGrid)`\n height: 120px;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-bottom: 15px;\n\n .MuiOutlinedInput-input {\n background-color: #fff;\n }\n`;\n\nexport const GridInfosFirstLine = styled(MttGrid)`\n width: 100%;\n\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 8px;\n`;\n\nexport const StyledMttTextField = styled(MttTextField)``;\n\nexport const ContainerMedia = styled(MttGrid)`\n width: 180px;\n height: 120px;\n\n margin: auto 0;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n background-color: #aeaeae;\n color: #ffffff;\n`;\n\nexport const StyledDeleteGrid = styled(MttGrid)`\n width: 46px;\n height: 46px;\n color: #ffffff;\n background-color: #6c50a4;\n\n margin: auto 0;\n border-radius: 100px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n cursor: pointer;\n`;\n","import React, { useCallback, useEffect } from 'react';\nimport * as S from './styles';\nimport AddIcon from '@material-ui/icons/Add';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { useForm } from 'contexts/Form/formContext';\nimport { Output } from 'models/DataFlow';\nimport TextField from '@material-ui/core/TextField/TextField';\nimport InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\nimport FormatQuoteIcon from '@material-ui/icons/FormatQuote';\nimport { FormControlLabel, Radio, RadioGroup } from '@material-ui/core';\nimport EListType from 'enums/EListType';\n\nexport default function CarouselContent() {\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n\n const load = useCallback(() => {\n if (dataForm) {\n if (!dataForm.inputs) {\n dataForm.inputs = {\n userSentences: [''],\n variables: [\n {\n name: '',\n vartype: '',\n questions: ['', '', ''],\n required: false,\n defaultValue: '',\n isList: false,\n value: '',\n },\n ],\n };\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n if (!dataForm.outputs || !dataForm.outputs.length) {\n dataForm.outputs = [{ title: '' }];\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n if (!dataForm.sendUser) {\n dataForm.sendUser = {\n message: '',\n };\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChange = (\n key: keyof Omit,\n index: number,\n e: React.ChangeEvent\n ) => {\n if (!!dataForm && dataForm.outputs) {\n const output = dataForm.outputs[index];\n output[key] = e.target.value;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleRemoveChoise = (index: number) => {\n if (!!dataForm && dataForm.outputs) {\n const outputs = dataForm.outputs.filter((_, i) => i !== index);\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n outputs,\n },\n },\n });\n }\n };\n\n const handleChangeTitle = (e: React.ChangeEvent) => {\n if (!!dataForm && !!dataForm.sendUser) {\n const { value } = e.target;\n\n dataForm.sendUser.message = value;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const renderCarouselItem = (choise: Output, index: number) => {\n return (\n \n \n \n ) =>\n handleChange('title', index, e)\n }\n error={!!formErrors[`outputs[${index}].title`]}\n helperText={formErrors[`outputs[${index}].title`]}\n />\n ) =>\n handleChange('url', index, e)\n }\n />\n \n ) =>\n handleChange('description', index, e)\n }\n />\n \n {choise.title.toLowerCase() !== 'outros' && (\n handleRemoveChoise(index)}>\n \n \n )}\n \n );\n };\n\n const handleAddChoise = () => {\n if (dataForm) {\n if (dataForm.outputs) {\n const other = dataForm.outputs.find(\n (o) => o.title.toLowerCase() === 'outros'\n );\n const newOutputs = dataForm.outputs.filter(\n (o) => o.title.toLowerCase() !== 'outros'\n );\n newOutputs.push({\n title: '',\n });\n if (other) {\n newOutputs.push(other);\n }\n dataForm.outputs = newOutputs;\n } else {\n dataForm.outputs = [{ title: '' }];\n }\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeOrientation = () => {\n if (dataForm) {\n dataForm.listType =\n dataForm.listType === EListType.Horizontal\n ? EListType.Vertical\n : EListType.Horizontal;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n return (\n \n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n \n }\n label=\"Carrossel horizontal\"\n />\n }\n label=\"Carrossel Vertical\"\n />\n \n \n }\n onClick={handleAddChoise}\n >\n Adicionar Elemento\n \n \n\n {dataForm?.outputs?.map(renderCarouselItem)}\n \n \n );\n}\n","import React from 'react';\nimport CarouselContent from 'components/inputs/Material/CarouselContent/index';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function Carousel() {\n return (\n <>\n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Sentences from 'components/inputs/Material/Sentences/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport MessageForUser from 'components/inputs/Material/MessageForUser/index';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport { Grid } from '@material-ui/core';\nimport VariableIndentificationTextUser from 'components/inputs/Material/VariableIndentificationTextUser';\n\nexport default function InitialFlow() {\n return (\n <>\n \n \n \n \n\n \n \n \n {/* */}\n \n \n \n );\n}\n","import FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Sentences from 'components/inputs/Material/Sentences/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport VariableIndentificationTextUser from 'components/inputs/Material/VariableIndentificationTextUser';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MessageForUser from 'components/inputs/Material/MessageForUser/index';\nimport { Grid } from '@material-ui/core';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function ChildMultipleChoice() {\n return (\n <>\n \n \n \n\n \n \n \n \n \n {/* */}\n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const StyledMttTypographyFrase = styled(MttTypography)``;\n\nexport const ContainerButton = styled(MttGrid)`\n justify-content: flex-end;\n display: flex;\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n max-height: 192px;\n\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ContentTitlesGrid = styled(MttGrid)`\n display: flex;\n\n margin-top: 8px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const StyledMttTextField = styled(TextField)``;\n\nexport const StyledDeleteIconGrid = styled(MttGrid)`\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-left: 16px;\n cursor: pointer;\n`;\n","import Checkbox from '@material-ui/core/Checkbox/Checkbox';\nimport FormControlLabel from '@material-ui/core/FormControlLabel/FormControlLabel';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport AddIcon from '@material-ui/icons/Add';\nimport * as S from './styles';\nimport { IItensMultEscolha } from './types';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { Output } from 'models/DataFlow';\nimport CircularDeleteButton from 'components/CircularDeleteButton/index';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function ItensMultiplaEscolha(props: IItensMultEscolha) {\n const [checkBox, setCheckBox] = useState(false);\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.outputs) {\n dataForm.outputs = [{ title: '' }];\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n } else if (dataForm && !!dataForm.outputs) {\n setCheckBox(dataForm.outputs.some((output) => output.isChip));\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeTitle = (\n index: number,\n e: React.ChangeEvent\n ) => {\n if (!!dataForm && dataForm.outputs) {\n const output = dataForm.outputs[index];\n output.title = e.target.value;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleRemoveChoise = (index: number) => {\n if (!!dataForm && dataForm.outputs) {\n const outputs = dataForm.outputs.filter((_, i) => i !== index);\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n outputs,\n },\n },\n });\n }\n };\n\n const renderChoise = (choise: Output, index: number) => {\n return (\n \n ) => {\n handleChangeTitle(index, e);\n }}\n error={!!formErrors[`outputs[${index}].title`]}\n helperText={formErrors[`outputs[${index}].title`]}\n />\n \n {choise.title.toLowerCase() !== 'outros' && (\n handleRemoveChoise(index)}\n />\n )}\n \n \n );\n };\n\n const handleAddChoise = () => {\n if (dataForm) {\n if (dataForm.outputs) {\n const other = dataForm.outputs.find(\n (o) => o.title.toLowerCase() === 'outros'\n );\n const newOutputs = dataForm.outputs.filter(\n (o) => o.title.toLowerCase() !== 'outros'\n );\n newOutputs.push({\n title: '',\n });\n if (other) {\n newOutputs.push(other);\n }\n dataForm.outputs = newOutputs;\n } else {\n dataForm.outputs = [{ title: '' }];\n }\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeButtons = () => {\n setCheckBox(!checkBox);\n if (!!dataForm && dataForm.outputs) {\n const outputs = dataForm.outputs;\n\n outputs.forEach((output) => {\n if (output.isChip) delete output.isChip;\n else output.isChip = true;\n });\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n outputs,\n },\n },\n });\n }\n };\n\n return (\n \n \n {getTranslation('multipleChoiceItems')}\n \n \n \n }\n onClick={handleAddChoise}\n >\n {getTranslation('addNewPhrase')}\n \n \n \n }\n label={getTranslation('createButtonsAutomatically')}\n />\n {dataForm?.outputs?.map(renderChoise)}\n \n \n );\n}\n","import Info from 'components/inputs/Material/Info/index';\nimport MessageForUser from 'components/inputs/Material/MessageForUser/index';\nimport MultipleChoiceItems from 'components/inputs/Material/MultipleChoiceItems/index';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport React from 'react';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function MultipleChoiceParent() {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { FormControl, InputLabel,FormHelperText , MenuItem, Select } from \"@material-ui/core\";\n\n\nimport { IMttSelectFieldProps } from \"./types\";\n\nconst MttSelectField: React.FC = (\n props: IMttSelectFieldProps\n) => {\n const {\n name,\n label,\n value,\n options,\n required,\n error,\n errorMessage,\n disabled,\n fullWidth,\n children,\n\t\tplaceholder,\n onChange,\n } = props;\n return (\n \n \n {label}\n \n \n \n {`${placeholder} ${label ? label : \"Item\"}`}\n \n {options?.map((option, index) => (\n \n {option.name}\n \n ))}\n {children && {children}}\n \n {errorMessage}\n \n );\n};\n\nexport default MttSelectField;\n","import styled from \"styled-components\";\nimport MttGrid from \"components/Material/MttGrid/MttGrid\";\nimport MttTypography from \"components/Material/MttTypography/MttTypography\";\n\nexport const Container = styled(MttGrid)`\n width: calc(100% - 84px);\n margin: 16px 42px 16px;\n`;\n\nexport const StyledMttTypography = styled(MttTypography)``;\n\nexport const Content = styled(MttGrid)`\n width: calc(100% - 32px);\n margin-top: 8px;\n\n padding: 16px;\n background-color: #f2f2f2;\n border-radius: 4px;\n\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 16px;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n\n &:focus {\n background-color: #ffffff;\n }\n }\n`;\n","import React, { useCallback, useEffect } from 'react';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { useForm } from 'contexts/Form/formContext';\nimport { Linked } from 'models/DataFlow';\nimport DataFormModel from 'models/DataFormModel';\nimport { GetGroup } from 'services/FlowService';\nimport useTranslator from 'utils/hooks/Translator';\nimport { TSelectOption } from 'components/Material/MttSelect/types';\nimport MttSelectField from 'components/Material/MttSelectField/MttSelectField';\nimport { TSelectChangeEvent } from 'components/Material/MttSelectField/types';\nimport { Container, Content, StyledMttTypography } from './styles';\n\nexport default function ToNewIntention() {\n const { groupsNames, botName } = useFlow().state;\n const { state, dispatch } = useForm();\n const { dataForm, formErrors, intents } = state;\n const { dispatch: dispatchApp } = useApp();\n const { getTranslation } = useTranslator();\n\n const getIntentsByGroupId = useCallback(\n async (groupId: string) => {\n if (groupId) {\n const result = await GetGroup(\n {\n bot_name: botName || '',\n groupName: groupId,\n },\n dispatchApp\n );\n\n if (result.Success && !!result.Data.data.blocks.drawflow) {\n const data = result.Data.data.blocks.drawflow.Home.data;\n const keys = Object.keys(data);\n return keys\n .filter((key) => {\n const dataModel = new DataFormModel(data[Number(key)].data);\n return !dataModel.isChild() && !dataModel.isOthers();\n })\n .map((key) => {\n const { name } = data[Number(key)].data;\n return {\n id: name,\n name,\n };\n });\n }\n }\n\n return [];\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [botName]\n );\n\n const load = useCallback(async () => {\n if (!!dataForm && !dataForm?.linked) {\n dataForm.linked = {\n groupId: '',\n intentId: '',\n };\n dispatch({ type: 'updateForm', data: { dataForm } });\n }\n }, [dataForm, dispatch]);\n\n const getIntents = async () => {\n const intents = await getIntentsByGroupId(dataForm?.linked?.groupId || '');\n dispatch({ type: 'updateForm', data: { intents } });\n };\n\n useEffect(() => {\n getIntents();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeSelect =\n (key: keyof Linked) => async (e: TSelectChangeEvent) => {\n if (dataForm?.linked) {\n dataForm.linked[key] = String(e.target.value);\n delete state.formErrors[`linked.${key}`];\n if (key === 'groupId') {\n state.intents = await getIntentsByGroupId(dataForm.linked[key]);\n }\n dispatch({ type: 'updateForm', data: state });\n }\n };\n\n return (\n \n \n {getTranslation('jumpToAnotherBlock')}\n \n \n {\n return { id: group, name: group } as TSelectOption;\n })}\n error={!!formErrors['linked.groupId']}\n errorMessage={formErrors['linked.groupId']}\n onChange={handleChangeSelect('groupId')}\n placeholder={getTranslation('selectOne')}\n />\n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons';\nimport Info from 'components/inputs/Material/Info';\nimport ToNewIntention from 'components/inputs/Material/ToNewIntention';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function NewGroup() {\n return (\n <>\n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const StyledMttGridMain = styled(MttGrid)`\n width: 100%;\n`;\n\nexport const StyledMttTextField = styled(MttTextField)`\n max-height: 54px;\n`;\n\nexport const StyledMttTypographyIdentificacao = styled(MttTypography).attrs({\n children: 'Perguntas ao usuário',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const StyledFooterGrid = styled(MttGrid).attrs({\n container: true,\n xs: 12,\n spacing: 1,\n})`\n margin: 0 42px;\n padding: 16px;\n border-radius: 4px;\n\n background-color: #f2f2f2;\n`;\n\nexport const StyledSwitchGrid = styled(MttGrid).attrs({\n container: true,\n item: true,\n xs: 6,\n})`\n display: flex;\n\n align-items: center;\n`;\n\nexport const StyledMttTypographyPerguntas = styled(MttTypography).attrs({\n children: 'Perguntas obrigatórias',\n variant: 'subtitle2',\n color: 'primary',\n})``;\n\nexport const StyledGridPerguntas = styled(MttGrid).attrs({\n item: true,\n xs: 12,\n})<{ showgrid?: boolean }>`\n padding-top: 16px;\n margin-top: 16px;\n display: ${(props) => (props.showgrid ? 'flex' : 'none')};\n flex-direction: column;\n justify-content: space-between;\n\n min-height: 178px;\n max-height: 252px;\n\n div {\n margin-bottom: 8px;\n height: 56px;\n }\n\n div:last-child {\n margin-bottom: 0px;\n }\n`;\n\nexport const StyledTextFieldPergunta = styled(TextField).attrs({\n label: 'Escreva uma pergunta',\n variant: 'outlined',\n})`\n background-color: #ffffff;\n width: 50%;\n`;\n\nexport const StyledInputsGrid = styled(MttGrid)`\n width: 100%;\n display: flex;\n gap: 18px;\n margin-bottom: 20px;\n\n div {\n flex-direction: row;\n }\n\n .MuiInputBase-input {\n background-color: #ffffff;\n\n &:focus {\n background-color: #ffffff;\n }\n }\n`;\n\nexport const StyledTitleGrid = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n padding: 4px ​0px 8px 0px;\n`;\n\nexport const GridIconDelete = styled(MttGrid)`\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-left: 8px;\n cursor: pointer;\n`;\n\nexport const StyledComponent = styled(MttGrid).attrs({\n container: true,\n item: true,\n xs: 12,\n})`\n display: flex;\n`;\n\nexport const GridStyledManyOptions = styled(MttGrid)`\n margin-bottom: 8px;\n`;\n\nexport const ErrorWarning = styled.div`\n width: 100%;\n margin-bottom: 10px;\n height: 50px;\n\n p {\n margin: 3px 0px 0px 5px;\n }\n`;\n\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const styles = {\n Container: styled.div``,\n VariablesBtn: styled.button`\n background: #6c50a4;\n border: none;\n border-radius: 3rem;\n color: white;\n height: 1rem;\n padding: 1rem;\n `,\n VariablesLine: styled.div`\n align-items: center;\n display: flex;\n `,\n MultiVariablesContainer: styled.div`\n height: 25vh;\n overflow-y: scroll;\n margin: 0 16px;\n `,\n};\n\nexport const StyledTitleGrid = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n padding: 16px 42px 8px 16px;\n`;\n\n","import { Grid, Typography } from \"@material-ui/core\";\nimport styled from \"styled-components\";\nimport MttButton from \"components/Material/MttButton/MttButton\";\nimport MttGrid from \"components/Material/MttGrid/MttGrid\";\n\n\nexport const ContainerDialog = styled(MttGrid)<{colorHeader?: string}>`\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display:flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const ModalTitle = styled(Typography).attrs({\n variant:'h6'\n})`\n color:#6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 5px 0;\n width:100%;\n \n .MuiInputBase-input {\n padding: 16px;\n border: solid 1px rgba(0, 0, 0, 0.1);\n }\n .MuiInputBase-input::-webkit-input-placeholder {\n color: #000;\n opacity: 0.9;\n }\n .MuiInput-underline:before{\n display: none;\n }\n`;\n\nexport const MoreVariable = styled(Grid)`\n display:flex;\n align-items: center;\n padding: 6px 0;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: bold; \n }\n`\n\nexport const ButtonContainer = styled(Grid)`\n padding: 16px 0;\n width:100%; \n display:flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\n","import React, { ChangeEvent } from 'react';\n\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport {\n Dialog,\n Slide,\n Switch,\n FormControlLabel,\n FormControl,\n InputLabel,\n OutlinedInput,\n} from '@material-ui/core';\n\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport './styles.css';\nimport {\n ContainerDialog,\n ContainerHeader,\n Button,\n ButtonContainer,\n ModalTitle,\n FieldContainer,\n MoreVariable,\n} from './styles';\n\nimport { IModalVariableAdvancedProps } from './types';\nimport { useForm } from 'contexts/Form/formContext';\nimport { validateVarNames } from 'utils/String';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalVariableAdvanced(\n props: IModalVariableAdvancedProps\n) {\n const classes = useStyles();\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const variable = dataForm?.inputs?.variables[props.index];\n\n function handleClose() {\n props.handleCloseModal();\n }\n\n const handleChangeFields =\n (key: 'value' | 'defaultValue') => (e: ChangeEvent) => {\n if (dataForm && variable) {\n const value = String(e.target.value);\n if (key === 'value') {\n const filteredValue = validateVarNames(e, key, true)\n variable.isValueEdited = true;\n variable[key] = '$' + filteredValue.replace('$', '');\n } else {\n variable[key] = value;\n }\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n const handleChangeMoreThanOneVariable = () => {\n if (dataForm && variable) {\n variable['isList'] = !variable['isList'];\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n if (!props.open) return <>;\n\n return (\n \n \n \n Opções avançadas\n \n \n \n \n \n \n \n $ValorVariavel\n \n \n \n \n \n \n \n Valor padrão\n \n \n \n \n \n \n }\n label=\"Mais de uma variável?\"\n />\n \n \n props.handleCloseModal()}\n >\n Salvar Definições\n \n \n \n \n );\n}\n","import InputAdornment from '@material-ui/core/InputAdornment/InputAdornment';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport ForumIcon from '@material-ui/icons/Forum';\nimport {\n StyledFooterGrid,\n StyledGridPerguntas,\n StyledInputsGrid,\n StyledMttGridMain,\n StyledMttTextField,\n StyledMttTypographyIdentificacao,\n StyledTextFieldPergunta,\n} from './styles';\n\nimport { useForm } from 'contexts/Form/formContext';\nimport { propsData } from './types';\n\nimport { GridIconDelete, ErrorWarning } from './styles';\nimport {\n FormControl,\n FormHelperText,\n InputLabel,\n MenuItem,\n Select,\n} from '@material-ui/core';\nimport CircularDeleteButton from 'components/CircularDeleteButton/index';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport SpeedDialWithMenuList from 'components/SpeedDialWithMenuList';\nimport { IOptionMenuList } from 'components/IconButtonWithMenuList/types';\nimport ModalVariableAdvanced from './ModalVariableAdvanced';\nimport { GetEntities } from 'services/EntityService';\nimport { validateVarNames } from 'utils/String';\nimport { useApp } from 'contexts/App/appContext';\n\nexport default function UserQuestions(props: propsData) {\n const { botName } = useFlow().state;\n const { state, dispatch } = useForm();\n const { dispatch: dispatchApp } = useApp();\n const { dataForm, formErrors } = state;\n\n const { index, showDelete, showTitle } = props;\n const variables = dataForm?.inputs?.variables || [];\n const variable = dataForm?.inputs?.variables[index];\n\n const [types, setTypes] = useState<{ id: string; name: string }[]>([]);\n const [openAdvancedModal, setOpenAdvancedModal] = useState(false);\n\n useEffect(() => {\n async function load() {\n let allTypes = [\n { id: '@sys.any', name: 'qualquer-input' },\n { id: '@sys.email', name: 'input-de-email' },\n { id: '@sys.number', name: 'input-de-numero' },\n { id: '@sys.date-time', name: 'input-de-data' },\n { id: '@sys.url', name: 'input-de-url' },\n ];\n\n if (botName) {\n let result = await GetEntities(\n { bot_name: botName || '' },\n dispatchApp\n );\n if (result.Success) {\n if (!!result.Data) {\n const entities = result.Data;\n allTypes = [\n ...allTypes,\n ...entities.map((entity) => ({\n id: entity.name,\n name: entity.name,\n })),\n ].sort(function (a, b) {\n return a.name > b.name ? 1 : b.name > a.name ? -1 : 0;\n });\n\n allTypes.map((type) => {\n if (type.id.substring(0, 1) !== '@') {\n const insertAt = `${type.id.slice(0, 0)}${'@'}${type.id.slice(\n 0\n )}`;\n let filteredValue = insertAt;\n type.id = filteredValue;\n }\n return allTypes;\n });\n }\n }\n }\n setTypes(allTypes);\n }\n load();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [botName]);\n\n const load = useCallback(() => {\n if (dataForm && dataForm.inputs && !dataForm.inputs.variables.length) {\n dataForm.inputs = {\n variables: [\n {\n name: '',\n vartype: '',\n questions: ['', '', ''],\n required: false,\n defaultValue: '',\n isList: false,\n value: '',\n },\n ],\n };\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeInput =\n (key: 'value' | 'name' | 'vartype') =>\n (e: React.ChangeEvent<{ name?: string | undefined; value: unknown }>) => {\n if (dataForm && variable) {\n const value = validateVarNames(e, key, true);\n\n if (dataForm.dataBlockly) {\n dataForm.dataBlockly.payload = dataForm.dataBlockly?.payload.replaceAll(\n `$${variable['name']}`,\n `$${value}`\n );\n }\n\n if (key === 'name' && !variable.isValueEdited) {\n variable['value'] = '$' + value;\n }\n variable[key] = value;\n\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n const handleQuestion = (value: string, index: number) => {\n if (variable && dataForm) {\n variable.questions[index] = value;\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n const handleRemoveVariable = (index: number) => {\n variables.splice(index, 1);\n dispatch({ type: 'updateForm', data: { dataForm } });\n };\n\n const options: IOptionMenuList[] = [\n {\n label: 'Avançado',\n iconName: 'Settings',\n action: () => {\n setOpenAdvancedModal(true);\n },\n },\n {\n label: 'Cancelar',\n iconName: 'Cancel',\n action: () => {\n setOpenAdvancedModal(false);\n },\n },\n ];\n\n const renderQuestions = () => {\n return (\n <>\n \n {variable?.questions.map((perg, index) => {\n return (\n handleQuestion(e.target.value, index)}\n value={perg}\n fullWidth\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n );\n })}\n \n \n );\n };\n\n return (\n \n {!!showTitle && }\n \n \n \n\n \n \n Tipos\n \n \n \n \n Selecione um Tipo\n \n {types.map((type, index) => (\n \n {type.name}\n \n ))}\n \n {variable?.name && variable?.vartype === '' && (\n {formErrors['varType']}\n )}\n \n \n \n {!!showDelete && (\n \n handleRemoveVariable(index)}\n />\n \n )}\n \n {renderQuestions()}\n \n setOpenAdvancedModal(false)}\n />\n \n );\n}\n","import React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport { Variable } from 'models/DataFlow';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { StyledMttTypographyIdentificacao } from '../UserQuestions/styles';\nimport AddIcon from '@material-ui/icons/Add';\nimport * as S from './styles';\nimport { MultiVarsProps } from './types';\nimport UserQuestions from '../UserQuestions';\n\nconst { VariablesLine, MultiVariablesContainer } = S.styles;\n\nexport default function MultiVarsQuestions(props: MultiVarsProps) {\n const { showQuestions, showDelete, indexsRequired } = props;\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const variables = dataForm?.inputs?.variables || [];\n\n const load = useCallback(() => {\n if (dataForm && !dataForm?.inputs) {\n dataForm.inputs = {\n variables: [\n {\n name: '',\n questions: ['', '', ''],\n required: true,\n vartype: '',\n defaultValue: '',\n isList: false,\n value: '',\n },\n ],\n };\n dispatch({ type: 'updateForm', data: { dataForm } });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const renderVars = (variable: Variable, index: number) => {\n const canRemove = !indexsRequired?.includes(index);\n return (\n \n \n \n );\n };\n\n const handleAddVariable = () => {\n variables.push({\n name: '',\n vartype: '',\n value: '',\n required: true,\n questions: ['', '', ''],\n defaultValue: '',\n isList: false,\n });\n\n dispatch({ type: 'updateForm', data: { dataForm } });\n };\n\n return (\n <>\n \n \n }\n onClick={handleAddVariable}\n >\n adicionar variáveis\n \n \n \n {variables.map(renderVars)}\n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\n\nexport const Container = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const HeaderContent = styled(MttGrid)`\n width: calc(100% - 32px);\n min-height: 128px;\n\n display: flex;\n background-color: #f2f2f2;\n padding: 16px;\n\n margin-top: 8px;\n border-radius: 4px;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const HeaderOptions = styled(MttGrid)`\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const MessageInputContainer = styled(MttGrid)`\n .MuiOutlinedInput-multiline {\n background: #ffffff;\n padding: 0;\n height: 100px;\n margin-bottom: 16px;\n }\n`;\n\nexport const StyledMttTextField = styled(MttTextField)``;\n\nexport const TitleTypography = styled(MttTypography).attrs({\n children: 'Mensagem após resposta do usuário',\n variant: 'h6',\n color: 'primary',\n})``;\n","import React from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport { SendUser } from 'models/DataFlow';\nimport * as S from './styles';\n\nexport default function MessageForUser() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n\n const handleChangeInput = (\n key: keyof SendUser,\n e: React.ChangeEvent\n ) => {\n if (dataForm) {\n const value = e.target.value;\n\n dataForm.sendUser = dataForm.sendUser\n ? dataForm.sendUser\n : { message: '', url: '' };\n\n dataForm.sendUser[key] = value;\n dispatch({\n type: 'updateForm',\n data: { dataForm: { ...dataForm } },\n });\n }\n };\n\n return (\n \n \n \n \n \n handleChangeInput('message', e)}\n maxRows={3}\n multiline\n />\n \n handleChangeInput('url', e)}\n />\n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport MultiVariablesQuestions from 'components/inputs/Material/MultiVariablesQuestions';\nimport MessageAfterUserReply from 'components/inputs/Material/MessageAfterUserReply';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function QuestionsAndAnswers() {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorheader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n .MuiAppBar-colorPrimary {\n background-color: ${(props) =>\n props.colorheader ? `#${props.colorheader}` : '#6c50a4'};\n position: absolute;\n }\n`;\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport MessageForUser from 'components/inputs/Material/MessageForUser/index';\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function Welcome() {\n return (\n <>\n \n \n {/* */}\n \n {/* */}\n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\n// import MessageForUser from 'components/inputs/Material/MessageForUser';\n// import RulesBlockContent from 'components/inputs/Material/RulesBlockContent';\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function Fallback() {\n return (\n <>\n \n \n {/* */}\n {/* */}\n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\n// import MessageForUser from 'components/inputs/Material/MessageForUser';\n// import RulesBlockContent from \"components/inputs/Material/RulesBlockContent\";\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function Cancel() {\n return (\n <>\n \n \n {/* */}\n {/* */}\n \n \n \n );\n}\n","import React, { useCallback, useEffect } from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport MessageForUser from 'components/inputs/Material/MessageForUser';\nimport { useForm } from 'contexts/Form/formContext';\n\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function Others() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n\n const load = useCallback(() => {\n if (dataForm) {\n if (!dataForm.inputs) {\n dataForm.inputs = {\n userSentences: [''],\n variables: [\n {\n name: '',\n vartype: '',\n questions: ['', '', ''],\n required: false,\n defaultValue: '',\n isList: false,\n value: '',\n },\n ],\n };\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n if (!dataForm.attempts || !dataForm.attempts.length) {\n dataForm.attempts = [\n { msg: '', action: '' },\n { msg: '', action: '' },\n { msg: '', action: '' },\n ];\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n if (!dataForm.attempts) {\n dataForm.attempts = [\n {\n msg: '',\n action: '',\n },\n {\n msg: '',\n action: '',\n },\n {\n msg: '',\n action: '',\n },\n ];\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n return (\n <>\n \n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\n\nexport const Container = styled(MttGrid)`\n margin: 8px 42px 0;\n`;\n\nexport const HeaderContent = styled(MttGrid)`\n margin-top: 8px;\n`;\n\nexport const ContainerSwitch = styled.div``;\n\nexport const HeaderOptions = styled(MttGrid)`\n width: 100%;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const StyledMttTextField = styled(MttTextField)``;\n\nexport const TitleTypography = styled(MttTypography).attrs({\n children: 'Exportar dados para planilha',\n variant: 'h6',\n color: 'primary',\n})``;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport Switch from '@material-ui/core/Switch';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport {\n Container,\n HeaderContent,\n HeaderOptions,\n TitleTypography,\n} from './styles';\n// import { useFlow } from 'contexts/Flow/flowContext';\n// import GetVarsFlowController from 'controllers/intent/GetVarsFlowController';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n },\n container: {\n maxHeight: 450,\n backgroundColor: '#f2f2f2',\n },\n});\n\ninterface Column {\n id: 'gravar' | 'tipo' | 'nomeVariavel' | 'nomeColuna';\n label: string;\n minWidth?: number;\n align?: 'right';\n format?: (value: number) => string;\n}\n\nconst ExportDataSpreadSheet: React.FC = () => {\n // const {state} = useFlow()\n const [stateSwitch, setStateSwitch] = React.useState({\n checkedA: true,\n });\n const classes = useStyles();\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n\n const columns: Column[] = [\n { id: 'gravar', label: 'Gravar', minWidth: 50 },\n { id: 'tipo', label: 'Tipo', minWidth: 70 },\n {\n id: 'nomeVariavel',\n label: 'Nome da variável',\n minWidth: 100,\n },\n {\n id: 'nomeColuna',\n label: 'Nome da coluna',\n minWidth: 200,\n },\n ];\n\n interface Data {\n gravar: JSX.Element;\n tipo: string;\n nomeVariavel: string;\n nomeColuna: string;\n }\n\n function createData(\n gravar: JSX.Element,\n tipo: string,\n nomeVariavel: string,\n nomeColuna: string\n ): Data {\n return { gravar, tipo, nomeColuna, nomeVariavel };\n }\n\n const handleChange = (event: React.ChangeEvent) => {\n setStateSwitch({\n ...stateSwitch,\n [event.target.name]: event.target.checked,\n });\n };\n\n const rows = [\n createData(\n ,\n 'Bloco',\n 'cep',\n 'CEP Cli'\n ),\n ];\n\n const handleChangePage = (event: unknown, newPage: number) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (\n event: React.ChangeEvent\n ) => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n\n // useEffect(()=>{\n // if(state.editorFlow){\n // const blocks = state.editorFlow.drawflow.drawflow.Home.data;\n // const vars = new GetVarsFlowController(blocks).getVars();\n\t\t\t\n // }\n // },[state.editorFlow])\n\n return (\n \n \n \n \n \n \n \n \n \n {columns.map((column) => (\n \n {column.label}\n \n ))}\n \n \n \n {rows\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((row) => {\n return (\n \n {columns.map((column) => {\n const value = row[column.id];\n return (\n \n {column.format && typeof value === 'number'\n ? column.format(value)\n : value}\n \n );\n })}\n \n );\n })}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default ExportDataSpreadSheet;\n","import styled from 'styled-components';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 24px 42px 0;\n`;\n\nexport const StyledMttTypographyFrase = styled(MttTypography).attrs({\n children: 'Excel ou CSV',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n max-height: 192px;\n\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ContentTitlesGrid = styled(MttGrid)`\n display: flex;\n\n margin-top: 8px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const StyledMttTextField = styled(TextField)``;\n\nconst styles = {\n Container: styled.div`\n border: 2px solid #cfc5e2;\n border-radius: 3rem;\n display: flex;\n margin: 1rem;\n `,\n ChoicesContent: styled.div`\n background: #b6bad9;\n border-radius: 3rem;\n display: flex;\n flex-direction: column;\n height: 20vh;\n overflow-y: scroll;\n `,\n ChoicesLine: styled.div`\n span {\n font-size: 2em;\n }\n `,\n ButtonsContent: styled.div`\n span {\n font-weight: 600;\n\n i {\n font-style: normal;\n font-size: 0.8em;\n }\n }\n `,\n};\n\nexport default styles;\n","import { FormControlLabel, Switch } from '@material-ui/core';\nimport React from 'react';\nimport {\n ContentGrid,\n ContentTitlesGrid,\n GridContainer,\n StyledMttTextField,\n StyledMttTypographyFrase,\n} from './styles';\n\nconst ExcelOrCSV: React.FC = () => {\n return (\n \n \n \n {}}\n color=\"primary\"\n name=\"check\"\n inputProps={{ 'aria-label': 'secondary checkbox' }}\n />\n }\n label=\"Permitir download para Excel ou CSV \"\n />\n \n {}}\n />\n \n \n \n );\n};\n\nexport default ExcelOrCSV;\n","import styled from 'styled-components';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 24px 42px 0;\n`;\n\nexport const StyledMttTypographyFrase = styled(MttTypography).attrs({\n children: 'Google Sheet',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const StyledMttTypographyFooter = styled(MttTypography).attrs({\n children: 'Clique aqui para ver como se ativa essa funcionalidade',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const StyledTitleFooterClick = styled.div`\n font-size: 20px;\n color: #6c50a4;\n font-weight: bold;\n margin-right: 4px;\n`;\n\nexport const ContainerTitleFooter = styled.div`\n flex-direction: row;\n display: flex;\n align-items: center;\n margin-top: 8px;\n`;\n\nexport const StyledTitleFooter = styled.div`\n font-size: 20px;\n color: #434343;\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n max-height: 192px;\n\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ContentTitlesGrid = styled(MttGrid)`\n display: flex;\n\n margin-top: 8px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n\n > div:first-child {\n background-color: #ffffff;\n }\n`;\n\nexport const ContainerIcon = styled.div`\n .MuiSvgIcon-root {\n color: #00c914;\n }\n\n .icon-spin {\n animation: spin 1s linear infinite;\n }\n\n @keyframes spin {\n to {transform: rotate(360deg)}\n }\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n width: 200px;\n margin-left: 12px;\n`;\n\nexport const StyledMttTextField = styled(TextField)``;\n\nconst styles = {\n Container: styled.div`\n border: 2px solid #cfc5e2;\n border-radius: 3rem;\n display: flex;\n margin: 1rem;\n `,\n ChoicesContent: styled.div`\n background: #b6bad9;\n border-radius: 3rem;\n display: flex;\n flex-direction: column;\n height: 20vh;\n overflow-y: scroll;\n `,\n ChoicesLine: styled.div`\n span {\n font-size: 2em;\n }\n `,\n ButtonsContent: styled.div`\n span {\n font-weight: 600;\n\n i {\n font-style: normal;\n font-size: 0.8em;\n }\n }\n `,\n};\n\nexport default styles;\n","import { InputAdornment } from '@material-ui/core';\nimport CheckIcon from '@material-ui/icons/Check';\nimport SyncIcon from '@material-ui/icons/Sync';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport React, { useState } from 'react';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport green from '@material-ui/core/colors/green';\n\nimport {\n ContainerButton,\n ContainerTitleFooter,\n ContentGrid,\n ContentTitlesGrid,\n GridContainer,\n StyledMttTextField,\n StyledMttTypographyFrase,\n StyledTitleFooter,\n StyledTitleFooterClick,\n} from './styles';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { VerifyGoogleSheetID } from 'services/VerificationCodeService';\nimport { useApp } from 'contexts/App/appContext';\n\nconst GoogleSheet: React.FC = () => {\n const { toastNotification } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const [load, setLoad] = useState(false);\n const [showId, setShowId] = useState(true);\n\n const handleVerifyId = async () => {\n setLoad(true);\n const result = await VerifyGoogleSheetID(\n {\n googleSheetID: '',\n },\n dispatchApp\n );\n if (result.Success) {\n if (result.Data.data) {\n toastNotification('success', 'Id verificado com sucesso');\n setShowId(true);\n } else {\n toastNotification('error', 'Id inválido');\n setShowId(false);\n }\n } else {\n toastNotification('error', 'Error ao tentar verificar Id');\n setShowId(false);\n }\n setLoad(false);\n };\n\n return (\n \n \n \n \n {}}\n InputProps={{\n endAdornment: (\n \n {showId ? (\n \n ) : (\n \n )}\n \n ),\n }}\n />\n \n : \n }\n onClick={handleVerifyId}\n fullWidth\n >\n Verificar\n \n \n \n \n CLIQUE AQUI\n \n para ver como se ativa essa funcionalidade.\n \n \n \n \n );\n};\n\nexport default GoogleSheet;\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IVerifyGoogleSheetIDRequest,\n IVerifyGoogleSheetIDResponse,\n IVerifyRocketChatIdRequest,\n IVerifyRocketChatIdResponse,\n} from './types';\n\nexport const VerifyRocketChatId = async (\n request: IVerifyRocketChatIdRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `rocketchat`;\n return await json(\n 'POST',\n action,\n dispatch,\n request\n );\n};\n\nexport const VerifyGoogleSheetID = async (\n request: IVerifyGoogleSheetIDRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `googlesheet`;\n return await json(\n 'POST',\n action,\n dispatch,\n request\n );\n};\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport ExportDataSpread from 'components/inputs/Material/ExportDataSpreadSheet';\nimport ExcelOrCSV from 'components/inputs/Material/ExcelOrCSV';\nimport GoogleSheet from 'components/inputs/Material/GoogleSheet';\n\nexport default function SaveTable() {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const StyledMttTypographyMsgForUser = styled(MttTypography)`\n margin-bottom: 16px !important;\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n justify-content: flex-end;\n\n padding: 8px 0;\n`;\n\nexport const Container = styled(MttGrid)`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n`;\n\nexport const MessageContainer = styled(MttGrid)`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: 8px;\n padding: 16px;\n background: #f2f2f2;\n`;\n\nexport const SwitchDiv = styled(MttGrid)`\n display: flex;\n align-items: center;\n padding: 16px;\n\n .MuiTypography-body1 {\n font-weight: bold;\n color: #6c50a4;\n margin-right: 24px;\n }\n\n .MuiTypography-subtitle1 {\n margin-right: 16px;\n }\n\n .MuiInputBase-input {\n max-width: 120px;\n }\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-y: auto;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ContentMsgForUserGrid = styled.div`\n padding: 16px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const StyledMttTextField = styled(TextField)`\n .MuiOutlinedInput-multiline {\n background: #fff;\n }\n`;\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const ContainerOptionHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 4px;\n min-height: 18px;\n`;\n\nexport const ContainerOptionContent = styled.div`\n display: flex;\n align-items: center;\n margin-top: 4px;\n`;\n\nexport const OptionIndexAndTip = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n\tmin-height: 40px;\n`;\n\nexport const HeaderSpan = styled.span`\n color: #6c50a4;\n margin-top: -24px;\n`;\n\nexport const Container = styled(MttGrid)`\n width: calc(100% - 32px);\n min-height: 48px;\n\n padding: 4px 16px;\n border-radius: 4px;\n\n border: 1px solid #0000001f;\n background-color: #ffffff;\n\n display: flex;\n flex-direction: column;\n\n margin-top: 8px;\n`;\n\nexport const GridInputDefinition = styled(MttGrid)`\n width: 100%;\n max-width: 456px;\n margin-left: 8px;\n padding-bottom: 8px;\n padding-right: 16px;\n\n input {\n color: #000;\n padding-left: 4px;\n }\n`;\n\nexport const GridDefinition = styled(MttGrid)`\n padding-left: 8px;\n padding-right: 8px;\n padding-bottom: 24px;\n\n height: 46px;\n`;\n\nexport const ContentSynonyms = styled(MttGrid)`\n min-width: 40%;\n display: flex;\n flex-wrap: wrap;\n max-width: 300px;\n`;\n\nexport const GridSynonym = styled(MttGrid).attrs((props) => ({\n className: props.className,\n}))`\n height: 32px;\n\n margin-left: 8px;\n\n padding: 0 8px;\n margin: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n\n font-weight: 500;\n\n\tsvg {\n\t\tmargin: inherit;\n\t}\n`;\n\nexport const GridSynonymRegular = styled(GridSynonym)`\n background-color: #f2f2f2;\n`;\n\nexport const GridSynonymVariable = styled(GridSynonym)`\n background-color: #60a46057;\n border: 1px solid #0000001f;\n`;\n","import { ChangeEvent, useCallback, useEffect, useState } from 'react';\n\nimport { useForm } from 'contexts/Form/formContext';\nimport CloseIcon from '@material-ui/icons/CloseRounded';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport {\n Checkbox,\n FormControlLabel,\n IconButton,\n TextField,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport InfoIcon from '@material-ui/icons/Info';\nimport * as S from './styles';\nimport { ISentencesProps } from './types';\nimport { Autocomplete } from '@material-ui/lab';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport useTranslator from 'utils/hooks/Translator';\ninterface IIdNameEntity {\n id: string;\n name: string;\n}\n\nexport default function OptionsBlockOutputsSentences(props: ISentencesProps) {\n const {\n index,\n choice,\n showRemoveButton,\n isFalaGptBlock,\n // falaGPTContextsNames,\n entities,\n } = props;\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n const [inputValue, setInputValue] = useState('');\n const values = choice.userSentences || [''];\n const [showInfo, setShowInfo] = useState(false);\n const [types, setTypes] = useState([]);\n const { getTranslation } = useTranslator();\n const isChatGptOutput = choice.title === 'FalaGPT';\n\n const load = useCallback(async () => {\n if (dataForm && choice && choice.title !== 'Outros') {\n if (!choice.userSentences) {\n choice.userSentences = [''];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n let allTypes: IIdNameEntity[] = [];\n\n if (entities) {\n allTypes = [\n ...allTypes,\n ...entities.map((entity) => ({\n id: entity.name,\n name: entity.name,\n })),\n ].sort(function (a, b) {\n return a.name > b.name ? 1 : b.name > a.name ? -1 : 0;\n });\n\n allTypes.map((type) => {\n if (type.id.substring(0, 1) !== '@') {\n const insertAt = `${type.id.slice(0, 0)}${'@'}${type.id.slice(0)}`;\n let filteredValue = insertAt;\n type.id = filteredValue;\n }\n return allTypes;\n });\n }\n\n setTypes(allTypes);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [entities, choice, index]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeTitle = (newTitle: string) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n if (choice.title !== 'Outros') {\n values[0] = newTitle;\n if (choice.userSentences) choice.userSentences[0] = newTitle;\n choice.title = newTitle;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }\n };\n\n const handleChangeGPTContext = (newContext: string) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n if (choice.title !== 'Outros') {\n choice.falaGPTContext = newContext;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }\n };\n\n const handleChangeChip = (checked: boolean) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n choice.isChip = checked;\n dataForm.outputs[index].isChip = checked;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n const handleDeleteOption = () => {\n if (!!dataForm && dataForm.outputs) {\n dataForm.outputs.splice(\n dataForm.outputs.findIndex((c) => c.title === choice.title),\n 1\n );\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleDeleteSynonym = (phraseIndex: number) => {\n if (!!dataForm && dataForm.outputs) {\n values.splice(phraseIndex, 1);\n dataForm.outputs[index].userSentences = values;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleInsertValue = (event: React.KeyboardEvent) => {\n if (choice.title !== 'Outros') {\n if (event.keyCode === 13 || event.keyCode === 9) {\n if (inputValue !== '') {\n values.push(inputValue);\n\n if (!!dataForm && dataForm.outputs) {\n dataForm.outputs[index].userSentences = values;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n setInputValue('');\n const input = event.currentTarget.children[0]\n .children[0] as HTMLDivElement;\n input.blur();\n input.focus();\n }\n }\n };\n\n const handleShowSynonyms = (item: string, index: number) => {\n if (item !== '') {\n const isVariable = item.substring(0, 1) === '@';\n return isVariable\n ? returnVariables(item, index)\n : returnRegulars(item, index);\n } else return <>;\n };\n\n const returnVariables = (item: string, index: number) => {\n return (\n \n `@${t.name}` === item)\n ?.values.map((v) => v.synonyms)\n .map((s) => s)\n .join(',') || ''\n }\n >\n \n \n {item}\n {index !== 0 && (\n handleDeleteSynonym(index)} size=\"small\">\n \n \n )}\n \n );\n };\n\n const returnRegulars = (item: string, index: number) => {\n return (\n \n {item}\n {index !== 0 && (\n handleDeleteSynonym(index)} size=\"small\">\n \n \n )}\n \n );\n };\n\n const addSynonymByVariable = (event: ChangeEvent<{}>, varName: string) => {\n if (!!varName) {\n values.push(varName);\n\n if (!!dataForm && dataForm.outputs) {\n dataForm.outputs[index].userSentences = values;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n return (\n \n \n \n \n {isChatGptOutput ? (\n <>Fala GPT\n ) : (\n <>\n {getTranslation('option')} #{' '}\n {isFalaGptBlock ? index : index + 1}\n \n )}\n \n {!isChatGptOutput && (\n <>\n setShowInfo(!showInfo)}>\n \n \n \n \n\n handleChangeChip(e.target.checked)}\n color=\"primary\"\n />\n }\n label={getTranslation('showAsButton')}\n />\n \n )}\n \n {choice.title !== 'Outros' && !isChatGptOutput && showRemoveButton && (\n handleDeleteOption()}>\n \n \n )}\n \n {isChatGptOutput ? (\n <>\n ) : index === 0 ? (\n \n \n {getTranslation('variables.hintWords')} TAB{' '}\n {getTranslation('or')} ENTER.\n \n \n ) : (\n \n {showInfo && (\n \n {getTranslation('variables.hintWords')} TAB{' '}\n {getTranslation('or')} ENTER.\n \n )}\n \n )}\n\n \n \n handleChangeTitle(e.target.value)}\n label={getTranslation('outputTitle')}\n helperText={formErrors[`outputs[${index}].title`]}\n error={!!formErrors[`outputs[${index}].title`]}\n disabled={isChatGptOutput}\n />\n \n {isChatGptOutput ? (\n \n handleChangeGPTContext(e.target.value)}\n label=\"Informe o contexto\"\n fullWidth\n style={{ marginBottom: '14px' }}\n />\n {/* option}\n renderInput={(params) => (\n handleChangeGPTContext(e.target.value)}\n variant=\"standard\"\n disabled={!falaGPTContextsNames}\n value={choice.falaGPTContext}\n placeholder=\"Escolha um contexto para o bloco\"\n onKeyDown={(event) => handleInsertValue(event)}\n />\n )}\n noOptionsText={getTranslation('noResults')}\n onChange={(e, value) => handleChangeGPTContext(value || '')}\n /> */}\n \n ) : (\n <>\n \n t.id)}\n open={!!inputValue && inputValue.length > 2}\n onBlur={() => setInputValue('')}\n popupIcon={null}\n getOptionLabel={(option) => option}\n renderInput={(params) => (\n setInputValue(e.target.value)}\n variant=\"standard\"\n disabled={choice.title === ''}\n fullWidth\n value={\n choice.title === 'Outros' ? choice.title : inputValue\n }\n placeholder={`${getTranslation('variables.typeSynonym')} \"${\n choice.title || ''\n }\"`}\n onKeyDown={(event) => handleInsertValue(event)}\n />\n )}\n noOptionsText={getTranslation('noResults')}\n onChange={(e, value) => addSynonymByVariable(e, value || '')}\n />\n \n \n {choice.userSentences?.map((item, index) =>\n handleShowSynonyms(item, index)\n )}\n \n \n )}\n \n \n );\n}\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport AddIcon from '@material-ui/icons/Add';\nimport * as S from './styles';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { Output } from 'models/DataFlow';\n\nimport {\n FormControlLabel,\n FormGroup,\n Switch,\n TextField,\n Typography,\n} from '@material-ui/core';\n\nimport OptionsBlockOutputsSentences from './OptionsBlockOutputsSentences';\nimport useTranslator from 'utils/hooks/Translator';\nimport { validateVarNames } from 'utils/String';\n// import { GetAgentContexts } from 'services/FalaGPTService';\n// import { FalaGPTContext } from './OptionsBlockOutputsSentences/types';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { GetEntities } from 'services/EntityService';\nimport { IEntity } from 'models/Entity';\n\ninterface Props {\n isFalaGPT?: boolean;\n}\n\nexport default function OptionsBlockContent({ isFalaGPT = false }: Props) {\n const { state, dispatch } = useForm();\n const { dispatch: dispatchApp } = useApp();\n const { dataForm, formErrors } = state;\n const [varValue, setVarValue] = useState(\n dataForm?.varValue?.substring(5, dataForm?.varValue?.length) || 'resposta'\n );\n // const [falaGPTContextNames, setFalaGPTContextsNames] = useState([]);\n const isFirstRender = useRef(true);\n const { botName } = useFlow().state;\n const [entities, setEntities] = useState([]);\n\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm) {\n if (dataForm.outputs && dataForm.outputs?.length === 0) {\n const outputs = [\n { title: isFalaGPT ? 'FalaGPT' : '', isChip: false },\n { title: 'Outros', isChip: false },\n ];\n\n dataForm.outputs = outputs;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n if (!dataForm.sendUser) {\n dataForm.sendUser = {\n message: '',\n messageDidNotUnderstood: '',\n url: '',\n };\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n\n if (!dataForm.varValue) {\n dataForm.varValue = 'vars.resposta';\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }, [dataForm, isFalaGPT, dispatch]);\n\n // const loadGPTContexts = useCallback(async () => {\n // const response = await GetAgentContexts(dispatchApp);\n\n // if (response.Success) {\n // const contexts: FalaGPTContext[] = await response.Data.data;\n // setFalaGPTContextsNames(contexts.map((context) => context.name));\n // }\n // }, [dispatchApp]);\n\n //faz uma requeste para pegar as entidades\n const loadEntities = useCallback(async () => {\n if (botName) {\n const result = await GetEntities({ bot_name: botName }, dispatchApp);\n\n if (result.Success) {\n if (!!result.Data) {\n const entitiesResult = result.Data.filter(\n (e) => e.entitytype === 'words'\n );\n setEntities([...entitiesResult]);\n }\n }\n }\n }, [botName, dispatchApp]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n useEffect(() => {\n loadEntities();\n if (isFalaGPT && isFirstRender.current) {\n isFirstRender.current = false;\n }\n }, [loadEntities, isFalaGPT]);\n\n const handleChangeDidNotUnderstoodMessage = (newValue: string) => {\n if (!!dataForm && dataForm.sendUser) {\n dataForm.sendUser.messageDidNotUnderstood = newValue;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const renderChoice = (choice: Output, index: number) => {\n return (\n
    \n {choice.title !== 'Outros' && (\n \n )}\n
    \n );\n };\n\n const handleAddChoice = () => {\n if (dataForm) {\n if (dataForm.outputs) {\n const other = dataForm.outputs.find(\n (o) => o.title.toLowerCase() === 'outros'\n );\n const newOutputs = dataForm.outputs.filter(\n (o) => o.title.toLowerCase() !== 'outros'\n );\n newOutputs.push({\n title: '',\n userMsg: '',\n userSentences: [''],\n isChip: false,\n });\n if (other) {\n newOutputs.push(other);\n }\n dataForm.outputs = newOutputs;\n } else {\n dataForm.outputs = [{ title: 'Outros' }];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeVarValue = (\n e: React.ChangeEvent<\n | { name?: string | undefined; value: unknown }\n | HTMLTextAreaElement\n | HTMLInputElement\n >\n ) => {\n if (!!dataForm && dataForm.varValue) {\n const validatedVarValue = validateVarNames(e, 'name', true);\n dataForm.varValue = `vars.${validatedVarValue}`;\n\n setVarValue(validatedVarValue);\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeQuestion = (value: string) => {\n if (!!dataForm && dataForm.sendUser) {\n dataForm.sendUser.message = value;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeSaveVarValue = (value: boolean) => {\n if (!!dataForm) {\n dataForm.saveVarValue = value;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const showRemoveButton =\n !!dataForm && !!dataForm.outputs\n ? dataForm.outputs.length > 2 || isFalaGPT\n : false;\n\n return (\n \n \n \n \n {getTranslation('info.messageForUser')}\n \n \n handleChangeQuestion(e.target.value)}\n minRows={3}\n maxRows={3}\n multiline\n error={!!formErrors['formMsg']}\n helperText={formErrors['formMsg']}\n />\n \n \n \n \n }\n onClick={handleAddChoice}\n >\n {getTranslation('addOption')}\n \n \n\n \n {dataForm && dataForm.outputs && dataForm.outputs.map(renderChoice)}\n \n\n <>\n {!isFalaGPT && (\n \n \n {\n handleChangeSaveVarValue(e.target.checked);\n }}\n />\n }\n label={getTranslation('saveSelectedOption')}\n color=\"primary\"\n />\n \n {dataForm?.saveVarValue && (\n <>\n \n {getTranslation('outputVariable')}\n \n \n \n \n )}\n \n )}\n\n \n \n {isFalaGPT\n ? 'Mensagem quando a resposta do usuário não atender as opções acima'\n : getTranslation('messageDidNotUnderstood')}\n \n ) => {\n handleChangeDidNotUnderstoodMessage(e.target.value);\n }}\n />\n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport OptionsBlockContent from 'components/inputs/Material/OptionsBlockContent';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function OptionsBlock() {\n return (\n <>\n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\n\nexport const Container = styled(MttGrid)`\n margin: 16px;\n display: flex;\n align-items: center;\n\n .MuiOutlinedInput-root {\n margin-left: 32px;\n }\n`;\n\nexport const TitleTypography = styled(MttTypography)``;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { MenuItem, Select } from '@material-ui/core';\nimport { useForm } from 'contexts/Form/formContext';\nimport { MessageType } from 'models/DataFlow';\nimport { Container, TitleTypography } from './styles';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function TypeOfMessage() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const [selectedOption, setSelectedOption] = useState(\n (dataForm?.messageType as MessageType) || 'text'\n );\n\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.messageType) {\n dataForm.messageType = 'text';\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeOption = (newValue: string) => {\n if (dataForm) {\n const value = newValue as MessageType;\n setSelectedOption(value);\n\n dataForm.messageType = value;\n\n dispatch({\n type: 'updateForm',\n data: { dataForm: { ...dataForm } },\n });\n }\n };\n\n return (\n \n \n {getTranslation('typeOfMessage')}\n \n handleChangeOption(String(e.target.value))}\n >\n {getTranslation('typesOfMessage.text')}\n {getTranslation('typesOfMessage.image')}\n {getTranslation('typesOfMessage.audio')}\n {getTranslation('typesOfMessage.document')}\n {getTranslation('typesOfMessage.video')}\n \n \n );\n}\n","import FooterButtons from 'components/inputs/Material/FooterButtons';\nimport Info from 'components/inputs/Material/Info';\nimport MessageForUser from 'components/inputs/Material/MessageForUser/index';\nimport TypeOfMessage from 'components/inputs/Material/TypeOfMessage';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function SendMessage() {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\n\nconst styles = {\n Container: styled.div`\n `,\n FirstLine: styled.div`\n display: flex;\n `,\n DescriptionInput: styled.input`\n \n input {\n width: 80vw;\n }\n `\n}\n\nexport default styles;\n","import { useMemo } from 'react';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { useForm } from 'contexts/Form/formContext';\nimport { DataForm } from 'models/DataFlow';\nimport Typography from '../../Typography';\nimport styles from './styles';\n\nconst { Container, FirstLine, DescriptionInput } = styles;\n\nexport default function Info() {\n const { groupsNames } = useFlow().state;\n const { state, dispatch } = useForm();\n\n const { dataForm } = state;\n\n const selectedGroup = useMemo(\n () => groupsNames.find((group) => group === (state.dataForm?.groupId || '')),\n [groupsNames, state.dataForm?.groupId]\n );\n\n const handleChangeInput =\n (key: keyof DataForm) => (e: React.ChangeEvent) => {\n if (dataForm) {\n const { value } = e.target;\n dispatch({\n type: 'updateForm',\n data: { dataForm: { ...dataForm, [key]: value } },\n });\n }\n };\n\n return (\n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\n\nconst styles = {\n Container: styled.div`\n align-items: center;\n background: #b6bad9;\n border-radius: 0.8rem;\n display: flex;\n padding: 1rem;\n margin: 1rem 0 1rem 0;\n width: 50vw;\n `,\n Btn: styled.button`\n background: #6c50a4;\n border: none;\n border-radius: 3rem;\n color: white;\n padding: 0.5rem 1rem;\n margin: 1rem 1rem;\n height: 3rem;\n width: 40vw;\n `,\n}\n\nexport default styles;\n","import React from \"react\";\nimport { useForm } from \"contexts/Form/formContext\";\nimport ModalLogic from \"../../ModalLogic\";\n\nimport styles from \"./styles\";\n\nconst { Container, Btn } = styles;\n\nexport default function LogicEditor() {\n const { state, dispatch } = useForm();\n\n const handleOpenModalLogicEditor = () => {\n dispatch({\n type: \"updateForm\",\n data: { ...state, openModalLogicEditor: true },\n });\n };\n return (\n \n
    Ícone
    \n Editar lógica\n \n \n
    \n );\n}\n","import styled from 'styled-components';\nimport MttTypography from '../../Material/MttTypography/MttTypography';\n\nexport const MsgForUserTypography = styled(MttTypography)``;\n\nexport const VariableTypography = styled(MttTypography)``;\n\nexport const Container = styled.div`\n margin: 16px;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ContentQuestions = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: auto;\n padding: 16px;\n\n .MuiOutlinedInput-root {\n margin-top: 8px;\n margin-left: 32px;\n }\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: auto;\n padding: 16px;\n\n .MuiFormControl-fullWidth {\n margin-top: 16px;\n }\n`;\nexport const ContentOutputVariable = styled.div`\n display: flex;\n /* flex-direction: column; */\n width: auto;\n padding: 16px;\n align-items: center;\n\n .MuiFormControl-root {\n width: 200px;\n }\n\n .MuiTypography-root {\n margin-right: 32px;\n margin-left: 16px;\n }\n`;\n\nexport const VariableContainer = styled.div`\n display: flex;\n padding: 16px;\n align-items: center;\n\n .MuiOutlinedInput-root {\n width: 200px;\n margin-left: 32px;\n }\n`;\n\nconst styles = {\n Input: styled.input`\n width: 70vw;\n `,\n InputLine: styled.div`\n display: flex;\n align-items: center;\n padding: 0 8px;\n max-width: calc(100% - 40px);\n `,\n ChoicesContent: styled.div`\n background: #b6bad9;\n border-radius: 3rem;\n display: flex;\n flex-direction: column;\n height: 20vh;\n overflow-y: scroll;\n `,\n ChoicesLine: styled.div`\n span {\n font-size: 2em;\n }\n `,\n ButtonsContent: styled.div`\n span {\n font-weight: 600;\n\n i {\n font-style: normal;\n font-size: 0.8em;\n }\n }\n `,\n};\n\nexport default styles;\n","import styled from 'styled-components';\nimport MttTypography from '../../Material/MttTypography/MttTypography';\n\nexport const MsgForUserTypography = styled(MttTypography).attrs({\n children: 'Mensagem para o usuário',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const VariableTypography = styled(MttTypography).attrs({\n children: 'Variável de resposta',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const Container = styled.div`\n margin: 16px;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ContentQuestions = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: auto;\n padding: 16px;\n\n .MuiOutlinedInput-root {\n margin-top: 8px;\n margin-left: 32px;\n }\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: auto;\n padding: 16px;\n\n .MuiFormControl-fullWidth {\n margin-top: 16px;\n }\n`;\nexport const ContentOutputVariable = styled.div`\n display: flex;\n /* flex-direction: column; */\n width: auto;\n padding: 16px;\n align-items: center;\n\n .MuiFormControl-root {\n width: 200px;\n }\n\n .MuiTypography-root {\n margin-right: 32px;\n margin-left: 16px;\n }\n`;\n\nexport const VariableContainer = styled.div`\n display: flex;\n padding: 16px;\n align-items: center;\n\n .MuiOutlinedInput-root {\n width: 200px;\n margin-left: 32px;\n }\n`;\n\nconst styles = {\n Input: styled.input`\n width: 70vw;\n `,\n InputLine: styled.div`\n display: flex;\n align-items: center;\n padding: 0 8px;\n max-width: calc(100% - 40px);\n `,\n ChoicesContent: styled.div`\n background: #b6bad9;\n border-radius: 3rem;\n display: flex;\n flex-direction: column;\n height: 20vh;\n overflow-y: scroll;\n `,\n ChoicesLine: styled.div`\n span {\n font-size: 2em;\n }\n `,\n ButtonsContent: styled.div`\n span {\n font-weight: 600;\n\n i {\n font-style: normal;\n font-size: 0.8em;\n }\n }\n `,\n};\n\nexport default styles;\n","import { useCallback, useEffect, useState } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport * as S from './styles';\nimport { MenuItem, Select, TextField, Typography } from '@material-ui/core';\nimport { validateVarNames } from 'utils/String';\nimport { GlobalVariableSelectionProps } from './types';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function GlobalVariablesSelection(\n props: GlobalVariableSelectionProps\n) {\n const { showTitle, variant } = props;\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const [prefixVar, setPrefixVar] = useState(\n dataForm?.varValue?.substring(0, 5) || 'vars.'\n );\n const [varValue, setVarValue] = useState(\n dataForm?.varValue?.substring(5, dataForm?.varValue.length) || 'resposta'\n );\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.inputs) {\n if (!dataForm.varValue) {\n dataForm.varValue = 'vars.resposta';\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n\n if (!dataForm.messageType) {\n dataForm.messageType = 'text';\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeField = (\n e: React.ChangeEvent<\n | { name?: string | undefined; value: unknown }\n | HTMLTextAreaElement\n | HTMLInputElement\n >,\n field: 'varValue' | 'sendUser' | 'messageType'\n ) => {\n if (!!dataForm) {\n let validatedValue = String(e.target.value);\n\n if (field === 'sendUser' && !!dataForm.sendUser)\n dataForm.sendUser.messageDidNotUnderstood = validatedValue;\n else if (field === 'varValue') {\n validatedValue =\n prefixVar === 'vars.' ? validateVarNames(e, 'name', true) : validatedValue;\n dataForm[field] = prefixVar + validatedValue;\n\n setVarValue(validatedValue);\n } else dataForm[field] = validatedValue;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangePrefix = () => {\n if (!!dataForm) {\n const updatedPrefix = prefixVar === 'vars.' ? 'user.' : 'vars.';\n setPrefixVar(updatedPrefix);\n\n dataForm['varValue'] = updatedPrefix + varValue;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n return (\n \n {showTitle && (\n {getTranslation('outputVariable')}\n )}\n
    \n handleChangePrefix()}\n >\n vars.\n user.\n \n {prefixVar === 'vars.' ? (\n handleChangeField(e, 'varValue')}\n />\n ) : (\n handleChangeField(e, 'varValue')}\n >\n name\n nickname\n email\n phoneNumber\n cpf\n birthDate\n \n )}\n
    \n
    \n );\n}\n","import styles from './styles';\nimport { useCallback, useEffect } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport * as S from './styles';\nimport { MenuItem, Select, TextField, Typography } from '@material-ui/core';\nimport GlobalVariablesSelection from '../GlobalVariablesSelection';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst { InputLine } = styles;\n\nexport default function SimpleQuestionFields() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.inputs) {\n dataForm.inputs = {\n userSentences: ['', '', ''],\n variables: [\n {\n name: '',\n vartype: '',\n questions: ['', '', ''],\n required: false,\n value: '',\n defaultValue: '',\n isList: false,\n },\n ],\n };\n\n dataForm.sendUser = {\n message: '',\n messageDidNotUnderstood: '',\n };\n\n if (!dataForm.varValue) {\n dataForm.varValue = 'vars.resposta';\n }\n\n if (!dataForm.messageType) {\n dataForm.messageType = 'text';\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeTitle = (\n index: number,\n e: React.ChangeEvent\n ) => {\n if (!!dataForm && !!dataForm.inputs?.variables[0]?.questions) {\n const { value } = e.target;\n const phrases =\n dataForm.inputs?.variables[0].questions.map((sentence, i) =>\n i === index ? value : sentence\n ) || [];\n\n dataForm.inputs.variables[0].questions = phrases;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeField = (\n e: React.ChangeEvent<\n | { name?: string | undefined; value: unknown }\n | HTMLTextAreaElement\n | HTMLInputElement\n >,\n field: 'varValue' | 'sendUser' | 'messageType'\n ) => {\n if (!!dataForm) {\n let validatedValue = String(e.target.value);\n\n if (field === 'sendUser' && !!dataForm.sendUser)\n dataForm.sendUser.messageDidNotUnderstood = validatedValue;\n else if (field === 'varValue') {\n } else dataForm[field] = validatedValue;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const renderSentences = (sentence: string, i: number) => {\n return (\n \n {getTranslation('question')}\n\n ) => {\n handleChangeTitle(i, e);\n }}\n value={sentence}\n fullWidth\n multiline\n minRows={2}\n />\n \n );\n };\n\n return (\n \n \n {getTranslation('info.messageForUser')}\n \n \n
    \n {dataForm?.inputs?.variables[0].questions?.map(renderSentences)}\n
    \n
    \n\n \n \n {getTranslation('responseVariable')}\n \n \n \n {getTranslation('typeOfVariable')}\n \n handleChangeField(e, 'messageType')}\n >\n \n {getTranslation('typesOfVariable.text')}\n \n \n {getTranslation('typesOfVariable.number')}\n \n \n {getTranslation('typesOfVariable.email')}\n \n \n {getTranslation('typesOfVariable.data')}\n \n \n {getTranslation('typesOfVariable.phone')}\n \n \n {getTranslation('typesOfVariable.money')}\n \n \n {getTranslation('typesOfVariable.lettersOnly')} letras\n \n \n {getTranslation('typesOfVariable.cpf')}\n \n \n {getTranslation('typesOfVariable.cnpj')}\n \n \n {getTranslation('typesOfVariable.cep')}\n \n \n {getTranslation('typesOfVariable.password')}\n \n URL\n Uuid\n \n {getTranslation('typesOfVariable.location')}\n \n \n\n \n\n {/* \n }\n label=\"Mais de uma variável?\"\n />\n */}\n \n \n \n {getTranslation('messageDidNotUnderstood')}\n \n handleChangeField(e, 'sendUser')}\n multiline\n minRows={3}\n />\n \n \n
    \n );\n}\n","import './styles.css';\n\n\nconst Select: any = ({ ...rest }) => {\n\n\tfunction getSelectOptions(options: { id: string, name: string }[]) {\n\t\treturn options.map((item, i) => )\n\t}\n\n\treturn (\n\t\t\n\t)\n};\n\nexport default Select;","import CheckboxCustom from '@material-ui/core/Checkbox';\nimport styled from 'styled-components';\n\n\nconst Checkbox = styled(CheckboxCustom)``;\n\nexport default Checkbox;","import styled from 'styled-components';\n\nconst styles = {\n Container: styled.div`\n `,\n Content: styled.div`\n background: #b6bad9;\n border-radius: 0.8rem;\n padding: 1rem;\n margin: 1rem 0 1rem 0;\n `,\n Line: styled.div`\n display: flex;\n `,\n LineInput: styled.input`\n width: 30vw;\n `,\n LineSelect: styled.select`\n width: 30vw;\n `,\n Questions: styled.div`\n display: flex;\n `,\n QuestionsAside: styled.div`\n display: flex;\n flex-direction: column;\n text-align: left;\n width: 30vw;\n `,\n QuestionsContent: styled.div`\n display: flex;\n flex-direction: column;\n\n input {\n width: 60vw;\n }\n `,\n}\n\nexport default styles;\n","import { useForm } from 'contexts/Form/formContext';\nimport InputCustom from '../../Constructors/Input';\nimport Select from '../../Constructors/Select';\nimport Checkbox from 'components/Constructors/Checkbox';\nimport styles from './styles';\nimport { propsData } from './types';\nimport { useCallback, useEffect, useState } from 'react';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { IEntity } from 'models/Entity';\n\nconst {\n Container,\n Content,\n Line,\n Questions,\n QuestionsAside,\n QuestionsContent,\n} = styles;\n\nexport default function Variables(props: propsData) {\n const { botName } = useFlow().state;\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const [types, setTypes] = useState<{ id: string; name: string }[]>([]);\n\n useEffect(() => {\n let allTypes = [\n { id: '@sys.any', name: 'qualquer-input' },\n { id: '@sys.email', name: 'input-de-email' },\n { id: '@sys.number', name: 'input-de-numero' },\n { id: '@sys.date-time', name: 'input-de-data' },\n { id: '@sys.url', name: 'input-de-url' },\n ];\n\n if (botName) {\n const entitiesJson = localStorage.getItem(`Entities&&${botName}`);\n if (entitiesJson) {\n const entities: IEntity[] = JSON.parse(entitiesJson);\n\n allTypes = [\n ...allTypes,\n ...entities.map((entity) => ({\n id: entity.name,\n name: entity.name,\n })),\n ].sort(function (a, b) {\n return a.name > b.name ? 1 : b.name > a.name ? -1 : 0;\n });\n\n allTypes.map((type) => {\n if (type.id.substring(0, 1) !== '@') {\n const insertAt = `${type.id.slice(0, 0)}${'@'}${type.id.slice(0)}`;\n let filteredValue = insertAt;\n type.id = filteredValue;\n }\n return allTypes;\n });\n }\n }\n\n setTypes(allTypes);\n }, [botName]);\n\n const { showTitle = false, showQuestions = true, index } = props;\n const variable = dataForm?.inputs?.variables[index];\n\n const load = useCallback(() => {\n if (dataForm && dataForm.inputs && !dataForm.inputs.variables.length) {\n dataForm.inputs = {\n userSentences: ['', '', ''],\n variables: [\n {\n name: '',\n vartype: '',\n questions: ['', '', ''],\n required: false,\n value: '',\n defaultValue: '',\n isList: false,\n },\n ],\n };\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeInput =\n (key: 'value' | 'name' | 'vartype') =>\n (e: React.ChangeEvent) => {\n if (dataForm && variable) {\n const value = e.target.value;\n variable[key] = value;\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n };\n\n const handleQuestion = (value: string, index: number) => {\n if (variable && dataForm) {\n variable.questions[index] = value;\n dispatch({\n type: 'updateForm',\n data: { dataForm: { ...dataForm } },\n });\n }\n };\n\n const handleChangeCheckbox = (e: React.ChangeEvent) => {\n if (dataForm && variable) {\n const checked = e.target.checked;\n variable.required = checked;\n dispatch({\n type: 'updateForm',\n data: { dataForm: { ...dataForm } },\n });\n }\n };\n\n return (\n \n {showTitle && Variável para identificar no texto do usuário}\n \n \n \n Nome\n \n\n \n Tipo\n \n\n \n Valor\n \n \n\n {showQuestions && (\n \n \n Perguntas(caso não identifique)\n
    \n \n Obrigatória\n
    \n
    \n\n \n {variable?.questions.map((value, index) => {\n return (\n \n );\n })}\n \n
    \n )}\n
    \n
    \n );\n}\n","import styled from 'styled-components';\n\nconst styles = {\n Container: styled.div`\n `,\n VariablesBtn: styled.button`\n background: #6c50a4;\n border: none;\n border-radius: 3rem;\n color: white;\n height: 1rem;\n padding: 1rem;\n `,\n VariablesLine: styled.div`\n align-items: center;\n display: flex;\n `,\n MultiVariablesContainer: styled.div`\n height: 30vh;\n overflow-y: scroll;\n `,\n}\n\nexport default styles;\n","import { useCallback, useEffect } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport { Variable } from 'models/DataFlow';\nimport Variables from '../Variables';\nimport styles from './styles';\n\nconst { VariablesLine, MultiVariablesContainer, VariablesBtn } = styles;\n\nexport default function MultiVars() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const variables = dataForm?.inputs?.variables || [];\n\n const load = useCallback(() => {\n if (dataForm && !dataForm?.inputs) {\n dataForm.inputs = {\n variables: [\n {\n name: '',\n questions: ['', '', ''],\n required: false,\n vartype: '',\n value: '',\n defaultValue: '',\n isList: false,\n },\n ],\n };\n dispatch({ type: 'updateForm', data: { dataForm } });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleRemoveVariable = (index: number) => {\n variables.splice(index, 1);\n\n dispatch({ type: 'updateForm', data: { dataForm } });\n };\n\n const renderVars = (variable: Variable, index: number) => {\n return (\n \n \n handleRemoveVariable(index)}>\n Remover\n \n \n );\n };\n\n const handleAddVariable = () => {\n variables.push({\n name: '',\n vartype: '',\n value: '',\n required: false,\n questions: ['', '', ''],\n defaultValue: '',\n isList: false,\n });\n\n dispatch({ type: 'updateForm', data: { dataForm } });\n };\n\n return (\n
    \n
    \n Variável para indentificar no texto do usuário\n \n adicionar variáveis\n \n
    \n \n {variables.map(renderVars)}\n \n
    \n );\n}\n","import styled from 'styled-components';\n\nconst styles = {\n Container: styled.div`\n background: #b6bad9;\n border-radius: 2rem;\n padding: 2rem;\n `,\n}\n\nexport default styles;\n","import { useCallback, useEffect, useMemo } from \"react\";\nimport { useFlow } from \"contexts/Flow/flowContext\";\nimport { useForm } from \"contexts/Form/formContext\";\nimport { Linked } from \"models/DataFlow\";\nimport Select from \"../../Constructors/Select\";\nimport styles from \"./styles\";\n\nconst { Container } = styles;\n\nexport default function ToNewIntention() {\n const { groupsNames, botName } = useFlow().state;\n const { state, dispatch } = useForm();\n const { dataForm, intents } = state;\n\n const groupsWithoutCurrent = useMemo(() => {\n return groupsNames.filter((group) => group !== state.dataForm?.groupId);\n }, [groupsNames, state.dataForm?.groupId]);\n\n const getIntentsByGroupId = useCallback(\n (groupId: string) => {\n const keyFlowCurrent = (botName || \"\") + \"$$\" + (groupId || \"\");\n const json = localStorage.getItem(keyFlowCurrent);\n if (json) {\n const dataFlow = JSON.parse(json);\n const itens = Object.keys(dataFlow.drawflow.Home.data).map((key) => {\n const { name } = dataFlow.drawflow.Home.data[key].data;\n return {\n id: name,\n name,\n };\n });\n return itens;\n }\n return [];\n },\n [botName]\n );\n\n const load = useCallback(() => {\n if (!!dataForm && !dataForm?.linked) {\n dataForm.linked = {\n groupId: \"\",\n intentId: \"\",\n };\n }\n if (state.dataForm?.linked) {\n const firstGroup = groupsNames.find((_, index) => index === 0);\n if (!!firstGroup) {\n state.dataForm.linked.groupId = firstGroup;\n }\n }\n const intents = getIntentsByGroupId(state.dataForm?.linked?.groupId || \"\");\n if (!!intents.length && dataForm?.linked) {\n dataForm.linked.intentId = intents[0].id;\n }\n dispatch({\n type: \"updateForm\",\n data: {\n dataForm,\n intents,\n },\n });\n }, [\n dataForm,\n dispatch,\n getIntentsByGroupId,\n groupsNames,\n state?.dataForm?.linked,\n ]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeSelect = (key: keyof Linked) => (\n e: React.ChangeEvent\n ) => {\n if (dataForm?.linked) {\n dataForm.linked[key] = e.target.value;\n if (key === \"groupId\") {\n state.intents = getIntentsByGroupId(dataForm.linked[key]);\n const intents = getIntentsByGroupId(\n state.dataForm?.linked?.groupId || \"\"\n );\n if (!!intents.length) {\n if (dataForm?.linked) {\n dataForm.linked.intentId = intents[0].id;\n }\n } else {\n dataForm.linked.intentId = \"\";\n }\n }\n dispatch({ type: \"updateForm\", data: state });\n }\n };\n\n return (\n <>\n Pular para bloco\n \n \n Grupo\n \n\n \n Bloco\n \n \n \n );\n}\n","import { FormFieldsContainer } from '../Shared/styles';\nimport Info from 'components/inputs/Material/Info/index';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport { SimpleQuestionFields } from 'components/inputs';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function SimpleQuestion() {\n return (\n <>\n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttTypography from '../../Material/MttTypography/MttTypography';\n\nexport const MsgForUserTypography = styled(MttTypography).attrs({\n children: 'Mensagem para o usuário',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const VariableTypography = styled(MttTypography).attrs({\n children: 'Variável de resposta',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const Container = styled.div`\n margin: 0 16px;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ContentQuestions = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: auto;\n padding: 16px;\n\n .MuiOutlinedInput-root {\n margin-top: 8px;\n margin-left: 32px;\n }\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: auto;\n padding: 16px;\n\n .MuiFormControl-fullWidth {\n margin-top: 16px;\n }\n`;\nexport const ContentOutputVariable = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: auto;\n padding: 0 16px;\n\n`;\n\nexport const VariableContainer = styled.div`\n display: flex;\n flex-direction: column;\n\n padding: 16px 0;\n\n .MuiOutlinedInput-root {\n margin-top: 16px;\n }\n\n .MuiFormControl-root {\n width: 100%;\n }\n`;\n\nconst styles = {\n Input: styled.input`\n width: 70vw;\n `,\n InputLine: styled.div`\n display: flex;\n align-items: center;\n padding: 0 8px;\n max-width: calc(100% - 40px);\n `,\n ChoicesContent: styled.div`\n background: #b6bad9;\n border-radius: 3rem;\n display: flex;\n flex-direction: column;\n height: 20vh;\n overflow-y: scroll;\n `,\n ChoicesLine: styled.div`\n span {\n font-size: 2em;\n }\n `,\n ButtonsContent: styled.div`\n span {\n font-weight: 600;\n\n i {\n font-style: normal;\n font-size: 0.8em;\n }\n }\n `,\n};\n\nexport default styles;\n","import { useCallback, useEffect, useState } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport * as S from './styles';\nimport { TextField, Typography } from '@material-ui/core';\nimport useTranslator from 'utils/hooks/Translator';\nimport { validateVarNames } from 'utils/String';\n\nexport default function SendDocumentFields() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const [varValue, setVarValue] = useState(\n dataForm?.varValue?.substring(5, dataForm?.varValue.length) || 'url_doc'\n );\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.inputs) {\n dataForm.inputs = {\n userSentences: ['', '', ''],\n variables: [\n {\n name: '',\n vartype: '',\n questions: ['', '', ''],\n required: false,\n value: '',\n defaultValue: '',\n isList: false,\n },\n ],\n };\n dataForm.sendUser = {\n message: '',\n };\n dataForm.varValue = 'vars.resposta';\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeField = (\n e: React.ChangeEvent<\n | { name?: string | undefined; value: unknown }\n | HTMLTextAreaElement\n | HTMLInputElement\n >\n ) => {\n if (!!dataForm) {\n const validatedValue = validateVarNames(e, 'name', true);\n dataForm['varValue'] = `vars.${validatedValue}`;\n setVarValue(validatedValue);\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeDidNotUnderstood = (newValue: string) => {\n if (!!dataForm && dataForm.sendUser) {\n dataForm.sendUser.messageDidNotUnderstood = newValue;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n return (\n \n \n \n {getTranslation('outputVariable')}\n \n
    \n \n \n \n \n {getTranslation('messageDidNotUnderstood')}\n \n handleChangeDidNotUnderstood(e.target.value)}\n multiline\n minRows={3}\n />\n \n
    \n
    \n
    \n );\n}\n","import { FormFieldsContainer } from '../Shared/styles';\nimport Info from 'components/inputs/Material/Info/index';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport MessageForUser from 'components/inputs/Material/MessageForUser';\nimport SendDocumentFields from 'components/inputs/SendDocumentFields';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function SendDocument() {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n}\n","import FooterButtons from 'components/inputs/Material/FooterButtons';\nimport Info from 'components/inputs/Material/Info';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function Logic() {\n return (\n <>\n \n \n \n \n \n \n );\n}\n","import FooterButtons from 'components/inputs/Material/FooterButtons';\nimport Info from 'components/inputs/Material/Info';\nimport Sentences from 'components/inputs/Material/Sentences';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function NLU() {\n return (\n <>\n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\n\nexport const Container = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const HeaderContent = styled(MttGrid)`\n width: calc(100% - 32px);\n min-height: 128px;\n\n display: flex;\n background-color: #f2f2f2;\n padding: 16px;\n\n margin-top: 8px;\n border-radius: 4px;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const HeaderOptions = styled(MttGrid)`\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const TextContainer = styled.div`\n margin-top: 16px;\n`;\n\nexport const MessageInputContainer = styled(MttGrid)`\n margin-top: 16px;\n .MuiOutlinedInput-multiline {\n background: #ffffff;\n display: flex;\n padding-bottom: 4px;\n height: 100px;\n margin-bottom: 16px;\n }\n`;\n\nexport const StyledMttTextField = styled(MttTextField)``;\n\nexport const TitleTypography = styled(MttTypography).attrs({\n variant: 'h6',\n color: 'primary',\n})``;\n","import React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport { SendUser } from 'models/DataFlow';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport * as S from './styles';\n\nexport default function ToHtmlFields() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && !dataForm.sendUser) {\n dataForm.sendUser = {\n message: '',\n url: '',\n };\n }\n }, [dataForm]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeInput = (\n key: keyof SendUser,\n e: React.ChangeEvent\n ) => {\n if (dataForm) {\n const value = e.target.value;\n\n dataForm.sendUser = dataForm.sendUser\n ? dataForm.sendUser\n : { message: '', url: '' };\n\n dataForm.sendUser[key] = value;\n dispatch({\n type: 'updateForm',\n data: { dataForm: { ...dataForm } },\n });\n }\n };\n\n return (\n \n \n \n URL\n \n handleChangeInput('url', e)}\n disabled={!!dataForm?.sendUser?.message}\n />\n \n\n \n {getTranslation('htmlCode')}\n \n handleChangeInput('message', e)}\n rows={5}\n maxRows={5}\n multiline\n disabled={!!dataForm?.sendUser?.url}\n />\n \n \n \n \n \n );\n}\n","import FooterButtons from 'components/inputs/Material/FooterButtons';\nimport Info from 'components/inputs/Material/Info';\nimport ToHtmlFields from 'components/inputs/Material/ToHtmlFields';\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function OpenHTML() {\n return (\n <>\n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const StyledMttTypographyMsgForUser = styled(MttTypography)`\n margin-bottom: 16px !important;\n`;\n\nexport const SwitchDiv = styled(MttGrid)`\n display: flex;\n align-items: center;\n padding: 16px;\n\n .MuiTypography-body1 {\n font-weight: bold;\n color: #6c50a4;\n margin-right: 24px;\n }\n\n .MuiTypography-subtitle1 {\n margin-right: 16px;\n }\n\n .MuiInputBase-input {\n max-width: 120px;\n }\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n\n padding: 8px 0;\n`;\n\nexport const Container = styled(MttGrid)`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n`;\n\nexport const MessageContainer = styled(MttGrid)`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: 8px;\n padding: 16px;\n background: #f2f2f2;\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-y: auto;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ContentMsgForUserGrid = styled.div`\n padding: 16px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const StyledMttTextField = styled(TextField)`\n background: #fff;\n`;\n","import styled from 'styled-components';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const StyledUserPhrases = styled(MttGrid)`\n height: 40px;\n margin-bottom: 8px;\n\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n`;\n\nexport const TextContainer = styled(MttGrid)`\n width: 100%;\n height: 56px;\n\tpadding: 4px;\n`;\n\nexport const StyledContainerPhrases = styled.div`\n min-height: 126px;\n max-height: 175px;\n overflow-x: hidden;\n overflow-y: auto;\n\n padding: 8px;\n border-radius: 4px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n\n div:last-child {\n margin-bottom: 0;\n }\n`;\n\nexport const SentenceInput = styled.div`\n display: flex;\n align-items: center;\n background-color: #fff;\n white-space: nowrap;\n padding: 4px 8px;\n border-radius: 4px;\n\n .FormatQuoteIcon {\n color: #3f51b5;\n }\n`;\n\nexport const StyledMttTypographyPhrase = styled(MttTypography).attrs({\n children: 'Frases de entrada',\n variant: 'h6',\n color: 'primary',\n})``;\n\nexport const StyledMttTypographyMsgForUser = styled(MttTypography).attrs({\n children: 'Mensagem para usuário',\n variant: 'h6',\n color: 'primary',\n})`\n margin-bottom: 16px !important;\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n\n padding: 8px 0;\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n max-height: 192px;\n\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-x: hidden;\n overflow-y: auto;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ContentTitlesGrid = styled(MttGrid)`\n width: 100%;\n display: flex;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\nexport const ContentMsgForUserGrid = styled.div`\n padding: 16px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const StyledMttTextField = styled(TextField)`\n background: #fff;\n`;\n\nexport const StyledDeleteIconGrid = styled(MttGrid)`\n display: flex;\n justify-content: center;\n align-items: center;\n\n margin-left: 16px;\n cursor: pointer;\n\n .MuiFormControlLabel-root {\n margin-right: 4px;\n }\n`;\n\nexport const IconsContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const ContainerOptionHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 4px;\n`;\n\nexport const ContainerOptionContent = styled.div`\n display: flex;\n align-items: center;\n\tpadding: 4px;\n`;\n\nexport const OptionIndexAndTip = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const HeaderSpan = styled.span`\n margin-left: 64px;\n`;\n\nexport const Container = styled(MttGrid)`\n width: calc(100% - 32px);\n min-height: 48px;\n\n padding: 8px;\n border-radius: 4px;\n\n border: 1px solid #0000001f;\n background-color: #ffffff;\n\n display: flex;\n flex-direction: column;\n\n margin-top: 8px;\n`;\n\nexport const GridInputDefinition = styled(MttGrid)`\n width: 100%;\n max-width: 300px;\n margin-left: 8px;\n padding-bottom: 8px;\n padding-right: 16px;\n\n input {\n color: #000;\n padding-left: 4px;\n }\n`;\n\nexport const GridDefinition = styled(MttGrid)`\n padding-left: 12px;\n padding-right: 8px;\n padding-bottom: 24px;\n height: 46px;\n`;\n\nexport const ContentSynonyms = styled(MttGrid)`\n min-width: 40%;\n display: flex;\n flex-wrap: wrap;\n max-width: 300px;\n`;\n\nexport const GridSynonym = styled(MttGrid)`\n height: 32px;\n\n margin-left: 8px;\n\n padding: 0 8px;\n margin: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n\n background-color: #f2f2f2;\n\n font-weight: 500;\n`;\n\nexport const GridCloseIcon = styled(MttGrid)`\n margin-left: 8px;\n\n color: #aeaeae;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n cursor: pointer;\n`;\n\nconst styles = {\n Container: styled.div`\n border: 2px solid #cfc5e2;\n border-radius: 3rem;\n display: flex;\n margin: 1rem;\n `,\n ChoicesContent: styled.div`\n background: #b6bad9;\n border-radius: 3rem;\n display: flex;\n flex-direction: column;\n height: 20vh;\n overflow-y: scroll;\n `,\n ChoicesLine: styled.div`\n span {\n font-size: 2em;\n }\n `,\n ButtonsContent: styled.div`\n span {\n font-weight: 600;\n\n i {\n font-style: normal;\n font-size: 0.8em;\n }\n }\n `,\n};\n\nexport default styles;\n","import { useCallback, useEffect, useState } from 'react';\n\nimport { useForm } from 'contexts/Form/formContext';\nimport CloseIcon from '@material-ui/icons/CloseRounded';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport { IconButton, TextField } from '@material-ui/core';\n\nimport * as S from './styles';\nimport { ISentencesProps } from './types';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function NewCarouselOutputsSentences(props: ISentencesProps) {\n const { index, choice, showRemoveButton } = props;\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n const [inputValue, setInputValue] = useState('');\n const [values /*,setValues*/] = useState(choice.userSentences || ['']);\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && choice) {\n if (!choice.userSentences) {\n choice.userSentences = [''];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [choice, index]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeTitle = (newTitle: string) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n if (choice.title !== 'Outros') {\n values[0] = newTitle;\n choice.title = newTitle;\n dataForm.outputs[index] = choice;\n\n if (choice.userSentences) choice.userSentences[0] = newTitle;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }\n };\n\n const handleChangeField = (\n field: 'url' | 'value' | 'description',\n newValue: string\n ) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n if (choice.title !== 'Outros') {\n choice[field] = newValue;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }\n };\n\n const handleDeleteOption = () => {\n if (!!dataForm && dataForm.outputs) {\n dataForm.outputs.splice(\n dataForm.outputs.findIndex((c) => c.title === choice.title),\n 1\n );\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleDeleteSynonym = (phraseIndex: number) => {\n if (!!dataForm && dataForm.outputs) {\n values.splice(phraseIndex, 1);\n dataForm.outputs[index].userSentences = values;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleInsertValue = (event: React.KeyboardEvent) => {\n if (choice.title !== 'Outros') {\n if (event.keyCode === 13 || event.keyCode === 9) {\n if (inputValue !== '') {\n values.push(inputValue);\n\n if (!!dataForm && dataForm.outputs) {\n dataForm.outputs[index].userSentences = values;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n setInputValue('');\n }\n }\n };\n\n const handleShowSynonyms = (item: string, index: number) => {\n if (item !== '') {\n return (\n \n {item}\n {index !== 0 && (\n handleDeleteSynonym(index)}>\n \n \n )}\n \n );\n } else return null;\n };\n\n return (\n \n {choice.title !== 'Outros' && showRemoveButton ? (\n handleDeleteOption()}\n style={{ alignSelf: 'flex-end' }}\n >\n \n \n ) : (\n <>\n )}\n \n \n \n handleChangeTitle(e.target.value)}\n label={getTranslation('outputTitle')}\n helperText={formErrors[`outputs[${index}].title`]}\n error={!!formErrors[`outputs[${index}].title`]}\n inputProps={{ maxLength: 40 }}\n />\n \n \n handleChangeField('url', e.target.value)}\n />\n \n \n handleChangeField('value', e.target.value)}\n />\n \n \n \n \n \n handleChangeField('description', e.target.value)}\n />\n \n \n \n \n setInputValue(e.target.value)}\n variant=\"standard\"\n disabled={choice.title === ''}\n fullWidth\n value={choice.title === 'Outros' ? choice.title : inputValue}\n placeholder={`${getTranslation('variables.typeSynonym')} \"${\n choice.title || ''\n }\"`}\n onKeyDown={(event) => handleInsertValue(event)}\n />\n \n \n {values.map((item, index) => handleShowSynonyms(item, index))}\n \n \n \n );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport AddIcon from '@material-ui/icons/Add';\nimport * as S from './styles';\nimport { IItensMultEscolha } from './types';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { Output } from 'models/DataFlow';\n\nimport {\n FormControlLabel,\n FormGroup,\n Radio,\n RadioGroup,\n Switch,\n TextField,\n Typography,\n} from '@material-ui/core';\n\nimport NewCarouselOutputsSentences from './NewCarouselOutputsSentences';\nimport EListType from 'enums/EListType';\nimport useTranslator from 'utils/hooks/Translator';\nimport { validateVarNames } from 'utils/String';\n\nexport default function NewCarouselContent(props: IItensMultEscolha) {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n const [varValue, setVarValue] = useState(\n dataForm?.varValue?.substring(5, dataForm?.varValue?.length) || 'resposta'\n );\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm) {\n if (dataForm.outputs && dataForm.outputs?.length === 0) {\n dataForm.outputs = [\n { title: '', isChip: false },\n { title: 'Outros', isChip: false },\n ];\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n\n if (dataForm && !dataForm.sendUser) {\n dataForm.sendUser = {\n message: '',\n messageDidNotUnderstood: '',\n url: '',\n };\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n\n if (!dataForm.varValue) {\n dataForm.varValue = 'vars.resposta';\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeDidNotUnderstoodMessage = (newValue: string) => {\n if (!!dataForm && dataForm.sendUser) {\n dataForm.sendUser.messageDidNotUnderstood = newValue;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const renderChoice = (choice: Output, index: number) => {\n return (\n
    \n {choice.title !== 'Outros' && (\n \n )}\n
    \n );\n };\n\n const handleAddChoice = () => {\n if (dataForm) {\n if (dataForm.outputs) {\n const other = dataForm.outputs.find(\n (o) => o.title.toLowerCase() === 'outros'\n );\n const newOutputs = dataForm.outputs.filter(\n (o) => o.title.toLowerCase() !== 'outros'\n );\n newOutputs.push({\n title: '',\n userMsg: '',\n userSentences: [''],\n isChip: false,\n });\n if (other) {\n newOutputs.push(other);\n }\n dataForm.outputs = newOutputs;\n } else {\n dataForm.outputs = [{ title: 'Outros' }];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeQuestion = (value: string) => {\n if (!!dataForm && !!dataForm.sendUser) {\n const sendUser = dataForm.sendUser;\n\n if (sendUser) {\n sendUser.message = value;\n dataForm.sendUser = sendUser;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n const handleChangeOrientation = () => {\n if (dataForm) {\n dataForm.listType =\n dataForm.listType === EListType.Horizontal\n ? EListType.Vertical\n : EListType.Horizontal;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeSaveVarValue = (value: boolean) => {\n if (!!dataForm) {\n dataForm.saveVarValue = value;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeVarValue = (\n e: React.ChangeEvent<\n | { name?: string | undefined; value: unknown }\n | HTMLTextAreaElement\n | HTMLInputElement\n >\n ) => {\n if (!!dataForm && dataForm.varValue) {\n const validatedVarValue = validateVarNames(e, 'name', true);\n dataForm.varValue = `vars.${validatedVarValue}`;\n \n\t\t\tsetVarValue(validatedVarValue);\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const showRemoveButton =\n !!dataForm && !!dataForm.outputs ? dataForm.outputs.length > 2 : false;\n\n return (\n \n \n \n \n {getTranslation('info.messageForUser')}\n \n \n handleChangeQuestion(e.target.value)}\n minRows={3}\n maxRows={3}\n multiline\n />\n \n \n \n \n \n }\n label={getTranslation('horizontalCarousel')}\n />\n }\n label={getTranslation('verticalCarousel')}\n />\n \n }\n onClick={handleAddChoice}\n >\n {getTranslation('addOption')}\n \n \n {dataForm?.outputs?.map(renderChoice)}\n\n \n \n {\n handleChangeSaveVarValue(e.target.checked);\n }}\n />\n }\n label={getTranslation('saveSelectedOption')}\n color=\"primary\"\n />\n \n {dataForm?.saveVarValue && (\n <>\n \n {getTranslation('outputVariable')}\n \n \n \n \n )}\n \n\n \n \n {getTranslation('messageDidNotUnderstood')}\n \n ) => {\n handleChangeDidNotUnderstoodMessage(e.target.value);\n }}\n />\n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport NewCarouselContent from 'components/inputs/Material/NewCarouselContent';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function NewCarousel() {\n return (\n <>\n \n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttTypography from 'components/Material/MttTypography/MttTypography';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport TextField from '@material-ui/core/TextField/TextField';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const StyledMttTypographyMsgForUser = styled(MttTypography).attrs({\n children: 'Mensagem quando resposta não atender nenhuma das opções acima:',\n variant: 'body1',\n color: 'primary',\n})`\n margin-bottom: 16px !important;\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n justify-content: flex-end;\n\n padding: 8px 0;\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-y: auto;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ContentMsgForUserGrid = styled.div`\n padding: 16px;\n\n background-color: #f2f2f2;\n\n .MuiInputBase-input {\n background-color: #ffffff;\n }\n`;\n\nexport const StyledMttTextField = styled(TextField)`\n background: #fff;\n`;\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const TextContainer = styled(MttGrid)`\n width: 100%;\n height: 56px;\n padding: 4px;\n\n max-width: 300px;\n\n .MuiFormControl-root {\n width: 100%;\n }\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n justify-self: flex-end;\n padding: 8px 0;\n`;\n\nexport const ContainerOptionHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 4px;\n`;\n\nexport const ContainerOptionContent = styled.div`\n display: flex;\n align-items: center;\n padding: 4px;\n\n justify-content: space-between;\n`;\n\nexport const OptionIndexAndTip = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const RulesRow = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const Rules = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const RulesContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n\n padding: 0px 16px;\n`;\n\nexport const HeaderSpan = styled.span`\n margin-left: 64px;\n`;\n\nexport const ConditionalContainer = styled.div`\n padding: 4px;\n\n .MuiOutlinedInput-root {\n max-width: 70px;\n height: 34px;\n }\n`;\n\nexport const Container = styled(MttGrid)`\n width: calc(100% - 32px);\n min-height: 48px;\n\n padding: 8px;\n border-radius: 4px;\n\n border: 1px solid #0000001f;\n background-color: #ffffff;\n\n display: flex;\n flex-direction: column;\n\n margin-top: 8px;\n`;\n","import { useCallback, useEffect, useState } from 'react';\n\nimport { useForm } from 'contexts/Form/formContext';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\n\nimport {\n FormControl,\n IconButton,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n Tooltip,\n} from '@material-ui/core';\n\nimport AddIcon from '@material-ui/icons/Add';\n\nimport * as S from './styles';\nimport { ISentencesProps } from './types';\nimport MttButton from 'components/Material/MttButton/MttButton';\n\nexport default function RulesBlockOutputsSentences(props: ISentencesProps) {\n const { index, choice, showRemoveButton } = props;\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n const [inputValue, setInputValue] = useState('');\n const [values /*,setValues*/] = useState(choice.userSentences || ['']);\n\n const [prefixVars, setPrefixVars] = useState(\n choice?.rules?.map((rule) => rule.variable.substring(0, 5)) || ['vars.']\n );\n const [varValues, setVarValues] = useState(\n choice?.rules?.map((rule) =>\n rule.variable.substring(5, rule.variable.length)\n ) || ['resposta']\n );\n\n const load = useCallback(() => {\n if (dataForm && choice) {\n if (!choice.userSentences) {\n choice.userSentences = [''];\n }\n\n if (!choice.rules) {\n choice.rules = [{ operator: '', value: '', variable: '' }];\n }\n\n if (!!choice.rulesConditionals) {\n choice.rulesConditionals = [];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [choice, index]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeTitle = (newTitle: string) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n if (choice.title !== 'Outros') {\n values[0] = newTitle;\n choice.title = newTitle;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }\n };\n\n const handleChangeField = (\n field: 'variable' | 'operator' | 'value',\n ruleIndex: number,\n newValue: string\n ) => {\n if (\n dataForm &&\n dataForm.outputs &&\n choice.rules &&\n choice.rules[ruleIndex]\n ) {\n choice.rules[ruleIndex][field] = newValue;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n const handleChangeConditional = (\n conditionalIndex: number,\n newValue: 'and' | 'or'\n ) => {\n if (\n dataForm &&\n dataForm.outputs &&\n choice.rulesConditionals &&\n choice.rulesConditionals[conditionalIndex]\n ) {\n choice.rulesConditionals[conditionalIndex].value = newValue;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n const handleDeleteOption = () => {\n if (!!dataForm && dataForm.outputs) {\n dataForm.outputs.splice(\n dataForm.outputs.findIndex((c) => c.title === choice.title),\n 1\n );\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleDeleteRule = (ruleIndex: number) => {\n if (!!dataForm && !!choice && choice.rules) {\n choice.rules.splice(ruleIndex, 1);\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleInsertValue = (event: React.KeyboardEvent) => {\n if (choice.title !== 'Outros') {\n if (event.keyCode === 13 || event.keyCode === 9) {\n if (inputValue !== '') {\n values.push(inputValue);\n\n if (!!dataForm && dataForm.outputs) {\n dataForm.outputs[index].userSentences = values;\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n setInputValue('');\n }\n }\n };\n\n const handleAddChoice = () => {\n if (choice && choice.rules)\n choice.rules.push({ operator: '', value: '', variable: '' });\n\n if (!!choice.rules && choice?.rules.length > 1) {\n choice?.rulesConditionals?.push({ value: 'and' });\n }\n\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n const handleChangeVarsPrefix = (\n prefix: boolean,\n varIndex: number,\n newValue: string\n ) => {\n let newVarValue = '';\n\n if (prefix) {\n const currVarAfterPrefix = varValues[varIndex];\n newVarValue = newValue + currVarAfterPrefix;\n\n const currVars = prefixVars;\n currVars[varIndex] = newValue;\n\n setPrefixVars(currVars);\n } else {\n const currentPrefix = prefixVars[varIndex];\n newVarValue = currentPrefix + newValue;\n varValues[varIndex] = newValue;\n\n const currValues = varValues;\n currValues[varIndex] = newValue;\n\n setVarValues(currValues);\n }\n\n if (\n dataForm &&\n dataForm.outputs &&\n dataForm.outputs[index] &&\n choice.rules\n ) {\n choice.rules[varIndex].variable = newVarValue;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n const showRemoveRuleButton =\n !!choice && !!choice.rules ? choice.rules.length > 1 : false;\n\n return (\n \n {choice.title !== 'Outros' && showRemoveButton ? (\n handleDeleteOption()}\n style={{ alignSelf: 'flex-end' }}\n >\n \n \n ) : (\n <>\n )}\n \n \n \n \n \n handleChangeTitle(e.target.value)}\n label=\"Título da Saída\"\n helperText={formErrors[`outputs[${index}].title`]}\n error={!!formErrors[`outputs[${index}].title`]}\n />\n \n \n \n }\n onClick={handleAddChoice}\n >\n adicionar regra\n \n \n \n \n \n \n \n {choice?.rules?.map((rule, index) => (\n
    \n \n \n \n \n handleChangeVarsPrefix(\n true,\n index,\n String(e.target.value)\n )\n }\n >\n vars.\n user.\n \n \n \n {prefixVars[index] === 'vars.' ? (\n \n handleChangeVarsPrefix(false, index, e.target.value)\n }\n />\n ) : (\n \n handleChangeVarsPrefix(\n false,\n index,\n String(e.target.value)\n )\n }\n >\n name\n nickname\n email\n phoneNumber\n cpf\n birthDate\n \n address.street\n \n \n address.number\n \n \n address.neighborhood\n \n address.city\n \n address.state\n \n \n address.country\n \n \n address.zipCode\n \n userData1\n userData2\n userData3\n userData4\n userData5\n \n )}\n \n \n \n Regra de validação\n \n handleChangeField(\n 'operator',\n index,\n String(e.target.value)\n )\n }\n >\n \n Correspondência Exata\n \n Contém\n Não é nulo\n É nulo\n \n \n \n \n \n handleChangeField('value', index, e.target.value)\n }\n variant=\"outlined\"\n fullWidth\n placeholder={`Valor (opcional)`}\n onKeyDown={(event) => handleInsertValue(event)}\n disabled={rule.operator === 'isNull'}\n />\n \n \n {showRemoveRuleButton && (\n \n handleDeleteRule(index)}\n style={{ justifySelf: 'flex-end' }}\n >\n \n \n \n )}\n \n {!!choice.rules &&\n !!choice?.rules[index + 1] &&\n !!choice.rulesConditionals &&\n !!choice.rulesConditionals[index] && (\n \n \n Condição\n \n handleChangeConditional(\n index,\n e.target.value as 'and' | 'or'\n )\n }\n >\n E\n OU\n \n \n \n )}\n
    \n ))}\n
    \n
    \n
    \n );\n}\n","import React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport AddIcon from '@material-ui/icons/Add';\nimport * as S from './styles';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { Output } from 'models/DataFlow';\n\nimport RulesBlockOutputsSentences from './RulesBlockOutputsSentences';\n\nexport default function RulesBlockContent() {\n const { state, dispatch } = useForm();\n const { dataForm } = state;\n\n const load = useCallback(() => {\n if (dataForm && dataForm.outputs && dataForm.outputs?.length === 0) {\n dataForm.outputs = [\n { title: '', isChip: false },\n { title: 'Outros', isChip: false },\n ];\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n inputs: {\n variables: [\n {\n name: 'resposta',\n vartype: '@sys.any',\n value: '$resposta',\n required: true,\n defaultValue: '',\n isList: false,\n questions: [''],\n isValueEdited: false,\n },\n ],\n },\n },\n },\n });\n }\n\n if (dataForm && !dataForm.sendUser) {\n dataForm.sendUser = {\n message: '',\n messageDidNotUnderstood: '',\n url: '',\n };\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeDidNotUnderstoodMessage = (newValue: string) => {\n if (!!dataForm && dataForm.sendUser) {\n dataForm.sendUser.messageDidNotUnderstood = newValue;\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const renderRule = (choice: Output, index: number) => {\n return (\n
    \n {choice.title !== 'Outros' && (\n \n )}\n
    \n );\n };\n\n const handleAddChoice = () => {\n if (dataForm) {\n if (dataForm.outputs) {\n const other = dataForm.outputs.find(\n (o) => o.title.toLowerCase() === 'outros'\n );\n const newOutputs = dataForm.outputs.filter(\n (o) => o.title.toLowerCase() !== 'outros'\n );\n newOutputs.push({\n title: '',\n userMsg: '',\n userSentences: [''],\n isChip: false,\n });\n if (other) {\n newOutputs.push(other);\n }\n dataForm.outputs = newOutputs;\n } else {\n dataForm.outputs = [{ title: 'Outros' }];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const showRemoveButton =\n !!dataForm && !!dataForm.outputs ? dataForm.outputs.length > 2 : false;\n\n return (\n \n \n }\n onClick={handleAddChoice}\n >\n adicionar saída\n \n \n {dataForm?.outputs?.map(renderRule)}\n \n \n ) => {\n handleChangeDidNotUnderstoodMessage(e.target.value);\n }}\n />\n \n \n );\n}\n","import FooterButtons from 'components/inputs/Material/FooterButtons';\nimport Info from 'components/inputs/Material/Info';\nimport RulesBlockContent from 'components/inputs/Material/RulesBlockContent';\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function Rules() {\n return (\n <>\n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n\n padding: 8px;\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-y: auto;\n`;\n\nexport const SumContainer = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n padding: 16px;\n\n .MuiTypography-h6 {\n margin: 0px 8px;\n }\n`;\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const TextContainer = styled(MttGrid)`\n width: 100%;\n height: 54px;\n padding: 4px;\n\n max-width: 300px;\n\n .MuiFormControl-root {\n width: 100%;\n }\n`;\n\nexport const ContainerOptionHeader = styled.div`\n display: flex;\n align-items: center;\n\n padding: 8px 4px;\n`;\n\nexport const OptionIndexAndTip = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const Container = styled(MttGrid)`\n width: calc(100% - 32px);\n min-height: 48px;\n\n padding: 8px;\n border-radius: 4px;\n\n border: 1px solid #0000001f;\n background-color: #ffffff;\n\n display: flex;\n flex-direction: column;\n\n margin-top: 8px;\n`;\n","import { useCallback, useEffect } from 'react';\n\nimport { useForm } from 'contexts/Form/formContext';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport { IconButton, TextField, Typography } from '@material-ui/core';\n\nimport * as S from './styles';\nimport { ISentencesProps } from './types';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function ABTestOutputsSentences(props: ISentencesProps) {\n const { index, choice, showRemoveButton, updateSum } = props;\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && choice) {\n if (!!choice.userSentences) {\n choice.userSentences = [''];\n }\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [choice, index]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n const handleChangeTitle = (newValue: string) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n if (dataForm.outputs[index].title !== 'Outros') {\n choice.title = newValue;\n dataForm.outputs[index] = choice;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n }\n };\n\n const handleDeleteOption = () => {\n if (!!dataForm && dataForm.outputs) {\n updateSum(index, dataForm.outputs[index].value || '0', 'subtract');\n dataForm.outputs.splice(index, 1);\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n return (\n \n \n \n \n handleChangeTitle(e.target.value)}\n label={getTranslation('outputTitle')}\n helperText={formErrors[`outputs[${index}].title`]}\n error={!!formErrors[`outputs[${index}].title`]}\n />\n \n \n updateSum(index, e.target.value, 'sum')}\n helperText={formErrors[`outputs[${index}].value`]}\n error={!!formErrors[`outputs[${index}].value`]}\n />\n \n \n \n {choice.title !== 'Outros' && showRemoveButton ? (\n handleDeleteOption()}>\n \n \n ) : (\n <>\n )}\n \n \n );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport AddIcon from '@material-ui/icons/Add';\nimport * as S from './styles';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { Output } from 'models/DataFlow';\nimport { Typography } from '@material-ui/core';\n\nimport ABTestOutputsSentences from './ABTestOutputsSentences';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function ABTestContent() {\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n const [sumResults, setSumResults] = useState(\n dataForm?.outputs?.findIndex((o) => !!o.value) !== -1 ? 100 : 0\n );\n const maxValue = 100;\n const { getTranslation } = useTranslator();\n\n const load = useCallback(() => {\n if (dataForm && dataForm.outputs && dataForm.outputs?.length === 0) {\n dataForm.outputs = [{ title: '', value: '0' }];\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }, [dataForm, dispatch]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n useEffect(() => {\n setSumResults(sumResults);\n }, [sumResults]);\n\n const renderChoice = (choice: Output, index: number) => {\n return (\n
    \n \n
    \n );\n };\n\n const handleAddChoice = () => {\n if (dataForm) {\n if (dataForm.outputs) {\n const other = dataForm.outputs.find(\n (o) => o.title.toLowerCase() === 'outros'\n );\n const newOutputs = dataForm.outputs.filter(\n (o) => o.title.toLowerCase() !== 'outros'\n );\n newOutputs.push({\n title: '',\n value: '0',\n });\n if (other) {\n newOutputs.push(other);\n }\n dataForm.outputs = newOutputs;\n } else {\n dataForm.outputs = [{ title: 'Outros' }];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n };\n\n const handleChangeValue = (index: number, newValue: string) => {\n if (dataForm && dataForm.outputs && dataForm.outputs[index]) {\n dataForm.outputs[index].value = newValue;\n\n if (dataForm) {\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n },\n },\n });\n }\n }\n };\n\n const updateSum = (\n index: number,\n newValue: string,\n operation?: 'sum' | 'subtract'\n ) => {\n if (Number(newValue) < 0) return;\n if (!!dataForm && !!dataForm.outputs) {\n const value = operation === 'sum' ? Number(newValue) : -Number(newValue);\n let currSum = 0;\n\n if (operation === 'sum') {\n const outputsExceptIndex = dataForm.outputs.filter((o) => {\n if (dataForm.outputs) {\n return o !== dataForm.outputs[index] ? o : null;\n }\n return null;\n });\n currSum = outputsExceptIndex.reduce((a, b) => a + Number(b.value), 0);\n } else {\n currSum = dataForm.outputs.reduce((a, b) => a + Number(b.value), 0);\n }\n\n if (currSum + value <= maxValue) {\n setSumResults(currSum + value);\n handleChangeValue(index, newValue);\n }\n }\n };\n\n const showRemoveButton =\n !!dataForm && !!dataForm.outputs\n ? dataForm.outputs.filter((o) => o.title !== 'Outros').length >= 1\n : false;\n\n return (\n \n \n \n }\n onClick={handleAddChoice}\n >\n {getTranslation('addOutput')}\n \n \n \n {dataForm?.outputs?.map(renderChoice)}\n \n
    \n \n \n
    \n {!!formErrors[`sum`] && (\n \n )}\n
    \n
    \n
    \n );\n}\n","import React from 'react';\nimport ABTestContent from 'components/inputs/Material/ABTestContent';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport MultipleTags from 'components/inputs/Material/MultipleTags';\n\nexport default function ABTest() {\n return (\n <>\n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport OptionsBlockContent from 'components/inputs/Material/OptionsBlockContent';\n\nexport default function FalaGPT() {\n return (\n <>\n \n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const GridContainer = styled(MttGrid)`\n margin: 16px;\n`;\n\nexport const ContainerButton = styled(MttGrid)`\n display: flex;\n justify-content: space-between;\n\n padding: 8px;\n`;\n\nexport const ContentGrid = styled(MttGrid)`\n width: calc(100% - 32px);\n\n padding: 16px;\n\n border-radius: 4px;\n\n background-color: #f2f2f2;\n display: flex;\n flex-direction: column;\n\n overflow-y: auto;\n\n\t.MuiOutlinedInput-input {\n background: #fff;\n }\n`;\n","import { shade } from 'polished';\nimport styled from 'styled-components';\n\nexport const OutputContent = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n\n .MuiFormControl-root {\n margin: 8px;\n }\n\n .MuiOutlinedInput-input {\n background: #fff;\n }\n\n .MuiIconButton-root {\n background: #6c50a4;\n\n &:hover {\n background: ${shade(0.3, '#6c50a4')};\n }\n }\n`;\n","import { TextField } from '@material-ui/core';\nimport { Output } from 'models/DataFlow';\nimport useTranslator from 'utils/hooks/Translator';\nimport * as S from './styles';\n\nexport function FlexBlockContentOutputs({\n index,\n output,\n}: {\n index: number;\n output: Output;\n}) {\n const { getTranslation } = useTranslator();\n\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport { useForm } from 'contexts/Form/formContext';\nimport { FormHelperText, TextField, Typography } from '@material-ui/core';\nimport * as S from './styles';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport { FlexBlockContentOutputs } from './FlexBlockContentOutputs';\nimport { infoFormMask } from 'models/InfoForm';\n\nexport default function FlexBlockContent() {\n const { state, dispatch } = useForm();\n const { dataForm, formErrors } = state;\n\n const { getTranslation } = useTranslator();\n\n const handleChangeEntryName = (newName: string) => {\n if (dataForm) {\n const valueWithMask = infoFormMask['name'](newName);\n dispatch({\n type: 'updateForm',\n data: {\n dataForm: {\n ...dataForm,\n entryName: valueWithMask,\n dataBlockly: {\n compiledPayload: `event('flex-${dataForm.name}_${newName}')`,\n lastVersion: dataForm.dataBlockly?.lastVersion || 0,\n payload: dataForm.dataBlockly?.payload || '',\n xml: dataForm.dataBlockly?.xml || '',\n },\n },\n },\n });\n }\n };\n\n return (\n \n \n \n handleChangeEntryName(e.target.value)}\n label={'Nome da Entrada'}\n style={{ marginTop: '16px' }}\n\t\t\t\t\terror={!!formErrors['entryName']}\n\t\t\t\t\t/>\n {formErrors['entryName']}\n \n\n \n {dataForm?.outputs && dataForm?.outputs.length > 0 && (\n \n \n \n )}\n {dataForm?.outputs?.map((output, index) => (\n \n ))}\n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport { FormFieldsContainer } from '../Shared/styles';\nimport FlexBlockContent from 'components/inputs/Material/FlexBlockContent';\n\nexport default function FlexBlock() {\n return (\n <>\n \n \n \n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function FlexBlockExit() {\n return (\n <>\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport FooterButtons from 'components/inputs/Material/FooterButtons/index';\nimport Info from 'components/inputs/Material/Info/index';\nimport { FormFieldsContainer } from '../Shared/styles';\n\nexport default function FlexBlockEntry() {\n return (\n <>\n \n \n \n \n \n );\n}\n","import { Snackbar } from '@material-ui/core';\nimport AppBar from '@material-ui/core/AppBar';\nimport Dialog from '@material-ui/core/Dialog';\nimport IconButton from '@material-ui/core/IconButton';\nimport Slide from '@material-ui/core/Slide';\nimport { createStyles, makeStyles, Theme } from '@material-ui/core/styles';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport Typography from '@material-ui/core/Typography';\nimport CloseIcon from '@material-ui/icons/Close';\nimport MuiAlert, { AlertProps } from '@material-ui/lab/Alert';\nimport React, { useMemo, useState } from 'react';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { FormProvider } from 'contexts/Form/formContext';\nimport EIntentType from 'enums/EIntentType';\nimport Advanced from 'views/dataEntries/Advanced';\nimport CarouselChild from 'views/dataEntries/CarouselChild';\nimport CarouselParent from 'views/dataEntries/CarouselParent';\nimport InitialFlow from 'views/dataEntries/InitialFlow';\nimport MultipleChoiceChild from 'views/dataEntries/MultipleChoiceChild';\nimport MultipleChoiceParent from 'views/dataEntries/MultipleChoiceParent';\nimport NewGroup from 'views/dataEntries/NewGroup';\nimport QuestionsAndAnswers from 'views/dataEntries/QuestionsAndAnswers';\nimport './styles.css';\nimport { ContainerDialog } from './style';\nimport Welcome from 'views/dataEntries/Welcome';\nimport Fallback from 'views/dataEntries/Fallback';\nimport Cancel from 'views/dataEntries/Cancel';\nimport Others from 'views/dataEntries/Outhers';\nimport SaveTable from 'views/dataEntries/SaveTable';\nimport OptionsBlock from 'views/dataEntries/OptionsBlock';\nimport MessageForUser from 'views/dataEntries/SendMessage';\nimport SimpleQuestion from 'views/dataEntries/SimpleQuestion';\nimport SendDocument from 'views/dataEntries/SendDocument';\nimport Logic from 'views/dataEntries/Logic';\nimport NLU from 'views/dataEntries/NLU';\nimport OpenHTML from 'views/dataEntries/OpenHTML';\nimport NewCarousel from 'views/dataEntries/NewCarousel';\nimport Rules from 'views/dataEntries/Rules';\nimport ABTest from 'views/dataEntries/ABTest';\nimport useTranslator from 'utils/hooks/Translator';\nimport { useTranslation } from 'react-i18next';\nimport FalaGPT from 'views/dataEntries/FalaGPT';\nimport FlexBlock from 'views/dataEntries/FlexBlock';\nimport FlexBlockExit from 'views/dataEntries/FlexBlockExit';\nimport FlexBlockEntry from 'views/dataEntries/FlexBlockEntry';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n appBar: {\n position: 'relative',\n background: theme.palette.primary.main,\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n })\n);\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalForms() {\n const classes = useStyles();\n\n const { state, dispatch } = useFlow();\n const { toastNotification } = state;\n\n const [title, setTitle] = useState('');\n const { getTranslation } = useTranslator();\n const { language } = useTranslation().i18n;\n\n const headerColor = '#6c50a4';\n\n const handleClose = () => {\n dispatch({ type: 'closeModalForms' });\n };\n\n const form = useMemo(() => {\n switch (state.dataForm?.intentType) {\n case EIntentType.InitialFlow: {\n setTitle(getTranslation('intents.initialFlow'));\n return ;\n }\n case EIntentType.MultipleChoiceParent: {\n setTitle(getTranslation('intents.extractVariables'));\n return ;\n }\n case EIntentType.MultipleChoiceChild: {\n setTitle(getTranslation('intents.extractVariablesChild'));\n return ;\n }\n case EIntentType.CarouselParent: {\n setTitle(getTranslation('intents.oldCarousel'));\n return ;\n }\n case EIntentType.CarouselChild: {\n setTitle(getTranslation('intents.oldCarouselChild'));\n return ;\n }\n case EIntentType.QuestionsAndAnswers: {\n setTitle(getTranslation('intents.questionAndInput'));\n return ;\n }\n case EIntentType.Advanced: {\n setTitle(getTranslation('intents.advanced'));\n return ;\n }\n case EIntentType.NewGroup: {\n setTitle(getTranslation('intents.newGroup'));\n return ;\n }\n case EIntentType.Welcome: {\n setTitle(getTranslation('intents.welcome'));\n return ;\n }\n case EIntentType.Fallback: {\n setTitle(getTranslation('intents.fallback'));\n return ;\n }\n case EIntentType.Cancel: {\n setTitle(getTranslation('intents.cancel'));\n return ;\n }\n case EIntentType.Others: {\n setTitle(getTranslation('intents.others'));\n return ;\n }\n case EIntentType.SaveTable: {\n setTitle('Salvar tabela');\n return ;\n }\n case EIntentType.OptionsBlock: {\n setTitle(getTranslation('intents.optionsBlock'));\n return ;\n }\n case EIntentType.SendMessage: {\n setTitle(getTranslation('intents.sendMessage'));\n return ;\n }\n case EIntentType.SimpleQuestion: {\n setTitle(getTranslation('intents.simpleQuestion'));\n return ;\n }\n case EIntentType.SendDocument: {\n setTitle(getTranslation('intents.sendDocument'));\n return ;\n }\n case EIntentType.Logic: {\n setTitle(getTranslation('intents.logic'));\n return ;\n }\n case EIntentType.NLU: {\n setTitle(getTranslation('intents.nlu'));\n return ;\n }\n case EIntentType.OpenHTML: {\n setTitle(getTranslation('intents.toHtml'));\n return ;\n }\n case EIntentType.Carousel: {\n setTitle(getTranslation('intents.carousel'));\n return ;\n }\n case EIntentType.Rules: {\n setTitle(getTranslation('intents.rulesBlock'));\n return ;\n }\n case EIntentType.ABTest: {\n setTitle(getTranslation('intents.abTest'));\n return ;\n }\n case EIntentType.FalaGPT: {\n setTitle('FalaGPT');\n return ;\n\t\t\t}\n case EIntentType.FlexBlock: {\n setTitle('Cria Flex');\n return ;\n }\n case EIntentType.FlexBlockExit: {\n setTitle('Saída do FlexBlock');\n return ;\n }\n case EIntentType.FlexBlockEntry: {\n setTitle('Entrada do FlexBlock');\n return ;\n }\n default: {\n setTitle(getTranslation('intents.initialFlow'));\n return ;\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.dataForm?.intentType, language]);\n\n function handleCloseAlert(event?: React.SyntheticEvent, reason?: string) {\n if (reason === 'clickaway') {\n return;\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n toastNotification: {\n message: '',\n show: false,\n type: 'success',\n },\n },\n });\n }\n\n function Alert(props: AlertProps) {\n return ;\n }\n\n return (\n \n \n \n \n \n \n {title}\n \n \n \n \n \n \n {form}\n \n \n {toastNotification.message}\n \n \n \n \n \n );\n}\n","import { Grid, Typography } from \"@material-ui/core\";\nimport styled from \"styled-components\";\nimport MttButton from \"../Material/MttButton/MttButton\";\nimport MttTextField from \"../Material/MttTextField/MttTextFIeld\";\n\nexport const InputName = styled(MttTextField)``;\n\nexport const ButtonSave = styled(MttButton)`\n height: 56px;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 8px 0;\n width:100%;\n`;\n\nexport const ButtonsContainer = styled(Grid)`\n padding: 8px;\n width:100%; \n display:flex;\n justify-content: flex-end;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant:'h6'\n})`\n color:#6c50a4;\n padding-bottom: 8px;\n`;","import React, { useState } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Slide from '@material-ui/core/Slide';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nimport './styles.css';\nimport * as S from './styles';\n\nimport { CircularProgress } from '@material-ui/core';\nimport { INewGroup, newGroupMask, newGroupValidation } from 'models/NewGroup';\nimport { emptyFlow } from 'contexts/Flow/staticData';\nimport {\n BlockGroupAccess,\n ReleaseGroupAccess,\n SaveGroup,\n UpdateGroup,\n} from 'services/FlowService';\nimport { useApp } from 'contexts/App/appContext';\nimport { isEmptyFlow } from 'utils/Helpers';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalNewGroup() {\n const { state, dispatch, toastNotification, startEditing } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { getTranslation } = useTranslator();\n\n const [load, setLoad] = useState(false);\n const [newGroup, setNewGroup] = useState({\n name: '',\n description: '',\n unidBus: '',\n });\n const [errors, setErrors] = useState>({\n name: '',\n });\n\n async function handleCreateGroup() {\n const sBotAndGroup = localStorage.getItem('current_bot_group');\n\n if (state.editorFlow && sBotAndGroup && state.isEditing) {\n const { groupName } = JSON.parse(sBotAndGroup);\n\n if (!state.botName) return;\n\n await ReleaseGroupAccess(\n {\n bot_name: state.botName,\n groupName,\n },\n dispatchApp\n );\n\n if (!isEmptyFlow(state))\n await UpdateGroup(\n {\n bot_name: state.botName,\n group_name: groupName,\n blocks: {\n drawflow: state.editorFlow.drawflow.drawflow,\n },\n },\n dispatchApp\n );\n }\n\n newGroup.error = getTranslation('validations.required', {\n field: getTranslation('name'),\n });\n\n const { isValid, errors } = await newGroupValidation(newGroup);\n setErrors(errors);\n\n if (!isValid) return;\n\n let groups = state.groupsNames;\n\n if (newGroup.name.startsWith('flex-')) {\n setErrors({ name: \"Nome do grupo não pode começar com 'flex-'\" });\n return;\n }\n\n const groupExist = !!groups.find(\n (g) => g.toLowerCase() === newGroup.name.toLowerCase()\n );\n\n if (groupExist) {\n setErrors({ name: getTranslation('validations.groupAlreadyExists') });\n return;\n }\n\n if (state.editorFlow) state.editorFlow.editor_mode = 'edit';\n dispatch({ type: 'isEditing' });\n dispatch({ type: 'closeModalBlockedGroup' });\n dispatch({ type: 'closeModalUsedGroup' });\n dispatch({ type: 'closeModalWarning' });\n\n setLoad(true);\n const bots = [...state.botsNames];\n const bot = state.botName;\n const drawflow = emptyFlow;\n\n const resultFlows = await SaveGroup(\n {\n bot_name: bot || '',\n group_name: newGroup.name,\n request: {\n groups: [\n {\n drawflow,\n groupId: newGroup.name,\n groupName: newGroup.name,\n bot: bot || '',\n },\n ],\n },\n },\n dispatchApp\n );\n\n if (resultFlows.Success) {\n await UpdateGroup(\n {\n bot_name: bot || '',\n group_name: newGroup.name,\n blocks: { drawflow: { Home: { data: {} } } },\n },\n dispatchApp\n );\n\n let sNewGroup = newGroup.name;\n let sBot = '';\n\n if (bot) {\n state.bot._id = resultFlows.Data.data._id;\n state.bot.version = state.bot.version + 1;\n sBot = bot;\n }\n\n groups.push(newGroup.name);\n\n if (!!state.editorFlow) {\n state.editorFlow.clear();\n }\n\n const principalIndex = groups.findIndex((group) => group === 'principal');\n\n const principal = groups[principalIndex];\n\n if (principalIndex >= 0) {\n groups.splice(principalIndex, 1);\n groups = [principal, ...groups];\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n botsNames: [...bots],\n groupsNames: groups,\n idGroup: newGroup.name,\n drawFlowRef: drawflow.drawflow,\n },\n });\n\n dispatch({ type: 'closeModalCreateGroup' });\n setNewGroup({ name: '', description: '', unidBus: '' });\n\n localStorage.setItem(\n 'current_bot_group',\n JSON.stringify({ botName: sBot, groupName: sNewGroup })\n );\n\n await BlockGroupAccess(\n {\n groupName: newGroup.name,\n bot_name: bot || '',\n },\n dispatchApp\n );\n\n startEditing();\n } else {\n toastNotification(\n 'error',\n resultFlows.Message || getTranslation('toast.error.saveGroup')\n );\n }\n setLoad(false);\n }\n\n const handleChangeInput =\n (key: keyof INewGroup) => (e: React.ChangeEvent) => {\n const valueWithMask = newGroupMask[key](e.target.value);\n setNewGroup((old) => ({ ...old, [key]: valueWithMask }));\n setErrors((old) => ({ ...old, [key]: '' }));\n };\n\n function handleCancel() {\n dispatch({ type: 'closeModalCreateGroup' });\n setNewGroup({ name: '', description: '', unidBus: '' });\n setErrors({ name: '', description: '', unidBus: '' });\n }\n\n if (!state.openModalCreateGroup) return <>;\n\n return (\n \n \n {getTranslation('createNewGroup')}\n \n \n \n \n \n \n \n \n {getTranslation('saveGroup')}\n {load && }\n \n \n {getTranslation('cancel')}\n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { createStyles, Grid, makeStyles, Theme, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 55vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ImportExportContainer = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n`;\n\nexport const ImportExportButtons = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n button {\n margin: 10px;\n }\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 8px 0;\n\n .MuiInput-root {\n padding: 12px;\n border: solid 1px rgba(0, 0, 0, 0.1);\n border-radius: 5px;\n background: #ffffff;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n\n .MuiInputBase-multiline {\n padding: 0;\n }\n`;\n\nexport const SavedBlocksContainer = styled(Grid)`\n display: flex;\n\n padding: 8px 0;\n`;\n\nexport const Section = styled(MttGrid)<{ selected?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 4px 8px;\n margin-right: 6px;\n\n background-color: ${(props) => (props.selected ? '#6C50A41A' : '#FFFFFF')};\n\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2);\n\n span {\n font-weight: 500;\n }\n\n div {\n opacity: 0.6;\n }\n\n &:hover {\n background-color: ${(props) => (props.selected ? 'null' : '#f2f2f2')};\n }\n`;\n\nexport const SavedBlocks = styled(Grid)`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: 55%;\n height: 20rem;\n`;\nexport const ContainerRight = styled(Grid)`\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-end;\n\n width: 45%;\n`;\n\nexport const Description = styled(Grid)`\n display: flex;\n flex-direction: column;\n\n border-radius: 5px;\n background: #ffffff;\n height: 16rem;\n width: 100%;\n\n margin-bottom: 16px;\n box-sizing: border-box;\n padding: 16px;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n width: 60%;\n`;\n\nexport const ContainerDivider = styled.div`\n .MuiDivider-root {\n height: 2px;\n color: #aeaeae;\n }\n`;\n\nexport const ContainerDetails = styled.div`\n padding: 16px;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n\n buttonUpload: {\n background: '#919191',\n color: '#FFFFFF',\n letterSpacing: 2,\n borderRadius: 8,\n },\n })\n);\n","import { ILibraryContextActions, ILibraryContextState } from \"./types\";\n\nexport const initialState = {\n templateList: [],\n blockToSaveList: [],\n} as ILibraryContextState;\n\nexport function reducerLibrary(\n state: ILibraryContextState,\n action: ILibraryContextActions\n): ILibraryContextState {\n switch (action.type) {\n case \"saveBlockSet\":\n return functionsReducer[action.type](state, action.data);\n default:\n return state;\n }\n}\n\nconst functionsReducer = {\n saveBlockSet: (state: ILibraryContextState, data?: Partial) => {\n return { ...state, ...data };\n },\n}\n\nexport type ILibraryContextActionsTypes = keyof typeof functionsReducer;\n","import { createContext, useContext, useReducer } from \"react\";\nimport { initialState, reducerLibrary } from \"./libraryReducer\";\nimport { ILibraryContext, ILibraryProviderProps } from \"./types\";\n\nconst LibraryContext = createContext({} as ILibraryContext);\n\nexport const LibraryProvider: React.FC = (\n props: ILibraryProviderProps\n) => {\n const { children } = props;\n const [state, dispatch] = useReducer(reducerLibrary, initialState);\n\n return (\n \n {children}\n \n )\n}\n\nexport function useLibrary(): ILibraryContext {\n const context = useContext(LibraryContext);\n return context;\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetLibraryRequest,\n IGetLibraryResponse,\n IRemoveLibraryRequest,\n IRemoveLibraryResponse,\n ISaveLibraryRequest,\n ISaveLibraryResponse,\n IUpdateLibraryRequest,\n} from './types';\n\nexport const GetLibrary = async (\n request: IGetLibraryRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/libraries`;\n return json('GET', action, dispatch);\n};\n\nexport const SaveLibrary = async (\n request: ISaveLibraryRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/libraries`;\n return json('POST', action, dispatch, request);\n};\n\nexport const UpdateLibrary = async (\n botName: string,\n request: IUpdateLibraryRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${botName}/libraries/${request.name}`;\n return json('PATCH', action, dispatch, request);\n};\n\nexport const RemoveLibrary = async (\n request: IRemoveLibraryRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/libraries/${request.library_name}`;\n return json('DELETE', action, dispatch);\n};\n","import styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid) <{ colorHeader?: string }>`\n width: 55vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 8px 0;\n\n .MuiInput-root {\n padding: 12px;\n border: solid 1px rgba(0, 0, 0, 0.1);\n border-radius: 5px;\n background: #ffffff;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n\n .MuiInputBase-multiline {\n padding: 0;\n }\n`;\n\nexport const TemplatesContainer = styled(Grid)`\n display: flex;\n\n padding: 8px 0;\n`;\n\nexport const Section = styled(MttGrid)<{ selected?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 4px 8px;\n margin-right: 6px;\n\n background-color: ${(props) => (props.selected ? '#6C50A41A' : '#FFFFFF')};\n\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2);\n\n span {\n font-weight: 500;\n }\n\n div {\n opacity: 0.6;\n }\n\n &:hover {\n background-color: ${(props) => (props.selected ? 'null' : '#f2f2f2')};\n }\n`;\n\nexport const Templates = styled(Grid)`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: 55%;\n height: 20rem;\n`;\n\nexport const Description = styled(Grid)`\n display: flex;\n flex-direction: column;\n\n width: 45%;\n border-radius: 5px;\n background: #ffffff;\n padding: 16px 16px;\n`;\n\nexport const DescriptionInfo = styled(Grid)`\n display: flex;\n flex-direction: column;\n\n padding-top: 16px;\n\n span {\n padding-top: 8px;\n opacity: 0.7;\n }\n`;\n\nexport const ButtonsContainer = styled(Grid)`\n padding: 16px 0;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\nexport const ContainerDivider = styled.div`\n .MuiDivider-root {\n height: 2px;\n color: #aeaeae;\n }\n`;\n","export const formatDate = (date: Date | string | undefined) => {\n if (!date) return;\n return date instanceof Date ? dateBr(date) : dateBr(new Date(date));\n};\n\nexport const dateBr = (date: Date) => {\n return `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;\n};\n\nexport const hour = (date: Date) => {\n\tconst diffTimeZoneInHours = date.getTimezoneOffset() / 60;\n\treturn `${date.getHours() - diffTimeZoneInHours}:${\n date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes()\n }`;\n};\n\nexport const formatDateHour = (date: Date | string | undefined) => {\n if (!date) return;\n const dateFormatted =\n date instanceof Date ? dateBr(date) : dateBr(new Date(date));\n const hourFormatted = date instanceof Date ? hour(date) : hour(new Date(date));\n return `${dateFormatted} ${hourFormatted}`;\n};\n","import React, { ChangeEvent, useCallback, useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SearchIcon from '@material-ui/icons/Search';\nimport Autocomplete from '@material-ui/lab/Autocomplete/Autocomplete';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport {\n Dialog,\n Divider,\n InputAdornment,\n Slide,\n TextField,\n Tooltip,\n} from '@material-ui/core';\n\nimport PublishIcon from '@material-ui/icons/Publish';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nimport './styles.css';\nimport {\n ContainerDialog,\n ContainerHeader,\n FieldContainer,\n SavedBlocksContainer,\n Button,\n ContainerRight,\n ModalTitle,\n SavedBlocks,\n Description,\n Section,\n ContainerDivider,\n ContainerDetails,\n ImportExportContainer,\n ImportExportButtons,\n useStyles,\n} from './styles';\n\nimport { CircularProgress } from '@material-ui/core';\nimport { useLibrary } from 'contexts/Library/libraryContext';\nimport {\n GetLibrary,\n RemoveLibrary,\n SaveLibrary,\n UpdateLibrary,\n} from 'services/LibraryService';\nimport AddBlockToFlowController from 'controllers/library/AddBlockToFlowController';\nimport { DataFlow } from 'models/DataFlow';\nimport GetOffsetPositionFlowController from 'controllers/library/GetOffsetPositionFlowController';\nimport { DescriptionInfo } from '../ModalStandardTemplates/styles';\nimport { formatDate } from 'utils/Date';\nimport { useApp } from 'contexts/App/appContext';\nimport { Block } from 'contexts/Library/types';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalSavedBlocks() {\n const { dispatch: dispatchApp } = useApp();\n const { state, dispatch, toastNotification, mountNodeContent } = useFlow();\n const { botName } = state;\n const classes = useStyles();\n\n const options = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\n const [search, setSearch] = useState('');\n const [load, setLoad] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(null);\n const { getTranslation } = useTranslator();\n\n const { state: libraryState, dispatch: libraryDispatch } = useLibrary();\n\n const loadLibrary = useCallback(async () => {\n if (state.openModalSavedBlocks) {\n const result = await GetLibrary({ bot_name: botName || '' }, dispatchApp);\n if (result.Success) {\n libraryDispatch({\n type: 'saveBlockSet',\n data: { blockToSaveList: result.Data.data },\n });\n } else {\n toastNotification(\n 'error',\n result.Message || getTranslation('toast.error.getBlocks')\n );\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.openModalSavedBlocks, botName, libraryDispatch, toastNotification]);\n\n useEffect(() => {\n setLoad(true);\n setSearch('');\n loadLibrary();\n setLoad(false);\n }, [loadLibrary]);\n\n function handleClose() {\n setSelectedIndex(null);\n dispatch({ type: 'closeModalSavedBlocks' });\n }\n\n if (!state.openModalSavedBlocks) return <>;\n\n const handleSelectBlock = (index: number) => {\n setSelectedIndex(index);\n };\n\n const handleRemoveBlock = async (index: number) => {\n if (load) return;\n setLoad(true);\n const library = [...libraryState.blockToSaveList];\n const result = await RemoveLibrary(\n {\n bot_name: botName || '',\n library_name: library[index].name,\n },\n dispatchApp\n );\n if (result.Success) {\n toastNotification('success', getTranslation('toast.success.deleteBlock'));\n setSelectedIndex(null);\n await loadLibrary();\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.deleteBlock') || result.Message\n );\n }\n setLoad(false);\n };\n\n const handleExportOneBlock = async (index: number) => {\n const library = [...libraryState.blockToSaveList];\n const { name, _id, description, author, created_at, last_updated, blocks } =\n library[index];\n\n const savedBlocksData = {\n name,\n _id,\n description,\n author,\n created_at,\n last_updated,\n };\n const blockToSave = {\n savedBlocksData: savedBlocksData,\n drawflow: {\n Home: {\n data: blocks,\n },\n },\n };\n\n const documentHtml = document.getElementById('drawflow');\n const dataStr =\n 'data:text/json;charset=utf-8,' +\n encodeURIComponent(JSON.stringify(blockToSave));\n const dlAnchorElem = document.createElement('a');\n documentHtml?.appendChild(dlAnchorElem);\n if (dlAnchorElem) {\n dlAnchorElem.setAttribute('href', dataStr);\n const dateGenerated = new Date();\n const dataFormated =\n dateGenerated.getDate() +\n '-' +\n dateGenerated.getMonth() +\n '-' +\n dateGenerated.getFullYear() +\n '-' +\n dateGenerated.getHours() +\n '-' +\n dateGenerated.getMinutes();\n dlAnchorElem.setAttribute(\n 'download',\n `dataflow-${blockToSave.savedBlocksData.name}-${dataFormated}.json`\n );\n dlAnchorElem.click();\n dlAnchorElem.parentNode?.removeChild(dlAnchorElem);\n }\n };\n\n const handleUpdateBlock = async (index: number) => {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n uploadInput.type = 'file';\n uploadInput.accept = 'application/json';\n uploadInput.onchange = async (e: any) => {\n const file: File = e.target.files?.item(0);\n const drawflow = JSON.parse(await file.text());\n\n if (drawflow.drawflow) {\n if (drawflow.drawflow.Home) {\n if (drawflow.drawflow.Home.data) {\n const library = libraryState;\n library.blockToSaveList[index].blocks = drawflow.drawflow.Home.data;\n\n const updateLibraryResult = await UpdateLibrary(\n botName || '',\n library.blockToSaveList[index],\n dispatchApp\n );\n if (updateLibraryResult.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.blocksUpdated')\n );\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.blocksUpdated')\n );\n }\n loadLibrary();\n }\n } else\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidBlock')\n );\n } else\n toastNotification('error', getTranslation('toast.error.invalidBlock'));\n\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n const handleExportAllBlocks = () => {\n const library = { savedBlocks: [...libraryState.blockToSaveList] };\n\n const documentHtml = document.getElementById('drawflow');\n const dataStr =\n 'data:text/json;charset=utf-8,' +\n encodeURIComponent(JSON.stringify(library));\n const dlAnchorElem = document.createElement('a');\n documentHtml?.appendChild(dlAnchorElem);\n if (dlAnchorElem) {\n dlAnchorElem.setAttribute('href', dataStr);\n const dateGenerated = new Date();\n const dataFormated =\n dateGenerated.getDate() +\n '-' +\n dateGenerated.getMonth() +\n '-' +\n dateGenerated.getFullYear() +\n '-' +\n dateGenerated.getHours() +\n '-' +\n dateGenerated.getMinutes();\n dlAnchorElem.setAttribute(\n 'download',\n `${state.botName}-blocos-salvos-${dataFormated}.json`\n );\n dlAnchorElem.click();\n dlAnchorElem.parentNode?.removeChild(dlAnchorElem);\n }\n };\n\n const handleAddBlocks = async (\n savedBlocks: Block[],\n erroredBlocks: string[]\n ) => {\n savedBlocks.forEach(async (block) => {\n if (!libraryState.blockToSaveList.some((b) => b.name === block.name)) {\n libraryState.blockToSaveList.push(block);\n\n await SaveLibrary(\n {\n ...block,\n bot_name: botName || '',\n },\n dispatchApp\n );\n\n loadLibrary();\n } else {\n erroredBlocks.push(block.name);\n }\n });\n return erroredBlocks;\n };\n\n const handleImportSingleBlock = async () => {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n\n uploadInput.type = 'file';\n uploadInput.accept = 'application/json';\n\n uploadInput.onchange = async (e: any) => {\n const file: File = e.target.files?.item(0);\n const drawflow = JSON.parse(await file.text());\n\n if (drawflow.drawflow) {\n if (drawflow.drawflow.Home) {\n if (drawflow.drawflow.Home.data) {\n const block = drawflow.drawflow.Home.data;\n const savedBlocks: Block[] = [];\n savedBlocks.push({\n name: drawflow.savedBlocksData?.name || file.name,\n description: drawflow.savedBlocksData?.description || '',\n blocks: block,\n });\n\n const erroredBlocks = await handleAddBlocks(savedBlocks, []);\n\n if (erroredBlocks.length > 0) {\n let sErroredBlocks = '[';\n\n erroredBlocks.map((block) => {\n return (sErroredBlocks += `${block}, `);\n });\n\n sErroredBlocks = sErroredBlocks.substring(\n 0,\n sErroredBlocks.length - 2\n );\n sErroredBlocks += ']';\n\n toastNotification(\n 'error',\n getTranslation('toast.error.importBlockCollection', {\n blocks: sErroredBlocks,\n })\n );\n } else {\n toastNotification(\n 'success',\n getTranslation('toast.success.blockUploaded')\n );\n }\n\n loadLibrary();\n }\n } else\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidBlock')\n );\n } else\n toastNotification('error', getTranslation('toast.error.invalidBlock'));\n\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n const handleImportBlocks = () => {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n\n uploadInput.type = 'file';\n uploadInput.accept = 'application/json';\n\n uploadInput.onchange = async (e: any) => {\n const file = e.target.files?.item(0);\n const blocksSaved = JSON.parse(await file.text());\n\n const erroredBlocks: string[] = [];\n\n if (blocksSaved.savedBlocks) {\n if (blocksSaved.savedBlocks.length >= 0) {\n const savedBlocks: Block[] = blocksSaved.savedBlocks;\n\n const errors = await handleAddBlocks(savedBlocks, erroredBlocks);\n\n if (errors.length > 0) {\n let sErroredBlocks = '[';\n\n erroredBlocks.map((block) => {\n return (sErroredBlocks += `${block}, `);\n });\n\n sErroredBlocks = sErroredBlocks.substring(\n 0,\n sErroredBlocks.length - 2\n );\n sErroredBlocks += ']';\n\n toastNotification(\n 'error',\n getTranslation('toast.error.importBlockCollection', {\n blocks: sErroredBlocks,\n })\n );\n }\n }\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidBlockCollection')\n );\n }\n };\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n const isSelected = (index: number) => {\n return selectedIndex === index;\n };\n\n const renderDetails = () => {\n if (selectedIndex === null) return <>;\n const block = libraryState.blockToSaveList[selectedIndex];\n return (\n \n {block.name} \n \n {getTranslation('modal.templates.description')}\n {block.description}\n {getTranslation('modal.templates.createdBy')}\n {block?.author || ''}\n {getTranslation('modal.templates.createdAt')}\n {formatDate(block?.created_at || '')}\n \n \n );\n };\n\n const isDisabled = () => {\n return selectedIndex === null;\n };\n\n const handleSendToFlow = async () => {\n if (state.editorFlow?.drawflow && selectedIndex != null) {\n const { editorFlow } = state;\n\n const offsetPosition = new GetOffsetPositionFlowController(\n editorFlow\n ).getLastPosition();\n\n const drawflowCurrent = { ...editorFlow.drawflow };\n const controller = new AddBlockToFlowController(\n drawflowCurrent,\n state.idGroup || '',\n offsetPosition\n );\n await controller.addBlock(\n libraryState.blockToSaveList[selectedIndex].blocks\n );\n const drawflow = controller.getDrawflow();\n\n editorFlow.clear();\n editorFlow.import(drawflow);\n const dataFlow: DataFlow = drawflow.drawflow.Home.data;\n mountNodeContent(dataFlow);\n handleClose();\n }\n };\n\n return (\n \n \n \n \n {getTranslation('modal.blocks.title')}\n \n \n \n \n \n \n option)}\n renderInput={(params) => (\n ) =>\n setSearch(e.target.value)\n }\n InputProps={{\n type: 'search',\n startAdornment: (\n \n \n \n ),\n }}\n fullWidth\n />\n )}\n />\n \n \n \n {load ? (\n \n ) : (\n libraryState.blockToSaveList\n .map((renderCardList, index) => ({\n renderCardList,\n index,\n }))\n .filter(\n (item) =>\n item.renderCardList.name\n .toLowerCase()\n .indexOf(search.toLowerCase()) > -1 || !search\n )\n .sort((a, b) =>\n a.renderCardList.name.localeCompare(\n b.renderCardList.name,\n undefined,\n { sensitivity: 'base' }\n )\n )\n .map((item, index) => (\n <>\n handleSelectBlock(item.index)}\n selected={isSelected(item.index)}\n >\n {item.renderCardList.name}\n
    \n \n handleUpdateBlock(item.index)}\n >\n \n \n \n \n handleExportOneBlock(item.index)}\n >\n \n \n \n \n handleRemoveBlock(item.index)}\n >\n \n \n \n
    \n \n \n \n \n \n ))\n )}\n
    \n \n {renderDetails()}\n \n
    \n \n \n \n {getTranslation('modal.blocks.importBlock')}\n \n \n {getTranslation('modal.blocks.importCollection')}\n \n \n {getTranslation('modal.blocks.exportCollection')}\n \n \n \n \n {getTranslation('modal.templates.sendToFlowButton')}\n \n \n \n
    \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 55vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const SelectedBlocks = styled(Grid)`\n display: flex;\n flex-direction: column;\n padding-bottom: 16px;\n\n span {\n opacity: 0.5;\n font-weight: 600;\n }\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 5px 0;\n width: 100%;\n\n .MuiInputBase-input {\n padding: 16px;\n border: solid 1px rgba(0, 0, 0, 0.1);\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n\tpadding: 16px 0;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n","import * as yup from 'yup';\nimport { DataFlow } from './DataFlow';\nimport { IResultError } from './ResultError';\n\nexport interface IBlockSet {\n name: string;\n description: string;\n blocks: DataFlow;\n}\n\nexport const newBlockSetValidation = async (\n newBlockSet: IBlockSet,\n list: IBlockSet[],\n error: string,\n errorDuplicatedLibrary: string\n) => {\n const nameResult = await nameValidator(newBlockSet.name, error);\n let isValid = nameResult.isValid;\n let errors = { ...nameResult.errors };\n if (isValid) {\n isValid = !list.some(\n (item) =>\n item.name.trim().toLowerCase() === newBlockSet.name.trim().toLowerCase()\n );\n if (!isValid) {\n errors = {\n ...errors,\n name:\n errorDuplicatedLibrary || 'Já existe uma biblioteca com esse nome.',\n };\n }\n }\n return { isValid, errors };\n};\nconst nameValidator = async (name: string, error: string) => {\n const schema = yup.object().shape({\n name: yup.string().required(error),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ name }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { name: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { name: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n","import React, { ChangeEvent, useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { Dialog, Slide, TextField } from '@material-ui/core';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport './styles.css';\nimport {\n ContainerDialog,\n ContainerHeader,\n Button,\n ButtonContainer,\n ModalTitle,\n SelectedBlocks,\n FieldContainer,\n} from './styles';\nimport { CircularProgress } from '@material-ui/core';\nimport { Block } from 'contexts/Library/types';\nimport { newBlockSetValidation } from 'models/NewBlockSet';\nimport { GetLibrary, SaveLibrary } from 'services/LibraryService';\nimport { getSelectedNodeId } from '../Flow/utils/NodeContainer';\nimport GetBlockOnFlowController from 'controllers/library/GetBlockOnFlowController';\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\nimport EIntentType from 'enums/EIntentType';\n\nconst removedBlocks = [\n EIntentType.FlexBlock,\n EIntentType.FlexBlockEntry,\n EIntentType.FlexBlockExit,\n];\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);\n\nexport default function ModalSaveSelectedBlocks() {\n const { state, dispatch, toastNotification, clearNodeList } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { botName } = state;\n const classes = useStyles();\n const { getTranslation } = useTranslator();\n\n const [newBlockSet, setNewBlockSet] = useState({\n name: '',\n description: '',\n blocks: {},\n });\n const [errors, setErrors] = useState>({\n name: '',\n });\n\n useEffect(() => {\n if (state.openModalSaveSelectedBlocks && state.editorFlow) {\n const nodeIds = getSelectedNodeId();\n const controller = new GetBlockOnFlowController(state.editorFlow);\n const blocks = { ...controller.getBlock(nodeIds) };\n for (const block of nodeIds) {\n const currentBlock = blocks[block];\n if (removedBlocks.includes(currentBlock.data.intentType)) delete blocks[block];\n }\n setNewBlockSet((old) => ({ ...old, blocks }));\n }\n }, [state.openModalSaveSelectedBlocks, state.editorFlow]);\n\n const [load, setLoad] = useState(false);\n\n function handleClose() {\n dispatch({ type: 'closeModalSaveSelectedBlocks' });\n }\n\n const handleChangeInput =\n (key: keyof Block) => (e: ChangeEvent) => {\n setErrors((old) => ({ ...old, [key]: '' }));\n setNewBlockSet((old) => ({ ...old, [key]: e.target.value }));\n };\n\n const handleCreateBlockSet = async () => {\n if (load || !state.editorFlow) return;\n if (getSelectedBlocks() === '') {\n toastNotification('error', 'Nenhum bloco selecionado!');\n return;\n }\n\n let blockToSaveList: Block[] = [];\n const resultLib = await GetLibrary(\n { bot_name: botName || '' },\n dispatchApp\n );\n if (resultLib.Success) {\n blockToSaveList = resultLib.Data.data;\n\n const { isValid, errors } = await newBlockSetValidation(\n newBlockSet,\n blockToSaveList,\n getTranslation('validations.required', {\n field: getTranslation('name'),\n }),\n getTranslation('validations.duplicatedLibrary')\n );\n setErrors(errors);\n if (!isValid) return;\n setLoad(true);\n\n const result = await SaveLibrary(\n {\n ...newBlockSet,\n bot_name: botName || '',\n },\n dispatchApp\n );\n\n if (result.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.blockSaved')\n );\n clearNodeList();\n handleClose();\n setNewBlockSet({\n name: '',\n description: '',\n blocks: {},\n });\n setErrors({});\n } else {\n toastNotification(\n 'error',\n result.Message || getTranslation('toast.error.saveBlocks')\n );\n }\n } else {\n toastNotification(\n 'error',\n resultLib.Message || getTranslation('toast.error.getBlocks')\n );\n }\n\n setLoad(false);\n };\n\n if (!state.openModalSaveSelectedBlocks) return <>;\n\n const getSelectedBlocks = () => {\n const keys = Object.keys(newBlockSet.blocks);\n return keys\n .map((key) => newBlockSet.blocks[Number(key)].data.name)\n .join(', ');\n };\n\n return (\n \n \n \n \n {getTranslation('modal.saveSelectedBlocks.title')}\n \n \n \n \n \n \n {getTranslation('modal.saveSelectedBlocks.subtitle')}\n {getSelectedBlocks()}\n \n \n \n \n \n \n \n \n \n {getTranslation('save')}\n {load && }\n \n \n \n \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetTemplateResponse,\n IRemoveTemplateRequest,\n IRemoveTemplateResponse,\n ISaveTemplateRequest,\n ISaveTemplateResponse,\n IUpdateTemplateRequest,\n IUpdateTemplateResponse,\n} from './types';\n\nexport const GetTemplates = async (\n dispatch: React.Dispatch\n): Promise> => {\n const action = `templates`;\n return json('GET', action, dispatch);\n};\n\nexport const SaveTemplate = async (\n request: ISaveTemplateRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `templates`;\n return json('POST', action, dispatch, request);\n};\n\nexport const UpdateTemplate = async (\n request: IUpdateTemplateRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `templates/${request._id}`;\n return json('PATCH', action, dispatch, request);\n};\n\nexport const RemoveTemplate = async (\n request: IRemoveTemplateRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `templates/${request.template_id}`;\n return json('DELETE', action, dispatch);\n};\n","import React, { ChangeEvent, useCallback, useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SearchIcon from '@material-ui/icons/Search';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport PublishIcon from '@material-ui/icons/Publish';\nimport { grey } from '@material-ui/core/colors';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete/Autocomplete';\n\nimport {\n Dialog,\n Divider,\n InputAdornment,\n Slide,\n TextField,\n} from '@material-ui/core';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport './styles.css';\nimport {\n ContainerDialog,\n ContainerHeader,\n FieldContainer,\n TemplatesContainer,\n Button,\n ButtonsContainer,\n ModalTitle,\n Templates,\n Description,\n DescriptionInfo,\n ContainerDivider,\n Section,\n} from './styles';\nimport { CircularProgress } from '@material-ui/core';\nimport { Block } from 'contexts/Library/types';\nimport {\n GetTemplates,\n RemoveTemplate,\n UpdateTemplate,\n} from 'services/TemplateService';\nimport { DataFlow } from 'models/DataFlow';\nimport GetOffsetPositionFlowController from 'controllers/library/GetOffsetPositionFlowController';\nimport AddBlockToFlowController from 'controllers/library/AddBlockToFlowController';\nimport { formatDate } from 'utils/Date';\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: grey[100],\n },\n\n buttonUpload: {\n background: grey[600],\n color: '#FFFFFF',\n letterSpacing: 2,\n borderRadius: 8,\n '&:hover': {\n background: grey[700],\n },\n },\n })\n);\n\nexport default function ModalStandardTemplates() {\n const { dispatch: dispatchApp } = useApp();\n const { state, dispatch, mountNodeContent, toastNotification } = useFlow();\n const { openModalStandardTemplates } = state;\n const classes = useStyles();\n\n const options = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\n const [search, setSearch] = useState('');\n\n const [templates, setTemplates] = useState([]);\n const [load, setLoad] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(null);\n const { getTranslation } = useTranslator();\n\n const loadTemplates = useCallback(async () => {\n setLoad(true);\n const resultTemp = await GetTemplates(dispatchApp);\n if (resultTemp.Success) {\n setTemplates(resultTemp.Data.data);\n }\n setLoad(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (openModalStandardTemplates) {\n setSearch('');\n loadTemplates();\n }\n }, [loadTemplates, openModalStandardTemplates]);\n\n const handleModalTemplateUpload = () => {\n handleClose();\n dispatch({ type: 'openModalTemplateUpload' });\n };\n\n function handleClose() {\n setSelectedIndex(null);\n dispatch({ type: 'closeModalStandardTemplates' });\n }\n\n if (!state.openModalStandardTemplates) {\n return <>;\n }\n\n const handleUpdateTemplate = (index: number) => {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n uploadInput.type = 'file';\n uploadInput.accept = 'application/json';\n uploadInput.onchange = async (e: any) => {\n const file: File = e.target.files?.item(0);\n const drawflow = JSON.parse(await file.text());\n\n if (drawflow.drawflow) {\n if (drawflow.drawflow.Home) {\n if (drawflow.drawflow.Home.data) {\n const templatesChanged = [...templates];\n templatesChanged[index].blocks = drawflow.drawflow.Home.data;\n const result = await UpdateTemplate(\n templatesChanged[index],\n dispatchApp\n );\n if (result.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.templateUpdate')\n );\n templatesChanged[index] = result.Data.data;\n setTemplates(templatesChanged);\n } else {\n toastNotification(\n 'error',\n result.Message || getTranslation('toast.error.templateUpdate')\n );\n }\n }\n } else\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidTemplate')\n );\n } else\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidTemplate')\n );\n\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n const handleSelectBlock = (index: number) => {\n setSelectedIndex(index);\n };\n\n const renderDetails = () => {\n if (selectedIndex === null) return <>;\n const block = templates[selectedIndex];\n return (\n <>\n {block.name} \n \n {getTranslation('modal.templates.description')}:\n {block.description}\n {getTranslation('modal.templates.createdBy')}\n {block?.author || ''}\n {getTranslation('modal.templates.createdAt')}\n {formatDate(block?.created_at || '')}\n \n \n );\n };\n\n const handleRemoveBlock = async (index: number) => {\n if (load) return;\n setLoad(true);\n const templatesChanged = [...templates];\n const template_id = templatesChanged[index]._id || '-1';\n templatesChanged.splice(index, 1);\n const result = await RemoveTemplate(\n {\n template_id,\n },\n dispatchApp\n );\n if (result.Success) {\n toastNotification('success', getTranslation('toast.success.templateDeleted'));\n loadTemplates();\n } else {\n toastNotification(\n 'error',\n result.Message || getTranslation('toast.error.templateDeleted')\n );\n }\n setSelectedIndex(null);\n setLoad(false);\n };\n\n const isDisabled = () => {\n return selectedIndex === null;\n };\n\n const handleSendToFlow = async () => {\n if (state.editorFlow?.drawflow && selectedIndex != null) {\n const { editorFlow } = state;\n\n const offsetPosition = new GetOffsetPositionFlowController(\n editorFlow\n ).getLastPosition();\n const drawflowCurrent = { ...editorFlow.drawflow };\n const controller = new AddBlockToFlowController(\n drawflowCurrent,\n state.idGroup || '',\n offsetPosition\n );\n await controller.addBlock(templates[selectedIndex].blocks);\n const drawflow = controller.getDrawflow();\n\n editorFlow.clear();\n editorFlow.import(drawflow);\n const dataFlow: DataFlow = drawflow.drawflow.Home.data;\n mountNodeContent(dataFlow);\n handleClose();\n }\n };\n\n const isSelected = (index: number) => {\n return selectedIndex === index;\n };\n\n return (\n \n \n \n \n {getTranslation('modal.templates.title')}\n \n \n \n \n \n \n option)}\n renderInput={(params) => (\n ) =>\n setSearch(e.target.value)\n }\n InputProps={{\n type: 'search',\n startAdornment: (\n \n \n \n ),\n }}\n fullWidth\n />\n )}\n />\n \n \n \n {load ? (\n \n ) : (\n templates\n .map((renderCardList, index) => ({\n renderCardList,\n index,\n }))\n .sort((a, b) =>\n a.renderCardList.name.localeCompare(b.renderCardList.name)\n )\n .filter(\n (item) =>\n item.renderCardList.name\n .toLowerCase()\n .indexOf(search.toLowerCase()) > -1 || !search\n )\n .map((item, index) => (\n <>\n handleSelectBlock(item.index)}\n selected={isSelected(item.index)}\n >\n {item.renderCardList.name}\n
    \n handleUpdateTemplate(item.index)}\n >\n \n \n handleRemoveBlock(item.index)}\n >\n \n \n
    \n \n \n \n \n \n ))\n )}\n
    \n {renderDetails()}\n
    \n \n \n {getTranslation('modal.templates.uploadButton')}\n {false && }\n \n \n {getTranslation('modal.templates.sendToFlowButton')}\n \n \n
    \n \n );\n}\n","import styled from \"styled-components\";\nimport MttGrid from \"../Material/MttGrid/MttGrid\";\nimport MttButton from \"../Material/MttButton/MttButton\";\n\nimport { Grid, Typography } from \"@material-ui/core\";\n\nexport const ContainerDialog = styled(MttGrid)<{colorHeader?: string}>`\n width: 55vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display:flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`\n\nexport const ModalTitle = styled(Typography).attrs({\n variant:'h6'\n})`\n color:#6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 5px 0;\n\n .MuiInputBase-input {\n padding: 16px;\n border: solid 1px rgba(0, 0, 0, 0.1);\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiInput-underline:before{\n display: none;\n }\n\n .MuiInputBase-multiline{\n padding: 0;\n }\n\n`;\n\nexport const SelectFileContainer = styled(Grid)`\n padding: 5px 0;\n margin-top: 5px;\n height: 7rem;\n\n background: #FFFFFF;\n border-radius: 8px;\n \n display: flex;\n align-items: center;\n justify-content: center;\n\n strong{\n font-size: 1.2rem;\n opacity: 0.6;\n padding-right: 16px;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 16px 0;\n width:100%; \n display:flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\n","import * as yup from 'yup';\nimport { Block } from '../contexts/Library/types';\nimport { IResultError } from './ResultError';\n\nexport interface ITemplate {\n name: string;\n description: string;\n blocks: string;\n}\n\nexport const newTemplateValidation = async (\n newTemplate: Block,\n list: Block[]\n) => {\n const nameResult = await nameValidator(newTemplate.name);\n if (nameResult.isValid) {\n nameResult.isValid = !list.some(\n (item) =>\n item.name.trim().toLowerCase() === newTemplate.name.trim().toLowerCase()\n );\n if (!nameResult.isValid) {\n nameResult.errors = {\n ...nameResult.errors,\n name: 'Já existe um template com esse nome.',\n };\n }\n }\n\n const blocksResult: IResultError = !!Object.keys(\n newTemplate.blocks\n ).length\n ? { isValid: true, errors: { blocks: '' } }\n : { isValid: false, errors: { blocks: '*Arquivo obrigatório.' } };\n const isValid = nameResult.isValid && blocksResult.isValid;\n const errors = { ...nameResult.errors, ...blocksResult.errors };\n return { isValid, errors };\n};\nconst nameValidator = async (name: string) => {\n const schema = yup.object().shape({\n name: yup.string().required('*Nome obrigatório.'),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ name }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { name: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { name: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n","import React, { ChangeEvent, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { CircularProgress } from '@material-ui/core';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { grey } from '@material-ui/core/colors';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport {\n ContainerDialog,\n ContainerHeader,\n FieldContainer,\n SelectFileContainer,\n Button,\n ButtonContainer,\n ModalTitle,\n} from './styles';\n\nimport { Dialog, Slide, TextField } from '@material-ui/core';\nimport { Block } from 'contexts/Library/types';\nimport { GetTemplates, SaveTemplate } from 'services/TemplateService';\nimport { ITemplate, newTemplateValidation } from 'models/NewTemplate';\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: grey[100],\n },\n\n input: {\n background: '#FFFFFF',\n },\n\n buttonSelectFile: {\n background: grey[600],\n color: '#FFFFFF',\n letterSpacing: 2,\n borderRadius: 8,\n '&:hover': {\n background: grey[700],\n },\n },\n })\n);\n\nexport default function ModalTemplateUpload() {\n const { dispatch: dispatchApp } = useApp();\n const { state, dispatch, toastNotification } = useFlow();\n const classes = useStyles();\n const { getTranslation } = useTranslator();\n\n const [load, setLoad] = useState(false);\n const [newTemplate, setNewTemplate] = useState({\n name: '',\n description: '',\n blocks: {},\n });\n const [errors, setErrors] = useState>({\n name: '',\n blocks: '',\n });\n const [fileName, setFileName] = useState('');\n const [openEditTemplate, setOpenEditTemplate] = useState(false);\n\n function handleClose() {\n setOpenEditTemplate(false);\n setNewTemplate({\n name: '',\n description: '',\n blocks: {},\n });\n dispatch({ type: 'closeModalTemplateUpload' });\n dispatch({ type: 'openModalStandardTemplates' });\n }\n\n const handleSelectFile = () => {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n uploadInput.type = 'file';\n uploadInput.accept = 'application/json';\n uploadInput.onchange = async (e: any) => {\n const file: File = e.target.files?.item(0);\n const drawflow = JSON.parse(await file.text());\n if (drawflow.drawflow) {\n if (drawflow.drawflow.Home) {\n if (drawflow.drawflow.Home.data) {\n setNewTemplate((old) => ({\n ...old,\n blocks: drawflow.drawflow.Home.data,\n }));\n }\n uploadInput.parentNode?.removeChild(uploadInput);\n setOpenEditTemplate(true);\n setFileName(file.name);\n } else\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidTemplate')\n );\n } else\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidTemplate')\n );\n };\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n const handleChangeInput =\n (key: keyof Block) => (e: ChangeEvent) => {\n setErrors((old) => ({ ...old, [key]: '' }));\n setNewTemplate((old) => ({ ...old, [key]: e.target.value }));\n };\n\n const handleRemoveFile = () => {\n setNewTemplate((old) => ({ ...old, blocks: {} }));\n setOpenEditTemplate(false);\n };\n\n const handleCreateTemplate = async () => {\n if (load) return;\n\n let blockToSaveList: Block[] = [];\n const resultTemp = await GetTemplates(dispatchApp);\n if (resultTemp.Success) {\n blockToSaveList = resultTemp.Data.data;\n }\n\n const { isValid, errors } = await newTemplateValidation(\n newTemplate,\n blockToSaveList\n );\n setErrors(errors);\n if (!isValid) return;\n setLoad(true);\n\n const result = await SaveTemplate(newTemplate, dispatchApp);\n\n if (result.Success) {\n toastNotification('success', getTranslation('toast.success.templateUpdate'));\n handleClose();\n } else {\n toastNotification(\n 'error',\n result.Message || getTranslation('toast.error.templateUpdate')\n );\n }\n\n setLoad(false);\n };\n\n return (\n \n \n \n \n {openEditTemplate ? (\n {getTranslation('modal.templates.edit')}\n ) : (\n {getTranslation('modal.templates.upload')}\n )}\n \n \n \n \n \n \n \n \n \n \n \n \n {openEditTemplate ? (\n <>\n {fileName}\n \n \n \n \n ) : (\n \n {getTranslation('modal.templates.selectFile')}\n \n )}\n \n \n \n {getTranslation('save')}\n {load && }\n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport MttButton from '../Material/MttButton/MttButton';\n\nexport const Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px 0;\n width: 624px;\n height: 80px;\n\n position: absolute;\n left: 32%;\n top: 12%;\n border-radius: 10px;\n\n z-index: 10;\n background-color: #fff;\n box-shadow: 0px 3px 6px #00000014;\n`;\n\nexport const ContentContainer = styled.div`\n width: 100%;\n max-width: 350px;\n max-height: 90px;\n`;\n\nexport const ImageContainer = styled.div`\n margin: 0px 25px 0px 25px;\n max-width: 100px;\n max-height: 50px;\n display: flex;\n align-items: center;\n img {\n width: 100%;\n max-width: 60px;\n }\n`;\n\nexport const TextContainer = styled(Typography).attrs({})`\n display: flex;\n width: 355px;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const ButtonContainer = styled.div`\n padding: 22px 16px;\n`;\n\nexport const ButtonOk = styled(MttButton)`\n width: 134px;\n height: 35px;\n`;\n\nexport const useStyles = makeStyles({\n dialog: {\n position: 'absolute',\n left: 'center',\n top: 45,\n borderRadius: '10px',\n },\n\n modalTitle: {\n fontSize: '16px',\n fontWeight: 'bold',\n lineHeight: 1.6,\n },\n});\n","export default __webpack_public_path__ + \"static/media/zzz.88133db0.png\";","import React, { useState, useEffect } from 'react';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport * as S from './styles';\nimport zzz from 'components/Icons/zzz.png';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst maxTimer = 60;\nlet timeout: NodeJS.Timeout;\n\nexport default function ModalInactiveWarning() {\n const classes = S.useStyles();\n const { state, dispatch, verifyEditGroup } = useFlow();\n\n const [timer, setTimer] = useState(true);\n const [timerDisplayer, setTimerDisplayer] = useState(maxTimer);\n const { getTranslation } = useTranslator();\n\n useEffect(() => {\n if (timer) {\n if (timerDisplayer > 0) {\n timeout = setTimeout(() => {\n const updatedTimer = timerDisplayer;\n setTimerDisplayer(updatedTimer - 1);\n }, 1000);\n } else {\n setTimerDisplayer(maxTimer);\n setTimer(false);\n }\n }\n\n return () => clearTimeout(timeout);\n }, [timer, timerDisplayer]);\n\n async function handleOk() {\n if (state.idGroup && state.botName) {\n dispatch({ type: 'updateForm', data: { loading: true } });\n await verifyEditGroup(state.idGroup, state.botName);\n dispatch({ type: 'updateForm', data: { loading: false } });\n }\n dispatch({ type: 'closeModalWarning' });\n }\n\n if (!state.openModalWarning) return <>;\n\n return (\n \n \n \"inactive\"\n \n \n \n {getTranslation('modal.inactive.title')}\n \n \n {getTranslation('modal.inactive.subtitle')}\n \n \n \n \n {getTranslation('modal.inactive.button')}\n \n \n \n );\n}\n","import styled from 'styled-components';\nimport { Typography } from '@material-ui/core';\nimport MttButton from '../Material/MttButton/MttButton';\n\nexport const Container = styled.div`\n position: absolute;\n left: 32%;\n top: 12%;\n border-radius: 10px;\n\n z-index: 10;\n background-color: #fff;\n box-shadow: 0px 3px 6px #00000014;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 5px 0;\n max-width: 624px;\n width: 100%;\n height: 100%;\n max-height: 100px;\n`;\n\nexport const ContentContainer = styled.div`\n width: 100%;\n max-width: 350px;\n max-height: 90px;\n`;\n\nexport const ImageContainer = styled.div`\n margin: 0px 15px 0px 10px;\n img {\n max-width: 140px;\n max-height: 50px;\n }\n`;\n\nexport const TextContainer = styled(Typography).attrs({})`\n display: flex;\n max-width: 355px;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const ButtonContainer = styled.div`\n padding: 22px 16px;\n`;\n\nexport const ButtonOk = styled(MttButton)`\n width: 134px;\n height: 35px;\n`;\n","export default __webpack_public_path__ + \"static/media/edit.03471717.png\";","import { makeStyles } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport {\n ButtonContainer,\n ButtonOk,\n Container,\n ContentContainer,\n ImageContainer,\n ModalTitle,\n TextContainer,\n} from './styles';\n\nimport edit from '../Icons/edit.png';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function ModalUsedGroup() {\n const useStyles = makeStyles({\n dialog: {\n position: 'absolute',\n left: 'center',\n top: 45,\n borderRadius: '10px',\n },\n\n modalTitle: {\n fontSize: '16px',\n fontWeight: 'bold',\n lineHeight: 1.6,\n },\n });\n const classes = useStyles();\n\n const { getTranslation } = useTranslator();\n\n const { state, dispatch, verifyEditGroup } = useFlow();\n const [currentUser, setCurrentUser] = useState(\n localStorage.getItem('user_group')\n );\n\n useEffect(() => {\n const local = localStorage.getItem('user_group');\n setCurrentUser(local);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [localStorage.getItem('user_group')]);\n\n async function handleUpdate() {\n dispatch({ type: 'closeModalUsedGroup' });\n\n if (state.idGroup && state.botName) {\n await verifyEditGroup(state.idGroup, state.botName);\n setCurrentUser(localStorage.getItem('user_group'));\n dispatch({ type: 'updateForm', data: { loading: true } });\n dispatch({ type: 'updateForm', data: { loading: false } });\n }\n }\n\n if (!state.openModalUsedGroup) return <>;\n\n return (\n \n \n \"editing\"\n \n \n \n {getTranslation('modal.used.title')}\n \n \n {currentUser !== 'undefined'\n ? getTranslation('modal.used.subtitle', { user: currentUser })\n : getTranslation('modal.used.subtitleCouldNotGetUser')}\n \n \n \n \n {getTranslation('modal.used.button')}\n \n \n \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetKeysResponse,\n IUpdateKeysRequest,\n IUpdateKeysResponse,\n} from './types';\n\nexport const GetKeys = async (\n bot_name: string,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${bot_name}/secrets`;\n return json('GET', action, dispatch);\n};\n\nexport const UpdateKeys = async (\n request: IUpdateKeysRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.botName}/secrets`;\n return json('PATCH', action, dispatch, request);\n};\n","import * as yup from 'yup';\nimport { Key } from '../services/AccessKeysService/types';\nimport { IResultError } from './ResultError';\n\ninterface AccessKeysErrors {\n duplicatedKey: string;\n requiredKey: string;\n requiredValue: string;\n}\nexport interface IAccessKey {\n key?: string;\n value?: string;\n existingKeys: Key[];\n errors: AccessKeysErrors;\n}\n\nexport const newAccessKeyValidation = async (\n key: string,\n value: string,\n existingKeys: Key[],\n error: AccessKeysErrors\n) => {\n const keyResult = await keyValidator(key, error.requiredKey);\n\n if (keyResult.isValid) {\n keyResult.isValid = !existingKeys.some(\n (item) => item.key.trim().toLowerCase() === key.trim().toLowerCase()\n );\n if (!keyResult.isValid) {\n keyResult.errors = {\n ...keyResult.errors,\n key: error.duplicatedKey,\n };\n }\n }\n\n const valueResult = await valueValidator(value, error.requiredValue);\n const isValid = keyResult.isValid && valueResult.isValid;\n const errors = { ...keyResult.errors, ...valueResult.errors };\n return { isValid, errors };\n};\n\nconst keyValidator = async (key: string, error: string) => {\n const schema = yup.object().shape({\n key: yup.string().required(error),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ key }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { key: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { key: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n\nconst valueValidator = async (value: string, error: string) => {\n const schema = yup.object().shape({\n value: yup.string().required(error),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ value }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { value: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { value: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n","import styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { createStyles, Grid, makeStyles, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n overflow: hidden;\n min-height: 400px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n\t\tpadding: 0 !important;\n }\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n padding: 0 4px;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n margin-top: 10px;\n display: flex;\n\n overflow-y: auto;\n\n align-items: center;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiIconButton-root {\n padding: 8px;\n }\n\n .tableHeadCell-Button {\n width: 40px;\n text-align: right;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)``;\n\nexport const LineContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n\n padding: 0 4px;\n`;\n\nexport const NewKeyContainer = styled.div`\n padding: 12px;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const Container = styled.div`\n max-height: 55vh;\n overflow-y: auto;\n\tpadding: 0;\n\t\n\t@media (-webkit-max-device-pixel-ratio: 1.25) {\n\t\tpadding: 16px;\n\t}\n`;\n\nexport const useStyles = makeStyles(() =>\n createStyles({\n toolbar: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n dialog: {\n background: '#F2F2F2',\n overflowY: 'hidden',\n },\n input: {\n background: '#FFFFFF',\n },\n\t\tbuttonTableCell: {\n\t\t\tpadding: 0\n\t\t}\n })\n);\n","/* eslint-disable array-callback-return */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport {\n AppBar,\n Dialog,\n Slide,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TextField,\n Toolbar,\n Typography,\n} from '@material-ui/core';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { GetKeys, UpdateKeys } from 'services/AccessKeysService';\nimport { Key } from 'services/AccessKeysService/types';\nimport { newAccessKeyValidation } from 'models/NewAccessKey';\n\nimport * as S from './styles';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { CircularProgress } from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport { validateVarNames } from 'utils/String';\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalAccessKeys() {\n const { state, dispatch, toastNotification } = useFlow();\n const { dispatch: appDispatch } = useApp();\n const { botName } = state;\n const { hasPermissionToAction } = usePermissions();\n const classes = S.useStyles();\n\n const [accessKeys, setAccessKeys] = useState([]);\n const [newAccessKey, setNewAccessKey] = useState([{ '': '' }]);\n const [editingKey, setEditingKey] = useState('');\n const [editingKeyNewValues /*setEditingKeyNewValues*/] = useState({\n key: '',\n value: '',\n });\n\n const [errors, setErrors] = useState({\n key: '',\n value: '',\n existingKeys: accessKeys,\n });\n\n const isAccessKeyWrite = hasPermissionToAction({\n company: state.companyName!,\n agent: state.botName!,\n action: ['access_key:write'],\n });\n\n const [load /*setLoad*/] = useState(false);\n\n const { getTranslation } = useTranslator();\n\n const updateStateKeys = useCallback(\n (keys: Key[]) => {\n const urlFalazap = keys.find((resKey) => {\n if (resKey.key === 'url-falazap') return resKey.value;\n });\n const urlFacebook = keys.find((resKey) => {\n if (resKey.key === 'url-facebook') return resKey.value;\n });\n const urlTelegram = keys.find((resKey) => {\n if (resKey.key === 'url-telegram') return resKey.value;\n });\n const urlWhatsApp = keys.find((resKey) => {\n if (resKey.key === 'url-whatsapp') return resKey.value;\n });\n const urlTwitter = keys.find((resKey) => {\n if (resKey.key === 'url-twitter') return resKey.value;\n });\n\n const botsUrls = {\n urlFalazap: urlFalazap?.value || '',\n urlFacebook: urlFacebook?.value || '',\n urlTelegram: urlTelegram?.value || '',\n urlTwitter: urlTwitter?.value || '',\n urlWhatsApp: urlWhatsApp?.value || '',\n };\n\n dispatch({ type: 'updateForm', data: { botsUrls } });\n },\n [dispatch]\n );\n\n useEffect(() => {\n const getKeys = async () => {\n if (botName) {\n const result = await GetKeys(botName, appDispatch);\n if (result.Success) {\n if (result.Data.data) {\n const keys = Object.keys(result.Data.data.keys).sort((a, b) =>\n a.localeCompare(b, undefined, { sensitivity: 'base' })\n );\n if (keys) {\n let values: React.SetStateAction = [];\n for (const key of keys) {\n const element = result.Data.data.keys[key as any];\n values.push({ key, value: element });\n }\n setAccessKeys(values);\n updateStateKeys(values);\n }\n } else {\n setAccessKeys([]);\n }\n }\n }\n };\n getKeys();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [botName, state.openModalAccessKeys, updateStateKeys]);\n\n function handleClose() {\n setEditingKey('');\n setNewAccessKey({ '': '' });\n setErrors({ key: '', value: '' });\n dispatch({ type: 'closeModalAccessKeys' });\n }\n\n const handleAddKey = async () => {\n const { isValid, errors } = await newAccessKeyValidation(\n newAccessKey.key,\n newAccessKey.value,\n accessKeys,\n {\n duplicatedKey: getTranslation('validations.duplicatedKey'),\n requiredKey: getTranslation('validations.requiredKey'),\n requiredValue: getTranslation('validations.requiredValue'),\n }\n );\n setErrors(errors);\n if (!isValid) return { isValid, errors };\n\n setAccessKeys([...accessKeys, newAccessKey]);\n\n setNewAccessKey({ '': '' });\n\n setEditingKey('');\n\n return { isValid, newAccessKey };\n };\n\n const handleChangeKey = (\n e: React.ChangeEvent | any,\n keyChanged: string,\n valueChanged: string,\n index: number\n ) => {\n if (e.target.id === 'key') {\n accessKeys[index] = { key: e.target.value, value: valueChanged };\n } else {\n accessKeys[index] = { key: keyChanged, value: e.target.value };\n }\n\n setAccessKeys([...accessKeys]);\n };\n\n const handleRemoveKey = (keyToRemove: string | number) => {\n const key = accessKeys.findIndex((key) => {\n return key.key === keyToRemove;\n });\n\n if (key >= 0) accessKeys.splice(key, 1);\n\n setAccessKeys([...accessKeys]);\n };\n\n const handleSaveKeys = async () => {\n if (botName) {\n let keys: { [key: string]: string } = {};\n let error = false;\n if (\n !(newAccessKey.key === undefined || newAccessKey.value === undefined)\n ) {\n const resp = await handleAddKey();\n if (resp?.isValid) {\n keys = objectKeys([...accessKeys, resp.newAccessKey]);\n } else error = true;\n }\n\n if (!error) {\n keys = Object.keys(keys).length === 0 ? objectKeys(accessKeys) : keys;\n const result = await UpdateKeys({ botName, keys }, appDispatch);\n\n if (result.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.accessKeys')\n );\n } else\n toastNotification('error', getTranslation('toast.error.accessKeys'));\n setEditingKey('');\n setNewAccessKey({ '': '' });\n }\n }\n };\n\n const objectKeys = (accKeys: Key[]) => {\n const keys: Key = {};\n\n for (let index = 0; index < accKeys.length; index++) {\n const indexKey = accKeys[index].key;\n const indexValue = accKeys[index].value;\n keys[indexKey] = indexValue;\n }\n\n return keys;\n };\n\n if (!state.openModalAccessKeys) return <>;\n\n return (\n \n \n \n \n {getTranslation('accessKeys')}\n \n \n \n \n \n \n \n \n \n \n {getTranslation('key')}\n {getTranslation('value')}\n \n \n \n {accessKeys.map((key, index) => (\n \n \n \n handleChangeKey(e, key.key, key.value, index)\n }\n disabled={!(editingKey === index)}\n fullWidth\n />\n \n \n \n handleChangeKey(e, key.key, key.value, index)\n }\n disabled={!(editingKey === index)}\n fullWidth\n />\n \n {isAccessKeyWrite && (\n <>\n \n setEditingKey(index)}\n >\n \n \n \n \n handleRemoveKey(key.key)}\n >\n \n \n \n \n )}\n \n ))}\n \n
    \n
    \n
    \n {isAccessKeyWrite && (\n \n \n \n {getTranslation('addKey')}\n \n \n \n \n setErrors({ key: '', value: '' })}\n onChange={(e) => {\n const validatedStringForKey = validateVarNames(e, 'name');\n\n setNewAccessKey({\n key: validatedStringForKey,\n value: newAccessKey?.value,\n });\n }}\n />\n \n \n setErrors({ key: '', value: '' })}\n onChange={(e) => {\n setNewAccessKey({\n key: newAccessKey?.key,\n value: e.target.value,\n });\n }}\n />\n \n \n \n \n \n \n \n {getTranslation('save')}\n {load && }\n \n \n \n )}\n
    \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 25vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n margin-top: 10px;\n display: flex;\n align-items: center;\n\n .MuiFormHelperText-root {\n background-color: rgb(242 242 242);\n margin: 0;\n }\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiIconButton-root {\n padding: 8px;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 16px 0;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n","import * as yup from 'yup';\nimport { IResultError } from './ResultError';\n\nexport interface IAdmin {\n username: string;\n password: string;\n passwordConfirmation: string;\n}\n\nexport const adminValidation = async (user: IAdmin) => {\n const emailResult = await emailValidator(user.username);\n const passwordResult = await passwordValidator(user.password);\n const confirmPasswordResult = await confirmPasswordValidator(\n user.password,\n user.passwordConfirmation\n );\n const isValid =\n emailResult.isValid && emailResult.isValid && confirmPasswordResult.isValid;\n const errors = {\n ...emailResult.errors,\n ...passwordResult.errors,\n ...confirmPasswordResult.errors,\n };\n return { isValid, errors };\n};\n\nexport const emailValidator = async (username: string) => {\n const schema = yup.object().shape({\n username: yup\n .string()\n .required('*E-mail obrigatório.')\n .email('*E-mail inválido.'),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ username }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { username: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { username: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n\nconst passwordValidator = async (password: string) => {\n const schema = yup.object().shape({\n password: yup\n .string()\n .required('*Senha obrigatória.')\n .min(6, '*Senha deve ter no mínimo 6 caracteres.'),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ password }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { password: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { password: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n\nconst confirmPasswordValidator = async (\n password: string,\n passwordConfirmation: string\n) => {\n const schema = yup.object().shape({\n passwordConfirmation: yup.mixed().test(\n 'match',\n '*Senha e confirmação de senha devem ser iguais.',\n function () {\n return password === this.parent.passwordConfirmation;\n }\n ),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ passwordConfirmation }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { passwordConfirmation: '' } });\n })\n .catch((err) => {\n resolve({\n isValid: false,\n errors: { passwordConfirmation: err.errors[0] },\n });\n });\n });\n return await promiseResult;\n};\n","import React, { useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { Dialog, Slide, TextField } from '@material-ui/core';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport * as S from './styles';\n\nimport { CircularProgress } from '@material-ui/core';\nimport { GetAdminData, UpdateAdminData } from 'services/AdminServices';\nimport { IAdmin, adminValidation } from 'models/AdminValidation';\nimport { useApp } from 'contexts/App/appContext';\n\nimport useTranslator from 'utils/hooks/Translator';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalManageAccount() {\n const { state, dispatch, toastNotification } = useFlow();\n const classes = useStyles();\n const { dispatch: dispatchApp } = useApp();\n const [load /*setLoad*/] = useState(false);\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [passwordConfirmation, setPasswordConfirmation] = useState('');\n const [errors, setErrors] = useState>({\n username: '',\n password: '',\n passwordConfirmation: '',\n });\n const { getTranslation } = useTranslator();\n\n useEffect(() => {\n if (state.openModalManageAccount) {\n const getAdmin = async () => {\n const result = await GetAdminData(dispatchApp);\n if (result.Success) {\n const admin = result.Data.data;\n setUsername(admin.username);\n }\n };\n\n getAdmin();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.openModalManageAccount]);\n\n const handleClose = () => {\n setErrors({ username: '', password: '', passwordConfirmation: '' });\n dispatch({ type: 'closeModalManageAccount' });\n };\n\n const validateFields = async () => {\n const { isValid, errors } = await adminValidation({\n username,\n password,\n passwordConfirmation,\n });\n setErrors(errors);\n return isValid;\n };\n\n const handleSave = async () => {\n const isValid = await validateFields();\n if (isValid) {\n const response = await UpdateAdminData(\n { username, password },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification('success', getTranslation('toast.success.update'));\n } else {\n toastNotification('error', getTranslation('toast.error.update'));\n }\n }\n };\n\n if (!state.openModalManageAccount) return <>;\n\n return (\n \n \n \n \n {getTranslation('modal.manageAccount.title')}\n \n \n \n \n \n \n setUsername(e.target.value)}\n fullWidth\n error={!!errors.username}\n helperText={errors.username || ''}\n autoFocus={false}\n />\n \n \n setPassword(e.target.value)}\n type=\"password\"\n error={!!errors.password}\n helperText={errors.password || ''}\n />\n \n \n setPasswordConfirmation(e.target.value)}\n fullWidth\n type=\"password\"\n error={!!errors.passwordConfirmation}\n helperText={errors.passwordConfirmation || ''}\n />\n \n \n \n {getTranslation('save')}\n {load && }\n \n \n \n \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetAdminDataResponse,\n IUpdateAdminDataRequest,\n IUpdateAdminDataResponse,\n} from './types';\n\nexport const GetAdminData = async (\n dispatch: React.Dispatch\n): Promise> => {\n const action = 'admin';\n return await json('GET', action, dispatch);\n};\n\nexport const UpdateAdminData = async (\n request: IUpdateAdminDataRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = 'admin';\n return await json(\n 'PATCH',\n action,\n dispatch,\n request\n );\n};\n","import styled from 'styled-components';\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\n\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { Grid, Paper, TableRow, Typography } from '@material-ui/core';\n\nexport const HoverableRow = styled(TableRow)<{\n white?: boolean;\n}>`\n &:hover {\n background-color: ${(props) =>\n props.white\n ? '#ffff'\n : '#f2f2f2'}; /* Ou qualquer outra cor que você desejar */\n transition: background-color 0.2s ease-in-out; /* Adiciona uma transição suave para a mudança de cor de fundo */\n transform-origin: center; /* Define o ponto de origem da transformação */\n }\n`;\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n overflow: hidden;\n min-height: 400px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const Container = styled.div`\n overflow-y: auto;\n padding: 12px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #fff;\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n margin-top: 10px;\n display: flex;\n\n overflow-y: auto;\n\n align-items: center;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiIconButton-root {\n padding: 8px;\n }\n\n .tableHeadCell-Button {\n width: 40px;\n text-align: right;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 24px;\n display: flex;\n justify-content: flex-end;\n\n .MuiCircularProgress-colorPrimary {\n color: #f8f8f24f;\n margin-left: 8px;\n }\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\nexport const CustomPaper = styled(Paper)<{ addminheight?: boolean }>`\n margin-top: 10px;\n padding: 20px;\n flex: 1;\n\n min-height: ${(props) => (props.addminheight ? '62vh' : 'none')};\n`;\n\nexport const FormsContainer = styled.form`\n display: flex;\n flex-direction: column;\n max-height: calc(100% - 54px);\n overflow-y: auto;\n\n padding: 4px;\n`;\n\nexport const useStyles = makeStyles(() =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n overflowY: 'hidden',\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'column',\n },\n\n input: {\n background: '#FFFFFF',\n },\n toolbar: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n loginWithAdInfo: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n infoIcon: {\n color: '#c2c2c2',\n cursor: 'pointer',\n },\n })\n);\n","import MttGrid from 'components/Material/MttGrid/MttGrid';\nimport styled from 'styled-components';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n padding-top: 54px;\n\n overflow: hidden;\n min-height: 400px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const Container = styled.div`\n max-height: calc(100% - 104px);\n overflow-y: auto;\n padding: 24px;\n`;\n\nexport const OrganizationEditForm = styled.form`\n display: flex;\n flex-direction: column;\n\n .MuiFormHelperText-root {\n color: red;\n }\n`;\n\nexport const ContentLimit = styled.div<{ marginBottom?: boolean }>`\n display: flex;\n align-items: center;\n width: 100%;\n padding: 10px 10px 0 10px;\n`;\n\nexport const ContentItemAdd = styled.div<{ comanyEdit?: boolean }>`\n display: flex;\n align-items: center;\n padding: ${(props) => (props.comanyEdit ? '10px' : '5px 0px')};\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const AutoCompleteWrap = styled.div`\n width: 100%;\n margin: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n input {\n height: auto;\n }\n\n button {\n width: auto;\n height: auto;\n }\n`;\nexport const TableContainer = styled.div`\n width: 100%;\n max-height: 50vh;\n overflow: auto;\n`;\n\nexport const LoginWithAdContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const LoginWithAdInfoContainer = styled.div`\n position: absolute;\n left: -160px;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n","import * as yup from 'yup';\nimport { IResultError } from './ResultError';\n\nexport interface IOrganization {\n email: string;\n usedEmails: string;\n}\n\ninterface IAddBot {\n botName: string;\n usedBots: string;\n}\n\nexport const emailValidation = async (email: string, usedEmails: string[]) => {\n const emailResult = await emailValidator(email);\n\n if (emailResult.isValid) {\n emailResult.isValid = !usedEmails.some(\n (item) => item.trim().toLowerCase() === email.trim().toLowerCase()\n );\n if (!emailResult.isValid) {\n emailResult.errors = {\n ...emailResult.errors,\n usedEmails: 'Este e-mail já está cadastrado.',\n };\n }\n }\n\n const isValid = emailResult.isValid;\n const errors = {\n ...emailResult.errors,\n };\n return { isValid, errors };\n};\n\nexport const botValidation = async (botName: string, usedBots: string[]) => {\n const botNameResult = await botValidator(botName);\n\n if (botNameResult.isValid) {\n botNameResult.isValid = !usedBots.some(\n (item) => item.trim().toLowerCase() === botName.trim().toLowerCase()\n );\n if (!botNameResult.isValid) {\n botNameResult.errors = {\n ...botNameResult.errors,\n usedBots: 'Usuário já tem acesso a esse bot.',\n };\n }\n }\n\n const isValid = botNameResult.isValid;\n const errors = {\n ...botNameResult.errors,\n };\n return { isValid, errors };\n};\n\nexport const emailValidator = async (email: string) => {\n const schema = yup.object().shape({\n email: yup\n .string()\n .required('*E-mail obrigatório.')\n .email('*E-mail inválido.'),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ email }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { email: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { email: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n\nexport const botValidator = async (botName: string) => {\n const schema = yup.object().shape({\n botName: yup.string().required('*Nome de bot obrigatório.'),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ botName }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { botName: '' } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { botName: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n","export interface IPermissionsContext {\n state: IPermissionsContextState;\n dispatch: React.Dispatch;\n getPermissions: () => IPermissionCompany[];\n getCompaniesNames: () => string[];\n hasPermissionToAction: (\n params: HasPermissionToActionParams\n ) => boolean | undefined;\n isCompanyAdmin: (company: string) => boolean;\n isRoot: () => boolean;\n getCompanies: () => IPermissionCompany[];\n}\n\nexport interface HasPermissionToActionParams {\n company: string;\n agent: string;\n action: Actions[];\n}\n\nexport interface IPermissionsContextState {\n isRoot: boolean;\n companies: IPermissionCompany[];\n}\n\nexport interface IPermissionsContextActions {\n type: IPermissionsContextActionsTypes;\n data?: Partial;\n}\n\nexport type IPermissionsContextActionsTypes =\n | 'isRoot'\n | 'isNotRoot'\n | 'updatePermissions';\n\nexport interface IPermission {}\n\nexport interface IPermissionCompany {\n name: string;\n isAdmin: boolean;\n agents: IPermissionCompanyAgent[];\n\tprojects: IPermissionCompanyProject[];\n}\n\nexport interface IPermissionCompanyGroup {\n id: string;\n name: string;\n agents: string[];\n users: IPermissionCompanyUser[];\n company: string;\n}\nexport interface IPermissionCompanyUser {\n email: string;\n isAdmin: boolean;\n}\n\nexport interface IPermissionCompanyAgent {\n name: string;\n actions: Actions[];\n}\nexport interface IPermissionCompanyProject {\n\t_id?: string;\n name: string;\n agents: string[];\n}\n\nexport type Actions =\n | '*'\n | 'flow:write'\n | 'flow:publish'\n | 'flow:read'\n | 'communication_guideline:read'\n | 'communication_guideline:write'\n | 'access_key:write'\n | 'access_key:read'\n | 'adm'\n\nexport const emptyAgent = {\n name: '',\n actions: [],\n};\n\nexport const emptyGroup = {\n id: '',\n name: '',\n company: '',\n actions: [],\n agents: [],\n users: [],\n};\n\nexport const emptyCompany = {\n id: '',\n name: '',\n isAdmin: false,\n agents: [],\n creationDate: '',\n users: [],\n};\n\nexport const emptyUser = {\n id: '',\n email: '',\n isAdmin: false,\n};\n","import { ReactNode } from 'react';\nimport { Actions } from 'contexts/Permissions/types';\n\nexport const emptyCompany: Company = {\n _id: '',\n name: '',\n admins: [],\n users: [],\n projects: [],\n agents: [],\n groups: [],\n agentsLimit: 0,\n usersLimit: 0,\n loginWithAd: false,\n};\n\nexport const emptyGroup: CompanyGroup = {\n _id: '',\n name: '',\n actions: [],\n agents: [],\n company: '',\n project: '',\n users: [],\n projects: [],\n};\n\nexport const emptyProject: CompanyProject = {\n _id: '',\n name: '',\n agents: [],\n company: '',\n users: [],\n groups: [],\n};\n\nexport const initialState = {\n company: emptyCompany,\n companyCopy: emptyCompany,\n group: emptyGroup,\n actions: [],\n project: emptyProject,\n projectCopy: emptyProject,\n} as CompanyContextState;\n\nexport interface Props {\n children: ReactNode;\n}\n\nexport interface ICompanyContext {\n state: CompanyContextState;\n dispatch: React.Dispatch;\n setCompany: (company: Company, updateCopy?: boolean) => void;\n setProject(project: CompanyProject, updateCopy?: boolean): void;\n}\n\nexport interface CompanyContextState {\n company: Company;\n companyCopy: Company;\n group: CompanyGroup;\n project: CompanyProject;\n projectCopy: CompanyProject;\n actions?: Actions[];\n}\n\nexport type CompanyStateActionTypes =\n | 'setCompanies'\n | 'setCompany'\n | 'setCompanyCopy'\n | 'setGroup'\n | 'setProject'\n | 'setProjectCopy'\n | 'updateActions';\n\nexport interface CompanyContextActions {\n type: CompanyStateActionTypes;\n data?: Partial;\n}\n\nexport interface Company {\n _id?: string;\n name: string;\n admins: string[];\n users: string[];\n usersLimit: number;\n projects?: string[];\n agents: string[];\n agentsLimit: number;\n groups?: CompanyGroup[];\n loginWithAd: boolean;\n}\n\nexport interface CompanyGroup {\n _id: string;\n name: string;\n project: string;\n projects: string[];\n company: string;\n agents: string[];\n actions: Actions[];\n users: string[];\n}\n\nexport interface CompanyUser {\n id?: string;\n email: string;\n isAdmin: boolean;\n}\n\nexport interface CompanyProject {\n _id: string;\n name: string;\n company: string;\n agents: string[];\n users: string[];\n groups?: string[];\n}\n","import { CompanyContextState, CompanyContextActions } from './types';\n\nexport function companyReducer(\n state: CompanyContextState,\n action: CompanyContextActions\n): CompanyContextState {\n switch (action.type) {\n case 'setCompany':\n return functionsReducer[action.type](state, action?.data);\n case 'setCompanyCopy':\n return functionsReducer[action.type](state, action?.data);\n case 'setGroup':\n return functionsReducer[action.type](state, action?.data);\n case 'updateActions':\n return functionsReducer[action.type](state, action?.data);\n case 'setProject':\n return functionsReducer[action.type](state, action?.data);\n case 'setProjectCopy':\n return functionsReducer[action.type](state, action?.data);\n\n default:\n return state;\n }\n}\n\nconst functionsReducer = {\n setCompany: (\n state: CompanyContextState,\n data?: Partial\n ) => {\n return { ...state, company: { ...state.company, ...data?.company } };\n },\n setCompanyCopy: (\n state: CompanyContextState,\n data?: Partial\n ) => {\n return {\n ...state,\n companyCopy: { ...state.companyCopy, ...data?.companyCopy },\n };\n },\n\n setGroup: (\n state: CompanyContextState,\n data?: Partial\n ) => {\n return { ...state, group: { ...state.group, ...data?.group } };\n },\n\n setProject: (\n state: CompanyContextState,\n data?: Partial\n ) => {\n return { ...state, project: { ...state.project, ...data?.project } };\n },\n setProjectCopy: (\n state: CompanyContextState,\n data?: Partial\n ) => {\n return { ...state, projectCopy: { ...state.projectCopy, ...data?.projectCopy } };\n },\n\n updateActions: (\n state: CompanyContextState,\n data?: Partial\n ) => {\n const actions = data?.actions || [];\n return { ...state, group: { ...state.group, actions } };\n },\n};\n","import React, { createContext, useContext, useReducer } from 'react';\nimport {\n Company,\n CompanyProject,\n ICompanyContext,\n initialState,\n Props,\n} from './types';\nimport { companyReducer } from './companyReducer';\n\nconst CompanyContext = createContext({} as ICompanyContext);\n\nexport function CompanyProvider({ children }: Props) {\n const [state, dispatch] = useReducer(companyReducer, initialState);\n\n function setCompany(company: Company, updateCopy = false) {\n dispatch({ type: 'setCompany', data: { company } });\n if (updateCopy)\n dispatch({ type: 'setCompanyCopy', data: { companyCopy: company } });\n }\n function setProject(project: CompanyProject, updateCopy = false) {\n dispatch({ type: 'setProject', data: { project } });\n if (updateCopy)\n dispatch({ type: 'setProjectCopy', data: { projectCopy: project } });\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function useCompanies() {\n const context = useContext(CompanyContext);\n return context;\n}\n","import AddIcon from '@material-ui/icons/Add';\nimport CloseIcon from '@material-ui/icons/Close';\nimport EditIcon from '@material-ui/icons/Edit';\nimport CheckIcon from '@material-ui/icons/Check';\nimport { Autocomplete } from '@material-ui/lab';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport React, { useMemo, useState } from 'react';\nimport {\n Checkbox,\n FormControlLabel,\n IconButton,\n MenuItem,\n Select,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TextField,\n} from '@material-ui/core';\n\nimport {\n AutoCompleteWrap,\n ContentItemAdd,\n ContentLimit,\n TableContainer,\n TextContainer,\n} from '../styles';\nimport { emailValidation } from 'models/OrganizationValidadion';\nimport useTranslator from 'utils/hooks/Translator';\nimport { emptyUser, IPermissionCompanyUser } from 'contexts/Permissions/types';\nimport { useCompanies } from 'contexts/Company';\nimport { CompanyUser } from 'contexts/Company/types';\nimport {\n CustomPaper,\n HoverableRow,\n} from 'components/ModalManageCompanies/styles';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\ninterface Props {\n currentUsers: string[];\n objectToEdit: 'company' | 'group' | 'project';\n sourceUsers?: string[];\n}\n\ninterface EditingUser extends CompanyUser {\n index: number;\n}\n\nexport function ManageUsers({\n currentUsers,\n objectToEdit,\n sourceUsers = [],\n}: Props) {\n const { state, dispatch } = useCompanies();\n const [errorLimit, setErrorLimit] = useState('');\n const { isRoot } = usePermissions();\n const { company } = state;\n const [selectedCurrentUsers, setSelectedCurrentUsers] = useState(\n []\n );\n const [currentUser, setCurrentUser] =\n useState(emptyUser);\n const { getTranslation } = useTranslator();\n const [editingUser, setEditingUser] = useState({\n ...emptyUser,\n index: -1,\n });\n const dispatchType = getDispatchType();\n const isCompany = objectToEdit === 'company';\n const [error, setError] = useState<{\n email?: string | undefined;\n usedEmails?: string | undefined;\n }>({\n email: '',\n usedEmails: '',\n });\n\n const users = useMemo(() => {\n return currentUsers.sort().map((user) => ({\n email: user,\n isAdmin: company.admins.includes(user),\n }));\n }, [company.admins, currentUsers]);\n\n function getDispatchType() {\n switch (objectToEdit) {\n case 'company':\n return 'setCompany';\n case 'project':\n return 'setProject';\n case 'group':\n return 'setGroup';\n }\n }\n\n async function addUser() {\n if (!isCompany) {\n handleAdduserMultiple();\n return;\n }\n const { isValid, errors } = await emailValidation(\n currentUser.email,\n users.map((user) => user.email)\n );\n\n if (!isValid || users.some((user) => user.email === currentUser.email)) {\n setError(errors);\n } else {\n handleFinishEditingUser([...users, currentUser]);\n setCurrentUser(emptyUser);\n }\n }\n\n function handleAdduserMultiple() {\n const users = [...selectedCurrentUsers, ...currentUsers];\n dispatch({\n type: dispatchType,\n data: {\n [objectToEdit]: {\n ...[objectToEdit],\n users: users,\n },\n },\n });\n setSelectedCurrentUsers([]);\n }\n\n function removeUser(user: string) {\n const usersNames = [...users].filter((u) => u.email !== user);\n\n handleFinishEditingUser(usersNames);\n }\n\n function handleEditUser(index: number) {\n const cloneUsers = [...users];\n const user = cloneUsers[index];\n setEditingUser({ ...user, index });\n }\n\n function handleChangeUser(e: React.ChangeEvent | any, index: number) {\n if (e.target.id === 'email') {\n users[index] = { ...users[index], email: e.target.value };\n setEditingUser((prev) => ({ ...prev, email: e.target.value, index }));\n } else {\n users[index] = {\n ...users[index],\n isAdmin: e.target.value === getTranslation('yes') ? true : false,\n };\n\n setEditingUser((prev) => ({\n ...prev,\n isAdmin: e.target.value === getTranslation('yes') ? true : false,\n }));\n }\n }\n\n function handleFinishEditingUser(cloneUsers = users) {\n if (isCompany) {\n const { users, admins } = cloneUsers.reduce(\n (acc: { users: string[]; admins: string[] }, user) => {\n if (user.isAdmin) acc.admins.push(user.email);\n else acc.users.push(user.email);\n\n return acc;\n },\n {\n users: [],\n admins: [],\n }\n );\n if (state.company.usersLimit >= users.length) setErrorLimit('');\n dispatch({\n type: dispatchType,\n data: {\n company: {\n ...company,\n users,\n admins,\n },\n },\n });\n } else {\n dispatch({\n type: dispatchType,\n data: {\n [objectToEdit]: {\n ...[objectToEdit],\n users: [...cloneUsers.map((user) => user.email)],\n },\n },\n });\n }\n\n setEditingUser({ ...emptyUser, index: -1 });\n }\n\n const differentUsers = useMemo(() => {\n const diff = sourceUsers.filter(\n (sorceUser) => !currentUsers.includes(sorceUser)\n );\n return diff.sort();\n }, [currentUsers, sourceUsers]);\n\n const handleChangeLimit = (usersLimit: number) => {\n if (users.length <= usersLimit) setErrorLimit('');\n dispatch({\n type: dispatchType,\n data: { [objectToEdit]: { ...[objectToEdit], usersLimit } },\n });\n };\n const handleErrorLimitUseres = () => {\n const error =\n state.company.usersLimit < users.length\n ? getTranslation('modal.manageCompany.user.limitValidationUserCount')\n : '';\n setErrorLimit(error);\n };\n return (\n \n
    \n {objectToEdit === 'company' &&\n getTranslation('modal.manageCompany.user.manageCompanyUsers')}\n {objectToEdit === 'project' &&\n getTranslation('modal.manageCompany.user.manageProjectUsers')}\n {objectToEdit === 'group' &&\n getTranslation('modal.manageCompany.user.manageGroupUsers')}\n
    \n {objectToEdit === 'company' && (\n \n {\n handleChangeLimit(parseInt(e.target.value, 10));\n }}\n inputProps={{\n min: 0,\n }}\n onBlur={handleErrorLimitUseres}\n helperText={errorLimit}\n error={!!errorLimit}\n />\n \n )}\n\n \n \n {isCompany ? (\n {\n const email = e.target.value;\n setCurrentUser((prev) => ({ ...prev, email }));\n }}\n helperText={error.email || error.usedEmails || ''}\n error={!!error.email || !!error.usedEmails}\n onBlur={() => setError({ email: '', usedEmails: '' })}\n />\n ) : (\n \n (\n \n }\n checkedIcon={}\n style={{\n marginRight: 8,\n color: selected ? '#6c50a4' : '',\n }}\n checked={selected}\n />\n {option}\n \n )}\n noOptionsText={getTranslation('noResults')}\n getOptionLabel={(option) => option}\n onChange={(_e: any, selectedOptions) => {\n setSelectedCurrentUsers(selectedOptions);\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n \n )}\n \n\n {isCompany && (\n \n setCurrentUser((prev) => ({\n ...prev,\n isAdmin: e.currentTarget.checked,\n }))\n }\n name=\"Admin\"\n color=\"primary\"\n />\n }\n label=\"Admin\"\n />\n )}\n\n = state.company.usersLimit}\n >\n \n \n \n \n \n \n \n Email\n {isCompany && Admin}\n \n \n \n {users?.sort().map((user, index) => (\n \n \n handleChangeUser(e, index)}\n />\n \n {isCompany && (\n \n handleChangeUser(e, index)}\n disabled={!(editingUser.index === index)}\n >\n \n {getTranslation('yes')}\n \n \n {getTranslation('no')}\n \n \n \n )}\n \n <>\n {isCompany && (\n <>\n {!(editingUser.index === index) ? (\n handleEditUser(index)}\n >\n \n \n ) : (\n handleFinishEditingUser()}\n >\n \n \n )}\n \n )}\n\n removeUser(user.email)}\n >\n \n \n \n \n \n ))}\n \n
    \n
    \n
    \n );\n}\n","import { useMemo, useState } from 'react';\n\nimport {\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TextField,\n} from '@material-ui/core';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {\n ContentItemAdd,\n AutoCompleteWrap,\n TextContainer,\n ContentLimit,\n TableContainer,\n} from '../styles';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Autocomplete } from '@material-ui/lab';\nimport useTranslator from 'utils/hooks/Translator';\nimport { useCompanies } from 'contexts/Company';\nimport {\n CustomPaper,\n HoverableRow,\n} from 'components/ModalManageCompanies/styles';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport React from 'react';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\ntype Props = {\n sourceAgents: string[];\n currentAgents: string[];\n objectToEdit: 'company' | 'project' | 'group';\n};\n\nexport function ManageAgents({\n objectToEdit,\n sourceAgents,\n currentAgents,\n}: Props) {\n const { dispatch, state } = useCompanies();\n const [errorLimit, setErrorLimit] = useState('');\n const { isRoot } = usePermissions();\n const [selectedCurrentAgents, setSelectedCurrentAgents] = useState(\n []\n );\n const { getTranslation } = useTranslator();\n const dispatchType = getDispatchType();\n\n const disabledAddAgent =\n selectedCurrentAgents.length === 0 ||\n (selectedCurrentAgents.concat(currentAgents).length >\n state.company.agentsLimit &&\n objectToEdit === 'company');\n\n function getDispatchType() {\n switch (objectToEdit) {\n case 'company':\n return 'setCompany';\n case 'project':\n return 'setProject';\n case 'group':\n return 'setGroup';\n }\n }\n\n function addAgent(agentToAdd: string[]) {\n const cloneAgents = [...currentAgents];\n agentToAdd.forEach((agent) => {\n if (!cloneAgents.includes(agent)) {\n cloneAgents.push(agent);\n }\n });\n\n dispatch({\n type: dispatchType,\n data: { [objectToEdit]: { agents: cloneAgents } },\n });\n\n setSelectedCurrentAgents([]);\n }\n\n function removeAgent(agentName: string) {\n const cloneAgents = [...currentAgents];\n\n const indexToRemove = cloneAgents.findIndex((agent) => agent === agentName);\n\n if (indexToRemove !== -1) {\n cloneAgents.splice(indexToRemove, 1);\n if (state.company.agentsLimit >= cloneAgents.length) setErrorLimit('');\n dispatch({\n type: dispatchType,\n data: { [objectToEdit]: { ...[objectToEdit], agents: cloneAgents } },\n });\n }\n }\n\n const differentAgents = useMemo(() => {\n const differentBots =\n sourceAgents.filter(\n (sourceAgent) => !currentAgents?.includes(sourceAgent)\n ) || [];\n\n return differentBots.sort();\n }, [currentAgents, sourceAgents]);\n\n const handleChangeLimit = (agentsLimit: number) => {\n if (agentsLimit >= currentAgents.length) setErrorLimit('');\n\n dispatch({\n type: dispatchType,\n data: { [objectToEdit]: { ...[objectToEdit], agentsLimit } },\n });\n };\n\n const handleErrorLimitAgents = () => {\n const error =\n state.company.agentsLimit < currentAgents.length\n ? getTranslation('modal.manageCompany.agent.limitValidationAgentCount')\n : '';\n setErrorLimit(error);\n };\n\n return (\n \n
    \n {objectToEdit === 'company' &&\n getTranslation('modal.manageCompany.agent.manageCompanyAgents')}\n {objectToEdit === 'project' &&\n getTranslation('modal.manageCompany.agent.manageProjectAgents')}\n {objectToEdit === 'group' &&\n getTranslation('modal.manageCompany.agent.manageGroupAgents')}\n
    \n {objectToEdit === 'company' && (\n \n {\n handleChangeLimit(parseInt(e.target.value, 10));\n }}\n onBlur={handleErrorLimitAgents}\n helperText={errorLimit}\n error={!!errorLimit}\n />\n \n )}\n\n \n \n \n (\n \n }\n checkedIcon={}\n style={{ marginRight: 8, color: selected ? '#6c50a4' : '' }}\n checked={selected}\n />\n {option}\n \n )}\n noOptionsText={getTranslation('noResults')}\n getOptionLabel={(option) => option}\n onChange={(_e: any, selectedOptions) => {\n setSelectedCurrentAgents(selectedOptions);\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n \n \n\n addAgent(selectedCurrentAgents)}\n disabled={disabledAddAgent}\n >\n \n \n \n \n \n \n \n \n {getTranslation('name')}\n \n \n \n \n {currentAgents?.sort().map((agent) => (\n \n {agent}\n \n removeAgent(agent || '')}\n >\n \n \n \n \n ))}\n \n \n \n
    \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from 'services/RequestService';\nimport { IBaseResponse } from 'services/RequestService/Response';\nimport {\n ICreateProjectRequest,\n IDeleteProjectRequest,\n IGetAllProjectsResponse,\n IGetProjectRequest,\n IProjectResponse,\n IUpdateProjectRequest,\n} from './types';\n\nconst companyUrl = 'company';\nconst baseUrl = 'projects';\n\nexport async function CreateProject(\n request: ICreateProjectRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${request.company}/${baseUrl}`;\n return await json('POST', action, dispatch, request);\n}\n\nexport async function GetAllProjects(\n companyName: string,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${companyName}/${baseUrl}`;\n return await json('GET', action, dispatch);\n}\n\nexport async function GetProject(\n { companyName, projectName }: IGetProjectRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${companyName}/${baseUrl}/${projectName}`;\n return await json('GET', action, dispatch);\n}\n\nexport async function UpdateProject(\n request: IUpdateProjectRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${request.company}/${baseUrl}/${request._id}`;\n return await json('PATCH', action, dispatch, request);\n}\n\nexport async function DeleteProject(\n request: IDeleteProjectRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `company/${request.company}/projects/${request._id}`;\n return await json('DELETE', action, dispatch);\n}\n","import { Grid } from '@material-ui/core';\nimport styled from 'styled-components';\n\nexport const ButtonContainer = styled(Grid)`\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const ProjectHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n","import { createStyles, makeStyles, Typography } from '@material-ui/core';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport styled from 'styled-components';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n /* position: relative; */\n padding-top: 54px;\n\n overflow: hidden;\n min-height: 400px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const OrganizationEditForm = styled.form`\n display: flex;\n flex-direction: column;\n padding: 10px;\n\n .MuiFormHelperText-root {\n color: red;\n }\n`;\n\nexport const ContentItemAdd = styled.div`\n display: flex;\n padding: 10px;\n`;\n\nexport const ChildrenContainer = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 8px;\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const AutoCompleteWrap = styled.div`\n width: 100%;\n margin: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n input {\n height: auto;\n }\n\n button {\n width: auto;\n height: auto;\n }\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #fff;\n`;\n\nexport const useStyles = makeStyles(() =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n overflowY: 'scroll',\n },\n\n input: {\n background: '#FFFFFF',\n },\n toolbar: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n\n container: {\n display: 'flex',\n height: '100%',\n justifyContent: 'space-between',\n flexDirection: 'column',\n padding: '24px',\n maxWidth: '100%',\n width: '100%',\n },\n })\n);\n","import { createStyles, Grid, makeStyles, Typography } from '@material-ui/core';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport styled from 'styled-components';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n overflow: hidden;\n min-height: 400px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const ContentItemAdd = styled.div`\n display: flex;\n padding: 10px;\n`;\n\nexport const ChildrenContainer = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 8px;\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const AutoCompleteWrap = styled.div`\n width: 100%;\n margin: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n input {\n height: auto;\n }\n\n button {\n width: auto;\n height: auto;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #fff;\n`;\n\nexport const useStyles = makeStyles(() =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n overflowY: 'scroll',\n },\n\n input: {\n background: '#FFFFFF',\n },\n toolbar: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n\n container: {\n display: 'flex',\n height: '100%',\n justifyContent: 'space-between',\n flexDirection: 'column',\n padding: '24px',\n maxWidth: '100%',\n width: '100%',\n },\n })\n);\n","import React, { useState } from 'react';\nimport { Checkbox, FormControlLabel } from '@material-ui/core';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport { Actions } from 'contexts/Permissions/types';\nimport { useCompanies } from 'contexts/Company';\nimport {\n ActionCategories,\n ActionCategoryTypes,\n ActionCategoryItem,\n} from './types';\nimport { CustomPaper } from 'components/ModalManageCompanies/styles';\n\nexport function ManageActions() {\n const { state, dispatch } = useCompanies();\n const { group } = state;\n const { getTranslation } = useTranslator();\n\n const [actions, setActions] = useState(getActions());\n\n function getActions() {\n if (!group.actions)\n return {\n flow: {\n read: false,\n write: false,\n publish: false,\n },\n communication_guideline: {\n read: false,\n write: false,\n },\n access_key: {\n read: false,\n write: false,\n },\n };\n if (group.actions.includes('*'))\n return {\n flow: {\n read: true,\n write: true,\n publish: true,\n },\n communication_guideline: {\n read: true,\n write: true,\n },\n access_key: {\n read: true,\n write: true,\n },\n };\n return {\n flow: {\n read: group.actions.includes('flow:read'),\n write: group.actions.includes('flow:write'),\n publish: group.actions.includes('flow:publish'),\n },\n communication_guideline: {\n read: group.actions.includes('communication_guideline:read'),\n write: group.actions.includes('communication_guideline:write'),\n },\n access_key: {\n read: group.actions.includes('access_key:read'),\n write: group.actions.includes('access_key:write'),\n },\n };\n }\n\n const getPrettyTitle = {\n flow: getTranslation('flow'),\n communication_guideline: getTranslation('communicationRuler.title'),\n access_key: getTranslation('accessKeys'),\n };\n\n const getPrettyItemLabel = {\n read: 'Ler',\n write: 'Editar',\n publish: 'Publicar',\n };\n\n function handleChangePermissionToAction(\n category: ActionCategoryTypes,\n categoryItem: ActionCategoryItem\n ) {\n const currValue = actions[category][categoryItem];\n\n const permissions: Actions[] = [];\n\n setActions((prev) => {\n const updatedActions = {\n ...prev,\n [category]: { ...prev[category], [categoryItem]: !currValue },\n };\n\n const actionKeys = Object.keys(updatedActions);\n actionKeys.forEach((act) => {\n const convertedCategory = act as ActionCategoryTypes;\n\n const categoryKeys = Object.keys(updatedActions[convertedCategory]);\n categoryKeys.forEach((item) => {\n const convertedItem = item as ActionCategoryItem;\n\n if (updatedActions[convertedCategory][convertedItem])\n permissions.push(\n `${convertedCategory}:${convertedItem}` as Actions\n );\n });\n });\n return updatedActions;\n });\n\n dispatch({ type: 'updateActions', data: { actions: permissions } });\n }\n\n return (\n \n
    \n {getTranslation(\n 'modal.manageCompany.project.group.manageGroupPermissions'\n )}\n
    \n
    \n\n {Object.keys(actions).map((category, index) => {\n const convertedCategory = category as ActionCategoryTypes;\n return (\n
    \n
    {getPrettyTitle[convertedCategory]}
    \n {Object.keys(actions[convertedCategory]).map((categoryItem) => {\n const convertedCategoryItem = categoryItem as ActionCategoryItem;\n return (\n \n handleChangePermissionToAction(\n convertedCategory,\n convertedCategoryItem\n )\n }\n color=\"primary\"\n />\n }\n label={getPrettyItemLabel[convertedCategoryItem]}\n />\n );\n })}\n
    \n );\n })}\n
    \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from 'services/RequestService';\nimport { IBaseResponse } from 'services/RequestService/Response';\nimport {\n IGetAllGroupsResponse,\n IGetGroupRequest,\n IGetGroupResponse,\n IUpdateGroupRequest,\n} from './types';\n\nconst baseUrl = 'groups';\nconst companyUrl = 'company';\n\nexport async function GetGroup(\n { groupName, companyName, projectName }: IGetGroupRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${companyName}/project/${projectName}/${baseUrl}/${groupName}`;\n return await json('GET', action, dispatch);\n}\n\nexport async function GetAllGroups(\n companyName: string,\n project: string,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${companyName}/project/${project}/${baseUrl}`;\n return await json('GET', action, dispatch);\n}\n\nexport async function CreateGroup(\n request: IUpdateGroupRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${request.company}/project/${request.project}/${baseUrl}`;\n return await json('POST', action, dispatch, request);\n}\n\nexport async function UpdateGroup(\n request: IUpdateGroupRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${request.company}/${baseUrl}/${request._id}`;\n return await json('PATCH', action, dispatch, request);\n}\n\nexport async function DeleteGroup(\n { groupName, companyName }: IGetGroupRequest,\n dispatch: React.Dispatch\n): Promise> {\n const action = `${companyUrl}/${companyName}/${baseUrl}/${groupName}`;\n return await json('DELETE', action, dispatch);\n}\n","export const arraysAreEqual = (arr1?: string[], arr2?: string[]) => {\n const arr1Sort = arr1 ? arr1.sort() : [];\n const arr2Sort = arr2 ? arr2.sort() : [];\n return (\n arr1Sort.length === arr2Sort.length &&\n arr1Sort.every((item, index) => item === arr2Sort[index])\n );\n};\n","import {\n Dialog,\n AppBar,\n Toolbar,\n IconButton,\n Container,\n TextField,\n Button,\n CircularProgress,\n} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { ContainerDialog } from '../../styles';\nimport * as S from './styles';\nimport useTranslator from 'utils/hooks/Translator';\n\nimport { useEffect, useMemo, useState } from 'react';\nimport { ManageAgents } from '../../../../ManageAgents';\nimport { useCompanies } from 'contexts/Company';\nimport { ManageActions } from './ManageActions';\nimport { ManageUsers } from '../../../../ManageUsers';\nimport { CreateGroup, UpdateGroup } from 'services/CompaniesService/Groups';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport {\n CustomPaper,\n FormsContainer,\n} from 'components/ModalManageCompanies/styles';\nimport { GetProject } from 'services/CompaniesService/Projects';\nimport { arraysAreEqual } from 'utils/arraysAreEqual';\n\ninterface Props {\n handleClose: () => void;\n editGroup: boolean;\n}\ninterface Errors {\n name: string;\n}\n\nexport function ManageGroup({ handleClose, editGroup }: Props) {\n const classes = S.useStyles();\n const { toastNotification } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { state, dispatch, setCompany } = useCompanies();\n const { group, company, project, projectCopy } = state;\n const [error, setError] = useState({ name: '' });\n const [loading, setLoading] = useState(false);\n\n const [groupCopy, setGroupCopy] = useState(group);\n const isEdit = !!group._id;\n const { getTranslation } = useTranslator();\n\n const [agents, setAgents] = useState(['']);\n const [users, setUsers] = useState(['']);\n\n const hasChanges = useMemo(() => {\n return (\n group.name !== groupCopy.name ||\n !arraysAreEqual(groupCopy.users, group.users) ||\n !arraysAreEqual(groupCopy.agents, group.agents) ||\n !arraysAreEqual(groupCopy.actions, group.actions)\n );\n }, [group, groupCopy]);\n\n async function handleGetProject() {\n const response = await GetProject(\n { companyName: company.name, projectName: project.name },\n dispatchApp\n );\n if (response.Success) {\n setUsers(response.Data.users);\n setAgents(response.Data.agents);\n } else\n toastNotification(\n 'error',\n 'Ocorreu um erro ao buscar os grupos, verifique e tente novamente'\n );\n }\n function handleValidate(): boolean {\n const { name } = groupCopy;\n if (!name) {\n setError((prev) => ({\n ...prev,\n name: getTranslation('validations.required', {\n field: getTranslation('name'),\n }),\n }));\n return true;\n }\n return false;\n }\n useEffect(\n () => {\n handleGetProject();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [editGroup]\n );\n\n useEffect(() => {\n if (!isEdit) {\n dispatch({\n type: 'setGroup',\n data: {\n group: {\n ...group,\n project: project.name || '',\n company: company.name || '',\n },\n },\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n async function handleFetchAndSetGrups() {\n const response = await GetProject(\n { companyName: company.name, projectName: project.name },\n dispatchApp\n );\n if (response.Success) {\n dispatch({\n type: 'setProject',\n data: { project: { ...project, groups: response.Data.groups } },\n });\n dispatch({\n type: 'setProjectCopy',\n data: { projectCopy: { ...projectCopy, groups: response.Data.groups } },\n });\n } else\n toastNotification(\n 'error',\n 'Ocorreu um erro ao buscar os grupos, verifique e tente novamente'\n );\n }\n\n async function handleCreateOrUpdateGroup() {\n if (handleValidate()) return;\n if (!!groupCopy.name && !!group.project) {\n setGroupCopy((prev) => ({ ...prev, name: prev.name.trim() }));\n setLoading(true);\n const response = await getResponse();\n if (response.Success) {\n const companyGroups = company.groups;\n if (!companyGroups) return;\n\n const currentGroupId = companyGroups.findIndex(\n (g) => g._id === group._id\n );\n\n if (currentGroupId !== -1) {\n companyGroups[currentGroupId] = { ...group, name: groupCopy.name };\n setCompany({ ...company, groups: companyGroups });\n setCompany({ ...company, groups: companyGroups });\n } else {\n setCompany({ ...company, groups: [...companyGroups, group] });\n }\n await handleFetchAndSetGrups();\n toastNotification(\n 'success',\n `Grupo ${isEdit ? 'atualizado' : 'criado'} com sucesso.`\n );\n\n handleClose();\n } else {\n toastNotification(\n 'error',\n `Ocorreu um erro ao ${\n isEdit ? 'atualizar' : 'criar'\n } o grupo, verifique e tente novamente.`\n );\n }\n setLoading(false);\n } else {\n toastNotification(\n 'error',\n `Ocorreu um erro ao ${\n isEdit ? 'atualizar' : 'criar'\n } o grupo, verifique e tente novamente.`\n );\n }\n }\n\n async function getResponse() {\n if (!isEdit)\n return await CreateGroup(\n {\n ...group,\n name: groupCopy.name.trim(),\n projects: [group.project],\n company: group.company,\n },\n dispatchApp\n );\n else\n return await UpdateGroup(\n {\n ...group,\n name: groupCopy.name.trim(),\n company: group.company,\n },\n dispatchApp\n );\n }\n function handleChangeName(name: string) {\n if (!name.includes('/')) {\n setError((prev) => ({ ...prev, name: '' }));\n setGroupCopy((prev) => ({ ...prev, name }));\n }\n }\n return (\n \n \n \n \n \n {isEdit ? getTranslation('edit') : getTranslation('create')}{' '}\n {getTranslation('group')}\n \n \n \n \n \n \n \n e.preventDefault()}>\n \n handleChangeName(e.target.value)}\n helperText={error.name}\n />\n \n\n \n \n \n \n \n \n \n \n {getTranslation('save')}\n {loading && }\n \n \n \n \n \n );\n}\n","import styled from 'styled-components';\nimport IconButton from '@material-ui/core/IconButton';\n\n\nexport const GrupHeader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: start;\n justify-content: space-between;\n margin-bottom: 10px;\n`;\n\nexport const FloatingIconButton = styled(IconButton)`\n && {\n margin: 0;\n padding: 0;\n display: inline-flex;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const AutoCompleteWrap = styled.div`\n width: 100%;\n margin: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n input {\n height: auto;\n }\n\n button {\n width: auto;\n height: auto;\n }\n`;\nexport const TableContainer = styled.div`\nwidth: 100%;\nmax-height: 58vh;\noverflow: auto;\n`;\n","import CloseIcon from '@material-ui/icons/Close';\n\nimport { useState } from 'react';\n\nimport {\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from '@material-ui/core';\n\nimport AddIcon from '@material-ui/icons/Add';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport { Edit } from '@material-ui/icons';\nimport { ManageGroup } from './ManageGroup';\nimport { useCompanies } from 'contexts/Company';\nimport { CompanyGroup, emptyGroup } from 'contexts/Company/types';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { useApp } from 'contexts/App/appContext';\nimport { GetGroup } from 'services/CompaniesService/Groups';\nimport {\n CustomPaper,\n HoverableRow,\n} from 'components/ModalManageCompanies/styles';\nimport { FloatingIconButton, GrupHeader } from './styles';\nimport { TableContainer } from './styles';\n\nexport function ProjectGroups() {\n const { toastNotification } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { state, dispatch } = useCompanies();\n const { company, project } = state;\n const companyName = company.name;\n const { getTranslation } = useTranslator();\n const [editGroup, setEditGroup] = useState(false);\n const groups = project.groups;\n\n async function handleEditGroup(groupName: string) {\n const result = await GetGroup(\n { groupName, companyName, projectName: project.name },\n dispatchApp\n );\n if (result.Success) {\n dispatch({\n type: 'setGroup',\n data: { group: result.Data as unknown as CompanyGroup },\n });\n\n setEditGroup(true);\n } else {\n toastNotification(\n 'error',\n getTranslation('modal.manageCompany.project.group.fetchError')\n );\n }\n }\n\n async function handleRemoveGroup(groupName: string) {\n const cloneGroups = groups;\n if (!cloneGroups) return;\n\n const fixedGroups = cloneGroups.filter((group) => group !== groupName);\n dispatch({\n type: 'setProject',\n data: { project: { ...project, groups: fixedGroups } },\n });\n }\n function handleCloseManageGroup() {\n setEditGroup(false);\n dispatch({ type: 'setGroup', data: { group: emptyGroup } });\n }\n\n return (\n \n \n
    \n {getTranslation(\n 'modal.manageCompany.project.group.manageProjectGroups'\n )}\n
    \n setEditGroup(true)}\n >\n \n \n
    \n {company.projects && company.projects.length > 0 ? (\n \n \n \n \n {getTranslation('name')}\n {getTranslation('edit')}\n {getTranslation('delete')}\n \n \n \n {groups?.sort().map((group) => (\n \n {group}\n \n handleEditGroup(group)}\n >\n \n \n \n \n handleRemoveGroup(group)}\n >\n \n \n \n \n ))}\n \n
    \n
    \n ) : (\n
    {getTranslation('modal.manageCompany.project.group.notFound')}
    \n )}\n {editGroup && (\n \n )}\n
    \n );\n}\n","import {\n TextField,\n IconButton,\n AppBar,\n Button,\n Container,\n Dialog,\n Toolbar,\n CircularProgress,\n} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { useCompanies } from 'contexts/Company';\nimport { ContainerDialog } from '../../styles';\nimport useTranslator from 'utils/hooks/Translator';\nimport {\n CreateProject,\n GetAllProjects,\n UpdateProject,\n} from 'services/CompaniesService/Projects';\nimport { useApp } from 'contexts/App/appContext';\nimport { ManageAgents } from '../../ManageAgents';\nimport { ButtonContainer } from '../styles';\nimport * as S from './styles';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { ManageUsers } from '../../ManageUsers';\nimport { useEffect, useMemo, useState } from 'react';\nimport {\n CustomPaper,\n FormsContainer,\n} from 'components/ModalManageCompanies/styles';\nimport { ProjectGroups } from './ProjectGroups';\nimport { GetCompany } from 'services/CompaniesService/Company';\nimport { Company } from 'contexts/Company/types';\nimport { arraysAreEqual } from 'utils/arraysAreEqual';\n\ninterface Props {\n handleClose: () => void;\n editProject: boolean;\n}\ninterface Errors {\n name: string;\n}\n\nexport function ManageProject({ handleClose, editProject }: Props) {\n const { toastNotification } = useFlow();\n const { state, dispatch, setCompany } = useCompanies();\n const { dispatch: dispatchApp } = useApp();\n const { company, project, projectCopy } = state;\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState({ name: '' });\n const { getTranslation } = useTranslator();\n const [nameProject, setNameProject] = useState(project.name);\n const [agents, setAgents] = useState(['']);\n const [users, setUsers] = useState(['']);\n const classes = S.useStyles();\n const hasUserChanges = !arraysAreEqual(projectCopy.users, project.users);\n const hasAgentChanges = !arraysAreEqual(projectCopy.agents, project.agents);\n const hasGroupChanges = !arraysAreEqual(projectCopy.groups, project.groups);\n\n const hasChanges = useMemo(\n () =>\n project.name !== nameProject ||\n hasUserChanges ||\n hasAgentChanges ||\n hasGroupChanges,\n [project, nameProject, hasUserChanges, hasAgentChanges, hasGroupChanges]\n );\n\n useEffect(() => {\n if (!project._id) {\n dispatch({\n type: 'setProject',\n data: { project: { ...project, company: company.name || '' } },\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n function handleValidate(): boolean {\n if (!nameProject) {\n setError((prev) => ({\n ...prev,\n name: getTranslation('validations.required', {\n field: getTranslation('name'),\n }),\n }));\n return true;\n }\n return false;\n }\n async function handleFetchAndSetProjects() {\n const response = await GetAllProjects(company.name, dispatchApp);\n if (response.Success) {\n const namesProjects = response.Data.data.map((project) => project.name);\n setCompany(\n {\n ...company,\n projects: namesProjects,\n },\n true\n );\n } else {\n toastNotification(\n 'error',\n getTranslation('modal.manageCompany.project.fetchError')\n );\n }\n }\n\n async function handleCreateOrUpdateProject() {\n if (handleValidate()) return;\n setNameProject(nameProject.trim());\n setLoading(true);\n const response = await getResponseToCreateOrEditProject();\n\n if (response.Success) {\n const companyProjects = company.projects;\n if (!companyProjects) return;\n\n await handleFetchAndSetProjects();\n dispatch({\n type: 'setProjectCopy',\n data: { projectCopy: project },\n });\n if (project._id) {\n toastNotification(\n 'success',\n getTranslation('modal.manageCompany.project.updateSuccess')\n );\n } else {\n toastNotification(\n 'success',\n getTranslation('modal.manageCompany.project.creationSuccess')\n );\n }\n\n const savedProject = response.Data;\n dispatch({\n type: 'setProject',\n data: { project: { ...savedProject } },\n });\n } else {\n if (project._id) {\n toastNotification(\n 'error',\n getTranslation('modal.manageCompany.project.updateError')\n );\n } else {\n toastNotification(\n 'error',\n getTranslation('modal.manageCompany.project.creationError')\n );\n }\n }\n setLoading(false);\n }\n\n async function getResponseToCreateOrEditProject() {\n if (!project._id)\n return await CreateProject(\n { ...project, name: nameProject.trim() },\n dispatchApp\n );\n else\n return await UpdateProject(\n { ...project, name: nameProject.trim() },\n dispatchApp\n );\n }\n\n async function handleGetCompany() {\n const response = await GetCompany(company.name, dispatchApp);\n if (response.Success) {\n const companyResponse = response.Data as unknown as Company;\n setAgents(companyResponse.agents);\n setUsers(companyResponse.users.concat(companyResponse.admins));\n }\n }\n function handleChangeProjectName(name: string) {\n if (!name.includes('/')) {\n setError({\n name: '',\n });\n setNameProject(name);\n }\n }\n useEffect(() => {\n handleGetCompany();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editProject]);\n\n return (\n \n \n \n \n \n {project._id ? getTranslation('edit') : getTranslation('create')}{' '}\n {getTranslation('project')}\n \n \n \n \n \n \n\n \n e.preventDefault()}>\n \n {\n handleChangeProjectName(e.target.value);\n }}\n />\n \n\n \n \n \n \n \n \n \n handleCreateOrUpdateProject()}\n >\n {getTranslation('save')}\n {loading && (\n \n )}\n \n \n \n \n \n );\n}\n","import { useState } from 'react';\n\nimport {\n IconButton,\n Table,\n TableHead,\n TableRow,\n TableCell,\n TableBody,\n} from '@material-ui/core';\nimport { useCompanies } from 'contexts/Company';\nimport AddIcon from '@material-ui/icons/Add';\nimport CloseIcon from '@material-ui/icons/Close';\nimport EditIcon from '@material-ui/icons/Edit';\nimport useTranslator from 'utils/hooks/Translator';\n\nimport { ManageProject } from './ManageProject';\nimport { GetProject } from 'services/CompaniesService/Projects';\nimport { useApp } from 'contexts/App/appContext';\nimport {\n CustomPaper,\n HoverableRow,\n} from 'components/ModalManageCompanies/styles';\nimport { ProjectHeader } from './styles';\nimport { emptyProject } from 'contexts/Company/types';\nimport { TableContainer } from '../styles';\n\nexport function ManageProjects() {\n const { dispatch: dispatchApp } = useApp();\n const { state, setCompany, setProject } = useCompanies();\n const { company } = state;\n const projects = company.projects;\n const { getTranslation } = useTranslator();\n const [editProject, setEditProject] = useState(false);\n\n async function handleRemoveProject(projectName: string) {\n const projectToRemove = projects?.find(\n (project) => project === projectName\n );\n if (!projectToRemove) return;\n\n const cloneGroups = projects;\n if (!cloneGroups) return;\n\n const fixedGroups = cloneGroups.filter(\n (project) => project !== projectName\n );\n setCompany({ ...company, projects: fixedGroups });\n }\n\n function handleClose() {\n setProject(emptyProject, true);\n setEditProject(false);\n }\n\n async function handleEditProject(projectName: string) {\n const response = await GetProject(\n { projectName, companyName: company.name },\n dispatchApp\n );\n if (response.Success) {\n setProject(response.Data, true);\n setEditProject(true);\n }\n }\n\n return (\n \n \n
    \n {getTranslation('modal.manageCompany.project.manageCompanyProjects')}\n
    \n setEditProject(true)}\n >\n \n \n
    \n {company.projects && company.projects.length > 0 ? (\n \n \n \n \n \n {getTranslation('name')}\n \n \n \n \n {company.projects?.map((project) => (\n \n {project}\n \n handleEditProject(project)}\n >\n \n \n\n handleRemoveProject(project || '')}\n >\n \n \n \n \n ))}\n \n \n \n ) : (\n
    {getTranslation('modal.manageCompany.project.notFound')}
    \n )}\n\n {editProject && (\n \n )}\n
    \n );\n}\n","import { useState, useMemo } from 'react';\n\nimport {\n AppBar,\n Button,\n Checkbox,\n CircularProgress,\n Dialog,\n FormControlLabel,\n IconButton,\n TextField,\n Toolbar,\n} from '@material-ui/core';\n\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { ButtonContainer, CustomPaper, ModalTitle, useStyles } from '../styles';\n\nimport {\n OrganizationEditForm,\n ContainerDialog,\n Container,\n LoginWithAdContainer,\n LoginWithAdInfoContainer,\n} from './styles';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { ManageUsers } from './ManageUsers';\nimport { ManageAgents } from './ManageAgents';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport useTranslator from 'utils/hooks/Translator';\nimport { useCompanies } from 'contexts/Company';\nimport { ManageProjects } from './ManageProjects';\nimport { useApp } from 'contexts/App/appContext';\nimport {\n CreateCompany,\n UpdateCompany,\n} from 'services/CompaniesService/Company';\nimport { arraysAreEqual } from 'utils/arraysAreEqual';\nimport { Alert } from '@material-ui/lab';\n\ninterface Props {\n handleClose: () => void;\n handleEditCompany(companyName: string): Promise;\n}\n\nexport function ModalCompanyEdit({ handleClose, handleEditCompany }: Props) {\n const { toastNotification, state: flowState } = useFlow();\n const { botsNames } = flowState;\n const { dispatch } = useApp();\n const { state, dispatch: dispatchCompany, setCompany } = useCompanies();\n const { company, companyCopy } = state;\n const isEdit = !!company._id;\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const [nameCompany, setNameCompany] = useState(company.name);\n const { getTranslation } = useTranslator();\n const [showLoginWithAdInfo, setShowLoginWithAdInfo] = useState(false);\n\n const hasUserChanges = useMemo(\n () => !arraysAreEqual(companyCopy.users, company.users),\n [company.users, companyCopy.users]\n );\n const hasAgentChanges = useMemo(\n () => !arraysAreEqual(companyCopy.agents, company.agents),\n [company.agents, companyCopy.agents]\n );\n const hasProjecysChanges = useMemo(\n () => !arraysAreEqual(companyCopy.projects, company.projects),\n [company.projects, companyCopy.projects]\n );\n\n const hasUserslimitChanges = companyCopy.usersLimit !== company.usersLimit;\n const hasAgentsLimitChanges = companyCopy.agentsLimit !== company.agentsLimit;\n const loginWithAdChanges = company.loginWithAd !== companyCopy.loginWithAd;\n const hasChanges = useMemo(\n () =>\n company.name !== nameCompany ||\n hasUserChanges ||\n hasAgentChanges ||\n hasProjecysChanges ||\n hasUserslimitChanges ||\n hasAgentsLimitChanges ||\n loginWithAdChanges,\n [\n company.name,\n nameCompany,\n hasUserChanges,\n hasAgentChanges,\n hasProjecysChanges,\n hasUserslimitChanges,\n hasAgentsLimitChanges,\n loginWithAdChanges,\n ]\n );\n\n const currentProjects = useMemo(() => {\n return company.projects?.map((project) => project) || [];\n }, [company.projects]);\n\n const currentGroups = useMemo(() => {\n return company.groups?.map((group) => group.name) || [];\n }, [company.groups]);\n\n const disabledErrorLimits =\n company.usersLimit < company.users.length ||\n company.agentsLimit < company.agents.length;\n\n async function handleCreateOrUpdateCompany() {\n setLoading(true);\n setNameCompany(nameCompany.trim());\n\n const response = await getResponse();\n if (response.Success) {\n await handleEditCompany(nameCompany.trim());\n toastNotification(\n 'success',\n `Empresa ${isEdit ? 'atualizada' : 'criada'} com sucesso.`\n );\n dispatchCompany({\n type: 'setCompanyCopy',\n data: { companyCopy: company },\n });\n } else {\n toastNotification(\n 'error',\n `Ocorreu um erro ao ${\n isEdit ? 'atualizar' : 'criar'\n } a empresa, verifique e tente novamente.`\n );\n }\n setLoading(false);\n }\n\n async function getResponse() {\n if (!isEdit)\n return await CreateCompany(\n {\n ...company,\n name: nameCompany.trim(),\n projects: currentProjects,\n groups: currentGroups,\n agents_limit: company.agentsLimit as number,\n users_limit: company.usersLimit as number,\n login_with_ad: company.loginWithAd,\n },\n dispatch\n );\n else\n return await UpdateCompany(\n {\n ...company,\n _id: company._id || '',\n name: nameCompany.trim(),\n projects: currentProjects,\n groups: currentGroups,\n agents_limit: company.agentsLimit as number,\n users_limit: company.usersLimit as number,\n login_with_ad: company.loginWithAd,\n },\n dispatch\n );\n }\n function hanldeChangeNameCompany(name: string) {\n if (!name.includes('/')) {\n setNameCompany(name);\n }\n }\n\n return (\n \n \n \n \n \n {isEdit ? getTranslation('edit') : getTranslation('create')}{' '}\n {getTranslation('company')}\n \n \n \n \n \n \n\n \n e.preventDefault()}>\n \n \n {\n const name = e.target.value;\n hanldeChangeNameCompany(name);\n }}\n />\n\n
    \n \n \n setCompany({\n ...company,\n loginWithAd: !company.loginWithAd,\n })\n }\n name=\"loginWithAd\"\n color=\"primary\"\n />\n \n }\n label={getTranslation('loginWithAdCheckbox')}\n />\n setShowLoginWithAdInfo(true)}\n onMouseLeave={() => setShowLoginWithAdInfo(false)}\n />\n\n {showLoginWithAdInfo && (\n \n \n {getTranslation('loginWithAdInfo')}\n \n \n )}\n
    \n
    \n
    \n\n \n \n\n \n
    \n
    \n\n \n \n {getTranslation('save')}\n {loading && (\n \n )}\n \n \n
    \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport {\n AppBar,\n Dialog,\n Slide,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Toolbar,\n} from '@material-ui/core';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport * as S from './styles';\n\nimport { ModalCompanyEdit } from './ModalCompanyEdit';\nimport useTranslator from 'utils/hooks/Translator';\nimport { useCompanies } from 'contexts/Company';\nimport { Company, emptyCompany } from 'contexts/Company/types';\nimport { GetCompany, GetCompanys } from 'services/CompaniesService/Company';\nimport { useApp } from 'contexts/App/appContext';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\nimport { HoverableRow } from './styles';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalManageCompanies() {\n const { state, dispatch, toastNotification } = useFlow();\n const { isRoot, getCompanies } = usePermissions();\n const { dispatch: dispatchApp } = useApp();\n\n const [companies, setCompanies] = useState([]);\n const { setCompany } = useCompanies();\n const classes = S.useStyles();\n\n const { getTranslation } = useTranslator();\n\n const [showEdit, setShowEdit] = useState(false);\n\n function handleClose() {\n setCompany(emptyCompany, true);\n dispatch({ type: 'closeModalManageCompany' });\n }\n\n function closeEditCompany() {\n setCompany(emptyCompany, true);\n setShowEdit(false);\n if (isRoot()) handleSetCompanyIsRoot();\n }\n\n async function handleSetCompanyIsRoot() {\n const companysFetch = await GetCompanys(dispatchApp);\n if (companysFetch.Success) {\n const companysNames = (companysFetch.Data as Company[]).map(\n (company) => company.name\n );\n setCompanies(companysNames);\n } else {\n toastNotification('error', 'Erro ao buscar dados da empresa');\n }\n }\n\n function handleGetAdminNames(): string[] {\n return getCompanies()\n .filter((obj) => obj.isAdmin)\n .map((obj) => obj.name);\n }\n\n async function handleEditCompany(companyName: string) {\n const result = await GetCompany(companyName, dispatchApp);\n if (result.Success) {\n const {\n agents_limit: agentsLimit,\n users_limit: usersLimit,\n ...rest\n } = result.Data;\n setCompany(\n {\n ...rest,\n agentsLimit,\n usersLimit,\n },\n true\n );\n setShowEdit(true);\n } else {\n toastNotification('error', 'Erro ao buscar dados da empresa');\n }\n }\n\n useEffect(() => {\n if (isRoot() && state.openModalManageCompany) {\n handleSetCompanyIsRoot();\n } else {\n setCompanies(handleGetAdminNames());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.openModalManageCompany]);\n\n if (!state.openModalManageCompany) return <>;\n\n return (\n <>\n \n \n \n \n \n {getTranslation('modal.manageCompany.title')}\n \n \n \n \n \n \n \n \n \n \n \n {getTranslation('company')}\n \n \n \n \n {companies?.sort().map((company) => (\n \n {company}\n \n handleEditCompany(company)}\n >\n \n \n \n \n ))}\n \n
    \n
    \n
    \n\n \n {isRoot() && (\n setShowEdit(true)}\n >\n {getTranslation('add')}\n \n )}\n \n
    \n \n\n {showEdit && (\n \n )}\n \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetSingleOrganizationResponse,\n IGetOrganizationsResponse,\n IUpdateOrganizationRequest,\n IUpdateOrganizationResponse,\n ISaveOrganizationRequest,\n ISaveOrganizationResponse,\n IGetOrganizationResponse,\n} from './types';\n\nexport const GetOrganizations = async (\n dispatch: React.Dispatch\n): Promise> => {\n const action = 'organizations';\n return await json('GET', action, dispatch);\n};\n\nexport const GetOrganization = async (\n organizationId: string,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `organizations/${organizationId}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetSingleOrganization = async (\n dispatch: React.Dispatch\n): Promise> => {\n const action = 'organizations';\n return await json('GET', action, dispatch);\n};\n\nexport const SaveOrganization = async (\n request: ISaveOrganizationRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = 'organizations';\n return await json(\n 'POST',\n action,\n dispatch,\n request.organization\n );\n};\n\nexport const UpdateOrganization = async (\n request: IUpdateOrganizationRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `organizations/${request._id}`;\n return await json(\n 'PATCH',\n action,\n dispatch,\n request.organization\n );\n};\n","import styled from 'styled-components';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n overflow: hidden;\n min-height: 400px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #fff;\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n margin-top: 10px;\n display: flex;\n\n align-items: center;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiIconButton-root {\n padding: 8px;\n }\n\n .tableHeadCell-Button {\n width: 40px;\n text-align: right;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 16px 0;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\nexport const LineContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const NewKeyContainer = styled.div`\n margin-top: 40px;\n width: 100%;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const AutoCompleteWrap = styled.div`\n width: 100%;\n padding: 8px 0px;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n .MuiFormControl-root {\n background: #fff;\n }\n\n input {\n height: auto;\n }\n\n button {\n width: auto;\n height: auto;\n }\n`;\n\nexport const AccordionContainer = styled.div`\n max-height: 55vh;\n overflow-y: auto;\n padding: 16px;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n dialog80vw: {\n width: '80vw',\n background: '#F2F2F2',\n },\n input: {\n background: '#FFFFFF',\n },\n toolbar: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n })\n);\n","import { Checkbox, FormControlLabel } from '@material-ui/core';\n\ntype Props = {\n color: 'default' | 'primary' | 'secondary';\n label: string;\n name: string;\n value?: boolean;\n setValue: (value: boolean, name?: string) => void;\n};\n\nexport function InputCheckboxWithLabel({\n color,\n label,\n name,\n value,\n setValue,\n}: Props) {\n return (\n setValue(event.target.checked, name)}\n name={name}\n color={color}\n />\n }\n label={label}\n />\n );\n}\n\nInputCheckboxWithLabel.defaultProps = {\n color: 'default',\n name: 'input-checkbox-with-label',\n};\n","import { IconButton, TableCell, TableRow } from '@material-ui/core';\nimport {\n FunctionPermission,\n IPermissionFunction,\n} from 'services/PermissionServices/types';\nimport { InputCheckboxWithLabel } from 'components/Forms/InputCheckbox/InputCheckboxWithLabel';\nimport RemoveCircleIcon from '@material-ui/icons/RemoveCircle';\nimport useTranslator from 'utils/hooks/Translator';\n\ntype IPermissionType = {\n bot: string;\n functions: IPermissionFunction;\n};\n\ntype Props = {\n permission: IPermissionType;\n index: number;\n handleChangePermission: (\n permission: FunctionPermission,\n permissionIndex: number,\n checked: boolean\n ) => void;\n handleRemoveBot: (botName: string) => void;\n};\n\nexport function PermissionTableRow({\n permission,\n index,\n handleChangePermission,\n handleRemoveBot,\n}: Props) {\n const { getTranslation } = useTranslator();\n\n return (\n \n \n handleRemoveBot(permission.bot)}>\n \n \n \n {permission.bot}\n \n {\n handleChangePermission('publish', index, value);\n }}\n />\n \n \n handleChangePermission('edit', index, value)}\n />\n \n \n handleChangePermission('secrets', index, value)}\n />\n \n \n \n handleChangePermission('libraries', index, value)\n }\n />\n \n \n handleChangePermission('entities', index, value)}\n />\n \n \n \n handleChangePermission('conversations', index, value)\n }\n />\n \n \n handleChangePermission('campaign', index, value)}\n />\n \n \n );\n}\n","import MttGrid from 'components/Material/MttGrid/MttGrid';\nimport styled from 'styled-components';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n overflow: hidden;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const Container = styled.div`\n padding: 8px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n","import { useState, useEffect } from 'react';\n\nimport {\n Dialog,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n IconButton,\n TableContainer,\n Paper,\n Button,\n CircularProgress,\n TextField,\n AppBar,\n Toolbar,\n} from '@material-ui/core';\n\nimport {\n ButtonContainer,\n ModalTitle,\n useStyles,\n AutoCompleteWrap,\n FieldContainer,\n} from '../styles';\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport { IBot, IOrganization } from 'services/OrganizationServices/types';\nimport { UpdateOrganization } from 'services/OrganizationServices';\nimport { PermissionTableRow } from './PermissionTableRow';\nimport {\n FunctionPermission,\n IPermission,\n IPermissionFunction,\n} from 'services/PermissionServices/types';\n\nimport { useApp } from 'contexts/App/appContext';\nimport { Autocomplete } from '@material-ui/lab';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport useTranslator from 'utils/hooks/Translator';\nimport { Container, ContainerDialog } from './styles';\n\ntype Props = {\n organization: IOrganization | undefined;\n show: boolean;\n setShow: React.Dispatch>;\n userEmail: string;\n setUserEmail: React.Dispatch>;\n};\n\nconst defaultFunctions: IPermissionFunction = {\n secrets: false,\n publish: false,\n edit: false,\n libraries: false,\n entities: false,\n conversations: false,\n};\n\nexport function ModalPermissionEdit({\n show,\n setShow,\n organization,\n userEmail,\n setUserEmail,\n}: Props) {\n const { toastNotification } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const [permissions, setPermissions] = useState([]);\n const [userBots, setUserBots] = useState([]);\n const [organizationBots, setOrganizationsBots] = useState([]);\n const { getTranslation } = useTranslator();\n\n useEffect(() => {\n const userPermissions = organization?.users.find(\n (user) => user.email === userEmail\n );\n const permissions = userPermissions?.permissions ?? [];\n const currentUserBots = permissions.map((permission) => permission.bot);\n\n setPermissions(permissions);\n setUserBots(currentUserBots);\n }, [organization?.users, userEmail]);\n\n useEffect(() => {\n setOrganizationsBots(organization?.bots ?? []);\n }, [organization?.bots]);\n\n function getDifferentBots() {\n const organizationBotsStr = organizationBots.map(\n (organizationBot) => organizationBot.name\n );\n\n const differentBots = organizationBotsStr\n .filter((x) => !userBots.includes(x))\n .concat(userBots.filter((x) => !organizationBotsStr.includes(x)));\n\n return differentBots.sort() ?? [];\n }\n\n function handleClose() {\n setShow(false);\n }\n\n const [selectedBot, setSelectedBot] = useState();\n\n function addBotInUser() {\n if (selectedBot) {\n setUserBots((prev) => [...prev, selectedBot]);\n updateUserPermissions(selectedBot);\n }\n\n setSelectedBot(undefined);\n }\n\n function hasBotInPermissions(botName: string) {\n return permissions.some((permission) => permission.bot === botName);\n }\n\n function updateUserPermissions(selectedBot: string) {\n const clonePermissions = [...permissions];\n\n if (!hasBotInPermissions(selectedBot)) {\n clonePermissions.push({\n bot: selectedBot,\n functions: Object.assign({}, defaultFunctions),\n });\n }\n\n setPermissions(clonePermissions);\n }\n\n function handleChangePermission(\n permission: FunctionPermission,\n permissionIndex: number,\n checked: boolean\n ) {\n const clonePermissions = [...permissions];\n if (clonePermissions[permissionIndex].functions === null) {\n clonePermissions[permissionIndex].functions = Object.assign(\n {},\n defaultFunctions\n );\n }\n\n clonePermissions[permissionIndex].functions[permission] = checked;\n setPermissions(clonePermissions);\n }\n\n function removeBot(botName: string) {\n if (hasBotInPermissions(botName)) {\n const clonePermissions = [...permissions];\n const botIndex = clonePermissions.findIndex(\n (permission: IPermission) => permission.bot === botName\n );\n\n clonePermissions.splice(botIndex, 1);\n setPermissions(clonePermissions);\n\n const cloneUserBots = [...userBots];\n const userBotIndex = cloneUserBots.findIndex(\n (userBot) => userBot === botName\n );\n cloneUserBots.splice(userBotIndex, 1);\n setUserBots(cloneUserBots);\n }\n }\n\n const [fetching, setFetching] = useState(false);\n\n async function handleSave() {\n setFetching(true);\n\n const request = getRequestOrganization();\n const { success, message } = await remoteSaveOrganization(\n request\n ).finally();\n\n if (success) onSuccess();\n else onError(message);\n\n setFetching(false);\n }\n\n function getRequestOrganization() {\n const cloneOrganization = Object.assign({}, organization);\n const userPermissionIndex = cloneOrganization.users.findIndex(\n (user) => user.email === userEmail\n );\n\n if (userPermissionIndex >= 0) {\n cloneOrganization.users[userPermissionIndex].permissions = permissions;\n }\n\n return {\n organization: cloneOrganization,\n };\n }\n\n async function remoteSaveOrganization(request: any) {\n request._id = organization?._id;\n\n const response = await UpdateOrganization(request, dispatchApp);\n return {\n success: response.Success,\n message: response.Message,\n };\n }\n\n function onSuccess() {\n toastNotification('success', getTranslation('toast.success.update'));\n setUserEmail('');\n setShow(false);\n }\n\n function onError(message?: string) {\n toastNotification('error', message ?? getTranslation('toast.error.update'));\n }\n\n const classes = useStyles();\n\n if (!show) return <>;\n\n return (\n \n \n \n \n \n {getTranslation('modal.managePermissions.editPermissions')}{' '}\n {userEmail}\n \n \n \n \n \n \n\n \n \n
    {option}
    }\n onChange={({ target }: any) => {\n setSelectedBot(target.textContent);\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n {\n addBotInUser();\n }}\n >\n {getTranslation('modal.editOrganization.addAgent')}\n \n
    \n \n \n \n \n \n \n {getTranslation('delete')}\n {getTranslation('agent')}\n {getTranslation('functions')}\n \n \n \n {permissions?.map((permission, permissionIndex) => (\n \n ))}\n \n
    \n
    \n
    \n \n \n handleSave().finally()}\n >\n {getTranslation('save')}\n {fetching && }\n \n \n
    \n
    \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n AppBar,\n Dialog,\n Slide,\n Table,\n TableBody,\n TableCell,\n TableRow,\n Toolbar,\n Typography,\n} from '@material-ui/core';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { GetOrganizations } from 'services/OrganizationServices';\n\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport {\n IOrganization,\n IUserPermissions,\n} from 'services/OrganizationServices/types';\n\nimport * as S from './styles';\n\nimport { ModalPermissionEdit } from './ModalPermissionEdit';\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\n\ninterface OrganizationShow {\n users: string[];\n bots: string[];\n}\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalManagePermission() {\n const { state, dispatch } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const classes = S.useStyles();\n const { getTranslation } = useTranslator();\n const [organizations, setOrganizations] = useState();\n const [currentOrganizations, setCurrentOrganizations] = useState<\n IOrganization[]\n >([]);\n\n const [currentOrganization, setCurrentOrganization] =\n useState();\n\n const [showModalEditOrganization, setShowModalEditOrganization] =\n useState(false);\n const [currentUserEmail, setCurrentUserEmail] = useState();\n\n const getOrganizations = async () => {\n const response = await GetOrganizations(dispatchApp);\n if (response.Success) {\n const orgs = response.Data.data;\n let visualOrgs: OrganizationShow[] = [];\n Object.assign(visualOrgs, orgs);\n setOrganizations(orgs);\n }\n };\n\n useEffect(() => {\n if (state.openModalManagePermission) {\n getOrganizations();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.openModalManagePermission]);\n\n useEffect(() => {\n setCurrentOrganizations(organizations ?? []);\n }, [organizations]);\n\n function handleClose() {\n setCurrentOrganization(undefined);\n dispatch({ type: 'closeModalManagePermission' });\n }\n\n function openEditOrganization(\n user: IUserPermissions,\n organization: IOrganization | undefined\n ) {\n if (!!organization) setCurrentOrganization(organization);\n\n setCurrentUserEmail(user.email);\n setShowModalEditOrganization(true);\n }\n\n if (!state.openModalManagePermission) return <>;\n\n return (\n <>\n \n \n \n \n \n {getTranslation('modal.managePermissions.title')}\n \n \n \n \n \n \n \n {currentOrganizations?.map((organization, index) => (\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n >\n {organization.name}\n \n \n \n \n {organization.users?.map((user, index) => (\n \n \n {user.email}\n \n \n {\n openEditOrganization(user, organization);\n }}\n >\n \n \n \n \n ))}\n \n
    \n
    \n
    \n ))}\n
    \n
    \n \n\n {!!currentUserEmail && currentUserEmail !== '' && (\n \n )}\n \n );\n}\n","import { Grid } from '@material-ui/core';\nimport styled from 'styled-components';\n\nexport const ContainerDialog = styled(Grid)`\n width: 100%;\n height: 100%;\n position: relative;\n padding-top: 54px;\n\n overflow-y: hidden;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n\n .MuiOutlinedInput-input {\n background-color: #fff;\n }\n\n .MuiFormControl-root {\n background-color: #fff;\n }\n\n .MuiToolbar-root {\n justify-content: space-between;\n }\n`;\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nexport const ContentContainer = styled(Grid)`\n overflow-y: hidden;\n max-height: 60vh;\n padding: 20px;\n margin-top: 16px;\n\n .MuiAutocomplete-popper {\n overflow-x: hidden;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n height: 76px;\n\n button {\n width: 100%;\n height: 100%;\n padding: 24px;\n }\n`;\n\nexport const AutoCompleteOption = styled.span`\n flex: 1;\n margin: 3px 0;\n`;\n\nexport const GridInfo = styled(Grid)`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n margin-top: 80px;\n`;\n","import { Grid } from \"@material-ui/core\";\nimport styled from \"styled-components\";\n\nexport const Container = styled(Grid)`\n background: #FFFFFF;\n border-radius: 4px;\n`;\n\nexport const AutoCompleteOption = styled.span`\n flex: 1;\n margin: 3px 0;\n`;\n\nexport const ActionsContainer = styled(Grid)`\n display: flex;\n\n .MuiAutocomplete-fullWidth {\n margin-right: 8px;\n }\n`;\n\nexport const GridHeader = styled(Grid)`\n display: flex;\n border-bottom: solid 2px #6c50a4;\n padding: 8px 0;\n font-weight: 600;\n`\n\nexport const GridBody = styled(Grid)`\n display: flex;\n padding: 8px 0;\n`\n\nexport const GridColumn = styled(Grid)`\n flex: 1;\n`\n\nexport const NewPhraseContainer = styled(Grid)`\n display: flex;\n align-items: center;\n flex: 1;\n`;\n","import React from 'react';\nimport * as S from './styles';\nimport Sentences from 'components/inputs/Material/Sentences';\n\nconst PhraseOfIntent: React.FC<{ bot_name: string }> = ({ bot_name }) => {\n const newPhrase = () => {\n return (\n \n \n \n );\n };\n\n return {newPhrase()};\n};\n\nexport default PhraseOfIntent;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useMemo, useState } from 'react';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {\n AppBar,\n Button,\n Dialog,\n Grid,\n IconButton,\n Slide,\n TextField,\n Toolbar,\n Typography,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CheckIcon from '@material-ui/icons/Check';\n\nimport * as S from './styles';\nimport { Autocomplete } from '@material-ui/lab';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { GetBotsGroups } from 'services/BotService';\nimport { useApp } from 'contexts/App/appContext';\nimport { GetGroup, UpdateGroup } from 'services/FlowService';\nimport PhraseOfIntent from './PhraseOfIntent';\nimport { DataForm, ItemDataFlow } from 'models/DataFlow';\nimport { FormProvider } from 'contexts/Form/formContext';\nimport { DataFlowObject } from 'contexts/Flow/types';\nimport EIntentType from 'enums/EIntentType';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport useTranslator from 'utils/hooks/Translator';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\nclass IInfo {\n bot_name = '';\n group = '';\n intent = '';\n}\n\nconst ModalPhrasesOfIntentManage: React.FC = () => {\n const { state, dispatch, toastNotification, stopEditing } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { state: permissionsState, hasPermissionToAction } = usePermissions();\n const { companies } = permissionsState;\n const [info, setInfo] = useState(new IInfo());\n const [groups, setGroups] = useState(['']);\n const [intentions, setIntentions] = useState([]);\n const [drawflow, setDrawflow] = useState();\n const isFlowWrite = hasPermissionToAction({\n agent: info.bot_name,\n company: state.companyName || '',\n action: ['flow:write'],\n });\n\n const [viewPhrase, setViewPhrase] = useState('');\n const { getTranslation } = useTranslator();\n const agents = useMemo(() => {\n const company = companies.find(\n (company) => company.name === state.companyName\n );\n\n return company\n ? company.agents\n .filter((agent) =>\n hasPermissionToAction({\n agent: agent.name,\n company: state.companyName || '',\n action: ['flow:write', 'flow:read'],\n })\n )\n .map((agent) => agent.name)\n .sort()\n : [];\n }, [companies, state.companyName]);\n\n useEffect(() => {\n dispatch({\n type: 'updateForm',\n data: { dataForm: null },\n });\n\n stopEditing('openModalBlockedGroup');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n if (agents && state.openModalPhrasesOfIntentManager)\n handleChangeBot(agents[0]);\n }, [state.openModalPhrasesOfIntentManager]);\n\n useEffect(() => {\n if (info.bot_name && info.group && info.intent) {\n // getPhrasesNotUnderstood();\n setViewPhrase('');\n } else {\n setViewPhrase(getTranslation('modal.createPhrasesOfIntent.infoPhrase'));\n }\n }, [info]);\n\n const handleChangeBot = async (newValue: string | null) => {\n const botNameSelected = newValue || '';\n\n setInfo({ ...info, bot_name: botNameSelected, group: '', intent: '' });\n\n if (botNameSelected) {\n const response = await GetBotsGroups(\n { bot_name: botNameSelected },\n dispatchApp\n );\n const flows = response.Data.data;\n\n const principal = flows.find((group) => group === 'principal');\n\n if (principal) {\n setGroups([]);\n const updatedGroups = [\n principal,\n ...flows.filter((group) => group !== 'principal').sort(),\n ];\n setGroups(updatedGroups);\n }\n }\n };\n\n const handleChangeGroup = async (botName: string, groupName: string) => {\n setInfo({ ...info, group: groupName, intent: '' });\n\n if (groupName !== '') {\n const response = await GetGroup(\n { bot_name: botName || '', groupName },\n dispatchApp\n );\n\n if (response.Success) {\n const group = response.Data.data;\n\n const keys = Object.keys(group.blocks.drawflow.Home.data);\n const newIntentions = [];\n\n setDrawflow(group.blocks.drawflow);\n\n for (const key in keys) {\n const block = group.blocks.drawflow.Home.data[Number(keys[key])];\n if (\n block.data.intentType === EIntentType.InitialFlow ||\n block.data.intentType === EIntentType.MultipleChoiceChild ||\n block.data.intentType === EIntentType.CarouselChild\n )\n newIntentions.push(block);\n }\n setIntentions(newIntentions);\n }\n } else {\n const newIntentionsList: [] = [];\n setIntentions(newIntentionsList);\n }\n };\n\n const handleClose = () => {\n dispatch({ type: 'closeModalPhrasesOfIntentManager' });\n dispatch({ type: 'updateForm', data: { dataForm: null } });\n setInfo({ bot_name: '', group: '', intent: '' });\n };\n\n const handleSave = async () => {\n const { editorFlow } = state;\n if (!editorFlow) return;\n\n if (info.intent) {\n if (drawflow) {\n const response = await UpdateGroup(\n {\n bot_name: info.bot_name,\n group_name: info.group,\n blocks: {\n drawflow: drawflow,\n },\n },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.update'),\n 3000\n );\n } else {\n toastNotification(\n 'error',\n response.Message || getTranslation('toast.error.update')\n );\n }\n }\n } else {\n toastNotification('error', getTranslation('toast.error.selectIntent'));\n }\n };\n\n const noView = () => (\n \n \n \n {viewPhrase}\n \n \n );\n\n const renderPhrasesOfIntent = () => (\n \n );\n\n return (\n \n \n \n \n \n \n {getTranslation('modal.createPhrasesOfIntent.title')}\n \n handleClose()}\n aria-label=\"close\"\n >\n \n \n \n \n \n \n \n \n (\n {option}\n )}\n onChange={(event: any, newValue: string | null) => {\n handleChangeBot(newValue);\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n \n \n (\n {option}\n )}\n onChange={(event: any, newValue: string | null) => {\n handleChangeGroup(info.bot_name, newValue || '');\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n \n \n option.data.name)}\n noOptionsText={'Sem resultados'}\n renderOption={(option) => (\n {option}\n )}\n onChange={(event: any, newValue: string | null) => {\n const { editorFlow } = state;\n\n if (editorFlow) {\n const node = intentions.find(\n (i) => i.data.name === newValue\n );\n\n const dataForm = node?.data as DataForm;\n\n dispatch({\n type: 'updateForm',\n data: { dataForm },\n });\n }\n setInfo({ ...info, intent: newValue || '' });\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n \n \n \n {viewPhrase ? noView() : renderPhrasesOfIntent()}\n \n \n
    \n \n \n {isFlowWrite && (\n }\n onClick={() => handleSave()}\n variant=\"contained\"\n color=\"primary\"\n >\n {getTranslation('save')}\n \n )}\n \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default ModalPhrasesOfIntentManage;\n","import { Grid } from '@material-ui/core';\nimport styled from 'styled-components';\n\nexport const ContainerDialog = styled(Grid)`\n width: 100%;\n height: 100%;\n position: relative;\n padding-top: 54px;\n\n overflow-y: hidden;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n\n .MuiOutlinedInput-input {\n background-color: #fff;\n }\n\n .MuiFormControl-root {\n background-color: #fff;\n }\n\n .MuiToolbar-root {\n justify-content: space-between;\n }\n`;\n\nexport const ContentContainer = styled(Grid)`\n overflow-y: auto;\n padding: 20px;\n margin-top: 16px;\n`;\n\nexport const PhrasesContainer = styled(Grid).attrs({\n className: 'customScroll'\n})`\n height: 60vh;\n overflow-y: auto;\n background: #f5f5f5;\n border-radius: 4px;\n\n\tmax-height: 60vh;\n`;\n\nexport const AutoCompleteOption = styled.span`\n flex: 1;\n margin: 3px 0;\n`;\n\nexport const GridInfo = styled(Grid)`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n`;\n","import { Grid } from '@material-ui/core';\nimport styled from 'styled-components';\n\nexport const Container = styled(Grid)`\n border-radius: 4px;\n`;\n\nexport const GridItem = styled(Grid)`\n display: flex;\n flex-direction: column;\n background: #FFF;\n\n margin: 16px 16px;\n`\n\nexport const AutoCompleteOption = styled.span`\n flex: 1;\n margin: 3px 0;\n`;\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetConversationsRequest,\n IGetConversationsResponse,\n IGetOneConversationRequest,\n IGetOneConversationResponse,\n IGetOneCustomerRequest,\n IGetOneCustomerResponse,\n IGetPhrasesNotUnderstoodRequest,\n IGetPhrasesNotUnderstoodResponse,\n IGetPhrasesOfIntentRequest,\n IGetPhrasesOfIntentResponse,\n IGetConversationHistoryRequest,\n IGetConversationHistoryResponse,\n} from './types';\n\nexport const GetConversations = async (\n request: IGetConversationsRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/conversations`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetOneConversation = async (\n request: IGetOneConversationRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/conversations/${request.customer}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetOneCustomer = async (\n request: IGetOneCustomerRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `bots/${request.bot_name}/customer/${request.customer}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetPhrasesOfIntent = async (\n request: IGetPhrasesOfIntentRequest,\n dispatch: React.Dispatch\n) => {\n const action = `bots/${request.bot_name}/conversations/did-not-understood/${request.dateInterval}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetPhrasesNotUnderstood = async (\n request: IGetPhrasesNotUnderstoodRequest,\n dispatch: React.Dispatch\n) => {\n let action = `bots/${request.bot_name}/conversations/did-not-understood?startTime=${request.startDate}&endTime=${request.endDate}`;\n if (request.nextToken) action += `&nextToken=${request.nextToken}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetConversationHistory = async (\n request: IGetConversationHistoryRequest,\n dispatch: React.Dispatch\n): Promise> => {\n let action = `bots/${request.bot_name}/conversations/conversation-history?target_date=${request.target_date}&customer=${request.customer}`;\n\n if (request.next_logs) action += `&next_logs=${request.next_logs}`;\n if (request.previous_logs)\n action += `&previous_logs=${request.previous_logs}`;\n\n return await json('GET', action, dispatch);\n};\n","import { Grid, makeStyles, Theme } from '@material-ui/core';\nimport styled from 'styled-components';\nimport MttGrid from '../../../../components/Material/MttGrid/MttGrid';\n\nexport const ContainerDialog = styled(MttGrid)`\n width: 100%;\n height: 100%;\n\n position: relative;\n /* padding-top: 54px; */\n\n overflow: hidden;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const ContentContainer = styled(Grid)`\n overflow-x: hidden;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n margin-top: 54px;\n`;\n\nconst Headers = styled.div`\n /* padding: 16px; */\n\n /* margin-top: 14px; */\n width: 100%;\n background-color: #f2f2f2;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const IntentInfo = styled(Headers)`\n /* max-width: 28%; */\n`;\n\nexport const ClientInfo = styled(Headers)`\n /* max-width: 72%; */\n`;\n\nexport const MsgFieldContainer = styled.div`\n position: relative;\n left: 30px;\n\n p {\n color: #6c50a4;\n font-weight: bold;\n font-size: 1.1rem;\n }\n`;\n\nexport const MessagesContainer = styled.div`\n width: 100%;\n max-height: 74vh;\n\n ::-webkit-scrollbar {\n width: 10px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n`;\n\nexport const GridInfo = styled(Grid)`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n`;\n\nexport const DateChip = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n span {\n background: #6c50a459;\n max-width: 150px;\n padding: 8px 16px;\n margin: 16px;\n border-radius: 8px;\n font-weight: 500;\n /* border: 1px solid #a6a6a6; */\n }\n`;\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n userMsg: {\n maxWidth: '50%',\n padding: 8,\n margin: '8px',\n background: '#E5E4E4',\n borderRadius: 8,\n borderTopRightRadius: 0,\n },\n botMsg: {\n maxWidth: '50%',\n margin: 8,\n background: '#f4f4f4',\n padding: 8,\n borderRadius: 8,\n borderTopLeftRadius: 0,\n },\n modal: {\n height: 'inherit',\n },\n msgContainer: {\n height: 'fit-content',\n border: 'none',\n },\n selectedMsg: {\n border: '2px solid #ff14149e',\n background: '#ff00001f',\n margin: 8,\n },\n msg: {\n wordWrap: 'break-word',\n fontWeight: 500,\n margin: 0,\n padding: '0px 10px',\n },\n msgHour: {\n wordWrap: 'break-word',\n fontSize: 10,\n textAlign: 'end',\n fontWeight: 500,\n margin: '0 0 2px',\n padding: '0 7px 0 10px',\n },\n intentGrid: {\n width: '100%',\n },\n intentMsg: {\n width: '180px',\n borderRadius: 8,\n textAlign: 'center',\n },\n regularGrid: {\n // width: '72%',\n },\n loadMessagesButton: {\n background: '#0000000a',\n display: 'flex',\n alignItems: 'center',\n\n '&:hover': {\n background: '#c3c2c2',\n },\n },\n}));\n","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\n\nimport Translations from './locales';\n\nconst i18nConfig = {\n resources: Translations,\n fallbackLng: 'pt-BR',\n defaultNS: 'translations',\n};\n\ni18n.use(LanguageDetector).use(initReactI18next).init(i18nConfig);\n\nexport default i18n;\n","import ptBrTranslations from './pt-br/pt-br.json';\nimport enUsTranslations from './en-us/en-us.json';\nimport esTranslations from './es/es.json';\n\nconst Translations = {\n 'pt-BR': ptBrTranslations,\n 'en-US': enUsTranslations,\n es: esTranslations,\n};\n\nexport default Translations;\n","import { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n padding: '2px 4px',\n display: 'flex',\n alignItems: 'center',\n width: 300,\n position: 'absolute',\n top: 80,\n },\n input: {\n marginLeft: theme.spacing(1),\n flex: 1,\n },\n results: {\n margin: 5,\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '0.9rem',\n },\n iconButton: {\n padding: 10,\n },\n divider: {\n height: 28,\n margin: 4,\n },\n\t\tselectedMsg: {\n\t\t\tborder: '2px solid #ff14149e !important',\n\t\t\tbackground: '#ff00001f !important',\n\t\t},\n\t\tfoundMsg: {\n\t\t\tborder: '2px solid #f4ed06 !important',\n\t\t\tbackground: '#fff36094 !important',\n\t\t},\n })\n);","import { useState } from 'react';\n\nimport { Paper, InputBase, IconButton } from '@material-ui/core';\nimport MttTypography from '../../../../../components/Material/MttTypography/MttTypography';\nimport Divider from '@material-ui/core/Divider';\nimport ArrowLeftOutlinedIcon from '@material-ui/icons/ArrowLeftOutlined';\nimport ArrowRightOutlinedIcon from '@material-ui/icons/ArrowRightOutlined';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Message } from 'models/Conversation';\n\nimport * as S from './styles';\nimport Draggable from 'react-draggable';\nimport useTranslator from 'utils/hooks/Translator';\n\ninterface FilterProps {\n handleClose: () => void;\n conversation: Message[];\n}\n\nexport function Filter({ handleClose, conversation }: FilterProps) {\n const classes = S.useStyles();\n const [search, setSearch] = useState('');\n const [searchIndex, setSearchIndex] = useState(0);\n const [totalResults, setTotalResults] = useState(0);\n const [highlightedElements, setHighlightedElements] = useState(\n []\n );\n const { getTranslation } = useTranslator();\n\n const handleSearchMessage = (\n e: React.ChangeEvent\n ) => {\n setSearch(e.target.value);\n\n if (e.target.value) {\n const foundMessages = conversation.filter((c) =>\n c.message?.match(e.target.value)\n );\n setTotalResults(foundMessages.length);\n setSearchIndex(-1);\n\n highlightFoundMessages(foundMessages);\n removeHighlightMessages(\n conversation.filter((c) => !foundMessages.includes(c))\n );\n } else {\n removeHighlightMessages(conversation);\n }\n };\n\n function highlightFoundMessages(messages: Message[]) {\n const elements: HTMLElement[] = [];\n\n messages.forEach((message) => {\n const element = document.getElementById(\n `${message.message}-${message.timestamp}`\n );\n\n if (element && element.children[0]) {\n const keys = Object.keys(element.children[0].classList);\n let isHighlighted = false;\n\n for (const key of keys) {\n if (\n element.children[0].classList[Number(key)].match('foundMsg') !==\n null\n ) {\n isHighlighted = true;\n }\n }\n\n if (!isHighlighted) {\n element.children[0].className += ` ${classes.foundMsg}`;\n }\n elements.push(element);\n }\n });\n setHighlightedElements(elements);\n }\n\n function removeHighlightMessages(messages: Message[]) {\n messages.forEach((message) => {\n const id = `${message.message}-${message.timestamp}`;\n\n const element = document.getElementById(id);\n if (element && element.children[0]) {\n const keys = Object.keys(element.children[0].classList);\n\n let removeClassIndex = -1;\n for (const key of keys) {\n if (element.children[0].classList[Number(key)].match('foundMsg'))\n removeClassIndex = Number(key);\n }\n element.children[0].classList.remove(\n element.children[0].classList[removeClassIndex]\n );\n }\n });\n }\n\n function goToElement(index: number) {\n if (highlightedElements && highlightedElements[index]) {\n highlightedElements[index].scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n }\n }\n\n return (\n \n ) => e.preventDefault()}\n >\n handleSearchMessage(e)}\n autoFocus\n />\n \n {search && `${searchIndex + 1}/${totalResults}`}\n \n \n\n {\n if (searchIndex > 0) {\n goToElement(searchIndex - 1);\n setSearchIndex(searchIndex - 1);\n }\n }}\n disabled={!(totalResults !== 0) || !!!search}\n >\n \n \n\n {\n if (searchIndex < totalResults - 1) {\n goToElement(searchIndex + 1);\n setSearchIndex(searchIndex + 1);\n }\n }}\n disabled={!(totalResults !== 0) || !!!search}\n >\n \n \n\n \n {\n removeHighlightMessages(conversation);\n setHighlightedElements([]);\n handleClose();\n }}\n >\n \n \n \n \n );\n}\n","/* eslint-disable no-extend-native */\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { ModalCustomerProps } from './types';\nimport { GetConversationHistory } from 'services/ConversationService';\nimport { ConversationMessage, Msgs } from 'services/ConversationService/types';\nimport { Message, MessageType } from 'models/Conversation';\nimport {\n AppBar,\n Button,\n Card,\n CircularProgress,\n Grid,\n IconButton,\n Toolbar,\n Typography,\n} from '@material-ui/core';\nimport * as S from './style';\nimport { useApp } from 'contexts/App/appContext';\nimport { format, isToday } from 'date-fns';\nimport useTranslator from 'utils/hooks/Translator';\nimport { isYesterday } from 'date-fns/esm';\nimport { ptBR, enUS, es } from 'date-fns/locale';\nimport i18n from 'utils/i18n';\nimport { Filter } from '../ModalCustomer/Filter';\n\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalMisunderstoodPhrases(props: ModalCustomerProps) {\n const classes = S.useStyles();\n const { toastNotification } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { open, bot_name, customer, handleClose, messageSelected } = props;\n const [conversation, setConversation] = useState([]);\n const [loading, setLoading] = useState(false);\n const [openFilter, setOpenFilter] = useState(false);\n const [paginationToken, setPaginationToken] = useState('');\n const [loadLast, setLoadLast] = useState(false);\n const [loadOlder, setLoadOlder] = useState(false);\n\n const dateConfigString =\n i18n.language === 'en-US' ? 'dd MMM yyy' : \"dd 'de' MMMM 'de' yyyy\";\n\n const currLocale =\n i18n.language === 'en-US' ? enUS : i18n.language === 'pt-BR' ? ptBR : es;\n\n const { getTranslation } = useTranslator();\n\n useEffect(() => {\n window.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.key === 'f' && e.ctrlKey === true) {\n e.preventDefault();\n setOpenFilter(true);\n }\n });\n }, []);\n\n useEffect(() => {\n async function load() {\n setLoading(true);\n\n const resultConversation = await GetConversationHistory(\n {\n bot_name,\n customer,\n target_date: `${messageSelected?.created_at}`,\n },\n dispatchApp\n );\n if (resultConversation.Success) {\n const newConversation: ConversationMessage[] = [];\n resultConversation.Data.messages.messages.forEach((m) => {\n newConversation.push(m);\n });\n setConversation(newConversation);\n setPaginationToken(resultConversation.Data.messages.cursor);\n } else {\n setConversation([]);\n }\n setLoading(false);\n\n if (messageSelected) {\n const selectedGrid = document.getElementById(\n `${messageSelected.message.msg}-${messageSelected.message.timestamp}`\n );\n\n if (selectedGrid)\n selectedGrid.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n }\n if (open) load();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, bot_name, customer]);\n\n const close = () => {\n handleClose();\n };\n\n function getMessageClass(row: Msgs) {\n let currClass = `${classes.msgContainer}`;\n if (row.type === 'outgoing') currClass += ` ${classes.botMsg}`;\n else currClass += ` ${classes.userMsg}`;\n\n if (\n messageSelected &&\n row.msg === messageSelected.message.msg &&\n row.timestamp === messageSelected.timestamp\n )\n currClass += ` ${classes.selectedMsg}`;\n\n return currClass;\n }\n\n function groupMessagesByDay(\n currDate: number | Date,\n messagesByEveryDay: { day: string; rows: Msgs[] }[],\n row: Msgs\n ) {\n if (isToday(currDate)) {\n const index = messagesByEveryDay.findIndex(\n (m: { day: string }) => m.day === getTranslation('today')\n );\n\n if (index !== -1) messagesByEveryDay[index].rows.push(row);\n else\n messagesByEveryDay.push({ day: getTranslation('today'), rows: [row] });\n } else if (isYesterday(currDate)) {\n const index = messagesByEveryDay.findIndex(\n (m: { day: string }) => m.day === getTranslation('yesterday')\n );\n\n if (index !== -1) messagesByEveryDay[index].rows.push(row);\n else\n messagesByEveryDay.push({\n day: getTranslation('yesterday'),\n rows: [row],\n });\n } else {\n const formattedDate = format(currDate, dateConfigString, {\n locale: currLocale,\n });\n\n const index = messagesByEveryDay.findIndex(\n (m: { day: string }) => m.day === formattedDate\n );\n\n if (index !== -1) messagesByEveryDay[index].rows.push(row);\n else messagesByEveryDay.push({ day: formattedDate, rows: [row] });\n }\n }\n\n const getMessages = useCallback(() => {\n const messages: Message[] = [];\n conversation?.forEach((m) =>\n m.msgs.forEach((msg) => {\n messages.push({\n message: msg.msg,\n messageType: msg.type as MessageType,\n timestamp: msg.timestamp,\n contentType: 'text',\n });\n })\n );\n\n return messages;\n }, [conversation]);\n\n async function getMoreConversations(previous: boolean) {\n const timeStampToSearchFrom = !previous\n ? conversation[0].created_at\n : conversation[conversation.length - 1].created_at;\n\n const requestObj = {\n bot_name,\n customer,\n target_date: timeStampToSearchFrom || '',\n cursor: paginationToken,\n previous_logs: previous || undefined,\n next_logs: !previous || undefined,\n };\n\n const response = await GetConversationHistory(requestObj, dispatchApp);\n\n if (response.Success) {\n if (response.Data && response.Data.messages.messages.length > 0) {\n const newMessages = response.Data.messages.messages;\n\n if (previous) setConversation([...conversation, ...newMessages]);\n else setConversation([...newMessages, ...conversation]);\n } else {\n toastNotification(\n 'warning',\n getTranslation('modal.fixPhrases.noMorePhrases')\n );\n }\n } else {\n toastNotification('error', getTranslation('modal.fixPhrases.error'));\n }\n\n !!previous ? setLoadOlder(false) : setLoadLast(false);\n }\n\n const olderLoading = () =>\n conversation.length > 0 && (\n \n {!loadOlder ? (\n {\n setLoadOlder(true);\n getMoreConversations(true);\n }}\n >\n {getTranslation('modal.fixPhrases.older')}\n \n ) : (\n \n )}\n \n );\n\n const lastLoading = () =>\n conversation.length > 0 && (\n \n {!loadLast ? (\n {\n setLoadLast(true);\n getMoreConversations(false);\n }}\n >\n {getTranslation('modal.fixPhrases.last')}\n \n ) : (\n \n )}\n \n );\n\n const renderMessagesByDate = useMemo(() => {\n const messagesByEveryDay: { day: string; rows: Msgs[] }[] = [];\n\n conversation?.forEach((msg) => {\n msg.msgs.forEach((row) => {\n const currDate = new Date(row.timestamp);\n groupMessagesByDay(currDate, messagesByEveryDay, row);\n });\n });\n\n if (messagesByEveryDay && messagesByEveryDay.length > 0) {\n return messagesByEveryDay.reverse().map((messagesGroup, index) => (\n
    \n
    \n \n {messagesGroup.day}\n \n\n {messagesGroup.rows\n .map((row, index) => (\n \n \n {row.msg}\n \n {format(new Date(`${row.timestamp} UTC`), 'HH:mm')}\n \n \n\n {row.type !== 'outgoing' && (\n \n \n {row?.intentName}\n \n \n )}\n \n ))\n .reverse()}\n
    \n
    \n ));\n } else\n return (\n \n \n \n {getTranslation('modal.fixPhrases.noPhrases')}\n \n \n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [conversation, getMoreConversations]);\n\n return (\n \n \n \n \n \n {getTranslation('modal.messageHistory.title')}\n \n \n \n \n \n \n {loading ? (\n \n \n \n ) : (\n <>\n {openFilter && (\n setOpenFilter(false)}\n conversation={getMessages()}\n />\n )}\n \n {olderLoading()}\n \n {renderMessagesByDate}\n \n \n \n )}\n \n {lastLoading()}\n \n );\n}\n","/* eslint-disable @typescript-eslint/no-unused-expressions */\nimport { Grid, IconButton, TextField, Typography } from '@material-ui/core';\nimport React, { useState } from 'react';\n\nimport * as S from './styles';\n\nimport FormatQuoteIcon from '@material-ui/icons/FormatQuote';\nimport { Autocomplete } from '@material-ui/lab';\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\nimport Visibility from '@material-ui/icons/Visibility';\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\nimport { IMessagesNotUnderstood } from 'services/ConversationService/types';\nimport ModalMisunderstoodPhrases from 'views/Canvas/Main/ModalMisunderstoodPhrases';\nimport useTranslator from 'utils/hooks/Translator';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\n\ninterface IPhraseProps {\n customer: string;\n message: IMessagesNotUnderstood;\n botName: string;\n destinationIntents: string[];\n confirmMessage: (\n intentDestination: string,\n message: IMessagesNotUnderstood\n ) => void;\n deleteMessage: (message: IMessagesNotUnderstood) => void;\n index: number;\n}\n\nconst Phrase: React.FC = (props: IPhraseProps) => {\n const {\n customer,\n message,\n botName,\n destinationIntents,\n confirmMessage,\n deleteMessage,\n index,\n } = props;\n\n const [openModal, setOpenModal] = useState(false);\n const { state } = useFlow();\n const { hasPermissionToAction } = usePermissions();\n const [selectedDestinationIntent, setSelectedDestinationIntent] =\n useState('');\n const [error, setError] = useState('');\n const { getTranslation } = useTranslator();\n const isFlowWrite = hasPermissionToAction({\n agent: botName,\n company: state.companyName || '',\n action: ['flow:write'],\n });\n const formatText = (message: string) =>\n message.length > 50 ? `${message.slice(1, 47)}...` : message;\n\n const saveMessage = () => {\n if (selectedDestinationIntent) {\n setError('');\n confirmMessage(selectedDestinationIntent, message);\n } else\n setError(getTranslation('modal.fixPhrases.destinationIntentValidation'));\n };\n\n return (\n \n \n \n \n setOpenModal(true)}>\n \n \n {}}>\n \n \n \n {formatText(message.message.msg)}\n \n \n \n (\n {option}\n )}\n onChange={(_: any, newValue: string | null) => {\n if (newValue) {\n setError('');\n setSelectedDestinationIntent(newValue);\n }\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n {isFlowWrite && (\n <>\n {\n deleteMessage(message);\n setSelectedDestinationIntent('');\n setError('');\n }}\n >\n \n \n\n saveMessage()}>\n \n \n \n )}\n \n \n \n\n {\n setOpenModal(false);\n }}\n messageSelected={message}\n index={index}\n />\n \n );\n};\n\nexport default Phrase;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useMemo, useState } from 'react';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {\n AppBar,\n CircularProgress,\n Dialog,\n Grid,\n IconButton,\n Slide,\n TextField,\n Toolbar,\n Typography,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport ptbrLocale from 'date-fns/locale/pt-BR';\nimport esLocale from 'date-fns/locale/es';\nimport usLocale from 'date-fns/locale/en-US';\n\nimport * as S from './styles';\nimport Phrase from './Phrase';\nimport { Autocomplete } from '@material-ui/lab';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { DatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport DateFnsUtils from '@date-io/date-fns';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport { useApp } from 'contexts/App/appContext';\nimport { GetGroup, UpdateGroup } from 'services/FlowService';\nimport { GetPhrasesNotUnderstood } from 'services/ConversationService';\nimport { GetBotsGroups } from 'services/BotService';\nimport { IGroupData } from 'services/FlowService/types';\nimport {\n IConversationNotUnderstood,\n IGetPhrasesNotUnderstoodResponse,\n IMessagesNotUnderstood,\n} from 'services/ConversationService/types';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\nimport { subDays } from 'date-fns';\nimport EIntentType from 'enums/EIntentType';\nimport useTranslator from 'utils/hooks/Translator';\nimport i18n from 'utils/i18n';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nclass IInfo {\n bot_name = '';\n initialDate: Date | null = subDays(new Date(), 1);\n finalDate: Date | null = new Date();\n}\n\nconst ModalCorrectSentences: React.FC = () => {\n const { state, dispatch, toastNotification, loadFlow } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { state: permissionsState, hasPermissionToAction } = usePermissions();\n const { companies } = permissionsState;\n const [info, setInfo] = useState(new IInfo());\n const [viewPhrase, setViewPhrase] = useState('');\n const [loading, setLoading] = useState(false);\n\n const [sentence, setSentence] = useState();\n const [groups, setGroups] = useState([]);\n const [previousTokens, setPreviousTokens] = useState<(string | undefined)[]>(\n []\n );\n const [blocksListName, setBlocksListName] = useState([]);\n const { getTranslation } = useTranslator();\n\n function getLocation() {\n if (i18n.language === 'en-US') {\n return usLocale;\n } else if (i18n.language === 'es') {\n return esLocale;\n } else return ptbrLocale;\n }\n\n const currLocale = getLocation();\n const agents = useMemo(() => {\n const company = companies.find(\n (company) => company.name === state.companyName\n );\n\n return company\n ? company.agents\n .filter((agent) =>\n hasPermissionToAction({\n agent: agent.name,\n company: state.companyName || '',\n action: ['flow:read','flow:write'],\n })\n )\n .map((agent) => agent.name)\n .sort()\n : [];\n }, [companies, state.companyName]);\n\n useEffect(() => {\n if (agents && state.openModalManageCorrectSentences)\n handleChangeBot(agents[0]);\n }, [state.openModalManageCorrectSentences]);\n\n useEffect(() => {\n if (info.bot_name && info.initialDate && info.finalDate) {\n getPhrasesNotUnderstood();\n setViewPhrase('');\n } else {\n setLoading(false);\n setViewPhrase(getTranslation('modal.fixPhrases.infoPhrase'));\n }\n }, [info]);\n\n const getBackPhrase = () => {\n const tokenRender = previousTokens[previousTokens.length - 2];\n const newPreviousToken = previousTokens.slice(0, previousTokens.length - 1);\n setPreviousTokens(newPreviousToken);\n getPhrasesNotUnderstood(tokenRender, true);\n };\n\n const getPhrasesNotUnderstood = async (token?: string, back?: boolean) => {\n setLoading(true);\n try {\n if (info.bot_name && info.initialDate && info.finalDate) {\n const response = await GetPhrasesNotUnderstood(\n {\n bot_name: info.bot_name,\n startDate: info.initialDate.setHours(0, 0, 0),\n endDate: info.finalDate.setHours(23, 59, 59),\n nextToken: token,\n },\n dispatchApp\n );\n\n if (response.Success) {\n if (response.Data.conversations.length > 0) {\n setSentence(response.Data);\n if (!back) setPreviousTokens([...previousTokens, token]);\n setViewPhrase('');\n } else {\n if (response.Data.nextToken)\n await getPhrasesNotUnderstood(response.Data.nextToken);\n else setViewPhrase(getTranslation('modal.fixPhrases.noPhrases'));\n }\n } else {\n setViewPhrase(getTranslation('modal.fixPhrases.error'));\n }\n }\n } catch (e) {\n setViewPhrase(getTranslation('modal.fixPhrases.error'));\n }\n setLoading(false);\n };\n\n const handleClose = () => {\n setSentence(undefined);\n setInfo({\n bot_name: '',\n initialDate: subDays(new Date(), 1),\n finalDate: new Date(),\n });\n dispatch({ type: 'closeModalManageCorrectSentences' });\n };\n\n async function handleChangeBot(newValue: string | null) {\n setLoading(true);\n const botNameSelected = newValue || '';\n\n setPreviousTokens([]);\n\n if (botNameSelected) {\n const response = await GetBotsGroups(\n { bot_name: botNameSelected },\n dispatchApp\n );\n\n if (response.Success && response.Data) {\n const flows = response.Data.data;\n\n const principal = flows.find((group) => group === 'principal');\n\n if (principal) {\n const updatedGroups = [\n principal,\n ...flows\n .filter((group) => group !== 'principal')\n .map((group) => group)\n .sort(),\n ];\n\n await handleChangeGroup(botNameSelected, updatedGroups);\n }\n }\n }\n setInfo({ ...info, bot_name: botNameSelected });\n }\n\n async function handleChangeGroup(botName: string, groups: string[]) {\n const newGroups: IGroupData[] = [];\n const newBlocksListName: string[] = [];\n groups.forEach(async (groupName) => {\n const response = await GetGroup(\n { bot_name: botName, groupName },\n dispatchApp\n );\n\n if (response.Success) {\n const group = response.Data.data;\n\n const keys = Object.keys(group.blocks.drawflow.Home.data);\n\n for (const key in keys) {\n const block = group.blocks.drawflow.Home.data[Number(keys[key])];\n if (\n block.data.intentType === EIntentType.InitialFlow ||\n block.data.intentType === EIntentType.MultipleChoiceChild ||\n block.data.intentType === EIntentType.CarouselChild ||\n block.data.intentType === EIntentType.NLU\n )\n newBlocksListName.push(`${groupName}_${block.data.name}`);\n }\n\n newGroups.push(group);\n }\n });\n setGroups(newGroups);\n setBlocksListName(newBlocksListName);\n }\n\n const handleConfirmMessage = async (\n intentDestination: string,\n message: IMessagesNotUnderstood\n ) => {\n setLoading(true);\n const [group, intention] = intentDestination.split('_');\n const groupFind = groups.find((g) => g.group_name === group);\n\n if (groupFind) {\n const keys = Object.keys(groupFind.blocks.drawflow.Home.data);\n\n for (const key in keys) {\n const block =\n groupFind.blocks.drawflow.Home.data[Number(keys[key])].data;\n if (block.name === intention) {\n if (!block.inputs?.userSentences) {\n groupFind.blocks.drawflow.Home.data[Number(keys[key])].data.inputs =\n {\n userSentences: [message.message.msg],\n variables: [],\n };\n } else {\n block.inputs.userSentences?.forEach((sentence, index) => {\n if (sentence === '') {\n if (block.inputs?.userSentences) {\n block.inputs.userSentences[index] = message.message.msg;\n }\n }\n });\n if (\n !block.inputs?.userSentences?.find(\n (sentence) => sentence === message.message.msg\n )\n ) {\n groupFind.blocks.drawflow.Home.data[\n Number(keys[key])\n ].data.inputs?.userSentences?.push(message.message.msg);\n }\n }\n break;\n }\n }\n\n const response = await UpdateGroup(\n {\n bot_name: info.bot_name,\n group_name: group,\n blocks: {\n drawflow: groupFind.blocks.drawflow,\n },\n },\n dispatchApp\n );\n\n if (response.Success && sentence) {\n if (state.botName && state.idGroup) loadFlow(group, info.bot_name);\n toastNotification(\n 'success',\n getTranslation('toast.success.update'),\n 3000\n );\n handleRemoveMessage(message);\n } else {\n toastNotification(\n 'error',\n response.Message || getTranslation('toast.error.update')\n );\n }\n }\n setLoading(false);\n };\n\n const handleRemoveMessage = async (message: IMessagesNotUnderstood) => {\n setLoading(true);\n if (sentence) {\n const conversations: IConversationNotUnderstood[] =\n sentence.conversations.map((conversation) => {\n const messages = conversation.messages.filter(\n (m) =>\n m.message !== message.message && m.timestamp !== message.timestamp\n );\n return {\n customer: conversation.customer,\n messages,\n };\n });\n\n const conversationsFilter = conversations.filter(\n (conversation) => conversation.messages.length > 0\n );\n\n if (conversationsFilter.length)\n setSentence({ ...sentence, conversations: conversationsFilter });\n else if (sentence.nextToken) {\n await getPhrasesNotUnderstood(sentence.nextToken);\n } else setViewPhrase(getTranslation('modal.fixPhrases.noPhrases'));\n }\n setLoading(false);\n };\n\n const phrasesOfIntent = () =>\n sentence &&\n sentence.conversations?.map((conversation: IConversationNotUnderstood) =>\n conversation.messages.map((message, index: number) => {\n return (\n \n );\n })\n );\n\n const noView = () => (\n \n \n \n {viewPhrase}\n \n \n );\n\n const renderLoading = () => (\n \n \n {getTranslation('modal.fixPhrases.loading')}\n \n \n \n );\n\n if (!state.openModalManageCorrectSentences) return <>;\n\n return (\n <>\n \n \n \n \n \n {getTranslation('modal.fixPhrases.title')}\n \n handleClose()}\n aria-label=\"close\"\n >\n \n \n \n \n \n \n \n (\n {option}\n )}\n onChange={(event: any, newValue: string | null) => {\n handleChangeBot(newValue);\n }}\n fullWidth\n disabled={loading}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n {\n setPreviousTokens([]);\n setInfo({ ...info, initialDate: date });\n }}\n autoOk\n disabled={loading}\n fullWidth\n minDate={subDays(new Date(), 14)}\n />\n \n \n \n \n {\n setPreviousTokens([]);\n setInfo({ ...info, finalDate: date });\n }}\n autoOk\n minDate={subDays(new Date(), 30) || info.initialDate}\n fullWidth\n />\n \n \n \n \n \n \n {getTranslation('modal.fixPhrases.entryPhrases')}\n \n \n \n {loading\n ? renderLoading()\n : viewPhrase\n ? noView()\n : phrasesOfIntent()}\n \n {sentence && (\n \n 1)}\n onClick={() => getBackPhrase()}\n >\n \n \n getPhrasesNotUnderstood(sentence.nextToken)}\n >\n \n \n \n )}\n \n \n \n \n \n );\n};\n\nexport default ModalCorrectSentences;\n","import { useMemo } from 'react';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\nimport { Actions } from 'contexts/Permissions/types';\n\nexport interface HasAccessProps {\n children: React.ReactChild;\n action: Actions[];\n}\n\nconst WithHasAccess = ({ children, action }: HasAccessProps) => {\n const { hasPermissionToAction, isCompanyAdmin, isRoot } = usePermissions();\n const { botName: agent, companyName: company } = useFlow().state;\n\n const verifyAccess = useMemo(() => {\n if (isRoot()) return true;\n if (company && isCompanyAdmin(company)) return true;\n if (company && agent)\n return hasPermissionToAction({ company, agent, action });\n }, [action, agent, company, hasPermissionToAction, isCompanyAdmin, isRoot]);\n\n return !!verifyAccess ? <>{children} : null;\n};\n\nexport default WithHasAccess;\n","import {\n IPermission,\n IPermissionData,\n} from '../services/PermissionServices/types';\n\nimport { IUserPermissions } from '../services/OrganizationServices/types';\nimport { arrayUnique } from './ArrayFunctions';\n\nexport function reducerUserPermissions(\n permissionData: IPermissionData[]\n): IPermission[] {\n const permissions: IPermission[] = [];\n\n const allPermissions = permissionData.map((d) => d.permissions);\n\n allPermissions.forEach((item) => {\n if (Array.isArray(item) && !!item.length) {\n item.forEach((permission) => {\n if (permissions.some((p) => p.bot === permission.bot)) {\n const iterationPermissionIndex = permissions.findIndex(\n (p) => p.bot === permission.bot\n );\n const iterationPermission = permissions.find(\n (p) => p.bot === permission.bot\n );\n\n if (!!iterationPermission?.functions) {\n permissions[iterationPermissionIndex].functions =\n iterationPermission.functions;\n }\n } else {\n permissions.push(permission);\n }\n });\n }\n });\n\n return permissions;\n}\n\nexport function insertBotPermissionInUser(\n botName: string,\n permission: IPermission,\n user: IUserPermissions\n) {\n const userPermissionIndex = user?.permissions.findIndex(\n (p: IPermission) => p.bot === botName\n );\n\n if (\n Array.isArray(user?.permissions) &&\n user?.permissions[userPermissionIndex]\n )\n user.permissions[userPermissionIndex] = permission;\n else {\n user.permissions.push(permission);\n }\n\n return user;\n}\n\nexport function reducerPermissionsFunctionToArray(permissions: IPermission[]) {\n let listPermissions: string[] = [];\n\n permissions.forEach((permission) => {\n const listPermission = permissionFunctionToArray(permission);\n listPermissions = arrayUnique(listPermissions.concat(listPermission));\n });\n\n return listPermissions;\n}\n\nexport function permissionFunctionToArray(permission: IPermission) {\n const { functions } = permission;\n\n const listPermissions: string[] = [];\n\n if (functions !== null)\n (Object.keys(functions) as Array).forEach(\n (functionName) => {\n if (functions[functionName] === true) {\n listPermissions.push(functionName);\n }\n }\n );\n\n return listPermissions;\n}\n","import { addMinutes, isPast } from 'date-fns';\n\nconst config = {\n NAMESPACE: 'llego',\n};\n\nconst expire = 'expire_';\nconst namespace = config.NAMESPACE ? `${config.NAMESPACE}_` : '';\nconst keyName = (key: string, prefix = '') => `${prefix}${namespace}${key}`;\n\nconst getExpirationDate = (key: string) => {\n const exp = localStorage.getItem(keyName(key, expire));\n return new Date(exp || Number.MIN_VALUE);\n};\n\nconst remove = (key: string) => {\n localStorage.removeItem(keyName(key, expire));\n localStorage.removeItem(keyName(key));\n};\n\nfunction set(key: string, data: object, expireMinutes = 1430) {\n const expireDate = addMinutes(new Date(), expireMinutes);\n localStorage.setItem(keyName(key, expire), expireDate.toISOString());\n localStorage.setItem(keyName(key), JSON.stringify(data));\n}\n\nfunction get(key: string) {\n const expiration = getExpirationDate(key);\n const value = localStorage.getItem(keyName(key));\n\n if (!value || isPast(expiration)) {\n remove(key);\n return undefined;\n }\n\n return JSON.parse(value);\n}\n\nexport const localStore = { set, get, remove };\n","import { useState, useEffect } from 'react';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { permissionFunctionToArray } from 'utils/permission';\nimport { localStore } from '../Stores';\n\ntype AccessControlLayer = {\n clearStorageUserPermissions: () => void;\n getBots: () => string[];\n getPermissions: () => string[];\n getPermissionsByBot: (botName: string) => string[];\n hasPermissionToResource: (resource: string[]) => boolean;\n isAdmin: () => boolean;\n isFintalkStaff: () => boolean;\n isAdminInOrganization: (organizationName: string) => boolean;\n saveStorageUserPermission: (permissions: string[]) => void;\n currentPermissions: string[];\n};\nconst ADMIN_ORGANIZATION = 'Fintalk STAFF';\n\nlet isFirstRender = true;\n\nexport default function useAccessControlLayer(): AccessControlLayer {\n const { state } = useFlow();\n const { userOrganizations, userPermissions, botName } = state;\n const [currentPermissions, setCurrentPermissions] = useState([]);\n\n if (isFirstRender) {\n setCurrentPermissions(loadStorageUserPermission());\n isFirstRender = false;\n }\n\n useEffect(() => {\n let permissions: string[] = [];\n\n if (!!botName) {\n const botPermission = userPermissions.find(\n (userPermission) => userPermission.bot === botName\n );\n\n if (!!botPermission) {\n permissions = permissionFunctionToArray(botPermission);\n }\n }\n\n if (isAdmin()) permissions = [...permissions, 'admin'];\n\n if (isFintalkStaff()) permissions = [...permissions, 'adminStaff'];\n\n saveStorageUserPermission(permissions);\n setCurrentPermissions(permissions);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userPermissions, botName]);\n\n function saveStorageUserPermission(permissions: string[]) {\n localStore.set('userPermissions', permissions);\n }\n\n function loadStorageUserPermission(): string[] {\n return localStore.get('userPermissions') ?? [];\n }\n\n function clearStorageUserPermissions() {\n localStore.remove('userPermissions');\n }\n\n function isAdmin() {\n return userOrganizations.some((organization) => organization.isAdmin);\n }\n\n function isFintalkStaff() {\n return userOrganizations.some(\n (organization) => organization.name === ADMIN_ORGANIZATION\n );\n }\n\n function isAdminInOrganization(organizationName: string) {\n const organization = userOrganizations.find(\n (organization) => organization.name === organizationName\n );\n\n return !!organization && organization.isAdmin;\n }\n\n function getBots() {\n return userPermissions.map((permission) => permission.bot);\n }\n\n function getPermissions() {\n return currentPermissions;\n }\n\n function getPermissionsByBot(organizationName: string) {\n const permission = userPermissions.find(\n (permission) => permission.bot === organizationName\n );\n\n if (!permission) return [];\n\n return permissionFunctionToArray(permission);\n }\n\n function hasPermissionToResource(resources: string[]) {\n return resources.some((resource) =>\n currentPermissions.some(\n (currentPermission) => currentPermission === resource\n )\n );\n }\n\n return {\n clearStorageUserPermissions,\n getBots,\n getPermissions,\n getPermissionsByBot,\n isAdmin,\n isFintalkStaff,\n isAdminInOrganization,\n hasPermissionToResource,\n saveStorageUserPermission,\n currentPermissions,\n };\n}\n","import styled from 'styled-components';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport MttButton from '../Material/MttButton/MttButton';\nimport { themeDefault } from 'themes/DefaultTheme';\n\nexport const Container = styled.div`\n position: absolute;\n left: 32%;\n top: 82%;\n border-radius: 10px;\n\n z-index: 10;\n background-color: #e0e0e0;\n box-shadow: 1px 1px 3px 1px #00001150;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 20px;\n max-width: 500px;\n width: 100%;\n`;\n\nexport const ContentContainer = styled.div`\n width: 100%;\n max-width: 350px;\n max-height: 67px;\n`;\n\nexport const TextContainer = styled(Typography).attrs({})`\n display: flex;\n max-width: 355px;\n font-size: 0.9rem !important;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})``;\n\nexport const ButtonContainer = styled.div``;\n\nexport const ButtonOk = styled(MttButton)`\n width: 134px;\n height: 35px;\n`;\n\nexport const useStyles = makeStyles({\n modalTitle: {\n fontSize: '1rem',\n fontWeight: 'bold',\n lineHeight: 1.6,\n color: themeDefault.palette.primary.main,\n },\n buttonOk: {\n fontSize: '0.8rem',\n },\n});\n","import { useFlow } from 'contexts/Flow/flowContext';\nimport WithHasAccess from 'utils/WithHasAccess';\nimport useTranslator from 'utils/hooks/Translator';\nimport useAccessControlLayer from 'utils/hooks/useAccessControlLayer';\n\nimport * as S from './styles';\n\nexport default function ModalBlockedGroup() {\n const classes = S.useStyles();\n const { state, verifyEditGroup } = useFlow();\n const { hasPermissionToResource, isFintalkStaff } = useAccessControlLayer();\n const { getTranslation } = useTranslator();\n\n const handleEdit = async () => {\n if (state.idGroup && state.botName) {\n await verifyEditGroup(state.idGroup, state.botName);\n }\n };\n\n if (!state.openModalBlockedGroup || !state.botName) return <>;\n\n return (\n \n \n \n {getTranslation('visualizationMode.title')}\n \n {(hasPermissionToResource(['edit']) || isFintalkStaff()) && (\n \n {getTranslation('visualizationMode.subtitle')}\n \n )}\n \n \n {/* {(hasPermissionToResource(['edit']) || isFintalkStaff()) && ( */}\n \n \n {getTranslation('visualizationMode.button')}\n \n \n {/* )} */}\n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\nimport MttButton from '../Material/MttButton/MttButton';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid) <{ colorHeader?: string }>`\n width: 55vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 8px 0;\n\n .MuiInput-root {\n padding: 12px;\n border: solid 1px rgba(0, 0, 0, 0.1);\n border-radius: 5px;\n background: #ffffff;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n\n .MuiInput-underline:before {\n display: none;\n }\n\n .MuiInputBase-multiline {\n padding: 0;\n }\n`;\n\nexport const TemplatesContainer = styled(Grid)`\n display: flex;\n\n padding: 8px 0;\n`;\n\nexport const Section = styled(MttGrid)<{ selected?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 4px 8px;\n margin-right: 6px;\n\n background-color: ${(props) => (props.selected ? '#6C50A41A' : '#FFFFFF')};\n\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2);\n\n span {\n font-weight: 500;\n }\n\n div {\n opacity: 0.6;\n }\n\n &:hover {\n background-color: ${(props) => (props.selected ? 'null' : '#f2f2f2')};\n }\n`;\n\nexport const Templates = styled(Grid)`\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n width: 55%;\n height: 20rem;\n`;\n\nexport const Description = styled(Grid)`\n display: flex;\n flex-direction: column;\n\n width: 45%;\n border-radius: 5px;\n background: #ffffff;\n padding: 16px 16px;\n`;\n\nexport const DescriptionInfo = styled(Grid)`\n display: flex;\n flex-direction: column;\n\n padding-top: 16px;\n\n span {\n padding-top: 8px;\n opacity: 0.7;\n }\n`;\n\nexport const ButtonsContainer = styled(Grid)`\n padding: 16px 0;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\nexport const ContainerDivider = styled.div`\n .MuiDivider-root {\n height: 2px;\n color: #aeaeae;\n }\n`;\n","import React, { ChangeEvent, useCallback, useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SearchIcon from '@material-ui/icons/Search';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { grey } from '@material-ui/core/colors';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete/Autocomplete';\n\nimport {\n Dialog,\n Divider,\n InputAdornment,\n Slide,\n TextField,\n} from '@material-ui/core';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\n\nimport './styles.css';\nimport {\n ContainerDialog,\n ContainerHeader,\n FieldContainer,\n TemplatesContainer,\n Button,\n ButtonsContainer,\n ModalTitle,\n Templates,\n Description,\n ContainerDivider,\n Section,\n} from './styles';\nimport { CircularProgress } from '@material-ui/core';\nimport { DataFlow, ItemDataFlow, Output } from 'models/DataFlow';\nimport GetOffsetPositionFlowController from 'controllers/library/GetOffsetPositionFlowController';\nimport AddBlockToFlowController from 'controllers/library/AddBlockToFlowController';\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\nimport {\n AddFlexBlockToGroup,\n DeleteFlexBlockGroup,\n GetFlexBlocks,\n} from 'services/FlexBlocksService';\nimport { GetGroup, GetGroupIsLiberated } from 'services/FlowService';\nimport EIntentType from 'enums/EIntentType';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nconst useStyles = makeStyles(() =>\n createStyles({\n dialog: {\n background: grey[100],\n },\n\n buttonUpload: {\n background: grey[600],\n color: '#FFFFFF',\n letterSpacing: 2,\n borderRadius: 8,\n '&:hover': {\n background: grey[700],\n },\n },\n })\n);\n\nexport default function ModalFlexBlocks() {\n const { dispatch: dispatchApp } = useApp();\n const { state, dispatch, mountNodeContent, toastNotification } = useFlow();\n const { openModalFlexBlocks } = state;\n const classes = useStyles();\n\n const options = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\n const [search, setSearch] = useState('');\n\n const [flexBlocks, setFlexBlocks] = useState([]);\n const [load, setLoad] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(null);\n const { getTranslation } = useTranslator();\n\n const loadFlexBlocks = useCallback(async () => {\n setLoad(true);\n const resultFlexBlocks = await GetFlexBlocks(\n state.botName || '',\n dispatchApp\n );\n if (\n resultFlexBlocks.Success &&\n resultFlexBlocks.Data &&\n resultFlexBlocks.Data.data\n ) {\n const result = resultFlexBlocks.Data.data;\n const blocksNames: string[] = [];\n result.flex_blocks.forEach((block) => {\n if (`flex-${block.block_name}` !== state.idGroup)\n blocksNames.push(block.block_name);\n });\n\n setFlexBlocks(blocksNames);\n }\n setLoad(false);\n }, [dispatchApp, state.botName, state.idGroup]);\n\n useEffect(() => {\n if (openModalFlexBlocks) {\n setSearch('');\n loadFlexBlocks();\n }\n }, [loadFlexBlocks, openModalFlexBlocks]);\n\n function handleClose() {\n setSelectedIndex(null);\n dispatch({ type: 'closeModalFlexBlocks' });\n }\n\n if (!state.openModalFlexBlocks) return null;\n\n const handleSelectBlock = (index: number) => {\n setSelectedIndex(index);\n };\n\n const renderDetails = () => {\n if (selectedIndex === null) return <>;\n // const block = flexBlocks[selectedIndex];\n return (\n <>\n {/* {block.block_name} \n \n {getTranslation('modal.flexBlocks.description')}:\n {block.description}\n {getTranslation('modal.flexBlocks.createdBy')}\n {block?.author || ''}\n {getTranslation('modal.flexBlocks.createdAt')}\n {formatDate(block?.created_at || '')}\n */}\n \n );\n };\n\n const handleRemoveBlock = async (index: number) => {\n if (load) return;\n setLoad(true);\n const templatesChanged = [...flexBlocks];\n const template_id = templatesChanged[index] || '-1';\n templatesChanged.splice(index, 1);\n\n const response = await GetGroupIsLiberated(\n {\n bot_name: state.botName!,\n groupName: `flex-${template_id}`,\n },\n dispatchApp\n );\n\n if (!response.Data.group_is_liberated) {\n toastNotification(\n 'error',\n getTranslation('toast.error.agentOrGroupInUse', {\n object: getTranslation('group'),\n user: response.Data.current_user,\n status: getTranslation('agentOrGroupStatus.removed'),\n })\n );\n setLoad(false);\n return;\n }\n\n const flexBlocksResponse = await GetFlexBlocks(state.botName!, dispatchApp);\n\n if (flexBlocksResponse.Data.data) {\n const flexBlocks = flexBlocksResponse.Data.data;\n const flexBlockBeingDeleted = flexBlocks.flex_blocks.find(\n (block) => block.block_name === template_id\n );\n if (\n flexBlockBeingDeleted &&\n flexBlockBeingDeleted.groups_used.length > 0\n ) {\n const groups = flexBlockBeingDeleted.groups_used.map(\n (group) => group.group_name\n );\n\n toastNotification(\n 'error',\n `Não foi possível apagar esse bloco, o mesmo está em uso no(s) grupo(s) \"${groups}\".`\n );\n setLoad(false);\n\n return;\n }\n }\n\n const result = await DeleteFlexBlockGroup(\n {\n bot_name: state.botName || '',\n block_name: template_id,\n groups_used: [],\n },\n dispatchApp\n );\n\n if (result.Success) {\n toastNotification('success', 'Bloco Flex removido com sucesso.');\n loadFlexBlocks();\n } else {\n toastNotification(\n 'error',\n 'Erro ao remover Bloco Flex, verifique e tente novamente.'\n );\n }\n setSelectedIndex(null);\n setLoad(false);\n };\n\n const isDisabled = () => {\n return selectedIndex === null;\n };\n\n const verifyBlockWithSameNameInGroup = () => {\n if (selectedIndex === null) return;\n const blocksKeys = Object.keys(\n state.editorFlow?.drawflow.drawflow.Home.data\n );\n const groupData = state.editorFlow?.drawflow.drawflow.Home.data;\n let blockAlreadyInGroup = false;\n for (const blockKey of blocksKeys) {\n const currentBlock = groupData[Number(blockKey)];\n if (currentBlock.data.name === flexBlocks[selectedIndex]) {\n blockAlreadyInGroup = true;\n return blockAlreadyInGroup;\n }\n }\n };\n\n const handleSendToFlow = async () => {\n const blockInGroup = verifyBlockWithSameNameInGroup();\n if (!blockInGroup && state.editorFlow?.drawflow && selectedIndex !== null) {\n const groupResponse = await GetGroup(\n {\n bot_name: state.botName || '',\n groupName: `flex-${flexBlocks[selectedIndex]}`,\n },\n dispatchApp\n );\n if (groupResponse.Success) {\n const groupData = groupResponse.Data.data;\n const groupBlocks = groupData.blocks.drawflow.Home.data;\n const groupBlocksKeys = Object.keys(groupBlocks);\n\n let entryBlock: ItemDataFlow = {} as ItemDataFlow;\n let exitBlocks: ItemDataFlow[] = [];\n\n for (const key in groupBlocksKeys) {\n const currentBlock = groupBlocks[Number(groupBlocksKeys[key])];\n if (currentBlock.data.intentType === EIntentType.FlexBlockEntry) {\n entryBlock = currentBlock;\n }\n if (currentBlock.data.intentType === EIntentType.FlexBlockExit)\n exitBlocks.push(currentBlock);\n }\n\n const dataOutputs: Output[] = [];\n const outputs = {};\n exitBlocks.forEach((exitBlock, index) => {\n Object.assign(outputs, {\n ...outputs,\n [`output_${index + 1}`]: { connections: [] },\n });\n dataOutputs.push({ title: exitBlock.data.name });\n });\n\n const { editorFlow } = state;\n\n const offsetPosition = new GetOffsetPositionFlowController(\n editorFlow\n ).getLastPosition();\n const drawflowCurrent = { ...editorFlow.drawflow };\n const controller = new AddBlockToFlowController(\n drawflowCurrent,\n state.idGroup || '',\n offsetPosition\n );\n const nextId = controller.getNextNodeId();\n const flexBlock: DataFlow = {\n [nextId]: {\n class: 'dbclick',\n html: '',\n id: nextId,\n name: 'dbclick',\n pos_x: offsetPosition.pos_x,\n pos_y: offsetPosition.pos_y,\n typenode: false,\n data: {\n name: flexBlocks[selectedIndex],\n description: entryBlock.data.description,\n groupId: state.idGroup || 'principal',\n intentType: EIntentType.FlexBlock,\n outputs: dataOutputs,\n entryName: entryBlock.data.name,\n dataBlockly: {\n compiledPayload: `event('flex-${flexBlocks[selectedIndex]}_${entryBlock.data.name}')`,\n lastVersion: 1,\n payload: '',\n xml: '',\n },\n },\n outputs,\n inputs: { input_1: { connections: [] } },\n },\n };\n\n await controller.addBlock(flexBlock);\n const drawflow = controller.getDrawflow();\n\n editorFlow.clear();\n editorFlow.import(drawflow);\n const dataFlow: DataFlow = drawflow.drawflow.Home.data;\n mountNodeContent(dataFlow);\n handleClose();\n\n await AddFlexBlockToGroup(\n {\n block_name: flexBlocks[selectedIndex],\n bot_name: state.botName || '',\n block_id: nextId,\n group_name: state.idGroup || '',\n },\n dispatchApp\n );\n }\n } else {\n toastNotification('error', 'Este Bloco Flex já existe nesse grupo.');\n }\n };\n\n const isSelected = (index: number) => {\n return selectedIndex === index;\n };\n\n return (\n \n \n \n Blocos Flex\n \n \n \n \n \n option)}\n renderInput={(params) => (\n ) =>\n setSearch(e.target.value)\n }\n InputProps={{\n type: 'search',\n startAdornment: (\n \n \n \n ),\n }}\n fullWidth\n />\n )}\n />\n \n \n \n {load ? (\n \n ) : (\n flexBlocks\n .sort((a, b) => a.localeCompare(b))\n .filter(\n (item) =>\n item.toLowerCase().indexOf(search.toLowerCase()) > -1 ||\n !search\n )\n .map((item, index) => (\n \n handleSelectBlock(index)}\n selected={isSelected(index)}\n >\n {item}\n
    \n {/* \n \n */}\n handleRemoveBlock(index)}\n >\n \n \n
    \n \n \n \n \n
    \n ))\n )}\n
    \n {renderDetails()}\n
    \n \n \n {getTranslation('modal.templates.sendToFlowButton')}\n \n \n
    \n \n );\n}\n","import React from 'react';\n\nimport FlowComponent from 'components/Flow';\nimport ModalForms from 'components/ModalForms';\nimport ModalNewGroup from 'components/ModalNewGroup';\nimport ModalSavedBlocks from 'components/ModalSavedBlocks';\nimport ModalSaveSelectedBlocks from 'components/ModalSaveSelectedBlocks';\nimport ModalStandardTemplates from 'components/ModalStandardTemplates';\nimport ModalTemplateUpload from 'components/ModalTemplateUpload';\nimport ModalInactiveWarning from 'components/ModalInactiveWarning';\nimport ModalUsedGroup from 'components/ModalUsedGroup';\nimport ModalAccessKeys from 'components/ModalAccessKeys';\nimport ModalManageAccount from 'components/ModalManageAccount';\n// import ModalManageOrganization from 'components/ModalManageOrganization';\nimport ModalManageCompanies from 'components/ModalManageCompanies';\nimport ModalManagePermission from 'components/ModalManagePermission';\nimport ModalPhrasesOfIntentManager from 'components/ModalPhrasesOfIntentManager';\nimport ModalCorrectSentences from 'components/ModalCorrectSentences';\nimport ModalBlockedGroup from 'components/ModalBlockedGroup';\nimport { CompanyProvider } from 'contexts/Company';\nimport ModalFlexBlocks from 'components/ModalFlexBlocks';\n\nconst Flow: React.FC = () => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Flow;\n","import { Grid, Paper, TextField, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport MttTextField from 'components/Material/MttTextField/MttTextFIeld';\n\nexport const LoginContainer = styled(Grid)`\n min-height: 100vh;\n width: 100vw;\n background-color: #6c50a4;\n flex-direction: column;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ForgotPasswordButton = styled(Typography).attrs({\n children: 'redefinir a senha',\n})`\n cursor: pointer;\n width: fit-content;\n\n font-weight: bold !important;\n\n :hover {\n color: #6c50a4;\n }\n`;\n\nexport const ForgotEmailButton = styled.button`\n cursor: pointer;\n font-weight: bold !important;\n border: none;\n background: none;\n\n color: #000000e3;\n\n :hover {\n color: #6c50a4;\n }\n`;\n\nexport const FormContainer = styled(Paper)`\n width: 390px;\n padding: 48px;\n`;\n\nexport const InputEmail = styled(MttTextField)``;\n\nexport const InputPassword = styled(TextField)``;\n\nexport const ButtonLoginMicrosoft = styled.button`\n color: #0f0f0f;\n padding: 4px 16px;\n border: 0;\n border-radius: 4px;\n\n display: flex;\n align-items: center;\n text-align: center;\n\n cursor: pointer;\n\n span {\n margin-left: 4px;\n }\n`;\n\nexport const ButtonEnter = styled(MttButton)`\n color: transparent;\n height: 56px;\n`;\n\nexport const FieldContainerMicrosoft = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const FieldContainer = styled(Grid)`\n padding: 8px;\n text-align: center;\n\n .MuiTypography-body1 {\n button {\n font-size: 1rem !important;\n font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;\n line-height: 1.5;\n letter-spacing: 0.00938em;\n }\n }\n`;\n","import * as yup from \"yup\";\nimport { IResultError } from \"./ResultError\";\n\nexport interface IUser {\n email: string;\n password: string;\n\terror?: {\n\t\temail: string;\n\t\tpassword: string;\n\t}\n}\n\nexport const userValidation = async (user: IUser) => {\n const emailResult = await userValidator(user.email, user.error?.email || '*Email obrigatório');\n const passwordResult = await passwordValidator(user.password, user.error?.password || '*Senha obrigatória');\n const isValid = emailResult.isValid && passwordResult.isValid;\n const errors = { ...emailResult.errors, ...passwordResult.errors };\n return { isValid, errors };\n};\n\nexport const emailValidator = async (email: string) => {\n const schema = yup.object().shape({\n email: yup\n .string()\n .required(\"*E-mail obrigatório.\")\n .email(\"*E-mail inválido.\"),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ email }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { email: \"\" } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { email: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n\nexport const userValidator = async (email: string, error: string) => {\n const schema = yup.object().shape({\n email: yup\n .string()\n .required(error)\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ email }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { email: \"\" } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { email: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n\nconst passwordValidator = async (password: string, error: string) => {\n const schema = yup.object().shape({\n password: yup.string().required(error),\n });\n\n const promiseResult = new Promise>((resolve) => {\n schema\n .validate({ password }, { abortEarly: false })\n .then(() => {\n resolve({ isValid: true, errors: { password: \"\" } });\n })\n .catch((err) => {\n resolve({ isValid: false, errors: { password: err.errors[0] } });\n });\n });\n return await promiseResult;\n};\n","import { FormControl, Grid, makeStyles } from '@material-ui/core';\nimport MuiDialogActions from '@material-ui/core/DialogActions';\nimport styled from 'styled-components';\n\nexport const Form = styled(FormControl).attrs({\n className: 'customScroll',\n})``;\n\nexport const ContainerContent = styled(Grid).attrs({})`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n overflow-x: hidden;\n\n .MuiFab-sizeSmall {\n position: absolute;\n margin-left: 20px;\n }\n\n @media (max-width: 600px) {\n .MuiFab-sizeSmall {\n margin-left: 4px;\n }\n }\n`;\n\nexport const MttDialogActions = styled(MuiDialogActions)`\n margin: 8px 0;\n\n &.MuiDialogActions-spacing > :not(:first-child) {\n margin-left: 1em;\n }\n\n .MuiButton-contained:first-child {\n color: #ffffff;\n background: #878787;\n }\n\n .MuiButton-contained {\n padding: 8px 40px;\n }\n`;\n\nexport const ContainerGrid = styled(Grid).attrs({\n item: true,\n xs: 12,\n})`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n\tpadding: 16px;\n\tmargin-top: 16px !important;\n`;\n\nexport const DialogHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const useStyles = makeStyles((theme) => ({\n closeButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n },\n enabledButton: {\n padding: '8px 32px',\n backgroundColor: '#878787',\n color: '#ffffff',\n '&:hover': {\n backgroundColor: '#4e4e4e',\n },\n },\n enabledConfirmButton: {\n backgroundColor: '#6c50a4',\n color: '#ffffff',\n padding: '8px 32px',\n '&:hover': {\n backgroundColor: '#54407d',\n },\n },\n button: {\n backgroundColor: '#0000001f',\n color: '#00000042',\n padding: '8px 32px',\n },\n dialogTitle: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: 0,\n paddingBottom: 0,\n },\n}));\n","export interface IForgotPasswordProps {\n open: boolean;\n onClose: () => void;\n dispatchUser: (token: string) => Promise;\n\tfirstAccess?: boolean;\n\ttemporaryPassword?: string;\n\temail: string;\n}\n\nexport interface IForgotPasswordOpenProps {\n\topen: boolean;\n\tfirstAccess: boolean;\n\ttemporaryPassword?: string;\n\temail: string;\n}\n\nexport interface PasswordErrors {\n\tmin1upperCase: string\n differentPasswords: string\n min6digitVerificationCode: string\n min8digitPassword: string\n min1digitSpecial: string\n}\nexport class RegistrationError {\n email = ''\n recoveryCode = ''\n password = ''\n passwordConfirmation = ''\n\ttemporaryPassword = ''\n}\n\nexport class RegistrationInfo {\n\temail = ''\n\trecoveryCode = ''\n\tpassword = ''\n\tpasswordConfirmation = ''\n\terror = new RegistrationError()\n\ttemporaryPassword = ''\n\n\tconstructor(email: string, temporaryPassword?: string){\n\t\tthis.email = email\n\t\tthis.temporaryPassword = temporaryPassword || ''\n\t}\n\n}\n","export const verifyClassEmpty = (entity: T | undefined) => {\n if (!entity) return false\n const errors = loopObject(entity)\n return errors > 0\n}\n\nconst loopObject = (entity:T) => {\n let error = 0\n Object.values(entity).forEach(item => {\n if (typeof item === 'string' && item !== '') {\n error++\n } else if (typeof item === 'object') {\n error += loopObject(item)\n }\n })\n return error\n}\n","import { ObjectSchema, setLocale } from 'yup'\nimport { Assign, ObjectShape } from 'yup/lib/object'\n\n\nconst LOCALE_YUP = {\n mixed: {\n required: 'Campo obrigatório',\n default: 'Campo não é válido'\n },\n // string: {\n // min: 'Mínimo de ${min} caracteres',\n // max: 'Máximo de ${max} caracteres'\n // },\n number: {\n moreThan: 'Campo deve ter um valor selecionado'\n }\n}\n\nsetLocale(LOCALE_YUP)\n\ninterface ICatchValidate {\n path: string\n message: string\n}\n\nexport const genericValidation = async (schema: ObjectSchema>, object:T, ErrorClass: any):Promise => {\n const validate: boolean | ICatchValidate[] = await schema.validate(object, { abortEarly: false })\n .then((e) => true)\n .catch((err) => err.inner)\n\n if (typeof validate !== 'boolean') validate.forEach((item) => { ErrorClass[item.path] = item.message })\n\n return ErrorClass\n}\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst VariablesIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default VariablesIcon;\n","import React, { useState } from 'react';\n\nimport {\n CircularProgress,\n Dialog,\n DialogTitle,\n Fab,\n Grid,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n Typography,\n} from '@material-ui/core';\n\nimport { IModifyPassword } from 'services/AuthService/types';\n\nimport * as authService from 'services/AuthService';\n\nimport * as S from './styles';\nimport {\n IForgotPasswordProps,\n PasswordErrors,\n RegistrationError,\n RegistrationInfo,\n} from './types';\nimport { resetPasswordValidation } from './validations';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nimport MttButton from 'components/Material/MttButton/MttButton';\n\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport VisibilityOffIcon from '@material-ui/icons/VisibilityOff';\nimport SyncIcon from '@material-ui/icons/Sync';\nimport CloseIcon from '@material-ui/icons/Close';\nimport PersonSearchIcon from 'components/Icons/PersonSearchIcon';\n\nimport useTranslator from 'utils/hooks/Translator';\n\nconst ModalResetPassword: React.FC = (\n props: IForgotPasswordProps\n) => {\n const { getTranslation } = useTranslator();\n const { open, firstAccess, temporaryPassword, email, onClose, dispatchUser } =\n props;\n const { toastNotification } = useFlow();\n const [loading, setLoading] = useState(false);\n const [newPasswordMode, setNewPasswordMode] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const classes = S.useStyles();\n const [registration, setRegistration] = useState(\n new RegistrationInfo(email, temporaryPassword)\n );\n\n const passwordErrors: PasswordErrors = {\n differentPasswords: getTranslation(\n 'validations.resetPassword.differentPasswords'\n ),\n min6digitVerificationCode: getTranslation(\n 'validations.resetPassword.min6digitVerificationCode'\n ),\n min8digitPassword: getTranslation(\n 'validations.resetPassword.min8digitPassword'\n ),\n min1digitSpecial: getTranslation(\n 'validations.resetPassword.min1digitSpecial'\n ),\n min1upperCase: getTranslation('validations.resetPassword.min1upperCase'),\n };\n\n const handleClose = () => {\n setNewPasswordMode(false);\n setRegistration(new RegistrationInfo(email));\n onClose();\n };\n\n const handleReturn = () => {\n setRegistration({\n email: registration.email,\n password: '',\n passwordConfirmation: '',\n recoveryCode: '',\n error: new RegistrationError(),\n temporaryPassword: '',\n });\n handleClose();\n };\n\n const handleSendVerifyCode = async () => {\n setLoading(true);\n try {\n let countError = 0;\n\n // const validation = await emailValidation(registration.email);\n\n // if (typeof validation !== 'boolean') {\n // countError++;\n // }\n\n if (countError > 0) {\n setLoading(false);\n setRegistration({\n ...registration,\n // error: validation as RegistrationError,\n });\n return;\n } else\n setRegistration({ ...registration, error: new RegistrationError() });\n\n const response = await authService.SendVerifyCode(registration.email);\n if (\n response.details ===\n 'Email com código de verificação enviado para o email informado'\n ) {\n toastNotification(\n 'success',\n response.Message ||\n getTranslation('toast.success.verificationCodeSent')\n );\n\n setNewPasswordMode(true);\n } else {\n const errors = { ...registration.error };\n if (response.Errors) {\n response.Errors.forEach((error: any) => {\n if (error.Property === 'Email') {\n errors.email = error.Message[0];\n }\n });\n }\n setRegistration({ ...registration, error: errors });\n toastNotification(\n 'error',\n response.detail.message ||\n getTranslation('toast.error.verificationCodeError')\n );\n }\n } catch (e: any) {\n toastNotification(\n 'error',\n e.detail.message || getTranslation('toast.error.verificationCodeError')\n );\n }\n setLoading(false);\n };\n\n const handleConfirmResetPassword = async () => {\n setLoading(true);\n try {\n let countError = 0;\n\n const validation = await resetPasswordValidation(\n registration,\n passwordErrors,\n firstAccess\n );\n\n if (typeof validation !== 'boolean') {\n countError++;\n }\n\n if (countError > 0) {\n setLoading(false);\n setRegistration({\n ...registration,\n error: validation as RegistrationError,\n });\n return;\n } else\n setRegistration({ ...registration, error: new RegistrationError() });\n\n const req: IModifyPassword = {\n user: registration.email,\n new_password: registration.password,\n temporary_password_or_code: firstAccess\n ? temporaryPassword\n : registration.recoveryCode,\n };\n\n const response = await authService.ModifyPassword(req);\n if (response && response.details === 'Senha alterado com sucesso') {\n toastNotification(\n 'success',\n response.Message || getTranslation('toast.success.newPasswordSet'),\n 3000\n );\n\n handleClose();\n\n const responseLogin = await authService.CognitoLogin({\n user: registration.email,\n password: registration.password,\n });\n if (!!responseLogin.token && !!responseLogin.refresh_token) {\n localStorage.setItem('token', responseLogin.token);\n localStorage.setItem('refresh_token', responseLogin.refresh_token);\n dispatchUser(responseLogin.token).finally();\n } else {\n throw new Error(responseLogin.detail.message ?? '');\n }\n } else {\n const errors = { ...registration.error };\n if (response.Errors.length > 0) {\n response.Errors.forEach((error: any) => {\n if (error.Property === 'Email') {\n errors.email = error.Message[0];\n }\n if (error.Property === 'CodigoVerificacao') {\n errors.recoveryCode = error.Message[0];\n }\n if (error.Property === 'Password') {\n errors.password = error.Message[0];\n }\n if (error.Property === 'ConfirmacaoNovaSenha') {\n errors.password = error.Message[0];\n }\n });\n setRegistration({ ...registration, error: errors });\n } else {\n toastNotification(\n 'error',\n response.Message || getTranslation('toast.error.resetPasswordError')\n );\n }\n }\n } catch (e: any) {\n toastNotification(\n 'error',\n e.Message || getTranslation('toast.error.resetPasswordError')\n );\n }\n setLoading(false);\n };\n\n const renderLoading = () => {\n return (\n \n \n \n {getTranslation('recoverPassword.message')}\n \n \n \n );\n };\n\n const passwordInputProps = {\n endAdornment: (\n \n setShowPassword(!showPassword)}\n onMouseDown={(e: React.MouseEvent) =>\n e.preventDefault()\n }\n edge=\"end\"\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n ),\n };\n\n const onEnterDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n if (newPasswordMode) handleConfirmResetPassword();\n else handleSendVerifyCode();\n }\n };\n\n const renderNewPassword = () => {\n return (\n \n \n \n {firstAccess ? (\n <>{getTranslation('recoverPassword.subtitleFirstAccess')}\n ) : (\n <>{getTranslation('recoverPassword.subtitle')}\n )}\n \n \n {!firstAccess && (\n <>\n \n setRegistration({\n ...registration,\n recoveryCode: e.target.value,\n })\n }\n error={!!registration.error.recoveryCode}\n helperText={registration.error.recoveryCode}\n />\n \n \n \n \n \n \n )}\n \n \n \n setRegistration({ ...registration, password: e.target.value })\n }\n type={showPassword ? 'text' : 'password'}\n error={!!registration.error.password}\n helperText={registration.error.password}\n InputProps={{ ...passwordInputProps }}\n fullWidth\n />\n \n \n \n setRegistration({\n ...registration,\n passwordConfirmation: e.target.value,\n })\n }\n error={!!registration.error.passwordConfirmation}\n helperText={registration.error.passwordConfirmation}\n type={showPassword ? 'text' : 'password'}\n InputProps={{ ...passwordInputProps }}\n fullWidth\n />\n \n \n \n \n {getTranslation('back')}\n \n \n {getTranslation('save')}\n \n \n \n );\n };\n\n const renderEmail = () => {\n return (\n \n \n \n {getTranslation('recoverPassword.subtitle')}\n \n \n \n setRegistration({ ...registration, email: e.target.value })\n }\n error={!!registration.error.email}\n helperText={registration.error.email}\n />\n \n \n \n \n {getTranslation('cancel')}\n \n \n {getTranslation('confirm')}\n \n \n \n );\n };\n\n const renderBody = () => {\n if (newPasswordMode || firstAccess) return renderNewPassword();\n else return renderEmail();\n };\n\n const modalProps = {\n onClose: handleClose,\n open: open,\n noButtons: true,\n };\n\n return (\n \n \n \n {getTranslation('recoverPassword.title')}\n \n \n \n \n \n {loading ? renderLoading() : renderBody()}\n \n );\n};\n\nexport default ModalResetPassword;\n","import * as yup from 'yup'\n\nimport { verifyClassEmpty } from 'utils/classEmpty'\nimport { genericValidation } from 'utils/validationGenerics'\n\nimport { RegistrationInfo, RegistrationError, PasswordErrors } from './types'\n\nexport const resetPasswordValidation = async (object: RegistrationInfo, errors: PasswordErrors, firstAccess?: boolean): Promise => {\n const schemaRegister = firstAccess ? yup.object().shape({\n temporaryPassword: yup.string().required(),\n password: yup.string().min(8, errors.min8digitPassword).required().test('isValidTest', errors.min1upperCase,\n\t\t\t(value: any) => {\n\t\t\t\tconst hasUpperCase = /[A-Z]/.test(value)\n\t\t\t\treturn hasUpperCase;\n\t\t\t}\n\t\t),\n passwordConfirmation: yup.string().oneOf([yup.ref('password'), null], errors.differentPasswords).required()\n }) : yup.object().shape({\n recoveryCode: yup.string().min(6, errors.min6digitVerificationCode).required(),\n password: yup.string().min(8, errors.min8digitPassword).required(),\n passwordConfirmation: yup.string().oneOf([yup.ref('password'), null], errors.differentPasswords).required()\n })\n\n const mountError = await genericValidation(schemaRegister, object, new RegistrationError())\n const regExp = /[^0-9A-Za-z ]/\n\n if (!regExp.test(object.password) && mountError.password === '') {\n mountError.password = errors.min1digitSpecial\n }\n\n if (!verifyClassEmpty(mountError)) return true\n return mountError\n}\n\nexport const emailValidation = async (email: string): Promise => {\n const schemaRegister = yup.object().shape({\n email: yup.string().required().email()\n })\n\n const mountError = await genericValidation(schemaRegister, { email }, new RegistrationError())\n\n if (!verifyClassEmpty(mountError)) return true\n return mountError\n}\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst BrazilFlagIcon: React.FC = (props) => {\n const { size } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default BrazilFlagIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst USFlagIcon: React.FC = (props) => {\n const { size } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default USFlagIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst SpainFlagIcon: React.FC = (props) => {\n const { size } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default SpainFlagIcon;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n margin-top: 20px;\n\n .MuiSelect-select.MuiSelect-select {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n\n width: 100px;\n\n background-color: #f2f2f2;\n }\n`;\n","import { FormControl, MenuItem, Select, Typography } from '@material-ui/core';\n\nimport BrazilFlagIcon from 'components/Icons/BrazilFlagIcon';\nimport USFlagIcon from 'components/Icons/USFlagIcon';\nimport SpainFlagIcon from 'components/Icons/SpainFlagIcon';\nimport * as S from './styles';\nimport i18next from 'i18next';\nimport { useState } from 'react';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function ChooseLanguage() {\n const [language, setLanguage] = useState(i18next.language === 'pt-PT' ? 'pt-BR' : i18next.language);\n const { getTranslation } = useTranslator();\n\n const languages = [\n {\n id: 'en-US',\n name: getTranslation('english'),\n icon: ,\n },\n {\n id: 'es',\n name: getTranslation('spanish'),\n icon: ,\n },\n {\n id: 'pt-BR',\n name: getTranslation('portuguese'),\n icon: ,\n },\n ];\n\n const handleChangeLanguage = (\n event: React.ChangeEvent<{ value: unknown }>\n ) => {\n setLanguage(event.target.value as string);\n i18next.changeLanguage(event.target.value as string);\n };\n\n return (\n \n \n handleChangeLanguage(e)}\n variant=\"outlined\"\n >\n {languages.map((language, index) => (\n \n {language.icon}\n \n {language.name}\n \n \n ))}\n \n \n \n );\n}\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst MicrosoftIcon: React.FC = (props) => {\n const { size } = props;\n\n return (\n \n \n \n \n \n \n );\n};\n\nexport default MicrosoftIcon;\n","import React, { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport IconLLego from 'components/Icons/LLego';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport * as S from './styles';\n\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { IUser, userValidation } from 'models/LoginModel';\n\nimport { CognitoLogin } from 'services/AuthService';\nimport { IconButton, InputAdornment, Typography } from '@material-ui/core';\nimport { Visibility, VisibilityOff } from '@material-ui/icons';\nimport { PublicClientApplication } from '@azure/msal-browser';\n\nimport ModalResetPassword from './ModalResetPassword';\n\nimport ChooseLanguage from 'components/ChooseLanguage';\nimport useTranslator from 'utils/hooks/Translator';\nimport { IForgotPasswordOpenProps } from './ModalResetPassword/types';\n\nimport MicrosoftIcon from 'components/Icons/MicrosoftIcon';\nimport jwtDecode from 'jwt-decode';\nimport { IPermissionCompany } from 'contexts/Permissions/types';\n\nconst APP_ID = process.env.REACT_APP_AVENUE_AD_CLIENT_ID as string;\nconst TENANT_ID = process.env.REACT_APP_AVENUE_AD_TENANT_ID;\n\nconst config = {\n appId: APP_ID,\n redirectUri: '',\n scopes: ['user.read'],\n authority: `https://login.microsoftonline.com/${TENANT_ID}`,\n};\n\nconst Login: React.FC = () => {\n const { dispatch } = useApp();\n const { toastNotification, generatePermissions } = useFlow();\n const history = useHistory();\n const { getTranslation } = useTranslator();\n\n const publicClientApplication = new PublicClientApplication({\n auth: {\n clientId: config.appId,\n redirectUri: config.redirectUri,\n authority: config.authority,\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: false,\n },\n });\n\n const [user, setUser] = useState({\n email: '',\n password: '',\n error: {\n email: getTranslation('validations.required', {\n field: getTranslation('emailUpper'),\n }),\n password: getTranslation('validations.required', {\n field: getTranslation('passwordUpper'),\n }),\n },\n });\n const [errors, setErrors] = useState>({\n email: '',\n password: '',\n });\n const [load, setLoad] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [openResetPassword, setOpenResetPassword] =\n useState({\n open: false,\n firstAccess: false,\n email: '',\n });\n\n const passwordInputProps = {\n endAdornment: (\n \n setShowPassword(!showPassword)}\n onMouseDown={(e: React.MouseEvent) =>\n e.preventDefault()\n }\n edge=\"end\"\n >\n {showPassword ? : }\n \n \n ),\n };\n\n const handleAdLogin = async () => {\n try {\n const response = await publicClientApplication.loginPopup({\n scopes: config.scopes,\n prompt: 'select_account',\n });\n\n const token = response.accessToken;\n\n if (!!token) {\n const responseCognitoLogin = await CognitoLogin({ token });\n if (\n !!responseCognitoLogin.token &&\n !!responseCognitoLogin.refresh_token\n ) {\n localStorage.setItem('token', responseCognitoLogin.token);\n localStorage.setItem(\n 'refresh_token',\n responseCognitoLogin.refresh_token\n );\n dispatchUser(responseCognitoLogin.token).finally();\n } else {\n throw new Error(responseCognitoLogin.detail.message ?? '');\n }\n }\n } catch (e) {\n console.log('erro', e);\n }\n };\n\n const handleChangeInput =\n (key: keyof IUser) => (e: React.ChangeEvent) => {\n setUser((oldState) => ({ ...oldState, [key]: e.target.value }));\n setErrors((oldState) => ({ ...oldState, [key]: '' }));\n };\n\n const handleForgotPassword = () => {\n setOpenResetPassword({ open: true, firstAccess: false, email: user.email });\n };\n\n const handleSubmit = async (\n e:\n | React.FormEvent\n | React.MouseEvent\n ) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (load) return;\n\n const resultUserValidate = await userValidation(user);\n setErrors(resultUserValidate.errors);\n\n if (!resultUserValidate.isValid) {\n toastNotification(\n 'error',\n getTranslation('toast.error.userOrPasswordIncorrect')\n );\n return;\n }\n\n try {\n setLoad(true);\n const { email, password } = user;\n\n const response = await CognitoLogin({ user: email, password });\n if (!!response.token && !!response.refresh_token) {\n localStorage.setItem('token', response.token);\n localStorage.setItem('refresh_token', response.refresh_token);\n dispatchUser(response.token);\n } else if (\n response.detail.error === 'Change password before authenticating'\n ) {\n setOpenResetPassword({\n open: true,\n firstAccess: true,\n temporaryPassword: user.password,\n email: user.email,\n });\n } else {\n throw new Error(response.detail.message ?? '');\n }\n\n setUser({ email: '', password: '' });\n } catch (error: any) {\n toastNotification(\n 'error',\n error.message || getTranslation('toast.error.userOrPasswordInvalid')\n );\n } finally {\n setLoad(false);\n }\n };\n\n async function dispatchUser(token: string) {\n const decodedToken: { isRoot: boolean; companies: IPermissionCompany[] } =\n jwtDecode(token);\n await generatePermissions(decodedToken);\n dispatch({ type: 'updateApp', data: { signed: true } });\n history.push('/');\n }\n\n return (\n \n
    \n \n
    \n \n
    handleSubmit(e)}>\n \n \n \n \n \n \n \n handleSubmit(e)}\n type=\"submit\"\n >\n {getTranslation('enter')}\n {load && (\n \n )}\n \n \n \n \n \n {getTranslation('signInWith')} Microsoft\n \n \n \n \n {getTranslation('login.phrase')}\n

    \n \n {getTranslation('login.resetPassword')}\n \n
    \n
    \n
    \n
    \n\n {openResetPassword.open && (\n \n setOpenResetPassword({ open: false, firstAccess: false, email: '' })\n }\n dispatchUser={(token) => dispatchUser(token)}\n />\n )}\n \n
    \n );\n};\n\nexport default Login;\n","import React, { useEffect, useCallback } from 'react';\nimport { Route, RouteComponentProps, useHistory } from 'react-router-dom';\nimport { useApp } from 'contexts/App/appContext';\n\ninterface IPrivateRouteProps {\n Component: React.FC;\n path: string;\n exact: boolean;\n}\n\nconst PrivateRoute: React.FC = (props: IPrivateRouteProps) => {\n const { Component, path, exact } = props;\n const { state } = useApp();\n const { replace } = useHistory();\n\n const goToOrRedirect = useCallback(\n (pathRequest: string) => {\n let pathResult = path;\n\n if (state.signed) {\n if (path === '/login') pathResult = '/';\n else pathResult = path;\n } else {\n pathResult = '/login'\n }\n\n return pathResult;\n },\n [path, state.signed],\n );\n\n useEffect(() => {\n let pathResult = goToOrRedirect(path);\n \n replace(pathResult)\n }, [path, replace,\n goToOrRedirect]);\n\n return (\n }\n />\n );\n};\n\nexport default PrivateRoute;\n","import React from 'react';\nimport { Switch } from 'react-router-dom';\nimport Entities from '../pages/Entities';\nimport Flow from '../pages/Flow';\nimport Login from '../pages/Login';\nimport PrivateRoute from './PrivateRoute';\n\nconst Routes: React.FC = () => (\n \n \n \n \n \n);\n\nexport default Routes;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst LogoutIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default LogoutIcon;\n","export default \"data:image/png;base64,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EmL44WkXxdN2rca2dURJiN2Tpz/g2z7W8LxqBkxN6jW9ZaKymiMej53St9VdLs7hLy0HGm7y9IyNsC51OzFCWgNLGndxbNnBo3rxsyxwZkAymW7b1yWCTfzjp51l/2owrCa38x+zo/7uDXavT0/l/+179ls/Kqro6xw7xQkp6xzZ4/zp+dncAmGV1cDvLgOdp3Infia8PlZI1DUy3/rLbYY85ue29t1k9rpdLoqb9g56t3va1laBsQqcGTAzY82QU7SxAumd35mD2HGCLWOPn+brTnqfpXMQ0WmruXyTunZsS8kf4DPsbuV0yKbdlk7buL/pzIC52XSto9PfXNz5p9U1obnC5eL9y8o5ubavh2Jp6BWzZrMzS32UtbyMJ/OAu92MBlfV0Cpr208Hr7Bo6ciFDUJ2BkhJ4qvmSCzu/E0gfibsqusjx1m/Ex5jMnxkiF8TYVps9piZbG/eBpba/y6rnyFUCpRX0aOub6KSLQ5aZuXmibzsDLBLx53mSFRW0/noPLm5xF9CPIM6oraBXwsJy1KbomiaCDM4OD2VbgBZfF8YGCvy+Uj0YAlQWgGEQiwcCIbS4YstggMD4vRMs0UCF3f+yc0LC+vAY5Um2kW7qSRz1okEg2nJ5NJTYBjW2/jc9D/sttI8ITsDksm0+bcc6zE1NxsuN78cYvDbCdlZbwirQiLzhzItdo6t09R8DwBODAgUspKhJJQ+BdV1wEef5l/svEVwjobORDli7NkT6oFDnTQFt0rhvgNQv0fMfiMpQBv5/cCODcXGv1P+PXLC++2cZ7xnQJ7xngF5xnsG5Bn/D0LnNiPFejo8AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTA0LTI1VDIxOjEzOjQ3KzAwOjAwxLMUowAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wNC0yNVQyMToxMzo0NyswMDowMLXurB8AAABGdEVYdHNvZnR3YXJlAEltYWdlTWFnaWNrIDYuNy44LTkgMjAxNC0wNS0xMiBRMTYgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmfchu0AAAAAGHRFWHRUaHVtYjo6RG9jdW1lbnQ6OlBhZ2VzADGn/7svAAAAGHRFWHRUaHVtYjo6SW1hZ2U6OmhlaWdodAAxOTIPAHKFAAAAF3RFWHRUaHVtYjo6SW1hZ2U6OldpZHRoADE5MtOsIQgAAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9wbmc/slZOAAAAF3RFWHRUaHVtYjo6TVRpbWUAMTU1NjIyNjgyN6CQc9YAAAAPdEVYdFRodW1iOjpTaXplADBCQpSiPuwAAABWdEVYdFRodW1iOjpVUkkAZmlsZTovLy9tbnRsb2cvZmF2aWNvbnMvMjAxOS0wNC0yNS9lMzRiZDQ3NGE0MDA2Y2NmNTFhZGY5ZTJmMTlmMDBjZS5pY28ucG5n1mIDSAAAAABJRU5ErkJggg==\"","import styled from 'styled-components';\n\nexport const ListContainer = styled.div`\n display: flex;\n flex-direction: column;\n\t\n .MuiIconButton-root {\n\t\tjustify-content: flex-start;\n display: flex;\n align-items: center;\n\t\t:hover {\n\t\t\tbackground-color: #fff;\n\t\t}\n }\n\n .MuiTypography-subtitle1, p {\n margin-left: 12px;\n }\n`;\n","import React from 'react';\nimport { IconButton, Menu, Typography } from '@material-ui/core';\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nimport TwitterIcon from '@material-ui/icons/Twitter';\nimport WhatsAppIcon from '@material-ui/icons/WhatsApp';\nimport TelegramIcon from '@material-ui/icons/Telegram';\nimport FacebookIcon from '@material-ui/icons/Facebook';\nimport PhoneIcon from '@material-ui/icons/Phone';\nimport FintalkIcon from '../../Icons/fintalk.png';\n\nimport { ListContainer } from './styles';\nimport useTranslator from 'utils/hooks/Translator';\n\ninterface FlowsUrlsProps {\n handleCloseUrlsTests: () => void;\n openFlowTest: boolean;\n anchorElFlow: any;\n openFalazap: () => void;\n}\n\nexport default function FlowsUrls(props: FlowsUrlsProps) {\n const { state, toastNotification } = useFlow();\n const [falazapIframeElement, setFalazapIframeElement] =\n React.useState(null);\n const { anchorElFlow, openFlowTest, handleCloseUrlsTests, openFalazap } =\n props;\n const { getTranslation } = useTranslator();\n\n const handleOpenLink = (url?: string) => {\n if (url) {\n try {\n const validUrl = new URL(url);\n window.open(validUrl, '_blank');\n } catch (_) {\n toastNotification('error', getTranslation('toast.error.invalidUrl'));\n return false;\n }\n }\n };\n\n const botsUrls =\n state.botsUrls.urlFalazap ||\n state.botsUrls.urlFacebook ||\n state.botsUrls.urlTwitter ||\n state.botsUrls.urlTelegram ||\n state.botsUrls.urlWhatsApp;\n\n if (!botsUrls) return <>;\n\n return (\n \n \n {\n if (!falazapIframeElement) {\n const iframe = document.getElementById('falazap-iframe');\n if (iframe) {\n iframe.setAttribute('src', state.botsUrls.urlFalazap + '');\n setFalazapIframeElement(iframe);\n }\n } else\n falazapIframeElement.setAttribute(\n 'src',\n state.botsUrls.urlFalazap + ''\n );\n\n handleCloseUrlsTests();\n openFalazap();\n }}\n >\n \"falazapIcon\"\n FalaZap\n \n\n handleOpenLink(state.botsUrls.urlTelegram)}\n >\n \n Telegram\n \n\n handleOpenLink(state.botsUrls.urlWhatsApp)}\n >\n \n WhatsApp\n \n handleOpenLink(state.botsUrls.urlTwitter)}\n >\n \n Twitter\n \n handleOpenLink(state.botsUrls.urlFacebook)}\n >\n \n Messenger\n \n handleOpenLink(state.botsUrls.urlFacebook)}\n >\n \n URA\n \n \n \n );\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n position: fixed;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n\n min-width: 360px;\n\n max-height: 650px;\n\n height: 100%;\n\n border-radius: 22px;\n\n background: #585858;\n background: linear-gradient(#646464, #585858, #2b2929, #201e1e);\n\n box-shadow: 0 5px 10px #646464;\n\n padding: 8px;\n\n\tz-index: 999;\n\n .MuiIconButton-root {\n position: absolute;\n right: 5px;\n }\n`;\n\nexport const ContainerHeader = styled.header`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n\n height: 60px;\n cursor: grab;\n\n`;\n\nexport const AudioOutputs = styled.div`\n width: 100px;\n background: #393939;\n height: 8px;\n border-radius: 5px;\n`;\n\nexport const IFrame = styled.iframe`\n width: 100%;\n height: 100%;\n\n border: 0;\n border-radius: 3px;\n`;\n","import React, { useRef, useState } from 'react';\n\nimport * as S from './styles';\nimport { IconButton } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Draggable, { DraggableData } from 'react-draggable';\n\ntype Props = {\n url: string;\n closeFalazap: () => void;\n};\n\nconst FalazapIframe: React.FC = ({ url, closeFalazap }) => {\n const nodeRef = useRef(null);\n const [position, setPosition] = useState(\n JSON.parse(\n localStorage.getItem('falazapPosition') ||\n JSON.stringify({\n x: window.screen.width / 1.1 - 360 / 2,\n y: window.screen.height / 2 - 650 / 2,\n })\n )\n );\n\n function handleStopDrag(data: DraggableData) {\n localStorage.setItem(\n 'falazapPosition',\n JSON.stringify({\n x: data.lastX,\n y: data.lastY,\n })\n );\n setPosition({\n x: data.lastX,\n y: data.lastY,\n });\n }\n\n return (\n handleStopDrag(data)}\n defaultPosition={position}\n nodeRef={nodeRef}\n\t\t\tbounds={'body'}\n >\n \n \n \n \n closeFalazap()}>\n \n \n \n \n \n \n \n \n );\n};\n\nexport default FalazapIframe;\n","export default __webpack_public_path__ + \"static/media/llego-animated.3debd6c3.gif\";","import { Grid, Typography } from '@material-ui/core';\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\nimport styled from 'styled-components';\nimport MttGrid from '../Material/MttGrid/MttGrid';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorheader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n .MuiAppBar-colorPrimary {\n background-color: ${(props) =>\n props.colorheader ? `#${props.colorheader}` : '#6c50a4'};\n position: absolute;\n }\n`;\n\nexport const ContainerImage = styled(Grid)`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #e9e9e9;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h5',\n})`\n color: #656565;\n`;\n\nexport const ModalFooter = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n`;\n\nexport const ContainerFooter = styled.div`\n align-items: center;\n justify-content: center;\n margin: 0 24px 16px 24px;\n\n .MuiTypography-body1 {\n color: #808080;\n }\n`;\n\nexport const ContainerMessage = styled.div`\n align-items: center;\n justify-content: center;\n margin-bottom: 4px;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ModalMessage = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n align-items: center;\n justify-content: center;\n`;\n\nexport const Container = styled.div`\n .MuiDialog-container {\n .MuiDialog-paper: {\n box-shadow: 10px 5px 5px black;\n }\n }\n`;\n\nexport const useStyles = makeStyles(() =>\n createStyles({\n grid: {\n alignItems: 'center',\n backgroundColor: '#e9e9e9',\n padding: '24px 24px 0px 24px',\n minWidth: '400px',\n },\n img: {\n maxWidth: 300,\n maxHeight: 350,\n borderRadius: '50%',\n height: 275,\n width: 300,\n },\n })\n);\n","import styled from 'styled-components'\nimport { makeStyles, createStyles } from '@material-ui/core/styles';\n\nexport const Container = styled.div`\n.MuiLinearProgress-barColorPrimary {\n\tbackground-color: #9537ff;\n}\n`;\n\nexport const useStyles = makeStyles(() =>\n createStyles({\n firstBox: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n paddingBottom: '16px',\n backgroundColor: '#e9e9e9',\n },\n secondBox: {\n width: '85%',\n padding: '16px',\n },\n progressBar: {\n color: '#9537ff',\n backgroundColor: '#c7b2f0',\n height: '12px',\n borderRadius: '6px',\n },\n progressValue: {\n color: '#656565',\n fontSize: '1.3rem',\n },\n })\n);\n","import { Key } from 'readline';\nimport { IAppContextActions } from '../contexts/App/types';\nimport { GetKeys } from '../services/AccessKeysService';\nimport { GetFlows } from '../services/BotService';\nimport { IFlowResult } from '../services/BotService/types';\nimport { GetEntities } from '../services/EntityService';\n\nexport interface IExportGroup {\n groupName: string;\n blocks: any;\n}\n\nexport default async function createBotObject(botName: string, dispatch: React.Dispatch) {\n if (!botName) return;\n const botFlowsResponse = await GetFlows({ bot_name: botName }, dispatch);\n const entitiesResponse = await GetEntities({ bot_name: botName }, dispatch);\n const accessKeysResponse = await GetKeys(botName, dispatch);\n if (\n botFlowsResponse.Success &&\n entitiesResponse.Success &&\n accessKeysResponse.Success\n ) {\n let groups: IFlowResult[] = [];\n let accessKeys: Key[] = [];\n groups = botFlowsResponse.Data.data.groups;\n\n const organizedGroups: IExportGroup[] = [];\n\n groups.map((group) => {\n organizedGroups.push({\n groupName: group.group_name,\n blocks: group.blocks,\n });\n return organizedGroups;\n });\n\n if (accessKeysResponse.Data.data)\n accessKeys = accessKeysResponse.Data.data.keys;\n\n const entities = entitiesResponse.Data;\n\n let botToStringify = {\n botName,\n entities,\n accessKeys,\n groups: organizedGroups,\n };\n\n return botToStringify;\n }\n}\n","import EIntentType from 'enums/EIntentType';\nimport { DataFlow, ItemDataFlow, MessageType } from 'models/DataFlow';\nimport { IEntity } from 'models/Entity';\nimport { IFlow, IFlowResult } from 'services/BotService/types';\n\nlet lastBlockId = 0;\n\nconst payloadURL = process.env.REACT_APP_S3_URL || '';\nconst payloadApiKey = process.env.REACT_APP_S3_API_KEY || '';\n\nconst similarityAccuracyLimit = 0.3;\nconst similarityAPI =\n 'https://api-hub.fintalk.io/nlu/similarity?apikey=b1fcea2c-d3a6-11eb-b8bc-0242ac130003';\n\nconst compileFlow = (\n flows: any[],\n entitiesResult: IEntity[],\n principalFlow: IFlowResult\n) => {\n const flexGroups: any[] = flows.filter((flow) =>\n flow.groupName.startsWith('flex')\n );\n flows.map((item) => preCompile(item, entitiesResult, flexGroups));\n};\n\nconst preCompile = (data: IFlow, entities: IEntity[], flexGroups: any[]) => {\n const blocks = data.drawflow.drawflow.Home.data;\n const blockCopy = blocks;\n const botName = data.bot;\n const blocksKeys = Object.keys(blocks);\n lastBlockId = Number(blocksKeys[blocksKeys.length - 1]);\n\n Object.keys(blockCopy).forEach(function (block) {\n const blockObj = blocks[Number(block)];\n const blockData = blockObj.data;\n let outputBlock = 0;\n if (blockData) {\n if (\n [\n EIntentType.SendDocument,\n EIntentType.Carousel,\n EIntentType.SendMessage,\n EIntentType.OptionsBlock,\n EIntentType.SimpleQuestion,\n EIntentType.OpenHTML,\n EIntentType.ABTest,\n EIntentType.NLU,\n EIntentType.FalaGPT,\n EIntentType.FlexBlockExit,\n EIntentType.FlexBlock,\n ].includes(blockData.intentType)\n ) {\n if (blockObj.outputs) {\n const block_output = blockObj.outputs;\n if (block_output.output_1) {\n if (\n block_output.output_1.connections &&\n block_output.output_1.connections[0] &&\n block_output.output_1.connections[0].node\n ) {\n outputBlock = block_output.output_1.connections[0].node;\n }\n }\n }\n blockChanger(\n botName,\n blocks,\n blockObj,\n outputBlock,\n lastBlockId,\n entities,\n flexGroups\n );\n }\n }\n });\n};\n\nconst blockChanger = (\n botName: string,\n blocks: DataFlow,\n block: ItemDataFlow,\n to_block: number,\n lastBlock: number,\n entities: IEntity[],\n flexGroups: any[]\n) => {\n switch (Number(block.data.intentType)) {\n case EIntentType.SimpleQuestion:\n const simpleQuestionFallbackBlock = {} as ItemDataFlow;\n\n if (block.data && block.data.outputs) {\n simpleQuestionFallbackBlock.name =\n block.data.outputs[block.data?.outputs.length - 1].nameIntent ||\n block.data.name;\n\n simpleQuestionFallbackBlock.id =\n Number(block.data.outputs[block.data?.outputs.length - 1].outputid) ||\n 0;\n }\n\n const inputBlock = {\n id: lastBlock + 1,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n inputs: { variables: [{ questions: [''] }] },\n intentType: 3,\n groupId: block.data.groupId,\n name: `${block.data.name}-input`,\n },\n } as ItemDataFlow;\n lastBlockId = lastBlock + 1;\n blocks[lastBlockId] = inputBlock;\n\n const logicBlock = {\n id: lastBlock + 2,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n intentType: 120,\n groupId: block.data.groupId,\n name: `${block.data.name}-logica`,\n },\n } as ItemDataFlow;\n lastBlockId = lastBlock + 2;\n blocks[lastBlockId] = logicBlock;\n\n if (\n block.data.dataBlockly &&\n block.data.inputs &&\n block.data.inputs.variables[0]\n ) {\n block.data.dataBlockly.payload = ``;\n block.data.dataBlockly.compiledPayload = `event('${block.data.groupId}_${inputBlock.data.name}');\\n`;\n\n const questions = block.data.inputs.variables[0].questions\n .filter((q) => q !== '')\n .map((q) => q.replaceAll('{{', '`${').replaceAll('}}', '}`'));\n\n const fixedVarValue =\n block.data.varValue\n ?.replaceAll('vars.', '')\n .replaceAll('user.', '') || '';\n\n if (inputBlock.data.inputs) {\n inputBlock.data.inputs.variables[0] = {\n name: `${fixedVarValue}`,\n questions,\n required: true,\n vartype: '@sys.any',\n defaultValue: '',\n isList: false,\n value: `$${fixedVarValue}`,\n };\n }\n }\n\n if (logicBlock.data.dataBlockly) {\n const outputBlockId = to_block !== 0 ? to_block : block.id;\n\n logicBlock.data.dataBlockly.compiledPayload = `\t\t\t\t\n\t\t\t\tvar input;\\n\n\t\t\t\tvar resp;\\n\n vars.contagem = vars.contagem || 0;\\n\n\t\t\t\t`;\n\n logicBlock.data.dataBlockly.compiledPayload += getCompiledPayload(\n blocks,\n block,\n inputBlock,\n outputBlockId,\n simpleQuestionFallbackBlock.name\n );\n\n logicBlock.data.dataBlockly.compiledPayload =\n logicBlock.data.dataBlockly.compiledPayload.replaceAll('\\t', '');\n }\n\n inputBlock.data.dataBlockly = {\n lastVersion: 1,\n payload: '',\n xml: '',\n compiledPayload: `event('${block.data.groupId}_${logicBlock.data.name}')`,\n };\n\n blocks[lastBlockId] = logicBlock;\n break;\n\n case EIntentType.SendDocument:\n const fallbackBlock = {} as ItemDataFlow;\n const destinationBlock = blocks[to_block];\n const destinationBlockName = destinationBlock\n ? destinationBlock.data.name\n : '';\n\n const fallBackMessage =\n block.data.sendUser?.messageDidNotUnderstood || '';\n\n if (block.data && block.data.outputs) {\n fallbackBlock.name =\n block.data.outputs[block.data?.outputs.length - 1].nameIntent ||\n block.data.name;\n\n fallbackBlock.id =\n Number(block.data.outputs[block.data?.outputs.length - 1].outputid) ||\n 0;\n }\n\n if (block.data.dataBlockly) {\n const inputBlock = {\n id: lastBlock + 1,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n inputs: { variables: [{ questions: [' '] }] },\n intentType: 3,\n groupId: block.data.groupId,\n name: `${block.data.name}-input`,\n },\n } as ItemDataFlow;\n\n blocks[lastBlock + 1] = inputBlock;\n lastBlockId = lastBlock + 1;\n\n block.data.dataBlockly = {\n lastVersion: 0,\n payload: '',\n xml: '',\n compiledPayload: `event('${inputBlock.data.groupId}_${inputBlock.data.name}');`,\n };\n\n if (inputBlock.data.inputs) {\n if (block.data.varValue) {\n const blockVarValue = block.data.varValue || 'vars.url';\n const fixedVarValue =\n blockVarValue?.replaceAll('vars.', '').replaceAll('user.', '') ||\n '';\n\n inputBlock.data.inputs = {\n variables: [\n {\n name: `${fixedVarValue}`,\n questions: [' '],\n required: true,\n vartype: '@sys.any',\n defaultValue: '',\n isList: false,\n value: `$${fixedVarValue}`,\n },\n ],\n };\n\n if (inputBlock.data.dataBlockly) {\n inputBlock.data.dataBlockly.compiledPayload = `\n\t\t\t\t\t\t\t\tvar pic;\n\t\t\t\t\t\t\t\tvar url;\n\t\t\t\t\t\t\t\tpic = user.input.match(\"https://\");\n\t\t\t\t\t\t\t\tvars.contagem = vars.contagem || 0;\n\t\t\t\t\t\t\t\tif(pic){\n\t\t\t\t\t\t\t\t\turl = (await request('POST', '${payloadURL}', {\n\t\t\t\t\t\t\t\t\t\t\"bot\": '${botName}',\n\t\t\t\t\t\t\t\t\t\t\"userId\": user.id,\n\t\t\t\t\t\t\t\t\t\t\"url\": user.input\n\t\t\t\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t\t\t\t\"X-API-Key\": \"${payloadApiKey}\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t));\n\t\t\t\t\t\t\t\t\tif (url) {\n\t\t\t\t\t\t\t\t\t\tvars.contagem = 0;\n\t\t\t\t\t\t\t\t\t\t${blockVarValue} = url.document;\n\t\t\t\t\t\t\t\t\t\tevent('${block.data.groupId}_${destinationBlockName}');\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvars.contagem = vars.contagem + 1;\n\t\t\t\t\t\t\t\t\t\t${getCountCondition(\n fallBackMessage,\n block.data.groupId,\n fallbackBlock.name || ''\n )}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvars.contagem = vars.contagem + 1;\n\t\t\t\t\t\t\t\t\t${getCountCondition(\n fallBackMessage,\n block.data.groupId,\n fallbackBlock.name || ''\n )}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t`;\n\n inputBlock.data.dataBlockly.compiledPayload =\n inputBlock.data.dataBlockly.compiledPayload.replaceAll(\n '\\t',\n ''\n );\n }\n }\n }\n }\n break;\n\n case EIntentType.OptionsBlock:\n const optionsBlockInput = {\n id: lastBlock + 1,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n intentType: 4,\n outputs: [{ title: '', nameIntent: '' }],\n groupId: block.data.groupId,\n name: `${block.data.name}-input`,\n },\n } as ItemDataFlow;\n\n lastBlockId = lastBlock + 1;\n blocks[lastBlock + 1] = optionsBlockInput;\n\n if (block.data.outputs) {\n const othersOutput = block.data.outputs[block.data.outputs.length - 1];\n\n let switchString = '';\n const synonymArray: any[] = [];\n block.data.outputs?.forEach((output) => {\n return synonymArray.push(\n output.userSentences?.filter((s) => s !== '')\n );\n });\n\n synonymArray.forEach((sArr) => {\n if (sArr) {\n sArr.forEach((s: string, index: number) => {\n if (s.substring(0, 1) === '@') {\n const foundEntity = entities.find((e) => `@${e.name}` === s);\n if (foundEntity) {\n foundEntity.values[0].synonyms.forEach((v) => {\n sArr.push(v);\n });\n }\n sArr.splice(index, 1);\n }\n });\n }\n });\n\n const arr = synonymArray.filter((arr) => {\n if (!!arr) return arr.length > 0;\n else return false;\n });\n\n let compiledPayload = `\n\t\t\t\t\tsetLocalCapture(false);\n\t\t\t\t\tvar resp;\n\t\t\t\t\tvars.userInput = \\`$raw.resposta\\`;\n\t\t\t\t\tvars.contagem = (vars.contagem || 0);\n\t\t\t\t\tresp = (\n\t\t\t\t\t\t\tawait request(\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\t'${similarityAPI}',{\n\t\t\t\t\t\t\t\t\t\t\t\"input\": \\`\\${vars_userInput}\\`,\n\t\t\t\t\t\t\t\t\t\t\t\"list\": ${JSON.stringify(arr)},\n\t\t\t\t\t\t\t\t\t\t\t\"accuracy_limit\": ${similarityAccuracyLimit}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t`;\n if (block.data.outputs) {\n let evt = '';\n\n const outputs = block.data.outputs;\n const saveVarValueString = block.data.saveVarValue\n ? `${block.data.varValue} = resp.option_selected;`\n : '';\n\n const ifOptionSelectedStatement = saveVarValueString\n ? `if (resp.option_selected) { ${saveVarValueString} }`\n : '';\n\n switchString = `if (resp) {\n\t\t\t\t\t\t\t${ifOptionSelectedStatement} \n\t\t\t\t\t\t\tswitch (resp.option_selected) {\n\t\t\t\t`;\n\n outputs.forEach((output) => {\n if (output.title !== '' && output.title !== 'Outros') {\n if (output.nameIntent !== '') {\n evt = `event('${block.data.groupId}_${output.nameIntent}');`;\n }\n switchString += `\n\t\t\t\t\t\t\tcase '${output.title}':\n\t\t\t\t\t\t\t\t${evt}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t`;\n }\n evt = '';\n });\n switchString += `\n\t\t\t\t\tdefault:\n\t\t\t\t\t${getCountCondition(\n block.data.sendUser?.messageDidNotUnderstood || '',\n block.data.groupId,\n othersOutput.nameIntent || ''\n )}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmsg(\"Encontrei um erro ao tentar processar sua mensagem, tente novamente em alguns instantes\");\n\t\t\t\t\tevent('${block.data.groupId}_${block.data.name}');\n\t\t\t\t\t}\n\t\t\t\t`;\n }\n\n compiledPayload += switchString;\n\n const chipsTitles = block.data.outputs\n ?.map((output) => (output.isChip ? output.title : ''))\n .filter((item) => item !== 'Outros' && item !== '');\n\n let chipsString = '[';\n\n chipsTitles?.forEach((chip, index) => {\n chipsString += `'${chip}'`;\n if (index < chipsTitles.length - 1) {\n chipsString += ',';\n }\n });\n\n chipsString += ']';\n\n const chipsEvent =\n chipsString !== '[]' ? `msg(${chipsString}, 'chips');\\n` : '';\n\n block.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload: `\n\t\t\t\t \tsetLocalCapture(true, '${block.data.groupId}_${optionsBlockInput.data.name}')\n\t\t\t\t\t\t${chipsEvent}\n\t\t\t\t\t`,\n payload: '',\n xml: '',\n };\n\n optionsBlockInput.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload: compiledPayload.replaceAll('\\t', ''),\n payload: '',\n xml: '',\n };\n }\n break;\n\n case EIntentType.Carousel:\n const carouselBlock1 = {\n id: lastBlock + 1,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n intentType: 120,\n groupId: block.data.groupId,\n name: `${block.data.name}-logica`,\n },\n } as ItemDataFlow;\n\n lastBlockId = lastBlock + 1;\n blocks[lastBlock + 1] = carouselBlock1;\n\n const carouselBlock2 = {\n id: lastBlock + 2,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n intentType: 120,\n groupId: block.data.groupId,\n name: `${block.data.name}-input`,\n },\n } as ItemDataFlow;\n\n lastBlockId = lastBlock + 2;\n blocks[lastBlock + 2] = carouselBlock2;\n\n const items = block.data.outputs\n ?.map((output) => {\n return {\n title: output.title,\n description: output.description || ' ',\n price: Number(output.value),\n image: output.url,\n };\n })\n .filter((item) => item.title !== 'Outros');\n\n if (block.data.outputs) {\n const othersOutput = block.data.outputs[block.data.outputs.length - 1];\n const carouselOrList = block.data.listType === 1 ? 'carousel' : 'list';\n const stringifiedItems = JSON.stringify(items);\n\n if (carouselBlock1.data.dataBlockly)\n carouselBlock1.data.dataBlockly.compiledPayload = `\n\t\t\t\titems = ${stringifiedItems};\n\t\t\t\tif (user.appClient == \"Web\" || user.appClient == \"Facebook\") {\n\t\t\t\t\tmsg(items, '${carouselOrList}');\n\t\t\t\t} else {\n\t\t\t\t\tlet msgTxt = \"\";\n\t\t\t\t\tlet chips = [];\n\n\t\t\t\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\t\t\t\tif (!!items[i]) {\n\t\t\t\t\t\t\t\tconst price = !!items[i].price ? items[i].price.toLocaleString('pt-br', { style: 'currency', currency: 'BRL'}) : \" \"\\n;\n\t\t\t\t\t\t\t\tconst description = (!!items[i].description && items[i].description.trim() !== \"\") ? \\`\\n\\`+ items[i].description + \\`\\n\\` : \\`\\`;\n\t\t\t\t\t\t\t\tmsgTxt += !!items[i].title ? '*' + (i+1) + '*. ' + items[i].title + \\` \\` + price + description + \\`\\n\\` : \\`''\\`\\n;\n\t\t\t\t\t\t\t\tif (items[i]) chips.push(items[i].title); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t msg(msgTxt, 'text'); \n\t\t\t\t\t msg(chips, 'chips');\n\t\t\t\t}\n\t\t\t\tsetLocalCapture(true, '${block.data.groupId}_${carouselBlock2.data.name}')\n\t\t\t`;\n\n const fallBackMessageCarousel =\n block.data.sendUser?.messageDidNotUnderstood || '';\n\n let switchString = '';\n const synonymArray: any[] = [];\n block.data.outputs?.forEach((output, index) => {\n const foundIndex = output.userSentences?.find(\n (s) => s === (index + 1).toString()\n );\n\n if (!foundIndex) output.userSentences?.push(`${index + 1}`);\n\n return synonymArray.push(\n output.userSentences?.filter((s) => s !== '')\n );\n });\n\n const arr = synonymArray.filter((arr) => {\n if (!!arr) return arr.length > 0;\n else return false;\n });\n\n let compiledPayload = `\n\t\t\t\t\tsetLocalCapture(false)\n\t\t\t\t\tvar resp;\n\t\t\t\t\tvars.userInput = \\`$raw.resposta\\`;\n\t\t\t\t\tvars.contagem = (vars.contagem || 0);\n\t\t\t\t\tresp = (\n\t\t\t\t\t\t\tawait request(\n\t\t\t\t\t\t\t\t\t'POST',\n\t\t\t\t\t\t\t\t\t'${similarityAPI}',{\n\t\t\t\t\t\t\t\t\t\t\t\"input\": \\`\\${vars_userInput}\\`,\n\t\t\t\t\t\t\t\t\t\t\t\"list\": ${JSON.stringify(arr)},\n\t\t\t\t\t\t\t\t\t\t\t\"accuracy_limit\": ${similarityAccuracyLimit}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t`;\n if (block.data.outputs) {\n let evt = '';\n\n const outputs = block.data.outputs;\n const saveVarValueString = block.data.saveVarValue\n ? `${block.data.varValue} = resp.option_selected;`\n : '';\n\n const ifOptionSelectedStatement = saveVarValueString\n ? `if (resp.option_selected) { ${saveVarValueString} }`\n : '';\n\n switchString = `if (resp) {\n\t\t\t\t\t\t\t${ifOptionSelectedStatement} \n\t\t\t\t\t\t\tswitch (resp.option_selected) {\n\t\t\t\t`;\n\n outputs.forEach((output) => {\n if (output.title !== '' && output.title !== 'Outros') {\n if (output.nameIntent !== '') {\n evt = `event('${block.data.groupId}_${output.nameIntent}');`;\n }\n switchString += `\n\t\t\t\t\t\t\tcase '${output.title}':\n\t\t\t\t\t\t\t\t${evt}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t`;\n }\n evt = '';\n });\n switchString += `\n\t\t\t\t\tdefault:\n\t\t\t\t\t${getCountCondition(\n fallBackMessageCarousel,\n block.data.groupId,\n othersOutput.nameIntent || ''\n )}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmsg(\"Encontrei um erro ao tentar processar sua mensagem, tente novamente em alguns instantes\");\n\t\t\t\t\tevent('${block.data.groupId}_${block.data.name}');\n\t\t\t\t\t}\n\t\t\t\t`;\n }\n\n compiledPayload += switchString;\n\n block.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload: `\n\t\t\t\t\t\tevent('${block.data.groupId}_${carouselBlock1.data.name}');\n\t\t\t\t\t`,\n payload: '',\n xml: '',\n };\n\n carouselBlock1.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload:\n carouselBlock1.data?.dataBlockly?.compiledPayload.replaceAll(\n '\\t',\n ''\n ) || '',\n payload: '',\n xml: '',\n };\n\n carouselBlock2.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload: compiledPayload.replaceAll('\\t', ''),\n payload: '',\n xml: '',\n };\n }\n break;\n\n case EIntentType.SendMessage:\n if (block.data.dataBlockly) {\n block.data.dataBlockly.payload += `// #PARSER#CONNECTOR#Saída#`;\n }\n break;\n\n case EIntentType.OpenHTML:\n if (block.data.dataBlockly) {\n const destinationBlock = blocks[to_block];\n const destinationBlockName = destinationBlock\n ? destinationBlock.data.name\n : '';\n block.data.dataBlockly.payload = '';\n block.data.dataBlockly.compiledPayload = `\n\t\t\t\tif (user.appClient == \"Web\" || user.appClient == \"App\"){\n\t\t\t\t\tmsg({\n\t\t\t\t\t\t\"type\": \"iframe\",\n\t\t\t\t\t\t\"items\": \\`${block.data.sendUser?.url || block.data.sendUser?.message}\\` ,\n\t\t\t\t\t\t\"onClose\": '${block.data.groupId}_${destinationBlockName}',\n\t\t\t\t\t\t\"userId\": user.id\n\t\t\t\t\t}, 'payload');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmsg(\\`${block.data.sendUser?.url || block.data.sendUser?.message}\\`);\n\t\t\t\t\t\tevent('${block.data.groupId}_${destinationBlockName}');\n\t\t\t\t\t}\n\t\t\t\t`.replaceAll('\\t', '');\n }\n break;\n\n case EIntentType.ABTest:\n if (block.data.dataBlockly && !!block.data.outputs) {\n const outputs = block.data.outputs;\n const allValues = block.data.outputs.map((o) => o.value || '0');\n\n block.data.dataBlockly.payload = '';\n\n block.data.dataBlockly.compiledPayload = `\n\t\t\t\tvar random = Math.random() * 100;\n\t\t\t\t`;\n\n let switchString = ``;\n let previousValue = 0;\n\n allValues?.forEach((value, index) => {\n if (outputs[index]) {\n const outputName = outputs[index].nameIntent;\n previousValue = previousValue + Number(value);\n\n switchString += `\n\t\t\t\t\t\t\tif (random < ${previousValue}){\n\t\t\t\t\t\t\t\tevent('${block.data.groupId}_${outputName}');\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t`;\n\n if (!outputs[index + 1])\n switchString += `\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tevent('${block.data.groupId}_${block.data.name}');\n\t\t\t\t\t\t\t}`;\n }\n });\n\n block.data.dataBlockly.compiledPayload += switchString.replaceAll(\n '\\t',\n ''\n );\n }\n break;\n\n case EIntentType.NLU:\n if (block.data.inputs) {\n block.data.inputs.userSentences = block.data.inputs?.userSentences?.map(\n (sentence) => sentence.replaceAll(/[\\r\\n\\t]/g, '')\n );\n }\n break;\n\n case EIntentType.FlexBlock:\n const flexBlockRelatedGroup = flexGroups.find(\n (group) => group.groupName === `flex-${block.data.name}`\n );\n if (!flexBlockRelatedGroup) break;\n const flexBlockRelatedGroupBlocks =\n flexBlockRelatedGroup.drawflow.drawflow.Home.data;\n const flexGroupBlocksKeys = Object.keys(flexBlockRelatedGroupBlocks);\n\n let entryBlockInFlexGroup: ItemDataFlow = {} as ItemDataFlow;\n const exitBlocks: ItemDataFlow[] = [];\n\n lastBlockId = lastBlock;\n\n for (const key in flexGroupBlocksKeys) {\n const currentBlock: ItemDataFlow =\n flexBlockRelatedGroupBlocks[flexGroupBlocksKeys[key]];\n\n if (currentBlock.data.intentType === EIntentType.FlexBlockEntry) {\n entryBlockInFlexGroup = currentBlock;\n }\n\n if (currentBlock.data.intentType === EIntentType.FlexBlockExit) {\n exitBlocks.push(currentBlock);\n }\n }\n\n let flexBlockCompiledPayload = '';\n\n exitBlocks.forEach((exitBlock, index) => {\n if (block.data.outputs && block.data.outputs[index]) {\n exitBlock.data.dataBlockly = {\n ...exitBlock.data.dataBlockly,\n lastVersion: exitBlock.data.dataBlockly?.lastVersion || 0,\n payload: '',\n xml: '',\n compiledPayload: `event('${block.data.groupId}_${block.data.outputs[index].nameIntent}')`,\n };\n\n flexBlockCompiledPayload += `\n\t\t\t\t\tvars.__output${index}_event = '${block.data.groupId}_${block.data.outputs[index].nameIntent}'\n\t\t\t\t\t`;\n }\n });\n flexBlockCompiledPayload += `event('${flexBlockRelatedGroup.groupName}_${entryBlockInFlexGroup.data.name}')`;\n\n block.data.dataBlockly = {\n xml: block.data.dataBlockly?.xml || '',\n payload: '',\n lastVersion: block.data.dataBlockly?.lastVersion || 1,\n compiledPayload: flexBlockCompiledPayload,\n };\n break;\n\n case EIntentType.FlexBlockExit:\n const flexBlockGroup = flexGroups.find(\n (group) => group.groupName === block.data.groupId\n );\n if (!flexBlockGroup) break;\n const flexBlockRelatedlocks = flexBlockGroup.drawflow.drawflow.Home.data;\n const flexGroupKeys = Object.keys(flexBlockRelatedlocks);\n\n const exits: ItemDataFlow[] = [];\n\n for (const key in flexGroupKeys) {\n const currentBlock: ItemDataFlow = flexBlockRelatedlocks[flexGroupKeys[key]];\n\n if (currentBlock.data.intentType === EIntentType.FlexBlockExit) {\n exits.push(currentBlock);\n }\n }\n\n exits.forEach((exit, index) => {\n if (exit.data.name === block.data.name) {\n block.data.dataBlockly = {\n xml: block.data.dataBlockly?.xml || '',\n payload: '',\n lastVersion: block.data.dataBlockly?.lastVersion || 1,\n compiledPayload: `event(vars.__output${index}_event)`,\n };\n return;\n }\n });\n\n break;\n\n case EIntentType.FalaGPT:\n const groupName = block.data.groupId;\n\n const falaGptInputBlock = {\n id: lastBlock + 1,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n outputs: block.data.outputs,\n intentType: 211,\n groupId: groupName,\n name: `${block.data.name}-recognition`,\n },\n } as ItemDataFlow;\n\n const falaGptLogicBlock = {\n id: lastBlock + 2,\n data: {\n dataBlockly: {\n compiledPayload: '',\n lastVersion: 0,\n payload: '',\n xml: '',\n },\n intentType: 120,\n groupId: groupName,\n name: `${block.data.name}-logic`,\n },\n } as ItemDataFlow;\n\n const falaGptOutputIndex = block.data.outputs!.findIndex(\n (output) => output.title === 'FalaGPT'\n );\n\n if (falaGptOutputIndex !== -1) {\n falaGptInputBlock.data.outputs![falaGptOutputIndex].nameIntent =\n falaGptLogicBlock.data.name;\n\n falaGptInputBlock.data.outputs![falaGptOutputIndex].title = 'Outros';\n }\n\n blocks[lastBlock + 1] = falaGptInputBlock;\n blocks[lastBlock + 2] = falaGptLogicBlock;\n\n if (block.data.outputs) {\n const synonymArray: any[] = [];\n block.data.outputs?.forEach((output) => {\n return synonymArray.push(\n output.userSentences?.filter((s) => s !== '')\n );\n });\n\n synonymArray.forEach((sArr) => {\n if (sArr) {\n sArr.forEach((s: string, index: number) => {\n if (s.substring(0, 1) === '@') {\n const foundEntity = entities.find((e) => `@${e.name}` === s);\n if (foundEntity) {\n foundEntity.values[0].synonyms.forEach((v) => {\n sArr.push(v);\n });\n }\n sArr.splice(index, 1);\n }\n });\n }\n });\n\n const chipsTitles = block.data.outputs\n ?.map((output) => (output.isChip ? output.title : ''))\n .filter((item) => item !== 'Outros' && item !== '');\n\n let chipsString = '[';\n\n chipsTitles?.forEach((chip, index) => {\n chipsString += `'${chip}'`;\n if (index < chipsTitles.length - 1) {\n chipsString += ',';\n }\n });\n\n chipsString += ']';\n\n const chipsEvent =\n chipsString !== '[]' ? `msg(${chipsString}, 'chips');\\n` : '';\n\n block.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload: `\n\t\t\t\t\t\t\t${chipsEvent};\n\t\t\t\t\t\t\tsetLocalCapture(true, '${block.data.groupId}_${falaGptInputBlock.data.name}');\n\t\t\t\t\t\t`,\n payload: '',\n xml: '',\n };\n\n block.data.intentType = 100;\n\n falaGptInputBlock.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload: `\n\t\t\t\t\t setLocalCapture(false)\n \t`,\n payload: '',\n xml: '',\n };\n\n const logicCompiledPayload = `\n\t\t\t\ttry {\n\t\t\t\t\tconst response = await chatGPTQuestion(user.id, \"${block.data.outputs[0].falaGPTContext}\", user.input);\t\t\t\t\t\n\t\t\t\t\tif (response) {\n\t\t\t\t\t\tvars.respLonga = response;\n\t\t\t\t\t\tmsg(vars.respLonga)\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmsg('Tive um problema para encontrar uma resposta, tente novamente.', 'text');\n\t\t\t\t\t} \n\t\t\t\t\tevent('${groupName}_${falaGptInputBlock.data.name}')\n\t\t\t\t}\n\t\t\t\tcatch (e) {\n\t\t\t\t\tmsg('Tive um problema para encontrar uma resposta, tente novamente.', 'text');\n\t\t\t\t\tevent('${groupName}_${falaGptInputBlock.data.name}')\n\t\t\t\t}\n\t\t\t\t`;\n\n falaGptLogicBlock.data.dataBlockly = {\n lastVersion: 0,\n compiledPayload: logicCompiledPayload.replaceAll('\\t', ''),\n payload: '',\n xml: '',\n };\n }\n break;\n }\n};\n\nconst getRegex = (type: MessageType) => {\n let regex: RegExp = /.+/gm;\n\n switch (type) {\n case 'text':\n regex = /.+/gm;\n break;\n case 'anyNumber':\n regex = /\\d+/gm;\n break;\n case 'email':\n regex = /[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+/gm;\n break;\n case 'url':\n regex =\n // eslint-disable-next-line no-useless-escape\n /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%.\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%\\+.~#?&\\/=]*)/gm;\n break;\n case 'phone':\n regex = /\\(?\\d{2}\\)? ?\\d{5}-?\\d{4}/gm;\n break;\n case 'lettersOnly':\n regex = /[A-Za-z ã á â é ê í õ ó ç]*/gm;\n break;\n case 'cpf':\n regex = /\\d{3}\\.?\\d{3}\\.?\\d{3}-?\\d{2}/gm;\n break;\n case 'cnpj':\n regex =\n // eslint-disable-next-line no-useless-escape\n /[0-9]{2}[\\.]?[0-9]{3}[\\.]?[0-9]{3}[\\/]?[0-9]{4}[-]?[0-9]{2}/gm;\n break;\n case 'cep':\n regex = /\\d{5}-?\\d{3}/gm;\n break;\n case 'data':\n regex = /\\d{2}\\/?\\d{2}\\/?\\d{4}/gm;\n break;\n case 'money':\n regex = /[1-9]\\d{0,2}(\\.\\d{3})*,\\d{2}/gm;\n break;\n case 'password':\n regex =\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$/;\n break;\n case 'location':\n regex =\n /[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)[|]\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)/gm;\n break;\n case 'uuid':\n regex =\n /[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}/gm;\n break;\n }\n\n return regex;\n};\n\nconst getCompiledPayload = (\n blocks: DataFlow,\n block: ItemDataFlow,\n inputBlock: ItemDataFlow,\n outputBlockId: number,\n fallBackBlock: string\n) => {\n let compiledPayload = '';\n const msgType = block.data.messageType as MessageType;\n\n switch (msgType) {\n case 'cep':\n compiledPayload += `${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'cep'\n )}`;\n break;\n\n case 'cpf':\n compiledPayload += `${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'cpf'\n )}`;\n break;\n\n case 'cnpj':\n compiledPayload += `${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'cnpj'\n )}`;\n break;\n\n case 'location':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'location'\n )}`;\n break;\n\n case 'email':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'email'\n )}`;\n break;\n\n case 'text':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'text'\n )}`;\n break;\n\n case 'anyNumber':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'anyNumber'\n )}`;\n break;\n\n case 'data':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'data'\n )}`;\n break;\n\n case 'phone':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'phone'\n )}`;\n break;\n\n case 'password':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'password'\n )}`;\n break;\n\n case 'money':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'money'\n )}`;\n break;\n\n case 'url':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'url'\n )}`;\n break;\n\n case 'uuid':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'uuid'\n )}`;\n break;\n\n case 'lettersOnly':\n compiledPayload += `\n\t\t\t${getIfCondition(\n block,\n inputBlock.data.name,\n blocks[outputBlockId].data.name,\n fallBackBlock,\n 'lettersOnly'\n )}`;\n break;\n }\n\n return compiledPayload;\n};\n\nconst getIfCondition = (\n block: ItemDataFlow,\n blockName: string,\n destinationBlockName: string,\n fallBackBlock: string,\n msgType: MessageType\n) => {\n const groupName = block.data.groupId;\n const varValue = block.data.varValue || 'vars.resposta';\n const errorMessage = block.data.sendUser?.messageDidNotUnderstood || '';\n let condition = '';\n const regex = getRegex(msgType);\n\n const validationFuncion =\n msgType === 'cpf'\n ? 'isValidCPF'\n : msgType === 'cnpj'\n ? 'isValidCNPJ'\n : msgType === 'cep'\n ? 'isValidCEP'\n : '';\n\n if (validationFuncion !== '') {\n condition = `\n\t\t\tconst regexResult = user.input.match(${regex});\n\t\t\tinput = regexResult;\n\t\t\t${varValue} = regexResult;\n\n\t\t\tif (input !== null) {\n\t\t\t\t${msgType} = (await ${validationFuncion}(input.toString()));\\n\n\t\t\t\tif (${msgType}) {\n\t\t\t\t\t${varValue} = ${msgType};\n\t\t\t\t\tvars.contagem == null;\n\t\t\t\t\tevent('${groupName}_${destinationBlockName}');\n\t\t\t\t} else {\n\t\t\t\t\t${getCountCondition(errorMessage, groupName, blockName, fallBackBlock)}\n\t\t\t\t}\t\t\n\t\t\t} else {\n\t\t\t\t${getCountCondition(errorMessage, groupName, blockName, fallBackBlock)}\n\t\t\t}\n\t\t`;\n } else if (msgType === 'location') {\n condition += `\n\t\tregexResult = ${regex}.exec(user.input);\n\t\tif (regexResult) {\n\t\t\tlat = user.input.substring(0, user.input.indexOf(\"|\"));\n\t\t\tlong = user.input.substring(user.input.indexOf(\"|\") + 1, user.input.length);\n\t\t\tret = await getAddress(long, lat);\n\t\t\tif (ret) {\n\t\t\t\t${varValue} = ret;\n\t\t\t\tvars.contagem == null;\n\t\t\t\tevent('${groupName}_${destinationBlockName}');\n\t\t\t}\n\t\t\telse {\n\t\t\t\t${getCountCondition(\n `Erro ao buscar sua Localização.\\n\\n ${errorMessage}`,\n groupName,\n blockName,\n fallBackBlock\n )}\n\t\t\t}\t\t\n\t\t}\n\t\telse {\n\t\t\t${getCountCondition(errorMessage, groupName, blockName, fallBackBlock)}\n\t\t}\t\t\n\t\t`;\n } else {\n condition += ` \n\t\t\tregexResult = ${regex}.exec(user.input);\n\t\t\tif (regexResult) {\n\t\t\t\t${varValue} = regexResult[0].toString();\n\t\t\t\tvars.contagem == null;\n\t\t\t\tevent('${groupName}_${destinationBlockName}');\n\t\t\t} else {\n\t\t\t\t${getCountCondition(errorMessage, groupName, blockName, fallBackBlock)}\n\t\t\t}\t\t\n\t\t`;\n }\n\n return condition;\n};\n\nconst getCountCondition = (\n errorMessage: string,\n groupName: string,\n blockName: string,\n fallBackBlock?: string\n) => {\n const fallBackEvent = fallBackBlock\n ? `event('${groupName}_${fallBackBlock}');`\n : blockName !== ''\n ? `event('${groupName}_${blockName}');`\n : '';\n\n const errorEvent =\n errorMessage !== '' ? `msg(\\`${errorMessage}\\`, 'text');` : '';\n\n return `\n\tif (vars.contagem >= 2) {\n\t\tvars.contagem = null;\n\t\t${errorEvent}\n\t\tevent(\"999-did-not-understood\");\n\t} else {\n\t\tvars.contagem = vars.contagem + 1;\n\t\t${errorEvent}\n\t\t${fallBackEvent}\n\t}\n\t`;\n};\n\nexport default compileFlow;\n\n// const getDefaultErrorMessage = (msgType: MessageType) => {\n// switch (msgType) {\n// case 'text':\n// return 'Digite um texto válido';\n// case 'anyNumber':\n// return 'Digite um número válido';\n// case 'email':\n// return 'Digite um email válido';\n// case 'phone':\n// return 'Digite um telefone válido';\n// case 'password':\n// return 'Digite uma senha válida';\n// case 'money':\n// return 'Digite um valor monetário válido';\n// case 'url':\n// return 'Digite uma url válida';\n// case 'uuid':\n// return 'Digite um uuid válido';\n// case 'lettersOnly':\n// return 'Digite somente letras';\n// case 'cep':\n// return 'Digite um CEP válido';\n// case 'cpf':\n// return 'Digite um CPF válido';\n// case 'cnpj':\n// return 'Digite um CNPJ válido';\n// case 'data':\n// return 'Digite uma data válida';\n// case 'location':\n// return 'Digite uma localização válida';\n\n// default:\n// return 'Não entendi';\n// }\n// };\n","import { useState } from 'react';\nimport { GetGroupsInUse } from 'services/FlowService';\nimport useTranslator from './Translator';\nimport jwt_decode from 'jwt-decode';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { useApp } from 'contexts/App/appContext';\nimport createBotObject from 'utils/CreateBotObject';\nimport { GetFlows, SavePublishBackup } from 'services/BotService';\nimport { DrawflowModel } from 'models/DrawflowModel';\nimport { compileBot } from 'components/BlocklyConstructor/compiler';\nimport { IEntity } from 'models/Entity';\nimport { IFlow } from 'services/BotService/types';\nimport compileFlow from 'components/Flow/utils/CompileFlow';\nimport tagsCompiler from 'utils/tagCompiler';\n\nexport default function useAgents() {\n const { state, toastNotification, saveFlow, dispatch } = useFlow();\n const { dispatch: dispatchApp } = useApp();\n const { botName } = state;\n const { getTranslation } = useTranslator();\n const [botDrawflow, setBotDrawflow] = useState();\n\n async function isAgentFreeToUse(publish = false) {\n const status = publish\n ? getTranslation('agentOrGroupStatus.published')\n : getTranslation('agentOrGroupStatus.updated');\n\n const token = localStorage.getItem('token');\n\n if (token) {\n const { email }: any = jwt_decode(token);\n const regExp = /^[^@]*/;\n const regexEmailResult = regExp.exec(email[0]);\n if (regexEmailResult) {\n const regexEmailMatch = regexEmailResult[0];\n\n if (botName) {\n const response = await GetGroupsInUse(botName, dispatchApp);\n const groupsInUse = response.Data.data;\n\n if (!!groupsInUse.length) {\n const usersOtherThanCurrent: {\n user: string;\n group: string;\n }[] = [];\n\n groupsInUse.forEach((group) => {\n const regexUserResult = regExp.exec(group.current_user);\n if (regexUserResult) {\n const regexUserMatch = regexUserResult[0];\n\n if (regexUserMatch !== regexEmailMatch) {\n usersOtherThanCurrent.push({\n user: group.current_user,\n group: group.group_name,\n });\n }\n }\n });\n\n if (!!usersOtherThanCurrent.length) {\n toastNotification(\n 'error',\n getTranslation('toast.error.agentOrGroupInUse', {\n object: getTranslation('agent'),\n user: usersOtherThanCurrent.reduce((acc, value) => {\n return (acc += ` \\n\\n ${value.user}, ${getTranslation(\n 'group'\n ).toLowerCase()}: ${value.group}; `);\n }, ''),\n status,\n })\n );\n return false;\n }\n }\n\n return true;\n }\n }\n }\n }\n\n async function publishAgent() {\n const botToStringify = await createBotObject(botName || '', dispatchApp);\n if (botToStringify && botName) {\n const { accessKeys, entities, groups } = botToStringify;\n const backupResponse = await SavePublishBackup(\n { botName, accessKeys, entities, groups },\n dispatchApp\n );\n\n if (backupResponse.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.agentBackup'),\n 3000\n );\n } else {\n toastNotification(\n 'warning',\n getTranslation('toast.warning.agentBackup'),\n 3000\n );\n }\n }\n if (state.editorFlow?.drawflow && botName) {\n await saveFlow();\n const result = await GetFlows(\n {\n bot_name: botName || '',\n },\n dispatchApp\n );\n\n if (result.Success) {\n const principalFlow = result.Data.data.groups.find(\n (group) => group.group_name === 'principal'\n );\n const flows = result.Data.data.groups\n .map((flow) => {\n if (!flow.blocks.drawflow) return null;\n const home = flow.blocks.drawflow.Home;\n const drawflowModel = new DrawflowModel(home.data, flow.group_name);\n home.data = drawflowModel.getDrawflow();\n return {\n bot: flow.bot_name,\n groupName: flow.group_name,\n groupId: flow._id,\n drawflow: { drawflow: { Home: home } },\n } as IFlow;\n })\n .filter((f) => !!f);\n\n const entitiesResult: IEntity[] = [];\n\n for (const entity of result.Data.data.entities) {\n const { values } = entity;\n const result = values.filter((v) => !!v.value);\n if (!!result.length) {\n entitiesResult.push({\n ...entity,\n values: result,\n });\n }\n }\n\n compileFlow(flows, entitiesResult, principalFlow!);\n const flowsCompiled: IFlow[] = compileBot(flows);\n tagsCompiler(flowsCompiled);\n\n console.log(flowsCompiled);\n\n setBotDrawflow({\n bot_name: botName || '',\n groups: flowsCompiled.filter((f) => !!f),\n entities: {\n bot_name: botName || '',\n entities: entitiesResult,\n },\n });\n\n dispatch({\n type: 'drawflowToPublish',\n data: {\n drawflowToPublish: {\n bot_name: botName || '',\n groups: flowsCompiled.filter((f) => !!f),\n entities: {\n bot_name: botName || '',\n entities: entitiesResult,\n },\n },\n },\n });\n dispatch({ type: 'openModalPublishBot' });\n }\n }\n }\n\n function getAgentDrawflow() {\n return botDrawflow;\n }\n\n function finishPublish(publishSuccess: boolean, message: string) {\n if (publishSuccess && message === 'Bot publicado com sucesso!') {\n toastNotification(\n 'success',\n getTranslation('toast.success.publishAgent'),\n 3000\n );\n } else {\n toastNotification(\n 'error',\n `\n\t\t\t\t\t\t${getTranslation('toast.error.publishAgent')}\n\t\t\t\t\t\t${message}\n\t\t\t\t\t`\n );\n }\n dispatch({ type: 'closeModalPublishBot' });\n }\n\n return {\n getAgentDrawflow,\n isAgentFreeToUse,\n publishAgent,\n finishPublish,\n };\n}\n","import { ItemDataFlow } from 'models/DataFlow';\nimport insertInPayloadStart from './insertInPayloadStart';\n\ninterface Flow {\n drawflow: { drawflow: { Home: { data: ItemDataFlow[] } } };\n}\n\nexport default function tagsCompiler(flows: any) {\n flows.forEach((flow: Flow) => {\n const blocks: ItemDataFlow[] = flow.drawflow.drawflow.Home.data;\n\n Object.keys(blocks).forEach((block) => {\n const blockObj = blocks[Number(block)];\n if (blockObj.data.tags && blockObj.data.tags.length > 0) {\n const validTags = blockObj.data.tags?.filter((tag) => !!tag);\n if (!blockObj.data.dataBlockly) return;\n\n validTags.forEach((tag) => {\n const tagFunction = `tag({ name: '${tag}' });`;\n\n blockObj.data.dataBlockly!.compiledPayload = insertInPayloadStart(\n blockObj.data.dataBlockly!.compiledPayload,\n tagFunction\n );\n });\n }\n });\n });\n}\n","export default function insertInPayloadStart(\n currentPayload: string,\n newInfo: string\n) {\n return newInfo + '\\n ' + currentPayload;\n}\n","import React, { useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Box, Typography } from '@material-ui/core';\nimport LinearProgress, {\n LinearProgressProps,\n} from '@material-ui/core/LinearProgress';\nimport usePublishBot from 'utils/hooks/publishBotHook';\nimport { useStyles, Container } from './styles';\nimport useAgents from 'utils/hooks/useAgents';\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nexport default function PublishProgressBar() {\n const { drawflowToPublish } = useFlow().state;\n const publishBotHook = usePublishBot();\n const { finishPublish } = useAgents();\n const classes = useStyles();\n\n const publish = useCallback(() => {\n if (drawflowToPublish) {\n\t\t\tconst drawflow = drawflowToPublish.drawflowToPublish;\n publishBotHook.publishBot(drawflow, drawflow.bot_name);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [drawflowToPublish]);\n\n useEffect(() => {\n publish();\n }, [publish]);\n\n useEffect(() => {\n if (publishBotHook.getConnectionStatus() === 3) {\n const msg = publishBotHook.getMessage();\n const progress = publishBotHook.getProgress();\n\n if (progress >= 100) {\n finishPublish(true, msg);\n } else {\n finishPublish(false, msg);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [publishBotHook]);\n\n return (\n \n \n \n );\n}\n\nfunction LinearProgressWithLabel(\n props: JSX.IntrinsicAttributes & LinearProgressProps\n) {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n \n {`${Math.trunc(\n props.value || 0\n )} %`}\n \n \n );\n}\n\nLinearProgressWithLabel.propTypes = {\n value: PropTypes.number.isRequired,\n};\n","import { useState } from 'react';\n\nexport default function usePublishBot() {\n const apiUrlWs = process.env.REACT_APP_URL_WS;\n const [publishing, setPublishing] = useState(true);\n const [progress, setProgress] = useState(0);\n const [publishingFinished, setPublishingFinished] = useState(false);\n const [wsError, setWsError] = useState(false);\n const [wsErrorMessage, setWsErrorMessage] = useState('');\n const [semaphoreId, setSemaphoreId] = useState('');\n const [connection, setConnection] = useState();\n\n function publishBot(botDrawflow: any, botName: string) {\n if (botDrawflow && botName) {\n const action = `bots/publish`;\n\n const refreshToken = localStorage.getItem('refresh_token');\n const token = localStorage.getItem('token');\n\n if (!!token && !!refreshToken) {\n const data = { token: token, bot_drawflow: botDrawflow };\n const wsConnection = new WebSocket(apiUrlWs + action);\n\n wsConnection.onopen = () => {\n wsConnection.send(JSON.stringify(data));\n setConnection(wsConnection);\n };\n\n wsConnection.onerror = () => {\n setWsError(true);\n wsConnection.close();\n };\n\n wsConnection.onmessage = (e) => {\n const response = JSON.parse(e.data);\n const percentageResponse = response.publishing_percentage;\n\n if (response.type === 'error') {\n setWsErrorMessage(response.message);\n }\n\n if (response.type === 'notification') {\n setSemaphoreId(response.semaphore);\n }\n\n if (percentageResponse) {\n setProgress(percentageResponse);\n }\n\n if (percentageResponse >= 100) {\n setWsErrorMessage('Bot publicado com sucesso!');\n wsConnection.close();\n }\n };\n\n wsConnection.onclose = () => {\n handlePublish(false);\n\n if (wsError) {\n setPublishingFinished(false);\n } else setPublishingFinished(true);\n };\n } else {\n handlePublish(false);\n setPublishingFinished(false);\n }\n }\n }\n\n function getConnectionStatus() {\n return connection?.readyState;\n }\n\n function handlePublish(status: boolean) {\n setPublishing(status);\n }\n\n function getProgress() {\n return progress;\n }\n\n function isPublishing() {\n return publishing;\n }\n\n function getMessage() {\n return wsErrorMessage;\n }\n\n function getSemaphoreId() {\n return semaphoreId;\n }\n\n function hasPublishingFinished() {\n return publishingFinished;\n }\n\n return {\n getConnectionStatus,\n isPublishing,\n getProgress,\n publishBot,\n handlePublish,\n hasPublishingFinished,\n getMessage,\n getSemaphoreId,\n };\n}\n","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { FormProvider } from 'contexts/Form/formContext';\nimport './styles.css';\nimport logo from './llego-animated.gif';\nimport { Grid } from '@material-ui/core';\nimport { useStyles, ContainerImage, ModalTitle, Container } from './style';\nimport PublishProgressBar from '../PublishProgressBar';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalPublishBot() {\n const classes = useStyles();\n const { getTranslation } = useTranslator();\n\n return (\n \n \n \n \n {getTranslation('publishing')}\n \n\n \n \"loading...\"\n \n \n \n \n \n );\n}\n","import { Grid, makeStyles, Theme, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const ContainerDialog = styled(MttGrid)`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n overflow: hidden;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const AddTagContainer = styled(Grid)`\n width: 100%;\n display: flex;\n align-items: center;\n margin-top: 35px;\n max-height: 50px;\n\n button {\n margin: 5px;\n padding: 10px;\n }\n`;\n\nexport const TagsContainer = styled.div`\n width: 100%;\n overflow: auto;\n /* overflow-x: hidden; */\n margin-bottom: 20px;\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n padding: 7px;\n width: 100%;\n max-width: 200px;\n margin: 0px 2px 5px 10px;\n`;\n\nexport const TagsList = styled(Grid)`\n display: flex;\n margin: 10px 10px;\n align-items: center;\n max-width: 100%;\n flex-wrap: wrap;\n`;\n\nexport const ChipContainer = styled.div`\n div {\n margin: 3px;\n }\n`;\n\nexport const ContentContainer = styled(Grid)`\n overflow: hidden;\n height: 100%;\n`;\n\nexport const ContainerImage = styled(Grid)`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #ffff;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})``;\n\nexport const ModalFooter = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n`;\n\nexport const ContainerFooter = styled.div`\n align-items: center;\n justify-content: center;\n margin: 0 24px 16px 24px;\n\n .MuiTypography-body1 {\n color: #808080;\n }\n`;\n\nexport const ContainerMessage = styled.div`\n align-items: center;\n justify-content: center;\n margin-bottom: 4px;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ModalMessage = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ClientInfo = styled.div`\n padding-top: 8px;\n\n margin-bottom: 4px;\n\n width: 100%;\n /* max-width: 444px; */\n background-color: #f2f2f2;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n .MuiIconButton-root {\n /* color: #34ac26; */\n }\n`;\n\nexport const MsgFieldContainer = styled.div`\n p {\n margin-left: 28px;\n color: #6c50a4;\n font-weight: bold;\n font-size: 1.1rem;\n }\n`;\n\nexport const PopoverContainer = styled.div`\n padding: 16px;\n`;\n\nexport const MessagesContainer = styled.div`\n overflow-y: scroll;\n max-height: calc(100% - 74px);\n\n ::-webkit-scrollbar {\n width: 10px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n`;\n\nexport const DateChip = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n span {\n background: #6c50a459;\n max-width: 150px;\n padding: 8px 16px;\n margin: 16px;\n border-radius: 8px;\n font-weight: 500;\n /* border: 1px solid #a6a6a6; */\n }\n`;\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n table: {\n minWidth: 650,\n },\n appBar: {\n position: 'relative',\n background: theme.palette.primary.main,\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n root: {\n maxWidth: '50%',\n margin: 16,\n padding: 16,\n },\n userMsg: {\n maxWidth: '50%',\n margin: 8,\n padding: 8,\n background: '#E5E4E4',\n borderRadius: 8,\n borderBottomRightRadius: 0,\n },\n botMsg: {\n maxWidth: '50%',\n margin: 8,\n background: '#f4f4f4',\n padding: 8,\n borderRadius: 8,\n borderTopLeftRadius: 0,\n },\n modal: {\n height: 'inherit',\n },\n msgContainer: {\n margin: '10px 10px 0',\n border: 'none',\n },\n selectedMsg: {\n border: '2px solid #ff14149e',\n background: '#ff00001f',\n },\n msg: {\n wordWrap: 'break-word',\n fontWeight: 500,\n margin: 0,\n padding: '0px 10px',\n },\n msgHour: {\n wordWrap: 'break-word',\n fontSize: 10,\n textAlign: 'end',\n fontWeight: 500,\n margin: '0 0 2px',\n padding: '0 7px 0 10px',\n },\n}));\n","/* eslint-disable no-extend-native */\nimport React, { useEffect, useMemo, useState } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport './styles.css';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { ModalCustomerProps } from './types';\nimport {\n GetOneConversation,\n GetOneCustomer,\n} from 'services/ConversationService';\nimport { Customer, Message } from 'models/Conversation';\nimport {\n AppBar,\n Card,\n CircularProgress,\n Grid,\n IconButton,\n Popover,\n Toolbar,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport {\n ContainerDialog,\n ContentContainer,\n MsgFieldContainer,\n ClientInfo,\n PopoverContainer,\n useStyles,\n MessagesContainer,\n DateChip,\n} from './style';\n\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\n\nimport { formatDateHour, hour } from 'utils/Date';\nimport { subHours, format, isToday } from 'date-fns';\nimport { isYesterday } from 'date-fns/esm';\nimport { ptBR, enUS, es } from 'date-fns/locale';\n\nimport i18n from 'utils/i18n';\n\nimport { Filter } from './Filter';\nimport Search from '@material-ui/icons/Search';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalCustomer(props: ModalCustomerProps) {\n const classes = useStyles();\n const { dispatch: dispatchApp } = useApp();\n const { open, bot_name, customer, handleClose, messageSelected } = props;\n\n const [currentCustomer, setCurrentCustomer] = useState(null);\n const [conversation, setConversation] = useState([]);\n const [loading, setLoading] = useState(false);\n const [anchorEl, setAnchorEl] = useState(null);\n const [openFilter, setOpenFilter] = useState(true);\n\n const dateConfigString =\n i18n.language === 'en-US' ? 'dd MMM yyy' : \"dd 'de' MMMM 'de' yyyy\";\n\n const currLocale =\n i18n.language === 'en-US' ? enUS : i18n.language === 'pt-BR' ? ptBR : es;\n\n const { getTranslation } = useTranslator();\n\n const close = () => {\n window.location.href = '#';\n handleClose();\n };\n\n useEffect(() => {\n async function load() {\n setLoading(true);\n const resultCustomer = await GetOneCustomer(\n { bot_name, customer },\n dispatchApp\n );\n\n if (resultCustomer.Success) {\n setCurrentCustomer(resultCustomer.Data.data);\n } else {\n setCurrentCustomer(null);\n }\n const resultConversation = await GetOneConversation(\n {\n bot_name,\n customer,\n },\n dispatchApp\n );\n if (resultConversation.Success) {\n setConversation(resultConversation.Data.data);\n } else {\n setConversation([]);\n }\n setLoading(false);\n\n const div = document.getElementById('scrollDiv');\n\n if (messageSelected) {\n const selectedGrid = document.getElementById(\n `${messageSelected.message.msg}-${format(\n new Date(messageSelected.timestamp),\n 'yyyy-MM-dd HH:MM:ss'\n )}`\n );\n\n if (selectedGrid) {\n selectedGrid.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n if (!messageSelected && div) {\n div.scrollTop = div.scrollHeight - div.clientHeight;\n } else\n window.location.href = `#CD${messageSelected?.message.msg}-${subHours(\n new Date(messageSelected?.timestamp || ''),\n 3\n )}`;\n }\n if (open) load();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, bot_name, customer]);\n\n function handleClickInfo(event: any) {\n setAnchorEl(event.currentTarget);\n }\n\n function handleClosePopover() {\n setAnchorEl(null);\n }\n\n function getMessageClass(row: Message) {\n let currClass = `${classes.msgContainer}`;\n if (row.messageType === 'outgoing') currClass += ` ${classes.botMsg}`;\n else currClass += ` ${classes.userMsg}`;\n\n if (messageSelected && row.message === messageSelected.message.msg)\n currClass += ` ${classes.selectedMsg}`;\n\n return currClass;\n }\n\n function groupMessagesByDay(\n currDate: number | Date,\n messagesByEveryDay: { day: string; rows: Message[] }[],\n row: Message\n ) {\n if (isToday(currDate)) {\n const index = messagesByEveryDay.findIndex(\n (m: { day: string }) => m.day === getTranslation('today')\n );\n\n if (index !== -1) messagesByEveryDay[index].rows.push(row);\n else\n messagesByEveryDay.push({ day: getTranslation('today'), rows: [row] });\n } else if (isYesterday(currDate)) {\n const index = messagesByEveryDay.findIndex(\n (m: { day: string }) => m.day === getTranslation('yesterday')\n );\n\n if (index !== -1) messagesByEveryDay[index].rows.push(row);\n else\n messagesByEveryDay.push({\n day: getTranslation('yesterday'),\n rows: [row],\n });\n } else {\n const formattedDate = format(currDate, dateConfigString, {\n locale: currLocale,\n });\n\n const index = messagesByEveryDay.findIndex(\n (m: { day: string }) => m.day === formattedDate\n );\n\n if (index !== -1) messagesByEveryDay[index].rows.push(row);\n else messagesByEveryDay.push({ day: formattedDate, rows: [row] });\n }\n }\n\n const renderMessagesByDate = useMemo(() => {\n const messagesByEveryDay: { day: string; rows: Message[] }[] = [];\n\n conversation.forEach((row) => {\n const currDate = new Date(row.timestamp);\n groupMessagesByDay(currDate, messagesByEveryDay, row);\n });\n\n if (messagesByEveryDay) {\n return messagesByEveryDay\n .map((messagesGroup) => (\n <>\n \n {messagesGroup.day}\n \n\n {messagesGroup.rows.map((row, index) => (\n \n \n {row.message}\n \n {hour(new Date(row.timestamp))}\n \n \n \n ))}\n \n ))\n // .reverse();\n } else return <>;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [conversation]);\n\n return (\n \n \n \n \n \n {getTranslation('modal.messageHistory.title')}\n \n \n \n \n \n \n {loading ? (\n \n \n \n ) : (\n \n \n \n \n {getTranslation('modal.messageHistory.subtitle')}\n \n \n \n setOpenFilter(true)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {getTranslation('modal.messageHistory.name')}\n {' '}\n {currentCustomer?.name ||\n getTranslation('modal.messageHistory.noData')}\n \n \n \n {getTranslation('modal.messageHistory.nickname')}{' '}\n {' '}\n {currentCustomer?.nickname ||\n getTranslation('modal.messageHistory.noData')}\n \n \n \n {' '}\n {getTranslation('modal.messageHistory.phone')}\n {' '}\n {currentCustomer?.phoneNumber ||\n getTranslation('modal.messageHistory.noData')}\n \n \n \n {getTranslation('modal.messageHistory.address')}\n \n {JSON.stringify(currentCustomer?.address) ||\n getTranslation('modal.messageHistory.noData')}\n \n \n \n {getTranslation('modal.messageHistory.firstMessage')}\n \n {formatDateHour(currentCustomer?.createdAt)}\n \n \n \n {getTranslation('modal.messageHistory.lastMessage')}\n \n {formatDateHour(currentCustomer?.updatedAt)}\n \n \n \n \n\n {openFilter && (\n setOpenFilter(false)}\n conversation={conversation}\n />\n )}\n\n \n {renderMessagesByDate}\n \n \n )}\n \n \n );\n}\n","import { Grid, makeStyles, Theme, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const ContainerDialog = styled(MttGrid)`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n overflow-y: auto;\n max-height: 65vh;\n`;\n\nexport const ContainerImage = styled(Grid)`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #ffff;\n`;\n\nexport const ContentContainer = styled(Grid)`\n overflow-y: auto;\n max-height: 65vh;\n\n table {\n thead {\n border-bottom: 2px solid #6c50a4;\n }\n\n tbody {\n tr {\n td {\n padding: 8px;\n button {\n color: #6c50a4ad;\n }\n }\n :hover {\n background: #6c50a4ad;\n td {\n color: #fff;\n button {\n color: #fff;\n }\n }\n }\n }\n }\n }\n`;\n\nexport const TagsContainer = styled(Grid)`\n margin-top: 20px;\n padding: 10px;\n`;\n\nexport const SearchTagContainer = styled(Grid)`\n width: 100%;\n display: flex;\n align-items: center;\n\n button {\n margin: 5px;\n width: 200px;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const ChipContainer = styled.div`\n max-width: 100px;\n\n div {\n margin: 3px;\n }\n`;\n\nexport const TagsList = styled(Grid)`\n display: flex;\n margin: 10px 8px;\n align-items: center;\n max-width: 100%;\n flex-wrap: wrap;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})``;\n\nexport const ModalFooter = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n`;\n\nexport const ContainerFooter = styled.div`\n align-items: center;\n justify-content: center;\n margin: 0 24px 16px 24px;\n\n .MuiTypography-body1 {\n color: #808080;\n }\n`;\n\nexport const ContainerMessage = styled.div`\n align-items: center;\n justify-content: center;\n margin-bottom: 4px;\n\n .MuiTypography-body1 {\n color: #6c50a4;\n font-weight: 500;\n }\n`;\n\nexport const ModalMessage = styled(Typography).attrs({})`\n display: flex;\n text-align: center;\n align-items: center;\n justify-content: center;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n table: {\n minWidth: 650,\n },\n appBar: {\n position: 'relative',\n background: theme.palette.primary.main,\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n}));\n","import React, { useEffect, useState } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Paper from '@material-ui/core/Paper';\nimport './styles.css';\nimport { ModalConversationsProps } from './types';\nimport { GetConversations } from 'services/ConversationService';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { Conversation } from 'models/Conversation';\nimport {\n AppBar,\n // Button,\n CircularProgress,\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n TextField,\n Toolbar,\n Typography,\n} from '@material-ui/core';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport ModalCustomer from '../ModalCustomer';\nimport { formatDateHour } from 'utils/Date';\nimport { useApp } from 'contexts/App/appContext';\nimport useTranslator from 'utils/hooks/Translator';\nimport * as S from './style';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalConversations(props: ModalConversationsProps) {\n const classes = S.useStyles();\n const { botName } = useFlow().state;\n const { open, handleClose } = props;\n const { dispatch: dispatchApp } = useApp();\n const [conversations, setConversations] = useState([]);\n const [openModal, setOpenModal] = useState(false);\n const [customer, setCustomer] = useState('');\n const [loading, setLoading] = useState(false);\n const [customerId, setCustomerId] = useState('');\n const [error, setError] = useState('');\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const { getTranslation } = useTranslator();\n\n const filteredConversations =\n customerId !== ''\n ? conversations.filter(\n (conversation) => conversation.customer === customerId\n )\n : conversations;\n\n useEffect(() => {\n async function load() {\n setLoading(true);\n const bot_name = botName || '';\n const result = await GetConversations({ bot_name }, dispatchApp);\n\n if (result.Success) {\n setConversations(result.Data.data);\n } else {\n setConversations([]);\n }\n setLoading(false);\n }\n if (open) load();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, botName]);\n\n const handleDetails = (currentCustomer: string) => () => {\n setCustomer(currentCustomer);\n setOpenModal(true);\n };\n\n const handleChangePage = (\n event: any,\n newPage: React.SetStateAction\n ) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (e: {\n target: { value: string | number };\n }) => {\n setRowsPerPage(+e.target.value);\n setPage(0);\n };\n\n return (\n <>\n \n \n \n \n \n {getTranslation('modal.conversationHistory.title')}\n \n {\n setPage(0);\n handleClose();\n }}\n aria-label=\"close\"\n >\n \n \n \n \n\n {loading ? (\n \n \n \n ) : (\n \n \n \n \n setCustomerId(e.target.value)}\n helperText={error || ''}\n error={!!error}\n onBlur={() => setError('')}\n />\n \n {/* \n {getTranslation('search')}\n */}\n \n \n \n \n \n \n \n \n {getTranslation('modal.conversationHistory.client')}\n \n \n {getTranslation('modal.conversationHistory.agent')}\n \n \n {getTranslation('modal.conversationHistory.createdAt')}\n \n \n {getTranslation('modal.conversationHistory.updatedAt')}\n \n \n \n \n {(rowsPerPage > 0\n ? filteredConversations.slice(\n page * rowsPerPage,\n page * rowsPerPage + rowsPerPage\n )\n : filteredConversations\n ).map((row) => (\n \n \n \n \n \n \n {row.customer}\n {row.bot}\n \n {formatDateHour(row.createdAt)}\n \n \n {formatDateHour(row.updatedAt)}\n \n \n ))}\n \n \n \n \n \n \n \n \n \n )}\n \n \n {openModal && (\n {\n setOpenModal(false);\n }}\n />\n )}\n \n );\n}\n","import React from 'react';\nimport { Snackbar } from '@material-ui/core';\nimport MuiAlert, { AlertProps } from '@material-ui/lab/Alert';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nconst ToastNotification = () => {\n const { state, dispatch } = useFlow();\n const { type, message, show, duration } = state.toastNotification;\n\n const localDuration = duration\n ? duration\n : type === 'error'\n ? null\n : duration || 4000;\n\n function handleCloseAlert(event?: React.SyntheticEvent, reason?: string) {\n if (reason === 'clickaway') {\n return;\n }\n\n dispatch({\n type: 'updateForm',\n data: {\n toastNotification: {\n ...state.toastNotification,\n message: '',\n show: false,\n },\n },\n });\n }\n\n function Alert(props: AlertProps) {\n return ;\n }\n return (\n \n \n {message}\n \n \n );\n};\n\nexport default ToastNotification;\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nexport const ContainerDialog = styled(MttGrid)`\n width: 100%;\n height: 100%;\n`;\n\nexport const ContainerHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n`;\n\nexport const ContainerBody = styled.div`\n padding: 0 16px;\n \n p{\n margin-bottom: 12px;\n }\n`;\n\nexport const ContainerFooter = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 16px;\n`;","import React, { useState } from 'react';\nimport {\n IconButton,\n TextField,\n CircularProgress,\n Typography,\n Button,\n} from '@material-ui/core';\nimport Dialog from '@material-ui/core/Dialog';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport {\n ContainerDialog,\n ContainerHeader,\n ContainerBody,\n ContainerFooter,\n} from './styles';\nimport { ModalDeleteGroupProps } from './types';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function ModalDeleteGroup(props: ModalDeleteGroupProps) {\n const { handleClose, groupName, handleDeleteGroup } = props;\n\n const [loading, setLoading] = useState(false);\n const [textConfirmation, setTextConfirmation] = useState('');\n const [errorTextConfirmation, setErrorTextConfirmation] = useState('');\n const { getTranslation } = useTranslator();\n\n const handleVerifyGroupName = () => {\n if (groupName !== textConfirmation) {\n setErrorTextConfirmation(getTranslation('modal.deleteGroup.error'));\n } else {\n setLoading(true);\n handleDeleteGroup();\n }\n };\n\n const changeTextConfirmation = (e: string) => {\n if (!!errorTextConfirmation) setErrorTextConfirmation('');\n setTextConfirmation(e);\n };\n\n return (\n \n \n \n \n {getTranslation('modal.deleteGroup.title')}\n \n \n \n \n \n \n

    \n {getTranslation('modal.deleteGroup.subtitle1')}\n {groupName}\n {getTranslation('modal.deleteGroup.subtitle2')}\n

    \n changeTextConfirmation(e.target.value)}\n autoFocus\n />\n
    \n \n \n {loading ? (\n \n ) : (\n `${getTranslation('modal.deleteGroup.button')}`\n )}\n \n \n
    \n
    \n );\n}\n","import styled from 'styled-components';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 40vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #dc1414;\n padding: 10px;\n`;\nexport const Error = styled.p`\n color: #dc1414;\n font-size: 14px;\n /* padding: 10px; */\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ul {\n list-style-type: none;\n }\n \n p {\n padding: 5px;\n text-align: center;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 16px 0;\n width: 100%;\n display: flex;\n justify-content: space-around;\n margin-top: 10px;\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n margin: 5px;\n`;\n\nexport const LineContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const NewKeyContainer = styled.div`\n margin-top: 40px;\n width: 100%;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);\n","import { IEntity } from 'models/Entity';\nimport { GetKeys, UpdateKeys } from 'services/AccessKeysService';\nimport { SaveEntities } from 'services/EntityService';\nimport { emptyFlow } from 'contexts/Flow/staticData';\nimport {\n SaveGroup,\n UpdateGroup,\n DeleteGroup,\n} from 'services/FlowService';\nimport { Key } from 'services/AccessKeysService/types';\nimport { IAppContextActions } from 'contexts/App/types';\n\ninterface IExportGroup {\n groupName: string;\n blocks: any;\n}\n\nasync function updatePrincipalGroup(\n botName: string,\n groups: IExportGroup[],\n dispatch: React.Dispatch\n) {\n const errors: string[] = [];\n const principal = groups.find((group) => group.groupName === 'principal');\n\n if (principal) {\n const blocks = principal.blocks;\n const updatePrincipalResponse = await UpdateGroup(\n {\n bot_name: botName || '',\n group_name: principal.groupName,\n blocks,\n },\n dispatch\n );\n if (!updatePrincipalResponse.Success)\n errors.push(\n updatePrincipalResponse.Message || 'Erro ao atualizar o grupo principal'\n );\n } else errors.push('Grupo principal não encontrado.');\n\n return errors;\n}\n\nasync function createAndUpdateGroups(\n botName: string,\n groups: IExportGroup[],\n groupsNames: string[],\n dispatch: React.Dispatch\n) {\n const errors: string[] = [];\n\n const groupsToCreate = groups.filter(\n (group) => !groupsNames.map((g) => g).includes(group.groupName)\n );\n\n const groupsToUpdate = groups.filter(\n (group) => groupsNames.map((g) => g).includes(group.groupName)\n );\n\n groupsToCreate.map(async (group) => {\n if (group.groupName !== 'principal') {\n const drawflow = emptyFlow;\n\n const createGroupResult = await SaveGroup(\n {\n bot_name: botName,\n group_name: group.groupName,\n request: {\n groups: [\n {\n drawflow,\n groupId: group.groupName,\n groupName: group.groupName,\n bot: botName,\n },\n ],\n },\n },\n dispatch\n );\n if (!createGroupResult.Success) {\n errors.push(\n createGroupResult.Message ||\n `Erro ao criar o grupo \"${group.groupName}\".`\n );\n } else {\n\t\t\t\tconst keys = Object.keys(group.blocks);\n const updateGroupResult = await UpdateGroup(\n {\n bot_name: botName,\n group_name: group.groupName,\n blocks: keys.length === 0 ? drawflow : group.blocks,\n },\n dispatch\n );\n\n if (!updateGroupResult.Success) {\n errors.push(\n updateGroupResult.Message ||\n `Erro ao atualizar o grupo \"${group.groupName}\".`\n );\n }\n }\n }\n });\n\n groupsToUpdate.map(async (group) => {\n if (group.groupName !== 'principal') {\n const updateGroupResult = await UpdateGroup(\n {\n bot_name: botName,\n group_name: group.groupName,\n blocks: group.blocks,\n },\n dispatch\n );\n\n if (!updateGroupResult.Success) {\n errors.push(\n updateGroupResult.Message ||\n `Erro ao atualizar o grupo \"${group.groupName}\".`\n );\n }\n }\n });\n\n return errors;\n}\n\nasync function removeNonExistingGroups(\n botName: string,\n groups: IExportGroup[],\n groupsNames: string[],\n dispatch: React.Dispatch\n) {\n const errors: string[] = [];\n const groupsToRemove = groupsNames.filter(\n (group) => !groups.map((g) => g.groupName).includes(group)\n );\n\n groupsToRemove.map(async (group) => {\n if (group !== 'principal') {\n const deleteGroupResponse = await DeleteGroup(\n {\n bot_name: botName,\n group_name: group,\n group_name_confirmation: group,\n },\n dispatch\n );\n\n if (!deleteGroupResponse.Success)\n errors.push(\n deleteGroupResponse.Message || 'Erro ao remover os grupos atuais.'\n );\n }\n });\n\n return errors;\n}\n\nasync function updateKeys(\n botName: string,\n importKeys: Key[],\n dispatch: React.Dispatch\n) {\n const errors = [];\n const getKeysResponse = await GetKeys(botName, dispatch);\n\n if (getKeysResponse.Success) {\n const keys: Key = {};\n let keysAndValues: Key = {};\n if (getKeysResponse.Data.data) {\n keysAndValues = getKeysResponse.Data.data.keys;\n }\n const currentKeys = Object.keys(keysAndValues);\n if (currentKeys) {\n let currentBotValues: Key[] = [];\n for (const key of currentKeys) {\n const element = keysAndValues[key as any];\n currentBotValues.push({ key, value: element });\n }\n\n const jsonKeys = Object.keys(importKeys);\n let jsonValues: Key[] = [];\n for (const key of jsonKeys) {\n const element = importKeys[key as any];\n jsonValues.push({ key, value: element });\n }\n\n jsonValues.map((value) => {\n const importedKeyExists = currentBotValues.find(\n (curr) => curr.key === value.key\n );\n if (!importedKeyExists) {\n currentBotValues.push({ key: value.key, value: '' });\n }\n return jsonValues;\n });\n\n for (let index = 0; index < currentBotValues.length; index++) {\n const indexKey = currentBotValues[index].key;\n const indexValue = currentBotValues[index].value;\n keys[indexKey] = indexValue;\n }\n const resultUpdateKeys = await UpdateKeys({ botName, keys }, dispatch);\n if (!resultUpdateKeys.Success)\n errors.push(\n resultUpdateKeys.Message || 'Erro ao atualizar as chaves de acesso.'\n );\n }\n } else\n errors.push(\n getKeysResponse.Message || 'Erro ao atualizar as chaves de acesso.'\n );\n\n return errors;\n}\n\nasync function updateEntities(\n botName: string,\n entities: IEntity[],\n dispatch: React.Dispatch\n) {\n const errors = [];\n const saveEntitiesResponse = await SaveEntities(\n {\n bot_name: botName,\n entities,\n },\n dispatch\n );\n\n if (!saveEntitiesResponse.Success)\n errors.push(\n saveEntitiesResponse.Message || 'Erro ao atualizar as variávies.'\n );\n return errors;\n}\n\nexport {\n createAndUpdateGroups,\n removeNonExistingGroups,\n updateKeys,\n updateEntities,\n updatePrincipalGroup,\n};\n","import { IAppContextActions } from 'contexts/App/types';\nimport { ItemDataFlow } from 'models/DataFlow';\nimport {\n DeleteFlexBlockRegister,\n SaveFlexBlock,\n} from 'services/FlexBlocksService';\nimport { FlexBlocksGroups } from 'services/FlexBlocksService/types';\n\ninterface IExportGroup {\n groupName: string;\n blocks: {\n drawflow: {\n Home: {\n data: {\n [key: string]: ItemDataFlow;\n };\n };\n };\n };\n}\n\ninterface BlockInfo {\n block_name: string;\n groups_used: FlexBlocksGroups[];\n}\n\nexport default async function flexGroupsTreatment(\n botName: string,\n flows: IExportGroup[],\n dispatch: React.Dispatch\n) {\n await DeleteFlexBlockRegister(botName, dispatch);\n\n const flexGroups = filterFlexGroups(flows);\n const flexBlocksNamesToFind = flexGroups.map((group) =>\n group.groupName.replace('flex-', '')\n );\n const flexBlocksFound = findFlexBlocksByGroupName(\n flows,\n flexBlocksNamesToFind\n );\n\n const blocksToSave = extractBlocksAndGroups(flexBlocksFound);\n\n blocksToSave.forEach(async (blockToSave) => {\n const { block_name, groups_used } = blockToSave;\n await SaveFlexBlock(\n {\n block_name,\n groups_used,\n bot_name: botName,\n },\n dispatch\n );\n });\n}\n\nfunction extractBlocksAndGroups(blocks: ItemDataFlow[]): BlockInfo[] {\n const result: Record = {};\n\n blocks.forEach((block) => {\n const block_name: string = block.data.name;\n\n if (result[block_name]) {\n result[block_name].groups_used.push({\n block_id: block.id,\n group_name: block.data.groupId,\n });\n } else {\n result[block_name] = {\n block_name,\n groups_used: [\n {\n group_name: block.data.groupId,\n block_id: block.id,\n },\n ],\n };\n }\n });\n\n return Object.values(result);\n}\n\nfunction filterFlexGroups(groups: IExportGroup[]) {\n return groups.filter((group) => group.groupName.startsWith('flex-'));\n}\n\nfunction findFlexBlocksByGroupName(\n groups: IExportGroup[],\n flexBlocksNamesToFind: string[]\n) {\n const foundBlocks: ItemDataFlow[] = [];\n flexBlocksNamesToFind.forEach((flexName) => {\n groups.forEach((group) => {\n const groupKeys = Object.keys(group.blocks.drawflow.Home.data);\n for (const key in groupKeys) {\n const currentBlock = group.blocks.drawflow.Home.data[groupKeys[key]];\n if (currentBlock && currentBlock.data.name === flexName) {\n foundBlocks.push(currentBlock);\n }\n }\n });\n });\n\n return foundBlocks;\n}\n","import React, { useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { IExportGroup, ModalBotImportErrorProps } from './types';\n\nimport { Dialog, Slide } from '@material-ui/core';\n\nimport {\n ContainerDialog,\n ContainerHeader,\n Button,\n ButtonContainer,\n ModalTitle,\n FieldContainer,\n Error,\n useStyles,\n} from './styles';\nimport { CircularProgress } from '@material-ui/core';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { Key } from 'services/AccessKeysService/types';\nimport { IEntity } from 'models/Entity';\nimport {\n updatePrincipalGroup,\n removeNonExistingGroups,\n createAndUpdateGroups,\n updateEntities,\n updateKeys,\n} from 'utils/ImportBot/ImportBotService';\nimport { useApp } from 'contexts/App/appContext';\nimport getTranslator from 'utils/hooks/Translator';\nimport flexGroupsTreatment from 'components/Flow/utils/FlexGroupsTreatment';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalBotImportError(props: ModalBotImportErrorProps) {\n const classes = useStyles();\n const { dispatch: dispatchApp } = useApp();\n const { state, toastNotification, loadFlow, dispatch } = useFlow();\n const { groupsNames } = state;\n const { handleClose, errors, open, handleOpen, botToRestore } = props;\n const [load /*setLoad*/] = useState(false);\n const { getTranslation } = getTranslator();\n\n const handleRecoverBot = async () => {\n if (botToRestore) {\n const drawflow = JSON.parse(botToRestore);\n const botName = drawflow.botName;\n const groups: IExportGroup[] = drawflow.groups;\n const entities: IEntity[] = drawflow.entities;\n const importKeys: Key[] = drawflow.accessKeys;\n handleClose();\n\n errors.splice(0, errors.length);\n dispatch({ type: 'updateForm', data: { loading: true } });\n\n const promisesResults = await Promise.all([\n await updatePrincipalGroup(botName || '', groups, dispatchApp),\n await removeNonExistingGroups(\n botName || '',\n groups,\n groupsNames,\n dispatchApp\n ),\n await createAndUpdateGroups(\n botName || '',\n groups,\n groupsNames,\n dispatchApp\n ),\n await updateEntities(botName || '', entities, dispatchApp),\n await updateKeys(botName || '', importKeys, dispatchApp),\n ]);\n\n errors.push(\n promisesResults[0][0],\n promisesResults[1][0],\n promisesResults[2][0],\n promisesResults[3][0],\n promisesResults[4][0]\n );\n const updatedGroupsNames = groups.map((group) => group.groupName);\n\n dispatch({\n type: 'updateForm',\n data: { groupsNames: updatedGroupsNames },\n });\n\n dispatch({ type: 'updateForm', data: { loading: false } });\n\n const requestErrors = errors\n .filter((error) => (typeof error !== undefined ? error : ''))\n .filter((error) => error !== '');\n\n if (requestErrors.length <= 0) {\n toastNotification(\n 'success',\n getTranslation('toast.success.agentRestore')\n );\n await flexGroupsTreatment(botName || '', groups, dispatchApp);\n\n await loadFlow(state.groupsNames[0], botName || '');\n } else {\n handleOpen();\n }\n }\n };\n\n return (\n \n \n \n \n Erro ao importar Bot!\n \n \n \n

    \n {errors && (\n

    \n Ocorreram os seguintes erros ao importar o bot:\n

      \n \n {errors.map((error) => {\n if (error) {\n return
    • - {error}
    • ;\n } else return <>;\n })}\n
      \n
    \n

    \n )}\n O bot não foi importado corretamente. Como gostaraia de prosseguir?\n

    \n
    \n\n \n \n Voltar Bot ao Estado Anterior\n {load && }\n \n\n \n Fechar\n {load && }\n \n \n
    \n \n );\n}\n","import styled from 'styled-components';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nimport {\n createStyles,\n Grid,\n makeStyles,\n Theme,\n Typography,\n} from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n position: relative;\n padding-top: 54px;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n\n /* padding: 8px 8px; */\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n align-items: center;\n justify-content: center;\n /* overflow-y: auto; */\n`;\n\nexport const Close = styled(MttGrid)`\n display: flex;\n justify-content: flex-end;\n max-height: 10px;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n padding: 10px;\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n height: 100%;\n display: flex;\n margin-top: 5px;\n max-height: 65vh;\n\n overflow-y: scroll;\n\n ul {\n list-style-type: none;\n }\n\n p {\n padding: 5px;\n text-align: center;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 16px 0;\n width: 100%;\n display: flex;\n justify-content: space-around;\n margin-top: 10px;\n`;\n\nexport const Button = styled(MttButton)`\n /* height: 50px; */\n margin: 5px;\n`;\n\nexport const LineContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const NewKeyContainer = styled.div`\n margin-top: 40px;\n width: 100%;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n toolbar: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n dialog: {\n background: '#F2F2F2',\n overflowY: 'hidden',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);\n","import styled from 'styled-components';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nimport { createStyles, Grid, makeStyles, Theme, Typography } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 40vw;\n height: 100%;\n\n padding: 8px 16px;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #dc1414;\n padding: 10px;\n`;\nexport const Error = styled.p`\n color: #dc1414;\n font-size: 14px;\n /* padding: 10px; */\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ul {\n list-style-type: none;\n }\n \n p {\n padding: 5px;\n text-align: center;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 10px 0;\n width: 100%;\n display: flex;\n justify-content: center;\n margin-top: 10px;\n\n button {\n margin: 5px;\n }\n`;\n\nexport const Button = styled(MttButton)`\n height: 50px;\n`;\n\nexport const LineContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const NewKeyContainer = styled.div`\n margin-top: 40px;\n width: 100%;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n dialog: {\n background: '#F2F2F2',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);","import React, { useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { ModalRestorerProps } from './types';\n\nimport { Dialog, Slide } from '@material-ui/core';\n\nimport {\n ContainerDialog,\n ContainerHeader,\n Button,\n ButtonContainer,\n ModalTitle,\n FieldContainer,\n useStyles\n} from './styles';\nimport { CircularProgress } from '@material-ui/core';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalConfirmRestore(props: ModalRestorerProps) {\n const classes = useStyles();\n const { handleClose, open, handleRestore } = props;\n const [load /*setLoad*/] = useState(false);\n\n return (\n \n \n \n \n Atenção!\n \n \n \n

    \n Ao continuar, o estado atual do bot será substituido pela versão anterior escolhida, deseja continuar?\n

    \n
    \n\n \n \n Fechar\n {load && }\n \n\n \n Restaurar\n {load && }\n \n \n
    \n \n );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { ModalRestoreBotProps } from './types';\n\nimport {\n AppBar,\n Box,\n CircularProgress,\n Collapse,\n Dialog,\n Grid,\n IconButton,\n Slide,\n Table,\n TableBody,\n TableCell,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n Toolbar,\n Tooltip,\n Typography,\n} from '@material-ui/core';\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport RestoreIcon from '@material-ui/icons/Restore';\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\n\nimport { subHours } from 'date-fns';\nimport { ContainerDialog, FieldContainer, useStyles } from './styles';\n\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { GetPublishBackup } from 'services/BotService';\nimport { useApp } from 'contexts/App/appContext';\nimport { BotToStringifyResponse } from 'services/BotService/types';\nimport { formatDateHour } from 'utils/Date';\nimport { Key } from 'services/AccessKeysService/types';\nimport { IEntity } from 'models/Entity';\nimport { IExportGroup } from 'utils/CreateBotObject';\nimport {\n updatePrincipalGroup,\n removeNonExistingGroups,\n createAndUpdateGroups,\n updateEntities,\n updateKeys,\n} from 'utils/ImportBot/ImportBotService';\nimport ModalConfirmRestore from './ModalConfirmRestore';\nimport getTranslator from 'utils/hooks/Translator';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalRestoreBot(props: ModalRestoreBotProps) {\n const classes = useStyles();\n const { state, dispatch, toastNotification, loadFlow } = useFlow();\n const { groupsNames, botName } = state;\n const { dispatch: dispatchApp } = useApp();\n\n const { open, handleClose } = props;\n const [openModalConfirmRestore, setOpenModalConfirmRestore] = useState(false);\n const [currentBot, setCurrentBot] = useState({\n bot: { entities: [], accessKeys: [], groups: [] },\n bot_name: '',\n saved_at: '',\n });\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const [publishHistory, setPublishHistory] = useState<\n BotToStringifyResponse[]\n >([]);\n const [publishHistoryTotal, setPublishHistoryTotal] = useState(0);\n const [selectedCollapseBot, setSelectedCollapseBot] = useState(-1);\n const [selectedCollapseGroup, setSelectedCollapseGroup] = useState(-1);\n const [selectedCollapseEntity, setSelectedCollapseEntity] = useState(-1);\n const [selectedCollapseAccessKey, setSelectedCollapseAccessKey] =\n useState(-1);\n\n const [loading, setLoading] = useState(false);\n const { getTranslation } = getTranslator();\n\n const load = useCallback(async () => {\n if (botName && open) {\n setLoading(true);\n\n const backupResponse = await GetPublishBackup(\n botName,\n dispatchApp,\n String(page * rowsPerPage),\n String(rowsPerPage)\n );\n if (backupResponse.Success) {\n setPublishHistory(backupResponse.Data.data);\n setPublishHistoryTotal(backupResponse.Data.pagination.total);\n }\n\n setLoading(false);\n }\n }, [botName, dispatchApp, page, rowsPerPage, open]);\n\n useEffect(() => {\n load();\n }, [botName, dispatchApp, load]);\n\n const handleChangeRowsPerPage = (e: {\n target: { value: string | number };\n }) => {\n setRowsPerPage(+e.target.value);\n setPage(0);\n };\n\n const handleChangePage = (\n event: any,\n newPage: React.SetStateAction\n ) => {\n setPage(newPage);\n };\n\n const handleImportBot = async (bot: BotToStringifyResponse) => {\n const groups: IExportGroup[] = bot.bot.groups;\n const entities: IEntity[] = bot.bot.entities;\n const importKeys: Key[] = bot.bot.accessKeys;\n\n let requestErrors = [];\n\n dispatch({ type: 'updateForm', data: { loading: true } });\n\n const resultUpdatePrincipal = await updatePrincipalGroup(\n botName || '',\n groups,\n dispatchApp\n );\n\n const resultRemoveGroups = await removeNonExistingGroups(\n botName || '',\n groups,\n groupsNames,\n dispatchApp\n );\n\n const resultCreateAndUpdateGroups = await createAndUpdateGroups(\n botName || '',\n groups,\n groupsNames,\n dispatchApp\n );\n\n const resultUpdateEntities = await updateEntities(\n botName || '',\n entities,\n dispatchApp\n );\n\n const resultUpdateKeys = await updateKeys(\n botName || '',\n importKeys,\n dispatchApp\n );\n\n requestErrors.push(\n resultUpdatePrincipal[0],\n resultRemoveGroups[0],\n resultCreateAndUpdateGroups[0],\n resultUpdateEntities[0],\n resultUpdateKeys[0]\n );\n\n const updatedGroupsNames = groups.map((group) => group.groupName);\n\n dispatch({\n type: 'updateForm',\n data: { groupsNames: updatedGroupsNames },\n });\n\n dispatch({ type: 'updateForm', data: { loading: false } });\n\n requestErrors = requestErrors\n .filter((error) => (typeof error !== undefined ? error : ''))\n .filter((error) => error !== '');\n\n if (requestErrors.length > 0) {\n toastNotification(\n 'error',\n getTranslation('toast.error.agentRestore')\n );\n } else {\n toastNotification(\n 'success',\n getTranslation('toast.success.agentRestore')\n );\n\n setOpenModalConfirmRestore(false);\n\n await loadFlow(state.groupsNames[0], botName || '');\n dispatch({ type: 'setIdGroup', data: { idGroup: state.groupsNames[0] } });\n }\n };\n\n const convertDate = (date: string) => {\n const toDate = new Date(date);\n const convertedDate = subHours(toDate, 3);\n return formatDateHour(convertedDate);\n };\n\n return (\n \n \n \n \n Versões anteriores: {botName}\n {\n handleClose();\n }}\n aria-label=\"close\"\n >\n \n \n \n \n {loading ? (\n \n \n \n ) : (\n \n \n \n \n \n Bot\n Data de Publicação\n Restaurar\n \n \n \n {publishHistory?.map((bot, index) => (\n \n \n \n {\n selectedCollapseBot !== index\n ? setSelectedCollapseBot(index)\n : setSelectedCollapseBot(-1);\n }}\n >\n {index === selectedCollapseBot ? (\n \n ) : (\n \n )}\n \n \n \n {bot.bot_name}\n \n \n {convertDate(bot.saved_at)}\n \n \n \n {\n setCurrentBot(bot);\n setOpenModalConfirmRestore(true);\n }}\n >\n \n \n \n \n \n \n \n \n \n
    \n \n \n {\n selectedCollapseGroup !== index\n ? setSelectedCollapseGroup(index)\n : setSelectedCollapseGroup(-1);\n }}\n >\n Grupos\n \n \n \n {bot.bot.groups[0].groupName}\n \n \n {bot.bot.groups\n .filter(\n (g) => g.groupName !== 'principal'\n )\n .map((g) => g.groupName)\n .sort()\n .map((group, groupIndex) => (\n \n \n {group}\n \n \n ))}\n \n \n \n \n {\n selectedCollapseEntity !== index\n ? setSelectedCollapseEntity(index)\n : setSelectedCollapseEntity(-1);\n }}\n >\n Variáveis\n \n {bot.bot.entities.map(\n (entity, entityIndex) => (\n \n \n {entity.name}\n \n \n )\n )}\n \n \n \n \n {\n selectedCollapseAccessKey !== index\n ? setSelectedCollapseAccessKey(index)\n : setSelectedCollapseAccessKey(-1);\n }}\n >\n Chaves de Acesso\n \n {Object.entries(bot.bot.accessKeys).map(\n (accessKey, accessKeyIndex) => (\n \n \n {accessKey}\n \n \n )\n )}\n \n \n \n \n
    \n \n \n \n \n \n ))}\n \n \n \n \n \n \n \n
    \n )}\n
    \n handleImportBot(currentBot)}\n handleClose={() => setOpenModalConfirmRestore(false)}\n />\n \n );\n}\n","import styled from 'styled-components';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\n\nimport {\n createStyles,\n Grid,\n makeStyles,\n Theme,\n Typography,\n} from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 30vw;\n height: 100%;\n\n /* padding: 8px 8px; */\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const Close = styled(MttGrid)`\n display: flex;\n justify-content: flex-end;\n max-height: 10px;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n padding: 10px;\n`;\n\nexport const FieldContainer = styled(Grid)`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ul {\n list-style-type: none;\n }\n\n p {\n padding: 5px;\n text-align: center;\n }\n`;\n\nexport const ButtonContainer = styled(Grid)`\n padding: 30px 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n\n button {\n margin: 5px;\n width: 100%;\n max-width: 150px;\n }\n`;\n\nexport const Button = styled(MttButton)`\n /* height: 50px; */\n /* margin-top: 10px; */\n`;\n\nexport const LineContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const NewKeyContainer = styled.div`\n margin-top: 40px;\n width: 100%;\n\n .MuiInputBase-input {\n outline: 0;\n }\n\n .MuiInputBase-input::-webkit-input-placeholder {\n opacity: 0.65;\n font-weight: 500;\n }\n`;\n\nexport const TextContainer = styled.div`\n height: 64px;\n\n margin-right: 10px;\n width: 100%;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n appBar: {\n position: 'relative',\n background: theme.palette.primary.main,\n },\n toolbar: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n dialog: {\n background: '#F2F2F2',\n },\n\n input: {\n background: '#FFFFFF',\n },\n })\n);\n","import React, { useState } from 'react';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { ModalImportExportBotProps } from './types';\n\nimport { AppBar, Dialog, Slide, Toolbar, Typography } from '@material-ui/core';\n\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport PublishIcon from '@material-ui/icons/Publish';\nimport RestoreIcon from '@material-ui/icons/Restore';\n\nimport ModalRestoreBot from './ModalRestoreBot'\n\nimport {\n ContainerDialog,\n Button,\n ButtonContainer,\n useStyles\n} from './styles';\n\nimport { CircularProgress } from '@material-ui/core';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nexport default function ModalImportExportBot(props: ModalImportExportBotProps) {\n const classes = useStyles();\n const [openModalRestore, setOpenModalRestore] = useState(false);\n const { open, handleImportBot, handleExportBot, handleClose } =\n props;\n const [load /*setLoad*/] = useState(false);\n\n return (\n \n \n \n \n \n Backup de Bot\n \n \n \n \n }\n >\n Importar\n {load && }\n \n\n }\n >\n Exportar\n {load && }\n \n\n setOpenModalRestore(true)}\n startIcon={}\n >\n Restaurar\n {load && }\n \n \n \n setOpenModalRestore(false)} />\n \n );\n}\n","import { IAppContextActions } from '../contexts/App/types';\nimport createBotObject from './CreateBotObject';\n\nexport default async function exportBot(\n botName: string,\n dispatch: React.Dispatch\n) {\n const botToStringify = await createBotObject(botName || '', dispatch);\n const documentHtml = document.getElementById('drawflow');\n\n const botReadyToExport =\n 'data:text/json;charset=utf-8,' +\n encodeURIComponent(JSON.stringify(botToStringify));\n\n if (botReadyToExport) {\n const dlAnchorElem = document.createElement('a');\n documentHtml?.appendChild(dlAnchorElem);\n if (dlAnchorElem) {\n dlAnchorElem.setAttribute('href', botReadyToExport);\n const dateGenerated = new Date();\n const dataFormated =\n dateGenerated.getDate() +\n '-' +\n dateGenerated.getMonth() +\n '-' +\n dateGenerated.getFullYear() +\n '-' +\n dateGenerated.getHours() +\n '-' +\n dateGenerated.getMinutes();\n dlAnchorElem.setAttribute(\n 'download',\n `dataflow-${botName}-${dataFormated}.json`\n );\n dlAnchorElem.click();\n dlAnchorElem.parentNode?.removeChild(dlAnchorElem);\n }\n }\n}\n","import { Grid, Typography } from '@material-ui/core';\nimport styled from 'styled-components';\n\nexport const Container = styled(Grid)`\n align-items: center;\n background: #fff;\n border-radius: 4px;\n box-shadow: 0px 11px 15px -7px rgb(0 0 0 / 20%),\n 0px 24px 38px 3px rgb(0 0 0 / 14%), 0px 9px 46px 8px rgb(0 0 0 / 12%);\n display: flex;\n flex-direction: column;\n padding: 16px 48px 16px 48px;\n width: 400px;\n text-align: center;\n`;\n\nexport const ModalTitle = styled(Typography).attrs({\n variant: 'h6',\n})`\n color: #6c50a4;\n padding-bottom: 8px;\n`;\n","import React, { useEffect } from 'react';\n\nimport { Dialog, Typography } from '@material-ui/core';\nimport { useApp } from 'contexts/App/appContext';\n\nimport * as S from './styles';\nimport useTranslator from 'utils/hooks/Translator';\n\nexport default function ModalUsedTab() {\n const { state, dispatch } = useApp();\n const { renderModalUsedTab } = state;\n const { getTranslation } = useTranslator();\n\n useEffect(() => {\n if (renderModalUsedTab) {\n dispatch({\n type: 'openModalUsedTab',\n data: { renderModalUsedTab: true },\n });\n }\n }, [dispatch, renderModalUsedTab]);\n\n return (\n \n \n {getTranslation('modal.usedTab.title')}\n {getTranslation('modal.usedTab.subtitle')}\n \n \n );\n}\n","import styled from 'styled-components';\n\nexport const Container = styled.div<{\n width: number;\n height: number;\n windowWidth: number;\n windowHeight: number;\n}>`\n position: fixed;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n min-width: 360px;\n min-height: 300px;\n\n width: ${(props) => props.width};\n height: ${(props) => props.height};\n\n max-width: ${(props) => `${props.windowWidth - props.windowWidth * 0.1}px`};\n max-height: ${(props) =>\n `${props.windowHeight - props.windowHeight * 0.1}px`};\n\n border-radius: 22px;\n\n background: #585858;\n background: linear-gradient(#646464, #585858, #2b2929, #201e1e);\n\n box-shadow: 0 5px 10px #646464;\n\n padding: 8px;\n\n .MuiIconButton-root {\n position: absolute;\n right: 5px;\n }\n\n z-index: 9999;\n overflow: hidden;\n resize: both;\n`;\n\nexport const ContainerHeader = styled.header`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n\n height: 60px;\n cursor: grab;\n\n font-size: 1.5rem;\n`;\n\nexport const ConsoleHeaderContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n padding: 16px;\n\n font-size: 1rem;\n\n .MuiSvgIcon-root {\n color: ${(props) =>\n props.theme.color === '#000000' ? 'rgba(0, 0, 0, 0.54)' : '#fff687'};\n }\n`;\n\nexport const IConsole = styled.div`\n width: 100%;\n height: 100%;\n\n border: 0;\n border-radius: 3px;\n\n background-color: ${(props) => props.theme.background};\n border: 1px solid black;\n line-height: 1.5em;\n overflow: auto;\n margin: 10px 5px 5px 5px;\n\n\tflex: 1;\n\n color: ${(props) => props.theme.color};\n font-family: 'Lucida Console', 'Courier New', monospace;\n font-size: 90%;\n\n p {\n word-break: break-word;\n padding: 8px 16px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n`;\n","import { useEffect, useState, useRef } from 'react';\nimport Pusher from 'pusher-js';\nimport * as S from './styles';\nimport { useFlow } from '../../contexts/Flow/flowContext';\nimport Draggable, { DraggableData } from 'react-draggable';\nimport { IconButton } from '@material-ui/core';\nimport Brightness2Icon from '@material-ui/icons/Brightness2';\nimport WbSunnyIcon from '@material-ui/icons/WbSunny';\nimport CloseIcon from '@material-ui/icons/Close';\n\nconst API_KEY = 'd90b6724351cbd1d98e6';\nconst API_CLUSTER = 'us2';\n\nconst Themes = {\n lightTheme: {\n name: 'light',\n color: '#000000',\n background: '#fff',\n },\n\n darkTheme: {\n name: 'dark',\n color: '#00ff2b',\n background: '#000',\n },\n};\n\nexport function Debug(props: { open: boolean; handleCloseDebug: () => void }) {\n const { open, handleCloseDebug } = props;\n const { botName } = useFlow().state;\n const [currTheme, setCurrTheme] = useState(getTheme());\n const nodeRef = useRef(null);\n const containerRef = document.getElementById('container');\n const [containerDimensions, setContainerDimensions] = useState<{\n width: number;\n height: number;\n }>({ width: 360, height: 500 });\n\n const [position, setPosition] = useState(\n JSON.parse(\n localStorage.getItem('debugPosition') ||\n JSON.stringify({\n x: 0,\n y: 0,\n })\n )\n );\n\n const zeroPad = (num: number, places: number) =>\n String(num).padStart(places, '0');\n\n useEffect(() => {\n const widthAndHeight = localStorage.getItem('consoleWidthAndHeight');\n if (widthAndHeight) {\n setContainerDimensions(JSON.parse(widthAndHeight));\n } else {\n localStorage.setItem(\n 'consoleWidthAndHeight',\n JSON.stringify({\n width: 360,\n height: 300,\n })\n );\n }\n }, []);\n\n useEffect(() => {\n const consoleMsgContainer = document.getElementById('console_data');\n if (botName) {\n var pusher = new Pusher(API_KEY, {\n cluster: API_CLUSTER,\n });\n\n if (pusher) {\n var channel = pusher.subscribe(botName);\n if (consoleMsgContainer) {\n let msg;\n\n channel.bind('console_log', function (data: { message: string }) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n msg = JSON.stringify(data.message);\n msg = msg.replace(/\\r\\n|\\n|\\r/g, '
    ');\n const consoleMsg =\n consoleMsgContainer.innerHTML + '
    ' + timeStamp() + '> ' + msg;\n consoleMsgContainer.innerHTML = consoleMsg;\n });\n\n channel.bind('console_log_var', function (data: { message: string }) {\n msg = JSON.stringify(data.message);\n const parsedMsg = JSON.parse(data.message);\n msg = msg.replace(/\\t\\r\\n/, '
    ');\n\n consoleMsgContainer.innerHTML +=\n '
    ' + timeStamp() + '> VARIABLES
    ';\n const keys = Object.keys(parsedMsg);\n\n for (const key of keys) {\n consoleMsgContainer.innerHTML += `${key}: ${JSON.stringify(\n parsedMsg[key]\n )}
    `;\n }\n });\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [botName]);\n\n function setTheme(theme: {\n name: string;\n color: string;\n background: string;\n }) {\n setCurrTheme(theme);\n localStorage.setItem('debuggerTheme', theme.name);\n }\n\n function timeStamp() {\n let timestamp = new Date();\n return (\n zeroPad(timestamp.getDate(), 2) +\n '/' +\n zeroPad(timestamp.getMonth() + 1, 2) +\n '/' +\n timestamp.getFullYear() +\n '#' +\n zeroPad(timestamp.getHours(), 2) +\n ':' +\n zeroPad(timestamp.getMinutes(), 2) +\n ':' +\n zeroPad(timestamp.getSeconds(), 2)\n );\n }\n\n function getTheme() {\n const lastTheme = localStorage.getItem('debuggerTheme') || 'dark';\n\n if (lastTheme === 'dark') return Themes.darkTheme;\n else return Themes.lightTheme;\n }\n\n function handleClose() {\n const currDimensions = localStorage.getItem('consoleWidthAndHeight');\n\n if (currDimensions) {\n const parsedDimensions = JSON.parse(currDimensions);\n\n const consoleWidthAndHeight = {\n width: containerRef?.style.width || parsedDimensions.width,\n height: containerRef?.style.height || parsedDimensions.height,\n };\n\n localStorage.setItem(\n 'consoleWidthAndHeight',\n JSON.stringify(consoleWidthAndHeight)\n );\n }\n handleCloseDebug();\n }\n\n function handleStopDrag(data: DraggableData) {\n localStorage.setItem(\n 'debugPosition',\n JSON.stringify({\n x: data.lastX,\n y: data.lastY,\n })\n );\n setPosition({\n x: data.lastX,\n y: data.lastY,\n });\n }\n\n return open ? (\n handleStopDrag(data)}\n nodeRef={nodeRef}\n bounds={'body'}\n handle={'header'}\n >\n \n \n LLEGO - Agent Console\n handleClose()}>\n \n \n \n \n \n Agent Console\n \n setTheme(\n currTheme === Themes.lightTheme\n ? Themes.darkTheme\n : Themes.lightTheme\n )\n }\n >\n {currTheme === Themes.lightTheme ? (\n \n ) : (\n \n )}\n \n \n

    \n
    \n \n \n ) : (\n <>\n );\n}\n","import styled from 'styled-components';\n\nexport const Status = styled.div<{ bgColor: string }>`\n background: ${(props) => props.bgColor};\n\n border-radius: 50%;\n min-width: 14px !important;\n height: 14px !important;\n\n margin-right: 6px;\n`;\n\nexport const StatusDiv = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const EmailIcons = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n margin-left: 64px;\n`;\n","import styled from 'styled-components';\nimport { Grid, makeStyles, Theme } from '@material-ui/core';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport { themeDefault } from 'themes/DefaultTheme';\n\nexport const ContainerDialog = styled(MttGrid)`\n overflow-y: hidden;\n\n height: 100%;\n margin-top: 64px;\n padding: 12px;\n\n .MuiAppBar-colorPrimary {\n background-color: ${themeDefault.palette.primary.main};\n position: absolute;\n }\n\n .MuiOutlinedInput-input {\n background-color: #fff;\n }\n\n .MuiFormControl-root {\n background-color: #fff;\n }\n\n .MuiToolbar-root {\n justify-content: space-between;\n }\n\n .MuiPaper-elevation1 {\n box-shadow: none;\n }\n`;\n\nexport const GridSearch = styled(MttGrid)`\n margin-top: 16px;\n`;\n\nexport const NewCampaignContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nexport const NewCampaignFields = styled.div`\n height: 85%;\n overflow-x: hidden;\n padding-right: 16px;\n`;\n\nexport const StyledGridButtons = styled(MttGrid).attrs({\n className: 'grayButtonMaterial',\n})`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n\n margin-top: 16px;\n\n .MuiButton-containedPrimary {\n height: 56px;\n }\n`;\n\nexport const ContentContainer = styled(Grid)`\n overflow-y: auto;\n padding: 20px;\n margin-top: 16px;\n`;\n\nexport const HeaderButtonsContainer = styled.div`\n .MuiButton-outlined {\n margin-right: 16px;\n max-height: 30px;\n }\n\n .MuiButton-contained {\n width: auto;\n }\n`;\n\nexport const SearchAndTableContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const StyledRightButtons = styled(MttGrid)`\n width: 360px;\n\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const TextContainer = styled(MttGrid)<{ autoWidth?: boolean; autoheight?: boolean }>`\n width: ${(props) => (!props.autoWidth ? '100%' : 'auto')};\n height: ${(props) => (!props.autoheight ? '56px' : 'auto')};\n min-height: 56px;\n padding: 8px;\n`;\n\nexport const BoxContainer = styled.div`\n display: flex;\n align-items: center;\n padding: 4px;\n`;\n\nexport const ContainerList = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nexport const ContainerHeader = styled(MttGrid)`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .MuiIconButton-root {\n padding: 4px;\n margin: 0 12px;\n }\n\n .MuiButton-contained {\n height: 32px;\n\n color: #ffffff;\n background-color: #34ac26;\n\n &:hover {\n background-color: #2d9421;\n }\n }\n`;\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n appBar: {\n position: 'relative',\n background: theme.palette.primary.main,\n },\n title: {\n flex: 1,\n },\n table: {\n minWidth: 650,\n margin: 'auto',\n boxShadow: 'none',\n height: 'auto',\n },\n tableContainer: {\n height: '60vh',\n marginTop: 24,\n },\n tableFooter: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n loadingContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 32,\n },\n}));\n","export interface ITemplate {\n _id?: string;\n bot_name: string;\n name: string;\n channel: ITemplateChannels;\n status: ITemplateStatus;\n creation_date: Date;\n description: string;\n language: ITemplateLanguages;\n\n\n payload_message: IPayloadMessage;\n}\n\nexport interface IPayloadMessage {\n bot: IPayloadBot;\n template: IPayloadTemplate | null;\n text?: string;\n}\n\ninterface IPayloadBot {\n bot_name: string;\n group: string;\n block: string;\n}\n\nexport interface IPayloadTemplate {\n name: string;\n components: ITemplateComponents[];\n language?: ITemplateLanguages;\n category?: ITemplateCategories;\n example?: string;\n}\n\ntype TemplateComponentTypes =\n | 'BODY'\n | 'HEADER'\n | 'FOOTER'\n | 'BUTTONS'\n | 'IMAGE';\n\nexport type TemplateComponentFormat =\n | 'NONE'\n | 'TEXT'\n | 'IMAGE'\n | 'DOCUMENT'\n | 'VIDEO';\n\nexport interface ITemplateComponents {\n type: TemplateComponentTypes;\n text?: string;\n format?: TemplateComponentFormat;\n example?: any;\n buttons?: ITemplateButton[];\n}\n\nexport type ITemplateButtonTypes =\n | 'NONE'\n | 'PHONE_NUMBER'\n | 'URL'\n | 'QUICK_REPLY';\n\nexport type ITemplateButtonFields = keyof ITemplateButton;\nexport interface ITemplateButton {\n type: ITemplateButtonTypes;\n text: string | null;\n url: string | null;\n phone_number: string | null;\n}\n\nexport type ITemplateChannels =\n | 'whatsapp'\n | 'email'\n | 'sms'\n | 'falazap'\n | 'ura';\n\nexport type ITemplateStatus =\n | 'approved'\n | 'rejected'\n | 'pending'\n | 'in_appeal'\n | 'pending_deletion'\n | 'deleted'\n | 'disabled'\n | 'paused'\n | 'limit_exceeded';\n\nexport type ITemplateLanguages = 'es_US' | 'pt_BR' | 'es';\n\nexport type ITemplateCategories =\n | 'MARKETING'\n | 'OTP'\n | 'UTILITY';\n\nexport interface IGetTemplatesRequest\n extends Pick {}\n\nexport interface IGetTemplatesResponse {\n data: ITemplate[];\n}\n\nexport interface IGetOneTemplateRequest\n extends Pick {}\n\nexport interface IGetOneTemplateResponse {\n data: ITemplate;\n}\n\nexport interface ICreateTemplateRequest extends ITemplate {\n already_in_meta?: boolean;\n}\n\nexport interface ICreateTemplateResponse {\n data: ITemplate;\n}\n\nexport interface IUpdateTemplateRequest extends ITemplate {}\n\nexport interface IUpdateTemplateResponse {\n data: ITemplate;\n}\n\nexport interface IDeleteTemplateRequest\n extends Pick {}\n\nexport interface IGetTemplateOnMetaRequest\n extends Pick {}\nexport interface IGetTemplateOnMetaResponse {\n data: TemplateOnMeta;\n}\ninterface TemplateOnMeta {\n category: ITemplateCategories;\n components: ITemplateComponents[];\n text: string;\n type: TemplateComponentTypes;\n id: string;\n language: string;\n name: string;\n status: string;\n}\n\nexport const emptyTemplate: ITemplate = {\n bot_name: '',\n payload_message: {\n bot: {\n bot_name: '',\n group: '',\n block: '',\n },\n template: {\n name: '',\n category: 'MARKETING',\n components: [],\n example: '',\n language: 'pt_BR',\n },\n },\n name: '',\n channel: 'whatsapp',\n status: 'pending',\n creation_date: new Date(),\n description: '',\n language: 'pt_BR',\n \n};\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from 'services/RequestService';\nimport { IBaseResponse } from 'services/RequestService/Response';\nimport {\n ICreateTemplateResponse,\n IDeleteTemplateRequest,\n IGetTemplatesResponse,\n IGetOneTemplateRequest,\n IGetOneTemplateResponse,\n IUpdateTemplateResponse,\n IGetTemplatesRequest,\n ICreateTemplateRequest,\n IUpdateTemplateRequest,\n IGetTemplateOnMetaRequest,\n IGetTemplateOnMetaResponse,\n} from './types';\n\n\nconst templateAction = 'templates';\nconst botsAction = 'bots';\n\nexport const GetTemplates = async (\n request: IGetTemplatesRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${botsAction}/${request.bot_name}/${templateAction}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetOneTemplate = async (\n request: IGetOneTemplateRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${templateAction}/${request._id}`;\n return await json>(\n 'GET',\n action,\n dispatch\n );\n};\n\nexport const GetTemplateStatus = async (\n request: IGetOneTemplateRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${templateAction}/${request._id}/status`;\n return await json('GET', action, dispatch);\n};\n\nexport const CreateTemplate = async (\n request: ICreateTemplateRequest,\n dispatch: React.Dispatch\n) => {\n const action = request.already_in_meta\n ? `${botsAction}/${request.bot_name}/${templateAction}?already_in_meta=true`\n : `${botsAction}/${request.bot_name}/${templateAction}`;\n return await json>(\n 'POST',\n action,\n dispatch,\n request\n );\n};\n\nexport const UpdateTemplate = async (\n request: IUpdateTemplateRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${templateAction}/${request._id}`;\n return await json>(\n 'PATCH',\n action,\n dispatch,\n request\n );\n};\n\nexport const DeleteTemplate = async (\n request: IDeleteTemplateRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${templateAction}/${request._id}`;\n return await json>('DELETE', action, dispatch);\n};\n\nexport const GetTemplateOnMeta = async (\n request: IGetTemplateOnMetaRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${botsAction}/${request.bot_name}/${templateAction}/meta/${request.name}/`;\n return await json('GET', action, dispatch);\n};\n","import { makeStyles, Theme } from '@material-ui/core';\nimport styled from 'styled-components';\nimport { themeDefault } from 'themes/DefaultTheme';\n\nexport const NewCampaignFields = styled.div<{ newWidth?: string }>`\n overflow-x: hidden;\n width: ${(props) => props.newWidth};\n`;\nexport const NewCampaignFieldsContainer = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const NewCampaignContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: calc(100% - 74px);\n\n overflow: auto;\n`;\n\nexport const MessageButtonsContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n\n margin: 0;\n padding: 0 6px;\n`;\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n selectFileButton: {\n maxWidth: 225,\n height: '50px',\n background: `${themeDefault.palette.primary.main}`,\n color: '#fff',\n\n '&:hover': {\n background: '#512d9a',\n color: '#fff',\n },\n },\n}));\n","export default __webpack_public_path__ + \"static/media/whats-bg.ab8484d1.png\";","import styled from 'styled-components';\nimport { NewCampaignFields } from '../styles';\nimport backgroundImg from 'components/Icons/whats-bg.png';\n\nexport const NewTemplatePreview = styled(NewCampaignFields)`\n overflow-x: hidden;\n width: 25%;\n\n background: url(${backgroundImg});\n background-size: cover;\n border-radius: 8px;\n\n margin: 12px 0 12px 4px;\n padding: 12px;\n`;\n\nexport const PreviewContainer = styled.div`\n position: absolute;\n`;\n\nexport const MessagePreviewContainer = styled.div`\n width: fit-content;\n max-width: 284px;\n`;\n\nexport const MessagePreview = styled.div`\n display: flex;\n\n flex-direction: column;\n padding: 8px;\n\n margin: 4px 8px;\n\n min-width: 94px;\n background-color: #fff;\n\n border-radius: 6px;\n\n position: relative;\n\n border-bottom: 1px solid #c2c2c2;\n\n :before {\n content: '';\n width: 0px;\n height: 0px;\n position: absolute;\n border-left: 6px solid transparent;\n border-right: 6px solid #fff;\n border-top: 6px solid #fff;\n border-bottom: 6px solid transparent;\n left: -6px;\n top: 0px;\n }\n`;\n\nexport const MessageContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const MessageHeader = styled.span`\n font-weight: bold;\n font-size: 16px;\n\n img {\n width: -moz-available;\n width: -webkit-fill-available;\n }\n`;\n\nexport const MessageBody = styled.span<{ hasContent: boolean }>`\n padding: ${(props) => (props.hasContent ? '4px 0' : '8px 0')};\n\n white-space: pre-wrap;\n word-break: break-word;\n`;\n\nexport const MessageFooter = styled.span<{ hasContent: boolean }>`\n color: #00000073;\n padding-bottom: ${(props) => (props.hasContent ? '4px' : '0px')};\n`;\n\nexport const StyledCall = styled.div`\n display: flex;\n flex-direction: column;\n border-top: 1px solid #c2c2c2;\n padding: 8px 4px 4px 4px;\n align-items: center;\n justify-content: center;\n color: #00a5f4;\n`;\n\nexport const UrlAndNumber = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n span {\n margin-left: 4px;\n }\n`;\n\nexport const StyledQuickReply = styled.div`\n width: auto;\n flex: 1;\n`;\n\nexport const QuickAnswerButtonContainer = styled.div`\n min-width: 75px;\n width: inherit;\n\n margin: 2px;\n\n border-radius: 6px;\n border-bottom: 1px solid #c2c2c2;\n\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n\n background-color: #fff;\n color: #00a5f4;\n font-size: 12px;\n height: 34px;\n line-height: 20px;\n padding: 0 16px;\n white-space: pre-wrap;\n`;\n","import { MessageButtonsContainer } from '../styles';\nimport * as S from './styles';\n\nimport CallIcon from '@material-ui/icons/Call';\nimport OpenInNewIcon from '@material-ui/icons/OpenInNew';\nimport { ITemplateButtons } from '../types';\nimport useTranslator from 'utils/hooks/Translator';\nimport { ITemplateComponents } from 'services/CampaignService/TemplatesService/types';\n\ninterface PreviewProps {\n header: ITemplateComponents;\n body: string;\n footer: string;\n templateButtons: ITemplateButtons;\n\timgUrl: string;\n}\n\nexport function Preview({\n templateButtons,\n header,\n body,\n footer,\n\timgUrl\n}: PreviewProps) {\n const { getTranslation } = useTranslator();\n\n const isImage = header.format === 'IMAGE';\n const previewHeader = isImage ? imgUrl : header.text || '';\n\n\treturn (\n \n \n {getTranslation('preview')}\n \n \n \n \n {isImage ? (\n \"\"\n ) : (\n <>{previewHeader || ''}\n )}\n \n {body}\n \n {footer}\n \n \n {templateButtons.type === 'PHONE_NUMBER' && (\n \n {templateButtons.buttons.map((button) => (\n \n {button.type === 'URL' ? (\n \n ) : (\n \n )}\n {button.text}\n \n ))}\n \n )}\n \n {templateButtons.type === 'QUICK_REPLY' && (\n \n {templateButtons.buttons.map(\n (btn) =>\n templateButtons.buttons.length <= 3 && (\n \n \n {btn.text}\n \n \n )\n )}\n \n )}\n \n \n \n );\n}\n","const payloadURL = process.env.REACT_APP_S3_URL_PUBLIC || '';\nconst payloadApiKey = process.env.REACT_APP_S3_API_KEY || '';\nconst payloadBucket = process.env.REACT_APP_S3_BUCKET || '';\n\nexport async function getFileFromUrl(url: string, defaultType = 'image/jpeg') {\n const name = 'headerImage';\n const response = await fetch(url);\n const data = await response.blob();\n return new File([data], name, {\n type: data.type || defaultType,\n });\n}\n\nexport function getFormData(file: File) {\n const formData = new FormData();\n\n formData.append('file', file);\n formData.append('bucket', payloadBucket);\n return formData;\n}\n\nexport async function handleFileUpload(file: File) {\n const formData = getFormData(file);\n\n const payloadResponse = await fetch(payloadURL, {\n method: 'POST',\n\n headers: {\n 'X-API-Key': payloadApiKey,\n },\n\n body: formData,\n });\n\n return await payloadResponse.json();\n}\n","import {\n FormHelperText,\n OutlinedInput,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { BoxContainer, TextContainer } from '../../../styles';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport { useStyles } from '../styles';\nimport useTranslator from 'utils/hooks/Translator';\nimport { Dispatch, SetStateAction } from 'react';\nimport { IComponents, ITemplateError } from '..';\ninterface IFormFalazap {\n setTemplateComponents: (value: SetStateAction) => void;\n templateComponents: IComponents;\n file?: File;\n setImportFile: Dispatch>;\n isNotEditable: boolean;\n error: ITemplateError;\n}\n\nexport const FormFalazap = ({\n setTemplateComponents,\n templateComponents,\n setImportFile,\n file,\n isNotEditable,\n error,\n}: IFormFalazap) => {\n const { getTranslation } = useTranslator();\n const classes = useStyles();\n return (\n <>\n \n \n \n \n \n \n setTemplateComponents((prev) => ({\n ...prev,\n header: {\n ...prev.header,\n text: e.target.value,\n },\n }))\n }\n inputProps={{ maxLength: 60 }}\n />\n {error.falazapTitle && (\n \n {getTranslation('validations.required', {\n field: getTranslation('title'),\n })}\n \n )}\n \n \n
    \n \n
    \n \n \n \n setTemplateComponents((prev) => ({\n ...prev,\n image: e.target.value,\n }))\n }\n />\n \n setImportFile(true)}\n >\n {getTranslation('modal.templates.uploadImage')}\n \n \n
    \n \n
    \n \n \n \n setTemplateComponents((prev) => ({\n ...prev,\n body: e.target.value,\n }))\n }\n />\n \n \n <>\n \n );\n};\n","import { ChangeEvent, useEffect, useState } from 'react';\n\nimport {\n TextField,\n CircularProgress,\n Typography,\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n InputAdornment,\n OutlinedInput,\n IconButton,\n FormHelperText,\n} from '@material-ui/core';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport AddIcon from '@material-ui/icons/Add';\n\nimport CheckIcon from '@material-ui/icons/Check';\n\nimport useTranslator from 'utils/hooks/Translator';\n\nimport {\n emptyTemplate,\n IPayloadTemplate,\n ITemplate,\n ITemplateButton,\n ITemplateButtonFields,\n ITemplateButtonTypes,\n ITemplateCategories,\n ITemplateChannels,\n ITemplateComponents,\n ITemplateLanguages,\n TemplateComponentFormat,\n} from 'services/CampaignService/TemplatesService/types';\n\nimport { ITemplateButtons, SaveOrEditTemplateProps } from './types';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport {\n CreateTemplate,\n GetTemplateOnMeta,\n UpdateTemplate,\n} from 'services/CampaignService/TemplatesService';\nimport { GetBotsGroups } from 'services/BotService';\nimport { GetGroup } from 'services/FlowService';\nimport {\n StyledGridButtons,\n StyledRightButtons,\n BoxContainer,\n TextContainer,\n} from '../../styles';\n\nimport {\n NewCampaignContainer,\n NewCampaignFields,\n NewCampaignFieldsContainer,\n useStyles,\n} from './styles';\nimport Close from '@material-ui/icons/Close';\nimport { Preview } from './Preview';\nimport { validateTemplateName } from 'utils/String';\nimport { getFileFromUrl, handleFileUpload } from 'utils/uploadFile';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\nimport { FormFalazap } from './FormFalazap';\n\nexport interface ITemplateError {\n name: string;\n organization: string;\n message?: string;\n body?: string;\n falazapTitle?: string;\n}\n\nexport interface IComponents {\n body: string;\n footer: string;\n header: ITemplateComponents;\n buttons: ITemplateButtons;\n image: string | File;\n}\n\nexport function SaveOrEditTemplate({\n handleClose,\n currentTemplate,\n}: SaveOrEditTemplateProps) {\n const { hasPermissionToAction } = usePermissions();\n const { getTranslation } = useTranslator();\n const { dispatch: dispatchApp } = useApp();\n const { toastNotification, state } = useFlow();\n const { botName } = state;\n const [error, setError] = useState({\n name: '',\n organization: '',\n });\n const bot_name = botName || '';\n const classes = useStyles();\n const [importFile, setImportFile] = useState(false);\n\n const [template, setTemplate] = useState(\n {\n ...currentTemplate,\n payload_message: {\n ...currentTemplate.payload_message,\n bot: {\n ...currentTemplate.payload_message.bot,\n bot_name,\n },\n },\n } || emptyTemplate\n );\n\n const [loading, setLoading] = useState(false);\n\n const [groups, setGroups] = useState([]);\n const [blocks, setBlocks] = useState([]);\n const [file, setFile] = useState();\n\n const currentHeader = template.payload_message.template?.components.find(\n (c) => c.type === 'HEADER'\n );\n\n const currentButtons = template.payload_message.template?.components.find(\n (c) => c.type === 'BUTTONS'\n );\n\n const [templateButtons, setTemplateButtons] = useState({\n type: getButtonType(currentButtons),\n buttons: currentButtons?.buttons || [],\n });\n\n const currentBody = template.payload_message.template?.components.find(\n (c) => c.type === 'BODY'\n );\n const currentIMAGE = template.payload_message.template?.components.find(\n (c) => c.type === 'IMAGE'\n );\n\n const currentFooter = template.payload_message.template?.components.find(\n (c) => c.type === 'FOOTER'\n );\n\n const header = currentHeader\n ? {\n ...currentHeader,\n text: !!currentHeader.text?.trim() ? currentHeader.text : '',\n }\n : ({\n text: '',\n type: 'HEADER',\n format: 'NONE',\n } as ITemplateComponents);\n\n const [templateComponents, setTemplateComponents] = useState({\n body: currentBody?.text || '',\n footer: currentFooter?.text || '',\n header,\n buttons: templateButtons,\n image: currentIMAGE?.text || '',\n });\n\n const [imageUrl, setImageUrl] = useState(\n templateComponents.header.text || ''\n );\n const [isTemplateOnMeta, setIsTemplateOnMeta] = useState(false);\n\n const isNotEditable = !hasPermissionToAction({\n company: state.companyName!,\n agent: state.botName!,\n action: ['communication_guideline:write'],\n });\n\n const isWhatsApp = template.channel === 'whatsapp';\n const isFalazap = template.channel === 'falazap';\n const isSms = template.channel === 'sms';\n\n const buttonsLimit =\n templateButtons.type === 'QUICK_REPLY'\n ? 3\n : templateButtons.type === 'PHONE_NUMBER'\n ? 2\n : 0;\n\n useEffect(() => {\n getGroups();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (template.payload_message.bot.group)\n handleChangeGroup(template.payload_message.bot.group);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (importFile) {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n uploadInput.type = 'file';\n uploadInput.accept = 'application/csv';\n uploadInput.onchange = async (e: any) => {\n const file = e.target.files?.item(0);\n if (file.type === 'image/jpeg' || file.type === 'image/png') {\n const reader = new FileReader();\n reader.readAsText(file, 'UTF-8');\n setFile(file);\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidFileFormat')\n );\n }\n };\n\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n setImportFile(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [importFile]);\n\n useEffect(() => {\n if (!file) return;\n const objectUrl = URL.createObjectURL(file);\n setImageUrl(objectUrl);\n\n return () => URL.revokeObjectURL(objectUrl);\n }, [file]);\n\n async function getGroups() {\n const response = await GetBotsGroups({ bot_name }, dispatchApp);\n\n if (response.Success && response.Data) {\n const flows = response.Data.data;\n\n const principal = flows.find((group) => group === 'principal');\n\n if (principal) {\n const updatedGroups = [\n principal,\n ...flows\n .filter((group) => group !== 'principal')\n .map((group) => group)\n .sort(),\n ];\n setGroups(updatedGroups);\n }\n }\n }\n\n function close() {\n setTemplate(emptyTemplate);\n handleClose();\n }\n\n async function verifyTemplateOnMeta() {\n // if (template.organization) {\n const response = await GetTemplateOnMeta({ ...template }, dispatchApp);\n\n if (response.Success && response.Data && response.Data.data) {\n const responseTemplate = response.Data.data;\n\n const responseBody =\n responseTemplate.components.find((c) => c.type === 'BODY')?.text ||\n templateComponents.body;\n\n const responseHeader =\n responseTemplate.components.find((c) => c.type === 'HEADER') ||\n templateComponents.header;\n\n const responseFooter =\n responseTemplate.components.find((c) => c.type === 'FOOTER')?.text ||\n templateComponents.footer;\n\n if (responseHeader.format === 'IMAGE') {\n const url = responseHeader.example.header_handle[0];\n\n const file = await getFileFromUrl(url);\n const fileUpload = await handleFileUpload(file);\n\n if (!fileUpload) {\n toastNotification(\n 'error',\n 'Ocorreu um erro ao realizar o upload da imagem presente no Header e não será possível salvar o template, verifique e tente novamente.'\n );\n return;\n }\n\n responseHeader.text = fileUpload.url;\n setImageUrl(fileUpload.url);\n }\n\n setTemplateComponents((prev) => ({\n ...prev,\n body: responseBody,\n footer: responseFooter,\n header: responseHeader,\n }));\n\n const responseButtons = responseTemplate.components.find(\n (c) => c.type === 'BUTTONS'\n );\n\n setTemplateButtons({\n type: getButtonType(responseButtons),\n buttons: responseButtons?.buttons || [],\n });\n\n setTemplate((prev) => ({\n ...prev,\n payload_message: {\n ...prev.payload_message,\n template: {\n ...prev.payload_message.template,\n category:\n responseTemplate.category ||\n prev.payload_message.template?.category,\n name: prev.payload_message?.template?.name || '',\n components: prev.payload_message?.template?.components || [],\n },\n },\n }));\n\n toastNotification(\n 'warning',\n getTranslation('toast.warning.templateInMeta')\n );\n setIsTemplateOnMeta(true);\n } else setIsTemplateOnMeta(false);\n // }\n }\n\n async function handleCreateTemplate(template: ITemplate) {\n setLoading(true);\n const response = await CreateTemplate(\n { ...template, already_in_meta: isTemplateOnMeta },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.templateCreated'),\n 3000\n );\n close();\n } else {\n toastNotification('error', getTranslation('toast.error.templateCreated'));\n }\n setLoading(false);\n }\n\n async function handleUpdateTemplate(template: ITemplate) {\n setLoading(true);\n const response = await UpdateTemplate(\n { ...template, bot_name },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.templateUpdated'),\n 3000\n );\n setLoading(false);\n close();\n } else {\n toastNotification('error', getTranslation('toast.error.templateUpdated'));\n setLoading(false);\n }\n }\n\n async function validateTemplate(currentTemplate: ITemplate) {\n const errors: ITemplateError = { name: '', organization: '', message: '' };\n\n if (currentTemplate.name === '') {\n errors.name = getTranslation('validations.required', {\n field: getTranslation('name'),\n });\n }\n\n // if (currentTemplate.organization === '') {\n // errors.organization = getTranslation('validations.required', {\n // field: getTranslation('organization'),\n // });\n // }\n\n if (\n currentTemplate.channel === 'sms' &&\n currentTemplate.payload_message.text &&\n currentTemplate.payload_message.text.length > 160\n ) {\n errors.message = getTranslation('validations.smsLimit');\n }\n\n if (\n currentTemplate.channel === 'falazap' &&\n templateComponents.header.text === ''\n ) {\n errors.falazapTitle = 'Obrigatório fornecer um título';\n }\n\n if (\n currentTemplate.channel === 'whatsapp' &&\n templateComponents.body === ''\n ) {\n errors.body = getTranslation('validations.required', {\n field: 'Body',\n });\n }\n if (currentTemplate.channel === 'falazap' && file) {\n const fileUpload = await handleFileUpload(file);\n if (fileUpload) {\n templateComponents.image = fileUpload.url;\n } else errors.message = getTranslation('toast.error.fileUpload');\n }\n\n if (templateComponents?.header.format === 'IMAGE' && file) {\n const fileUpload = await handleFileUpload(file);\n if (fileUpload) {\n templateComponents.header.text = fileUpload.url;\n } else errors.message = getTranslation('toast.error.fileUpload');\n }\n\n setError(errors);\n\n const templateValidated =\n errors.name === '' &&\n errors.organization === '' &&\n errors.message === '' &&\n error.falazapTitle === '';\n\n const components: ITemplateComponents[] = [];\n\n if (templateComponents.header.format !== 'NONE')\n components.push({\n type: templateComponents.header.type,\n text: templateComponents.header.text,\n format: templateComponents.header.format,\n });\n\n if (\n typeof templateComponents.image === 'string' &&\n currentTemplate.channel === 'falazap'\n )\n components.push({ type: 'IMAGE', text: templateComponents.image });\n\n if (templateComponents.body)\n components.push({ type: 'BODY', text: templateComponents.body });\n\n if (templateComponents.footer)\n components.push({ type: 'FOOTER', text: templateComponents.footer });\n\n if (templateButtons.buttons.length > 0) {\n const buttons: ITemplateButton[] = [];\n\n templateButtons.buttons.forEach((button) => {\n buttons.push({\n type: button.type,\n text: button.text || null,\n phone_number: button.phone_number\n ? `+55${button.phone_number}`\n : null,\n url: button.url || null,\n });\n });\n\n if (buttons.length > 0) components.push({ type: 'BUTTONS', buttons });\n }\n if (currentTemplate.channel === 'falazap') {\n currentTemplate.status = 'approved';\n }\n const payloadTemplate: IPayloadTemplate | null =\n currentTemplate.channel === 'whatsapp'\n ? {\n name: currentTemplate.payload_message.template?.name || '',\n category:\n currentTemplate.payload_message.template?.category || 'MARKETING',\n language:\n currentTemplate.payload_message.template?.language || 'pt_BR',\n components,\n }\n : currentTemplate.channel === 'falazap'\n ? {\n name: currentTemplate.payload_message.template?.name || '',\n language:\n currentTemplate.payload_message.template?.language || 'pt_BR',\n components,\n }\n : null;\n\n setTemplate((prev) => ({\n ...prev,\n payload_message: {\n ...prev.payload_message,\n template: payloadTemplate,\n },\n }));\n\n currentTemplate.payload_message = {\n ...currentTemplate.payload_message,\n template: payloadTemplate,\n };\n\n if (!templateValidated)\n currentTemplate._id\n ? handleUpdateTemplate(currentTemplate)\n : handleCreateTemplate(currentTemplate);\n }\n\n async function handleChangeGroup(groupName: string) {\n const blocks: string[] = [];\n\n const response = await GetGroup({ bot_name, groupName }, dispatchApp);\n\n if (response.Success) {\n const group = response.Data.data;\n\n const keys = Object.keys(group.blocks.drawflow.Home.data);\n\n for (const key in keys) {\n const block = group.blocks.drawflow.Home.data[Number(keys[key])];\n blocks.push(block.data.name);\n }\n }\n setBlocks(blocks.sort());\n\n setTemplate((prev) => ({\n ...prev,\n payload_message: {\n ...prev.payload_message,\n bot: {\n ...prev.payload_message.bot,\n group: groupName,\n },\n },\n }));\n }\n\n function handleChangeQuickReply(\n e: ChangeEvent,\n button: ITemplateButton,\n index: number\n ) {\n const updatedButton: ITemplateButton = {\n ...button,\n text: e.target.value,\n };\n const buttons = templateButtons.buttons;\n buttons[index] = updatedButton;\n\n setTemplateButtons((prev) => ({\n ...prev,\n buttons,\n }));\n }\n\n function handleChangeCallToAction(\n e: ChangeEvent<{ name?: string | undefined; value: unknown }>,\n button: ITemplateButton,\n field: ITemplateButtonFields,\n index: number\n ) {\n const updatedButton: ITemplateButton = {\n ...button,\n [field]: e.target.value,\n };\n\n const buttons = templateButtons.buttons;\n buttons[index] = updatedButton;\n\n setTemplateButtons((prev) => ({\n ...prev,\n buttons,\n }));\n }\n\n function handleRemoveButton(button: ITemplateButton) {\n const newButtons = templateButtons.buttons.filter((b) => b !== button);\n setTemplateButtons((prev) => ({\n ...prev,\n buttons: newButtons,\n }));\n }\n\n function handleChangeBlock(block: string) {\n setTemplate((prev) => ({\n ...prev,\n payload_message: {\n ...prev.payload_message,\n bot: {\n ...prev.payload_message.bot,\n block,\n },\n },\n }));\n }\n\n function handleChangeHeaderType(format: TemplateComponentFormat) {\n setTemplateComponents((prev) => ({\n ...prev,\n header: {\n ...prev.header,\n format,\n text: format === 'TEXT' ? prev.header.text : '',\n },\n }));\n }\n\n function handleChangeButtonType(type: ITemplateButtonTypes) {\n const buttons: ITemplateButton[] =\n type === 'PHONE_NUMBER' || type === 'QUICK_REPLY'\n ? ([{ text: '', type }] as ITemplateButton[])\n : [];\n\n setTemplateButtons(() => ({\n type,\n buttons,\n }));\n }\n\n function handleChangeChannel(channel: ITemplateChannels) {\n const payloadTemplate =\n channel !== 'whatsapp' ? template.payload_message.template : null;\n if (channel === 'falazap') handleChangeHeaderType('TEXT');\n\n setTemplate((prev) => ({\n ...prev,\n channel,\n payload_message: {\n ...prev.payload_message,\n template: payloadTemplate,\n },\n }));\n }\n\n function getButtonType(buttons: ITemplateComponents | undefined) {\n if (buttons && buttons.buttons) {\n const buttonType =\n buttons?.buttons[0].type === 'PHONE_NUMBER' ||\n buttons?.buttons[0].type === 'URL'\n ? 'PHONE_NUMBER'\n : buttons?.buttons[0].type === 'QUICK_REPLY'\n ? 'QUICK_REPLY'\n : 'NONE';\n\n return buttonType;\n } else return 'NONE';\n }\n\n function handleChangeTemplateCategory(\n e: ChangeEvent<{ name?: string | undefined; value: unknown }>\n ) {\n setTemplate((prev) => ({\n ...prev,\n payload_message: {\n ...prev.payload_message,\n template: {\n ...prev.payload_message.template,\n category: e.target.value as ITemplateCategories,\n name: prev.payload_message?.template?.name || '',\n components: prev.payload_message?.template?.components || [],\n },\n },\n }));\n }\n\n function handleChangeTemplateName(e: ChangeEvent) {\n const name = e.target.value.toLowerCase();\n const formattedName = validateTemplateName(name);\n\n setTemplate((prev) => ({\n ...prev,\n payload_message: {\n ...prev.payload_message,\n template: {\n ...prev.payload_message.template,\n components: prev.payload_message?.template?.components || [],\n name: formattedName,\n },\n },\n name: formattedName,\n }));\n }\n\n return (\n <>\n \n \n \n \n {/* \n organization.name)\n .sort()}\n noOptionsText={getTranslation('noResults')}\n renderOption={(option) => <>{option}}\n onChange={(event: any, newValue: string | null) => {\n if (newValue) {\n setTemplate((prev) => ({\n ...prev,\n organization: newValue,\n }));\n }\n }}\n fullWidth\n renderInput={(params) => (\n \n )}\n />\n */}\n \n\n \n \n verifyTemplateOnMeta()}\n onChange={handleChangeTemplateName}\n helperText={error.name}\n error={!!error.name}\n />\n \n \n\n \n \n \n setTemplate((prev) => ({\n ...prev,\n description: e.target.value,\n }))\n }\n />\n \n \n\n \n \n \n \n {getTranslation('language')}\n \n \n setTemplate((prev) => ({\n ...prev,\n language: e.target.value as ITemplateLanguages,\n }))\n }\n label={getTranslation('language')}\n >\n \n {getTranslation('portuguese')}\n \n \n {getTranslation('spanish')}\n \n \n {getTranslation('english')}\n \n \n \n \n\n \n \n \n {getTranslation('channel')}\n \n \n handleChangeChannel(e.target.value as ITemplateChannels)\n }\n label={getTranslation('channel')}\n >\n Whatsapp\n Falazap\n SMS\n \n E-mail\n \n \n URA\n \n \n \n \n \n\n \n {isWhatsApp && (\n \n \n \n {getTranslation('category')}\n \n handleChangeTemplateCategory(e)}\n label={getTranslation('category')}\n >\n \n {getTranslation('modal.campaigns.template.marketing')}\n \n \n {getTranslation('modal.campaigns.template.otp')}\n \n \n {getTranslation('modal.campaigns.template.utility')}\n \n \n \n \n )}\n \n\n {isWhatsApp && (\n \n \n \n \n {getTranslation('group')}\n \n {\n handleChangeGroup(e.target.value as string);\n }}\n label={getTranslation('group')}\n >\n {groups.map((group) => (\n \n {group}\n \n ))}\n \n \n \n\n \n \n \n {getTranslation('block')}\n \n \n handleChangeBlock(e.target.value as string)\n }\n label={getTranslation('block')}\n >\n {blocks.map((block) => (\n \n {block}\n \n ))}\n \n \n \n \n )}\n\n {isWhatsApp && (\n <>\n \n \n \n \n \n \n \n handleChangeHeaderType(\n e.target.value as TemplateComponentFormat\n )\n }\n >\n \n {getTranslation('none')}\n \n \n {getTranslation('text')}\n \n \n \n \n \n {templateComponents.header.format === 'TEXT' && (\n \n \n setTemplateComponents((prev) => ({\n ...prev,\n header: {\n ...prev.header,\n text: e.target.value,\n },\n }))\n }\n endAdornment={\n \n {templateComponents.header.text?.length || '0'}/60\n \n }\n />\n \n )}\n {/* aqui img */}\n {templateComponents.header.format === 'IMAGE' && (\n <>\n \n \n setTemplateComponents((prev) => ({\n ...prev,\n header: {\n ...prev.header,\n text: e.target.value,\n },\n }))\n }\n />\n \n \n setImportFile(true)}\n >\n {getTranslation('loadFile')}\n \n \n \n )}\n \n
    \n \n
    \n \n \n \n setTemplateComponents((prev) => ({\n ...prev,\n body: e.target.value,\n }))\n }\n error={!!error.body}\n endAdornment={\n \n {templateComponents.body?.length || '0'}/1024\n \n }\n />\n {!!error.body && (\n {error.body}\n )}\n \n \n \n \n \n \n \n \n // setFooter(e.target.value)\n setTemplateComponents((prev) => ({\n ...prev,\n footer: e.target.value,\n }))\n }\n inputProps={{ maxLength: 60 }}\n endAdornment={\n \n {templateComponents.footer?.length || '0'}/60\n \n }\n />\n \n \n \n \n \n \n \n \n \n handleChangeButtonType(\n e.target.value as ITemplateButtonTypes\n )\n }\n >\n \n {getTranslation('none')}\n \n \n {getTranslation('callToAction')}\n \n \n {getTranslation('quickReply')}\n \n \n \n \n \n {templateButtons.buttons.map((button, index) =>\n templateButtons.type === 'QUICK_REPLY' ? (\n \n \n \n \n \n handleChangeQuickReply(e, button, index)\n }\n endAdornment={\n \n {button.text?.length || '0'}/25\n \n }\n />\n {templateButtons.buttons.length > 1 && (\n handleRemoveButton(button)}\n >\n \n \n )}\n \n \n \n ) : (\n \n \n \n \n \n \n handleChangeCallToAction(\n e,\n button,\n 'type',\n index\n )\n }\n >\n \n {getTranslation('accessSite')}\n \n \n {getTranslation('call')}\n \n \n \n \n\n {button.type === 'URL' ? (\n <>\n \n \n \n handleChangeCallToAction(\n e,\n button,\n 'text',\n index\n )\n }\n endAdornment={\n \n {button.text?.length || '0'}/25\n \n }\n />\n \n\n \n \n \n \n Estática\n \n Dinâmica\n \n \n \n \n\n \n \n \n handleChangeCallToAction(\n e,\n button,\n 'url',\n index\n )\n }\n endAdornment={\n \n {button.url?.length || '0'}/2000\n \n }\n />\n\n {templateButtons.buttons.length > 1 && (\n handleRemoveButton(button)}\n disabled={isNotEditable}\n >\n \n \n )}\n \n \n ) : (\n <>\n \n \n \n handleChangeCallToAction(\n e,\n button,\n 'text',\n index\n )\n }\n endAdornment={\n \n {button.text?.length || '0'}/25\n \n }\n />\n \n\n \n \n \n \n BR +55\n \n \n \n\n \n \n \n handleChangeCallToAction(\n e,\n button,\n 'phone_number',\n index\n )\n }\n endAdornment={\n \n {button.phone_number?.length || '0'}/20\n \n }\n />\n\n {templateButtons.buttons.length > 1 && (\n handleRemoveButton(button)}\n disabled={isNotEditable}\n >\n \n \n )}\n \n \n )}\n \n \n )\n )}\n\n {templateButtons.type !== 'NONE' && (\n
    \n }\n disabled={\n templateButtons.buttons.length >= buttonsLimit ||\n isNotEditable\n }\n onClick={() => {\n setTemplateButtons((prev) => ({\n ...prev,\n buttons: [\n ...prev.buttons,\n {\n text: '',\n type: templateButtons.type,\n },\n ] as ITemplateButton[],\n }));\n }}\n >\n {getTranslation('add')} {getTranslation('button')}\n \n
    \n )}\n \n )}\n\n {isSms && (\n <>\n \n \n \n \n \n \n \n \n setTemplate((prev) => ({\n ...prev,\n payload_message: {\n ...prev.payload_message,\n text: e.target.value,\n },\n }))\n }\n />\n \n \n \n )}\n {isFalazap && (\n \n )}\n
    \n\n {isWhatsApp && (\n \n )}\n
    \n
    \n \n \n }\n onClick={() => validateTemplate(template)}\n >\n {getTranslation('footerButtons.saveAndExit')}\n {loading && }\n \n \n \n \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from 'services/RequestService';\nimport { IBaseResponse } from 'services/RequestService/Response';\nimport {\n IGetCampaignsRequest,\n ICreateCampaignResponse,\n IDeleteCampaignRequest,\n IGetCampaignsResponse,\n IGetOneCampaignRequest,\n IGetOneCampaignResponse,\n IUpdateCampaignRequest,\n IUpdateCampaignResponse,\n ICampaign,\n} from './types';\n\nconst campaignAction = 'campaigns';\nconst botsAction = 'bots';\n\nexport const GetCampaigns = async (\n request: IGetCampaignsRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${botsAction}/${request.bot_name}/${campaignAction}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetOneCampaign = async (\n request: IGetOneCampaignRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${campaignAction}/${request.campaignId}`;\n return await json>(\n 'GET',\n action,\n dispatch\n );\n};\n\nexport const CreateCampaign = async (\n request: ICampaign,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${campaignAction}`;\n return await json>(\n 'POST',\n action,\n dispatch,\n request\n );\n};\n\nexport const UpdateCampaign = async (\n request: IUpdateCampaignRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${campaignAction}/${request._id}`;\n return await json>(\n 'PATCH',\n action,\n dispatch,\n request\n );\n};\n\nexport const DeleteCampaign = async (\n request: IDeleteCampaignRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${campaignAction}/${request._id}`;\n return await json>('DELETE', action, dispatch);\n};\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst ActioningIcon: React.FC = (props) => {\n const { size } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ActioningIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst CampaignIcon: React.FC = (props) => {\n const { size } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default CampaignIcon;\n","import React, { useEffect, useState } from 'react';\nimport {\n Slide,\n Dialog,\n AppBar,\n IconButton,\n Toolbar,\n Typography,\n TextField,\n InputAdornment,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n Tooltip,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport * as S from './styles';\nimport * as SS from '../styles';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\n\nimport {\n Add,\n Search,\n Delete,\n Edit,\n Refresh,\n Visibility,\n} from '@material-ui/icons';\n\nimport { CircularProgress } from '@material-ui/core';\n\nimport { formatDateHour } from 'utils/Date';\nimport { SaveOrEditTemplate } from './CreateOrEditTemplate';\nimport {\n emptyTemplate,\n ITemplate,\n ITemplateChannels,\n ITemplateStatus,\n} from 'services/CampaignService/TemplatesService/types';\nimport {\n DeleteTemplate,\n GetTemplates,\n GetTemplateStatus,\n} from 'services/CampaignService/TemplatesService';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { GetCampaigns } from 'services/CampaignService/CampaignsService';\nimport ActioningIcon from 'components/Icons/ActioningIcon';\nimport CampaignIcon from 'components/Icons/CampaignIcon';\nimport { isBefore } from 'date-fns';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface ModalTemplatesProps {\n open: boolean;\n close: () => void;\n}\n\nexport function ModalTemplates({ open, close }: ModalTemplatesProps) {\n const { hasPermissionToAction } = usePermissions();\n const classes = SS.useStyles();\n const { dispatch: dispatchApp } = useApp();\n const { toastNotification, dispatch, state } = useFlow();\n\n const { botName } = state;\n\n const bot_name = botName || '';\n\n const { getTranslation } = useTranslator();\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const [openModalCreateOrEditTemplate, setOpenModalCreateOrEditTemplate] =\n useState(false);\n\n const [loading, setLoading] = useState(false);\n const [search, setSearch] = useState('');\n const [currentTemplate, setCurrentTemplate] = useState(emptyTemplate);\n const [templates, setTemplates] = useState([]);\n\n const isCommunicationGuidelineWrite = hasPermissionToAction({\n company: state.companyName!,\n agent: state.botName!,\n action: ['communication_guideline:write'],\n });\n\n const filteredTemplates =\n search.length > 0\n ? templates.filter((template) => template.name.includes(search))\n : templates;\n\n useEffect(() => {\n if (!openModalCreateOrEditTemplate) loadTemplates();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, openModalCreateOrEditTemplate]);\n\n async function loadTemplates() {\n setLoading(true);\n\n try {\n // const listTemplates: ITemplate[] = [];\n\n const response = await GetTemplates({ bot_name }, dispatchApp);\n if (response.Success) {\n const allTemplates = response.Data.data;\n\n setTemplates(\n allTemplates.sort((a, b) => {\n if (\n isBefore(\n new Date(a.creation_date).getTime(),\n new Date(b.creation_date).getTime()\n )\n )\n return 1;\n else return -1;\n })\n );\n } else throw new Error('erro');\n\n // userOrganizations.forEach(async (organization) => {\n // const items = await GetTemplates(\n // { bot_name, organization: organization.name },\n // dispatchApp\n // );\n\n // const foundTemplates = items.Data.data;\n\n // if (foundTemplates) {\n // foundTemplates.forEach((template) => {\n // listTemplates.push(template);\n // });\n // }\n\n // const allTemplates = [...templates, ...listTemplates];\n // setTemplates(\n // allTemplates.sort((a, b) => {\n // if (\n // isBefore(\n // new Date(a.creation_date).getTime(),\n // new Date(b.creation_date).getTime()\n // )\n // )\n // return 1;\n // else return -1;\n // })\n // );\n // });\n } catch (error: any) {\n toastNotification('error', getTranslation('toast.error.searchTemplates'));\n }\n\n setTemplates((prev) =>\n prev.sort((a, b) => {\n if (\n isBefore(\n new Date(a.creation_date).getTime(),\n new Date(b.creation_date).getTime()\n )\n )\n return 1;\n else return -1;\n })\n );\n\n setLoading(false);\n }\n\n function handleClose() {\n setPage(0);\n close();\n }\n\n function handleNewTemplate() {\n setCurrentTemplate({\n ...emptyTemplate,\n bot_name,\n });\n setOpenModalCreateOrEditTemplate(true);\n }\n\n function handleCloseNewTemplate() {\n setTemplates([]);\n setOpenModalCreateOrEditTemplate(false);\n }\n\n function handleChangeRowsPerPage(e: { target: { value: string | number } }) {\n setRowsPerPage(+e.target.value);\n setPage(0);\n }\n\n function handleChangePage(event: any, newPage: React.SetStateAction) {\n setPage(newPage);\n }\n\n async function templateIsUsed(template: ITemplate): Promise {\n const response = await GetCampaigns({ bot_name }, dispatchApp);\n let templateUsed = false;\n\n if (response.Success) {\n const campaigns = response.Data.data;\n\n const foundTemplate = campaigns.find(\n (campaign) => campaign.template === template.name\n );\n\n if (foundTemplate) templateUsed = true;\n else templateUsed = false;\n }\n\n return templateUsed;\n }\n\n async function handleRemoveTemplate(template: ITemplate) {\n const templateUsed = await templateIsUsed(template);\n\n if (!templateUsed) {\n const response = await DeleteTemplate({ ...template }, dispatchApp);\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.templateDeleted')\n );\n setTemplates(templates.filter((temp) => temp._id !== template._id));\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.templateDeleted')\n );\n }\n } else\n toastNotification('error', getTranslation('toast.error.usedTemplate'));\n }\n\n function handleEditTemplate(template: ITemplate) {\n setCurrentTemplate(template);\n setOpenModalCreateOrEditTemplate(true);\n }\n\n function getColor(status: ITemplateStatus) {\n switch (status) {\n case 'approved':\n return '#79e16d';\n case 'pending':\n return '#ffb84d';\n case 'in_appeal':\n return '#0071b3';\n case 'pending_deletion':\n return '#ffb84d';\n case 'deleted':\n return '#535353';\n case 'disabled':\n return '#b1b1b1';\n case 'paused':\n return '#f3f02d';\n case 'limit_exceeded':\n return '#8a0202';\n case 'rejected':\n default:\n return '#d80101';\n }\n }\n\n function getPrettyChannel(channel: ITemplateChannels) {\n switch (channel) {\n case 'ura':\n return 'URA';\n case 'email':\n return 'E-mail';\n case 'sms':\n return 'SMS';\n case 'whatsapp':\n return 'WhatsApp';\n case 'falazap':\n default:\n return 'FalaZap';\n }\n }\n\n function getPrettyStatus(status: ITemplateStatus) {\n switch (status) {\n case 'approved':\n return getTranslation('approved');\n case 'rejected':\n return getTranslation('rejected');\n case 'in_appeal':\n return getTranslation('in_appeal');\n case 'pending_deletion':\n return getTranslation('pending_deletion');\n case 'deleted':\n return getTranslation('deleted');\n case 'disabled':\n return getTranslation('disabled');\n case 'paused':\n return getTranslation('paused');\n case 'limit_exceeded':\n return getTranslation('limit_exceeded');\n case 'pending':\n default:\n return getTranslation('pending');\n }\n }\n\n async function handleRefreshStatus(template: ITemplate) {\n const response = await GetTemplateStatus({ ...template }, dispatchApp);\n\n if (response.Success) {\n const templateIndex = templates.findIndex(\n (temp) => temp._id === template._id\n );\n const statusResponse = response.Data.data.status;\n const currentStatus = template.status;\n\n if (currentStatus !== statusResponse) {\n const updatedTemplate = {\n ...template,\n status: response.Data.data.status,\n };\n\n const listTemplates = templates;\n\n if (templateIndex !== -1) {\n listTemplates[templateIndex] = updatedTemplate;\n setTemplates(listTemplates);\n }\n\n toastNotification(\n 'success',\n getTranslation('toast.success.statusUpdate')\n );\n } else {\n toastNotification(\n 'warning',\n getTranslation('toast.warning.statusUpdate')\n );\n }\n } else {\n toastNotification('error', getTranslation('toast.error.statusUpdate'));\n }\n }\n\n const renderTemplatesList = () => (\n \n \n \n \n {getTranslation('templatesList')}\n \n \n {isCommunicationGuidelineWrite && (\n <>\n }\n onClick={() => handleNewTemplate()}\n >\n {getTranslation('modal.campaigns.template.newButton')}\n \n \n )}\n \n \n \n template.name)}\n renderInput={(params) => (\n setSearch(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n )}\n />\n \n {loading ? (\n
    \n \n
    \n ) : templates.length > 0 ? (\n <>\n \n \n \n \n \n {getTranslation('name')}\n \n \n {getTranslation('channel')}\n \n Status\n \n {getTranslation('creationDate')}\n \n \n \n \n \n {(rowsPerPage > 0\n ? filteredTemplates.slice(\n page * rowsPerPage,\n page * rowsPerPage + rowsPerPage\n )\n : filteredTemplates\n ).map((template, index) => (\n \n \n {template.name}\n \n \n {getPrettyChannel(template.channel)}\n \n \n \n \n {getPrettyStatus(template.status)}\n \n \n \n {formatDateHour(template.creation_date)}\n \n \n \n handleEditTemplate(template)}\n >\n {!template._id ? : }\n \n \n {isCommunicationGuidelineWrite && (\n \n handleRemoveTemplate(template)}\n >\n \n \n \n )}\n\n {getPrettyChannel(template.channel) === 'WhatsApp' && (\n \n handleRefreshStatus(template)}\n >\n \n \n \n )}\n \n \n ))}\n \n \n \n \n ) : (\n

    {getTranslation('noTemplatesResult')}

    \n )}\n
    \n\n
    \n
    \n \n {\n dispatch({ type: 'closeModalCampaignTemplates' });\n dispatch({ type: 'openModalCampaignCampaign' });\n }}\n >\n \n \n \n \n {\n dispatch({ type: 'closeModalCampaignTemplates' });\n dispatch({ type: 'openModalCampaignActioning' });\n }}\n >\n \n \n \n
    \n {templates.length > 0 && (\n \n \n \n \n \n )}\n
    \n
    \n );\n\n return (\n <>\n \n \n \n \n Templates\n \n handleCloseNewTemplate()\n : () => handleClose()\n }\n aria-label=\"close\"\n >\n \n \n \n \n \n {openModalCreateOrEditTemplate ? (\n \n ) : (\n renderTemplatesList()\n )}\n \n \n \n );\n}\n","import styled from 'styled-components';\nimport { BoxContainer } from '../styles';\n\nexport const BoxVariableAndColumnContainer = styled.div`\n display: flex;\n width: 100%;\n margin-top: 8px;\n`;\n\nexport const BoxVariableAndColumn = styled(BoxContainer)`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width: 50%;\n padding: 8px;\n`;\n","export interface ICampaign {\n _id?: string;\n name: string;\n description: string;\n template: string;\n status: ICampaignStatus;\n variables: ITemplateVariable[] | null;\n creation_date: Date;\n bot_name: string;\n sender: ISender;\n}\n\nexport type ICampaignStatus = 'active' | 'inactive';\n\nexport type ISenderChannel = 'phone' | 'email';\n\nexport interface ISender {\n channel: ISenderChannel;\n column: number | null;\n}\n\nexport interface ITemplateVariable {\n variable: string;\n column: string;\n}\n\nexport interface IGetCampaignsResponse {\n data: ICampaign[];\n}\n\nexport interface IGetCampaignsRequest extends Pick {}\n\nexport interface IGetOneCampaignRequest extends ICampaign {\n campaignId: string;\n}\n\nexport interface IGetOneCampaignResponse {\n data: ICampaign;\n}\n\nexport interface ICreateCampaignRequest extends ICampaign {}\n\nexport interface ICreateCampaignResponse {\n data: ICampaign;\n}\n\nexport interface IUpdateCampaignRequest extends ICampaign, ICampaign {}\n\nexport interface IUpdateCampaignResponse {\n data: ICampaign;\n}\n\nexport interface IDeleteCampaignRequest\n extends Pick {}\n\nexport const emptyCampaign: ICampaign = {\n name: '',\n description: '',\n template: '',\n status: 'inactive',\n variables: [],\n creation_date: new Date(),\n bot_name: '',\n sender: { channel: 'phone', column: 1 },\n};\n","import { ChangeEvent, useEffect, useState } from 'react';\n\nimport {\n TextField,\n CircularProgress,\n Typography,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n FormHelperText,\n} from '@material-ui/core';\nimport MttButton from 'components/Material/MttButton/MttButton';\n\nimport CheckIcon from '@material-ui/icons/Check';\n\nimport * as S from '../styles';\nimport useTranslator from 'utils/hooks/Translator';\nimport {\n ICampaign,\n ICampaignStatus,\n ISenderChannel,\n ITemplateVariable,\n} from 'services/CampaignService/CampaignsService/types';\nimport { emptyCampaign } from 'services/CampaignService/CampaignsService/types';\nimport {\n CreateCampaign,\n UpdateCampaign,\n} from 'services/CampaignService/CampaignsService';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport {\n emptyTemplate,\n ITemplate,\n} from 'services/CampaignService/TemplatesService/types';\nimport { GetTemplates } from 'services/CampaignService/TemplatesService';\nimport {\n NewCampaignContainer,\n NewCampaignFields,\n StyledGridButtons,\n BoxContainer,\n TextContainer,\n StyledRightButtons,\n} from '../../styles';\n\ninterface Props {\n handleClose: () => void;\n currentCampaign: ICampaign;\n}\n\ninterface ICampaignError {\n name: string;\n template: string;\n}\n\nexport function CreateOrEditCampaign({ handleClose, currentCampaign }: Props) {\n const { getTranslation } = useTranslator();\n const { dispatch: dispatchApp } = useApp();\n const { toastNotification, state } = useFlow();\n const { botName } = state;\n const bot_name = botName || '';\n const [error, setError] = useState({\n name: '',\n template: '',\n });\n const [loading, setLoading] = useState(false);\n const [campaign, setCampaign] = useState(currentCampaign || emptyCampaign);\n const [listTemplates, setListTemplates] = useState([]);\n\n const currentTemplate =\n listTemplates.find((template) => template.name === campaign.template) ||\n emptyTemplate;\n\n const templateBody =\n currentTemplate.payload_message.template?.components.find(\n (component) => component.type === 'BODY'\n )?.text;\n\n const templateMessage =\n currentTemplate.channel === 'whatsapp' || 'falaZap'\n ? templateBody\n : currentTemplate.payload_message.text;\n\n\n const handleCampaignColumnChange = (e: ChangeEvent) => {\n const input = e.target.value;\n const parsedValue = Number(input);\n\n if (!isNaN(parsedValue) && parsedValue >= 0) {\n setCampaign((prev) => ({\n ...prev,\n sender: {\n column: parsedValue >= 1 ? parsedValue : 1,\n channel: prev.sender.channel || 'email',\n },\n }));\n }\n };\n\n useEffect(() => {\n loadTemplates();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n async function loadTemplates() {\n setLoading(true);\n\n try {\n const response = await GetTemplates({ bot_name }, dispatchApp);\n\n if (response.Success) {\n const allTemplates = response.Data.data;\n\n setListTemplates(allTemplates);\n } else throw new Error('erro');\n\n // userOrganizations.forEach(async (organization) => {\n // const items = await GetTemplates(\n // { bot_name, organization: organization.name },\n // dispatchApp\n // );\n\n // const foundTemplates = items.Data.data;\n\n // if (foundTemplates) {\n // foundTemplates.forEach((template) => {\n // templates.push(template);\n // });\n // }\n // setListTemplates([...listTemplates, ...templates]);\n // });\n } catch (error: any) {\n toastNotification('error', getTranslation('toast.error.searchTemplates'));\n }\n\n setLoading(false);\n }\n\n useEffect(() => {\n if (templateMessage) {\n const campaignVariables: ITemplateVariable[] = [];\n const regexp = /{{\\d?}}/g;\n const foundVariables = templateMessage.match(regexp);\n const currCampaignVariables = campaign.variables || [];\n\n const externalVariables = campaign.variables?.filter(\n (variable) => !foundVariables?.includes(variable.variable)\n );\n\n if (foundVariables) {\n foundVariables?.forEach((variable, index) => {\n campaignVariables.push({\n variable,\n column: currCampaignVariables[index]?.column || '',\n });\n });\n\n externalVariables?.forEach((variable) =>\n campaignVariables.push(variable)\n );\n\n setCampaign((prev) => ({\n ...prev,\n variables: campaignVariables,\n }));\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentTemplate]);\n\n async function handleCreateCampaign() {\n setLoading(true);\n const response = await CreateCampaign(campaign, dispatchApp);\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.campaignCreated'),\n 3000\n );\n handleClose();\n } else {\n toastNotification('error', getTranslation('toast.error.campaignCreated'));\n }\n setLoading(false);\n }\n\n async function handleUpdateCampaign() {\n setLoading(true);\n const response = await UpdateCampaign(campaign, dispatchApp);\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.campaignUpdated'),\n 3000\n );\n setLoading(false);\n handleClose();\n } else {\n toastNotification('error', getTranslation('toast.error.campaignUpdated'));\n setLoading(false);\n }\n }\n\n function handleChangeColumn(index: number, newColumn: string) {\n const newVariables = campaign.variables;\n if (newVariables) {\n newVariables[index].column = newColumn;\n\n setCampaign((prev) => ({\n ...prev,\n variables: newVariables,\n }));\n }\n }\n\n function handleChangeTemplate(newTemplate: string) {\n setCampaign((prev) => ({\n ...prev,\n template: newTemplate,\n }));\n }\n\n function validateCampaign(campaign: ICampaign) {\n const errors: ICampaignError = { name: '', template: '' };\n\n if (campaign.name === '') {\n errors.name = getTranslation('validations.required', {\n field: getTranslation('name'),\n });\n }\n\n if (campaign.template === '') {\n errors.template = getTranslation('validations.required', {\n field: 'Template',\n });\n }\n\n setError(errors);\n if (errors.name === '' && errors.template === '')\n campaign._id ? handleUpdateCampaign() : handleCreateCampaign();\n }\n\n return (\n \n \n \n \n \n \n Status\n \n \n setCampaign((prev) => ({\n ...prev,\n status: e.target.value as ICampaignStatus,\n }))\n }\n label=\"Status\"\n >\n {getTranslation('active')}\n \n {getTranslation('inactive')}\n \n \n \n \n \n \n \n \n setCampaign((prev) => ({\n ...prev,\n name: e.target.value,\n }))\n }\n helperText={error.name}\n error={!!error.name}\n />\n \n \n\n \n \n \n setCampaign((prev) => ({\n ...prev,\n description: e.target.value,\n }))\n }\n />\n \n \n\n \n \n \n Template\n handleChangeTemplate(e.target.value as string)}\n label=\"Template\"\n error={!!error.template}\n >\n {listTemplates.map((template) => (\n \n {template.name}\n \n ))}\n \n \n {error.template}\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n {getTranslation('modal.campaigns.template.senderField')}\n \n \n setCampaign((prev) => ({\n ...prev,\n sender: {\n channel: e.target.value as ISenderChannel,\n column: campaign.sender.column || 0,\n },\n }))\n }\n label={getTranslation('modal.campaigns.template.senderField')}\n >\n {getTranslation('phone')}\n Email\n \n {getTranslation('deviceID')}\n \n \n \n \n \n \n \n \n\n {campaign.variables && campaign.variables.length > 0 && (\n \n \n \n \n \n {campaign.variables?.map((variable) => (\n \n \n \n ))}\n \n\n \n \n \n \n {campaign.variables?.map((variable, index) => (\n \n handleChangeColumn(index, e.target.value)}\n />\n \n ))}\n \n \n )}\n \n\n \n \n }\n onClick={() => validateCampaign(campaign)}\n >\n {getTranslation('footerButtons.saveAndExit')}\n {loading && }\n \n \n \n \n );\n}\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from 'services/RequestService';\nimport { IBaseResponse } from 'services/RequestService/Response';\nimport {\n ICreateActioningRequest,\n ICreateActioningResponse,\n IDeleteActioningRequest,\n IGetActioningsRequest,\n IGetActioningsResponse,\n IGetOneActioningRequest,\n IGetOneActioningResponse,\n ITriggerActioningRequest,\n IUpdateActioningRequest,\n IUpdateActioningResponse,\n} from './types';\n\n\nconst actioningAction = 'actionings';\nconst botsAction = 'bots';\n\nexport const GetActionings = async (\n request: IGetActioningsRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${botsAction}/${request.bot_name}/${actioningAction}`;\n return await json('GET', action, dispatch);\n};\n\nexport const GetOneActioning = async (\n request: IGetOneActioningRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${actioningAction}/${request.campaignId}`;\n return await json>(\n 'GET',\n action,\n dispatch\n );\n};\n\nexport const CreateActioning = async (\n request: ICreateActioningRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${actioningAction}`;\n return await json>(\n 'POST',\n action,\n dispatch,\n request\n );\n};\n\nexport const UpdateActioning = async (\n request: IUpdateActioningRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${actioningAction}/${request._id}`;\n return await json>(\n 'PATCH',\n action,\n dispatch,\n request\n );\n};\n\nexport const DeleteActioning = async (\n request: IDeleteActioningRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${actioningAction}/${request._id}`;\n return await json>('DELETE', action, dispatch);\n};\n\nexport const TriggerActioning = async (\n request: ITriggerActioningRequest,\n dispatch: React.Dispatch\n) => {\n const action = `${botsAction}/${request.bot_name}/${actioningAction}/execute/${request._id}`;\n return await json>('GET', action, dispatch);\n};\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst TemplateIcon: React.FC = (props) => {\n const { size } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default TemplateIcon;\n","import React, { useEffect, useState } from 'react';\nimport {\n Slide,\n Dialog,\n AppBar,\n IconButton,\n Toolbar,\n Typography,\n TextField,\n InputAdornment,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n Tooltip,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport * as SS from '../styles';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport AddIcon from '@material-ui/icons/Add';\nimport SearchIcon from '@material-ui/icons/Search';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport { CircularProgress } from '@material-ui/core';\n\nimport { formatDateHour } from 'utils/Date';\nimport { CreateOrEditCampaign } from './CreateOrEditCampaign';\nimport {\n emptyCampaign,\n ICampaign,\n ICampaignStatus,\n} from 'services/CampaignService/CampaignsService/types';\nimport {\n DeleteCampaign,\n GetCampaigns,\n} from 'services/CampaignService/CampaignsService';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { GetActionings } from 'services/CampaignService/ActioningsService';\nimport TemplateIcon from 'components/Icons/TemplateIcon';\nimport ActioningIcon from 'components/Icons/ActioningIcon';\nimport { isBefore } from 'date-fns';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface ModalCampaignsProps {\n open: boolean;\n close: () => void;\n}\n\nexport function ModalCampaigns({ open, close }: ModalCampaignsProps) {\n const classes = SS.useStyles();\n const { hasPermissionToAction } = usePermissions();\n const { getTranslation } = useTranslator();\n const { dispatch: dispatchApp } = useApp();\n const { toastNotification, dispatch, state } = useFlow();\n const { botName } = state;\n const bot_name = botName || '';\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const [openModalCreateOrEditCampaign, setOpenModalCreateOrEditCampaign] =\n useState(false);\n const [loading, setLoading] = useState(false);\n const [search, setSearch] = useState('');\n const [currentCampaign, setCurrentCampaign] =\n useState(emptyCampaign);\n const [campaigns, setCampaigns] = useState([]);\n const [tooltipTitle, setTooltipTitle] = useState(getTranslation('copy'));\n const isCommunicationGuidelineWrite = hasPermissionToAction({\n company: state.companyName!,\n agent: state.botName!,\n action: ['communication_guideline:write'],\n });\n\n const filteredCampaigns =\n search.length > 0\n ? campaigns.filter((t) => t.name.includes(search))\n : campaigns;\n\n useEffect(() => {\n if (!openModalCreateOrEditCampaign) loadCampaigns();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, openModalCreateOrEditCampaign]);\n\n async function loadCampaigns() {\n setLoading(true);\n\n try {\n // const listCampaigns: ICampaign[] = [];\n\n // retirar organization\n const response = await GetCampaigns(\n {\n bot_name,\n },\n dispatchApp\n );\n\n if (response.Success) {\n const allCampaigns = response.Data.data;\n\n setCampaigns(\n allCampaigns.sort((a, b) => {\n if (\n isBefore(\n new Date(a.creation_date).getTime(),\n new Date(b.creation_date).getTime()\n )\n )\n return 1;\n else return -1;\n })\n );\n } else throw new Error('erro');\n\n // userOrganizations.forEach(async (organization) => {\n // const items = await GetCampaigns(\n // { bot_name, organization: organization.name },\n // dispatchApp\n // );\n\n // const foundCampaigns = items.Data.data;\n\n // if (foundCampaigns) {\n // foundCampaigns.forEach((campaign) => {\n // listCampaigns.push(campaign);\n // });\n // }\n\n // const allCampaigns = [...campaigns, ...listCampaigns];\n\n // setCampaigns(\n // allCampaigns.sort((a, b) => {\n // if (\n // isBefore(\n // new Date(a.creation_date).getTime(),\n // new Date(b.creation_date).getTime()\n // )\n // )\n // return 1;\n // else return -1;\n // })\n // );\n // });\n } catch (error: any) {\n toastNotification('error', getTranslation('toast.error.searchCampaigns'));\n }\n\n setLoading(false);\n }\n\n function handleClose() {\n setPage(0);\n close();\n }\n\n function handleNewCampaign() {\n setCurrentCampaign(emptyCampaign);\n setOpenModalCreateOrEditCampaign(true);\n }\n\n function handleCloseNewCampaign() {\n setCampaigns([]);\n setOpenModalCreateOrEditCampaign(false);\n setSearch('');\n }\n\n function handleChangeRowsPerPage(e: { target: { value: string | number } }) {\n setRowsPerPage(+e.target.value);\n setPage(0);\n }\n\n function handleChangePage(event: any, newPage: React.SetStateAction) {\n setPage(newPage);\n }\n\n async function campaignIsUsed(campaign: ICampaign): Promise {\n const response = await GetActionings({\n bot_name,\n organization: ''\n }, dispatchApp);\n let campaignUsed = true;\n\n if (response.Success) {\n const actionings = response.Data.data;\n\n const foundCampaign = actionings.find(\n (actioning) => actioning.campaign_name === campaign.name\n );\n\n if (foundCampaign) campaignUsed = true;\n else campaignUsed = false;\n }\n\n return campaignUsed;\n }\n\n async function handleRemoveCampaign(campaign: ICampaign) {\n const campaignUsed = await campaignIsUsed(campaign);\n\n if (!campaignUsed) {\n const response = await DeleteCampaign(\n {\n ...campaign,\n bot_name,\n },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.campaignDeleted')\n );\n setCampaigns(campaigns.filter((camp) => camp._id !== campaign._id));\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.campaignDeleted')\n );\n }\n } else\n toastNotification('error', getTranslation('toast.error.usedCampaign'));\n }\n\n function handleEditCampaign(campaign: ICampaign) {\n setCurrentCampaign(campaign);\n setOpenModalCreateOrEditCampaign(true);\n }\n\n function getPrettyStatus(status: ICampaignStatus) {\n switch (status) {\n case 'active':\n return getTranslation('active');\n case 'inactive':\n default:\n return getTranslation('inactive');\n }\n }\n\n async function handleCopyId(id: string) {\n await navigator.clipboard.writeText(id);\n setTooltipTitle(getTranslation('copied'));\n }\n\n const renderCampaignsList = () => (\n \n \n \n \n {getTranslation('campaignsList')}\n \n \n {isCommunicationGuidelineWrite && (\n }\n onClick={() => handleNewCampaign()}\n >\n {getTranslation('modal.campaigns.campaign.newButton')}\n \n )}\n \n \n \n option.name)}\n renderInput={(params) => (\n setSearch(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n )}\n />\n \n {loading ? (\n
    \n \n
    \n ) : campaigns.length > 0 ? (\n
    \n \n \n \n \n Id\n \n {getTranslation('name')}\n \n Template\n Status\n \n {getTranslation('creationDate')}\n \n \n \n \n \n {(rowsPerPage > 0\n ? filteredCampaigns.slice(\n page * rowsPerPage,\n page * rowsPerPage + rowsPerPage\n )\n : filteredCampaigns\n ).map((campaign) => (\n \n handleCopyId(campaign._id || '')}\n >\n \n \n setTooltipTitle(getTranslation('copy'))\n }\n >\n {campaign._id}\n \n \n \n \n {campaign.name}\n \n {campaign.template}\n \n {getPrettyStatus(campaign.status)}\n \n \n {formatDateHour(campaign.creation_date)}\n \n \n {isCommunicationGuidelineWrite && (\n <>\n \n handleEditCampaign(campaign)}\n >\n \n \n \n \n handleRemoveCampaign(campaign)}\n >\n \n \n \n \n )}\n \n \n ))}\n \n \n \n
    \n ) : (\n

    {getTranslation('noCampaignsResult')}

    \n )}\n
    \n
    \n
    \n \n {\n dispatch({ type: 'closeModalCampaignCampaign' });\n dispatch({ type: 'openModalCampaignTemplates' });\n }}\n >\n \n \n \n \n {\n dispatch({ type: 'closeModalCampaignCampaign' });\n dispatch({ type: 'openModalCampaignActioning' });\n }}\n >\n \n \n \n
    \n \n \n \n \n \n
    \n
    \n );\n\n return (\n <>\n \n \n \n \n {getTranslation('campaign')}\n \n handleCloseNewCampaign()\n : () => handleClose()\n }\n aria-label=\"close\"\n >\n \n \n \n \n \n {openModalCreateOrEditCampaign ? (\n \n ) : (\n renderCampaignsList()\n )}\n \n \n \n );\n}\n","import { makeStyles, Theme } from '@material-ui/core';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport styled from 'styled-components';\nimport { themeDefault } from 'themes/DefaultTheme';\nimport { BoxContainer } from '../styles';\n\nexport const StyledRightButtons = styled(MttGrid)`\n width: 100%;\n\n display: flex;\n justify-content: flex-end;\n\n div,\n button {\n margin: 0 8px;\n }\n`;\n\nexport const BoxVariableAndColumnContainer = styled.div`\n display: flex;\n width: 100%;\n margin-top: 8px;\n`;\n\nexport const BoxVariableAndColumn = styled(BoxContainer)`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n height: auto;\n \n`;\n\nexport const Status = styled.div<{ bgColor: string }>`\n background: ${(props) => props.bgColor};\n\n border-radius: 50%;\n min-width: 14px !important;\n height: 14px !important;\n\n margin-right: 6px;\n`;\n\nexport const StatusDiv = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ButtonContainer = styled(MttGrid)<{\n bgcolor?: string;\n color?: string;\n disabledColor?: string;\n}>`\n display: flex;\n align-items: center;\n height: 56px;\n color: #ffffff;\n background-color: ${(props) => props.bgcolor || 'inherit'};\n border-radius: 4px;\n\n button {\n padding: 24px;\n width: 100%;\n height: 100%;\n color: ${(props) => props.color || '#fff'};\n }\n\n .MuiButton-root.Mui-disabled {\n color: ${(props) => props.disabledColor || 'rgb(0 0 0 / 32%)'};\n }\n`;\n\nexport const actioningStyles = makeStyles((theme: Theme) => ({\n selectFileButton: {\n maxWidth: 225,\n height: '50px',\n background: `${themeDefault.palette.primary.main}`,\n color: '#fff',\n\n '&:hover': {\n background: '#512d9a',\n color: '#fff',\n },\n },\n}));\n","import Button from '@material-ui/core/Button';\nimport { styled } from '@material-ui/core/styles';\n\nexport const ResultDownloadButton = styled(Button)(({ theme }) => ({\n height: '48px', \n margin: '10px'\n }));","import { ChangeEvent, useCallback, useEffect, useState } from 'react';\n\nimport {\n TextField,\n CircularProgress,\n Typography,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n FormHelperText,\n} from '@material-ui/core';\n\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { ptBR, enUS, es } from 'date-fns/locale';\n\nimport CheckIcon from '@material-ui/icons/Check';\nimport ArrowDownward from '@material-ui/icons/ArrowDownward';\nimport * as S from '../styles';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport {\n KeyboardDateTimePicker,\n MuiPickersUtilsProvider,\n} from '@material-ui/pickers';\n\nimport { IActioning } from 'services/CampaignService/ActioningsService/types';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport {\n CreateActioning,\n UpdateActioning,\n} from 'services/CampaignService/ActioningsService';\nimport { useApp } from 'contexts/App/appContext';\nimport {\n emptyCampaign,\n ICampaign,\n} from 'services/CampaignService/CampaignsService/types';\nimport { GetCampaigns } from 'services/CampaignService/CampaignsService';\nimport { GetTemplates } from 'services/CampaignService/TemplatesService';\nimport {\n emptyTemplate,\n ITemplate,\n} from 'services/CampaignService/TemplatesService/types';\nimport i18n from 'utils/i18n';\nimport {\n NewCampaignContainer,\n NewCampaignFields,\n StyledGridButtons,\n TextContainer,\n BoxContainer,\n} from '../../styles';\nimport { isBefore } from 'date-fns';\nimport { IActioningsError, Props } from './types';\nimport csv from 'csvtojson';\nimport { handleFileUpload } from 'utils/uploadFile';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\nimport { ResultDownloadButton } from './styled';\n\nexport function CreateOrEditActioning({\n handleClose,\n currentActioning,\n}: Props) {\n const { hasPermissionToAction } = usePermissions();\n const actioningStyles = S.actioningStyles();\n const { language } = i18n;\n const { getTranslation } = useTranslator();\n const { toastNotification, state } = useFlow();\n const { botName } = state;\n const bot_name = botName || '';\n const [error, setError] = useState({\n campaign: '',\n file: '',\n scheduledDate: '',\n });\n const { dispatch: dispatchApp } = useApp();\n const [campaigns, setCampaigns] = useState([]);\n const [templates, setTemplates] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const [importFile, setImportFile] = useState(false);\n const [sheetValues, setSheetValues] = useState(\n currentActioning.sheet_values || []\n );\n\n const [file, setFile] = useState();\n\n const [actioning, setActioning] = useState(currentActioning);\n\n const readOnly =\n actioning.status !== 'not_started' &&\n hasPermissionToAction({\n company: state.companyName!,\n agent: state.botName!,\n action: ['communication_guideline:write'],\n });\n const currentLanguage =\n language === 'pt-BR' ? ptBR : language === 'en-US' ? enUS : es;\n\n const currentCampaign =\n campaigns.find((campaign) => campaign.name === actioning.campaign_name) ||\n emptyCampaign;\n\n const currentTemplate =\n templates.find(\n (templates) => templates.name === currentCampaign.template\n ) || emptyTemplate;\n\n useEffect(() => {\n if (actioning.status === 'not_started') loadCampaigns();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (actioning.campaign_name !== '' && currentCampaign.name !== '')\n loadTemplates();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actioning.campaign_name, currentCampaign]);\n\n async function loadTemplates() {\n const response = await GetTemplates(\n {\n bot_name,\n },\n dispatchApp\n );\n if (response.Success) {\n setTemplates(response.Data.data);\n } else {\n toastNotification('error', getTranslation('toast.error.searchTemplates'));\n }\n }\n\n const getFormattedContent = useCallback(() => {\n const templateHeader =\n currentTemplate.payload_message.template?.components.find(\n (component) =>\n component.type === 'HEADER' && component.format === 'TEXT'\n )?.text || '';\n\n const templateBody =\n currentTemplate.payload_message.template?.components.find(\n (component) => component.type === 'BODY'\n )?.text || '';\n\n const templateFooter =\n currentTemplate.payload_message.template?.components.find(\n (component) => component.type === 'FOOTER'\n )?.text || '';\n\n const templateMessage =\n currentTemplate.channel === 'whatsapp' ||\n currentTemplate.channel === 'falazap'\n ? `${templateHeader} ${\n templateHeader ? '\\n' + templateBody : templateBody\n } ${templateBody ? '\\n\\n' + templateFooter : templateFooter}`\n : currentTemplate.payload_message.text || '';\n\n const variables = templateMessage.match(/{{\\d?}}/g);\n\n const variablesAndValues = variables?.map((variable, index) => {\n const currentVariables = currentCampaign.variables || [];\n const columnIndex = Number(currentVariables[index]?.column) - 1;\n\n return {\n variable,\n value: sheetValues[columnIndex ? columnIndex : index] || variable,\n };\n });\n\n let parsedMessage = templateMessage;\n\n variablesAndValues?.forEach((varAndValue) => {\n parsedMessage = parsedMessage.replace(\n varAndValue.variable,\n varAndValue.value\n );\n });\n\n if (parsedMessage && sheetValues.length > 0) {\n setActioning((prev) => ({\n ...prev,\n content: parsedMessage,\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentTemplate, sheetValues]);\n\n useEffect(() => {\n if (importFile) {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n uploadInput.type = 'file';\n uploadInput.accept = 'application/csv';\n uploadInput.onchange = async (e: any) => {\n const file = e.target.files?.item(0);\n\n if (\n file.type === 'text/csv' ||\n file.type === 'application/vnd.ms-excel'\n ) {\n setActioning((prev) => ({ ...prev, file: file.name }));\n\n const reader = new FileReader();\n reader.readAsText(file, 'UTF-8');\n setFile(file);\n reader.onload = async function (e) {\n if (reader && reader.result) {\n if (typeof reader.result === 'string') {\n const jsonArray = await csv({\n delimiter: [',', ';'],\n }).fromString(reader.result);\n\n const headers = Object.keys(jsonArray[0]).map(\n (header) => header\n );\n\n const values: string[] = [];\n for (let i = 0; i < headers.length; i++) {\n values.push(jsonArray[0][headers[i]]);\n }\n\n setSheetValues(values);\n setActioning((prev) => ({\n ...prev,\n sheet_values: values,\n }));\n }\n }\n };\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.invalidFileFormat')\n );\n }\n };\n\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n setImportFile(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [importFile]);\n\n useEffect(() => {\n getFormattedContent();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentTemplate, sheetValues]);\n\n async function loadCampaigns() {\n setLoading(true);\n\n try {\n // const listCampaigns: ICampaign[] = [];\n\n const response = await GetCampaigns({ bot_name }, dispatchApp);\n\n if (response.Success) {\n const allActionings = response.Data.data;\n\n setCampaigns(allActionings);\n } else throw new Error('erro');\n\n // userOrganizations.forEach(async (organization) => {\n // const items = await GetCampaigns(\n // { bot_name, organization: organization.name },\n // dispatchApp\n // );\n\n // const foundCampaigns = items.Data.data;\n\n // if (foundCampaigns) {\n // foundCampaigns.forEach((campaign) => {\n // listCampaigns.push(campaign);\n // });\n // }\n // setCampaigns([...campaigns, ...listCampaigns]);\n // });\n } catch (error: any) {\n toastNotification('error', getTranslation('toast.error.searchCampaigns'));\n }\n\n setLoading(false);\n }\n\n async function handleCreateActioning() {\n setLoading(true);\n let result = false;\n if (file) {\n const fileUpload = await handleFileUpload(file);\n\n if (fileUpload) {\n const response = await CreateActioning(\n {\n ...actioning,\n file: fileUpload.url,\n },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.actioningCreated'),\n 3000\n );\n result = true;\n handleClose();\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.actioningCreated')\n );\n result = false;\n }\n } else {\n toastNotification('error', getTranslation('toast.error.fileUpload'));\n result = false;\n }\n setLoading(false);\n return result;\n }\n }\n\n async function handleUpdateActioning() {\n let fileUpload = { error: false, url: actioning.file };\n if (file) fileUpload = await handleFileUpload(file);\n\n if (!fileUpload.error) {\n const response = await UpdateActioning(\n {\n ...actioning,\n\n file: fileUpload.url,\n },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.actioningUpdated'),\n 3000\n );\n handleClose();\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.actioningUpdated')\n );\n }\n } else {\n toastNotification('error', getTranslation('toast.error.fileUpload'));\n }\n }\n\n function validateActioning(actioning: IActioning) {\n const errors: IActioningsError = {\n campaign: '',\n file: '',\n scheduledDate: '',\n };\n\n if (actioning.campaign_name === '') {\n errors.campaign = getTranslation('validations.required', {\n field: getTranslation('campaign'),\n });\n }\n\n if (actioning.file === '') {\n errors.file = getTranslation('validations.required', {\n field: 'File',\n });\n }\n\n if (isBefore(new Date(actioning.scheduled_date), new Date())) {\n errors.scheduledDate = getTranslation(\n 'validations.selectedDateBeforeCurrentDate'\n );\n }\n\n setError(errors);\n\n if (\n errors.campaign === '' &&\n errors.file === '' &&\n errors.scheduledDate === ''\n )\n actioning._id ? handleUpdateActioning() : handleCreateActioning();\n }\n\n function handleChangeCampaign(\n e: ChangeEvent<{ name?: string | undefined; value: unknown }>\n ) {\n const campaign = campaigns.find(\n (campaign) => campaign.name === e.target.value\n );\n if (campaign) {\n setActioning((prev) => ({\n ...prev,\n campaign_name: String(e.target.value),\n }));\n }\n }\n const handleDownload = (url: string): void => {\n const link = document.createElement('a');\n link.href = url;\n link.download = 'relatorio.csv';\n link.click();\n };\n return (\n <>\n \n \n \n \n \n setActioning((prev) => ({\n ...prev,\n name: e.target.value,\n }))\n }\n />\n \n \n \n \n \n setActioning((prev) => ({\n ...prev,\n description: e.target.value,\n }))\n }\n />\n \n \n\n \n \n \n {\n setActioning((prev) => ({\n ...prev,\n scheduled_date: new Date(`${date}`),\n }));\n }}\n />\n \n \n \n {readOnly ? (\n \n ) : (\n \n \n {getTranslation('campaign')}\n \n handleChangeCampaign(e)}\n error={!!error.campaign}\n label={getTranslation('campaign')}\n >\n {campaigns.map((campaign) => (\n \n {campaign.name}\n \n ))}\n \n \n {error.campaign}\n \n \n )}\n \n \n \n \n Status\n \n \n \n {getTranslation('notStarted')}\n \n \n {getTranslation('inProgress')}\n \n \n {getTranslation('concluded')}\n \n Error\n \n \n \n \n\n \n \n \n \n setImportFile(true)}\n disabled={readOnly}\n >\n {getTranslation('loadFile')}\n \n \n\n {actioning.file && (\n \n \n \n \n \n \n )}\n\n {actioning.log_file && (\n }\n onClick={() => handleDownload(actioning.log_file || '')}\n >\n {'Baixar Resultado'}\n {loading && }\n \n )}\n \n\n \n \n }\n onClick={() => validateActioning(actioning)}\n disabled={readOnly}\n >\n {getTranslation('footerButtons.saveAndExit')}\n {loading && }\n \n \n \n \n \n );\n}\n","export interface IActioning {\n _id?: string;\n\tname: string;\n scheduled_date: Date;\n campaign_name: string;\n status: IActioningStatus;\n bot_name: string;\n creation_date: Date;\n description: string;\n file: string;\n organization: string;\n content: string;\n sheet_values?: string[];\n\tlog_file?: string;\n}\n\nexport type IActioningStatus = 'concluded' | 'in_progress' | 'not_started' | 'error';\n\nexport interface IGetActioningsRequest\n extends Pick {}\nexport interface IGetActioningsResponse {\n data: IActioning[];\n}\n\nexport interface IGetOneActioningRequest extends IActioning {\n organization: string;\n campaignId: string;\n}\n\nexport interface IGetOneActioningResponse {\n data: IActioning;\n}\n\nexport interface ICreateActioningRequest extends IActioning {}\n\nexport interface ICreateActioningResponse {\n data: IActioning;\n}\n\nexport interface IUpdateActioningRequest extends IActioning {}\n\nexport interface IUpdateActioningResponse {\n data: IActioning;\n}\n\nexport interface IDeleteActioningRequest\n extends Pick {}\n\nexport interface ITriggerActioningRequest\n extends Pick {}\n\nexport const emptyActioning: IActioning = {\n scheduled_date: new Date(),\n\tname: '',\n campaign_name: '',\n status: 'not_started',\n bot_name: '',\n creation_date: new Date(),\n description: '',\n file: '',\n organization: '',\n content: '',\n};\n","import React, { useEffect, useState } from 'react';\nimport {\n Slide,\n Dialog,\n AppBar,\n IconButton,\n Toolbar,\n Typography,\n TextField,\n InputAdornment,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n Tooltip,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport * as S from './styles';\nimport * as SS from '../styles';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport MttButton from 'components/Material/MttButton/MttButton';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport AddIcon from '@material-ui/icons/Add';\nimport SearchIcon from '@material-ui/icons/Search';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport {\n // formatDateHour,\n hour,\n} from 'utils/Date';\nimport { CreateOrEditActioning } from './CreateOrEditActioning';\nimport {\n emptyActioning,\n IActioning,\n IActioningStatus,\n} from 'services/CampaignService/ActioningsService/types';\nimport {\n DeleteActioning,\n GetActionings,\n} from 'services/CampaignService/ActioningsService';\n\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport { CircularProgress } from '@material-ui/core';\nimport CampaignIcon from 'components/Icons/CampaignIcon';\nimport TemplateIcon from 'components/Icons/TemplateIcon';\nimport {\n // CloudDownload,\n Refresh,\n Visibility,\n} from '@material-ui/icons';\nimport { isBefore } from 'date-fns';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface ModalTemplatesProps {\n open: boolean;\n close: () => void;\n}\n\nexport function ModalActioning({ open, close }: ModalTemplatesProps) {\n const classes = SS.useStyles();\n\n const { dispatch: dispatchApp } = useApp();\n const { toastNotification, dispatch, state } = useFlow();\n const { hasPermissionToAction } = usePermissions();\n const { botName } = state;\n\n const bot_name = botName || '';\n const isCommunicationGuidelineWrite = hasPermissionToAction({\n company: state.companyName!,\n agent: state.botName!,\n action: ['communication_guideline:write'],\n });\n const { getTranslation } = useTranslator();\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(5);\n const [openModalCreateOrEditActioning, setOpenModalCreateOrEditActioning] =\n useState(false);\n const [loading, setLoading] = useState(false);\n const [search, setSearch] = useState('');\n\n const [actionings, setActionings] = useState([]);\n const [currentActioning, setCurrentActioning] =\n useState(emptyActioning);\n\n const filteredActionings =\n search.length > 0\n ? actionings.filter((t) => t.bot_name.includes(search))\n : actionings;\n\n useEffect(() => {\n if (!openModalCreateOrEditActioning) loadActionings();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, openModalCreateOrEditActioning]);\n\n async function loadActionings(refresh?: boolean) {\n setLoading(true);\n\n // const listActionings: IActioning[] = [];\n try {\n const response = await GetActionings(\n { bot_name, organization: '' },\n dispatchApp\n );\n\n if (response.Success) {\n const allActionings = response.Data.data;\n\n setActionings(\n allActionings.sort((a, b) => {\n if (\n isBefore(\n new Date(a.creation_date).getTime(),\n new Date(b.creation_date).getTime()\n )\n )\n return 1;\n else return -1;\n })\n );\n } else throw new Error('erro');\n\n // userOrganizations.forEach(async (organization) => {\n // const items = await GetActionings(\n // { bot_name, organization: organization.name },\n // dispatchApp\n // );\n\n // const foundActionings = items.Data.data;\n\n // if (foundActionings) {\n // foundActionings.forEach((actioning) => {\n // listActionings.push(actioning);\n // });\n // }\n\n // const updatedActionings = refresh\n // ? [...listActionings]\n // : [...actionings, ...listActionings];\n\n // setActionings(\n // updatedActionings.sort((a, b) => {\n // if (\n // isBefore(\n // new Date(a.scheduled_date).getTime(),\n // new Date(b.scheduled_date).getTime()\n // )\n // )\n // return 1;\n // else return -1;\n // })\n // );\n // });\n } catch (error: any) {\n toastNotification(\n 'error',\n getTranslation('toast.error.searchActionings')\n );\n }\n\n setLoading(false);\n }\n\n function handleClose() {\n setPage(0);\n close();\n }\n\n function handleCloseNewActioning() {\n setActionings([]);\n setOpenModalCreateOrEditActioning(false);\n }\n\n function handleNewActioning() {\n setCurrentActioning(emptyActioning);\n setOpenModalCreateOrEditActioning(true);\n }\n\n function handleChangeRowsPerPage(e: { target: { value: string | number } }) {\n setRowsPerPage(+e.target.value);\n setPage(0);\n }\n\n function handleChangePage(event: any, newPage: React.SetStateAction) {\n setPage(newPage);\n }\n\n function getColor(status: IActioningStatus) {\n switch (status) {\n case 'concluded':\n return '#79e16d';\n case 'in_progress':\n return '#ffb84d';\n case 'not_started':\n return '#6dc1e1';\n case 'error':\n default:\n return '#cd5334';\n }\n }\n\n async function handleRemoveActioning(actioning: IActioning) {\n const response = await DeleteActioning(\n {\n ...actioning,\n bot_name,\n },\n dispatchApp\n );\n\n if (response.Success) {\n toastNotification(\n 'success',\n getTranslation('toast.success.actioningDeleted')\n );\n setActionings(actionings.filter((act) => actioning._id !== act._id));\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.actioningDeleted')\n );\n }\n }\n\n function handleEditActioning(actioning: IActioning) {\n setCurrentActioning(actioning);\n setOpenModalCreateOrEditActioning(true);\n }\n\n function getPrettyStatus(status: IActioningStatus) {\n switch (status) {\n case 'concluded':\n return getTranslation('concluded');\n case 'in_progress':\n return getTranslation('inProgress');\n case 'error':\n return getTranslation('error');\n case 'not_started':\n default:\n return getTranslation('notStarted');\n }\n }\n\n // function downloadLogFile(uri: string, name: string) {\n // const link = document.createElement('a');\n // link.download = name;\n // link.href = uri;\n // document.body.appendChild(link);\n // link.click();\n // document.body.removeChild(link);\n // }\n\n const renderTemplatesList = () => (\n \n \n \n \n {getTranslation('actioningsList')}\n \n \n \n loadActionings(true)}>\n \n \n \n {isCommunicationGuidelineWrite && (\n }\n onClick={() => handleNewActioning()}\n >\n {getTranslation('modal.campaigns.actioning.newButton')}\n \n )}\n \n \n \n option.name)}\n renderInput={(params) => (\n setSearch(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n )}\n />\n \n {loading ? (\n
    \n \n
    \n ) : actionings.length > 0 ? (\n
    \n \n \n \n \n \n {getTranslation('scheduledDate')}\n \n \n {getTranslation('name')}\n \n \n {getTranslation('campaign')}\n \n Status\n \n {getTranslation('creationDate')}\n \n \n \n \n \n {(rowsPerPage > 0\n ? filteredActionings.slice(\n page * rowsPerPage,\n page * rowsPerPage + rowsPerPage\n )\n : filteredActionings\n ).map((actioning, index) => {\n const actioningEditable =\n actioning.status === 'not_started';\n\n const viewOrEditTooltip =\n actioning.status !== 'not_started'\n ? getTranslation('view')\n : getTranslation('edit');\n\n // const actioningConcludedOrErrored =\n // actioning.status === 'concluded' ||\n // actioning.status === 'error';\n\n return (\n \n \n {`${new Date(\n `${actioning.scheduled_date}`\n ).toLocaleDateString()} \n\t\t\t\t\t\t\t\t\t\t\t\t\t${new Date(actioning.scheduled_date).toLocaleTimeString()}`}\n \n {actioning.name}\n \n {actioning.campaign_name}\n \n \n \n \n {getPrettyStatus(actioning.status)}\n \n \n \n {`${new Date(\n `${actioning.creation_date}`\n ).toLocaleDateString()} \n\t\t\t\t\t\t\t\t\t\t\t\t\t${hour(new Date(actioning.creation_date))}`}\n \n \n {/* {actioningConcludedOrErrored && (\n \n {\n if (actioning.log_file)\n downloadLogFile(\n actioning.log_file,\n `log-file-${\n actioning.name\n }-${formatDateHour(\n actioning.creation_date\n )}`\n );\n }}\n >\n \n \n \n )} */}\n \n handleEditActioning(actioning)}\n >\n {actioningEditable ? (\n \n ) : (\n \n )}\n \n \n\n {actioning.status === 'not_started' && (\n \n handleRemoveActioning(actioning)}\n >\n \n \n \n )}\n \n \n );\n })}\n \n \n \n
    \n ) : (\n

    \n {getTranslation('noActioningsResult')}\n

    \n )}\n
    \n
    \n
    \n \n {\n dispatch({ type: 'closeModalCampaignActioning' });\n dispatch({ type: 'openModalCampaignCampaign' });\n }}\n >\n \n \n \n \n {\n dispatch({ type: 'closeModalCampaignActioning' });\n dispatch({ type: 'openModalCampaignTemplates' });\n }}\n >\n \n \n \n
    \n \n \n \n \n \n
    \n
    \n );\n\n return (\n <>\n \n \n \n \n {getTranslation('actionings')}\n \n handleCloseNewActioning()\n : () => handleClose()\n }\n aria-label=\"close\"\n >\n \n \n \n \n \n {openModalCreateOrEditActioning ? (\n \n ) : (\n renderTemplatesList()\n )}\n \n \n \n );\n}\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst SchemaIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default SchemaIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst VariablesIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default VariablesIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst AdminIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AdminIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst TrainingIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default TrainingIcon;\n","import React from 'react';\n\nexport interface ISVGProps {\n size?: string;\n color?: string;\n}\n\nconst FintalkIcon: React.FC = (props) => {\n const { size, color } = props;\n\n return (\n \n fintalk\n \n \n \n \n \n \n );\n};\n\nexport default FintalkIcon;\n","import SchemaIcon from 'components/Icons/SchemaIcon';\nimport VariablesIcon from 'components/Icons/VariablesIcon';\nimport AdminIcon from 'components/Icons/AdminIcon';\n// import BotConfigIcon from 'components/Icons/BotConfigIcon';\n// import SupervisorAccountIcon from '@material-ui/icons/SupervisorAccount';\nimport TrainingIcon from 'components/Icons/TrainingIcon';\nimport SmsIcon from '@material-ui/icons/Sms';\nimport SmsFailedIcon from '@material-ui/icons/SmsFailed';\nimport SendIcon from '@material-ui/icons/Send';\nimport RestoreIcon from '@material-ui/icons/Restore';\nimport BeenhereIcon from '@material-ui/icons/Beenhere';\nimport VpnKeyIcon from '@material-ui/icons/VpnKey';\nimport BusinessIcon from '@material-ui/icons/Business';\nimport FlagIcon from '@material-ui/icons/Flag';\nimport StarsIcon from '@material-ui/icons/Stars';\nimport ForumIcon from '@material-ui/icons/Forum';\nimport ImportExportIcon from '@material-ui/icons/ImportExport';\n// import LockIcon from '@material-ui/icons/Lock';\nimport WidgetsIcon from '@material-ui/icons/Widgets';\nimport { IOptions } from 'views/Canvas/Main/types';\nimport { GetApp, Publish } from '@material-ui/icons';\n\nimport useTranslator from './Translator';\nimport TemplateIcon from 'components/Icons/TemplateIcon';\nimport CampaignIcon from 'components/Icons/CampaignIcon';\nimport ActioningIcon from 'components/Icons/ActioningIcon';\nimport ColorLensIcon from '@material-ui/icons/ColorLens';\nimport FingerprintIcon from '@material-ui/icons/Fingerprint';\nimport FintalkIcon from 'components/Icons/FintalkIcon';\n\ntype Props = {\n handleHistoryConversation: () => void;\n};\n\nexport const slugsListOptions = {\n EDIT_ACCESS_KEYS: 'EDIT_ACCESS_KEYS',\n IMPORT_EXPORT_BOT: 'IMPORT_EXPORT_BOT',\n MANAGE_ACCOUNT: 'MANAGE_ACCOUNT',\n MANAGE_COMPANY: 'MANAGE_COMPANY',\n MANAGE_PERMISSIONS: 'MANAGE_PERMISSIONS',\n OPEN_CAMPAIGN: 'OPEN_CAMPAIGN',\n MANAGE_CORRECT_SENTENCES: 'MANAGE_CORRECT_SENTENCES',\n MODAL_PHRASES_OF_INTENT: 'MODAL_PHRASES_OF_INTENT',\n BOT_HISTORY: 'BOT_HISTORY',\n OPEN_CAMPAIGN_TEMPLATES: 'OPEN_CAMPAIGN_TEMPLATES',\n OPEN_CAMPAIGN_CAMPAIGN: 'OPEN_CAMPAIGN_CAMPAIGN',\n OPEN_CAMPAIGN_ACTIONING: 'OPEN_CAMPAIGN_ACTIONING',\n OPEN_FALAZAP_THEME: 'OPEN_FALAZAP_THEME',\n OPEN_FALAZAP_TOKEN: 'OPEN_FALAZAP_TOKEN',\n};\n\nexport default function useSidebarItems({ handleHistoryConversation }: Props) {\n const { getTranslation } = useTranslator();\n\n const listMenuOptionsAdmin: IOptions[] = [\n {\n canBeUsed: ['adm'],\n icon: ,\n name: getTranslation('menu.adminChildren.manageOrganization'),\n path: '/teste',\n slug: slugsListOptions.MANAGE_COMPANY,\n },\n // {\n // canBeUsed: ['adminStaff', 'admin'],\n // icon: ,\n // name: getTranslation('menu.adminChildren.managePermissions'),\n // path: '/teste',\n // slug: slugsListOptions.MANAGE_PERMISSIONS,\n // },\n ];\n\n const listLibrary: Array = [\n {\n canBeUsed: ['flow:write'],\n name: getTranslation('menu.libraryChildren.defaultTemplates'),\n path: '/teste',\n icon: ,\n },\n {\n canBeUsed: ['flow:write'],\n name: getTranslation('menu.libraryChildren.savedBlocks'),\n path: '/',\n icon: ,\n },\n {\n canBeUsed: ['flow:write'],\n name: getTranslation('menu.libraryChildren.saveSelectedBlocks'),\n path: '',\n icon: ,\n },\n ];\n\n const listImporExportBot: Array = [\n {\n canBeUsed: ['flow:publish'],\n name: getTranslation('menu.uploadDownloadAgentChildren.upload'),\n path: '/',\n icon: ,\n },\n {\n canBeUsed: ['flow:publish'],\n name: getTranslation('menu.uploadDownloadAgentChildren.download'),\n path: '/',\n icon: ,\n },\n ];\n\n const listTraining: Array = [\n {\n canBeUsed: ['flow:write'],\n name: getTranslation('menu.trainingChildren.createUpdatePhrases'),\n path: '/',\n icon: ,\n slug: slugsListOptions.MODAL_PHRASES_OF_INTENT,\n },\n {\n canBeUsed: ['flow:write'],\n name: getTranslation('menu.trainingChildren.fixPhrases'),\n path: '/',\n icon: ,\n slug: slugsListOptions.MANAGE_CORRECT_SENTENCES,\n },\n ];\n\n const listMenuOptions: IOptions[] = [\n {\n canBeUsed: ['flow:read', 'flow:write'],\n icon: ,\n name: getTranslation('menu.flows'),\n path: '/',\n },\n {\n canBeUsed: ['flow:write'],\n icon: ,\n name: getTranslation('menu.variables'),\n path: '/entities',\n },\n {\n canBeUsed: ['flow:write'],\n icon: ,\n name: getTranslation('menu.library'),\n path: '/',\n children: listLibrary,\n },\n {\n action: () => handleHistoryConversation(),\n canBeUsed: ['flow:read', 'flow:publish', 'flow:write'],\n icon: ,\n name: getTranslation('menu.conversationHistory'),\n },\n {\n canBeUsed: ['flow:publish'],\n icon: ,\n name: getTranslation('menu.uploadDownloadAgent'),\n path: '/',\n slug: slugsListOptions.IMPORT_EXPORT_BOT,\n children: listImporExportBot,\n },\n {\n canBeUsed: ['flow:publish'],\n icon: ,\n name: getTranslation('menu.publishHistory'),\n slug: slugsListOptions.BOT_HISTORY,\n },\n {\n canBeUsed: ['access_key:read', 'access_key:write'],\n icon: ,\n name: getTranslation('menu.editAccessKeys'),\n path: '/teste',\n slug: slugsListOptions.EDIT_ACCESS_KEYS,\n },\n ];\n\n const listCampaignOptions: IOptions[] = [\n {\n canBeUsed: [\n 'communication_guideline:read',\n 'communication_guideline:write',\n ],\n icon: ,\n name: 'Templates',\n path: '/',\n slug: slugsListOptions.OPEN_CAMPAIGN_TEMPLATES,\n },\n {\n canBeUsed: [\n 'communication_guideline:read',\n 'communication_guideline:write',\n ],\n icon: ,\n name: getTranslation('campaign'),\n path: '/',\n slug: slugsListOptions.OPEN_CAMPAIGN_CAMPAIGN,\n },\n {\n canBeUsed: [\n 'communication_guideline:read',\n 'communication_guideline:write',\n ],\n icon: ,\n name: getTranslation('actionings'),\n path: '/',\n slug: slugsListOptions.OPEN_CAMPAIGN_ACTIONING,\n },\n ];\n\n const falazapOptions: IOptions[] = [\n {\n canBeUsed: ['adm'],\n icon: ,\n name: getTranslation('menu.falazapConfig.editTheme'),\n path: '/',\n slug: slugsListOptions.OPEN_FALAZAP_THEME,\n disabled: true,\n },\n {\n canBeUsed: ['adm'],\n icon: ,\n name: getTranslation('menu.falazapConfig.identificationToken'),\n path: '/',\n slug: slugsListOptions.OPEN_FALAZAP_TOKEN,\n },\n ];\n\n const listAdminStuff: IOptions[] = [\n {\n canBeUsed: ['adm'],\n icon: ,\n name: getTranslation('menu.falazapConfig.title'),\n path: '/',\n children: falazapOptions,\n },\n {\n canBeUsed: [\n 'communication_guideline:read',\n 'communication_guideline:write',\n ],\n icon: ,\n name: getTranslation('menu.communicationRuler'),\n path: '/',\n slug: slugsListOptions.OPEN_CAMPAIGN,\n children: listCampaignOptions,\n },\n {\n canBeUsed: ['*'],\n icon: ,\n name: getTranslation('menu.training'),\n path: '/',\n children: listTraining,\n },\n {\n canBeUsed: ['adm'],\n icon: ,\n name: getTranslation('menu.admin'),\n path: '/',\n children: listMenuOptionsAdmin,\n },\n ];\n\n return {\n listMenuOptions,\n listMenuOptionsAdmin,\n listLibrary,\n listCampaignOptions,\n listAdminStuff,\n };\n}\n","import { IconButton, CircularProgress, Tooltip } from '@material-ui/core';\nimport useTranslator from 'utils/hooks/Translator';\nimport PublishIcon from '@material-ui/icons/Publish';\nimport useAgents from 'utils/hooks/useAgents';\nimport { useState } from 'react';\n\nexport function PublishButton() {\n const { getTranslation } = useTranslator();\n const { isAgentFreeToUse, publishAgent } = useAgents();\n const [loadPublish, setLoadPublish] = useState(false);\n\n const handlePublish = async () => {\n const botInUse = await isAgentFreeToUse(true);\n if (botInUse) {\n if (loadPublish) return;\n setLoadPublish(true);\n await publishAgent();\n setLoadPublish(false);\n }\n };\n\n return (\n \n \n {loadPublish ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import styled from 'styled-components';\nimport MttGrid from 'components/Material/MttGrid/MttGrid';\nimport { Grid, createStyles, makeStyles } from '@material-ui/core';\n\nexport const ContainerDialog = styled(MttGrid)<{ colorHeader?: string }>`\n width: 100%;\n height: 100%;\n\n padding-top: 64px;\n\n overflow: hidden;\n\n .MuiAppBar-colorPrimary {\n background-color: #6c50a4;\n position: absolute;\n }\n\n button {\n padding: 0;\n }\n`;\n\nexport const Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n\n min-height: 300px;\n overflow-wrap: break-word;\n`;\n\nexport const GridInfo = styled(Grid)`\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n height: 100%;\n margin-top: -24px;\n\n p {\n margin: 16px;\n text-align: center;\n }\n\n button {\n letter-spacing: 2px;\n }\n`;\n\nexport const TokenExistsContainer = styled.div`\n max-width: 600px;\n word-break: break-all;\n flex-direction: column;\n\n text-align: center;\n\n p {\n margin: 16px;\n }\n\n button {\n letter-spacing: 1px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\tsvg {\n\t\t\tmargin-left: 6px;\n\t\t}\n }\n`;\n\nexport const ButtonsContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n padding: 12px;\n\n gap: 8px;\n`;\n\nexport const GeneratingTokenContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n flex-direction: column;\n\n gap: 8px;\n`;\n\nexport const useStyles = makeStyles(() =>\n createStyles({\n toolbar: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n dialog: {\n background: '#F2F2F2',\n overflowY: 'hidden',\n },\n input: {\n background: '#FFFFFF',\n },\n })\n);\n","import { IAppContextActions } from 'contexts/App/types';\nimport { json } from '../RequestService';\nimport { IBaseResponse } from '../RequestService/Response';\nimport {\n IGetCredentialsResponse,\n IGetIdentityTokenResponse,\n IdentityTokenRequest,\n} from './types';\n\nconst service = 'falazap';\nconst identityUrl = 'identity-token';\nconst credentialsUrl = 'credentials';\n\nexport const GetCredentials = async (\n botName: string,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${service}/${credentialsUrl}/${botName}`;\n return json('GET', action, dispatch);\n};\n\nexport const GetIdentityToken = async (\n { botName, access_key, secret_key }: IdentityTokenRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${service}/${identityUrl}/${botName}`;\n return json('GET', action, dispatch, undefined, {\n access_key,\n secret_key,\n });\n};\n\nexport const CreateIdentityToken = async (\n { botName, access_key, secret_key }: IdentityTokenRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${service}/${identityUrl}/${botName}`;\n return json('POST', action, dispatch, undefined, {\n access_key,\n secret_key,\n });\n};\n\nexport const UpdateIdentityToken = async (\n { botName, access_key, secret_key }: IdentityTokenRequest,\n dispatch: React.Dispatch\n): Promise> => {\n const action = `${service}/${identityUrl}/${botName}`;\n return json('PATCH', action, dispatch, undefined, {\n access_key,\n secret_key,\n });\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport {\n Dialog,\n AppBar,\n Toolbar,\n Typography,\n IconButton,\n Slide,\n Button,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport CloseIcon from '@material-ui/icons/Close';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport { CircularProgress } from '@material-ui/core';\n\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\nimport RefreshIcon from '@material-ui/icons/Refresh';\n\nimport * as S from './styles';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport {\n CreateIdentityToken,\n GetCredentials,\n GetIdentityToken,\n UpdateIdentityToken,\n} from 'services/FalazapTokenService';\nimport { useApp } from 'contexts/App/appContext';\nimport { FalazapCredentials } from 'services/FalazapTokenService/types';\nimport useTranslator from 'utils/hooks/Translator';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ntype Credentials = Pick;\n\nexport function ModalFalazapToken() {\n const { dispatch: dispatchApp } = useApp();\n const { dispatch, state, toastNotification } = useFlow();\n const { getTranslation } = useTranslator();\n const [token, setToken] = useState('');\n const [loading, setLoading] = useState(false);\n const [loadingMessage, setLoadingMessage] = useState('');\n const [credentials, setCredentials] = useState();\n const botName = state.botName;\n const classes = S.useStyles();\n\n function handleClose() {\n dispatch({\n type: 'closeModalFalazapToken',\n });\n }\n\n const getToken = useCallback(\n async (rCredentials: Credentials) => {\n if (!botName || !rCredentials) return;\n setLoadingMessage(getTranslation('modal.falazapToken.searchingToken'));\n\n setLoading(true);\n try {\n const response = await GetIdentityToken(\n { botName, ...rCredentials },\n dispatchApp\n );\n\n if (response.Success) {\n const rToken = response.Data.data.token;\n setToken(rToken);\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.identificationTokenSearch')\n );\n }\n } catch (e) {\n const error = e as Error;\n toastNotification(\n 'error',\n `${getTranslation(\n 'toast.error.identificationTokenSearch'\n )}, ${error.message.toString()}`\n );\n }\n\n setLoading(false);\n },\n [botName, dispatchApp, getTranslation, toastNotification]\n );\n\n const init = useCallback(async () => {\n if (!botName) return;\n try {\n const response = await GetCredentials(botName, dispatchApp);\n if (response.Success) {\n const { access_key, secret_key } = response.Data.data;\n setCredentials({ access_key, secret_key });\n await getToken({ access_key, secret_key });\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.tokenCredentialsSearch')\n );\n }\n } catch (e) {\n const error = e as Error;\n toastNotification(\n 'error',\n `${getTranslation(\n 'toast.error.tokenCredentialsSearch'\n )}, ${error.message.toString()}`\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n init();\n }, [init]);\n\n async function handleCreateToken() {\n if (!botName || !credentials) return;\n try {\n setLoadingMessage(getTranslation('modal.falazapToken.generatingToken'));\n\n setLoading(true);\n const response = await CreateIdentityToken(\n { botName, ...credentials },\n dispatchApp\n );\n if (response.Success) {\n const rToken = response.Data.data.token;\n setToken(rToken);\n toastNotification(\n 'success',\n getTranslation('toast.success.identificationTokenCreated')\n );\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.identificationTokenCreated')\n );\n }\n } catch (e) {\n const error = e as Error;\n toastNotification(\n 'error',\n `${getTranslation(\n 'toast.error.identificationTokenCreated'\n )}, ${error.message.toString()}`\n );\n }\n\n setLoading(false);\n }\n\n async function handleUpdateToken() {\n if (!botName || !credentials) return;\n\n try {\n setLoadingMessage(getTranslation('modal.falazapToken.updatingToken'));\n setLoading(true);\n const response = await UpdateIdentityToken(\n { botName, ...credentials },\n dispatchApp\n );\n if (response.Success) {\n const rToken = response.Data.data.token;\n setToken(rToken);\n toastNotification(\n 'success',\n getTranslation('toast.success.identificationTokenUpdated')\n );\n } else {\n toastNotification(\n 'error',\n getTranslation('toast.error.identificationTokenUpdated')\n );\n }\n } catch (e) {\n const error = e as Error;\n toastNotification(\n 'error',\n `${getTranslation(\n 'toast.error.identificationTokenUpdated'\n )}, ${error.message.toString()}`\n );\n }\n }\n\n async function handleCopyToken() {\n await navigator.clipboard.writeText(token);\n toastNotification(\n 'success',\n getTranslation('modal.falazapToken.tokenCopied')\n );\n }\n\n if (!state.openModalFalazapToken) return null;\n\n const tokenDoesNotExistsBody = () =>\n loading ? (\n \n \n {loadingMessage}\n \n \n \n ) : (\n \n \n \n {getTranslation('modal.falazapToken.tokenNotCreatedMessage')}\n
    \n {getTranslation('modal.falazapToken.generateTokenMessage')}\n
    \n \n
    \n );\n\n const tokenExistsBody = () => (\n \n \n Token\n \n {token}\n \n \n \n \n \n );\n\n return (\n \n \n \n \n \n {getTranslation('modal.falazapToken.title')}\n \n \n \n \n \n \n \n \n {!token ? tokenDoesNotExistsBody() : tokenExistsBody()}\n \n \n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { IconButton, TextField, Tooltip, Typography } from '@material-ui/core';\nimport AddIcon from '@material-ui/icons/Add';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { useLocation } from 'react-router-dom';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\n\nimport {\n AutoCompleteOption,\n AutoCompleteWrap,\n StyledMttButtonPurple,\n BotAndGroupInfo,\n LabelTitle,\n ImportExportIcons,\n} from './styles';\nimport { GetBotsGroups } from 'services/BotService';\nimport {\n UpdateLastAccess,\n ReleaseGroupAccess,\n GetGroupIsLiberated,\n} from 'services/FlowService';\nimport { Group } from 'contexts/Flow/types';\n\nimport { Autocomplete } from '@material-ui/lab';\nimport { createFilterOptions } from '@material-ui/lab/Autocomplete';\nimport { localStore } from 'utils/Stores';\n\nimport { CloudDownload, CloudUpload } from '@material-ui/icons';\n\nimport { exportGroup, importGroup } from 'utils/ImportExportGroup';\nimport { GetFlags } from 'services/FlagsService';\nimport useTranslator from 'utils/hooks/Translator';\nimport { usePermissions } from 'contexts/Permissions/permissionsContext';\nimport { GetProject } from 'services/CompaniesService/Projects';\nimport { IProjectResponse } from 'services/CompaniesService/Projects/types';\nimport { ChangeProjectProps } from './types';\nimport { GetFlexBlocks } from 'services/FlexBlocksService';\n\ninterface IProps {\n setDeleteGroupSelected: React.Dispatch>;\n isClearFields: boolean;\n}\n\ninterface LastFielsProps {\n companyName: string;\n projectName: string;\n agent: string;\n group: string;\n}\n\nconst RenderBots = ({ setDeleteGroupSelected, isClearFields }: IProps) => {\n const location = useLocation();\n const {\n dispatch,\n saveFlow,\n toastNotification,\n state,\n loadFlow,\n mountNodeContent,\n } = useFlow();\n\n const { state: permissionsState, hasPermissionToAction } = usePermissions();\n\n const { companies } = permissionsState;\n\n const dispatchApp = useApp().dispatch;\n\n const [lastFields, setLastFields] = useState({\n companyName: '',\n projectName: '',\n agent: '',\n group: '',\n });\n\n const { botName, groupsNames, bot } = state;\n const [groupsNamesLocal, setGroupsNamesLocal] = useState([]);\n const [botValue, setBotValue] = useState('');\n const [currentCompany, setCurrentCompany] = useState('');\n const [project, setProject] = useState();\n const [currentProject, setCurrentProject] = useState('');\n const defaultFilterOptions = createFilterOptions();\n\n const { getTranslation } = useTranslator();\n const closeTranslated = getTranslation('close');\n const openTranslated = getTranslation('open');\n const noResultsTranslated = getTranslation('noResults');\n\n const isFlowWrite = hasPermissionToAction({\n company: state.companyName || '',\n agent: state.botName || '',\n action: ['flow:write'],\n });\n\n const companiesNames = useMemo(() => {\n return companies.map((company) => company.name).sort();\n }, [companies]);\n\n const projectsNames = useMemo(() => {\n const company = companies.find(\n (company) => company.name === currentCompany\n );\n if (company) return company.projects.map((project) => project.name).sort();\n else return [];\n }, [currentCompany, companies]);\n\n const agents = useMemo(() => {\n const company = companies.find(\n (company) => company.name === currentCompany\n );\n if (company && project)\n return project.agents\n .filter((agent) =>\n company.agents.some((agentkey) => agentkey.name === agent)\n )\n .sort();\n return [];\n }, [companies, currentCompany, project]);\n\n useEffect(() => {\n const lastFields = localStore.get('lastFields');\n if (lastFields) {\n setLastFields(JSON.parse(lastFields));\n }\n }, [groupsNames]);\n\n useEffect(() => {\n setGroupsNamesLocal(groupsNames.map((group) => group));\n }, [groupsNames]);\n\n useEffect(() => {\n setBotValue(state.botName || '');\n }, [state.botName]);\n\n useEffect(() => {\n if (companiesNames.length === 0 && !state.editorFlow) {\n setCurrentCompany('');\n setCurrentProject('');\n setBotValue('');\n } else {\n handleChangeCompany(lastFields.companyName || companiesNames[0]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [companiesNames, state.editorFlow]);\n\n useEffect(() => {\n if (isClearFields) {\n setCurrentCompany('');\n setBotValue('');\n setCurrentProject('');\n }\n }, [isClearFields]);\n\n const changeLastFields = ({\n companyName,\n projectName,\n agent,\n group,\n }: LastFielsProps) => {\n localStorage.setItem(\n 'lastFields',\n JSON.stringify({\n companyName,\n projectName,\n agent,\n group,\n })\n );\n };\n\n const fixGroupsNamesOrder = useCallback(() => {\n const curGroups = groupsNamesLocal;\n\n const principalIndex = curGroups.findIndex(\n (group) => group === 'principal'\n );\n const principal = curGroups[principalIndex];\n\n if (principalIndex >= 0) {\n curGroups.splice(principalIndex, 1);\n setGroupsNamesLocal([\n principal,\n ...curGroups.map((group) => group).sort(),\n ]);\n } else {\n setGroupsNamesLocal(curGroups.map((group) => group).sort());\n }\n }, [groupsNamesLocal]);\n\n const releaseGroup = async () => {\n if (state.idGroup && state.botName && state.isEditing) {\n await ReleaseGroupAccess(\n {\n bot_name: state.botName,\n groupName: state.idGroup,\n },\n dispatchApp\n );\n }\n\n state.botsUrls.urlFacebook = '';\n state.botsUrls.urlFalazap = '';\n state.botsUrls.urlTelegram = '';\n state.botsUrls.urlTwitter = '';\n state.botsUrls.urlWhatsApp = '';\n };\n\n const getAgentData = async (agent: string, company?: string) => {\n await updateFlow();\n\n await releaseGroup();\n const flagsResponse = await GetFlags(agent, dispatchApp);\n let flags;\n\n if (flagsResponse.Success) {\n flags = flagsResponse.Data.data.flags;\n }\n\n const response = await GetBotsGroups({ bot_name: agent }, dispatchApp);\n\n let groups = response.Data.data;\n bot.groups = groups;\n bot.bot_name = agent;\n\n if (Array.isArray(groups)) {\n const idGroup =\n groups.find((group) => group === lastFields.group) || 'principal';\n\n const isFlowRead = hasPermissionToAction({\n company: company || state.companyName || '',\n agent,\n action: ['flow:read', 'flow:write', 'flow:publish'],\n });\n\n if (\n idGroup &&\n state.editorFlow &&\n location.pathname === '/' &&\n isFlowRead\n ) {\n dispatch({ type: 'updateForm', data: { loading: true } });\n await loadFlow(idGroup, agent);\n } else {\n state.editorFlow?.clear();\n }\n\n const companyName = company || currentCompany;\n\n changeLastFields({\n companyName,\n agent,\n group: idGroup,\n projectName: currentProject,\n });\n\n dispatch({\n type: 'updateForm',\n data: {\n companyName,\n botName: agent,\n idGroup,\n groupsNames: groups,\n loading: false,\n bot,\n flags,\n },\n });\n }\n };\n\n const handleClearState = () => {\n state.editorFlow?.clear();\n dispatch({\n type: 'updateForm',\n data: {\n botName: '',\n idGroup: '',\n flags: [],\n bot: {\n _id: '',\n bot_name: '',\n groups: [],\n version: 0,\n },\n },\n });\n };\n\n const handleChangeCompany = async (companyName: string) => {\n const selectedCompany = companies.find(\n (company) => company.name === companyName\n );\n\n if (!selectedCompany) return;\n\n dispatch({\n type: 'updateForm',\n data: {\n companyName: selectedCompany.name,\n },\n });\n\n setCurrentCompany(selectedCompany.name);\n if (selectedCompany.projects[0]) {\n const projectName =\n selectedCompany.projects.find(\n (project) => project.name === lastFields.projectName\n )?.name ||\n selectedCompany.projects.sort((projectA, projectB) =>\n projectA.name.localeCompare(projectB.name)\n )[0].name;\n\n if (!!projectName)\n await handleChangeProject({\n project: projectName,\n company: selectedCompany.name,\n });\n\n changeLastFields({\n companyName: selectedCompany.name,\n agent: botName || '',\n group: state.idGroup || '',\n projectName: projectName,\n });\n } else {\n setCurrentProject('');\n handleClearState();\n }\n };\n\n const handleChangeProject = async ({\n project,\n e,\n company,\n }: ChangeProjectProps) => {\n const projectName = project || String(e?.target.textContent) || '';\n const companyName = company || currentCompany || '';\n const response = await GetProject(\n { projectName, companyName },\n dispatchApp\n );\n\n setCurrentProject(projectName);\n\n if (response.Success) {\n const selectedCompany = companies.find(\n (company) => company.name === companyName\n );\n\n if (!selectedCompany) return;\n\n const selectedProject = response.Data;\n setProject(response.Data);\n const botNameSelected =\n selectedProject.agents.find((agent) => agent === lastFields.agent) ||\n selectedProject?.agents\n .filter((agent) =>\n selectedCompany.agents.some((agentkey) => agentkey.name === agent)\n )\n .sort()[0] ||\n '';\n if (botNameSelected) await getAgentData(botNameSelected, companyName);\n else handleClearState();\n }\n };\n\n const handleChangeBot = async (\n e: React.ChangeEvent<{\n name?: string | undefined;\n textContent: unknown;\n }>\n ) => {\n const botNameSelected = String(e.target.textContent);\n await getAgentData(botNameSelected);\n };\n\n const handleChangeGroup = async (\n e: React.ChangeEvent<{\n name?: string | undefined;\n textContent: unknown;\n }>\n ) => {\n if (!e || !e.target.textContent || !state.editorFlow) return;\n const idGroup = String(e.target.textContent);\n await changeGroupFlow(idGroup);\n };\n\n const changeGroupFlow = async (group_id: string, deleteGroup = false) => {\n dispatch({ type: 'updateForm', data: { loading: true } });\n\n !deleteGroup && (await updateFlow());\n\n if (state.isEditing) {\n await ReleaseGroupAccess(\n {\n bot_name: botName || '',\n groupName: state.idGroup || '',\n },\n dispatchApp\n );\n }\n\n setLastFields({\n companyName: currentCompany,\n projectName: currentProject,\n agent: botName || '',\n group: group_id,\n });\n\n changeLastFields({\n companyName: currentCompany,\n agent: botName || '',\n group: group_id,\n projectName: currentProject,\n });\n\n await loadFlow(group_id, botName || '', false, deleteGroup);\n dispatch({\n type: 'updateForm',\n data: { idGroup: group_id, loading: false },\n });\n };\n\n const updateFlow = async () => {\n const groupLastVersion = localStore.get('groupLastVersion') || '';\n\n if (\n !!state.drawFlowRef &&\n !!state.editorFlow &&\n state.isEditing &&\n JSON.stringify(state.editorFlow.drawflow) !== groupLastVersion\n ) {\n const sBotAndGroup = localStore.get('current_bot_group');\n\n if (sBotAndGroup) {\n const { botName, groupName } = JSON.parse(sBotAndGroup);\n\n if (botName && groupName) {\n await UpdateLastAccess(\n {\n bot_name: botName,\n groupName,\n },\n dispatchApp\n );\n }\n }\n await saveFlow();\n }\n };\n\n function handleAddNewGroup() {\n if (botName) {\n dispatch({ type: 'openModalCreateGroup' });\n } else {\n toastNotification('warning', '*Selecione um bot para criar uma grupo!');\n }\n }\n\n const handleOpenModalDeleteGroup = async (\n e: React.MouseEvent,\n group: string\n ) => {\n e.stopPropagation();\n\n if (botName) {\n const isFlexGroup = group.startsWith('flex-');\n if (isFlexGroup) {\n const flexBlocksResponse = await GetFlexBlocks(\n state.botName!,\n dispatchApp\n );\n\n if (flexBlocksResponse.Data.data) {\n const flexBlocks = flexBlocksResponse.Data.data;\n const flexBlockBeingDeleted = flexBlocks.flex_blocks.find(\n (block) => `flex-${block.block_name}` === group\n );\n if (\n flexBlockBeingDeleted &&\n flexBlockBeingDeleted.groups_used.length > 0\n ) {\n const groups = flexBlockBeingDeleted.groups_used.map(\n (group) => group.group_name\n );\n\n toastNotification(\n 'error',\n `Não foi possível apagar esse grupo. Blocos Flex referentes a ele estão em uso no(s) grupo(s) \"${groups}\".`\n );\n return;\n }\n }\n }\n\n const response = await GetGroupIsLiberated(\n {\n bot_name: botName,\n groupName: group,\n },\n dispatchApp\n );\n if (!response.Data.group_is_liberated) {\n toastNotification(\n 'error',\n getTranslation('toast.error.agentOrGroupInUse', {\n object: getTranslation('group'),\n user: response.Data.current_user,\n status: getTranslation('agentOrGroupStatus.removed'),\n })\n );\n } else {\n const selectedGroup = groupsNames.find(\n (newGroup) => newGroup === group\n );\n if (selectedGroup)\n setDeleteGroupSelected({ id: selectedGroup, name: selectedGroup });\n }\n }\n };\n\n const importFileDefault = () => {\n const button = document.getElementById(\n 'import-button'\n ) as HTMLButtonElement;\n if (button) {\n const disabled = button.disabled;\n\n if (!disabled) {\n importGroup(state, toastNotification, mountNodeContent, {\n invalidFileForGroup: getTranslation(\n 'toast.error.invalidFileForGroup'\n ),\n invalidFileForPrincipal: getTranslation(\n 'toast.error.invalidFileForPrincipal'\n ),\n onlyValidForPrincipal: getTranslation(\n 'toast.error.onlyValidForPrincipal'\n ),\n });\n }\n }\n };\n\n const exportFileDefault = () => {\n exportGroup(state);\n };\n\n return (\n <>\n \n \n {getTranslation('company')}\n\n setBotValue(state.botName || '')}\n options={companiesNames}\n noOptionsText={noResultsTranslated}\n renderOption={(option) => (\n {option}\n )}\n onChange={(event: any) => {\n handleChangeCompany(String(event.target.textContent));\n }}\n style={{ width: '100%' }}\n openText={openTranslated}\n closeText={closeTranslated}\n renderInput={(params) => (\n \n )}\n />\n \n \n {getTranslation('project')}\n\n setCurrentProject(currentProject || '')}\n disabled={!currentCompany}\n options={projectsNames}\n noOptionsText={noResultsTranslated}\n renderOption={(option) => (\n {option}\n )}\n onChange={(event: any, newValue: string | null) => {\n setCurrentProject(newValue || '');\n handleChangeProject({ project: '', e: event });\n }}\n style={{ width: '100%' }}\n openText={openTranslated}\n closeText={closeTranslated}\n renderInput={(params) => (\n \n )}\n />\n \n \n {getTranslation('agent')}\n\n setBotValue(state.botName || '')}\n options={Array.from(new Set(agents)).sort()}\n disabled={!currentCompany}\n noOptionsText={noResultsTranslated}\n renderOption={(option) => (\n {option}\n )}\n onChange={(event: any) => {\n handleChangeBot(event);\n }}\n style={{ width: '100%' }}\n openText={openTranslated}\n closeText={closeTranslated}\n renderInput={(params) => (\n \n )}\n />\n \n \n {getTranslation('group')}\n {\n const addGroup = getTranslation('addGroup');\n if (event.target.textContent.trim() !== addGroup) {\n handleChangeGroup(event);\n }\n }}\n renderOption={(option) =>\n !option || typeof option !== 'string' ? (\n option\n ) : (\n \n {option}\n {option !== 'principal' && (\n <>\n {isFlowWrite && (\n handleOpenModalDeleteGroup(e, option)}\n >\n \n \n )}\n \n )}\n \n )\n }\n openText={openTranslated}\n closeText={closeTranslated}\n filterOptions={(options, state) => {\n const results = defaultFilterOptions(options, state);\n return [\n ...results,\n <>\n {isFlowWrite && (\n <>\n }\n onClick={handleAddNewGroup}\n fullWidth\n disabled={!botName}\n >\n {getTranslation('addGroup').trim()}\n \n ,\n \n )}\n ,\n ];\n }}\n renderInput={(params) => (\n <>\n \n \n )}\n />\n \n \n {!!state.botName && !state.idGroup?.startsWith('flex') && (\n \n {state.isEditing && (\n \n importFileDefault()}\n >\n \n \n \n )}\n \n exportFileDefault()}\n >\n \n \n \n \n )}\n \n );\n};\nexport default RenderBots;\n","import { validateBlockedIntents } from '../enums/EIntentType';\nimport { DataFlow } from '../models/DataFlow';\nimport {\n fixInputs,\n fixOutputs,\n getNodePosition,\n} from '../components/Flow/utils/NodeContainer';\nimport { DrawflowModel } from '../models/DrawflowModel';\nimport { IFlowContextState } from '../contexts/Flow/types';\n\nexport async function importGroup(\n state: IFlowContextState,\n toastNotification: any,\n mountNodeContent: any,\n errors: {\n onlyValidForPrincipal: string;\n invalidFileForPrincipal: string;\n invalidFileForGroup: string;\n }\n) {\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n uploadInput.type = 'file';\n uploadInput.accept = 'application/json';\n uploadInput.onchange = async (e: any) => {\n const file = e.target.files?.item(0);\n const drawflow = JSON.parse(await file.text());\n\n if (drawflow.drawflow) {\n if (drawflow.drawflow.Home) {\n const dataFlow: DataFlow = drawflow.drawflow.Home.data;\n\n const keys = Object.keys(dataFlow);\n let hasInitialBlocks = false;\n const isPrincipalGroup = state.idGroup === 'principal';\n\n try {\n for (const key of keys) {\n const { data } = dataFlow[Number(key)];\n\n if (isPrincipalGroup) {\n if (validateBlockedIntents(data.intentType)) {\n hasInitialBlocks = true;\n break;\n }\n } else if (validateBlockedIntents(data.intentType)) {\n throw new Error(errors.onlyValidForPrincipal);\n }\n\n dataFlow[Number(key)].id = Number(key);\n\n fixInputs(dataFlow[Number(key)], dataFlow);\n fixOutputs(dataFlow[Number(key)], dataFlow);\n\n const sPayload = data.dataBlockly?.payload as string;\n if (sPayload) {\n const newPayload = sPayload.replaceAll(\n `${data.groupId}_`, //nome atual do grupo\n `${state.idGroup}_` //novo nome do grupo\n );\n\n if (data.dataBlockly?.payload)\n data.dataBlockly.payload = newPayload;\n }\n }\n\n if (isPrincipalGroup && !hasInitialBlocks) {\n throw new Error(errors.invalidFileForPrincipal);\n }\n } catch (error: any) {\n toastNotification('error', error.message);\n return;\n }\n\n const drawflowModel = new DrawflowModel(dataFlow, state.idGroup || '');\n\n drawflow.drawflow.Home.data = drawflowModel.getDrawflow();\n state.editorFlow?.import(drawflow);\n\n mountNodeContent(dataFlow);\n uploadInput.parentNode?.removeChild(uploadInput);\n\n const block = state.editorFlow?.drawflow.drawflow.Home.data;\n const blocksKeys = Object.keys(block);\n const positionsX = blocksKeys.map((key) => block[Number(key)].pos_x);\n\n const biggestPos_x = Math.min(...positionsX);\n\n const minBlock = blocksKeys.find(\n (key) => block[Number(key)].pos_x === biggestPos_x\n );\n\n const { x, y } = getNodePosition(minBlock as unknown as number);\n\n const newX = x / 2 + x * 0.1;\n const newY = y / 2 + y * 0.1;\n\n if (state.editorFlow) {\n state.editorFlow.canvas_x = -newX;\n state.editorFlow.canvas_y = -newY;\n if (state.editorFlow.precanvas) {\n state.editorFlow.precanvas.style.transform = `translate(${state.editorFlow.canvas_x}px, \n\t\t\t\t\t\t${state.editorFlow.canvas_y}px) \n\t\t\t\t\t\tscale(${state.editorFlow.zoom}) `;\n }\n }\n } else {\n toastNotification('error', errors.invalidFileForGroup);\n }\n } else {\n toastNotification('error', errors.invalidFileForGroup);\n }\n };\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n}\n\nexport async function exportGroup(state: IFlowContextState) {\n const documentHtml = document.getElementById('drawflow');\n const dataStr =\n 'data:text/json;charset=utf-8,' +\n encodeURIComponent(JSON.stringify(state.editorFlow?.drawflow));\n const dlAnchorElem = document.createElement('a');\n documentHtml?.appendChild(dlAnchorElem);\n if (dlAnchorElem) {\n dlAnchorElem.setAttribute('href', dataStr);\n const dateGenerated = new Date();\n const dataFormated =\n dateGenerated.getDate() +\n '-' +\n dateGenerated.getMonth() +\n '-' +\n dateGenerated.getFullYear() +\n '-' +\n dateGenerated.getHours() +\n '-' +\n dateGenerated.getMinutes();\n dlAnchorElem.setAttribute(\n 'download',\n `dataflow-${state.idGroup}-${dataFormated}.json`\n );\n dlAnchorElem.click();\n dlAnchorElem.parentNode?.removeChild(dlAnchorElem);\n }\n}\n","import { Divider, IconButton, Popover, Tooltip } from '@material-ui/core';\nimport List from '@material-ui/core/List/List';\nimport ListItem from '@material-ui/core/ListItem/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText/ListItemText';\nimport React, { useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport IconLLego from 'components/Icons/LLego';\nimport { useApp } from 'contexts/App/appContext';\nimport { useFlow } from 'contexts/Flow/flowContext';\nimport Routes from 'routes';\nimport LogoutIcon from 'components/Icons/LogoutIcon';\nimport FlowsUrls from 'components/Menus/FlowsUrls';\nimport FalazapIframe from 'components/Menus/FlowsUrls/FalazapIframe';\n\nimport {\n Container,\n GridHeader,\n GridInputsHeader,\n GridListMenu,\n GridMenu,\n LogoContainer,\n TooltipContainer,\n GridListMenuChild,\n} from './styles';\nimport { IOptions } from './types';\nimport ModalPublishBot from 'components/ModalPublishBot';\nimport ModalConversations from './ModalConversations';\nimport ToastNotification from './ToastNotification';\nimport {\n UpdateLastAccess,\n DeleteGroup,\n ReleaseGroupAccess,\n UpdateGroup,\n} from 'services/FlowService';\nimport ModalDeleteGroup from './ModalDeleteGroup';\nimport ModalBotImportError from './ModalBotImportError';\nimport ModalImportExportBot from './ModalImportExportBot';\nimport { Group } from 'contexts/Flow/types';\nimport { IDeleteGroupRequest } from 'services/FlowService/types';\n\nimport { getSelectedNodeId } from 'components/Flow/utils/NodeContainer';\nimport { IEntity } from 'models/Entity';\nimport { Key } from 'services/AccessKeysService/types';\nimport exportBot from 'utils/ExportBot';\nimport {\n createAndUpdateGroups,\n removeNonExistingGroups,\n updateEntities,\n updateKeys,\n updatePrincipalGroup,\n} from 'utils/ImportBot/ImportBotService';\nimport createBotObject from 'utils/CreateBotObject';\nimport { CognitoLogOut } from 'services/AuthService';\nimport { localStore } from 'utils/Stores';\n\nimport { isValidPrincipalGroup } from 'utils/Helpers';\nimport ModalUsedTab from 'components/ModalUsedTab';\n\nimport PlayCircleFilledIcon from '@material-ui/icons/PlayCircleFilled';\nimport ModalRestoreBot from './ModalImportExportBot/ModalRestoreBot';\n\nimport useTranslator from 'utils/hooks/Translator';\nimport { Debug } from 'components/Debug';\nimport BugReportIcon from '@material-ui/icons/BugReport';\nimport { ModalTemplates } from './Campaigns/ModalTemplates';\nimport { ModalCampaigns } from './Campaigns/ModalCampaigns';\nimport { ModalActioning } from './Campaigns/ModalActioning';\n\nimport WithHasAccess from 'utils/WithHasAccess';\nimport useSidebarItems, { slugsListOptions } from 'utils/hooks/useSidebarItems';\nimport { PublishButton } from './PublishButton';\nimport useAgents from 'utils/hooks/useAgents';\n\nimport { ModalFalazapToken } from 'components/FalazapConfiguration/ModalFalazapToken';\nimport RenderBots from './RenderBots';\nimport { DeleteFlexBlockGroup } from 'services/FlexBlocksService';\nimport flexGroupsTreatment from 'components/Flow/utils/FlexGroupsTreatment';\n\ninterface IExportGroup {\n groupName: string;\n blocks: any;\n}\n\nexport default function Main() {\n const { push } = useHistory();\n const location = useLocation();\n const {\n dispatch,\n saveFlow,\n toastNotification,\n state,\n loadFlow,\n stopEditing,\n } = useFlow();\n const { state: appState } = useApp();\n const { signed, load } = appState;\n\n const { isAgentFreeToUse } = useAgents();\n const [openModalConversations, setModalConversations] = useState(false);\n const [deleteGroupSelected, setDeleteGroupSelected] = useState(\n null\n );\n const dispatchApp = useApp().dispatch;\n const [anchorEl, setAnchorEl] = useState(null);\n const { botName, groupsNames, isEditing } = state;\n\n const [openLibrary, setOpenLibrary] = useState(false);\n const [openAdmin, setOpenAdmin] = useState(false);\n const [openModalImportError, setModalImportError] = useState(false);\n const [openModalImportExportBot, setOpenModalImportExportBot] =\n useState(false);\n const [errors, setErrors] = useState([]);\n const [isClearingFieldsRenderBots, setIsClearingFieldsRenderBots] =\n useState(false);\n const [botToRestore, setBotToRestore] = useState();\n const [openFlowTest, setOpenFlowTest] = useState(false);\n const [anchorElFlow, setAnchorElFlow] = useState(null);\n const [openTraining, setOpenTraining] = useState(false);\n const [openCampaign, setOpenCampaign] = useState(false);\n const [openFalazapConfig, setOpenFalazapConfig] = useState(false);\n const [openImportExportBot, setImportExportBot] = useState(false);\n const [openModalRestoreBot, setOpenModalRestoreBot] = useState(false);\n const [openFalazap, setOpenFalazap] = useState(false);\n const [openDebug, setOpenDebug] = useState(false);\n\n const { getTranslation } = useTranslator();\n\n const importBot = async () => {\n const botLiberated = await isAgentFreeToUse();\n\n if (!botLiberated) return;\n\n const documentHtml = document.getElementById('drawflow');\n const uploadInput = document.createElement('input');\n uploadInput.type = 'file';\n uploadInput.accept = 'application/json';\n setOpenModalImportExportBot(false);\n\n const currentBot = await createBotObject(botName || '', dispatchApp);\n const currentBotStringified = JSON.stringify(currentBot);\n\n setBotToRestore(currentBotStringified);\n\n uploadInput.onchange = async (e: any) => {\n const file = e.target.files?.item(0);\n const fileText = await file.text();\n const drawflow = JSON.parse(fileText);\n\n const groups: IExportGroup[] = drawflow.groups;\n const entities: IEntity[] = drawflow.entities;\n const importKeys: Key[] = drawflow.accessKeys;\n\n let requestErrors = [];\n setErrors([]);\n\n if (!groups || !entities) {\n requestErrors.push(\n getTranslation('validations.invalidJsonFormatImportAgent')\n );\n }\n\n if (requestErrors.length <= 0) {\n const principalGroup = groups.find((g) => g.groupName === 'principal');\n const principalGroupData = Object.values(\n principalGroup?.blocks.drawflow.Home.data\n );\n\n if (!isValidPrincipalGroup(principalGroupData)) {\n setErrors([getTranslation('validations.principalWithoutMainBlocks')]);\n setModalImportError(true);\n return;\n }\n dispatch({ type: 'updateForm', data: { loading: true } });\n\n\n\t\t\t\tconst promisesResults = await Promise.all([\n\t\t\t\t\t await updatePrincipalGroup(\n\t\t\t\t\t\tbotName || '',\n\t\t\t\t\t\tgroups,\n\t\t\t\t\t\tdispatchApp\n\t\t\t\t\t),\n\t\t\t\t\t await removeNonExistingGroups(\n\t\t\t\t\t\tbotName || '',\n\t\t\t\t\t\tgroups,\n\t\t\t\t\t\tgroupsNames,\n\t\t\t\t\t\tdispatchApp\n\t\t\t\t\t),\n\t\t\t\t\t await createAndUpdateGroups(\n\t\t\t\t\t\tbotName || '',\n\t\t\t\t\t\tgroups,\n\t\t\t\t\t\tgroupsNames,\n\t\t\t\t\t\tdispatchApp\n\t\t\t\t\t),\n\t\t\t\t\t await updateEntities(\n\t\t\t\t\t\tbotName || '',\n\t\t\t\t\t\tentities,\n\t\t\t\t\t\tdispatchApp\n\t\t\t\t\t),\n\t\t\t\t\t await updateKeys(\n\t\t\t\t\t\tbotName || '',\n\t\t\t\t\t\timportKeys,\n\t\t\t\t\t\tdispatchApp\n\t\t\t\t\t),\n\t\t\t\t])\n\n\n requestErrors.push(\n promisesResults[0][0],\n promisesResults[1][0],\n promisesResults[2][0],\n promisesResults[3][0],\n promisesResults[4][0]\n );\n\n const updatedGroupsNames = groups.map((group) => group.groupName);\n\n dispatch({\n type: 'updateForm',\n data: { groupsNames: updatedGroupsNames },\n });\n\n dispatch({ type: 'updateForm', data: { loading: false } });\n }\n\n requestErrors = requestErrors\n .filter((error) => (typeof error !== undefined ? error : ''))\n .filter((error) => error !== '');\n setErrors(requestErrors);\n\n if (requestErrors.length > 0) {\n setModalImportError(true);\n } else {\n toastNotification(\n 'success',\n getTranslation('toast.success.importAgent')\n );\n\t\t\t\tawait flexGroupsTreatment(botName ||'' , groups, dispatchApp);\n\n await loadFlow(state.groupsNames[0], botName || '');\n dispatch({\n type: 'setIdGroup',\n data: { idGroup: state.groupsNames[0] },\n });\n }\n };\n\n documentHtml?.appendChild(uploadInput);\n uploadInput.click();\n uploadInput.parentNode?.removeChild(uploadInput);\n };\n\n const handleModalLibrary =\n (index: number) => (e: React.MouseEvent) => {\n if (index === 0) {\n dispatch({ type: 'openModalStandardTemplates' });\n } else if (index === 1) {\n dispatch({ type: 'openModalSavedBlocks' });\n } else if (index === 2) {\n if (getSelectedNodeId().length !== 0)\n dispatch({ type: 'openModalSaveSelectedBlocks' });\n else\n toastNotification(\n 'error',\n getTranslation('toast.error.noBlocksSelected')\n );\n }\n handlePopoverClose(e);\n };\n\n const handleModalImportExportBot =\n (index: number) => (e: React.MouseEvent) => {\n if (index === 0) {\n importBot();\n } else if (index === 1) {\n if (botName) exportBot(botName, dispatchApp);\n }\n handlePopoverClose(e);\n };\n\n const handleModalAccessKeys =\n (slug: string) => (e: React.MouseEvent) => {\n switch (slug) {\n case slugsListOptions.MANAGE_ACCOUNT:\n dispatch({ type: 'openModalManageAccount' });\n break;\n\n case slugsListOptions.MANAGE_COMPANY:\n // setOpenModalManageCompany(true);\n dispatch({ type: 'openModalManageCompany' });\n break;\n\n case slugsListOptions.MANAGE_PERMISSIONS:\n dispatch({ type: 'openModalManagePermission' });\n break;\n\n case slugsListOptions.MODAL_PHRASES_OF_INTENT: {\n dispatch({ type: 'openModalPhrasesOfIntentManager' });\n break;\n }\n case slugsListOptions.MANAGE_CORRECT_SENTENCES: {\n dispatch({ type: 'openModalManageCorrectSentences' });\n break;\n }\n case slugsListOptions.OPEN_CAMPAIGN_TEMPLATES: {\n dispatch({\n type: 'openModalCampaignTemplates',\n });\n break;\n }\n case slugsListOptions.OPEN_CAMPAIGN_CAMPAIGN: {\n dispatch({\n type: 'openModalCampaignCampaign',\n });\n break;\n }\n case slugsListOptions.OPEN_CAMPAIGN_ACTIONING: {\n dispatch({\n type: 'openModalCampaignActioning',\n });\n break;\n }\n case slugsListOptions.OPEN_FALAZAP_THEME: {\n dispatch({\n type: 'openModalFalazapTheme',\n });\n break;\n }\n case slugsListOptions.OPEN_FALAZAP_TOKEN: {\n dispatch({\n type: 'openModalFalazapToken',\n });\n break;\n }\n }\n\n handlePopoverClose(e);\n };\n\n const handleHistoryConversation = () => {\n setModalConversations(true);\n };\n\n const sidebarListItem = useSidebarItems({\n handleHistoryConversation,\n });\n\n async function handleClickSelect(text: IOptions) {\n switch (text.slug) {\n case slugsListOptions.EDIT_ACCESS_KEYS:\n if (!!botName) dispatch({ type: 'openModalAccessKeys' });\n return;\n case slugsListOptions.BOT_HISTORY:\n if (!!botName) setOpenModalRestoreBot(true);\n return;\n case slugsListOptions.OPEN_CAMPAIGN: {\n await saveDataBeforeRedirect(state.botName || '', state.idGroup || '');\n if (text.path) push(text.path);\n return;\n }\n }\n\n if (!botName || (botName && text.name === getTranslation('menu.library')))\n return;\n if (text.path === location.pathname) return;\n\n if (text.action) {\n text.action();\n return;\n }\n\n if (text.path === '/') {\n if (!!state.editorFlow) {\n state.editorFlow.clear();\n }\n dispatch({ type: 'updateForm', data: { loading: false, idGroup: '' } });\n } else if (\n text.path !== '/' &&\n location.pathname === '/' &&\n text.path !== '/entities'\n ) {\n await updateFlow();\n } else if (text.path === '/entities' || text.path === '/campaigns') {\n if (state.botName && state.idGroup) {\n await saveDataBeforeRedirect(state.botName, state.idGroup);\n }\n }\n if (text.path) push(text.path, { from: location.pathname });\n }\n\n async function handleClickSelectAdminStuff(text: IOptions) {\n switch (text.slug) {\n case slugsListOptions.OPEN_CAMPAIGN: {\n await saveDataBeforeRedirect(state.botName || '', state.idGroup || '');\n if (text.path) push(text.path);\n return;\n }\n }\n\n if (text.path === location.pathname) return;\n\n if (text.path === '/') {\n if (!!state.editorFlow) {\n state.editorFlow.clear();\n }\n dispatch({ type: 'updateForm', data: { loading: false, idGroup: '' } });\n } else if (\n text.path !== '/' &&\n location.pathname === '/' &&\n text.path !== '/entities'\n ) {\n await updateFlow();\n } else if (text.path === '/campaigns') {\n if (state.botName && state.idGroup) {\n await saveDataBeforeRedirect(state.botName, state.idGroup);\n }\n }\n if (text.path) push(text.path);\n }\n\n async function saveDataBeforeRedirect(botName: string, groupName: string) {\n if (state.isEditing) {\n stopEditing();\n\n await ReleaseGroupAccess(\n {\n bot_name: botName,\n groupName: groupName,\n },\n dispatchApp\n );\n if (state.editorFlow) {\n await UpdateGroup(\n {\n bot_name: botName,\n group_name: groupName,\n blocks: {\n drawflow: state.editorFlow.drawflow.drawflow,\n },\n },\n dispatchApp\n );\n }\n }\n }\n\n const changeGroupFlow = async (group_id: string, deleteGroup = false) => {\n dispatch({ type: 'updateForm', data: { loading: true } });\n\n !deleteGroup && (await updateFlow());\n\n if (state.isEditing) {\n await ReleaseGroupAccess(\n {\n bot_name: botName || '',\n groupName: state.idGroup || '',\n },\n dispatchApp\n );\n }\n\n await loadFlow(group_id, botName || '', false, deleteGroup);\n dispatch({\n type: 'updateForm',\n data: { idGroup: group_id, loading: false },\n });\n };\n\n const updateFlow = async () => {\n const groupLastVersion = localStore.get('groupLastVersion') || '';\n\n if (\n !!state.drawFlowRef &&\n !!state.editorFlow &&\n state.isEditing &&\n JSON.stringify(state.editorFlow.drawflow) !== groupLastVersion\n ) {\n const sBotAndGroup = localStore.get('current_bot_group');\n\n if (sBotAndGroup) {\n const { botName, groupName } = JSON.parse(sBotAndGroup);\n\n if (botName && groupName) {\n await UpdateLastAccess(\n {\n bot_name: botName,\n groupName,\n },\n dispatchApp\n );\n }\n }\n await saveFlow();\n }\n };\n\n async function handleLogout() {\n try {\n if (state.idGroup && state.botName && state.isEditing) {\n await ReleaseGroupAccess(\n {\n bot_name: state.botName,\n groupName: state.idGroup,\n },\n dispatchApp\n );\n }\n setIsClearingFieldsRenderBots(true);\n localStore.remove('userPermissions');\n localStore.remove('lastFields');\n dispatch({ type: 'closeModalWarning' });\n dispatch({ type: 'closeModalUsedGroup' });\n dispatch({\n type: 'updateForm',\n data: {\n userPermissions: [],\n botName: '',\n companyName: '',\n userOrganizations: [],\n idGroup: '',\n },\n });\n\n await CognitoLogOut();\n\n dispatchApp({ type: 'updateApp', data: { signed: false } });\n } catch (error) {}\n }\n\n const handleDeleteGroup = async () => {\n if (!deleteGroupSelected) {\n toastNotification('error', 'Nenhum grupo selecionado');\n return false;\n }\n\n if (!botName) {\n toastNotification('error', 'Nenhum bot selecionado');\n return false;\n }\n\n const request: IDeleteGroupRequest = {\n bot_name: botName,\n group_name: deleteGroupSelected.id,\n group_name_confirmation: deleteGroupSelected.id,\n };\n const result = await DeleteGroup(request, dispatchApp);\n\n if (result.Success) {\n const newGroupList = groupsNames.filter(\n (item) => item !== deleteGroupSelected.id\n );\n\n if (deleteGroupSelected.id === state.idGroup) {\n const principalGroup = groupsNames.find((item) => item === 'principal');\n const groupSelected = principalGroup ? principalGroup : newGroupList[0];\n await changeGroupFlow(groupSelected, true);\n }\n\n dispatch({ type: 'updateForm', data: { groupsNames: newGroupList } });\n\n toastNotification('success', getTranslation('toast.success.deleteGroup'));\n\n const flexBlockName = deleteGroupSelected.name.substring(\n 5,\n deleteGroupSelected.name.length\n );\n\n await DeleteFlexBlockGroup(\n { bot_name: botName, block_name: flexBlockName, groups_used: [] },\n dispatchApp\n );\n } else {\n toastNotification('error', getTranslation('toast.error.deleteGroup'));\n }\n setDeleteGroupSelected(null);\n };\n\n const isSelectedPage = (item: IOptions) => {\n if (item.name === getTranslation('menu.library')) return openLibrary;\n if (item.name === getTranslation('menu.admin')) return openAdmin;\n if (item.name === getTranslation('menu.uploadDownloadAgent'))\n return openImportExportBot;\n return !!item.path && location.pathname === item.path && !!botName;\n };\n\n if (load) return <>;\n\n const handlePopoverOpen = (\n event: React.MouseEvent,\n item: IOptions\n ) => {\n setAnchorEl(event.currentTarget);\n\n switch (item.name) {\n case getTranslation('menu.library'):\n setOpenLibrary(true);\n break;\n\n case getTranslation('menu.admin'):\n setOpenAdmin(true);\n break;\n\n case getTranslation('menu.training'):\n setOpenTraining(true);\n break;\n\n case getTranslation('menu.communicationRuler'):\n setOpenCampaign(true);\n break;\n\n case getTranslation('menu.uploadDownloadAgent'):\n setImportExportBot(true);\n break;\n\n case getTranslation('menu.falazapConfig.title'):\n setOpenFalazapConfig(true);\n break;\n\n default:\n break;\n }\n };\n\n const handlePopoverClose = (event?: any) => {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n if (anchorEl) setAnchorEl(null);\n if (openLibrary) setOpenLibrary(false);\n if (openAdmin) setOpenAdmin(false);\n if (openTraining) setOpenTraining(false);\n if (openCampaign) setOpenCampaign(false);\n if (openFalazapConfig) setOpenFalazapConfig(false);\n if (openImportExportBot) setImportExportBot(false);\n };\n\n function handleOpenUrlsTests(event: any) {\n setAnchorElFlow(event.currentTarget);\n setOpenFlowTest(true);\n }\n\n function handleCloseUrlsTests() {\n setAnchorElFlow(null);\n setOpenFlowTest(false);\n }\n\n function handleCloseDebug() {\n setOpenDebug(false);\n }\n\n function getOpenMenuOptions(item: { name: any }) {\n switch (item.name) {\n case getTranslation('menu.admin'):\n return openAdmin;\n case getTranslation('menu.training'):\n return openTraining;\n case getTranslation('menu.communicationRuler'):\n return openCampaign;\n case getTranslation('menu.falazapConfig.title'):\n return openFalazapConfig;\n default:\n return false;\n }\n }\n\n const renderBody = () => {\n return (\n <>\n \n \n \n \n \n \n \n \n {botName && (\n \n setOpenDebug(true)}>\n \n \n \n )}\n\n {openFlowTest && (\n setOpenFalazap(true)}\n />\n )}\n\n {botName && (\n \n \n \n \n \n )}\n \n \n \n \n {sidebarListItem.listMenuOptions.map((item, index) => (\n handleClickSelect(item)}\n >\n \n handlePopoverOpen(e, item)}\n disabled={\n item.name === getTranslation('menu.library')\n ? !isEditing || !botName\n : !botName\n }\n >\n \n {item.icon}\n \n\n {item.children && (\n \n
    \n {item.children.map(\n (\n opt: {\n icon: JSX.Element;\n name: string;\n slug: string;\n },\n index: number\n ) => (\n \n \n {opt.icon}\n \n \n \n \n )\n )}\n
    \n \n )}\n \n
    \n \n ))}\n \n {sidebarListItem.listAdminStuff.map((item, index) => (\n handleClickSelectAdminStuff(item)}\n >\n \n ) =>\n handlePopoverOpen(e, item)\n }\n disabled={\n item.name === getTranslation('menu.communicationRuler') ||\n item.name === getTranslation('menu.falazapConfig.title')\n ? !botName\n : false\n }\n >\n \n {item.icon}\n \n {item.children && (\n \n
    \n {item.children.map(\n (\n opt: {\n icon: JSX.Element;\n name: string;\n slug: string;\n disabled: boolean;\n },\n index: number\n ) => (\n \n \n {opt.icon}\n \n \n \n \n )\n )}\n
    \n \n )}\n \n
    \n \n ))}\n \n \n \n \n \n \n \n \n \n
    \n\n {botName && (\n \n \n \n )}\n
    \n \n );\n };\n\n return (\n \n {signed && renderBody()}\n\n \n \n\n {state.openModalPublishBot && }\n\n {!!deleteGroupSelected && (\n setDeleteGroupSelected(null)}\n groupName={deleteGroupSelected.name || ''}\n handleDeleteGroup={handleDeleteGroup}\n />\n )}\n\n {openModalConversations && (\n setModalConversations(false)}\n />\n )}\n\n {appState.renderModalUsedTab && }\n\n {openModalImportExportBot && (\n {\n exportBot(botName || '', dispatchApp);\n }}\n handleImportBot={importBot}\n handleClose={() => setOpenModalImportExportBot(false)}\n />\n )}\n\n {openModalImportError && (\n setModalImportError(false)}\n handleOpen={() => setModalImportError(true)}\n />\n )}\n\n {/* {openModalManageCompany && (\n setOpenModalManageCompany(false)}\n />\n )} */}\n\n {openModalRestoreBot && (\n setOpenModalRestoreBot(false)}\n />\n )}\n\n {openFalazap && (\n setOpenFalazap(false)}\n />\n )}\n\n {openDebug && (\n \n )}\n\n {state.openModalCampaignTemplates && (\n \n dispatch({\n type: 'closeModalCampaignTemplates',\n })\n }\n />\n )}\n\n {state.openModalCampaignCampaign && (\n \n dispatch({\n type: 'closeModalCampaignCampaign',\n })\n }\n />\n )}\n {state.openModalCampaignActioning && (\n \n dispatch({\n type: 'closeModalCampaignActioning',\n })\n }\n />\n )}\n {state.openModalFalazapToken && }\n \n );\n}\n","import { createGlobalStyle } from 'styled-components';\n\nconst GlobalStyles = createGlobalStyle`\n\t*{\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t\t@media(max-width: 2200px){\n\t\t\thtml{\n\t\t\t\tfont-size: 90%;\n\t\t\t} \n\t\t\t\n\t }\n\t\n\t\t@media(max-width: 1200px){\n\t\t\thtml{\n\t\t\t\tfont-size: 85%;\n\t\t\t}\n\t}\n\n\t@media(max-width: 720px){\n\t\thtml{\n\t\t\tfont-size: 70%;\n\t\t}\n\t}\n\n body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n .greenButtonMaterial{\n\t\t\n .MuiButton-colorInherit{\n background-color: #34AC26;\n color: #fff;\n \n :hover{\n background-color: #1C7412;\n }\n }\n }\n\n .lightBlueButtonMaterial{\n .MuiButton-colorInherit{\n background-color: #50A4A4;\n color: #fff;\n\n \n :hover{\n background-color: #418787;\n }\n }\n }\n\n .darkBlueButtonMaterial{\n .MuiButton-colorInherit{\n background-color: #005AE1;\n color: #fff;\n \n :hover{\n background-color: #024ec1;\n }\n }\n }\n\n .orangeButtonMaterial{\n .MuiButton-colorInherit{\n background-color: #E46B01;\n color: #fff;\n \n :hover{\n background-color: #c25c02;\n }\n }\n }\n\n .grayButtonMaterial{\n .MuiButton-colorInherit{\n background-color: #878787;\n color: #fff;\n \n :hover{\n background-color: #767676;\n }\n }\n }\n\n .redButtonMaterial{\n .MuiButton-colorInherit{\n background-color: #DC1414;\n color: #fff;\n \n :hover{\n background-color: #800909;\n }\n }\n }\n`;\n\nexport default GlobalStyles;\n","import React from 'react';\n// import './';\nimport { Router } from 'react-router-dom';\nimport { History } from 'history';\nimport { AppProvider } from './contexts/App/appContext';\nimport { FlowProvider } from './contexts/Flow/flowContext';\nimport ThemeCustom from './themes/ThemeCustom';\nimport Main from './views/Canvas/Main';\nimport GlobalStyles from './styles';\nimport { LibraryProvider } from './contexts/Library/libraryContext';\nimport './utils/i18n';\nimport { PermissionsProvider } from 'contexts/Permissions/permissionsContext';\n\ntype Props = {\n history: History;\n};\n\nfunction App(props: Props) {\n return (\n <>\n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createBrowserHistory } from 'history';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst history = createBrowserHistory();\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","// This file was automatically generated. Do not modify.\n\nconst Blockly = require('blockly');\n\nBlockly.Msg['ADD_COMMENT'] = 'Adicionar comentário';\nBlockly.Msg['CANNOT_DELETE_VARIABLE_PROCEDURE'] =\n \"Não se pode deletar a variável '%1' porque é parte da definição da função '%2'\";\nBlockly.Msg['CHANGE_VALUE_TITLE'] = 'Mudar valor:';\nBlockly.Msg['CLEAN_UP'] = 'Limpar blocos';\nBlockly.Msg['COLLAPSED_WARNINGS_WARNING'] =\n 'Bloqueios recolhidos contêm avisos.';\nBlockly.Msg['COLLAPSE_ALL'] = 'Colapsar Blocos';\nBlockly.Msg['COLLAPSE_BLOCK'] = 'Colapsar Bloco';\nBlockly.Msg['COLOUR_BLEND_COLOUR1'] = 'cor 1';\nBlockly.Msg['COLOUR_BLEND_COLOUR2'] = 'cor 2';\nBlockly.Msg['COLOUR_BLEND_HELPURL'] =\n 'https://meyerweb.com/eric/tools/color-blend/#:::rgbp'; // untranslated\nBlockly.Msg['COLOUR_BLEND_RATIO'] = 'proporção';\nBlockly.Msg['COLOUR_BLEND_TITLE'] = 'misturar';\nBlockly.Msg['COLOUR_BLEND_TOOLTIP'] =\n 'Mistura duas cores em uma dada proporção (0,0 - 1,0).';\nBlockly.Msg['COLOUR_PICKER_HELPURL'] = 'https://pt.wikipedia.org/wiki/Cor';\nBlockly.Msg['COLOUR_PICKER_TOOLTIP'] = 'Escolher uma cor da palheta de cores.';\nBlockly.Msg['COLOUR_RANDOM_HELPURL'] = 'http://randomcolour.com'; // untranslated\nBlockly.Msg['COLOUR_RANDOM_TITLE'] = 'cor aleatória';\nBlockly.Msg['COLOUR_RANDOM_TOOLTIP'] = 'Escolher cor de forma aleatória.';\nBlockly.Msg['COLOUR_RGB_BLUE'] = 'azul';\nBlockly.Msg['COLOUR_RGB_GREEN'] = 'verde';\nBlockly.Msg['COLOUR_RGB_HELPURL'] =\n 'https://www.december.com/html/spec/colorpercompact.html'; // untranslated\nBlockly.Msg['COLOUR_RGB_RED'] = 'vermelho';\nBlockly.Msg['COLOUR_RGB_TITLE'] = 'colorir com';\nBlockly.Msg['COLOUR_RGB_TOOLTIP'] =\n 'Criar uma cor com a quantidade especificada de vermelho, verde e azul. Todos os valores devem estar entre 0 e 100.';\nBlockly.Msg['CONTROLS_FLOW_STATEMENTS_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Loops#loop-termination-blocks'; // untranslated\nBlockly.Msg['CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK'] = 'encerra o laço';\nBlockly.Msg['CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE'] =\n 'continua com a próxima iteração do laço';\nBlockly.Msg['CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK'] = 'Encerra o laço.';\nBlockly.Msg['CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE'] =\n 'Ignora o resto deste laço, e continua com a próxima iteração.';\nBlockly.Msg['CONTROLS_FLOW_STATEMENTS_WARNING'] =\n 'Atenção: Este bloco só pode ser usado dentro de um laço.';\nBlockly.Msg['CONTROLS_FOREACH_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Loops#for-each'; // untranslated\nBlockly.Msg['CONTROLS_FOREACH_TITLE'] = 'para cada item %1 na lista %2';\nBlockly.Msg['CONTROLS_FOREACH_TOOLTIP'] =\n \"Para cada item em uma lista, atribua o item à variável '%1' e então realize algumas instruções.\";\nBlockly.Msg['CONTROLS_FOR_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Loops#count-with'; // untranslated\nBlockly.Msg['CONTROLS_FOR_TITLE'] = 'contar com %1 de %2 até %3 por %4';\nBlockly.Msg['CONTROLS_FOR_TOOLTIP'] =\n \"Faça com que a variável '%1' assuma os valores do número inicial ao número final, contando de acordo com o intervalo especificado e execute os blocos especificados.\";\nBlockly.Msg['CONTROLS_IF_ELSEIF_TOOLTIP'] =\n 'Acrescente uma condição para o bloco se.';\nBlockly.Msg['CONTROLS_IF_ELSE_TOOLTIP'] =\n 'Acrescente uma condição final para o bloco se.';\nBlockly.Msg['CONTROLS_IF_HELPURL'] =\n 'https://github.com/google/blockly/wiki/IfElse'; // untranslated\nBlockly.Msg['CONTROLS_IF_IF_TOOLTIP'] =\n 'Acrescente, remova ou reordene seções para reconfigurar este bloco.';\nBlockly.Msg['CONTROLS_IF_MSG_ELSE'] = 'senão';\nBlockly.Msg['CONTROLS_IF_MSG_ELSEIF'] = 'senão se';\nBlockly.Msg['CONTROLS_IF_MSG_IF'] = 'se';\nBlockly.Msg['CONTROLS_IF_TOOLTIP_1'] =\n 'Se um valor for verdadeiro, então realize algumas instruções.';\nBlockly.Msg['CONTROLS_IF_TOOLTIP_2'] =\n 'Se um valor for verdadeiro, então realize o primeiro bloco de instruções. Senão, realize o segundo bloco de instruções.';\nBlockly.Msg['CONTROLS_IF_TOOLTIP_3'] =\n 'Se o primeiro valor é verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções.';\nBlockly.Msg['CONTROLS_IF_TOOLTIP_4'] =\n 'Se o primeiro valor for verdadeiro, então realize o primeiro bloco de instruções. Senão, se o segundo valor é verdadeiro, realize o segundo bloco de instruções. Se nenhum dos blocos for verdadeiro, realize o último bloco de instruções.';\nBlockly.Msg['CONTROLS_REPEAT_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Estrutura_de_repeti%C3%A7%C3%A3o#Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle';\nBlockly.Msg['CONTROLS_REPEAT_INPUT_DO'] = 'faça';\nBlockly.Msg['CONTROLS_REPEAT_TITLE'] = 'repita %1 vezes';\nBlockly.Msg['CONTROLS_REPEAT_TOOLTIP'] =\n 'Faça algumas instruções várias vezes.';\nBlockly.Msg['CONTROLS_WHILEUNTIL_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Loops#repeat'; // untranslated\nBlockly.Msg['CONTROLS_WHILEUNTIL_OPERATOR_UNTIL'] = 'repita até';\nBlockly.Msg['CONTROLS_WHILEUNTIL_OPERATOR_WHILE'] = 'repita enquanto';\nBlockly.Msg['CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL'] =\n 'Enquanto um valor for falso, então faça algumas instruções.';\nBlockly.Msg['CONTROLS_WHILEUNTIL_TOOLTIP_WHILE'] =\n 'Enquanto um valor for verdadeiro, então faça algumas instruções.';\nBlockly.Msg['DEBUG_FLAG'] = 'Modo Debug: ';\nBlockly.Msg['DEBUG_FLAG_OFF'] = 'Desligado';\nBlockly.Msg['DEBUG_FLAG_ON'] = 'Ligado';\nBlockly.Msg['DEBUG_FLAG_TOOLTIP'] = 'Liga ou Desliga o modo de depuração.';\nBlockly.Msg['DEBUG_CONSOLE_LOG'] = 'Imprime no log da console o texto: ';\nBlockly.Msg['DEBUG_CONSOLE_LOG_HELP'] =\n 'Imprime no log da console o texto designado';\nBlockly.Msg['DEBUG_CONSOLE_LOG_TOOLTIP'] =\n 'Insere o texto na console de depuração.';\nBlockly.Msg['DEBUG_CONSOLE_LOG_VAR'] =\n 'Imprime no log da console todas as variáveis VARS.';\nBlockly.Msg['DEBUG_CONSOLE_LOG_VAR_HELP'] =\n 'Imprime no log da console todas as variáveis VARS.';\nBlockly.Msg['DEBUG_CONSOLE_LOG_VAR_TOOLTIP'] =\n 'Lista todas as variáveis VARS. na console de depuração.';\nBlockly.Msg['DELETE_ALL_BLOCKS'] = 'Deletar todos os blocos %1?';\nBlockly.Msg['DELETE_BLOCK'] = 'Deletar bloco';\nBlockly.Msg['DELETE_VARIABLE'] = \"Deletar a variável '%1'\";\nBlockly.Msg['DELETE_VARIABLE_CONFIRMATION'] =\n \"Deletar %1 usos da variável '%2'?\";\nBlockly.Msg['DELETE_X_BLOCKS'] = 'Deletar %1 blocos';\nBlockly.Msg['DISABLE_BLOCK'] = 'Desabilitar bloco';\nBlockly.Msg['DUPLICATE_BLOCK'] = 'Duplicar';\nBlockly.Msg['DUPLICATE_COMMENT'] = 'Duplicar comentário';\nBlockly.Msg['ENABLE_BLOCK'] = 'Habilitar bloco';\nBlockly.Msg['EXPAND_ALL'] = 'Expandir blocos';\nBlockly.Msg['EXPAND_BLOCK'] = 'Expandir bloco';\nBlockly.Msg['EXTERNAL_INPUTS'] = 'Entradas externas';\nBlockly.Msg['HELP'] = 'Ajuda';\nBlockly.Msg['INLINE_INPUTS'] = 'Entradas incorporadas';\nBlockly.Msg['IOS_CANCEL'] = 'Cancelar';\nBlockly.Msg['IOS_ERROR'] = 'Erro';\nBlockly.Msg['IOS_OK'] = 'Ok';\nBlockly.Msg['IOS_PROCEDURES_ADD_INPUT'] = '+ Adicionar entrada';\nBlockly.Msg['IOS_PROCEDURES_ALLOW_STATEMENTS'] = 'Permitir declarações';\nBlockly.Msg['IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR'] =\n 'Essa função tem entradas duplicadas.';\nBlockly.Msg['IOS_PROCEDURES_INPUTS'] = 'ENTRADAS';\nBlockly.Msg['IOS_VARIABLES_ADD_BUTTON'] = 'Adicionar';\nBlockly.Msg['IOS_VARIABLES_ADD_VARIABLE'] = '+ Adicionar variável';\nBlockly.Msg['IOS_VARIABLES_DELETE_BUTTON'] = 'Deletar';\nBlockly.Msg['IOS_VARIABLES_EMPTY_NAME_ERROR'] =\n 'Você não pode usar um nome de variável vazio.';\nBlockly.Msg['IOS_VARIABLES_RENAME_BUTTON'] = 'Renomear';\nBlockly.Msg['IOS_VARIABLES_VARIABLE_NAME'] = 'Nome variavel';\nBlockly.Msg['LISTS_CREATE_EMPTY_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#create-empty-list';\nBlockly.Msg['LISTS_CREATE_EMPTY_TITLE'] = 'criar lista vazia';\nBlockly.Msg['LISTS_CREATE_EMPTY_TOOLTIP'] =\n 'Retorna uma lista, de tamanho 0, contendo nenhum registro';\nBlockly.Msg['LISTS_CREATE_WITH_CONTAINER_TITLE_ADD'] = 'lista';\nBlockly.Msg['LISTS_CREATE_WITH_CONTAINER_TOOLTIP'] =\n 'Acrescenta, remove ou reordena seções para reconfigurar este bloco de lista.';\nBlockly.Msg['LISTS_CREATE_WITH_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#create-list-with';\nBlockly.Msg['LISTS_CREATE_WITH_INPUT_WITH'] = 'criar lista com';\nBlockly.Msg['LISTS_CREATE_WITH_ITEM_TOOLTIP'] = 'Acrescenta um item à lista.';\nBlockly.Msg['LISTS_CREATE_WITH_TOOLTIP'] =\n 'Cria uma lista com a quantidade de itens informada.';\nBlockly.Msg['LISTS_GET_INDEX_FIRST'] = 'primeiro';\nBlockly.Msg['LISTS_GET_INDEX_FROM_END'] = 'nº a partir do final';\nBlockly.Msg['LISTS_GET_INDEX_FROM_START'] = 'nº';\nBlockly.Msg['LISTS_GET_INDEX_GET'] = 'obter';\nBlockly.Msg['LISTS_GET_INDEX_GET_REMOVE'] = 'obter e remover';\nBlockly.Msg['LISTS_GET_INDEX_LAST'] = 'último';\nBlockly.Msg['LISTS_GET_INDEX_RANDOM'] = 'aleatório';\nBlockly.Msg['LISTS_GET_INDEX_REMOVE'] = 'remover';\nBlockly.Msg['LISTS_GET_INDEX_TAIL'] = ''; // untranslated\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_FIRST'] =\n 'Retorna o primeiro item em uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_FROM'] =\n 'Retorna o item da lista na posição especificada.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_LAST'] =\n 'Retorna o último item em uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_RANDOM'] =\n 'Retorna um item aleatório de uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST'] =\n 'Remove e retorna o primeiro item de uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM'] =\n 'Remove e retorna o item na posição especificada em uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST'] =\n 'Remove e retorna o último item de uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM'] =\n 'Remove e retorna um item aleatório de uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST'] =\n 'Remove o primeiro item de uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM'] =\n 'Remove o item na posição especificada em uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST'] =\n 'Remove o último item de uma lista.';\nBlockly.Msg['LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM'] =\n 'Remove um item aleatório de uma lista.';\nBlockly.Msg['LISTS_GET_SUBLIST_END_FROM_END'] = 'até nº a partir do final';\nBlockly.Msg['LISTS_GET_SUBLIST_END_FROM_START'] = 'até nº';\nBlockly.Msg['LISTS_GET_SUBLIST_END_LAST'] = 'até último';\nBlockly.Msg['LISTS_GET_SUBLIST_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#getting-a-sublist';\nBlockly.Msg['LISTS_GET_SUBLIST_START_FIRST'] =\n 'obtém sublista a partir do primeiro';\nBlockly.Msg['LISTS_GET_SUBLIST_START_FROM_END'] =\n 'obtém sublista de nº a partir do final';\nBlockly.Msg['LISTS_GET_SUBLIST_START_FROM_START'] = 'obtém sublista de nº';\nBlockly.Msg['LISTS_GET_SUBLIST_TAIL'] = ''; // untranslated\nBlockly.Msg['LISTS_GET_SUBLIST_TOOLTIP'] =\n 'Cria uma cópia da porção especificada de uma lista.';\nBlockly.Msg['LISTS_INDEX_FROM_END_TOOLTIP'] = '%1 é o último item.';\nBlockly.Msg['LISTS_INDEX_FROM_START_TOOLTIP'] = '%1 é o primeiro item.';\nBlockly.Msg['LISTS_INDEX_OF_FIRST'] = 'encontre a primeira ocorrência do item';\nBlockly.Msg['LISTS_INDEX_OF_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list'; // untranslated\nBlockly.Msg['LISTS_INDEX_OF_LAST'] = 'encontre a última ocorrência do item';\nBlockly.Msg['LISTS_INDEX_OF_TOOLTIP'] =\n 'Retorna o índice da primeira/última ocorrência do item na lista. Retorna %1 se o item não for encontrado.';\nBlockly.Msg['LISTS_INLIST'] = 'na lista';\nBlockly.Msg['LISTS_ISEMPTY_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#is-empty';\nBlockly.Msg['LISTS_ISEMPTY_TITLE'] = '%1 é vazia';\nBlockly.Msg['LISTS_ISEMPTY_TOOLTIP'] =\n 'Retorna ao verdadeiro se a lista estiver vazia.';\nBlockly.Msg['LISTS_LENGTH_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#length-of';\nBlockly.Msg['LISTS_LENGTH_TITLE'] = 'tamanho de %1';\nBlockly.Msg['LISTS_LENGTH_TOOLTIP'] = 'Retorna o tamanho de uma lista.';\nBlockly.Msg['LISTS_REPEAT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#create-list-with';\nBlockly.Msg['LISTS_REPEAT_TITLE'] = 'criar lista com item %1 repetido %2 vezes';\nBlockly.Msg['LISTS_REPEAT_TOOLTIP'] =\n 'Cria uma lista consistindo no valor informado repetido o número de vezes especificado.';\nBlockly.Msg['LISTS_REVERSE_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Listas#invertendo-uma-lista';\nBlockly.Msg['LISTS_REVERSE_MESSAGE0'] = 'inverter %1';\nBlockly.Msg['LISTS_REVERSE_TOOLTIP'] = 'Inverter uma cópia da lista.';\nBlockly.Msg['LISTS_SET_INDEX_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#in-list--set'; // untranslated\nBlockly.Msg['LISTS_SET_INDEX_INPUT_TO'] = 'como';\nBlockly.Msg['LISTS_SET_INDEX_INSERT'] = 'inserir em';\nBlockly.Msg['LISTS_SET_INDEX_SET'] = 'definir';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST'] =\n 'Insere o item no início de uma lista.';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_INSERT_FROM'] =\n 'Insere o item na posição especificada em uma lista.';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_INSERT_LAST'] =\n 'Insere o item no final de uma lista.';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM'] =\n 'Insere o item em uma posição qualquer de uma lista.';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_SET_FIRST'] =\n 'Define o primeiro item de uma lista.';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_SET_FROM'] =\n 'Define o item da posição especificada de uma lista.';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_SET_LAST'] =\n 'Define o último item de uma lista.';\nBlockly.Msg['LISTS_SET_INDEX_TOOLTIP_SET_RANDOM'] =\n 'Define um item aleatório de uma lista.';\nBlockly.Msg['LISTS_SORT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#sorting-a-list';\nBlockly.Msg['LISTS_SORT_ORDER_ASCENDING'] = 'ascendente';\nBlockly.Msg['LISTS_SORT_ORDER_DESCENDING'] = 'descendente';\nBlockly.Msg['LISTS_SORT_TITLE'] = 'ordenar %1 %2 %3';\nBlockly.Msg['LISTS_SORT_TOOLTIP'] = 'Ordenar uma cópia de uma lista.';\nBlockly.Msg['LISTS_SORT_TYPE_IGNORECASE'] =\n 'alfabético, ignorar maiúscula/minúscula';\nBlockly.Msg['LISTS_SORT_TYPE_NUMERIC'] = 'numérico';\nBlockly.Msg['LISTS_SORT_TYPE_TEXT'] = 'alfabético';\nBlockly.Msg['LISTS_SPLIT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists';\nBlockly.Msg['LISTS_SPLIT_LIST_FROM_TEXT'] = 'Fazer uma lista a partir do texto';\nBlockly.Msg['LISTS_SPLIT_TEXT_FROM_LIST'] = 'fazer um texto a partir da lista';\nBlockly.Msg['LISTS_SPLIT_TOOLTIP_JOIN'] =\n 'Juntar uma lista de textos em um único texto, separado por um delimitador.';\nBlockly.Msg['LISTS_SPLIT_TOOLTIP_SPLIT'] =\n 'Dividir o texto em uma lista de textos, separando-o em cada delimitador.';\nBlockly.Msg['LISTS_SPLIT_WITH_DELIMITER'] = 'com delimitador';\nBlockly.Msg['LOGIC_BOOLEAN_FALSE'] = 'falso';\nBlockly.Msg['LOGIC_BOOLEAN_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Logic#values'; // untranslated\nBlockly.Msg['LOGIC_BOOLEAN_TOOLTIP'] = 'Retorna verdadeiro ou falso.';\nBlockly.Msg['LOGIC_BOOLEAN_TRUE'] = 'verdadeiro';\nBlockly.Msg['LOGIC_COMPARE_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Inequa%C3%A7%C3%A3o';\nBlockly.Msg['LOGIC_COMPARE_TOOLTIP_EQ'] =\n 'Retorna verdadeiro se ambas as entradas forem iguais.';\nBlockly.Msg['LOGIC_COMPARE_TOOLTIP_GT'] =\n 'Retorna verdadeiro se a primeira entrada for maior que a segunda entrada.';\nBlockly.Msg['LOGIC_COMPARE_TOOLTIP_GTE'] =\n 'Retorna verdadeiro se a primeira entrada for maior ou igual à segunda entrada.';\nBlockly.Msg['LOGIC_COMPARE_TOOLTIP_LT'] =\n 'Retorna verdadeiro se a primeira entrada for menor que a segunda entrada.';\nBlockly.Msg['LOGIC_COMPARE_TOOLTIP_LTE'] =\n 'Retorna verdadeiro se a primeira entrada for menor ou igual à segunda entrada.';\nBlockly.Msg['LOGIC_COMPARE_TOOLTIP_NEQ'] =\n 'Retorna verdadeiro se ambas as entradas forem diferentes.';\nBlockly.Msg['LOGIC_NEGATE_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Logic#not'; // untranslated\nBlockly.Msg['LOGIC_NEGATE_TITLE'] = 'não %1';\nBlockly.Msg['LOGIC_NEGATE_TOOLTIP'] =\n 'Retorna verdadeiro se a entrada for falsa. Retorna falsa se a entrada for verdadeira.';\nBlockly.Msg['LOGIC_NULL'] = 'nulo';\nBlockly.Msg['LOGIC_NULL_HELPURL'] =\n 'https://en.wikipedia.org/wiki/Nullable_type'; // untranslated\nBlockly.Msg['LOGIC_NULL_TOOLTIP'] = 'Retorna nulo.';\nBlockly.Msg['LOGIC_OPERATION_AND'] = 'e';\nBlockly.Msg['LOGIC_OPERATION_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Logic#logical-operations'; // untranslated\nBlockly.Msg['LOGIC_OPERATION_OR'] = 'ou';\nBlockly.Msg['LOGIC_OPERATION_TOOLTIP_AND'] =\n 'Retorna verdadeiro se ambas as entradas forem verdadeiras.';\nBlockly.Msg['LOGIC_OPERATION_TOOLTIP_OR'] =\n 'Retorna verdadeiro se uma das estradas for verdadeira.';\nBlockly.Msg['LOGIC_TERNARY_CONDITION'] = 'teste';\nBlockly.Msg['LOGIC_TERNARY_HELPURL'] = 'https://en.wikipedia.org/wiki/%3F:'; // untranslated\nBlockly.Msg['LOGIC_TERNARY_IF_FALSE'] = 'se falso';\nBlockly.Msg['LOGIC_TERNARY_IF_TRUE'] = 'se verdadeiro';\nBlockly.Msg['LOGIC_TERNARY_TOOLTIP'] =\n 'Avalia a condição em \"teste\". Se a condição for verdadeira retorna o valor \"se verdadeiro\", senão retorna o valor \"se falso\".';\nBlockly.Msg['LLM_BASIC_TOOTIP'] = 'OpenAI https://beta.openai.com/docs/api-reference/completions/create';\nBlockly.Msg['LLM_ADVANCED_TOOTIP'] = 'OpenAI https://beta.openai.com/docs/api-reference/completions/create';\nBlockly.Msg['LLM_FALAGPT_TOOTIP'] = 'Verifique a documentação técnica do FalaGPT - Fintalk Large Language Model';\nBlockly.Msg['MATH_ADDITION_SYMBOL'] = '+'; // untranslated\nBlockly.Msg['MATH_ARITHMETIC_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Aritm%C3%A9tica';\nBlockly.Msg['MATH_ARITHMETIC_TOOLTIP_ADD'] = 'Retorna a soma dos dois números.';\nBlockly.Msg['MATH_ARITHMETIC_TOOLTIP_DIVIDE'] =\n 'Retorna o quociente da divisão dos dois números.';\nBlockly.Msg['MATH_ARITHMETIC_TOOLTIP_MINUS'] =\n 'Retorna a diferença entre os dois números.';\nBlockly.Msg['MATH_ARITHMETIC_TOOLTIP_MULTIPLY'] =\n 'Retorna o produto dos dois números.';\nBlockly.Msg['MATH_ARITHMETIC_TOOLTIP_POWER'] =\n 'Retorna o primeiro número elevado à potência do segundo número.';\nBlockly.Msg['MATH_ATAN2_HELPURL'] = 'https://en.wikipedia.org/wiki/Atan2';\nBlockly.Msg['MATH_ATAN2_TITLE'] = 'atan2 de X:%1 Y:%2';\nBlockly.Msg['MATH_ATAN2_TOOLTIP'] =\n 'Retorne o arco tangente do ponto (X, Y) em graus de -180 a 180.';\nBlockly.Msg['MATH_CHANGE_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3o';\nBlockly.Msg['MATH_CHANGE_TITLE'] = 'alterar %1 por %2';\nBlockly.Msg['MATH_CHANGE_TOOLTIP'] = 'Soma um número à variável \"%1\".';\nBlockly.Msg['MATH_CONSTANT_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Anexo:Lista_de_constantes_matem%C3%A1ticas';\nBlockly.Msg['MATH_CONSTANT_TOOLTIP'] =\n 'Retorna uma das constantes comuns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito).';\nBlockly.Msg['MATH_CONSTRAIN_HELPURL'] =\n 'https://en.wikipedia.org/wiki/Clamping_(graphics)'; // untranslated\nBlockly.Msg['MATH_CONSTRAIN_TITLE'] = 'restringe %1 inferior %2 superior %3';\nBlockly.Msg['MATH_CONSTRAIN_TOOLTIP'] =\n 'Restringe um número entre os limites especificados (inclusivo).';\nBlockly.Msg['MATH_DIVISION_SYMBOL'] = '÷'; // untranslated\nBlockly.Msg['MATH_IS_DIVISIBLE_BY'] = 'é divisível por';\nBlockly.Msg['MATH_IS_EVEN'] = 'é par';\nBlockly.Msg['MATH_IS_NEGATIVE'] = 'é negativo';\nBlockly.Msg['MATH_IS_ODD'] = 'é ímpar';\nBlockly.Msg['MATH_IS_POSITIVE'] = 'é positivo';\nBlockly.Msg['MATH_IS_PRIME'] = 'é primo';\nBlockly.Msg['MATH_IS_TOOLTIP'] =\n 'Verifica se um número é par, ímpar, inteiro, positivo, negativo, ou se é divisível por outro número. Retorna verdadeiro ou falso.';\nBlockly.Msg['MATH_IS_WHOLE'] = 'é inteiro';\nBlockly.Msg['MATH_MODULO_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo';\nBlockly.Msg['MATH_MODULO_TITLE'] = 'resto da divisão de %1 ÷ %2';\nBlockly.Msg['MATH_MODULO_TOOLTIP'] =\n 'Retorna o resto da divisão de dois números.';\nBlockly.Msg['MATH_MULTIPLICATION_SYMBOL'] = '×'; // untranslated\nBlockly.Msg['MATH_NUMBER_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/N%C3%BAmero';\nBlockly.Msg['MATH_NUMBER_TOOLTIP'] = 'Um número.';\nBlockly.Msg['MATH_ONLIST_HELPURL'] = ''; // untranslated\nBlockly.Msg['MATH_ONLIST_OPERATOR_AVERAGE'] = 'média da lista';\nBlockly.Msg['MATH_ONLIST_OPERATOR_MAX'] = 'maior da lista';\nBlockly.Msg['MATH_ONLIST_OPERATOR_MEDIAN'] = 'mediana da lista';\nBlockly.Msg['MATH_ONLIST_OPERATOR_MIN'] = 'menor da lista';\nBlockly.Msg['MATH_ONLIST_OPERATOR_MODE'] = 'moda da lista';\nBlockly.Msg['MATH_ONLIST_OPERATOR_RANDOM'] = 'item aleatório da lista';\nBlockly.Msg['MATH_ONLIST_OPERATOR_STD_DEV'] = 'desvio padrão da lista';\nBlockly.Msg['MATH_ONLIST_OPERATOR_SUM'] = 'soma de uma lista';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_AVERAGE'] =\n 'Retorna a média aritmética dos números da lista.';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_MAX'] = 'Retorna o maior número da lista.';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_MEDIAN'] =\n 'Retorna a mediana dos números da lista.';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_MIN'] = 'Retorna o menor número da lista.';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_MODE'] =\n 'Retorna uma lista do(s) item(ns) mais comum(ns) da lista.';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_RANDOM'] =\n 'Retorna um elemento aleatório da lista.';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_STD_DEV'] =\n 'Retorna o desvio padrão dos números da lista.';\nBlockly.Msg['MATH_ONLIST_TOOLTIP_SUM'] =\n 'Retorna a soma de todos os números na lista.';\nBlockly.Msg['MATH_POWER_SYMBOL'] = '^'; // untranslated\nBlockly.Msg['MATH_RANDOM_FLOAT_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Gerador_de_n%C3%BAmeros_pseudoaleat%C3%B3rios';\nBlockly.Msg['MATH_RANDOM_FLOAT_TITLE_RANDOM'] = 'fração aleatória';\nBlockly.Msg['MATH_RANDOM_FLOAT_TOOLTIP'] =\n 'Retorna uma fração aleatória entre 0.0 (inclusivo) e 1.0 (exclusivo).';\nBlockly.Msg['MATH_RANDOM_INT_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Gerador_de_n%C3%BAmeros_pseudoaleat%C3%B3rios';\nBlockly.Msg['MATH_RANDOM_INT_TITLE'] = 'inteiro aleatório entre %1 e %2';\nBlockly.Msg['MATH_RANDOM_INT_TOOLTIP'] =\n 'Retorna um número inteiro entre os dois limites informados, inclusivo.';\nBlockly.Msg['MATH_ROUND_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Arredondamento';\nBlockly.Msg['MATH_ROUND_OPERATOR_ROUND'] = 'arredonda';\nBlockly.Msg['MATH_ROUND_OPERATOR_ROUNDDOWN'] = 'arredonda para baixo';\nBlockly.Msg['MATH_ROUND_OPERATOR_ROUNDUP'] = 'arredonda para cima';\nBlockly.Msg['MATH_ROUND_TOOLTIP'] =\n 'Arredonda um número para cima ou para baixo.';\nBlockly.Msg['MATH_SINGLE_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Raiz_quadrada';\nBlockly.Msg['MATH_SINGLE_OP_ABSOLUTE'] = 'absoluto';\nBlockly.Msg['MATH_SINGLE_OP_ROOT'] = 'raiz quadrada';\nBlockly.Msg['MATH_SINGLE_TOOLTIP_ABS'] =\n 'Retorna o valor absoluto de um número.';\nBlockly.Msg['MATH_SINGLE_TOOLTIP_EXP'] =\n 'Retorna o número e elevado à potência de um número.';\nBlockly.Msg['MATH_SINGLE_TOOLTIP_LN'] =\n 'Retorna o logaritmo natural de um número.';\nBlockly.Msg['MATH_SINGLE_TOOLTIP_LOG10'] =\n 'Retorna o logaritmo em base 10 de um número.';\nBlockly.Msg['MATH_SINGLE_TOOLTIP_NEG'] = 'Retorna o oposto de um número.';\nBlockly.Msg['MATH_SINGLE_TOOLTIP_POW10'] =\n 'Retorna 10 elevado à potência de um número.';\nBlockly.Msg['MATH_SINGLE_TOOLTIP_ROOT'] =\n 'Retorna a raiz quadrada de um número.';\nBlockly.Msg['MATH_SUBTRACTION_SYMBOL'] = '-'; // untranslated\nBlockly.Msg['MATH_TRIG_ACOS'] = 'acos'; // untranslated\nBlockly.Msg['MATH_TRIG_ASIN'] = 'asin'; // untranslated\nBlockly.Msg['MATH_TRIG_ATAN'] = 'atan'; // untranslated\nBlockly.Msg['MATH_TRIG_COS'] = 'cos'; // untranslated\nBlockly.Msg['MATH_TRIG_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_trigonom%C3%A9trica';\nBlockly.Msg['MATH_TRIG_SIN'] = 'sin'; // untranslated\nBlockly.Msg['MATH_TRIG_TAN'] = 'tan'; // untranslated\nBlockly.Msg['MATH_TRIG_TOOLTIP_ACOS'] = 'Retorna o arco cosseno de um número.';\nBlockly.Msg['MATH_TRIG_TOOLTIP_ASIN'] = 'Retorna o arco seno de um número.';\nBlockly.Msg['MATH_TRIG_TOOLTIP_ATAN'] = 'Retorna o arco tangente de um número.';\nBlockly.Msg['MATH_TRIG_TOOLTIP_COS'] =\n 'Retorna o cosseno de um grau (não radiano).';\nBlockly.Msg['MATH_TRIG_TOOLTIP_SIN'] =\n 'Retorna o seno de um grau (não radiano).';\nBlockly.Msg['MATH_TRIG_TOOLTIP_TAN'] =\n 'Retorna a tangente de um grau (não radiano).';\nBlockly.Msg['NEW_COLOUR_VARIABLE'] = 'Criar variável colorida...';\nBlockly.Msg['NEW_NUMBER_VARIABLE'] = 'Criar variável numérica...';\nBlockly.Msg['NEW_STRING_VARIABLE'] = 'Criar variável de segmentos de texto...';\nBlockly.Msg['NEW_VARIABLE'] = 'Criar variável...';\nBlockly.Msg['NEW_VARIABLE_TITLE'] = 'Nome da nova variável:';\nBlockly.Msg['NEW_VARIABLE_TYPE_TITLE'] = 'Tipo da nova variável:';\nBlockly.Msg['ORDINAL_NUMBER_SUFFIX'] = ''; // untranslated\nBlockly.Msg['PROCEDURES_ALLOW_STATEMENTS'] = 'permitir declarações';\nBlockly.Msg['PROCEDURES_BEFORE_PARAMS'] = 'com:';\nBlockly.Msg['PROCEDURES_CALLNORETURN_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/M%C3%A9todo_(programa%C3%A7%C3%A3o)';\nBlockly.Msg['PROCEDURES_CALLNORETURN_TOOLTIP'] =\n 'Executa a função definida pelo usuário \"%1\".';\nBlockly.Msg['PROCEDURES_CALLRETURN_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Sub-rotina';\nBlockly.Msg['PROCEDURES_CALLRETURN_TOOLTIP'] =\n 'Executa a função definida pelo usuário \"%1\" e usa seu retorno.';\nBlockly.Msg['PROCEDURES_CALL_BEFORE_PARAMS'] = 'com:';\nBlockly.Msg['PROCEDURES_CREATE_DO'] = 'Criar \"%1\"';\nBlockly.Msg['PROCEDURES_DEFNORETURN_COMMENT'] = 'Descreva esta função...';\nBlockly.Msg['PROCEDURES_DEFNORETURN_DO'] = ''; // untranslated\nBlockly.Msg['PROCEDURES_DEFNORETURN_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/M%C3%A9todo_(programa%C3%A7%C3%A3o)';\nBlockly.Msg['PROCEDURES_DEFNORETURN_PROCEDURE'] = 'faça algo';\nBlockly.Msg['PROCEDURES_DEFNORETURN_TITLE'] = 'para';\nBlockly.Msg['PROCEDURES_DEFNORETURN_TOOLTIP'] =\n 'Cria uma função que não tem retorno.';\nBlockly.Msg['PROCEDURES_DEFRETURN_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/M%C3%A9todo_(programa%C3%A7%C3%A3o)';\nBlockly.Msg['PROCEDURES_DEFRETURN_RETURN'] = 'retorna';\nBlockly.Msg['PROCEDURES_DEFRETURN_TOOLTIP'] =\n 'Cria uma função que possui um valor de retorno.';\nBlockly.Msg['PROCEDURES_DEF_DUPLICATE_WARNING'] =\n 'Atenção: Esta função tem parâmetros duplicados.';\nBlockly.Msg['PROCEDURES_HIGHLIGHT_DEF'] = 'Destacar definição da função';\nBlockly.Msg['PROCEDURES_IFRETURN_HELPURL'] =\n 'http://c2.com/cgi/wiki?GuardClause';\nBlockly.Msg['PROCEDURES_IFRETURN_TOOLTIP'] =\n 'Se um valor é verdadeiro, então retorna um valor.';\nBlockly.Msg['PROCEDURES_IFRETURN_WARNING'] =\n 'Atenção: Este bloco só pode ser utilizado dentro da definição de uma função.';\nBlockly.Msg['PROCEDURES_MUTATORARG_TITLE'] = 'nome da entrada:';\nBlockly.Msg['PROCEDURES_MUTATORARG_TOOLTIP'] =\n 'Adiciona uma entrada para esta função';\nBlockly.Msg['PROCEDURES_MUTATORCONTAINER_TITLE'] = 'entradas';\nBlockly.Msg['PROCEDURES_MUTATORCONTAINER_TOOLTIP'] =\n 'Adiciona, remove, ou reordena as entradas para esta função.';\nBlockly.Msg['REDO'] = 'Refazer';\nBlockly.Msg['REMOVE_COMMENT'] = 'Remover comentário';\nBlockly.Msg['RENAME_VARIABLE'] = 'Renomear variável...';\nBlockly.Msg['RENAME_VARIABLE_TITLE'] = \"Renomear todas as variáveis '%1' para:\";\nBlockly.Msg['TEXTOSEMASPAS_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#text-modification'; // untranslated\nBlockly.Msg['TEXTOSEMASPAS_APPEND_TITLE'] = 'Texto %1 sem aspas';\nBlockly.Msg['TEXTOSEMASPAS_APPEND_TOOLTIP'] =\n 'Acrescentar um pedaço de texto sem aspas à variável \"%1\".';\nBlockly.Msg['TEXT_APPEND_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#text-modification'; // untranslated\nBlockly.Msg['TEXT_APPEND_TITLE'] = 'para %1 anexar texto %2';\nBlockly.Msg['TEXT_APPEND_TOOLTIP'] =\n 'Acrescentar um pedaço de texto à variável \"%1\".';\nBlockly.Msg['TEXT_CHANGECASE_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#adjusting-text-case';\nBlockly.Msg['TEXT_CHANGECASE_OPERATOR_LOWERCASE'] = 'para minúsculas';\nBlockly.Msg['TEXT_CHANGECASE_OPERATOR_TITLECASE'] = 'para Nomes Próprios';\nBlockly.Msg['TEXT_CHANGECASE_OPERATOR_UPPERCASE'] = 'para MAIÚSCULAS';\nBlockly.Msg['TEXT_CHANGECASE_TOOLTIP'] =\n 'Retorna uma cópia do texto em um formato diferente.';\nBlockly.Msg['TEXT_CHARAT_FIRST'] = 'obter primeira letra';\nBlockly.Msg['TEXT_CHARAT_FROM_END'] = 'obter letra # a partir do final';\nBlockly.Msg['TEXT_CHARAT_FROM_START'] = 'obter letra nº';\nBlockly.Msg['TEXT_CHARAT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#extracting-text'; // untranslated\nBlockly.Msg['TEXT_CHARAT_LAST'] = 'obter última letra';\nBlockly.Msg['TEXT_CHARAT_RANDOM'] = 'obter letra aleatória';\nBlockly.Msg['TEXT_CHARAT_TAIL'] = ''; // untranslated\nBlockly.Msg['TEXT_CHARAT_TITLE'] = 'no texto %1 %2';\nBlockly.Msg['TEXT_CHARAT_TOOLTIP'] = 'Retorna a letra na posição especificada.';\nBlockly.Msg['TEXT_COUNT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#counting-substrings';\nBlockly.Msg['TEXT_COUNT_MESSAGE0'] = 'Contar %1 em %2';\nBlockly.Msg['TEXT_COUNT_TOOLTIP'] =\n 'Calcule quantas vezes algum texto aparece centro de algum outro texto.';\nBlockly.Msg['TEXT_CREATE_JOIN_ITEM_TOOLTIP'] = 'Acrescentar um item ao texto.';\nBlockly.Msg['TEXT_CREATE_JOIN_TITLE_JOIN'] = 'unir';\nBlockly.Msg['TEXT_CREATE_JOIN_TOOLTIP'] =\n 'Acrescenta, remove ou reordena seções para reconfigurar este bloco de texto.';\nBlockly.Msg['TEXT_GET_SUBSTRING_END_FROM_END'] =\n 'até letra nº a partir do final';\nBlockly.Msg['TEXT_GET_SUBSTRING_END_FROM_START'] = 'até letra nº';\nBlockly.Msg['TEXT_GET_SUBSTRING_END_LAST'] = 'até última letra';\nBlockly.Msg['TEXT_GET_SUBSTRING_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text';\nBlockly.Msg['TEXT_GET_SUBSTRING_INPUT_IN_TEXT'] = 'no texto';\nBlockly.Msg['TEXT_GET_SUBSTRING_START_FIRST'] =\n 'obter trecho de primeira letra';\nBlockly.Msg['TEXT_GET_SUBSTRING_START_FROM_END'] =\n 'obter trecho de letra nº a partir do final';\nBlockly.Msg['TEXT_GET_SUBSTRING_START_FROM_START'] = 'obter trecho de letra nº';\nBlockly.Msg['TEXT_GET_SUBSTRING_TAIL'] = ''; // untranslated\nBlockly.Msg['TEXT_GET_SUBSTRING_TOOLTIP'] =\n 'Retorna o trecho de texto especificado.';\nBlockly.Msg['TEXT_INDEXOF_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#finding-text'; // untranslated\nBlockly.Msg['TEXT_INDEXOF_OPERATOR_FIRST'] =\n 'encontre a primeira ocorrência do item';\nBlockly.Msg['TEXT_INDEXOF_OPERATOR_LAST'] =\n 'encontre a última ocorrência do texto';\nBlockly.Msg['TEXT_INDEXOF_TITLE'] = 'no texto %1 %2 %3';\nBlockly.Msg['TEXT_INDEXOF_TOOLTIP'] =\n 'Retorna a posição da primeira/última ocorrência do primeiro texto no segundo texto. Retorna %1 se o texto não for encontrado.';\nBlockly.Msg['TEXT_ISEMPTY_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#checking-for-empty-text'; // untranslated\nBlockly.Msg['TEXT_ISEMPTY_TITLE'] = '%1 é vazio';\nBlockly.Msg['TEXT_ISEMPTY_TOOLTIP'] =\n 'Retorna verdadeiro se o texto fornecido for vazio.';\nBlockly.Msg['TEXT_JOIN_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#text-creation'; // untranslated\nBlockly.Msg['TEXT_JOIN_TITLE_CREATEWITH'] = 'criar texto com';\nBlockly.Msg['TEXT_JOIN_TOOLTIP'] =\n 'Criar um pedaço de texto juntando qualquer número de itens.';\nBlockly.Msg['TEXT_LENGTH_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#text-modification'; // untranslated\nBlockly.Msg['TEXT_LENGTH_TITLE'] = 'tamanho de %1';\nBlockly.Msg['TEXT_LENGTH_TOOLTIP'] =\n 'Retorna o número de letras (incluindo espaços) no texto fornecido.';\nBlockly.Msg['TEXT_PRINT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#printing-text';\nBlockly.Msg['TEXT_PRINT_TITLE'] = 'imprime %1';\nBlockly.Msg['TEXT_PRINT_TOOLTIP'] =\n 'Imprime o texto, número ou valor especificado.';\nBlockly.Msg['CONSOLE_PRINT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#printing-text';\nBlockly.Msg['CONSOLE_PRINT_TITLE'] = 'imprime na console de debug: %1';\nBlockly.Msg['CONSOLE_PRINT_TOOLTIP'] =\n 'Coloca na console de debug o texto, número ou valor especificado.';\nBlockly.Msg['TEXT_PROMPT_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#getting-input-from-the-user';\nBlockly.Msg['TEXT_PROMPT_TOOLTIP_NUMBER'] = 'Pede ao usuário um número.';\nBlockly.Msg['TEXT_PROMPT_TOOLTIP_TEXT'] = 'Pede ao usuário um texto.';\nBlockly.Msg['TEXT_PROMPT_TYPE_NUMBER'] = 'Pede um número com uma mensagem';\nBlockly.Msg['TEXT_PROMPT_TYPE_TEXT'] = 'Pede um texto com uma mensagem';\nBlockly.Msg['TEXT_REPLACE_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Texto#substituindo-substrings';\nBlockly.Msg['TEXT_REPLACE_MESSAGE0'] = 'substituir %1 por %2 em %3';\nBlockly.Msg['TEXT_REPLACE_TOOLTIP'] =\n 'Substitua todas as ocorrências de algum texto dentro de algum outro texto.';\nBlockly.Msg['TEXT_REVERSE_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Texto#invertendo-texto';\nBlockly.Msg['TEXT_REVERSE_MESSAGE0'] = 'inverter %1';\nBlockly.Msg['TEXT_REVERSE_TOOLTIP'] =\n 'Inverter a ordem dos caracteres no texto.';\nBlockly.Msg['TEXT_TEXT_HELPURL'] =\n 'https://pt.wikipedia.org/wiki/Cadeia_de_caracteres';\nBlockly.Msg['TEXT_TEXT_TOOLTIP'] = 'Uma letra, palavra ou linha de texto.';\nBlockly.Msg['TEXT_TRIM_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#trimming-removing-spaces';\nBlockly.Msg['TEXT_TRIM_OPERATOR_BOTH'] = 'remover espaços de ambos os lados de';\nBlockly.Msg['TEXT_TRIM_OPERATOR_LEFT'] = 'remover espaços à esquerda de';\nBlockly.Msg['TEXT_TRIM_OPERATOR_RIGHT'] = 'remover espaços à direita de';\nBlockly.Msg['TEXT_TRIM_TOOLTIP'] =\n 'Retorna uma cópia do texto com os espaços removidos de uma ou ambas extremidades.';\nBlockly.Msg['TEXT_TOJS_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Text#printing-text';\nBlockly.Msg['TEXT_TOJS_TITLE'] = 'JavaScript %1';\nBlockly.Msg['TEXT_TOJS_TOOLTIP'] =\n 'ATENÇÃO: Salve o texto como código RAW, sem crítica - as is.';\nBlockly.Msg['TODAY'] = 'Hoje';\nBlockly.Msg['UNDO'] = 'Desfazer';\nBlockly.Msg['UNNAMED_KEY'] = 'Sem título';\nBlockly.Msg['VARIABLES_DEFAULT_NAME'] = 'item';\nBlockly.Msg['VARIABLES_GET_CREATE_SET'] = 'Criar \"definir %1\"';\nBlockly.Msg['VARIABLES_GET_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Variables#get';\nBlockly.Msg['VARIABLES_GET_TOOLTIP'] = 'Retorna o valor desta variável.';\nBlockly.Msg['VARIABLES_SET'] = 'definir %1 para %2';\nBlockly.Msg['VARIABLES_SET_CREATE_GET'] = 'Criar \"obter %1\"';\nBlockly.Msg['VARIABLES_SET_HELPURL'] =\n 'https://github.com/google/blockly/wiki/Variables#set';\nBlockly.Msg['VARIABLES_SET_TOOLTIP'] =\n 'Define esta variável para o valor da entrada.';\nBlockly.Msg['VARIABLE_ALREADY_EXISTS'] = \"A variável chamada '%1' já existe.\";\nBlockly.Msg['VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE'] =\n \"Já existe uma variável chamada '%1' para outra do tipo: '%2'.\";\nBlockly.Msg['WORKSPACE_ARIA_LABEL'] = 'Espaço de trabalho do Blockly';\nBlockly.Msg['WORKSPACE_COMMENT_DEFAULT_TEXT'] = 'Diz algo...';\nBlockly.Msg['CONTROLS_FOREACH_INPUT_DO'] =\n Blockly.Msg['CONTROLS_REPEAT_INPUT_DO'];\nBlockly.Msg['CONTROLS_FOR_INPUT_DO'] = Blockly.Msg['CONTROLS_REPEAT_INPUT_DO'];\nBlockly.Msg['CONTROLS_IF_ELSEIF_TITLE_ELSEIF'] =\n Blockly.Msg['CONTROLS_IF_MSG_ELSEIF'];\nBlockly.Msg['CONTROLS_IF_ELSE_TITLE_ELSE'] =\n Blockly.Msg['CONTROLS_IF_MSG_ELSE'];\nBlockly.Msg['CONTROLS_IF_IF_TITLE_IF'] = Blockly.Msg['CONTROLS_IF_MSG_IF'];\nBlockly.Msg['CONTROLS_IF_MSG_THEN'] = Blockly.Msg['CONTROLS_REPEAT_INPUT_DO'];\nBlockly.Msg['CONTROLS_WHILEUNTIL_INPUT_DO'] =\n Blockly.Msg['CONTROLS_REPEAT_INPUT_DO'];\nBlockly.Msg['LISTS_CREATE_WITH_ITEM_TITLE'] =\n Blockly.Msg['VARIABLES_DEFAULT_NAME'];\nBlockly.Msg['LISTS_GET_INDEX_HELPURL'] = Blockly.Msg['LISTS_INDEX_OF_HELPURL'];\nBlockly.Msg['LISTS_GET_INDEX_INPUT_IN_LIST'] = Blockly.Msg['LISTS_INLIST'];\nBlockly.Msg['LISTS_GET_SUBLIST_INPUT_IN_LIST'] = Blockly.Msg['LISTS_INLIST'];\nBlockly.Msg['LISTS_INDEX_OF_INPUT_IN_LIST'] = Blockly.Msg['LISTS_INLIST'];\nBlockly.Msg['LISTS_SET_INDEX_INPUT_IN_LIST'] = Blockly.Msg['LISTS_INLIST'];\nBlockly.Msg['MATH_CHANGE_TITLE_ITEM'] = Blockly.Msg['VARIABLES_DEFAULT_NAME'];\nBlockly.Msg['PROCEDURES_DEFRETURN_COMMENT'] =\n Blockly.Msg['PROCEDURES_DEFNORETURN_COMMENT'];\nBlockly.Msg['PROCEDURES_DEFRETURN_DO'] =\n Blockly.Msg['PROCEDURES_DEFNORETURN_DO'];\nBlockly.Msg['PROCEDURES_DEFRETURN_PROCEDURE'] =\n Blockly.Msg['PROCEDURES_DEFNORETURN_PROCEDURE'];\nBlockly.Msg['PROCEDURES_DEFRETURN_TITLE'] =\n Blockly.Msg['PROCEDURES_DEFNORETURN_TITLE'];\nBlockly.Msg['TEXT_APPEND_VARIABLE'] = Blockly.Msg['VARIABLES_DEFAULT_NAME'];\nBlockly.Msg['TEXT_CREATE_JOIN_ITEM_TITLE_ITEM'] =\n Blockly.Msg['VARIABLES_DEFAULT_NAME'];\n\nBlockly.Msg['MATH_HUE'] = '230';\nBlockly.Msg['LOOPS_HUE'] = '120';\nBlockly.Msg['LISTS_HUE'] = '260';\nBlockly.Msg['LOGIC_HUE'] = '210';\nBlockly.Msg['VARIABLES_HUE'] = '330';\nBlockly.Msg['TEXTS_HUE'] = '160';\nBlockly.Msg['PROCEDURES_HUE'] = '290';\nBlockly.Msg['COLOUR_HUE'] = '20';\nBlockly.Msg['VARIABLES_DYNAMIC_HUE'] = '310';\n\nBlockly.Msg['JS_CODE'] = 'Código JavaScript';\nBlockly.Msg['JS_CODE_INNER_TEXT'] = 'Digite aqui o código JavaScript';\nBlockly.Msg['JS_CODE_INLINE_TOOLTIP'] =\n 'Coloque uma linha de código JavaScript válido';\nBlockly.Msg['JS_CODE_MULTILINE_TOOLTIP'] =\n 'Coloque aqui seu código JavaScript válido - multilinhas';\nBlockly.Msg['JUMP_TO_BLOCK'] = 'Pular para o bloco';\nBlockly.Msg['OF_GROUP'] = 'do grupo';\nBlockly.Msg['JUMP_TO_BLOCK_OF_GROUP_TOOLTIP'] =\n 'Pular para um outro Bloco/Grupo. Coloque um Bloco que exista caso contrario a lógica vai cessar.';\nBlockly.Msg['JUMP_TO_BLOCK_TOOLTIP'] =\n 'Pular para um outro Bloco. Coloque um Bloco que exista caso contrario a lógica vai cessar.';\nBlockly.Msg['JUMP_TO_CONNECTOR'] = 'Pular para o conector:';\nBlockly.Msg['JUMP_TO_CONNECTOR_TOOLTIP'] =\n 'Coloque aqui o nome CURTO do connector';\nBlockly.Msg['COMMENT'] = 'Comentário';\nBlockly.Msg['COMMENT_FIELD'] = 'Digite aqui\\nseu comentário';\nBlockly.Msg['COMMENT_TOOLTIP'] = 'Coloque o comentário que desejar';\nBlockly.Msg['TEXT'] = 'Texto';\nBlockly.Msg['IMAGE'] = 'Imagem';\nBlockly.Msg['TTS'] = 'Audio';\nBlockly.Msg['DOCUMENT'] = 'Documento';\nBlockly.Msg['VIDEO'] = 'Vídeo';\nBlockly.Msg['BUTTONS'] = 'Botões';\nBlockly.Msg['CAROUSEL'] = 'Carrossel';\nBlockly.Msg['LIST'] = 'Lista';\nBlockly.Msg['PAYLOAD'] = 'Payload';\n\nBlockly.Msg['NAME'] = 'Nome';\nBlockly.Msg['NICKNAME'] = 'Apelido';\nBlockly.Msg['CPF'] = 'CPF';\nBlockly.Msg['CEL'] = 'Celular';\nBlockly.Msg['EMAIL'] = 'Email';\nBlockly.Msg['ADDRESS'] = 'Endereço';\nBlockly.Msg['NEIGHBORHOOD'] = 'Bairro';\nBlockly.Msg['CITY'] = 'Cidade';\nBlockly.Msg['STATE'] = 'Estado';\nBlockly.Msg['CEP'] = 'CEP';\nBlockly.Msg['COMPANY'] = 'Empresa';\nBlockly.Msg['CNPJ'] = 'CNPJ';\n\nBlockly.Msg['MSG'] = 'Mensagem';\nBlockly.Msg['MSG_TOOLTIP'] = 'Envia mensagem para o usuário';\nBlockly.Msg['MSG_AUDIO'] = 'Mensagem Texto para de Audio';\nBlockly.Msg['MSG_AUDIO_TOOLTIP'] = 'Envia audio para o usuário';\nBlockly.Msg['MSG_AUDIO_VOICE_TITLE'] = 'Envia mensagem de voz';\nBlockly.Msg['MSG_AUDIO_VOICE'] = 'Tipo de voz';\nBlockly.Msg['MSG_AUDIO_VOICE_TOOLTIP'] = 'Envia mensagem de voz para o usuário';\nBlockly.Msg['MSG_AUDIO_VOICE_TEXT'] = 'Mensagem';\nBlockly.Msg['CLEAR_VARS'] = 'Apaga TODAS as variáveis vars. ClearVars()';\nBlockly.Msg['CLEAR_VARS_TOOLTIP'] =\n 'ATENÇÃO: a funcão ClearVars() apaga todas as variaveis globais VARS de TODO o agente';\nBlockly.Msg['AMBIENT_VARS_USER'] = 'Variável de ambiente user.';\nBlockly.Msg['AMBIENT_VARS_USER_TOOLTIP'] =\n 'Variáveis do ambiente do Agente do usuário';\nBlockly.Msg['AMBIENT_VARS_USER_VALUE_TOOLTIP'] =\n 'Atribuir valor às variáveis do ambiente do Bot do usuário';\nBlockly.Msg['GLOBAL_VAR'] = 'Variável global';\nBlockly.Msg['GET_VAR_TOOLTIP'] = 'Recupera o valor da variável global VARS';\nBlockly.Msg['SET_VAR_TOOLTIP'] = 'Atribui valor a uma variável global VARS';\nBlockly.Msg['VARIABLE'] = 'Variável';\nBlockly.Msg['VARIABLE_TOOLTIP'] =\n 'Recupera o valor da variável do dialogo do bloco';\nBlockly.Msg['CREATE_TABLE'] = 'Gerador de Tabela';\nBlockly.Msg['CREATE_TABLE_TOOLTIP'] =\n 'Retorna a URL da tabela. Veja documentação.';\nBlockly.Msg['CREATE_CHART'] = 'Gerador de Gráfico';\nBlockly.Msg['CREATE_CHART_TOOLTIP'] =\n 'Retorna a URL do gráfico. Veja documentação aqui: https://quickchart.io/gallery/';\nBlockly.Msg['IS_VALID_TEXT_TOOLTIP'] =\n 'Retorna TRUE se for um string válido ou FALSE se não for, ou se for null';\nBlockly.Msg['IS_VALID_DATE_TOOLTIP'] =\n 'Retorna NULL se a data não for válida ou milis se for uma data válida';\nBlockly.Msg['IS_VALID_CPF_TOOLTIP'] =\n 'Retorna NULL se o CPF não for válido, e retorna o CPF sem caracteres especiais caso CPF seja válido';\nBlockly.Msg['IS_VALID_CNPJ_TOOLTIP'] =\n 'Retorna NULL se o CNPJ não for válido, e retorna o CNPJ sem caracteres especiais caso CNPJ seja válido';\nBlockly.Msg['IS_VALID_CEP_TOOLTIP'] =\n 'Retorna NULL se o CEP não for válido, e retorna um OBJETO CEP se for válido (.cep .uf .cidade .bairro .logradouro)';\nBlockly.Msg['JSON_STRINGIFY_TOOLTIP'] =\n 'Transforma JSON OBJ em texto. Retorna um STRING';\nBlockly.Msg['JSON_PARSE_TOOLTIP'] =\n 'Transforma JSON TEXTO em OBJ. Retorna um OBJETO';\nBlockly.Msg['HTTP_REQUEST'] = 'Chamada a Requisição HTTP: Request';\nBlockly.Msg['HTTP_REQUEST_TOOLTIP'] =\n 'Retorna o objeto BODY da resposta se o retorno for 200 ou retorna false caso um erro ocorra. Aqui você precisa ler a documentação. É muito específico ;-)';\nBlockly.Msg['HTTP_REQUEST_SUPPRESS_ERRORS'] =\n 'Suprimir erros em ambiente DEV (TRUE/FALSE)';\nBlockly.Msg['HTTP_REQUEST_ENABLE_ERROR_RETURN'] =\n 'Habilitar retorno de erro (TRUE/FALSE)';\nBlockly.Msg['ARRAY_TEXT'] = 'coloque\\narray aqui';\nBlockly.Msg['ARRAY_TOOLTIP'] = \"Coloque aqui as linhas do Array sem o '[ ]'\";\nBlockly.Msg['JSON_TEXT'] = 'coloque\\nJSON aqui';\nBlockly.Msg['JSON_TOOLTIP'] =\n \"Coloque aqui as linhas do Objeto JSON sem o '{ }'\";\nBlockly.Msg['TO_INT'] = 'Número inteiro de';\nBlockly.Msg['TO_DEC'] = 'Número decimal de';\nBlockly.Msg['TO_INT_TOOLTIP'] =\n 'Retorna o número inteiro de um número ou uma string.';\nBlockly.Msg['TO_DEC_TOOLTIP'] = 'Retorna o número decimal de um string.';\nBlockly.Msg['TRANSLATE_TITLE'] = 'Traduz texto';\nBlockly.Msg['TRANSLATE_SOURCE'] = 'Idioma de origem. ex: pt-br';\nBlockly.Msg['TRANSLATE_TARGET'] = 'Idioma de destino. ex: en';\nBlockly.Msg['TRANSLATE_TEXT'] = 'Texto a ser traduzido';\nBlockly.Msg['TRANSLATE_TOOLTIP'] =\n 'Traduz um texto de um idioma para outro idioma';\nBlockly.Msg['MULTILINE_TEXT'] = 'Texto múltiplas linhas:';\nBlockly.Msg['CONV_DATE'] = 'Converte data (D/M/A)';\nBlockly.Msg['CONV_DATE_TOOLTIP'] = 'Coloque a data que deseja converter';\nBlockly.Msg['CONV_HOUR'] = 'Converte para hora';\nBlockly.Msg['CONV_HOUR_TOOLTIP'] = 'Coloque a hora que deseja converter';\nBlockly.Msg['DATE_NOW'] = 'Data / Hora agora';\nBlockly.Msg['DATE_NOW_TOOLTIP'] = 'Data / Hora atuais';\nBlockly.Msg['SEND_SMS'] = 'Envia SMS';\nBlockly.Msg['PHONE'] = '# Telefone';\nBlockly.Msg['MESSAGE'] = 'Mensagem';\nBlockly.Msg['SEND_SMS_TOOLTIP'] =\n 'Envia uma mensagem SMS para um telefone (string tipo +551198555555 ou 551198555555)';\nBlockly.Msg['ADD_LINE_GOOGLE_SHEET'] = 'Adiciona linha no GSheet';\nBlockly.Msg['ADD_LINE_GOOGLE_SHEET_TOOLTIP'] =\n 'Coloque o googlesheetid e a lista (array) com as células. Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['ADD_HEADER_GOOGLE_SHEET'] = 'Grava cabeçalho no GSheet';\nBlockly.Msg['ADD_HEADER_GOOGLE_SHEET_TOOLTIP'] =\n 'Coloque o googlesheetid e a lista (array) com os titulos das colunas. Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['READ_LINE_GOOGLE_SHEET'] = 'Lê linha do GSheet';\nBlockly.Msg['READ_LINE_GOOGLE_SHEET_TOOLTIP'] =\n 'Retorna uma lista com as celulas. Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['READ_CEL_GOOGLE_SHEET'] = 'Lê celula no GSheet formato número';\nBlockly.Msg['READ_CEL_GOOGLE_SHEET_TOOLTIP'] =\n 'Retorna uma lista com as celulas. Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['SAVE_CEL_GOOGLE_SHEET'] = 'Salva celula no GSheet formato número';\nBlockly.Msg['SAVE_CEL_GOOGLE_SHEET_TOOLTIP'] =\n 'Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['READ_CEL_GOOGLE_SHEET_A1'] = 'Lê celula no GSheet formato A1';\nBlockly.Msg['READ_CEL_GOOGLE_SHEET_A1_TOOLTIP'] =\n 'Retorna uma lista com as celulas. Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['READ_REGION_GOOGLE_SHEET'] = 'Lê região no GSheet';\nBlockly.Msg['READ_REGION_GOOGLE_SHEET_TOOLTIP'] =\n 'Retorna JSON com as celulas. Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['READ_REGION_GOOGLE_SHEET_AS_TABLE'] =\n 'Lê região como uma tabela no GSheet';\nBlockly.Msg['READ_REGION_GOOGLE_SHEET_AS_TABLE_TOOLTIP'] =\n 'Retorna JSON com as celulas, onde a primeira linha é o NOME da coluna no JSON. Não esqueça de compartilhar a planilha com o email do LLego';\nBlockly.Msg['READ_REGION_GOOGLE_SHEET_AS_TABLE_A1'] =\n 'Lê região como uma tabela no GSheet A1';\nBlockly.Msg['READ_REGION_GOOGLE_SHEET_AS_TABLE_A1_TOOLTIP'] =\n 'Retorna JSON com as celulas, onde a primeira linha é o NOME da coluna no JSON. Não esqueça de compartilhar a planilha com o email do LLego';\n\nBlockly.Msg['TAB'] = 'aba #';\nBlockly.Msg['LINE'] = 'linha #';\nBlockly.Msg['COLUMN'] = 'coluna #';\nBlockly.Msg['START_LINE'] = 'linha inicial #';\nBlockly.Msg['END_LINE'] = 'linha final #';\nBlockly.Msg['START_COLUMN'] = 'coluna inicial #';\nBlockly.Msg['END_COLUMN'] = 'coluna final #';\nBlockly.Msg['TAB_LINE_COLUMN_STARTS_AT_0'] = 'Aba, linha e coluna começam em 0';\nBlockly.Msg['TAB_STARTS_AT_0'] = 'Aba começa em 0';\nBlockly.Msg['LIST_WITH_CELLS'] = 'lista com células';\nBlockly.Msg['LIST_WITH_TITLES_OF_COLUMNS'] = 'lista com titulos das colunas';\nBlockly.Msg['TAB_LINE_STARTS_AT_0'] = 'aba e linha começam em 0';\nBlockly.Msg['USE_RANGE_FORMAT_A1_Z9'] = 'usar o range no formato A1:Z9';\nBlockly.Msg['ADDRESS_ON_FORMAT_A1'] = 'endereço no formato A1';\nBlockly.Msg['VALUE_FOR_CELL'] = 'valor a ser gravado na celula';\nBlockly.Msg['RANGE_ON_FORMAT_A1:B3'] = 'Range no formato A1:B3';\n\nBlockly.Msg['FIELD'] = 'Campo';\nBlockly.Msg['OF_USERID'] = 'do UserID';\nBlockly.Msg['VALUE_ASSIGNED'] = 'Valor a ser atribuído';\nBlockly.Msg['RETURNS_USERID'] = 'Retorna UserId se campo';\nBlockly.Msg['HAS_TEXT'] = 'Contiver o texto';\nBlockly.Msg['RETURNS_JSON_USERID'] = 'Retorna Json do UserId';\nBlockly.Msg['INSERT_USERID'] = 'Coloque o UserId ou null';\n\nBlockly.Msg['DB_READ_FIELD'] = 'Banco de Dados - Lê campo';\nBlockly.Msg['DB_READ_FIELD_TOOLTIP'] =\n 'Retorna o campo do UserId indicado, se UserId não existir retorna null';\nBlockly.Msg['DB_SAVE_FIELD'] = 'Banco de Dados - Salva campo';\nBlockly.Msg['DB_SAVE_FIELD_TOOLTIP'] = 'Atribui ao campo escolhido um valor';\nBlockly.Msg['DB_SEARCH_FIELD'] = 'Banco de Dados Usuários - Pesquisa campo';\nBlockly.Msg['DB_SEARCH_FIELD_TOOLTIP'] =\n 'Pesquisa e retorna o array dos userids que contiverem o valor';\nBlockly.Msg['DB_ALL_FIELDS'] = 'Banco de Dados - Todos os campos';\nBlockly.Msg['DB_ALL_FIELDS_TOOLTIP'] =\n 'Retorna todos os campos do userid definido ou null se não existir';\nBlockly.Msg['DB_READ_CREATE_USER'] = 'Banco de Dados - Cria user';\nBlockly.Msg['DB_READ_CREATE_USER_TOOLTIP'] =\n 'Você pode criar um userid ou null se quiser que o banco crie para voce. o retorno é o userid criado';\n\nBlockly.Msg['CALL_TO_PWA'] = 'Chamada a PWA';\nBlockly.Msg['CALL_TO_PWA_TOOLTIP'] =\n 'Aqui você precisa ler a documentação. É muito específico ;-)';\nBlockly.Msg['NAME_HTML'] = 'Nome HTML';\nBlockly.Msg['NAME_BLOCK'] = 'Nome de Bloco de Retorno';\nBlockly.Msg['PAYLOAD_JSON'] = 'Payload no formato JSON - opcional';\n\nBlockly.Msg['BLOCK_JSON'] = 'Bloco JSON';\nBlockly.Msg['DOUBLE_JSON'] = 'Dupla JSON';\nBlockly.Msg['VALUE'] = 'VALOR';\n\nBlockly.Msg['CRM_COMPANY'] = 'CRM Empresa: Campo';\nBlockly.Msg['CRM_SEARCH_COMPANY_DATA'] = 'CRM - Busca dados da empresa';\nBlockly.Msg['CRM_SEARCH_COMPANY_DATA_CONTAIN'] = 'Contém';\nBlockly.Msg['CRM_SEARCH_COMPANY_DATA_TOOLTIP'] = 'Busca os dados da empresa';\nBlockly.Msg['CRM_SAVE_COMPANY_DATA'] = 'CRM - Atualiza dados da empresa';\nBlockly.Msg['CRM_NEW_COMPANY_DATA'] = 'CRM -Insere novo dado da empresa';\nBlockly.Msg['CRM_ERASE_COMPANY_DATA'] = 'CRM - APAGA dados da empresa';\n\nBlockly.Msg['BLOCK_CALL_TRIGGER'] = 'Gatilho de chamada de bloco';\nBlockly.Msg['BLOCK_CALL_TRIGGER_TOOLTIP'] =\n 'Verifique a documentação para uso do gatilho';\nBlockly.Msg['NAME_OF_THE_RULE'] = 'Nome da regra';\nBlockly.Msg['START'] = 'Início';\nBlockly.Msg['END'] = 'Fim';\nBlockly.Msg['REPEAT_EVERY'] = 'Repetir a cada';\nBlockly.Msg['DAY'] = 'dia';\nBlockly.Msg['WEEK'] = 'semana';\nBlockly.Msg['MONTH'] = 'mês';\nBlockly.Msg['YEAR'] = 'ano';\nBlockly.Msg['HOUR'] = 'hora';\nBlockly.Msg['DAYS_OF_WEEK'] = 'Dias da semana';\nBlockly.Msg['SUNDAY'] = 'Domingo';\nBlockly.Msg['MONDAY'] = 'Segunda';\nBlockly.Msg['TUESDAY'] = 'Terça';\nBlockly.Msg['WEDNESDAY'] = 'Quarta';\nBlockly.Msg['THURSDAY'] = 'Quinta';\nBlockly.Msg['FRIDAY'] = 'Sexta';\nBlockly.Msg['SATURDAY'] = 'Sábado';\nBlockly.Msg['DEFINE_BLOCK'] = 'Defina o bloco a ser ativado no gatilho';\nBlockly.Msg['CALL_BLOCK'] = 'Chamar o bloco';\n\nBlockly.Msg['FUNCTION'] = 'Função';\nBlockly.Msg['DISTANCE'] = 'Distancia entre 2 pontos (lat/long)';\nBlockly.Msg['VARIABLE'] = 'variável';\n\nBlockly.Msg['PROVIDER'] = 'PROVIDER';\nBlockly.Msg['PROVIDER_TOOLTIP'] =\n 'Conecta ao setor definido do chat humano e ao retornar acessa o grupo/bloco de retorno';\nBlockly.Msg['SECTOR'] = 'Setor';\nBlockly.Msg['RETURN_GROUP'] = 'Grupo de Retorno';\nBlockly.Msg['RETURN_BLOCK'] = 'Bloco de Retorno';\nBlockly.Msg['LATITUDE'] = 'Latitude';\nBlockly.Msg['LONGITUDE'] = 'Longitude';\nBlockly.Msg['TASK_ATTRIBUTES_ONLY_TWILLO'] =\n 'Atributos de Tarefa';\nBlockly.Msg['WAIT'] = 'Aguarda';\nBlockly.Msg['WAIT_SECONDS'] = '(# de segundos)';\nBlockly.Msg['WAIT_TOOLTIP'] = 'Aguarda entre 0 e 10 segundos';\nBlockly.Msg['WORKFLOW_TITLE'] = 'Conector de fluxo';\nBlockly.Msg['WORKFLOW_PROVIDER'] = \"Provedor do workflow\";\nBlockly.Msg['WORKFLOW_IDENTIFIER'] = \"Identificador do Node\";\nBlockly.Msg['WORKFLOW_JSON'] = \"JSON do Node\";\nBlockly.Msg['WORKFLOW_TOOLTIP'] = \"Conecta a um workflow identificado passando o JSON dos dados\";"],"sourceRoot":""}