
    -`im                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	m
Z
 	 d dlZdZn# eeeef$ r dZY nw xY w edg d          Zh dZh d	Zd
 Zd Zd Zd Zd2dZd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d  Z*d! Z+d" Z,d# Z-d$ Z.d2d%Z/d& Z0d' Z1d( Z2d) Z3d* Z4d+5                                Z6e6d,z  Z6e6d-5                                z  Z6d. Z7d/ Z8d0 Z9e:d1k    r e9             dS dS )3    N)
namedtuple)environment_variablesTF	SystemEnv)torch_versionis_debug_buildcuda_compiled_versiongcc_versionclang_versioncmake_versionoslibc_versionpython_versionpython_platformis_cuda_availablecuda_runtime_versioncuda_module_loadingnvidia_driver_versionnvidia_gpu_modelscudnn_versionpip_versionpip_packagesconda_packageship_compiled_versionhip_runtime_versionmiopen_runtime_versioncaching_allocator_configis_xnnpack_availablecpu_inforocm_versionvllm_versionvllm_build_flagsgpu_topoenv_vars>   mklzmqncclmagmanumpytorchhelionnvidiaoptreepynvmltritonsoumithcudatoolkittransformersflashinfer-python>   r%   mypyr&   onnxr(   r)   flake8r*   r+   r,   r-   r.   r1   r2   c                 j   t          |           t          u rdnd}	 t          j        | t          j        t          j        |          }|                                \  }}|j        }t                      dk    rd}nt          j	                    }|
                    |          }| dk    r|                                }n|                                }|
                    |          }|||                                fS # t          $ r* t          | t                    r| n| d         }	dd	d
|	 fcY S w xY w)z%Return (return-code, stdout, stderr).TF)stdoutstderrshellwin32oemnvidia-smi topo -mr       zCommand not found: )typestr
subprocessPopenPIPEcommunicate
returncodeget_platformlocalegetpreferredencodingdecoderstripstripFileNotFoundError
isinstance)
commandr9   p
raw_outputraw_errrcencoutputerrcmd_strs
             d/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/collect_env.pyrunrX   f   s9   MMS((DDeE8JOJO5
 
 
  mmoo
G\>>W$$CC-//C""3''*** ]]__FF\\^^FnnS!!6399;;&& 8 8 8'55E''71:B7g7777778s   C!C> >1D21D2c                 4     | |          \  }}}|dk    rdS |S )zIRun command using run_lambda; reads and returns entire output if rc is 0.r   N 
run_lambdarN   rR   out_s        rW   run_and_read_allr_      s*    G$$JBQ	QwwtJ    c                      | |          \  }}}|dk    rdS t          j        ||          }|dS |                    d          S )zIRun command using run_lambda, returns the first regex match if it exists.r   N   )researchgroup)r\   rN   regexrR   r]   r^   matchs          rW   run_and_parse_first_matchrh      sP    G$$JBQ	QwwtIeS!!E}t;;q>>r`   c                 f     | |          \  }}}|dk    rdS |                     d          d         S )zKRun command using run_lambda and returns first line if output is not empty.r   N
)splitr[   s        rW   run_and_return_first_linerl      s:    G$$JBQ	Qwwt99T??1r`   c                     t           t          j                            dd          }t	          | |dg          }||S d                    fd|                                D                       S )N	CONDA_EXEcondalistrj   c              3   ~   K   | ]6                     d           t          fdD                       2V  7dS )#c              3       K   | ]}|v V  	d S NrZ   .0namelines     rW   	<genexpr>z/get_conda_packages.<locals>.<genexpr>.<genexpr>   s'      +N+NTDDL+N+N+N+N+N+Nr`   N)
startswithanyrv   rx   patternss    @rW   ry   z%get_conda_packages.<locals>.<genexpr>   sq        s## ),+N+N+N+NX+N+N+N(N(N     r`   )DEFAULT_CONDA_PATTERNSr   environgetr_   join
splitlines)r\   r}   ro   r]   s    `  rW   get_conda_packagesr      s    )JNN;00E
:v
7
7C
{
99    NN$$     r`   c                 $    t          | dd          S )Nzgcc --versionzgcc (.*)rh   r\   s    rW   get_gcc_versionr      s    $Z+NNNr`   c                 $    t          | dd          S )Nzclang --versionzclang version (.*)r   r   s    rW   get_clang_versionr      s    $%'<  r`   c                 $    t          | dd          S )Nzcmake --versionz
cmake (.*)r   r   s    rW   get_cmake_versionr      s    $Z1BMRRRr`   c                     t                      dk    rd}t          | |d          S t                      }t          | |d          S )Ndarwinzkextstat | grep -i cudazcom[.]nvidia[.]CUDA [(](.*?)[)]zDriver Version: (.*?) )rF   rh   get_nvidia_smi)r\   cmdsmis      rW   get_nvidia_driver_versionr      sP    ~~!!'(?
 
 	
 

C$Z6OPPPr`   c                    t                      dk    s2t          rt          t          j        d          rt          j        j        t          rt          j                                        rt          j        j        Mt          j                            d          }t          |d          rd	                    |j
                  }nd}nd}t          j                            d           |z   S d S t                      }t          j        d          } | |d	z             \  }}}|dk    rd S t          j        |d|          S )
