// linear framebuffer driver for QNX 8.0 by Pierre-Marie Baty <pm@pmbaty.com>
 
 
 
// compile and link with: cc -Wall fbwrite.c -lpng -o fbwrite
 
 
 
 
 
// standard C includes
 
#include <stdint.h>
 
#include <stdio.h>
 
#include <stdlib.h>
 
#include <string.h>
 
#include <errno.h>
 
#include <assert.h>
 
#include <ctype.h>
 
 
 
// platform-specific includes
 
#include <unistd.h> // POSIX
 
#include <sys/mman.h> // POSIX
 
#ifdef __QNXNTO__
 
#include <sys/neutrino.h> // QNX
 
#include <hw/inout.h> // QNX
 
#endif // __QNXNTO__
 
 
 
// the PNG library
 
#include <png.h>
 
 
 
 
 
/* codepage 837
 
================
 
 ☺☻♥♦♣♠•◘○◙♂♀♪♫☼
 
►◄↕‼¶§▬↨↑↓→←∟↔▲▼
 
 !"#$%&'()*+,-./
 
0123456789:;<=>?
 
@ABCDEFGHIJKLMNO
 
PQRSTUVWXYZ[\]^_
 
`abcdefghijklmno
 
pqrstuvwxyz{|}~⌂
 
ÇüéâäàåçêëèïîìÄÅ
 
ÉæÆôöòûùÿÖÜ¢£¥₧ƒ
 
áíóúñѪº¿⌐¬½¼¡«»
 
░▒▓│┤╡╢╖╕╣║╗╝╜╛┐
 
└┴┬├─┼╞╟╚╔╩╦╠═╬╧
 
╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀
 
αßΓπΣσµτΦΘΩδ∞φε∩
 
≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ 
 
================ */
 
 
 
 
 
// character tables
 
#define CHAR_PIXELS_W 8
 
#define CHAR_PIXELS_H 16
 
#define _ 0x00,
 
#define B 0xff,
 
static const uint8_t characters_table_16x16_8x16_bold[] = // https://www.youtube.com/watch?v=Tl7VfKYbRjg
 
{
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B _ B _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ B B B B _ _ _ B B B B _ _ _ _ B B B B B B _ B B B B B B B _ _ _ _ _ _ _ _
 
        B _ B _ _ _ _ _ B _ _ _ _ _ _ B B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ B B B _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _
 
        B _ B _ _ _ _ _ B _ B _ _ B _ B B B _ B B _ B B _ B B _ B B _ _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ B B _ B _ _ B B _ _ B B _ _ _ B B B B B B _ B B B B B B B _ _ _ B B _ _ _
 
        _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B B B B B B B B B B B B B B _ _ _ B B B _ _ _ _ _ B B B B _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ B B B B _ _ B B _ _ _ _ B B _ _ B B _ _ B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B B B _ B B _ B B
 
        _ _ B _ B _ _ _ B _ _ _ _ _ _ B B B B B B B B B B B B B B B B _ _ B B B B B _ _ B B B _ _ B B B B B B B B B B B _ _ _ B B _ _ _ B B B _ _ B B B _ B B _ _ B B _ B _ _ B B _ _ B _ B B B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B B B _ _
 
        _ _ B _ B _ _ _ B _ B B B B _ B B B _ _ _ _ B B B B B B B B B _ B B B B B B B _ B B B _ _ B B B B B B B B B B B _ _ B B B B _ _ B B _ _ _ _ B B _ B _ _ _ _ B _ B _ B B B B _ B B B _ _ B B _ _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B B B B _ _ B B B
 
        _ _ B _ B _ _ _ B _ _ B B _ _ B B B B _ _ B B B B B B B B B B _ _ B B B B B _ _ B B B _ _ B B B _ B B B B B B _ _ _ B B B B _ _ B B _ _ _ _ B B _ B _ _ _ _ B _ B _ B B B B _ B B B _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B B B _ _
 
        _ _ _ B B _ _ _ B _ _ _ _ _ _ B B B B B B B B B _ B B B B B _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B _ _ B B B _ B B _ _ B B _ B _ _ B B _ _ B B B _ _ B B _ _ _ B B B B B B _ _ B B B _ _ _ _ _ B B _ _ B B B B B _ B B _ B B
 
        _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B B B B B B B _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ B B B B _ _ B B _ _ _ _ B B B B _ _ B B _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B B _ _ B B B _ _ _ B B _ _ _
 
        _ _ _ _ B _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ B B B B _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ _ B B B _ _ B B _ _ _ _ B B _ _ _
 
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B B B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B B B _ _ _ _ _ _ _ _ _ B B B _ _ _ B B B B _ _ _ B B _ _ B B _ B B _ B B _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B B B B _ _ _ _ _ _ _ B B B B _ _ B B B B B B _ _ B B _ _ B B _ B B _ B B _ B B _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B B B B B B _
 
        B B B B B _ _ _ _ _ B B B B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B _ B B _ B B _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ _ _ _ _ B B B _ _ _ B B B B B B B _
 
        B B B B B B B _ B B B B B B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B B B _ B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B B _ _ _ _ B B B B B _ _
 
        B B B B B _ _ _ _ _ B B B B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B B B _ B B B B B B B _ B B _ _ _ _ _ _ B B B B B B B _ _ B B B B B _ _ _ B B B B B _ _
 
        B B B B _ _ _ _ _ _ _ B B B B _ _ B B B B B B _ _ B B _ _ B B _ _ _ _ B B _ B B _ B B _ B B _ _ B B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B B B B _ _ _ _ B B B _ _ _
 
        B B B _ _ _ _ _ _ _ _ _ B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ B B B _ _ _ B B B B B B B _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ B B B B B B B _ _ _ B _ B _ _ _ B B B B B B B _ _ _ B B B _ _ _
 
        B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ B B _ _ _ _ B B _ _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ B _ _ _ _
 
        B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ B B _ B B B B _ _ _ B B _ B B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B _ _ B _ _ _ B B _ B B _ _ B B _ _ _ _ B _ B B _ _ _ _ B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B B _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B B B B _ _ _ _ _ _ B B _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B B B B B B B _ B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ B _ _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B B B B _ _ B _ _ _ _ B B _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ B B B _ _ _ _ _ _ B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ B B _ _ B B B B B B B _ _ _ B B B _ _ _ B B B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _
 
        _ B B _ B B _ _ _ _ B B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B B _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _
 
        B B _ _ _ B B _ _ B B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _
 
        B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _
 
        B B _ B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B B B _ _ B B _ _ B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _
 
        B B _ B _ B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ B B B B B B B _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _
 
        B B _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B B B B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _
 
        B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _
 
        _ _ B B B _ _ _ _ B B B B B B _ B B B B B B B _ _ B B B B B _ _ _ _ _ B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ B B _ _ _ _ _ B B B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B B B B B _ _ _ _ B B B B _ _ B B B B B _ _ _ B B B B B B B _ B B B B B B B _ _ _ B B B B _ _ B B _ _ _ B B _ _ _ B B B B _ _ _ _ _ B B B B _ B B B _ _ B B _ B B B B _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _
 
        _ B B B B B _ _ _ _ B B B _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ B B B _ B B B _ B B B _ _ B B _ B B _ _ _ B B _
 
        B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ B _ _ B B _ _ B B _ _ B B _ _ _ B _ _ B B _ _ _ B _ B B _ _ _ _ B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ B B B B B B B _ B B B B _ B B _ B B _ _ _ B B _
 
        B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ B _ _ _ _ B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B B B B B B _ B B B B B B B _ B B _ _ _ B B _
 
        B B _ B B B B _ B B _ _ _ B B _ _ B B B B B _ _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B B B _ _ _ _ B B B B _ _ _ B B _ _ _ _ _ _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ B B _ B _ B B _ B B _ B B B B _ B B _ _ _ B B _
 
        B B _ B B B B _ B B B B B B B _ _ B B _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ B _ _ _ _ B B _ B _ _ _ B B _ B B B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ B B B _ B B _ _ _ B B _
 
        B B _ B B B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _
 
        B B _ B B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ _ B _ _ B B _ _ B B _ _ B B _ _ _ B _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _
 
        B B _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _
 
        _ B B B B B _ _ B B _ _ _ B B _ B B B B B B _ _ _ _ B B B B _ _ B B B B B _ _ _ B B B B B B B _ B B B B _ _ _ _ _ _ B B B _ B _ B B _ _ _ B B _ _ _ B B B B _ _ _ B B B B _ _ _ B B B _ _ B B _ B B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _
 
        B B B B B B _ _ _ B B B B B _ _ B B B B B B _ _ _ B B B B B _ _ _ B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B B B B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _
 
        _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ B _ B B _ B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B _ _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B B B B _ _ B B _ _ _ B B _ _ B B B B B _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ B _ B B _ _ B B B B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ B B _ B B _ _ B B B B B B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ _ B _ _ _ B B _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ B B _ B B B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ B B B _ _ _ B B B _ B B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B B B B _ _ _ _ _ B B B B B _ _ B B B _ _ B B _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ B B B B _ _ B B B B B B B _ _ _ B B B B _ _ _ _ _ _ _ _ B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ B B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B B _ _ _ _ _ B B B _ B B _ _ B B _ B B _ _ _ _ B B B _ _ _ _ _ _ _ B B B _ _ B B _ _ B B _ _ _ _ B B _ _ _ B B B _ B B _ _ B B _ B B B _ _ _ B B B B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B B B _ _ _ B B _ _ B B _ _ _ B B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B B B B B B _ _ B B _ _ B B _ B B _ _ _ B B _
 
        _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B B B B B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B B B _ _ _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
 
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B B B _ _ _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
 
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
 
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ B B _ _ _ B B _ B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _
 
        _ _ _ _ _ _ _ _ _ B B B _ B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B _ B B _ _ B B B B B _ _ _ B B B B _ _ _ _ B B B B B _ _ B B B _ _ B B _ _ _ B B B B _ _ _ _ _ _ _ B B _ B B B _ _ B B _ _ _ B B B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ B B B B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ B B B _ _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
 
        B B _ B B B _ _ _ B B B _ B B _ B B _ B B B _ _ _ B B B B B _ _ B B B B B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _
 
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B B _ B B _ B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _
 
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _
 
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _
 
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ B _ B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _
 
        _ B B _ _ B B _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ B B B B B B B _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _
 
        _ B B B B B _ _ _ B B B B B _ _ B B B B _ _ _ _ _ B B B B B _ _ _ _ _ B B B _ _ _ B B B _ B B _ _ _ B B B _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B B B B B _ B B B B B B B _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B B B B _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ B B _ B B _ _
 
        _ _ B B B B _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ _ _ B B B _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ B B _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _
 
        _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _
 
        B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _
 
        B B _ _ _ _ _ _ B B _ _ B B _ _ _ B B B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _
 
        B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _
 
        B B _ _ _ _ _ _ B B _ _ B B _ _ B B B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B _ _ _ _ _ _ B B B B B B B _ B B B B B B B _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B B B B B B _
 
        B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B B B _ B B _ _ _ B B _
 
        B B _ _ _ _ B _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _
 
        _ B B _ _ B B _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ B B _
 
        _ _ B B B B _ _ _ B B B _ B B _ _ B B B B B _ _ _ B B B _ B B _ _ B B B _ B B _ _ B B B _ B B _ _ B B B _ B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ B B _ _ _ B B _ B B _ _ _ B B _
 
        _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ B B B _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B _ _ _ B B _ _ _ B B _ _ _ B B _ _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ _ _ B B _ B B
 
        B B B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B B _ _ _ B B _ _ B B B B B _ _ _ B B _ _ B _ _ _ B B _ _ B B _ B B _ _ B B _ _ _ _ _ B B _ _ _
 
        _ B B _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ _ B B B B _ _ B B B B B _ _ _ _ _ _ B B _ _ _
 
        _ B B _ _ _ B _ B B B _ B B _ _ B B _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ B _ _ _ _ _ B B _ _ _
 
        _ B B _ B _ _ _ _ _ B B _ B B _ B B B B B B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B B B B B _ B B _ _ B B _ _ _ B B B B B B _
 
        _ B B B B _ _ _ _ _ B B _ B B _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B B B _ _ _ _ B B _ _ _
 
        _ B B _ B _ _ _ _ B B B B B B _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ B B B B B B _ B B _ _ B B _ _ _ _ _ B B _ _ _
 
        _ B B _ _ _ B _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B B B B _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _
 
        _ B B _ _ B B _ B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ B B B _ _ B B _ _ _ _ B B _ _ _ B B _ _ B B _ _ B B _ B B _ _ _
 
        B B B B B B B _ _ B B _ B B B _ B B _ _ B B B _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B _ B B _ _ B B B _ B B _ _ B B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ B B _ _ _ B B B B B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ _ B B B _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B _ _ B B _ _ _ B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B B B _ _ _ _ _ B B B _ _ _ _ B B B B B _ _ B B _ _ B B _ _ B B _ B B B _ _ B B B B _ B B _ _ _ B B B B B _ _ _ B B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ B B _ B B _ _ _
 
        _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B B B B _ B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _
 
        _ B B B B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ B B B B _ _ B B B B B B _ _ B B B B B _ _ _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ B B _ B B _
 
        B B _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ B B _ _ B B _ _ _ B B B B _ _ _ B B _ B B _ _ _ B B _ B B _ _
 
        B B _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ B B B _ _ B B _ _ B B B _ _ _ B B B B _ _ _ _ B B _ B B _ B B _ B B _ _ _
 
        B B _ _ B B _ _ _ _ _ B B _ _ _ B B _ _ _ B B _ B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B _ _ _ _ B B _ B _ _ B B _ B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B B _ B B _ _ _ B B B B _ _ _ B B B B B _ _ _ B B B _ B B _ _ B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B B B B _ B B B B _ B B _ _ _ B B _ B B _ B B B B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B _ B B _ B B B B B B B _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B _ B B _ B B B B B B B _ B B B B B B B _ B B B B B _ _ _ B B B B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B B B B _ _ B B _ B B _ _ _ B B _ B B B _ _ B B B B B B B B B B _ B B B B B B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B _ _ B B _ B B B _ _ B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ B B B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        B B B B B B B B B B B B B B B B B B B B B B B B _ _ B B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ B B B B _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ B B B B B _ _
 
        _ _ _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ B B B B _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ B B _ _ _ B B _
 
        _ B B B _ B B _ B B _ _ B B _ _ B B _ _ _ _ _ _ B B B B B B B _ _ _ B B _ _ _ _ _ B B B B B B _ _ B B _ _ B B _ B B _ B B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ _ _ B B B B B B _ _ B B B B B B _ _ B B _ _ _ _ _ B B _ _ _ B B _
 
        B B _ B B B _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B B B B B B _ B B _ _ _ B B _ _ _ B B B B B _ B B _ B B _ B B B B _ B B _ B B _ B B B B B _ _ B B _ _ _ B B _
 
        B B _ B B _ _ _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ B B _ B B B B _ B B _ B B _ B B _ _ _ _ _ B B _ _ _ B B _
 
        B B _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ B B _ B B _ B B B B B B _ _ B B _ B B _ _ _ _ _ B B _ _ _ B B _
 
        B B _ B B _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ B B B B _ _ B B _ _ _ B B _ _ B B _ B B _ _ _ B B _ _ B B _ _ B B B B B B _ _ B B B B B B _ _ B B _ _ _ _ _ B B _ _ _ B B _
 
        B B _ B B B _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ B B _ B B _ _ B B _ _ _ B B _ B B _ B B _ _ _ _ B B _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ B B _
 
        _ B B B _ B B _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ B B _ B B _ _ B B B B B B B _ _ B B B _ _ _ _ _ B B B B B _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ B B B _ _ _ B B B _ B B B _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ B B B _ _ B B _ _ _ B B _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ B B _ B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ B B _ _ B B _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _
 
        B B B B B B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ B B B B B B _ B B B _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B B _ _ B _ _ B B B B B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ B B _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B _ B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ B _ _ _ _
 
        B B B B B B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ B _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ B _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ B B _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ B _ _ _ _
 
        B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
};
 
