(CommandList
  children: [
    (FuncDef
      name: bootparam_hotplug_cpu
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                (C {(grep)} {(-q)} 
                  {(DQ (rcutorture) (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (onoff_))}
                )
              ]
              negated: False
            )
          ]
          spids: [81]
        )
      spids: [76 80]
    )
    (FuncDef
      name: checkarg
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {($ VSub_Number "$3")} {(-le)} {(1)})]
                  action: [
                    (C {(echo)} {($ VSub_Number "$1")} {(needs)} {(argument)} {($ VSub_Number "$2")} 
                      {(matching)} 
                      {(EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Number "$5") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                      }
                    )
                    (C {(usage)})
                  ]
                  spids: [-1 136]
                )
              ]
              spids: [-1 159]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ ($ VSub_Number "$4"))})
                        (C {(grep)} {(-q)} {(-e)} {(DQ ($ VSub_Number "$5"))})
                      ]
                      negated: False
                    )
                  ]
                  action: [(C {(Lit_Other ":")})]
                  spids: [-1 183]
                )
              ]
              else_action: [
                (C {(echo)} {($ VSub_Number "$1")} {($ VSub_Number "$2")} 
                  {(EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Number "$4") 
                    (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                  } {(must)} {(match)} 
                  {(EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Number "$5") 
                    (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                  }
                )
                (C {(usage)})
              ]
              spids: [189 214]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ ($ VSub_Number "$4"))})
                        (C {(grep)} {(-q)} {(-e)} {(DQ ($ VSub_Number "$6"))})
                      ]
                      negated: False
                    )
                  ]
                  action: [
                    (C {(echo)} {($ VSub_Number "$1")} {($ VSub_Number "$2")} 
                      {(EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Number "$4") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                      } {(must)} {(not)} {(match)} 
                      {(EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Number "$6") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                      }
                    )
                    (C {(usage)})
                  ]
                  spids: [-1 238]
                )
              ]
              spids: [-1 265]
            )
          ]
          spids: [122]
        )
      spids: [117 121]
    )
    (FuncDef
      name: configfrag_boot_params
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-r)} {(DQ ($ VSub_Number "$2") (.boot))})]
                  action: [
                    (C {(echo)} {($ VSub_Number "$1")} 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(grep)} {(-v)} {(SQ <"^#">)} {(DQ ($ VSub_Number "$2") (.boot))})
                                    (C {(tr)} {(SQ <"\\012">)} {(SQ <" ">)})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_Backtick "`">
                          spids: [306 331]
                        )
                      }
                    )
                  ]
                  spids: [-1 299]
                )
              ]
              else_action: [(C {(echo)} {($ VSub_Number "$1")})]
              spids: [334 342]
            )
          ]
          spids: [284]
        )
      spids: [279 283]
    )
    (FuncDef
      name: configfrag_boot_cpus
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:bootargs)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(configfrag_boot_params)} {(DQ ($ VSub_Number "$1"))} 
                                  {(DQ ($ VSub_Number "$2"))}
                                )
                              ]
                            )
                          left_token: <Left_Backtick "`">
                          spids: [368 378]
                        )
                      )
                    }
                  spids: [366]
                )
              ]
              spids: [364]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:maxcpus) op:Equal spids:[384])]
              spids: [382]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name bootargs))})
                        (C {(grep)} {(-q)} {(SQ <"maxcpus=[0-9]">)})
                      ]
                      negated: False
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:maxcpus)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name bootargs))})
                                            (C {(sed)} {(-e)} 
                                              {(SQ <"s/^.*maxcpus=\\([0-9]*\\).*$/\\1/">)}
                                            )
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick "`">
                                  spids: [413 431]
                                )
                              )
                            }
                          spids: [411]
                        )
                      ]
                      spids: [411]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(test)} {(DQ ($ VSub_Number "$3"))} {(-gt)} 
                              {(DQ ($ VSub_Name "$maxcpus"))}
                            )
                          ]
                          action: [(C {(echo)} {($ VSub_Name "$maxcpus")})]
                          spids: [-1 450]
                        )
                      ]
                      else_action: [(C {(echo)} {($ VSub_Number "$3")})]
                      spids: [458 466]
                    )
                  ]
                  spids: [-1 408]
                )
              ]
              else_action: [(C {(echo)} {($ VSub_Number "$3")})]
              spids: [469 477]
            )
          ]
          spids: [361]
        )
      spids: [356 360]
    )
    (FuncDef
      name: configfrag_hotplug_cpu
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(KW_Bang "!")} {(-r)} {(DQ ($ VSub_Number "$1"))})]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(Unreadable)} {(config)} {(fragment)} {(DQ ($ VSub_Number "$1"))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[527])]
                    )
                    (C {(exit)} {(-1)})
                  ]
                  spids: [-1 512]
                )
              ]
              spids: [-1 536]
            )
            (C {(grep)} {(-q)} {(SQ <"^CONFIG_HOTPLUG_CPU=y$">)} {(DQ ($ VSub_Number "$1"))})
          ]
          spids: [496]
        )
      spids: [491 495]
    )
    (FuncDef
      name: identify_boot_image
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$TORTURE_BOOT_IMAGE"))})]
                  action: [(C {(echo)} {($ VSub_Name "$TORTURE_BOOT_IMAGE")})]
                  spids: [-1 591]
                )
              ]
              else_action: [
                (Case
                  to_match: {(DQ ($ VSub_Number "$1"))}
                  arms: [
                    (case_arm
                      pat_list: [{(qemu-system-x86_64)} {(qemu-system-i386)}]
                      action: [(C {(echo)} {(arch/x86/boot/bzImage)})]
                      spids: [611 614 622 -1]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other "*")}]
                      action: [(C {(echo)} {(vmlinux)})]
                      spids: [625 626 634 -1]
                    )
                  ]
                  spids: [602 608 637]
                )
              ]
              spids: [599 640]
            )
          ]
          spids: [577]
        )
      spids: [572 576]
    )
    (FuncDef
      name: identify_qemu
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:u)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(file)} {(DQ ($ VSub_Number "$1"))})]
                            )
                          left_token: <Left_Backtick "`">
                          spids: [669 675]
                        )
                      )
                    }
                  spids: [667]
                )
              ]
              spids: [665]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$TORTURE_QEMU_CMD"))})]
                  action: [(C {(echo)} {($ VSub_Name "$TORTURE_QEMU_CMD")})]
                  spids: [-1 690]
                )
                (if_arm
                  cond: [
                    (Pipeline
                      children: [(C {(echo)} {($ VSub_Name "$u")}) (C {(grep)} {(-q)} {(x86-64)})]
                      negated: False
                    )
                  ]
                  action: [(C {(echo)} {(qemu-system-x86_64)})]
                  spids: [698 713]
                )
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (C {(echo)} {($ VSub_Name "$u")})
                        (C {(grep)} {(-q)} {(DQ ("Intel 80386"))})
                      ]
                      negated: False
                    )
                  ]
                  action: [(C {(echo)} {(qemu-system-i386)})]
                  spids: [721 738]
                )
                (if_arm
                  cond: [
                    (Pipeline
                      children: [(C {(uname)} {(-a)}) (C {(grep)} {(-q)} {(ppc64)})]
                      negated: False
                    )
                  ]
                  action: [(C {(echo)} {(qemu-system-ppc64)})]
                  spids: [746 761]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(Cannot)}
                    {(figure)}
                    {(out)}
                    {(what)}
                    {(qemu)}
                    {(command)}
                    {(to)}
                    {(use) (KW_Bang "!")}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[791])]
                )
                (C {(echo)} {(file)} {($ VSub_Number "$1")} {(output) (Lit_Other ":")} 
                  {($ VSub_Name "$u")}
                )
                (C {(exit)} {(1)})
              ]
              spids: [769 824]
            )
          ]
          spids: [662]
        )
      spids: [657 661]
    )
    (FuncDef
      name: identify_qemu_append
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number "$1"))}
              arms: [
                (case_arm
                  pat_list: [{(qemu-system-x86_64)} {(qemu-system-i386)}]
                  action: [
                    (C {(echo)} {(noapic)} {(Lit_VarLike "selinux=") (0)} {(initcall_debug)} {(debug)})
                  ]
                  spids: [858 861 876 -1]
                )
              ]
              spids: [849 855 879]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$TORTURE_QEMU_INTERACTIVE"))})]
                  action: [(C {(echo)} {(Lit_VarLike "root=") (/dev/sda)})]
                  spids: [-1 893]
                )
              ]
              else_action: [(C {(echo)} {(Lit_VarLike "console=") (ttyS0)})]
              spids: [902 911]
            )
          ]
          spids: [846]
        )
      spids: [841 845]
    )
    (FuncDef
      name: identify_qemu_args
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number "$1"))}
              arms: [
                (case_arm
                  pat_list: [{(qemu-system-x86_64)} {(qemu-system-i386)}]
                  spids: [945 948 951 -1]
                )
                (case_arm
                  pat_list: [{(qemu-system-ppc64)}]
                  action: [
                    (C {(echo)} {(-enable-kvm)} {(-M)} {(pseries)} {(-nodefaults)})
                    (C {(echo)} {(-device)} {(spapr-vscsi)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name "$TORTURE_QEMU_INTERACTIVE"))} {(-a)} 
                              {(-n)} {(DQ ($ VSub_Name "$TORTURE_QEMU_MAC"))}
                            )
                          ]
                          action: [
                            (C {(echo)} {(-device)} 
                              {(spapr-vlan) (Lit_Comma ",") (Lit_VarLike "netdev=") (net0) 
                                (Lit_Comma ",") (Lit_VarLike "mac=") ($ VSub_Name "$TORTURE_QEMU_MAC")
                              }
                            )
                            (C {(echo)} {(-netdev)} 
                              {(bridge) (Lit_Comma ",") (Lit_VarLike "br=") (br0) (Lit_Comma ",") 
                                (Lit_VarLike "id=") (net0)
                              }
                            )
                          ]
                          spids: [-1 995]
                        )
                        (if_arm
                          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$TORTURE_QEMU_INTERACTIVE"))})]
                          action: [(C {(echo)} {(-net)} {(nic)} {(-net)} {(user)})]
                          spids: [1024 1035]
                        )
                      ]
                      spids: [-1 1049]
                    )
                  ]
                  spids: [954 955 1052 -1]
                )
              ]
              spids: [936 942 1055]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$TORTURE_QEMU_INTERACTIVE"))})]
                  action: [(C {(echo)} {(-monitor)} {(stdio)} {(-serial)} {(pty)} {(-S)})]
                  spids: [-1 1069]
                )
              ]
              else_action: [(C {(echo)} {(-serial)} {(file) (Lit_Other ":") ($ VSub_Number "$2")})]
              spids: [1085 1097]
            )
          ]
          spids: [933]
        )
      spids: [928 932]
    )
    (FuncDef
      name: identify_qemu_vcpus
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(lscpu)})
                (C {(grep)} {(SQ <"^CPU(s):">)})
                (C {(sed)} {(-e)} {(SQ <"s/CPU(s)://">)})
              ]
              negated: False
            )
          ]
          spids: [1119]
        )
      spids: [1114 1118]
    )
    (FuncDef
      name: print_bug
      body: 
        (BraceGroup
          children: [(C {(printf)} {(SQ <"\\033[031mBUG: \\033[m">)}) (C {(echo)} {($ VSub_Star "$*")})]
          spids: [1159]
        )
      spids: [1154 1158]
    )
    (FuncDef
      name: print_warning
      body: 
        (BraceGroup
          children: [
            (C {(printf)} {(SQ <"\\033[033mWARNING: \\033[m">)})
            (C {(echo)} {($ VSub_Star "$*")})
          ]
          spids: [1190]
        )
      spids: [1185 1189]
    )
    (FuncDef
      name: specify_qemu_cpus
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:nt) op:Equal spids:[1229])]
                  spids: [1227]
                )
              terminator: <Op_Semi ";">
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [(C {(echo)} {($ VSub_Number "$2")}) (C {(grep)} {(-q)} {(-e)} {(-smp)})]
                      negated: False
                    )
                  ]
                  action: [(C {(echo)} {($ VSub_Number "$2")})]
                  spids: [-1 1251]
                )
              ]
              else_action: [
                (Case
                  to_match: {(DQ ($ VSub_Number "$1"))}
                  arms: [
                    (case_arm
                      pat_list: [{(qemu-system-x86_64)} {(qemu-system-i386)}]
                      action: [(C {(echo)} {($ VSub_Number "$2")} {(-smp)} {($ VSub_Number "$3")})]
                      spids: [1271 1274 1286 -1]
                    )
                    (case_arm
                      pat_list: [{(qemu-system-ppc64)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:nt)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(lscpu)})
                                                (C {(grep)} {(SQ <"^NUMA node0">)})
                                                (C {(sed)} {(-e)} 
                                                  {(SQ <"s/^[^,]*,\\([0-9]*\\),.*$/\\1/">)}
                                                )
                                              ]
                                              negated: False
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick "`">
                                      spids: [1295 1315]
                                    )
                                  )
                                }
                              spids: [1293]
                            )
                          ]
                          spids: [1293]
                        )
                        (C {(echo)} {($ VSub_Number "$2")} {(-smp)} 
                          {(Lit_VarLike "cores=") 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(expr)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\(">)} 
                                      {($ VSub_Number "$3")} {(Lit_Other "+")} {($ VSub_Name "$nt")} {(-)} {(1)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\)">)} 
                                      {(/)} {($ VSub_Name "$nt")}
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick "`">
                              spids: [1326 1346]
                            ) (Lit_Comma ",") (Lit_VarLike "threads=") ($ VSub_Name "$nt")
                          }
                        )
                      ]
                      spids: [1289 1290 1352 -1]
                    )
                  ]
                  spids: [1262 1268 1355]
                )
              ]
              spids: [1259 1358]
            )
          ]
          spids: [1224]
        )
      spids: [1219 1223]
    )
  ]
)