print(1 << 0, 1 << 8, -3 << 4, 1023 >> 3, -1023 >> 3)
print(True << True, False << 9, -3 >> True, isinstance(True << True, bool))
value = 1606938044258990275541962092341162602522202993782792835301393
print(value >> 196, value << 5, -value >> 196)
huge = 10 ** 100
print(0 << huge, 0 >> huge, 7 >> huge, -7 >> huge)
print(1 >> 32768, -1 >> 65536)
try:
    1 << huge
except OverflowError as error:
    print(repr(error))
try:
    0 << -1
except ValueError as error:
    print(repr(error))
try:
    3 >> -2
except ValueError as error:
    print(repr(error))
value = 7
try:
    value <<= -1
except ValueError:
    print(value)
value <<= 10
value >>= 5
values = [1024]
values[0] >>= 3
print(value, values)

def mark(label, value):
    print(label)
    return value
print(mark('left', 3) << mark('count', 4))
