+
    LV-jôT  ã                  óÒ  a € 0 t $ ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt	^ RI
H
t ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt R R lt ! R R4      tRtRtRt ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      t]	P>                  ! RRR7      t R]R]R ]/t!R!]"R"&   R3R# R$ llt#R% R& lt$R' R( lt%R) R* lt&R+ R, lt'R- R. lt(R/ R0 lt)R1 R2 lt*R# )4é    )ÚannotationsN)Úgettext)ÚArgument)ÚCommand)ÚContext)ÚGroup)ÚOption)Ú	Parameter)ÚParameterSource)Úechoc               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )é   Úclir   Úctx_argsúcabc.MutableMapping[str, t.Any]Ú	prog_nameÚstrÚcomplete_varÚinstructionÚreturnÚint© )Úformats   "Úg/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/click/shell_completion.pyÚ__annotate__r      sD   € ÷ $ñ $Ø	ð$à-ð$ð ð$ð ð	$ð
 ð$ð 	ñ$ó    c                ó&  € VP                  R4      w  rVp\        V4      pVf   ^# V! WW#4      pVR8X  d,   \        VP                  4       P	                  4       RR7       ^ # VR8X  d*   \        VP                  4       P	                  4       4       ^ # ^# )aØ  Perform shell completion for the given CLI program.

:param cli: Command being called.
:param ctx_args: Extra arguments to pass to
    ``cli.make_context``.
:param prog_name: Name of the executable in the shell.
:param complete_var: Name of the environment variable that holds
    the completion instruction.
:param instruction: Value of ``complete_var`` with the completion
    instruction and shell, in the form ``instruction_shell``.
:return: Status code to exit with.
Ú_ÚsourceF)ÚnlÚcomplete)Ú	partitionÚget_completion_classr   r   Úencoder!   )	r   r   r   r   r   Úshellr   Úcomp_clsÚcomps	   &&&&&    r   Úshell_completer(      sƒ   € ð& (×1Ñ1°#Ó6Ñ€EˆkÜ# EÓ*€HàÒÙá�C 9Ó;€Dð �hÔÜˆT�[‰[‹]×!Ñ!Ó#¨Õ.Ùà�jÔ ÜˆT�]‰]‹_×#Ñ#Ó%Ô&Ùár   c                  ó:   € ] tR t^:tRtRtR	R R lltR R ltRtR# )
ÚCompletionItemañ  Represents a completion value and metadata about the value. The
default metadata is ``type`` to indicate special shell handling,
and ``help`` if a shell supports showing a help string next to the
value.

Arbitrary parameters can be passed when creating the object, and
accessed using ``item.attr``. If an attribute wasn't passed,
accessing it returns ``None``.

:param value: The completion suggestion.
:param type: Tells the shell script to provide special completion
    support for the type. Click uses ``"dir"`` and ``"file"``.
:param help: String shown next to the value if supported.
:param kwargs: Arbitrary metadata. The built-in implementations
    don't use this, but custom type completions paired with custom
    shell support could use it.
Nc          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   Úvalueút.AnyÚtyper   Úhelpú
str | NoneÚkwargsr   ÚNoner   )r   s   "r   r   ÚCompletionItem.__annotate__O   s<   € ÷ 
ñ 
àð
ð ð
ð ð	
ð
 ð
ð 
ñ
r   c                	ó6   € Wn         W n        W0n        W@n        R # ©N©r,   r.   r/   Ú_info)Úselfr,   r.   r/   r1   s   &&&&,r   Ú__init__ÚCompletionItem.__init__O   s   € ð "Œ
ØŒ	Ø $Œ	ØŽ
r   c               ó    € V ^8„  d   QhRRRR/# )r   Únamer   r   r-   r   )r   s   "r   r   r3   [   s   € ÷ $ñ $ ð $¨ñ $r   c                	ó8   € V P                   P                  V4      # r5   )r7   Úget)r8   r<   s   &&r   Ú__getattr__ÚCompletionItem.__getattr__[   s   € Ø�z‰z�~‰~˜dÓ#Ð#r   )r7   r/   r.   r,   r6   )ÚplainN)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r9   r?   Ú__static_attributes__r   r   r   r*   r*   :   s   † ñð$ 3€I÷
÷$ñ $r   r*   a¢  %(complete_func)s() {
    local IFS=$'\n'
    local response

    response=$(env COMP_WORDS="${COMP_WORDS[*]}" COMP_CWORD=$COMP_CWORD %(complete_var)s=bash_complete $1)

    for completion in $response; do
        IFS=',' read type value <<< "$completion"

        if [[ $type == 'dir' ]]; then
            COMPREPLY=()
            compopt -o dirnames
        elif [[ $type == 'file' ]]; then
            COMPREPLY=()
            compopt -o default
        elif [[ $type == 'plain' ]]; then
            COMPREPLY+=($value)
        fi
    done

    return 0
}

%(complete_func)s_setup() {
    complete -o nosort -F %(complete_func)s %(prog_name)s
}

%(complete_func)s_setup;
a¦  #compdef %(prog_name)s

%(complete_func)s() {
    local -a completions
    local -a completions_with_descriptions
    local -a response
    (( ! $+commands[%(prog_name)s] )) && return 1

    response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) %(complete_var)s=zsh_complete %(prog_name)s)}")

    for type key descr in ${response}; do
        if [[ "$type" == "plain" ]]; then
            if [[ "$descr" == "_" ]]; then
                completions+=("$key")
            else
                completions_with_descriptions+=("$key":"$descr")
            fi
        elif [[ "$type" == "dir" ]]; then
            _path_files -/
        elif [[ "$type" == "file" ]]; then
            _path_files -f
        fi
    done

    if [ -n "$completions_with_descriptions" ]; then
        _describe -V unsorted completions_with_descriptions -U
    fi

    if [ -n "$completions" ]; then
        compadd -U -V unsorted -a completions
    fi
}

