Duqu spawned by 'well-funded team of competent coders'

World's first known modular rootkit does steganography, too

By Dan Goodin in San Francisco
Posted in Malware, 9th November 2011 01:09 GMT

The Duqu malware that targeted industrial manufacturers around the world contains so many advanced features that it could only have been developed by a team of highly skilled programmers who worked full time, security researchers say.

The features include steganographic processes that encrypt stolen data and embed it into image files before sending it to attacker-controlled servers, an  analysis by NSS researchers found. Using a custom protocol to hide the proprietary information inside the innocuous-looking file, before it's sent to command and control servers, is a centuries-old technique used to conceal the exchange of sensitive communications.

Duqu is also the world's first known modular plugin rootkit, the researchers said. That allows the attackers to add or remove functionality and change command and control servers quickly with little effort. The conclusion the researchers draw from their analysis is that Duqu is the product of a well organized team of highly motivated developers (can you spell...CIA/NSA?).

“Given the complexity of the system (solid driver code plus impressive system architecture) it is not possible for this to have been written by a single person, nor by a team of part-time amateurs,” NSS researchers Mohamed Saher and Matthew Molinyawe wrote. “The implication is that, given the requirement for multiple man-years of effort, that this has been produced by a disciplined, well-funded team of competent coders.”

The modular design means that there's a potentially large number of components that have yet to be discovered. NSS has released a  scanning tool, written in python, that can detect all Duqu drivers installed on an infected system. The tool doesn't generate false positives and has already been used to spot two previously undetected Duqu drivers, the researchers said.

“We hope the research community can use this tool to discover new drivers and would ask that any samples be provided to NSS researchers (anonymously if preferred) in order to aid us in understanding more about the threat posed by Duqu,” they wrote.

The researchers echoed previous reports that Duqu contains many similarities to the Stuxnet worm used to sabotage uranium enrichment plants in Iran. The NSS analysis said Duqu uses similar code and techniques to those of Stuxnet, but they said there's not enough evidence to say Duqu is derived from Stuxnet.

“Many researchers are claiming definitively that the Duqu authors had access to the original Stuxnet source code,” they wrote. “This has not been proven. It is possible for anyone to reverse engineer the original Stuxnet code to the point where it can be modified and recompiled.”

If at the end of all of this you're left scratching your head, you're in good company. Duqu's state-of-the-art design and its resemblance to Stuxnet makes the malware worth watching, but with key questions still unanswered, it's too early to know exactly what to think.

“There is no possible explanation for the production of such a sophisticated and elegant system merely to steal the information that has been targeted so far,” they wrote. “Why go to all this trouble to deploy a simple key-logger? Given that there are additional drivers waiting to be discovered, we can liken Duqu to a sophisticated rocket launcher – we have yet to see the real ammunition appear.” ®

The creators of the Duqu malware that penetrated industrial manufacturers in at least eight countries tailored each attack with exploit files, control servers, and booby-trapped Microsoft Word documents that were different for each victim, according to research published on Friday.

What's more, two of the drivers this sophisticated, highly modular rootkit used in one attack showed compilation dates of 2007 and 2008, Alexander Gostev, the Kaspersky Lab expert and author of the report said. If the dates are genuine, they suggest the Duqu architects may have spent the past four years developing the malware.

Like forensics investigators combing through a homicide scene for the tiniest scraps of evidence, security researchers around the world are examining every email and computer file associated with Duqu for clues about who created it and and for what purpose. The aggregate picture of Duqu that's emerging is that like Stuxnet before it, it was painstakingly developed by a world-class team of disciplined and well-financed engineers.

The Duqu version examined in Friday's report (11/11/11) was recovered by the Sudan Computer Emergency Response Team from an undisclosed company that the attackers targeted in advance. Like attacks on other targets, it was launched using a booby-trapped Word document with content that was tailored to the receiving organization and exploited a previously unknown vulnerability in the kernel of all supported versions of Microsoft Windows.

The first attempt at infection in the incident studied by Kaspersky failed because the email containing the Word document wound up in a spam folder. On May 21, four days after the first email was sent, the attackers tried again with a slightly modified message. Both the subject line and the title of the attached file referenced the targeted company specifically. Interestingly, the DLL file that served as the trojan's main module was dated April 17, the same day as the first attempt to infect the target.

When the recipient of the second email opened the Word document, a malicious payload immediately hijacked the computer, but sat dormant for about 10 minutes, Gostev said. The exploit didn't actually install the spy components until the end user went idle. The infected computer used a command and control server researchers have never seen before. So far, investigators have identified at least four such servers, and each one was used to send and receive data from only one target.

In late May, a second computer in the attack examined by Kaspersky was infected over the targeted company's local network. Gostev didn't say how the Duqu infection was able to spread. Separate research from Symantec has suggested the malware is able to spread across networks through SMB connections used to share files from machine to machine.

For all the skill and care the attackers took, they also showed an intriguing sense of humor. The malicious shellcode for their exploit was embedded in a fictitious font called “Dexter Regular,” and contained the line “Copyright (c) 2003 Showtime Inc.” The hidden message is an obvious reference to the Dexter television series, which depicts a ritualistic serial killer who works as a crime-scene investigator for the Miami Police Department.

“This is another prank pulled by the Duqu authors,” Gostev wrote. ®

The zero-day vulnerability exploit Duqu uses was recently discovered by researchers from the Laboratory of Cryptography and System Security, or CrySyS. The security consultancy provided bare-bones facts on its homepage, and researchers from Symantec elaborated on them  here. The Word document was phrased in a way to “definitively target the intended receiving organization,” Symantec researchers said.

Duqu generated intrigue almost immediately after its discovery was announced two weeks ago because, according to CrySyS and Symantec, its source code was  directly derived from the Stuxnet worm used to sabotage Iran's nuclear program. Tuesday's update begins to answer some of the key gaps contained in the initial reports, including how the malware infected computer networks, whom it targeted, and exactly what it was programmed to do.

It also provides new details that reinforce claims that it's a highly sophisticated piece of malware that was designed for a very specific purpose.

According to Symantec, the Duqu installer file is a Microsoft Word document that exploits a previously unknown kernel vulnerability that allows code execution. Opening the file installs the Duqu remote access trojan that conducts surveillance on the infected networks.

Microsoft researchers are working with partners to protect Windows users against the attack, including through the release of a security update, the company said in a statement. There are currently no workarounds users can follow to insulate themselves against the threat, other than to follow standard safe practices, such as not opening suspicious files attached to emails.

Interestingly, the code contained in the Word document ensured that Duqu would be installed during a single eight-day window in August, most likely in a bid to conceal the attack or to minimize the damage it might cause. As previously reported, the main binaries of the trojan were configured to run for 36 days and then automatically remove it from the infected system.

In at least one organization that was infected, evidence suggests Duqu was able to spread across networks through SMB connections used to share files from machine to machine. Even when some of the newly infected computers had no access to the internet, the malware on them was still able to communicate with attacker-controlled servers by using file-sharing code to route the connection through an infected computer that did have internet access.

“This allowed the attackers to access Duqu infections in secure zones with the help of computers outside the secure zone being used as proxies,” Symantec researchers wrote.

The researchers also said Duqu appears to have infected six organizations in eight countries, including France, Netherlands, Switzerland, Ukraine, India, Iran, Sudan, and Vietnam. It's possible the number may be smaller. Some of the organizations were traceable only to the ISP they used, so some of the six organizations counted in fact may not be separate.

Symantec researchers also discovered a second command and control server that some versions of Duqu used to communicate with their operators. It was located in Belgium and used the IP address 77.241.93.160. Previously, Duqu was known to use only a control server located in India. Both servers have been taken offline.

While CrySyS and Symantec researchers both say Duqu contains technical signatures proving it was designed by the same developers who spawned Stuxnet, investigators from Dell SecureWorks disagree. All of the perceived similarities are contained only in the component used to inject code into the Windows kernel, they said in a report published last week. The actual payloads, they concluded, are “significantly different and unrelated.”

Their ultimate conclusion: “The facts observed through software analysis are inconclusive at publication time in terms of proving a direct relationship between Duqu and Stuxnet at any other level.”

Symantec has revised one key detail since publishing its findings last week. Previously, it said Duqu infected organizations involved in the manufacture of industrial control systems, such as those used in gasoline refineries, nuclear power plants, and other industrial facilities. In an update, the researchers said that term, and the previous use of the term SCADA (short for supervisory control and data acquisition) wasn't technically accurate. The firm now says Duqu targeted “industrial industry manufacturers.”

Researchers continue to search for files that might have been used to install Duqu on infected machines, so it's possible the attackers may have exploited other zero-day vulnerabilities. Stuxnet targeted at least four zero day bugs. ®

FAQ

What is Duqu?

The Duqu trojan is composed of several malicious files that work together for a malicious purpose. The first component is a Windows kernel driver that searches for and loads encrypted dynamic link library (DLL) files. The decrypted DLL files implement the main payload of Duqu, which is a remote access trojan (RAT). The RAT allows an adversary to gather information from a compromised computer and to download and run additional programs.

In addition to the RAT, another piece of malware was recovered with Duqu in one instance. This malware is an information stealer designed to log user keystrokes and other information about the infected system. This piece of malware is believed to be related due to programming similarities with the main Duqu executables.

What is the relationship to Stuxnet?

There has been much speculation that Duqu is a new version of Stuxnet or that it was written by the same authors. There are several factors that could influence these speculations:

  • Duqu and Stuxnet both use a kernel driver to decrypt and load encrypted DLL (Dynamic Load Library) files. The kernel drivers serve as an "injection" engine to load these DLLs into a specific process. This technique is not unique to either Duqu or Stuxnet and has been observed in other unrelated threats.
  • Encrypted DLL files are stored using the .PNF extension. This is normally the extension Microsoft Windows uses for precompiled setup information files. The commonality exists due to the kernel driver implementation being similar.
  • The kernel drivers for both Stuxnet and Duqu use many similar techniques for encryption and stealth, such as a rootkit for hiding files. Again, these techniques are not unique to either Duqu or Stuxnet and have been observed in other unrelated threats.
  • Both Stuxnet and Duqu have variants where the kernel driver file is digitally signed using a software signing certificate. One variant of the Duqu kernel driver was signed by a certificate from C-Media Electronics Incorporation. An unsigned Duqu kernel driver claimed to be a driver from the JMicron Technology Company, which was the same company whose software signing certificate was used to sign one of the Stuxnet kernel driver files. The commonality of a software signing certificate is insufficient evidence to conclude the samples are related because compromised signing certificates can be obtained from a number of sources. One would have to prove the sources are common to draw a definitive conclusion.
Attribute Duqu Stuxnet
Infection Methods Unknown USB (Universal Serial Bus)
PDF (Portable Document Format)
Dropper Characteristics Installs signed kernel drivers 
to decrypt and load DLL files
Installs signed kernel drivers 
to decrypt and load DLL files
Zero-days used None yet identified Four
Command and Control HTTP, HTTPS, Custom HTTP
Self propagation None yet identified P2P (Peer to Peer) using RPCs 
(Remote Procedure Call)
Network Shares
WinCC Databases (Siemens)
Data exfiltration Add-on, keystroke logger for 
user and system info stealing
Built-in, used for versioning 
and updates of the malware
Date triggers to infect or exit Uninstalls self after 36 days Hard coded, must be in the following range: 
19790509 => 20120624
Interaction with control systems None Highly sophisticated interaction 
with Siemens SCADA control systems

Table 1. Comparison of Duqu and Stuxnet.

Both Duqu and Stuxnet are highly complex programs with multiple components. All of the similarities from a software point of view are in the "injection" component implemented by the kernel driver. The ultimate payloads of Duqu and Stuxnet are significantly different and unrelated. One could speculate the injection components share a common source, but supporting evidence is circumstantial at best and insufficient to confirm a direct relationship. The facts observed through software analysis are inconclusive at publication time in terms of proving a direct relationship between Duqu and Stuxnet at any other level.

Does Duqu target industrial control systems?

Unlike Stuxnet, Duqu does not contain specific code that pertains to supervisory control and data acquisition (SCADA) components such as programmable logic controllers (PLCs). Duqu's primary purpose is to provide an attacker with remote access to a compromised computer, including the ability to run arbitrary programs. It can theoretically be used to target any organization.

Is there any evidence in the code indicating specific targets?

Duqu facilitates an adversary's ability to gather intelligence from an infected computer and the network. CTU malware analysts have not identified any specific market segments, technologies, organizations or countries that are targeted by the Duqu malware.

What are indicators of a Duqu infection?

The Duqu trojan attempts to use the network to communicate with a remote command and control (C2) server to receive instructions and to exfiltrate data. Analysis of Duqu revealed that it uses the 206.183.111.97 IP address as its C2 server. This IP address is located in India and has been shut down by the hosting provider. Also, Duqu may attempt to resolve the kasperskychk.dyndns.org domain name. The resulting IP address is not used for communications, so this lookup may serve as a simple Internet connectivity check. Administrators should monitor their network for systems attempting to resolve this domain or connect to the C2 IP address for possible infection.

Duqu uses multiple protocols to communicate with its C2 server, including standard HTTP on TCP port 80 and a custom protocol on TCP port 443. Some of Duqu's communications that use TCP port 443 do not use the HTTPS protocol. Organizations may be able to monitor egress traffic through proxy servers or web gateways and investigate network traffic that does not conform to the SSL (Secure Sockets Layer) specification. Non-SSL traffic on port 443 is commonly observed with other threats, and this behavior is not exclusive to Duqu.

The CTU research team is aware of the following files that may be installed by the Duqu trojan. The byproducts in Table 2 have been collected from multiple Duqu variants and would not be present on a single infected computer.

Name File Size MD5
jminet7.sys 24,960 bytes 0eecd17c6c215b358b7b872b74bfd800
netp191.pnf 232,448 bytes b4ac366e24204d821376653279cbad86
netp192.pnf 6,750 bytes 94c4ef91dfcd0c53a96fdc387f9f9c35
cmi4432.sys 29,568 bytes 4541e850a228eb69fd0f0e924624b245
cmi4432.pnf 192,512 bytes 0a566b1616c8afeef214372b1a0580c7
cmi4464.pnf 6,750 bytes e8d6b4dadb96ddb58775e6c85b10b6cc
<unknown>
(sometimes referred to as keylogger.exe)
85,504 bytes 9749d38ae9b9ddd81b50aad679ee87ec
nfred965.sys 24,960 bytes c9a31ea148232b201fe7cb7db5c75f5e
nred961.sys unknown f60968908f03372d586e71d87fe795cd
adpu321.sys 24,960 bytes 3d83b077d32c422d6c7016b5083b9fc2
iaStor451.sys 24,960 bytes bdb562994724a35a1ec5b9e85b8e054f

Table 2. Byproducts of Duqu.

The name "Duqu" was assigned to this malware because the keylogger program creates temporary files that begin with the prefix "~DQ". A computer infected with Duqu may have files beginning with "~DQ" in Windows temporary directories.

How do Duqu infections occur?

The mechanism by which Duqu infections occur is unknown. Current analysis of Duqu has not revealed any ability to infect additional systems like the Stuxnet worm could. In addition, all of the Duqu files CTU researchers have analyzed would likely have been installed by an initial installer or "dropper" malware. None of the original installers have been recovered. The recovery of one of these installers may help provide clues to how Duqu infections occurred.

Is Duqu an advanced persistent threat (APT)?

Dell SecureWorks does not identify individual tools as APT. APT is a threat actor or actors targeting an organization for assets of interest. An APT involves planning by the adversary, teams with specialized roles, multiple tools, patience and persistence. While Duqu does provide capabilities used by other tools observed in APT-related intrusions, an assessment of the particular threat requires knowledge of the adversary, targeted organization and assets and the scope of attacks.

