font_data_8x16 = '''
!
00000000
00000000
00011000
00111100
00111100
00111100
00011000
00011000
00011000
00000000
00011000
00011000
00000000
00000000
00000000
00000000

 
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

"
00000000
01100110
01100110
01100110
00100100
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

#
00000000
00000000
00000000
01101100
01101100
11111110
01101100
01101100
01101100
11111110
01101100
01101100
00000000
00000000
00000000
00000000

$
00011000
00011000
01111100
11000110
11000010
11000000
01111100
00000110
00000110
10000110
11000110
01111100
00011000
00011000
00000000
00000000

%
00000000
00000000
00000000
00000000
11000010
11000110
00001100
00011000
00110000
01100000
11000110
10000110
00000000
00000000
00000000
00000000

&
00000000
00000000
00111000
01101100
01101100
00111000
01110110
11011100
11001100
11001100
11001100
01110110
00000000
00000000
00000000
00000000

'
00000000
00110000
00110000
00110000
01100000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

(
00000000
00000000
00001100
00011000
00110000
00110000
00110000
00110000
00110000
00110000
00011000
00001100
00000000
00000000
00000000
00000000

)
00000000
00000000
00110000
00011000
00001100
00001100
00001100
00001100
00001100
00001100
00011000
00110000
00000000
00000000
00000000
00000000

*
00000000
00000000
00000000
00000000
00000000
01100110
00111100
11111111
00111100
01100110
00000000
00000000
00000000
00000000
00000000
00000000

+
00000000
00000000
00000000
00000000
00000000
00011000
00011000
01111110
00011000
00011000
00000000
00000000
00000000
00000000
00000000
00000000

,
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00011000
00011000
00011000
00110000
00000000
00000000
00000000

-
00000000
00000000
00000000
00000000
00000000
00000000
00000000
11111110
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

.
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00011000
00011000
00000000
00000000
00000000
00000000

/
00000000
00000000
00000000
00000000
00000010
00000110
00001100
00011000
00110000
01100000
11000000
10000000
00000000
00000000
00000000
00000000

0
00000000
00000000
00111000
01101100
11000110
11000110
11010110
11010110
11000110
11000110
01101100
00111000
00000000
00000000
00000000
00000000

1
00000000
00000000
00011000
00111000
01111000
00011000
00011000
00011000
00011000
00011000
00011000
01111110
00000000
00000000
00000000
00000000

2
00000000
00000000
01111100
11000110
00000110
00001100
00011000
00110000
01100000
11000000
11000110
11111110
00000000
00000000
00000000
00000000

3
00000000
00000000
01111100
11000110
00000110
00000110
00111100
00000110
00000110
00000110
11000110
01111100
00000000
00000000
00000000
00000000

4
00000000
00000000
00001100
00011100
00111100
01101100
11001100
11111110
00001100
00001100
00001100
00011110
00000000
00000000
00000000
00000000

5
00000000
00000000
11111110
11000000
11000000
11000000
11111100
00000110
00000110
00000110
11000110
01111100
00000000
00000000
00000000
00000000

6
00000000
00000000
00111000
01100000
11000000
11000000
11111100
11000110
11000110
11000110
11000110
01111100
00000000
00000000
00000000
00000000

7
00000000
00000000
11111110
11000110
00000110
00000110
00001100
00011000
00110000
00110000
00110000
00110000
00000000
00000000
00000000
00000000

8
00000000
00000000
01111100
11000110
11000110
11000110
01111100
11000110
11000110
11000110
11000110
01111100
00000000
00000000
00000000
00000000

9
00000000
00000000
01111100
11000110
11000110
11000110
01111110
00000110
00000110
00000110
00001100
01111000
00000000
00000000
00000000
00000000

:
00000000
00000000
00000000
00000000
00011000
00011000
00000000
00000000
00000000
00011000
00011000
00000000
00000000
00000000
00000000
00000000

;
00000000
00000000
00000000
00000000
00011000
00011000
00000000
00000000
00000000
00011000
00011000
00110000
00000000
00000000
00000000
00000000

<
00000000
00000000
00000000
00000110
00001100
00011000
00110000
01100000
00110000
00011000
00001100
00000110
00000000
00000000
00000000
00000000

=
00000000
00000000
00000000
00000000
00000000
01111110
00000000
00000000
01111110
00000000
00000000
00000000
00000000
00000000
00000000
00000000

>
00000000
00000000
00000000
01100000
00110000
00011000
00001100
00000110
00001100
00011000
00110000
01100000
00000000
00000000
00000000
00000000

?
00000000
00000000
01111100
11000110
11000110
00001100
00011000
00011000
00011000
00000000
00011000
00011000
00000000
00000000
00000000
00000000

@
00000000
00000000
00000000
01111100
11000110
11000110
11011110
11011110
11011110
11011100
11000000
01111100
00000000
00000000
00000000
00000000

A
00000000
00000000
00010000
00111000
01101100
11000110
11000110
11111110
11000110
11000110
11000110
11000110
00000000
00000000
00000000
00000000

B
00000000
00000000
11111100
01100110
01100110
01100110
01111100
01100110
01100110
01100110
01100110
11111100
00000000
00000000
00000000
00000000

C
00000000
00000000
00111100
01100110
11000010
11000000
11000000
11000000
11000000
11000010
01100110
00111100
00000000
00000000
00000000
00000000

D
00000000
00000000
11111000
01101100
01100110
01100110
01100110
01100110
01100110
01100110
01101100
11111000
00000000
00000000
00000000
00000000

E
00000000
00000000
11111110
01100110
01100010
01101000
01111000
01101000
01100000
01100010
01100110
11111110
00000000
00000000
00000000
00000000

F
00000000
00000000
11111110
01100110
01100010
01101000
01111000
01101000
01100000
01100000
01100000
11110000
00000000
00000000
00000000
00000000

G
00000000
00000000
00111100
01100110
11000010
11000000
11000000
11011110
11000110
11000110
01100110
00111010
00000000
00000000
00000000
00000000

H
00000000
00000000
11000110
11000110
11000110
11000110
11111110
11000110
11000110
11000110
11000110
11000110
00000000
00000000
00000000
00000000

I
00000000
00000000
00111100
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00111100
00000000
00000000
00000000
00000000

J
00000000
00000000
00011110
00001100
00001100
00001100
00001100
00001100
11001100
11001100
11001100
01111000
00000000
00000000
00000000
00000000

K
00000000
00000000
11100110
01100110
01100110
01101100
01111000
01111000
01101100
01100110
01100110
11100110
00000000
00000000
00000000
00000000

L
00000000
00000000
11110000
01100000
01100000
01100000
01100000
01100000
01100000
01100010
01100110
11111110
00000000
00000000
00000000
00000000

M
00000000
00000000
11000110
11101110
11111110
11111110
11010110
11000110
11000110
11000110
11000110
11000110
00000000
00000000
00000000
00000000

N
00000000
00000000
11000110
11100110
11110110
11111110
11011110
11001110
11000110
11000110
11000110
11000110
00000000
00000000
00000000
00000000

O
00000000
00000000
01111100
11000110
11000110
11000110
11000110
11000110
11000110
11000110
11000110
01111100
00000000
00000000
00000000
00000000

P
00000000
00000000
11111100
01100110
01100110
01100110
01111100
01100000
01100000
01100000
01100000
11110000
00000000
00000000
00000000
00000000

Q
00000000
00000000
01111100
11000110
11000110
11000110
11000110
11000110
11000110
11010110
11011110
01111100
00001100
00001110
00000000
00000000

R
00000000
00000000
11111100
01100110
01100110
01100110
01111100
01101100
01100110
01100110
01100110
11100110
00000000
00000000
00000000
00000000

S
00000000
00000000
01111100
11000110
11000110
01100000
00111000
00001100
00000110
11000110
11000110
01111100
00000000
00000000
00000000
00000000

T
00000000
00000000
01111110
01111110
01011010
00011000
00011000
00011000
00011000
00011000
00011000
00111100
00000000
00000000
00000000
00000000

U
00000000
00000000
11000110
11000110
11000110
11000110
11000110
11000110
11000110
11000110
11000110
01111100
00000000
00000000
00000000
00000000

V
00000000
00000000
11000110
11000110
11000110
11000110
11000110
11000110
11000110
01101100
00111000
00010000
00000000
00000000
00000000
00000000

W
00000000
00000000
11000110
11000110
11000110
11000110
11010110
11010110
11010110
11111110
11101110
01101100
00000000
00000000
00000000
00000000

X
00000000
00000000
11000110
11000110
01101100
01111100
00111000
00111000
01111100
01101100
11000110
11000110
00000000
00000000
00000000
00000000

Y
00000000
00000000
01100110
01100110
01100110
01100110
00111100
00011000
00011000
00011000
00011000
00111100
00000000
00000000
00000000
00000000

Z
00000000
00000000
11111110
11000110
10000110
00001100
00011000
00110000
01100000
11000010
11000110
11111110
00000000
00000000
00000000
00000000

[
00000000
00000000
00111100
00110000
00110000
00110000
00110000
00110000
00110000
00110000
00110000
00111100
00000000
00000000
00000000
00000000

\\
00000000
00000000
00000000
10000000
11000000
11100000
01110000
00111000
00011100
00001110
00000110
00000010
00000000
00000000
00000000
00000000

]
00000000
00000000
00111100
00001100
00001100
00001100
00001100
00001100
00001100
00001100
00001100
00111100
00000000
00000000
00000000
00000000

^
00010000
00111000
01101100
11000110
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

_
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
11111111
00000000
00000000

`
00000000
00110000
00011000
00001100
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

a
00000000
00000000
00000000
00000000
00000000
01111000
00001100
01111100
11001100
11001100
11001100
01110110
00000000
00000000
00000000
00000000

b
00000000
00000000
11100000
01100000
01100000
01111000
01101100
01100110
01100110
01100110
01100110
01111100
00000000
00000000
00000000
00000000

c
00000000
00000000
00000000
00000000
00000000
01111100
11000110
11000000
11000000
11000000
11000110
01111100
00000000
00000000
00000000
00000000

d
00000000
00000000
00011100
00001100
00001100
00111100
01101100
11001100
11001100
11001100
11001100
01110110
00000000
00000000
00000000
00000000

e
00000000
00000000
00000000
00000000
00000000
01111100
11000110
11111110
11000000
11000000
11000110
01111100
00000000
00000000
00000000
00000000

f
00000000
00000000
00011100
00110110
00110010
00110000
01111000
00110000
00110000
00110000
00110000
01111000
00000000
00000000
00000000
00000000

g
00000000
00000000
00000000
00000000
00000000
01110110
11001100
11001100
11001100
11001100
11001100
01111100
00001100
11001100
01111000
00000000

h
00000000
00000000
11100000
01100000
01100000
01101100
01110110
01100110
01100110
01100110
01100110
11100110
00000000
00000000
00000000
00000000

i
00000000
00000000
00011000
00011000
00000000
00111000
00011000
00011000
00011000
00011000
00011000
00111100
00000000
00000000
00000000
00000000

j
00000000
00000000
00000110
00000110
00000000
00001110
00000110
00000110
00000110
00000110
00000110
00000110
01100110
01100110
00111100
00000000

k
00000000
00000000
11100000
01100000
01100000
01100110
01101100
01111000
01111000
01101100
01100110
11100110
00000000
00000000
00000000
00000000

l
00000000
00000000
00111000
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00111100
00000000
00000000
00000000
00000000

m
00000000
00000000
00000000
00000000
00000000
11101100
11111110
11010110
11010110
11010110
11010110
11000110
00000000
00000000
00000000
00000000

n
00000000
00000000
00000000
00000000
00000000
11011100
01100110
01100110
01100110
01100110
01100110
01100110
00000000
00000000
00000000
00000000

o
00000000
00000000
00000000
00000000
00000000
01111100
11000110
11000110
11000110
11000110
11000110
01111100
00000000
00000000
00000000
00000000

p
00000000
00000000
00000000
00000000
00000000
11011100
01100110
01100110
01100110
01100110
01100110
01111100
01100000
01100000
11110000
00000000

q
00000000
00000000
00000000
00000000
00000000
01110110
11001100
11001100
11001100
11001100
11001100
01111100
00001100
00001100
00011110
00000000

r
00000000
00000000
00000000
00000000
00000000
11011100
01110110
01100110
01100000
01100000
01100000
11110000
00000000
00000000
00000000
00000000

s
00000000
00000000
00000000
00000000
00000000
01111100
11000110
01100000
00111000
00001100
11000110
01111100
00000000
00000000
00000000
00000000

t
00000000
00000000
00010000
00110000
00110000
11111100
00110000
00110000
00110000
00110000
00110110
00011100
00000000
00000000
00000000
00000000

u
00000000
00000000
00000000
00000000
00000000
11001100
11001100
11001100
11001100
11001100
11001100
01110110
00000000
00000000
00000000
00000000

v
00000000
00000000
00000000
00000000
00000000
11000110
11000110
11000110
11000110
11000110
01101100
00111000
00000000
00000000
00000000
00000000

w
00000000
00000000
00000000
00000000
00000000
11000110
11000110
11010110
11010110
11010110
11111110
01101100
00000000
00000000
00000000
00000000

x
00000000
00000000
00000000
00000000
00000000
11000110
01101100
00111000
00111000
00111000
01101100
11000110
00000000
00000000
00000000
00000000

y
00000000
00000000
00000000
00000000
00000000
11000110
11000110
11000110
11000110
11000110
11000110
01111110
00000110
00001100
11111000
00000000

z
00000000
00000000
00000000
00000000
00000000
11111110
11001100
00011000
00110000
01100000
11000110
11111110
00000000
00000000
00000000
00000000

{
00000000
00000000
00001110
00011000
00011000
00011000
01110000
00011000
00011000
00011000
00011000
00001110
00000000
00000000
00000000
00000000

|
00000000
00000000
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00011000
00000000
00000000
00000000
00000000

}
00000000
00000000
01110000
00011000
00011000
00011000
00001110
00011000
00011000
00011000
00011000
01110000
00000000
00000000
00000000
00000000

~
00000000
01110110
11011100
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
'''
font_data_8x16 = font_data_8x16.strip()


