
    *M                      	 d dl Z d dlZd dlZd dlZ	 d dlmZ n# e$ r dZY nw xY w	 d dlZ	n# e$ r dZ	Y nw xY wg dZ
dgZdada G d d          Zdd	Zdd
ZddZddZddZd Zd Z e             d Zedk    r e             dS dS )    N) _mimetypes_read_windows_registry)
knownfilesinited	MimeTypes
guess_typeguess_all_extensionsguess_extensionadd_typeinitread_mime_types
suffix_mapencodings_map	types_mapcommon_typeszI/nix/store/8wrmi2fp3wvn2w6ikdfgzspyr8nwn934-mailcap-2.1.54/etc/mime.typesFc                   f    e Zd Z	 ddZddZddZddZddZddZdd	Z	dd
Z
ed             ZdS )r    Tc                    t           st                       t                                          | _        t
                                          | _        i i f| _        i i f| _        t          
                                D ]\  }}|                     ||d           t          
                                D ]\  }}|                     ||d           |D ]}|                     ||           d S NTF)r   r   _encodings_map_defaultcopyr   _suffix_map_defaultr   r   types_map_inv_types_map_defaultitemsr
   _common_types_defaultread)self	filenamesstrictexttypenames         W/nix/store/c6yb989sl77467xxwhylnkph1pqyi47p-python3-3.11.15/lib/python3.11/mimetypes.py__init__zMimeTypes.__init__@   s     	FFF388::-2244b "X-3355 	+ 	+KS$MM$T****06688 	, 	,KS$MM$U++++ 	$ 	$DIIdF####	$ 	$    c                     	 || j         |         |<   | j        |                             |g           }||vr|                    |           d S d S N)r   r   
setdefaultappend)r   r!   r    r   extss        r#   r
   zMimeTypes.add_typeN   s_    
	 '+vs#!&)44T2>>d??KK ?r%   c                    	 t          j        |          }t          j                            |          }|j        r't          |j                  dk    r|j        }|j        }n'd }t           j                            |          d         }|dk    r]|	                    d          }|dk     rdS |	                    dd|          }|dk    r|d |         }n
|d |         }d|v sd|vrd	}|d fS t          j        |          \  }}	|	                                x}
| j        v rBt          j        || j        |
         z             \  }}	|	                                x}
| j        v B|	| j        v r%| j        |	         }t          j        |          \  }}	nd }|	                                }	| j        d
         }|	|v r
||	         |fS |rd |fS | j        d         }|	|v r
||	         |fS d |fS )N   data,r   )NN;=/
text/plainTF)osfspathurllibparseurlparseschemelenpath
splitdrivefind	posixpathsplitextlowerr   r   r   )r   urlr   pr8   commasemir!   baser    	ext_lowerencodingr   s                r#   r   zMimeTypes.guess_type_   s   	$ innL!!#&&8 	-AH))XF&CCF'$$S))!,CV HHSMMEqyy!z88CE**Dqyy5D5z6E6{d{{coo#:&s++	cIIKK'yDO;;!*4$/)2L+LMMID#  IIKK'yDO;; $$$$)#.H!*400ID##HiikkN4(	)S>8++ 	">!N5)	)S>8++>!r%   c                 
   	 |                                 }t          | j        d                             |g                     }|s=| j        d                             |g           D ]}||vr|                    |           |S r   )r?   listr   getr)   )r   r!   r   
