+
     BiC0                         . ROt ^ RItRtRtRt]],           tRt]R,           R	,           tR
tRt	]],           ]	,           ],           t
RR lt/ t ! R R4      t]! 4       t ! R R4      t ! R R4      tR# )ascii_letters	FormatterTemplateNz 	
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789abcdefABCDEF01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c                     T;'       g    R P                  \        \        P                  V P	                  V4      4      4      # ) )joinmapstr
capitalizesplit)sseps   &&&/usr/lib/python3.14/string/__init__.pycapwordsr   %   s.     JJ3S>??    c                   *   a  ] tR t^7t o RR ltRtV tR# )_TemplatePatternNc                .    Vf   V # VP                  4       # N)_compile_pattern)selfinstanceclss   &&&r   __get___TemplatePattern.__get__9   s    ;K##%%r    r   )__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r   7   s     & &r   r   c                      a a ] tR t^@t oRtRtRtRt]t	V 3R lt
]R 4       tR tR t]3R lt]3R	 ltR
 tR tRtVtV ;t# )r   $z(?a:[_a-z][_a-z0-9]*)Nc                D   < \         SV `  4        V P                  4        R # r   )super__init_subclass__r   )r   	__class__s   &r   r.   Template.__init_subclass__N   s    !#r   c           	        ^ RI pV P                  P                  R\        4      pV\        J dW   VP	                  V P
                  4      pV P                  pV P                  ;'       g    V P                  pRV RV RV RV R2	pV P                  f   VP                  V n        VP                  W P                  VP                  ,          4      ;q`n        V# )    Npatternz
            z(?:
              (?P<escaped>zC)  |   # Escape sequence of two delimiters
              (?P<named>zJ)       |   # delimiter and a Python identifier
              {(?P<braced>z)} |   # delimiter and a braced identifier
              (?P<invalid>)             # Other ill-formed delimiter exprs
            )
            )re__dict__getr   escape	delimiter	idpatternbraceidpatternflags
IGNORECASEcompileVERBOSEr3   )r   r4   r3   delimidbidpats   &      r   r   Template._compile_patternR   s    ,,""9.>?&&IIcmm,EB$$55CG  ' " 5 !	G 99CIJJw		BJJ0FGGk
r   c                    Wn         R # r   template)r   rF   s   &&r   __init__Template.__init__h   s     r   c                    VP                  R 4      pV P                  RV P                  RR7      pV'       g   ^p^pM/V\        RP	                  VRR 4      4      ,
          p\        V4      p\        RWT3,          4      h)invalidNT)keepends z.Invalid placeholder in string: line %d, col %d)startrF   
splitlineslenr   
ValueError)r   moilinescolnolinenos   &&    r   _invalidTemplate._invalidm   s|    HHYbq!,,d,;EFBGGE#2J/00EZFI ) * 	*r   c                  a a S\         J d   VoMV'       d   ^ RIHp V! VS4      oVV 3R lpS P                  P	                  VS P
                  4      # )r2   ChainMapc                 6  < V P                  R 4      ;'       g    V P                  R4      pVe   \        SV,          4      # V P                  R4      e   SP                  # V P                  R4      e   SP                  V 4       \	        RSP
                  4      hnamedbracedescapedrJ   #Unrecognized named group in pattern)groupr   r8   rW   rQ   r3   rR   r^   mappingr   s   & r   convert$Template.substitute.<locals>.convert   s    HHW%;;();E 75>**xx	".~~%xx	".b!B!\\+ +r   _sentinel_dictcollectionsr[   r3   subrF   r   rd   kwsr[   re   s   bb,  r   
substituteTemplate.substitutey   sD    n$G,sG,G
	+ ||77r   c                  a a S\         J d   VoMV'       d   ^ RIHp V! VS4      oVV 3R lpS P                  P	                  VS P
                  4      # )r2   rZ   c                 x  < V P                  R 4      ;'       g    V P                  R4      pVe    \        SV,          4      # V P                  R4      e   SP                  # V P                  R4      e   V P                  4       # \	        RSP
                  4      h  \         d    T P                  4       u # i ; ir]   )rb   r   KeyErrorr8   rQ   r3   rc   s   & r   re   )Template.safe_substitute.<locals>.convert   s    HHW%;;();E &wu~.. xx	".~~%xx	".xxz!B!\\+ +   &88:%&s   B B98B9rg   rk   s   bb,  r   safe_substituteTemplate.safe_substitute   sD    n$G,sG,G	+ ||77r   c                0   V P                   P                  V P                  4       Fl  pVP                  R 4      e    R# VP                  R4      e   K.  VP                  R4      e   KC  VP                  R4      e   KX  \	        RV P                   4      h	  R# )rJ   Fr^   r_   r`   ra   T)r3   finditerrF   rb   rQ   )r   rR   s   & r   is_validTemplate.is_valid   s|    ,,''6Bxx	".!)HHX&.HHY'/ !!FLL" " 7 r   c                x   . pV P                   P                  V P                  4       F  pVP                  R 4      ;'       g    VP                  R4      pVe   W19  d   VP	                  V4       KJ  Ve   KP  VP                  R4      e   Ke  VP                  R4      e   Kz  \        RV P                   4      h	  V# )r^   r_   rJ   r`   ra   )r3   rv   rF   rb   appendrQ   )r   idsrR   r^   s   &   r   get_identifiersTemplate.get_identifiers   s    ,,''6BHHW%;;();E U%5