Nr   hipr   gcnArchNamez ({})NoGCNArchNameOnOldPyTorchr>   z \(UUID: .+?\)z -L)rF   TORCH_AVAILABLEhasattrr)   versionr   cudais_availableget_device_propertiesformatr   get_device_namer   rc   compilesub)r\   propgcnArchr   
uuid_regexrR   r]   r^   s           rW   get_gpu_infor      s!   ~~!! "EM5)) " M) 		>uz6688 		>} ,z77::4// :%nnT-=>>GG9GG:--d33g==t


C-..JC%K((JBQ	Qwwt6*b#&&&r`   c                 $    t          | dd          S )Nznvcc --versionzrelease .+ V(.*)r   r   s    rW   get_running_cuda_versionr      s    $Z1ACVWWWr`   c                    t                      dk    rxt          j                            dd          }t          j                            dd          }t          j                            |dd          }d                    ||          }nt                      d	k    rd
}nd} | |          \  }}}t          |          dk    s|dk    rg|dk    rat          j                            d          }|>t          j                            |          rt          j        	                    |          S dS t                      }	|                    d          D ]U}
t          j        	                    |
          }
t          j                            |
          r|	                    |
           V|	sdS t          |	          }t          |          dk    r|d         S d                    |          }d                    |          S )zHReturn a list of libcudnn.so; it's hard to tell which one is being used.r:   
SYSTEMROOT
C:\Windows	CUDA_PATHz%CUDA_PATH%System32wherez{} /R "{}\bin" cudnn*.dllr   z ls /usr/local/cuda/lib/libcudnn*z7ldconfig -p | grep libcudnn | rev | cut -d" " -f1 | revr   rb   CUDNN_LIBRARYNrj   z!Probably one of the following:
{})rF   r   r   r   pathr   r   lenisfilerealpathsetrk   addsorted)r\   system_root	cuda_path	where_cmd	cudnn_cmdrR   r]   r^   l	files_setfnfilesresults                rW   get_cudnn_versionr      s   ~~  jnn\=AAJNN;>>	GLLj'BB	077	9MM			8	#	#
 7		M	I&&JBQ
3xx1}}qR1WWJNN?++=RW^^A..=7##A&&&tIiioo  Wb!!7>>" 	MM" t9E
5zzQQxYYuF/66v>>>r`   c                     d} t                      dk    rt          j                            dd          }t          j                            dd          }t          j                            |dd|           }t          j                            |d	|           }||g}|D ]8}t          j                            |          rd
                    |          }  n9| S )Nz
nvidia-smir:   r   r   PROGRAMFILESzC:\Program FileszNVIDIA CorporationNVSMIr   z"{}")rF   r   r   r   r   r   existsr   )r   r   program_files_rootlegacy_pathnew_pathsmiscandidate_smis          rW   r   r     s    
C~~  jnn\=AAZ^^N<OPPgll 4gs
 
 7<<Z==+&! 	 	Mw~~m,, mmM22 Jr`   c                 $    t          | dd          S )z7Returns the ROCm version if available, otherwise 'N/A'.zhipcc --versionzHIP version: (\S+)r   r   s    rW   get_rocm_versionr     s    $%'<  r`   c                  X   ddl m} m} | dk    rdS |d         }t          |t                    r||                    d          rgd|v rQ|                    d          d         dd          }|                    d          d         dd          }|  d	| d
