temporary directory removed

pull/7/head
Peter Hinch 2017-02-03 07:11:24 +00:00
rodzic dcbb20d65b
commit 8780201bd9
2 zmienionych plików z 0 dodań i 558 usunięć

Wyświetl plik

@ -1,93 +0,0 @@
import framebuf
from writer import Writer
import utime
import courier_virt_25 as font
def timed_function(f, *args, **kwargs):
myname = str(f).split(' ')[1]
def new_func(*args, **kwargs):
t = utime.ticks_us()
result = f(*args, **kwargs)
delta = utime.ticks_diff(utime.ticks_us(), t) # Argument order new, old
print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000))
return result
return new_func
class VirtualDisplay(object):
def __init__(self):
self.width = 256 # 16K framebuf
self.height = 512
self.pages = self.height // 8
self.size = self.pages * self.width
self.buffer = bytearray(self.size)
self.framebuf = framebuf.FrameBuffer1(self.buffer, self.width, self.height)
def show(self):
pass
def fill(self, col):
val = 0xff if col else 0
for x in range(self.size):
self.buffer[x] = val
class SlowWriter(Writer):
def __init__(self, device, font):
super().__init__(device, font)
def _printchar(self, char):
bmap = Writer.bmap # Buffer mapping
if char == '\n':
self._newline()
return
device = self.device
fbuff = device.framebuf
glyph, char_height, char_width = self.font.get_ch(char)
if Writer.text_row+char_height > self.screenheight and Writer.row_clip:
return
if Writer.text_col + char_width > self.screenwidth:
if Writer.col_clip:
return
else:
self._newline()
div, mod = divmod(char_height, 8)
gbytes = div + 1 if mod else div # No. of bytes per column of glyph
for scol in range(0, char_width): # Source column
dcol = scol + Writer.text_col # Destination column
drow = Writer.text_row
for row_offset in range(char_height):
gbyte = row_offset >> 3 # Glyph byte in column
gbit = row_offset & 7
data_byte = glyph[scol * gbytes + gbyte]
fbuff.pixel(dcol, drow + row_offset, data_byte & (1 << gbit))
Writer.text_col += char_width
def check():
x = len(device.buffer) -1
while device.buffer[x] == 0:
x -= 1
print('x = ', x)
print(device.buffer[x -16:x])
def setup():
device.fill(0)
Writer.set_textpos(0,0)
device = VirtualDisplay()
mystr = 'The quick brown fox\n'
wri = Writer(device, font)
wrislow = SlowWriter(device, font)
@timed_function
def test(writer):
for _ in range(5):
writer.printstring(mystr)
setup()
test(wri) # Bytewise output
check()
setup()
test(wrislow) # Bitwise output
check()

Wyświetl plik

