From 01e6b0103f1cefd0c752bf7eb8d6c8a750ddb0a2 Mon Sep 17 00:00:00 2001 From: tTh Date: Thu, 15 Sep 2022 20:14:59 +0200 Subject: [PATCH] clean big font stuff --- .gitignore | 1 + Datas/16x24thin | 6400 +++++++++++++++++++++++++++++++++++++++++++++++ Lib/foo.c | 5 + Lib/text16x24.c | 93 +- 4 files changed, 6447 insertions(+), 52 deletions(-) create mode 100644 Datas/16x24thin diff --git a/.gitignore b/.gitignore index 3adeee1..a474216 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ Lib/testtga Lib/t_png Lib/t_t16x24 Lib/testbmp +Lib/*.tga Tests/*.tga Tests/*.gif diff --git a/Datas/16x24thin b/Datas/16x24thin new file mode 100644 index 0000000..545dcc3 --- /dev/null +++ b/Datas/16x24thin @@ -0,0 +1,6400 @@ +0 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +1 +..************.. +..************.. +..************.. +**............** +**............** +**............** +**..**....**..** +**..**....**..** +**..**....**..** +**............** +**............** +**............** +**..********..** +**..********..** +**..********..** +**....****....** +**....****....** +**....****....** +**............** +**............** +**............** +..************.. +..************.. +..************.. +2 +..************.. +..************.. +..************.. +**************** +**************** +**************** +****..****..**** +****..****..**** +****..****..**** +**************** +**************** +**************** +****........**** +****........**** +****........**** +******....****** +******....****** +******....****** +**************** +**************** +**************** +..************.. +..************.. +..************.. +3 +..****..****.... +..****..****.... +..****..****.... +**************.. +**************.. +**************.. +**************.. +**************.. +**************.. +**************.. +**************.. +**************.. +..**********.... +..**********.... +..**********.... +....******...... +....******...... +....******...... +......**........ +......**........ +......**........ +................ +................ +................ +4 +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +..**********.... +..**********.... +..**********.... +**************.. +**************.. +**************.. +..**********.... +..**********.... +..**********.... +....******...... +....******...... +....******...... +......**........ +......**........ +......**........ +................ +................ +................ +5 +....******...... +....******...... +....******...... +....******...... +....******...... +....******...... +....******...... +....******...... +....******...... +**************.. +**************.. +**************.. +**************.. +**************.. +**************.. +****..**..****.. +****..**..****.. +****..**..****.. +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +6 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +..**********.... +..**********.... +..**********.... +**************.. +**************.. +**************.. +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +7 +................ +................ +................ +................ +................ +................ +......****...... +......****...... +......****...... +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +......****...... +......****...... +......****...... +................ +................ +................ +................ +................ +................ +8 +**************** +**************** +**************** +**************** +**************** +**************** +******....****** +******....****** +******....****** +****........**** +****........**** +****........**** +****........**** +****........**** +****........**** +******....****** +******....****** +******....****** +**************** +**************** +**************** +**************** +**************** +**************** +9 +................ +................ +................ +....********.... +....********.... +....********.... +..****....****.. +..****....****.. +..****....****.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..****....****.. +..****....****.. +..****....****.. +....********.... +....********.... +....********.... +................ +................ +................ +10 +**************** +**************** +**************** +****........**** +****........**** +****........**** +**....****....** +**....****....** +**....****....** +**..********..** +**..********..** +**..********..** +**..********..** +**..********..** +**..********..** +**....****....** +**....****....** +**....****....** +****........**** +****........**** +****........**** +**************** +**************** +**************** +11 +........******** +........******** +........******** +............**** +............**** +............**** +..........**..** +..........**..** +..........**..** +..**********..** +..**********..** +..**********..** +**........**.... +**........**.... +**........**.... +**........**.... +**........**.... +**........**.... +**........**.... +**........**.... +**........**.... +..********...... +..********...... +..********...... +12 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +......****...... +......****...... +......****...... +..************.. +..************.. +..************.. +......****...... +......****...... +......****...... +13 +....************ +....************ +....************ +....**........** +....**........** +....**........** +....************ +....************ +....************ +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +..****.......... +..****.......... +..****.......... +******.......... +******.......... +******.......... +****............ +****............ +****............ +14 +....************ +....************ +....************ +....**........** +....**........** +....**........** +....************ +....************ +....************ +....**........** +....**........** +....**........** +....**......**** +....**......**** +....**......**** +..****....****** +..****....****** +..****....****** +******....****.. +******....****.. +******....****.. +****............ +****............ +****............ +15 +......****...... +......****...... +......****...... +****..****..**** +****..****..**** +****..****..**** +....********.... +....********.... +....********.... +******....****** +******....****** +******....****** +******....****** +******....****** +******....****** +....********.... +....********.... +....********.... +****..****..**** +****..****..**** +****..****..**** +......****...... +......****...... +......****...... +16 +**.............. +**.............. +**.............. +******.......... +******.......... +******.......... +**********...... +**********...... +**********...... +**************.. +**************.. +**************.. +**********...... +**********...... +**********...... +******.......... +******.......... +******.......... +**.............. +**.............. +**.............. +................ +................ +................ +17 +............**.. +............**.. +............**.. +........******.. +........******.. +........******.. +....**********.. +....**********.. +....**********.. +**************.. +**************.. +**************.. +....**********.. +....**********.. +....**********.. +........******.. +........******.. +........******.. +............**.. +............**.. +............**.. +................ +................ +................ +18 +......****...... +......****...... +......****...... +....********.... +....********.... +....********.... +..************.. +..************.. +..************.. +......****...... +......****...... +......****...... +......****...... +......****...... +......****...... +..************.. +..************.. +..************.. +....********.... +....********.... +....********.... +......****...... +......****...... +......****...... +19 +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +20 +..************** +..************** +..************** +**....**....**.. +**....**....**.. +**....**....**.. +**....**....**.. +**....**....**.. +**....**....**.. +..******....**.. +..******....**.. +..******....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +................ +................ +................ +21 +....**********.. +....**********.. +....**********.. +..****......**** +..****......**** +..****......**** +....******...... +....******...... +....******...... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +....******...... +....******...... +....******...... +****....****.... +****....****.... +****....****.... +..********...... +..********...... +..********...... +22 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +..************.. +..************.. +..************.. +..************.. +..************.. +..************.. +..************.. +..************.. +..************.. +................ +................ +................ +23 +......****...... +......****...... +......****...... +....********.... +....********.... +....********.... +..************.. +..************.. +..************.. +......****...... +......****...... +......****...... +..************.. +..************.. +..************.. +....********.... +....********.... +....********.... +......****...... +......****...... +......****...... +**************** +**************** +**************** +24 +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +..**********.... +..**********.... +..**********.... +..**..**..**.... +..**..**..**.... +..**..**..**.... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +25 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +..**..**..**.... +..**..**..**.... +..**..**..**.... +..**********.... +..**********.... +..**********.... +....******...... +....******...... +....******...... +......**........ +......**........ +......**........ +................ +................ +................ +26 +................ +................ +................ +......****...... +......****...... +......****...... +........****.... +........****.... +........****.... +**************.. +**************.. +**************.. +........****.... +........****.... +........****.... +......****...... +......****...... +......****...... +................ +................ +................ +................ +................ +................ +27 +................ +................ +................ +....****........ +....****........ +....****........ +..****.......... +..****.......... +..****.......... +**************.. +**************.. +**************.. +..****.......... +..****.......... +..****.......... +....****........ +....****........ +....****........ +................ +................ +................ +................ +................ +................ +28 +................ +................ +................ +................ +................ +................ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..************.. +..************.. +..************.. +................ +................ +................ +................ +................ +................ +29 +................ +................ +................ +....**....**.... +....**....**.... +....**....**.... +..****....****.. +..****....****.. +..****....****.. +**************** +**************** +**************** +..****....****.. +..****....****.. +..****....****.. +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +................ +................ +................ +30 +................ +................ +................ +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +..**********.... +..**********.... +..**********.... +**************.. +**************.. +**************.. +**************.. +**************.. +**************.. +................ +................ +................ +................ +................ +................ +31 +................ +................ +................ +**************.. +**************.. +**************.. +**************.. +**************.. +**************.. +..**********.... +..**********.... +..**********.... +....******...... +....******...... +....******...... +......**........ +......**........ +......**........ +................ +................ +................ +................ +................ +................ +32 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +33 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +......**........ +......**........ +......**........ +................ +................ +................ +34 +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +35 +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +..************.. +..************.. +..************.. +....**....**.... +....**....**.... +....**....**.... +..************.. +..************.. +..************.. +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +36 +......****...... +......****...... +......****...... +....**********.. +....**********.. +....**********.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +............**.. +............**.. +............**.. +..**********.... +..**********.... +..**********.... +......****...... +......****...... +......****...... +................ +................ +................ +37 +................ +................ +................ +..****......**.. +..****......**.. +..****......**.. +..****....**.... +..****....**.... +..****....**.... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +....**....****.. +....**....****.. +....**....****.. +..**......****.. +..**......****.. +..**......****.. +................ +................ +................ +38 +....****........ +....****........ +....****........ +..**....**...... +..**....**...... +..**....**...... +....****........ +....****........ +....****........ +..**..**..****.. +..**..**..****.. +..**..**..****.. +**......**...... +**......**...... +**......**...... +**......**...... +**......**...... +**......**...... +..******..****.. +..******..****.. +..******..****.. +................ +................ +................ +39 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +40 +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +................ +................ +................ +41 +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +................ +................ +................ +42 +................ +................ +................ +..**......**.... +..**......**.... +..**......**.... +....******...... +....******...... +....******...... +**************.. +**************.. +**************.. +....******...... +....******...... +....******...... +..**......**.... +..**......**.... +..**......**.... +................ +................ +................ +................ +................ +................ +43 +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +................ +................ +................ +44 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +45 +................ +................ +................ +................ +................ +................ +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +46 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +47 +................ +................ +................ +............**.. +............**.. +............**.. +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +..**............ +..**............ +..**............ +................ +................ +................ +48 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**......****.. +..**......****.. +..**......****.. +..**....**..**.. +..**....**..**.. +..**....**..**.. +..**..**....**.. +..**..**....**.. +..**..**....**.. +..****......**.. +..****......**.. +..****......**.. +....********.... +....********.... +....********.... +................ +................ +................ +49 +......**........ +......**........ +......**........ +....****........ +....****........ +....****........ +..**..**........ +..**..**........ +..**..**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +..**********.... +..**********.... +..**********.... +................ +................ +................ +50 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +............**.. +............**.. +............**.. +........****.... +........****.... +........****.... +....****........ +....****........ +....****........ +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +................ +................ +................ +51 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +............**.. +............**.. +............**.. +......******.... +......******.... +......******.... +............**.. +............**.. +............**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +52 +........**...... +........**...... +........**...... +......****...... +......****...... +......****...... +....**..**...... +....**..**...... +....**..**...... +..**....**...... +..**....**...... +..**....**...... +**************.. +**************.. +**************.. +........**...... +........**...... +........**...... +......******.... +......******.... +......******.... +................ +................ +................ +53 +..************.. +..************.. +..************.. +..**............ +..**............ +..**............ +..**********.... +..**********.... +..**********.... +............**.. +............**.. +............**.. +............**.. +............**.. +............**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +54 +......******.... +......******.... +......******.... +....**.......... +....**.......... +....**.......... +..**............ +..**............ +..**............ +..**********.... +..**********.... +..**********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +55 +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +56 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +57 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....**********.. +....**********.. +....**********.. +............**.. +............**.. +............**.. +..........**.... +..........**.... +..........**.... +....******...... +....******...... +....******...... +................ +................ +................ +58 +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +59 +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +60 +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +..**............ +..**............ +..**............ +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +........**...... +........**...... +........**...... +................ +................ +................ +61 +................ +................ +................ +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +................ +................ +................ +62 +......**........ +......**........ +......**........ +........**...... +........**...... +........**...... +..........**.... +..........**.... +..........**.... +............**.. +............**.. +............**.. +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +................ +................ +................ +63 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +............**.. +............**.. +............**.. +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +................ +................ +................ +........**...... +........**...... +........**...... +................ +................ +................ +64 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**..********.. +..**..********.. +..**..********.. +..**..**....**.. +..**..**....**.. +..**..**....**.. +..**..********.. +..**..********.. +..**..********.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +................ +................ +................ +65 +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +66 +..**********.... +..**********.... +..**********.... +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....********.... +....********.... +....********.... +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +..**********.... +..**********.... +..**********.... +................ +................ +................ +67 +......******.... +......******.... +......******.... +....**......**.. +....**......**.. +....**......**.. +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +....**......**.. +....**......**.. +....**......**.. +......******.... +......******.... +......******.... +................ +................ +................ +68 +..********...... +..********...... +..********...... +....**....**.... +....**....**.... +....**....**.... +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**....**.... +....**....**.... +....**....**.... +..********...... +..********...... +..********...... +................ +................ +................ +69 +..************.. +..************.. +..************.. +....**......**.. +....**......**.. +....**......**.. +....**..**...... +....**..**...... +....**..**...... +....******...... +....******...... +....******...... +....**..**...... +....**..**...... +....**..**...... +....**......**.. +....**......**.. +....**......**.. +..************.. +..************.. +..************.. +................ +................ +................ +70 +..************.. +..************.. +..************.. +....**......**.. +....**......**.. +....**......**.. +....**..**...... +....**..**...... +....**..**...... +....******...... +....******...... +....******...... +....**..**...... +....**..**...... +....**..**...... +....**.......... +....**.......... +....**.......... +..******........ +..******........ +..******........ +................ +................ +................ +71 +......******.... +......******.... +......******.... +....**......**.. +....**......**.. +....**......**.. +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**....******.. +..**....******.. +..**....******.. +....**......**.. +....**......**.. +....**......**.. +......********.. +......********.. +......********.. +................ +................ +................ +72 +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +73 +....******...... +....******...... +....******...... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +................ +................ +................ +74 +........******.. +........******.. +........******.. +..........**.... +..........**.... +..........**.... +..........**.... +..........**.... +..........**.... +..........**.... +..........**.... +..........**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +....******...... +....******...... +....******...... +................ +................ +................ +75 +..****......**.. +..****......**.. +..****......**.. +....**....**.... +....**....**.... +....**....**.... +....**..**...... +....**..**...... +....**..**...... +....****........ +....****........ +....****........ +....**..**...... +....**..**...... +....**..**...... +....**....**.... +....**....**.... +....**....**.... +..****......**** +..****......**** +..****......**** +................ +................ +................ +76 +..******........ +..******........ +..******........ +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**......**.. +....**......**.. +....**......**.. +..************.. +..************.. +..************.. +................ +................ +................ +77 +..****......**** +..****......**** +..****......**** +..**..**..**..** +..**..**..**..** +..**..**..**..** +..**....**....** +..**....**....** +..**....**....** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +................ +................ +................ +78 +..****......**.. +..****......**.. +..****......**.. +..**..**....**.. +..**..**....**.. +..**..**....**.. +..**....**..**.. +..**....**..**.. +..**....**..**.. +..**......****.. +..**......****.. +..**......****.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +79 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +80 +..**********.... +..**********.... +..**********.... +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....********.... +....********.... +....********.... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +..******........ +..******........ +..******........ +................ +................ +................ +81 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**....**..**.. +..**....**..**.. +..**....**..**.. +....********.... +....********.... +....********.... +............**** +............**** +............**** +................ +................ +................ +82 +..**********.... +..**********.... +..**********.... +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....********.... +....********.... +....********.... +....**..**...... +....**..**...... +....**..**...... +....**....**.... +....**....**.... +....**....**.... +..******....**.. +..******....**.. +..******....**.. +................ +................ +................ +83 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +............**.. +............**.. +............**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +84 +..************** +..************** +..************** +..**....**....** +..**....**....** +..**....**....** +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +......******.... +......******.... +......******.... +................ +................ +................ +85 +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +86 +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +....**......**.. +....**......**.. +....**......**.. +......**..**.... +......**..**.... +......**..**.... +........**...... +........**...... +........**...... +................ +................ +................ +87 +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +....****..****.. +....****..****.. +....****..****.. +................ +................ +................ +88 +..**..........** +..**..........** +..**..........** +....**......**.. +....**......**.. +....**......**.. +......**..**.... +......**..**.... +......**..**.... +........**...... +........**...... +........**...... +......**..**.... +......**..**.... +......**..**.... +....**......**.. +....**......**.. +....**......**.. +..**..........** +..**..........** +..**..........** +................ +................ +................ +89 +..**..........** +..**..........** +..**..........** +....**......**.. +....**......**.. +....**......**.. +......**..**.... +......**..**.... +......**..**.... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +......******.... +......******.... +......******.... +................ +................ +................ +90 +..************** +..************** +..************** +..**........**.. +..**........**.. +..**........**.. +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +....**........** +....**........** +....**........** +..************** +..************** +..************** +................ +................ +................ +91 +..********...... +..********...... +..********...... +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..********...... +..********...... +..********...... +................ +................ +................ +92 +**.............. +**.............. +**.............. +..**............ +..**............ +..**............ +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +........**...... +........**...... +........**...... +..........**.... +..........**.... +..........**.... +............**.. +............**.. +............**.. +................ +................ +................ +93 +..********...... +..********...... +..********...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +..********...... +..********...... +..********...... +................ +................ +................ +94 +......**........ +......**........ +......**........ +....**..**...... +....**..**...... +....**..**...... +..**......**.... +..**......**.... +..**......**.... +**..........**.. +**..........**.. +**..........**.. +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +95 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +96 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +........**...... +........**...... +........**...... +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +97 +................ +................ +................ +................ +................ +................ +....********.... +....********.... +....********.... +............**.. +............**.. +............**.. +....**********.. +....**********.. +....**********.. +..**........**.. +..**........**.. +..**........**.. +....************ +....************ +....************ +................ +................ +................ +98 +..****.......... +..****.......... +..****.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**.......... +....**..******.. +....**..******.. +....**..******.. +....****......** +....****......** +....****......** +....****......** +....****......** +....****......** +....**..******.. +....**..******.. +....**..******.. +................ +................ +................ +99 +................ +................ +................ +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**............ +..**............ +..**............ +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +100 +..........****.. +..........****.. +..........****.. +............**.. +............**.. +............**.. +............**.. +............**.. +............**.. +....******..**.. +....******..**.. +....******..**.. +..**......****.. +..**......****.. +..**......****.. +..**......****.. +..**......****.. +..**......****.. +....******..**** +....******..**** +....******..**** +................ +................ +................ +101 +................ +................ +................ +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +................ +................ +................ +102 +........****.... +........****.... +........****.... +......**....**.. +......**....**.. +......**....**.. +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +................ +................ +................ +103 +................ +................ +................ +................ +................ +................ +....********..** +....********..** +....********..** +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....**********.. +....**********.. +....**********.. +............**.. +............**.. +............**.. +..**********.... +..**********.... +..**********.... +104 +..****.......... +..****.......... +..****.......... +....**.......... +....**.......... +....**.......... +....**..****.... +....**..****.... +....**..****.... +....****....**.. +....****....**.. +....****....**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +....**......**.. +..****......**.. +..****......**.. +..****......**.. +................ +................ +................ +105 +......**........ +......**........ +......**........ +................ +................ +................ +....****........ +....****........ +....****........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +................ +................ +................ +106 +............**.. +............**.. +............**.. +................ +................ +................ +..........****.. +..........****.. +..........****.. +............**.. +............**.. +............**.. +............**.. +............**.. +............**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +107 +..****.......... +..****.......... +..****.......... +....**.......... +....**.......... +....**.......... +....**....**.... +....**....**.... +....**....**.... +....**..**...... +....**..**...... +....**..**...... +....****........ +....****........ +....****........ +....**..**...... +....**..**...... +....**..**...... +....**....****.. +....**....****.. +....**....****.. +................ +................ +................ +108 +....****........ +....****........ +....****........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +................ +................ +................ +109 +................ +................ +................ +................ +................ +................ +..******..****.. +..******..****.. +..******..****.. +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +................ +................ +................ +110 +................ +................ +................ +................ +................ +................ +..**..******.... +..**..******.... +..**..******.... +..****......**.. +..****......**.. +..****......**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +111 +................ +................ +................ +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +112 +................ +................ +................ +................ +................ +................ +..****..****.... +..****..****.... +..****..****.... +....****....**.. +....****....**.. +....****....**.. +....****....**.. +....****....**.. +....****....**.. +....**..****.... +....**..****.... +....**..****.... +....**.......... +....**.......... +....**.......... +..******........ +..******........ +..******........ +113 +................ +................ +................ +................ +................ +................ +....****..****.. +....****..****.. +....****..****.. +..**....****.... +..**....****.... +..**....****.... +..**....****.... +..**....****.... +..**....****.... +....****..**.... +....****..**.... +....****..**.... +..........**.... +..........**.... +..........**.... +........******.. +........******.. +........******.. +114 +................ +................ +................ +................ +................ +................ +..****..****.... +..****..****.... +..****..****.... +....****....**.. +....****....**.. +....****....**.. +....**......**.. +....**......**.. +....**......**.. +....**.......... +....**.......... +....**.......... +..******........ +..******........ +..******........ +................ +................ +................ +115 +................ +................ +................ +................ +................ +................ +....**********.. +....**********.. +....**********.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +............**.. +............**.. +............**.. +..**********.... +..**********.... +..**********.... +................ +................ +................ +116 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**....**.. +......**....**.. +......**....**.. +........****.... +........****.... +........****.... +................ +................ +................ +117 +................ +................ +................ +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**......****.. +..**......****.. +..**......****.. +....******..**.. +....******..**.. +....******..**.. +................ +................ +................ +118 +................ +................ +................ +................ +................ +................ +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +....**......**.. +....**......**.. +....**......**.. +......**..**.... +......**..**.... +......**..**.... +........**...... +........**...... +........**...... +................ +................ +................ +119 +................ +................ +................ +................ +................ +................ +..**..........** +..**..........** +..**..........** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +..**....**....** +....****..****.. +....****..****.. +....****..****.. +................ +................ +................ +120 +................ +................ +................ +................ +................ +................ +..**......**.... +..**......**.... +..**......**.... +....**..**...... +....**..**...... +....**..**...... +......**........ +......**........ +......**........ +....**..**...... +....**..**...... +....**..**...... +..**......**.... +..**......**.... +..**......**.... +................ +................ +................ +121 +................ +................ +................ +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....**********.. +....**********.. +....**********.. +............**.. +............**.. +............**.. +..**********.... +..**********.... +..**********.... +122 +................ +................ +................ +................ +................ +................ +..**********.... +..**********.... +..**********.... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +..**********.... +..**********.... +..**********.... +................ +................ +................ +123 +........****.... +........****.... +........****.... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +..****.......... +..****.......... +..****.......... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +........****.... +........****.... +........****.... +................ +................ +................ +124 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +125 +....****........ +....****........ +....****........ +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +..........****.. +..........****.. +..........****.. +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +....****........ +....****........ +....****........ +................ +................ +................ +126 +....****....**.. +....****....**.. +....****....**.. +..**....****.... +..**....****.... +..**....****.... +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +127 +................ +................ +................ +........**...... +........**...... +........**...... +......**..**.... +......**..**.... +......**..**.... +....**......**.. +....**......**.. +....**......**.. +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..**..........** +..************** +..************** +..************** +................ +................ +................ +128 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**............ +..**............ +..**............ +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +........****.... +........****.... +........****.... +............**.. +............**.. +............**.. +....********.... +....********.... +....********.... +129 +................ +................ +................ +..**......**.... +..**......**.... +..**......**.... +................ +................ +................ +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +....**********.. +....**********.. +....**********.. +................ +................ +................ +130 +........****.... +........****.... +........****.... +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +................ +................ +................ +131 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +....******...... +....******...... +....******...... +..........**.... +..........**.... +..........**.... +....********.... +....********.... +....********.... +..**......**.... +..**......**.... +..**......**.... +....**********.. +....**********.. +....**********.. +................ +................ +................ +132 +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +....******...... +....******...... +....******...... +..........**.... +..........**.... +..........**.... +....********.... +....********.... +....********.... +..**......**.... +..**......**.... +..**......**.... +....**********.. +....**********.. +....**********.. +................ +................ +................ +133 +....****........ +....****........ +....****........ +................ +................ +................ +....******...... +....******...... +....******...... +..........**.... +..........**.... +..........**.... +....********.... +....********.... +....********.... +..**......**.... +..**......**.... +..**......**.... +....**********.. +....**********.. +....**********.. +................ +................ +................ +134 +......**........ +......**........ +......**........ +................ +................ +................ +....******...... +....******...... +....******...... +..........**.... +..........**.... +..........**.... +....********.... +....********.... +....********.... +..**......**.... +..**......**.... +..**......**.... +....**********.. +....**********.. +....**********.. +................ +................ +................ +135 +................ +................ +................ +................ +................ +................ +....********.... +....********.... +....********.... +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +..........****.. +..........****.. +..........****.. +......******.... +......******.... +......******.... +136 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +................ +................ +................ +137 +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +................ +................ +................ +138 +....****........ +....****........ +....****........ +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**............ +..**............ +..**............ +....********.... +....********.... +....********.... +................ +................ +................ +139 +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +......****...... +......****...... +......****...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +......******.... +......******.... +......******.... +................ +................ +................ +140 +..**********.... +..**********.... +..**********.... +**..........**.. +**..........**.. +**..........**.. +....****........ +....****........ +....****........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +................ +................ +................ +141 +....****........ +....****........ +....****........ +................ +................ +................ +......****...... +......****...... +......****...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +......******.... +......******.... +......******.... +................ +................ +................ +142 +..**........**.. +..**........**.. +..**........**.. +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +143 +......****...... +......****...... +......****...... +......****...... +......****...... +......****...... +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +144 +........****.... +........****.... +........****.... +................ +................ +................ +..**********.... +..**********.... +..**********.... +....**.......... +....**.......... +....**.......... +....******...... +....******...... +....******...... +....**.......... +....**.......... +....**.......... +..**********.... +..**********.... +..**********.... +................ +................ +................ +145 +................ +................ +................ +................ +................ +................ +....****....**** +....****....**** +....****....**** +........****.... +........****.... +........****.... +....************ +....************ +....************ +..**......**.... +..**......**.... +..**......**.... +....******..**** +....******..**** +....******..**** +................ +................ +................ +146 +......********** +......********** +......********** +....**....**.... +....**....**.... +....**....**.... +..**......**.... +..**......**.... +..**......**.... +..************** +..************** +..************** +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......****** +..**......****** +..**......****** +................ +................ +................ +147 +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +148 +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +149 +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +150 +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +151 +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +152 +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....**********.. +....**********.. +....**********.. +............**.. +............**.. +............**.. +....********.... +....********.... +....********.... +153 +..**........**.. +..**........**.. +..**........**.. +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....**....**.... +....**....**.... +....**....**.... +......****...... +......****...... +......****...... +................ +................ +................ +154 +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +155 +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +....**********.. +....**********.. +....**********.. +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +....**********.. +....**********.. +....**********.. +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +156 +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +....**.......... +....**.......... +....**.......... +..******........ +..******........ +..******........ +....**.......... +....**.......... +....**.......... +..**........**.. +..**........**.. +..**........**.. +..**********.... +..**********.... +..**********.... +................ +................ +................ +157 +..**......**.... +..**......**.... +..**......**.... +....**..**...... +....**..**...... +....**..**...... +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +158 +**********...... +**********...... +**********...... +..**....****.... +..**....****.... +..**....****.... +..********...... +..********...... +..********...... +..**......**.... +..**......**.... +..**......**.... +..**....******** +..**....******** +..**....******** +..**......**.... +..**......**.... +..**......**.... +..**......**..** +..**......**..** +..**......**..** +******....****.. +******....****.. +******....****.. +159 +......******.... +......******.... +......******.... +......**....**.. +......**....**.. +......**....**.. +......**........ +......**........ +......**........ +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +**....**........ +**....**........ +**....**........ +..****.......... +..****.......... +..****.......... +160 +........****.... +........****.... +........****.... +................ +................ +................ +....******...... +....******...... +....******...... +..........**.... +..........**.... +..........**.... +....********.... +....********.... +....********.... +..**......**.... +..**......**.... +..**......**.... +....**********.. +....**********.. +....**********.. +................ +................ +................ +161 +........****.... +........****.... +........****.... +................ +................ +................ +......****...... +......****...... +......****...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +......******.... +......******.... +......******.... +................ +................ +................ +162 +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +163 +................ +................ +................ +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +164 +....****....**.. +....****....**.. +....****....**.. +..**....****.... +..**....****.... +..**....****.... +................ +................ +................ +..**********.... +..**********.... +..**********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +165 +....****....**.. +....****....**.. +....****....**.. +..**....****.... +..**....****.... +..**....****.... +................ +................ +................ +..****......**.. +..****......**.. +..****......**.. +..**..**....**.. +..**..**....**.. +..**..**....**.. +..**....**..**.. +..**....**..**.. +..**....**..**.. +..**......****.. +..**......****.. +..**......****.. +................ +................ +................ +166 +....********.... +....********.... +....********.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +....**********.. +....**********.. +....**********.. +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +................ +................ +................ +167 +....******...... +....******...... +....******...... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +....******...... +....******...... +....******...... +................ +................ +................ +..**********.... +..**********.... +..**********.... +................ +................ +................ +................ +................ +................ +168 +......**........ +......**........ +......**........ +................ +................ +................ +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +..**............ +..**............ +..**............ +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +169 +................ +................ +................ +................ +................ +................ +................ +................ +................ +..************.. +..************.. +..************.. +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +................ +................ +................ +................ +................ +................ +170 +................ +................ +................ +................ +................ +................ +................ +................ +................ +..************.. +..************.. +..************.. +............**.. +............**.. +............**.. +............**.. +............**.. +............**.. +................ +................ +................ +................ +................ +................ +171 +..**........**.. +..**........**.. +..**........**.. +****......**.... +****......**.... +****......**.... +..**....**...... +..**....**...... +..**....**...... +********..****.. +********..****.. +********..****.. +....**..**....** +....**..**....** +....**..**....** +..**........**** +..**........**** +..**........**** +**......****.... +**......****.... +**......****.... +......********** +......********** +......********** +172 +..**........**.. +..**........**.. +..**........**.. +****......**.... +****......**.... +****......**.... +..**....**..**.. +..**....**..**.. +..**....**..**.. +********..****.. +********..****.. +********..****.. +....**..**..**.. +....**..**..**.. +....**..**..**.. +..**..********** +..**..********** +..**..********** +**..........**.. +**..........**.. +**..........**.. +............**.. +............**.. +............**.. +173 +................ +................ +................ +......**........ +......**........ +......**........ +................ +................ +................ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +174 +................ +................ +................ +......**....**.. +......**....**.. +......**....**.. +....**....**.... +....**....**.... +....**....**.... +..**....**...... +..**....**...... +..**....**...... +....**....**.... +....**....**.... +....**....**.... +......**....**.. +......**....**.. +......**....**.. +................ +................ +................ +................ +................ +................ +175 +................ +................ +................ +..**....**...... +..**....**...... +..**....**...... +....**....**.... +....**....**.... +....**....**.... +......**....**.. +......**....**.. +......**....**.. +....**....**.... +....**....**.... +....**....**.... +..**....**...... +..**....**...... +..**....**...... +................ +................ +................ +................ +................ +................ +176 +....**......**.. +....**......**.. +....**......**.. +**......**...... +**......**...... +**......**...... +....**......**.. +....**......**.. +....**......**.. +**......**...... +**......**...... +**......**...... +....**......**.. +....**......**.. +....**......**.. +**......**...... +**......**...... +**......**...... +....**......**.. +....**......**.. +....**......**.. +**......**...... +**......**...... +**......**...... +177 +..**..**..**..** +..**..**..**..** +..**..**..**..** +**..**..**..**.. +**..**..**..**.. +**..**..**..**.. +..**..**..**..** +..**..**..**..** +..**..**..**..** +**..**..**..**.. +**..**..**..**.. +**..**..**..**.. +..**..**..**..** +..**..**..**..** +..**..**..**..** +**..**..**..**.. +**..**..**..**.. +**..**..**..**.. +..**..**..**..** +..**..**..**..** +..**..**..**..** +**..**..**..**.. +**..**..**..**.. +**..**..**..**.. +178 +****..****..**** +****..****..**** +****..****..**** +..******..****** +..******..****** +..******..****** +****..****..**** +****..****..**** +****..****..**** +******..******.. +******..******.. +******..******.. +****..****..**** +****..****..**** +****..****..**** +..******..****** +..******..****** +..******..****** +****..****..**** +****..****..**** +****..****..**** +******..******.. +******..******.. +******..******.. +179 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +180 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +********........ +********........ +********........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +181 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +********........ +********........ +********........ +......**........ +......**........ +......**........ +********........ +********........ +********........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +182 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +********..**.... +********..**.... +********..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +183 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +************.... +************.... +************.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +184 +................ +................ +................ +................ +................ +................ +********........ +********........ +********........ +......**........ +......**........ +......**........ +********........ +********........ +********........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +185 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +********..**.... +********..**.... +********..**.... +..........**.... +..........**.... +..........**.... +********..**.... +********..**.... +********..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +186 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +187 +................ +................ +................ +................ +................ +................ +************.... +************.... +************.... +..........**.... +..........**.... +..........**.... +********..**.... +********..**.... +********..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +188 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +********..**.... +********..**.... +********..**.... +..........**.... +..........**.... +..........**.... +************.... +************.... +************.... +................ +................ +................ +................ +................ +................ +................ +................ +................ +189 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +************.... +************.... +************.... +................ +................ +................ +................ +................ +................ +................ +................ +................ +190 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +********........ +********........ +********........ +......**........ +......**........ +......**........ +********........ +********........ +********........ +................ +................ +................ +................ +................ +................ +................ +................ +................ +191 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +********........ +********........ +********........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +192 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......********** +......********** +......********** +................ +................ +................ +................ +................ +................ +................ +................ +................ +193 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +**************** +**************** +**************** +................ +................ +................ +................ +................ +................ +................ +................ +................ +194 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +195 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +196 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +................ +................ +................ +................ +................ +................ +................ +................ +................ +197 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +**************** +**************** +**************** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +198 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +199 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..****** +......**..****** +......**..****** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +200 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..****** +......**..****** +......**..****** +......**........ +......**........ +......**........ +......********** +......********** +......********** +................ +................ +................ +................ +................ +................ +................ +................ +................ +201 +................ +................ +................ +................ +................ +................ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......**..****** +......**..****** +......**..****** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +202 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +********..****** +********..****** +********..****** +................ +................ +................ +**************** +**************** +**************** +................ +................ +................ +................ +................ +................ +................ +................ +................ +203 +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +................ +................ +................ +********..****** +********..****** +********..****** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +204 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..****** +......**..****** +......**..****** +......**........ +......**........ +......**........ +......**..****** +......**..****** +......**..****** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +205 +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +................ +................ +................ +**************** +**************** +**************** +................ +................ +................ +................ +................ +................ +................ +................ +................ +206 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +********..****** +********..****** +********..****** +................ +................ +................ +********..****** +********..****** +********..****** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +207 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +**************** +**************** +**************** +................ +................ +................ +**************** +**************** +**************** +................ +................ +................ +................ +................ +................ +................ +................ +................ +208 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +**************** +**************** +**************** +................ +................ +................ +................ +................ +................ +................ +................ +................ +209 +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +................ +................ +................ +**************** +**************** +**************** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +210 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +211 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......********** +......********** +......********** +................ +................ +................ +................ +................ +................ +................ +................ +................ +212 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......********** +......********** +......********** +................ +................ +................ +................ +................ +................ +................ +................ +................ +213 +................ +................ +................ +................ +................ +................ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +214 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +......********** +......********** +......********** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +215 +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +**************** +**************** +**************** +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +216 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +**************** +**************** +**************** +......**........ +......**........ +......**........ +**************** +**************** +**************** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +217 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +********........ +********........ +********........ +................ +................ +................ +................ +................ +................ +................ +................ +................ +218 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +......********** +......********** +......********** +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +219 +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +220 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +221 +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +********........ +222 +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +........******** +223 +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +**************** +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +224 +................ +................ +................ +................ +................ +................ +....****......** +....****......** +....****......** +..**....**..**.. +..**....**..**.. +..**....**..**.. +..**......**.... +..**......**.... +..**......**.... +..**....**..**.. +..**....**..**.. +..**....**..**.. +....****......** +....****......** +....****......** +................ +................ +................ +225 +................ +................ +................ +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**********.... +..**********.... +..**********.... +..**........**.. +..**........**.. +..**........**.. +..**********.... +..**********.... +..**********.... +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +226 +................ +................ +................ +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +................ +................ +................ +227 +................ +................ +................ +....************ +....************ +....************ +..**..**..**.... +..**..**..**.... +..**..**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +......**..**.... +................ +................ +................ +228 +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +....**.......... +....**.......... +....**.......... +......****...... +......****...... +......****...... +....**.......... +....**.......... +....**.......... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +................ +................ +................ +229 +................ +................ +................ +................ +................ +................ +....**********.. +....**********.. +....**********.. +..**....**...... +..**....**...... +..**....**...... +..**....**...... +..**....**...... +..**....**...... +..**....**...... +..**....**...... +..**....**...... +....****........ +....****........ +....****........ +................ +................ +................ +230 +................ +................ +................ +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..********..**.. +..********..**.. +..********..**.. +..**............ +..**............ +..**............ +..**............ +..**............ +..**............ +**.............. +**.............. +**.............. +231 +................ +................ +................ +....****....**** +....****....**** +....****....**** +..**....****.... +..**....****.... +..**....****.... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +................ +................ +................ +232 +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +....******...... +....******...... +....******...... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +....******...... +....******...... +....******...... +......**........ +......**........ +......**........ +..**********.... +..**********.... +..**********.... +233 +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +..**........**.. +..**........**.. +..**........**.. +..************.. +..************.. +..************.. +..**........**.. +..**........**.. +..**........**.. +....**....**.... +....**....**.... +....**....**.... +......****...... +......****...... +......****...... +................ +................ +................ +234 +......****...... +......****...... +......****...... +....**....**.... +....**....**.... +....**....**.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +....**....**.... +..****....****.. +..****....****.. +..****....****.. +................ +................ +................ +235 +......******.... +......******.... +......******.... +....**.......... +....**.......... +....**.......... +......****...... +......****...... +......****...... +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +....********.... +....********.... +....********.... +................ +................ +................ +236 +................ +................ +................ +..****......**.. +..****......**.. +..****......**.. +**....**..**..** +**....**..**..** +**....**..**..** +**......**....** +**......**....** +**......**....** +**....**..**..** +**....**..**..** +**....**..**..** +..****......**.. +..****......**.. +..****......**.. +................ +................ +................ +................ +................ +................ +237 +............**.. +............**.. +............**.. +..........**.... +..........**.... +..........**.... +....********.... +....********.... +....********.... +..**....**..**.. +..**....**..**.. +..**....**..**.. +..**..**....**.. +..**..**....**.. +..**..**....**.. +....********.... +....********.... +....********.... +..**............ +..**............ +..**............ +**.............. +**.............. +**.............. +238 +........****.... +........****.... +........****.... +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +....********.... +....********.... +....********.... +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +........****.... +........****.... +........****.... +................ +................ +................ +239 +....********.... +....********.... +....********.... +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +..**........**.. +................ +................ +................ +240 +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +................ +................ +................ +241 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +..**********.... +..**********.... +..**********.... +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +................ +................ +................ +..**********.... +..**********.... +..**********.... +................ +................ +................ +242 +......**........ +......**........ +......**........ +........**...... +........**...... +........**...... +..........**.... +..........**.... +..........**.... +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +243 +........**...... +........**...... +........**...... +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +......**........ +......**........ +......**........ +........**...... +........**...... +........**...... +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +244 +........****.... +........****.... +........****.... +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**....**.. +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +245 +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +......**........ +**....**........ +**....**........ +**....**........ +**....**........ +**....**........ +**....**........ +..****.......... +..****.......... +..****.......... +246 +......****...... +......****...... +......****...... +......****...... +......****...... +......****...... +................ +................ +................ +..************.. +..************.. +..************.. +................ +................ +................ +......****...... +......****...... +......****...... +......****...... +......****...... +......****...... +................ +................ +................ +247 +................ +................ +................ +....****....**.. +....****....**.. +....****....**.. +..**....****.... +..**....****.... +..**....****.... +................ +................ +................ +....****....**.. +....****....**.. +....****....**.. +..**....****.... +..**....****.... +..**....****.... +................ +................ +................ +................ +................ +................ +248 +....****........ +....****........ +....****........ +..**....**...... +..**....**...... +..**....**...... +..**....**...... +..**....**...... +..**....**...... +....****........ +....****........ +....****........ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +249 +................ +................ +................ +................ +................ +................ +................ +................ +................ +......****...... +......****...... +......****...... +......****...... +......****...... +......****...... +................ +................ +................ +................ +................ +................ +................ +................ +................ +250 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +......****...... +......****...... +......****...... +................ +................ +................ +................ +................ +................ +................ +................ +................ +251 +........******** +........******** +........******** +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +........**...... +****....**...... +****....**...... +****....**...... +....**..**...... +....**..**...... +....**..**...... +......****...... +......****...... +......****...... +252 +..********...... +..********...... +..********...... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +..**......**.... +................ +................ +................ +................ +................ +................ +................ +................ +................ +253 +....****........ +....****........ +....****........ +..**....**...... +..**....**...... +..**....**...... +......**........ +......**........ +......**........ +....**.......... +....**.......... +....**.......... +..********...... +..********...... +..********...... +................ +................ +................ +................ +................ +................ +................ +................ +................ +254 +................ +................ +................ +................ +................ +................ +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +....********.... +................ +................ +................ +................ +................ +................ +255 +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ diff --git a/Lib/foo.c b/Lib/foo.c index 9b16c66..ef70caf 100644 --- a/Lib/foo.c +++ b/Lib/foo.c @@ -10,5 +10,10 @@ int main(int argc, char *argv[]) Image_print_version(2); Image_print_sizeof_structs("foo"); +if (2==argc) + Image_t16x24_essai("16x24thin", argv[1], "16x24.tga"); +else + Image_t16x24_essai("16x24thin", "0123456789abcdef", "16x24.tga"); + return 0; } diff --git a/Lib/text16x24.c b/Lib/text16x24.c index 6dcde6b..9e61a52 100644 --- a/Lib/text16x24.c +++ b/Lib/text16x24.c @@ -16,20 +16,24 @@ typedef struct { } Char_16x24; /* go, go, go, have a global var */ -Char_16x24 chars_16x24[256]; +/* 14 septembre 2020, make it static */ +static Char_16x24 chars_16x24[256]; /*::------------------------------------------------------------------::*/ /* il n'y a encore rien dans cette fonction, car je suis en train de construire un éditeur de fonte adapté a _mes_ besoins. - dès qu'il commencera à être utilisable, et surtout dès que les + dès qu'il commencera a etre utilisable, et surtout dès que les spécifications du format de fichier seront relativement figées, je commencerais à coder la chose. */ +/* 15 septembre 2022 : rien n'est fait, c'est un scandale ! */ + int Image_t16x24_binload(char *fontname, uint8_t *zone, int flag) { fprintf(stderr, "Don't know how to load '%s' in binary mode\n", fontname); +fprintf(stderr, " address %p flags 0x%x\n", zone, flag); return FUNC_NOT_FINISH; } @@ -40,20 +44,17 @@ int Image_t16x24_txtload(char *fontname, uint8_t *zone, int flags) { FILE *fp; int numchar; -int foo, bar, x, y, eol, mask; +int foo, x, y, eol, mask; char ligne[20+1]; uint16_t mot; -if ( NULL == (fp=Image_must_fopen(fontname, "r", 0)) ) - { +fprintf(stderr, ">>> %s ( '%s' %p 0x%x )\n", __func__, fontname, zone, flags); + +if ( NULL == (fp=Image_must_fopen(fontname, "r", 0)) ) { fprintf(stderr, "can't open %s\n", fontname); return FILE_NOT_FOUND; } -#if DEBUG_LEVEL -fprintf(stderr, "%s: trying to load '%s' (%d)\n", __func__, fontname, flags); -#endif - /* 16 juin 2015 : now we can erase the whole font by setting bit 0 of flags to one */ if (flags & 1) { @@ -61,20 +62,17 @@ if (flags & 1) { memset(chars_16x24, 0, sizeof(chars_16x24)); } -while ( 1 == fscanf(fp, "%d\n", &numchar) ) - { - if ( (numchar<0) || (numchar>255) ) - { +while ( 1 == fscanf(fp, "%d\n", &numchar) ) { + if ( (numchar<0) || (numchar>255) ) { fprintf(stderr, "char %d out of range\n", numchar); break; } #if DEBUG_LEVEL > 1 - fprintf(stderr, "------- Char %3d '%c'\n", numchar, + fprintf(stderr, "-- char %3d '%c'\n", numchar, isprint(numchar) ? numchar : ' '); #endif - for (y=0; y<24; y++) - { + for (y=0; y<24; y++) { /* lecture d'une ligne d'ascii-pixels */ memset(ligne, '\0', 20); if ( NULL==fgets(ligne, 20, fp) ) @@ -83,7 +81,7 @@ while ( 1 == fscanf(fp, "%d\n", &numchar) ) } foo = strlen(ligne); eol = ligne[16]; - if (foo!=17 || eol!='\n') + if (17!=foo || '\n'!=eol) { fprintf(stderr, "%s: bad line: %3d %3d %3d\n", __func__, y, foo, eol); @@ -124,8 +122,8 @@ return 0; /*::------------------------------------------------------------------::*/ int Image_t16x24_pltch_exp(Image_Desc *img, int lettre, int xpos, int ypos) { -int x, y; -uint16_t mask; +int x, y; +uint16_t mask; #if DEBUG_LEVEL > 1 @@ -136,13 +134,11 @@ fprintf(stderr, "%s: lettre %3d '%c' %4d %4d\n", __func__, lettre, for (x=0; x<16; x++) for (y=0; y<24; y++) Image_plotRGB(img, x+xpos, y+ypos, 60, 60, 80); -for (y=0; y<24; y++) - { + +for (y=0; y<24; y++) { mask = 0x8000; - for (x=0; x<16; x++) - { - if (chars_16x24[lettre].bits[y] & mask) - { + for (x=0; x<16; x++) { + if (chars_16x24[lettre].bits[y] & mask) { #if DEBUG_LEVEL > 2 putchar('X'); #endif @@ -164,29 +160,28 @@ return FUNC_IS_BETA; int Image_t16x24_pltch_1(Image_Desc *img, int lettre, int xpos, int ypos, RGBA *pap, RGBA *ink, int flags) { -int x, y, rs, gs, bs; -int rp, gp, bp; -int x2, y2; +int x, y, rs, gs, bs; +int rp, gp, bp; +int x2, y2; uint16_t mask; -/* safety plug */ - +if (flags) { + fprintf(stderr, "in %s, useless flags 0x%x is useless\n", + __func__, flags); + } #if DEBUG_LEVEL > 1 fprintf(stderr, "%s: ltr %3d '%c' %4d %4d\n", __func__, lettre, isprint(lettre) ? lettre : ' ', xpos, ypos); #endif -for (y=0; y<24; y++) - { +for (y=0; y<24; y++) { mask = 0x8000; y2 = y + ypos; - for (x=0; x<16; x++) - { + for (x=0; x<16; x++) { x2 = x + xpos; Image_getRGB(img, x2, y2, &rs, &gs, &bs); - if (chars_16x24[lettre].bits[y] & mask) - { + if (chars_16x24[lettre].bits[y] & mask) { #if DEBUG_LEVEL > 1 putchar('O'); #endif @@ -194,8 +189,7 @@ for (y=0; y<24; y++) gp = ((gs*(255-ink->a))+(ink->g*ink->a)) / 255; bp = ((bs*(255-ink->a))+(ink->b*ink->a)) / 255; } - else - { + else { #if DEBUG_LEVEL > 1 putchar('.'); #endif @@ -214,7 +208,6 @@ for (y=0; y<24; y++) return FUNC_IS_ALPHA;/* BETIC ? */ } /*::------------------------------------------------------------------::*/ -/*::------------------------------------------------------------------::*/ int Image_t16x24_pltstr_1(Image_Desc *img, char *str, int x, int y, RGBA *paper, RGBA *ink, int flags) { @@ -225,15 +218,14 @@ len = strlen(str); fprintf(stderr, "%s: '%s' at %d,%d\n", __func__, str, x, y); #endif -for (foo=0; foo 1 fprintf(stderr, "%4d %c\n", foo, str[foo]); #endif Image_t16x24_pltch_1(img, str[foo], x+(foo*16), y, paper, ink, flags); } -return FUNC_IS_ALPHA; /* BETIC ? */ +return FUNC_IS_BETA; } /*::------------------------------------------------------------------::*/ /*::------------------------------------------------------------------::*/ @@ -255,14 +247,13 @@ ltxt = strlen(texte); largeur = 16 * ltxt; img = Image_alloc(largeur, 24, 3); -if (NULL == img) - { +if (NULL == img) { + fprintf(stderr, "no mem in %s\n", __func__); abort(); } Image_clear(img, 0, 0, 0); -for (foo=0; foo