+
    êhçE  ã            	      óü  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^RIHtHt Rt]P                  ! R] R24      t]P                  ! R	] R
] R24      t]P'                  RR4      t ! R R4      tR R lt]P.                   U u/ uF  p ]! V 4      RbK  	  up tR tR t ! R R4      t]R8X  d>   RtR F3  t] ! R] 24       ] ! RPC                  ]! ]]4      4      4       ] ! 4        K5  	  R# R# u up i )a6  distutils.fancy_getopt

Wrapper around the standard getopt module that provides the following
additional features:
  * short and long options are tied together
  * options have help strings, so fancy_getopt could potentially
    create a complete usage summary
  * options set attributes of a passed-in object
)ÚannotationsN)ÚSequence)ÚAny)ÚDistutilsArgErrorÚDistutilsGetoptErrorz[a-zA-Z](?:[a-zA-Z0-9-]*)Ú^Ú$z^(z)=!(z)$Ú-Ú_c                  óˆ   € ] tR t^%tRtRR ltR tR tRR ltR t	R t
R	 tR
 tR tR tRR R lltR tRR ltRR ltRtR# )ÚFancyGetopta±  Wrapper around the standard 'getopt()' module that provides some
handy extra functionality:
  * short and long options are tied together
  * options have help strings, and help text can be assembled
    from them
  * options set attributes of a passed-in object
  * boolean options can have "negative aliases" -- eg. if
    --quiet is the "negative alias" of --verbose, then "--quiet"
    on the command line sets 'verbose' to false
Nc                	óÔ   € Wn         / V n        V P                   '       d   V P                  4        / V n        / V n        . V n        . V n        / V n        / V n        / V n	        . V n
        R # ©N)Úoption_tableÚoption_indexÚ_build_indexÚaliasÚnegative_aliasÚ
short_optsÚ	long_optsÚ
short2longÚ	attr_nameÚ	takes_argÚoption_order©Úselfr   s   &&ÚD/usr/lib/python3/dist-packages/setuptools/_distutils/fancy_getopt.pyÚ__init__ÚFancyGetopt.__init__1   sn   € ð )Ôð ˆÔØ××ÐØ×ÑÔð ˆŒ
ð !ˆÔð ˆŒØˆŒØˆŒØˆŒØˆŒð
 ˆÖó    c                	óŠ   € V P                   P                  4        V P                   F  pWP                   V^ ,          &   K  	  R# )é    N)r   Úclearr   )r   Úoptions   & r   r   ÚFancyGetopt._build_indexY   s6   € Ø×Ñ×ÑÔ!Ø×'Ô'ˆFØ+1×Ñ˜f Q�iÓ(ó (r   c                	ó2   € Wn         V P                  4        R # r   )r   r   r   s   &&r   Úset_option_tableÚFancyGetopt.set_option_table^   s   € Ø(ÔØ×ÑÖr   c                	óž   € WP                   9   d   \        R V R24      hWV3pV P                  P                  V4       W@P                   V&   R# )z$option conflict: already an option 'Ú'N)r   r   r   Úappend)r   Úlong_optionÚshort_optionÚhelp_stringr#   s   &&&& r   Ú
add_optionÚFancyGetopt.add_optionb   sU   € Ø×+Ñ+Ô+Ü&Ø6°{°mÀ1ÐEóð ð "°Ð=ˆFØ×Ñ×$Ñ$ VÔ,Ø-3×Ñ˜kÓ*r   c                ó   € WP                   9   # )z[Return true if the option table for this parser has an
option with long name 'long_option'.)r   ©r   r+   s   &&r   Ú
has_optionÚFancyGetopt.has_optionl   s   € ð ×/Ñ/Ñ/Ð/r   c                ó,   € VP                  \        4      # )z‚Translate long option name 'long_option' to the form it
has as an attribute of some object: ie., translate hyphens
to underscores.©Ú	translateÚlongopt_xlater1   s   &&r   Úget_attr_nameÚFancyGetopt.get_attr_nameq   s   € ð ×$Ñ$¤]Ó3Ð3r   c           
     	óü   € \        V\        4      '       g   Q hVP                  4        FO  w  r4W0P                  9  d   \	        R V RV RV R24      hW@P                  9  g   K<  \	        R V RV RV R24      h	  R# )zinvalid z 'z': option 'z' not definedú': aliased option 'N)Ú
