#compdef sq

autoload -U is-at-least

_sq() {
    typeset -A opt_args
    typeset -a _arguments_options
    local ret=1

    if is-at-least 5.2; then
        _arguments_options=(-s -S -C)
    else
        _arguments_options=(-s -C)
    fi

    local context curcontext="$curcontext" state line
    _arguments "${_arguments_options[@]}" \
'(--no-cert-store)--cert-store=[Specifies the location of the certificate store]:PATH:_files' \
'--pep-cert-store=[Specifies the location of a pEp certificate store]:PATH:_files' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--output-format=[Produces output in FORMAT, if possible]:FORMAT:(human-readable json dot)' \
'--output-version=[Produces output variant VERSION.]:VERSION: ' \
'*--known-notation=[Adds NOTATION to the list of known notations]:NOTATION: ' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'*--trust-root=[Considers the specified certificate to be a trust root]:FINGERPRINT|KEYID: ' \
'-f[Overwrites existing files]' \
'--force[Overwrites existing files]' \
'--no-cert-store[Disables the use of a certificate store]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'-V[Print version information]' \
'--version[Print version information]' \
":: :_sq_commands" \
"*::: :->sq" \
&& ret=0
    case $state in
    (sq)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-command-$line[1]:"
        case $line[1] in
            (encrypt)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--recipient-email=[Encrypts to all certificates that can be authenticated for the specified email address]:EMAIL: ' \
'*--recipient-userid=[Encrypts to all certificates that can be authenticated for the specified User ID]:USERID: ' \
'*--recipient-cert=[Encrypts to the named certificates]:FINGERPRINT|KEYID: ' \
'*--recipient-file=[Encrypts to all certificates in CERT_RING_FILE]:CERT_RING_FILE:_files' \
'*--signer-file=[Signs the message using the key in KEY_FILE]:KEY_FILE:_files' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'--mode=[Selects what kind of keys are considered for encryption.]:MODE:(transport rest all)' \
'--compression=[Selects compression scheme to use]:KIND:(none pad zip zlib bzip2)' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'*-s[Adds a password to encrypt with]' \
'*--symmetric[Adds a password to encrypt with]' \
'--use-expired-subkey[Falls back to expired encryption subkeys]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(decrypt)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'-n+[Sets the threshold of valid signatures to N]:N: ' \
'--signatures=[Sets the threshold of valid signatures to N]:N: ' \
'*--signer-file=[Verifies signatures using the certificates in CERT_FILE]:CERT_FILE:_files' \
'*--recipient-file=[Decrypts the message using the key in KEY_FILE]:KEY_FILE:_files' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'*--session-key=[Decrypts an encrypted message using SESSION-KEY]:SESSION-KEY: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--dump-session-key[Prints the session key to stderr]' \
'--dump[Prints a packet dump to stderr]' \
'-x[Prints a hexdump (implies --dump)]' \
'--hex[Prints a hexdump (implies --dump)]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(sign)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'(-a --append --detached --cleartext-signature -n --notarize --signer-file)--merge=[Merges signatures from the input and SIGNED-MESSAGE]:SIGNED-MESSAGE:_files' \
'*--signer-file=[Signs the message using the key in KEY_FILE]:KEY_FILE:_files' \
'(--merge)*--notation=[Adds a notation to the certification.]:NAME: :NAME: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'--detached[Creates a detached signature]' \
'(--detached -a --append -n --notarize -B --binary)--cleartext-signature[Creates a cleartext signature]' \
'(-n --notarize)-a[Appends a signature to existing signature]' \
'(-n --notarize)--append[Appends a signature to existing signature]' \
'(-a --append)-n[Signs a message and all existing signatures]' \
'(-a --append)--notarize[Signs a message and all existing signatures]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(verify)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'--detached=[Verifies a detached signature]:SIG: ' \
'-n+[Sets the threshold of valid signatures to N]:N: ' \
'--signatures=[Sets the threshold of valid signatures to N]:N: ' \
'*--signer-file=[Verifies signatures using the certificate in CERT_FILE]:CERT_FILE:_files' \
'*--signer-cert=[Verifies signatures using the specified certificate]:FINGERPRINT|KEYID: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(key)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__key_commands" \
"*::: :->key" \
&& ret=0

    case $state in
    (key)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-command-$line[1]:"
        case $line[1] in
            (generate)
_arguments "${_arguments_options[@]}" \
'*-u+[Adds a userid to the key]:EMAIL: ' \
'*--userid=[Adds a userid to the key]:EMAIL: ' \
'-c+[Selects the cryptographic algorithms for the key]:CIPHER-SUITE:(rsa3k rsa4k cv25519)' \
'--cipher-suite=[Selects the cryptographic algorithms for the key]:CIPHER-SUITE:(rsa3k rsa4k cv25519)' \
'--expiry=[Defines EXPIRY for the key as ISO 8601 formatted string or custom duration.]:EXPIRY: ' \
'--can-encrypt=[Adds an encryption-capable subkey \[default: universal\]]:PURPOSE:(transport storage universal)' \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'--rev-cert=[Writes the revocation certificate to FILE]:FILE or -:_files' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--with-password[Protects the key with a password]' \
'--can-sign[Adds a signing-capable subkey (default)]' \
'--cannot-sign[Adds no signing-capable subkey]' \
'--can-authenticate[Adds an authentication-capable subkey (default)]' \
'--cannot-authenticate[Adds no authentication-capable subkey]' \
'--cannot-encrypt[Adds no encryption-capable subkey]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
&& ret=0
;;
(password)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--clear[Emit a key with unencrypted secrets]' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
'--certificate-file=[The certificate to revoke]:FILE:_files' \
'--revocation-file=[Signs the revocation certificate using the key in KEY_FILE]:KEY_FILE:_files' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'*--notation=[Adds a notation to the certification.]:NAME: :NAME: ' \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':reason -- The reason for the revocation:(compromised superseded retired unspecified)' \
':message -- A short, explanatory text:' \
&& ret=0
;;
(userid)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__key__userid_commands" \
"*::: :->userid" \
&& ret=0

    case $state in
    (userid)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-userid-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*-u+[User ID to add]:USERID: ' \
'*--userid=[User ID to add]:USERID: ' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
'--certificate-file=[The certificate containing the User ID to revoke]:CERT_FILE:_files' \
'--revocation-file=[Signs the revocation certificate using the key in KEY_FILE]:KEY_FILE:_files' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'*--notation=[Adds a notation to the certification.]:NAME: :NAME: ' \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':userid -- The User ID to revoke:' \
':reason -- The reason for the revocation:(retired unspecified)' \
':message -- A short, explanatory text:' \
&& ret=0
;;
(strip)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*-u+[User IDs to strip]:USERID: ' \
'*--userid=[User IDs to strip]:USERID: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__key__userid__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-userid-help-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(strip)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(subkey)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__key__subkey_commands" \
"*::: :->subkey" \
&& ret=0

    case $state in
    (subkey)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-subkey-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'-c+[Selects the cryptographic algorithms for the subkey]:CIPHER-SUITE:(rsa3k rsa4k cv25519)' \
'--cipher-suite=[Selects the cryptographic algorithms for the subkey]:CIPHER-SUITE:(rsa3k rsa4k cv25519)' \
'--expiry=[Defines EXPIRY for the subkey as ISO 8601 formatted string or custom duration.]:EXPIRY: ' \
'--can-encrypt=[Adds an encryption capability to subkey \[default: universal\]]:PURPOSE:(transport storage universal)' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'--can-sign[Adds signing capability to subkey]' \
'--can-authenticate[Adds authentication capability to subkey]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
'--certificate-file=[The certificate containing the subkey to revoke]:FILE:_files' \
'--revocation-file=[Signs the revocation certificate using the key in KEY_FILE]:KEY_FILE:_files' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'*--notation=[Adds a notation to the certification.]:NAME: :NAME: ' \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':subkey -- The subkey to revoke:' \
':reason -- The reason for the revocation:(compromised superseded retired unspecified)' \
':message -- A short, explanatory text:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__key__subkey__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-subkey-help-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(extract-cert)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(attest-certifications)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'(--all)--none[Removes all prior attestations]' \
'(--none)--all[Attests to all certifications \[default\]]' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::key -- Changes attestations on KEY or reads from stdin if omitted:' \
&& ret=0
;;
(adopt)
_arguments "${_arguments_options[@]}" \
'*-k+[Adds the key or subkey KEY to the TARGET-KEY]:KEY: ' \
'*--key=[Adds the key or subkey KEY to the TARGET-KEY]:KEY: ' \
'--expire=[Makes adopted subkeys expire at the given time]:KEY-EXPIRATION-TIME: ' \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--allow-broken-crypto[Allows adopting keys from certificates using broken cryptography]' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::certificate -- Adds keys to TARGET-KEY or reads keys from stdin if omitted:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__key__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-help-command-$line[1]:"
        case $line[1] in
            (generate)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(password)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(userid)
_arguments "${_arguments_options[@]}" \
":: :_sq__key__help__userid_commands" \
"*::: :->userid" \
&& ret=0

    case $state in
    (userid)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-help-userid-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(strip)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(subkey)
_arguments "${_arguments_options[@]}" \
":: :_sq__key__help__subkey_commands" \
"*::: :->subkey" \
&& ret=0

    case $state in
    (subkey)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-key-help-subkey-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(extract-cert)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(attest-certifications)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(adopt)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(keyring)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__keyring_commands" \
"*::: :->keyring" \
&& ret=0

    case $state in
    (keyring)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-keyring-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--all-userids[Lists all user ids]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(split)
_arguments "${_arguments_options[@]}" \
'-p+[Writes to files with PREFIX \[defaults: "FILE-" if FILE is set, or "output-" if read from stdin\]]:PREFIX: ' \
'--prefix=[Writes to files with PREFIX \[defaults: "FILE-" if FILE is set, or "output-" if read from stdin\]]:PREFIX: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(join)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Don'\''t ASCII-armor the keyring]' \
'--binary[Don'\''t ASCII-armor the keyring]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'*::input -- Reads from FILE or stdin if omitted:_files' \
&& ret=0
;;
(merge)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'*::input -- Reads from FILE or stdin if omitted:_files' \
&& ret=0
;;
(filter)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--userid=[Matches on USERID]:USERID: ' \
'*--name=[Matches on NAME]:NAME: ' \
'*--email=[Matches on email ADDRESS]:ADDRESS: ' \
'*--domain=[Matches on email domain FQDN]:FQDN: ' \
'*--handle=[Matches on (sub)key fingerprints and key ids]:FINGERPRINT|KEYID: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-P[Removes certificate components not matching the filter]' \
'--prune-certs[Removes certificate components not matching the filter]' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'--to-cert[Converts any keys in the input to certificates.  Converting a key to a certificate removes secret key material from the key thereby turning it into a certificate.]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'*::input -- Reads from FILE or stdin if omitted:_files' \
&& ret=0
;;
(lint)
_arguments "${_arguments_options[@]}" \
'*-p+[A key'\''s password.  Normally this is not needed: if stdin is connected to a tty, the linter will ask for a password when needed]:PASSWORD: ' \
'*--password=[A key'\''s password.  Normally this is not needed: if stdin is connected to a tty, the linter will ask for a password when needed]:PASSWORD: ' \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-q[Quiet; does not output any diagnostics]' \
'--quiet[Quiet; does not output any diagnostics]' \
'-f[Attempts to fix certificates, when possible]' \
'--fix[Attempts to fix certificates, when possible]' \
'-e[When fixing a certificate, the fixed certificate is exported without any secret key material.  Using this switch causes any secret key material to also be exported]' \
'--export-secret-keys[When fixing a certificate, the fixed certificate is exported without any secret key material.  Using this switch causes any secret key material to also be exported]' \
'-k[If set, outputs a list of fingerprints, one per line, of certificates that have issues.  This output is intended for use by scripts]' \
'--list-keys[If set, outputs a list of fingerprints, one per line, of certificates that have issues.  This output is intended for use by scripts]' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'*::file -- A list of OpenPGP keyrings to process.  If none are specified, a keyring is read from stdin:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__keyring__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-keyring-help-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(split)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(join)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(merge)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(filter)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(lint)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(import)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'*::input -- Reads from FILE or stdin if omitted:_files' \
&& ret=0
;;
(export)
_arguments "${_arguments_options[@]}" \
'*--cert=[Returns certificates that have the specified fingerprint or key ID]:FINGERPRINT|KEYID: ' \
'*--key=[Returns certificates where the primary key or a subkey has the specified fingerprint or key ID]:FINGERPRINT|KEYID: ' \
'*--userid=[Returns certificates that have a User ID that matches exactly, including case]:USERID: ' \
'*--grep=[Returns certificates that have a User ID that contains the string, case insensitively]:PATTERN: ' \
'*--email=[Returns certificates that have a User ID with the specified email address, case insensitively]:EMAIL: ' \
'*--domain=[Returns certificates that have a User ID with an email address from the specified domain]:DOMAIN: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
&& ret=0
;;
(certify)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'-d+[Sets the trust depth]:TRUST_DEPTH: ' \
'--depth=[Sets the trust depth]:TRUST_DEPTH: ' \
'-a+[Sets the amount of trust]:TRUST_AMOUNT: ' \
'--amount=[Sets the amount of trust]:TRUST_AMOUNT: ' \
'*-r+[Adds a regular expression to constrain what a trusted introducer can certify]:REGEX: ' \
'*--regex=[Adds a regular expression to constrain what a trusted introducer can certify]:REGEX: ' \
'*--notation=[Adds a notation to the certification.]:NAME: :NAME: ' \
'--expiry=[Defines EXPIRY for the certification as ISO 8601 formatted string or custom duration.]:EXPIRY: ' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-l[Makes the certification a local certification]' \
'--local[Makes the certification a local certification]' \
'--non-revocable[Marks the certification as being non-revocable]' \
'--allow-not-alive-certifier[Don'\''t fail if the certificate making the certification is not alive.]' \
'--allow-revoked-certifier[Don'\''t fail if the certificate making the certification is revoked.]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':certifier -- Creates the certification using CERTIFIER-KEY.:_files' \
':certificate -- Certifies CERTIFICATE.:' \
':userid -- Certifies USERID for CERTIFICATE.:' \
&& ret=0
;;
(link)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__link_commands" \
"*::: :->link" \
&& ret=0

    case $state in
    (link)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-link-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