static const uint8_t characters_table_16x16_8x16_light[] =
 
{
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ B B B B _ _ _ B B B B _ _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B _ _ _ _
 
        B _ B _ _ _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B _ B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ B B _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ B _ B _ _ B _ _ B _
 
        _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B B B B B B B _ B _ _ B _ _ B _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ _ B B _ _ _ B B B _ B B B _ _ _ B B B B _ _ B B _ _ _ B B _ _ _ _ _ B _ B _ _ B _ _ _ _ B _ _ _ _ B B B B _ _ _ B B B B B _ _ B _ B _ B _ _
 
        _ _ B _ B _ _ _ B _ B _ B _ B _ B B _ B _ B B _ B _ _ B _ _ B _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ B B B B _ _ B B _ _ _ B B _ _ B B _ _ B B _ B _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ B B B _ _ _
 
        _ _ B _ B _ _ _ B _ _ _ _ _ B _ B B B B B B B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ B _ B _ _ B _ _ _ _ _ B _ _ _ B B B B _ _ B B _ _ _ B B _ _ B _ _ _ _ B _ B _ B B B _ B _ _ B B B B _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ B B B _ B B B _
 
        _ _ B _ B _ _ _ B _ B B B _ B _ B B B B B B B _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ B _ B B B _ B _ B _ B B B _ B _ _ _ _ B B _ _ _ B B B _ B B B _ _ B _ _ _ _ B _ B _ B B B _ B _ B _ _ _ _ B _ _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ B B B _ _ _
 
        _ _ _ B B _ _ _ B _ _ B _ _ B _ B B _ _ _ B B _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ B _ B _ B _ _ _ B _ B _ B _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ B B _ _ B B _ B _ _ B _ _ B _ B _ _ _ _ B _ _ _ B B B B B B _ _ B B B _ _ _ _ _ _ B _ B B B _ _ B _ B _ B _ _
 
        _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B B B _ B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ B B B B _ _ B B _ _ _ B B _ B _ _ _ _ B _ _ _ _ _ B B _ _ _ B B B B _ _ _ _ B B B _ B B B _ B _ _ B _ _ B _
 
        _ _ _ _ B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ B B B B _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ _ B B B _ B B _ _ _ _ _ B _ _ _ _
 
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
 
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B B B B B B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _
 
        _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _
 
        _ B B B _ _ _ _ _ _ _ _ B B B _ _ B _ B _ B _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ B _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _
 
        _ B B B B _ _ _ _ _ _ B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B _ _
 
        _ B B B B B _ _ _ _ B B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B B B _ _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ B _ _ _ _ _ _ B B B B B B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _
 
        _ B B B B _ _ _ _ _ _ B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _
 
        _ B B B _ _ _ _ _ _ _ _ B B B _ _ B _ B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B B B B _ _ _ B B B B B B B _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ B _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ _ B _ _ B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _
 
        _ B B _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ B B B B B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ B _ B _ _ _ _ B _ _ B B B B B B B _ _ B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ B B _ _ B _ _ _ B _ _ _ _ B B B B _ _ B B B _ _ _ B _ _ _ B B B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ B B _ _ B _ _ _ B _ _ _ B _ _ B _ B _ B _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B B B B B B B _ _ B _ _ B _ _ _ B B B _ B _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ B B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ B _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ B _ B _ _ B _ _ _ B _ B B B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ B _ _ B _ _ B _ _ B _ B _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B B B B _ _ B _ _ _ B B B _ _ B B B B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B B B B _ _
 
        _ _ B B B B _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _
 
        _ B _ _ _ _ B _ _ _ _ B B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _
 
        _ B _ _ _ _ B _ _ _ B _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ B B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _
 
        _ B _ B B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ B B B B _ _ _ _ B _ _ _ B _ _ _ B B B B _ _ _ B B B B B _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _
 
        _ B _ B B _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _
 
        _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ B B B B B B B _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _
 
        _ _ B B B B _ _ _ _ B B B B B _ _ B B B B B B _ _ B B B B B _ _ _ _ _ _ _ _ B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B B B B _ _ _ _ _ B B _ _ _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B _ _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ _ B B B _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B _ _
 
        B _ _ _ _ _ B _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ B B _ _ B B _ _ B B _ _ _ B _ _ B _ _ _ _ B _
 
        B _ B B B _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ B B _ B _ _ B _ B _ _ B _ _ B _ _ _ _ B _
 
        B _ B _ B _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ B B _ B _ _ B _ _ B _ B _ _ B _ _ _ _ B _
 
        B _ B _ B _ B _ _ B _ _ _ _ B _ _ B B B B B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B B B B B _ _ _ B B B B B _ _ B _ _ B B B _ _ B B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B B _ _ B _ _ _ _ B _
 
        B _ B _ B _ B _ _ B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        B _ _ B B B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        B _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        _ B B B B B _ _ _ B _ _ _ _ B _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B B B B B _ _ _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ _ B B B _ _ _ _ B B _ _ _ _ _ B _ _ _ _ B _ _ _ B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B _ _ _ _ B B B B _ _ _ B B B B B B B _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B B B B B B _ _ _ B B B B _ _ _ B _ _ _ _ _ _ _ _ B B B B _ _ _ _ B _ B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ B _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B B B B B _ _ _ B _ _ _ _ B _ _ B B B B B _ _ _ _ _ B B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ B B _ B _ _ _ _ _ B _ _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ B B _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ _ _ _ B _ _ B _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ B B _ B _ _ _ B _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ _ _ _ B _ _ B _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ B _ _ B _ _ _ B B _ _ B B _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ _ B B B B _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ _ _ B B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B B B B B B _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ B _ B B B _ _ _ _ B B B B _ _ _ _ B B B _ B _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ B _ B B B _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B B B _ B B _ _ _ B B B B B _ _ _ _ B B B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B B _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ B B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B B _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ B B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ B B B B B _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ _ B B B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ B B B _ _ _ _ B B B B B _ _ _ B _ B B _ _ _ _ B B B B B _ _ B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _
 
        _ B B _ _ _ B _ _ B _ _ _ _ B _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ B B _ _ _ B _ _ _ B _ B _ _ _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ B _ _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ _ B B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B B _ _ B _ _ _ _ _ B _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _
 
        _ B _ _ _ _ B _ _ B _ _ _ B B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ _ B _ _ _ B B B B B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _
 
        _ B B B B B _ _ _ _ B B B _ B _ _ _ B _ _ _ _ _ _ B B B B B _ _ _ _ _ _ B B B _ _ _ B B B B B _ _ _ _ B B _ _ _ _ B B _ B B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ B B B B B B _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B B _ _ _ B B B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _
 
        _ _ B B B B _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ B _ B _ _ _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B _ _ _
 
        _ B _ _ _ _ B _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B B B B B _ _
 
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
 
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B B B B B B _ B _ _ _ _ _ B _
 
        _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B _ _ _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ B B B B B B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B B B B B B B _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
 
        _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
 
        _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ B _ _ _ _ _ B _
 
        _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ B _ _ _ _ _ B _ B B B B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B _ _ _ _ B B _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ B B B B B _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _
 
        _ B B B B B _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B B B B B _ _ _ B _ _ _ B _ _ _ _ B _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _
 
        _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _
 
        _ B _ _ _ _ _ _ _ B B _ B B _ _ B _ _ _ B _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ _ B B B B B _ _ _ _ _ _ B _ _ _ _
 
        _ B B B B _ _ _ _ _ _ B _ _ B _ B B B B B B B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _
 
        _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ B B B _ _ _ _ B _ _ _ _
 
        _ B _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ B B B B B _ _ _ B B _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _
 
        _ B _ _ _ _ _ _ B _ _ B _ _ B _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B B _ B _ B B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _
 
        _ B B B B B _ _ _ B B B B B _ _ B _ _ _ B B B _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ B B _ _ B B _ _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ B _ _ B B _ _ B _ _ _ _
 
        _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ B B _ _ B _ _ _ _ _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B B _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _
 
        _ _ B B B B _ _ _ _ B B _ _ _ _ _ _ B B B B _ _ _ B _ _ _ _ B _ _ B B B B B _ _ B _ B _ _ _ B _ _ _ B B B B B _ _ _ B B B B _ _ _ _ _ B _ _ _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ B _
 
        _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ B _ _ B _ _ _ _ _ _ _ _ B _ _ B
 
        _ _ B B B B B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ B _ B _ _ B B B B B B _ _ B B B B B B _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ B B _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ B _
 
        _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B B _ _ _ B _ _ _ B B _ _ _ _ B B _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _
 
        _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ B _ _ _ B _ B _ _ _ _ B B _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ _
 
        _ _ B B B B B _ _ _ _ B _ _ _ _ _ _ B B B B _ _ _ _ B B B B B _ _ B _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B B B _ _ _ _ B B _ _ _ _ _ _ _ B _ _ B B _ _ B _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B B B B _ B B B B _ B B _ _ _ B B _ B B _ B B B B B _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ B B B B B _ _ _ B B B B B _ _ _ B B B B _ B B _ B B B B B B B _ B B B B B _ _ _ B B B B _ B B _ _ _ B B _ B B _ B B B B _ B B _ B B B B B B B _ B B B B B B B _ B B B B B _ _ _ B B B B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ B _ _ _ B _ _ B _ B _ B _ B _ _ B B B _ B B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B _ _ _ B _ B _ B _ B _ B B B _ B B B _ B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B B B B _ _ B B _ B B _ _ _ B B _ B B B _ _ B B B B B B B B B B _ B B B B B B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
 
        _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B B B B B B B B B B B B B B B B B _ _ _ B B B B B _ _ B B _ B B B _ _ B B B B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B _ _ B B _ B B B B B B B B B B B B B B B _ B B B B B B B B B B B
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ B B B B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B B B B _ _ _ B B B B B _ _ _ _ _ _ _ _ _ _ B B _ B B _ B B B B B B B B _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ B B B B B B B B B B B B
 
        B B B B B B B B B B B B B B B B B B B B B B B B _ _ B B B B B B _ _ _ B B B B B _ _ _ B B B B B _ _ B B B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ B B B B B B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ B B _ B B _ _ _ B B _ B B _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ B B B B B B B B B B B B B B B B B B B B _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B B B _ _ B B B B B B B _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _
 
        _ B B B _ B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B B B B B B _ _ _ B _ _ _ _ _ _ _ B B B B B _ _ B _ _ _ _ B _ _ B B B B B B _ B _ _ B _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ _ B _ B _ _ _ B B B B B _ B _ _ _ _ _ B _
 
        B _ _ _ B _ _ _ _ B B B B B _ _ _ B _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ B _ B B B B B B B _ B _ _ _ _ _ B _ _ _ _ B B _ _ _ B _ B _ B _ B _ B _ _ B _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _
 
        B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ B _ B _ _ _ _ _ B _ B _ _ _ _ _ B _ _ _ B _ _ B _ _ B _ _ B _ _ B _ B _ B _ _ _ B _ _ B B B B B _ _ B _ _ _ _ _ B _
 
        B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ B _ _ B _ _ _ B _ _ _ _ _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ _ _ _ B _ _ _ _ _ B _ B _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ B _ _ _ _ B _ B _ B _ B _ B _ _ B _ _ _ B _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ B _
 
        _ B B B _ B B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ B B _ _ B _ _ B _ _ _ _ _ B _ _ _ B B B _ _ _ _ B B B B B _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ _ B B B _ _ _ B B _ _ _ B B _ _ B _ _ _ _ B _ _ B _ _ _ B _ _ B _ B B B _ _ _ _ _ B B B B B _ B _ _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ B B B B B _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B B B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B _
 
        _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B B _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ B _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ B B B _ _ _ _ _
 
        B B B B B B B _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ B _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ _ B _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B B _ _ B _ _ B _ _ _ _ _ B _ _ _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _
 
        B B B B B B B _ _ B B B B B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ B B B B B B B _ _ _ _ _ B B _ _ _ _ B B _ _ _ _ _ _ B B B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ B _ _ _ _ B B B B _ _ _ _ _ B B B B _ _ _ _ B _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ B _ B _ _ _
 
        B B B B B B B _ _ _ _ B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ B _ _ B _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B B _ _ _ _ _ B _ _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
        _ _ _ _ _ _ _ _ _ B B B B B _ _ _ B B B B B B _ _ B B B B B B _ _ _ _ B B _ _ _ B _ _ B B _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B B _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ B B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B _ _ _
 
        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ B B _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
 
};
 
