# AUTOMATICALLY GENERATED by `shtab`

_shtab_blocksatcli_subparsers=('config' 'cfg' 'instructions' 'dependencies' 'deps' 'usb' 'standalone' 'reverse-path' 'rp' 'firewall' 'gqrx-conf' 'gqrx' 'bitcoin-conf' 'btc' 'sdr' 'api' 'sat-ip' 'reporting')
_shtab_blocksatcli_config_subparsers=('show' 'channel')
_shtab_blocksatcli_cfg_subparsers=('show' 'channel')
_shtab_blocksatcli_dependencies_subparsers=('install' 'update' 'upgrade' 'tbs-drivers')
_shtab_blocksatcli_deps_subparsers=('install' 'update' 'upgrade' 'tbs-drivers')
_shtab_blocksatcli_usb_subparsers=('launch' 'config' 'cfg' 'list' 'ls' 'remove' 'rm')
_shtab_blocksatcli_standalone_subparsers=('config' 'cfg' 'monitor')
_shtab_blocksatcli_sdr_subparsers=('rec' 'record')
_shtab_blocksatcli_api_subparsers=('config' 'cfg' 'send' 'tx' 'listen' 'rx' 'bump' 'delete' 'del' 'demo-rx' 'get' 'list')
_shtab_blocksatcli_sat_ip_subparsers=('list' 'ls')
_shtab_blocksatcli_reporting_subparsers=('info' 'password')