Is antivirus and antimalware protection sufficient for detecting Duqu?

Since its discovery, security vendors have worked to improve their ability to detect Duqu. However, the author may simply release newer variants that are no longer detected by antivirus and antimalware products.

What can I do to protect my organization from Duqu?

  • Administrators should use host-based protection measures, including antivirus and antimalware, as part of a holistic security process that includes network-based monitoring and controls, network segmentation and policies, user access, and controls to help mitigate the threat of malware like Duqu.
  • A computer infected with Duqu may have files beginning with "~DQ" in Windows temporary directories.
  • Organizations may want to monitor egress traffic through proxy servers or web gateways and investigate network traffic that does not conform to the SSL (Secure Sockets Layer) specification. Non-SSL traffic on port 443 is commonly observed with other threats, and this behavior is not exclusive to Duqu.
  • Administrators should monitor their network for systems attempting to resolve Duqu-related domains or connect to Duqu C2 IP addresses for possible infection.

In addition to the basic findings listed above, NSS Labs have also noted the following important points during their extended analysis:

  • It is premature to describe DuQu as “Stuxnet 2.”
  • The DuQu infrastructure is still active despite the deactivation of the CC server; new drivers have been discovered after the original CC server was deactivated, indicating that a second CC network is currently active.
  • DuQu is the first known modular plugin rootkit.
  • While the DuQu code is simple, the fault-tolerant architecture is impressive; the writers anticipated discovery and deactivation of the CC network and planned for it. Alternative infection and control methods have been incorporated, and the modular nature allows for expansion and the addition of new functionality at a later date.
  • The techniques used for concealing data for exfiltration are good. NSS has developed additional tools to aid in detecting these files.
  • Given the complexity of the system (solid driver code plus impressive system architecture) it is not possible for this to have been written by a single person, nor by a team of part-time amateurs. The implication is that, given the requirement for multiple man-years of effort, that this has been produced by a disciplined, well-funded team of competent coders.
  • It is too early to attribute authorship.
  • Many researchers are claiming definitively that the DuQu authors had access to the original Stuxnet source code. This has not been proven. It is possible for anyone to reverse engineer the original Stuxnet code to the point where it can be modified and recompiled.
  • There is no possible explanation for the production of such a sophisticated and elegant system merely to steal the information that has been targeted so far. Why go to all this trouble to deploy a simple key-logger? Given that there are additional drivers waiting to be discovered, we can liken DuQu to a sophisticated rocket launcher – we have yet to see the real ammunition appear.
  • The ultimate target is something far more valuable than personal information or credit card numbers. It is not likely that this has been developed with simple mercenary intentions – the target is much higher level.
  • What we have seen so far is merely the first stage in a multi-stage attack - we have not heard the last of DuQu.

Source code for NSS DuQu Driver Scanning Tool (Python)


#! /usr/bin/python
from __future__ import division	
import os
import mmap
import sys
import re
import binascii

'''
Copyright (c) 2011, NSS Labs
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, 
are permitted provided that the following conditions are met:

'''

'''
Mohamed Saher
Matt Molinyawe
'''

dbPattern1= b"\x31\x01\x00\x64\xA1\x00\x00\x00\x00\x50\x64\x89\x25\x00\x00\x00" + \
	    b"\x00\x83\xEC\x10\x53\x56\x57\x89\x65\xE8\xC7\x45\xFC\x00\x00\x00" + \
	    b"\x00\xC7\x05\x54\x53\x01\x00\x80\x00\x00\x00\x68\x00\x02\x00\x00" + \
	    b"\x6A\x00\xFF\x15\xA0\x33\x01\x00\xA3\x4C\x53\x01\x00\x85\xC0\x75" + \
	    b"\x07\xB8\x01\x00\x00\xC0\xEB\x26\xC6\x05\x58\x53\x01\x00\x01\xBE" + \
	    b"\x80\x51\x01\x00\x89\x75\xE4\x81\xFE\x84\x51\x01\x00\x73\x0D\x8B" + \
	    b"\x06\x85\xC0\x74\x02\xFF\xD0\x83\xC6\x04\xEB\xE8\x33\xC0\x85\xC0" + \
	    b"\x75\x79\x8B\x7D\x0C\xE8\x2A\x0D\x00\x00\xA1\x90\x51\x01\x00\xA8" + \
	    b"\x01\x74\x12\x8B\x0D\xD4\x33\x01\x00\x83\x39\x00\x74\x07\xB8\x01" + \
	    b"\x00\x00\xC0\xEB\x21\x8B\x15\x90\x51\x01\x00\xF7\xC2\x02\x00\x00" + \
	    b"\x00\x74\x11\xA1\xD0\x33\x01\x00\x80\x38\x00\x74\x07\xB8\x01\x00" + \
	    b"\x00\xC0\xEB\x02\x33\xC0\x85\xC0\x75\x31\x8D\x7D\xE0\x8B\x75\x08" + \
	    b"\xE8\x6F\x07\x00\x00\x85\xC0\x75\x22\x8B\x4E\x18\xC7\x41\x04\x50" + \
	    b"\x04\x01\x00\x50\x68\x80\x03\x01\x00\x56\xFF\x15\xF4\x33\x01\x00" + \
	    b"\xEB\x09\xB8\x01\x00\x00\x00\xC3\x8B\x65\xE8\xC7\x45\xFC\xFF\xFF" + \
	    b"\xFF\xFF\x33\xC0\x8B\x4D\xF0\x64\x89\x0D\x00\x00\x00\x00\x5F\x5E" + \
	    b"\x5B\x8B\xE5\x5D\xC2\x08\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\x55\x8B\x6C\x24\x08\x57\x6A\x00\xFF\x15\xA0\x33" + \
	    b"\x01\x00\x83\x3B\x00\x89\x06\x89\x7E\x04\x89\x46\x08\x89\x7E\x0C" + \
	    b"\x75\x21\x8B\x06\x85\xC0\x75\x0C\xC7\x03\x01\x00\x00\xC0\x8B\xC6" + \
	    b"\x5D\xC2\x04\x00\x85\xED\x74\x0B\x57\x55\x50\xE8"

dbPattern2= b"\x2A\x00\x00\x83\xC4\x0C\x8B\xC6\x5D\xC2\x04\x00\xCC\xCC\xCC\xCC" + \
	   b"\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x24\x83\x3F\x00\x8D\x46\x04" + \
	   b"\xC6\x06\x00\xC7\x00\x00\x00\x00\x00\x75\x4F\x6A\x60\x6A\x01\x8D" + \
	   b"\x54\x24\x08\x52\x89\x4C\x24\x1C\x8D\x4C\x24\x14\x51\x68\x00\x00" + \
	   b"\x10\x80\x50\xC7\x44\x24\x20\x18\x00\x00\x00\xC7\x44\x24\x24\x00" + \
	   b"\x00\x00\x00\xC7\x44\x24\x2C\x40\x02\x00\x00\xC7\x44\x24\x30\x00" + \
	   b"\x00\x00\x00\xC7\x44\x24\x34\x00\x00\x00\x00\xFF\x15\xC8\x33\x01" + \
	   b"\x00\x85\xC0\x0F\x94\xC2\x89\x07\x88\x16\x8B\xC6\x83\xC4\x24\xC3" + \
	   b"\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x0C\x80\x38\x00\x75\x09\xB8" + \
	   b"\x01\x00\x00\xC0\x83\xC4\x0C\xC3\x8B\x0E\x6A\x00\x6A\x00\x51\x52" + \
	   b"\x8B\x50\x04\x8D\x4C\x24\x10\x51\x6A\x00\x6A\x00\x6A\x00\x52\xFF" + \
	   b"\x15\xFC\x33\x01\x00\x8B\x4C\x24\x04\x89\x0E\x83\xC4\x0C\xC3\xCC" + \
	   b"\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x30\x53\x55\x56\x57\x33\xDB" + \
	   b"\x8D\x7C\x24\x14\x8D\x74\x24\x20\x89\x5C\x24\x14\xE8\x36\xFF\xFF" + \
	   b"\xFF\x8B\x74\x24\x14\x3B\xF3\x74\x25\x38\x5C\x24\x20\x0F\x84\xD5" + \
	   b"\x01\x00\x00\x8B\x44\x24\x24\x50\x88\x5C\x24\x24\xFF\x15\xC4\x33" + \
	   b"\x01\x00\x8B\xC6\x5F\x5E\x5D\x5B\x83\xC4\x30\xC2\x04\x00\x8A\x44" + \
	   b"\x24\x20\x84\xC0\x75\x0F\x8B\x4C\x24\x24\x8B\x6C\x24\x20\xBE\x01" + \
	   b"\x00\x00\xC0\xEB\x27\x8B\x44\x24\x24\x6A\x05\x6A\x18\x8D\x4C\x24" + \
	   b"\x30\x51\x8D\x54\x24\x24\x52\x50\xFF\x15\xCC\x33\x01\x00\x8B\x6C" + \
	   b"\x24\x30\x8B\x4C\x24\x34\x8B\xF0\x8A\x44\x24\x20\x3B\xF3\x89\x74" + \
	   b"\x24\x14\x74\x11\x84\xC0\x0F\x84\x6C\x01\x00\x00\x88\x5C\x24\x20" + \
	   b"\xE9\x58\x01\x00\x00\x3B\xCB\x77\x08\x81\xFD\x00\x00\x40\x00\x76" + \
	   b"\x22\x84\xC0\x74\x0F\x8B\x54\x24\x24\x52\x88\x5C\x24\x24\xFF\x15" + \
	   b"\xC4\x33\x01\x00\xB8\x01\x00\x00\xC0\x5F\x5E\x5D\x5B\x83\xC4\x30" + \
	   b"\xC2\x04\x00\x8B\x3D\xA0\x33\x01\x00\x6A\x10\x53\x89\x6C\x24\x20" + \
	   b"\xFF\xD7\x8B\xF0\x3B\xF3\x74\x1D\x55\x53\xFF\xD7\x89\x06\x89\x6E" + \
	   b"\x04\x89\x46\x08\x89\x6E\x0C\x39\x1E\x75\x08\xC7\x44\x24\x14\x01" + \
	   b"\x00\x00\xC0\x8B\xDE\x8B\x44\x24\x44\x8B\x78\x04\x3B\xDF\x74\x21" + \
	   b"\x85\xFF\x74\x1A\x8B\x07\x85\xC0\x8B\x35\xF8\x33\x01\x00\x74\x05" + \
	   b"\x6A\x00\x50\xFF\xD6\x6A\x00\x57\xFF\xD6\x8B\x44\x24\x44\x89\x58" + \
	   b"\x04\x8B\x74\x24\x14\x85\xF6\x74\x27\x80\x7C\x24\x20\x00\x0F\x84" + \
	   b"\xC4\x00\x00\x00\x8B\x44\x24\x24\x50\xC6\x44\x24\x24\x00\xFF\x15" + \
	   b"\xC4\x33\x01\x00\x8B\xC6\x5F\x5E\x5D\x5B\x83\xC4\x30\xC2\x04\x00" + \
	   b"\x8B\x40\x04\x85\xC0\x75\x24\x38\x44\x24\x20\x74\x0F\x8B\x4C\x24" + \
	   b"\x24\x51\x88\x44\x24\x24\xFF\x15\xC4\x33\x01\x00\xB8\x01\x00\x00" + \
	   b"\xC0\x5F\x5E\x5D\x5B\x83\xC4\x30\xC2\x04\x00\x8B\x00\x8B\xD0\x8D" + \
	   b"\x74\x24\x18\x8D\x44\x24\x20\xE8\x2B\xFE\xFF\xFF\x8B\xF0\x85\xF6" + \
	   b"\x74\x23\x80\x7C\x24\x20\x00\x74\x5F\x8B\x54\x24\x24\x52\xC6\x44" + \
	   b"\x24\x24\x00\xFF\x15\xC4\x33\x01\x00\x8B\xC6\x5F\x5E\x5D\x5B\x83" + \
	   b"\xC4\x30\xC2\x04\x00\x39\x6C\x24\x18\x74\x26\x80\x7C\x24\x20\x00" + \
	   b"\x74\x10\x8B\x44\x24\x24\x50\xC6\x44\x24\x24\x00\xFF\x15\xC4\x33" + \
	   b"\x01\x00\xB8\x01\x00\x00\xC0\x5F\x5E\x5D\x5B\x83\xC4\x30\xC2\x04" + \
	   b"\x00\x80\x7C\x24\x20\x00\x74\x10\xC6\x44\x24\x20\x00\x8B\x4C\x24" + \
	   b"\x24\x51\xFF\x15\xC4\x33\x01\x00\x5F\x8B\xC6\x5E\x5D\x5B\x83\xC4" + \
	   b"\x30\xC2\x04\x00\xCC\xCC\xCC\x55\x8B\x6C\x24\x08\x56\x8B\x75\x04" + \
	   b"\x3B\xDE\x74\x1F\x85\xF6\x74\x18\x8B\x06\x85\xC0\x57\x8B\x3D\xF8" + \
	   b"\x33\x01\x00\x74\x05\x6A\x00\x50\xFF\xD7\x6A\x00\x56\xFF\xD7\x5F" + \
	   b"\x89\x5D\x04\x5E\x5D\xC2\x04\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC" + \
	   b"\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x08\x56\x57\x8D\x7C\x24\x08" + \
	   b"\x8D\x74\x24\x0C\xC7\x44\x24\x08\x00\x00\x00\x00\xE8\x46\x00\x00" + \
	   b"\x00\x8B\x44\x24\x08\x85\xC0\x75\x36\x8D\x74\x24\x08\xE8\xD5\x00" + \
	   b"\x00\x00\x8B\x44\x24\x08\xE8\x5C\x04\x00\x00\x85\xC0\x75\x20\x8D" + \
	   b"\x74\x24\x0C\xE8\x7F\x01\x00\x00\x8D\x74\x24\x08\xE8\xF6\x01\x00" + \
	   b"\x00\x8B\x44\x24\x08\x8B\x48\x10\x68\x80\x12\x01\x00\xFF\xD1\x5F" + \
	   b"\x5E\x83\xC4\x08\xC3\xCC\xCC\x51\xA1\xF0\x53\x01\x00\xA8\x01\xC7" + \
	   b"\x06\x00\x00\x00\x00\x75\x10\x8B\x0F\x83\xC8\x01\xA3\xF0\x53\x01" + \
	   b"\x00\x89\x0D\xEC\x53\x01\x00\xA8\x02\x75\x54\x83\xC8\x02\xA3\xF0" + \
	   b"\x53\x01\x00\xE8\x2F\x1A\x00\x00\x80\x3D\x58\x53\x01\x00\x00\x74" + \
	   b"\x3E\x83\x3D\x4C\x53\x01\x00\x00\x74\x35\x8B\x15\x54\x53\x01\x00" + \
	   b"\x3B\x15\x50\x53\x01\x00\x7E\x27\xB9\x50\x53\x01\x00\xB8\x01\x00" + \
	   b"\x00\x00\xF0\x0F\xC1\x01\x40\x83\xE8\x01\x39\x05\x54\x53\x01\x00" + \
	   b"\x7E\x0D\x8B\x15\x4C\x53\x01\x00\xC7\x04\x82"\


