
    ǁi'3                     |    d dl Z d dlZd dlZddl ddl 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)    N   )*   c                 
   t        j                  |       }d}d}d}d}d}d|v r|d   }ni }d|v rt        |d         sd|v rt        |d         ryd|t        j                  <   d}|d   }d|v r)t        |d         rd|t
        j                  <   d}|d   }	nct
        j                  |v rQ|j                  t
        j                         n1t        j                  |v r|j                  t        j                         d|v r)t        |d         rd|t        j                  <   d}|d   }
n1t        j                  |v r|j                  t        j                         d	|v r<d
|v r8|d
   3d}d|d	   t        j                  <   d|d	   t        j                  <   |d	   }t        |dd      }t        |d         |dz  z   |dz  z   dz   t        |d         z   }|r1t        d|      }t        |d         |dz  z   t        |d         z   }nd}d}|r-t        
d||z         }dj                  |      }t        |      }nd}d}|r2||z   |z   }t        	d|      }dj                  |      }t        |      }nd}d}|rA||z   |z   |z   }t        d	|      }t        |d
         }d}t        |      |kD  rt        d      d}|rt        |z   }t!        j"                  d|      }t        j                  }t!        j"                  d|      }t!        j"                  dt$        j&                        } t!        j"                  dd      }!|| z   |!z   |z   }"nd}"|rt        |z   |z   }t!        j"                  d|      }t        j                  }t!        j"                  d|      }t!        j"                  dt$        j&                        } t!        j"                  dd      }!|| z   |!z   |z   }#nd}#|rt        |z   |z   |z   }t!        j"                  d|      }t
        j                  }t!        j"                  d|      }t!        j"                  dt$        j&                        } t!        j"                  dd      }!|| z   |!z   |z   }$nd}$|rt        |z   |z   |z   |z   }t!        j"                  d|      }%|t        d         z   dz   dz   t        |d         z   }&dt!        j"                  d|&      z   }'dt!        j"                  dt                    z   }(|d   |'z   |(z   dz   |d   z   |z   }nd}%|d   |"z   |#z   |%z   |d   z   })|rd   |$z   |d   z   }||)z   z   |z   |z   z   S )z
    py:function:: piexif.load(data)

    Return exif as bytes.

    :param dict exif: Exif data({"0th":dict, "Exif":dict, "GPS":dict, "Interop":dict, "1st":dict, "thumbnail":bytes})
    :return: Exif
    :rtype: bytes
    s   Exif  MM *   F0thExifInteropr   TGPS1st	thumbnailr             i   z&Given thumbnail is too large. max 64kB>I>H>L   s       s       s       )copydeepcopylenImageIFDExifTagExifIFDInteroperabilityTagpopGPSTagJPEGInterchangeFormatJPEGInterchangeFormatLength_dict_to_bytesjoin_get_thumbnail
ValueErrorTIFF_HEADER_LENGTHstructpackTYPESLong)*exif_dict_original	exif_dictheaderexif_isgps_is
interop_isfirst_is
zeroth_ifdexif_ifdinterop_ifdgps_ifd	first_ifd
zeroth_setzeroth_lengthexif_setexif_length
exif_bytesgps_set	gps_bytes
gps_lengthoffsetinterop_setinterop_bytesinterop_length	first_setr   thumbnail_max_sizefirst_bytespointer_valuepointer_strkeykey_strtype_str
length_strexif_pointergps_pointerinterop_pointerfirst_ifd_pointerthumbnail_pointerthumbnail_p_bytesthumbnail_length_byteszeroth_bytess*                                             V/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/piexif/_dump.pydumprR      s    01I<FGFJH	u%

	9	#i&7"8	!s9Y+?'@'(
8##$V$"Ii,@(A56HW112J#I.K))X5LL445			Z	'x''(Ie$4 5&'
8??#E"	J	&x'	)	I%{#/;<	%778AB	%==>e$	
E15JA''B,6"DqHA'(M !(FMB(1+&b83x{;KK
 %1LMHHW%	^
	
