<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Urwid BigText fonts
#    Copyright (C) 2004-2006  Ian Ward
#
#    This library is free software; you can redistribute it and/or
#    modify it under the terms of the GNU Lesser General Public
#    License as published by the Free Software Foundation; either
#    version 2.1 of the License, or (at your option) any later version.
#
#    This library is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#    Lesser General Public License for more details.
#
#    You should have received a copy of the GNU Lesser General Public
#    License along with this library; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# Urwid web site: http://excess.org/urwid/

from __future__ import division, print_function

from urwid.escape import SAFE_ASCII_DEC_SPECIAL_RE
from urwid.util import apply_target_encoding, str_util
from urwid.canvas import TextCanvas
from urwid.compat import text_type


def separate_glyphs(gdata, height):
    """return (dictionary of glyphs, utf8 required)"""
    gl = gdata.split("\n")
    del gl[0]
    del gl[-1]
    for g in gl:
        assert "\t" not in g
    assert len(gl) == height+1, repr(gdata)
    key_line = gl[0]
    del gl[0]
    c = None # current character
    key_index = 0 # index into character key line
    end_col = 0 # column position at end of glyph
    start_col = 0 # column position at start of glyph
    jl = [0]*height # indexes into lines of gdata (gl)
    dout = {}
    utf8_required = False
    while True:
        if c is None:
            if key_index &gt;= len(key_line):
                break
            c = key_line[key_index]
        if key_index &lt; len(key_line) and key_line[key_index] == c:
            end_col += str_util.get_width(ord(c))
            key_index += 1
            continue
        out = []
        for k in range(height):
            l = gl[k]
            j = jl[k]
            y = 0
            fill = 0
            while y &lt; end_col - start_col:
                if j &gt;= len(l):
                    fill = end_col - start_col - y
                    break
                y += str_util.get_width(ord(l[j]))
                j += 1
            assert y + fill == end_col - start_col, \
                repr((y, fill, end_col))

            segment = l[jl[k]:j]
            if not SAFE_ASCII_DEC_SPECIAL_RE.match(segment):
                utf8_required = True

            out.append(segment + " " * fill)
            jl[k] = j

        start_col = end_col
        dout[c] = (y + fill, out)
        c = None
    return dout, utf8_required

_all_fonts = []
def get_all_fonts():
    """
    Return a list of (font name, font class) tuples.
    """
    return _all_fonts[:]

def add_font(name, cls):
    _all_fonts.append((name, cls))


class Font(object):
    def __init__(self):
        assert self.height
        assert self.data
        self.char = {}
        self.canvas = {}
        self.utf8_required = False
        data = [self._to_text(block) for block in self.data]
        for gdata in data:
            self.add_glyphs(gdata)

    @staticmethod
    def _to_text(obj, encoding='utf-8', errors='strict'):
        if isinstance(obj, text_type):
            return obj
        elif isinstance(obj, bytes):
            return obj.decode(encoding, errors)

    def add_glyphs(self, gdata):
        d, utf8_required = separate_glyphs(gdata, self.height)
        self.char.update(d)
        self.utf8_required |= utf8_required

    def characters(self):
        l = list(self.char.keys())
        l.sort()
        return "".join(l)

    def char_width(self, c):
        if c in self.char:
            return self.char[c][0]
        return 0

    def char_data(self, c):
        return self.char[c][1]

    def render(self, c):
        if c in self.canvas:
            return self.canvas[c]
        width, l = self.char[c]
        tl = []
        csl = []
        for d in l:
            t, cs = apply_target_encoding(d)
            tl.append(t)
            csl.append(cs)
        canv = TextCanvas(tl, None, csl, maxcol=width,
            check_width=False)
        self.canvas[c] = canv
        return canv



#safe_palette = u"â”˜â”â”Œâ””â”¼â”€â”œâ”¤â”´â”¬â”‚"
#more_palette = u"â•â•‘â•’â•“â•”â••â•–â•—â•˜â•™â•šâ•›â•œâ•â•žâ•Ÿâ•&nbsp;â•¡â•¢â•£â•¤â•¥â•¦â•§â•¨â•©â•ªâ•«â•¬â—‹"
#block_palette = u"â–„#â–ˆ#â–€#â–Œ#â–#â––#â–—#â–˜#â–™#â–š#â–›#â–œ#â–#â–ž#â–Ÿ"


class Thin3x3Font(Font):
    height = 3
    data = [u"""
000111222333444555666777888999  !
â”Œâ”€â” â” â”Œâ”€â”â”Œâ”€â”  â”â”Œâ”€ â”Œâ”€ â”Œâ”€â”â”Œâ”€â”â”Œâ”€â”  â”‚
â”‚ â”‚ â”‚ â”Œâ”€â”˜ â”€â”¤â””â”€â”¼â””â”€â”â”œâ”€â”  â”¼â”œâ”€â”¤â””â”€â”¤  â”‚
â””â”€â”˜ â”´ â””â”€ â””â”€â”˜  â”´ â”€â”˜â””â”€â”˜  â”´â””â”€â”˜ â”€â”˜  .
""", r"""
"###$$$%%%'*++,--.///:;==???[[\\\]]^__`
" â”¼â”¼â”Œâ”¼â”O /'         /.. _â”Œâ”€â”â”Œ \   â”^  `
  â”¼â”¼â””â”¼â” /  * â”¼  â”€  / ., _ â”Œâ”˜â”‚  \  â”‚
    â””â”¼â”˜/ O    ,  ./       . â””   \ â”˜ â”€â”€
"""]
add_font("Thin 3x3",Thin3x3Font)