@ -1,465 +0,0 @@
# Code generated by font-to-py.py.
# Font: Courier Prime.ttf
version = '0.1'
def height():
return 25
def max_width():
return 17
def hmap():
return False
def reverse():
return False
def monospaced():
return False
_font =\
b'\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x03\x00\xf8\x87\x07\x00'\
b'\xf8\x9f\x07\x00\xf8\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x78\x00'\
b'\x00\x00\xf8\x03\x00\x00\xf8\x03\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x18\x00\x00\x00\xf8\x03\x00\x00\xf8\x03\x00\x00\x18\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x00\x30\x00\x00\x80\x31\x00\x00\x80\xb1\x07\x00'\
b'\x80\xf1\x03\x00\x80\x7f\x00\x00\xc0\x3f\x00\x00\xf8\x31\x00\x00'\
b'\xbc\xb1\x07\x00\x80\xf1\x03\x00\x80\x3f\x00\x00\xc0\x37\x00\x00'\
b'\xf8\x31\x00\x00\x9c\x31\x00\x00\x80\x31\x00\x00\x80\x01\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\xc3\x03\x00\xe0\xc7'\
b'\x03\x00\x30\x0e\x01\x00\x30\x0e\x03\x00\xfe\xff\x1f\x00\xfe\xff'\
b'\x1f\x00\x30\x0c\x03\x00\x20\x1c\x03\x00\x60\x9c\x01\x00\xf0\xf8'\
b'\x01\x00\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\xe0\x00\x01\x00\xf0\x81\x03\x00\x18\xc3\x01\x00\x18\xe3\x00\x00'\
b'\x18\x73\x00\x00\xf0\x39\x00\x00\xe0\x1c\x00\x00\x00\x0e\x00\x00'\
b'\x00\xc6\x01\x00\x00\xe3\x03\x00\x80\x31\x06\x00\xc0\x30\x06\x00'\
b'\x60\x30\x06\x00\x30\xe0\x03\x00\x00\xc0\x01\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x00\xf0\x01\x00\xe0\xf9\x03\x00\xf0\x1f'\
b'\x07\x00\x38\x0e\x06\x00\x18\x0c\x06\x00\x18\x38\x06\x00\x18\x70'\
b'\x07\x00\x18\xe0\x03\x00\x70\xe0\x01\x00\x70\xf8\x03\x00\x00\x38'\
b'\x07\x00\x00\x18\x06\x00\x00\x18\x06\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xf8\x01\x00\x00'\
b'\xf8\x03\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\x00\xfe\x00\x00\xc0\xff\x07\x00\xe0\x01\x1f\x00\x78\x00'\
b'\x38\x00\x1c\x00\x70\x00\x0c\x00\xe0\x00\x06\x00\xc0\x01\x06\x00'\
b'\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x06\x00\x80\x01\x06\x00\xc0\x00'\
b'\x0c\x00\xe0\x00\x18\x00\x70\x00\x70\x00\x38\x00\xe0\x01\x1f\x00'\
b'\xc0\xff\x07\x00\x00\xfe\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x01'\
b'\x00\x00\x80\x31\x00\x00\x80\x39\x00\x00\x80\x3d\x00\x00\x38\x0f'\
b'\x00\x00\xf8\x03\x00\x00\x10\x0f\x00\x00\x80\x3d\x00\x00\x80\x31'\
b'\x00\x00\xc0\x01\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\
b'\x00\x0c\x00\x00\x00\x0c\x00\x00\xe0\xff\x01\x00\xe0\xff\x01\x00'\
b'\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\
b'\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x70\x00\x00\x00'\
b'\x7f\x00\x00\x80\x1f\x00\x00\x80\x07\x00\x00\x80\x01\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\
b'\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\
b'\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x00\x00\x03\x00\x00\x80\x07\x00\x00\x80'\
b'\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x70\x00'\
b'\x00\x00\x7c\x00\x00\x00\x1f\x00\x00\xc0\x07\x00\x00\xf0\x00\x00'\
b'\x00\x3e\x00\x00\x80\x0f\x00\x00\xe0\x03\x00\x00\xf8\x00\x00\x00'\
b'\x1e\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\x80\x7f\x00\x00\xe0\xff\x01\x00\xf0\xc0\x03\x00\x38\x00'\
b'\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x38\x00'\
b'\x07\x00\xf0\xc0\x03\x00\xe0\xff\x01\x00\x80\x7f\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x20\x00\x04\x00\x30\x00\x06\x00'\
b'\x30\x00\x06\x00\x30\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00'\
b'\xf8\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\
b'\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xf0\x00'\
b'\x06\x00\xf0\x00\x07\x00\x38\x80\x07\x00\x18\xc0\x07\x00\x18\xe0'\
b'\x06\x00\x18\x70\x06\x00\x18\x38\x06\x00\x30\x1e\x06\x00\xf0\x0f'\
b'\x06\x00\xe0\x83\x07\x00\x00\x80\x07\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x70\x80\x01\x00\x70\x00\x03\x00\x18\x00\x03\x00'\
b'\x18\x06\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00'\
b'\x30\x0f\x06\x00\xf0\x0f\x03\x00\xe0\xf9\x03\x00\x00\xf0\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x38\x00\x00\x00\x3c'\
b'\x00\x00\x00\x3e\x00\x00\x00\x33\x00\x00\xc0\x31\x06\x00\xe0\x30'\
b'\x06\x00\x30\x30\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x00\x30'\
b'\x06\x00\x00\x30\x06\x00\x00\x30\x06\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x00\x80\x01\x00\xf8\x07\x03\x00\xf8\x07\x03\x00\x18\x03\x06\x00'\
b'\x18\x03\x06\x00\x18\x03\x06\x00\x18\x03\x06\x00\x18\x03\x07\x00'\
b'\x18\x8e\x03\x00\x18\xfe\x01\x00\x00\xf8\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x00\x7e\x00\x00\x80\xff\x01\x00\xc0\x0d'\
b'\x03\x00\xe0\x04\x06\x00\x70\x06\x06\x00\x30\x06\x06\x00\x38\x06'\
b'\x06\x00\x18\x06\x06\x00\x18\x0c\x03\x00\x18\xfc\x03\x00\x00\xf0'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x78\x00\x00\x00'\
b'\x78\x00\x00\x00\x18\x00\x00\x00\x18\x00\x06\x00\x18\xc0\x07\x00'\
b'\x18\xf0\x01\x00\x18\x7c\x00\x00\x98\x0f\x00\x00\xf8\x03\x00\x00'\
b'\xf8\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\xe0\xf0\x00\x00\xf0\xf9\x03\x00\x30\x0f\x03\x00\x18\x06'\
b'\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00\x18\x06\x06\x00\x30\x07'\
b'\x06\x00\xf0\x0f\x03\x00\xe0\xf9\x03\x00\x00\xf0\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x03\x00\x00\xf0\x0f\x06\x00'\
b'\x30\x0c\x06\x00\x18\x18\x06\x00\x18\x18\x07\x00\x18\x18\x03\x00'\
b'\x18\x98\x03\x00\x38\xc8\x01\x00\x30\xec\x00\x00\xe0\x7f\x00\x00'\
b'\x80\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x80\x01'\
b'\x03\x00\xc0\x83\x07\x00\xc0\x83\x07\x00\x80\x01\x03\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x00\x00\x70\x00\x80\x01\x7f\x00\xc0\x83\x1f\x00'\
b'\xc0\x83\x07\x00\x80\x81\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x0c\x00\x00\x00\x1c'\
b'\x00\x00\x00\x1e\x00\x00\x00\x3e\x00\x00\x00\x33\x00\x00\x00\x33'\
b'\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\xc0\xc0\x00\x00\xc0\xc0'\
b'\x00\x00\x60\x80\x01\x00\x60\x80\x01\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00'\
b'\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00'\
b'\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00\x80\x61\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x20\x00\x01\x00\x60\x80\x01\x00\x60\x80'\
b'\x01\x00\xc0\xc0\x00\x00\xc0\xc0\x00\x00\x80\x61\x00\x00\x80\x61'\
b'\x00\x00\x00\x33\x00\x00\x00\x33\x00\x00\x00\x1e\x00\x00\x00\x1e'\
b'\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x70\x00\x00\x00'\
b'\x70\x00\x00\x00\x18\x00\x00\x00\x18\x00\x03\x00\x18\xfc\x07\x00'\
b'\x18\xbc\x07\x00\x18\x0c\x03\x00\x38\x06\x00\x00\xf0\x07\x00\x00'\
b'\xe0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\x00\xfc\x00\x00\x00\xff\x03\x00\x80\x03\x07\x00\xc0\xf8'\
b'\x0c\x00\x60\xfc\x1d\x00\x70\x8e\x19\x00\x30\x87\x19\x00\x30\x83'\
b'\x18\x00\x30\x63\x18\x00\x30\xfe\x19\x00\x70\x87\x0d\x00\x60\x80'\
b'\x09\x00\xc0\xc1\x01\x00\x80\xff\x00\x00\x00\x3f\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x06\x00\x00\x00\x06\x00'\
b'\x00\x00\x07\x00\x18\xe0\x07\x00\x18\xfc\x06\x00\x18\x3f\x06\x00'\
b'\xf8\x33\x04\x00\x78\x30\x00\x00\x18\x30\x00\x00\xf8\x30\x00\x00'\
b'\xe0\x37\x06\x00\x80\x3f\x06\x00\x00\xfc\x06\x00\x00\xe0\x07\x00'\
b'\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x11\x00\x18\x00'\
b'\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x0c'\
b'\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c'\
b'\x06\x00\x18\x0c\x06\x00\x30\x0e\x06\x00\xf0\x1f\x03\x00\xe0\xf9'\
b'\x03\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x00\x3f\x00\x00\xc0\xff\x00\x00\xe0\xc0\x01\x00'\
b'\x70\x00\x03\x00\x38\x00\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00'\
b'\x18\x00\x06\x00\x18\x00\x06\x00\x30\x00\x06\x00\x70\x00\x03\x00'\
b'\xf8\x01\x03\x00\xf8\x81\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00'\
b'\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00'\
b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x38\x00'\
b'\x07\x00\x70\x80\x03\x00\xe0\xc0\x01\x00\xc0\xff\x00\x00\x00\x3f'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00'\
b'\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x18\x0c\x06\x00'\
b'\x18\x3f\x06\x00\x18\x3f\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\
b'\xf8\xe0\x07\x00\xf8\xe0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00'\
b'\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x0c\x06\x00\x18\x0c'\
b'\x06\x00\x18\x0c\x06\x00\x18\x3f\x06\x00\x18\x3f\x00\x00\x18\x00'\
b'\x00\x00\x18\x00\x00\x00\xf8\x00\x00\x00\xf8\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x3f\x00\x00'\
b'\xc0\xff\x00\x00\xe0\xc0\x01\x00\x70\x00\x03\x00\x38\x00\x07\x00'\
b'\x18\x00\x06\x00\x18\x00\x06\x00\x18\x30\x06\x00\x18\x30\x06\x00'\
b'\x18\x30\x06\x00\x30\x30\x06\x00\xf8\xf1\x03\x00\xf8\xf1\x03\x00'\
b'\x00\x30\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff'\
b'\x07\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\x00\x0c\x00\x00\x00\x0c'\
b'\x00\x00\x00\x0c\x00\x00\x18\x0c\x06\x00\x18\x0c\x06\x00\xf8\xff'\
b'\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x06\x00\x18\x00\x06\x00'\
b'\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00'\
b'\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\
b'\x18\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\xf8'\
b'\x01\x00\x00\xf0\x03\x00\x10\x00\x07\x00\x18\x00\x06\x00\x18\x00'\
b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x07\x00\xf8\xff'\
b'\x03\x00\xf8\xff\x01\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\
b'\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00'\
b'\xf8\xff\x07\x00\x18\x0c\x06\x00\x18\x0e\x06\x00\x00\x0f\x06\x00'\
b'\x00\x0f\x00\x00\x80\x19\x00\x00\xd8\x78\x00\x00\x78\xf0\x01\x00'\
b'\x38\x80\x07\x00\x38\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x18\x00\x06\x00\x18\x00'\
b'\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00'\
b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x00\x00'\
b'\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\xf0\x07\x00\x00\xf0'\
b'\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x00\x00\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00'\
b'\x78\x00\x06\x00\xf0\x01\x06\x00\xc0\x0f\x00\x00\x00\x3e\x00\x00'\
b'\x00\x70\x00\x00\x00\x3e\x00\x00\xc0\x0f\x00\x00\xf0\x01\x06\x00'\
b'\x78\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00'\
b'\x00\x00\x06\x00\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff'\
b'\x07\x00\xf8\xff\x07\x00\x78\x00\x06\x00\xe0\x00\x06\x00\x80\x03'\
b'\x06\x00\x00\x0e\x00\x00\x00\x3c\x00\x00\x18\xf0\x00\x00\x18\xc0'\
b'\x03\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x00\x00\x00\x18\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x3f\x00\x00'\
b'\xc0\xff\x00\x00\xe0\xc0\x01\x00\x70\x80\x03\x00\x30\x00\x03\x00'\
b'\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00'\
b'\x18\x00\x06\x00\x30\x00\x03\x00\x70\x80\x03\x00\xe0\xc0\x01\x00'\
b'\xc0\xff\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff'\
b'\x07\x00\xf8\xff\x07\x00\x18\x18\x06\x00\x18\x18\x06\x00\x18\x18'\
b'\x06\x00\x18\x18\x06\x00\x18\x18\x00\x00\x38\x18\x00\x00\x30\x0c'\
b'\x00\x00\xf0\x0f\x00\x00\xc0\x03\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x3f\x00\x00\xc0\xff\x00\x00'\
b'\xe0\xc0\x21\x00\x70\x80\x73\x00\x30\x00\x3b\x00\x18\x00\x3e\x00'\
b'\x18\x00\x36\x00\x18\x00\x36\x00\x18\x00\x36\x00\x18\x00\x36\x00'\
b'\x30\x00\x33\x00\x70\x80\x33\x00\xe0\xc0\x39\x00\xc0\xff\x10\x00'\
b'\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x18\x00'\
b'\x06\x00\x18\x00\x06\x00\xf8\xff\x07\x00\xf8\xff\x07\x00\x18\x0c'\
b'\x06\x00\x18\x0c\x06\x00\x18\x0c\x00\x00\x18\x1c\x00\x00\x18\x1c'\
b'\x00\x00\x18\x34\x00\x00\x30\xf6\x00\x00\xf0\xc7\x03\x00\xe0\x81'\
b'\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\xe0\xe1\x07\x00\xf0\xc3\x07\x00\x30\x86\x03\x00'\
b'\x18\x06\x03\x00\x18\x06\x06\x00\x18\x04\x06\x00\x18\x0c\x06\x00'\
b'\x18\x0c\x06\x00\x30\x0c\x06\x00\x30\x0c\x06\x00\x78\x18\x03\x00'\
b'\x78\xf8\x03\x00\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xf8\x03\x00\x00\xf8\x03'\
b'\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00\x06\x00\xf8\xff'\
b'\x07\x00\xf8\xff\x07\x00\x18\x00\x06\x00\x18\x00\x06\x00\x18\x00'\
b'\x06\x00\x18\x00\x06\x00\xf8\x03\x00\x00\xf8\x03\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x18\x00\x00\x00\x18\x00\x00\x00\xf8\xff\x00\x00\xf8\xff\x03\x00'\
b'\x18\x00\x03\x00\x18\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\
b'\x00\x00\x06\x00\x18\x00\x06\x00\x18\x00\x03\x00\xf8\xff\x03\x00'\
b'\xf8\xff\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x18\x00\x00\x00\x18\x00\x00\x00\x38\x00'\
b'\x00\x00\xf8\x01\x00\x00\xd8\x0f\x00\x00\x18\x3e\x00\x00\x18\xf8'\
b'\x01\x00\x00\xc0\x07\x00\x00\x00\x07\x00\x00\xc0\x07\x00\x00\xf8'\
b'\x01\x00\x18\x3f\x00\x00\xd8\x07\x00\x00\xf8\x01\x00\x00\x38\x00'\
b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x11\x00\x18\x00\x00\x00'\
b'\x18\x00\x00\x00\xf8\x0f\x00\x00\xf8\xff\x07\x00\x18\xf0\x07\x00'\
b'\x18\xc0\x07\x00\x00\xf8\x01\x00\x80\x3f\x00\x00\x80\x07\x00\x00'\
b'\x80\x1f\x00\x00\x00\xfc\x00\x00\x18\xe0\x07\x00\x18\xe0\x07\x00'\
b'\xf8\xff\x07\x00\xf8\x0f\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00'\
b'\x11\x00\x00\x00\x06\x00\x18\x00\x06\x00\x18\x00\x07\x00\x38\x80'\
b'\x07\x00\xf8\xc0\x06\x00\xd8\x71\x06\x00\x98\x3b\x00\x00\x00\x1e'\
b'\x00\x00\x00\x1f\x00\x00\x80\x3b\x00\x00\xd8\x71\x06\x00\xf8\xc0'\
b'\x06\x00\x38\x80\x07\x00\x18\x00\x07\x00\x18\x00\x06\x00\x00\x00'\
b'\x06\x00\x00\x00\x00\x00\x11\x00\x18\x00\x00\x00\x18\x00\x00\x00'\
b'\x38\x00\x06\x00\xf8\x00\x06\x00\xd8\x03\x06\x00\x18\x07\x06\x00'\
b'\x00\xfe\x07\x00\x00\xfc\x07\x00\x00\x0f\x06\x00\x98\x03\x06\x00'\
b'\xf8\x01\x06\x00\x78\x00\x06\x00\x38\x00\x00\x00\x18\x00\x00\x00'\
b'\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xf8\x01'\
b'\x06\x00\xf8\x81\x07\x00\x18\xc0\x07\x00\x18\xe0\x06\x00\x18\x78'\
b'\x06\x00\x18\x1c\x06\x00\x18\x0f\x06\x00\x98\x03\x06\x00\xf8\x01'\
b'\x06\x00\xf8\x00\x06\x00\x38\xe0\x07\x00\x18\xe0\x07\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\xfe\xff\xff\x00\xfe\xff\xff\x00\x06\x00\xc0\x00'\
b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x0e\x00\x00\x00\x3e\x00'\
b'\x00\x00\xf8\x00\x00\x00\xe0\x03\x00\x00\x00\x0f\x00\x00\x00\x7c'\
b'\x00\x00\x00\xf0\x01\x00\x00\xc0\x07\x00\x00\x00\x1f\x00\x00\x00'\
b'\x78\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00'\
b'\x06\x00\xc0\x00\xfe\xff\xff\x00\xfe\xff\xff\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x00\x08\x00\x00\x00\x1e\x00\x00\x80\x0f'\
b'\x00\x00\xe0\x03\x00\x00\xf8\x00\x00\x00\x38\x00\x00\x00\xf0\x00'\
b'\x00\x00\xc0\x03\x00\x00\x00\x0f\x00\x00\x00\x1c\x00\x00\x00\x10'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x18\x00'\
b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\
b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\
b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\
b'\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00'\
b'\x11\x00\x07\x00\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x0c\x00'\
b'\x00\x00\x0c\x00\x00\x00\x08\x00\x00\x00\x18\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\xe0\x01\x00\x00\xf1\x03\x00'\
b'\x80\x31\x07\x00\x80\x19\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00'\
b'\xc0\x18\x06\x00\xc0\x18\x07\x00\xc0\x18\x03\x00\xc0\x91\x03\x00'\
b'\x80\xff\x03\x00\x00\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x06\x00'\
b'\x06\x00\x06\x00\x06\x00\xfe\xff\x07\x00\xfe\xff\x07\x00\x00\x83'\
b'\x01\x00\x80\x01\x03\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00'\
b'\x06\x00\xc0\x00\x06\x00\xc0\x01\x07\x00\x80\x83\x03\x00\x00\xff'\
b'\x01\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x00\x7c\x00\x00\x00\xff\x01\x00\x80\x83\x03\x00'\
b'\x80\x01\x03\x00\xc0\x01\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00'\
b'\xc0\x00\x06\x00\xc0\x00\x06\x00\x80\x01\x06\x00\x80\x01\x03\x00'\
b'\xc0\x0f\x03\x00\xc0\x8f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\xfc\x00\x00\x00\xfe'\
b'\x01\x00\x00\x87\x03\x00\x80\x03\x07\x00\x80\x01\x06\x00\x80\x01'\
b'\x06\x00\x86\x01\x06\x00\x86\x01\x06\x00\x06\x03\x03\x00\x06\x86'\
b'\x01\x00\xfe\xff\x07\x00\xfe\xff\x07\x00\x00\x00\x06\x00\x00\x00'\
b'\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x00\xfc\x00\x00\x00\xff\x01\x00\x80\x9b\x03\x00\x80\x19\x07\x00'\
b'\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00'\
b'\xc0\x18\x06\x00\x80\x19\x07\x00\x80\x1b\x03\x00\x00\x1f\x03\x00'\
b'\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x80\x01\x06\x00\x80\x01\x06\x00\x80\x01'\
b'\x06\x00\x80\x01\x06\x00\xf8\xff\x07\x00\xfc\xff\x07\x00\x8e\x01'\
b'\x06\x00\x86\x01\x06\x00\x86\x01\x06\x00\x86\x01\x06\x00\x86\x01'\
b'\x06\x00\x8e\x01\x06\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x7c\x00\x00'\
b'\x00\xff\x61\x00\x80\x83\x63\x00\xc0\x01\xc7\x00\xc0\x00\xc6\x00'\
b'\xc0\x00\xc6\x00\xc0\x00\xc6\x00\xc0\x00\xc6\x00\x80\x01\xc3\x00'\
b'\x00\x83\x61\x00\xc0\xff\x7f\x00\xc0\xff\x1f\x00\xc0\x00\x00\x00'\
b'\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\x06\x00\x06\x00\x06\x00\x06\x00\xfe\xff\x07\x00\xfe\xff'\
b'\x07\x00\x00\x07\x06\x00\x80\x01\x06\x00\x80\x01\x00\x00\xc0\x00'\
b'\x00\x00\xc0\x00\x00\x00\xc0\x00\x06\x00\xc0\x01\x06\x00\x80\xff'\
b'\x07\x00\x00\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x06\x00\xc0\x00\x06\x00'\
b'\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xcf\xff\x07\x00'\
b'\xcf\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\
b'\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00'\
b'\x20\x00\xc0\x00\x60\x00\xc0\x00\x60\x00\xc0\x00\xc0\x00\xc0\x00'\
b'\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xe0\x00\xcf\xff'\
b'\x7f\x00\xcf\xff\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x06\x00\x06\x00\x06\x00\x06\x00\xfe\xff\x07\x00'\
b'\xfe\xff\x07\x00\x00\x70\x06\x00\x00\x38\x06\x00\x00\x18\x00\x00'\
b'\x00\x3c\x00\x00\xc0\x76\x00\x00\xc0\xe7\x06\x00\xc0\xc3\x07\x00'\
b'\xc0\x81\x07\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\x00\x00\x06\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x06\x00\x06\x00\x06\x00'\
b'\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\xfe\xff'\
b'\x07\x00\xfe\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00'\
b'\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\xff\x07\x00\xc0\xff\x07\x00'\
b'\x80\x03\x06\x00\xc0\x00\x04\x00\xc0\x00\x00\x00\xc0\x00\x00\x00'\
b'\xc0\xff\x07\x00\x00\xff\x07\x00\x80\x03\x06\x00\xc0\x00\x06\x00'\
b'\xc0\x00\x00\x00\xc0\xff\x07\x00\x80\xff\x07\x00\x00\x00\x06\x00'\
b'\x00\x00\x06\x00\x11\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\xff'\
b'\x07\x00\xc0\xff\x07\x00\x00\x07\x06\x00\x80\x01\x06\x00\x80\x00'\
b'\x00\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\xc0\x00\x06\x00\xc0\x01'\
b'\x06\x00\x80\xff\x07\x00\x00\xff\x07\x00\x00\x00\x06\x00\x00\x00'\
b'\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x7c\x00\x00'\
b'\x00\xff\x01\x00\x80\x83\x03\x00\x80\x01\x03\x00\xc0\x00\x06\x00'\
b'\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00'\
b'\x80\x01\x03\x00\x80\x83\x03\x00\x00\xff\x01\x00\x00\x7c\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x11\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00\xc0\xff\xff\x00\xc0\xff'\
b'\xff\x00\x00\x83\xc1\x00\x80\x01\xc3\x00\xc0\x00\xc6\x00\xc0\x00'\
b'\xc6\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x01\x07\x00\x80\x83'\
b'\x03\x00\x00\xff\x01\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\x00\x7c\x00\x00\x00\xff\x01\x00'\
b'\x80\x83\x03\x00\xc0\x01\x07\x00\xc0\x00\x06\x00\xc0\x00\x06\x00'\
b'\xc0\x00\xc6\x00\xc0\x00\xc6\x00\x80\x01\xc3\x00\x00\x83\xc1\x00'\
b'\xc0\xff\xff\x00\xc0\xff\xff\x00\xc0\x00\xc0\x00\xc0\x00\xc0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x00'\
b'\x06\x00\xc0\x00\x06\x00\xc0\xff\x07\x00\xc0\xff\x07\x00\x00\x0e'\
b'\x06\x00\x00\x03\x06\x00\x80\x01\x06\x00\xc0\x01\x06\x00\xc0\x00'\
b'\x06\x00\xc0\x00\x00\x00\xc0\x01\x00\x00\x80\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x00\x87\x07\x00\x80\x8f\x07\x00\xc0\x19\x03\x00'\
b'\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00\xc0\x18\x06\x00'\
b'\x80\x30\x06\x00\x80\x31\x07\x00\xc0\xf3\x03\x00\xc0\xe3\x01\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x80\x01\x00\x00\x80\x01'\
b'\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00\xfc\xff\x01\x00\xfc\xff'\
b'\x03\x00\x80\x01\x07\x00\x80\x01\x06\x00\x80\x01\x06\x00\x80\x01'\
b'\x06\x00\x80\x01\x06\x00\x80\x01\x03\x00\x00\x00\x03\x00\x00\x00'\
b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\xc0\x00\x00\x00\xc0\x00\x00\x00\xc0\xff\x01\x00\xc0\xff\x03\x00'\
b'\x00\x00\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x06\x00'\
b'\xc0\x00\x02\x00\xc0\x00\x03\x00\xc0\xc0\x01\x00\xc0\xff\x07\x00'\
b'\xc0\xff\x07\x00\x00\x00\x06\x00\x00\x00\x06\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\xc0\x00\x00\x00\xc0\x00\x00\x00\xc0\x03'\
b'\x00\x00\xc0\x0f\x00\x00\xc0\x7e\x00\x00\xc0\xf0\x01\x00\x80\xc0'\
b'\x07\x00\x00\x00\x06\x00\x00\x80\x07\x00\xc0\xf0\x03\x00\xc0\x7c'\
b'\x00\x00\xc0\x1f\x00\x00\xc0\x07\x00\x00\xc0\x00\x00\x00\xc0\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x00\x00\x00'\
b'\xc0\x01\x00\x00\xc0\x1f\x00\x00\xc0\xfe\x01\x00\xc0\xe0\x07\x00'\
b'\xc0\x80\x07\x00\x00\xf0\x03\x00\x00\x7e\x00\x00\x00\x0e\x00\x00'\
b'\x00\x7e\x00\x00\x00\xf0\x03\x00\x00\x80\x07\x00\xc0\xe0\x07\x00'\
b'\xc0\xfc\x01\x00\xc0\x1f\x00\x00\xc0\x03\x00\x00\xc0\x00\x00\x00'\
b'\x11\x00\x00\x00\x04\x00\xc0\x00\x06\x00\xc0\x00\x07\x00\xc0\x81'\
b'\x07\x00\xc0\xc3\x07\x00\xc0\xe6\x06\x00\x00\x3c\x00\x00\x00\x18'\
b'\x00\x00\x00\x3c\x00\x00\xc0\x66\x06\x00\xc0\xc3\x07\x00\xc0\x81'\
b'\x07\x00\xc0\x00\x07\x00\xc0\x00\x06\x00\x00\x00\x04\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x00\x00\x00\xc0\x00\xc0\x00'\
b'\xc0\x03\xc0\x00\xc0\x07\xc0\x00\xc0\x1e\x60\x00\xc0\x78\x70\x00'\
b'\x80\xe0\x3d\x00\x00\x80\x0f\x00\x00\xc0\x03\x00\xc0\xf0\x00\x00'\
b'\xc0\x3c\x00\x00\xc0\x0f\x00\x00\xc0\x03\x00\x00\xc0\x00\x00\x00'\
b'\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xc0\x03'\
b'\x06\x00\xc0\x03\x07\x00\xc0\x80\x07\x00\xc0\xe0\x07\x00\xc0\xf0'\
b'\x06\x00\xc0\x78\x06\x00\xc0\x3c\x06\x00\xc0\x0e\x06\x00\xc0\x07'\
b'\x06\x00\xc0\x03\x06\x00\xc0\xc1\x07\x00\xc0\xc0\x07\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x11\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00'\
b'\x00\x3c\x00\x00\xf8\xff\x3f\x00\xfc\xc7\x7f\x00\x0e\x00\xe0\x00'\
b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\xfe\xff\xff\x00\xfe\xff'\
b'\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00'\
b'\x06\x00\xc0\x00\x06\x00\xc0\x00\x06\x00\xc0\x00\x0e\x00\xe0\x00'\
b'\xfc\xe7\x7f\x00\xf8\xff\x3f\x00\x00\x3c\x00\x00\x00\x18\x00\x00'\
b'\x00\x18\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x11\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x0c'\
b'\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x0c\x00\x00\x00\x18'\
b'\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18\x00\x00\x00\x18'\
b'\x00\x00\x00\x0c\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00'\
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
_index =\
b'\x00\x00\x46\x00\x8c\x00\xd2\x00\x18\x01\x5e\x01\xa4\x01\xea\x01'\
b'\x30\x02\x76\x02\xbc\x02\x02\x03\x48\x03\x8e\x03\xd4\x03\x1a\x04'\
b'\x60\x04\xa6\x04\xec\x04\x32\x05\x78\x05\xbe\x05\x04\x06\x4a\x06'\
b'\x90\x06\xd6\x06\x1c\x07\x62\x07\xa8\x07\xee\x07\x34\x08\x7a\x08'\
b'\xc0\x08\x06\x09\x4c\x09\x92\x09\xd8\x09\x1e\x0a\x64\x0a\xaa\x0a'\
b'\xf0\x0a\x36\x0b\x7c\x0b\xc2\x0b\x08\x0c\x4e\x0c\x94\x0c\xda\x0c'\
b'\x20\x0d\x66\x0d\xac\x0d\xf2\x0d\x38\x0e\x7e\x0e\xc4\x0e\x0a\x0f'\
b'\x50\x0f\x96\x0f\xdc\x0f\x22\x10\x68\x10\xae\x10\xf4\x10\x3a\x11'\
b'\x80\x11\xc6\x11\x0c\x12\x52\x12\x98\x12\xde\x12\x24\x13\x6a\x13'\
b'\xb0\x13\xf6\x13\x3c\x14\x82\x14\xc8\x14\x0e\x15\x54\x15\x9a\x15'\
b'\xe0\x15\x26\x16\x6c\x16\xb2\x16\xf8\x16\x3e\x17\x84\x17\xca\x17'\
b'\x10\x18\x56\x18\x9c\x18\xe2\x18\x28\x19\x6e\x19\xb4\x19\xfa\x19'\
def _chr_addr(ordch):
offset = 2 * (ordch - 32)
return int.from_bytes(_index[offset:offset + 2], 'little')
def get_ch(ch):
ordch = ord(ch)
ordch = ordch if ordch >= 32 and ordch <= 126 else ord('?')
offset = _chr_addr(ordch)
width = int.from_bytes(_font[offset:offset + 2], 'little')
next_offs = _chr_addr(ordch +1)
return memoryview(_font[offset + 2:next_offs]), 25, width