
    f6j                    V   S SK JrJr  S SKrS SKJrJrJrJrJ	r	J
r
JrJr  S SKJrJrJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJr  S SK J!r!J"r"J#r#J$r$J%r%J&r&  S SK'J(r(  S S	K)J*r*  S S
K+J,r,  S SK-J.r.  S SK/J0r0  S SK1J2r2  S SK3J4r4  S SK5J6r6  S SK7J8r8  S SK9J:r:  S SK;J<r<  S SK=J>r>  S SK?J@r@  S SKAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrI  S SKJJKrK  S SKLJMrM  S SKNJOrO  S SKPJQrQ  S SKRJSrS  S SKTJUrU  S SKVJWrW  S SKXJYrY  S SKZJ[r[  S SK\J]r]  S S K^J_r_  S S!K`Jara  S S"KbJcrc  S S#KdJere  S S$KfJgrg  S S%KhJiri  S S&KjJkrk  S S'KlJmrm  S S(KnJoroJprpJqrqJrrrJsrsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}J~r~JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S S)KJr  S S*KJrJrJrJrJrJrJr  S S+KJr  S S,KJr  S S-KJr  S SKrS SKrS SKrS SKrS SKrS S.KJrJr  S S/KJr  S S0KJrJr  \GR                  " \5      r SS1\S2\S3\\   S4\S5\\   S6\4S7 jjr SS8\S1\S2\S3\\   S5\\   S6S4S9 jjr  SS:\S1\S2\S;\\   S<\S=\\   S>\\   S?\\   S@\\   SA\S6\p4SB jjrSC\S:\S6\4SD jrS:\S1\S6\\   4SE jrS SKrS SFKJrJr  \" SGSH/SI9r\GR                  SJ5      \
" \m5      4S1\S:\4SK jj5       r\GR                  SL5      \" SM5      \
" \GR                  5      4SN\SO\4SP jj5       r\GR                  SQ5      \" SM5      \	" SSRSS9\" SSTSUSVSW9\" SS SXSY9\" SS SZSY9\
" \5      \
" \m5      4S1\SC\SN\S[\\   S5\\   S?\\   S>\\   S\\S:\4S] jj5       r\GR                  S^5      \
" \5      \
" \m5      4S_\S\\S:\4S` jj5       rS1\S:\S6\4Sa jrS:\S>\S6\\\\\4      \\\4   4Sb jrS>\S:\4Sc jr\GR                  Sd5      \
" \m5      \
" \5      4S>\S:\S\\4Se jj5       r\GR                  Sf5      \
" \m5      \
" \5      4S>\S:\S\\4Sg jj5       r\GR                  Sh5      \
" \m5      \
" \5      4S>\S:\S\\4Si jj5       rSSj\Sk\\   S6\4Sl jjrS:\Sm\\   Sn\\   S6\4So jr\GR                  Sp5      \
" \5      \
" \m5      4S1\Sq\S\\S:\4Sr jj5       r\GR                  Ss5      \
" \5      \
" \m5      4S1\Sq\S\\S:\4St jj5       r\GR                  Su5      \
" \5      \
" \m5      4S1\Sq\S\\S:\4Sv jj5       r\GR                  Sw5      \" SSxSS9\
" \m5      4S1\SC\Sy\\   S:\4Sz jj5       r\GR                  S{5      S|\4S} j5       r\GR                  S~5      S\4S j5       r\GR                  S5      \" SSS0S.S9\
" \5      4Sq\S\\4S jj5       rg)    )OptionalAnyN)	APIRouterstatus
UploadFileFileFormDependsBodyQuery)JSONResponseFileResponseResponse)DocumentsClass)$clone_register_book_section_b_blocks"clone_course_record_support_tablesclone_pai_support_tablesexpand_raeg_intervention_rows expand_learning_achievement_rows-apply_learning_achievement_period_top_spacing#clone_course_activity_record_blocks&clone_course_community_activity_blocks clone_course_acta_reunion_blocksexpand_rafc_participant_rowsexpand_tcee_participant_rowsexpand_arn_participant_rows)_load_attendees_row_to_dictattendee_phone_cellattendee_rut_cellattendees_rafcnia_lineattendees_rafcnit_line)StudentClass)HealthEvaluationClass)ProgressStatusStudentClass)$ProgressStatusIndividualSupportClass)StudentGuardianClass)IndividualSupportPlanClass)FonoaudiologicalReportClass),SchoolIntegrationProgramExitCertificateClass)AnamnesisClass)FamilyReportClass)InterconsultationClass)"GuardianAttendanceCertificateClass) PsychopedagogicalEvaluationClass)AC_CONTENT_CONTROL_HOLDCHART_PLACEHOLDERinject_evalua_matrix_word_table(inject_image_into_content_control_by_tag(insert_chart_placeholder_paragraph_imageparse_evalua_psychoped_matricesrender_evalua_pt_line_chart_png!strip_chart_placeholder_from_docx)ConnersTeacherEvaluationClass)	CespClass)ActionIncidentClass)IdtelReportClass) PsychomotorEvaluationReportClass)InformalTestTemplateClass)-PedagogicalEvaluationClassroomFirstGradeClass).PedagogicalEvaluationClassroomSecondGradeClass)-PedagogicalEvaluationClassroomThirdGradeClass).PedagogicalEvaluationClassroomFourthGradeClass)-PedagogicalEvaluationClassroomFifthGradeClass)-PedagogicalEvaluationClassroomSixthGradeClass)/PedagogicalEvaluationClassroomSeventhGradeClass).PedagogicalEvaluationClassroomEighthGradeClass)6PedagogicalEvaluationClassroomFirstGradeSecondaryClass)7PedagogicalEvaluationClassroomSecondGradeSecondaryClass)#ProfessionalDocumentAssignmentClass)get_db);BirthCertificateDocumentModelFolderModelDocumentModelGenderModelNationalityModelProfessionalModel	UserModelStudentModelProfessionalTeachingCourseModelCoordinatorsCourseModelMeetingSchedulalingModel MeetingSchedualingAgreementModel+MeetingSchedualingRegisterProfessionalModelDiversifiedStrategyModelCollaborativeWorkModelSupportOrganizationModelDiversityCriterionModelDiversityStrategyOptionModelCourseDiversityResponseModel#CourseDiversityResponseStudentModelCourseDiversityObservationModelAdjustmentAspectModelCourseAdjustmentModelCourseAdjustmentStudentModelCurricularAdequacyTypeModelCourseCurricularAdequacyModel$CourseCurricularAdequacySubjectModel$CourseCurricularAdequacyStudentModelEvalDiversityTypeModelCourseEvalDiversityModel#CourseEvalDiversityObservationModelCourseIndividualSupportModel#CourseIndividualSupportStudentModel FamilyCommunityStrategyTypeModelCourseFamilyCommunityModel%CourseFamilyCommunityObservationModel CourseTeacherRecordActivityModel#CourseTeacherRecordObservationModelCourseRecordSupportModelCourseRecordSupportStudentModel$CourseRecordSupportInterventionModelCourseLearningAchievementModelCourseActivityFamilyModelCourseActivityCommunityModelCourseActivityOtherModel+DifferentiatedStrategiesImplementationModelSubjectModelFamilyMemberModelCourseModelSchoolModelStudentAcademicInfoModelStudentPersonalInfoModelCommuneModelRegionModelSpecialEducationalNeedModelStudentGuardianModelInterconsultationModelSupportAreaModel$PsychopedagogicalEvaluationInfoModel)get_current_active_user)	UserLoginCreateDocumentRequestDocumentListRequestUploadDocumentRequestPaciProgressStatePdfRequest#PaciIntegralProgressStatePdfRequestPaciFullPdfRequest)Session)func)Path)datetimedate)defaultdict)professional_display_fields#map_professional_id_to_display_name
student_idcatalog_document_iddocument_type_idfile_extensionperiod_yearreturnc           	          U=(       d    SR                  5       nUR                  S5      (       d  SU 3nUb  [        U5      OSnUb  U  SU SU S[        U5       U 3$ U  SU SU U 3$ )u   
Nombre estable en disco para el mismo estudiante + documento del catálogo (+ año escolar si aplica).
Al regenerar o volver a subir, se sobrescribe el mismo fichero.
.pdf.r   __y)lower
startswithint)r   r   r   r   r   extdts          NC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routes\documents.py$_canonical_student_document_filenamer      s     #V
*
*
,C>>##i"2">	ABQ231RD3{;K:LSERR\./qSE::    resultc                    U R                  S5      S:X  d  U R                  S5      (       d  g[        U S   5      nUR                  5       (       a  UR                  R	                  5       S:w  a  g[        S5      [        XUSU5      -  nUR                  R                  SSS9   UR                  5       UR                  5       :X  a  UR                  U S	'   gUR                  5       (       a  UR                  5         [        [        U5      [        U5      5        [        U5      U S'   UR                  U S	'   g! [         a    [        R!                  S
USS9   gf = f)uk   Si hay un PDF generado en `result`, lo deja en la ruta canónica (sobrescribe destino). Mutación in-place.r   error	file_pathNr   files/system/studentsTparentsexist_okfilenamez&No se pudo mover PDF a ruta estable %s)exc_info)getr   is_filesuffixr   r   parentmkdirresolvenameexistsunlinkmovestrOSErrorloggerwarning)r   r   r   r   r   srcdests          r   _coerce_pdf_to_stable_storager      s$    zz(w&fjj.E.E
vk"
#C;;==CJJ,,.&8'(+O)96;, D 	KKdT2
V;;=DLLN*!%F:;;==KKMSXs4y!!$i{!YYz V?PTUVs   $1D7 A D7 7EEdb
period_strcanonical_filename	school_id	course_idprofessional_id	detail_idalways_new_versionc
                    [        S5      n
U R                  [        5      R                  [        R                  U:H  [        R
                  U:H  5      nUb"  UR                  [        R                  U:H  5      nUR                  [        R                  R                  5       5      R                  5       nU	(       Ga=  U R                  [        R                  " [        R                  " [        R                  5      S5      5      R                  [        R                  U:H  [        R
                  U:H  5      nUb"  UR                  [        R                  U:H  5      n[        UR                  5       =(       d    S5      nUS-   n[        UUUUUUU=(       d    SUU[         R"                  " 5       [         R"                  " 5       SS9nU R%                  U5        U R'                  5         U R)                  U5        U$ U(       a  UR*                  =(       d    SR-                  5       nU(       a1  UU:w  a+   U
U-  nUR/                  5       (       a  UR1                  5         XLl        X\l        Xll        U=(       d    SUl        Ub  Xl        X<l        [         R"                  " 5       Ul        U R'                  5         U R)                  U5        U$ [        UUUUSUU=(       d    SUU[         R"                  " 5       [         R"                  " 5       SS9nU R%                  U5        U R'                  5         U R)                  U5        U$ ! [2         a     Nf = f)u;  
Por defecto: actualiza la última fila folders del mismo estudiante/documento/período
con el nombre canónico, o inserta versión 1 si no existe.

Si always_new_version=True (p. ej. catálogo 42 Evalua): siempre INSERT con version_id
incrementado; no sobrescribe la última versión ni borra el fichero anterior.
r   Nr      )r   r   r   document_id
version_idr   r   filer   
added_dateupdated_datedeleted_date )r   queryrK   filterr   r   r   order_byr   descfirstr   coalescemaxr   scalarr   nowaddcommitrefreshr   stripr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   
upload_dirlv_qlast	max_ver_qmax_vernext_verrecold_fnops                      r   _upsert_folder_student_documentr      s   & -.J88K ''*,#66D {{;22j@A==//4467==?DHHT]]488K4J4J+KQOPWW""j0##'::
	 !!(()@)@J)NOIi&&(-A.Q;!++0q#"||~!
 	s
		


3
))/r((*f 22&(::<<IIK '	"".3! &N%$LLN
		


4
'',1<<>\\^C FF3KIIKJJsOJ=  s   0*L? ?
MMr   c                 4   UR                  [        5      R                  [        R                  U :H  [        R                  R                  S5      5      R                  5       n[        U=(       a&    UR                  =(       d    SR                  5       S:H  5      $ )uc   True si `document_id` es la fila del catálogo `documents` para Informe de evaluación psicomotriz.Nr   u"   Informe de evaluación psicomotriz)
r   rL   r   idr   is_r   booldocumentr   )r   r   rows      r   ._catalog_row_is_informe_evaluacion_psicomotrizr   -  so     		  K/1K1K1O1OPT1U	V	 
 \+2248\\]]r   c                    1 Skn[        S5      nU R                  [        5      R                  [        R                  U:H  5      R                  [        R                  R                  5       5      R                  5       nU(       a  [        USS5      (       a  UR                  =(       d    SR                  5       nU(       a[  [        U5      R                  R                  5       U;   a4  X5-  n UR                  5       (       a  [        UR!                  5       5      $  U R                  [$        5      R                  [$        R                  U:H  [$        R&                  S:H  [$        R(                  R+                  S5      [$        R,                  R/                  S5      5      R                  [$        R0                  R                  5       5      R3                  5       nU H  nUR(                  =(       d    SR                  5       nU(       a'  [        U5      R                  R                  5       U;  a  MV  X5-  n UR                  5       (       a  [        UR!                  5       5      s  $ M     g! ["         a     GN[f = f! ["         a     M  f = f)u   
Ruta absoluta de la imagen IV (cuantitativa): primero `psychopedagogical_evaluation_info.cognitive_quantitative_image_file`,
si no hay o el archivo falta, la última imagen en `folders` para documento 27.
   .bmp.gif.jpg.png.jpeg.webpr   !cognitive_quantitative_image_fileNr      )r   r   r   r   r   r   r   r   r   getattrr   r   r   r   r   r   r   r   rK   r   r   isnotr   r   r   all)	r   r   
image_extsbaseinfofnprowsr   s	            r   %_psychoped_doc27_cognitive_image_pathr  7  s   
 DJ'(D
56	4??:M	N	699>>@	A		 	 A4HH44:AAC$r(//'')Z7	A99;;qyy{++ 
 		""j0##r)""4($$((.	

 
+((--/	0	 	 hhn"##%T"X__**,J>I	yy{{199;''   /  *  		s$   --I* 5-I;*
I87I8;
J	J	)copyr   z
/documents	Documents)prefixtagsz/debug/doc19/{student_id}c                   #     [        U5      nUR                  U 5      n[        U[        5      (       a7  UR                  S5      (       d  UR                  S5      S:X  a  [	        SSS0S9$ [        U5      nUR                  U 5      n[        U[        5      (       a!  UR                  S5      S:X  a  [	        SSS0S9$ UR                  5       nUR                  SS5        UR                  S	S5        UR                  S
S5        [        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 nUR                  S5      =(       d    0 n	UR                  S5      =(       d    SR                  5       (       dq  UR                  S5      =(       d    S SUR                  S5      =(       d    S SUR                  S5      =(       d    S 3R                  5       n
U
(       a  U
OSU  3US'   UR                  S5      =(       d    SR                  5       (       d5  UR                  S5      =(       d    UR                  S5      =(       d    SUS'   UR                  S5      =(       d    SR                  5       (       d*  UR                  S5      (       a  UR                  S5      US'   UR                  S5      =(       d    SR                  5       (       Gd)  UR                  S5      (       Ga   [        R                  " [        UR                  S5      5      S5      R                  5       n[        R                  " 5       R                  5       nUR                  S5      (       a2   [        R                  " [        US   5      S5      R                  5       nUR                   UR                   -
  nUR"                  UR"                  -
  nUS:  a
  US-  nUS-  nUS:  a  U SUS:w  a  S OS 3OU S!US:w  a  S"OS 3US'   UR                  S#5      (       dI  UR                  S$5      =(       d    SR                  5       (       d  UR                  S#5      nU(       a  XS#'   UR                  S%5      (       d*  U	R                  S&5      (       a  U	R                  S&5      US%'   UR                  S'5      (       d*  U	R                  S(5      (       a  U	R                  S(5      US''   UR                  S)5      (       d  UR%                  [&        5      R)                  [&        R*                  U :H  5      R-                  [&        R.                  R1                  5       5      R3                  5       nU(       a  UR.                  US)'   UR                  S#5      (       a  UR%                  [4        5      R)                  [4        R.                  US#   :H  5      R3                  5       nU(       a   UR6                  (       a  UR6                  US$'   UR                  S#S5        UR                  S$5      =(       d    SR                  5       (       d  UR                  S#5      (       am  UR%                  [4        5      R)                  [4        R.                  US#   :H  5      R3                  5       nU(       a   UR6                  (       a  UR6                  US$'   UR                  S%5      nU(       a  UR%                  [8        5      R)                  [8        R:                  S:H  [8        R.                  U:H  5      R3                  5       nU(       a  UR<                  (       a  UR<                  OSUS*'   OSUS*'   UR                  S%S5        UR                  S'5      nU(       am  UR%                  [>        5      R)                  [>        R.                  U:H  5      R3                  5       nU(       a  UR@                  (       a  UR@                  OSUS+'   OSUS+'   UR                  S'S5        UR                  S)5      nU(       Gal  UR%                  [&        5      R)                  [&        R.                  U:H  5      R3                  5       nU(       a  URB                  =(       d    S SURD                  =(       d    S SURF                  =(       d    S 3R                  5       US,'   URH                  =(       d    SUS-'   URJ                  (       aw  UR%                  [L        5      R)                  [L        R.                  URJ                  :H  5      R3                  5       nU(       a  URN                  (       a  URN                  OSUS.'   OUSUS.'   OOUR                  S/5      =(       d    SUS,'   SUS-'   SUS.'   O'UR                  S/5      =(       d    SUS,'   SUS-'   SUS.'   UR                  S)S5        UR                  S/S5        S0S1S2S3S4.nUR                  S55      nUb  UR                  U5      OSUS6'   [	        S7S8U0S9$ ! [         a     GNf = f! [         a     GN3f = f! [         a  n[	        S9S[        U5      0S9s SnA$ SnAff = f7f):uL   Devuelve los datos que se enviarían al PDF del documento 19 (para depurar).r   r     Estudiante no encontradostatus_codecontentz>No hay progress_status_individual_support para este estudianter   Nr   r   student_datapersonal_dataacademic_infostudent_full_namer   names father_lastnamemother_lastnameEstudiante student_identification_numberidentification_numberstudent_born_date	born_datestudent_age%Y-%m-%dprogress_dater   r          años mesesr   student_schoolstudent_course_idr   student_nee_idspecial_educational_need_idguardian_relationship_idcourse_namenee_nameguardian_fullnameguardian_rutguardian_relationshipguardian_name1er Trimestre2do Trimestre1er Semestre2do Semestrer            	period_idperiod_label   data  )(r#   r   
isinstancedictr   r&   get_by_student_idr  popr   r   strptimer   r   r   	Exceptionyearmonthr   r   r   r   r   r   r   r   r{   school_namerz   deleted_status_idr*  r   special_educational_needsr  r  r  r  family_member_idry   family_member)r   r   student_servicestudent_result
ps_service	ps_resultps_datar  personalacademic_fnbornrefyearsmonthssidg_firstschoolr   coursenee_idneeguardian_idgfmperiod_labelspides                               r   debug_doc19_datarb  n  s	    eH&r*(,,Z8nd++1C1CG1L1LP^PbPbckPlpwPwC'C]9^__9"=
00<	i&&9==+Bg+MC'  DD  :E  F  F.."D$L$'ND)AKN\`AaAa~))."=gi##O4:##O4:/06B==??\\'*0b18<<@Q3R3XVX2YYZ[c[g[ghy[z  \A  A  [B  C  I  I  KC253[;UG'(;<BIIKK7?||D[7\  8P`l`p`p  rI  aJ  8P  NPG34/06B==??HLLQ\D]D]+3<<+DG'(M*0b7799hll;>W>W((X\\+-F)GTYY[lln))+;;//&//GO4L0MzZ__a 499,TZZ/A:QJEbLFW\_`W`E7%uzr7R)Siohppt  ~D  HI  ~Iuy  OQ  uR  gS& {{;''=M1N1TRT0[0[0]0]"";/C'*${{.//HLL4M4M+3<<+DG'({{+,,>[1\1\(05R(SG$%{{566hh34;;<P<[<[_i<ijss  uI  uL  uL  uQ  uQ  uS  T  Z  Z  \G6=jj23;;{##XXk*11+..GKDX2XY__aF&,,,2,>,>()KKT*,-3::<<AQAQR]A^A^XXk*11+..LQ\D]2]^ddfF&,,,2,>,>()KK 34	XXk*11+2O2OST2TVaVdVdhqVqrxxzF;AfFXFXV%7%7^`GM"%'GM"'.-.((67>>?Z?]?]ag?ghnnpCCF3KhKh#"?"?npGJ"$GJ$d+kk"<=-.556J6M6MQ\6\]cceA23''-R!BSBSBYWYAZZ[\]\m\m\sqs[t/u/{/{/}+,*+*A*A*GR'%%"34;;<M<P<PTUTfTf<fgmmoBKMRTRbRbr7G7GhjG3479G34/6{{?/K/Qr+,*,'35/0+2;;+G+M2G'(&(GN#/1G+,.5OT*+NWefkk+&<?O-"3"3C"8QSfg5FGGK %   |  Hgs1v5FGGHs   i2A'i +i2,Ai =i2>H?i >A6h5 51h$ &A)h5 Xi #i2$
h2.h5 1h22h5 5
i?i ii 
i/i*$i/%i2*i//i2z/create.r   document_datac           	        #    Sn U R                   R                  S5      (       d  [        [        R                  SSSS.S9$ [
        R                  " SSS9 nU R                  5       I Sh  vN nUR                  U5        UR                  nSSS5        UR                  nUR                  n[        R                  " UUS	9nU(       a:  [        R                  R!                  U5      (       a  [        R"                  " U5        US
   S:X  a  [        [        R$                  SUS   SS.S9$ ['        US   US   SS9n[)        U5      UR*                  S'   U$  N! , (       d  f       N= f! [,         a|  n	U(       aC  [        R                  R!                  U5      (       a   [        R"                  " U5        O!    O= f[        [        R$                  SS[)        U	5       3SS.S9s Sn	A	$ Sn	A	ff = f7f)z~
Crea un documento procesado a partir de un PDF subido.
Reemplaza [STUDENT_NAMES] con el nombre del estudiante proporcionado.
Nr     zEl archivo debe ser un PDFr   messager;  r  F)deleter   )original_file_pathstudent_namer   r   r<  rg  r   r   application/pdfpathr   
media_typezX-Document-Type-IdzError general: )r   endswithr   r   HTTP_400_BAD_REQUESTtempfileNamedTemporaryFilereadwriter   rj  r   r   parent_authorizationosrm  r   r   HTTP_500_INTERNAL_SERVER_ERRORr   r   headersrB  )
r   rc  temp_file_path	temp_filer  rj  r   r   responsera  s
             r   create_documentr|    s     NA
}}%%f--"77!;   ((fE IIK'GOOG$&^^N F %11(9944-%
 bggnn^<<IIn%(w&"AA!%i0    $J'(

 255E1F-.E ( FEJ  
bggnn^<<		.)==,SVH5
 	

s   G2;E) G2E) E+E,!EBE) *G2+*E) G2E
E&"E) )
G/3+G*F65G*6F:8,G*$G/%G2*G//G2z"/upload/{student_id}/{document_id}uI   Título del informe (obligatorio para documento catálogo 42 – Evalua).)descriptioni  i4  uA   Año del período escolar (query; enviado por interceptor/cookie))geler}  z5Profesional que sube el archivo (asignaciones Pie360))r~  r}  zFCurso del estudiante; si no viene, se usa academic_info del estudiantetitlesession_userc	                   #     [        U5      n	U	R                  U 5      n
[        U
[        5      (       ao  U
R                  S5      (       d  U
R                  S5      S:X  aD  [	        [
        R                  SU
R                  S5      =(       d    U
R                  SS5      SS.S9$ U
R                  S	0 5      nUR                  S
5      =(       d    [        U 5      nUR                  [        5      R                  [        R                  U:H  [        R                  R                  S5      5      R                  5       nU(       d  [	        [
        R                  SSU 3SS.S9$ UR                  n[!        U5      S:X  a<  U=(       d    SR#                  5       nU(       d  [	        [
        R$                  SSSS.S9$ UR&                  (       a-  [)        UR&                  5      R*                  R-                  5       OSn[/        XUUU5      n[)        S5      nUR1                  SSS9  UU-  nUR3                  5       I Sh  vN n[5        US5       nUR7                  U5        SSS5        [        U[        5      (       a#  [!        UR                  S5      =(       d    S5      OSn[        U[        5      (       a  UR                  S5      =(       d    0 O0 n[        U[        5      (       a#  [!        UR                  S5      =(       d    S5      OSn[!        U=(       d    S5      =(       d(    [!        [9        USS5      =(       d    S5      =(       d    Sn[!        U=(       d    S5      =(       dC    [!        U=(       d    S5      =(       d(    [!        [9        USS5      =(       d    S5      =(       d    Sn[!        U=(       d    S5      =(       dN    [!        [9        USS5      =(       d    S5      =(       d(    [!        [9        USS5      =(       d    S5      =(       d    SnUb  [        U5      O[[        [9        USS5      =(       d    S5      R#                  5       =(       d(    [        [:        R<                  " 5       R>                  5      nSnUS:X  Ga  UR                  [@        5      R                  [@        RB                  U :H  5      RE                  [@        R                  RG                  5       5      R                  5       nU(       a7  UUl$        [:        R<                  " 5       Ul%        [!        UR                  5      nOh[A        U U[:        R<                  " 5       [:        R<                  " 5       S9nURM                  U5        URO                  5         [!        UR                  5      n[!        U5      S:X  a  SSK(J)n  U" U5      n U RU                  U [!        U5      U=(       d    SR#                  5       5      n![        U![        5      (       aA  U!R                  S5      S:X  a,  [	        [
        RV                  SU!R                  SS5      SS.S9$ [!        U!R                  S5      =(       d    S5      =(       d    SnUn"[Y        UU UU"UUUUU[!        U5      S:H  S 9
n#U#RZ                  n$US!:X  a  US";   a   UR                  [\        5      R                  [\        RB                  U :H  5      RE                  [\        R                  RG                  5       5      R                  5       n%U%(       a1  UU%l/        [:        R<                  " 5       U%l0        URc                  5          [        U[        5      (       a  UR                  S5      =(       d    0 O0 n&U(       a  [!        U5      S:  a  [!        U5      OSn'U'cC  [        U&[        5      (       a.  U&R                  S5      n(U(b  [!        U(5      S:  a  [!        U(5      n'[i        U5      Rk                  UU [!        U5      [!        U5      Ub  [!        U5      OSU'S#9  [	        [
        Rl                  S$S%U#R                  UU$U UU[        U5      UR&                  S&.S.S9$  GN,! , (       d  f       GN= f! [d         a    URg                  5          GNLf = f! [d         a     Nf = f! [d         aB  n)URg                  5         [	        [
        RV                  SS'[        U)5       3SS.S9s Sn)A)$ Sn)A)ff = f7f)(z#
Sube un documento (PDF o imagen).
r   r   r  rg  r  Nrf  r  r  r  u*   No se encontró documento con document_id *   r   re  u1   Debe enviar el título del informe (campo title).r   Tr   wbr   r   r  r   r   customer_idr   r   )r   birth_certificater   r   )EvaluaResultClassr<  u'   Error al guardar el título del informe)r   r   r   r   r   r   r   )r   r   document_catalog_idr   r   r      zDocumento subido exitosamente)r   r   r   r   r   r   r   original_filenamezError subiendo archivo: )7r#   r   r=  r>  r   r   HTTP_404_NOT_FOUNDr   r   rL   r   r   r   r   r   r   r   r   rp  r   r   r   r   r   r   rs  openrt  r   r   r   rC  rJ   r   r   r   r  r   r   flush'app.backend.classes.evalua_result_classr  upsert_titlerw  r   r   r   r   
updated_atr   rB  rollbackrH   "mark_completed_after_folder_uploadHTTP_201_CREATED)*r   r   r   r  r   r   r   r  r   rJ  rK  r  r  r   r   t0r   unique_filenamer   r   r  fstudent_school_idr  r&  resolved_school_idresolved_course_idresolved_professional_idresolved_period_yeardetail_id_value	birth_rowr  svcres_42r   
new_foldernew_version_ideval_rowairesolved_coursecra  s*                                             r   upload_documentr  )  s    >F
&r*(,,Z8nd++1C1CG1L1LP^PbPbckPlpwPw"55!-11':wn>P>PQZ\v>w   &))."=(4(8(89P(Q(dUXYcUd% 88M*11+&&**40
 %' 	
 "55!!KK=Y   $44{r!+2$$&B# & ; ;"%#V $  @D}}dmm,3399;RT ?%5~{
 12
50			#)T"aGGG # HRR^`dGeGeC 0 0 = BCklEOP\^bEcEc))/:@bikHRS`bfHgHgC 1 1+ > C!Dmn !2!7a8sCVacd@e@jij<ksos a0  KC8I8NQ4O  KSVW^_kmxz{W|  XB  AB  TC  K  GK$1% 7<q16Q77<:?a@ 	 	! & W\="=CDJJLhPST\T`T`TbTgTgPh 	 *.!675@@JNO7::??AB	  .=	+)1	&"%ill"39)&5'||~!)		 y!
"%ill"3{r!Q#B'C%%j#k2BU[bDWDWDYZF&$''FJJx,@G,K# & E E"%#)::i9b#c $  "&**T"2"7a8@DO)
4((4% #K 0B 6

 $.."3e!eHHABV@KKzYZXBEEJJLMUW	  APH>*2,,.H'IIK
	>HW[>\>\,""?39rbdB09c)nq>Pc)nVZO&:b$+?+?FF;'=SVaZ&)!fO/3VV'%$'$4!$%5!68G8SO 4Y]) W  //:$--#."0",(8 /!$Y)-	
 	
] $""n  &  		*  	

==5c!fX>
 	
	
s   c9Bb* #c9$B;b* c9 Ab* 6c97Bb* 8a$9b* 	a'O#b* >c9?A$b* $B&a9 Cb "Ab* #c9$b* '
a61b* 9bb* bb* 
b'$b* &b''b* *
c647c1+c6,c91c66c9z/listfiltersc           	        #     [        U5      nUR                  U R                  U R                  5      n[	        U[
        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS.S9$ [        [        R                  S	U(       a  S
OSUS.S9$ ! [         a2  n[        [        R                  SS[        U5       3SS.S9s SnA$ SnAff = f7f)zR
Lista los documentos configurados, devolviendo solo document_type_id y document.
r   r   r<  rg  zError listando documentosNrf  r  r:  zDocumentos encontradoszNo hay documentos registradoszError listando documentos: )r   get_allr   career_type_idr=  r>  r   r   r   rw  HTTP_200_OKrB  r   )r  r  r   	documentsr;  ra  s         r   list_documentsr    s     
"2&	  !9!97;Q;QRdD!!dhhx&8G&C"AA!#xx	3NO   **7;3A`
 	
  
==8QA
 	

sA   C/BB0 
C/$B0 /C/0
C,:'C'!C,"C/'C,,C/c                 <k  G^  [        U5      nUR                  U 5      n[        U[        5      (       a1  UR                  S5      (       d  UR                  S5      S:X  a  SSSS.$ UR                  S0 5      =(       d    0 nUR                  S0 5      =(       d    0 nUR                  S0 5      =(       d    0 nUR                  S	S
5      =(       d    S
 SUR                  SS
5      =(       d    S
 SUR                  SS
5      =(       d    S
 3R	                  5       nU(       d  SU  3nS
nS
n	S
n
UR                  S5      nU(       Ga   [        U[
        5      (       aL  [        [        U5      5      S:  a1  [        R                  " [        U5      SS S5      R                  5       OSnO#[        US5      (       a  UR                  5       OUnU(       a  [        US5      (       a  UR                  S5      O
[        U5      n[        R                  " 5       nUR                  UR                  -
  UR                  UR                  4UR                  UR                  4:  -
  n	UR                  UR                  -
  S-  UR                  UR                  -
  -   nUR                  UR                  :  a  US-  nUS-  n
[        U	5      n	[        U
5      n
OU(       a  [        U5      OS
n SnSnUR                  S5      nU(       a  U(       a  UR#                  [$        5      R'                  [$        R(                  U:H  5      R+                  5       nU(       aB  UR,                  (       a1  [        UR,                  5      R/                  5       R	                  5       OS
nU(       a;  SU;   d  US:X  d  SU;   d  SU;   a  Su  nnOSU;   d  US :X  d  S!U;   d  S"U;   a  S#u  nnS
nUR                  S$5      (       a  U(       a  UR#                  [0        5      R'                  [0        R(                  UR                  S$5      :H  5      R+                  5       nU(       a4  UR2                  (       a#  [        UR2                  5      R	                  5       n[        UR                  S%5      =(       d    S
5      R	                  5       n[        UR                  S&5      =(       d    S
5      R	                  5       n[        UR                  S'5      =(       d    S
5      R	                  5       n[        UR                  S(5      =(       d    S
5      R	                  5       nS
nS
nU(       Ga2  UR                  S)5      nU(       a  UR#                  [4        5      R'                  [4        R6                  S*:H  [4        R(                  U:H  5      R+                  5       nU(       a,  [        UR8                  =(       d    S
5      R	                  5       OS
nUR                  S+5      nU(       ax  UR#                  [:        5      R'                  [:        R(                  U:H  5      R+                  5       nU(       a,  [        UR<                  =(       d    S
5      R	                  5       OS
nS
=n =n!=n"n#S
=n$=n%=n&n'[?        U5      n(U(RA                  U 5      n)[        U)[        5      (       Ga=  U)R                  S5      S:w  Ga'  S, n*U)R                  S-5      =(       d    / n+U)R                  S.5      =(       d    / n,U*" U+S/5      (       d  U*" U+S05      (       a  S1n U*" U+S25      (       d  U*" U+S35      (       a  S1n!U*" U+S45      (       d  U*" U+S55      (       a  S1n"U*" U+S65      (       d  U*" U+S75      (       a  S1n#U*" U,S/5      (       d  U*" U,S05      (       a  S1n$U*" U,S25      (       d  U*" U,S35      (       a  S1n%U*" U,S45      (       d  U*" U,S55      (       a  S1n&U*" U,S65      (       d  U*" U,S75      (       a  S1n'/ S8Q/ S8Q/ S8Q/ S8QS9.n-/ S8Q/ S8Q/ S8QS:.n.S
/S;-  S
/S;-  S
/S;-  S
/S;-  S
/S;-  S<.n/[        U)[        5      (       Ga  U)R                  S5      S:w  Gai  U)R                  S=5      =(       d    / n0[C        [E        S>[        U05      5      5       GH2  n1U0U1   n2[        U2R                  S?5      =(       d    S
5      R	                  5       U-S?   U1'   [        U2R                  S@5      =(       d    S
5      R	                  5       U-SA   U1'   [        U2R                  SB5      =(       d    S
5      R	                  5       U-SB   U1'   U2R                  SC5      nU(       d  M   [        U[
        5      (       aC  [        U5      S:  a4  [        R                  " USS S5      n3U3R                  S5      U-S   U1'   GM!  [        U5      U-S   U1'   GM5     U)R                  SD5      =(       d    / n4[C        [E        S>[        U45      5      5       GHd  n1U4U1   n5[        U5R                  SE5      =(       d    S
5      R	                  5       U.SF   U1'   U5R                  SC5      nU(       ai   [        U[
        5      (       aA  [        U5      S:  a2  [        R                  " USS S5      n3U3R                  S5      U.S   U1'   O[        U5      U.S   U1'    U5R                  SG5      n6U6(       d  M  U(       d  M  UR#                  [F        5      R'                  [F        R(                  U6:H  5      R+                  5       n7U7(       d  GM1  [I        UU75      RJ                  =(       d    S
R	                  5       U.S?   U1'   GMg     U)R                  SH5      =(       d    / n8[C        [E        S;[        U85      5      5       GH  n1U8U1   n9[        U9R                  S?5      =(       d    S
5      R	                  5       U/S?   U1'   [        U9R                  S@5      =(       d    S
5      R	                  5       U/SA   U1'   [        U9R                  SI5      =(       d    S
5      R	                  5       U/SI   U1'   [        U9R                  SJ5      =(       d    S
5      R	                  5       U/SJ   U1'   [        U9R                  SK5      =(       d    S
5      R	                  5       U/SK   U1'   GM     S
S
S
S
S
S
S
S
S
S
SL.
n:0 SMSN_SOSP_SQSP_SRSS_STSS_SUSV_SWSV_SXSY_SZSY_S[S\_S]S^_S_S`_SaS`_SbSc_SdSc_SeSf_SgSf_n;[        U)[        5      (       a  U)R                  S5      S:w  a  U)R                  Sh5      =(       d    /  H  n<[        U<[        5      (       d  M  U<R                  S?5      =(       d    S
R	                  5       R/                  5       n=[        U<R                  S5      =(       d    S
5      R	                  5       n>U;R                  U=5      n?U?(       d  M  U>U:U?'   M     S
n@S
nAS=nB=nC=nD=nE=nF=nG=nH=nI=nJ=nK=nLnMS=nN=nO=nP=nQ=nRnSS=nT=nU=nV=nW=nX=nY=nZ=n[=n\n]S=n^=n_=n`=na=nb=nc=ndneS
=nf=ng=nh=ninjS
=nk=nl=nm=nn=nonpS
=nq=nr=nsntS
nuS=nv=nw=nx=ny=nz=n{=n|n}S=n~=n=n=n=nnS=n=n=n=n=n=n=n=n=n=n=nnS/Si-  nS/Si-  nS/S;-  nS/S;-  nS=n=n=nnS
nS/Sj-  nS/Sj-  nS/S;-  nS/S;-  nS
nS/S-  nS/S-  nS/Sk-  nS/Sk-  nS
nS
nS
nS/Sj-  nS=n=n=nnS
nS=n=nnS=n=nnS
nS=n=n=n=nnS=nnS
nS=n=n=n=n=n=n=nnS
nS
nS=nnS
nS=n=nnS
nS=nnS
nS
nS
nS/Sl-  nS/Sm-  nS
nS
nS
nS
nS
n[        U)[        5      (       G	a  U)R                  S5      S:w  G	a  [        U)R                  Sn5      =(       d    S
5      R	                  5       n@[        U)R                  So5      =(       d    S
5      R	                  5       nAU)R                  Sp5      nUS:X  a  S1nBOWSq:X  a  S1nCU)R                  Sr5      nUS:X  a  S1nDOWSq:X  a  S1nEOWSs:X  a  S1nFOWS>:X  a  S1nGU)R                  St5      nUS:X  a  S1nHOWSq:X  a  S1nIU)R                  Su5      nUS:X  a  S1nJOWSq:X  a  S1nKU)R                  Sv5      nUS:X  a  S1nLOWSq:X  a  S1nMU)R                  Sw5      =(       d    0 n[        U[
        5      (       a    W(       a  [L        RN                  " W5      O0 n[        W[        5      (       a  WR                  Sx5      OSnUS:X  a  S1nNOWSq:X  a  S1nO[        W[        5      (       a  WR                  Sy5      OSnUS:X  a  S1nPOWSq:X  a  S1nQ[        W[        5      (       a  WR                  Sz5      OSnUS:X  a  S1nROWSq:X  a  S1nS[        W[        5      (       a  WR                  S{5      OSnUS:X  a  S1nTOWSq:X  a  S1nU[        W[        5      (       a  WR                  S|5      OSnUS:X  a  S1nVOWSq:X  a  S1nW[        W[        5      (       a  WR                  S}5      OSnUS:X  a  S1nXOWSq:X  a  S1nY[        W[        5      (       a  WR                  S~5      OSnUS:X  a  S1nZOWSq:X  a  S1n[[        W[        5      (       a  WR                  S5      OSnUS:X  a  S1n\OWSq:X  a  S1n][        W[        5      (       a  WR                  S5      OSnUS:X  a  S1n^OWSq:X  a  S1n_[        W[        5      (       a  WR                  S5      OSnUS:X  a  S1n`OWSq:X  a  S1na[        W[        5      (       a  WR                  S5      OSnUS:X  a  S1nbOWSq:X  a  S1nc[        W[        5      (       a  WR                  S[5      OSnUS:X  a  S1ndOWSq:X  a  S1ne[        W[        5      (       a  WR                  S5      OSn[        U=(       d    U)R                  S5      =(       d    S
5      R	                  5       nf[        U)R                  S5      =(       d    S
5      R	                  5       ng[        U)R                  S5      =(       d    S
5      R	                  5       nh[        U)R                  S5      =(       d    S
5      R	                  5       ni[        U)R                  S5      =(       d    S
5      R	                  5       nj[        U)R                  S5      =(       d    S
5      R	                  5       nk[        U)R                  S5      =(       d    S
5      R	                  5       nl[        U)R                  S5      =(       d    S
5      R	                  5       nm[        U)R                  S5      =(       d    S
5      R	                  5       nn[        U)R                  S5      =(       d    S
5      R	                  5       no[        U)R                  S5      =(       d    S
5      R	                  5       np[        U)R                  S5      =(       d    S
5      R	                  5       nq[        U)R                  S5      =(       d    S
5      R	                  5       nr[        U)R                  S5      =(       d    S
5      R	                  5       ns[        U)R                  S5      =(       d    S
5      R	                  5       nt[        U)R                  S5      =(       d    S
5      R	                  5       nuU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
nUS;   a  S1nvOWS;   a  S1nwOWS;   a  S1nxOWS;   a  S1nyU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
nUS;   a  S1nzOWS;   a  S1n{OWS;   a  S1n|U)R                  S5      nUS:X  a  S1nOWSq:X  a  S1nU)R                  S5      nUS:X  a  S1nOWSq:X  a  S1nU)R                  S5      nUbD  [        W5      R	                  5       R/                  5       nUS;   d  WS:X  a  S1n~OWS;   d  WSq:X  a  S1nS GmSGU4S j4SGU4S j4SGU4S j4SGU4S j4SGU4S j4SGU4S j44 Hp  u  nnU)R                  U5      nUc  M  GT" W5      u  nnWS:X  a  WWnnM4  WS:X  a  WWnnM@  WS:X  a  WWnnML  WS:X  a  WWnnMX  WS:X  a  WWnnMd  WS:X  d  Ml  WWnnMr     Sn[Q        U5       H9  u  n1nU1Si:  a    O/U)R                  W5      nUS:X  a  S1WU1'   M,  WSq:X  d  M4  S1WU1'   M;     Sn[Q        U5       HL  u  n1nU1S;:  d  Wc    O?U)R                  W5      nUb  [S        W5      OSnWS:X  a  S1WU1'   M?  WSq:X  d  MG  S1WU1'   MN     U)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
nUS:X  a  S1OSnWS:X  a  S1OSnWS:X  a  S1OSnWS[:X  a  S1OSn[        U)R                  S5      =(       d    S
5      R	                  5       nSnS/Sj-  nS/Sj-  n[Q        U5       HI  u  n1nU1Sj:  a    O?U)R                  W5      nUb  [S        W5      OSnWS:X  a  S1WU1'   M<  WSq:X  d  MD  S1WU1'   MK     SnS/S;-  nS/S;-  n[Q        U5       HI  u  n1nU1S;:  a    O?U)R                  W5      nUb  [S        W5      OSnWS:X  a  S1WU1'   M<  WSq:X  d  MD  S1WU1'   MK     [        U)R                  S5      =(       d    S
5      R	                  5       nSn[Q        U5       HI  u  n1nU1S:  a    O?U)R                  W5      nUb  [S        W5      OSnWS:X  a  S1WU1'   M<  WSq:X  d  MD  S1WU1'   MK     Sn[Q        U5       HI  u  n1nU1Sk:  a    O?U)R                  W5      nUb  [S        W5      OSnWS:X  a  S1WU1'   M<  WSq:X  d  MD  S1WU1'   MK     [        U)R                  S5      =(       d    S
5      R	                  5       n[        U)R                  S5      =(       d    S
5      R	                  5       n[        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
nUS:X  a  S1WS*'   OWS:X  a  S1WS'   U)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
nUS:X  a  S1WSq'   OWS:X  a  S1WSs'   U)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
nUS:X  a  S1WS>'   OWS:X  a  S1WS'   U)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
nUS:X  a  S1nOWS;   a  S1nOWS;   a  S1nOWS[:X  a  S1n[        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
Gn GU S:X  a  S1nOGW S;   a  S1nO	GW S;   a  S1nU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
GnGUS:X  a  S1nOGWS:X  a  S1nO	GWS:X  a  S1n[        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  S5      U)R                  S5      U)R                  S5      U)R                  S5      U)R                  S5      4GnGUS*   (       a  [S        GWS*   5      (       a  S1OSnGWS   (       a  [S        GWS   5      (       a  S1OSnGWSq   (       a  [S        GWSq   5      (       a  S1OSnGWSs   (       a  [S        GWSs   5      (       a  S1OSnGWS>   (       a  [S        GWS>   5      (       a  S1OSnU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
GnGUS:X  a  S1nO	GWS;   a  S1n[        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
GnGU(       a  GWRY                  SS5      R[                  5        GVs/ s H-  GnGUR	                  5       (       d  M  GWR	                  5       PM/     sGn=(       d    GW/ H\  GnGUS:X  a  S1nM  GWS;   a  S1nM  GWS;   a  S1nM%  GWS:X  a  S1nM0  GWS:X  a  S1nM;  GWS:X  a  S1nMF  GWS;   a  S1nMQ  GWS;   d  MZ  S1nM^     [        U)R                  S5      =(       d    S
5      R	                  5       n[        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  S5      GnGUS:X  a  S1nO	GWSq:X  a  S1n[        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
GnGUS:X  a  S1nOGWS:X  a  S1nO	GWS;   a  S1n[        U)R                  S5      =(       d    S
5      R	                  5       nSGn	GU	 HG  u  nGn
GnU)R                  U5      n Ub  [S        W5      OSnWS:X  a  S1WGW
'   M9  WSq:X  d  MA  S1WGW'   MI     U)R                  S5      GnGUS:X  a  S1nO{GWSq:X  a  S1nOq[        U)R                  S5      =(       d    S
5      R	                  5       (       d6  [        U)R                  S5      =(       d    S
5      R	                  5       (       a  S1nOS1n[        U)R                  S5      =(       d    S
5      R	                  5       n[        U)R                  S5      =(       d    S
5      R	                  5       n[        U)R                  S5      =(       d    S
5      R	                  5       nU(       d  UnS GnU)R                  S5      b?  [        U)R                  S5      =(       d    S
5      R	                  5       R/                  5       OS
GnSGU;   a  S1WS*'   OSGW;   a  S1WS'   [        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  S5      =(       d    / Gn[        GU[
        5      (       a#   GW(       a  [L        RN                  " GW5      O/ GnGW" GWS5      (       a  S1WSq'   GW" GWS5      (       a  S1WSs'   GW" GWS5      (       a  S1WS>'   GW" GWS5      (       d  GW" GWS5      (       a  S1WS'   GW" GWS5      (       d  GW" GWS5      (       a  S1WSj'   GW" GWS5      (       a  S1WS'   [        U)R                  S5      =(       d    S
5      R	                  5       nU)R                  GS 5      =(       d    / Gn[        GU[
        5      (       a#   GW(       a  [L        RN                  " GW5      O/ GnGW" GWS5      (       a  S1WS;'   GW" GWS5      (       a  S1WGS'   GW" GWS5      (       a  S1WS'   [        U)R                  GS5      =(       d    S
5      R	                  5       nU)R                  GS5      =(       d    / Gn[        GU[
        5      (       a#   GW(       a  [L        RN                  " GW5      O/ GnGW" GWGS5      (       a  S1WSk'   GW" GWGS5      (       a  S1WS'   GW" GWGS5      (       d  GW" GWGS5      (       a  S1WGS'   GW" GWGS	5      (       a  S1WSl'   GW" GWGS
5      (       a  S1WGS'   GW" GWS[5      (       d  GW" GWGS5      (       a  S1WSi'   [        U)R                  GS5      =(       d    S
5      R	                  5       nU)R                  GS5      =(       d    / n[        U[
        5      (       a    W(       a  [L        RN                  " W5      O/ nGW" WGS5      (       a  S1WGS'   GW" WGS5      (       a  S1WGS'   GW" WGS5      (       d  GW" WGS5      (       a  S1WGS'   GW" WGS5      (       a  S1WGS'   GW" WGS5      (       a  S1WGS'   U)R                  GS5      b@  [        U)R                  GS5      =(       d    S
5      R	                  5       R/                  5       OS
GnGSGU;   a  S1WGS'   OGSGW;   a  S1WGS'   OGSGW;   a  S1WGS '   U)R                  GS!5      b@  [        U)R                  GS!5      =(       d    S
5      R	                  5       R/                  5       OS
GnGS"GU;   a  S1WGS#'   O5GS$GW;   d  GS%GW;   d  GS&GW;   a  S1WGS''   OGS(GW;   d  GS)GW;   a  S1WGS*'   [        U)R                  GS+5      =(       d    S
5      R	                  5       nW(       d  Un0 GS,U_GS-U_SIU	_GS.U
_SU_S!U_GS/U_S%U_S&U_GS0U_GS1U_GS2U_GS3U_GS4U _GS5U!_GS6U"_GS7U#_0 GS8U$_GS9U%_GS:U&_GS;U'_SnW@_SoWA_GS<WB_GS=WC_GS>WD_GS?WE_GS@WF_GSAWG_GSBWH_GSCWI_GSDWJ_GSEWK_GSFWL_E0 GSGWM_GSHWN_GSIWO_GSJWP_GSKWQ_GSLWR_GSMWS_GSNWT_GSOWU_GSPWV_GSQWW_GSRWX_GSSWY_GSTWZ_GSUW[_GSVW\_GSWW]_E0 GSXW^_GSYW__GSZW`_GS[Wa_GS\Wb_GS]Wc_GS^Wd_GS_We_S[Wf_SUf_SWg_SWi_SWj_SWh_GS`Wk_GSaWl_GSbWm_E0 GScWn_GSdWo_GSeUo_GSfWp_GSgWq_GShWr_GSiWs_GSjWt_GSkWu_GSlWv_GSmWw_GSnWx_GSoWy_GSpWz_GSqW{_GSrW|_GSsW}_E0 GStW_GSuW_GSvW_GSwW_GSxW~_GSyW_GSzW_GS{W_GS|W_GS}W_GS~W_GSW_GSW_GSW_GSW_GSW_GSW_EGSW0E[C        Si5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        Si5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1EWWWWWGS.E[C        Sj5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        Sj5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1EWUGS.E[C        S5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        S5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        Sk5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        Sk5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1EWUWUWUGS.E[C        Sj5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E0 GSW_GSW_GSW_GSW_GSU_GSU_GSU_GSU_GSW_GSW_GSW_GSW_GSU_GSU_GSU_GSW_GSW_E0 GSW_GSU_GSU_GSU_GSW_GSW_GSW_GSW_GSW_GSW_GSU_GSU_GSU_GSU_GSU_GSW_GSW_E0 GSW_GSW_GSW_GSW_GSW_GSW_GSW_GSW_GSW_GSW_GSW_SU_GSW_GSW_GSW_SU_GSW_EWWWWWWUWUWGS.
E[C        Sl5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E[C        Sm5       V1s0 s H  n1GSU1S-    3WU1   _M     sn1E0 GSW_GSW_GSW_GSW_SU_SU_GSU_GSU_SNU:SN   _SPU:SP   _SSU:SS   _SVU:SV   _SYU:SY   _S\U:S\   _S^U:S^   _S`U:S`   _ScU:Sc   _E0 SfU:Sf   _GSU-S   S*   _GSU-S?   S*   _GSU-SA   S*   _GSU-SB   S*   _GSU-S   S   _GSU-S?   S   _GSU-SA   S   _GSU-SB   S   _GSU-S   Sq   _GSU-S?   Sq   _GSU-SA   Sq   _GSU-SB   Sq   _GSU-S   Ss   _GSU-S?   Ss   _GSU-SA   Ss   _GSU-SB   Ss   _EU.S   S*   U.S?   S*   U.SF   S*   U.S   S   U.S?   S   U.SF   S   U.S   Sq   U.S?   Sq   U.SF   Sq   U.S   Ss   U.S?   Ss   U.SF   Ss   GS.E[C        S;5       V1s0 s H  n1GSU1S-    3U/S?   U1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3U/SA   U1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3U/SI   U1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3U/SJ   U1   _M     sn1E[C        S;5       V1s0 s H  n1GSU1S-    3U/SK   U1   _M     sn1EGS+W0EGn[]        GS5      GS-  GnGUR_                  5       (       d  SGSSS.$ []        GS5      GnGURa                  GSGSGS9  [b        Rd                  " GSS
U5      SGS R	                  5       =(       d    GSGnGWGSGU GS[f        Rh                  " 5       Rj                  SS;  GS3-  Gn[l        Rn                  " [        GW5      GW[        GU5      5      GnGUR                  S5      S:X  a  SGWR                  GSGS5      GSS.$ GSGWGS   GUGS   GS.$ ! [          a    U(       a  [        U5      OS
n G0Nf = f! [          a    [        U5      U-S   U1'    G+M@  f = f! [          a    [        U5      U.S   U1'    G)N2f = f! [          a    0 n G#Nf = f! [T        [V        4 a    Sn GNf = f! [T        [V        4 a    Sn GNf = f! [T        [V        4 a    Sn GNKf = f! [T        [V        4 a    Sn GNf = f! [T        [V        4 a    Sn GNf = fs  sGnf ! [T        [V        4 a    Sn GNf = f! [          a    / Gn GNf = f! [          a    / Gn GNf = f! [          a    / Gn GNf = f! [          a    / n GNf = fs  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f s  sn1f ! [          a   GnS[        GU5      GSS.s SGnGA$ SGnGAff = f(  z
Genera el documento DOCX de anamnesis para un estudiante.
Retorna: {"status": "success", "file_path": str, "filename": str}
o {"status": "error", "message": str, "status_code": int}
r   r   r  r  )r   rg  r  r  r  r  r  r   r  r  r  r  r  
   Nr  r   strftime%d/%m/%Yr   r   0	gender_idfemeninor  femalemujer1r  	masculinommalehombrer  r  nationality_idaddressphonenative_languagelanguage_usually_usedr   r   r   c           	      p   U (       d  g[        U [        5      (       a    U (       a  [        R                  " U 5      O/ n [        U [
        5      (       az  U  Vs/ s HZ  n[        U[        5      (       a  [        UR                  SU5      5      O
[        U5      R                  5       R                  5       PM\     nnUR                  5       U;   $ [        U [        5      (       a@  [        U R                  U5      =(       d    U R                  UR                  5       5      5      $ g! [         a     gf = fs  snf )NFvalue)r=  r   jsonloadsrB  listr>  r   r   r   r   
capitalizearrkeyxvalss       r   _has_domain6_generate_anamnesis_docx_internal.<locals>._has_domain  s     c3''%14djjo" c4((qtuqtlmz!T7J7JSw!23PSTUPV]]_eegqtDu99;$..c4(( I8H0IJJ % %$% vs   D# A!D3#
D0/D0native_language_domainlanguage_used_domain	comprende
understandr  hablaspeakleers  escribert  )r   r   r   r   )r   r   relationpresence)r   r   rol   )r   r  age	schooling
occupation
informantsr7  r   relationshipr  r  interview_dateinterviewersroler  r   household_membersr  r  r  )
pediatrykinesiologygenetic	neurologyspeechtherapyanother_diagnosticoccupational_therapyeducational_psychology
psychiatry
psychologypediatrar  u   kinesiologíar  kinesiologiau	   genéticar  geneticau   neurologíar  
neurologiau   fonoaudiologíar  fonoaudiologiaotror  zterapia ocupacionalr  u   psicopedagogíar  psicopedagogiau   psiquiatríar  psiquiatriau   psicologíar  
psicologiaspecialists               interview_reasondiagnosis_detaildiagnosis_hasr5  birth_type_idr6  birth_medical_assistance#first_year_periodic_health_checkupsfirst_year_vaccinesfirst_year_conditionsdesnutricionobesidadfiebre_altaconvulsioneshospitalizacionestraumatismosintoxicacionasmaenfermedad_respiratoriaencefalitis
meningitisotras#first_year_conditions_other_specifybirth_reasonfirst_year_notesbirth_weightbirth_heightsm_dresses_alonesm_sits_alonesm_head_controlsm_walks_without_supportsm_first_wordssm_first_phrasessm_bowel_daysm_bowel_nightsm_bladder_daysm_bladder_nightsm_observations_1sm_motor_activity)normal)activo)hiperactivo)
hipoactivosm_muscle_tone)u   hipertónico
hiertonicohipertonico)   hipotónico
hipotonicor*  sm_walking_stabilitysm_frequent_fallssm_lateral_dominance)derzder.derechadrightr  )izqzizq.	izquierdaileft2c                      U S:X  a  gU S:X  a  gg)Nr   r  r5  r  )r  r   )vals    r   _fine_yn3_generate_anamnesis_docx_internal.<locals>._fine_yn  s    !8J!8J!r   sm_fine_grabc                 F   > U c  S$ ST" U 5      S    3ST" U 5      S    34$ )NNNzfgraby=r   zfgrabn=r   r9  vr;  s    r   <lambda>3_generate_anamnesis_docx_internal.<locals>.<lambda>  sh    !),  ;R\cdlmndopqdrcsZtx  AI  JK  AL  MN  AO  @P  wQ  ZR  ;Rr   sm_fine_gripc                 F   > U c  S$ ST" U 5      S    3ST" U 5      S    34$ )Nr?  zfgripy=r   zfgripn=r   r9  r@  s    r   rB  rC    s      @A  @I  p|  pG  RY  Zb  cd  Ze  fg  Zh  Yi  Pj  nu  v~  @  vA  BC  vD  uE  lF  OG  pGr   sm_fine_pinchc                 F   > U c  S$ ST" U 5      S    3ST" U 5      S    34$ )Nr?  zfpinchy=r   zfpinchn=r   r9  r@  s    r   rB  rC    s      vw  v  fr  f  HP  QY  Z[  Q\  ]^  Q_  P`  Fa  em  nv  wx  ny  z{  n|  m}  c~  E  fr   sm_fine_drawc                 F   > U c  S$ ST" U 5      S    3ST" U 5      S    34$ )Nr?  zfdrawy=r   zfdrawn=r   r9  r@  s    r   rB  rC    s      mn  mv  ]i  ]t  F  GO  PQ  GR  ST  GU  FV  }W  [b  ck  lm  cn  op  cq  br  Ys  |t  ]tr   sm_fine_writec                 F   > U c  S$ ST" U 5      S    3ST" U 5      S    34$ )Nr?  zfwritey=r   zfwriten=r   r9  r@  s    r   rB  rC    s      cd  cl  S_  Sl	  u}  ~F	  G	H	  ~I	  J	K	  ~L	  }M	  sN	  R	Z	  [	c	  d	e	  [	f	  g	h	  [	i	  Z	j	  P	k	  rl	  Sl	r   sm_fine_threadc                 F   > U c  S$ ST" U 5      S    3ST" U 5      S    34$ )Nr?  z	fthready=r   z	fthreadn=r   r9  r@  s    r   rB  rC    s      \
]
  \
e
  L
X
  L
g  n
w
  x
@  AB  x
C  DE  x
F  w
G  l
H  LU  V^  _`  Va  bc  Vd  Ue  Jf  k
g  L
gr   )vision_interested_stimulivision_irritated_eyesvision_headachesvision_squintsvision_follows_movementvision_abnormal_movementsvision_erroneous_behaviorsvision_diagnosishearing_interested_stimulihearing_recognizes_voiceshearing_turns_headhearing_ears_to_tvhearing_covers_earshearing_earacheshearing_pronunciation_adequatehearing_diagnosis)sm_cog_reacts_familiarsm_cog_manipulates_exploressm_cog_demands_companysm_cog_understands_prohibitionssm_cog_smiles_babblessm_cog_poor_eye_handNNlanguage_communication_methodoralgestualmixtolanguage_communication_other)language_exp_babbleslanguage_exp_emits_phraseslanguage_exp_vocalizes_gestures language_exp_relates_experienceslanguage_exp_emits_words language_exp_clear_pronunciation) language_comp_identifies_objects)language_comp_follows_simple_instructionslanguage_comp_identifies_people*language_comp_follows_complex_instructions"language_comp_understands_abstract(language_comp_follows_group_instructions!language_comp_responds_coherently!language_comp_understands_storieslanguage_oral_loss)social_relates_spontaneouslysocial_relates_collaborativelysocial_explains_behaviorssocial_respects_social_normssocial_participates_groupssocial_respects_school_normssocial_prefers_individualsocial_shows_humorsocial_echolalic_languagesocial_stereotyped_movementssocial_difficulty_adaptingsocial_frequent_tantrums)health_vaccines_up_to_datehealth_epilepsyhealth_heart_problemshealth_paraplegiahealth_hearing_losshealth_vision_losshealth_motor_disorderhealth_bronchorespiratoryhealth_infectious_diseasehealth_emotional_disorderhealth_behavioral_disorderhealth_other_specifyfamily_health_historyfamily_health_observationssocial_reaction_lightsnaturaldesmesuradasocial_reaction_soundssocial_reaction_strange_people   health_dietr#  )malomalazmalo/azmalo para comerzmala para comer)buenobuenazbueno/azbueno para comerzbuena para comerhealth_diet_otherhealth_weight)bajoz	bajo peso)r  obesohealth_sleep_pattern	tranquiloinquietohealth_sleep_hourshealth_sleep_insomniahealth_sleep_nightmareshealth_sleep_terrorshealth_sleep_sleepwalkinghealth_sleep_good_moodhealth_sleeps_alonesolo)u   acompañado
acompanadohealth_sleeps_specifyhealth_mood_behavior,alegre)u	   juguetónjuguetonbromistau   juguetón/bromista)u   risueñou   risueñarisuenou   risueño(a)u
   risueño/atristeseriorebelde)u   apáticoapaticou   apáticaapatica)violentoviolentazviolento(a)z
violento/ahealth_mood_otherschool_entry_ageattended_kindergartenschools_countteaching_modalityregularespecial)u   técnicatecnicau   técnicotecnicochanges_reason))learning_difficultyr   r   )participation_difficultyr5  r6  )disruptive_behaviorr7  r  )attends_regularlyr     )attends_gladlyr  	   )family_support_homeworkr  r  )friendsr      repeated_graderepeated_coursesrepeated_reasoncurrent_levelc           	        ^ U (       d  g[        U [        5      (       a    U (       a  [        R                  " U 5      O/ n [        U [
        5      (       a`  U  Vs/ s H>  n[        U[        5      (       a  [        UR                  SU5      5      O
[        U5      PM@     nn[        U4S jU 5       5      $ g! [         a     gf = fs  snf )uF   Comprueba si key está en arr (array de strings o de dicts con value).Fr  c              3   x   >#    U  H/  nTR                  5       [        U5      R                  5       ;   v   M1     g 7fN)r   r   ).0rA  r  s     r   	<genexpr>E_generate_anamnesis_docx_internal.<locals>._in_arr.<locals>.<genexpr>1  s&     G$Q399;#a&,,.8$s   7:)	r=  r   r  r  rB  r  r>  r   anyr  s    `  r   _in_arr2_generate_anamnesis_docx_internal.<locals>._in_arr&  s    #s##!-0$**S/bC #t$$]`a]`XY:a3F3FQUU7A./CPQFR]`aG$GGG ! ! ! bs   B5 AC5
CCperformance_assessmentsatisfactorioinsatisfactorioperformance_reasonsresponse_difficultiesapoyocastigoindiferenciau
   compasión	compasionu   tensióntensionotrar  response_difficulties_otherresponse_successr  response_success_otherrewardszexpresiones afectivaszalimentos preferidoszver tvu   ver televisiónr  juguetesztiempo libre   otrosrewards_other
supportersmadre   padre   hermanoshermanas   zotros familiares   zotros profesionales   expectationsalta   mediana   baja   environmentambos   u   físicofisicou   solo físico   	emocionalzsolo emocionalr   final_commentsrj  	birth_dayrD  birth_countrymother_languageused_languagerY  rX  ml_understandml_speakml_readml_writeul_understandul_speakul_readul_writedpydpnbknormal
bkassisted	bkforceps
bkcesareanbaybanfypcyfypcnfyvyfyvndesnutritionydesnutritionnobesityyobesityn
highfevery
highfevern	seizuresy	seizuresnhospitalizationsyhospitalizationsninjuyinjuninyinnayanriyrinencpyencpnmgymgnoyondresses_alone
sits_alonehead_controlwalks_without_supportfirst_wordsfiorst_wordsfirst_phrasescontrol_sphincter_daycontrol_sphincter_nightbladder_sphincter_daybladder_sphincter_nightsm_observationsma_1ma_2ma_3ma_4mt_1mt_2mt_3mt_4wsywsnffyffnldyldnfgrabyfgrabnfgripyfgripnfpinchyfpinchnfdrawyfdrawnfwriteyfwritenfthreadyfthreadnvqy_vqn_cqy_cqn_cqycqn)dlq_1dlq_2dlq_3dlq_4dlqcley_clen_clcy_clcn_)clcrw  dsy_dsn_cshy_cshn_)cshr  family_medical_historyr  family_medical_observationr  sq_feed_1feed_2feed_3feed_4feed1feed2feed3feed4
feed_otherweight_1weight_2weight_3weight1weight2weight3sleep_1sleep_2sleep_3sleep1sleep2sleep3
sleep_time
badsleep_1
badsleep_2
badsleep_3
badsleep_4
badsleep_5	badsleep1	badsleep2	badsleep3	badsleep4	badsleep5	howsleep1	howsleep2howsleepmood1mood2mood3mood4mood5mood6mood7mood8another_moodenter_schooling_agekindergarten1kindergarten2school_assisted_number	teaching1)
	teaching2	teaching3why_change_of_schoolrepeatedcourse1repeatedcourse2coursesr  why_repeatedr  r  current_situationfamily_attitude#family_attitude_performance_reasons+family_attitude_response_difficulties_other&family_attitude_response_success_otherfamily_attitude_rewards_otheriidate_1iiname_1iirelation_1iipresence_1iidate_2iiname_2iirelation_2iipresence_2iidate_3iiname_3iirelation_3iipresence_3iidate_4iiname_4iirelation_4iipresence_4)	iindate_1	iinname_1iinrol_1	iindate_2	iinname_2iinrol_2	iindate_3	iinname_3iinrol_3	iindate_4	iinname_4iinrol_4fm_name_fm_relation_fm_age_fm_schooling_fm_occupation_files/original_student_fileszanamnesis_student.docxz-Template anamnesis_student.docx no encontrador   Tr   [^\w\s-]   
estudiante
anamnesis_r   .docxrg  zError generando DOCXr<  successr   r   )r   r   r   )8r#   r   r=  r>  r   r   lenr   rA  r   hasattrr  todayrC  rD  dayrB  r   rM   r   r   r   genderr   rN   nationalityrz   rF  r*  r{   rE  r+   r?  rangeminrO   r   	full_namer  r  	enumerater   	TypeError
ValueErrorreplacesplitr   r   r   resubuuiduuid4hexr   fill_docx_form(  r   r   rJ  rK  r  rO  rP  rj  r  	age_years
age_monthsrR  r   r  total_monthsr  r  r  r]  gnr  natr  r  r	  r
  rY  rX  r   r  r   r"  ml_1ml_2ml_3ml_4ul_1ul_2ul_3ul_4anamnesis_serviceanamnesis_resultr  ndudinformant_datainterviewer_datafm_datainf_listr5  infr1  int_listinvr`  profhm_listhmspec_map_name_to_specitemr   
status_valr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r  r  r  r  r  r7  r8  r9  r:  r;  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rO  rP  rK  rL  rM  rN  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  vqyvqnra  rb  rc  rd  re  rf  rg  cleyclenclcyclcnclc_textdsydsncshycshncsh_textrr  rs  sqru  rv  rw  rx  feed_other_textr~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  dhbtbmafypcfyvfyc_des_obs_hf_sz_hosp_inj_intox_asma_resp_enc_men_otro_otras_ma_mt_ws_ff_ld_ld_sr  setterrA  yvnv
_vq_fields
_cq_fields_lcm_cle_fields_clc_fields
_ds_fields_csh_fields_sl_ss_sp_fd_hw_spat_bds_hsa_hmbr  r  _ak_tm
_cs_fieldsidx_yidx_n_rcr  _pa_rd_rs_rw_ex_envreplacementstemplate_pathout_dir	safe_nameout_filer   ra  r;  s                                                                                                                                                                                                                                                                                             @r   !_generate_anamnesis_docx_internalrY  :  s@   j
J&r*(,,Z8nd++1C1CG1L1LP^PbPbckPlpwPw%2L]`aa%))."=C##OR8>B##OR8>B",,w39r:!HLLIZ\^<_<ece;ffghphtht  vG  IK  iL  iR  PR  hS  T  Z  Z  \(5L		
||K(6dC((QTUXY]U^Q_ceQe**3t9Sb>:FKKMkoB(/f(=(=4B;B2z;R;RJ 7X[\`XaI JJLE %

RWW 4eii8PTVT\T\^`^d^dSe8e fI$)JJ$8B#>%++PRPXPXBX#YLyy266)$)!-!2J #II!$ZJ-1D	rI LL-	%,,[^^y-HIOOQA23QXX$$&,,.bB#rSyHNgQSm#+LFD B&")v|xSU~#+LFD<<())b((+,334D4G4G8<<XhKi4ijpprCs #COO 4 : : <hll9-34::<HLL)/R0668hll+<=CDJJLHLL)@AGRHNNP [1IHH[)001N1NRS1SU`UcUcgpUpqwwy=>Q]]0b1779B$((5IHH[)0091LMSSU=>Q]]0b1779B$&&&t&dT$&&&t&dT*2.,>>zJ&--2B2F2Fx2PT[2[ "%%&>?E2B!%%&<=CB2{++{2|/L/LUXd2w'';r7+C+CCT2u%%R)@)@$2y))[W-E-Ect2{++{2|/L/LUXd2w'';r7+C+CCT2u%%R)@)@$2y))[W-E-Ect"2<LZj  yI  J$4>NWgh4!8"2$(Z\Y]`aYartquxyqyz&--2B2F2Fx2PT[2['++L9?RH3q#h-01qk,/0E2,F,L,L,Nv&q)03CGGN4K4Qr0R0X0X0Zz*1-03CGGJ4G4M20N0T0T0Vz*1-WW-.2<%b#..3r7b= ( 1 1"Sb': FA89

:8NN62158;BN6215 2 (++N;ArH3q#h-01qk-01FB-G-M-M-O '*WW-.>%b#..3r7b= ( 1 1"Sb': FA:;**Z:P,V4Q7:=b',V4Q7 gg/032288$56==>O>R>RVY>YZ``bDt7RSUW[7\7f7f7ljl6s6s6u(03# 2$ '**+>?E2G3q#g,/0QZ%()=2%>%D%D%F"),RVVN-C-Ir)J)P)P)R
#A&$'u(;$<$B$B$Dq!*-bff[.A.GR*H*N*N*P$Q'+.rvvl/C/Ir+J+P+P+R%a( 1 2"2rSU&("




$3]
DRTa

$.	
;H+
Wcep
 
 1A/
 (	
 +@AW	

 7

 :JKc
 L
 +8
 <
 *6|
 &--2B2F2Fx2PT[2[(,,];ArAdD)) HHV,299;AACD!$TXXh%7%=2!>!D!D!FJ'++D1Cs(2 B orrrcrHrzrIr
rSr3rQVrY^raehlX[[[[[8[j:nqq	qIq 1q4EqqPUqX[q^aqdfik:===c=E=E=C=#=Rnpp+plp=MpP\_kjlll
l\l4IlKZglnnn 7n:ORi@CCCtCdCTCDC4C$,///c/C/#/c|&6GgRY\cfnqyebjebjeaieai(++++uqyuqyuqyuqyebjebjurzurz!#%'"UQY,////&6),,,8h&)))'G
ILL
LZL*LzJ ##	IHKKKKKKKK (++!#,//	/I	!,/// EBJ%"*.0+68313.(*%&--2B2F2Fx2PT[2["#3#7#78J#K#QrRXXZ"#3#7#78J#K#QrRXXZ!%%o6BQwcq#!%%o6BQw3qs*qc)qs*"&&'ABCaxs3#''(MNDqy#%CE"&&'<=Cax#4"&&'>?E2C#s##-0$**S/bC /9d.C.C377>*Dqy#-CM*4S$*?*?377:&TDqyS(sH,6sD,A,A#''-(tCaxc:-7T-B-B#''.)CaxSs94>sD4I4ICGG/0tEzs,!..8d.C.C377>*Dqy#%CE0:30E0ESWW^,4F{#C1Cc'1#t'<'<CGGFO$Ez2!#R:DS$:O:OCGG56UYEz3!3S-7T-B-B377=)Dqy#%CE,6sD,A,A377<(tDqy##C'1#t'<'<CGGFO$Ez2!#R)3C)>)>SWWW%DF25f  7B@P@T@TUz@{  7B  @B  3C  3I  3I  3K//33NCIrJPPRL"#3#7#78J#K#QrRXXZ/33NCIrJPPRL/33NCIrJPPRL 0 4 45G H NBOUUWM-11/BHbIOOQJ/334EFL"MSSUL$'(8(<(<=W(X(^\^$_$e$e$g!.223CDJKQQSK 0 4 45G H NBOUUWM$'(8(<(<^(L(RPR$S$Y$Y$[!&)*:*>*>?O*P*VTV&W&]&]&_#$'(8(<(<=M(N(TRT$U$[$[$]!&)*:*>*>?Q*R*XVX&Y&_&_&a#!"2"6"67J"K"QrRXXZO[k[o[o  qD  \E  \Q3'++,?@FBGMMOUUW  WYCk!#4#CT(($'XhXlXlm}X~  YK3'++,<=CDJJLRRT  QSCk!#4EEctDDSd"&&'=>Caxs3"&&':;Caxs3"&&'=>CC(..0IISTUX]`WZLLPSWXPX`cZ]" !/  1R   S  Vd  fG  UH  KZ  \  J@  CQ  St  Bu  xG  Il	  wm	  p	@
  B
g  o	h  i
F$((,=%a[FB^+b"VVV~-Bvvv.2r~-Bvvv.2r//b"88 i e
z*EArBw $$R(AAvs1va#Q	 +
 I
z*EArAvU $$R(A }SV$Avs1va#Q + eudxdx  zY  eZ  ef$(()HIORPVVX^^`  lnv~3y(cwCv~3"&&'EFL"MSSU Tuqyuqy{+EArAvu $$R(A }SV$AvtAwa3a , Uuqyuqy{+EArAvu $$R(A }SV$AvtAwa3a , '++,@AGRHNNP }
z*EArBw $$R(A }SV$Avs1va#Q + q{+EArBw $$R(A }SV$AvtAwa3a , '++,BCIrJPPR!$%5%9%9:Q%R%XVX!Y!_!_!a%()9)=)=>Z)[)a_a%b%h%h%j"\l\p\p  rJ  ]K  ]Ws#''(@AGRHNNPVVX  ]_)SRUM!32a5\l\p\p  rJ  ]K  ]Ws#''(@AGRHNNPVVX  ]_)SRUM!32a5dtdxdx  zZ  e[  egs#''(HIORPVVX^^`  mo)SRUM!32a5QaQeQefsQt  RAs#''6<"=CCEKKM  GI(?SFTT_bV\YYdg[aF]SF.223FGM2NTTVScSgSghwSx  TEs#''8>B?EEGMMO  KM(?sH))c8))c8\l\p\p  rH  ]I  ]U%))*@AGRHNNPVVX  []Hgk!S7j C')--.BCIrJPPR
 $$%<=?O?S?STm?n  qA  qE  qE  F\  q]  _o  _s  _s  tO  _P  Rb  Rf  Rf  g  R@  A!!WT!WSC
!!WT!WSC
!!WT!WSC
!!WT!WSC
!!WT!WSC
ZjZnZn  pE  [F  [R$(()>?E2FLLNTTV  XZ6>s922I'++,CDJKQQS[k[o[o  qG  \H  \T$(()?@FBGMMOUUW  Z\)-c3)?)E)E)GU)GA1779iaggi)GU_Z^Y__=#%UU_bW\ZZdg\a(]CE'\35)^SUHHRU%OOY\QV ` +//0CDJKQQS!"2"6"67I"J"PbQWWY""#:;!8S]AXs}!$%5%9%9/%J%Pb!Q!W!W!YWgWkWkl  XA  XMs#''(;<BCIIKQQS  SU)YJC	BBPSI"#3#7#78H#I#ORPVVX

 !+Bu $$R(AmCF Av+.!%(a+.!%( !+ ""#34!8!OAX!O"&&'9:@bAGGIISQaQeQefwQxQ~|~M  NF  NF  NH  NH!O!O&**+=>D"EKKM+//0ABHbIOOQ,00AGRHNNP"M	 #&&'?@L #''(@AGRHNNPVVXRT 	c!!$OA#%!$OA.12B2F2FG\2]2cac.d.j.j.l+""#:;Arc3),djjo" 3  !$OA3	""!$OA3''!$OA3%%k)B)B!$OA3
##wsI'>'>!$OA3!$OA69:J:N:NOl:m:sqs6t6z6z6|3""#56<"c3),djjo" 3  !$OA3''!$OA3"%OB145E5I5IJb5c5igi1j1p1p1r.""9-3c3),djjo" 3/00"%OB3.//"%OB3!!WS2C%D%D"%OB3
##"%OB3''"%OB373#8#8"%OB(+,<,@,@,Q,WUW(X(^(^(`%""<06Bc3),djjo" 3  "%OB3  "%OB3
##wsJ'?'?"%OB3*++"%OB3-.."%OB"&&~6B #''7=2>DDFLLNHJ 	S="%OB#"%OBs]"%OB"&&}5A $((7=2>DDFLLNGI 	d?"%OB$(d"2n6L"%OBD $4$<"%OB-112BCIrJPPR"MM
LM
*5yM
BGM
T[]gM
fM
$dM
,;]M
LUW^M
`ginM
 M
 1@M
 QYZ`M
 cklrM
 T	M
 $.t	M
 6?	M
 GQRV	M

 TM

 $.tM

 6?M

 GQRVM
  0M
 3EFVM
 Y^_bM
 ejknM
 M
 #/
M
 =HM
 UablM
 3M
 sM
 %,UM
 5<UM
 EKDM
 SYZ^M
 ]M
 -<]M
 MWX`M
 cmnvM
 *M
 '3JM
 ALYM
 YdenM
  !2M
 5HIZM
 ]dejM
 mtuzM
 3M
 sM
 %)"M
 /3BM
 9>sM
 EJ3M
 QXY^M
 ahinM
 3M
 sM
 %)"M
 /3BM
 9?@cM
 23VM
 LM
 +9,M
 IWXdM
 gy  {KM
  ]!M
  -9*!M
  GUVb!M
  e|  ~S!M
" ;#M
" )7#M
" FUVc#M
$ $%:%M
$ =VWn%M
& $%:'M
& =VWn'M
( )M
( 17)M
( ?Ed)M
( MSTX)M
( [abf)M
* D+M
* !$+M
* )/+M
* 7=d+M
* EJ3+M
* QVWZ+M
* ]bcf+M
* inor+M
, 3-M
, s-M
. f/M
. '/M
. 19&/M
. CKF/M
. U^_f/M
. irsz/M
0 f1M
0 '1M
0 1:71M
0 ENw1M
0 Ycdl1M
0 oy  {C1M
2 .32Y7YacU|SV#Y73M
2 [``bZc;dZcUVd1Q3%L#a&<PZc;d3M
4 .31X6XacU|SV#X65M
4 Z__`Ya:bYaTUT!A#<Q;OYa:b5M
6 -2!H5HqQqSE{CF"H57M
6 X]]^W_9`W_RSC!u+s1v:MW_9`7M
8 UUUSV9M
: 05Qx8x!qse}d1g%x8;M
: ^ccd]e<f]eXYuQqSE]DQRG=S]e<f;M
< 05Qx8x!qse}d1g%x8=M
< ^ccd]e<f]eXYuQqSE]DQRG=S]e<f=M
< px  PX=M
> .32Y7YacU|SV#Y7?M
> [``bZc;dZcUVd1Q3%L#a&<PZc;d?M
@ 05Ry9y!qse}d1g%y9AM
@ _ddf^g=h^gYZacUmTRSW>T^g=hAM
@ rz  T\&<Wm*Dd~EM
F ,1848aQqSE{BqE!84GM
F 7?GM
F IQRXGM
F [cdjGM
F muv|GM
H VIM
H %fIM
H /6vIM
H @GIM
H Q]^mIM
J KM
J #-hKM
J 9CHKM
L xMM
L "+HMM
L 7@MM
N wOM
N !*7OM
N 5>wOM
P gQM
P  (QM
P 3;GQM
P FRS]QM
R *SM
R '3JSM
R AMjSM
R [ghrSM
R uA  CMSM
T UM
T &1*UM
T ?J:UM
T XcdnUM
T q|  ~HUM
V WM
V %0WM
V =GWM
X UYM
X $UYM
X -4UYM
X =DUYM
X MTUZYM
X ]dejYM
X mtuzYM
X }D  FKYM
X M[  ]iYM
Z "#6[M
Z 9KL_[M
\ ]]M
\ -<]]M
^ %&<_M
^ ?NOe_M
` aM
` 2;  mA.?_f  }D(\*gM
h INb	R	1"1Q3%(*;A*>>	RiM
j EJ"INIq1&(::INkM
l 23VmM
n :;foM
p 56\qM
r ,-JsM
t "#FuM
v *+VwM
x %&LyM
z :{M
| ,}M
| /<Xm=T}M
| W`aijsat}M
| wB  DL  MX  DY}M
~ Xo6M
~ 9MhWkNlM
@ #H-C$DAM
@ G_`h  jB  aCAM
B (<0CM
B 3?@VCM
D v.q1EM
D 4>~f?UVW?XEM
D [ijx  zD  kE  FG  kHEM
D JX  Zh  is  Zt  uv  ZwEM
F v.q1GM
F 4>~f?UVW?XGM
F [ijx  zD  kE  FG  kHGM
F JX  Zh  is  Zt  uv  ZwGM
H v.q1IM
H 4>~f?UVW?XIM
H [ijx  zD  kE  FG  kHIM
H JX  Zh  is  Zt  uv  ZwIM
J v.q1KM
J 4>~f?UVW?XKM
J [ijx  zD  kE  FG  kHKM
J JX  Zh  is  Zt  uv  ZwKM
L *&1!4CSTZC[\]C^l|  ~C  mD  EF  mG)&1!4CSTZC[\]C^l|  ~C  mD  EF  mG)&1!4CSTZC[\]C^l|  ~C  mD  EF  mG)&1!4CSTZC[\]C^l|  ~C  mD  EF  mGSM
T >C1XFX!A#!33XFUM
T BG  HI  BJ  KK  BJ|}\Z[\]Z]Y^K_ahisatuvawKw  BJ  KKUM
V <A8D8a1q 118DWM
V BG  HI  BJ  IK  BJ|}=YZ[\Y\X]I^`ghs`tuv`wIw  BJ  IKWM
V JO  PQ  JR  OS  JR  EF  R`  ab  cd  ad  `e  Pf  ho  p|  h}  ~  h@  P@  JR  OSWM
X nYM
\ ;<?WW##%%%2aruvv./dT2FF;L9#2>DDFV,	z)Adjjl6F6Fr6J5K5QQ..s=/A<QTU]Q^_::h7*%&**YH^2_pstt#&2ESYZdSeffM  6)-CI2	6` % <47Gv.q1< % >69"g(03>n ! CH z*4A4  z*4A4 z*4A4 z*4A4 z*4A4T VB z* Z  &    &  p 8;d6:b59`8<f8<f7;d9=h 5" SN* G  KKD  IK  OS  J!c!fSIIJs	  A!CU1 &CCU1 FCN CU1 CN #Z CU1 (ACO =CU1  CO BCU1 'ACO#<CU1 =CO#CU1 )CU1 2ACU1 ?H-CU1 0A=CU1 1K,CU1 CCP C=^:CU1 b;ACU1 dACU1 e8CU1 fCPfCU1 f1C-CU1 jCP1j.CU1 kACU1 lCQ
lCU1 l)A&CU1 nCQ#nCU1 n45CU1 o)CQ<o9CU1 pV.CU1 F<CRGCRG0A%CU1 IF CU1 OCRO*CU1 P HCU1 X"CR4 X3DCU1 \5"CS ]B$CU1 _<"CS `D	CU1 d(CS0 eM=CU1 sCTsCU1 s+CTtCU1 tCTt)CU1 t9CTuCU1 u CTu7CU1 vCTvCU1 v7CT!wCU1 wCT&w5CU1 xCT+xCU1 x,CT0yCU1 yCT5y0CU1 z CT:zCU1 z'CT?z>CU1 {CU{%CU1 {?CU	|C.CU1 @CU@CU1 @+CUAE&CU1 F(CUGCU1 GCUG,CU1 G<CU"HCU1 H&CU'I CU1 ICU,I*7CU1 J"C&CU1 N	CU1 NCN=N9CU1 N<CN=N=CU1 O CO OCU1 OCO O CU1 O#CPO>CU1 PCPPCU1 PCPPCU1 PCPPCU1 PCP.P*CU1 P-CP.P.CU1 P1CQQCU1 QCQQCU1 Q
CQ QCU1 QCQ Q CU1 Q#CQ9Q5CU1 Q8CQ9Q9CU1 Q<CRRCU1 RCRR	CU1 RCR1R-CU1 R0CR1R1CU1 R4CSSCU1 SCSSCU1 SCSSCU1 SCSSCU1 SCS-S)CU1 S,CS-S-CU1 S0CT S<CU1 S?CT T A1CU1 U1CVU<CVVCVVCVc                    U R                  [        5      R                  [        R                  U:H  5      R	                  [        R
                  R                  5       [        R                  R                  5       5      R                  5       nU R                  [        5      R                  [        R                  U:H  5      R	                  [        R
                  R                  5       [        R                  R                  5       5      R                  5       nU R                  [        5      R                  [        R                  U:H  5      R	                  [        R
                  R                  5       [        R                  R                  5       5      R                  5       n/ nU H  nUR                  SU45        M     U H  nUR                  SU45        M     U H  nUR                  SU45        M     UR                  S SS9  XRX44$ )u  
Libro de registro IV/V: lee tres tablas (sin columna section) y arma los tres bloques del Word.

- course_activity_family    → _rafc_rows  → tags rafcf_* / rafcne_* …
- course_activity_community → _tcee_rows → tags tcee*
- course_activity_other     → _ar_rows   → tags arf_* / arn_* …

_car_all: mezcla (etiqueta lógica, fila ORM) ordenada por fecha e id descendente (solo depuración/vista).
family	communityotherc                 ~    U S   R                   =(       d    [         R                  U S   R                  =(       d    S4$ )Nr   r   )r   r  r   ts    r   rB  B_split_course_activity_records_for_register_book.<locals>.<lambda>  s&    qtyy,DHHadggl;r   T)r  reverse)r   rt   r   r   r   r   r   r   r   ru   rv   appendsort)r   r   
_rafc_rows
_tcee_rows_ar_rows_car_all_recs          r   0_split_course_activity_records_for_register_bookrj    s    	*+	)33y@	A	+005579R9U9U9Z9Z9\	]		  	-.	,66)C	D	.3388:<X<[<[<`<`<b	c		  	)*	(22i?	@	*//4468P8S8S8X8X8Z	[		  ')H4() d+, $( MM;   55r   c                 ʈ  ^^^^^^^ [        S5      S-  nUR                  5       (       d  g0 m[        SS5       HC  nSTSU 3'   STSU 3'   STS	U 3'   STS
U 3'   STSU 3'   STSU 3'   STSU 3'   STSU 3'   ME     [        SS5       H#  nSTSU 3'   STSU 3'   STSU 3'   STSU 3'   M%     STS'   STS'   STS'   STS'   STS'   STS'   STS'   STS'   STS'   STS'   STS'   STS'   STS '   STS!'   STS"'   [        SS#5       H  nSTS$U 3'   M     S%nS&nXE-  n[        SUS-   5       H  nSTS'U 3'   STS(U 3'   M     TR                  [        5      R                  [        R                  U :H  5      R                  [        R                  R                  5       5      R                  5       nU(       a  UR                  =(       d    SR                  5       n	UR                  =(       d    SR                  5       n
UR                  =(       d    SR                  5       nU	TS'   U
TS'   UTS'   U	TS '   U
TS!'   UTS"'   TR                  [        5      R                  [        R                  U :H  5      R                  [        R                  R                  5       5      R                  5       nU(       a  UR                   =(       d    SR                  5       TS)'   UR"                  =(       d    SR                  5       TS*'   UR$                  =(       d    SR                  5       TS+'   UR&                  =(       d    SR                  5       TS,'   UR(                  =(       d    SR                  5       TS-'   UR*                  =(       d    SR                  5       TS.'   TR                  [,        R.                  5      R                  [,        R                  U :H  5      R1                  5       R3                  5        Vs/ s H  nUS/   PM
     nnTR                  [4        R.                  5      R                  [4        R                  U :H  5      R1                  5       R3                  5        Vs/ s H  nUS/   PM
     nn[7        U5      [7        U5      -  n/ nU GH*  nTR                  [8        R:                  " [4        R                  5      5      R                  [4        R                  U :H  [4        R.                  U:H  5      R=                  5       nTR                  [8        R:                  " [,        R                  5      5      R                  [,        R                  U :H  [,        R.                  U:H  5      R=                  5       nUU4 Vs/ s H
  nUc  M  UPM     nnU(       a  [;        U5      OS1nUR?                  UU45        GM-     URA                  S2 S39  U Vs/ s H  nUS   PM
     nn/ nU H  nTR                  [B        5      R                  [B        R                  U:H  5      R                  5       nU(       a#  URD                  =(       d    SR                  5       O
[G        U5      nUR?                  UU45        M     [I        US0U 5       H  u  nu  nnUS-   nUTS(U 3'   TR                  [,        5      R                  [,        R                  U :H  [,        R.                  U:H  5      R                  5       nU(       d  Mt  URJ                  =(       d    SR                  5       TS'U 3'   M     S4[F        4U4S5 jjm[        SUS-   5       H#  n STS6U  3'   STS7U  3'   STS8U  3'   STS9U  3'   M%     [I        US0U 5       GH  u  n!u  nnU!U-  n"TR                  [4        5      R                  [4        R                  U :H  [4        R.                  U:H  5      R                  [4        RL                  RO                  5       [4        R                  RO                  5       5      RQ                  U5      R3                  5       n#[I        U#5       H  u  n$n%U"U$-   S-   n&U&U:  a    M  U%RL                  (       a!  U%RL                  RS                  S:5      TS6U& 3'   [U        U%S;S05      n'U'b  [G        U'5      R                  5       TS7U& 3'   [U        U%S<S05      =(       d    SR                  5       TS8U& 3'   T" [U        U%S=S05      5      TS9U& 3'   M     GM     [        SS>5       H#  nSTS?U 3'   STS@U 3'   STSAU 3'   STSBU 3'   M%     TR                  [V        [B        5      RY                  [B        [V        R.                  [B        R                  :H  5      R                  [V        R                  U :H  [V        RZ                  R]                  S05      5      R                  [V        R                  5      RQ                  SC5      R3                  5       n([I        U(5       GH%  u  n)u  n*n+U)SC:  a    GOU)S-   n,Sn-U+(       aL  U+RD                  =(       d    SR                  5       (       a$  U+RD                  =(       d    SR                  5       n-O5[U        U*SDS05      (       a#  [G        U*R.                  5      R                  5       n-U-TS?U, 3'   U*R^                  =(       d    SR                  5       TS@U, 3'   U*R`                  =(       d    SR                  5       TSAU, 3'   U*Rb                  =(       d    SR                  5       TSBU, 3'   GM(     / SEQn./ SFQn/U/ H%  u  n0n1U. H  n2STU1 SGU2 SH3'   STU1 SGU2 SI3'   M     M'     SJ[F        SK[F        SL[d        4U4SM jjn3TR                  [d        5      R                  [d        R                  U :H  [d        Rf                  S:H  [d        Rh                  Rk                  S05      [d        RZ                  R]                  S05      5      R                  [d        Rh                  5      R3                  5       n4U4 H  n5U5Rh                  mT(       a  [m        TSN5      (       d  M)  TRn                  SO;  a  M;  TRq                  5       n6U6SP:  a  MS  [s        U4SQ jU/ 5       S05      n1U1(       d  Mr  U3" U1U.U6   U55        M     TR                  [d        5      R                  [d        R                  U :H  [d        Rf                  SR:H  [d        Rh                  Rk                  S05      [d        RZ                  R]                  S05      5      R                  [d        Rh                  5      R3                  5       n7/ n8U7 H  n5U5Rh                  mT(       a  [m        TSN5      (       d  M)  TRq                  5       n6U6SP:  a  MA  TRn                  SS;   a.  [s        U4ST jU/ 5       S05      n1U1(       a  U3" U1U.U6   U55        M}  M  U8R?                  U5U645        M     / SUQn9U8 H=  u  n5n6U.U6   n:U9 H,  n;TRu                  U; SGU: SH35      (       a  M!  U3" U;U:U55          M;     M?     TR                  [v        [x        5      R{                  [x        [v        R|                  [x        R                  :H  5      R                  [v        R                  U :H  [v        R~                  S:H  [v        R                  S/:H  5      R                  [v        R                  5      RQ                  S5      R3                  5       n<[I        U<5       H  u  n)u  n=n>U)S:  a    OU)S-   n[        TU>5      n?U?R                  =(       d    SR                  5       n@U@TSU 3'   U=RD                  =(       d    SR                  5       TSU 3'   U?R                  =(       d    SR                  5       TS	U 3'   U?R                  =(       d    SR                  5       TS
U 3'   M     TR                  [v        [x        5      R{                  [x        [v        R|                  [x        R                  :H  5      R                  [v        R                  U :H  [v        R~                  SR:H  [v        R                  S/:H  5      R                  [v        R                  5      RQ                  S5      R3                  5       nA[I        UA5       H  u  n)u  n=n>U)S:  a    OU)S-   n[        TU>5      n?U?R                  =(       d    SR                  5       n@U@TSU 3'   U=RD                  =(       d    SR                  5       TSU 3'   U?R                  =(       d    SR                  5       TSU 3'   U?R                  =(       d    SR                  5       TSU 3'   M     TR                  [v        [x        5      R{                  [x        [v        R|                  [x        R                  :H  5      R                  [v        R                  U :H  [v        R~                  SV:H  [v        R                  S/:H  5      R                  [v        R                  5      RQ                  SV5      R3                  5       nB[I        UB5       H  u  n)u  n=n>U)SV:  a    OU)S-   n[        TU>5      n?U?R                  =(       d    SR                  5       n@U@TSU 3'   U=RD                  =(       d    SR                  5       TSU 3'   U?R                  =(       d    SR                  5       TSU 3'   U?R                  =(       d    SR                  5       TSU 3'   M     SW GH  u  nCnDTR                  [        [x        5      R{                  [x        [        R|                  [x        R                  :H  5      R                  [        R                  U :H  [        R                  UC:H  [        RZ                  R]                  S05      5      R                  [        R                  5      R                  5       nEUE(       d  M  WEu  nFn>[        TU>5      n?U?R                  =(       d    SR                  5       n@U@TWD SX3'   WFR                  =(       d    U?R                  =(       d    SR                  5       TWD SY3'   WFR                  =(       d    U?R                  =(       d    SR                  5       TWD SZ3'   GM     [        SS%5       H  nSTS[U 3'   STS\U 3'   STS]U 3'   M     TR                  [d        5      R                  [d        R                  U :H  [d        Rf                  S:H  [d        RZ                  R]                  S05      5      R                  [d        Rh                  5      RQ                  S5      R3                  5       nGTR                  [d        5      R                  [d        R                  U :H  [d        Rf                  SR:H  [d        RZ                  R]                  S05      5      R                  [d        Rh                  5      RQ                  S5      R3                  5       nHS^[        S_[d        4UU4S` jjnI[I        UG5       H  u  n)nJU)S:  a    OWI" U)S-   WJ5        M     [I        WH5       H  u  n)nJU)S:  a    OWI" U)SP-   WJ5        M     STSa'   STSb'   STSc'   STSd'   TR                  [        5      R                  [        RZ                  R]                  S05      5      R                  [        R                  5      R3                  5       nKTR                  [        5      R                  [        R                  U :H  [        RZ                  R]                  S05      5      R3                  5       nLUL VMs0 s H  nMUMR                  UM_M     nNnM[        SV5       HZ  nU[        WK5      :  a    OJWKU   nOWNRu                  UOR                  5      nMUM(       a  [U        WMSeS/5      (       a  SfOSTSgUS-    3'   M\     [s        Sh WK 5       S05      nPUPc  [        WK5      S:  a  WKSV   nPWP(       aH  WNRu                  WPR                  5      nQUQ(       a&  WQR                  =(       d    SR                  5       TSd'   [        SSi5       H  nRSTSjUR 3'   M     TR                  [        5      R{                  [        [        R                  [        R                  :H  5      R                  [        RZ                  R]                  S05      [        RZ                  R]                  S05      5      R                  [        R                  [        R                  5      R3                  5       nS[s        Sk US 5       S05      nTUS VUs/ s H$  nUWTb  WUR                  WTR                  :w  d  M"  WUPM&     snUS0Sl nV[I        UV5       Hb  u  nnWWNRu                  UWR                  5      nXUX(       a/  [U        WXSeS/5      (       a  [U        WXSmS05      WWR                  :X  a  SfOSTSjUS-    3'   Md     WTnYUYc  [        WS5      Sn:  a  WSSl   nYWY(       aV  WNRu                  WYR                  5      nZUZ(       a/  [U        WZSeS/5      (       a  [U        WZSmS05      WYR                  :X  a  SfOSTSo'   [        SSi5       H  nRSTSpUR 3'   M     [        SV5       Hi  nRUR[        WK5      :  a    OYWKWR   n[WNRu                  U[R                  5      nXUX(       d  M=  WXR                  =(       d    SR                  5       TSpWRS-    3'   Mk     WP(       aH  WNRu                  WPR                  5      n\U\(       a&  W\R                  =(       d    SR                  5       TSq'   TR                  [        5      R                  [        RZ                  R]                  S05      5      R                  [        R                  5      R3                  5       mTR                  [        5      R                  [        R                  U :H  [        RZ                  R]                  S05      5      R3                  5       n]U] V^s0 s H  n^U^R                  U^_M     sn^mSr[        S4[F        4UU4Ss jjn_[        SV5       H  n$W_" U$5      TSpSU$-    3'   M     [s        St T 5       [        T5      S:  a  TSV   OS05      n`STSu'   STSv'   STSw'   STSx'   T V^s/ s H$  n^W`b  W^R                  W`R                  :w  d  M"  W^PM&     sn^S0SV na[I        Ua5       H5  u  nbncTRu                  UcR                  5      ndUd(       a  SfOSTSyWbS-    3'   M7     W`(       a'  TRu                  W`R                  5      (       a  SfOSTSx'   W`(       a  TRu                  W`R                  5      neUe(       as  [U        WeSzS05      =(       d    SR                  5       nf[U        WeS{S05      =(       d    SR                  5       ngS|R{                  S} WfUg4 5       5      R                  5       TS~'   TR                  [        5      R                  [        R                  U :H  5      R                  5       nhUh(       aN  WhRJ                  =(       d    SR                  5       (       a&  WhRJ                  =(       d    SR                  5       TS'   S[        S4[F        4U4S jjniS[        S0-  S4[        4U4S jjnjS[        S0-  S4[        4U4S jjnk[        SSi5       H  nlSTSUl 3'   M     [        SV5       H\  nlUl[        WK5      :  a    OLWNRu                  WKWl   R                  5      nmUm(       d  M;  Wi" Wj" WmR                  5      5      TSWlS-    3'   M^     WP(       a=  WNRu                  WPR                  5      nnUn(       a  Wi" Wj" WnR                  5      5      TS'   [        SV5       H\  noUo[        T5      :  a    OLTRu                  TWo   R                  5      npUp(       d  M;  Wi" Wk" WpR                  5      5      TSSWo-    3'   M^     W`(       a=  TRu                  W`R                  5      nqUq(       a  Wi" Wk" WqR                  5      5      TS'   [7        5       nr/ nsTR                  [        R                  5      R                  [        R                  U :H  5      R3                  5        H8  u  ntUt(       d  M  WtWr;  d  M  WrR                  Wt5        WsR?                  Ut5        M:     Wi" Ws5      TS'   TS   TS'   TS   TS'   TS   TS'   SnuSnv[        SUuS-   5       H  nwSTSUw 3'   STSUw 3'   M     STS'   [        SRWuS-   5       H  nwSTSUw S3'   M     [        SWuS-   5       Hm  nw[        SWvS-   5       HW  nxWwS:X  a"  STSWx 3'   STSUx 3'   STSUx 3'   STSUx 3'   M+  STSWw SGWx 3'   STSUw SGUx 3'   STSUw SGUx 3'   STSUw SGUx 3'   MY     Mo     / nyTR                  [        5      R                  [        RZ                  R]                  S05      5      R                  [        R                  RO                  5       5      R3                  5       nzUz GH  n{TR                  [        5      R                  [        R                  U :H  [        R                  U{R                  :H  5      R                  5       n|/ n}U|(       aj  TR                  [        R                  5      R                  [        R                  W|R                  :H  5      R3                  5        Vs/ s H  nUS/   PM
     n}nTR                  [        5      R                  [        R                  U :H  [        R                  W{R                  :H  5      R                  [        RL                  RO                  5       [        R                  RO                  5       5      R3                  5       n~W|(       a#  W|R                  =(       d    SR                  5       OSnW}(       d  W~(       d
  W(       d  GM  WyR?                  W}WW~S.5        GM     [        Wy5      Wu:  a  [        R                  SWu5        WyS0Uu ny[        S[        Wy5      5      nS4[F        4S jn[7        5       nUy H>  nUS    H2  n[U        USS05      (       d  M  WR                  WR|                  5        M4     M@     W(       a  [        T[        W5      5      O0 n[I        WySS9 GH  u  nnWi" US   5      TSU 3'   US:X  a	  WS   TS'   OWS   TSW S3'   WS   nU(       a  WS/   R                  OS0nUb  [G        W5      R                  5       OSTSW 3'   [I        WSS9 GH  u  n nU Wv:  a    M  WR                  =(       d    SR                  5       nWR|                  (       a  WRu                  WR|                  5      OSnWS:X  aS  W" WRL                  5      TSU  3'   UR                  =(       d    SR                  5       TSU  3'   WTSU  3'   WTSU  3'   M  W" WRL                  5      TSW SGU  3'   UR                  =(       d    SR                  5       TSW SGU  3'   WTSU SGU  3'   WTSU SGU  3'   GM     GM     Sn[        SUS-   5       H  nXSTSUX 3'   STSUX 3'   STSUX 3'   M     TR                  [        5      R                  [        R                  U :H  5      R                  [        Rf                  RO                  5       [        R                  RO                  5       [        R                  RO                  5       5      R3                  5       n[        U5      W:  a  [        R                  SW5        WS0U n/ n[I        W5       H  u  nRnURS/:X  a  M  WRf                  b  [        WRf                  5      OS0nWWRS-
     Rf                  b  [        WWRS-
     Rf                  5      OS0nWc  Mg  Wc  Ml  WW:w  d  Mt  WR?                  WRS-   5        M     SSSS.n[I        WSS9 H  u  n nWi" UR                  /5      nURf                  b  [        WRf                  5      OS0nWRu                  UUb  SW 3OS5      nSR{                  S WU4 5       5      TSU  3'   WR                  =(       d    SR                  5       TSU  3'   WR                  =(       d    SR                  5       TSU  3'   M     [        S[        W5      5      nS&nSnSn[        SUS-   5       HW  nwSTSUw S3'   W H  nSTU SGWw S3'   M     [        SWS-   5       H$  nSTSWw SGU 3'   STSUw SGU 3'   STSUw SGU 3'   M&     MY     S&nSn[        SUS-   5       HW  nwSTSUw S3'   W H  nSTU SGWw S3'   M     [        SWS-   5       H$  nSTSWw SGU 3'   STSUw SGU 3'   STSUw SGU 3'   M&     MY     S&n[        SUS-   5       Hb  nwSTSUw S3'   S H  nSTU SGWw S3'   M     [        SWS-   5       H/  nSTSWw SGU 3'   STSUw SGU 3'   STSUw SGU 3'   STSUw SGU 3'   M1     Md     [        TU 5      u  nnnn[        U5      W:  a  [        R                  SW5        WS0U n[        W5      W:  a  [        R                  SW5        WS0U n[        W5      W:  a  [        R                  SW5        WS0U n[        S5      S-  n UR                  R                  SSS9  SSU  3SSSSSSS[        W5       3SW VMs/ s H  nMUMR                  PM     snM SW VMs/ s H  nMUMR                  PM     snM SW VMs/ s H  nMUMR                  PM     snM 3SS/nW H  u  nnWR?                  SUR                   SU< S[U        USS05       35        UR?                  S[U        USS05      < 35        UR?                  S[U        USS05      < 35        UR?                  S[U        USS05      < 35        UR?                  S[U        USS05      < 35        UR?                  S[U        USS05      < 35        UR?                  S5        M     WR?                  S5        UR?                  S5        UR?                  S5        UR?                  S5        SR{                  U5      S-   nWR                  USS9  [        R                  SUR                  5       5        S4[F        4S jnS4[F        4S jn[I        WSS9 GH}  u  nnW" URL                  5      TSU S3'   [        UR                  5      n[        U5      W:  a'  [        R                  SW[U        WSS05      5        WS0U nW(       a  WOS0/n[I        USS9 H  u  nnUc#  STSW SGW 3'   STSU SGU 3'   STSU SGU 3'   M,  [G        WRu                  S5      =(       d    S5      R                  5       TSW SGW 3'   [        W/5      TSU SGU 3'   [        U/5      TSU SGU 3'   M     W" [U        WSS05      5      TSW S3'   U" [U        USS05      5      TSU S3'   U" [U        USS05      5      TSU S3'   U" [U        USS05      5      TSU S3'   GM     [        S[        W5      5      n[I        WSS9 GH}  u  nnW" URL                  5      TSU S3'   [        UR                  5      n[        U5      W:  a'  [        R                  SW[U        WSS05      5        WS0U nW(       a  WOS0/n[I        USS9 H  u  nnUc#  STSW SGW 3'   STSU SGU 3'   STSU SGU 3'   M,  [G        WRu                  S5      =(       d    S5      R                  5       TSW SGW 3'   [        W/5      TSU SGU 3'   [        U/5      TSU SGU 3'   M     W" [U        WSS05      5      TSW S3'   U" [U        USS05      5      TSU S3'   U" [U        USS05      5      TSU S3'   U" [U        USS05      5      TSU S3'   GM     [        S[        W5      5      n[I        WSS9 GH  u  nnW" URL                  5      TSU S3'   [        UR                  5      n[        U5      W:  a'  [        R                  SW[U        WSS05      5        WS0U nW(       a  WOS0/n[I        USS9 H  u  nnUc.  STSW SGW 3'   STSU SGU 3'   STSU SGU 3'   STSU SGU 3'   M7  [G        WRu                  S5      =(       d    S5      R                  5       TSW SGW 3'   [        W/5      TSU SGU 3'   [        U5      TSU SGU 3'   [        U5      TSU SGU 3'   M     W" [U        WSS05      5      TSW S3'   U" [U        USS05      5      TSU S3'   U" [U        USS05      5      TSU S3'   GM     [        S[        W5      5      n[        SS5       H#  nSTSU 3'   STSU 3'   STSU 3'   STSU 3'   M%     TR                  [        5      R                  [        RZ                  R]                  S05      5      R                  [        R                  5      RQ                  S5      R3                  5       nTR                  [        5      R                  [        R                  U :H  [        RZ                  R]                  S05      5      R3                  5       nU V^s0 s H  n^U^R                  U^_M     nn^S[        S0-  S4[F        4U4S jjn[I        W5       GH>  u  nnUS:  a    GO3WS-   n&WRu                  WR                  5      nU(       d  M9  [U        WSS/5      (       a  SfOSTSU& 3'   [U        WGS S05      =(       d    SR                  5       nU(       a  WOW" WR                  5      TSU& 3'   [U        WGSS05      =(       d    SR                  5       TSU& 3'   TR                  [        R                  5      R                  [        R                  WR                  :H  5      R3                  5        Vs/ s H  nUS/   PM
     nnWi" U5      TSU& 3'   GMA     STGS'   STGS'   STGS'   TR                  [        5      R                  [        RZ                  R]                  S05      5      R                  [        R                  5      RQ                  SR5      R3                  5       nTR                  [        5      R                  [        R                  U :H  [        RZ                  R]                  S05      5      R3                  5       nU Vs0 s H  nUR                  U_M     nn[I        W5       Ha  u  nnUSR:  a    OWWRu                  WR                  5      nU(       a%  [U        WGSS05      =(       d    SR                  5       OSTGSWS-    3'   Mc     TR                  [        5      R                  [        R                  U :H  [        RZ                  R]                  S05      5      R                  5       nU(       aO  WRJ                  =(       d    SR                  5       (       a'  WRJ                  =(       d    SR                  5       TGS'   TR                  [        5      R                  [        R                  U :H  [        RZ                  R]                  S05      5      R                  [        R                  5      R3                  5       nS4[F        4GS jnGS[        S4[        4U4GS jjnG[        [        5      nU H  mTR                  G[        R                  5      R                  G[        GR                  TR                  :H  5      R3                  5        HB  u  nU(       d  M  WU   nG[        U4GS	 jU 5       5      (       a  M1  WR?                  T5        MD     M     W H  nWU   RA                  GS
 S39  M     / nG[	        WGR                  5       WS39 H>  nWU   n[        S/[        U5      S5       H  nWR?                  UWUUS-    45        M     M@     [        S[        W5      5      n[        SSU-  5      n[        SUS-   5       H  nSTGSU 3'   STGSU 3'   STGSU 3'   M      [        SWS-   5       H  nSTGSU 3'   STGSU 3'   STGSU 3'   M      [I        W5       GHW  u  nu  nn[I        U5       Hp  u  n$mWS-  U$-   S-   nTGR                  =(       d    SR                  5       TGSW 3'   W" TGR                  5      TGSU 3'   U" TGR                  5      TGSU 3'   Mr     Wi" W/5      TGSWS-    3'   [        W5      S:  a0  WS   RJ                  =(       d    SR                  5       TGSWS-    3'   WS0S  VXs/ s HP  nXUXRJ                  =(       d    SR                  5       (       d  M-  WXRJ                  =(       d    SR                  5       PMR     nnXGSR{                  U5      TGSWS-    3'   GMZ     [        SS5       H  nSTGSU 3'   STGSU 3'   STGSU 3'   M      TR                  G[        5      R                  G[        RZ                  R]                  S05      5      R                  G[        R                  5      RQ                  S5      R3                  5       nTR                  G[        5      R                  G[        R                  U :H  G[        RZ                  R]                  S05      5      R3                  5       nU VMs0 s H  nMUMGR                  UM_M     nnM[I        W5       H  u  nnUS:  a    OWRu                  WR                  5      nWS-   nU(       d  M7  WGR                  =(       d    SR                  5       TGSW 3'   WGR                  =(       d    SR                  5       TGSW 3'   WGR                  =(       d    SR                  5       TGSW 3'   M     STGS'   STGS'   TR                  G[        5      R                  G[        R                  U :H  G[        RZ                  R]                  S05      5      R                  5       nU(       aW  WRJ                  =(       d    SR                  5       (       a/  WRJ                  =(       d    SR                  5       nUTGS'   UTGS'   [        SSn5       HK  nSTGSU 3'   STGSU 3'   STGSU 3'   STGSU 3'   STGSU 3'   STGSU 3'   STGSU 3'   STGSU 3'   MM     [        SGS5       H  nSTGS U 3'   STGS!U 3'   M     TR                  G[         5      R                  G[         RZ                  R]                  S05      5      R                  G[         R                  5      R3                  5       nSLG[         S4[        4GS" jnGS#GS$GS%S.nS/S/S/S.n/ nU HE  nW" U5      nWU   u  nnWU   nUU-   nUU:  a  M%  WW==   S-  ss'   WR?                  WW45        MG     WRA                  GS& S39  [I        U5       GH&  u  nu  nnUGR"                  =(       d    SR                  5       nWGR$                  =(       d    SR                  5       nWRf                  S;   a  [G        WRf                  5      OSnSnW[        U<5      :  a,  U<W   u  nnURD                  =(       d    SR                  5       nO	W(       a  WnWTGS U 3'   WTGS!U 3'   WSl:  d  M  WS-   nWTGSU 3'   WTGSU 3'   WTGSU 3'   WTGSU 3'   UTGSU 3'   UTGSU 3'   UTGSU 3'   UTGSU 3'   GM)     [        S5      nUR                  SSS9  TR                  G[&        5      R                  G[&        R                  S/:H  G[&        R                  U :H  5      R                  5       nUGR(                  =(       d    GS'U  3GR+                  S|SG5      nG[,        GR.                  " GS(SU5      S0S nWGS)U SGG[0        GR2                  " 5       GR4                  S0Sl  GS*3-  nUGS+G[0        GR2                  " 5       GR4                  S0Sl  GS*3-  nGS,GS-GS..n G[7        UU5        [;        [        U5      U5      nG[9        UUU5        G[;        UW5        G[=        UW5        [I        WySS9 H4  u  nn[        US   5      nUS:  d  M  G[?        WW[;        WWv5      5        M6     G[A        WSW5        G[C        UW5        G[E        UW5        G[G        UW5        G[I        UW5        [I        WSS9 HY  u  nn[        [        UR                  5      5      n[        SU(       a  [;        WW5      OS5      nUS:  d  MK  G[K        WWW5        M[     [I        WSS9 HY  u  nn[        [        UR                  5      5      n[        SU(       a  [;        WW5      OS5      nUS:  d  MK  G[M        WWW5        M[     [I        WSS9 HY  u  nn[        [        UR                  5      5      n[        SU(       a  [;        WW5      OS5      nUS:  d  MK  G[O        WWW5        M[     G[P        GRR                  " [G        W5      T[G        W5      5      n UGRU                  SGS/9  WRu                  GS05      GS,:X  a  S0WRu                  GS1GS-5      4$ [G        W5      S04$ s  snf s  snf s  snf s  snf s  snMf s  snUf s  sn^f s  sn^f s  snf s  snMf s  snMf s  snMf ! [         a!  n[        R                  SU5         S0nAGNS0nAff = fs  sn^f s  snf s  snf s  snXf s  snMf ! [         a     Nf = f!  WGRU                  SGS/9  f ! [         a     f f = f= f(2  u   Lógica común para generar el libro de registro por course_id. Rellena regular, specialist, specialized_assistant y coordinadores (school, daem, support_networks).r  zregister_book.docx)NzITemplate register_book.docx no encontrado en files/original_student_filesr   r  r   regular_professional_full_name_regular_professional_subject_regular_professional_phone_regular_professional_email_"specialist_professional_full_name_ specialist_professional_subject_specialist_professional_phone_specialist_professional_email_r7  -specialized_assistant_professional_full_name_+specialized_assistant_professional_subject_)specialized_assistant_professional_phone_)specialized_assistant_professional_email_school_coordinator_full_nameschool_coordinator_emailschool_coordinator_phonedaem_coordinator_full_namedaem_coordinator_emaildaem_coordinator_phone&support_networks_coordinator_full_name"support_networks_coordinator_email"support_networks_coordinator_phoneemacfcnacEMACFCNACr  satc_r  r  rarpo_rarpas_satc_1satc_2satc_3satc_4satc_5satc_6r   Nl    J)c                     U S   U S   4$ )Nr   r   r9  r  s    r   rB  ._generate_register_book_impl.<locals>.<lambda>  s    1Q41,r   )r  r   c                   > U b*  [        U [        5      (       a  U R                  5       (       d  g[        U [        5      (       a  / nU  H  n[        U[        5      (       a\  UR                  S5      =(       d    UR                  S5      =(       d    SR                  5       nU(       a  UR                  U5        Mr  Mt  U(       d  M}  UR                  [        U5      R                  5       5        M     SR                  U5      $  [        U [        5      (       a  [        R                  " U 5      OS n[        U[        5      (       a  T" U5      $  [        U 5      R                  5       $ ! [        R                  [        4 a     N5f = f)Nr   r   nombre, )r=  r   r   r  r>  r   rc  joinr  r  JSONDecodeErrorr  )rawpartsr  nr;  !_register_book_teacher_names_lines        r   r  G_generate_register_book_impl.<locals>._register_book_teacher_names_line  s#   ;:c3//		c4  EdD))&)ETXXh-?E2LLNAQ TLLT!23  99U##	&0c&:&:4::c?D$%%8>> & 3x~~ $$i0 		s   A	E( (FFrarpf_rarphp_rarpad_rarpnfd_r  pedagogical_hoursr}  teacher_namesr  oaaa_haar_hafa_tae_r  
subject_id)mondaytuesday	wednesdaythursdayfridaysaturdaysunday))r   january)r5  february)r6  march)r7  april)r  may)r  june)r  july)r  august)r  	september)r  october)r  november)r   decemberr   _date_time
month_namewd_namer   c                    > UR                   R                  S5      TU  SU S3'   UR                  =(       d    SR                  5       TU  SU S3'   g )Nr  r   r  r   r  )meeting_dater  meeting_timer   )r  r  r   rT  s      r   
_fill_slot0_generate_register_book_impl.<locals>._fill_slot  sW    7:7G7G7P7PQ[7\
|1WIU348;8H8H8NB7U7U7W
|1WIU34r   rD  )r   r5  r6  r7  r  r  r  r  c              3   V   >#    U  H  oS    TR                   :X  d  M  US   v   M      g7fr   r   NrD  r  r  r1  s     r   r  /_generate_register_book_impl.<locals>.<genexpr>!  s#     DAaDAGGO41Q4   ))r5  )r  r  r  r  r   c              3   V   >#    U  H  oS    TR                   :X  d  M  US   v   M      g7fr  r  r  s     r   r  r  ;  s#     HW!tqtWr  )r  r  r  r  r  r6  ))r   rX  )r5  daem)r6  support_networks_coordinator_full_name_coordinator_email_coordinator_phonereunion_date_reunion_attendees_reunion_agreements_r5  meetingc                   > UR                   (       a!  UR                   R                  S5      TSU  3'   T
R                  [        5      R	                  [        R
                  UR                  :H  [        R                  R                  S 5      5      R                  5       n/ nU GH  nSnT
R                  [        5      R	                  [        R                  UR                  :H  5      R                  5       nU(       a.  [        T
U5      R                  =(       d    SR                  5       nOwT
R                  [         5      R	                  [         R                  UR                  :H  5      R                  5       nU(       a#  UR                  =(       d    SR                  5       nU(       d  GM	  UR#                  U5        GM     SR%                  U5      TSU  3'   T
R                  [&        5      R	                  [&        R(                  UR                  :H  [&        R                  R                  S 5      5      R                  5       nSR%                  S U 5       5      n	U	TSU  3'   g )	Nr  r  r   r  r  ; c              3      #    U  HQ  oR                   =(       d    S R                  5       (       d  M,  UR                   =(       d    S R                  5       v   MS     g7f)r   N)
agreementsr   )r  rs     r   r  K_generate_register_book_impl.<locals>._fill_reunion_slot.<locals>.<genexpr>  s=     #z/Q^j^j^pnp]w]w]y$@Q\\%7R$>$>$@$@/s
   +A*Ar  )r  r  r   rV   r   meeting_schedualing_register_idr   r   r   r   rO   r   r   r   r  r   rP   rc  r  rU   meeting_schedualing_id)r5  r  reg_rowsr  rpr  r  usragreements_rowsagreements_textr   rT  s             r   _fill_reunion_slot8_generate_register_book_impl.<locals>._fill_reunion_slot  s   070D0D0M0Mj0YL=,- HH@AV;[[_f_i_ii;HHLLTR SU 	 BB88-.556G6J6JbN`N`6`aggiD1"d;EEKRRThhy)00ASAS1STZZ\---2446BrR   2651A)!-. HH56V0GG7::U0==AA$G SU 	 ))#z/#zz2A*1#./r   
cseacpea_1
cseacpea_2
cseacpea_3
cseacpea_4criterion_selectedr  	cseacpea_c              3      #    U  H=  oR                   =(       d    S R                  5       R                  5       S;   d  M9  Uv   M?     g7f)r   )r  r]  r  N)r  r   r   r  r  s     r   r  r    s2     _LqUU[b$7$7$9$?$?$AE^$^Ls
   8A	Ar  
cseacpeas_c              3   x   #    U  H0  nS UR                   =(       d    SR                  5       ;   d  M,  Uv   M2     g7fr  r   N)labelr   )r  os     r   r  r  )  s,     P*qfB8M8M8O.O*   +:	:r  diversity_strategy_option_idr  cseacpeas_9csmafa_csmafa_4_asp_idxc                    > U [        T5      :  a  gTR                  TU    R                  5      nU(       d  g[        USS 5      =(       d    SR	                  5       $ )Nr   r  )r  r   r   r   r   )r  _adj_adj_aspects_adj_by_asps     r   _csmafa_adj_value7_generate_register_book_impl.<locals>._csmafa_adj_valuea  sO    s<((|H5889gt,299;;r   c              3   x   #    U  H0  nS UR                   =(       d    SR                  5       ;   d  M,  Uv   M2     g7fr  )r  r   )r  as     r   r  r  l  s*     DLqFquu{.A.A.C$CLr  ea_1ea_2ea_3ea_4ea_r  other_aspect_textr  c              3   6   #    U  H  o(       d  M  Uv   M     g 7fr  r9  r  r  s     r   r  r    s     /K:a:   
	csmafa_8csmafa_9_sidsc                   > U (       d  g/ nU  H  nU(       d  M  TR                  [        5      R                  [        R                  U:H  5      R	                  5       nU(       d  MX  UR
                  =(       d    S SUR                  =(       d    S SUR                  =(       d    S 3R                  5       nU(       d  M  UR                  U5        M     SR                  U5      $ )Nr   r  r  )r   r}   r   r   r   r  r  r  r   rc  r  )r	  _parts_sid_prQ  r   s        r   _qse_student_names_line=_generate_register_book_impl.<locals>._qse_student_names_line  s    D120;;tCD 
 rR("*<*<*B)C1REWEWE][]D^_eeg3MM#&  yy  r   _resp_idc                    > U (       d  / $ TR                  [        R                  5      R                  [        R                  U :H  5      R                  5        Vs/ s H  nUS   PM
     sn$ s  snf Nr   )r   r]   r   r   course_diversity_response_idr   )r  r`  r   s     r   _qse_sids_div_resp8_generate_register_book_impl.<locals>._qse_sids_div_resp  sm    I XXALLMV7TTX``aSU
 aD
 	
 
   A,_adj_idc                    > U (       d  / $ TR                  [        R                  5      R                  [        R                  U :H  5      R                  5        Vs/ s H  nUS   PM
     sn$ s  snf r  )r   ra   r   r   course_adjustment_idr   )r  r`  r   s     r   _qse_sids_adj3_generate_register_book_impl.<locals>._qse_sids_adj  sl    I XX:EEFV0EEPQSU
 aD
 	
 
r  qse_qse_4qse_8qse_9osc_1osce_1edo_1r  r  raegee_raegeoa_raegeop_1_1raegeop__1	raegef_1_	raegel_1_
raegear_1_	raegep_1_raegef_raegel_raegear_raegep_)student_ids
objectivesinterventionsuD   register_book: se omiten registros de apoyos más allá de %s áreasc                 d    U c  g[        U S5      (       a  U R                  S5      $ [        U 5      $ Nr   r  r  r  r  r   _ds    r   _raeg_fmt_date4_generate_register_book_impl.<locals>._raeg_fmt_date!	  /    :2z"";;z**2wr   r2  r   )startr0  r1  2   rlane_1_rllr_1_rlcs_1_uE   register_book: se omiten logros de aprendizaje más allá de %s filasu   1er períodou   2do períodou   3er períodor   r5  r6  u	   Período  - c              3   6   #    U  H  o(       d  M  Uv   M     g 7fr  r9  r  s     r   r  r  q	  s     3Q|!qAA|r  )rafcniobrafcniac	rafcniaccrafcnirrafcf_rafcne_rafcnia_rafcnit_)tceeotceeatceeactceertceef_tceen_tceeap_tceete_arf_)armaraarcarn_arpa_arr_art_uJ   register_book: se omiten registros de actividades familia más allá de %suL   register_book: se omiten registros de actividades comunidad más allá de %suD   register_book: se omiten registros de actas (other) más allá de %sr   zregister_book_car_debug.txtTr   z2=== register_book: IV/V actividades (3 tablas) ===z
course_id=u   TABLAS → PLANTILLA WORD:uU     course_activity_family    → IV familia   (rafcf_*, rafcne_*, rafcniob/ac/acc/nir)uN     course_activity_community → IV comunidad (tceef_*, tceen_*, tceeo/a/ac/er)uH     course_activity_other     → V acta       (arf_*, arn_*, arm/ara/arc)zTotal filas (suma 3 tablas): zIds por tabla: family=z community=z other=z--- Cada fila ---zid=z	 section=z date=r   z  objectives=z  activities=
activitiesz  agreements=r  z
  results=resultsz  attendees=	attendeesu2   --- Cómo quedan los bloques (i=1..N por tipo) ---uY   family:    registro índice i → rafcf_i_1, rafcne_i_fila… (objetivos=objectives, …)uX   community: registro índice i → tceef_i_1, tceen_i_fila… (objetivos=objectives, …)um   other:     registro índice i → arf_i_1, arn_i_fila… (arm=motivo=objectives, ara=agreements, arc=results)
utf-8)encodingzNregister_book CAR: debug escrito en %s (stdout no siempre visible con uvicorn)z0register_book CAR: no se pudo escribir debug: %sc                 d    U c  g[        U S5      (       a  U R                  S5      $ [        U 5      $ r4  r5  r6  s    r   _rafc_fmt_date4_generate_register_book_impl.<locals>._rafc_fmt_date	  r:  r   c                     U c  g[        U [        [        45      (       a.  U R                  SSS9R	                  SS5      R                  5       $ [        U 5      R	                  SS5      R                  5       $ )Nr   r_  r  )errors    r  )r=  bytes	bytearraydecoder  r   r   rA  s    r   _rafc_field_text6_generate_register_book_impl.<locals>._rafc_field_text	  sc    9a%+,,88GI86>>xMSSUU1v~~h,2244r   uJ   register_book: se omiten participantes más allá de %s en actividad id=%sr   r   	rafcniob_	rafcniac_
rafcniacc_rafcnir_uT   register_book: se omiten participantes más allá de %s en actividad comunidad id=%stceeo_tceea_tceeac_tceer_uM   register_book: se omiten participantes más allá de %s en acta (other) id=%sarm_ara_arc_euaac_eaaam_peu_euae_c                 v  > U (       d  gTR                  [        R                  5      R                  [        R                  U :H  5      R                  5        Vs/ s H  nUS   PM
     nnU(       d  g/ nU H  nTR                  [        5      R                  [        R                  U:H  5      R                  5       nU(       d  MO  UR                  =(       d    SR                  5       (       d  My  UR                  UR                  =(       d    SR                  5       5        M     SR                  U5      $ s  snf )Nr   r   r  )r   rd   r  r   course_curricular_adequacy_idr   rx   r   r   subjectr   rc  r  )r  r`  r	  r  _sub_id_sjr   s         r   _ca_subject_labels8_generate_register_book_impl.<locals>._ca_subject_labelsV
  s     XXBMMNV8VVZaabSU
 aD 	 
 G((<(//70JKQQSCs)r0022s{{0b779:  yy  
s   D6applied
scope_textstrategies_textepea_1epea_2epea_3epea_c                 d    U c  g[        U S5      (       a  U R                  S5      $ [        U 5      $ r4  r5  r6  s    r   _pai_fmt_date3_generate_register_book_impl.<locals>._pai_fmt_date
  r:  r   r  c                 d  > TR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d  SU 4$ UR
                  =(       d    S SUR                  =(       d    S SUR                  =(       d    S 3R                  5       R                  5       nX 4$ )Nr   r  )
r   r}   r   r   r   r  r  r  r   r   )r  r  _nmr   s      r   _pai_student_sort_key;_generate_register_book_impl.<locals>._pai_student_sort_key
  s    HH-.V,774?@UW 	
 :R ""4"4":!;1R=O=O=USU<VW]]_eeg{r   c              3   T   >#    U  H  oR                   TR                   :H  v   M     g 7fr  r   )r  _r_psrs     r   r  r  
  s     7$Buu'$s   %(c                     U R                   $ r  r  )r  s    r   rB  r  
  s    addr   paie_aer_paio_paih_paifi_paift_r  etfd_etfs_etfe_etfoetfo_1regular_diversified_subject_regular_diversified_strategy_regular_diversified_period_regular_diversified_criteria_	strategy_aada_pta_cee_r  aesdt_aesdter_c                 >    U R                   nUS;   a  [        U5      $ g)Nr@  r   )r8  r   )r   r`  s     r   _impl_period_bucket9_generate_register_book_impl.<locals>._impl_period_bucket1  s    mm)s8Or   )r   r  )r  r   )r  r  c                     U S   $ r  r9  r_  s    r   rB  r  F  s    !r   curso_z[^\w\-]libro_registro_r  	_rb_work_r   z!Error generando libro de registro)r   rg  )
missing_okr   rg  )r   r   r  r   rW   r   r   r   r   r   r   planning_learning_stylesr   planning_strengthsplanning_support_needsrX   planning_collab_co_teachingplanning_collab_assistantsplanning_collab_studentsplanning_collab_familyplanning_collab_communityplanning_observationsro   r  distinctr   rn   setr   r  r   rc  rd  rx   r~  r   r  observationsr   asclimitr  r   rY   	outerjoinr   r   hours_support_regular_classroomhours_support_outside_classroomspecialized_support_typesrT   r8  r  r   r  rD  weekdaynextr   rR   rO   r  r   teacher_type_idrF  r   r  r  emailrS   coordinator_type_idr   rZ   
sort_orderr\   diversity_criterion_idr  how_textr[   r_   r`   adjustment_aspect_idr^   r  r|   r   r   r   support_arearp   support_area_idrq   course_record_support_idrr   learning_objectivesr   r   r   r   r  activities_descriptionplacers   achievementscommentsrj  r   r   
write_textr   r   r   r]  r!   r"   r    r   rb   rc   curricular_adequacy_type_idre   r}  rf   rg   eval_diversity_type_idrh   ri   tupler   rj   course_individual_support_idr  sortedkeyshorariofecha_iniciofecha_terminork   rl   !family_community_strategy_type_iddescripcionseguimiento
evaluacionrm   rw   applied_strategiesactions_takenrz   r*  r  r  r  r  r  r  shutil_copyr   r   r   r   r   r   r   r   r   r   r   r   r   r  r   )r   r   rU  r5  _RB_ROWS_PER_REGISTER_RB_MAX_REGISTERS_RB_MAX_ACTIVITY_ROWS_rkds_rowemac_valfc_valnac_valcw_rowr`  	_obs_sids	_act_sids_rb_sid_set
_rb_scoredr  _min_a_min_or  _cands_rank_rb_subject_ids_rb_subject_blocksr  _slbl_idx_slabel_k_obs_row_ri_bidx_base_cta_sub_j_cta_n_phsup_org_rowsidxsupsubjr  ambito	_weekdays_monthsr   r  wdr  meetings_p1r   wd_idxmeetings_p2unmatched_p2
_months_p2r  mnameptc_regularptcr  _dispr  ptc_specialistptc_assistantr  r  coordccmeetings_for_reunion_p1meetings_for_reunion_p2r  r  div_criteriadiv_responsesr  _div_by_cidr  
_otro_crit_r_otro_i_strategy_opts_ordered_otro_stratr  _opts_col2_1_8_optr  _opt_otros_col2_r9_c_r_o	_adj_rowsr  r  _asp_otro_adj_aspects_ea123_ea_i_ea_asp_ea_row_ad8_v8_o8_div_obsr  r  r  _qi_cr_cr_o_qj_adj_q_ad_q8	_seen_qse_qse_course_sids_qsid_RAEG_MAX_BLOCKS_RAEG_MAX_ROWS_bb_br_raeg_blocks_support_areas_raeg_sa_rec_cr	_stids_cr	_intvs_cr_obj_cr_n_raeg_blocksr8  	_raeg_pid_blk_iv_raeg_prof_names_bi_ints_fh_act_pn_RLA_MAX_ROWS_la_rows_rla_margin_top_rows_la_pid	_prev_pid_rla_period_labelsr  _plab_n_rla_rows_RAFC_MAX_BLOCKS_RAFC_MAX_PARTICIPANT_ROWS_rafc_text_keys_rr_TCEE_MAX_BLOCKS_tcee_text_keys_AR_MAX_BLOCKSrh  re  rf  rg  _car_dbg_path_lines_secri  _txt_erb  rk  _att_rows_rj_one_n_rafc_blocks_n_tcee_blocks_n_ar_blocks	_ca_types_ca_rows_ca_by_typer  _ci_tr  _scope_stu_ids_eval_div_types_eval_div_rowsra  _eval_by_type_ei_evt_evr_eval_div_obs	_pai_rowsr  r  _sid_to_rows_lst_pai_blocks_chunk_start_n_pai_blocks	_max_paih_pp_one_sid_slice_obs_pie_fc	_fc_types_fc_rows_fc_by_type_fi_fty_frowrQ  _fc_obs	_etfo_txt_ai	impl_rowsr  _PERIOD_SLOT_RANGE
_per_count_by_slotimplr`  r;  endlocalslotseq_idx_strat_crit_persubject_txt_ptc_profjrV  rY  r*  rW  rX  	work_docxr   _n_rarpo_blocks_ix_nri_n_att_nprr  r  r  r  r1  rT  s    `                                                                                                                                                                                                                                                     @@@@@@r   _generate_register_book_implr    sA   78;OOM!!`L1a[>@6qc:;<>4QC89:<21#67:<21#67AC9!=>?A7s;<=?5aS9:=?5aS9:  1a[LNDQCHIJLB1#FGHJ@DEHJ@DE	 
 46L/0/1L+,/1L+,13L-.-/L)*-/L)*=?L9:9;L569;L56LLLLLL1a[$&uQC[!  1EQ)A-.')vcU^$(*wse_% /
 	)*	(22i?	@	*--224	5		  339r@@B++1r88:006B==?'V#T%U'V#T%U 	'(	&00I=	>	(++002	3		  "("D"D"J!Q!Q!SX"("C"C"Ir!P!P!RX"("A"A"GR!N!N!PX"("?"?"E2!L!L!NX"("B"B"Hb!O!O!QX"(">">"D"!K!K!MX =HHI	3==J	K		A 	
!   :EEF	0::iG	H		A 	
!   i.3y>1KJHHTXX>AABCV0::iG0;;tC VX 	 HHTXXADDEFV3==J3>>$F VX 	 %f-?-!-?%F65$-(' ( OO.O/%/0ZqtZO0hh|$++LOOt,CDJJL/2"))+D	!!4-0   "++=>P?P+Q!RotWAX'.wrd^$HH89V3==J3>>$F UW 	 8+3+@+@+FB*M*M*OL6"' "S #  * Q-12')vcU^$(*wse_%(*wse_%)+xu%&	 3
 #,,>?Q@Q,R"Sg--HH56V0::iG0;;tC X6;;??ACcCfCfCjCjClmU()SU 	 "(+HBaB))yy.2ii.@.@.LvbT]+$ 3T:C/23x~~/?wrd^,,3D-,N,TRT+[+[+]L72$(,MgVZ\kmqNr,sL8B4) , #T2 1b\$&uQC[!$&uQC[!$&uQC[!#%tA3Z 	  	)<8	<!9!D!D!W	X	$..);$1155d;

 
*--	.	r	  &l3[c4"9!GT\\'R..00ll(b//1FS,--(..0F$*uQC[!%(%H%H%NB$U$U$WuQC[!%(%H%H%NB$U$U$WuQC[!$'$A$A$GR#N#N#PtA3Z  4  _IG !:B68LJ<qE2368LJ<qE23  !Xs XS X7O X 	)*	$..);$..!3$1177=$1155d;	

 
*77	8	  7++77//A:DDdK
:y0#6   	)*	$..);$..!3$1177=$1155d;	

 
*77	8	  L7++A:77((HWH$OJ:y'8#> 
 f.   LJ#VF#E##ugQwiu$=>>5'3/   $ 	02CD	!@!P!PTeThTh!h	i	+55B+;;q@+==B


 
144	5	q	  &k2[c4!8!G+B5__*113	>G6qc:;=@[[=NB<U<U<W4QC89;@;;;L":S:S:U21#67;@;;;L":S:S:U21#67 3 	02CD	!@!P!PTeThTh!h	i	+55B+;;q@+==B


 
144	5	q	  &n5[c4!8!G+B5__*113	AJ9!=>@C@Qr?X?X?Z7s;<>Ckk>OR=V=V=X5aS9:>Ckk>OR=V=V=X5aS9: 6 	02CD	!@!P!PTeThTh!h	i	+55B+;;q@+==B


 
144	5	q	  &m4[c4!8!G+B5__*113	LUDQCHIKN;;K\Z\JcJcJeB1#FGINIZXZHaHaHc@DEINIZXZHaHaHc@DE 5 (]#VHH,.?@T#%<%L%LPaPdPd%deV'11Y>';;?RR'4488>
 X-001UW 	 5HB/D9E.B557I>GLF8#9:;;=88;Xu{{;XVX:_:_:aLF8#567;=88;Xu{{;XVX:_:_:aLF8#567% (]. 1b\,.}QC()13)!-.24*1#./  	)*	$..);$..!3$1155d;


 
*77	8	q	  	)*	$..);$..!3$1155d;


 
*77	8	q	 #Bc #B,D #B #BJ ""9:W!837G, ;
 ""9:W!837G, ; "$L!#L!#L!#L
()	'4488>	?	)44	5		  	-.	(22i?(5599$?

 
  9FF11++Q.KF1XL!!OOOADD!34DXZ[9\9\CbdyQ()  _L_J c,/14!!_
//*--0*1*:*:*@b)G)G)IL& Arl*,z"&'  	-.	#(??CZC]C]]

 
(5599$?#0044T:

 
)446R6]6]	^	  P*PK "8i!7A;;NRSRVRVZeZhZhRha!7ijlklmN/
d__T889 0!44:DATWWL   	z$(,- 0 "O3'=#>!#C03oooDDE 1155;TBoFXFXX   	]# Arl')wrd^$ Ah\"""__RUU#2020Ar/H/H/JL726(+,  z}}-(,(;'B'B'DL$
&'	%2266t<	=	'22	3		  	&'	!++y8!..2248

 
  7@@i1))1,i@K<C <C < < Ah+<R+@wq2vh'( DLD|,1QtM
 LLLL!-cA1F!$$R_RbRbJbacdfefgN#N3w//'**-18#bs519+&' 4 &1oom6F6F&G&GsRV}//04$/52<<>C4!4d;ArHHJC'*xx/KC:/K'K'Q'Q'SL$
01	/99YF	G	 
 X**0b7799$,$9$9$?R#F#F#HZ !t ! !$
S4Z 
D 

sTz 
d 
 Q|%'tC5\" Qx#l##ool3/2233-DEWX[X^X^E_-`L4ay)*  
.$;<Nuxx<X$YL!Qx#l##c!2!5!566-D]SYS\S\E]-^L4Cy)*  !1!12$;M&))<T$UL!I
)445	(22i?	@		 	
 5U)+MM% ##E*	 44DEL(4L)'2L(4L NQ(1,-(*wse_%)+xu%& . #%LQ(1,-+-xuB'( .Q(1,-NQ./Cax24y./24y./35z#/024y./68wse1SE2368wse1SE2379xuAcU3468wse1SE23 0 . L
!"	 --11$7	8	"//335	6		  #HH-.V(22i?(88CFFB UW 	 	 "A"L"LM7PPT[T^T^^_A !   HH9:V4>>)K4DDN X:??CCEGkGnGnGrGrGtuSU 	 DKG//52<<>PR7(%!*	
; #H <++R	
 $$5%56C-.Nc  I(Cs-t44c112 ) 
 EN+BY@SU  |15	T(?]@S(Twse_%!8*.|*<L'/3L/AL8C5+,_%,1eAh((t=@_S)9RTxu%&!%q1HC^#..4";;=D?B?R?R"&&s':':;XZCax2@2Jy./3699?2I2I2Ky./37z#/025y./6DSXX6Nwse1SE237:yyB6M6M6Owse1SE237;xuAcU3469wse1SE23 2 64 MA}q()(*xt_%')wrd^$')wrd^$ *
 	/0	.88IE	F	*4488:*5599;*--113


 
  8}}$S	
 N]+&(X&C7%(]]%>s3==!D/7Q/?/I/I/UCa **+[_ 	 	 5$):K ''Q/ ' ,>Rha0S%s~~&67%(]]%>s3==!D"&&t4CSy-?Y[\).3QU|3Q)Qxu%&),)9)9)?R(F(F(Hwse_%),);(B(B(Dwse_% 1 aX'K !#FOQ(1,-)+vcU"%&!B,.LB4qR) "6:;C24L73%q./35L8C5#/035L8C5#/0 <	 . ;OQ(1,-)+vcU"%&!B,.LB4qR) "6:;C13L6#au-.24L73%q./24L73%q./ <	 . NQ*+')tC5^$'B,.LB4qR) (6:;C/1L4uAcU+,02L5Qse,-/1L4uAcU+,/1L4uAcU+,	 <	 , 2b
I2.Hj*h :))X	
   1!12

:))Z	
   1!12

8}~%R	
 O^, 014QQM,O""4$"?@$(c\V+CM?;$J%?JqaddJ%?$@ A(23
1!$$
34G8<T8aQTT8<T;UW
 #JD$MMdggYixvgdFD6Q5RS MMM'$d*K)NOPMMM'$d*K)NOPMMM'$d*K)NOPMMJwtY'E&HIJMML{D)I(LMNMM" # 	JKg	
 	f	
 	{	
 yy 4'   8\!!#	
c 5s 5 z3	T)7		)BvcU"%&t~~.t911NN\*dD)
 334D4&"52IC|68wse1SE2379xuAcU3479xuAcU3469$((6:J:Pb6Q6W6W6Ywse1SE237Mtf7UxuAcU347Mtf7UxuAcU34 3 -=WT<Y]=^,_yR(),<WT<Y]=^,_yR()-=gdLZ^>_-`z#b)*+;GD)UY<Z+[xuB'(/ 40 C
O,Nz3	T)7		)BvcU"%&t~~.t911NNf*dD)
 334D4&"52IC|57vcU!C51268wse1SE2368wse1SE2358&9I9OR5P5V5V5XvcU!C5126LdV6Twse1SE236LdV6Twse1SE23 3 *:'$VZ:[)\vcU"%&)9'$VZ:[)\vcU"%&*:74W[;\*]wse2&')9'$	SW:X)YvcU"%&/ 40 C
O,Nxq1	T'5dii'@tC5^$t~~.t911NN_*dD)
 334D4&"52IC|35tC5#/046uSE3%0135tC5#/035tC5#/036txx7G7M23N3T3T3VtC5#/04JD64RuSE3%013DT3JtC5#/03Ft3LtC5#/0 3 (8lTX8Y'ZtC5^$'7lTX8Y'ZtC5^$'7iQU8V'WtC5^$1 22 q#h-(L Aqk&(vbT]#&(vbT]#$&tB4[!%'uRD\"	  	,-	+88<<TB	C	-88	9	q	  	./	)33y@)66::4@

 
  >FFX100!3XKF!C$J !3 !$ Y'R!81Wruu%418y!1L1L#RTL6"'dL$7=2DDFF4:&@RSWSZSZ@[L6"')07H$)O)USU(\(\(^L4t% "F"Q"QR<ZZ^b^e^eefA !   *A)JL5&! (&  LLL
'(	&3377=	>	(33	4	q	  	)*	$..);$1155d;

 
  ;II.QQ--q0.MI/	T!8  )FJWT,d39r@@BPR 	uS1WI&'	 0 	45	/99YF/<<@@F

 
  -44:AACC"/"<"<"B!I!I!KX
 	-.	(22i?(5599$?

 
.11	2	 S 	C 	E 	 	 %0$5LHH8CCDV7TTX\X_X__`SU T
 %D7$777D!  TN3  +-K|((*0EFT"!!SZ3LeL<!;K&LMN 4 G
 3{+,MAq=()IQ)*&(uSE]#%'tC5\"&(uSE]# + Q	A&&(uSE]#')vcU^$')vcU^$ '
 $-[#9h!&)HB'B,"C+/<<+=2*D*D*FL5'+89J9J+KL6#(+89K9K+LL6#(	 *
 +B8**MuS1WI&'v;!.4Qi.D.D.J-Q-Q-SL4ay)*>DRajljR__Mb`bLiLiLk3R__*113jl*.))H*=uS1WI&' $: Q{&(uSE]#&(uSE]#&(uSE]# 
 	12	0==AA$G	H	2==	>	q	  	+,	&00I=&3377=

 
  DLL8a16698KLy)	T!8(Ag5+0+<+<+B*I*I*KL5'+0+<+<+B*I*I*KL5'+0+;+;+Ar*H*H*JL5' * LL
67	1;;yH1>>BB4H

 
  G((.B5577))/R668	(V!*X 1a[;=3A378<>4QC89:<21#67<>4QC89(*y_%$&uQC[!#%tA3Z #%tA3Z   Q|')vcU^$)+xu%&  	<=	;HHLLTR	S	=@@	A		 !L QT  $H=1#JNPH!$'',
s3u}#:31t%  MMnM%'1!T))/R668##)r002&*nn	&As4>>"rS%%%g.KD%<<-2446K K%+vaS\"',xs^$Q;!A?JL7s;<@FL8<=>BL6qc:;@EL8<=,2L9QC)(3L5%'+L4s$',L4s$1 22 *+GMM$M.XXk"))+*G*G1*Lknn`iNijpprF%%=6))=FFsCPKz2{3CR8I?9+Qtzz|7G7G7K6LERRHIdjjl&6&6r&:%;5AAI,OPF'M9-c"457HI,YI^_ M:*9nE"<q9ICtO,-Dax-n- : 	)A{C5iAUV+I~F.y.I(LA":Q7IC89FqV#f&@AQRSDax,YTB	 8
 #:Q7IC89FqV#f&@AQRSDax,YTB	 8
 #815IC89FqV#f&@AQRSDax+IsDA	 6
  ..s9~|SQY][	- zz(w&VZZ	+NOOOx=$[)6 @ 1r GL jf A* dVB &@3<T<  OI2NNOj G<6 Jt m. Md  			- 		s`  :DN+(DN0DN5DN5DN:]3DN?e,!DOfDOp7DO	s!DOs-DOL#DOl7DO' mDOm%DO' m-DOnDO' nDO" n!FDO' L2DPRDPV"DPh),DP$i'DP$n7DP)D0A,DP> F B/DP> IA#DP> J:A#DP> L!>DP> M DP. ODO' O'
DPO1DPPDPP.
DP;P:DP;P>DQ"Q DQQDQ"Q
DQQDQ"QDQQDQ"z/register_book/{course_id}c                   #     [        X5      u  p4U(       aV  [        SUR                  5       ;   a  [        R                  O[        R
                  SUR                  5       ;   a  SOSUSS.S9$ [        U[        U5      R                  SS9$ ! [         a/  n[        [        R
                  S[        U5      SS.S9s SnA$ SnAff = f7f)	zx
Genera y descarga el documento 27 (Libro de registro) para un curso.
URL: GET /api/documents/register_book/{course_id}
no encontrador  r<  Nrf  r  Gapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentrl  r  r   r   r   r  rw  r   r   r   rB  r   r   r   r  r   errra  s         r   get_register_bookr         
5iD	9HCIIK9WF55]c  ^C  ^C*9SYY[*H3c^akop  )_))`
 	

  
=="s1vtD
 	

A   CA)B -C.B C
C$C :C;C CCz#/generate/register_book/{course_id}c                   #     [        X5      u  p4U(       aV  [        SUR                  5       ;   a  [        R                  O[        R
                  SUR                  5       ;   a  SOSUSS.S9$ [        U[        U5      R                  SS9$ ! [         a/  n[        [        R
                  S[        U5      SS.S9s SnA$ SnAff = f7f)	z
Genera el documento 27 (Libro de registro) en DOCX para un curso.
Rellena regular_professional_* (teacher_type_id=1) y specialist_professional_* (teacher_type_id=2).
r  r  r<  Nrf  r  r  rl  r  r  s         r   generate_register_bookr    r  r  z&/register_book_car_preview/{course_id}c                   #    [        X5      u  p4pV[        [        R                  SU SSSS.SSSS	.U Vs/ s H  owR                  PM     snU Vs/ s H  owR                  PM     snU Vs/ s H  owR                  PM     snS.U VVs/ s H  u  p[        Xx5      PM     snnS
S.S9$ s  snf s  snf s  snf s  snnf 7f)u   
JSON: cómo se reparten los registros de actividad del curso en las 3 subsecciones del libro
(family / community / other) y qué tags DOCX usa cada una. No genera DOCX.
GET /api/documents/register_book_car_preview/{course_id}
r:  course_activity_familycourse_activity_communitycourse_activity_other)r[  r\  r]  u^   IV familia ← course_activity_family: rafcf_{i}_1, rafcne/rafcnia/rafcnit, rafcniob…rafcniruQ   IV comunidad ← course_activity_community: tceef_{i}_1, tceen/…, tceeo…tceeruA   V acta ← course_activity_other: arf_{i}_1, arn/…, arm/ara/arc)1_family2_community3_otherz1files/system/students/register_book_car_debug.txt)r   r   tablesmapping
bucket_idsrows_alldebug_file_after_generater  )rj  r   r   r  r   r   )	r   r   r  rh  re  rf  rg  r  rf  s	            r   register_book_car_previewr    s      2b
2.H* &&"280 }r^ *44A444,67JqddJ7(011$$1
 ?GGh74a.hG)\'
   571Gs4   3B>B)
B>B.%B>+B3 	B>	B8 B>born_date_strreference_datec                    U (       d  g S nS HC  n [         R                  " [        U 5      R                  5       S S U5      R	                  5       n  O   U(       d  gU=(       d#    [         R                  " 5       R	                  5       nUR                  UR                  -
  nUR                  UR                  -
  nUS:  a  US-  nUS-  nO'US:X  a!  UR                  UR                  :  a  US-  nSnUS:  a6  US:  a  U SUS:w  a  S	OS S
U SUS:w  a  S 3$ S 3$ U SUS:w  a  S	 3$ S 3$ US:  a  U SUS:w  a  S 3$ S 3$  g! [
         a     GMH  f = f! [
         a     gf = f)Nr   r  r  z%Y/%m/%dz%d-%m-%Yr  r   r   r   r  r!  r"   y r#  r$  )
r   rA  r   r   r   rB  r   rC  rD  r  )r  r  r  fmtrS  rT  rU  s          r   _student_age_labelr    s   	CC$--c-.@.F.F.H".MsSXXZ	 D 5 3 3 59>>)Y__,A:QJEbLFq[SWWy}}4QJEF19zUaZcR%@F84X^bcXcPTOlmmikOlmmWE!#!<==!<==A:XT&A+$!>??2!>??  +  &  sY   E ?EE B<E E E +E /E E 
EE EE 
E'&E'signature_rutsig_prof_idc                    U=(       d    SR                  5       nU(       d  U(       d  U$ U R                  [        5      R                  [        R                  U:H  5      R                  5       nU(       d  U$ [        USS 5      =(       d    SR                  5       nU(       a  U$ [        X5      R                  =(       d    SR                  5       $ )Nr   r  )	r   r   rO   r   r   r   r   r   rut)r   r  r  r  r  s        r   _resolve_paci_signature_rutr    s    
 B
%
%
'C
+
88%&--.?.B.Bk.QRXXZD
40$7=2
D
D
FC

'155;BBDDr   z/generate/{student_id}/21/fullbodyc                   #    Sn [        U5      nUR                  U 5      n[        U[        5      (       aG  UR                  S5      (       d  UR                  S5      S:X  a  [	        [
        R                  SSSS.S9$ [        U[        5      (       a  UR                  S	0 5      O0 nUR                  S
5      =(       d    0 nUR                  S5      =(       d    0 n	UR                  S5      =(       d    SR                  5       n
UR                  SS5       SUR                  SS5       3R                  5       nU
 SU 3R                  5       nSnUR                  S5      (       aj  UR                  [        5      R                  [        R                  US   :H  5      R                  5       nU(       a  UR                  (       a  UR                  nSnU	R                  S5      (       a|  UR                  [        5      R                  [        R                  S:H  [        R                  U	S   :H  5      R                  5       nU(       a  UR                   (       a  UR                   nSnU	R                  S5      nU(       ag  UR                  ["        5      R                  ["        R                  U:H  5      R                  5       nU(       a  UR$                  (       a  UR$                  nUR                  S5      =(       d    Sn0 SS_SUR&                  =(       d    U_SUR(                  =(       d    UR                  S5      =(       d    S_SUR*                  =(       d    U=(       d    S_SUR,                  =(       d(    [/        [1        U5      [2        R4                  " 5       5      _SUR6                  =(       d    U=(       d    S_SUR8                  =(       d    U=(       d    S_SUR:                  =(       d    U=(       d    S_S UR<                  =(       d    S_S!UR>                  =(       d    S_S"UR@                  =(       d    S_S#URB                  =(       d    S_S$URD                  =(       d    S_S%URF                  =(       d    S_S&URH                  =(       d    S_S'URJ                  =(       d    S_S(URL                  =(       d    /  Vs/ s HB  nURN                  =(       d    SURP                  =(       d    SURR                  =(       d    SS).PMD     sn_URT                  =(       d    /  Vs/ s HB  nURN                  =(       d    SURV                  =(       d    SURX                  =(       d    SS*.PMD     snURZ                  =(       d    /  VVVs/ s GH<  nUR\                  =(       d    SUR^                  =(       d    SUR`                  =(       d    SURb                  =(       d    /  VVs/ s H  nURd                  =(       d    SURf                  =(       d    S[i        URj                  5      URl                  =(       d    SURn                  [i        URp                  5      [i        URr                  5      [i        URt                  5      URv                  =(       d    /  Vs/ s H  nS+URx                  =(       d    S0PM     snS,.	PM     snnS-.PGM?     snnnURz                  =(       d    /  VVs/ s H  nUR\                  =(       d    SUR|                  =(       d    SUR~                  =(       d    SUR                  =(       d    SUR                  =(       d    SUR                  =(       d    SUR                  =(       d    /  Vs/ s HV  nUR                  =(       d    S.UR                  =(       d    SUR
                  =(       d    S[i        UR                  5      S/.PMX     snS0.PM     snnS1.En[        R                  " S2UUSS3S49nUR                  S5      S:X  a,  [	        [
        R                  S5UR                  S6U5      SS.S9$ [        US7   US8   S9S:9$ s  snf s  snf s  snf s  snnf s  snnnf s  snf s  snnf ! [         aD  n[        R                  S;5        [	        [
        R                  S5[1        U5      SS.S9s SnA$ SnAff = f7f)<uI   Genera PDF completo del Plan de Adecuación Curricular Individual (PACI).Error generando documento.r   r   r  r  Nrf  r  r  r  r  r  r   r  r  r  r   r   r   r(  r  	paci_fullTr  student_rutr  r  r  student_neer%  student_coursereport_dateschool_backgroundevaluation_backgroundhuman_resourcesmaterial_resourcesevaluation_adaptation_criterialearning_results_evaluationevaluation_promotion_criteriaprofessionals)r   professional_rolesupport_roles)r   r  responsibilitiestext)	
level_codelevel_descriptionis_priorityadapted_descriptionadapted_level_codeis_not_adaptedoa_not_workedachievement_indicators_enabledachievement_indicators)subject_nameadaptation_type
strategiesr  oakindr}  r   show_indicators_label)r  
entry_code	date_fromdate_toresponsible_professionalsr  progress_rows)family_memberscurricular_subjectsprogress_entriesr  r   r   rc  r   rU  output_directoryr<  rg  r   r   rk  rl  generate_paci_full_pdf)Nr#   r   r=  r>  r   r   r  r   r   r{   r   r   r   rE  rz   rF  r*  r   rG  r  r  r  r  r  r   r   r  r  r%  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r}  r  r   generate_document_pdfrw  r   rB  r   	exception)r   r  r  r   MSG_ERROR_GENrJ  rK  r  rO  rP  rj  student_lastnamestudent_fullnamerE  rX  r*  rY  r+  rZ  r[  r  r  r  r"  loindra  r  	paci_datar   s                                 r   r  r  +  s     1MP
&r*(,,Z8nd++w''>+=+=h+G7+R"55#&3MW[\ 
 BLN\`AaAa~))."=gi##O4:##O4: W-3::<&ll+<bAB!HLLQbdfDgChiooq*^1-=,>?EEGK((XXk*11+..LQ\D]2]^ddfF&,,$00<<$$%55:KNNhWbNc<cd 
 &,,$00;<((67>>?Z?]?]ag?ghnnpCs4488LL-3	N
N
!7!7!K;KN
 4++Zx||<S/TZXZN
  !7!7!J9!J	N

 4++_/A#i.RVR\R\R^/_N
 4++=x=2N
 d11F[FBN
 d11F[FBN
 4++1rN
  !7!7!=2N
 $T%?%?%E2N
 t339rN
 !$"9"9"?RN
 -d.Q.Q.WUWN
 *4+K+K+QrN
  ,T-O-O-USU!N
"  ,,22 3A	 FFLb)*)<)<)B%&__%:
 3#N
> --33 4A	 FFLb$%NN$8b()(:(:(@b
 4> 228b8/$. 9A+ %&NN$8b'('8'8'>B"#,,"4"  $%#8#8#>B#>, $?B +---*=2131E1E1K+/+?353I3I3OR242G2G.223D3D.E-1"2B2B-C>B2CdCd>e -/,E,E,K,K7,KC "(R 8,K7 $?,	, 9/$V //525%!$ 6A! %&NN$8b"#,,"4"!"!2 yyB121L1L1RPR$%NN$8b #$//"7R"7& #8A %&FFNd+,==+>B&'hhn"59!:Q:Q5R	 #8&" 6%!uN
	`  55#4
 ::h7*"AA#&6::i3Waef  $J'(
 	
W.7,$B&!N  
12=="s1vtD
 	

s   cA7b  =c>Qb  A	ab  )A	a2b  Aa.(B4a(!a#0=	a(a.b  -Ba:Aa5	a:(Ab  cb  c
b  #a((a..b  5a::b   
c
9c	cc	ccz(/generate/{student_id}/21/progress-statec                 Z  #    Sn [        U5      nUR                  U 5      n[        U[        5      (       aG  UR                  S5      (       d  UR                  S5      S:X  a  [	        [
        R                  SSSS.S9$ [        U[        5      (       a  UR                  S	0 5      O0 nUR                  S
5      =(       d    0 nUR                  S5      =(       d    0 n	UR                  S5      =(       d    SR                  5       n
UR                  SS5       SUR                  SS5       3R                  5       nU
 SU 3R                  5       n[        R                  " 5       R                  5       nUR                  (       a<   [        R                  " [        UR                  5      SS S5      R                  5       nUR                  S5      =(       d    SnSnUR                  S5      (       aj  UR                  [         5      R#                  [         R$                  US   :H  5      R'                  5       nU(       a  UR(                  (       a  UR(                  nSnU	R                  S5      (       a|  UR                  [*        5      R#                  [*        R,                  S:H  [*        R$                  U	S   :H  5      R'                  5       nU(       a  UR.                  (       a  UR.                  nSnU	R                  S5      nU(       ag  UR                  [0        5      R#                  [0        R$                  U:H  5      R'                  5       nU(       a  UR2                  (       a  UR2                  n[5        X1R6                  UR8                  5      n0 SUR:                  _SUR<                  =(       d    S_SUR>                  =(       d    S_SUR@                  =(       d    S_SURB                  =(       d    S_SUR                  =(       d    S_SURD                  =(       d    S_SURF                  =(       d    S_S URH                  =(       d    S_S!URJ                  =(       d    S_S"U_S#URL                  =(       d    S_S$URN                  =(       d    /  Vs/ s HV  nURP                  =(       d    S%URR                  =(       d    SUR
                  =(       d    S[U        URV                  5      S&.PMX     sn_S'URX                  =(       d    U_S(URZ                  =(       d    UR                  S)5      =(       d    S_S*UR\                  =(       d    U=(       d    S_S+UR^                  =(       d    [a        [        U5      U5      _URb                  =(       d    U=(       d    SURd                  =(       d    U=(       d    SURf                  =(       d    U=(       d    SS,.En[h        Rj                  " S-UUSS.S/9nUR                  S5      S:X  a,  [	        [
        Rl                  S0UR                  S1U5      SS.S9$ [o        US2   US3   S4S59$ ! [         a     GNf = fs  snf ! [         aD  n[p        Rs                  S65        [	        [
        Rl                  S0[        U5      SS.S9s SnA$ SnAff = f7f)7uH   Genera PDF de estado de avance PACI para una asignatura y período (EA).r  r   r   r  r  Nrf  r  r  r  r  r  r   r  r  r  r  r  r  r   r   r   r(  r  r  r  progress_entry_idr  r  r  r  signature_namesignature_roler  signature_secreducr  r  r  r  r  r  r  r  )r  r%  r  r  r   r  r<  rg  r   r   rk  rl   generate_paci_progress_state_pdf):r#   r   r=  r>  r   r   r  r   r   r   r   r  rA  r   rB  r   r{   r   r   r   rE  rz   rF  r*  r   rG  r  r  signature_professional_idr  r  r  r  r  r  r  r  r  r	  r  r  r}  r   r  r  r  r  r  r  r  r%  r  r   r  rw  r   r   r  )r   r  r  r   r  rJ  rK  r  rO  rP  rj  r   r  ref_dater  rE  rX  r*  rY  r+  rZ  r[  r  r  r  r   ra  s                              r   r
  r
    s     1Mj
&r*(,,Z8nd++w''>+=+=h+G7+R"55#&3MW[\ 
 BLN\`AaAa~))."=gi##O4:##O4: W-3::<&ll+<bAB!HLLQbdfDgChiooq*^1-=,>?EEG<<>&&(<<#,,S->s-CZPUUW LL-3	K((XXk*11+..LQ\D]2]^ddfF&,,$00<<$$%55:KNNhWbNc<cd 
 &,,$00;<((67>>?Z?]?]ag?ghnnpCs44883""D$B$B

$//
D--3
 $///R
  !7!7!=2	

 -2
 t||)r
 D--3
 ()G)G)M2
 d117R
 d117R
 ]
 !$"9"9"?R
  ,,22 3A FFNd#$==#6Bhhn"-1!2I2I-J	 3
,  !7!7!K;K-
. 4++Zx||<S/TZXZ/
0  !7!7!J9!J1
2 4++[/A#i.RZ/[3
4  ++=x=2"11F[FB"11F[FB9
	>  55#4
 ::h7*"AA#&6::i3Waef  $J'(
 	
S  VF  
;<=="s1vtD
 	

s   Z+A7Y =Z+>DY ;Y =KY AY0EY 2Z+3Y Z+
YY YY 
Z($9Z#Z(Z+#Z((Z+z1/generate/{student_id}/21/progress-state/integralc                   #    Sn UR                   (       d  [        [        R                  SSSS.S9$ [	        U5      nUR                  U 5      n[        U[        5      (       aG  UR                  S5      (       d  UR                  S5      S:X  a  [        [        R                  S	S
SS.S9$ [        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 nUR                  S5      =(       d    0 n	UR                  S5      =(       d    SR                  5       n
UR                  SS5       SUR                  SS5       3R                  5       nU
 SU 3R                  5       n[        R                  " 5       R                  5       nUR                    HR  nUR                  (       d  M   [        R                  " [        UR                  5      SS S5      R                  5       n  O   UR                  S5      =(       d    SnSnUR                  S5      (       aj  UR#                  [$        5      R'                  [$        R(                  US   :H  5      R+                  5       nU(       a  UR,                  (       a  UR,                  nSnU	R                  S5      (       a|  UR#                  [.        5      R'                  [.        R0                  S:H  [.        R(                  U	S   :H  5      R+                  5       nU(       a  UR2                  (       a  UR2                  nSnU	R                  S5      nU(       ag  UR#                  [4        5      R'                  [4        R(                  U:H  5      R+                  5       nU(       a  UR6                  (       a  UR6                  n/ nUR                    GH  n[9        X>R:                  UR<                  5      nUR>                  =(       d    /  Vs/ s HV  nUR@                  =(       d    SURB                  =(       d    SUR                  =(       d    S[E        URF                  5      S.PMX     nn/ nURH                  (       aa  URH                   HQ  nURK                  URB                  =(       d    SURL                  =(       d    SURN                  =(       d    SS.5        MS     URK                  URP                  URR                  =(       d    SURT                  =(       d    SURV                  =(       d    SURX                  =(       d    SUR                  =(       d    SURZ                  =(       d    SUR\                  =(       d    SUR^                  =(       d    SUR`                  =(       d    SUURb                  =(       d    SUUS.5        GM     UURd                  =(       d    UURf                  =(       d    UR                  S5      =(       d    SURh                  =(       d    U=(       d    SURj                  =(       d    [m        [        U5      U5      URn                  =(       d    U=(       d    SURp                  =(       d    U=(       d    SURr                  =(       d    U=(       d    SS.n[t        Rv                  " S UUSS!S"9nUR                  S5      S:X  a,  [        [        Rx                  S#UR                  S$U5      SS.S9$ [{        US%   US&   S'S(9$ ! [          a     GMg  f = fs  snf ! [          aD  n[|        R                  S)5        [        [        Rx                  S#[        U5      SS.S9s SnA$ SnAff = f7f)*zHGenera PDF integral de estados de avance PACI (varias asignaturas / EA).r  re  z(Seleccione al menos un estado de avance.Nrf  r  r   r   r  r  r  r  r  r  r   r  r  r  r  r  r  r   r   r   r(  r  r  )r}  ratingrating_short)r  r  r  r  r  r  r  r  r  r  r  r	  r  oa_rowsr  )integral_sectionsr  r  r  r  r  r%  r  r  r   r  r<  rg  r   r   rk  rl  )generate_paci_integral_progress_state_pdf)@sectionsr   r   rp  r#   r   r=  r>  r  r   r   r   r   r  rA  r   rB  r   r{   r   r   r   rE  rz   rF  r*  r   rG  r  r  r  r  r  r}  r   r  r  rc  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r%  r  r   r  rw  r   r   r  ) r   r  r  r   r  rJ  rK  r  rO  rP  rj  r   r  r  sectionr  rE  rX  r*  rY  r+  rZ  r[  r  r  r  r  r  r  r  r   ra  s                                    r   r  r  =  s     1MG
}}"77#&3]gkl 
 'r*(,,Z8nd++w''>+=+=h+G7+R"55#&3MW[\ 
 BLN\`AaAa~))."=gi##O4:##O4: W-3::<&ll+<bAB!HLLQbdfDgChiooq*^1-=,>?EEG<<>&&(}}G'00W__1Ecr1JJW\\^H	 % LL-3	K((XXk*11+..LQ\D]2]^ddfF&,,$00<<$$%55:KNNhWbNc<cd 
 &,,$00;<((67>>?Z?]?]ag?ghnnpCs4488}}G7))7+L+LM "//525 6A FFNd#$==#6Bhhn"-1!2I2I-J	 6   G!//BNN+->>+?R&(iio2,.OO,Ar * $$")"4"4$+$8$8$>B")"4"4":)0)B)B)Hb!(!2!2!8b&4"$+$8$8$>B181R1R1XVX&-&<&<&B&-&<&<&B%2*1*D*D*J%2&3 %Z "3!%!7!7!K;K++Zx||<S/TZXZ!%!7!7!J9!J++[/A#i.RZ/[++=x=2"11F[FB"11F[FB	
	  55#4
 ::h7*"AA#&6::i3Waef  $J'(
 	
} ! @F  
DE=="s1vtD
 	

s   ]*,\ ]*A7\ *]*+D\  ;\;G>\ 9A\J\ 0]*1\ ]*
\\ \\ 
]'#9]"]']*"]'']*z$/generate/{student_id}/{document_id}zGID de plantilla de prueba informal (obligatorio cuando document_id=43).informal_test_template_idc                 2 #     SnSn[        U5      nUR                  U 5      n[        U[        5      (       ao  UR                  S5      (       d  UR                  S5      S:X  aD  [	        [
        R                  SUR                  S5      =(       d    UR                  SS5      SS	.S
9$ US:X  Ga)  Ub  [        U=(       d    S5      S::  a  [	        [
        R                  SSSS	.S
9$ UR                  [        5      R                  [        R                  U :H  5      R                  5       nU(       d  [	        [
        R                  SUSS	.S
9$ [        U5      R                  [        UR                   =(       d    S5      [        U5      U 5      n	U	R                  S5      S:X  aQ  [        U	R                  S5      =(       d    S5      n
U
S;  a  Sn
[	        U
U
U	R                  S5      =(       d    USS	.S
9$ U	R                  S5      =(       d    0 nUR                  S5      nU(       d  [	        [
        R"                  SSSS	.S
9$ [%        ['        U5      5      nUR)                  5       (       d  [	        [
        R"                  SSU 3SS	.S
9$  UR+                  5       nUR                  S5      =(       d    Sn[/        USSU S3['        [1        U5      5      S.S9$ [3        U5      nUR                  U5      nSn[        U[        5      (       a\  UR                  S5      S:X  aG  UU;   d  [5        X5      (       a  SU0nO,[	        [
        R                  SUR                  SS 5      SS	.S
9$ Sn[        U[        5      (       a  UR                  S5      nUcp  UR                  [6        5      R                  [6        R                  U:H  [6        R8                  R;                  S5      5      R                  5       nUb  UR<                  nUc  UnUS!:X  aa  [?        X5      nUR                  S5      S:X  a0  UR                  S"S5      n[	        UUUR                  SU5      SS	.S
9$ [A        US   US   S#S$9$ US%:X  Ga  UR                  [B        5      R                  [B        RD                  U :H  [B        RF                  S%:H  5      RI                  [B        R                  RK                  5       5      R                  5       nSnU(       a  URL                  (       a  URL                  nO^[O        U5      nURQ                  U S&9nU(       a=  [1        U5      S:  a.  [        US   [        5      (       a  US   R                  S'5      OSnU(       d  [	        [
        R                  SUSS	.S
9$ [O        U5      nUR                  U5      n[        U[        5      (       a1  UR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [%        S(5      S)-  nURS                  5       (       d  [	        [
        R                  SS*SS	.S
9$ S+nUR                  S,5      (       an  UR                  [T        5      R                  [T        R                  UR                  S,5      :H  5      R                  5       nU(       a  URV                  =(       d    S+nS+n UR                  S-5      (       an  UR                  [X        5      R                  [X        R                  UR                  S-5      :H  5      R                  5       n!U!(       a  U!RZ                  =(       d    S+n S+n"S+n#UR                  S.5      (       Ga  UR                  [\        5      R                  [\        R                  UR                  S.5      :H  5      R                  5       n$U$(       a  [_        UU$5      R`                  =(       d    S+Rc                  5       n"U$Rd                  (       ao  SS/K3J4n%  UR                  U%5      R                  U%R                  U$Rd                  :H  5      R                  5       n&U&(       a  U&Rj                  (       a  U&Rj                  n#U#(       d  UR                  S05      (       a   [        UR                  S05      5      n'SS/K3J4n%  UR                  U%5      R                  U%R                  U':H  5      R                  5       n&U&(       a  U&Rj                  (       a  U&Rj                  n#UUS1'   U US2'   U"US3'   U#US4'   UR                  S55      (       Gdj  UR                  S65      (       GaS  UR                  [p        5      R                  [p        RD                  US6   :H  5      R                  5       n(U((       Ga  U(Rr                  (       a  U(Rr                  n)[u        U)S75      (       a  U)Rw                  S85      US5'   O['        U)5      Rc                  5       SS9 US5'   UR                  S:5      c   US5   SS9 n*[x        Rz                  " U*S85      R}                  5       n+[|        R~                  " 5       n,U,R                  U+R                  -
  U,R                  U,R                  4U+R                  U+R                  4:  -
  US:'   S; n-S+n.UR                  S55      n)UR                  S<5      =(       d    Sn/U)(       GaD   [        U)[&        5      (       a7  [x        Rz                  " U)Rc                  5       SS9 S85      R}                  5       n0O#[u        U)S=5      (       a  U)R}                  5       OU)n0U/(       a?  [x        Rz                  " ['        U/5      Rc                  5       SS9 S85      R}                  5       O[|        R~                  " 5       n1U0U1::  as  U1R                  U0R                  -
  S>-  U1R                  U0R                  -
  -   n2U1R                  U0R                  :  a  U2S?-  n2U2S>-  n3U2S>-  n4U4(       a  U3 S@U4 SA3OU3 SB3n.U.(       d   UR                  S:5      b  ['        US:   5      n.S+n5UR                  S1S+5      n6U6(       a6  ['        U65      R                  5       n7SCU7;   d  U7SD:X  a  SDn5OSEU7;   d  U7SF:X  a  SFn5UR                  SG5      n8U8S?:X  a  SHOSIn9U8SJ:X  a  SHOSIn:U8S!:X  a  SHOSIn;U8S%:X  a  SHOSIn<SKSLSMSNSO.n=U8(       a  U=R                  U8S+5      OS+n>U8S%:X  a1  ['        UR                  SP5      =(       d    S+5      Rc                  5       n>UR                  SQ5      n?U?S?:X  a  SHOSIn@U?(       a  U?S?:w  a  SHOSInA['        UR                  SR5      =(       d    S+5      Rc                  5       nB['        UR                  SS5      =(       d    S+5      Rc                  5       nCU-" UR                  S55      5      nD['        UR                  ST5      =(       d    S+5      Rc                  5       nE['        UR                  SU5      =(       d    S+5      Rc                  5       nF['        UR                  S25      =(       d    S+5      Rc                  5       nG0 SRWB_SVUB_SSWC_SWUC_S5WD_SXUD_S:U._STWE_SYUE_SUWF_SZUF_S2UG_S[UG_S\['        UR                  S\5      =(       d    S+5      Rc                  5       _S]['        UR                  S]5      =(       d    S+5      Rc                  5       _S^['        UR                  S^5      =(       d    S+5      Rc                  5       _S3['        UR                  S35      =(       d    S+5      Rc                  5       _0 S_['        UR                  S35      =(       d    S+5      Rc                  5       _S`['        UR                  S^5      =(       d    S+5      Rc                  5       _S4['        UR                  S45      =(       d    S+5      Rc                  5       _Sa['        UR                  S45      =(       d    S+5      Rc                  5       _SP['        UR                  SP5      =(       d    S+5      Rc                  5       _Sb['        UR                  SP5      =(       d    S+5      Rc                  5       _ScU>_Sd['        UR                  Sd5      =(       d    S+5      Rc                  5       _Se['        UR                  Sd5      =(       d    S+5      Rc                  5       _S<U-" UR                  S<5      5      _SfU-" UR                  Sf5      5      _Sg['        UR                  Sg5      =(       d    S+5      Rc                  5       _Sh['        UR                  Sg5      =(       d    S+5      Rc                  5       _Si['        UR                  Si5      =(       d    S+5      Rc                  5       _Sj['        UR                  Si5      =(       d    S+5      Rc                  5       _Sk['        UR                  Sk5      =(       d    S+5      Rc                  5       _S1['        UR                  S15      =(       d    S+5      Rc                  5       _E0 SlU5SD:X  a  SHOSI_SmU5SF:X  a  SHOSI_SnU5SD:X  a  SHOSI_SoU5SF:X  a  SHOSI_SpU9_SqU:_SrU;_SsU<_StU9_SuU:_SvU;_SwU<_SxW@_SyWA_SzU@_S{UA_S|['        UR                  S\5      =(       d    S+5      Rc                  5       _E['        UR                  SS5      =(       d    S+5      Rc                  5       U-" UR                  S55      5      ['        UR                  S\5      =(       d    S+5      Rc                  5       ['        UR                  S]5      =(       d    S+5      Rc                  5       ['        UR                  S^5      =(       d    S+5      Rc                  5       ['        UR                  ST5      =(       d    S+5      Rc                  5       ['        UR                  SU5      =(       d    S+5      Rc                  5       S}.EnH[%        S~5      nIUIR                  SSS9  [        R                  " SS+UR                  SR5      =(       d    S5      R                  SS5      SS nJWISUJ S[        R                  " 5       R                  SS  S3-  nK[2        R                  " ['        U5      WH['        UK5      5      nUR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   S#S$9$ US:X  G	aI  [        U5      nLULR                  U 5      nM[        UM[        5      (       a1  WMR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [%        S(5      S-  nURS                  5       (       d  [	        [
        R                  SSSS	.S
9$ S n-['        WMR                  S5      =(       d    S+5      Rc                  5       nN['        WMR                  S5      =(       d    S+5      Rc                  5       nOU-" WMR                  S5      5      nP['        UMR                  S5      =(       d    S+5      Rc                  5       nQ['        WMR                  S5      =(       d    S+5      Rc                  5       nR['        WMR                  S5      =(       d    S+5      Rc                  5       nS['        WMR                  S5      =(       d    S+5      Rc                  5       nT['        WMR                  S]5      =(       d    S+5      Rc                  5       nU['        WMR                  S5      =(       d    S+5      Rc                  5       nV['        WMR                  S5      =(       d    S+5      Rc                  5       nW['        WMR                  S5      =(       d    S+5      Rc                  5       nXWW(       d  WX(       a  WW SWX 3Rc                  S5      OS+nYU-" WMR                  S5      5      nZ['        UMR                  S5      =(       d    S+5      Rc                  5       n[['        WMR                  S5      =(       d    S+5      Rc                  5       n\['        WMR                  S5      =(       d    S+5      Rc                  5       n]['        WMR                  S5      =(       d    S+5      Rc                  5       n^['        WMR                  S5      =(       d    WMR                  S5      =(       d    S+5      Rc                  5       n_['        WMR                  Si5      =(       d    S+5      Rc                  5       n`['        WMR                  S5      =(       d    S+5      Rc                  5       R                  5       naUaS;   nbUaS;   nc['        WMR                  S5      =(       d    S+5      Rc                  5       nd['        WMR                  S5      =(       d    S+5      Rc                  5       ne['        WMR                  S5      =(       d    S+5      Rc                  5       nf['        WMR                  S5      =(       d    S+5      Rc                  5       ng['        WMR                  S5      =(       d    WMR                  S5      =(       d    S+5      Rc                  5       nh['        WMR                  S5      =(       d    WMR                  S5      =(       d    S+5      Rc                  5       ni['        WMR                  S5      =(       d    S+5      Rc                  5       nj['        WMR                  S5      =(       d    WMR                  S5      =(       d    S+5      Rc                  5       nk['        WMR                  S5      =(       d    S+5      Rc                  5       nl['        WMR                  S5      =(       d    WMR                  S5      =(       d    S+5      Rc                  5       nmU-" WMR                  S5      5      nnU-" UMR                  S5      5      noU-" UMR                  S5      5      np0 SWN_SWO_SWP_SUP_SWQ_SWR_SWS_SUO_SUN_SUP_SUQ_SUR_SUR_SUS_S_WT_SUT_S]WU_0 SWV_SUV_SWY_SWW_SWX_SWZ_SUZ_SUT_SUU_SUV_SUY_SUY_SUZ_SUZ_SW[_SW\_SW]_E0 SW^_SU^_SU[_SU\_SU]_SU^_SW__SjW`_SiU`_SWb(       a  SHOS+_SWc(       a  SHOS+_SWd_SWe_SWf_SWg_SWh_SWi_E0 SUd_SUe_SUf_SUg_SUh_SUi_SUf_SUg_SUf_SUg_SUf_SUg_SWj_SWk_SWl_SUk_SWm_EUmWnWoWpS.EnH[%        S~5      nIUIR                  SSS9  [        R                  " SS+WN=(       d    S5      R                  SS5      SS nJWISUJ S[        R                  " 5       R                  SS  S3-  nK[2        R                  " ['        U5      WH['        UK5      5      nUR                  S5      S:w  aX  SSKPJQnqJRnrJSns  Us" [%        US   5      SWMR                  S5      05        Ur" [%        US   5      5        Uq" [%        US   5      5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   S#S$9$ US:X  Ga+  S nt[        U5      nuUuR                  U 5      nvS+nNS+nwS+nxS+nQS+nyS+nzS+n{S+n|S+n}S+n~S+nS+nS+nS+nS+nS+nS+nSnSnSnSnSnSnS+nS+nS+nS+nS+nSnSnS+nS+nS+nS+nS+nSnS+nSnS+nS+n[        Uv[        5      (       Ga  WvR                  S5      S:w  Ga  ['        WvR                  SR5      =(       d    S+5      Rc                  5       nN['        WvR                  SS5      =(       d    S+5      Rc                  5       nwS nU" WvR                  S,5      5      nU" UvR                  S-5      5      nU" UvR                  S5      5      nU" UvR                  S5      5      nU" UvR                  S5      5      nWt" UvR                  S55      5      nx['        UvR                  ST5      =(       d    S+5      Rc                  5       ny['        WvR                  SU5      =(       d    S+5      Rc                  5       nz['        WvR                  S5      =(       d    S+5      Rc                  5       n{['        WvR                  S5      =(       d    S+5      Rc                  5       n|['        WvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       nW" WvR                  S5      5      nU" UvR                  S5      5      nUvR                  S5      n['        UvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       nWt" WvR                  S5      5      n['        UvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       n~['        WvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       n['        WvR                  S]5      =(       d    S+5      Rc                  5       n['        WvR                  S^5      =(       d    S+5      Rc                  5       n['        WvR                  S05      =(       d    S+5      Rc                  5       n['        WvR                  S5      =(       d    S+5      Rc                  5       nW" WvR                  S5      5      nU(       Ga  UR                  [\        5      R                  [\        R                  W:H  5      R                  5       nU(       a  [_        UW5      R`                  =(       d    S+Rc                  5       nW(       d  [        WSS5      (       a  SS/K3J4n%  UR                  U%5      R                  U%R                  WRd                  :H  5      R                  5       nU(       a5  [        WSS5      (       a#  ['        WRj                  5      Rc                  5       nWvR                  S05      nUb  ['        W5      Rc                  5       nU(       a  WR                  5       (       d  [        W[        [        45      (       a   [        W5      nSS/K3J4n%  UR                  U%5      R                  U%R                  U:H  5      R                  5       nU(       a5  [        WSS5      (       a#  ['        WRj                  5      Rc                  5       nO	W(       d  WnW" WvR                  SG5      5      n['        UvR                  SP5      =(       d    S+5      Rc                  5       nW" WvR                  S5      5      nWt" UvR                  S5      5      nUt" UvR                  S<5      5      nUR                  S0 5      =(       d    0 nUR                  S0 5      =(       d    0 nWR                  S0 5      =(       d    0 nWN(       do  WR                  SS+5      =(       d    S+ SWR                  SS+5      =(       d    S+ SWR                  SS+5      =(       d    S+ 3Rc                  5       =(       d    SU  3nNWw(       dC  ['        WR                  SS5      =(       d    S+5      Rc                  5       =(       d    ['        U 5      nwWx(       d  Wt" WR                  S55      5      nxWy(       dI  ['        WR                  ST5      =(       d    WR                  SY5      =(       d    S+5      Rc                  5       nyWz(       dI  ['        WR                  SU5      =(       d    WR                  SZ5      =(       d    S+5      Rc                  5       nzW{(       d1  ['        WR                  S5      =(       d    S+5      Rc                  5       n{W|(       d1  ['        WR                  S5      =(       d    S+5      Rc                  5       n|W(       d1  ['        WR                  S5      =(       d    S+5      Rc                  5       nW(       d2  ['        WR                  GS 5      =(       d    S+5      Rc                  5       nW(       d  WR                  GS5      (       a  U(       az  UR                  [        5      R                  [        R                  WGS   :H  5      R                  5       nU(       a,  ['        WR                  =(       d    S+5      Rc                  5       nW(       d  WR                  GS5      (       a  U(       a  UR                  [        5      R                  [        R                  S:H  [        R                  WGS   :H  5      R                  5       nU(       a,  ['        WR                  =(       d    S+5      Rc                  5       nSnU(       an  UR                  [        5      R                  [        RD                  U :H  5      RI                  [        R                  RK                  5       5      R                  5       nW(       a}  U(       av  UR                  [        5      R                  [        R                  W:H  5      R                  5       nU(       a,  ['        WR                  =(       d    S+5      Rc                  5       n}W}(       d  W(       a  [        WGSS5      (       a  UR                  [        5      R                  [        R                  WR                  :H  5      R                  5       nU(       a,  ['        WR                  =(       d    S+5      Rc                  5       n}W~(       d  WR                  GS5      (       a  U(       a|  UR                  [        5      R                  [        R                  WGS   :H  5      R                  5       nU(       a.  ['        [        WGSS5      =(       d    S+5      Rc                  5       n~S+nQ[        Wv[        5      (       a&  WvR                  S5      S:w  a  WvR                  S55      OSnUc  WR                  S55      nW(       Ga   [        W[&        5      (       a?  [x        Rz                  " ['        W5      Rc                  5       SS9 S85      R}                  5       O"[u        WS=5      (       a  WR}                  5       OWn[|        R~                  " 5       n,U,R                  UR                  -
  U,R                  U,R                  4UR                  UR                  4:  -
  n3U,R                  UR                  -
  S>-  U,R                  UR                  -
  -   n2U,R                  UR                  :  a  U2S?-  n2U2S>-  n4/ nU3S:  a   WR                  U3 GSU3S?:w  a  GSOS+ 35        U4S:  a   WR                  U4 GSU4S?:w  a  GSOS+ 35        W(       a  GS	R                  W5      OGS
nQGS nWc  W" WR                  S,5      5      nWc  W" WR                  S-5      5      nWc  W" WR                  S5      5      nWc  W" WR                  S5      5      nS+nW(       a}  U(       av  UR                  [X        5      R                  [X        R                  W:H  5      R                  5       nU(       a,  ['        WRZ                  =(       d    S+5      Rc                  5       nS+nW(       a}  U(       av  UR                  [        5      R                  [        R                  W:H  5      R                  5       nU(       a,  ['        WR                  =(       d    S+5      Rc                  5       nS+nW(       a}  U(       av  UR                  [        5      R                  [        R                  W:H  5      R                  5       nU(       a,  ['        WR                  =(       d    S+5      Rc                  5       nS+nS+nW(       Ga  U(       a  UR                  [T        5      R                  [T        R                  W:H  5      R                  5       nU(       aB  WRV                  (       a1  ['        WRV                  5      R                  5       Rc                  5       OS+n6U6(       ae  GSU6;   d  U6GS:X  d  GSU6;   d  GSU6;   a  ['        SH5      ['        S+5      nnO2GSU6;   d  U6GS:X  d  GSU6;   d  GSU6;   a  ['        S+5      ['        SH5      nnW" W5      nUb	  WGS;  a  Sn['        WS?:X  a  SHOS+5      n['        WSJ:X  a  SHOS+5      n['        WS!:X  a  SHOS+5      nW" W5      nUb	  WGS;  a  Sn['        WS?:X  a  SHOS+5      n['        WSJ:X  a  SHOS+5      n['        WS!:X  a  SHOS+5      nWS!:X  a  ['        W5      OS+nW" W5      nUb	  WGS;  a  Sn['        WS?:X  a  SHOS+5      n['        WSJ:X  a  SHOS+5      nWS?:X  a  GSnOWSJ:X  a  GSnOWS!:X  a  SNnOS+n[        5       nW" W5      nUb!  S?Ws=::  a  S!::  a  O  OWR                  W5        ['        S?W;   a  SHOS+5      n['        SJW;   a  SHOS+5      n['        S!W;   a  SHOS+5      nGS[&        GS[        [           4GS jn[        5       nWb  [        W[&        5      (       a8  WR                  GS5       H!  nW" U5      nUc  M  WR                  W5        M#     O[        W[        [        45      (       a  W Hz  n[        U[        [        45      (       a5  S?[        W5      s=::  a  S9::  a  O  OWR                  [        W5      5        MS  W" ['        W5      5      nUc  Mi  WR                  W5        M|     ['        S?W;   a  SHOS+5      n['        SJW;   a  SHOS+5      n['        S!W;   a  SHOS+5      n['        S%W;   a  SHOS+5      n['        GSW;   a  SHOS+5      n['        GSW;   a  SHOS+5      n['        SW;   a  SHOS+5      n['        SW;   a  SHOS+5      n['        GSW;   a  SHOS+5      n['        S9W;   a  SHOS+5      n[%        S(5      GS-  nURS                  5       (       d  [	        [
        R                  SGS SS	.S
9$ 0 SWN_SWw_SWx_SWQ_GS!W_GS"Wy_GS#Wz_GS$W{_GS%W_GS&W_GS'W|_GS(W}_SW~_SW_SW_SW_GS)W_0 GS*W_GS+W_GS,W_GS-W_SW_SW_SW_SW_GS.W_GS/W_GS0W_GS1W_GS2WS?:X  a  GSOS+_GS3WSJ:X  a  GSOS+_GS4WS!:X  a  SNOS+_GS5W_GS6W_E0 GS7W_GS8U_GS9U_GS:U_GS;W_GS<W_GS=W_GS>W_GS?W_GS@W_GSAW_GSBW_GSCW_GSDW_SnW_SoW_S_W_EWWWWWWWWUUWWWWGSE.EnH[%        S~5      nIUIR                  SSS9  [        R                  " SS+WN=(       d    GSF5      R                  SS5      SS nJWIGSGUJ S[        R                  " 5       R                  SS  S3-  nKW(       d  GSHGSI/OSn[2        R                  " ['        U5      WH['        WK5      UGSJ9nUR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   S#S$9$ UGSK:X  Gap  SnGSL nGSM[        GS[&        4GSN jn[        U5      nUR                  U SGSO9nUR                  S5      GSP:X  a  WR                  S5      OSnU(       d  [	        [
        R                  SUSS	.S
9$ [        X05      n[        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 nWR                  S5      =(       d    0 nWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ 3Rc                  5       =(       d    WR                  GSQ5      =(       d    SU  3nN['        WR                  GSQ5      =(       d    S+5      Rc                  5       =(       d    WNnW" WR                  S55      5      n['        WR                  S:5      =(       d    S+5      Rc                  5       nQUQ(       d  WR                  S55      (       a   WR                  S55      n+[        U+[&        5      (       a6  [x        Rz                  " U+Rc                  5       SS9 S85      R}                  5       n+[|        R~                  " 5       n,U,R                  U+R                  -
  U,R                  U,R                  4U+R                  U+R                  4:  -
  n3U3S?:w  a  U3 GSR3OGSSnQS+nSUR                  [        5      R                  [        R                  U :H  5      R                  5       nU(       a  WR                   (       aq  UR                  [        5      R                  [        R                  WR                   :H  5      R                  5       nU(       a  WR                  (       a  WR                  nSS+nRW(       a  WR                  GS5      (       a  UR                  [        5      R                  [        R                  S:H  [        R                  WR                  GS5      :H  5      R                  5       nU(       a  WR                  (       a  WR                  nRW" WR                  S<5      5      n['        UR                  Si5      =(       d    S+5      Rc                  5       n`W" WR                  GST5      5      n['        UR                  GSU5      =(       d    S+5      Rc                  5       R                  5       nS+R                  GSV [        R                  " GSWU5       5       5      n['        WR                  GSX5      =(       d    S+5      Rc                  5       nS+nS+nS+nWGSY;   a  W=(       d    GSZnO'WGS[;   a  W=(       d    GSZnOWGS\;   a  W=(       d    GSZn['        WR                  GS]5      =(       d    S+5      Rc                  5       n['        WR                  GS^5      =(       d    S+5      Rc                  5       nW" WR                  GS_5      5      nS+nGS`n[        U5      nW(       a  OW(       a  WR                  5       (       ay  SnWR                  5       (       ab  [        n[        R                  " GSaGSb9u  nn[        R                  " U5        [        WU5      (       a  WnO [        R                  " W5        S+nW" WR                  GSc5      5      nU" UR                  GSd5      5      nU" UR                  GSe5      5      nU" UR                  GSf5      5      nU" UR                  GSg5      5      nU" UR                  GSh5      5      nU" UR                  GSi5      5      nU" UR                  GSj5      5      nU" UR                  GSk5      5      nU" UR                  GSl5      5      nU" UR                  GSm5      5      nS+nS+n['        UR                  S^5      =(       d    S+5      Rc                  5       n['        WR                  S05      =(       d    S+5      Rc                  5       nWR                  S5      (       a  UR                  [\        5      R                  [\        R                  WR                  S5      :H  5      R                  5       nU(       a[  [_        UW5      nUR`                  =(       d    S+Rc                  5       n['        WR                  =(       d    S+5      Rc                  5       nWR                  GSn5      =(       d    / Gn 0 Gn0 GnGU  H  GnGUR                  GSo5      =(       d    S+Rc                  5       R                  5       GnGWR                  GSp5      GnGUc  MW   [        GW5      GnGWR                  GSq5      =(       d    S+Rc                  5       R                  5       GnGU(       d  M  GSrGW;   d  GSsGW;   d  GWGSt:X  a
  GWGWGW'   M  GWGWGW'   M     GSu Gn0 SWN_GSvW_GSwW_SWQ_SWS_SWR_S<W_SjW`_GSxW_GSyW_GSzW_GS{W_GS]W_GS^W_GS_W_GS|W(       d  W(       a  [        OS+_GS}W(       a  S+OW_WWWWWWWWWWWWWWWGS~.EnH0 GSS_GSS_GSS_GSS_GSS_GSGSv_GSGSv_GSGSv_GSGSw_GSGSw_GSS_GSS_GSS_GSS_GSS_GSS_GSS_0 GSS_GSS_GSS_GSS<_GSS<_GSSj_SiSj_GSGSx_GSGSx_GSGSx_GSGSx_GSGS__GSGS__GS|GS|_GS}GS}_GSGSc_GSGSd_EGSfGSgGShGSiGSjGSlGSkGSmGSeGS]GS^S_S]S^S0GS.EGn[        S?GS5       H_  Gn	[        S?GS5       HJ  Gn
GSGW	 SGU
 3GnGWR                  GU	5      GnGU(       a
  GW" GW5      OSGnGUGW
:X  a  GSZOS+WHGW'   ML     Ma     [        GSGS5       Hf  Gn	[        S?GS5       HQ  Gn
GSGW	 SGU
 3GnGU	S9-
  GnGWR                  GU5      GnGU(       a
  GW" GW5      OSGnGUGW
:X  a  GSZOS+WHGW'   MS     Mh     [%        S(5      GS-  nURS                  5       (       d  [	        [
        R                  SGSSS	.S
9$ [%        S~5      nIUIR                  SSS9  [        R                  " SS+WN=(       d    GS5      R                  SS5      SS nJWIGSUJ S[        R                  " 5       R                  SS  S3-  nK/ GSQGn[2        R                  " ['        U5      WH['        UK5      GUGWGS9nUR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ UR                  S5      GnGU(       a7  W(       a0  [        ['        GW5      GS|WGSGS9  G[        ['        GU5      5        O-GW(       a%  W(       a  W(       a  G[        ['        GW5      W5        W(       aZ  GW(       aR  W(       dK   G[        ['        GW5      W5      (       d  G[        ['        GW5      5         [        R                  " W5        OHGW(       a@  [        WHR                  GS}5      =(       d    S+;   a  W(       d  G[        ['        GW5      5        [A        US   US   S#S$9$ UGS:X  Ga  G[        U5      GnGURQ                  U S&9GnGU(       a  [1        GW5      S:X  a  [	        [
        R                  SUSS	.S
9$ GWS   GnGUGR	                  S'S5        GUGR	                  GSS5        [        U[        5      (       a  UR                  S0 5      O0 nUR                  S0 5      GnGUR                  SS+5      =(       d    S+GnGWR                  SS+5       SGUR                  SS+5       3Rc                  5       GnGU SGU 3Rc                  5       GnGUR                  SSS+5      =(       d    S+GnS+nQGWR                  S5S+5      GnGU(       Ga   SGnGS H-  Gn [x        Rz                  " GWGU5      R}                  5       Gn  O   GW(       GaB  [x        GR
                  " 5       R}                  5       GnGWR                  GS5      (       a<   GWR                  GS5      Gn[x        Rz                  " GUS85      R}                  5       GnGWR                  GWR                  -
  n3GUR                  GUR                  -
  n4U4S:  a  U3S?-  n3U4S>-  n4O*U4S:X  a$  GWR                  GWR                  :  a  U3S?-  n3GSn4U3S:  a;  U4S:  a#  U3 GSU3S?:w  a  GSOS+ GS	U4 GSU4S?:w  a  GSOS+ 3nQO)U3 GSU3S?:w  a  GSOS+ 3nQOU4S:  a  U4 GSU4S?:w  a  GSOS+ 3nQGWGWGS'   GWGUGS'   GWGUGS'   WQGUS'   GWGUGS'   GUR                  GS5      (       a  UR                  [        5      R                  [        R                  GWGS   :H  5      R                  5       nU(       a  WR                  (       a  WR                  OS+GWGS'   GUGR	                  GSS5        GWR                  GS5      (       a  UR                  G[        5      R                  G[        R                  GWGS   :H  5      R                  5       Gn GU (       a!  GW GR                  (       a  GW GR                  OS+GWGS'   GUGR	                  GSS5        GWR                  GS5      (       a  UR                  [        5      R                  [        R                  S:H  [        R                  GWGS   :H  5      R                  5       nU(       a  WR                  (       a  WR                  OS+GWGS'   GUGR	                  GSS5        GWR                  GS5      (       a  ['        GWGS   5      Gn!GU!(       a   GW!R                  GS5       GV"s/ s HD  Gn"GU"Rc                  5       R                  5       (       d  M*  [        GW"Rc                  5       5      PMF     Gn#Gn"G[        UGU#5      Gn$GU# GV%s/ s H%  Gn%GW$R                  GU%5      (       d  M  GW$GW%   PM'     Gn&Gn%GU&(       a  GSR                  GW&5      OS+GWGS'   GWGR	                  GSS5        [2        GR                  " UGWUSS~GS9nG[        UXU5        US   S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  Ga  G[        U5      Gn'GU'R                  U 5      Gn([        GU([        5      (       a2  GW(R                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ GW(GR                  5       Gn)GU)GR	                  S'S5        GU)GR	                  GSS5        GU)GR	                  GSS5        [        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 nWR                  S5      =(       d    0 nGW)R                  S5      =(       d    S+Rc                  5       (       du  WR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ 3Rc                  5       Gn*GU*(       a  GW*OSU  3GW)S'   GW)R                  S5      =(       d    S+Rc                  5       (       d6  WR                  SS5      =(       d    WR                  SS5      =(       d    S+GW)S'   GW)R                  S5      =(       d    S+Rc                  5       (       d+  WR                  S55      (       a  WR                  S55      GW)S'   GW)R                  S5      =(       d    S+Rc                  5       (       Gd3  WR                  S55      (       Ga   [x        Rz                  " ['        WR                  S55      5      S85      R}                  5       n0[x        GR
                  " 5       R}                  5       n1GW)R                  GS5      (       a4   [x        Rz                  " ['        GW)GS   5      S85      R}                  5       n1U1R                  U0R                  -
  n3U1R                  U0R                  -
  n4U4S:  a
  U3S?-  n3U4S>-  n4U3S:  a  U3 GSU3S?:w  a  GSOS+ 3OU4 GSU4S?:w  a  GSOS+ 3GW)S'   GW)R                  GS5      (       dQ  GW)R                  S5      =(       d    S+Rc                  5       (       d#  WR                  GS5      Gn+GU+(       a  GW+GW)GS'   GW)R                  GS5      (       d.  WR                  GS5      (       a  WR                  GS5      GW)GS'   GW)R                  GS5      (       d.  WR                  GS5      (       a  WR                  GS5      GW)GS'   GW)R                  GS5      (       d  UR                  [        5      R                  [        RD                  U :H  5      RI                  [        R                  RK                  5       5      R                  5       Gn,GU,(       a  GW,R                  GW)GS'   GW)R                  GS5      (       a  UR                  [        5      R                  [        R                  GW)GS   :H  5      R                  5       nU(       a!  WR                  (       a  WR                  GW)S'   GW)GR	                  GSS5        GW)R                  S5      =(       d    S+Rc                  5       (       d  WR                  GS5      (       ao  UR                  [        5      R                  [        R                  WGS   :H  5      R                  5       nU(       a!  WR                  (       a  WR                  GW)S'   GW)R                  GS5      Gn-GU-(       a  UR                  [        5      R                  [        R                  S:H  [        R                  GW-:H  5      R                  5       nU(       a  WR                  (       a  WR                  OS+GW)GS'   OS+GW)GS'   GW)GR	                  GSS5        GU)R                  GS5      Gn.GU.(       ax  UR                  G[        5      R                  G[        R                  GW.:H  5      R                  5       Gn GU (       a!  GW GR                  (       a  GW GR                  OS+GW)GS'   OS+GW)GS'   GW)GR	                  GSS5        GU)R                  GS5      Gn/GU/(       Ga  UR                  [        5      R                  [        R                  GW/:H  5      R                  5       nU(       Ga  WGR                  =(       d    S+ SWGR                  =(       d    S+ SWGR                  =(       d    S+ 3Rc                  5       GW)GS'   WGR                   =(       d    S+GW)GS'   WR                  (       ay  UR                  [        5      R                  [        R                  WR                  :H  5      R                  5       nU(       a  WR                  (       a  WR                  OS+GW)GS'   OgS+GW)GS'   O_GW)R                  GS5      =(       d    S+GW)GS'   S+GU)GS'   S+GU)GS'   O/GW)R                  GS5      =(       d    S+GW)GS'   S+GU)GS'   S+GU)GS'   GW)GR	                  GSS5        GU)GR	                  GSS5        GU)R                  GS5      Gn0GU0(       a  ['        GW05      Rc                  5       Gn1GU1R                  GS5       Vs/ s HA  nURc                  5       R                  5       (       d  M(  [        WRc                  5       5      PMC     Gn2nG[        UGU25      Gn$GU2 GV%s/ s H%  Gn%GW$R                  GU%5      (       d  M  GW$GW%   PM'     Gn3Gn%GU3(       a  GSR                  GW35      OS+GW)GS'   OS+GW)GS'   GW)GR	                  GSS5        GSGSGSGSSO.Gn4GU)R                  GS5      Gn5GU5b  GW4R                  GW55      OS+GW)GS'   [2        GR                  " GSGU)USS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  Ga  G[#        U5      Gn6GU6R                  U SGS9Gn7[        GU7[        5      (       a2  GW7R                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GW7[        5      (       a  GW7R                  S5      OSGn8GU8(       a  [        GW8[        5      (       d  [	        [
        R                  SUSS	.S
9$ [        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 GnWR                  S5      =(       d    0 Gn9GWR                  SS+5      =(       d    S+GnGWR                  SS+5       SGUR                  SS+5       3Rc                  5       GnGU SGU 3Rc                  5       Gn[        GW85      Gn:GUGU:GS'   GUGU:GS'   GUGU:GS'   GUR                  SSS+5      =(       d    S+GW:GS'   GWR                  S5S+5      =(       d    GW8R                  SS+5      GW:S'   GW8R                  S5      =(       d    WR                  GS5      =(       d    S+Gn;GU;(       d  WR                  GS5      (       ar  UR                  [        5      R                  [        R                  WGS   :H  5      R                  5       nU(       a$  WR                  =(       d    S+Rc                  5       Gn;GW8R                  S5      =(       d4    [        GW9[        5      (       a  GW9R                  GS5      OS+=(       d    S+Gn<GU<(       d  GW9(       a  [        GW9[        5      (       a  GW9R                  GS5      (       a  UR                  [        5      R                  [        R                  S:H  [        R                  GW9GS   :H  5      R                  5       nU(       a$  WR                  =(       d    S+Rc                  5       Gn<GW8R                  GS5      =(       d    S+Gn=GU=(       dz  GW9(       ar  [        GW9[        5      (       a\  GW9R                  GS5      =(       d    S+Rc                  5       =(       d*    GW9R                  GS5      =(       d    S+Rc                  5       Gn=GW;GW:S'   GW<GU:S'   GW==(       d%    ['        GW8R                  GS5      =(       d    S+5      GW:GS'   S+nQGU:R                  SS+5      GnGU(       Ga6   SGnGS H9  Gn> [x        Rz                  " ['        GW5      SS9 GU>5      R}                  5       Gn  O   GW(       a  [x        GR
                  " 5       R}                  5       n1U1R                  GWR                  -
  n3U1R                  GUR                  -
  n4U4S:  a  U3S?-  n3U4S>-  n4O)U4S:X  a#  U1R                  GWR                  :  a  U3S?-  n3GSn4U3S:  a;  U4(       a"  U3 GSU3S?:w  a  GSOS+ GS	U4 GSU4S?:w  a  GSOS+ 3OU3 GSU3S?:w  a  GSOS+ 3nQOU4S:  a  U4 GSU4S?:w  a  GSOS+ 3nQWQGW:S'   GU:R                  GS5      Gn?GU?(       a  [        GW?[        5      (       a  GW?R                  S5      (       a  UR                  [\        5      R                  [\        R                  GW?S   :H  5      R                  5       nU(       a-  [_        UW5      R`                  =(       d    S+Rc                  5       OS+GW:GS'   GW:R                  GS5      =(       d    / Gn@GU@ H  Gn[        GU[        5      (       d  M  GWR                  S5      (       d  M5  UR                  [\        5      R                  [\        R                  GWS   :H  5      R                  5       nU(       a-  [_        UW5      R`                  =(       d    S+Rc                  5       OS+GWGS'   M     G[%        U5      RQ                  U S&9GnA/ GnB[        GUA[        5      (       a  GWAGnBOA[        GWA[        5      (       a+  GWAR                  S5      (       a  GWAR                  S/ 5      GnBGWBGW:GS'   [2        GR                  " UGU:USS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  Ga  G['        U5      GnCGUCR                  U 5      GnD[        GUD[        5      (       a2  GWDR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ GWDGR                  5       GnEGUEGR	                  S'S5        GUEGR	                  GSS5        GUEGR	                  GSS5        GUER                  GS5      (       a  UR                  [        5      R                  [        R                  GWEGS   :H  5      R                  5       nU(       a!  WR                  (       a  WR                  GWES'   GWEGR	                  GSS5        GWER                  GS5      (       a  UR                  G[        5      R                  G[        R                  GWEGS   :H  5      R                  5       Gn GU (       a&  GW GR                  (       a  GW GR                  GWEGS'   GWEGR	                  GSS5        GWER                  GS5      (       a  UR                  [        5      R                  [        R                  S:H  [        R                  GWEGS   :H  5      R                  5       nU(       a"  WR                  (       a  WR                  GWEGS'   GWEGR	                  GSS5        GWER                  GS/ 5      GnFGUF(       GaU  / GnGGWF GHB  nUR                  S5      GnHUR                  S5      GnIS+GnJGUH(       ay  UR                  [\        5      R                  [\        R                  GWH:H  5      R                  5       n$U$(       a.  [_        UU$5      R`                  =(       d    S+Rc                  5       GnJS+GnKGWI(       aV  SS/K3J4n%  UR                  U%5      R                  U%R                  GWI:H  5      R                  5       n&U&(       a  U&Rj                  GnKWGR                  5       GnLGWJGULGS'   GWKGULGS'   GWGR                  GUL5        GME     GWGGWEGS'   [2        GR                  " UGWEUSS~GS9nG[        UXU5        US   S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ US:X  Ga  G[)        U5      GnMGUMR                  U 5      GnN[        GUN[        5      (       a2  GWNR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ GWNGR                  5       GnOGUOGR	                  S'S5        GUOGR	                  GSS5        GUOGR	                  GSS5        GUOR                  GS5      (       a  UR                  [        5      R                  [        R                  S:H  [        R                  GWOGS   :H  5      R                  5       nU(       a"  WR                  (       a  WR                  GWOGS'   GWOGR	                  GSS5        OS+GWOGS'   GWOR                  GS5      GnPGUPb  ['        GWP5      Rc                  5       R                  5       (       a{   [        GWP5      Gn+UR                  [        5      R                  [        R                  GU+:H  5      R                  5       nU(       a"  WR                  (       a  WR                  GWOGS'   GWOR                  GS5      Gn0GU0b  [        GW0[        5      (       a  GW0O/ Gn2[        GW0[&        5      (       a   G[*        GR,                  " GW05      Gn2/ GnQGW2 H!  Gn5 GWQR                  [        GU55      5        M#     G[        UGWQ5      Gn$GUQ GV%s/ s H%  Gn%GW$R                  GU%5      (       d  M  GW$GW%   PM'     Gn3Gn%GU3(       a  GSR                  GW35      OS+GWOGS'   GWOGR	                  GSS5        [2        GR                  " SGUOUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  Ga  G[/        U5      GnRGURR                  U 5      GnS[        GUS[        5      (       a2  GWSR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWS[        5      (       a  GWSGR                  5       O0 GnOGUOGR	                  S'S5        GUOGR	                  GSS5        GUOGR	                  GSS5        GUOR                  GS5      (       a  UR                  [        5      R                  [        R                  S:H  [        R                  GWOGS   :H  5      R                  5       nU(       a"  WR                  (       a  WR                  GWOGS'   GWOGR	                  GSS5        O!GWOR                  GS5      =(       d    S+GWOGS'   GWOR                  GS5      GnPGUPb  ['        GWP5      Rc                  5       R                  5       (       a{   [        GWP5      Gn+UR                  [        5      R                  [        R                  GU+:H  5      R                  5       nU(       a"  WR                  (       a  WR                  GWOGS'   GWOR                  GS5      Gn0GU0b  [        GW0[        5      (       a  GW0O/ Gn2[        GW0[&        5      (       a   G[*        GR,                  " GW05      Gn2/ GnQGW2 H!  Gn5 GWQR                  [        GU55      5        M#     G[        UGWQ5      Gn$GUQ GV%s/ s H%  Gn%GW$R                  GU%5      (       d  M  GW$GW%   PM'     Gn3Gn%GU3(       a  GSR                  GW35      OS+GWOGS'   GWOGR	                  GSS5        [2        GR                  " GSGUOUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ [5        X5      (       Ga  G[1        U5      GnTGUTR                  U 5      GnU[        GUU[        5      (       a2  GWUR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWU[        5      (       a  GWUGR                  5       O0 GnOGUOGR	                  S'S5        GUOGR	                  GSS5        GUOGR	                  GSS5        GUOR                  GS5      (       a  UR                  [        5      R                  [        R                  S:H  [        R                  GWOGS   :H  5      R                  5       nU(       a"  WR                  (       a  WR                  GWOGS'   GWOGR	                  GSS5        O!GWOR                  GS5      =(       d    S+GWOGS'   GWOR                  GS5      GnPGUPb  ['        GWP5      Rc                  5       R                  5       (       a{   [        GWP5      Gn+UR                  [        5      R                  [        R                  GU+:H  5      R                  5       nU(       a"  WR                  (       a  WR                  GWOGS'   GWOR                  GS5      Gn0GU0b  [        GW0[        5      (       a  GW0O/ Gn2[        GW0[&        5      (       a   G[*        GR,                  " GW05      Gn2/ GnQGW2 H!  Gn5 GWQR                  [        GU55      5        M#     G[        UGWQ5      Gn$GUQ GV%s/ s H%  Gn%GW$R                  GU%5      (       d  M  GW$GW%   PM'     Gn3Gn%GU3(       a  GSR                  GW35      OS+GWOGS'   GWOGR	                  GSS5        [2        GR                  " UGUOUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  Ga  G[3        U5      GnVGUVR                  U 5      GnW[        GUW[        5      (       a2  GWWR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ GWWGR                  5       GnXGUXGR	                  S'S5        GUXGR	                  GSS5        GUXGR	                  GSS5        GUXGR	                  GSS5        [        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 nWR                  S5      =(       d    0 nWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ 3Rc                  5       Gn*GU*(       a  GW*OSU  3GWXS'   WR                  SS5      =(       d    WR                  SS5      =(       d    S+GWXGS'   WR                  GS5      GnYGUY(       ap  UR                  [        5      R                  [        R                  GWY:H  5      R                  5       nU(       a  WR                  (       a  WR                  OS+GWXGS'   OS+GWXGS'   WR                  GS5      Gn-GU-(       a  UR                  [        5      R                  [        R                  S:H  [        R                  GW-:H  5      R                  5       nU(       a  WR                  (       a  WR                  OGSGWXGS'   OGSGWXGS'   WR                  GS5      Gn.GU.(       ax  UR                  G[        5      R                  G[        R                  GW.:H  5      R                  5       Gn GU (       a!  GW GR                  (       a  GW GR                  OS+GWXGS'   OS+GWXGS'   GWXR                  S5      GnZGUZ(       Gaz  UR                  [\        5      R                  [\        R                  GWZ:H  5      R                  5       nU(       Ga  [_        UW5      nUR`                  =(       d    S+Rc                  5       GWXS3'   WR                  =(       d    S+GWXGS'   GUXR                  GS5      =(       d    S+Rc                  5       Gn[GU[(       a  GW[GWXS'   OWRd                  (       az  SS/K3J4n%  UR                  U%5      R                  U%R                  WRd                  :H  5      R                  5       Gn\GU\(       a  GW\Rj                  (       a  GW\Rj                  OS+GWXS'   O.S+GWXS'   O'S+=GWXS3'   =GUXGS'   GUXS'   OS+=GWXS3'   =GUXGS'   GUXS'   GWXGR	                  SS5        GUXGR	                  GSS5        GUXGR	                  GSS5        GUXR                  GS5      Gn/SnGU/(       aD  UR                  [        5      R                  [        R                  GW/:H  5      R                  5       nW(       dn  UR                  [        5      R                  [        RD                  U :H  5      RI                  [        R                  RK                  5       5      R                  5       nW(       au  WGR                  =(       d    S+ SWGR                  =(       d    S+ SWGR                  =(       d    S+ 3Rc                  5       GWXGS'   WGR                   =(       d    S+GWXGS'   OS+=GWXGS'   GUXGS'   GWXGR	                  GSS5        [2        GR                  " GSGUXUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  Ga  G[5        U5      Gn]GU]R                  U 5      Gn^[        GU^[        5      (       a2  GW^R                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 nWR                  S5      =(       d    0 nWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ 3Rc                  5       Gn*GU*(       a  GW*OSU  3S+S+S+S+S+S+S+GS.GnXWR                  GS5      GnYGUY(       ao  UR                  [        5      R                  [        R                  GWY:H  5      R                  5       nU(       a  WR                  (       a  WR                  OS+GWXGS'   WR                  GS5      Gn-GU-(       a  UR                  [        5      R                  [        R                  S:H  [        R                  GW-:H  5      R                  5       nU(       a  WR                  (       a  WR                  OS+GWXGS'   WR                  GS5      Gn.GU.(       aw  UR                  G[        5      R                  G[        R                  GW.:H  5      R                  5       Gn GU (       a!  GW GR                  (       a  GW GR                  OS+GWXGS'   UR                  [        5      R                  [        RD                  U :H  5      RI                  [        R                  RK                  5       5      R                  5       nU(       at  WGR                  =(       d    S+ SWGR                  =(       d    S+ SWGR                  =(       d    S+ 3Rc                  5       GWXGS'   WGR                   =(       d    S+GWXGS'   GW^R                  GS5      Gn_GU_(       a   [        GW_[&        5      (       aS  [1        GW_5      S9:  aC  [x        Rz                  " GW_SS9 S85      R}                  5       Gn`GU`Rw                  GS5      GWXGS'   O*[u        GW_S75      (       a  GW_Rw                  GS5      GWXGS'   GW^R                  GS5      =(       d    S+GnaGW^R                  GS5      =(       d    S+GnbGWa(       a&  GWb(       a  GWa GSGWb 3Rc                  5       GWXGS'   OGGWa(       a   ['        GWa5      Rc                  5       GWXGS'   O['        GWb5      Rc                  5       GWXGS'   [2        GR                  " GSGWXUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  GaD  G[7        U5      GncGUcR                  U SGS9GndGUd(       a.  GWdR                  S5      GSP:w  d  GWdR                  S5      (       d  [	        [
        R                  SUSS	.S
9$ GWdS   n[        U[        5      (       a  UR                  S0 5      O0 nUR                  S5      =(       d    0 nUR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ SWR                  S5      =(       d    S+ 3Rc                  5       nNUN(       d  SU  3nNWR                  SS5      =(       d    WR                  SS5      =(       d    S+GnWR                  S55      =(       d    WR                  S55      nS+GneU(       a   ['        W5      Rc                  5       SS9 Gn[1        GU5      S9:X  aR  GWS%   GS:X  aG  GWS   GS:X  a<  [x        Rz                  " GWS85      R}                  5       Gn`GU`Rw                  GS5      GneOGWGne WNGWGWeWR                  S<5      =(       d    S+WR                  GS5      =(       d    S+WR                  S5      =(       d    GSWR                  GS5      =(       d    S+WR                  GS5      UR                  GS5      =(       d    / WR                  GS5      =(       d    / GS.
Gnf[2        GR                  " GSGUfUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[9        U5      GngGUgR                  U 5      Gnh[        GUh[        5      (       a2  GWhR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWh5      Gni[2        GR                  " GSGUiUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[;        U5      GnjGUjR                  U 5      Gnk[        GUk[        5      (       a2  GWkR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWk5      Gnl[2        GR                  " GSGUlUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[=        U5      GnmGUmR                  U 5      Gnn[        GUn[        5      (       a2  GWnR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWn5      Gno[2        GR                  " GSGUoUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[?        U5      GnpGUpR                  U 5      Gnq[        GUq[        5      (       a2  GWqR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWq5      Gnr[2        GR                  " GSGUrUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[A        U5      GnsGUsR                  U 5      Gnt[        GUt[        5      (       a2  GWtR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWt5      Gnu[2        GR                  " GSGUuUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[C        U5      GnvGUvR                  U 5      Gnw[        GUw[        5      (       a2  GWwR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWw5      Gnx[2        GR                  " GSGUxUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[E        U5      GnyGUyR                  U 5      Gnz[        GUz[        5      (       a2  GWzR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GWz5      Gn{[2        GR                  " GSGU{USS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[G        U5      Gn|GU|R                  U 5      Gn}[        GU}[        5      (       a2  GW}R                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GW}5      Gn~[2        GR                  " GSGU~USS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[I        U5      GnGUR                  U 5      Gn[        GU[        5      (       a2  GWR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GW5      Gn[2        GR                  " GSGUUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ UGS:X  a  G[K        U5      GnGUR                  U 5      Gn[        GU[        5      (       a2  GWR                  S5      S:X  a  [	        [
        R                  SUSS	.S
9$ [        GW5      Gn[2        GR                  " GSGUUSS~GS9nG[        UXU5        UR                  S5      S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ [        U[        5      (       a  UR                  S0 5      O0 nUR                  SR5      =(       d    WR                  S5      =(       d    SU  3Gn[        U[        5      (       a  UR                  S5      OSGnUSJ:X  Ga  / GSQGnSnGU H/  Gn[%        S(5      GU-  GnGURS                  5       (       d  M,  GWn  O   U(       d1  [	        [
        R                  SGSGSR                  GW5       3SS	.S
9$ [        U[        5      (       a  UR                  S0 5      O0 nUR                  S0 5      GnGUR                  SS+5      =(       d    S+Gn3GWR                  SS+5      =(       d    S+GnGWR                  SS+5      =(       d    S+GnGW3 SGW SGU 3Rc                  5       GnS+GnWR                  S0 5      Gn9GU9(       a  GW9R                  GS5      OSGn-WR                  GS5      GnYS+Gn<S+Gn;GU-(       al  UR                  [        5      R                  [        R                  S:H  [        R                  GW-:H  5      R                  5       nU(       a  WR                  OS+Gn<GWY(       aZ  UR                  [        5      R                  [        R                  GWY:H  5      R                  5       nU(       a  WR                  OS+Gn;GW<(       a$  GW;(       a  GW< GSGW; 3Rc                  GS 5      GnOGW<(       a  GW<GnOGW;(       a  GW;GnS+GnS+GnS+GnG[M        U5      GnGUR                  U 5      GnGU(       Ga  [        GW[        5      (       Ga  GWR                  S5      S:w  a  GWGnGUR                  GS5      GnGU(       a]  UR                  [        5      R                  [        R                  GW:H  5      R                  5       GnGU(       a  GWR                  OS+GnGWR                  SS+5      GnGUR                  SS+5      GnGUR                  SS+5      GnGU SGU SGU 3Rc                  5       GnGUR                  SSS+5      =(       d    S+GnS+GnGW(       aI  [        GW[        5      (       a3  GWR                  S5      S:w  a  GWR                  SS+5      =(       d    S+GnGW(       d  WR                  S0 5      GnGUR                  S5      nU(       ac  UR                  [        5      R                  [        R                  W:H  5      R                  5       GnGU(       a  GWR                  =(       d    S+Gn[x        GR
                  " 5       Gn['        GUR                  5      GnGSGSGSGSGSGSGSGSGS	GS
GSGSGS.GnGUR                  GUR                  ['        GUR                  5      5      GnGU(       a  GWGRO                  5       OS+Gn['        GWR                  5      GSS Gn[2        GRP                  " ['        U5      GWGWGWGWGWGWGWGUGUS+GSS+S~GS9nUS   S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$  [%        US   5      GnGUR)                  5       (       a  SJGnG[S        U GUUGWGRT                  S5      Gn[%        S~5      GU-  GnGUGRV                  R                  SSS9  GURS                  5       (       a7  GWGRY                  5       GWGRY                  5       :w  a  GWR                  5         G[[        ['        GW5      ['        GW5      5        ['        GU5      US'   GWUS'   G[]        X0GWSGU5        [A        US   US   SS$9$ [        U[        5      (       a  UR                  GSS+5      O0 Gn[        U[        5      (       a  UR                  S5      OSGn[        U[        5      (       a  UR                  S0 5      O0 nUR                  S0 5      GnGUR                  SS+5      =(       d    S+GnGWR                  SS+5       SGUR                  SS+5       3Rc                  5       GnGU SGU 3Rc                  5       GnU GUGUGUUGWGU=(       d    GSU 3GS.GnGSU GS3GW(       a  GSU SGW GS3OSGW(       a  GWR                  SS5       GS3OSGSU GS3GW(       a'  GSGWR                  SS5      R                  5        GS3OS/GnGU GVs/ s H  GnGU(       d  M  GWPM     GnGnSnGU H/  Gn[%        S(5      GU-  GnGURS                  5       (       d  M,  GWn  O   [2        GR                  " UGWUU(       a  ['        U5      OSS~GS9nG[        UXU5        US   S:X  a,  [	        [
        R"                  SUR                  SU5      SS	.S
9$ [A        US   US   SS$9$ ! [,         a)  n[	        [
        R"                  SSU 3SS	.S
9s SnA$ SnAff = f! [l        [n        4 a    ['        UR                  S0S+5      5      n# GN@f = f! [         a     GNf = f! [         a     GNQf = f! [n        [l        4 a     GpNIf = f! [         a     GgNf = f! [         a     G\N>f = f! [,         a     GXNof = f! [n        [l        4 a     GVM(  f = f! [,         a     GPNf = f!  [        R                  " W5        f ! [,         a     f f = f= f!    GOM  = f!    GNN= f! [         a  Gn SGnGAGNNESGnGAff = fs  sGn"f s  sGn%f ! [         a  GnS+GWGS'    SGnGAGKNWSGnGAff = f! [         a     GGNxf = f! [         a     GGNf = fs  snf s  sGn%f ! [         a     G:M$  f = f! [         a     G9Nf = f! [l        [n        4 a     G/Nf = f! [         a    / Gn2 G/NVf = f! [l        [n        4 a     G/Mh  f = fs  sGn%f ! [l        [n        4 a     G+Nf = f! [         a    / Gn2 G+Nf = f! [l        [n        4 a     G+M  f = fs  sGn%f ! [l        [n        4 a     G(NKf = f! [         a    / Gn2 G'Nf = f! [l        [n        4 a     G(M  f = fs  sGn%f ! [         a"    GW_(       a  ['        GW_5      SS9 OS+GWXGS'    GNf = f! [         a    W(       a  ['        W5      SS9 OS+Gne GNf = f! [         a     GNf = fs  sGnf ! [         aZ  Gn[	        [
        R"                  SW GSG[_        GU5      GR`                   GS['        GU5      SS  GS3SS	.S
9s SGnGA$ SGnGAff = f7f(  u   
Genera un documento para un estudiante específico.
Cuando document_id = 4, genera el documento de evaluación de salud desde health_evaluations.
u/   No se encontró documento para este estudiante.r  r   r   r  rg  r  Nrf  r  +   r   re  zBSe requiere informal_test_template_id para generar este documento.http_status)re  r  i  r<  r;  r   r<  z#No se obtuvo ruta del PDF generado.z#El archivo PDF no existe en disco: z!No se pudo leer el PDF generado: r   zinformal_test.pdfrk  zattachment; filename="")zContent-DispositionzContent-Length)r  rn  rx  )r6  r7  r  r  r  r  r  r  r  r  r  r  r  r         r  r   zDocumento no encontrador6  r  r  rl  r7  )r   r   r  zhealth_evaluation.docxuP   Template de evaluación de salud no encontrado. Buscando: health_evaluation.docxr   r  r  profesional_id)CareerTypeModelprofessional_specialtygender_namenationality_nameprofessional_fullnameprofessional_specialty_namer  r   r  r  r  r  c                 `   U (       d  g [        U [        5      (       a7  [        R                  " U R	                  5       S S S5      R                  5       nO#[        U S5      (       a  U R                  5       OU nUR                  S5      $ ! [         a    U (       a  [        U 5      s $ Ss $ f = fNr   r  r  r   r  	r=  r   r   rA  r   r   r  r  rB  r:  r   s     r   	_fmt_date$generate_document.<locals>._fmt_date      3!#s++%..syy{3B/?LQQS+23+?+?SXXZS;;z22  3'*3s8223   A?B
 
B-(B-,B-evaluation_dater   r   r   u    años z mesesu    añosFEMENINOF	MASCULINOMprocedence_idr  r  r5  u   Salud pública
ParticularEscuelaOtror4  procedence_otherconsultation_reason_idr  r  r  r  names_lastnamesidentificator_number
birth_dater	  r
  r  consultation_reason_detail"professional_identification_number professional_registration_numberprofessional_full_nameprofessional_numberprofessional_specialityanother_procedenceprofessional_procedenceprofessional_contactphone_emailreevaluation_dategeneral_assessmentgeneral_health_state	diagnosis
diagnosticindicationsgender_Fgender_Msex_fsex_mprocedence_SPprocedence_Pprocedence_Eprocedence_Oprocedence_1procedence_2procedence_3procedence_4EGSDDDconsultation_reason_1consultation_reason_2consultation_reason)RUNBDDDRutPRNOLHLr   Tr   r  r  r  r   r  evaluacion_salud_r  r  r  zfamily_report.docxz)Template family_report.docx no encontradoc                 `   U (       d  g [        U [        5      (       a7  [        R                  " U R	                  5       S S S5      R                  5       nO#[        U S5      (       a  U R                  5       OU nUR                  S5      $ ! [         a    U (       a  [        U 5      s $ Ss $ f = fr$  r%  r&  s     r   r'  r(    r)  r*  r  r  r  r  r  r%  professional_social_namer  professional_phoneprofessional_emailz / report_delivery_datereceiver_full_namereceiver_identification_numberreceiver_relationshipreceiver_presence_ofevaluation_reasonapplied_instrumentsevaluation_type)	admissionu	   admisióningresor  )revaluationu   reevaluaciónr7  pedagogical_strengthspedagogical_support_needssocial_affective_strengthssocial_affective_support_needshealth_strengthsstrengths_3health_support_needssupport_needs_3collaborative_workhome_based_descriptionhome_supportschool_family_agreementsagreements_commitmentsevaluation_date_1evaluation_date_2evaluation_date_3student_birth_daterZ  zNombres y ApellidoszFecha nacimientoEdadzCurso / NivelCursoEstablecimientoprofessional_job_positionprofessional_phone_email"professional_delivered_date_informNombrer]  zRol / cargou   Teléfono / E-mail de contactou   Teléfono / E-mailzFecha entrega de informezFecha entregaperson_full_nameperson_identification_numberperson_relation_studentperson_presenceperson_presence_of
evaluationreevaluationstrengths_1support_needs_1strengths_2support_needs_2fortalezas_2necesidades_apoyo_2ambito_social_fortalezasambito_social_necesidadesfortalezas_social_afectivonecesidades_social_afectivoeducational_supports_school)r}  r~  r  r  informe_familiarinforme_familiar_)apply_familia_arial_10_font!compact_familia_narrative_spacing!fix_familia_motivo_evaluacion_rowr  c                 `   U (       d  g [        U [        5      (       a7  [        R                  " U R	                  5       S S S5      R                  5       nO#[        U S5      (       a  U R                  5       OU nUR                  S5      $ ! [         a    U (       a  [        U 5      s $ Ss $ f = fr$  r%  r&  s     r   _fmt_date_ic'generate_document.<locals>._fmt_date_icZ  r)  r*  c                     U b)  [        U [        5      (       a  U R                  5       S:X  a  g  [        U 5      $ ! [        [
        4 a     g f = fNr   r=  r   r   r   r  r  r  s    r   _to_int"generate_document.<locals>._to_int  sG    yZ3%7%7AGGIO#$"1v%z2 $#$   
: AA
commune_id	region_idresponsible_idr  citycontact_phonecontact_emaileducational_establishmentcourse_levelprogram_type_idadditional_information_idattached_documentsquestion_to_answerreferring_professionalreception_dateevaluation_summaryindications_supportestablishment_addressestablishment_communeestablishment_phoneestablishment_emailprofessional_contact_phoner   r  career_typerequired_new_control_idnew_control_dater  r  r  r  r  r  r  r  r  r   r   rH  school_addressr!  r"  r#  r$  r  u   0 añosc                     U b)  [        U [        5      (       a  U R                  5       S:X  a  g  [        U 5      $ ! [        [
        4 a     g f = fr  r  rj  s    r   _int_or_none'generate_document.<locals>._int_or_none  sG    9As!3!3	R q6M!:.   r  r  r  r  r  r  r  r  r  r@  )r   r5  u   Programa de integraciónzEscuela especial permanentepartr   c                 v   U =(       d    SR                  5       R                  5       nU(       d  g UR                  5       (       a  [        U5      nSUs=::  a  S::  a  U$   S $ SU;   a  gSU;   a  SU;   a  gSU;   a  S	U;   a  g
SU;   a  SU;   a  gSU;   a  gSU;   a  gSU;   a  gSU;   a  gSU;   a  gSU;   a  gg )Nr   r   r  	anamnesis
entrevistafamiliar5  u   observaciónescuelar6  examensaludr7  escolarr  socialr  u   neurológicor  u   psicológicor  u   fonoaudiológicor  r  )r   r   isdigitr   )r  r  rA  s      r   _attached_text_to_id/generate_document.<locals>._attached_text_to_idn  s    ZR&&(..099;;AA !Q"16$6!#1$a!Q&9>q=W\>q=!Q&!Q&%*Q;r   r  r  r  r  zinterconsultation.docxzMTemplate interconsultation.docx no encontrado en files/original_student_filesstudent_nationalitystudent_mother_languagestudent_used_languagestudent_addressstudent_communestudent_regionstudent_cityrelation_with_studentstudent_phonestudent_emailrX  rY  questionp1p2p3program_type_nameprograma_integracionescuela_especial_permanenteprogram_type_otroadditional_information_1additional_information_2additional_information_3	descartarprecisarcomplementar
document_1
document_2
document_3
document_4
document_5
document_6
document_7
document_8
document_9document_10)r:  r;  r  rd  procedence_id_1procedence_id_2procedence_id_3
procedencer4  procedence_otrorequired_new_control_id_1required_new_control_id_2required_new_control_dater+  interconsultainterconsulta_+   Haz clic o pulse aquí para escribir texto.*   Haz clic o pulse aquí para escribir texto)remove_literal_stringsr   c                    U (       d  g [        U [        5      (       a7  [        R                  " U R	                  5       S S S5      R                  5       nOA[        U S5      (       a.  [        [        U SS 5      5      (       a  U R                  5       OU nOU nUR                  S5      $ ! [         a    U (       a  [        U 5      s $ Ss $ f = fr$  )r=  r   r   rA  r   r   r  callabler   r  rB  r&  s     r   _fmt_date_d27(generate_document.<locals>._fmt_date_d27
  s    	3!#s++%..syy{3B/?LQQS f--+3GC4N+O+OSXXZUX ;;z22  3'*3s8223s   BB( (CC
Cr:  c                    [        U =(       d    S5      R                  5       nU(       a  SU;  a  U$  SSKJn  U" US5      R	                  SSS9$ ! [
         a)    SS	KnUR                  " S
SU5      R                  5       s $ f = f)uU   Campos IV–VI pueden guardarse como HTML (editor enriquecido); Word usa texto plano.r   <r   )BeautifulSoupzhtml.parserr^  T)r   Nz<[^>]+>r  )r   r   bs4r  get_textrB  r  r  )r:  r"  r  r  s       r   _psychoped_html_to_plain3generate_document.<locals>._psychoped_html_to_plain  sz    	rN((*CqLH>1(M:CCDPTCUU  >66*c15;;==>s   A 0BB)r   latest_onlyr  social_nameu    año(s)u   1 añodiagnosis_issue_dateadmission_typec              3   ^   #    U  H#  n[         R                  " U5      S :w  d  M  Uv   M%     g7f)MnN)unicodedatacategoryr  s     r   r  $generate_document.<locals>.<genexpr>]  s,      )JA''*d2 Js   -	-NFKDadmission_type_other)ro  r  X)reevaluacionr7  )r  r]  3instruments_appliedschool_history_backgroundcognitive_analysisFr   )r   personal_analysismotor_analysis
conclusioncognitive_synthesispersonal_synthesismotor_synthesissuggestions_to_schoolsuggestions_to_classroom_teamsuggestions_to_familysuggestions_to_studentother_suggestionsscales
scale_typeindicator_numberr  r  comunicasocial_communicativec                 <    U S;   a  gU S;   a  gU S;   a  gU S;   a  gg )	N)r  r   )r7  r5  )r  r6  )zN/ONOzN-Or7  r9  rj  s    r   _value_to_col(generate_document.<locals>._value_to_col  s/    ;;;,,r   student_social_namer  
issue_dateadmission_type_1admission_type_2admission_type_3acacg)r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r<  r:  r;  r  nombre_identidad_estudiantenombre_de_identidad_estudiantenombre_identidad_del_estudiantenombre_completo_estudiante!nombre_y_apellidos_del_estudiantenombre_social_del_estudiantenombre_social_estudiantenombre_socialfecha_de_nacimientofecha_nacimientoedadedad_del_estudianteestablecimiento_educacionalestablecimientonombre_establecimientocolegiocurso_nivelcurso_o_nivelcursonivelfecha_de_evaluacionfecha_evaluaciondiagnosticofecha_de_emision_de_diagnosticofecha_emision_diagnosticofecha_emision_del_diagnosticofecha_emision_de_diagnosticoanalisis_cognitivoanalisis_cognitivo_comunicativo analisis_personal_socioemocional"analisis_motor_autonomia_sensorial)sintesis_cognitivasintesis_personalsintesis_motorasugerencias_al_establecimientosugerencias_al_equipo_de_aulasugerencias_al_estudiantesugerencias_a_la_familiaotras_sugerenciasconclusion_informeinstrumentos_aplicadosantecedentes_historia_escolarnombre_profesionalrut_profesionalregistro_profesionalespecialidad_profesionalr  scale_r  z!psychopedagogical_evaluation.docxzYPlantilla psychopedagogical_evaluation.docx no encontrada en files/original_student_filesevaluacion_psicoevaluacion_psicopedagogica_)r  r  u,   Pulse o haga clic aquí para escribir texto.u$   Haga clic aquí para escribir texto.)r   content_control_tag_aliasesg      @)width_inchesr  r   r  r  r  rj  r   r  rE  rZ  r+  r*  r  r  responsible_professionals_namesr  r  r   r   r&  r'  r(  r)  r,  r-  r.  r/  r0  r1  r2  r3  r8  r9  r  )r  r  special_educational_need_namerG  participant_professionalparticipant_professional_namesupport_team_membersprofessional_namedec_recordsr  r  career_type_nameestablishment_idr  document_descriptionestablishment_namez	Sin cursoprofessional_rutprofessional_career!professional_certification_numberr\  r  )r  ru  r,  r-  r*  r+  attendance_dateattendance_timecertificate_dater  ry  
start_timeend_timez a rz  r  -evaluator_namero  comments_observationstotal_scorescoresconduct_responses)
r  r  r  r+  r  rm  r  r  r  r  r      !   "   #   $   %   &   '   (   )zparent_authorization.pdfzautorizacion_padres.pdfzautorizacion.pdfu=   Template de autorización de padres no encontrado. Buscando: rA  z -enerofebreromarzoabrilmayojuniojulioagosto
septiembreoctubre	noviembre	diciembre)r   r5  r6  r7  r  r  r  r  r  r  r  r   u   ●)ri  r  parent_relationstudent_course_schoolparent_fullname
parent_rutr  r  rD  rC  parent_signature
yes_marker	no_markerr  r   z
Documento )r   r  rj  r   r   document_namedocument_title	document_r   	template_FU_z (z: ))r#   r   r=  r>  r   r   r  r   rp  r   rQ   r   r   r   r=   generate_submission_pdfr   rw  r   r   r   
read_bytesr   r   r  r   r   rL   r   r   r   rY  r   rK   r   r   r   r   r   r$   r  r   rM   r  rN   r  rO   r   r  r   r  app.backend.db.modelsr  r  r  r  r}   r  r  r  r   rA  r   r  rC  rD  r  rB  upperr   r  r  r  r  r  r  r  r,   r?  r   (app.backend.utils.familia_report_prefillr  r  r  r-   r   r  floatr{   rE  rz   rF  r*  r   ry   rI  rH  rc  r  r~   communer   regionr  r   r   r  r  r  r   r/   r  r  	normalizer5   has_table_numbershas_chart_numbersr1   rq  mkstemprv  closer6   r   r  r0   r  r3   r7   r2   r4   r%   r@  r   r   rG  r   r  r   r&   r  r  r  r  r  r9   r:   r(   r)   r  r  r;   r<   r*   r.   r8   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   r'   r  ru  r   r   r   r   r   r   type__name__(  r   r   r  r   
MSG_NO_DOCr  rJ  rK  stu_rowgenerr_httpr;  fppdf_path	pdf_bytesread_errr  r   document_resultknown_generable_doc_type_id_cat_docr   codefolder_recordevaluation_idhealth_eval_serviceevaluationsevaluation_datarU  r  r  r   r  r!  r"  professionalr  r  specialty_idstudent_personalbd_valbd_strbdr  r'  age_strref_valrR  rS  r  rT  rU  gender_markerr  guproc_idsp_valp_vale_valo_valproc_labelsprofessional_procedence_valcr_idegs_valddd_valfull_name_validentification_valborn_date_valnative_lang_vallang_used_valnationality_valrT  rV  rW  rX  family_report_servicefr_datar  student_identificationstudent_bornr  r  r%  professional_fullprofessional_id_numr  phemr  report_deliveryreceiver_fullreceiver_id_numreceiver_relationreceiver_presencerk  rG  	eval_typeis_admissionis_reevaluationr  r  r  r  rv  rx  r  rz  ry  r|  eval_date_1eval_date_2eval_date_3r  r  r  r  interconsultation_serviceic_datar  r  r  r  r  r  r  r  r  r  r  r  r  rX  rY  r  r  r  r  r  r  r  r  r  r  r  r  r  r<  r:  r;  r  rd  r0  r4  r  r  r+  r  rX  r  _ct	_raw_spec_raw_strr  r  rO  rP  schcrsguardianr^  born_rawr   r  r  r  r  r  commr  regrK  rL  r]  ptprogram_type_id_1program_type_id_2program_type_id_3pprocr  r  r  procedence_other_displayrncr  r  r  ai_setai_valr  r  r  r  attached_setr  vidr  r  r  r  r  r  r  r  r  r  r  remove_placeholderscognitive_chart_tmpr  r
  psychoped_servicepsychoped_result	eval_datapsychoped_iv_image_pathr1  r  student_objr2  admission_type_rawadmission_type_keyadmission_type_other_valr3  r4  r5  r  r  r   cognitive_chart_placeholder_textinject_ac_table	parsed_cqfdtmp_pngr  r  r  r   r!  r"  r#  r$  r%  r&  r'  r  _pdscales_listped_by_indicatorsoc_by_indicatorr"  str  r:  r/  !psychoped_content_control_aliasesr   colr  val_pedr  social_indicatorval_socpsychoped_remove_placeholdersout_pathprogress_status_serviceprogress_statusesprogress_status_datar  rj  r   r  r  r  r  date_formatr  progress_date_strra  r[  professional_ids_strr   professional_idsrS  r5  professional_namesrL  rM  rN  rQ  rV  rW  r   rZ  r\  r  ids_stridsr  r_  r`  cesp_servicecesp_resultcesp_data_rawr  	cesp_datarE  r*  r+  date_fmtparticipantsupport_listincidents_resultrq  isp_service
isp_resultisp_datar  processed_professionalsr   r  rp  rr  processed_proffono_servicefono_resultreport_dataestabint_idsidtel_serviceidtel_resultpsico_servicepsico_resultcert_servicecert_result	cert_datar   prof_id_careerctgac_servicegac_data_cdr1  _st_etconners_serviceconners_resultr  conners_data
pe_service	pe_resultdoc_data_31pe2_service
pe2_resultdoc_data_32pe3_service
pe3_resultdoc_data_33pe4_service
pe4_resultdoc_data_34pe5_service
pe5_resultdoc_data_35pe6_service
pe6_resultdoc_data_36pe7_service
pe7_resultdoc_data_37pe8_service
pe8_resultdoc_data_38pe1s_servicepe1s_resultdoc_data_39pe2s_servicepe2s_resultdoc_data_40r   possible_template_namestemplate_name	test_pathr  r  course_school_locationr  r  r  guardian_serviceguardian_resultguardian_datarH  rI  guardian_namesguardian_father_lastnameguardian_mother_lastnamer  r  r   r  	months_es	month_rawrD  rC  generated_fileparent_auth_document_idr  system_file_pathr  rc  r   s                                                                                                                                                                                                                                                                                                                                                                                                                                        r   generate_documentr	    s    b/
F
4 'r*(,,Z8nd++1C1CG1L1LP^PbPbckPlpwPw"55!-11':wn>P>PQZ\v>w   "(0C8Q8VUV4W[\4\# & ; ;"%#g $  &:56 
 # & 9 9'*z4P  ,B/GGG%%*+-.C
 wwx G+sww}5<=#77"H# ("*#&779#5#C $  776?(bD+&B# & E E"%#H $  CG}H##%%# & E E"%%H#M $ 
$//1	 *%<)<B!,-CB4q+I&)#i.&9  ""%",,{3Yot,,1D1DX1NRY1Yo-1_`k1p1p#5{"C# & 9 9"%#2#6#6yB[#\ $  '+ot,,*../ABL'((K79S9S9W9WX\9]^ 
 #'88&L !6zFFzz(#w.zz-5# $"&#)::i#G $   K(
+d  ! HH[188&&*4''1, h{~~**,-eeg 
 !M!8!8 - 7 7 '<B&?#199Z9P3{#3a#7@J;WX>[_@`@`KN$6$6t$<fjM # & 9 9"%#- $  #8";155mDO/400_5H5H5RV]5]# & 9 9"%#- $  !!?@C[[M ''))# & 9 9"%#u $  K"";//+.55knnH[H[\gHh6hiooq"(--"52K  """#344 hh'78??@P@S@SWfWjWjk{W|@|}  D  D  F'2'>'>'D"$ %'!*,'""#344!xx(9:AABSBVBVZiZmZmn~ZB   A   G   G   I-H\-Z-d-d-jhj,q,q,s)#22I&(hh&?&F&FGYGY]i]x]xGx&y&&  'B&;+B+B:E:Q:Q7 /?3F3FG_3`3`	i#&':':;S'T#ULE"$((?";"B"B?CUCUYeCe"f"l"l"nK"{'>'>6A6M6M3 .9OM*2BO./7LO34=XO9: #&&{338K8KL8Y8Y#%88,D#E#L#L,77?<;XX$%' ! $(8(B(B-77Fvz227=z7R47:6{7H7H7J3B7O4&**519!%4[%A#2%FF!)!2!26:!F!K!K!MB$(JJLE5:ZZ"''5Iekk[`[d[dMeikiqiqsusysyhzMz5{OE2

3 G$((5F%))*;<DG!&#..'001DjQVVX070G0Gv{{}V]d(++CL,>,>,@",EzRWWYjnjtjtjvCs{(+499(<'BciiRVR\R\F\']77TXX-(A-L , 2!-!2EKUG76(&"ATYSZZ`Qa 2259Eoe45 M $$]B7BW]]_#rSy$'M B&")$'M &))/:G#qLScF"a<CSE"a<CSE"a<CSE.<IRXYKJQ+//'2*FWY'!|.1/2E2EFX2Y2_]_.`.f.f.h+ $''(@AE"aZcSG#
cG   3 3K @ FBGMMOM!$_%8%89P%Q%WUW!X!^!^!`%o&9&9+&FGM!/"5"56G"H"NBOUUWO 3 34K L RPRSYY[M!/"5"56H"I"ORPVVXO;];!=; ();; '(:	;
 ]; m; w; "?; "?; (;  ; #O; ; -c/2E2EFb2c2igi.j.p.p.r; 5c/:M:MNr:s:ywy6z  7A  7A  7C;  3C8K8KLn8o8usu4v4|4|4~!;" (_-@-@AX-Y-_]_)`)f)f)h#;$ )#o.A.ABY.Z.`^`*a*g*g*i%;& &s?+>+>?a+b+hfh'i'o'o'q';( .s?3F3FGd3e3kik/l/r/r/t);* *3/B/BC`/a/geg+h+n+n+p+;, #C(;(;<N(O(USU$V$\$\$^-;. %c/*=*=>P*Q*WUW&X&^&^&`/;0 *+F1;2 'O,?,?@V,W,][](^(d(d(f3;4 s?#6#67M#N#TRTU[[]5;6 "9_-@-@AR-S#T7;8 $Y/B/BCV/W%X9;: %c/*=*=>R*S*YWY&Z&`&`&b;;< 'O,?,?@T,U,[Y[(\(b(b(d=;> S!4!4[!A!GRHNNP?;@ c/"5"5k"B"HbIOOQA;B s?#6#6}#E#KLRRTC;D s?#6#6}#E#KLRRTE;F =C#7CSG;H =C#7CSI;J  4#K;L  4#M;N  O;P Q;R S;T U;V W;X Y;Z [;\ ];^ w_;` wa;b (c;d (e;f &s?+>+>?[+\+b`b'c'i'i'kg;h ?../FGM2NTTV 3 3K @A/--.JKQrRXXZ?../STZXZ[aac?../QRXVXY__a/--.?@FBGMMO/--.EFL"MSSUu;L| 23GMM$M6{B1D1D[1Q1aUackkloqtuvywyzI#4YKqAQAQRTSTAU@VV[!\\H#22M"HF zz(#w.# & E E"%#)::i#G $   K(
+d  !$5b$9!+==jIG'4((W[[-Bg-M# & 9 9"%#- $  !!?@CWWM ''))# & 9 9"%#N $ 
3 !$GKK0C$D$J K Q Q S%(5T)U)[Y[%\%b%b%d"$W[[1D%EFLgkk-8>B?EEGK -=!>!D"EKKMN -=!>!D"EKKMN #GKK0J$K$Qr R X X Z"%gkk2V&W&][]"^"d"d"f #GKK0C$D$J K Q Q SW[[!56<"=CCEBW[[!56<"=CCEBGIR"S~';';E'BVX$'4J(KLO,@ A GRHNNPM!'++.N"O"USUV\\^O #GKK0G$H$NB O U U W #GKK0F$G$M2 N T T V #GKK0C$D$pTiHj$pnp q w w yW[[5;<BBDJW[[):;ArBHHJQQSI$(RRL'+PPOgkk*ABHbIOOQK!'++.I"J"PbQWWYOgkk*FGM2NTTVK!'++.N"O"USUV\\^Ogkk*<=a]A[a_abhhjK!'++.D"E"mUfIg"mkmnttvO*-gkk:N.O.USU*V*\*\*^'%(5M)N)sRYR]R]^lRm)sqs%t%z%z%|"!$W[[1E%F%L"!M!S!S!U'*7;;7Q+R  ,BV]VaVabzV{  ,B  @B  (C  (I  (I  (K$#GKK0C$DEK#GKK0C$DEK#GKK0C$DEKR#%6R 01GR %l	R
 $\R {R !.R !.R -R &'8R #LR R  R R ">R" )*;#R$ +,=%R& 56I'R( ,->)R* $%6+R, +,D-R. %b/R0 %b1R2 5o3R4 '5R6 +7R8 *9R: 0;R< 12J=R> %&>?R@ +OARB  CRF #MGRH /IRJ *+<KRL "#4MRN %&7ORP %mQRR 1/SRT ():URV '(9WRZ $%6[R\ j]R^ Z_R` \craRb BcRf {gRh "?iRj {kRl "?mRn {oRp "?qRr (sRt ,_uRv -kwRx 1/yRz #K{R| '}R@ ARB &CRD +KERF ,_GRH -kIRJ .KRN ./JORP )*@QRR %&8SRT  6URX +,DYRZ +C%0%0%0cRLh 23GMM$M6{B1B1XFXZbbcfhklmpnpqI#4YKqAQAQRTSTAU@VV[!\\H#22M"HF zz(#w.  2,-)7;;7H+I 2$vk7J2KL+D1D,EFzz(#w.# & E E"%#)::i#G $   K(
+d  "
3 )?r(B%/AA*MG ",.)!#K&(#$&! OL$&!$&!$&!"$"$MMFFJI!N"O(,%!%H%'"N!#"$I!N%'"13./1,%'"!# M!&*#(*% O'4((W[[-Bg-M$'K(@(FB$G$M$M$O!03GKK@W4X4^\^0_0e0e0g-$ $GKK$<=	!(5E)F!G$W[[%>?
#GKK$<=	!(5E)F!G%1'++k2J%K"*-gkk:K.L.RPR*S*Y*Y*['(+GKK8O,P,VTV(W(](](_%"%gkk)&<&B"C"I"I"K"7;;v#6#<"=CCE #GKK$@$FB G M M O #GKK$@$FB G M M OW[[)DEKLRRTW[[8>B?EEG")'++6G*H"I,3GKK@[4\,])%,[[1E%F"w{{+?@FBGMMO),W[[9Q-R-XVX)Y)_)_)a&!-gkk:J.K!L%(5I)J)Pb%Q%W%W%Y"&)'++6K*L*RPR&S&Y&Y&[#(+GKK8O,P,VTV(W(](](_%(+GKK8O,P,VTV(W(](](_%&)'++6K*L*RPR&S&Y&Y&[#&)'++6K*L*RPR&S&Y&Y&[#58Ei9j9pnp5q5w5w5y236w{{Ce7f7ljl3m3s3s3u0),W[[9Q-R-XVX)Y)_)_)a&%(5Q)R)XVX%Y%_%_%a"w{{+<=>HH%67>>?P?S?SW[?[\bbdE2MbRW2X2b2b2hfh1o1o1q.5'%IY[_:`:`M"$((?";"B"B?CUCUY^YmYmCm"n"t"t"vC"wsM4'H'H9<S__9M9S9S9U 6#KK(@A	("9~335HX%5%5%7%7:iRUW\Q];^;^!#&y>DM"$((?";"B"B?CUCUY]C]"^"d"d"fC"wsM4'H'H9<S__9M9S9S9U 6 419. 'O(D E#&w{{3E'F'L"#M#S#S#U *1'++>W2X*Y',8EW9X,Y)".w{{;L/M"N)--nbAGRL#''<BH#''<BH$'/||GR'@'FB&GqVgikIlIrprHsstu}  vB  vB  CT  VX  vY  v_  ]_  u`  %a  %g  %g  %i  %G  oz  {E  zF  mG!003L4D4DE\4]4cac0d0j0j0l0pst~p-%%1(,,{2K%L"**-hll;L.M.vQYQ]Q]^oQp.vtv*w*}*}*'((+HLL9P,Q,xU]UaUabqUr,xvx(y((  )B%""%hll9&=&C"D"J"J"L"8<<#7#=2>DDF  #HLL$9$?R @ F F H  #HLL$9$?R @ F F Hl..{;;hh{+22;>>\R]E^3^_eeg !6B7==?Fhll;77Bhh{+22;3P3PTU3UWbWeWeiqr}i~W~  F  F  H !6B7==?FH88$89@@AUA`A`dnAnoxx  zN  zQ  zQ  zV  zV  zX  Y  _  _  a"XX/0778I8L8LP^8^_eeg,/0@0@0FB,G,M,M,O)(X'(L^`d:e:eXX/0778I8L8LPXPiPi8ijppr,/0@0@0FB,G,M,M,O)(\-=-=k-J-Jrhh{+22;>>\R]E^3^_eeg,/=Mt0T0ZXZ,[,a,a,c)K3=gt3L3LQXQ\Q\]eQfjqQqw{{;/w{H#<<4]ghpru]v]v**3x=+>+>+@"+EzRWWY  QX  Ya  ci  Qj  Qj  ~F  ~K  ~K  ~M  pxB JJLE!JJ0U[[%))4LPRPXPXZ\Z`Z`Oa4abE$)JJ$8B#>%++PRPXPXBX#YLyy266)$))B.FEqywe5A:C23N%OPzxtFaKDR3P%QR7<%**U"3)K   (k)BC	%!-hll;K.L!M!)(,,|*DE
 (k)BC	"$"hh/0778H8K8K~8]^ddf*-coo.C*D*J*J*L' Obxx-44\__
5RSYY[&)$,,*<"&=&C&C&EONRhh{+22;>>Y3NOUUW%()9r%:%@%@%BNEERHH[)0091LMSSU67AHHS]((*002"!R'29B'UW-'*3xRuu$*bCi6R<8WY>'*2wCuo.B~"I"5 #27C ; #27C ; #27C ; /E U)%;!!#<O!!#<O!!#<O@E
s+;'<PR$67C3f#4(+3!8C(D%(+3!8C(D%Qw$>!q$A!q$*!$&!UF!";<F!a6&6Q&6

6"'*!v+32'F$'*!v+32'F$'*!v+32'F$3 8C= 8 5L!-0#66 2 8 8 =248?(,,S1 !>   2T5MBB/%a#u661A;L";L(,,SV4"6s1v">C" , 0 0 5 0 A$5S2>JA$5S2>JA$5S2>JA$5S2>JA$5S2>JA$5S2>JA$5S2>JA$5S2>JA$5S2>JR<%7cR@K !?@C[[M ''))# & 9 9"%#r $ B#%6B/1NB %&8B {	B
 &':B *+BB ()>B "?B "?B !.B B ()>B ()>B ()>B &':B  &':!B"  #B$  %B& &'B( &)B* H+B, )*@-B. !./B0 %&81B2 &':3B4 '5B6 '7B8 '9B: $%6;B< 'bAg(BSU=B> .PRVWPW/L]_?B@ $rQwVBABB +,DCBD +,DEBF +,DGBH 5IBJ 4KBL  8MBN jOBP jQBR jSBT jUBV jWBX jYBZ j[B\ j]B^ j_B` {aBb cBd eBf )*@gBh 7Y4T*@&8#2#2#26$<#;-F-F-F#2CBLF 23GMM$M6{B1B1UoW__`cehijmkmnI>)Adjjl>N>NrPQ>R=SSX!YYH H`#PR~"  fj#223}3E|UXYaUb  |O  PFzz(#w.# & E E"%#)::i#G $   K(
+d  "153>c >c > !A D0BBjfjBk8H8L8LX8VZc8c(,,V4imI# & 9 9"%#- $  'LB&[#EOP^`dEeEe>--nbAkmL#''8>BH#''8>BH <<(.B/q>O1P1VTV0WWXYaYeYefwYxY~|~X  A  G  G  I .==/. - 
 #&immM&B&Hb"I"O"O"Q"fUf%hll;&?@IimmE28b9??AK8<<#<#<!k2B!"c**%..rxxz#2
KPPR JJLE!JJ0U[[%))4LPRPXPXZ\Z`Z`Oa4abE8=
UG8"4K  N((<077:8UV\\^K{44+.55knnH]H]6]^ddff00%+%7%7NNHLL55+.55k6S6SWX6XZeZhZhltlxlx  zE  mF  [F  G  M  M  Of00%+%7%7N+IMM:K,LMOY]];7=2>DDFJ&y}}5K'LMJ "%Y]]3C%D%J!K!Q!Q!S!Y!Y![!# )$..v7IJ) "
 (+9==9O+P+VTV'W']']'_$!!!!%55#;#Bs #'<<#;#Bs #'==#;#Bs "%imm4I&J&Pb"Q"W"W"Y(+IMM:U,V,\Z\(](c(c(e%!9)--H\:]!^/1,#O7	BI&y::<<"&..007H4"*"2"2&"AKBHHRL6y'JJ.5+!IIg. <>8 8GZ9[ \5immDT6UVN1)--2MNJ":9==I^;_"`!9)--H\:]!^6y}}EV7WXO$<Y]]Kb=c$d!,DY]]SrEs,t)$<Y]]Kb=c$d!%=immLd>e%f" 8GZ9[ \%'"13./29==Ac3d3jhj/k/q/q/s,%(7O)P)VTV%W%]%]%_"}}.//xx 1299:K:N:NR[R_R_`qRr:rsyy{5b$?C.1mm.Ar-H-H-J*9<SWW]9K9Q9Q9S6 $--17RK!! eeL)/R668>>@ee./;c(C uuW~+224::<r>Z2%5?U9U,/$S),/$S) !"	!#%6!%':! Y! {	!
 !.! !.! "?! j! j! #$4! #$4! #$4! &':! ,-F! %&8!  /E\-ce!!" 4r:Z#!$ &7"0(':&8#2)>1N)>*@%6*@6X4T*@A!LH21-/B2102E21 23F21 -.A	21
 45H21 /0E21 +,A21  !621 &{21 #K21 21 &}21 ./?21 "#321 )*:21  +!21" /#21$  !1%21& )'21( ))21* &'8+21, #$5-21. |/210 \1212 2<3214 ,\5216 07218 /921: %&:;21< 23G=21> d?21@ uA21B 34GC21D 56FE21F '<%9#42I1P-E,C%8&2*?1L&>#G(J,Dc21-h Q| A;C"3%q.C.2237G29g.tA/0CxRL%	 ' $ R} A;C"3%q.C'*Rx$.223CDG29g.tA/0CxRL% ' % !!?@CffM ''))# & 9 9"%#~ $  23GMM$M6{B1B1XFXZbbcfhklmpnpqI#>yk4::<K[K[\^]^K_J``e!ffH-) $22M"H'D,MF zz(#w.# & E E"%#)::i#G $  zz+.H38M4)@s 2#h-@o)/HyI"x8OCCMSfgg9#h-H		"56 /L4D4DU4K4QrR[r1#h-@K(
+d  "&@&D# 7 ? ?: ? V$,=(>!(C# & 9 9"%#- $  $5Q#7  !$$T40 $$\48 FPP^`dEeEe>--nbAkmL(,,_bAM(,,Wb9?RL"/"3"34Er"J!K1]M^M^_prtMuLvw}}".q1A0BCIIK'++,CRHNBK K)--k2>M}& $I'W%(0(9(9-(U(Z(Z(\I! (X !y)1)<)<)>/33ODD%4H4L4L_4] 1191B1BCTV`1a1f1f1h
 !/ 3 3inn D!/!5!5	!G!A:!QJE"bLF#q[^-?-?)---O!QJE%'F 19%z16uEQJSTV<WWZ[aZbbfouyzozgk  AC  gD  /E16uEQJSTV<W.X#aZ-3HD1RT8U*VK
 8H !343? 07G !342= /2= / $''44+.55knnH\]hHi6ijpprLRW]WiWif6H6Hoq$]3$((d; $''11hh:;BBC^CaCaey  {C  fD  DD  E  K  K  MTW\_\y\y\y33P3P  @B$Z0$((48 $''44+.55k6S6SWX6XZeZhZh  mA  BM  mN  [N  O  U  U  WLRW]WiWif6H6Hoq$]3$((d; $''(CDD'*+?@[+\']$'UFZF`F`adFe+~Feikiqiqisi{i{i}OC
OFe(+~A"FVW>N-]>NRURYRYZ[R\fc!f>N*-] tFRVR[R[\nRo  LN,-NO %(()DdK $99'2"!8F *&*<Xh7*# & E E"%#)::i#G $   K(
+,  "=bAJ"44Z@I)T**y}}X/F'/Q# & 9 9"%#- $   nn&GKKd#KKd+KK- FPP^`dEeEe>--nbAkmL#''8>BH#''8>BHKK 34:AACC!g.4"5Qx||DU7V7\Z\6]]^_g_k_kl}_~  `E  CE  _F  G  M  M  O69sZL?Y+,KK ?@FBMMOO;C<<H_;`  <Tdpdtdt  vM  eN  <T  RT78KK 34:AACCU`HaHa/7||K/H+,KK.4";;==(,,{B[B[#,,Sk1J-KZX]]_D",,.--/C{{?33!"*"3"3C8P4QS]"^"c"c"eC  HHtyy0E YY3Fz
"[`cd[dwe5A:CSU;V-Wmslttx  BH  LM  BMy}  SU  yV  kWGM* ;;{++W[[AQ5R5XVX4_4_4a4a"&&{3+.GK(;;233[8Q8Q/7||K/H+,;;/00X\\B_5`5`,4LL9V,W();;9::((#78??(33zA(/22779:557  :A**G67 {{;''+.55knnP[H\6\]ccef00060B0BG,-K.KK 017R>>@@\EUEUVaEbEb+.55knnU`Ha6abhhjf00060B0BG,-  $78I+.55k6S6SWX6XZeZhZhluZuv||~?E&J\J\););bd&)+&KK+T2 [[!12Fhh:;BBC^CaCaekCklrrtGJsOlOlOlc&C&Crt
#&(
#KK($/ "++&@AK{HH1299:N:Q:QU`:`aggi67ggm_AaFWFWF][]E^^_`a`q`q`wuw_x3y33  4BG/0./.E.E.KGN+))XX&78??@Q@T@TXYXjXj@jkqqsOQVXVfVf2;K;Kln 78;= 783:;;3O3USUG/0.0GN+79G34/6{{?/K/Qr+,*,'35/0KK2D9KK. 89Bb'--//6}}S/AY/A!QWWYEVEVEX~s1779~/AY9"cB),;A
Q;QVTYYu=M\^9:=?9:KK3T: !0O[ijM++k*C@Cm&7&7&<UWGN##99%"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "$R=L&88QU8VK+t,,1Jg1U# & 9 9'*z4P  8B+t7T7TKOOF3Z^M 
=$(G(G# & 9 9'*z4P  FPP^`dEeEe>--nbAkmL(,,_=CM(,,_=CM(,,Wb9?RL"/"3"34Er"J!K1]M^M^_prtMuLvw}}".q1A0BCIIK]+I,<I()(4In%,<I()'4'8'89PRT'U'[Y[Im$-:->->{B-O-}S`SdSdexz|S}I)*'++,<=fAQAQR_A`fdfK<#3#3K#@#@+.55knnU`Ha6abhhj#)#5#5#;"B"B"DK'++,<=  Ufpq~  AE  gF  gF-BSBSTaBb  LN  U  SUK=Zt5T5TYfYjYjkvYwYw+.55k6S6SWX6XZeZhZhly  {F  mG  [G  H  N  N  P#)#5#5#;"B"B"DK$((7=2H*]D2Q2Q)--.MNTRT[[]  `bobsbs  uP  cQ  cW  UW  b^  b^  b`*5I&'*5I&''/'^3}7H7H7W7][]3^Im$K%MM*=rBM} $I$T%(0(9(9#m:LSb:QS[(\(a(a(cI! %U !&lln113 #9>> 9!$Y__!<!A:!QJE"bLF#q[SWWy}}-D!QJE%'F 19 EKUG5
PR8SSVW]V^^bkquvkvcg|~b  +A  TY  SZ  Z_  gl  pq  gq  `c  wy  _z  Q{K#aZ-3HD1RT8U*VK (3Im$#--(BCKz+t<<QbAcAcxx 1299:K:N:NR]^oRp:pqwwy AE>YZ\^b>c>m>m>sqs=z=z=|  KM	9:$==)?@FBL!a&&1551B+C+C88$56==>O>R>RVWXiVj>jkqqsDpt.I"d.S.].].cac-j-j-lz|A)* "
  326>>*>UK*D11.,d338H8L8LV8T8T.2262>'2Im$#99''"!8F *&*<Xzz(#w.# & E E'*vzz)]7[eij   K(
+,  "4R8K$66zBJ*d++
x0HG0S# & 9 9"%#- $  "(H LLt$LLt,LL. ||K((+.55knnQ\H]6]^ddff00171C1CH-.[$/ ||,--hh:;BBC^CaCaemn~eC  A  G  G  I3888+.+H+HHZ(-t4 ||/00+.55k6S6SWX6XZeZhZhlt  vI  mJ  [J  K  Q  Q  Sf00.4.@.@H]+0$7 %LL"=M}*,')D&*hh/@&AO%)XX.>%?N(*%&')xx0A'B'I'IJ[J^J^bqJq'r'x'x'z'1LRQ]1^1h1h1nln0u0u0w-')$%I&(hh&?&F&FGYGY]kGk&l&r&r&t&/:/F/F,%)YY[N:KN#679IN#56+22>B) *, -D) $99'&"!8F *&*<Xh7*# & E E"%#)::i#G $   K(
+,  !6r:L&88DK+t,,1Jg1U# & 9 9"%#- $  &**,KOOD$'OOL$/OOND1 {+++.55k6S6SWX6XZeZhZhlw  yD  mE  [E  F  L  L  Nf00171C1CK.T2-/M*  OO$67E SZ%5%5%7%?%?%A%Ae*CXXk299+..C:OPVVXF&"4"4:@:L:L$67
 !<=B~&r400bbb#&&!"jjn Cs3x0 
 :"gF)0?ACGGAJQ?UZ5AQ`b=>OO7>#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  !,R0M(:::FL,--,2B2B82LPW2W# & 9 9"%#- $  2<L$1O1O,++-UWKOOD$'OOL$/OOND1{+++.55k6S6SWX6XZeZhZhlw  yD  mE  [E  F  L  L  Nf00171C1CK.T2-8__]-K-QrM*OO$67E SZ%5%5%7%?%?%A%Ae*CXXk299+..C:OPVVXF&"4"4:@:L:L$67 !<=B~&r400bbb#&&!"jjn Cs3x0 
 :"gF)0?ACGGAJQ?UZ5AQ`b=>OO7>#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  :+JJ<R@M(:::FL,--,2B2B82LPW2W# & 9 9"%#- $  2<L$1O1O,++-UWKOOD$'OOL$/OOND1{+++.55k6S6SWX6XZeZhZhlw  yD  mE  [E  F  L  L  Nf00171C1CK.T2-8__]-K-QrM*OO$67E SZ%5%5%7%?%?%A%Ae*CXXk299+..C:OPVVXF&"4"4:@:L:L$67 !<=B~&r400bbb#&&!"jjn Cs3x0 
 :"gF)0?ACGGAJQ?UZ5AQ`b=>OO7>#99')"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "GKL&88DK+t,,1Jg1U# & 9 9"%#- $  $((*IMM$%MM,-MM.$/MM0$7EOP^`dEeEe>--nbAkmL#''8>BH#''8>BH\\'*0b18<<@Q3R3XVX2YYZ[c[g[ghy[z  \A  A  [B  C  I  I  KC47S{:,=WI)*'/||4K'L'P\P`P`axPy'}Im$$((5I+.55knn	6QRXXZHNSYSeSe&2D2Dkm	./24	./ [1I+.55k6S6SWX6XZeZhZhluZuv||~AGFL^L^6+=+=do	-(+6	-(\\"?@Fhh:;BBC^CaCaekCklrrtILQTQnQnQn(E(Etv	*%(*	*%mm$56Gwxx 1299:K:N:NRY:YZ``b5b$?C:=--:M29T9T9VI5647GGMrI01(}}-BCIrPPRG9@	"56,,IXXo6==o>P>PTXTgTg>ghnnpKMRTR`R`fh	"569;	"56z||I56|CU9VYbcvYwvxx	12xY?Q5RU^_rUsMM+T2MM=tDMM/6#--6KAHH1299:N:Q:QU`:`aggiHH1299(33zA(/22779:557  45GGMr?!ADUDUD[Y[C\\]^_^o^o^usu]v1w1}1}1	-.,-,C,C,Ir	.)MOO	-.>1JMM-.#99'"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "<R@K"44Z@H(D))hll8.D.O# & 9 9"%#- $  FPP^`dEeEe>--nbAkmL#''8>BH#''8>BH\\'*0b18<<@Q3R3XVX2YYZ[c[g[ghy[z  \A  A  [B  C  I  I  KC,/S{:,5O&(%' "!#%#%	I %((5I+.55knn	6QRXXZHNSYSeSe&2D2Dkm	./ [1I+.55k6S6SWX6XZeZhZhluZuv||~AGFL^L^6+=+=df	-(\\"?@Fhh:;BBC^CaCaekCklrrtILQTQnQnQn(E(Etv	*%-.556J6U6UYc6cdmm  oC  oF  oF  oK  oK  oM  N  T  T  VA45GGMr?!ADUDUD[Y[C\\]^_^o^o^usu]v1w1}1}1	-.,-,C,C,Ir	.),,12CP!#s++CB$--c#2h
CHHJ78zz*7M	"34 j117:||J7O	"34 ,,|,2C,,z*0bCs25c#/?/E/E/G	+,/23x~~/?	+,/23x~~/?	+,#99'"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  ";B?O,>>zW[>\N!^%7%7%AY%NVdVhVhioVpVp# & 9 9"%#- $  'v.IEOP^`dEeEe>--nbAkmL#''8>BH#+<<#8#>B"?qN_A`Afdf@gghiqiuiu  wH  jI  jO  MO  iP  !Q  !W  !W  !Y$&1*$>!&**+BCrx||TkGlrprK||K0QL4D4D[4QH "OH++-cr2A1v|!!$--a<AAC,-JJz,B),-) &7*%6#,==1B#C#Ir"+--0@"A"GR#,==1B#C#Py)27N)O)USU(}}];#--17R%.]]3F%G%M2L $99*"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "FrJJ"44Z@I)T**y}}X/F'/Q# & 9 9"%#- $  y/K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "HLK$66zBJ*d++
x0HG0S# & 9 9"%#- $  z*K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "GKK$66zBJ*d++
x0HG0S# & 9 9"%#- $  z*K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "HLK$66zBJ*d++
x0HG0S# & 9 9"%#- $  z*K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "GKK$66zBJ*d++
x0HG0S# & 9 9"%#- $  z*K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "GKK$66zBJ*d++
x0HG0S# & 9 9"%#- $  z*K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "I"MK$66zBJ*d++
x0HG0S# & 9 9"%#- $  z*K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "HLK$66zBJ*d++
x0HG0S# & 9 9"%#- $  z*K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "QRTUL&88DK+t,,1Jg1U# & 9 9"%#- $  {+K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  "RSUVL&88DK+t,,1Jg1U# & 9 9"%#- $  {+K#99)"!8F *&*<Xzz(#w.# & E E"%#)::i#G $   K(
+,  BLN\`AaAa~))."=gi#''4o8H8H8QoWbcmbnUo GQQ`bfFgFg?../ABmq !'# !M!8 !?@=P	##%%$-M	 "9 !# & 9 9"%%bcgclcl  nE  dF  cG  $H $  FPP^`dEeEe>--nbAkmL(,,_bAM "%%gr28bE+//0A2FL"O+//0A2FL"O"'/):!O;LMSSU &("(,,_bAM:G))+6TI$((5IKK +.55k6S6SWX6XZeZhZhluZuv||~4:f00 +.55knn	6QRXXZ4:f00 {,7=K=)I)O)OPT)U&)4&)4& !O OJ3B7.22:>O:ot#D#DI\I\]eIfjqIq / $1#4#45G#H #$&HH->$?$F$FGXG[G[_oGo$p$v$v$xMERm&A&AXZO "/!2!27B!?+8+<+<=NPR+S(+8+<+<=NPR+S(%3$4A6N5OqQiPj"k"q"q"s +../FKQr
 D :ot#D#DI\I\]eIfjqIq&**626<"  , 0 0" E*..|<
 hh|4;;LOOz<YZ``bG&4" ,,.Ccgg,C yWg'hYK[I
 "ciiSYY@I.7I((*RE sxx=%D $88#&}#5!1 /&< /%!# !8F" h7*# & E E"%#)::i#G $ !%f[&9!:!))++./+&J"/$&--'O (,,C'D'V$$++11$1N'..00^5K5K5MQaQiQiQk5k(//1^,c2B.CD*-.>*?F;')8F:&3(?  K(
+,  @J/[_?`?`++J;fhFPQ`bfFgFg?../ABmq BLN\`AaAa~))."=gi$(("=$(("5;+//0A2FGqIZIZ[lnpIqHrsyy{*^1-=,>?EEG % 0( 0&*+IK=/I
 }D)@Pi}A&6%7t<VZ8E}$$S#./t44}D)CPc-''S1779:$?VZ#
 5L"T4KDt444K"T4M;<}LI!! )	 5  55#'0=#m,44
 	&fj|T(w&"AA!%zz)]C   $J'(
 	
I\  # & E E"%%Fxj#Q $ J #I. i25o6I6IJbdf6g2h/i:  ) ! !D ! z !*:6 ! !R ! b	 ! p  ' ! !J ":. ^ # 		"56" h%$% $& ! D ,-]$ URT,-NOOUF  ) ! ! ! R Z;p  ) %$%  ! b #I.  % ! ! '	2  @x #I.  % ! ! '	2  @r #I.  % ! ! '	2  @r ! PDG3s8CR=RI/0P~ ! O>FHcr(:B%OX  T #UH  
==+_BtAw/?/?.@3q6$3<.PQR
 	

s\  Ie,B#Id 'Ie,(=Id %Ie,&A%Id Ie,B&Id 2Ie,3AId  Ie,AId Ie,
IW$ =Id Ie,BId &Ie,'C5Id Ie,Id -Ie,.D.Id Ie,A!Id >Ie,?>Id =Ie,>I
Id 	A?IX DId BIY 8Id EIY cId S.Ie,S/Id S?Ie,T A(Id U(Ie,U)>Id V'Ie,V(bId x>Ie,x?Id yIe,y]Id V&BIY. X.\/Id uFIZ {9SId OBId Q4DId V
Ie,VG%Id ]0Ie,]1Id ^Ie,^B	Id `Ie,`FId fCIZ i%O	Id x/IZ' yJ6Id C<IZ8D	KId OIe,OC0Id SIe,SBId U2I[! V
I[ V AId W9Ie,W:AId YIe,YDId ]*
I\ ]5(I\^A
I\ _(;I\ `#BI\ cId cI\ cId cI\ c,IId l>I] m)I\;nI\;nI] n8I]oI]o$&I] p
A2Id q<Ie,q=Id rIe,rA/Id s=Ie,s>IId }A9I]< 3I]+ @ A.I]< A.ZId \'I^\.I^]Id ]#I^^I^^C+Id a:Ie,a;Id bIe,bA/Id c;Ie,c<A$Id e Ie,e!PId u<
I^* v4I^v;CI^* zId zI^* z1D	Id ~>Id E0Id EIe,EId EIe,EA/Id GIe,G	PId WIe,WId W.Ie,W/A.Id YIe,YEId ^-A:I^; `'A
Id a2I_ b
Id bI_&b3Id cI_>c-I_>c8B$Id fIe,fId f-Ie,f.A/Id hIe,hF Id nA:I` pA
Id q$I` q>
Id r	I`/r%Id r>IasIas*B%Id vIe,vId v Ie,v!A8Id xIe,xF Id ~A:Ia @A
Id A Ia$ A:
Id BIa8B!Id B:IbCIbC&B$Id F
Ie,FId FIe,FA/Id HIe,H\Id dIe,dId d%Ie,d&A/Id fIe,fNId t-A(Ib vId v*Ib w DId {Ie,{Id {*Ie,{+A9Id }$Ie,}%DId BA>Ic C?Id D Ic DD!Id H%Ie,H&Id H6Ie,H7A.Id J%Ie,J&A7Id LIe,LId L.Ie,L/A.Id NIe,NA7Id PIe,PId P&Ie,P'A.Id RIe,RA7Id TIe,TId TIe,TA.Id VIe,VA7Id XIe,XId XIe,XA.Id ZIe,ZA7Id [=Ie,[>Id \Ie,\A.Id ]=Ie,]>A7Id _5Ie,_6Id `Ie,`A.Id a5Ie,a6A7Id c-Ie,c.Id c>Ie,c?A.Id e-Ie,e.A7Id g%Ie,g&Id g6Ie,g7A.Id i%Ie,i&A7Id kIe,kId k.Ie,k/A.Id mIe,mA7Id oIe,oId o&Ie,o'CId r->Id s+Ie,s,U3Id IIe,I!DIc. M'Id M7Ie,M8FId TIc?T Ic?T'1Id UA6Id WIe,WId W#Ie,W$
IXW.IXXIXXId XIe,XIXXId X+IY	YId YIY	Y	Id Y
IYYId YIYYId Y
IY+Y'Id Y*IY+Y+Id Y.IZY>Id ZIZZId Z
IZZId ZIZZId Z
IZ$Z Id Z#IZ$Z$Id Z'
IZ5Z1Id Z4IZ5Z5Id Z8I[[Id [I[[Id [
I[[Id [I[[Id [!I\
[#I[:[9I\
[:
I\\I\
\I\\I\
\
Id \I\\I\ \I\\I\ \I\8\)Id \1I\8\8Id \;I] ]I](]I]!]Id ]!I](](Id ]+
I]9]5I]< ]8I]9]9I]< ]<
I^
^Id ^	I^
^
Id ^
I^'^"I^* ^&I^'^'I^* ^*
I^8^4Id ^7I^8^8Id ^;I__Id _I__Id _I_#_Id _"I_#_#Id _&I_;_6Id _:I_;_;	Id `I``Id `I``Id `I`,`(Id `+I`,`,Id `/Ia`?Id aIaa	Id aIa!aId a Ia!a!Id a$Ia5a1Id a4Ia5a5Id a8IbbId bIbb	Id b(Icb>Id cIccId c"Ic+c'Id c*Ic+c+Id c.
Ic<c8Id c;Ic<c<	Id dIe)dA
Ie"eIe)eIe,e"Ie)e)Ie,z/download/{filename}r   c           	      0  #     [        S5      U -  nUR                  5       (       d  [        [        R                  SSS S.S9$ [        [        U5      U SS9$ ! [         a2  n[        [        R                  SS	[        U5       3S S.S9s S nA$ S nAff = f7f)
Nr   r  zArchivo no encontradorf  r  rk  rl  r<  zError descargando archivo: )	r   r   r   r   r  r   r   rB  rw  )r   r   ra  s      r   download_documentr	    s     
01H<	!!"55!6   Y(
 	
  
==8QA
 	

s@   B>A BA B
B!'BB	BBBz/inspect-pdf/{template_name}rs	  c                   #     [        S5      U -  nUR                  5       (       d  [        S5      U  S3-  nUR                  5       (       d  [        [        R                  SSSS.S9$ [
        R                  " [        U5      5      nUS   S	:X  a,  [        [        R                  S
UR                  SS5      SS.S9$ [        [        R                  SSUR                  S/ 5      UR                  S/ 5      UR                  SS5      S.S.S9$ ! [         a2  n[        [        R                  S
S[        U5       3SS.S9s SnA$ SnAff = f7f)u   
Inspecciona un template PDF para identificar qué campos de formulario contiene.
Útil para entender cómo están estructurados los campos en el template PDF.
r  r   r  zTemplate PDF no encontradoNrf  r  r   r   r<  rg  z!Error inspeccionando template PDFr:  z'Template PDF inspeccionado exitosamenteform_fieldstext_placeholderstotal_form_fieldsr   )r	  r	  r	  z#Error inspeccionando template PDF: )r   r   r   r   r  r   inspect_pdf_form_fieldsr   rw  r   r  rB  )rs	  rU  r   ra  s       r   inspect_pdf_templater	    s\    3
;<}L##%% !?@m_TXCYYM##%%"55!;    77M8JK(w&"AA!%zz)5XY
 
 **D#)::mR#@)/4G)L)/4G)K
 	
  
==@QI
 	

sO   EA$D (E)AD <E=AD E
E	'E>E	?EE		Ez
/fill-docxam.docxr  Prueba)rs	  rT  )defaultc           	      ,  #     U R                  SS5      nU R                  SSS05      n[        S5      U-  nUR                  5       (       d  [        [        R
                  SSU 3S	S
.S9$ [        S5      nUR                  SSS9  US[        R                  " 5       R                  S	S  S3-  n[        R                  " [        U5      U[        U5      5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S	S
.S9$ [        [        R                  SSUR                  S5      UR                  S5      S.S
.S9$ ! [         a/  n[        [        R                   S[        U5      S	S
.S9s S	nA$ S	nAff = f7f)z
Prueba: rellena un formulario DOCX reemplazando etiquetas.
Body: {"template_name": "am.docx", "replacements": {"nombre": "Juan", "fecha": "28/01/2026"}}
Formatos soportados en DOCX: {etiqueta}, [etiqueta], <<etiqueta>>
rs	  r	  rT  r  r	  r  r  zTemplate no encontrado: Nrf  r  r   Tr   docx_filled_r  r  r   r   re  rg  Errorr:  zDOCX rellenado correctamenter   r   )r   r   r<  )r   r   r   r   r   r  r   r  r  r  r   r  r   rp  r  rB  rw  )	r  r  rs	  rT  rU  rV  rX  r   ra  s	            r   r  r     s    
)<xx80DE;<}L##%%"55#&5Mm_3]gkl  ./dT2|DJJL,<,<Ra,@+AGG..s=/A<QTU]Q^_::h7*"77#&6::i3Q[_`  **9%+ZZ
%;&**U`Jab
 	
  
=="s1vtD
 	

sN   FA'E +F,B.E F<E F
F"$FFFFFr  )NF)typingr   r   r  fastapir   r   r   r   r	   r
   r   r   fastapi.responsesr   r   r   #app.backend.classes.documents_classr   -app.backend.classes.docx_register_book_layoutr   r   r   r   r   r   r   r   r   r   r   r   0app.backend.classes.course_activity_record_classr   r   r   r    r!   r"   !app.backend.classes.student_classr#   +app.backend.classes.health_evaluation_classr$   1app.backend.classes.progress_status_student_classr%   <app.backend.classes.progress_status_individual_support_classr&   *app.backend.classes.student_guardian_classr'   1app.backend.classes.individual_support_plan_classr(   1app.backend.classes.fonoaudiological_report_classr)   Eapp.backend.classes.school_integration_program_exit_certificate_classr*   #app.backend.classes.anamnesis_classr+   'app.backend.classes.family_report_classr,   +app.backend.classes.interconsultation_classr-   9app.backend.classes.guardian_attendance_certificate_classr.   6app.backend.classes.psychopedagogical_evaluation_classr/   2app.backend.utils.psychoped_cognitive_quantitativer0   r1   r2   r3   r4   r5   r6   r7   4app.backend.classes.conners_teacher_evaluation_classr8   app.backend.classes.cesp_classr9   )app.backend.classes.action_incident_classr:   &app.backend.classes.idtel_report_classr;   7app.backend.classes.psychomotor_evaluation_report_classr<   0app.backend.classes.informal_test_template_classr=   Fapp.backend.classes.pedagogical_evaluation_classroom_first_grade_classr>   Gapp.backend.classes.pedagogical_evaluation_classroom_second_grade_classr?   Fapp.backend.classes.pedagogical_evaluation_classroom_third_grade_classr@   Gapp.backend.classes.pedagogical_evaluation_classroom_fourth_grade_classrA   Fapp.backend.classes.pedagogical_evaluation_classroom_fifth_grade_classrB   Fapp.backend.classes.pedagogical_evaluation_classroom_sixth_grade_classrC   Happ.backend.classes.pedagogical_evaluation_classroom_seventh_grade_classrD   Gapp.backend.classes.pedagogical_evaluation_classroom_eighth_grade_classrE   Papp.backend.classes.pedagogical_evaluation_classroom_first_grade_secondary_classrF   Qapp.backend.classes.pedagogical_evaluation_classroom_second_grade_secondary_classrG   :app.backend.classes.professional_document_assignment_classrH   app.backend.db.databaserI   r  rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   app.backend.auth.auth_userr   app.backend.schemasr   r   r   r   r   r   r   sqlalchemy.ormr   
sqlalchemyr   pathlibr   rq  rv  r  r  loggingr   r   collectionsr   &app.backend.utils.professional_displayr   r   	getLoggerr  r   r   r   r   r>  r   r   r   r   r  r  shutilr  r  r   r  r   rb  postas_formr|  r  r  rY  r  r  rj  r  r  r  r  r  r  r  r
  r  r	  r	  r	  r  r9  r   r   <module>r	     sm      S S S B B >     ; M X m K X Y ~ > E N h c	 	 	 _ 4 I C d V A C A C A A E C T V j *< < < < < < < < < < < < < < < <z ?   #    	 	   # # s			8	$ "&;;; sm; 	;
 #; 	;2 "&VVV V sm	V
 #V 
VN  $$]]] ] 	]
 ] }] }] c]] }] ] ]@^ ^ ^UY ^+g +3 +8TW= +\  ,
	 *+ &/jHjHjH ,jHZ 	Cy+23H3P3P+QJ

J
(J
 J
X 45 Cy_ "'W	" &+K&
  %\ 
 &&=>&/3d
d
d
 d
 C=	d
 #d
 c]d
& }'d
0 1d
2 	3d
 6d
L  &&=>&/'
 '
'
 	'
 '
Rp
J# p
J7 p
Jt p
Jf)6)6)6
4c3h $d23)6X{C {W {|+ +, &/%&=>


 
 -
8 45 &/%&=>


 
 6
8 78 &/%&=>$$$ $ 9$Nc 8D> UX BEEC=E #E 		E" 01 &&=>&/	X
X

X
 X
 		X
 2X
v :; &&=>&/	r
r

%r
 r
 		r
 <r
j CD &&=>&/	O
O

-O
 O
 		O
 EO
d 56 05]0 &/o/
o/
o/
  (}o/
 	o/
 7o/
b_ %&

 '
> -.:
:
 /:
z 	HV^K_`a%&=>'

'
'
 '
r   