code: def parse_vlq(self, segment):
          
  
          values = []
  
          cur, shift = 0, 0
          for c in segment:
              val = B64[ord(c)]
              # Each character is 6 bits:
              # 5 of value and the high bit is the continuation.
              val, cont = val & 0b11111, val >> 5
              cur += val << shift
              shift += 5
  
              if not cont:
                  # The low bit of the unpacked value is the sign.
                  cur, sign = cur >> 1, cur & 1
                  if sign:
                      cur = -cur
                  values.append(cur)
                  cur, shift = 0, 0
  
          if cur or shift:
              raise SourceMapDecodeError('leftover cur/shift in vlq decode')
  
          return values
docs: Parse a string of VLQ-encoded data.
  
          Returns:
            a list of integers.