text: # -*- coding: utf-8 -*-
  from __future__ import absolute_import
  from __future__ import unicode_literals
  
  
  EXTENSIONS = {
      'adoc': {'text', 'asciidoc'},
      'asciidoc': {'text', 'asciidoc'},
      'apinotes': {'text', 'apinotes'},
      'asar': {'binary', 'asar'},
      'bash': {'text', 'shell', 'bash'},
      'bat': {'text', 'batch'},
      'bmp': {'binary', 'image', 'bitmap'},
      'bz2': {'binary', 'bzip2'},
      'c': {'text', 'c'},
      'cc': {'text', 'c++'},
      'cu': {'text', 'cuda'},
      'cfg': {'text'},
      'cmake': {'text', 'cmake'},
      'cnf': {'text'},
      'coffee': {'text', 'coffee'},
      'conf': {'text'},
      'cpp': {'text', 'c++'},
      'crt': {'text', 'pem'},
      'cs': {'text', 'c#'},
      'cson': {'text', 'cson'},
      'css': {'text', 'css'},
      'csv': {'text', 'csv'},
      'cxx': {'text', 'c++'},
      'dart': {'text', 'dart'},
      'def': {'text', 'def'},
      'dtd': {'text', 'dtd'},
      'ear': {'binary', 'zip', 'jar'},
      'ejs': {'text', 'ejs'},
      'eot': {'binary', 'eot'},
      'eps': {'binary', 'eps'},
      'erb': {'text', 'erb'},
      'exe': {'binary'},
      'eyaml': {'text', 'yaml'},
      'feature': {'text', 'gherkin'},
      'fish': {'text', 'fish'},
      'gemspec': {'text', 'ruby'},
      'gif': {'binary', 'image', 'gif'},
      'go': {'text', 'go'},
      'gotmpl': {'text', 'gotmpl'},
      'gpx': {'text', 'gpx', 'xml'},
      'gradle': {'text', 'groovy'},
      'groovy': {'text', 'groovy'},
      'gyb': {'text', 'gyb'},
      'gyp': {'text', 'gyp', 'python'},
      'gypi': {'text', 'gyp', 'python'},
      'gz': {'binary', 'gzip'},
      'h': {'text', 'header', 'c', 'c++'},
      'hpp': {'text', 'header', 'c++'},
      'htm': {'text', 'html'},
      'html': {'text', 'html'},
      'hxx': {'text', 'header', 'c++'},
      'icns': {'binary', 'icns'},
      'ico': {'binary', 'icon'},
      'ics': {'text', 'icalendar'},
      'idl': {'text', 'idl'},
      'idr': {'text', 'idris'},
      'inc': {'text', 'inc'},
      'ini': {'text', 'ini'},
      'j2': {'text', 'jinja'},
      'jade': {'text', 'jade'},
      'jar': {'binary', 'zip', 'jar'},
      'java': {'text', 'java'},
      'jenkinsfile': {'text', 'groovy'},
      'jinja': {'text', 'jinja'},
      'jinja2': {'text', 'jinja'},
      'jpeg': {'binary', 'image', 'jpeg'},
      'jpg': {'binary', 'image', 'jpeg'},
      'js': {'text', 'javascript'},
      'json': {'text', 'json'},
      'jsonnet': {'text', 'jsonnet'},
      'jsx': {'text', 'jsx'},
      'key': {'text', 'pem'},
      'kml': {'text', 'kml', 'xml'},
      'kt': {'text', 'kotlin'},
      'less': {'text', 'less'},
      'lidr': {'text', 'idris'},
      'lua': {'text', 'lua'},
      'm': {'text', 'c', 'objective-c'},
      'manifest': {'text', 'manifest'},
      'map': {'text', 'map'},
      'markdown': {'text', 'markdown'},
      'md': {'text', 'markdown'},
      'mib': {'text', 'mib'},
      'mk': {'text', 'makefile'},
      'mm': {'text', 'c++', 'objective-c++'},
      'modulemap': {'text', 'modulemap'},
      'ngdoc': {'text', 'ngdoc'},
      'nim': {'text', 'nim'},
      'nims': {'text', 'nim'},
      'nimble': {'text', 'nimble'},
      'nix': {'text', 'nix'},
      'otf': {'binary', 'otf'},
      'p12': {'binary', 'p12'},
      'patch': {'text', 'diff'},
      'pdf': {'binary', 'pdf'},
      'pem': {'text', 'pem'},
      'php': {'text', 'php'},
      'php4': {'text', 'php'},
      'php5': {'text', 'php'},
      'phtml': {'text', 'php'},
      'pl': {'text', 'perl'},
      'plantuml': {'text', 'plantuml'},
      'pm': {'text', 'perl'},
      'png': {'binary', 'image', 'png'},
      'po': {'text', 'pofile'},
      'pp': {'text', 'puppet'},
      'properties': {'text', 'java-properties'},
      'proto': {'text', 'proto'},
      'puml': {'text', 'plantuml'},
      'purs': {'text', 'purescript'},
      'py': {'text', 'python'},
      'pyi': {'text', 'pyi'},
      'pyx': {'text', 'cython'},
      'pxd': {'text', 'cython'},
      'pxi': {'text', 'cython'},
      'r': {'text', 'r'},
      'rb': {'text', 'ruby'},
      'rs': {'text', 'rust'},
      'rst': {'text', 'rst'},
      's': {'text', 'asm'},
      'sbt': {'text', 'sbt', 'scala'},
      'sc': {'text', 'scala'},
      'scala': {'text', 'scala'},
      'scss': {'text', 'scss'},
      'scm': {'text', 'scheme'},
      'sh': {'text', 'shell'},
      'sls': {'text', 'salt'},
      'so': {'binary'},
      'sol': {'text', 'solidity'},
      'spec': {'text', 'spec'},
      'ss': {'text', 'scheme'},
      'styl': {'text', 'stylus'},
      'sql': {'text', 'sql'},
      'svg': {'text', 'image', 'svg'},
      'swf': {'binary', 'swf'},
      'swift': {'text', 'swift'},
      'swiftdeps': {'text', 'swiftdeps'},
      'tac': {'text', 'twisted', 'python'},
      'tar': {'binary', 'tar'},
      'tgz': {'binary', 'gzip'},
      'thrift': {'text', 'thrift'},
      'tiff': {'binary', 'image', 'tiff'},
      'toml': {'text', 'toml'},
      'tf': {'text', 'terraform'},
      'ts': {'text', 'ts'},
      'tsx': {'text', 'tsx'},
      'ttf': {'binary', 'ttf'},
      'txt': {'text', 'plain-text'},
      'vdx': {'text', 'vdx'},
      'vim': {'text', 'vim'},
      'vue': {'text', 'vue'},
      'war': {'binary', 'zip', 'jar'},
      'wav': {'binary', 'audio', 'wav'},
      'wkt': {'text', 'wkt'},
      'whl': {'binary', 'wheel', 'zip'},
      'woff': {'binary', 'woff'},
      'woff2': {'binary', 'woff2'},
      'wsgi': {'text', 'wsgi', 'python'},
      'xml': {'text', 'xml'},
      'xq': {'text', 'xquery'},
      'xql': {'text', 'xquery'},
      'xqm': {'text', 'xquery'},
      'xqu': {'text', 'xquery'},
      'xquery': {'text', 'xquery'},
      'xqy': {'text', 'xquery'},
      'xsd': {'text', 'xml', 'xsd'},
      'xsl': {'text', 'xml', 'xsl'},
      'yaml': {'text', 'yaml'},
      'yang': {'text', 'yang'},
      'yin': {'text', 'xml', 'yin'},
      'yml': {'text', 'yaml'},
      'zig': {'text', 'zig'},
      'zip': {'binary', 'zip'},
      'zsh': {'text', 'shell', 'zsh'},
  }
  EXTENSIONS_NEED_BINARY_CHECK = {
      'plist': {'plist'},
  }
  
  NAMES = {
      '.babelrc': EXTENSIONS['json'] | {'babelrc'},
      '.bashrc': EXTENSIONS['bash'],
      '.bash_aliases': EXTENSIONS['bash'],
      '.bash_profile': EXTENSIONS['bash'],
      '.bowerrc': EXTENSIONS['json'] | {'bowerrc'},
      '.coveragerc': EXTENSIONS['ini'] | {'coveragerc'},
      '.dockerignore': {'text', 'dockerignore'},
      '.editorconfig': {'text', 'editorconfig'},
      '.gitconfig': EXTENSIONS['ini'] | {'gitconfig'},
      '.hgrc': EXTENSIONS['ini'] | {'hgrc'},
      '.gitattributes': {'text', 'gitattributes'},
      '.gitignore': {'text', 'gitignore'},
      '.gitmodules': {'text', 'gitmodules'},
      '.jshintrc': EXTENSIONS['json'] | {'jshintrc'},
      '.mailmap': {'text', 'mailmap'},
      '.mention-bot': EXTENSIONS['json'] | {'mention-bot'},
      '.npmignore': {'text', 'npmignore'},
      '.pdbrc': EXTENSIONS['py'] | {'pdbrc'},
      '.pypirc': EXTENSIONS['ini'] | {'pypirc'},
      '.yamllint': EXTENSIONS['yaml'] | {'yamllint'},
      '.zshrc': EXTENSIONS['zsh'],
      'AUTHORS': EXTENSIONS['txt'],
      'BUILD.bazel': {'text', 'bazel'},
      'BUILD': {'text', 'bazel'},
      'CMakeLists.txt': EXTENSIONS['cmake'],
      'COPYING': EXTENSIONS['txt'],
      'Dockerfile': {'text', 'dockerfile'},
      'Gemfile': EXTENSIONS['rb'],
      'Jenkinsfile': {'text', 'groovy'},
      'LICENSE': EXTENSIONS['txt'],
      'MAINTAINERS': EXTENSIONS['txt'],
      'Makefile': EXTENSIONS['mk'],
      'NOTICE': EXTENSIONS['txt'],
      'PATENTS': EXTENSIONS['txt'],
      'Pipfile': EXTENSIONS['toml'],
      'Pipfile.lock': EXTENSIONS['json'],
      'README': EXTENSIONS['txt'],
      'Rakefile': EXTENSIONS['rb'],
      'setup.cfg': EXTENSIONS['ini'],
  }
  