class Thin4x3Font(Font):
    height = 3
    data = Thin3x3Font.data + [u"""
0000111122223333444455556666777788889999  ####$$$$
â”Œâ”€â”€â”  â” â”Œâ”€â”€â”â”Œâ”€â”€â”   â”â”Œâ”€â”€ â”Œâ”€â”€ â”Œâ”€â”€â”â”Œâ”€â”€â”â”Œâ”€â”€â”   â”¼â”€â”¼â”Œâ”¼â”¼â”
â”‚  â”‚  â”‚ â”Œâ”€â”€â”˜  â”€â”¤â””â”€â”€â”¼â””â”€â”€â”â”œâ”€â”€â”   â”¼â”œâ”€â”€â”¤â””â”€â”€â”¤   â”¼â”€â”¼â””â”¼â”¼â”
â””â”€â”€â”˜  â”´ â””â”€â”€ â””â”€â”€â”˜   â”´ â”€â”€â”˜â””â”€â”€â”˜   â”´â””â”€â”€â”˜ â”€â”€â”˜      â””â”¼â”¼â”˜
"""]
add_font("Thin 4x3",Thin4x3Font)

class HalfBlock5x4Font(Font):
    height = 4
    data = [u"""
00000111112222233333444445555566666777778888899999  !!
â–„â–€â–€â–„  â–„â–ˆ  â–„â–€â–€â–„ â–„â–€â–€â–„ â–„  â–ˆ â–ˆâ–€â–€â–€ â–„â–€â–€  â–€â–€â–€â–ˆ â–„â–€â–€â–„ â–„â–€â–€â–„   â–ˆ
â–ˆ  â–ˆ   â–ˆ    â–„â–€   â–„â–€ â–ˆâ–„â–„â–ˆ â–ˆâ–„â–„  â–ˆâ–„â–„    â–â–Œ â–€â–„â–„â–€ â–€â–„â–„â–ˆ   â–ˆ
â–ˆ  â–ˆ   â–ˆ  â–„â–€   â–„  â–ˆ    â–ˆ    â–ˆ â–ˆ  â–ˆ   â–ˆ  â–ˆ  â–ˆ    â–ˆ   â–€
 â–€â–€   â–€â–€â–€ â–€â–€â–€â–€  â–€â–€     â–€ â–€â–€â–€   â–€â–€    â–€   â–€â–€   â–€â–€    â–€
""", u'''
"""######$$$$$$%%%%%&amp;&amp;&amp;&amp;&amp;((()))******++++++,,,-----..////:::;;
â–ˆâ–â–Œ â–ˆ â–ˆ  â–„â–€â–ˆâ–€â–„ â–â–Œâ–â–Œ â–„â–€â–„   â–ˆ â–ˆ   â–„ â–„    â–„              â–â–Œ
   â–€â–ˆâ–€â–ˆâ–€ â–€â–„â–ˆâ–„    â–ˆ  â–€â–„â–€  â–â–Œ â–â–Œ â–„â–„â–ˆâ–„â–„ â–„â–„â–ˆâ–„â–„    â–„â–„â–„â–„    â–ˆ  â–€  â–€
   â–€â–ˆâ–€â–ˆâ–€ â–„ â–ˆ â–ˆ  â–â–Œâ–„ â–ˆ â–€â–„â–Œâ–â–Œ â–â–Œ  â–„â–€â–„    â–ˆ             â–â–Œ  â–€ â–„â–€
    â–€ â–€   â–€â–€â–€   â–€ â–€  â–€â–€   â–€ â–€              â–„â–€      â–€ â–€
''', r"""
&lt;&lt;&lt;&lt;&lt;=====&gt;&gt;&gt;&gt;&gt;?????@@@@@@[[[[\\\\]]]]^^^^____```{{{{||}}}}~~~~''Â´Â´Â´
  â–„â–€      â–€â–„   â–„â–€â–€â–„ â–„â–€â–€â–€â–„ â–ˆâ–€â–€ â–â–Œ  â–€â–€â–ˆ â–„â–€â–„     â–€â–„  â–„â–€ â–ˆ â–€â–„   â–„  â–ˆ â–„â–€
â–„â–€   â–€â–€â–€â–€   â–€â–„   â–„â–€ â–ˆ â–ˆâ–€â–ˆ â–ˆ    â–ˆ    â–ˆ            â–„â–€  â–ˆ  â–€â–„ â–â–â–Œâ–Œ
 â–€â–„  â–€â–€â–€â–€  â–„â–€    â–€  â–ˆ â–€â–€â–€ â–ˆ    â–â–Œ   â–ˆ             â–ˆ  â–ˆ  â–ˆ    â–€
   â–€      â–€      â–€   â–€â–€â–€  â–€â–€â–€   â–€ â–€â–€â–€     â–€â–€â–€â–€     â–€ â–€ â–€
""", u'''
AAAAABBBBBCCCCCDDDDDEEEEEFFFFFGGGGGHHHHHIIJJJJJKKKKK
â–„â–€â–€â–„ â–ˆâ–€â–€â–„ â–„â–€â–€â–„ â–ˆâ–€â–€â–„ â–ˆâ–€â–€â–€ â–ˆâ–€â–€â–€ â–„â–€â–€â–„ â–ˆ  â–ˆ â–ˆ    â–ˆ â–ˆ  â–ˆ
â–ˆâ–„â–„â–ˆ â–ˆâ–„â–„â–€ â–ˆ    â–ˆ  â–ˆ â–ˆâ–„â–„  â–ˆâ–„â–„  â–ˆ    â–ˆâ–„â–„â–ˆ â–ˆ    â–ˆ â–ˆâ–„â–€
â–ˆ  â–ˆ â–ˆ  â–ˆ â–ˆ  â–„ â–ˆ  â–ˆ â–ˆ    â–ˆ    â–ˆ â–€â–ˆ â–ˆ  â–ˆ â–ˆ â–„  â–ˆ â–ˆ â–€â–„
â–€  â–€ â–€â–€â–€   â–€â–€  â–€â–€â–€  â–€â–€â–€â–€ â–€     â–€â–€  â–€  â–€ â–€  â–€â–€  â–€  â–€
''', u'''
LLLLLMMMMMMNNNNNOOOOOPPPPPQQQQQRRRRRSSSSSTTTTT
â–ˆ    â–ˆâ–„ â–„â–ˆ â–ˆâ–ˆ â–ˆ â–„â–€â–€â–„ â–ˆâ–€â–€â–„ â–„â–€â–€â–„ â–ˆâ–€â–€â–„ â–„â–€â–€â–„ â–€â–€â–ˆâ–€â–€
â–ˆ    â–ˆ â–€ â–ˆ â–ˆâ–â–Œâ–ˆ â–ˆ  â–ˆ â–ˆâ–„â–„â–€ â–ˆ  â–ˆ â–ˆâ–„â–„â–€ â–€â–„â–„    â–ˆ
â–ˆ    â–ˆ   â–ˆ â–ˆ â–ˆâ–ˆ â–ˆ  â–ˆ â–ˆ    â–ˆ â–Œâ–ˆ â–ˆ  â–ˆ â–„  â–ˆ   â–ˆ
â–€â–€â–€â–€ â–€   â–€ â–€  â–€  â–€â–€  â–€     â–€â–€â–Œ â–€  â–€  â–€â–€    â–€
''', u'''
UUUUUVVVVVVWWWWWWXXXXXXYYYYYYZZZZZ
â–ˆ  â–ˆ â–ˆ   â–ˆ â–ˆ   â–ˆ â–ˆ   â–ˆ â–ˆ   â–ˆ â–€â–€â–€â–ˆ
â–ˆ  â–ˆ â–â–Œ â–â–Œ â–ˆ â–„ â–ˆ  â–€â–„â–€   â–€â–„â–€   â–„â–€
â–ˆ  â–ˆ  â–ˆ â–ˆ  â–â–Œâ–ˆâ–â–Œ â–„â–€ â–€â–„   â–ˆ   â–ˆ
 â–€â–€    â–€    â–€ â–€  â–€   â–€   â–€   â–€â–€â–€â–€
''', u'''
aaaaabbbbbcccccdddddeeeeeffffggggghhhhhiijjjjkkkkk
     â–ˆ            â–ˆ       â–„â–€â–€     â–ˆ    â–„   â–„ â–ˆ
 â–€â–€â–„ â–ˆâ–€â–€â–„ â–„â–€â–€â–„ â–„â–€â–€â–ˆ â–„â–€â–€â–„ â–€â–ˆâ–€ â–„â–€â–€â–„ â–ˆâ–€â–€â–„ â–„   â–„ â–ˆ â–„â–€
â–„â–€â–€â–ˆ â–ˆ  â–ˆ â–ˆ  â–„ â–ˆ  â–ˆ â–ˆâ–€â–€   â–ˆ  â–€â–„â–„â–ˆ â–ˆ  â–ˆ â–ˆ   â–ˆ â–ˆâ–€â–„
 â–€â–€â–€ â–€â–€â–€   â–€â–€   â–€â–€â–€  â–€â–€   â–€   â–„â–„â–€ â–€  â–€ â–€ â–„â–„â–€ â–€  â–€
''', u'''
llmmmmmmnnnnnooooopppppqqqqqrrrrssssstttt
â–ˆ                                     â–ˆ
â–ˆ â–ˆâ–€â–„â–€â–„ â–ˆâ–€â–€â–„ â–„â–€â–€â–„ â–ˆâ–€â–€â–„ â–„â–€â–€â–ˆ â–ˆâ–€â–€ â–„â–€â–€â–€ â–€â–ˆâ–€
â–ˆ â–ˆ â–ˆ â–ˆ â–ˆ  â–ˆ â–ˆ  â–ˆ â–ˆ  â–ˆ â–ˆ  â–ˆ â–ˆ    â–€â–€â–„  â–ˆ
â–€ â–€   â–€ â–€  â–€  â–€â–€  â–ˆâ–€â–€   â–€â–€â–ˆ â–€   â–€â–€â–€    â–€
''', u'''
uuuuuvvvvvwwwwwwxxxxxxyyyyyzzzzz

â–ˆ  â–ˆ â–ˆ  â–ˆ â–ˆ â–„ â–ˆ â–€â–„ â–„â–€ â–ˆ  â–ˆ â–€â–€â–ˆâ–€
â–ˆ  â–ˆ â–â–Œâ–â–Œ â–â–Œâ–ˆâ–â–Œ  â–„â–€â–„  â–€â–„â–„â–ˆ â–„â–€
 â–€â–€   â–€â–€   â–€ â–€  â–€   â–€  â–„â–„â–€ â–€â–€â–€â–€
''']
add_font("Half Block 5x4",HalfBlock5x4Font)

