(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:me)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
                  left_token: <Left_Backtick '`'>
                  spids: [12 16]
                )
              )
            }
          spids: [10]
        )
      ]
      spids: [10]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$conf'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-r)} {(/etc/udev/udev.conf)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:conf)
                          op: Equal
                          rhs: {(/etc/udev/udev.conf)}
                          spids: [55]
                        )
                      ]
                      spids: [55]
                    )
                  ]
                  spids: [16777215 52]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:conf)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (SimpleCommand
                                      words: [{(find)} {(/etc)} {(-type)} {(f)} {(-name)} {(udev.conf)}]
                                      redirects: [
                                        (Redir
                                          op: <Redir_Great '2>'>
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                        )
                                      ]
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [64 80]
                            )
                          )
                        }
                      spids: [62]
                    )
                  ]
                  spids: [62]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(test)} {(-z)} {(DQ ($ VSub_Name '$conf'))})
                                (C {(test)} {(KW_Bang '!')} {(-r)} {(DQ ($ VSub_Name '$conf'))})
                              ]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (SimpleCommand
                          words: [{(echo)} {(DQ ($ VSub_Name '$me') (' Error: no udev.conf found'))}]
                          redirects: [(Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})]
                        )
                        (ControlFlow
                          token: <ControlFlow_Exit exit>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [16777215 107]
                    )
                  ]
                  spids: [16777215 126]
                )
              ]
              spids: [59 129]
            )
          ]
          spids: [16777215 40]
        )
      ]
      spids: [16777215 131]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:rules_d)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(sed)} {(-n)} {(SQ <'/^udev_rules=/{ s!udev_rules=!!; s!\\"!!g; p; }'>)} 
                          {($ VSub_Name '$conf')}
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [145 155]
                )
              )
            }
          spids: [143]
        )
      ]
      spids: [143]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$rules_d'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rules_d)
                  op: Equal
                  rhs: {(/etc/udev/rules.d)}
                  spids: [173]
                )
              ]
              spids: [173]
            )
          ]
          spids: [16777215 170]
        )
      ]
      spids: [16777215 176]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$rules_d'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Name '$me') (' Error: cannot find udev rules directory'))}]
              redirects: [(Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 191]
        )
      ]
      spids: [16777215 209]
    )
    (C {(sh)} {(-xc)} 
      {
        (DQ ('cp ') 
          (CommandSubPart
            command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number '$0')})])
            left_token: <Left_Backtick '`'>
            spids: [217 221]
          ) ('/udev.txt ') ($ VSub_Name '$rules_d') (/60-aoe.rules)
        )
      }
    )
  ]
)