_bender() {
    local i cur prev opts cmd
    COMPREPLY=()
    if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
        cur="$2"
    else
        cur="${COMP_WORDS[COMP_CWORD]}"
    fi
    prev="$3"
    cmd=""
    opts=""

    for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
    do
        case "${cmd},${i}" in
            ",$1")
                cmd="bender"
                ;;
            bender,audit)
                cmd="bender__subcmd__audit"
                ;;
            bender,checkout)
                cmd="bender__subcmd__checkout"
                ;;
            bender,clean)
                cmd="bender__subcmd__clean"
                ;;
            bender,clone)
                cmd="bender__subcmd__clone"
                ;;
            bender,completion)
                cmd="bender__subcmd__completion"
                ;;
            bender,config)
                cmd="bender__subcmd__config"
                ;;
            bender,fusesoc)
                cmd="bender__subcmd__fusesoc"
                ;;
            bender,help)
                cmd="bender__subcmd__help"
                ;;
            bender,init)
                cmd="bender__subcmd__init"
                ;;
            bender,packages)
                cmd="bender__subcmd__packages"
                ;;
            bender,parents)
                cmd="bender__subcmd__parents"
                ;;
            bender,path)
                cmd="bender__subcmd__path"
                ;;
            bender,pickle)
                cmd="bender__subcmd__pickle"
                ;;
            bender,script)
                cmd="bender__subcmd__script"
                ;;
            bender,snapshot)
                cmd="bender__subcmd__snapshot"
                ;;
            bender,sources)
                cmd="bender__subcmd__sources"
                ;;
            bender,update)
                cmd="bender__subcmd__update"
                ;;
            bender,vendor)
                cmd="bender__subcmd__vendor"
                ;;
            bender__subcmd__help,audit)
                cmd="bender__subcmd__help__subcmd__audit"
                ;;
            bender__subcmd__help,checkout)
                cmd="bender__subcmd__help__subcmd__checkout"
                ;;
            bender__subcmd__help,clean)
                cmd="bender__subcmd__help__subcmd__clean"
                ;;
            bender__subcmd__help,clone)
                cmd="bender__subcmd__help__subcmd__clone"
                ;;
            bender__subcmd__help,completion)
                cmd="bender__subcmd__help__subcmd__completion"
                ;;
            bender__subcmd__help,config)
                cmd="bender__subcmd__help__subcmd__config"
                ;;
            bender__subcmd__help,fusesoc)
                cmd="bender__subcmd__help__subcmd__fusesoc"
                ;;
            bender__subcmd__help,help)
                cmd="bender__subcmd__help__subcmd__help"
                ;;
            bender__subcmd__help,init)
                cmd="bender__subcmd__help__subcmd__init"
                ;;
            bender__subcmd__help,packages)
                cmd="bender__subcmd__help__subcmd__packages"
                ;;
            bender__subcmd__help,parents)
                cmd="bender__subcmd__help__subcmd__parents"
                ;;
            bender__subcmd__help,path)
                cmd="bender__subcmd__help__subcmd__path"
                ;;
            bender__subcmd__help,pickle)
                cmd="bender__subcmd__help__subcmd__pickle"
                ;;
            bender__subcmd__help,script)
                cmd="bender__subcmd__help__subcmd__script"
                ;;
            bender__subcmd__help,snapshot)
                cmd="bender__subcmd__help__subcmd__snapshot"
                ;;
            bender__subcmd__help,sources)
                cmd="bender__subcmd__help__subcmd__sources"
                ;;
            bender__subcmd__help,update)
                cmd="bender__subcmd__help__subcmd__update"
                ;;
            bender__subcmd__help,vendor)
                cmd="bender__subcmd__help__subcmd__vendor"
                ;;
            bender__subcmd__help__subcmd__script,flist)
                cmd="bender__subcmd__help__subcmd__script__subcmd__flist"
                ;;
            bender__subcmd__help__subcmd__script,flist-plus)
                cmd="bender__subcmd__help__subcmd__script__subcmd__flist__subcmd__plus"
                ;;
            bender__subcmd__help__subcmd__script,formality)
                cmd="bender__subcmd__help__subcmd__script__subcmd__formality"
                ;;
            bender__subcmd__help__subcmd__script,genus)
                cmd="bender__subcmd__help__subcmd__script__subcmd__genus"
                ;;
            bender__subcmd__help__subcmd__script,precision)
                cmd="bender__subcmd__help__subcmd__script__subcmd__precision"
                ;;
            bender__subcmd__help__subcmd__script,riviera)
                cmd="bender__subcmd__help__subcmd__script__subcmd__riviera"
                ;;
            bender__subcmd__help__subcmd__script,synopsys)
                cmd="bender__subcmd__help__subcmd__script__subcmd__synopsys"
                ;;
            bender__subcmd__help__subcmd__script,template)
                cmd="bender__subcmd__help__subcmd__script__subcmd__template"
                ;;
            bender__subcmd__help__subcmd__script,template-json)
                cmd="bender__subcmd__help__subcmd__script__subcmd__template__subcmd__json"
                ;;
            bender__subcmd__help__subcmd__script,vcs)
                cmd="bender__subcmd__help__subcmd__script__subcmd__vcs"
                ;;
            bender__subcmd__help__subcmd__script,verilator)
                cmd="bender__subcmd__help__subcmd__script__subcmd__verilator"
                ;;
            bender__subcmd__help__subcmd__script,vivado)
                cmd="bender__subcmd__help__subcmd__script__subcmd__vivado"
                ;;
            bender__subcmd__help__subcmd__script,vivado-sim)
                cmd="bender__subcmd__help__subcmd__script__subcmd__vivado__subcmd__sim"
                ;;
            bender__subcmd__help__subcmd__script,vsim)
                cmd="bender__subcmd__help__subcmd__script__subcmd__vsim"
                ;;
            bender__subcmd__help__subcmd__vendor,diff)
                cmd="bender__subcmd__help__subcmd__vendor__subcmd__diff"
                ;;
            bender__subcmd__help__subcmd__vendor,init)
                cmd="bender__subcmd__help__subcmd__vendor__subcmd__init"
                ;;
            bender__subcmd__help__subcmd__vendor,patch)
                cmd="bender__subcmd__help__subcmd__vendor__subcmd__patch"
                ;;
            bender__subcmd__script,flist)
                cmd="bender__subcmd__script__subcmd__flist"
                ;;
            bender__subcmd__script,flist-plus)
                cmd="bender__subcmd__script__subcmd__flist__subcmd__plus"
                ;;
            bender__subcmd__script,formality)
                cmd="bender__subcmd__script__subcmd__formality"
                ;;
            bender__subcmd__script,genus)
                cmd="bender__subcmd__script__subcmd__genus"
                ;;
            bender__subcmd__script,help)
                cmd="bender__subcmd__script__subcmd__help"
                ;;
            bender__subcmd__script,precision)
                cmd="bender__subcmd__script__subcmd__precision"
                ;;
            bender__subcmd__script,riviera)
                cmd="bender__subcmd__script__subcmd__riviera"
                ;;
            bender__subcmd__script,synopsys)
                cmd="bender__subcmd__script__subcmd__synopsys"
                ;;
            bender__subcmd__script,template)
                cmd="bender__subcmd__script__subcmd__template"
                ;;
            bender__subcmd__script,template-json)
                cmd="bender__subcmd__script__subcmd__template__subcmd__json"
                ;;
            bender__subcmd__script,vcs)
                cmd="bender__subcmd__script__subcmd__vcs"
                ;;
            bender__subcmd__script,verilator)
                cmd="bender__subcmd__script__subcmd__verilator"
                ;;
            bender__subcmd__script,vivado)
                cmd="bender__subcmd__script__subcmd__vivado"
                ;;
            bender__subcmd__script,vivado-sim)
                cmd="bender__subcmd__script__subcmd__vivado__subcmd__sim"
                ;;
            bender__subcmd__script,vsim)
                cmd="bender__subcmd__script__subcmd__vsim"
                ;;
            bender__subcmd__script__subcmd__help,flist)
                cmd="bender__subcmd__script__subcmd__help__subcmd__flist"
                ;;
            bender__subcmd__script__subcmd__help,flist-plus)
                cmd="bender__subcmd__script__subcmd__help__subcmd__flist__subcmd__plus"
                ;;
            bender__subcmd__script__subcmd__help,formality)
                cmd="bender__subcmd__script__subcmd__help__subcmd__formality"
                ;;
            bender__subcmd__script__subcmd__help,genus)
                cmd="bender__subcmd__script__subcmd__help__subcmd__genus"
                ;;
            bender__subcmd__script__subcmd__help,help)
                cmd="bender__subcmd__script__subcmd__help__subcmd__help"
                ;;
            bender__subcmd__script__subcmd__help,precision)
                cmd="bender__subcmd__script__subcmd__help__subcmd__precision"
                ;;
            bender__subcmd__script__subcmd__help,riviera)
                cmd="bender__subcmd__script__subcmd__help__subcmd__riviera"
                ;;
            bender__subcmd__script__subcmd__help,synopsys)
                cmd="bender__subcmd__script__subcmd__help__subcmd__synopsys"
                ;;
            bender__subcmd__script__subcmd__help,template)
                cmd="bender__subcmd__script__subcmd__help__subcmd__template"
                ;;
            bender__subcmd__script__subcmd__help,template-json)
                cmd="bender__subcmd__script__subcmd__help__subcmd__template__subcmd__json"
                ;;
            bender__subcmd__script__subcmd__help,vcs)
                cmd="bender__subcmd__script__subcmd__help__subcmd__vcs"
                ;;
            bender__subcmd__script__subcmd__help,verilator)
                cmd="bender__subcmd__script__subcmd__help__subcmd__verilator"
                ;;
            bender__subcmd__script__subcmd__help,vivado)
                cmd="bender__subcmd__script__subcmd__help__subcmd__vivado"
                ;;
            bender__subcmd__script__subcmd__help,vivado-sim)
                cmd="bender__subcmd__script__subcmd__help__subcmd__vivado__subcmd__sim"
                ;;
            bender__subcmd__script__subcmd__help,vsim)
                cmd="bender__subcmd__script__subcmd__help__subcmd__vsim"
                ;;
            bender__subcmd__vendor,diff)
                cmd="bender__subcmd__vendor__subcmd__diff"
                ;;
            bender__subcmd__vendor,help)
                cmd="bender__subcmd__vendor__subcmd__help"
                ;;
            bender__subcmd__vendor,init)
                cmd="bender__subcmd__vendor__subcmd__init"
                ;;
            bender__subcmd__vendor,patch)
                cmd="bender__subcmd__vendor__subcmd__patch"
                ;;
            bender__subcmd__vendor__subcmd__help,diff)
                cmd="bender__subcmd__vendor__subcmd__help__subcmd__diff"
                ;;
            bender__subcmd__vendor__subcmd__help,help)
                cmd="bender__subcmd__vendor__subcmd__help__subcmd__help"
                ;;
            bender__subcmd__vendor__subcmd__help,init)
                cmd="bender__subcmd__vendor__subcmd__help__subcmd__init"
                ;;
            bender__subcmd__vendor__subcmd__help,patch)
                cmd="bender__subcmd__vendor__subcmd__help__subcmd__patch"
                ;;
            *)
                ;;
        esac
    done

    case "${cmd}" in
        bender)
            opts="-d -v -h -V --dir --local --git-throttle --suppress --no-progress --verbose --help --version update path parents clone clean packages sources completion config script checkout vendor fusesoc init snapshot audit pickle help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__audit)
            opts="-f -d -v -h --only-update --fetch --ignore-url-conflict --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__checkout)
            opts="-d -v -h --force --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__clean)
            opts="-d -v -h --all --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__clone)
            opts="-p -d -v -h --path --dir --local --git-throttle --suppress --no-progress --verbose --help <NAME>"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__completion)
            opts="-d -v -h --dir --local --git-throttle --suppress --no-progress --verbose --help bash elvish fish powershell zsh"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__config)
            opts="-d -v -h --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__fusesoc)
            opts="-d -v -h --single --license --fuse-vendor --fuse-version --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --license)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --fuse-vendor)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --fuse-version)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help)
            opts="update path parents clone clean packages sources completion config script checkout vendor fusesoc init snapshot audit pickle help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__audit)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__checkout)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__clean)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__clone)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__completion)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__config)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__fusesoc)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__help)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__init)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__packages)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__parents)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__path)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__pickle)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script)
            opts="flist flist-plus vsim vcs verilator synopsys formality riviera genus vivado vivado-sim precision template template-json"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__flist)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__flist__subcmd__plus)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__formality)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__genus)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__precision)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__riviera)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__synopsys)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__template)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__template__subcmd__json)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__vcs)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__verilator)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__vivado)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__vivado__subcmd__sim)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__script__subcmd__vsim)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__snapshot)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__sources)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__update)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__vendor)
            opts="diff init patch"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__vendor__subcmd__diff)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__vendor__subcmd__init)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__help__subcmd__vendor__subcmd__patch)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__init)
            opts="-d -v -h --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__packages)
            opts="-g -f -d -v -h --graph --flat --version --targets --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__parents)
            opts="-d -v -h --targets --dir --local --git-throttle --suppress --no-progress --verbose --help <NAME>"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__path)
            opts="-d -v -h --checkout --dir --local --git-throttle --suppress --no-progress --verbose --help [NAME]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__pickle)
            opts="-o -t -p -I -D -d -v -h --output --target --package --exclude --keep-excluded-incdirs --no-deps --top --prefix --suffix --exclude-rename --expand-macros --strip-comments --squash-newlines --ast-json --dir --local --git-throttle --suppress --no-progress --verbose --help [FILES]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --output)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -o)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -I)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --prefix)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suffix)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude-rename)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script)
            opts="-t -D -p -n -e -d -v -h --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help flist flist-plus vsim vcs verilator synopsys formality riviera genus vivado vivado-sim precision template template-json help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__flist)
            opts="-t -D -p -n -e -d -v -h --relative-path --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__flist__subcmd__plus)
            opts="-t -D -p -n -e -d -v -h --relative-path --only-defines --only-includes --only-sources --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__formality)
            opts="-t -D -p -n -e -d -v -h --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__genus)
            opts="-t -D -p -n -e -d -v -h --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help)
            opts="flist flist-plus vsim vcs verilator synopsys formality riviera genus vivado vivado-sim precision template template-json help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__flist)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__flist__subcmd__plus)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__formality)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__genus)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__help)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__precision)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__riviera)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__synopsys)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__template)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__template__subcmd__json)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__vcs)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__verilator)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__vivado)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__vivado__subcmd__sim)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__help__subcmd__vsim)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__precision)
            opts="-t -D -p -n -e -d -v -h --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__riviera)
            opts="-t -D -p -n -e -d -v -h --vlog-args --vcom-args --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --vlog-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --vcom-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__synopsys)
            opts="-t -D -p -n -e -d -v -h --verilog-args --vhdl-args --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --verilog-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --vhdl-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__template)
            opts="-t -D -p -n -e -d -v -h --template --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --template)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__template__subcmd__json)
            opts="-t -D -p -n -e -d -v -h --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__vcs)
            opts="-t -D -p -n -e -d -v -h --vlogan-args --vhdlan-args --vlogan-bin --vhdlan-bin --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --vlogan-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --vhdlan-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --vlogan-bin)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --vhdlan-bin)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__verilator)
            opts="-t -D -p -n -e -d -v -h --vlt-args --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --vlt-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__vivado)
            opts="-t -D -p -n -e -d -v -h --no-simset --only-defines --only-includes --only-sources --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__vivado__subcmd__sim)
            opts="-t -D -p -n -e -d -v -h --no-simset --only-defines --only-includes --only-sources --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__script__subcmd__vsim)
            opts="-t -D -p -n -e -d -v -h --vlog-args --vcom-args --target --no-default-target --define --source-annotations --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --ignore-passed-targets --compilation-mode --no-abort-on-error --top --trim-incdirs --broken --encrypted --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --vlog-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --vcom-args)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --define)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -D)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --compilation-mode)
                    COMPREPLY=($(compgen -W "separate common" -- "${cur}"))
                    return 0
                    ;;
                --top)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trim-incdirs)
                    COMPREPLY=($(compgen -W "auto always never" -- "${cur}"))
                    return 0
                    ;;
                --broken)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --encrypted)
                    COMPREPLY=($(compgen -W "error keep drop" -- "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__snapshot)
            opts="-c -d -v -h --working-dir --no-skip --checkout --force --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --working-dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__sources)
            opts="-t -f -p -n -e -d -v -h --target --flatten --package --no-deps --exclude --keep-excluded-incdirs --assume-rtl --raw --ignore-passed-targets --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --package)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --exclude)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -e)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__update)
            opts="-f -d -v -h --fetch --no-checkout --ignore-checkout-dir --recursive --new-only --dir --local --git-throttle --suppress --no-progress --verbose --help [DEP]..."
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor)
            opts="-d -v -h --dir --local --git-throttle --suppress --no-progress --verbose --help diff init patch help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__diff)
            opts="-d -v -h --err-on-diff --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --err-on-diff)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__help)
            opts="diff init patch help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__help__subcmd__diff)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__help__subcmd__help)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__help__subcmd__init)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__help__subcmd__patch)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 4 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__init)
            opts="-n -d -v -h --no-patch --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        bender__subcmd__vendor__subcmd__patch)
            opts="-m -d -v -h --plain --message --dir --local --git-throttle --suppress --no-progress --verbose --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --message)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -m)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --dir)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -d)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --git-throttle)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --suppress)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
    esac
}

if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
    complete -F _bender -o nosort -o bashdefault -o default bender
else
    complete -F _bender -o bashdefault -o default bender
fi