class HalfBlock6x5Font(Font):
    height = 5
    data = [u"""
000000111111222222333333444444555555666666777777888888999999  ..::////
â–„â–€â–€â–€â–„  â–„â–ˆ   â–„â–€â–€â–€â–„ â–„â–€â–€â–€â–„ â–„  â–ˆ  â–ˆâ–€â–€â–€â–€ â–„â–€â–€â–€  â–€â–€â–€â–€â–ˆ â–„â–€â–€â–€â–„ â–„â–€â–€â–€â–„         â–ˆ
â–ˆ   â–ˆ   â–ˆ       â–ˆ     â–ˆ â–ˆ  â–ˆ  â–ˆ     â–ˆ        â–â–Œ â–ˆ   â–ˆ â–ˆ   â–ˆ     â–€  â–â–Œ
â–ˆ   â–ˆ   â–ˆ     â–„â–€    â–€â–€â–„ â–€â–€â–€â–ˆâ–€ â–€â–€â–€â–€â–„ â–ˆâ–€â–€â–€â–„    â–ˆ  â–„â–€â–€â–€â–„  â–€â–€â–€â–ˆ     â–„  â–ˆ
â–ˆ   â–ˆ   â–ˆ   â–„â–€    â–„   â–ˆ    â–ˆ      â–ˆ â–ˆ   â–ˆ   â–â–Œ  â–ˆ   â–ˆ     â–ˆ       â–â–Œ
 â–€â–€â–€   â–€â–€â–€  â–€â–€â–€â–€â–€  â–€â–€â–€     â–€  â–€â–€â–€â–€   â–€â–€â–€    â–€    â–€â–€â–€   â–€â–€â–€    â–€   â–€
"""]
add_font("Half Block 6x5",HalfBlock6x5Font)

