[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]

    {..$define First} { disable to force loading of file }

    {use this if you launch the program for the first time (you also may add a
    code to detect if the file already exiists but... normally, you should use
    this option once.}

    program GenSmallCar;
    {CopyRight Thierry De Leeuw 1994}
    uses crt, dos, graph;

    Type TSmallCar = Array [0..8] of Byte;
         PSmallCar = ^TSmallCar;

    var  SmallCar : Array[32..180] of PSmallCar;
         Buffer   : Array[0..7,0..8] of Char;
         grDriver : Integer;
         grMode   : Integer;
         ErrCode  : Integer;
         EnCours  : Byte;

    Procedure ReserveMemoire;
    var i : byte;
    begin
       For i := 32 to 180 do
       begin
          New(SmallCar[i]);
       end;
    end;

    procedure ChargeTable;
    var Fichier : Text;
        i       : byte;
        j       : byte;
    begin
       {$Ifndef First}
       Assign(Fichier, 'Small.FON');
       Reset(Fichier);
       {$Endif}
       For i := 32 to 180 do
       begin
          for j := 0 to 8 do
          begin
             {$IFDEF First}
             SmallCar[i]^[j] := 0;
             {$Else}
             readLn(Fichier, SmallCar[i]^[j]);
             {$Endif}
          end;
          {$Ifndef First}
          Readln(Fichier);
          {$Endif}
       end;
       {$Ifndef First}
       Close(Fichier);
       {$endif}
    end;

    function Analyse(Valeur: byte) : String;
    var Tmp : String[19];
    begin
       Tmp := ' ';
       Analyse := Tmp

    end;

    Procedure Update(No : Byte);
    var i : byte;
        j : byte;

    begin
       ClrScr;
       LowVideo;
       GotoXY(22,1);
       Write('Edition du caractŠre nø ',No:3,' - "',Chr(No),'".');
       GotoXY(22,2);
       Write('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ');
       gotoXY(30,4);
       Write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
       gotoXY(30,5);
       Write('º                 º');
       gotoXY(30,6);
       Write('º                 º');
       gotoXY(30,7);
       Write('º                 º');
       gotoXY(30,8);
       Write('º                 º');
       gotoXY(30,9);
       Write('º                 º');
       gotoXY(30,10);
       Write('º                 º');
       gotoXY(30,11);
       Write('º                 º');
       gotoXY(30,12);
       Write('º                 º');
       gotoXY(30,13);
       Write('º                 º');
       gotoXY(30,14);
       Write('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼');
       For i := 0 to 8 do
       begin
          gotoXY(31,5+i);
          For j := 0 to 7 do
             Write(' ' + Buffer[j,i]);
       end;
    end;

    Procedure Bufferize(No : Byte);
    var i : byte;
    begin
       for i := 0 to 8 do
       begin
          if SmallCar[No]^[i] and 1 <> 0 then Buffer[0,i] := '*' else Buffer[0,i]
    := 'ú';
          if SmallCar[No]^[i] and 2 <> 0 then Buffer[1,i] := '*' else Buffer[1,i]
    := 'ú';
          if SmallCar[No]^[i] and 4 <> 0 then Buffer[2,i] := '*' else Buffer[2,i]
    := 'ú';
          if SmallCar[No]^[i] and 8 <> 0 then Buffer[3,i] := '*' else Buffer[3,i]
    := 'ú';
          if SmallCar[No]^[i] and 16 <> 0 then Buffer[4,i] := '*' else Buffer[4,i]
    := 'ú';
          if SmallCar[No]^[i] and 32 <> 0 then Buffer[5,i] := '*' else Buffer[5,i]
    := 'ú';
          if SmallCar[No]^[i] and 64 <> 0 then Buffer[6,i] := '*' else Buffer[6,i]
    := 'ú';
          if SmallCar[No]^[i] and 128 <> 0 then Buffer[7,i] := '*' else
    Buffer[7,i] := 'ú';

       end;
    end;

    procedure Encode(No : Byte);
    var i,j : byte;
    begin
       for i := 0 to 8 do
       begin
          SmallCar[No]^[i] := 0;
          if Buffer[0,i] = '*' then SmallCar[No]^[i] := 1;
          if Buffer[1,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 2;
          if Buffer[2,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 4;
          if Buffer[3,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 8;
          if Buffer[4,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 16;
          if Buffer[5,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 32;
          if Buffer[6,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 64;
          if Buffer[7,i] = '*' then SmallCar[No]^[i] := SmallCar[No]^[i] + 128;
       end;
    end;

    procedure Preview;
    var i, j : byte;
    begin
       initGraph(grDriver,GrMode,'\turbo\tp\');
       for i := 0 to 8 do
       begin
          for j := 0 to 7 do
          begin
             if Buffer[j,i] = '*' then putpixel(j+GetMaxX div 2 ,i+GetMaxY div
    2,15);
          end;
       end;
       readkey;
       closeGraph;
    end;

    procedure PreviewAll;
    var i, j, k : byte;
    begin
       initGraph(grDriver,GrMode,'\turbo\tp\');
       for k := 32 to 96 do
       begin
          Bufferize(k);
          for i := 0 to 8 do
          begin
             for j := 0 to 7 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-32) * 9 ,i+GetMaxY div
    2-10,15);
             end;
          end;
       end;
       for k := 97 to 180 do
       begin
          Bufferize(k);
          for i := 0 to 8 do
          begin
             for j := 0 to 7 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-97) * 9 ,i+GetMaxY div
    2+10,15);
             end;
          end;
       end;
       readkey;
       closeGraph;
    end;

    function Edit(No : byte) : Char;
    var x, y : byte;
        car  : Char;
        Sortie : Boolean;
        Go     : byte;
    begin
       UpDate(No);
       x := 0;
       y := 0;
       Sortie := false;

       repeat
          GotoXY(32 + 2*x,5+y);
          HighVideo;
          Write(Buffer[x,y]);
          GotoXY(32 + 2*x,5+y);
          repeat
          until keypressed;
          car := ReadKey;
          GotoXY(32 + 2*x,5+y);
          LowVideo;
          Write(Buffer[x,y]);
          if (car = 'q') or (car = 'Q') then car := #13;
          if car = #0 then car := ReadKey;
          case car of
             '2',chr(80)   : if y = 8 then y := 0 else inc(y);
             '8',chr(72)   : if y = 0 then y := 8 else dec(y);
             '4',chr(75)   : if x = 0 then x := 7 else dec(x);
             '6',chr(77)   : if x = 7 then x := 0 else inc(x);
             ' '           : if Buffer[x,y] = '*' then Buffer[x,y] := 'ú' else
    Buffer[x,y] := '*';
             #13, #81, #73 : Sortie := true;
             #27           : Sortie := True;
             'G','g'       : begin
                                GotoXY(20,24);
                                Write('Aller … quel code ascii ? ');
                                Read(Go);
                                if (Go >= 32) and (go <= 180) then
                                begin
                                   Encode(No);
                                   EnCours := Go -1;
                                   Car := #81;
                                   Sortie := true;
                                end;
                                GotoXY(1,24);
                                ClrEol;
                             end;

             'v'           : begin
                               Preview;
                               update(No);
                             end;
             'a'           : begin
                                Encode(No);
                                PreviewAll;
                                Bufferize(No);
                                Update(No);
                             end;
          end;
       until (sortie);
       Encode(No);
       Edit := Car;
    end;

    procedure EditeTable;
    var fin     : boolean;
        Car     : char;
        Car_Retour : char;
    begin
       fin := false;
       Encours := 32;
       repeat
          Bufferize(Encours);
          Car_Retour := Edit(EnCours);
          case car_Retour of
             #13 : begin
                      gotoXY(20,24);
                      Write('Quitter ? ');
                      Car := UpCase(readKey);
                      GotoXY(1,24);
                      ClrEol;
                      if Car = 'O' then Fin := true;
                   end;
             #81 : begin
                      if EnCours = 180 then Encours := 32 else inc(EnCours);
                   end;
             #73 : begin
                      if EnCours = 32 then Encours := 180 else dec(EnCours);
                   end;
             #27 : begin
                      gotoXY(20,24);
                      Write('Abandon des modifications ? ');
                      Car := UpCase(readKey);
                      GotoXY(1,24);
                      ClrEol;
                      if Car = 'O' then Halt(0);
                   end;
          end;
       until fin;
    end;

    procedure SauveTable;
    var Fichier : Text;
        i       : byte;
        j       : byte;
    begin
       Assign(Fichier, 'Small.FON');
       Rewrite(Fichier);
       For i := 32 to 180 do
       begin
          for j := 0 to 8 do
          begin
             writeLn(Fichier, SmallCar[i]^[j]);
          end;
          WriteLn(Fichier);
       end;
       Close(Fichier);
    end;

    begin
       DetectGraph(GrDriver, GrMode);
       InitGraph(grDriver, grMode,'\turbo\tp\');
       ErrCode := GraphResult;
       if ErrCode <> grOk then
       begin
         Writeln('Graphics error:', GraphErrorMsg(ErrCode));
         Halt(255);
       end;
       CloseGraph;

       NormVideo;
       ReserveMemoire;
       ChargeTable;
       EditeTable;
       SauveTable;
    end.

    {$define}
    {same remark as above}

    program GenMidCar;
    {CopyRight Thierry De Leeuw 1994}
    uses crt, dos, graph;

    Type TMidCar = Array [0..18] of Word;
         PMidCar = ^TMidCar;

    var  MidCar : Array[32..180] of PMidCar;
         Buffer   : Array[0..15,0..18] of Char;
         grDriver : Integer;
         grMode   : Integer;
         ErrCode  : Integer;
         EnCours  : Byte;

    Procedure ReserveMemoire;
    var i : byte;
    begin
       For i := 32 to 180 do
       begin
          New(MidCar[i]);
       end;
    end;

    procedure ChargeTable;
    var Fichier : Text;
        i       : byte;
        j       : byte;
    begin
       {$Ifndef First}
       Assign(Fichier, 'Mid.FON');
       Reset(Fichier);
       {$Endif}
       For i := 32 to 180 do
       begin
          for j := 0 to 18 do
          begin
             {$IFDEF First}
             MidCar[i]^[j] := 0;
             {$Else}
             readLn(Fichier, MidCar[i]^[j]);
             {$Endif}
          end;
          {$Ifndef First}
          Readln(Fichier);
          {$Endif}
       end;
       {$Ifndef First}
       Close(Fichier);
       {$endif}
    end;

    function Analyse(Valeur: byte) : String;
    var Tmp : String[19];
    begin
       Tmp := ' ';
       Analyse := Tmp

    end;

    Procedure Update(No : Byte);
    var i : byte;
        j : byte;

    begin
       ClrScr;
       LowVideo;
       GotoXY(22,1);
       Write('Edition du caractŠre nø ',No:3,' - "',Chr(No),'".');
       GotoXY(22,2);
       Write('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ');
       gotoXY(20,4);
       Write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
       gotoXY(20,5);
       Write('º                                 º');
       gotoXY(20,6);
       Write('º                                 º');
       gotoXY(20,7);
       Write('º                                 º');
       gotoXY(20,8);
       Write('º                                 º');
       gotoXY(20,9);
       Write('º                                 º');
       gotoXY(20,10);
       Write('º                                 º');
       gotoXY(20,11);
       Write('º                                 º');
       gotoXY(20,12);
       Write('º                                 º');
       gotoXY(20,13);
       Write('º                                 º');
       gotoXY(20,14);
       Write('º                                 º');
       gotoXY(20,15);
       Write('º                                 º');
       gotoXY(20,16);
       Write('º                                 º');
       gotoXY(20,17);
       Write('º                                 º');
       gotoXY(20,18);
       Write('º                                 º');
       gotoXY(20,19);
       Write('º                                 º');
       gotoXY(20,20);
       Write('º                                 º');
       gotoXY(20,21);
       Write('º                                 º');
       gotoXY(20,22);
       Write('º                                 º');
       gotoXY(20,23);
       Write('º                                 º');
       gotoXY(20,24);
       Write('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼');
       For i := 0 to 18 do
       begin
          gotoXY(21,5+i);
          For j := 0 to 15 do
             Write(' ' + Buffer[j,i]);
       end;
    end;

    Procedure Bufferize(No : Byte);
    var i : byte;
    begin
       for i := 0 to 18 do
       begin
          if MidCar[No]^[i] and 1 <> 0 then Buffer[0,i] := '*' else Buffer[0,i] :=
    'ú';
          if MidCar[No]^[i] and 2 <> 0 then Buffer[1,i] := '*' else Buffer[1,i] :=
    'ú';
          if MidCar[No]^[i] and 4 <> 0 then Buffer[2,i] := '*' else Buffer[2,i] :=
    'ú';
          if MidCar[No]^[i] and 8 <> 0 then Buffer[3,i] := '*' else Buffer[3,i] :=
    'ú';
          if MidCar[No]^[i] and 16 <> 0 then Buffer[4,i] := '*' else Buffer[4,i]
    := 'ú';
          if MidCar[No]^[i] and 32 <> 0 then Buffer[5,i] := '*' else Buffer[5,i]
    := 'ú';
          if MidCar[No]^[i] and 64 <> 0 then Buffer[6,i] := '*' else Buffer[6,i]
    := 'ú';
          if MidCar[No]^[i] and 128 <> 0 then Buffer[7,i] := '*' else Buffer[7,i]
    := 'ú';
          if MidCar[No]^[i] and 256 <> 0 then Buffer[8,i] := '*' else Buffer[8,i]
    := 'ú';
          if MidCar[No]^[i] and 512 <> 0 then Buffer[9,i] := '*' else Buffer[9,i]
    := 'ú';
          if MidCar[No]^[i] and 1024 <> 0 then Buffer[10,i] := '*' else
    Buffer[10,i] := 'ú';
          if MidCar[No]^[i] and 2048 <> 0 then Buffer[11,i] := '*' else
    Buffer[11,i] := 'ú';
          if MidCar[No]^[i] and 4096 <> 0 then Buffer[12,i] := '*' else
    Buffer[12,i] := 'ú';
          if MidCar[No]^[i] and 8192 <> 0 then Buffer[13,i] := '*' else
    Buffer[13,i] := 'ú';
          if MidCar[No]^[i] and 16384 <> 0 then Buffer[14,i] := '*' else
    Buffer[14,i] := 'ú';
          if MidCar[No]^[i] and 32768 <> 0 then Buffer[15,i] := '*' else
    Buffer[15,i] := 'ú';

       end;
    end;

    procedure Encode(No : Byte);
    var i,j : byte;
    begin
       for i := 0 to 18 do
       begin
          MidCar[No]^[i] := 0;
          if Buffer[0,i] = '*' then MidCar[No]^[i] := 1;
          if Buffer[1,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 2;
          if Buffer[2,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 4;
          if Buffer[3,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 8;
          if Buffer[4,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 16;
          if Buffer[5,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 32;
          if Buffer[6,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 64;
          if Buffer[7,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 128;
          if Buffer[8,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 256;
          if Buffer[9,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 512;
          if Buffer[10,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 1024;
          if Buffer[11,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 2048;
          if Buffer[12,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 4096;
          if Buffer[13,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 8192;
          if Buffer[14,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 16384;
          if Buffer[15,i] = '*' then MidCar[No]^[i] := MidCar[No]^[i] + 32768;
       end;
    end;

    procedure Preview;
    var i, j : byte;
    begin
       initGraph(grDriver,GrMode,'\turbo\tp\');
       for i := 0 to 18 do
       begin
          for j := 0 to 15 do
          begin
             if Buffer[j,i] = '*' then putpixel(j+GetMaxX div 2 ,i+GetMaxY div
    2,15);
          end;
       end;
       readkey;
       closeGraph;
    end;

    procedure PreviewAll;
    var i, j, k : byte;
    begin
       initGraph(grDriver,GrMode,'\turbo\tp\');
       for k := 32 to 64 do
       begin
          Bufferize(k);
          for i := 0 to 18 do
          begin
             for j := 0 to 15 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-32) * 18 ,i+GetMaxY div
    2-20,15);
             end;
          end;
       end;
       for k := 65 to 96 do
       begin
          Bufferize(k);
          for i := 0 to 18 do
          begin
             for j := 0 to 15 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-65) * 18 ,i+GetMaxY div
    2+10,15);
             end;
          end;
       end;
       for k :=  97 to 127 do
       begin
          Bufferize(k);
          for i := 0 to 18 do
          begin
             for j := 0 to 15 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-97) * 18 ,i+GetMaxY div
    2+30,15);
             end;
          end;
       end;
       for k :=  128 to 155 do
       begin
          Bufferize(k);
          for i := 0 to 18 do
          begin
             for j := 0 to 15 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-128) * 18 ,i+GetMaxY div
    2+50,15);
             end;
          end;
       end;
       for k :=  156 to 180 do
       begin
          Bufferize(k);
          for i := 0 to 18 do
          begin
             for j := 0 to 15 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-156) * 18 ,i+GetMaxY div
    2+70,15);
             end;
          end;
       end;
       readkey;
       closeGraph;
    end;

    function Edit(No : byte) : Char;
    var x, y : byte;
        car  : Char;
        Sortie : Boolean;
        Go     : byte;
        CaracTempo :  char;
    begin
       UpDate(No);
       x := 0;
       y := 0;
       Sortie := false;

       repeat
          GotoXY(22 + 2*x,5+y);
          HighVideo;
          Write(Buffer[x,y]);
          GotoXY(22 + 2*x,5+y);
          repeat
          until keypressed;
          car := ReadKey;
          GotoXY(22 + 2*x,5+y);
          LowVideo;
          Write(Buffer[x,y]);
          if (car = 'q') or (car = 'Q') then car := #13;
          if car = #0 then car := ReadKey;
          case car of
             '2',chr(80)   : if y = 18 then y := 0 else inc(y);
             '8',chr(72)   : if y = 0 then y := 18 else dec(y);
             '4',chr(75)   : if x = 0 then x := 15 else dec(x);
             '6',chr(77)   : if x = 15 then x := 0 else inc(x);
             ' '           : if Buffer[x,y] = '*' then Buffer[x,y] := 'ú' else
    Buffer[x,y] := '*';
             #13, #81, #73 : Sortie := true;
             #27           : Sortie := True;
             'G','g'       : begin
                                GotoXY(20,24);
                                Write('Aller … quel code ascii ? ');
                                Read(Go);
                                if (Go >= 32) and (go <= 180) then
                                begin
                                   Encode(No);
                                   EnCours := Go -1;
                                   Car := #81;
                                   Sortie := true;
                                end;
                                GotoXY(1,24);
                                ClrEol;
                             end;

             'v', 'V'      : begin
                               Preview;
                               update(No);
                             end;
             'a', 'A'      : begin
                                Encode(No);
                                PreviewAll;
                                Bufferize(No);
                                Update(No);
                             end;
             'c', 'C'      : begin
                                gotoXY(20,24);
                                Write('Copier quel caractŠre ? ');
                                CaracTempo := ReadKey;
                                if CaracTempo <> #13 then
                                begin
                                   Bufferize(ord(CaracTempo));
                                   UpDate(EnCOurs);
                                end;
                                GotoXY(20,24);
                                ClrEol;
                             end;
          end;
       until (sortie);
       Encode(No);
       Edit := Car;
    end;

    procedure EditeTable;
    var fin     : boolean;
        Car     : char;
        Car_Retour : char;
    begin
       fin := false;
       Encours := 32;
       repeat
          Bufferize(Encours);
          Car_Retour := Edit(EnCours);
          case car_Retour of
             #13 : begin
                      gotoXY(20,24);
                      Write('Quitter ? ');
                      Car := UpCase(readKey);
                      GotoXY(1,24);
                      ClrEol;
                      if Car = 'O' then Fin := true;
                   end;
             #81 : begin
                      if EnCours = 180 then Encours := 32 else inc(EnCours);
                   end;
             #73 : begin
                      if EnCours = 32 then Encours := 180 else dec(EnCours);
                   end;
             #27 : begin
                      gotoXY(20,24);
                      Write('Abandon des modifications ? ');
                      Car := UpCase(readKey);
                      GotoXY(1,24);
                      ClrEol;
                      if Car = 'O' then Halt(0);
                   end;
          end;
       until fin;
    end;

    procedure SauveTable;
    var Fichier : Text;
        i       : byte;
        j       : byte;
    begin
       Assign(Fichier, 'Mid.FON');
       Rewrite(Fichier);
       For i := 32 to 180 do
       begin
          for j := 0 to 18 do
          begin
             writeLn(Fichier, MidCar[i]^[j]);
          end;
          WriteLn(Fichier);
       end;
       Close(Fichier);
    end;

    begin
       DetectGraph(GrDriver, GrMode);
       InitGraph(grDriver, grMode,'\turbo\tp\');
       ErrCode := GraphResult;
       if ErrCode <> grOk then
       begin
         Writeln('Graphics error:', GraphErrorMsg(ErrCode));
         Halt(255);
       end;
       CloseGraph;

       NormVideo;
       ReserveMemoire;
       ChargeTable;
       EditeTable;
       SauveTable;
    end.

    {$define}
    {same remark as above}
    program GenMidCar;

    {CopyRight Thierry De Leeuw 1994}

    uses crt, dos, graph;

    Type TBigCar = Array [0..36] of LongInt;
         PBigCar = ^TBigCar;
         TEtat = (Move, delete, trace);

    var  BigCar : Array[32..180] of PBigCar;
         Buffer   : Array[0..31,0..36] of Char;
         grDriver : Integer;
         grMode   : Integer;
         ErrCode  : Integer;
         EnCours  : Byte;
         Etat     : TEtat;

    Procedure ReserveMemoire;
    var i : byte;
    begin
       For i := 32 to 180 do
       begin
          New(BigCar[i]);
       end;
    end;

    procedure ChargeTable;
    var Fichier : Text;
        i       : byte;
        j       : byte;
    begin
       {$Ifndef First}
       Assign(Fichier, 'Big.FON');
       Reset(Fichier);
       {$Endif}
       For i := 32 to 180 do
       begin
          for j := 0 to 36 do
          begin
             {$IFDEF First}
             BigCar[i]^[j] := 0;
             {$Else}
             readLn(Fichier, BigCar[i]^[j]);
             {$Endif}
          end;
          {$Ifndef First}
          Readln(Fichier);
          {$Endif}
       end;
       {$Ifndef First}
       Close(Fichier);
       {$endif}
    end;

    function Analyse(Valeur: byte) : String;
    var Tmp : String[19];
    begin
       Tmp := ' ';
       Analyse := Tmp
    end;

    Procedure Update(No : Byte);
    var i : byte;
        j : byte;

    begin
       ClrScr;
       textMode(258);
       LowVideo;
       GotoXY(1,1);
       if etat = move then write('Move')
       else
          if etat = delete then write('Delete')
          else
             if etat = trace then write('Trace');
       GotoXY(22,1);
       Write('Edition du caractŠre nø ',No:3,' - "',Chr(No),'".');
       GotoXY(22,2);
       Write('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ');
       gotoXY(2,4);
    Write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
       gotoXY(2,5);
       Write('º º');
       gotoXY(2,6);
       Write('º º');
       gotoXY(2,7);
       Write('º º');
       gotoXY(2,8);
       Write('º º');
       gotoXY(2,9);
       Write('º º');
       gotoXY(2,10);
       Write('º º');
       gotoXY(2,11);
       Write('º º');
       gotoXY(2,12);
       Write('º º');
       gotoXY(2,13);
       Write('º º');
       gotoXY(2,14);
       Write('º º');
       gotoXY(2,15);
       Write('º º');
       gotoXY(2,16);
       Write('º º');
       gotoXY(2,17);
       Write('º º');
       gotoXY(2,18);
       Write('º º');
       gotoXY(2,19);
       Write('º º');
       gotoXY(2,20);
       Write('º º');
       gotoXY(2,21);
       Write('º º');
       gotoXY(2,22);
       Write('º º');
       gotoXY(2,23);
       Write('º º');
       gotoXY(2,24);
       Write('º º');
       gotoXY(2,25);
       Write('º º');
       gotoXY(2,26);
       Write('º º');
       gotoXY(2,27);
       Write('º º');
       gotoXY(2,28);
       Write('º º');
       gotoXY(2,29);
       Write('º º');
       gotoXY(2,30);
       Write('º º');
       gotoXY(2,31);
       Write('º º');
       gotoXY(2,32);
       Write('º º');
       gotoXY(2,33);
       Write('º º');
       gotoXY(2,34);
       Write('º º');
       gotoXY(2,35);
       Write('º º');
       gotoXY(2,36);
       Write('º º');
       gotoXY(2,37);
       Write('º º');
       gotoXY(2,38);
       Write('º º');
       gotoXY(2,39);
       Write('º º');
       gotoXY(2,40);
       Write('º º');
       gotoXY(2,41);
       Write('º º');
       gotoXY(2,42);
       Write('º º');
       gotoXY(2,43);
    Write('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼');
       For i := 0 to 36 do
       begin
          gotoXY(3,5+i);
          For j := 0 to 31 do
             Write(' ' + Buffer[j,i]);
       end;
    end;

    Procedure Bufferize(No : Byte);
    var i : byte;
    begin
       for i := 0 to 36 do
       begin
          if BigCar[No]^[i] and 1 <> 0 then Buffer[0,i] := '*' else Buffer[0,i] :=
    'ú';
          if BigCar[No]^[i] and 2 <> 0 then Buffer[1,i] := '*' else Buffer[1,i] :=
    'ú';
          if BigCar[No]^[i] and 4 <> 0 then Buffer[2,i] := '*' else Buffer[2,i] :=
    'ú';
          if BigCar[No]^[i] and 8 <> 0 then Buffer[3,i] := '*' else Buffer[3,i] :=
    'ú';
          if BigCar[No]^[i] and $10 <> 0 then Buffer[4,i] := '*' else Buffer[4,i]
    := 'ú';
          if BigCar[No]^[i] and $20 <> 0 then Buffer[5,i] := '*' else Buffer[5,i]
    := 'ú';
          if BigCar[No]^[i] and $40 <> 0 then Buffer[6,i] := '*' else Buffer[6,i]
    := 'ú';
          if BigCar[No]^[i] and $80 <> 0 then Buffer[7,i] := '*' else Buffer[7,i]
    := 'ú';
          if BigCar[No]^[i] and $100 <> 0 then Buffer[8,i] := '*' else Buffer[8,i]
    := 'ú';
          if BigCar[No]^[i] and $200 <> 0 then Buffer[9,i] := '*' else Buffer[9,i]
    := 'ú';
          if BigCar[No]^[i] and $400 <> 0 then Buffer[10,i] := '*' else
    Buffer[10,i] := 'ú';
          if BigCar[No]^[i] and $800 <> 0 then Buffer[11,i] := '*' else
    Buffer[11,i] := 'ú';
          if BigCar[No]^[i] and $1000 <> 0 then Buffer[12,i] := '*' else
    Buffer[12,i] := 'ú';
          if BigCar[No]^[i] and $2000 <> 0 then Buffer[13,i] := '*' else
    Buffer[13,i] := 'ú';
          if BigCar[No]^[i] and $4000 <> 0 then Buffer[14,i] := '*' else
    Buffer[14,i] := 'ú';
          if BigCar[No]^[i] and $8000 <> 0 then Buffer[15,i] := '*' else
    Buffer[15,i] := 'ú';
          if BigCar[No]^[i] and $10000 <> 0 then Buffer[16,i] := '*' else
    Buffer[16,i] := 'ú';
          if BigCar[No]^[i] and $20000 <> 0 then Buffer[17,i] := '*' else
    Buffer[17,i] := 'ú';
          if BigCar[No]^[i] and $40000 <> 0 then Buffer[18,i] := '*' else
    Buffer[18,i] := 'ú';
          if BigCar[No]^[i] and $80000 <> 0 then Buffer[19,i] := '*' else
    Buffer[19,i] := 'ú';
          if BigCar[No]^[i] and $100000 <> 0 then Buffer[20,i] := '*' else
    Buffer[20,i] := 'ú';
          if BigCar[No]^[i] and $200000 <> 0 then Buffer[21,i] := '*' else
    Buffer[21,i] := 'ú';
          if BigCar[No]^[i] and $400000 <> 0 then Buffer[22,i] := '*' else
    Buffer[22,i] := 'ú';
          if BigCar[No]^[i] and $800000 <> 0 then Buffer[23,i] := '*' else
    Buffer[23,i] := 'ú';
          if BigCar[No]^[i] and $1000000 <> 0 then Buffer[24,i] := '*' else
    Buffer[24,i] := 'ú';
          if BigCar[No]^[i] and $2000000 <> 0 then Buffer[25,i] := '*' else
    Buffer[25,i] := 'ú';
          if BigCar[No]^[i] and $4000000 <> 0 then Buffer[26,i] := '*' else
    Buffer[26,i] := 'ú';
          if BigCar[No]^[i] and $8000000 <> 0 then Buffer[27,i] := '*' else
    Buffer[27,i] := 'ú';
          if BigCar[No]^[i] and $10000000 <> 0 then Buffer[28,i] := '*' else
    Buffer[28,i] := 'ú';
          if BigCar[No]^[i] and $20000000 <> 0 then Buffer[29,i] := '*' else
    Buffer[29,i] := 'ú';
          if BigCar[No]^[i] and $40000000 <> 0 then Buffer[30,i] := '*' else
    Buffer[30,i] := 'ú';
          if BigCar[No]^[i] and $80000000 <> 0 then Buffer[31,i] := '*' else
    Buffer[31,i] := 'ú';

       end;
    end;

    procedure Encode(No : Byte);
    var i,j : byte;
    begin
       for i := 0 to 36 do
       begin
          BigCar[No]^[i] := 0;
          if Buffer[0,i] = '*' then BigCar[No]^[i] := 1;
          if Buffer[1,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $2;
          if Buffer[2,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $4;
          if Buffer[3,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $8;
          if Buffer[4,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $10;
          if Buffer[5,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $20;
          if Buffer[6,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $40;
          if Buffer[7,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $80;
          if Buffer[8,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $100;
          if Buffer[9,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $200;
          if Buffer[10,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $400;
          if Buffer[11,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $800;
          if Buffer[12,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $1000;
          if Buffer[13,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $2000;
          if Buffer[14,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $4000;
          if Buffer[15,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $8000;
          if Buffer[16,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $10000;
          if Buffer[17,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $20000;
          if Buffer[18,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $40000;
          if Buffer[19,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $80000;
          if Buffer[20,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $100000;
          if Buffer[21,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $200000;
          if Buffer[22,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $400000;
          if Buffer[23,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $800000;
          if Buffer[24,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $1000000;
          if Buffer[25,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $2000000;
          if Buffer[26,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $4000000;
          if Buffer[27,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $8000000;
          if Buffer[28,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $10000000;
          if Buffer[29,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $20000000;
          if Buffer[30,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $40000000;
          if Buffer[31,i] = '*' then BigCar[No]^[i] := BigCar[No]^[i] + $80000000;
       end;
    end;

    procedure Preview;
    var i, j : byte;
    begin
       initGraph(grDriver,GrMode,'\turbo\tp\');
       for i := 0 to 36 do
       begin
          for j := 0 to 31 do
          begin
             if Buffer[j,i] = '*' then putpixel(j+GetMaxX div 2 ,i+GetMaxY div
    2,15);
          end;
       end;
       readkey;
       closeGraph;
    end;

    procedure PreviewAll;
    var i, j, k : byte;
    begin
       initGraph(grDriver,GrMode,'\turbo\tp\');
       for k := 32 to 47 do
       begin
          Bufferize(k);
          for i := 0 to 36 do
          begin
             for j := 0 to 31 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-32) * 36 ,i+20,15);
             end;
          end;
       end;
       for k := 48 to 96 do
       begin
          Bufferize(k);
          for i := 0 to 36 do
          begin
             for j := 0 to 31 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-48) * 36 ,i+60,15);
             end;
          end;
       end;
       for k :=  97 to 127 do
       begin
          Bufferize(k);
          for i := 0 to 36 do
          begin
             for j := 0 to 31 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-97) * 36 ,i+100,15);
             end;
          end;
       end;
       for k :=  128 to 155 do
       begin
          Bufferize(k);
          for i := 0 to 36 do
          begin
             for j := 0 to 31 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-128) * 36 ,i+140,15);
             end;
          end;
       end;
       for k :=  156 to 180 do
       begin
          Bufferize(k);
          for i := 0 to 36 do
          begin
             for j := 0 to 31 do
             begin
                if Buffer[j,i] = '*' then putpixel(j+(k-156) * 36 ,i+GetMaxY div
    2+70,15);
             end;
          end;
       end;
       readkey;
       closeGraph;
    end;

    function Edit(No : byte) : Char;
    var x, y : byte;
        car  : Char;
        Sortie : Boolean;
        Go     : byte;
        CaracTempo :  char;
    begin
       UpDate(No);
       x := 0;
       y := 0;
       Sortie := false;
       Etat := Move;

       repeat
          GotoXY(1,1);
          Write('          ');
          gotoxy(1,1);
          if etat = move then write('Move')
          else
             if etat = delete then write('Delete')
             else
                if etat = trace then write('Trace');
          GotoXY(60,1);
          write('(',x:2,' , ',y:2,')');
          GotoXY(4 + 2*x,5+y);
          HighVideo;
          Write(Buffer[x,y]);
          GotoXY(4 + 2*x,5+y);
          repeat
          until keypressed;
          car := ReadKey;
          GotoXY(4 + 2*x,5+y);
          LowVideo;
          Write(Buffer[x,y]);
          if (car = 'q') or (car = 'Q') then car := #13;
          if car = #0 then car := ReadKey;
          case car of
             '2',chr(80)   : begin
                                if y = 36 then y := 0 else inc(y);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             '8',chr(72)   : begin
                                if y = 0 then y := 36 else dec(y);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             '4',chr(75)   : begin
                                if x = 0 then x := 31 else dec(x);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             '6',chr(77)   : Begin
                                if x = 31 then x := 0 else inc(x);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             '1',chr(80)   : begin
                                if y = 36 then y := 0 else inc(y);
                                if x = 0 then x := 31 else dec(x);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             '7',chr(72)   : begin
                                if y = 0 then y := 36 else dec(y);
                                if x = 0 then x := 31 else dec(x);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             '9',chr(75)   : begin
                                if x = 31 then x := 0 else inc(x);
                                if y = 0 then y := 36 else dec(y);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             '3',chr(77)   : Begin
                                if x = 31 then x := 0 else inc(x);
                                if y = 36 then x := 0 else inc(y);
                                if etat = trace then buffer[x,y] := '*'
                                else if etat = delete then buffer[x,y] := 'ú';
                             end;
             ' '           : if etat <> trace then etat := succ(etat) else etat :=
    move;
             #13, #81, #73 : Sortie := true;
             #27           : Sortie := True;
             'G','g'       : begin
                                GotoXY(20,49);
                                Write('Aller … quel code ascii ? ');
                                Read(Go);
                                if (Go >= 32) and (go <= 180) then
                                begin
                                   Encode(No);
                                   EnCours := Go -1;
                                   Car := #81;
                                   Sortie := true;
                                end;
                                GotoXY(1,49);
                                ClrEol;
                             end;

             'v', 'V'      : begin
                               Preview;
                               update(No);
                             end;
             'a', 'A'      : begin
                                Encode(No);
                                PreviewAll;
                                Bufferize(No);
                                Update(No);
                             end;
             'c', 'C'      : begin
                                gotoXY(20,49);
                                Write('Copier quel caractŠre ? ');
                                CaracTempo := ReadKey;
                                if CaracTempo <> #13 then
                                begin
                                   Bufferize(ord(CaracTempo));
                                   UpDate(EnCOurs);
                                end;
                                GotoXY(20,49);
                                ClrEol;
                             end;
          end;
       until (sortie);
       Encode(No);
       Edit := Car;
    end;

    procedure EditeTable;
    var fin     : boolean;
        Car     : char;
        Car_Retour : char;
    begin
       fin := false;
       Encours := 32;
       repeat
          Bufferize(Encours);
          Car_Retour := Edit(EnCours);
          case car_Retour of
             #13 : begin
                      gotoXY(20,49);
                      Write('Quitter ? ');
                      Car := UpCase(readKey);
                      GotoXY(1,49);
                      ClrEol;
                      if Car = 'O' then Fin := true;
                   end;
             #81 : begin
                      if EnCours = 180 then Encours := 32 else inc(EnCours);
                      etat := move;
                   end;
             #73 : begin
                      if EnCours = 32 then Encours := 180 else dec(EnCours);
                      etat := move;
                   end;
             #27 : begin
                      gotoXY(20,49);
                      Write('Abandon des modifications ? ');
                      Car := UpCase(readKey);
                      GotoXY(1,49);
                      ClrEol;
                      if Car = 'O' then Halt(0);
                   end;
          end;
       until fin;
    end;

    procedure SauveTable;
    var Fichier : Text;
        i       : byte;
        j       : byte;
    begin
       Assign(Fichier, 'Big.FON');
       Rewrite(Fichier);
       For i := 32 to 180 do
       begin
          for j := 0 to 36 do
          begin
             writeLn(Fichier, BigCar[i]^[j]);
          end;
          WriteLn(Fichier);
       end;
       Close(Fichier);
    end;

    begin
       DetectGraph(GrDriver, GrMode);
       InitGraph(grDriver, grMode,'\turbo\tp\');
       ErrCode := GraphResult;
       if ErrCode <> grOk then
       begin
         Writeln('Graphics error:', GraphErrorMsg(ErrCode));
         Halt(255);
       end;
       CloseGraph;

       NormVideo;
       ReserveMemoire;
       ChargeTable;
       EditeTable;
       SauveTable;
    end.

    {
    You'll find here the fonts I had already done. They are not complete. (use A
    to see all the characters) You must use XX3402 that you'll find on the Swag.
    If you make others fonts, would you please send them to me ?
    }

    { cut this out as save as FON.XX.  Use XX3402 :   XX3402 d FON.XX to
      create FON.ZIP containing the FONT files need here }

    *XX3402-004554-160794--72--90-49467---------FON.ZIP--1-OF--1
    I2g1--E++++6+1lIWFn1MZsTikA++8QI+++7++++Iop-H2kiFYxCXJVhggAU0DnTaRv3449h
    yIzq+c6iWiaP0Ool-70D3NDSfxrpTaJujocOlDRAA5mzXdHptmmlaDi5Z+tylkr6i6vvvSia
    md8HXZCvtn2z3xPDHKRh2okwHDTQhs6Y2trjmNAOAQAr8lDJFaRi9mlKqsDe9tvWFvTcKw1m
    a4FSF-k3XAwoJeTeCZCbH5v0aBN91NgaBHPSxRA3ARGLS35gZaxd5V2fvjgmZg8K3zAn9y4X
    2lRMmJsFfyfMuAVUXIYet1lwc2b6EzfzeAlw7k8DX6gX0MYYAAKGH7ilpNJ3lAlKno5eJhRp
    5D46Km81627lm1m1rTKIa3l99ao9iPEkjzjIURmqxsMkmMYcX8C8Sebqj75bIdS-RvJQVqBc
    r-UHVaMS-t4YI-AnTz788AFGVVdqh739nt+XG3zG7IS7oAqTpshfjV+PU7nn1eWoHgIbX+aK
    STqTZR3miIKrueyhyij4M-snAbkAu-Uit4RS3fsRyaQ8wRP7FYBRBZ-vndj+66Lce0MLO6sE
    63fIIy0B8CrZa9j3xvCjyutOlbXaEEKFoHrvcAdvJUeHS9F4Znld6-HVX2F-CAv++8HHvRjV
    hNZarRQZ4vfczzKi-PWVfupVCACKlbkFD60I4a8AxFFAD5wKqu0qIUlE5+j9yHFnQbRsVi+C
    x1QJdWvHsr6y4DrGdSkEtgn9iV-XiW6KHGe9oeHeeLlEKPi6Fi6PHOtHsJ2tSyR4FEUmZ0tf
    Ell5fNBnhIg8VCnWQlKD8lPVCYJKcoq9U5ajQjpBKj-Wld8Jcl6orMs1cKFpe1C+pq9q+gxV
    uLVcjUoIyQuFbxecthQbY10GnfFvXR03wdHnsYdUZMS0UwwDxTcx4Dh5usHPJFIE8a1gt42D
    8r1+a+iytmEUrkB+oLxEf5dhANDdgz9P6y6KvqdYRvGqx7j3BcrzWRa03JWntOazAOzIzzGY
    u278HpnJRMrOAffaWWi4gOOaQE8HBWNVxOn55MIauLj0DBfUrmyK8MQW3h0oHrq6utt7THLl
    xBDFJM+dOVpRr+7BoL21tI-CBrE7RpvNPB-YppDpLA8YOZYqhRpm6j--MkxJA+mHAWScBD1-
    jenfvle7TFakv6Aa4zqDfFVsv41EizHCN8aiqgg0ptXcKXCCeOTeIT0IWejm6fDPANOD8CTV
    DRQXSIVPeq3gwJ6RqNoC3vMY-rHxyX+KHHpEoKQqr5IZLJHW7vybdVOT44RD9TOrSCxtw9wB
    YETwfIUFujjJD+gbUZBdEChACGCiDp-9+kEI++++0++JUMoQbzQ8qa+5++-FC+++-k+++2p7
    F0t4HovJKyhmvGc6zhyNjcire5by7ng-j60L74NZRQyNOP-B6WX07q0eTbySzTnyu1qurlyb
    T83F-mwdTofjlxobEbnkptsJSzbskxbRpANM0nmAUPSpBaj1hhec8yernKuZySkhcYQ92n78
    cqvURyq0Wn+R5sv4vWcF-nAmmc3mh3Ts6f+kPjSW0OMk6Mv25EIVkFZP2o09PhTFEnSj3SfE
    59qx-VtK6OQBh-dwH7opu-dvFZExXWEsEspqp4VwNYBGvUTaJ+o1lv0V3XOzm+F5vPJnSJdq
    kwbUt5G+dwUSGFJNtG8V3uYHAG-al7W256c-RGPxu8EgB2dwXgH-kofe+rkDHFxukXBYZRSg
    9C5F9NNJ1Zs-7lJJKKgHT4rc5XqbRpB5sZ8t6a29pXldWDMKC8Paz3qq3jTLfGe6b+FKLNhs
    lcEAbiWdFOkOcg+b6N0kls+aiM4RyUpOUw43ZKBWO71+F8DpYTpuI9HTUP3rk0DFPMCb-fVv
    Mz3rJTcG5sM-KJOmtdpQ3zFu94INyGQo2ikXnR9G+1kAoWcQ8UuDR9OYCSCuVOM7gSr07szr
    OWVWXqInsGsg8TJ3TqKPHuCyaF8H8UZZT4COuyfXjEqvRX6MFnh8cwwFrInKD+SA9AMd45NY
    IyT026hI9-i9BZOPKkrTxYRHmfO+WuvOrOSpW0aVmQUdQTHXMbd8vxltQuv+dx8S9JQ9H9TE
    eoD-FFPxDYnyg6W-3C0Nx6XqJxdNaIAadV7n9u5yt32OOhqW9sNl0wPbWpyw+8QVanBBhHhb
    2vmFWC82GbKBpHUlNmWY36opV2Q64bhA0WaLhy0fFyCNtb4d8GV5Z9D7YjSdslQqq3l1V3mW
    GtUdHZ3ccz2V0gK0M8qsaeX6DWrywSgIspMawvGNHoWeDlf2FHtwr16GPON3PogCvr5bZyGO
    oVcmj-Dpuwp4pYmg1mBttBUuzqoZftfkaI5nfSZw2vivisbpcC0M4fu-9ZAK9St1tF2gMoBV
    7gIRSUAcW9+yawcYob9hdYEbFbJQIhCcuwFeFhQBaoq9Yuc3aoDUQqWXqVdAWkvpLI16wffL
    NnFLFs8GGO4KhA4ci2ULXIKcpnNWcaVhWcQ6nmbv5iDb1B+yVdkNmd4vQmkS-Xpl5FXi-pIL
    33Ab5YUpgQmBST+Ns3eaaU0gVAlfKbdrUR03T7qpPOCVohlPZkmc0F9r64cOuyElb9tbOizk
    dyW36Va8OX1+YRKZRyEZLmOIGNWH2QWm4Ce4qAac8vYNcBqTcN0sZn-trJGOzREEueqZ1FR+
    vnRomhEwr4V5F18ayFmDXXh9yMFkNCCqE1JMGDCUKdQXvUoee2VSb27ZaidcK3i9kfpiZpFL
    SrG3wItB5sxV08Y0APo3FQg6Isi6wJU2qvbz82OaM5stB2kFgolBFvB97OTHM3UCTEGIOd7v
    rZ56yHHCZ0JnwLYAnNIVtpCDWXfacYFZ+2ZrHpSBCzARThKbwz4Ou+DHlxbeWWltcaCi8lfk
    qyMYaatSPFKVph7jY25ofqF-fUVdvexEZ3GCF8fBpWjUgEISAS1iH-3n7jUbDg-LM3DBhDRV
    SEWnHb11DfLqsDXiZ4DrlSP8btXtjKIdRnpq+S4ewts8GQ-XzOn7vVBG+A0jR6MuMxzLZXbB
    JQ9UtkJMABAdEBQHJYdfNwbAo75YODqkw759T5s+szVG5m5bxVsatgjeic4IIsvtS-z5kKEP
    JcJn41sDTTg+y1lsTn7sYM7jm1HgR4kDhwtLYm7IAZzOcOkVnFeJEo7WVfTd3NozLx0bTjBI
    txp4hPDu5JfFI7csscJSBMH34G+WIjp3RIT0H2hdMyoRP3O5Gjg1bOily9abDQwYvBLMSIEU
    SKgClldwceF3pSm3Lm8GErNlcqr1s8Zy0CIISCbbs8WXqksVpgC56zzcfxwDuietqVJRZ01L
    bESCzS8dfpn1J7CJjVvXhiQgLwtgt3vvHK51NCwvcUVVAOQaaWJyAo3QmRqcKdWhb4RjPSZX
    NV1TG8l49jGWY3aqzzswq+QMvyExkq97dolZcSU3bWYucb5yoIbhqBIK1cijNPTG8jX8ngod
    tCE2wjeQuBbDdpr5PjupJ4nJptw94vfxRoGBRTWB84+seKw6SWqmiNw3XCGxQNcsCQptNrdf
    loSeeMvNyhrUSg4pGkcy+s9zJxQqLjZqi1cKxwaiCKPt5MmOmbcRCfE7W2ts64pX4r+lF5Uc
    KQf0+nx35tAbRqgzS1Xtoi5V7ktDPLOO5Z0pMMoDkzzF+OWRT1DMO9FKWiVoUoMmYTnd2SS2
    vGR5Xe9udG9zG+xfDCXny7Ju85o0famA0jyr-SgqJDZFuKFU3ddRG5+FDlDN6+9Mw-oLe1N3
    yk2KJ7n4TtbEGWvdxLwReSNXq4TzvREdLlgg2uJecOOeZpTZJACLqvZO8AwW7atlrbgWfERt
    yhXZI0-coOBPzwKhMqn-iTrrNvQS10A4Q7szj+TTsSVUXw5t06tVcc7zZjffarxEm3nuSi07
    UDw+I2g1--E++++6+AloXVlDpuzgVkI++DBH+++5++++EYZ59YNDHipNuqsXCkXyLubjkgI4
    yzaTv-XkX4SmiPFdYxoX6OK-n6IDA4-AsTDXbNzD1mFePL-I4tHqyJ47eA0W02JfdKSNGr4r
    u+NzWqtevdzGoSFzLSpPW3DEkGKAdLM0SAFFFJ4K2nSchh-UtlerXaEuMmxJLfCChGa-Eba4
    Ep1KUcrUOzlDgBv9jRCmnkyWnWe9WW6otQ2V3o6J4MyFhA8pY9r9oVFO5kwIuPqXDp0+KeDa
    2GNBd68GmlGIfpD5PdsuUKocUQqRBalhdUMATKefwVfKh+yqksvKdNrgDrXZs8jZk2jLPjGE
    +ppUmd48t5uIKgZnL9d8EElB43gh7P7KU1pCe1M4x2KXXiCpaSZ8JbLEe3Uium1gBngHSgPr
    6QESuYB0qGeHeH9SxURauF6gRdh-DSeepkgJiwLB8oOr4khTlawdrQCbYcUf5SloZ93FRc8Z
    Bhw0iqyG9ifBSrSLokNnWvfPRW8pqb7DkeEK7mVgQTc8tIFJmTCagk0O+lT5J030SEL+jisv
    gurvFjw6pFY5SnlUYRNyXpv8jwGzp0x0y7cZ-mhrmuztNLbBZb3Qw-Hq9zP2bj2Q6Hv71Dx7
    jaj2fx25Wr4VtQa0g0cgL-Ov+usMw6+mBk08AZZpL+9PGvd6wQ958CWZVp4VxB0WPko3cfeE
    Udrx8M7SAHOwIcdRWRcO3TQFivyoWxY3vp+9TKaoh3mO9qiKVRzpnIMDeTegW4zHq6T8ZxVr
    uHHdKufsfQG7PKvFQsJy+aRhy+zN7wlseMiSKuRdY0K2hmOAheZtOo7lVf5KF06F8oeRtkUO
    H7kTpcPyRpcHHzfE9nGnnDTwzjlcpzrTS+-saFGp5hHfEeoZBbhfRQ0XOaVA09vJaVCuq+tp
    NeKnOs5IJL1ePrpWl0KdxWfFKIUPTu4W1+jN1s6o-044-+4RdNpe9sJw0lWghMjHtlpVQrxh
    d-Gg+BCwKaNNhhNFcYwlRWu9gP50nW9uAS+q0x4RBXJ5mB39mrCvAzTmT5Pqjhs2JdZhNI08
    xosoffiCUqbF8ECd-kDq9bvOkBuUcCSuqW5N-PPMwHT7zmC4iFO75Sg8RzMQEFQrp1mfRXsm
    LoTQK9A1PPO14Xo+ZdaRpVGVrnpnZmrHTKuZAnAkc1Tu3hbC1HqeklNgsa40I8Gu023D1zhZ
    hcjjhx4WFAvSzptFRdyvW1C9G1EjqFCFZLtIWomAwlhgKE0+gdKliVqqe3Bddy9q91jY2zgq
    6EcxwbSclH5RKRmuSrXZ3z+jqMBRRFohkkT9AwhRmsL9fFTiXV6zaAOnLDssoKRzqtJpvVFx
    VcIx2cl4+FlMRRhBcanvOA51vWvrpemLMMSXbborFknh8qntnhT-nAjNXVz1EutsUow+bLo+
    QxXWLw1KTQ+VJLQoLRpyH5fL2CVeE3s25lRgNNyhMDRdZ6YHobpwledaRCRSapO9kkOJiQKa
    BVtiseAavLmcHrOZalsyt6Vuiby3Pac01XrrMKGonSow6E-2a5ogyptyuT1ElKT5fU5RTQvr
    VV-ZRI-hHzdtezRDY4gC+PUmgHkgzHN1N7jRkPjNUnc57KzcypsZZrSi8vbQywTVtBzmz+PQ
    HXLUlVHvdTKohDpIJdTlTivxWPjj12ArydDDBqLzCsdRbEGTFw0TVktonarbGTZuCzqSor5k
    qtEk5hgaWBizJuTA1KD1L8SJHOpRoQAoRfTbQ5XMvJuyi9OUlwzOsyxnxtTlRuEQ0vyTB8oB
    g7mDErKQHZvcrFQDGIePBdZlXxPZNTxvGQ+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2
    HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+2HA+T+js5I2g-
    +VE+3+++++U+D3G75ABWLVyv+k++dlE+++Y++++++++++E+U+++++++++3BBEIlA9YNDHZ-9
    +E6I+-E++++6+-K-XFmTxkfOM+Q++32s+++5++++++++++2+6++++C61++-BGIEiFYxCI2g-
    +VE+3+++++U+n5GC52zLfym5-E++wpA+++Q++++++++++E+U++++Nkg++277Fmt4HotEGkI4
    ++++++A++k0V++++2l2+++++
    ***** END OF BLOCK 1 *****

[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]