dbPattern3= b"\x31\x01\x00\x64\xA1\x00\x00\x00\x00\x50\x64\x89\x25\x00\x00\x00" + \
	    b"\x00\x83\xEC\x0C\x53\x56\x57\x89\x65\xE8\xBF\x02\x00\x00\xC0\x89" + \
	    b"\x7D\xE4\x33\xDB\x89\x5D\xFC\x8B\x75\x0C\x8B\x46\x60\x0F\xB6\x00" + \
	    b"\x2B\xC3\x74\x1F\x83\xE8\x02\x74\x1A\x83\xE8\x0C\x75\x1D\x8B\xCE" + \
	    b"\xE8\x6F\xFF\xFF\xFF\x8B\xF8\x89\x7D\xE4\xC7\x45\xFC\xFF\xFF\xFF" + \
	    b"\xFF\xEB\x29\x89\x5E\x1C\x33\xFF\x89\x7D\xE4\xC7\x45\xFC\xFF\xFF" + \
	    b"\xFF\xFF\xEB\x18\xB8\x01\x00\x00\x00\xC3\x8B\x65\xE8\xC7\x45\xFC" + \
	    b"\xFF\xFF\xFF\xFF\x33\xDB\x8B\x75\x0C\x8B\x7D\xE4\x81\xFF\x03\x01" + \
	    b"\x00\x00\x75\x15\x8B\xC7\x8B\x4D\xF0\x64\x89\x0D\x00\x00\x00\x00" + \
	    b"\x5F\x5E\x5B\x8B\xE5\x5D\xC2\x08\x00\x3B\xFB\x74\x03\x89\x5E\x1C" + \
	    b"\x89\x7E\x18\x32\xD2\x8B\xCE\xFF\x15\xD8\x33\x01\x00\x8B\xC7\x8B" + \
	    b"\x4D\xF0\x64\x89\x0D\x00\x00\x00\x00\x5F\x5E\x5B\x8B\xE5\x5D\xC2" + \
	    b"\x08\x00\xCC\xCC\x83\xEC\x08\x68\x74\x52\x01\x00\x8D\x44\x24\x04" + \
	    b"\x50\xFF\x15\xC0\x33\x01\x00\x57\x6A\x00\x68\x00\x01\x00\x00\x6A" + \
	    b"\x22\x8D\x4C\x24\x10\x51\x6A\x00\x56\xFF\x15\xB8\x33\x01\x00\x85" + \
	    b"\xC0\x0F\x85\x80\x00\x00\x00\xB9\xE0\x0C\x01\x00\x89\x4E\x38\x89" + \
	    b"\x4E\x3C\x89\x4E\x40\x89\x4E\x44\x89\x4E\x48\x89\x4E\x4C\x89\x4E" + \
	    b"\x50\x89\x4E\x54\x89\x4E\x58\x89\x4E\x5C\x89\x4E\x60\x89\x4E\x64" + \
	    b"\x89\x4E\x68\x89\x4E\x6C\x89\x4E\x70\x89\x4E\x74\x89\x4E\x78\x89" + \
	    b"\x4E\x7C\x89\x8E\x80\x00\x00\x00\x89\x8E\x84\x00\x00\x00\x89\x8E" + \
	    b"\x88\x00\x00\x00\x89\x8E\x8C\x00\x00\x00\x89\x8E\x90\x00\x00\x00" + \
	    b"\x89\x8E\x94\x00\x00\x00\x89\x8E\x98\x00\x00\x00\x89\x8E\x9C\x00" + \
	    b"\x00\x00\x89\x8E\xA0\x00\x00\x00\x89\x8E\xA4\x00\x00\x00\x8B\x0F" + \
	    b"\x81\x61\x1C\x7F\xFF\xFF\xFF\x83\xC4\x08\xC3\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\x55\x8B\xEC\x83\xE4\xF8\x83\xEC\x14\x53\x56\x57" + \
	    b"\x8B\x3D\xC0\x33\x01\x00\x8B\xF0\x68\x98\x51\x01\x00\x8D\x44\x24" + \
	    b"\x1C\x50\xFF\xD7\x68\x60\x52\x01\x00\x8D\x4C\x24\x14\x51\xFF\xD7" + \
	    b"\x6A\x00\x6A\x00\x6A\x00\x8D\x7E\x08\x6A\x00\x57\x89\x7C\x24\x20" + \
	    b"\xFF\x15\x10\x34\x01\x00\x56\x8D\x54\x24\x14\x52\x8D\x44\x24\x20" + \
	    b"\xE8\x9F\x18\x00\x00\x85\xC0\x75\x42\x8B\x46\x04\x8B\x38\x8B\x58" + \
	    b"\x04\x8B\x0D\x94\x51\x01\x00\xE8\x28\x1A\x00\x00\x32\xC9\x33\xC0" + \
	    b"\x85\xDB\x76\x3C\x02\x0C\x38\x83\xC0\x01\x3B\xC3\x72\xF6\x84\xC9" + \
	    b"\x74\x2E\x8B\x44\x24\x0C\x6A\x00\x50\xFF\x15\x0C\x34\x01\x00\xB8" + \
	    b"\x01\x00\x00\xC0\x5F\x5E\x5B\x8B\xE5\x5D\xC3\x6A\x00\x57\xFF\x15" + \
	    b"\x0C\x34\x01\x00\xB8\x01\x00\x00\xC0\x5F\x5E\x5B\x8B\xE5\x5D\xC3" + \
	    b"\x8B\x76\x04\x85\xF6\x6A\x00\x75\x17\x8B\x4C\x24\x10\x51\xFF\x15" + \
	    b"\x0C\x34\x01\x00\xB8\x01\x00\x00\xC0\x5F\x5E\x5B\x8B\xE5\x5D\xC3" + \
	    b"\x83\x7E\x04\x00\x77\x17\x8B\x54\x24\x10\x52\xFF\x15\x0C\x34\x01" + \
	    b"\x00\xB8\x01\x00\x00\xC0\x5F\x5E\x5B\x8B\xE5\x5D\xC3\x8B\x44\x24" + \
	    b"\x10\x50\xFF\x15\x0C\x34\x01\x00\x5F\x5E\x33\xC0\x5B\x8B\xE5\x5D" + \
	    b"\xC3\xCC\xCC\xCC\x83\xEC\x08\x53\x55\x56\x57\x8B\x7C\x24\x1C\x6A" + \
	    b"\x00\x6A\x00\x6A\x00\x8D\x6F\x08\x6A\x00\x55\xC7\x44\x24\x24\x00" + \
	    b"\x00\x00\x00\x89\x6C\x24\x28\xFF\x15\x10\x34\x01\x00\x8B\x1D\xA0" + \
	    b"\x33\x01\x00\x6A\x10\x6A\x00\xFF\xD3\x8B\xF0\x85\xF6\x74\x41\x8B" + \
	    b"\x47\x04\x8B\x78\x04\x8B\x28\x57\x6A\x00\xFF\xD3\x89\x06\x89\x7E" + \
	    b"\x04\x89\x46\x08\x89\x7E\x0C\x8B\x06\x85\xC0\x75\x0E\x8B\x6C\x24" + \
	    b"\x14\xC7\x44\x24\x10\x01\x00\x00\xC0\xEB\x17\x85\xED\x74\x0B\x57" + \
	    b"\x55\x50\xE8"


dbPattern4= b"\x21\x00\x00\x83\xC4\x0C\x8B\x6C\x24\x14\xEB\x02\x33\xF6\x8B\x44" + \
	    b"\x24\x20\x8B\x78\x04\x3B\xF7\x74\x21\x85\xFF\x74\x16\x8B\x07\x85" + \
	    b"\xC0\x8B\x1D\xF8\x33\x01\x00\x74\x05\x6A\x00\x50\xFF\xD3\x6A\x00" + \
	    b"\x57\xFF\xD3\x8B\x4C\x24\x20\x89\x71\x04\x8B\x74\x24\x10\x85\xF6" + \
	    b"\x6A\x00\x55\x74\x12\xFF\x15\x0C\x34\x01\x00\x5F\x8B\xC6\x5E\x5D" + \
	    b"\x5B\x83\xC4\x08\xC2\x08\x00\x8B\x54\x24\x24\x83\x7A\x04\x00\x75" + \
	    b"\x15\xFF\x15\x0C\x34\x01\x00\x5F\x5E\x5D\xB8\x01\x00\x00\xC0\x5B" + \
	    b"\x83\xC4\x08\xC2\x08\x00\xFF\x15\x0C\x34\x01\x00\x5F\x5E\x5D\x33" + \
	    b"\xC0\x5B\x83\xC4\x08\xC2\x08\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\x80\x38\x00\x74\x24\x56\x8B\x70\x04\x85\xF6\xC6\x00\x00\x74\x18" + \
	    b"\x8B\x06\x85\xC0\x57\x8B\x3D\xF8\x33\x01\x00\x74\x05\x6A\x00\x50" + \
	    b"\xFF\xD7\x6A\x00\x56\xFF\xD7\x5F\x5E\xC3\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\x51\x8B\x48\x08\x83\xC1\x04\x3B\x48\x04\x57\x77\x1A\x8B\x78\x08" + \
	    b"\x8B\x10\x8B\x14\x3A\x8B\x38\x03\xF9\x89\x48\x08\x89\x3E\x89\x56" + \
	    b"\x04\x01\x50\x08\x5F\x59\xC3\x8B\x38\x8B\x54\x24\x04\x03\xF9\x89" + \
	    b"\x48\x08\x89\x3E\x89\x56\x04\x01\x50\x08\x5F\x59\xC3\xCC\xCC\xCC" + \
	    b"\x55\x8B\xEC\x83\xE4\xF8\x8B\x55\x08\x83\xEC\x44\x53\x56\x57\xB8" 

dbPattern5= b"\x00\x00\x39\x5C\x24\x10\x0F\x85\x20\x01\x00\x00\x8B\x4C\x24\x34" + \
	    b"\x8B\x55\x10\x3B\x4A\x04\x0F\x85\x10\x01\x00\x00\xA1\x90\x51\x01" + \
	    b"\x00\xA8\x04\x74\x0A\x38\x5C\x24\x38\x0F\x85\xFD\x00\x00\x00\x8D" + \
	    b"\x74\x24\x18\xE8\x1E\xFA\xFF\xFF\x8B\x5C\x24\x18\x8B\xC7\xE8\xD3" + \
	    b"\x02\x00\x00\x33\xDB\x8D\x74\x24\x1C\xC6\x44\x24\x24\x01\x89\x5C" + \
	    b"\x24\x28\xE8\x3F\xF9\xFF\xFF\x8B\x54\x24\x1C\x8D\x4C\x24\x24\x51" + \
	    b"\x52\xE8\xC0\xFD\xFF\xFF\x3B\xC3\x0F\x85\xB5\x00\x00\x00\x8B\x44" + \
	    b"\x24\x28\x8B\x08\x8B\x50\x04\x8D\x44\x24\x20\x50\x8D\x44\x24\x48" + \
	    b"\x89\x4C\x24\x48\x89\x54\x24\x4C\x89\x5C\x24\x50\xE8\x25\x01\x00" + \
	    b"\x00\x8D\x4C\x24\x14\x51\x8D\x44\x24\x48\xE8\x17\x01\x00\x00\x8B" + \
	    b"\x74\x24\x4C\x3B\x74\x24\x48\x77\x7A\x39\x5C\x24\x20\x75\x74\x33" + \
	    b"\xFF\x39\x5C\x24\x14\x89\x5C\x24\x3C\x89\x5C\x24\x2C\x89\x5C\x24" + \
	    b"\x30\x76\x60\x8D\x49\x00\x8B\x54\x24\x44\x8D\x1C\x16\x83\xC6\x0C" + \
	    b"\x89\x74\x24\x4C\x8D\x74\x24\x3C\x8D\x44\x24\x44\xE8\x75\xFE\xFF" + \
	    b"\xFF\x8D\x74\x24\x2C\x8D\x44\x24\x44\xE8\x68\xFE\xFF\xFF\x8B\x74" + \
	    b"\x24\x4C\x3B\x74\x24\x48\x77\x2B\x8B\x44\x24\x3C\x8B\x55\x08\xE8" + \
	    b"\x92\x0B\x00\x00\x84\xC0\x74\x12\x8B\x4D\x10\x8D\x44\x24\x2C\x50" + \
	    b"\x8B\x45\x0C\x53\x51\xE8\x8C\x07\x00\x00\x83\xC7\x01\x3B\x7C\x24" + \
	    b"\x14\x72\xA3\x8D\x44\x24\x24\xE8\xFA\xFD\xFF\xFF\x5F\x5E\x5B\x8B" + \
	    b"\xE5\x5D\xC2\x0C\x00\xCC\x55\x8B\xEC\x6A\xFF\x68\xE8\x50\x01\x00" + \
	    b"\x68"

