4 Шаг. Перестановка битов ключа с использованием таблицы pc1
До финальной перестановки битов ключей, необходимо слияние каждой пары данных. После того, как для каждого битового блока CnDn, где 1<=n<=16 осуществиться соответствующая перестановка по таблице (см ниже), формируя ключи. Только 48 бит каждой объединенной пары сохраняется в перестановленном ключе.
14 |
17 |
11 |
24 |
1 |
5 |
3 |
28 |
15 |
6 |
21 |
10 |
23 |
19 |
12 |
4 |
26 |
8 |
16 |
7 |
27 |
20 |
13 |
2 |
41 |
52 |
31 |
37 |
47 |
55 |
30 |
40 |
51 |
45 |
33 |
48 |
44 |
49 |
39 |
56 |
34 |
53 |
46 |
42 |
50 |
36 |
29 |
32 |
Все подключи:
K1: 111001111101001101110010001100110001010011011101
K2: 111001101101001101110011111011100011011001010110
K3: 101011111101001111011011001111011110001011101010
K4: 001111100101001111011011011101001101110001000011
K5: 001111100101100111011001100011101010010001111110
K6: 000111110110100111011101101010011111111011000000
K7: 000111100110110110011101011111001100011000110011
K8: 010111100010110110101101100111110100110001001110
K9: 010110111010110110101101010001010001111010110110
K10: 110110001010110010101111110110010010100011111001
K11: 111100001010111010100110001000111101101000011101
K12: 111100011011111000100110000101110011010010110110
K13: 111000011011011001110110111010010000100011100101
K14: 111001001101011001110110010001101110101010011111
K15: 111001111101001101110010001100110001010011011101
K16: 111001101101001101110011111011100011011001010110
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DES, StdCtrls, Grids, ComCtrls;
type
TForm1 = class(TForm)
Label2: TLabel;
EButton: TButton;
Label3: TLabel;
SBMemo: TMemo;
Button1: TButton;
SEdit: TEdit;
REdit: TEdit;
SG1: TStringGrid;
SG2: TStringGrid;
Button2: TButton;
SG3: TStringGrid;
SG4: TStringGrid;
Label1: TLabel;
Label4: TLabel;
SG5: TStringGrid;
Label5: TLabel;
SG6: TStringGrid;
SG7: TStringGrid;
SG9: TStringGrid;
SG8: TStringGrid;
SG10: TStringGrid;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
SG11: TStringGrid;
SG12: TStringGrid;
SG13: TStringGrid;
Button3: TButton;
procedure EButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure SEditChange(Sender: TObject);
procedure REditChange(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
Data:TBitString;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.EButtonClick(Sender: TObject);
Var
I:Integer;
S:String;
begin
if ((Length(SEdit.Text)mod 8 <> 0)) then
Begin
MessageBox(Handle,
'не верное количиство символов(8) в ключе ',
Nil,MB_ICONSTOP);
Exit;
End;
SetLength(Data,0);
I:=1;
While I<=Length(SEdit.Text) Do
Begin
S:=Copy(SEdit.Text,I,8);
Data:=ConcatBits([Data,DESEncode(S,SEdit.Text)]);
I:=I+8;
End;
REdit.Text:=BinToAnsiStr(Data);
SG2.Cells[0,0]:=SG1.Cells[0,8];SG2.Cells[1,0]:=SG1.Cells[6,6];SG2.Cells[2,0]:=SG1.Cells[5,5];SG2.Cells[3,0]:=SG1.Cells[4,4];SG2.Cells[4,0]:=SG1.Cells[3,3];SG2.Cells[5,0]:=SG1.Cells[2,2];SG2.Cells[6,0]:=SG1.Cells[1,1];
SG2.Cells[0,1]:=SG1.Cells[0,0];SG2.Cells[1,1]:=SG1.Cells[1,8];SG2.Cells[2,1]:=SG1.Cells[0,7];SG2.Cells[3,1]:=SG1.Cells[6,5];SG2.Cells[4,1]:=SG1.Cells[5,4];SG2.Cells[5,1]:=SG1.Cells[4,3];SG2.Cells[6,1]:=SG1.Cells[3,2];
SG2.Cells[0,2]:=SG1.Cells[2,1];SG2.Cells[1,2]:=SG1.Cells[1,0];SG2.Cells[2,2]:=SG1.Cells[2,8];SG2.Cells[3,2]:=SG1.Cells[1,7];SG2.Cells[4,2]:=SG1.Cells[0,6];SG2.Cells[5,2]:=SG1.Cells[6,4];SG2.Cells[6,2]:=SG1.Cells[5,3];
SG2.Cells[0,3]:=SG1.Cells[4,2];SG2.Cells[1,3]:=SG1.Cells[3,1];SG2.Cells[2,3]:=SG1.Cells[2,0];SG2.Cells[3,3]:=SG1.Cells[3,8];SG2.Cells[4,3]:=SG1.Cells[2,7];SG2.Cells[5,3]:=SG1.Cells[1,6];SG2.Cells[6,3]:=SG1.Cells[0,5];
SG2.Cells[0,4]:=SG1.Cells[6,8];SG2.Cells[1,4]:=SG1.Cells[5,7];SG2.Cells[2,4]:=SG1.Cells[4,6];SG2.Cells[3,4]:=SG1.Cells[3,5];SG2.Cells[4,4]:=SG1.Cells[2,4];SG2.Cells[5,4]:=SG1.Cells[1,3];SG2.Cells[6,4]:=SG1.Cells[0,2];
SG2.Cells[0,5]:=SG1.Cells[6,0];SG2.Cells[1,5]:=SG1.Cells[5,8];SG2.Cells[2,5]:=SG1.Cells[4,7];SG2.Cells[3,5]:=SG1.Cells[3,6];SG2.Cells[4,5]:=SG1.Cells[2,5];SG2.Cells[5,5]:=SG1.Cells[1,4];SG2.Cells[6,5]:=SG1.Cells[0,3];
SG2.Cells[0,6]:=SG1.Cells[6,1];SG2.Cells[1,6]:=SG1.Cells[5,0];SG2.Cells[2,6]:=SG1.Cells[4,8];SG2.Cells[3,6]:=SG1.Cells[3,7];SG2.Cells[4,6]:=SG1.Cells[2,6];SG2.Cells[5,6]:=SG1.Cells[1,5];SG2.Cells[6,6]:=SG1.Cells[0,4];
SG2.Cells[0,7]:=SG1.Cells[6,2];SG2.Cells[1,7]:=SG1.Cells[5,1];SG2.Cells[2,7]:=SG1.Cells[4,0];SG2.Cells[3,7]:=SG1.Cells[6,3];SG2.Cells[4,7]:=SG1.Cells[5,2];SG2.Cells[5,7]:=SG1.Cells[4,1];SG2.Cells[6,7]:=SG1.Cells[3,0];
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SEdit.OnChange(Self);
SG1.Cells[0,0]:='0';SG1.Cells[1,0]:='1';SG1.Cells[2,0]:='1';SG1.Cells[3,0]:='0';SG1.Cells[4,0]:='1';SG1.Cells[5,0]:='0';SG1.Cells[6,0]:='1';
SG1.Cells[0,1]:='1';SG1.Cells[1,1]:='0';SG1.Cells[2,1]:='1';SG1.Cells[3,1]:='1';SG1.Cells[4,1]:='0';SG1.Cells[5,1]:='0';SG1.Cells[6,1]:='0';
SG1.Cells[0,2]:='0';SG1.Cells[1,2]:='1';SG1.Cells[2,2]:='0';SG1.Cells[3,2]:='1';SG1.Cells[4,2]:='1';SG1.Cells[5,2]:='1';SG1.Cells[6,2]:='1';
SG1.Cells[0,3]:='0';SG1.Cells[1,3]:='1';SG1.Cells[2,3]:='0';SG1.Cells[3,3]:='0';SG1.Cells[4,3]:='1';SG1.Cells[5,3]:='1';SG1.Cells[6,3]:='0';
SG1.Cells[0,4]:='0';SG1.Cells[1,4]:='1';SG1.Cells[2,4]:='0';SG1.Cells[3,4]:='1';SG1.Cells[4,4]:='0';SG1.Cells[5,4]:='1';SG1.Cells[6,4]:='1';
SG1.Cells[0,5]:='0';SG1.Cells[1,5]:='1';SG1.Cells[2,5]:='1';SG1.Cells[3,5]:='0';SG1.Cells[4,5]:='1';SG1.Cells[5,5]:='0';SG1.Cells[6,5]:='1';
SG1.Cells[0,6]:='1';SG1.Cells[1,6]:='1';SG1.Cells[2,6]:='0';SG1.Cells[3,6]:='1';SG1.Cells[4,6]:='0';SG1.Cells[5,6]:='1';SG1.Cells[6,6]:='0';
SG1.Cells[0,7]:='1';SG1.Cells[1,7]:='1';SG1.Cells[2,7]:='0';SG1.Cells[3,7]:='0';SG1.Cells[4,7]:='1';SG1.Cells[5,7]:='1';SG1.Cells[6,7]:='1';
SG1.Cells[0,8]:='0';SG1.Cells[1,8]:='1';SG1.Cells[2,8]:='1';SG1.Cells[3,8]:='1';SG1.Cells[4,8]:='1';SG1.Cells[5,8]:='0';SG1.Cells[6,8]:='0';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.SEditChange(Sender: TObject);
begin
IF SEdit.Text<>'' Then
SBMemo.Text:=BinToStr(AnsiStrToBin(SEdit.Text))
Else SBMemo.Clear;
Label2.Caption:='символы - ('+IntToStr(Length(SEdit.Text))+' символы)';
end;
procedure TForm1.REditChange(Sender: TObject);
begin
Label3.Caption:='символы - ('+IntToStr(Length(REdit.Text))+' символы)';
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
i,j: integer;
begin
for i:=0 to 3 do
begin
SG2.Rows[i].Text;
SG3.Rows[i]:=SG2.Rows[i];
end;
for i:=4 to 8 do
begin
SG2.Rows[i].Text;
SG4.Rows[i]:=SG2.Rows[i];
end;
SG5.Cells[0,0]:=SG3.Cells[1,0];SG5.Cells[1,0]:=SG3.Cells[2,0];SG5.Cells[2,0]:=SG3.Cells[3,0];
SG5.Cells[3,0]:=SG3.Cells[4,0];SG5.Cells[4,0]:=SG3.Cells[5,0];SG5.Cells[5,0]:=SG3.Cells[6,0];
SG5.Cells[6,0]:=SG3.Cells[0,1];SG5.Cells[7,0]:=SG3.Cells[1,1];SG5.Cells[8,0]:=SG3.Cells[2,1];
SG5.Cells[9,0]:=SG3.Cells[3,1];SG5.Cells[10,0]:=SG3.Cells[4,1];SG5.Cells[11,0]:=SG3.Cells[5,1];
SG5.Cells[12,0]:=SG3.Cells[6,1];SG5.Cells[13,0]:=SG3.Cells[0,2];SG5.Cells[14,0]:=SG3.Cells[1,2];
SG5.Cells[15,0]:=SG3.Cells[2,2];SG5.Cells[16,0]:=SG3.Cells[3,2];SG5.Cells[17,0]:=SG3.Cells[4,2];
SG5.Cells[18,0]:=SG3.Cells[5,2];SG5.Cells[19,0]:=SG3.Cells[6,2];SG5.Cells[20,0]:=SG3.Cells[0,3];
SG5.Cells[21,0]:=SG3.Cells[1,3];SG5.Cells[22,0]:=SG3.Cells[2,3];SG5.Cells[23,0]:=SG3.Cells[3,3];
SG5.Cells[24,0]:=SG3.Cells[4,3];SG5.Cells[25,0]:=SG3.Cells[5,3];SG5.Cells[26,0]:=SG3.Cells[6,3];
SG5.Cells[27,0]:=SG3.Cells[0,4];SG5.Cells[27,0]:=SG3.Cells[0,0];
SG7.Cells[0,0]:=SG5.Cells[1,0];SG7.Cells[1,0]:=SG5.Cells[2,0];SG7.Cells[2,0]:=SG5.Cells[3,0];
SG7.Cells[3,0]:=SG5.Cells[4,0];SG7.Cells[4,0]:=SG5.Cells[5,0];SG7.Cells[5,0]:=SG5.Cells[6,0];
SG7.Cells[6,0]:=SG5.Cells[7,0];SG7.Cells[7,0]:=SG5.Cells[8,0];SG7.Cells[8,0]:=SG5.Cells[9,0];
SG7.Cells[9,0]:=SG5.Cells[10,0];SG7.Cells[10,0]:=SG5.Cells[11,0];SG7.Cells[11,0]:=SG5.Cells[12,0];
SG7.Cells[12,0]:=SG5.Cells[13,0];SG7.Cells[13,0]:=SG5.Cells[14,0];SG7.Cells[14,0]:=SG5.Cells[15,0];
SG7.Cells[15,0]:=SG5.Cells[16,0];SG7.Cells[16,0]:=SG5.Cells[17,0];SG7.Cells[17,0]:=SG5.Cells[18,0];
SG7.Cells[18,0]:=SG5.Cells[19,0];SG7.Cells[19,0]:=SG5.Cells[20,0];SG7.Cells[20,0]:=SG5.Cells[21,0];
SG7.Cells[21,0]:=SG5.Cells[22,0];SG7.Cells[22,0]:=SG5.Cells[23,0];SG7.Cells[23,0]:=SG5.Cells[24,0];
SG7.Cells[24,0]:=SG5.Cells[25,0];SG7.Cells[25,0]:=SG5.Cells[26,0];SG7.Cells[26,0]:=SG5.Cells[27,0];
SG7.Cells[27,0]:=SG5.Cells[28,0];SG7.Cells[27,0]:=SG5.Cells[0,0];
SG9.Cells[0,0]:=SG7.Cells[2,0];SG9.Cells[1,0]:=SG7.Cells[3,0];SG9.Cells[2,0]:=SG7.Cells[4,0];
SG9.Cells[3,0]:=SG7.Cells[5,0];SG9.Cells[4,0]:=SG7.Cells[6,0];SG9.Cells[5,0]:=SG7.Cells[7,0];
SG9.Cells[6,0]:=SG7.Cells[8,0];SG9.Cells[7,0]:=SG7.Cells[9,0];SG9.Cells[8,0]:=SG7.Cells[10,0];
SG9.Cells[9,0]:=SG7.Cells[11,0];SG9.Cells[10,0]:=SG7.Cells[12,0];SG9.Cells[11,0]:=SG7.Cells[13,0];
SG9.Cells[12,0]:=SG7.Cells[14,0];SG9.Cells[13,0]:=SG7.Cells[15,0];SG9.Cells[14,0]:=SG7.Cells[16,0];
SG9.Cells[15,0]:=SG7.Cells[17,0];SG9.Cells[16,0]:=SG7.Cells[18,0];SG9.Cells[17,0]:=SG7.Cells[19,0];
SG9.Cells[16,0]:=SG7.Cells[18,0];SG9.Cells[17,0]:=SG7.Cells[19,0];SG9.Cells[18,0]:=SG7.Cells[20,0];
SG9.Cells[18,0]:=SG7.Cells[20,0];SG9.Cells[19,0]:=SG7.Cells[21,0];SG9.Cells[20,0]:=SG7.Cells[22,0];
SG9.Cells[21,0]:=SG7.Cells[23,0];SG9.Cells[22,0]:=SG7.Cells[24,0];SG9.Cells[23,0]:=SG7.Cells[25,0];
SG9.Cells[24,0]:=SG7.Cells[26,0];SG9.Cells[25,0]:=SG7.Cells[27,0];SG9.Cells[26,0]:=SG7.Cells[0,0];
SG9.Cells[27,0]:=SG7.Cells[1,0];
SG6.Cells[0,0]:=SG4.Cells[1,4];SG6.Cells[1,0]:=SG4.Cells[2,4];SG6.Cells[2,0]:=SG4.Cells[3,4];
SG6.Cells[3,0]:=SG4.Cells[4,4];SG6.Cells[4,0]:=SG4.Cells[5,4];SG6.Cells[5,0]:=SG4.Cells[6,4];
SG6.Cells[6,0]:=SG4.Cells[0,5];SG6.Cells[7,0]:=SG4.Cells[1,5];SG6.Cells[8,0]:=SG4.Cells[2,5];
SG6.Cells[9,0]:=SG4.Cells[3,5];SG6.Cells[10,0]:=SG4.Cells[4,5];SG6.Cells[11,0]:=SG4.Cells[5,5];
SG6.Cells[12,0]:=SG4.Cells[6,5];SG6.Cells[13,0]:=SG4.Cells[0,6];SG6.Cells[14,0]:=SG4.Cells[1,6];
SG6.Cells[15,0]:=SG4.Cells[2,6];SG6.Cells[16,0]:=SG4.Cells[3,6];SG6.Cells[17,0]:=SG4.Cells[4,6];
SG6.Cells[18,0]:=SG4.Cells[5,6];SG6.Cells[19,0]:=SG4.Cells[6,6];SG6.Cells[20,0]:=SG4.Cells[0,7];
SG6.Cells[21,0]:=SG4.Cells[1,7];SG6.Cells[22,0]:=SG4.Cells[2,7];SG6.Cells[23,0]:=SG4.Cells[3,7];
SG6.Cells[24,0]:=SG4.Cells[4,7];SG6.Cells[25,0]:=SG4.Cells[5,7];SG6.Cells[26,0]:=SG4.Cells[6,7];
SG6.Cells[27,0]:=SG4.Cells[0,8];SG6.Cells[27,0]:=SG4.Cells[0,4];
SG8.Cells[0,0]:=SG6.Cells[1,0];SG8.Cells[1,0]:=SG6.Cells[2,0];SG8.Cells[2,0]:=SG6.Cells[3,0];
SG8.Cells[3,0]:=SG6.Cells[4,0];SG8.Cells[4,0]:=SG6.Cells[5,0];SG8.Cells[5,0]:=SG6.Cells[6,0];
SG8.Cells[6,0]:=SG6.Cells[7,0];SG8.Cells[7,0]:=SG6.Cells[8,0];SG8.Cells[8,0]:=SG6.Cells[9,0];
SG8.Cells[9,0]:=SG6.Cells[10,0];SG8.Cells[10,0]:=SG6.Cells[11,0];SG8.Cells[11,0]:=SG6.Cells[12,0];
SG8.Cells[12,0]:=SG6.Cells[13,0];SG8.Cells[13,0]:=SG6.Cells[14,0];SG8.Cells[14,0]:=SG6.Cells[15,0];
SG8.Cells[15,0]:=SG6.Cells[16,0];SG8.Cells[16,0]:=SG6.Cells[17,0];SG8.Cells[17,0]:=SG6.Cells[18,0];
SG8.Cells[18,0]:=SG6.Cells[19,0];SG8.Cells[19,0]:=SG6.Cells[20,0];SG8.Cells[20,0]:=SG6.Cells[21,0];
SG8.Cells[21,0]:=SG6.Cells[22,0];SG8.Cells[22,0]:=SG6.Cells[23,0];SG8.Cells[23,0]:=SG6.Cells[24,0];
SG8.Cells[24,0]:=SG6.Cells[25,0];SG8.Cells[25,0]:=SG6.Cells[26,0];SG8.Cells[26,0]:=SG6.Cells[27,0];
SG8.Cells[27,0]:=SG6.Cells[28,0];SG8.Cells[27,0]:=SG6.Cells[0,0];
SG10.Cells[0,0]:=SG8.Cells[2,0];SG10.Cells[1,0]:=SG8.Cells[3,0];SG10.Cells[2,0]:=SG8.Cells[4,0];
SG10.Cells[3,0]:=SG8.Cells[5,0];SG10.Cells[4,0]:=SG8.Cells[6,0];SG10.Cells[5,0]:=SG8.Cells[7,0];
SG10.Cells[6,0]:=SG8.Cells[8,0];SG10.Cells[7,0]:=SG8.Cells[9,0];SG10.Cells[8,0]:=SG8.Cells[10,0];
SG10.Cells[9,0]:=SG8.Cells[11,0];SG10.Cells[10,0]:=SG8.Cells[12,0];SG10.Cells[11,0]:=SG8.Cells[13,0];
SG10.Cells[12,0]:=SG8.Cells[14,0];SG10.Cells[13,0]:=SG8.Cells[15,0];SG10.Cells[14,0]:=SG8.Cells[16,0];
SG10.Cells[15,0]:=SG8.Cells[17,0];SG10.Cells[16,0]:=SG8.Cells[18,0];SG10.Cells[17,0]:=SG8.Cells[19,0];
SG10.Cells[16,0]:=SG8.Cells[18,0];SG10.Cells[17,0]:=SG8.Cells[19,0];SG10.Cells[18,0]:=SG8.Cells[20,0];
SG10.Cells[18,0]:=SG8.Cells[20,0];SG10.Cells[19,0]:=SG8.Cells[21,0];SG10.Cells[20,0]:=SG8.Cells[22,0];
SG10.Cells[21,0]:=SG8.Cells[23,0];SG10.Cells[22,0]:=SG8.Cells[24,0];SG10.Cells[23,0]:=SG8.Cells[25,0];
SG10.Cells[24,0]:=SG8.Cells[26,0];SG10.Cells[25,0]:=SG8.Cells[27,0];SG10.Cells[26,0]:=SG8.Cells[0,0];
SG10.Cells[27,0]:=SG8.Cells[1,0];
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SG11.Cells[0,0]:=SG5.Cells[13,0];SG11.Cells[1,0]:=SG5.Cells[16,0];SG11.Cells[2,0]:=SG5.Cells[10,0];
SG11.Cells[3,0]:=SG5.Cells[23,0];SG11.Cells[4,0]:=SG5.Cells[0,0];SG11.Cells[5,0]:=SG5.Cells[4,0];
SG11.Cells[6,0]:=SG5.Cells[2,0];SG11.Cells[7,0]:=SG5.Cells[27,0];SG11.Cells[8,0]:=SG5.Cells[14,0];
SG11.Cells[9,0]:=SG5.Cells[5,0];SG11.Cells[10,0]:=SG5.Cells[20,0];SG11.Cells[11,0]:=SG5.Cells[9,0];
SG11.Cells[12,0]:=SG5.Cells[22,0];SG11.Cells[13,0]:=SG5.Cells[18,0];SG11.Cells[14,0]:=SG5.Cells[11,0];
SG11.Cells[15,0]:=SG5.Cells[3,0];SG11.Cells[16,0]:=SG5.Cells[25,0];SG11.Cells[17,0]:=SG5.Cells[7,0];
SG11.Cells[18,0]:=SG5.Cells[15,0];SG11.Cells[19,0]:=SG5.Cells[6,0];SG11.Cells[20,0]:=SG5.Cells[26,0];
SG11.Cells[21,0]:=SG5.Cells[19,0];SG11.Cells[22,0]:=SG5.Cells[12,0];SG11.Cells[23,0]:=SG5.Cells[1,0];
SG11.Cells[24,0]:=SG6.Cells[11,0];SG11.Cells[25,0]:=SG6.Cells[22,0];SG11.Cells[26,0]:=SG6.Cells[1,0];
SG11.Cells[27,0]:=SG6.Cells[7,0];SG11.Cells[28,0]:=SG6.Cells[17,0];SG11.Cells[29,0]:=SG6.Cells[25,0];
SG11.Cells[30,0]:=SG6.Cells[0,0];SG11.Cells[31,0]:=SG6.Cells[10,0];SG11.Cells[32,0]:=SG6.Cells[21,0];
SG11.Cells[33,0]:=SG6.Cells[15,0];SG11.Cells[34,0]:=SG6.Cells[3,0];SG11.Cells[35,0]:=SG6.Cells[18,0];
SG11.Cells[36,0]:=SG6.Cells[14,0];SG11.Cells[37,0]:=SG6.Cells[19,0];SG11.Cells[38,0]:=SG6.Cells[9,0];
SG11.Cells[39,0]:=SG6.Cells[26,0];SG11.Cells[40,0]:=SG6.Cells[4,0];SG11.Cells[41,0]:=SG6.Cells[23,0];
SG11.Cells[42,0]:=SG6.Cells[16,0];SG11.Cells[43,0]:=SG6.Cells[12,0];SG11.Cells[44,0]:=SG6.Cells[20,0];
SG11.Cells[45,0]:=SG6.Cells[6,0];SG11.Cells[46,0]:=SG5.Cells[0,0];SG11.Cells[47,0]:=SG6.Cells[2,0];
SG12.Cells[0,0]:=SG7.Cells[13,0];SG12.Cells[1,0]:=SG7.Cells[16,0];SG12.Cells[2,0]:=SG7.Cells[10,0];
SG12.Cells[3,0]:=SG7.Cells[23,0];SG12.Cells[4,0]:=SG7.Cells[0,0];SG12.Cells[5,0]:=SG7.Cells[4,0];
SG12.Cells[6,0]:=SG7.Cells[2,0];SG12.Cells[7,0]:=SG7.Cells[27,0];SG12.Cells[8,0]:=SG7.Cells[14,0];
SG12.Cells[9,0]:=SG7.Cells[5,0];SG12.Cells[10,0]:=SG7.Cells[20,0];SG12.Cells[11,0]:=SG7.Cells[9,0];
SG12.Cells[12,0]:=SG7.Cells[22,0];SG12.Cells[13,0]:=SG7.Cells[18,0];SG12.Cells[14,0]:=SG7.Cells[11,0];
SG12.Cells[15,0]:=SG7.Cells[3,0];SG12.Cells[16,0]:=SG7.Cells[25,0];SG12.Cells[17,0]:=SG7.Cells[7,0];
SG12.Cells[18,0]:=SG7.Cells[15,0];SG12.Cells[19,0]:=SG7.Cells[6,0];SG12.Cells[20,0]:=SG7.Cells[26,0];
SG12.Cells[21,0]:=SG7.Cells[19,0];SG12.Cells[22,0]:=SG7.Cells[12,0];SG12.Cells[23,0]:=SG7.Cells[1,0];
SG12.Cells[24,0]:=SG8.Cells[11,0];SG12.Cells[25,0]:=SG8.Cells[22,0];SG12.Cells[26,0]:=SG8.Cells[1,0];
SG12.Cells[27,0]:=SG8.Cells[7,0];SG12.Cells[28,0]:=SG8.Cells[17,0];SG12.Cells[29,0]:=SG8.Cells[25,0];
SG12.Cells[30,0]:=SG8.Cells[0,0];SG12.Cells[31,0]:=SG8.Cells[10,0];SG12.Cells[32,0]:=SG8.Cells[21,0];
SG12.Cells[33,0]:=SG8.Cells[15,0];SG12.Cells[34,0]:=SG8.Cells[3,0];SG12.Cells[35,0]:=SG8.Cells[18,0];
SG12.Cells[36,0]:=SG8.Cells[14,0];SG12.Cells[37,0]:=SG8.Cells[19,0];SG12.Cells[38,0]:=SG8.Cells[9,0];
SG12.Cells[39,0]:=SG8.Cells[26,0];SG12.Cells[40,0]:=SG8.Cells[4,0];SG12.Cells[41,0]:=SG8.Cells[23,0];
SG12.Cells[42,0]:=SG8.Cells[16,0];SG12.Cells[43,0]:=SG8.Cells[12,0];SG12.Cells[44,0]:=SG8.Cells[20,0];
SG12.Cells[45,0]:=SG8.Cells[6,0];SG12.Cells[46,0]:=SG7.Cells[0,0];SG12.Cells[47,0]:=SG8.Cells[2,0];
SG13.Cells[0,0]:=SG9.Cells[13,0];SG13.Cells[1,0]:=SG9.Cells[16,0];SG13.Cells[2,0]:=SG9.Cells[10,0];
SG13.Cells[3,0]:=SG9.Cells[23,0];SG13.Cells[4,0]:=SG9.Cells[0,0];SG13.Cells[5,0]:=SG9.Cells[4,0];
SG13.Cells[6,0]:=SG9.Cells[2,0];SG13.Cells[7,0]:=SG9.Cells[27,0];SG13.Cells[8,0]:=SG9.Cells[14,0];
SG13.Cells[9,0]:=SG9.Cells[5,0];SG13.Cells[10,0]:=SG9.Cells[20,0];SG13.Cells[11,0]:=SG9.Cells[9,0];
SG13.Cells[12,0]:=SG9.Cells[22,0];SG13.Cells[13,0]:=SG9.Cells[18,0];SG13.Cells[14,0]:=SG9.Cells[11,0];
SG13.Cells[15,0]:=SG9.Cells[3,0];SG13.Cells[16,0]:=SG9.Cells[25,0];SG13.Cells[17,0]:=SG9.Cells[7,0];
SG13.Cells[18,0]:=SG9.Cells[15,0];SG13.Cells[19,0]:=SG9.Cells[6,0];SG13.Cells[20,0]:=SG9.Cells[26,0];
SG13.Cells[21,0]:=SG9.Cells[19,0];SG13.Cells[22,0]:=SG9.Cells[12,0];SG13.Cells[23,0]:=SG9.Cells[1,0];
SG13.Cells[24,0]:=SG10.Cells[11,0];SG13.Cells[25,0]:=SG10.Cells[22,0];SG13.Cells[26,0]:=SG10.Cells[1,0];
SG13.Cells[27,0]:=SG10.Cells[7,0];SG13.Cells[28,0]:=SG10.Cells[17,0];SG13.Cells[29,0]:=SG10.Cells[25,0];
SG13.Cells[30,0]:=SG10.Cells[0,0];SG13.Cells[31,0]:=SG10.Cells[10,0];SG13.Cells[32,0]:=SG10.Cells[21,0];
SG13.Cells[33,0]:=SG10.Cells[15,0];SG13.Cells[34,0]:=SG10.Cells[3,0];SG13.Cells[35,0]:=SG10.Cells[18,0];
SG13.Cells[36,0]:=SG10.Cells[14,0];SG13.Cells[37,0]:=SG10.Cells[19,0];SG13.Cells[38,0]:=SG10.Cells[9,0];
SG13.Cells[39,0]:=SG10.Cells[26,0];SG13.Cells[40,0]:=SG10.Cells[4,0];SG13.Cells[41,0]:=SG10.Cells[23,0];
SG13.Cells[42,0]:=SG10.Cells[16,0];SG13.Cells[43,0]:=SG10.Cells[12,0];SG13.Cells[44,0]:=SG10.Cells[20,0];
SG13.Cells[45,0]:=SG10.Cells[6,0];SG13.Cells[46,0]:=SG9.Cells[0,0];SG13.Cells[47,0]:=SG10.Cells[2,0];
end;
end.