class HalfBlockHeavy6x5Font(Font):
    height = 5
    data = [u"""
000000111111222222333333444444555555666666777777888888999999  ..::////
â–„â–ˆâ–ˆâ–ˆâ–„  â–â–ˆâ–Œ  â–„â–ˆâ–ˆâ–ˆâ–„ â–„â–ˆâ–ˆâ–ˆâ–„    â–ˆâ–Œ â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ â–„â–ˆâ–ˆâ–ˆâ–„ â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ â–„â–ˆâ–ˆâ–ˆâ–„ â–„â–ˆâ–ˆâ–ˆâ–„         â–ˆâ–Œ
â–ˆâ–Œ â–â–ˆ  â–€â–ˆâ–Œ  â–€  â–â–ˆ â–€  â–â–ˆ â–ˆâ–Œ â–ˆâ–Œ â–ˆâ–Œ    â–ˆâ–Œ       â–ˆâ–Œ â–ˆâ–Œ â–â–ˆ â–ˆâ–Œ â–â–ˆ     â–ˆâ–Œ â–â–ˆ
â–ˆâ–Œ â–â–ˆ   â–ˆâ–Œ    â–„â–ˆâ–€   â–ˆâ–ˆâ–Œ â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ â–ˆâ–ˆâ–ˆâ–ˆâ–„ â–ˆâ–ˆâ–ˆâ–ˆâ–„   â–â–ˆ  â–â–ˆâ–ˆâ–ˆâ–Œ â–€â–ˆâ–ˆâ–ˆâ–ˆ        â–ˆâ–Œ
â–ˆâ–Œ â–â–ˆ   â–ˆâ–Œ  â–„â–ˆâ–€   â–„  â–â–ˆ    â–ˆâ–Œ    â–â–ˆ â–ˆâ–Œ â–â–ˆ   â–ˆâ–Œ  â–ˆâ–Œ â–â–ˆ    â–â–ˆ     â–ˆâ–Œâ–â–ˆ
â–€â–ˆâ–ˆâ–ˆâ–€  â–ˆâ–ˆâ–ˆâ–Œ â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ â–€â–ˆâ–ˆâ–ˆâ–€    â–ˆâ–Œ â–ˆâ–ˆâ–ˆâ–ˆâ–€ â–€â–ˆâ–ˆâ–ˆâ–€  â–â–ˆ   â–€â–ˆâ–ˆâ–ˆâ–€ â–€â–ˆâ–ˆâ–ˆâ–€   â–ˆâ–Œ  â–ˆâ–Œ
"""]
add_font("Half Block Heavy 6x5",HalfBlockHeavy6x5Font)

