(FuncDef
  name: unique_port
  body: 
    (BraceGroup
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LeftVar name:START) rhs:{(8192)} spids:[12])]
          spids: [12]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LeftVar name:RANGE)
              rhs: 
                {
                  (ArithSubPart
                    anode: 
                      (ArithBinary
                        op_id: Arith_Minus
                        left: 
                          (ArithWord
                            w: 
                              {
                                (CommandSubPart
                                  command_list: 
                                    (C {(awk)} {(SQ <"{print $1}">)} 
                                      {(/proc/sys/net/ipv4/ip_local_port_range)}
                                    )
                                  spids: [18 26]
                                )
                              }
                          )
                        right: (ArithWord w:{($ VSub_Name "$START")})
                      )
                    spids: [17 29]
                  )
                }
              spids: [16]
            )
          ]
          spids: [16]
        )
        (If
          arms: [
            (if_arm
              cond: (C {(Lit_Other "[")} {($ VSub_Name "$RANGE")} {(-lt)} {(8)} {(Lit_Other "]")})
              action: 
                (CommandList
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LeftVar name:START)
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithWord
                                    w: 
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (C {(awk)} {(SQ <"{print $2}">)} 
                                              {(/proc/sys/net/ipv4/ip_local_port_range)}
                                            )
                                          spids: [50 58]
                                        )
                                      }
                                  )
                                spids: [49 59]
                              )
                            }
                          spids: [48]
                        )
                      ]
                      spids: [48]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LeftVar name:RANGE)
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Minus
                                    left: (ArithWord w:{(Lit_Digits 65535)})
                                    right: (ArithWord w:{($ VSub_Name "$START")})
                                  )
                                spids: [63 67]
                              )
                            }
                          spids: [62]
                        )
                      ]
                      spids: [62]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: 
                            (C {(Lit_Other "[")} {($ VSub_Name "$RANGE")} {(-lt)} {(8)} {(Lit_Other "]")})
                          action: 
                            (CommandList
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LeftVar name:START)
                                      rhs: {(16384)}
                                      spids: [86]
                                    )
                                  ]
                                  spids: [86]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LeftVar name:RANGE)
                                      rhs: {(32768)}
                                      spids: [90]
                                    )
                                  ]
                                  spids: [90]
                                )
                              ]
                            )
                          spids: [-1 83]
                        )
                      ]
                      spids: [-1 94]
                    )
                  ]
                )
              spids: [-1 45]
            )
          ]
          spids: [-1 97]
        )
        (C {(echo)} 
          {
            (ArithSubPart
              anode: 
                (ArithBinary
                  op_id: Arith_Plus
                  left: 
                    (ArithBinary
                      op_id: Arith_Percent
                      left: (ArithWord w:{($ VSub_Dollar "$$")})
                      right: (ArithWord w:{($ VSub_Name "$RANGE")})
                    )
                  right: (ArithWord w:{($ VSub_Name "$START")})
                )
              spids: [102 110]
            )
          }
        )
      ]
      spids: [4]
    )
  spids: [0 3]
)