if [[ $zsh_eval_context[-1] == loadautofunc ]]; then
    # autoload from fpath, call function directly
    %(complete_func)s "$@"
else
    # eval/source/. command, register function for later
    compdef %(complete_func)s %(prog_name)s
fi
aä  function %(complete_func)s;
    set -l response (env %(complete_var)s=fish_complete COMP_WORDS=(commandline -cp) COMP_CWORD=(commandline -t) %(prog_name)s);

    for completion in $response;
        set -l metadata (string split 
 $completion);

        if test $metadata[1] = "dir";
            __fish_complete_directories $metadata[2];
        else if test $metadata[1] = "file";
            __fish_complete_path $metadata[2];
        else if test $metadata[1] = "plain";
            if test $metadata[3] != "_";
                echo $metadata[2]	$metadata[3];
            else;
                echo $metadata[2];
            end;
        end;
    end;
end;

complete --no-files --command %(prog_name)s --arguments "(%(complete_func)s)";
c                  óž   € ] tR t^Ít$ RtR]R&    R]R&    R R lt]R R l4       tR	 R
 lt	R R lt
R R ltR R ltR R ltR R ltRtR# )ÚShellCompletea�  Base class for providing shell completion support. A subclass for
a given shell will override attributes and methods to implement the
completion instructions (``source`` and ``complete``).

:param cli: Command being called.
:param prog_name: Name of the executable in the shell.
:param complete_var: Name of the environment variable that holds
    the completion instruction.