'-d+[Sets the trust depth]:TRUST_DEPTH: ' \
'--depth=[Sets the trust depth]:TRUST_DEPTH: ' \
'*--ca=[Marks the certificate as a certification authority for a domain]:*|DOMAIN: ' \
'-a+[Sets the amount of trust]:TRUST_AMOUNT: ' \
'--amount=[Sets the amount of trust]:TRUST_AMOUNT: ' \
'*-r+[Adds a regular expression to constrain what a trusted introducer can certify]:REGEX: ' \
'*--regex=[Adds a regular expression to constrain what a trusted introducer can certify]:REGEX: ' \
'*--notation=[Adds a notation to the certification.]:NAME: :NAME: ' \
'--expiry=[Defines EXPIRY for the acceptance as ISO 8601 formatted string or custom duration.]:EXPIRY: ' \
'*--userid=[A User ID to link to the certificate.]:USERID: ' \
'*--email=[An email address to link to the certificate.]:EMAIL: ' \
'*--petname=[A User ID to link to the certificate.]:PETNAME: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'(-a --amount)--temporary[Temporarily accepts the binding]' \
'(--userid --email --petname)--all[Links all valid self-signed User ID to the certificate.]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':certificate -- The certificate to accept.:' \
'*::pattern -- A User ID or email address to accept.:' \
&& ret=0
;;
(retract)
_arguments "${_arguments_options[@]}" \
'*--notation=[Adds a notation to the certification.]:NAME: :NAME: ' \
'*--userid=[A User ID to unlink from the certificate.]:USERID: ' \
'*--email=[An email address to unlink from the certificate.]:email: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':certificate -- The certificate whose acceptance is being retracted.:' \
'*::pattern -- A User ID or email address to unlink from the certificate.:' \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--ca[Only lists bindings linked as CAs.]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__link__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-link-help-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(retract)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(wot)
_arguments "${_arguments_options[@]}" \
'(--partial --full --double)-a+[The required amount of trust]:TRUST_AMOUNT: ' \
'(--partial --full --double)--trust-amount=[The required amount of trust]:TRUST_AMOUNT: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--gossip[Treats all certificates as unreliable trust roots]' \
'--certification-network[Treats the network as a certification network]' \
'(-a --trust-amount --full --double)--partial[Require partial authentication]' \
'(-a --trust-amount --partial --double)--full[Require full authentication]' \
'(-a --trust-amount --partial --full)--double[Require double authentication]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'-V[Print version information]' \
'--version[Print version information]' \
":: :_sq__wot_commands" \
"*::: :->wot" \
&& ret=0

    case $state in
    (wot)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-wot-command-$line[1]:"
        case $line[1] in
            (authenticate)
