+
    lHàjp  ã                   ó   € R t ]! 0 RkRkRkRkRkRkRkRkR	kR
kRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkR kR!kR"kR#kR$kR%kR&kR'kR(kR)kR*kR+kR,kR-kR.kR/kR0kR1kR2kR3kR4kR5kR6kR7kR8kR9kR:kR;kR<kR=kR>kR?kR@kRAkRBkRCkRDkREkRFkRGkRHkRIkRJkRKkRLkRMkRNkROkRPkRQkRRkRSkRTkRUkRVkRWkRXkRYkRZkR[kR\kR]k4      t]! 0 Rmm4      tRnt]! 0 Rom4      t]]8:  g   Q hR^ R_ ltR` Ra ltRb Rc ltRd Re lt	Rf Rg lt
Rh Ri ltRj Rk ltRl# )pzhBinary file extensions to skip for text-based operations (ported from
free-code src/constants/files.ts).z.pngz.jpgz.jpegz.gifz.bmpz.icoz.webpz.tiffz.tifz.mp4z.movz.aviz.mkvz.webmz.wmvz.flvz.m4vz.mpegz.mpgz.mp3z.wavz.oggz.flacz.aacz.m4az.wmaz.aiffz.opusz.zipz.tarz.gzz.bz2z.7zz.rarz.xzz.zz.tgzz.isoz.exez.dllz.soz.dylibz.binz.oz.az.objz.libz.appz.msiz.debz.rpmú.docú.docxú.xlsú.xlsxú.pptú.pptxú.odtú.odsú.odpz.ttfz.otfz.woffz.woff2z.eotz.pycz.pyoz.classz.jarz.warz.earz.nodez.wasmz.rlibú.sqliteú.sqlite3ú.dbz.mdbz.idxz.psdz.aiz.epsz.sketchz.figz.xdz.blendz.3dsz.maxz.swfz.flaz.lockbz.datz.datac                ó0   € V ^8„  d   QhR\         R\         /# ©é   ÚpathÚreturn©Ústr)Úformats   "Ú</home/ubuntu/.hermes/hermes-agent/tools/binary_extensions.pyÚ__annotate__r   -   s   € ÷ 3ñ 3œð 3¤ñ 3ó    c                óZ   € V P                  R4      pVR8X  d   R# WR P                  4       # )zDLower-cased final ``.suffix`` of ``path`` ("" when there is no dot).Ú.Ú Néÿÿÿÿ)ÚrfindÚlower)r   Údots   & r   Ú_lower_suffixr    -   s-   € à
�*‰*�S‹/€CØ˜”ˆ2Ð2  T 
× 0Ñ 0Ó 2Ð2r   c                ó>   € V ^8„  d   QhR\         R\         R,          /# )r   Úsuffixr   Nr   )r   s   "r   r   r   3   s   € ÷ ñ ¤#ð ¬#°­*ñ r   c                óŽ   € \          F:  pV P                  V4      '       g   K  V R\        V4      )  pV\        9   g   K8  Vu # 	  R# )zŒReturn the database suffix a lower-cased sidecar suffix hangs off
(``.db-wal`` -> ``.db``), or None when ``suffix`` is not a SQLite sidecar.N)Ú_SQLITE_SIDECAR_MARKERSÚendswithÚlenÚ_SQLITE_EXTENSIONS)r"   ÚmarkerÚbases   &  r   Ú_strip_sidecar_markerr*   3   sB   € ÷ *ˆØ�?‰?˜6×"Ô"Ø˜.œS ›[˜LÐ)ˆDØÔ)Ö)Ø’ñ	 *ñ
 r   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   r   Ú
