(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tempfile)
          op: Equal
          rhs: {(DQ (/tmp/geoloc.) ($ VSub_Dollar '$$'))}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (C {(trap)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(which)} {(rm)})])
            left_token: <Left_Backtick '`'>
            spids: [20 24]
          ) (' -f ') ($ VSub_Name '$tempfile')
        )
      } {(0)} {(1)} {(15)}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {(echo)}
                    {
                      (DQ ('Usage: ') 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(basename)} {($ VSub_Number '$0')})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [57 61]
                        ) (' image')
                      )
                    }
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[65])]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 50]
        )
      ]
      spids: [-1 74]
    )
    (ForEach
      iter_name: filename
      do_arg_iter: True
      body: 
        (DoGroup
          children: [
            (Pipeline
              children: [
                (C {(identify)} {(-format)} {(DQ ('%[EXIF:*]'))} {(DQ ($ VSub_Name '$filename'))})
                (SimpleCommand
                  words: [{(grep)} {(GPSL)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {($ VSub_Name '$tempfile')}
                      spids: [102]
                    )
                  ]
                )
              ]
              negated: False
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:latdeg)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(head)} {(-1)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Comma ',')} {(-f1)})
                                  (C {(cut)} {(-d) (Lit_Other '=')} {(-f2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [109 133]
                      )
                    }
                  spids: [108]
                )
              ]
              spids: [108]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:latdeg)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(scriptbc)} {(-p)} {(0)} {($ VSub_Name '$latdeg')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [137 145]
                      )
                    }
                  spids: [136]
                )
              ]
              spids: [136]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:latmin)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(head)} {(-1)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Comma ',')} {(-f2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [149 164]
                      )
                    }
                  spids: [148]
                )
              ]
              spids: [148]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:latmin)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(scriptbc)} {(-p)} {(0)} {($ VSub_Name '$latmin')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [168 176]
                      )
                    }
                  spids: [167]
                )
              ]
              spids: [167]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:latsec)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(head)} {(-1)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Comma ',')} {(-f3)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [180 195]
                      )
                    }
                  spids: [179]
                )
              ]
              spids: [179]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:latsec)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(scriptbc)} {($ VSub_Name '$latsec')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [199 203]
                      )
                    }
                  spids: [198]
                )
              ]
              spids: [198]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:latorientation)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(sed)} {(-n)} {(SQ <2p>)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Other '=')} {(-f2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [207 226]
                      )
                    }
                  spids: [206]
                )
              ]
              spids: [206]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:longdeg)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(sed)} {(-n)} {(SQ <3p>)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Comma ',')} {(-f1)})
                                  (C {(cut)} {(-d) (Lit_Other '=')} {(-f2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [231 259]
                      )
                    }
                  spids: [230]
                )
              ]
              spids: [230]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:longdeg)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(scriptbc)} {(-p)} {(0)} {($ VSub_Name '$longdeg')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [263 271]
                      )
                    }
                  spids: [262]
                )
              ]
              spids: [262]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:longmin)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(sed)} {(-n)} {(SQ <3p>)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Comma ',')} {(-f2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [275 294]
                      )
                    }
                  spids: [274]
                )
              ]
              spids: [274]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:longmin)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(scriptbc)} {(-p)} {(0)} {($ VSub_Name '$longmin')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [298 306]
                      )
                    }
                  spids: [297]
                )
              ]
              spids: [297]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:longsec)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(sed)} {(-n)} {(SQ <3p>)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Comma ',')} {(-f3)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [310 329]
                      )
                    }
                  spids: [309]
                )
              ]
              spids: [309]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:longsec)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(scriptbc)} {($ VSub_Name '$longsec')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [333 337]
                      )
                    }
                  spids: [332]
                )
              ]
              spids: [332]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:longorientation)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(sed)} {(-n)} {(SQ <4p>)} {($ VSub_Name '$tempfile')})
                                  (C {(cut)} {(-d) (Lit_Other '=')} {(-f2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [341 360]
                      )
                    }
                  spids: [340]
                )
              ]
              spids: [340]
            )
            (C {(/bin/echo)} {(-n)} 
              {
                (DQ ('Coords: ') ($ VSub_Name '$latdeg') (' ') (${ VSub_Name latmin) ("' ") 
                  (${ VSub_Name latsec) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') ($ VSub_Name '$latorientation') (', ')
                )
              }
            )
            (C {(echo)} 
              {
                (DQ ($ VSub_Name '$longdeg') (' ') (${ VSub_Name longmin) ("' ") (${ VSub_Name longsec) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') ($ VSub_Name '$longorientation')
                )
              }
            )
          ]
          spids: [81 404]
        )
      spids: [-1 -1]
    )
    (C {(exit)} {(0)})
  ]
)