(List
  (FunctionDef _hash []
    (Com {[LIT_CHARS echo]} {[VarSub $] [LIT_CHARS .] [ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [SQ <LIT_CHARS "%s.%N">]})] [LIT_CHARS .] [VarSub RANDOM]})
  )
  (FunctionDef balls::server []
    (List
      (Com {[LIT_CHARS balls] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS load_app]})
      (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('http_sock', {[VarSub BALLS_TMP] [LIT_CHARS /balls.http.] [VarSub $] [LIT_CHARS .sock]})])
      (AndOr OP_OR_IF
        (Com {[LIT_OTHER "["]} {[LIT_CHARS -p]} {[VarSub http_sock]} {[LIT_OTHER "]"]})
        (Com {[LIT_CHARS mkfifo]} {[VarSub http_sock]})
      )
      (While
        (Com {[LIT_CHARS true]})
        (Pipeline
          (Com {[LIT_CHARS cat]} {[VarSub http_sock]})
          (Com {[LIT_CHARS nc]} {[LIT_CHARS -l]} {[LIT_CHARS -p]} {[VarSub BALLS_PORT]})
          (Subshell
            (List
              (Com {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS parse_request]})
              (Com {[LIT_CHARS balls] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS route]}
                <
                (FilenameRedirectNode filename={[VarSub http_sock]} <REDIR_GREAT ">"> 1),
                >
              )
            )
          )
        )
      )
    )
  )
  (FunctionDef cleanup []
    (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub headers_sock]]} {[DQ [VarSub http_sock]]})
  )
  (Com {[LIT_CHARS trap]} {[SQ <LIT_CHARS "cleanup; exit">]} {[LIT_CHARS INT]})
  (FunctionDef balls::load_app []
    (Com {[LIT_CHARS .]} {[VarSub BALLS_ACTIONS] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .sh]})
  )
)