font_data_8x16_dict_as_1d_array = dict()
parts = font_data_8x16.split("\n\n")
for part in parts:
    splits = part.split("\n")
    symbol = splits[0]
    data_text = ""
    for line in splits[1:]:
        data_text += line.strip()
    font_data_8x16_dict_as_1d_array[symbol] = data_text


def get_ascii_8_times_16_font_dict():
    dict_ = {}
    parts = font_data_8x16.split("\n\n")
    for part in parts:
        splits = part.split("\n")
        symbol = splits[0]
        points = []
        for line in splits[1:]:
            points.append([int(one) for one in list(line)])
        dict_[symbol] = points
    return dict_


#try:
#    font_data_8x16_dict = get_ascii_8_times_16_font_dict() # will fail in pico, and takes time
#except Exception as e:
#    print(e)
#    font_data_8x16_dict = {
#        " ": [[0]*8 for i in range(16)],
#    }
font_data_8x16_dict = {
    " ": [[0]*8 for i in range(16)],
}


try:
    import gc
    del font_data_8x16
    gc.collect()
except Exception as e:
    print(e)


def get_ascii_8_times_16_points_data(char):
    target_char = " "
    if char in font_data_8x16_dict:
        target_char = char
    else:
        if char in font_data_8x16_dict_as_1d_array:
            a_char_text_data = font_data_8x16_dict_as_1d_array[char]
            a_char_data = []
            index = 0
            for row in range(16):
                temp_row = [0] * 8
                for column in range(8):
                    temp_row[column] = int(a_char_text_data[index])
                    index += 1
                a_char_data.append(temp_row)
            return a_char_data
    return list([list(one) for one in font_data_8x16_dict[target_char]])