.. versionadded:: 8.0
zt.ClassVar[str]r<   Úsource_templatec          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   r   r   r   r   r   r   r   r   r2   r   )r   s   "r   r   ÚShellComplete.__annotate__å   s<   € ÷ 
)ñ 
)àð
)ð 2ð
)ð ð	
)ð
 ð
)ð 
ñ
)r   c                	ó6   € Wn         W n        W0n        W@n        R # r5   )r   r   r   r   )r8   r   r   r   r   s   &&&&&r   r9   ÚShellComplete.__init__å   s   € ð ŒØ ŒØ"ŒØ(Ör   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   rM   ò   s   € ÷ *ñ *˜3ñ *r   c                ó’   € \         P                  ! RRV P                  P                  RR4      \         P                  R7      pRV R2# )zAThe name of the shell function defined by the completion
script.
z\W*Ú Ú-r   )ÚflagsÚ_completion)ÚreÚsubr   ÚreplaceÚASCII)r8   Ú	safe_names   & r   Ú	func_nameÚShellComplete.func_nameñ   s<   € ô
 —F’F˜6 2 t§~¡~×'=Ñ'=¸cÀ3Ó'GÌrÏxÉxÔXˆ	Ø�9�+˜[Ð)Ð)r   c               ó   € V ^8„  d   QhRR/# )r   r   zdict[str, t.Any]r   )r   s   "r   r   rM   ù   s   € ÷ 

ñ 

Ð-ñ 

r   c                óN   € RV P                   RV P                  RV P                  /# )zVars for formatting :attr:`source_template`.

By default this provides ``complete_func``, ``complete_var``,
and ``prog_name``.
Úcomplete_funcr   r   )r\   r   r   ©r8   s   &r   Úsource_varsÚShellComplete.source_varsù   s+   € ð ˜TŸ^™^Ø˜D×-Ñ-Ø˜Ÿ™ð
ð 	
r   c               ó   € V ^8„  d   QhRR/# rQ   r   )r   s   "r   r   rM     s   € ÷ 9ñ 9˜ñ 9r   c                óD   € V P                   V P                  4       ,          # )zªProduce the shell script that defines the completion
function. By default this ``%``-style formats
:attr:`source_template` with the dict returned by
:meth:`source_vars`.
)rK   rb   ra   s   &r   r   ÚShellComplete.source  s   € ð ×#Ñ# d×&6Ñ&6Ó&8Õ8Ð8r   c               ó   € V ^8„  d   QhRR/# ©r   r   ztuple[list[str], str]r   )r   s   "r   r   rM     s   € ÷ "ñ "Ð%:ñ "r   c                ó   € \         h)z€Use the env vars defined by the shell script to return a
tuple of ``args, incomplete``. This must be implemented by
subclasses.
©ÚNotImplementedErrorra   s   &r   Úget_completion_argsÚ!ShellComplete.get_completion_args  s
   € ô
 "Ð!r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úargsú	list[str]Ú
incompleter   r   zlist[CompletionItem]r   )r   s   "r   r   rM     s"   € ÷ 
3ñ 
3 Ið 
3¸3ð 
3ÐCWñ 
3r   c                ó˜   € \        V P                  V P                  V P                  V4      p\	        W1V4      w  rBVP                  W24      # )a,  Determine the context and last complete command or parameter
from the complete args. Call that object's ``shell_complete``
method to get the completions for the incomplete value.

:param args: List of complete args before the incomplete value.
:param incomplete: Value being completed. May be empty.
)Ú_resolve_contextr   r   r   Ú_resolve_incompleter(   )r8   ro   rq   ÚctxÚobjs   &&&  r   Úget_completionsÚShellComplete.get_completions  s?   € ô ˜tŸx™x¨¯©¸¿¹ÈÓMˆÜ-¨c¸ÓD‰ˆØ×!Ñ! #Ó2Ð2r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úitemr*   r   r   r   )r   s   "r   r   rM      s   € ÷ "ñ " nð "¸ñ "r   c                ó   € \         h)z˜Format a completion item into the form recognized by the
shell script. This must be implemented by subclasses.

