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