(command.CommandList
  children: [
    (command.ShFunction
      name: get-master-size
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'suggested_master_size=') (1)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (5))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:80)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_size)
                          op: assign_op.Equal
                          rhs: {(2)}
                          spids: [85]
                        )
                      ]
                    )
                  ]
                  spids: [63 82]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (10))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:109)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_size)
                          op: assign_op.Equal
                          rhs: {(4)}
                          spids: [114]
                        )
                      ]
                    )
                  ]
                  spids: [92 111]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (100))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:138)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_size)
                          op: assign_op.Equal
                          rhs: {(8)}
                          spids: [143]
                        )
                      ]
                    )
                  ]
                  spids: [121 140]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (250))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:167)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_size)
                          op: assign_op.Equal
                          rhs: {(16)}
                          spids: [172]
                        )
                      ]
                    )
                  ]
                  spids: [150 169]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (500))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:196)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_size)
                          op: assign_op.Equal
                          rhs: {(32)}
                          spids: [201]
                        )
                      ]
                    )
                  ]
                  spids: [179 198]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (3000))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:225)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_size)
                          op: assign_op.Equal
                          rhs: {(64)}
                          spids: [230]
                        )
                      ]
                    )
                  ]
                  spids: [208 227]
                )
              ]
            )
            (C {(echo)} {(DQ (${ Id.VSub_Name suggested_master_size))})
          ]
        )
    )
    (command.ShFunction
      name: get-master-root-disk-size
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'suggested_master_root_disk_size=') (DQ (20GB))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (1000))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:288)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_root_disk_size)
                          op: assign_op.Equal
                          rhs: {(DQ (50GB))}
                          spids: [293]
                        )
                      ]
                    )
                  ]
                  spids: [271 290]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (2000))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:319)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_root_disk_size)
                          op: assign_op.Equal
                          rhs: {(DQ (100GB))}
                          spids: [324]
                        )
                      ]
                    )
                  ]
                  spids: [302 321]
                )
              ]
            )
            (C {(echo)} {(DQ (${ Id.VSub_Name suggested_master_root_disk_size))})
          ]
        )
    )
    (command.ShFunction
      name: get-master-disk-size
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'suggested_master_disk_size=') (DQ (20GB))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (1000))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:384)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_disk_size)
                          op: assign_op.Equal
                          rhs: {(DQ (100GB))}
                          spids: [389]
                        )
                      ]
                    )
                  ]
                  spids: [367 386]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(DQ (2000))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:415)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_master_disk_size)
                          op: assign_op.Equal
                          rhs: {(DQ (200GB))}
                          spids: [420]
                        )
                      ]
                    )
                  ]
                  spids: [398 417]
                )
              ]
            )
            (C {(echo)} {(DQ (${ Id.VSub_Name suggested_master_disk_size))})
          ]
        )
    )
    (command.ShFunction
      name: get-node-ip-range
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:NODE_IP_RANGE span_id:455)
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:461)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {(DQ ('Using user provided NODE_IP_RANGE: ') (${ Id.VSub_Name NODE_IP_RANGE))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:466)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (C {(echo)} {(DQ (${ Id.VSub_Name NODE_IP_RANGE))})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:488)
                    )
                  ]
                  spids: [447 463]
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'suggested_range=') (DQ (10.40.0.0/22))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(1000)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:517)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_range)
                          op: assign_op.Equal
                          rhs: {(DQ (10.40.0.0/21))}
                          spids: [522]
                        )
                      ]
                    )
                  ]
                  spids: [502 519]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(2000)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:546)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_range)
                          op: assign_op.Equal
                          rhs: {(DQ (10.40.0.0/20))}
                          spids: [551]
                        )
                      ]
                    )
                  ]
                  spids: [531 548]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(4000)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:575)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_range)
                          op: assign_op.Equal
                          rhs: {(DQ (10.40.0.0/19))}
                          spids: [580]
                        )
                      ]
                    )
                  ]
                  spids: [560 577]
                )
              ]
            )
            (C {(echo)} {(DQ (${ Id.VSub_Name suggested_range))})
          ]
        )
    )
    (command.ShFunction
      name: get-cluster-ip-range
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'suggested_range=') (DQ (10.64.0.0/14))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(1000)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:630)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_range)
                          op: assign_op.Equal
                          rhs: {(DQ (10.64.0.0/13))}
                          spids: [635]
                        )
                      ]
                    )
                  ]
                  spids: [615 632]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(2000)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:659)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_range)
                          op: assign_op.Equal
                          rhs: {(DQ (10.64.0.0/12))}
                          spids: [664]
                        )
                      ]
                    )
                  ]
                  spids: [644 661]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {(DQ (${ Id.VSub_Name NUM_NODES))}
                              right: {(4000)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:688)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suggested_range)
                          op: assign_op.Equal
                          rhs: {(DQ (10.64.0.0/11))}
                          spids: [693]
                        )
                      ]
                    )
                  ]
                  spids: [673 690]
                )
              ]
            )
            (C {(echo)} {(DQ (${ Id.VSub_Name suggested_range))})
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (braced_var_sub
                              token: (Token id:Id.VSub_Name val:FEDERATION span_id:720)
                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                            )
                          )
                        }
                      right: {(true)}
                    )
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:730)
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NODE_SCOPES)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:NODE_SCOPES span_id:738)
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_ColonHyphen
                              arg_word: 
                                {('monitoring,logging-write,storage-ro,https:') (Id.Lit_Slash /) 
                                  (Id.Lit_Slash /) (www.googleapis.com) (Id.Lit_Slash /) (auth) (Id.Lit_Slash /) (ndev.clouddns.readwrite)
                                }
                            )
                        )
                      )
                    }
                  spids: [735]
                )
              ]
            )
          ]
          spids: [714 732]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:NODE_SCOPES)
              op: assign_op.Equal
              rhs: 
                {
                  (DQ 
                    (braced_var_sub
                      token: (Token id:Id.VSub_Name val:NODE_SCOPES span_id:757)
                      suffix_op: 
                        (suffix_op.Unary
                          op_id: Id.VTest_ColonHyphen
                          arg_word: {('monitoring,logging-write,storage-ro')}
                        )
                    )
                  )
                }
              spids: [754]
            )
          ]
        )
      ]
    )
  ]
)