:param item: Completion item to format.
rj   ©r8   r{   s   &&r   Úformat_completionÚShellComplete.format_completion   s
   € ô "Ð!r   c               ó   € V ^8„  d   QhRR/# rQ   r   )r   s   "r   r   rM   (  s   € ÷ 
ñ 
˜#ñ 
r   c                ó²   € V P                  4       w  rV P                  W4      pV Uu. uF  q@P                  V4      NK  	  ppRP                  V4      # u upi )z»Produce the completion data to send back to the shell.

By default this calls :meth:`get_completion_args`, gets the
completions, then calls :meth:`format_completion` for each
completion.
Ú
)rl   rw   r~   Újoin)r8   ro   rq   Úcompletionsr{   Úouts   &     r   r!   ÚShellComplete.complete(  sV   € ð  ×3Ñ3Ó5ÑˆØ×*Ñ*¨4Ó<ˆÙ8CÓD¹°×%Ñ% dÖ+¹ˆÐDØ�y‰y˜‹~Ðùò Es   ¨A)r   r   r   r   N)rB   rC   rD   rE   rF   Ú__annotations__r9   Úpropertyr\   rb   r   rl   rw   r~   r!   rH   r   r   r   rJ   rJ   Í   s]   ‡ ñ
ð Óðð
 %Ó$ðõ
)ð ô*ó ð*õ

õ9õ"õ
3õ"÷
ñ 
r   rJ   c                  óh   a € ] tR tRtRtRt]t]R R l4       t	R V 3R llt
R R	 ltR
 R ltRtV ;t# )ÚBashCompletei5  zShell completion for Bash.Úbashc               ó   € V ^8„  d   QhRR/# )r   r   r2   r   )r   s   "r   r   ÚBashComplete.__annotate__<  s   € ÷ ñ ˜Dñ r   c                 	ó   € ^ RI p ^ RIpV P                  R4      pVf   RpMPVP                  VRRR.VP                  R7      p\
        P                  ! RVP                  P                  4       4      pVeD   VP                  4       w  rVVR8  g   VR8X  d"   VR8  d   \        \        R	4      R
R7       R# R# R# \        \        R4      R
R7       R# )r   Nr‹   z--norcz-czecho "${BASH_VERSION}")Ústdoutz^(\d+)\.(\d+)\.\d+Ú4zCShell completion is not supported for Bash versions older than 4.4.T)Úerrz@Couldn't detect Bash version, shell completion is not supported.)ÚshutilÚ
subprocessÚwhichÚrunÚPIPErW   Úsearchr�   ÚdecodeÚgroupsr   r   )r’   r“   Úbash_exeÚmatchÚoutputÚmajorÚminors          r   Ú_check_versionÚBashComplete._check_version;  sÅ   € ãÛà—<‘< Ó'ˆàÒØ‰Eà—^‘^Ø˜8 TÐ+CÐDØ!—‘ð $ó ˆFô —I’IÐ3°V·]±]×5IÑ5IÓ5KÓLˆEàÒØ Ÿ<™<›>‰LˆEà�sŒ{˜e sœl¨u°s¬{ÜÜð4óð ÷ñ 0;™lô ÜÐTÓUØ÷r   c               ó   € V ^8„  d   QhRR/# rQ   r   )r   s   "r   r   r�   \  s   € ÷  ñ  ˜ñ  r   c                	ó@   <€ V P                  4        \        SV `	  4       # r5   )rŸ   Úsuperr   )r8   Ú	__class__s   &€r   r   ÚBashComplete.source\  s   ø€ Ø×ÑÔÜ‰w‰~ÓÐr   c               ó   € V ^8„  d   QhRR/# rh   r   )r   s   "r   r   r�   `  ó   € ÷ 
 ñ 
 Ð%:ñ 
 r   c                	óÎ   € \        \        P                  R ,          4      p\        \        P                  R,          4      pV^V p W,          pW43#   \         d    Rp Y43# i ; i©Ú
