import mimetypes

TYPE_MAP = {
    '.js': 'application/javascript',
    '.mjs': 'application/javascript',
    '.json': 'application/json',
    '.webmanifest': 'application/manifest+json',
    '.doc': 'application/msword',
    '.dot': 'application/msword',
    '.wiz': 'application/msword',
    '.bin': 'application/octet-stream',
    '.a': 'application/octet-stream',
    '.dll': 'application/x-msdownload',
    '.exe': 'application/x-msdownload',
    '.o': 'application/octet-stream',
    '.obj': 'application/x-tgif',
    '.so': 'application/octet-stream',
    '.oda': 'application/oda',
    '.pdf': 'application/pdf',
    '.p7c': 'application/pkcs7-mime',
    '.ps': 'application/postscript',
    '.ai': 'application/postscript',
    '.eps': 'application/postscript',
    '.m3u': 'audio/x-mpegurl',
    '.m3u8': 'application/x-mpegurl',
    '.xls': 'application/vnd.ms-excel',
    '.xlb': 'application/vnd.ms-excel',
    '.ppt': 'application/vnd.ms-powerpoint',
    '.pot': 'application/vnd.ms-powerpoint',
    '.ppa': 'application/vnd.ms-powerpoint',
    '.pps': 'application/vnd.ms-powerpoint',
    '.pwz': 'application/vnd.ms-powerpoint',
    '.wasm': 'application/wasm',
    '.bcpio': 'application/x-bcpio',
    '.cpio': 'application/x-cpio',
    '.csh': 'application/x-csh',
    '.dvi': 'application/x-dvi',
    '.gtar': 'application/x-gtar',
    '.hdf': 'application/x-hdf',
    '.h5': 'application/x-hdf5',
    '.latex': 'application/x-latex',
    '.mif': 'application/vnd.mif',
    '.cdf': 'application/x-netcdf',
    '.nc': 'application/x-netcdf',
    '.p12': 'application/x-pkcs12',
    '.pfx': 'application/x-pkcs12',
    '.ram': 'audio/x-pn-realaudio',
    '.pyc': 'application/x-python-code',
    '.pyo': 'application/x-python-code',
    '.sh': 'application/x-sh',
    '.shar': 'application/x-shar',
    '.swf': 'application/x-shockwave-flash',
    '.sv4cpio': 'application/x-sv4cpio',
    '.sv4crc': 'application/x-sv4crc',
    '.tar': 'application/x-tar',
    '.tcl': 'application/x-tcl',
    '.tex': 'application/x-tex',
    '.texi': 'application/x-texinfo',
    '.texinfo': 'application/x-texinfo',
    '.roff': 'text/troff',
    '.t': 'text/troff',
    '.tr': 'text/troff',
    '.man': 'text/troff',
    '.me': 'text/troff',
    '.ms': 'text/troff',
    '.ustar': 'application/x-ustar',
    '.src': 'application/x-wais-source',
    '.xsl': 'application/xml',
    '.rdf': 'application/rdf+xml',
    '.wsdl': 'application/wsdl+xml',
    '.xpdl': 'application/xml',
    '.zip': 'application/zip',
    '.au': 'audio/basic',
    '.snd': 'audio/basic',
    '.mp3': 'audio/mpeg',
    '.mp2': 'audio/mpeg',
    '.aif': 'audio/x-aiff',
    '.aifc': 'audio/x-aiff',
    '.aiff': 'audio/x-aiff',
    '.ra': 'audio/x-pn-realaudio',
    '.wav': 'audio/x-wav',
    '.bmp': 'image/bmp',
    '.gif': 'image/gif',
    '.ief': 'image/ief',
    '.jpg': 'image/jpeg',
    '.jpe': 'image/jpeg',
    '.jpeg': 'image/jpeg',
    '.png': 'image/png',
    '.svg': 'image/svg+xml',
    '.tiff': 'image/tiff',
    '.tif': 'image/tiff',
    '.ico': 'image/x-icon',
    '.ras': 'image/x-cmu-raster',
    '.pnm': 'image/x-portable-anymap',
    '.pbm': 'image/x-portable-bitmap',
    '.pgm': 'image/x-portable-graymap',
    '.ppm': 'image/x-portable-pixmap',
    '.rgb': 'image/x-rgb',
    '.xbm': 'image/x-xbitmap',
    '.xpm': 'image/x-xpixmap',
    '.xwd': 'image/x-xwindowdump',
    '.eml': 'message/rfc822',
    '.mht': 'message/rfc822',
    '.mhtml': 'message/rfc822',
    '.nws': 'message/rfc822',
    '.css': 'text/css',
    '.csv': 'text/csv',
    '.html': 'text/html',
    '.htm': 'text/html',
    '.txt': 'text/plain',
    '.bat': 'application/x-msdownload',
    '.c': 'text/x-c',
    '.h': 'text/x-c',
    '.ksh': 'text/plain',
    '.pl': 'text/plain',
    '.rtx': 'text/richtext',
    '.tsv': 'text/tab-separated-values',
    '.py': 'text/x-python',
    '.etx': 'text/x-setext',
    '.sgm': 'text/sgml',
    '.sgml': 'text/sgml',
    '.vcf': 'text/x-vcard',
    '.xml': 'application/xml',
    '.mp4': 'video/mp4',
    '.mpeg': 'video/mpeg',
    '.m1v': 'video/mpeg',
    '.mpa': 'video/mpeg',
    '.mpe': 'video/mpeg',
    '.mpg': 'video/mpeg',
    '.mov': 'video/quicktime',
    '.qt': 'video/quicktime',
    '.webm': 'video/webm',
    '.avi': 'video/x-msvideo',
    '.movie': 'video/x-sgi-movie',
    '.ez': 'application/andrew-inset',
    '.aw': 'application/applixware',
    '.atom': 'application/atom+xml',
    '.atomcat': 'application/atomcat+xml',
    '.atomsvc': 'application/atomsvc+xml',
    '.ccxml': 'application/ccxml+xml',
    '.cdmia': 'application/cdmi-capability',
    '.cdmic': 'application/cdmi-container',
    '.cdmid': 'application/cdmi-domain',
    '.cdmio': 'application/cdmi-object',
    '.cdmiq': 'application/cdmi-queue',
    '.cu': 'application/cu-seeme',
    '.davmount': 'application/davmount+xml',
    '.dbk': 'application/docbook+xml',
    '.dssc': 'application/dssc+der',
    '.xdssc': 'application/dssc+xml',
    '.ecma': 'application/ecmascript',
    '.emma': 'application/emma+xml',
    '.epub': 'application/epub+zip',
    '.exi': 'application/exi',
    '.pfr': 'application/font-tdpfr',
    '.gml': 'application/gml+xml',
    '.gpx': 'application/gpx+xml',
    '.gxf': 'application/gxf',
    '.stk': 'application/hyperstudio',
    '.ink': 'application/inkml+xml',
    '.inkml': 'application/inkml+xml',
    '.ipfix': 'application/ipfix',
    '.jar': 'application/java-archive',
    '.ser': 'application/java-serialized-object',
    '.class': 'application/java-vm',
    '.jsonml': 'application/jsonml+json',
    '.lostxml': 'application/lost+xml',
    '.hqx': 'application/mac-binhex40',
    '.cpt': 'application/mac-compactpro',
    '.mads': 'application/mads+xml',
    '.mrc': 'application/marc',
    '.mrcx': 'application/marcxml+xml',
    '.ma': 'application/mathematica',
    '.nb': 'application/mathematica',
    '.mb': 'application/mathematica',
    '.mathml': 'application/mathml+xml',
    '.mbox': 'application/mbox',
    '.mscml': 'application/mediaservercontrol+xml',
    '.metalink': 'application/metalink+xml',
    '.meta4': 'application/metalink4+xml',
    '.mets': 'application/mets+xml',
    '.mods': 'application/mods+xml',
    '.m21': 'application/mp21',
    '.mp21': 'application/mp21',
    '.mp4s': 'application/mp4',
    '.mxf': 'application/mxf',
    '.dms': 'application/octet-stream',
    '.lrf': 'application/octet-stream',
    '.mar': 'application/octet-stream',
    '.dist': 'application/octet-stream',
    '.distz': 'application/octet-stream',
    '.pkg': 'application/octet-stream',
    '.bpk': 'application/octet-stream',
    '.dump': 'application/octet-stream',
    '.elc': 'application/octet-stream',
    '.deploy': 'application/octet-stream',
    '.mobipocket-ebook': 'application/octet-stream',
    '.opf': 'application/oebps-package+xml',
    '.ogx': 'application/ogg',
    '.omdoc': 'application/omdoc+xml',
    '.onetoc': 'application/onenote',
    '.onetoc2': 'application/onenote',
    '.onetmp': 'application/onenote',
    '.onepkg': 'application/onenote',
    '.oxps': 'application/oxps',
    '.xer': 'application/patch-ops-error+xml',
    '.pgp': 'application/pgp-encrypted',
    '.asc': 'application/pgp-signature',
    '.sig': 'application/pgp-signature',
    '.prf': 'application/pics-rules',
    '.p10': 'application/pkcs10',
    '.p7m': 'application/pkcs7-mime',
    '.p7s': 'application/pkcs7-signature',
    '.p8': 'application/pkcs8',
    '.ac': 'application/pkix-attr-cert',
    '.cer': 'application/pkix-cert',
    '.crl': 'application/pkix-crl',
    '.pkipath': 'application/pkix-pkipath',
    '.pki': 'application/pkixcmp',
    '.pls': 'application/pls+xml',
    '.cww': 'application/prs.cww',
    '.pskcxml': 'application/pskc+xml',
    '.rif': 'application/reginfo+xml',
    '.rnc': 'application/relax-ng-compact-syntax',
    '.rl': 'application/resource-lists+xml',
    '.rld': 'application/resource-lists-diff+xml',
    '.rs': 'application/rls-services+xml',
    '.gbr': 'application/rpki-ghostbusters',
    '.mft': 'application/rpki-manifest',
    '.roa': 'application/rpki-roa',
    '.rsd': 'application/rsd+xml',
    '.rss': 'application/rss+xml',
    '.rtf': 'application/rtf',
    '.sbml': 'application/sbml+xml',
    '.scq': 'application/scvp-cv-request',
    '.scs': 'application/scvp-cv-response',
    '.spq': 'application/scvp-vp-request',
    '.spp': 'application/scvp-vp-response',
    '.sdp': 'application/sdp',
    '.setpay': 'application/set-payment-initiation',
    '.setreg': 'application/set-registration-initiation',
    '.shf': 'application/shf+xml',
    '.smi': 'application/smil+xml',
    '.smil': 'application/smil+xml',
    '.rq': 'application/sparql-query',
    '.srx': 'application/sparql-results+xml',
    '.gram': 'application/srgs',
    '.grxml': 'application/srgs+xml',
    '.sru': 'application/sru+xml',
    '.ssdl': 'application/ssdl+xml',
    '.ssml': 'application/ssml+xml',
    '.tei': 'application/tei+xml',
    '.teicorpus': 'application/tei+xml',
    '.tfi': 'application/thraud+xml',
    '.tsd': 'application/timestamped-data',
    '.plb': 'application/vnd.3gpp.pic-bw-large',
    '.psb': 'application/vnd.3gpp.pic-bw-small',
    '.pvb': 'application/vnd.3gpp.pic-bw-var',
    '.tcap': 'application/vnd.3gpp2.tcap',
    '.pwn': 'application/vnd.3m.post-it-notes',
    '.aso': 'application/vnd.accpac.simply.aso',
    '.imp': 'application/vnd.accpac.simply.imp',
    '.acu': 'application/vnd.acucobol',
    '.atc': 'application/vnd.acucorp',
    '.acutc': 'application/vnd.acucorp',
    '.air': 'application/vnd.adobe.air-application-installer-package+zip',
    '.fcdt': 'application/vnd.adobe.formscentral.fcdt',
    '.fxp': 'application/vnd.adobe.fxp',
    '.fxpl': 'application/vnd.adobe.fxp',
    '.xdp': 'application/vnd.adobe.xdp+xml',
    '.xfdf': 'application/vnd.adobe.xfdf',
    '.ahead': 'application/vnd.ahead.space',
    '.azf': 'application/vnd.airzip.filesecure.azf',
    '.azs': 'application/vnd.airzip.filesecure.azs',
    '.azw': 'application/vnd.amazon.ebook',
    '.acc': 'application/vnd.americandynamics.acc',
    '.ami': 'application/vnd.amiga.ami',
    '.apk': 'application/vnd.android.package-archive',
    '.cii': 'application/vnd.anser-web-certificate-issue-initiation',
    '.fti': 'application/vnd.anser-web-funds-transfer-initiation',
    '.atx': 'application/vnd.antix.game-component',
    '.mpkg': 'application/vnd.apple.installer+xml',
    '.swi': 'application/vnd.aristanetworks.swi',
    '.iota': 'application/vnd.astraea-software.iota',
    '.aep': 'application/vnd.audiograph',
    '.mpm': 'application/vnd.blueice.multipass',
    '.bmi': 'application/vnd.bmi',
    '.rep': 'application/vnd.businessobjects',
    '.cdxml': 'application/vnd.chemdraw+xml',
    '.mmd': 'application/vnd.chipnuts.karaoke-mmd',
    '.cdy': 'application/vnd.cinderella',
    '.cla': 'application/vnd.claymore',
    '.rp9': 'application/vnd.cloanto.rp9',
    '.c4g': 'application/vnd.clonk.c4group',
    '.c4d': 'application/vnd.clonk.c4group',
    '.c4f': 'application/vnd.clonk.c4group',
    '.c4p': 'application/vnd.clonk.c4group',
    '.c4u': 'application/vnd.clonk.c4group',
    '.c11amc': 'application/vnd.cluetrust.cartomobile-config',
    '.c11amz': 'application/vnd.cluetrust.cartomobile-config-pkg',
    '.csp': 'application/vnd.commonspace',
    '.cdbcmsg': 'application/vnd.contact.cmsg',
    '.cmc': 'application/vnd.cosmocaller',
    '.clkx': 'application/vnd.crick.clicker',
    '.clkk': 'application/vnd.crick.clicker.keyboard',
    '.clkp': 'application/vnd.crick.clicker.palette',
    '.clkt': 'application/vnd.crick.clicker.template',
    '.clkw': 'application/vnd.crick.clicker.wordbank',
    '.wbs': 'application/vnd.criticaltools.wbs+xml',
    '.pml': 'application/vnd.ctc-posml',
    '.ppd': 'application/vnd.cups-ppd',
    '.car': 'application/vnd.curl.car',
    '.pcurl': 'application/vnd.curl.pcurl',
    '.dart': 'application/vnd.dart',
    '.rdz': 'application/vnd.data-vision.rdz',
    '.uvf': 'application/vnd.dece.data',
    '.uvvf': 'application/vnd.dece.data',
    '.uvd': 'application/vnd.dece.data',
    '.uvvd': 'application/vnd.dece.data',
    '.uvt': 'application/vnd.dece.ttml+xml',
    '.uvvt': 'application/vnd.dece.ttml+xml',
    '.uvx': 'application/vnd.dece.unspecified',
    '.uvvx': 'application/vnd.dece.unspecified',
    '.uvz': 'application/vnd.dece.zip',
    '.uvvz': 'application/vnd.dece.zip',
    '.fe_launch': 'application/vnd.denovo.fcselayout-link',
    '.dna': 'application/vnd.dna',
    '.mlp': 'application/vnd.dolby.mlp',
    '.dpg': 'application/vnd.dpgraph',
    '.dfac': 'application/vnd.dreamfactory',
    '.kpxx': 'application/vnd.ds-keypoint',
    '.ait': 'application/vnd.dvb.ait',
    '.svc': 'application/vnd.dvb.service',
    '.geo': 'application/vnd.dynageo',
    '.mag': 'application/vnd.ecowin.chart',
    '.nml': 'application/vnd.enliven',
    '.esf': 'application/vnd.epson.esf',
    '.msf': 'application/vnd.epson.msf',
    '.qam': 'application/vnd.epson.quickanime',
    '.slt': 'application/vnd.epson.salt',
    '.ssf': 'application/vnd.epson.ssf',
    '.es3': 'application/vnd.eszigno3+xml',
    '.et3': 'application/vnd.eszigno3+xml',
    '.ez2': 'application/vnd.ezpix-album',
    '.ez3': 'application/vnd.ezpix-package',
    '.fdf': 'application/vnd.fdf',
    '.mseed': 'application/vnd.fdsn.mseed',
    '.seed': 'application/vnd.fdsn.seed',
    '.dataless': 'application/vnd.fdsn.seed',
    '.gph': 'application/vnd.flographit',
    '.ftc': 'application/vnd.fluxtime.clip',
    '.fm': 'application/vnd.framemaker',
    '.frame': 'application/vnd.framemaker',
    '.maker': 'application/vnd.framemaker',
    '.book': 'application/vnd.framemaker',
    '.fnc': 'application/vnd.frogans.fnc',
    '.ltf': 'application/vnd.frogans.ltf',
    '.fsc': 'application/vnd.fsc.weblaunch',
    '.oas': 'application/vnd.fujitsu.oasys',
    '.oa2': 'application/vnd.fujitsu.oasys2',
    '.oa3': 'application/vnd.fujitsu.oasys3',
    '.fg5': 'application/vnd.fujitsu.oasysgp',
    '.bh2': 'application/vnd.fujitsu.oasysprs',
    '.ddd': 'application/vnd.fujixerox.ddd',
    '.xdw': 'application/vnd.fujixerox.docuworks',
    '.xbd': 'application/vnd.fujixerox.docuworks.binder',
    '.fzs': 'application/vnd.fuzzysheet',
    '.txd': 'application/vnd.genomatix.tuxedo',
    '.ggb': 'application/vnd.geogebra.file',
    '.ggt': 'application/vnd.geogebra.tool',
    '.gex': 'application/vnd.geometry-explorer',
    '.gre': 'application/vnd.geometry-explorer',
    '.gxt': 'application/vnd.geonext',
    '.g2w': 'application/vnd.geoplan',
    '.g3w': 'application/vnd.geospace',
    '.gmx': 'application/vnd.gmx',
    '.kml': 'application/vnd.google-earth.kml+xml',
    '.kmz': 'application/vnd.google-earth.kmz',
    '.gqf': 'application/vnd.grafeq',
    '.gqs': 'application/vnd.grafeq',
    '.gac': 'application/vnd.groove-account',
    '.ghf': 'application/vnd.groove-help',
    '.gim': 'application/vnd.groove-identity-message',
    '.grv': 'application/vnd.groove-injector',
    '.gtm': 'application/vnd.groove-tool-message',
    '.tpl': 'application/vnd.groove-tool-template',
    '.vcg': 'application/vnd.groove-vcard',
    '.hal': 'application/vnd.hal+xml',
    '.zmm': 'application/vnd.handheld-entertainment+xml',
    '.hbci': 'application/vnd.hbci',
    '.les': 'application/vnd.hhe.lesson-player',
    '.hpgl': 'application/vnd.hp-hpgl',
    '.hpid': 'application/vnd.hp-hpid',
    '.hps': 'application/vnd.hp-hps',
    '.jlt': 'application/vnd.hp-jlyt',
    '.pcl': 'application/vnd.hp-pcl',
    '.pclxl': 'application/vnd.hp-pclxl',
    '.sfd-hdstx': 'application/vnd.hydrostatix.sof-data',
    '.mpy': 'application/vnd.ibm.minipay',
    '.afp': 'application/vnd.ibm.modcap',
    '.listafp': 'application/vnd.ibm.modcap',
    '.list3820': 'application/vnd.ibm.modcap',
    '.irm': 'application/vnd.ibm.rights-management',
    '.sc': 'application/vnd.ibm.secure-container',
    '.icc': 'application/vnd.iccprofile',
    '.icm': 'application/vnd.iccprofile',
    '.igl': 'application/vnd.igloader',
    '.ivp': 'application/vnd.immervision-ivp',
    '.ivu': 'application/vnd.immervision-ivu',
    '.igm': 'application/vnd.insors.igm',
    '.xpw': 'application/vnd.intercon.formnet',
    '.xpx': 'application/vnd.intercon.formnet',
    '.i2g': 'application/vnd.intergeo',
    '.qbo': 'application/vnd.intu.qbo',
    '.qfx': 'application/vnd.intu.qfx',
    '.rcprofile': 'application/vnd.ipunplugged.rcprofile',
    '.irp': 'application/vnd.irepository.package+xml',
    '.xpr': 'application/vnd.is-xpr',
    '.fcs': 'application/vnd.isac.fcs',
    '.jam': 'application/vnd.jam',
    '.rms': 'application/vnd.jcp.javame.midlet-rms',
    '.jisp': 'application/vnd.jisp',
    '.joda': 'application/vnd.joost.joda-archive',
    '.ktz': 'application/vnd.kahootz',
    '.ktr': 'application/vnd.kahootz',
    '.karbon': 'application/vnd.kde.karbon',
    '.chrt': 'application/vnd.kde.kchart',
    '.kfo': 'application/vnd.kde.kformula',
    '.flw': 'application/vnd.kde.kivio',
    '.kon': 'application/vnd.kde.kontour',
    '.kpr': 'application/vnd.kde.kpresenter',
    '.kpt': 'application/vnd.kde.kpresenter',
    '.ksp': 'application/vnd.kde.kspread',
    '.kwd': 'application/vnd.kde.kword',
    '.kwt': 'application/vnd.kde.kword',
    '.htke': 'application/vnd.kenameaapp',
    '.kia': 'application/vnd.kidspiration',
    '.kne': 'application/vnd.kinar',
    '.knp': 'application/vnd.kinar',
    '.skp': 'application/vnd.koan',
    '.skd': 'application/vnd.koan',
    '.skt': 'application/vnd.koan',
    '.skm': 'application/vnd.koan',
    '.sse': 'application/vnd.kodak-descriptor',
    '.lasxml': 'application/vnd.las.las+xml',
    '.lbd': 'application/vnd.llamagraphics.life-balance.desktop',
    '.lbe': 'application/vnd.llamagraphics.life-balance.exchange+xml',
    '.123': 'application/vnd.lotus-1-2-3',
    '.apr': 'application/vnd.lotus-approach',
    '.pre': 'application/vnd.lotus-freelance',
    '.nsf': 'application/vnd.lotus-notes',
    '.org': 'application/vnd.lotus-organizer',
    '.scm': 'application/vnd.lotus-screencam',
    '.lwp': 'application/vnd.lotus-wordpro',
    '.portpkg': 'application/vnd.macports.portpkg',
    '.mcd': 'application/vnd.mcd',
    '.mc1': 'application/vnd.medcalcdata',
    '.cdkey': 'application/vnd.mediastation.cdkey',
    '.mwf': 'application/vnd.mfer',
    '.mfm': 'application/vnd.mfmp',
    '.flo': 'application/vnd.micrografx.flo',
    '.igx': 'application/vnd.micrografx.igx',
    '.daf': 'application/vnd.mobius.daf',
    '.dis': 'application/vnd.mobius.dis',
    '.mbk': 'application/vnd.mobius.mbk',
    '.mqy': 'application/vnd.mobius.mqy',
    '.msl': 'application/vnd.mobius.msl',
    '.plc': 'application/vnd.mobius.plc',
    '.txf': 'application/vnd.mobius.txf',
    '.mpn': 'application/vnd.mophun.application',
    '.mpc': 'application/vnd.mophun.certificate',
    '.xul': 'application/vnd.mozilla.xul+xml',
    '.cil': 'application/vnd.ms-artgalry',
    '.cab': 'application/vnd.ms-cab-compressed',
    '.xlm': 'application/vnd.ms-excel',
    '.xla': 'application/vnd.ms-excel',
    '.xlc': 'application/vnd.ms-excel',
    '.xlt': 'application/vnd.ms-excel',
    '.xlw': 'application/vnd.ms-excel',
    '.xlam': 'application/vnd.ms-excel.addin.macroenabled.12',
    '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
    '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',
    '.xltm': 'application/vnd.ms-excel.template.macroenabled.12',
    '.eot': 'application/vnd.ms-fontobject',
    '.chm': 'application/vnd.ms-htmlhelp',
    '.ims': 'application/vnd.ms-ims',
    '.lrm': 'application/vnd.ms-lrm',
    '.thmx': 'application/vnd.ms-officetheme',
    '.cat': 'application/vnd.ms-pki.seccat',
    '.stl': 'application/vnd.ms-pki.stl',
    '.ppam': 'application/vnd.ms-powerpoint.addin.macroenabled.12',
    '.pptm': 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
    '.sldm': 'application/vnd.ms-powerpoint.slide.macroenabled.12',
    '.ppsm': 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
    '.potm': 'application/vnd.ms-powerpoint.template.macroenabled.12',
    '.mpp': 'application/vnd.ms-project',
    '.mpt': 'application/vnd.ms-project',
    '.docm': 'application/vnd.ms-word.document.macroenabled.12',
    '.dotm': 'application/vnd.ms-word.template.macroenabled.12',
    '.wps': 'application/vnd.ms-works',
    '.wks': 'application/vnd.ms-works',
    '.wcm': 'application/vnd.ms-works',
    '.wdb': 'application/vnd.ms-works',
    '.wpl': 'application/vnd.ms-wpl',
    '.xps': 'application/vnd.ms-xpsdocument',
    '.mseq': 'application/vnd.mseq',
    '.mus': 'application/vnd.musician',
    '.msty': 'application/vnd.muvee.style',
    '.taglet': 'application/vnd.mynfc',
    '.nlu': 'application/vnd.neurolanguage.nlu',
    '.ntf': 'application/vnd.nitf',
    '.nitf': 'application/vnd.nitf',
    '.nnd': 'application/vnd.noblenet-directory',
    '.nns': 'application/vnd.noblenet-sealer',
    '.nnw': 'application/vnd.noblenet-web',
    '.ngdat': 'application/vnd.nokia.n-gage.data',
    '.n-gage': 'application/vnd.nokia.n-gage.symbian.install',
    '.rpst': 'application/vnd.nokia.radio-preset',
    '.rpss': 'application/vnd.nokia.radio-presets',
    '.edm': 'application/vnd.novadigm.edm',
    '.edx': 'application/vnd.novadigm.edx',
    '.ext': 'application/vnd.novadigm.ext',
    '.odc': 'application/vnd.oasis.opendocument.chart',
    '.otc': 'application/vnd.oasis.opendocument.chart-template',
    '.odb': 'application/vnd.oasis.opendocument.database',
    '.odf': 'application/vnd.oasis.opendocument.formula',
    '.odft': 'application/vnd.oasis.opendocument.formula-template',
    '.odg': 'application/vnd.oasis.opendocument.graphics',
    '.otg': 'application/vnd.oasis.opendocument.graphics-template',
    '.odi': 'application/vnd.oasis.opendocument.image',
    '.oti': 'application/vnd.oasis.opendocument.image-template',
    '.odp': 'application/vnd.oasis.opendocument.presentation',
    '.otp': 'application/vnd.oasis.opendocument.presentation-template',
    '.ods': 'application/vnd.oasis.opendocument.spreadsheet',
    '.ots': 'application/vnd.oasis.opendocument.spreadsheet-template',
    '.odt': 'application/vnd.oasis.opendocument.text',
    '.odm': 'application/vnd.oasis.opendocument.text-master',
    '.ott': 'application/vnd.oasis.opendocument.text-template',
    '.oth': 'application/vnd.oasis.opendocument.text-web',
    '.xo': 'application/vnd.olpc-sugar',
    '.dd2': 'application/vnd.oma.dd2+xml',
    '.oxt': 'application/vnd.openofficeorg.extension',
    '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
    '.sldx': 'application/vnd.openxmlformats-officedocument.presentationml.slide',
    '.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
    '.potx': 'application/vnd.openxmlformats-officedocument.presentationml.template',
    '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
    '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
    '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    '.dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
    '.mgp': 'application/vnd.osgeo.mapguide.package',
    '.dp': 'application/vnd.osgi.dp',
    '.esa': 'application/vnd.osgi.subsystem',
    '.pdb': 'application/vnd.palm',
    '.pqa': 'application/vnd.palm',
    '.oprc': 'application/vnd.palm',
    '.paw': 'application/vnd.pawaafile',
    '.str': 'application/vnd.pg.format',
    '.ei6': 'application/vnd.pg.osasli',
    '.efif': 'application/vnd.picsel',
    '.wg': 'application/vnd.pmi.widget',
    '.plf': 'application/vnd.pocketlearn',
    '.pbd': 'application/vnd.powerbuilder6',
    '.box': 'application/vnd.previewsystems.box',
    '.mgz': 'application/vnd.proteus.magazine',
    '.qps': 'application/vnd.publishare-delta-tree',
    '.ptid': 'application/vnd.pvi.ptid1',
    '.qxd': 'application/vnd.quark.quarkxpress',
    '.qxt': 'application/vnd.quark.quarkxpress',
    '.qwd': 'application/vnd.quark.quarkxpress',
    '.qwt': 'application/vnd.quark.quarkxpress',
    '.qxl': 'application/vnd.quark.quarkxpress',
    '.qxb': 'application/vnd.quark.quarkxpress',
    '.bed': 'application/vnd.realvnc.bed',
    '.mxl': 'application/vnd.recordare.musicxml',
    '.musicxml': 'application/vnd.recordare.musicxml+xml',
    '.cryptonote': 'application/vnd.rig.cryptonote',
    '.cod': 'application/vnd.rim.cod',
    '.rm': 'application/vnd.rn-realmedia',
    '.rmvb': 'application/vnd.rn-realmedia-vbr',
    '.link66': 'application/vnd.route66.link66+xml',
    '.st': 'application/vnd.sailingtracker.track',
    '.see': 'application/vnd.seemail',
    '.sema': 'application/vnd.sema',
    '.semd': 'application/vnd.semd',
    '.semf': 'application/vnd.semf',
    '.ifm': 'application/vnd.shana.informed.formdata',
    '.itp': 'application/vnd.shana.informed.formtemplate',
    '.iif': 'application/vnd.shana.informed.interchange',
    '.ipk': 'application/vnd.shana.informed.package',
    '.twd': 'application/vnd.simtech-mindmapper',
    '.twds': 'application/vnd.simtech-mindmapper',
    '.mmf': 'application/vnd.smaf',
    '.teacher': 'application/vnd.smart.teacher',
    '.sdkm': 'application/vnd.solent.sdkm+xml',
    '.sdkd': 'application/vnd.solent.sdkm+xml',
    '.dxp': 'application/vnd.spotfire.dxp',
    '.sfs': 'application/vnd.spotfire.sfs',
    '.sdc': 'application/vnd.stardivision.calc',
    '.sda': 'application/vnd.stardivision.draw',
    '.sdd': 'application/vnd.stardivision.impress',
    '.smf': 'application/vnd.stardivision.math',
    '.sdw': 'application/vnd.stardivision.writer',
    '.vor': 'application/vnd.stardivision.writer',
    '.sgl': 'application/vnd.stardivision.writer-global',
    '.smzip': 'application/vnd.stepmania.package',
    '.sm': 'application/vnd.stepmania.stepchart',
    '.sxc': 'application/vnd.sun.xml.calc',
    '.stc': 'application/vnd.sun.xml.calc.template',
    '.sxd': 'application/vnd.sun.xml.draw',
    '.std': 'application/vnd.sun.xml.draw.template',
    '.sxi': 'application/vnd.sun.xml.impress',
    '.sti': 'application/vnd.sun.xml.impress.template',
    '.sxm': 'application/vnd.sun.xml.math',
    '.sxw': 'application/vnd.sun.xml.writer',
    '.sxg': 'application/vnd.sun.xml.writer.global',
    '.stw': 'application/vnd.sun.xml.writer.template',
    '.sus': 'application/vnd.sus-calendar',
    '.susp': 'application/vnd.sus-calendar',
    '.svd': 'application/vnd.svd',
    '.sis': 'application/vnd.symbian.install',
    '.sisx': 'application/vnd.symbian.install',
    '.xsm': 'application/vnd.syncml+xml',
    '.bdm': 'application/vnd.syncml.dm+wbxml',
    '.xdm': 'application/vnd.syncml.dm+xml',
    '.tao': 'application/vnd.tao.intent-module-archive',
    '.pcap': 'application/vnd.tcpdump.pcap',
    '.cap': 'application/vnd.tcpdump.pcap',
    '.dmp': 'application/vnd.tcpdump.pcap',
    '.tmo': 'application/vnd.tmobile-livetv',
    '.tpt': 'application/vnd.trid.tpt',
    '.mxs': 'application/vnd.triscape.mxs',
    '.tra': 'application/vnd.trueapp',
    '.ufd': 'application/vnd.ufdl',
    '.ufdl': 'application/vnd.ufdl',
    '.utz': 'application/vnd.uiq.theme',
    '.umj': 'application/vnd.umajin',
    '.unityweb': 'application/vnd.unity',
    '.uoml': 'application/vnd.uoml+xml',
    '.vcx': 'application/vnd.vcx',
    '.vsd': 'application/vnd.visio',
    '.vst': 'application/vnd.visio',
    '.vss': 'application/vnd.visio',
    '.vsw': 'application/vnd.visio',
    '.vis': 'application/vnd.visionary',
    '.vsf': 'application/vnd.vsf',
    '.wbxml': 'application/vnd.wap.wbxml',
    '.wmlc': 'application/vnd.wap.wmlc',
    '.wmlsc': 'application/vnd.wap.wmlscriptc',
    '.wtb': 'application/vnd.webturbo',
    '.nbp': 'application/vnd.wolfram.player',
    '.wpd': 'application/vnd.wordperfect',
    '.wqd': 'application/vnd.wqd',
    '.stf': 'application/vnd.wt.stf',
    '.xar': 'application/vnd.xara',
    '.xfdl': 'application/vnd.xfdl',
    '.hvd': 'application/vnd.yamaha.hv-dic',
    '.hvs': 'application/vnd.yamaha.hv-script',
    '.hvp': 'application/vnd.yamaha.hv-voice',
    '.osf': 'application/vnd.yamaha.openscoreformat',
    '.osfpvg': 'application/vnd.yamaha.openscoreformat.osfpvg+xml',
    '.saf': 'application/vnd.yamaha.smaf-audio',
    '.spf': 'application/vnd.yamaha.smaf-phrase',
    '.cmp': 'application/vnd.yellowriver-custom-menu',
    '.zir': 'application/vnd.zul',
    '.zirz': 'application/vnd.zul',
    '.zaz': 'application/vnd.zzazz.deck+xml',
    '.vxml': 'application/voicexml+xml',
    '.wgt': 'application/widget',
    '.hlp': 'application/winhlp',
    '.wspolicy': 'application/wspolicy+xml',
    '.7z': 'application/x-7z-compressed',
    '.abw': 'application/x-abiword',
    '.ace': 'application/x-ace-compressed',
    '.dmg': 'application/x-apple-diskimage',
    '.aab': 'application/x-authorware-bin',
    '.x32': 'application/x-authorware-bin',
    '.u32': 'application/x-authorware-bin',
    '.vox': 'application/x-authorware-bin',
    '.aam': 'application/x-authorware-map',
    '.aas': 'application/x-authorware-seg',
    '.torrent': 'application/x-bittorrent',
    '.blb': 'application/x-blorb',
    '.blorb': 'application/x-blorb',
    '.bz': 'application/x-bzip',
    '.bz2': 'application/x-bzip2',
    '.boz': 'application/x-bzip2',
    '.cbr': 'application/x-cbr',
    '.cba': 'application/x-cbr',
    '.cbt': 'application/x-cbr',
    '.cbz': 'application/x-cbr',
    '.cb7': 'application/x-cbr',
    '.vcd': 'application/x-cdlink',
    '.cfs': 'application/x-cfs-compressed',
    '.chat': 'application/x-chat',
    '.pgn': 'application/x-chess-pgn',
    '.nsc': 'application/x-conference',
    '.deb': 'application/x-debian-package',
    '.udeb': 'application/x-debian-package',
    '.dgc': 'application/x-dgc-compressed',
    '.dir': 'application/x-director',
    '.dcr': 'application/x-director',
    '.dxr': 'application/x-director',
    '.cst': 'application/x-director',
    '.cct': 'application/x-director',
    '.cxt': 'application/x-director',
    '.w3d': 'application/x-director',
    '.fgd': 'application/x-director',
    '.swa': 'application/x-director',
    '.wad': 'application/x-doom',
    '.ncx': 'application/x-dtbncx+xml',
    '.dtb': 'application/x-dtbook+xml',
    '.res': 'application/x-dtbresource+xml',
    '.evy': 'application/x-envoy',
    '.eva': 'application/x-eva',
    '.bdf': 'application/x-font-bdf',
    '.gsf': 'application/x-font-ghostscript',
    '.psf': 'application/x-font-linux-psf',
    '.pcf': 'application/x-font-pcf',
    '.snf': 'application/x-font-snf',
    '.pfa': 'application/x-font-type1',
    '.pfb': 'application/x-font-type1',
    '.pfm': 'application/x-font-type1',
    '.afm': 'application/x-font-type1',
    '.arc': 'application/x-freearc',
    '.spl': 'application/x-futuresplash',
    '.gca': 'application/x-gca-compressed',
    '.ulx': 'application/x-glulx',
    '.gnumeric': 'application/x-gnumeric',
    '.gramps': 'application/x-gramps-xml',
    '.install': 'application/x-install-instructions',
    '.iso': 'application/x-iso9660-image',
    '.jnlp': 'application/x-java-jnlp-file',
    '.lzh': 'application/x-lzh-compressed',
    '.lha': 'application/x-lzh-compressed',
    '.mie': 'application/x-mie',
    '.prc': 'application/x-mobipocket-ebook',
    '.mobi': 'application/x-mobipocket-ebook',
    '.application': 'application/x-ms-application',
    '.lnk': 'application/x-ms-shortcut',
    '.wmd': 'application/x-ms-wmd',
    '.wmz': 'application/x-msmetafile',
    '.xbap': 'application/x-ms-xbap',
    '.mdb': 'application/x-msaccess',
    '.obd': 'application/x-msbinder',
    '.crd': 'application/x-mscardfile',
    '.clp': 'application/x-msclip',
    '.com': 'application/x-msdownload',
    '.msi': 'application/x-msdownload',
    '.mvb': 'application/x-msmediaview',
    '.m13': 'application/x-msmediaview',
    '.m14': 'application/x-msmediaview',
    '.wmf': 'application/x-msmetafile',
    '.emf': 'application/x-msmetafile',
    '.emz': 'application/x-msmetafile',
    '.mny': 'application/x-msmoney',
    '.pub': 'application/x-mspublisher',
    '.scd': 'application/x-msschedule',
    '.trm': 'application/x-msterminal',
    '.wri': 'application/x-mswrite',
    '.nzb': 'application/x-nzb',
    '.p7b': 'application/x-pkcs7-certificates',
    '.spc': 'application/x-pkcs7-certificates',
    '.p7r': 'application/x-pkcs7-certreqresp',
    '.rar': 'application/x-rar-compressed',
    '.ris': 'application/x-research-info-systems',
    '.xap': 'application/x-silverlight-app',
    '.sql': 'application/x-sql',
    '.sit': 'application/x-stuffit',
    '.sitx': 'application/x-stuffitx',
    '.srt': 'application/x-subrip',
    '.t3': 'application/x-t3vm-image',
    '.gam': 'application/x-tads',
    '.tfm': 'application/x-tex-tfm',
    '.der': 'application/x-x509-ca-cert',
    '.crt': 'application/x-x509-ca-cert',
    '.fig': 'application/x-xfig',
    '.xlf': 'application/x-xliff+xml',
    '.xpi': 'application/x-xpinstall',
    '.xz': 'application/x-xz',
    '.z1': 'application/x-zmachine',
    '.z2': 'application/x-zmachine',
    '.z3': 'application/x-zmachine',
    '.z4': 'application/x-zmachine',
    '.z5': 'application/x-zmachine',
    '.z6': 'application/x-zmachine',
    '.z7': 'application/x-zmachine',
    '.z8': 'application/x-zmachine',
    '.xaml': 'application/xaml+xml',
    '.xdf': 'application/xcap-diff+xml',
    '.xenc': 'application/xenc+xml',
    '.xhtml': 'application/xhtml+xml',
    '.xht': 'application/xhtml+xml',
    '.dtd': 'application/xml-dtd',
    '.xop': 'application/xop+xml',
    '.xpl': 'application/xproc+xml',
    '.xslt': 'application/xslt+xml',
    '.xspf': 'application/xspf+xml',
    '.mxml': 'application/xv+xml',
    '.xhvml': 'application/xv+xml',
    '.xvml': 'application/xv+xml',
    '.xvm': 'application/xv+xml',
    '.yang': 'application/yang',
    '.yin': 'application/yin+xml',
    '.adp': 'audio/adpcm',
    '.mid': 'audio/midi',
    '.midi': 'audio/midi',
    '.kar': 'audio/midi',
    '.rmi': 'audio/midi',
    '.m4a': 'audio/mp4a-latm',
    '.mp4a': 'audio/mp4',
    '.m4p': 'audio/mp4a-latm',
    '.mpga': 'audio/mpeg',
    '.mp2a': 'audio/mpeg',
    '.m2a': 'audio/mpeg',
    '.m3a': 'audio/mpeg',
    '.oga': 'audio/ogg',
    '.ogg': 'audio/ogg',
    '.spx': 'audio/ogg',
    '.s3m': 'audio/s3m',
    '.sil': 'audio/silk',
    '.uva': 'audio/vnd.dece.audio',
    '.uvva': 'audio/vnd.dece.audio',
    '.eol': 'audio/vnd.digital-winds',
    '.dra': 'audio/vnd.dra',
    '.dts': 'audio/vnd.dts',
    '.dtshd': 'audio/vnd.dts.hd',
    '.lvp': 'audio/vnd.lucent.voice',
    '.pya': 'audio/vnd.ms-playready.media.pya',
    '.ecelp4800': 'audio/vnd.nuera.ecelp4800',
    '.ecelp7470': 'audio/vnd.nuera.ecelp7470',
    '.ecelp9600': 'audio/vnd.nuera.ecelp9600',
    '.rip': 'audio/vnd.rip',
    '.weba': 'audio/webm',
    '.aac': 'audio/x-aac',
    '.caf': 'audio/x-caf',
    '.flac': 'audio/x-flac',
    '.mka': 'audio/x-matroska',
    '.wax': 'audio/x-ms-wax',
    '.wma': 'audio/x-ms-wma',
    '.rmp': 'audio/x-pn-realaudio-plugin',
    '.xm': 'audio/xm',
    '.cdx': 'chemical/x-cdx',
    '.cif': 'chemical/x-cif',
    '.cmdf': 'chemical/x-cmdf',
    '.cml': 'chemical/x-cml',
    '.csml': 'chemical/x-csml',
    '.xyz': 'chemical/x-xyz',
    '.ttc': 'font/collection',
    '.otf': 'font/otf',
    '.ttf': 'font/ttf',
    '.woff': 'font/woff',
    '.woff2': 'font/woff2',
    '.cgm': 'image/cgm',
    '.g3': 'image/g3fax',
    '.jp2': 'image/jp2',
    '.ktx': 'image/ktx',
    '.pict': 'image/pict',
    '.pic': 'image/x-pict',
    '.pct': 'image/x-pict',
    '.btif': 'image/prs.btif',
    '.sgi': 'image/sgi',
    '.svgz': 'image/svg+xml',
    '.psd': 'image/vnd.adobe.photoshop',
    '.uvi': 'image/vnd.dece.graphic',
    '.uvvi': 'image/vnd.dece.graphic',
    '.uvg': 'image/vnd.dece.graphic',
    '.uvvg': 'image/vnd.dece.graphic',
    '.djvu': 'image/vnd.djvu',
    '.djv': 'image/vnd.djvu',
    '.sub': 'text/vnd.dvb.subtitle',
    '.dwg': 'image/vnd.dwg',
    '.dxf': 'image/vnd.dxf',
    '.fbs': 'image/vnd.fastbidsheet',
    '.fpx': 'image/vnd.fpx',
    '.fst': 'image/vnd.fst',
    '.mmr': 'image/vnd.fujixerox.edmics-mmr',
    '.rlc': 'image/vnd.fujixerox.edmics-rlc',
    '.mdi': 'image/vnd.ms-modi',
    '.wdp': 'image/vnd.ms-photo',
    '.npx': 'image/vnd.net-fpx',
    '.wbmp': 'image/vnd.wap.wbmp',
    '.xif': 'image/vnd.xiff',
    '.webp': 'image/webp',
    '.3ds': 'image/x-3ds',
    '.cmx': 'image/x-cmx',
    '.fh': 'image/x-freehand',
    '.fhc': 'image/x-freehand',
    '.fh4': 'image/x-freehand',
    '.fh5': 'image/x-freehand',
    '.fh7': 'image/x-freehand',
    '.pntg': 'image/x-macpaint',
    '.pnt': 'image/x-macpaint',
    '.mac': 'image/x-macpaint',
    '.sid': 'image/x-mrsid-image',
    '.pcx': 'image/x-pcx',
    '.qtif': 'image/x-quicktime',
    '.qti': 'image/x-quicktime',
    '.tga': 'image/x-tga',
    '.mime': 'message/rfc822',
    '.igs': 'model/iges',
    '.iges': 'model/iges',
    '.msh': 'model/mesh',
    '.mesh': 'model/mesh',
    '.silo': 'model/mesh',
    '.dae': 'model/vnd.collada+xml',
    '.dwf': 'model/vnd.dwf',
    '.gdl': 'model/vnd.gdl',
    '.gtw': 'model/vnd.gtw',
    '.mts': 'model/vnd.mts',
    '.vtu': 'model/vnd.vtu',
    '.wrl': 'model/vrml',
    '.vrml': 'model/vrml',
    '.x3db': 'model/x3d+binary',
    '.x3dbz': 'model/x3d+binary',
    '.x3dv': 'model/x3d+vrml',
    '.x3dvz': 'model/x3d+vrml',
    '.x3d': 'model/x3d+xml',
    '.x3dz': 'model/x3d+xml',
    '.manifest': 'text/cache-manifest',
    '.appcache': 'text/cache-manifest',
    '.ics': 'text/calendar',
    '.ifb': 'text/calendar',
    '.n3': 'text/n3',
    '.text': 'text/plain',
    '.conf': 'text/plain',
    '.def': 'text/plain',
    '.list': 'text/plain',
    '.log': 'text/plain',
    '.in': 'text/plain',
    '.dsc': 'text/prs.lines.tag',
    '.ttl': 'text/turtle',
    '.uri': 'text/uri-list',
    '.uris': 'text/uri-list',
    '.urls': 'text/uri-list',
    '.vcard': 'text/vcard',
    '.curl': 'text/vnd.curl',
    '.dcurl': 'text/vnd.curl.dcurl',
    '.mcurl': 'text/vnd.curl.mcurl',
    '.scurl': 'text/vnd.curl.scurl',
    '.fly': 'text/vnd.fly',
    '.flx': 'text/vnd.fmi.flexstor',
    '.gv': 'text/vnd.graphviz',
    '.3dml': 'text/vnd.in3d.3dml',
    '.spot': 'text/vnd.in3d.spot',
    '.jad': 'text/vnd.sun.j2me.app-descriptor',
    '.wml': 'text/vnd.wap.wml',
    '.wmls': 'text/vnd.wap.wmlscript',
    '.s': 'text/x-asm',
    '.asm': 'text/x-asm',
    '.cc': 'text/x-c',
    '.cxx': 'text/x-c',
    '.cpp': 'text/x-c',
    '.hh': 'text/x-c',
    '.dic': 'text/x-c',
    '.f': 'text/x-fortran',
    '.for': 'text/x-fortran',
    '.f77': 'text/x-fortran',
    '.f90': 'text/x-fortran',
    '.java': 'text/x-java-source',
    '.nfo': 'text/x-nfo',
    '.opml': 'text/x-opml',
    '.p': 'text/x-pascal',
    '.pas': 'text/x-pascal',
    '.sfv': 'text/x-sfv',
    '.uu': 'text/x-uuencode',
    '.vcs': 'text/x-vcalendar',
    '.3gp': 'video/3gpp',
    '.3g2': 'video/3gpp2',
    '.h261': 'video/h261',
    '.h263': 'video/h263',
    '.h264': 'video/h264',
    '.jpgv': 'video/jpeg',
    '.jpm': 'video/jpm',
    '.jpgm': 'video/jpm',
    '.mj2': 'video/mj2',
    '.mjp2': 'video/mj2',
    '.ts': 'video/mp2t',
    '.mp4v': 'video/mp4',
    '.mpg4': 'video/mp4',
    '.m4v': 'video/x-m4v',
    '.m2v': 'video/mpeg',
    '.ogv': 'video/ogg',
    '.uvh': 'video/vnd.dece.hd',
    '.uvvh': 'video/vnd.dece.hd',
    '.uvm': 'video/vnd.dece.mobile',
    '.uvvm': 'video/vnd.dece.mobile',
    '.uvp': 'video/vnd.dece.pd',
    '.uvvp': 'video/vnd.dece.pd',
    '.uvs': 'video/vnd.dece.sd',
    '.uvvs': 'video/vnd.dece.sd',
    '.uvv': 'video/vnd.dece.video',
    '.uvvv': 'video/vnd.dece.video',
    '.dvb': 'video/vnd.dvb.file',
    '.fvt': 'video/vnd.fvt',
    '.mxu': 'video/vnd.mpegurl',
    '.m4u': 'video/vnd.mpegurl',
    '.pyv': 'video/vnd.ms-playready.media.pyv',
    '.uvu': 'video/vnd.uvvu.mp4',
    '.uvvu': 'video/vnd.uvvu.mp4',
    '.viv': 'video/vnd.vivo',
    '.dv': 'video/x-dv',
    '.dif': 'video/x-dv',
    '.f4v': 'video/x-f4v',
    '.fli': 'video/x-fli',
    '.flv': 'video/x-flv',
    '.mkv': 'video/x-matroska',
    '.mk3d': 'video/x-matroska',
    '.mks': 'video/x-matroska',
    '.mng': 'video/x-mng',
    '.asf': 'video/x-ms-asf',
    '.asx': 'video/x-ms-asf',
    '.vob': 'video/x-ms-vob',
    '.wm': 'video/x-ms-wm',
    '.wmv': 'video/x-ms-wmv',
    '.wmx': 'video/x-ms-wmx',
    '.wvx': 'video/x-ms-wvx',
    '.smv': 'video/x-smv',
    '.ice': 'x-conference/x-cooltalk'
}


class CustomMimetypes:

    def __init__(self):
        self.mimetypes = mimetypes
        for key, value in TYPE_MAP.items():
            self.mimetypes.add_type(value, key)

    @staticmethod
    def get_extensions_for_type(general_type):
        results = []
        for key, value in TYPE_MAP.items():
            if value.split('/')[0] == general_type:
                results.append(value)
        return results
