@@ -31,81 +31,6 @@ type FileName = Text
3131-- | Individual mime type for be served over the wire.
3232type MimeType = ByteString
3333
34−-- | The default fallback mime type \"application/octet-stream\".
35−defaultMimeType :: MimeType
36−defaultMimeType = "application/octet-stream"
37−
38−-- | A default mapping from filename extension to mime type.
39−--
40−-- taken from snap-core Snap.Util.FileServer
41−defaultMimeMap :: MimeMap
42−defaultMimeMap = Map.fromList [
43− ( "apk" , "application/vnd.android.package-archive" ),
44− ( "asc" , "text/plain" ),
45− ( "asf" , "video/x-ms-asf" ),
46− ( "asx" , "video/x-ms-asf" ),
47− ( "avi" , "video/x-msvideo" ),
48− ( "bz2" , "application/x-bzip" ),
49− ( "c" , "text/plain" ),
50− ( "class" , "application/octet-stream" ),
51− ( "conf" , "text/plain" ),
52− ( "cpp" , "text/plain" ),
53− ( "css" , "text/css" ),
54− ( "cxx" , "text/plain" ),
55− ( "dtd" , "text/xml" ),
56− ( "dvi" , "application/x-dvi" ),
57− ( "epub" , "application/epub+zip" ),
58− ( "gif" , "image/gif" ),
59− ( "gz" , "application/x-gzip" ),
60− ( "hs" , "text/plain" ),
61− ( "htm" , "text/html" ),
62− ( "html" , "text/html" ),
63− ( "ico" , "image/vnd.microsoft.icon" ),
64− ( "jar" , "application/x-java-archive" ),
65− ( "jpeg" , "image/jpeg" ),
66− ( "jpe" , "image/jpeg" ),
67− ( "jpg" , "image/jpeg" ),
68− ( "js" , "text/javascript" ),
69− ( "json" , "application/json" ),
70− ( "log" , "text/plain" ),
71− ( "manifest", "text/cache-manifest" ),
72− ( "m3u" , "audio/x-mpegurl" ),
73− ( "mov" , "video/quicktime" ),
74− ( "mp3" , "audio/mpeg" ),
75− ( "mpeg" , "video/mpeg" ),
76− ( "mpg" , "video/mpeg" ),
77− ( "ogg" , "application/ogg" ),
78− ( "pac" , "application/x-ns-proxy-autoconfig" ),
79− ( "pdf" , "application/pdf" ),
80− ( "png" , "image/png" ),
81− ( "bmp" , "image/bmp" ),
82− ( "ps" , "application/postscript" ),
83− ( "qt" , "video/quicktime" ),
84− ( "sig" , "application/pgp-signature" ),
85− ( "spl" , "application/futuresplash" ),
86− ( "svg" , "image/svg+xml" ),
87− ( "swf" , "application/x-shockwave-flash" ),
88− ( "tar" , "application/x-tar" ),
89− ( "tar.bz2" , "application/x-bzip-compressed-tar" ),
90− ( "tar.gz" , "application/x-tgz" ),
91− ( "tbz" , "application/x-bzip-compressed-tar" ),
92− ( "text" , "text/plain" ),
93− ( "tgz" , "application/x-tgz" ),
94− ( "torrent" , "application/x-bittorrent" ),
95− ( "ttf" , "application/x-font-truetype" ),
96− ( "txt" , "text/plain" ),
97− ( "wav" , "audio/x-wav" ),
98− ( "wax" , "audio/x-ms-wax" ),
99− ( "wma" , "audio/x-ms-wma" ),
100− ( "wmv" , "video/x-ms-wmv" ),
101− ( "woff" , "application/font-woff" ),
102− ( "xbm" , "image/x-xbitmap" ),
103− ( "xhtml" , "application/xhtml+xml" ),
104− ( "xml" , "text/xml" ),
105− ( "xpm" , "image/x-xpixmap" ),
106− ( "xwd" , "image/x-xwindowdump" ),
107− ( "zip" , "application/zip" )]
108−
10934-- | Look up a mime type from the given mime map and default mime type.
11035mimeByExt :: MimeMap
11136 -> MimeType -- ^ default mime type
@@ -129,13 +54,1036 @@ defaultMimeLookup = mimeByExt defaultMimeMap defaultMimeType
12954-- > pieceExtensions "foo.tar.gz" == ["tar.gz", "gz"]
13055fileNameExtensions :: FileName -> [Extension]
13156fileNameExtensions =
132− go
57+ go . first
13358 where
134− go t
59+ first = T.toLower . dropToExt
60+ dropToExt = T.drop 1 . T.dropWhile (/= '.')
61+
62+ go e
13563 | T.null e = []
136− | otherwise = e : go e
64+ | otherwise = e : go next
13765 where
138− e = T.drop 1 $ T.dropWhile (/= '.') t
66+ next = dropToExt e
13967
14068-- | Path extension. May include multiple components, e.g. tar.gz
14169type Extension = Text
70+
71+-- | The default fallback mime type \"application/octet-stream\".
72+defaultMimeType :: MimeType
73+defaultMimeType = "application/octet-stream"
74+
75+-- | A default mapping from filename extension to mime type.
76+--
77+-- Generated from the Apache and nginx mime.types files.
78+defaultMimeMap :: MimeMap
79+defaultMimeMap = Map.fromAscList [
80+ ("123", "application/vnd.lotus-1-2-3")
81+ , ("3dml", "text/vnd.in3d.3dml")
82+ , ("3ds", "image/x-3ds")
83+ , ("3g2", "video/3gpp2")
84+ , ("3gp", "video/3gpp")
85+ , ("3gpp", "video/3gpp")
86+ , ("7z", "application/x-7z-compressed")
87+ , ("aab", "application/x-authorware-bin")
88+ , ("aac", "audio/x-aac")
89+ , ("aam", "application/x-authorware-map")
90+ , ("aas", "application/x-authorware-seg")
91+ , ("abw", "application/x-abiword")
92+ , ("ac", "application/pkix-attr-cert")
93+ , ("acc", "application/vnd.americandynamics.acc")
94+ , ("ace", "application/x-ace-compressed")
95+ , ("acu", "application/vnd.acucobol")
96+ , ("acutc", "application/vnd.acucorp")
97+ , ("adp", "audio/adpcm")
98+ , ("aep", "application/vnd.audiograph")
99+ , ("afm", "application/x-font-type1")
100+ , ("afp", "application/vnd.ibm.modcap")
101+ , ("ahead", "application/vnd.ahead.space")
102+ , ("ai", "application/postscript")
103+ , ("aif", "audio/x-aiff")
104+ , ("aifc", "audio/x-aiff")
105+ , ("aiff", "audio/x-aiff")
106+ , ("air", "application/vnd.adobe.air-application-installer-package+zip")
107+ , ("ait", "application/vnd.dvb.ait")
108+ , ("ami", "application/vnd.amiga.ami")
109+ , ("apk", "application/vnd.android.package-archive")
110+ , ("appcache", "text/cache-manifest")
111+ , ("application", "application/x-ms-application")
112+ , ("apr", "application/vnd.lotus-approach")
113+ , ("arc", "application/x-freearc")
114+ , ("asc", "text/plain")
115+ , ("asf", "video/x-ms-asf")
116+ , ("asm", "text/x-asm")
117+ , ("aso", "application/vnd.accpac.simply.aso")
118+ , ("asx", "video/x-ms-asf")
119+ , ("atc", "application/vnd.acucorp")
120+ , ("atom", "application/atom+xml")
121+ , ("atomcat", "application/atomcat+xml")
122+ , ("atomsvc", "application/atomsvc+xml")
123+ , ("atx", "application/vnd.antix.game-component")
124+ , ("au", "audio/basic")
125+ , ("avi", "video/x-msvideo")
126+ , ("aw", "application/applixware")
127+ , ("azf", "application/vnd.airzip.filesecure.azf")
128+ , ("azs", "application/vnd.airzip.filesecure.azs")
129+ , ("azw", "application/vnd.amazon.ebook")
130+ , ("bat", "application/x-msdownload")
131+ , ("bcpio", "application/x-bcpio")
132+ , ("bdf", "application/x-font-bdf")
133+ , ("bdm", "application/vnd.syncml.dm+wbxml")
134+ , ("bed", "application/vnd.realvnc.bed")
135+ , ("bh2", "application/vnd.fujitsu.oasysprs")
136+ , ("bin", "application/octet-stream")
137+ , ("blb", "application/x-blorb")
138+ , ("blorb", "application/x-blorb")
139+ , ("bmi", "application/vnd.bmi")
140+ , ("bmp", "image/bmp")
141+ , ("book", "application/vnd.framemaker")
142+ , ("box", "application/vnd.previewsystems.box")
143+ , ("boz", "application/x-bzip2")
144+ , ("bpk", "application/octet-stream")
145+ , ("btif", "image/prs.btif")
146+ , ("bz", "application/x-bzip")
147+ , ("bz2", "application/x-bzip")
148+ , ("c", "text/plain")
149+ , ("c11amc", "application/vnd.cluetrust.cartomobile-config")
150+ , ("c11amz", "application/vnd.cluetrust.cartomobile-config-pkg")
151+ , ("c4d", "application/vnd.clonk.c4group")
152+ , ("c4f", "application/vnd.clonk.c4group")
153+ , ("c4g", "application/vnd.clonk.c4group")
154+ , ("c4p", "application/vnd.clonk.c4group")
155+ , ("c4u", "application/vnd.clonk.c4group")
156+ , ("cab", "application/vnd.ms-cab-compressed")
157+ , ("caf", "audio/x-caf")
158+ , ("cap", "application/vnd.tcpdump.pcap")
159+ , ("car", "application/vnd.curl.car")
160+ , ("cat", "application/vnd.ms-pki.seccat")
161+ , ("cb7", "application/x-cbr")
162+ , ("cba", "application/x-cbr")
163+ , ("cbr", "application/x-cbr")
164+ , ("cbt", "application/x-cbr")
165+ , ("cbz", "application/x-cbr")
166+ , ("cc", "text/x-c")
167+ , ("cco", "application/x-cocoa")
168+ , ("cct", "application/x-director")
169+ , ("ccxml", "application/ccxml+xml")
170+ , ("cdbcmsg", "application/vnd.contact.cmsg")
171+ , ("cdf", "application/x-netcdf")
172+ , ("cdkey", "application/vnd.mediastation.cdkey")
173+ , ("cdmia", "application/cdmi-capability")
174+ , ("cdmic", "application/cdmi-container")
175+ , ("cdmid", "application/cdmi-domain")
176+ , ("cdmio", "application/cdmi-object")
177+ , ("cdmiq", "application/cdmi-queue")
178+ , ("cdx", "chemical/x-cdx")
179+ , ("cdxml", "application/vnd.chemdraw+xml")
180+ , ("cdy", "application/vnd.cinderella")
181+ , ("cer", "application/pkix-cert")
182+ , ("cfs", "application/x-cfs-compressed")
183+ , ("cgm", "image/cgm")
184+ , ("chat", "application/x-chat")
185+ , ("chm", "application/vnd.ms-htmlhelp")
186+ , ("chrt", "application/vnd.kde.kchart")
187+ , ("cif", "chemical/x-cif")
188+ , ("cii", "application/vnd.anser-web-certificate-issue-initiation")
189+ , ("cil", "application/vnd.ms-artgalry")
190+ , ("cla", "application/vnd.claymore")
191+ , ("class", "application/java-vm")
192+ , ("clkk", "application/vnd.crick.clicker.keyboard")
193+ , ("clkp", "application/vnd.crick.clicker.palette")
194+ , ("clkt", "application/vnd.crick.clicker.template")
195+ , ("clkw", "application/vnd.crick.clicker.wordbank")
196+ , ("clkx", "application/vnd.crick.clicker")
197+ , ("clp", "application/x-msclip")
198+ , ("cmc", "application/vnd.cosmocaller")
199+ , ("cmdf", "chemical/x-cmdf")
200+ , ("cml", "chemical/x-cml")
201+ , ("cmp", "application/vnd.yellowriver-custom-menu")
202+ , ("cmx", "image/x-cmx")
203+ , ("cod", "application/vnd.rim.cod")
204+ , ("com", "application/x-msdownload")
205+ , ("conf", "text/plain")
206+ , ("cpio", "application/x-cpio")
207+ , ("cpp", "text/plain")
208+ , ("cpt", "application/mac-compactpro")
209+ , ("crd", "application/x-mscardfile")
210+ , ("crl", "application/pkix-crl")
211+ , ("crt", "application/x-x509-ca-cert")
212+ , ("cryptonote", "application/vnd.rig.cryptonote")
213+ , ("csh", "application/x-csh")
214+ , ("csml", "chemical/x-csml")
215+ , ("csp", "application/vnd.commonspace")
216+ , ("css", "text/css")
217+ , ("cst", "application/x-director")
218+ , ("csv", "text/csv")
219+ , ("cu", "application/cu-seeme")
220+ , ("curl", "text/vnd.curl")
221+ , ("cww", "application/prs.cww")
222+ , ("cxt", "application/x-director")
223+ , ("cxx", "text/plain")
224+ , ("dae", "model/vnd.collada+xml")
225+ , ("daf", "application/vnd.mobius.daf")
226+ , ("dart", "application/vnd.dart")
227+ , ("dataless", "application/vnd.fdsn.seed")
228+ , ("davmount", "application/davmount+xml")
229+ , ("dbk", "application/docbook+xml")
230+ , ("dcr", "application/x-director")
231+ , ("dcurl", "text/vnd.curl.dcurl")
232+ , ("dd2", "application/vnd.oma.dd2+xml")
233+ , ("ddd", "application/vnd.fujixerox.ddd")
234+ , ("deb", "application/x-debian-package")
235+ , ("def", "text/plain")
236+ , ("deploy", "application/octet-stream")
237+ , ("der", "application/x-x509-ca-cert")
238+ , ("dfac", "application/vnd.dreamfactory")
239+ , ("dgc", "application/x-dgc-compressed")
240+ , ("dic", "text/x-c")
241+ , ("dir", "application/x-director")
242+ , ("dis", "application/vnd.mobius.dis")
243+ , ("dist", "application/octet-stream")
244+ , ("distz", "application/octet-stream")
245+ , ("djv", "image/vnd.djvu")
246+ , ("djvu", "image/vnd.djvu")
247+ , ("dll", "application/x-msdownload")
248+ , ("dmg", "application/x-apple-diskimage")
249+ , ("dmp", "application/vnd.tcpdump.pcap")
250+ , ("dms", "application/octet-stream")
251+ , ("dna", "application/vnd.dna")
252+ , ("doc", "application/msword")
253+ , ("docm", "application/vnd.ms-word.document.macroenabled.12")
254+ , ("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
255+ , ("dot", "application/msword")
256+ , ("dotm", "application/vnd.ms-word.template.macroenabled.12")
257+ , ("dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template")
258+ , ("dp", "application/vnd.osgi.dp")
259+ , ("dpg", "application/vnd.dpgraph")
260+ , ("dra", "audio/vnd.dra")
261+ , ("dsc", "text/prs.lines.tag")
262+ , ("dssc", "application/dssc+der")
263+ , ("dtb", "application/x-dtbook+xml")
264+ , ("dtd", "application/xml-dtd")
265+ , ("dts", "audio/vnd.dts")
266+ , ("dtshd", "audio/vnd.dts.hd")
267+ , ("dump", "application/octet-stream")
268+ , ("dvb", "video/vnd.dvb.file")
269+ , ("dvi", "application/x-dvi")
270+ , ("dwf", "model/vnd.dwf")
271+ , ("dwg", "image/vnd.dwg")
272+ , ("dxf", "image/vnd.dxf")
273+ , ("dxp", "application/vnd.spotfire.dxp")
274+ , ("dxr", "application/x-director")
275+ , ("ear", "application/java-archive")
276+ , ("ecelp4800", "audio/vnd.nuera.ecelp4800")
277+ , ("ecelp7470", "audio/vnd.nuera.ecelp7470")
278+ , ("ecelp9600", "audio/vnd.nuera.ecelp9600")
279+ , ("ecma", "application/ecmascript")
280+ , ("edm", "application/vnd.novadigm.edm")
281+ , ("edx", "application/vnd.novadigm.edx")
282+ , ("efif", "application/vnd.picsel")
283+ , ("ei6", "application/vnd.pg.osasli")
284+ , ("elc", "application/octet-stream")
285+ , ("emf", "application/x-msmetafile")
286+ , ("eml", "message/rfc822")
287+ , ("emma", "application/emma+xml")
288+ , ("emz", "application/x-msmetafile")
289+ , ("eol", "audio/vnd.digital-winds")
290+ , ("eot", "application/vnd.ms-fontobject")
291+ , ("eps", "application/postscript")
292+ , ("epub", "application/epub+zip")
293+ , ("es3", "application/vnd.eszigno3+xml")
294+ , ("esa", "application/vnd.osgi.subsystem")
295+ , ("esf", "application/vnd.epson.esf")
296+ , ("et3", "application/vnd.eszigno3+xml")
297+ , ("etx", "text/x-setext")
298+ , ("eva", "application/x-eva")
299+ , ("evy", "application/x-envoy")
300+ , ("exe", "application/x-msdownload")
301+ , ("exi", "application/exi")
302+ , ("ext", "application/vnd.novadigm.ext")
303+ , ("ez", "application/andrew-inset")
304+ , ("ez2", "application/vnd.ezpix-album")
305+ , ("ez3", "application/vnd.ezpix-package")
306+ , ("f", "text/x-fortran")
307+ , ("f4v", "video/x-f4v")
308+ , ("f77", "text/x-fortran")
309+ , ("f90", "text/x-fortran")
310+ , ("fbs", "image/vnd.fastbidsheet")
311+ , ("fcdt", "application/vnd.adobe.formscentral.fcdt")
312+ , ("fcs", "application/vnd.isac.fcs")
313+ , ("fdf", "application/vnd.fdf")
314+ , ("fe_launch", "application/vnd.denovo.fcselayout-link")
315+ , ("fg5", "application/vnd.fujitsu.oasysgp")
316+ , ("fgd", "application/x-director")
317+ , ("fh", "image/x-freehand")
318+ , ("fh4", "image/x-freehand")
319+ , ("fh5", "image/x-freehand")
320+ , ("fh7", "image/x-freehand")
321+ , ("fhc", "image/x-freehand")
322+ , ("fig", "application/x-xfig")
323+ , ("flac", "audio/x-flac")
324+ , ("fli", "video/x-fli")
325+ , ("flo", "application/vnd.micrografx.flo")
326+ , ("flv", "video/x-flv")
327+ , ("flw", "application/vnd.kde.kivio")
328+ , ("flx", "text/vnd.fmi.flexstor")
329+ , ("fly", "text/vnd.fly")
330+ , ("fm", "application/vnd.framemaker")
331+ , ("fnc", "application/vnd.frogans.fnc")
332+ , ("for", "text/x-fortran")
333+ , ("fpx", "image/vnd.fpx")
334+ , ("frame", "application/vnd.framemaker")
335+ , ("fsc", "application/vnd.fsc.weblaunch")
336+ , ("fst", "image/vnd.fst")
337+ , ("ftc", "application/vnd.fluxtime.clip")
338+ , ("fti", "application/vnd.anser-web-funds-transfer-initiation")
339+ , ("fvt", "video/vnd.fvt")
340+ , ("fxp", "application/vnd.adobe.fxp")
341+ , ("fxpl", "application/vnd.adobe.fxp")
342+ , ("fzs", "application/vnd.fuzzysheet")
343+ , ("g2w", "application/vnd.geoplan")
344+ , ("g3", "image/g3fax")
345+ , ("g3w", "application/vnd.geospace")
346+ , ("gac", "application/vnd.groove-account")
347+ , ("gam", "application/x-tads")
348+ , ("gbr", "application/rpki-ghostbusters")
349+ , ("gca", "application/x-gca-compressed")
350+ , ("gdl", "model/vnd.gdl")
351+ , ("geo", "application/vnd.dynageo")
352+ , ("gex", "application/vnd.geometry-explorer")
353+ , ("ggb", "application/vnd.geogebra.file")
354+ , ("ggt", "application/vnd.geogebra.tool")
355+ , ("ghf", "application/vnd.groove-help")
356+ , ("gif", "image/gif")
357+ , ("gim", "application/vnd.groove-identity-message")
358+ , ("gml", "application/gml+xml")
359+ , ("gmx", "application/vnd.gmx")
360+ , ("gnumeric", "application/x-gnumeric")
361+ , ("gph", "application/vnd.flographit")
362+ , ("gpx", "application/gpx+xml")
363+ , ("gqf", "application/vnd.grafeq")
364+ , ("gqs", "application/vnd.grafeq")
365+ , ("gram", "application/srgs")
366+ , ("gramps", "application/x-gramps-xml")
367+ , ("gre", "application/vnd.geometry-explorer")
368+ , ("grv", "application/vnd.groove-injector")
369+ , ("grxml", "application/srgs+xml")
370+ , ("gsf", "application/x-font-ghostscript")
371+ , ("gtar", "application/x-gtar")
372+ , ("gtm", "application/vnd.groove-tool-message")
373+ , ("gtw", "model/vnd.gtw")
374+ , ("gv", "text/vnd.graphviz")
375+ , ("gxf", "application/gxf")
376+ , ("gxt", "application/vnd.geonext")
377+ , ("gz", "application/x-gzip")
378+ , ("h", "text/x-c")
379+ , ("h261", "video/h261")
380+ , ("h263", "video/h263")
381+ , ("h264", "video/h264")
382+ , ("hal", "application/vnd.hal+xml")
383+ , ("hbci", "application/vnd.hbci")
384+ , ("hdf", "application/x-hdf")
385+ , ("hh", "text/x-c")
386+ , ("hlp", "application/winhlp")
387+ , ("hpgl", "application/vnd.hp-hpgl")
388+ , ("hpid", "application/vnd.hp-hpid")
389+ , ("hps", "application/vnd.hp-hps")
390+ , ("hqx", "application/mac-binhex40")
391+ , ("hs", "text/plain")
392+ , ("htc", "text/x-component")
393+ , ("htke", "application/vnd.kenameaapp")
394+ , ("htm", "text/html")
395+ , ("html", "text/html")
396+ , ("hvd", "application/vnd.yamaha.hv-dic")
397+ , ("hvp", "application/vnd.yamaha.hv-voice")
398+ , ("hvs", "application/vnd.yamaha.hv-script")
399+ , ("i2g", "application/vnd.intergeo")
400+ , ("icc", "application/vnd.iccprofile")
401+ , ("ice", "x-conference/x-cooltalk")
402+ , ("icm", "application/vnd.iccprofile")
403+ , ("ico", "image/vnd.microsoft.icon")
404+ , ("ics", "text/calendar")
405+ , ("ief", "image/ief")
406+ , ("ifb", "text/calendar")
407+ , ("ifm", "application/vnd.shana.informed.formdata")
408+ , ("iges", "model/iges")
409+ , ("igl", "application/vnd.igloader")
410+ , ("igm", "application/vnd.insors.igm")
411+ , ("igs", "model/iges")
412+ , ("igx", "application/vnd.micrografx.igx")
413+ , ("iif", "application/vnd.shana.informed.interchange")
414+ , ("img", "application/octet-stream")
415+ , ("imp", "application/vnd.accpac.simply.imp")
416+ , ("ims", "application/vnd.ms-ims")
417+ , ("in", "text/plain")
418+ , ("ink", "application/inkml+xml")
419+ , ("inkml", "application/inkml+xml")
420+ , ("install", "application/x-install-instructions")
421+ , ("iota", "application/vnd.astraea-software.iota")
422+ , ("ipfix", "application/ipfix")
423+ , ("ipk", "application/vnd.shana.informed.package")
424+ , ("irm", "application/vnd.ibm.rights-management")
425+ , ("irp", "application/vnd.irepository.package+xml")
426+ , ("iso", "application/x-iso9660-image")
427+ , ("itp", "application/vnd.shana.informed.formtemplate")
428+ , ("ivp", "application/vnd.immervision-ivp")
429+ , ("ivu", "application/vnd.immervision-ivu")
430+ , ("jad", "text/vnd.sun.j2me.app-descriptor")
431+ , ("jam", "application/vnd.jam")
432+ , ("jar", "application/java-archive")
433+ , ("jardiff", "application/x-java-archive-diff")
434+ , ("java", "text/x-java-source")
435+ , ("jisp", "application/vnd.jisp")
436+ , ("jlt", "application/vnd.hp-jlyt")
437+ , ("jng", "image/x-jng")
438+ , ("jnlp", "application/x-java-jnlp-file")
439+ , ("joda", "application/vnd.joost.joda-archive")
440+ , ("jpe", "image/jpeg")
441+ , ("jpeg", "image/jpeg")
442+ , ("jpg", "image/jpeg")
443+ , ("jpgm", "video/jpm")
444+ , ("jpgv", "video/jpeg")
445+ , ("jpm", "video/jpm")
446+ , ("js", "application/javascript")
447+ , ("json", "application/json")
448+ , ("jsonml", "application/jsonml+json")
449+ , ("kar", "audio/midi")
450+ , ("karbon", "application/vnd.kde.karbon")
451+ , ("kfo", "application/vnd.kde.kformula")
452+ , ("kia", "application/vnd.kidspiration")
453+ , ("kml", "application/vnd.google-earth.kml+xml")
454+ , ("kmz", "application/vnd.google-earth.kmz")
455+ , ("kne", "application/vnd.kinar")
456+ , ("knp", "application/vnd.kinar")
457+ , ("kon", "application/vnd.kde.kontour")
458+ , ("kpr", "application/vnd.kde.kpresenter")
459+ , ("kpt", "application/vnd.kde.kpresenter")
460+ , ("kpxx", "application/vnd.ds-keypoint")
461+ , ("ksp", "application/vnd.kde.kspread")
462+ , ("ktr", "application/vnd.kahootz")
463+ , ("ktx", "image/ktx")
464+ , ("ktz", "application/vnd.kahootz")
465+ , ("kwd", "application/vnd.kde.kword")
466+ , ("kwt", "application/vnd.kde.kword")
467+ , ("lasxml", "application/vnd.las.las+xml")
468+ , ("latex", "application/x-latex")
469+ , ("lbd", "application/vnd.llamagraphics.life-balance.desktop")
470+ , ("lbe", "application/vnd.llamagraphics.life-balance.exchange+xml")
471+ , ("les", "application/vnd.hhe.lesson-player")
472+ , ("lha", "application/x-lzh-compressed")
473+ , ("link66", "application/vnd.route66.link66+xml")
474+ , ("list", "text/plain")
475+ , ("list3820", "application/vnd.ibm.modcap")
476+ , ("listafp", "application/vnd.ibm.modcap")
477+ , ("lnk", "application/x-ms-shortcut")
478+ , ("log", "text/plain")
479+ , ("lostxml", "application/lost+xml")
480+ , ("lrf", "application/octet-stream")
481+ , ("lrm", "application/vnd.ms-lrm")
482+ , ("ltf", "application/vnd.frogans.ltf")
483+ , ("lvp", "audio/vnd.lucent.voice")
484+ , ("lwp", "application/vnd.lotus-wordpro")
485+ , ("lzh", "application/x-lzh-compressed")
486+ , ("m13", "application/x-msmediaview")
487+ , ("m14", "application/x-msmediaview")
488+ , ("m1v", "video/mpeg")
489+ , ("m21", "application/mp21")
490+ , ("m2a", "audio/mpeg")
491+ , ("m2v", "video/mpeg")
492+ , ("m3a", "audio/mpeg")
493+ , ("m3u", "audio/x-mpegurl")
494+ , ("m3u8", "application/vnd.apple.mpegurl")
495+ , ("m4a", "audio/x-m4a")
496+ , ("m4u", "video/vnd.mpegurl")
497+ , ("m4v", "video/x-m4v")
498+ , ("ma", "application/mathematica")
499+ , ("mads", "application/mads+xml")
500+ , ("mag", "application/vnd.ecowin.chart")
501+ , ("maker", "application/vnd.framemaker")
502+ , ("man", "text/troff")
503+ , ("manifest", "text/cache-manifest")
504+ , ("mar", "application/octet-stream")
505+ , ("mathml", "application/mathml+xml")
506+ , ("mb", "application/mathematica")
507+ , ("mbk", "application/vnd.mobius.mbk")
508+ , ("mbox", "application/mbox")
509+ , ("mc1", "application/vnd.medcalcdata")
510+ , ("mcd", "application/vnd.mcd")
511+ , ("mcurl", "text/vnd.curl.mcurl")
512+ , ("mdb", "application/x-msaccess")
513+ , ("mdi", "image/vnd.ms-modi")
514+ , ("me", "text/troff")
515+ , ("mesh", "model/mesh")
516+ , ("meta4", "application/metalink4+xml")
517+ , ("metalink", "application/metalink+xml")
518+ , ("mets", "application/mets+xml")
519+ , ("mfm", "application/vnd.mfmp")
520+ , ("mft", "application/rpki-manifest")
521+ , ("mgp", "application/vnd.osgeo.mapguide.package")
522+ , ("mgz", "application/vnd.proteus.magazine")
523+ , ("mid", "audio/midi")
524+ , ("midi", "audio/midi")
525+ , ("mie", "application/x-mie")
526+ , ("mif", "application/vnd.mif")
527+ , ("mime", "message/rfc822")
528+ , ("mj2", "video/mj2")
529+ , ("mjp2", "video/mj2")
530+ , ("mk3d", "video/x-matroska")
531+ , ("mka", "audio/x-matroska")
532+ , ("mks", "video/x-matroska")
533+ , ("mkv", "video/x-matroska")
534+ , ("mlp", "application/vnd.dolby.mlp")
535+ , ("mmd", "application/vnd.chipnuts.karaoke-mmd")
536+ , ("mmf", "application/vnd.smaf")
537+ , ("mml", "text/mathml")
538+ , ("mmr", "image/vnd.fujixerox.edmics-mmr")
539+ , ("mng", "video/x-mng")
540+ , ("mny", "application/x-msmoney")
541+ , ("mobi", "application/x-mobipocket-ebook")
542+ , ("mods", "application/mods+xml")
543+ , ("mov", "video/quicktime")
544+ , ("movie", "video/x-sgi-movie")
545+ , ("mp2", "audio/mpeg")
546+ , ("mp21", "application/mp21")
547+ , ("mp2a", "audio/mpeg")
548+ , ("mp3", "audio/mpeg")
549+ , ("mp4", "video/mp4")
550+ , ("mp4a", "audio/mp4")
551+ , ("mp4s", "application/mp4")
552+ , ("mp4v", "video/mp4")
553+ , ("mpc", "application/vnd.mophun.certificate")
554+ , ("mpe", "video/mpeg")
555+ , ("mpeg", "video/mpeg")
556+ , ("mpg", "video/mpeg")
557+ , ("mpg4", "video/mp4")
558+ , ("mpga", "audio/mpeg")
559+ , ("mpkg", "application/vnd.apple.installer+xml")
560+ , ("mpm", "application/vnd.blueice.multipass")
561+ , ("mpn", "application/vnd.mophun.application")
562+ , ("mpp", "application/vnd.ms-project")
563+ , ("mpt", "application/vnd.ms-project")
564+ , ("mpy", "application/vnd.ibm.minipay")
565+ , ("mqy", "application/vnd.mobius.mqy")
566+ , ("mrc", "application/marc")
567+ , ("mrcx", "application/marcxml+xml")
568+ , ("ms", "text/troff")
569+ , ("mscml", "application/mediaservercontrol+xml")
570+ , ("mseed", "application/vnd.fdsn.mseed")
571+ , ("mseq", "application/vnd.mseq")
572+ , ("msf", "application/vnd.epson.msf")
573+ , ("msh", "model/mesh")
574+ , ("msi", "application/x-msdownload")
575+ , ("msl", "application/vnd.mobius.msl")
576+ , ("msm", "application/octet-stream")
577+ , ("msp", "application/octet-stream")
578+ , ("msty", "application/vnd.muvee.style")
579+ , ("mts", "model/vnd.mts")
580+ , ("mus", "application/vnd.musician")
581+ , ("musicxml", "application/vnd.recordare.musicxml+xml")
582+ , ("mvb", "application/x-msmediaview")
583+ , ("mwf", "application/vnd.mfer")
584+ , ("mxf", "application/mxf")
585+ , ("mxl", "application/vnd.recordare.musicxml")
586+ , ("mxml", "application/xv+xml")
587+ , ("mxs", "application/vnd.triscape.mxs")
588+ , ("mxu", "video/vnd.mpegurl")
589+ , ("n-gage", "application/vnd.nokia.n-gage.symbian.install")
590+ , ("n3", "text/n3")
591+ , ("nb", "application/mathematica")
592+ , ("nbp", "application/vnd.wolfram.player")
593+ , ("nc", "application/x-netcdf")
594+ , ("ncx", "application/x-dtbncx+xml")
595+ , ("nfo", "text/x-nfo")
596+ , ("ngdat", "application/vnd.nokia.n-gage.data")
597+ , ("nitf", "application/vnd.nitf")
598+ , ("nlu", "application/vnd.neurolanguage.nlu")
599+ , ("nml", "application/vnd.enliven")
600+ , ("nnd", "application/vnd.noblenet-directory")
601+ , ("nns", "application/vnd.noblenet-sealer")
602+ , ("nnw", "application/vnd.noblenet-web")
603+ , ("npx", "image/vnd.net-fpx")
604+ , ("nsc", "application/x-conference")
605+ , ("nsf", "application/vnd.lotus-notes")
606+ , ("ntf", "application/vnd.nitf")
607+ , ("nzb", "application/x-nzb")
608+ , ("oa2", "application/vnd.fujitsu.oasys2")
609+ , ("oa3", "application/vnd.fujitsu.oasys3")
610+ , ("oas", "application/vnd.fujitsu.oasys")
611+ , ("obd", "application/x-msbinder")
612+ , ("obj", "application/x-tgif")
613+ , ("oda", "application/oda")
614+ , ("odb", "application/vnd.oasis.opendocument.database")
615+ , ("odc", "application/vnd.oasis.opendocument.chart")
616+ , ("odf", "application/vnd.oasis.opendocument.formula")
617+ , ("odft", "application/vnd.oasis.opendocument.formula-template")
618+ , ("odg", "application/vnd.oasis.opendocument.graphics")
619+ , ("odi", "application/vnd.oasis.opendocument.image")
620+ , ("odm", "application/vnd.oasis.opendocument.text-master")
621+ , ("odp", "application/vnd.oasis.opendocument.presentation")
622+ , ("ods", "application/vnd.oasis.opendocument.spreadsheet")
623+ , ("odt", "application/vnd.oasis.opendocument.text")
624+ , ("oga", "audio/ogg")
625+ , ("ogg", "audio/ogg")
626+ , ("ogv", "video/ogg")
627+ , ("ogx", "application/ogg")
628+ , ("omdoc", "application/omdoc+xml")
629+ , ("onepkg", "application/onenote")
630+ , ("onetmp", "application/onenote")
631+ , ("onetoc", "application/onenote")
632+ , ("onetoc2", "application/onenote")
633+ , ("opf", "application/oebps-package+xml")
634+ , ("opml", "text/x-opml")
635+ , ("oprc", "application/vnd.palm")
636+ , ("org", "application/vnd.lotus-organizer")
637+ , ("osf", "application/vnd.yamaha.openscoreformat")
638+ , ("osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml")
639+ , ("otc", "application/vnd.oasis.opendocument.chart-template")
640+ , ("otf", "application/x-font-otf")
641+ , ("otg", "application/vnd.oasis.opendocument.graphics-template")
642+ , ("oth", "application/vnd.oasis.opendocument.text-web")
643+ , ("oti", "application/vnd.oasis.opendocument.image-template")
644+ , ("otp", "application/vnd.oasis.opendocument.presentation-template")
645+ , ("ots", "application/vnd.oasis.opendocument.spreadsheet-template")
646+ , ("ott", "application/vnd.oasis.opendocument.text-template")
647+ , ("oxps", "application/oxps")
648+ , ("oxt", "application/vnd.openofficeorg.extension")
649+ , ("p", "text/x-pascal")
650+ , ("p10", "application/pkcs10")
651+ , ("p12", "application/x-pkcs12")
652+ , ("p7b", "application/x-pkcs7-certificates")
653+ , ("p7c", "application/pkcs7-mime")
654+ , ("p7m", "application/pkcs7-mime")
655+ , ("p7r", "application/x-pkcs7-certreqresp")
656+ , ("p7s", "application/pkcs7-signature")
657+ , ("p8", "application/pkcs8")
658+ , ("pac", "application/x-ns-proxy-autoconfig")
659+ , ("pas", "text/x-pascal")
660+ , ("paw", "application/vnd.pawaafile")
661+ , ("pbd", "application/vnd.powerbuilder6")
662+ , ("pbm", "image/x-portable-bitmap")
663+ , ("pcap", "application/vnd.tcpdump.pcap")
664+ , ("pcf", "application/x-font-pcf")
665+ , ("pcl", "application/vnd.hp-pcl")
666+ , ("pclxl", "application/vnd.hp-pclxl")
667+ , ("pct", "image/x-pict")
668+ , ("pcurl", "application/vnd.curl.pcurl")
669+ , ("pcx", "image/x-pcx")
670+ , ("pdb", "application/vnd.palm")
671+ , ("pdf", "application/pdf")
672+ , ("pem", "application/x-x509-ca-cert")
673+ , ("pfa", "application/x-font-type1")
674+ , ("pfb", "application/x-font-type1")
675+ , ("pfm", "application/x-font-type1")
676+ , ("pfr", "application/font-tdpfr")
677+ , ("pfx", "application/x-pkcs12")
678+ , ("pgm", "image/x-portable-graymap")
679+ , ("pgn", "application/x-chess-pgn")
680+ , ("pgp", "application/pgp-encrypted")
681+ , ("pic", "image/x-pict")
682+ , ("pkg", "application/octet-stream")
683+ , ("pki", "application/pkixcmp")
684+ , ("pkipath", "application/pkix-pkipath")
685+ , ("pl", "application/x-perl")
686+ , ("plb", "application/vnd.3gpp.pic-bw-large")
687+ , ("plc", "application/vnd.mobius.plc")
688+ , ("plf", "application/vnd.pocketlearn")
689+ , ("pls", "application/pls+xml")
690+ , ("pm", "application/x-perl")
691+ , ("pml", "application/vnd.ctc-posml")
692+ , ("png", "image/png")
693+ , ("pnm", "image/x-portable-anymap")
694+ , ("portpkg", "application/vnd.macports.portpkg")
695+ , ("pot", "application/vnd.ms-powerpoint")
696+ , ("potm", "application/vnd.ms-powerpoint.template.macroenabled.12")
697+ , ("potx", "application/vnd.openxmlformats-officedocument.presentationml.template")
698+ , ("ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12")
699+ , ("ppd", "application/vnd.cups-ppd")
700+ , ("ppm", "image/x-portable-pixmap")
701+ , ("pps", "application/vnd.ms-powerpoint")
702+ , ("ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12")
703+ , ("ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow")
704+ , ("ppt", "application/vnd.ms-powerpoint")
705+ , ("pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12")
706+ , ("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation")
707+ , ("pqa", "application/vnd.palm")
708+ , ("prc", "application/x-mobipocket-ebook")
709+ , ("pre", "application/vnd.lotus-freelance")
710+ , ("prf", "application/pics-rules")
711+ , ("ps", "application/postscript")
712+ , ("psb", "application/vnd.3gpp.pic-bw-small")
713+ , ("psd", "image/vnd.adobe.photoshop")
714+ , ("psf", "application/x-font-linux-psf")
715+ , ("pskcxml", "application/pskc+xml")
716+ , ("ptid", "application/vnd.pvi.ptid1")
717+ , ("pub", "application/x-mspublisher")
718+ , ("pvb", "application/vnd.3gpp.pic-bw-var")
719+ , ("pwn", "application/vnd.3m.post-it-notes")
720+ , ("pya", "audio/vnd.ms-playready.media.pya")
721+ , ("pyv", "video/vnd.ms-playready.media.pyv")
722+ , ("qam", "application/vnd.epson.quickanime")
723+ , ("qbo", "application/vnd.intu.qbo")
724+ , ("qfx", "application/vnd.intu.qfx")
725+ , ("qps", "application/vnd.publishare-delta-tree")
726+ , ("qt", "video/quicktime")
727+ , ("qwd", "application/vnd.quark.quarkxpress")
728+ , ("qwt", "application/vnd.quark.quarkxpress")
729+ , ("qxb", "application/vnd.quark.quarkxpress")
730+ , ("qxd", "application/vnd.quark.quarkxpress")
731+ , ("qxl", "application/vnd.quark.quarkxpress")
732+ , ("qxt", "application/vnd.quark.quarkxpress")
733+ , ("ra", "audio/x-pn-realaudio")
734+ , ("ram", "audio/x-pn-realaudio")
735+ , ("rar", "application/x-rar-compressed")
736+ , ("ras", "image/x-cmu-raster")
737+ , ("rcprofile", "application/vnd.ipunplugged.rcprofile")
738+ , ("rdf", "application/rdf+xml")
739+ , ("rdz", "application/vnd.data-vision.rdz")
740+ , ("rep", "application/vnd.businessobjects")
741+ , ("res", "application/x-dtbresource+xml")
742+ , ("rgb", "image/x-rgb")
743+ , ("rif", "application/reginfo+xml")
744+ , ("rip", "audio/vnd.rip")
745+ , ("ris", "application/x-research-info-systems")
746+ , ("rl", "application/resource-lists+xml")
747+ , ("rlc", "image/vnd.fujixerox.edmics-rlc")
748+ , ("rld", "application/resource-lists-diff+xml")
749+ , ("rm", "application/vnd.rn-realmedia")
750+ , ("rmi", "audio/midi")
751+ , ("rmp", "audio/x-pn-realaudio-plugin")
752+ , ("rms", "application/vnd.jcp.javame.midlet-rms")
753+ , ("rmvb", "application/vnd.rn-realmedia-vbr")
754+ , ("rnc", "application/relax-ng-compact-syntax")
755+ , ("roa", "application/rpki-roa")
756+ , ("roff", "text/troff")
757+ , ("rp9", "application/vnd.cloanto.rp9")
758+ , ("rpm", "application/x-redhat-package-manager")
759+ , ("rpss", "application/vnd.nokia.radio-presets")
760+ , ("rpst", "application/vnd.nokia.radio-preset")
761+ , ("rq", "application/sparql-query")
762+ , ("rs", "application/rls-services+xml")
763+ , ("rsd", "application/rsd+xml")
764+ , ("rss", "application/rss+xml")
765+ , ("rtf", "application/rtf")
766+ , ("rtx", "text/richtext")
767+ , ("run", "application/x-makeself")
768+ , ("s", "text/x-asm")
769+ , ("s3m", "audio/s3m")
770+ , ("saf", "application/vnd.yamaha.smaf-audio")
771+ , ("sbml", "application/sbml+xml")
772+ , ("sc", "application/vnd.ibm.secure-container")
773+ , ("scd", "application/x-msschedule")
774+ , ("scm", "application/vnd.lotus-screencam")
775+ , ("scq", "application/scvp-cv-request")
776+ , ("scs", "application/scvp-cv-response")
777+ , ("scurl", "text/vnd.curl.scurl")
778+ , ("sda", "application/vnd.stardivision.draw")
779+ , ("sdc", "application/vnd.stardivision.calc")
780+ , ("sdd", "application/vnd.stardivision.impress")
781+ , ("sdkd", "application/vnd.solent.sdkm+xml")
782+ , ("sdkm", "application/vnd.solent.sdkm+xml")
783+ , ("sdp", "application/sdp")
784+ , ("sdw", "application/vnd.stardivision.writer")
785+ , ("sea", "application/x-sea")
786+ , ("see", "application/vnd.seemail")
787+ , ("seed", "application/vnd.fdsn.seed")
788+ , ("sema", "application/vnd.sema")
789+ , ("semd", "application/vnd.semd")
790+ , ("semf", "application/vnd.semf")
791+ , ("ser", "application/java-serialized-object")
792+ , ("setpay", "application/set-payment-initiation")
793+ , ("setreg", "application/set-registration-initiation")
794+ , ("sfd-hdstx", "application/vnd.hydrostatix.sof-data")
795+ , ("sfs", "application/vnd.spotfire.sfs")
796+ , ("sfv", "text/x-sfv")
797+ , ("sgi", "image/sgi")
798+ , ("sgl", "application/vnd.stardivision.writer-global")
799+ , ("sgm", "text/sgml")
800+ , ("sgml", "text/sgml")
801+ , ("sh", "application/x-sh")
802+ , ("shar", "application/x-shar")
803+ , ("shf", "application/shf+xml")
804+ , ("shtml", "text/html")
805+ , ("sid", "image/x-mrsid-image")
806+ , ("sig", "application/pgp-signature")
807+ , ("sil", "audio/silk")
808+ , ("silo", "model/mesh")
809+ , ("sis", "application/vnd.symbian.install")
810+ , ("sisx", "application/vnd.symbian.install")
811+ , ("sit", "application/x-stuffit")
812+ , ("sitx", "application/x-stuffitx")
813+ , ("skd", "application/vnd.koan")
814+ , ("skm", "application/vnd.koan")
815+ , ("skp", "application/vnd.koan")
816+ , ("skt", "application/vnd.koan")
817+ , ("sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12")
818+ , ("sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide")
819+ , ("slt", "application/vnd.epson.salt")
820+ , ("sm", "application/vnd.stepmania.stepchart")
821+ , ("smf", "application/vnd.stardivision.math")
822+ , ("smi", "application/smil+xml")
823+ , ("smil", "application/smil+xml")
824+ , ("smv", "video/x-smv")
825+ , ("smzip", "application/vnd.stepmania.package")
826+ , ("snd", "audio/basic")
827+ , ("snf", "application/x-font-snf")
828+ , ("so", "application/octet-stream")
829+ , ("spc", "application/x-pkcs7-certificates")
830+ , ("spf", "application/vnd.yamaha.smaf-phrase")
831+ , ("spl", "application/futuresplash")
832+ , ("spot", "text/vnd.in3d.spot")
833+ , ("spp", "application/scvp-vp-response")
834+ , ("spq", "application/scvp-vp-request")
835+ , ("spx", "audio/ogg")
836+ , ("sql", "application/x-sql")
837+ , ("src", "application/x-wais-source")
838+ , ("srt", "application/x-subrip")
839+ , ("sru", "application/sru+xml")
840+ , ("srx", "application/sparql-results+xml")
841+ , ("ssdl", "application/ssdl+xml")
842+ , ("sse", "application/vnd.kodak-descriptor")
843+ , ("ssf", "application/vnd.epson.ssf")
844+ , ("ssml", "application/ssml+xml")
845+ , ("st", "application/vnd.sailingtracker.track")
846+ , ("stc", "application/vnd.sun.xml.calc.template")
847+ , ("std", "application/vnd.sun.xml.draw.template")
848+ , ("stf", "application/vnd.wt.stf")
849+ , ("sti", "application/vnd.sun.xml.impress.template")
850+ , ("stk", "application/hyperstudio")
851+ , ("stl", "application/vnd.ms-pki.stl")
852+ , ("str", "application/vnd.pg.format")
853+ , ("stw", "application/vnd.sun.xml.writer.template")
854+ , ("sub", "text/vnd.dvb.subtitle")
855+ , ("sus", "application/vnd.sus-calendar")
856+ , ("susp", "application/vnd.sus-calendar")
857+ , ("sv4cpio", "application/x-sv4cpio")
858+ , ("sv4crc", "application/x-sv4crc")
859+ , ("svc", "application/vnd.dvb.service")
860+ , ("svd", "application/vnd.svd")
861+ , ("svg", "image/svg+xml")
862+ , ("svgz", "image/svg+xml")
863+ , ("swa", "application/x-director")
864+ , ("swf", "application/x-shockwave-flash")
865+ , ("swi", "application/vnd.aristanetworks.swi")
866+ , ("sxc", "application/vnd.sun.xml.calc")
867+ , ("sxd", "application/vnd.sun.xml.draw")
868+ , ("sxg", "application/vnd.sun.xml.writer.global")
869+ , ("sxi", "application/vnd.sun.xml.impress")
870+ , ("sxm", "application/vnd.sun.xml.math")
871+ , ("sxw", "application/vnd.sun.xml.writer")
872+ , ("t", "text/troff")
873+ , ("t3", "application/x-t3vm-image")
874+ , ("taglet", "application/vnd.mynfc")
875+ , ("tao", "application/vnd.tao.intent-module-archive")
876+ , ("tar", "application/x-tar")
877+ , ("tar.bz2", "application/x-bzip-compressed-tar")
878+ , ("tar.gz", "application/x-tgz")
879+ , ("tbz", "application/x-bzip-compressed-tar")
880+ , ("tcap", "application/vnd.3gpp2.tcap")
881+ , ("tcl", "application/x-tcl")
882+ , ("teacher", "application/vnd.smart.teacher")
883+ , ("tei", "application/tei+xml")
884+ , ("teicorpus", "application/tei+xml")
885+ , ("tex", "application/x-tex")
886+ , ("texi", "application/x-texinfo")
887+ , ("texinfo", "application/x-texinfo")
888+ , ("text", "text/plain")
889+ , ("tfi", "application/thraud+xml")
890+ , ("tfm", "application/x-tex-tfm")
891+ , ("tga", "image/x-tga")
892+ , ("tgz", "application/x-tgz")
893+ , ("thmx", "application/vnd.ms-officetheme")
894+ , ("tif", "image/tiff")
895+ , ("tiff", "image/tiff")
896+ , ("tk", "application/x-tcl")
897+ , ("tmo", "application/vnd.tmobile-livetv")
898+ , ("torrent", "application/x-bittorrent")
899+ , ("tpl", "application/vnd.groove-tool-template")
900+ , ("tpt", "application/vnd.trid.tpt")
901+ , ("tr", "text/troff")
902+ , ("tra", "application/vnd.trueapp")
903+ , ("trm", "application/x-msterminal")
904+ , ("tsd", "application/timestamped-data")
905+ , ("tsv", "text/tab-separated-values")
906+ , ("ttc", "application/x-font-ttf")
907+ , ("ttf", "application/x-font-ttf")
908+ , ("ttl", "text/turtle")
909+ , ("twd", "application/vnd.simtech-mindmapper")
910+ , ("twds", "application/vnd.simtech-mindmapper")
911+ , ("txd", "application/vnd.genomatix.tuxedo")
912+ , ("txf", "application/vnd.mobius.txf")
913+ , ("txt", "text/plain")
914+ , ("u32", "application/x-authorware-bin")
915+ , ("udeb", "application/x-debian-package")
916+ , ("ufd", "application/vnd.ufdl")
917+ , ("ufdl", "application/vnd.ufdl")
918+ , ("ulx", "application/x-glulx")
919+ , ("umj", "application/vnd.umajin")
920+ , ("unityweb", "application/vnd.unity")
921+ , ("uoml", "application/vnd.uoml+xml")
922+ , ("uri", "text/uri-list")
923+ , ("uris", "text/uri-list")
924+ , ("urls", "text/uri-list")
925+ , ("ustar", "application/x-ustar")
926+ , ("utz", "application/vnd.uiq.theme")
927+ , ("uu", "text/x-uuencode")
928+ , ("uva", "audio/vnd.dece.audio")
929+ , ("uvd", "application/vnd.dece.data")
930+ , ("uvf", "application/vnd.dece.data")
931+ , ("uvg", "image/vnd.dece.graphic")
932+ , ("uvh", "video/vnd.dece.hd")
933+ , ("uvi", "image/vnd.dece.graphic")
934+ , ("uvm", "video/vnd.dece.mobile")
935+ , ("uvp", "video/vnd.dece.pd")
936+ , ("uvs", "video/vnd.dece.sd")
937+ , ("uvt", "application/vnd.dece.ttml+xml")
938+ , ("uvu", "video/vnd.uvvu.mp4")
939+ , ("uvv", "video/vnd.dece.video")
940+ , ("uvva", "audio/vnd.dece.audio")
941+ , ("uvvd", "application/vnd.dece.data")
942+ , ("uvvf", "application/vnd.dece.data")
943+ , ("uvvg", "image/vnd.dece.graphic")
944+ , ("uvvh", "video/vnd.dece.hd")
945+ , ("uvvi", "image/vnd.dece.graphic")
946+ , ("uvvm", "video/vnd.dece.mobile")
947+ , ("uvvp", "video/vnd.dece.pd")
948+ , ("uvvs", "video/vnd.dece.sd")
949+ , ("uvvt", "application/vnd.dece.ttml+xml")
950+ , ("uvvu", "video/vnd.uvvu.mp4")
951+ , ("uvvv", "video/vnd.dece.video")
952+ , ("uvvx", "application/vnd.dece.unspecified")
953+ , ("uvvz", "application/vnd.dece.zip")
954+ , ("uvx", "application/vnd.dece.unspecified")
955+ , ("uvz", "application/vnd.dece.zip")
956+ , ("vcard", "text/vcard")
957+ , ("vcd", "application/x-cdlink")
958+ , ("vcf", "text/x-vcard")
959+ , ("vcg", "application/vnd.groove-vcard")
960+ , ("vcs", "text/x-vcalendar")
961+ , ("vcx", "application/vnd.vcx")
962+ , ("vis", "application/vnd.visionary")
963+ , ("viv", "video/vnd.vivo")
964+ , ("vob", "video/x-ms-vob")
965+ , ("vor", "application/vnd.stardivision.writer")
966+ , ("vox", "application/x-authorware-bin")
967+ , ("vrml", "model/vrml")
968+ , ("vsd", "application/vnd.visio")
969+ , ("vsf", "application/vnd.vsf")
970+ , ("vss", "application/vnd.visio")
971+ , ("vst", "application/vnd.visio")
972+ , ("vsw", "application/vnd.visio")
973+ , ("vtu", "model/vnd.vtu")
974+ , ("vxml", "application/voicexml+xml")
975+ , ("w3d", "application/x-director")
976+ , ("wad", "application/x-doom")
977+ , ("war", "application/java-archive")
978+ , ("wav", "audio/x-wav")
979+ , ("wax", "audio/x-ms-wax")
980+ , ("wbmp", "image/vnd.wap.wbmp")
981+ , ("wbs", "application/vnd.criticaltools.wbs+xml")
982+ , ("wbxml", "application/vnd.wap.wbxml")
983+ , ("wcm", "application/vnd.ms-works")
984+ , ("wdb", "application/vnd.ms-works")
985+ , ("wdp", "image/vnd.ms-photo")
986+ , ("weba", "audio/webm")
987+ , ("webm", "video/webm")
988+ , ("webp", "image/webp")
989+ , ("wg", "application/vnd.pmi.widget")
990+ , ("wgt", "application/widget")
991+ , ("wks", "application/vnd.ms-works")
992+ , ("wm", "video/x-ms-wm")
993+ , ("wma", "audio/x-ms-wma")
994+ , ("wmd", "application/x-ms-wmd")
995+ , ("wmf", "application/x-msmetafile")
996+ , ("wml", "text/vnd.wap.wml")
997+ , ("wmlc", "application/vnd.wap.wmlc")
998+ , ("wmls", "text/vnd.wap.wmlscript")
999+ , ("wmlsc", "application/vnd.wap.wmlscriptc")
1000+ , ("wmv", "video/x-ms-wmv")
1001+ , ("wmx", "video/x-ms-wmx")
1002+ , ("wmz", "application/x-msmetafile")
1003+ , ("woff", "application/font-woff")
1004+ , ("wpd", "application/vnd.wordperfect")
1005+ , ("wpl", "application/vnd.ms-wpl")
1006+ , ("wps", "application/vnd.ms-works")
1007+ , ("wqd", "application/vnd.wqd")
1008+ , ("wri", "application/x-mswrite")
1009+ , ("wrl", "model/vrml")
1010+ , ("wsdl", "application/wsdl+xml")
1011+ , ("wspolicy", "application/wspolicy+xml")
1012+ , ("wtb", "application/vnd.webturbo")
1013+ , ("wvx", "video/x-ms-wvx")
1014+ , ("x32", "application/x-authorware-bin")
1015+ , ("x3d", "model/x3d+xml")
1016+ , ("x3db", "model/x3d+binary")
1017+ , ("x3dbz", "model/x3d+binary")
1018+ , ("x3dv", "model/x3d+vrml")
1019+ , ("x3dvz", "model/x3d+vrml")
1020+ , ("x3dz", "model/x3d+xml")
1021+ , ("xaml", "application/xaml+xml")
1022+ , ("xap", "application/x-silverlight-app")
1023+ , ("xar", "application/vnd.xara")
1024+ , ("xbap", "application/x-ms-xbap")
1025+ , ("xbd", "application/vnd.fujixerox.docuworks.binder")
1026+ , ("xbm", "image/x-xbitmap")
1027+ , ("xdf", "application/xcap-diff+xml")
1028+ , ("xdm", "application/vnd.syncml.dm+xml")
1029+ , ("xdp", "application/vnd.adobe.xdp+xml")
1030+ , ("xdssc", "application/dssc+xml")
1031+ , ("xdw", "application/vnd.fujixerox.docuworks")
1032+ , ("xenc", "application/xenc+xml")
1033+ , ("xer", "application/patch-ops-error+xml")
1034+ , ("xfdf", "application/vnd.adobe.xfdf")
1035+ , ("xfdl", "application/vnd.xfdl")
1036+ , ("xht", "application/xhtml+xml")
1037+ , ("xhtml", "application/xhtml+xml")
1038+ , ("xhvml", "application/xv+xml")
1039+ , ("xif", "image/vnd.xiff")
1040+ , ("xla", "application/vnd.ms-excel")
1041+ , ("xlam", "application/vnd.ms-excel.addin.macroenabled.12")
1042+ , ("xlc", "application/vnd.ms-excel")
1043+ , ("xlf", "application/x-xliff+xml")
1044+ , ("xlm", "application/vnd.ms-excel")
1045+ , ("xls", "application/vnd.ms-excel")
1046+ , ("xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12")
1047+ , ("xlsm", "application/vnd.ms-excel.sheet.macroenabled.12")
1048+ , ("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
1049+ , ("xlt", "application/vnd.ms-excel")
1050+ , ("xltm", "application/vnd.ms-excel.template.macroenabled.12")
1051+ , ("xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template")
1052+ , ("xlw", "application/vnd.ms-excel")
1053+ , ("xm", "audio/xm")
1054+ , ("xml", "text/xml")
1055+ , ("xo", "application/vnd.olpc-sugar")
1056+ , ("xop", "application/xop+xml")
1057+ , ("xpi", "application/x-xpinstall")
1058+ , ("xpl", "application/xproc+xml")
1059+ , ("xpm", "image/x-xpixmap")
1060+ , ("xpr", "application/vnd.is-xpr")
1061+ , ("xps", "application/vnd.ms-xpsdocument")
1062+ , ("xpw", "application/vnd.intercon.formnet")
1063+ , ("xpx", "application/vnd.intercon.formnet")
1064+ , ("xsl", "application/xml")
1065+ , ("xslt", "application/xslt+xml")
1066+ , ("xsm", "application/vnd.syncml+xml")
1067+ , ("xspf", "application/xspf+xml")
1068+ , ("xul", "application/vnd.mozilla.xul+xml")
1069+ , ("xvm", "application/xv+xml")
1070+ , ("xvml", "application/xv+xml")
1071+ , ("xwd", "image/x-xwindowdump")
1072+ , ("xyz", "chemical/x-xyz")
1073+ , ("xz", "application/x-xz")
1074+ , ("yang", "application/yang")
1075+ , ("yin", "application/yin+xml")
1076+ , ("z1", "application/x-zmachine")
1077+ , ("z2", "application/x-zmachine")
1078+ , ("z3", "application/x-zmachine")
1079+ , ("z4", "application/x-zmachine")
1080+ , ("z5", "application/x-zmachine")
1081+ , ("z6", "application/x-zmachine")
1082+ , ("z7", "application/x-zmachine")
1083+ , ("z8", "application/x-zmachine")
1084+ , ("zaz", "application/vnd.zzazz.deck+xml")
1085+ , ("zip", "application/zip")
1086+ , ("zir", "application/vnd.zul")
1087+ , ("zirz", "application/vnd.zul")
1088+ , ("zmm", "application/vnd.handheld-entertainment+xml")
1089+ ]