5!-HHY'/HHY'/ !!FLL" " 7 
r   rE   )r"   r#   r$   r%   r8   r9   r:   r;   r   r3   r.   classmethodr   rG   rW   rh   rm   rs   rw   r|   r&   r'   __classcell__)r/   r)   s   @@r   r   r   @   sh      I
 )INEG  *!

* "0 8( '5 8, r   c                   Z   a  ] tR t^t o R tR tRR ltR tR tR t	R t
R tR	 tR
tV tR# )r   c               &    V P                  WV4      # r   )vformat)r   format_stringargskwargss   ""*,r   formatFormatter.format   s    ||M88r   c                h    \        4       pV P                  WW4^4      w  rVV P                  WBV4       V# )   )set_vformatcheck_unused_args)r   r   r   r   	used_argsresult_s   &&&&   r   r   Formatter.vformat   s2    E	MM-v!L	y7r   c           
        V^ 8  d   \        R4      h. pV P                  V4       EF  w  rrV'       d   VP                  V4       V	f   K&  \        P                  ! V	4      w  rVR8X  d.   VRJ d   \        R4      h\        V4      V	,           p	V^,          pM+\        V\        4      '       d   V'       d   \        R4      hRpV P                  WV4      w  rVP                  V4       V P                  W4      pV P                  WVWE^,
          VR7      w  rVP                  V P                  W4      4       EK  	  RP                  V4      V3# )r2   zMax string recursion exceededrL   FzJcannot switch from manual field specification to automatic field numberingzJcannot switch from automatic field numbering to manual field specification)auto_arg_index)rQ   parserz   _stringformatter_field_name_splitr   
isinstanceint	get_fieldaddconvert_fieldr   format_fieldr   )r   r   r   r   r   recursion_depthr   r   literal_text
field_nameformat_spec
conversionfield_firstr   objarg_useds   &&&&&&&         r   r   Formatter._vformat   sR   Q<==

=) >Lk l+ %
 ")!C!CJ!O"$%.( *5 6 6 "%^!4z!AJ"a'NS11%( *9 : :
 &+N !%z Hh' ((9 /3mmvq0#1 /< /3+ d//ABY *\ wwv..r   c                N    \        V\        4      '       d	   W!,          # W1,          # r   )r   r   )r   keyr   r   s   &&&&r   	get_valueFormatter.get_value  s    c39;r   c                    R # r   r!   )r   r   r   r   s   &&&&r   r   Formatter.check_unused_args  s    r   c                    \        W4      # r   )r   )r   valuer   s   &&&r   r   Formatter.format_field  s    e))r   c                    Vf   V# VR8X  d   \        V4      # VR8X  d   \        V4      # VR8X  d   \        V4      # \        RP	                  V4      4      h)Nr   raz"Unknown conversion specifier {0!s})r   reprasciirQ   r   )r   r   r   s   &&&r   r   Formatter.convert_field  sZ    L3u:3;3<=DDZPQQr   c                .    \         P                  ! V4      # r   )r   formatter_parser)r   r   s   &&r   r   Formatter.parse/  s    ''66r   c                    \         P                  ! V4      w  rEV P                  WBV4      pV F"  w  rxV'       d   \        Wh4      pK  Wh,          pK$  	  Wd3# r   )r   r   r   getattr)	r   r   r   r   firstrestr   is_attrrS   s	   &&&&     r   r   Formatter.get_field8  sO    88DnnU&1 JGcof	  zr   r!   N)r2   )r"   r#   r$   r%   r   r   r   r   r   r   r   r   r   r&   r'   r(   s   @r   r   r      s9     94/n*
R(7 r   )r   ascii_lowercaseascii_uppercaser   digits	hexdigits	octdigits	printablepunctuation
whitespacer   r   r   )__all__r   r   r   r   r   r   r   r   r   r   r   rh   r   r   r   r!   r   r   <module>r      s   "2  
../1	X(		5]"[0:=	
@ & & $% ~ ~Vz zr   