
    @OOfFd                         d dl Z d dl mZmZ d dlmZ  ee dd      dk  r ede j                  z         G d de      Zy)	    N)KaitaiStreamKaitaiStruct)EnumAPI_VERSION)r   	   zPIncompatible Kaitai Struct Python API: 0.9 or later is required, but you have %sc                   0    e Zd ZddZd Z G d de      Zy)ExifNc                 V    || _         || _        |r|n| | _        | j                          y N_io_parent_root_readselfr   r   r   s       d/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/contrib/kaitaistruct/exif.py__init__zExif.__init__   s$    #U


    c                     | j                   j                         | _        t        j	                  | j                   | | j
                        | _        y r   )r   	read_u2le
endiannessr	   ExifBodyr   bodyr   s    r   r   z
Exif._read   s2    ((,,.MM$((D$**=	r   c                   b    e Zd ZddZd Zd Zd Z G d de      Z G d d	e      Z	e
d
        Zy)Exif.ExifBodyNc                 V    || _         || _        |r|n| | _        | j                          y r   r   r   s       r   r   zExif.ExifBody.__init__   s$    DH"DL"'TDJJJLr   c                 $   | j                   j                  }|dk(  rd| _        n|dk(  rd| _        t        | d      st	        j
                  d      | j                  dk(  r| j                          y | j                  dk(  r| j                          y y )NiII  TiMM  F_is_lez/types/exif_body)r   r   r    hasattrkaitaistructUndecidedEndiannessError_read_le_read_be)r   _ons     r   r   zExif.ExifBody._read   sx    **''Ce|"#4*";;<NOO$% &r   c                     | j                   j                         | _        | j                   j                         | _        y r   )r   r   version	read_u4leifd0_ofsr   s    r   r$   zExif.ExifBody._read_le*   *    88--/DL HH..0DMr   c                     | j                   j                         | _        | j                   j                         | _        y r   )r   	read_u2ber(   	read_u4ber*   r   s    r   r%   zExif.ExifBody._read_be.   r+   r   c                   6    e Zd ZddZd Zd Zd Zed        Zy)Exif.ExifBody.IfdNc                 d    || _         || _        |r|n| | _        || _        | j	                          y r   r   r   r   r    r   r   r   r   r   r    s        r   r   zExif.ExifBody.Ifd.__init__3   +    &&+U
$

r   c                     t        | d      st        j                  d      | j                  dk(  r| j	                          y | j                  dk(  r| j                          y y )Nr    z/types/exif_body/types/ifdTFr!   r"   r#   r    r$   r%   r   s    r   r   zExif.ExifBody.Ifd._read:   sM    tX.&??@\]][[D(MMO[[E)MMO *r   c           	      t   | j                   j                         | _        g | _        t	        | j                        D ][  }| j                  j                  t        j                  j                  | j                   | | j                  | j                               ] | j                   j                         | _        y r   )r   r   
num_fieldsfieldsrangeappendr	   r   IfdFieldr   r    r)   next_ifd_ofsr   is     r   r$   zExif.ExifBody.Ifd._read_leB       "&(("4"4"6 t/ hAKK&&t}}'='=dhhdjjZ^ZeZe'fgh %)HH$6$6$8!r   c           	      t   | j                   j                         | _        g | _        t	        | j                        D ][  }| j                  j                  t        j                  j                  | j                   | | j                  | j                               ] | j                   j                         | _        y r   )r   r-   r8   r9   r:   r;   r	   r   r<   r   r    r.   r=   r>   s     r   r%   zExif.ExifBody.Ifd._read_beJ   r@   r   c                 L   t        | d      r| j                  S | j                  dk7  r| j                  j	                         }| j                  j                  | j                         | j                  rFt        j                  j                  | j                  | | j                  | j                        | _        nEt        j                  j                  | j                  | | j                  | j                        | _        | j                  j                  |       t        | dd       S )N_m_next_ifdr   )r!   rC   r=   r   posseekr    r	   r   Ifdr   getattrr   _poss     r   next_ifdzExif.ExifBody.Ifd.next_ifdR   s    4/+++$$)88<<>DHHMM$"3"34{{+/==+<+<TXXtTZZY]YdYd+e(+/==+<+<TXXtTZZY]YdYd+e(HHMM$'t]D99r   NNN)	__name__
__module____qualname__r   r   r$   r%   propertyrJ    r   r   rF   r0   2   s*    $99 : :r   rF   c                       e Zd Z G d de      Z G d de      ZddZd Zd Zd	 Z	e
d
        Ze
