(CommandList
  children: [
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:IFS)
              op: Equal
              rhs: {(SQ <" "> <Lit_EscapedChar "\\t"> <Lit_EscapedChar "\\r">)}
              spids: [36]
            )
            (assign_pair
              lhs: (LhsName name:VERSION)
              op: Equal
              rhs: {(5.1.2-bashcached)}
              spids: [43]
            )
          ]
          spids: [36]
        )
      terminator: <Op_Semi ";">
    )
    (C {(export)} {(Lit_VarLike "LANG=") (C)})
    (C {(trap)} {(SQ <"exit 0">)} {(INT)} {(TERM)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(WordTest w:{(DQ ($ VSub_Name "$SOCAT_VERSION"))}))
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:send)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: (CommandList children:[(C {(mktemp)} {(-u)})])
                              left_token: <Left_CommandSub "$(">
                              spids: [79 83]
                            )
                          )
                        }
                      spids: [77]
                    )
                  ]
                  spids: [77]
                )
              terminator: <Op_Semi ";">
            )
            (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name "$send"))})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:recv)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: (CommandList children:[(C {(mktemp)} {(-u)})])
                              left_token: <Left_CommandSub "$(">
                              spids: [100 104]
                            )
                          )
                        }
                      spids: [98]
                    )
                  ]
                  spids: [98]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence
              child: (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name "$recv"))})
              terminator: <Op_Semi ";">
            )
            (Sentence
              child: 
                (While
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_p child:{(DQ ($ VSub_Name "$recv"))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (Sentence
                          child: 
                            (SimpleCommand
                              words: [{(cat)} {(DQ ($ VSub_Name "$recv"))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [140]
                                )
                              ]
                            )
                          terminator: <Op_Semi ";">
                        )
                      ]
                      spids: [132 144]
                    )
                )
              terminator: <Op_Amp "&">
            )
            (Sentence
              child: (C {(trap)} {(SQ <"rm -f \"$recv\" \"$send\"">)} {(EXIT)})
              terminator: <Op_Semi ";">
            )
            (While
              cond: [(Sentence child:(C {(read)} {(-ra)} {(cmd)}) terminator:<Op_Semi ";">)]
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (Case
                          to_match: 
                            {
                              (BracedVarSub
                                token: <VSub_Name cmd>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [171 176]
                              )
                            }
                          arms: [
                            (case_arm
                              pat_list: [{(set)} {(add)} {(replace)} {(append)} {(prepend)} {(cas)}]
                              action: [
                                (Sentence
                                  child: 
                                    (While
                                      cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
                                      body: 
                                        (DoGroup
                                          children: [
                                            (AndOr
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(printf)}
                                                    {(SQ <"recv=%q send=%q cmd=%q\\n">)}
                                                    {(DQ ($ VSub_Name "$recv"))}
                                                    {(DQ ($ VSub_Name "$send"))}
                                                    {
                                                      (DQ 
                                                        (BracedVarSub
                                                          token: <VSub_Name cmd>
                                                          bracket_op: (WholeArray op_id:Arith_Star)
                                                          spids: [217 222]
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: -1
                                                      arg_word: {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))}
                                                      spids: [225]
                                                    )
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: 2
                                                      arg_word: {(/dev/null)}
                                                      spids: [230]
                                                    )
                                                  ]
                                                )
                                                (ControlFlow
                                                  token: <ControlFlow_Break break>
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          ]
                                          spids: [200 238]
                                        )
                                    )
                                  terminator: <Op_Semi ";">
                                )
                                (SimpleCommand
                                  words: [
                                    {(head)}
                                    {(-c)}
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name cmd>
                                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 4)}))
                                          suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(0)})
                                          spids: [246 253]
                                        )
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: -1
                                      arg_word: {(DQ ($ VSub_Name "$send"))}
                                      spids: [256]
                                    )
                                  ]
                                )
                              ]
                              spids: [181 192 260 -1]
                            )
                            (case_arm
                              pat_list: [{(quit)}]
                              action: [(C {(exit)})]
                              spids: [263 264 267 -1]
                            )
                            (case_arm
                              pat_list: [{(SQ )}]
                              spids: [-1 271 273 -1]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other "*")}]
                              action: [
                                (While
                                  cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
                                  body: 
                                    (DoGroup
                                      children: [
                                        (Sentence
                                          child: 
                                            (AndOr
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(printf)}
                                                    {(SQ <"recv=%q send=%q cmd=%q\\n">)}
                                                    {(DQ ($ VSub_Name "$recv"))}
                                                    {(DQ ($ VSub_Name "$send"))}
                                                    {
                                                      (DQ 
                                                        (BracedVarSub
                                                          token: <VSub_Name cmd>
                                                          bracket_op: (WholeArray op_id:Arith_Star)
                                                          spids: [301 306]
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: -1
                                                      arg_word: {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))}
                                                      spids: [309]
                                                    )
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: 2
                                                      arg_word: {(/dev/null)}
                                                      spids: [314]
                                                    )
                                                  ]
                                                )
                                                (ControlFlow
                                                  token: <ControlFlow_Break break>
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          terminator: <Op_Semi ";">
                                        )
                                      ]
                                      spids: [283 322]
                                    )
                                )
                              ]
                              spids: [275 276 323 -1]
                            )
                          ]
                          spids: [169 178 326]
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  spids: [167 329]
                )
            )
          ]
          spids: [-1 74]
        )
      ]
      else_action: [
        (Sentence
          child: 
            (FuncDef
              name: help
              body: 
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{(tail)} {(-n) (Lit_Other "+") (2)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: -1
                                  arg_word: {(DQ ($ VSub_Number "$0"))}
                                  spids: [346]
                                )
                              ]
                            )
                            (C {(head)} {(-n11)})
                            (C {(cut)} {(-c3-)})
                          ]
                          negated: False
                        )
                      terminator: <Op_Semi ";">
                    )
                    (Sentence child:(C {(exit)}) terminator:<Op_Semi ";">)
                  ]
                  spids: [338]
                )
              spids: [334 337]
            )
          terminator: <Op_Semi ";">
        )
        (FuncDef
          name: version
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: (C {(echo)} {($ VSub_Name "$VERSION")})
                  terminator: <Op_Semi ";">
                )
                (Sentence child:(C {(exit)}) terminator:<Op_Semi ";">)
              ]
              spids: [374]
            )
          spids: [370 373]
        )
        (FuncDef
          name: license
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (C {(curl)} 
                      {
                        (SQ 
                          <
"https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.MIT.md"
                          >
                        )
                      }
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence child:(C {(echo)}) terminator:<Op_Semi ";">)
                (Sentence
                  child: 
                    (C {(curl)} 
                      {
                        (SQ 
                          <
"https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.%F0%9F%8D%A3.md"
                          >
                        )
                      }
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence child:(C {(exit)}) terminator:<Op_Semi ";">)
              ]
              spids: [391]
            )
          spids: [387 390]
        )
        (ForEach
          iter_name: v
          iter_words: [{(DQ ($ VSub_At "$@"))}]
          do_arg_iter: False
          body: 
            (DoGroup
              children: [
                (Sentence
                  child: 
                    (AndOr
                      children: [
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Name "$v")}
                              right: {(--) (Lit_Other "*")}
                            )
                        )
                        (C {(eval)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name v>
                                suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)}))
                                spids: [446 450]
                              )
                            )
                          }
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [428 454]
            )
          spids: [422 426]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair lhs:(LhsName name:unique) op:Equal rhs:{(1)} spids:[462])
            (assign_pair
              lhs: (LhsName name:before)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(printf)} {(SQ <"%(%s)T">)} {(-1)})])
                    left_token: <Left_CommandSub "$(">
                    spids: [466 474]
                  )
                }
              spids: [465]
            )
          ]
          spids: [462]
        )
        (Assignment
          keyword: Assign_Declare
          flags: ["'-A'"]
          pairs: [
            (assign_pair
              lhs: (LhsName name:flags)
              op: Equal
              rhs: {(ArrayLiteralPart)}
              spids: [481]
            )
            (assign_pair
              lhs: (LhsName name:exptime)
              op: Equal
              rhs: {(ArrayLiteralPart)}
              spids: [485]
            )
            (assign_pair
              lhs: (LhsName name:casUnique)
              op: Equal
              rhs: {(ArrayLiteralPart)}
              spids: [489]
            )
            (assign_pair
              lhs: (LhsName name:data)
              op: Equal
              rhs: {(ArrayLiteralPart)}
              spids: [493]
            )
          ]
          spids: [477]
        )
        (FuncDef
          name: cache_has
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (AndOr
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:t)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name exptime>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Number "$1")}))
                                    spids: [510 515]
                                  )
                                }
                              spids: [509]
                            )
                          ]
                          spids: [509]
                        )
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: (WordTest w:{($ VSub_Name "$t")})
                              right: 
                                (LogicalOr
                                  left: 
                                    (BoolBinary
                                      op_id: BoolBinary_eq
                                      left: {($ VSub_Name "$t")}
                                      right: {(0)}
                                    )
                                  right: 
                                    (BoolBinary
                                      op_id: BoolBinary_gt
                                      left: {($ VSub_Name "$t")}
                                      right: {($ VSub_Name "$time")}
                                    )
                                )
                            )
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [507]
            )
          spids: [503 506]
        )
        (FuncDef
          name: cache_update
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (C 
                      {(data) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") 
                        ($ VSub_Number "$2")
                      }
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (AndOr
                      children: [
                        (DBracket expr:(WordTest w:{($ VSub_Number "$3")}))
                        (AndOr
                          children: [
                            (C 
                              {(casUnique) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") 
                                (Lit_Other "=") (DQ ($ VSub_Number "$3"))
                              }
                            )
                            (C 
                              {(casUnique) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") 
                                (Lit_Other "=") (ArithSubPart anode:(UnaryAssign op_id:Node_PostDPlus child:(LhsName name:unique)) spids:[587591])
                              }
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [553]
            )
          spids: [549 552]
        )
        (FuncDef
          name: cache_set
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (C 
                      {(flags) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") 
                        ($ VSub_Number "$2")
                      } 
                      {(exptime) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") (Lit_Other "=") 
                        (ArithSubPart
                          anode: 
                            (TernaryOp
                              cond: 
                                (ArithBinary
                                  op_id: Arith_DAmp
                                  left: 
                                    (ArithBinary
                                      op_id: Arith_Less
                                      left: (ArithWord w:{(Lit_Digits 0)})
                                      right: (ArithWord w:{($ VSub_Number "$3")})
                                    )
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_LessEqual
                                      left: (ArithWord w:{($ VSub_Number "$3")})
                                      right: (ArithWord w:{(Lit_Digits 2592000)})
                                    )
                                )
                              true_expr: 
                                (ArithBinary
                                  op_id: Arith_Plus
                                  left: (ArithWord w:{($ VSub_Number "$3")})
                                  right: (ArithVarRef name:time)
                                )
                              false_expr: (ArithWord w:{($ VSub_Number "$3")})
                            )
                          spids: [615 642]
                        )
                      }
                    )
                  terminator: <Op_Semi ";">
                )
                (Sentence
                  child: 
                    (C {(cache_update)} {(DQ ($ VSub_Number "$1"))} {(DQ ($ VSub_Number "$4"))} 
                      {(DQ ($ VSub_Number "$5"))}
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [601]
            )
          spids: [597 600]
        )
        (FuncDef
          name: cache_get
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (AndOr
                      children: [
                        (C {(cache_has)} {(DQ ($ VSub_Number "$1"))})
                        (AndOr
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:d)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name data>
                                          bracket_op: 
                                            (ArrayIndex
                                              expr: (ArithWord w:{($ VSub_Number "$1")})
                                            )
                                          spids: [679 684]
                                        )
                                      )
                                    }
                                  spids: [677]
                                )
                              ]
                              spids: [677]
                            )
                            (AndOr
                              children: [
                                (C {(printf)} 
                                  {
                                    (SQ <"VALUE %s %s %s%s"> <Lit_EscapedChar "\\r"> 
                                      <Lit_EscapedChar "\\n">
                                    )
                                  } {(DQ ($ VSub_Number "$1"))} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name flags>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: (ArithWord w:{($ VSub_Number "$1")})
                                          )
                                        spids: [704 709]
                                      )
                                    )
                                  } 
                                  {
                                    (DQ 
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(-n)} {(DQ ($ VSub_Name "$d"))})
                                                  (C {(base64)} {(-d)})
                                                  (C {(wc)} {(-c)})
                                                ]
                                                negated: False
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub "$(">
                                        spids: [713 733]
                                      )
                                    )
                                  } 
                                  {
                                    (DQ 
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (AndOr
                                                children: [
                                                  (DBracket
                                                    expr: (WordTest w:{($ VSub_Number "$2")})
                                                  )
                                                  (C {(echo)} 
                                                    {
                                                      (DQ (" ") 
                                                        (BracedVarSub
                                                          token: <VSub_Name casUnique>
                                                          bracket_op: 
                                                            (ArrayIndex
                                                              expr: 
                                                                (ArithWord
                                                                  w: {($ VSub_Number "$1")}
                                                                )
                                                            )
                                                          spids: [750 755]
                                                        )
                                                      )
                                                    }
                                                  )
                                                ]
                                                op_id: Op_DAmp
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub "$(">
                                        spids: [737 757]
                                      )
                                    )
                                  }
                                )
                                (AndOr
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(-n)} {(DQ ($ VSub_Name "$d"))})
                                        (C {(base64)} {(-d)})
                                      ]
                                      negated: False
                                    )
                                    (C {(echo)} {(-e)} {(SQ <"\\r">)})
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [667]
            )
          spids: [663 666]
        )
        (FuncDef
          name: cache_delete
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (C {(unset)} {(DQ ("flags[") ($ VSub_Number "$1") ("]"))} 
                      {(DQ ("exptime[") ($ VSub_Number "$1") ("]"))} {(DQ ("casUnique[") ($ VSub_Number "$1") ("]"))} {(DQ ("data[") ($ VSub_Number "$1") ("]"))}
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [795]
            )
          spids: [791 794]
        )
        (FuncDef
          name: read_data
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:d)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(head)} {(-c)} {(DQ ($ VSub_Number "$1"))} 
                                              {(DQ ($ VSub_Name "$send"))}
                                            )
                                            (C {(base64)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [840 856]
                                )
                              )
                            }
                          spids: [838]
                        )
                      ]
                      spids: [838]
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [836]
            )
          spids: [832 835]
        )
        (FuncDef
          name: base64_cat
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: 
                    (Pipeline
                      children: [
                        (C {(cat)} 
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(-n)} {(DQ ($ VSub_Number "$1"))})
                                        (C {(base64)} {(-d)})
                                      ]
                                      negated: False
                                    )
                                  ]
                                )
                              left_token: <Left_ProcSubIn "<(">
                              spids: [871 885]
                            )
                          } 
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(-n)} {(DQ ($ VSub_Number "$2"))})
                                        (C {(base64)} {(-d)})
                                      ]
                                      negated: False
                                    )
                                  ]
                                )
                              left_token: <Left_ProcSubIn "<(">
                              spids: [887 901]
                            )
                          }
                        )
                        (C {(base64)})
                      ]
                      negated: False
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              spids: [867]
            )
          spids: [863 866]
        )
        (Sentence
          child: 
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:BASHCACHED_PIPE)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(mktemp)} {(-u)})])
                          left_token: <Left_CommandSub "$(">
                          spids: [914 918]
                        )
                      )
                    }
                  spids: [912]
                )
              ]
              spids: [912]
            )
          terminator: <Op_Semi ";">
        )
        (Sentence child:(C {(export)} {(BASHCACHED_PIPE)}) terminator:<Op_Semi ";">)
        (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))})
        (C {(trap)} {(SQ <"rm -f \"$BASHCACHED_PIPE\"">)} {(EXIT)})
        (Sentence
          child: 
            (AndOr
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: 
                        (ArithWord
                          w: 
                            {
                              (BracedVarSub
                                token: <VSub_Name check>
                                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)})
                                spids: [949 953]
                              )
                            }
                        )
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                )
                (While
                  cond: [(Sentence child:(C {(echo)}) terminator:<Op_Semi ";">)]
                  body: 
                    (DoGroup
                      children: [
                        (Sentence
                          child: 
                            (C {(sleep)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name check>
                                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)})
                                    spids: [974 978]
                                  )
                                )
                              }
                            )
                          terminator: <Op_Semi ";">
                        )
                      ]
                      spids: [969 982]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))}
                      spids: [984]
                    )
                  ]
                )
              ]
              op_id: Op_DAmp
            )
          terminator: <Op_Amp "&">
        )
        (Sentence
          child: 
            (Pipeline
              children: [
                (While
                  cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
                  body: 
                    (DoGroup
                      children: [
                        (Sentence
                          child: (C {(cat)} {(DQ ($ VSub_Name "$BASHCACHED_PIPE"))})
                          terminator: <Op_Semi ";">
                        )
                      ]
                      spids: [998 1007]
                    )
                )
                (While
                  cond: [(Sentence child:(C {(read)} {(-r)} {(line)}) terminator:<Op_Semi ";">)]
                  body: 
                    (DoGroup
                      children: [
                        (Sentence
                          child: 
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cmd)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [1023]
                                )
                                (assign_pair
                                  lhs: (LhsName name:recv)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [1027]
                                )
                                (assign_pair
                                  lhs: (LhsName name:send)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [1031]
                                )
                              ]
                              spids: [1023]
                            )
                          terminator: <Op_Semi ";">
                        )
                        (Sentence
                          child: (C {(eval)} {(DQ ($ VSub_Name "$line"))})
                          terminator: <Op_Semi ";">
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:cmd)
                              op: Equal
                              rhs: {(ArrayLiteralPart words:[{($ VSub_Name "$cmd")}])}
                              spids: [1041]
                            )
                            (assign_pair
                              lhs: (LhsName name:time)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [(C {(printf)} {(SQ <"%(%s)T">)} {(-1)})]
                                      )
                                    left_token: <Left_CommandSub "$(">
                                    spids: [1047 1055]
                                  )
                                }
                              spids: [1046]
                            )
                          ]
                          spids: [1041]
                        )
                        (AndOr
                          children: [
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_GreatEqual
                                  left: 
                                    (ArithBinary
                                      op_id: Arith_Minus
                                      left: (ArithVarRef name:time)
                                      right: (ArithVarRef name:before)
                                    )
                                  right: 
                                    (ArithWord
                                      w: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name check>
                                            suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)})
                                            spids: [1068 1072]
                                          )
                                        }
                                    )
                                )
                            )
                            (AndOr
                              children: [
                                (ForEach
                                  iter_name: k
                                  iter_words: [
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name exptime>
                                          prefix_op: VSub_Bang
                                          bracket_op: (WholeArray op_id:Lit_At)
                                          spids: [1086 1092]
                                        )
                                      )
                                    }
                                  ]
                                  do_arg_iter: False
                                  body: 
                                    (DoGroup
                                      children: [
                                        (Sentence
                                          child: 
                                            (AndOr
                                              children: [
                                                (Pipeline
                                                  children: [(C {(cache_has)} {($ VSub_Name "$k")})]
                                                  negated: True
                                                )
                                                (C {(cache_delete)} {($ VSub_Name "$k")})
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          terminator: <Op_Semi ";">
                                        )
                                      ]
                                      spids: [1096 1112]
                                    )
                                  spids: [1084 1094]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:before)
                                      op: Equal
                                      rhs: {($ VSub_Name "$time")}
                                      spids: [1116]
                                    )
                                  ]
                                  spids: [1116]
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (LogicalNot
                                  child: (BoolUnary op_id:BoolUnary_p child:{($ VSub_Name "$recv")})
                                )
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          op_id: Op_DAmp
                        )
                        (Sentence
                          child: 
                            (Case
                              to_match: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name cmd>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [1137 1142]
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [{(set)}]
                                  action: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 4)})
                                                    )
                                                  spids: [1152 1157]
                                                )
                                              }
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          op_id: Op_DPipe
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                    (C {(cache_set)} 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name cmd>
                                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                                          spids: [1168 1173]
                                        )
                                      } 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name cmd>
                                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)}))
                                          spids: [1175 1180]
                                        )
                                      } 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name cmd>
                                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)}))
                                          spids: [1182 1187]
                                        )
                                      } {(DQ ($ VSub_Name "$d"))}
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 5)})
                                                      )
                                                    spids: [1196 1201]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ (STORED) 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [1219]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1147 1148 1223 -1]
                                )
                                (case_arm
                                  pat_list: [{(add)}]
                                  action: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 4)})
                                                    )
                                                  spids: [1231 1236]
                                                )
                                              }
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          op_id: Op_DPipe
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                    (AndOr
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(cache_has)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [1249 1254]
                                                )
                                              }
                                            )
                                          ]
                                          negated: True
                                        )
                                        (AndOr
                                          children: [
                                            (C {(cache_set)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [1260 1265]
                                                )
                                              } 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 2)})
                                                    )
                                                  spids: [1267 1272]
                                                )
                                              } 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 3)})
                                                    )
                                                  spids: [1274 1279]
                                                )
                                              } {(DQ ($ VSub_Name "$d"))}
                                            )
                                            (AndOr
                                              children: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(STORED)}
                                                      spids: [1288]
                                                    )
                                                  ]
                                                  spids: [1288]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_STORED)}
                                                      spids: [1293]
                                                    )
                                                  ]
                                                  spids: [1293]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 5)})
                                                      )
                                                    spids: [1299 1304]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [1322]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1226 1227 1326 -1]
                                )
                                (case_arm
                                  pat_list: [{(replace)}]
                                  action: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 4)})
                                                    )
                                                  spids: [1334 1339]
                                                )
                                              }
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          op_id: Op_DPipe
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                    (AndOr
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name cmd>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [1350 1355]
                                            )
                                          }
                                        )
                                        (AndOr
                                          children: [
                                            (C {(cache_set)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [1361 1366]
                                                )
                                              } 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 2)})
                                                    )
                                                  spids: [1368 1373]
                                                )
                                              } 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 3)})
                                                    )
                                                  spids: [1375 1380]
                                                )
                                              } {(DQ ($ VSub_Name "$d"))}
                                            )
                                            (AndOr
                                              children: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(STORED)}
                                                      spids: [1389]
                                                    )
                                                  ]
                                                  spids: [1389]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_STORED)}
                                                      spids: [1394]
                                                    )
                                                  ]
                                                  spids: [1394]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 5)})
                                                      )
                                                    spids: [1400 1405]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [1423]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1329 1330 1427 -1]
                                )
                                (case_arm
                                  pat_list: [{(append)}]
                                  action: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 4)})
                                                    )
                                                  spids: [1435 1440]
                                                )
                                              }
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          op_id: Op_DPipe
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                    (AndOr
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name cmd>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [1451 1456]
                                            )
                                          }
                                        )
                                        (AndOr
                                          children: [
                                            (C {(cache_update)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [1462 1467]
                                                )
                                              } 
                                              {
                                                (DQ 
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (C {(base64_cat)} 
                                                            {
                                                              (DQ 
                                                                (BracedVarSub
                                                                  token: <VSub_Name data>
                                                                  bracket_op: 
                                                                    (ArrayIndex
                                                                      expr: 
                                                                        (ArithWord
                                                                          w: 
                                                                            {
                                                                              (BracedVarSub
                                                                                token: 
                                                                                  <VSub_Name cmd>
                                                                                bracket_op: 
                                                                                  (ArrayIndex
                                                                                    expr: 
                                                                                      (ArithWord
                                                                                        w: 
                                                                                          {
                                                                                            (
Lit_Digits 1
                                                                                            )
                                                                                          }
                                                                                      )
                                                                                  )
                                                                                spids: [1479 1484]
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  spids: [1476 1486]
                                                                )
                                                              )
                                                            } {(DQ ($ VSub_Name "$d"))}
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_CommandSub "$(">
                                                    spids: [1472 1492]
                                                  )
                                                )
                                              }
                                            )
                                            (AndOr
                                              children: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(STORED)}
                                                      spids: [1497]
                                                    )
                                                  ]
                                                  spids: [1497]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_STORED)}
                                                      spids: [1502]
                                                    )
                                                  ]
                                                  spids: [1502]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 5)})
                                                      )
                                                    spids: [1508 1513]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [1531]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1430 1431 1535 -1]
                                )
                                (case_arm
                                  pat_list: [{(prepend)}]
                                  action: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 4)})
                                                    )
                                                  spids: [1543 1548]
                                                )
                                              }
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          op_id: Op_DPipe
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                    (AndOr
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name cmd>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [1559 1564]
                                            )
                                          }
                                        )
                                        (AndOr
                                          children: [
                                            (C {(cache_update)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [1570 1575]
                                                )
                                              } 
                                              {
                                                (DQ 
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (C {(base64_cat)} {(DQ ($ VSub_Name "$d"))} 
                                                            {
                                                              (DQ 
                                                                (BracedVarSub
                                                                  token: <VSub_Name data>
                                                                  bracket_op: 
                                                                    (ArrayIndex
                                                                      expr: 
                                                                        (ArithWord
                                                                          w: 
                                                                            {
                                                                              (BracedVarSub
                                                                                token: 
                                                                                  <VSub_Name cmd>
                                                                                bracket_op: 
                                                                                  (ArrayIndex
                                                                                    expr: 
                                                                                      (ArithWord
                                                                                        w: 
                                                                                          {
                                                                                            (
Lit_Digits 1
                                                                                            )
                                                                                          }
                                                                                      )
                                                                                  )
                                                                                spids: [1591 1596]
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  spids: [1588 1598]
                                                                )
                                                              )
                                                            }
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_CommandSub "$(">
                                                    spids: [1580 1600]
                                                  )
                                                )
                                              }
                                            )
                                            (AndOr
                                              children: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(STORED)}
                                                      spids: [1605]
                                                    )
                                                  ]
                                                  spids: [1605]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_STORED)}
                                                      spids: [1610]
                                                    )
                                                  ]
                                                  spids: [1610]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 5)})
                                                      )
                                                    spids: [1616 1621]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [1639]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1538 1539 1643 -1]
                                )
                                (case_arm
                                  pat_list: [{(cas)}]
                                  action: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 4)})
                                                    )
                                                  spids: [1651 1656]
                                                )
                                              }
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          op_id: Op_DPipe
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (Pipeline
                                                  children: [
                                                    (C {(cache_has)} 
                                                      {
                                                        (BracedVarSub
                                                          token: <VSub_Name cmd>
                                                          bracket_op: 
                                                            (ArrayIndex
                                                              expr: (ArithWord w:{(Lit_Digits 1)})
                                                            )
                                                          spids: [1671 1676]
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  negated: True
                                                )
                                              terminator: <Op_Semi ";">
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:result)
                                                  op: Equal
                                                  rhs: {(NOT_FOUND)}
                                                  spids: [1681]
                                                )
                                              ]
                                              spids: [1681]
                                            )
                                          ]
                                          spids: [-1 1679]
                                        )
                                      ]
                                      else_action: [
                                        (Sentence
                                          child: 
                                            (AndOr
                                              children: [
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_eq
                                                      left: 
                                                        {
                                                          (BracedVarSub
                                                            token: <VSub_Name casUnique>
                                                            bracket_op: 
                                                              (ArrayIndex
                                                                expr: 
                                                                  (ArithWord
                                                                    w: 
                                                                      {
                                                                        (BracedVarSub
                                                                          token: <VSub_Name cmd>
                                                                          bracket_op: 
                                                                            (ArrayIndex
                                                                              expr: 
                                                                                (ArithWord
                                                                                  w: {(Lit_Digits 1)}
                                                                                )
                                                                            )
                                                                          spids: [1692 1697]
                                                                        )
                                                                      }
                                                                  )
                                                              )
                                                            spids: [1689 1699]
                                                          )
                                                        }
                                                      right: 
                                                        {
                                                          (BracedVarSub
                                                            token: <VSub_Name cmd>
                                                            bracket_op: 
                                                              (ArrayIndex
                                                                expr: (ArithWord w:{(Lit_Digits 5)})
                                                              )
                                                            spids: [1703 1708]
                                                          )
                                                        }
                                                    )
                                                )
                                                (AndOr
                                                  children: [
                                                    (C {(cache_set)} 
                                                      {
                                                        (BracedVarSub
                                                          token: <VSub_Name cmd>
                                                          bracket_op: 
                                                            (ArrayIndex
                                                              expr: (ArithWord w:{(Lit_Digits 1)})
                                                            )
                                                          spids: [1716 1721]
                                                        )
                                                      } 
                                                      {
                                                        (BracedVarSub
                                                          token: <VSub_Name cmd>
                                                          bracket_op: 
                                                            (ArrayIndex
                                                              expr: (ArithWord w:{(Lit_Digits 2)})
                                                            )
                                                          spids: [1723 1728]
                                                        )
                                                      } 
                                                      {
                                                        (BracedVarSub
                                                          token: <VSub_Name cmd>
                                                          bracket_op: 
                                                            (ArrayIndex
                                                              expr: (ArithWord w:{(Lit_Digits 3)})
                                                            )
                                                          spids: [1730 1735]
                                                        )
                                                      } {(DQ ($ VSub_Name "$d"))}
                                                    )
                                                    (AndOr
                                                      children: [
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:result)
                                                              op: Equal
                                                              rhs: {(STORED)}
                                                              spids: [1744]
                                                            )
                                                          ]
                                                          spids: [1744]
                                                        )
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:result)
                                                              op: Equal
                                                              rhs: {(EXISTS)}
                                                              spids: [1749]
                                                            )
                                                          ]
                                                          spids: [1749]
                                                        )
                                                      ]
                                                      op_id: Op_DPipe
                                                    )
                                                  ]
                                                  op_id: Op_DAmp
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          terminator: <Op_Semi ";">
                                        )
                                      ]
                                      spids: [1685 1753]
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 6)})
                                                      )
                                                    spids: [1758 1763]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [1781]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1646 1647 1785 -1]
                                )
                                (case_arm
                                  pat_list: [{(get)}]
                                  action: [
                                    (Subshell
                                      child: 
                                        (CommandList
                                          children: [
                                            (ForExpr
                                              init: 
                                                (BinaryAssign
                                                  op_id: Arith_Equal
                                                  left: (LhsName name:i)
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              cond: 
                                                (ArithBinary
                                                  op_id: Arith_Less
                                                  left: (ArithVarRef name:i)
                                                  right: 
                                                    (ArithWord
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            token: <VSub_Name cmd>
                                                            prefix_op: VSub_Pound
                                                            bracket_op: (WholeArray op_id:Lit_At)
                                                            spids: [1804 1810]
                                                          )
                                                        }
                                                    )
                                                )
                                              update: 
                                                (UnaryAssign
                                                  op_id: Node_PostDPlus
                                                  child: (LhsName name:i)
                                                )
                                              body: 
                                                (DoGroup
                                                  children: [
                                                    (Sentence
                                                      child: 
                                                        (C {(cache_get)} 
                                                          {
                                                            (BracedVarSub
                                                              token: <VSub_Name cmd>
                                                              bracket_op: 
                                                                (ArrayIndex
                                                                  expr: 
                                                                    (ArithWord
                                                                      w: {($ VSub_Name "$i")}
                                                                    )
                                                                )
                                                              spids: [1823 1828]
                                                            )
                                                          }
                                                        )
                                                      terminator: <Op_Semi ";">
                                                    )
                                                  ]
                                                  spids: [1819 1831]
                                                )
                                            )
                                            (C {(echo)} {(-e)} {(SQ <"END\\r">)})
                                          ]
                                        )
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: -1
                                          arg_word: {(DQ ($ VSub_Name "$recv"))}
                                          spids: [1842]
                                        )
                                      ]
                                      spids: [1791 1841]
                                    )
                                  ]
                                  spids: [1788 1789 1846 -1]
                                )
                                (case_arm
                                  pat_list: [{(gets)}]
                                  action: [
                                    (Subshell
                                      child: 
                                        (CommandList
                                          children: [
                                            (ForExpr
                                              init: 
                                                (BinaryAssign
                                                  op_id: Arith_Equal
                                                  left: (LhsName name:i)
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              cond: 
                                                (ArithBinary
                                                  op_id: Arith_Less
                                                  left: (ArithVarRef name:i)
                                                  right: 
                                                    (ArithWord
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            token: <VSub_Name cmd>
                                                            prefix_op: VSub_Pound
                                                            bracket_op: (WholeArray op_id:Lit_At)
                                                            spids: [1865 1871]
                                                          )
                                                        }
                                                    )
                                                )
                                              update: 
                                                (UnaryAssign
                                                  op_id: Node_PostDPlus
                                                  child: (LhsName name:i)
                                                )
                                              body: 
                                                (DoGroup
                                                  children: [
                                                    (Sentence
                                                      child: 
                                                        (C {(cache_get)} 
                                                          {
                                                            (BracedVarSub
                                                              token: <VSub_Name cmd>
                                                              bracket_op: 
                                                                (ArrayIndex
                                                                  expr: 
                                                                    (ArithWord
                                                                      w: {($ VSub_Name "$i")}
                                                                    )
                                                                )
                                                              spids: [1884 1889]
                                                            )
                                                          } {(1)}
                                                        )
                                                      terminator: <Op_Semi ";">
                                                    )
                                                  ]
                                                  spids: [1880 1894]
                                                )
                                            )
                                            (C {(echo)} {(-e)} {(SQ <"END\\r">)})
                                          ]
                                        )
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: -1
                                          arg_word: {(DQ ($ VSub_Name "$recv"))}
                                          spids: [1905]
                                        )
                                      ]
                                      spids: [1852 1904]
                                    )
                                  ]
                                  spids: [1849 1850 1909 -1]
                                )
                                (case_arm
                                  pat_list: [{(delete)}]
                                  action: [
                                    (AndOr
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name cmd>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [1917 1922]
                                            )
                                          }
                                        )
                                        (AndOr
                                          children: [
                                            (C {(cache_delete)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [1928 1933]
                                                )
                                              }
                                            )
                                            (AndOr
                                              children: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(DELETED)}
                                                      spids: [1938]
                                                    )
                                                  ]
                                                  spids: [1938]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_FOUND)}
                                                      spids: [1943]
                                                    )
                                                  ]
                                                  spids: [1943]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 2)})
                                                      )
                                                    spids: [1949 1954]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [1972]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1912 1913 1976 -1]
                                )
                                (case_arm
                                  pat_list: [{(incr)}]
                                  action: [
                                    (AndOr
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name cmd>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [1984 1989]
                                            )
                                          }
                                        )
                                        (AndOr
                                          children: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:result)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (ArithSubPart
                                                        anode: 
                                                          (ArithBinary
                                                            op_id: Arith_Plus
                                                            left: 
                                                              (ArithWord
                                                                w: 
                                                                  {
                                                                    (CommandSubPart
                                                                      command_list: 
                                                                        (CommandList
                                                                          children: [
                                                                            (Pipeline
                                                                              children: [
                                                                                (C {(echo)} {(-n)} 
                                                                                  {
                                                                                    (DQ 
                                                                                      (BracedVarSub
                                                                                        token: 
                                                                                          <
VSub_Name data
                                                                                          >
                                                                                        bracket_op: 
                                                                                          (ArrayIndex
                                                                                            expr: 
                                                                                              (ArithWord
                                                                                                w: 
                                                                                                  {
                                                                                                    (BracedVarSub
                                                                                                      token: 
                                                                                                        <
VSub_Name cmd
                                                                                                        >
                                                                                                      bracket_op: 
                                                                                                        (ArrayIndex
                                                                                                          expr: 
                                                                                                            (ArithWord
                                                                                                              w: 
                                                                                                                {
                                                                                                                  (
Lit_Digits 1
                                                                                                                  )
                                                                                                                }
                                                                                                            )
                                                                                                        )
                                                                                                      spids: [
2004
2009
                                                                                                      ]
                                                                                                    )
                                                                                                  }
                                                                                              )
                                                                                          )
                                                                                        spids: [
2001
2011
                                                                                        ]
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                )
                                                                                (C {(base64)} {(-d)})
                                                                              ]
                                                                              negated: False
                                                                            )
                                                                          ]
                                                                        )
                                                                      left_token: 
                                                                        <Left_CommandSub "$(">
                                                                      spids: [1995 2019]
                                                                    )
                                                                  }
                                                              )
                                                            right: 
                                                              (ArithWord
                                                                w: 
                                                                  {
                                                                    (BracedVarSub
                                                                      token: <VSub_Name cmd>
                                                                      bracket_op: 
                                                                        (ArrayIndex
                                                                          expr: 
                                                                            (ArithWord
                                                                              w: {(Lit_Digits 2)}
                                                                            )
                                                                        )
                                                                      suffix_op: 
                                                                        (StringUnary
                                                                          op_id: VTest_Hyphen
                                                                          arg_word: {(0)}
                                                                        )
                                                                      spids: [2023 2030]
                                                                    )
                                                                  }
                                                              )
                                                          )
                                                        spids: [1994 2032]
                                                      )
                                                    }
                                                  spids: [1993]
                                                )
                                              ]
                                              spids: [1993]
                                            )
                                            (AndOr
                                              children: [
                                                (C {(cache_update)} 
                                                  {
                                                    (BracedVarSub
                                                      token: <VSub_Name cmd>
                                                      bracket_op: 
                                                        (ArrayIndex
                                                          expr: (ArithWord w:{(Lit_Digits 1)})
                                                        )
                                                      spids: [2039 2044]
                                                    )
                                                  } 
                                                  {
                                                    (DQ 
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (Pipeline
                                                                children: [
                                                                  (C {(echo)} {(-n)} 
                                                                    {($ VSub_Name "$result")}
                                                                  )
                                                                  (C {(base64)})
                                                                ]
                                                                negated: False
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub "$(">
                                                        spids: [2047 2057]
                                                      )
                                                    )
                                                  }
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_FOUND)}
                                                      spids: [2062]
                                                    )
                                                  ]
                                                  spids: [2062]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 3)})
                                                      )
                                                    spids: [2068 2073]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [2091]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [1979 1980 2095 -1]
                                )
                                (case_arm
                                  pat_list: [{(decr)}]
                                  action: [
                                    (AndOr
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name cmd>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [2103 2108]
                                            )
                                          }
                                        )
                                        (AndOr
                                          children: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:result)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (ArithSubPart
                                                        anode: 
                                                          (ArithBinary
                                                            op_id: Arith_Minus
                                                            left: 
                                                              (ArithWord
                                                                w: 
                                                                  {
                                                                    (CommandSubPart
                                                                      command_list: 
                                                                        (CommandList
                                                                          children: [
                                                                            (Pipeline
                                                                              children: [
                                                                                (C {(echo)} {(-n)} 
                                                                                  {
                                                                                    (DQ 
                                                                                      (BracedVarSub
                                                                                        token: 
                                                                                          <
VSub_Name data
                                                                                          >
                                                                                        bracket_op: 
                                                                                          (ArrayIndex
                                                                                            expr: 
                                                                                              (ArithWord
                                                                                                w: 
                                                                                                  {
                                                                                                    (BracedVarSub
                                                                                                      token: 
                                                                                                        <
VSub_Name cmd
                                                                                                        >
                                                                                                      bracket_op: 
                                                                                                        (ArrayIndex
                                                                                                          expr: 
                                                                                                            (ArithWord
                                                                                                              w: 
                                                                                                                {
                                                                                                                  (
Lit_Digits 1
                                                                                                                  )
                                                                                                                }
                                                                                                            )
                                                                                                        )
                                                                                                      spids: [
2123
2128
                                                                                                      ]
                                                                                                    )
                                                                                                  }
                                                                                              )
                                                                                          )
                                                                                        spids: [
2120
2130
                                                                                        ]
                                                                                      )
                                                                                    )
                                                                                  }
                                                                                )
                                                                                (C {(base64)} {(-d)})
                                                                              ]
                                                                              negated: False
                                                                            )
                                                                          ]
                                                                        )
                                                                      left_token: 
                                                                        <Left_CommandSub "$(">
                                                                      spids: [2114 2138]
                                                                    )
                                                                  }
                                                              )
                                                            right: 
                                                              (ArithWord
                                                                w: 
                                                                  {
                                                                    (BracedVarSub
                                                                      token: <VSub_Name cmd>
                                                                      bracket_op: 
                                                                        (ArrayIndex
                                                                          expr: 
                                                                            (ArithWord
                                                                              w: {(Lit_Digits 2)}
                                                                            )
                                                                        )
                                                                      suffix_op: 
                                                                        (StringUnary
                                                                          op_id: VTest_Hyphen
                                                                          arg_word: {(0)}
                                                                        )
                                                                      spids: [2142 2149]
                                                                    )
                                                                  }
                                                              )
                                                          )
                                                        spids: [2113 2151]
                                                      )
                                                    }
                                                  spids: [2112]
                                                )
                                              ]
                                              spids: [2112]
                                            )
                                            (AndOr
                                              children: [
                                                (C {(cache_update)} 
                                                  {
                                                    (BracedVarSub
                                                      token: <VSub_Name cmd>
                                                      bracket_op: 
                                                        (ArrayIndex
                                                          expr: (ArithWord w:{(Lit_Digits 1)})
                                                        )
                                                      spids: [2158 2163]
                                                    )
                                                  } 
                                                  {
                                                    (DQ 
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (Pipeline
                                                                children: [
                                                                  (C {(echo)} {(-n)} 
                                                                    {($ VSub_Name "$result")}
                                                                  )
                                                                  (C {(base64)})
                                                                ]
                                                                negated: False
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub "$(">
                                                        spids: [2166 2176]
                                                      )
                                                    )
                                                  }
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_FOUND)}
                                                      spids: [2181]
                                                    )
                                                  ]
                                                  spids: [2181]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 3)})
                                                      )
                                                    spids: [2187 2192]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [2210]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [2098 2099 2214 -1]
                                )
                                (case_arm
                                  pat_list: [{(touch)}]
                                  action: [
                                    (AndOr
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name cmd>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [2222 2227]
                                            )
                                          }
                                        )
                                        (AndOr
                                          children: [
                                            (C {(cache_set)} 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [2234 2239]
                                                )
                                              } 
                                              {
                                                (DQ 
                                                  (BracedVarSub
                                                    token: <VSub_Name flags>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: 
                                                          (ArithWord
                                                            w: 
                                                              {
                                                                (BracedVarSub
                                                                  token: <VSub_Name cmd>
                                                                  bracket_op: 
                                                                    (ArrayIndex
                                                                      expr: 
                                                                        (ArithWord
                                                                          w: {(Lit_Digits 1)}
                                                                        )
                                                                    )
                                                                  spids: [2245 2250]
                                                                )
                                                              }
                                                          )
                                                      )
                                                    spids: [2242 2252]
                                                  )
                                                )
                                              } 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name cmd>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{(Lit_Digits 2)})
                                                    )
                                                  spids: [2255 2260]
                                                )
                                              } 
                                              {
                                                (DQ 
                                                  (BracedVarSub
                                                    token: <VSub_Name data>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: 
                                                          (ArithWord
                                                            w: 
                                                              {
                                                                (BracedVarSub
                                                                  token: <VSub_Name cmd>
                                                                  bracket_op: 
                                                                    (ArrayIndex
                                                                      expr: 
                                                                        (ArithWord
                                                                          w: {(Lit_Digits 1)}
                                                                        )
                                                                    )
                                                                  spids: [2266 2271]
                                                                )
                                                              }
                                                          )
                                                      )
                                                    spids: [2263 2273]
                                                  )
                                                )
                                              } 
                                              {
                                                (BracedVarSub
                                                  token: <VSub_Name casUnique>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: 
                                                        (ArithWord
                                                          w: 
                                                            {
                                                              (BracedVarSub
                                                                token: <VSub_Name cmd>
                                                                bracket_op: 
                                                                  (ArrayIndex
                                                                    expr: 
                                                                      (ArithWord
                                                                        w: {(Lit_Digits 1)}
                                                                      )
                                                                  )
                                                                spids: [2279 2284]
                                                              )
                                                            }
                                                        )
                                                    )
                                                  spids: [2276 2286]
                                                )
                                              }
                                            )
                                            (AndOr
                                              children: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(TOUCHED)}
                                                      spids: [2291]
                                                    )
                                                  ]
                                                  spids: [2291]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:result)
                                                      op: Equal
                                                      rhs: {(NOT_FOUND)}
                                                      spids: [2296]
                                                    )
                                                  ]
                                                  spids: [2296]
                                                )
                                              ]
                                              op_id: Op_DPipe
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{(Lit_Digits 3)})
                                                      )
                                                    spids: [2302 2307]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ VSub_Name "$result") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [2325]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [2217 2218 2329 -1]
                                )
                                (case_arm
                                  pat_list: [{(flush_all)}]
                                  action: [
                                    (ForEach
                                      iter_name: k
                                      iter_words: [
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name exptime>
                                              prefix_op: VSub_Bang
                                              bracket_op: (WholeArray op_id:Lit_At)
                                              spids: [2342 2348]
                                            )
                                          )
                                        }
                                      ]
                                      do_arg_iter: False
                                      body: 
                                        (DoGroup
                                          children: [
                                            (Sentence
                                              child: 
                                                (C 
                                                  {(exptime) (Lit_Other "[") ($ VSub_Name "$k") 
                                                    (Lit_Other "]") (Lit_Other "=") 
                                                    (ArithSubPart
                                                      anode: 
                                                        (ArithBinary
                                                          op_id: Arith_Plus
                                                          left: (ArithVarRef name:time)
                                                          right: 
                                                            (ArithWord
                                                              w: 
                                                                {
                                                                  (BracedVarSub
                                                                    token: <VSub_Name cmd>
                                                                    bracket_op: 
                                                                      (ArrayIndex
                                                                        expr: 
                                                                          (ArithWord
                                                                            w: {(Lit_Digits 1)}
                                                                          )
                                                                      )
                                                                    suffix_op: 
                                                                      (StringUnary
                                                                        op_id: VTest_Hyphen
                                                                        arg_word: {(0)}
                                                                      )
                                                                    spids: [2364 2371]
                                                                  )
                                                                }
                                                            )
                                                        )
                                                      spids: [2359 2373]
                                                    )
                                                  }
                                                )
                                              terminator: <Op_Semi ";">
                                            )
                                          ]
                                          spids: [2352 2376]
                                        )
                                      spids: [2340 2350]
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name cmd>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: 
                                                          (ArithUnary
                                                            op_id: Node_UnaryMinus
                                                            child: (ArithWord w:{(Lit_Digits 1)})
                                                          )
                                                      )
                                                    spids: [2381 2387]
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ (OK) 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [2405]
                                            )
                                          ]
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  spids: [2332 2333 2409 -1]
                                )
                                (case_arm
                                  pat_list: [{(version)}]
                                  action: [
                                    (Sentence
                                      child: 
                                        (SimpleCommand
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ("VERSION ") ($ VSub_Name "$VERSION") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\r">
                                                )
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: -1
                                              arg_word: {(DQ ($ VSub_Name "$recv"))}
                                              spids: [2424]
                                            )
                                          ]
                                        )
                                      terminator: <Op_Amp "&">
                                    )
                                  ]
                                  spids: [2412 2413 2430 -1]
                                )
                              ]
                              spids: [1135 1144 2433]
                            )
                          terminator: <Op_Semi ";">
                        )
                      ]
                      spids: [1020 2436]
                    )
                )
              ]
              negated: False
            )
          terminator: <Op_Amp "&">
        )
        (C {(socat)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name protocol>
                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(tcp)})
                spids: [2444 2448]
              ) ("-listen:") 
              (BracedVarSub
                token: <VSub_Name port>
                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(25252)})
                spids: [2450 2454]
              ) (",reuseaddr,fork")
            )
          } {(system) (Lit_Other ":") (DQ ($ VSub_Number "$0"))}
        )
      ]
      spids: [331 2464]
    )
  ]
)