_readprofile_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-m'|'--mapfile'|'-p'|'--profile')
			local IFS=$'\n'
			compopt -o filenames
			COMPREPLY=( $(compgen -f -- $cur) )
			return 0
			;;
		'-M'|'--multiplier')
			COMPREPLY=( $(compgen -W "multiplier" -- $cur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	OPTS="--mapfile
		--profile
		--multiplier
		--info
		--verbose
		--all
		--histbin
		--counters
		--reset
		--no-auto
		--help
		--version"
	COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
	return 0
}
complete -F _readprofile_module readprofile