d        Ze
d        Ze
d        Zy)Exif.ExifBody.IfdFieldc                   ,    e Zd ZdZdZdZdZdZdZdZ	dZ
y	)
$Exif.ExifBody.IfdField.FieldTypeEnum                  r   
   N)rL   rM   rN   byteascii_stringworddwordrational	undefinedslong	srationalrP   r   r   FieldTypeEnumrT   e   s*     		r   rd   c                   f
   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvduZwdvZxdwZydxZzdyZ{dzZ|d{Z}d|Z~d}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvduZwdvZxdwZydxZzdyZ{dzZ|d{Z}d|Z~d}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZÐdZĐdÐZŐdĐZƐdŐZǐdƐZȐdǐZɐdȐZʐdɐZːdʐZ̐y(  Exif.ExifBody.IfdField.TagEnum   i  i  i  i  i  i  i	  i
  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   i!  i"  i#  i$  i%  i(  i)  i,  i-  i1  i2  i;  i<  i=  i>  i?  i@  iA  iB  iC  iD  iE  iF  iG  iH  iJ  iL  iM  iN  iP  iQ  iR  iS  iT  iU  iV  iW  iX  iY  iZ  i[  i_  i  i  i  i  i  i  i  i  i  i  i   i  i  i  i  i  i  i  i	  i  i  i  i  i/  i  i  i   i  i  iFG  iGG  iHG  iIG  i p  i2p  i5p  i7p  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i}  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i5  i6  i\  i]  i^  i_  i  i~  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  iF  ih  i  iׅ  i؅  i  i  iI  ii  is  i  i  i  i  i  i  i  i  i  i"  i$  i%  i'  i(  i)  i*  i+  i0  i1  i2  i3  i4  i5  i\  i]  i^  iq  i  i   i  i  i	  i  i  i  i  i  i  i  i  i  i  i  i  i  i	  i
  i  i  i  i  i  i  i  i  i  i  i  i  i  i:  i;  i<  i?  i|  i  i  i  i  i/  i0  i1  i\  i   i  i  i  i  i  i  i  i  i  i  i   i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   i  i  i  i  i  i  i  i  i  i  i	  i
  i  i  i   i0  i1  i2  i3  i4  i5  i  i  i   i  i  i¯  iï  iį  iů  i  i  i  i  i  i  i  i  i  i  i¼  iü  iļ  iż  i'  i(  i)  i*  iO  i  is  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   i!  i"  i#  i$  i%  i&  i'  i(  i)  i*  i+  i,  i-  i.  i/  i0  i1  i2  i3  i4  i5  i@  iZ  i[  i\  i]  i`  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i%  i&  i@  iA  iN  ia  ic  id  ir  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   iL  iM  iN  iQ  iR  iS  iT  iU  iV  iW  iX  N(  rL   rM   rN   image_widthimage_heightbits_per_samplecompressionphotometric_interpretationthresholding
cell_widthcell_length
fill_orderdocument_nameimage_descriptionmakemodelstrip_offsetsorientationsamples_per_pixelrows_per_stripstrip_byte_countsmin_sample_valuemax_sample_valuex_resolutiony_resolutionplanar_configuration	page_name
x_position
y_positionfree_offsetsfree_byte_countsgray_response_unitgray_response_curve
t4_options
t6_optionsresolution_unitpage_numbercolor_response_unittransfer_functionsoftwaremodify_dateartisthost_computer	predictorwhite_pointprimary_chromaticities	color_maphalftone_hints
tile_widthtile_lengthtile_offsetstile_byte_countsbad_fax_linesclean_fax_dataconsecutive_bad_fax_linessub_ifdink_set	ink_namesnumberof_inks	dot_rangetarget_printerextra_samplessample_formats_min_sample_values_max_sample_valuetransfer_range	clip_pathx_clip_path_unitsy_clip_path_unitsindexedjpeg_tables	opi_proxyglobal_parameters_ifdprofile_typefax_profilecoding_methodsversion_yearmode_numberdecodedefault_image_colort82_optionsjpeg_tables2	jpeg_procthumbnail_offsetthumbnail_lengthjpeg_restart_intervaljpeg_lossless_predictorsjpeg_point_transformsjpegq_tablesjpegdc_tablesjpegac_tablesy_cb_cr_coefficientsy_cb_cr_sub_samplingy_cb_cr_positioningreference_black_whitestrip_row_countsapplication_notesuspto_miscellaneousrelated_image_file_formatrelated_image_widthrelated_image_heightrating
xp_dip_xmlstitch_inforating_percentsony_raw_file_typelight_falloff_params chromatic_aberration_corr_paramsdistortion_corr_paramsimage_id	wang_tag1wang_annotation	wang_tag3	wang_tag4image_reference_pointsregion_xform_tack_pointwarp_quadrilateralaffine_transform_matmatteing	data_typeimage_depth
tile_depthimage_full_widthimage_full_heighttexture_format
wrap_modesfov_cotmatrix_world_to_screenmatrix_world_to_cameramodel2cfa_repeat_pattern_dimcfa_pattern2battery_level	kodak_ifd	copyrightexposure_timef_numbermd_file_tagmd_scale_pixelmd_color_tablemd_lab_namemd_sample_infomd_prep_datemd_prep_timemd_file_unitspixel_scaleadvent_scaleadvent_revisionuic1_taguic2_taguic3_taguic4_tagiptc_naaintergraph_packet_dataintergraph_flag_registersintergraph_matrixingr_reservedmodel_tie_pointsitecolor_sequence
it8_headerraster_paddingbits_per_run_lengthbits_per_extended_run_lengthcolor_tableimage_color_indicatorbackground_color_indicatorimage_color_valuebackground_color_valuepixel_intensity_rangetransparency_indicatorcolor_characterizationhc_usagetrap_indicatorcmyk_equivalentsem_info	afcp_iptcpixel_magic_jbig_optionsjpl_carto_ifdmodel_transformwb_grgb_levels	leaf_dataphotoshop_settingsexif_offseticc_profiletiff_fx_extensionsmulti_profilesshared_datat88_optionsimage_layergeo_tiff_directorygeo_tiff_double_paramsgeo_tiff_ascii_paramsjbig_optionsexposure_programspectral_sensitivitygps_infoisoopto_electric_conv_factor	interlacetime_zone_offsetself_timer_modesensitivity_typestandard_output_sensitivityrecommended_exposure_index	iso_speediso_speed_latitudeyyyiso_speed_latitudezzzfax_recv_paramsfax_sub_addressfax_recv_time	fedex_edrleaf_sub_ifdexif_versiondate_time_originalcreate_dategoogle_plus_upload_codeoffset_timeoffset_time_originaloffset_time_digitizedcomponents_configurationcompressed_bits_per_pixelshutter_speed_valueaperture_valuebrightness_valueexposure_compensationmax_aperture_valuesubject_distancemetering_modelight_sourceflashfocal_lengthflash_energyspatial_frequency_responsenoisefocal_plane_x_resolutionfocal_plane_y_resolutionfocal_plane_resolution_unitimage_numbersecurity_classificationimage_historysubject_areaexposure_indextiff_ep_standard_idsensing_methodcip3_data_file
cip3_sheet	cip3_sidesto_nits
maker_noteuser_commentsub_sec_timesub_sec_time_originalsub_sec_time_digitizedms_document_textms_property_set_storagems_document_text_positionimage_source_dataambient_temperaturehumiditypressurewater_depthaccelerationcamera_elevation_anglexp_title
xp_comment	xp_authorxp_keywords
xp_subjectflashpix_versioncolor_spaceexif_image_widthexif_image_heightrelated_sound_fileinterop_offsetsamsung_raw_pointers_offsetsamsung_raw_pointers_lengthsamsung_raw_byte_ordersamsung_raw_unknownflash_energy2spatial_frequency_response2noise2focal_plane_x_resolution2focal_plane_y_resolution2focal_plane_resolution_unit2image_number2security_classification2image_history2subject_locationexposure_index2tiff_ep_standard_id2sensing_method2file_source
scene_typecfa_patterncustom_renderedexposure_modewhite_balancedigital_zoom_ratiofocal_length_in35mm_formatscene_capture_typegain_controlcontrast
saturation	sharpnessdevice_setting_descriptionsubject_distance_rangeimage_unique_id
owner_nameserial_number	lens_info	lens_make
lens_modellens_serial_numbergdal_metadatagdal_no_datagammaexpand_softwareexpand_lensexpand_filmexpand_filter_lensexpand_scannerexpand_flash_lamppixel_formattransformationuncompressed
image_typeimage_width2image_height2width_resolutionheight_resolutionimage_offsetimage_byte_countalpha_offsetalpha_byte_countimage_data_discardalpha_data_discardoce_scanjob_descoce_application_selectoroce_id_numberoce_image_logicannotationsprint_imoriginal_file_nameuspto_original_content_typedng_versiondng_backward_versionunique_camera_modellocalized_camera_modelcfa_plane_color
cfa_layoutlinearization_tableblack_level_repeat_dimblack_levelblack_level_delta_hblack_level_delta_vwhite_leveldefault_scaledefault_crop_origindefault_crop_sizecolor_matrix1color_matrix2camera_calibration1camera_calibration2reduction_matrix1reduction_matrix2analog_balanceas_shot_neutralas_shot_white_xybaseline_exposurebaseline_noisebaseline_sharpnessbayer_green_splitlinear_response_limitcamera_serial_numberdng_lens_infochroma_blur_radiusanti_alias_strengthshadow_scalesr2_privatemaker_note_safetyraw_image_segmentationcalibration_illuminant1calibration_illuminant2best_quality_scaleraw_data_unique_idalias_layer_metadataoriginal_raw_file_nameoriginal_raw_file_dataactive_areamasked_areasas_shot_icc_profileas_shot_pre_profile_matrixcurrent_icc_profilecurrent_pre_profile_matrixcolorimetric_reference
s_raw_typepanasonic_titlepanasonic_title2camera_calibration_sigprofile_calibration_sigprofile_ifdas_shot_profile_namenoise_reduction_appliedprofile_nameprofile_hue_sat_map_dimsprofile_hue_sat_map_data1profile_hue_sat_map_data2profile_tone_curveprofile_embed_policyprofile_copyrightforward_matrix1forward_matrix2preview_application_namepreview_application_versionpreview_settings_namepreview_settings_digestpreview_color_spacepreview_date_timeraw_image_digestoriginal_raw_file_digestsub_tile_block_sizerow_interleave_factorprofile_look_table_dimsprofile_look_table_dataopcode_list1opcode_list2opcode_list3noise_profile
time_codes
frame_ratet_stop	reel_nameoriginal_default_final_sizeoriginal_best_quality_sizeoriginal_default_crop_sizecamera_labelprofile_hue_sat_map_encodingprofile_look_table_encodingbaseline_exposure_offsetdefault_black_rendernew_raw_image_digestraw_to_preview_gaindefault_user_croppaddingoffset_schemaowner_name2serial_number2lenskdc_ifdraw_file	converterwhite_balance2exposureshadows
brightness	contrast2saturation2
sharpness2
smoothnessmoire_filterrP   r   r   TagEnumrf   o   s	   !""%!-0*" 
! 
 #$'! #!$'!!$$'!#& #& ""'*$	 
 
"#& %("&)# 
 
"%!&)#$'!! #	!),&	!$ 
!"#&  #!$,/)	 #	!$ # #%("%("!$	$'!$'!!	(+%"!!$"!&)#!"	#& #& (+%+.((+%" # #'*$'*$&)#(+%#& $'!&)#,0)&*#'+$"
#!&%*"',$380).& !	"'!	!	).&*/'%*"',$ !	#"
#( $)!!&"
).&).&).&$ %!	!	 % #!&!&#!&$$ %#$"'     ).&,1)$)! %"'!&"
!&&+#/4,#(-%-2*$)!).&(-%).&).& !&"' !	+0( %"'!&!	%*"##%*"!&###%*").&(-%$#( ',$ ,1)!	#( "'#( .3+-2*!	(-%(-%"'"' %!	$$%*"#*/'#',$(-%+0(,1)&+#!&#( (-%%*"#(  %$$$-2*+0(+0(.3+$*/' %$!&&+#!&!&"
!	 "
$$(-%).&#( */',1)$)!&+#  #$).& "
!	#"
#( ##( $)!%*"!&.3+.3+).&&+# %.3+,1),1)/4, %+0(!&#( "'',$"'#"
#"' % %%*"-2*%*"$ "
!	-2*).&"'"
 %!	!	"
%*" %$"'##%*"!&$)!$!&$"
$ %#( $)!$#( $#( %*"%*"#( +0( %"'# %*".3+#',$&+#).&"'"
&+#).&#&+#&+## %&+#$)! % %&+#&+#$)!$)!!&"'#( $)!!&%*"$)!(-%',$ %%*"&+#$#$)!).&*/'*/'%*"%*"',$).&).&#$&+#-2*&+#-2*).&"
"'#( ).&*/'#',$*/'$+0(,1),1)%*"',$$)!"'"'+0(.3+(-%*/'&+#$)!#( +0(&+#(-%*/'*/'$$$ %"
"
!	.3+-2*-2*$/4,.3++0(',$',$&+#$)! %#!& !	!& "
!	#"
"
$r   r2  Nc                 d    || _         || _        |r|n| | _        || _        | j	                          y r   r2   r3   s        r   r   zExif.ExifBody.IfdField.__init__:  r4   r   c                     t        | d      st        j                  d      | j                  dk(  r| j	                          y | j                  dk(  r| j                          y y )Nr    z /types/exif_body/types/ifd_fieldTFr6   r   s    r   r   zExif.ExifBody.IfdField._readA  sM    tX.&??@bcc[[D(MMO[[E)MMO *r   c                    t        j                  t        j                  j                  j
                  | j                  j                               | _        t        j                  t        j                  j                  j                  | j                  j                               | _
        | j                  j                         | _        | j                  j                         | _        y r   )r   resolve_enumr	   r   r<   r2  r   r   tagrd   
field_typer)   lengthofs_or_datar   s    r   r$   zExif.ExifBody.IfdField._read_leI      '44T]]5K5K5S5SUYU]U]UgUgUij".";";DMM<R<R<`<`bfbjbjbtbtbv"w"hh002#'88#5#5#7 r   c                    t        j                  t        j                  j                  j
                  | j                  j                               | _        t        j                  t        j                  j                  j                  | j                  j                               | _
        | j                  j                         | _        | j                  j                         | _        y r   )r   r6  r	   r   r<   r2  r   r-   r7  rd   r8  r.   r9  r:  r   s    r   r%   zExif.ExifBody.IfdField._read_beO  r;  r   c                 N   t        | d      r| j                  S | j                  t        j                  j
                  j                  j                  k(  rdn>| j                  t        j                  j
                  j                  j                  k(  rdnd| _        t        | dd       S )N_m_type_byte_lengthrV   rX   rU   )
r!   r>  r8  r	   r   r<   rd   r^   r_   rG   r   s    r   type_byte_lengthz'Exif.ExifBody.IfdField.type_byte_lengthU  s    4!6733315DMMDZDZDhDhDmDm1mAy}  zI  zI  MQ  MZ  MZ  Mc  Mc  Mq  Mq  Mw  Mw  zwtu  }~(t%:DAAr   c                     t        | d      r| j                  S | j                  | j                  z  | _        t	        | dd       S )N_m_byte_length)r!   rA  r9  r?  rG   r   s    r   byte_lengthz"Exif.ExifBody.IfdField.byte_length]  s@    4!12...'+{{T5J5J'J#t%5t<<r   c                 t    t        | d      r| j                  S | j                  dk  | _        t        | dd       S )N_m_is_immediate_datarX   )r!   rD  rB  rG   r   s    r   is_immediate_dataz(Exif.ExifBody.IfdField.is_immediate_datae  s<    4!78444,0,<,<,A)t%;TBBr   c                    t        | d      r| j                  S | j                  s| j                  j                  }|j                         }|j                  | j                         | j                  r!|j                  | j                        | _        n |j                  | j                        | _        |j                  |       t        | dd       S )N_m_data)r!   rG  rE  r   r   rD   rE   r:  r    
read_bytesrB  rG   )r   iorI   s      r   datazExif.ExifBody.IfdField.datam  s    4+<<'..B668DGGD,,-{{')}}T5E5E'F')}}T5E5E'FGGDMtY55r   rK   )rL   rM   rN   r   rd   r2  r   r   r$   r%   rO   r?  rB  rE  rJ  rP   r   r   r<   rR   c   s     J%$ J%V$88 B B = = C C 6 6r   r<   c                 .   t        | d      r| j                  S | j                  j                         }| j                  j	                  | j
                         | j                  rFt        j                  j                  | j                  | | j                  | j                        | _        nEt        j                  j                  | j                  | | j                  | j                        | _        | j                  j	                  |       t        | dd       S )N_m_ifd0)r!   rL  r   rD   rE   r*   r    r	   r   rF   r   rG   rH   s     r   ifd0zExif.ExifBody.ifd0  s    tY'||#88<<>DHHMM$--({{#}}004T[[Y#}}004T[[YHHMM$4D11r   NN)rL   rM   rN   r   r   r$   r%   r   rF   r<   rO   rM  rP   r   r   r   r      sF    		 	1	1.	:, .	:bY	6| Y	6x 
	2 
	2r   r   rN  )rL   rM   rN   r   r   r   r   rP   r   r   r	   r	      s    >u	2< u	2r   r	   )	r"   r   r   enumr   rG   	Exception__version__r	   rP   r   r   <module>rR     sZ     3  </&8
fjv  kC  kC  D  E  E@
2< @
2r   