isinstanceÚdictÚitemsr   r   )r   ÚaliasesÚwhatr   Úopts   &&&  r   Ú_check_alias_dictÚFancyGetopt._check_alias_dictw   sŒ   € Ü˜'¤4×(Ò(Ð(Ð(Ø!Ÿ-™-ž/‰JˆEØ×-Ñ-Ô-Ü*Ø˜t˜f B u g¨[¸¸¸}ÐMóð ð ×+Ñ+Ö+Ü*Ø˜t˜f B u gÐ-@ÀÀÀ]ÐSóð ó *r   c                ó6   € V P                  VR4       Wn        R# )z'Set the aliases for this option parser.r   N)rB   r   )r   r   s   &&r   Úset_aliasesÚFancyGetopt.set_aliasesƒ   s   € à×Ñ˜u gÔ.ØŽ
r   c                ó6   € V P                  VR4       Wn        R# )zÂSet the negative aliases for this option parser.
'negative_alias' should be a dictionary mapping option names to
option names, both the key and value must already be defined
in the option table.znegative aliasN)rB   r   )r   r   s   &&r   Úset_negative_aliasesÚ FancyGetopt.set_negative_aliasesˆ   s   € ð
 	×Ñ˜~Ð/?Ô@Ø,Ör   c                ó&  € . V n         . V n        V P                  P                  4        / V n        V P
                   EFP  p\        V4      ^8X  d	   Vw  r#p^ pM%\        V4      ^8X  d   Vw  r#rEM\        RV: 24      h\        V\        4      '       d   \        V4      ^8  d   \        RV R24      hVe6   \        V\        4      '       d   \        V4      ^8X  g   \        RV R24      hWPP                  V&   V P                   P                  V4       VR,          R8X  d'   V'       d
   VR,           pV^ R pR	V P                  V&   MgV P                  P                  V4      pVe:   V P                  V,          '       d   \        R
V RV R24      hW P                   R&   RV P                  V&   V P                  P                  V4      pVe<   V P                  V,          V P                  V,          8w  d   \        RV RV R24      h\         P#                  V4      '       g   \        RV R24      hV P%                  V4      V P&                  V&   V'       g   EK   V P                  P                  V4       W P                  V^ ,          &   EKS  	  R# )z…Populate the various data structures that keep tabs on the
option table.  Called by 'getopt()' before it can do anything
worthwhile.
zinvalid option tuple: zinvalid long option 'z"': must be a string of length >= 2Nzinvalid short option 'z"': must a single character or NoneÚ=Ú:Tzinvalid negative alias 'r;   z' takes a valueFzinvalid alias 'z%': inconsistent with aliased option 'z/' (one of them takes a value, the other doesn'tzinvalid long option name 'z)' (must be letters, numbers, hyphens onlyéÿÿÿÿ)r   r   r   r"   Úrepeatr   ÚlenÚ
ValueErrorr<   Ústrr   r*   r   r   Úgetr   Ú
longopt_reÚmatchr8   r   )r   r#   ÚlongÚshortÚhelprN   Úalias_tos   &      r   Ú_grok_option_tableÚFancyGetopt._grok_option_table�   s{  € ð
 ˆŒØˆŒØ�‰×ÑÔØˆŒà×'Õ'ˆFÜ�6‹{˜aÔØ$*Ñ!�˜TØ‘Ü�V“ Ô!Ø,2Ñ)�˜T 6ô !Ð#9¸&¹Ð!DÓEÐEô ˜d¤C×(Ò(¬C°«I¸¬MÜ*Ø+¨D¨6Ð1SÐTóð ð ’]¬