,z9$[)VD-]+,z9NJ"9eV<	"9[#9:	"y>..EFF*]:kk$6++dC(;;tUZZ0[[q)
)J6D*]:[Hkk$6oo++dC(;;tUZZ0[[q)
(:5C+&')457ABkk$6))++dC(;;tUZZ0[[q)
!H,z9KG+m;$%'124BC"KKm<*S1->>C!$Yq\!23@#[[/@AB"E"(++dC	N"C#D |&77-.0CD |$&/0 0qML0;>%&(216La[?2Xa[@
\!J.:'( )r   c                     t        |       }d|d   dd cxk  rdk  r(n n%|j                  d       d|d   dd cxk  rdk  r#n dj                  |      }|S )Ns   r   r      s   r   )split_into_segmentsr   r    )jpegsegmentsr   s      rQ   r!   r!      s]    "4(H(1+a*9k9Q (1+a*9k9"Ir   c                  F    t        j                  dt        |       z  g|  S )NBr$   r%   r   argss    rQ   
_pack_byter]          ;;sSY...r   c                  F    t        j                  dt        |       z  g|  S )NbrZ   r[   s    rQ   _pack_signed_bytera      r^   r   c                  L    t        j                  ddt        |       z  z   g|  S )N>HrZ   r[   s    rQ   _pack_shortre      #    ;;sS3t9_,4t44r   c                  L    t        j                  ddt        |       z  z   g|  S )Nrc   hrZ   r[   s    rQ   _pack_signed_shortri      rf   r   c                  L    t        j                  ddt        |       z  z   g|  S )Nrc   LrZ   r[   s    rQ   
_pack_longrl      rf   r   c                  L    t        j                  ddt        |       z  z   g|  S )Nrc   lrZ   r[   s    rQ   _pack_slongro      rf   r   c                  L    t        j                  ddt        |       z  z   g|  S )Nrc   frZ   r[   s    rQ   _pack_floatrr      rf   r   c                  L    t        j                  ddt        |       z  z   g|  S )Nrc   drZ   r[   s    rQ   _pack_doubleru      rf   r   c                 
   d}d}|t         j                  k(  rCt        |       }|dk  rt        |  dd|z
  z  z   }nt	        j
                  d|      }t        |  }n|t         j                  k(  rCt        |       }|dk  rt        |  dd|z
  z  z   }net	        j
                  d|      }t        |  }nE|t         j                  k(  r:t        |       }|dk  r
t        |  }nt	        j
                  d|      }t        |  }n|t         j                  k(  r:t        |       }|dk  r
t        |  }nt	        j
                  d|      }t        |  }n|t         j                  k(  rL	 | j                  d      dz   }t        |      }|dkD  rt	        j
                  d|      }|}nY|dd|z
  z  z   }nL|t         j                   k(  rt#        | d
   t$        j&                        r5d}| \  }}t	        j
                  d|      t	        j
                  d|      z   }nht#        | d
   t(              rUt        |       }d}t+        |       D ]:  \  }	}
|
\  }}|t	        j
                  d|      t	        j
                  d|      z   z  }< t	        j
                  d|      }}ne|t         j,                  k(  rt#        | d
   t$        j&                        r5d}| \  }}t	        j
                  d|      t	        j
                  d|      z   }nht#        | d
   t(              rUt        |       }d}t+        |       D ]:  \  }	}