_arguments "${_arguments_options[@]}" \
'(--partial --full --double)-a+[The required amount of trust]:TRUST_AMOUNT: ' \
'(--partial --full --double)--trust-amount=[The required amount of trust]:TRUST_AMOUNT: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--email[Changes the USERID parameter to match User IDs with the specified email address]' \
'--gossip[Treats all certificates as unreliable trust roots]' \
'--certification-network[Treats the network as a certification network]' \
'(-a --trust-amount --full --double)--partial[Require partial authentication]' \
'(-a --trust-amount --partial --double)--full[Require full authentication]' \
'(-a --trust-amount --partial --full)--double[Require double authentication]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':cert -- The fingerprint or Key ID of the certificate to authenticate:' \
':userid -- The User ID to authenticate:' \
&& ret=0
;;
(lookup)
_arguments "${_arguments_options[@]}" \
'(--partial --full --double)-a+[The required amount of trust]:TRUST_AMOUNT: ' \
'(--partial --full --double)--trust-amount=[The required amount of trust]:TRUST_AMOUNT: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--email[Changes the USERID parameter to match User IDs with the specified email address]' \
'--gossip[Treats all certificates as unreliable trust roots]' \
'--certification-network[Treats the network as a certification network]' \
'(-a --trust-amount --full --double)--partial[Require partial authentication]' \
'(-a --trust-amount --partial --double)--full[Require full authentication]' \
'(-a --trust-amount --partial --full)--double[Require double authentication]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':userid -- The User ID to authenticate:' \
&& ret=0
;;
(identify)
_arguments "${_arguments_options[@]}" \
'(--partial --full --double)-a+[The required amount of trust]:TRUST_AMOUNT: ' \
'(--partial --full --double)--trust-amount=[The required amount of trust]:TRUST_AMOUNT: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--gossip[Treats all certificates as unreliable trust roots]' \
'--certification-network[Treats the network as a certification network]' \
'(-a --trust-amount --full --double)--partial[Require partial authentication]' \
'(-a --trust-amount --partial --double)--full[Require full authentication]' \
'(-a --trust-amount --partial --full)--double[Require double authentication]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':cert -- The fingerprint or Key ID of the certificate to authenticate:' \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
'(--partial --full --double)-a+[The required amount of trust]:TRUST_AMOUNT: ' \
'(--partial --full --double)--trust-amount=[The required amount of trust]:TRUST_AMOUNT: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--email[Changes the USERID parameter to match User IDs with the specified email address]' \
'--gossip[Treats all certificates as unreliable trust roots]' \
'--certification-network[Treats the network as a certification network]' \
'(-a --trust-amount --full --double)--partial[Require partial authentication]' \
'(-a --trust-amount --partial --double)--full[Require full authentication]' \
'(-a --trust-amount --partial --full)--double[Require double authentication]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::pattern -- A pattern to select the bindings to authenticate:' \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" \
'(--partial --full --double)-a+[The required amount of trust]:TRUST_AMOUNT: ' \
'(--partial --full --double)--trust-amount=[The required amount of trust]:TRUST_AMOUNT: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--email[Changes the USERID parameter to match User IDs with the specified email address]' \
'--gossip[Treats all certificates as unreliable trust roots]' \
'--certification-network[Treats the network as a certification network]' \
'(-a --trust-amount --full --double)--partial[Require partial authentication]' \
'(-a --trust-amount --partial --double)--full[Require full authentication]' \
'(-a --trust-amount --partial --full)--double[Require double authentication]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'*::elements -- A path consists of one or more certificates (designated by their fingerprint or Key ID) and ending in the User ID that is being authenticated:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__wot__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-wot-help-command-$line[1]:"
        case $line[1] in
            (authenticate)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(lookup)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(identify)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(autocrypt)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__autocrypt_commands" \
"*::: :->autocrypt" \
&& ret=0

    case $state in
    (autocrypt)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-autocrypt-command-$line[1]:"
        case $line[1] in
            (decode)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(encode-sender)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'--email=[Sets the address \[default: primary userid\]]:ADDRESS: ' \
'--prefer-encrypt=[Sets the prefer-encrypt attribute]:PREFER-ENCRYPT:(nopreference mutual)' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__autocrypt__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-autocrypt-help-command-$line[1]:"
        case $line[1] in
            (decode)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(encode-sender)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(keyserver)
_arguments "${_arguments_options[@]}" \
'-p+[Sets the network policy to use]:NETWORK-POLICY:(offline anonymized encrypted insecure)' \
'--policy=[Sets the network policy to use]:NETWORK-POLICY:(offline anonymized encrypted insecure)' \
'-s+[Sets the keyserver to use]:URI: ' \
'--server=[Sets the keyserver to use]:URI: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__keyserver_commands" \
"*::: :->keyserver" \
&& ret=0

    case $state in
    (keyserver)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-keyserver-command-$line[1]:"
        case $line[1] in
            (get)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE (or stdout when providing "-") instead of importing into the certificate store]:FILE: ' \
'--output=[Writes to FILE (or stdout when providing "-") instead of importing into the certificate store]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':query -- Retrieve certificate(s) using QUERY. This may be a fingerprint, a KeyID, or an email address.:' \
&& ret=0
;;
(send)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__keyserver__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-keyserver-help-command-$line[1]:"
        case $line[1] in
            (get)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(send)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(wkd)
_arguments "${_arguments_options[@]}" \
'-n+[Sets the network policy to use]:NETWORK-POLICY:(offline anonymized encrypted insecure)' \
'--network-policy=[Sets the network policy to use]:NETWORK-POLICY:(offline anonymized encrypted insecure)' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__wkd_commands" \
"*::: :->wkd" \
&& ret=0

    case $state in
    (wkd)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-wkd-command-$line[1]:"
        case $line[1] in
            (generate)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-d[Uses the direct method \[default: advanced method\]]' \
'--direct-method[Uses the direct method \[default: advanced method\]]' \
'-s[Skips certificates that do not have User IDs for given domain.]' \
'--skip[Skips certificates that do not have User IDs for given domain.]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':base_directory -- Writes the WKD to WEB-ROOT:' \
':domain -- Generates a WKD for a fully qualified domain name for email:' \
'::input -- Adds certificates from CERT-RING (or stdin if omitted) to the WKD:' \
&& ret=0
;;
(get)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE (or stdout when providing "-") instead of importing into the certificate store]:FILE: ' \
'--output=[Writes to FILE (or stdout when providing "-") instead of importing into the certificate store]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':email_address -- Queries a cert for ADDRESS:' \
&& ret=0
;;
(direct-url)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':email_address -- Queries for ADDRESS:' \
&& ret=0
;;
(url)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':email_address -- Queries for ADDRESS:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__wkd__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-wkd-help-command-$line[1]:"
        case $line[1] in
            (generate)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(get)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(direct-url)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(url)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(dane)
_arguments "${_arguments_options[@]}" \
'-n+[Sets the network policy to use]:NETWORK-POLICY:(offline anonymized encrypted insecure)' \
'--network-policy=[Sets the network policy to use]:NETWORK-POLICY:(offline anonymized encrypted insecure)' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__dane_commands" \
"*::: :->dane" \
&& ret=0

    case $state in
    (dane)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-dane-command-$line[1]:"
        case $line[1] in
            (get)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE (or stdout when providing "-") instead of importing into the certificate store]:FILE: ' \
'--output=[Writes to FILE (or stdout when providing "-") instead of importing into the certificate store]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
':email_address -- Queries a cert for ADDRESS:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__dane__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-dane-help-command-$line[1]:"
        case $line[1] in
            (get)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(armor)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'--label=[Selects the kind of armor header]:LABEL:(auto message cert key sig file)' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(dearmor)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(inspect)
_arguments "${_arguments_options[@]}" \
'()*--cert=[Reads the specified certificate from the certificate store]:FINGERPRINT|KEYID: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--certifications[Prints third-party certifications]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(packet)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
":: :_sq__packet_commands" \
"*::: :->packet" \
&& ret=0

    case $state in
    (packet)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-packet-command-$line[1]:"
        case $line[1] in
            (dump)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'--session-key=[Decrypts an encrypted message using SESSION-KEY]:SESSION-KEY: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--mpis[Prints cryptographic artifacts]' \