°5¼#×(>Ò(>Ä3ÀuÃ:ÐQRÄ?Ü*Ø,¨U¨GÐ3UÐVóð ð !'�K‰K˜ÑØ�N‰N×!Ñ! $Ô'à�B�x˜3ŒßØ! C�K�EØ˜A˜b�z�Ø'+�—‘˜tÒ$ð  ×.Ñ.×2Ñ2°4Ó8�ØÒ'Ø—~‘~ h×/Ô/Ü2Ø6°t°fð =/Ø/7¨j¸ðIóð ð
 *.—N‘N 2Ñ&Ø',�—‘˜tÑ$ð —z‘z—~‘~ dÓ+ˆHØÒ#Ø—>‘> $Õ'¨4¯>©>¸(Õ+CÔCÜ.Ø)¨$¨ð 0+Ø+3¨*ð 5,ð,óð ô ×#Ñ# D×)Ò)Ü*Ø0°°ð 7>ð >óð ð
 $(×#5Ñ#5°dÓ#;ˆD�N‰N˜4Ñ ßŠuØ—‘×&Ñ& uÔ-Ø,0—‘  a¥Ô)óI (r   c               ó   € V ^8„  d   QhRR/# ©é   ÚargszSequence[str] | None© )Úformats   "r   Ú__annotate__ÚFancyGetopt.__annotate__à   s   € ÷ ;ñ ;Ð/ñ ;r   c                ó  € Vf   \         P                  R,          pVf   \        4       pRpMRpV P                  4        RP	                  V P
                  4      p \        P                  ! WV P                  4      w  rQT EFQ  w  rx\        T4      ^8X  d*   T^ ,          R8X  d   T P                  T^,          ,          pM)\        T4      ^8”  d   TR,          R8X  g   Q hTR	,          pT P                  P                  T4      p	T	'       d   T	pT P                  T,          '       g9   TR
8X  g   Q R4       hT P                  P                  T4      p	T	'       d   T	p^ pM^pT P                   T,          p
T'       d1   T P"                  P                  T
4      e   \%        Y*^ 4      ^,           p\'        Y*T4       T P(                  P+                  Yx34       EKT  	  T'       d   Y3# T#   \        P                   d   p\        T4      hRp?ii ; i)aÇ  Parse command-line options in args. Store as attributes on object.

If 'args' is None or not supplied, uses 'sys.argv[1:]'.  If
'object' is None or not supplied, creates a new OptionDummy
object, stores option values there, and returns a tuple (args,
object).  If 'object' is supplied, it is modified in place and
'getopt()' just returns 'args'; in both cases, the returned
'args' is a modified copy of the passed-in 'args' list, which
is left untouched.
Nºé   NNTFÚ r	   :Nr]   Nz--:r]   NNÚ zboolean option can't have value)ÚsysÚargvÚOptionDummyrY   Újoinr   Úgetoptr   Úerrorr   rO   r   r   rR   r   r   r   rN   ÚgetattrÚsetattrr   r*   )r   r^   ÚobjectÚcreated_objectr   ÚoptsÚmsgrA   Úvalr   Úattrs   &&&        r   rl   ÚFancyGetopt.getoptà   s«  € ð Š<Ü—8‘8˜B•<ˆDØŠ>Ü “]ˆFØ!‰Nà"ˆNà×ÑÔ!à—X‘X˜dŸo™oÓ.ˆ
ð	)ÜŸš t¸¿¹ÓH‰JˆDô ‰HˆCÜ�3‹x˜1Œ}  Q¥¨3¤Ø—o‘o c¨!¥fÕ-‘ä˜3“x !”|¨¨B­°4¬Ð7Ð7Ø˜"•g�à—J‘J—N‘N 3Ó'ˆEßØ�à—>‘> #×&Ô&Ø˜b”yÐCÐ"CÓC�yØ×+Ñ+×/Ñ/°Ó4�ßØ�CØ‘Cà�Cà—>‘> #Õ&ˆD÷ �t—{‘{—‘ tÓ,Ò8Ü˜f¨AÓ.°Õ2�Ü�F #Ô&Ø×Ñ×$Ñ$ c Z×0ñ5 ÷: Ø�<ÐàˆKøôG �|‰|ô 	)Ü# CÓ(Ð(ûð	)ús   Á#G# Ç#HÇ8HÈHc                óL   € V P                   f   \        R4      hV P                   # )z“Returns the list of (option, value) tuples processed by the
previous run of 'getopt()'.  Raises RuntimeError if
'getopt()' hasn't been called yet.
z!'getopt()' hasn't been called yet)r   ÚRuntimeError)r   s   &r   Úget_option_orderÚFancyGetopt.get_option_order  s(   € ð
 ×ÑÒ$ÜÐBÓCÐCà×$Ñ$Ð$r   c                ó&  € ^ pV P                    FN  pV^ ,          pV^,          p\        V4      pVR,          R8X  d
   V^,
          pVe
   V^,           pWb8”  g   KL  TpKP  	  V^,           ^,           ^,           p^NpW‡,
          p	RV,          p