class Thin6x6Font(Font):
    height = 6
    data = [u"""
000000111111222222333333444444555555666666777777888888999999''
â”Œâ”€â”€â”€â”   â”   â”Œâ”€â”€â”€â” â”Œâ”€â”€â”€â”    â”  â”Œâ”€â”€â”€  â”Œâ”€â”€â”€  â”Œâ”€â”€â”€â” â”Œâ”€â”€â”€â” â”Œâ”€â”€â”€â” â”‚
â”‚   â”‚   â”‚       â”‚     â”‚ â”Œ  â”‚  â”‚     â”‚         â”‚ â”‚   â”‚ â”‚   â”‚
â”‚ / â”‚   â”‚   â”Œâ”€â”€â”€â”˜    â”€â”¤ â””â”€â”€â”¼â”€ â””â”€â”€â”€â” â”œâ”€â”€â”€â”     â”¼ â”œâ”€â”€â”€â”¤ â””â”€â”€â”€â”¤
â”‚   â”‚   â”‚   â”‚         â”‚    â”‚      â”‚ â”‚   â”‚     â”‚ â”‚   â”‚     â”‚
â””â”€â”€â”€â”˜   â”´   â””â”€â”€â”€  â””â”€â”€â”€â”˜    â”´   â”€â”€â”€â”˜ â””â”€â”€â”€â”˜     â”´ â””â”€â”€â”€â”˜  â”€â”€â”€â”˜

""", r'''
!!   """######$$$$$$%%%%%%&amp;&amp;&amp;&amp;&amp;&amp;((()))******++++++
â”‚    â”‚â”‚  â”Œ â”Œ  â”Œâ”€â”¼â”€â” â”Œâ”  /  â”Œâ”€â”   / \
â”‚       â”€â”¼â”€â”¼â”€ â”‚ â”‚   â””â”˜ /   â”‚ â”‚  â”‚   â”‚  \ /    â”‚
â”‚        â”‚ â”‚  â””â”€â”¼â”€â”   /   â”Œâ”€\â”˜  â”‚   â”‚ â”€â”€Xâ”€â”€ â”€â”€â”¼â”€â”€
â”‚       â”€â”¼â”€â”¼â”€   â”‚ â”‚  / â”Œâ” â”‚  \, â”‚   â”‚  / \    â”‚
.        â”˜ â”˜  â””â”€â”¼â”€â”˜ /  â””â”˜ â””â”€â”€â”€\  \ /

''', r"""
,,-----..//////::;;&lt;&lt;&lt;&lt;=====&gt;&gt;&gt;&gt;??????@@@@@@
             /                  â”Œâ”€â”€â”€â” â”Œâ”€â”€â”€â”
            /  . .   / â”€â”€â”€â”€ \       â”‚ â”‚â”Œâ”€â”€â”¤
  â”€â”€â”€â”€     /        /        \    â”Œâ”€â”˜ â”‚â”‚  â”‚
          /    . ,  \  â”€â”€â”€â”€  /    â”‚   â”‚â””â”€â”€â”˜
,      . /           \      /     .   â””â”€â”€â”€â”˜

""", r"""
[[\\\\\\]]^^^____``{{||}}~~~~~~
â”Œ \     â” /\     \ â”Œ â”‚ â”
â”‚  \    â”‚          â”‚ â”‚ â”‚ â”Œâ”€â”
â”‚   \   â”‚          â”¤ â”‚ â”œ   â””â”€â”˜
â”‚    \  â”‚          â”‚ â”‚ â”‚
â””     \ â”˜    â”€â”€â”€â”€  â”” â”‚ â”˜

""", u"""
AAAAAABBBBBBCCCCCCDDDDDDEEEEEEFFFFFFGGGGGGHHHHHHIIJJJJJJ
â”Œâ”€â”€â”€â” â”¬â”€â”€â”€â” â”Œâ”€â”€â”€â” â”¬â”€â”€â”€â” â”¬â”€â”€â”€â” â”¬â”€â”€â”€â” â”Œâ”€â”€â”€â” â”¬   â”¬ â”¬     â”¬
â”‚   â”‚ â”‚   â”‚ â”‚     â”‚   â”‚ â”‚     â”‚     â”‚     â”‚   â”‚ â”‚     â”‚
â”œâ”€â”€â”€â”¤ â”œâ”€â”€â”€â”¤ â”‚     â”‚   â”‚ â”œâ”€â”€   â”œâ”€â”€   â”‚ â”€â”€â”¬ â”œâ”€â”€â”€â”¤ â”‚     â”‚
â”‚   â”‚ â”‚   â”‚ â”‚     â”‚   â”‚ â”‚     â”‚     â”‚   â”‚ â”‚   â”‚ â”‚ â”¬   â”‚
â”´   â”´ â”´â”€â”€â”€â”˜ â””â”€â”€â”€â”˜ â”´â”€â”€â”€â”˜ â”´â”€â”€â”€â”˜ â”´     â””â”€â”€â”€â”˜ â”´   â”´ â”´ â””â”€â”€â”€â”˜

""", u"""
KKKKKKLLLLLLMMMMMMNNNNNNOOOOOOPPPPPPQQQQQQRRRRRRSSSSSS
â”¬   â”¬ â”¬     â”Œâ”€â”¬â”€â” â”¬â”€â” â”¬ â”Œâ”€â”€â”€â” â”¬â”€â”€â”€â” â”Œâ”€â”€â”€â” â”¬â”€â”€â”€â” â”Œâ”€â”€â”€â”
â”‚ â”Œâ”€â”˜ â”‚     â”‚ â”‚ â”‚ â”‚ â”‚ â”‚ â”‚   â”‚ â”‚   â”‚ â”‚   â”‚ â”‚   â”‚ â”‚
â”œâ”€â”´â”  â”‚     â”‚ â”‚ â”‚ â”‚ â”‚ â”‚ â”‚   â”‚ â”œâ”€â”€â”€â”˜ â”‚   â”‚ â”œâ”€â”¬â”€â”˜ â””â”€â”€â”€â”
â”‚  â””â” â”‚     â”‚   â”‚ â”‚ â”‚ â”‚ â”‚   â”‚ â”‚     â”‚  â”â”‚ â”‚ â””â”€â”     â”‚
â”´   â”´ â”´â”€â”€â”€â”˜ â”´   â”´ â”´ â””â”€â”´ â””â”€â”€â”€â”˜ â”´     â””â”€â”€â”¼â”˜ â”´   â”´ â””â”€â”€â”€â”˜
                                       â””
""", u"""
TTTTTTUUUUUUVVVVVVWWWWWWXXXXXXYYYYYYZZZZZZ
â”Œâ”€â”¬â”€â” â”¬   â”¬ â”¬   â”¬ â”¬   â”¬ â”¬   â”¬ â”¬   â”¬ â”Œâ”€â”€â”€â”
  â”‚   â”‚   â”‚ â”‚   â”‚ â”‚   â”‚ â””â” â”Œâ”˜ â”‚   â”‚   â”Œâ”€â”˜
  â”‚   â”‚   â”‚ â”‚   â”‚ â”‚ â”‚ â”‚  â”œâ”€â”¤  â””â”€â”¬â”€â”˜  â”Œâ”˜
  â”‚   â”‚   â”‚ â””â” â”Œâ”˜ â”‚ â”‚ â”‚ â”Œâ”˜ â””â”   â”‚   â”Œâ”˜
  â”´   â””â”€â”€â”€â”˜  â””â”€â”˜  â””â”€â”´â”€â”˜ â”´   â”´   â”´   â””â”€â”€â”€â”˜

""", u"""
aaaaaabbbbbbccccccddddddeeeeeefffgggggghhhhhhiijjj
                              â”Œâ”€â”
      â”‚               â”‚       â”‚        â”‚     .  .
â”Œâ”€â”€â”€â” â”œâ”€â”€â”€â” â”Œâ”€â”€â”€â” â”Œâ”€â”€â”€â”¤ â”Œâ”€â”€â”€â” â”¼  â”Œâ”€â”€â”€â” â”œâ”€â”€â”€â” â”  â”
â”Œâ”€â”€â”€â”¤ â”‚   â”‚ â”‚     â”‚   â”‚ â”œâ”€â”€â”€â”˜ â”‚  â”‚   â”‚ â”‚   â”‚ â”‚  â”‚
â””â”€â”€â”€â”´ â””â”€â”€â”€â”˜ â””â”€â”€â”€â”˜ â””â”€â”€â”€â”˜ â””â”€â”€â”€â”˜ â”´  â””â”€â”€â”€â”¤ â”´   â”´ â”´  â”‚
                                 â””â”€â”€â”€â”˜         â”€â”˜
""", u"""
kkkkkkllmmmmmmnnnnnnooooooppppppqqqqqqrrrrrssssss

â”‚     â”‚
â”‚ â”Œâ”€  â”‚ â”¬â”€â”¬â”€â” â”¬â”€â”€â”€â” â”Œâ”€â”€â”€â” â”Œâ”€â”€â”€â” â”Œâ”€â”€â”€â” â”¬â”€â”€â” â”Œâ”€â”€â”€â”
â”œâ”€â”´â”  â”‚ â”‚ â”‚ â”‚ â”‚   â”‚ â”‚   â”‚ â”‚   â”‚ â”‚   â”‚ â”‚    â””â”€â”€â”€â”
â”´  â””â”€ â”” â”´   â”´ â”´   â”´ â””â”€â”€â”€â”˜ â”œâ”€â”€â”€â”˜ â””â”€â”€â”€â”¤ â”´    â””â”€â”€â”€â”˜
                          â”‚         â”‚
""", u"""
ttttuuuuuuvvvvvvwwwwwwxxxxxxyyyyyyzzzzzz

 â”‚
â”€â”¼â”€ â”¬   â”¬ â”¬   â”¬ â”¬   â”¬ â”€â” â”Œâ”€ â”¬   â”¬ â”€â”€â”€â”€â”¬
 â”‚  â”‚   â”‚ â””â” â”Œâ”˜ â”‚ â”‚ â”‚  â”œâ”€â”¤  â”‚   â”‚ â”Œâ”€â”€â”€â”˜
 â””â”€ â””â”€â”€â”€â”´  â””â”€â”˜  â””â”€â”´â”€â”˜ â”€â”˜ â””â”€ â””â”€â”€â”€â”¤ â”´â”€â”€â”€â”€
                            â””â”€â”€â”€â”˜
"""]
add_font("Thin 6x6",Thin6x6Font)


