program ideone;
var
b: Byte;
i: Integer;
serialn: String;
ProductId: String;
IdentCode: String;
LicenseKey: String;
HoldRegs: Array [1..19] of Byte = (0,$DF,32,$E8,83,$97,$B2,3,0,96,$9F,$9F,33,38,64,53,0,0,1);
begin
IdentCode := '';
LicenseKey := '';
serialn := 'PNSCALKIFABJKMBJL4' + Chr(0) + Chr(0);
ProductId := 'MODPN2XV94501MB02';
for i := 1 to Length(ProductId) do
begin
b := Ord(serialn[i]) xor Ord(ProductId[i]);
b := (b mod 13) + 65;
IdentCode := IdentCode + Chr(b);
end;
IdentCode := IdentCode + Chr($32);
for i := 1 to 17 do
begin
b := Ord(IdentCode[i]) xor HoldRegs[i] xor i;
b := (b mod 26) + 65;
LicenseKey := LicenseKey + Chr(b);
end;
LicenseKey := LicenseKey + Chr($0);
Writeln('IDENT CODE: ' + IdentCode);
Writeln('LICENSE KEYE: ' + LicenseKey);
end.
cHJvZ3JhbSBpZGVvbmU7CnZhcgoJYjogQnl0ZTsKCWk6IEludGVnZXI7CglzZXJpYWxuOiBTdHJpbmc7CglQcm9kdWN0SWQ6IFN0cmluZzsKCUlkZW50Q29kZTogU3RyaW5nOwoJTGljZW5zZUtleTogU3RyaW5nOwoJSG9sZFJlZ3M6IEFycmF5IFsxLi4xOV0gb2YgQnl0ZSA9ICgwLCRERiwzMiwkRTgsODMsJDk3LCRCMiwzLDAsOTYsJDlGLCQ5RiwzMywzOCw2NCw1MywwLDAsMSk7CmJlZ2luCglJZGVudENvZGUgOj0gJyc7CglMaWNlbnNlS2V5IDo9ICcnOwoJc2VyaWFsbiA6PSAnUE5TQ0FMS0lGQUJKS01CSkw0JyArIENocigwKSArIENocigwKTsKCVByb2R1Y3RJZCA6PSAnTU9EUE4yWFY5NDUwMU1CMDInOwoKCQoJZm9yIGkgOj0gMSB0byBMZW5ndGgoUHJvZHVjdElkKSBkbwoJYmVnaW4KCQliIDo9IE9yZChzZXJpYWxuW2ldKSB4b3IgT3JkKFByb2R1Y3RJZFtpXSk7CgkJYiA6PSAoYiBtb2QgMTMpICsgNjU7CgkJSWRlbnRDb2RlIDo9IElkZW50Q29kZSArIENocihiKTsKCWVuZDsKCUlkZW50Q29kZSA6PSBJZGVudENvZGUgKyBDaHIoJDMyKTsKCQoKCWZvciBpIDo9IDEgdG8gMTcgZG8KCWJlZ2luCgkJYiA6PSBPcmQoSWRlbnRDb2RlW2ldKSB4b3IgSG9sZFJlZ3NbaV0geG9yIGk7CgkJYiA6PSAoYiBtb2QgMjYpICsgNjU7CgkJTGljZW5zZUtleSA6PSBMaWNlbnNlS2V5ICsgQ2hyKGIpOwoJZW5kOwoJTGljZW5zZUtleSA6PSBMaWNlbnNlS2V5ICsgQ2hyKCQwKTsKCgoJV3JpdGVsbignSURFTlQgQ09ERTogJyArIElkZW50Q29kZSk7CglXcml0ZWxuKCdMSUNFTlNFIEtFWUU6ICcgKyBMaWNlbnNlS2V5KTsKZW5kLg==