(CommandList
  children: [
    (C {(set)} {(-eu)})
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:CHROME_SNAPSHOTS)
          op: Equal
          rhs: {(https) (Lit_Other ":") (//storage.googleapis.com/chromium-browser-snapshots)}
          spids: [35]
        )
      ]
      spids: [33]
    )
    (Assignment
      keyword: Assign_Declare
      pairs: [(assign_pair lhs:(LhsName name:CHROME_URL) op:Equal spids:[42])]
      spids: [40]
    )
    (Assignment
      keyword: Assign_Declare
      pairs: [(assign_pair lhs:(LhsName name:CHROME_NAME) op:Equal spids:[46])]
      spids: [44]
    )
    (Assignment
      keyword: Assign_Declare
      pairs: [(assign_pair lhs:(LhsName name:CHROME_RELATIVE_BIN) op:Equal spids:[50])]
      spids: [48]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(DQ ($ VSub_Name "$OSTYPE"))}
                      right: {(DQ (linux)) (Lit_Other "*")}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_URL)
                  op: Equal
                  rhs: {($ VSub_Name "$CHROME_SNAPSHOTS") (/Linux_x64)}
                  spids: [74]
                )
              ]
              spids: [74]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_NAME)
                  op: Equal
                  rhs: {(chrome-linux)}
                  spids: [79]
                )
              ]
              spids: [79]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_RELATIVE_BIN)
                  op: Equal
                  rhs: {(chrome)}
                  spids: [83]
                )
              ]
              spids: [83]
            )
          ]
          spids: [-1 71]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(DQ ($ VSub_Name "$OSTYPE"))}
                      right: {(DQ (darwin)) (Lit_Other "*")}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_URL)
                  op: Equal
                  rhs: {($ VSub_Name "$CHROME_SNAPSHOTS") (/Mac)}
                  spids: [107]
                )
              ]
              spids: [107]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_NAME)
                  op: Equal
                  rhs: {(chrome-mac)}
                  spids: [112]
                )
              ]
              spids: [112]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_RELATIVE_BIN)
                  op: Equal
                  rhs: {(Chromium.app/Contents/MacOS/Chromium)}
                  spids: [116]
                )
              ]
              spids: [116]
            )
          ]
          spids: [86 104]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(DQ ($ VSub_Name "$OSTYPE"))}
                      right: {(DQ (cygwin))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_URL)
                  op: Equal
                  rhs: {($ VSub_Name "$CHROME_SNAPSHOTS") (/Win)}
                  spids: [139]
                )
              ]
              spids: [139]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_NAME)
                  op: Equal
                  rhs: {(chrome-win32)}
                  spids: [144]
                )
              ]
              spids: [144]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHROME_RELATIVE_BIN)
                  op: Equal
                  rhs: {(chrome.exe)}
                  spids: [148]
                )
              ]
              spids: [148]
            )
          ]
          spids: [119 136]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(echo)} {(DQ ("Unknown platform: ") ($ VSub_Name "$OSTYPE"))}]
          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[161])]
        )
        (C {(exit)} {(1)})
      ]
      spids: [151 169]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:CHROME_CANARY_DIR)
          op: Equal
          rhs: {($ VSub_Name "$HOME") (/.chrome/canary)}
          spids: [174]
        )
      ]
      spids: [172]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:CHROME_CANARY_BIN)
          op: Equal
          rhs: 
            {($ VSub_Name "$CHROME_CANARY_DIR") (/) ($ VSub_Name "$CHROME_NAME") (/) 
              ($ VSub_Name "$CHROME_RELATIVE_BIN")
            }
          spids: [180]
        )
      ]
      spids: [178]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:CHROME_CANARY_REV_FILE)
          op: Equal
          rhs: {($ VSub_Name "$CHROME_CANARY_DIR") (/VERSION)}
          spids: [189]
        )
      ]
      spids: [187]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:CHROME_REV)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(curl)} {(-s)} {(${ VSub_Name CHROME_URL) (/LAST_CHANGE)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [196 205]
              )
            }
          spids: [195]
        )
      ]
      spids: [193]
    )
    (FuncDef
      name: getCanary
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:existing_version)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [219]
                )
              ]
              spids: [217]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_f
                                  child: {($ VSub_Name "$CHROME_CANARY_REV_FILE")}
                                )
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_x
                                  child: {($ VSub_Name "$CHROME_CANARY_BIN")}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:existing_version)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(cat)} {($ VSub_Name "$CHROME_CANARY_REV_FILE")})]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [245 249]
                              )
                            }
                          spids: [244]
                        )
                      ]
                      spids: [244]
                    )
                    (C {(echo)} 
                      {
                        (DQ ("Found cached Chrome Canary version: ") ($ VSub_Name "$existing_version"))
                      }
                    )
                  ]
                  spids: [-1 241]
                )
              ]
              spids: [-1 260]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {(DQ ($ VSub_Name "$existing_version"))}
                              right: {(DQ ($ VSub_Name "$CHROME_REV"))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {(DQ ("Downloading Chrome Canary version: ") ($ VSub_Name "$CHROME_REV"))}
                    )
                    (C {(rm)} {(-fR)} {($ VSub_Name "$CHROME_CANARY_DIR")})
                    (C {(mkdir)} {(-p)} {($ VSub_Name "$CHROME_CANARY_DIR")})
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:file)
                          op: Equal
                          rhs: {($ VSub_Name "$CHROME_NAME") (.zip)}
                          spids: [309]
                        )
                      ]
                      spids: [307]
                    )
                    (C {(curl)} 
                      {(${ VSub_Name CHROME_URL) (/) (${ VSub_Name CHROME_REV) (/) 
                        ($ VSub_Name "$file")
                      } {(-o)} {($ VSub_Name "$file")}
                    )
                    (C {(unzip)} {($ VSub_Name "$file")} {(-d)} {($ VSub_Name "$CHROME_CANARY_DIR")})
                    (C {(rm)} {($ VSub_Name "$file")})
                    (SimpleCommand
                      words: [{(echo)} {($ VSub_Name "$CHROME_REV")}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {($ VSub_Name "$CHROME_CANARY_REV_FILE")}
                          spids: [349]
                        )
                      ]
                    )
                  ]
                  spids: [-1 281]
                )
              ]
              spids: [-1 354]
            )
          ]
          spids: [214]
        )
      spids: [208 213]
    )
    (SimpleCommand
      words: [{(getCanary)}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[361])]
    )
    (C {(echo)} {($ VSub_Name "$CHROME_CANARY_BIN")})
  ]
)