class HalfBlock7x7Font(Font):
    height = 7
    data = [u"""
0000000111111122222223333333444444455555556666666777777788888889999999'''
 â–„â–ˆâ–ˆâ–ˆâ–„   â–â–ˆâ–Œ   â–„â–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„     â–ˆâ–Œ â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆ
â–â–ˆ   â–ˆâ–Œ  â–€â–ˆâ–Œ  â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ  â–ˆâ–Œ â–â–ˆ     â–â–ˆ         â–â–ˆ â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ
â–â–ˆ â– â–ˆâ–Œ   â–ˆâ–Œ       â–ˆâ–Œ   â–â–ˆâ–ˆ â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„     â–ˆâ–Œ  â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ  â–€â–ˆâ–ˆâ–ˆâ–ˆâ–Œ
â–â–ˆ â–Œ â–ˆâ–Œ   â–ˆâ–Œ     â–„â–ˆâ–€      â–ˆâ–Œ    â–ˆâ–Œ      â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ   â–â–ˆ  â–â–ˆ   â–ˆâ–Œ     â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œ   â–ˆâ–Œ   â–„â–ˆâ–€   â–â–ˆ   â–ˆâ–Œ    â–ˆâ–Œ      â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ   â–ˆâ–Œ  â–â–ˆ   â–ˆâ–Œ     â–ˆâ–Œ
 â–€â–ˆâ–ˆâ–ˆâ–€   â–ˆâ–ˆâ–ˆâ–Œ â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–€â–ˆâ–ˆâ–ˆâ–€     â–ˆâ–Œ â–â–ˆâ–ˆâ–ˆâ–ˆâ–€  â–€â–ˆâ–ˆâ–ˆâ–€   â–â–ˆ    â–€â–ˆâ–ˆâ–ˆâ–€  â–€â–ˆâ–ˆâ–ˆâ–€

""", u'''
!!!   """""#######$$$$$$$%%%%%%%&amp;&amp;&amp;&amp;&amp;&amp;&amp;(((())))*******++++++
â–â–ˆ    â–â–ˆ â–ˆâ–Œ â–â–ˆ â–ˆâ–Œ    â–ˆ    â–„  â–ˆâ–Œ   â–„â–ˆâ–„    â–ˆâ–Œâ–â–ˆ   â–„â–„ â–„â–„
â–â–ˆ    â–â–ˆ â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–Œâ–â–ˆ   â–â–ˆ â–ˆâ–Œ  â–â–ˆ  â–ˆâ–Œ  â–€â–ˆâ–„â–ˆâ–€   â–â–ˆ
â–â–ˆ          â–â–ˆ â–ˆâ–Œ â–â–ˆâ–„â–ˆâ–„â–„  â–€ â–ˆâ–Œ    â–ˆâ–ˆâ–ˆ   â–ˆâ–Œ  â–â–ˆ â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–ˆâ–ˆâ–ˆâ–ˆâ–Œ
â–â–ˆ         â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–€â–€â–ˆâ–€â–ˆâ–Œ  â–â–ˆ â–„  â–ˆâ–ˆâ–ˆâ–Œâ–„  â–ˆâ–Œ  â–â–ˆ  â–„â–ˆâ–€â–ˆâ–„   â–â–ˆ
            â–â–ˆ â–ˆâ–Œ  â–€â–ˆâ–ˆâ–ˆâ–€   â–ˆâ–Œâ–â–ˆâ–Œâ–â–ˆ  â–ˆâ–Œ  â–â–ˆ  â–ˆâ–Œ  â–€â–€ â–€â–€
â–â–ˆ                   â–ˆ    â–â–ˆ  â–€  â–€â–ˆâ–ˆâ–€â–ˆâ–Œ  â–ˆâ–Œâ–â–ˆ

''', u"""
,,,------.../////:::;;;&lt;&lt;&lt;&lt;&lt;&lt;&lt;======&gt;&gt;&gt;&gt;&gt;&gt;&gt;???????@@@@@@@
               â–ˆâ–Œ          â–„â–ˆâ–Œ      â–â–ˆâ–„     â–„â–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„
              â–â–ˆ â–â–ˆ â–â–ˆ   â–„â–ˆâ–€  â–â–ˆâ–ˆâ–ˆâ–ˆâ–Œ  â–€â–ˆâ–„  â–â–ˆ   â–ˆâ–Œâ–â–ˆ â–„â–„â–ˆâ–Œ
   â–â–ˆâ–ˆâ–ˆâ–ˆâ–Œ     â–ˆâ–Œ       â–â–ˆâ–ˆ              â–ˆâ–ˆâ–Œ    â–ˆâ–Œ â–â–ˆâ–â–ˆâ–€â–ˆâ–Œ
             â–â–ˆ  â–â–ˆ â–â–ˆ   â–€â–ˆâ–„  â–â–ˆâ–ˆâ–ˆâ–ˆâ–Œ  â–„â–ˆâ–€     â–ˆâ–Œ  â–â–ˆâ–â–ˆâ–„â–ˆâ–Œ
             â–ˆâ–Œ     â–€      â–€â–ˆâ–Œ      â–â–ˆâ–€           â–â–ˆ â–€â–€â–€
â–â–ˆ       â–â–ˆ â–â–ˆ                                â–ˆâ–Œ   â–€â–ˆâ–ˆâ–ˆâ–€
â–€
""", r"""
[[[[\\\\\]]]]^^^^^^^_____```{{{{{|||}}}}}~~~~~~~Â´Â´Â´
â–â–ˆâ–ˆâ–Œâ–â–ˆ   â–â–ˆâ–ˆâ–Œ  â–â–ˆâ–Œ       â–â–ˆ    â–ˆâ–Œâ–â–ˆ â–â–ˆ           â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œ    â–ˆâ–Œ â–â–ˆ â–ˆâ–Œ       â–ˆâ–Œ  â–ˆâ–Œ â–â–ˆ  â–â–ˆ   â–„â–„    â–â–ˆ
â–â–ˆ   â–â–ˆ    â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ         â–„â–ˆâ–Œ â–â–ˆ  â–â–ˆâ–„ â–â–€â–€â–ˆâ–„â–„â–Œ
â–â–ˆ    â–ˆâ–Œ   â–ˆâ–Œ                â–€â–ˆâ–Œ â–â–ˆ  â–â–ˆâ–€     â–€â–€
â–â–ˆ    â–â–ˆ   â–ˆâ–Œ                 â–ˆâ–Œ â–â–ˆ  â–â–ˆ
â–â–ˆâ–ˆâ–Œ   â–ˆâ–Œâ–â–ˆâ–ˆâ–Œ       â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ      â–ˆâ–Œâ–â–ˆ â–â–ˆ

""", u"""
AAAAAAABBBBBBBCCCCCCCDDDDDDDEEEEEEEFFFFFFFGGGGGGGHHHHHHHIIIIJJJJJJJ
 â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆ   â–ˆâ–Œ â–ˆâ–ˆâ–Œ     â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ     â–â–ˆ     â–â–ˆ   â–ˆâ–Œ â–â–ˆ      â–ˆâ–Œ
â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ â–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆ  â–â–ˆâ–ˆâ–ˆâ–ˆ  â–â–ˆ     â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–â–ˆ      â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ     â–â–ˆ  â–ˆâ–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ â–â–ˆ      â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ â–â–ˆ â–â–ˆ   â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–€  â–€â–ˆâ–ˆâ–ˆâ–€ â–â–ˆâ–ˆâ–ˆâ–ˆâ–€ â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆ      â–€â–ˆâ–ˆâ–ˆâ–€ â–â–ˆ   â–ˆâ–Œ â–ˆâ–ˆâ–Œ â–€â–ˆâ–ˆâ–ˆâ–€

""", u"""
KKKKKKKLLLLLLLMMMMMMMMNNNNNNNOOOOOOOPPPPPPPQQQQQQQRRRRRRRSSSSSSS
â–â–ˆ   â–ˆâ–Œâ–â–ˆ      â–„â–ˆâ–Œâ–â–ˆâ–„ â–â–ˆâ–ˆ  â–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„
â–â–ˆ  â–ˆâ–Œ â–â–ˆ     â–â–ˆ â–â–Œ â–ˆâ–Œâ–â–ˆâ–ˆâ–Œ â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ
â–â–ˆâ–„â–ˆâ–Œ  â–â–ˆ     â–â–ˆ â–â–Œ â–ˆâ–Œâ–â–ˆâ–â–ˆ â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–€ â–â–ˆ   â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆ  â–€â–ˆâ–ˆâ–ˆâ–„
â–â–ˆâ–€â–ˆâ–Œ  â–â–ˆ     â–â–ˆ    â–ˆâ–Œâ–â–ˆ â–ˆâ–Œâ–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ     â–ˆâ–Œ
â–â–ˆ  â–ˆâ–Œ â–â–ˆ     â–â–ˆ    â–ˆâ–Œâ–â–ˆ â–â–ˆâ–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ â–ˆâ–Œâ–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ     â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆ    â–ˆâ–Œâ–â–ˆ  â–ˆâ–ˆâ–Œ â–€â–ˆâ–ˆâ–ˆâ–€ â–â–ˆ      â–€â–ˆâ–ˆâ–ˆâ–€ â–â–ˆ   â–ˆâ–Œ â–€â–ˆâ–ˆâ–ˆâ–€
                                               â–€â–€
""", u"""
TTTTTTTUUUUUUUVVVVVVVWWWWWWWWXXXXXXXYYYYYYYZZZZZZZ
 â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ    â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ â–ˆâ–Œ  â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ
   â–ˆâ–Œ  â–â–ˆ   â–ˆâ–Œ â–ˆâ–Œ â–â–ˆ â–â–ˆ    â–ˆâ–Œ â–â–ˆ â–ˆâ–Œ  â–â–ˆ â–â–ˆ     â–ˆâ–Œ
   â–ˆâ–Œ  â–â–ˆ   â–ˆâ–Œ â–â–ˆ â–ˆâ–Œ â–â–ˆ    â–ˆâ–Œ  â–â–ˆâ–Œ    â–â–ˆâ–ˆ     â–ˆâ–Œ
   â–ˆâ–Œ  â–â–ˆ   â–ˆâ–Œ  â–ˆâ–ˆâ–ˆ  â–â–ˆ â–â–Œ â–ˆâ–Œ  â–ˆâ–ˆâ–ˆ     â–ˆâ–Œ    â–ˆâ–Œ
   â–ˆâ–Œ  â–â–ˆ   â–ˆâ–Œ  â–â–ˆâ–Œ  â–â–ˆ â–â–Œ â–ˆâ–Œ â–ˆâ–Œ â–â–ˆ    â–ˆâ–Œ   â–ˆâ–Œ
   â–ˆâ–Œ   â–€â–ˆâ–ˆâ–ˆâ–€    â–ˆ    â–€â–ˆâ–Œâ–â–ˆâ–€ â–â–ˆ   â–ˆâ–Œ   â–ˆâ–Œ  â–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ

""", u"""
aaaaaaabbbbbbbcccccccdddddddeeeeeeefffffggggggghhhhhhhiiijjjj
       â–â–ˆ                 â–ˆâ–Œ         â–„â–ˆâ–Œ       â–â–ˆ      â–ˆâ–Œ  â–ˆâ–Œ
       â–â–ˆ                 â–ˆâ–Œ        â–â–ˆ         â–â–ˆ
 â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆ  â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–Œ â–â–ˆâ–Œ
  â–„â–„â–„â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆâ–„â–„â–„â–ˆâ–Œ â–â–ˆ  â–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ â–ˆâ–Œ  â–ˆâ–Œ
â–â–ˆâ–€â–€â–€â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ     â–â–ˆ   â–ˆâ–Œâ–â–ˆâ–€â–€â–€   â–â–ˆ  â–â–ˆâ–„â–„â–„â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ â–ˆâ–Œ  â–ˆâ–Œ
 â–€â–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–€  â–€â–ˆâ–ˆâ–ˆâ–€  â–€â–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–€â–ˆâ–ˆâ–ˆâ–€  â–â–ˆ    â–€â–€â–€â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ â–ˆâ–Œ  â–ˆâ–Œ
                                         â–€â–ˆâ–ˆâ–ˆâ–€           â–â–ˆâ–ˆ
""", u"""
kkkkkkkllllmmmmmmmmnnnnnnnooooooopppppppqqqqqqqrrrrrrsssssss
â–â–ˆ      â–ˆâ–ˆ
â–â–ˆ      â–â–ˆ
â–â–ˆ  â–„â–ˆâ–Œ â–â–ˆ  â–„â–ˆâ–Œâ–â–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–„ â–â–ˆâ–ˆâ–ˆâ–ˆâ–„  â–„â–ˆâ–ˆâ–ˆâ–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–Œ â–„â–ˆâ–ˆâ–ˆâ–„
â–â–ˆâ–„â–ˆâ–€   â–â–ˆ â–â–ˆ â–â–Œ â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ    â–â–ˆâ–„â–„â–„
â–â–ˆâ–€â–€â–ˆâ–„  â–â–ˆ â–â–ˆ â–â–Œ â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ      â–€â–€â–€â–ˆâ–Œ
â–â–ˆ   â–ˆâ–Œ â–â–ˆâ–Œâ–â–ˆ    â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œ â–€â–ˆâ–ˆâ–ˆâ–€ â–â–ˆâ–ˆâ–ˆâ–ˆâ–€  â–€â–ˆâ–ˆâ–ˆâ–ˆâ–Œâ–â–ˆ     â–€â–ˆâ–ˆâ–ˆâ–€
                                 â–â–ˆ          â–ˆâ–Œ
""", u"""
tttttuuuuuuuvvvvvvvwwwwwwwwxxxxxxxyyyyyyyzzzzzzz
  â–ˆâ–Œ
  â–ˆâ–Œ
 â–ˆâ–ˆâ–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ    â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆ   â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ
  â–ˆâ–Œ â–â–ˆ   â–ˆâ–Œ â–ˆâ–Œ â–â–ˆ â–â–ˆ    â–ˆâ–Œ â–€â–ˆâ–„â–ˆâ–€ â–â–ˆ   â–ˆâ–Œ   â–„â–ˆâ–€
  â–ˆâ–Œ â–â–ˆ   â–ˆâ–Œ  â–ˆâ–ˆâ–ˆ  â–â–ˆ â–â–Œ â–ˆâ–Œ â–„â–ˆâ–€â–ˆâ–„ â–â–ˆâ–„â–„â–„â–ˆâ–Œ â–„â–ˆâ–€
  â–ˆâ–Œ  â–€â–ˆâ–ˆâ–ˆâ–€   â–â–ˆâ–Œ   â–€â–ˆâ–Œâ–â–ˆâ–€ â–â–ˆ   â–ˆâ–Œ  â–€â–€â–€â–ˆâ–Œâ–â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–Œ
                                   â–€â–ˆâ–ˆâ–ˆâ–€
"""]
add_font("Half Block 7x7",HalfBlock7x7Font)


if __name__ == "__main__":
    l = get_all_fonts()
    all_ascii = "".join([chr(x) for x in range(32, 127)])
    print("Available Fonts:     (U) = UTF-8 required")
    print("----------------")
    for n,cls in l:
        f = cls()
        u = ""
        if f.utf8_required:
            u = "(U)"
        print(("%-20s %3s " % (n,u)), end=' ')
        c = f.characters()
        if c == all_ascii:
            print("Full ASCII")
        elif c.startswith(all_ascii):
            print("Full ASCII + " + c[len(all_ascii):])
        else:
            print("Characters: " + c)
</pre></body></html>