V'       d   V.pMR.pV P                    Fç  pVR,          w  rEp\        WÉ4      pVR,          R8X  d   V^ R pVfE   V'       d$   VP                  RVRV 2 RV^ ,           24       MdVP                  RVRV 2 24       MKV RV R	2pV'       d$   VP                  RVRV 2 RV^ ,           24       MVP                  RVRV 2 24       VR
,           F  pVP                  W¦,           4       K  	  Ké  	  V# )z|Generate help text (a list of strings, one per suggested line of
output) from the option table for this FancyGetopt object.
rK   rf   zOption summary::Né   Nz  --Ú<z  z (-Ú)rd   rM   )r   rO   Ú	wrap_textr*   )r   ÚheaderÚmax_optr#   rU   rV   ÚellÚ	opt_widthÚ
line_widthÚ
text_widthÚ
big_indentÚlinesrW   ÚtextÚ	opt_namess   &&             r   Úgenerate_helpÚFancyGetopt.generate_help'  s¨  € ð ˆØ×'Ô'ˆFØ˜!•9ˆDØ˜1•IˆEÜ�d“)ˆCØ�B�x˜3ŒØ˜A•g�ØÒ Ø˜A•g�ØŽ}Ø’ñ (ð ˜a•K !•O aÕ'ˆ	ð0 ˆ
ØÕ+ˆ
Ø˜9•_ˆ
ßØ�H‰Eà&Ð'ˆEà×'Ô'ˆFØ & r¥
ÑˆD˜Ü˜TÓ.ˆDØ�B�x˜3ŒØ˜A˜b�z�ð Š}ßØ—L‘L 4¨¨Q¨w¨i¨KÐ'8¸¸4À½7¸)Ð!DÕEà—L‘L 4¨¨Q¨w¨i¨KÐ'8Ð!9Õ:ð
  $˜f C¨ w¨aÐ0�	ßØ—L‘L 4¨	°!°G°9°Ð'=¸RÀÀQÅ¸yÐ!IÕJà—L‘L 4¨	°!°G°9°Ð'=Ð!>Ô?à˜B—x�x�Ø—‘˜ZÕ-Ö.ó  ñ- (ð0 ˆr   c                	óŽ   € Vf   \         P                  pV P                  V4       F  pVP                  VR,           4       K  	  R # )NÚ
)rh   ÚstdoutrŠ   Úwrite)r   r€   ÚfileÚlines   &&& r   Ú
print_helpÚFancyGetopt.print_helpu  s5   € ØŠ<Ü—:‘:ˆDØ×&Ñ& vÖ.ˆDØ�J‰J�t˜d•{Ö#ó /r   )r   r   r   r   r   r   r   rN   r   r   r   r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r&   r.   r2   r8   rB   rE   rH   rY   rl   ry   rŠ   r’   Ú__static_attributes__r_   r   r   r   r   %   sX   † ñ	ô&òP2ò
ô4ò0ò
4ò
òò
-òN1÷`;òz%ôL÷\$ð $r   r   c               ó   € V ^8„  d   QhRR/# r\   r_   )r`   s   "r   ra   ra   |  s   € ÷ 'ñ 'Ð6Jñ 'r   c                ó\   € \        V 4      pVP                  V4       VP                  W24      # r   )r   rH   rl   )ÚoptionsÚnegative_optrp   r^   Úparsers   &&&& r   Úfancy_getoptrŸ   |  s)   € Ü˜Ó!€FØ
×Ñ Ô-Ø�=‰=˜Ó&Ð&r   rf   c                óÊ  € V f   . # \        V 4      V8:  d   V .# V P                  4       p V P                  \        4      p \        P
                  ! RV 4      pV Uu. uF  q3'       g   K  VNK  	  pp. pV'       då   . p^ pV'       df   \        V^ ,          4      pWg,           V8:  d&   VP                  V^ ,          4       V^  Wg,           pKL  V'       d   VR,          ^ ,          R8X  d   VR  V'       dJ   V^ 8X  d+   VP                  V^ ,          ^ V 4       V^ ,          VR V^ &   V^ ,          ^ ,          R8X  d   V^  VP                  RP                  V4      4       Kì  V# u upi )zªwrap_text(text : string, width : int) -> [string]

Split 'text' into multiple lines of no more than 'width' characters
each, and return the list of strings that results.
Nz( +|-+)rf   rg   rM   )rO   Ú
expandtabsr6   ÚWS_TRANSÚreÚsplitr*   rk   )rˆ   ÚwidthÚchunksÚchr‡   Úcur_lineÚcur_lenr‚   s   &&      r   r   r   …  s=  € ð ‚|Øˆ	Ü
ˆ4ƒy�EÔØˆvˆà�?‰?Ó€DØ�>‰>œ(Ó#€DÜ�XŠX�j $Ó'€FÙ!Ó(™6�R£R�bˆb™6€FÐ(Ø€Eç
ØˆØˆçÜ�f˜Q•i“.ˆCØ�} Ô%Ø—‘  q¥	Ô*Ø˜1�IØ!�-’÷  ¨¥¨Q¥°3Ô 6Ø  ˜Øçð ˜!Œ|Ø—‘  q¥	¨!¨EÐ 2Ô3Ø" 1�I e fÐ-��q‘	ð
 �a�y˜�|˜sÔ"Ø˜1�Ið 	�‰�R—W‘W˜XÓ&Ö'à€LùòK )s   Á	E Á(E c                ó,   € V P                  \        4      # )zPConvert a long option name to a valid Python identifier by
