n bits

        for odd, even in zip(byte(i), byte(i + 1)): bits.extend([odd, even])

        return encode(bits, i + 2)

    def svg(bits, i=0, x=4):

        '''Converts the list of ints returned by `encode` to a list of SVG
        elements that can be joined to form an SVG string.'''

        if i == len(bits): return barcode + ["</svg>"]

        odd, even = bits[i:i + 2]
        barcode.append(bar.format(x, odd))

        return svg(bits, i + 2, x + odd + even)

    # The call to `encode` passes in th