| dS |dd          }|  d	| dS | S )Nr   )__version____version_tuple__devz	N/A (dev)g.rb   z (git sha: z, date: ))vllmr   r   rM   r@   rz   rk   )r   r   version_strgit_shadates        rW   get_vllm_versionr      s    33333333e{#B'K+s## 
9(>(>s(C(C 
9+!'',,Q/3G$$S))"-abb1D!FFgFFtFFFF "!""oG!88g8888r`   c                      d                     t          j                            dd          t          j                            d          rdnd          S )NzCUDA Archs: {}; ROCm: {}TORCH_CUDA_ARCH_LISTzNot Set	ROCM_HOMEEnabledDisabled)r   r   r   r   rZ   r`   rW   summarize_vllm_build_flagsr   4  sH    %,,

-y99Z^^K00@		j  r`   c                 r    d }t                      dk    r"t          | d          }|t          | d          }|S )Nlinuxr<   zrocm-smi --showtopo)rF   r_   )r\   rT   s     rW   get_gpu_topor   <  s@    F~~  !*.BCC>%j2GHHFMr`   c                     d\  }}}t                      dk    r | d          \  }}}nCt                      dk    r | d          \  }}}n!t                      dk    r | d          \  }}}d}|d	k    r|}n|}|S )
N)r   r>   r>   r   lscpur:   zwmic cpu get Name,Manufacturer,Family,Architecture,ProcessorType,DeviceID,         CurrentClockSpeed,MaxClockSpeed,L2CacheSize,L2CacheSpeed,Revision /VALUEr   z"sysctl -n machdep.cpu.brand_stringNoner   )rF   )r\   rR   r]   rU   r   s        rW   get_cpu_infor     s    LBS~~  !z'**C	7	"	"!zR
 
C 
8	#	#!z"FGGCH	QwwOr`   c                  "   t           j                            d          rdS t           j                            d          rdS t           j                            d          rdS t           j                            d          rdS t           j        S )Nr   r:   cygwinr   )sysplatformrz   rZ   r`   rW   rF   rF     s~    
|w'' 	w		 	 	)	) w		 	 	*	* x		 	 	*	* x|r`   c                 $    t          | dd          S )Nzsw_vers -productVersionz(.*)r   r   s    rW   get_mac_versionr     s    $Z1JGTTTr`   c                    t           j                            dd          }t           j                            |ddd          }t           j                            |dd          }t          | d                    ||                    S )Nr   r   r   Wbemwmicfindstrz!{} os get Caption | {} /v Caption)r   r   r   r   r   r_   r   )r\   r   wmic_cmdfindstr_cmds       rW   get_windows_versionr     so    *..}==Kw||KVVDDH',,{J	BBK7>>xUU  r`   c                 $    t          | dd          S )Nzlsb_release -azDescription:\t(.*)r   r   s    rW   get_lsb_versionr     s    $$&;  r`   c                 $    t          | dd          S )Nzcat /etc/*-releasezPRETTY_NAME="(.*)"r   r   s    rW   check_release_filer     s    $(*?  r`   c                    ddl m} t                      }|dk    s|dk    rt          |           S |dk    r1t	          |           }|d S d                    | |                      S |dk    r|t          |           }|d                    | |                      S t          |           }|d                    | |                      S d                    | |                      S |S )	Nr   )machiner:   r   r   zmacOS {} ({})r   z{} ({}))r   r   rF   r   r   r   r   r   )r\   r   r   r   descs        rW   get_osr     s         ~~H7h(22":...8!*--?4%%gwwyy9997z**##D''))444 "*--##D''))444''))444 Or`   c                  2    dd l } |                                  S Nr   r   r   s    rW   get_python_platformr     s    OOOr`   c                      dd l } t                      dk    rdS d                    |                                           S )Nr   r   N/A-)r   rF   r   libc_verr   s    rW   get_libc_versionr     s=    OOO~~  u88H%%''(((r`   c                  \   t           j                            d          rdS t           j                            t
          j        d          } t           j                            |           rAt          | d          5 }t          d |D                       cd d d            S # 1 swxY w Y   dS )NUVTz