changing "-" to "_".
r5   )rA   s   &r   Útranslate_longoptr«   »  s   € ð �=‰=œÓ'Ð'r   c                  ó,   € ] tR tRtRt. 3R R lltRtR# )rj   iÂ  z[Dummy class just used as a place to hold command-line option
values as instance attributes.c               ó   € V ^8„  d   QhRR/# )r]   rœ   zSequence[Any]r_   )r`   s   "r   ra   ÚOptionDummy.__annotate__Æ  s   € ÷ %ñ % ñ %r   c                ó0   € V F  p\        WR4       K  	  R# )zcCreate a new OptionDummy instance.  The attributes listed in
'options' will be initialized to None.N)ro   )r   rœ   rA   s   && r   r   ÚOptionDummy.__init__Æ  s   € ó ˆCÜ�D˜tÖ$ó r   r_   N)r”   r•   r–   r—   r˜   r   r™   r_   r   r   rj   rj   Â  s   † ñ&ð 13÷ %ó %r   rj   Ú__main__z¢Tra-la-la, supercalifragilisticexpialidocious.
How *do* you spell that odd word, anyways?
(Someone ask Mary -- she'll know [or she'll
say, "How should I know?"].)zwidth: r�   )é
   é   é   é(   )"r˜   Ú
__future__r   rl   r£   Ústringrh   Úcollections.abcr   Útypingr   Úerrorsr   r   Úlongopt_patÚcompilerS   Úneg_alias_rerQ   Ú	maketransr7   r   rŸ   Ú
whitespaceÚordr¢   r   r«   rj   r”   rˆ   ÚwÚprintrk   )Ú_wschars   0r   Ú<module>rÄ      s  ðñõ #ã Û 	Û Û 
Ý $Ý ç ;ð +€Ø�ZŠZ˜1˜[˜M¨Ð+Ó,€
ð �zŠz˜B˜{˜m¨4°¨}¸BÐ?Ó@€ð —‘˜c 3Ó'€÷T$ñ T$õn
'ð .4×->Ò->Ó?Ñ-> '‰C�‹L˜#ÒÑ->Ñ?€ò3òl(÷%ñ %ð ˆzÔð €Dó ˆÙ�˜�sˆmÔÙˆd�i‰i™	 $¨Ó*Ó+Ô,ÙŽó ñ ùòW @s   ÂC9