(command.CommandList
  children: [
    (command.ShFunction
      name_tok: <echo_then_sudo>
      name: echo_then_sudo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'About to execute privileged command: '> ($ Id.VSub_At '@'))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <sudo>
              more_env: []
              words: [{<sudo>} {<-k>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <fixup_debuglink>
      name: fixup_debuglink
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'begin fixup_debuglink'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'obj='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'obj='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'debuglink='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'debuglink='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debuglink='> name:debuglink)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 2))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'current_debuglink='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'current_debuglink='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'current_debuglink='>
                      name: current_debuglink
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <read_debuglink>
                              more_env: []
                              words: [{<read_debuglink>} {(DQ ($ Id.VSub_DollarName obj))}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'has_debuglink='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'has_debuglink='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'has_debuglink='> name:has_debuglink)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_eq
                                      left: {($ Id.VSub_DollarName has_debuglink)}
                                      right: {<0>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ ($ Id.VSub_DollarName current_debuglink))}
                                      right: {(DQ ($ Id.VSub_DollarName debuglink))}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'detected that debuglink '> ($ Id.VSub_DollarName debuglink_value) 
                            <' is already valid'>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [90 119]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_eq
                                      left: {($ Id.VSub_DollarName has_debuglink)}
                                      right: {<0>}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <'detected that debuglink '> 
                                ($ Id.VSub_DollarName current_debuglink) <' needs fixing up to '> ($ Id.VSub_DollarName debuglink)
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'tmpfile='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'tmpfile='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmpfile='> name:tmpfile)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Simple
                                          blame_tok: <mktemp>
                                          more_env: []
                                          words: [{<mktemp>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'saved_ug='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'saved_ug='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'saved_ug='> name:saved_ug)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Simple
                                          blame_tok: <stat>
                                          more_env: []
                                          words: [
                                            {<stat>}
                                            {<-c>}
                                            {(DQ <'%u:%g'>)}
                                            {
                                              (DQ 
                                                (CommandSub
                                                  left_token: <Id.Left_DollarParen '$('>
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <readlink>
                                                      more_env: []
                                                      words: [
                                                        {<readlink>}
                                                        {<-f>}
                                                        {(DQ ($ Id.VSub_DollarName obj))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  right: <Id.Eof_RParen _>
                                                )
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'saved_mode='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'saved_mode='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'saved_mode='>
                                  name: saved_mode
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Simple
                                          blame_tok: <stat>
                                          more_env: []
                                          words: [
                                            {<stat>}
                                            {<-c>}
                                            {(DQ <'%a'>)}
                                            {
                                              (DQ 
                                                (CommandSub
                                                  left_token: <Id.Left_DollarParen '$('>
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <readlink>
                                                      more_env: []
                                                      words: [
                                                        {<readlink>}
                                                        {<-f>}
                                                        {(DQ ($ Id.VSub_DollarName obj))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  right: <Id.Eof_RParen _>
                                                )
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.Sentence
                          child: 
                            (command.AndOr
                              children: [
                                (command.Subshell
                                  left: <Id.Op_LParen _>
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <echo_then_sudo>
                                          more_env: []
                                          words: [
                                            {<echo_then_sudo>}
                                            {<objcopy>}
                                            {<--remove-section>}
                                            {<.gnu_debuglink>}
                                            {(DQ ($ Id.VSub_DollarName obj))}
                                            {(DQ ($ Id.VSub_DollarName tmpfile))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo_then_sudo>
                                          more_env: []
                                          words: [
                                            {<echo_then_sudo>}
                                            {<chown>}
                                            {(DQ ($ Id.VSub_DollarName saved_ug))}
                                            {(DQ ($ Id.VSub_DollarName tmpfile))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo_then_sudo>
                                          more_env: []
                                          words: [
                                            {<echo_then_sudo>}
                                            {<chmod>}
                                            {(DQ ($ Id.VSub_DollarName saved_mode))}
                                            {(DQ ($ Id.VSub_DollarName tmpfile))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo_then_sudo>
                                          more_env: []
                                          words: [
                                            {<echo_then_sudo>}
                                            {<mv>}
                                            {(DQ ($ Id.VSub_DollarName tmpfile))}
                                            {(DQ ($ Id.VSub_DollarName obj))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                                    )
                                  right: <Id.Right_Subshell _>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ <'objcopy failed'>)}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<1>}
                        )
                      ]
                      spids: [142 155]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'tmpfile='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'tmpfile='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmpfile='> name:tmpfile)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <mktemp>
                                  more_env: []
                                  words: [{<mktemp>}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'saved_ug='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'saved_ug='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'saved_ug='> name:saved_ug)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <stat>
                                  more_env: []
                                  words: [
                                    {<stat>}
                                    {<-c>}
                                    {(DQ <'%u:%g'>)}
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <readlink>
                                              more_env: []
                                              words: [
                                                {<readlink>}
                                                {<-f>}
                                                {(DQ ($ Id.VSub_DollarName obj))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'saved_mode='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'saved_mode='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'saved_mode='> name:saved_mode)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <stat>
                                  more_env: []
                                  words: [
                                    {<stat>}
                                    {<-c>}
                                    {(DQ <'%a'>)}
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <readlink>
                                              more_env: []
                                              words: [
                                                {<readlink>}
                                                {<-f>}
                                                {(DQ ($ Id.VSub_DollarName obj))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <echo_then_sudo>
                      more_env: []
                      words: [
                        {<echo_then_sudo>}
                        {<objcopy>}
                        {<--add-gnu-debuglink> <Id.Lit_Equals '='> 
                          (DQ ($ Id.VSub_DollarName debuglink))
                        }
                        {(DQ ($ Id.VSub_DollarName obj))}
                        {(DQ ($ Id.VSub_DollarName tmpfile))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo_then_sudo>
                      more_env: []
                      words: [
                        {<echo_then_sudo>}
                        {<chown>}
                        {(DQ ($ Id.VSub_DollarName saved_ug))}
                        {(DQ ($ Id.VSub_DollarName tmpfile))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo_then_sudo>
                      more_env: []
                      words: [
                        {<echo_then_sudo>}
                        {<chmod>}
                        {(DQ ($ Id.VSub_DollarName saved_mode))}
                        {(DQ ($ Id.VSub_DollarName tmpfile))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo_then_sudo>
                      more_env: []
                      words: [
                        {<echo_then_sudo>}
                        {<mv>}
                        {(DQ ($ Id.VSub_DollarName tmpfile))}
                        {(DQ ($ Id.VSub_DollarName obj))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <success>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                    (command.Subshell
                      left: <Id.Op_LParen _>
                      child: 
                        (command.CommandList
                          children: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ <'objcopy failed'>)}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                        )
                      right: <Id.Right_Subshell _>
                      redirects: []
                    )
                  ]
                  ops: [
                    <Id.Op_DAmp _>
                    <Id.Op_DAmp _>
                    <Id.Op_DAmp _>
                    <Id.Op_DAmp _>
                    <Id.Op_DAmp _>
                    <Id.Op_DPipe _>
                  ]
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <contains_debug_symbols>
      name: contains_debug_symbols
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <objdump>
                  more_env: []
                  words: [{<objdump>} {<-h>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {(SQ <'\\.debug_info'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '1>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <read_debuglink>
      name: read_debuglink
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'debuglink_info='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'debuglink_info='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debuglink_info='> name:debuglink_info)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <objdump>
                                  more_env: []
                                  words: [{<objdump>} {<-h>} {(DQ ($ Id.VSub_Number 1))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <grep>
                                  more_env: []
                                  words: [{<grep>} {(SQ <'\\.gnu_debuglink'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {(DQ ($ Id.VSub_DollarName debuglink_info))}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'no debuglink in '> ($ Id.VSub_Number 1))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [585 598]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'debuglink_off='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'debuglink_off='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debuglink_off='> name:debuglink_off)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName debuglink_info))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <sed>
                                  more_env: []
                                  words: [{<sed>} {(SQ <'s/^[[:blank:]]*//'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <tr>
                                  more_env: []
                                  words: [{<tr>} {<-s>} {(SQ <'[:blank:]'>)} {(SQ <'\\t'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <cut>
                                  more_env: []
                                  words: [{<cut>} {<-f6>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'read debuglink_off: '> ($ Id.VSub_DollarName debuglink_off))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(DQ ($ Id.VSub_DollarName debuglink_off))}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'debuglink_off_bytes='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'debuglink_off_bytes='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'debuglink_off_bytes='>
                              name: debuglink_off_bytes
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: 
                                      {<Id.Lit_Digits 0> <Id.Lit_ArithVarLike x> 
                                        ($ Id.VSub_DollarName debuglink_off)
                                      }
                                    right: {<Id.Lit_Digits 0>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {(DQ ($ Id.VSub_DollarName debuglink_off_bytes))}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'bad debuglink header'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [704 717]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Pipeline
                          children: [
                            (command.Simple
                              blame_tok: <od>
                              more_env: []
                              words: [
                                {<od>}
                                {<--skip-bytes> <Id.Lit_Equals '='> 
                                  (${ Id.VSub_Name debuglink_off_bytes)
                                }
                                {<--string>}
                                {(DQ ($ Id.VSub_Number 1))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <head>
                              more_env: []
                              words: [{<head>} {<-n1>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sed>
                              more_env: []
                              words: [{<sed>} {(SQ <'s/^[0-9a-f]* //'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [673 686]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <find_debug_file_for>
      name: find_debug_file_for
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'file='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <readelf>
                                  more_env: []
                                  words: [{<readelf>} {<-wi>} {(DQ ($ Id.VSub_DollarName file))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <grep>
                                  more_env: []
                                  words: [{<grep>} {<-m1>} {<.>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'debuglink_val='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'debuglink_val='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'debuglink_val='>
                              name: debuglink_val
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <read_debuglink>
                                      more_env: []
                                      words: [{<read_debuglink>} {(DQ ($ Id.VSub_DollarName file))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(DQ ($ Id.VSub_DollarName debuglink_val))}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(DQ <'Read debuglink val: '> ($ Id.VSub_DollarName debuglink_val))}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'resolved_debuglink='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'resolved_debuglink='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'resolved_debuglink='>
                                      name: resolved_debuglink
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <resolve_debuglink>
                                              more_env: []
                                              words: [
                                                {<resolve_debuglink>}
                                                {(DQ ($ Id.VSub_DollarName file))}
                                                {(DQ ($ Id.VSub_DollarName debuglink_val))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'Resolved debuglink to: '> 
                                    ($ Id.VSub_DollarName resolved_debuglink)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName resolved_debuglink))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [845 858]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'No debuglink found'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ ($ Id.VSub_DollarName file))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [804 828]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName file))}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <readelf_debug>
      name: readelf_debug
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <declare>
              more_env: []
              words: [{<declare>} {<-a>} {<args>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ctr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ctr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ctr='> name:ctr)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <true>
                          more_env: []
                          words: [{<true>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen 'args['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen 'args['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen 'args['>
                              name: args
                              index: {($ Id.VSub_DollarName ctr)}
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ctr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ctr='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ctr='> name:ctr)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: {($ Id.VSub_DollarName ctr)}
                                    right: {<Id.Lit_Digits 1>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'file='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'file='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name args>
                        var_name: args
                        bracket_op: 
                          (bracket_op.ArrayIndex
                            expr: 
                              {
                                (word_part.ArithSub
                                  left: <Id.Left_DollarDParen '$(('>
                                  anode: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Minus
                                      left: {($ Id.VSub_DollarName ctr)}
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  right: <Id.Right_DollarDParen _>
                                )
                              }
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'Slurped args: '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name args>
                      var_name: args
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Guessed file arg: '> ($ Id.VSub_DollarName file))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <unset>
              more_env: []
              words: [
                {<unset>}
                {<Id.Lit_ArrayLhsOpen 'args['> 
                  (word_part.ArithSub
                    left: <Id.Left_DollarDParen '$(('>
                    anode: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Minus
                        left: {($ Id.VSub_DollarName ctr)}
                        right: {<Id.Lit_Digits 1>}
                      )
                    right: <Id.Right_DollarDParen _>
                  ) <Id.Lit_RBracket ']'>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <readelf>
              more_env: []
              words: [
                {<readelf>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name args>
                    var_name: args
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
                {
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <find_debug_file_for>
                          more_env: []
                          words: [{<find_debug_file_for>} {(DQ ($ Id.VSub_DollarName file))}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <get_cu_info>
      name: get_cu_info
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <readelf_debug>
                  more_env: []
                  words: [{<readelf_debug>} {<-wi>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {<-A7>} {(SQ <DW_TAG_compile_unit>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {(SQ <'\\n'>)} {(SQ <'\\f'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {(SQ <'s/\\f--\\f/\\n/g'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <read_cu_info>
      name: read_cu_info
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <read>
              more_env: []
              words: [{<read>} {<cu_info>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ret='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ret='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ret='> name:ret)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(DQ ($ Id.VSub_DollarName cu_info))}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cu_fname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cu_fname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cu_fname='> name:cu_fname)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(DQ ($ Id.VSub_DollarName cu_info))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <tr>
                                          more_env: []
                                          words: [{<tr>} {(SQ <'\\f'>)} {(SQ <'\\n'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <grep>
                                          more_env: []
                                          words: [{<grep>} {<DW_AT_name>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <head>
                                          more_env: []
                                          words: [{<head>} {<-n1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [
                                            {<sed>}
                                            {
                                              (SQ 
                                                <
's/.*DW_AT_name[[:blank:]]*:[[:blank:]]*\\((.*, offset: 0x[0-9a-f]*): \\)\\?\\(.*\\)/\\2/'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [{<sed>} {(SQ <'s/[[:blank:]]*$//'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                      ]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cu_language_fullstr='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cu_language_fullstr='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cu_language_fullstr='>
                              name: cu_language_fullstr
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(DQ ($ Id.VSub_DollarName cu_info))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <tr>
                                          more_env: []
                                          words: [{<tr>} {(SQ <'\\f'>)} {(SQ <'\\n'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <grep>
                                          more_env: []
                                          words: [{<grep>} {<DW_AT_language>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <head>
                                          more_env: []
                                          words: [{<head>} {<-n1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [
                                            {<sed>}
                                            {(SQ <'s/.*DW_AT_language[[:blank:]]*:[[:blank:]]*//'>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [{<sed>} {(SQ <'s/[[:blank:]]*$//'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                        <Id.Op_Pipe _>
                                      ]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Note: found CU '> ($ Id.VSub_DollarName cu_fname))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'CU info is: '> ($ Id.VSub_DollarName cu_info))}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'language field of CU info is '> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName cu_language_fullstr))}]
                                  redirects: []
                                  do_fork: T
                                )
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'comp_dir line of CU info is '> 
                            (CommandSub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName cu_info))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <tr>
                                      more_env: []
                                      words: [{<tr>} {(SQ <'\\f'>)} {(SQ <'\\n'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <grep>
                                      more_env: []
                                      words: [{<grep>} {<DW_AT_comp_dir>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                )
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cu_compdir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cu_compdir='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cu_compdir='> name:cu_compdir)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(DQ ($ Id.VSub_DollarName cu_info))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <tr>
                                          more_env: []
                                          words: [{<tr>} {(SQ <'\\f'>)} {(SQ <'\\n'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <grep>
                                          more_env: []
                                          words: [{<grep>} {<DW_AT_comp_dir>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [
                                            {<sed>}
                                            {
                                              (SQ 
                                                <
's/.*DW_AT_comp_dir[[:blank:]]*:[[:blank:]]*\\((.*, offset: 0x[0-9a-f]*): \\)\\?\\(.*\\)/\\2/'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [{<sed>} {(SQ <'s/[[:blank:]]*$//'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'Note: found comp_dir '> ($ Id.VSub_DollarName cu_compdir))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName cu_fname))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Op_LParen _>
                          pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cu_sourcepath='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cu_sourcepath='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cu_sourcepath='>
                                      name: cu_sourcepath
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name cu_fname))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Op_LParen _>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cu_sourcepath='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cu_sourcepath='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'cu_sourcepath='>
                                      name: cu_sourcepath
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name cu_compdir) <'/'> (${ Id.VSub_Name cu_fname))
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cu_language_num='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cu_language_num='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cu_language_num='>
                              name: cu_language_num
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {(DQ ($ Id.VSub_DollarName cu_language_fullstr))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <tr>
                                          more_env: []
                                          words: [{<tr>} {<-s>} {(SQ <'[[:blank:]]'>)} {(SQ <'\\t'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cut>
                                          more_env: []
                                          words: [{<cut>} {<-f1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1156 1169]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cu_fname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cu_fname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cu_fname='> name:cu_fname)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cu_language_fullstr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cu_language_fullstr='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cu_language_fullstr='>
                          name: cu_language_fullstr
                        )
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cu_compdir='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cu_compdir='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cu_compdir='> name:cu_compdir)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cu_sourcepath='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cu_sourcepath='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cu_sourcepath='>
                          name: cu_sourcepath
                        )
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'cu_language_num='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'cu_language_num='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'cu_language_num='>
                          name: cu_language_num
                        )
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_eq
                                  left: {($ Id.VSub_DollarName ret)}
                                  right: {<0>}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <true>
                          more_env: []
                          words: [{<true>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1534 1547]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <false>
                      more_env: []
                      words: [{<false>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <resolve_debuglink>
      name: resolve_debuglink
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'obj='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'obj='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'debuglink_value='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'debuglink_value='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'debuglink_value='>
                      name: debuglink_value
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 2))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'canon_obj_path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'canon_obj_path='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'canon_obj_path='> name:canon_obj_path)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <readlink>
                              more_env: []
                              words: [{<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName obj))}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [candidate]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <dirname>
                              more_env: []
                              words: [{<dirname>} {(DQ ($ Id.VSub_DollarName canon_obj_path))}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <'/.debug/'> ($ Id.VSub_DollarName debuglink_value)
                      )
                    }
                    {<'/usr/lib/debug'> 
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <dirname>
                              more_env: []
                              words: [{<dirname>} {(${ Id.VSub_Name canon_obj_path)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      ) <'/'> ($ Id.VSub_DollarName debuglink_value)
                    }
                    {<'/usr/lib/debug/.build-id/'> <Id.Lit_Star '*'> <'/'> 
                      ($ Id.VSub_DollarName debuglink_value)
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <contains_debug_symbols>
                                      more_env: []
                                      words: [
                                        {<contains_debug_symbols>}
                                        {(DQ ($ Id.VSub_DollarName candidate))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'detected debug info within debuglink '> 
                                    ($ Id.VSub_DollarName debuglink_value) <' resolved at '> ($ Id.VSub_DollarName candidate)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName candidate))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [1649 1658]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ensure_debug_symbols>
      name: ensure_debug_symbols
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'obj='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'obj='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <contains_debug_symbols>
                              more_env: []
                              words: [{<contains_debug_symbols>} {(DQ ($ Id.VSub_DollarName obj))}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'detected debug info within file '> ($ Id.VSub_DollarName obj))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [1719 1728]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'debuglink_value='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'debuglink_value='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'debuglink_value='>
                                      name: debuglink_value
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <read_debuglink>
                                              more_env: []
                                              words: [
                                                {<read_debuglink>}
                                                {(DQ ($ Id.VSub_DollarName obj))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'resolved_debuglink='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'resolved_debuglink='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'resolved_debuglink='>
                              name: resolved_debuglink
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <resolve_debuglink>
                                      more_env: []
                                      words: [
                                        {<resolve_debuglink>}
                                        {(DQ ($ Id.VSub_DollarName obj))}
                                        {(DQ ($ Id.VSub_DollarName debuglink_value))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      children: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {(DQ ($ Id.VSub_DollarName resolved_debuglink))}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <contains_debug_symbols>
                                          more_env: []
                                          words: [
                                            {<contains_debug_symbols>}
                                            {(DQ ($ Id.VSub_DollarName resolved_debuglink))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'detected debug info within debuglink '> 
                                    ($ Id.VSub_DollarName debuglink_value) <' resolved at '> ($ Id.VSub_DollarName candidate)
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName candidate))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [1801 1822]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [1764 1780]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'success_attempt='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'success_attempt='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'success_attempt='>
                      name: success_attempt
                    )
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [attempt]
              iterable: 
                (for_iter.Words
                  words: [
                    {<'/usr/lib/debug'> 
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <readlink>
                              more_env: []
                              words: [{<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName obj))}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                    {<'/usr/lib/debug'> 
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <dirname>
                              more_env: []
                              words: [
                                {<dirname>}
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Simple
                                          blame_tok: <readlink>
                                          more_env: []
                                          words: [{<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName obj))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        ) <'/'> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <basename>
                              more_env: []
                              words: [{<basename>} {(DQ ($ Id.VSub_DollarName obj))}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'looking for a package containing '> ($ Id.VSub_DollarName attempt))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'apt_found='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'apt_found='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'apt_found='> name:apt_found)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <echo_then_sudo>
                                          more_env: []
                                          words: [
                                            {<echo_then_sudo>}
                                            {<apt-file>}
                                            {<-F>}
                                            {<find>}
                                            {(DQ ($ Id.VSub_DollarName attempt))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [{<sed>} {(SQ <'s^: /.*^^'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(DQ ($ Id.VSub_DollarName apt_found))}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pkg='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pkg='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pkg='> name:pkg)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {(DQ ($ Id.VSub_DollarName apt_found))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <cut>
                                                  more_env: []
                                                  words: [{<cut>} {<-f1>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _>]
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'found '> ($ Id.VSub_DollarName pkg))}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              left: <Id.KW_DLeftBracket '[['>
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(DQ ($ Id.VSub_DollarName pkg))}
                                                )
                                              right: <Id.Lit_DRightBracket ']]'>
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <dpkg>
                                                      more_env: []
                                                      words: [
                                                        {<dpkg>}
                                                        {<-p>}
                                                        {(DQ ($ Id.VSub_DollarName pkg))}
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_Great '2>'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName pkg) 
                                                    <' is already installed'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '1>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [2186 2203]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ <'Attempting install of '> 
                                                ($ Id.VSub_DollarName pkg)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '1>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<2>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.If
                                          if_kw: <Id.KW_If if>
                                          arms: [
                                            (IfArm
                                              keyword: <Id.KW_If if>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.Pipeline
                                                          negated: <Id.KW_Bang '!'>
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <echo_then_sudo>
                                                              more_env: []
                                                              words: [
                                                                {<echo_then_sudo>}
                                                                {<apt-get>}
                                                                {<install>}
                                                                {(DQ ($ Id.VSub_DollarName pkg))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: []
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [{<echo>} {(DQ <'install failed'>)}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '1>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<2>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Return return>
                                                  arg_word: {<1>}
                                                )
                                              ]
                                              spids: [2231 2246]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <contains_debug_symbols>
                                                      more_env: []
                                                      words: [
                                                        {<contains_debug_symbols>}
                                                        {(DQ ($ Id.VSub_DollarName attempt))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'correct_debuglink='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'correct_debuglink='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'correct_debuglink='>
                                                      name: correct_debuglink
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (CommandSub
                                                          left_token: <Id.Left_DollarParen '$('>
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <basename>
                                                              more_env: []
                                                              words: [
                                                                {<basename>}
                                                                {
                                                                  (DQ 
                                                                    (CommandSub
                                                                      left_token: 
                                                                        <Id.Left_DollarParen '$('>
                                                                      child: 
                                                                        (command.Simple
                                                                          blame_tok: <readlink>
                                                                          more_env: []
                                                                          words: [
                                                                            {<readlink>}
                                                                            {<-f>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName attempt
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      right: <Id.Eof_RParen _>
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          right: <Id.Eof_RParen _>
                                                        )
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'debuglink should say '> 
                                                    ($ Id.VSub_DollarName correct_debuglink)
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '1>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Pipeline
                                                              negated: <Id.KW_Bang '!'>
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <fixup_debuglink>
                                                                  more_env: []
                                                                  words: [
                                                                    {<fixup_debuglink>}
                                                                    {(DQ ($ Id.VSub_DollarName obj))}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName attempt)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: []
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [{<echo>} {(DQ <failed>)}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '1>&'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<2>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Return return>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  spids: [2325 2340]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'verify_debuglink='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'verify_debuglink='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'verify_debuglink='>
                                                      name: verify_debuglink
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (CommandSub
                                                          left_token: <Id.Left_DollarParen '$('>
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <read_debuglink>
                                                              more_env: []
                                                              words: [
                                                                {<read_debuglink>}
                                                                {(DQ ($ Id.VSub_DollarName obj))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          right: <Id.Eof_RParen _>
                                                        )
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.DBracket
                                                              left: <Id.KW_DLeftBracket '[['>
                                                              expr: 
                                                                (bool_expr.Binary
                                                                  op_id: Id.BoolBinary_GlobDEqual
                                                                  left: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
verify_debuglink
                                                                        )
                                                                      )
                                                                    }
                                                                  right: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
correct_debuglink
                                                                        )
                                                                      )
                                                                    }
                                                                )
                                                              right: <Id.Lit_DRightBracket ']]'>
                                                              redirects: []
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {(DQ ($ Id.VSub_DollarName attempt))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Return return>
                                                      arg_word: {<0>}
                                                    )
                                                  ]
                                                  spids: [2380 2397]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {(DQ <'debuglink not fixed up properly'>)}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '1>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<2>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Return return>
                                                  arg_word: {<1>}
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [2274 2283]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ 
                                                <'installed package unexpectedly lacked debug info'>
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '1>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<2>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [2170 2183]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(DQ <'apt-file printed something strange'>)}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [2123 2136]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'package not found'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'giving up'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ensure_debug_source>
      name: ensure_debug_source
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'obj='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'obj='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'obj='> name:obj)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'first_compile_unit_context='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'first_compile_unit_context='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'first_compile_unit_context='>
                      name: first_compile_unit_context
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <readelf>
                                  more_env: []
                                  words: [{<readelf>} {<-wi>} {(DQ ($ Id.VSub_DollarName obj))}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <grep>
                                  more_env: []
                                  words: [{<grep>} {<-m1>} {<-A5>} {<compile_unit>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compile_unit_name='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compile_unit_name='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'compile_unit_name='>
                      name: compile_unit_name
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {(DQ ($ Id.VSub_DollarName first_compile_unit_context))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <grep>
                                  more_env: []
                                  words: [{<grep>} {<DW_AT_name>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <sed>
                                  more_env: []
                                  words: [
                                    {<sed>}
                                    {
                                      (SQ 
                                        <
's/.*DW_AT_name.*indirect string, offset: 0x[0-9a-f]\\+): //'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <sed>
                                  more_env: []
                                  words: [{<sed>} {(SQ <'s/[[:blank:]]*$//'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'extracted CU name: '> ($ Id.VSub_DollarName compile_unit_name))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'comp_dir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'comp_dir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'comp_dir='> name:comp_dir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {(DQ ($ Id.VSub_DollarName first_compile_unit_context))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <grep>
                                  more_env: []
                                  words: [{<grep>} {<comp_dir>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <sed>
                                  more_env: []
                                  words: [
                                    {<sed>}
                                    {
                                      (SQ 
                                        <
's/.*DW_AT_comp_dir.*(indirect string, offset: 0x[0-9a-f]\\+): //'
                                        >
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <sed>
                                  more_env: []
                                  words: [{<sed>} {(SQ <'s/[[:blank:]]*$//'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'extracted compilation directory: '> ($ Id.VSub_DollarName comp_dir))}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_r
                                  child: 
                                    {
                                      (DQ (${ Id.VSub_Name comp_dir) <'/'> 
                                        (${ Id.VSub_Name compile_unit_name)
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'guessing that source does exist already'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [2694 2713]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'source does not exist already'>)}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {(DQ ($ Id.VSub_DollarName DPKG_SOURCE_ROOT))}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DPKG_SOURCE_ROOT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DPKG_SOURCE_ROOT='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'DPKG_SOURCE_ROOT='>
                              name: DPKG_SOURCE_ROOT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <mktemp>
                                      more_env: []
                                      words: [{<mktemp>} {<-d>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2753 2766]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'downloading source to '> ($ Id.VSub_DollarName DPKG_SOURCE_ROOT))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {(DQ ($ Id.VSub_DollarName DPKG_SOURCE_ROOT))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'owning_package='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'owning_package='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'owning_package='>
                                  name: owning_package
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.Simple
                                              blame_tok: <dpkg>
                                              more_env: []
                                              words: [{<dpkg>} {<-S>} {(DQ ($ Id.VSub_DollarName obj))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <sed>
                                              more_env: []
                                              words: [{<sed>} {(SQ <'s^: /.*^^'>)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_Pipe _>]
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(DQ <'failed to identify owning package'>)}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '1>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <apt-get>
                          more_env: []
                          words: [{<apt-get>} {<source>} {(DQ ($ Id.VSub_DollarName owning_package))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(DQ <'failed to download source'>)}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '1>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          right: <Id.Right_Subshell _>
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'source_dirname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'source_dirname='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'source_dirname='>
                              name: source_dirname
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <ls>
                                          more_env: []
                                          words: [{<ls>} {<-t>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <head>
                                          more_env: []
                                          words: [{<head>} {<-n1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'guessing source was extracted in '> 
                            ($ Id.VSub_DollarName source_dirname)
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName comp_dir))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Op_LParen _>
                          pattern: (pat.Words words:[{<'/build/buildd/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'found a buildd build'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'source_dirname_escaped='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_dirname_escaped='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_dirname_escaped='>
                                      name: source_dirname_escaped
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {(DQ ($ Id.VSub_DollarName source_dirname))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <escape_regexp_floating>
                                                  more_env: []
                                                  words: [{<escape_regexp_floating>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _>]
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'prefix='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'prefix='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prefix='> name:prefix)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {(DQ ($ Id.VSub_DollarName comp_dir))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <sed>
                                                  more_env: []
                                                  words: [
                                                    {<sed>}
                                                    {
                                                      (DQ <'s^'> <Id.Lit_BadBackslash '\\'> <'(.*/'> 
                                                        (${ Id.VSub_Name source_dirname_escaped) <'/'> <Id.Lit_BadBackslash '\\'> <').*^'> <Id.Lit_BadBackslash '\\'> <'1^'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _>]
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'calculated source path prefix '> ($ Id.VSub_DollarName prefix))
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <echo_then_sudo>
                                  more_env: []
                                  words: [
                                    {<echo_then_sudo>}
                                    {<mkdir>}
                                    {<-p>}
                                    {
                                      (DQ 
                                        (CommandSub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Simple
                                              blame_tok: <dirname>
                                              more_env: []
                                              words: [{<dirname>} {(DQ ($ Id.VSub_DollarName prefix))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Eof_RParen _>
                                        )
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <echo_then_sudo>
                                  more_env: []
                                  words: [
                                    {<echo_then_sudo>}
                                    {<ln>}
                                    {<-s>}
                                    {(DQ ($ Id.VSub_DollarName source_dirname))}
                                    {(DQ ($ Id.VSub_DollarName prefix))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Subshell
                                  left: <Id.Op_LParen _>
                                  child: 
                                    (command.CommandList
                                      children: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>} {(DQ <'failed to mkdir or symlink'>)}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '1>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                    )
                                  right: <Id.Right_Subshell _>
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <success>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Op_LParen _>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'package was built at bad source directory'>)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)