dbPattern6= b"\xCC\xCC\xCC\x33\xC0\x50\x68\xC0\x15\x01\x00\x68\xB0\x15\x01\x00" + \
	    b"\x68\x90\x15\x01\x00\x68\x7C\x53\x01\x00\xA3\x7C\x53\x01\x00\xA3" + \
	    b"\x80\x53\x01\x00\xA3\x84\x53\x01\x00\xA3\x88\x53\x01\x00\xA3\x8C" + \
	    b"\x53\x01\x00\xA3\x90\x53\x01\x00\xA3\x94\x53\x01\x00\xA3\x98\x53" + \
	    b"\x01\x00\xA3\x9C\x53\x01\x00\xA3\xA0\x53\x01\x00\xC6\x05\xA8\x53" + \
	    b"\x01\x00\xFF\xA3\xA4\x53\x01\x00\xA3\xAC\x53\x01\x00\xA3\xB0\x53" + \
	    b"\x01\x00\xFF\x15\xE8\x33\x01\x00\xB8\x7C\x53\x01\x00\xC3\xCC\xCC" + \
	    b"\xCC\xCC\xCC\x83\xEC\x14\x56\x57\x89\x44\x24\x08\x8D\x73\x28\xFF" + \
	    b"\x15\xE0\x33\x01\x00\x8B\xF8\x3B\x7E\x08\x74\x15\x8B\xCE\xFF\x15" + \
	    b"\x80\x33\x01\x00\x88\x46\x04\x89\x7E\x08\xC7\x46\x0C\x00\x00\x00" + \
	    b"\x00\x83\x46\x0C\x01\x8D\x4C\x24\x08\x51\x53\xFF\x15\xE4\x33\x01" + \
	    b"\x00\x83\x46\x0C\xFF\x8B\xF8\x75\x12\x8A\x56\x04\x8B\xCE\xC7\x46" + \
	    b"\x08\x00\x00\x00\x00\xFF\x15\x88\x33\x01\x00\x8B\xC7\x5F\x5E\x83" + \
	    b"\xC4\x14\xC3\x83\xEC\x14\x56\x57\x89\x44\x24\x08\x8D\x73\x28\xFF" + \
	    b"\x15\xE0\x33\x01\x00\x8B\xF8\x3B\x7E\x08\x74\x15\x8B\xCE\xFF\x15" + \
	    b"\x80\x33\x01\x00\x88\x46\x04\x89\x7E\x08\xC7\x46\x0C\x00\x00\x00" + \
	    b"\x00\x83\x46\x0C\x01\x8D\x4C\x24\x08\x51\x53\xFF\x15\xDC\x33\x01" + \
	    b"\x00\x84\xC0\x75\x23\x83\x46\x0C\xFF\x75\x12\x8A\x56\x04\x8B\xCE" + \
	    b"\xC7\x46\x08\x00\x00\x00\x00\xFF\x15\x88\x33\x01\x00\x5F\xB8\x01" + \
	    b"\x00\x00\xC0\x5E\x83\xC4\x14\xC3\x83\x46\x0C\xFF\x75\x12\x8A\x56" + \
	    b"\x04\x8B\xCE\xC7\x46\x08\x00\x00\x00\x00\xFF\x15\x88\x33\x01\x00" + \
	    b"\x5F\x33\xC0\x5E\x83\xC4\x14\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\x53\x55\x8B\x6C\x24\x0C\x56\x8B\xD8\x57\x8D\x73\x28" + \
	    b"\xFF\x15\xE0\x33\x01\x00\x8B\xF8\x3B\x7E\x08\x74\x15\x8B\xCE\xFF" + \
	    b"\x15\x80\x33\x01\x00\x89\x7E\x08\x33\xFF\x88\x46\x04\x89\x7E\x0C" + \
	    b"\xEB\x02\x33\xFF\x83\x46\x0C\x01\x8B\x45\x00\xE8\xD3\xFE\xFF\xFF" + \
	    b"\x85\xC0\x74\x2C\x8B\x45\x00\xE8\x27\xFF\xFF\xFF\x85\xC0\x74\x20" + \
	    b"\x83\x46\x0C\xFF\x75\x0E\x8A\x56\x04\x8B\xCE\x89\x7E\x08\xFF\x15" + \
	    b"\x88\x33\x01\x00\x5F\x5E\x5D\xB8\x01\x00\x00\xC0\x5B\xC2\x04\x00" + \
	    b"\x57\x6A\x14\x55\x53\xFF\x15\xEC\x33\x01\x00\x85\xC0\x74\xD1\x83" + \
	    b"\x46\x0C\xFF\x75\x0E\x8A\x56\x04\x8B\xCE\x89\x7E\x08\xFF\x15\x88" + \
	    b"\x33\x01\x00\x5F\x5E\x5D\x33\xC0\x5B\xC2\x04\x00\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\x8B\x44\x24\x08\x8B\x4C\x24\x0C\x8B\x00\x8B\x09\x3B" + \
	    b"\xC1\x75\x08\xB8\x02\x00\x00\x00\xC2\x0C\x00\x1B\xC0\x83\xC0\x01" + \
	    b"\xC2\x0C\x00\xC7\x44\x24\x04\x00\x00\x00\x00\xFF\x25\xA0\x33\x01" + \
	    b"\x00\xCC\xCC\x8B\x44\x24\x08\x85\xC0\x74\x12\xC7\x44\x24\x08\x00" + \
	    b"\x00\x00\x00\x89\x44\x24\x04\xFF\x25\xF8\x33\x01\x00\xC2\x08\x00" + \
	    b"\xCC\xCC\xCC\x83\xEC\x0C\x53\x55\x8B\x6C\x24\x18\x57\x8B\xF9\xF6" + \
	    b"\x47\x06\x02\x75\x15\x8B\x08\x8B\x50\x04\x89\x0E\x89\x56\x04\x8B" + \
	    b"\xC6\x5F\x5D\x5B\x83\xC4\x0C\xC2\x04\x00\x8B\x00\x50\x8D\x4C\x24" + \
	    b"\x14\x51\xFF\x15\xC0\x33\x01\x00\x55\x8D\x4C\x24\x14\xE8\x71\xF1" + \
	    b"\xFF\xFF\x85\xC0\x75\x2E\xF6\x47\x06\x01\x74\x10\x8B\x45\x04\x8B" + \
	    b"\x4F\x08\x8B\x58\x04\x8B\x38\xE8\xC7\x12\x00\x00\x8B\x45\x04\x8B" + \
	    b"\x10\x8B\x40\x04\x89\x46\x04\x89\x16\x8B\xC6\x5F\x5D\x5B\x83\xC4" + \
	    b"\x0C\xC2\x04\x00\x5F\x5D\xC7\x06\x00\x00\x00\x00\xC7\x46\x04\x00" + \
	    b"\x00\x00\x00\x8B\xC6\x5B\x83\xC4\x0C\xC2\x04\x00\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\x8B\x48\x04\x83\xEC\x34\x53\x55\x8B\x6C\x24\x44\x56" + \
	    b"\x57\x6A\x01\x51\x8D\x54\x24\x2C\x52\xE8"

dbPattern7= b"\x0D\x00\x00\x33\xDB\x39\x5C\x24\x08\x74\x23\x38\x5C\x24\x0C\x74" + \
	    b"\x4B\x8D\x74\x24\x34\x88\x5C\x24\x0C\xE8\xA8\xEE\xFF\xFF\x8B\x54" + \
	    b"\x24\x34\x8B\x42\x1C\x8D\x4C\x24\x18\x51\xFF\xD0\xEB\x2E\x8B\x4C" + \
	    b"\x24\x34\x56\x51\x8B\xCF\xE8\x3B\xFF\xFF\xFF\x38\x5C\x24\x0C\x74" + \
	    b"\x1B\x8D\x74\x24\x34\x88\x5C\x24\x0C\xE8\x78\xEE\xFF\xFF\x8B\x44" + \
	    b"\x24\x34\x8B\x48\x1C\x8D\x54\x24\x18\x52\xFF\xD1\x38\x5C\x24\x10" + \
	    b"\x74\x0E\x8B\x4C\x24\x14\x88\x5C\x24\x10\xFF\x15\x34\x34\x01\x00" + \
	    b"\x5E\x5B\x83\xC4\x28\xC2\x04\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x08\x56\x57\x8B\xF8\x8D\x70\x02" + \
	    b"\x8D\x9B\x00\x00\x00\x00\x66\x8B\x08\x83\xC0\x02\x66\x85\xC9\x75" + \
	    b"\xF5\x2B\xC6\xD1\xF8\x8B\xF0\x66\x8B\x02\x66\xD1\xE8\x0F\xB7\xC0" + \
	    b"\x0F\xB7\xC0\x3B\xF0\x76\x08\x5F\x32\xC0\x5E\x83\xC4\x08\xC3\x8B" + \
	    b"\x4A\x04\x53\x2B\xC6\x33\xDB\x85\xF6\x55\x8D\x04\x41\x76\x38\x2B" + \
	    b"\xC7\x89\x44\x24\x14\xEB\x04\x8B\x44\x24\x14\x0F\xB7\x14\x38\x8B" + \
	    b"\x2D\xF0\x33\x01\x00\x52\xFF\xD5\x0F\xB7\x0F\x51\x66\x89\x44\x24" + \
	    b"\x16\xFF\xD5\x0F\xB7\x4C\x24\x12\x66\x3B\xC1\x75\x14\x83\xC3\x01" + \
	    b"\x83\xC7\x02\x3B\xDE\x72\xD0\x5D\x5B\x5F\xB0\x01\x5E\x83\xC4\x08" + \
	    b"\xC3\x5D\x5B\x5F\x32\xC0\x5E\x83\xC4\x08\xC3\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x10\x56\x8D\x47\x11\x8D\x74\x24" + \
	    b"\x10\xC7\x44\x24\x0C\x00\x00\x00\x00\x89\x44\x24\x08\xE8\x84\xED" + \
	    b"\xFF\xFF\x8B\x44\x24\x10\x6A\x40\x68\x00\x10\x00\x00\x8D\x4C\x24" + \
	    b"\x10\x51\x8B\x48\x14\x6A\x00\x8D\x54\x24\x1C\x52\x6A\xFF\xFF\xD1" + \
	    b"\x85\xC0\x75\x0F\x39\x7C\x24\x08\x72\x09\x8B\x44\x24\x0C\x5E\x83" + \
	    b"\xC4\x10\xC3\x33\xC0\x5E\x83\xC4\x10\xC3\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x4C\x53\x55\x56\x57\x8B\xD8\x68" + \
	    b"\x74\x52\x01\x00\x8D\x44\x24\x14\x50\xFF\x15\xC0\x33\x01\x00\x8B" + \
	    b"\x2D\xC8\x33\x01\x00\x33\xF6\x8D\x4C\x24\x10\xC7\x44\x24\x20\x18" + \
	    b"\x00\x00\x00\x89\x74\x24\x24\xC7\x44\x24\x2C\x40\x00\x00\x00\x89" + \
	    b"\x4C\x24\x28\x89\x74\x24\x30\x89\x74\x24\x34\x6A\x60\x6A\x03\x8D" + \
	    b"\x54\x24\x20\x52\x8D\x44\x24\x2C\x50\x68\x00\x00\x10\xC0\x53\xFF" + \
	    b"\xD5\x8B\xF8\x85\xFF\x75\x10\x8B\x0B\x89\x4C\xB4\x38\x83\xC6\x01" + \
	    b"\x83\xFE\x07\x7E\xD6\xEB\x03\x83\xC6\x01\x83\xEE\x02\x78\x13\x8B" + \
	    b"\x1D\xC4\x33\x01\x00\x90\x8B\x54\xB4\x38\x52\xFF\xD3\x83\xEE\x01" + \
	    b"\x79\xF4\x8B\xC7\x5F\x5E\x5D\x5B\x83\xC4\x4C\xC3\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\xCC\xCC\x83\xEC\x10\x56\x8B\x74\x24\x1C\x8B\x46" + \
	    b"\x0C\x8B\x4E\x08\x3B\x48\x34\x75\x09\x33\xC0\x5E\x83\xC4\x10\xC2" + \
	    b"\x08\x00\x57\x8D\x54\x24\x0C\x52\x8D\x44\x24\x0C\x50\x33\xFF\x6A" + \
	    b"\x05\x56\x89\x7C\x24\x18\x89\x7C\x24\x1C\xE8"

dbPattern8= b"\x10\x00\x00\x83\xC4\x10\x83\xF8\x02\x75\x0A\x5F\x33\xC0\x5E\x83" + \
	    b"\xC4\x10\xC2\x08\x00\x3B\xC7\x74\x0D\x5F\xB8\x01\x00\x00\xC0\x5E" + \
	    b"\x83\xC4\x10\xC2\x08\x00\x8B\x4C\x24\x0C\x53\x55\x8B\x6C\x24\x10" + \
	    b"\x03\xCD\x8D\x5D\x08\x3B\xD9\x89\x4C\x24\x1C\x77\x72\x8B\x45\x04" + \
	    b"\x85\xC0\x74\x6B\x83\xF8\x08\x72\x72\x83\xC0\xF8\xA8\x01\x75\x6B" + \
	    b"\xD1\xE8\x89\x44\x24\x18\xBA\x00\x00\x00\x00\x74\x44\x8B\x76\x08" + \
	    b"\x8B\x7D\x00\x8D\xA4\x24\x00\x00\x00\x00\x0F\xB7\x0C\x53\x8B\xC1" + \
	    b"\x25\xFF\x0F\x00\x00\x03\xC7\x03\xC6\xF7\xC1\x00\xF0\x00\x00\x74" + \
	    b"\x0F\x8B\x4C\x24\x24\x3B\xC1\x72\x07\x83\xC1\x0C\x3B\xC1\x72\x3A" + \
	    b"\x83\xC2\x01\x3B\x54\x24\x18\x72\xD1\x8B\x4C\x24\x1C\x8B\x74\x24" + \
	    b"\x28\x03\x6D\x04\x8D\x5D\x08\x3B\xD9\x89\x6C\x24\x10\x76\x8E\x5D" + \
	    b"\x5B\x5F\x33\xC0\x5E\x83\xC4\x10\xC2\x08\x00\x5D\x5B\x5F\xB8\x01" + \
	    b"\x00\x00\xC0\x5E\x83\xC4\x10\xC2\x08\x00\x5D\x5B\x5F\xB8\xBB\x00" + \
	    b"\x00\xC0\x5E\x83\xC4\x10\xC2\x08\x00\xCC\x0F\xBE\x11\x8D\x44\x92" + \
	    b"\x09\x0F\xAF\xC2\x0F\xBE\x51\x01\x03\xC2\x8D\x54\x80\x09\x0F\xAF" + \
	    b"\xD0\x0F\xBE\x41\x02\x03\xD0\x8D\x44\x92\x09\x0F\xAF\xC2\x0F\xBE" + \
	    b"\x51\x03\x03\xC2\x8D\x54\x80\x09\x0F\xAF\xD0\x0F\xBE\x41\x04\x03" + \
	    b"\xD0\x8D\x44\x92\x09\x0F\xAF\xC2\x0F\xBE\x51\x05\x03\xC2\x8D\x54" + \
	    b"\x80\x09\x0F\xAF\xD0\x0F\xBE\x41\x06\x0F\xBE\x49\x07\x03\xD0\x8D" + \
	    b"\x44\x92\x09\x0F\xAF\xC2\x03\xC1\xC3\xCC\x8B\xCE\x33\xC0\x81\xE9" + \
	    b"\x64\x34\x01\x00\x8D\x9B\x00\x00\x00\x00\x8A\x94\x01\x64\x34\x01" + \
	    b"\x00\x22\x90\x64\x34\x01\x00\x3A\x90\x50\x34\x01\x00\x75\x21\x83" + \
	    b"\xC0\x01\x83\xF8\x14\x72\xE3\xA1\x04\x34\x01\x00\x83\xC0\x0D\x8D" + \
	    b"\x4E\x0D\x8B\xD0\x2B\xD1\x8B\x09\x2B\x08\x3B\xCA\x0F\x94\xC0\xC3" + \
	    b"\x32\xC0\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x53\x55\x8B\x6C\x24\x0C" + \
	    b"\x56\x57\xC7\x44\x24\x14\x00\x00\x00\x00\x8B\xD8\x8D\x43\x05\x39" + \
	    b"\x44\x24\x18\x76\x7D\x80\x3B\xE8\x75\x61\x8B\x40\xFC\x8D\x74\x18" + \
	    b"\x05\x56\x55\xE8"

