# 
#  Bash completion rules for 'gmic'. 
# 
# This file has been generated automatically. 
# Do not edit! 
# 
# This file should be copied/renamed in '/etc/bash_completion.d/gmic'. 
# 
 
_gmic_stdlib() 
{ 
	local cur prev opts coms 
	COMPREPLY=() 
	cur="${COMP_WORDS[COMP_CWORD]}" 
	prev="${COMP_WORDS[COMP_CWORD-1]}" 
	opts="\
	      debug -debug --debug +debug\
	      h -h --h +h\
	      help -help --help +help\
	      version -version --version +version\
	      camera -camera --camera +camera\
	      clut -clut --clut +clut\
	      m -m --m +m\
	      command -command --command +command\
	      cursor -cursor --cursor +cursor\
	      d -d --d +d\
	      display -display --display +display\
	      d0 -d0 --d0 +d0\
	      display0 -display0 --display0 +display0\
	      d3d -d3d --d3d +d3d\
	      display3d -display3d --display3d +display3d\
	      da -da --da +da\
	      display_array -display_array --display_array +display_array\
	      dfft -dfft --dfft +dfft\
	      display_fft -display_fft --display_fft +display_fft\
	      dg -dg --dg +dg\
	      display_graph -display_graph --display_graph +display_graph\
	      dh -dh --dh +dh\
	      display_histogram -display_histogram --display_histogram +display_histogram\
	      display_parametric -display_parametric --display_parametric +display_parametric\
	      dp -dp --dp +dp\
	      display_parallel -display_parallel --display_parallel +display_parallel\
	      dp0 -dp0 --dp0 +dp0\
	      display_parallel0 -display_parallel0 --display_parallel0 +display_parallel0\
	      display_polar -display_polar --display_polar +display_polar\
	      dq -dq --dq +dq\
	      display_quiver -display_quiver --display_quiver +display_quiver\
	      drgba -drgba --drgba +drgba\
	      display_rgba -display_rgba --display_rgba +display_rgba\
	      dt -dt --dt +dt\
	      display_tensors -display_tensors --display_tensors +display_tensors\
	      dw -dw --dw +dw\
	      display_warp -display_warp --display_warp +display_warp\
	      document_gmic -document_gmic --document_gmic +document_gmic\
	      e -e --e +e\
	      echo -echo --echo +echo\
	      echo_file -echo_file --echo_file +echo_file\
	      echo_stdout -echo_stdout --echo_stdout +echo_stdout\
	      function1d -function1d --function1d +function1d\
	      gmicky -gmicky --gmicky +gmicky\
	      gmicky_deevad -gmicky_deevad --gmicky_deevad +gmicky_deevad\
	      gmicky_mahvin -gmicky_mahvin --gmicky_mahvin +gmicky_mahvin\
	      gmicky_wilber -gmicky_wilber --gmicky_wilber +gmicky_wilber\
	      i -i --i +i\
	      input -input --input +input\
	      input_cube -input_cube --input_cube +input_cube\
	      ig -ig --ig +ig\
	      input_glob -input_glob --input_glob +input_glob\
	      input_gpl -input_gpl --input_gpl +input_gpl\
	      o -o --o +o\
	      output -output --output +output\
	      output_cube -output_cube --output_cube +output_cube\
	      output_ggr -output_ggr --output_ggr +output_ggr\
	      on -on --on +on\
	      outputn -outputn --outputn +outputn\
	      op -op --op +op\
	      outputp -outputp --outputp +outputp\
	      ow -ow --ow +ow\
	      outputw -outputw --outputw +outputw\
	      ox -ox --ox +ox\
	      outputx -outputx --outputx +outputx\
	      pass -pass --pass +pass\
	      plot -plot --plot +plot\
	      p -p --p +p\
	      print -print --print +print\
	      rainbow_lut -rainbow_lut --rainbow_lut +rainbow_lut\
	      roddy -roddy --roddy +roddy\
	      screen -screen --screen +screen\
	      select -select --select +select\
	      serialize -serialize --serialize +serialize\
	      shape_circle -shape_circle --shape_circle +shape_circle\
	      shape_cupid -shape_cupid --shape_cupid +shape_cupid\
	      shape_diamond -shape_diamond --shape_diamond +shape_diamond\
	      shape_fern -shape_fern --shape_fern +shape_fern\
	      shape_gear -shape_gear --shape_gear +shape_gear\
	      shape_heart -shape_heart --shape_heart +shape_heart\
	      shape_polygon -shape_polygon --shape_polygon +shape_polygon\
	      shape_snowflake -shape_snowflake --shape_snowflake +shape_snowflake\
	      shape_star -shape_star --shape_star +shape_star\
	      sh -sh --sh +sh\
	      shared -shared --shared +shared\
	      sp -sp --sp +sp\
	      sample -sample --sample +sample\
	      srand -srand --srand +srand\
	      string -string --string +string\
	      testimage2d -testimage2d --testimage2d +testimage2d\
	      uncommand -uncommand --uncommand +uncommand\
	      uniform_distribution -uniform_distribution --uniform_distribution +uniform_distribution\
	      unserialize -unserialize --unserialize +unserialize\
	      up -up --up +up\
	      update -update --update +update\
	      v -v --v +v\
	      verbose -verbose --verbose +verbose\
	      wait -wait --wait +wait\
	      warn -warn --warn +warn\
	      w -w --w +w\
	      window -window --window +window\
	      k -k --k +k\
	      keep -keep --keep +keep\
	      mv -mv --mv +mv\
	      move -move --move +move\
	      nm -nm --nm +nm\
	      name -name --name +name\
	      rm -rm --rm +rm\
	      remove -remove --remove +remove\
	      remove_duplicates -remove_duplicates --remove_duplicates +remove_duplicates\
	      remove_empty -remove_empty --remove_empty +remove_empty\
	      rv -rv --rv +rv\
	      reverse -reverse --reverse +reverse\
	      sort_list -sort_list --sort_list +sort_list\
	      sort_str -sort_str --sort_str +sort_str\
	      abs -abs --abs +abs\
	      acos -acos --acos +acos\
	      acosh -acosh --acosh +acosh\
	      + -+ --+ ++\
	      add -add --add +add\
	      & -& --& +&\
	      and -and --and +and\
	      argmax -argmax --argmax +argmax\
	      argmin -argmin --argmin +argmin\
	      asin -asin --asin +asin\
	      asinh -asinh --asinh +asinh\
	      atan -atan --atan +atan\
	      atan2 -atan2 --atan2 +atan2\
	      atanh -atanh --atanh +atanh\
	      << -<< --<< +<<\
	      bsl -bsl --bsl +bsl\
	      >> ->> -->> +>>\
	      bsr -bsr --bsr +bsr\
	      cos -cos --cos +cos\
	      cosh -cosh --cosh +cosh\
	      / -/ --/ +/\
	      div -div --div +div\
	      div_complex -div_complex --div_complex +div_complex\
	      == -== --== +==\
	      eq -eq --eq +eq\
	      exp -exp --exp +exp\
	      >= ->= -->= +>=\
	      ge -ge --ge +ge\
	      > -> --> +>\
	      gt -gt --gt +gt\
	      <= -<= --<= +<=\
	      le -le --le +le\
	      < -< --< +<\
	      lt -lt --lt +lt\
	      log -log --log +log\
	      log10 -log10 --log10 +log10\
	      log2 -log2 --log2 +log2\
	      max -max --max +max\
	      m/ -m/ --m/ +m/\
	      mdiv -mdiv --mdiv +mdiv\
	      min -min --min +min\
	      % -% --% +%\
	      mod -mod --mod +mod\
	      m* -m* --m* +m*\
	      mmul -mmul --mmul +mmul\
	      * -* --* +*\
	      mul -mul --mul +mul\
	      mul_channels -mul_channels --mul_channels +mul_channels\
	      mul_complex -mul_complex --mul_complex +mul_complex\
	      != -!= --!= +!=\
	      neq -neq --neq +neq\
	      | -| --| +|\
	      or -or --or +or\
	      ^ -^ --^ +^\
	      pow -pow --pow +pow\
	      rol -rol --rol +rol\
	      ror -ror --ror +ror\
	      sign -sign --sign +sign\
	      sin -sin --sin +sin\
	      sinc -sinc --sinc +sinc\
	      sinh -sinh --sinh +sinh\
	      sqr -sqr --sqr +sqr\
	      sqrt -sqrt --sqrt +sqrt\
	      - -- --- +-\
	      sub -sub --sub +sub\
	      tan -tan --tan +tan\
	      tanh -tanh --tanh +tanh\
	      xor -xor --xor +xor\
	      apply_curve -apply_curve --apply_curve +apply_curve\
	      apply_gamma -apply_gamma --apply_gamma +apply_gamma\
	      balance_gamma -balance_gamma --balance_gamma +balance_gamma\
	      cast -cast --cast +cast\
	      complex2polar -complex2polar --complex2polar +complex2polar\
	      compress_clut -compress_clut --compress_clut +compress_clut\
	      compress_rle -compress_rle --compress_rle +compress_rle\
	      cumulate -cumulate --cumulate +cumulate\
	      c -c --c +c\
	      cut -cut --cut +cut\
	      decompress_clut -decompress_clut --decompress_clut +decompress_clut\
	      decompress_rle -decompress_rle --decompress_rle +decompress_rle\
	      discard -discard --discard +discard\
	      eigen2tensor -eigen2tensor --eigen2tensor +eigen2tensor\
	      endian -endian --endian +endian\
	      equalize -equalize --equalize +equalize\
	      f -f --f +f\
	      fill -fill --fill +fill\
	      index -index --index +index\
	      ir -ir --ir +ir\
	      inrange -inrange --inrange +inrange\
	      map -map --map +map\
	      map_clut -map_clut --map_clut +map_clut\
	      mix_channels -mix_channels --mix_channels +mix_channels\
	      negate -negate --negate +negate\
	      noise -noise --noise +noise\
	      noise_poissondisk -noise_poissondisk --noise_poissondisk +noise_poissondisk\
	      normp -normp --normp +normp\
	      norm -norm --norm +norm\
	      n -n --n +n\
	      normalize -normalize --normalize +normalize\
	      normalize_sum -normalize_sum --normalize_sum +normalize_sum\
	      not -not --not +not\
	      orientation -orientation --orientation +orientation\
	      oneminus -oneminus --oneminus +oneminus\
	      otsu -otsu --otsu +otsu\
	      polar2complex -polar2complex --polar2complex +polar2complex\
	      quantize -quantize --quantize +quantize\
	      quantize_area -quantize_area --quantize_area +quantize_area\
	      rand -rand --rand +rand\
	      replace -replace --replace +replace\
	      replace_inf -replace_inf --replace_inf +replace_inf\
	      replace_nan -replace_nan --replace_nan +replace_nan\
	      replace_seq -replace_seq --replace_seq +replace_seq\
	      replace_str -replace_str --replace_str +replace_str\
	      round -round --round +round\
	      roundify -roundify --roundify +roundify\
	      = -= --= +=\
	      set -set --set +set\
	      set_vector_covariance -set_vector_covariance --set_vector_covariance +set_vector_covariance\
	      threshold -threshold --threshold +threshold\
	      unrepeat -unrepeat --unrepeat +unrepeat\
	      vector2tensor -vector2tensor --vector2tensor +vector2tensor\
	      adjust_colors -adjust_colors --adjust_colors +adjust_colors\
	      ac -ac --ac +ac\
	      apply_channels -apply_channels --apply_channels +apply_channels\
	      autoindex -autoindex --autoindex +autoindex\
	      bayer2rgb -bayer2rgb --bayer2rgb +bayer2rgb\
	      cmy2rgb -cmy2rgb --cmy2rgb +cmy2rgb\
	      cmyk2rgb -cmyk2rgb --cmyk2rgb +cmyk2rgb\
	      colorblind -colorblind --colorblind +colorblind\
	      colormap -colormap --colormap +colormap\
	      compose_channels -compose_channels --compose_channels +compose_channels\
	      direction2rgb -direction2rgb --direction2rgb +direction2rgb\
	      ditheredbw -ditheredbw --ditheredbw +ditheredbw\
	      fc -fc --fc +fc\
	      fill_color -fill_color --fill_color +fill_color\
	      gradient2rgb -gradient2rgb --gradient2rgb +gradient2rgb\
	      hcy2rgb : -hcy2rgb : --hcy2rgb : +hcy2rgb :\
	      hsi2rgb -hsi2rgb --hsi2rgb +hsi2rgb\
	      hsi82rgb -hsi82rgb --hsi82rgb +hsi82rgb\
	      hsl2rgb -hsl2rgb --hsl2rgb +hsl2rgb\
	      hsl82rgb -hsl82rgb --hsl82rgb +hsl82rgb\
	      hsv2rgb -hsv2rgb --hsv2rgb +hsv2rgb\
	      hsv82rgb -hsv82rgb --hsv82rgb +hsv82rgb\
	      int2rgb -int2rgb --int2rgb +int2rgb\
	      lab2lch -lab2lch --lab2lch +lab2lch\
	      lab2rgb -lab2rgb --lab2rgb +lab2rgb\
	      lab2srgb -lab2srgb --lab2srgb +lab2srgb\
	      lab82srgb -lab82srgb --lab82srgb +lab82srgb\
	      lab2xyz -lab2xyz --lab2xyz +lab2xyz\
	      lab82rgb -lab82rgb --lab82rgb +lab82rgb\
	      lch2lab -lch2lab --lch2lab +lch2lab\
	      lch2rgb -lch2rgb --lch2rgb +lch2rgb\
	      lch82rgb -lch82rgb --lch82rgb +lch82rgb\
	      luminance -luminance --luminance +luminance\
	      mix_rgb -mix_rgb --mix_rgb +mix_rgb\
	      pseudogray -pseudogray --pseudogray +pseudogray\
	      replace_color -replace_color --replace_color +replace_color\
	      retinex -retinex --retinex +retinex\
	      rgb2bayer -rgb2bayer --rgb2bayer +rgb2bayer\
	      rgb2cmy -rgb2cmy --rgb2cmy +rgb2cmy\
	      rgb2cmyk -rgb2cmyk --rgb2cmyk +rgb2cmyk\
	      rgb2hcy -rgb2hcy --rgb2hcy +rgb2hcy\
	      rgb2hsi -rgb2hsi --rgb2hsi +rgb2hsi\
	      rgb2hsi8 -rgb2hsi8 --rgb2hsi8 +rgb2hsi8\
	      rgb2hsl -rgb2hsl --rgb2hsl +rgb2hsl\
	      rgb2hsl8 -rgb2hsl8 --rgb2hsl8 +rgb2hsl8\
	      rgb2hsv -rgb2hsv --rgb2hsv +rgb2hsv\
	      rgb2hsv8 -rgb2hsv8 --rgb2hsv8 +rgb2hsv8\
	      rgb2lab -rgb2lab --rgb2lab +rgb2lab\
	      rgb2lab8 -rgb2lab8 --rgb2lab8 +rgb2lab8\
	      rgb2lch -rgb2lch --rgb2lch +rgb2lch\
	      rgb2lch8 -rgb2lch8 --rgb2lch8 +rgb2lch8\
	      rgb2luv -rgb2luv --rgb2luv +rgb2luv\
	      rgb2int -rgb2int --rgb2int +rgb2int\
	      rgb2srgb -rgb2srgb --rgb2srgb +rgb2srgb\
	      rgb2xyz -rgb2xyz --rgb2xyz +rgb2xyz\
	      rgb2xyz8 -rgb2xyz8 --rgb2xyz8 +rgb2xyz8\
	      rgb2yiq -rgb2yiq --rgb2yiq +rgb2yiq\
	      rgb2yiq8 -rgb2yiq8 --rgb2yiq8 +rgb2yiq8\
	      rgb2ycbcr -rgb2ycbcr --rgb2ycbcr +rgb2ycbcr\
	      rgb2yuv -rgb2yuv --rgb2yuv +rgb2yuv\
	      rgb2yuv8 -rgb2yuv8 --rgb2yuv8 +rgb2yuv8\
	      remove_opacity -remove_opacity --remove_opacity +remove_opacity\
	      select_color -select_color --select_color +select_color\
	      sepia -sepia --sepia +sepia\
	      solarize -solarize --solarize +solarize\
	      split_colors -split_colors --split_colors +split_colors\
	      split_opacity -split_opacity --split_opacity +split_opacity\
	      srgb2lab -srgb2lab --srgb2lab +srgb2lab\
	      srgb2lab8 -srgb2lab8 --srgb2lab8 +srgb2lab8\
	      srgb2rgb -srgb2rgb --srgb2rgb +srgb2rgb\
	      to_a -to_a --to_a +to_a\
	      to_color -to_color --to_color +to_color\
	      to_colormode -to_colormode --to_colormode +to_colormode\
	      to_gray -to_gray --to_gray +to_gray\
	      to_graya -to_graya --to_graya +to_graya\
	      to_pseudogray -to_pseudogray --to_pseudogray +to_pseudogray\
	      to_rgb -to_rgb --to_rgb +to_rgb\
	      to_rgba -to_rgba --to_rgba +to_rgba\
	      transfer_colors -transfer_colors --transfer_colors +transfer_colors\
	      transfer_rgb -transfer_rgb --transfer_rgb +transfer_rgb\
	      xyz2lab -xyz2lab --xyz2lab +xyz2lab\
	      xyz2rgb -xyz2rgb --xyz2rgb +xyz2rgb\
	      xyz82rgb -xyz82rgb --xyz82rgb +xyz82rgb\
	      ycbcr2rgb -ycbcr2rgb --ycbcr2rgb +ycbcr2rgb\
	      yiq2rgb -yiq2rgb --yiq2rgb +yiq2rgb\
	      yiq82rgb -yiq82rgb --yiq82rgb +yiq82rgb\
	      yuv2rgb -yuv2rgb --yuv2rgb +yuv2rgb\
	      yuv82rgb -yuv82rgb --yuv82rgb +yuv82rgb\
	      a -a --a +a\
	      append -append --append +append\
	      append_tiles -append_tiles --append_tiles +append_tiles\
	      apply_scales -apply_scales --apply_scales +apply_scales\
	      autocrop -autocrop --autocrop +autocrop\
	      autocrop_components -autocrop_components --autocrop_components +autocrop_components\
	      autocrop_seq -autocrop_seq --autocrop_seq +autocrop_seq\
	      channels -channels --channels +channels\
	      columns -columns --columns +columns\
	      z -z --z +z\
	      crop -crop --crop +crop\
	      diagonal -diagonal --diagonal +diagonal\
	      elevate -elevate --elevate +elevate\
	      expand_x -expand_x --expand_x +expand_x\
	      expand_xy -expand_xy --expand_xy +expand_xy\
	      expand_xyz -expand_xyz --expand_xyz +expand_xyz\
	      expand_y -expand_y --expand_y +expand_y\
	      expand_z -expand_z --expand_z +expand_z\
	      extract_region -extract_region --extract_region +extract_region\
	      montage -montage --montage +montage\
	      mirror -mirror --mirror +mirror\
	      permute -permute --permute +permute\
	      r -r --r +r\
	      resize -resize --resize +resize\
	      resize_mn -resize_mn --resize_mn +resize_mn\
	      resize_pow2 -resize_pow2 --resize_pow2 +resize_pow2\
	      rr2d -rr2d --rr2d +rr2d\
	      resize_ratio2d -resize_ratio2d --resize_ratio2d +resize_ratio2d\
	      r2dx -r2dx --r2dx +r2dx\
	      resize2dx -resize2dx --resize2dx +resize2dx\
	      r2dy -r2dy --r2dy +r2dy\
	      resize2dy -resize2dy --resize2dy +resize2dy\
	      r3dx -r3dx --r3dx +r3dx\
	      resize3dx -resize3dx --resize3dx +resize3dx\
	      r3dy -r3dy --r3dy +r3dy\
	      resize3dy -resize3dy --resize3dy +resize3dy\
	      r3dz -r3dz --r3dz +r3dz\
	      resize3dz -resize3dz --resize3dz +resize3dz\
	      rotate -rotate --rotate +rotate\
	      rotate_tileable -rotate_tileable --rotate_tileable +rotate_tileable\
	      rows -rows --rows +rows\
	      scale2x -scale2x --scale2x +scale2x\
	      scale3x -scale3x --scale3x +scale3x\
	      scale_dcci2x -scale_dcci2x --scale_dcci2x +scale_dcci2x\
	      seamcarve -seamcarve --seamcarve +seamcarve\
	      shift -shift --shift +shift\
	      shrink_x -shrink_x --shrink_x +shrink_x\
	      shrink_xy -shrink_xy --shrink_xy +shrink_xy\
	      shrink_xyz -shrink_xyz --shrink_xyz +shrink_xyz\
	      shrink_y -shrink_y --shrink_y +shrink_y\
	      shrink_z -shrink_z --shrink_z +shrink_z\
	      slices -slices --slices +slices\
	      sort -sort --sort +sort\
	      s -s --s +s\
	      split -split --split +split\
	      split_tiles -split_tiles --split_tiles +split_tiles\
	      undistort -undistort --undistort +undistort\
	      y -y --y +y\
	      unroll -unroll --unroll +unroll\
	      upscale_smart -upscale_smart --upscale_smart +upscale_smart\
	      warp -warp --warp +warp\
	      bandpass -bandpass --bandpass +bandpass\
	      bilateral -bilateral --bilateral +bilateral\
	      b -b --b +b\
	      blur -blur --blur +blur\
	      blur_angular -blur_angular --blur_angular +blur_angular\
	      blur_bloom -blur_bloom --blur_bloom +blur_bloom\
	      blur_linear -blur_linear --blur_linear +blur_linear\
	      blur_radial -blur_radial --blur_radial +blur_radial\
	      blur_selective -blur_selective --blur_selective +blur_selective\
	      blur_x -blur_x --blur_x +blur_x\
	      blur_xy -blur_xy --blur_xy +blur_xy\
	      blur_xyz -blur_xyz --blur_xyz +blur_xyz\
	      blur_y -blur_y --blur_y +blur_y\
	      blur_z -blur_z --blur_z +blur_z\
	      boxfilter -boxfilter --boxfilter +boxfilter\
	      bump2normal -bump2normal --bump2normal +bump2normal\
	      compose_freq -compose_freq --compose_freq +compose_freq\
	      convolve -convolve --convolve +convolve\
	      convolve_fft -convolve_fft --convolve_fft +convolve_fft\
	      correlate -correlate --correlate +correlate\
	      cross_correlation -cross_correlation --cross_correlation +cross_correlation\
	      curvature -curvature --curvature +curvature\
	      dct -dct --dct +dct\
	      deblur -deblur --deblur +deblur\
	      deblur_goldmeinel -deblur_goldmeinel --deblur_goldmeinel +deblur_goldmeinel\
	      deblur_richardsonlucy -deblur_richardsonlucy --deblur_richardsonlucy +deblur_richardsonlucy\
	      deconvolve_fft -deconvolve_fft --deconvolve_fft +deconvolve_fft\
	      deinterlace -deinterlace --deinterlace +deinterlace\
	      denoise -denoise --denoise +denoise\
	      denoise_haar -denoise_haar --denoise_haar +denoise_haar\
	      denoise_patchpca -denoise_patchpca --denoise_patchpca +denoise_patchpca\
	      deriche -deriche --deriche +deriche\
	      dilate -dilate --dilate +dilate\
	      dilate_circ -dilate_circ --dilate_circ +dilate_circ\
	      dilate_oct -dilate_oct --dilate_oct +dilate_oct\
	      dilate_threshold -dilate_threshold --dilate_threshold +dilate_threshold\
	      divergence -divergence --divergence +divergence\
	      dog -dog --dog +dog\
	      diffusiontensors -diffusiontensors --diffusiontensors +diffusiontensors\
	      edges -edges --edges +edges\
	      erode -erode --erode +erode\
	      erode_circ -erode_circ --erode_circ +erode_circ\
	      erode_oct -erode_oct --erode_oct +erode_oct\
	      erode_threshold -erode_threshold --erode_threshold +erode_threshold\
	      fft -fft --fft +fft\
	      g -g --g +g\
	      gradient -gradient --gradient +gradient\
	      gradient_norm -gradient_norm --gradient_norm +gradient_norm\
	      gradient_orientation -gradient_orientation --gradient_orientation +gradient_orientation\
	      guided -guided --guided +guided\
	      haar -haar --haar +haar\
	      heat_flow -heat_flow --heat_flow +heat_flow\
	      hessian -hessian --hessian +hessian\
	      idct -idct --idct +idct\
	      iee -iee --iee +iee\
	      ifft -ifft --ifft +ifft\
	      ihaar -ihaar --ihaar +ihaar\
	      inn -inn --inn +inn\
	      inpaint -inpaint --inpaint +inpaint\
	      inpaint_flow -inpaint_flow --inpaint_flow +inpaint_flow\
	      inpaint_holes -inpaint_holes --inpaint_holes +inpaint_holes\
	      inpaint_morpho -inpaint_morpho --inpaint_morpho +inpaint_morpho\
	      inpaint_patchmatch -inpaint_patchmatch --inpaint_patchmatch +inpaint_patchmatch\
	      inpaint_diffusion -inpaint_diffusion --inpaint_diffusion +inpaint_diffusion\
	      kuwahara -kuwahara --kuwahara +kuwahara\
	      laplacian -laplacian --laplacian +laplacian\
	      lic -lic --lic +lic\
	      map_tones -map_tones --map_tones +map_tones\
	      map_tones_fast -map_tones_fast --map_tones_fast +map_tones_fast\
	      meancurvature_flow -meancurvature_flow --meancurvature_flow +meancurvature_flow\
	      median -median --median +median\
	      nlmeans -nlmeans --nlmeans +nlmeans\
	      nlmeans_core -nlmeans_core --nlmeans_core +nlmeans_core\
	      normalize_local -normalize_local --normalize_local +normalize_local\
	      normalized_cross_correlation -normalized_cross_correlation --normalized_cross_correlation +normalized_cross_correlation\
	      peronamalik_flow -peronamalik_flow --peronamalik_flow +peronamalik_flow\
	      phase_correlation -phase_correlation --phase_correlation +phase_correlation\
	      pde_flow -pde_flow --pde_flow +pde_flow\
	      periodize_poisson -periodize_poisson --periodize_poisson +periodize_poisson\
	      red_eye -red_eye --red_eye +red_eye\
	      remove_hotpixels -remove_hotpixels --remove_hotpixels +remove_hotpixels\
	      remove_pixels -remove_pixels --remove_pixels +remove_pixels\
	      rolling_guidance -rolling_guidance --rolling_guidance +rolling_guidance\
	      sharpen -sharpen --sharpen +sharpen\
	      smooth -smooth --smooth +smooth\
	      split_freq -split_freq --split_freq +split_freq\
	      solve_poisson -solve_poisson --solve_poisson +solve_poisson\
	      split_details -split_details --split_details +split_details\
	      structuretensors -structuretensors --structuretensors +structuretensors\
	      solidify -solidify --solidify +solidify\
	      syntexturize -syntexturize --syntexturize +syntexturize\
	      syntexturize_patchmatch -syntexturize_patchmatch --syntexturize_patchmatch +syntexturize_patchmatch\
	      tv_flow -tv_flow --tv_flow +tv_flow\
	      unsharp -unsharp --unsharp +unsharp\
	      unsharp_octave -unsharp_octave --unsharp_octave +unsharp_octave\
	      vanvliet -vanvliet --vanvliet +vanvliet\
	      voronoi -voronoi --voronoi +voronoi\
	      watermark_fourier -watermark_fourier --watermark_fourier +watermark_fourier\
	      watershed -watershed --watershed +watershed\
	      area -area --area +area\
	      area_fg -area_fg --area_fg +area_fg\
	      at_line -at_line --at_line +at_line\
	      at_quadrangle -at_quadrangle --at_quadrangle +at_quadrangle\
	      barycenter -barycenter --barycenter +barycenter\
	      delaunay -delaunay --delaunay +delaunay\
	      detect_skin -detect_skin --detect_skin +detect_skin\
	      displacement -displacement --displacement +displacement\
	      distance -distance --distance +distance\
	      fftpolar -fftpolar --fftpolar +fftpolar\
	      histogram -histogram --histogram +histogram\
	      histogram_nd -histogram_nd --histogram_nd +histogram_nd\
	      histogram_cumul -histogram_cumul --histogram_cumul +histogram_cumul\
	      histogram_pointwise -histogram_pointwise --histogram_pointwise +histogram_pointwise\
	      hough -hough --hough +hough\
	      ifftpolar -ifftpolar --ifftpolar +ifftpolar\
	      isophotes -isophotes --isophotes +isophotes\
	      label -label --label +label\
	      label_fg -label_fg --label_fg +label_fg\
	      max_patch -max_patch --max_patch +max_patch\
	      min_patch -min_patch --min_patch +min_patch\
	      minimal_path -minimal_path --minimal_path +minimal_path\
	      mse -mse --mse +mse\
	      patches -patches --patches +patches\
	      patchmatch -patchmatch --patchmatch +patchmatch\
	      plot2value -plot2value --plot2value +plot2value\
	      pointcloud -pointcloud --pointcloud +pointcloud\
	      psnr -psnr --psnr +psnr\
	      segment_watershed -segment_watershed --segment_watershed +segment_watershed\
	      shape2bump -shape2bump --shape2bump +shape2bump\
	      skeleton -skeleton --skeleton +skeleton\
	      slic -slic --slic +slic\
	      ssd_patch -ssd_patch --ssd_patch +ssd_patch\
	      thinning -thinning --thinning +thinning\
	      tones -tones --tones +tones\
	      topographic_map -topographic_map --topographic_map +topographic_map\
	      tsp -tsp --tsp +tsp\
	      variance_patch -variance_patch --variance_patch +variance_patch\
	      arrow -arrow --arrow +arrow\
	      axes -axes --axes +axes\
	      ball -ball --ball +ball\
	      chessboard -chessboard --chessboard +chessboard\
	      cie1931 -cie1931 --cie1931 +cie1931\
	      circle -circle --circle +circle\
	      close_binary -close_binary --close_binary +close_binary\
	      ellipse -ellipse --ellipse +ellipse\
	      flood -flood --flood +flood\
	      gaussian -gaussian --gaussian +gaussian\
	      graph -graph --graph +graph\
	      grid -grid --grid +grid\
	      j -j --j +j\
	      image -image --image +image\
	      line -line --line +line\
	      linethick -linethick --linethick +linethick\
	      mandelbrot -mandelbrot --mandelbrot +mandelbrot\
	      marble -marble --marble +marble\
	      maze -maze --maze +maze\
	      maze_mask -maze_mask --maze_mask +maze_mask\
	      j3d -j3d --j3d +j3d\
	      object3d -object3d --object3d +object3d\
	      pack_sprites -pack_sprites --pack_sprites +pack_sprites\
	      piechart -piechart --piechart +piechart\
	      plasma -plasma --plasma +plasma\
	      point -point --point +point\
	      polka_dots -polka_dots --polka_dots +polka_dots\
	      polygon -polygon --polygon +polygon\
	      quiver -quiver --quiver +quiver\
	      rectangle -rectangle --rectangle +rectangle\
	      rorschach -rorschach --rorschach +rorschach\
	      sierpinski -sierpinski --sierpinski +sierpinski\
	      spiralbw -spiralbw --spiralbw +spiralbw\
	      spline -spline --spline +spline\
	      tetraedron_shade -tetraedron_shade --tetraedron_shade +tetraedron_shade\
	      t -t --t +t\
	      text -text --text +text\
	      to -to --to +to\
	      text_outline -text_outline --text_outline +text_outline\
	      triangle_shade -triangle_shade --triangle_shade +triangle_shade\
	      truchet -truchet --truchet +truchet\
	      turbulence -turbulence --turbulence +turbulence\
	      yinyang -yinyang --yinyang +yinyang\
	      dijkstra -dijkstra --dijkstra +dijkstra\
	      eigen -eigen --eigen +eigen\
	      invert -invert --invert +invert\
	      solve -solve --solve +solve\
	      svd -svd --svd +svd\
	      transpose -transpose --transpose +transpose\
	      trisolve -trisolve --trisolve +trisolve\
	      +3d -+3d --+3d ++3d\
	      add3d -add3d --add3d +add3d\
	      animate3d -animate3d --animate3d +animate3d\
	      apply_camera3d -apply_camera3d --apply_camera3d +apply_camera3d\
	      apply_matrix3d -apply_matrix3d --apply_matrix3d +apply_matrix3d\
	      array3d -array3d --array3d +array3d\
	      arrow3d -arrow3d --arrow3d +arrow3d\
	      axes3d -axes3d --axes3d +axes3d\
	      box3d -box3d --box3d +box3d\
	      c3d -c3d --c3d +c3d\
	      center3d -center3d --center3d +center3d\
	      circle3d -circle3d --circle3d +circle3d\
	      circles3d -circles3d --circles3d +circles3d\
	      col3d -col3d --col3d +col3d\
	      color3d -color3d --color3d +color3d\
	      colorcube3d -colorcube3d --colorcube3d +colorcube3d\
	      cone3d -cone3d --cone3d +cone3d\
	      cubes3d -cubes3d --cubes3d +cubes3d\
	      cup3d -cup3d --cup3d +cup3d\
	      cylinder3d -cylinder3d --cylinder3d +cylinder3d\
	      delaunay3d -delaunay3d --delaunay3d +delaunay3d\
	      distribution3d -distribution3d --distribution3d +distribution3d\
	      /3d -/3d --/3d +/3d\
	      div3d -div3d --div3d +div3d\
	      db3d -db3d --db3d +db3d\
	      double3d -double3d --double3d +double3d\
	      elevation3d -elevation3d --elevation3d +elevation3d\
	      empty3d -empty3d --empty3d +empty3d\
	      extrude3d -extrude3d --extrude3d +extrude3d\
	      f3d -f3d --f3d +f3d\
	      focale3d -focale3d --focale3d +focale3d\
	      gaussians3d -gaussians3d --gaussians3d +gaussians3d\
	      gmic3d -gmic3d --gmic3d +gmic3d\
	      gyroid3d -gyroid3d --gyroid3d +gyroid3d\
	      histogram3d -histogram3d --histogram3d +histogram3d\
	      image6cube3d -image6cube3d --image6cube3d +image6cube3d\
	      imageblocks3d -imageblocks3d --imageblocks3d +imageblocks3d\
	      imagecube3d -imagecube3d --imagecube3d +imagecube3d\
	      imageplane3d -imageplane3d --imageplane3d +imageplane3d\
	      imagepyramid3d -imagepyramid3d --imagepyramid3d +imagepyramid3d\
	      imagerubik3d -imagerubik3d --imagerubik3d +imagerubik3d\
	      imagesphere3d -imagesphere3d --imagesphere3d +imagesphere3d\
	      isoline3d -isoline3d --isoline3d +isoline3d\
	      isosurface3d -isosurface3d --isosurface3d +isosurface3d\
	      label3d -label3d --label3d +label3d\
	      label_points3d -label_points3d --label_points3d +label_points3d\
	      lathe3d -lathe3d --lathe3d +lathe3d\
	      l3d -l3d --l3d +l3d\
	      light3d -light3d --light3d +light3d\
	      line3d -line3d --line3d +line3d\
	      lissajous3d -lissajous3d --lissajous3d +lissajous3d\
	      m3d -m3d --m3d +m3d\
	      mode3d -mode3d --mode3d +mode3d\
	      md3d -md3d --md3d +md3d\
	      moded3d -moded3d --moded3d +moded3d\
	      *3d -*3d --*3d +*3d\
	      mul3d -mul3d --mul3d +mul3d\
	      n3d -n3d --n3d +n3d\
	      normalize3d -normalize3d --normalize3d +normalize3d\
	      o3d -o3d --o3d +o3d\
	      opacity3d -opacity3d --opacity3d +opacity3d\
	      parametric3d -parametric3d --parametric3d +parametric3d\
	      pca_patch3d -pca_patch3d --pca_patch3d +pca_patch3d\
	      plane3d -plane3d --plane3d +plane3d\
	      point3d -point3d --point3d +point3d\
	      pointcloud3d -pointcloud3d --pointcloud3d +pointcloud3d\
	      pose3d -pose3d --pose3d +pose3d\
	      p3d -p3d --p3d +p3d\
	      primitives3d -primitives3d --primitives3d +primitives3d\
	      projections3d -projections3d --projections3d +projections3d\
	      pyramid3d -pyramid3d --pyramid3d +pyramid3d\
	      quadrangle3d -quadrangle3d --quadrangle3d +quadrangle3d\
	      random3d -random3d --random3d +random3d\
	      rv3d -rv3d --rv3d +rv3d\
	      reverse3d -reverse3d --reverse3d +reverse3d\
	      r3d -r3d --r3d +r3d\
	      rotate3d -rotate3d --rotate3d +rotate3d\
	      rotation3d -rotation3d --rotation3d +rotation3d\
	      sierpinski3d -sierpinski3d --sierpinski3d +sierpinski3d\
	      size3d -size3d --size3d +size3d\
	      skeleton3d -skeleton3d --skeleton3d +skeleton3d\
	      snapshot3d -snapshot3d --snapshot3d +snapshot3d\
	      sl3d -sl3d --sl3d +sl3d\
	      specl3d -specl3d --specl3d +specl3d\
	      ss3d -ss3d --ss3d +ss3d\
	      specs3d -specs3d --specs3d +specs3d\
	      sphere3d -sphere3d --sphere3d +sphere3d\
	      spherical3d -spherical3d --spherical3d +spherical3d\
	      spline3d -spline3d --spline3d +spline3d\
	      s3d -s3d --s3d +s3d\
	      split3d -split3d --split3d +split3d\
	      sprite3d -sprite3d --sprite3d +sprite3d\
	      sprites3d -sprites3d --sprites3d +sprites3d\
	      star3d -star3d --star3d +star3d\
	      streamline3d -streamline3d --streamline3d +streamline3d\
	      -3d --3d ---3d +-3d\
	      sub3d -sub3d --sub3d +sub3d\
	      superformula3d -superformula3d --superformula3d +superformula3d\
	      tensors3d -tensors3d --tensors3d +tensors3d\
	      text_pointcloud3d -text_pointcloud3d --text_pointcloud3d +text_pointcloud3d\
	      text3d -text3d --text3d +text3d\
	      t3d -t3d --t3d +t3d\
	      texturize3d -texturize3d --texturize3d +texturize3d\
	      torus3d -torus3d --torus3d +torus3d\
	      triangle3d -triangle3d --triangle3d +triangle3d\
	      volume3d -volume3d --volume3d +volume3d\
	      weird3d -weird3d --weird3d +weird3d\
	      ap -ap --ap +ap\
	      apply_parallel -apply_parallel --apply_parallel +apply_parallel\
	      apc -apc --apc +apc\
	      apply_parallel_channels -apply_parallel_channels --apply_parallel_channels +apply_parallel_channels\
	      apo -apo --apo +apo\
	      apply_parallel_overlap -apply_parallel_overlap --apply_parallel_overlap +apply_parallel_overlap\
	      at -at --at +at\
	      apply_tiles -apply_tiles --apply_tiles +apply_tiles\
	      apply_timeout -apply_timeout --apply_timeout +apply_timeout\
	      check -check --check +check\
	      check3d -check3d --check3d +check3d\
	      continue -continue --continue +continue\
	      break -break --break +break\
	      do -do --do +do\
	      done -done --done +done\
	      elif -elif --elif +elif\
	      else -else --else +else\
	      fi -fi --fi +fi\
	      endif -endif --endif +endif\
	      endl -endl --endl +endl\
	      endlocal -endlocal --endlocal +endlocal\
	      error -error --error +error\
	      eval -eval --eval +eval\
	      x -x --x +x\
	      exec -exec --exec +exec\
	      for -for --for +for\
	      if -if --if +if\
	      l -l --l +l\
	      local -local --local +local\
	      mutex -mutex --mutex +mutex\
	      noarg -noarg --noarg +noarg\
	      onfail -onfail --onfail +onfail\
	      parallel -parallel --parallel +parallel\
	      progress -progress --progress +progress\
	      q -q --q +q\
	      quit -quit --quit +quit\
	      repeat -repeat --repeat +repeat\
	      return -return --return +return\
	      rprogress -rprogress --rprogress +rprogress\
	      run -run --run +run\
	      skip -skip --skip +skip\
	      u -u --u +u\
	      status -status --status +status\
	      while -while --while +while\
	      array -array --array +array\
	      array_fade -array_fade --array_fade +array_fade\
	      array_mirror -array_mirror --array_mirror +array_mirror\
	      array_random -array_random --array_random +array_random\
	      frame -frame --frame +frame\
	      frame_blur -frame_blur --frame_blur +frame_blur\
	      frame_cube -frame_cube --frame_cube +frame_cube\
	      frame_fuzzy -frame_fuzzy --frame_fuzzy +frame_fuzzy\
	      frame_painting -frame_painting --frame_painting +frame_painting\
	      frame_pattern -frame_pattern --frame_pattern +frame_pattern\
	      frame_round -frame_round --frame_round +frame_round\
	      frame_seamless -frame_seamless --frame_seamless +frame_seamless\
	      frame_x -frame_x --frame_x +frame_x\
	      frame_xy -frame_xy --frame_xy +frame_xy\
	      frame_xyz -frame_xyz --frame_xyz +frame_xyz\
	      frame_y -frame_y --frame_y +frame_y\
	      img2ascii -img2ascii --img2ascii +img2ascii\
	      imagegrid -imagegrid --imagegrid +imagegrid\
	      imagegrid_hexagonal -imagegrid_hexagonal --imagegrid_hexagonal +imagegrid_hexagonal\
	      imagegrid_triangular -imagegrid_triangular --imagegrid_triangular +imagegrid_triangular\
	      linearize_tiles -linearize_tiles --linearize_tiles +linearize_tiles\
	      map_sprites -map_sprites --map_sprites +map_sprites\
	      pack -pack --pack +pack\
	      puzzle -puzzle --puzzle +puzzle\
	      quadratize_tiles -quadratize_tiles --quadratize_tiles +quadratize_tiles\
	      rotate_tiles -rotate_tiles --rotate_tiles +rotate_tiles\
	      shift_tiles -shift_tiles --shift_tiles +shift_tiles\
	      taquin -taquin --taquin +taquin\
	      tunnel -tunnel --tunnel +tunnel\
	      boxfitting -boxfitting --boxfitting +boxfitting\
	      brushify -brushify --brushify +brushify\
	      cartoon -cartoon --cartoon +cartoon\
	      color_ellipses -color_ellipses --color_ellipses +color_ellipses\
	      cubism -cubism --cubism +cubism\
	      draw_whirl -draw_whirl --draw_whirl +draw_whirl\
	      drawing -drawing --drawing +drawing\
	      drop_shadow -drop_shadow --drop_shadow +drop_shadow\
	      ellipsionism -ellipsionism --ellipsionism +ellipsionism\
	      fire_edges -fire_edges --fire_edges +fire_edges\
	      fractalize -fractalize --fractalize +fractalize\
	      glow -glow --glow +glow\
	      halftone -halftone --halftone +halftone\
	      hardsketchbw -hardsketchbw --hardsketchbw +hardsketchbw\
	      hearts -hearts --hearts +hearts\
	      houghsketchbw -houghsketchbw --houghsketchbw +houghsketchbw\
	      lightrays -lightrays --lightrays +lightrays\
	      light_relief -light_relief --light_relief +light_relief\
	      linify -linify --linify +linify\
	      mosaic -mosaic --mosaic +mosaic\
	      old_photo -old_photo --old_photo +old_photo\
	      pencilbw -pencilbw --pencilbw +pencilbw\
	      pixelsort -pixelsort --pixelsort +pixelsort\
	      polaroid -polaroid --polaroid +polaroid\
	      polygonize -polygonize --polygonize +polygonize\
	      poster_edges -poster_edges --poster_edges +poster_edges\
	      poster_hope -poster_hope --poster_hope +poster_hope\
	      rodilius -rodilius --rodilius +rodilius\
	      stained_glass -stained_glass --stained_glass +stained_glass\
	      stars -stars --stars +stars\
	      sketchbw -sketchbw --sketchbw +sketchbw\
	      sponge -sponge --sponge +sponge\
	      stencil -stencil --stencil +stencil\
	      stencilbw -stencilbw --stencilbw +stencilbw\
	      tetris -tetris --tetris +tetris\
	      warhol -warhol --warhol +warhol\
	      weave -weave --weave +weave\
	      whirls -whirls --whirls +whirls\
	      deform -deform --deform +deform\
	      euclidean2polar -euclidean2polar --euclidean2polar +euclidean2polar\
	      equirectangular2nadirzenith -equirectangular2nadirzenith --equirectangular2nadirzenith +equirectangular2nadirzenith\
	      fisheye -fisheye --fisheye +fisheye\
	      flower -flower --flower +flower\
	      kaleidoscope -kaleidoscope --kaleidoscope +kaleidoscope\
	      map_sphere -map_sphere --map_sphere +map_sphere\
	      nadirzenith2equirectangular -nadirzenith2equirectangular --nadirzenith2equirectangular +nadirzenith2equirectangular\
	      polar2euclidean -polar2euclidean --polar2euclidean +polar2euclidean\
	      raindrops -raindrops --raindrops +raindrops\
	      ripple -ripple --ripple +ripple\
	      rotoidoscope -rotoidoscope --rotoidoscope +rotoidoscope\
	      spherize -spherize --spherize +spherize\
	      symmetrize -symmetrize --symmetrize +symmetrize\
	      transform_polar -transform_polar --transform_polar +transform_polar\
	      twirl -twirl --twirl +twirl\
	      warp_perspective -warp_perspective --warp_perspective +warp_perspective\
	      water -water --water +water\
	      wave -wave --wave +wave\
	      wind -wind --wind +wind\
	      zoom -zoom --zoom +zoom\
	      cracks -cracks --cracks +cracks\
	      light_patch -light_patch --light_patch +light_patch\
	      noise_hurl -noise_hurl --noise_hurl +noise_hurl\
	      pixelize -pixelize --pixelize +pixelize\
	      scanlines -scanlines --scanlines +scanlines\
	      shade_stripes -shade_stripes --shade_stripes +shade_stripes\
	      shadow_patch -shadow_patch --shadow_patch +shadow_patch\
	      spread -spread --spread +spread\
	      stripes_y -stripes_y --stripes_y +stripes_y\
	      texturize_canvas -texturize_canvas --texturize_canvas +texturize_canvas\
	      texturize_paper -texturize_paper --texturize_paper +texturize_paper\
	      vignette -vignette --vignette +vignette\
	      watermark_visible -watermark_visible --watermark_visible +watermark_visible\
	      blend -blend --blend +blend\
	      blend_edges -blend_edges --blend_edges +blend_edges\
	      blend_fade -blend_fade --blend_fade +blend_fade\
	      blend_median -blend_median --blend_median +blend_median\
	      blend_seamless -blend_seamless --blend_seamless +blend_seamless\
	      fade_diamond -fade_diamond --fade_diamond +fade_diamond\
	      fade_linear -fade_linear --fade_linear +fade_linear\
	      fade_radial -fade_radial --fade_radial +fade_radial\
	      fade_x -fade_x --fade_x +fade_x\
	      fade_y -fade_y --fade_y +fade_y\
	      fade_z -fade_z --fade_z +fade_z\
	      sub_alpha -sub_alpha --sub_alpha +sub_alpha\
	      animate -animate --animate +animate\
	      apply_camera -apply_camera --apply_camera +apply_camera\
	      apply_files -apply_files --apply_files +apply_files\
	      apply_video -apply_video --apply_video +apply_video\
	      average_files -average_files --average_files +average_files\
	      average_video -average_video --average_video +average_video\
	      fade_files -fade_files --fade_files +fade_files\
	      fade_video -fade_video --fade_video +fade_video\
	      files2video -files2video --files2video +files2video\
	      median_files -median_files --median_files +median_files\
	      median_video -median_video --median_video +median_video\
	      morph -morph --morph +morph\
	      morph_files -morph_files --morph_files +morph_files\
	      morph_video -morph_video --morph_video +morph_video\
	      register_nonrigid -register_nonrigid --register_nonrigid +register_nonrigid\
	      register_rigid -register_rigid --register_rigid +register_rigid\
	      transition -transition --transition +transition\
	      transition3d -transition3d --transition3d +transition3d\
	      video2files -video2files --video2files +video2files\
	      alert -alert --alert +alert\
	      arg -arg --arg +arg\
	      arg2var -arg2var --arg2var +arg2var\
	      autocrop_coords -autocrop_coords --autocrop_coords +autocrop_coords\
	      basename -basename --basename +basename\
	      bin -bin --bin +bin\
	      bin2dec -bin2dec --bin2dec +bin2dec\
	      dec -dec --dec +dec\
	      dec2str -dec2str --dec2str +dec2str\
	      dec2bin -dec2bin --dec2bin +dec2bin\
	      dec2hex -dec2hex --dec2hex +dec2hex\
	      dec2oct -dec2oct --dec2oct +dec2oct\
	      fact -fact --fact +fact\
	      fibonacci -fibonacci --fibonacci +fibonacci\
	      file_mv -file_mv --file_mv +file_mv\
	      file_rand -file_rand --file_rand +file_rand\
	      file_rm -file_rm --file_rm +file_rm\
	      filename -filename --filename +filename\
	      files -files --files +files\
	      fitratio_wh -fitratio_wh --fitratio_wh +fitratio_wh\
	      fitscreen -fitscreen --fitscreen +fitscreen\
	      fps -fps --fps +fps\
	      gcd -gcd --gcd +gcd\
	      hex -hex --hex +hex\
	      hex2dec -hex2dec --hex2dec +hex2dec\
	      hex2img -hex2img --hex2img +hex2img\
	      hex2str -hex2str --hex2str +hex2str\
	      img2hex -img2hex --img2hex +img2hex\
	      img2str -img2str --img2str +img2str\
	      img2text -img2text --img2text +img2text\
	      img82hex -img82hex --img82hex +img82hex\
	      hex2img8 -hex2img8 --hex2img8 +hex2img8\
	      is_3d -is_3d --is_3d +is_3d\
	      is_ext -is_ext --is_ext +is_ext\
	      is_image_arg -is_image_arg --is_image_arg +is_image_arg\
	      is_pattern -is_pattern --is_pattern +is_pattern\
	      is_percent -is_percent --is_percent +is_percent\
	      is_videofilename -is_videofilename --is_videofilename +is_videofilename\
	      is_windows -is_windows --is_windows +is_windows\
	      math_lib -math_lib --math_lib +math_lib\
	      mad -mad --mad +mad\
	      max_w -max_w --max_w +max_w\
	      max_h -max_h --max_h +max_h\
	      max_d -max_d --max_d +max_d\
	      max_s -max_s --max_s +max_s\
	      max_wh -max_wh --max_wh +max_wh\
	      max_whd -max_whd --max_whd +max_whd\
	      max_whds -max_whds --max_whds +max_whds\
	      med -med --med +med\
	      median_color -median_color --median_color +median_color\
	      min_w -min_w --min_w +min_w\
	      min_h -min_h --min_h +min_h\
	      min_d -min_d --min_d +min_d\
	      min_s -min_s --min_s +min_s\
	      min_wh -min_wh --min_wh +min_wh\
	      min_whd -min_whd --min_whd +min_whd\
	      min_whds -min_whds --min_whds +min_whds\
	      normalize_filename -normalize_filename --normalize_filename +normalize_filename\
	      oct -oct --oct +oct\
	      oct2dec -oct2dec --oct2dec +oct2dec\
	      padint -padint --padint +padint\
	      path_gimp -path_gimp --path_gimp +path_gimp\
	      path_tmp -path_tmp --path_tmp +path_tmp\
	      reset -reset --reset +reset\
	      RGB -RGB --RGB +RGB\
	      RGBA -RGBA --RGBA +RGBA\
	      std_noise -std_noise --std_noise +std_noise\
	      str -str --str +str\
	      str2hex -str2hex --str2hex +str2hex\
	      strcontains -strcontains --strcontains +strcontains\
	      strlen -strlen --strlen +strlen\
	      strreplace -strreplace --strreplace +strreplace\
	      strlowercase -strlowercase --strlowercase +strlowercase\
	      strvar -strvar --strvar +strvar\
	      strver -strver --strver +strver\
	      tic -tic --tic +tic\
	      toc -toc --toc +toc\
	      uchar2str -uchar2str --uchar2str +uchar2str\
	      str2uchar -str2uchar --str2uchar +str2uchar\
	      average_colors -average_colors --average_colors +average_colors\
	      covariance_colors -covariance_colors --covariance_colors +covariance_colors\
	      demo -demo --demo +demo\
	      x_2048 -x_2048 --x_2048 +x_2048\
	      x_blobs -x_blobs --x_blobs +x_blobs\
	      x_bouncing -x_bouncing --x_bouncing +x_bouncing\
	      x_color_curves -x_color_curves --x_color_curves +x_color_curves\
	      x_colorize -x_colorize --x_colorize +x_colorize\
	      x_connect4 -x_connect4 --x_connect4 +x_connect4\
	      x_fire -x_fire --x_fire +x_fire\
	      x_fireworks -x_fireworks --x_fireworks +x_fireworks\
	      x_fisheye -x_fisheye --x_fisheye +x_fisheye\
	      x_fourier -x_fourier --x_fourier +x_fourier\
	      x_grab_color -x_grab_color --x_grab_color +x_grab_color\
	      x_hanoi -x_hanoi --x_hanoi +x_hanoi\
	      x_histogram -x_histogram --x_histogram +x_histogram\
	      x_hough -x_hough --x_hough +x_hough\
	      x_jawbreaker -x_jawbreaker --x_jawbreaker +x_jawbreaker\
	      x_landscape -x_landscape --x_landscape +x_landscape\
	      x_life -x_life --x_life +x_life\
	      x_light -x_light --x_light +x_light\
	      x_mandelbrot -x_mandelbrot --x_mandelbrot +x_mandelbrot\
	      x_mask_color -x_mask_color --x_mask_color +x_mask_color\
	      x_metaballs3d -x_metaballs3d --x_metaballs3d +x_metaballs3d\
	      x_minesweeper -x_minesweeper --x_minesweeper +x_minesweeper\
	      x_minimal_path -x_minimal_path --x_minimal_path +x_minimal_path\
	      x_pacman -x_pacman --x_pacman +x_pacman\
	      x_paint -x_paint --x_paint +x_paint\
	      x_plasma -x_plasma --x_plasma +x_plasma\
	      x_quantize_rgb -x_quantize_rgb --x_quantize_rgb +x_quantize_rgb\
	      x_reflection3d -x_reflection3d --x_reflection3d +x_reflection3d\
	      x_rubber3d -x_rubber3d --x_rubber3d +x_rubber3d\
	      x_segment -x_segment --x_segment +x_segment\
	      x_select_color -x_select_color --x_select_color +x_select_color\
	      x_select_function1d -x_select_function1d --x_select_function1d +x_select_function1d\
	      x_select_palette -x_select_palette --x_select_palette +x_select_palette\
	      x_shadebobs -x_shadebobs --x_shadebobs +x_shadebobs\
	      x_spline -x_spline --x_spline +x_spline\
	      x_starfield3d -x_starfield3d --x_starfield3d +x_starfield3d\
	      x_tetris -x_tetris --x_tetris +x_tetris\
	      x_tictactoe -x_tictactoe --x_tictactoe +x_tictactoe\
	      x_waves -x_waves --x_waves +x_waves\
	      x_whirl -x_whirl --x_whirl +x_whirl\
	     "

	coms="\
	      debug\
	      h\
	      help\
	      version\
	      camera\
	      clut\
	      m\
	      command\
	      cursor\
	      d\
	      display\
	      d0\
	      display0\
	      d3d\
	      display3d\
	      da\
	      display_array\
	      dfft\
	      display_fft\
	      dg\
	      display_graph\
	      dh\
	      display_histogram\
	      display_parametric\
	      dp\
	      display_parallel\
	      dp0\
	      display_parallel0\
	      display_polar\
	      dq\
	      display_quiver\
	      drgba\
	      display_rgba\
	      dt\
	      display_tensors\
	      dw\
	      display_warp\
	      document_gmic\
	      e\
	      echo\
	      echo_file\
	      echo_stdout\
	      function1d\
	      gmicky\
	      gmicky_deevad\
	      gmicky_mahvin\
	      gmicky_wilber\
	      i\
	      input\
	      input_cube\
	      ig\
	      input_glob\
	      input_gpl\
	      o\
	      output\
	      output_cube\
	      output_ggr\
	      on\
	      outputn\
	      op\
	      outputp\
	      ow\
	      outputw\
	      ox\
	      outputx\
	      pass\
	      plot\
	      p\
	      print\
	      rainbow_lut\
	      roddy\
	      screen\
	      select\
	      serialize\
	      shape_circle\
	      shape_cupid\
	      shape_diamond\
	      shape_fern\
	      shape_gear\
	      shape_heart\
	      shape_polygon\
	      shape_snowflake\
	      shape_star\
	      sh\
	      shared\
	      sp\
	      sample\
	      srand\
	      string\
	      testimage2d\
	      uncommand\
	      uniform_distribution\
	      unserialize\
	      up\
	      update\
	      v\
	      verbose\
	      wait\
	      warn\
	      w\
	      window\
	      k\
	      keep\
	      mv\
	      move\
	      nm\
	      name\
	      rm\
	      remove\
	      remove_duplicates\
	      remove_empty\
	      rv\
	      reverse\
	      sort_list\
	      sort_str\
	      abs\
	      acos\
	      acosh\
	      +\
	      add\
	      &\
	      and\
	      argmax\
	      argmin\
	      asin\
	      asinh\
	      atan\
	      atan2\
	      atanh\
	      <<\
	      bsl\
	      >>\
	      bsr\
	      cos\
	      cosh\
	      /\
	      div\
	      div_complex\
	      ==\
	      eq\
	      exp\
	      >=\
	      ge\
	      >\
	      gt\
	      <=\
	      le\
	      <\
	      lt\
	      log\
	      log10\
	      log2\
	      max\
	      m/\
	      mdiv\
	      min\
	      %\
	      mod\
	      m*\
	      mmul\
	      *\
	      mul\
	      mul_channels\
	      mul_complex\
	      !=\
	      neq\
	      |\
	      or\
	      ^\
	      pow\
	      rol\
	      ror\
	      sign\
	      sin\
	      sinc\
	      sinh\
	      sqr\
	      sqrt\
	      -\
	      sub\
	      tan\
	      tanh\
	      xor\
	      apply_curve\
	      apply_gamma\
	      balance_gamma\
	      cast\
	      complex2polar\
	      compress_clut\
	      compress_rle\
	      cumulate\
	      c\
	      cut\
	      decompress_clut\
	      decompress_rle\
	      discard\
	      eigen2tensor\
	      endian\
	      equalize\
	      f\
	      fill\
	      index\
	      ir\
	      inrange\
	      map\
	      map_clut\
	      mix_channels\
	      negate\
	      noise\
	      noise_poissondisk\
	      normp\
	      norm\
	      n\
	      normalize\
	      normalize_sum\
	      not\
	      orientation\
	      oneminus\
	      otsu\
	      polar2complex\
	      quantize\
	      quantize_area\
	      rand\
	      replace\
	      replace_inf\
	      replace_nan\
	      replace_seq\
	      replace_str\
	      round\
	      roundify\
	      =\
	      set\
	      set_vector_covariance\
	      threshold\
	      unrepeat\
	      vector2tensor\
	      adjust_colors\
	      ac\
	      apply_channels\
	      autoindex\
	      bayer2rgb\
	      cmy2rgb\
	      cmyk2rgb\
	      colorblind\
	      colormap\
	      compose_channels\
	      direction2rgb\
	      ditheredbw\
	      fc\
	      fill_color\
	      gradient2rgb\
	      hcy2rgb :\
	      hsi2rgb\
	      hsi82rgb\
	      hsl2rgb\
	      hsl82rgb\
	      hsv2rgb\
	      hsv82rgb\
	      int2rgb\
	      lab2lch\
	      lab2rgb\
	      lab2srgb\
	      lab82srgb\
	      lab2xyz\
	      lab82rgb\
	      lch2lab\
	      lch2rgb\
	      lch82rgb\
	      luminance\
	      mix_rgb\
	      pseudogray\
	      replace_color\
	      retinex\
	      rgb2bayer\
	      rgb2cmy\
	      rgb2cmyk\
	      rgb2hcy\
	      rgb2hsi\
	      rgb2hsi8\
	      rgb2hsl\
	      rgb2hsl8\
	      rgb2hsv\
	      rgb2hsv8\
	      rgb2lab\
	      rgb2lab8\
	      rgb2lch\
	      rgb2lch8\
	      rgb2luv\
	      rgb2int\
	      rgb2srgb\
	      rgb2xyz\
	      rgb2xyz8\
	      rgb2yiq\
	      rgb2yiq8\
	      rgb2ycbcr\
	      rgb2yuv\
	      rgb2yuv8\
	      remove_opacity\
	      select_color\
	      sepia\
	      solarize\
	      split_colors\
	      split_opacity\
	      srgb2lab\
	      srgb2lab8\
	      srgb2rgb\
	      to_a\
	      to_color\
	      to_colormode\
	      to_gray\
	      to_graya\
	      to_pseudogray\
	      to_rgb\
	      to_rgba\
	      transfer_colors\
	      transfer_rgb\
	      xyz2lab\
	      xyz2rgb\
	      xyz82rgb\
	      ycbcr2rgb\
	      yiq2rgb\
	      yiq82rgb\
	      yuv2rgb\
	      yuv82rgb\
	      a\
	      append\
	      append_tiles\
	      apply_scales\
	      autocrop\
	      autocrop_components\
	      autocrop_seq\
	      channels\
	      columns\
	      z\
	      crop\
	      diagonal\
	      elevate\
	      expand_x\
	      expand_xy\
	      expand_xyz\
	      expand_y\
	      expand_z\
	      extract_region\
	      montage\
	      mirror\
	      permute\
	      r\
	      resize\
	      resize_mn\
	      resize_pow2\
	      rr2d\
	      resize_ratio2d\
	      r2dx\
	      resize2dx\
	      r2dy\
	      resize2dy\
	      r3dx\
	      resize3dx\
	      r3dy\
	      resize3dy\
	      r3dz\
	      resize3dz\
	      rotate\
	      rotate_tileable\
	      rows\
	      scale2x\
	      scale3x\
	      scale_dcci2x\
	      seamcarve\
	      shift\
	      shrink_x\
	      shrink_xy\
	      shrink_xyz\
	      shrink_y\
	      shrink_z\
	      slices\
	      sort\
	      s\
	      split\
	      split_tiles\
	      undistort\
	      y\
	      unroll\
	      upscale_smart\
	      warp\
	      bandpass\
	      bilateral\
	      b\
	      blur\
	      blur_angular\
	      blur_bloom\
	      blur_linear\
	      blur_radial\
	      blur_selective\
	      blur_x\
	      blur_xy\
	      blur_xyz\
	      blur_y\
	      blur_z\
	      boxfilter\
	      bump2normal\
	      compose_freq\
	      convolve\
	      convolve_fft\
	      correlate\
	      cross_correlation\
	      curvature\
	      dct\
	      deblur\
	      deblur_goldmeinel\
	      deblur_richardsonlucy\
	      deconvolve_fft\
	      deinterlace\
	      denoise\
	      denoise_haar\
	      denoise_patchpca\
	      deriche\
	      dilate\
	      dilate_circ\
	      dilate_oct\
	      dilate_threshold\
	      divergence\
	      dog\
	      diffusiontensors\
	      edges\
	      erode\
	      erode_circ\
	      erode_oct\
	      erode_threshold\
	      fft\
	      g\
	      gradient\
	      gradient_norm\
	      gradient_orientation\
	      guided\
	      haar\
	      heat_flow\
	      hessian\
	      idct\
	      iee\
	      ifft\
	      ihaar\
	      inn\
	      inpaint\
	      inpaint_flow\
	      inpaint_holes\
	      inpaint_morpho\
	      inpaint_patchmatch\
	      inpaint_diffusion\
	      kuwahara\
	      laplacian\
	      lic\
	      map_tones\
	      map_tones_fast\
	      meancurvature_flow\
	      median\
	      nlmeans\
	      nlmeans_core\
	      normalize_local\
	      normalized_cross_correlation\
	      peronamalik_flow\
	      phase_correlation\
	      pde_flow\
	      periodize_poisson\
	      red_eye\
	      remove_hotpixels\
	      remove_pixels\
	      rolling_guidance\
	      sharpen\
	      smooth\
	      split_freq\
	      solve_poisson\
	      split_details\
	      structuretensors\
	      solidify\
	      syntexturize\
	      syntexturize_patchmatch\
	      tv_flow\
	      unsharp\
	      unsharp_octave\
	      vanvliet\
	      voronoi\
	      watermark_fourier\
	      watershed\
	      area\
	      area_fg\
	      at_line\
	      at_quadrangle\
	      barycenter\
	      delaunay\
	      detect_skin\
	      displacement\
	      distance\
	      fftpolar\
	      histogram\
	      histogram_nd\
	      histogram_cumul\
	      histogram_pointwise\
	      hough\
	      ifftpolar\
	      isophotes\
	      label\
	      label_fg\
	      max_patch\
	      min_patch\
	      minimal_path\
	      mse\
	      patches\
	      patchmatch\
	      plot2value\
	      pointcloud\
	      psnr\
	      segment_watershed\
	      shape2bump\
	      skeleton\
	      slic\
	      ssd_patch\
	      thinning\
	      tones\
	      topographic_map\
	      tsp\
	      variance_patch\
	      arrow\
	      axes\
	      ball\
	      chessboard\
	      cie1931\
	      circle\
	      close_binary\
	      ellipse\
	      flood\
	      gaussian\
	      graph\
	      grid\
	      j\
	      image\
	      line\
	      linethick\
	      mandelbrot\
	      marble\
	      maze\
	      maze_mask\
	      j3d\
	      object3d\
	      pack_sprites\
	      piechart\
	      plasma\
	      point\
	      polka_dots\
	      polygon\
	      quiver\
	      rectangle\
	      rorschach\
	      sierpinski\
	      spiralbw\
	      spline\
	      tetraedron_shade\
	      t\
	      text\
	      to\
	      text_outline\
	      triangle_shade\
	      truchet\
	      turbulence\
	      yinyang\
	      dijkstra\
	      eigen\
	      invert\
	      solve\
	      svd\
	      transpose\
	      trisolve\
	      +3d\
	      add3d\
	      animate3d\
	      apply_camera3d\
	      apply_matrix3d\
	      array3d\
	      arrow3d\
	      axes3d\
	      box3d\
	      c3d\
	      center3d\
	      circle3d\
	      circles3d\
	      col3d\
	      color3d\
	      colorcube3d\
	      cone3d\
	      cubes3d\
	      cup3d\
	      cylinder3d\
	      delaunay3d\
	      distribution3d\
	      /3d\
	      div3d\
	      db3d\
	      double3d\
	      elevation3d\
	      empty3d\
	      extrude3d\
	      f3d\
	      focale3d\
	      gaussians3d\
	      gmic3d\
	      gyroid3d\
	      histogram3d\
	      image6cube3d\
	      imageblocks3d\
	      imagecube3d\
	      imageplane3d\
	      imagepyramid3d\
	      imagerubik3d\
	      imagesphere3d\
	      isoline3d\
	      isosurface3d\
	      label3d\
	      label_points3d\
	      lathe3d\
	      l3d\
	      light3d\
	      line3d\
	      lissajous3d\
	      m3d\
	      mode3d\
	      md3d\
	      moded3d\
	      *3d\
	      mul3d\
	      n3d\
	      normalize3d\
	      o3d\
	      opacity3d\
	      parametric3d\
	      pca_patch3d\
	      plane3d\
	      point3d\
	      pointcloud3d\
	      pose3d\
	      p3d\
	      primitives3d\
	      projections3d\
	      pyramid3d\
	      quadrangle3d\
	      random3d\
	      rv3d\
	      reverse3d\
	      r3d\
	      rotate3d\
	      rotation3d\
	      sierpinski3d\
	      size3d\
	      skeleton3d\
	      snapshot3d\
	      sl3d\
	      specl3d\
	      ss3d\
	      specs3d\
	      sphere3d\
	      spherical3d\
	      spline3d\
	      s3d\
	      split3d\
	      sprite3d\
	      sprites3d\
	      star3d\
	      streamline3d\
	      -3d\
	      sub3d\
	      superformula3d\
	      tensors3d\
	      text_pointcloud3d\
	      text3d\
	      t3d\
	      texturize3d\
	      torus3d\
	      triangle3d\
	      volume3d\
	      weird3d\
	      ap\
	      apply_parallel\
	      apc\
	      apply_parallel_channels\
	      apo\
	      apply_parallel_overlap\
	      at\
	      apply_tiles\
	      apply_timeout\
	      check\
	      check3d\
	      continue\
	      break\
	      do\
	      done\
	      elif\
	      else\
	      fi\
	      endif\
	      endl\
	      endlocal\
	      error\
	      eval\
	      x\
	      exec\
	      for\
	      if\
	      l\
	      local\
	      mutex\
	      noarg\
	      onfail\
	      parallel\
	      progress\
	      q\
	      quit\
	      repeat\
	      return\
	      rprogress\
	      run\
	      skip\
	      u\
	      status\
	      while\
	      array\
	      array_fade\
	      array_mirror\
	      array_random\
	      frame\
	      frame_blur\
	      frame_cube\
	      frame_fuzzy\
	      frame_painting\
	      frame_pattern\
	      frame_round\
	      frame_seamless\
	      frame_x\
	      frame_xy\
	      frame_xyz\
	      frame_y\
	      img2ascii\
	      imagegrid\
	      imagegrid_hexagonal\
	      imagegrid_triangular\
	      linearize_tiles\
	      map_sprites\
	      pack\
	      puzzle\
	      quadratize_tiles\
	      rotate_tiles\
	      shift_tiles\
	      taquin\
	      tunnel\
	      boxfitting\
	      brushify\
	      cartoon\
	      color_ellipses\
	      cubism\
	      draw_whirl\
	      drawing\
	      drop_shadow\
	      ellipsionism\
	      fire_edges\
	      fractalize\
	      glow\
	      halftone\
	      hardsketchbw\
	      hearts\
	      houghsketchbw\
	      lightrays\
	      light_relief\
	      linify\
	      mosaic\
	      old_photo\
	      pencilbw\
	      pixelsort\
	      polaroid\
	      polygonize\
	      poster_edges\
	      poster_hope\
	      rodilius\
	      stained_glass\
	      stars\
	      sketchbw\
	      sponge\
	      stencil\
	      stencilbw\
	      tetris\
	      warhol\
	      weave\
	      whirls\
	      deform\
	      euclidean2polar\
	      equirectangular2nadirzenith\
	      fisheye\
	      flower\
	      kaleidoscope\
	      map_sphere\
	      nadirzenith2equirectangular\
	      polar2euclidean\
	      raindrops\
	      ripple\
	      rotoidoscope\
	      spherize\
	      symmetrize\
	      transform_polar\
	      twirl\
	      warp_perspective\
	      water\
	      wave\
	      wind\
	      zoom\
	      cracks\
	      light_patch\
	      noise_hurl\
	      pixelize\
	      scanlines\
	      shade_stripes\
	      shadow_patch\
	      spread\
	      stripes_y\
	      texturize_canvas\
	      texturize_paper\
	      vignette\
	      watermark_visible\
	      blend\
	      blend_edges\
	      blend_fade\
	      blend_median\
	      blend_seamless\
	      fade_diamond\
	      fade_linear\
	      fade_radial\
	      fade_x\
	      fade_y\
	      fade_z\
	      sub_alpha\
	      animate\
	      apply_camera\
	      apply_files\
	      apply_video\
	      average_files\
	      average_video\
	      fade_files\
	      fade_video\
	      files2video\
	      median_files\
	      median_video\
	      morph\
	      morph_files\
	      morph_video\
	      register_nonrigid\
	      register_rigid\
	      transition\
	      transition3d\
	      video2files\
	      alert\
	      arg\
	      arg2var\
	      autocrop_coords\
	      basename\
	      bin\
	      bin2dec\
	      dec\
	      dec2str\
	      dec2bin\
	      dec2hex\
	      dec2oct\
	      fact\
	      fibonacci\
	      file_mv\
	      file_rand\
	      file_rm\
	      filename\
	      files\
	      fitratio_wh\
	      fitscreen\
	      fps\
	      gcd\
	      hex\
	      hex2dec\
	      hex2img\
	      hex2str\
	      img2hex\
	      img2str\
	      img2text\
	      img82hex\
	      hex2img8\
	      is_3d\
	      is_ext\
	      is_image_arg\
	      is_pattern\
	      is_percent\
	      is_videofilename\
	      is_windows\
	      math_lib\
	      mad\
	      max_w\
	      max_h\
	      max_d\
	      max_s\
	      max_wh\
	      max_whd\
	      max_whds\
	      med\
	      median_color\
	      min_w\
	      min_h\
	      min_d\
	      min_s\
	      min_wh\
	      min_whd\
	      min_whds\
	      normalize_filename\
	      oct\
	      oct2dec\
	      padint\
	      path_gimp\
	      path_tmp\
	      reset\
	      RGB\
	      RGBA\
	      std_noise\
	      str\
	      str2hex\
	      strcontains\
	      strlen\
	      strreplace\
	      strlowercase\
	      strvar\
	      strver\
	      tic\
	      toc\
	      uchar2str\
	      str2uchar\
	      average_colors\
	      covariance_colors\
	      demo\
	      x_2048\
	      x_blobs\
	      x_bouncing\
	      x_color_curves\
	      x_colorize\
	      x_connect4\
	      x_fire\
	      x_fireworks\
	      x_fisheye\
	      x_fourier\
	      x_grab_color\
	      x_hanoi\
	      x_histogram\
	      x_hough\
	      x_jawbreaker\
	      x_landscape\
	      x_life\
	      x_light\
	      x_mandelbrot\
	      x_mask_color\
	      x_metaballs3d\
	      x_minesweeper\
	      x_minimal_path\
	      x_pacman\
	      x_paint\
	      x_plasma\
	      x_quantize_rgb\
	      x_reflection3d\
	      x_rubber3d\
	      x_segment\
	      x_select_color\
	      x_select_function1d\
	      x_select_palette\
	      x_shadebobs\
	      x_spline\
	      x_starfield3d\
	      x_tetris\
	      x_tictactoe\
	      x_waves\
	      x_whirl\
	     "

	case "${prev}" in
		"help" | "-help" | "--help" | "+help")
		COMPREPLY=( $(compgen -W "$coms" -- "$cur") )
		return 0
		;;
		"camera" | "-camera" | "--camera" | "+camera")
		COMPREPLY=( $(compgen -W "_camera_index>=0,_nb_frames>0,_skip_frames>=0,_capture_width>=0,_capture_height>=0 >") )
		return 0
		;;
		"clut" | "-clut" | "--clut" | "+clut")
		COMPREPLY=( $(compgen -W ""clut_name",_resolution>0 >") )
		return 0
		;;
		"command" | "-command" | "--command" | "+command")
		COMPREPLY=( $(compgen -W "_add_debug_info={_0_|_1_},{_filename_|_http[s]://URL_|_"string"_} >") )
		return 0
		;;
		"cursor" | "-cursor" | "--cursor" | "+cursor")
		COMPREPLY=( $(compgen -W "_mode_=_{_0=hide_|_1=show_} >") )
		return 0
		;;
		"display" | "-display" | "--display" | "+display")
		COMPREPLY=( $(compgen -W "_X[%]>=0,_Y[%]>=0,_Z[%]>=0,_exit_on_anykey={_0_|_1_} >") )
		return 0
		;;
		"display3d" | "-display3d" | "--display3d" | "+display3d")
		COMPREPLY=( $(compgen -W "_[background_image],_exit_on_anykey={_0_|_1_} _exit_on_anykey={_0_|_1_}") )
		return 0
		;;
		"display_array" | "-display_array" | "--display_array" | "+display_array")
		COMPREPLY=( $(compgen -W "_width>0,_height>0 >") )
		return 0
		;;
		"display_graph" | "-display_graph" | "--display_graph" | "+display_graph")
		COMPREPLY=( $(compgen -W "_width>=0,_height>=0,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_xlabel,_ylabel >") )
		return 0
		;;
		"display_histogram" | "-display_histogram" | "--display_histogram" | "+display_histogram")
		COMPREPLY=( $(compgen -W "_width>=0,_height>=0,_clusters>0,_min_value[%],_max_value[%],_show_axes={_0_|_1_},_expression. >") )
		return 0
		;;
		"display_parametric" | "-display_parametric" | "--display_parametric" | "+display_parametric")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,_outline_opacity,_vertex_radius>=0,_is_antialiased={_0_|_1_},_is_decorated={_0_|_1_},_xlabel,_ylabel >") )
		return 0
		;;
		"display_polar" | "-display_polar" | "--display_polar" | "+display_polar")
		COMPREPLY=( $(compgen -W "_width>32,_height>32,_outline_type,_fill_R,_fill_G,_fill_B,_theta_start,_theta_end,_xlabel,_ylabel >") )
		return 0
		;;
		"display_quiver" | "-display_quiver" | "--display_quiver" | "+display_quiver")
		COMPREPLY=( $(compgen -W "_size_factor>0,_arrow_size>=0,_color_mode={_0=monochrome_|_1=grayscale_|_2=color_} >") )
		return 0
		;;
		"display_rgba" | "-display_rgba" | "--display_rgba" | "+display_rgba")
		COMPREPLY=( $(compgen -W "_background_RGB_color >") )
		return 0
		;;
		"display_tensors" | "-display_tensors" | "--display_tensors" | "+display_tensors")
		COMPREPLY=( $(compgen -W "_size_factor>0,_ellipse_size>=0,_color_mode={_0=monochrome_|_1=grayscale_|_2=color_},_outline>=0 >") )
		return 0
		;;
		"display_warp" | "-display_warp" | "--display_warp" | "+display_warp")
		COMPREPLY=( $(compgen -W "_cell_size>0 >") )
		return 0
		;;
		"document_gmic" | "-document_gmic" | "--document_gmic" | "+document_gmic")
		COMPREPLY=( $(compgen -W "_format={_ascii_|_bash_|_html_|_images_|_latex_},_image_path,_write_wrapper={_0_|_1_} >") )
		return 0
		;;
		"echo" | "-echo" | "--echo" | "+echo")
		COMPREPLY=( $(compgen -W "message >") )
		return 0
		;;
		"echo_file" | "-echo_file" | "--echo_file" | "+echo_file")
		COMPREPLY=( $(compgen -W "filename,message >") )
		return 0
		;;
		"echo_stdout" | "-echo_stdout" | "--echo_stdout" | "+echo_stdout")
		COMPREPLY=( $(compgen -W "message >") )
		return 0
		;;
		"function1d" | "-function1d" | "--function1d" | "+function1d")
		COMPREPLY=( $(compgen -W "0<=smoothness<=1,x0>=0,y0,x1>=0,y1,...,xn>=0,yn >") )
		return 0
		;;
		"pass" | "-pass" | "--pass" | "+pass")
		COMPREPLY=( $(compgen -W "_shared_state={_0=non-shared_(copy)_|_1=shared_|_2=adaptive_} >") )
		return 0
		;;
		"plot" | "-plot" | "--plot" | "+plot")
		COMPREPLY=( $(compgen -W "_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_exit_on_anykey={_0_|_1_} \'formula\',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax,_exit_on_anykey={_0_|_1_}") )
		return 0
		;;
		"screen" | "-screen" | "--screen" | "+screen")
		COMPREPLY=( $(compgen -W "_x0[%],_y0[%],_x1[%],_y1[%] >") )
		return 0
		;;
		"select" | "-select" | "--select" | "+select")
		COMPREPLY=( $(compgen -W "feature_type,_X[%]>=0,_Y[%]>=0,_Z[%]>=0,_exit_on_anykey={_0_|_1_},_is_deep_selection={_0_|_1_} >") )
		return 0
		;;
		"serialize" | "-serialize" | "--serialize" | "+serialize")
		COMPREPLY=( $(compgen -W "_datatype,_is_compressed={_0_|_1_},_store_names={_0_|_1_} >") )
		return 0
		;;
		"shape_circle" | "-shape_circle" | "--shape_circle" | "+shape_circle")
		COMPREPLY=( $(compgen -W "_size>=0 >") )
		return 0
		;;
		"shape_cupid" | "-shape_cupid" | "--shape_cupid" | "+shape_cupid")
		COMPREPLY=( $(compgen -W "_size>=0 >") )
		return 0
		;;
		"shape_diamond" | "-shape_diamond" | "--shape_diamond" | "+shape_diamond")
		COMPREPLY=( $(compgen -W "_size>=0 >") )
		return 0
		;;
		"shape_fern" | "-shape_fern" | "--shape_fern" | "+shape_fern")
		COMPREPLY=( $(compgen -W "_size>=0,_density[%]>=0,_angle,0<=_opacity<=1,_type={_0=Asplenium_adiantum-nigrum_|_1=Thelypteridaceae_} >") )
		return 0
		;;
		"shape_gear" | "-shape_gear" | "--shape_gear" | "+shape_gear")
		COMPREPLY=( $(compgen -W "_size>=0,_nb_teeth>0,0<=_height_teeth<=100,0<=_offset_teeth<=100,0<=_inner_radius<=100 >") )
		return 0
		;;
		"shape_heart" | "-shape_heart" | "--shape_heart" | "+shape_heart")
		COMPREPLY=( $(compgen -W "_size>=0 >") )
		return 0
		;;
		"shape_polygon" | "-shape_polygon" | "--shape_polygon" | "+shape_polygon")
		COMPREPLY=( $(compgen -W "_size>=0,_nb_vertices>=3,_angle >") )
		return 0
		;;
		"shape_snowflake" | "-shape_snowflake" | "--shape_snowflake" | "+shape_snowflake")
		COMPREPLY=( $(compgen -W "size>=0,0<=_nb_recursions<=6 >") )
		return 0
		;;
		"shape_star" | "-shape_star" | "--shape_star" | "+shape_star")
		COMPREPLY=( $(compgen -W "_size>=0,_nb_branches>0,0<=_thickness<=1 >") )
		return 0
		;;
		"shared" | "-shared" | "--shared" | "+shared")
		COMPREPLY=( $(compgen -W "x0[%],x1[%],y[%],z[%],v[%] y0[%],y1[%],z[%],v[%] z0[%],z1[%],v[%] v0[%],v1[%] v0[%] (no_arg)") )
		return 0
		;;
		"sample" | "-sample" | "--sample" | "+sample")
		COMPREPLY=( $(compgen -W "_name1={_?_|_apples_|_barbara_|_boats_|_bottles_|_butterfly_|_cameraman_|_car_|_cat_|_cliff_|_david_|_dog_|_duck_|_eagle_|_elephant_|_earth_|_flower_|_fruits_|_greece_|_gummy_|_house_|_inside_|_landscape_|_leaf_|_lena_|_leno_|_lion_|_mandrill_|_monalisa_|_monkey_|_parrots_|_pencils_|_peppers_|_rooster_|_rose_|_square_|_teddy_|_tiger_|_wall_|_waterfall_|_zelda_},_name2,...,_nameN,_width={_>=0_|_0_(auto)_},_height_=_{_>=0_|_0_(auto)_} (no_arg)") )
		return 0
		;;
		"srand" | "-srand" | "--srand" | "+srand")
		COMPREPLY=( $(compgen -W "value (no_arg)") )
		return 0
		;;
		"string" | "-string" | "--string" | "+string")
		COMPREPLY=( $(compgen -W ""string" >") )
		return 0
		;;
		"testimage2d" | "-testimage2d" | "--testimage2d" | "+testimage2d")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,_spectrum>0 >") )
		return 0
		;;
		"uncommand" | "-uncommand" | "--uncommand" | "+uncommand")
		COMPREPLY=( $(compgen -W "command_name[,_command_name2,...] *") )
		return 0
		;;
		"uniform_distribution" | "-uniform_distribution" | "--uniform_distribution" | "+uniform_distribution")
		COMPREPLY=( $(compgen -W "nb_levels>=1,spectrum>=1 >") )
		return 0
		;;
		"verbose" | "-verbose" | "--verbose" | "+verbose")
		COMPREPLY=( $(compgen -W "level {_+_|_-_}") )
		return 0
		;;
		"wait" | "-wait" | "--wait" | "+wait")
		COMPREPLY=( $(compgen -W "delay (no_arg)") )
		return 0
		;;
		"warn" | "-warn" | "--warn" | "+warn")
		COMPREPLY=( $(compgen -W "_force_visible={_0_|_1_},_message >") )
		return 0
		;;
		"window" | "-window" | "--window" | "+window")
		COMPREPLY=( $(compgen -W "_width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_pos_x[%],_pos_y[%],_title >") )
		return 0
		;;
		"move" | "-move" | "--move" | "+move")
		COMPREPLY=( $(compgen -W "position[%] >") )
		return 0
		;;
		"name" | "-name" | "--name" | "+name")
		COMPREPLY=( $(compgen -W ""name1","name2",... >") )
		return 0
		;;
		"sort_list" | "-sort_list" | "--sort_list" | "+sort_list")
		COMPREPLY=( $(compgen -W "_ordering={_+_|_-_},_criterion >") )
		return 0
		;;
		"add" | "-add" | "--add" | "+add")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"and" | "-and" | "--and" | "+and")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"atan2" | "-atan2" | "--atan2" | "+atan2")
		COMPREPLY=( $(compgen -W "[x_argument] >") )
		return 0
		;;
		"bsl" | "-bsl" | "--bsl" | "+bsl")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"bsr" | "-bsr" | "--bsr" | "+bsr")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"div" | "-div" | "--div" | "+div")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"div_complex" | "-div_complex" | "--div_complex" | "+div_complex")
		COMPREPLY=( $(compgen -W "[divider_real,divider_imag],_epsilon>=0 >") )
		return 0
		;;
		"eq" | "-eq" | "--eq" | "+eq")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"ge" | "-ge" | "--ge" | "+ge")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"gt" | "-gt" | "--gt" | "+gt")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"le" | "-le" | "--le" | "+le")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"lt" | "-lt" | "--lt" | "+lt")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"max" | "-max" | "--max" | "+max")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"mdiv" | "-mdiv" | "--mdiv" | "+mdiv")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"min" | "-min" | "--min" | "+min")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"mod" | "-mod" | "--mod" | "+mod")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"mmul" | "-mmul" | "--mmul" | "+mmul")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"mul" | "-mul" | "--mul" | "+mul")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"mul_channels" | "-mul_channels" | "--mul_channels" | "+mul_channels")
		COMPREPLY=( $(compgen -W "value1,_value2,...,_valueN >") )
		return 0
		;;
		"mul_complex" | "-mul_complex" | "--mul_complex" | "+mul_complex")
		COMPREPLY=( $(compgen -W "[multiplier_real,multiplier_imag] >") )
		return 0
		;;
		"neq" | "-neq" | "--neq" | "+neq")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"or" | "-or" | "--or" | "+or")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"pow" | "-pow" | "--pow" | "+pow")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"rol" | "-rol" | "--rol" | "+rol")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"ror" | "-ror" | "--ror" | "+ror")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"sub" | "-sub" | "--sub" | "+sub")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"xor" | "-xor" | "--xor" | "+xor")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"apply_curve" | "-apply_curve" | "--apply_curve" | "+apply_curve")
		COMPREPLY=( $(compgen -W "0<=smoothness<=1,x0,y0,x1,y1,x2,y2,...,xN,yN >") )
		return 0
		;;
		"apply_gamma" | "-apply_gamma" | "--apply_gamma" | "+apply_gamma")
		COMPREPLY=( $(compgen -W "gamma>=0 >") )
		return 0
		;;
		"balance_gamma" | "-balance_gamma" | "--balance_gamma" | "+balance_gamma")
		COMPREPLY=( $(compgen -W "_ref_color1,... >") )
		return 0
		;;
		"cast" | "-cast" | "--cast" | "+cast")
		COMPREPLY=( $(compgen -W "datatype_source,datatype_target >") )
		return 0
		;;
		"compress_clut" | "-compress_clut" | "--compress_clut" | "+compress_clut")
		COMPREPLY=( $(compgen -W "_max_nbpoints>=1,_max_error>=0,_avg_error>=0 >") )
		return 0
		;;
		"compress_rle" | "-compress_rle" | "--compress_rle" | "+compress_rle")
		COMPREPLY=( $(compgen -W "_is_binary_data={_0_|_1_},_maximum_sequence_length>=0 >") )
		return 0
		;;
		"cumulate" | "-cumulate" | "--cumulate" | "+cumulate")
		COMPREPLY=( $(compgen -W "{_x_|_y_|_z_|_c_}...{_x_|_y_|_z_|_c_} (no_arg)") )
		return 0
		;;
		"cut" | "-cut" | "--cut" | "+cut")
		COMPREPLY=( $(compgen -W "{_value0[%]_|_[image0]_},{_value1[%]_|_[image1]_} [image] (no_arg)") )
		return 0
		;;
		"decompress_clut" | "-decompress_clut" | "--decompress_clut" | "+decompress_clut")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,_depth>0 >") )
		return 0
		;;
		"discard" | "-discard" | "--discard" | "+discard")
		COMPREPLY=( $(compgen -W "_value1,_value2,... {_x_|_y_|_z_|_c}...{_x_|_y_|_z_|_c},_value1,_value2,... (no_arg)") )
		return 0
		;;
		"endian" | "-endian" | "--endian" | "+endian")
		COMPREPLY=( $(compgen -W "_datatype >") )
		return 0
		;;
		"equalize" | "-equalize" | "--equalize" | "+equalize")
		COMPREPLY=( $(compgen -W "_nb_levels>0[%],_value_min[%],_value_max[%] >") )
		return 0
		;;
		"fill" | "-fill" | "--fill" | "+fill")
		COMPREPLY=( $(compgen -W "value1,_value2,... [image] \'formula\'") )
		return 0
		;;
		"index" | "-index" | "--index" | "+index")
		COMPREPLY=( $(compgen -W "{_[palette]_|_predefined_palette_},0<=_dithering<=1,_map_palette={_0_|_1_} >") )
		return 0
		;;
		"inrange" | "-inrange" | "--inrange" | "+inrange")
		COMPREPLY=( $(compgen -W "min[%],max[%] >") )
		return 0
		;;
		"map" | "-map" | "--map" | "+map")
		COMPREPLY=( $(compgen -W "[palette],_boundary_conditions predefined_palette,_boundary_conditions") )
		return 0
		;;
		"map_clut" | "-map_clut" | "--map_clut" | "+map_clut")
		COMPREPLY=( $(compgen -W "[clut]_|_"clut_name" >") )
		return 0
		;;
		"mix_channels" | "-mix_channels" | "--mix_channels" | "+mix_channels")
		COMPREPLY=( $(compgen -W "(a00,...,aMN) >") )
		return 0
		;;
		"negate" | "-negate" | "--negate" | "+negate")
		COMPREPLY=( $(compgen -W "base_value (no_arg)") )
		return 0
		;;
		"noise" | "-noise" | "--noise" | "+noise")
		COMPREPLY=( $(compgen -W "std_deviation>=0[%],_noise_type >") )
		return 0
		;;
		"noise_poissondisk" | "-noise_poissondisk" | "--noise_poissondisk" | "+noise_poissondisk")
		COMPREPLY=( $(compgen -W "_radius[%]>0,_max_sample_attempts>0 >") )
		return 0
		;;
		"normp" | "-normp" | "--normp" | "+normp")
		COMPREPLY=( $(compgen -W "p>=0 >") )
		return 0
		;;
		"normalize" | "-normalize" | "--normalize" | "+normalize")
		COMPREPLY=( $(compgen -W "{_value0[%]_|_[image0]_},{_value1[%]_|_[image1]_} [image]") )
		return 0
		;;
		"otsu" | "-otsu" | "--otsu" | "+otsu")
		COMPREPLY=( $(compgen -W "_nb_levels>0 >") )
		return 0
		;;
		"quantize" | "-quantize" | "--quantize" | "+quantize")
		COMPREPLY=( $(compgen -W "nb_levels>=1,_keep_values={_0_|_1_},_is_uniform={_0_|_1_} >") )
		return 0
		;;
		"quantize_area" | "-quantize_area" | "--quantize_area" | "+quantize_area")
		COMPREPLY=( $(compgen -W "_min_area>0 >") )
		return 0
		;;
		"rand" | "-rand" | "--rand" | "+rand")
		COMPREPLY=( $(compgen -W "{_value0[%]_|_[image0]_},_{_value1[%]_|_[image1]_} [image]") )
		return 0
		;;
		"replace" | "-replace" | "--replace" | "+replace")
		COMPREPLY=( $(compgen -W "source,target >") )
		return 0
		;;
		"replace_inf" | "-replace_inf" | "--replace_inf" | "+replace_inf")
		COMPREPLY=( $(compgen -W "_expression >") )
		return 0
		;;
		"replace_nan" | "-replace_nan" | "--replace_nan" | "+replace_nan")
		COMPREPLY=( $(compgen -W "_expression >") )
		return 0
		;;
		"replace_seq" | "-replace_seq" | "--replace_seq" | "+replace_seq")
		COMPREPLY=( $(compgen -W ""search_seq","replace_seq" >") )
		return 0
		;;
		"replace_str" | "-replace_str" | "--replace_str" | "+replace_str")
		COMPREPLY=( $(compgen -W ""search_str","replace_str" >") )
		return 0
		;;
		"round" | "-round" | "--round" | "+round")
		COMPREPLY=( $(compgen -W "rounding_value>=0,_rounding_type (no_arg)") )
		return 0
		;;
		"roundify" | "-roundify" | "--roundify" | "+roundify")
		COMPREPLY=( $(compgen -W "gamma>=0 >") )
		return 0
		;;
		"set" | "-set" | "--set" | "+set")
		COMPREPLY=( $(compgen -W "value,_x[%],_y[%],_z[%],_c[%] >") )
		return 0
		;;
		"set_vector_covariance" | "-set_vector_covariance" | "--set_vector_covariance" | "+set_vector_covariance")
		COMPREPLY=( $(compgen -W "coef1,coef2,...,coefN >") )
		return 0
		;;
		"threshold" | "-threshold" | "--threshold" | "+threshold")
		COMPREPLY=( $(compgen -W "value[%],_is_soft={_0_|_1_} (no_arg)") )
		return 0
		;;
		"adjust_colors" | "-adjust_colors" | "--adjust_colors" | "+adjust_colors")
		COMPREPLY=( $(compgen -W "-100<=_brightness<=100,-100<=_contrast<=100,-100<=_gamma<=100,-100<=_hue_shift<=100,-100<=_saturation<=100,_value_min,_value_max >") )
		return 0
		;;
		"apply_channels" | "-apply_channels" | "--apply_channels" | "+apply_channels")
		COMPREPLY=( $(compgen -W ""command",channels,_value_action={_0=none_|_1=cut_|_2=normalize_} >") )
		return 0
		;;
		"autoindex" | "-autoindex" | "--autoindex" | "+autoindex")
		COMPREPLY=( $(compgen -W "nb_colors>0,0<=_dithering<=1,_method={_0=median-cut_|_1=k-means_} >") )
		return 0
		;;
		"bayer2rgb" | "-bayer2rgb" | "--bayer2rgb" | "+bayer2rgb")
		COMPREPLY=( $(compgen -W "_GM_smoothness,_RB_smoothness1,_RB_smoothness2 >") )
		return 0
		;;
		"colorblind" | "-colorblind" | "--colorblind" | "+colorblind")
		COMPREPLY=( $(compgen -W "type={_0=protanopia_|_1=protanomaly_|_2=deuteranopia_|_3=deuteranomaly_|_4=tritanopia_|_5=tritanomaly_|_6=achromatopsia_|_7=achromatomaly_} >") )
		return 0
		;;
		"colormap" | "-colormap" | "--colormap" | "+colormap")
		COMPREPLY=( $(compgen -W "nb_levels>=0,_method={_0=median-cut_|_1=k-means_},_sort_vectors={_0_|_1_} >") )
		return 0
		;;
		"fill_color" | "-fill_color" | "--fill_color" | "+fill_color")
		COMPREPLY=( $(compgen -W "col1,...,colN >") )
		return 0
		;;
		"gradient2rgb" | "-gradient2rgb" | "--gradient2rgb" | "+gradient2rgb")
		COMPREPLY=( $(compgen -W "_is_orientation={_0_|_1_} >") )
		return 0
		;;
		"lab2rgb" | "-lab2rgb" | "--lab2rgb" | "+lab2rgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"lab2srgb" | "-lab2srgb" | "--lab2srgb" | "+lab2srgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"lab82srgb" | "-lab82srgb" | "--lab82srgb" | "+lab82srgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"lab2xyz" | "-lab2xyz" | "--lab2xyz" | "+lab2xyz")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"lab82rgb" | "-lab82rgb" | "--lab82rgb" | "+lab82rgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"lch2rgb" | "-lch2rgb" | "--lch2rgb" | "+lch2rgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"lch82rgb" | "-lch82rgb" | "--lch82rgb" | "+lch82rgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"mix_rgb" | "-mix_rgb" | "--mix_rgb" | "+mix_rgb")
		COMPREPLY=( $(compgen -W "a11,a12,a13,a21,a22,a23,a31,a32,a33 >") )
		return 0
		;;
		"pseudogray" | "-pseudogray" | "--pseudogray" | "+pseudogray")
		COMPREPLY=( $(compgen -W "_max_increment>=0,_JND_threshold>=0,_bits_depth>0 >") )
		return 0
		;;
		"replace_color" | "-replace_color" | "--replace_color" | "+replace_color")
		COMPREPLY=( $(compgen -W "tolerance[%]>=0,smoothness[%]>=0,src1,src2,...,dest1,dest2,... >") )
		return 0
		;;
		"retinex" | "-retinex" | "--retinex" | "+retinex")
		COMPREPLY=( $(compgen -W "_value_offset>0,_colorspace={_hsi_|_hsv_|_lab_|_lrgb_|_rgb_|_ycbcr_},0<=_min_cut<=100,0<=_max_cut<=100,_sigma_low>0,_sigma_mid>0,_sigma_high>0 >") )
		return 0
		;;
		"rgb2bayer" | "-rgb2bayer" | "--rgb2bayer" | "+rgb2bayer")
		COMPREPLY=( $(compgen -W "_start_pattern=0,_color_grid=0 >") )
		return 0
		;;
		"rgb2lab" | "-rgb2lab" | "--rgb2lab" | "+rgb2lab")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"rgb2lab8" | "-rgb2lab8" | "--rgb2lab8" | "+rgb2lab8")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"rgb2lch" | "-rgb2lch" | "--rgb2lch" | "+rgb2lch")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"rgb2lch8" | "-rgb2lch8" | "--rgb2lch8" | "+rgb2lch8")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"rgb2xyz" | "-rgb2xyz" | "--rgb2xyz" | "+rgb2xyz")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"rgb2xyz8" | "-rgb2xyz8" | "--rgb2xyz8" | "+rgb2xyz8")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"select_color" | "-select_color" | "--select_color" | "+select_color")
		COMPREPLY=( $(compgen -W "tolerance[%]>=0,col1,...,colN >") )
		return 0
		;;
		"split_colors" | "-split_colors" | "--split_colors" | "+split_colors")
		COMPREPLY=( $(compgen -W "_tolerance>=0,_max_nb_outputs>0,_min_area>0 >") )
		return 0
		;;
		"srgb2lab" | "-srgb2lab" | "--srgb2lab" | "+srgb2lab")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"srgb2lab8" | "-srgb2lab8" | "--srgb2lab8" | "+srgb2lab8")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"to_colormode" | "-to_colormode" | "--to_colormode" | "+to_colormode")
		COMPREPLY=( $(compgen -W "mode={_0=adaptive_|_1=G_|_2=GA_|_3=RGB_|_4=RGBA_} >") )
		return 0
		;;
		"to_pseudogray" | "-to_pseudogray" | "--to_pseudogray" | "+to_pseudogray")
		COMPREPLY=( $(compgen -W "_max_step>=0,_is_perceptual_constraint={_0_|_1_},_bits_depth>0 >") )
		return 0
		;;
		"transfer_colors" | "-transfer_colors" | "--transfer_colors" | "+transfer_colors")
		COMPREPLY=( $(compgen -W "[reference_image],_transfer_brightness={_0_|_1_} >") )
		return 0
		;;
		"transfer_rgb" | "-transfer_rgb" | "--transfer_rgb" | "+transfer_rgb")
		COMPREPLY=( $(compgen -W "[target],_gamma>=0,_regularization>=0,_luminosity_constraints>=0,_rgb_resolution>=0,_is_constraints={_0_|_1_} >") )
		return 0
		;;
		"xyz2lab" | "-xyz2lab" | "--xyz2lab" | "+xyz2lab")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"xyz2rgb" | "-xyz2rgb" | "--xyz2rgb" | "+xyz2rgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"xyz82rgb" | "-xyz82rgb" | "--xyz82rgb" | "+xyz82rgb")
		COMPREPLY=( $(compgen -W "illuminant={_0=D50_|_1=D65_} (no_arg)") )
		return 0
		;;
		"append" | "-append" | "--append" | "+append")
		COMPREPLY=( $(compgen -W "[image],axis,_centering axis,_centering") )
		return 0
		;;
		"append_tiles" | "-append_tiles" | "--append_tiles" | "+append_tiles")
		COMPREPLY=( $(compgen -W "_M>=0,_N>=0,0<=_centering_x<=1,0<=_centering_y<=1 >") )
		return 0
		;;
		"apply_scales" | "-apply_scales" | "--apply_scales" | "+apply_scales")
		COMPREPLY=( $(compgen -W ""command",number_of_scales>0,_min_scale[%]>=0,_max_scale[%]>=0,_scale_gamma>0,_interpolation >") )
		return 0
		;;
		"autocrop" | "-autocrop" | "--autocrop" | "+autocrop")
		COMPREPLY=( $(compgen -W "value1,value2,... (no_arg)") )
		return 0
		;;
		"autocrop_components" | "-autocrop_components" | "--autocrop_components" | "+autocrop_components")
		COMPREPLY=( $(compgen -W "_threshold[%],_min_area[%]>=0,_is_high_connectivity={_0_|_1_},_output_type={_0=crop_|_1=segmentation_|_2=coordinates_} >") )
		return 0
		;;
		"autocrop_seq" | "-autocrop_seq" | "--autocrop_seq" | "+autocrop_seq")
		COMPREPLY=( $(compgen -W "value1,value2,..._|_auto >") )
		return 0
		;;
		"channels" | "-channels" | "--channels" | "+channels")
		COMPREPLY=( $(compgen -W "{_[image0]_|_c0[%]_},_{_[image1]_|_c1[%]_} >") )
		return 0
		;;
		"columns" | "-columns" | "--columns" | "+columns")
		COMPREPLY=( $(compgen -W "{_[image0]_|_x0[%]_},_{_[image1]_|_x1[%]_} >") )
		return 0
		;;
		"crop" | "-crop" | "--crop" | "+crop")
		COMPREPLY=( $(compgen -W "x0[%],x1[%],_boundary_conditions x0[%],y0[%],x1[%],y1[%],_boundary_conditions x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary_conditions x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary_conditions (no_arg)") )
		return 0
		;;
		"elevate" | "-elevate" | "--elevate" | "+elevate")
		COMPREPLY=( $(compgen -W "_depth,_is_plain={_0_|_1_},_is_colored={_0_|_1_} >") )
		return 0
		;;
		"expand_x" | "-expand_x" | "--expand_x" | "+expand_x")
		COMPREPLY=( $(compgen -W "size_x>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"expand_xy" | "-expand_xy" | "--expand_xy" | "+expand_xy")
		COMPREPLY=( $(compgen -W "size>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"expand_xyz" | "-expand_xyz" | "--expand_xyz" | "+expand_xyz")
		COMPREPLY=( $(compgen -W "size>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"expand_y" | "-expand_y" | "--expand_y" | "+expand_y")
		COMPREPLY=( $(compgen -W "size_y>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"expand_z" | "-expand_z" | "--expand_z" | "+expand_z")
		COMPREPLY=( $(compgen -W "size_z>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"extract_region" | "-extract_region" | "--extract_region" | "+extract_region")
		COMPREPLY=( $(compgen -W "[label_image],_extract_xyz_coordinates={_0_|_1_},_label_1,...,_label_M >") )
		return 0
		;;
		"montage" | "-montage" | "--montage" | "+montage")
		COMPREPLY=( $(compgen -W ""_layout_code",_montage_mode={_0<=centering<=1_|_2<=scale+2<=3_},_output_mode={_0=single_layer_|_1=multiple_layers_},"_processing_command" >") )
		return 0
		;;
		"mirror" | "-mirror" | "--mirror" | "+mirror")
		COMPREPLY=( $(compgen -W "{_x_|_y_|_z_}...{_x_|_y_|_z_} >") )
		return 0
		;;
		"permute" | "-permute" | "--permute" | "+permute")
		COMPREPLY=( $(compgen -W "permutation_string >") )
		return 0
		;;
		"resize" | "-resize" | "--resize" | "+resize")
		COMPREPLY=( $(compgen -W "[image],_interpolation,_boundary_conditions,_ax,_ay,_az,_ac {[image_w]_|_width>0[%]},_{[image_h]_|_height>0[%]},_{[image_d]_|_depth>0[%]},_{[image_s]_|_spectrum>0[%]},_interpolation,_boundary_conditions,_ax,_ay,_az,_ac (no_arg)") )
		return 0
		;;
		"resize_mn" | "-resize_mn" | "--resize_mn" | "+resize_mn")
		COMPREPLY=( $(compgen -W "width[%]>=0,_height[%]>=0,_depth[%]>=0,_B_value,_C_value >") )
		return 0
		;;
		"resize_pow2" | "-resize_pow2" | "--resize_pow2" | "+resize_pow2")
		COMPREPLY=( $(compgen -W "_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"resize_ratio2d" | "-resize_ratio2d" | "--resize_ratio2d" | "+resize_ratio2d")
		COMPREPLY=( $(compgen -W "width>0,height>0,_mode={_0=inside_|_1=outside_|_2=padded_},0=<_interpolation<=6 >") )
		return 0
		;;
		"resize2dx" | "-resize2dx" | "--resize2dx" | "+resize2dx")
		COMPREPLY=( $(compgen -W "width[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"resize2dy" | "-resize2dy" | "--resize2dy" | "+resize2dy")
		COMPREPLY=( $(compgen -W "height[%]>=0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"resize3dx" | "-resize3dx" | "--resize3dx" | "+resize3dx")
		COMPREPLY=( $(compgen -W "width[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"resize3dy" | "-resize3dy" | "--resize3dy" | "+resize3dy")
		COMPREPLY=( $(compgen -W "height[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"resize3dz" | "-resize3dz" | "--resize3dz" | "+resize3dz")
		COMPREPLY=( $(compgen -W "depth[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"rotate" | "-rotate" | "--rotate" | "+rotate")
		COMPREPLY=( $(compgen -W "angle,_interpolation,_boundary_conditions,_center_x[%],_center_y[%] u,v,w,angle,interpolation,boundary_conditions,_center_x[%],_center_y[%],_center_z[%]") )
		return 0
		;;
		"rotate_tileable" | "-rotate_tileable" | "--rotate_tileable" | "+rotate_tileable")
		COMPREPLY=( $(compgen -W "angle,_max_size_factor>=0 >") )
		return 0
		;;
		"rows" | "-rows" | "--rows" | "+rows")
		COMPREPLY=( $(compgen -W "{_[image0]_|_y0[%]_},_{_[image1]_|_y1[%]_} >") )
		return 0
		;;
		"scale_dcci2x" | "-scale_dcci2x" | "--scale_dcci2x" | "+scale_dcci2x")
		COMPREPLY=( $(compgen -W "_edge_threshold>=0,_exponent>0,_extend_1px={_0=false_|_1=true_} >") )
		return 0
		;;
		"seamcarve" | "-seamcarve" | "--seamcarve" | "+seamcarve")
		COMPREPLY=( $(compgen -W "_width[%]>=0,_height[%]>=0,_is_priority_channel={_0_|_1_},_is_antialiasing={_0_|_1_},_maximum_seams[%]>=0 >") )
		return 0
		;;
		"shift" | "-shift" | "--shift" | "+shift")
		COMPREPLY=( $(compgen -W "vx[%],_vy[%],_vz[%],_vc[%],_boundary_conditions,_interpolation={_0=nearest_neighbor_|_1=linear_} >") )
		return 0
		;;
		"shrink_x" | "-shrink_x" | "--shrink_x" | "+shrink_x")
		COMPREPLY=( $(compgen -W "size_x>=0 >") )
		return 0
		;;
		"shrink_xy" | "-shrink_xy" | "--shrink_xy" | "+shrink_xy")
		COMPREPLY=( $(compgen -W "size>=0 >") )
		return 0
		;;
		"shrink_xyz" | "-shrink_xyz" | "--shrink_xyz" | "+shrink_xyz")
		COMPREPLY=( $(compgen -W "size>=0 >") )
		return 0
		;;
		"shrink_y" | "-shrink_y" | "--shrink_y" | "+shrink_y")
		COMPREPLY=( $(compgen -W "size_y>=0 >") )
		return 0
		;;
		"shrink_z" | "-shrink_z" | "--shrink_z" | "+shrink_z")
		COMPREPLY=( $(compgen -W "size_z>=0 >") )
		return 0
		;;
		"slices" | "-slices" | "--slices" | "+slices")
		COMPREPLY=( $(compgen -W "{_[image0]_|_z0[%]_},_{_[image1]_|_z1[%]_} >") )
		return 0
		;;
		"sort" | "-sort" | "--sort" | "+sort")
		COMPREPLY=( $(compgen -W "_ordering={_+_|_-_},_axis={_x_|_y_|_z_|_c_} >") )
		return 0
		;;
		"split" | "-split" | "--split" | "+split")
		COMPREPLY=( $(compgen -W "{_x_|_y_|_z_|_c_}...{_x_|_y_|_z_|_c_},_split_mode keep_splitting_values={_+_|_-_},_{_x_|_y_|_z_|_c_}...{_x_|_y_|_z_|_c_},value1,_value2,... (no_arg)") )
		return 0
		;;
		"split_tiles" | "-split_tiles" | "--split_tiles" | "+split_tiles")
		COMPREPLY=( $(compgen -W "M!=0,_N!=0,_is_homogeneous={_0_|_1_} >") )
		return 0
		;;
		"undistort" | "-undistort" | "--undistort" | "+undistort")
		COMPREPLY=( $(compgen -W "-1<=_amplitude<=1,_aspect_ratio,_zoom,_center_x[%],_center_y[%],_boundary_conditions >") )
		return 0
		;;
		"unroll" | "-unroll" | "--unroll" | "+unroll")
		COMPREPLY=( $(compgen -W "_axis={_x_|_y_|_z_|_c_} >") )
		return 0
		;;
		"upscale_smart" | "-upscale_smart" | "--upscale_smart" | "+upscale_smart")
		COMPREPLY=( $(compgen -W "width[%],_height[%],_depth,_smoothness>=0,_anisotropy=[0,1],sharpening>=0 >") )
		return 0
		;;
		"warp" | "-warp" | "--warp" | "+warp")
		COMPREPLY=( $(compgen -W "[warping_field],_mode,_interpolation,_boundary_conditions,_nb_frames>0 >") )
		return 0
		;;
		"bandpass" | "-bandpass" | "--bandpass" | "+bandpass")
		COMPREPLY=( $(compgen -W "_min_freq[%],_max_freq[%] >") )
		return 0
		;;
		"bilateral" | "-bilateral" | "--bilateral" | "+bilateral")
		COMPREPLY=( $(compgen -W "[guide],std_deviation_s[%]>=0,std_deviation_r[%]>=0,_sampling_s>=0,_sampling_r>=0 std_deviation_s[%]>=0,std_deviation_r[%]>=0,_sampling_s>=0,_sampling_r>=0") )
		return 0
		;;
		"blur" | "-blur" | "--blur" | "+blur")
		COMPREPLY=( $(compgen -W "std_deviation>=0[%],_boundary_conditions,_kernel axes,std_deviation>=0[%],_boundary_conditions,_kernel") )
		return 0
		;;
		"blur_angular" | "-blur_angular" | "--blur_angular" | "+blur_angular")
		COMPREPLY=( $(compgen -W "amplitude[%],_center_x[%],_center_y[%] >") )
		return 0
		;;
		"blur_bloom" | "-blur_bloom" | "--blur_bloom" | "+blur_bloom")
		COMPREPLY=( $(compgen -W "_amplitude>=0,_ratio>=0,_nb_iter>=0,_blend_operator={_+_|_max_|_min_},_kernel={_0=quasi-gaussian_(faster)_|_1=gaussian_|_2=box_|_3=triangle_|_4=quadratic_},_normalize_scales={_0_|_1_},_axes >") )
		return 0
		;;
		"blur_linear" | "-blur_linear" | "--blur_linear" | "+blur_linear")
		COMPREPLY=( $(compgen -W "amplitude1[%],_amplitude2[%],_angle,_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"blur_radial" | "-blur_radial" | "--blur_radial" | "+blur_radial")
		COMPREPLY=( $(compgen -W "amplitude[%],_center_x[%],_center_y[%] >") )
		return 0
		;;
		"blur_selective" | "-blur_selective" | "--blur_selective" | "+blur_selective")
		COMPREPLY=( $(compgen -W "sigma>=0,_edges>0,_nb_scales>0 >") )
		return 0
		;;
		"blur_x" | "-blur_x" | "--blur_x" | "+blur_x")
		COMPREPLY=( $(compgen -W "amplitude[%]>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"blur_xy" | "-blur_xy" | "--blur_xy" | "+blur_xy")
		COMPREPLY=( $(compgen -W "amplitude_x[%],amplitude_y[%],_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"blur_xyz" | "-blur_xyz" | "--blur_xyz" | "+blur_xyz")
		COMPREPLY=( $(compgen -W "amplitude_x[%],amplitude_y[%],amplitude_z,_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"blur_y" | "-blur_y" | "--blur_y" | "+blur_y")
		COMPREPLY=( $(compgen -W "amplitude[%]>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"blur_z" | "-blur_z" | "--blur_z" | "+blur_z")
		COMPREPLY=( $(compgen -W "amplitude[%]>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"boxfilter" | "-boxfilter" | "--boxfilter" | "+boxfilter")
		COMPREPLY=( $(compgen -W "size>=0[%],_order,_boundary_conditions,_nb_iter>=0 axes,size>=0[%],_order,_boundary_conditions,_nb_iter>=0") )
		return 0
		;;
		"convolve" | "-convolve" | "--convolve" | "+convolve")
		COMPREPLY=( $(compgen -W "[mask],_boundary_conditions,_is_normalized={_0_|_1_} >") )
		return 0
		;;
		"convolve_fft" | "-convolve_fft" | "--convolve_fft" | "+convolve_fft")
		COMPREPLY=( $(compgen -W "[mask] >") )
		return 0
		;;
		"correlate" | "-correlate" | "--correlate" | "+correlate")
		COMPREPLY=( $(compgen -W "[mask],_boundary_conditions,_is_normalized={_0_|_1_} >") )
		return 0
		;;
		"cross_correlation" | "-cross_correlation" | "--cross_correlation" | "+cross_correlation")
		COMPREPLY=( $(compgen -W "[mask] >") )
		return 0
		;;
		"dct" | "-dct" | "--dct" | "+dct")
		COMPREPLY=( $(compgen -W "_{_x_|_y_|_z_}...{_x_|_y_|_z_} (no_arg)") )
		return 0
		;;
		"deblur" | "-deblur" | "--deblur" | "+deblur")
		COMPREPLY=( $(compgen -W "amplitude[%]>=0,_nb_iter>=0,_dt>=0,_regul>=0,_regul_type={_0=Tikhonov_|_1=meancurv._|_2=TV_} >") )
		return 0
		;;
		"deblur_goldmeinel" | "-deblur_goldmeinel" | "--deblur_goldmeinel" | "+deblur_goldmeinel")
		COMPREPLY=( $(compgen -W "sigma>=0,__nb_iter>=0,__acceleration>=0,__kernel_type={_0=quasi-gaussian_(faster)_|_1=gaussian_}. >") )
		return 0
		;;
		"deblur_richardsonlucy" | "-deblur_richardsonlucy" | "--deblur_richardsonlucy" | "+deblur_richardsonlucy")
		COMPREPLY=( $(compgen -W "sigma>=0,_nb_iter>=0,__kernel_type={_0=quasi-gaussian_(faster)_|_1=gaussian_}. >") )
		return 0
		;;
		"deconvolve_fft" | "-deconvolve_fft" | "--deconvolve_fft" | "+deconvolve_fft")
		COMPREPLY=( $(compgen -W "[kernel],_regularization>=0 >") )
		return 0
		;;
		"deinterlace" | "-deinterlace" | "--deinterlace" | "+deinterlace")
		COMPREPLY=( $(compgen -W "_method={_0_|_1_} >") )
		return 0
		;;
		"denoise" | "-denoise" | "--denoise" | "+denoise")
		COMPREPLY=( $(compgen -W "std_deviation_s>=0,_std_deviation_p>=0,_patch_size>0,_lookup_size>0,_smoothness,_fast_approx={_0_|_1_} >") )
		return 0
		;;
		"denoise_haar" | "-denoise_haar" | "--denoise_haar" | "+denoise_haar")
		COMPREPLY=( $(compgen -W "_threshold>=0,_nb_scales>=0,_cycle_spinning>0 >") )
		return 0
		;;
		"denoise_patchpca" | "-denoise_patchpca" | "--denoise_patchpca" | "+denoise_patchpca")
		COMPREPLY=( $(compgen -W "_strength>=0,_patch_size>0,_lookup_size>0,_spatial_sampling>0 >") )
		return 0
		;;
		"deriche" | "-deriche" | "--deriche" | "+deriche")
		COMPREPLY=( $(compgen -W "std_deviation>=0[%],order={_0_|_1_|_2_},axis={_x_|_y_|_z_|_c_},_boundary_conditions >") )
		return 0
		;;
		"dilate" | "-dilate" | "--dilate" | "+dilate")
		COMPREPLY=( $(compgen -W "size>=0 size_x>=0,size_y>=0,size_z>=0 [kernel],_boundary_conditions,_is_real={_0=binary-mode_|_1=real-mode_}") )
		return 0
		;;
		"dilate_circ" | "-dilate_circ" | "--dilate_circ" | "+dilate_circ")
		COMPREPLY=( $(compgen -W "_size>=0,_boundary_conditions,_is_normalized={_0_|_1_} >") )
		return 0
		;;
		"dilate_oct" | "-dilate_oct" | "--dilate_oct" | "+dilate_oct")
		COMPREPLY=( $(compgen -W "_size>=0,_boundary_conditions,_is_normalized={_0_|_1_} >") )
		return 0
		;;
		"dilate_threshold" | "-dilate_threshold" | "--dilate_threshold" | "+dilate_threshold")
		COMPREPLY=( $(compgen -W "size_x>=1,size_y>=1,size_z>=1,_threshold>=0,_boundary_conditions >") )
		return 0
		;;
		"dog" | "-dog" | "--dog" | "+dog")
		COMPREPLY=( $(compgen -W "_sigma1>=0[%],_sigma2>=0[%] >") )
		return 0
		;;
		"diffusiontensors" | "-diffusiontensors" | "--diffusiontensors" | "+diffusiontensors")
		COMPREPLY=( $(compgen -W "_sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],is_sqrt={_0_|_1_} >") )
		return 0
		;;
		"edges" | "-edges" | "--edges" | "+edges")
		COMPREPLY=( $(compgen -W "_threshold[%]>=0 >") )
		return 0
		;;
		"erode" | "-erode" | "--erode" | "+erode")
		COMPREPLY=( $(compgen -W "size>=0 size_x>=0,size_y>=0,_size_z>=0 [kernel],_boundary_conditions,_is_real={_0=binary-mode_|_1=real-mode_}") )
		return 0
		;;
		"erode_circ" | "-erode_circ" | "--erode_circ" | "+erode_circ")
		COMPREPLY=( $(compgen -W "_size>=0,_boundary_conditions,_is_normalized={_0_|_1_} >") )
		return 0
		;;
		"erode_oct" | "-erode_oct" | "--erode_oct" | "+erode_oct")
		COMPREPLY=( $(compgen -W "_size>=0,_boundary_conditions,_is_normalized={_0_|_1_} >") )
		return 0
		;;
		"erode_threshold" | "-erode_threshold" | "--erode_threshold" | "+erode_threshold")
		COMPREPLY=( $(compgen -W "size_x>=1,size_y>=1,size_z>=1,_threshold>=0,_boundary_conditions >") )
		return 0
		;;
		"fft" | "-fft" | "--fft" | "+fft")
		COMPREPLY=( $(compgen -W "_{_x_|_y_|_z_}...{_x_|_y_|_z_} >") )
		return 0
		;;
		"gradient" | "-gradient" | "--gradient" | "+gradient")
		COMPREPLY=( $(compgen -W "{_x_|_y_|_z_}...{_x_|_y_|_z_},_scheme (no_arg)") )
		return 0
		;;
		"gradient_orientation" | "-gradient_orientation" | "--gradient_orientation" | "+gradient_orientation")
		COMPREPLY=( $(compgen -W "_dimension={1,2,3} >") )
		return 0
		;;
		"guided" | "-guided" | "--guided" | "+guided")
		COMPREPLY=( $(compgen -W "[guide],radius[%]>=0,regularization[%]>=0 radius[%]>=0,regularization[%]>=0") )
		return 0
		;;
		"haar" | "-haar" | "--haar" | "+haar")
		COMPREPLY=( $(compgen -W "scale>0 >") )
		return 0
		;;
		"heat_flow" | "-heat_flow" | "--heat_flow" | "+heat_flow")
		COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_keep_sequence={_0_|_1_} >") )
		return 0
		;;
		"hessian" | "-hessian" | "--hessian" | "+hessian")
		COMPREPLY=( $(compgen -W "{_xx_|_xy_|_xz_|_yy_|_yz_|_zz_}...{_xx_|_xy_|_xz_|_yy_|_yz_|_zz_} (no_arg)") )
		return 0
		;;
		"idct" | "-idct" | "--idct" | "+idct")
		COMPREPLY=( $(compgen -W "_{_x_|_y_|_z_}...{_x_|_y_|_z_} (no_arg)") )
		return 0
		;;
		"ifft" | "-ifft" | "--ifft" | "+ifft")
		COMPREPLY=( $(compgen -W "_{_x_|_y_|_z_}...{_x_|_y_|_z_} >") )
		return 0
		;;
		"ihaar" | "-ihaar" | "--ihaar" | "+ihaar")
		COMPREPLY=( $(compgen -W "scale>0 >") )
		return 0
		;;
		"inpaint" | "-inpaint" | "--inpaint" | "+inpaint")
		COMPREPLY=( $(compgen -W "[mask] [mask],0,_fast_method [mask],_patch_size>=1,_lookup_size>=1,_lookup_factor>=0,_lookup_increment!=0,_blend_size>=0,0<=_blend_threshold<=1,_blend_decay>=0,_blend_scales>=1,_is_blend_outer={_0_|_1_}") )
		return 0
		;;
		"inpaint_flow" | "-inpaint_flow" | "--inpaint_flow" | "+inpaint_flow")
		COMPREPLY=( $(compgen -W "[mask],_nb_global_iter>=0,_nb_local_iter>=0,_dt>0,_alpha>=0,_sigma>=0 >") )
		return 0
		;;
		"inpaint_holes" | "-inpaint_holes" | "--inpaint_holes" | "+inpaint_holes")
		COMPREPLY=( $(compgen -W "maximal_area[%]>=0,_tolerance>=0,_is_high_connectivity={_0_|_1_} >") )
		return 0
		;;
		"inpaint_morpho" | "-inpaint_morpho" | "--inpaint_morpho" | "+inpaint_morpho")
		COMPREPLY=( $(compgen -W "[mask] >") )
		return 0
		;;
		"inpaint_patchmatch" | "-inpaint_patchmatch" | "--inpaint_patchmatch" | "+inpaint_patchmatch")
		COMPREPLY=( $(compgen -W "[mask],_nb_scales={_0=auto_|_>0_},_patch_size>0,_nb_iterations_per_scale>0,_blend_size>=0,_allow_outer_blending={_0_|_1_},_is_already_initialized={_0_|_1_} >") )
		return 0
		;;
		"inpaint_diffusion" | "-inpaint_diffusion" | "--inpaint_diffusion" | "+inpaint_diffusion")
		COMPREPLY=( $(compgen -W "[mask],_nb_scales[%]>=0,_diffusion_type={_0=isotropic_|_1=delaunay-guided_|_2=edge-guided_|_3=mask-guided_},_diffusion_iter>=0 >") )
		return 0
		;;
		"kuwahara" | "-kuwahara" | "--kuwahara" | "+kuwahara")
		COMPREPLY=( $(compgen -W "size>0 >") )
		return 0
		;;
		"lic" | "-lic" | "--lic" | "+lic")
		COMPREPLY=( $(compgen -W "_amplitude>0,_channels>0 >") )
		return 0
		;;
		"map_tones" | "-map_tones" | "--map_tones" | "+map_tones")
		COMPREPLY=( $(compgen -W "_threshold>=0,_gamma>=0,_smoothness>=0,nb_iter>=0 >") )
		return 0
		;;
		"map_tones_fast" | "-map_tones_fast" | "--map_tones_fast" | "+map_tones_fast")
		COMPREPLY=( $(compgen -W "_radius[%]>=0,_power>=0 >") )
		return 0
		;;
		"meancurvature_flow" | "-meancurvature_flow" | "--meancurvature_flow" | "+meancurvature_flow")
		COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_keep_sequence={_0_|_1_} >") )
		return 0
		;;
		"median" | "-median" | "--median" | "+median")
		COMPREPLY=( $(compgen -W "size>=0,_threshold>0 >") )
		return 0
		;;
		"nlmeans" | "-nlmeans" | "--nlmeans" | "+nlmeans")
		COMPREPLY=( $(compgen -W "[guide],_patch_radius>0,_spatial_bandwidth>0,_tonal_bandwidth>0,_patch_measure_command _patch_radius>0,_spatial_bandwidth>0,_tonal_bandwidth>0,_patch_measure_command") )
		return 0
		;;
		"nlmeans_core" | "-nlmeans_core" | "--nlmeans_core" | "+nlmeans_core")
		COMPREPLY=( $(compgen -W "_reference_image,_scaling_map,_patch_radius>0,_spatial_bandwidth>0 >") )
		return 0
		;;
		"normalize_local" | "-normalize_local" | "--normalize_local" | "+normalize_local")
		COMPREPLY=( $(compgen -W "_amplitude>=0,_radius>0,_n_smooth>=0[%],_a_smooth>=0[%],_is_cut={_0_|_1_},_min=0,_max=255 >") )
		return 0
		;;
		"normalized_cross_correlation" | "-normalized_cross_correlation" | "--normalized_cross_correlation" | "+normalized_cross_correlation")
		COMPREPLY=( $(compgen -W "[mask] >") )
		return 0
		;;
		"peronamalik_flow" | "-peronamalik_flow" | "--peronamalik_flow" | "+peronamalik_flow")
		COMPREPLY=( $(compgen -W "K_factor>0,_nb_iter>=0,_dt,_keep_sequence={_0_|_1_} >") )
		return 0
		;;
		"phase_correlation" | "-phase_correlation" | "--phase_correlation" | "+phase_correlation")
		COMPREPLY=( $(compgen -W "[destination] >") )
		return 0
		;;
		"pde_flow" | "-pde_flow" | "--pde_flow" | "+pde_flow")
		COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_velocity_command,_keep_sequence={_0_|_1_} >") )
		return 0
		;;
		"red_eye" | "-red_eye" | "--red_eye" | "+red_eye")
		COMPREPLY=( $(compgen -W "0<=_threshold<=100,_smoothness>=0,0<=attenuation<=1 >") )
		return 0
		;;
		"remove_hotpixels" | "-remove_hotpixels" | "--remove_hotpixels" | "+remove_hotpixels")
		COMPREPLY=( $(compgen -W "_mask_size>0,__threshold[%]>0 >") )
		return 0
		;;
		"remove_pixels" | "-remove_pixels" | "--remove_pixels" | "+remove_pixels")
		COMPREPLY=( $(compgen -W "number_of_pixels[%]>=0 >") )
		return 0
		;;
		"rolling_guidance" | "-rolling_guidance" | "--rolling_guidance" | "+rolling_guidance")
		COMPREPLY=( $(compgen -W "std_deviation_s[%]>=0,std_deviation_r[%]>=0,_precision>=0 >") )
		return 0
		;;
		"sharpen" | "-sharpen" | "--sharpen" | "+sharpen")
		COMPREPLY=( $(compgen -W "amplitude>=0 amplitude>=0,edge>=0,_alpha,_sigma") )
		return 0
		;;
		"smooth" | "-smooth" | "--smooth" | "+smooth")
		COMPREPLY=( $(compgen -W "amplitude[%]>=0,_sharpness>=0,0<=_anisotropy<=1,_alpha[%],_sigma[%],_dl>0,_da>0,_precision>0,interpolation,_fast_approx={_0_|_1_} nb_iterations>=0,_sharpness>=0,_anisotropy,_alpha,_sigma,_dt>0,0 [tensor_field],_amplitude>=0,_dl>0,_da>0,_precision>0,_interpolation,_fast_approx={_0_|_1_} [tensor_field],_nb_iters>=0,_dt>0,0") )
		return 0
		;;
		"split_freq" | "-split_freq" | "--split_freq" | "+split_freq")
		COMPREPLY=( $(compgen -W "smoothness>0[%] >") )
		return 0
		;;
		"solve_poisson" | "-solve_poisson" | "--solve_poisson" | "+solve_poisson")
		COMPREPLY=( $(compgen -W ""laplacian_command",_nb_iterations>=0,_time_step>0,_nb_scales>=0 >") )
		return 0
		;;
		"split_details" | "-split_details" | "--split_details" | "+split_details")
		COMPREPLY=( $(compgen -W "_nb_scales>0,_base_scale[%]>=0,_detail_scale[%]>=0 >") )
		return 0
		;;
		"structuretensors" | "-structuretensors" | "--structuretensors" | "+structuretensors")
		COMPREPLY=( $(compgen -W "_scheme={_0=centered_|_1=forward/backward_} >") )
		return 0
		;;
		"solidify" | "-solidify" | "--solidify" | "+solidify")
		COMPREPLY=( $(compgen -W "_smoothness[%]>=0,_diffusion_type={_0=isotropic_|_1=delaunay-oriented_|_2=edge-oriented_},_diffusion_iter>=0 >") )
		return 0
		;;
		"syntexturize" | "-syntexturize" | "--syntexturize" | "+syntexturize")
		COMPREPLY=( $(compgen -W "_width[%]>0,_height[%]>0 >") )
		return 0
		;;
		"syntexturize_patchmatch" | "-syntexturize_patchmatch" | "--syntexturize_patchmatch" | "+syntexturize_patchmatch")
		COMPREPLY=( $(compgen -W "_width[%]>0,_height[%]>0,_nb_scales>=0,_patch_size>0,_blending_size>=0,_precision>=0 >") )
		return 0
		;;
		"tv_flow" | "-tv_flow" | "--tv_flow" | "+tv_flow")
		COMPREPLY=( $(compgen -W "_nb_iter>=0,_dt,_keep_sequence={_0_|_1_} >") )
		return 0
		;;
		"unsharp" | "-unsharp" | "--unsharp" | "+unsharp")
		COMPREPLY=( $(compgen -W "radius[%]>=0,_amount>=0,_threshold[%]>=0 >") )
		return 0
		;;
		"unsharp_octave" | "-unsharp_octave" | "--unsharp_octave" | "+unsharp_octave")
		COMPREPLY=( $(compgen -W "_nb_scales>0,_radius[%]>=0,_amount>=0,threshold[%]>=0 >") )
		return 0
		;;
		"vanvliet" | "-vanvliet" | "--vanvliet" | "+vanvliet")
		COMPREPLY=( $(compgen -W "std_deviation>=0[%],order={_0_|_1_|_2_|_3_},axis={_x_|_y_|_z_|_c_},_boundary_conditions >") )
		return 0
		;;
		"watermark_fourier" | "-watermark_fourier" | "--watermark_fourier" | "+watermark_fourier")
		COMPREPLY=( $(compgen -W "text,_size>0 >") )
		return 0
		;;
		"watershed" | "-watershed" | "--watershed" | "+watershed")
		COMPREPLY=( $(compgen -W "[priority_image],_is_high_connectivity={_0_|_1_} >") )
		return 0
		;;
		"area" | "-area" | "--area" | "+area")
		COMPREPLY=( $(compgen -W "tolerance>=0,is_high_connectivity={_0_|_1_} >") )
		return 0
		;;
		"area_fg" | "-area_fg" | "--area_fg" | "+area_fg")
		COMPREPLY=( $(compgen -W "tolerance>=0,is_high_connectivity={_0_|_1_} >") )
		return 0
		;;
		"at_line" | "-at_line" | "--at_line" | "+at_line")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],z0[%],x1[%],y1[%],z1[%] >") )
		return 0
		;;
		"at_quadrangle" | "-at_quadrangle" | "--at_quadrangle" | "+at_quadrangle")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],x1[%],y1[%],x2[%],y2[%],x3[%],y3[%],_interpolation,_boundary_conditions x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],x2[%],y2[%],z2[%],x3[%],y3[%],z3[%],_interpolation,_boundary_conditions") )
		return 0
		;;
		"detect_skin" | "-detect_skin" | "--detect_skin" | "+detect_skin")
		COMPREPLY=( $(compgen -W "0<=tolerance<=1,_skin_x,_skin_y,_skin_radius>=0 >") )
		return 0
		;;
		"displacement" | "-displacement" | "--displacement" | "+displacement")
		COMPREPLY=( $(compgen -W "[source_image],_smoothness,_precision>=0,_nb_scales>=0,_iteration_max>=0,is_backward={_0_|_1_},_[guide] >") )
		return 0
		;;
		"distance" | "-distance" | "--distance" | "+distance")
		COMPREPLY=( $(compgen -W "isovalue[%],_metric isovalue[%],[metric],_method") )
		return 0
		;;
		"histogram" | "-histogram" | "--histogram" | "+histogram")
		COMPREPLY=( $(compgen -W "_nb_levels>0[%],_value0[%],_value1[%] >") )
		return 0
		;;
		"histogram_nd" | "-histogram_nd" | "--histogram_nd" | "+histogram_nd")
		COMPREPLY=( $(compgen -W "nb_levels>0[%],_value0[%],_value1[%] >") )
		return 0
		;;
		"histogram_cumul" | "-histogram_cumul" | "--histogram_cumul" | "+histogram_cumul")
		COMPREPLY=( $(compgen -W "_nb_levels>0,_is_normalized={_0_|_1_},_val0[%],_val1[%] >") )
		return 0
		;;
		"histogram_pointwise" | "-histogram_pointwise" | "--histogram_pointwise" | "+histogram_pointwise")
		COMPREPLY=( $(compgen -W "nb_levels>0[%],_value0[%],_value1[%] >") )
		return 0
		;;
		"hough" | "-hough" | "--hough" | "+hough")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,gradient_norm_voting={_0_|_1_} >") )
		return 0
		;;
		"isophotes" | "-isophotes" | "--isophotes" | "+isophotes")
		COMPREPLY=( $(compgen -W "_nb_levels>0 >") )
		return 0
		;;
		"label" | "-label" | "--label" | "+label")
		COMPREPLY=( $(compgen -W "_tolerance>=0,is_high_connectivity={_0_|_1_} >") )
		return 0
		;;
		"label_fg" | "-label_fg" | "--label_fg" | "+label_fg")
		COMPREPLY=( $(compgen -W "tolerance>=0,is_high_connectivity={_0_|_1_} >") )
		return 0
		;;
		"max_patch" | "-max_patch" | "--max_patch" | "+max_patch")
		COMPREPLY=( $(compgen -W "_patch_size>=1 >") )
		return 0
		;;
		"min_patch" | "-min_patch" | "--min_patch" | "+min_patch")
		COMPREPLY=( $(compgen -W "_patch_size>=1 >") )
		return 0
		;;
		"minimal_path" | "-minimal_path" | "--minimal_path" | "+minimal_path")
		COMPREPLY=( $(compgen -W "x0[%]>=0,y0[%]>=0,z0[%]>=0,x1[%]>=0,y1[%]>=0,z1[%]>=0,_is_high_connectivity={_0_|_1_} >") )
		return 0
		;;
		"patches" | "-patches" | "--patches" | "+patches")
		COMPREPLY=( $(compgen -W "patch_width>0,patch_height>0,patch_depth>0,x0,y0,z0,_x1,_y1,_z1,...,_xN,_yN,_zN >") )
		return 0
		;;
		"patchmatch" | "-patchmatch" | "--patchmatch" | "+patchmatch")
		COMPREPLY=( $(compgen -W "[patch_image],patch_width>=1,_patch_height>=1,_patch_depth>=1,_nb_iterations>=0,_nb_randoms>=0,_output_score={_0_|_1_},_[guide] >") )
		return 0
		;;
		"pointcloud" | "-pointcloud" | "--pointcloud" | "+pointcloud")
		COMPREPLY=( $(compgen -W "_type_=_{_-X=-X-opacity_|_0=binary_|_1=cumulative_|_2=label_|_3=retrieve_coordinates_},_width,_height>0,_depth>0 >") )
		return 0
		;;
		"psnr" | "-psnr" | "--psnr" | "+psnr")
		COMPREPLY=( $(compgen -W "_max_value >") )
		return 0
		;;
		"segment_watershed" | "-segment_watershed" | "--segment_watershed" | "+segment_watershed")
		COMPREPLY=( $(compgen -W "_threshold>=0 >") )
		return 0
		;;
		"shape2bump" | "-shape2bump" | "--shape2bump" | "+shape2bump")
		COMPREPLY=( $(compgen -W "_resolution>=0,0<=_weight_avg_max_avg<=1,_dilation >") )
		return 0
		;;
		"skeleton" | "-skeleton" | "--skeleton" | "+skeleton")
		COMPREPLY=( $(compgen -W "_smoothness[%]>=0 >") )
		return 0
		;;
		"slic" | "-slic" | "--slic" | "+slic")
		COMPREPLY=( $(compgen -W "size>0,_regularity>=0,_nb_iterations>0 >") )
		return 0
		;;
		"ssd_patch" | "-ssd_patch" | "--ssd_patch" | "+ssd_patch")
		COMPREPLY=( $(compgen -W "[patch],_use_fourier={_0_|_1_},_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"tones" | "-tones" | "--tones" | "+tones")
		COMPREPLY=( $(compgen -W "N>0 >") )
		return 0
		;;
		"topographic_map" | "-topographic_map" | "--topographic_map" | "+topographic_map")
		COMPREPLY=( $(compgen -W "_nb_levels>0,_smoothness >") )
		return 0
		;;
		"tsp" | "-tsp" | "--tsp" | "+tsp")
		COMPREPLY=( $(compgen -W "_precision>=0 >") )
		return 0
		;;
		"variance_patch" | "-variance_patch" | "--variance_patch" | "+variance_patch")
		COMPREPLY=( $(compgen -W "_patch_size>=1 >") )
		return 0
		;;
		"arrow" | "-arrow" | "--arrow" | "+arrow")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],x1[%],y1[%],_thickness[%]>=0,_head_length[%]>=0,_head_thickness[%]>=0,_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"axes" | "-axes" | "--axes" | "+axes")
		COMPREPLY=( $(compgen -W "x0,x1,y0,y1,_font_height>=0,_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"ball" | "-ball" | "--ball" | "+ball")
		COMPREPLY=( $(compgen -W "_size>0,__R,_G,_B,0<=_specular_light<=8,0<=_specular_size<=8,_shadow>=0 >") )
		return 0
		;;
		"chessboard" | "-chessboard" | "--chessboard" | "+chessboard")
		COMPREPLY=( $(compgen -W "size1>0,_size2>0,_offset1,_offset2,_angle,_opacity,_color1,...,_color2,... >") )
		return 0
		;;
		"circle" | "-circle" | "--circle" | "+circle")
		COMPREPLY=( $(compgen -W "x[%],y[%],R[%],_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"close_binary" | "-close_binary" | "--close_binary" | "+close_binary")
		COMPREPLY=( $(compgen -W "0<=_endpoint_rate<=100,_endpoint_connectivity>=0,_spline_distmax>=0,_segment_distmax>=0,0<=_spline_anglemax<=180,_spline_roundness>=0,_area_min>=0,_allow_self_intersection={_0_|_1_},0<=_hd_detection_rate<=1,0<=_hd_angle<=180,_hd_grouping_dist>=0,0<=_hd_grouping_angle<=180,0<=_hd_grouping_ratio<=1 >") )
		return 0
		;;
		"ellipse" | "-ellipse" | "--ellipse" | "+ellipse")
		COMPREPLY=( $(compgen -W "x[%],y[%],R[%],r[%],_angle,_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"flood" | "-flood" | "--flood" | "+flood")
		COMPREPLY=( $(compgen -W "x[%],_y[%],_z[%],_tolerance>=0,_is_high_connectivity={_0_|_1_},_opacity,_color1,... >") )
		return 0
		;;
		"gaussian" | "-gaussian" | "--gaussian" | "+gaussian")
		COMPREPLY=( $(compgen -W "_sigma1[%],_sigma2[%],_angle >") )
		return 0
		;;
		"graph" | "-graph" | "--graph" | "+graph")
		COMPREPLY=( $(compgen -W "[function_image],_plot_type,_vertex_type,_ymin,_ymax,_opacity,_pattern,_color1,... \'formula\',_resolution>=0,_plot_type,_vertex_type,_xmin,xmax,_ymin,_ymax,_opacity,_pattern,_color1,...") )
		return 0
		;;
		"grid" | "-grid" | "--grid" | "+grid")
		COMPREPLY=( $(compgen -W "size_x[%]>=0,size_y[%]>=0,_offset_x[%],_offset_y[%],_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"image" | "-image" | "--image" | "+image")
		COMPREPLY=( $(compgen -W "[sprite],_x[%],_y[%],_z[%],_c[%],_opacity,_[sprite_mask],_max_opacity_mask >") )
		return 0
		;;
		"line" | "-line" | "--line" | "+line")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"linethick" | "-linethick" | "--linethick" | "+linethick")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],x1[%],y1[%],_thickness,_opacity,_color1 >") )
		return 0
		;;
		"mandelbrot" | "-mandelbrot" | "--mandelbrot" | "+mandelbrot")
		COMPREPLY=( $(compgen -W "z0r,z0i,z1r,z1i,_iteration_max>=0,_is_julia={_0_|_1_},_c0r,_c0i,_opacity >") )
		return 0
		;;
		"marble" | "-marble" | "--marble" | "+marble")
		COMPREPLY=( $(compgen -W "_image_weight,_pattern_weight,_angle,_amplitude,_sharpness>=0,_anisotropy>=0,_alpha,_sigma,_cut_low>=0,_cut_high>=0 >") )
		return 0
		;;
		"maze" | "-maze" | "--maze" | "+maze")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,_cell_size>0 >") )
		return 0
		;;
		"maze_mask" | "-maze_mask" | "--maze_mask" | "+maze_mask")
		COMPREPLY=( $(compgen -W "_cellsize>0 >") )
		return 0
		;;
		"object3d" | "-object3d" | "--object3d" | "+object3d")
		COMPREPLY=( $(compgen -W "[object3d],_x[%],_y[%],_z,_opacity,_rendering_mode,_is_double_sided={_0_|_1_},_is_zbuffer={_0_|_1_},_focale,_light_x,_light_y,_light_z,_specular_lightness,_specular_shininess >") )
		return 0
		;;
		"pack_sprites" | "-pack_sprites" | "--pack_sprites" | "+pack_sprites")
		COMPREPLY=( $(compgen -W "_nb_scales>=0,0<=_min_scale<=100,_allow_rotation={_0=0_deg._|_1=180_deg._|_2=90_deg._|_3=any_},_spacing,_precision>=0,max_iterations>=0 >") )
		return 0
		;;
		"piechart" | "-piechart" | "--piechart" | "+piechart")
		COMPREPLY=( $(compgen -W "label_height>=0,label_R,label_G,label_B,"label1",value1,R1,G1,B1,...,"labelN",valueN,RN,GN,BN >") )
		return 0
		;;
		"plasma" | "-plasma" | "--plasma" | "+plasma")
		COMPREPLY=( $(compgen -W "_alpha,_beta,_scale>=0 >") )
		return 0
		;;
		"point" | "-point" | "--point" | "+point")
		COMPREPLY=( $(compgen -W "x[%],y[%],_z[%],_opacity,_color1,... >") )
		return 0
		;;
		"polka_dots" | "-polka_dots" | "--polka_dots" | "+polka_dots")
		COMPREPLY=( $(compgen -W "diameter>=0,_density,_offset1,_offset2,_angle,_aliasing,_shading,_opacity,_color,... >") )
		return 0
		;;
		"polygon" | "-polygon" | "--polygon" | "+polygon")
		COMPREPLY=( $(compgen -W "N>=1,x1[%],y1[%],...,xN[%],yN[%],_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"quiver" | "-quiver" | "--quiver" | "+quiver")
		COMPREPLY=( $(compgen -W "[function_image],_sampling[%]>0,_factor>=0,_is_arrow={_0_|_1_},_opacity,_color1,... >") )
		return 0
		;;
		"rectangle" | "-rectangle" | "--rectangle" | "+rectangle")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],x1[%],y1[%],_opacity,_pattern,_color1,... >") )
		return 0
		;;
		"rorschach" | "-rorschach" | "--rorschach" | "+rorschach")
		COMPREPLY=( $(compgen -W "\'smoothness[%]>=0\',\'mirroring={_0=none_|_1=x_|_2=y_|_3=xy_} >") )
		return 0
		;;
		"sierpinski" | "-sierpinski" | "--sierpinski" | "+sierpinski")
		COMPREPLY=( $(compgen -W "recursion_level>=0 >") )
		return 0
		;;
		"spline" | "-spline" | "--spline" | "+spline")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],u0[%],v0[%],x1[%],y1[%],u1[%],v1[%],_opacity,_color1,... >") )
		return 0
		;;
		"tetraedron_shade" | "-tetraedron_shade" | "--tetraedron_shade" | "+tetraedron_shade")
		COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,...,R3,G3,B3,... >") )
		return 0
		;;
		"text" | "-text" | "--text" | "+text")
		COMPREPLY=( $(compgen -W "text,_x[%],_y[%],_font_height[%]>=0,_opacity,_color1,... >") )
		return 0
		;;
		"text_outline" | "-text_outline" | "--text_outline" | "+text_outline")
		COMPREPLY=( $(compgen -W "text,_x[%],_y[%],_font_height[%]>0,_outline>=0,_opacity,_color1,... >") )
		return 0
		;;
		"triangle_shade" | "-triangle_shade" | "--triangle_shade" | "+triangle_shade")
		COMPREPLY=( $(compgen -W "x0,y0,x1,y1,x2,y2,R0,G0,B0,...,R1,G1,B1,...,R2,G2,B2,... >") )
		return 0
		;;
		"truchet" | "-truchet" | "--truchet" | "+truchet")
		COMPREPLY=( $(compgen -W "_scale>0,_radius>=0,_pattern_type={_0=straight_|_1=curved_} >") )
		return 0
		;;
		"turbulence" | "-turbulence" | "--turbulence" | "+turbulence")
		COMPREPLY=( $(compgen -W "_radius>0,_octaves={1,2,3...,12},_alpha>0,_difference={-10,10},_mode={0,1,2,3} >") )
		return 0
		;;
		"dijkstra" | "-dijkstra" | "--dijkstra" | "+dijkstra")
		COMPREPLY=( $(compgen -W "starting_node>=0,ending_node>=0 >") )
		return 0
		;;
		"solve" | "-solve" | "--solve" | "+solve")
		COMPREPLY=( $(compgen -W "[image] >") )
		return 0
		;;
		"trisolve" | "-trisolve" | "--trisolve" | "+trisolve")
		COMPREPLY=( $(compgen -W "[image] >") )
		return 0
		;;
		"add3d" | "-add3d" | "--add3d" | "+add3d")
		COMPREPLY=( $(compgen -W "tx,_ty,_tz [object3d] (no_arg)") )
		return 0
		;;
		"animate3d" | "-animate3d" | "--animate3d" | "+animate3d")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,_angle_dx,_angle_dy,_angle_dz,_zoom_factor>=0,_filename >") )
		return 0
		;;
		"apply_camera3d" | "-apply_camera3d" | "--apply_camera3d" | "+apply_camera3d")
		COMPREPLY=( $(compgen -W "pos_x,pos_y,pos_z,target_x,target_y,target_z,up_x,up_y,up_z >") )
		return 0
		;;
		"apply_matrix3d" | "-apply_matrix3d" | "--apply_matrix3d" | "+apply_matrix3d")
		COMPREPLY=( $(compgen -W "a11,a12,a13,...,a31,a32,a33 >") )
		return 0
		;;
		"array3d" | "-array3d" | "--array3d" | "+array3d")
		COMPREPLY=( $(compgen -W "size_x>=1,_size_y>=1,_size_z>=1,_offset_x[%],_offset_y[%],_offset_y[%] >") )
		return 0
		;;
		"arrow3d" | "-arrow3d" | "--arrow3d" | "+arrow3d")
		COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1,_radius[%]>=0,_head_length[%]>=0,_head_radius[%]>=0 >") )
		return 0
		;;
		"axes3d" | "-axes3d" | "--axes3d" | "+axes3d")
		COMPREPLY=( $(compgen -W "_size_x,_size_y,_size_z,_font_size>0,_label_x,_label_y,_label_z >") )
		return 0
		;;
		"box3d" | "-box3d" | "--box3d" | "+box3d")
		COMPREPLY=( $(compgen -W "_size_x,_size_y,_size_z >") )
		return 0
		;;
		"circle3d" | "-circle3d" | "--circle3d" | "+circle3d")
		COMPREPLY=( $(compgen -W "_x0,_y0,_z0,_radius>=0 >") )
		return 0
		;;
		"circles3d" | "-circles3d" | "--circles3d" | "+circles3d")
		COMPREPLY=( $(compgen -W "_radius>=0,_is_filled={_0_|_1_} >") )
		return 0
		;;
		"color3d" | "-color3d" | "--color3d" | "+color3d")
		COMPREPLY=( $(compgen -W "R,_G,_B,_opacity >") )
		return 0
		;;
		"cone3d" | "-cone3d" | "--cone3d" | "+cone3d")
		COMPREPLY=( $(compgen -W "_radius,_height,_nb_subdivisions>0 >") )
		return 0
		;;
		"cubes3d" | "-cubes3d" | "--cubes3d" | "+cubes3d")
		COMPREPLY=( $(compgen -W "_size>=0 >") )
		return 0
		;;
		"cup3d" | "-cup3d" | "--cup3d" | "+cup3d")
		COMPREPLY=( $(compgen -W "_resolution>0 >") )
		return 0
		;;
		"cylinder3d" | "-cylinder3d" | "--cylinder3d" | "+cylinder3d")
		COMPREPLY=( $(compgen -W "_radius,_height,_nb_subdivisions>0 >") )
		return 0
		;;
		"div3d" | "-div3d" | "--div3d" | "+div3d")
		COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") )
		return 0
		;;
		"double3d" | "-double3d" | "--double3d" | "+double3d")
		COMPREPLY=( $(compgen -W "_is_double_sided={_0_|_1_} >") )
		return 0
		;;
		"elevation3d" | "-elevation3d" | "--elevation3d" | "+elevation3d")
		COMPREPLY=( $(compgen -W "z-factor [elevation_map] \'formula\' (no_arg)") )
		return 0
		;;
		"extrude3d" | "-extrude3d" | "--extrude3d" | "+extrude3d")
		COMPREPLY=( $(compgen -W "_depth>0,_resolution>0,_smoothness[%]>=0 >") )
		return 0
		;;
		"focale3d" | "-focale3d" | "--focale3d" | "+focale3d")
		COMPREPLY=( $(compgen -W "focale >") )
		return 0
		;;
		"gaussians3d" | "-gaussians3d" | "--gaussians3d" | "+gaussians3d")
		COMPREPLY=( $(compgen -W "_size>0,_opacity >") )
		return 0
		;;
		"gyroid3d" | "-gyroid3d" | "--gyroid3d" | "+gyroid3d")
		COMPREPLY=( $(compgen -W "_resolution>0,_zoom >") )
		return 0
		;;
		"imageblocks3d" | "-imageblocks3d" | "--imageblocks3d" | "+imageblocks3d")
		COMPREPLY=( $(compgen -W "_maximum_elevation,_smoothness[%]>=0 >") )
		return 0
		;;
		"imagerubik3d" | "-imagerubik3d" | "--imagerubik3d" | "+imagerubik3d")
		COMPREPLY=( $(compgen -W "_xy_tiles>=1,0<=xy_shift<=100,0<=z_shift<=100 >") )
		return 0
		;;
		"imagesphere3d" | "-imagesphere3d" | "--imagesphere3d" | "+imagesphere3d")
		COMPREPLY=( $(compgen -W "_resolution1>=3,_resolution2>=3 >") )
		return 0
		;;
		"isoline3d" | "-isoline3d" | "--isoline3d" | "+isoline3d")
		COMPREPLY=( $(compgen -W "isovalue[%] \'formula\',value,_x0,_y0,_x1,_y1,_size_x>0[%],_size_y>0[%]") )
		return 0
		;;
		"isosurface3d" | "-isosurface3d" | "--isosurface3d" | "+isosurface3d")
		COMPREPLY=( $(compgen -W "isovalue[%] \'formula\',value,_x0,_y0,_z0,_x1,_y1,_z1,_size_x>0[%],_size_y>0[%],_size_z>0[%]") )
		return 0
		;;
		"label3d" | "-label3d" | "--label3d" | "+label3d")
		COMPREPLY=( $(compgen -W ""text",font_height>=0,_opacity,_color1,... >") )
		return 0
		;;
		"label_points3d" | "-label_points3d" | "--label_points3d" | "+label_points3d")
		COMPREPLY=( $(compgen -W "_label_size>0,_opacity >") )
		return 0
		;;
		"lathe3d" | "-lathe3d" | "--lathe3d" | "+lathe3d")
		COMPREPLY=( $(compgen -W "_resolution>0,_smoothness[%]>=0,_max_angle>=0 >") )
		return 0
		;;
		"light3d" | "-light3d" | "--light3d" | "+light3d")
		COMPREPLY=( $(compgen -W "position_x,position_y,position_z [texture] (no_arg)") )
		return 0
		;;
		"line3d" | "-line3d" | "--line3d" | "+line3d")
		COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1 >") )
		return 0
		;;
		"lissajous3d" | "-lissajous3d" | "--lissajous3d" | "+lissajous3d")
		COMPREPLY=( $(compgen -W "resolution>1,a,A,b,B,c,C >") )
		return 0
		;;
		"mode3d" | "-mode3d" | "--mode3d" | "+mode3d")
		COMPREPLY=( $(compgen -W "_mode >") )
		return 0
		;;
		"moded3d" | "-moded3d" | "--moded3d" | "+moded3d")
		COMPREPLY=( $(compgen -W "_mode >") )
		return 0
		;;
		"mul3d" | "-mul3d" | "--mul3d" | "+mul3d")
		COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") )
		return 0
		;;
		"opacity3d" | "-opacity3d" | "--opacity3d" | "+opacity3d")
		COMPREPLY=( $(compgen -W "_opacity >") )
		return 0
		;;
		"parametric3d" | "-parametric3d" | "--parametric3d" | "+parametric3d")
		COMPREPLY=( $(compgen -W "_x(a,b),_y(a,b),_z(a,b),_amin,_amax,_bmin,_bmax,_res_a>0,_res_b>0,_res_x>0,_res_y>0,_res_z>0,_smoothness>=0,_isovalue>=0 >") )
		return 0
		;;
		"pca_patch3d" | "-pca_patch3d" | "--pca_patch3d" | "+pca_patch3d")
		COMPREPLY=( $(compgen -W "_patch_size>0,_M>0,_N>0,_normalize_input={_0_|_1_},_normalize_output={_0_|_1_},_lambda_xy >") )
		return 0
		;;
		"plane3d" | "-plane3d" | "--plane3d" | "+plane3d")
		COMPREPLY=( $(compgen -W "_size_x,_size_y,_nb_subdivisions_x>0,_nb_subdisivions_y>0 >") )
		return 0
		;;
		"point3d" | "-point3d" | "--point3d" | "+point3d")
		COMPREPLY=( $(compgen -W "x0,y0,z0 >") )
		return 0
		;;
		"pose3d" | "-pose3d" | "--pose3d" | "+pose3d")
		COMPREPLY=( $(compgen -W "p1,...,p12 >") )
		return 0
		;;
		"primitives3d" | "-primitives3d" | "--primitives3d" | "+primitives3d")
		COMPREPLY=( $(compgen -W "mode >") )
		return 0
		;;
		"projections3d" | "-projections3d" | "--projections3d" | "+projections3d")
		COMPREPLY=( $(compgen -W "_x[%],_y[%],_z[%],_is_bounding_box={_0_|_1_} >") )
		return 0
		;;
		"pyramid3d" | "-pyramid3d" | "--pyramid3d" | "+pyramid3d")
		COMPREPLY=( $(compgen -W "width,height >") )
		return 0
		;;
		"quadrangle3d" | "-quadrangle3d" | "--quadrangle3d" | "+quadrangle3d")
		COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3 >") )
		return 0
		;;
		"random3d" | "-random3d" | "--random3d" | "+random3d")
		COMPREPLY=( $(compgen -W "nb_points>=0 >") )
		return 0
		;;
		"rotate3d" | "-rotate3d" | "--rotate3d" | "+rotate3d")
		COMPREPLY=( $(compgen -W "u,v,w,angle >") )
		return 0
		;;
		"rotation3d" | "-rotation3d" | "--rotation3d" | "+rotation3d")
		COMPREPLY=( $(compgen -W "u,v,w,angle >") )
		return 0
		;;
		"sierpinski3d" | "-sierpinski3d" | "--sierpinski3d" | "+sierpinski3d")
		COMPREPLY=( $(compgen -W "_recursion_level>=0,_width,_height >") )
		return 0
		;;
		"skeleton3d" | "-skeleton3d" | "--skeleton3d" | "+skeleton3d")
		COMPREPLY=( $(compgen -W "_metric,_frame_type={_0=squares_|_1=diamonds_|_2=circles_|_3=auto_},_skeleton_opacity,_frame_opacity,_is_frame_wireframe={_0_|_1_} >") )
		return 0
		;;
		"snapshot3d" | "-snapshot3d" | "--snapshot3d" | "+snapshot3d")
		COMPREPLY=( $(compgen -W "_size>0,_zoom>=0,_backgroundR,_backgroundG,_backgroundB,_backgroundA [background_image],zoom>=0") )
		return 0
		;;
		"specl3d" | "-specl3d" | "--specl3d" | "+specl3d")
		COMPREPLY=( $(compgen -W "value>=0 >") )
		return 0
		;;
		"specs3d" | "-specs3d" | "--specs3d" | "+specs3d")
		COMPREPLY=( $(compgen -W "value>=0 >") )
		return 0
		;;
		"sphere3d" | "-sphere3d" | "--sphere3d" | "+sphere3d")
		COMPREPLY=( $(compgen -W "radius,_nb_recursions>=0 >") )
		return 0
		;;
		"spherical3d" | "-spherical3d" | "--spherical3d" | "+spherical3d")
		COMPREPLY=( $(compgen -W "_nb_azimuth>=3,_nb_zenith>=3,_radius_function(phi,theta) >") )
		return 0
		;;
		"spline3d" | "-spline3d" | "--spline3d" | "+spline3d")
		COMPREPLY=( $(compgen -W "x0[%],y0[%],z0[%],u0[%],v0[%],w0[%],x1[%],y1[%],z1[%],u1[%],v1[%],w1[%],_nb_vertices>=2 >") )
		return 0
		;;
		"split3d" | "-split3d" | "--split3d" | "+split3d")
		COMPREPLY=( $(compgen -W "_keep_shared_data={_0_|_1_} >") )
		return 0
		;;
		"sprites3d" | "-sprites3d" | "--sprites3d" | "+sprites3d")
		COMPREPLY=( $(compgen -W "[sprite],_sprite_has_alpha_channel={_0_|_1_} >") )
		return 0
		;;
		"star3d" | "-star3d" | "--star3d" | "+star3d")
		COMPREPLY=( $(compgen -W "_nb_branches>0,0<=_thickness<=1 >") )
		return 0
		;;
		"streamline3d" | "-streamline3d" | "--streamline3d" | "+streamline3d")
		COMPREPLY=( $(compgen -W "x[%],y[%],z[%],_L>=0,_dl>0,_interpolation,_is_backward={_0_|_1_},_is_oriented={_0_|_1_} \'formula\',x,y,z,_L>=0,_dl>0,_interpolation,_is_backward={_0_|_1_},_is_oriented={_0_|_1_}") )
		return 0
		;;
		"sub3d" | "-sub3d" | "--sub3d" | "+sub3d")
		COMPREPLY=( $(compgen -W "tx,_ty,_tz >") )
		return 0
		;;
		"superformula3d" | "-superformula3d" | "--superformula3d" | "+superformula3d")
		COMPREPLY=( $(compgen -W "resolution>1,m>=1,n1,n2,n3 >") )
		return 0
		;;
		"tensors3d" | "-tensors3d" | "--tensors3d" | "+tensors3d")
		COMPREPLY=( $(compgen -W "_radius_factor>=0,_shape={_0=box_|_>=N=ellipsoid_},_radius_min>=0 >") )
		return 0
		;;
		"text_pointcloud3d" | "-text_pointcloud3d" | "--text_pointcloud3d" | "+text_pointcloud3d")
		COMPREPLY=( $(compgen -W "_"text1",_"text2",_smoothness >") )
		return 0
		;;
		"text3d" | "-text3d" | "--text3d" | "+text3d")
		COMPREPLY=( $(compgen -W "text,_font_height>0,_depth>0,_smoothness >") )
		return 0
		;;
		"texturize3d" | "-texturize3d" | "--texturize3d" | "+texturize3d")
		COMPREPLY=( $(compgen -W "[ind_texture],_[ind_coords] >") )
		return 0
		;;
		"torus3d" | "-torus3d" | "--torus3d" | "+torus3d")
		COMPREPLY=( $(compgen -W "_radius1,_radius2,_nb_subdivisions1>2,_nb_subdivisions2>2 >") )
		return 0
		;;
		"triangle3d" | "-triangle3d" | "--triangle3d" | "+triangle3d")
		COMPREPLY=( $(compgen -W "x0,y0,z0,x1,y1,z1,x2,y2,z2 >") )
		return 0
		;;
		"weird3d" | "-weird3d" | "--weird3d" | "+weird3d")
		COMPREPLY=( $(compgen -W "_resolution>0 >") )
		return 0
		;;
		"apply_parallel" | "-apply_parallel" | "--apply_parallel" | "+apply_parallel")
		COMPREPLY=( $(compgen -W ""command" >") )
		return 0
		;;
		"apply_parallel_channels" | "-apply_parallel_channels" | "--apply_parallel_channels" | "+apply_parallel_channels")
		COMPREPLY=( $(compgen -W ""command" >") )
		return 0
		;;
		"apply_parallel_overlap" | "-apply_parallel_overlap" | "--apply_parallel_overlap" | "+apply_parallel_overlap")
		COMPREPLY=( $(compgen -W ""command",overlap[%],nb_threads={_0=auto_|_1_|_2_|_4_|_8_|_16_} >") )
		return 0
		;;
		"apply_tiles" | "-apply_tiles" | "--apply_tiles" | "+apply_tiles")
		COMPREPLY=( $(compgen -W ""command",_bloc_width[%]>0,_bloc_height[%]>0,_bloc_depth[%]>0,_overlap_width[%]>=0,_overlap_height[%]>=0,_overlap_depth[%]>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"apply_timeout" | "-apply_timeout" | "--apply_timeout" | "+apply_timeout")
		COMPREPLY=( $(compgen -W ""command",_timeout={_0=no_timeout_|_>0=with_specified_timeout_(in_seconds)_} >") )
		return 0
		;;
		"check" | "-check" | "--check" | "+check")
		COMPREPLY=( $(compgen -W "expression >") )
		return 0
		;;
		"check3d" | "-check3d" | "--check3d" | "+check3d")
		COMPREPLY=( $(compgen -W "_is_full_check={_0_|_1_} >") )
		return 0
		;;
		"elif" | "-elif" | "--elif" | "+elif")
		COMPREPLY=( $(compgen -W "boolean filename") )
		return 0
		;;
		"error" | "-error" | "--error" | "+error")
		COMPREPLY=( $(compgen -W "message >") )
		return 0
		;;
		"eval" | "-eval" | "--eval" | "+eval")
		COMPREPLY=( $(compgen -W "expression >") )
		return 0
		;;
		"exec" | "-exec" | "--exec" | "+exec")
		COMPREPLY=( $(compgen -W "_is_verbose={_0_|_1_},"command" >") )
		return 0
		;;
		"for" | "-for" | "--for" | "+for")
		COMPREPLY=( $(compgen -W "condition >") )
		return 0
		;;
		"if" | "-if" | "--if" | "+if")
		COMPREPLY=( $(compgen -W "boolean filename") )
		return 0
		;;
		"mutex" | "-mutex" | "--mutex" | "+mutex")
		COMPREPLY=( $(compgen -W "indice,_action={_0=unlock_|_1=lock_} >") )
		return 0
		;;
		"parallel" | "-parallel" | "--parallel" | "+parallel")
		COMPREPLY=( $(compgen -W "_wait_threads,"command1","command2",... >") )
		return 0
		;;
		"progress" | "-progress" | "--progress" | "+progress")
		COMPREPLY=( $(compgen -W "0<=value<=100 -1") )
		return 0
		;;
		"repeat" | "-repeat" | "--repeat" | "+repeat")
		COMPREPLY=( $(compgen -W "nb_iterations,_variable_name >") )
		return 0
		;;
		"rprogress" | "-rprogress" | "--rprogress" | "+rprogress")
		COMPREPLY=( $(compgen -W "0<=value<=100_|_-1_|_"command",0<=value_min<=100,0<=value_max<=100 >") )
		return 0
		;;
		"run" | "-run" | "--run" | "+run")
		COMPREPLY=( $(compgen -W ""G\'MIC_pipeline" >") )
		return 0
		;;
		"skip" | "-skip" | "--skip" | "+skip")
		COMPREPLY=( $(compgen -W "item >") )
		return 0
		;;
		"status" | "-status" | "--status" | "+status")
		COMPREPLY=( $(compgen -W "status_string >") )
		return 0
		;;
		"while" | "-while" | "--while" | "+while")
		COMPREPLY=( $(compgen -W "boolean filename") )
		return 0
		;;
		"array" | "-array" | "--array" | "+array")
		COMPREPLY=( $(compgen -W "M>0,_N>0,_expand_type={_0=min_|_1=max_|_2=all_} >") )
		return 0
		;;
		"array_fade" | "-array_fade" | "--array_fade" | "+array_fade")
		COMPREPLY=( $(compgen -W "M>0,_N>0,0<=_fade_start<=100,0<=_fade_end<=100,_expand_type={0=min_|_1=max_|_2=all} >") )
		return 0
		;;
		"array_mirror" | "-array_mirror" | "--array_mirror" | "+array_mirror")
		COMPREPLY=( $(compgen -W "N>=0,_dir={_0=x_|_1=y_|_2=xy_|_3=tri-xy_},_expand_type={_0_|_1_} >") )
		return 0
		;;
		"array_random" | "-array_random" | "--array_random" | "+array_random")
		COMPREPLY=( $(compgen -W "Ms>0,_Ns>0,_Md>0,_Nd>0 >") )
		return 0
		;;
		"frame_blur" | "-frame_blur" | "--frame_blur" | "+frame_blur")
		COMPREPLY=( $(compgen -W "_sharpness>0,_size>=0,_smoothness,_shading,_blur >") )
		return 0
		;;
		"frame_cube" | "-frame_cube" | "--frame_cube" | "+frame_cube")
		COMPREPLY=( $(compgen -W "_depth>=0,_centering_x,_centering_y,_left_side={0=normal_|_1=mirror-x_|_2=mirror-y_|_3=mirror-xy},_right_side,_lower_side,_upper_side >") )
		return 0
		;;
		"frame_fuzzy" | "-frame_fuzzy" | "--frame_fuzzy" | "+frame_fuzzy")
		COMPREPLY=( $(compgen -W "size_x[%]>=0,_size_y[%]>=0,_fuzzyness>=0,_smoothness[%]>=0,_R,_G,_B,_A >") )
		return 0
		;;
		"frame_painting" | "-frame_painting" | "--frame_painting" | "+frame_painting")
		COMPREPLY=( $(compgen -W "_size[%]>=0,0<=_contrast<=1,_profile_smoothness[%]>=0,_R,_G,_B,_vignette_size[%]>=0,_vignette_contrast>=0,_defects_contrast>=0,0<=_defects_density<=100,_defects_size>=0,_defects_smoothness[%]>=0,_serial_number >") )
		return 0
		;;
		"frame_pattern" | "-frame_pattern" | "--frame_pattern" | "+frame_pattern")
		COMPREPLY=( $(compgen -W "M>=3,_constrain_size={_0_|_1_} M>=3,_[frame_image],_constrain_size={_0_|_1_}") )
		return 0
		;;
		"frame_round" | "-frame_round" | "--frame_round" | "+frame_round")
		COMPREPLY=( $(compgen -W "_sharpness>0,_size>=0,_smoothness,_shading,_R,_G,_B,_A >") )
		return 0
		;;
		"frame_seamless" | "-frame_seamless" | "--frame_seamless" | "+frame_seamless")
		COMPREPLY=( $(compgen -W "frame_size>=0,_patch_size>0,_blend_size>=0,_frame_direction={_0=inner_(preserve_image_size)_|_1=outer_} >") )
		return 0
		;;
		"frame_x" | "-frame_x" | "--frame_x" | "+frame_x")
		COMPREPLY=( $(compgen -W "size_x[%],_col1,...,_colN >") )
		return 0
		;;
		"frame_xy" | "-frame_xy" | "--frame_xy" | "+frame_xy")
		COMPREPLY=( $(compgen -W "size_x[%],_size_y[%],_col1,...,_colN >") )
		return 0
		;;
		"frame_xyz" | "-frame_xyz" | "--frame_xyz" | "+frame_xyz")
		COMPREPLY=( $(compgen -W "size_x[%],_size_y[%],_size_z[%]_col1,...,_colN >") )
		return 0
		;;
		"frame_y" | "-frame_y" | "--frame_y" | "+frame_y")
		COMPREPLY=( $(compgen -W "size_y[%],_col1,...,_colN >") )
		return 0
		;;
		"img2ascii" | "-img2ascii" | "--img2ascii" | "+img2ascii")
		COMPREPLY=( $(compgen -W "_charset,_analysis_scale>0,_analysis_smoothness[%]>=0,_synthesis_scale>0,_output_ascii_filename >") )
		return 0
		;;
		"imagegrid" | "-imagegrid" | "--imagegrid" | "+imagegrid")
		COMPREPLY=( $(compgen -W "M>0,_N>0 >") )
		return 0
		;;
		"imagegrid_hexagonal" | "-imagegrid_hexagonal" | "--imagegrid_hexagonal" | "+imagegrid_hexagonal")
		COMPREPLY=( $(compgen -W "_resolution>0,0<=_outline<=1 >") )
		return 0
		;;
		"imagegrid_triangular" | "-imagegrid_triangular" | "--imagegrid_triangular" | "+imagegrid_triangular")
		COMPREPLY=( $(compgen -W "pattern_width>=1,_pattern_height>=1,_pattern_type,0<=_outline_opacity<=1,_outline_color1,... >") )
		return 0
		;;
		"linearize_tiles" | "-linearize_tiles" | "--linearize_tiles" | "+linearize_tiles")
		COMPREPLY=( $(compgen -W "M>0,_N>0 >") )
		return 0
		;;
		"map_sprites" | "-map_sprites" | "--map_sprites" | "+map_sprites")
		COMPREPLY=( $(compgen -W "_nb_sprites>=1,_allow_rotation={_0=none_|_1=90_deg._|_2=180_deg._} >") )
		return 0
		;;
		"pack" | "-pack" | "--pack" | "+pack")
		COMPREPLY=( $(compgen -W "is_ratio_constraint={_0_|_1_},_sort_criterion >") )
		return 0
		;;
		"puzzle" | "-puzzle" | "--puzzle" | "+puzzle")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,_M>=1,_N>=1,_curvature,_centering,_connectors_variability,_resolution>=1 >") )
		return 0
		;;
		"quadratize_tiles" | "-quadratize_tiles" | "--quadratize_tiles" | "+quadratize_tiles")
		COMPREPLY=( $(compgen -W "M>0,_N>0 >") )
		return 0
		;;
		"rotate_tiles" | "-rotate_tiles" | "--rotate_tiles" | "+rotate_tiles")
		COMPREPLY=( $(compgen -W "angle,_M>0,N>0 >") )
		return 0
		;;
		"shift_tiles" | "-shift_tiles" | "--shift_tiles" | "+shift_tiles")
		COMPREPLY=( $(compgen -W "M>0,_N>0,_amplitude >") )
		return 0
		;;
		"taquin" | "-taquin" | "--taquin" | "+taquin")
		COMPREPLY=( $(compgen -W "M>0,_N>0,_remove_tile={_0=none_|_1=first_|_2=last_|_3=random_},_relief,_border_thickness[%],_border_outline[%],_outline_color >") )
		return 0
		;;
		"tunnel" | "-tunnel" | "--tunnel" | "+tunnel")
		COMPREPLY=( $(compgen -W "_level>=0,_factor>0,_centering_x,_centering_y,_opacity,_angle >") )
		return 0
		;;
		"boxfitting" | "-boxfitting" | "--boxfitting" | "+boxfitting")
		COMPREPLY=( $(compgen -W "_min_box_size>=1,_max_box_size>=0,_initial_density>=0,_nb_attempts>=1 >") )
		return 0
		;;
		"brushify" | "-brushify" | "--brushify" | "+brushify")
		COMPREPLY=( $(compgen -W "[brush],_brush_nb_sizes>=1,0<=_brush_min_size_factor<=1,_brush_nb_orientations>=1,_brush_light_type,0<=_brush_light_strength<=1,_brush_opacity,_painting_density[%]>=0,0<=_painting_contours_coherence<=1,0<=_painting_orientation_coherence<=1,_painting_coherence_alpha[%]>=0,_painting_coherence_sigma[%]>=0,_painting_primary_angle,0<=_painting_angle_dispersion<=1 >") )
		return 0
		;;
		"cartoon" | "-cartoon" | "--cartoon" | "+cartoon")
		COMPREPLY=( $(compgen -W "_smoothness,_sharpening,_threshold>=0,_thickness>=0,_color>=0,quantization>0 >") )
		return 0
		;;
		"color_ellipses" | "-color_ellipses" | "--color_ellipses" | "+color_ellipses")
		COMPREPLY=( $(compgen -W "_count>0,_radius>=0,_opacity>=0 >") )
		return 0
		;;
		"cubism" | "-cubism" | "--cubism" | "+cubism")
		COMPREPLY=( $(compgen -W "_density>=0,0<=_thickness<=50,_max_angle,_opacity,_smoothness>=0 >") )
		return 0
		;;
		"draw_whirl" | "-draw_whirl" | "--draw_whirl" | "+draw_whirl")
		COMPREPLY=( $(compgen -W "_amplitude>=0 >") )
		return 0
		;;
		"drawing" | "-drawing" | "--drawing" | "+drawing")
		COMPREPLY=( $(compgen -W "_amplitude>=0 >") )
		return 0
		;;
		"drop_shadow" | "-drop_shadow" | "--drop_shadow" | "+drop_shadow")
		COMPREPLY=( $(compgen -W "_offset_x[%],_offset_y[%],_smoothness[%]>=0,0<=_curvature<=1,_expand_size={_0_|_1_} >") )
		return 0
		;;
		"ellipsionism" | "-ellipsionism" | "--ellipsionism" | "+ellipsionism")
		COMPREPLY=( $(compgen -W "_R>0[%],_r>0[%],_smoothness>=0[%],_opacity,_outline>0,_density>0 >") )
		return 0
		;;
		"fire_edges" | "-fire_edges" | "--fire_edges" | "+fire_edges")
		COMPREPLY=( $(compgen -W "_edges>=0,0<=_attenuation<=1,_smoothness>=0,_threshold>=0,_nb_frames>0,_starting_frame>=0,frame_skip>=0 >") )
		return 0
		;;
		"fractalize" | "-fractalize" | "--fractalize" | "+fractalize")
		COMPREPLY=( $(compgen -W "0<=detail_level<=1 >") )
		return 0
		;;
		"glow" | "-glow" | "--glow" | "+glow")
		COMPREPLY=( $(compgen -W "_amplitude>=0 >") )
		return 0
		;;
		"halftone" | "-halftone" | "--halftone" | "+halftone")
		COMPREPLY=( $(compgen -W "nb_levels>=2,_size_dark>=2,_size_bright>=2,_shape={_0=square_|_1=diamond_|_2=circle_|_3=inv-square_|_4=inv-diamond_|_5=inv-circle_},_smoothness[%]>=0 >") )
		return 0
		;;
		"hardsketchbw" | "-hardsketchbw" | "--hardsketchbw" | "+hardsketchbw")
		COMPREPLY=( $(compgen -W "_amplitude>=0,_density>=0,_opacity,0<=_edge_threshold<=100,_is_fast={_0_|_1_} >") )
		return 0
		;;
		"hearts" | "-hearts" | "--hearts" | "+hearts")
		COMPREPLY=( $(compgen -W "_density>=0 >") )
		return 0
		;;
		"houghsketchbw" | "-houghsketchbw" | "--houghsketchbw" | "+houghsketchbw")
		COMPREPLY=( $(compgen -W "_density>=0,_radius>0,0<=_threshold<=100,0<=_opacity<=1,_votesize[%]>0 >") )
		return 0
		;;
		"lightrays" | "-lightrays" | "--lightrays" | "+lightrays")
		COMPREPLY=( $(compgen -W "100<=_density<=0,_center_x[%],_center_y[%],_ray_length>=0,_ray_attenuation>=0 >") )
		return 0
		;;
		"light_relief" | "-light_relief" | "--light_relief" | "+light_relief")
		COMPREPLY=( $(compgen -W "_ambient_light,_specular_lightness,_specular_size,_light_smoothness,_darkness,_xl,_yl,_zl,_zscale,_opacity_is_heightmap={_0_|_1_} >") )
		return 0
		;;
		"linify" | "-linify" | "--linify" | "+linify")
		COMPREPLY=( $(compgen -W "0<=_density<=100,_spreading>=0,_resolution[%]>0,_line_opacity>=0,_line_precision>0,_mode={_0=subtractive_|_1=additive_} >") )
		return 0
		;;
		"mosaic" | "-mosaic" | "--mosaic" | "+mosaic")
		COMPREPLY=( $(compgen -W "0<=_density<=100 >") )
		return 0
		;;
		"pencilbw" | "-pencilbw" | "--pencilbw" | "+pencilbw")
		COMPREPLY=( $(compgen -W "_size>=0,_amplitude>=0 >") )
		return 0
		;;
		"pixelsort" | "-pixelsort" | "--pixelsort" | "+pixelsort")
		COMPREPLY=( $(compgen -W "_ordering={_+_|_-_},_axis={_x_|_y_|_z_|_xy_|_yx_},_[sorting_criterion],_[mask] >") )
		return 0
		;;
		"polaroid" | "-polaroid" | "--polaroid" | "+polaroid")
		COMPREPLY=( $(compgen -W "_size1>=0,_size2>=0 >") )
		return 0
		;;
		"polygonize" | "-polygonize" | "--polygonize" | "+polygonize")
		COMPREPLY=( $(compgen -W "_warp_amplitude>=0,_smoothness[%]>=0,_min_area[%]>=0,_resolution_x[%]>0,_resolution_y[%]>0 >") )
		return 0
		;;
		"poster_edges" | "-poster_edges" | "--poster_edges" | "+poster_edges")
		COMPREPLY=( $(compgen -W "0<=_edge_threshold<=100,0<=_edge_shade<=100,_edge_thickness>=0,_edge_antialiasing>=0,0<=_posterization_level<=15,_posterization_antialiasing>=0 >") )
		return 0
		;;
		"poster_hope" | "-poster_hope" | "--poster_hope" | "+poster_hope")
		COMPREPLY=( $(compgen -W "_smoothness>=0 >") )
		return 0
		;;
		"rodilius" | "-rodilius" | "--rodilius" | "+rodilius")
		COMPREPLY=( $(compgen -W "0<=_amplitude<=100,_0<=thickness<=100,_sharpness>=0,_nb_orientations>0,_offset,_color_mode={_0=darker_|_1=brighter_} >") )
		return 0
		;;
		"stained_glass" | "-stained_glass" | "--stained_glass" | "+stained_glass")
		COMPREPLY=( $(compgen -W "_edges[%]>=0,_shading>=0,_is_thin_separators={_0_|_1_} >") )
		return 0
		;;
		"stars" | "-stars" | "--stars" | "+stars")
		COMPREPLY=( $(compgen -W "_density[%]>=0,_depth>=0,_size>0,_nb_branches>=1,0<=_thickness<=1,_smoothness[%]>=0,_R,_G,_B,_opacity >") )
		return 0
		;;
		"sketchbw" | "-sketchbw" | "--sketchbw" | "+sketchbw")
		COMPREPLY=( $(compgen -W "_nb_angles>0,_start_angle,_angle_range>=0,_length>=0,_threshold>=0,_opacity,_bgfactor>=0,_density>0,_sharpness>=0,_anisotropy>=0,_smoothness>=0,_coherence>=0,_is_boost={_0_|_1_},_is_curved={_0_|_1_} >") )
		return 0
		;;
		"sponge" | "-sponge" | "--sponge" | "+sponge")
		COMPREPLY=( $(compgen -W "_size>0 >") )
		return 0
		;;
		"stencil" | "-stencil" | "--stencil" | "+stencil")
		COMPREPLY=( $(compgen -W "_radius[%]>=0,_smoothness>=0,_iterations>=0 >") )
		return 0
		;;
		"stencilbw" | "-stencilbw" | "--stencilbw" | "+stencilbw")
		COMPREPLY=( $(compgen -W "_edges>=0,_smoothness>=0 >") )
		return 0
		;;
		"tetris" | "-tetris" | "--tetris" | "+tetris")
		COMPREPLY=( $(compgen -W "_scale>0 >") )
		return 0
		;;
		"warhol" | "-warhol" | "--warhol" | "+warhol")
		COMPREPLY=( $(compgen -W "_M>0,_N>0,_smoothness>=0,_color>=0 >") )
		return 0
		;;
		"weave" | "-weave" | "--weave" | "+weave")
		COMPREPLY=( $(compgen -W "_density>=0,0<=_thickness<=100,0<=_shadow<=100,_shading>=0,_fibers_amplitude>=0,_fibers_smoothness>=0,_angle,-1<=_x_curvature<=1,-1<=_y_curvature<=1 >") )
		return 0
		;;
		"whirls" | "-whirls" | "--whirls" | "+whirls")
		COMPREPLY=( $(compgen -W "_texture>=0,_smoothness>=0,_darkness>=0,_lightness>=0 >") )
		return 0
		;;
		"deform" | "-deform" | "--deform" | "+deform")
		COMPREPLY=( $(compgen -W "_amplitude>=0,_interpolation >") )
		return 0
		;;
		"euclidean2polar" | "-euclidean2polar" | "--euclidean2polar" | "+euclidean2polar")
		COMPREPLY=( $(compgen -W "_center_x[%],_center_y[%],_stretch_factor>0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"fisheye" | "-fisheye" | "--fisheye" | "+fisheye")
		COMPREPLY=( $(compgen -W "_center_x,_center_y,0<=_radius<=100,_amplitude>=0 >") )
		return 0
		;;
		"flower" | "-flower" | "--flower" | "+flower")
		COMPREPLY=( $(compgen -W "_amplitude,_frequency,_offset_r[%],_angle,_center_x[%],_center_y[%],_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror} >") )
		return 0
		;;
		"kaleidoscope" | "-kaleidoscope" | "--kaleidoscope" | "+kaleidoscope")
		COMPREPLY=( $(compgen -W "_center_x[%],_center_y[%],_radius,_angle,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"map_sphere" | "-map_sphere" | "--map_sphere" | "+map_sphere")
		COMPREPLY=( $(compgen -W "_width>0,_height>0,_radius,_dilation>0,_fading>=0,_fading_power>=0 >") )
		return 0
		;;
		"polar2euclidean" | "-polar2euclidean" | "--polar2euclidean" | "+polar2euclidean")
		COMPREPLY=( $(compgen -W "_center_x[%],_center_y[%],_stretch_factor>0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"raindrops" | "-raindrops" | "--raindrops" | "+raindrops")
		COMPREPLY=( $(compgen -W "_amplitude,_density>=0,_wavelength>=0,_merging_steps>=0 >") )
		return 0
		;;
		"ripple" | "-ripple" | "--ripple" | "+ripple")
		COMPREPLY=( $(compgen -W "_amplitude,_bandwidth,_shape={_0=bloc_|_1=triangle_|_2=sine_|_3=sine+_|_4=random_},_angle,_offset >") )
		return 0
		;;
		"rotoidoscope" | "-rotoidoscope" | "--rotoidoscope" | "+rotoidoscope")
		COMPREPLY=( $(compgen -W "_center_x[%],_center_y[%],_tiles>0,_smoothness[%]>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"spherize" | "-spherize" | "--spherize" | "+spherize")
		COMPREPLY=( $(compgen -W "_radius[%]>=0,_strength,_smoothness[%]>=0,_center_x[%],_center_y[%],_ratio_x/y>0,_angle,_interpolation >") )
		return 0
		;;
		"symmetrize" | "-symmetrize" | "--symmetrize" | "+symmetrize")
		COMPREPLY=( $(compgen -W "_x[%],_y[%],_angle,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_},_is_antisymmetry={_0_|_1_},_swap_sides={_0_|_1_} >") )
		return 0
		;;
		"transform_polar" | "-transform_polar" | "--transform_polar" | "+transform_polar")
		COMPREPLY=( $(compgen -W ""expr_radius",_"expr_angle",_center_x[%],_center_y[%],_boundary_conditions={_0=dirichlet_|_1=neumann_} >") )
		return 0
		;;
		"twirl" | "-twirl" | "--twirl" | "+twirl")
		COMPREPLY=( $(compgen -W "_amplitude,_center_x[%],_center_y[%],_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"warp_perspective" | "-warp_perspective" | "--warp_perspective" | "+warp_perspective")
		COMPREPLY=( $(compgen -W "_x-angle,_y-angle,_zoom>0,_x-center,_y-center,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"water" | "-water" | "--water" | "+water")
		COMPREPLY=( $(compgen -W "_amplitude,_smoothness>=0,_angle >") )
		return 0
		;;
		"wave" | "-wave" | "--wave" | "+wave")
		COMPREPLY=( $(compgen -W "_amplitude>=0,_frequency>=0,_center_x,_center_y >") )
		return 0
		;;
		"wind" | "-wind" | "--wind" | "+wind")
		COMPREPLY=( $(compgen -W "_amplitude>=0,_angle,0<=_attenuation<=1,_threshold >") )
		return 0
		;;
		"zoom" | "-zoom" | "--zoom" | "+zoom")
		COMPREPLY=( $(compgen -W "_factor,_cx,_cy,_cz,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"cracks" | "-cracks" | "--cracks" | "+cracks")
		COMPREPLY=( $(compgen -W "0<=_density<=100,_is_relief={_0_|_1_},_opacity,_color1,... >") )
		return 0
		;;
		"light_patch" | "-light_patch" | "--light_patch" | "+light_patch")
		COMPREPLY=( $(compgen -W "_density>0,_darkness>=0,_lightness>=0 >") )
		return 0
		;;
		"noise_hurl" | "-noise_hurl" | "--noise_hurl" | "+noise_hurl")
		COMPREPLY=( $(compgen -W "_amplitude>=0 >") )
		return 0
		;;
		"pixelize" | "-pixelize" | "--pixelize" | "+pixelize")
		COMPREPLY=( $(compgen -W "_scale_x>0,_scale_y>0,_scale_z>0 >") )
		return 0
		;;
		"scanlines" | "-scanlines" | "--scanlines" | "+scanlines")
		COMPREPLY=( $(compgen -W "_amplitude,_bandwidth,_shape={_0=bloc_|_1=triangle_|_2=sine_|_3=sine+_|_4=random_},_angle,_offset >") )
		return 0
		;;
		"shade_stripes" | "-shade_stripes" | "--shade_stripes" | "+shade_stripes")
		COMPREPLY=( $(compgen -W "_frequency>=0,_direction={_0=horizontal_|_1=vertical_},_darkness>=0,_lightness>=0 >") )
		return 0
		;;
		"shadow_patch" | "-shadow_patch" | "--shadow_patch" | "+shadow_patch")
		COMPREPLY=( $(compgen -W "_opacity>=0 >") )
		return 0
		;;
		"spread" | "-spread" | "--spread" | "+spread")
		COMPREPLY=( $(compgen -W "_dx>=0,_dy>=0,_dz>=0 >") )
		return 0
		;;
		"stripes_y" | "-stripes_y" | "--stripes_y" | "+stripes_y")
		COMPREPLY=( $(compgen -W "_frequency>=0 >") )
		return 0
		;;
		"texturize_canvas" | "-texturize_canvas" | "--texturize_canvas" | "+texturize_canvas")
		COMPREPLY=( $(compgen -W "_amplitude>=0,_fibrousness>=0,_emboss_level>=0 >") )
		return 0
		;;
		"vignette" | "-vignette" | "--vignette" | "+vignette")
		COMPREPLY=( $(compgen -W "_strength>=0,0<=_radius_min<=100,0<=_radius_max<=100 >") )
		return 0
		;;
		"watermark_visible" | "-watermark_visible" | "--watermark_visible" | "+watermark_visible")
		COMPREPLY=( $(compgen -W "_text,0<_opacity<1,_size>0,_angle,_mode={_0=remove_|_1=add_},_smoothness>=0 >") )
		return 0
		;;
		"blend" | "-blend" | "--blend" | "+blend")
		COMPREPLY=( $(compgen -W "[layer],blending_mode,_opacity[%],_selection_is={_0=base-layers_|_1=top-layers_} blending_mode,_opacity[%]") )
		return 0
		;;
		"blend_edges" | "-blend_edges" | "--blend_edges" | "+blend_edges")
		COMPREPLY=( $(compgen -W "smoothness[%]>=0 >") )
		return 0
		;;
		"blend_fade" | "-blend_fade" | "--blend_fade" | "+blend_fade")
		COMPREPLY=( $(compgen -W "[fading_shape] >") )
		return 0
		;;
		"blend_seamless" | "-blend_seamless" | "--blend_seamless" | "+blend_seamless")
		COMPREPLY=( $(compgen -W "_is_mixed_mode={_0_|_1_},_inner_fading[%]>=0,_outer_fading[%]>=0 >") )
		return 0
		;;
		"fade_diamond" | "-fade_diamond" | "--fade_diamond" | "+fade_diamond")
		COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") )
		return 0
		;;
		"fade_linear" | "-fade_linear" | "--fade_linear" | "+fade_linear")
		COMPREPLY=( $(compgen -W "_angle,0<=_start<=100,0<=_end<=100 >") )
		return 0
		;;
		"fade_radial" | "-fade_radial" | "--fade_radial" | "+fade_radial")
		COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") )
		return 0
		;;
		"fade_x" | "-fade_x" | "--fade_x" | "+fade_x")
		COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") )
		return 0
		;;
		"fade_y" | "-fade_y" | "--fade_y" | "+fade_y")
		COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") )
		return 0
		;;
		"fade_z" | "-fade_z" | "--fade_z" | "+fade_z")
		COMPREPLY=( $(compgen -W "0<=_start<=100,0<=_end<=100 >") )
		return 0
		;;
		"sub_alpha" | "-sub_alpha" | "--sub_alpha" | "+sub_alpha")
		COMPREPLY=( $(compgen -W "[base_image],_opacity_gain>=1 >") )
		return 0
		;;
		"animate" | "-animate" | "--animate" | "+animate")
		COMPREPLY=( $(compgen -W "filter_name,"param1_start,...,paramN_start","param1_end,...,paramN_end",nb_frames>=0,_output_frames={_0_|_1_},_output_filename delay>0") )
		return 0
		;;
		"apply_camera" | "-apply_camera" | "--apply_camera" | "+apply_camera")
		COMPREPLY=( $(compgen -W "_"command",_camera_index>=0,_skip_frames>=0,_output_filename >") )
		return 0
		;;
		"apply_files" | "-apply_files" | "--apply_files" | "+apply_files")
		COMPREPLY=( $(compgen -W ""filename_pattern",_"command",_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"apply_video" | "-apply_video" | "--apply_video" | "+apply_video")
		COMPREPLY=( $(compgen -W "video_filename,_"command",_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"average_files" | "-average_files" | "--average_files" | "+average_files")
		COMPREPLY=( $(compgen -W ""filename_pattern",_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"average_video" | "-average_video" | "--average_video" | "+average_video")
		COMPREPLY=( $(compgen -W "video_filename,_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"fade_files" | "-fade_files" | "--fade_files" | "+fade_files")
		COMPREPLY=( $(compgen -W ""filename_pattern",_nb_inner_frames>0,_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"fade_video" | "-fade_video" | "--fade_video" | "+fade_video")
		COMPREPLY=( $(compgen -W "video_filename,_nb_inner_frames>0,_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"files2video" | "-files2video" | "--files2video" | "+files2video")
		COMPREPLY=( $(compgen -W ""filename_pattern",_output_filename,_fps>0,_codec >") )
		return 0
		;;
		"median_files" | "-median_files" | "--median_files" | "+median_files")
		COMPREPLY=( $(compgen -W ""filename_pattern",_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_frame_rows[%]>=1,_is_fast_approximation={_0_|_1_} >") )
		return 0
		;;
		"median_video" | "-median_video" | "--median_video" | "+median_video")
		COMPREPLY=( $(compgen -W "video_filename,_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_frame_rows[%]>=1,_is_fast_approximation={_0_|_1_} >") )
		return 0
		;;
		"morph" | "-morph" | "--morph" | "+morph")
		COMPREPLY=( $(compgen -W "nb_inner_frames>=1,_smoothness>=0,_precision>=0 >") )
		return 0
		;;
		"morph_files" | "-morph_files" | "--morph_files" | "+morph_files")
		COMPREPLY=( $(compgen -W ""filename_pattern",_nb_inner_frames>0,_smoothness>=0,_precision>=0,_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"morph_video" | "-morph_video" | "--morph_video" | "+morph_video")
		COMPREPLY=( $(compgen -W "video_filename,_nb_inner_frames>0,_smoothness>=0,_precision>=0,_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1,_output_filename >") )
		return 0
		;;
		"register_nonrigid" | "-register_nonrigid" | "--register_nonrigid" | "+register_nonrigid")
		COMPREPLY=( $(compgen -W "[destination],_smoothness>=0,_precision>0,_nb_scale>=0 >") )
		return 0
		;;
		"register_rigid" | "-register_rigid" | "--register_rigid" | "+register_rigid")
		COMPREPLY=( $(compgen -W "[destination],_smoothness>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"transition" | "-transition" | "--transition" | "+transition")
		COMPREPLY=( $(compgen -W "[transition_shape],nb_added_frames>=0,100>=shading>=0,_single_frame_only={_-1=disabled_|_>=0_} >") )
		return 0
		;;
		"transition3d" | "-transition3d" | "--transition3d" | "+transition3d")
		COMPREPLY=( $(compgen -W "_nb_frames>=2,_nb_xtiles>0,_nb_ytiles>0,_axis_x,_axis_y,_axis_z,_is_antialias={_0_|_1_} >") )
		return 0
		;;
		"video2files" | "-video2files" | "--video2files" | "+video2files")
		COMPREPLY=( $(compgen -W "input_filename,_output_filename,_first_frame>=0,_last_frame={_>=0_|_-1=last_},_frame_step>=1 >") )
		return 0
		;;
		"alert" | "-alert" | "--alert" | "+alert")
		COMPREPLY=( $(compgen -W "_title,_message,_label_button1,_label_button2,... >") )
		return 0
		;;
		"arg" | "-arg" | "--arg" | "+arg")
		COMPREPLY=( $(compgen -W "n>=1,_arg1,...,_argN >") )
		return 0
		;;
		"arg2var" | "-arg2var" | "--arg2var" | "+arg2var")
		COMPREPLY=( $(compgen -W "variable_name,argument_1,...,argument_N >") )
		return 0
		;;
		"autocrop_coords" | "-autocrop_coords" | "--autocrop_coords" | "+autocrop_coords")
		COMPREPLY=( $(compgen -W "value1,value2,..._|_auto >") )
		return 0
		;;
		"basename" | "-basename" | "--basename" | "+basename")
		COMPREPLY=( $(compgen -W "file_path,_variable_name_for_folder >") )
		return 0
		;;
		"bin" | "-bin" | "--bin" | "+bin")
		COMPREPLY=( $(compgen -W "binary_int1,... >") )
		return 0
		;;
		"bin2dec" | "-bin2dec" | "--bin2dec" | "+bin2dec")
		COMPREPLY=( $(compgen -W "binary_int1,... >") )
		return 0
		;;
		"dec" | "-dec" | "--dec" | "+dec")
		COMPREPLY=( $(compgen -W "decimal_int1,... >") )
		return 0
		;;
		"dec2str" | "-dec2str" | "--dec2str" | "+dec2str")
		COMPREPLY=( $(compgen -W "decimal_int1,... >") )
		return 0
		;;
		"dec2bin" | "-dec2bin" | "--dec2bin" | "+dec2bin")
		COMPREPLY=( $(compgen -W "decimal_int1,... >") )
		return 0
		;;
		"dec2hex" | "-dec2hex" | "--dec2hex" | "+dec2hex")
		COMPREPLY=( $(compgen -W "decimal_int1,... >") )
		return 0
		;;
		"dec2oct" | "-dec2oct" | "--dec2oct" | "+dec2oct")
		COMPREPLY=( $(compgen -W "decimal_int1,... >") )
		return 0
		;;
		"fact" | "-fact" | "--fact" | "+fact")
		COMPREPLY=( $(compgen -W "value >") )
		return 0
		;;
		"fibonacci" | "-fibonacci" | "--fibonacci" | "+fibonacci")
		COMPREPLY=( $(compgen -W "N>=0 >") )
		return 0
		;;
		"file_mv" | "-file_mv" | "--file_mv" | "+file_mv")
		COMPREPLY=( $(compgen -W "filename_src,filename_dest >") )
		return 0
		;;
		"file_rm" | "-file_rm" | "--file_rm" | "+file_rm")
		COMPREPLY=( $(compgen -W "filename >") )
		return 0
		;;
		"filename" | "-filename" | "--filename" | "+filename")
		COMPREPLY=( $(compgen -W "filename,_number1,_number2,...,_numberN >") )
		return 0
		;;
		"files" | "-files" | "--files" | "+files")
		COMPREPLY=( $(compgen -W "_mode,path >") )
		return 0
		;;
		"fitratio_wh" | "-fitratio_wh" | "--fitratio_wh" | "+fitratio_wh")
		COMPREPLY=( $(compgen -W "min_width,min_height,ratio_wh >") )
		return 0
		;;
		"fitscreen" | "-fitscreen" | "--fitscreen" | "+fitscreen")
		COMPREPLY=( $(compgen -W "width,height,_depth,_minimal_size[%],_maximal_size[%] >") )
		return 0
		;;
		"gcd" | "-gcd" | "--gcd" | "+gcd")
		COMPREPLY=( $(compgen -W "a,b >") )
		return 0
		;;
		"hex" | "-hex" | "--hex" | "+hex")
		COMPREPLY=( $(compgen -W "hexadecimal_int1,... >") )
		return 0
		;;
		"hex2dec" | "-hex2dec" | "--hex2dec" | "+hex2dec")
		COMPREPLY=( $(compgen -W "hexadecimal_int1,... >") )
		return 0
		;;
		"hex2img" | "-hex2img" | "--hex2img" | "+hex2img")
		COMPREPLY=( $(compgen -W ""hexadecimal_string" >") )
		return 0
		;;
		"hex2str" | "-hex2str" | "--hex2str" | "+hex2str")
		COMPREPLY=( $(compgen -W "hexadecimal_string >") )
		return 0
		;;
		"img2text" | "-img2text" | "--img2text" | "+img2text")
		COMPREPLY=( $(compgen -W "_line_separator >") )
		return 0
		;;
		"is_ext" | "-is_ext" | "--is_ext" | "+is_ext")
		COMPREPLY=( $(compgen -W "filename,_extension >") )
		return 0
		;;
		"is_image_arg" | "-is_image_arg" | "--is_image_arg" | "+is_image_arg")
		COMPREPLY=( $(compgen -W "string >") )
		return 0
		;;
		"is_pattern" | "-is_pattern" | "--is_pattern" | "+is_pattern")
		COMPREPLY=( $(compgen -W "string >") )
		return 0
		;;
		"is_percent" | "-is_percent" | "--is_percent" | "+is_percent")
		COMPREPLY=( $(compgen -W "string >") )
		return 0
		;;
		"normalize_filename" | "-normalize_filename" | "--normalize_filename" | "+normalize_filename")
		COMPREPLY=( $(compgen -W "filename >") )
		return 0
		;;
		"oct" | "-oct" | "--oct" | "+oct")
		COMPREPLY=( $(compgen -W "octal_int1,... >") )
		return 0
		;;
		"oct2dec" | "-oct2dec" | "--oct2dec" | "+oct2dec")
		COMPREPLY=( $(compgen -W "octal_int1,... >") )
		return 0
		;;
		"padint" | "-padint" | "--padint" | "+padint")
		COMPREPLY=( $(compgen -W "number,_size>0 >") )
		return 0
		;;
		"str" | "-str" | "--str" | "+str")
		COMPREPLY=( $(compgen -W "string >") )
		return 0
		;;
		"str2hex" | "-str2hex" | "--str2hex" | "+str2hex")
		COMPREPLY=( $(compgen -W "string >") )
		return 0
		;;
		"strcontains" | "-strcontains" | "--strcontains" | "+strcontains")
		COMPREPLY=( $(compgen -W "string1,string2 >") )
		return 0
		;;
		"strlen" | "-strlen" | "--strlen" | "+strlen")
		COMPREPLY=( $(compgen -W "string1 >") )
		return 0
		;;
		"strreplace" | "-strreplace" | "--strreplace" | "+strreplace")
		COMPREPLY=( $(compgen -W "string,search,replace >") )
		return 0
		;;
		"strlowercase" | "-strlowercase" | "--strlowercase" | "+strlowercase")
		COMPREPLY=( $(compgen -W "string >") )
		return 0
		;;
		"strvar" | "-strvar" | "--strvar" | "+strvar")
		COMPREPLY=( $(compgen -W "string >") )
		return 0
		;;
		"strver" | "-strver" | "--strver" | "+strver")
		COMPREPLY=( $(compgen -W "_version >") )
		return 0
		;;
		"str2uchar" | "-str2uchar" | "--str2uchar" | "+str2uchar")
		COMPREPLY=( $(compgen -W ""string" >") )
		return 0
		;;
		"covariance_colors" | "-covariance_colors" | "--covariance_colors" | "+covariance_colors")
		COMPREPLY=( $(compgen -W "_avg_outvarname >") )
		return 0
		;;
		"demo" | "-demo" | "--demo" | "+demo")
		COMPREPLY=( $(compgen -W "_run_in_parallel={_0=no_|_1=yes_|_2=auto_} >") )
		return 0
		;;
		"x_color_curves" | "-x_color_curves" | "--x_color_curves" | "+x_color_curves")
		COMPREPLY=( $(compgen -W "_colorspace={_rgb_|_cmy_|_cmyk_|_hsi_|_hsl_|_hsv_|_lab_|_lch_|_ycbcr_|_last_} >") )
		return 0
		;;
		"x_colorize" | "-x_colorize" | "--x_colorize" | "+x_colorize")
		COMPREPLY=( $(compgen -W "_is_lineart={_0_|_1_},_max_resolution={_0_|_>=128_},_multichannels_output={_0_|_1_},_[palette1],_[palette2],_[grabber1] >") )
		return 0
		;;
		"x_grab_color" | "-x_grab_color" | "--x_grab_color" | "+x_grab_color")
		COMPREPLY=( $(compgen -W "_variable_name >") )
		return 0
		;;
		"x_jawbreaker" | "-x_jawbreaker" | "--x_jawbreaker" | "+x_jawbreaker")
		COMPREPLY=( $(compgen -W "0<_width<20,0<_height<20,0<_balls<=8 >") )
		return 0
		;;
		"x_mandelbrot" | "-x_mandelbrot" | "--x_mandelbrot" | "+x_mandelbrot")
		COMPREPLY=( $(compgen -W "_julia={_0_|_1_},_c0r,_c0i >") )
		return 0
		;;
		"x_mask_color" | "-x_mask_color" | "--x_mask_color" | "+x_mask_color")
		COMPREPLY=( $(compgen -W "_colorspace={_all_|_rgb_|_lrgb_|_ycbcr_|_lab_|_lch_|_hsv_|_hsi_|_hsl_|_cmy_|_cmyk_|_yiq_},_spatial_tolerance>=0,_color_tolerance>=0 >") )
		return 0
		;;
		"x_minesweeper" | "-x_minesweeper" | "--x_minesweeper" | "+x_minesweeper")
		COMPREPLY=( $(compgen -W "8<=_width=<20,8<=_height<=20 >") )
		return 0
		;;
		"x_quantize_rgb" | "-x_quantize_rgb" | "--x_quantize_rgb" | "+x_quantize_rgb")
		COMPREPLY=( $(compgen -W "_nbcolors>=2 >") )
		return 0
		;;
		"x_segment" | "-x_segment" | "--x_segment" | "+x_segment")
		COMPREPLY=( $(compgen -W "_max_resolution={_0_|_>=128_} >") )
		return 0
		;;
		"x_select_color" | "-x_select_color" | "--x_select_color" | "+x_select_color")
		COMPREPLY=( $(compgen -W "_variable_name >") )
		return 0
		;;
		"x_select_function1d" | "-x_select_function1d" | "--x_select_function1d" | "+x_select_function1d")
		COMPREPLY=( $(compgen -W "_variable_name,_background_curve_R,_background_curve_G,_background_curve_B >") )
		return 0
		;;
		"x_select_palette" | "-x_select_palette" | "--x_select_palette" | "+x_select_palette")
		COMPREPLY=( $(compgen -W "_variable_name,_number_of_columns={_0=auto_|_>0_} >") )
		return 0
		;;
		"x_whirl" | "-x_whirl" | "--x_whirl" | "+x_whirl")
		COMPREPLY=( $(compgen -W "_opacity>=0 >") )
		return 0
		;;
		"h" | "-h" | "--h" | "+h")
		COMPREPLY=( $(compgen -W "$coms" -- "$cur") )
		return 0
		;;
		"m" | "-m" | "--m" | "+m")
		COMPREPLY=( $(compgen -W "_add_debug_info={_0_|_1_},{_filename_|_http[s]://URL_|_"string"_} >") )
		return 0
		;;
		"d" | "-d" | "--d" | "+d")
		COMPREPLY=( $(compgen -W "_X[%]>=0,_Y[%]>=0,_Z[%]>=0,_exit_on_anykey={_0_|_1_} >") )
		return 0
		;;
		"d3d" | "-d3d" | "--d3d" | "+d3d")
		COMPREPLY=( $(compgen -W "_[background_image],_exit_on_anykey={_0_|_1_} _exit_on_anykey={_0_|_1_}") )
		return 0
		;;
		"da" | "-da" | "--da" | "+da")
		COMPREPLY=( $(compgen -W "_width>0,_height>0 >") )
		return 0
		;;
		"dg" | "-dg" | "--dg" | "+dg")
		COMPREPLY=( $(compgen -W "_width>=0,_height>=0,_plot_type,_vertex_type,_xmin,_xmax,_ymin,_ymax,_xlabel,_ylabel >") )
		return 0
		;;
		"dh" | "-dh" | "--dh" | "+dh")
		COMPREPLY=( $(compgen -W "_width>=0,_height>=0,_clusters>0,_min_value[%],_max_value[%],_show_axes={_0_|_1_},_expression. >") )
		return 0
		;;
		"dq" | "-dq" | "--dq" | "+dq")
		COMPREPLY=( $(compgen -W "_size_factor>0,_arrow_size>=0,_color_mode={_0=monochrome_|_1=grayscale_|_2=color_} >") )
		return 0
		;;
		"drgba" | "-drgba" | "--drgba" | "+drgba")
		COMPREPLY=( $(compgen -W "_background_RGB_color >") )
		return 0
		;;
		"dt" | "-dt" | "--dt" | "+dt")
		COMPREPLY=( $(compgen -W "_size_factor>0,_ellipse_size>=0,_color_mode={_0=monochrome_|_1=grayscale_|_2=color_},_outline>=0 >") )
		return 0
		;;
		"dw" | "-dw" | "--dw" | "+dw")
		COMPREPLY=( $(compgen -W "_cell_size>0 >") )
		return 0
		;;
		"e" | "-e" | "--e" | "+e")
		COMPREPLY=( $(compgen -W "message >") )
		return 0
		;;
		"ig" | "-ig" | "--ig" | "+ig")
		COMPREPLY=( $(compgen -W "pattern >") )
		return 0
		;;
		"on" | "-on" | "--on" | "+on")
		COMPREPLY=( $(compgen -W "filename >") )
		return 0
		;;
		"op" | "-op" | "--op" | "+op")
		COMPREPLY=( $(compgen -W "prefix >") )
		return 0
		;;
		"ox" | "-ox" | "--ox" | "+ox")
		COMPREPLY=( $(compgen -W "extension1,_extension2,_...,_extensionN,_output_at_same_location={_0_|_1_} >") )
		return 0
		;;
		"sh" | "-sh" | "--sh" | "+sh")
		COMPREPLY=( $(compgen -W "x0[%],x1[%],y[%],z[%],v[%] y0[%],y1[%],z[%],v[%] z0[%],z1[%],v[%] v0[%],v1[%] v0[%] (no_arg)") )
		return 0
		;;
		"sp" | "-sp" | "--sp" | "+sp")
		COMPREPLY=( $(compgen -W "_name1={_?_|_apples_|_barbara_|_boats_|_bottles_|_butterfly_|_cameraman_|_car_|_cat_|_cliff_|_david_|_dog_|_duck_|_eagle_|_elephant_|_earth_|_flower_|_fruits_|_greece_|_gummy_|_house_|_inside_|_landscape_|_leaf_|_lena_|_leno_|_lion_|_mandrill_|_monalisa_|_monkey_|_parrots_|_pencils_|_peppers_|_rooster_|_rose_|_square_|_teddy_|_tiger_|_wall_|_waterfall_|_zelda_},_name2,...,_nameN,_width={_>=0_|_0_(auto)_},_height_=_{_>=0_|_0_(auto)_} (no_arg)") )
		return 0
		;;
		"v" | "-v" | "--v" | "+v")
		COMPREPLY=( $(compgen -W "level {_+_|_-_}") )
		return 0
		;;
		"w" | "-w" | "--w" | "+w")
		COMPREPLY=( $(compgen -W "_width[%]>=-1,_height[%]>=-1,_normalization,_fullscreen,_pos_x[%],_pos_y[%],_title >") )
		return 0
		;;
		"mv" | "-mv" | "--mv" | "+mv")
		COMPREPLY=( $(compgen -W "position[%] >") )
		return 0
		;;
		"nm" | "-nm" | "--nm" | "+nm")
		COMPREPLY=( $(compgen -W ""name1","name2",... >") )
		return 0
		;;
		"+" | "-+" | "--+" | "++")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"&" | "-&" | "--&" | "+&")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"<<" | "-<<" | "--<<" | "+<<")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		">>" | "->>" | "-->>" | "+>>")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"/" | "-/" | "--/" | "+/")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"==" | "-==" | "--==" | "+==")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		">=" | "->=" | "-->=" | "+>=")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		">" | "->" | "-->" | "+>")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"<=" | "-<=" | "--<=" | "+<=")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"<" | "-<" | "--<" | "+<")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"m/" | "-m/" | "--m/" | "+m/")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"%" | "-%" | "--%" | "+%")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"m*" | "-m*" | "--m*" | "+m*")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"*" | "-*" | "--*" | "+*")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"!=" | "-!=" | "--!=" | "+!=")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"|" | "-|" | "--|" | "+|")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"^" | "-^" | "--^" | "+^")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"-" | "--" | "---" | "+-")
		COMPREPLY=( $(compgen -W "value[%] [image] \'formula\' (no_arg)") )
		return 0
		;;
		"c" | "-c" | "--c" | "+c")
		COMPREPLY=( $(compgen -W "{_value0[%]_|_[image0]_},{_value1[%]_|_[image1]_} [image] (no_arg)") )
		return 0
		;;
		"f" | "-f" | "--f" | "+f")
		COMPREPLY=( $(compgen -W "value1,_value2,... [image] \'formula\'") )
		return 0
		;;
		"ir" | "-ir" | "--ir" | "+ir")
		COMPREPLY=( $(compgen -W "min[%],max[%] >") )
		return 0
		;;
		"n" | "-n" | "--n" | "+n")
		COMPREPLY=( $(compgen -W "{_value0[%]_|_[image0]_},{_value1[%]_|_[image1]_} [image]") )
		return 0
		;;
		"=" | "-=" | "--=" | "+=")
		COMPREPLY=( $(compgen -W "value,_x[%],_y[%],_z[%],_c[%] >") )
		return 0
		;;
		"ac" | "-ac" | "--ac" | "+ac")
		COMPREPLY=( $(compgen -W ""command",channels,_value_action={_0=none_|_1=cut_|_2=normalize_} >") )
		return 0
		;;
		"fc" | "-fc" | "--fc" | "+fc")
		COMPREPLY=( $(compgen -W "col1,...,colN >") )
		return 0
		;;
		"a" | "-a" | "--a" | "+a")
		COMPREPLY=( $(compgen -W "[image],axis,_centering axis,_centering") )
		return 0
		;;
		"z" | "-z" | "--z" | "+z")
		COMPREPLY=( $(compgen -W "x0[%],x1[%],_boundary_conditions x0[%],y0[%],x1[%],y1[%],_boundary_conditions x0[%],y0[%],z0[%],x1[%],y1[%],z1[%],_boundary_conditions x0[%],y0[%],z0[%],c0[%],x1[%],y1[%],z1[%],c1[%],_boundary_conditions (no_arg)") )
		return 0
		;;
		"r" | "-r" | "--r" | "+r")
		COMPREPLY=( $(compgen -W "[image],_interpolation,_boundary_conditions,_ax,_ay,_az,_ac {[image_w]_|_width>0[%]},_{[image_h]_|_height>0[%]},_{[image_d]_|_depth>0[%]},_{[image_s]_|_spectrum>0[%]},_interpolation,_boundary_conditions,_ax,_ay,_az,_ac (no_arg)") )
		return 0
		;;
		"rr2d" | "-rr2d" | "--rr2d" | "+rr2d")
		COMPREPLY=( $(compgen -W "width>0,height>0,_mode={_0=inside_|_1=outside_|_2=padded_},0=<_interpolation<=6 >") )
		return 0
		;;
		"r2dx" | "-r2dx" | "--r2dx" | "+r2dx")
		COMPREPLY=( $(compgen -W "width[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"r2dy" | "-r2dy" | "--r2dy" | "+r2dy")
		COMPREPLY=( $(compgen -W "height[%]>=0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"r3dx" | "-r3dx" | "--r3dx" | "+r3dx")
		COMPREPLY=( $(compgen -W "width[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"r3dy" | "-r3dy" | "--r3dy" | "+r3dy")
		COMPREPLY=( $(compgen -W "height[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"r3dz" | "-r3dz" | "--r3dz" | "+r3dz")
		COMPREPLY=( $(compgen -W "depth[%]>0,_interpolation,_boundary_conditions,_ax,_ay,_az,_ac >") )
		return 0
		;;
		"s" | "-s" | "--s" | "+s")
		COMPREPLY=( $(compgen -W "{_x_|_y_|_z_|_c_}...{_x_|_y_|_z_|_c_},_split_mode keep_splitting_values={_+_|_-_},_{_x_|_y_|_z_|_c_}...{_x_|_y_|_z_|_c_},value1,_value2,... (no_arg)") )
		return 0
		;;
		"y" | "-y" | "--y" | "+y")
		COMPREPLY=( $(compgen -W "_axis={_x_|_y_|_z_|_c_} >") )
		return 0
		;;
		"b" | "-b" | "--b" | "+b")
		COMPREPLY=( $(compgen -W "std_deviation>=0[%],_boundary_conditions,_kernel axes,std_deviation>=0[%],_boundary_conditions,_kernel") )
		return 0
		;;
		"g" | "-g" | "--g" | "+g")
		COMPREPLY=( $(compgen -W "{_x_|_y_|_z_}...{_x_|_y_|_z_},_scheme (no_arg)") )
		return 0
		;;
		"j" | "-j" | "--j" | "+j")
		COMPREPLY=( $(compgen -W "[sprite],_x[%],_y[%],_z[%],_c[%],_opacity,_[sprite_mask],_max_opacity_mask >") )
		return 0
		;;
		"j3d" | "-j3d" | "--j3d" | "+j3d")
		COMPREPLY=( $(compgen -W "[object3d],_x[%],_y[%],_z,_opacity,_rendering_mode,_is_double_sided={_0_|_1_},_is_zbuffer={_0_|_1_},_focale,_light_x,_light_y,_light_z,_specular_lightness,_specular_shininess >") )
		return 0
		;;
		"t" | "-t" | "--t" | "+t")
		COMPREPLY=( $(compgen -W "text,_x[%],_y[%],_font_height[%]>=0,_opacity,_color1,... >") )
		return 0
		;;
		"to" | "-to" | "--to" | "+to")
		COMPREPLY=( $(compgen -W "text,_x[%],_y[%],_font_height[%]>0,_outline>=0,_opacity,_color1,... >") )
		return 0
		;;
		"+3d" | "-+3d" | "--+3d" | "++3d")
		COMPREPLY=( $(compgen -W "tx,_ty,_tz [object3d] (no_arg)") )
		return 0
		;;
		"col3d" | "-col3d" | "--col3d" | "+col3d")
		COMPREPLY=( $(compgen -W "R,_G,_B,_opacity >") )
		return 0
		;;
		"/3d" | "-/3d" | "--/3d" | "+/3d")
		COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") )
		return 0
		;;
		"db3d" | "-db3d" | "--db3d" | "+db3d")
		COMPREPLY=( $(compgen -W "_is_double_sided={_0_|_1_} >") )
		return 0
		;;
		"f3d" | "-f3d" | "--f3d" | "+f3d")
		COMPREPLY=( $(compgen -W "focale >") )
		return 0
		;;
		"l3d" | "-l3d" | "--l3d" | "+l3d")
		COMPREPLY=( $(compgen -W "position_x,position_y,position_z [texture] (no_arg)") )
		return 0
		;;
		"m3d" | "-m3d" | "--m3d" | "+m3d")
		COMPREPLY=( $(compgen -W "_mode >") )
		return 0
		;;
		"md3d" | "-md3d" | "--md3d" | "+md3d")
		COMPREPLY=( $(compgen -W "_mode >") )
		return 0
		;;
		"*3d" | "-*3d" | "--*3d" | "+*3d")
		COMPREPLY=( $(compgen -W "factor factor_x,factor_y,_factor_z") )
		return 0
		;;
		"o3d" | "-o3d" | "--o3d" | "+o3d")
		COMPREPLY=( $(compgen -W "_opacity >") )
		return 0
		;;
		"p3d" | "-p3d" | "--p3d" | "+p3d")
		COMPREPLY=( $(compgen -W "mode >") )
		return 0
		;;
		"r3d" | "-r3d" | "--r3d" | "+r3d")
		COMPREPLY=( $(compgen -W "u,v,w,angle >") )
		return 0
		;;
		"sl3d" | "-sl3d" | "--sl3d" | "+sl3d")
		COMPREPLY=( $(compgen -W "value>=0 >") )
		return 0
		;;
		"ss3d" | "-ss3d" | "--ss3d" | "+ss3d")
		COMPREPLY=( $(compgen -W "value>=0 >") )
		return 0
		;;
		"s3d" | "-s3d" | "--s3d" | "+s3d")
		COMPREPLY=( $(compgen -W "_keep_shared_data={_0_|_1_} >") )
		return 0
		;;
		"-3d" | "--3d" | "---3d" | "+-3d")
		COMPREPLY=( $(compgen -W "tx,_ty,_tz >") )
		return 0
		;;
		"t3d" | "-t3d" | "--t3d" | "+t3d")
		COMPREPLY=( $(compgen -W "[ind_texture],_[ind_coords] >") )
		return 0
		;;
		"ap" | "-ap" | "--ap" | "+ap")
		COMPREPLY=( $(compgen -W ""command" >") )
		return 0
		;;
		"apc" | "-apc" | "--apc" | "+apc")
		COMPREPLY=( $(compgen -W ""command" >") )
		return 0
		;;
		"apo" | "-apo" | "--apo" | "+apo")
		COMPREPLY=( $(compgen -W ""command",overlap[%],nb_threads={_0=auto_|_1_|_2_|_4_|_8_|_16_} >") )
		return 0
		;;
		"at" | "-at" | "--at" | "+at")
		COMPREPLY=( $(compgen -W ""command",_bloc_width[%]>0,_bloc_height[%]>0,_bloc_depth[%]>0,_overlap_width[%]>=0,_overlap_height[%]>=0,_overlap_depth[%]>=0,_boundary_conditions={_0=dirichlet_|_1=neumann_|_2=periodic_|_3=mirror_} >") )
		return 0
		;;
		"x" | "-x" | "--x" | "+x")
		COMPREPLY=( $(compgen -W "_is_verbose={_0_|_1_},"command" >") )
		return 0
		;;
		"u" | "-u" | "--u" | "+u")
		COMPREPLY=( $(compgen -W "status_string >") )
		return 0
		;;
		"frame" | "-frame" | "--frame" | "+frame")
		COMPREPLY=( $(compgen -W "size_x[%],_size_y[%],_col1,...,_colN >") )
		return 0
		;;
	esac
 
	COMPREPLY=( $(compgen -W "$opts" -- "$cur") ) 
	_filedir 
} 
complete -F _gmic_stdlib -o filenames gmic