+
    JV-jŸ!  ã                  óì  € ^ RI Ht ^ RIt^ RIHt ^RIHtHt ^RIH	t
 ^RIHt ^RIHt R R	 lt ! R
 R]P                  4      t ! R R]P                   4      tR R lt ! R R]P&                  4      t]P*                  ! ]P,                  ]]4       ]P.                  ! R]4       ]P0                  ! ]P,                  R4       ]P2                  ! ]P,                  ]4       ]P4                  ! R]4       R# )é    )ÚannotationsN)ÚIO)ÚImageÚ	ImageFile)Úi32be)Úo8)Úo32bec               ó    € V ^8„  d   QhRRRR/# )é   ÚprefixÚbytesÚreturnÚbool© )Úformats   "Úc/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/PIL/QoiImagePlugin.pyÚ__annotate__r      s   € ÷ &ñ &�Eð &˜dñ &ó    c                ó$   € V P                  R 4      # )ó   qoif)Ú
startswith)r   s   &r   Ú_acceptr      s   € Ø×Ñ˜WÓ%Ð%r   c                  ó*   € ] tR t^tRtRtR R ltRtR# )ÚQoiImageFileÚQOIzQuite OK Imagec               ó   € V ^8„  d   QhRR/# )r   r   ÚNoner   )r   s   "r   r   ÚQoiImageFile.__annotate__   s   € ÷ Rñ R�tñ Rr   c                	ót  € V P                   f   Q h\        V P                   P                  ^4      4      '       g   Rp\        V4      h\	        V P                   P                  ^4      4      \	        V P                   P                  ^4      4      3V n        V P                   P                  ^4      ^ ,          pV^8X  d   RMRV n        V P                   P                  ^\        P                  4       \        P                  ! RRV P
                  ,           V P                   P                  4       4      .V n        R # )Nznot a QOI fileÚRGBÚRGBAÚqoi©r   r   )Úfpr   ÚreadÚSyntaxErrorÚi32Ú_sizeÚ_modeÚseekÚosÚSEEK_CURr   Ú_TileÚtellÚtile)ÚselfÚmsgÚchannelss   &  r   Ú_openÚQoiImageFile._open   sÌ   € Ø�w‰wÒ"Ð"Ð"Ü�t—w‘w—|‘| A“×'Ò'Ø"ˆCÜ˜cÓ"Ð"ä˜Ÿ™Ÿ™ a›Ó)¬3¨t¯w©w¯|©|¸A«Ó+?Ð?ˆŒ
à—7‘7—<‘< “? 1Õ%ˆØ&¨!œm‘U°ˆŒ
à�‰�‰�QœŸ™Ô$Ü—_’_ U¨F°T·Z±ZÕ,?ÀÇÁÇÁÃÓPÐQˆŽ	r   )r)   r(   r/   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úformat_descriptionr3   Ú__static_attributes__r   r   r   r   r      s   † Ø€FØ)Ð÷Rñ Rr   r   c                  óP   € ] tR t^*t$ RtRtR]R&   / tR]R&   R R ltR	 R
 lt	Rt
R# )Ú
QoiDecoderTNzbytes | bytearray | NoneÚ_previous_pixelzdict[int, bytes | bytearray]Ú_previously_seen_pixelsc               ó    € V ^8„  d   QhRRRR/# )r   Úvaluezbytes | bytearrayr   r   r   )r   s   "r   r   ÚQoiDecoder.__annotate__/   s   € ÷ 9ñ 9Ð->ð 9À4ñ 9r   c                	ó¬   € Wn         Vw  r#rEV^,          V^,          ,           V^,          ,           V^,          ,           ^@,          pWP                  V&   R# )é   N©r=   r>   )r0   r@   ÚrÚgÚbÚaÚ
hash_values   &&     r   Ú_add_to_previous_pixelsÚ"QoiDecoder._add_to_previous_pixels/   sG   € Ø$Ôà‰
ˆˆaØ˜!•e˜a !�e•m a¨!¥eÕ+¨a°"­fÕ4¸Õ:ˆ
Ø38×$Ñ$ ZÓ0r   c               ó    € V ^8„  d   QhRRRR/# )r   Úbufferz$bytes | Image.SupportsArrayInterfacer   ztuple[int, int]r   )r   s   "r   r   rA   6   s   € ÷ <ñ <ÐAð <Àoñ <r   c           
     	ó„  a a€ S P                   f   Q h/ S n        \        R4      S n        \        4       p\        P
                  ! S P                  4      pS P                  P                  S P                  P                  ,          V,          p\        V4      V8  Ed   S P                   P                  ^4      ^ ,          pV^þ8X  dQ   S P                  '       d?   \        S P                   P                  ^4      4      S P                  R,          ,           pEMmV^ÿ8X  d   S P                   P                  ^4      pEMIV^,	          pV^ 8X  d1   V^?,          pS P                  P                  V\        R4      4      pEM	V^8X  dÊ   S P                  '       d¸   \        S P                  ^ ,          V^0,          ^,	          ,           ^,
          R,          S P                  ^,          V^,          ^,	          ,           ^,
          R,          S P                  ^,          V^,          ,           ^,
          R,          S P                  ^,          34      pEM9V^8X  dÜ   S P                  '       dÊ   S P                   P                  ^4      ^ ,          p	V^?,          ^ ,
          oV	^ð,          ^,	          ^,
          p