'-x[Prints a hexdump]' \
'--hex[Prints a hexdump]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(decrypt)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'*--recipient-file=[Decrypts the message using the key in KEY_FILE]:KEY_FILE:_files' \
'--private-key-store=[Provides parameters for private key store]:KEY_STORE: ' \
'*--session-key=[Decrypts an encrypted message using SESSION-KEY]:SESSION-KEY: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'--dump-session-key[Prints the session key to stderr]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(split)
_arguments "${_arguments_options[@]}" \
'-p+[Writes to files with PREFIX \[defaults: "FILE-" if FILE is set, or "output-" if read from stdin\]]:PREFIX: ' \
'--prefix=[Writes to files with PREFIX \[defaults: "FILE-" if FILE is set, or "output-" if read from stdin\]]:PREFIX: ' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'::input -- Reads from FILE or stdin if omitted:' \
&& ret=0
;;
(join)
_arguments "${_arguments_options[@]}" \
'-o+[Writes to FILE or stdout if omitted]:FILE: ' \
'--output=[Writes to FILE or stdout if omitted]:FILE: ' \
'(-B --binary)--label=[Selects the kind of armor header]:LABEL:(auto message cert key sig file)' \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'-B[Emits binary data]' \
'--binary[Emits binary data]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
'*::input -- Reads from FILE or stdin if omitted:_files' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__packet__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-packet-help-command-$line[1]:"
        case $line[1] in
            (dump)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(decrypt)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(split)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(join)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(output-versions)
_arguments "${_arguments_options[@]}" \
'*--keyring=[Specifies the location of a keyring to use]:PATH:_files' \
'--time=[Sets the reference time as ISO 8601 formatted timestamp]:TIME: ' \
'--default[List only the default output version]' \
'-h[Print help information (use `--help` for more detail)]' \
'--help[Print help information (use `--help` for more detail)]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_sq__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-command-$line[1]:"
        case $line[1] in
            (encrypt)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(decrypt)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(sign)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(verify)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(key)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__key_commands" \
"*::: :->key" \
&& ret=0

    case $state in
    (key)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-key-command-$line[1]:"
        case $line[1] in
            (generate)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(password)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(userid)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__key__userid_commands" \
"*::: :->userid" \
&& ret=0

    case $state in
    (userid)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-key-userid-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(strip)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(subkey)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__key__subkey_commands" \
"*::: :->subkey" \
&& ret=0

    case $state in
    (subkey)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-key-subkey-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(extract-cert)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(attest-certifications)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(adopt)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(keyring)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__keyring_commands" \
"*::: :->keyring" \
&& ret=0

    case $state in
    (keyring)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-keyring-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(split)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(join)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(merge)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(filter)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(lint)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(import)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(export)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(certify)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(link)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__link_commands" \
"*::: :->link" \
&& ret=0

    case $state in
    (link)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-link-command-$line[1]:"
        case $line[1] in
            (add)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(retract)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(wot)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__wot_commands" \
"*::: :->wot" \
&& ret=0

    case $state in
    (wot)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-wot-command-$line[1]:"
        case $line[1] in
            (authenticate)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(lookup)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(identify)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(path)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(autocrypt)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__autocrypt_commands" \
"*::: :->autocrypt" \
&& ret=0

    case $state in
    (autocrypt)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-autocrypt-command-$line[1]:"
        case $line[1] in
            (decode)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(encode-sender)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(keyserver)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__keyserver_commands" \
"*::: :->keyserver" \
&& ret=0

    case $state in
    (keyserver)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-keyserver-command-$line[1]:"
        case $line[1] in
            (get)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(send)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(wkd)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__wkd_commands" \
"*::: :->wkd" \
&& ret=0

    case $state in
    (wkd)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-wkd-command-$line[1]:"
        case $line[1] in
            (generate)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(get)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(direct-url)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(url)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(dane)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__dane_commands" \
"*::: :->dane" \
&& ret=0

    case $state in
    (dane)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-dane-command-$line[1]:"
        case $line[1] in
            (get)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(armor)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(dearmor)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(inspect)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(packet)
_arguments "${_arguments_options[@]}" \
":: :_sq__help__packet_commands" \
"*::: :->packet" \
&& ret=0

    case $state in
    (packet)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:sq-help-packet-command-$line[1]:"
        case $line[1] in
            (dump)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(decrypt)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(split)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(join)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(output-versions)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_sq_commands] )) ||