#undef B
 
#undef _
 
 
 
 
 
// text styles
 
#define TEXTSTYLE_NONE          0
 
#define TEXTSTYLE_BOLD          (1 << 0)
 
#define TEXTSTYLE_DIM           (1 << 1)
 
#define TEXTSTYLE_ITALIC        (1 << 2)
 
#define TEXTSTYLE_UNDERLINE1    (1 << 3)
 
#define TEXTSTYLE_UNDERLINE2    (1 << 4)
 
#define TEXTSTYLE_STRIKETHROUGH (1 << 5)
 
 
 
 
 
// handy macros
 
#define ROUND_TO_MULTIPLE_OF_32(num) (((num) + 31) & -32) // this macro is valid for all multiples that are powers of 2
 
#define GET_NEXT_CHARACTER() (repeat_count > 0 ? (repeat_count--, current_char) : (accumulated_character_count > 0 ? accumulated_characters[(--accumulated_character_count, accumulated_character_index++)] : ((int) (accumulated_character_index = 0), getchar ())))
 
 
 
 
 
#if (SIZE_MAX != UINTPTR_MAX) // compile-time assertion
 
#error size_t is not aligned with natural integer size on this platform!
 
#endif
 
 
 
 
 
int main (int argc, char **argv)
 
{
 
        // program entrypoint
 
 
 
        typedef struct rbgtriple_s
 
        {
 
                int r;
 
                int g;
 
                int b;
 
        } rbgtriple_t;
 
 
 
        static const rbgtriple_t ansi_colors_normal[10] =
 
        {
 
                {   0,   0,   0 }, // 0: black
 
                { 153,   0,   0 }, // 1: red
 
                {   0, 166,   0 }, // 2: green
 
                { 153, 153,   0 }, // 3: yellow
 
                {   0,   0, 178 }, // 4: blue
 
                { 178,   0, 178 }, // 5: magenta
 
                {   0, 166, 178 }, // 6: cyan
 
                { 191, 191, 191 }, // 7: white
 
        };
 
        static const rbgtriple_t ansi_colors_bright[10] =
 
        {
 
                { 102, 102, 102 }, // 0: black
 
                { 230,   0,   0 }, // 1: red
 
                {   0, 217,   0 }, // 2: green
 
                { 230, 230,   0 }, // 3: yellow
 
                {   0,   0, 255 }, // 4: blue
 
                { 230,   0, 230 }, // 5: magenta
 
                {   0, 230, 230 }, // 6: cyan
 
                { 230, 230, 230 }, // 7: white
 
        };
 
        static const rbgtriple_t ansi_256_colors[256] = // regular 8-bit ANSI colors table
 
        {
 
                // standard colors
 
                { 0x00, 0x00, 0x00 }, { 0x80, 0x00, 0x00 }, { 0x00, 0x80, 0x00 }, { 0x80, 0x80, 0x00 }, { 0x00, 0x00, 0x80 }, { 0x80, 0x00, 0x80 }, { 0x00, 0x80, 0x80 }, { 0xc0, 0xc0, 0xc0 }, // 0-7
 
                // high intensity colors
 
                { 0x80, 0x80, 0x80 }, { 0xff, 0x00, 0x00 }, { 0x00, 0xff, 0x00 }, { 0xff, 0xff, 0x00 }, { 0x00, 0x00, 0xff }, { 0xff, 0x00, 0xff }, { 0x00, 0xff, 0xff }, { 0xff, 0xff, 0xff }, // 8-15
 
                // color cubes
 
                { 0x00, 0x00, 0x00 }, { 0x00, 0x00, 0x5f }, { 0x00, 0x00, 0x87 }, { 0x00, 0x00, 0xaf }, { 0x00, 0x00, 0xd7 }, { 0x00, 0x00, 0xff }, // 16-21
 
                { 0x00, 0x5f, 0x00 }, { 0x00, 0x5f, 0x5f }, { 0x00, 0x5f, 0x87 }, { 0x00, 0x5f, 0xaf }, { 0x00, 0x5f, 0xd7 }, { 0x00, 0x5f, 0xff }, // 22-27
 
                { 0x00, 0x87, 0x00 }, { 0x00, 0x87, 0x5f }, { 0x00, 0x87, 0x87 }, { 0x00, 0x87, 0xaf }, { 0x00, 0x87, 0xd7 }, { 0x00, 0x87, 0xff }, // 28-33
 
                { 0x00, 0xaf, 0x00 }, { 0x00, 0xaf, 0x5f }, { 0x00, 0xaf, 0x87 }, { 0x00, 0xaf, 0xaf }, { 0x00, 0xaf, 0xd7 }, { 0x00, 0xaf, 0xff }, // 34-39
 
                { 0x00, 0xd7, 0x00 }, { 0x00, 0xd7, 0x5f }, { 0x00, 0xd7, 0x87 }, { 0x00, 0xd7, 0xaf }, { 0x00, 0xd7, 0xd7 }, { 0x00, 0xd7, 0xff }, // 40-45
 
                { 0x00, 0xff, 0x00 }, { 0x00, 0xff, 0x5f }, { 0x00, 0xff, 0x87 }, { 0x00, 0xff, 0xaf }, { 0x00, 0xff, 0xd7 }, { 0x00, 0xff, 0xff }, // 46-51
 
                { 0x5f, 0x00, 0x00 }, { 0x5f, 0x00, 0x5f }, { 0x5f, 0x00, 0x87 }, { 0x5f, 0x00, 0xaf }, { 0x5f, 0x00, 0xd7 }, { 0x5f, 0x00, 0xff }, // 52-57
 
                { 0x5f, 0x5f, 0x00 }, { 0x5f, 0x5f, 0x5f }, { 0x5f, 0x5f, 0x87 }, { 0x5f, 0x5f, 0xaf }, { 0x5f, 0x5f, 0xd7 }, { 0x5f, 0x5f, 0xff }, // 58-63
 
                { 0x5f, 0x87, 0x00 }, { 0x5f, 0x87, 0x5f }, { 0x5f, 0x87, 0x87 }, { 0x5f, 0x87, 0xaf }, { 0x5f, 0x87, 0xd7 }, { 0x5f, 0x87, 0xff }, // 64-69
 
                { 0x5f, 0xaf, 0x00 }, { 0x5f, 0xaf, 0x5f }, { 0x5f, 0xaf, 0x87 }, { 0x5f, 0xaf, 0xaf }, { 0x5f, 0xaf, 0xd7 }, { 0x5f, 0xaf, 0xff }, // 70-75
 
                { 0x5f, 0xd7, 0x00 }, { 0x5f, 0xd7, 0x5f }, { 0x5f, 0xd7, 0x87 }, { 0x5f, 0xd7, 0xaf }, { 0x5f, 0xd7, 0xd7 }, { 0x5f, 0xd7, 0xff }, // 76-81
 
                { 0x5f, 0xff, 0x00 }, { 0x5f, 0xff, 0x5f }, { 0x5f, 0xff, 0x87 }, { 0x5f, 0xff, 0xaf }, { 0x5f, 0xff, 0xd7 }, { 0x5f, 0xff, 0xff }, // 82-87
 
                { 0x87, 0x00, 0x00 }, { 0x87, 0x00, 0x5f }, { 0x87, 0x00, 0x87 }, { 0x87, 0x00, 0xaf }, { 0x87, 0x00, 0xd7 }, { 0x87, 0x00, 0xff }, // 88-93
 
                { 0x87, 0x5f, 0x00 }, { 0x87, 0x5f, 0x5f }, { 0x87, 0x5f, 0x87 }, { 0x87, 0x5f, 0xaf }, { 0x87, 0x5f, 0xd7 }, { 0x87, 0x5f, 0xff }, // 94-99
 
                { 0x87, 0x87, 0x00 }, { 0x87, 0x87, 0x5f }, { 0x87, 0x87, 0x87 }, { 0x87, 0x87, 0xaf }, { 0x87, 0x87, 0xd7 }, { 0x87, 0x87, 0xff }, // 100-105
 
                { 0x87, 0xaf, 0x00 }, { 0x87, 0xaf, 0x5f }, { 0x87, 0xaf, 0x87 }, { 0x87, 0xaf, 0xaf }, { 0x87, 0xaf, 0xd7 }, { 0x87, 0xaf, 0xff }, // 106-111
 
                { 0x87, 0xd7, 0x00 }, { 0x87, 0xd7, 0x5f }, { 0x87, 0xd7, 0x87 }, { 0x87, 0xd7, 0xaf }, { 0x87, 0xd7, 0xd7 }, { 0x87, 0xd7, 0xff }, // 112-117
 
                { 0x87, 0xff, 0x00 }, { 0x87, 0xff, 0x5f }, { 0x87, 0xff, 0x87 }, { 0x87, 0xff, 0xaf }, { 0x87, 0xff, 0xd7 }, { 0x87, 0xff, 0xff }, // 118-123
 
                { 0xaf, 0x00, 0x00 }, { 0xaf, 0x00, 0x5f }, { 0xaf, 0x00, 0x87 }, { 0xaf, 0x00, 0xaf }, { 0xaf, 0x00, 0xd7 }, { 0xaf, 0x00, 0xff }, // 124-129
 
                { 0xaf, 0x5f, 0x00 }, { 0xaf, 0x5f, 0x5f }, { 0xaf, 0x5f, 0x87 }, { 0xaf, 0x5f, 0xaf }, { 0xaf, 0x5f, 0xd7 }, { 0xaf, 0x5f, 0xff }, // 130-135
 
                { 0xaf, 0x87, 0x00 }, { 0xaf, 0x87, 0x5f }, { 0xaf, 0x87, 0x87 }, { 0xaf, 0x87, 0xaf }, { 0xaf, 0x87, 0xd7 }, { 0xaf, 0x87, 0xff }, // 136-141
 
                { 0xaf, 0xaf, 0x00 }, { 0xaf, 0xaf, 0x5f }, { 0xaf, 0xaf, 0x87 }, { 0xaf, 0xaf, 0xaf }, { 0xaf, 0xaf, 0xd7 }, { 0xaf, 0xaf, 0xff }, // 142-147
 
                { 0xaf, 0xd7, 0x00 }, { 0xaf, 0xd7, 0x5f }, { 0xaf, 0xd7, 0x87 }, { 0xaf, 0xd7, 0xaf }, { 0xaf, 0xd7, 0xd7 }, { 0xaf, 0xd7, 0xff }, // 148-153
 
                { 0xaf, 0xff, 0x00 }, { 0xaf, 0xff, 0x5f }, { 0xaf, 0xff, 0x87 }, { 0xaf, 0xff, 0xaf }, { 0xaf, 0xff, 0xd7 }, { 0xaf, 0xff, 0xff }, // 154-159
 
                { 0xd7, 0x00, 0x00 }, { 0xd7, 0x00, 0x5f }, { 0xd7, 0x00, 0x87 }, { 0xd7, 0x00, 0xaf }, { 0xd7, 0x00, 0xd7 }, { 0xd7, 0x00, 0xff }, // 160-165
 
                { 0xd7, 0x5f, 0x00 }, { 0xd7, 0x5f, 0x5f }, { 0xd7, 0x5f, 0x87 }, { 0xd7, 0x5f, 0xaf }, { 0xd7, 0x5f, 0xd7 }, { 0xd7, 0x5f, 0xff }, // 166-171
 
                { 0xd7, 0x87, 0x00 }, { 0xd7, 0x87, 0x5f }, { 0xd7, 0x87, 0x87 }, { 0xd7, 0x87, 0xaf }, { 0xd7, 0x87, 0xd7 }, { 0xd7, 0x87, 0xff }, // 172-177
 
                { 0xd7, 0xaf, 0x00 }, { 0xd7, 0xaf, 0x5f }, { 0xd7, 0xaf, 0x87 }, { 0xd7, 0xaf, 0xaf }, { 0xd7, 0xaf, 0xd7 }, { 0xd7, 0xaf, 0xff }, // 178-183
 
                { 0xd7, 0xd7, 0x00 }, { 0xd7, 0xd7, 0x5f }, { 0xd7, 0xd7, 0x87 }, { 0xd7, 0xd7, 0xaf }, { 0xd7, 0xd7, 0xd7 }, { 0xd7, 0xd7, 0xff }, // 184-189
 
                { 0xd7, 0xff, 0x00 }, { 0xd7, 0xff, 0x5f }, { 0xd7, 0xff, 0x87 }, { 0xd7, 0xff, 0xaf }, { 0xd7, 0xff, 0xd7 }, { 0xd7, 0xff, 0xff }, // 190-195
 
                { 0xff, 0x00, 0x00 }, { 0xff, 0x00, 0x5f }, { 0xff, 0x00, 0x87 }, { 0xff, 0x00, 0xaf }, { 0xff, 0x00, 0xd7 }, { 0xff, 0x00, 0xff }, // 196-201
 
                { 0xff, 0x5f, 0x00 }, { 0xff, 0x5f, 0x5f }, { 0xff, 0x5f, 0x87 }, { 0xff, 0x5f, 0xaf }, { 0xff, 0x5f, 0xd7 }, { 0xff, 0x5f, 0xff }, // 202-207
 
                { 0xff, 0x87, 0x00 }, { 0xff, 0x87, 0x5f }, { 0xff, 0x87, 0x87 }, { 0xff, 0x87, 0xaf }, { 0xff, 0x87, 0xd7 }, { 0xff, 0x87, 0xff }, // 208-213
 
                { 0xff, 0xaf, 0x00 }, { 0xff, 0xaf, 0x5f }, { 0xff, 0xaf, 0x87 }, { 0xff, 0xaf, 0xaf }, { 0xff, 0xaf, 0xd7 }, { 0xff, 0xaf, 0xff }, // 214-219
 
                { 0xff, 0xd7, 0x00 }, { 0xff, 0xd7, 0x5f }, { 0xff, 0xd7, 0x87 }, { 0xff, 0xd7, 0xaf }, { 0xff, 0xd7, 0xd7 }, { 0xff, 0xd7, 0xff }, // 220-225
 
                { 0xff, 0xff, 0x00 }, { 0xff, 0xff, 0x5f }, { 0xff, 0xff, 0x87 }, { 0xff, 0xff, 0xaf }, { 0xff, 0xff, 0xd7 }, { 0xff, 0xff, 0xff }, // 226-231
 
                // grayscale
 
                { 0x08, 0x08, 0x08 }, { 0x12, 0x12, 0x12 }, { 0x1c, 0x1c, 0x1c }, { 0x26, 0x26, 0x26 }, { 0x30, 0x30, 0x30 }, { 0x3a, 0x3a, 0x3a }, // 232-
 
                { 0x44, 0x44, 0x44 }, { 0x4e, 0x4e, 0x4e }, { 0x58, 0x58, 0x58 }, { 0x60, 0x60, 0x60 }, { 0x66, 0x66, 0x66 }, { 0x76, 0x76, 0x76 }, //
 
                { 0x80, 0x80, 0x80 }, { 0x8a, 0x8a, 0x8a }, { 0x94, 0x94, 0x94 }, { 0x9e, 0x9e, 0x9e }, { 0xa8, 0xa8, 0xa8 }, { 0xb2, 0xb2, 0xb2 }, //
 
                { 0xbc, 0xbc, 0xbc }, { 0xc6, 0xc6, 0xc6 }, { 0xd0, 0xd0, 0xd0 }, { 0xda, 0xda, 0xda }, { 0xe4, 0xe4, 0xe4 }, { 0xee, 0xee, 0xee }  // -255
 
        };
 
        const rbgtriple_t default_foreground_color = { 127, 127, 127 }; // gray
 
        const rbgtriple_t default_background_color = {   0,   0,   0 }; // black
 
        const rbgtriple_t transparent_color        = {  -1,  -1,  -1 }; // transparent
 
        rbgtriple_t custom_foreground_color        = { 127, 127, 127 }; // gray
 
        rbgtriple_t custom_background_color        = {   0,   0,   0 }; // black
 
        const rbgtriple_t *fg_color = &default_foreground_color; // gray
 
        const rbgtriple_t *bg_color = &default_background_color; // black
 
        struct framebuffer_s
 
        {
 
                size_t base_address; // user-supplied
 
                size_t size_in_bytes; // user-supplied
 
                size_t width_in_pixels; // user-supplied
 
                size_t height_in_pixels; // user-supplied
 
                char pixel_format[5]; // user-supplied
 
 
 
                uint8_t *virtual_address; // calculated (result of mmap)
 
                rbgtriple_t pixel_indices; // red, green and blue pixel indices in a pixel DWORD (0, 1, 2 or 3) -- calculated out of a user-supplied format string
 
                size_t pixel_size_in_bytes; // calculated
 
                size_t stride_in_pixels; // calculated
 
                size_t stride_in_bytes; // calculated
 
 
 
                size_t max_character_lines; // calculated
 
                size_t max_character_columns; // calculated
 
                int cursor_line; // calculated
 
                int cursor_column; // calculated
 
                const uint8_t *characters_table_16x16_8x16; // calculated
 
                int text_style; // calculated
 
        } fb = { 0 };
 
 
 
        static char accumulated_characters[4096];
 
        size_t accumulated_character_index = 0;
 
        size_t accumulated_character_count = 0;
 
        size_t accumulated_character_startidx;
 
        size_t column_offset_in_framebuffer;
 
        size_t line_offset_in_framebuffer;
 
        size_t char_row_in_chartable;
 
        size_t char_col_in_chartable;
 
        size_t offset_in_framebuffer;
 
        size_t offset_in_chartable;
 
        size_t char_index;
 
        size_t char_curx;
 
        size_t char_cury;
 
        int current_char;
 
        int next_char;
 
        int escseq_integers[5];
 
        int final_taint;
 
        int character;
 
        int want_debuginfo;
 
        int is_pixel_lit;
 
        int is_backspace = 0;
 
        int repeat_count = 0;
 
        int code_count;
 
        int code_index;
 
        int row_index;
 
        png_struct *png;
 
        png_info *png_info_struct;
 
        char image_color_type;
 
        char image_bit_depth;
 
        char *confstr_word;
 
        int image_height;
 
        int image_width;
 
        int pixel_index;
 
        int is_eos;
 
        uint8_t *image_row;
 
        FILE *fp;
 
 
 
        // tell if we want debug info by looking for the presence of a FRAMEBUFFER_DEBUG environment variable
 
        want_debuginfo 
= (getenv ("FRAMEBUFFER_DEBUG") != NULL
); 
 
 
        // check that we have all that we need
 
        if (argc == 6)
 
        {
 
                // collect linear framebuffer parameters from command-line arguments if available
 
                fb.
base_address     = strtoul (argv
[1], NULL
, 0); 
                fb.
size_in_bytes    = strtoul (argv
[2], NULL
, 0); 
                fb.
width_in_pixels  = strtoul (argv
[3], NULL
, 0); 
                fb.
height_in_pixels = strtoul (argv
[4], NULL
, 0); 
                strcpy (fb.
pixel_format, argv
[5]);  
        }
 
#ifdef _CS_GRAPHICS
 
        else if (confstr (_CS_GRAPHICS, accumulated_characters, sizeof (accumulated_characters)) > 0)
 
        {
 
                // else (if not supplied from the command line) read them from the _CS_GRAPHICS confstr if available
 
                confstr_word = accumulated_characters; // parse _CS_GRAPHICS configuration string value and stop at each word separator
 
                for (char_index = 0; char_index < sizeof (accumulated_characters); char_index++)
 
                        if ((strchr (" \t_", accumulated_characters
[char_index
]) != NULL
) || (accumulated_characters
[char_index
] == 0))  
                        {
 
                                is_eos = (accumulated_characters[char_index] == 0); // see if we're at end of string
 
                                accumulated_characters[char_index] = 0; // split the conf string at each word separation
 
                                if      (fb.
base_address     == 0) fb.
base_address     = strtoul (confstr_word
, NULL
, 0);  
                                else if (fb.
size_in_bytes    == 0) fb.
size_in_bytes    = strtoul (confstr_word
, NULL
, 0);  
                                else if (fb.
width_in_pixels  == 0) fb.
width_in_pixels  = strtoul (confstr_word
, NULL
, 0);  
                                else if (fb.
height_in_pixels == 0) fb.
height_in_pixels = strtoul (confstr_word
, NULL
, 0);  
                                else if (fb.
pixel_format[0]  == 0) strcpy (fb.
pixel_format, confstr_word
);  
                                if (is_eos)
 
                                        break; // if end of string is reached, stop parsing
 
                                confstr_word = &accumulated_characters[char_index + 1]; // else remember where the next word starts
 
                        }
 
        }
 
#endif // _CS_GRAPHICS
 
 
 
        // do we have NO framebuffer specification ?
 
        if (fb.base_address == 0)
 
        {
 
                if ((argc 
< 2) || ((strcmp (argv
[1], "-?") != 0) && (strcmp (argv
[1], "--help") != 0)))  
                        fprintf (stderr
, "error: must specify framebuffer address, size, and pixel format (or set the _CS_GRAPHICS configuration string to 'fbaddr_fbsize_width_height_pixfmt')\n");  
                else
 
                        fprintf (stdout
, "Linear framebuffer printer for QNX 8.0 by Pierre-Marie Baty <pm@pmbaty.com>\n");  
                        
 
                fprintf (stdout
, "usage (_CS_GRAPHICS set to 'fbaddr_fbsize_width_height_pixfmt'):\n");  
                fprintf (stdout
, "   <pipe>|fbwrite\n");  
                fprintf (stdout
, "usage (_CS_GRAPHICS not set):\n");  
                fprintf (stdout
, "   <pipe>|fbwrite <fbaddr> <fbsize> <width> <height> <pixfmt>\n");  
                fprintf (stdout
, "   printf 'Hello world!'|fbwrite 0x400000000 1920000 800 600 BGRx\n");  
                fprintf (stdout
, "Most control chars and ANSI escape sequences are supported, with additions.\n");  
                fprintf (stdout
, "   addition: transparent foreground color:  ESC[38;5;256m\n");  
                fprintf (stdout
, "   addition: transparent background color:  ESC[48;5;256m\n");  
                fprintf (stdout
, "   addition: draw image at cursor location: ESC]1;<image_pathname>BEL\n");  
                fprintf (stdout
, "Debug info is printed if the FRAMEBUFFER_DEBUG environment variable is present.\n");  
        }
 
 
 
        // consistency checks
 
        if ((fb.size_in_bytes == 0) || (fb.width_in_pixels == 0) || (fb.height_in_pixels == 0))
 
        {
 
                fprintf (stderr
, "error: neither the framebuffer size in bytes, nor width in pixels nor height in pixels can be zero\n");  
        }
 
 
 
        // compute framebuffer stride based on byte size and pixel height
 
        fb.
pixel_size_in_bytes = strlen (fb.
pixel_format); 
        if ((fb.pixel_size_in_bytes < 1) || (fb.pixel_size_in_bytes > 4))
 
        {
 
                fprintf (stderr
, "error: invalid/unsupported pixel size (%zd) from pixel format '%s'\n", fb.
pixel_size_in_bytes, fb.
pixel_format);  
        }
 
        fb.stride_in_bytes  = fb.size_in_bytes / fb.height_in_pixels;
 
        fb.stride_in_pixels = fb.stride_in_bytes / fb.pixel_size_in_bytes;
 
 
 
        // compute max character lines and columns in framebuffer
 
        fb.max_character_lines = fb.height_in_pixels / CHAR_PIXELS_H;
 
        fb.max_character_columns = fb.width_in_pixels / CHAR_PIXELS_W;
 
 
 
        // compute red, green and blue offsets in a single pixel
 
        for (char_index = 0; char_index < fb.pixel_size_in_bytes; char_index++)
 
        {
 
                character = fb.pixel_format[char_index];
 
                if      ((character == 'R') || (character == 'r')) fb.pixel_indices.r = char_index;
 
                else if ((character == 'G') || (character == 'g')) fb.pixel_indices.g = char_index;
 
                else if ((character == 'B') || (character == 'b')) fb.pixel_indices.b = char_index;
 
        }
 
 
 
        // make the light font the default font
 
        fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_light;
 
 
 
        // map the passed physical address to a virtual memory region
 
        fb.virtual_address = mmap (NULL, fb.size_in_bytes, PROT_READ | PROT_WRITE | PROT_NOCACHE, MAP_SHARED | MAP_PHYS, NOFD, fb.base_address);
 
        if (fb.virtual_address == NULL)
 
        {
 
                fprintf (stderr
, "fatal: can't mmap() %zd bytes of framebuffer at 0x%zx\n", fb.
size_in_bytes, fb.
base_address);  
                        ; // when we die because of a mmap() failure, we don't want to break the input pipe as this would terminate all feeding processes, so sink everything into oblivion
 
                exit (EXIT_FAILURE
); // once we've received a hangup signal, we can safely commit suicide in a low-carbon, green and Earth-friendly manner.  
        }
 
 
 
        // dump framebuffer info if requested
 
        if (want_debuginfo)
 
        {
 
                fprintf (stderr
, "Framebuffer info:\n");  
                fprintf (stderr
, "      base address: 0x%zx\n", fb.
base_address);  
                fprintf (stderr
, "      size in bytes: %zd\n", fb.
size_in_bytes);  
                fprintf (stderr
, "      width in pixels: %zd\n", fb.
width_in_pixels);  
                fprintf (stderr
, "      height in pixels: %zd\n", fb.
height_in_pixels);  
                fprintf (stderr
, "      pixel format: '%s'\n", fb.
pixel_format);  
                fprintf (stderr
, "      red pixel index: %d\n", fb.
pixel_indices.
r); // calculated  
                fprintf (stderr
, "      red pixel index: %d\n", fb.
pixel_indices.
g); // calculated  
                fprintf (stderr
, "      red pixel index: %d\n", fb.
pixel_indices.
b); // calculated  
                fprintf (stderr
, "      virtual address: 0x%zx\n", (size_t) fb.
virtual_address); // calculated (result of mmap)  
                fprintf (stderr
, "      pixel size in bytes: %zd\n", fb.
pixel_size_in_bytes); // calculated  
                fprintf (stderr
, "      stride in pixels: %zd\n", fb.
stride_in_pixels); // calculated  
                fprintf (stderr
, "      stride in bytes: %zd\n", fb.
stride_in_bytes); // calculated  
                fprintf (stderr
, "      max character lines: %zd\n", fb.
max_character_lines); // calculated  
                fprintf (stderr
, "      max character columns: %zd\n", fb.
max_character_columns); // calculated  
                fprintf (stderr
, "      cursor line: %d\n", fb.
cursor_line); // calculated  
                fprintf (stderr
, "      cursor column: %d\n", fb.
cursor_column); // calculated  
        }
 
 
 
        // read characters, either repeating the current one, or unwinding the accumulator, or from stdin
 
        while ((current_char = GET_NEXT_CHARACTER ()) != EOF)
 
        {
 
                // is it a special character ?
 
                if (current_char == '\x07') // bell
 
                {
 
#ifdef __QNXNTO__
 
                        static size_t pit = 0;
 
                        static size_t kbd = 0;
 
                        uint8_t byte;
 
                        if (pit == 0)
 
                        {
 
                                ThreadCtl (_NTO_TCTL_IO_LEVEL, (void *) _NTO_IO_LEVEL_1); // give ourselves hardware I/O privileges
 
                                pit = mmap_device_io (sizeof (size_t), 0x40); // map 8 bytes at address 0x40 (programmable interrupt timer)
 
                                kbd = mmap_device_io (sizeof (size_t), 0x60); // map 8 bytes at address 0x60 (keyboard controller)
 
                        }
 
                        out8 (pit + 3, 0xb6); // set the PC speaker to output a square wave PCM
 
                        out8 (pit + 2, (uint8_t) ((uint16_t) (1193180 / 440) >> 0)); // set the PC speaker period: low byte
 
                        out8 (pit + 2, (uint8_t) ((uint16_t) (1193180 / 440) >> 8)); // set the PC speaker period: high byte
 
                        byte = in8 (kbd + 1); // read PC speaker state
 
                        if (byte != (byte | 3))
 
                                out8 (kbd + 1, byte | 3); // start beeping if necessary
 
                        usleep (100 * 1000); // wait 100 milliseconds
 
                        out8 (kbd + 1, in8 (kbd + 1) & 0xfc); // stop the PC speaker
 
#endif // __QNXNTO__
 
                        if (want_debuginfo)
 
                                fprintf (stderr
, "Received bell\n");  
                        continue; // and proceed to the next character
 
                }
 
                else if (current_char == '\x08') // backspace
 
                {
 
                        if (fb.cursor_column == 0) // back up one character with line wraparound
 
                        {
 
                                if (fb.cursor_line > 0) // can we move to the previous line?
 
                                {
 
                                        fb.cursor_line--; // move one line up
 
                                        fb.cursor_column = fb.max_character_columns - 1; // position at end of line
 
                                }
 
                        }
 
                        else
 
                                fb.cursor_column--; // back up one character
 
                        current_char = ' '; // and erase it
 
                        is_backspace = 1; // remember not to advance the cursor
 
                        if (want_debuginfo)
 
                                fprintf (stderr
, "Received backspace\n");  
                }
 
                else if (current_char == '\t') // tab
 
                {
 
                        current_char = ' '; // turn tabs to spaces
 
                        repeat_count = 7; // and repeat them 8 times
 
                        if (want_debuginfo)
 
                                fprintf (stderr
, "Received tab\n");  
                }
 
                else if (current_char == '\n') // line feed
 
                {
 
                        fb.cursor_line++; // jump down to next line
 
                        fb.cursor_column = 0; // reset cursor to beginning of line
 
                        if (want_debuginfo)
 
                                fprintf (stderr
, "Received newline\n");  
                        continue; // and proceed to the next character
 
                }
 
                else if (current_char == '\x0c') // form feed
 
                {
 
                        memset (fb.
virtual_address, 0, fb.
size_in_bytes); // clear entire scren  
                        fb.cursor_line = 0; // move cursor vertically to top of screen
 
                        if (want_debuginfo)
 
                                fprintf (stderr
, "Received form feed\n");  
                        continue; // and proceed to the next character
 
                }
 
                else if (current_char == '\r') // carriage return
 
                {
 
                        fb.cursor_column = 0; // if so, reset cursor to beginning of line
 
                        if (want_debuginfo)
 
                                fprintf (stderr
, "Received carriage return\n");  
                        continue; // and proceed to the next character
 
                }
 
                else if (current_char == '\x1b') // possible sequence
 
                {
 
                        next_char 
= getchar (); // read one character in advance 
                        if (next_char == EOF)
 
                                break; // end of stream
 
                        else if (accumulated_character_count < sizeof (accumulated_characters))
 
                        {
 
                                accumulated_character_startidx = accumulated_character_count; // remember where the accumulated data starts
 
                                accumulated_characters[accumulated_character_count++] = next_char; // accumulate it
 
 
 
                                if (next_char == ']') // possible OSC sequence
 
                                {
 
                                        if (want_debuginfo)
 
                                                fprintf (stderr
, "Received possible OSC escape sequence\n");  
        
 
                                        // read characters in the accumulator until we find a BEL (in case of OSC sequences the terminator is a BEL code)
 
                                        while (((next_char 
= getchar ()) != EOF
) && (next_char 
!= 0x07) && (accumulated_character_count 
+ 1 < sizeof (accumulated_characters
)))  
                                                accumulated_characters[accumulated_character_count++] = next_char; // accumulate it
 
                                        if (next_char == EOF)
 
                                                break; // end of stream
 
                                        else if (accumulated_character_count + 1 == sizeof (accumulated_characters))
 
                                                fprintf (stderr
, "warning: character accumulator full while reading possible OSC escape sequence. Unwinding.\n");  
                                        else // it's a BEL and the accumulator is not full yet
 
                                        {
 
                                                accumulated_characters[accumulated_character_count] = 0; // terminate the accumulated string ourselves
 
 
 
                                                // see what sort of OSC sequence this is
 
                                                if (strncmp (&accumulated_characters
[accumulated_character_startidx
], "]1;", 3) == 0) // set icon name (i.e. background picture name)  
                                                {
 
                                                        fp 
= fopen (&accumulated_characters
[accumulated_character_startidx 
+ 3], "rb"); // attempt to open the icon file 
                                                        if (fp != NULL)
 
                                                        {
 
                                                                image_row = NULL;
 
                                                                png = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
 
                                                                png_info_struct = png_create_info_struct (png);
 
                                                                if ((png 
!= NULL
) && (png_info_struct 
!= NULL
) && (setjmp (png_jmpbuf 
(png
)) == 0))  
                                                                {
 
                                                                        png_init_io (png, fp); // read and convert any color_type into 8bit depth, RGBA format - see http://www.libpng.org/pub/png/libpng-manual.txt
 
                                                                        png_read_info (png, png_info_struct);
 
                                                                        image_color_type = png_get_color_type (png, png_info_struct);
 
                                                                        image_bit_depth = png_get_bit_depth (png, png_info_struct);
 
                                                                        if (image_bit_depth == 16)
 
                                                                                png_set_strip_16 (png); // convert all 16-bit samples to 8-bit
 
                                                                        if (image_color_type == PNG_COLOR_TYPE_PALETTE)
 
                                                                                png_set_palette_to_rgb (png); // convert all palette indexes to RGB colors
 
                                                                        if ((image_color_type == PNG_COLOR_TYPE_GRAY) && (image_bit_depth < 8))
 
                                                                                png_set_expand_gray_1_2_4_to_8 (png); // convert all low bit depth grayscales to 8 bits (note: PNG_COLOR_TYPE_GRAY_ALPHA is always 8 or 16bit depth)
 
                                                                        if (png_get_valid (png, png_info_struct, PNG_INFO_tRNS))
 
                                                                                png_set_tRNS_to_alpha (png); // convert all tRNS transparency chunks to an alpha channel
 
                                                                        if ((image_color_type == PNG_COLOR_TYPE_RGB) || (image_color_type == PNG_COLOR_TYPE_GRAY) || (image_color_type == PNG_COLOR_TYPE_PALETTE))
 
                                                                                png_set_filler (png, 0xFF, PNG_FILLER_AFTER); // set 0xff as the alpha value of all color types that don't have an alpha channel
 
                                                                        if ((image_color_type == PNG_COLOR_TYPE_GRAY) || (image_color_type == PNG_COLOR_TYPE_GRAY_ALPHA))
 
                                                                                png_set_gray_to_rgb (png); // convert all grayscale color types to RGB
 
                                                                        png_read_update_info (png, png_info_struct); // commit our changes to the PNG info structure
 
                                                                        image_width = png_get_image_width (png, png_info_struct);
 
                                                                        image_height = png_get_image_height (png, png_info_struct);
 
                                                                        image_row 
= (uint8_t *) malloc (png_get_rowbytes 
(png
, png_info_struct
)); // we'll be reading one row at a time: allocate space for one 
                                                                        if (image_row != NULL)
 
                                                                        {
 
                                                                                if ((fb.cursor_column * CHAR_PIXELS_W) + image_width > fb.width_in_pixels)
 
                                                                                        image_width = fb.width_in_pixels - fb.cursor_column; // cap image width so that it doesn't extend past the framebuffer on the right
 
                                                                                for (row_index = 0; row_index < image_height; row_index++)
 
                                                                                {
 
                                                                                        // compute the offset of the concerned line in the framebuffer
 
                                                                                        line_offset_in_framebuffer = ((fb.cursor_line * CHAR_PIXELS_H) + row_index) * fb.stride_in_bytes;
 
                                                                                        if (line_offset_in_framebuffer > fb.size_in_bytes)
 
                                                                                                break; // don't draw past the bottom of the framebuffer
 
                                                                                        png_read_row (png, image_row, NULL); // read one scanline at a time and draw it onto the framebuffer
 
                                                                                        for (pixel_index = 0; pixel_index < image_width; pixel_index++)
 
                                                                                        {
 
                                                                                                // compute the offset of the concerned column in the framebuffer and draw the pixel
 
                                                                                                column_offset_in_framebuffer = ((fb.cursor_column * CHAR_PIXELS_W) + pixel_index) * fb.pixel_size_in_bytes;
 
                                                                                                offset_in_framebuffer = line_offset_in_framebuffer + column_offset_in_framebuffer;
 
                                                                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.r] = image_row[4 * pixel_index + 0]; // red
 
                                                                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.g] = image_row[4 * pixel_index + 1]; // green
 
                                                                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.b] = image_row[4 * pixel_index + 2]; // blue
 
                                                                                        }
 
                                                                                }
 
                                                                        }
 
                                                                        else
 
                                                                                fprintf (stderr
, "error: can't allocate enough memory for PNG row\n");  
                                                                }
 
                                                                else
 
                                                                        fprintf (stderr
, "error: can't read '%s': invalid/unsupported PNG image\n", &accumulated_characters
[accumulated_character_startidx 
+ 3]);  
                                                                if (image_row != NULL)
 
                                                                        free (image_row
); // free the single scanline buffer  
                                                                fclose (fp
); // close the input file  
                                                        }
 
                                                        else
 
                                                                fprintf (stderr
, "error: can't open '%s': %s\n", &accumulated_characters
[accumulated_character_startidx 
+ 3], strerror (errno
));  
 
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to the next character
 
                                                }
 
                                                else
 
                                                        accumulated_characters[accumulated_character_count++] = next_char; // not a supported OSC sequence, restore BEL terminator into the accumulator
 
                                        }
 
                                }
 
                                else if (next_char == '[') // possible ANSI escape sequence
 
                                {
 
                                        if (want_debuginfo)
 
                                                fprintf (stderr
, "Received possible ANSI escape sequence\n");  
 
 
                                        // read characters in the accumulator until we find a something that's NOT a number nor a semicolon (in case of ANSI sequences the terminator is a letter)
 
                                        while (((next_char 
= getchar ()) != EOF
) && (isdigit (next_char
) || (next_char 
== ';')) && (accumulated_character_count 
+ 1 < sizeof (accumulated_characters
)))  
                                                accumulated_characters[accumulated_character_count++] = next_char; // accumulate it
 
                                        if (next_char == EOF)
 
                                                break; // end of stream
 
                                        else if (accumulated_character_count + 1 == sizeof (accumulated_characters))
 
                                                fprintf (stderr
, "warning: character accumulator full while reading possible ANSI escape sequence. Unwinding.\n");  
                                        else // it's a terminator character and the accumulator is not full yet
 
                                        {
 
                                                accumulated_characters[accumulated_character_count] = 0; // terminate the accumulated string ourselves
 
 
 
                                                // see what sort of ANSI escape sequence this is
 
                                                if (next_char == 'A') // CUU: move cursor up
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CUU:%d escape sequence\n", escseq_integers
[0]);  
                                                        fb.cursor_line = (escseq_integers[0] > fb.cursor_line ? 0 : fb.cursor_line - escseq_integers[0]); // move cursor up N lines
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'B') // CUD: move cursor down
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CUD:%d escape sequence\n", escseq_integers
[0]);  
                                                        fb.cursor_line = (fb.cursor_line + escseq_integers[0] < fb.max_character_lines - 1 ? fb.cursor_line + escseq_integers[0] : fb.max_character_lines - 1); // move cursor down N lines
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'C') // CUF: move cursor forward
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CUF:%d escape sequence\n", escseq_integers
[0]);  
                                                        fb.cursor_column = (fb.cursor_column + escseq_integers[0] < fb.max_character_columns - 1 ? fb.cursor_column + escseq_integers[0] : fb.max_character_columns - 1); // move cursor right N columns
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'D') // CUB: move cursor backwards
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CUB:%d escape sequence\n", escseq_integers
[0]);  
                                                        fb.cursor_column = (escseq_integers[0] > fb.cursor_column ? 0 : fb.cursor_column - escseq_integers[0]); // move cursor left N columns
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'E') // CNL: move cursor at beginning of next line
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CNL:%d escape sequence\n", escseq_integers
[0]);  
                                                        fb.cursor_line = (fb.cursor_line + escseq_integers[0] < fb.max_character_lines - 1 ? fb.cursor_line + escseq_integers[0] : fb.max_character_lines - 1); // move cursor one line down
 
                                                        fb.cursor_column = 0; // set cursor at beginning of line
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'F') // CPL: move cursor at beginning of previous line
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CPL:%d escape sequence\n", escseq_integers
[0]);  
                                                        fb.cursor_line = (escseq_integers[0] > fb.cursor_line ? 0 : fb.cursor_line - escseq_integers[0]); // move cursor one line up
 
                                                        fb.cursor_column = 0; // set cursor at beginning of line
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'G') // CHA: move cursor at horizontal absolute position
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CHA:%d escape sequence\n", escseq_integers
[0]);  
                                                        fb.cursor_column = (escseq_integers[0] - 1 < fb.max_character_columns - 1 ? escseq_integers[0] - 1 : fb.max_character_columns - 1); // move cursor at the desired column
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'H') // CUP: move cursor at absolute position
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d;%d", &escseq_integers
[0], &escseq_integers
[1]) != 1)  
                                                        {
 
                                                                escseq_integers[1] = 1; // read optional value (default to 1)
 
                                                                if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                        escseq_integers[0] = 1; // read optional value (default to 1)
 
                                                        }
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified CUP:%d:%d escape sequence\n", escseq_integers
[0], escseq_integers
[0]);  
                                                        fb.cursor_line   = (escseq_integers[0] - 1 < fb.max_character_lines   - 1 ? escseq_integers[0] - 1 : fb.max_character_lines   - 1); // move cursor at the desired line
 
                                                        fb.cursor_column = (escseq_integers[1] - 1 < fb.max_character_columns - 1 ? escseq_integers[1] - 1 : fb.max_character_columns - 1); // move cursor at the desired column
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'J') // ED: erase part of display
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 0; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified ED:%d escape sequence\n", escseq_integers
[0]);  
                                                        if (escseq_integers[0] == 0)
 
                                                        {
 
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
 
                                                                {
 
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
 
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
 
                                                                        memset (&fb.
virtual_address[line_offset_in_framebuffer 
+ column_offset_in_framebuffer
], 0, fb.
stride_in_bytes - column_offset_in_framebuffer
); // erase from cursor to end of line  
                                                                }
 
                                                                offset_in_framebuffer = (fb.cursor_line + 1) * CHAR_PIXELS_H * fb.stride_in_bytes; // offset of next character line
 
                                                                memset (&fb.
virtual_address[offset_in_framebuffer
], 0, fb.
size_in_bytes - offset_in_framebuffer
); // erase from next line to end of screen  
                                                        }
 
                                                        else if (escseq_integers[0] == 1)
 
                                                        {
 
                                                                offset_in_framebuffer = fb.cursor_line * CHAR_PIXELS_H * fb.stride_in_bytes; // offset of beginning of current line
 
                                                                memset (&fb.
virtual_address[0], 0, offset_in_framebuffer
); // erase from start of screen to beginning of current line  
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
 
                                                                {
 
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
 
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
 
                                                                        memset (&fb.
virtual_address[line_offset_in_framebuffer
], 0, column_offset_in_framebuffer
); // erase from beginning of line to cursor  
                                                                }
 
                                                        }
 
                                                        else if ((escseq_integers[0] == 2) || (escseq_integers[0] == 3))
 
                                                                memset (fb.
virtual_address, 0, fb.
size_in_bytes); // clear entire scren  
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'K') // EL: erase part of line
 
                                                {
 
                                                        if (sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0]) != 1)  
                                                                escseq_integers[0] = 0; // read optional value (default to 1)
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified EL:%d escape sequence\n", escseq_integers
[0]);  
                                                        if (escseq_integers[0] == 0)
 
                                                        {
 
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
 
                                                                {
 
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
 
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
 
                                                                        memset (&fb.
virtual_address[line_offset_in_framebuffer 
+ column_offset_in_framebuffer
], 0, fb.
stride_in_bytes - column_offset_in_framebuffer
); // erase from cursor to end of line  
                                                                }
 
                                                        }
 
                                                        else if (escseq_integers[0] == 1)
 
                                                        {
 
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
 
                                                                {
 
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
 
                                                                        column_offset_in_framebuffer = (fb.cursor_column * CHAR_PIXELS_W) * fb.pixel_size_in_bytes; // column offset of cursor
 
                                                                        memset (&fb.
virtual_address[line_offset_in_framebuffer
], 0, column_offset_in_framebuffer
); // erase from beginning of line to cursor  
                                                                }
 
                                                        }
 
                                                        else if ((escseq_integers[0] == 2) || (escseq_integers[0] == 3))
 
                                                        {
 
                                                                for (row_index = 0; row_index < CHAR_PIXELS_H; row_index++)
 
                                                                {
 
                                                                        line_offset_in_framebuffer = (fb.cursor_line * CHAR_PIXELS_H + row_index) * fb.stride_in_bytes; // line offset of cursor
 
                                                                        memset (&fb.
virtual_address[line_offset_in_framebuffer
], 0, fb.
stride_in_bytes); // clear entire line  
                                                                }
 
                                                        }
 
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else if (next_char == 'm') // SGR: select graphics rendition
 
                                                {
 
                                                        if (   ((code_count 
= sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d;%d;%d;%d;%d", &escseq_integers
[0], &escseq_integers
[1], &escseq_integers
[2], &escseq_integers
[3], &escseq_integers
[4])) == 4)  
                                                            || ((code_count 
= sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d;%d;%d;%d", &escseq_integers
[0], &escseq_integers
[1], &escseq_integers
[2], &escseq_integers
[3])) == 4)  
                                                            || ((code_count 
= sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d;%d;%d", &escseq_integers
[0], &escseq_integers
[1], &escseq_integers
[2])) == 3)  
                                                            || ((code_count 
= sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d;%d", &escseq_integers
[0], &escseq_integers
[1])) == 2)  
                                                            || ((code_count 
= sscanf (&accumulated_characters
[accumulated_character_startidx 
+ 1], "%d", &escseq_integers
[0])) == 1)  
                                                            || (code_count == 0))
 
                                                        {
 
                                                                if (code_count == 0)
 
                                                                {
 
                                                                        escseq_integers[0] = 0; // default to reset
 
                                                                        code_count = 1;
 
                                                                }
 
                                                                for (code_index = 0; code_index < code_count; code_index++)
 
                                                                        if (escseq_integers[code_index] == 0)
 
                                                                        {
 
                                                                                fg_color = &default_foreground_color; // reset color: default foreground
 
                                                                                if ((bg_color->r != -1) || (bg_color->g != -1) || (bg_color->b != -1))
 
                                                                                        bg_color = &default_background_color; // reset color: default background (unless it's transparent)
 
                                                                                fb.text_style = TEXTSTYLE_NONE; // reset effects
 
                                                                                fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_light; // normal font
 
                                                                        }
 
                                                                        else if (escseq_integers[code_index] == 1)
 
                                                                                fb.text_style = (fb.text_style & ~TEXTSTYLE_DIM) | TEXTSTYLE_BOLD; // increase intensity
 
                                                                        else if (escseq_integers[code_index] == 2)
 
                                                                                fb.text_style = (fb.text_style & ~TEXTSTYLE_BOLD) | TEXTSTYLE_DIM; // decrease intensity
 
                                                                        else if (escseq_integers[code_index] == 3)
 
                                                                                fb.text_style |= TEXTSTYLE_ITALIC; // enable italics
 
                                                                        else if (escseq_integers[code_index] == 4)
 
                                                                                fb.text_style |= TEXTSTYLE_UNDERLINE1; // enable underline
 
                                                                        else if (escseq_integers[code_index] == 9)
 
                                                                                fb.text_style |= TEXTSTYLE_STRIKETHROUGH; // enable strikethrough
 
                                                                        else if (escseq_integers[code_index] == 20)
 
                                                                                fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_bold; // gothic font
 
                                                                        else if (escseq_integers[code_index] == 21)
 
                                                                                fb.text_style |= TEXTSTYLE_UNDERLINE1 | TEXTSTYLE_UNDERLINE2; // enable double underline
 
                                                                        else if (escseq_integers[code_index] == 22)
 
                                                                                fb.text_style &= ~TEXTSTYLE_BOLD; // normal intensity
 
                                                                        else if (escseq_integers[code_index] == 23)
 
                                                                        {
 
                                                                                fb.text_style &= ~TEXTSTYLE_ITALIC; // disable italics and gothic font
 
                                                                                fb.characters_table_16x16_8x16 = characters_table_16x16_8x16_light; // normal font
 
                                                                        }
 
                                                                        else if (escseq_integers[code_index] == 24)
 
                                                                                fb.text_style &= ~(TEXTSTYLE_UNDERLINE1 | TEXTSTYLE_UNDERLINE2); // disable underlines
 
                                                                        else if (escseq_integers[code_index] == 29)
 
                                                                                fb.text_style &= ~TEXTSTYLE_STRIKETHROUGH; // disable strikethrough
 
                                                                        else if ((escseq_integers[code_index] >= 30) && (escseq_integers[code_index] <= 37))
 
                                                                                fg_color = &ansi_colors_normal[escseq_integers[code_index] - 30]; // normal foreground
 
                                                                        else if ((escseq_integers[code_index] == 38) && (code_index + 3 == code_count) && (escseq_integers[code_index + 1] == 5))
 
                                                                        {
 
                                                                                if (escseq_integers[code_index + 2] < 256)
 
                                                                                {
 
                                                                                        custom_foreground_color.r = ansi_256_colors[escseq_integers[code_index + 2]].r;
 
                                                                                        custom_foreground_color.g = ansi_256_colors[escseq_integers[code_index + 2]].g;
 
                                                                                        custom_foreground_color.b = ansi_256_colors[escseq_integers[code_index + 2]].b;
 
                                                                                        fg_color = &custom_foreground_color; // 256-colors table indexed foreground color
 
                                                                                }
 
                                                                                else
 
                                                                                        fg_color = &transparent_color; // not in the ANSI standard ;)
 
                                                                        }
 
                                                                        else if ((escseq_integers[code_index] == 38) && (code_index + 5 == code_count) && (escseq_integers[code_index + 1] == 2))
 
                                                                        {
 
                                                                                custom_foreground_color.r = escseq_integers[code_index + 2];
 
                                                                                custom_foreground_color.g = escseq_integers[code_index + 3];
 
                                                                                custom_foreground_color.b = escseq_integers[code_index + 4];
 
                                                                                fg_color = &custom_foreground_color; // 24-bit foreground color
 
                                                                        }
 
                                                                        else if (escseq_integers[code_index] == 39)
 
                                                                                fg_color = &default_foreground_color; // default foreground color
 
                                                                        else if ((escseq_integers[code_index] >= 40) && (escseq_integers[code_index] <= 47))
 
                                                                                bg_color = &ansi_colors_normal[escseq_integers[code_index] - 40]; // normal background
 
                                                                        else if ((escseq_integers[code_index] == 48) && (code_index + 3 == code_count) && (escseq_integers[code_index + 1] == 5))
 
                                                                        {
 
                                                                                if (escseq_integers[code_index + 2] < 256)
 
                                                                                {
 
                                                                                        custom_foreground_color.r = ansi_256_colors[escseq_integers[code_index + 2]].r;
 
                                                                                        custom_foreground_color.g = ansi_256_colors[escseq_integers[code_index + 2]].g;
 
                                                                                        custom_foreground_color.b = ansi_256_colors[escseq_integers[code_index + 2]].b;
 
                                                                                        bg_color = &custom_foreground_color; // 256-colors table indexed background color
 
                                                                                }
 
                                                                                else
 
                                                                                        bg_color = &transparent_color; // not in the ANSI standard ;)
 
                                                                        }
 
                                                                        else if ((escseq_integers[code_index] == 48) && (code_index + 5 == code_count) && (escseq_integers[code_index + 1] == 2))
 
                                                                        {
 
                                                                                custom_background_color.r = escseq_integers[code_index + 2];
 
                                                                                custom_background_color.g = escseq_integers[code_index + 3];
 
                                                                                custom_background_color.b = escseq_integers[code_index + 4];
 
                                                                                bg_color = &custom_background_color; // 24-bit background color
 
                                                                        }
 
                                                                        else if (escseq_integers[code_index] == 49)
 
                                                                                bg_color = &default_background_color; // default background color
 
                                                                        else if ((escseq_integers[code_index] >= 90) && (escseq_integers[code_index] <= 97))
 
                                                                                fg_color = &ansi_colors_bright[escseq_integers[code_index] - 90]; // bright foreground
 
                                                                        else if ((escseq_integers[code_index] >= 100) && (escseq_integers[code_index] <= 107))
 
                                                                                bg_color = &ansi_colors_bright[escseq_integers[code_index] - 100]; // bright background
 
                                                        }
 
                                                        if (want_debuginfo)
 
                                                                fprintf (stderr
, "Identified SGR (color) escape sequence\n");  
                                                        accumulated_character_count = accumulated_character_startidx; // rewind the accumulator
 
                                                        continue; // and proceed to next character
 
                                                }
 
                                                else
 
                                                        accumulated_characters[accumulated_character_count++] = next_char; // not a supported ANSI escape sequence, restore terminator character into the accumulator
 
                                        }
 
                                }
 
                        } // end if "accumulator is not full yet"
 
                } // end if "current character is ESC"
 
 
 
                // compute row and column in character table
 
                char_row_in_chartable = current_char / 16;
 
                char_col_in_chartable = current_char % 16;
 
 
 
                // if debug output is enabled, print the character that's about to be written
 
                if (want_debuginfo)
 
                        fprintf (stderr
, "Will draw char '%c' at screen pos %d,%d at position in the table: row=%zd col=%zd\n", current_char
, fb.
cursor_line, fb.
cursor_column, char_row_in_chartable
, char_col_in_chartable
);  
 
 
                // for each of the 16 rows of this character, then for each of the 16 columns of it...
 
                for (char_cury = 0; char_cury < CHAR_PIXELS_H; char_cury++)
 
                {
 
                        // compute the offset of the concerned line in the framebuffer
 
                        line_offset_in_framebuffer = ((CHAR_PIXELS_H * fb.cursor_line) + char_cury) * fb.stride_in_bytes;
 
 
 
                        for (char_curx = 0; char_curx < CHAR_PIXELS_W; char_curx++)
 
                        {
 
                                // compute pixel offset in character table and determine if this pixel should be lit
 
                                offset_in_chartable = (char_row_in_chartable * (16 * CHAR_PIXELS_W) * CHAR_PIXELS_H) + (char_cury * (16 * CHAR_PIXELS_W)) + char_col_in_chartable * CHAR_PIXELS_W + char_curx;
 
                                assert (offset_in_chartable 
< sizeof (characters_table_16x16_8x16_light
) && "offset in chartable beyond end of table");  
                                is_pixel_lit = (fb.characters_table_16x16_8x16[offset_in_chartable] != 0);
 
 
 
                                // if debug output is enabled, print whether this pixel is lit
 
                                if (want_debuginfo)
 
                                        fprintf (stderr
, "%c", (is_pixel_lit 
? 'B' : ' '));  
 
 
                                // compute the offset of the concerned column in the framebuffer
 
                                column_offset_in_framebuffer = ((CHAR_PIXELS_W * fb.cursor_column) + char_curx) * fb.pixel_size_in_bytes;
 
                                if (fb.text_style & TEXTSTYLE_ITALIC)
 
                                {
 
                                        // characters which have the italic style are bent rightways (TODO: smooth grayscale blending instead of blocky Bresenham here)
 
                                        if (char_cury < 1 * CHAR_PIXELS_H / 4)
 
                                        {
 
                                                if (line_offset_in_framebuffer + column_offset_in_framebuffer + 3 * fb.pixel_size_in_bytes < fb.size_in_bytes)
 
                                                        column_offset_in_framebuffer += 3 * fb.pixel_size_in_bytes;
 
                                        }
 
                                        else if (char_cury < 2 * CHAR_PIXELS_H / 4)
 
                                        {
 
                                                if (line_offset_in_framebuffer + column_offset_in_framebuffer + 2 * fb.pixel_size_in_bytes < fb.size_in_bytes)
 
                                                        column_offset_in_framebuffer += 2 * fb.pixel_size_in_bytes;
 
                                        }
 
                                        else if (char_cury < 3 * CHAR_PIXELS_H / 4)
 
                                        {
 
                                                if (line_offset_in_framebuffer + column_offset_in_framebuffer + 1 * fb.pixel_size_in_bytes < fb.size_in_bytes)
 
                                                        column_offset_in_framebuffer += 1 * fb.pixel_size_in_bytes;
 
                                        }
 
                                }
 
 
 
                                // compute the framebuffer offset of this pixel
 
                                offset_in_framebuffer = line_offset_in_framebuffer + column_offset_in_framebuffer;
 
                                assert (offset_in_framebuffer 
< fb.
size_in_bytes && "offset in framebuffer beyond end of buffer");  
 
 
                                // smack this bitch up?
 
                                if (is_pixel_lit
 
                                    || ((fb.text_style & TEXTSTYLE_STRIKETHROUGH) && (char_cury == CHAR_PIXELS_H / 2))
 
                                    || ((fb.text_style & TEXTSTYLE_UNDERLINE2)    && (char_cury == CHAR_PIXELS_H - 3))
 
                                    || ((fb.text_style & TEXTSTYLE_UNDERLINE1)    && (char_cury == CHAR_PIXELS_H - 1)))
 
                                {
 
                                        if (fg_color->r != -1) // is its red component NOT an explicit transparent color ?
 
                                        {
 
                                                final_taint = fg_color->r;
 
                                                if (fb.text_style & TEXTSTYLE_BOLD)
 
                                                        final_taint += 76; // if the current character style is bold, increase lightness
 
                                                else if (fb.text_style & TEXTSTYLE_DIM)
 
                                                        final_taint -= 76; // else if it's dim, decrease lightness
 
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.r] = (final_taint < 0 ? 0 : (final_taint < 255 ? final_taint : 255)); // clamp it between 0 and 255 and paint it (red component)
 
                                        }
 
                                        if (fg_color->g != -1) // is its green component NOT an explicit transparent color ?
 
                                        {
 
                                                final_taint = fg_color->g;
 
                                                if (fb.text_style & TEXTSTYLE_BOLD)
 
                                                        final_taint += 76;
 
                                                else if (fb.text_style & TEXTSTYLE_DIM)
 
                                                        final_taint -= 76;
 
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.g] = (final_taint < 0 ? 0 : (final_taint < 255 ? final_taint : 255)); // clamp it between 0 and 255 and paint it (blue component)
 
                                        }
 
                                        if (fg_color->b != -1) // is its blue component NOT an explicit transparent color ?
 
                                        {
 
                                                final_taint = fg_color->b;
 
                                                if (fb.text_style & TEXTSTYLE_BOLD)
 
                                                        final_taint += 76;
 
                                                else if (fb.text_style & TEXTSTYLE_DIM)
 
                                                        final_taint -= 76;
 
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.b] = (final_taint < 0 ? 0 : (final_taint < 255 ? final_taint : 255)); // clamp it between 0 and 255 and paint it (green component)
 
                                        }
 
                                }
 
                                else // this pixel should be extinct
 
                                {
 
                                        if (bg_color->r != -1)
 
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.r] = (bg_color->r & 0xff); // paint background color (red component) unless it's transparent
 
                                        if (bg_color->g != -1)
 
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.g] = (bg_color->g & 0xff); // paint background color (green component) unless it's transparent
 
                                        if (bg_color->b != -1)
 
                                                fb.virtual_address[offset_in_framebuffer + fb.pixel_indices.b] = (bg_color->b & 0xff); // paint background color (blue component) unless it's transparent
 
                                }
 
                        }
 
 
 
                        // if debug output is enabled, print the framebuffer offsets concerned at the end of the character scanline
 
                        if (want_debuginfo)
 
                                fprintf (stderr
, "|   offsets 0x%zx-0x%zx\n", line_offset_in_framebuffer 
+ ((CHAR_PIXELS_W 
* fb.
cursor_column) + 0) * fb.
pixel_size_in_bytes, line_offset_in_framebuffer 
+ ((CHAR_PIXELS_W 
* fb.
cursor_column) + char_curx
) * fb.
pixel_size_in_bytes);  
                }
 
 
 
                // advance cursor by one column, and wraparound if necessary
 
                if (is_backspace)
 
                        is_backspace = 0; // that was a backspace: don't advance this time, but remember to advance next time
 
                else
 
                {
 
                        fb.cursor_column++; // advance the cursor by one column
 
                        if (fb.cursor_column == fb.max_character_columns)
 
                        {
 
                                fb.cursor_line++; // wraparound: move one line down
 
                                fb.cursor_column = 0; // and position the cursor at the beginning of the line
 
                        }
 
                }
 
 
 
                // if we should make the console scroll up, do so
 
                if (fb.cursor_line == fb.max_character_lines)
 
                {
 
                        offset_in_framebuffer = CHAR_PIXELS_H * fb.stride_in_bytes; // offset of second character line
 
                        memmove (&fb.
virtual_address[0], &fb.
virtual_address[offset_in_framebuffer
], fb.
size_in_bytes - offset_in_framebuffer
); // move (max - 1) lines up  
                        offset_in_framebuffer = (fb.max_character_lines - 1) * CHAR_PIXELS_H * fb.stride_in_bytes; // offset of last character line
 
                        memset (&fb.
virtual_address[offset_in_framebuffer
], 0, fb.
size_in_bytes - offset_in_framebuffer
); // erase last character line  
                        fb.cursor_line = fb.max_character_lines - 1; // and jump back it
 
                }
 
        }
 
 
 
        // finished, cleanup
 
        munmap (fb.virtual_address, fb.size_in_bytes);
 
 
 
        exit (EXIT_SUCCESS
); // *stamp* glory to Arstotzka!  
}