code: def _rec_fill_masks(
      cluster_matrix, indices_row_pos, indptr, indices, M, ind
  ):
      pos = indices_row_pos[ind]
  
      if ind < M:
          indices[pos] = ind
          return
  
      lind = int(cluster_matrix[ind - M, 0])
      rind = int(cluster_matrix[ind - M, 1])
      lind_size = int(cluster_matrix[lind - M, 3]) if lind >= M else 1
      rind_size = int(cluster_matrix[rind - M, 3]) if rind >= M else 1
  
      lpos = indices_row_pos[lind]
      rpos = indices_row_pos[rind]
  
      _rec_fill_masks(
          cluster_matrix, indices_row_pos, indptr, indices, M, lind
      )
      indices[pos : pos + lind_size] = indices[lpos : lpos + lind_size]
  
      _rec_fill_masks(
          cluster_matrix, indices_row_pos, indptr, indices, M, rind
      )
      indices[pos + lind_size : pos + lind_size + rind_size] = indices[
          rpos : rpos + rind_size
      ]
  
imports: import copy
  import numpy
  import scipy.sparse
  from numba import njit
  from ..None import links
label_desc: Use image node_id 9 for calling a global function with example usage: _rec_fill_masks(cluster_matrix, indices_row_pos, indptr, indices, M, ind) without return types