|
\  }}|t	        j
                  d|      t	        j
                  d|      z   z  }< t	        j
                  d|      }}n~|t         j.                  k(  r<t        |       }|dkD  rt	        j
                  d|      }	 d| z   }n=	 | dd|z
  z  z   }n/|t         j0                  k(  rAt        |       }|dk  rt3        |  dd|z
  z  z   }nt	        j
                  d|      }t3        |  }n|t         j4                  k(  rAt        |       }|dk  rt7        |  dd|z
  z  z   }nt	        j
                  d|      }t7        |  }n|t         j8                  k(  r8t        |       }|dk  r	t;        |  }n[t	        j
                  d|      }t;        |  }n<|t         j<                  k(  r)t        |       }t	        j
                  d|      }t?        |  }t	        j
                  d      }|||fS #  	 | dz   }n# t        $ r t        d	      w xY wY xY w# t        $ r t        d	      w xY w# t        $ r t        d	      w xY w)Nr   r       r   rT   s     r   latin1zGot invalid type to convert.r   r   z>l) r&   Byter   r]   r$   r%   Shortre   r'   rl   SLongro   Asciiencode	TypeErrorr"   Rational
isinstancenumbersIntegraltuple	enumerate	SRational	UndefinedSBytera   SShortri   Floatrr   DFloatru   )	raw_value
value_typer<   four_bytes_over	value_strlength	new_valuenumdennvalrH   s               rQ   _value_to_bytesr      s+   OIUZZYQ;#Y/#q6z23I D&1I()4O	u{{	"YQ;$i0'1v:67I D&1I)95O	uzz	!YQ;"I.ID&1I()4O	u{{	"YQ;#Y/ID&1I)95O	u{{	"	A!((2W<I YA:D&1I'O!Gq6z$::I	u~~	%ilG$4$45F HCD#.T31GGI	!e,^FI#I. 83Sfkk$4 &D# 67 8	8 KKf-	#	u	&ilG$4$45F HCD#.T31GGI	!e,^FI#I. 83Sfkk$4 &D# 67 8	8 KKf-	#	u	&YA:D&1IA"%	/A%1v:(>>	 
u{{	"YQ;*I6#q6z23I D&1I/;O	u||	#YQ;+Y7'1v:67I D&1I0)<O	u{{	"YQ;#Y/ID&1I)95O	u||	#YKKf-	&	2T6*Jy/11c	AA%/	 A !?@@A V  A !?@@A
  A !?@@As<   T 2T8 :U T5TT5T//T58UU%c                 `   t        |       }t        j                  d|      }|dv rd|dz  z   dz   }nd|dz  z   }d}d}t        t	        |             D ]  \  }}	|dk(  r#|	t
        j                  t
        j                  fv r/|dk(  r|	t        j                  k(  rH|d	k(  r#|	t
        j                  t
        j                  fv rp| |	   }
t        j                  d|	      }t        |   |	   d
   }t        j                  d|      }d}t        |
t        j                        st        |
t               r|
f}
t"        |z   |z   t        |      z   }	 t%        |
||      \  }}}|||z   |z   |z   z  }||z  } ||z   |fS # t&        $ r, t'        ddj)                  |	|t+        | |	               z         w xY w)Nr   )r   r   rT   r   r   r   r   r   r   typez%"dump" got wrong type of exif value.
z{} in {} IFD. Got as {}.)r   r$   r%   r   sortedr   r   r   r   r   r   r   TAGSr   r   r   floatr#   r   r"   formatr   )ifd_dictifd
ifd_offset	tag_countentry_headerentries_lengthentriesvaluesr   rE   r   rF   r   rG   r   r<   rH   r   s                     rQ   r   r   2  s   HI;;tY/L
nY^+a/Y^+GFF8,- "35Lsx'7'7&IIVm#)D)D"DUl)G)GImIm(n!nSM	++dC(#Ys^F+
;;tZ0i!1!12jE6R"I#n4zACKO	5DYEOEK6M2J	? 	7X%
2Y>>/!;"< 7"F++  	8*11#sD#<OPQ 	s   
E885F-)r   r   r$   _common_exifr#   rR   r!   r]   ra   re   ri   rl   ro   rr   ru   r   r    r   rQ   <module>r      s\          J)Z//555555v2p(,r   