pyvenv.cfgrc              3   @   K   | ]}|                     d           V  dS )zuv = N)rz   )rv   rx   s     rW   ry   zis_uv_venv.<locals>.<genexpr>  s.      >>Dtw//>>>>>>r`   F)
r   r   r   r   r   r   prefixr   openr{   )pyvenv_cfg_pathfs     rW   
is_uv_venvr	    s    	z~~d tgll3:|<<O	w~~o&& ?/3'' 	?1>>A>>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?5s   ;B!!B%(B%c                 t     t            fd}t          j        d         dk    rdnd} |            }||fS )zZReturn `pip list` output. Note: will also find conda-installed pytorch and numpy packages.Nc                  ~   	 dd l } | j                            d          }|d u}n# t          $ r d}Y nw xY w|rt          j        dddg}n1t                      rt          d           g d}nt          d	          t          |          }d

                    fd|                                D                       S )Nr   pipFz-mpiprp   --format=freezez	uv is set)uvr  rp   r  zBCould not collect pip list output (pip or uv module not available)rj   c              3   T   K   | ]!t          fd D                       V  "dS )c              3       K   | ]}|v V  	d S rt   rZ   ru   s     rW   ry   zCget_pip_packages.<locals>.run_with_pip.<locals>.<genexpr>.<genexpr>  s'      4W4WdTT\4W4W4W4W4W4Wr`   N)r{   r|   s    @rW   ry   z9get_pip_packages.<locals>.run_with_pip.<locals>.<genexpr>  sZ       
 
4W4W4W4Wh4W4W4W1W1W

 
 
 
 
 
r`   )importlib.utilutil	find_specImportErrorr   
executabler	  printRuntimeErrorr_   r   r   )	importlibpip_specpip_availabler   r]   r}   r\   s        rW   run_with_pipz&get_pip_packages.<locals>.run_with_pip  s	   	"!!!! ~//66H$D0MM 	" 	" 	"!MMM	"  	>7F4EFCC\\ 	+:::CCT   z3//yy 
 
 
 
 ^^--
 
 
 
 
 	
s   "& 55r   3pip3r  )DEFAULT_PIP_PATTERNSr   r   )r\   r}   r  r   r]   s   ``   rW   get_pip_packagesr    s^    '
 
 
 
 
 
0  KNc11&&uK
,..Cr`   c                  F    t           j                            dd          } | S )NPYTORCH_CUDA_ALLOC_CONFr>   )r   r   r   )	ca_configs    rW   get_cachingallocator_configr#  %  s    
8"==Ir`   c                      t           r^t          j                                        r@t          j                                         t
          j                            dd          } | S dS )NCUDA_MODULE_LOADINGr>   r   )r   r)   r   r   initr   r   r   )configs    rW   get_cuda_module_loading_configr(  *  sQ     5:2244 
 5r::ur`   c                  X    t           r"dd l} t          | j        j        j                  S dS )Nr   r   )r   torch.backends.xnnpackr@   backendsxnnpackenabled)r)   s    rW   r   r   3  s1     %%%%5>)1222ur`   c                  @   d} d}d}t           j                                        D ]w\  }t          fd|D                       r!t          v r| d                    |          z   dz   }                     |          r| d                    |          z   dz   } x| S )Nr>   )secrettokenapiaccesspassword)	TORCHNCCLPYTORCHCUDACUBLASCUDNNOMP_MKL_NVIDIAc              3   D   K   | ]}|                                 v V  d S rt   )lower)rv   termks     rW   ry   zget_env_vars.<locals>.<genexpr>K  s0      ::Ttqwwyy ::::::r`   z{}={}rj   )r   r   itemsr{   r   r   rz   )r#   secret_termsreport_prefixvr@  s       @rW   get_env_varsrE  <  s    HCL
M 
  "" > >1::::\::::: 	%%%'..A"6"66=H<<&& 	>'..A"6"66=HOr`   c            
         t           } t          |           \  }}t          rt          j        }t          t          j        j                  }t          t          j        	                                          }t          j        j        }t          t          j        d          rt          j        j        dx}x}}	nnd }
