{"version":3,"sources":["assets/files/solicitud-inscripcion-posgrado.pdf","constants/periods.js","api/exceptions/ApiException.js","api/exceptions/ExpiredSessionException.js","api/exceptions/AuthorizationException.js","api/exceptions/NotFoundException.js","api/exceptions/ValidationException.js","api/exceptions/InternalServerErrorException.js","assets/files/prorroga.docx","assets/files/prorroga-posgrado.docx","redux/types.js","utils/setAuthorizationToken.js","redux/actions/authActions.js","assets/images/ith-logo.png","assets/images/tecnm-logo-circle.png","assets/images/aspirantes.png","assets/images/ITH.jpg","assets/files/carta-compromiso-estudiante.pdf","assets/files/solicitud-inscripcion-licenciatura.pdf","assets/files/carta-consentimiento-datos-personales.pdf","components/PeriodsList/index.js","components/PeriodsList/UpdateButton/index.js","components/PeriodsList/DeleteButton/index.js","redux/actions/uiActions.js","components/ModalDialog/index.js","constants/roles.js","components/SideNav/index.js","components/NavBar/index.js","layouts/App/index.js","components/LoginForm/index.js","views/Auth/LoginCandidate/index.js","views/Auth/LoginAdmin/index.js","components/PrivateRoute/index.js","api/OwnEnrollmentDocumentsApi.js","redux/actions/unenrolledStudent.js","components/CandidateInfo/index.js","components/DocumentImage/index.js","components/FileButton/index.js","components/ViewButton/index.js","components/AlertDismissible/index.js","components/StudentValidateButtons/index.js","components/ConfirmButton/index.js","components/RejectButton/index.js","api/EnrollmentDocumentsApi.js","components/AdminValidateButtons/index.js","components/DocumentLabelStatus/index.js","components/DocumentDate/index.js","components/NssInput/index.js","constants/APIFields.js","utils/translateFilters.js","api/CandidatesApi.js","components/NssInputAdmin/index.js","components/PendingButton/index.js","components/DocumentMessages/index.js","components/Document/index.js","components/EnrollButton/index.js","components/EnrollEmailButton/index.js","components/NextStudentButton/index.js","components/Documents/index.js","components/StudentNews/index.js","views/Accepted/UnenrolledStudentHome/index.js","redux/actions/candidatesListActions.js","components/UnsubscribeButton/index.js","components/DetailsButton/index.js","components/EnableStudentButton/index.js","components/Link/index.js","components/ListUnenrolledStudents/index.js","redux/actions/exportDocumentActions.js","components/Responsibles/index.js","api/StaffApi.js","utils/dateFormat.js","components/DateInputField/index.js","components/ExportButton/index.js","components/ExportChiefReportButton/index.js","components/ExportDocumentForm/index.js","api/ReportsApi.js","components/Pagination/index.js","components/SizePerPage/index.js","api/MajorsApi.js","redux/actions/majorActions.js","components/SelectField/index.js","components/TextField/index.js","views/Admin/ChiefCareer/index.js","redux/actions/unenrolledStudentSelected.js","components/RefreshButton/index.js","components/BackListButton/index.js","views/Admin/Details/index.js","views/Admin/Reports/index.js","components/Majors/index.js","components/StudentForm/index.js","views/Admin/Student/CreateStudent.js","views/Admin/Student/UpdateStudent.js","components/PeriodForm/PeriodNameErrors/index.js","components/PeriodForm/PeriodDateRange/index.js","components/PeriodForm/index.js","redux/actions/selectedPeriodActions.js","views/Admin/Period/CreatePeriod.js","views/Admin/Period/UpdatePeriod.js","components/CreatePeriodButton/index.js","routes/index.js","views/Admin/Period/ListPeriods.js","views/Auth/AuthCheck/index.js","components/Root/index.js","redux/reducers/auth.js","redux/reducers/unenrolledStudent.js","redux/reducers/unenrolledStudentSelectedInfo.js","redux/reducers/selectedPeriodInfo.js","redux/reducers/uiReducer.js","redux/reducers/exportDocumentReducer.js","redux/reducers/majorsReducer.js","redux/reducers/periodsReducer.js","redux/reducers/candidatesListReducer.js","redux/index.js","index.js","assets/files/Carta-compromiso-de-entrega-de-Certificado.docx","api/Api.js","redux/actions/periodActions.js","api/PeriodsApi.js","config.js","api/AuthApi.js"],"names":["module","exports","DEFAULT_PERIOD_VALUE","ApiException","status","params","Number","name","Error","ExpiredSessionException","message","AuthorizationException","NotFoundException","ValidationException","errors","InternalServerErrorException","SET_USER","UNSET_USER","SET_LOGIN_ERROR","SET_STUDENT_INFO","SET_UNENROLLED_STUDENT_DOCUMENTS","BEGINNING_REQUEST","ERROR_DOCUMENT_REQUEST","DOCUMENT_UPLOADED","SET_PARAM","SET_SHOW_MODAL","SET_HIDE_MODAL","SET_UNENROLLED_STUDENT_INFO_LOADING","SET_UNENROLLED_STUDENT_INFO_ERROR","SET_UNENROLLED_STUDENT_INFO","SET_UNENROLLED_STUDENT_INFO_RESET","SET_PERIODS","DELETE_PERIOD","SET_SELECTED_PERIOD_INFO_LOADING","SET_SELECTED_PERIOD_INFO_ERROR","SET_SELECTED_PERIOD_INFO","SET_SELECTED_PERIOD_INFO_RESET","setAuthorizationToken","token","axios","defaults","headers","common","setUser","payload","type","clearAuthentication","setErrors","loginAdmin","redirectTo","username","password","api","AuthApi","processLogin","adminLogin","loginCandidateRequest","candidateLogin","loginCallback","dispatch","a","then","data","window","sessionStorage","user","JSON","stringify","access_token","navigate","catch","e","handleLoginError","error","getUserAuthenticated","getItem","parse","logoutRequest","type_of_user","getState","post","API_URL","clear","response","handleExpiredAuthState","resetAuthState","Swal","fire","title","icon","confirmButtonColor","confirmButtonText","restoreAuthState","PeriodsList","columns","dataField","text","formatter","cell","global","moment","format","toUpperCase","variant","dataset","records","map","slug","label","rest","nombre","action","bootstrap4","keyField","UpdateButton","useState","isLoading","setIsLoading","useEffect","overlay","className","onClick","size","animation","connect","deleteFromList","alert","withReactContent","showCancelButton","cancelButtonText","showLoaderOnConfirm","preConfirm","PeriodsApi","delete","setShowModal","setHideModal","mapDispatchToProps","hideModal","state","modal","uiReducer","isModalVisible","path","nss","Modal","show","onHide","aria-labelledby","centered","Header","closeButton","Title","id","class","Body","width","height","src","Footer","Button","DEPARTMENT_HEADS","auth","iconsStyle","fontSize","lineHeight","isDepartmentHead","setIsDepartmentHead","includes","role","onSelect","selected","Toggle","Nav","eventKey","style","marginBottom","marginTop","marginLeft","dispatchStateToProps","Navbar","bg","alt","ithLogo","Brand","href","tecnmLogo","NavDropdown","full_name","alignRight","Item","Divider","App","props","split","pathname","useLocation","children","LoginForm","userLabelName","loginRequest","loginTo","useForm","register","handleSubmit","Form","onSubmit","event","preventDefault","Group","Label","Control","autoFocus","required","Alert","isAuth","Container","fluid","Row","Col","xs","span","md","lg","img","PrivateRoute","Component","component","redirect","field","from","to","noThrow","OwnEnrollmentDocumentsApi","request","get","generateAbsolutePath","this","perform","documentSlug","Api","authApi","enrollmentDocumentsApi","getUnenrolledStudentInfo","setLoading","Promise","all","studentInfo","list","documentsInfo","setUnenrolledStudentInformation","info","documents","console","log","unenrolledStudent","Card","border","Badge","inscripcion","numero_de_control","equivalencia","traslado","documentacion","inscrito","primer_apellido","segundo_apellido","nip","curp","correo","inscrito_por","telefono_celular","carrera","DocumentImage","requestAnimationFrame","Holder","run","images","Img","setFile","nssRef","MySwal","handleFile","AlertValidate","input","inputAttributes","html","inputValidator","file","resolve","formData","FormData","append","undefined","current","value","store","aceptado","numero_de_seguro_social","OverlayTrigger","Tooltip","showModal","AlertDismissible","dismiss","setShow","onClose","dismissible","Heading","StudentValidateButtons","tiene_documento","pendiente","apiCallback","documento","handlerConfirm","toast","position","showConfirmButton","onBeforeOpen","showLoading","timer","timerProgressBar","handlerComment","comments","observaciones","showValidationMessage","allowOutsideClick","EnrollmentDocumentsApi","controlNumber","put","reason","razon","AdminValidateButtons","accept","reject","DocumentLabelStatus","DocumentDate","date","fromNow","ago","student","setNss","filter","document","ref","onChange","target","maxLength","disabled","placeholder","FIELD_TRANSLATIONS","documentation","period","major","belate","enroll","shifting","page","sizePerPage","control","documentPending","responsible","translateFilters","filters","result","Object","entries","CandidatesApi","deleted","unenrolledStudentSelectedInfo","isEnable","setIsEnable","setMessage","Spinner","numeroControl","Check","Input","checked","unmarkAsPending","razon_pendiente","markAsPending","DocumentMessages","solicitudInscripcionLicenciatura","download","solicitudInscripcionMaestria","solicitudInscripcionDoctorado","cartaConsentimientoDatosPersonales","contratoEstudiante","prorroga","prorrogaPosgrado","downolad","useRef","updated_at","thumbnail","NssInputAdmin","updateHandler","tardias","setTardias","cancelButtonColor","resendEnrollmentEmail","next","allowEnrollmentStateToggle","key","StudentNews","tiene_documento_rechazado","background","block","restore","Link","majors","length","find","students","corrimiento","tiene_documento_pendiente","deleted_at","setExportDocumentParam","param","values","keys","setParam","listResponsibles","setLisResponsibles","searchByRole","controlId","as","custom","dateFormat","currentDate","Date","getFullYear","getMonth","getDate","registerLocale","es","exportDocumentReducer","setDate","locale","dateSelected","todayButton","isClearable","placeholderText","ExportButton","callback","onError","loading","loadingTitle","tooltipText","responseType","handleDownload","defaultFileName","fileName","fileDownload","setTarget","handleError","join","Overlay","placement","container","containerPadding","transition","Popover","Content","excel","concentrated","pendingDocumentation","studentPhotos","Pagination","currentPage","currentSize","totalRecords","handleChange","paginationConfig","totalPages","Math","ceil","showMax","center","prevNext","SizePerPage","ranges","Dropdown","Menu","MajorsApi","getAllMajors","parseMajors","setAllMajors","SelectField","options","option","TextField","getAllPeriods","setPage","setSizePerPage","requestUpdateCandidateList","total","setFilters","setListDeleted","candidatesList","candidatesListReducer","majorsReducer","periods","periodsReducer","isSelectedPeriodActive","useCallback","top","zIndex","placheholder","candidatesApi","getUnenrolledStudent","setUnenrolledStudent","setError","reset","RefreshButton","BackListButton","blockUnenrolledStudent","resetUnenrolledStudent","setInterval","clearInterval","isFromCurrentPeriod","periodo","p","slugStudent","Reports","Table","striped","bordered","hover","pill","useFormContext","studentData","showOnSubmit","recordExists","formMethods","formState","setFocus","scrollTo","carrera_id","referencia","serializeData","update","onAfterClose","CreateStudent","existing","selectedPeriodInfo","yearError","halfError","nameError","clearErrors","year","useWatch","defaultValue","half","RegExp","yearPattern","test","PeriodDateRange","start","setStart","end","setEnd","startError","endError","forwardRef","htmlFor","selectsStart","startDate","endDate","maxDate","popperPlacement","customInput","selectsEnd","minDate","PeriodForm","periodData","setStartDate","setEndDate","setValue","abreviatura","inicio_periodo","fin_periodo","activo","abierto_para_inscripciones","round","quarter","pattern","setInfo","resetInfo","resetPeriod","loaded","getPeriodInfo","CreatePeriodButton","verticalAlign","routes","UnenrolledStudentHome","ChiefCareer","Details","UpdateStudent","CreatePeriod","UpdatePeriod","route","index","initialState","success","rootReducer","combineReducers","files","require","createStore","applyMiddleware","thunk","ReactDOM","render","getElementById","BaseUrl","HTTPCodes","handleAPIError","Unauthorized","Forbidden","NotFound","UnprocessableEntity","InternalServerError","relativePath","query","forEach","parseInt","parsePeriods","order","setAllPeriods","part","process","REACT_APP_API_URL"],"mappings":"uHAAAA,EAAOC,QAAU,IAA0B,4D,iCCA3C,kCAAO,IAAMC,EAAuB,I,iRCiBrBC,E,kDARX,aAAmC,IAAD,EAAtBC,EAAsB,uDAAb,EAAa,+CAAPC,EAAO,iCAAPA,EAAO,yBAC9B,+BAASA,KARbD,OAAS,EAUL,EAAKA,OAASE,OAAOF,GACrB,EAAKG,KAAO,YAJkB,E,sBATXC,QCeZC,E,kDAPX,aAAsD,IAAD,EAAzCC,EAAyC,uDAA/B,0BAA+B,+CAAPL,EAAO,iCAAPA,EAAO,yBACjD,uBAAM,IAAKK,GAAX,OAAuBL,KAElBE,KAAO,iBAHqC,E,UANnBJ,GCavBQ,E,kDAPX,aAAqF,IAAD,EAAxED,EAAwE,uDAA9D,yDAA8D,+CAAPL,EAAO,iCAAPA,EAAO,yBAChF,uBAAM,IAAKK,GAAX,OAAuBL,KAElBE,KAAO,gBAHoE,E,UANnDJ,GCatBS,E,kDAPX,aAA4D,IAAD,EAA/CF,EAA+C,uDAArC,0BAAqC,+CAAPL,EAAO,iCAAPA,EAAO,yBACvD,uBAAM,IAAKK,GAAX,OAAuBL,KAElBE,KAAO,WAH2C,E,UAN/BJ,GCiBjBU,E,kDARX,WAAYC,GAAmB,IAAD,iDAAPT,EAAO,iCAAPA,EAAO,yBAC1B,uBAAM,KAAN,OAAcA,KARlBS,OAAS,GAUL,EAAKP,KAAO,aACZ,EAAKO,OAASA,EAJY,E,UATAX,GCanBY,E,kDAPX,aAA4F,IAAD,EAA/EL,EAA+E,uDAArE,gEAAqE,+CAAPL,EAAO,iCAAPA,EAAO,yBACvF,uBAAM,IAAKK,GAAX,OAAuBL,KAElBE,KAAO,sBAH2E,E,UANpDJ,I,oBCF3CH,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,gD,gCCA3C,0sBAKQ,IAAMe,EAAW,aACXC,EAAa,aACbC,EAAkB,aAGlBC,EAAmB,eACnBC,EAAmC,iCACnCC,EAAoB,4BACpBC,EAAyB,0BACzBC,EAAoB,qCAGpBC,EAAY,8BAGZC,EAAiB,aACjBC,EAAiB,aAEjBC,EAAsC,sCACtCC,EAAoC,oCACpCC,EAA8B,gDAC9BC,EAAmC,oCAGnCC,EAAc,iBACdC,EAAgB,iBAGhBC,EAAmC,oCACnCC,EAAiC,kCACjCC,EAA2B,8CAC3BC,EAAgC,mC,gTClCjCC,EAAwB,SAACC,GACjCA,EACDC,IAAMC,SAASC,QAAQC,OAAvB,+BAA2DJ,UAEpDC,IAAMC,SAASC,QAAQC,OAAvB,e,iCCGLC,EAAU,SAACC,GAAD,MAAc,CAC5BC,KAAM7B,IACN4B,YAGIE,EAAsB,iBAAO,CACjCD,KAAM5B,MAGF8B,EAAY,SAACH,GAAD,MAAc,CAC9BC,KAAM3B,IACN0B,YAIWI,EAAa,SAAC,EAAwBC,GAAgB,IAAtCC,EAAqC,EAArCA,SAAUC,EAA2B,EAA3BA,SAC/BC,EAAM,IAAIC,IAEhB,OAAOC,GAAc,kBAAMF,EAAIG,WAAWL,EAAUC,KAAWF,IAGpDO,EAAwB,SAAC,EAAsBP,GAAiB,IAAtCC,EAAqC,EAArCA,SAAUC,EAA2B,EAA3BA,SACzCC,EAAM,IAAIC,IAEhB,OAAOC,GAAc,kBAAMF,EAAIK,eAAeP,EAAUC,KAAWF,IAG/DK,EAAe,SAACI,EAAeT,GAAhB,8CAA+B,WAAOU,GAAP,SAAAC,EAAA,sEAC5CF,IACHG,MAAK,SAACC,GACLC,OAAOC,eAAeC,KAAOC,KAAKC,UAAUL,EAAKG,MACjDF,OAAOC,eAAe1B,MAAQwB,EAAKM,aAEnC/B,EAAsByB,EAAKM,cAC3BT,EAAShB,EAAQmB,EAAKG,UAGvBJ,MAAK,kBAAMQ,YAASpB,MACpBqB,OAAM,SAACC,GAAD,OAAOZ,EAASa,EAAiBD,OAXQ,2CAA/B,uDAmBfC,EAAmB,SAACD,GAAD,8CAAO,WAAOZ,GAAP,eAAAC,EAAA,sDAC1B9C,EAAS,GAGXA,EADEyD,aAAa1D,IACN0D,EAAEzD,OACFyD,aAAapE,IACb,CAAEsE,MAAOF,EAAE7D,SAEX,CAAE+D,MAAO,wEAGpBd,EAASZ,EAAUjC,IAXW,2CAAP,uDAcZ4D,EAAuB,WAClC,OAAO,SAACf,GACN,IAAMM,EAAOD,eAAeW,QAAQ,QAMpC,OAJGV,GACDN,EAAShB,EAAQuB,KAAKU,MAAMX,KAGvBA,IAIEY,EAAgB,SAACC,EAAc7B,GAC1C,8CAAO,WAAOU,EAAUoB,GAAjB,eAAAnB,EAAA,+EAEGrB,IAAMyC,KAAN,UAAcC,IAAd,iBAA8BH,EAA9B,YAFH,OAGHd,eAAekB,QACf7C,GAAsB,GACtBsB,EAASb,KACTuB,YAASpB,GANN,gDAQ6B,OAA5B,2CAAOkC,gBAAP,eAAiB/E,QACnBuD,EAASyB,KAETzB,EAASZ,EAAU,KAAMoC,SAASrB,KAAKpD,UAXtC,yDAAP,yDAiBW0E,EAAyB,WACpC,OAAO,SAAAzB,GACLA,EAAS0B,KAETC,IAAKC,KAAK,CACRC,MAAO,yBACPC,KAAM,QACNC,mBAAoB,UACpBC,kBAAmB,cAKZN,EAAiB,WAC5B,OAAO,SAAA1B,GACLA,EAASb,KACTkB,eAAekB,UAINU,EAAmB,WAC9B,OAAO,SAAAjC,GACFK,eAAe1B,QAChBD,EAAuB2B,eAAeW,QAAQ,UAC9ChB,EAAShB,EAASuB,KAAKU,MAAMZ,eAAeW,QAAQ,e,oBC3H1D3E,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,yD,oBCA3CD,EAAOC,QAAU,IAA0B,gE,oBCA3CD,EAAOC,QAAU,IAA0B,mE,+IC2E5B4F,IAnEM,SAAC,GAEf,IAGCC,EAAU,CACd,CACEC,UAAW,SACXC,KAAM,UAER,CACED,UAAW,iBACXC,KAAM,kBACNC,UAAW,SAACC,GAAD,OAAYA,EAAOC,EAAOC,OAAOF,GAAMG,OAAO,eAAeC,cAAgB,QAE1F,CACEP,UAAW,cACXC,KAAM,2BACNC,UAAW,SAACC,GAAD,OAAYA,EAAOC,EAAOC,OAAOF,GAAMG,OAAO,eAAeC,cAAgB,QAE1F,CACEP,UAAW,SACXC,KAAM,UACNC,UAAW,SAAAC,GAAI,OAAI,kBAAC,IAAD,CAAOK,QAASL,EAAO,UAAY,aAAeA,EAAO,WAAa,cAE3F,CACEH,UAAW,6BACXC,KAAM,gBACNC,UAAW,SAAAC,GAAI,OAAI,kBAAC,IAAD,CAAOK,QAASL,EAAO,UAAY,aAAeA,EAAO,WAAa,cAE3F,CACEH,UAAW,SACXC,KAAM,aAMJQ,EApCF,EADJC,QAqCwBC,KAAK,YAItB,IAHLC,EAGI,EAHJA,KACAC,EAEI,EAFJA,MACGC,EACC,gCACJ,OAAO,yBACLC,OAAQF,GACLC,GAFL,IAGEE,OACE,oCACE,kBAAC,IAAD,CAAcJ,KAAMA,IACpB,kBAAC,IAAD,CAAcA,KAAMA,EAAMG,OAAQF,UAQ1C,OACE,kBAAC,IAAD,CACEI,YAAU,EAACC,SAAS,KACpBnD,KAAO0C,EACPV,QAAUA,O,2HCnCDoB,IA9BM,SAAC,GAAc,IAAZP,EAAW,EAAXA,KAAW,EAECQ,oBAAS,GAFV,mBAE1BC,EAF0B,KAEfC,EAFe,KAejC,OAPAC,qBAAU,WACRF,GACE/C,YAAS,mBAAD,OAAoBsC,IAC3B9C,MAAK,kBAAMwD,GAAa,QAE1B,CAACD,IAGF,kBAAC,IAAD,CACEG,QACE,kBAAC,IAAD,KACC,+DAIH,kBAAC,IAAD,CAAQC,UAAU,OAAOjB,QAAQ,YAAYkB,QAnB1B,WACrBJ,GAAa,KAmBPD,EAAY,kBAAC,IAAD,CAASM,KAAK,KAAKC,UAAU,SAASpB,QAAQ,UAAa,uBAAGiB,UAAU,oB,iCC5B9F,wHA+EeI,gBAAQ,KAAM,CAAExC,2BAAwByC,oBAAxCD,EArEM,SAAC,GAA8D,IAA5DjB,EAA2D,EAA3DA,KAAMG,EAAqD,EAArDA,OAAQe,EAA6C,EAA7CA,eAAgBzC,EAA6B,EAA7BA,uBAE9C0C,EAAQC,IAAiBzC,KAmD/B,OACE,kBAAC,IAAD,CACEiC,QACE,kBAAC,IAAD,KACC,8CAIH,kBAAC,IAAD,CAAQE,QAAS,WAtDnBK,EAAMvC,KAAK,CACTC,MAAM,+BAAD,OAA8BsB,EAA9B,KACLrB,KAAM,UACNE,kBAAmB,KACnBqC,kBAAkB,EAClBC,iBAAkB,WAClBC,qBAAqB,EACrBC,WAAY,SAAChD,GAEPA,IACU,IAAIiD,KAEZC,OAAO1B,GACR9C,MAEC,WACEgE,EAAelB,GACfmB,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAM,yCACNP,KAAM,eAIV,SAAAhB,GACE,IAAI/D,EAAU,gEAEd,GAAI+D,aAAiBhE,IACnB,OAAO2E,IACEX,aAAiBtE,MAC1BO,EAAU+D,EAAM/D,SAGlBoH,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAMtF,EACN+E,KAAM,iBAkBoBc,QAAQ,SAASiB,UAAU,QAC7D,0BAAMA,UAAU,4B,sGC3DpBc,EAAe,SAAC1F,GAAD,MAAc,CAAEC,KAAOpB,IAAgBmB,YAEtD2F,EAAc,iBAAO,CAAE1F,KAAOnB,M,QC2B9B8G,EAAqB,CACzBC,UDnCuB,WACvB,OAAO,SAAA9E,GAAQ,OAAIA,EAAS4E,QCqCfX,eARS,SAACc,GAAD,MAAY,CAClCC,MAAQD,EAAME,aAOwBJ,EAAzBZ,EAxCK,SAAC,GAAyB,IAAvBe,EAAsB,EAAtBA,MAAOF,EAAe,EAAfA,UACpBI,EAAoCF,EAApCE,eAAgBrD,EAAoBmD,EAApBnD,MAAOsD,EAAaH,EAAbG,KAAMC,EAAOJ,EAAPI,IAErC,OACE,kBAACC,EAAA,EAAD,CACIC,KAAMJ,EACNK,OAAQT,EACRf,KAAK,KACLyB,kBAAgB,gCAChBC,UAAQ,GAER,kBAACJ,EAAA,EAAMK,OAAP,CAAcC,aAAW,GACvB,kBAACN,EAAA,EAAMO,MAAP,CAAaC,GAAG,iCACbhE,EACAuD,GAAO,0BAAMU,MAAM,yBAAZ,QAA0CV,KAGtD,kBAACC,EAAA,EAAMU,KAAP,KACE,4BACIlE,MAAM,YACNmE,MAAM,OACNC,OAAO,MACPC,IAAG,UAAK5E,KAAL,OAAe6D,EAAf,kBAA6B9E,eAAeW,QAAQ,aAG7D,kBAACqE,EAAA,EAAMc,OAAP,KACE,kBAACC,EAAA,EAAD,CAAQtC,QAASgB,GAAjB,e,mFC7BGuB,G,cAAmB,CAHI,8CACH,sECiFlBpC,eANS,SAACc,GACvB,MAAO,CACLuB,KAAMvB,EAAMuB,QAIwB,KAAzBrC,EAzEI,SAAC,GAAc,IACxB3D,EADuB,EAAXgG,KACZhG,KACFiG,EAAa,CAAEC,SAAU,SAAUC,WAAY,QAFtB,EAGiBjD,oBAAS,GAH1B,mBAGxBkD,EAHwB,KAGNC,EAHM,KAO/B,OAFAhD,qBAAU,kBAAMgD,EAAoBN,EAAiBO,SAAStG,EAAKuG,SAAQ,CAACvG,EAAKuG,OAG/E,kBAAC,IAAD,CACMC,SAAU,SAACC,GACPrG,YAAS,IAAD,OAAKqG,KAEjBlD,UAAU,YAEd,kBAAC,IAAQmD,OAAT,MACI1G,EAAKuG,KACL,kBAAC,IAAQI,IAAT,KACE,kBAAC,UAAD,CAASC,SAAS,gBAChB,kBAAC,UAAD,KACI,uBAAGrD,UAAU,mBAAmBsD,MAAOZ,KAE3C,kBAAC,UAAD,gBAIDG,GACC,kBAAC,UAAD,CAASQ,SAAS,eAChB,kBAAC,UAAD,KACE,0BAAMrD,UAAU,iBAAiBsD,MAAK,2BAAMZ,GAAN,IAAkBa,aAAc,WACpE,uBAAGvD,UAAU,qCACb,uBAAGA,UAAU,yBAAyBsD,MAAO,CAAEX,SAAU,QAASa,UAAW,QAASC,WAAY,cAGtG,kBAAC,UAAD,0BAKHZ,GACC,kBAAC,UAAD,CAASQ,SAAS,kBAChB,kBAAC,UAAD,KACI,uBAAGrD,UAAU,uBAAuBsD,MAAOZ,KAE/C,kBAAC,UAAD,8BAON,kBAAC,IAAQU,IAAT,KACA,kBAAC,UAAD,CAASC,SAAS,qBAChB,kBAAC,UAAD,KACI,uBAAGrD,UAAU,mBAAmBsD,MAAOZ,KAE3C,kBAAC,UAAD,qB,wECvBNgB,EAAuB,CAC3BrG,mBAGa+C,eARY,SAACc,GAAD,MAAY,CACrCuB,KAAMvB,EAAMuB,QAO8BiB,EAA7BtD,EAlCA,SAAC,GAA6B,IAA3BqC,EAA0B,EAA1BA,KAAMpF,EAAoB,EAApBA,cACdZ,EAASgG,EAAThG,KAMR,OACE,oCACI,kBAACkH,EAAA,EAAD,CAAQC,GAAG,OAAO7E,QAAQ,OAAOiB,UAAU,sCACzC,kCACA,yBAAK6D,IAAI,MAAMxB,IAAKyB,IAASR,MAAO,CAAEnB,MAAO,OAAQC,OAAQ,UAC7D,kBAACuB,EAAA,EAAOI,MAAR,CAAcC,KAAK,SAAnB,IAA4B,mCAA5B,KACA,yBAAKH,IAAI,QAAQxB,IAAK4B,IAAWX,MAAO,CAAEnB,MAAO,OAAQC,OAAQ,UACjE,kBAACgB,EAAA,EAAD,KACI,kBAACc,EAAA,EAAD,CAAalG,MAAOvB,EAAK0H,UAAWnC,GAAG,0BAA0BoC,YAAU,GACvE,kBAACF,EAAA,EAAYG,KAAb,CAAkBL,KAAK,eAAvB,aACA,kBAACE,EAAA,EAAYI,QAAb,MACA,kBAACJ,EAAA,EAAYG,KAAb,CAAmBpE,QAhBb,WACpB,aAAcxD,EACZY,EAAc,UAAW,qBACzBA,EAAc,QAAS,kBAaX,wBCUHkH,MA1Bf,SAAcC,GACGA,EAAM,KAAKC,MAAM,KAAK,GAArC,IACQC,EAAaC,cAAbD,SAMR,OAJA5E,qBAAU,WACK,MAAb4E,GAAoB7H,YAAS,aAC5B,CAAC6H,IAGF,oCAKE,yBAAK1E,UAAU,OACb,kBAAC,EAAD,MACA,yBAAKA,UAAU,iBACb,kBAAC,EAAD,MACCwE,EAAMI,UAET,kBAAC,EAAD,S,qDCFOC,EA3BG,SAAC,GAAoD,IAAnDC,EAAkD,EAAlDA,cAAeC,EAAmC,EAAnCA,aAAcC,EAAqB,EAArBA,QAAS1L,EAAY,EAAZA,OAAY,EACjC2L,cAA3BC,EAD4D,EAC5DA,SAAUC,EADkD,EAClDA,aAMlB,OACE,kBAACC,EAAA,EAAD,CAAMC,SAAWF,GALF,SAAC7I,EAAMgJ,GACtBA,EAAMC,iBACNR,EAAazI,EAAM0I,OAIjB,kBAACI,EAAA,EAAKI,MAAN,KACA,kBAACJ,EAAA,EAAKK,MAAN,KAAaX,GACX,kBAACM,EAAA,EAAKM,QAAN,eAAcrK,KAAK,OAAOsK,WAAS,GAAKT,EAAS,WAAY,CAAEU,UAAU,OAEzEtM,EAAOoC,UAAY,kBAACmK,EAAA,EAAD,CAAO9G,QAAQ,UAAWzF,EAAOoC,SAAS,IAC/D,kBAAC0J,EAAA,EAAKI,MAAN,KACE,kBAACJ,EAAA,EAAKK,MAAN,sBACA,kBAACL,EAAA,EAAKM,QAAN,eAAcrK,KAAK,YAAe6J,EAAS,WAAY,CAAEU,UAAU,OAEnEtM,EAAOqC,UAAY,kBAACkK,EAAA,EAAD,CAAO9G,QAAQ,UAAWzF,EAAOqC,SAAS,IAC7DrC,EAAO2D,OAAS,kBAAC4I,EAAA,EAAD,CAAO9G,QAAQ,UAAWzF,EAAO2D,OACnD,kBAACsF,EAAA,EAAD,CAAQlH,KAAK,SAAS0D,QAAQ,WAA9B,qBACA,+B,kBCyCSqB,eAAS,SAAAc,GAAK,MAAK,CAAEuB,KAAMvB,EAAMuB,QAAS,CAAEzG,0BAAuBkB,0BAAnEkD,EAzDQ,SAAC,GAA2D,IAAzDqC,EAAwD,EAAxDA,KAAMzG,EAAkD,EAAlDA,sBAAuBkB,EAA2B,EAA3BA,qBAC7C4I,EAAyBrD,EAAzBqD,OAAQxM,EAAiBmJ,EAAjBnJ,OAAQmD,EAASgG,EAAThG,KAQxB,OANAqD,qBAAU,WACR5C,IAEI4I,GAAU,aAAcrJ,GAAMI,YAAS,wBAC1C,CAACiJ,IAGJ,oCACE,kBAACC,EAAA,EAAD,CAAWC,OAAK,GACd,kBAACC,EAAA,EAAD,CAAKjG,UAAU,WACb,kBAACkG,EAAA,EAAD,CACElG,UAAU,qBACVmG,GAAI,CAACC,KAAK,IACVC,GAAI,CAACD,KAAK,IACVE,GAAI,CAACF,KAAM,IAEX,kBAACH,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CACElG,UAAU,SACVmG,GAAI,CAACC,KAAM,IACXC,GAAI,CAACD,KAAM,KAEX,uEAEF,kBAACF,EAAA,EAAD,CACElG,UAAU,SACVmG,GAAI,CAACC,KAAM,IACXC,GAAI,CAACD,KAAM,IAEX,yBAAKpG,UAAU,cAAc6D,IAAI,MAAMxB,IAAKkE,OAE9C,kBAACL,EAAA,EAAD,CACElG,UAAU,OACVmG,GAAI,CAACC,KAAM,IACXC,GAAI,CAACD,KAAM,IAEX,uDACA,6BAEA,kBAAC,EAAD,CACEtB,cAAc,OACdC,aAAe/I,EACfgJ,QAAQ,qBACR1L,OAAQA,a,kBCST8G,eAAQ,SAAAc,GAAK,MAAK,CAAEuB,KAAMvB,EAAMuB,QAAS,CAACjH,eAAY0B,0BAAtDkD,EAvDI,SAAC,GAAgD,IAA9CqC,EAA6C,EAA7CA,KAAMjH,EAAuC,EAAvCA,WAAY0B,EAA2B,EAA3BA,qBAC9B4I,EAAyBrD,EAAzBqD,OAAQrJ,EAAiBgG,EAAjBhG,KAAMnD,EAAWmJ,EAAXnJ,OAQtB,OANAwG,qBAAU,WACR5C,IAEI4I,GAAU,SAAUrJ,GAAMI,YAAS,mBACtC,CAACiJ,IAGF,kBAACC,EAAA,EAAD,CAAWC,OAAK,GACd,kBAACC,EAAA,EAAD,CAAKjG,UAAU,WACb,kBAACkG,EAAA,EAAD,CACElG,UAAU,qBACVmG,GAAI,CAACC,KAAK,IACVC,GAAI,CAACD,KAAK,IACVE,GAAI,CAACF,KAAM,IAEX,kBAACH,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CACElG,UAAU,SACVmG,GAAI,CAACC,KAAM,IACXC,GAAI,CAACD,KAAM,KAEX,uEAEF,kBAACF,EAAA,EAAD,CACElG,UAAU,SACVmG,GAAI,CAACC,KAAM,IACXC,GAAI,CAACD,KAAM,IAEX,yBAAKpG,UAAU,cAAc6D,IAAI,MAAMxB,IAAKkE,OAE9C,kBAACL,EAAA,EAAD,CACElG,UAAU,OACVmG,GAAI,CAACC,KAAM,IACXC,GAAI,CAACD,KAAM,IAEX,iDACA,6BAEA,kBAAC,EAAD,CACEtB,cAAc,UACdC,aAAevJ,EACfwJ,QAAQ,gBACR1L,OAAQA,Y,QCnDXkN,EAAe,SAAC,GAAuE,IAAzDC,EAAwD,EAApEC,UAAuBjK,EAA6C,EAA7CA,KAAMqJ,EAAuC,EAAvCA,OAAQa,EAA+B,EAA/BA,SAAUC,EAAqB,EAArBA,MAAUvH,EAAW,gEACjG,OACE,oCACEyG,GAAUc,KAASnK,EACpB,kBAACgK,EAAcpH,GAEf,kBAAC,IAAD,CAAUwH,KAAK,IAAIC,GAAIH,EAAUI,SAAO,M,sFCkB9BC,G,ySAtBDC,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,mCAA5B,mF,8DAEOC,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,yKAGDgL,G,yFACAL,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,yCAA4DG,KAAxF,mF,8DAEOF,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,4KAGCgL,G,mGAAchL,E,+BAAO,GACvB2K,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMyC,KAAK,EAAK2J,qBAAL,yCAA4DG,IAAiBhL,GAA1G,mF,8DAEV8K,KAAKC,QAAQJ,G,4GApBaM,MCElCC,GAAU,I,MAAI3L,GACd4L,GAAyB,IAAIT,GAGtBU,GAA2B,WACtC,8CAAO,WAAOvL,GAAP,uBAAAC,EAAA,6DAEHD,EAASwL,MAFN,kBAMqBC,QAAQC,IAAI,CAC9BL,GAAQM,cACRL,GAAuBM,SAR1B,OAMKd,EANL,qBAWoCA,EAXpC,GAWMa,EAXN,KAWmBE,EAXnB,KAkBD7L,EAAS8L,GALO,CACdC,KAAMJ,EACNK,UAAWH,KAfZ,kDAqB+B,OAA5B,2CAAOrK,gBAAP,eAAiB/E,QACnBuD,EAASyB,eAETwK,QAAQC,IAAI,KAAM1K,UAxBnB,0DAAP,uDAgDIsK,GAAkC,SAAC7M,GAAD,MAAc,CAClDC,KAAM1B,IACNyB,YAQEuM,GAAa,iBAAO,CAAEtM,KAAMxB,M,oBCyD5B6J,GAAuB,CAC3BgE,6BAGatH,gBATS,SAAAc,GAAK,MAAK,CAChCoH,kBAAoBpH,EAAMoH,kBAC1B7F,KAAMvB,EAAMuB,QAO0BiB,GAAzBtD,EA3HO,SAAC,GAA6B,IAApB3D,EAAmB,EAA1BgG,KAAOhG,KAAQyL,EAAW,EAAXA,KAEtC,OAAQ,kBAACK,GAAA,EAAD,CAAM3E,GAAG,YAAYpF,KAAK,QAAQgK,OAAO,YAAYxI,UAAU,QACrE,kBAACuI,GAAA,EAAK1G,OAAN,CAAa7B,UAAU,wDACrB,6DAIEvD,EAAKuG,MACD,+CAEE,kBAACyF,GAAA,EAAD,CAAO1J,QAAQ,OAAOiB,UAAU,QAE5BkI,EAAKQ,aAAeR,EAAKQ,YAAYC,oBAO/CT,EAAKQ,cAAkD,IAAlCR,EAAKQ,YAAYE,aAAqB,kBAACH,GAAA,EAAD,CAAO1J,QAAS,QAAQ,wBAAIiB,UAAU,OAAO,iBAA+B,MAGvIkI,EAAKQ,cAA8C,IAA9BR,EAAKQ,YAAYG,SAAiB,kBAACJ,GAAA,EAAD,CAAO1J,QAAS,QAAQ,wBAAIiB,UAAU,OAAO,aAA2B,MAG/HkI,EAAKQ,aAAe,kBAACD,GAAA,EAAD,CAAO1J,QAA4C,IAAnCmJ,EAAKQ,YAAYI,cAAsB,OAA4C,IAAnCZ,EAAKQ,YAAYI,cAAsB,UAAY,WAAW,wBAAI9I,UAAU,OAA0C,IAAnCkI,EAAKQ,YAAYI,cAAsB,qBAA0D,IAAnCZ,EAAKQ,YAAYI,cAAsB,sBAAwB,sBAGpSZ,EAAKQ,aAAe,kBAACD,GAAA,EAAD,CAAO1J,QAASmJ,EAAKQ,YAAYK,SAAW,UAAY,UAAU,wBAAI/I,UAAU,OAAOkI,EAAKQ,YAAYK,SAAW,WAAa,iBAGxJ,kBAACR,GAAA,EAAKrG,KAAN,CAAWlC,UAAU,aACnB,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,IAAMC,GAAI,CAAED,KAAM,IACjC,kBAACH,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,wCAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAC9B8B,EAAK5I,SAGX,kBAAC2G,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,2CAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAAlC,UACM8B,EAAKc,gBADX,YAC8Bd,EAAKe,oBAIpCxM,EAAKuG,MACJ,kBAACiD,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,qCAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAC9B8B,EAAKQ,aAAeR,EAAKQ,YAAYQ,OAK/C,kBAAChD,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,IAAMC,GAAI,CAAED,KAAM,IACjC,kBAACH,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,sCAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAC/B8B,EAAKiB,OAGZ,kBAAClD,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,wCAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAC/B8B,EAAKkB,SAGP5G,EAAiBO,SAAStG,EAAKuG,OAASkF,EAAKQ,aAAeR,EAAKQ,YAAYK,SAC9E,kBAAC9C,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,8CAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,kBAACqC,GAAA,EAAD,CAAO1J,QAAQ,QAAO,wBAAIiB,UAAU,OAAOkI,EAAKQ,YAAYW,aAAalF,cAEpE,MAGb,kBAAC+B,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,IAAMC,GAAI,CAAED,KAAM,IACjC,kBAACH,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,6CAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAC/B8B,EAAKoB,mBAGV,kBAACrD,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAChC,yCAEF,kBAACF,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,GAAKC,GAAI,CAAED,KAAM,IAC9B8B,EAAKQ,aAAeR,EAAKQ,YAAYa,QAAQjK,gBC3GhDkK,GAAgB,SAAC,GAAa,IAAXnH,EAAU,EAAVA,IAS9B,OARAvC,qBAAU,WACR2J,uBAAsB,WACpBC,IAAOC,IAAI,CACTC,OAAQ,wBAGX,IAGD,kBAACrB,GAAA,EAAKsB,IAAN,CACE7J,UAAU,gBACVjB,QAAQ,MACRsD,IAAKA,GAAY,+C,qECPjBzG,GAAM,IAAIoL,GAgFD5G,eAAQ,KAAK,CAAEsH,4BAAyB9J,4BAAxCwC,EA9EI,SAAC,GAAiF,IAA/E0J,EAA8E,EAA9EA,QAAS3K,EAAqE,EAArEA,KAAM4K,EAA+D,EAA/DA,OAAQrC,EAAuD,EAAvDA,yBAA0B9J,EAA6B,EAA7BA,uBAC/DoM,EAASzJ,KAAiBzC,MAE1BmM,EAAU,uCAAG,4BAAA7N,EAAA,6DAEX8N,EAAiB,kBAACrE,EAAA,EAAD,CAAO9G,QAAQ,QAAf,qDAFN,SAIXiL,EAAOjM,KAAK,CAChBC,MAAO,0BACPmM,MAAO,OACPhM,kBAAkB,UAClBiM,gBAAiB,CACf,OAAU,kBACV,aAAc,qBAEhBC,KAAMH,EACNxJ,qBAAqB,EACrB4J,eAAgB,SAACC,GACf,OAAO,IAAI3C,SAAQ,SAAC4C,GACjBD,EAEGA,EAAKrK,KAAO,IACVsK,EAAQ,+CACRA,IAHJA,EAAQ,6BAMd7J,WAAW,WAAD,4BAAE,WAAO4J,GAAP,eAAAnO,EAAA,uDACJqO,EAAW,IAAIC,UACZC,OAAO,YAAaJ,EAAMA,EAAKxR,WAErB6R,IAAnBb,EAAOc,SAAyBJ,EAASE,OAAO,0BAA0BZ,EAAOc,QAAQC,OACzFlP,GAAImP,MAAM5L,EAAMsL,GACbpO,MAAM,SAAAsB,GACLqM,EAAOjM,KAAK,CACVE,KAAM,UACND,MAAO,mCAET8L,EAAQ,CACNkB,SAAU,OAEZtD,OACC5K,OAAO,SAAAG,GACR,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGT,IAAI1E,EAAU,gEAEV+D,aAAiB5D,MAAuB4D,EAAM3D,OAAO2R,wBACvD/R,EAAU+D,EAAM3D,OAAO2R,wBAAwB,GACtChO,aAAiBtE,OAC1BO,EAAU+D,EAAM/D,SAGlB8Q,EAAOjM,KAAK,CACVE,KAAM,QACND,MAAO9E,OA9BH,2CAAF,mDAAC,KAvBI,2CAAH,qDA4DhB,OACE,kBAACgS,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,qDAIH,kBAAC5I,EAAA,EAAD,CAAQxD,QAAQ,OAAOkB,QAASgK,GAC9B,uBAAGjK,UAAU,uBC9DNI,eAAQ,KAAK,CAACgL,UflBJ,SAACpN,EAAOsD,EAAMC,GACrC,OAAO,SAAApF,GAAQ,OAAKA,EAAS2E,EAAa,CAAC9C,QAAOsD,OAAMC,YeiB3CnB,EAjBI,SAAC,GAA2C,IAAzCkB,EAAwC,EAAxCA,KAAYtD,EAA4B,EAAlCmB,KAAaiM,EAAqB,EAArBA,UAAW7J,EAAU,EAAVA,IAClD,OACE,kBAAC2J,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,mDAIH,kBAAC5I,EAAA,EAAD,CAAQtC,QAAU,kBAAMmL,EAAUpN,EAAOsD,EAAMC,KAC7C,uBAAGvB,UAAU,oBCGNqL,GAfU,SAAC,GAAsD,IAAD,IAApDhQ,YAAoD,MAA7C,SAA6C,EAAnC2C,EAAmC,EAAnCA,MAAO9E,EAA4B,EAA5BA,QAA4B,IAAnBoS,eAAmB,WACrD3L,oBAAS,GAD4C,mBACtE8B,EADsE,KAChE8J,EADgE,KAG7E,OAAI9J,EAEA,kBAACoE,EAAA,EAAD,CAAO9G,QAAS1D,EAAMmQ,QAAS,kBAAMD,GAAQ,IAAQE,YAAaH,EAAStL,UAAU,QAClF,kBAAC6F,EAAA,EAAM6F,QAAP,KAAiB1N,GAClB,2BACI9E,IAID,MCuBIyS,GAjCgB,SAAC,GAA4C,IAA1CpB,EAAyC,EAAzCA,KAAMT,EAAmC,EAAnCA,QAAS3K,EAA0B,EAA1BA,KAA0B,IAApB4K,cAAoB,MAAX,KAAW,EAEzE,OACE,6BAEKQ,IAAiC,IAAzBA,EAAKqB,gBACQ,OAAlBrB,EAAKS,WAOa,IAAlBT,EAAKS,WAQa,IAAlBT,EAAKS,UAAqBT,EAAKsB,UAb5B,oCACC,kBAAC,GAAD,CAAY/B,QAASA,EAAS3K,KAAMA,EAAM4K,OAAQA,IAAU,IAC5D,kBAAC,GAAD,CAAY5K,KAAMA,EAAMmC,KAAI,0CAAqCnC,EAArC,UAAoD,KAiBpF,kBAAC,GAAD,CAAYA,KAAMA,EAAMmC,KAAI,0CAAqCnC,EAArC,UAtBS,kBAAC,GAAD,CAAY2K,QAASA,EAAS3K,KAAMA,EAAM4K,OAAQA,MCwDpF3J,eAAQ,KAAM,CAACxC,4BAAfwC,EA1DO,SAAC,GAAiE,IAA/D0L,EAA8D,EAA9DA,YAAahC,EAAiD,EAAjDA,QAASlM,EAAwC,EAAxCA,uBAAwBmO,EAAgB,EAAhBA,UAE/D/B,EAASzJ,KAAiBzC,MAE1BkO,EAAc,uCAAG,sBAAA5P,EAAA,6DAErB4N,EAAOjM,KAAK,CACVkO,OAAO,EACPjO,MAAM,uBACNkO,SAAU,UACVC,mBAAmB,EACnBC,aAAc,kBAAMpC,EAAOqC,iBAPR,SAUfP,IACLzP,MAAM,SAAAsB,GACLmM,EAAQ,2BAAIiC,GAAL,IAAgBf,UAAU,KACjChB,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,UACND,MAAM,mDACNmO,mBAAmB,EACnBD,SAAU,UACVI,MAAO,IACPC,kBAAkB,OAGrBzP,OAAO,SAAAG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGToM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,QACND,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzDgT,SAAU,UACVI,MAAO,IACPC,kBAAkB,OAlCD,2CAAH,qDAuCpB,OACE,kBAACrB,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,yDAIH,kBAAC5I,EAAA,EAAD,CAAQxD,QAAQ,UAAUkB,QAAS+L,GACjC,uBAAGhM,UAAU,sBCcNI,eAAQ,KAAM,CAAExC,4BAAhBwC,EAlEM,SAAC,GAAiE,IAA/D0L,EAA8D,EAA9DA,YAAahC,EAAiD,EAAjDA,QAASlM,EAAwC,EAAxCA,uBAAwBmO,EAAgB,EAAhBA,UAE9DS,EAAc,uCAAG,4BAAApQ,EAAA,uDAEf4N,EAASzJ,KAAiBzC,OAGzBC,KAAK,CACVC,MAAO,oBACPmM,MAAO,WACP3J,kBAAkB,EAClBrC,kBAAmB,SACnBsC,iBAAkB,WAClBC,qBAAqB,EACrBC,WAAY,SAAC8L,GACPA,EAIJX,EAAYW,GACTpQ,MAAM,SAAAsB,GACLmM,EAAQ,2BAAIiC,GAAL,IAAgBf,UAAU,EAAO0B,cAAeD,KACvDzC,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,UACND,MAAM,kDACNmO,mBAAmB,EACnBD,SAAU,UACVI,MAAO,IACPC,kBAAkB,OAGrBzP,OAAO,SAAAG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGToM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,QACND,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzDgT,SAAU,UACVI,MAAO,IACPC,kBAAkB,OA3BtBvC,EAAO2C,sBAAP,wCA+BJC,kBAAmB,kBAAO5C,EAAOpK,eA7Cd,2CAAH,qDAiDpB,OACE,kBAACsL,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,wDAIH,kBAAC5I,EAAA,EAAD,CAAQxD,QAAQ,SAASkB,QAASuM,GAChC,uBAAGxM,UAAU,sBCvBN6M,G,8MAzCAC,G,yFACD7F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,sBAAyC2F,EAAzC,iBAA5B,mF,8DAEO1F,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,0KAGDwQ,EAAexF,G,yFACfL,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,sBAAyC2F,EAAzC,uBAAqExF,KAAjG,mF,8DAEOF,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,+KAGEwQ,EAAexF,G,qFAClBL,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMgS,IAAI,EAAK5F,qBAAL,sBAAyC2F,EAAzC,uBAAqExF,EAArE,cAA5B,mF,8DAEVF,KAAKC,QAAQJ,G,+KAGV6F,EAAexF,EAAc0F,G,qFAChC/F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMgS,IAAI,EAAK5F,qBAAL,sBAAyC2F,EAAzC,uBAAqExF,EAArE,cAA+F,CAAEoF,cAAeM,IAA5I,mF,8DAEV5F,KAAKC,QAAQJ,G,wLAGH6F,EAAexF,EAAc0F,G,qFACvC/F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMgS,IAAI,EAAK5F,qBAAL,sBAAyC2F,EAAzC,uBAAqExF,EAArE,2BAA4G,CAAE2F,MAAOD,IAAjJ,mF,8DAEV5F,KAAKC,QAAQJ,G,0LAGD6F,EAAexF,G,qFAC3BL,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMgS,IAAI,EAAK5F,qBAAL,sBAAyC2F,EAAzC,uBAAqExF,EAArE,+BAA5B,mF,8DAEVF,KAAKC,QAAQJ,G,8GAtCUM,MCI/B3L,GAAM,IAAIiR,GAwBDK,GAtBc,SAAC,GAAiD,IAA/C3C,EAA8C,EAA9CA,KAAMpL,EAAwC,EAAxCA,KAAM2N,EAAkC,EAAlCA,cAAehD,EAAmB,EAAnBA,QAASvI,EAAU,EAAVA,IAClE,OACE,6BAEKgJ,GAAQ,eAAgBA,KAAS,IAAkC,IAAzBA,EAAKqB,gBAQ3C,oCACC,kBAAC,GAAD,CAAYrK,IAAKA,EAAKpC,KAAMA,EAAMmC,KAAI,uBAAkBwL,EAAlB,uBAA8C3N,EAA9C,UAA6D,IACnG,kBAAC,GAAD,CAAe2M,YAAa,kBAAMlQ,GAAIuR,OAAOL,EAAe3N,IAAO2K,QAASA,EAASiC,UAAWxB,IAAQ,IACxG,kBAAC,GAAD,CAAcuB,YAAa,SAACkB,GAAD,OAAYpR,GAAIwR,OAAON,EAAe3N,EAAM6N,IAASlD,QAASA,EAASiC,UAAWxB,KAVjH,oCACA,kBAAC,GAAD,CAAeuB,YAAa,kBAAMlQ,GAAIuR,OAAOL,EAAe3N,IAAO2K,QAASA,EAASiC,UAAWxB,IAAQ,IACxG,kBAAC,GAAD,CAAcuB,YAAa,SAACkB,GAAD,OAAYpR,GAAIwR,OAAON,EAAe3N,EAAM6N,IAASlD,QAASA,EAASiC,UAAWxB,IAC7G,6BACE,kBAAC9B,GAAA,EAAD,CAAO1J,QAAQ,WAAf,2BCfCsO,GAAsB,SAAC,GAAc,IAAZ9C,EAAW,EAAXA,KACnC,OACE,oCAEGA,IACmB,MAAjBA,EAAKS,SACH,kBAACvC,GAAA,EAAD,CAAO1J,QAAQ,WAAf,aACAwL,EAAKS,UAAYT,EAAKsB,UACpB,kBAACpD,GAAA,EAAD,CAAO1J,QAAQ,WAAf,wBACAwL,EAAKS,SACH,kBAACvC,GAAA,EAAD,CAAO1J,QAAQ,WAAf,cACA,oCACE,kBAAC0J,GAAA,EAAD,CAAO1J,QAAQ,UAAf,aACA,kBAAC8G,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAClC,4BAAI,gDACAuK,EAAKmC,mB,qBCddY,I,OAAe,SAAC,GAAc,IAAZC,EAAW,EAAXA,KAE7B,OAAOA,GACL,2BAAOvN,UAAU,cACf,8DACE,kBAAC,KAAD,CAAQA,UAAU,wBAAwBwN,SAAO,EAACC,KAAG,GAClDF,OCmBInN,gBAAQ,SAACc,GAAD,MAAY,CAACwM,QAASxM,EAAMoH,qBAApClI,EAvBE,SAAC,GAAyB,IAAvBsN,EAAsB,EAAtBA,QAAS3D,EAAa,EAAbA,OACnBkB,EAA4ByC,EAAQxF,KAApC+C,wBADgC,EAElBtL,mBAAS,IAFS,mBAEjC4B,EAFiC,KAE5BoM,EAF4B,KAIlC5B,EAAY2B,EAAQvF,UAAUyF,QAAQ,SAAAC,GAAQ,MAAsB,kBAAlBA,EAAS1O,QAA0B,GAM3F,OAJAW,qBAAU,WACR6N,EAAO1C,KACN,IAGD,kBAAC7F,EAAA,EAAKM,QAAN,CACEoI,IAAK/D,EACL1O,KAAK,OACLyP,MAAOvJ,EACPwM,SAAU,SAAChR,GAAD,OAAO4Q,EAAO5Q,EAAEiR,OAAOlD,QACjCmD,UAlBiB,GAmBjBC,SAAUnC,EAAUA,WAAaA,EAAUA,UAAUf,SACrDmD,YAAY,kC,UCxBLC,GAAqB,CAC9BC,cAAe,gBACfC,OAAQ,aACRC,MAAO,aACPC,OAAQ,UACRC,OAAQ,WACRC,SAAU,cACVC,KAAM,OACNC,YAAa,YACb7V,KAAM,SACN8V,QAAS,oBACTtB,KAAM,uBACNuB,gBAAiB,4BACjBC,YAAa,gBCQFC,GAbU,SAACC,GAGtB,IAFA,IAAIC,EAAS,GAEb,MAA0BC,OAAOC,QAAQH,GAAzC,eAAmD,CAAC,IAAD,sBAAzClW,EAAyC,KAAnC+R,EAAmC,KAClC,KAAVA,GAA0B,UAAVA,IAAgC,IAAXA,IDSd,mBCRvBA,IAA8BA,EAAQ,IAEzCoE,EAAOd,GAAmBrV,IAASA,GAAQ+R,GAG/C,OAAOoE,GC8DIG,G,yTA3EAC,E,gCAAiBL,E,+BAAU,GAC5BhI,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,mBAAsCmI,EAAU,cAAgB,KAAO,CAAEzW,OAAQmW,GAAiBC,KAA9H,mF,8DAEO7H,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,2KAGCA,G,qFACF2K,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMyC,KAAK,EAAK2J,qBAAqB,eAAgB7K,GAAvE,mF,8DAEV8K,KAAKC,QAAQJ,G,0KAGb6F,G,yFACA7F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,sBAAyC2F,KAArE,mF,8DAEO1F,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,2KAGAwQ,G,yFACD7F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,sBAAyC2F,EAAzC,gBAA5B,mF,8DAEO1F,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,4KAGCwQ,G,yFACF7F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMyC,KAAK,EAAK2J,qBAAL,sBAAyC2F,EAAzC,eAA7B,mF,8DAEO1F,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,6KAGEwQ,G,mGAAexQ,E,+BAAO,GACzB2K,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMyC,KAAK,EAAK2J,qBAAL,sBAAyC2F,EAAzC,eAAqExQ,GAAlG,mF,8DAEV8K,KAAKC,QAAQJ,G,4LAGK6F,G,qFAClB7F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMyC,KAAK,EAAK2J,qBAAL,sBAAyC2F,EAAzC,2CAA7B,mF,8DAEV1F,KAAKC,QAAQJ,G,6KAGV9H,EAAMoC,G,qFACT0F,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMgS,IAAI,EAAK5F,qBAAL,oBAAuChI,EAAvC,6BAAwE,CAAE8L,wBAAyB1J,IAA/H,mF,8DAEV6F,KAAKC,QAAQJ,G,+KAGV6F,EAAexQ,G,qFAClB2K,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMgS,IAAI,EAAK5F,qBAAL,sBAAyC2F,IAAkBxQ,GAAvF,mF,8DAEV8K,KAAKC,QAAQJ,G,+KAGV9H,G,qFACH8H,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAM8F,OAAO,EAAKsG,qBAAL,oBAAuChI,KAAtE,mF,8DAEViI,KAAKC,QAAQJ,G,8KAGT9H,G,qFACJ8H,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMgS,IAAI,EAAK5F,qBAAL,+BAAkDhI,EAAlD,gBAA5B,mF,8DAEViI,KAAKC,QAAQJ,G,4GAxECM,MCGtB3L,GAAM,IAAIyT,GAuFVrO,GAAqB,CAAEpD,4BAEdwC,gBAHS,SAACc,GAAD,MAAY,CAACwM,QAASxM,EAAMqO,iCAGbvO,GAAxBZ,EArFE,SAAC,GAAyC,IAAvCsN,EAAsC,EAAtCA,QAAS9P,EAA6B,EAA7BA,uBAEnBqN,EAA4ByC,EAAQxF,KAApC+C,wBAFgD,EAGlCtL,mBAAS,IAHyB,mBAGjD4B,EAHiD,KAG5CoM,EAH4C,OAIxBhO,oBAAS,GAJe,mBAIjD6P,EAJiD,KAIvCC,EAJuC,OAK1B9P,mBAAS,CAAE/G,OAAO,GAAIM,QAAS,KALL,mBAKjDA,EALiD,KAKxCwW,EALwC,OAMtB/P,oBAAS,GANa,mBAMjDC,EANiD,KAMtCC,EANsC,KAQhDV,EAASuO,EAAQxF,KAAjB/I,KACUuO,EAAQvF,UAAUyF,QAAQ,SAAAC,GAAQ,MAAsB,kBAAlBA,EAAS1O,QAA0B,GAwC7F,OAJEW,qBAAU,WACR6N,EAAO1C,KACN,IAGD,kBAAC7F,EAAA,EAAD,KACE,kBAACA,EAAA,EAAKM,QAAN,CACErK,KAAK,OACLyP,MAAOvJ,EACPwM,SAAU,SAAChR,GAAD,OAAO4Q,EAAO5Q,EAAEiR,OAAOlD,QACjCqD,YAAY,6BACZD,UAAWsB,EACXvB,UA3De,KA8DduB,EAEE,oCACC,kBAACjN,EAAA,EAAD,CAAQvC,UAAU,MAAMjB,QAAQ,UAAUkB,QAAS,kBAlD3DJ,GAAa,QAEbjE,GAAI+R,OAAOxO,EAAMoC,GACdlF,MAAM,SAAAsB,GACL+R,EAAW,CAAC9W,OAAQ,UAAWM,QAAS,iEACxCuW,GAAY,GACZ5P,GAAa,MAEd/C,OAAO,SAAAG,GACN,GAAGA,aAAiBhE,KAClB,OAAO2E,IAGT,IAAI1E,EAAU,gEAEV+D,aAAiB5D,KACnBH,EAAU+D,EAAM3D,OAAO2R,wBAAwB,GACtChO,aAAiBtE,OAC1BO,EAAU+D,EAAM/D,SAGlBwW,EAAW,CAAC9W,OAAQ,SAAUM,QAASA,IACvC2G,GAAa,QA4BgE,uBAAGG,UAAU,gBACtF,kBAACuC,EAAA,EAAD,CAAQvC,UAAU,MAAMjB,QAAQ,SAASkB,QAAS,kBAvB1D0N,EAAO1C,QACPwE,GAAY,KAsBsE,uBAAGzP,UAAU,kBAHxF,kBAACuC,EAAA,EAAD,CAAQvC,UAAU,MAAMjB,QAAQ,OAAOkB,QAAS,kBAAMwP,GAAY,KAAQ,uBAAGzP,UAAU,gBAM5F,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,gBAEbJ,EACE,kBAAC+P,GAAA,EAAD,CAASxP,UAAU,SAASpB,QAAQ,YACpC7F,EAAQA,SACP,kBAAC2M,EAAA,EAAD,CAAO9G,QAAS7F,EAAQN,QACrBM,EAAQA,cC3EhB0C,GAAM,IAAIiR,GAwHDzM,gBANS,SAACc,GACvB,MAAO,CACLuB,KAAOvB,EAAMuB,QAIuB,CAAC7E,4BAA1BwC,EAtHO,SAAC,GAA+E,IAA7EqC,EAA4E,EAA5EA,KAAMmN,EAAsE,EAAtEA,cAAezQ,EAAuD,EAAvDA,KAAM4M,EAAiD,EAAjDA,UAAWnO,EAAsC,EAAtCA,uBAAwBkM,EAAc,EAAdA,QAE/EE,EAASzJ,KAAiBzC,MAiF/B,OAEC,oCACE,kBAACsH,EAAA,EAAD,KACE,yBAAKpF,UAAU,QAEZyC,EAAKhG,KAAKuG,MAAQ+I,IAAoC,IAAvBA,EAAUf,UACxC,kBAAC5F,EAAA,EAAKyK,MAAN,CAAYxU,KAAK,YACf,kBAAC+J,EAAA,EAAKyK,MAAMC,MAAZ,CAAkBzU,KAAK,WAAW0U,QAAShE,GAAaA,EAAUF,UAAWkC,SAvFrE,SAACzI,GAEfyG,EAAUF,UACZjQ,GAAIoU,gBAAgBJ,EAAezQ,GAChC9C,MAAM,SAAAsB,GACLqM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,UACND,MAAO,2CACPmO,mBAAmB,EACnBD,SAAU,UACVI,MAAO,IACPC,kBAAkB,IAEpBzC,EAAQ,2BAAIiC,GAAL,IAAgBF,WAAW,EAAOoE,gBAAiB,SAE3DnT,OAAO,SAAAG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGToM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,QACND,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzDgT,SAAU,UACVI,MAAO,IACPC,kBAAkB,OAIxBvC,EAAOjM,KAAK,CACVC,MAAO,YACPmM,MAAO,WACP3J,kBAAkB,EAClBrC,kBAAmB,SACnBsC,iBAAkB,WAClBC,qBAAqB,EACrBC,WAAY,SAAC8L,GACPA,EAIJ7Q,GAAIsU,cAAcN,EAAezQ,EAAMsN,GACpCpQ,MAAM,SAAAsB,GACLqM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,UACND,MAAM,2BACNmO,mBAAmB,EACnBD,SAAU,UACVI,MAAO,IACPC,kBAAkB,IAEpBzC,EAAQ,2BAAKiC,GAAN,IAAiBF,WAAW,EAAMoE,gBAAiBxD,QAE3D3P,OAAO,SAAAG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGToM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,QACND,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzDgT,SAAU,UACVI,MAAO,IACPC,kBAAkB,OA3BtBvC,EAAO2C,sBAAP,oCA+BJC,kBAAmB,kBAAO5C,EAAOpK,kBAe7B,yBAOAmM,GAAaA,EAAUF,UACvB,kBAAChG,EAAA,EAAD,CAAO9G,QAAQ,WACb,4BAAI,gDACJ,2BACIgN,EAAUkE,kBAGZ,W,uICiGDE,GAzMU,SAAC,GAA4B,IAA1BhR,EAAyB,EAAzBA,KAAMyJ,EAAmB,EAAnBA,aAEhC,OAAQzJ,GACN,IAAK,2BACH,OACE,kBAAC0G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,eACc,+DADd,IAC+D,uBAAGiF,KAAMoM,KAAkCC,UAAQ,GAAC,yCADnH,2JAKJ,IAAK,oCACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,eACc,+DAAwC,uBAAGiF,KAAMsM,KAA8BD,UAAQ,GAA/C,SADtD,2JAKJ,IAAK,qCACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,eACc,+DADd,IAC+D,gCAAQ,uBAAGiF,KAAMuM,KAA+BF,UAAQ,GAAhD,SADvE,2JAKJ,IAAK,kEACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,eACc,mGADd,IAC+F,gCAAQ,uBAAGiF,KAAMwM,KAAoCH,UAAQ,GAArD,SADvG,2JAKJ,IAAK,6BACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,eACc,sEADd,IACkE,uBAAGiF,KAAMyM,KAAoBJ,UAAQ,GAAC,yCADxG,2JAKJ,IAAK,YACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,mBAC4C,8CAD5C,gCACoG,6CADpG,KAKJ,IAAK,aACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,4DAKJ,IAAK,yBACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,8CADF,+BACyD,+DADzD,qCACuI,6DADvI,KAKJ,IAAK,yBACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,gCACyD,+DADzD,wCACuI,6DADvI,KAKJ,IAAK,qBACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,gCACyD,8DADzD,wCACmI,4DADnI,wBAC2L,oDAD3L,KAKJ,IAAK,yBACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,8CADF,+BACyD,+DADzD,qCACuI,0DADvI,KAKJ,IAAK,8BACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,+BAC8B,+DAD9B,+BAEE,4BACE,2CAAgB,4CAAhB,IAA0C,uBAAGiF,KAAM0M,KAAUL,UAAQ,GAAC,oCAAtE,kBACA,yCAAc,4CAAd,2CACA,uCAAY,0DAAZ,oCACA,uCAAY,6DAAZ,sCAKR,IAAK,8BACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,+BAC8B,gHAD9B,+BAEE,4BACE,2CAAgB,4CAAiB,uBAAGiF,KAAM2M,KAAkBN,UAAQ,GAAnC,SAAjC,iEACA,yCAAc,4CAAd,2CACA,uCAAY,6DAAZ,sCAKR,IAAK,0BACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,+BAC8B,4GAD9B,+BAEE,4BACE,2CAAgB,4CAAiB,uBAAGiF,KAAM2M,KAAkBN,UAAQ,GAAnC,SAAjC,iEACA,yCAAc,iDAAd,sCACA,uCAAY,4DAAZ,sCAKR,IAAK,qBACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,gCACyD,yDADzD,uCACgI,oDADhI,KAKJ,IAAK,qBACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,gCACyD,yDADzD,uCACuI,oDADvI,KAKJ,IAAK,2BACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,mBAC4C,8CAD5C,gCACoG,+DADpG,KAKJ,IAAK,qBACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,+BAC8B,yDAD9B,+BAEE,4BACE,2CAAgB,4CAAiB,uBAAGiF,KAAM0M,KAAUL,UAAQ,GAA3B,SAAjC,sCAA8G,yDAA9G,KACA,yCAAc,4CAAd,6CAIR,IAAK,kBACH,OACE,kBAACxK,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,gCACyD,sDADzD,uCAC6H,oDAD7H,KAKJ,IAAK,2BACH,OAAO6J,EAAgB,qCACrB,kBAAC/C,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,0DACmF,8DAIvF,IAAK,mBACH,OAAO6J,EAAgB,qCACrB,kBAAC/C,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,mBAC4C,8CAD5C,gCACoG,4DAIxG,IAAK,sCACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAAhC,+BAC8B,uEAD9B,+BAEE,4BACE,2CAAgB,4CAAiB,uBAAGiF,KAAM0M,KAAUE,UAAQ,GAA3B,SAAjC,sCAA8G,uEAA9G,KACA,yCAAc,4CAAd,2CACA,uCAAY,mGAAZ,oCACA,uCAAY,qEAAZ,sCAKR,IAAK,+DACH,OACE,kBAAC/K,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,gCACyD,uEADzD,wCAC+I,qGAInJ,IAAK,iCACH,OACE,kBAAC8G,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,6CADF,gCACyD,uEADzD,wCAC+I,uEAInJ,QACE,OAAO,OCtIEqB,gBAJS,SAAAc,GAAK,MAAK,CAChCuB,KAAOvB,EAAMuB,QAGyB,KAAzBrC,EA5DG,SAACoE,GAAW,IACpB/B,EAAoE+B,EAApE/B,KAAMsJ,EAA8DvH,EAA9DuH,UAAWzM,EAAmDkF,EAAnDlF,OAAQH,EAA2CqF,EAA3CrF,KAAM2N,EAAqCtI,EAArCsI,cAAevL,EAAsBiD,EAAtBjD,IAAKqH,EAAiBpE,EAAjBoE,aACnDnM,EAASgG,EAAThG,KAEFsN,EAAS8G,mBAJY,EAMHlR,mBAAS,CAC/BqL,SAAU,KACV0B,cAAe,GACfoE,WAAY,GACZjF,WAAW,EACXoE,gBAAiB,KAXQ,mBAMpB1F,EANoB,KAMdT,EANc,KAmB3B,OALAhK,qBAAW,WACTgK,EAAQiC,KACP,IAIH,kBAACxD,GAAA,EAAD,KACE,kBAAC,GAAD,CAAelG,SAAmBuI,IAAdmB,GAA2BA,EAAUgF,YACzD,kBAACxI,GAAA,EAAKrG,KAAN,KACE,kBAACqG,GAAA,EAAKxG,MAAN,KAAY,gCAASzC,IACrB,kBAACiJ,GAAA,EAAKxG,MAAN,KACI,aAActF,GAAQ,kBAAC,GAAD,CAAwB8N,KAAMA,EAAMT,QAASA,EAAS3K,KAAMA,EAAM4K,OAAQA,IAChGtN,EAAKuG,MAAQ,kBAAC,GAAD,CAAsBuH,KAAMA,EAAMT,QAASA,EAAS3K,KAAMA,EAAM2N,cAAeA,EAAevL,IAAc,kBAATpC,GAA4BoC,IAC9I,kBAAC,GAAD,CAAqBgJ,KAAOA,KAGnB,kBAATpL,IACC1C,EAAKuG,MAEF,kBAACoC,EAAA,EAAKI,MAAN,KACE,kBAAC,GAAD,CAAUuE,OAAQA,IAClB,kBAAClE,EAAA,EAAD,CAAO7F,UAAU,OAAOjB,QAAQ,QAC9B,mFADF,qFACgK,6CADhK,qDAC4O,uBAAGiF,KAAK,4CAA4CgK,OAAO,UAAS,uCADhT,0CAONvR,EAAKuG,MAAiB,kBAAT7D,GAA4B4M,GAAY,kBAACiF,GAAD,OAGpDvU,EAAKuG,MAAQ,kBAAC,GAAD,CAAkB7D,KAAMA,EAAMyJ,aAAcA,IAE5D,kBAAC,GAAD,CAAegH,cAAe9C,EAAe3N,KAAMA,EAAM4M,UAAWxB,EAAMT,QAASA,KAErF,kBAACvB,GAAA,EAAKjG,OAAN,KACE,kBAAC,GAAD,CAAciL,UAAqB3C,IAAdmB,GAA2BA,EAAU+E,kBCvD1DlV,GAAM,IAAIyT,GAsEDjP,eAAQ,KAAM,CAACxC,4BAAfwC,EApEM,SAAC,GAA8D,IAA5D0M,EAA2D,EAA3DA,cAAelP,EAA4C,EAA5CA,uBAAwBqT,EAAoB,EAApBA,cAAoB,EAEnDtR,oBAAS,GAF0C,mBAE1EuR,EAF0E,KAEjEC,EAFiE,KAI3EnH,EAASzJ,KAAiBzC,MAE1BkO,EAAc,uCAAG,sBAAA5P,EAAA,sDAErB4N,EAAOjM,KAAK,CACVC,MAAO,iCACPC,KAAM,OACNuC,kBAAkB,EAClBtC,mBAAoB,UACpBkT,kBAAmB,OACnBjT,kBAAmB,KACnBsC,iBAAkB,KAClBE,WAAY,SAAChD,GACXA,GAAY/B,GAAI6S,OAAO3B,EAAe,CAAEoE,QAASA,IAC9C7U,MAAM,SAAAsB,GACLG,KAAKC,KACH,aACA,+CACA,WACA1B,MAAK,WACL4U,UAGHnU,OAAM,SAACG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGTE,KAAKC,KACH,UACCd,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEAClD,eA7BW,2CAAH,qDAqCpB,OACE,oCACA,kBAACkM,EAAA,EAAKI,MAAN,CAAYxF,UAAU,uDACpB,kBAACoF,EAAA,EAAKK,MAAN,CAAYzF,UAAU,YAAtB,8BACA,2BAAO3E,KAAK,WAAWiI,MAAO,CAAEnB,MAAO,OAAQC,OAAQ,QAAS0I,MAAOoG,EAASnB,QAASmB,EAASnD,SAAU,kBAAMoD,GAAYD,OAE9H,kBAAChG,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACA,yDAIA,kBAAC5I,EAAA,EAAD,CACExD,QAAQ,UACRkB,QAAS+L,GAEX,wCAAiB,IACjB,uBAAGhM,UAAU,yBC/DjBpE,GAAM,IAAIyT,GA2DDjP,eAAQ,KAAM,CAACxC,4BAAfwC,EAzDW,SAAC,GAA+C,IAA7C0M,EAA4C,EAA5CA,cAAelP,EAA6B,EAA7BA,uBAEpCoM,EAASzJ,KAAiBzC,MAE1BkO,EAAc,uCAAG,sBAAA5P,EAAA,6DAErB4N,EAAOjM,KAAK,CACVkO,OAAO,EACPjO,MAAM,uBACNkO,SAAU,UACVC,mBAAmB,EACnBC,aAAc,kBAAMpC,EAAOqC,iBAPR,SAUfzQ,GAAIyV,sBAAsBvE,GAC/BzQ,MAAM,SAAAsB,GACLqM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,UACND,MAAM,8CACNmO,mBAAmB,EACnBD,SAAU,UACVI,MAAO,IACPC,kBAAkB,OAGrBzP,OAAO,SAAAG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGToM,EAAOjM,KAAK,CACVkO,OAAO,EACPhO,KAAM,QACND,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzDgT,SAAU,UACVI,MAAO,IACPC,kBAAkB,OAjCD,2CAAH,qDAsCpB,OACE,kBAACrB,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,qEAIH,kBAAC5I,EAAA,EAAD,CAAQxD,QAAQ,UAAUkB,QAAS+L,GAAnC,kBACkB,IAAI,uBAAGhM,UAAU,6BCpDnCpE,GAAM,IAAIyT,GAqDDjP,eAAQ,KAAK,CAAExC,4BAAfwC,EAnDW,SAAC,GAAuB,IAArB0M,EAAoB,EAApBA,cAAoB,EAEbnN,oBAAS,GAFI,mBAExCC,EAFwC,KAE7BC,EAF6B,KAIzCS,EAAQC,KAAiBzC,MAgC/B,OA1BAgC,qBAAU,WACRF,GACEhE,GAAI0V,KAAKxE,GACRzQ,MAAM,SAAAC,GACLO,YAAS,qBAAD,OAAsBP,OAE/BQ,OAAO,SAAAG,GACN,GAAGA,aAAiBhE,KAClB,OAAO2E,cAGT0C,EAAMvC,KAAK,CACTkO,OAAO,EACPjO,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzDiT,mBAAmB,EACnBG,MAAO,IACPC,kBAAkB,EAClBtO,KAAM,QACNiO,SAAU,YAEZrM,GAAa,QAIhB,CAACD,IAGF,kBAACsL,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,uDAIH,kBAAC5I,EAAA,EAAD,CAAQvC,UAAU,OAAOjB,QAAQ,OAAOkB,QAtChB,WAC1BJ,GAAa,KAsCPD,EAAY,kBAAC+P,GAAA,EAAD,CAASzP,KAAK,KAAKC,UAAU,SAASpB,QAAQ,UAAa,gDAAW,uBAAGiB,UAAU,iCCH1FI,gBAJS,SAACc,GAAD,MAAY,CAClCuB,KAAOvB,EAAMuB,QAGyB,KAAzBrC,EA9CG,SAAC,GAAwH,IAAtHqC,EAAqH,EAArHA,KAAM0F,EAA+G,EAA/GA,UAAW2E,EAAoG,EAApGA,cAAemE,EAAqF,EAArFA,cAAelI,EAAsE,EAAtEA,SAAUxH,EAA4D,EAA5DA,IAAKqH,EAAuD,EAAvDA,aAAuD,IAAzC2I,kCAAyC,SACxI,OACE,kBAAChJ,GAAA,EAAD,CACE3E,GAAG,YACHpF,KAAK,QACLgK,OAAO,YACPxI,UAAU,aAEV,kBAACuI,GAAA,EAAK1G,OAAN,CAAa7B,UAAU,2DACrB,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,kBACf,2CAEA,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,gEAEbyC,EAAKhG,KAAKuG,OAAS+F,EACjBwI,GAA8B,kBAAC,GAAD,CAAcN,cAAe,kBAAMA,KAAiBnE,cAAeA,IAC/FrK,EAAKhG,KAAKuG,KACZ,kBAAC,GAAD,CAAmB8J,cAAeA,IAChC,KAGJrK,EAAKhG,KAAKuG,MACR,kBAAC,GAAD,CAAmB8J,cAAeA,MAKxC,kBAACvE,GAAA,EAAKrG,KAAN,CAAWlC,UAAU,aACnB,kBAACiG,EAAA,EAAD,KAEIkC,EAAUjJ,KAAI,SAAC2O,EAAU2D,GAAX,OACd,kBAACtL,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,IAAMC,GAAI,CAAED,KAAM,GAAKpG,UAAU,OAAOwR,IAAKA,GAC5D,kBAAC,GAAD,iBAAc3D,EAAd,CAAwBf,cAAeA,EAAevL,IAAKA,EAAKqH,aAAcA,eCC7E6I,GArCK,SAAC,GAA8B,IAApB/I,EAAmB,EAA5BR,KAASQ,YAC7B,OAAO,oCACFA,EAC6B,GAA7BA,EAAYI,gBAA0BJ,EAAYgJ,2BAA0D,GAA7BhJ,EAAYI,gBAA2BJ,EAAYgJ,0BAC/H,kBAAC,GAAD,CACErW,KAAK,UACL2C,MAAM,cACNsN,SAAS,EACTpS,QAAQ,0RAImB,GAA7BwP,EAAYI,eAAuD,MAA7BJ,EAAYI,eAAyBJ,EAAYgJ,0BACrF,kBAAC,GAAD,CACErW,KAAK,SACL2C,MAAM,cACNsN,SAAS,EACTpS,QAAQ,kJAEmB,MAA7BwP,EAAYI,eACT,kBAAC,GAAD,CACCzN,KAAK,OACL2C,MAAM,cACNsN,SAAS,EACTpS,QAAQ,kGAtBH,KA0Bf,kBAAC2M,EAAA,EAAD,CAAO9G,QAAQ,QACb,qFACA,2BAAG,uJAA4H,qCAA5H,MAA8I,mCAA9I,sC,oBC0BLiC,GAAqB,CACzB0G,6BAGatH,gBAXS,SAACc,GACvB,MAAO,CACLwM,QAASxM,EAAMoH,qBASqBtH,GAAzBZ,EAvDe,SAAC,GAA0C,IAAxCsN,EAAuC,EAAvCA,QAAShG,EAA8B,EAA9BA,yBAEhCS,EAA+BuF,EAA/BvF,UAAWD,EAAoBwF,EAApBxF,KAAMtI,EAAc8N,EAAd9N,UAKzB,OAJAE,qBAAU,WACR4H,MACC,IAGD,oCACE,kBAAC3B,EAAA,EAAD,KACE,kBAACE,EAAA,EAAD,CAAKjG,UAAU,aACb,kBAACkG,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,KACf,uDAGJ,6BAEExG,EACI,kBAAC,KAAD,CAAUwC,OAAQ,MAClB8F,EAAKQ,cAAgBR,EAAKQ,YAAYK,UAAY,kBAAC,GAAD,CAAab,KAAMA,IAE3E,kBAACjC,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAI,CAAEC,KAAM,KAEbxG,EACI,kBAAC,KAAD,CAAUwC,OAAQ,MAClB,kBAAC,GAAD,CAAe8F,KAAMA,MAI/B,kBAACjC,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAK5C,MAAO,CAACqO,WAAY,UAErB/R,EACI,kBAAC,KAAD,CAAUwC,OAAQ,MAClB,kBAAC,GAAD,CAAW+F,UAAWA,EAAWS,aAAcV,EAAKQ,aAAeR,EAAKQ,YAAYE,sB,8BC+BzFvI,GAAiB,SAAClB,GAC7B,OAAO,SAAChD,GACNA,EAAS,CACPd,KAAM,wBACN8D,WCrEAvD,GAAM,IAAIyT,GA4DDjP,eAAQ,KAAM,CAAExC,2BAAwByC,mBAAxCD,EA1DW,SAAC,GAAsD,IAApDjB,EAAmD,EAAnDA,KAAMkB,EAA6C,EAA7CA,eAAgBzC,EAA6B,EAA7BA,uBAE3C0C,EAAQC,KAAiBzC,MAwC/B,OACE,kBAACoN,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,iDAIH,kBAAC5I,EAAA,EAAD,CAAQtC,QAAS,WA3CnBK,EAAMvC,KAAK,CACTC,MAAM,mEAAD,OAA+DmB,EAA/D,KACLlB,KAAM,UACNE,kBAAmB,KACnBqC,kBAAkB,EAClBC,iBAAkB,WAClBC,qBAAqB,EACrBC,WAAY,SAAChD,GAERA,GACD/B,GAAIiF,OAAO1B,GACR9C,MAAM,SAAAsB,GACL0C,EAAelB,GACfmB,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAM,yCACNP,KAAM,eAGTnB,OAAO,SAAAG,GACN,GAAGA,aAAiBhE,KAClB,OAAO2E,IAGT0C,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAOvB,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACxD+E,KAAM,iBAgBsBc,QAAQ,SAASiB,UAAU,QAC7D,0BAAMA,UAAU,gCCrDpBpE,GAAM,IAAIyT,GAmDDjP,eAAQ,KAAK,CAAExC,4BAAfwC,EAjDO,SAAC,GAA+C,IAA7C0M,EAA4C,EAA5CA,cAAelP,EAA6B,EAA7BA,uBAA6B,EAEjC+B,oBAAS,GAFwB,mBAE5DC,EAF4D,KAEjDC,EAFiD,KAI7DS,EAAQC,KAAiBzC,MA8B/B,OAxBAgC,qBAAU,WACRF,GACEhE,GAAIgW,MAAM9E,GACTzQ,MAAM,SAAAsB,GAAQ,OAAKd,YAAS,qBAAD,OAAsBiQ,OACjDhQ,OAAO,SAAAG,GACN,GAAGA,aAAiBhE,KAClB,OAAO2E,IAGT0C,EAAMvC,KAAK,CACTkO,OAAO,EACPjO,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzDiT,mBAAmB,EACnBG,MAAO,IACPC,kBAAkB,EAClBtO,KAAM,QACNiO,SAAU,YAEZrM,GAAa,QAIhB,CAACD,IAGF,kBAACsL,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,0DAIH,kBAAC5I,EAAA,EAAD,CAAQvC,UAAU,OAAOjB,QAAQ,YAAYkB,QApCrB,WAC1BJ,GAAa,KAoCPD,EAAY,kBAAC+P,GAAA,EAAD,CAASzP,KAAK,KAAKC,UAAU,SAASpB,QAAQ,UAAa,uBAAGiB,UAAU,oBC7CxFpE,GAAM,IAAIyT,GAgDDjP,eAAQ,KAAM,CAACxC,2BAAwByC,mBAAvCD,EA9Ca,SAAC,GAAsD,IAApDjB,EAAmD,EAAnDA,KAAMkB,EAA6C,EAA7CA,eAAgBzC,EAA6B,EAA7BA,uBAE7C0C,EAAQC,KAAiBzC,MAqC/B,OACE,kBAACyE,EAAA,EAAD,CAAQtC,QAAS,WAnCjBK,EAAMvC,KAAK,CACTC,MAAM,uCACNC,KAAM,OACNE,kBAAmB,KACnBqC,kBAAkB,EAClBC,iBAAkB,WAClBC,qBAAqB,EACrBC,WAAY,SAAChD,GACRA,GACD/B,GAAIiW,QAAQ1S,GACT9C,MAAM,SAAAsB,GACL0C,EAAelB,GACfmB,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAM,yCACNP,KAAM,eAGTnB,OAAO,SAAAG,GACN,GAAGA,aAAiBhE,KAClB,OAAO2E,IAGT0C,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAOvB,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACxD+E,KAAM,iBASoBc,QAAQ,WAC5C,0BAAMiB,UAAU,6BCjDT8R,I,OAAO,SAAC,GAAD,IAAGlN,EAAH,EAAGA,SAAUkC,EAAb,EAAaA,GAAb,IAAiB/H,eAAjB,MAAyB,UAAzB,SAChB,kBAAC,IAAD,CAAY+H,GAAIA,EAAI9G,UAAS,kBAAajB,EAAb,UACxB6F,KCuHMxE,gBALS,SAAC,GAAD,MAAe,CACrCqC,KADsB,EAAGA,QAKa,KAAzBrC,EAlHiB,SAAC,GAK1B,IAJL2R,EAII,EAJJA,OACAtP,EAGI,EAHJA,KACAxD,EAEI,EAFJA,QAEI,IADJsS,kCACI,SAEI9U,EAASgG,EAAThG,KAGF6B,EAAU,CACd,CACEC,UAAW,oBACXC,KAAM,wBAER,CACED,UAAW,SACXC,KAAM,UAER,CACED,UAAW,UACXC,KAAM,UACNC,UAAW,SAACC,GAEV,OADcqT,EAAOC,QAAUD,EAAOE,MAAM,qBAAGnH,OAAsBpM,MACxDU,QAGjB,CACEb,UAAW,gBACXC,KAAM,mBACNC,UAAW,SAAAC,GAAI,OAAK,kBAAC+J,GAAA,EAAD,CAAO1J,QAAkB,IAATL,EAAY,UAAaA,EAAgB,UAAT,QAEtD,IAATA,EAAa,oBAAuBA,EAA8B,sBAAvB,wBAIlD,CACEH,UAAW,WACXC,KAAM,UACNC,UAAW,SAAAC,GAAI,OAAI,kBAAC+J,GAAA,EAAD,CAAO1J,QAASL,EAAO,UAAY,UAAYA,EAAO,WAAa,iBAExF,CACEH,UAAW,4BACXC,KAAM,2BACNC,UAAW,SAAAC,GAAI,OAAKA,EAAO,KAAO,OAEpC,CACEH,UAAW,cACXC,KAAM,cACNC,UAAW,SAAAC,GAAI,OAAKA,EAAO,KAAO,OAEpC,CACEH,UAAW,UACXC,KAAM,UACNC,UAAW,SAAAC,GAAI,OAAKA,EAAO,KAAO,OAEpC,CACEH,UAAW,SACXC,KAAM,aAMJ0T,EAAWjT,EAAQC,KAAK,YAOvB,IAAD,IANJwJ,YAAea,EAMX,EANWA,QAAST,EAMpB,EANoBA,cAAeqJ,EAMnC,EANmCA,YAAajB,EAMhD,EANgDA,QAASvI,EAMzD,EANyDA,kBAAmBI,EAM5E,EAN4EA,SAAUqJ,EAMtF,EANsFA,0BAC1F9S,EAKI,EALJA,OACA0J,EAII,EAJJA,gBACAC,EAGI,EAHJA,iBACA9J,EAEI,EAFJA,KACAkT,EACI,EADJA,WAEA,MAAO,CACD1J,kBAAmBA,EACnBrJ,OAAO,GAAD,OAAKA,EAAL,YAAe0J,EAAf,YAAkCC,GACxCM,QAASA,EAAQvH,GACjB8G,cAAiC,OAAlBA,EAAyB,EAAIA,EAC5CC,SAAUA,EACVqJ,0BAA2BA,EAA4B,EAAI,EAC3DD,YAAaA,EACbjB,QAASA,EACT3R,OAAuB,OAAf8S,EACJ,oCACE,kBAAC,GAAD,CAAevF,cAAenE,IAC3BnG,EAAiBO,SAAStG,EAAKuG,OAChC,oCACGuO,GAA8B,kBAAC,GAAD,CAAmBpS,KAAMA,IACxD,kBAAC,GAAD,CAAM2H,GAAE,uBAAkB6B,GAAqB5J,QAAQ,QACrD,uBAAGiB,UAAU,kBAKrBuR,GAA8B,kBAAC,GAAD,CAAqBpS,KAAMA,QAMrE,OACE,kBAAC,KAAD,CACEK,YAAU,EAACC,SAAS,oBACpBnD,KAAO4V,EACP5T,QAAUA,O,oBChHHgU,GAAyB,SAACC,GAMrC,MAJ+B,UAA5BpD,OAAOqD,OAAOD,GAAO,KACtBA,EAAMpD,OAAOsD,KAAKF,GAAO,KAAO,GAG3B,SAAApW,GAAQ,OAAIA,EAASuW,GAASH,MAGjCG,GAAW,SAACH,GAAD,MAAY,CAC3BlX,KAAMrB,IACNuY,UCPI3W,GAAM,I,sNCFWoH,G,yFACTiE,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAL,0BAA6CnE,KAAzE,mF,8DAEOoE,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,4GANQiL,ODkCjBvG,GAAqB,CACzBsR,2BAGalS,eAAQ,KAAMY,GAAdZ,EAjCM,SAAC,GAAgC,IAA9BkS,EAA6B,EAA7BA,uBAA6B,EAEJ3S,mBAAS,IAFL,mBAE5CgT,EAF4C,KAE1BC,EAF0B,KAgBnD,OARA9S,qBAAU,WACRlE,GAAIiX,aAAa,uBACdxW,MAAM,SAAAC,GACLsW,EAAmBtW,MAEpBQ,OAAO,SAAAG,GAAK,OAAImL,QAAQnL,MAAMA,QAChC,IAGD,kBAACmI,EAAA,EAAKI,MAAN,CAAYsN,UAAU,4BACpB,kBAAC1N,EAAA,EAAKK,MAAN,6BACA,kBAACL,EAAA,EAAKM,QAAN,CAAcqN,GAAG,SAASC,QAAM,EAACjF,SAfhB,SAAChR,GACpBuV,EAAuB,CAACvD,YAAahS,EAAEiR,OAAOlD,UAe1C,4BAAQA,OAAQ,GAAhB,WAEE6H,EAAiBzT,KAAK,WAAiCsS,GAAjC,IAAErS,EAAF,EAAEA,KAAMG,EAAR,EAAQA,OAAQ0J,EAAhB,EAAgBA,gBAAhB,OAAyC,4BAAQwI,IAAKA,EAAK1G,MAAO3L,GAAzB,UAAmCG,EAAnC,YAA6C0J,Y,oBE9BzGiK,GAAa,SAAC1F,GACzB,IAAM2F,EAAc,IAAIC,KAAK5F,GAC7B,MAAM,GAAN,OAAU2F,EAAYE,cAAtB,YAAuCF,EAAYG,WAAa,EAAhE,YAAqEH,EAAYI,Y,iBCMnFC,0BAAe,KAAMC,MAErB,IAiCMxS,GAAqB,CACzBsR,2BAGalS,gBAAQ,kBAA8B,CAAE0K,MAAhC,EAAG2I,sBAA0DlG,QAASvM,GAA9EZ,EArCQ,SAAC,GAAsC,EAApC0K,MAAqC,IAA9BwH,EAA6B,EAA7BA,uBAA6B,EAEpC3S,qBAFoC,mBAErD4N,EAFqD,KAE/CmG,EAF+C,KAe5D,OANA5T,qBAAU,WACR,OAAO,WACLwS,EAAuB,CAAC/E,MAAO,OAEhC,IAGD,kBAACnI,EAAA,EAAKI,MAAN,CAAYsN,UAAU,kBACpB,kBAAC1N,EAAA,EAAKK,MAAN,cAEA,kBAAC,KAAD,CACEkO,OAAS,KACTzQ,SAAYqK,EACZQ,SAlBe,SAAA6F,GACnBA,GAAgBtB,EAAuB,CAAC/E,KAAM0F,GAAWW,KACzDF,EAAQE,IAiBJX,WAAW,aACXY,YAAY,MACZC,aAAW,EACX9T,UAAU,eACV+T,gBAAgB,6BCNTC,GA5BM,SAAC,GAA2B,IAAzBC,EAAwB,EAAxBA,SAAUC,EAAc,EAAdA,QAAc,EAChBvU,oBAAS,GADO,mBACvCwU,EADuC,KAC9BxM,EAD8B,KAW7C,OACC,kBAACuD,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,sDAIH,kBAAC5I,EAAA,EAAD,CAAQxD,QAAQ,UAAUkB,QAhBT,WACnB0H,GAAW,GAEXsM,IACGnX,MAAMoX,GACN7X,MAAK,kBAAMsL,GAAW,OAW0BuG,SAAUiG,GACxDA,EACG,oCAAE,kBAACxE,GAAA,EAAD,CAASzP,KAAK,KAAKF,UAAU,oBAAoBG,UAAU,SAASpB,QAAQ,UAA9E,cACA,+CAHN,cCcSqB,gBAAQ,kBAAa,CAAEqC,KAAf,EAAGA,QAAXrC,EA/BiB,SAAC,GAA0G,IAAxGqC,EAAuG,EAAvGA,KAAMwR,EAAiG,EAAjGA,SAAUC,EAAuF,EAAvFA,QAAuF,IAA9EjW,YAA8E,MAAvE,KAAuE,EAAjED,EAAiE,EAAjEA,MAAiE,IAA1DoW,oBAA0D,MAA3C,GAA2C,EAAvCC,EAAuC,EAAvCA,YAAuC,IAA1BtV,eAA0B,MAAhB,UAAgB,IAC1GY,oBAAS,GADiG,mBACjIwU,EADiI,KACxHxM,EADwH,KAWxI,OAAInF,EAAiBO,SAASN,EAAKhG,KAAKuG,MAErC,kBAACkI,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,gCAASkJ,KAIb,kBAAC9R,EAAA,EAAD,CAAQxD,QAASA,EAASkB,QAjBT,WACnB0H,GAAW,GAEXsM,IACGnX,MAAMoX,GACN7X,MAAK,kBAAMsL,GAAW,OAY0BuG,SAAUiG,GACxDA,EACG,oCAAE,kBAACxE,GAAA,EAAD,CAASzP,KAAK,KAAKF,UAAU,eAAeG,UAAU,SAASpB,QAAQ,UAAzE,IAAqFqV,GAAgBpW,GACrG,oCAAGC,EAAMD,KAMZ,Q,qBCrBHpC,GAAM,I,oTCPIqT,E,+BAAU,GACZhI,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IACpC,EAAKC,qBAAqB,2BAA4B,CAClDtO,OAAQmW,GAAiBC,GACzBqF,aAAc,SAHN,mF,8DAOHlN,KAAKC,QAAQJ,GACrB5K,MAAK,SAACsB,GAAD,OAAc,EAAK4W,eAAe,qBAAsB5W,M,+TAGnDsR,E,+BAAU,GACnBhI,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IACpC,EAAKC,qBAAqB,iCAAkC,CACxDtO,OAAQmW,GAAiBC,GACzBqF,aAAc,SAHN,mF,8DAOHlN,KAAKC,QAAQJ,GACrB5K,MAAK,SAACsB,GAAD,OAAc,EAAK4W,eAAe,mBAAoB5W,M,uUAGzCsR,E,+BAAU,GAC3BhI,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IACpC,EAAKC,qBAAqB,+CAAgD,CACtEtO,OAAQmW,GAAiBC,GACzBqF,aAAc,SAHN,mF,8DAOHlN,KAAKC,QAAQJ,GACrB5K,MAAK,SAACsB,GAAD,OAAc,EAAK4W,eAAe,+BAAgC5W,M,kTAItEsJ,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IACpC,EAAKC,qBAAqB,2BAA4B,CAAEmN,aAAc,SAD1D,mF,8DAIHlN,KAAKC,QAAQJ,GACrB5K,MAAK,SAACsB,GAAD,OAAc,EAAK4W,eAAe,yBAA0B5W,M,mLAS3D6W,EAAiB7W,GAAU,IAC9BrB,EAAkBqB,EAAlBrB,KAEJmY,EAFsB9W,EAAZ1C,QAES,uBACvBwZ,OAAwB7J,IAAb6J,EAAyBD,EAAkBC,EAAShQ,MAAM,aAAa,GAElFiQ,KAAapY,EAAMmY,O,GA1DFlN,ODgGVnH,gBAPS,SAACc,GACvB,MAAO,CACLuB,KAAOvB,EAAMuB,KACbwM,QAAU/N,EAAMuS,yBAILrT,EAtFY,SAAC,GAAuB,IAArBqC,EAAoB,EAApBA,KAAMwM,EAAc,EAAdA,QAC1BxS,EAASgG,EAAThG,KADwC,EAGxBkD,oBAAS,GAHe,mBAGzC8B,EAHyC,KAGnC8J,EAHmC,OAIpB5L,mBAAS,MAJW,mBAIzCqO,EAJyC,KAIjC2G,EAJiC,KAK1C7G,EAAM+C,iBAAO,MAEbvQ,EAAQC,KAAiBzC,MAOzB8W,EAAc,SAAC7X,GACnB,IAAI7D,EAAU,4EAEV6D,aAAapE,KACfO,EAAU6D,EAAE7D,QACH6D,aAAa1D,OACtBH,EAAUiW,OAAOC,QAAQrS,EAAEzD,QAAQub,KAAK,QAG1CvU,EAAMvC,KAAK,SAAU7E,EAAS,UAGhC,OACE,oCACE,kBAACqJ,EAAA,EAAD,CAAQtC,QAnBQ,SAACqF,GACnBiG,GAAS9J,GACTkT,EAAUrP,EAAM0I,SAiBgBjP,QAAQ,WAAU,uBAAGiB,UAAU,wBAE7D,kBAAC8U,GAAA,EAAD,CACErT,KAAMA,EACNuM,OAAQA,EACR+G,UAAU,SACVC,UAAWlH,EAAIjD,QACfoK,iBAAkB,GAClBC,YAAY,GAEZ,kBAACC,GAAA,EAAD,CAASnT,GAAG,qBACV,kBAACmT,GAAA,EAAQpT,MAAT,CAAegR,GAAG,MAAK,6CACvB,kBAACoC,GAAA,EAAQC,QAAT,KACE,kBAAChQ,EAAA,EAAD,KACE,kBAAC,GAAD,MAEE5C,EAAiBO,SAAStG,EAAKuG,OAAS,kBAAC,GAAD,MAE1C,kBAAC,GAAD,CACEiR,SAAU,kBAAMrY,GAAIyZ,MAAMpG,IAC1BiF,QAASU,IAEX,kBAAC,GAAD,CACE5W,MAAM,sBACNoW,aAAa,wBACbC,YAAY,8BACZJ,SAAU,kBAAMrY,GAAI0Z,aAAarG,IACjCiF,QAASU,IAEX,kBAAC,GAAD,CACE5W,MAAM,+BACNqW,YAAY,kDACZJ,SAAU,kBAAMrY,GAAI2Z,qBAAqBtG,IACzCiF,QAASU,QAOnB,kBAAC,GAAD,CACE7V,QAAQ,UACRd,KAAM,uBAAG+B,UAAU,qBACnBqU,YAAY,kBACZJ,SAAU,kBAAMrY,GAAI4Z,iBACpBtB,QAASU,Q,qBEpEFa,GAjBI,SAAC,GAA8D,IAA5DC,EAA2D,EAA3DA,YAAaC,EAA8C,EAA9CA,YAAaC,EAAiC,EAAjCA,aAAcC,EAAmB,EAAnBA,aAExDC,EAAmB,CACrBC,WAAYC,KAAKC,KAAKL,EAAaD,GACnCD,YAAaA,EACbQ,QAAS,EACThW,KAAM,KACNiW,QAAQ,EACRC,UAAU,EACVnW,QAAS,SAAC0O,GAAD,OAAUkH,EAAalH,KAGlC,OACE,kBAAC,KAAUmH,I,SCEAO,GAfK,SAAC,GAA8D,IAA5DV,EAA2D,EAA3DA,YAAaE,EAA8C,EAA9CA,aAA8C,IAAhCS,cAAgC,MAAvB,CAAC,GAAI,GAAI,GAAI,IAAU,EAChF,OACE,kBAACC,GAAA,EAAD,KACE,kBAACA,GAAA,EAASpT,OAAV,CAAiBpE,QAAQ,WACtB4W,GAEH,kBAACY,GAAA,EAASC,KAAV,KAEIF,EAAOpX,KAAK,SAAAyP,GAAI,OAAI,kBAAC4H,GAAA,EAASlS,KAAV,CAAeL,KAAK,IAAIwN,IAAK7C,EAAM1O,QAAS,kBAAM4V,EAAalH,KAASA,SCEvF8H,G,uTATAxH,E,+BAAU,GACXhI,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,KAAMmM,IAAI,EAAKC,qBAAqB,aAAc,CAAEtO,OAAQoW,IAA9E,mF,8DAEO7H,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,2GANSiL,MCDXmP,GAAe,WAC1B,8CAAO,WAAOva,GAAP,iBAAAC,EAAA,sEAGGR,EAAM,IAAI6a,GAHb,KAKYE,GALZ,SAK+B/a,EAAImM,OALnC,mBAKGgK,GALH,cAOH5V,EAASya,GAAa7E,IAPnB,kDAUH3J,QAAQnL,MAAM,QAAd,MAVG,0DAAP,uDAqBI0Z,GAAc,SAAC5O,GAAD,OAClBA,EAAK7I,KAAK,kBAAqB,CAAE4L,MAAvB,EAAG9I,GAA+B5C,MAAlC,EAAOE,YAIbsX,GAAe,SAAAxb,GAAO,MAAK,CAAEC,KAAM,gBAAiBD,Y,SCD3Cyb,GAzBK,SAAC,GAAkF,IAAhFzX,EAA+E,EAA/EA,MAAO0L,EAAwE,EAAxEA,MAAwE,IAAjEgM,eAAiE,MAAzD,GAAyD,EAArD/I,EAAqD,EAArDA,SAAqD,IAA3CI,mBAA2C,MAA7B,GAA6B,MAAzBnO,iBAAyB,MAAb,OAAa,EAMpG,OACE,kBAACoF,EAAA,EAAKI,MAAN,CAAYxF,UAAWA,GACrB,kBAACoF,EAAA,EAAKK,MAAN,KAAarG,GACb,kBAACgG,EAAA,EAAKM,QAAN,CAAcqN,GAAG,SAAShF,SAPR,SAAChR,GACrBgR,EAAShR,EAAEiR,OAAOlD,QAMqCA,MAAOA,GACxDqD,GAAe,4BAAQrD,MAAM,IAAIqD,GAEjC2I,EAAQ5X,KAAK,SAAA6X,GAAM,OACjB,4BACEvF,IAAKuF,EAAOjM,MACZA,MAAOiM,EAAOjM,OAEbiM,EAAO3X,aCHP4X,GAdG,SAAC,GAAiD,IAA/C5X,EAA8C,EAA9CA,MAAO2O,EAAuC,EAAvCA,SAAUjD,EAA6B,EAA7BA,MAA6B,IAAtBqD,mBAAsB,MAAR,GAAQ,EAMjE,OACE,kBAAC/I,EAAA,EAAKI,MAAN,CAAYxF,UAAU,QACpB,kBAACoF,EAAA,EAAKK,MAAN,KAAarG,GACb,kBAACgG,EAAA,EAAKM,QAAN,CAAcrK,KAAK,OAAOyP,MAAOA,EAAOiD,SAPvB,SAAChR,GACpBgR,EAAShR,EAAEiR,OAAOlD,QAMgDqD,YAAaA,MCqP7EnN,GAAqB,CACzB0V,gBACAO,mBACAC,QrBhOqB,SAACvI,GACtB,OAAO,SAACxS,GACNA,EAAS,CACPd,KAAM,yBACNsT,WqB6NJwI,erBxN4B,SAACvI,GAC7B,OAAO,SAACzS,GACNA,EAAS,CACPd,KAAM,gCACND,QAAS,CACPwT,cACAD,KAAM,OqBmNZyI,2BrBlQwC,SAAC9H,EAASzW,GAAV,8CAAqB,WAAMsD,GAAN,eAAAC,EAAA,6DAEvDR,EAAM,IAAIyT,GAF6C,SAIvDzT,EAAImM,KAAKuH,EAASzW,GACrBwD,MAAK,SAAAsB,GACJ,IAAIrB,EAAM+a,EACN,SAAU1Z,GACZrB,EAAOqB,EAASrB,KAChB+a,EAAQ1Z,EAAS0Z,OAGjBA,GADA/a,EAAOqB,GACMqU,OAGf7V,EAAS,CACPd,KAAM,4BACND,QAAS,CACPwa,aAAcyB,EACdpY,QAAS3C,QAIdQ,OAAM,SAAAG,GACDA,aAAiBhE,MACnBkD,EAASyB,eAGXwK,QAAQC,IAAIpL,MA5B6C,2CAArB,uDqBmQxCqa,WrB9MwB,SAAC1J,GACzB,OAAO,SAACzR,GACNA,EAAS,CACPd,KAAM,4BACND,QAASwS,MqB2Mb2J,erBtM4B,SAACzM,GAC7B,OAAO,SAAC3O,GACNA,EAAS,CACPd,KAAM,gCACND,UAAWsB,KAAKU,MAAM0N,OqBmM1BwH,2BAGalS,gBAnBS,SAAC,GACvB,MAAO,CACLoX,eAFkF,EAA3DC,sBAGvB1F,OAHkF,EAApC2F,cAI9CC,QAJkF,EAArBC,kBAmBzB5W,GAAzBZ,EA7PK,SAAC,GAYd,IAXLoX,EAWI,EAXJA,eACAzF,EAUI,EAVJA,OACA4F,EASI,EATJA,QACAT,EAQI,EARJA,QACAC,EAOI,EAPJA,eACAC,EAMI,EANJA,2BACAV,EAKI,EALJA,aACAO,EAII,EAJJA,cACAM,EAGI,EAHJA,eACAD,EAEI,EAFJA,WACAhF,EACI,EADJA,uBAIE3D,EAME6I,EANF7I,KACAC,EAKE4I,EALF5I,YACAgH,EAIE4B,EAJF5B,aACA3W,EAGEuY,EAHFvY,QACAqQ,EAEEkI,EAFFlI,QAPE,EASAkI,EADFvI,QAAWX,EART,EAQSA,OAAQD,EARjB,EAQiBA,cAAeE,EARhC,EAQgCA,MAAOC,EARvC,EAQuCA,OAAQC,EAR/C,EAQ+CA,OAAQC,EARvD,EAQuDA,SAAU3V,EARjE,EAQiEA,KAAM8V,EARvE,EAQuEA,QAASC,EARhF,EAQgFA,gBAGpFhP,qBAAU,WACR4W,IACAO,MACC,IAEH,IAAMY,EAAyBC,uBAAY,iBAAiB,KAAXxJ,IAAe,CAACA,IAMjE,OAJAxO,qBAAW,WACTsX,EAA2B9H,EAAS,CAAEX,OAAMC,cAAaN,SAAQD,gBAAeE,QAAOC,SAAQC,SAAQC,WAAU3V,OAAM8V,UAASC,sBAC/H,CAACH,EAAMC,EAAaP,EAAeC,EAAQC,EAAOC,EAAQC,EAAQC,EAAU3V,EAAM8V,EAASC,EAAiBQ,IAG7G,kBAACvJ,EAAA,EAAD,CAAWC,OAAK,GACZ,kBAACC,EAAA,EAAD,CAAK3C,MAAO,CAACyU,IAAK,OAAQC,OAAQ,IAChC,kBAAC9R,EAAA,EAAD,CAAKlG,UAAU,8DACb,wBAAIA,UAAU,aAAd,6BAEF,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,wFACb,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,yBAAKA,UAAU,cACf,kBAAC,GAAD,CACEZ,MAAM,UACN0L,MAAOwD,EACPwI,QAASa,EACT5J,SAAU,SAACO,GACTgJ,EAAW,CAAChJ,WACZgE,EAAuB,CAAChE,YAE1BtO,UAAU,OAId,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,YACb,yBAAKA,UAAU,cACf,kBAAC,GAAD,CACEZ,MAAM,mBACN0L,MAAOwE,EACP2I,aAAa,cACbnB,QAAS,CACP,CAAChM,MAAO,QAAS1L,MAAO,aACxB,CAAC0L,MAAO,OAAQ1L,MAAO,kBAEzB2O,SAAU,SAACjD,GACTyM,EAAezM,IAEjB9K,UAAU,OAId,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,uCACb,yBAAKA,UAAU,yBACb,kBAAC,GAAD,WAMV,6BACA,2CACA,kBAACiG,EAAA,EAAD,KACA,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACX,kBAAC,GAAD,CACEZ,MAAM,uBACN0L,MAAO+D,EACPoJ,aAAa,oBACblK,SAAU,SAACc,GACTyI,EAAW,CAACzI,gBAIlB,kBAAC3I,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,CACEZ,MAAM,SACN0L,MAAO/R,EACPkf,aAAa,oBACblK,SAAU,SAAChV,GACTue,EAAW,CAACve,aAIlB,kBAACmN,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,CACEZ,MAAM,UACN0L,MAAOyD,EACPuI,QAAS/E,EACT5D,YAAY,QACZJ,SAAU,SAACQ,GACT+I,EAAW,CAAC/I,UACZ+D,EAAuB,CAAC/D,cAI9B,kBAACrI,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,CACEZ,MAAM,mBACN0L,MAAOuD,EACPF,YAAY,QACZ2I,QAAS,CACP,CAAChM,MAAO,EAAG1L,MAAO,uBAClB,CAAC0L,MAAO,EAAG1L,MAAO,uBAClB,CAAC0L,MlCtHiB,iBkCsHU1L,MAAM,sBAEpC2O,SAAU,SAACM,GACTiJ,EAAW,CAACjJ,kBACZiE,EAAuB,CAACjE,sBAI9B,kBAACnI,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,CACEZ,MAAM,UACN0L,MAAO2D,EACPN,YAAY,QACZ2I,QAAS,CACP,CAAChM,MAAO,EAAG1L,MAAO,eAClB,CAAC0L,MAAO,EAAG1L,MAAO,aAEpB2O,SAAU,SAACU,GACT6I,EAAW,CAAC7I,WACZ6D,EAAuB,CAAC7D,eAI9B,kBAACvI,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,CACEZ,MAAM,YACN0L,MAAOgE,EACPX,YAAY,QACZ2I,QAAS,CACP,CAAChM,MAAO,EAAG1L,MAAO,MAClB,CAAC0L,MAAO,EAAG1L,MAAO,OAEpB2O,SAAU,SAACe,GACTwI,EAAW,CAACxI,oBACZwD,EAAuB,CAACxD,yBAkChC,6BACA,kBAAC7I,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,2CACX,kBAAC,GAAD,CACE2V,YAAc/G,EACdiH,aAAe,SAAC3V,GAAD,OAAUiX,EAAejX,MAE1C,kBAAC,GAAD,CACEwV,YAAc/G,EACdgH,YAAe/G,EACfgH,aAAeA,EACfC,aAAe,SAAClH,GAAD,OAAUuI,EAAQvI,QAIzC,kBAAC1I,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACX,kBAAC,GAAD,CACEf,QAAWA,EACX8S,OAAQA,EACRR,2BAA4BsG,QAIpC,kBAAC5R,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,2CACX,kBAAC,GAAD,CACE2V,YAAc/G,EACdiH,aAAe,SAAC3V,GAAD,OAAUiX,EAAejX,MAE1C,kBAAC,GAAD,CACEwV,YAAc/G,EACdgH,YAAe/G,EACfgH,aAAeA,EACfC,aAAe,SAAClH,GAAD,OAAUuI,EAAQvI,YC3O3CuJ,GAAgB,IAAI7I,GACpB5H,GAAyB,IAAIoF,GAEtBsL,GAAuB,SAACrL,GACnC,8CAAO,WAAO3Q,GAAP,mBAAAC,EAAA,6DAELD,EAASwL,MAFJ,kBAKuBuQ,GAAchR,IAAI4F,GALzC,cAKGhF,EALH,gBAMGoQ,GAActG,MAAM9E,GANvB,uBAOyBrF,GAAuBM,KAAK+E,GAPrD,OAOG9E,EAPH,OAcH7L,EAASic,GALO,CACdlQ,KAAMJ,EACNK,UAAWH,KAXV,kDAiBG9O,EAAW,gBAAiBP,KAAgB,KAAMO,QAAU,iFAClEiD,EAASkc,GAAS,CAAEnf,aAlBjB,0DAAP,uDAgCIyO,GAAa,iBAAO,CAACtM,KAAMlB,MAE3Bie,GAAuB,SAAAhd,GAAO,MAAK,CAACC,KAAMhB,IAA6Be,YAEvEkd,GAAQ,iBAAO,CAACjd,KAAMf,MAEtB+d,GAAW,SAAAjd,GAAO,MAAK,CAACC,KAAMjB,IAAmCgB,YC7C1Dmd,I,OAAgB,SAAC,GAAuB,IAArBtH,EAAoB,EAApBA,cAE9B,OACE,kBAAC/F,GAAA,EAAD,CACE6J,UAAU,SACVhV,QACE,kBAACoL,GAAA,EAAD,KACC,gDAIH,kBAAC5I,EAAA,EAAD,CAAQxD,QAAQ,UAAUkB,QAASgR,GACjC,uBAAGjR,UAAU,uBCXRwY,GAAiB,SAAC,GAAD,QAAGlX,YAAH,MAAU,gBAAV,SAC1B,kBAAC4J,GAAA,EAAD,CACE6J,UAAU,SACVhV,QACE,kBAACoL,GAAA,EAAD,KACC,yDAIH,kBAAC5I,EAAA,EAAD,CAAQxD,QAAQ,OAAOkB,QAAU,kBAAMpD,YAASyE,KAC9C,uBAAGtB,UAAU,0BADf,c,UCqGAgB,GAAqB,CACzBmX,wBACAM,uBHnFoC,SAAC3L,GACrC,6BAAO,sBAAA1Q,EAAA,sEAAkB8b,GAActG,MAAM9E,GAAtC,oFGmFP4L,uBHhFoC,WACpC,OAAO,SAAAvc,GAAQ,OAAIA,EAASmc,QGgF5B1a,2BACAqZ,oBAGa7W,gBAbS,SAAAc,GAAK,MAAK,CAChCoH,kBAAoBpH,EAAMqO,8BAC1BoI,QAAUzW,EAAM0W,kBAWqB5W,GAAxBZ,EAxGC,SAAC,GAA+J,IAA7J0M,EAA4J,EAA5JA,cAAexE,EAA6I,EAA7IA,kBAAmB6P,EAA0H,EAA1HA,qBAAsBM,EAAoG,EAApGA,uBAAwBC,EAA4E,EAA5EA,uBAAwB9a,EAAoD,EAApDA,uBAAwBqZ,EAA4B,EAA5BA,cAAeU,EAAa,EAAbA,QAEzJzP,EAA+CI,EAA/CJ,KAAMC,EAAyCG,EAAzCH,UAAWvI,EAA8B0I,EAA9B1I,UAAW3C,EAAmBqL,EAAnBrL,MAAO/D,EAAYoP,EAAZpP,QACpCoH,EAAQC,KAAiBzC,MAkB/BgC,qBAAU,YACP6X,EAAQ3F,QAAUiF,MAClB,CAACU,EAAQ3F,SAGZlS,qBAAU,WACRqY,EAAqBrL,KACpB,CAACA,IAGJhN,qBAAU,WACJ7C,GACFqD,EAAMvC,KAAK,CACTC,MAAO9E,EACP+E,KAAM,QACNE,kBAAmB,UACnBwC,WAAY,WACV+X,IACA7b,YAAS,sBAId,CAACI,IAGJ6C,qBAAU,WACR,IAAMwM,EAAQqM,aAAY,WAzCtBzQ,EAAKQ,aACP+P,EAAuB3L,GACtBhQ,OAAO,SAAAG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGT0C,EAAMvC,KAAK,CACTC,MAAQf,aAAiBtE,KAAgBsE,EAAM/D,QAAU,gEACzD+E,KAAM,eAkCT,MACH,OAAO,kBAAO2a,cAActM,MAC3B,CAACpE,IAGJ,IAAM2Q,EAAsBf,uBAAY,WAAO,IAAD,EAC5C,aAAI5P,EAAKQ,mBAAT,aAAI,EAAkBoQ,QAAS,CAC7B,IAAMxK,EAASqJ,EAAQ1F,MAAK,SAAA8G,GAAC,OAAIA,EAAE3Z,QAAU8I,EAAKQ,YAAYoQ,QAAQxZ,UAEtE,OAAa,OAANgP,QAAM,IAANA,OAAA,EAAAA,EAAQxD,SAAUpS,KAG3B,OAAO,IACN,CAACwP,EAAKQ,YAAaiP,EAAQ3F,SAE9B,OACE,kBAACjM,EAAA,EAAD,KACA,kBAACE,EAAA,EAAD,CAAKjG,UAAU,kBAAkBsD,MAAO,CAAEyU,IAAK,OAAQC,OAAQ,IAC7D,kBAAC9R,EAAA,EAAD,CAAKlG,UAAU,YACb,iDAEF,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,gFACb,kBAAC,GAAD,CAAeiR,cAAe,kBAAMkH,EAAqBrL,MACzD,kBAAC,GAAD,OAEF,8BAEA,6BACElN,EACE,oCACA,kBAAC,KAAD,CAAUwC,OAAQ,MAClB,kBAAC,KAAD,CAAUA,OAAQ,OAElB,oCACE,kBAAC,GAAD,CAAe8F,KAAMA,IACrB,kBAAC,GAAD,CAAWqJ,2BAA4BsH,IAAuB1Q,UAAWA,EAAW2E,cAAeA,EAAekM,YAAa9Q,EAAK/I,KAAM8R,cAAe,kBAAMkH,EAAqBrL,IAAgB/D,SAAUb,EAAKQ,aAAeR,EAAKQ,YAAYK,SAAUxH,IAAK2G,EAAK+C,wBAAyBrC,aAAcV,EAAKQ,aAAeR,EAAKQ,YAAYE,oB,UC4OhVqQ,GA/UC,kBACZ,oCACE,iEACA,6BACA,kBAAChT,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CACEC,GAAG,MAEL,kBAACf,EAAA,EAAD,KACE,kBAACa,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKG,GAAG,KACN,kBAACjB,EAAA,EAAKI,MAAN,CAAYsN,UAAU,4BACpB,kBAAC1N,EAAA,EAAKK,MAAN,gBACA,kBAACL,EAAA,EAAKM,QAAN,CAAcqN,GAAG,SAASC,QAAM,GAC9B,+CACA,2DACA,kDACA,+CACA,8CACA,4CAIN,kBAAC9M,EAAA,EAAD,CAAKG,GAAG,KACN,kBAACjB,EAAA,EAAKI,MAAN,CAAYsN,UAAU,4BACpB,kBAAC1N,EAAA,EAAKK,MAAN,gBACA,kBAACL,EAAA,EAAKM,QAAN,CAAcqN,GAAG,SAASC,QAAM,GAC9B,+CACA,4CACA,0CACA,2CAIN,kBAAC9M,EAAA,EAAD,CAAKG,GAAG,IAAIrG,UAAU,QACpB,kBAACuC,EAAA,EAAD,gBAIF,kBAAC2D,EAAA,EAAD,CAAKG,GAAG,IAAIrG,UAAU,QACpB,kBAACkL,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,gBACd,uBAAGiB,UAAU,wBAIlB,IACD,kBAACkL,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,mBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,gBACZ,uBAAGiB,UAAU,+BAS7B,6BACA,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKC,GAAG,MACN,kBAAC+S,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACC,OAAK,GAC3B,+BACE,4BACE,yCACA,uCACA,sCACA,oCACA,uDACA,uCACA,2CAGJ,+BACE,4BACE,oCACA,mDACA,+DACA,kDACA,oDACA,4BACE,kBAAC5Q,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,WAApB,aAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,mCACA,mDACA,2DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,UAApB,SAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,oCACA,mDACA,8DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,QAApB,WAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,oCACA,mDACA,+DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,WAApB,aAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,mCACA,mDACA,2DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,UAApB,SAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,oCACA,mDACA,8DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,QAApB,WAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,oCACA,mDACA,+DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,WAApB,aAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,mCACA,mDACA,2DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,UAApB,SAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,oCACA,mDACA,8DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,QAApB,WAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,oCACA,mDACA,+DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,WAApB,aAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,mCACA,mDACA,2DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,UAApB,SAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,oBAMvB,4BACE,oCACA,mDACA,8DACA,kDACA,oDACA,4BACE,kBAACyI,GAAA,EAAD,CAAO6Q,MAAI,EAACva,QAAQ,QAApB,WAIF,4BACE,kBAACmM,GAAA,EAAD,CAAgBnL,QAAS,kBAACoL,GAAA,EAAD,CAASnJ,GAAG,oBAAZ,iBACvB,0BAAMhC,UAAU,kBACd,kBAACuC,EAAA,EAAD,CAAQxD,QAAQ,UAAUmB,KAAK,MAC7B,uBAAGF,UAAU,0BC7StBI,gBAAQ,kBAAwB,CAAE2R,OAA1B,EAAG2F,iBAAiD,CAAEhB,iBAA9DtW,EAlBA,SAAC,GAA8B,IAA5BsW,EAA2B,EAA3BA,aAAc3E,EAAa,EAAbA,OAEtB7M,EAAaqU,cAAbrU,SAMP,OAJDpF,qBAAW,YACRiS,EAAOC,QAAU0E,MAChB,IAGD,kBAACtR,EAAA,EAAKM,QAAN,eAAcqN,GAAG,SAAS/Q,GAAG,cAAiBkD,EAAS,aAAc,CAAEU,UAAU,KAC/E,4BAAQkF,MAAM,IAAd,uBAEEiH,EAAO7S,KAAK,SAAAqP,GAAK,OAAI,4BAAQiD,IAAK,cAAcjD,EAAMzD,MAAOA,MAAOyD,EAAMzD,OAAQyD,EAAMnP,cCkMlFgB,eAAQ,KAAM,CAACxC,4BAAfwC,EAxMK,SAAC,GAAmE,IAAD,EAAhEoZ,EAAgE,EAAhEA,YAAgE,IAAnDC,oBAAmD,SAA7B7b,EAA6B,EAA7BA,uBAElD8b,EAAe5B,uBAAY,0BAAQ,OAAC0B,QAAD,IAACA,GAAD,UAACA,EAAa9Q,mBAAd,aAAC,EAA0BC,qBAAoB,QAAC6Q,QAAD,IAACA,GAAD,UAACA,EAAa9Q,mBAAd,aAAC,EAA0BC,oBAqB7GgR,EAAc1U,cACZC,EAAmEyU,EAAnEzU,SAAUC,EAAyDwU,EAAzDxU,aAA2B7L,EAA8BqgB,EAA3CC,UAAatgB,OAAUgf,EAAoBqB,EAApBrB,MAAOuB,EAAaF,EAAbE,SAExDvZ,EAAQC,KAAiBzC,MAoD/B,OANAgC,qBAAW,WACTvD,OAAOud,SAAS,EAAG,GAEnBxB,EAtEoB,WACpB,GAAIkB,GAAerK,OAAOsD,KAAK+G,GAAaxH,OAAQ,CAAC,IAC3C1S,EAA0Lka,EAA1Lla,OAAQ0J,EAAkLwQ,EAAlLxQ,gBAAiBC,EAAiKuQ,EAAjKvQ,iBAAkBG,EAA+IoQ,EAA/IpQ,OAAsC2Q,EAAyGP,EAAvI9Q,YAAea,QAAWvH,GAAmBsH,EAA0FkQ,EAA1FlQ,iBAAkBH,EAAwEqQ,EAAxErQ,KADxE,EACgJqQ,EAAlE9Q,YAChI,MAAO,CACLpJ,SACA0J,kBACAC,mBACAG,SACA2Q,aACAzQ,mBACAH,OACAR,kBAVgD,EAC6FA,kBAU7IqR,WAXgD,EACgHA,WAWhKnR,SAZgD,EAC4HA,SAY5KK,IAbgD,EACsIA,MAoEpL+Q,MACL,CAACT,IAGF,kBAAC,IAAiBG,EAEd,kBAACvU,EAAA,EAAD,CAAMC,SAAUF,GArDL,SAAA7I,GACf,IAAMV,EAAM,IAAIyT,IAEfqK,IAAiB9d,EAAIse,OAAOV,EAAY9Q,YAAYC,kBAAmBrM,GAAQV,EAAImP,MAAMzO,IACvFD,MAAM,SAAAsB,GACL2C,EAAMvC,KAAK,CACPC,MAAO,QACPQ,KAAM,yCACNP,KAAM,UACNkc,aAAc,WACPV,IACHnB,EAAM,IACN/b,OAAOud,SAAS,EAAE,GAClBD,EAAS,cAKXJ,IACFld,OAAOud,SAAS,EAAE,GAClBjd,YAAS,qBAAD,OAAsBP,EAAKqM,wBAGxC7L,OAAO,SAAAG,GACN,GAAIA,aAAiBhE,KACnB,OAAO2E,IAGT,IAAI1E,EAAU,oDAEV+D,aAAiB5D,KACnBH,EAAUiW,OAAOqD,OAAOvV,EAAM3D,QAAQub,KAAK,OAClC5X,aAAiBtE,OAC1BO,EAAU+D,EAAM/D,SAGlBoH,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAMtF,EACN+E,KAAM,iBAeN,kBAACmH,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,eACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,SACH3G,KAAK,OACLsK,WAAS,GACLT,EAAS,SAAU,CACrBU,UAAU,MAGftM,EAAOgG,QAAU,kBAACuG,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,wBAEtB,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,yBACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,kBACH3G,KAAK,QACD6J,EAAS,kBAAmB,CAC9BU,UAAU,MAGftM,EAAO0P,iBAAmB,kBAACnD,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,kCAE/B,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,yBACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,mBACH3G,KAAK,QACD6J,EAAS,mBAAoB,CAC/BU,UAAU,MAGftM,EAAO2P,kBAAoB,kBAACpD,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,kCAEhC,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,gBACA,kBAAC,GAAD,MACCnM,EAAOygB,YAAc,kBAAClU,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,yBAE1B,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,eACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,SACH3G,KAAK,SACD6J,EAAS,SAAU,CAAEU,UAAU,MAEtCtM,EAAO8P,QAAU,kBAACvD,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,wBAEtB,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,oBACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,mBACH3G,KAAK,SACD6J,EAAS,mBAAoB,CAAEU,UAAU,MAEhDtM,EAAOgQ,kBAAoB,kBAACzD,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,yBAEhC,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,aACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,OACH3G,KAAK,QACD6J,EAAS,OAAQ,CAAEU,UAAU,MAEpCtM,EAAO6P,MAAQ,kBAACtD,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,sBAEpB,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,6BACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,oBACH3G,KAAK,QACD6J,EAAS,oBAAqB,CAAEU,UAAU,MAEjDtM,EAAOqP,mBAAqB,kBAAC9C,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,sCAEjC,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,cACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,aACH3G,KAAK,QACD6J,EAAS,aAAc,CAAEU,UAAU,MAE1CtM,EAAO0gB,YAAc,kBAACnU,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,uBAE1B,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKyK,MAAN,eACExU,KAAK,SACL2G,GAAG,WACH5C,MAAM,YACF8F,EAAS,eAGnB,kBAACE,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKyK,MAAN,eACExU,KAAK,SACL2G,GAAG,eACH5C,MAAM,gBACF8F,EAAS,mBAGnB,kBAACE,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,YACA,kBAACL,EAAA,EAAKM,QAAN,eACI1D,GAAG,MACH3G,KAAK,QACD6J,EAAS,MAAO,CAAEU,UAAU,MAEnCtM,EAAO4P,KAAO,kBAACrD,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAlC,qBAEnB,kBAACuC,EAAA,EAAD,CAAQlH,KAAK,SAAS0D,QAAQ,WAA9B,gBC5KKqb,GA1BO,WAMpB,OAJAta,qBAAU,WACRvD,OAAOud,SAAS,EAAG,KAClB,IAGD,kBAAC/T,EAAA,EAAD,CAAW/F,UAAU,aACnB,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,qDAEF,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,0DACb,kBAAC,GAAD,QAGJ,6BACA,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,UCcKI,gBAAQ,kBAAwC,CAAEsN,QAA1C,EAAG6B,8BAA8ErH,QAAQ,CAAEiQ,yBAAnG/X,EA/BO,SAAC,GAAsD,IAApD0M,EAAmD,EAAnDA,cAAeY,EAAoC,EAApCA,QAASyK,EAA2B,EAA3BA,qBAQ/C,OALArY,qBAAU,WACRvD,OAAOud,SAAS,EAAG,GACnB3B,EAAqBrL,KACpB,IAGD,kBAAC/G,EAAA,EAAD,CAAW/F,UAAU,aACnB,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,sDAEF,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,0DACb,kBAAC,GAAD,QAGJ,6BACA,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,CACEwZ,YAAa9L,EACb+L,cAAY,U,oBCqBTrZ,I,cAAAA,aALS,SAAC,GAAD,MAA6C,CACnEia,SADsB,EAAGzC,eAEzB1U,SAFsB,EAAmBoX,sBAKH,CAACrD,oBAA1B7W,EA3CU,SAAC,GAA4G,IAAD,EAAzGyO,EAAyG,EAAzGA,QAAS0L,EAAgG,EAAhGA,UAAWC,EAAqF,EAArFA,UAAWC,EAA0E,EAA1EA,UAAWpC,EAA+D,EAA/DA,SAAUqC,EAAqD,EAArDA,YAAaL,EAAwC,EAAxCA,SAAUnX,EAA8B,EAA9BA,SAAU+T,EAAoB,EAApBA,cACvG0D,EAAOC,YAAS,CACpB/L,UAAS9V,KAAM,OAAQ8hB,aAAc,KAEjCC,EAAOF,YAAS,CACpB/L,UAAS9V,KAAM,OAAQ8hB,aAAc,KAL0F,EAQ3Glb,mBAASob,OAAO,UAA/BC,EAR0H,oBA6BjI,OAnBAlb,qBAAW,YACNua,EAASrI,QAAUiF,MACrB,IAKHnX,qBAAU,WAGN,GAFA4a,EAAY,CAAC,OAAQ,OAAQ,UAEE,IAA3BM,EAAYC,KAAKN,GAAiB,OAAOtC,EAAS,OAAQ,CAAEnf,QAAS,6BAEoC0R,IAAzGyP,EAASzM,QAAO,SAAAmL,GAAC,aAAIA,EAAEzZ,UAAF,UAAa4D,EAASgF,YAAtB,aAAa,EAAe5I,WAAQ2S,MAAK,SAAA8G,GAAC,OAAIA,EAAE4B,MAAQA,GAAQ5B,EAAE+B,MAAQA,MAC/FzC,EAAS,OAAQ,CAAEnf,QAAS,wCAGjC,CAACyhB,EAAMG,EAAMT,EAASrI,OAAtB,UAA8B9O,EAASgF,YAAvC,aAA8B,EAAe5I,SAI5C,kBAAC8F,EAAA,EAAKa,IAAN,CAAUjG,UAAU,0BAChB,kBAAC6F,EAAA,EAAD,CAAO9G,QAAW0b,EAAY,SAAW,eAAzC,OAAyDA,QAAzD,IAAyDA,OAAzD,EAAyDA,EAAWvhB,QAApE,KACA,kBAAC2M,EAAA,EAAD,CAAO9G,QAAWwb,EAAY,SAAW,eAAzC,OAAyDA,QAAzD,IAAyDA,OAAzD,EAAyDA,EAAWrhB,QAApE,KACA,kBAAC2M,EAAA,EAAD,CAAO9G,QAAWyb,EAAY,SAAW,eAAzC,OAAyDA,QAAzD,IAAyDA,OAAzD,EAAyDA,EAAWthB,QAApE,UCUGgiB,I,OA5CS,SAAC,GAAoE,IAAnEC,EAAkE,EAAlEA,MAAOC,EAA2D,EAA3DA,SAAUC,EAAiD,EAAjDA,IAAKC,EAA4C,EAA5CA,OAA4C,IAApCC,kBAAoC,MAAvB,GAAuB,MAAnBC,gBAAmB,MAAR,GAAQ,EAEpF1L,EAAQ2L,sBAAY,WAA6C3N,GAA7C,IAAGhD,EAAH,EAAGA,MAAO7K,EAAV,EAAUA,QAAS+B,EAAnB,EAAmBA,GAAIhC,EAAvB,EAAuBA,UAAcX,EAArC,2DACvB,yCAAO2C,GAAIA,EAAIjJ,KAAMiJ,EAAI3G,KAAK,OAAO2E,UAAW,4BAA8BA,EAAW8N,IAAKA,EAAKhD,MAAOA,EAAO7K,QAASA,GAAaZ,OAG1I,OACE,kBAAC+F,EAAA,EAAKa,IAAN,CAAUjG,UAAU,iDAClB,kBAACoF,EAAA,EAAKI,MAAN,CAAYxF,UAAU,qBAClB,kBAACoF,EAAA,EAAKK,MAAN,CAAYiW,QAAQ,oBAApB,UACE,kBAAC,KAAD,CACE1Z,GAAG,mBACHiR,WAAW,aACXa,aAAW,EACXH,OAAO,KACPzQ,SAAUiY,EAAOpN,SAAUqN,EAC3BO,cAAY,EAACC,UAAWT,EAAOU,QAASR,EACxCS,QAAST,EACTtH,gBAAgB,aAChBgI,gBAAgB,gBAChBC,YAAa,kBAAClM,EAAD,QAEhByL,GAAc,kBAAC1V,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAQub,IAE7D,kBAACnW,EAAA,EAAKI,MAAN,CAAYxF,UAAU,qBAClB,kBAACoF,EAAA,EAAKK,MAAN,CAAYiW,QAAQ,kBAApB,OACE,kBAAC,KAAD,CACE1Z,GAAG,iBACHiR,WAAW,aACXa,aAAW,EACXH,OAAO,KACPzQ,SAAUmY,EAAKtN,SAAUuN,EACzBW,YAAU,EAACL,UAAWT,EAAOU,QAASR,EACtCa,QAASf,EACTpH,gBAAgB,aAChBgI,gBAAgB,gBAChBC,YAAa,kBAAClM,EAAD,QAEhB0L,GAAY,kBAAC3V,EAAA,EAAD,CAAO9G,QAAQ,SAASiB,UAAU,QAAQwb,O,SCwKlDW,GAtMI,SAAC,GAA+B,IAAD,IAA5BC,EAA4B,EAA5BA,WAAYxc,EAAgB,EAAhBA,UAAgB,EACdD,mBAAS,MADK,mBACzCic,EADyC,KAC9BS,EAD8B,OAElB1c,mBAAS,MAFS,mBAEzCkc,EAFyC,KAEhCS,EAFgC,KAI1C5C,EAAe5B,uBAAY,oBAAQ,OAACsE,QAAD,IAACA,OAAD,EAACA,EAAYjd,QAAO,QAACid,QAAD,IAACA,OAAD,EAACA,EAAYjd,OAJ1B,EA6B2D8F,cAAnGC,EA7BwC,EA6BxCA,SAAUC,EA7B8B,EA6B9BA,aAA2B7L,EA7BG,EA6BhBsgB,UAAatgB,OAAUuV,EA7BP,EA6BOA,QAASwJ,EA7BhB,EA6BgBA,SAAUkE,EA7B1B,EA6B0BA,SAAU7B,EA7BpC,EA6BoCA,YAAapC,EA7BjD,EA6BiDA,MAE3FhY,EAAQC,KAAiBzC,MA0E/B,OAhCAgC,qBAAW,WACTvD,OAAOud,SAAS,EAAG,GAEnB,IAAMxd,EArEc,WACpB,GAAI8f,GAAyC,GAA3BjN,OAAOsD,KAAK2J,GAAsB,CAAC,IAC3C9c,EAAyF8c,EAAzF9c,OAAQkd,EAAiFJ,EAAjFI,YAAaC,EAAoEL,EAApEK,eAAgBC,EAAoDN,EAApDM,YAAaC,EAAuCP,EAAvCO,OAAQC,EAA+BR,EAA/BQ,2BADhB,EAE/Btd,EAAOmF,MAAM,KAFkB,mBAIlD,MAAO,CACLkW,KALgD,KAMhDG,KANgD,KAOhD0B,cACAC,eAAkBA,EAAiB7d,KAAO6d,QAAkB7R,EAC5D8R,YAAeA,EAAc9d,KAAO8d,QAAe9R,EACnD+R,SACAC,8BAIF,MAAO,CACLjC,KAAM/b,OAAS+b,OACfG,KAAM9E,KAAK6G,MAAMje,OAASke,UAAY,IAmD7B7C,GACb3B,EAAMhc,GAEFA,EAAKmgB,gBACPJ,EAAa,IAAIlJ,KAAK7W,EAAKmgB,iBAGzBngB,EAAKogB,aACPJ,EAAW,IAAInJ,KAAK7W,EAAKogB,gBAG1B,CAACN,IAKJtc,qBAAU,WACRoF,EAAS,iBAAkB,CAAEU,UAAU,IACvCV,EAAS,cAAe,CAAEU,UAAU,MACnC,IAEH9F,qBAAU,WACRyc,EAAS,iBAAkBX,KAC1B,CAACA,IAEJ9b,qBAAU,WACRyc,EAAS,cAAeV,KACvB,CAACA,IAEAjc,EAEA,oCACE,kBAAC,KAAD,CAAUwC,OAAQ,MAClB,kBAAC,KAAD,CAAUA,OAAQ,MAMlB,kBAACgD,EAAA,EAAD,CAAMC,SAAUF,GAlFL,SAAA7I,GACfA,EAAKgD,OAAL,UAAiBhD,EAAKqe,KAAtB,YAA8Bre,EAAKwe,MAE/Bxe,EAAKmgB,iBACPngB,EAAKmgB,eAAiB7d,KAAOtC,EAAKmgB,gBAAgB5d,OAAO,eAGvDvC,EAAKogB,cACPpgB,EAAKogB,YAAc9d,KAAOtC,EAAKogB,aAAa7d,OAAO,eAGrD,IAAMjD,EAAM,IAAIgF,MAEf8Y,IAAiB9d,EAAIse,OAAOkC,EAAWjd,KAAM7C,GAAQV,EAAImP,MAAMzO,IAC7DD,MAAM,WACLiE,EAAMvC,KAAK,CACPC,MAAO,QACPQ,KAAM,0CACNP,KAAM,YAGRpB,YAAS,sBAEZC,OAAO,SAAAG,GACN,IAAI/D,EAAU,gEAEV+D,aAAiB5D,KACnBH,EAAUiW,OAAOqD,OAAOvV,EAAM3D,QACrB2D,aAAiBtE,OAC1BO,EAAU+D,EAAM/D,SAGlBoH,EAAMvC,KAAK,CACTC,MAAO,QACPQ,KAAMtF,EACN+E,KAAM,iBAgDN,kBAACmH,EAAA,EAAKa,IAAN,CAAUjG,UAAU,wCAClB,kBAACoF,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,CAAYiW,QAAQ,QAApB,UACA,kBAACtW,EAAA,EAAKM,QAAN,eACI1D,GAAG,OACH3G,KAAK,UACD6J,EAAS,OAAQ,CACnBU,SAAU,oBACVmX,QAAS,CACPjS,MAAO,QACP5R,QAAS,4BAKrB,kBAACkM,EAAA,EAAKI,MAAN,KACE,yCAEF,kBAACJ,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKK,MAAN,CAAYiW,QAAQ,QAApB,SACA,kBAACtW,EAAA,EAAKM,QAAN,eACEqN,GAAG,SACH/Q,GAAG,OACHhC,UAAU,iBACNkF,EAAS,OAAQ,CACnBU,SAAU,yBAEV,4BAAQkF,MAAM,KAAd,KACA,4BAAQA,MAAM,KAAd,QAIV,kBAAC,GAAD,CACE+D,QAASA,EACTwJ,SAAUA,EACVqC,YAAaA,EACbD,UAAWnhB,EAAOP,KAClBwhB,UAAWjhB,EAAOqhB,KAClBH,UAAWlhB,EAAOwhB,OAapB,kBAAC,GAAD,CACEK,MAAOS,EAAWR,SAAUiB,EAC5BhB,IAAKQ,EAASP,OAAQgB,EACtBf,WAAU,UAAEjiB,EAAOmjB,sBAAT,aAAE,EAAuBvjB,QACnCsiB,SAAQ,UAAEliB,EAAOojB,mBAAT,aAAE,EAAoBxjB,UAEhC,kBAACkM,EAAA,EAAKI,MAAN,CAAYxF,UAAU,QACpB,kBAACoF,EAAA,EAAKyK,MAAN,eACExU,KAAK,SACL2G,GAAG,SACH5C,MAAM,WACNY,UAAU,oBACNkF,EAAS,aAGjB,kBAACE,EAAA,EAAKI,MAAN,KACI,kBAACJ,EAAA,EAAKyK,MAAN,eACExU,KAAK,SACL2G,GAAG,6BACH5C,MAAM,6BACNY,UAAU,oBACNkF,EAAS,iCAGnB,kBAAC3C,EAAA,EAAD,CAAQlH,KAAK,SAAS0D,QAAQ,UAAUmB,KAAK,KAAK0R,OAAK,GAAvD,aChLJjK,GAAa,iBAAO,CAACtM,KAAMZ,MAE3BuiB,GAAU,SAAA5hB,GAAO,MAAK,CAACC,KAAMV,IAA0BS,YAEvD6hB,GAAY,iBAAO,CAAC5hB,KAAMT,MAE1Byd,GAAW,SAAAjd,GAAO,MAAK,CAACC,KAAMX,IAAgCU,YCFrDgF,eAAQ,KAAK,CAAC8c,YDTF,WACzB,OAAO,SAAA/gB,GAAQ,OAAIA,EAAS8gB,SCQf7c,EA3BM,SAAC,GAAqB,IAAnB8c,EAAkB,EAAlBA,YAOtB,OALApd,qBAAU,WACRvD,OAAOud,SAAS,EAAG,GACnBoD,MACC,IAGD,kBAACnX,EAAA,EAAD,CAAW/F,UAAU,aACnB,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,kDAEF,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,0DACb,kBAAC,GAAD,CAAgBsB,KAAK,sBAGzB,6BACA,kBAAC2E,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,YCgBKI,gBALS,SAAC,GAAD,IAAGka,EAAH,EAAGA,mBAAH,MAA6B,CACnDhM,OAAQgM,EAAmBpS,KAC3BiV,OAAQ7C,EAAmB6C,UAGU,CAAEC,cFvCZ,SAACje,GAC5B,8CAAO,WAAOhD,GAAP,eAAAC,EAAA,6DAELD,EAASwL,MAEH/L,EAAM,IAAIgF,KAJX,SAMChF,EAAIsL,IAAI/H,GACX9C,MAAK,SAAAC,GAAI,OAAIH,EAAS6gB,GAAQ1gB,OAC9BQ,OAAM,SAAAC,GACL,IAAI7D,EAAU,gEAEV6D,aAAapE,OACfO,EAAU6D,EAAE7D,SAGdiD,EAASkc,GAASnf,OAfjB,2CAAP,wDEsCakH,EApCM,SAAC,GAA6C,IAA3CjB,EAA0C,EAA1CA,KAAMmP,EAAoC,EAApCA,OAAQ6O,EAA4B,EAA5BA,OAAQC,EAAoB,EAApBA,cAQ5C,OALAtd,qBAAU,WACRvD,OAAOud,SAAS,EAAG,GACnBsD,EAAcje,KACb,IAGD,kBAAC4G,EAAA,EAAD,CAAW/F,UAAU,aACnB,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,mDAEF,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,0DACb,kBAAC,GAAD,CAAgBsB,KAAK,sBAGzB,6BACA,kBAAC2E,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC,GAAD,CACEoc,WAAY9N,EACZ1O,WAAYud,GAAU7O,EAAOnP,OAASA,U,UCanCke,GAvCY,WAAO,IAAD,EAEG1d,oBAAS,GAFZ,mBAExBC,EAFwB,KAEbC,EAFa,KAe/B,OAPAC,qBAAU,WACRF,GACE/C,YAAS,yBACRR,MAAK,kBAAMwD,GAAa,QAE1B,CAACD,IAGF,kBAACsL,GAAA,EAAD,CACEnL,QACE,kBAACoL,GAAA,EAAD,KACC,4DAGH4J,UAAU,UAEV,kBAACxS,EAAA,EAAD,CAAQvC,UAAU,OAAOjB,QAAQ,UAAUkB,QApBxB,WACrBJ,GAAa,KAoBPD,EACE,kBAAC+P,GAAA,EAAD,CAASzP,KAAK,KAAKC,UAAU,SAASpB,QAAQ,UAE9C,0BAAMiB,UAAU,WAAWsD,MAAO,CAAClB,OAAQ,OAAQkb,cAAe,MAAO1a,WAAY,MACnF,uBAAG5C,UAAU,6BAA6BsD,MAAO,CAAEX,SAAU,WAC7D,uBAAG3C,UAAU,yBAAyBsD,MAAO,CAAEX,SAAU,MAAOa,UAAW,QAASC,WAAY,gBC8B/F8Z,GAzDA,CACX,CACIjc,KAAM,oBACNoF,UAAW8W,GACX5W,MAAO,WACPD,SAAU,qBAEd,CACIrF,KAAM,eACNoF,UAAW+W,GACX7W,MAAO,OACPD,SAAU,gBAEd,CACIrF,KAAM,kCACNoF,UAAWgX,GACX9W,MAAO,OACPD,SAAU,gBAEd,CACIrF,KAAM,iBACNoF,UAAWuS,GACXrS,MAAO,OACPD,SAAU,gBAEd,CACIrF,KAAM,cACNoF,UAAW0T,GACXxT,MAAO,OACPD,SAAU,gBAEd,CACIrF,KAAM,iCACNoF,UAAWiX,GACX/W,MAAO,OACPD,SAAU,gBAEd,CACIrF,KAAM,iBACNoF,UCLOtG,aAAQ,kBAAyB,CAAEuX,QAA3B,EAAGC,kBAAmD,CAAEX,oBAAhE7W,EAjCK,SAAC,GAAgC,IAA9BuX,EAA6B,EAA7BA,QAASV,EAAoB,EAApBA,cAU9B,OARAnX,qBAAU,WACRvD,OAAOud,SAAS,EAAG,KAClB,IAEHha,qBAAU,WACRmX,MACC,IAGD,kBAAClR,EAAA,EAAD,CAAWC,MAAM,KAAKhG,UAAU,aAC9B,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,8DACb,wBAAIA,UAAU,aAAd,wBAEF,kBAACkG,EAAA,EAAD,CAAKlG,UAAU,0DACb,kBAAC,GAAD,MACA,kBAAC,GAAD,QAGJ,6BACA,kBAACiG,EAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKlG,UAAU,YACb,kBAAC3B,GAAA,EAAD,CACEY,QAAS0Y,UDcb/Q,MAAO,OACPD,SAAU,gBAEd,CACIrF,KAAM,uBACNoF,UAAWkX,GACXhX,MAAO,OACPD,SAAU,gBAEd,CACIrF,KAAM,uBACNoF,UAAWmX,GACXjX,MAAO,OACPD,SAAU,iBEpCHvG,gBAAQ,SAAAc,GAAK,MAAK,CAAEuB,KAAMvB,EAAMuB,QAAQ,CAACvF,0BAAzCkD,EAnBG,SAAC,GAAoC,IAAlCqC,EAAiC,EAAjCA,KAAMvF,EAA2B,EAA3BA,qBACjB4I,EAAiBrD,EAAjBqD,OAAQrJ,EAASgG,EAAThG,KAahB,OAXAqD,qBAAU,WACR5C,IAEI4I,GACI,OAAJrJ,QAAI,IAAJA,OAAA,EAAAA,EAAMuG,MAAOnG,YAAS,iBAAmBA,YAAS,sBAElDA,YAAS,uBAGZ,IAGD,wCCgBWuD,iBANS,SAAAc,GACtB,MAAO,CACHuB,KAAMvB,EAAMuB,QAIsB,CAAEvF,0BAA3BkD,EAtBF,SAAC,GAAY,IAAXqC,EAAU,EAAVA,KACb,OACI,kBAAC,IAAD,KACE,kBAAC,EAAD,CAAgBnB,KAAK,sBACrB,kBAAC,EAAD,CAAYA,KAAK,iBACjB,kBAAC,EAAD,CAAKA,KAAK,KACR,kBAAC,GAAD,eAAWA,KAAK,UAAamB,IAC5B8a,GAAOre,KAAI,SAAC4e,EAAMC,GAAP,OAAkB,kBAAC,EAAD,eAAcvM,IAAG,gBAAWuM,IAAaD,EAAWrb,a,6DCftFub,EAAe,CACjBvhB,KAAM,GACNqJ,YAAQ8E,EACRtR,OAAQ,I,QCPN0kB,EAAe,CACjBpe,WAAW,EACX3C,OAAO,EACPghB,SAAS,EACT/V,KAAK,GACLC,UAAU,ICLR6V,EAAe,CACnBpe,WAAW,EACX3C,OAAO,EACPghB,SAAS,EACT/V,KAAM,GACNC,UAAW,ICLP6V,EAAe,CACnB/gB,OAAO,EACPkgB,QAAQ,EACRjV,KAAM,ICLF8V,EAAe,CACnB3c,gBAAgB,EAChBrD,MAAO,GACPsD,KAAM,ICDF0c,EAAe,CACnBzP,OAAQ,EACRD,QAAS,EACTD,eAAgB,EAChBI,QAAS,EACTD,QAAS,EACTO,aAAc,EACdxB,MAAO,EACPuB,iBAAkB,GCVdkP,EAAe,GCEfA,EAAe,GCFfA,EAAe,CACnBrP,KAAM,EACNC,YAAa,GACbgH,aAAc,EACd3W,QAAQ,GACRqQ,SAAS,EACTL,QAAQ,CACNZ,cAAc,QACdE,MAAO,QACPD,OAAQ,GACRE,OAAQ,QACRC,OAAQ,QACRC,SAAU,QACV3V,KAAM,GACN8V,QAAS,GACTC,gBAAiB,UCJfoP,EAAcC,YAChB,CACI1b,KTDY,WAAmC,IAAlCvB,EAAiC,uDAAzB8c,EAAcze,EAAW,uCAClD,OAAQA,EAAOlE,MACX,KAAK7B,IACD,OAAO,2BACF0H,GADL,IAEEzE,KAAM8C,EAAOnE,QACb0K,QAAQ,IAEd,KAAKpM,IACH,OAAO,2BACFwH,GADL,IAEE5H,OAAO,eACFiG,EAAOnE,WAGhB,KAAK3B,IACH,MAAO,CACLgD,KAAM,GACNqJ,YAAQ8E,EACRtR,OAAQ,IAEZ,QACI,OAAO4H,ISpBXoH,kBRJyB,WAAmC,IAAlCpH,EAAiC,uDAAzB8c,EAAcze,EAAW,uCACjE,OAAOA,EAAOlE,MACZ,KAAK1B,IACL,OAAO,uCACAuH,GACA3B,EAAOnE,SAFd,IAGIwE,WAAW,EACX3C,OAAO,IAEX,KAAKrD,IACH,OAAO,2BACFsH,GADL,IAEEiH,UAAW,CACTiW,MAAM,YACD7e,EAAOnE,SAEZ6B,MAAO,KACPkX,QAAS,KACT8J,QAAS,QAIf,KAAKlkB,IACH,OAAO,2BACFmH,GADL,IAEEiH,UAAU,2BACLjH,EAAMiH,WADF,IAEPgM,SAAS,EACTlX,OAAO,EACPghB,SAAS,MAIf,KAAKpkB,IACH,OAAO,2BACFqH,GADL,IAEEtB,WAAW,EACX3C,OAAO,IAGT,KAAKnD,IACL,OAAO,2BACFoH,GADL,IAEEiH,UAAU,2BACLjH,EAAMiH,WADF,IAEPgM,SAAS,EACTlX,OAAO,MAGb,QACE,OAAOiE,IQ7CLqO,8BPLqC,WAAoC,IAAnCrO,EAAkC,uDAA1B8c,EAAcze,EAAY,uCAC9E,OAAQA,EAAOlE,MACb,KAAKlB,IACH,kCACK+G,GADL,IAEEtB,WAAW,EACX3C,OAAO,IAEX,KAAK5C,IACH,OAAO,uCACF6G,GACA3B,EAAOnE,SAFZ,IAGEwE,WAAW,EACX3C,OAAO,IAGX,KAAK7C,IACH,kCACK8G,GADL,IAEEtB,WAAW,EACX3C,OAAO,EACP/D,QAASqG,EAAOnE,QAAQlC,UAG9B,KAAKoB,IACH,OAAO,2BACF4G,GADL,IAEEtB,WAAW,EACX3C,OAAO,EACPghB,SAAS,IAGX,QACE,OAAO/c,IO3BLE,ULViB,WAAmC,IAAlCF,EAAiC,uDAAzB8c,EAAcze,EAAW,uCACzD,OAAQA,EAAOlE,MACb,IAAK,aACH,OAAO,uCACF6F,GACA3B,EAAOnE,SAFZ,IAGEiG,gBAAgB,IAGpB,IAAK,aACL,OAAO,2BACFH,GADL,IAEEG,gBAAgB,IAGlB,QACE,OAAOH,IKLLuS,sBJJ6B,WAAmC,IAAlCvS,EAAiC,uDAAzB8c,EAAcze,EAAW,uCACrE,OAAQA,EAAOlE,MAEb,KAAKrB,IACH,OAAO,2BACFkH,GACA3B,EAAOgT,OAGd,QACE,OAAOrR,IILLwW,cHhBqB,WAAmC,IAAlCxW,EAAiC,uDAAzB8c,EAAcze,EAAW,uCAC7D,OAAQA,EAAOlE,MACb,IAAK,gBACH,OAAOkE,EAAOnE,QAEhB,QACE,OAAO8F,IGWL0W,eFfsB,WAAmC,IAAlC1W,EAAiC,uDAAzB8c,EAAcze,EAAW,uCAC9D,OAAQA,EAAOlE,MACb,KAAKd,IACH,OAAOgF,EAAOnE,QAEhB,KAAKZ,IACH,OAAO0G,EAAM0M,QAAQ,SAAAU,GAAM,OAAIA,EAAOnP,OAASI,EAAOnE,WAExD,QACE,OAAO8F,IEOLuW,sBDD6B,WAAmC,IAAlCvW,EAAiC,uDAAzB8c,EAAcze,EAAW,uCACrE,OAAOA,EAAOlE,MACZ,IAAK,4BACH,OAAO,2BACF6F,GACA3B,EAAOnE,SAGd,IAAK,yBACH,OAAO,2BACF8F,GADL,IAEEyN,KAAMpP,EAAOoP,OAGjB,IAAK,gCACH,OAAO,2BACFzN,GACA3B,EAAOnE,SAGd,IAAK,4BACH,OAAO,2BACF8F,GADL,IAEE+N,QAAQ,2BACH/N,EAAM+N,SACN1P,EAAOnE,WAIhB,IAAK,gCACH,OAAO,2BACF8F,GADL,IAEEoO,QAAS/P,EAAOnE,UAGpB,IAAK,wBACH,IAAM8W,EAAWhR,EAAMjC,QAAQ2O,QAAQ,SAAAF,GAAO,OAAIA,EAAQvO,OAASI,EAAOJ,QAC1E,OAAO,2BACF+B,GADL,IAEE0U,aAAc1D,EAASF,OACvB/S,QAAQ,YACHiT,KAIT,QACE,OAAOhR,IC5CLoZ,mBNb0B,WAAoC,IAAnCpZ,EAAkC,uDAA1B8c,EAAcze,EAAY,uCACnE,OAAQA,EAAOlE,MACb,KAAKZ,IACH,kCACKyG,GADL,IAEEic,QAAQ,EACRlgB,OAAO,IAEX,KAAKtC,IACH,OAAO,2BACFuG,GADL,IAEEgH,KAAK,eACA3I,EAAOnE,SAEZ+hB,QAAQ,EACRlgB,OAAO,IAGX,KAAKvC,IACH,kCACKwG,GADL,IAEEic,QAAQ,EACRlgB,OAAO,EACP/D,QAASqG,EAAOnE,UAGpB,KAAKR,IACH,MAAO,CACLqC,OAAO,EACPkgB,QAAQ,EACRjV,KAAM,IAGR,QACE,OAAOhH,MMjBAgd,O,uECzBf,iHAUAvf,EAAOC,OAASyf,EAAQ,IACxB1f,EAAOC,OAAO+U,OAAO,SAErB,IAAM5I,EAAQuT,YAAYJ,IAAa,GAAIK,YAAgBC,MAE3DzT,EAAM5O,SAASiC,eAEfqgB,IAASC,OACP,kBAAC,IAAD,CAAU3T,MAAOA,GACf,kBAAC,IAAD,OAEF8C,SAAS8Q,eAAe,U,wGCrB1BnmB,EAAOC,QAAU,IAA0B,yE,yHCGrC8O,E,iDACFqX,QAAUnhB,I,KACVohB,UAAY,CACR,aAAiB,IACjB,UAAa,IACb,SAAY,IACZ,oBAAuB,IACvB,oBAAuB,K,6FAgBb5X,G,gGAEeA,I,cAAfiI,E,yBAECA,G,mCAEF,KAAEvR,S,6DAIAyJ,KAAK0X,eAAe,KAAEnhB,W,qJAStBA,GAAU,IACb/E,EAAiB+E,EAAjB/E,OAAQ0D,EAASqB,EAATrB,KAEhB,OAAQ1D,GACJ,KAAKwO,KAAKyX,UAAUE,aAChB,MAAM,IAAI9lB,IAAwBqD,EAAKW,YAAS2N,GAEpD,KAAKxD,KAAKyX,UAAUG,UAChB,MAAM,IAAI7lB,IAAuBmD,EAAKpD,SAE1C,KAAKkO,KAAKyX,UAAUI,SAChB,MAAM,IAAI7lB,IAAkBkD,EAAKpD,SAErC,KAAKkO,KAAKyX,UAAUK,oBAChB,MAAM,IAAI7lB,IAAoBiD,EAAKhD,QAEvC,KAAK8N,KAAKyX,UAAUM,oBAChB,MAAM,IAAI5lB,IAA6B+C,EAAKW,OAASX,EAAKpD,cAAW0R,GAGzE,QACI,MAAM,IAAIjS,IAAaC,M,2CAIdwmB,GACjB,OAAOhY,KAAKwX,QAAU,IAAMQ,I,uCAI5B,MAAO,CACHnkB,QAAQ,CACJ,OAAU,mBACV,eAAgB,uB,2CAKI,IAAbokB,EAAY,uDAAJ,GAOvB,OANAlQ,OAAOC,QAAQiQ,GAAOC,SAAQ,YAAoB,IAAD,mBAAjBvmB,EAAiB,KAAX+R,EAAW,UAC/BF,IAAVE,IAAyByU,SAASzU,KAAU,OAACA,QAAD,IAACA,OAAD,EAACA,EAAOkH,iBAC7CqN,EAAMtmB,MAIdsmB,M,KAIA9X,O,wPC1FF0P,EAAgB,WAC3B,8CAAO,WAAO9a,GAAP,iBAAAC,EAAA,sEAGGR,EAAM,IAAIgF,IAHb,KAKa4e,EALb,SAKiC5jB,EAAImM,KAAK,CAAE0X,MAAO,SALnD,mBAKG9H,GALH,cAOHxb,EAASujB,EAAc/H,IAPpB,kDAUHvP,QAAQnL,MAAM,QAAd,MAVG,0DAAP,uDAqBIuiB,EAAe,SAACzX,GAAD,OACnBA,EAAK7I,KAAI,SAACoP,GAAW,MAEUA,EAAOhP,OAAOmF,MAAM,KAAKvF,KAAI,SAAAygB,GAAI,OAAI7mB,OAAO6mB,MAFtD,mBAQnB,OANCrR,EAAOqM,KAFW,KAELrM,EAAOwM,KAFF,KAKnBxM,EAAOlP,MAAQkP,EAAOhP,OACtBgP,EAAOxD,MAAQwD,EAAOsO,2BAA6BlkB,IAAuB4V,EAAOtM,GAE1EsM,MAIEjO,EAAiB,SAAClB,GAC7B,OAAO,SAAChD,GACNA,EAAS,CACPd,KAAMb,IACNY,QAAS+D,MAMTugB,EAAgB,SAAAtkB,GAAO,MAAK,CAAEC,KAAMd,IAAaa,a,oHC9CjDwF,E,qTACSqO,E,+BAAU,GACXhI,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAMmM,IAAI,EAAKC,qBAAqB,YAAa,CAAEtO,OAAQoW,IAA7E,mF,8DAEO7H,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,2KAGCA,G,qFACF2K,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAMyC,KAAK,EAAK2J,qBAAqB,YAAa7K,GAApE,mF,8DAEV8K,KAAKC,QAAQJ,G,0KAGb9H,G,yFACA8H,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAMmM,IAAI,EAAKC,qBAAL,mBAAsChI,KAAlE,mF,8DAEOiI,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,6KAGE6C,EAAM7C,G,qFACT2K,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAMgS,IAAI,EAAK5F,qBAAL,mBAAsChI,IAAS7C,GAA3E,mF,8DAEV8K,KAAKC,QAAQJ,G,+KAGV9H,G,qFACH8H,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAM8F,OAAO,EAAKsG,qBAAL,mBAAsChI,KAArE,mF,8DAEViI,KAAKC,QAAQJ,G,4GAhCFM,KAoCV3G,O,gCCvCf,kCAAO,IAAMnD,EAAUmiB,mHAAYC,mBAAqB,8CACnCrjB,eAAeW,QAAQ,U,oHCEtCtB,E,kNACeH,EAAUC,G,yFACjBsL,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAMyC,KAAK,EAAK2J,qBAAqB,oBAAqB,CAAEzL,WAAUC,aAAxF,mF,8DAEOyL,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,uLAGUZ,EAAUC,G,yFACrBsL,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAMyC,KAAK,EAAK2J,qBAAqB,iCAAkC,CAAEzL,WAAUC,aAArG,mF,8DAEOyL,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,+QAID2K,E,uCAAU,sBAAA7K,EAAA,sEAAkBrB,IAAMmM,IAAI,EAAKC,qBAAqB,oBAAtD,mF,8DAEOC,KAAKC,QAAQJ,G,uBAA5B3K,E,EAAAA,K,kBAEDA,G,2GAtBOiL,KA0BP1L,Q","file":"static/js/main.77b5c6c8.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/solicitud-inscripcion-posgrado.d014658f.pdf\";","export const DEFAULT_PERIOD_VALUE = '';","class ApiException extends Error{\r\n\r\n status = 0\r\n\r\n /**\r\n * Initialize the new `ApiException` instance.\r\n * @param {Number} status The HTTP Status code from the API response.\r\n * @param {...any} params \r\n */\r\n constructor(status = 0, ...params){\r\n super(...params)\r\n\r\n this.status = Number(status);\r\n this.name = \"API Error\";\r\n }\r\n}\r\n\r\nexport default ApiException;","import ApiException from \"./ApiException\";\r\n\r\nclass ExpiredSessionException extends ApiException{\r\n /**\r\n * Initialize the new `ApiException` instance.\r\n * @param {String} message Message from the response.\r\n * @param {...any} params \r\n */\r\n constructor(message = 'La sesión expiró.', ...params){\r\n super(401, message, ...params)\r\n\r\n this.name = \"ExpiredSession\";\r\n }\r\n}\r\n\r\nexport default ExpiredSessionException;","import ApiException from \"./ApiException\";\r\n\r\nclass AuthorizationException extends ApiException{\r\n /**\r\n * Initialize the new `ApiException` instance.\r\n * @param {String} message Message from the response.\r\n * @param {...any} params \r\n */\r\n constructor(message = 'No tiene autorización para realizar esta acción.', ...params){\r\n super(403, message, ...params)\r\n\r\n this.name = \"Authorization\";\r\n }\r\n}\r\n\r\nexport default AuthorizationException;","import ApiException from \"./ApiException\";\r\n\r\nclass NotFoundException extends ApiException{\r\n /**\r\n * Initialize the new `ApiException` instance.\r\n * @param {String} message Message from the response.\r\n * @param {...any} params \r\n */\r\n constructor(message = 'Registro no encontrado.', ...params){\r\n super(404, message, ...params)\r\n\r\n this.name = \"NotFound\";\r\n }\r\n}\r\n\r\nexport default NotFoundException;","import ApiException from \"./ApiException\";\r\n\r\nclass ValidationException extends ApiException{\r\n \r\n errors = {}\r\n\r\n /**\r\n * Initialize the new `ApiException` instance.\r\n * @param {Array} errors Validation errors from the response.\r\n * @param {...any} params \r\n */\r\n constructor(errors, ...params){\r\n super(422, ...params)\r\n\r\n this.name = \"Validation\";\r\n this.errors = errors\r\n }\r\n}\r\n\r\nexport default ValidationException;","import ApiException from \"./ApiException\";\r\n\r\nclass InternalServerErrorException extends ApiException{\r\n /**\r\n * Initialize the new `ApiException` instance.\r\n * @param {String} message Message from the response.\r\n * @param {...any} params \r\n */\r\n constructor(message = 'Hubo problema al realizar la acción. Intente más tarde.', ...params){\r\n super(500, message, ...params)\r\n\r\n this.name = \"InternalServerError\";\r\n }\r\n}\r\n\r\nexport default InternalServerErrorException;","module.exports = __webpack_public_path__ + \"static/media/prorroga.b737d75e.docx\";","module.exports = __webpack_public_path__ + \"static/media/prorroga-posgrado.f083ed43.docx\";","/**\r\n * we suggest using the \"domain/action\" convention for readability.\r\n */\r\n\r\n /** Auth */\r\n export const SET_USER = 'auth/login'\r\n export const UNSET_USER = 'auth/reset'\r\n export const SET_LOGIN_ERROR = 'auth/error'\r\n \r\n /** unenrolled student */\r\n export const SET_STUDENT_INFO = 'student/info'\r\n export const SET_UNENROLLED_STUDENT_DOCUMENTS = 'unenrolledStudent/setDocuments'\r\n export const BEGINNING_REQUEST = 'unenrolledStudent/loading'\r\n export const ERROR_DOCUMENT_REQUEST = 'unenrolledStudent/error'\r\n export const DOCUMENT_UPLOADED = 'unenrolledStudent/uplodingDocument'\r\n\r\n /** export excel document */\r\n export const SET_PARAM = 'exportDocument/setParameter'\r\n\r\n/** modal */\r\n export const SET_SHOW_MODAL = 'modal/show'\r\n export const SET_HIDE_MODAL = 'modal/hide'\r\n\r\n export const SET_UNENROLLED_STUDENT_INFO_LOADING = 'studentUnenrolledInfomation/loading'\r\n export const SET_UNENROLLED_STUDENT_INFO_ERROR = 'studentUnenrolledInfomation/error'\r\n export const SET_UNENROLLED_STUDENT_INFO = 'studentUnenrolledInfomation/setAllInformation'\r\n export const SET_UNENROLLED_STUDENT_INFO_RESET= 'studentUnenrolledInfomation/reset'\r\n\r\n /** periods list */\r\n export const SET_PERIODS = 'periods/setAll'\r\n export const DELETE_PERIOD = 'periods/delete'\r\n\r\n/** selected period */\r\n export const SET_SELECTED_PERIOD_INFO_LOADING = 'selectedPeriodInformation/loading'\r\n export const SET_SELECTED_PERIOD_INFO_ERROR = 'selectedPeriodInformation/error'\r\n export const SET_SELECTED_PERIOD_INFO = 'selectedPeriodInformation/setAllInformation'\r\n export const SET_SELECTED_PERIOD_INFO_RESET= 'selectedPeriodInformation/reset'","import axios from 'axios'\r\n\r\nexport const setAuthorizationToken = (token) => {\r\n if(token ){\r\n axios.defaults.headers.common['Authorization'] = `Bearer ${token}`\r\n } else {\r\n delete axios.defaults.headers.common['Authorization']\r\n }\r\n}","import axios from \"axios\";\r\nimport { SET_USER, UNSET_USER, SET_LOGIN_ERROR } from '../types'\r\nimport { navigate } from \"@reach/router\";\r\nimport { API_URL } from \"../../config\";\r\nimport { setAuthorizationToken } from '../../utils/setAuthorizationToken'\r\nimport Swal from \"sweetalert2\";\r\nimport AuthApi from \"../../api/AuthApi\";\r\nimport { ApiException, ValidationException } from \"../../api/exceptions\";\r\n\r\nconst setUser = (payload) => ({\r\n type: SET_USER,\r\n payload\r\n});\r\n\r\nconst clearAuthentication = () => ({\r\n type: UNSET_USER\r\n});\r\n\r\nconst setErrors = (payload) => ({\r\n type: SET_LOGIN_ERROR,\r\n payload\r\n})\r\n\r\n\r\nexport const loginAdmin = ({ username, password }, redirectTo) => {\r\n const api = new AuthApi();\r\n\r\n return processLogin( () => api.adminLogin(username, password), redirectTo );\r\n};\r\n\r\nexport const loginCandidateRequest = ({username, password}, redirectTo ) => {\r\n const api = new AuthApi();\r\n\r\n return processLogin( () => api.candidateLogin(username, password), redirectTo );\r\n}\r\n\r\nconst processLogin = (loginCallback, redirectTo) => async (dispatch) => {\r\n await loginCallback()\r\n .then((data) => {\r\n window.sessionStorage.user = JSON.stringify(data.user);\r\n window.sessionStorage.token = data.access_token;\r\n\r\n setAuthorizationToken(data.access_token)\r\n dispatch(setUser(data.user));\r\n\r\n })\r\n .then(() => navigate(redirectTo))\r\n .catch((e) => dispatch(handleLoginError(e)));\r\n}\r\n\r\n/**\r\n * Handle an API login error.\r\n * \r\n * @param {Error} e The error.\r\n */\r\nconst handleLoginError = (e) => async (dispatch) => {\r\n let errors = {};\r\n\r\n if (e instanceof ValidationException) {\r\n errors = e.errors;\r\n } else if (e instanceof ApiException) {\r\n errors = { error: e.message };\r\n } else {\r\n errors = { error: 'Hubo un error al procesar la petición. Inténtelo más tarde.' }\r\n }\r\n\r\n dispatch(setErrors(errors));\r\n}\r\n\r\nexport const getUserAuthenticated = () => {\r\n return (dispatch) => {\r\n const user = sessionStorage.getItem('user')\r\n \r\n if(user) {\r\n dispatch(setUser(JSON.parse(user)))\r\n }\r\n\r\n return user;\r\n }\r\n}\r\n\r\nexport const logoutRequest = (type_of_user, redirectTo ) => {\r\n return async (dispatch, getState) => {\r\n try {\r\n await axios.post(`${API_URL}/auth/${type_of_user}/logout`)\r\n sessionStorage.clear()\r\n setAuthorizationToken(false)\r\n dispatch(clearAuthentication())\r\n navigate(redirectTo)\r\n } catch(error) {\r\n if (error?.response?.status === 401 ){\r\n dispatch(handleExpiredAuthState());\r\n } else {\r\n dispatch(setErrors(error.response.data.message))\r\n }\r\n } \r\n }\r\n}\r\n\r\nexport const handleExpiredAuthState = () => {\r\n return dispatch => {\r\n dispatch(resetAuthState())\r\n\r\n Swal.fire({\r\n title: 'La sesión expiró',\r\n icon: 'error',\r\n confirmButtonColor: '#3085d6',\r\n confirmButtonText: 'Aceptar'\r\n })\r\n }\r\n}\r\n\r\nexport const resetAuthState = () => {\r\n return dispatch => {\r\n dispatch(clearAuthentication())\r\n sessionStorage.clear()\r\n }\r\n}\r\n\r\nexport const restoreAuthState = () => {\r\n return dispatch => {\r\n if(sessionStorage.token) {\r\n setAuthorizationToken( sessionStorage.getItem('token') )\r\n dispatch(setUser( JSON.parse(sessionStorage.getItem('user')) ))\r\n } \r\n }\r\n}","module.exports = __webpack_public_path__ + \"static/media/ith-logo.29653b2b.png\";","module.exports = __webpack_public_path__ + \"static/media/tecnm-logo-circle.7caa9e9e.png\";","module.exports = __webpack_public_path__ + \"static/media/aspirantes.79c470a8.png\";","module.exports = __webpack_public_path__ + \"static/media/ITH.563dbd8f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/carta-compromiso-estudiante.777ed978.pdf\";","module.exports = __webpack_public_path__ + \"static/media/solicitud-inscripcion-licenciatura.a33f62d0.pdf\";","module.exports = __webpack_public_path__ + \"static/media/carta-consentimiento-datos-personales.fef03049.pdf\";","import React from 'react'\r\nimport { connect } from 'react-redux';\r\nimport { Badge } from 'react-bootstrap'\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport UpdateButton from './UpdateButton';\r\nimport DeleteButton from './DeleteButton';\r\n\r\n const PeriodsList = ({\r\n records\r\n}) => {\r\n\r\n /** Here are all the columns */\r\n const columns = [\r\n {\r\n dataField: 'nombre',\r\n text: 'Nombre'\r\n },\r\n {\r\n dataField: 'inicio_periodo',\r\n text: 'Fecha de inicio',\r\n formatter: (cell) => !!cell ? global.moment(cell).format('yyyy-MMM-DD').toUpperCase() : 'N/A'\r\n },\r\n {\r\n dataField: 'fin_periodo',\r\n text: 'Fecha de finalización',\r\n formatter: (cell) => !!cell ? global.moment(cell).format('yyyy-MMM-DD').toUpperCase() : 'N/A'\r\n },\r\n {\r\n dataField: 'activo',\r\n text: 'Estatus',\r\n formatter: cell => { cell ? 'Cursando' : 'Inactivo'},\r\n },\r\n {\r\n dataField: 'abierto_para_inscripciones',\r\n text: 'Inscripciones',\r\n formatter: cell => { cell ? 'Abiertas' : 'Cerradas'},\r\n },\r\n {\r\n dataField: 'action',\r\n text: 'Acciones',\r\n }\r\n];\r\n\r\n\r\n /** serialize dataset */\r\n const dataset = records.map( ({\r\n slug,\r\n label,\r\n ...rest\r\n }) => {\r\n return {\r\n nombre: label,\r\n ...rest,\r\n action: (\r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n })\r\n\r\n\r\n\r\n return (\r\n \r\n )\r\n\r\n}\r\n\r\nexport default PeriodsList;\r\n\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Button, OverlayTrigger, Tooltip, Spinner } from 'react-bootstrap'\r\nimport { navigate } from '@reach/router'\r\n\r\nconst UpdateButton = ({ slug }) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const onClickHandler = () => {\r\n setIsLoading(true)\r\n }\r\n\r\n useEffect(() => {\r\n isLoading && (\r\n navigate(`/admin/periodos/${slug}`)\r\n .then(() => setIsLoading(false))\r\n ) \r\n }, [isLoading])\r\n\r\n return (\r\n \r\n Actualizar Información\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default UpdateButton","import React from 'react'\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../../redux/actions/authActions'\r\nimport { deleteFromList } from '../../../redux/actions/periodActions'\r\nimport PeriodsApi from '../../../api/PeriodsApi'\r\nimport { ApiException, ExpiredSessionException } from '../../../api/exceptions'\r\n\r\nconst DeleteButton = ({ slug, nombre, deleteFromList, handleExpiredAuthState }) => {\r\n \r\n const alert = withReactContent(Swal)\r\n\r\n const handleClick = () => {\r\n\r\n /** Trigger dialog */\r\n alert.fire({\r\n title: `¿Desea borrar el periodo ${nombre}?`,\r\n icon: 'warning',\r\n confirmButtonText: 'Si',\r\n showCancelButton: true,\r\n cancelButtonText: 'Cancelar',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (response) => {\r\n\r\n if (response) {\r\n const api = new PeriodsApi();\r\n\r\n api.delete(slug)\r\n .then( \r\n \r\n () => {\r\n deleteFromList(slug)\r\n alert.fire({\r\n title: 'Exito',\r\n text: 'El periodo fue eliminado correctamente',\r\n icon: 'success'\r\n })\r\n },\r\n\r\n error => {\r\n let message = 'Hubo un error al procesar la solicitud. Intente más tarde.';\r\n\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n } else if (error instanceof ApiException) {\r\n message = error.message;\r\n }\r\n\r\n alert.fire({\r\n title: 'Error',\r\n text: message,\r\n icon: 'error'\r\n })\r\n }\r\n\r\n )\r\n }\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n Eliminar\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null, { handleExpiredAuthState, deleteFromList })(DeleteButton)","/** constants */\r\nimport { SET_SHOW_MODAL, SET_HIDE_MODAL } from '../types'\r\n\r\n/** actions creators params [optional] obj, array, str ... */\r\nexport const showModal = (title, path, nss) => {\r\n return dispatch => dispatch(setShowModal({title, path, nss}))\r\n}\r\n\r\nexport const hideModal = () => {\r\n return dispatch => dispatch(setHideModal())\r\n}\r\n\r\n/** params [optional] return obj - {type: str-required, payload:optional} */\r\nconst setShowModal = (payload) => ({ type : SET_SHOW_MODAL, payload })\r\n\r\nconst setHideModal= () => ({ type : SET_HIDE_MODAL })","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Modal, Button } from 'react-bootstrap'\r\nimport { hideModal } from '../../redux/actions/uiActions'\r\nimport { API_URL } from '../../config'\r\n\r\nconst ModalDialog = ({ modal, hideModal}) => {\r\n const { isModalVisible, title, path, nss} = modal\r\n \r\n return (\r\n \r\n \r\n \r\n {title}\r\n {nss && NSS: {nss}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n modal : state.uiReducer\r\n})\r\n\r\nconst mapDispatchToProps = {\r\n hideModal\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ModalDialog)","export const SCHOOL_SERVICES_HEAD = \"Jefe de Departamento de Servicios Escolares\";\r\nexport const POSTGRADUATE_HEAD = \"Jefe de la División de Estudios de Posgrado e Investigación\";\r\n\r\nexport const DEPARTMENT_HEADS = [\r\n SCHOOL_SERVICES_HEAD,\r\n POSTGRADUATE_HEAD\r\n];","import React, { useEffect, useState } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport SideNav, { NavItem, NavIcon, NavText } from '@trendmicro/react-sidenav';\r\nimport { navigate } from '@reach/router'\r\n\r\nimport '@trendmicro/react-sidenav/dist/react-sidenav.css';\r\nimport './SideNav.css';\r\nimport { DEPARTMENT_HEADS } from '../../constants/roles';\r\n\r\nconst SideNavBar = ({ auth }) => {\r\n const { user } = auth;\r\n const iconsStyle = { fontSize: '1.75em', lineHeight: '50px' };\r\n const [isDepartmentHead, setIsDepartmentHead] = useState(false);\r\n\r\n useEffect(() => setIsDepartmentHead(DEPARTMENT_HEADS.includes(user.role)), [user.role]);\r\n\r\n return (\r\n {\r\n navigate(`/${selected}`)\r\n }}\r\n className=\"side-bar\"\r\n >\r\n \r\n { user.role ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Inicio\r\n \r\n \r\n {isDepartmentHead && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Registrar alumno\r\n \r\n \r\n )}\r\n {isDepartmentHead && (\r\n \r\n \r\n \r\n \r\n \r\n Listado de periodos\r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Inicio\r\n \r\n \r\n \r\n )\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n auth: state.auth\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, null)(SideNavBar)","import React from 'react'\r\nimport './NavBar.css'\r\n/** redux */\r\nimport { connect } from 'react-redux'\r\nimport { logoutRequest } from '../../redux/actions/authActions'\r\n\r\nimport { Navbar, Nav, NavDropdown } from 'react-bootstrap'\r\nimport ithLogo from '../../assets/images/ith-logo.png'\r\nimport tecnmLogo from '../../assets/images/tecnm-logo-circle.png'\r\n\r\n\r\nconst NavBar = ({ auth, logoutRequest }) => {\r\n const { user } = auth;\r\n const handlerLogout = () => {\r\n 'inscrito' in user\r\n ? logoutRequest('student', '/aspirantes/login')\r\n : logoutRequest('staff', '/admin/login')\r\n }\r\n return (\r\n <>\r\n \r\n
\r\n \"ith\"\r\n

ITH

\r\n \"tecnm\"\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nconst mapDispatchToProps = (state) => ({\r\n auth: state.auth\r\n})\r\n\r\nconst dispatchStateToProps = {\r\n logoutRequest\r\n}\r\n\r\nexport default connect( mapDispatchToProps, dispatchStateToProps )(NavBar)","import React, { useEffect } from 'react';\r\nimport ModalDialog from '../../components/ModalDialog'\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport './App.css';\r\nimport 'font-awesome/css/font-awesome.css';\r\nimport 'holderjs'\r\nimport 'moment-timezone';\r\n\r\nimport SideNavBar from '../../components/SideNav'\r\nimport NavBar from '../../components/NavBar'\r\nimport { Container } from 'react-bootstrap'\r\nimport { navigate, Redirect, useLocation } from '@reach/router';\r\n\r\nfunction App( props ) {\r\n const origin = props['*'].split('/')[0]\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n pathname === '/' && navigate('/inicio');\r\n }, [pathname]);\r\n\r\n return (\r\n <>\r\n {/** Redirecto to initial component if the path does not match */\r\n // props.path === '/' &&\r\n // \r\n }\r\n
\r\n \r\n
\r\n \r\n {props.children}\r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport { useForm } from 'react-hook-form';\r\nimport { Button, Form, Alert } from \"react-bootstrap\";\r\n\r\nconst LoginForm = ({userLabelName, loginRequest, loginTo, errors}) => {\r\n const { register, handleSubmit } = useForm();\r\n\r\n const onSubmit = (data, event) => {\r\n event.preventDefault()\r\n loginRequest(data, loginTo);\r\n }\r\n return (\r\n
\r\n \r\n {userLabelName}\r\n \r\n \r\n { errors.username && { errors.username[0] }}\r\n \r\n Contraseña\r\n \r\n \r\n { errors.password && { errors.password[0] }}\r\n { errors.error && { errors.error }}\r\n \r\n
\r\n {/* ¿Olvidaste tu contraseña? */}\r\n
\r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","import React, { useEffect } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport LoginForm from '../../../components/LoginForm'\r\nimport img from '../../../assets/images/aspirantes.png'\r\nimport { loginCandidateRequest } from '../../../redux/actions/authActions'\r\nimport { getUserAuthenticated } from '../../../redux/actions/authActions'\r\nimport { navigate } from '@reach/router'\r\n\r\nconst LoginCandidate = ({ auth, loginCandidateRequest, getUserAuthenticated }) => {\r\n const { isAuth, errors, user } = auth\r\n \r\n useEffect(() => {\r\n getUserAuthenticated()\r\n\r\n if (isAuth && 'inscrito' in user) navigate('/aspirantes/inicio');\r\n }, [isAuth])\r\n\r\n return ( \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n

Instituto Tecnológico de Hermosillo

\r\n \r\n \r\n \"ith\"\r\n \r\n \r\n

Aceptados Nuevo Ingreso

\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default connect( state => ({ auth: state.auth }), { loginCandidateRequest, getUserAuthenticated })(LoginCandidate)","import React, { useEffect } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport LoginForm from '../../../components/LoginForm'\r\nimport img from '../../../assets/images/ITH.jpg'\r\nimport { loginAdmin } from '../../../redux/actions/authActions'\r\nimport { getUserAuthenticated } from '../../../redux/actions/authActions'\r\nimport { navigate } from '@reach/router'\r\n\r\nconst LoginAdmin = ({ auth, loginAdmin, getUserAuthenticated }) => {\r\n const { isAuth, user, errors } = auth\r\n \r\n useEffect(() => {\r\n getUserAuthenticated()\r\n\r\n if (isAuth && 'role' in user) navigate('/admin/inicio');\r\n }, [isAuth])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n

Instituto Tecnológico de Hermosillo

\r\n \r\n \r\n \"ith\"\r\n \r\n \r\n

Administración

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default connect(state => ({ auth: state.auth }), {loginAdmin, getUserAuthenticated})(LoginAdmin)","import React from 'react'\r\nimport { Redirect } from '@reach/router'\r\n\r\nexport const PrivateRoute = ({ component : Component, user, isAuth, redirect, field, ...rest }) => {\r\n return (\r\n <>\r\n { isAuth && field in user ?\r\n \r\n :\r\n \r\n }\r\n \r\n )\r\n}","import Api from './Api'\r\nimport axios from 'axios'\r\n\r\nclass OwnEnrollmentDocumentsApi extends Api {\r\n async list(){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`alumnos/inscripcion/documentos`));\r\n \r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async get(documentSlug){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`alumnos/inscripcion/documentos/${documentSlug}`));\r\n\r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async store(documentSlug, data = {}){\r\n const request = async () => await axios.post(this.generateAbsolutePath(`alumnos/inscripcion/documentos/${documentSlug}`), data);\r\n\r\n await this.perform(request);\r\n }\r\n}\r\n\r\nexport default OwnEnrollmentDocumentsApi;","import { SET_STUDENT_INFO, SET_UNENROLLED_STUDENT_DOCUMENTS, ERROR_DOCUMENT_REQUEST, BEGINNING_REQUEST } from '../types'\r\nimport { handleExpiredAuthState } from './authActions'\r\nimport OwnEnrollmentDocumentsApi from '../../api/OwnEnrollmentDocumentsApi';\r\nimport AuthApi from '../../api/AuthApi';\r\n\r\nconst authApi = new AuthApi();\r\nconst enrollmentDocumentsApi = new OwnEnrollmentDocumentsApi();\r\n\r\n/** get all information about a unenrolled student */\r\nexport const getUnenrolledStudentInfo = () => {\r\n return async (dispatch) => {\r\n\r\n dispatch(setLoading())\r\n\r\n try{\r\n\r\n const request = await Promise.all([\r\n authApi.studentInfo(),\r\n enrollmentDocumentsApi.list()\r\n ])\r\n\r\n const [studentInfo, documentsInfo] = request\r\n\r\n const payload = {\r\n info: studentInfo,\r\n documents: documentsInfo\r\n }\r\n\r\n dispatch(setUnenrolledStudentInformation(payload))\r\n\r\n } catch(error) {\r\n if (error?.response?.status === 401 ){\r\n dispatch(handleExpiredAuthState())\r\n } else {\r\n console.log(error.response)\r\n } \r\n }\r\n }\r\n}\r\n\r\nexport const getUnenrolledStudentDocuments = () => {\r\n return async (dispatch) => {\r\n\r\n dispatch({\r\n type: BEGINNING_REQUEST\r\n })\r\n\r\n try {\r\n const data = await enrollmentDocumentsApi.list();\r\n dispatch(setUnenrolledStudentDocuments(data))\r\n } catch(error){\r\n dispatch({\r\n type: ERROR_DOCUMENT_REQUEST\r\n })\r\n }\r\n }\r\n}\r\n\r\nconst setUnenrolledStudentInformation = (payload) => ({\r\n type: SET_STUDENT_INFO,\r\n payload\r\n })\r\n\r\nconst setUnenrolledStudentDocuments = (payload) => ({\r\n type: SET_UNENROLLED_STUDENT_DOCUMENTS,\r\n payload\r\n})\r\n\r\nconst setLoading = () => ({ type: BEGINNING_REQUEST })","import React from 'react'\r\nimport { Card, Row, Col, Badge } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { DEPARTMENT_HEADS } from '../../constants/roles'\r\nimport { getUnenrolledStudentInfo } from '../../redux/actions/unenrolledStudent'\r\n\r\nconst CandidateInfo = ({ auth:{ user }, info }) => {\r\n\r\n return (\r\n \r\n

\r\n Información del Estudiante\r\n

\r\n {\r\n user.role && (\r\n

\r\n No. de Control -\r\n \r\n {\r\n info.inscripcion && info.inscripcion.numero_de_control\r\n }\r\n \r\n

\r\n )\r\n }\r\n {\r\n info.inscripcion && (info.inscripcion.equivalencia === 1 ?
{'Equivalencia'}
: null)\r\n }\r\n {\r\n info.inscripcion && (info.inscripcion.traslado === 1 ?
{'Traslado'}
: null)\r\n }\r\n {\r\n info.inscripcion &&
{info.inscripcion.documentacion === 0 ? 'Listo para revisar' : info.inscripcion.documentacion === 1 ? 'Aprobado y validado' : 'Faltan documentos'}
\r\n }\r\n { \r\n info.inscripcion &&
{info.inscripcion.inscrito ? 'Inscrito' : 'No Inscrito'}
\r\n }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Nombre :\r\n \r\n \r\n { info.nombre }\r\n \r\n \r\n \r\n \r\n Apellidos :\r\n \r\n \r\n {`${info.primer_apellido} ${info.segundo_apellido}`}\r\n \r\n \r\n {\r\n user.role && \r\n \r\n \r\n NIP :\r\n \r\n \r\n { info.inscripcion && info.inscripcion.nip }\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n CURP :\r\n \r\n \r\n {info.curp}\r\n \r\n \r\n \r\n \r\n Correo :\r\n \r\n \r\n {info.correo}\r\n \r\n \r\n { (DEPARTMENT_HEADS.includes(user.role) && info.inscripcion && info.inscripcion.inscrito) ?\r\n \r\n \r\n Inscrito por :\r\n \r\n \r\n
{info.inscripcion.inscrito_por.full_name}
\r\n \r\n
: null\r\n }\r\n \r\n \r\n \r\n \r\n Teléfono :\r\n \r\n \r\n {info.telefono_celular}\r\n \r\n \r\n \r\n \r\n Carrera :\r\n \r\n \r\n { info.inscripcion && info.inscripcion.carrera.nombre}\r\n \r\n \r\n \r\n
\r\n
\r\n
)\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n unenrolledStudent : state.unenrolledStudent,\r\n auth: state.auth\r\n})\r\n\r\nconst dispatchStateToProps = {\r\n getUnenrolledStudentInfo\r\n}\r\n\r\nexport default connect(mapStateToProps, dispatchStateToProps)(CandidateInfo)","import React, { useEffect } from 'react'\r\nimport Holder from 'holderjs'\r\nimport { Card } from 'react-bootstrap'\r\n\r\nexport const DocumentImage = ({ src }) => {\r\n useEffect(() => {\r\n requestAnimationFrame(function () {\r\n Holder.run({\r\n images: '.proj-card-img'\r\n });\r\n });\r\n }, [])\r\n\r\n return (\r\n \r\n )\r\n}","import React from 'react'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Button, Alert, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\nimport { getUnenrolledStudentInfo } from '../../redux/actions/unenrolledStudent'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport { connect } from 'react-redux'\r\nimport OwnEnrollmentDocumentsApi from '../../api/OwnEnrollmentDocumentsApi'\r\nimport { ApiException, ExpiredSessionException, ValidationException } from '../../api/exceptions'\r\n\r\nconst api = new OwnEnrollmentDocumentsApi();\r\n\r\nconst FileButton = ({ setFile, slug, nssRef, getUnenrolledStudentInfo, handleExpiredAuthState }) => {\r\n const MySwal = withReactContent(Swal)\r\n\r\n const handleFile = async () => {\r\n\r\n const AlertValidate = Tamaño máximo de 300Kb, y solo formato PDF.\r\n\r\n await MySwal.fire({\r\n title: 'Selecciona un documento',\r\n input: 'file',\r\n confirmButtonText:'Aceptar',\r\n inputAttributes: {\r\n 'accept': 'application/pdf',\r\n 'aria-label': 'Sube tu documento'\r\n },\r\n html: AlertValidate,\r\n showLoaderOnConfirm: true,\r\n inputValidator: (file) => {\r\n return new Promise((resolve) => {\r\n !file ?\r\n resolve('Seleccione un archivo')\r\n : file.size > 300000\r\n ? resolve('El archivo excede del tamaño solicitado.')\r\n : resolve()\r\n })\r\n },\r\n preConfirm: async (file) => {\r\n const formData = new FormData()\r\n formData.append('documento', file, file.name)\r\n /** This part make reference to NSS input */\r\n nssRef.current !== undefined && formData.append('numero_de_seguro_social',nssRef.current.value)\r\n api.store(slug, formData)\r\n .then( response => {\r\n MySwal.fire({\r\n icon: 'success',\r\n title: 'Documento subido con éxito.'\r\n })\r\n setFile({\r\n aceptado: null\r\n })\r\n getUnenrolledStudentInfo()\r\n }).catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n\r\n let message = 'Hubo un error al procesar la solicitud. Intente más tarde.';\r\n\r\n if (error instanceof ValidationException && error.errors.numero_de_seguro_social) {\r\n message = error.errors.numero_de_seguro_social[0]\r\n } else if (error instanceof ApiException) {\r\n message = error.message;\r\n }\r\n \r\n MySwal.fire({\r\n icon: 'error',\r\n title: message\r\n })\r\n })\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n Subir documento\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null,{ getUnenrolledStudentInfo,handleExpiredAuthState })(FileButton)","import React from 'react'\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { showModal } from '../../redux/actions/uiActions'\r\n\r\nconst ViewButton = ({ path, slug: title, showModal, nss }) => {\r\n return(\r\n \r\n Ver documento\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null,{showModal})(ViewButton)","import React, {useState} from 'react'\r\nimport { Alert } from 'react-bootstrap'\r\n\r\nconst AlertDismissible = ({type = 'danger', title, message, dismiss=true }) => {\r\n const [show, setShow] = useState(true);\r\n\r\n if (show) {\r\n return (\r\n setShow(false)} dismissible={dismiss} className=\"mt-3\">\r\n { title } \r\n

\r\n { message }\r\n

\r\n
\r\n );\r\n } return null\r\n}\r\n\r\nexport default AlertDismissible","import React from 'react'\r\nimport FileButton from '../FileButton'\r\nimport ViewButton from '../ViewButton'\r\nimport AlertDismissible from '../AlertDismissible'\r\n\r\nconst StudentValidateButtons = ({ file, setFile, slug, nssRef = null }) => {\r\n\r\n return (\r\n
\r\n { \r\n !file || file.tiene_documento === false? \r\n : file.aceptado === null ?\r\n (\r\n <>\r\n {' '}\r\n {' '}\r\n \r\n )\r\n : file.aceptado === false ? \r\n (\r\n <>\r\n {' '}\r\n {' '}\r\n {/* */}\r\n \r\n )\r\n : file.aceptado === true && file.pendiente ?\r\n <>\r\n {' '}\r\n {' '}\r\n \r\n \r\n : \r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default StudentValidateButtons","import React from 'react'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst ConfirmButton = ({ apiCallback, setFile, handleExpiredAuthState, documento }) => {\r\n\r\n const MySwal = withReactContent(Swal)\r\n\r\n const handlerConfirm = async () => {\r\n\r\n MySwal.fire({\r\n toast: true,\r\n title:'Espere un momento...',\r\n position: 'top-end',\r\n showConfirmButton: false,\r\n onBeforeOpen: () => MySwal.showLoading()\r\n })\r\n\r\n await apiCallback()\r\n .then( response => {\r\n setFile({...documento, aceptado: true })\r\n MySwal.fire({\r\n toast: true,\r\n icon: 'success',\r\n title:'¡El documento a sido confirmado exitosamente!',\r\n showConfirmButton: false,\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n .catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n\r\n MySwal.fire({\r\n toast: true,\r\n icon: 'error',\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n }\r\n\r\n return (\r\n \r\n Confirmar documento\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null, {handleExpiredAuthState})(ConfirmButton)","import React from 'react'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst RejectButton = ({ apiCallback, setFile, handleExpiredAuthState, documento }) => {\r\n\r\n const handlerComment = async () => {\r\n\r\n const MySwal = withReactContent(Swal)\r\n\r\n /** Alert */\r\n MySwal.fire({ /** config */\r\n title: 'Motivo de rechazo',\r\n input: 'textarea',\r\n showCancelButton: true,\r\n confirmButtonText: 'Enviar',\r\n cancelButtonText: 'Cancelar',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (comments) => {\r\n if(!comments) {\r\n MySwal.showValidationMessage(`Es necesario escribir un comentario`)\r\n return\r\n } \r\n apiCallback(comments)\r\n .then( response => {\r\n setFile({...documento, aceptado: false, observaciones: comments })\r\n MySwal.fire({\r\n toast: true,\r\n icon: 'success',\r\n title:'¡El documento a sido rechazado exitosamente!',\r\n showConfirmButton: false,\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n .catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n \r\n MySwal.fire({\r\n toast: true,\r\n icon: 'error',\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n },\r\n allowOutsideClick: () => !MySwal.isLoading()\r\n })\r\n }\r\n\r\n return (\r\n \r\n Rechazar documento\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null, { handleExpiredAuthState })(RejectButton)","import Api from './Api'\r\nimport axios from 'axios'\r\n\r\nclass EnrollmentDocumentsApi extends Api {\r\n async list(controlNumber){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`inscripcion/${controlNumber}/documentos`));\r\n \r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async get(controlNumber, documentSlug){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`inscripcion/${controlNumber}/documentos/${documentSlug}`));\r\n\r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async accept(controlNumber, documentSlug){\r\n const request = async () => await axios.put(this.generateAbsolutePath(`inscripcion/${controlNumber}/documentos/${documentSlug}/aceptar`));\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async reject(controlNumber, documentSlug, reason){\r\n const request = async () => await axios.put(this.generateAbsolutePath(`inscripcion/${controlNumber}/documentos/${documentSlug}/rechazar`), { observaciones: reason });\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async markAsPending(controlNumber, documentSlug, reason){\r\n const request = async () => await axios.put(this.generateAbsolutePath(`inscripcion/${controlNumber}/documentos/${documentSlug}/marcar-como-pendiente`), { razon: reason });\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async unmarkAsPending(controlNumber, documentSlug){\r\n const request = async () => await axios.put(this.generateAbsolutePath(`inscripcion/${controlNumber}/documentos/${documentSlug}/desmarcar-como-pendiente`));\r\n\r\n await this.perform(request);\r\n }\r\n}\r\n\r\nexport default EnrollmentDocumentsApi;","import React from 'react'\r\nimport ConfirmButton from '../ConfirmButton'\r\nimport ViewButton from '../ViewButton'\r\nimport RejectButton from '../RejectButton'\r\nimport { Badge } from 'react-bootstrap'\r\nimport EnrollmentDocumentsApi from '../../api/EnrollmentDocumentsApi'\r\n\r\nconst api = new EnrollmentDocumentsApi();\r\n\r\nconst AdminValidateButtons = ({ file, slug, controlNumber, setFile, nss }) => {\r\n return (\r\n
\r\n { \r\n !file || 'updated_at' in file === false || file.tiene_documento === false\r\n ? <>\r\n api.accept(controlNumber, slug)} setFile={setFile} documento={file}/>{' '}\r\n api.reject(controlNumber, slug, reason)} setFile={setFile} documento={file}/>\r\n
\r\n Sin subir Documento\r\n
\r\n \r\n : <>\r\n {' '}\r\n api.accept(controlNumber, slug)} setFile={setFile} documento={file}/>{' '}\r\n api.reject(controlNumber, slug, reason)} setFile={setFile} documento={file}/>\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default AdminValidateButtons","import React from 'react'\r\nimport { Badge, Alert } from 'react-bootstrap'\r\n\r\nexport const DocumentLabelStatus = ({ file }) => {\r\n return (\r\n <>\r\n {\r\n file && (\r\n file.aceptado == null \r\n ? En espera \r\n : file.aceptado && file.pendiente\r\n ? Autorizado/Pendiente\r\n : file.aceptado\r\n ? Autorizado\r\n : <>\r\n Rechazado\r\n \r\n
Rechazado
\r\n { file.observaciones }\r\n
\r\n \r\n )\r\n }\r\n \r\n )\r\n}","import React from 'react'\r\nimport Moment from 'react-moment';\r\nimport 'moment/locale/es';\r\n\r\nexport const DocumentDate = ({ date }) => {\r\n\r\n return date && (\r\n \r\n Ultima actualización hace: \r\n \r\n {date}\r\n \r\n \r\n \r\n )\r\n}","import React, {useState, useEffect } from 'react'\r\nimport { Form } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\n\r\nconst MAX_NSS_LENGTH = 11\r\n\r\nconst NssInput = ({ student, nssRef }) => {\r\n const { numero_de_seguro_social } = student.info\r\n const [nss, setNss] = useState('')\r\n \r\n const documento = student.documents.filter( document => document.slug === 'registro-imss')[0]\r\n \r\n useEffect(() => {\r\n setNss(numero_de_seguro_social)\r\n }, [])\r\n\r\n return(\r\n setNss(e.target.value)}\r\n maxLength={MAX_NSS_LENGTH}\r\n disabled={documento.documento && documento.documento.aceptado} \r\n placeholder=\"Número de Seguro Social\"\r\n />\r\n )\r\n}\r\n\r\nexport default connect((state) => ({student: state.unenrolledStudent}))(NssInput)","export const FIELD_TRANSLATIONS = {\r\n documentation: 'documentacion',\r\n period: 'periodo_id',\r\n major: 'carrera_id',\r\n belate: 'tardias',\r\n enroll: 'inscrito',\r\n shifting: 'corrimiento',\r\n page: 'page',\r\n sizePerPage: 'page_size',\r\n name: 'nombre',\r\n control: 'numero_de_control',\r\n date: 'fecha_de_inscripcion',\r\n documentPending: 'tiene_documento_pendiente',\r\n responsible: 'inscrito_por'\r\n}\r\n\r\n/**\r\n * Indicates that a `null` value is to be sent in the API request\r\n * whilst avoiding conflicts regarding the use of `null` or empty\r\n * values throughout the App.\r\n */\r\nexport const USE_API_NULL_VALUE = \"USE_NULL_VALUE\";","import { FIELD_TRANSLATIONS, USE_API_NULL_VALUE } from '../constants/APIFields'\r\n\r\n/**\r\n * Translate the given filters into their API equivalent.\r\n * \r\n * @param {Object} filters The filters list.\r\n * @returns {Object} API filters.\r\n */\r\nconst translateFilters = (filters) => {\r\n let result = {}\r\n \r\n for (let [name, value] of Object.entries(filters)) {\r\n if(value === '' || value === 'Todos' || value === -1) continue\r\n if(value === USE_API_NULL_VALUE) value = '';\r\n\r\n result[FIELD_TRANSLATIONS[name] || name] = value;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport default translateFilters;","import Api from './Api'\r\nimport axios from 'axios'\r\nimport translateFilters from '../utils/translateFilters'\r\n\r\nclass CandidatesApi extends Api {\r\n async list(deleted = false, filters = {}){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`aceptados${deleted ? '/eliminados' : ''}`), { params: translateFilters(filters) });\r\n \r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async store(data){\r\n const request = async () => await axios.post(this.generateAbsolutePath('inscripcion'), data);\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async get(controlNumber){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`inscripcion/${controlNumber}`));\r\n\r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async next(controlNumber){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`inscripcion/${controlNumber}/siguiente`));\r\n\r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async block(controlNumber){\r\n const request = async () => await axios.post(this.generateAbsolutePath(`inscripcion/${controlNumber}/bloquear`));\r\n\r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n\r\n async enroll(controlNumber, data = {}){\r\n const request = async () => await axios.post(this.generateAbsolutePath(`inscripcion/${controlNumber}/inscribir`), data);\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async resendEnrollmentEmail(controlNumber){\r\n const request = async () => await axios.post(this.generateAbsolutePath(`inscripcion/${controlNumber}/reenviar-notificacion-de-inscripcion`));\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async setNss(slug, nss){\r\n const request = async () => await axios.put(this.generateAbsolutePath(`aceptados/${slug}/numero-de-seguro-social`), { numero_de_seguro_social: nss });\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async update(controlNumber, data){\r\n const request = async () => await axios.put(this.generateAbsolutePath(`inscripcion/${controlNumber}`), data);\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async delete(slug){\r\n const request = async () => await axios.delete(this.generateAbsolutePath(`aceptados/${slug}`));\r\n\r\n await this.perform(request);\r\n }\r\n\r\n async restore(slug){\r\n const request = async () => await axios.put(this.generateAbsolutePath(`aceptados/eliminados/${slug}/reactivar`));\r\n\r\n await this.perform(request);\r\n }\r\n}\r\n\r\nexport default CandidatesApi;","import React, {useState, useEffect } from 'react'\r\nimport { Form, Button, Alert, Spinner, Col } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport CandidatesApi from '../../api/CandidatesApi'\r\nimport { ApiException, ExpiredSessionException, ValidationException } from '../../api/exceptions'\r\n\r\nconst api = new CandidatesApi();\r\n\r\nconst MAX_NSS_LENGTH = 11;\r\n\r\nconst NssInput = ({ student, handleExpiredAuthState }) => {\r\n\r\n const { numero_de_seguro_social } = student.info\r\n const [nss, setNss] = useState('')\r\n const [isEnable, setIsEnable] = useState(false)\r\n const [message, setMessage] = useState({ status:'', message: ''})\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const { slug } = student.info\r\n const documento = student.documents.filter( document => document.slug === 'registro-imss')[0]\r\n\r\n const handleSubmit = () => {\r\n\r\n setIsLoading(true)\r\n\r\n api.setNss(slug, nss)\r\n .then( response => {\r\n setMessage({status: 'success', message: 'El número de seguro social se actualizó correctamente.'})\r\n setIsEnable(false)\r\n setIsLoading(false)\r\n } )\r\n .catch( error => {\r\n if(error instanceof ExpiredSessionException){\r\n return handleExpiredAuthState();\r\n }\r\n\r\n let message = 'Hubo un error al procesar la solicitud. Intente más tarde.';\r\n\r\n if (error instanceof ValidationException){\r\n message = error.errors.numero_de_seguro_social[0];\r\n } else if (error instanceof ApiException){\r\n message = error.message;\r\n }\r\n \r\n setMessage({status: 'danger', message: message})\r\n setIsLoading(false)\r\n })\r\n \r\n }\r\n\r\n const handleDisable = () => {\r\n setNss(numero_de_seguro_social)\r\n setIsEnable(false)\r\n }\r\n\r\n useEffect(() => {\r\n setNss(numero_de_seguro_social)\r\n }, [])\r\n\r\nreturn(\r\n
\r\n setNss(e.target.value)} \r\n placeholder=\"Número de Seguro Social\"\r\n disabled={!isEnable}\r\n maxLength={MAX_NSS_LENGTH}\r\n />\r\n {\r\n !isEnable \r\n ?\r\n :<>\r\n \r\n \r\n \r\n }\r\n \r\n {\r\n isLoading \r\n ? \r\n : message.message && (\r\n (\r\n { message.message }\r\n ) \r\n ) \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({student: state.unenrolledStudentSelectedInfo})\r\nconst mapDispatchToProps = { handleExpiredAuthState }\r\n\r\nexport default connect(mapStateToProps,mapDispatchToProps)(NssInput)","import React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Form, Alert } from 'react-bootstrap'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport EnrollmentDocumentsApi from '../../api/EnrollmentDocumentsApi'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst api = new EnrollmentDocumentsApi();\r\n\r\nconst PendingButton = ({ auth, numeroControl, slug, documento, handleExpiredAuthState, setFile }) => {\r\n \r\n const MySwal = withReactContent(Swal)\r\n\r\n const handleClick = (event) => {\r\n\r\n if( documento.pendiente ){\r\n api.unmarkAsPending(numeroControl, slug)\r\n .then( response => {\r\n MySwal.fire({\r\n toast: true,\r\n icon: 'success',\r\n title: '¡Documento desmarcado como pendiente!',\r\n showConfirmButton: false,\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n setFile({...documento, pendiente: false, razon_pendiente: '' })\r\n })\r\n .catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n \r\n MySwal.fire({\r\n toast: true,\r\n icon: 'error',\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n } else {\r\n MySwal.fire({ /** config */\r\n title: 'Pendiente',\r\n input: 'textarea',\r\n showCancelButton: true,\r\n confirmButtonText: 'Enviar',\r\n cancelButtonText: 'Cancelar',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (comments) => {\r\n if(!comments) {\r\n MySwal.showValidationMessage(`Es necesario escribir el motivo`)\r\n return\r\n }\r\n api.markAsPending(numeroControl, slug, comments)\r\n .then( response => {\r\n MySwal.fire({\r\n toast: true,\r\n icon: 'success',\r\n title:'¡Documento pendiente!',\r\n showConfirmButton: false,\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n setFile({ ...documento, pendiente: true, razon_pendiente: comments })\r\n })\r\n .catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n \r\n MySwal.fire({\r\n toast: true,\r\n icon: 'error',\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n },\r\n allowOutsideClick: () => !MySwal.isLoading()\r\n })\r\n }\r\n\r\n\r\n };\r\n\r\n\r\n return (\r\n\r\n <> \r\n
\r\n
\r\n {\r\n auth.user.role && documento && documento.aceptado === true && (\r\n \r\n \r\n Marcar como pendiente\r\n \r\n )\r\n }\r\n {\r\n documento && documento.pendiente ? (\r\n \r\n
Pendiente
\r\n

\r\n { documento.razon_pendiente }\r\n

\r\n
\r\n ) : null \r\n }\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n auth : state.auth\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, {handleExpiredAuthState})(PendingButton)","import React from 'react'\r\nimport { Alert } from 'react-bootstrap'\r\nimport carta from '../../assets/files/Carta-compromiso-de-entrega-de-Certificado.docx'\r\nimport prorroga from '../../assets/files/prorroga.docx'\r\nimport prorrogaPosgrado from '../../assets/files/prorroga-posgrado.docx'\r\nimport contratoEstudiante from '../../assets/files/carta-compromiso-estudiante.pdf'\r\nimport solicitudInscripcionMaestria from '../../assets/files/solicitud-inscripcion-posgrado.pdf'\r\nimport solicitudInscripcionDoctorado from '../../assets/files/solicitud-inscripcion-posgrado.pdf'\r\nimport solicitudInscripcionLicenciatura from '../../assets/files/solicitud-inscripcion-licenciatura.pdf'\r\nimport cartaConsentimientoDatosPersonales from '../../assets/files/carta-consentimiento-datos-personales.pdf'\r\n\r\nconst DocumentMessages = ({ slug, equivalencia }) => {\r\n\r\n switch (slug) {\r\n case 'solicitud-de-inscripcion':\r\n return (\r\n \r\n Descarga la Solicitud de Inscripción aqui y llénala. Asegúrate de llenar todos los datos que se piden y súbela en este apartado. No se te olvide llenar la fecha y firmar el documento.\r\n \r\n )\r\n\r\n case 'solicitud-de-inscripcion-maestria':\r\n return (\r\n \r\n Descarga la Solicitud de Inscripción aqui y llénala. Asegúrate de llenar todos los datos que se piden y súbela en este apartado. No se te olvide llenar la fecha y firmar el documento.\r\n \r\n )\r\n\r\n case 'solicitud-de-inscripcion-doctorado':\r\n return (\r\n \r\n Descarga la Solicitud de Inscripción aqui y llénala. Asegúrate de llenar todos los datos que se piden y súbela en este apartado. No se te olvide llenar la fecha y firmar el documento.\r\n \r\n )\r\n\r\n case 'carta-de-consentimiento-para-el-tratamiento-de-datos-personales':\r\n return (\r\n \r\n Descarga la Carta de consentimiento para el tratamiento de datos personales aqui y llénala. Asegúrate de llenar todos los datos que se piden y súbela en este apartado. No se te olvide llenar la fecha y firmar el documento.\r\n \r\n )\r\n\r\n case 'contrato-con-el-estudiante':\r\n return (\r\n \r\n Descarga la Carta compromiso con el Estudiante aqui y llénala. Asegúrate de llenar todos los datos que se piden y súbela en este apartado. No se te olvide llenar la fecha y firmar el documento.\r\n \r\n )\r\n\r\n case 'forma-fm9':\r\n return (\r\n \r\n Opcional. En caso de ser extranjero es obligatorio que subas la Forma FM9.\r\n \r\n )\r\n\r\n case 'fotografia':\r\n return (\r\n \r\n Opcional. Ya no es obligatorio que proporciones tu fotografía.\r\n \r\n )\r\n\r\n case 'kardex-de-preparatoria':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Certificado de Bachillerato es obligatorio que subas aqui tu Kárdex de Preparatoria.\r\n \r\n )\r\n\r\n case 'kardex-de-licenciatura':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Certificado de Licenciatura es obligatorio que subas aquí tu Kárdex de Licenciatura.\r\n \r\n )\r\n\r\n case 'kardex-de-maestria':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Certificado de Maestría es obligatorio que subas aquí tu Kárdex de Maestría y lo indiques en la Carta Compromiso.\r\n \r\n )\r\n\r\n case 'constancia-de-estudios':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Certificado de Bachillerato es obligatorio que subas aqui tu Constancia de Estudios.\r\n \r\n )\r\n\r\n case 'certificado-de-bachillerato':\r\n return (\r\n \r\n En caso de no contar con el Certificado de Bachillerato sigue los siguientes pasos:\r\n
    \r\n
  1. Descarga la Prorroga aqui y llénala.
  2. \r\n
  3. Guarda la Prorroga como PDF y súbela en este apartado.
  4. \r\n
  5. Sube tu Constancia de Estudios en el apartado correspondiente.
  6. \r\n
  7. Sube tu Kárdex de Preparatoria en el apartado correspondiente.
  8. \r\n
\r\n
\r\n )\r\n\r\n case 'certificado-de-licenciatura':\r\n return (\r\n \r\n En caso de no contar con el Certificado de Licenciatura, Título Profesional y/o Cédula Profesional sigue los siguientes pasos:\r\n
    \r\n
  1. Descarga la Prorroga aqui y llénala. RECUERDA INDICAR TODOS LOS DOCUMENTOS A DEBER.
  2. \r\n
  3. Guarda la Prorroga como PDF y súbela en este apartado.
  4. \r\n
  5. Sube tu Kárdex de Licenciatura en el apartado correspondiente.
  6. \r\n
\r\n
\r\n )\r\n\r\n case 'certificado-de-maestria':\r\n return (\r\n \r\n En caso de no contar con el Certificado de Maestría, Título de Grado y/o Cédula Profesional sigue los siguientes pasos:\r\n
    \r\n
  1. Descarga la Prorroga aqui y llénala. RECUERDA INDICAR TODOS LOS DOCUMENTOS A DEBER.
  2. \r\n
  3. Guarda la Prorroga como PDF y súbela en este apartado.
  4. \r\n
  5. Sube tu Kárdex de Maestría en el apartado correspondiente.
  6. \r\n
\r\n
\r\n )\r\n\r\n case 'titulo-profesional':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Título Profesional es necesario que lo indiques en la Carta Compromiso.\r\n \r\n )\r\n\r\n case 'cedula-profesional':\r\n return (\r\n \r\n Opcional. En caso de no contar con la Cédula Profesional es necesario que lo indiques en la Carta Compromiso.\r\n \r\n )\r\n\r\n case 'dictamen-de-revalidacion':\r\n return (\r\n \r\n Opcional. En caso de ser extranjero es obligatorio que subas el Dictamen de Revalidación.\r\n \r\n )\r\n\r\n case 'certificado-medico':\r\n return (\r\n \r\n En caso de no contar con el Certificado Médico sigue los siguientes pasos:\r\n
    \r\n
  1. Descarga la Prorroga aqui y llénala indicando en OTRO el Certificado Médico.
  2. \r\n
  3. Guarda la Prorroga como PDF y súbela en este apartado.
  4. \r\n
\r\n
\r\n )\r\n case 'titulo-de-grado':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Título de Grado es necesario que lo indiques en la Carta Compromiso.\r\n \r\n )\r\n\r\n case 'pago-de-formato-sat-no-5':\r\n return equivalencia ? (<>) : (\r\n \r\n Opcional. En caso de ser extranjero es obligatorio que subas el Pago de Formato SAT NO.5.\r\n \r\n )\r\n\r\n case 'analisis-tecnico':\r\n return equivalencia ? (<>) : (\r\n \r\n Opcional. En caso de ser extranjero es obligatorio que subas el Análisis Técnico.\r\n \r\n )\r\n\r\n case 'certificado-parcial-de-licenciatura':\r\n return (\r\n \r\n En caso de no contar con el Certificado Parcial de Licenciatura sigue los siguientes pasos:\r\n
    \r\n
  1. Descarga la Prorroga aqui y llénala indicando en OTRO el Certificado Parcial de Licenciatura.
  2. \r\n
  3. Guarda la Prorroga como PDF y súbela en este apartado.
  4. \r\n
  5. Sube tu Constancia de Certificado Parcial de Licenciatura en Trámite en el apartado correspondiente.
  6. \r\n
  7. Sube tu Kárdex Parcial de Licenciatura en el apartado correspondiente.
  8. \r\n
\r\n
\r\n )\r\n\r\n case 'constancia-de-certificado-parcial-de-licenciatura-en-tramite':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Certificado Parcial de Licenciatura es obligatorio que subas aquí tu Constancia de Certificado Parcial de Licenciatura en Trámite.\r\n \r\n )\r\n\r\n case 'kardex-parcial-de-licenciatura':\r\n return (\r\n \r\n Opcional. En caso de no contar con el Certificado Parcial de Licenciatura es obligatorio que subas aquí tu Kárdex Parcial de Licenciatura.\r\n \r\n )\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport default DocumentMessages","import React, { useEffect, useState, useRef } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { Card, Form, Alert } from 'react-bootstrap'\r\nimport { DocumentImage } from '../DocumentImage'\r\nimport StudentValidateButtons from '../StudentValidateButtons'\r\nimport AdminValidateButtons from '../AdminValidateButtons'\r\nimport { DocumentLabelStatus } from '../DocumentLabelStatus'\r\nimport { DocumentDate } from '../DocumentDate'\r\nimport NssInput from '../NssInput'\r\nimport NssInputAdmin from '../NssInputAdmin'\r\nimport PendingButton from '../PendingButton'\r\nimport DocumentMessages from '../DocumentMessages'\r\n\r\n\r\n const Document = (props) => {\r\n const { auth, documento, nombre, slug, controlNumber, nss, equivalencia } = props\r\n const { user } = auth\r\n\r\n const nssRef = useRef()\r\n\r\n const [file, setFile] = useState({\r\n aceptado: null,\r\n observaciones: '',\r\n updated_at: '',\r\n pendiente: false,\r\n razon_pendiente: ''\r\n })\r\n\r\n useEffect( () => {\r\n setFile(documento)\r\n }, [])\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {nombre}\r\n \r\n { 'inscrito' in user && }\r\n { user.role && }\r\n \r\n \r\n {\r\n slug === 'registro-imss' && \r\n !user.role && \r\n (\r\n \r\n \r\n \r\n Favor de capturar su Número de Seguro Social antes de subir el documento. En caso de no coincidir su documentación será rechazada. Para tramitar tu registro ante el IMMS, da clic aquí y sube el registro en este apartado.\r\n \r\n \r\n ) \r\n }\r\n { /** input fiel for admin user */\r\n user.role && slug === 'registro-imss' && documento &&\r\n }\r\n {\r\n !user.role && \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n// href=\"http://ith.mx/documentos/ITH-AC-PO-001-02%20SOLICITUD%20DE%20INSCRIPCION.pdf\r\nconst mapStateToProps = state => ({\r\n auth : state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, null)(Document)\r\n","import React, {useState} from 'react'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Button, OverlayTrigger, Tooltip, Form } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport CandidatesApi from '../../api/CandidatesApi'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst api = new CandidatesApi();\r\n\r\nconst EnrollButton = ({ controlNumber, handleExpiredAuthState, updateHandler }) => {\r\n\r\n const [tardias, setTardias] = useState(false)\r\n\r\n const MySwal = withReactContent(Swal)\r\n\r\n const handlerConfirm = async () => {\r\n\r\n MySwal.fire({\r\n title: '¿Desea inscribir al alumno?',\r\n icon: 'info',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'Si',\r\n cancelButtonText: 'No',\r\n preConfirm: (response) => {\r\n response && api.enroll(controlNumber, { tardias: tardias })\r\n .then( response => {\r\n Swal.fire(\r\n 'Confirmado',\r\n '¡El alumno a sido inscrito correctamente!',\r\n 'success'\r\n ).then(() => {\r\n updateHandler();\r\n })\r\n })\r\n .catch((error) => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n\r\n Swal.fire(\r\n 'Oops...',\r\n (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n 'error'\r\n )\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n \r\n ¿Inscripción Tardia?\r\n setTardias(!tardias)}/>\r\n \r\n \r\n Inscribir aspirante\r\n \r\n }\r\n >\r\n \r\n Inscribir{' '}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null, {handleExpiredAuthState})(EnrollButton)","import React from 'react'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport CandidatesApi from '../../api/CandidatesApi'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst api = new CandidatesApi();\r\n\r\nconst EnrollEmailButton = ({ controlNumber, handleExpiredAuthState }) => {\r\n\r\n const MySwal = withReactContent(Swal)\r\n\r\n const handlerConfirm = async () => {\r\n\r\n MySwal.fire({\r\n toast: true,\r\n title:'Espere un momento...',\r\n position: 'top-end',\r\n showConfirmButton: false,\r\n onBeforeOpen: () => MySwal.showLoading()\r\n })\r\n\r\n await api.resendEnrollmentEmail(controlNumber)\r\n .then( response => {\r\n MySwal.fire({\r\n toast: true,\r\n icon: 'success',\r\n title:'¡El correo ha sido enviado exitosamente!',\r\n showConfirmButton: false,\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n .catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n\r\n MySwal.fire({\r\n toast: true,\r\n icon: 'error',\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n position: 'top-end',\r\n timer: 3000,\r\n timerProgressBar: true,\r\n })\r\n })\r\n }\r\n\r\n return (\r\n \r\n Enviar Correo de Inscripción\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null, {handleExpiredAuthState})(EnrollEmailButton)","import React, { useState, useEffect } from 'react'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Button, OverlayTrigger, Tooltip, Spinner } from 'react-bootstrap'\r\nimport { navigate } from '@reach/router'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport CandidatesApi from '../../api/CandidatesApi'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst api = new CandidatesApi();\r\n\r\nconst NextStudentButton = ({ controlNumber }) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const alert = withReactContent(Swal)\r\n\r\n const handleBlockedStatus = () => {\r\n setIsLoading(true)\r\n }\r\n\r\n useEffect(() => {\r\n isLoading && (\r\n api.next(controlNumber)\r\n .then( data => {\r\n navigate(`/admin/documentos/${data}`);\r\n })\r\n .catch( error => {\r\n if(error instanceof ExpiredSessionException){\r\n return handleExpiredAuthState();\r\n }\r\n \r\n alert.fire({\r\n toast: true,\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n showConfirmButton: false,\r\n timer: 4000,\r\n timerProgressBar: true,\r\n icon: 'error',\r\n position: 'top-end'\r\n })\r\n setIsLoading(false)\r\n })\r\n )\r\n \r\n }, [isLoading])\r\n\r\n return (\r\n \r\n Siguiente Alumno\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null,{ handleExpiredAuthState })(NextStudentButton)","import React from 'react'\r\nimport { Card, Row, Col } from 'react-bootstrap'\r\nimport Document from '../Document'\r\nimport EnrollButton from '../EnrollButton'\r\nimport EnrollEmailButton from '../EnrollEmailButton'\r\nimport NextStudentButton from '../NextStudentButton'\r\nimport { connect } from 'react-redux'\r\n\r\nconst Documents = ({ auth, documents, controlNumber, updateHandler, inscrito, nss, equivalencia, allowEnrollmentStateToggle = false }) => {\r\n return (\r\n \r\n \r\n \r\n
Documentos
\r\n \r\n \r\n { \r\n auth.user.role && !inscrito ? (\r\n allowEnrollmentStateToggle && updateHandler()} controlNumber={controlNumber} />\r\n ) : auth.user.role ? (\r\n \r\n ) : null\r\n }\r\n { \r\n auth.user.role && (\r\n \r\n )\r\n }\r\n \r\n
\r\n \r\n \r\n {\r\n documents.map((document, key) => (\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth : state.auth\r\n})\r\n\r\nexport default connect(mapStateToProps, null)(Documents)","import React from 'react'\r\nimport AlertDismissible from '../AlertDismissible'\r\nimport { Alert } from 'react-bootstrap'\r\n\r\nconst StudentNews = ({info : { inscripcion }}) => {\r\n return <>\r\n { !inscripcion ? null \r\n :inscripcion.documentacion == true && !inscripcion.tiene_documento_rechazado || inscripcion.documentacion == false && !inscripcion.tiene_documento_rechazado\r\n ? \r\n : inscripcion.documentacion == false || inscripcion.documentacion == null && inscripcion.tiene_documento_rechazado\r\n ? \r\n : inscripcion.documentacion == null \r\n && \r\n }\r\n {\r\n \r\n
¿TIENES PROBLEMAS PARA VER LOS CAMBIOS REFLEJADOS?
\r\n

EN CASO DE QUE NO VEAS LOS CAMBIOS REFLEJADOS AL VOLVER SUBIR UN DOCUMENTO, LIMPIA LA CACHE DE TU NAVEGADOR O PULSA CTRL + F5 PARA ACTUALIZAR LA PÁGINA.

\r\n
\r\n }\r\n \r\n}\r\n\r\n\r\nexport default StudentNews","import React, { useEffect } from \"react\";\r\nimport { connect } from 'react-redux'\r\nimport { getUnenrolledStudentInfo } from '../../../redux/actions/unenrolledStudent'\r\nimport { Col, Container, Row } from \"react-bootstrap\";\r\nimport CandidateInfo from \"../../../components/CandidateInfo\";\r\nimport Documents from '../../../components/Documents'\r\nimport StudentNews from '../../../components/StudentNews'\r\nimport Skeleton from 'react-loading-skeleton'\r\n\r\nconst UnenrolledStudentHome = ({ student, getUnenrolledStudentInfo}) => {\r\n\r\n const { documents, info, isLoading } = student\r\n useEffect(() => {\r\n getUnenrolledStudentInfo()\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n

Documentos a entregar

\r\n \r\n
\r\n
\r\n {\r\n isLoading \r\n ? \r\n : info.inscripcion && !info.inscripcion.inscrito && \r\n }\r\n \r\n \r\n {\r\n isLoading \r\n ? \r\n : \r\n }\r\n \r\n \r\n \r\n \r\n {\r\n isLoading \r\n ? \r\n : \r\n }\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n student: state.unenrolledStudent\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = {\r\n getUnenrolledStudentInfo\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UnenrolledStudentHome)\r\n","import CandidatesApi from '../../api/CandidatesApi'\r\nimport { ExpiredSessionException } from '../../api/exceptions'\r\nimport { handleExpiredAuthState } from './authActions'\r\n\r\nexport const requestUpdateCandidateList = (deleted, params) => async dispatch => {\r\n\r\n const api = new CandidatesApi();\r\n\r\n await api.list(deleted, params)\r\n .then(response => {\r\n let data, total\r\n if ('data' in response) {\r\n data = response.data\r\n total = response.total\r\n } else {\r\n data = response\r\n total = data.length\r\n }\r\n\r\n dispatch({\r\n type: 'candidatesList/updateList',\r\n payload: {\r\n totalRecords: total,\r\n records: data\r\n }\r\n })\r\n })\r\n .catch(error => {\r\n if (error instanceof ExpiredSessionException) {\r\n dispatch(handleExpiredAuthState());\r\n }\r\n\r\n console.log(error);\r\n })\r\n}\r\n\r\nexport const setPage = (page) => {\r\n return (dispatch) => {\r\n dispatch({\r\n type: 'candidatesList/setPage',\r\n page\r\n })\r\n }\r\n}\r\n\r\nexport const setSizePerPage = (sizePerPage) => {\r\n return (dispatch) => {\r\n dispatch({\r\n type: 'candidatesList/setSizePerPage',\r\n payload: {\r\n sizePerPage,\r\n page: 1\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport const setFilters = (filter) => {\r\n return (dispatch) => {\r\n dispatch({\r\n type: 'candidatesList/setFilters',\r\n payload: filter\r\n })\r\n }\r\n}\r\n\r\nexport const setListDeleted = (value) => {\r\n return (dispatch) => {\r\n dispatch({\r\n type: 'candidatesList/setListDeleted',\r\n payload: !!JSON.parse(value)\r\n })\r\n }\r\n}\r\n\r\nexport const deleteFromList = (slug) => {\r\n return (dispatch) => {\r\n dispatch({\r\n type: 'candidatesList/delete',\r\n slug\r\n })\r\n }\r\n}","import React from 'react'\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport { deleteFromList } from '../../redux/actions/candidatesListActions'\r\nimport CandidatesApi from '../../api/CandidatesApi'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst api = new CandidatesApi();\r\n\r\nconst UnsubscribeButton = ({ slug, deleteFromList, handleExpiredAuthState }) => {\r\n \r\n const alert = withReactContent(Swal)\r\n\r\n const handleClick = () => {\r\n\r\n /** Trigger dialog */\r\n alert.fire({\r\n title: `¿Desea dar de baja al estudiante con el número de control ${slug}?`,\r\n icon: 'warning',\r\n confirmButtonText: 'Si',\r\n showCancelButton: true,\r\n cancelButtonText: 'Cancelar',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (response) => {\r\n\r\n if(response) {\r\n api.delete(slug)\r\n .then( response => {\r\n deleteFromList(slug)\r\n alert.fire({\r\n title: 'Exito',\r\n text: 'El alumno se dio de baja correctamente',\r\n icon: 'success'\r\n })\r\n })\r\n .catch( error => {\r\n if(error instanceof ExpiredSessionException){\r\n return handleExpiredAuthState();\r\n }\r\n\r\n alert.fire({\r\n title: 'Error',\r\n text: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n icon: 'error'\r\n })\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n Dar de baja\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null, { handleExpiredAuthState, deleteFromList })(UnsubscribeButton)","import React, { useState, useEffect } from 'react'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Button, OverlayTrigger, Tooltip, Spinner } from 'react-bootstrap'\r\nimport { navigate } from '@reach/router'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport CandidatesApi from '../../api/CandidatesApi';\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst api = new CandidatesApi();\r\n\r\nconst DetailsButton = ({ controlNumber, handleExpiredAuthState }) => {\r\n\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const alert = withReactContent(Swal)\r\n\r\n const handleBlockedStatus = () => {\r\n setIsLoading(true)\r\n }\r\n\r\n useEffect(() => {\r\n isLoading && (\r\n api.block(controlNumber)\r\n .then( response => navigate(`/admin/documentos/${controlNumber}`))\r\n .catch( error => {\r\n if(error instanceof ExpiredSessionException){\r\n return handleExpiredAuthState();\r\n }\r\n\r\n alert.fire({\r\n toast: true,\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n showConfirmButton: false,\r\n timer: 4000,\r\n timerProgressBar: true,\r\n icon: 'error',\r\n position: 'top-end'\r\n })\r\n setIsLoading(false)\r\n })\r\n )\r\n \r\n }, [isLoading])\r\n\r\n return (\r\n \r\n Ver Documentación\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect(null,{ handleExpiredAuthState })(DetailsButton)","import React from 'react'\r\nimport { Button } from 'react-bootstrap'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { connect } from 'react-redux'\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport { deleteFromList } from '../../redux/actions/candidatesListActions'\r\nimport CandidatesApi from '../../api/CandidatesApi'\r\nimport { ApiException, ExpiredSessionException } from '../../api/exceptions'\r\n\r\nconst api = new CandidatesApi();\r\n\r\nconst EnableStudentButton = ({ slug, deleteFromList, handleExpiredAuthState }) => {\r\n\r\n const alert = withReactContent(Swal)\r\n\r\n const handleClick = () => {\r\n alert.fire({\r\n title: `¿Desea dar de alta al estudiante?`,\r\n icon: 'info',\r\n confirmButtonText: 'Si',\r\n showCancelButton: true,\r\n cancelButtonText: 'Cancelar',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (response) => {\r\n if(response) {\r\n api.restore(slug)\r\n .then( response => {\r\n deleteFromList(slug)\r\n alert.fire({\r\n title: 'Exito',\r\n text: 'El alumno se dio de alta correctamente',\r\n icon: 'success'\r\n })\r\n })\r\n .catch( error => {\r\n if(error instanceof ExpiredSessionException){\r\n return handleExpiredAuthState();\r\n }\r\n\r\n alert.fire({\r\n title: 'Error',\r\n text: (error instanceof ApiException) ? error.message : 'Hubo un error al procesar la solicitud. Intente más tarde.',\r\n icon: 'error'\r\n })\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect(null, {handleExpiredAuthState, deleteFromList})(EnableStudentButton)\r\n\r\n","import React from 'react'\r\nimport { Link as LinkRouter } from '@reach/router'\r\nimport './Link.css'\r\n\r\nexport const Link = ({ children, to, variant=\"primary\" }) => (\r\n \r\n {children}\r\n \r\n)","import React from 'react'\r\nimport { connect } from 'react-redux';\r\nimport { Badge } from 'react-bootstrap'\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport UnsubscribeButton from '../UnsubscribeButton'\r\nimport DetailsButton from '../DetailsButton';\r\nimport EnableStudentButton from '../EnableStudentButton'\r\nimport { Link } from '../Link'\r\nimport { DEPARTMENT_HEADS } from '../../constants/roles';\r\n\r\n const ListUnenrolledStudents = ({\r\n majors,\r\n auth,\r\n records,\r\n allowEnrollmentStateToggle = true\r\n}) => {\r\n\r\n const { user } = auth\r\n\r\n /** Here are all the columns */\r\n const columns = [\r\n {\r\n dataField: 'numero_de_control',\r\n text: 'Número de control'\r\n },\r\n {\r\n dataField: 'nombre',\r\n text: 'Nombre'\r\n },\r\n {\r\n dataField: 'carrera',\r\n text: 'Carrera',\r\n formatter: (cell) => {\r\n const major = majors.length && majors.find( ({ value }) => value == cell)\r\n return major.label\r\n },\r\n },\r\n {\r\n dataField: 'documentacion',\r\n text: 'Documentación',\r\n formatter: cell => (\r\n {\r\n cell === 2 ? 'Faltan documentos' : !cell ? 'Listo para revisar' : 'Aprobado y validado'\r\n }\r\n ),\r\n },\r\n {\r\n dataField: 'inscrito',\r\n text: 'Estatus',\r\n formatter: cell => { cell ? 'Inscrito' : 'No Inscrito'} ,\r\n },\r\n {\r\n dataField: 'tiene_documento_pendiente',\r\n text: '¿Documento pendiente?',\r\n formatter: cell => cell ? 'Si' : 'No',\r\n },\r\n {\r\n dataField: 'corrimiento',\r\n text: 'Corrimiento',\r\n formatter: cell => cell ? 'Si' : 'No',\r\n }, \r\n {\r\n dataField: 'tardias',\r\n text: 'Tardias',\r\n formatter: cell => cell ? 'Si' : 'No',\r\n }, \r\n {\r\n dataField: 'action',\r\n text: 'Acciones',\r\n }\r\n];\r\n\r\n\r\n/** serialize all dataset */\r\n const students = records.map( ({\r\n inscripcion: { carrera, documentacion, corrimiento, tardias, numero_de_control, inscrito, tiene_documento_pendiente},\r\n nombre,\r\n primer_apellido,\r\n segundo_apellido,\r\n slug,\r\n deleted_at\r\n }) => {\r\n return {\r\n numero_de_control: numero_de_control,\r\n nombre: `${nombre} ${primer_apellido} ${segundo_apellido}`,\r\n carrera: carrera.id,\r\n documentacion: documentacion === null ? 2 : documentacion ,\r\n inscrito: inscrito,\r\n tiene_documento_pendiente: tiene_documento_pendiente ? 1 : 0,\r\n corrimiento: corrimiento,\r\n tardias: tardias,\r\n action: deleted_at === null \r\n ? <>\r\n \r\n { (DEPARTMENT_HEADS.includes(user.role)) && (\r\n <>\r\n {allowEnrollmentStateToggle && }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n : allowEnrollmentStateToggle && \r\n }\r\n })\r\n\r\n\r\n\r\n return (\r\n \r\n )\r\n\r\n}\r\n\r\nconst mapStateToProps = ({ auth }) => ({ \r\n auth : auth\r\n})\r\n\r\n\r\nexport default connect(mapStateToProps, null)(ListUnenrolledStudents)\r\n\r\n","import { SET_PARAM } from '../types'\r\n\r\nexport const setExportDocumentParam = (param) => {\r\n\r\n if(Object.values(param)[0] === 'Todos'){\r\n param[Object.keys(param)[0]] = -1\r\n }\r\n\r\n return dispatch => dispatch(setParam(param))\r\n}\r\n\r\nconst setParam = (param) => ({\r\n type: SET_PARAM,\r\n param\r\n})\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Form } from 'react-bootstrap'\r\nimport { setExportDocumentParam } from '../../redux/actions/exportDocumentActions'\r\nimport { connect } from 'react-redux'\r\nimport StaffApi from '../../api/StaffApi'\r\n\r\nconst api = new StaffApi();\r\n\r\nconst Responsibles = ({ setExportDocumentParam }) => {\r\n\r\n const [listResponsibles, setLisResponsibles] = useState([])\r\n\r\n const handleChange = (e) => {\r\n setExportDocumentParam({responsible: e.target.value})\r\n }\r\n\r\n useEffect(() => {\r\n api.searchByRole('Servicios Escolares')\r\n .then( data => {\r\n setLisResponsibles(data)\r\n })\r\n .catch( error => console.error(error))\r\n }, [])\r\n\r\n return (\r\n \r\n Selecionar encargado\r\n \r\n \r\n {\r\n listResponsibles.map( ({slug, nombre, primer_apellido},key) => )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n setExportDocumentParam\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(Responsibles)","import Api from './Api'\r\nimport axios from 'axios'\r\n\r\nclass StaffApi extends Api {\r\n async searchByRole(role){\r\n const request = async () => await axios.get(this.generateAbsolutePath(`buscar/personal/${role}`));\r\n \r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n}\r\n\r\nexport default StaffApi;","export const dateFormat = (date) => {\r\n const currentDate = new Date(date)\r\n return `${currentDate.getFullYear()}-${currentDate.getMonth() + 1}-${currentDate.getDate()}`\r\n}","import React, { useEffect, useState } from 'react'\r\nimport { Form } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { setExportDocumentParam } from '../../redux/actions/exportDocumentActions'\r\nimport DatePicker, { registerLocale } from 'react-datepicker'\r\nimport { dateFormat } from '../../utils/dateFormat'\r\nimport es from 'date-fns/locale/es';\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nregisterLocale('es', es)\r\n\r\nconst DateInputField = ({ value, setExportDocumentParam }) => {\r\n\r\n const [date, setDate] = useState()\r\n\r\n const handleChange = dateSelected => {\r\n dateSelected && setExportDocumentParam({date: dateFormat(dateSelected)})\r\n setDate(dateSelected)\r\n }\r\n\r\n useEffect(() => {\r\n return () => {\r\n setExportDocumentParam({date: -1})\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n Fecha\r\n {/* */}\r\n \r\n \r\n )\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n setExportDocumentParam\r\n}\r\n\r\nexport default connect(({ exportDocumentReducer })=>({ value: exportDocumentReducer.date }), mapDispatchToProps)(DateInputField)","import React, { useState } from 'react'\r\nimport { OverlayTrigger, Tooltip, Button, Spinner } from 'react-bootstrap'\r\n\r\nconst ExportButton = ({ callback, onError }) => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const clickHandler = () => {\r\n setLoading(true);\r\n\r\n callback()\r\n .catch(onError)\r\n .then(() => setLoading(false));\r\n }\r\n\r\n return (\r\n \r\n Exportar a Excel\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ExportButton","import React, { useState } from 'react'\r\nimport { OverlayTrigger, Tooltip, Button, Spinner } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { DEPARTMENT_HEADS } from '../../constants/roles'\r\n\r\nconst ExportChiefReportButton = ({ auth, callback, onError, icon = null, title, loadingTitle = '', tooltipText, variant = 'primary' }) => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const clickHandler = () => {\r\n setLoading(true);\r\n\r\n callback()\r\n .catch(onError)\r\n .then(() => setLoading(false));\r\n }\r\n\r\n if (DEPARTMENT_HEADS.includes(auth.user.role)){\r\n return (\r\n \r\n {tooltipText}\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n }\r\n return null\r\n}\r\nexport default connect(({ auth })=>({ auth }))(ExportChiefReportButton)","import React, { useState, useRef } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { Overlay, Popover, Button, Form } from 'react-bootstrap'\r\nimport Responsibles from '../Responsibles'\r\nimport DateInputField from '../DateInputField'\r\nimport ExportButton from '../ExportButton'\r\nimport ExportChiefReportButton from '../ExportChiefReportButton'\r\nimport { DEPARTMENT_HEADS } from '../../constants/roles'\r\nimport ReportsApi from '../../api/ReportsApi'\r\nimport { ApiException, ValidationException } from '../../api/exceptions'\r\n\r\nconst api = new ReportsApi();\r\n\r\nconst ExportDocumentForm = ({ auth, filters }) => {\r\n const { user } = auth\r\n\r\n const [show, setShow] = useState(false);\r\n const [target, setTarget] = useState(null);\r\n const ref = useRef(null);\r\n\r\n const alert = withReactContent(Swal);\r\n\r\n const handleClick = (event) => {\r\n setShow(!show);\r\n setTarget(event.target);\r\n };\r\n\r\n const handleError = (e) => {\r\n let message = 'Hubo un problema al procesar la solicitud. Intente de nuevo más tarde.';\r\n\r\n if (e instanceof ApiException) {\r\n message = e.message;\r\n } else if (e instanceof ValidationException) {\r\n message = Object.entries(e.errors).join(' \\n')\r\n }\r\n\r\n alert.fire('Error!', message, 'error');\r\n }\r\n \r\n return (\r\n <> \r\n \r\n\r\n \r\n \r\n Reportes\r\n \r\n
\r\n \r\n {\r\n DEPARTMENT_HEADS.includes(user.role) && \r\n }\r\n api.excel(filters)}\r\n onError={handleError}\r\n />\r\n api.concentrated(filters)}\r\n onError={handleError}\r\n />\r\n api.pendingDocumentation(filters)}\r\n onError={handleError}\r\n />\r\n \r\n
\r\n
\r\n \r\n\r\n
}\r\n tooltipText='Descargar Fotos'\r\n callback={() => api.studentPhotos()}\r\n onError={handleError}\r\n />\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n auth : state.auth,\r\n filters : state.exportDocumentReducer\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ExportDocumentForm)","import Api from './Api'\r\nimport axios from 'axios'\r\nimport fileDownload from 'js-file-download';\r\nimport translateFilters from '../utils/translateFilters'\r\n\r\nclass ReportsApi extends Api {\r\n async excel(filters = {}){\r\n const request = async () => await axios.get(\r\n this.generateAbsolutePath('aceptados/reporte/excel'), { \r\n params: translateFilters(filters),\r\n responseType: 'blob'\r\n }\r\n );\r\n \r\n return await this.perform(request)\r\n .then((response) => this.handleDownload('Inscripciones.xlsx', response));\r\n }\r\n\r\n async concentrated(filters = {}){\r\n const request = async () => await axios.get(\r\n this.generateAbsolutePath('aceptados/reporte/concentrado'), { \r\n params: translateFilters(filters),\r\n responseType: 'blob'\r\n }\r\n );\r\n \r\n return await this.perform(request)\r\n .then((response) => this.handleDownload('Concentrado.xlsx', response));\r\n }\r\n\r\n async pendingDocumentation(filters = {}){\r\n const request = async () => await axios.get(\r\n this.generateAbsolutePath('aceptados/reporte/alumnos-sin-documentacion'), { \r\n params: translateFilters(filters),\r\n responseType: 'blob'\r\n }\r\n );\r\n \r\n return await this.perform(request)\r\n .then((response) => this.handleDownload('AlumnosSinDocumentacion.xlsx', response));\r\n }\r\n\r\n async studentPhotos(){\r\n const request = async () => await axios.get(\r\n this.generateAbsolutePath('inscripcion/fotografias'), { responseType: 'blob' }\r\n );\r\n \r\n return await this.perform(request)\r\n .then((response) => this.handleDownload('FotografiasAlumnos.zip', response));\r\n }\r\n\r\n /**\r\n * Download the blob file from the API response.\r\n * \r\n * @param {String} defaultFileName Fallback filename, in case it's not specified in the response headers.\r\n * @param {Object} response Axios response object.\r\n */\r\n handleDownload(defaultFileName, response){\r\n const { data, headers } = response;\r\n\r\n let fileName = headers['content-disposition'];\r\n fileName = fileName === undefined ? defaultFileName : fileName.split('filename=')[1];\r\n\r\n fileDownload(data, fileName)\r\n }\r\n}\r\n\r\nexport default ReportsApi;","import React, { useEffect } from 'react'\r\nimport { default as Pages } from 'react-bootstrap-4-pagination'\r\n\r\nconst Pagination = ({ currentPage, currentSize, totalRecords, handleChange }) => {\r\n\r\n let paginationConfig = {\r\n totalPages: Math.ceil(totalRecords/currentSize),\r\n currentPage: currentPage,\r\n showMax: 5,\r\n size: \"md\",\r\n center: false,\r\n prevNext: true,\r\n onClick: (page) => handleChange(page)\r\n };\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Pagination","import React from 'react'\r\nimport { Dropdown } from 'react-bootstrap'\r\n\r\nconst SizePerPage = ({ currentSize, handleChange, ranges = [10, 25, 30, 50] }) => {\r\n return(\r\n \r\n \r\n {currentSize}\r\n \r\n \r\n {\r\n ranges.map( page => handleChange(page) }>{page} )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SizePerPage","import Api from './Api'\r\nimport axios from 'axios'\r\n\r\nclass MajorsApi extends Api {\r\n async list(filters = {}){\r\n const request = async () => await axios.get(this.generateAbsolutePath('programas'), { params: filters });\r\n \r\n const { data } = await this.perform(request);\r\n\r\n return data;\r\n }\r\n}\r\n\r\nexport default MajorsApi;","import MajorsApi from '../../api/MajorsApi'\r\n\r\nexport const getAllMajors = () => {\r\n return async (dispatch) => {\r\n \r\n try {\r\n const api = new MajorsApi();\r\n\r\n const majors = parseMajors( await api.list() );\r\n \r\n dispatch(setAllMajors(majors))\r\n\r\n } catch (error) {\r\n console.error('error',error)\r\n }\r\n\r\n }\r\n}\r\n\r\n/**\r\n * Parse the API majors list for its use throughout the App.\r\n * @param {Array} list Majors list from the API.\r\n * @returns {Array}\r\n */\r\nconst parseMajors = (list) => (\r\n list.map( ({ id, nombre }) => ({ value: id, label: nombre }) )\r\n)\r\n\r\n\r\nconst setAllMajors = payload => ({ type: 'majors/setAll', payload })","import React from 'react'\r\nimport { Form } from 'react-bootstrap'\r\n\r\nconst SelectField = ({ label, value, options=[], onChange, placeholder = '', className = 'mr-5' }) => {\r\n\r\n const handlerChange = (e) => {\r\n onChange(e.target.value)\r\n }\r\n\r\n return (\r\n \r\n {label}\r\n \r\n { placeholder && }\r\n {\r\n options.map( option => \r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SelectField","import React, { useState, useEffect } from 'react'\r\nimport { Form } from 'react-bootstrap'\r\n\r\nconst TextField = ({ label, onChange, value, placeholder = ''}) => {\r\n\r\n const handleChange = (e) => {\r\n onChange(e.target.value)\r\n }\r\n\r\n return (\r\n \r\n {label}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default TextField","import React, { useCallback, useEffect } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport ListUnenrolledStudents from '../../../components/ListUnenrolledStudents'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport ExportDocumentForm from '../../../components/ExportDocumentForm'\r\nimport Pagination from '../../../components/Pagination'\r\nimport SizePerPage from '../../../components/SizePerPage'\r\nimport { USE_API_NULL_VALUE } from '../../../constants/APIFields'\r\nimport { setPage, setSizePerPage, requestUpdateCandidateList, setFilters, setListDeleted } from '../../../redux/actions/candidatesListActions'\r\nimport { setExportDocumentParam } from '../../../redux/actions/exportDocumentActions'\r\nimport { getAllMajors } from '../../../redux/actions/majorActions'\r\nimport { getAllPeriods } from '../../../redux/actions/periodActions'\r\nimport SelectField from '../../../components/SelectField'\r\nimport TextField from '../../../components/TextField'\r\n\r\nconst ChiefCareer = ({ \r\n candidatesList,\r\n majors,\r\n periods,\r\n setPage,\r\n setSizePerPage,\r\n requestUpdateCandidateList,\r\n getAllMajors,\r\n getAllPeriods,\r\n setListDeleted,\r\n setFilters,\r\n setExportDocumentParam\r\n}) => {\r\n\r\n const { \r\n page,\r\n sizePerPage,\r\n totalRecords, \r\n records, \r\n deleted,\r\n filters: { period, documentation, major, belate, enroll, shifting, name, control, documentPending } \r\n } = candidatesList\r\n\r\n useEffect(() => {\r\n getAllMajors()\r\n getAllPeriods()\r\n }, [])\r\n\r\n const isSelectedPeriodActive = useCallback(() => period === '', [period])\r\n\r\n useEffect( () => {\r\n requestUpdateCandidateList(deleted, { page, sizePerPage, period, documentation, major, belate, enroll, shifting, name, control, documentPending })\r\n }, [page, sizePerPage, documentation, period, major, belate, enroll, shifting, name, control, documentPending, deleted])\r\n\r\n return (\r\n \r\n \r\n \r\n

Aspirantes seleccionados

\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n setFilters({period})\r\n setExportDocumentParam({period})\r\n }}\r\n className=\"\"\r\n />\r\n
\r\n \r\n \r\n
\r\n {\r\n setListDeleted(value)\r\n }}\r\n className=\"\"\r\n />\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

Filtrar Por

\r\n \r\n \r\n {\r\n setFilters({control})\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFilters({name})\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFilters({major})\r\n setExportDocumentParam({major})\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFilters({documentation})\r\n setExportDocumentParam({documentation})\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFilters({enroll})\r\n setExportDocumentParam({enroll})\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFilters({documentPending})\r\n setExportDocumentParam({documentPending})\r\n }}\r\n />\r\n \r\n {/* \r\n {\r\n setFilters({shifting})\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFilters({belate})\r\n setExportDocumentParam({belate})\r\n }}\r\n />\r\n */}\r\n \r\n
\r\n \r\n \r\n setSizePerPage(size) }\r\n />\r\n setPage(page) }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSizePerPage(size) }\r\n />\r\n setPage(page) }\r\n />\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = ({ candidatesListReducer, majorsReducer, periodsReducer }) => {\r\n return { \r\n candidatesList: candidatesListReducer,\r\n majors: majorsReducer,\r\n periods: periodsReducer\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n getAllMajors,\r\n getAllPeriods,\r\n setPage,\r\n setSizePerPage,\r\n requestUpdateCandidateList,\r\n setFilters,\r\n setListDeleted,\r\n setExportDocumentParam\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ChiefCareer)","import CandidatesApi from '../../api/CandidatesApi'\r\nimport EnrollmentDocumentsApi from '../../api/EnrollmentDocumentsApi'\r\nimport { ApiException } from '../../api/exceptions'\r\nimport { SET_UNENROLLED_STUDENT_INFO_LOADING, SET_UNENROLLED_STUDENT_INFO_ERROR, SET_UNENROLLED_STUDENT_INFO, \r\n SET_UNENROLLED_STUDENT_INFO_RESET } from '../types'\r\n \r\nconst candidatesApi = new CandidatesApi();\r\nconst enrollmentDocumentsApi = new EnrollmentDocumentsApi();\r\n\r\nexport const getUnenrolledStudent = (controlNumber) => {\r\n return async (dispatch) => {\r\n\r\n dispatch(setLoading())\r\n\r\n try {\r\n const studentInfo = await candidatesApi.get(controlNumber)\r\n await candidatesApi.block(controlNumber)\r\n const documentsInfo = await enrollmentDocumentsApi.list(controlNumber);\r\n\r\n const payload = {\r\n info: studentInfo,\r\n documents: documentsInfo\r\n }\r\n\r\n dispatch(setUnenrolledStudent(payload))\r\n\r\n } catch (error) {\r\n const message = (error instanceof ApiException) ? error.message : 'Hubo un error al obtener la información del aceptado. Intente más tarde.';\r\n dispatch(setError({ message }))\r\n }\r\n }\r\n}\r\n\r\nexport const blockUnenrolledStudent = (controlNumber) => {\r\n return async () => await candidatesApi.block(controlNumber);\r\n}\r\n\r\nexport const resetUnenrolledStudent = () => {\r\n return dispatch => dispatch(reset())\r\n}\r\n\r\n/** action creators */\r\nconst setLoading = () => ({type: SET_UNENROLLED_STUDENT_INFO_LOADING})\r\n\r\nconst setUnenrolledStudent = payload => ({type: SET_UNENROLLED_STUDENT_INFO, payload })\r\n\r\nconst reset = () => ({type: SET_UNENROLLED_STUDENT_INFO_RESET})\r\n\r\nconst setError = payload => ({type: SET_UNENROLLED_STUDENT_INFO_ERROR, payload })","import React from 'react'\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap'\r\n\r\nexport const RefreshButton = ({ updateHandler }) => {\r\n\r\n return (\r\n \r\n Actualizar\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { OverlayTrigger, Tooltip, Button } from 'react-bootstrap'\r\nimport { navigate } from '@reach/router'\r\n\r\nexport const BackListButton = ({ path = '/admin/inicio' }) => \r\n \r\n Regresar a la lista\r\n \r\n }\r\n >\r\n \r\n \r\n\r\n","import React, { useCallback, useEffect } from \"react\"\r\nimport { navigate } from '@reach/router'\r\nimport { connect } from 'react-redux'\r\nimport { blockUnenrolledStudent, getUnenrolledStudent, resetUnenrolledStudent } from '../../../redux/actions/unenrolledStudentSelected'\r\nimport { handleExpiredAuthState } from '../../../redux/actions/authActions'\r\nimport Skeleton from 'react-loading-skeleton'\r\nimport CandidateInfo from '../../../components/CandidateInfo'\r\nimport Documents from '../../../components/Documents'\r\nimport \"./Details.css\"\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { RefreshButton } from \"../../../components/RefreshButton\"\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport { BackListButton } from '../../../components/BackListButton'\r\nimport { DEFAULT_PERIOD_VALUE } from \"../../../constants/periods\"\r\nimport { getAllPeriods } from '../../../redux/actions/periodActions'\r\nimport { ApiException, ExpiredSessionException } from \"../../../api/exceptions\"\r\n\r\nconst Details = ({ controlNumber, unenrolledStudent, getUnenrolledStudent, blockUnenrolledStudent, resetUnenrolledStudent, handleExpiredAuthState, getAllPeriods, periods}) => {\r\n\r\n const {info, documents, isLoading, error, message } = unenrolledStudent\r\n const alert = withReactContent(Swal)\r\n\r\n const updateBlockedStudent = () => {\r\n if( info.inscripcion ){\r\n blockUnenrolledStudent(controlNumber)\r\n .catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n\r\n alert.fire({\r\n title: (error instanceof ApiException) ? error.message : 'Hubo un error al apartar el estudiante. Intente más tarde.',\r\n icon: 'error'\r\n })\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n !periods.length && getAllPeriods()\r\n }, [periods.length])\r\n\r\n /** get student information */\r\n useEffect(() => {\r\n getUnenrolledStudent(controlNumber)\r\n }, [controlNumber])\r\n\r\n/** Show error */\r\n useEffect(() => {\r\n if (error){\r\n alert.fire({\r\n title: message,\r\n icon: 'error',\r\n confirmButtonText: 'Aceptar',\r\n preConfirm: () => {\r\n resetUnenrolledStudent()\r\n navigate('/admin/inicio')\r\n }\r\n })\r\n } \r\n }, [error])\r\n\r\n /** send request to block 29seconds*/\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n updateBlockedStudent()\r\n }, 29000)\r\n return () => clearInterval(timer)\r\n }, [info])\r\n\r\n /** tell wether the student can be enrolled/unenrolled */\r\n const isFromCurrentPeriod = useCallback(() => {\r\n if (info.inscripcion?.periodo) {\r\n const period = periods.find(p => p.label === info.inscripcion.periodo.nombre)\r\n\r\n return period?.value === DEFAULT_PERIOD_VALUE;\r\n }\r\n\r\n return false\r\n }, [info.inscripcion, periods.length]);\r\n\r\n return (\r\n \r\n \r\n \r\n

Documentación

\r\n \r\n \r\n getUnenrolledStudent(controlNumber)} />\r\n \r\n \r\n
\r\n
\r\n
\r\n { isLoading \r\n ? <>\r\n \r\n \r\n \r\n : <>\r\n \r\n getUnenrolledStudent(controlNumber)} inscrito={info.inscripcion && info.inscripcion.inscrito} nss={info.numero_de_seguro_social} equivalencia={info.inscripcion && info.inscripcion.equivalencia} /> \r\n \r\n }\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n unenrolledStudent : state.unenrolledStudentSelectedInfo,\r\n periods : state.periodsReducer\r\n})\r\n\r\nconst mapDispatchToProps = {\r\n getUnenrolledStudent,\r\n blockUnenrolledStudent,\r\n resetUnenrolledStudent,\r\n handleExpiredAuthState,\r\n getAllPeriods,\r\n}\r\n\r\nexport default connect(mapStateToProps,mapDispatchToProps)(Details)\r\n","import React from 'react'\r\nimport { Row, Col, Form, Button, OverlayTrigger, Tooltip, Table, Badge } from 'react-bootstrap'\r\n\r\nconst Reports = () => (\r\n <>\r\n

Relacion de entrega de documentos

\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Carrera\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Estatus\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Exportar PDF}>\r\n \r\n \r\n \r\n \r\n {\" \"}\r\n Exportar Excel}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
SolicitudCarreraAlumnoCURPFecha de inscripciónEstatusAcción
1060INGENIERIA MECANICAMARIA ELENA ACUÑA VILLANUEVAAUVE010522MSRCLLA12019-08-07 8:00:00.0\r\n \r\n Inscrito\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
111INGENIERIA MECANICAMIGUEL ANGEL ALCANTARA LEALAALM011101HSLLLGA72019-08-07 8:00:00.0\r\n \r\n Baja\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
4025INGENIERIA MECANICAMANUEL ENRIQUE ALVAREZ MONTIJOAAMM971027HSRLNN032019-08-07 8:00:00.0\r\n \r\n Tardia\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
1060INGENIERIA MECANICAMARIA ELENA ACUÑA VILLANUEVAAUVE010522MSRCLLA12019-08-07 8:00:00.0\r\n \r\n Inscrito\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
111INGENIERIA MECANICAMIGUEL ANGEL ALCANTARA LEALAALM011101HSLLLGA72019-08-07 8:00:00.0\r\n \r\n Baja\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
4025INGENIERIA MECANICAMANUEL ENRIQUE ALVAREZ MONTIJOAAMM971027HSRLNN032019-08-07 8:00:00.0\r\n \r\n Tardia\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
1060INGENIERIA MECANICAMARIA ELENA ACUÑA VILLANUEVAAUVE010522MSRCLLA12019-08-07 8:00:00.0\r\n \r\n Inscrito\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
111INGENIERIA MECANICAMIGUEL ANGEL ALCANTARA LEALAALM011101HSLLLGA72019-08-07 8:00:00.0\r\n \r\n Baja\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
4025INGENIERIA MECANICAMANUEL ENRIQUE ALVAREZ MONTIJOAAMM971027HSRLNN032019-08-07 8:00:00.0\r\n \r\n Tardia\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
1060INGENIERIA MECANICAMARIA ELENA ACUÑA VILLANUEVAAUVE010522MSRCLLA12019-08-07 8:00:00.0\r\n \r\n Inscrito\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
111INGENIERIA MECANICAMIGUEL ANGEL ALCANTARA LEALAALM011101HSLLLGA72019-08-07 8:00:00.0\r\n \r\n Baja\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
4025INGENIERIA MECANICAMANUEL ENRIQUE ALVAREZ MONTIJOAAMM971027HSRLNN032019-08-07 8:00:00.0\r\n \r\n Tardia\r\n \r\n \r\n Ver Detalles}>\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n)\r\n\r\nexport default Reports","import React, { useEffect } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { getAllMajors } from '../../redux/actions/majorActions'\r\nimport { Form } from 'react-bootstrap'\r\nimport { useFormContext } from 'react-hook-form'\r\n\r\nconst Majors = ({ getAllMajors, majors }) => {\r\n\r\n const { register } = useFormContext();\r\n\r\n useEffect( () => {\r\n !majors.length && getAllMajors()\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n {\r\n majors.map( major => )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default connect(({ majorsReducer }) => ({ majors : majorsReducer }),{ getAllMajors })(Majors)","import React, {useCallback, useEffect} from \"react\"\r\nimport { Form, Button, Alert } from 'react-bootstrap'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { useForm, FormProvider } from 'react-hook-form'\r\nimport Majors from '../Majors'\r\nimport { navigate } from \"@reach/router\"\r\nimport CandidatesApi from \"../../api/CandidatesApi\"\r\nimport { ApiException, ExpiredSessionException, ValidationException } from \"../../api/exceptions\"\r\nimport { handleExpiredAuthState } from '../../redux/actions/authActions'\r\nimport { connect } from \"react-redux\"\r\n\r\nconst StudentForm = ({ studentData, showOnSubmit = false, handleExpiredAuthState }) => {\r\n\r\n const recordExists = useCallback(() => (!!studentData?.inscripcion?.numero_de_control), [studentData?.inscripcion?.numero_de_control]);\r\n\r\n /** return serialized data object to set up as default when is update form */\r\n const serializeData = () => {\r\n if( studentData && Object.keys(studentData).length ){\r\n const { nombre, primer_apellido, segundo_apellido, correo, inscripcion: { carrera: { id: carrera_id }}, telefono_celular, curp, inscripcion: { numero_de_control, referencia, traslado, nip },} = studentData\r\n return {\r\n nombre,\r\n primer_apellido,\r\n segundo_apellido,\r\n correo,\r\n carrera_id,\r\n telefono_celular,\r\n curp,\r\n numero_de_control,\r\n referencia,\r\n traslado,\r\n nip\r\n }\r\n }\r\n }\r\n const formMethods = useForm()\r\n const { register, handleSubmit, formState: { errors }, reset, setFocus } = formMethods\r\n\r\n const alert = withReactContent(Swal)\r\n \r\n const onSubmit = data => {\r\n const api = new CandidatesApi();\r\n\r\n (recordExists() ? api.update(studentData.inscripcion.numero_de_control, data) : api.store(data))\r\n .then( response => {\r\n alert.fire({\r\n title: 'Exito',\r\n text: 'El alumno se dio de alta correctamente',\r\n icon: 'success',\r\n onAfterClose: () => {\r\n if (!showOnSubmit) {\r\n reset({})\r\n window.scrollTo(0,0)\r\n setFocus('nombre');\r\n }\r\n }\r\n })\r\n\r\n if (showOnSubmit) {\r\n window.scrollTo(0,0)\r\n navigate(`/admin/documentos/${data.numero_de_control}`)\r\n }\r\n })\r\n .catch( error => {\r\n if (error instanceof ExpiredSessionException) {\r\n return handleExpiredAuthState();\r\n }\r\n\r\n let message = 'Hubo un error al enviar la solicitud al servidor.';\r\n\r\n if (error instanceof ValidationException) {\r\n message = Object.values(error.errors).join(' \\n');\r\n } else if (error instanceof ApiException) {\r\n message = error.message;\r\n }\r\n\r\n alert.fire({\r\n title: 'Error',\r\n text: message,\r\n icon: 'error'\r\n })\r\n })\r\n }\r\n\r\n useEffect( () => {\r\n window.scrollTo(0, 0)\r\n /** set data when is update form */\r\n reset(serializeData())\r\n }, [studentData])\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n Nombre\r\n \r\n {errors.nombre && Nombre es requerido}\r\n \r\n \r\n Apellido Paterno\r\n \r\n {errors.primer_apellido && Apellido Paterno es requerido}\r\n \r\n \r\n Apellido Materno\r\n \r\n {errors.segundo_apellido && Apellido Materno es requerido}\r\n \r\n \r\n Carrera\r\n \r\n {errors.carrera_id && Carrera es requerido}\r\n \r\n \r\n Correo\r\n \r\n {errors.correo && Correo es requerido}\r\n \r\n \r\n Teléfono\r\n \r\n {errors.telefono_celular && Celular es requerido}\r\n \r\n \r\n CURP\r\n \r\n {errors.curp && Curp es requerido}\r\n \r\n \r\n Número de control\r\n \r\n {errors.numero_de_control && Núnero de control es requerido}\r\n \r\n \r\n Grupo\r\n \r\n {errors.referencia && Grupo es requerido}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n NIP\r\n \r\n {errors.nip && NIP es requerido}\r\n \r\n \r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default connect(null, {handleExpiredAuthState})(StudentForm)\r\n","import React, { useEffect } from 'react'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport StudentForm from '../../../components/StudentForm'\r\nimport { BackListButton } from '../../../components/BackListButton'\r\n\r\nconst CreateStudent = () => {\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n

Registrar Estudiante

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default CreateStudent","import React, { useEffect } from 'react'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport StudentForm from '../../../components/StudentForm'\r\nimport { connect } from 'react-redux'\r\nimport { getUnenrolledStudent } from '../../../redux/actions/unenrolledStudentSelected'\r\nimport { BackListButton } from '../../../components/BackListButton'\r\n\r\nconst UpdateStudent = ({ controlNumber, student, getUnenrolledStudent }) => {\r\n\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n getUnenrolledStudent(controlNumber)\r\n }, [])\r\n\r\n return(\r\n \r\n \r\n \r\n

Actualizar Estudiante

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default connect(({ unenrolledStudentSelectedInfo }) => ({ student: unenrolledStudentSelectedInfo.info }),{ getUnenrolledStudent })(UpdateStudent)","import React, { useEffect, useState } from 'react'\r\nimport { useWatch } from 'react-hook-form'\r\nimport { Form, Alert } from 'react-bootstrap'\r\nimport { connect } from \"react-redux\"\r\nimport { getAllPeriods } from '../../../redux/actions/periodActions'\r\n\r\nimport './PeriodNameErrors.css'\r\n\r\nconst PeriodNameErrors = ({ control, yearError, halfError, nameError, setError, clearErrors, existing, selected, getAllPeriods }) => {\r\n const year = useWatch({\r\n control, name: 'year', defaultValue: ''\r\n })\r\n const half = useWatch({\r\n control, name: 'half', defaultValue: ''\r\n })\r\n\r\n const [yearPattern] = useState(RegExp(/\\d{4}/));\r\n\r\n useEffect( () => {\r\n !existing.length && getAllPeriods()\r\n }, [])\r\n \r\n /**\r\n * Perform real-time validation over the period's *year* and *half* fields.\r\n */\r\n useEffect(() => {\r\n clearErrors(['name', 'year', 'half'])\r\n\r\n if (yearPattern.test(year) === false) return setError('year', { message: \"Año inválido.\" });\r\n \r\n if (existing.filter(p => p.nombre !== selected.info?.nombre).find(p => p.year == year && p.half == half) !== undefined) {\r\n setError('name', { message: \"El periodo ya está registrado.\" })\r\n }\r\n \r\n }, [year, half, existing.length, selected.info?.nombre])\r\n\r\n \r\n return (\r\n \r\n {nameError?.message} \r\n {yearError?.message} \r\n {halfError?.message} \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = ({ periodsReducer, selectedPeriodInfo }) => ({\r\n existing: periodsReducer,\r\n selected: selectedPeriodInfo\r\n})\r\n\r\nexport default connect(mapStateToProps, {getAllPeriods})(PeriodNameErrors)","\r\nimport React, { forwardRef } from \"react\"\r\nimport { Form, Alert } from 'react-bootstrap'\r\nimport DatePicker from 'react-datepicker'\r\n\r\nimport './PeriodDateRange.css'\r\n\r\nconst PeriodDateRange = ({start, setStart, end, setEnd, startError = '', endError = ''}) => {\r\n\r\n const Input = forwardRef( ({ value, onClick, id, className, ...rest }, ref) => \r\n ()\r\n )\r\n\r\n return (\r\n \r\n \r\n Inicio\r\n }\r\n />\r\n {startError && {startError}}\r\n \r\n \r\n Fin\r\n }\r\n />\r\n {endError && {endError}}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PeriodDateRange","import React, { useCallback, useEffect, useState} from \"react\"\r\nimport { Form, Button, Alert } from 'react-bootstrap'\r\nimport Skeleton from 'react-loading-skeleton'\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\nimport { useForm } from 'react-hook-form'\r\nimport { navigate } from '@reach/router'\r\nimport moment from 'moment'\r\n\r\nimport './PeriodForm.css'\r\nimport PeriodNameErrors from \"./PeriodNameErrors\"\r\nimport PeriodDateRange from \"./PeriodDateRange\"\r\nimport PeriodsApi from \"../../api/PeriodsApi\"\r\nimport { ApiException, ValidationException } from \"../../api/exceptions\"\r\n\r\nconst PeriodForm = ({ periodData, isLoading }) => {\r\n const [startDate, setStartDate] = useState(null );\r\n const [endDate, setEndDate] = useState(null );\r\n\r\n const recordExists = useCallback(() => (!!periodData?.slug), [periodData?.slug]);\r\n\r\n /** return serialized data object to set up as default when is update form */\r\n const serializeData = () => {\r\n if( periodData && Object.keys(periodData) != false ){\r\n const { nombre, abreviatura, inicio_periodo, fin_periodo, activo, abierto_para_inscripciones } = periodData\r\n let [year, half] = nombre.split('-')\r\n\r\n return {\r\n year,\r\n half,\r\n abreviatura,\r\n inicio_periodo: !!inicio_periodo ? moment(inicio_periodo) : undefined,\r\n fin_periodo: !!fin_periodo ? moment(fin_periodo) : undefined,\r\n activo,\r\n abierto_para_inscripciones\r\n }\r\n } else {\r\n\r\n return {\r\n year: moment().year(),\r\n half: Math.round(moment().quarter() / 2)\r\n }\r\n }\r\n }\r\n const { register, handleSubmit, formState: { errors }, control, setError, setValue, clearErrors, reset } = useForm()\r\n\r\n const alert = withReactContent(Swal)\r\n \r\n const onSubmit = data => {\r\n data.nombre = `${data.year}-${data.half}`;\r\n\r\n if (data.inicio_periodo) {\r\n data.inicio_periodo = moment(data.inicio_periodo).format('yyyy-MM-DD')\r\n }\r\n\r\n if (data.fin_periodo) {\r\n data.fin_periodo = moment(data.fin_periodo).format('yyyy-MM-DD')\r\n }\r\n\r\n const api = new PeriodsApi();\r\n \r\n (recordExists() ? api.update(periodData.slug, data) : api.store(data))\r\n .then( () => {\r\n alert.fire({\r\n title: 'Exito',\r\n text: 'El periodo se dio de alta correctamente',\r\n icon: 'success'\r\n })\r\n\r\n navigate('/admin/periodos');\r\n })\r\n .catch( error => {\r\n let message = 'Hubo un error al procesar la solicitud. Intente más tarde.';\r\n\r\n if (error instanceof ValidationException) {\r\n message = Object.values(error.errors);\r\n } else if (error instanceof ApiException) {\r\n message = error.message;\r\n }\r\n\r\n alert.fire({\r\n title: 'Error',\r\n text: message,\r\n icon: 'error'\r\n })\r\n })\r\n }\r\n\r\n useEffect( () => {\r\n window.scrollTo(0, 0)\r\n /** set data when is update form */\r\n const data = serializeData();\r\n reset(data)\r\n\r\n if (data.inicio_periodo) {\r\n setStartDate(new Date(data.inicio_periodo))\r\n }\r\n\r\n if (data.fin_periodo) {\r\n setEndDate(new Date(data.fin_periodo))\r\n }\r\n\r\n }, [periodData])\r\n\r\n /**\r\n * Register date range form fields.\r\n */\r\n useEffect(() => {\r\n register('inicio_periodo', { required: false })\r\n register('fin_periodo', { required: false })\r\n }, [])\r\n\r\n useEffect(() => {\r\n setValue('inicio_periodo', startDate);\r\n }, [startDate])\r\n\r\n useEffect(() => {\r\n setValue('fin_periodo', endDate);\r\n }, [endDate])\r\n\r\n if (isLoading) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n Año\r\n \r\n \r\n \r\n \r\n \r\n \r\n Mitad\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n Abreviatura\r\n \r\n {errors.abreviatura && {errors.abreviatura.message}}\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default PeriodForm\r\n","import { ApiException } from '../../api/exceptions'\r\nimport PeriodsApi from '../../api/PeriodsApi'\r\nimport { SET_SELECTED_PERIOD_INFO, SET_SELECTED_PERIOD_INFO_ERROR, SET_SELECTED_PERIOD_INFO_LOADING, SET_SELECTED_PERIOD_INFO_RESET } from '../types'\r\n\r\nexport const getPeriodInfo = (slug) => {\r\n return async (dispatch) => {\r\n\r\n dispatch(setLoading())\r\n \r\n const api = new PeriodsApi();\r\n\r\n await api.get(slug)\r\n .then(data => dispatch(setInfo(data)))\r\n .catch(e => {\r\n let message = 'Hubo un error al procesar la solicitud. Intente más tarde.';\r\n \r\n if (e instanceof ApiException){\r\n message = e.message;\r\n }\r\n\r\n dispatch(setError(message))\r\n });\r\n }\r\n}\r\n\r\nexport const resetPeriod = () => {\r\n return dispatch => dispatch(resetInfo())\r\n}\r\n\r\n/** action creators */\r\nconst setLoading = () => ({type: SET_SELECTED_PERIOD_INFO_LOADING})\r\n\r\nconst setInfo = payload => ({type: SET_SELECTED_PERIOD_INFO, payload })\r\n\r\nconst resetInfo = () => ({type: SET_SELECTED_PERIOD_INFO_RESET})\r\n\r\nconst setError = payload => ({type: SET_SELECTED_PERIOD_INFO_ERROR, payload })","import React, { useEffect } from 'react'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport PeriodForm from '../../../components/PeriodForm'\r\nimport { resetPeriod } from '../../../redux/actions/selectedPeriodActions'\r\nimport { BackListButton } from '../../../components/BackListButton'\r\nimport { connect } from 'react-redux'\r\n\r\nconst CreatePeriod = ({ resetPeriod }) => {\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n resetPeriod();\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n

Registrar Periodo

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default connect(null,{resetPeriod})(CreatePeriod)","import React, { useEffect } from 'react'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport PeriodForm from '../../../components/PeriodForm'\r\nimport { connect } from 'react-redux'\r\nimport { getPeriodInfo } from '../../../redux/actions/selectedPeriodActions'\r\nimport { BackListButton } from '../../../components/BackListButton'\r\n\r\nconst UpdatePeriod = ({ slug, period, loaded, getPeriodInfo }) => {\r\n\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n getPeriodInfo(slug)\r\n }, [])\r\n\r\n return(\r\n \r\n \r\n \r\n

Actualizar Periodo

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = ({ selectedPeriodInfo }) => ({\r\n period: selectedPeriodInfo.info,\r\n loaded: selectedPeriodInfo.loaded\r\n})\r\n\r\nexport default connect(mapStateToProps,{ getPeriodInfo })(UpdatePeriod)","import React, { useState, useEffect } from 'react'\r\nimport { Button, OverlayTrigger, Tooltip, Spinner } from 'react-bootstrap'\r\nimport { navigate } from '@reach/router'\r\n\r\nconst CreatePeriodButton = () => {\r\n\r\n const [isLoading, setIsLoading] = useState(false)\r\n\r\n const onClickHandler = () => {\r\n setIsLoading(true)\r\n }\r\n\r\n useEffect(() => {\r\n isLoading && (\r\n navigate('/admin/periodos/nuevo')\r\n .then(() => setIsLoading(false))\r\n ) \r\n }, [isLoading])\r\n\r\n return (\r\n \r\n Registrar nuevo periodo\r\n \r\n }\r\n placement=\"bottom\"\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CreatePeriodButton","import UnenrolledStudentHome from \"../views/Accepted/UnenrolledStudentHome\";\r\nimport ChiefCareer from \"../views/Admin/ChiefCareer\";\r\nimport Details from \"../views/Admin/Details\";\r\nimport Reports from \"../views/Admin/Reports\";\r\nimport { CreateStudent, UpdateStudent } from \"../views/Admin/Student\";\r\nimport { CreatePeriod, UpdatePeriod, ListPeriods } from \"../views/Admin/Period\";\r\n\r\nconst routes = [\r\n {\r\n path: 'aspirantes/inicio',\r\n component: UnenrolledStudentHome,\r\n field: 'inscrito',\r\n redirect: '/aspirantes/login'\r\n },\r\n {\r\n path: 'admin/inicio',\r\n component: ChiefCareer,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n {\r\n path: 'admin/documentos/:controlNumber',\r\n component: Details,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n {\r\n path: 'admin/reportes',\r\n component: Reports,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n {\r\n path: 'admin/nuevo',\r\n component: CreateStudent,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n {\r\n path: 'admin/aspirante/:controlNumber',\r\n component: UpdateStudent,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n {\r\n path: 'admin/periodos',\r\n component: ListPeriods,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n {\r\n path: 'admin/periodos/nuevo',\r\n component: CreatePeriod,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n {\r\n path: 'admin/periodos/:slug',\r\n component: UpdatePeriod,\r\n field: 'role',\r\n redirect: '/admin/login'\r\n },\r\n]\r\n\r\nexport default routes;","import React, { useEffect } from 'react'\r\nimport { Container, Row, Col } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { getAllPeriods } from '../../../redux/actions/periodActions'\r\nimport PeriodsList from '../../../components/PeriodsList'\r\nimport { BackListButton } from '../../../components/BackListButton'\r\nimport CreatePeriodButton from '../../../components/CreatePeriodButton'\r\n\r\nconst ListPeriods = ({ periods, getAllPeriods }) => {\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [])\r\n\r\n useEffect(() => {\r\n getAllPeriods()\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n

Listado de Periodos

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default connect(({ periodsReducer }) => ({ periods: periodsReducer }),{ getAllPeriods })(ListPeriods)","import React, { useEffect } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { getUserAuthenticated } from '../../../redux/actions/authActions'\r\nimport { navigate } from '@reach/router'\r\n\r\nconst AuthCheck = ({ auth, getUserAuthenticated }) => {\r\n const { isAuth, user } = auth\r\n\r\n useEffect(() => {\r\n getUserAuthenticated()\r\n\r\n if (isAuth) {\r\n user?.role ? navigate('/admin/inicio') : navigate('/aspirantes/inicio');\r\n } else {\r\n navigate('/aspirantes/login');\r\n }\r\n \r\n }, [])\r\n \r\n return (\r\n <>\r\n )\r\n}\r\n\r\nexport default connect(state => ({ auth: state.auth }),{getUserAuthenticated})(AuthCheck)","import React from 'react'\r\nimport { Router } from '@reach/router'\r\nimport { connect } from 'react-redux'\r\nimport { getUserAuthenticated } from '../../redux/actions/authActions'\r\nimport App from '../../layouts/App'\r\nimport LoginCanditate from '../../views/Auth/LoginCandidate'\r\nimport LoginAdmin from '../../views/Auth/LoginAdmin'\r\nimport { PrivateRoute } from '../PrivateRoute'\r\nimport routes from '../../routes'\r\nimport AuthCheck from '../../views/Auth/AuthCheck'\r\n\r\n/**\r\n * Routes.\r\n */\r\nconst Root = ({auth}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {routes.map((route,index) => ())}\r\n \r\n \r\n )\r\n}\r\n\r\n/** This function is passed as parameter to connect function. \r\n * Its function is to return the value from the state that you should\r\n * recive as props in the Root Component */\r\nconst mapStateToProps = state => {\r\n return {\r\n auth: state.auth\r\n }\r\n}\r\n/** Connect function allow us access to the global state */\r\nexport default connect(mapStateToProps, { getUserAuthenticated })(Root)","import { SET_USER, UNSET_USER, SET_LOGIN_ERROR } from '../types'\r\n\r\n// const session = sessionStorage.getItem('user')\r\n// const user = session ? JSON.parse(session) : {}\r\n// const isAuth = session ? true : undefined\r\n\r\nconst initialState = {\r\n user: {},\r\n isAuth: undefined,\r\n errors: {}\r\n}\r\n\r\nexport const auth = (state = initialState, action) => {\r\n switch (action.type) {\r\n case SET_USER:\r\n return {\r\n ...state,\r\n user: action.payload,\r\n isAuth: true\r\n }\r\n case SET_LOGIN_ERROR:\r\n return {\r\n ...state,\r\n errors: {\r\n ...action.payload\r\n }\r\n }\r\n case UNSET_USER:\r\n return {\r\n user: {},\r\n isAuth: undefined,\r\n errors: {}\r\n }\r\n default:\r\n return state;\r\n }\r\n}","import { SET_STUDENT_INFO, SET_UNENROLLED_STUDENT_DOCUMENTS, DOCUMENT_UPLOADED, BEGINNING_REQUEST, ERROR_DOCUMENT_REQUEST } from '../types'\r\n\r\nconst initialState = {\r\n isLoading: false,\r\n error: false,\r\n success: false,\r\n info:{},\r\n documents:[]\r\n }\r\n\r\nexport const unenrolledStudent = (state = initialState, action) => {\r\n switch(action.type){\r\n case SET_STUDENT_INFO:\r\n return {\r\n ...state,\r\n ...action.payload,\r\n isLoading: false,\r\n error: false,\r\n }\r\n case SET_UNENROLLED_STUDENT_DOCUMENTS:\r\n return {\r\n ...state,\r\n documents: {\r\n files: [\r\n ...action.payload\r\n ],\r\n error: null,\r\n loading: null,\r\n success: null\r\n }\r\n }\r\n \r\n case DOCUMENT_UPLOADED :\r\n return {\r\n ...state,\r\n documents:{\r\n ...state.documents,\r\n loading: false,\r\n error: false,\r\n success: true\r\n }\r\n }\r\n \r\n case BEGINNING_REQUEST :\r\n return {\r\n ...state,\r\n isLoading: true,\r\n error: false\r\n }\r\n\r\n case ERROR_DOCUMENT_REQUEST :\r\n return {\r\n ...state,\r\n documents: {\r\n ...state.documents,\r\n loading: false,\r\n error: true\r\n }\r\n }\r\n default:\r\n return state\r\n }\r\n}","import { SET_UNENROLLED_STUDENT_INFO_LOADING, SET_UNENROLLED_STUDENT_INFO_ERROR, SET_UNENROLLED_STUDENT_INFO, SET_UNENROLLED_STUDENT_INFO_RESET } from '../types'\r\n\r\nconst initialState = {\r\n isLoading: false,\r\n error: false,\r\n success: false,\r\n info: {},\r\n documents: []\r\n}\r\n\r\nexport const unenrolledStudentSelectedInfo = (state = initialState, action ) => {\r\n switch (action.type) {\r\n case SET_UNENROLLED_STUDENT_INFO_LOADING:\r\n return{\r\n ...state,\r\n isLoading: true,\r\n error: false\r\n }\r\n case SET_UNENROLLED_STUDENT_INFO:\r\n return {\r\n ...state,\r\n ...action.payload,\r\n isLoading: false,\r\n error: false\r\n }\r\n\r\n case SET_UNENROLLED_STUDENT_INFO_ERROR:\r\n return{\r\n ...state,\r\n isLoading: false,\r\n error: true,\r\n message: action.payload.message\r\n }\r\n\r\n case SET_UNENROLLED_STUDENT_INFO_RESET: \r\n return {\r\n ...state,\r\n isLoading: false,\r\n error: false,\r\n success: false\r\n }\r\n \r\n default:\r\n return state\r\n }\r\n}","import { SET_SELECTED_PERIOD_INFO, SET_SELECTED_PERIOD_INFO_ERROR, SET_SELECTED_PERIOD_INFO_LOADING, SET_SELECTED_PERIOD_INFO_RESET } from '../types'\r\n\r\nconst initialState = {\r\n error: false,\r\n loaded: false,\r\n info: {},\r\n}\r\n\r\nexport const selectedPeriodInfo = (state = initialState, action ) => {\r\n switch (action.type) {\r\n case SET_SELECTED_PERIOD_INFO_LOADING:\r\n return{\r\n ...state,\r\n loaded: false,\r\n error: false\r\n }\r\n case SET_SELECTED_PERIOD_INFO:\r\n return {\r\n ...state,\r\n info: {\r\n ...action.payload\r\n },\r\n loaded: true,\r\n error: false\r\n }\r\n\r\n case SET_SELECTED_PERIOD_INFO_ERROR:\r\n return{\r\n ...state,\r\n loaded: false,\r\n error: true,\r\n message: action.payload\r\n }\r\n\r\n case SET_SELECTED_PERIOD_INFO_RESET: \r\n return {\r\n error: false,\r\n loaded: false,\r\n info: {},\r\n }\r\n \r\n default:\r\n return state\r\n }\r\n}","const initialState = {\r\n isModalVisible: false,\r\n title: '',\r\n path: ''\r\n}\r\n\r\nexport const uiReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case 'modal/show':\r\n return {\r\n ...state,\r\n ...action.payload,\r\n isModalVisible: true\r\n };\r\n\r\n case 'modal/hide':\r\n return {\r\n ...state,\r\n isModalVisible: false\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n}","import { SET_PARAM } from '../types'\r\n\r\nconst initialState = {\r\n major: -1,\r\n period: -1,\r\n documentation: -1,\r\n enroll: -1, \r\n belate: -1,\r\n responsible: -1,\r\n date: -1,\r\n documentPending: -1\r\n}\r\n\r\nexport const exportDocumentReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n\r\n case SET_PARAM:\r\n return {\r\n ...state,\r\n ...action.param\r\n }\r\n \r\n default:\r\n return state\r\n }\r\n}","const initialState = []\r\n\r\nexport const majorsReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case 'majors/setAll':\r\n return action.payload\r\n \r\n default:\r\n return state\r\n }\r\n}","import { SET_PERIODS, DELETE_PERIOD } from '../types'\r\n\r\nconst initialState = []\r\n\r\nexport const periodsReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case SET_PERIODS:\r\n return action.payload\r\n\r\n case DELETE_PERIOD:\r\n return state.filter( period => period.slug !== action.payload )\r\n \r\n default:\r\n return state\r\n }\r\n}","const initialState = {\r\n page: 1,\r\n sizePerPage: 10,\r\n totalRecords: 0,\r\n records:[],\r\n deleted: false,\r\n filters:{\r\n documentation:'Todos',\r\n major: 'Todos',\r\n period: '',\r\n belate: 'Todos',\r\n enroll: 'Todos',\r\n shifting: 'Todos',\r\n name: '',\r\n control: '',\r\n documentPending: 'Todos'\r\n }\r\n}\r\n\r\nexport const candidatesListReducer = (state = initialState, action) => {\r\n switch(action.type) {\r\n case 'candidatesList/updateList': \r\n return {\r\n ...state,\r\n ...action.payload\r\n }\r\n\r\n case 'candidatesList/setPage':\r\n return {\r\n ...state,\r\n page: action.page\r\n }\r\n\r\n case 'candidatesList/setSizePerPage':\r\n return {\r\n ...state,\r\n ...action.payload\r\n }\r\n\r\n case 'candidatesList/setFilters':\r\n return {\r\n ...state,\r\n filters: {\r\n ...state.filters,\r\n ...action.payload\r\n }\r\n }\r\n \r\n case 'candidatesList/setListDeleted':\r\n return {\r\n ...state,\r\n deleted: action.payload\r\n }\r\n\r\n case 'candidatesList/delete':\r\n const students = state.records.filter( student => student.slug !== action.slug )\r\n return {\r\n ...state,\r\n totalRecords: students.length,\r\n records: [\r\n ...students\r\n ]\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}","import { combineReducers } from 'redux';\r\nimport { auth } from './reducers/auth';\r\nimport { unenrolledStudent } from './reducers/unenrolledStudent'\r\nimport { unenrolledStudentSelectedInfo } from './reducers/unenrolledStudentSelectedInfo'\r\nimport { selectedPeriodInfo } from './reducers/selectedPeriodInfo'\r\nimport { uiReducer } from './reducers/uiReducer'\r\nimport { exportDocumentReducer } from './reducers/exportDocumentReducer'\r\nimport { majorsReducer } from './reducers/majorsReducer'\r\nimport { periodsReducer } from './reducers/periodsReducer'\r\nimport { candidatesListReducer } from './reducers/candidatesListReducer';\r\n\r\nconst rootReducer = combineReducers(\r\n {\r\n auth,\r\n unenrolledStudent,\r\n unenrolledStudentSelectedInfo,\r\n uiReducer,\r\n exportDocumentReducer,\r\n majorsReducer,\r\n periodsReducer,\r\n candidatesListReducer,\r\n selectedPeriodInfo\r\n }\r\n)\r\n\r\nexport default rootReducer;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { createStore, applyMiddleware } from 'redux'\r\nimport thunk from 'redux-thunk'\r\nimport Root from './components/Root';\r\nimport rootReducer from './redux'\r\nimport { restoreAuthState } from './redux/actions/authActions';\r\nimport 'moment/locale/es-mx'\r\n\r\nglobal.moment = require('moment')\r\nglobal.moment.locale('es-mx')\r\n\r\nconst store = createStore(rootReducer, {}, applyMiddleware(thunk))\r\n\r\nstore.dispatch(restoreAuthState())\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n","module.exports = __webpack_public_path__ + \"static/media/Carta-compromiso-de-entrega-de-Certificado.ff17a43a.docx\";","import { API_URL } from '../config'\r\nimport { ApiException, ExpiredSessionException, AuthorizationException, NotFoundException, ValidationException, InternalServerErrorException } from './exceptions'\r\n\r\nclass Api {\r\n BaseUrl = API_URL;\r\n HTTPCodes = { \r\n \"Unauthorized\": 401,\r\n \"Forbidden\": 403,\r\n \"NotFound\": 404,\r\n \"UnprocessableEntity\": 422,\r\n \"InternalServerError\": 500\r\n }\r\n\r\n /**\r\n * Perform an API call, and get the response.\r\n * \r\n * @param {Promise} request Axios request object of the API call.\r\n * @returns {AxiosResponse} The API response, if successful.\r\n * \r\n * @throws {ExpiredSessionException}\r\n * @throws {AuthorizationException}\r\n * @throws {NotFoundException}\r\n * @throws {ValidationException}\r\n * @throws {InternalServerErrorException}\r\n * @throws {ApiException}\r\n */\r\n async perform(request){\r\n try{\r\n const result = await request();\r\n\r\n return result;\r\n } catch(e){\r\n if (!e.response){\r\n throw e;\r\n }\r\n\r\n return this.handleAPIError(e.response)\r\n }\r\n }\r\n\r\n /**\r\n * Throw an `ApiException` that fits the response status.\r\n * \r\n * @param {Object} response The unsuccessful axios response.\r\n */\r\n handleAPIError(response){\r\n const { status, data } = response;\r\n\r\n switch (status) {\r\n case this.HTTPCodes.Unauthorized:\r\n throw new ExpiredSessionException(data.error || undefined);\r\n\r\n case this.HTTPCodes.Forbidden:\r\n throw new AuthorizationException(data.message);\r\n\r\n case this.HTTPCodes.NotFound:\r\n throw new NotFoundException(data.message);\r\n\r\n case this.HTTPCodes.UnprocessableEntity:\r\n throw new ValidationException(data.errors);\r\n\r\n case this.HTTPCodes.InternalServerError:\r\n throw new InternalServerErrorException(data.error || data.message || undefined);\r\n\r\n \r\n default:\r\n throw new ApiException(status)\r\n }\r\n }\r\n\r\n generateAbsolutePath(relativePath){\r\n return this.BaseUrl + '/' + relativePath;\r\n }\r\n\r\n getAxiosConfig(){\r\n return {\r\n headers:{\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n };\r\n }\r\n\r\n sanitizeParameters(query = {}) {\r\n Object.entries(query).forEach(([name, value]) => {\r\n if (value === undefined || (!parseInt(value) && !value?.length)) {\r\n delete query[name]\r\n }\r\n });\r\n\r\n return query;\r\n }\r\n}\r\n\r\nexport default Api;","import PeriodsApi from '../../api/PeriodsApi'\r\nimport { DEFAULT_PERIOD_VALUE } from '../../constants/periods'\r\nimport { DELETE_PERIOD, SET_PERIODS } from '../types'\r\n\r\nexport const getAllPeriods = () => {\r\n return async (dispatch) => {\r\n \r\n try {\r\n const api = new PeriodsApi();\r\n\r\n const periods = parsePeriods( await api.list({ order: 'desc' }) );\r\n\r\n dispatch(setAllPeriods(periods))\r\n\r\n } catch (error) {\r\n console.error('error',error)\r\n }\r\n\r\n }\r\n}\r\n\r\n/**\r\n * Parse the API periods list for its use throughout the App.\r\n * @param {Array} list Periods list from the API.\r\n * @returns {Array}\r\n */\r\nconst parsePeriods = (list) => (\r\n list.map((period) => {\r\n // For form fields.\r\n [period.year, period.half] = period.nombre.split('-').map(part => Number(part));\r\n \r\n // For the