Marcel
Constants
EXTENSIONS = {"123" => "application/vnd.lotus-1-2-3", "3dml" => "text/vnd.in3d.3dml", "3ds" => "image/x-3ds", "3fr" => "image/x-raw-hasselblad", "3g2" => "video/3gpp2", "3gp" => "video/3gpp", "3mf" => "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", "4th" => "text/x-forth", "7z" => "application/x-7z-compressed", "a" => "application/x-archive", "aab" => "application/x-authorware-bin", "aac" => "audio/x-aac", "aam" => "application/x-authorware-map", "aart" => "text/plain", "aas" => "application/x-authorware-seg", "abw" => "application/x-abiword", "ac" => "text/plain", "ac3" => "audio/ac3", "acc" => "application/vnd.americandynamics.acc", "accdb" => "application/x-msaccess", "ace" => "application/x-ace-compressed", "acfm" => "application/x-font-adobe-metric", "acu" => "application/vnd.acucobol", "acutc" => "application/vnd.acucorp", "ad" => "text/x-asciidoc", "ad.txt" => "text/x-asciidoc", "ada" => "text/x-ada", "adb" => "text/x-ada", "adf" => "application/x-amiga-disk-format", "adoc" => "text/x-asciidoc", "adoc.txt" => "text/x-asciidoc", "adp" => "audio/adpcm", "ads" => "text/x-ada", "aep" => "application/vnd.adobe.aftereffects.project", "aet" => "application/vnd.adobe.aftereffects.template", "afm" => "application/x-font-adobe-metric", "afp" => "application/vnd.ibm.modcap", "ai" => "application/illustrator", "aif" => "audio/x-aiff", "aifc" => "audio/x-aiff", "aiff" => "audio/x-aiff", "air" => "application/vnd.adobe.air-application-installer-package+zip", "aj" => "text/x-aspectj", "al" => "text/x-perl", "am" => "text/plain", "amf" => "application/x-amf", "amfm" => "application/x-font-adobe-metric", "ami" => "application/vnd.amiga.ami", "amr" => "audio/amr", "anpa" => "text/vnd.iptc.anpa", "apk" => "application/vnd.android.package-archive", "applescript" => "text/x-applescript", "application" => "application/x-ms-application", "apr" => "application/vnd.lotus-approach", "apt" => "text/plain", "ar" => "application/x-archive", "arc" => "application/x-internet-archive", "arj" => "application/x-arj", "arw" => "image/x-raw-sony", "as" => "text/x-actionscript", "asc" => "application/pgp-signature", "asciidoc" => "text/x-asciidoc", "asf" => "video/x-ms-asf", "asice" => "application/vnd.etsi.asic-e+zip", "asics" => "application/vnd.etsi.asic-s+zip", "asm" => "text/x-assembly", "asnd" => "audio/vnd.adobe.soundbooth", "aso" => "application/vnd.accpac.simply.aso", "asp" => "text/asp", "aspx" => "text/aspdotnet", "asx" => "application/x-ms-asx", "atc" => "application/vnd.acucorp", "atom" => "application/atom+xml", "atomcat" => "application/atomcat+xml", "atomsvc" => "application/atomsvc+xml", "atx" => "application/vnd.antix.game-component", "au" => "audio/basic", "avi" => "video/x-msvideo", "avif" => "image/avif", "aw" => "application/applixware", "awk" => "text/x-awk", "axx" => "application/x-axcrypt", "azf" => "application/vnd.airzip.filesecure.azf", "azs" => "application/vnd.airzip.filesecure.azs", "azw" => "application/vnd.amazon.ebook", "bas" => "text/x-basic", "bash" => "application/x-sh", "bat" => "application/x-bat", "bau" => "application/vnd.openofficeorg.autotext", "bay" => "image/x-raw-casio", "bcpio" => "application/x-bcpio", "bdf" => "application/x-font-bdf", "bdm" => "application/vnd.syncml.dm+wbxml", "bh2" => "application/vnd.fujitsu.oasysprs", "bib" => "application/x-bibtex-text-file", "bibtex" => "application/x-bibtex-text-file", "bin" => "application/octet-stream", "bmi" => "application/vnd.bmi", "bmp" => "image/bmp", "book" => "application/vnd.framemaker", "box" => "application/vnd.previewsystems.box", "boz" => "application/x-bzip2", "bpg" => "image/x-bpg", "bpk" => "application/octet-stream", "bpm" => "application/bizagi-modeler", "br" => "application/x-brotli", "brotli" => "application/x-brotli", "bsh" => "text/plain", "btif" => "image/prs.btif", "bup" => "application/x-dvd-ifo", "bz" => "application/x-bzip", "bz2" => "application/x-bzip2", "c" => "text/x-c++src", "c++" => "text/x-c++src", "c4d" => "application/vnd.clonk.c4group", "c4f" => "application/vnd.clonk.c4group", "c4g" => "application/vnd.clonk.c4group", "c4p" => "application/vnd.clonk.c4group", "c4u" => "application/vnd.clonk.c4group", "cab" => "application/vnd.ms-cab-compressed", "caf" => "audio/x-caf", "cap" => "application/vnd.tcpdump.pcap", "car" => "application/vnd.curl.car", "cat" => "application/vnd.ms-pki.seccat", "cbl" => "text/x-cobol", "cbor" => "application/cbor", "cc" => "text/x-c++src", "cct" => "application/x-director", "ccxml" => "application/ccxml+xml", "cda" => "application/x-cdf", "cdbcmsg" => "application/vnd.contact.cmsg", "cdf" => "application/x-netcdf", "cdkey" => "application/vnd.mediastation.cdkey", "cdr" => "application/coreldraw", "cdx" => "chemical/x-cdx", "cdxml" => "application/vnd.chemdraw+xml", "cdy" => "application/vnd.cinderella", "cel" => "image/vnd.dgn", "cer" => "application/pkix-cert", "cfc" => "text/x-coldfusion", "cfg" => "text/x-config", "cfm" => "text/x-coldfusion", "cfml" => "text/x-coldfusion", "cgi" => "text/x-cgi", "cgm" => "image/cgm", "chat" => "application/x-chat", "chm" => "application/vnd.ms-htmlhelp", "chrt" => "application/vnd.kde.kchart", "cif" => "chemical/x-cif", "cii" => "application/vnd.anser-web-certificate-issue-initiation", "cil" => "application/vnd.ms-artgalry", "cl" => "text/x-common-lisp", "cla" => "application/vnd.claymore", "class" => "application/java-vm", "classpath" => "text/plain", "clj" => "text/x-clojure", "clkk" => "application/vnd.crick.clicker.keyboard", "clkp" => "application/vnd.crick.clicker.palette", "clkt" => "application/vnd.crick.clicker.template", "clkw" => "application/vnd.crick.clicker.wordbank", "clkx" => "application/vnd.crick.clicker", "clp" => "application/x-msclip", "cls" => "text/x-vbasic", "cmc" => "application/vnd.cosmocaller", "cmd" => "application/x-bat", "cmdf" => "chemical/x-cmdf", "cml" => "chemical/x-cml", "cmp" => "application/vnd.yellowriver-custom-menu", "cmx" => "image/x-cmx", "cnd" => "text/plain", "cob" => "text/x-cobol", "cod" => "application/vnd.rim.cod", "coffee" => "text/x-coffeescript", "com" => "application/x-msdownload", "conf" => "text/x-config", "config" => "text/x-config", "cpio" => "application/x-cpio", "cpp" => "text/x-c++src", "cpt" => "application/mac-compactpro", "cr2" => "image/x-canon-cr2", "cr3" => "image/x-canon-cr3", "crd" => "application/x-mscardfile", "crl" => "application/pkix-crl", "crt" => "application/x-x509-cert", "crw" => "image/x-raw-canon", "crx" => "application/x-chrome-package", "cs" => "text/x-csharp", "csh" => "application/x-csh", "csml" => "chemical/x-csml", "csp" => "application/vnd.commonspace", "css" => "text/css", "cst" => "application/x-director", "csv" => "text/csv", "cu" => "application/cu-seeme", "curl" => "text/vnd.curl", "cwiki" => "text/plain", "cwk" => "application/x-appleworks", "cww" => "application/prs.cww", "cxt" => "application/x-director", "cxx" => "text/x-c++src", "d" => "text/x-d", "daf" => "application/vnd.mobius.daf", "data" => "text/plain", "dataless" => "application/vnd.fdsn.seed", "davmount" => "application/davmount+xml", "dbase" => "application/x-dbf", "dbase3" => "application/x-dbf", "dbf" => "application/x-dbf", "dcl" => "text/plain", "dcr" => "application/x-director", "dcs" => "image/x-raw-kodak", "dcurl" => "text/vnd.curl.dcurl", "dcx" => "image/vnd.zbrush.dcx", "dd2" => "application/vnd.oma.dd2+xml", "ddd" => "application/vnd.fujixerox.ddd", "deb" => "application/x-debian-package", "def" => "text/plain", "deploy" => "application/octet-stream", "der" => "application/x-x509-cert;format=der", "dex" => "application/x-dex", "dfac" => "application/vnd.dreamfactory", "dgn" => "image/vnd.dgn", "dgnlib" => "image/vnd.dgn", "dib" => "image/bmp", "dif" => "application/dif+xml", "diff" => "text/x-diff", "dir" => "application/x-director", "dis" => "application/vnd.mobius.dis", "dist" => "application/octet-stream", "distz" => "application/octet-stream", "dita" => "application/dita+xml;format=topic", "ditamap" => "application/dita+xml;format=map", "ditaval" => "application/dita+xml;format=val", "djv" => "image/vnd.djvu", "djvu" => "image/vnd.djvu", "dll" => "application/x-msdownload", "dmg" => "application/x-apple-diskimage", "dmp" => "application/vnd.tcpdump.pcap", "dms" => "application/octet-stream", "dna" => "application/vnd.dna", "dng" => "image/x-raw-adobe", "do" => "application/x-stata-do", "doc" => "application/msword", "docm" => "application/vnd.ms-word.document.macroenabled.12", "docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "dot" => "application/msword", "dotm" => "application/vnd.ms-word.template.macroenabled.12", "dotx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dp" => "application/vnd.osgi.dp", "dpg" => "application/vnd.dpgraph", "dpr" => "text/x-pascal", "dpx" => "image/x-dpx", "drc" => "video/x-dirac", "drf" => "image/x-raw-kodak", "dsc" => "text/prs.lines.tag", "dsp" => "text/plain", "dsw" => "text/plain", "dta" => "application/x-stata-dta", "dtb" => "application/x-dtbook+xml", "dtd" => "application/xml-dtd", "dts" => "audio/vnd.dts", "dtshd" => "audio/vnd.dts.hd", "dump" => "application/octet-stream", "dvi" => "application/x-dvi", "dwf" => "model/vnd.dwf", "dwfx" => "model/vnd.dwfx+xps", "dwg" => "image/vnd.dwg", "dxb" => "image/vnd.dxb", "dxf" => "image/vnd.dxf", "dxp" => "application/vnd.spotfire.dxp", "dxr" => "application/x-director", "e" => "text/x-eiffel", "e57" => "model/e57", "ear" => "application/x-tika-java-enterprise-archive", "ecelp4800" => "audio/vnd.nuera.ecelp4800", "ecelp7470" => "audio/vnd.nuera.ecelp7470", "ecelp9600" => "audio/vnd.nuera.ecelp9600", "ecma" => "application/ecmascript", "edm" => "application/vnd.novadigm.edm", "edx" => "application/vnd.novadigm.edx", "efif" => "application/vnd.picsel", "egrm" => "text/plain", "ei6" => "application/vnd.pg.osasli", "el" => "text/x-emacs-lisp", "elc" => "application/octet-stream", "emf" => "image/emf", "eml" => "message/rfc822", "emlx" => "message/x-emlx", "emma" => "application/emma+xml", "emz" => "image/x-emf-compressed", "enr" => "application/x-endnote-refer", "ens" => "application/x-endnote-style", "ent" => "text/plain", "enw" => "application/x-endnote-refer", "eol" => "audio/vnd.digital-winds", "eot" => "application/vnd.ms-fontobject", "eps" => "application/postscript", "epsf" => "application/postscript", "epsi" => "application/postscript", "epub" => "application/epub+zip", "erf" => "image/x-raw-epson", "erl" => "text/x-erlang", "es3" => "application/vnd.eszigno3+xml", "esf" => "application/vnd.epson.esf", "et3" => "application/vnd.eszigno3+xml", "etx" => "text/x-setext", "exe" => "application/x-dosexec", "exp" => "text/x-expect", "exr" => "image/aces", "ext" => "application/vnd.novadigm.ext", "ez" => "application/andrew-inset", "ez2" => "application/vnd.ezpix-album", "ez3" => "application/vnd.ezpix-package", "f" => "text/x-fortran", "f4v" => "video/x-f4v", "f77" => "text/x-fortran", "f90" => "text/x-fortran", "fb2" => "application/x-fictionbook+xml", "fbs" => "image/vnd.fastbidsheet", "fcs" => "application/vnd.isac.fcs", "fdf" => "application/vnd.fdf", "fe_launch" => "application/vnd.denovo.fcselayout-link", "fff" => "image/x-raw-imacon", "fg5" => "application/vnd.fujitsu.oasysgp", "fgd" => "application/x-director", "fh" => "image/x-freehand", "fh10" => "image/x-freehand", "fh11" => "image/x-freehand", "fh12" => "image/x-freehand", "fh4" => "image/x-freehand", "fh40" => "image/x-freehand", "fh5" => "image/x-freehand", "fh50" => "image/x-freehand", "fh7" => "image/x-freehand", "fh8" => "image/x-freehand", "fh9" => "image/x-freehand", "fhc" => "image/x-freehand", "fig" => "application/x-xfig", "fit" => "application/fits", "fits" => "application/fits", "flac" => "audio/x-flac", "flc" => "video/x-flc", "fli" => "video/x-fli", "flo" => "application/vnd.micrografx.flo", "flv" => "video/x-flv", "flw" => "application/vnd.kde.kivio", "flx" => "text/vnd.fmi.flexstor", "fly" => "text/vnd.fly", "fm" => "application/vnd.framemaker", "fn" => "text/plain", "fnc" => "application/vnd.frogans.fnc", "fo" => "application/xslfo+xml", "fodp" => "application/vnd.oasis.opendocument.flat.presentation", "fods" => "application/vnd.oasis.opendocument.flat.spreadsheet", "fodt" => "application/vnd.oasis.opendocument.flat.text", "for" => "text/x-fortran", "fp7" => "application/x-filemaker", "fpx" => "image/vnd.fpx", "frame" => "application/vnd.framemaker", "frm" => "text/x-vbasic", "fsc" => "application/vnd.fsc.weblaunch", "fst" => "image/vnd.fst", "ft" => "text/plain", "ft10" => "image/x-freehand", "ft11" => "image/x-freehand", "ft12" => "image/x-freehand", "ft7" => "image/x-freehand", "ft8" => "image/x-freehand", "ft9" => "image/x-freehand", "ftc" => "application/vnd.fluxtime.clip", "fti" => "application/vnd.anser-web-funds-transfer-initiation", "fts" => "application/fits", "fv" => "text/plain", "fvt" => "video/vnd.fvt", "fzs" => "application/vnd.fuzzysheet", "g" => "text/plain", "g3" => "image/g3fax", "gac" => "application/vnd.groove-account", "gdl" => "model/vnd.gdl", "geo" => "application/vnd.dynageo", "gex" => "application/vnd.geometry-explorer", "ggb" => "application/vnd.geogebra.file", "ggt" => "application/vnd.geogebra.tool", "ghf" => "application/vnd.groove-help", "gif" => "image/gif", "gim" => "application/vnd.groove-identity-message", "gmx" => "application/vnd.gmx", "gnucash" => "application/x-gnucash", "gnumeric" => "application/x-gnumeric", "go" => "text/x-go", "gp4" => "application/x-guitar-pro", "gpg" => "application/pgp-encrypted", "gph" => "application/vnd.flographit", "gpkg" => "application/x-geopackage", "gpx" => "application/gpx+xml", "gqf" => "application/vnd.grafeq", "gqs" => "application/vnd.grafeq", "gram" => "application/srgs", "grb" => "application/x-grib", "grb1" => "application/x-grib", "grb2" => "application/x-grib", "gre" => "application/vnd.geometry-explorer", "grm" => "text/plain", "groovy" => "text/x-groovy", "grv" => "application/vnd.groove-injector", "grxml" => "application/srgs+xml", "gsf" => "application/x-font-ghostscript", "gsheet" => "application/vnd.google-apps.spreadsheet", "gslib" => "audio/x-psf", "gtar" => "application/x-gtar", "gtm" => "application/vnd.groove-tool-message", "gtw" => "model/vnd.gtw", "gv" => "text/vnd.graphviz", "gz" => "application/gzip", "h" => "text/x-c++hdr", "h++" => "text/x-c++hdr", "h261" => "video/h261", "h263" => "video/h263", "h264" => "video/h264", "h5" => "application/x-hdf", "haml" => "text/x-haml", "handlers" => "text/plain", "hbci" => "application/vnd.hbci", "hdf" => "application/x-hdf", "hdr" => "application/envi.hdr", "he5" => "application/x-hdf", "heic" => "image/heic", "heif" => "image/heif", "hfa" => "application/x-erdas-hfa", "hh" => "text/x-c++hdr", "hlp" => "application/winhlp", "hp" => "text/x-c++hdr", "hpgl" => "application/vnd.hp-hpgl", "hpid" => "application/vnd.hp-hpid", "hpp" => "text/x-c++hdr", "hprof" => "application/vnd.java.hprof", "hprof.txt" => "application/vnd.java.hprof.text", "hps" => "application/vnd.hp-hps", "hqx" => "application/mac-binhex40", "hs" => "text/x-haskell", "htc" => "text/plain", "htke" => "application/vnd.kenameaapp", "htm" => "text/html", "html" => "text/html", "hvd" => "application/vnd.yamaha.hv-dic", "hvp" => "application/vnd.yamaha.hv-voice", "hvs" => "application/vnd.yamaha.hv-script", "hwpx" => "application/hwp+zip", "hx" => "text/x-haxe", "hxx" => "text/x-c++hdr", "i3" => "text/x-modula", "ibooks" => "application/x-ibooks+zip", "icb" => "image/x-tga", "icc" => "application/vnd.iccprofile", "ice" => "x-conference/x-cooltalk", "icm" => "application/vnd.iccprofile", "icns" => "image/icns", "ico" => "image/vnd.microsoft.icon", "ics" => "text/calendar", "idl" => "text/x-idl", "idml" => "application/vnd.adobe.indesign-idml-package", "ief" => "image/ief", "ifb" => "text/calendar", "ifm" => "application/vnd.shana.informed.formdata", "ifo" => "application/x-dvd-ifo", "ig" => "text/x-modula", "iges" => "model/iges", "igl" => "application/vnd.igloader", "igs" => "model/iges", "igx" => "application/vnd.micrografx.igx", "ihtml" => "text/plain", "iif" => "application/vnd.shana.informed.interchange", "iiq" => "image/x-raw-phaseone", "imp" => "application/vnd.accpac.simply.imp", "ims" => "application/vnd.ms-ims", "in" => "text/plain", "indd" => "application/x-adobe-indesign", "ini" => "text/x-ini", "inx" => "application/x-adobe-indesign-interchange", "ipa" => "application/x-itunes-ipa", "ipk" => "application/vnd.shana.informed.package", "irm" => "application/vnd.ibm.rights-management", "irp" => "application/vnd.irepository.package+xml", "iso" => "application/x-iso9660-image", "iso19139" => "text/iso19139+xml", "itk" => "text/x-tcl", "itp" => "application/vnd.shana.informed.formtemplate", "ivp" => "application/vnd.immervision-ivp", "ivu" => "application/vnd.immervision-ivu", "j2c" => "image/x-jp2-codestream", "jad" => "text/vnd.sun.j2me.app-descriptor", "jam" => "application/vnd.jam", "jar" => "application/java-archive", "java" => "text/x-java-source", "jb2" => "image/x-jbig2", "jbig2" => "image/x-jbig2", "jdf" => "application/x-jeol-jdf", "jfi" => "image/jpeg", "jfif" => "image/jpeg", "jif" => "image/jpeg", "jisp" => "application/vnd.jisp", "jks" => "application/x-java-keystore", "jl" => "text/x-common-lisp", "jlt" => "application/vnd.hp-jlyt", "jmx" => "text/plain", "jng" => "video/x-jng", "jnilib" => "application/x-java-jnilib", "jnlp" => "application/x-java-jnlp-file", "joda" => "application/vnd.joost.joda-archive", "jp2" => "image/jp2", "jpe" => "image/jpeg", "jpeg" => "image/jpeg", "jpf" => "image/jpx", "jpg" => "image/jpeg", "jpgm" => "image/jpm", "jpgv" => "video/jpeg", "jpm" => "image/jpm", "js" => "text/javascript", "json" => "application/json", "jsp" => "text/x-jsp", "junit" => "text/plain", "jx" => "text/plain", "jxl" => "image/jxl", "k25" => "image/x-raw-kodak", "kar" => "audio/midi", "karbon" => "application/vnd.kde.karbon", "kdc" => "image/x-raw-kodak", "key" => "application/vnd.apple.keynote", "kfo" => "application/vnd.kde.kformula", "kia" => "application/vnd.kidspiration", "kil" => "application/x-killustrator", "kml" => "application/vnd.google-earth.kml+xml", "kmz" => "application/vnd.google-earth.kmz", "kne" => "application/vnd.kinar", "knp" => "application/vnd.kinar", "kon" => "application/vnd.kde.kontour", "kpr" => "application/vnd.kde.kpresenter", "kpt" => "application/vnd.kde.kpresenter", "ksp" => "application/vnd.kde.kspread", "ktr" => "application/vnd.kahootz", "ktz" => "application/vnd.kahootz", "kwd" => "application/vnd.kde.kword", "kwt" => "application/vnd.kde.kword", "l" => "text/x-lex", "las" => "application/x-asprs", "latex" => "application/x-latex", "laz" => "application/x-asprs", "lbd" => "application/vnd.llamagraphics.life-balance.desktop", "lbe" => "application/vnd.llamagraphics.life-balance.exchange+xml", "les" => "application/vnd.hhe.lesson-player", "less" => "text/x-less", "lha" => "application/octet-stream", "lhs" => "text/x-haskell", "link66" => "application/vnd.route66.link66+xml", "lisp" => "text/x-common-lisp", "list" => "text/plain", "list3820" => "application/vnd.ibm.modcap", "listafp" => "application/vnd.ibm.modcap", "log" => "text/x-log", "lostxml" => "application/lost+xml", "lrf" => "application/octet-stream", "lrm" => "application/vnd.ms-lrm", "lsp" => "text/x-common-lisp", "ltf" => "application/vnd.frogans.ltf", "lua" => "text/x-lua", "lvp" => "audio/vnd.lucent.voice", "lwp" => "application/vnd.lotus-wordpro", "lyr" => "application/x-esri-layer", "lz" => "application/x-lzip", "lz4" => "application/x-lz4", "lzh" => "application/octet-stream", "lzma" => "application/x-lzma", "m" => "text/x-objcsrc", "m13" => "application/x-msmediaview", "m14" => "application/x-msmediaview", "m1v" => "video/mpeg", "m2a" => "audio/mpeg", "m2v" => "video/mpeg", "m3" => "text/x-modula", "m3a" => "audio/mpeg", "m3u" => "audio/x-mpegurl", "m3u8" => "application/vnd.apple.mpegurl", "m4" => "text/plain", "m4a" => "audio/mp4", "m4b" => "audio/mp4", "m4s" => "video/iso.segment", "m4u" => "video/vnd.mpegurl", "m4v" => "video/x-m4v", "ma" => "application/mathematica", "mag" => "application/vnd.ecowin.chart", "maker" => "application/vnd.framemaker", "man" => "text/troff", "manifest" => "text/plain", "markdown" => "text/markdown", "mat" => "application/x-matlab-data", "mathml" => "application/mathml+xml", "mb" => "application/mathematica", "mbk" => "application/vnd.mobius.mbk", "mbox" => "application/mbox", "mc1" => "application/vnd.medcalcdata", "mcd" => "application/vnd.mcd", "mcurl" => "text/vnd.curl.mcurl", "md" => "text/markdown", "mdb" => "application/x-msaccess", "mdi" => "image/vnd.ms-modi", "mdo" => "text/plain", "mdtext" => "text/markdown", "me" => "text/troff", "mef" => "image/x-raw-mamiya", "memgraph" => "application/x-memgraph", "mesh" => "model/mesh", "meta" => "text/plain", "mf" => "text/plain", "mfm" => "application/vnd.mfmp", "mg" => "text/x-modula", "mgz" => "application/vnd.proteus.magazine", "mht" => "multipart/related", "mhtml" => "multipart/related", "mid" => "audio/midi", "midi" => "audio/midi", "mif" => "application/vnd.mif", "mime" => "message/rfc822", "minigsf" => "audio/x-psf", "minipsf" => "audio/x-psf", "minipsf1" => "audio/x-psf", "mj2" => "video/mj2", "mjp2" => "video/mj2", "mjs" => "text/javascript", "mka" => "audio/x-matroska", "mkd" => "text/markdown", "mkv" => "video/x-matroska", "ml" => "text/x-ml", "mli" => "text/x-ocaml", "mlp" => "application/vnd.dolby.mlp", "mmap" => "application/vnd.mindjet.mindmanager", "mmas" => "application/vnd.mindjet.mindmanager", "mmat" => "application/vnd.mindjet.mindmanager", "mmd" => "application/vnd.chipnuts.karaoke-mmd", "mmf" => "application/vnd.smaf", "mmmp" => "application/vnd.mindjet.mindmanager", "mmp" => "application/vnd.mindjet.mindmanager", "mmpt" => "application/vnd.mindjet.mindmanager", "mmr" => "image/vnd.fujixerox.edmics-mmr", "mng" => "video/x-mng", "mny" => "application/x-msmoney", "mobi" => "application/x-mobipocket-ebook", "mod" => "audio/x-mod", "mos" => "image/x-raw-leaf", "mov" => "video/quicktime", "movie" => "video/x-sgi-movie", "mp2" => "audio/mpeg", "mp2a" => "audio/mpeg", "mp3" => "audio/mpeg", "mp4" => "video/mp4", "mp4a" => "audio/mp4", "mp4s" => "application/mp4", "mp4v" => "video/mp4", "mpc" => "application/vnd.mophun.certificate", "mpd" => "application/dash+xml", "mpe" => "video/mpeg", "mpeg" => "video/mpeg", "mpg" => "video/mpeg", "mpg4" => "video/mp4", "mpga" => "audio/mpeg", "mpkg" => "application/vnd.apple.installer+xml", "mpm" => "application/vnd.blueice.multipass", "mpn" => "application/vnd.mophun.application", "mpp" => "application/vnd.ms-project", "mpt" => "application/vnd.ms-project", "mpx" => "application/x-project", "mpy" => "application/vnd.ibm.minipay", "mqy" => "application/vnd.mobius.mqy", "mrc" => "application/marc", "mrw" => "image/x-raw-minolta", "ms" => "text/troff", "msa" => "application/vnd.msa-disk-image", "mscml" => "application/mediaservercontrol+xml", "mseed" => "application/vnd.fdsn.mseed", "mseq" => "application/vnd.mseq", "msf" => "application/vnd.epson.msf", "msg" => "application/vnd.ms-outlook", "msh" => "model/mesh", "msi" => "application/x-ms-installer", "msl" => "application/vnd.mobius.msl", "msp" => "application/x-ms-installer", "mst" => "application/x-ms-installer", "msty" => "application/vnd.muvee.style", "mts" => "model/vnd.mts", "mus" => "application/vnd.musician", "musicxml" => "application/vnd.recordare.musicxml+xml", "mvb" => "application/x-msmediaview", "mwf" => "application/vnd.mfer", "mxf" => "application/mxf", "mxl" => "application/vnd.recordare.musicxml", "mxml" => "application/xv+xml", "mxs" => "application/vnd.triscape.mxs", "mxu" => "video/vnd.mpegurl", "myd" => "application/x-mysql-misam-data", "myi" => "application/x-mysql-misam-compressed-index", "n-gage" => "application/vnd.nokia.n-gage.symbian.install", "n3" => "text/plain", "nar" => "application/vnd.iptc.g2.newsmessage+xml", "nb" => "application/mathematica", "nc" => "application/x-netcdf", "ncx" => "application/x-dtbncx+xml", "nef" => "image/x-raw-nikon", "nes" => "application/x-nesrom", "ngdat" => "application/vnd.nokia.n-gage.data", "nitf" => "image/nitf", "nlu" => "application/vnd.neurolanguage.nlu", "nml" => "application/vnd.enliven", "nnd" => "application/vnd.noblenet-directory", "nns" => "application/vnd.noblenet-sealer", "nnw" => "application/vnd.noblenet-web", "npx" => "image/vnd.net-fpx", "nroff" => "text/troff", "nrw" => "image/x-raw-nikon", "nsf" => "application/vnd.lotus-notes", "ntf" => "image/nitf", "numbers" => "application/vnd.apple.numbers", "oa2" => "application/vnd.fujitsu.oasys2", "oa3" => "application/vnd.fujitsu.oasys3", "oas" => "application/vnd.fujitsu.oasys", "obd" => "application/x-msbinder", "ocaml" => "text/x-ocaml", "oda" => "application/oda", "odb" => "application/vnd.oasis.opendocument.base", "odc" => "application/vnd.oasis.opendocument.chart", "odf" => "application/vnd.oasis.opendocument.formula", "odft" => "application/vnd.oasis.opendocument.formula-template", "odg" => "application/vnd.oasis.opendocument.graphics", "odi" => "application/vnd.oasis.opendocument.image", "odp" => "application/vnd.oasis.opendocument.presentation", "ods" => "application/vnd.oasis.opendocument.spreadsheet", "odt" => "application/vnd.oasis.opendocument.text", "oga" => "audio/ogg", "ogg" => "audio/vorbis", "ogm" => "video/x-ogm", "ogv" => "video/ogg", "ogx" => "application/ogg", "one" => "application/onenote;format=one", "onepkg" => "application/onenote; format=package", "onetmp" => "application/onenote", "onetoc" => "application/onenote;format=onetoc2", "onetoc2" => "application/onenote;format=onetoc2", "opf" => "application/oebps-package+xml", "oprc" => "application/vnd.palm", "opus" => "audio/opus", "orf" => "image/x-raw-olympus", "org" => "application/vnd.lotus-organizer", "osf" => "application/vnd.yamaha.openscoreformat", "osfpvg" => "application/vnd.yamaha.openscoreformat.osfpvg+xml", "ost" => "application/vnd.ms-outlook-pst", "otc" => "application/vnd.oasis.opendocument.chart-template", "otf" => "application/x-font-otf", "otg" => "application/vnd.oasis.opendocument.graphics-template", "oth" => "application/vnd.oasis.opendocument.text-web", "oti" => "application/vnd.oasis.opendocument.image-template", "otm" => "application/vnd.oasis.opendocument.text-master", "otp" => "application/vnd.oasis.opendocument.presentation-template", "ots" => "application/vnd.oasis.opendocument.spreadsheet-template", "ott" => "application/vnd.oasis.opendocument.text-template", "owl" => "application/rdf+xml", "oxps" => "application/oxps", "oxt" => "application/vnd.openofficeorg.extension", "p" => "text/x-pascal", "p10" => "application/pkcs10", "p12" => "application/x-pkcs12", "p7b" => "application/x-pkcs7-certificates", "p7c" => "application/pkcs7-mime", "p7m" => "application/pkcs7-mime", "p7r" => "application/x-pkcs7-certreqresp", "p7s" => "application/pkcs7-signature", "pack" => "application/x-java-pack200", "pages" => "application/vnd.apple.pages", "pam" => "image/x-portable-arbitrarymap", "parquet" => "application/x-parquet", "pas" => "text/x-pascal", "patch" => "text/x-diff", "pbd" => "application/vnd.powerbuilder6", "pbm" => "image/x-portable-bitmap", "pcap" => "application/vnd.tcpdump.pcap", "pcapng" => "application/vnd.tcpdump.pcapng", "pcf" => "application/x-font-pcf", "pcl" => "application/vnd.hp-pcl", "pclxl" => "application/vnd.hp-pclxl", "pct" => "image/x-pict", "pcurl" => "application/vnd.curl.pcurl", "pcx" => "image/vnd.zbrush.pcx", "pdb" => "chemical/x-pdb", "pdf" => "application/pdf", "pef" => "image/x-raw-pentax", "pem" => "application/x-x509-cert;format=pem", "pen" => "text/plain", "perl" => "text/x-perl", "pfa" => "application/x-font-type1", "pfb" => "application/x-font-type1", "pfm" => "application/x-font-printer-metric", "pfr" => "application/font-tdpfr", "pfx" => "application/x-pkcs12", "pgm" => "image/x-portable-graymap", "pgn" => "application/x-chess-pgn", "pgp" => "application/pgp-encrypted", "php" => "text/x-php", "php3" => "text/x-php", "php4" => "text/x-php", "pic" => "image/x-pict", "pict" => "image/x-pict", "pkg" => "application/octet-stream", "pki" => "application/pkixcmp", "pkipath" => "application/pkix-pkipath", "pl" => "text/x-perl", "plb" => "application/vnd.3gpp.pic-bw-large", "plc" => "application/vnd.mobius.plc", "plf" => "application/vnd.pocketlearn", "pls" => "application/pls+xml", "pm" => "text/x-perl", "pml" => "application/vnd.ctc-posml", "png" => "image/png", "pnm" => "image/x-portable-anymap", "pod" => "text/plain", "pom" => "text/plain", "portpkg" => "application/vnd.macports.portpkg", "pot" => "application/vnd.ms-powerpoint", "potm" => "application/vnd.ms-powerpoint.template.macroenabled.12", "potx" => "application/vnd.openxmlformats-officedocument.presentationml.template", "pp" => "text/x-pascal", "ppa" => "application/vnd.ms-powerpoint", "ppam" => "application/vnd.ms-powerpoint.addin.macroenabled.12", "ppd" => "application/vnd.cups-ppd", "ppj" => "image/vnd.adobe.premiere", "ppm" => "image/x-portable-pixmap", "pps" => "application/vnd.ms-powerpoint", "ppsm" => "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "ppsx" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppt" => "application/vnd.ms-powerpoint", "pptm" => "application/vnd.ms-powerpoint.presentation.macroenabled.12", "pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", "ppz" => "application/vnd.ms-powerpoint", "pqa" => "application/vnd.palm", "prc" => "application/x-mobipocket-ebook", "pre" => "application/vnd.lotus-freelance", "prf" => "application/pics-rules", "pro" => "text/x-prolog", "project" => "text/plain", "properties" => "text/x-java-properties", "prt" => "application/x-prt", "ps" => "application/postscript", "psb" => "application/vnd.3gpp.pic-bw-small", "psd" => "image/vnd.adobe.photoshop", "psf" => "application/x-font-linux-psf", "psf1" => "audio/x-psf", "psflib" => "audio/x-psf", "pst" => "application/vnd.ms-outlook-pst", "ptid" => "application/vnd.pvi.ptid1", "ptx" => "image/x-raw-pentax", "pub" => "application/x-mspublisher", "pvb" => "application/vnd.3gpp.pic-bw-var", "pwn" => "application/vnd.3m.post-it-notes", "pxn" => "image/x-raw-logitech", "py" => "text/x-python", "pya" => "audio/vnd.ms-playready.media.pya", "pyv" => "video/vnd.ms-playready.media.pyv", "qam" => "application/vnd.epson.quickanime", "qbo" => "application/vnd.intu.qbo", "qfx" => "application/vnd.intu.qfx", "qps" => "application/vnd.publishare-delta-tree", "qpw" => "application/x-quattro-pro", "qt" => "video/quicktime", "qwd" => "application/vnd.quark.quarkxpress", "qwt" => "application/vnd.quark.quarkxpress", "qxb" => "application/vnd.quark.quarkxpress", "qxd" => "application/vnd.quark.quarkxpress", "qxl" => "application/vnd.quark.quarkxpress", "qxt" => "application/vnd.quark.quarkxpress", "r" => "text/x-rsrc", "r3d" => "image/x-raw-red", "ra" => "audio/x-pn-realaudio", "raf" => "image/x-raw-fuji", "ram" => "audio/x-pn-realaudio", "rar" => "application/x-rar-compressed", "ras" => "image/x-cmu-raster", "raw" => "image/x-raw-panasonic", "rb" => "text/x-ruby", "rcprofile" => "application/vnd.ipunplugged.rcprofile", "rdf" => "application/rdf+xml", "rdz" => "application/vnd.data-vision.rdz", "rep" => "application/vnd.businessobjects", "res" => "application/x-dtbresource+xml", "rest" => "text/x-rst", "restx" => "text/x-rst", "rexx" => "text/x-rexx", "rgb" => "image/x-rgb", "rif" => "application/reginfo+xml", "rl" => "application/resource-lists+xml", "rlc" => "image/vnd.fujixerox.edmics-rlc", "rld" => "application/resource-lists-diff+xml", "rm" => "application/vnd.rn-realmedia", "rmi" => "audio/midi", "rmp" => "audio/x-pn-realaudio-plugin", "rms" => "application/vnd.jcp.javame.midlet-rms", "rnc" => "application/relax-ng-compact-syntax", "rng" => "text/plain", "rnx" => "text/plain", "roff" => "text/troff", "roles" => "text/plain", "rpm" => "application/x-rpm", "rpss" => "application/vnd.nokia.radio-presets", "rpst" => "application/vnd.nokia.radio-preset", "rq" => "application/sparql-query", "rs" => "application/rls-services+xml", "rsd" => "application/rsd+xml", "rss" => "application/rss+xml", "rst" => "text/x-rst", "rtf" => "application/rtf", "rtx" => "text/richtext", "rw2" => "image/x-raw-panasonic", "rwz" => "image/x-raw-rawzor", "s" => "text/x-assembly", "s7m" => "application/x-sas-dmdb", "sa7" => "application/x-sas-access", "saf" => "application/vnd.yamaha.smaf-audio", "sap" => "audio/x-sap", "sas" => "application/x-sas", "sas7bacs" => "application/x-sas-access", "sas7baud" => "application/x-sas-audit", "sas7bbak" => "application/x-sas-backup", "sas7bcat" => "application/x-sas-catalog", "sas7bdat" => "application/x-sas-data", "sas7bdmd" => "application/x-sas-dmdb", "sas7bfdb" => "application/x-sas-fdb", "sas7bitm" => "application/x-sas-itemstor", "sas7bmdb" => "application/x-sas-mddb", "sas7bndx" => "application/x-sas-data-index", "sas7bpgm" => "application/x-sas-program-data", "sas7bput" => "application/x-sas-putility", "sas7butl" => "application/x-sas-utility", "sas7bvew" => "application/x-sas-view", "sass" => "text/x-sass", "sav" => "application/x-spss-sav", "sbml" => "application/sbml+xml", "sc" => "application/vnd.ibm.secure-container", "sc7" => "application/x-sas-catalog", "scad" => "application/x-openscad", "scala" => "text/x-scala", "scd" => "application/x-msschedule", "schemas" => "text/plain", "scm" => "text/x-scheme", "scq" => "application/scvp-cv-request", "scs" => "application/scvp-cv-response", "scss" => "text/x-scss", "scurl" => "text/vnd.curl.scurl", "sd2" => "application/x-sas-data-v6", "sd7" => "application/x-sas-data", "sda" => "application/vnd.stardivision.draw", "sdc" => "application/vnd.stardivision.calc", "sdd" => "application/vnd.stardivision.impress", "sdkd" => "application/vnd.solent.sdkm+xml", "sdkm" => "application/vnd.solent.sdkm+xml", "sdp" => "application/sdp", "sdw" => "application/vnd.stardivision.writer", "sed" => "text/x-sed", "see" => "application/vnd.seemail", "seed" => "application/vnd.fdsn.seed", "sema" => "application/vnd.sema", "semd" => "application/vnd.semd", "semf" => "application/vnd.semf", "ser" => "application/java-serialized-object", "setpay" => "application/set-payment-initiation", "setreg" => "application/set-registration-initiation", "sf7" => "application/x-sas-fdb", "sfd-hdstx" => "application/vnd.hydrostatix.sof-data", "sfdu" => "application/x-sfdu", "sfs" => "application/vnd.spotfire.sfs", "sgl" => "application/vnd.stardivision.writer-global", "sgm" => "text/sgml", "sgml" => "text/sgml", "sh" => "application/x-sh", "shar" => "application/x-shar", "shf" => "application/shf+xml", "shp" => "application/x-shapefile", "shw" => "application/x-corelpresentations", "si7" => "application/x-sas-data-index", "sib" => "application/x-sibelius", "sig" => "application/pgp-signature", "silo" => "model/mesh", "sis" => "application/vnd.symbian.install", "sisx" => "application/vnd.symbian.install", "sit" => "application/x-stuffit", "sitx" => "application/x-stuffitx", "skd" => "application/vnd.koan", "skm" => "application/vnd.koan", "skp" => "application/vnd.koan", "skt" => "application/vnd.koan", "sldasm" => "application/sldworks", "slddrw" => "application/sldworks", "sldm" => "application/vnd.ms-powerpoint.slide.macroenabled.12", "sldprt" => "application/sldworks", "sldx" => "application/vnd.openxmlformats-officedocument.presentationml.slide", "slt" => "application/vnd.epson.salt", "sm7" => "application/x-sas-mddb", "smf" => "application/vnd.stardivision.math", "smi" => "application/smil+xml", "smil" => "application/smil+xml", "sml" => "application/smil+xml", "snd" => "audio/basic", "snf" => "application/x-font-snf", "so" => "application/octet-stream", "sp7" => "application/x-sas-putility", "spc" => "application/x-pkcs7-certificates", "spf" => "application/vnd.yamaha.smaf-phrase", "spl" => "application/x-futuresplash", "spot" => "text/vnd.in3d.spot", "spp" => "application/scvp-vp-response", "spq" => "application/scvp-vp-request", "spx" => "audio/speex", "sql" => "text/x-sql", "sr2" => "image/x-raw-sony", "sr7" => "application/x-sas-itemstor", "src" => "application/x-wais-source", "srf" => "image/x-raw-sony", "srl" => "application/sereal", "srt" => "application/x-subrip", "srx" => "application/sparql-results+xml", "ss7" => "application/x-sas-program-data", "sse" => "application/vnd.kodak-descriptor", "ssf" => "application/vnd.epson.ssf", "ssml" => "application/ssml+xml", "st" => "text/x-stsrc", "st7" => "application/x-sas-audit", "stc" => "application/vnd.sun.xml.calc.template", "std" => "application/vnd.sun.xml.draw.template", "stf" => "application/vnd.wt.stf", "sti" => "application/vnd.sun.xml.impress.template", "stk" => "application/hyperstudio", "stl" => "model/x.stl-binary", "str" => "application/vnd.pg.format", "stw" => "application/vnd.sun.xml.writer.template", "stx" => "application/x-sas-transport", "su7" => "application/x-sas-utility", "sus" => "application/vnd.sus-calendar", "susp" => "application/vnd.sus-calendar", "sv4cpio" => "application/x-sv4cpio", "sv4crc" => "application/x-sv4crc", "sv7" => "application/x-sas-view", "svd" => "application/vnd.svd", "svg" => "image/svg+xml", "svgz" => "image/svg+xml", "swa" => "application/x-director", "swf" => "application/x-shockwave-flash", "swi" => "application/vnd.arastra.swi", "sxc" => "application/vnd.sun.xml.calc", "sxd" => "application/vnd.sun.xml.draw", "sxg" => "application/vnd.sun.xml.writer.global", "sxi" => "application/vnd.sun.xml.impress", "sxm" => "application/vnd.sun.xml.math", "sxw" => "application/vnd.sun.xml.writer", "sz" => "application/x-snappy-framed", "t" => "text/troff", "tao" => "application/vnd.tao.intent-module-archive", "tar" => "application/x-tar", "tbz" => "application/x-bzip", "tbz2" => "application/x-bzip2", "tcap" => "application/vnd.3gpp2.tcap", "tcl" => "text/x-tcl", "tcsh" => "application/x-csh", "teacher" => "application/vnd.smart.teacher", "tex" => "application/x-tex", "texi" => "application/x-texinfo", "texinfo" => "application/x-texinfo", "text" => "text/plain", "tfm" => "application/x-tex-tfm", "tga" => "image/x-tga", "tgz" => "application/gzip", "thmx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", "tif" => "image/tiff", "tiff" => "image/tiff", "tk" => "text/x-tcl", "tld" => "text/plain", "tmo" => "application/vnd.tmobile-livetv", "tmx" => "application/x-tmx", "toast" => "application/x-roxio-toast", "torrent" => "application/x-bittorrent", "tpl" => "application/vnd.groove-tool-template", "tpt" => "application/vnd.trid.tpt", "tr" => "text/troff", "tra" => "application/vnd.trueapp", "trm" => "application/x-msterminal", "tsd" => "application/timestamped-data", "tsv" => "text/tab-separated-values", "ttc" => "application/x-font-ttf", "ttf" => "application/x-font-ttf", "ttml" => "application/ttml+xml", "twd" => "application/vnd.simtech-mindmapper", "twds" => "application/vnd.simtech-mindmapper", "txd" => "application/vnd.genomatix.tuxedo", "txf" => "application/vnd.mobius.txf", "txt" => "text/plain", "types" => "text/plain", "tzx" => "application/x-spectrum-tzx", "u32" => "application/x-authorware-bin", "uc2" => "application/x-uc2-compressed", "udeb" => "application/x-debian-package", "ufd" => "application/vnd.ufdl", "ufdl" => "application/vnd.ufdl", "umj" => "application/vnd.umajin", "unityweb" => "application/vnd.unity", "uoml" => "application/vnd.uoml+xml", "uri" => "text/uri-list", "uris" => "text/uri-list", "urls" => "text/uri-list", "ustar" => "application/x-ustar", "utz" => "application/vnd.uiq.theme", "uu" => "text/x-uuencode", "v" => "text/x-verilog", "vb" => "text/x-vbdotnet", "vbs" => "text/x-vbscript", "vcd" => "application/x-cdlink", "vcf" => "text/x-vcard", "vcg" => "application/vnd.groove-vcard", "vcs" => "text/x-vcalendar", "vcx" => "application/vnd.vcx", "vda" => "image/x-tga", "vf" => "application/x-tex-virtual-font", "vhd" => "text/x-vhdl", "vhdl" => "text/x-vhdl", "vis" => "application/vnd.visionary", "viv" => "video/vnd.vivo", "vm" => "text/plain", "vmdk" => "application/x-vmdk", "vor" => "application/x-staroffice-template", "vox" => "application/x-authorware-bin", "vrml" => "model/vrml", "vsd" => "application/vnd.visio", "vsdm" => "application/vnd.ms-visio.drawing.macroEnabled.12", "vsdx" => "application/vnd.ms-visio.drawing", "vsf" => "application/vnd.vsf", "vsl" => "text/plain", "vss" => "application/vnd.visio", "vssm" => "application/vnd.ms-visio.stencil.macroEnabled.12", "vssx" => "application/vnd.ms-visio.stencil", "vst" => "application/vnd.visio", "vstm" => "application/vnd.ms-visio.template.macroEnabled.12", "vstx" => "application/vnd.ms-visio.template", "vsw" => "application/vnd.visio", "vtt" => "text/vtt", "vtu" => "model/vnd.vtu", "vxml" => "application/voicexml+xml", "w3d" => "application/x-director", "w60" => "application/vnd.wordperfect", "wad" => "application/x-doom", "war" => "application/x-tika-java-web-archive", "warc" => "application/warc", "warc.gz" => "application/warc+gz", "wasm" => "application/wasm", "wav" => "audio/vnd.wave", "wax" => "audio/x-ms-wax", "wb1" => "application/x-quattro-pro", "wb2" => "application/x-quattro-pro", "wb3" => "application/x-quattro-pro", "wbmp" => "image/vnd.wap.wbmp", "wbs" => "application/vnd.criticaltools.wbs+xml", "wbxml" => "application/vnd.wap.wbxml", "wcm" => "application/vnd.ms-works", "wdb" => "application/vnd.ms-works", "webarchive" => "application/x-webarchive", "webm" => "video/webm", "webmanifest" => "application/manifest+json", "webp" => "image/webp", "wk1" => "application/vnd.lotus-1-2-3", "wk2" => "application/vnd.lotus-1-2-3", "wk3" => "application/vnd.lotus-1-2-3", "wk4" => "application/vnd.lotus-1-2-3", "wkq" => "application/x-quattro-pro", "wks" => "application/vnd.ms-works", "wl" => "application/vnd.wolfram.wl", "wm" => "video/x-ms-wm", "wma" => "audio/x-ms-wma", "wmd" => "application/x-ms-wmd", "wmf" => "image/wmf", "wml" => "text/vnd.wap.wml", "wmlc" => "application/vnd.wap.wmlc", "wmls" => "text/vnd.wap.wmlscript", "wmlsc" => "application/vnd.wap.wmlscriptc", "wmv" => "video/x-ms-wmv", "wmx" => "video/x-ms-wmx", "wmz" => "application/x-ms-wmz", "woff" => "font/woff", "woff2" => "font/woff2", "wp" => "application/vnd.wordperfect", "wp5" => "application/vnd.wordperfect", "wp6" => "application/vnd.wordperfect", "wp61" => "application/vnd.wordperfect", "wpd" => "application/vnd.wordperfect", "wpl" => "application/vnd.ms-wpl", "wps" => "application/vnd.ms-works", "wpt" => "application/vnd.wordperfect", "wq1" => "application/x-quattro-pro", "wq2" => "application/x-quattro-pro", "wqd" => "application/vnd.wqd", "wri" => "application/x-mswrite", "wrl" => "model/vrml", "wsdd" => "text/plain", "wsdl" => "application/wsdl+xml", "wspolicy" => "application/wspolicy+xml", "wtb" => "application/vnd.webturbo", "wvx" => "video/x-ms-wvx", "x32" => "application/x-authorware-bin", "x3d" => "application/vnd.hzn-3d-crossword", "x3f" => "image/x-raw-sigma", "xap" => "application/x-silverlight-app", "xar" => "application/vnd.xara", "xargs" => "text/plain", "xbap" => "application/x-ms-xbap", "xbd" => "application/vnd.fujixerox.docuworks.binder", "xbm" => "image/x-xbitmap", "xcat" => "text/plain", "xcf" => "image/x-xcf", "xconf" => "text/x-config", "xdm" => "application/vnd.syncml.dm+xml", "xdp" => "application/vnd.adobe.xdp+xml", "xdw" => "application/vnd.fujixerox.docuworks", "xegrm" => "text/plain", "xenc" => "application/xenc+xml", "xer" => "application/patch-ops-error+xml", "xfdf" => "application/vnd.adobe.xfdf", "xfdl" => "application/vnd.xfdl", "xgrm" => "text/plain", "xht" => "application/xhtml+xml", "xhtml" => "application/xhtml+xml", "xhtml2" => "application/xhtml+xml", "xhvml" => "application/xv+xml", "xif" => "image/vnd.xiff", "xla" => "application/vnd.ms-excel", "xlam" => "application/vnd.ms-excel.addin.macroenabled.12", "xlc" => "application/vnd.ms-excel", "xld" => "application/vnd.ms-excel", "xlex" => "text/plain", "xlf" => "application/x-xliff+xml", "xliff" => "application/x-xliff+xml", "xll" => "application/vnd.ms-excel", "xlm" => "application/vnd.ms-excel", "xlog" => "text/plain", "xlr" => "application/x-tika-msworks-spreadsheet", "xls" => "application/vnd.ms-excel", "xlsb" => "application/vnd.ms-excel.sheet.binary.macroenabled.12", "xlsm" => "application/vnd.ms-excel.sheet.macroenabled.12", "xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlt" => "application/vnd.ms-excel", "xltm" => "application/vnd.ms-excel.template.macroenabled.12", "xltx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xlw" => "application/vnd.ms-excel", "xlz" => "application/x-xliff+zip", "xmap" => "text/plain", "xmind" => "application/x-xmind", "xml" => "application/xml", "xmp" => "application/rdf+xml", "xo" => "application/vnd.olpc-sugar", "xop" => "application/xop+xml", "xpi" => "application/x-xpinstall", "xpm" => "image/x-xpixmap", "xport" => "application/x-sas-xport", "xpr" => "application/vnd.is-xpr", "xps" => "application/vnd.ms-xpsdocument", "xpt" => "application/x-sas-xport", "xpw" => "application/vnd.intercon.formnet", "xpx" => "application/vnd.intercon.formnet", "xq" => "application/xquery", "xquery" => "application/xquery", "xroles" => "text/plain", "xsamples" => "text/plain", "xsd" => "application/xml", "xsl" => "application/xml", "xslfo" => "application/xslfo+xml", "xslt" => "application/xslt+xml", "xsm" => "application/vnd.syncml+xml", "xsp" => "text/plain", "xspf" => "application/xspf+xml", "xtest" => "text/plain", "xul" => "application/vnd.mozilla.xul+xml", "xvm" => "application/xv+xml", "xvml" => "application/xv+xml", "xwd" => "image/x-xwindowdump", "xweb" => "text/plain", "xwelcome" => "text/plain", "xyz" => "chemical/x-xyz", "xz" => "application/x-xz", "y" => "text/x-yacc", "yaml" => "text/x-yaml", "yml" => "text/x-yaml", "z" => "application/x-compress", "zaz" => "application/vnd.zzazz.deck+xml", "zip" => "application/zip", "zipx" => "application/zip", "zir" => "application/vnd.zul", "zirz" => "application/vnd.zul", "zmm" => "application/vnd.handheld-entertainment+xml", "zoo" => "application/x-zoo", "zst" => "application/zstd"} of String => String
MAGIC = [MagicEntry.new("image/jpeg", [MagicRule.new(0, "\xFF\xD8\xFF".to_slice)]), MagicEntry.new("image/png", [MagicRule.new(0, "\x89PNG\r\n\u001A\n".to_slice)]), MagicEntry.new("image/gif", [MagicRule.new(0, "GIF87a".to_slice), MagicRule.new(0, "GIF89a".to_slice)]), MagicEntry.new("image/x-canon-cr2", [MagicRule.new(0, "MM\u0000*".to_slice, [MagicRule.new(8, "CR".to_slice)]), MagicRule.new(0, "II*\u0000".to_slice, [MagicRule.new(8, "CR".to_slice)]), MagicRule.new(0, "MM\u0000+".to_slice, [MagicRule.new(8, "CR".to_slice)])]), MagicEntry.new("image/tiff", [MagicRule.new(0, "MM\u0000*".to_slice), MagicRule.new(0, "II*\u0000".to_slice), MagicRule.new(0, "MM\u0000+".to_slice)]), MagicEntry.new("image/bmp", [MagicRule.new(0, "BM".to_slice, [MagicRule.new(26, "\u0001\u0000".to_slice, [MagicRule.new(0, nil, [MagicRule.new(0, nil, [MagicRule.new(28, "\u0000\u0000".to_slice), MagicRule.new(28, "\u0001\u0000".to_slice), MagicRule.new(28, "\u0004\u0000".to_slice), MagicRule.new(28, "\b\u0000".to_slice), MagicRule.new(28, "\u0010\u0000".to_slice), MagicRule.new(28, "\u0018\u0000".to_slice), MagicRule.new(28, " \u0000".to_slice)]), MagicRule.new(30, "\u0000\u0000\u0000\u0000".to_slice)])])])]), MagicEntry.new("image/vnd.adobe.photoshop", [MagicRule.new(0, "8BPS\u0000\u0001".to_slice), MagicRule.new(0, "8BPS\u0000\u0002".to_slice)]), MagicEntry.new("image/webp", [MagicRule.new(0, "RIFF".to_slice, [MagicRule.new(8, "WEBP".to_slice)])]), MagicEntry.new("image/svg+xml", [MagicRule.new(0, "<svg".to_slice)]), MagicEntry.new("video/x-msvideo", [MagicRule.new(0, "RIFF".to_slice, [MagicRule.new(8, "AVI ".to_slice)]), MagicRule.new(8, "AVI ".to_slice)]), MagicEntry.new("video/x-ms-wmv", [MagicRule.new(0..8192, "W\u0000i\u0000n\u0000d\u0000o\u0000w\u0000s\u0000 \u0000M\u0000e\u0000d\u0000i\u0000a\u0000 \u0000V\u0000i\u0000d\u0000e\u0000o\u0000".to_slice), MagicRule.new(0..8192, "V\u0000C\u0000-\u00001\u0000 \u0000A\u0000d\u0000v\u0000a\u0000n\u0000c\u0000e\u0000d\u0000 \u0000P\u0000r\u0000o\u0000f\u0000i\u0000l\u0000e\u0000".to_slice), MagicRule.new(0..8192, "w\u0000m\u0000v\u00002\u0000".to_slice)]), MagicEntry.new("video/mp4", [MagicRule.new(4, "ftypmp41".to_slice), MagicRule.new(4, "ftypmp42".to_slice)]), MagicEntry.new("audio/mp4", [MagicRule.new(4, "ftypM4A ".to_slice), MagicRule.new(4, "ftypM4B ".to_slice), MagicRule.new(4, "ftypF4A ".to_slice), MagicRule.new(4, "ftypF4B ".to_slice)]), MagicEntry.new("image/heic", [MagicRule.new(4, "ftypheic".to_slice), MagicRule.new(4, "ftypheix".to_slice)]), MagicEntry.new("image/heic-sequence", [MagicRule.new(4, "ftyphevc".to_slice), MagicRule.new(4, "ftyphevx".to_slice)]), MagicEntry.new("image/heif", [MagicRule.new(4, "ftypmif1".to_slice)]), MagicEntry.new("image/heif-sequence", [MagicRule.new(4, "ftypmsf1".to_slice)]), MagicEntry.new("image/x-canon-cr3", [MagicRule.new(4, "ftypcrx ".to_slice)]), MagicEntry.new("video/x-m4v", [MagicRule.new(4, "ftypM4V ".to_slice), MagicRule.new(4, "ftypM4VH".to_slice), MagicRule.new(4, "ftypM4VP".to_slice)]), MagicEntry.new("video/quicktime", [MagicRule.new(4, "moov\u0000".to_slice), MagicRule.new(4, "mdat\u0000".to_slice), MagicRule.new(4, "free\u0000".to_slice), MagicRule.new(4, "skip\u0000".to_slice), MagicRule.new(4, "pnot\u0000".to_slice), MagicRule.new(4, "ftyp".to_slice), MagicRule.new(0, "\u0000\u0000\u0000\bwide".to_slice)]), MagicEntry.new("video/mpeg", [MagicRule.new(0, "\u0000\u0000\u0001\xB3".to_slice), MagicRule.new(0, "\u0000\u0000\u0001\xBA".to_slice)]), MagicEntry.new("video/webm", [MagicRule.new(0, "\u001AEߣ".to_slice, [MagicRule.new(4..4096, "B\x82".to_slice, [MagicRule.new(4..4096, "webm".to_slice, [MagicRule.new(4..4096, "V_VP8".to_slice), MagicRule.new(4..4096, "V_VP9".to_slice), MagicRule.new(4..4096, "V_AV1".to_slice)])])])]), MagicEntry.new("video/x-matroska", [MagicRule.new(0, "\u001AEߣ\x93B\x82\x88matroska".to_slice)]), MagicEntry.new("video/x-flv", [MagicRule.new(0, "FLV".to_slice)]), MagicEntry.new("audio/mpeg", [MagicRule.new(0, "\xFF\xF2".to_slice), MagicRule.new(0, "\xFF\xF3".to_slice), MagicRule.new(0, "\xFF\xF4".to_slice), MagicRule.new(0, "\xFF\xF5".to_slice), MagicRule.new(0, "\xFF\xF6".to_slice), MagicRule.new(0, "\xFF\xF7".to_slice), MagicRule.new(0, "\xFF\xFA".to_slice), MagicRule.new(0, "\xFF\xFB".to_slice), MagicRule.new(0, "\xFF\xFC".to_slice), MagicRule.new(0, "\xFF\xFD".to_slice), MagicRule.new(0, "\xFF\xE3".to_slice), MagicRule.new(0, "ID3".to_slice)]), MagicEntry.new("application/pdf", [MagicRule.new(0, "%PDF-".to_slice), MagicRule.new(0, "\uFEFF%PDF-".to_slice)]), MagicEntry.new("application/msword", [MagicRule.new(2080, "Microsoft Word 6.0 Document".to_slice), MagicRule.new(2080, "Documento Microsoft Word 6".to_slice), MagicRule.new(2112, "MSWordDoc".to_slice), MagicRule.new(0, "1\xBE\u0000\u0000".to_slice), MagicRule.new(0, "PO^Q`".to_slice), MagicRule.new(0, "\xFE7\u0000#".to_slice), MagicRule.new(0, "ۥ-\u0000\u0000\u0000".to_slice), MagicRule.new(0, "\x94\xA6.".to_slice), MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(1152..4096, "W\u0000o\u0000r\u0000d\u0000D\u0000o\u0000c\u0000u\u0000m\u0000e\u0000n\u0000t".to_slice)])]), MagicEntry.new("application/vnd.openxmlformats-officedocument.wordprocessingml.document", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30..65536, "[Content_Types].xml".to_slice, [MagicRule.new(0..4096, "word/".to_slice)]), MagicRule.new(30, "_rels/.rels".to_slice, [MagicRule.new(0..4096, "word/".to_slice)])])]), MagicEntry.new("application/vnd.ms-powerpoint", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(1152..4096, "P\u0000o\u0000w\u0000e\u0000r\u0000P\u0000o\u0000i\u0000n\u0000t\u0000 D\u0000o\u0000c\u0000u\u0000m\u0000e\u0000n\u0000t".to_slice)])]), MagicEntry.new("application/vnd.openxmlformats-officedocument.presentationml.presentation", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30..65536, "[Content_Types].xml".to_slice, [MagicRule.new(0..4096, "ppt/".to_slice)]), MagicRule.new(30, "_rels/.rels".to_slice, [MagicRule.new(0..4096, "ppt/".to_slice)])])]), MagicEntry.new("application/x-tika-msworks-spreadsheet", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(1152..4096, "W\u0000k\u0000s\u0000S\u0000S\u0000W\u0000o\u0000r\u0000k\u0000B\u0000o\u0000o\u0000k".to_slice)])]), MagicEntry.new("application/vnd.ms-excel", [MagicRule.new(2080, "Microsoft Excel 5.0 Worksheet".to_slice), MagicRule.new(2080, "Foglio di lavoro Microsoft Exce".to_slice), MagicRule.new(2114, "Biff5".to_slice), MagicRule.new(2121, "Biff5".to_slice), MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(1152..4096, "W\u0000o\u0000r\u0000k\u0000b\u0000o\u0000o\u0000k".to_slice)])]), MagicEntry.new("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30..65536, "[Content_Types].xml".to_slice, [MagicRule.new(0..4096, "xl/".to_slice)]), MagicRule.new(30, "_rels/.rels".to_slice, [MagicRule.new(0..4096, "xl/".to_slice)])])]), MagicEntry.new("image/x-tga", [MagicRule.new(1, "\u0001\u0001\u0000\u0000".to_slice), MagicRule.new(1, "\u0000\u0002\u0000\u0000".to_slice), MagicRule.new(1, "\u0000\u0003\u0000\u0000".to_slice)]), MagicEntry.new("application/x-endnote-refer", [MagicRule.new(0..50, "%A ".to_slice, [MagicRule.new(0..1000, "\n%D ".to_slice, [MagicRule.new(0..1000, "\n%T ".to_slice)])])]), MagicEntry.new("application/x-tmx", [MagicRule.new(0..256, "<tmx".to_slice)]), MagicEntry.new("image/svg+xml", [MagicRule.new(0, "<?xml".to_slice, [MagicRule.new(21..512, "<svg".to_slice)])]), MagicEntry.new("application/mbox", [MagicRule.new(0, "From ".to_slice, [MagicRule.new(32..256, "\nFrom: ".to_slice), MagicRule.new(32..256, "\nDate: ".to_slice), MagicRule.new(32..256, "\nSubject: ".to_slice), MagicRule.new(32..256, "\nDelivered-To: ".to_slice), MagicRule.new(32..256, "\nReceived: by ".to_slice), MagicRule.new(32..256, "\nReceived: via ".to_slice), MagicRule.new(32..256, "\nReceived: from ".to_slice), MagicRule.new(32..256, "\nMime-Version: ".to_slice), MagicRule.new(32..256, "\nX-".to_slice, [MagicRule.new(32..8192, "\nFrom: ".to_slice), MagicRule.new(32..8192, "\nDate: ".to_slice), MagicRule.new(32..8192, "\nSubject: ".to_slice), MagicRule.new(32..8192, "\nDelivered-To: ".to_slice), MagicRule.new(32..8192, "\nReceived: by ".to_slice), MagicRule.new(32..8192, "\nReceived: via ".to_slice), MagicRule.new(32..8192, "\nReceived: from ".to_slice), MagicRule.new(32..8192, "\nMime-Version: ".to_slice)])])]), MagicEntry.new("application/x-bplist", [MagicRule.new(0, "bplist\u0000\u0000".to_slice), MagicRule.new(0, "bplist\u0000\u0001".to_slice), MagicRule.new(0, "bplist@\u0000".to_slice), MagicRule.new(0, "bplist00".to_slice), MagicRule.new(0, "bplist01".to_slice), MagicRule.new(0, "bplist10".to_slice), MagicRule.new(0, "bplist15".to_slice), MagicRule.new(0, "bplist16".to_slice)]), MagicEntry.new("application/x-dvd-ifo", [MagicRule.new(0, "DVDVIDEO-VTS".to_slice), MagicRule.new(0, "DVDVIDEO-VMG".to_slice)]), MagicEntry.new("application/x-ebu-stl", [MagicRule.new(3, "STL".to_slice, [MagicRule.new(8, ".01".to_slice)])]), MagicEntry.new("image/svg+xml", [MagicRule.new(0, "<!DOCTYPE svg".to_slice, [MagicRule.new(25..1024, "<svg".to_slice)])]), MagicEntry.new("message/x-emlx", [MagicRule.new(2..9, "\nRelay-Version:".to_slice), MagicRule.new(2..9, "\n#! rnews".to_slice), MagicRule.new(2..9, "\nN#! rnews".to_slice), MagicRule.new(2..9, "\nForward to".to_slice), MagicRule.new(2..9, "\nPipe to".to_slice), MagicRule.new(2..9, "\nReturn-Path:".to_slice), MagicRule.new(2..9, "\nFrom:".to_slice), MagicRule.new(2..9, "\nReceived:".to_slice), MagicRule.new(2..9, "\nMessage-ID:".to_slice), MagicRule.new(2..9, "\nDate:".to_slice)]), MagicEntry.new("image/svg+xml", [MagicRule.new(0, "<!--".to_slice, [MagicRule.new(4..1024, "<svg".to_slice)])]), MagicEntry.new("application/cbor", [MagicRule.new(0, "\xD9\xD9\xF7".to_slice)]), MagicEntry.new("application/coreldraw", [MagicRule.new(0, "RIFF".to_slice, [MagicRule.new(8, "CDR".to_slice), MagicRule.new(8, "cdr".to_slice), MagicRule.new(8, "DES".to_slice), MagicRule.new(8, "des".to_slice)])]), MagicEntry.new("application/timestamped-data", [MagicRule.new(0, "0x30".to_slice, [MagicRule.new(2..6, "\u0006\v*\x86H\x86\xF7\r\u0001\t\u0010\u0001\u001F".to_slice)])]), MagicEntry.new("application/timestamped-data", [MagicRule.new(0, "0".to_slice, [MagicRule.new(2..6, "\u0006\v*\x86H\x86\xF7\r\u0001\t\u0010\u0001\u001F".to_slice)])]), MagicEntry.new("application/vnd.etsi.asic-e+zip", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.etsi.asic-e+zip".to_slice)])]), MagicEntry.new("application/vnd.etsi.asic-s+zip", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.etsi.asic-s+zip".to_slice)])]), MagicEntry.new("application/vnd.ms-excel.sheet.2", [MagicRule.new(0, "\t\u0000\u0004\u0000".to_slice, [MagicRule.new(4, "\u0000\u0000\u0010\u0000".to_slice), MagicRule.new(4, "\u0000\u0000 \u0000".to_slice), MagicRule.new(4, "\u0000\u0000@\u0000".to_slice)])]), MagicEntry.new("application/vnd.ms-excel.sheet.3", [MagicRule.new(0, "\t\u0002\u0006\u0000".to_slice, [MagicRule.new(4, "\u0000\u0000\u0010\u0000".to_slice), MagicRule.new(4, "\u0000\u0000 \u0000".to_slice), MagicRule.new(4, "\u0000\u0000@\u0000".to_slice)])]), MagicEntry.new("application/vnd.ms-excel.sheet.4", [MagicRule.new(0, "\t\u0004\u0006\u0000".to_slice, [MagicRule.new(4, "\u0000\u0000\u0010\u0000".to_slice), MagicRule.new(4, "\u0000\u0000 \u0000".to_slice), MagicRule.new(4, "\u0000\u0000@\u0000".to_slice)])]), MagicEntry.new("application/vnd.ms-excel.workspace.3", [MagicRule.new(0, "\t\u0002\u0006\u0000".to_slice, [MagicRule.new(4, "\u0000\u0000\u0000\u0001".to_slice)])]), MagicEntry.new("application/vnd.ms-excel.workspace.4", [MagicRule.new(0, "\t\u0004\u0006\u0000".to_slice, [MagicRule.new(4, "\u0000\u0000\u0000\u0001".to_slice)])]), MagicEntry.new("application/vnd.tcpdump.pcap", [MagicRule.new(0, "\xA1\xB2\xC3\xD4".to_slice), MagicRule.new(0, "\xD4ò\xA1".to_slice)]), MagicEntry.new("application/vnd.tcpdump.pcapng", [MagicRule.new(0, "\n\r\r\n".to_slice, [MagicRule.new(8, "\xA1\xB2\xC3\xD4".to_slice), MagicRule.new(8, "M<+\u001A".to_slice)])]), MagicEntry.new("application/warc", [MagicRule.new(0, "WARC/".to_slice)]), MagicEntry.new("application/x-activemime", [MagicRule.new(0, "ActiveMime\u0000\u0000".to_slice)]), MagicEntry.new("application/x-axcrypt", [MagicRule.new(0, "\xC0\xB9\a.O\x93\xF1F\xA0\u0015y,\xA1\xD9\xE8!".to_slice, [MagicRule.new(17, "\u0000\u0000\u0000\u0002".to_slice)])]), MagicEntry.new("application/x-bentley-besqlite", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "BeDb".to_slice)])]), MagicEntry.new("application/x-bentley-localization", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "BeLn".to_slice)])]), MagicEntry.new("application/x-berkeley-db;format=btree;version=2", [MagicRule.new(12, "b1\u0005\u0000".to_slice, [MagicRule.new(16, "\u0006\u0000\u0000\u0000".to_slice)]), MagicRule.new(12, "\u0000\u00051b".to_slice, [MagicRule.new(16, "\u0000\u0000\u0000\u0006".to_slice)]), MagicRule.new(12, "b1\u0005\u0000".to_slice, [MagicRule.new(16, "\u0006\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-berkeley-db;format=btree;version=3", [MagicRule.new(12, "b1\u0005\u0000".to_slice, [MagicRule.new(16, "\b\u0000\u0000\u0000".to_slice)]), MagicRule.new(12, "\u0000\u00051b".to_slice, [MagicRule.new(16, "\u0000\u0000\u0000\b".to_slice)]), MagicRule.new(12, "b1\u0005\u0000".to_slice, [MagicRule.new(16, "\b\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-berkeley-db;format=btree;version=4", [MagicRule.new(12, "b1\u0005\u0000".to_slice, [MagicRule.new(16, "\t\u0000\u0000\u0000".to_slice)]), MagicRule.new(12, "\u0000\u00051b".to_slice, [MagicRule.new(16, "\u0000\u0000\u0000\t".to_slice)]), MagicRule.new(12, "b1\u0005\u0000".to_slice, [MagicRule.new(16, "\t\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-berkeley-db;format=hash;version=2", [MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\u0005\u0000\u0000\u0000".to_slice)]), MagicRule.new(12, "\u0000\u0006\u0015a".to_slice, [MagicRule.new(16, "\u0000\u0000\u0000\u0005".to_slice)]), MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\u0005\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-berkeley-db;format=hash;version=3", [MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\a\u0000\u0000\u0000".to_slice)]), MagicRule.new(12, "\u0000\u0006\u0015a".to_slice, [MagicRule.new(16, "\u0000\u0000\u0000\a".to_slice)]), MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\a\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-berkeley-db;format=hash;version=4", [MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\b\u0000\u0000\u0000".to_slice)]), MagicRule.new(12, "\u0000\u0006\u0015a".to_slice, [MagicRule.new(16, "\u0000\u0000\u0000\b".to_slice)]), MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\b\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-berkeley-db;format=hash;version=5", [MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\t\u0000\u0000\u0000".to_slice)]), MagicRule.new(12, "\u0000\u0006\u0015a".to_slice, [MagicRule.new(16, "\u0000\u0000\u0000\t".to_slice)]), MagicRule.new(12, "a\u0015\u0006\u0000".to_slice, [MagicRule.new(16, "\t\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-bplist", [MagicRule.new(0, "bplist".to_slice)]), MagicEntry.new("application/x-debian-package", [MagicRule.new(0, "!<arch>\ndebian-binary".to_slice), MagicRule.new(0, "!<arch>\ndebian-split".to_slice)]), MagicEntry.new("application/x-esri-spatially-enabled-db", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "Esri".to_slice)])]), MagicEntry.new("application/x-font-type1", [MagicRule.new(0, "\x80\u0001".to_slice, [MagicRule.new(4, "\u0000\u0000%!PS-AdobeFont".to_slice)]), MagicRule.new(0, "%!PS-AdobeFont-1.0".to_slice)]), MagicEntry.new("application/x-fossil-checkout", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "\u000F\u0005Q\u0012".to_slice)])]), MagicEntry.new("application/x-fossil-global-conf", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "\u000F\u0005Q\u0013".to_slice)])]), MagicEntry.new("application/x-fossil-repository", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "\u000F\u0005Q\u0011".to_slice)])]), MagicEntry.new("application/x-geopackage", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "GPKG".to_slice)])]), MagicEntry.new("application/x-geopackage; version=1.1Or1.0", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "GP10".to_slice)])]), MagicEntry.new("application/x-httpresponse", [MagicRule.new(0, "HTTP/".to_slice, [MagicRule.new(0..1000, "\nCache-Control:".to_slice), MagicRule.new(0..1000, "\nContent-Type:".to_slice), MagicRule.new(0..1000, "\nContent-Length:".to_slice), MagicRule.new(0..1000, "\nContent-Disposition:".to_slice), MagicRule.new(0..1000, "\nDate:".to_slice), MagicRule.new(0..1000, "\nServer:".to_slice)])]), MagicEntry.new("application/x-internet-archive", [MagicRule.new(0, "filedesc://".to_slice)]), MagicEntry.new("application/x-iso9660-image", [MagicRule.new(32769, "CD001".to_slice), MagicRule.new(34817, "CD001".to_slice), MagicRule.new(36865, "CD001".to_slice)]), MagicEntry.new("application/x-lz4", [MagicRule.new(0, "\u0004\"M\u0018".to_slice), MagicRule.new(0, "\u0002!L\u0018".to_slice)]), MagicEntry.new("application/x-mach-o-universal", [MagicRule.new(0, "\xCA\xFE\xBA\xBE".to_slice, [MagicRule.new(4, "\u0000\u0000\u0000\u0001".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0002".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0003".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0004".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0005".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0006".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\a".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\b".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\t".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\n".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\v".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\f".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\r".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u000E".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u000F".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0010".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0011".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0012".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0013".to_slice)]), MagicRule.new(0, "\xBE\xBA\xFE\xCA".to_slice, [MagicRule.new(4, "\u0001\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0002\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0003\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0004\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0005\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0006\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\a\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\b\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\t\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\n\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\v\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\f\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\r\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u000E\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u000F\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0010\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0011\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0012\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0013\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xCA\xFE\xBA\xBF".to_slice, [MagicRule.new(4, "\u0000\u0000\u0000\u0001".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0002".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0003".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0004".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0005".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0006".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\a".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\b".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\t".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\n".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\v".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\f".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\r".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u000E".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u000F".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0010".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0011".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0012".to_slice), MagicRule.new(4, "\u0000\u0000\u0000\u0013".to_slice)]), MagicRule.new(0, "\xBF\xBA\xFE\xCA".to_slice, [MagicRule.new(4, "\u0001\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0002\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0003\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0004\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0005\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0006\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\a\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\b\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\t\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\n\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\v\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\f\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\r\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u000E\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u000F\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0010\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0011\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0012\u0000\u0000\u0000".to_slice), MagicRule.new(4, "\u0013\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mbtiles", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "MPBX".to_slice)])]), MagicEntry.new("application/x-mobipocket-ebook", [MagicRule.new(0..60, "BOOKMOBI".to_slice)]), MagicEntry.new("application/x-monotone-source-repo", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "_MTN".to_slice)])]), MagicEntry.new("application/x-msaccess", [MagicRule.new(0, "\u0000\u0001\u0000\u0000Stan".to_slice)]), MagicEntry.new("application/x-msdownload;format=pe-arm7", [MagicRule.new(128, "pe\u0000\u0000".to_slice, [MagicRule.new(132, "\xC4\u0001".to_slice)]), MagicRule.new(240, "pe\u0000\u0000".to_slice, [MagicRule.new(244, "\xC4\u0001".to_slice)])]), MagicEntry.new("application/x-msdownload;format=pe-armLE", [MagicRule.new(128, "pe\u0000\u0000".to_slice, [MagicRule.new(132, "\xC0\u0001".to_slice)]), MagicRule.new(240, "pe\u0000\u0000".to_slice, [MagicRule.new(244, "\xC0\u0001".to_slice)])]), MagicEntry.new("application/x-msdownload;format=pe-itanium", [MagicRule.new(128, "PE\u0000\u0000".to_slice, [MagicRule.new(132, "\u0000\u0002".to_slice)]), MagicRule.new(240, "PE\u0000\u0000".to_slice, [MagicRule.new(244, "\u0000\u0002".to_slice)])]), MagicEntry.new("application/x-msdownload;format=pe32", [MagicRule.new(128, "PE\u0000\u0000".to_slice, [MagicRule.new(132, "L\u0001".to_slice)]), MagicRule.new(240, "PE\u0000\u0000".to_slice, [MagicRule.new(244, "L\u0001".to_slice)])]), MagicEntry.new("application/x-msdownload;format=pe64", [MagicRule.new(128, "PE\u0000\u0000".to_slice, [MagicRule.new(132, "d\x86".to_slice)]), MagicRule.new(240, "PE\u0000\u0000".to_slice, [MagicRule.new(244, "d\x86".to_slice)])]), MagicEntry.new("application/x-msmoney", [MagicRule.new(0, "\u0000\u0001\u0000\u0000MSISAM Database".to_slice)]), MagicEntry.new("application/x-rar-compressed;version=4", [MagicRule.new(0, "Rar!\u001A\a\u0000".to_slice)]), MagicEntry.new("application/x-rar-compressed;version=5", [MagicRule.new(0, "Rar!\u001A\a\u0001\u0000".to_slice)]), MagicEntry.new("application/x-shapefile", [MagicRule.new(0, "\u0000\u0000'\n".to_slice)]), MagicEntry.new("application/x-stata-dta;version=10", [MagicRule.new(0, "<stata_dta><header><release>114</release>".to_slice)]), MagicEntry.new("application/x-stata-dta;version=12", [MagicRule.new(0, "<stata_dta><header><release>115</release>".to_slice)]), MagicEntry.new("application/x-stata-dta;version=13", [MagicRule.new(0, "<stata_dta><header><release>117</release>".to_slice)]), MagicEntry.new("application/x-stata-dta;version=14", [MagicRule.new(0, "<stata_dta><header><release>118</release>".to_slice)]), MagicEntry.new("application/x-stata-dta;version=8", [MagicRule.new(0, "<stata_dta><header><release>113</release>".to_slice)]), MagicEntry.new("application/x-texnicard", [MagicRule.new(0, "SQLite format 3\u0000".to_slice, [MagicRule.new(68, "j\u0003WD".to_slice)])]), MagicEntry.new("audio/opus", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "pusHead".to_slice)])]), MagicEntry.new("audio/speex", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "peex ".to_slice)])]), MagicEntry.new("audio/vorbis", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "vorbis".to_slice)])]), MagicEntry.new("audio/x-caf", [MagicRule.new(0, "caff\u0000\u0000".to_slice), MagicRule.new(0, "caff\u0000\u0001".to_slice), MagicRule.new(0, "caff\u0000\u0002".to_slice), MagicRule.new(0, "caff@\u0000".to_slice), MagicRule.new(0, "caff\x80\u0000".to_slice)]), MagicEntry.new("audio/x-oggflac", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "LAC".to_slice)])]), MagicEntry.new("audio/x-oggpcm", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "CM ".to_slice)])]), MagicEntry.new("image/avif", [MagicRule.new(4, "ftypavif".to_slice)]), MagicEntry.new("image/svg+xml", [MagicRule.new(0, " <svg".to_slice), MagicRule.new(0, "\n<svg".to_slice), MagicRule.new(0, "\r<svg".to_slice), MagicRule.new(0, "\r\n<svg".to_slice), MagicRule.new(0, "\t<svg".to_slice)]), MagicEntry.new("message/news", [MagicRule.new(0, "Path:".to_slice), MagicRule.new(0, "Xref:".to_slice)]), MagicEntry.new("model/e57", [MagicRule.new(0, "ASTM-E57".to_slice)]), MagicEntry.new("model/vnd.dwf;version=2", [MagicRule.new(0, "(DWF V00.22)".to_slice)]), MagicEntry.new("model/vnd.dwf;version=5", [MagicRule.new(0, "(DWF V00.55)".to_slice)]), MagicEntry.new("model/vnd.dwf;version=6", [MagicRule.new(0, "(DWF V06.".to_slice, [MagicRule.new(11, ")PK".to_slice)])]), MagicEntry.new("model/x.stl-ascii", [MagicRule.new(0, "solid ".to_slice, [MagicRule.new(7..256, "facet ".to_slice)])]), MagicEntry.new("multipart/related", [MagicRule.new(0, "From: <Saved by Windows Internet Explorer 8>".to_slice), MagicRule.new(0, "From: \"Saved by Internet Explorer 11\"".to_slice), MagicRule.new(0, "MIME-Version: 1.0".to_slice, [MagicRule.new(16..512, "\nContent-Type: multipart/related".to_slice)])]), MagicEntry.new("video/3gpp", [MagicRule.new(4, "ftyp3ge6".to_slice), MagicRule.new(4, "ftyp3ge7".to_slice), MagicRule.new(4, "ftyp3gg6".to_slice), MagicRule.new(4, "ftyp3gp1".to_slice), MagicRule.new(4, "ftyp3gp2".to_slice), MagicRule.new(4, "ftyp3gp3".to_slice), MagicRule.new(4, "ftyp3gp4".to_slice), MagicRule.new(4, "ftyp3gp5".to_slice), MagicRule.new(4, "ftyp3gp6".to_slice), MagicRule.new(4, "ftyp3gs7".to_slice)]), MagicEntry.new("video/3gpp2", [MagicRule.new(4, "ftyp3g2a".to_slice), MagicRule.new(4, "ftyp3g2b".to_slice), MagicRule.new(4, "ftyp3g2c".to_slice)]), MagicEntry.new("video/daala", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "daala".to_slice)])]), MagicEntry.new("video/theora", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "theora".to_slice)])]), MagicEntry.new("video/x-dirac", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "BCD".to_slice)])]), MagicEntry.new("video/x-oggrgb", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "RGB".to_slice)])]), MagicEntry.new("video/x-ogguvs", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "VS ".to_slice)])]), MagicEntry.new("video/x-oggyuv", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "YUV".to_slice)])]), MagicEntry.new("video/x-ogm", [MagicRule.new(0, "OggS".to_slice, [MagicRule.new(29, "ideo".to_slice)])]), MagicEntry.new("application/x-mach-o-bundle", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\b".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\b\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\b".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\b\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-core", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0004".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0004\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0004".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0004\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-dsym", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\n".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\n\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\n".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\n\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-dylib", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0006".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0006\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0006".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0006\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-dylib-stub", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\t".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\t\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\t".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\t\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-dylinker", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\a".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\a\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\a".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\a\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-executable", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0002".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0002\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0002".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0002\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-fvmlib", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0003".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0003\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0003".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0003\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-kext-bundle", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\v".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\v\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\v".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\v\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-object", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0001".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0001\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0001".to_slice)]), MagicRule.new(0, "0xCFFAEDFE".to_slice, [MagicRule.new(12, "\u0001\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-mach-o-preload", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0005".to_slice)]), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0005\u0000\u0000\u0000".to_slice)]), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0005".to_slice)]), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice, [MagicRule.new(12, "\u0005\u0000\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-msdownload;format=pe", [MagicRule.new(0, "MZ".to_slice, [MagicRule.new(128, "PE\u0000\u0000".to_slice), MagicRule.new(176, "PE\u0000\u0000".to_slice), MagicRule.new(208, "PE\u0000\u0000".to_slice), MagicRule.new(240, "PE\u0000\u0000".to_slice)])]), MagicEntry.new("text/x-robots", [MagicRule.new(0, nil, [MagicRule.new(0, "user-agent:".to_slice), MagicRule.new(0, "allow:".to_slice), MagicRule.new(0, "disallow:".to_slice), MagicRule.new(0, "sitemap:".to_slice), MagicRule.new(0..1000, "\nuser-agent:".to_slice), MagicRule.new(0..1000, "\nallow:".to_slice), MagicRule.new(0..1000, "\ndisallow:".to_slice), MagicRule.new(0..1000, "\nsitemap:".to_slice)])]), MagicEntry.new("application/applefile", [MagicRule.new(0, "\u0000\u0005\u0016\u0000".to_slice)]), MagicEntry.new("application/dash+xml", [MagicRule.new(0, "<MPD".to_slice)]), MagicEntry.new("application/dicom", [MagicRule.new(128, "DICM".to_slice)]), MagicEntry.new("application/epub+zip", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30, "mimetypeapplication/epub+zip".to_slice)])]), MagicEntry.new("application/fits", [MagicRule.new(0, "SIMPLE = T".to_slice), MagicRule.new(0, "SIMPLE = T".to_slice)]), MagicEntry.new("application/gpx+xml", [MagicRule.new(0..4096, "<gpx".to_slice)]), MagicEntry.new("application/java-vm", [MagicRule.new(0, "\xCA\xFE\xBA\xBE".to_slice)]), MagicEntry.new("application/mac-binhex40", [MagicRule.new(11, "must be converted with BinHex".to_slice)]), MagicEntry.new("application/mathematica", [MagicRule.new(0, "(**".to_slice), MagicRule.new(0, "(* ".to_slice)]), MagicEntry.new("application/msword", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(546, "jbjb".to_slice), MagicRule.new(546, "bjbj".to_slice)])]), MagicEntry.new("application/msword2", [MagicRule.new(0, "\x9B\xA5".to_slice), MagicRule.new(0, "ۥ".to_slice)]), MagicEntry.new("application/msword5", [MagicRule.new(0, "\xFE7".to_slice)]), MagicEntry.new("application/octet-stream", [MagicRule.new(10, "# This is a shell archive".to_slice), MagicRule.new(0, "\u001F\u001E".to_slice), MagicRule.new(0, "\u001F\u001F".to_slice), MagicRule.new(0, "\xFF\u001F".to_slice), MagicRule.new(0, "\xFF\u001F".to_slice), MagicRule.new(0, "\u0005\xCB".to_slice)]), MagicEntry.new("application/ogg", [MagicRule.new(0, "OggS".to_slice)]), MagicEntry.new("application/onenote;format=one", [MagicRule.new(0, "\xE4R\\{".to_slice, [MagicRule.new(4, "\x8C\xD8".to_slice, [MagicRule.new(6, "\xA7M".to_slice, [MagicRule.new(8, "0xAEB15378D02996D3".to_slice)])])])]), MagicEntry.new("application/onenote;format=onetoc2", [MagicRule.new(0, "\xA1/\xFFC".to_slice, [MagicRule.new(4, "\xD9\xEF".to_slice, [MagicRule.new(6, "vL".to_slice, [MagicRule.new(8, "0x9EE210EA5722765F".to_slice)])])])]), MagicEntry.new("application/pgp-encrypted", [MagicRule.new(0, "\x85".to_slice, [MagicRule.new(3, "\u0003".to_slice)])]), MagicEntry.new("application/pkcs7-mime", [MagicRule.new(0, "0x30".to_slice, [MagicRule.new(0, "\u0006\v*\x86H\x86\xF7\r\u0001\t\u0010\u0001".to_slice)])]), MagicEntry.new("application/pkcs7-signature", [MagicRule.new(0, "-----BEGIN PKCS7".to_slice), MagicRule.new(0, "0x30".to_slice, [MagicRule.new(0, "\u0006\t*\x86H\x86\xF7\r\u0001\a".to_slice, [MagicRule.new(11, "\xA0".to_slice)])])]), MagicEntry.new("application/postscript", [MagicRule.new(0, "%!".to_slice), MagicRule.new(0, "\u0004%!".to_slice), MagicRule.new(0, "\xC5\xD0\xD3\xC6".to_slice), MagicRule.new(0, "%!PS-Adobe-3.0 EPSF-3.0".to_slice)]), MagicEntry.new("application/rtf", [MagicRule.new(0, "{\\rtf".to_slice)]), MagicEntry.new("application/sereal;version=1", [MagicRule.new(0, "=srl".to_slice)]), MagicEntry.new("application/sereal;version=2", [MagicRule.new(0, "=srl".to_slice)]), MagicEntry.new("application/sereal;version=3", [MagicRule.new(0, "=\xF3rl".to_slice)]), MagicEntry.new("application/vnd.android.axml", [MagicRule.new(0, "\u0003\u0000\b\u0000".to_slice, [MagicRule.new(8, "\u0001\u0000".to_slice)])]), MagicEntry.new("application/vnd.apple.mpegurl", [MagicRule.new(0, "#EXTM3U".to_slice)]), MagicEntry.new("application/vnd.digilite.prolights", [MagicRule.new(0, "\u007F\fD+".to_slice)]), MagicEntry.new("application/vnd.fdf", [MagicRule.new(0, "%FDF-".to_slice)]), MagicEntry.new("application/vnd.iccprofile", [MagicRule.new(36, "acsp".to_slice)]), MagicEntry.new("application/vnd.java.hprof", [MagicRule.new(0, Regex.new("JAVA PROFILE \\d\\.\\d\\.\\d\\x00"))]), MagicEntry.new("application/vnd.java.hprof.text", [MagicRule.new(0, Regex.new("JAVA PROFILE \\d\\.\\d\\.\\d,"))]), MagicEntry.new("application/vnd.lotus-1-2-3;version=1", [MagicRule.new(0, "\u0000\u0000\u0002\u0000\u0004\u0004".to_slice)]), MagicEntry.new("application/vnd.lotus-1-2-3;version=2", [MagicRule.new(0, "\u0000\u0000\u0002\u0000\u0006\u0004\u0006\u0000\b\u0000".to_slice)]), MagicEntry.new("application/vnd.lotus-1-2-3;version=3", [MagicRule.new(0, "\u0000\u0000\u001A\u0000\u0000\u0010\u0004\u0000".to_slice)]), MagicEntry.new("application/vnd.lotus-1-2-3;version=4", [MagicRule.new(0, "\u0000\u0000\u001A\u0000\u0002\u0010\u0004\u0000".to_slice)]), MagicEntry.new("application/vnd.lotus-1-2-3;version=97+9.x", [MagicRule.new(0, "\u0000\u0000\u001A\u0000\u0003\u0010\u0004\u0000".to_slice)]), MagicEntry.new("application/vnd.lotus-wordpro", [MagicRule.new(0, "WordPro\u0000".to_slice), MagicRule.new(0, "WordPro\r\xFB".to_slice)]), MagicEntry.new("application/vnd.mif", [MagicRule.new(0, "<MakerFile".to_slice), MagicRule.new(0, "<MIFFile".to_slice), MagicRule.new(0, "<MakerDictionary".to_slice), MagicRule.new(0, "<MakerScreenFont".to_slice), MagicRule.new(0, "<MML".to_slice), MagicRule.new(0, "<Book".to_slice), MagicRule.new(0, "<Maker".to_slice)]), MagicEntry.new("application/vnd.ms-cab-compressed", [MagicRule.new(0, "MSCF\u0000\u0000\u0000\u0000".to_slice)]), MagicEntry.new("application/vnd.ms-cab-compressed", [MagicRule.new(0, "MSCF".to_slice)]), MagicEntry.new("application/vnd.ms-fontobject", [MagicRule.new(8, "\u0002\u0000\u0002\u0000".to_slice, [MagicRule.new(34, "LP".to_slice)])]), MagicEntry.new("application/vnd.ms-htmlhelp", [MagicRule.new(0, "ITSF".to_slice)]), MagicEntry.new("application/vnd.ms-outlook-pst", [MagicRule.new(0, "!BDN".to_slice, [MagicRule.new(8, "SM".to_slice)])]), MagicEntry.new("application/vnd.ms-tnef", [MagicRule.new(0, "x\x9F>\"".to_slice)]), MagicEntry.new("application/vnd.ms-works", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(1152..4096, "M\u0000a\u0000t\u0000O\u0000S\u0000T".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.chart", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.chart".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.chart-template", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.chart-template".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.formula", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.formula".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.formula-template", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.formula-template".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.graphics", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.graphics".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.graphics-template", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.graphics-template".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.image", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.image".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.image-template", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.image-template".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.presentation", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.presentation".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.presentation-template", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.presentation-template".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.spreadsheet", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.spreadsheet".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.spreadsheet-template", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.spreadsheet-template".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.text", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.text".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.text-master", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.text-master".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.text-template", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.text-template".to_slice)])]), MagicEntry.new("application/vnd.oasis.opendocument.text-web", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.oasis.opendocument.text-web".to_slice)])]), MagicEntry.new("application/vnd.rn-realmedia", [MagicRule.new(0, ".RMF".to_slice)]), MagicEntry.new("application/vnd.stardivision.calc", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(2048..2207, "StarCalc".to_slice)])]), MagicEntry.new("application/vnd.stardivision.draw", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(2048..2207, "StarDraw".to_slice)])]), MagicEntry.new("application/vnd.stardivision.impress", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(2048..2207, "StarImpress".to_slice)])]), MagicEntry.new("application/vnd.stardivision.writer", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice, [MagicRule.new(2048..2207, "StarWriter".to_slice)])]), MagicEntry.new("application/vnd.sun.xml.writer", [MagicRule.new(0, "PK".to_slice, [MagicRule.new(30, "mimetypeapplication/vnd.sun.xml.writer".to_slice)])]), MagicEntry.new("application/vnd.symbian.install", [MagicRule.new(8, "\u0019\u0004\u0000\u0010".to_slice)]), MagicEntry.new("application/vnd.wolfram.wl", [MagicRule.new(0, "#!/usr/bin/env wolframscript".to_slice)]), MagicEntry.new("application/vnd.wordperfect", [MagicRule.new(0, "application/vnd.wordperfect;".to_slice)]), MagicEntry.new("application/vnd.wordperfect;version=4.2", [MagicRule.new(0, "\xCB\n\u0001".to_slice, [MagicRule.new(5, "\xCB".to_slice)])]), MagicEntry.new("application/vnd.wordperfect;version=5.0", [MagicRule.new(0, "\xFFWPC".to_slice, [MagicRule.new(10, "\u0000\u0000".to_slice)])]), MagicEntry.new("application/vnd.wordperfect;version=5.1", [MagicRule.new(0, "\xFFWPC".to_slice, [MagicRule.new(10, "\u0000\u0001".to_slice)])]), MagicEntry.new("application/vnd.wordperfect;version=6.x", [MagicRule.new(0, "\xFFWPC".to_slice, [MagicRule.new(10, "\u0002\u0001".to_slice)])]), MagicEntry.new("application/vnd.xara", [MagicRule.new(0, "xar!".to_slice)]), MagicEntry.new("application/wasm", [MagicRule.new(0, "\u0000asm".to_slice), MagicRule.new(0, "msa\u0000".to_slice)]), MagicEntry.new("application/x-7z-compressed", [MagicRule.new(0..1, "7z".to_slice, [MagicRule.new(2..5, "\xBC\xAF'\u001C".to_slice)])]), MagicEntry.new("application/x-adobe-indesign", [MagicRule.new(0, "\u0006\u0006\xED\xF5\xD8\u001DF\xE5\xBD1\xEF\xE7\xFEt\xB7\u001D".to_slice)]), MagicEntry.new("application/x-adobe-indesign-interchange", [MagicRule.new(0..100, "<?aid".to_slice)]), MagicEntry.new("application/x-amiga-disk-format", [MagicRule.new(0, "DOS".to_slice, [MagicRule.new(4, "\u0000".to_slice), MagicRule.new(4, "\u0001".to_slice), MagicRule.new(4, "\u0002".to_slice), MagicRule.new(4, "\u0003".to_slice), MagicRule.new(4, "\u0004".to_slice), MagicRule.new(4, "\u0005".to_slice), MagicRule.new(4, "\u0006".to_slice), MagicRule.new(4, "\a".to_slice)])]), MagicEntry.new("application/x-archive", [MagicRule.new(0, "=<ar>".to_slice), MagicRule.new(0, "!<arch>\n".to_slice)]), MagicEntry.new("application/x-arj", [MagicRule.new(0, "`\xEA".to_slice)]), MagicEntry.new("application/x-asprs", [MagicRule.new(0, "LASF".to_slice, [MagicRule.new(24, "\u0001\u0001".to_slice), MagicRule.new(24, "\u0001\u0002".to_slice)])]), MagicEntry.new("application/x-atari-floppy-disk-image", [MagicRule.new(0, "0x9602".to_slice, [MagicRule.new(4, "0x8000".to_slice, [MagicRule.new(11, "0x00000000".to_slice)]), MagicRule.new(4, "0x0001".to_slice, [MagicRule.new(11, "0x00000000".to_slice)])])]), MagicEntry.new("application/x-bat", [MagicRule.new(0, "@echo off".to_slice), MagicRule.new(0, "rem ".to_slice)]), MagicEntry.new("application/x-berkeley-db;format=btree", [MagicRule.new(0, "b1\u0005\u0000".to_slice), MagicRule.new(0, "\u0000\u00051b".to_slice), MagicRule.new(0, "b1\u0005\u0000".to_slice), MagicRule.new(12, "b1\u0005\u0000".to_slice), MagicRule.new(12, "\u0000\u00051b".to_slice), MagicRule.new(12, "b1\u0005\u0000".to_slice)]), MagicEntry.new("application/x-berkeley-db;format=hash", [MagicRule.new(0, "a\u0015\u0006\u0000".to_slice), MagicRule.new(0, "\u0000\u0006\u0015a".to_slice), MagicRule.new(0, "a\u0015\u0006\u0000".to_slice), MagicRule.new(12, "a\u0015\u0006\u0000".to_slice), MagicRule.new(12, "\u0000\u0006\u0015a".to_slice), MagicRule.new(12, "a\u0015\u0006\u0000".to_slice)]), MagicEntry.new("application/x-berkeley-db;format=log", [MagicRule.new(12, "\x88\t\u0004\u0000".to_slice), MagicRule.new(12, "\x88\t\u0004\u0000".to_slice), MagicRule.new(12, "\u0000\u0004\t\x88".to_slice)]), MagicEntry.new("application/x-berkeley-db;format=queue", [MagicRule.new(12, "S\"\u0004\u0000".to_slice), MagicRule.new(12, "\u0000\u0004\"S".to_slice), MagicRule.new(12, "S\"\u0004\u0000".to_slice)]), MagicEntry.new("application/x-bibtex-text-file", [MagicRule.new(0, "% BibTeX `".to_slice), MagicRule.new(73, "%%% ".to_slice), MagicRule.new(0, "% BibTeX standard bibliography ".to_slice), MagicRule.new(73, "%%% @BibTeX-style-file{".to_slice), MagicRule.new(0, "@article{".to_slice), MagicRule.new(0, "@book{".to_slice), MagicRule.new(0, "@inbook{".to_slice), MagicRule.new(0, "@incollection{".to_slice), MagicRule.new(0, "@inproceedings{".to_slice), MagicRule.new(0, "@manual{".to_slice), MagicRule.new(0, "@misc{".to_slice), MagicRule.new(0, "@preamble{".to_slice), MagicRule.new(0, "@phdthesis{".to_slice), MagicRule.new(0, "@string{".to_slice), MagicRule.new(0, "@techreport{".to_slice), MagicRule.new(0, "@unpublished{".to_slice)]), MagicEntry.new("application/x-bittorrent", [MagicRule.new(0, "d8:announce".to_slice)]), MagicEntry.new("application/x-cdf", [MagicRule.new(0, "RIFF$\u0000\u0000\u0000CDDAfmt \u0018".to_slice), MagicRule.new(0, nil)]), MagicEntry.new("application/x-chrome-package", [MagicRule.new(0, "Cr24".to_slice)]), MagicEntry.new("application/x-compress", [MagicRule.new(0, "\u001F\x9D".to_slice)]), MagicEntry.new("application/x-coredump", [MagicRule.new(0, "\u007FELF".to_slice, [MagicRule.new(16, "\u0004\u0000".to_slice), MagicRule.new(16, "\u0000\u0004".to_slice)])]), MagicEntry.new("application/x-cpio", [MagicRule.new(0, "\xC7q".to_slice), MagicRule.new(0, "q\xC7".to_slice), MagicRule.new(0, "070707".to_slice), MagicRule.new(0, "070701".to_slice), MagicRule.new(0, "070702".to_slice)]), MagicEntry.new("application/x-dex", [MagicRule.new(0, "dex\n".to_slice, [MagicRule.new(7, "\u0000".to_slice)])]), MagicEntry.new("application/x-dvi", [MagicRule.new(0, "\xF7\u0002".to_slice), MagicRule.new(0, "\xF7\u0002".to_slice), MagicRule.new(14, "\e TeX output ".to_slice)]), MagicEntry.new("application/x-elc", [MagicRule.new(0, "\n(".to_slice), MagicRule.new(0, ";ELC\u0013\u0000\u0000\u0000".to_slice)]), MagicEntry.new("application/x-elf", [MagicRule.new(0, "\u007FELF".to_slice)]), MagicEntry.new("application/x-endnote-style", [MagicRule.new(0, "\u0000\b".to_slice, [MagicRule.new(4, "\u0000\u0000".to_slice, [MagicRule.new(8, "RSFTSTYL".to_slice), MagicRule.new(8, "ENDNENFT".to_slice)])])]), MagicEntry.new("application/x-erdas-hfa", [MagicRule.new(0, "EHFA_HEADER_TAG".to_slice)]), MagicEntry.new("application/x-executable", [MagicRule.new(0, "\u007FELF".to_slice, [MagicRule.new(16, "\u0002\u0000".to_slice), MagicRule.new(16, "\u0000\u0002".to_slice)])]), MagicEntry.new("application/x-fat-diskimage", [MagicRule.new(0, "\\xEB".to_slice, [MagicRule.new(2, "\\x90".to_slice)])]), MagicEntry.new("application/x-filemaker", [MagicRule.new(14, "\xC0HBAM7".to_slice, [MagicRule.new(525, "HBAM2101OCT99\xC1\u0002H\aPro 7.0\xC0\xC0".to_slice)])]), MagicEntry.new("application/x-foxmail", [MagicRule.new(0, "\u0010\u0010\u0010\u0010\u0010\u0010\u0010\u0011\u0011\u0011\u0011\u0011\u0011S".to_slice)]), MagicEntry.new("application/x-gnumeric", [MagicRule.new(39, "=<gmr:Workbook".to_slice)]), MagicEntry.new("application/x-grib", [MagicRule.new(0, "GRIB".to_slice, [MagicRule.new(7, "\u0001".to_slice)]), MagicRule.new(0, "GRIB".to_slice, [MagicRule.new(7, "\u0002".to_slice)])]), MagicEntry.new("application/x-gtar", [MagicRule.new(257, "ustar \u0000".to_slice)]), MagicEntry.new("application/x-guitar-pro", [MagicRule.new(1, "FICHIER GUITARE PRO ".to_slice), MagicRule.new(1, "FICHIER GUITAR PRO ".to_slice)]), MagicEntry.new("application/x-hdf", [MagicRule.new(0, "\u000E\u0003\u0013\u0001".to_slice), MagicRule.new(0, "\x89HDF\r\n\u001A".to_slice)]), MagicEntry.new("application/x-hwp", [MagicRule.new(0, "HWP Document File V".to_slice)]), MagicEntry.new("application/x-ibooks+zip", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30, "mimetypeapplication/x-ibooks+zip".to_slice)])]), MagicEntry.new("application/x-idl-save-file", [MagicRule.new(0, "SR\u0000\u0004\u0000\u0000\u0000\n\u0000\u0000\u0004".to_slice)]), MagicEntry.new("application/x-isatab", [MagicRule.new(1, "Source Name".to_slice)]), MagicEntry.new("application/x-isatab-assay", [MagicRule.new(1, "Sample Name".to_slice)]), MagicEntry.new("application/x-isatab-investigation", [MagicRule.new(0, "ONTOLOGY SOURCE REFERENCE".to_slice)]), MagicEntry.new("application/x-java-keystore", [MagicRule.new(0..4, "\xFE\xED\xFE\xED".to_slice)]), MagicEntry.new("application/x-jeol-jdf", [MagicRule.new(0, "JEOL.NMR".to_slice), MagicRule.new(0, "RMN.LOEJ".to_slice)]), MagicEntry.new("application/x-jigdo", [MagicRule.new(0, "JigsawDownload template".to_slice)]), MagicEntry.new("application/x-kdelnk", [MagicRule.new(0, "[KDE Desktop Entry]".to_slice), MagicRule.new(0, "# KDE Config File".to_slice)]), MagicEntry.new("application/x-latex", [MagicRule.new(0, "% -*-latex-*-".to_slice)]), MagicEntry.new("application/x-lha", [MagicRule.new(2, "-lzs-".to_slice), MagicRule.new(2, "-lh -".to_slice), MagicRule.new(2, "-lhd-".to_slice), MagicRule.new(2, "-lh2-".to_slice), MagicRule.new(2, "-lh3-".to_slice), MagicRule.new(2, "-lh4-".to_slice), MagicRule.new(2, "-lh5-".to_slice), MagicRule.new(2, "-lh6-".to_slice), MagicRule.new(2, "-lh7-".to_slice)]), MagicEntry.new("application/x-lharc", [MagicRule.new(2, "-lh0-".to_slice), MagicRule.new(2, "-lh1-".to_slice), MagicRule.new(2, "-lz4-".to_slice), MagicRule.new(2, "-lz5-".to_slice)]), MagicEntry.new("application/x-lzip", [MagicRule.new(0, "LZIP".to_slice)]), MagicEntry.new("application/x-mach-o", [MagicRule.new(0, "\xFE\xED\xFA\xCE".to_slice), MagicRule.new(0, "\xCE\xFA\xED\xFE".to_slice), MagicRule.new(0, "\xFE\xED\xFA\xCF".to_slice), MagicRule.new(0, "\xCF\xFA\xED\xFE".to_slice)]), MagicEntry.new("application/x-matlab-data", [MagicRule.new(0, "MATLAB".to_slice)]), MagicEntry.new("application/x-mmm-digisonde", [MagicRule.new(0, "\t<\u0000".to_slice, [MagicRule.new(24, "\u0000\u0000".to_slice)])]), MagicEntry.new("application/x-ms-compress-szdd", [MagicRule.new(0, "0x535A444488F0273341".to_slice)]), MagicEntry.new("application/x-msdownload", [MagicRule.new(0, "MZ".to_slice)]), MagicEntry.new("application/x-mswrite", [MagicRule.new(0, "1\xBE\u0000\u0000".to_slice), MagicRule.new(0, "2\xBE\u0000\u0000".to_slice)]), MagicEntry.new("application/x-nesrom", [MagicRule.new(0, "NES\u001A".to_slice)]), MagicEntry.new("application/x-netcdf", [MagicRule.new(0, "CDF\u0001".to_slice), MagicRule.new(0, "CDF\u0002".to_slice), MagicRule.new(0, "CDF\u0001".to_slice)]), MagicEntry.new("application/x-object", [MagicRule.new(0, "\u007FELF".to_slice, [MagicRule.new(16, "\u0001\u0000".to_slice), MagicRule.new(16, "\u0000\u0001".to_slice)])]), MagicEntry.new("application/x-ole-storage", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice)]), MagicEntry.new("application/x-parquet", [MagicRule.new(0, "PAR1".to_slice)]), MagicEntry.new("application/x-pds", [MagicRule.new(0, "PDS_VERSION_ID".to_slice)]), MagicEntry.new("application/x-pkcs12", [MagicRule.new(0, "0x30".to_slice, [MagicRule.new(2..6, "0x02010330".to_slice, [MagicRule.new(0, "\u0006\t*\x86H\x86\xF7\r\u0001\a".to_slice)])])]), MagicEntry.new("application/x-project", [MagicRule.new(0, "MPX,Microsoft Project for Windows,".to_slice)]), MagicEntry.new("application/x-prt", [MagicRule.new(8, "0M3C".to_slice)]), MagicEntry.new("application/x-quattro-pro;version=1+5", [MagicRule.new(0, "\u0000\u0000\u0002\u0000\u0001\u0010".to_slice)]), MagicEntry.new("application/x-quattro-pro;version=1-4", [MagicRule.new(0, "\u0000\u0000\u0002\u0000 Q".to_slice)]), MagicEntry.new("application/x-quattro-pro;version=5", [MagicRule.new(0, "\u0000\u0000\u0002\u0000!Q".to_slice)]), MagicEntry.new("application/x-quattro-pro;version=6", [MagicRule.new(0, "\u0000\u0000\u0002\u0000\u0002\u0010".to_slice)]), MagicEntry.new("application/x-rar-compressed", [MagicRule.new(0, "Rar!".to_slice), MagicRule.new(0, "Rar!\u001A".to_slice)]), MagicEntry.new("application/x-rpm", [MagicRule.new(0, "\xED\xAB\xEE\xDB".to_slice)]), MagicEntry.new("application/x-sc", [MagicRule.new(38, "Spreadsheet".to_slice)]), MagicEntry.new("application/x-sh", [MagicRule.new(0, "#!/".to_slice), MagicRule.new(0, "#! /".to_slice), MagicRule.new(0, "#!\t/".to_slice), MagicRule.new(0, "eval \"exec".to_slice)]), MagicEntry.new("application/x-sharedlib", [MagicRule.new(0, "\u007FELF".to_slice, [MagicRule.new(16, "\u0003\u0000".to_slice), MagicRule.new(16, "\u0000\u0003".to_slice)])]), MagicEntry.new("application/x-shockwave-flash", [MagicRule.new(0, "FWS".to_slice), MagicRule.new(0, "CWS".to_slice)]), MagicEntry.new("application/x-sibelius", [MagicRule.new(0, "\u000FSIBELIUS".to_slice)]), MagicEntry.new("application/x-snappy-framed", [MagicRule.new(0, "sNaPpY".to_slice)]), MagicEntry.new("application/x-spectrum-tzx", [MagicRule.new(0, "ZXTape!\u001A".to_slice)]), MagicEntry.new("application/x-spss-sav", [MagicRule.new(0, "$FL2@(#)".to_slice)]), MagicEntry.new("application/x-sqlite3", [MagicRule.new(0, "SQLite format 3\u0000".to_slice)]), MagicEntry.new("application/x-stata-dta", [MagicRule.new(0, "<stata_dta><header><release>".to_slice)]), MagicEntry.new("application/x-stuffit", [MagicRule.new(0, "StuffIt".to_slice)]), MagicEntry.new("application/x-subrip", [MagicRule.new(0, "1\n00".to_slice), MagicRule.new(0, "1\r00".to_slice), MagicRule.new(0, "1\r\n\u0013\u0003\u0000".to_slice), MagicRule.new(0, "\uFEFF1\n00".to_slice), MagicRule.new(0, "\uFEFF1\r00".to_slice), MagicRule.new(0, "\uFEFF1\r\n\u0013\u0003\u0000".to_slice)]), MagicEntry.new("application/x-tex", [MagicRule.new(0, "\\input".to_slice), MagicRule.new(0, "\\section".to_slice), MagicRule.new(0, "\\setlength".to_slice), MagicRule.new(0, "\\documentstyle".to_slice), MagicRule.new(0, "\\chapter".to_slice), MagicRule.new(0, "\\documentclass".to_slice), MagicRule.new(0, "\\relax".to_slice), MagicRule.new(0, "\\contentsline".to_slice)]), MagicEntry.new("application/x-tex-virtual-font", [MagicRule.new(0, "\xF7\xCA".to_slice, [MagicRule.new(11, "\xF3\u0000".to_slice, [MagicRule.new(17, "\u0000\u0010".to_slice)])])]), MagicEntry.new("application/x-texinfo", [MagicRule.new(0, "\\input texinfo".to_slice)]), MagicEntry.new("application/x-tika-ooxml", [MagicRule.new(0, "PK\u0003\u0004".to_slice, [MagicRule.new(30, "[Content_Types].xml".to_slice), MagicRule.new(30, "_rels/.rels".to_slice)])]), MagicEntry.new("application/x-touhou", [MagicRule.new(0, "t1".to_slice)]), MagicEntry.new("application/x-uc2-compressed", [MagicRule.new(0, "UC2\u001A".to_slice)]), MagicEntry.new("application/x-vhd", [MagicRule.new(0, "conectix".to_slice)]), MagicEntry.new("application/x-x509-cert;format=pem", [MagicRule.new(0, "-----BEGIN CERTIFICATE-----".to_slice)]), MagicEntry.new("application/x-x509-dsa-parameters", [MagicRule.new(0, "-----BEGIN DSA PARAMETERS-----".to_slice)]), MagicEntry.new("application/x-x509-ec-parameters", [MagicRule.new(0, "-----BEGIN EC PARAMETERS-----".to_slice)]), MagicEntry.new("application/x-x509-key;format=pem", [MagicRule.new(0, "-----BEGIN PRIVATE KEY-----".to_slice), MagicRule.new(0, "-----BEGIN PUBLIC KEY-----".to_slice), MagicRule.new(0, "-----BEGIN KEY-----".to_slice), MagicRule.new(0, "-----BEGIN RSA KEY-----".to_slice), MagicRule.new(0, "-----BEGIN RSA PRIVATE KEY-----".to_slice), MagicRule.new(0, "-----BEGIN DSA KEY-----".to_slice), MagicRule.new(0, "-----BEGIN DSA PRIVATE KEY-----".to_slice)]), MagicEntry.new("application/x-xz", [MagicRule.new(0, "\xFD7zXZ\u0000".to_slice)]), MagicEntry.new("application/x-zim", [MagicRule.new(0, "0x5A494D04".to_slice)]), MagicEntry.new("application/x-zoo", [MagicRule.new(20, "ܧ\xC4\xFD".to_slice)]), MagicEntry.new("application/xml", [MagicRule.new(0, "<?xml".to_slice), MagicRule.new(0, "<?XML".to_slice), MagicRule.new(0, "\uFEFF<?xml".to_slice), MagicRule.new(0, "\xFF\xFE<\u0000?\u0000x\u0000m\u0000l\u0000".to_slice), MagicRule.new(0, "\xFE\xFF\u0000<\u0000?\u0000x\u0000m\u0000l".to_slice)]), MagicEntry.new("application/zip", [MagicRule.new(0, "PK\u0003\u0004".to_slice), MagicRule.new(0, "PK\u0005\u0006".to_slice), MagicRule.new(0, "PK\a\b".to_slice)]), MagicEntry.new("application/zstd", [MagicRule.new(0, "(\xB5/\xFD".to_slice)]), MagicEntry.new("audio/ac3", [MagicRule.new(0, "\vw".to_slice)]), MagicEntry.new("audio/amr-wb", [MagicRule.new(0, "#!AMR-WB\n".to_slice)]), MagicEntry.new("audio/eac3", [MagicRule.new(0, "\vw".to_slice)]), MagicEntry.new("audio/prs.sid", [MagicRule.new(0, "PSID".to_slice)]), MagicEntry.new("audio/webm", [MagicRule.new(0, "\u001AEߣ".to_slice, [MagicRule.new(4..4096, "B\x82".to_slice, [MagicRule.new(4..4096, "webm".to_slice, [MagicRule.new(4..4096, "A_VORBIS".to_slice), MagicRule.new(4..4096, "A_OPUS".to_slice)])])])]), MagicEntry.new("audio/x-flac", [MagicRule.new(0, "fLaC".to_slice)]), MagicEntry.new("audio/x-mod", [MagicRule.new(0, "Extended Module:".to_slice), MagicRule.new(21, "BMOD2STM".to_slice), MagicRule.new(1080, "M.K.".to_slice), MagicRule.new(1080, "M!K!".to_slice), MagicRule.new(1080, "FLT4".to_slice), MagicRule.new(1080, "FLT8".to_slice), MagicRule.new(1080, "4CHN".to_slice), MagicRule.new(1080, "6CHN".to_slice), MagicRule.new(1080, "8CHN".to_slice), MagicRule.new(1080, "CD81".to_slice), MagicRule.new(1080, "OKTA".to_slice), MagicRule.new(1080, "16CN".to_slice), MagicRule.new(1080, "32CN".to_slice), MagicRule.new(0, "IMPM".to_slice)]), MagicEntry.new("audio/x-mpegurl", [MagicRule.new(0, "#EXTM3U\r\n".to_slice)]), MagicEntry.new("audio/x-ms-wma", [MagicRule.new(0..8192, "W\u0000i\u0000n\u0000d\u0000o\u0000w\u0000s\u0000 \u0000M\u0000e\u0000d\u0000i\u0000a\u0000 \u0000A\u0000u\u0000d\u0000i\u0000o\u0000".to_slice)]), MagicEntry.new("audio/x-pn-realaudio", [MagicRule.new(0, ".ra\xFD".to_slice)]), MagicEntry.new("audio/x-psf", [MagicRule.new(0, "PSF".to_slice, [MagicRule.new(3, "\u0001".to_slice), MagicRule.new(3, "\u0002".to_slice), MagicRule.new(3, "\u0011".to_slice), MagicRule.new(3, "\u0012".to_slice), MagicRule.new(3, "\u0013".to_slice), MagicRule.new(3, "!".to_slice), MagicRule.new(3, "\"".to_slice), MagicRule.new(3, "#".to_slice), MagicRule.new(3, "A".to_slice)])]), MagicEntry.new("audio/x-sap", [MagicRule.new(0, "SAP\r\n".to_slice)]), MagicEntry.new("chemical/x-cdx", [MagicRule.new(0, "VjCD0100".to_slice)]), MagicEntry.new("font/woff", [MagicRule.new(0, "wOFF".to_slice)]), MagicEntry.new("font/woff2", [MagicRule.new(0, "wOF2".to_slice)]), MagicEntry.new("image/aces", [MagicRule.new(0, "v/1\u0001\u0002\u0000\u0000\u0000".to_slice), MagicRule.new(0, "v/1\u0001\u0002\u0004\u0000\u0000".to_slice)]), MagicEntry.new("image/cgm", [MagicRule.new(0, "BEGMF".to_slice)]), MagicEntry.new("image/emf", [MagicRule.new(0, "\u0001\u0000\u0000\u0000".to_slice, [MagicRule.new(40, " EMF".to_slice)])]), MagicEntry.new("image/fits", [MagicRule.new(0, "SIMPLE = ".to_slice)]), MagicEntry.new("image/heic", [MagicRule.new(4, "ftypheic".to_slice), MagicRule.new(4, "ftypheix".to_slice)]), MagicEntry.new("image/heic-sequence", [MagicRule.new(4, "ftyphevc".to_slice), MagicRule.new(4, "ftyphevx".to_slice)]), MagicEntry.new("image/heif", [MagicRule.new(4, "ftypmif1".to_slice)]), MagicEntry.new("image/heif-sequence", [MagicRule.new(4, "ftypmsf1".to_slice)]), MagicEntry.new("image/icns", [MagicRule.new(0, "icns".to_slice)]), MagicEntry.new("image/jp2", [MagicRule.new(0, "\u0000\u0000\u0000\fjP \r\n\x87\n".to_slice, [MagicRule.new(20, "jp2 ".to_slice)])]), MagicEntry.new("image/jpm", [MagicRule.new(0, "\u0000\u0000\u0000\fjP \r\n\x87\n".to_slice, [MagicRule.new(20, "jpm ".to_slice)])]), MagicEntry.new("image/jpx", [MagicRule.new(0, "\u0000\u0000\u0000\fjP \r\n\x87\n".to_slice, [MagicRule.new(20, "jpx ".to_slice)])]), MagicEntry.new("image/jxl", [MagicRule.new(0, "\xFF\n".to_slice), MagicRule.new(0, "\u0000\u0000\u0000\fJXL \r\n\x87\n".to_slice)]), MagicEntry.new("image/nitf", [MagicRule.new(0, "NITF01.10".to_slice), MagicRule.new(0, "NITF02.000".to_slice), MagicRule.new(0, "NITF02.100".to_slice)]), MagicEntry.new("image/svg+xml", [MagicRule.new(0, "<svg".to_slice, [MagicRule.new(5..256, "http://www.w3.org/2000/svg".to_slice)])]), MagicEntry.new("image/vnd.djvu", [MagicRule.new(0, "AT&TFORM".to_slice)]), MagicEntry.new("image/vnd.dwg", [MagicRule.new(0, "MC0.0".to_slice), MagicRule.new(0, "AC1.2".to_slice), MagicRule.new(0, "AC1.40".to_slice), MagicRule.new(0, "AC1.50".to_slice), MagicRule.new(0, "AC2.10".to_slice), MagicRule.new(0, "AC2.21".to_slice), MagicRule.new(0, "AC2.22".to_slice)]), MagicEntry.new("image/vnd.dxb", [MagicRule.new(0, "AutoCAD DXB 1.0\r\n0x1A00".to_slice)]), MagicEntry.new("image/vnd.dxf;format=binary", [MagicRule.new(0, "AutoCAD Binary DXF\r\n0x1A00".to_slice)]), MagicEntry.new("image/vnd.microsoft.icon", [MagicRule.new(0, "BA(\u0000\u0000\u0000.\u0000\u0000\u0000\u0000\u0000\u0000\u0000".to_slice), MagicRule.new(0, "\u0000\u0000\u0001\u0000".to_slice)]), MagicEntry.new("image/vnd.ms-modi", [MagicRule.new(0, "EP*\u0000".to_slice)]), MagicEntry.new("image/vnd.zbrush.dcx", [MagicRule.new(0, "\xB1h\xDE:".to_slice)]), MagicEntry.new("image/wmf", [MagicRule.new(0, "\xD7\xCDƚ\u0000\u0000".to_slice), MagicRule.new(0, "\u0001\u0000\t\u0000\u0000\u0003".to_slice)]), MagicEntry.new("image/x-3ds", [MagicRule.new(0, "MM".to_slice, [MagicRule.new(6, "\u0002\u0000\n\u0000\u0000\u0000".to_slice, [MagicRule.new(16, "==".to_slice)])])]), MagicEntry.new("image/x-bpg", [MagicRule.new(0, "BPG\xFB".to_slice)]), MagicEntry.new("image/x-dpx", [MagicRule.new(0, "SDPX".to_slice), MagicRule.new(0, "XPDS".to_slice)]), MagicEntry.new("image/x-freehand", [MagicRule.new(0, "AGD2".to_slice), MagicRule.new(0, "AGD3".to_slice), MagicRule.new(0, "AGD4".to_slice), MagicRule.new(0..24, "FreeHand10".to_slice), MagicRule.new(0..24, "FreeHand11".to_slice), MagicRule.new(0..24, "FreeHand12".to_slice)]), MagicEntry.new("image/x-jbig2", [MagicRule.new(0, "\x97JB2\r\n\u001A\n".to_slice)]), MagicEntry.new("image/x-jp2-container", [MagicRule.new(0, "\u0000\u0000\u0000\fjP \r\n\x87\n".to_slice)]), MagicEntry.new("image/x-niff", [MagicRule.new(0, "IIN1".to_slice)]), MagicEntry.new("image/x-os2-graphics; charset=binary", [MagicRule.new(0, "BA".to_slice, [MagicRule.new(14, "BM".to_slice), MagicRule.new(14, "CI".to_slice), MagicRule.new(14, "IC".to_slice), MagicRule.new(14, "CP".to_slice), MagicRule.new(14, "PT".to_slice)])]), MagicEntry.new("image/x-pict", [MagicRule.new(522, "\u0000\u0011\u0002\xFF\f\u0000".to_slice)]), MagicEntry.new("image/x-portable-arbitrarymap", [MagicRule.new(0, "P7".to_slice, [MagicRule.new(2, "\n".to_slice), MagicRule.new(2, "\r".to_slice), MagicRule.new(2, " ".to_slice)])]), MagicEntry.new("image/x-portable-bitmap", [MagicRule.new(0, "P1".to_slice, [MagicRule.new(2, "\n".to_slice), MagicRule.new(2, "\r".to_slice), MagicRule.new(2, " ".to_slice)])]), MagicEntry.new("image/x-portable-graymap", [MagicRule.new(0, "P2".to_slice, [MagicRule.new(2, "\n".to_slice), MagicRule.new(2, "\r".to_slice), MagicRule.new(2, " ".to_slice)])]), MagicEntry.new("image/x-portable-pixmap", [MagicRule.new(0, "P3".to_slice, [MagicRule.new(2, "\n".to_slice), MagicRule.new(2, "\r".to_slice), MagicRule.new(2, " ".to_slice)])]), MagicEntry.new("image/x-raw-canon", [MagicRule.new(0, "II\u001A\u0000\u0000\u0000HEAPCCDR".to_slice)]), MagicEntry.new("image/x-raw-olympus", [MagicRule.new(0, "IIRO".to_slice)]), MagicEntry.new("image/x-rgb", [MagicRule.new(0, "\u0001\xDA\u0001\u0001\u0000\u0003".to_slice)]), MagicEntry.new("image/x-xbitmap", [MagicRule.new(0, "/* XPM".to_slice)]), MagicEntry.new("image/x-xcf", [MagicRule.new(0, "gimp xcf ".to_slice)]), MagicEntry.new("message/news", [MagicRule.new(0, "Article".to_slice)]), MagicEntry.new("message/rfc822", [MagicRule.new(0, "Relay-Version:".to_slice), MagicRule.new(0, "#! rnews".to_slice), MagicRule.new(0, "N#! rnews".to_slice), MagicRule.new(0, "Forward to".to_slice), MagicRule.new(0, "Pipe to".to_slice), MagicRule.new(0, "Return-Path:".to_slice), MagicRule.new(0, "Message-ID:".to_slice), MagicRule.new(0, "X-Mailer:".to_slice), MagicRule.new(0, "X-Notes-Item:".to_slice, [MagicRule.new(0..8192, "Message-ID:".to_slice)])]), MagicEntry.new("model/vnd.dwf", [MagicRule.new(0, "(DWF V".to_slice, [MagicRule.new(8, ".".to_slice, [MagicRule.new(11, ")".to_slice)])])]), MagicEntry.new("multipart/appledouble", [MagicRule.new(0, "\u0000\u0005\u0016\a".to_slice)]), MagicEntry.new("text/calendar", [MagicRule.new(0, "BEGIN:VCALENDAR".to_slice, [MagicRule.new(15..360, "\nVERSION:2.0".to_slice)])]), MagicEntry.new("text/javascript", [MagicRule.new(0, "/* jQuery ".to_slice), MagicRule.new(0, "/*! jQuery ".to_slice), MagicRule.new(0, "/*!".to_slice, [MagicRule.new(4..8, "* jQuery ".to_slice)]), MagicRule.new(0, "(function(e,undefined){".to_slice), MagicRule.new(0, "!function(window,undefined){".to_slice), MagicRule.new(0, "/* Prototype JavaScript ".to_slice), MagicRule.new(0, "var Prototype={".to_slice), MagicRule.new(0, "function $w(t){".to_slice), MagicRule.new(0, "/** @license React".to_slice), MagicRule.new(0, "/**".to_slice, [MagicRule.new(4..8, "* React ".to_slice)])]), MagicEntry.new("text/troff", [MagicRule.new(0, ".\\\"".to_slice), MagicRule.new(0, "'\\\"".to_slice), MagicRule.new(0, "'.\\\"".to_slice), MagicRule.new(0, "\\\"".to_slice), MagicRule.new(0, "'''".to_slice)]), MagicEntry.new("text/vnd.iptc.anpa", [MagicRule.new(0, "\u0016\u0016\u0001".to_slice)]), MagicEntry.new("text/x-awk", [MagicRule.new(0, "#!/bin/gawk".to_slice), MagicRule.new(0, "#! /bin/gawk".to_slice), MagicRule.new(0, "#!/usr/bin/gawk".to_slice), MagicRule.new(0, "#! /usr/bin/gawk".to_slice), MagicRule.new(0, "#!/usr/local/bin/gawk".to_slice), MagicRule.new(0, "#! /usr/local/bin/gawk".to_slice), MagicRule.new(0, "#!/bin/awk".to_slice), MagicRule.new(0, "#! /bin/awk".to_slice), MagicRule.new(0, "#!/usr/bin/awk".to_slice), MagicRule.new(0, "#! /usr/bin/awk".to_slice)]), MagicEntry.new("text/x-diff", [MagicRule.new(0, "diff ".to_slice), MagicRule.new(0, "*** ".to_slice), MagicRule.new(0, "Only in ".to_slice), MagicRule.new(0, "Common subdirectories: ".to_slice), MagicRule.new(0, "Index:".to_slice)]), MagicEntry.new("text/x-jsp", [MagicRule.new(0, "<%@".to_slice), MagicRule.new(0, "<%--".to_slice)]), MagicEntry.new("text/x-matlab", [MagicRule.new(0, "function [".to_slice)]), MagicEntry.new("text/x-perl", [MagicRule.new(0, "eval \"exec /usr/local/bin/perl".to_slice), MagicRule.new(0, "#!/bin/perl".to_slice), MagicRule.new(0, "#!/bin/env perl".to_slice), MagicRule.new(0, "#!/usr/bin/perl".to_slice), MagicRule.new(0, "#!/usr/local/bin/perl".to_slice)]), MagicEntry.new("text/x-php", [MagicRule.new(0, "<?php".to_slice)]), MagicEntry.new("text/x-python", [MagicRule.new(0, "#!/bin/python".to_slice), MagicRule.new(0, "#! /bin/python".to_slice), MagicRule.new(0, "eval \"exec /bin/python".to_slice), MagicRule.new(0, "#!/usr/bin/python".to_slice), MagicRule.new(0, "#! /usr/bin/python".to_slice), MagicRule.new(0, "eval \"exec /usr/bin/python".to_slice), MagicRule.new(0, "#!/usr/local/bin/python".to_slice), MagicRule.new(0, "#! /usr/local/bin/python".to_slice), MagicRule.new(0, "eval \"exec /usr/local/bin/python".to_slice), MagicRule.new(1, "/bin/env python".to_slice)]), MagicEntry.new("text/x-vcalendar", [MagicRule.new(0, "BEGIN:VCALENDAR".to_slice, [MagicRule.new(15..30, "VERSION:1.0".to_slice)])]), MagicEntry.new("text/x-vcard", [MagicRule.new(0, "BEGIN:VCARD".to_slice)]), MagicEntry.new("video/mj2", [MagicRule.new(0, "\u0000\u0000\u0000\fjP \r\n\x87\n".to_slice, [MagicRule.new(20, "mjp2".to_slice)])]), MagicEntry.new("video/x-jng", [MagicRule.new(0, "\x8BJNG".to_slice)]), MagicEntry.new("video/x-mng", [MagicRule.new(0, "\x8AMNG".to_slice)]), MagicEntry.new("video/x-ms-asf", [MagicRule.new(0, "0&\xB2u".to_slice)]), MagicEntry.new("video/x-sgi-movie", [MagicRule.new(0, "MOVI\u0000".to_slice), MagicRule.new(0, "MOVI\u0001".to_slice), MagicRule.new(0, "MOVI\u0002".to_slice), MagicRule.new(0, "MOVI\xFE".to_slice), MagicRule.new(0, "MOVI\xFF".to_slice)]), MagicEntry.new("application/gzip", [MagicRule.new(0, "\u001F\x8B".to_slice), MagicRule.new(0, "\u001F\x8B".to_slice)]), MagicEntry.new("application/zlib", [MagicRule.new(0, "x\u0001".to_slice), MagicRule.new(0, "x^".to_slice), MagicRule.new(0, "x\x9C".to_slice), MagicRule.new(0, "x\xDA".to_slice)]), MagicEntry.new("image/bmp", [MagicRule.new(0, "BM".to_slice, [MagicRule.new(26, "\u0001\u0000".to_slice, [MagicRule.new(28, "\u0000\u0000".to_slice), MagicRule.new(28, "\u0001\u0000".to_slice), MagicRule.new(28, "\u0004\u0000".to_slice), MagicRule.new(28, "\b\u0000".to_slice), MagicRule.new(28, "\u0010\u0000".to_slice), MagicRule.new(28, "\u0018\u0000".to_slice), MagicRule.new(28, " \u0000".to_slice)])])]), MagicEntry.new("message/rfc822", [MagicRule.new(0, nil, [MagicRule.new(0, nil, [MagicRule.new(0, "Content-ID:".to_slice), MagicRule.new(0, "Content-Location:".to_slice), MagicRule.new(0, "Content-Transfer-Encoding:".to_slice), MagicRule.new(0, "Content-Type:".to_slice), MagicRule.new(0, "Date:".to_slice), MagicRule.new(0, "Delivered-To:".to_slice), MagicRule.new(0, "From:".to_slice), MagicRule.new(0, "Message-ID:".to_slice), MagicRule.new(0, "MIME-Version:".to_slice), MagicRule.new(0, "Received:".to_slice), MagicRule.new(0, "Relay-Version:".to_slice), MagicRule.new(0, "Return-Path:".to_slice), MagicRule.new(0, "Sent:".to_slice), MagicRule.new(0, "Status:".to_slice), MagicRule.new(0, "Subject:".to_slice), MagicRule.new(0, "To:".to_slice), MagicRule.new(0, "User-Agent:".to_slice), MagicRule.new(0, "X-Mailer:".to_slice), MagicRule.new(0, "X-Originating-IP:".to_slice), MagicRule.new(0, "\uFEFF".to_slice, [MagicRule.new(3, "Content-ID:".to_slice), MagicRule.new(3, "Content-Location:".to_slice), MagicRule.new(3, "Content-Transfer-Encoding:".to_slice), MagicRule.new(3, "Content-Type:".to_slice), MagicRule.new(3, "Date:".to_slice), MagicRule.new(3, "Delivered-To:".to_slice), MagicRule.new(3, "From:".to_slice), MagicRule.new(3, "Message-ID:".to_slice), MagicRule.new(3, "MIME-Version:".to_slice), MagicRule.new(3, "Received:".to_slice), MagicRule.new(3, "Relay-Version:".to_slice), MagicRule.new(3, "Return-Path:".to_slice), MagicRule.new(3, "Sent:".to_slice), MagicRule.new(3, "Status:".to_slice), MagicRule.new(3, "Subject:".to_slice), MagicRule.new(3, "To:".to_slice), MagicRule.new(3, "User-Agent:".to_slice), MagicRule.new(3, "X-Mailer:".to_slice), MagicRule.new(3, "X-Originating-IP:".to_slice)])]), MagicRule.new(0, nil, [MagicRule.new(0..1024, "\nContent-ID:".to_slice), MagicRule.new(0..1024, "\nContent-Location:".to_slice), MagicRule.new(0..1024, "\nContent-Transfer-Encoding:".to_slice), MagicRule.new(0..1024, "\nContent-Type:".to_slice), MagicRule.new(0..1024, "\nDate:".to_slice), MagicRule.new(0..1024, "\nDelivered-To:".to_slice), MagicRule.new(0..1024, "\nFrom:".to_slice), MagicRule.new(0..1024, "\nMIME-Version:".to_slice), MagicRule.new(0..1024, "\nReceived:".to_slice), MagicRule.new(0..1024, "\nRelay-Version:".to_slice), MagicRule.new(0..1024, "\nReturn-Path:".to_slice), MagicRule.new(0..1024, "\nSent:".to_slice), MagicRule.new(0..1024, "\nStatus:".to_slice), MagicRule.new(0..1024, "\nSubject:".to_slice), MagicRule.new(0..1024, "\nTo:".to_slice), MagicRule.new(0..1024, "\nUser-Agent:".to_slice), MagicRule.new(0..1024, "\nX-Mailer:".to_slice), MagicRule.new(0..1024, "\nX-Originating-IP:".to_slice), MagicRule.new(0..1024, "\nDKIM-".to_slice), MagicRule.new(0..1024, "\nARC-".to_slice)])])]), MagicEntry.new("application/pdf", [MagicRule.new(0..128, "%%".to_slice, [MagicRule.new(1..512, "%PDF-1.".to_slice)]), MagicRule.new(0..128, "%%".to_slice, [MagicRule.new(1..512, "%PDF-2.".to_slice)])]), MagicEntry.new("application/vnd.wordperfect", [MagicRule.new(0, "\xFFWPC".to_slice)]), MagicEntry.new("application/x-bzip", [MagicRule.new(0, "BZ0".to_slice)]), MagicEntry.new("application/x-bzip2", [MagicRule.new(0, Regex.new("BZh[1-9]"))]), MagicEntry.new("application/x-font-adobe-metric", [MagicRule.new(0, "StartFontMetrics".to_slice)]), MagicEntry.new("application/x-font-otf", [MagicRule.new(0, "OTTO\u0000".to_slice)]), MagicEntry.new("application/x-font-printer-metric", [MagicRule.new(0, "\u0000\u0001".to_slice, [MagicRule.new(4, "\u0000\u0000Copyr".to_slice)])]), MagicEntry.new("application/x-font-ttf", [MagicRule.new(0, "\u0000\u0001\u0000\u0000".to_slice)]), MagicEntry.new("application/x-matroska", [MagicRule.new(0, "\u001AEߣ".to_slice)]), MagicEntry.new("application/x-mysql-misam-compressed-index", [MagicRule.new(0, "\xFE\xFE\u0006".to_slice), MagicRule.new(0, "\xFE\xFE\a".to_slice)]), MagicEntry.new("application/x-mysql-misam-index", [MagicRule.new(0, "\xFE\xFE\u0003".to_slice), MagicRule.new(0, "\xFE\xFE\u0005".to_slice)]), MagicEntry.new("application/x-mysql-table-definition", [MagicRule.new(0, "\xFE\u0001\a".to_slice), MagicRule.new(0, "\xFE\u0001\b".to_slice), MagicRule.new(0, "\xFE\u0001\t".to_slice), MagicRule.new(0, "\xFE\u0001\n".to_slice), MagicRule.new(0, "\xFE\u0001\v".to_slice), MagicRule.new(0, "\xFE\u0001\f".to_slice)]), MagicEntry.new("application/x-sas-data", [MagicRule.new(84, "SAS FILE".to_slice)]), MagicEntry.new("application/x-sas-data-v6", [MagicRule.new(0, "SAS 6.".to_slice), MagicRule.new(0, "SAS 7.".to_slice), MagicRule.new(0, "SAS 8.0".to_slice), MagicRule.new(0, "SAS 9.0".to_slice)]), MagicEntry.new("application/x-sas-xport", [MagicRule.new(0, "HEADER RECORD*******LIBRARY HEADER RECORD!!!!!!!".to_slice)]), MagicEntry.new("application/x-stata-dta", [MagicRule.new(0, "<stata_dta>".to_slice)]), MagicEntry.new("application/x-tar", [MagicRule.new(257, "ustar\u0000".to_slice)]), MagicEntry.new("application/x-tika-msoffice", [MagicRule.new(0..8, "\xD0\xCF\u0011ࡱ\u001A\xE1".to_slice)]), MagicEntry.new("audio/ac3", [MagicRule.new(0, "\vw".to_slice)]), MagicEntry.new("audio/amr", [MagicRule.new(0, "#!AMR\n".to_slice), MagicRule.new(0, "#!AMR".to_slice)]), MagicEntry.new("audio/x-aac", [MagicRule.new(0, "ID3".to_slice)]), MagicEntry.new("image/vnd.zbrush.pcx", [MagicRule.new(0, "\n".to_slice, [MagicRule.new(1, "\u0000".to_slice), MagicRule.new(1, "\u0002".to_slice), MagicRule.new(1, "\u0003".to_slice), MagicRule.new(1, "\u0004".to_slice), MagicRule.new(1, "\u0005".to_slice)])]), MagicEntry.new("message/rfc822", [MagicRule.new(0..1000, "\nMessage-ID:".to_slice)]), MagicEntry.new("text/vtt", [MagicRule.new(0, "WEBVTT\r".to_slice), MagicRule.new(0, "WEBVTT\n".to_slice), MagicRule.new(0, "0xfeff".to_slice, [MagicRule.new(2, "WEBVTT\r".to_slice), MagicRule.new(2, "WEBVTT\n".to_slice)]), MagicRule.new(0, "0xfeff".to_slice, [MagicRule.new(2, "WEBVTT\r".to_slice), MagicRule.new(2, "WEBVTT\n".to_slice)]), MagicRule.new(0, "0xefbbbf".to_slice, [MagicRule.new(3, "WEBVTT\r".to_slice), MagicRule.new(3, "WEBVTT\n".to_slice)]), MagicRule.new(0, "WEBVTT FILE\r".to_slice), MagicRule.new(0, "WEBVTT FILE\n".to_slice)]), MagicEntry.new("application/inf", [MagicRule.new(0, "[version]".to_slice), MagicRule.new(0, "[strings]".to_slice)]), MagicEntry.new("application/x-bibtex-text-file", [MagicRule.new(0, "%".to_slice, [MagicRule.new(2..128, "\n@article{".to_slice), MagicRule.new(2..128, "\n@book{".to_slice), MagicRule.new(2..128, "\n@inbook{".to_slice), MagicRule.new(2..128, "\n@incollection{".to_slice), MagicRule.new(2..128, "\n@inproceedings{".to_slice), MagicRule.new(2..128, "\n@manual{".to_slice), MagicRule.new(2..128, "\n@misc{".to_slice), MagicRule.new(2..128, "\n@preamble{".to_slice), MagicRule.new(2..128, "\n@phdthesis{".to_slice), MagicRule.new(2..128, "\n@string{".to_slice), MagicRule.new(2..128, "\n@techreport{".to_slice), MagicRule.new(2..128, "\n@unpublished{".to_slice)])]), MagicEntry.new("application/xml", [MagicRule.new(0, "<!--".to_slice)]), MagicEntry.new("text/vtt", [MagicRule.new(0, "WEBVTT ".to_slice, [MagicRule.new(10..50, "\n\n".to_slice)]), MagicRule.new(0, "WEBVTT ".to_slice, [MagicRule.new(10..50, "\r\r".to_slice)]), MagicRule.new(0, "WEBVTT ".to_slice, [MagicRule.new(10..50, "\r\n\r\n".to_slice)])]), MagicEntry.new("text/x-chdr", [MagicRule.new(0, "#ifndef ".to_slice)]), MagicEntry.new("text/x-csrc", [MagicRule.new(0, "#include ".to_slice)]), MagicEntry.new("image/x-jp2-codestream", [MagicRule.new(0, "\xFFO\xFFQ".to_slice)]), MagicEntry.new("text/x-matlab", [MagicRule.new(0, "%".to_slice, [MagicRule.new(2..120, "\n%".to_slice)]), MagicRule.new(0, "%".to_slice, [MagicRule.new(2..120, "\r%".to_slice)]), MagicRule.new(0, "%%".to_slice)]), MagicEntry.new("application/pdf", [MagicRule.new(1..512, "%PDF-1.".to_slice), MagicRule.new(1..512, "%PDF-2.".to_slice)]), MagicEntry.new("application/vnd.msa-disk-image", [MagicRule.new(0, "\u000E\u000F".to_slice)]), MagicEntry.new("audio/basic", [MagicRule.new(0, ".snd".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0001".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0002".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0003".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0004".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0005".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0006".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\a".to_slice)]), MagicRule.new(0, ".snd\u0000\u0000\u0000".to_slice)]), MagicEntry.new("audio/midi", [MagicRule.new(0, "MThd".to_slice)]), MagicEntry.new("audio/vnd.wave", [MagicRule.new(0, "RIFF".to_slice, [MagicRule.new(8, "WAVE".to_slice)])]), MagicEntry.new("audio/x-adpcm", [MagicRule.new(0, ".snd".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0017".to_slice)])]), MagicEntry.new("audio/x-aiff", [MagicRule.new(0, "FORM".to_slice, [MagicRule.new(8, "AIFF".to_slice)]), MagicRule.new(0, "FORM".to_slice, [MagicRule.new(8, "AIFC".to_slice)]), MagicRule.new(0, "FORM".to_slice, [MagicRule.new(8, "8SVX".to_slice)]), MagicRule.new(0, "FORM\u0000".to_slice)]), MagicEntry.new("audio/x-dec-adpcm", [MagicRule.new(0, "\u0000ds.".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0017".to_slice)])]), MagicEntry.new("audio/x-dec-basic", [MagicRule.new(0, "\u0000ds.".to_slice, [MagicRule.new(12, "\u0000\u0000\u0000\u0001".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0002".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0003".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0004".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0005".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\u0006".to_slice), MagicRule.new(12, "\u0000\u0000\u0000\a".to_slice)])]), MagicEntry.new("text/plain", [MagicRule.new(0, "This is TeX,".to_slice), MagicRule.new(0, "This is METAFONT,".to_slice), MagicRule.new(0, "/*".to_slice), MagicRule.new(0, "//".to_slice), MagicRule.new(0, ";;".to_slice), MagicRule.new(0, "\xFE\xFF".to_slice), MagicRule.new(0, "\xFF\xFE".to_slice), MagicRule.new(0, "\uFEFF".to_slice)]), MagicEntry.new("text/x-makefile", [MagicRule.new(0, "# Makefile.in generated by".to_slice), MagicRule.new(0, "#!make".to_slice), MagicRule.new(0, "#!/usr/bin/make".to_slice), MagicRule.new(0, "#!/usr/local/bin/make".to_slice), MagicRule.new(0, "#!/usr/bin/env make".to_slice)]), MagicEntry.new("audio/mpeg", [MagicRule.new(0, "ID3".to_slice)])] of MagicEntry
ROOT_XML = { {nil, "ASX"} => "application/x-ms-asx", {nil, "BODY"} => "text/html", {nil, "DIF"} => "application/dif+xml", {nil, "FRAMESET"} => "text/html", {nil, "HTML"} => "text/html", {nil, "IFRAME"} => "text/html", {nil, "LINK"} => "text/html", {nil, "MD_metadata"} => "text/iso19139+xml", {nil, "ONIXMessage"} => "application/onix-message+xml", {nil, "P"} => "text/html", {nil, "PremiereData"} => "image/vnd.adobe.premiere", {nil, "RDF"} => "application/rdf+xml", {nil, "SCRIPT"} => "text/html", {nil, "Workbook"} => "application/vnd.ms-spreadsheetml", {nil, "amf"} => "application/x-amf", {nil, "asx"} => "application/x-ms-asx", {nil, "body"} => "text/html", {nil, "concept"} => "application/dita+xml;format=concept", {nil, "frameset"} => "text/html", {nil, "html"} => "text/html", {nil, "iframe"} => "text/html", {nil, "kml"} => "application/vnd.google-earth.kml+xml", {nil, "link"} => "text/html", {nil, "map"} => "application/dita+xml;format=map", {nil, "newsMessage"} => "application/vnd.iptc.g2.newsmessage+xml", {nil, "p"} => "text/html", {nil, "plist"} => "application/x-plist", {nil, "rss"} => "application/rss+xml", {nil, "script"} => "text/html", {nil, "smil"} => "application/smil+xml", {nil, "stata_dta"} => "application/x-stata-dta", {nil, "task"} => "application/dita+xml;format=task", {nil, "topic"} => "application/dita+xml;format=topic", {nil, "val"} => "application/dita+xml;format=val", {nil, "wordDocument"} => "application/vnd.ms-wordml", {"http://developer.apple.com/namespaces/keynote2", "presentation"} => "application/vnd.apple.keynote", {"http://developer.apple.com/namespaces/ls", "document"} => "application/vnd.apple.numbers", {"http://developer.apple.com/namespaces/sl", "document"} => "application/vnd.apple.pages", {"http://docs.oasis-open.org/namespace", "concept"} => "application/dita+xml;format=concept", {"http://docs.oasis-open.org/namespace", "map"} => "application/dita+xml;format=map", {"http://docs.oasis-open.org/namespace", "task"} => "application/dita+xml;format=task", {"http://docs.oasis-open.org/namespace", "topic"} => "application/dita+xml;format=topic", {"http://docs.oasis-open.org/namespace", "val"} => "application/dita+xml;format=val", {"http://earth.google.com/kml/2.0", "kml"} => "application/vnd.google-earth.kml+xml", {"http://earth.google.com/kml/2.1", "kml"} => "application/vnd.google-earth.kml+xml", {"http://earth.google.com/kml/2.2", "kml"} => "application/vnd.google-earth.kml+xml", {"http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/", "DIF"} => "application/dif+xml", {"http://iptc.org/std/nar/2006-10-01/", "newsMessage"} => "application/vnd.iptc.g2.newsmessage+xml", {"http://ns.adobe.com/xdp/", "xdp"} => "application/vnd.adobe.xdp+xml", {"http://ns.adobe.com/xfdf/", "xfdf"} => "application/vnd.adobe.xfdf", {"http://ns.editeur.org/onix/3.0/reference", "ONIXMessage"} => "application/onix-message+xml", {"http://ns.editeur.org/onix/3.0/short", "ONIXmessage"} => "application/onix-message+xml", {"http://purl.org/atom/ns#", "feed"} => "application/atom+xml", {"http://schemas.microsoft.com/office/2006/xmlPackage", "package"} => "application/vnd.ms-word2006ml", {"http://schemas.microsoft.com/office/word/2003/wordml", "wordDocument"} => "application/vnd.ms-wordml", {"http://www.gribuser.ru/xml/fictionbook/2.0", "FictionBook"} => "application/x-fictionbook+xml", {"http://www.isotc211.org/2005/gmd", "MD_metadata"} => "text/iso19139+xml", {"http://www.opengis.net/kml/2.2", "kml"} => "application/vnd.google-earth.kml+xml", {"http://www.w3.org/1999/02/22-rdf-syntax-ns#", "RDF"} => "application/rdf+xml", {"http://www.w3.org/1999/XSL/Format", "root"} => "application/xslfo+xml", {"http://www.w3.org/1999/XSL/Transform", "stylesheet"} => "application/xslt+xml", {"http://www.w3.org/1999/xhtml", "html"} => "application/xhtml+xml", {"http://www.w3.org/2000/svg", "svg"} => "image/svg+xml", {"http://www.w3.org/2005/Atom", "feed"} => "application/atom+xml", {"http://www.w3.org/ns/ttml", "tt"} => "application/ttml+xml", {"http://xspf.org/ns/0/", "playlist"} => "application/xspf+xml", {"urn:oasis:names:tc:opendocument:xmlns:office:1.0", "document"} => "application/vnd.oasis.opendocument.tika.flat.document", {"urn:oasis:names:tc:xliff:document:1.2", "xliff"} => "application/x-xliff+xml", {"urn:schemas-microsoft-com:office:spreadsheet", "Workbook"} => "application/vnd.ms-spreadsheetml"} of Tuple(String | ::Nil, String) => String
TYPE_ALIASES = {"application/acad" => "image/vnd.dwg", "application/autocad_dwg" => "image/vnd.dwg", "application/bat" => "application/x-bat", "application/binhex" => "application/mac-binhex40", "application/cdr" => "application/coreldraw", "application/dwg" => "image/vnd.dwg", "application/font-woff" => "font/woff", "application/font-woff2" => "font/woff2", "application/gzip-compressed" => "application/gzip", "application/gzipped" => "application/gzip", "application/javascript" => "text/javascript", "application/mac-binhex" => "application/mac-binhex40", "application/matlab-mat" => "application/x-matlab-data", "application/ms-tnef" => "application/vnd.ms-tnef", "application/msexcel" => "application/vnd.ms-excel", "application/msonenote" => "application/onenote", "application/mspowerpoint" => "application/vnd.ms-powerpoint", "application/pgp" => "application/pgp-encrypted", "application/photoshop" => "image/vnd.adobe.photoshop", "application/smil" => "application/smil+xml", "application/vnd.debian.binary-package" => "application/x-debian-package", "application/vnd.ms-opentype" => "application/x-font-otf", "application/vnd.ms-visio" => "application/vnd.visio", "application/vnd.ms-word" => "application/msword", "application/vnd.oasis.opendocument.database" => "application/vnd.oasis.opendocument.base", "application/x-123" => "application/vnd.lotus-1-2-3", "application/x-acad" => "image/vnd.dwg", "application/x-arj-compressed" => "application/x-arj", "application/x-autocad" => "image/vnd.dwg", "application/x-cdr" => "application/coreldraw", "application/x-coreldraw" => "application/coreldraw", "application/x-dbm" => "application/x-berkeley-db", "application/x-deflate" => "application/zlib", "application/x-dwg" => "image/vnd.dwg", "application/x-emf" => "image/emf", "application/x-frame" => "application/vnd.mif", "application/x-gnumeric-spreadsheet" => "application/x-gnumeric", "application/x-gunzip" => "application/gzip", "application/x-gzip" => "application/gzip", "application/x-gzip-compressed" => "application/gzip", "application/x-httpd-jsp" => "text/x-jsp", "application/x-java" => "application/java-vm", "application/x-java-vm" => "application/java-vm", "application/x-javascript" => "text/javascript", "application/x-kchart" => "application/vnd.kde.kchart", "application/x-koan" => "application/vnd.koan", "application/x-kpresenter" => "application/vnd.kde.kpresenter", "application/x-kspread" => "application/vnd.kde.kspread", "application/x-kword" => "application/vnd.kde.kword", "application/x-mif" => "application/vnd.mif", "application/x-mimearchive" => "multipart/related", "application/x-ms-emz" => "image/x-emf-compressed", "application/x-msi" => "application/x-ms-installer", "application/x-msmetafile" => "image/wmf", "application/x-ogg" => "audio/vorbis", "application/x-pdf" => "application/pdf", "application/x-rar" => "application/x-rar-compressed", "application/x-setupscript" => "application/inf", "application/x-speex" => "audio/speex", "application/x-tcl" => "text/x-tcl", "application/x-troff" => "text/troff", "application/x-troff-man" => "text/troff", "application/x-troff-me" => "text/troff", "application/x-troff-ms" => "text/troff", "application/x-unix-archive" => "application/x-archive", "application/x-vnd.oasis.opendocument.chart" => "application/vnd.oasis.opendocument.chart", "application/x-vnd.oasis.opendocument.chart-template" => "application/vnd.oasis.opendocument.chart-template", "application/x-vnd.oasis.opendocument.formula" => "application/vnd.oasis.opendocument.formula", "application/x-vnd.oasis.opendocument.formula-template" => "application/vnd.oasis.opendocument.formula-template", "application/x-vnd.oasis.opendocument.graphics" => "application/vnd.oasis.opendocument.graphics", "application/x-vnd.oasis.opendocument.graphics-template" => "application/vnd.oasis.opendocument.graphics-template", "application/x-vnd.oasis.opendocument.image" => "application/vnd.oasis.opendocument.image", "application/x-vnd.oasis.opendocument.image-template" => "application/vnd.oasis.opendocument.image-template", "application/x-vnd.oasis.opendocument.presentation" => "application/vnd.oasis.opendocument.presentation", "application/x-vnd.oasis.opendocument.presentation-template" => "application/vnd.oasis.opendocument.presentation-template", "application/x-vnd.oasis.opendocument.spreadsheet" => "application/vnd.oasis.opendocument.spreadsheet", "application/x-vnd.oasis.opendocument.spreadsheet-template" => "application/vnd.oasis.opendocument.spreadsheet-template", "application/x-vnd.oasis.opendocument.text" => "application/vnd.oasis.opendocument.text", "application/x-vnd.oasis.opendocument.text-master" => "application/vnd.oasis.opendocument.text-master", "application/x-vnd.oasis.opendocument.text-template" => "application/vnd.oasis.opendocument.text-template", "application/x-vnd.oasis.opendocument.text-web" => "application/vnd.oasis.opendocument.text-web", "application/x-vnd.sun.xml.writer" => "application/vnd.sun.xml.writer", "application/x-windows-installer" => "application/x-ms-installer", "application/x-wine-extension-inf" => "application/inf", "application/x-x509-user-cert" => "application/x-x509-cert", "application/x-xml" => "application/xml", "application/x-yaml" => "text/x-yaml", "application/x-yml" => "text/x-yaml", "application/x-zip-compressed" => "application/zip", "application/yaml" => "text/x-yaml", "audio/aac" => "audio/x-aac", "audio/aiff" => "audio/x-aiff", "audio/flac" => "audio/x-flac", "audio/wav" => "audio/vnd.wave", "audio/wave" => "audio/vnd.wave", "audio/x-m4a" => "audio/mp4", "audio/x-mp4a" => "audio/mp4", "audio/x-mpeg" => "audio/mpeg", "audio/x-ogg-flac" => "audio/x-oggflac", "audio/x-ogg-pcm" => "audio/x-oggpcm", "audio/x-realaudio" => "audio/x-pn-realaudio", "audio/x-wav" => "audio/vnd.wave", "drawing/dwg" => "image/vnd.dwg", "drawing/x-dwf" => "model/vnd.dwf", "gzip/document" => "application/gzip", "image/cdr" => "application/coreldraw", "image/hevc" => "image/heic", "image/hevc-sequence" => "image/heic-sequence", "image/ntf" => "image/nitf", "image/vnd.dgn;ver=8" => "image/vnd.dgn;version=8", "image/x-bmp" => "image/bmp", "image/x-cdr" => "application/coreldraw", "image/x-dcx" => "image/vnd.zbrush.dcx", "image/x-dwg" => "image/vnd.dwg", "image/x-emf" => "image/emf", "image/x-icon" => "image/vnd.microsoft.icon", "image/x-jb2" => "image/x-jbig2", "image/x-ms-bmp" => "image/bmp", "image/x-pc-paintbrush" => "image/vnd.zbrush.pcx", "image/x-pcx" => "image/vnd.zbrush.pcx", "image/x-psd" => "image/vnd.adobe.photoshop", "image/x-targa" => "image/x-tga", "image/x-wmf" => "image/wmf", "image/xcf" => "image/x-xcf", "message/rfc2557" => "multipart/related", "text/properties" => "text/x-java-properties", "text/rss" => "application/rss+xml", "text/rtf" => "application/rtf", "text/vnd.yaml" => "text/x-yaml", "text/x-asm" => "text/x-assembly", "text/x-c" => "text/x-csrc", "text/x-dtd" => "application/xml-dtd", "text/x-java" => "text/x-java-source", "text/x-markdown" => "text/markdown", "text/x-properties" => "text/x-java-properties", "text/x-tex" => "application/x-tex", "text/x-texinfo" => "application/x-texinfo", "text/x-web-markdown" => "text/markdown", "text/x-yml" => "text/x-yaml", "text/xml" => "application/xml", "text/xml-external-parsed-entity" => "application/xml-external-parsed-entity", "text/xsl" => "application/xslt+xml", "text/yaml" => "text/x-yaml", "video/avi" => "video/x-msvideo", "video/jpm" => "image/jpm", "video/msvideo" => "video/x-msvideo", "video/x-daala" => "video/daala", "video/x-ogg-rgb" => "video/x-oggrgb", "video/x-ogg-uvs" => "video/x-ogguvs", "video/x-ogg-yuv" => "video/x-oggyuv", "video/x-theora" => "video/theora"} of String => String
TYPE_EXTS = {"application/andrew-inset" => ["ez"], "application/applixware" => ["aw"], "application/atom+xml" => ["atom"], "application/atomcat+xml" => ["atomcat"], "application/atomsvc+xml" => ["atomsvc"], "application/bizagi-modeler" => ["bpm"], "application/cbor" => ["cbor"], "application/ccxml+xml" => ["ccxml"], "application/coreldraw" => ["cdr"], "application/cu-seeme" => ["cu"], "application/dash+xml" => ["mpd"], "application/davmount+xml" => ["davmount"], "application/dif+xml" => ["dif"], "application/dita+xml;format=map" => ["ditamap"], "application/dita+xml;format=topic" => ["dita"], "application/dita+xml;format=val" => ["ditaval"], "application/ecmascript" => ["ecma"], "application/emma+xml" => ["emma"], "application/envi.hdr" => ["hdr"], "application/epub+zip" => ["epub"], "application/fits" => ["fits", "fit", "fts"], "application/font-tdpfr" => ["pfr"], "application/gpx+xml" => ["gpx"], "application/gzip" => ["gz", "tgz"], "application/hwp+zip" => ["hwpx"], "application/hyperstudio" => ["stk"], "application/illustrator" => ["ai"], "application/java-archive" => ["jar"], "application/java-serialized-object" => ["ser"], "application/java-vm" => ["class"], "application/json" => ["json"], "application/lost+xml" => ["lostxml"], "application/mac-binhex40" => ["hqx"], "application/mac-compactpro" => ["cpt"], "application/manifest+json" => ["webmanifest"], "application/marc" => ["mrc"], "application/mathematica" => ["ma", "nb", "mb"], "application/mathml+xml" => ["mathml"], "application/mbox" => ["mbox"], "application/mediaservercontrol+xml" => ["mscml"], "application/mp4" => ["mp4s"], "application/msword" => ["doc", "dot"], "application/mxf" => ["mxf"], "application/octet-stream" => ["bin", "dms", "lha", "lrf", "lzh", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy"], "application/oda" => ["oda"], "application/oebps-package+xml" => ["opf"], "application/ogg" => ["ogx"], "application/onenote" => ["onetmp"], "application/onenote; format=package" => ["onepkg"], "application/onenote;format=one" => ["one"], "application/onenote;format=onetoc2" => ["onetoc", "onetoc2"], "application/oxps" => ["oxps"], "application/patch-ops-error+xml" => ["xer"], "application/pdf" => ["pdf"], "application/pgp-encrypted" => ["pgp", "gpg"], "application/pgp-signature" => ["asc", "sig"], "application/pics-rules" => ["prf"], "application/pkcs10" => ["p10"], "application/pkcs7-mime" => ["p7m", "p7c"], "application/pkcs7-signature" => ["p7s"], "application/pkix-cert" => ["cer"], "application/pkix-crl" => ["crl"], "application/pkix-pkipath" => ["pkipath"], "application/pkixcmp" => ["pki"], "application/pls+xml" => ["pls"], "application/postscript" => ["ps", "eps", "epsf", "epsi"], "application/prs.cww" => ["cww"], "application/rdf+xml" => ["rdf", "owl", "xmp"], "application/reginfo+xml" => ["rif"], "application/relax-ng-compact-syntax" => ["rnc"], "application/resource-lists+xml" => ["rl"], "application/resource-lists-diff+xml" => ["rld"], "application/rls-services+xml" => ["rs"], "application/rsd+xml" => ["rsd"], "application/rss+xml" => ["rss"], "application/rtf" => ["rtf"], "application/sbml+xml" => ["sbml"], "application/scvp-cv-request" => ["scq"], "application/scvp-cv-response" => ["scs"], "application/scvp-vp-request" => ["spq"], "application/scvp-vp-response" => ["spp"], "application/sdp" => ["sdp"], "application/sereal" => ["srl"], "application/set-payment-initiation" => ["setpay"], "application/set-registration-initiation" => ["setreg"], "application/shf+xml" => ["shf"], "application/sldworks" => ["sldprt", "sldasm", "slddrw"], "application/smil+xml" => ["smi", "smil", "sml"], "application/sparql-query" => ["rq"], "application/sparql-results+xml" => ["srx"], "application/srgs" => ["gram"], "application/srgs+xml" => ["grxml"], "application/ssml+xml" => ["ssml"], "application/timestamped-data" => ["tsd"], "application/ttml+xml" => ["ttml"], "application/vnd.3gpp.pic-bw-large" => ["plb"], "application/vnd.3gpp.pic-bw-small" => ["psb"], "application/vnd.3gpp.pic-bw-var" => ["pvb"], "application/vnd.3gpp2.tcap" => ["tcap"], "application/vnd.3m.post-it-notes" => ["pwn"], "application/vnd.accpac.simply.aso" => ["aso"], "application/vnd.accpac.simply.imp" => ["imp"], "application/vnd.acucobol" => ["acu"], "application/vnd.acucorp" => ["atc", "acutc"], "application/vnd.adobe.aftereffects.project" => ["aep"], "application/vnd.adobe.aftereffects.template" => ["aet"], "application/vnd.adobe.air-application-installer-package+zip" => ["air"], "application/vnd.adobe.indesign-idml-package" => ["idml"], "application/vnd.adobe.xdp+xml" => ["xdp"], "application/vnd.adobe.xfdf" => ["xfdf"], "application/vnd.airzip.filesecure.azf" => ["azf"], "application/vnd.airzip.filesecure.azs" => ["azs"], "application/vnd.amazon.ebook" => ["azw"], "application/vnd.americandynamics.acc" => ["acc"], "application/vnd.amiga.ami" => ["ami"], "application/vnd.android.package-archive" => ["apk"], "application/vnd.anser-web-certificate-issue-initiation" => ["cii"], "application/vnd.anser-web-funds-transfer-initiation" => ["fti"], "application/vnd.antix.game-component" => ["atx"], "application/vnd.apple.installer+xml" => ["mpkg"], "application/vnd.apple.keynote" => ["key"], "application/vnd.apple.mpegurl" => ["m3u8"], "application/vnd.apple.numbers" => ["numbers"], "application/vnd.apple.pages" => ["pages"], "application/vnd.arastra.swi" => ["swi"], "application/vnd.blueice.multipass" => ["mpm"], "application/vnd.bmi" => ["bmi"], "application/vnd.businessobjects" => ["rep"], "application/vnd.chemdraw+xml" => ["cdxml"], "application/vnd.chipnuts.karaoke-mmd" => ["mmd"], "application/vnd.cinderella" => ["cdy"], "application/vnd.claymore" => ["cla"], "application/vnd.clonk.c4group" => ["c4g", "c4d", "c4f", "c4p", "c4u"], "application/vnd.commonspace" => ["csp"], "application/vnd.contact.cmsg" => ["cdbcmsg"], "application/vnd.cosmocaller" => ["cmc"], "application/vnd.crick.clicker" => ["clkx"], "application/vnd.crick.clicker.keyboard" => ["clkk"], "application/vnd.crick.clicker.palette" => ["clkp"], "application/vnd.crick.clicker.template" => ["clkt"], "application/vnd.crick.clicker.wordbank" => ["clkw"], "application/vnd.criticaltools.wbs+xml" => ["wbs"], "application/vnd.ctc-posml" => ["pml"], "application/vnd.cups-ppd" => ["ppd"], "application/vnd.curl.car" => ["car"], "application/vnd.curl.pcurl" => ["pcurl"], "application/vnd.data-vision.rdz" => ["rdz"], "application/vnd.denovo.fcselayout-link" => ["fe_launch"], "application/vnd.dna" => ["dna"], "application/vnd.dolby.mlp" => ["mlp"], "application/vnd.dpgraph" => ["dpg"], "application/vnd.dreamfactory" => ["dfac"], "application/vnd.dynageo" => ["geo"], "application/vnd.ecowin.chart" => ["mag"], "application/vnd.enliven" => ["nml"], "application/vnd.epson.esf" => ["esf"], "application/vnd.epson.msf" => ["msf"], "application/vnd.epson.quickanime" => ["qam"], "application/vnd.epson.salt" => ["slt"], "application/vnd.epson.ssf" => ["ssf"], "application/vnd.eszigno3+xml" => ["es3", "et3"], "application/vnd.etsi.asic-e+zip" => ["asice"], "application/vnd.etsi.asic-s+zip" => ["asics"], "application/vnd.ezpix-album" => ["ez2"], "application/vnd.ezpix-package" => ["ez3"], "application/vnd.fdf" => ["fdf"], "application/vnd.fdsn.mseed" => ["mseed"], "application/vnd.fdsn.seed" => ["seed", "dataless"], "application/vnd.flographit" => ["gph"], "application/vnd.fluxtime.clip" => ["ftc"], "application/vnd.framemaker" => ["fm", "frame", "maker", "book"], "application/vnd.frogans.fnc" => ["fnc"], "application/vnd.frogans.ltf" => ["ltf"], "application/vnd.fsc.weblaunch" => ["fsc"], "application/vnd.fujitsu.oasys" => ["oas"], "application/vnd.fujitsu.oasys2" => ["oa2"], "application/vnd.fujitsu.oasys3" => ["oa3"], "application/vnd.fujitsu.oasysgp" => ["fg5"], "application/vnd.fujitsu.oasysprs" => ["bh2"], "application/vnd.fujixerox.ddd" => ["ddd"], "application/vnd.fujixerox.docuworks" => ["xdw"], "application/vnd.fujixerox.docuworks.binder" => ["xbd"], "application/vnd.fuzzysheet" => ["fzs"], "application/vnd.genomatix.tuxedo" => ["txd"], "application/vnd.geogebra.file" => ["ggb"], "application/vnd.geogebra.tool" => ["ggt"], "application/vnd.geometry-explorer" => ["gex", "gre"], "application/vnd.gmx" => ["gmx"], "application/vnd.google-apps.spreadsheet" => ["gsheet"], "application/vnd.google-earth.kml+xml" => ["kml"], "application/vnd.google-earth.kmz" => ["kmz"], "application/vnd.grafeq" => ["gqf", "gqs"], "application/vnd.groove-account" => ["gac"], "application/vnd.groove-help" => ["ghf"], "application/vnd.groove-identity-message" => ["gim"], "application/vnd.groove-injector" => ["grv"], "application/vnd.groove-tool-message" => ["gtm"], "application/vnd.groove-tool-template" => ["tpl"], "application/vnd.groove-vcard" => ["vcg"], "application/vnd.handheld-entertainment+xml" => ["zmm"], "application/vnd.hbci" => ["hbci"], "application/vnd.hhe.lesson-player" => ["les"], "application/vnd.hp-hpgl" => ["hpgl"], "application/vnd.hp-hpid" => ["hpid"], "application/vnd.hp-hps" => ["hps"], "application/vnd.hp-jlyt" => ["jlt"], "application/vnd.hp-pcl" => ["pcl"], "application/vnd.hp-pclxl" => ["pclxl"], "application/vnd.hydrostatix.sof-data" => ["sfd-hdstx"], "application/vnd.hzn-3d-crossword" => ["x3d"], "application/vnd.ibm.minipay" => ["mpy"], "application/vnd.ibm.modcap" => ["afp", "listafp", "list3820"], "application/vnd.ibm.rights-management" => ["irm"], "application/vnd.ibm.secure-container" => ["sc"], "application/vnd.iccprofile" => ["icc", "icm"], "application/vnd.igloader" => ["igl"], "application/vnd.immervision-ivp" => ["ivp"], "application/vnd.immervision-ivu" => ["ivu"], "application/vnd.intercon.formnet" => ["xpw", "xpx"], "application/vnd.intu.qbo" => ["qbo"], "application/vnd.intu.qfx" => ["qfx"], "application/vnd.iptc.g2.newsmessage+xml" => ["nar"], "application/vnd.ipunplugged.rcprofile" => ["rcprofile"], "application/vnd.irepository.package+xml" => ["irp"], "application/vnd.is-xpr" => ["xpr"], "application/vnd.isac.fcs" => ["fcs"], "application/vnd.jam" => ["jam"], "application/vnd.java.hprof" => ["hprof"], "application/vnd.java.hprof.text" => ["hprof.txt"], "application/vnd.jcp.javame.midlet-rms" => ["rms"], "application/vnd.jisp" => ["jisp"], "application/vnd.joost.joda-archive" => ["joda"], "application/vnd.kahootz" => ["ktz", "ktr"], "application/vnd.kde.karbon" => ["karbon"], "application/vnd.kde.kchart" => ["chrt"], "application/vnd.kde.kformula" => ["kfo"], "application/vnd.kde.kivio" => ["flw"], "application/vnd.kde.kontour" => ["kon"], "application/vnd.kde.kpresenter" => ["kpr", "kpt"], "application/vnd.kde.kspread" => ["ksp"], "application/vnd.kde.kword" => ["kwd", "kwt"], "application/vnd.kenameaapp" => ["htke"], "application/vnd.kidspiration" => ["kia"], "application/vnd.kinar" => ["kne", "knp"], "application/vnd.koan" => ["skp", "skd", "skt", "skm"], "application/vnd.kodak-descriptor" => ["sse"], "application/vnd.llamagraphics.life-balance.desktop" => ["lbd"], "application/vnd.llamagraphics.life-balance.exchange+xml" => ["lbe"], "application/vnd.lotus-1-2-3" => ["wk1", "wk2", "wk3", "wk4", "123"], "application/vnd.lotus-1-2-3;version=2" => ["wk1", "wk2"], "application/vnd.lotus-1-2-3;version=3" => ["wk3"], "application/vnd.lotus-1-2-3;version=4" => ["wk4"], "application/vnd.lotus-1-2-3;version=97+9.x" => ["123"], "application/vnd.lotus-approach" => ["apr"], "application/vnd.lotus-freelance" => ["pre"], "application/vnd.lotus-notes" => ["nsf"], "application/vnd.lotus-organizer" => ["org"], "application/vnd.lotus-wordpro" => ["lwp"], "application/vnd.macports.portpkg" => ["portpkg"], "application/vnd.mcd" => ["mcd"], "application/vnd.medcalcdata" => ["mc1"], "application/vnd.mediastation.cdkey" => ["cdkey"], "application/vnd.mfer" => ["mwf"], "application/vnd.mfmp" => ["mfm"], "application/vnd.micrografx.flo" => ["flo"], "application/vnd.micrografx.igx" => ["igx"], "application/vnd.mif" => ["mif"], "application/vnd.mindjet.mindmanager" => ["mmp", "mmap", "mmpt", "mmat", "mmmp", "mmas"], "application/vnd.mobius.daf" => ["daf"], "application/vnd.mobius.dis" => ["dis"], "application/vnd.mobius.mbk" => ["mbk"], "application/vnd.mobius.mqy" => ["mqy"], "application/vnd.mobius.msl" => ["msl"], "application/vnd.mobius.plc" => ["plc"], "application/vnd.mobius.txf" => ["txf"], "application/vnd.mophun.application" => ["mpn"], "application/vnd.mophun.certificate" => ["mpc"], "application/vnd.mozilla.xul+xml" => ["xul"], "application/vnd.ms-artgalry" => ["cil"], "application/vnd.ms-cab-compressed" => ["cab"], "application/vnd.ms-excel" => ["xls", "xlm", "xla", "xlc", "xlt", "xlw", "xll", "xld"], "application/vnd.ms-excel.addin.macroenabled.12" => ["xlam"], "application/vnd.ms-excel.sheet.binary.macroenabled.12" => ["xlsb"], "application/vnd.ms-excel.sheet.macroenabled.12" => ["xlsm"], "application/vnd.ms-excel.template.macroenabled.12" => ["xltm"], "application/vnd.ms-fontobject" => ["eot"], "application/vnd.ms-htmlhelp" => ["chm"], "application/vnd.ms-ims" => ["ims"], "application/vnd.ms-lrm" => ["lrm"], "application/vnd.ms-outlook" => ["msg"], "application/vnd.ms-outlook-pst" => ["pst", "ost"], "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" => ["3mf"], "application/vnd.ms-pki.seccat" => ["cat"], "application/vnd.ms-powerpoint" => ["ppt", "ppz", "pps", "pot", "ppa"], "application/vnd.ms-powerpoint.addin.macroenabled.12" => ["ppam"], "application/vnd.ms-powerpoint.presentation.macroenabled.12" => ["pptm"], "application/vnd.ms-powerpoint.slide.macroenabled.12" => ["sldm"], "application/vnd.ms-powerpoint.slideshow.macroenabled.12" => ["ppsm"], "application/vnd.ms-powerpoint.template.macroenabled.12" => ["potm"], "application/vnd.ms-project" => ["mpp", "mpt"], "application/vnd.ms-visio.drawing" => ["vsdx"], "application/vnd.ms-visio.drawing.macroEnabled.12" => ["vsdm"], "application/vnd.ms-visio.stencil" => ["vssx"], "application/vnd.ms-visio.stencil.macroEnabled.12" => ["vssm"], "application/vnd.ms-visio.template" => ["vstx"], "application/vnd.ms-visio.template.macroEnabled.12" => ["vstm"], "application/vnd.ms-word.document.macroenabled.12" => ["docm"], "application/vnd.ms-word.template.macroenabled.12" => ["dotm"], "application/vnd.ms-works" => ["wps", "wks", "wcm", "wdb"], "application/vnd.ms-wpl" => ["wpl"], "application/vnd.ms-xpsdocument" => ["xps"], "application/vnd.msa-disk-image" => ["msa"], "application/vnd.mseq" => ["mseq"], "application/vnd.musician" => ["mus"], "application/vnd.muvee.style" => ["msty"], "application/vnd.neurolanguage.nlu" => ["nlu"], "application/vnd.noblenet-directory" => ["nnd"], "application/vnd.noblenet-sealer" => ["nns"], "application/vnd.noblenet-web" => ["nnw"], "application/vnd.nokia.n-gage.data" => ["ngdat"], "application/vnd.nokia.n-gage.symbian.install" => ["n-gage"], "application/vnd.nokia.radio-preset" => ["rpst"], "application/vnd.nokia.radio-presets" => ["rpss"], "application/vnd.novadigm.edm" => ["edm"], "application/vnd.novadigm.edx" => ["edx"], "application/vnd.novadigm.ext" => ["ext"], "application/vnd.oasis.opendocument.base" => ["odb"], "application/vnd.oasis.opendocument.chart" => ["odc"], "application/vnd.oasis.opendocument.chart-template" => ["otc"], "application/vnd.oasis.opendocument.flat.presentation" => ["fodp"], "application/vnd.oasis.opendocument.flat.spreadsheet" => ["fods"], "application/vnd.oasis.opendocument.flat.text" => ["fodt"], "application/vnd.oasis.opendocument.formula" => ["odf"], "application/vnd.oasis.opendocument.formula-template" => ["odft"], "application/vnd.oasis.opendocument.graphics" => ["odg"], "application/vnd.oasis.opendocument.graphics-template" => ["otg"], "application/vnd.oasis.opendocument.image" => ["odi"], "application/vnd.oasis.opendocument.image-template" => ["oti"], "application/vnd.oasis.opendocument.presentation" => ["odp"], "application/vnd.oasis.opendocument.presentation-template" => ["otp"], "application/vnd.oasis.opendocument.spreadsheet" => ["ods"], "application/vnd.oasis.opendocument.spreadsheet-template" => ["ots"], "application/vnd.oasis.opendocument.text" => ["odt"], "application/vnd.oasis.opendocument.text-master" => ["otm"], "application/vnd.oasis.opendocument.text-template" => ["ott"], "application/vnd.oasis.opendocument.text-web" => ["oth"], "application/vnd.olpc-sugar" => ["xo"], "application/vnd.oma.dd2+xml" => ["dd2"], "application/vnd.openofficeorg.autotext" => ["bau"], "application/vnd.openofficeorg.extension" => ["oxt"], "application/vnd.openxmlformats-officedocument.presentationml.presentation" => ["pptx", "thmx"], "application/vnd.openxmlformats-officedocument.presentationml.slide" => ["sldx"], "application/vnd.openxmlformats-officedocument.presentationml.slideshow" => ["ppsx"], "application/vnd.openxmlformats-officedocument.presentationml.template" => ["potx"], "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" => ["xlsx"], "application/vnd.openxmlformats-officedocument.spreadsheetml.template" => ["xltx"], "application/vnd.openxmlformats-officedocument.wordprocessingml.document" => ["docx"], "application/vnd.openxmlformats-officedocument.wordprocessingml.template" => ["dotx"], "application/vnd.osgi.dp" => ["dp"], "application/vnd.palm" => ["pqa", "oprc"], "application/vnd.pg.format" => ["str"], "application/vnd.pg.osasli" => ["ei6"], "application/vnd.picsel" => ["efif"], "application/vnd.pocketlearn" => ["plf"], "application/vnd.powerbuilder6" => ["pbd"], "application/vnd.previewsystems.box" => ["box"], "application/vnd.proteus.magazine" => ["mgz"], "application/vnd.publishare-delta-tree" => ["qps"], "application/vnd.pvi.ptid1" => ["ptid"], "application/vnd.quark.quarkxpress" => ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"], "application/vnd.recordare.musicxml" => ["mxl"], "application/vnd.recordare.musicxml+xml" => ["musicxml"], "application/vnd.rim.cod" => ["cod"], "application/vnd.rn-realmedia" => ["rm"], "application/vnd.route66.link66+xml" => ["link66"], "application/vnd.seemail" => ["see"], "application/vnd.sema" => ["sema"], "application/vnd.semd" => ["semd"], "application/vnd.semf" => ["semf"], "application/vnd.shana.informed.formdata" => ["ifm"], "application/vnd.shana.informed.formtemplate" => ["itp"], "application/vnd.shana.informed.interchange" => ["iif"], "application/vnd.shana.informed.package" => ["ipk"], "application/vnd.simtech-mindmapper" => ["twd", "twds"], "application/vnd.smaf" => ["mmf"], "application/vnd.smart.teacher" => ["teacher"], "application/vnd.solent.sdkm+xml" => ["sdkm", "sdkd"], "application/vnd.spotfire.dxp" => ["dxp"], "application/vnd.spotfire.sfs" => ["sfs"], "application/vnd.stardivision.calc" => ["sdc"], "application/vnd.stardivision.draw" => ["sda"], "application/vnd.stardivision.impress" => ["sdd"], "application/vnd.stardivision.math" => ["smf"], "application/vnd.stardivision.writer" => ["sdw"], "application/vnd.stardivision.writer-global" => ["sgl"], "application/vnd.sun.xml.calc" => ["sxc"], "application/vnd.sun.xml.calc.template" => ["stc"], "application/vnd.sun.xml.draw" => ["sxd"], "application/vnd.sun.xml.draw.template" => ["std"], "application/vnd.sun.xml.impress" => ["sxi"], "application/vnd.sun.xml.impress.template" => ["sti"], "application/vnd.sun.xml.math" => ["sxm"], "application/vnd.sun.xml.writer" => ["sxw"], "application/vnd.sun.xml.writer.global" => ["sxg"], "application/vnd.sun.xml.writer.template" => ["stw"], "application/vnd.sus-calendar" => ["sus", "susp"], "application/vnd.svd" => ["svd"], "application/vnd.symbian.install" => ["sis", "sisx"], "application/vnd.syncml+xml" => ["xsm"], "application/vnd.syncml.dm+wbxml" => ["bdm"], "application/vnd.syncml.dm+xml" => ["xdm"], "application/vnd.tao.intent-module-archive" => ["tao"], "application/vnd.tcpdump.pcap" => ["pcap", "cap", "dmp"], "application/vnd.tcpdump.pcapng" => ["pcapng"], "application/vnd.tmobile-livetv" => ["tmo"], "application/vnd.trid.tpt" => ["tpt"], "application/vnd.triscape.mxs" => ["mxs"], "application/vnd.trueapp" => ["tra"], "application/vnd.ufdl" => ["ufd", "ufdl"], "application/vnd.uiq.theme" => ["utz"], "application/vnd.umajin" => ["umj"], "application/vnd.unity" => ["unityweb"], "application/vnd.uoml+xml" => ["uoml"], "application/vnd.vcx" => ["vcx"], "application/vnd.visio" => ["vsd", "vst", "vss", "vsw"], "application/vnd.visionary" => ["vis"], "application/vnd.vsf" => ["vsf"], "application/vnd.wap.wbxml" => ["wbxml"], "application/vnd.wap.wmlc" => ["wmlc"], "application/vnd.wap.wmlscriptc" => ["wmlsc"], "application/vnd.webturbo" => ["wtb"], "application/vnd.wolfram.wl" => ["wl"], "application/vnd.wordperfect" => ["wpd", "wp", "wp5", "wp6", "w60", "wp61", "wpt"], "application/vnd.wqd" => ["wqd"], "application/vnd.wt.stf" => ["stf"], "application/vnd.xara" => ["xar"], "application/vnd.xfdl" => ["xfdl"], "application/vnd.yamaha.hv-dic" => ["hvd"], "application/vnd.yamaha.hv-script" => ["hvs"], "application/vnd.yamaha.hv-voice" => ["hvp"], "application/vnd.yamaha.openscoreformat" => ["osf"], "application/vnd.yamaha.openscoreformat.osfpvg+xml" => ["osfpvg"], "application/vnd.yamaha.smaf-audio" => ["saf"], "application/vnd.yamaha.smaf-phrase" => ["spf"], "application/vnd.yellowriver-custom-menu" => ["cmp"], "application/vnd.zul" => ["zir", "zirz"], "application/vnd.zzazz.deck+xml" => ["zaz"], "application/voicexml+xml" => ["vxml"], "application/warc" => ["warc"], "application/warc+gz" => ["warc.gz"], "application/wasm" => ["wasm"], "application/winhlp" => ["hlp"], "application/wsdl+xml" => ["wsdl"], "application/wspolicy+xml" => ["wspolicy"], "application/x-7z-compressed" => ["7z"], "application/x-abiword" => ["abw"], "application/x-ace-compressed" => ["ace"], "application/x-adobe-indesign" => ["indd"], "application/x-adobe-indesign-interchange" => ["inx"], "application/x-amf" => ["amf"], "application/x-amiga-disk-format" => ["adf"], "application/x-apple-diskimage" => ["dmg"], "application/x-appleworks" => ["cwk"], "application/x-archive" => ["ar", "a"], "application/x-arj" => ["arj"], "application/x-asprs" => ["las", "laz"], "application/x-authorware-bin" => ["aab", "x32", "u32", "vox"], "application/x-authorware-map" => ["aam"], "application/x-authorware-seg" => ["aas"], "application/x-axcrypt" => ["axx"], "application/x-bat" => ["bat", "cmd"], "application/x-bcpio" => ["bcpio"], "application/x-bibtex-text-file" => ["bib", "bibtex"], "application/x-bittorrent" => ["torrent"], "application/x-brotli" => ["br", "brotli"], "application/x-bzip" => ["bz", "tbz"], "application/x-bzip2" => ["bz2", "tbz2", "boz"], "application/x-cdf" => ["cda"], "application/x-cdlink" => ["vcd"], "application/x-chat" => ["chat"], "application/x-chess-pgn" => ["pgn"], "application/x-chrome-package" => ["crx"], "application/x-compress" => ["z"], "application/x-corelpresentations" => ["shw"], "application/x-cpio" => ["cpio"], "application/x-csh" => ["csh", "tcsh"], "application/x-dbf" => ["dbf", "dbase", "dbase3"], "application/x-debian-package" => ["deb", "udeb"], "application/x-dex" => ["dex"], "application/x-director" => ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"], "application/x-doom" => ["wad"], "application/x-dosexec" => ["exe"], "application/x-dtbncx+xml" => ["ncx"], "application/x-dtbook+xml" => ["dtb"], "application/x-dtbresource+xml" => ["res"], "application/x-dvd-ifo" => ["ifo", "bup"], "application/x-dvi" => ["dvi"], "application/x-elc" => ["elc"], "application/x-endnote-refer" => ["enw", "enr"], "application/x-endnote-style" => ["ens"], "application/x-erdas-hfa" => ["hfa"], "application/x-esri-layer" => ["lyr"], "application/x-fictionbook+xml" => ["fb2"], "application/x-filemaker" => ["fp7"], "application/x-font-adobe-metric" => ["afm", "acfm", "amfm"], "application/x-font-bdf" => ["bdf"], "application/x-font-ghostscript" => ["gsf"], "application/x-font-linux-psf" => ["psf"], "application/x-font-otf" => ["otf"], "application/x-font-pcf" => ["pcf"], "application/x-font-printer-metric" => ["pfm"], "application/x-font-snf" => ["snf"], "application/x-font-ttf" => ["ttf", "ttc"], "application/x-font-type1" => ["pfa", "pfb"], "application/x-futuresplash" => ["spl"], "application/x-geopackage" => ["gpkg"], "application/x-geopackage; version=1.1Or1.0" => ["gpkg"], "application/x-gnucash" => ["gnucash"], "application/x-gnumeric" => ["gnumeric"], "application/x-grib" => ["grb", "grb1", "grb2"], "application/x-gtar" => ["gtar"], "application/x-guitar-pro" => ["gp4"], "application/x-hdf" => ["hdf", "he5", "h5"], "application/x-ibooks+zip" => ["ibooks"], "application/x-internet-archive" => ["arc"], "application/x-iso9660-image" => ["iso"], "application/x-itunes-ipa" => ["ipa"], "application/x-java-jnilib" => ["jnilib"], "application/x-java-jnlp-file" => ["jnlp"], "application/x-java-keystore" => ["jks"], "application/x-java-pack200" => ["pack"], "application/x-jeol-jdf" => ["jdf"], "application/x-killustrator" => ["kil"], "application/x-latex" => ["latex"], "application/x-lz4" => ["lz4"], "application/x-lzip" => ["lz"], "application/x-lzma" => ["lzma"], "application/x-matlab-data" => ["mat"], "application/x-memgraph" => ["memgraph"], "application/x-mobipocket-ebook" => ["prc", "mobi"], "application/x-ms-application" => ["application"], "application/x-ms-asx" => ["asx"], "application/x-ms-installer" => ["msi", "msp", "mst"], "application/x-ms-wmd" => ["wmd"], "application/x-ms-wmz" => ["wmz"], "application/x-ms-xbap" => ["xbap"], "application/x-msaccess" => ["accdb", "mdb"], "application/x-msbinder" => ["obd"], "application/x-mscardfile" => ["crd"], "application/x-msclip" => ["clp"], "application/x-msdownload" => ["dll", "com"], "application/x-msmediaview" => ["mvb", "m13", "m14"], "application/x-msmoney" => ["mny"], "application/x-mspublisher" => ["pub"], "application/x-msschedule" => ["scd"], "application/x-msterminal" => ["trm"], "application/x-mswrite" => ["wri"], "application/x-mysql-misam-compressed-index" => ["myi"], "application/x-mysql-misam-data" => ["myd"], "application/x-nesrom" => ["nes"], "application/x-netcdf" => ["nc", "cdf"], "application/x-openscad" => ["scad"], "application/x-parquet" => ["parquet"], "application/x-pkcs12" => ["p12", "pfx"], "application/x-pkcs7-certificates" => ["p7b", "spc"], "application/x-pkcs7-certreqresp" => ["p7r"], "application/x-project" => ["mpx"], "application/x-prt" => ["prt"], "application/x-quattro-pro" => ["wq1", "wq2", "wkq", "qpw", "wb1", "wb2", "wb3"], "application/x-quattro-pro;version=1+5" => ["wb1"], "application/x-quattro-pro;version=1-4" => ["wq1", "wkq"], "application/x-quattro-pro;version=5" => ["wq2", "wkq"], "application/x-quattro-pro;version=6" => ["wb2"], "application/x-rar-compressed" => ["rar"], "application/x-roxio-toast" => ["toast"], "application/x-rpm" => ["rpm"], "application/x-sas" => ["sas"], "application/x-sas-access" => ["sa7", "sas7bacs"], "application/x-sas-audit" => ["st7", "sas7baud"], "application/x-sas-backup" => ["sas7bbak"], "application/x-sas-catalog" => ["sc7", "sas7bcat"], "application/x-sas-data" => ["sd7", "sas7bdat"], "application/x-sas-data-index" => ["si7", "sas7bndx"], "application/x-sas-data-v6" => ["sd2"], "application/x-sas-dmdb" => ["s7m", "sas7bdmd"], "application/x-sas-fdb" => ["sf7", "sas7bfdb"], "application/x-sas-itemstor" => ["sr7", "sas7bitm"], "application/x-sas-mddb" => ["sm7", "sas7bmdb"], "application/x-sas-program-data" => ["ss7", "sas7bpgm"], "application/x-sas-putility" => ["sp7", "sas7bput"], "application/x-sas-transport" => ["stx"], "application/x-sas-utility" => ["su7", "sas7butl"], "application/x-sas-view" => ["sv7", "sas7bvew"], "application/x-sas-xport" => ["xpt", "xport"], "application/x-sfdu" => ["sfdu"], "application/x-sh" => ["sh", "bash"], "application/x-shapefile" => ["shp"], "application/x-shar" => ["shar"], "application/x-shockwave-flash" => ["swf"], "application/x-sibelius" => ["sib"], "application/x-silverlight-app" => ["xap"], "application/x-snappy-framed" => ["sz"], "application/x-spectrum-tzx" => ["tzx"], "application/x-spss-sav" => ["sav"], "application/x-staroffice-template" => ["vor"], "application/x-stata-do" => ["do"], "application/x-stata-dta" => ["dta"], "application/x-stuffit" => ["sit"], "application/x-stuffitx" => ["sitx"], "application/x-subrip" => ["srt"], "application/x-sv4cpio" => ["sv4cpio"], "application/x-sv4crc" => ["sv4crc"], "application/x-tar" => ["tar"], "application/x-tex" => ["tex"], "application/x-tex-tfm" => ["tfm"], "application/x-tex-virtual-font" => ["vf"], "application/x-texinfo" => ["texinfo", "texi"], "application/x-tika-java-enterprise-archive" => ["ear"], "application/x-tika-java-web-archive" => ["war"], "application/x-tika-msworks-spreadsheet" => ["xlr"], "application/x-tmx" => ["tmx"], "application/x-uc2-compressed" => ["uc2"], "application/x-ustar" => ["ustar"], "application/x-vmdk" => ["vmdk"], "application/x-wais-source" => ["src"], "application/x-webarchive" => ["webarchive"], "application/x-x509-cert" => ["crt"], "application/x-x509-cert;format=der" => ["der"], "application/x-x509-cert;format=pem" => ["pem"], "application/x-xfig" => ["fig"], "application/x-xliff+xml" => ["xlf", "xliff"], "application/x-xliff+zip" => ["xlz"], "application/x-xmind" => ["xmind"], "application/x-xpinstall" => ["xpi"], "application/x-xz" => ["xz"], "application/x-zoo" => ["zoo"], "application/xenc+xml" => ["xenc"], "application/xhtml+xml" => ["xhtml", "xhtml2", "xht"], "application/xml" => ["xml", "xsl", "xsd"], "application/xml-dtd" => ["dtd"], "application/xop+xml" => ["xop"], "application/xquery" => ["xq", "xquery"], "application/xslfo+xml" => ["xslfo", "fo"], "application/xslt+xml" => ["xslt"], "application/xspf+xml" => ["xspf"], "application/xv+xml" => ["mxml", "xhvml", "xvml", "xvm"], "application/zip" => ["zip", "zipx"], "application/zstd" => ["zst"], "audio/ac3" => ["ac3"], "audio/adpcm" => ["adp"], "audio/amr" => ["amr"], "audio/basic" => ["au", "snd"], "audio/midi" => ["mid", "midi", "kar", "rmi"], "audio/mp4" => ["mp4a", "m4a", "m4b"], "audio/mpeg" => ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"], "audio/ogg" => ["oga"], "audio/opus" => ["opus"], "audio/speex" => ["spx"], "audio/vnd.adobe.soundbooth" => ["asnd"], "audio/vnd.digital-winds" => ["eol"], "audio/vnd.dts" => ["dts"], "audio/vnd.dts.hd" => ["dtshd"], "audio/vnd.lucent.voice" => ["lvp"], "audio/vnd.ms-playready.media.pya" => ["pya"], "audio/vnd.nuera.ecelp4800" => ["ecelp4800"], "audio/vnd.nuera.ecelp7470" => ["ecelp7470"], "audio/vnd.nuera.ecelp9600" => ["ecelp9600"], "audio/vnd.wave" => ["wav"], "audio/vorbis" => ["ogg"], "audio/x-aac" => ["aac"], "audio/x-aiff" => ["aif", "aiff", "aifc"], "audio/x-caf" => ["caf"], "audio/x-flac" => ["flac"], "audio/x-matroska" => ["mka"], "audio/x-mod" => ["mod"], "audio/x-mpegurl" => ["m3u"], "audio/x-ms-wax" => ["wax"], "audio/x-ms-wma" => ["wma"], "audio/x-pn-realaudio" => ["ram", "ra"], "audio/x-pn-realaudio-plugin" => ["rmp"], "audio/x-psf" => ["psf1", "psflib", "minipsf", "minipsf1", "gslib", "minigsf"], "audio/x-sap" => ["sap"], "chemical/x-cdx" => ["cdx"], "chemical/x-cif" => ["cif"], "chemical/x-cmdf" => ["cmdf"], "chemical/x-cml" => ["cml"], "chemical/x-csml" => ["csml"], "chemical/x-pdb" => ["pdb"], "chemical/x-xyz" => ["xyz"], "font/woff" => ["woff"], "font/woff2" => ["woff2"], "image/aces" => ["exr"], "image/avif" => ["avif"], "image/bmp" => ["bmp", "dib"], "image/cgm" => ["cgm"], "image/emf" => ["emf"], "image/g3fax" => ["g3"], "image/gif" => ["gif"], "image/heic" => ["heic"], "image/heif" => ["heif"], "image/icns" => ["icns"], "image/ief" => ["ief"], "image/jp2" => ["jp2"], "image/jpeg" => ["jpg", "jpeg", "jpe", "jif", "jfif", "jfi"], "image/jpm" => ["jpm", "jpgm"], "image/jpx" => ["jpf"], "image/jxl" => ["jxl"], "image/nitf" => ["ntf", "nitf"], "image/png" => ["png"], "image/prs.btif" => ["btif"], "image/svg+xml" => ["svg", "svgz"], "image/tiff" => ["tiff", "tif"], "image/vnd.adobe.photoshop" => ["psd"], "image/vnd.adobe.premiere" => ["ppj"], "image/vnd.dgn" => ["dgn", "dgnlib", "cel"], "image/vnd.djvu" => ["djvu", "djv"], "image/vnd.dwg" => ["dwg"], "image/vnd.dxb" => ["dxb"], "image/vnd.dxf" => ["dxf"], "image/vnd.fastbidsheet" => ["fbs"], "image/vnd.fpx" => ["fpx"], "image/vnd.fst" => ["fst"], "image/vnd.fujixerox.edmics-mmr" => ["mmr"], "image/vnd.fujixerox.edmics-rlc" => ["rlc"], "image/vnd.microsoft.icon" => ["ico"], "image/vnd.ms-modi" => ["mdi"], "image/vnd.net-fpx" => ["npx"], "image/vnd.wap.wbmp" => ["wbmp"], "image/vnd.xiff" => ["xif"], "image/vnd.zbrush.dcx" => ["dcx"], "image/vnd.zbrush.pcx" => ["pcx"], "image/webp" => ["webp"], "image/wmf" => ["wmf"], "image/x-3ds" => ["3ds"], "image/x-bpg" => ["bpg"], "image/x-canon-cr2" => ["cr2"], "image/x-canon-cr3" => ["cr3"], "image/x-cmu-raster" => ["ras"], "image/x-cmx" => ["cmx"], "image/x-dpx" => ["dpx"], "image/x-emf-compressed" => ["emz"], "image/x-freehand" => ["fh", "fhc", "fh4", "fh40", "fh5", "fh50", "fh7", "fh8", "fh9", "fh10", "fh11", "fh12", "ft7", "ft8", "ft9", "ft10", "ft11", "ft12"], "image/x-jbig2" => ["jb2", "jbig2"], "image/x-jp2-codestream" => ["j2c"], "image/x-pict" => ["pic", "pct", "pict"], "image/x-portable-anymap" => ["pnm"], "image/x-portable-arbitrarymap" => ["pam"], "image/x-portable-bitmap" => ["pbm"], "image/x-portable-graymap" => ["pgm"], "image/x-portable-pixmap" => ["ppm"], "image/x-raw-adobe" => ["dng"], "image/x-raw-canon" => ["crw"], "image/x-raw-casio" => ["bay"], "image/x-raw-epson" => ["erf"], "image/x-raw-fuji" => ["raf"], "image/x-raw-hasselblad" => ["3fr"], "image/x-raw-imacon" => ["fff"], "image/x-raw-kodak" => ["k25", "kdc", "dcs", "drf"], "image/x-raw-leaf" => ["mos"], "image/x-raw-logitech" => ["pxn"], "image/x-raw-mamiya" => ["mef"], "image/x-raw-minolta" => ["mrw"], "image/x-raw-nikon" => ["nef", "nrw"], "image/x-raw-olympus" => ["orf"], "image/x-raw-panasonic" => ["raw", "rw2"], "image/x-raw-pentax" => ["ptx", "pef"], "image/x-raw-phaseone" => ["iiq"], "image/x-raw-rawzor" => ["rwz"], "image/x-raw-red" => ["r3d"], "image/x-raw-sigma" => ["x3f"], "image/x-raw-sony" => ["arw", "srf", "sr2"], "image/x-rgb" => ["rgb"], "image/x-tga" => ["tga", "icb", "vda"], "image/x-xbitmap" => ["xbm"], "image/x-xcf" => ["xcf"], "image/x-xpixmap" => ["xpm"], "image/x-xwindowdump" => ["xwd"], "message/rfc822" => ["eml", "mime"], "message/x-emlx" => ["emlx"], "model/e57" => ["e57"], "model/iges" => ["igs", "iges"], "model/mesh" => ["msh", "mesh", "silo"], "model/vnd.dwf" => ["dwf"], "model/vnd.dwfx+xps" => ["dwfx"], "model/vnd.gdl" => ["gdl"], "model/vnd.gtw" => ["gtw"], "model/vnd.mts" => ["mts"], "model/vnd.vtu" => ["vtu"], "model/vrml" => ["wrl", "vrml"], "model/x.stl-binary" => ["stl"], "multipart/related" => ["mht", "mhtml"], "text/asp" => ["asp"], "text/aspdotnet" => ["aspx"], "text/calendar" => ["ics", "ifb"], "text/css" => ["css"], "text/csv" => ["csv"], "text/html" => ["html", "htm"], "text/iso19139+xml" => ["iso19139"], "text/javascript" => ["js", "mjs"], "text/markdown" => ["md", "mdtext", "mkd", "markdown"], "text/plain" => ["txt", "text", "def", "list", "in", "aart", "ac", "am", "apt", "bsh", "classpath", "cnd", "cwiki", "data", "dcl", "dsp", "dsw", "egrm", "ent", "ft", "fn", "fv", "grm", "g", "handlers", "htc", "ihtml", "jmx", "junit", "jx", "manifest", "m4", "mf", "mf", "meta", "mdo", "n3", "pen", "pod", "pom", "project", "rng", "rnx", "roles", "schemas", "tld", "types", "vm", "vsl", "wsdd", "xargs", "xcat", "xegrm", "xgrm", "xlex", "xlog", "xmap", "xroles", "xsamples", "xsp", "xtest", "xweb", "xwelcome"], "text/prs.lines.tag" => ["dsc"], "text/richtext" => ["rtx"], "text/sgml" => ["sgml", "sgm"], "text/tab-separated-values" => ["tsv"], "text/troff" => ["t", "tr", "roff", "nroff", "man", "me", "ms"], "text/uri-list" => ["uri", "uris", "urls"], "text/vnd.curl" => ["curl"], "text/vnd.curl.dcurl" => ["dcurl"], "text/vnd.curl.mcurl" => ["mcurl"], "text/vnd.curl.scurl" => ["scurl"], "text/vnd.fly" => ["fly"], "text/vnd.fmi.flexstor" => ["flx"], "text/vnd.graphviz" => ["gv"], "text/vnd.in3d.3dml" => ["3dml"], "text/vnd.in3d.spot" => ["spot"], "text/vnd.iptc.anpa" => ["anpa"], "text/vnd.sun.j2me.app-descriptor" => ["jad"], "text/vnd.wap.wml" => ["wml"], "text/vnd.wap.wmlscript" => ["wmls"], "text/vtt" => ["vtt"], "text/x-actionscript" => ["as"], "text/x-ada" => ["ada", "adb", "ads"], "text/x-applescript" => ["applescript"], "text/x-asciidoc" => ["asciidoc", "adoc", "ad", "ad.txt", "adoc.txt"], "text/x-aspectj" => ["aj"], "text/x-assembly" => ["s", "s", "asm"], "text/x-awk" => ["awk"], "text/x-basic" => ["bas", "bas", "bas"], "text/x-c++hdr" => ["hpp", "hxx", "hh", "h", "h++", "hp", "hpp"], "text/x-c++src" => ["cpp", "cxx", "cc", "c", "c++", "cpp"], "text/x-cgi" => ["cgi"], "text/x-chdr" => ["h"], "text/x-clojure" => ["clj"], "text/x-cobol" => ["cbl", "cbl", "cbl", "cob", "cob", "cob"], "text/x-coffeescript" => ["coffee"], "text/x-coldfusion" => ["cfm", "cfml", "cfc"], "text/x-common-lisp" => ["cl", "jl", "lisp", "lsp"], "text/x-config" => ["config", "conf", "cfg", "xconf"], "text/x-csharp" => ["cs"], "text/x-csrc" => ["c"], "text/x-d" => ["d"], "text/x-diff" => ["diff", "patch"], "text/x-eiffel" => ["e"], "text/x-emacs-lisp" => ["el"], "text/x-erlang" => ["erl"], "text/x-expect" => ["exp"], "text/x-forth" => ["4th"], "text/x-fortran" => ["f", "f", "for", "f77", "f90"], "text/x-go" => ["go"], "text/x-groovy" => ["groovy"], "text/x-haml" => ["haml"], "text/x-haskell" => ["hs", "lhs"], "text/x-haxe" => ["hx"], "text/x-idl" => ["idl"], "text/x-ini" => ["ini"], "text/x-java-properties" => ["properties"], "text/x-java-source" => ["java"], "text/x-jsp" => ["jsp"], "text/x-less" => ["less"], "text/x-lex" => ["l"], "text/x-log" => ["log"], "text/x-lua" => ["lua"], "text/x-ml" => ["ml"], "text/x-modula" => ["m3", "i3", "mg", "ig"], "text/x-objcsrc" => ["m"], "text/x-ocaml" => ["ocaml", "mli"], "text/x-pascal" => ["p", "pp", "pas", "pas", "dpr"], "text/x-perl" => ["pl", "pm", "al", "perl"], "text/x-php" => ["php", "php3", "php4"], "text/x-prolog" => ["pro"], "text/x-python" => ["py"], "text/x-rexx" => ["rexx"], "text/x-rsrc" => ["r"], "text/x-rst" => ["rest", "rst", "restx"], "text/x-ruby" => ["rb"], "text/x-sass" => ["sass"], "text/x-scala" => ["scala"], "text/x-scheme" => ["scm"], "text/x-scss" => ["scss"], "text/x-sed" => ["sed"], "text/x-setext" => ["etx"], "text/x-sql" => ["sql"], "text/x-stsrc" => ["st"], "text/x-tcl" => ["itk", "tcl", "tk"], "text/x-uuencode" => ["uu"], "text/x-vbasic" => ["cls", "cls", "cls", "frm", "frm", "frm"], "text/x-vbdotnet" => ["vb"], "text/x-vbscript" => ["vbs"], "text/x-vcalendar" => ["vcs"], "text/x-vcard" => ["vcf"], "text/x-verilog" => ["v"], "text/x-vhdl" => ["vhd", "vhdl"], "text/x-yacc" => ["y"], "text/x-yaml" => ["yaml", "yml"], "video/3gpp" => ["3gp"], "video/3gpp2" => ["3g2"], "video/h261" => ["h261"], "video/h263" => ["h263"], "video/h264" => ["h264"], "video/iso.segment" => ["m4s"], "video/jpeg" => ["jpgv"], "video/mj2" => ["mj2", "mjp2"], "video/mp4" => ["mp4", "mp4v", "mpg4"], "video/mpeg" => ["mpeg", "mpg", "mpe", "m1v", "m2v"], "video/ogg" => ["ogv"], "video/quicktime" => ["qt", "mov"], "video/vnd.fvt" => ["fvt"], "video/vnd.mpegurl" => ["mxu", "m4u"], "video/vnd.ms-playready.media.pyv" => ["pyv"], "video/vnd.vivo" => ["viv"], "video/webm" => ["webm"], "video/x-dirac" => ["drc"], "video/x-f4v" => ["f4v"], "video/x-flc" => ["flc"], "video/x-fli" => ["fli"], "video/x-flv" => ["flv"], "video/x-jng" => ["jng"], "video/x-m4v" => ["m4v"], "video/x-matroska" => ["mkv"], "video/x-mng" => ["mng"], "video/x-ms-asf" => ["asf"], "video/x-ms-wm" => ["wm"], "video/x-ms-wmv" => ["wmv"], "video/x-ms-wmx" => ["wmx"], "video/x-ms-wvx" => ["wvx"], "video/x-msvideo" => ["avi"], "video/x-ogm" => ["ogm"], "video/x-sgi-movie" => ["movie"], "x-conference/x-cooltalk" => ["ice"]} of String => Array(String)
TYPE_PARENTS = {"application/atom+xml" => ["application/xml"], "application/bizagi-modeler" => ["application/zip"], "application/dash+xml" => ["application/xml"], "application/dif+xml" => ["application/xml"], "application/dita+xml;format=map" => ["application/dita+xml"], "application/dita+xml;format=topic" => ["application/dita+xml"], "application/dita+xml;format=val" => ["application/dita+xml"], "application/gpx+xml" => ["application/xml"], "application/hwp+zip" => ["application/zip"], "application/illustrator" => ["application/pdf"], "application/java-archive" => ["application/zip"], "application/json" => ["text/javascript"], "application/manifest+json" => ["application/json"], "application/mathematica" => ["text/plain"], "application/mbox" => ["text/x-tika-text-based-message"], "application/mp4" => ["application/quicktime"], "application/msword" => ["application/x-tika-msoffice"], "application/onenote; format=package" => ["application/vnd.ms-cab-compressed"], "application/onenote;format=one" => ["application/onenote"], "application/onenote;format=onetoc2" => ["application/onenote"], "application/oxps" => ["application/x-tika-ooxml"], "application/rdf+xml" => ["application/xml"], "application/relax-ng-compact-syntax" => ["text/plain"], "application/rss+xml" => ["application/xml"], "application/rtf" => ["text/plain"], "application/sldworks" => ["application/x-tika-msoffice"], "application/smil+xml" => ["application/xml"], "application/ttml+xml" => ["application/xml"], "application/vnd.adobe.indesign-idml-package" => ["application/zip"], "application/vnd.adobe.xdp+xml" => ["application/xml"], "application/vnd.adobe.xfdf" => ["application/xml"], "application/vnd.android.package-archive" => ["application/java-archive"], "application/vnd.apple.keynote" => ["application/vnd.apple.iwork"], "application/vnd.apple.numbers" => ["application/vnd.apple.iwork"], "application/vnd.apple.pages" => ["application/vnd.apple.iwork"], "application/vnd.etsi.asic-e+zip" => ["application/zip"], "application/vnd.etsi.asic-s+zip" => ["application/zip"], "application/vnd.google-apps.spreadsheet" => ["application/json"], "application/vnd.google-earth.kml+xml" => ["application/xml"], "application/vnd.google-earth.kmz" => ["application/zip"], "application/vnd.iptc.g2.newsmessage+xml" => ["application/xml"], "application/vnd.java.hprof.text" => ["text/plain"], "application/vnd.lotus-1-2-3;version=2" => ["application/vnd.lotus-1-2-3"], "application/vnd.lotus-1-2-3;version=3" => ["application/vnd.lotus-1-2-3"], "application/vnd.lotus-1-2-3;version=4" => ["application/vnd.lotus-1-2-3"], "application/vnd.lotus-1-2-3;version=97+9.x" => ["application/vnd.lotus-1-2-3"], "application/vnd.mindjet.mindmanager" => ["application/zip"], "application/vnd.ms-excel" => ["application/x-tika-msoffice"], "application/vnd.ms-excel.addin.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-excel.sheet.binary.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-excel.sheet.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-excel.template.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-outlook" => ["application/x-tika-msoffice"], "application/vnd.ms-powerpoint" => ["application/x-tika-msoffice"], "application/vnd.ms-powerpoint.addin.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-powerpoint.presentation.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-powerpoint.slide.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-powerpoint.slideshow.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-powerpoint.template.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-project" => ["application/x-tika-msoffice"], "application/vnd.ms-visio.drawing" => ["application/x-tika-visio-ooxml"], "application/vnd.ms-visio.drawing.macroEnabled.12" => ["application/x-tika-visio-ooxml"], "application/vnd.ms-visio.stencil" => ["application/x-tika-visio-ooxml"], "application/vnd.ms-visio.stencil.macroEnabled.12" => ["application/x-tika-visio-ooxml"], "application/vnd.ms-visio.template" => ["application/x-tika-visio-ooxml"], "application/vnd.ms-visio.template.macroEnabled.12" => ["application/x-tika-visio-ooxml"], "application/vnd.ms-word.document.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-word.template.macroenabled.12" => ["application/x-tika-ooxml"], "application/vnd.ms-works" => ["application/x-tika-msoffice"], "application/vnd.ms-xpsdocument" => ["application/x-tika-ooxml"], "application/vnd.oasis.opendocument.chart" => ["application/zip"], "application/vnd.oasis.opendocument.chart-template" => ["application/zip"], "application/vnd.oasis.opendocument.flat.presentation" => ["application/vnd.oasis.opendocument.tika.flat.document"], "application/vnd.oasis.opendocument.flat.spreadsheet" => ["application/vnd.oasis.opendocument.tika.flat.document"], "application/vnd.oasis.opendocument.flat.text" => ["application/vnd.oasis.opendocument.tika.flat.document"], "application/vnd.oasis.opendocument.formula" => ["application/zip"], "application/vnd.oasis.opendocument.formula-template" => ["application/zip"], "application/vnd.oasis.opendocument.graphics" => ["application/zip"], "application/vnd.oasis.opendocument.graphics-template" => ["application/zip"], "application/vnd.oasis.opendocument.image" => ["application/zip"], "application/vnd.oasis.opendocument.image-template" => ["application/zip"], "application/vnd.oasis.opendocument.presentation" => ["application/zip"], "application/vnd.oasis.opendocument.presentation-template" => ["application/zip"], "application/vnd.oasis.opendocument.spreadsheet" => ["application/zip"], "application/vnd.oasis.opendocument.spreadsheet-template" => ["application/zip"], "application/vnd.oasis.opendocument.text" => ["application/zip"], "application/vnd.oasis.opendocument.text-master" => ["application/zip"], "application/vnd.oasis.opendocument.text-template" => ["application/zip"], "application/vnd.oasis.opendocument.text-web" => ["application/zip"], "application/vnd.openofficeorg.autotext" => ["application/zip"], "application/vnd.openofficeorg.extension" => ["application/zip"], "application/vnd.openxmlformats-officedocument.presentationml.presentation" => ["application/x-tika-ooxml"], "application/vnd.openxmlformats-officedocument.presentationml.slide" => ["application/x-tika-ooxml"], "application/vnd.openxmlformats-officedocument.presentationml.slideshow" => ["application/x-tika-ooxml"], "application/vnd.openxmlformats-officedocument.presentationml.template" => ["application/x-tika-ooxml"], "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" => ["application/x-tika-ooxml"], "application/vnd.openxmlformats-officedocument.spreadsheetml.template" => ["application/x-tika-ooxml"], "application/vnd.openxmlformats-officedocument.wordprocessingml.document" => ["application/x-tika-ooxml"], "application/vnd.openxmlformats-officedocument.wordprocessingml.template" => ["application/x-tika-ooxml"], "application/vnd.stardivision.calc" => ["application/x-tika-staroffice"], "application/vnd.stardivision.draw" => ["application/x-tika-staroffice"], "application/vnd.stardivision.impress" => ["application/x-tika-staroffice"], "application/vnd.stardivision.writer" => ["application/x-tika-staroffice"], "application/vnd.visio" => ["application/x-tika-msoffice"], "application/vnd.wolfram.wl" => ["application/mathematica"], "application/x-adobe-indesign-interchange" => ["application/xml"], "application/x-amf" => ["application/xml"], "application/x-bat" => ["text/plain"], "application/x-bibtex-text-file" => ["text/plain"], "application/x-bzip2" => ["application/x-bzip"], "application/x-corelpresentations" => ["application/x-tika-msoffice"], "application/x-debian-package" => ["application/x-archive"], "application/x-dosexec" => ["application/x-msdownload"], "application/x-esri-layer" => ["application/x-tika-msoffice"], "application/x-fictionbook+xml" => ["application/xml"], "application/x-geopackage" => ["application/x-sqlite3"], "application/x-geopackage; version=1.1Or1.0" => ["application/x-sqlite3"], "application/x-gtar" => ["application/x-tar"], "application/x-ibooks+zip" => ["application/epub+zip"], "application/x-itunes-ipa" => ["application/zip"], "application/x-java-jnilib" => ["application/x-mach-o-universal"], "application/x-latex" => ["application/x-tex"], "application/x-memgraph" => ["application/x-bplist"], "application/x-ms-asx" => ["application/xml"], "application/x-ms-installer" => ["application/x-tika-msoffice"], "application/x-ms-wmz" => ["application/gzip"], "application/x-mspublisher" => ["application/x-tika-msoffice"], "application/x-mysql-misam-compressed-index" => ["application/x-mysql-db"], "application/x-mysql-misam-data" => ["application/x-mysql-db"], "application/x-openscad" => ["text/plain"], "application/x-project" => ["text/plain"], "application/x-quattro-pro" => ["application/x-tika-msoffice"], "application/x-quattro-pro;version=1+5" => ["application/x-quattro-pro"], "application/x-quattro-pro;version=1-4" => ["application/x-quattro-pro"], "application/x-quattro-pro;version=5" => ["application/x-quattro-pro"], "application/x-quattro-pro;version=6" => ["application/x-quattro-pro"], "application/x-roxio-toast" => ["application/x-iso9660-image"], "application/x-sas" => ["text/plain"], "application/x-sfdu" => ["text/plain"], "application/x-sh" => ["text/plain"], "application/x-staroffice-template" => ["application/x-tika-staroffice"], "application/x-subrip" => ["text/plain"], "application/x-tex" => ["text/plain"], "application/x-tika-java-enterprise-archive" => ["application/java-archive"], "application/x-tika-java-web-archive" => ["application/java-archive"], "application/x-tika-msworks-spreadsheet" => ["application/vnd.ms-excel"], "application/x-tmx" => ["application/xml"], "application/x-webarchive" => ["application/x-bplist"], "application/x-x509-cert;format=der" => ["application/x-x509-cert"], "application/x-x509-cert;format=pem" => ["application/x-x509-cert"], "application/x-xliff+xml" => ["application/xml"], "application/x-xliff+zip" => ["application/zip"], "application/x-xmind" => ["application/zip"], "application/xhtml+xml" => ["application/xml"], "application/xml" => ["text/plain"], "application/xml-dtd" => ["text/plain"], "application/xquery" => ["text/plain"], "application/xslfo+xml" => ["application/xml"], "application/xslt+xml" => ["application/xml"], "application/xspf+xml" => ["application/xml"], "audio/mp4" => ["video/mp4"], "audio/ogg" => ["application/ogg"], "audio/opus" => ["audio/ogg"], "audio/speex" => ["audio/ogg"], "audio/vorbis" => ["audio/ogg"], "audio/x-matroska" => ["application/x-matroska"], "audio/x-ms-wma" => ["video/x-ms-asf"], "image/jp2" => ["image/x-jp2-container"], "image/jpm" => ["image/x-jp2-container"], "image/jpx" => ["image/x-jp2-container"], "image/svg+xml" => ["application/xml"], "image/vnd.adobe.premiere" => ["application/xml"], "image/x-canon-cr2" => ["image/tiff"], "image/x-canon-cr3" => ["video/quicktime"], "image/x-emf-compressed" => ["application/gzip"], "image/x-portable-arbitrarymap" => ["image/x-portable-anymap"], "image/x-portable-bitmap" => ["image/x-portable-anymap"], "image/x-portable-graymap" => ["image/x-portable-anymap"], "image/x-portable-pixmap" => ["image/x-portable-anymap"], "image/x-xbitmap" => ["text/x-c"], "message/rfc822" => ["text/x-tika-text-based-message"], "message/x-emlx" => ["text/x-tika-text-based-message"], "model/vnd.dwfx+xps" => ["application/x-tika-ooxml"], "multipart/related" => ["message/rfc822"], "text/asp" => ["text/plain"], "text/aspdotnet" => ["text/plain"], "text/calendar" => ["text/plain"], "text/css" => ["text/plain"], "text/csv" => ["text/plain"], "text/iso19139+xml" => ["application/xml"], "text/javascript" => ["text/plain"], "text/markdown" => ["text/plain"], "text/vnd.graphviz" => ["text/plain"], "text/vtt" => ["text/plain"], "text/x-actionscript" => ["text/plain"], "text/x-ada" => ["text/plain"], "text/x-applescript" => ["text/plain"], "text/x-asciidoc" => ["text/plain"], "text/x-aspectj" => ["text/plain"], "text/x-assembly" => ["text/plain"], "text/x-awk" => ["text/plain"], "text/x-basic" => ["text/plain"], "text/x-c++hdr" => ["text/plain"], "text/x-c++src" => ["text/plain"], "text/x-cgi" => ["text/plain"], "text/x-chdr" => ["text/plain"], "text/x-clojure" => ["text/plain"], "text/x-cobol" => ["text/plain"], "text/x-coffeescript" => ["text/plain"], "text/x-coldfusion" => ["text/plain"], "text/x-common-lisp" => ["text/plain"], "text/x-config" => ["text/plain"], "text/x-csharp" => ["text/plain"], "text/x-csrc" => ["text/plain"], "text/x-d" => ["text/plain"], "text/x-diff" => ["text/plain"], "text/x-eiffel" => ["text/plain"], "text/x-emacs-lisp" => ["text/plain"], "text/x-erlang" => ["text/plain"], "text/x-expect" => ["text/plain"], "text/x-forth" => ["text/plain"], "text/x-fortran" => ["text/plain"], "text/x-go" => ["text/plain"], "text/x-groovy" => ["text/plain"], "text/x-haml" => ["text/plain"], "text/x-haskell" => ["text/plain"], "text/x-haxe" => ["text/plain"], "text/x-idl" => ["text/plain"], "text/x-ini" => ["text/plain"], "text/x-java-properties" => ["text/plain"], "text/x-java-source" => ["text/plain"], "text/x-jsp" => ["text/plain"], "text/x-less" => ["text/plain"], "text/x-lex" => ["text/plain"], "text/x-log" => ["text/plain"], "text/x-lua" => ["text/plain"], "text/x-ml" => ["text/plain"], "text/x-modula" => ["text/plain"], "text/x-objcsrc" => ["text/plain"], "text/x-ocaml" => ["text/plain"], "text/x-pascal" => ["text/plain"], "text/x-perl" => ["text/plain"], "text/x-php" => ["text/plain"], "text/x-prolog" => ["text/plain"], "text/x-python" => ["text/plain"], "text/x-rexx" => ["text/plain"], "text/x-rsrc" => ["text/plain"], "text/x-rst" => ["text/plain"], "text/x-ruby" => ["text/plain"], "text/x-sass" => ["text/plain"], "text/x-scala" => ["text/plain"], "text/x-scheme" => ["text/plain"], "text/x-scss" => ["text/plain"], "text/x-sed" => ["text/plain"], "text/x-setext" => ["text/plain"], "text/x-sql" => ["text/plain"], "text/x-stsrc" => ["text/plain"], "text/x-tcl" => ["text/plain"], "text/x-vbasic" => ["text/x-basic"], "text/x-vbdotnet" => ["text/x-vbasic"], "text/x-vbscript" => ["text/x-vbasic"], "text/x-vcalendar" => ["text/plain"], "text/x-vcard" => ["text/plain"], "text/x-verilog" => ["text/plain"], "text/x-vhdl" => ["text/plain"], "text/x-yacc" => ["text/plain"], "text/x-yaml" => ["text/plain"], "video/iso.segment" => ["video/quicktime"], "video/mj2" => ["image/x-jp2-container"], "video/mp4" => ["video/quicktime"], "video/ogg" => ["application/ogg"], "video/quicktime" => ["application/quicktime"], "video/webm" => ["application/x-matroska"], "video/x-dirac" => ["video/ogg"], "video/x-m4v" => ["video/mp4"], "video/x-matroska" => ["application/x-matroska"], "video/x-ms-wmv" => ["video/x-ms-asf"], "video/x-ogm" => ["video/ogg"]} of String => Array(String)
VERSION = "2.1.0"