_shtab_blocksatcli_option_strings=('-h' '--help' '-d' '--debug' '--cfg' '--cfg-dir' '--utc' '-v' '--version')
_shtab_blocksatcli_config_option_strings=('-h' '--help')
_shtab_blocksatcli_config_show_option_strings=('-h' '--help' '--json')
_shtab_blocksatcli_config_channel_option_strings=('-h' '--help')
_shtab_blocksatcli_cfg_option_strings=('-h' '--help')
_shtab_blocksatcli_cfg_show_option_strings=('-h' '--help' '--json')
_shtab_blocksatcli_cfg_channel_option_strings=('-h' '--help')
_shtab_blocksatcli_instructions_option_strings=('-h' '--help')
_shtab_blocksatcli_dependencies_option_strings=('-h' '--help' '-y' '--yes' '--dry-run')
_shtab_blocksatcli_dependencies_install_option_strings=('-h' '--help' '--target' '--btc')
_shtab_blocksatcli_dependencies_update_option_strings=('-h' '--help' '--target' '--btc')
_shtab_blocksatcli_dependencies_upgrade_option_strings=('-h' '--help' '--target' '--btc')
_shtab_blocksatcli_dependencies_tbs_drivers_option_strings=('-h' '--help' '--clean' '--disable' '--backport-disable')
_shtab_blocksatcli_deps_option_strings=('-h' '--help' '-y' '--yes' '--dry-run')
_shtab_blocksatcli_deps_install_option_strings=('-h' '--help' '--target' '--btc')
_shtab_blocksatcli_deps_update_option_strings=('-h' '--help' '--target' '--btc')
_shtab_blocksatcli_deps_upgrade_option_strings=('-h' '--help' '--target' '--btc')
_shtab_blocksatcli_deps_tbs_drivers_option_strings=('-h' '--help' '--clean' '--disable' '--backport-disable')
_shtab_blocksatcli_usb_option_strings=('-h' '--help' '-a' '--adapter' '-f' '--frontend')
_shtab_blocksatcli_usb_launch_option_strings=('-h' '--help' '-l' '--lnb' '-r' '--record-file' '-t' '--timeout' '-m' '--monitor' '-y' '--yes' '--log-scrolling' '--log-file' '--log-interval' '--monitoring-server' '--monitoring-port' '--report' '--report-dest' '--report-bs' '--report-hostname' '--report-cert' '--report-key' '--report-gnupghome' '--report-passphrase')
_shtab_blocksatcli_usb_config_option_strings=('-h' '--help' '-U' '--ule' '--skip-rp' '--skip-firewall' '--pid' '-i' '--ip' '-y' '--yes' '--dry-run')
_shtab_blocksatcli_usb_cfg_option_strings=('-h' '--help' '-U' '--ule' '--skip-rp' '--skip-firewall' '--pid' '-i' '--ip' '-y' '--yes' '--dry-run')
_shtab_blocksatcli_usb_list_option_strings=('-h' '--help')
_shtab_blocksatcli_usb_ls_option_strings=('-h' '--help')
_shtab_blocksatcli_usb_remove_option_strings=('-h' '--help' '--all' '--dry-run')
_shtab_blocksatcli_usb_rm_option_strings=('-h' '--help' '--all' '--dry-run')
_shtab_blocksatcli_standalone_option_strings=('-h' '--help' '-a' '--address' '-p' '--port' '-d' '--demod')
_shtab_blocksatcli_standalone_config_option_strings=('-h' '--help' '-i' '--interface' '-y' '--yes' '--host-only' '--rx-only' '--dry-run' '--freq-corr')
_shtab_blocksatcli_standalone_cfg_option_strings=('-h' '--help' '-i' '--interface' '-y' '--yes' '--host-only' '--rx-only' '--dry-run' '--freq-corr')
_shtab_blocksatcli_standalone_monitor_option_strings=('-h' '--help' '--log-scrolling' '--log-file' '--log-interval' '--monitoring-server' '--monitoring-port' '--report' '--report-dest' '--report-bs' '--report-hostname' '--report-cert' '--report-key' '--report-gnupghome' '--report-passphrase')
_shtab_blocksatcli_reverse_path_option_strings=('-h' '--help' '-i' '--interface' '-y' '--yes' '--dry-run')
_shtab_blocksatcli_rp_option_strings=('-h' '--help' '-i' '--interface' '-y' '--yes' '--dry-run')
_shtab_blocksatcli_firewall_option_strings=('-h' '--help' '-i' '--interface' '--standalone' '-y' '--yes' '--dry-run')
_shtab_blocksatcli_gqrx_conf_option_strings=('-h' '--help' '-p' '--path' '-y' '--yes')
_shtab_blocksatcli_gqrx_option_strings=('-h' '--help' '-p' '--path' '-y' '--yes')
_shtab_blocksatcli_bitcoin_conf_option_strings=('-h' '--help' '-d' '--datadir' '--stdout' '--concat')
_shtab_blocksatcli_btc_option_strings=('-h' '--help' '-d' '--datadir' '--stdout' '--concat')
_shtab_blocksatcli_sdr_option_strings=('-h' '--help' '-y' '--yes' '--log-scrolling' '--log-file' '--log-interval' '--monitoring-server' '--monitoring-port' '--report' '--report-dest' '--report-bs' '--report-hostname' '--report-cert' '--report-key' '--report-gnupghome' '--report-passphrase' '--sps' '--rtl-idx' '-g' '--gain' '-f' '--iq-file' '--implementation' '--impl' '-d' '--debug-demod' '--gui' '--derotate' '-m' '--modcod' '--ldpc-iterations' '-n' '--n-helpers' '-v' '--verbose' '--fastlock' '--rrc-rej' '--ldpc-dec' '--ldpc-bf' '--pipe-size' '--leandvb-opts' '--dvbs2rx-opts' '-l' '--local-address' '--tsp-buffer-size-mb' '--tsp-max-flushed-packets' '--tsp-max-input-packets' '--ts-monitor-bitrate' '--ts-monitor-sequence' '--ts-file' '--ts-dump' '--ts-dump-opts' '--ts-analysis' '--no-tsp')
_shtab_blocksatcli_sdr_rec_option_strings=('-h' '--help' '-f' '--iq-file')
_shtab_blocksatcli_sdr_record_option_strings=('-h' '--help' '-f' '--iq-file')
_shtab_blocksatcli_api_option_strings=('-h' '--help' '-g' '--gnupghome' '--net' '-s' '--server' '--tls-cert' '--tls-key')
_shtab_blocksatcli_api_config_option_strings=('-h' '--help' '-v' '--verbose')
_shtab_blocksatcli_api_cfg_option_strings=('-h' '--help' '-v' '--verbose')
_shtab_blocksatcli_api_send_option_strings=('-h' '--help' '-f' '--file' '-m' '--message' '--bid' '-c' '--channel' '--regions' '-r' '--recipient' '--trust' '--sign' '--sign-key' '--send-raw' '--plaintext' '--fec' '--fec-overhead' '--no-password' '--invoice-exec' '--no-wait')
_shtab_blocksatcli_api_tx_option_strings=('-h' '--help' '-f' '--file' '-m' '--message' '--bid' '-c' '--channel' '--regions' '-r' '--recipient' '--trust' '--sign' '--sign-key' '--send-raw' '--plaintext' '--fec' '--fec-overhead' '--no-password' '--invoice-exec' '--no-wait')
_shtab_blocksatcli_api_listen_option_strings=('-h' '--help' '--sock-addr' '-i' '--interface' '-d' '--demo' '-c' '--channel' '--save-raw' '--plaintext' '--sender' '--no-password' '--echo' '--stdout' '--no-save' '--exec' '--save-dir' '--insecure' '--gossip' '--btc-src' '--historian-path' '--historian-destination' '-r' '--region')
_shtab_blocksatcli_api_rx_option_strings=('-h' '--help' '--sock-addr' '-i' '--interface' '-d' '--demo' '-c' '--channel' '--save-raw' '--plaintext' '--sender' '--no-password' '--echo' '--stdout' '--no-save' '--exec' '--save-dir' '--insecure' '--gossip' '--btc-src' '--historian-path' '--historian-destination' '-r' '--region')
_shtab_blocksatcli_api_bump_option_strings=('-h' '--help' '--bid' '-u' '--uuid' '-a' '--auth-token')
_shtab_blocksatcli_api_delete_option_strings=('-h' '--help' '-u' '--uuid' '-a' '--auth-token')
_shtab_blocksatcli_api_del_option_strings=('-h' '--help' '-u' '--uuid' '-a' '--auth-token')
_shtab_blocksatcli_api_demo_rx_option_strings=('-h' '--help' '--poll' '-d' '--dest' '-i' '--interface' '-c' '--channel' '-r' '--regions' '--if-by-region' '--ttl' '--dscp' '--bitrate' '-e' '--event')
_shtab_blocksatcli_api_get_option_strings=('-h' '--help' '-u' '--uuid' '-a' '--auth-token')
_shtab_blocksatcli_api_list_option_strings=('-h' '--help' '-c' '--channel' '--status' '--queue' '--limit')
_shtab_blocksatcli_sat_ip_option_strings=('-h' '--help' '-a' '--addr' '-m' '--modcod' '--freq-corr' '-u' '--username' '-p' '--password' '--ssdp-src-port' '--ssdp-net-if' '--no-fe-monitoring' '--ignore-http-errors' '-l' '--local-address' '--tsp-buffer-size-mb' '--tsp-max-flushed-packets' '--tsp-max-input-packets' '--ts-monitor-bitrate' '--ts-monitor-sequence' '--ts-file' '--ts-dump' '--ts-dump-opts' '--ts-analysis' '--log-scrolling' '--log-file' '--log-interval' '--monitoring-server' '--monitoring-port' '--report' '--report-dest' '--report-bs' '--report-hostname' '--report-cert' '--report-key' '--report-gnupghome' '--report-passphrase')
_shtab_blocksatcli_sat_ip_list_option_strings=('-h' '--help')
_shtab_blocksatcli_sat_ip_ls_option_strings=('-h' '--help')
_shtab_blocksatcli_reporting_option_strings=('-h' '--help' '--server' '--gnupghome' '--gpghome' '--passphrase')
_shtab_blocksatcli_reporting_info_option_strings=('-h' '--help' '--json')
_shtab_blocksatcli_reporting_password_option_strings=('-h' '--help')