extensionsr    s        r#   r   zMimeTypes.guess_all_extensions   s    		 zz||$,T266tR@@AA
 	+)%044T2>> + +j((%%c***r%   c                 H    	 |                      ||          }|sd S |d         S )Nr   )r   )r   r!   r   rJ   s       r#   r	   zMimeTypes.guess_extension   s5    	 ..tV<<
 	4!}r%   c                     	 t          |d          5 }|                     ||           d d d            d S # 1 swxY w Y   d S )Nutf-8rF   )openreadfp)r   filenamer   fps       r#   r   zMimeTypes.read   s    	 (W--- 	$KKF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   7;;c                 8   	 	 |                                 }|sd S |                                }t          t          |                    D ]}||         d         dk    r||d =  n|sh|d         |dd          }}|D ]}|                     |d|z   |           )Nr,   r   #.)readlinesplitranger9   r
   )	r   rR   r   linewordsir!   suffixessuffs	            r#   rP   zMimeTypes.readfp   s    		8;;==D JJLLE3u::&&  8A;#%%abb	E &  "1XuQRRy(D  8 8dC$J7777	8r%   c                      	 t           s	t          sd S  j        }|r fd}t           rt          |           d S t          r                     |           d S d S )Nc                 2                         | |d          S )NT)r
   )r!   r    r   s     r#   <lambda>z1MimeTypes.read_windows_registry.<locals>.<lambda>   s    tS$)G)G r%   )r   _winregr
   _read_windows_registry)r   r   r
   s   `  r#   read_windows_registryzMimeTypes.read_windows_registry   s    	 0 	 	F= 	HGGGGH , 	2,X66666 	2''11111	2 	2r%   c                    d }t          j        t           j        d          5 } ||          D ]}	 t          j        ||          5 }|                    d          s	 d d d            ;t          j        |d          \  }}|t           j        k    r	 d d d            p |||           d d d            n# 1 swxY w Y   # t          $ r Y w xY w	 d d d            d S # 1 swxY w Y   d S )Nc              3   x   K   d}	 	 t          j        | |          }d|vr|V  n# t          $ r Y d S w xY w|dz  }6)Nr   T r,   )ra   EnumKeyOSError)mimedbr[   ctypes      r#   
enum_typesz4MimeTypes._read_windows_registry.<locals>.enum_types  sq      A$#OFA66E 5((#	    EE
 Qs   % 
33 rU   zContent Type)ra   OpenKeyHKEY_CLASSES_ROOT
startswithQueryValueExREG_SZrh   )clsr
   rk   hkcr
subkeynamesubkeymimetypedatatypes           r#   rb   z MimeTypes._read_windows_registry   s   
	 
	 
	 _W6;; 	t(j..  
 z:: 	7f)44S99 %$	7 	7 	7 	7 	7 	7 	7
 .5-A"N.4 .4*(#w~55$	7 	7 	7 	7 	7 	7 	7 !:666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7    H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s|   C!CB7C)C!*)B7CC!B7+C7B;;C>B;?CC!
CC!CC!!C%(C%N)r   TT)__name__
__module____qualname__r$   r
   r   r   r	   r   rP   rc   classmethodrb   r   r%   r#   r   r   8   s        $ $ $ $   "A" A" A" A"F   &   $	$ 	$ 	$ 	$8 8 8 8.2 2 2 2,   [  r%   r   Tc                 d    	 t           t                       t                               | |          S r'   )_dbr   r   )r@   r   s     r#   r   r     s+    " {>>#v&&&r%   c                 d    	 t           t                       t                               | |          S r'   )r~   r   r   r!   r   s     r#   r   r   4  s-     {##D&111r%   c                 d    	 t           t                       t                               | |          S r'   )r~   r   r	   r   s     r#   r	   r	   E  s-    
 {tV,,,r%   c                 f    	 t           t                       t                               | ||          S r'   )r~   r   r
   )r!   r    r   s      r#   r
   r
   U  s-    
 {<<c6***r%   c                 x   da | t          Dt                      }|                                 | t          } nt          t          |           z   } nt          }| D ]6}t          j                            |          r|	                    |           7|j
        a
|j        a|j        d         a|j        d         a|ad S r   )r   r~   r   rc   r   rH   r3   r:   isfiler   r   r   r   r   )filesdbfiles      r#   r   r   f  s     F}[[
  """=EEe,EE  7>>$ 	GGDMMM$MJT"I<&L
CCCr%   c                     	 t          | d          }n# t          $ r Y d S w xY w|5  t                      }|                    |d           |j        d         cd d d            S # 1 swxY w Y   d S )NrM   rN   T)rO   rh   r   rP   r   )r   fr   s      r#   r   r     s    (((   tt	
 " "[[
		!T|D!" " " " " " " " " " " " " " " " " "s    
""1A%%A),A)c                     dddddddxa adddd	d
dxaai ddddddddddddddddddddddddddd dd!dd"dd#d$i d%d&d'd(d)d*d+d*d,d*d-d.d/d0d1d0d2d3d4d3d5d6d7d6d8d6d9d6d:d6d;d<d=d>i d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdPdRdSdTdSdUdVdWdXdYdXdZd[d\d]i d^d_d`dadbdcdddedfdgdhdidjdkdldkdmdndodndpdndqdrdsdtdudvdwdxdydzd{d|i d}d|d~d|dd|ddddddddddddddddddddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddÓddœddǓddɓddɓddɓddɓddΓddГi ddғddғddՓddדddדddדddדddדddדddדddߓddddddddddddddddddddddddddxaadddddddddd	xaad S )Nz.svg.gzz.tar.gzz.tar.bz2z.tar.xz)z.svgzz.tgzz.tazz.tzz.tbz2z.txzgzipcompressbzip2xzbr)z.gzz.Zz.bz2z.xzz.brz.jszapplication/javascriptz.mjsz.jsonzapplication/jsonz.webmanifestzapplication/manifest+jsonz.doczapplication/mswordz.dotz.wizz.nqzapplication/n-quadsz.ntzapplication/n-triplesz.binzapplication/octet-streamz.az.dllz.exez.oz.objz.soz.odazapplication/odaz.pdfzapplication/pdfz.p7czapplication/pkcs7-mimez.pszapplication/postscriptz.aiz.epsz.trigzapplication/trigz.m3uzapplication/vnd.apple.mpegurlz.m3u8z.xlszapplication/vnd.ms-excelz.xlbz.pptzapplication/vnd.ms-powerpointz.potz.ppaz.ppsz.pwzz.wasmzapplication/wasmz.bcpiozapplication/x-bcpioz.cpiozapplication/x-cpioz.cshzapplication/x-cshz.dvizapplication/x-dviz.gtarzapplication/x-gtarz.hdfzapplication/x-hdfz.h5zapplication/x-hdf5z.latexzapplication/x-latexz.mifzapplication/x-mifz.cdfzapplication/x-netcdfz.ncz.p12zapplication/x-pkcs12z.pfxz.ramzapplication/x-pn-realaudioz.pyczapplication/x-python-codez.pyoz.shzapplication/x-shz.sharzapplication/x-sharz.swfzapplication/x-shockwave-flashz.sv4cpiozapplication/x-sv4cpioz.sv4crczapplication/x-sv4crcz.tarzapplication/x-tarz.tclzapplication/x-tclz.texzapplication/x-texz.texizapplication/x-texinfoz.texinfoz.roffzapplication/x-troffz.tz.trz.manzapplication/x-troff-manz.mezapplication/x-troff-mez.mszapplication/x-troff-msz.ustarzapplication/x-ustarz.srczapplication/x-wais-sourcez.xslzapplication/xmlz.rdfz.wsdlz.xpdlz.zipzapplication/zipz.3gpz
audio/3gppz.3gppz.3g2zaudio/3gpp2z.3gpp2z.aacz	audio/aacz.adtsz.loasz.assz.auzaudio/basicz.sndz.mp3z
audio/mpegz.mp2z.opusz
audio/opusz.aifzaudio/x-aiffz.aifcz.aiffz.razaudio/x-pn-realaudioz.wavzaudio/x-wavz.avifz
image/avifz.bmpz	image/bmpz.gifz	image/gifz.iefz	image/ief.jpgz
image/jpegz.jpez.jpegz.heicz
image/heicz.heifz
image/heifz.pngz	image/pngz.svgzimage/svg+xmlz.tiffz
image/tiffz.tifz.icozimage/vnd.microsoft.iconz.raszimage/x-cmu-rasterz.pnmzimage/x-portable-anymapz.pbmzimage/x-portable-bitmapz.pgmzimage/x-portable-graymapz.ppmzimage/x-portable-pixmapz.rgbzimage/x-rgbz.xbmzimage/x-xbitmapz.xpmzimage/x-xpixmapz.xwdzimage/x-xwindowdumpz.emlzmessage/rfc822z.mhtz.mhtmlz.nwsz.cssztext/cssz.csvztext/csvz.htmlz	text/htmlz.htmz.n3ztext/n3z.txtr2   z.batz.cz.hz.kshz.plz.srtz.rtxztext/richtextz.tsvztext/tab-separated-valuesz.vttztext/vttz.pyztext/x-pythonz.etxztext/x-setextz.sgmztext/x-sgmlz.sgmlztext/x-vcardztext/xmlz	video/mp4z
video/mpegzvideo/quicktimez
video/webmzvideo/x-msvideozvideo/x-sgi-movie)z.vcfz.xmlz.mp4z.mpegz.m1vz.mpaz.mpez.mpgz.movz.qtz.webmz.aviz.moviezapplication/rtfz
audio/midiz	image/jpgz
image/pictz
image/webpztext/xul)	z.rtfz.midiz.midr   z.pictz.pctz.picz.webpz.xul)r   r   r   r   r   r   r   r   r   r%   r#   _default_mime_typesr     s6	    (
 (
 
J$ .
 .
 
M*V&
,V&
,V&
 	&V&
 	3	V&

 	(V&
 	(V&
 	(V&
 	)V&
 	+V&
 	.V&
 	.V&
 	.V&
 	.V&
 	.V&
 	.V&
  	.!V&
" 	%#V&
 V&
$ 	%%V&
& 	,'V&
( 	,)V&
* 	,+V&
, 	,-V&
. 	&/V&
0 	31V&
2 	33V&
4 	.5V&
6 	.7V&
8 	39V&
: 	3;V&
< 	3=V&
> 	3?V&
@ 	3AV&
B 	&CV&
D 	)EV&
 V&
 V&
F 	(GV&
H 	'IV&
J 	'KV&
L 	(MV&
N 	'OV&
P 	(QV&
R 	)SV&
T 	'UV&
V 	*WV&
X 	*YV&
Z 	*[V&
\ 	*]V&
^ 	0_V&
` 	/aV&
b 	/cV&
d 	&eV&
f 	(gV&
 V&
 V&
h 	3iV&
j 	+kV&
l 	*mV&
n 	'oV&
p 	'qV&
r 	'sV&
t 	+uV&
v 	+wV&
x 	)yV&
z 	){V&
| 	)}V&
~ 	-V&
@ 	,AV&
B 	,CV&
D 	)EV&
F 	/GV&
H 	%IV&
 V&
 V&
J 	%KV&
L 	%MV&
N 	%OV&
P 	%QV&
R 	LSV&
T 	LUV&
V 	MWV&
X 	MYV&
Z 	K[V&
\ 	K]V&
^ 	K_V&
` 	KaV&
b 	McV&
d 	MeV&
f 	LgV&
h 	LiV&
j 	LkV&
 V&
 V&
l 	NmV&
n 	NoV&
p 	NqV&
r 	*sV&
t 	MuV&
v 	LwV&
x 	KyV&
z 	K{V&
| 	K}V&
~ 	LV&
@ 	LAV&
B 	LCV&
D 	LEV&
F 	LGV&
H 	KIV&
J 	OKV&
L 	LMV&
 V&
 V&
N 	LOV&
P 	.QV&
R 	(SV&
T 	-UV&
V 	-WV&
X 	.YV&
Z 	-[V&
\ 	M]V&
^ 	%_V&
` 	%aV&
b 	)cV&
d 	$eV&
f 	$gV&
h 	$iV&
j 	$kV&
l 	JmV&
n 	JoV&
 V&
 V&
p 	KqV&
r 	KsV&
t 	IuV&
v 	LwV&
x 	LyV&
z 	L{V&
| 	L}V&
~ 	LV&
@ 	LAV&
B 	LCV&
D 	OEV&
F 	/GV&
H 	JIV&
J 	OKV&
L 	OMV&
N 	MOV&
P 	MQV&
 V&
R #     %% %'kV&
 V&
 V&
 V
I"z #
,
 
,
 

L(((r%   c                     dd l } ddfd	}	 |                      t          j        dd          dg d          \  }}n## | j        $ r} |d|           Y d }~nd }~ww xY wd}d}|D ]"\  }}|dv r |d           |d	v rd}|d
v rd}#|D ]o}	|r3t	          |	|          }
|
st          d|	           't          |
           7t          |	|          \  }
}|
st          d|	           ]t          d|
d|           pd S )Nr   a4  Usage: mimetypes.py [options] type

Options:
    --help / -h       -- print this message and exit
    --lenient / -l    -- additionally search of some common, but non-standard
                         types.
    --extension / -e  -- guess extension instead of type

More than one type argument may be given.
rl   c                 p    t                     |rt          |           t          j        |            d S r'   )printsysexit)codemsgUSAGEs     r#   usagez_main.<locals>.usagef  s/    ec


r%   r,   hle)helplenient	extension)z-hz--help)z-lz	--lenient)z-ez--extensionz I don't know anything about typeztype:z	encoding:)rl   )getoptr   argverrorr	   r   r   )r   r   optsargsr   r   r   optarggtypeguessrF   r   s               @r#   _mainr   W  s   MMM
E     
]]38ABB<#C#C#CE E
dd<   a FI  S"""E!HHHH'''FF)))I ? ? 	?#E622E % BEJJJJ,,,,(77OE8 ?% BEJJJJX>>>>? ?s   .> 
AAA__main__rx   r'   )r3   r   r=   urllib.parser5   _winapir   ImportErrorwinregra   __all__r   r   r~   r   r   r   r	   r
   r   r   r   r   ry   r   r%   r#   <module>r      s  2 
			 



        ,8888888 , , ,'+$$$,   GGG   P
 

c c c c c c c cJ' ' ' '.2 2 2 2"- - - - + + + +"   8" " "D
 D
 D
N     +? +? +?\ z	EGGGGG s    $$- 77