_sq_commands() {
    local commands; commands=(
'encrypt:Encrypts a message' \
'decrypt:Decrypts a message' \
'sign:Signs messages or data files' \
'verify:Verifies signed messages or detached signatures' \
'key:Manages keys' \
'keyring:Manages collections of keys or certs' \
'import:Imports certificates into the local certificate store' \
'export:Exports certificates from the local certificate store' \
'certify:Certifies a User ID for a Certificate' \
'link:Manages authenticated certificate and User ID links' \
'wot:Command-line frontends for Sequoia' \
'autocrypt:Communicates certificates using Autocrypt' \
'keyserver:Interacts with keyservers' \
'wkd:Interacts with Web Key Directories' \
'dane:Interacts with DANE' \
'armor:Converts binary to ASCII' \
'dearmor:Converts ASCII to binary' \
'inspect:Inspects data, like file(1)' \
'packet:Low-level packet manipulation' \
'output-versions:List supported output versions' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq commands' commands "$@"
}
(( $+functions[_sq__help__key__subkey__add_commands] )) ||
_sq__help__key__subkey__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key subkey add commands' commands "$@"
}
(( $+functions[_sq__help__key__userid__add_commands] )) ||
_sq__help__key__userid__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key userid add commands' commands "$@"
}
(( $+functions[_sq__help__link__add_commands] )) ||
_sq__help__link__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq help link add commands' commands "$@"
}
(( $+functions[_sq__key__help__subkey__add_commands] )) ||
_sq__key__help__subkey__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help subkey add commands' commands "$@"
}
(( $+functions[_sq__key__help__userid__add_commands] )) ||
_sq__key__help__userid__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help userid add commands' commands "$@"
}
(( $+functions[_sq__key__subkey__add_commands] )) ||
_sq__key__subkey__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq key subkey add commands' commands "$@"
}
(( $+functions[_sq__key__subkey__help__add_commands] )) ||
_sq__key__subkey__help__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq key subkey help add commands' commands "$@"
}
(( $+functions[_sq__key__userid__add_commands] )) ||
_sq__key__userid__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq key userid add commands' commands "$@"
}
(( $+functions[_sq__key__userid__help__add_commands] )) ||
_sq__key__userid__help__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq key userid help add commands' commands "$@"
}
(( $+functions[_sq__link__add_commands] )) ||
_sq__link__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq link add commands' commands "$@"
}
(( $+functions[_sq__link__help__add_commands] )) ||
_sq__link__help__add_commands() {
    local commands; commands=()
    _describe -t commands 'sq link help add commands' commands "$@"
}
(( $+functions[_sq__help__key__adopt_commands] )) ||
_sq__help__key__adopt_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key adopt commands' commands "$@"
}
(( $+functions[_sq__key__adopt_commands] )) ||
_sq__key__adopt_commands() {
    local commands; commands=()
    _describe -t commands 'sq key adopt commands' commands "$@"
}
(( $+functions[_sq__key__help__adopt_commands] )) ||
_sq__key__help__adopt_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help adopt commands' commands "$@"
}
(( $+functions[_sq__armor_commands] )) ||
_sq__armor_commands() {
    local commands; commands=()
    _describe -t commands 'sq armor commands' commands "$@"
}
(( $+functions[_sq__help__armor_commands] )) ||
_sq__help__armor_commands() {
    local commands; commands=()
    _describe -t commands 'sq help armor commands' commands "$@"
}
(( $+functions[_sq__help__key__attest-certifications_commands] )) ||
_sq__help__key__attest-certifications_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key attest-certifications commands' commands "$@"
}
(( $+functions[_sq__key__attest-certifications_commands] )) ||
_sq__key__attest-certifications_commands() {
    local commands; commands=()
    _describe -t commands 'sq key attest-certifications commands' commands "$@"
}
(( $+functions[_sq__key__help__attest-certifications_commands] )) ||
_sq__key__help__attest-certifications_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help attest-certifications commands' commands "$@"
}
(( $+functions[_sq__help__wot__authenticate_commands] )) ||
_sq__help__wot__authenticate_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wot authenticate commands' commands "$@"
}
(( $+functions[_sq__wot__authenticate_commands] )) ||
_sq__wot__authenticate_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot authenticate commands' commands "$@"
}
(( $+functions[_sq__wot__help__authenticate_commands] )) ||
_sq__wot__help__authenticate_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot help authenticate commands' commands "$@"
}
(( $+functions[_sq__autocrypt_commands] )) ||
_sq__autocrypt_commands() {
    local commands; commands=(
'decode:Reads Autocrypt-encoded certificates' \
'encode-sender:Encodes a certificate into an Autocrypt header' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq autocrypt commands' commands "$@"
}
(( $+functions[_sq__help__autocrypt_commands] )) ||
_sq__help__autocrypt_commands() {
    local commands; commands=(
'decode:Reads Autocrypt-encoded certificates' \
'encode-sender:Encodes a certificate into an Autocrypt header' \
    )
    _describe -t commands 'sq help autocrypt commands' commands "$@"
}
(( $+functions[_sq__certify_commands] )) ||
_sq__certify_commands() {
    local commands; commands=()
    _describe -t commands 'sq certify commands' commands "$@"
}
(( $+functions[_sq__help__certify_commands] )) ||
_sq__help__certify_commands() {
    local commands; commands=()
    _describe -t commands 'sq help certify commands' commands "$@"
}
(( $+functions[_sq__dane_commands] )) ||
_sq__dane_commands() {
    local commands; commands=(
'get:Looks up certificates using DANE' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq dane commands' commands "$@"
}
(( $+functions[_sq__help__dane_commands] )) ||
_sq__help__dane_commands() {
    local commands; commands=(
'get:Looks up certificates using DANE' \
    )
    _describe -t commands 'sq help dane commands' commands "$@"
}
(( $+functions[_sq__dearmor_commands] )) ||
_sq__dearmor_commands() {
    local commands; commands=()
    _describe -t commands 'sq dearmor commands' commands "$@"
}
(( $+functions[_sq__help__dearmor_commands] )) ||
_sq__help__dearmor_commands() {
    local commands; commands=()
    _describe -t commands 'sq help dearmor commands' commands "$@"
}
(( $+functions[_sq__autocrypt__decode_commands] )) ||
_sq__autocrypt__decode_commands() {
    local commands; commands=()
    _describe -t commands 'sq autocrypt decode commands' commands "$@"
}
(( $+functions[_sq__autocrypt__help__decode_commands] )) ||
_sq__autocrypt__help__decode_commands() {
    local commands; commands=()
    _describe -t commands 'sq autocrypt help decode commands' commands "$@"
}
(( $+functions[_sq__help__autocrypt__decode_commands] )) ||
_sq__help__autocrypt__decode_commands() {
    local commands; commands=()
    _describe -t commands 'sq help autocrypt decode commands' commands "$@"
}
(( $+functions[_sq__decrypt_commands] )) ||
_sq__decrypt_commands() {
    local commands; commands=()
    _describe -t commands 'sq decrypt commands' commands "$@"
}
(( $+functions[_sq__help__decrypt_commands] )) ||
_sq__help__decrypt_commands() {
    local commands; commands=()
    _describe -t commands 'sq help decrypt commands' commands "$@"
}
(( $+functions[_sq__help__packet__decrypt_commands] )) ||
_sq__help__packet__decrypt_commands() {
    local commands; commands=()
    _describe -t commands 'sq help packet decrypt commands' commands "$@"
}
(( $+functions[_sq__packet__decrypt_commands] )) ||
_sq__packet__decrypt_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet decrypt commands' commands "$@"
}
(( $+functions[_sq__packet__help__decrypt_commands] )) ||
_sq__packet__help__decrypt_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet help decrypt commands' commands "$@"
}
(( $+functions[_sq__help__wkd__direct-url_commands] )) ||
_sq__help__wkd__direct-url_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wkd direct-url commands' commands "$@"
}
(( $+functions[_sq__wkd__direct-url_commands] )) ||
_sq__wkd__direct-url_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd direct-url commands' commands "$@"
}
(( $+functions[_sq__wkd__help__direct-url_commands] )) ||
_sq__wkd__help__direct-url_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd help direct-url commands' commands "$@"
}
(( $+functions[_sq__help__packet__dump_commands] )) ||
_sq__help__packet__dump_commands() {
    local commands; commands=()
    _describe -t commands 'sq help packet dump commands' commands "$@"
}
(( $+functions[_sq__packet__dump_commands] )) ||
_sq__packet__dump_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet dump commands' commands "$@"
}
(( $+functions[_sq__packet__help__dump_commands] )) ||
_sq__packet__help__dump_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet help dump commands' commands "$@"
}
(( $+functions[_sq__autocrypt__encode-sender_commands] )) ||
_sq__autocrypt__encode-sender_commands() {
    local commands; commands=()
    _describe -t commands 'sq autocrypt encode-sender commands' commands "$@"
}
(( $+functions[_sq__autocrypt__help__encode-sender_commands] )) ||
_sq__autocrypt__help__encode-sender_commands() {
    local commands; commands=()
    _describe -t commands 'sq autocrypt help encode-sender commands' commands "$@"
}
(( $+functions[_sq__help__autocrypt__encode-sender_commands] )) ||
_sq__help__autocrypt__encode-sender_commands() {
    local commands; commands=()
    _describe -t commands 'sq help autocrypt encode-sender commands' commands "$@"
}
(( $+functions[_sq__encrypt_commands] )) ||
_sq__encrypt_commands() {
    local commands; commands=()
    _describe -t commands 'sq encrypt commands' commands "$@"
}
(( $+functions[_sq__help__encrypt_commands] )) ||
_sq__help__encrypt_commands() {
    local commands; commands=()
    _describe -t commands 'sq help encrypt commands' commands "$@"
}
(( $+functions[_sq__export_commands] )) ||
_sq__export_commands() {
    local commands; commands=()
    _describe -t commands 'sq export commands' commands "$@"
}
(( $+functions[_sq__help__export_commands] )) ||
_sq__help__export_commands() {
    local commands; commands=()
    _describe -t commands 'sq help export commands' commands "$@"
}
(( $+functions[_sq__help__key__extract-cert_commands] )) ||
_sq__help__key__extract-cert_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key extract-cert commands' commands "$@"
}
(( $+functions[_sq__key__extract-cert_commands] )) ||
_sq__key__extract-cert_commands() {
    local commands; commands=()
    _describe -t commands 'sq key extract-cert commands' commands "$@"
}
(( $+functions[_sq__key__help__extract-cert_commands] )) ||
_sq__key__help__extract-cert_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help extract-cert commands' commands "$@"
}
(( $+functions[_sq__help__keyring__filter_commands] )) ||
_sq__help__keyring__filter_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyring filter commands' commands "$@"
}
(( $+functions[_sq__keyring__filter_commands] )) ||
_sq__keyring__filter_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring filter commands' commands "$@"
}
(( $+functions[_sq__keyring__help__filter_commands] )) ||
_sq__keyring__help__filter_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring help filter commands' commands "$@"
}
(( $+functions[_sq__help__key__generate_commands] )) ||
_sq__help__key__generate_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key generate commands' commands "$@"
}
(( $+functions[_sq__help__wkd__generate_commands] )) ||
_sq__help__wkd__generate_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wkd generate commands' commands "$@"
}
(( $+functions[_sq__key__generate_commands] )) ||
_sq__key__generate_commands() {
    local commands; commands=()
    _describe -t commands 'sq key generate commands' commands "$@"
}
(( $+functions[_sq__key__help__generate_commands] )) ||
_sq__key__help__generate_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help generate commands' commands "$@"
}
(( $+functions[_sq__wkd__generate_commands] )) ||
_sq__wkd__generate_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd generate commands' commands "$@"
}
(( $+functions[_sq__wkd__help__generate_commands] )) ||
_sq__wkd__help__generate_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd help generate commands' commands "$@"
}
(( $+functions[_sq__dane__get_commands] )) ||
_sq__dane__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq dane get commands' commands "$@"
}
(( $+functions[_sq__dane__help__get_commands] )) ||
_sq__dane__help__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq dane help get commands' commands "$@"
}
(( $+functions[_sq__help__dane__get_commands] )) ||
_sq__help__dane__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq help dane get commands' commands "$@"
}
(( $+functions[_sq__help__keyserver__get_commands] )) ||
_sq__help__keyserver__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyserver get commands' commands "$@"
}
(( $+functions[_sq__help__wkd__get_commands] )) ||
_sq__help__wkd__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wkd get commands' commands "$@"
}
(( $+functions[_sq__keyserver__get_commands] )) ||
_sq__keyserver__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyserver get commands' commands "$@"
}
(( $+functions[_sq__keyserver__help__get_commands] )) ||
_sq__keyserver__help__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyserver help get commands' commands "$@"
}
(( $+functions[_sq__wkd__get_commands] )) ||
_sq__wkd__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd get commands' commands "$@"
}
(( $+functions[_sq__wkd__help__get_commands] )) ||
_sq__wkd__help__get_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd help get commands' commands "$@"
}
(( $+functions[_sq__autocrypt__help_commands] )) ||
_sq__autocrypt__help_commands() {
    local commands; commands=(
'decode:Reads Autocrypt-encoded certificates' \
'encode-sender:Encodes a certificate into an Autocrypt header' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq autocrypt help commands' commands "$@"
}
(( $+functions[_sq__autocrypt__help__help_commands] )) ||
_sq__autocrypt__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq autocrypt help help commands' commands "$@"
}
(( $+functions[_sq__dane__help_commands] )) ||
_sq__dane__help_commands() {
    local commands; commands=(
'get:Looks up certificates using DANE' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq dane help commands' commands "$@"
}
(( $+functions[_sq__dane__help__help_commands] )) ||
_sq__dane__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq dane help help commands' commands "$@"
}
(( $+functions[_sq__help_commands] )) ||
_sq__help_commands() {
    local commands; commands=(
'encrypt:Encrypts a message' \
'decrypt:Decrypts a message' \
'sign:Signs messages or data files' \
'verify:Verifies signed messages or detached signatures' \
'key:Manages keys' \
'keyring:Manages collections of keys or certs' \
'import:Imports certificates into the local certificate store' \
'export:Exports certificates from the local certificate store' \
'certify:Certifies a User ID for a Certificate' \
'link:Manages authenticated certificate and User ID links' \
'wot:Command-line frontends for Sequoia' \
'autocrypt:Communicates certificates using Autocrypt' \
'keyserver:Interacts with keyservers' \
'wkd:Interacts with Web Key Directories' \
'dane:Interacts with DANE' \
'armor:Converts binary to ASCII' \
'dearmor:Converts ASCII to binary' \
'inspect:Inspects data, like file(1)' \
'packet:Low-level packet manipulation' \
'output-versions:List supported output versions' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq help commands' commands "$@"
}
(( $+functions[_sq__help__help_commands] )) ||
_sq__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq help help commands' commands "$@"
}
(( $+functions[_sq__key__help_commands] )) ||
_sq__key__help_commands() {
    local commands; commands=(
'generate:Generates a new key' \
'password:Changes password protecting secrets' \
'revoke:Revoke a certificate' \
'userid:Manages User IDs' \
'subkey:Manages Subkeys' \
'extract-cert:Converts a key to a cert' \
'attest-certifications:Attests to third-party certifications' \
'adopt:Binds keys from one certificate to another' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq key help commands' commands "$@"
}
(( $+functions[_sq__key__help__help_commands] )) ||
_sq__key__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help help commands' commands "$@"
}
(( $+functions[_sq__key__subkey__help_commands] )) ||
_sq__key__subkey__help_commands() {
    local commands; commands=(
'add:Adds a newly generated Subkey' \
'revoke:Revoke a subkey' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq key subkey help commands' commands "$@"
}
(( $+functions[_sq__key__subkey__help__help_commands] )) ||
_sq__key__subkey__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq key subkey help help commands' commands "$@"
}
(( $+functions[_sq__key__userid__help_commands] )) ||
_sq__key__userid__help_commands() {
    local commands; commands=(
'add:Adds a User ID' \
'revoke:Revoke a User ID' \
'strip:Strips a User ID' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq key userid help commands' commands "$@"
}
(( $+functions[_sq__key__userid__help__help_commands] )) ||
_sq__key__userid__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq key userid help help commands' commands "$@"
}
(( $+functions[_sq__keyring__help_commands] )) ||
_sq__keyring__help_commands() {
    local commands; commands=(
'list:Lists keys in a keyring' \
'split:Splits a keyring into individual keys' \
'join:Joins keys or keyrings into a single keyring' \
'merge:Merges keys or keyrings into a single keyring' \
'filter:Joins keys into a keyring applying a filter' \
'lint:Command-line frontends for Sequoia' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq keyring help commands' commands "$@"
}
(( $+functions[_sq__keyring__help__help_commands] )) ||
_sq__keyring__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring help help commands' commands "$@"
}
(( $+functions[_sq__keyserver__help_commands] )) ||
_sq__keyserver__help_commands() {
    local commands; commands=(
'get:Retrieves a certificate' \
'send:Sends a key' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq keyserver help commands' commands "$@"
}
(( $+functions[_sq__keyserver__help__help_commands] )) ||
_sq__keyserver__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyserver help help commands' commands "$@"
}
(( $+functions[_sq__link__help_commands] )) ||
_sq__link__help_commands() {
    local commands; commands=(
'add:Link a certificate and a User ID' \
'retract:Retracts links' \
'list:Lists links' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq link help commands' commands "$@"
}
(( $+functions[_sq__link__help__help_commands] )) ||
_sq__link__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq link help help commands' commands "$@"
}
(( $+functions[_sq__packet__help_commands] )) ||
_sq__packet__help_commands() {
    local commands; commands=(
'dump:Lists packets' \
'decrypt:Unwraps an encryption container' \
'split:Splits a message into packets' \
'join:Joins packets split across files' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq packet help commands' commands "$@"
}
(( $+functions[_sq__packet__help__help_commands] )) ||
_sq__packet__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet help help commands' commands "$@"
}
(( $+functions[_sq__wkd__help_commands] )) ||
_sq__wkd__help_commands() {
    local commands; commands=(
'generate:Generates a Web Key Directory for the given domain and keys.' \
'get:Looks up certificates in a Web Key Directory' \
'direct-url:Prints the direct Web Key Directory URL of an email address.' \
'url:Prints the advanced Web Key Directory URL of an email address.' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq wkd help commands' commands "$@"
}
(( $+functions[_sq__wkd__help__help_commands] )) ||
_sq__wkd__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd help help commands' commands "$@"
}
(( $+functions[_sq__wot__help_commands] )) ||
_sq__wot__help_commands() {
    local commands; commands=(
'authenticate:Authenticate a binding' \
'lookup:Lookup the certificates associated with a User ID' \
'identify:Identify a certificate' \
'list:List all authenticated bindings (User ID and certificate pairs)' \
'path:Verify the specified path' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq wot help commands' commands "$@"
}
(( $+functions[_sq__wot__help__help_commands] )) ||
_sq__wot__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot help help commands' commands "$@"
}
(( $+functions[_sq__help__wot__identify_commands] )) ||
_sq__help__wot__identify_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wot identify commands' commands "$@"
}
(( $+functions[_sq__wot__help__identify_commands] )) ||
_sq__wot__help__identify_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot help identify commands' commands "$@"
}
(( $+functions[_sq__wot__identify_commands] )) ||
_sq__wot__identify_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot identify commands' commands "$@"
}
(( $+functions[_sq__help__import_commands] )) ||
_sq__help__import_commands() {
    local commands; commands=()
    _describe -t commands 'sq help import commands' commands "$@"
}
(( $+functions[_sq__import_commands] )) ||
_sq__import_commands() {
    local commands; commands=()
    _describe -t commands 'sq import commands' commands "$@"
}
(( $+functions[_sq__help__inspect_commands] )) ||
_sq__help__inspect_commands() {
    local commands; commands=()
    _describe -t commands 'sq help inspect commands' commands "$@"
}
(( $+functions[_sq__inspect_commands] )) ||
_sq__inspect_commands() {
    local commands; commands=()
    _describe -t commands 'sq inspect commands' commands "$@"
}
(( $+functions[_sq__help__keyring__join_commands] )) ||
_sq__help__keyring__join_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyring join commands' commands "$@"
}
(( $+functions[_sq__help__packet__join_commands] )) ||
_sq__help__packet__join_commands() {
    local commands; commands=()
    _describe -t commands 'sq help packet join commands' commands "$@"
}
(( $+functions[_sq__keyring__help__join_commands] )) ||
_sq__keyring__help__join_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring help join commands' commands "$@"
}
(( $+functions[_sq__keyring__join_commands] )) ||
_sq__keyring__join_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring join commands' commands "$@"
}
(( $+functions[_sq__packet__help__join_commands] )) ||
_sq__packet__help__join_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet help join commands' commands "$@"
}
(( $+functions[_sq__packet__join_commands] )) ||
_sq__packet__join_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet join commands' commands "$@"
}
(( $+functions[_sq__help__key_commands] )) ||
_sq__help__key_commands() {
    local commands; commands=(
'generate:Generates a new key' \
'password:Changes password protecting secrets' \
'revoke:Revoke a certificate' \
'userid:Manages User IDs' \
'subkey:Manages Subkeys' \
'extract-cert:Converts a key to a cert' \
'attest-certifications:Attests to third-party certifications' \
'adopt:Binds keys from one certificate to another' \
    )
    _describe -t commands 'sq help key commands' commands "$@"
}
(( $+functions[_sq__key_commands] )) ||
_sq__key_commands() {
    local commands; commands=(
'generate:Generates a new key' \
'password:Changes password protecting secrets' \
'revoke:Revoke a certificate' \
'userid:Manages User IDs' \
'subkey:Manages Subkeys' \
'extract-cert:Converts a key to a cert' \
'attest-certifications:Attests to third-party certifications' \
'adopt:Binds keys from one certificate to another' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq key commands' commands "$@"
}
(( $+functions[_sq__help__keyring_commands] )) ||
_sq__help__keyring_commands() {
    local commands; commands=(
'list:Lists keys in a keyring' \
'split:Splits a keyring into individual keys' \
'join:Joins keys or keyrings into a single keyring' \
'merge:Merges keys or keyrings into a single keyring' \
'filter:Joins keys into a keyring applying a filter' \
'lint:Command-line frontends for Sequoia' \
    )
    _describe -t commands 'sq help keyring commands' commands "$@"
}
(( $+functions[_sq__keyring_commands] )) ||
_sq__keyring_commands() {
    local commands; commands=(
'list:Lists keys in a keyring' \
'split:Splits a keyring into individual keys' \
'join:Joins keys or keyrings into a single keyring' \
'merge:Merges keys or keyrings into a single keyring' \
'filter:Joins keys into a keyring applying a filter' \
'lint:Command-line frontends for Sequoia' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq keyring commands' commands "$@"
}
(( $+functions[_sq__help__keyserver_commands] )) ||
_sq__help__keyserver_commands() {
    local commands; commands=(
'get:Retrieves a certificate' \
'send:Sends a key' \
    )
    _describe -t commands 'sq help keyserver commands' commands "$@"
}
(( $+functions[_sq__keyserver_commands] )) ||
_sq__keyserver_commands() {
    local commands; commands=(
'get:Retrieves a certificate' \
'send:Sends a key' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq keyserver commands' commands "$@"
}
(( $+functions[_sq__help__link_commands] )) ||
_sq__help__link_commands() {
    local commands; commands=(
'add:Link a certificate and a User ID' \
'retract:Retracts links' \
'list:Lists links' \
    )
    _describe -t commands 'sq help link commands' commands "$@"
}
(( $+functions[_sq__link_commands] )) ||
_sq__link_commands() {
    local commands; commands=(
'add:Link a certificate and a User ID' \
'retract:Retracts links' \
'list:Lists links' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq link commands' commands "$@"
}
(( $+functions[_sq__help__keyring__lint_commands] )) ||
_sq__help__keyring__lint_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyring lint commands' commands "$@"
}
(( $+functions[_sq__keyring__help__lint_commands] )) ||
_sq__keyring__help__lint_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring help lint commands' commands "$@"
}
(( $+functions[_sq__keyring__lint_commands] )) ||
_sq__keyring__lint_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring lint commands' commands "$@"
}
(( $+functions[_sq__help__keyring__list_commands] )) ||
_sq__help__keyring__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyring list commands' commands "$@"
}
(( $+functions[_sq__help__link__list_commands] )) ||
_sq__help__link__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq help link list commands' commands "$@"
}
(( $+functions[_sq__help__wot__list_commands] )) ||
_sq__help__wot__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wot list commands' commands "$@"
}
(( $+functions[_sq__keyring__help__list_commands] )) ||
_sq__keyring__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring help list commands' commands "$@"
}
(( $+functions[_sq__keyring__list_commands] )) ||
_sq__keyring__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring list commands' commands "$@"
}
(( $+functions[_sq__link__help__list_commands] )) ||
_sq__link__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq link help list commands' commands "$@"
}
(( $+functions[_sq__link__list_commands] )) ||
_sq__link__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq link list commands' commands "$@"
}
(( $+functions[_sq__wot__help__list_commands] )) ||
_sq__wot__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot help list commands' commands "$@"
}
(( $+functions[_sq__wot__list_commands] )) ||
_sq__wot__list_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot list commands' commands "$@"
}
(( $+functions[_sq__help__wot__lookup_commands] )) ||
_sq__help__wot__lookup_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wot lookup commands' commands "$@"
}
(( $+functions[_sq__wot__help__lookup_commands] )) ||
_sq__wot__help__lookup_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot help lookup commands' commands "$@"
}
(( $+functions[_sq__wot__lookup_commands] )) ||
_sq__wot__lookup_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot lookup commands' commands "$@"
}
(( $+functions[_sq__help__keyring__merge_commands] )) ||
_sq__help__keyring__merge_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyring merge commands' commands "$@"
}
(( $+functions[_sq__keyring__help__merge_commands] )) ||
_sq__keyring__help__merge_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring help merge commands' commands "$@"
}
(( $+functions[_sq__keyring__merge_commands] )) ||
_sq__keyring__merge_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring merge commands' commands "$@"
}
(( $+functions[_sq__help__output-versions_commands] )) ||
_sq__help__output-versions_commands() {
    local commands; commands=()
    _describe -t commands 'sq help output-versions commands' commands "$@"
}
(( $+functions[_sq__output-versions_commands] )) ||
_sq__output-versions_commands() {
    local commands; commands=()
    _describe -t commands 'sq output-versions commands' commands "$@"
}
(( $+functions[_sq__help__packet_commands] )) ||
_sq__help__packet_commands() {
    local commands; commands=(
'dump:Lists packets' \
'decrypt:Unwraps an encryption container' \
'split:Splits a message into packets' \
'join:Joins packets split across files' \
    )
    _describe -t commands 'sq help packet commands' commands "$@"
}
(( $+functions[_sq__packet_commands] )) ||
_sq__packet_commands() {
    local commands; commands=(
'dump:Lists packets' \
'decrypt:Unwraps an encryption container' \
'split:Splits a message into packets' \
'join:Joins packets split across files' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq packet commands' commands "$@"
}
(( $+functions[_sq__help__key__password_commands] )) ||
_sq__help__key__password_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key password commands' commands "$@"
}
(( $+functions[_sq__key__help__password_commands] )) ||
_sq__key__help__password_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help password commands' commands "$@"
}
(( $+functions[_sq__key__password_commands] )) ||
_sq__key__password_commands() {
    local commands; commands=()
    _describe -t commands 'sq key password commands' commands "$@"
}
(( $+functions[_sq__help__wot__path_commands] )) ||
_sq__help__wot__path_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wot path commands' commands "$@"
}
(( $+functions[_sq__wot__help__path_commands] )) ||
_sq__wot__help__path_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot help path commands' commands "$@"
}
(( $+functions[_sq__wot__path_commands] )) ||
_sq__wot__path_commands() {
    local commands; commands=()
    _describe -t commands 'sq wot path commands' commands "$@"
}
(( $+functions[_sq__help__link__retract_commands] )) ||
_sq__help__link__retract_commands() {
    local commands; commands=()
    _describe -t commands 'sq help link retract commands' commands "$@"
}
(( $+functions[_sq__link__help__retract_commands] )) ||
_sq__link__help__retract_commands() {
    local commands; commands=()
    _describe -t commands 'sq link help retract commands' commands "$@"
}
(( $+functions[_sq__link__retract_commands] )) ||
_sq__link__retract_commands() {
    local commands; commands=()
    _describe -t commands 'sq link retract commands' commands "$@"
}
(( $+functions[_sq__help__key__revoke_commands] )) ||
_sq__help__key__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key revoke commands' commands "$@"
}
(( $+functions[_sq__help__key__subkey__revoke_commands] )) ||
_sq__help__key__subkey__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key subkey revoke commands' commands "$@"
}
(( $+functions[_sq__help__key__userid__revoke_commands] )) ||
_sq__help__key__userid__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key userid revoke commands' commands "$@"
}
(( $+functions[_sq__key__help__revoke_commands] )) ||
_sq__key__help__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help revoke commands' commands "$@"
}
(( $+functions[_sq__key__help__subkey__revoke_commands] )) ||
_sq__key__help__subkey__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help subkey revoke commands' commands "$@"
}
(( $+functions[_sq__key__help__userid__revoke_commands] )) ||
_sq__key__help__userid__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help userid revoke commands' commands "$@"
}
(( $+functions[_sq__key__revoke_commands] )) ||
_sq__key__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key revoke commands' commands "$@"
}
(( $+functions[_sq__key__subkey__help__revoke_commands] )) ||
_sq__key__subkey__help__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key subkey help revoke commands' commands "$@"
}
(( $+functions[_sq__key__subkey__revoke_commands] )) ||
_sq__key__subkey__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key subkey revoke commands' commands "$@"
}
(( $+functions[_sq__key__userid__help__revoke_commands] )) ||
_sq__key__userid__help__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key userid help revoke commands' commands "$@"
}
(( $+functions[_sq__key__userid__revoke_commands] )) ||
_sq__key__userid__revoke_commands() {
    local commands; commands=()
    _describe -t commands 'sq key userid revoke commands' commands "$@"
}
(( $+functions[_sq__help__keyserver__send_commands] )) ||
_sq__help__keyserver__send_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyserver send commands' commands "$@"
}
(( $+functions[_sq__keyserver__help__send_commands] )) ||
_sq__keyserver__help__send_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyserver help send commands' commands "$@"
}
(( $+functions[_sq__keyserver__send_commands] )) ||
_sq__keyserver__send_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyserver send commands' commands "$@"
}
(( $+functions[_sq__help__sign_commands] )) ||
_sq__help__sign_commands() {
    local commands; commands=()
    _describe -t commands 'sq help sign commands' commands "$@"
}
(( $+functions[_sq__sign_commands] )) ||
_sq__sign_commands() {
    local commands; commands=()
    _describe -t commands 'sq sign commands' commands "$@"
}
(( $+functions[_sq__help__keyring__split_commands] )) ||
_sq__help__keyring__split_commands() {
    local commands; commands=()
    _describe -t commands 'sq help keyring split commands' commands "$@"
}
(( $+functions[_sq__help__packet__split_commands] )) ||
_sq__help__packet__split_commands() {
    local commands; commands=()
    _describe -t commands 'sq help packet split commands' commands "$@"
}
(( $+functions[_sq__keyring__help__split_commands] )) ||
_sq__keyring__help__split_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring help split commands' commands "$@"
}
(( $+functions[_sq__keyring__split_commands] )) ||
_sq__keyring__split_commands() {
    local commands; commands=()
    _describe -t commands 'sq keyring split commands' commands "$@"
}
(( $+functions[_sq__packet__help__split_commands] )) ||
_sq__packet__help__split_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet help split commands' commands "$@"
}
(( $+functions[_sq__packet__split_commands] )) ||
_sq__packet__split_commands() {
    local commands; commands=()
    _describe -t commands 'sq packet split commands' commands "$@"
}
(( $+functions[_sq__help__key__userid__strip_commands] )) ||
_sq__help__key__userid__strip_commands() {
    local commands; commands=()
    _describe -t commands 'sq help key userid strip commands' commands "$@"
}
(( $+functions[_sq__key__help__userid__strip_commands] )) ||
_sq__key__help__userid__strip_commands() {
    local commands; commands=()
    _describe -t commands 'sq key help userid strip commands' commands "$@"
}
(( $+functions[_sq__key__userid__help__strip_commands] )) ||
_sq__key__userid__help__strip_commands() {
    local commands; commands=()
    _describe -t commands 'sq key userid help strip commands' commands "$@"
}
(( $+functions[_sq__key__userid__strip_commands] )) ||
_sq__key__userid__strip_commands() {
    local commands; commands=()
    _describe -t commands 'sq key userid strip commands' commands "$@"
}
(( $+functions[_sq__help__key__subkey_commands] )) ||
_sq__help__key__subkey_commands() {
    local commands; commands=(
'add:Adds a newly generated Subkey' \
'revoke:Revoke a subkey' \
    )
    _describe -t commands 'sq help key subkey commands' commands "$@"
}
(( $+functions[_sq__key__help__subkey_commands] )) ||
_sq__key__help__subkey_commands() {
    local commands; commands=(
'add:Adds a newly generated Subkey' \
'revoke:Revoke a subkey' \
    )
    _describe -t commands 'sq key help subkey commands' commands "$@"
}
(( $+functions[_sq__key__subkey_commands] )) ||
_sq__key__subkey_commands() {
    local commands; commands=(
'add:Adds a newly generated Subkey' \
'revoke:Revoke a subkey' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq key subkey commands' commands "$@"
}
(( $+functions[_sq__help__wkd__url_commands] )) ||
_sq__help__wkd__url_commands() {
    local commands; commands=()
    _describe -t commands 'sq help wkd url commands' commands "$@"
}
(( $+functions[_sq__wkd__help__url_commands] )) ||
_sq__wkd__help__url_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd help url commands' commands "$@"
}
(( $+functions[_sq__wkd__url_commands] )) ||
_sq__wkd__url_commands() {
    local commands; commands=()
    _describe -t commands 'sq wkd url commands' commands "$@"
}
(( $+functions[_sq__help__key__userid_commands] )) ||
_sq__help__key__userid_commands() {
    local commands; commands=(
'add:Adds a User ID' \
'revoke:Revoke a User ID' \
'strip:Strips a User ID' \
    )
    _describe -t commands 'sq help key userid commands' commands "$@"
}
(( $+functions[_sq__key__help__userid_commands] )) ||
_sq__key__help__userid_commands() {
    local commands; commands=(
'add:Adds a User ID' \
'revoke:Revoke a User ID' \
'strip:Strips a User ID' \
    )
    _describe -t commands 'sq key help userid commands' commands "$@"
}
(( $+functions[_sq__key__userid_commands] )) ||
_sq__key__userid_commands() {
    local commands; commands=(
'add:Adds a User ID' \
'revoke:Revoke a User ID' \
'strip:Strips a User ID' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq key userid commands' commands "$@"
}
(( $+functions[_sq__help__verify_commands] )) ||
_sq__help__verify_commands() {
    local commands; commands=()
    _describe -t commands 'sq help verify commands' commands "$@"
}
(( $+functions[_sq__verify_commands] )) ||
_sq__verify_commands() {
    local commands; commands=()
    _describe -t commands 'sq verify commands' commands "$@"
}
(( $+functions[_sq__help__wkd_commands] )) ||
_sq__help__wkd_commands() {
    local commands; commands=(
'generate:Generates a Web Key Directory for the given domain and keys.' \
'get:Looks up certificates in a Web Key Directory' \
'direct-url:Prints the direct Web Key Directory URL of an email address.' \
'url:Prints the advanced Web Key Directory URL of an email address.' \
    )
    _describe -t commands 'sq help wkd commands' commands "$@"
}
(( $+functions[_sq__wkd_commands] )) ||
_sq__wkd_commands() {
    local commands; commands=(
'generate:Generates a Web Key Directory for the given domain and keys.' \
'get:Looks up certificates in a Web Key Directory' \
'direct-url:Prints the direct Web Key Directory URL of an email address.' \
'url:Prints the advanced Web Key Directory URL of an email address.' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq wkd commands' commands "$@"
}
(( $+functions[_sq__help__wot_commands] )) ||
_sq__help__wot_commands() {
    local commands; commands=(
'authenticate:Authenticate a binding' \
'lookup:Lookup the certificates associated with a User ID' \
'identify:Identify a certificate' \
'list:List all authenticated bindings (User ID and certificate pairs)' \
'path:Verify the specified path' \
    )
    _describe -t commands 'sq help wot commands' commands "$@"
}
(( $+functions[_sq__wot_commands] )) ||
_sq__wot_commands() {
    local commands; commands=(
'authenticate:Authenticate a binding' \
'lookup:Lookup the certificates associated with a User ID' \
'identify:Identify a certificate' \
'list:List all authenticated bindings (User ID and certificate pairs)' \
'path:Verify the specified path' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'sq wot commands' commands "$@"
}

_sq "$@"
