(command.CommandList children: [ (command.ShFunction name: _ldap_uris body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'ldap:// ldaps://'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [11] ) ] ) ] ) ) (command.ShFunction name: _ldap_protocols body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'2 3'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [44] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ldapsearch body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-h>}] action: [ (C {<_known_hosts_real>} {(DQ ($ Id.VSub_DollarName '$cur'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [103 104 119 -1] ) (case_arm pat_list: [{<-H>}] action: [ (C {<_ldap_uris>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [122 123 134 -1] ) (case_arm pat_list: [{<-T>}] action: [ (C {<_filedir>} {<-d>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [137 138 151 -1] ) (case_arm pat_list: [{<-f>} {<-y>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [154 157 168 -1] ) (case_arm pat_list: [{<-s>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'base one sub children'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [175] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [171 172 204 -1] ) (case_arm pat_list: [{<-a>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'never always search find'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [211] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [207 208 242 -1] ) (case_arm pat_list: [{<-P>}] action: [ (C {<_ldap_protocols>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [245 246 257 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( _parse_help "$1" ) -MM -ZZ'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [283] ) ] ) ] spids: [264 280] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_ldapsearch>} {<ldapsearch>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ldapaddmodify body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-h>}] action: [ (C {<_known_hosts_real>} {(DQ ($ Id.VSub_DollarName '$cur'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [355 356 371 -1] ) (case_arm pat_list: [{<-H>}] action: [ (C {<_ldap_uris>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [374 375 386 -1] ) (case_arm pat_list: [{<-S>} {<-f>} {<-y>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [389 394 405 -1] ) (case_arm pat_list: [{<-P>}] action: [ (C {<_ldap_protocols>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [408 409 420 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( _parse_help "$1" ) -MM -ZZ'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [446] ) ] ) ] spids: [427 443] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_ldapaddmodify>} {<ldapadd>} {<ldapmodify>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ldapdelete body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-h>}] action: [ (C {<_known_hosts_real>} {(DQ ($ Id.VSub_DollarName '$cur'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [520 521 536 -1] ) (case_arm pat_list: [{<-H>}] action: [ (C {<_ldap_uris>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [539 540 551 -1] ) (case_arm pat_list: [{<-f>} {<-y>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [554 557 568 -1] ) (case_arm pat_list: [{<-P>}] action: [ (C {<_ldap_protocols>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [571 572 583 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( _parse_help "$1" ) -MM -ZZ'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [609] ) ] ) ] spids: [590 606] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_ldapdelete>} {<ldapdelete>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ldapcompare body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-h>}] action: [ (C {<_known_hosts_real>} {(DQ ($ Id.VSub_DollarName '$cur'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [681 682 697 -1] ) (case_arm pat_list: [{<-H>}] action: [ (C {<_ldap_uris>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [700 701 712 -1] ) (case_arm pat_list: [{<-y>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [715 716 727 -1] ) (case_arm pat_list: [{<-P>}] action: [ (C {<_ldap_protocols>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [730 731 742 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( _parse_help "$1" ) -MM -ZZ'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [768] ) ] ) ] spids: [749 765] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_ldapcompare>} {<ldapcompare>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ldapmodrdn body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-h>}] action: [ (C {<_known_hosts_real>} {(DQ ($ Id.VSub_DollarName '$cur'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [840 841 856 -1] ) (case_arm pat_list: [{<-H>}] action: [ (C {<_ldap_uris>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [859 860 871 -1] ) (case_arm pat_list: [{<-f>} {<-y>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [874 877 888 -1] ) (case_arm pat_list: [{<-P>}] action: [ (C {<_ldap_protocols>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [891 892 903 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( _parse_help "$1" ) -ZZ -MM'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [929] ) ] ) ] spids: [910 926] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_ldapmodrdn>} {<ldapmodrdn>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ldapwhoami body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-h>}] action: [ (C {<_known_hosts_real>} {(DQ ($ Id.VSub_DollarName '$cur'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1001 1002 1017 -1] ) (case_arm pat_list: [{<-H>}] action: [ (C {<_ldap_uris>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1020 1021 1032 -1] ) (case_arm pat_list: [{<-f>} {<-y>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1035 1038 1049 -1] ) (case_arm pat_list: [{<-P>}] action: [ (C {<_ldap_protocols>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1052 1053 1064 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( _parse_help "$1" ) -MM -ZZ'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1090] ) ] ) ] spids: [1071 1087] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_ldapwhoami>} {<ldapwhoami>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _ldappasswd body: (command.BraceGroup children: [ (C {<local>} {<cur>} {<prev>} {<words>} {<cword>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_init_completion>}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{<-h>}] action: [ (C {<_known_hosts_real>} {(DQ ($ Id.VSub_DollarName '$cur'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1162 1163 1178 -1] ) (case_arm pat_list: [{<-H>}] action: [ (C {<_ldap_uris>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1181 1182 1193 -1] ) (case_arm pat_list: [{<-t>} {<-T>} {<-y>}] action: [ (C {<_filedir>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1196 1201 1212 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {<-> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<compgen>} {<-W>} {(SQ <'$( _parse_help "$1" ) -MM -ZZ'>)} {<-->} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [1238] ) ] ) ] spids: [1219 1235] ) ] ) ] ) ) (C {<complete>} {<-F>} {<_ldappasswd>} {<ldappasswd>}) ] ) ] )