+
    lHàjÝ  ã                  ó^   € R t ^ RIHt ^ RIt^ RIt]P
                  ! R4      t^€t^tR R lt	R# )zÛPath-component helpers shared by execution environment backends. Kept separate from the
base class so lazy backend imports do not depend on newly added exports from a large module
cached earlier in a long-lived process.)ÚannotationsNz[^A-Za-z0-9._-]c               ó    € V ^8„  d   QhRRRR/# )é   Útask_idÚstrÚreturn© )Úformats   "ÚB/home/ubuntu/.hermes/hermes-agent/tools/environments/path_utils.pyÚ__annotate__r      s   € ÷ (ñ ( sð (¨sñ (ó    c                óÔ  € \        V \        4      '       d   T MRpV'       g   R# \        P                  RV4      pW!8X  d5   \	        V4      \
        8:  d!   VR	9  d   VP                  R
4      '       g   V# \        P                  ! VP                  R4      4      P                  4       R\         pVR\
        \        ,
          ^,
           P                  R4      pT;'       g    R RV 2# )zþBind-mountable directory name for *task_id*'s sandbox. Already-safe names are returned
verbatim (preserving existing sandbox locations); rewritten names carry a digest because
substitution alone is not injective: ``a:b`` and ``a_b`` must not share state.Ú ÚdefaultÚ_zutf-8Nz._ÚtaskÚ->   Ú.ú..)r   Ú )Ú
isinstancer   Ú_SANDBOX_DIR_UNSAFE_REÚsubÚlenÚ_SANDBOX_DIR_MAX_LENÚendswithÚhashlibÚsha256ÚencodeÚ	hexdigestÚ_SANDBOX_DIR_HASH_LENÚstrip)r   ÚvalueÚcleanedÚdigestÚstems   &    r
   Úsanitize_task_id_for_pathr&      sÁ   € ô " '¬3×/Ò/‰G°R€EßÙä$×(Ñ(¨¨eÓ4€GØÔœS ›ZÔ+?Ô?Ø˜[Ô(°·±À
×1KÒ1KØˆä�^Š^˜EŸL™L¨Ó1Ó2×<Ñ<Ó>Ð?UÔ@UÐV€FØÐEÔ)Ô,AÕAÀAÕEÐF×LÑLÈTÓR€DØ�nˆn�fÐ˜Q˜v˜hÐ'Ð'r   )
Ú__doc__Ú
__future__r   r   ÚreÚcompiler   r   r    r&   r   r   r
   Ú<module>r+      s8   ðñ+õ #ã Û 	ð ŸšÐ$6Ó7Ð ØÐ ØÐ ÷(r   