_shtab_blocksatcli_pos_0_choices=('config' 'cfg' 'instructions' 'dependencies' 'deps' 'usb' 'standalone' 'reverse-path' 'rp' 'firewall' 'gqrx-conf' 'gqrx' 'bitcoin-conf' 'btc' 'sdr' 'api' 'sat-ip' 'reporting')
_shtab_blocksatcli_config_pos_0_choices=('show' 'channel')
_shtab_blocksatcli_cfg_pos_0_choices=('show' 'channel')
_shtab_blocksatcli_dependencies_pos_0_choices=('install' 'update' 'upgrade' 'tbs-drivers')
_shtab_blocksatcli_dependencies_install___target_choices=('sdr' 'usb' 'standalone' 'sat-ip')
_shtab_blocksatcli_dependencies_update___target_choices=('sdr' 'usb' 'standalone' 'sat-ip')
_shtab_blocksatcli_dependencies_upgrade___target_choices=('sdr' 'usb' 'standalone' 'sat-ip')
_shtab_blocksatcli_deps_pos_0_choices=('install' 'update' 'upgrade' 'tbs-drivers')
_shtab_blocksatcli_deps_install___target_choices=('sdr' 'usb' 'standalone' 'sat-ip')
_shtab_blocksatcli_deps_update___target_choices=('sdr' 'usb' 'standalone' 'sat-ip')
_shtab_blocksatcli_deps_upgrade___target_choices=('sdr' 'usb' 'standalone' 'sat-ip')
_shtab_blocksatcli_usb_pos_0_choices=('launch' 'config' 'cfg' 'list' 'ls' 'remove' 'rm')
_shtab_blocksatcli_usb_launch__l_choices=('UNIVERSAL' 'DBS' 'EXTENDED' 'STANDARD' 'L10700' 'L10750' 'L11300' 'ENHANCED' 'QPH031' 'C-BAND' 'C-MULT' 'DISHPRO' '110BS' 'STACKED-BRASILSAT' 'OI-BRASILSAT')
_shtab_blocksatcli_usb_launch___lnb_choices=('UNIVERSAL' 'DBS' 'EXTENDED' 'STANDARD' 'L10700' 'L10750' 'L11300' 'ENHANCED' 'QPH031' 'C-BAND' 'C-MULT' 'DISHPRO' '110BS' 'STACKED-BRASILSAT' 'OI-BRASILSAT')
_shtab_blocksatcli_standalone_pos_0_choices=('config' 'cfg' 'monitor')
_shtab_blocksatcli_standalone__d_choices=('1' '2')
_shtab_blocksatcli_standalone___demod_choices=('1' '2')
_shtab_blocksatcli_sdr_pos_0_choices=('rec' 'record')
_shtab_blocksatcli_sdr___implementation_choices=('leandvb' 'gr-dvbs2rx')
_shtab_blocksatcli_sdr___impl_choices=('leandvb' 'gr-dvbs2rx')
_shtab_blocksatcli_sdr__m_choices=('qpsk1/4' 'qpsk1/3' 'qpsk2/5' 'qpsk1/2' 'qpsk3/5' 'qpsk2/3' 'qpsk3/4' 'qpsk4/5' 'qpsk5/6' 'qpsk8/9' 'qpsk9/10' '8psk3/5' '8psk2/3' '8psk3/4' '8psk5/6' '8psk8/9' '8psk9/10' '16apsk2/3' '16apsk3/4' '16apsk4/5' '16apsk5/6' '16apsk8/9' '16apsk9/10' '32apsk3/4' '32apsk4/5' '32apsk5/6' '32apsk8/9' '32apsk9/10')
_shtab_blocksatcli_sdr___modcod_choices=('qpsk1/4' 'qpsk1/3' 'qpsk2/5' 'qpsk1/2' 'qpsk3/5' 'qpsk2/3' 'qpsk3/4' 'qpsk4/5' 'qpsk5/6' 'qpsk8/9' 'qpsk9/10' '8psk3/5' '8psk2/3' '8psk3/4' '8psk5/6' '8psk8/9' '8psk9/10' '16apsk2/3' '16apsk3/4' '16apsk4/5' '16apsk5/6' '16apsk8/9' '16apsk9/10' '32apsk3/4' '32apsk4/5' '32apsk5/6' '32apsk8/9' '32apsk9/10')
_shtab_blocksatcli_sdr___ldpc_dec_choices=('int' 'ext')
_shtab_blocksatcli_api_pos_0_choices=('config' 'cfg' 'send' 'tx' 'listen' 'rx' 'bump' 'delete' 'del' 'demo-rx' 'get' 'list')
_shtab_blocksatcli_api___net_choices=('main' 'test')
_shtab_blocksatcli_api_send__c_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_send___channel_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_send___regions_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_tx__c_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_tx___channel_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_tx___regions_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_listen__c_choices=('0' '1' '3' '4' '5')
_shtab_blocksatcli_api_listen___channel_choices=('0' '1' '3' '4' '5')
_shtab_blocksatcli_api_listen__r_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_listen___region_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_rx__c_choices=('0' '1' '3' '4' '5')
_shtab_blocksatcli_api_rx___channel_choices=('0' '1' '3' '4' '5')
_shtab_blocksatcli_api_rx__r_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_rx___region_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_demo_rx__c_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_demo_rx___channel_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_demo_rx__r_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_demo_rx___regions_choices=('0' '2' '3' '4' '5')
_shtab_blocksatcli_api_demo_rx__e_choices=('transmitting' 'sent')
_shtab_blocksatcli_api_demo_rx___event_choices=('transmitting' 'sent')
_shtab_blocksatcli_api_list__c_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_list___channel_choices=('1' '3' '4' '5')
_shtab_blocksatcli_api_list___status_choices=('pending' 'paid' 'transmitting' 'sent' 'received' 'cancelled' 'expired' 'confirming')
_shtab_blocksatcli_api_list___queue_choices=('pending' 'paid' 'transmitting' 'confirming' 'queued' 'sent' 'rx-pending' 'received' 'retransmitting')
_shtab_blocksatcli_sat_ip_pos_0_choices=('list' 'ls')
_shtab_blocksatcli_sat_ip__m_choices=('qpsk1/4' 'qpsk1/3' 'qpsk2/5' 'qpsk1/2' 'qpsk3/5' 'qpsk2/3' 'qpsk3/4' 'qpsk4/5' 'qpsk5/6' 'qpsk8/9' 'qpsk9/10' '8psk3/5' '8psk2/3' '8psk3/4' '8psk5/6' '8psk8/9' '8psk9/10' '16apsk2/3' '16apsk3/4' '16apsk4/5' '16apsk5/6' '16apsk8/9' '16apsk9/10' '32apsk3/4' '32apsk4/5' '32apsk5/6' '32apsk8/9' '32apsk9/10')
_shtab_blocksatcli_sat_ip___modcod_choices=('qpsk1/4' 'qpsk1/3' 'qpsk2/5' 'qpsk1/2' 'qpsk3/5' 'qpsk2/3' 'qpsk3/4' 'qpsk4/5' 'qpsk5/6' 'qpsk8/9' 'qpsk9/10' '8psk3/5' '8psk2/3' '8psk3/4' '8psk5/6' '8psk8/9' '8psk9/10' '16apsk2/3' '16apsk3/4' '16apsk4/5' '16apsk5/6' '16apsk8/9' '16apsk9/10' '32apsk3/4' '32apsk4/5' '32apsk5/6' '32apsk8/9' '32apsk9/10')
_shtab_blocksatcli_reporting_pos_0_choices=('info' 'password')