COMP_WORDSÚ
COMP_CWORDrS   ©Úsplit_arg_stringÚosÚenvironr   Ú
IndexError©r8   ÚcwordsÚcwordro   rq   s   &    r   rl   Ú BashComplete.get_completion_args`  ói   € Ü!¤"§*¡*¨\Õ":Ó;ˆÜ”B—J‘J˜|Õ,Ó-ˆØ�a˜ˆˆð	Ø�ˆJð ÐÐøô ô 	Ø‰JàÐÐð	úó   ÁA ÁA$Á#A$c               ó    € V ^8„  d   QhRRRR/# rz   r   )r   s   "r   r   r�   l  s   € ÷ +ñ + nð +¸ñ +r   c                	ó8   € VP                    R VP                   2# )Ú,)r.   r,   r}   s   &&r   r~   ÚBashComplete.format_completionl  s   € Ø—)‘)�˜A˜dŸj™j˜\Ð*Ð*r   r   )rB   rC   rD   rE   rF   r<   Ú_SOURCE_BASHrK   ÚstaticmethodrŸ   r   rl   r~   rH   Ú__classcell__)r¤   s   @r   rŠ   rŠ   5  s<   ø† Ù$à€DØ"€Oàôó ð÷@ ð  õ
 ÷+ó +r   rŠ   c                  ó:   € ] tR tRtRtRt]tR R ltR R lt	Rt
R	# )
ÚZshCompleteip  zShell completion for Zsh.Úzshc               ó   € V ^8„  d   QhRR/# rh   r   )r   s   "r   r   ÚZshComplete.__annotate__v  r§   r   c                	óÎ   € \        \        P                  R ,          4      p\        \        P                  R,          4      pV^V p W,          pW43#   \         d    Rp Y43# i ; ir©   r¬   r±   s   &    r   rl   ÚZshComplete.get_completion_argsv  rµ   r¶   c               ó    € V ^8„  d   QhRRRR/# rz   r   )r   s   "r   r   rÂ   ‚  s   € ÷ 0ñ 0 nð 0¸ñ 0r   c                	ó´   € VP                   ;'       g    R pVR 8w  d   VP                  P                  RR4      MVP                  pVP                   RV RV 2# )r   Ú:z\:r‚   ©r/   r,   rY   r.   )r8   r{   Úhelp_r,   s   &&  r   r~   ÚZshComplete.format_completion‚  sR   € Ø—	‘	× Ð ˜Sˆð 38¸3´,�—
‘
×"Ñ" 3¨Ô.ÀDÇJÁJˆØ—)‘)�˜B˜u˜g R¨ wÐ/Ð/r   r   N)rB   rC   rD   rE   rF   r<   Ú_SOURCE_ZSHrK   rl   r~   rH   r   r   r   r¿   r¿   p  s   † Ù#à€DØ!€Oõ
 ÷0ñ 0r   r¿   c                  ó:   € ] tR tRtRtRt]tR R ltR R lt	Rt
R	# )
ÚFishCompletei”  zShell completion for Fish.Úfishc               ó   € V ^8„  d   QhRR/# rh   r   )r   s   "r   r   ÚFishComplete.__annotate__š  s   € ÷  ñ  Ð%:ñ  r   c                	ó  € \        \        P                  R ,          4      p\        P                  R,          pV'       d   \        V4      ^ ,          pVR,          pV'       d'   V'       d   VR,          V8X  d   VP                  4        W23# )rª   r«   :é   NNéÿÿÿÿ)r­   r®   r¯   Úpop)r8   r²   rq   ro   s   &   r   rl   Ú FishComplete.get_completion_argsš  sb   € Ü!¤"§*¡*¨\Õ":Ó;ˆÜ—Z‘Z Õ-ˆ
ßÜ)¨*Ó5°aÕ8ˆJØ�b�zˆ÷ Ÿ$ 4¨¥8¨zÔ#9Ø�H‰HŒJàÐÐr   c               ó    € V ^8„  d   QhRRRR/# rz   r   )r   s   "r   r   rÐ   ¨  s   € ÷ 7ñ 7 nð 7¸ñ 7r   c                ó²   € VP                   ;'       g    RpVP                  P                  RR4      pVP                  RR4      pVP                   RV RV 2# )z|
.. versionchanged:: 8.4.0
    Escape newlines in value and help to fix completion errors with
    multi-line help strings.
r   r‚   z\nrÈ   )r8   r{   rÉ   r,   Úhelp_escapeds   &&   r   r~   ÚFishComplete.format_completion¨  sV   € ð —	‘	× Ð ˜SˆØ—
‘
×"Ñ" 4¨Ó/ˆØ—}‘} T¨5Ó1ˆØ—)‘)�˜B˜u˜g R¨ ~Ð6Ð6r   r   N)rB   rC   rD   rE   rF   r<   Ú_SOURCE_FISHrK   rl   r~   rH   r   r   r   rÍ   rÍ   ”  s   † Ù$à€DØ"€Oõ ÷7ñ 7r   rÍ   ÚShellCompleteTypeztype[ShellComplete])Úboundr‹   rÎ   rÀ   zdict[str, type[ShellComplete]]Ú_available_shellsc               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚclsrÛ   r<   r0   r   r   )r   s   "r   r   r   Ã  s$   € ÷ ñ Ø	ðØ",ðàñr   c                ó8   € Vf   V P                   pV \        V&   V # )aQ  Register a :class:`ShellComplete` subclass under the given name.
The name will be provided by the completion instruction environment
variable during completion.

:param cls: The completion class that will handle completion for the
    shell.
:param name: Name to register the class under. Defaults to the
    class's ``name`` attribute.
)r<   rÝ   )rß   r<   s   &&r   Úadd_completion_classrá   Ã  s"   € ð ‚|Ø�x‰xˆà!Ô�dÑà€Jr   c               ó    € V ^8„  d   QhRRRR/# )r   r%   r   r   ztype[ShellComplete] | Noner   )r   s   "r   r   r   ×  s   € ÷ (ñ ( ð (Ð(Bñ (r   c                ó,   € \         P                  V 4      # )záLook up a registered :class:`ShellComplete` subclass by the name
provided by the completion instruction environment variable. If the
name isn't registered, returns ``None``.

:param shell: Name the class is registered under.
)rÝ   r>   )r%   s   &r   r#   r#   ×  s   € ô × Ñ  Ó'Ð'r   c               ó    € V ^8„  d   QhRRRR/# )r   Ústringr   r   rp   r   )r   s   "r   r   r   á  s   € ÷ "ñ "˜Sð " Yñ "r   c                óä   € ^ RI pVP                  V RR7      pRVn        RVn        . p V F  pVP                  V4       K  	  V#   \         d     TP                  TP
                  4        T# i ; i)aÇ  Split an argument string as with :func:`shlex.split`, but don't
fail if the string is incomplete. Ignores a missing closing quote or
incomplete escape sequence and uses the partial token as-is.

.. code-block:: python

    split_arg_string("example 'my file")
    ["example", "my file"]

    split_arg_string("example my\")
    ["example", "my"]

:param string: String to split.

.. versionchanged:: 8.2
    Moved to ``shell_completion`` from ``parser``.
NT)ÚposixrS   )ÚshlexÚwhitespace_splitÚ
commentersÚappendÚ
ValueErrorÚtoken)rå   rè   Úlexr…   rí   s   &    r   r­   r­   á  sw   € ó$ à
�+‰+�f Dˆ+Ó
)€CØ€CÔØ€C„NØ
€CðÛˆEØ�J‰J�uÖñ ð €Jøô ô ð 	�
‰
�3—9‘9Õà€Jðús   ©A Á&A/Á.A/c               ó$   € V ^8„  d   QhRRRRRR/# )r   ru   r   Úparamr
   r   Úboolr   )r   s   "r   r   r     s!   € ÷ ñ  ð °ð ¸tñ r   c                óª  € \        V\        4      '       g   R# V P                  P                  VP                  4      pVP
                  R8H  ;'       g�    V P                  VP                  4      \        P                  J;'       gN    VP
                  ^8„  ;'       d7    \        V\        \        34      ;'       d    \        V4      VP
                  8  # )zØDetermine if the given parameter is an argument that can still
accept values.

:param ctx: Invocation context for the command represented by the
    parsed complete args.
:param param: Argument object being checked.
FrÓ   )Ú
isinstancer   Úparamsr>   r<   ÚnargsÚget_parameter_sourcer   ÚCOMMANDLINEÚtupleÚlistÚlen)ru   rð   r,   s   && r   Ú_is_incomplete_argumentrû     s«   € ô �eœX×&Ò&Ùà�J‰J�N‰N˜5Ÿ:™:Ó&€Eà�‰�rÑ÷ 	
ð 	
Ø×#Ñ# E§J¡JÓ/´×7RÑ7RÐR÷	
ð 	
ð �K‰K˜!‰O÷ )ð )Ü˜5¤5¬$ -Ó0÷)ð )ä�E“
˜UŸ[™[Ñ(ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ru   r   r,   r   r   rñ   r   )r   s   "r   r   r     s!   € ÷ "ñ "˜'ð "¨#ð "°$ñ "r   c                óD   € V'       g   R# V^ ,          pW P                   9   # )z5Check if the value looks like the start of an option.F)Ú_opt_prefixes)ru   r,   Úcs   && r   Ú_start_of_optionr     s    € çÙàˆa�€AØ×!Ñ!Ñ!Ð!r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ru   r   ro   rp   rð   r
   r   rñ   r   )r   s   "r   r   r   &  s.   € ÷ Añ A˜wð A¨ið AÀ	ð AÈdñ Ar   c                óN  € \        V\        4      '       g   R# VP                  '       g   VP                  '       d   R# Rp\	        \        V4      4       F4  w  rEV^,           VP                  8”  d    M\        W4      '       g   K2  Tp M	  VRJ;'       d    W2P                  9   # )z®Determine if the given parameter is an option that needs a value.

:param args: List of complete args before the incomplete value.
:param param: Option object being checked.
FN)	ró   r	   Úis_flagÚcountÚ	enumerateÚreversedrõ   r   Úopts)ru   ro   rð   Úlast_optionÚindexÚargs   &&&   r   Ú_is_incomplete_optionr  &  s„   € ô �eœV×$Ò$Ùà‡}‡}€}˜ŸŸ˜Ùà€Kä¤¨£Ö/‰
ˆØ�1�9�u—{‘{Ô"Ùä˜C×%Ô%ØˆKÙñ 0ð ˜dÐ"×@Ð@ {·j±jÑ'@Ð@r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r   r   r   r   r   r   ro   rp   r   r   r   )r   s   "r   r   r   ?  s:   € ÷ :ñ :Ø	ð:à-ð:ð ð:ð ð	:ð
 ñ:r   c                ó„  € RVR&   V P                   ! W#P                  4       3/ VB ;_uu_ 4       pVP                  VP                  ,           pV'       Ed&   VP                  p\        V\        4      '       Ed   VP                  '       gk   VP                  WC4      w  rgpVf   VuuRRR4       # VP                  WcVRR7      ;_uu_ 4       pTpVP                  VP                  ,           pRRR4       K¨  TpV'       d]   VP                  WC4      w  rgpVf   VuuRRR4       # VP                  VVVRRRR7      ;_uu_ 4       p	T	pVP                  pRRR4       Kd  Tp. VP                  OVP                  OpEK-   RRR4       V#   + '       g   i     EKJ  ; i  + '       g   i     K´  ; i  + '       g   i     X# ; i)aH  Produce the context hierarchy starting with the command and
traversing the complete arguments. This only follows the commands,
it doesn't trigger input prompts or callbacks.

:param cli: Command being called.
:param prog_name: Name of the executable in the shell.
:param args: List of complete args before the incomplete value.
TÚresilient_parsingN)Úparentr  F)r  Úallow_extra_argsÚallow_interspersed_argsr  )	Úmake_contextÚcopyÚ_protected_argsro   Úcommandró   r   ÚchainÚresolve_command)
r   r   r   ro   ru   r  r<   ÚcmdÚsub_ctxÚsub_sub_ctxs
   &&&&      r   rs   rs   ?  s©  € ð %)€HÐ Ñ!Ø	×	Ò	˜)§Y¡Y£[Ñ	=°H×	=Ò	=ÀØ×"Ñ" S§X¡XÕ-ˆçˆdØ—k‘kˆGä˜'¤5×)Ó)Ø—}—}�}Ø&-×&=Ñ&=¸cÓ&H‘O�D˜tà’{Ø"÷ 
>Ò	=ð ×)Ñ)Ø¨3À$ð *÷ ô à Ø%˜Ø"×2Ñ2°S·X±XÕ=˜÷	ñ ð "�GçØ*1×*AÑ*AÀ#Ó*L™˜ 4àš;Ø#&÷3 
>Ò	=ð6 !×-Ñ-Ø Ø Ø#&Ø-1Ø49Ø.2ð .÷ ô ð )Ø&1˜GØ#*§<¡<˜D÷ñ ð "�CØD˜W×4Ñ4ÐD°w·|±|ÐD“Dà÷S 
>ðV €J÷=÷ ñ ú÷÷ ð ú÷7 
>Ö	=ðV €JúsY   ¯&F.Á4F.ÂF.Â/F.Ã F	Ã+F.Ã?F.Ä#F.ÅF	Å*F.ÆFÆ
F.ÆF+Æ%	F.Æ.F?	c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ru   r   ro   rp   rq   r   r   ztuple[Command | Parameter, str]r   )r   s   "r   r   r   |  s,   € ÷ ,#ñ ,#Ø	ð,#Ø!ð,#Ø/2ð,#à$ñ,#r   c                ó¬  € VR8X  d   RpM=RV9   d7   \        W4      '       d&   VP                  R4      w  r4pVP                  V4       RV9  d    \        W4      '       d   V P                  V3# V P                  P	                  V 4      pV F  p\        WV4      '       g   K  Wb3u # 	  V F  p\        W4      '       g   K  Wb3u # 	  V P                  V3# )aP  Find the Click object that will handle the completion of the
incomplete value. Return the object and the incomplete value.

:param ctx: Invocation context for the command represented by
    the parsed complete args.
:param args: List of complete args before the incomplete value.
:param incomplete: Value being completed. May be empty.
Ú=rS   z--)r   r"   rë   r  Ú
get_paramsr  rû   )ru   ro   rq   r<   r   rô   rð   s   &&&    r   rt   rt   |  sÐ   € ð �SÔØ‰
Ø	�
Ô	Ô/°×@Ò@Ø(×2Ñ2°3Ó7Ñˆ�Ø�‰�DÔð �4ÔÔ,¨S×=Ò=Ø�{‰{˜JÐ&Ð&à�[‰[×#Ñ# CÓ(€Fó ˆÜ  ¨E×2Ô2ØÐ$Ò$ñ ó ˆÜ" 3×.Ô.ØÐ$Ò$ñ ð �;‰;˜
Ð"Ð"r   r5   )+Ú__conditional_annotations__Ú
__future__r   Úcollections.abcÚabcÚcabcr®   rW   ÚtypingÚtr   r   Úcorer   r   r   r   r	   r
   r   Úutilsr   r(   r*   r»   rË   rÚ   rJ   rŠ   r¿   rÍ   ÚTypeVarrÛ   rÝ   r‡   rá   r#   r­   rû   r   r  rs   rt   )r  s   @r   Ú<module>r)     sð   øðß "Ð "å Û 	Û 	Û Ý  å Ý Ý Ý Ý Ý Ý !Ý õ$÷N"$ñ "$ðL€ðL*€ðX€÷6eñ eôP8+�=ô 8+ôv!0�-ô !0ôH"7�=ô "7ðJ —I’IÐ1Ð9NÔOÐ ð ˆLØ
ˆLØ	ˆ;ð5Ð Ð1ó ÷õ((õ"õJõ."õAõ2:÷z,#r   