extensionsr   )r   Ú	frozensetÚbool)r   s   "r   r   r   >   s&   € ÷ Cñ CœCð C¬Yð C¼4ñ Cr   c                óH   € \        V 4      p\        V4      ;'       g    TV9   # )zÄCase-insensitive check on the final ``.suffix``; pure string, no I/O.
A SQLite sidecar counts as its database's extension (only SQLite suffixes
are stripped, so ``x.docx-wal`` stays unrecognised).)r    r*   )r   r,   r"   s   && r   Ú_has_extension_inr0   >   s&   € ô ˜4Ó €FÜ! &Ó)×3Ð3¨V¸
ÑBÐBr   c                ó0   € V ^8„  d   QhR\         R\        /# r   ©r   r.   )r   s   "r   r   r   F   s   € ÷ Bñ BœCð B¤Dñ Br   c                ó.   € \        \        V 4      4      RJ# )uÎ   True for ``x.db-wal`` / ``x.sqlite3-shm`` / ``x.db-journal`` paths.
Pure string, no I/O â€” a sidecar path is never a legitimate text target
even when no sidecar exists on disk (a checkpointed db has none).N)r*   r    ©r   s   &r   Úis_sqlite_sidecarr5   F   s   € ô !¤¨tÓ!4Ó5¸TÐAÐAr   c                ó0   € V ^8„  d   QhR\         R\        /# r   r2   )r   s   "r   r   r   M   s   € ÷ 6ñ 6œsð 6¤tñ 6r   c                 ó"   € \        V \        4      # ©N)r0   ÚBINARY_EXTENSIONSr4   s   &r   Úhas_binary_extensionr:   M   s   € Ü˜TÔ#4Ó5Ð5r   c                ó0   € V ^8„  d   QhR\         R\        /# r   r2   )r   s   "r   r   r   Q   s   € ÷ ?ñ ?¬ð ?´ñ ?r   c                 ó"   € \        V \        4      # r8   )r0   ÚOPAQUE_DOCUMENT_EXTENSIONSr4   s   &r   Úhas_opaque_document_extensionr>   Q   s   € Ü˜TÔ#=Ó>Ð>r   c                ó0   € V ^8„  d   QhR\         R\        /# r   r2   )r   s   "r   r   r   U   s   € ÷ )ñ )”cð )œdñ )r   c                 ó@   € V P                  4       P                  R 4      # )z.pdf)r   r%   r4   s   &r   Úis_pdf_pathrA   U   s   € Ø�:‰:‹<× Ñ  Ó(Ð(r   N>   r   r
   r	   r   ú.potú.ppsr   ú.rtfr   ú.docmr   ú.epubú.ppsmú.ppsxú.pptmr   ú.xlsbú.xlsmr   )z-walz-shmz-journal>   r   r   r   )Ú__doc__r-   r9   r=   r$   r'   r    r*   r0   r5   r:   r>   rA   © r   r   Ú<module>rN      s  ðñ&ñ ð Ø
ðØðØðØ#ðØ%+ðØ-3ðØ5<ðØ>EðØGMðà
ðàðàðà"ðà$+ðà-3ðà5;ðà=CðàELðàNTðð ðð ðð ðð $ðð &,ðð .4ðð 6<ðð >Eðð GNðð ð	ð ð	ð ð	ð "ð	ð $)ð	ð +1ð	ð 38ð	ð :>ð	ð @Fð	ð HNð	ð
 ðð
 ðð
 ðð
 $ðð
 &,ðð
 .2ðð
 48ðð
 :@ðð
 BHðð
 JPðð
 RXðð
 Z`ðð
 bhðð ðð ðð ðð %ðð '-ðð /6ðð 8>ðð @Fðð HNðð ðð ðð ðð &ðð (.ðð ðð ðð ðð %ðð '-ðð /5ðð 7>ðð @Gðð IPðð ðð ðð !ðð #)ðð +1ðð ðð ðð ðð %ðð '-ðð /4ðð 6>ðð @Fðð HNðð ðð ðð ðð %ðð '.ðó Ð ñ& 'ò (ó Ð ð 7Ð ñ Ò=Ó>Ð ØÐ.Ô.Ð .Ð.õ3õõCõBõ6õ?÷)r   