_shtab_blocksatcli_pos_0_nargs=A...
_shtab_blocksatcli__h_nargs=0
_shtab_blocksatcli___help_nargs=0
_shtab_blocksatcli__d_nargs=0
_shtab_blocksatcli___debug_nargs=0
_shtab_blocksatcli___utc_nargs=0
_shtab_blocksatcli__v_nargs=0
_shtab_blocksatcli___version_nargs=0
_shtab_blocksatcli_config_pos_0_nargs=A...
_shtab_blocksatcli_config__h_nargs=0
_shtab_blocksatcli_config___help_nargs=0
_shtab_blocksatcli_config_show__h_nargs=0
_shtab_blocksatcli_config_show___help_nargs=0
_shtab_blocksatcli_config_show___json_nargs=0
_shtab_blocksatcli_config_channel__h_nargs=0
_shtab_blocksatcli_config_channel___help_nargs=0
_shtab_blocksatcli_cfg_pos_0_nargs=A...
_shtab_blocksatcli_cfg__h_nargs=0
_shtab_blocksatcli_cfg___help_nargs=0
_shtab_blocksatcli_cfg_show__h_nargs=0
_shtab_blocksatcli_cfg_show___help_nargs=0
_shtab_blocksatcli_cfg_show___json_nargs=0
_shtab_blocksatcli_cfg_channel__h_nargs=0
_shtab_blocksatcli_cfg_channel___help_nargs=0
_shtab_blocksatcli_instructions__h_nargs=0
_shtab_blocksatcli_instructions___help_nargs=0
_shtab_blocksatcli_dependencies_pos_0_nargs=A...
_shtab_blocksatcli_dependencies__h_nargs=0
_shtab_blocksatcli_dependencies___help_nargs=0
_shtab_blocksatcli_dependencies__y_nargs=0
_shtab_blocksatcli_dependencies___yes_nargs=0
_shtab_blocksatcli_dependencies___dry_run_nargs=0
_shtab_blocksatcli_dependencies_install__h_nargs=0
_shtab_blocksatcli_dependencies_install___help_nargs=0
_shtab_blocksatcli_dependencies_install___btc_nargs=0
_shtab_blocksatcli_dependencies_update__h_nargs=0
_shtab_blocksatcli_dependencies_update___help_nargs=0
_shtab_blocksatcli_dependencies_update___btc_nargs=0
_shtab_blocksatcli_dependencies_upgrade__h_nargs=0
_shtab_blocksatcli_dependencies_upgrade___help_nargs=0
_shtab_blocksatcli_dependencies_upgrade___btc_nargs=0
_shtab_blocksatcli_dependencies_tbs_drivers__h_nargs=0
_shtab_blocksatcli_dependencies_tbs_drivers___help_nargs=0
_shtab_blocksatcli_dependencies_tbs_drivers___clean_nargs=0
_shtab_blocksatcli_dependencies_tbs_drivers___disable_nargs=+
_shtab_blocksatcli_dependencies_tbs_drivers___backport_disable_nargs=+
_shtab_blocksatcli_deps_pos_0_nargs=A...
_shtab_blocksatcli_deps__h_nargs=0
_shtab_blocksatcli_deps___help_nargs=0
_shtab_blocksatcli_deps__y_nargs=0
_shtab_blocksatcli_deps___yes_nargs=0
_shtab_blocksatcli_deps___dry_run_nargs=0
_shtab_blocksatcli_deps_install__h_nargs=0
_shtab_blocksatcli_deps_install___help_nargs=0
_shtab_blocksatcli_deps_install___btc_nargs=0
_shtab_blocksatcli_deps_update__h_nargs=0
_shtab_blocksatcli_deps_update___help_nargs=0
_shtab_blocksatcli_deps_update___btc_nargs=0
_shtab_blocksatcli_deps_upgrade__h_nargs=0
_shtab_blocksatcli_deps_upgrade___help_nargs=0
_shtab_blocksatcli_deps_upgrade___btc_nargs=0
_shtab_blocksatcli_deps_tbs_drivers__h_nargs=0
_shtab_blocksatcli_deps_tbs_drivers___help_nargs=0
_shtab_blocksatcli_deps_tbs_drivers___clean_nargs=0
_shtab_blocksatcli_deps_tbs_drivers___disable_nargs=+
_shtab_blocksatcli_deps_tbs_drivers___backport_disable_nargs=+
_shtab_blocksatcli_usb_pos_0_nargs=A...
_shtab_blocksatcli_usb__h_nargs=0
_shtab_blocksatcli_usb___help_nargs=0
_shtab_blocksatcli_usb_launch__h_nargs=0
_shtab_blocksatcli_usb_launch___help_nargs=0
_shtab_blocksatcli_usb_launch__m_nargs=0
_shtab_blocksatcli_usb_launch___monitor_nargs=0
_shtab_blocksatcli_usb_launch__y_nargs=0
_shtab_blocksatcli_usb_launch___yes_nargs=0
_shtab_blocksatcli_usb_launch___log_scrolling_nargs=0
_shtab_blocksatcli_usb_launch___log_file_nargs=0
_shtab_blocksatcli_usb_launch___monitoring_server_nargs=0
_shtab_blocksatcli_usb_launch___report_nargs=0
_shtab_blocksatcli_usb_launch___report_bs_nargs=0
_shtab_blocksatcli_usb_config__h_nargs=0
_shtab_blocksatcli_usb_config___help_nargs=0
_shtab_blocksatcli_usb_config__U_nargs=0
_shtab_blocksatcli_usb_config___ule_nargs=0
_shtab_blocksatcli_usb_config___skip_rp_nargs=0
_shtab_blocksatcli_usb_config___skip_firewall_nargs=0
_shtab_blocksatcli_usb_config___pid_nargs=+
_shtab_blocksatcli_usb_config__i_nargs=+
_shtab_blocksatcli_usb_config___ip_nargs=+
_shtab_blocksatcli_usb_config__y_nargs=0
_shtab_blocksatcli_usb_config___yes_nargs=0
_shtab_blocksatcli_usb_config___dry_run_nargs=0
_shtab_blocksatcli_usb_cfg__h_nargs=0
_shtab_blocksatcli_usb_cfg___help_nargs=0
_shtab_blocksatcli_usb_cfg__U_nargs=0
_shtab_blocksatcli_usb_cfg___ule_nargs=0
_shtab_blocksatcli_usb_cfg___skip_rp_nargs=0
_shtab_blocksatcli_usb_cfg___skip_firewall_nargs=0
_shtab_blocksatcli_usb_cfg___pid_nargs=+
_shtab_blocksatcli_usb_cfg__i_nargs=+
_shtab_blocksatcli_usb_cfg___ip_nargs=+
_shtab_blocksatcli_usb_cfg__y_nargs=0
_shtab_blocksatcli_usb_cfg___yes_nargs=0
_shtab_blocksatcli_usb_cfg___dry_run_nargs=0
_shtab_blocksatcli_usb_list__h_nargs=0
_shtab_blocksatcli_usb_list___help_nargs=0
_shtab_blocksatcli_usb_ls__h_nargs=0
_shtab_blocksatcli_usb_ls___help_nargs=0
_shtab_blocksatcli_usb_remove__h_nargs=0
_shtab_blocksatcli_usb_remove___help_nargs=0
_shtab_blocksatcli_usb_remove___all_nargs=0
_shtab_blocksatcli_usb_remove___dry_run_nargs=0
_shtab_blocksatcli_usb_rm__h_nargs=0
_shtab_blocksatcli_usb_rm___help_nargs=0
_shtab_blocksatcli_usb_rm___all_nargs=0
_shtab_blocksatcli_usb_rm___dry_run_nargs=0
_shtab_blocksatcli_standalone_pos_0_nargs=A...
_shtab_blocksatcli_standalone__h_nargs=0
_shtab_blocksatcli_standalone___help_nargs=0
_shtab_blocksatcli_standalone_config__h_nargs=0
_shtab_blocksatcli_standalone_config___help_nargs=0
_shtab_blocksatcli_standalone_config__y_nargs=0
_shtab_blocksatcli_standalone_config___yes_nargs=0
_shtab_blocksatcli_standalone_config___host_only_nargs=0
_shtab_blocksatcli_standalone_config___rx_only_nargs=0
_shtab_blocksatcli_standalone_config___dry_run_nargs=0
_shtab_blocksatcli_standalone_cfg__h_nargs=0
_shtab_blocksatcli_standalone_cfg___help_nargs=0
_shtab_blocksatcli_standalone_cfg__y_nargs=0
_shtab_blocksatcli_standalone_cfg___yes_nargs=0
_shtab_blocksatcli_standalone_cfg___host_only_nargs=0
_shtab_blocksatcli_standalone_cfg___rx_only_nargs=0
_shtab_blocksatcli_standalone_cfg___dry_run_nargs=0
_shtab_blocksatcli_standalone_monitor__h_nargs=0
_shtab_blocksatcli_standalone_monitor___help_nargs=0
_shtab_blocksatcli_standalone_monitor___log_scrolling_nargs=0
_shtab_blocksatcli_standalone_monitor___log_file_nargs=0
_shtab_blocksatcli_standalone_monitor___monitoring_server_nargs=0
_shtab_blocksatcli_standalone_monitor___report_nargs=0
_shtab_blocksatcli_standalone_monitor___report_bs_nargs=0
_shtab_blocksatcli_reverse_path__h_nargs=0
_shtab_blocksatcli_reverse_path___help_nargs=0
_shtab_blocksatcli_reverse_path__y_nargs=0
_shtab_blocksatcli_reverse_path___yes_nargs=0
_shtab_blocksatcli_reverse_path___dry_run_nargs=0
_shtab_blocksatcli_rp__h_nargs=0
_shtab_blocksatcli_rp___help_nargs=0
_shtab_blocksatcli_rp__y_nargs=0
_shtab_blocksatcli_rp___yes_nargs=0
_shtab_blocksatcli_rp___dry_run_nargs=0
_shtab_blocksatcli_firewall__h_nargs=0
_shtab_blocksatcli_firewall___help_nargs=0
_shtab_blocksatcli_firewall___standalone_nargs=0
_shtab_blocksatcli_firewall__y_nargs=0
_shtab_blocksatcli_firewall___yes_nargs=0
_shtab_blocksatcli_firewall___dry_run_nargs=0
_shtab_blocksatcli_gqrx_conf__h_nargs=0
_shtab_blocksatcli_gqrx_conf___help_nargs=0
_shtab_blocksatcli_gqrx_conf__y_nargs=0
_shtab_blocksatcli_gqrx_conf___yes_nargs=0
_shtab_blocksatcli_gqrx__h_nargs=0
_shtab_blocksatcli_gqrx___help_nargs=0
_shtab_blocksatcli_gqrx__y_nargs=0
_shtab_blocksatcli_gqrx___yes_nargs=0
_shtab_blocksatcli_bitcoin_conf__h_nargs=0
_shtab_blocksatcli_bitcoin_conf___help_nargs=0
_shtab_blocksatcli_bitcoin_conf___stdout_nargs=0
_shtab_blocksatcli_bitcoin_conf___concat_nargs=0
_shtab_blocksatcli_btc__h_nargs=0
_shtab_blocksatcli_btc___help_nargs=0
_shtab_blocksatcli_btc___stdout_nargs=0
_shtab_blocksatcli_btc___concat_nargs=0
_shtab_blocksatcli_sdr_pos_0_nargs=A...
_shtab_blocksatcli_sdr__h_nargs=0
_shtab_blocksatcli_sdr___help_nargs=0
_shtab_blocksatcli_sdr__y_nargs=0
_shtab_blocksatcli_sdr___yes_nargs=0
_shtab_blocksatcli_sdr___log_scrolling_nargs=0
_shtab_blocksatcli_sdr___log_file_nargs=0
_shtab_blocksatcli_sdr___monitoring_server_nargs=0
_shtab_blocksatcli_sdr___report_nargs=0
_shtab_blocksatcli_sdr___report_bs_nargs=0
_shtab_blocksatcli_sdr__d_nargs=0
_shtab_blocksatcli_sdr___debug_demod_nargs=0
_shtab_blocksatcli_sdr___gui_nargs=0
_shtab_blocksatcli_sdr__v_nargs=0
_shtab_blocksatcli_sdr___verbose_nargs=0
_shtab_blocksatcli_sdr___fastlock_nargs=0
_shtab_blocksatcli_sdr___ts_monitor_bitrate_nargs=?
_shtab_blocksatcli_sdr___ts_monitor_sequence_nargs=0
_shtab_blocksatcli_sdr___ts_file_nargs=?
_shtab_blocksatcli_sdr___ts_dump_nargs=0
_shtab_blocksatcli_sdr___ts_dump_opts_nargs=+
_shtab_blocksatcli_sdr___ts_analysis_nargs=?
_shtab_blocksatcli_sdr___no_tsp_nargs=0
_shtab_blocksatcli_sdr_rec__h_nargs=0
_shtab_blocksatcli_sdr_rec___help_nargs=0
_shtab_blocksatcli_sdr_record__h_nargs=0
_shtab_blocksatcli_sdr_record___help_nargs=0
_shtab_blocksatcli_api_pos_0_nargs=A...
_shtab_blocksatcli_api__h_nargs=0
_shtab_blocksatcli_api___help_nargs=0
_shtab_blocksatcli_api_config__h_nargs=0
_shtab_blocksatcli_api_config___help_nargs=0
_shtab_blocksatcli_api_config__v_nargs=0
_shtab_blocksatcli_api_config___verbose_nargs=0
_shtab_blocksatcli_api_cfg__h_nargs=0
_shtab_blocksatcli_api_cfg___help_nargs=0
_shtab_blocksatcli_api_cfg__v_nargs=0
_shtab_blocksatcli_api_cfg___verbose_nargs=0
_shtab_blocksatcli_api_send__h_nargs=0
_shtab_blocksatcli_api_send___help_nargs=0
_shtab_blocksatcli_api_send___regions_nargs=+
_shtab_blocksatcli_api_send___trust_nargs=0
_shtab_blocksatcli_api_send___sign_nargs=0
_shtab_blocksatcli_api_send___send_raw_nargs=0
_shtab_blocksatcli_api_send___plaintext_nargs=0
_shtab_blocksatcli_api_send___fec_nargs=0
_shtab_blocksatcli_api_send___no_password_nargs=0
_shtab_blocksatcli_api_send___no_wait_nargs=0
_shtab_blocksatcli_api_tx__h_nargs=0
_shtab_blocksatcli_api_tx___help_nargs=0
_shtab_blocksatcli_api_tx___regions_nargs=+
_shtab_blocksatcli_api_tx___trust_nargs=0
_shtab_blocksatcli_api_tx___sign_nargs=0
_shtab_blocksatcli_api_tx___send_raw_nargs=0
_shtab_blocksatcli_api_tx___plaintext_nargs=0
_shtab_blocksatcli_api_tx___fec_nargs=0
_shtab_blocksatcli_api_tx___no_password_nargs=0
_shtab_blocksatcli_api_tx___no_wait_nargs=0
_shtab_blocksatcli_api_listen__h_nargs=0
_shtab_blocksatcli_api_listen___help_nargs=0
_shtab_blocksatcli_api_listen__d_nargs=0
_shtab_blocksatcli_api_listen___demo_nargs=0
_shtab_blocksatcli_api_listen___save_raw_nargs=0
_shtab_blocksatcli_api_listen___plaintext_nargs=0
_shtab_blocksatcli_api_listen___no_password_nargs=0
_shtab_blocksatcli_api_listen___echo_nargs=0
_shtab_blocksatcli_api_listen___stdout_nargs=0
_shtab_blocksatcli_api_listen___no_save_nargs=0
_shtab_blocksatcli_api_listen___insecure_nargs=0
_shtab_blocksatcli_api_listen___gossip_nargs=0
_shtab_blocksatcli_api_listen___btc_src_nargs=0
_shtab_blocksatcli_api_rx__h_nargs=0
_shtab_blocksatcli_api_rx___help_nargs=0
_shtab_blocksatcli_api_rx__d_nargs=0
_shtab_blocksatcli_api_rx___demo_nargs=0
_shtab_blocksatcli_api_rx___save_raw_nargs=0
_shtab_blocksatcli_api_rx___plaintext_nargs=0
_shtab_blocksatcli_api_rx___no_password_nargs=0
_shtab_blocksatcli_api_rx___echo_nargs=0
_shtab_blocksatcli_api_rx___stdout_nargs=0
_shtab_blocksatcli_api_rx___no_save_nargs=0
_shtab_blocksatcli_api_rx___insecure_nargs=0
_shtab_blocksatcli_api_rx___gossip_nargs=0
_shtab_blocksatcli_api_rx___btc_src_nargs=0
_shtab_blocksatcli_api_bump__h_nargs=0
_shtab_blocksatcli_api_bump___help_nargs=0
_shtab_blocksatcli_api_delete__h_nargs=0
_shtab_blocksatcli_api_delete___help_nargs=0
_shtab_blocksatcli_api_del__h_nargs=0
_shtab_blocksatcli_api_del___help_nargs=0
_shtab_blocksatcli_api_demo_rx__h_nargs=0
_shtab_blocksatcli_api_demo_rx___help_nargs=0
_shtab_blocksatcli_api_demo_rx___poll_nargs=0
_shtab_blocksatcli_api_demo_rx__i_nargs=+
_shtab_blocksatcli_api_demo_rx___interface_nargs=+
_shtab_blocksatcli_api_demo_rx__r_nargs=+
_shtab_blocksatcli_api_demo_rx___regions_nargs=+
_shtab_blocksatcli_api_demo_rx___if_by_region_nargs=0
_shtab_blocksatcli_api_get__h_nargs=0
_shtab_blocksatcli_api_get___help_nargs=0
_shtab_blocksatcli_api_list__h_nargs=0
_shtab_blocksatcli_api_list___help_nargs=0
_shtab_blocksatcli_api_list___status_nargs=+
_shtab_blocksatcli_sat_ip_pos_0_nargs=A...
_shtab_blocksatcli_sat_ip__h_nargs=0
_shtab_blocksatcli_sat_ip___help_nargs=0
_shtab_blocksatcli_sat_ip___no_fe_monitoring_nargs=0
_shtab_blocksatcli_sat_ip___ignore_http_errors_nargs=0
_shtab_blocksatcli_sat_ip___ts_monitor_bitrate_nargs=?
_shtab_blocksatcli_sat_ip___ts_monitor_sequence_nargs=0
_shtab_blocksatcli_sat_ip___ts_file_nargs=?
_shtab_blocksatcli_sat_ip___ts_dump_nargs=0
_shtab_blocksatcli_sat_ip___ts_dump_opts_nargs=+
_shtab_blocksatcli_sat_ip___ts_analysis_nargs=?
_shtab_blocksatcli_sat_ip___log_scrolling_nargs=0
_shtab_blocksatcli_sat_ip___log_file_nargs=0
_shtab_blocksatcli_sat_ip___monitoring_server_nargs=0
_shtab_blocksatcli_sat_ip___report_nargs=0
_shtab_blocksatcli_sat_ip___report_bs_nargs=0
_shtab_blocksatcli_sat_ip_list__h_nargs=0
_shtab_blocksatcli_sat_ip_list___help_nargs=0
_shtab_blocksatcli_sat_ip_ls__h_nargs=0
_shtab_blocksatcli_sat_ip_ls___help_nargs=0
_shtab_blocksatcli_reporting_pos_0_nargs=A...
_shtab_blocksatcli_reporting__h_nargs=0
_shtab_blocksatcli_reporting___help_nargs=0
_shtab_blocksatcli_reporting_info__h_nargs=0
_shtab_blocksatcli_reporting_info___help_nargs=0
_shtab_blocksatcli_reporting_info___json_nargs=0
_shtab_blocksatcli_reporting_password__h_nargs=0
_shtab_blocksatcli_reporting_password___help_nargs=0