t          j                                                            d          } |
|d          } |
|d          }	d}t          j        j        }ndx}x}x}}dx}x}}	t          j                            dd          }t#          |           }t%          |           }t'                      }t)                      }t+          |           }t-          d(i d|d	|d
d                    |t          j                                        dz             dt5                      d|d|dt7          |           dt9                      dt;          |           dt=          |           dt?          |           d|d|d|	d|d|d|dtA          |           dtC                      dtE          |           dtG          |           dtI          |           d tK                      d!tM                      d"tO          |           d#|d$|d%|d&|d'tQ                      S ))Nr   r   c                 8    fd| D             }|r|d         ndS )Nc                 P    g | ]"}|v |                     d d          d         #S )Nrb   r   )rsplit)rv   sr  s     rW   
<listcomp>z;get_env_info.<locals>.get_version_or_na.<locals>.<listcomp>e  s1    JJJ!fkkq))"-kkkr`   r   r   rZ   )cfgr  _lsts    ` rW   get_version_or_naz'get_env_info.<locals>.get_version_or_nad  s/    JJJJsJJJ"&1tAwwE1r`   rj   zHIP RuntimeMIOpen r   r   r   z{} ({}-bit runtime)rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r    r!   r"   r#   rZ   ))rX   r  r   r)   r   r@   r   debugr   r   r   r   _C_show_configrk   r   replacer   r   r   r   r   r   r   maxsize
bit_lengthr   r   r(  r   r   r   r   r   r   r   r   r#  r   r   rE  )r\   r   pip_list_outputr   debug_mode_strcuda_available_strcuda_version_strr   r   r   rN  rL  sys_versionr   r   r    r!   r"   s                     rW   get_env_infor\  U  s   J#3J#?#? K T'U]011 !8!8!:!:;; =-u--	5161B1JRWW W#69O9O2 2 2 (''))//55C"3"3C"G"G%6%6sH%E%E"$#(=#4  OTTTnT'9<LNSSS25K+%%dC00K'
33N#J//L#%%L133J''H ! ! !!k!%~! -33//11A5
 
 
! ,---! -,! /.! 6jAAA! ;<<<! 'z222! 8
CCC! (
333! 21! 0/!   65!!"  K#!$ %_%!& &~'!( *)!* &'''+!, $J///-!. (
333/!0 (
3331!2 "=!>!>!>3!4 23335!6 j)))7!8 "\9!: "\;!< *)=!> ?!@ A! !r`   a  
==============================
        System Info
==============================
OS                           : {os}
GCC version                  : {gcc_version}
Clang version                : {clang_version}
CMake version                : {cmake_version}
Libc version                 : {libc_version}

==============================
       PyTorch Info
==============================
PyTorch version              : {torch_version}
Is debug build               : {is_debug_build}
CUDA used to build PyTorch   : {cuda_compiled_version}
ROCM used to build PyTorch   : {hip_compiled_version}

==============================
      Python Environment
==============================
Python version               : {python_version}
Python platform              : {python_platform}

==============================
       CUDA / GPU Info
==============================
Is CUDA available            : {is_cuda_available}
CUDA runtime version         : {cuda_runtime_version}
CUDA_MODULE_LOADING set to   : {cuda_module_loading}
GPU models and configuration : {nvidia_gpu_models}
Nvidia driver version        : {nvidia_driver_version}
cuDNN version                : {cudnn_version}
HIP runtime version          : {hip_runtime_version}
MIOpen runtime version       : {miopen_runtime_version}
Is XNNPACK available         : {is_xnnpack_available}

==============================
          CPU Info
==============================
{cpu_info}

==============================
Versions of relevant libraries
==============================
{pip_packages}
{conda_packages}
z

aU  
==============================
         vLLM Info
==============================
ROCM Version                 : {rocm_version}
vLLM Version                 : {vllm_version}
vLLM Build Flags:
  {vllm_build_flags}
GPU Topology:
  {gpu_topo}

==============================
     Environment Variables
==============================
{env_vars}
c                   
 dd}dd}dd}dd	}d
 }|                                  
 || j                  
d<   g d}|dgz   }t          
fd|D                       }t          r6t          j                                        s|r|D ]}	d
|	<   | j        d
d<    |
          
 |
          
 |
d                   
d<    |
d                   
d<   
d         r- |
d         d                    | j	                            
d<   
d         r |
d         d          
d<   | j
        
