code: def dinf_downslope_direction(a):
          
          taud, d = DinfUtil.check_orthogonal(a)
          if d != -1:
              down = [d]
              return down
          else:
              if a < FlowModelConst.ne:  # 129 = 1+128
                  down = [1, 2]
              elif a < FlowModelConst.n:  # 192 = 128+64
                  down = [2, 3]
              elif a < FlowModelConst.nw:  # 96 = 64+32
                  down = [3, 4]
              elif a < FlowModelConst.w:  # 48 = 32+16
                  down = [4, 5]
              elif a < FlowModelConst.sw:  # 24 = 16+8
                  down = [5, 6]
              elif a < FlowModelConst.s:  # 12 = 8+4
                  down = [6, 7]
              elif a < FlowModelConst.se:  # 6 = 4+2
                  down = [7, 8]
              else:  # 3 = 2+1
                  down = [8, 1]
              return down
docs: Get the downslope directions of an dinf direction value
          Args:
              a: Dinf value
  
          Returns:
              downslope directions