# $1=COMP_WORDS[1]
_shtab_compgen_files() {
  compgen -f -- $1  # files
}

# $1=COMP_WORDS[1]
_shtab_compgen_dirs() {
  compgen -d -- $1  # recurse into subdirs
}

# $1=COMP_WORDS[1]
_shtab_replace_nonword() {
  echo "${1//[^[:word:]]/_}"
}

# set default values (called for the initial parser & any subparsers)
_set_parser_defaults() {
  local subparsers_var="${prefix}_subparsers[@]"
  sub_parsers=${!subparsers_var-}

  local current_option_strings_var="${prefix}_option_strings[@]"
  current_option_strings=${!current_option_strings_var}

  completed_positional_actions=0

  _set_new_action "pos_${completed_positional_actions}" true
}

# $1=action identifier
# $2=positional action (bool)
# set all identifiers for an action's parameters
_set_new_action() {
  current_action="${prefix}_$(_shtab_replace_nonword $1)"

  local current_action_compgen_var=${current_action}_COMPGEN
  current_action_compgen="${!current_action_compgen_var-}"

  local current_action_choices_var="${current_action}_choices[@]"
  current_action_choices="${!current_action_choices_var-}"

  local current_action_nargs_var="${current_action}_nargs"
  if [ -n "${!current_action_nargs_var-}" ]; then
    current_action_nargs="${!current_action_nargs_var}"
  else
    current_action_nargs=1
  fi

  current_action_args_start_index=$(( $word_index + 1 - $pos_only ))

  current_action_is_positional=$2
}