d<   t          j        di 
S )NCould not collectc                 P    |                                  D ]}| |         || |<   | S rt   keys)dctreplacementkeys      rW   replace_nonesz!pretty_str.<locals>.replace_nones  s6    88:: 	# 	#C3x#"CHH
r`   YesNoc                 r    |                                  D ]!}| |         du r|| |<   | |         du r|| |<   "| S )NTFr`  )rb  truefalserd  s       rW   replace_boolsz!pretty_str.<locals>.replace_bools  sQ    88:: 	! 	!C3x4CSU"" C
r`   	[prepend]c                 t    |                      d          }fd|D             }d                    |          S )Nrj   c                     g | ]}|z   S rZ   rZ   )rv   rx   tags     rW   rK  z/pretty_str.<locals>.prepend.<locals>.<listcomp>  s    666t666r`   )rk   r   )textro  linesupdated_liness    `  rW   prependzpretty_str.<locals>.prepend  s?    

4  6666666yy'''r`   No relevant packagesc                 4    | t          |           dk    r|S | S r   )r   )rp  rc  s     rW   replace_if_emptyz$pretty_str.<locals>.replace_if_empty  s!    D		Qr`   c                     | ;t          |                     d                    dk    rd                    |           S | S )Nrj   rb   z
{}
)r   rk   r   )strings    rW   maybe_start_on_next_linez,pretty_str.<locals>.maybe_start_on_next_line   s=    #fll4&8&8"9"9A"="=??6***r`   r   )r   r   r   r   c              3   ,   K   | ]}|         d u V  d S rt   rZ   )rv   fieldmutable_dicts     rW   ry   zpretty_str.<locals>.<genexpr>  s>       * *(-Ut#* * * * * *r`   zNo CUDAr   r   r   r   z[{}] z[conda] r   )r^  )rf  rg  )rl  )rt  rZ   )_asdictr   allr   r)   r   r   r   r   r   r   env_info_fmt)envinfore  rk  rs  rv  ry  dynamic_cuda_fieldsall_cuda_fieldsall_dynamic_cuda_fields_missingr{  r|  s             @rW   
pretty_strr    s7         ( ( ( (
   
   ??$$L )A(@!) )L$%
  
 *_,==O&) * * * *1D* * * ' '# 	;
'')); ,;
 % 	, 	,E"+L(04:L01 !=..L !=..L $4#3L4P#Q#QL %5%5lCS6T%U%UL!" N# 
'.w('..9L*M*M(
 (
^$ $% 
)0)*J*
 *
%&  '/L.....r`   c                  8    t          t                                S rt   )r  r\  rZ   r`   rW   get_pretty_env_infor  9  s    lnn%%%r`   c                     t          d           t                      } t          |            t          r=t          t          d          r)t          t          j        d          rt          j        j        j        t          j	        dk    rt          j                                      rψfdt          j                  D             }t          |t          j        j                  }t          j                            |          }t           j                            |                              d          }d                    ||          d	z   }t          |t          j        
           d S d S d S d S d S d S )Nz%Collecting environment information...utils_crash_handlerr   c                 P    g | ]"}t           j                            |          #S rZ   )r   r   r   )rv   dumpminidump_dirs     rW   rK  zmain.<locals>.<listcomp>I  s6       59\400  r`   )rd  z%Y-%m-%d %H:%M:%Sz.
*** Detected a minidump at {} created on {}, zKif this is related to your bug please include it when you file a report ***)file)r  r  r   r   r)   r  r  DEFAULT_MINIDUMP_DIRr   r   r   r   r   listdirmaxgetctimedatetimefromtimestampstrftimer   r8   )rT   dumpslatestctimecreation_timemsgr  s         @rW   mainr  =  s   	
1222 ""F	&MMM 	(E7##( EK!122(
 {1F<7""rw~~l'C'C"   =?Z=U=U  E BG$4555FG$$V,,E$-;;EBBKK# M BHHM  ``  #CJ''''''+( ( ( ( ( ( #"""r`   __main__rt   );r  rG   r   rA   r   collectionsr   rf   rc   	vllm.envsr   r)   r   r  	NameErrorAttributeErrorOSErrorr   r~   r  rX   r_   rh   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rF   r   r   r   r   r   r   r   r	  r  r#  r(  r   rE  r\  rK   r  r  r  r  __name__rZ   r`   rW   <module>r     s     				     




 # " " " " "     + + + + + +LLLOOY8   OOO J  " "	H   $   $8 8 88         O O O  S S SQ Q Q' ' '4X X X"? "? "?J  $    (    n  &
 
 
U U U        >  ) ) )     D  
      2F F FR/^ 
EGG_ h     
EGG$P/ P/ P/f& & &( ( (: zDFFFFF s   - ;;