dbPattern9= b"\x0C\x00\x00\x8B\xF8\x83\xC4\x08\x85\xFF\x74\x4A\x8B\x4F\x24\x81" + \
	    b"\xE1\x20\x00\x00\x62\x81\xF9\x20\x00\x00\x60\x75\x39\x8B\xCF\xE8" + \
	    b"\x01\xFF\xFF\xFF\x3D\xA8\xB9\x93\x4B\x74\x07\x3D\x1C\x97\x94\x12" + \
	    b"\x75\x24\x8B\x47\x08\x8B\x4F\x10\x3B\xC1\x72\x02\x8B\xC1\x8B\x57" + \
	    b"\x0C\x03\x55\x08\x03\xD0\x8D\x46\x14\x3B\xC2\x77\x09\xE8\x33\xFF" + \
	    b"\xFF\xFF\x84\xC0\x75\x20\x8B\x44\x24\x14\x83\xC0\x01\x83\xC3\x01" + \
	    b"\x83\xF8\x1E\x89\x44\x24\x14\x0F\x82\x7A\xFF\xFF\xFF\x5F\x5E\x5D" + \
	    b"\x33\xC0\x5B\xC2\x08\x00\x5F\x8B\xC6\x5E\x5D\x5B\xC2\x08\x00\xCC" + \
	    b"\xCC\xCC\xCC\xCC\xCC\x51\x53\x55\x8B\xD9\x83\xC3\xED\x3B\xC3\x56" + \
	    b"\x57\x89\x5C\x24\x10\x0F\x83\xC7\x00\x00\x00\x83\xC3\xFC\x8D\xA4" + \
	    b"\x24\x00\x00\x00\x00\x3B\xC3\x0F\x87\xB5\x00\x00\x00\xEB\x06\x8D" + \
	    b"\x9B\x00\x00\x00\x00\x8B\x08\x3B\x0D\x78\x34\x01\x00\x74\x0F\x83" + \
	    b"\xC0\x01\x3B\xC3\x76\xEF\x5F\x5E\x5D\x33\xC0\x5B\x59\xC3\xB9\x0E" + \
	    b"\x00\x00\x00\xBA\x78\x34\x01\x00\x8B\xF0\x8B\x3E\x3B\x3A\x75\x12" + \
	    b"\x83\xE9\x04\x83\xC2\x04\x83\xC6\x04\x83\xF9\x04\x73\xEC\x85\xC9" + \
	    b"\x74\x5D\x0F\xB6\x3E\x0F\xB6\x2A\x2B\xFD\x75\x45\x83\xE9\x01\x83" + \
	    b"\xC2\x01\x83\xC6\x01\x85\xC9\x74\x46\x0F\xB6\x3E\x0F\xB6\x2A\x2B" + \
	    b"\xFD\x75\x2E\x83\xE9\x01\x83\xC2\x01\x83\xC6\x01\x85\xC9\x74\x2F" + \
	    b"\x0F\xB6\x3E\x0F\xB6\x2A\x2B\xFD\x75\x17\x83\xE9\x01\x83\xC2\x01" + \
	    b"\x83\xC6\x01\x85\xC9\x74\x18\x0F\xB6\x3E\x0F\xB6\x12\x2B\xFA\x74" + \
	    b"\x0E\x85\xFF\xB9\x01\x00\x00\x00\x7F\x07\x83\xC9\xFF\xEB\x02\x33" + \
	    b"\xC9\x85\xC9\x74\x0F\x83\xC0\x01\x3B\x44\x24\x10\x0F\x82\x43\xFF" + \
	    b"\xFF\xFF\x33\xC0\x5F\x5E\x5D\x5B\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\xCC\x83\xEC\x08\x55\x8B\x6C\x24\x20\x56\x8B\x74" + \
	    b"\x24\x18\x57\x8B\x7C\x24\x20\x6A\x00\x6A\x00\x8D\x44\x24\x18\x50" + \
	    b"\x8D\x4C\x24\x18\x51\xC6\x45\x00\x00\xC7\x44\x24\x1C\x00\x00\x00" + \
	    b"\x00\xC7\x44\x24\x20\x00\x00\x00\x00\xFF\x15\x24\x34\x01\x00\x83" + \
	    b"\x7C\x24\x0C\x05\x75\x3E\x83\x7C\x24\x10\x00\x75\x37\x8B\xCF\x8B" + \
	    b"\xC6\xE8\xBF\xFE\xFF\xFF\x85\xC0\x0F\x84\x59\x01\x00\x00\x8B\x54" + \
	    b"\x24\x24\x8B\x0A\x85\xC9\x74\x11\x3B\xC1\x74\x0D\x5F\x5E\xC6\x45" + \
	    b"\x00\x01\x5D\x83\xC4\x08\xC2\x14\x00\x5F\x5E\x89\x02\x5D\x83\xC4" + \
	    b"\x08\xC2\x14\x00\x8D\x4F\xF6\x3B\xF1\x8B\xC6\x0F\x83\x26\x01\x00" + \
	    b"\x00\x83\xC1\xFC\x89\x4C\x24\x10\x3B\xC1\x8B\xF8\x0F\x87\x15\x01" + \
	    b"\x00\x00\x8D\x49\x00\x8B\x17\x3B\x15\x48\x34\x01\x00\x74\x10\x83" + \
	    b"\xC7\x01\x3B\xF9\x76\xEF\x5F\x5E\x5D\x83\xC4\x08\xC2\x14\x00\xB8" + \
	    b"\x05\x00\x00\x00\xB9\x48\x34\x01\x00\x8B\xD7\x8B\x32\x3B\x31\x75" + \
	    b"\x12\x83\xE8\x04\x83\xC1\x04\x83\xC2\x04\x83\xF8\x04\x73\xEC\x85" + \
	    b"\xC0\x74\x5D\x0F\xB6\x32\x0F\xB6\x29\x2B\xF5\x75\x45\x83\xE8\x01" + \
	    b"\x83\xC1\x01\x83\xC2\x01\x85\xC0\x74\x46\x0F\xB6\x32\x0F\xB6\x29" + \
	    b"\x2B\xF5\x75\x2E\x83\xE8\x01\x83\xC1\x01\x83\xC2\x01\x85\xC0\x74" + \
	    b"\x2F\x0F\xB6\x32\x0F\xB6\x29\x2B\xF5\x75\x17\x83\xE8\x01\x83\xC1" + \
	    b"\x01\x83\xC2\x01\x85\xC0\x74\x18\x0F\xB6\x32\x0F\xB6\x01\x2B\xF0" + \
	    b"\x74\x0E\x85\xF6\xB8\x01\x00\x00\x00\x7F\x07\x83\xC8\xFF\xEB\x02" + \
	    b"\x33\xC0\x85\xC0\x75\x53\x8B\x54\x24\x1C\x8B\xCF\x8D\x34\x10\x3B" + \
	    b"\xF7\x73\x46\x80\x39\xE8\x75\x0F\x8B\x71\x01\x8D\x74\x0E\x05\x3B" + \
	    b"\x35\x04\x34\x01\x00\x74\x0D\x83\xC0\x01\x83\xE9\x01\x83\xF8\x78" + \
	    b"\x72\xDA\xEB\x25\x8B\x4C\x24\x20\x8B\x54\x24\x18\x51\x52\x8B\xC7" + \
	    b"\xE8\xE0\xFC\xFF\xFF\x85\xC0\x74\x10\x8B\x54\x24\x24\x8B\x0A\x85" + \
	    b"\xC9\x74\x04\x3B\xC1\x75\x19\x89\x02\x8B\x4C\x24\x20\x8D\x47\x01" + \
	    b"\x83\xC1\xF6\x3B\xC1\x73\x10\x8B\x4C\x24\x10\xE9\xE8\xFE\xFF\xFF" + \
	    b"\x8B\x44\x24\x28\xC6\x00\x01\x5F\x5E\x5D\x83\xC4\x08\xC2\x14\x00" + \
	    b"\xCC\xCC\xCC\xCC\xCC\x83\xEC\x2C\x53\x55\x56\x57\x33\xFF\x39\x3D" + \
	    b"\xEC\x53\x01\x00\x89\x3D\xE8\x53\x01\x00\x0F\x85\xD8\x00\x00\x00" + \
	    b"\xE8"

dbPattern10=b"\x00\x00\x83\xC4\x20\xA3\x68\x53\x01\x00\xB8\x5C\x53\x01\x00\x5E" + \
	    b"\x83\xC4\x20\xC3\x51\x55\x8B\x6C\x24\x0C\x8B\x45\x60\x33\xD2\xB9" + \
	    b"\x28\x00\x00\x00\x89\x55\x1C\x39\x48\x08\x74\x0A\xB8\x0D\x00\x00" + \
	    b"\xC0\x5D\x59\xC2\x04\x00\x39\x48\x04\x75\xF1\x53\x8B\x5D\x0C\x81" + \
	    b"\x3B\x0D\xF0\xAB\xAF\x74\x0B\x5B\xB8\x0D\x00\x00\xC0\x5D\x59\xC2" + \
	    b"\x04\x00\x56\x57\x8D\x7C\x24\x18\x8D\x74\x24\x10\x89\x54\x24\x18" + \
	    b"\xE8\x1F\xE3\xFF\xFF\x8B\x44\x24\x18\x85\xC0\x5F\x5E\x75\x26\x8D" + \
	    b"\x43\x20\x50\x8B\x00\x50\x8B\x43\x08\x8D\x4B\x18\x51\x8B\x4C\x24" + \
	    b"\x14\x8D\x53\x10\x52\x8B\x11\x50\xFF\xD2\x85\xC0\x75\x07\xC7\x45" + \
	    b"\x1C\x28\x00\x00\x00\x5B\x5D\x59\xC2\x04\x00\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\x83\xEC\x24\x53\x56\x8D\x4C\x24\x10\x51\x33\xDB" + \
	    b"\x68\x19\x00\x02\x00\x8D\x54\x24\x14\x52\x88\x5C\x24\x14\x89\x5C" + \
	    b"\x24\x18\xC7\x44\x24\x1C\x18\x00\x00\x00\x89\x5C\x24\x20\xC7\x44" + \
	    b"\x24\x28\x40\x00\x00\x00\x89\x44\x24\x24\x89\x5C\x24\x2C\x89\x5C" + \
	    b"\x24\x30\xFF\x15\x18\x34\x01\x00\x8B\xF0\x3B\xF3\x0F\x94\xC0\x3B" + \
	    b"\xF3\x88\x44\x24\x08\x74\x1D\x3A\xC3\x74\x42\x8B\x44\x24\x0C\x50" + \
	    b"\x88\x5C\x24\x0C\xFF\x15\xC4\x33\x01\x00\x8B\xC6\x5E\x5B\x83\xC4" + \
	    b"\x24\xC2\x08\x00\x8B\x4C\x24\x34\x8B\x44\x24\x30\x51\x8D\x4C\x24" + \
	    b"\x0C\xE8\x2E\x00\x00\x00\x38\x5C\x24\x08\x8B\xF0\x74\x0F\x8B\x54" + \
	    b"\x24\x0C\x52\x88\x5C\x24\x0C\xFF\x15\xC4\x33\x01\x00\x8B\xC6\x5E" + \
	    b"\x5B\x83\xC4\x24\xC2\x08\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC" + \
	    b"\xCC\xCC\xCC\xCC\x83\xEC\x08\x53\x55\x56\x8B\xF1\x80\x3E\x00\x57" + \
	    b"\x8B\xD8\x74\x7C\x8B\x4E\x04\x8B\x3D\x14\x34\x01\x00\x8D\x44\x24" + \
	    b"\x10\x50\x6A\x00\x6A\x00\x6A\x02\x53\x51\xC7\x44\x24\x28\x00\x00" + \
	    b"\x00\x00\xFF\xD7\x3D\x23\x00\x00\xC0\x75\x55\x8B\x54\x24\x10\x52" + \
	    b"\x6A\x00\xFF\x15\xA0\x33\x01\x00\x8B\xE8\x85\xED\x74\x42\x8B\x4C" + \
	    b"\x24\x10\x8B\x56\x04\x8D\x44\x24\x10\x50\x51\x55\x6A\x02\x53\x52" + \
	    b"\xFF\xD7\x8B\xF8\x85\xFF\x89\x7C\x24\x14\x74\x15\x6A\x00\x55\xFF" + \
	    b"\x15\xF8\x33\x01\x00\x8B\xC7\x5F\x5E\x5D\x5B\x83\xC4\x08\xC2\x04" + \
	    b"\x00\x83\x7D\x04\x03\x74\x18\x6A\x00\x55\xFF\x15\xF8\x33\x01\x00" + \
	    b"\xB8\x01\x00\x00\xC0\x5F\x5E\x5D\x5B\x83\xC4\x08\xC2\x04\x00\x6A" + \
	    b"\x10\x6A\x00\xFF\x15\xA0\x33\x01\x00\x85\xC0\x74\x18\x8B\x7D\x08" + \
	    b"\x8D\x4D\x0C\x51\x8D\x5C\x24\x18\x8B\xF0\xE8\xC5\xDD\xFF\xFF\x8B" + \
	    b"\x7C\x24\x14\xEB\x02\x33\xC0\x8B\x74\x24\x1C\x56\x8B\xD8\xE8\xC1" + \
	    b"\xE0\xFF\xFF\x85\xFF\x75\x95\x39\x7E\x04\x57\x55\x74\xAC\xFF\x15" + \
	    b"\xF8\x33\x01\x00\x5F\x5E\x5D\x33\xC0\x5B\x83\xC4\x08\xC2\x04\x00" + \
	    b"\xCC\xCC\xCC\xCC\x56\x81\xF1"