# Notes:
# `COMPREPLY`: what will be rendered after completion is triggered
# `completing_word`: currently typed word to generate completions for
# `${!var}`: evaluates the content of `var` and expand its content as a variable
#     hello="world"
#     x="hello"
#     ${!x} -> ${hello} -> "world"
_shtab_blocksatcli() {
  local completing_word="${COMP_WORDS[COMP_CWORD]}"
  local previous_word="${COMP_WORDS[COMP_CWORD-1]}"
  local completed_positional_actions
  local current_action
  local current_action_args_start_index
  local current_action_choices
  local current_action_compgen
  local current_action_is_positional
  local current_action_nargs
  local current_option_strings
  local sub_parsers
  COMPREPLY=()

  local prefix=_shtab_blocksatcli
  local word_index=0
  local pos_only=0 # "--" delimeter not encountered yet
  _set_parser_defaults
  word_index=1

  # determine what arguments are appropriate for the current state
  # of the arg parser
  while [ $word_index -ne $COMP_CWORD ]; do
    local this_word="${COMP_WORDS[$word_index]}"

    if [[ $pos_only = 1 || " $this_word " != " -- " ]]; then
      if [[ -n $sub_parsers && " ${sub_parsers[@]} " == *" ${this_word} "* ]]; then
        # valid subcommand: add it to the prefix & reset the current action
        prefix="${prefix}_$(_shtab_replace_nonword $this_word)"
        _set_parser_defaults
      fi

      if [[ " ${current_option_strings[@]} " == *" ${this_word} "* ]]; then
        # a new action should be acquired (due to recognised option string or
        # no more input expected from current action);
        # the next positional action can fill in here
        _set_new_action $this_word false
      fi

      if [[ "$current_action_nargs" != "*" ]] && \
         [[ "$current_action_nargs" != "+" ]] && \
         [[ "$current_action_nargs" != *"..." ]] && \
         (( $word_index + 1 - $current_action_args_start_index - $pos_only >= \
            $current_action_nargs )); then
        $current_action_is_positional && let "completed_positional_actions += 1"
        _set_new_action "pos_${completed_positional_actions}" true
      fi
    else
      pos_only=1 # "--" delimeter encountered
    fi

    let "word_index+=1"
  done

  # Generate the completions

  if [[ $pos_only = 0 && "${completing_word}" == -* ]]; then
    # optional argument started: use option strings
    COMPREPLY=( $(compgen -W "${current_option_strings[*]}" -- "${completing_word}") )
  elif [[ "${previous_word}" == ">" || "${previous_word}" == ">>" ||
          "${previous_word}" =~ ^[12]">" || "${previous_word}" =~ ^[12]">>" ]]; then
    # handle redirection operators
    COMPREPLY=( $(compgen -f -- "${completing_word}") )
  else
    # use choices & compgen
    local IFS=$'\n' # items may contain spaces, so delimit using newline
    COMPREPLY=( $([ -n "${current_action_compgen}" ] \
                  && "${current_action_compgen}" "${completing_word}") )
    unset IFS
    COMPREPLY+=( $(compgen -W "${current_action_choices[*]}" -- "${completing_word}") )
  fi

  return 0
}

complete -o filenames -F _shtab_blocksatcli blocksat-cli
