(CommandList
  children: [
    (FuncDef
      name: libkey
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libkey)
                  op: Equal
                  rhs: {(DQ (lib_symbols_) ($ VSub_Number '$1'))}
                  spids: [14]
                )
              ]
              spids: [14]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:patterns)
                  op: Equal
                  rhs: {(Lit_Other '[') (.) (Lit_Other '+') (Lit_Comma ',') (/-) (Lit_Other ']')}
                  spids: [21]
                )
              ]
              spids: [21]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:replacement) op:Equal rhs:{(_)} spids:[30])]
              spids: [30]
            )
            (While
              cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ (' ') (${ VSub_Name libkey) (' '))}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '*') (${ VSub_Name patterns) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:libkey)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name libkey>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPercent
                                              arg_word: {(${ VSub_Name patterns) ('*')}
                                            )
                                          spids: [65 72]
                                        ) (${ VSub_Name replacement) 
                                        (BracedVarSub
                                          token: <VSub_Name libkey>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_Pound
                                              arg_word: {('*') (${ VSub_Name patterns)}
                                            )
                                          spids: [76 83]
                                        )
                                      )
                                    }
                                  spids: [63]
                                )
                              ]
                              spids: [63]
                            )
                          ]
                          spids: [55 60 87 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [90 91 97 16777215]
                        )
                      ]
                      spids: [42 52 100]
                    )
                  ]
                  spids: [39 103]
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [11]
        )
      spids: [7 10]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {
                      (DQ ('usage: ') ($ VSub_Number '$0') (' [-Uv] [-L LD_LIBRARY_PATH] file\n') 
                        (
'       -L:       Specify an alternative LD_LIBRARY_PATH for the library resolution.\n'
                        ) ('       -U:       Skip looking for unresolved symbols.\n') 
                        ('       -v:       Show which library each symbol is resolved to.\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [122]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [117]
        )
      spids: [113 116]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[140])]
      spids: [140]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CHECK_UNRESOLVED) op:Equal rhs:{(1)} spids:[143])]
      spids: [143]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:VERBOSE_RESOLVED) op:Equal rhs:{(0)} spids:[146])]
      spids: [146]
    )
    (While
      cond: [(Sentence child:(C {(getopts)} {(DQ ('L:Uv'))} {(flag)}) terminator:<Op_Semi ';'>)]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ (${ VSub_Name flag))}
              arms: [
                (case_arm
                  pat_list: [{(L)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LIB_PATH)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name OPTARG))}
                          spids: [177]
                        )
                      ]
                      spids: [177]
                    )
                  ]
                  spids: [174 175 184 16777215]
                )
                (case_arm
                  pat_list: [{(U)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CHECK_UNRESOLVED)
                          op: Equal
                          rhs: {(0)}
                          spids: [190]
                        )
                      ]
                      spids: [190]
                    )
                  ]
                  spids: [187 188 193 16777215]
                )
                (case_arm
                  pat_list: [{(v)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:VERBOSE_RESOLVED)
                          op: Equal
                          rhs: {(1)}
                          spids: [199]
                        )
                      ]
                      spids: [199]
                    )
                  ]
                  spids: [196 197 202 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(usage)})]
                  spids: [205 206 210 16777215]
                )
              ]
              spids: [163 171 213]
            )
          ]
          spids: [160 215]
        )
    )
    (C {(shift)} 
      {
        (ArithSubPart
          anode: 
            (ArithBinary
              op_id: Arith_Minus
              left: (ArithVarRef name:OPTIND)
              right: (ArithWord w:{(Lit_Digits 1)})
            )
          spids: [219 224]
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [(C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})]
                  negated: T
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('No such file or directory: ') ($ VSub_Number '$1'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[252])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 242]
        )
      ]
      spids: [16777215 260]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:mime)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(file)} {(-L)} {(--mime-type)} {($ VSub_Number '$1')})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [264 272]
              )
            }
          spids: [263]
        )
      ]
      spids: [263]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:isbin) op:Equal rhs:{(0)} spids:[274])]
      spids: [274]
    )
    (Case
      to_match: {($ VSub_Name '$mime')}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '*') (application/x-executable)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:isbin) op:Equal rhs:{(1)} spids:[287])]
              spids: [287]
            )
          ]
          spids: [283 285 290 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*') (application/x-sharedlib)}]
          spids: [292 294 295 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ('Not an elf file'))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[306])]
                )
              terminator: <Op_Semi ';'>
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [297 298 314 16777215]
        )
      ]
      spids: [277 281 316]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:unresolved_symbols)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(nm)} {(-u)} {(-D)} {(--format) (Lit_Other '=') (posix)} 
                            {(DQ ($ VSub_Number '$1'))}
                          )
                          (C {(awk)} {(SQ <'$2 == "U" {print $1}'>)})
                          (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [323 357]
              )
            }
          spids: [322]
        )
      ]
      spids: [322]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(Lit_Other '[')} {(${ VSub_Name isbin)} {(-eq)} {(1)} {(Lit_Other ']')})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:bss_symbols)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(nm)} {(-D)} {(--format) (Lit_Other '=') (posix)} 
                                {(DQ ($ VSub_Number '$1'))}
                              )
                              (C {(awk)} {(SQ <'$2 == "B" && $4 != "" {print $1}'>)})
                              (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
                            ]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [374 406]
                  )
                }
              spids: [373]
            )
          ]
          spids: [373]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name LIB_PATH))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (ForEach
              iter_name: libc
              iter_words: [{(/lib/libc.so.) (Lit_Other '*')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LDD_ENV)
                          op: Equal
                          rhs: {(DQ ('LD_PRELOAD=') (${ VSub_Name libc))}
                          spids: [439]
                        )
                      ]
                      spids: [439]
                    )
                  ]
                  spids: [436 448]
                )
              spids: [431 434]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LDD_ENV)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name LDD_ENV) (' LD_LIBRARY_PATH=') (${ VSub_Name LIB_PATH))}
                  spids: [451]
                )
              ]
              spids: [451]
            )
          ]
          spids: [16777215 423]
        )
      ]
      spids: [16777215 462]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ldd_libs)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(env)} {(${ VSub_Name LDD_ENV)} {(ldd)} 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(realpath)} {($ VSub_Number '$1')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [475 479]
                              )
                            }
                          )
                          (C {(awk)} {(SQ <'{print $1 ":" $3}'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [466 488]
              )
            }
          spids: [465]
        )
      ]
      spids: [465]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:list_libs) op:Equal rhs:{(EmptyPart)} spids:[494])]
      spids: [494]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:resolved_symbols)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [496]
        )
      ]
      spids: [496]
    )
    (ForEach
      iter_name: lib
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (Pipeline
                    children: [
                      (C {(readelf)} {(-d)} {($ VSub_Number '$1')})
                      (C {(awk)} 
                        {
                          (SQ 
                            <
'$2 ~ /\\(?NEEDED\\)?/ { sub(/\\[/,"",$NF); sub(/\\]/,"",$NF); print $NF }'
                            >
                          )
                        }
                      )
                    ]
                    negated: F
                  )
                ]
              )
            left_token: <Left_CommandSub '$('>
            spids: [504 518]
          )
        }
      ]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (C {(echo)} {(-n)} {(DQ ('checking if ') ($ VSub_Name '$lib') (' is needed: '))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name lib>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VOp1_DPound
                                    arg_word: {(Lit_Slash /) ('*')}
                                  )
                                spids: [542 547]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: libpair
                      iter_words: [{(${ VSub_Name ldd_libs)}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {(DQ (${ VSub_Name libpair))}
                              arms: [
                                (case_arm
                                  pat_list: [{(${ VSub_Name lib) (Lit_Other ':') (Lit_Other '*')}]
                                  action: [
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:libpath)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name libpair>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_Pound
                                                          arg_word: {('*:')}
                                                        )
                                                      spids: [590 594]
                                                    )
                                                  )
                                                }
                                              spids: [588]
                                            )
                                          ]
                                          spids: [588]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [581 586 601 16777215]
                                )
                              ]
                              spids: [570 578 604]
                            )
                          ]
                          spids: [567 607]
                        )
                      spids: [561 565]
                    )
                  ]
                  spids: [16777215 553]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:libpath)
                      op: Equal
                      rhs: {(DQ (${ VSub_Name lib))}
                      spids: [613]
                    )
                  ]
                  spids: [613]
                )
              ]
              spids: [610 621]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_libs)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$list_libs') (' ') ($ VSub_Name '$lib'))}
                  spids: [624]
                )
              ]
              spids: [624]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:foundone)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [632]
                )
              ]
              spids: [632]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lib_symbols)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(nm)} {(-D)} {(--defined-only)} 
                                      {(--format) (Lit_Other '=') (posix)} {(DQ (${ VSub_Name libpath))}
                                    )
                                    (C {(awk)} {(SQ <'$2 ~ /C|R|D|T|W|B|V/ {print $1}'>)})
                                    (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [637 673]
                        )
                      )
                    }
                  spids: [635]
                )
              ]
              spids: [635]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(${ VSub_Name CHECK_UNRESOLVED)} {(-eq)} {(1)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(libkey)} {(DQ (${ VSub_Name lib))})
                    (C {(setvar)} {(DQ (${ VSub_Name libkey))} {(DQ (${ VSub_Name lib_symbols))})
                  ]
                  spids: [16777215 692]
                )
              ]
              spids: [16777215 723]
            )
            (ForEach
              iter_name: fct
              iter_words: [{(${ VSub_Name lib_symbols)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: 
                        {
                          (DQ (' ') (${ VSub_Name unresolved_symbols) (' ') (${ VSub_Name bss_symbols) 
                            (' ')
                          )
                        }
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) 
                              (${ VSub_Name fct) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (Lit_Other '*')
                            }
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:foundone)
                                      op: Equal
                                      rhs: {(DQ (${ VSub_Name fct))}
                                      spids: [766]
                                    )
                                  ]
                                  spids: [766]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                          ]
                          spids: [757 764 777 16777215]
                        )
                      ]
                      spids: [740 754 780]
                    )
                  ]
                  spids: [737 783]
                )
              spids: [731 735]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name foundone))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ ('yes... ') (${ VSub_Name foundone))})]
                  spids: [16777215 801]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ (no))})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(1)} spids:[824])]
                  spids: [824]
                )
              ]
              spids: [814 828]
            )
          ]
          spids: [521 830]
        )
      spids: [503 519]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(${ VSub_Name CHECK_UNRESOLVED)} {(-eq)} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:list_libs)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name list_libs) (' crt1.o'))}
                  spids: [855]
                )
              ]
              spids: [855]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lib_symbols)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(nm)} {(--defined-only)} {(--format) (Lit_Other '=') (posix)} 
                                      {(DQ (/usr/lib/crt1.o))}
                                    )
                                    (C {(awk)} {(SQ <'$2 ~ /C|R|D|T|W|B|V/ {print $1}'>)})
                                    (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [866 898]
                        )
                      )
                    }
                  spids: [864]
                )
              ]
              spids: [864]
            )
            (C {(libkey)} {(DQ (crt1.o))})
            (C {(setvar)} {(DQ (${ VSub_Name libkey))} {(DQ (${ VSub_Name lib_symbols))})
            (ForEach
              iter_name: sym
              iter_words: [{(${ VSub_Name unresolved_symbols)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(0)} spids:[947])]
                      spids: [947]
                    )
                    (ForEach
                      iter_name: lib
                      iter_words: [{(${ VSub_Name list_libs)}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (C {(libkey)} {(DQ (${ VSub_Name lib))})
                            (C {(eval)} 
                              {
                                (DQ ('lib_symbols=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\$'>
                                  ) ('{') (${ VSub_Name libkey) ('}') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                            (Case
                              to_match: {(DQ (' ') (${ VSub_Name lib_symbols) (' '))}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(Lit_Other '*') 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\ '>
                                      ) (${ VSub_Name sym) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (Lit_Other '*')
                                    }
                                  ]
                                  action: [
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (C {(Lit_Other '[')} {(${ VSub_Name VERBOSE_RESOLVED)} {(-eq)} 
                                          {(1)} {(Lit_Other ']')}
                                        )
                                        (C {(echo)} 
                                          {
                                            (DQ ('Resolved symbol ') (${ VSub_Name sym) (' from ') 
                                              (${ VSub_Name lib)
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:found)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [1045]
                                        )
                                      ]
                                      spids: [1045]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [1006 1013 1052 16777215]
                                )
                              ]
                              spids: [993 1003 1055]
                            )
                          ]
                          spids: [962 1058]
                        )
                      spids: [956 960]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_Name '$found')} {(-eq)} {(0)} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} {(DQ ('Unresolved symbol ') ($ VSub_Name '$sym'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ret)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [1085]
                                )
                              ]
                              spids: [1085]
                            )
                          ]
                          spids: [16777215 1074]
                        )
                      ]
                      spids: [16777215 1089]
                    )
                  ]
                  spids: [944 1092]
                )
              spids: [938 942]
            )
          ]
          spids: [16777215 848]
        )
      ]
      spids: [16777215 1094]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(${ VSub_Name ret)})
  ]
)