dbPattern11=b"\x00\x00\x00\x00\x00\x00\x00\x00\xE0\x00\x02\x01\x00\x00\x09\x00" + \
	    b"\xC0\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00" + \
	    b"\x60\x02\x00\x00\x20\x07\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00" + \
	    b"\x20\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x20\x08\x00\x00\x60\x02\x00\x00\x00\x00\x00\x00" + \
	    b"\x02\x00\x00\x80\x00\x00\x10\x00\x00\x10\x00\x00\x00\x00\x10\x00" + \
	    b"\x00\x10\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x20\x07\x00\x00" + \
	    b"\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\xC0\x07\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x02\x00\x00" + \
	    b"\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\xBB\x04\x00\x00\x60\x02\x00\x00\xC0\x04\x00\x00" + \
	    b"\x60\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x20\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00" + \
	    b"\x20\x07\x00\x00\x80\x00\x00\x00\x20\x07\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x40\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x04\x00\x00\x00\xA0\x07\x00\x00\x20\x00\x00\x00" + \
	    b"\xA0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x40\x00\x00\xC0\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00" + \
	    b"\xC0\x07\x00\x00\x60\x00\x00\x00\xC0\x07\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x42\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x6E\x74\x64\x6C\x6C\x2E\x64\x6C\x6C\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\xA0\x07\x00\x00\x90\x07\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x53\x57\xB9\xB8\x02\x00\x00\xE8\x41\x03\x00\x00" + \
	    b"\x8B\xF8\x8B\x5F\x20\xB9\x52\x06\x00\x00\xC6\x06\x15\xC7\x46\x01" + \
	    b"\x39\x00\x00\x00\xE8\x28\x03\x00\x00\xB9\x86\x06\x00\x00\x89\x46" + \
	    b"\x0D\xE8\x1B\x03\x00\x00\x89\x46\x11\x8B\x47\x28\x89\x46\x15\x8B" + \
	    b"\x47\x18\x89\x46\x19\x8B\x47\x48\xB9\x60\x02\x00\x00\x89\x46\x1D" + \
	    b"\xE8\xFC\x02\x00\x00\x50\xFF\xD3\x5F\x89\x46\x21\x5B\x85\xC0\x75" + \
	    b"\x02\x40\xC3\x83\x66\x29\x00\x83\x66\x2D\x00\xC7\x46\x31\x01\x00" + \
	    b"\x00\x00\x33\xC0\xC3\x55\x8B\xEC\x81\xEC\x84\x00\x00\x00\x8B\x45" + \
	    b"\x08\x53\x56\x57\x8B\x78\x58\x8B\x47\x71\x8D\x9F\x95\x00\x00\x00" + \
	    b"\x03\xC3\x89\x45\xFC\x8B\x87\x81\x00\x00\x00\x03\xC3\x89\x45\xF8" + \
	    b"\xB8\x4D\x5A\x00\x00\x66\x89\x03\x8B\x87\x8D\x00\x00\x00\xC7\x04" + \
	    b"\x03\x50\x45\x00\x00\x8B\x87\x91\x00\x00\x00\xB9\x0B\x01\x00\x00" + \
	    b"\x8D\x75\xBC\x66\x89\x0C\x03\xE8\x38\xFF\xFF\xFF\x85\xC0\x75\x5F" + \
	    b"\x8B\x47\x01\xB9\x50\x03\x00\x00\x89\x5D\xC1\x89\x45\xC5\xE8\x6E" + \
	    b"\x02\x00\x00\x50\x8B\xC6\x50\xFF\x55\xFC\x59\x59\x85\xC0\x75\x3F" + \
	    b"\x8D\x75\xBC\xE8\x0C\xFF\xFF\xFF\x85\xC0\x75\x33\x8B\x45\x08\x8B" + \
	    b"\x48\x60\x8B\x40\x68\x89\x45\xC5\x8D\x85\x7C\xFF\xFF\xFF\x50\x8B" + \
	    b"\xC6\x50\x89\x4D\xC1\xFF\x55\xFC\x59\x59\x85\xC0\x75\x11\x8D\x85" + \
	    b"\x7C\xFF\xFF\xFF\x50\xFF\x55\xF8\x59\x85\xC0\x74\x02\xFF\xD0\x5F" + \
	    b"\x5E\x5B\xC9\xC3\x55\x8B\xEC\x83\xE4\xF8\x83\xEC\x2C\x57\xB9\xB8" + \
	    b"\x02\x00\x00\xE8\x09\x02\x00\x00\x8B\xF8\x57\xE8\x25\xFF\xFF\xFF" + \
	    b"\x83\x06\xF9\x8B\x06\x83\x4C\x24\x14\xFF\x89\x44\x24\x1C\x8D\x44" + \
	    b"\x24\x0C\x50\x8B\xC7\xC7\x44\x24\x10\x0D\xF0\xAB\xAF\xC7\x44\x24" + \
	    b"\x28\x0C\x00\x00\x00\xC7\x44\x24\x30\x80\x00\x00\x00\xE8\x95\x01" + \
	    b"\x00\x00\x59\x59\x89\x44\x24\x04\x33\xC9\x8A\x54\x0F\x78\x8B\x06" + \
	    b"\x88\x14\x01\x41\x83\xF9\x0C\x72\xF1\x83\x7C\x24\x04\x00\x75\x17" + \
	    b"\x8B\x87\x88\x00\x00\x00\x89\x44\x24\x28\x8D\x44\x24\x08\x50\x8B" + \
	    b"\xC7\xE8\x61\x01\x00\x00\x59\x5F\x8B\xE5\x5D\xC3\x56\x8D\x74\x24" + \
	    b"\x04\xE8\x6E\xFF\xFF\xFF\x5E\xC3\x55\x8B\xEC\x81\xEC\x84\x00\x00" + \
	    b"\x00\x8B\x0D\x58\x03\x00\x00\x53\x56\x57\x8B\x3D\x10\x03\x00\x00" + \
	    b"\x8B\x47\x3D\x8B\x5F\x2D\x03\xC1\x89\x45\xF8\x8B\x47\x45\x03\xC1" + \
	    b"\x8D\x75\xBC\x03\xD9\x89\x45\xFC\xE8\x07\xFE\xFF\xFF\x85\xC0\x75" + \
	    b"\x64\x8B\x75\x08\x8B\x46\x08\x89\x45\xC1\x8B\x46\x10\x89\x45\xC5" + \
	    b"\x8D\x85\x7C\xFF\xFF\xFF\x50\x8D\x45\xBC\x50\xFF\xD3\x59\x59\x85" + \
	    b"\xC0\x75\x42\x8D\x85\x7C\xFF\xFF\xFF\x50\xFF\x55\xF8\x59\x85\xC0" + \
	    b"\x74\x33\x6A\x00\x6A\x01\xFF\x75\x84\xFF\xD0\x85\xC0\x74\x26\x0F" + \
	    b"\xB7\x46\x18\x50\x8D\x85\x7C\xFF\xFF\xFF\x50\xFF\x55\xFC\x59\x59" + \
	    b"\x85\xC0\x74\x11\xFF\x35\x48\x03\x00\x00\x68\x50\x03\x00\x00\x57" + \
	    b"\xFF\xD0\x83\xC4\x0C\x5F\x5E\x5B\xC9\xC3\x56\x8B\x35\x28\x03\x00" + \
	    b"\x00\x85\xF6\x74\x4F\x53\x57\x80\x7E\x20\x00\x74\x09\x56\xE8\x45" + \
	    b"\xFF\xFF\xFF\x59\xEB\x36\xFF\x76\x08\xA1\xE8\x02\x00\x00\x8B\x3D" + \
	    b"\xD0\x02\x00\x00\x0F\xB7\x5E\x18\xFF\xD0\x85\xC0\x74\x1E\x53\x50" + \
	    b"\xFF\xD7\x85\xC0\x74\x16\xFF\x35\x48\x03\x00\x00\x68\x50\x03\x00" + \
	    b"\x00\xFF\x35\x10\x03\x00\x00\xFF\xD0\x83\xC4\x0C\x8B\x36\x85\xF6" + \
	    b"\x75\xB5\x5F\x5B\x5E\xC3\x56\x57\xB9\xB8\x02\x00\x00\xE8\x7F\x00" + \
	    b"\x00\x00\x8B\x78\x08\x6A\x40\xBE\x00\x30\x00\x00\x56\xFF\x74\x24" + \
	    b"\x18\xFF\x74\x24\x18\xFF\xD7\x85\xC0\x75\x0A\x6A\x40\x56\xFF\x74" + \
	    b"\x24\x18\x50\xFF\xD7\x5F\x5E\xC2\x08\x00\xB9\xB8\x02\x00\x00\xE8" + \
	    b"\x4D\x00\x00\x00\x8B\x40\x10\x68\x00\x80\x00\x00\x6A\x00\xFF\x74" + \
	    b"\x24\x0C\xFF\xD0\xC2\x04\x00\x55\x8B\xEC\x51\x8B\x48\x50\x83\x65" + \
	    b"\xFC\x00\x6A\x00\x8D\x55\xFC\x52\x6A\x28\xFF\x75\x08\x6A\x28\xFF" + \
	    b"\x75\x08\x68\x00\x38\x22\x00\xFF\xB0\x90\x00\x00\x00\xFF\xD1\x85" + \
	    b"\xC0\x75\x03\x40\xC9\xC3\x33\xC0\x83\x7D\xFC\x28\x0F\x95\xC0\xC9" + \
	    b"\xC3\xE8\x00\x00\x00\x00\x58\x8D\x15\xE2\x06\x00\x00\x2B\xC2\x03" + \
	    b"\xC1\xC3\xCC\xCC\x8B\x64\x24\x08\xEB\x00\x64\x8F\x05\x00\x00\x00" + \
	    b"\x00\x58\x61\xC3\x60\x68\xF0\x06\x00\x00\x64\xFF\x35\x00\x00\x00" + \
	    b"\x00\x64\x89\x25\x00\x00\x00\x00\xE8\xDD\xFE\xFF\xFF\xEB\xDB\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00" 

