(CommandList
  children: [
    (FuncDef
      name: get-node-instance-metadata
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:metadata) op:Equal rhs:{(DQ )} spids:[57])]
              spids: [55]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:metadata)
                  op: PlusEqual
                  rhs: {(DQ ("startup-script=") (${ VSub_Name KUBE_TEMP) ("/configure-vm.sh,"))}
                  spids: [62]
                )
              ]
              spids: [62]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:metadata)
                  op: PlusEqual
                  rhs: {(DQ ("kube-env=") (${ VSub_Name KUBE_TEMP) ("/node-kube-env.yaml,"))}
                  spids: [72]
                )
              ]
              spids: [72]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:metadata)
                  op: PlusEqual
                  rhs: {(DQ ("cluster-name=") (${ VSub_Name KUBE_TEMP) (/cluster-name.txt))}
                  spids: [82]
                )
              ]
              spids: [82]
            )
            (C {(echo)} {(DQ (${ VSub_Name metadata))})
          ]
          spids: [52]
        )
      spids: [48 51]
    )
    (FuncDef
      name: create-node-instance-template
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:template_name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [115]
                )
              ]
              spids: [113]
            )
            (C {(prepare-startup-script)})
            (C {(create-node-template)} {(DQ ($ VSub_Name "$template_name"))} 
              {(DQ (${ VSub_Name scope_flags))} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(get-node-instance-metadata)})])
                    left_token: <Left_CommandSub "$(">
                    spids: [137 139]
                  )
                )
              }
            )
          ]
          spids: [110]
        )
      spids: [106 109]
    )
  ]
)