V	^,          ^,
          p\        \        ;QJ d$    . VV 3R l\        V
^ V34       4       F  NK  	  5M! VV 3R l\        V
^ V34       4       4      4      pVS P                  R,          ,          pMWV^8X  dQ   S P                  '       d?   V^?,          ^,           pS P                  pV^8X  d
   VR,          pW&V,          ,          pEK÷  S P                  X4       V^8X  d
   VR,          pW&,          pEK#  S P!                  V4       R# )N:rC   NNé   c              3  óx   <"  € T F/  w  rSP                   V,          S,           V,           R ,          x € K1  	  R# 5i)rO   N)r=   )Ú.0ÚiÚdiffÚ
diff_greenr0   s   &  €€r   Ú	<genexpr>Ú$QoiDecoder.decode.<locals>.<genexpr>_   s7   øé € ð á+N¡ ð "×1Ñ1°!Õ4°zÕAÀDÕHÈC×OÒOÛ+Nùs   ƒ7:ºNrC   N©r   r   r   éÿ   ©r   r   r   r   )éÿÿÿÿr   )Úfdr>   Ú	bytearrayr=   r   ÚgetmodebandsÚmodeÚstateÚxsizeÚysizeÚlenr%   ÚgetÚtupleÚ	enumeraterJ   Ú
set_as_raw)r0   rM   ÚdataÚbandsÚdest_lengthÚbyter@   ÚopÚop_indexÚsecond_byteÚdiff_redÚ	diff_blueÚ
run_lengthrT   s   f&           @r   ÚdecodeÚQoiDecoder.decode6   sý  ù€ Ø�w‰wÒ"Ð"Ð"à')ˆÔ$Ü(¨Ó8ˆÔä‹{ˆÜ×"Ò" 4§9¡9Ó-ˆØ—j‘j×&Ñ&¨¯©×)9Ñ)9Õ9¸EÕAˆÜ�$‹i˜+Õ%Ø—7‘7—<‘< “? 1Õ%ˆDà�zÔ! d×&:×&:Ð&:Ü! $§'¡'§,¡,¨q£/Ó2°T×5IÑ5IÈ"Õ5MÕM’Ø˜Ô#ØŸ™Ÿ™ Q›’à˜Q•Y�Ø˜”7Ø# jÕ0�HØ ×8Ñ8×<Ñ<Ø ¤)¨LÓ"9ó’Eð ˜1”W ×!5×!5Ð!5Ü%à!×1Ñ1°!Õ4¸À
Õ9JÈqÕ8PÕQÐTUÕUØ!õ"à!×1Ñ1°!Õ4¸À
Õ9JÈqÕ8PÕQÐTUÕUØ!õ"à!×1Ñ1°!Õ4¸¸zÕ8IÕJÈQÕNÐRUÕUØ ×0Ñ0°Õ3ðó	’Eð ˜1”W ×!5×!5Ð!5Ø"&§'¡'§,¡,¨q£/°!Õ"4�KØ"&¨Õ"3°rÕ!9�JØ!,¨zÕ!9¸aÕ ?À1ÕD�HØ!,¨zÕ!9¸QÕ >�Iä%ßœõ ä+4°hÀÀ9Ð5MÔ+NóŸ™õ ä+4°hÀÀ9Ð5MÔ+Nóó ó�Eð ˜T×1Ñ1°"Õ5Õ5‘EØ˜1”W ×!5×!5Ð!5Ø"&¨Õ"3°qÕ!8�JØ ×0Ñ0�EØ ”zØ % b¥	˜Ø JÕ.Õ.�DÚØ×(Ñ(¨Ô/à˜ŒzØ˜b�	�Ø�M‹DØ�‰˜ÔØˆr   rD   )r5   r6   r7   r8   Ú	_pulls_fdr=   Ú__annotations__r>   rJ   rr   r:   r   r   r   r<   r<   *   s-   ‡ Ø€IØ04€OÐ-Ó4Ø<>ÐÐ9Ó>õ9÷<ñ <r   r<   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚimzImage.Imager$   z	IO[bytes]Úfilenamezstr | bytesr   r   r   )r   s   "r   r   r   u   s.   € ÷ Hñ Hˆkð H˜yð H°Kð HÀDñ Hr   c           	     ój  € V P                   R 8X  d   ^pM!V P                   R8X  d   ^pMRp\        V4      hV P                  P                  R4      R8X  d   ^ M^pVP	                  R4       VP	                  \        V P                  ^ ,          4      4       VP	                  \        V P                  ^,          4      4       VP	                  \        V4      4       VP	                  \        V4      4       \        P                  ! W\        P                  ! RRV P                  ,           4      .4       R# )	r    r!   zUnsupported QOI image modeÚ
colorspaceÚsRGBr   r"   Nr#   )r_   Ú
ValueErrorÚencoderinford   ÚwriteÚo32Úsizer   r   Ú_saver-   )rw   r$   rx   r2   r1   rz   s   &&&   r   r�   r�   u   sÑ   € Ø	‡w�w�%ÔØ‰Ø	�‰�FÔ	Ø‰à*ˆÜ˜‹oÐà—n‘n×(Ñ(¨Ó6¸&Ô@‘Àa€Jà‡H�HˆWÔØ‡H�HŒS�—‘˜•‹_ÔØ‡H�HŒS�—‘˜•‹_ÔØ‡H�HŒR�‹\ÔØ‡H�HŒR�
‹^Ôä‡O‚O�BœYŸ_š_¨U°F¸R¿W¹WÕ4DÓEÐFÖGr   c                  ó`   € ] tR t^‰t$ RtRtR]R&   / tR]R&   ^ tR R lt	R	 R
 lt
R R ltRtR# )Ú
QoiEncoderTNz tuple[int, int, int, int] | Noner=   z$dict[int, tuple[int, int, int, int]]r>   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   ÚQoiEncoder.__annotate__�   s   € ÷ ñ ˜Eñ r   c                	óZ   € \        ^ÀV P                  ^,
          ,          4      p^ V n        V# )éÀ   )r   Ú_run)r0   rh   s   & r   Ú
_write_runÚQoiEncoder._write_run�   s%   € Ü�* §	¡	¨A¥Õ.Ó/ˆØˆŒ	Øˆr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚleftÚintÚrightr   r   )r   s   "r   r   r…   ”   s!   € ÷ ñ ˜3ð  sð ¨sñ r   c                	óD   € W,
          ^ÿ,          pV^€8¼  d
   VR,          pV# )rY   rO   r   )r0   rŒ   rŽ   Úresults   &&& r   Ú_deltaÚQoiEncoder._delta”   s#   € Ø•, #Õ%ˆØ�SŒ=Ø�c�MˆFØˆr   c               ó    € V ^8„  d   QhRRRR/# )r   Úbufsizer�   r   ztuple[int, int, bytes]r   )r   s   "r   r   r…   š   s   € ÷ I"ñ I"˜cð I"Ð&<ñ I"r   c                	ó®  € V P                   f   Q h^ R/V n        RV n        \        4       pV P                   P                  w  r4\
        P                  ! V P                  4      p\        V4       EF  p\        V4       EF  pV P                   P                  Wv34      pV^8X  d   . VO^ÿN5pW€P                  8X  dC   V ;P                  ^,          un
        V P                  ^>8X  d   W P                  4       ,          pEM‚V P                  '       d   W P                  4       ,          pVw  ršr¼V	^,          V
^,          ,           V^,          ,           V^,          ,           ^@,          pV P                  P                  V4      V8X  d   V\        V4      ,          pEMçV P                  '       EdÕ   W€P                  V&   V P                  w  rïppVV8X  Ed‹   V P                  Wž4      pV P                  W¯4      pV P                  VV4      pRTu;8:  d   ^8  ds   M MoRTu;8:  d   ^8  da   M M]RTu;8:  d   ^8  dO   M MKV\        ^@V^,           ^,          ,          V^,           ^,          ,          V^,           ,          4      ,          pMùV P                  VV4      pV P                  VV4      pRTu;8:  d   ^8  dw   M MsRTu;8:  d   ^ 8  de   M MaRTu;8:  d   ^8  dS   M MOV\        ^€V^ ,           ,          4      ,          pV\        V^,           ^,          V^,           ,          4      ,          pMPV\        ^þ4      ,          pV\        VR,          4      ,          pM$V\        ^ÿ4      ,          pV\        V4      ,          pW€n        EK  	  EK  	  V P                  '       d   W P                  4       ,          pV\        R4      ,          p\!        V4      ^ V3# )NrW   rZ   rX   éþÿÿÿiøÿÿÿiàÿÿÿ)r   r   r   r   r   r   r   é   )rw   r>   r=   r]   r€   r   r^   r_   ÚrangeÚgetpixelrˆ   r‰   rd   r   r‘   r   rc   )r0   r”   rh   ÚwÚhri   ÚyÚxÚpixelrE   rF   rG   rH   rI   Úprev_rÚprev_gÚprev_bÚprev_aÚdelta_rÚdelta_gÚdelta_bÚdelta_grÚdelta_gbs   &&                     r   ÚencodeÚQoiEncoder.encodeš   s  € Ø�w‰wÒ"Ð"Ð"à()¨<Ð'8ˆÔ$Ø-ˆÔä‹{ˆØ�w‰w�|‰|‰ˆÜ×"Ò" 4§9¡9Ó-ˆä�q—ˆAÜ˜1—X�ØŸ™×(Ñ(¨!¨Ó0�Ø˜A”:Ø)˜e˜M S™M�Eà×0Ñ0Ô0Ø—I’I •N•IØ—y‘y B”Ø§¡Ó 1Õ1˜ùà—y—y�yØ§¡Ó 1Õ1˜à!&‘J�A˜!Ø"# a¥%¨!¨a­%¥-°!°aµ%Õ"7¸!¸b½&Õ"@ÀBÕ!F�JØ×3Ñ3×7Ñ7¸
ÓCÀuÔLØ¤ :£Õ.šØ×-×-Ñ-ØCH×4Ñ4°ZÑ@à9=×9MÑ9MÑ6˜¨°Ø! Q�;Ø&*§k¡k°!Ó&<˜GØ&*§k¡k°!Ó&<˜GØ&*§k¡k°!°VÓ&<˜Gð !# gÖ 1°× 1Ø$&¨'Ö$5°A×$5Ø$&¨'Ö$5°A×$5à $¬Ø$.Ø'.°¥{°qÕ&8õ%9à'.°¥{°qÕ&8õ%9ð (/°¥{õ%4ó)"õ !"¡ð ,0¯;©;°wÀÓ+H Ø+/¯;©;°wÀÓ+H à$&¨(Ö$6°Q×$6Ø(+¨wÖ(;¸×(;Ø(*¨hÖ(:¸×(:à$(¬BØ(2°gÀµlÕ(Có-&õ %& Dð %)¬B°¸1µÀÕ/BÀhÐQRÅlÕ/SÓ,TÕ$T¡Dà$(¬B¨z«NÕ$: DØ$(¬E°%¸µ)Ó,<Õ$<¡Dà ¤B z£NÕ2˜DØ ¤E¨%£LÕ0˜Dà',×$ôq ñ ðv �9�9ˆ9Ø—O‘OÓ%Õ%ˆDØ”Ð.Ó/Õ/ˆä�4‹y˜!˜TÐ!Ð!r   )r=   r>   rˆ   )r5   r6   r7   r8   Ú
_pushes_fdr=   ru   r>   rˆ   r‰   r‘   r¨   r:   r   r   r   rƒ   rƒ   ‰   s9   ‡ Ø€JØ8<€OÐ5Ó<ØDFÐÐAÓFØ€Dõõ
÷I"ñ I"r   rƒ   r"   z.qoi)Ú
__future__r   r+   Útypingr   Ú r   r   Ú_binaryr   r'   r   r	   r   r   r   Ú	PyDecoderr<   r�   Ú	PyEncoderrƒ   Úregister_openr   Úregister_decoderÚregister_extensionÚregister_saveÚregister_encoderr   r   r   Ú<module>r¶      sË   ðõ #ã 	Ý ç Ý !Ý Ý !õ&ôR�9×&Ñ&ô Rô&H�×$Ñ$ô HõVHô(Z"�×$Ñ$ô Z"ðz × Ò �L×'Ñ'¨°wÔ ?Ø × Ò �u˜jÔ )Ø × Ò ˜×,Ñ,¨fÔ 5à × Ò �L×'Ñ'¨Ô /Ø × Ò �u˜jÖ )r   