dbPattern12=b"\x00\x00\x01\x00\x00\x04\x00\x00\x10\x00\x00\x10\x00\x00\x00\x00" + \
	    b"\x10\x00\x00\x10\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x60\x10" + \
	    b"\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x4E\x0E\x00\x00\x10\x02\x00\x00\x50\x0E" + \
	    b"\x00\x00\x10\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + \
	    b"\x00\x00\x20\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x78\x02" + \
	    b"\x00\x00\x60\x10\x00\x00\x80\x02\x00\x00\x60\x10\x00\x00\x00\x00" + \
	    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x40\xFF\x70" + \
	    b"\x20\xFF\x70\x18\x68\x00\x00\x00\x00\xE8\x00\x00\x00\x00\xFF\xF8" + \
	    b"\xFF\xFF\xF8\xFF\xFF\x00\x00\x00\x00\xFF\x00\x00\x00\x00\x56\x8B" + \
	    b"\x74\x24\x08\x80\x3E\x15\x75\x24\x83\x7E\x01\x39\x75\x1E\xFF\x74" + \
	    b"\x24\x0C\x56\xE8\x19\x00\x00\x00\x59\x59\x85\xC0\x75\x11\xFF\x74" + \
	    b"\x24\x0C\x56\xE8\x58\x00\x00\x00\x59\x59\x5E\xC3\x6A\x05\x58\x5E" + \
	    b"\xC3\x56\x8B\x74\x24\x08\x80\x3E\x15\x57\x75\x3E\x83\x7E\x01\x39" + \
	    b"\x75\x38\x8B\x7C\x24\x10\x6A\x3E\x6A\x00\x57\xE8\xC3\x0A\x00\x00" + \
	    b"\x83\xC4\x0C\xE8\xCA\x00\x00\x00\x8B\xF0\x85\xF6\x75\x0D\x57\xE8" + \
	    b"\xDF\x03\x00\x00\x8B\xF0\x59\x85" + \
	    b"\xF6\x74\x0B\x57\xE8\x71\x00\x00" + \
	    b"\x00\x59\x8B\xC6\xEB\x07\x33\xC0" + \
	    b"\xEB\x03\x6A\x05\x58\x5F\x5E\xC3" + \
	    b"\x53\x56\x57\x8B\x7C\x24\x10\x80" + \
	    b"\x3F\x15\x75\x4F\x83\x7F\x01\x39" + \
	    b"\x75\x49\x8B\x5C\x24\x14\x53\x8B" + \
	    b"\xC7\xE8\x79\x02\x00\x00\x8B\xF0" + \
	    b"\x59\x85\xF6\x75\x27\x8D\x73\x2E" + \
	    b"\x56\x57\xE8\xD3\x0C\x00\x00\x59" + \
	    b"\x59\x85\xC0\x74\x05\x33\xF6\x46" + \
	    b"\xEB\x12\x83\x3E\x00\x74\x18\x57" + \
	    b"\xE8\x0D\x0D\x00\x00\x8B\xF0\x59" + \
	    b"\x85\xF6\x74\x0B\x53\xE8\x10\x00" + \
	    b"\x00\x00\x59\x8B\xC6\xEB\x07\x33" + \
	    b"\xC0\xEB\x03\x6A\x05\x58\x5F\x5E" + \
	    b"\x5B\xC3\x56\x8B\x74\x24\x08\x83" + \
	    b"\x7E\x22\x00\x74\x0F\x83\x7E\x2E" + \
	    b"\x00\x74\x09\xFF\x76\x08\xFF\x76" + \
	    b"\x32\xFF\x56\x3A\x83\x7E\x1E\x00" + \
	    b"\x74\x06\xFF\x76\x08\xFF\x56\x26" + \
	    b"\x5E\xC3\x8B\x4C\x24\x04\x8B\x41" + \
	    b"\x0C\x8B\x40\x28\x03\x41\x08\xC3" + \
	    b"\xE9\xC3\x06\x00\x00\xE9\x61\x07" + \
	    b"\x00\x00\x55\x8B\xEC\x83\xEC\x24" + \
	    b"\x6A\x00\xFF\x76\x05\x8D\x45\xDC" + \
	    b"\x50\xE8\x43\x04\x00\x00\x83\xC4" + \
	    b"\x0C\x85\xC0\x74\x05\x6A\x02\x58" + \
	    b"\xC9\xC3\xFF\x76\x09\x8D\x45\xDC" + \
	    b"\xE8\x77\x00\x00\x00\x59\x85\xC0" + \
	    b"\x75\xEB\x53\x8B\x5D\xE8\xFF\x75" + \
	    b"\xF6\x8B\x43\x34\x50\xFF\x56\x0D" + \
	    b"\x89\x45\xFC\x85\xC0\x75\x04\x6A" + \
	    b"\x03\xEB\x44\xFF\x75\xF6\x8B\x4E" + \
	    b"\x11\x6A\x00\x89\x4F\x26\xC7\x47" + \
	    b"\x1E\x01\x00\x00\x00\x8B\x5B\x54" + \
	    b"\x50\xE8\x8D\x09\x00\x00\x8B\x46" + \
	    b"\x05\x8B\x4D\xFC\x83\xC4\x0C\xEB" + \
	    b"\x07\x8A\x10\x4B\x88\x11\x41\x40" + \
	    b"\x85\xDB\x75\xF5\x53\xFF\x75\xFC" + \
	    b"\x57\xE8\xD3\x03\x00\x00\x83\xC4" + \
	    b"\x0C\x85\xC0\x74\x05\x6A\x02\x58" + \
	    b"\xEB\x0F\xFF\x75\xFC\x8B\xC7\x56" + \
	    b"\xE8\x83\x00\x00\x00\x59\x59\x33" + \
	    b"\xC0\x5B\xC9\xC3\x55\x8B\xEC\x51" + \
	    b"\x83\x65\xFC\x00\x83\x38\x00\x56" + \
	    b"\x8B\x70\x14\x57\x0F\xB7\x78\x18" + \
	    b"\x74\x05\x6A\x02\x58\xEB\x58\x8B" + \
	    b"\x48\x0C\x8B\x55\x08\x39\x51\x54" + \
	    b"\x77\xF0\x53\x8B\x58\x1A\x33\xD2" + \
	    b"\x8B\xC3\xF7\x71\x38\x85\xD2\x75" + \
	    b"\x42\x33\xC0\x66\x3B\x41\x06\x74" + \
	    b"\x3A\x0F\xB7\xFF\x85\xFF\x76\x2C" + \
	    b"\x8D\x46\x10\x8B\x08\x8B\x50\xF8" + \
	    b"\x3B\xCA\x72\x02\x8B\xCA\x8B\x70" + \
	    b"\x04\x03\xF1\x3B\x75\x08\x77\x1B" + \
	    b"\x8B\x48\xFC\x03\xCA\x3B\xCB\x77" + \
	    b"\x12\x83\xC0\x28\xFF\x45\xFC\x39" + \
	    b"\x7D\xFC\x72\xD7\x33\xC0\x5B\x5F" + \
	    b"\x5E\xC9\xC3\x6A\x02\x58\xEB\xF6" + \
	    b"\x8B\x48\x14\x0F\xB7\x40\x18\x85" + \
	    b"\xC0\x76\x3E\x53\x56\x57\x8D\x71" + \
	    b"\x08\x8B\xD8\x8B\x46\x08\x8B\x16" + \
	    b"\x3B\xC2\x73\x02\x8B\xD0\x8B\x44" + \
	    b"\x24\x10\x8B\x4E\x0C\x03\x48\x05" + \
	    b"\x8B\x46\x04\x03\x44\x24\x14\x8B" + \
	    b"\xFA\x85\xD2\x74\x0B\x8A\x11\x4F" + \
	    b"\x88\x10\x40\x41\x85\xFF\x75\xF5" + \
	    b"\x83\xC6\x28\x4B\x75\xCD\x5F\x5E" + \
	    b"\x5B\xC3\x55\x8B\xEC\x83\xEC\x0C" + \
	    b"\x8B\x48\x2D\x53\x56\x57\x33\xFF" + \
	    b"\x89\x4D\xF8\x85\xC9\x76\x5A\x8B" + \
	    b"\x40\x29\x89\x45\xF4\x89\x45\xFC" + \
	    b"\x8B\x45\xFC\x8B\x10\x8B\x45\x08" + \
	    b"\xE8\x8C\x08\x00\x00\x85\xC0\x75" + \
	    b"\x36\x8B\x45\xFC\x8B\x48\x04\x8A" + \
	    b"\x11\x8B\x75\x0C\x0F\xB6\x06\x0F" + \
	    b"\xB6\xDA\x2B\xC3\x75\x14\x2B\xF1" + \
	    b"\x84\xD2\x74\x0E\x41\x8A\x11\x0F" + \
	    b"\xB6\x04\x0E\x0F\xB6\xDA\x2B\xC3" + \
	    b"\x74\xEE\x85\xC0\x7C\x09\x7E\x03" + \
	    b"\x33\xC0\x40\x85\xC0\x74\x17\x83" + \
	    b"\x45\xFC\x0C\x47\x3B\x7D\xF8\x72" + \
	    b"\xAF\x8B\x45\x10\x83\x20\x00\x5F" + \
	    b"\x5E\x33\xC0\x5B\xC9\xC3\x8B\x45" + \
	    b"\xF4\x6B\xFF\x0C\x8B\x44\x07\x08" + \
	    b"\x8B\x4D\x10\x89\x01\xEB\xE8\x55" + \
	    b"\x8B\xEC\x83\xEC\x10\x53\x8B\xD8" + \
	    b"\x8D\x45\xF0\x50\x8D\x45\xF8\x50" + \
	    b"\x6A\x01\xFF\x75\x08\xE8\x2A\x04" + \
	    b"\x00\x00\x83\xC4\x10\x83\xF8\x02" + \
	    b"\x75\x07\x33\xC0\xE9\xA6\x00\x00" + \
	    b"\x00\x85\xC0\x74\x08\x6A\x02\x58" + \
	    b"\xE9\x9A\x00\x00\x00\x8B\x45\xF8" + \
	    b"\x83\xC0\x10\x83\x38\x00\x56\x57" + \
	    b"\x0F\x84\x85\x00\x00\x00\x8B\xF8" + \
	    b"\x89\x45\xF8\x8B\x47\xFC\x33\xF6" + \
	    b"\x3B\xC6\x75\x05\x89\x75\xFC\xEB" + \
	    b"\x0E\x50\xFF\x75\x08\xE8\xC5\x03" + \
	    b"\x00\x00\x59\x59\x89\x45\xFC\x8B" + \
	    b"\x07\x3B\xC6\x74\x0D\x50\xFF\x75" + \
	    b"\x08\xE8\xB1\x03\x00\x00\x59\x59" + \
	    b"\x8B\xF0\x83\x7D\xFC\x00\x74\x52" + \
	    b"\x85\xF6\x74\x4E\xFF\x75\xFC\xFF" + \
	    b"\x53\x15\x89\x45\xF4\x85\xC0\x74" + \
	    b"\x41\x83\x3E\x00\x74\x2A\xFF\x75" + \
	    b"\xF4\x8D\x7D\xF0\xFF\x75\xFC\x8B" + \
	    b"\xC6\xFF\x75\x08\xE8\x2E\x00\x00" + \
	    b"\x00\x83\xC4\x0C\x85\xC0\x75\x22" + \
	    b"\x8B\x45\xF0\x89\x06\x83\xC6\x04" + \
	    b"\x83\x3E\x00\x75\xD9\x8B\x7D\xF8" + \
	    b"\x83\xC7\x14\x83\x3F\x00\x89\x7D" + \
	    b"\xF8\x75\x80\x33\xC0\x5F\x5E\x5B" + \
	    b"\xC9\xC3\x6A\x04\x58\xEB\xF6\x8B" + \
	    b"\x00\x56\x85\xC0\x79\x07\x25\xFF" + \
	    b"\xFF\x00\x00\xEB\x34\x74\x10\x50" + \
	    b"\xFF\x74\x24\x0C\xE8\x36\x03\x00" + \
	    b"\x00\x59\x59\x85\xC0\x75\x05\x6A" + \
	    b"\x04\x58\x5E\xC3\x8D\x70\x02\x57" + \
	    b"\x56\xFF\x74\x24\x14\x8B\xC3\xE8" + \
	    b"\x66\xFE\xFF\xFF\x83\xC4\x0C\x85" + \
	    b"\xC0\x75\x16\x39\x07\x75\x10\x8B" + \
	    b"\xC6\x50\xFF\x74\x24\x14\xFF\x53" + \
	    b"\x19\x89\x07\x85\xC0\x74\xD0\x33" + \
	    b"\xC0\x5E\xC3\x55\x8B\xEC\x83\xEC" + \
	    b"\x10\x57\x8B\x7D\x08\x8B\x4F\x0C" + \
	    b"\x8B\x47\x08\x2B\x41\x34\x89\x45" + \
	    b"\xF4\x75\x07\x33\xC0\xE9\xB3\x00" + \
	    b"\x00\x00\x8D\x45\xF8\x50\x8D\x45" + \
	    b"\xFC\x50\x6A\x05\x57\xE8\xEA\x02" + \
	    b"\x00\x00\x83\xC4\x10\x83\xF8\x02" + \
	    b"\x74\xE1\x85\xC0\x74\x08\x6A\x02" + \
	    b"\x58\xE9\x8F\x00\x00\x00\x8B\x45" + \
	    b"\xF8\x53\x56\x8B\x75\xFC\x03\xC6" + \
	    b"\x8D\x5E\x08\x89\x45\xF0\x3B\xD8" + \
	    b"\x77\x77\x8B\x46\x04\x85\xC0\x74" + \
	    b"\x70\x83\xF8\x08\x72\x72\x8B\x4F" + \
	    b"\x1A\x03\x4F\x08\x8D\x14\x30\x3B" + \
	    b"\xD1\x77\x65\x83\xC0\xF8\xA8\x01" + \
	    b"\x75\x5E\xD1\xE8\x89\x45\xF8\xC7" + \
	    b"\x45\xFC\x00\x00\x00\x00\x74\x3E" + \
	    b"\x8B\x45\xFC\x0F\xB7\x3C\x43\x8B" + \
	    b"\xC7\x25\xFF\x0F\x00\x00\x03\x06" + \
	    b"\x50\xFF\x75\x08\xE8\x5E\x02\x00" + \
	    b"\x00\x59\x59\x85\xC0\x74\x31\xC1" + \
	    b"\xEF\x0C\x85\xFF\x74\x0A\x83\xFF" + \
	    b"\x03\x75\x25\x8B\x4D\xF4\x01\x08" + \
	    b"\xFF\x45\xFC\x8B\x45\xFC\x3B\x45" + \
	    b"\xF8\x72\xC5\x8B\x7D\x08\x03\x76" + \
	    b"\x04\x8D\x5E\x08\x3B\x5D\xF0\x76" + \
	    b"\x89\x33\xC0\x5E\x5B\x5F\xC9\xC3" + \
	    b"\x6A\x02\x58\xEB\xF6\xE8\x00\x00" + \
	    b"\x00\x00\x58\x8D\x15\x54\x07\x40" + \
	    b"\x00\x2B\xC2\x03\xC1\xC3\x8B\x44" + \
	    b"\x24\x08\x8B\x4C\x24\x0C\x53\x56" + \
	    b"\x8B\xF0\x81\xE6\x00\xF0\xFF\xFF" + \
	    b"\x57\x3B\xC1\x73\x02\x8B\xC8\x2B" + \
	    b"\xC1\x8B\xD8\xEB\x1D\x8B\x7C\x24" + \
	    b"\x10\x6A\x01\xFF\x74\x24\x20\x56" + \
	    b"\xE8\xEE\x00\x00\x00\x83\xC4\x0C" + \
	    b"\x85\xC0\x74\x11\x81\xEE\x00\x10" + \
	    b"\x00\x00\x3B\xF3\x77\xDF\x33\xC0" + \
	    b"\x40\x5F\x5E\x5B\xC3\x33\xC0\xEB" + \
	    b"\xF8\x56\x8B\x74\x24\x0C\xB8\x4D" + \
	    b"\x5A\x00\x00\x66\x39\x06\x74\x05" + \
	    b"\x33\xC0\x40\x5E\xC3\x8B\x46\x3C" + \
	    b"\x03\xC6\x8B\x08\x81\xF1\x84\xF2" + \
	    b"\x50\xF7\x81\xF9\xD4\xB7\x50\xF7" + \
	    b"\x75\xE6\x0F\xB7\x48\x04\x53\x57" + \
	    b"\x8B\xF9\xBA\x03\x58\x00\x00\x81" + \
	    b"\xF7\x4F\x59\x00\x00\x8B\xDA\x66" + \
	    b"\x3B\xDF\x75\x25\xB9\x08\x59\x00" + \
	    b"\x00\x66\x33\x48\x18\x66\x3B\xCA" + \
	    b"\x75\x7A\xB9\xE0\x00\x00\x00\x66" + \
	    b"\x39\x48\x14\x75\x6F\x8B\x4C\x24" + \
	    b"\x10\x83\x21\x00\x8D\x50\x78\xEB" + \
	    b"\x36\x81\xF1\x67\xDE\x00\x00\x8B" + \
	    b"\xFA\x66\x3B\xF9\x75\x56\xB9\x08" + \
	    b"\x5A\x00\x00\x66\x33\x48\x18\x66" + \
	    b"\x3B\xCA\x75\x48\xB9\xF0\x00\x00" + \
	    b"\x00\x66\x39\x48\x14\x75\x3D\x8B" + \
	    b"\x4C\x24\x10\xC7\x01\x01\x00\x00" + \
	    b"\x00\x8D\x90\x88\x00\x00\x00\x89" + \
	    b"\x51\x10\x8B\x50\x50\x89\x51\x1A" + \
	    b"\x0F\xB7\x50\x14\x8D\x54\x02\x18" + \
	    b"\x89\x51\x14\x66\x8B\x50\x06\x89" + \
	    b"\x41\x0C\x8B\x44\x24\x18\x89\x41" + \
	    b"\x04\x66\x89\x51\x18\x89\x71\x08" + \
	    b"\x33\xC0\xEB\x03\x33\xC0\x40\x5F" + \
	    b"\x5B\x5E\xC3\x55\x8B\xEC\x83\x7D" + \
	    b"\x0C\x00\x53\x8B\x5D\x08\x74\x11" + \
	    b"\x53\xFF\x55\x0C\x59\x85\xC0\x75" + \
	    b"\x08\x33\xC0\x40\xE9\xD3\x00\x00" + \
	    b"\x00\xB8\x4D\x5A\x00\x00\x66\x39" + \
	    b"\x03\x75\xEE\x56\x8B\x73\x3C\x03" + \
	    b"\xF3\x83\x7D\x0C\x00\x74\x0D\x56" + \
	    b"\xFF\x55\x0C\x59\x85\xC0\x0F\x84" + \
	    b"\xAC\x00\x00\x00\x8B\x06\x35\x84" + \
	    b"\xF2\x50\xF7\x3D\xD4\xB7\x50\xF7" + \
	    b"\x0F\x85\x9A\x00\x00\x00\x0F\xB7" + \
	    b"\x4E\x04\x8B\xD1\xB8\x03\x58\x00" + \
	    b"\x00\x81\xF2\x4F\x59\x00\x00\x8B" + \
	    b"\xD8\x66\x3B\xDA\x75\x21\xB9\x08" + \
	    b"\x59\x00\x00\x66\x33\x4E\x18\x66" + \
	    b"\x3B\xC8\x75\x74\xB8\xE0\x00\x00" + \
	    b"\x00\x66\x39\x46\x14\x75\x69\x83" + \
	    b"\x27\x00\x8D\x46\x78\xEB\x32\x81" + \
	    b"\xF1\x67\xDE\x00\x00\x8B\xD0\x66" + \
	    b"\x3B\xD1\x75\x54\xB9\x08\x5A\x00" + \
	    b"\x00\x66\x33\x4E\x18\x66\x3B\xC8" + \
	    b"\x75\x46\xB8\xF0\x00\x00\x00\x66" + \
	    b"\x39\x46\x14\x75\x3B\xC7\x07\x01" + \
	    b"\x00\x00\x00\x8D\x86\x88\x00\x00" + \
	    b"\x00\x89\x47\x10\x8B\x46\x50\x89" + \
	    b"\x47\x1A\x0F\xB7\x46\x14\x8D\x44" + \
	    b"\x30\x18\x89\x47\x14\x66\x8B\x46" + \
	    b"\x06\x66\x89\x47\x18\x8B\x45\x08" + \
	    b"\x89\x47\x08\x8B\x45\x10\x89\x47" + \
	    b"\x04\x89\x77\x0C\x33\xC0\xEB\x03" + \
	    b"\x33\xC0\x40\x5E\x5B\x5D\xC3\x53" + \
	    b"\x8B\x5C\x24\x0C\x56\x8B\x74\x24" + \
	    b"\x0C\x8B\xC6\xE8\x6B\x02\x00\x00" + \
	    b"\x85\xC0\x74\x05\x8B\x46\x08\x03" + \
	    b"\xC3\x5E\x5B\xC3\x8B\x4C\x24\x04" + \
	    b"\x8B\x44\x24\x08\x8B\x51\x10\x56" + \
	    b"\x8D\x34\xC2\x83\xF8\x10\x72\x05" + \
	    b"\x33\xC0\x40\x5E\xC3\x8B\x06\x85" + \
	    b"\xC0\x75\x09\x39\x46\x04\x5E\x0F" + \
	    b"\x94\xC0\x40\xC3\x8B\x56\x04\x03" + \
	    b"\xD0\x3B\x51\x1A\x77\xE2\x50\x51" + \
	    b"\xE8\xAA\xFF\xFF\xFF\x8B\x54\x24" + \
	    b"\x1C\x59\x59\x8B\x4C\x24\x10\x89" + \
	    b"\x01\x8B\x46\x04\x89\x02\x33\xC0" + \
	    b"\x39\x01\x5E\x0F\x94\xC0\xC3\x8B" + \
	    b"\x54\x24\x04\x8A\x0A\x33\xC0\x84" + \
	    b"\xC9\x74\x24\x56\x0F\xBE\xC9\x8B" + \
	    b"\xF1\x6B\xF6\x11\x83\xC6\x0C\x0F" + \
	    b"\xAF\xF1\x8B\xC8\x6B\xC9\x07\x41" + \
	    b"\x0F\xAF\xC8\x03\xF1\x42\x8A\x0A" + \
	    b"\x8B\xC6\x84\xC9\x75\xDE\x5E\xC3" + \
	    b"\x55\x8B\xEC\x83\xEC\x0C\x56\x8D" + \
	    b"\x45\xF4\x50\x8D\x45\xFC\x50\x33" + \
	    b"\xF6\x56\xFF\x75\x08\xE8\x62\xFF" + \
	    b"\xFF\xFF\x83\xC4\x10\x85\xC0\x74" + \
	    b"\x04\x33\xC0\xEB\x61\x57\x8B\x7D" + \
	    b"\xFC\xFF\x77\x20\xFF\x75\x08\xE8" + \
	    b"\x2B\xFF\xFF\xFF\x59\x59\x89\x45" + \
	    b"\xFC\x3B\xC6\x74\x14\xFF\x77\x24" + \
	    b"\xFF\x75\x08\xE8\x17\xFF\xFF\xFF" + \
	    b"\x59\x59\x89\x45\xF8\x3B\xC6\x75" + \
	    b"\x04\x33\xC0\xEB\x30\x53\x8B\x5F" + \
	    b"\x18\x85\xDB\x76\x25\x8B\x45\xFC" + \
	    b"\xFF\x34\xB0\xFF\x75\x08\xE8\xF4" + \
	    b"\xFE\xFF\xFF\x59\x59\x85\xC0\x74" + \
	    b"\x11\x50\xE8\x58\xFF\xFF\xFF\x59" + \
	    b"\x3B\x45\x0C\x74\x0C\x46\x3B\xF3" + \
	    b"\x72\xDB\x33\xC0\x5B\x5F\x5E\xC9" + \
	    b"\xC3\x8B\x45\xF8\x0F\xB7\x04\x70" + \
	    b"\x50\xFF\x75\xF4\x8B\xC7\xFF\x75" + \
	    b"\x08\xE8\x4E\x00\x00\x00\x83\xC4" + \
	    b"\x0C\xEB\xE1\x55\x8B\xEC\x51\x51" + \
	    b"\x8D\x45\xF8\x50\x8D\x45\xFC\x50" + \
	    b"\x6A\x00\xFF\x75\x08\xE8\xC2\xFE" + \
	    b"\xFF\xFF\x83\xC4\x10\x85\xC0\x74" + \
	    b"\x04\x33\xC0\xC9\xC3\x66\x8B\x4D" + \
	    b"\x0C\x8B\x45\xFC\x0F\xB7\xD1\x3B" + \
	    b"\x50\x10\x72\xED\x66\x2B\x48\x10" + \
	    b"\x0F\xB7\xC9\x51\xFF\x75\xF8\xFF" + \
	    b"\x75\x08\xE8\x05\x00\x00\x00\x83" + \
	    b"\xC4\x0C\xC9\xC3\x56\x8B\xF0\xFF" + \
	    b"\x76\x1C\xFF\x74\x24\x0C\xE8\x64" + \
	    b"\xFE\xFF\xFF\x59\x59\x85\xC0\x74" + \
	    b"\x2F\x0F\xB7\x4C\x24\x10\x3B\x4E" + \
	    b"\x14\x73\x25\x8B\x04\x88\x85\xC0" + \
	    b"\x74\x1E\x50\xFF\x74\x24\x0C\xE8" + \
	    b"\x43\xFE\xFF\xFF\x59\x59\x85\xC0" + \
	    b"\x74\x0E\x3B\xC6\x72\x0C\x8B\x4C" + \
	    b"\x24\x0C\x03\xF1\x3B\xC6\x73\x02" + \
	    b"\x33\xC0\x5E\xC3\x55\x8B\xEC\x8B" + \
	    b"\x45\x08\x8B\x50\x14\x56\x57\x0F" + \
	    b"\xB7\x78\x18\x33\xC0\x33\xF6\x66" + \
	    b"\x3B\xC7\x73\x23\x0F\xB7\xC6\x6B" + \
	    b"\xC0\x28\x8B\x0C\x10\x23\x4D\x14" + \
	    b"\x8B\x44\x10\x04\x23\x45\x18\x3B" + \
	    b"\x4D\x0C\x75\x05\x3B\x45\x10\x74" + \
	    b"\x0C\x46\x66\x3B\xF7\x72\xDD\x33" + \
	    b"\xC0\x5F\x5E\x5D\xC3\x0F\xB7\xC6" + \
	    b"\x6B\xC0\x28\x03\xC2\xEB\xF2\x55" + \
	    b"\x8B\xEC\x8B\x45\x08\x53\x0F\xB7" + \
	    b"\x58\x18\x56\x8B\x70\x14\x57\x33" + \
	    b"\xC9\x33\xFF\x66\x3B\xCB\x73\x32" + \
	    b"\x8B\x40\x08\x89\x45\x08\x0F\xB7" + \
	    b"\xC7\x6B\xC0\x28\x03\xC6\x8B\x48" + \
	    b"\x08\x8B\x50\x10\x3B\xCA\x72\x02" + \
	    b"\x8B\xCA\x8B\x40\x0C\x03\x45\x08" + \
	    b"\x39\x45\x0C\x72\x07\x03\xC1\x39" + \
	    b"\x45\x0C\x72\x0D\x47\x66\x3B\xFB" + \
	    b"\x72\xD4\x33\xC0\x5F\x5E\x5B\x5D" + \
	    b"\xC3\x0F\xB7\xC7\x6B\xC0\x28\x03" + \
	    b"\xC6\xEB\xF1\x55\x8B\xEC\x51\x0F" + \
	    b"\xB7\x48\x18\x56\x8B\x70\x14\x89" + \
	    b"\x4D\xFC\x3B\x58\x1A\x72\x04\x33" + \
	    b"\xC0\xEB\x5B\x57\x33\xFF\x39\x78" + \
	    b"\x04\x75\x05\x33\xC0\x40\xEB\x4D" + \
	    b"\x33\xC0\x66\x3B\xC1\x73\x44\x0F" + \
	    b"\xB7\xC7\x6B\xC0\x28\x03\xC6\x8B" + \
	    b"\x48\x08\x8B\x50\x10\x3B\xCA\x72" + \
	    b"\x02\x8B\xCA\x8B\x40\x0C\x3B\xD8" + \
	    b"\x72\x06\x03\xC1\x3B\xD8\x72\x09" + \
	    b"\x47\x66\x3B\x7D\xFC\x72\xD8\xEB" + \
	    b"\x1A\x0F\xB7\xC7\x6B\xC0\x28\x8B" + \
	    b"\x74\x30\x24\xF7\xC6\x00\x00\x00" + \
	    b"\x02\x75\x08\xF7\xC6\x00\x00\x00" + \
	    b"\x40\x75\xB0\x33\xC0\x5F\x5E\xC9" + \
	    b"\xC3\x55\x8B\xEC\x51\x51\x8D\x45" + \
	    b"\xF8\x50\x8D\x45\xFC\x50\x6A\x00" + \
	    b"\xFF\x75\x08\xE8\x14\xFD\xFF\xFF" + \
	    b"\x83\xC4\x10\x85\xC0\x74\x05\x83" + \
	    b"\xC8\xFF\xC9\xC3\x8B\x45\xFC\xFF" + \
	    b"\x70\x0C\xFF\x75\x08\xE8\xDD\xFC" + \
	    b"\xFF\xFF\x59\x59\x85\xC0\x74\xE7" + \
	    b"\x8B\x55\x0C\xE8\xD1\x00\x00\x00" + \
	    b"\xC9\xC3\x55\x8B\xEC\x51\x51\x56" + \
	    b"\x57\x8D\x79\x04\x8D\x4C\x01\xF3" + \
	    b"\x8D\x70\xFC\x89\x4D\xFC\x83\xF8" + \
	    b"\x0D\x73\x04\x33\xC0\xEB\x4F\x53" + \
	    b"\x3B\xF9\x77\x47\x8D\x44\x3E\xFC" + \
	    b"\x8B\xDF\x3B\xF8\x77\x0C\x8B\x0B" + \
	    b"\x3B\x4D\x08\x74\x07\x43\x3B\xD8" + \
	    b"\x76\xF4\x33\xDB\x85\xDB\x74\x2B" + \
	    b"\x8D\x4B\xFC\x89\x4D\xF8\x3B\x4D" + \
	    b"\xFC\x77\x20\x8B\x45\x10\x8B\x55" + \
	    b"\x0C\x6A\x0D\xE8\x1F\x00\x00\x00" + \
	    b"\x59\x85\xC0\x75\x15\x2B\xFB\x8D" + \
	    b"\x74\x3E\xFF\x8D\x7B\x01\x3B\x7D" + \
	    b"\xFC\x76\xB9\x33\xC0\x5B\x5F\x5E" + \
	    b"\xC9\xC3\x8B\x45\xF8\xEB\xF6\x56" + \
	    b"\x57\x33\xFF\x39\x7C\x24\x0C\x76" + \
	    b"\x18\x8B\xF2\x2B\xC8\x2B\xF0\x8A" + \
	    b"\x14\x01\x22\x10\x3A\x14\x06\x75" + \
	    b"\x0E\x47\x40\x3B\x7C\x24\x0C\x72" + \
	    b"\xEE\x33\xC0\x40\x5F\x5E\xC3\x33" + \
	    b"\xC0\xEB\xF9\x55\x8B\xEC\x51\x8B" + \
	    b"\x45\x08\x89\x45\xFC\x8B\x45\x10" + \
	    b"\x8B\x4D\x10\x49\x89\x4D\x10\x85" + \
	    b"\xC0\x74\x11\x8B\x45\x08\x8A\x4D" + \
	    b"\x0C\x88\x08\x8B\x45\x08\x40\x89" + \
	    b"\x45\x08\xEB\xE1\x8B\x45\xFC\xC9" + \
	    b"\xC3\x56\x57\x8B\xF0\x0F\xB6\x06" + \
	    b"\x8D\x48\xBF\x46\x83\xF9\x19\x77" + \
	    b"\x03\x83\xC0\x20\x0F\xB6\x0A\x8D" + \
	    b"\x79\xBF\x42\x83\xFF\x19\x77\x03" + \
	    b"\x83\xC1\x20\x85\xC0\x74\x04\x3B" + \
	    b"\xC1\x74\xDA\x5F\x2B\xC1\x5E\xC3" + \
	    b"\x55\x8B\xEC\x8B\x45\x08\x83\xEC" + \
	    b"\x20\x6A\x01\xFF\x70\x21\x8D\x45" + \
	    b"\xE0\x50\xE8\xF2\xF9\xFF\xFF\x83" + \
	    b"\xC4\x0C\x85\xC0\x74\x05\x33\xC0" + \
	    b"\x40\xC9\xC3\x83\x7D\xE0\x00\x75" + \
	    b"\xF5\x53\x56\x6A\x0C\x6A\x00\x57" + \
	    b"\xE8\x6E\xFF\xFF\xFF\x8B\x75\xEC" + \
	    b"\x0F\xB7\x46\x14\x83\xC4\x0C\xB9" + \
	    b"\xA2\x0E\x40\x00\x8D\x5C\x30\x18" + \
	    b"\xE8\x60\xF9\xFF\xFF\x50\x0F\xB7" + \
	    b"\x46\x06\x50\x57\xFF\x75\x08\x8B" + \
	    b"\xC3\xE8\x41\x00\x00\x00\x83\xC4" + \
	    b"\x10\x85\xC0\x75\x33\x39\x07\x74" + \
	    b"\x2F\x39\x47\x04\x74\x2A\xB9\x30" + \
	    b"\x0F\x40\x00\xE8\x35\xF9\xFF\xFF" + \
	    b"\x50\x0F\xB7\x46\x06\x50\x57\xFF" + \
	    b"\x75\x08\x8B\xC3\xE8\x16\x00\x00" + \
	    b"\x00\x83\xC4\x10\x85\xC0\x75\x08" + \
	    b"\x39\x47\x08\x0F\x94\xC0\xEB\x03" + \
	    b"\x33\xC0\x40\x5E\x5B\xC9\xC3\x55" + \
	    b"\x8B\xEC\x53\x33\xDB\x56\x57\x39" + \
	    b"\x5D\x10\x76\x48\x8B\xF0\x83\xC6" + \
	    b"\x08\xBF\x20\x00\x00\x60\x8B\x46" + \
	    b"\x1C\x8B\xC8\x23\xCF\x3B\xCF\x75" + \
	    b"\x2A\xA9\x00\x00\x00\x02\x75\x23" + \
	    b"\x8B\x06\x8B\x4E\x08\x3B\xC1\x72" + \
	    b"\x02\x8B\xC1\xFF\x75\x0C\x8B\x4D" + \
	    b"\x08\x50\x8B\x46\x04\x03\x41\x21" + \
	    b"\x50\xFF\x55\x14\x83\xC4\x0C\x85" + \
	    b"\xC0\x75\x10\x43\x83\xC6\x28\x3B" + \
	    b"\x5D\x10\x72\xC2\x33\xC0\x5F\x5E" + \
	    b"\x5B\x5D\xC3\x33\xC0\x40\xEB\xF6" + \
	    b"\x55\x8B\xEC\x8B\x45\x08\x8B\x4D" + \
	    b"\x0C\x53\x8D\x4C\x08\xF0\x56\x57" + \
	    b"\x89\x4D\x08\x3B\xC1\x77\x70\x8B" + \
	    b"\x7D\x10\x8D\x70\x01\xB9\x20\x02" + \
	    b"\x40\x00\xE8\x86\xF8\xFF\xFF\x6A" + \
	    b"\x10\xB9\x10\x02\x40\x00\x8B\xD8" + \
	    b"\xE8\x78\xF8\xFF\xFF\x8B\xD0\x8B" + \
	    b"\xC3\x8D\x5E\xFF\x8B\xCB\xE8\x34" + \
	    b"\xFE\xFF\xFF\x59\x85\xC0\x74\x36" + \
	    b"\x8A\x06\x3A\x46\x03\x75\x2F\x3C" + \
	    b"\x74\x74\x2B\x8B\x4F\x04\x8B\x46" + \
	    b"\x0B\x8D\x44\x18\x10\x85\xC9\x74" + \
	    b"\x09\x3B\xC8\x74\x08\x33\xC0\x40" + \
	    b"\xEB\x1F\x89\x47\x04\x8B\x0F\x8B" + \
	    b"\x46\x06\x85\xC9\x74\x06\x3B\xC8" + \
	    b"\x75\xEB\xEB\x02\x89\x07\x46\x8D" + \
	    b"\x46\xFF\x3B\x45\x08\x76\x96\x33" + \
	    b"\xC0\x5F\x5E\x5B\x5D\xC3\x55\x8B" + \
	    b"\xEC\x53\x56\x57\xB9\x10\x02\x40" + \
	    b"\x00\xE8\x0F\xF8\xFF\xFF\x8B\xF0" + \
	    b"\xB9\x20\x02\x40\x00\x83\xC6\x03" + \
	    b"\xE8\x00\xF8\xFF\xFF\x8B\x4D\x08" + \
	    b"\x8B\xF8\x8B\x45\x0C\x83\xC7\x03" + \
	    b"\x8D\x1C\x01\xEB\x43\x8B\x55\x10" + \
	    b"\x57\x56\xFF\x32\xE8\x39\xFD\xFF" + \
	    b"\xFF\x83\xC4\x0C\x85\xC0\x74\x3B" + \
	    b"\x8D\x48\x01\x80\x39\x74\x89\x4D" + \
	    b"\x08\x74\x22\x8B\x48\x09\x8D\x4C" + \
	    b"\x01\x0D\x8B\x45\x10\x3B\x48\x04" + \
	    b"\x74\x13\x8B\x50\x08\x85\xD2\x74" + \
	    b"\x09\x3B\xD1\x74\x08\x33\xC0\x40" + \
	    b"\xEB\x13\x89\x48\x08\x8B\x4D\x08" + \
	    b"\x8B\xC3\x8D\x53\xF3\x2B\xC1\x3B" + \
	    b"\xCA\x76\xB2\x33\xC0\x5F\x5E\x5B" + \
	    b"\x5D\xC3\x55\x8B\xEC\x81\xEC\x94" + \
	    b"\x00\x00\x00\x68\x94\x00\x00\x00" + \
	    b"\x8D\x85\x6C\xFF\xFF\xFF\x6A\x00" + \
	    b"\x50\xE8\x75\xFD\xFF\xFF\x83\xC4" + \
	    b"\x0C\x8D\x85\x6C\xFF\xFF\xFF\x50" + \
	    b"\x8B\x45\x08\xC7\x85\x6C\xFF\xFF" + \
	    b"\xFF\x94\x00\x00\x00\xFF\x50\x1D" + \
	    b"\x85\xC0\x75\x03\x40\xC9\xC3\x83" + \
	    b"\xBD\x70\xFF\xFF\xFF\x06\x8B\x4D" + \
	    b"\x0C\x1B\xC0\x40\x89\x01\x33\xC0" + \
	    b"\xC9\xC3\x57\xFF\x74\x24\x08\x8D" + \
	    b"\x7B\x32\xE8\x91\xFD\xFF\xFF\x59" + \
	    b"\x85\xC0\x74\x05\x33\xC0\x40\x5F" + \
	    b"\xC3\x56\x8B\x37\x8B\x46\x04\x83" + \
	    b"\xF8\x64\x72\x27\x3D\x00\x10\x00" + \
	    b"\x00\x77\x20\x39\x06\x73\x1C\x80" + \
	    b"\x7E\x08\x00\x75\x16\xFF\x73\x1A" + \
	    b"\xFF\x73\x08\x56\xFF\x57\x04\x33" + \
	    b"\xC0\x38\x46\x08\x0F\x95\xC0\x85" + \
	    b"\xC0\x74\x05\x33\xC0\x40\xEB\x09" + \
	    b"\xC7\x43\x22\x01\x00\x00\x00\x33" + \
	    b"\xC0\x5E\x5F\xC3\x00\x00\x00\x00" + \
	    b"\x00\x00" 
def percentage(part, whole):
  return 100 * float(part)/float(whole) 

patterns = [dbPattern1,dbPattern2,dbPattern3,dbPattern4,dbPattern5,dbPattern6,dbPattern7,dbPattern8,dbPattern9,
dbPattern10,dbPattern11,dbPattern12] 

fileList = []
rootdir = sys.argv[1]
for root, subFolders, files in os.walk(rootdir):
	for file in files:
		patternsFound = {} 
		try:
			size = os.stat(os.path.join(root,file)).st_size
			print ("Scanning " + os.path.join(root,file) + ":")
			f = open(os.path.join(root,file))
			data = mmap.mmap(f.fileno(), size, access=mmap.ACCESS_READ)
			matches = 0
			for pattern in patterns:
				patternNumber = str(patterns.index(pattern)) 
				if data.find(pattern) >= 0:
					patternsFound[patternNumber] = True
					matches += 1
					print ("Found a match for pattern #" + patternNumber +" on file named: " + file)
				else:
					patternsFound[patternNumber] = False 
					print ("No match for pattern #" + patternNumber + " on file named: " + file)
			# compute percentage math	
			print ("Percentage of pattern matches is: " + str(percentage(matches, len(patternsFound))) + '%')
		except:
			continue
		f.close()